authhero 8.3.0 → 8.4.0
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.
- package/dist/assets/u/js/client.js +3 -3
- package/dist/authhero.cjs +6 -6
- package/dist/authhero.d.ts +140 -97
- package/dist/authhero.mjs +40 -27
- package/dist/client.js +3 -3
- package/dist/stats.html +1 -1
- package/dist/tsconfig.types.tsbuildinfo +1 -1
- package/dist/types/authentication-flows/passwordless.d.ts +3 -3
- package/dist/types/client/client-bundle.d.ts +1 -1
- package/dist/types/client/loading-link-handler.d.ts +14 -0
- package/dist/types/components/Button.d.ts +2 -1
- package/dist/types/helpers/dcr/metadata-mapping.d.ts +1 -1
- package/dist/types/index.d.ts +96 -96
- package/dist/types/middlewares/authentication.d.ts +17 -0
- package/dist/types/routes/auth-api/index.d.ts +21 -21
- package/dist/types/routes/auth-api/passwordless.d.ts +18 -18
- package/dist/types/routes/auth-api/register/index.d.ts +2 -2
- package/dist/types/routes/auth-api/well-known.d.ts +1 -1
- package/dist/types/routes/management-api/action-executions.d.ts +1 -1
- package/dist/types/routes/management-api/actions.d.ts +1 -1
- package/dist/types/routes/management-api/authentication-methods.d.ts +1 -1
- package/dist/types/routes/management-api/branding.d.ts +6 -6
- package/dist/types/routes/management-api/client-grants.d.ts +8 -8
- package/dist/types/routes/management-api/clients.d.ts +7 -7
- package/dist/types/routes/management-api/connections.d.ts +1 -1
- package/dist/types/routes/management-api/custom-domains.d.ts +6 -6
- package/dist/types/routes/management-api/email-templates.d.ts +18 -18
- package/dist/types/routes/management-api/forms.d.ts +119 -119
- package/dist/types/routes/management-api/guardian.d.ts +5 -5
- package/dist/types/routes/management-api/index.d.ts +190 -190
- package/dist/types/routes/management-api/log-streams.d.ts +6 -6
- package/dist/types/routes/management-api/logs.d.ts +3 -3
- package/dist/types/routes/management-api/organizations.d.ts +2 -2
- package/dist/types/routes/management-api/prompts.d.ts +4 -4
- package/dist/types/routes/management-api/themes.d.ts +3 -3
- package/dist/types/routes/management-api/users.d.ts +2 -2
- package/dist/types/routes/universal-login/common.d.ts +6 -6
- package/dist/types/routes/universal-login/flow-api.d.ts +12 -12
- package/dist/types/routes/universal-login/u2-index.d.ts +6 -6
- package/dist/types/routes/universal-login/u2-routes.d.ts +6 -6
- package/dist/types/types/AuthHeroConfig.d.ts +26 -1
- package/dist/types/types/IdToken.d.ts +2 -2
- package/dist/types/utils/jwks.d.ts +2 -2
- package/dist/types/utils/jwt.d.ts +9 -0
- package/package.json +3 -3
package/dist/authhero.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(e&&(t=e(e=0)),t),s=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),c=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r},l=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},u=(n,r,a)=>(a=n==null?{}:e(i(n)),l(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n)),d=e=>a.call(e,`module.exports`)?e[`module.exports`]:l(t({},`__esModule`,{value:!0}),e);let f=require("@hono/zod-openapi"),p=require("hono");var m=class extends Error{res;status;constructor(e=500,t){super(t?.message,{cause:t?.cause}),this.res=t?.res,this.status=e}getResponse(){return this.res?new Response(this.res.body,{status:this.status,headers:this.res.headers}):new Response(this.message,{status:this.status})}},h=e=>typeof e==`string`,g=()=>{let e,t,n=new Promise((n,r)=>{e=n,t=r});return n.resolve=e,n.reject=t,n},_=e=>e==null?``:``+e,v=(e,t,n)=>{e.forEach(e=>{t[e]&&(n[e]=t[e])})},y=/###/g,b=e=>e&&e.indexOf(`###`)>-1?e.replace(y,`.`):e,x=e=>!e||h(e),S=(e,t,n)=>{let r=h(t)?t.split(`.`):t,i=0;for(;i<r.length-1;){if(x(e))return{};let t=b(r[i]);!e[t]&&n&&(e[t]=new n),e=Object.prototype.hasOwnProperty.call(e,t)?e[t]:{},++i}return x(e)?{}:{obj:e,k:b(r[i])}},C=(e,t,n)=>{let{obj:r,k:i}=S(e,t,Object);if(r!==void 0||t.length===1){r[i]=n;return}let a=t[t.length-1],o=t.slice(0,t.length-1),s=S(e,o,Object);for(;s.obj===void 0&&o.length;)a=`${o[o.length-1]}.${a}`,o=o.slice(0,o.length-1),s=S(e,o,Object),s?.obj&&s.obj[`${s.k}.${a}`]!==void 0&&(s.obj=void 0);s.obj[`${s.k}.${a}`]=n},w=(e,t,n,r)=>{let{obj:i,k:a}=S(e,t,Object);i[a]=i[a]||[],i[a].push(n)},T=(e,t)=>{let{obj:n,k:r}=S(e,t);if(n&&Object.prototype.hasOwnProperty.call(n,r))return n[r]},ee=(e,t,n)=>{let r=T(e,n);return r===void 0?T(t,n):r},E=(e,t,n)=>{for(let r in t)r!==`__proto__`&&r!==`constructor`&&(r in e?h(e[r])||e[r]instanceof String||h(t[r])||t[r]instanceof String?n&&(e[r]=t[r]):E(e[r],t[r],n):e[r]=t[r]);return e},te=e=>e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,`\\$&`),ne={"&":`&`,"<":`<`,">":`>`,'"':`"`,"'":`'`,"/":`/`},D=e=>h(e)?e.replace(/[&<>"'\/]/g,e=>ne[e]):e,re=class{constructor(e){this.capacity=e,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(e){let t=this.regExpMap.get(e);if(t!==void 0)return t;let n=new RegExp(e);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(e,n),this.regExpQueue.push(e),n}},ie=[` `,`,`,`?`,`!`,`;`],O=new re(20),ae=(e,t,n)=>{t||=``,n||=``;let r=ie.filter(e=>t.indexOf(e)<0&&n.indexOf(e)<0);if(r.length===0)return!0;let i=O.getRegExp(`(${r.map(e=>e===`?`?`\\?`:e).join(`|`)})`),a=!i.test(e);if(!a){let t=e.indexOf(n);t>0&&!i.test(e.substring(0,t))&&(a=!0)}return a},oe=(e,t,n=`.`)=>{if(!e)return;if(e[t])return Object.prototype.hasOwnProperty.call(e,t)?e[t]:void 0;let r=t.split(n),i=e;for(let e=0;e<r.length;){if(!i||typeof i!=`object`)return;let t,a=``;for(let o=e;o<r.length;++o)if(o!==e&&(a+=n),a+=r[o],t=i[a],t!==void 0){if([`string`,`number`,`boolean`].indexOf(typeof t)>-1&&o<r.length-1)continue;e+=o-e+1;break}i=t}return i},se=e=>e?.replace(/_/g,`-`),k={type:`logger`,log(e){this.output(`log`,e)},warn(e){this.output(`warn`,e)},error(e){this.output(`error`,e)},output(e,t){console?.[e]?.apply?.(console,t)}},A=new class e{constructor(e,t={}){this.init(e,t)}init(e,t={}){this.prefix=t.prefix||`i18next:`,this.logger=e||k,this.options=t,this.debug=t.debug}log(...e){return this.forward(e,`log`,``,!0)}warn(...e){return this.forward(e,`warn`,``,!0)}error(...e){return this.forward(e,`error`,``)}deprecate(...e){return this.forward(e,`warn`,`WARNING DEPRECATED: `,!0)}forward(e,t,n,r){return r&&!this.debug?null:(h(e[0])&&(e[0]=`${n}${this.prefix} ${e[0]}`),this.logger[t](e))}create(t){return new e(this.logger,{prefix:`${this.prefix}:${t}:`,...this.options})}clone(t){return t||=this.options,t.prefix=t.prefix||this.prefix,new e(this.logger,t)}},ce=class{constructor(){this.observers={}}on(e,t){return e.split(` `).forEach(e=>{this.observers[e]||(this.observers[e]=new Map);let n=this.observers[e].get(t)||0;this.observers[e].set(t,n+1)}),this}off(e,t){if(this.observers[e]){if(!t){delete this.observers[e];return}this.observers[e].delete(t)}}emit(e,...t){this.observers[e]&&Array.from(this.observers[e].entries()).forEach(([e,n])=>{for(let r=0;r<n;r++)e(...t)}),this.observers[`*`]&&Array.from(this.observers[`*`].entries()).forEach(([n,r])=>{for(let i=0;i<r;i++)n.apply(n,[e,...t])})}},le=class extends ce{constructor(e,t={ns:[`translation`],defaultNS:`translation`}){super(),this.data=e||{},this.options=t,this.options.keySeparator===void 0&&(this.options.keySeparator=`.`),this.options.ignoreJSONStructure===void 0&&(this.options.ignoreJSONStructure=!0)}addNamespaces(e){this.options.ns.indexOf(e)<0&&this.options.ns.push(e)}removeNamespaces(e){let t=this.options.ns.indexOf(e);t>-1&&this.options.ns.splice(t,1)}getResource(e,t,n,r={}){let i=r.keySeparator===void 0?this.options.keySeparator:r.keySeparator,a=r.ignoreJSONStructure===void 0?this.options.ignoreJSONStructure:r.ignoreJSONStructure,o;e.indexOf(`.`)>-1?o=e.split(`.`):(o=[e,t],n&&(Array.isArray(n)?o.push(...n):h(n)&&i?o.push(...n.split(i)):o.push(n)));let s=T(this.data,o);return!s&&!t&&!n&&e.indexOf(`.`)>-1&&(e=o[0],t=o[1],n=o.slice(2).join(`.`)),s||!a||!h(n)?s:oe(this.data?.[e]?.[t],n,i)}addResource(e,t,n,r,i={silent:!1}){let a=i.keySeparator===void 0?this.options.keySeparator:i.keySeparator,o=[e,t];n&&(o=o.concat(a?n.split(a):n)),e.indexOf(`.`)>-1&&(o=e.split(`.`),r=t,t=o[1]),this.addNamespaces(t),C(this.data,o,r),i.silent||this.emit(`added`,e,t,n,r)}addResources(e,t,n,r={silent:!1}){for(let r in n)(h(n[r])||Array.isArray(n[r]))&&this.addResource(e,t,r,n[r],{silent:!0});r.silent||this.emit(`added`,e,t,n)}addResourceBundle(e,t,n,r,i,a={silent:!1,skipCopy:!1}){let o=[e,t];e.indexOf(`.`)>-1&&(o=e.split(`.`),r=n,n=t,t=o[1]),this.addNamespaces(t);let s=T(this.data,o)||{};a.skipCopy||(n=JSON.parse(JSON.stringify(n))),r?E(s,n,i):s={...s,...n},C(this.data,o,s),a.silent||this.emit(`added`,e,t,n)}removeResourceBundle(e,t){this.hasResourceBundle(e,t)&&delete this.data[e][t],this.removeNamespaces(t),this.emit(`removed`,e,t)}hasResourceBundle(e,t){return this.getResource(e,t)!==void 0}getResourceBundle(e,t){return t||=this.options.defaultNS,this.getResource(e,t)}getDataByLanguage(e){return this.data[e]}hasLanguageSomeTranslations(e){let t=this.getDataByLanguage(e);return!!(t&&Object.keys(t)||[]).find(e=>t[e]&&Object.keys(t[e]).length>0)}toJSON(){return this.data}},ue={processors:{},addPostProcessor(e){this.processors[e.name]=e},handle(e,t,n,r,i){return e.forEach(e=>{t=this.processors[e]?.process(t,n,r,i)??t}),t}},de=Symbol(`i18next/PATH_KEY`);function fe(){let e=[],t=Object.create(null),n;return t.get=(r,i)=>(n?.revoke?.(),i===de?e:(e.push(i),n=Proxy.revocable(r,t),n.proxy)),Proxy.revocable(Object.create(null),t).proxy}function pe(e,t){let{[de]:n}=e(fe()),r=t?.keySeparator??`.`,i=t?.nsSeparator??`:`;if(n.length>1&&i){let e=t?.ns,a=Array.isArray(e)?e:null;if(a&&a.length>1&&a.slice(1).includes(n[0]))return`${n[0]}${i}${n.slice(1).join(r)}`}return n.join(r)}var me={},he=e=>!h(e)&&typeof e!=`boolean`&&typeof e!=`number`,ge=class e extends ce{constructor(e,t={}){super(),v([`resourceStore`,`languageUtils`,`pluralResolver`,`interpolator`,`backendConnector`,`i18nFormat`,`utils`],e,this),this.options=t,this.options.keySeparator===void 0&&(this.options.keySeparator=`.`),this.logger=A.create(`translator`)}changeLanguage(e){e&&(this.language=e)}exists(e,t={interpolation:{}}){let n={...t};if(e==null)return!1;let r=this.resolve(e,n);if(r?.res===void 0)return!1;let i=he(r.res);return!(n.returnObjects===!1&&i)}extractFromKey(e,t){let n=t.nsSeparator===void 0?this.options.nsSeparator:t.nsSeparator;n===void 0&&(n=`:`);let r=t.keySeparator===void 0?this.options.keySeparator:t.keySeparator,i=t.ns||this.options.defaultNS||[],a=n&&e.indexOf(n)>-1,o=!this.options.userDefinedKeySeparator&&!t.keySeparator&&!this.options.userDefinedNsSeparator&&!t.nsSeparator&&!ae(e,n,r);if(a&&!o){let t=e.match(this.interpolator.nestingRegexp);if(t&&t.length>0)return{key:e,namespaces:h(i)?[i]:i};let a=e.split(n);(n!==r||n===r&&this.options.ns.indexOf(a[0])>-1)&&(i=a.shift()),e=a.join(r)}return{key:e,namespaces:h(i)?[i]:i}}translate(t,n,r){let i=typeof n==`object`?{...n}:n;if(typeof i!=`object`&&this.options.overloadTranslationOptionHandler&&(i=this.options.overloadTranslationOptionHandler(arguments)),typeof i==`object`&&(i={...i}),i||={},t==null)return``;typeof t==`function`&&(t=pe(t,{...this.options,...i})),Array.isArray(t)||(t=[String(t)]),t=t.map(e=>typeof e==`function`?pe(e,{...this.options,...i}):String(e));let a=i.returnDetails===void 0?this.options.returnDetails:i.returnDetails,o=i.keySeparator===void 0?this.options.keySeparator:i.keySeparator,{key:s,namespaces:c}=this.extractFromKey(t[t.length-1],i),l=c[c.length-1],u=i.nsSeparator===void 0?this.options.nsSeparator:i.nsSeparator;u===void 0&&(u=`:`);let d=i.lng||this.language,f=i.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(d?.toLowerCase()===`cimode`)return f?a?{res:`${l}${u}${s}`,usedKey:s,exactUsedKey:s,usedLng:d,usedNS:l,usedParams:this.getUsedParamsDetails(i)}:`${l}${u}${s}`:a?{res:s,usedKey:s,exactUsedKey:s,usedLng:d,usedNS:l,usedParams:this.getUsedParamsDetails(i)}:s;let p=this.resolve(t,i),m=p?.res,g=p?.usedKey||s,_=p?.exactUsedKey||s,v=[`[object Number]`,`[object Function]`,`[object RegExp]`],y=i.joinArrays===void 0?this.options.joinArrays:i.joinArrays,b=!this.i18nFormat||this.i18nFormat.handleAsObject,x=i.count!==void 0&&!h(i.count),S=e.hasDefaultValue(i),C=x?this.pluralResolver.getSuffix(d,i.count,i):``,w=i.ordinal&&x?this.pluralResolver.getSuffix(d,i.count,{ordinal:!1}):``,T=x&&!i.ordinal&&i.count===0,ee=T&&i[`defaultValue${this.options.pluralSeparator}zero`]||i[`defaultValue${C}`]||i[`defaultValue${w}`]||i.defaultValue,E=m;b&&!m&&S&&(E=ee);let te=he(E),ne=Object.prototype.toString.apply(E);if(b&&E&&te&&v.indexOf(ne)<0&&!(h(y)&&Array.isArray(E))){if(!i.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn(`accessing an object - but returnObjects options is not enabled!`);let e=this.options.returnedObjectHandler?this.options.returnedObjectHandler(g,E,{...i,ns:c}):`key '${s} (${this.language})' returned an object instead of string.`;return a?(p.res=e,p.usedParams=this.getUsedParamsDetails(i),p):e}if(o){let e=Array.isArray(E),t=e?[]:{},n=e?_:g;for(let e in E)if(Object.prototype.hasOwnProperty.call(E,e)){let r=`${n}${o}${e}`;S&&!m?t[e]=this.translate(r,{...i,defaultValue:he(ee)?ee[e]:void 0,joinArrays:!1,ns:c}):t[e]=this.translate(r,{...i,joinArrays:!1,ns:c}),t[e]===r&&(t[e]=E[e])}m=t}}else if(b&&h(y)&&Array.isArray(m))m=m.join(y),m&&=this.extendTranslation(m,t,i,r);else{let e=!1,n=!1;!this.isValidLookup(m)&&S&&(e=!0,m=ee),this.isValidLookup(m)||(n=!0,m=s);let a=(i.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&n?void 0:m,c=S&&ee!==m&&this.options.updateMissing;if(n||e||c){if(this.logger.log(c?`updateKey`:`missingKey`,d,l,s,c?ee:m),o){let e=this.resolve(s,{...i,keySeparator:!1});e&&e.res&&this.logger.warn(`Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.`)}let e=[],t=this.languageUtils.getFallbackCodes(this.options.fallbackLng,i.lng||this.language);if(this.options.saveMissingTo===`fallback`&&t&&t[0])for(let n=0;n<t.length;n++)e.push(t[n]);else this.options.saveMissingTo===`all`?e=this.languageUtils.toResolveHierarchy(i.lng||this.language):e.push(i.lng||this.language);let n=(e,t,n)=>{let r=S&&n!==m?n:a;this.options.missingKeyHandler?this.options.missingKeyHandler(e,l,t,r,c,i):this.backendConnector?.saveMissing&&this.backendConnector.saveMissing(e,l,t,r,c,i),this.emit(`missingKey`,e,l,t,m)};this.options.saveMissing&&(this.options.saveMissingPlurals&&x?e.forEach(e=>{let t=this.pluralResolver.getSuffixes(e,i);T&&i[`defaultValue${this.options.pluralSeparator}zero`]&&t.indexOf(`${this.options.pluralSeparator}zero`)<0&&t.push(`${this.options.pluralSeparator}zero`),t.forEach(t=>{n([e],s+t,i[`defaultValue${t}`]||ee)})}):n(e,s,ee))}m=this.extendTranslation(m,t,i,p,r),n&&m===s&&this.options.appendNamespaceToMissingKey&&(m=`${l}${u}${s}`),(n||e)&&this.options.parseMissingKeyHandler&&(m=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${l}${u}${s}`:s,e?m:void 0,i))}return a?(p.res=m,p.usedParams=this.getUsedParamsDetails(i),p):m}extendTranslation(e,t,n,r,i){if(this.i18nFormat?.parse)e=this.i18nFormat.parse(e,{...this.options.interpolation.defaultVariables,...n},n.lng||this.language||r.usedLng,r.usedNS,r.usedKey,{resolved:r});else if(!n.skipInterpolation){n.interpolation&&this.interpolator.init({...n,interpolation:{...this.options.interpolation,...n.interpolation}});let a=h(e)&&(n?.interpolation?.skipOnVariables===void 0?this.options.interpolation.skipOnVariables:n.interpolation.skipOnVariables),o;if(a){let t=e.match(this.interpolator.nestingRegexp);o=t&&t.length}let s=n.replace&&!h(n.replace)?n.replace:n;if(this.options.interpolation.defaultVariables&&(s={...this.options.interpolation.defaultVariables,...s}),e=this.interpolator.interpolate(e,s,n.lng||this.language||r.usedLng,n),a){let t=e.match(this.interpolator.nestingRegexp),r=t&&t.length;o<r&&(n.nest=!1)}!n.lng&&r&&r.res&&(n.lng=this.language||r.usedLng),n.nest!==!1&&(e=this.interpolator.nest(e,(...e)=>i?.[0]===e[0]&&!n.context?(this.logger.warn(`It seems you are nesting recursively key: ${e[0]} in key: ${t[0]}`),null):this.translate(...e,t),n)),n.interpolation&&this.interpolator.reset()}let a=n.postProcess||this.options.postProcess,o=h(a)?[a]:a;return e!=null&&o?.length&&n.applyPostProcessor!==!1&&(e=ue.handle(o,e,t,this.options&&this.options.postProcessPassResolved?{i18nResolved:{...r,usedParams:this.getUsedParamsDetails(n)},...n}:n,this)),e}resolve(e,t={}){let n,r,i,a,o;return h(e)&&(e=[e]),Array.isArray(e)&&(e=e.map(e=>typeof e==`function`?pe(e,{...this.options,...t}):e)),e.forEach(e=>{if(this.isValidLookup(n))return;let s=this.extractFromKey(e,t),c=s.key;r=c;let l=s.namespaces;this.options.fallbackNS&&(l=l.concat(this.options.fallbackNS));let u=t.count!==void 0&&!h(t.count),d=u&&!t.ordinal&&t.count===0,f=t.context!==void 0&&(h(t.context)||typeof t.context==`number`)&&t.context!==``,p=t.lngs?t.lngs:this.languageUtils.toResolveHierarchy(t.lng||this.language,t.fallbackLng);l.forEach(e=>{this.isValidLookup(n)||(o=e,!me[`${p[0]}-${e}`]&&this.utils?.hasLoadedNamespace&&!this.utils?.hasLoadedNamespace(o)&&(me[`${p[0]}-${e}`]=!0,this.logger.warn(`key "${r}" for languages "${p.join(`, `)}" won't get resolved as namespace "${o}" was not yet loaded`,`This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!`)),p.forEach(r=>{if(this.isValidLookup(n))return;a=r;let o=[c];if(this.i18nFormat?.addLookupKeys)this.i18nFormat.addLookupKeys(o,c,r,e,t);else{let e;u&&(e=this.pluralResolver.getSuffix(r,t.count,t));let n=`${this.options.pluralSeparator}zero`,i=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(u&&(t.ordinal&&e.indexOf(i)===0&&o.push(c+e.replace(i,this.options.pluralSeparator)),o.push(c+e),d&&o.push(c+n)),f){let r=`${c}${this.options.contextSeparator||`_`}${t.context}`;o.push(r),u&&(t.ordinal&&e.indexOf(i)===0&&o.push(r+e.replace(i,this.options.pluralSeparator)),o.push(r+e),d&&o.push(r+n))}}let s;for(;s=o.pop();)this.isValidLookup(n)||(i=s,n=this.getResource(r,e,s,t))}))})}),{res:n,usedKey:r,exactUsedKey:i,usedLng:a,usedNS:o}}isValidLookup(e){return e!==void 0&&!(!this.options.returnNull&&e===null)&&!(!this.options.returnEmptyString&&e===``)}getResource(e,t,n,r={}){return this.i18nFormat?.getResource?this.i18nFormat.getResource(e,t,n,r):this.resourceStore.getResource(e,t,n,r)}getUsedParamsDetails(e={}){let t=[`defaultValue`,`ordinal`,`context`,`replace`,`lng`,`lngs`,`fallbackLng`,`ns`,`keySeparator`,`nsSeparator`,`returnObjects`,`returnDetails`,`joinArrays`,`postProcess`,`interpolation`],n=e.replace&&!h(e.replace),r=n?e.replace:e;if(n&&e.count!==void 0&&(r.count=e.count),this.options.interpolation.defaultVariables&&(r={...this.options.interpolation.defaultVariables,...r}),!n){r={...r};for(let e of t)delete r[e]}return r}static hasDefaultValue(e){for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t)&&t.substring(0,12)===`defaultValue`&&e[t]!==void 0)return!0;return!1}},_e=class{constructor(e){this.options=e,this.supportedLngs=this.options.supportedLngs||!1,this.logger=A.create(`languageUtils`)}getScriptPartFromCode(e){if(e=se(e),!e||e.indexOf(`-`)<0)return null;let t=e.split(`-`);return t.length===2||(t.pop(),t[t.length-1].toLowerCase()===`x`)?null:this.formatLanguageCode(t.join(`-`))}getLanguagePartFromCode(e){if(e=se(e),!e||e.indexOf(`-`)<0)return e;let t=e.split(`-`);return this.formatLanguageCode(t[0])}formatLanguageCode(e){if(h(e)&&e.indexOf(`-`)>-1){let t;try{t=Intl.getCanonicalLocales(e)[0]}catch{}return t&&this.options.lowerCaseLng&&(t=t.toLowerCase()),t||(this.options.lowerCaseLng?e.toLowerCase():e)}return this.options.cleanCode||this.options.lowerCaseLng?e.toLowerCase():e}isSupportedCode(e){return(this.options.load===`languageOnly`||this.options.nonExplicitSupportedLngs)&&(e=this.getLanguagePartFromCode(e)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(e)>-1}getBestMatchFromCodes(e){if(!e)return null;let t;return e.forEach(e=>{if(t)return;let n=this.formatLanguageCode(e);(!this.options.supportedLngs||this.isSupportedCode(n))&&(t=n)}),!t&&this.options.supportedLngs&&e.forEach(e=>{if(t)return;let n=this.getScriptPartFromCode(e);if(this.isSupportedCode(n))return t=n;let r=this.getLanguagePartFromCode(e);if(this.isSupportedCode(r))return t=r;t=this.options.supportedLngs.find(e=>{if(e===r||!(e.indexOf(`-`)<0&&r.indexOf(`-`)<0)&&(e.indexOf(`-`)>0&&r.indexOf(`-`)<0&&e.substring(0,e.indexOf(`-`))===r||e.indexOf(r)===0&&r.length>1))return e})}),t||=this.getFallbackCodes(this.options.fallbackLng)[0],t}getFallbackCodes(e,t){if(!e)return[];if(typeof e==`function`&&(e=e(t)),h(e)&&(e=[e]),Array.isArray(e))return e;if(!t)return e.default||[];let n=e[t];return n||=e[this.getScriptPartFromCode(t)],n||=e[this.formatLanguageCode(t)],n||=e[this.getLanguagePartFromCode(t)],n||=e.default,n||[]}toResolveHierarchy(e,t){let n=this.getFallbackCodes((t===!1?[]:t)||this.options.fallbackLng||[],e),r=[],i=e=>{e&&(this.isSupportedCode(e)?r.push(e):this.logger.warn(`rejecting language code not found in supportedLngs: ${e}`))};return h(e)&&(e.indexOf(`-`)>-1||e.indexOf(`_`)>-1)?(this.options.load!==`languageOnly`&&i(this.formatLanguageCode(e)),this.options.load!==`languageOnly`&&this.options.load!==`currentOnly`&&i(this.getScriptPartFromCode(e)),this.options.load!==`currentOnly`&&i(this.getLanguagePartFromCode(e))):h(e)&&i(this.formatLanguageCode(e)),n.forEach(e=>{r.indexOf(e)<0&&i(this.formatLanguageCode(e))}),r}},ve={zero:0,one:1,two:2,few:3,many:4,other:5},ye={select:e=>e===1?`one`:`other`,resolvedOptions:()=>({pluralCategories:[`one`,`other`]})},be=class{constructor(e,t={}){this.languageUtils=e,this.options=t,this.logger=A.create(`pluralResolver`),this.pluralRulesCache={}}clearCache(){this.pluralRulesCache={}}getRule(e,t={}){let n=se(e===`dev`?`en`:e),r=t.ordinal?`ordinal`:`cardinal`,i=JSON.stringify({cleanedCode:n,type:r});if(i in this.pluralRulesCache)return this.pluralRulesCache[i];let a;try{a=new Intl.PluralRules(n,{type:r})}catch{if(typeof Intl>`u`)return this.logger.error(`No Intl support, please use an Intl polyfill!`),ye;if(!e.match(/-|_/))return ye;let n=this.languageUtils.getLanguagePartFromCode(e);a=this.getRule(n,t)}return this.pluralRulesCache[i]=a,a}needsPlural(e,t={}){let n=this.getRule(e,t);return n||=this.getRule(`dev`,t),n?.resolvedOptions().pluralCategories.length>1}getPluralFormsOfKey(e,t,n={}){return this.getSuffixes(e,n).map(e=>`${t}${e}`)}getSuffixes(e,t={}){let n=this.getRule(e,t);return n||=this.getRule(`dev`,t),n?n.resolvedOptions().pluralCategories.sort((e,t)=>ve[e]-ve[t]).map(e=>`${this.options.prepend}${t.ordinal?`ordinal${this.options.prepend}`:``}${e}`):[]}getSuffix(e,t,n={}){let r=this.getRule(e,n);return r?`${this.options.prepend}${n.ordinal?`ordinal${this.options.prepend}`:``}${r.select(t)}`:(this.logger.warn(`no plural rule found for: ${e}`),this.getSuffix(`dev`,t,n))}},xe=(e,t,n,r=`.`,i=!0)=>{let a=ee(e,t,n);return!a&&i&&h(n)&&(a=oe(e,n,r),a===void 0&&(a=oe(t,n,r))),a},Se=e=>e.replace(/\$/g,`$$$$`),Ce=class{constructor(e={}){this.logger=A.create(`interpolator`),this.options=e,this.format=e?.interpolation?.format||(e=>e),this.init(e)}init(e={}){e.interpolation||={escapeValue:!0};let{escape:t,escapeValue:n,useRawValueToEscape:r,prefix:i,prefixEscaped:a,suffix:o,suffixEscaped:s,formatSeparator:c,unescapeSuffix:l,unescapePrefix:u,nestingPrefix:d,nestingPrefixEscaped:f,nestingSuffix:p,nestingSuffixEscaped:m,nestingOptionsSeparator:h,maxReplaces:g,alwaysFormat:_}=e.interpolation;this.escape=t===void 0?D:t,this.escapeValue=n===void 0?!0:n,this.useRawValueToEscape=r===void 0?!1:r,this.prefix=i?te(i):a||`{{`,this.suffix=o?te(o):s||`}}`,this.formatSeparator=c||`,`,this.unescapePrefix=l?``:u||`-`,this.unescapeSuffix=this.unescapePrefix?``:l||``,this.nestingPrefix=d?te(d):f||te(`$t(`),this.nestingSuffix=p?te(p):m||te(`)`),this.nestingOptionsSeparator=h||`,`,this.maxReplaces=g||1e3,this.alwaysFormat=_===void 0?!1:_,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){let e=(e,t)=>e?.source===t?(e.lastIndex=0,e):new RegExp(t,`g`);this.regexp=e(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=e(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=e(this.nestingRegexp,`${this.nestingPrefix}((?:[^()"']+|"[^"]*"|'[^']*'|\\((?:[^()]|"[^"]*"|'[^']*')*\\))*?)${this.nestingSuffix}`)}interpolate(e,t,n,r){let i,a,o,s=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},c=e=>{if(e.indexOf(this.formatSeparator)<0){let i=xe(t,s,e,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(i,void 0,n,{...r,...t,interpolationkey:e}):i}let i=e.split(this.formatSeparator),a=i.shift().trim(),o=i.join(this.formatSeparator).trim();return this.format(xe(t,s,a,this.options.keySeparator,this.options.ignoreJSONStructure),o,n,{...r,...t,interpolationkey:a})};this.resetRegExp();let l=r?.missingInterpolationHandler||this.options.missingInterpolationHandler,u=r?.interpolation?.skipOnVariables===void 0?this.options.interpolation.skipOnVariables:r.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:e=>Se(e)},{regex:this.regexp,safeValue:e=>this.escapeValue?Se(this.escape(e)):Se(e)}].forEach(t=>{for(o=0;i=t.regex.exec(e);){let n=i[1].trim();if(a=c(n),a===void 0)if(typeof l==`function`){let t=l(e,i,r);a=h(t)?t:``}else if(r&&Object.prototype.hasOwnProperty.call(r,n))a=``;else if(u){a=i[0];continue}else this.logger.warn(`missed to pass in variable ${n} for interpolating ${e}`),a=``;else !h(a)&&!this.useRawValueToEscape&&(a=_(a));let s=t.safeValue(a);if(e=e.replace(i[0],s),u?(t.regex.lastIndex+=a.length,t.regex.lastIndex-=i[0].length):t.regex.lastIndex=0,o++,o>=this.maxReplaces)break}}),e}nest(e,t,n={}){let r,i,a,o=(e,t)=>{let n=this.nestingOptionsSeparator;if(e.indexOf(n)<0)return e;let r=e.split(RegExp(`${te(n)}[ ]*{`)),i=`{${r[1]}`;e=r[0],i=this.interpolate(i,a);let o=i.match(/'/g),s=i.match(/"/g);((o?.length??0)%2==0&&!s||(s?.length??0)%2!=0)&&(i=i.replace(/'/g,`"`));try{a=JSON.parse(i),t&&(a={...t,...a})}catch(t){return this.logger.warn(`failed parsing options string in nesting for key ${e}`,t),`${e}${n}${i}`}return a.defaultValue&&a.defaultValue.indexOf(this.prefix)>-1&&delete a.defaultValue,e};for(;r=this.nestingRegexp.exec(e);){let s=[];a={...n},a=a.replace&&!h(a.replace)?a.replace:a,a.applyPostProcessor=!1,delete a.defaultValue;let c=/{.*}/.test(r[1])?r[1].lastIndexOf(`}`)+1:r[1].indexOf(this.formatSeparator);if(c!==-1&&(s=r[1].slice(c).split(this.formatSeparator).map(e=>e.trim()).filter(Boolean),r[1]=r[1].slice(0,c)),i=t(o.call(this,r[1].trim(),a),a),i&&r[0]===e&&!h(i))return i;h(i)||(i=_(i)),i||=(this.logger.warn(`missed to resolve ${r[1]} for nesting ${e}`),``),s.length&&(i=s.reduce((e,t)=>this.format(e,t,n.lng,{...n,interpolationkey:r[1].trim()}),i.trim())),e=e.replace(r[0],i),this.regexp.lastIndex=0}return e}},we=e=>{let t=e.toLowerCase().trim(),n={};if(e.indexOf(`(`)>-1){let r=e.split(`(`);t=r[0].toLowerCase().trim();let i=r[1].substring(0,r[1].length-1);t===`currency`&&i.indexOf(`:`)<0?n.currency||=i.trim():t===`relativetime`&&i.indexOf(`:`)<0?n.range||=i.trim():i.split(`;`).forEach(e=>{if(e){let[t,...r]=e.split(`:`),i=r.join(`:`).trim().replace(/^'+|'+$/g,``),a=t.trim();n[a]||(n[a]=i),i===`false`&&(n[a]=!1),i===`true`&&(n[a]=!0),isNaN(i)||(n[a]=parseInt(i,10))}})}return{formatName:t,formatOptions:n}},Te=e=>{let t={};return(n,r,i)=>{let a=i;i&&i.interpolationkey&&i.formatParams&&i.formatParams[i.interpolationkey]&&i[i.interpolationkey]&&(a={...a,[i.interpolationkey]:void 0});let o=r+JSON.stringify(a),s=t[o];return s||(s=e(se(r),i),t[o]=s),s(n)}},Ee=e=>(t,n,r)=>e(se(n),r)(t),De=class{constructor(e={}){this.logger=A.create(`formatter`),this.options=e,this.init(e)}init(e,t={interpolation:{}}){this.formatSeparator=t.interpolation.formatSeparator||`,`;let n=t.cacheInBuiltFormats?Te:Ee;this.formats={number:n((e,t)=>{let n=new Intl.NumberFormat(e,{...t});return e=>n.format(e)}),currency:n((e,t)=>{let n=new Intl.NumberFormat(e,{...t,style:`currency`});return e=>n.format(e)}),datetime:n((e,t)=>{let n=new Intl.DateTimeFormat(e,{...t});return e=>n.format(e)}),relativetime:n((e,t)=>{let n=new Intl.RelativeTimeFormat(e,{...t});return e=>n.format(e,t.range||`day`)}),list:n((e,t)=>{let n=new Intl.ListFormat(e,{...t});return e=>n.format(e)})}}add(e,t){this.formats[e.toLowerCase().trim()]=t}addCached(e,t){this.formats[e.toLowerCase().trim()]=Te(t)}format(e,t,n,r={}){let i=t.split(this.formatSeparator);if(i.length>1&&i[0].indexOf(`(`)>1&&i[0].indexOf(`)`)<0&&i.find(e=>e.indexOf(`)`)>-1)){let e=i.findIndex(e=>e.indexOf(`)`)>-1);i[0]=[i[0],...i.splice(1,e)].join(this.formatSeparator)}return i.reduce((e,t)=>{let{formatName:i,formatOptions:a}=we(t);if(this.formats[i]){let t=e;try{let o=r?.formatParams?.[r.interpolationkey]||{},s=o.locale||o.lng||r.locale||r.lng||n;t=this.formats[i](e,s,{...a,...r,...o})}catch(e){this.logger.warn(e)}return t}else this.logger.warn(`there was no format function for ${i}`);return e},e)}},Oe=(e,t)=>{e.pending[t]!==void 0&&(delete e.pending[t],e.pendingCount--)},ke=class extends ce{constructor(e,t,n,r={}){super(),this.backend=e,this.store=t,this.services=n,this.languageUtils=n.languageUtils,this.options=r,this.logger=A.create(`backendConnector`),this.waitingReads=[],this.maxParallelReads=r.maxParallelReads||10,this.readingCalls=0,this.maxRetries=r.maxRetries>=0?r.maxRetries:5,this.retryTimeout=r.retryTimeout>=1?r.retryTimeout:350,this.state={},this.queue=[],this.backend?.init?.(n,r.backend,r)}queueLoad(e,t,n,r){let i={},a={},o={},s={};return e.forEach(e=>{let r=!0;t.forEach(t=>{let o=`${e}|${t}`;!n.reload&&this.store.hasResourceBundle(e,t)?this.state[o]=2:this.state[o]<0||(this.state[o]===1?a[o]===void 0&&(a[o]=!0):(this.state[o]=1,r=!1,a[o]===void 0&&(a[o]=!0),i[o]===void 0&&(i[o]=!0),s[t]===void 0&&(s[t]=!0)))}),r||(o[e]=!0)}),(Object.keys(i).length||Object.keys(a).length)&&this.queue.push({pending:a,pendingCount:Object.keys(a).length,loaded:{},errors:[],callback:r}),{toLoad:Object.keys(i),pending:Object.keys(a),toLoadLanguages:Object.keys(o),toLoadNamespaces:Object.keys(s)}}loaded(e,t,n){let r=e.split(`|`),i=r[0],a=r[1];t&&this.emit(`failedLoading`,i,a,t),!t&&n&&this.store.addResourceBundle(i,a,n,void 0,void 0,{skipCopy:!0}),this.state[e]=t?-1:2,t&&n&&(this.state[e]=0);let o={};this.queue.forEach(n=>{w(n.loaded,[i],a),Oe(n,e),t&&n.errors.push(t),n.pendingCount===0&&!n.done&&(Object.keys(n.loaded).forEach(e=>{o[e]||(o[e]={});let t=n.loaded[e];t.length&&t.forEach(t=>{o[e][t]===void 0&&(o[e][t]=!0)})}),n.done=!0,n.errors.length?n.callback(n.errors):n.callback())}),this.emit(`loaded`,o),this.queue=this.queue.filter(e=>!e.done)}read(e,t,n,r=0,i=this.retryTimeout,a){if(!e.length)return a(null,{});if(this.readingCalls>=this.maxParallelReads){this.waitingReads.push({lng:e,ns:t,fcName:n,tried:r,wait:i,callback:a});return}this.readingCalls++;let o=(o,s)=>{if(this.readingCalls--,this.waitingReads.length>0){let e=this.waitingReads.shift();this.read(e.lng,e.ns,e.fcName,e.tried,e.wait,e.callback)}if(o&&s&&r<this.maxRetries){setTimeout(()=>{this.read.call(this,e,t,n,r+1,i*2,a)},i);return}a(o,s)},s=this.backend[n].bind(this.backend);if(s.length===2){try{let n=s(e,t);n&&typeof n.then==`function`?n.then(e=>o(null,e)).catch(o):o(null,n)}catch(e){o(e)}return}return s(e,t,o)}prepareLoading(e,t,n={},r){if(!this.backend)return this.logger.warn(`No backend was added via i18next.use. Will not load resources.`),r&&r();h(e)&&(e=this.languageUtils.toResolveHierarchy(e)),h(t)&&(t=[t]);let i=this.queueLoad(e,t,n,r);if(!i.toLoad.length)return i.pending.length||r(),null;i.toLoad.forEach(e=>{this.loadOne(e)})}load(e,t,n){this.prepareLoading(e,t,{},n)}reload(e,t,n){this.prepareLoading(e,t,{reload:!0},n)}loadOne(e,t=``){let n=e.split(`|`),r=n[0],i=n[1];this.read(r,i,`read`,void 0,void 0,(n,a)=>{n&&this.logger.warn(`${t}loading namespace ${i} for language ${r} failed`,n),!n&&a&&this.logger.log(`${t}loaded namespace ${i} for language ${r}`,a),this.loaded(e,n,a)})}saveMissing(e,t,n,r,i,a={},o=()=>{}){if(this.services?.utils?.hasLoadedNamespace&&!this.services?.utils?.hasLoadedNamespace(t)){this.logger.warn(`did not save key "${n}" as the namespace "${t}" was not yet loaded`,`This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!`);return}if(!(n==null||n===``)){if(this.backend?.create){let s={...a,isUpdate:i},c=this.backend.create.bind(this.backend);if(c.length<6)try{let i;i=c.length===5?c(e,t,n,r,s):c(e,t,n,r),i&&typeof i.then==`function`?i.then(e=>o(null,e)).catch(o):o(null,i)}catch(e){o(e)}else c(e,t,n,r,o,s)}!e||!e[0]||this.store.addResource(e[0],t,n,r)}}},Ae=()=>({debug:!1,initAsync:!0,ns:[`translation`],defaultNS:[`translation`],fallbackLng:[`dev`],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:`all`,preload:!1,simplifyPluralSuffix:!0,keySeparator:`.`,nsSeparator:`:`,pluralSeparator:`_`,contextSeparator:`_`,partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:`fallback`,saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:e=>{let t={};if(typeof e[1]==`object`&&(t=e[1]),h(e[1])&&(t.defaultValue=e[1]),h(e[2])&&(t.tDescription=e[2]),typeof e[2]==`object`||typeof e[3]==`object`){let n=e[3]||e[2];Object.keys(n).forEach(e=>{t[e]=n[e]})}return t},interpolation:{escapeValue:!0,format:e=>e,prefix:`{{`,suffix:`}}`,formatSeparator:`,`,unescapePrefix:`-`,nestingPrefix:`$t(`,nestingSuffix:`)`,nestingOptionsSeparator:`,`,maxReplaces:1e3,skipOnVariables:!0},cacheInBuiltFormats:!0}),je=e=>(h(e.ns)&&(e.ns=[e.ns]),h(e.fallbackLng)&&(e.fallbackLng=[e.fallbackLng]),h(e.fallbackNS)&&(e.fallbackNS=[e.fallbackNS]),e.supportedLngs?.indexOf?.(`cimode`)<0&&(e.supportedLngs=e.supportedLngs.concat([`cimode`])),typeof e.initImmediate==`boolean`&&(e.initAsync=e.initImmediate),e),Me=()=>{},Ne=e=>{Object.getOwnPropertyNames(Object.getPrototypeOf(e)).forEach(t=>{typeof e[t]==`function`&&(e[t]=e[t].bind(e))})},Pe=`__i18next_supportNoticeShown`,Fe=()=>!!(typeof globalThis<`u`&&globalThis[Pe]||typeof process<`u`&&process.env&&process.env.I18NEXT_NO_SUPPORT_NOTICE||typeof process<`u`&&process.env&&process.env.NODE_ENV===`production`),Ie=()=>{typeof globalThis<`u`&&(globalThis[Pe]=!0)},eee=e=>!!(e?.modules?.backend?.name?.indexOf(`Locize`)>0||e?.modules?.backend?.constructor?.name?.indexOf(`Locize`)>0||e?.options?.backend?.backends&&e.options.backend.backends.some(e=>e?.name?.indexOf(`Locize`)>0||e?.constructor?.name?.indexOf(`Locize`)>0)||e?.options?.backend?.projectId||e?.options?.backend?.backendOptions&&e.options.backend.backendOptions.some(e=>e?.projectId)),j=class e extends ce{constructor(e={},t){if(super(),this.options=je(e),this.services={},this.logger=A,this.modules={external:[]},Ne(this),t&&!this.isInitialized&&!e.isClone){if(!this.options.initAsync)return this.init(e,t),this;setTimeout(()=>{this.init(e,t)},0)}}init(e={},t){this.isInitializing=!0,typeof e==`function`&&(t=e,e={}),e.defaultNS==null&&e.ns&&(h(e.ns)?e.defaultNS=e.ns:e.ns.indexOf(`translation`)<0&&(e.defaultNS=e.ns[0]));let n=Ae();this.options={...n,...this.options,...je(e)},this.options.interpolation={...n.interpolation,...this.options.interpolation},e.keySeparator!==void 0&&(this.options.userDefinedKeySeparator=e.keySeparator),e.nsSeparator!==void 0&&(this.options.userDefinedNsSeparator=e.nsSeparator),typeof this.options.overloadTranslationOptionHandler!=`function`&&(this.options.overloadTranslationOptionHandler=n.overloadTranslationOptionHandler),this.options.showSupportNotice!==!1&&!eee(this)&&!Fe()&&(typeof console<`u`&&console.info!==void 0&&console.info(`🌐 i18next is made possible by our own product, Locize — consider powering your project with managed localization (AI, CDN, integrations): https://locize.com 💙`),Ie());let r=e=>e?typeof e==`function`?new e:e:null;if(!this.options.isClone){this.modules.logger?A.init(r(this.modules.logger),this.options):A.init(null,this.options);let e;e=this.modules.formatter?this.modules.formatter:De;let t=new _e(this.options);this.store=new le(this.options.resources,this.options);let i=this.services;i.logger=A,i.resourceStore=this.store,i.languageUtils=t,i.pluralResolver=new be(t,{prepend:this.options.pluralSeparator,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),this.options.interpolation.format&&this.options.interpolation.format!==n.interpolation.format&&this.logger.deprecate(`init: you are still using the legacy format function, please use the new approach: https://www.i18next.com/translation-function/formatting`),e&&(!this.options.interpolation.format||this.options.interpolation.format===n.interpolation.format)&&(i.formatter=r(e),i.formatter.init&&i.formatter.init(i,this.options),this.options.interpolation.format=i.formatter.format.bind(i.formatter)),i.interpolator=new Ce(this.options),i.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},i.backendConnector=new ke(r(this.modules.backend),i.resourceStore,i,this.options),i.backendConnector.on(`*`,(e,...t)=>{this.emit(e,...t)}),this.modules.languageDetector&&(i.languageDetector=r(this.modules.languageDetector),i.languageDetector.init&&i.languageDetector.init(i,this.options.detection,this.options)),this.modules.i18nFormat&&(i.i18nFormat=r(this.modules.i18nFormat),i.i18nFormat.init&&i.i18nFormat.init(this)),this.translator=new ge(this.services,this.options),this.translator.on(`*`,(e,...t)=>{this.emit(e,...t)}),this.modules.external.forEach(e=>{e.init&&e.init(this)})}if(this.format=this.options.interpolation.format,t||=Me,this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){let e=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);e.length>0&&e[0]!==`dev`&&(this.options.lng=e[0])}!this.services.languageDetector&&!this.options.lng&&this.logger.warn(`init: no languageDetector is used and no lng is defined`),[`getResource`,`hasResourceBundle`,`getResourceBundle`,`getDataByLanguage`].forEach(e=>{this[e]=(...t)=>this.store[e](...t)}),[`addResource`,`addResources`,`addResourceBundle`,`removeResourceBundle`].forEach(e=>{this[e]=(...t)=>(this.store[e](...t),this)});let i=g(),a=()=>{let e=(e,n)=>{this.isInitializing=!1,this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn(`init: i18next is already initialized. You should call init just once!`),this.isInitialized=!0,this.options.isClone||this.logger.log(`initialized`,this.options),this.emit(`initialized`,this.options),i.resolve(n),t(e,n)};if(this.languages&&!this.isInitialized)return e(null,this.t.bind(this));this.changeLanguage(this.options.lng,e)};return this.options.resources||!this.options.initAsync?a():setTimeout(a,0),i}loadResources(e,t=Me){let n=t,r=h(e)?e:this.language;if(typeof e==`function`&&(n=e),!this.options.resources||this.options.partialBundledLanguages){if(r?.toLowerCase()===`cimode`&&(!this.options.preload||this.options.preload.length===0))return n();let e=[],t=t=>{t&&t!==`cimode`&&this.services.languageUtils.toResolveHierarchy(t).forEach(t=>{t!==`cimode`&&e.indexOf(t)<0&&e.push(t)})};r?t(r):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(e=>t(e)),this.options.preload?.forEach?.(e=>t(e)),this.services.backendConnector.load(e,this.options.ns,e=>{!e&&!this.resolvedLanguage&&this.language&&this.setResolvedLanguage(this.language),n(e)})}else n(null)}reloadResources(e,t,n){let r=g();return typeof e==`function`&&(n=e,e=void 0),typeof t==`function`&&(n=t,t=void 0),e||=this.languages,t||=this.options.ns,n||=Me,this.services.backendConnector.reload(e,t,e=>{r.resolve(),n(e)}),r}use(e){if(!e)throw Error(`You are passing an undefined module! Please check the object you are passing to i18next.use()`);if(!e.type)throw Error(`You are passing a wrong module! Please check the object you are passing to i18next.use()`);return e.type===`backend`&&(this.modules.backend=e),(e.type===`logger`||e.log&&e.warn&&e.error)&&(this.modules.logger=e),e.type===`languageDetector`&&(this.modules.languageDetector=e),e.type===`i18nFormat`&&(this.modules.i18nFormat=e),e.type===`postProcessor`&&ue.addPostProcessor(e),e.type===`formatter`&&(this.modules.formatter=e),e.type===`3rdParty`&&this.modules.external.push(e),this}setResolvedLanguage(e){if(!(!e||!this.languages)&&!([`cimode`,`dev`].indexOf(e)>-1)){for(let e=0;e<this.languages.length;e++){let t=this.languages[e];if(!([`cimode`,`dev`].indexOf(t)>-1)&&this.store.hasLanguageSomeTranslations(t)){this.resolvedLanguage=t;break}}!this.resolvedLanguage&&this.languages.indexOf(e)<0&&this.store.hasLanguageSomeTranslations(e)&&(this.resolvedLanguage=e,this.languages.unshift(e))}}changeLanguage(e,t){this.isLanguageChangingTo=e;let n=g();this.emit(`languageChanging`,e);let r=e=>{this.language=e,this.languages=this.services.languageUtils.toResolveHierarchy(e),this.resolvedLanguage=void 0,this.setResolvedLanguage(e)},i=(i,a)=>{a?this.isLanguageChangingTo===e&&(r(a),this.translator.changeLanguage(a),this.isLanguageChangingTo=void 0,this.emit(`languageChanged`,a),this.logger.log(`languageChanged`,a)):this.isLanguageChangingTo=void 0,n.resolve((...e)=>this.t(...e)),t&&t(i,(...e)=>this.t(...e))},a=t=>{!e&&!t&&this.services.languageDetector&&(t=[]);let n=h(t)?t:t&&t[0],a=this.store.hasLanguageSomeTranslations(n)?n:this.services.languageUtils.getBestMatchFromCodes(h(t)?[t]:t);a&&(this.language||r(a),this.translator.language||this.translator.changeLanguage(a),this.services.languageDetector?.cacheUserLanguage?.(a)),this.loadResources(a,e=>{i(e,a)})};return!e&&this.services.languageDetector&&!this.services.languageDetector.async?a(this.services.languageDetector.detect()):!e&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect.length===0?this.services.languageDetector.detect().then(a):this.services.languageDetector.detect(a):a(e),n}getFixedT(e,t,n){let r=(e,t,...i)=>{let a;a=typeof t==`object`?{...t}:this.options.overloadTranslationOptionHandler([e,t].concat(i)),a.lng=a.lng||r.lng,a.lngs=a.lngs||r.lngs,a.ns=a.ns||r.ns,a.keyPrefix!==``&&(a.keyPrefix=a.keyPrefix||n||r.keyPrefix);let o={...this.options,...a};typeof a.keyPrefix==`function`&&(a.keyPrefix=pe(a.keyPrefix,o));let s=this.options.keySeparator||`.`,c;return a.keyPrefix&&Array.isArray(e)?c=e.map(e=>(typeof e==`function`&&(e=pe(e,o)),`${a.keyPrefix}${s}${e}`)):(typeof e==`function`&&(e=pe(e,o)),c=a.keyPrefix?`${a.keyPrefix}${s}${e}`:e),this.t(c,a)};return h(e)?r.lng=e:r.lngs=e,r.ns=t,r.keyPrefix=n,r}t(...e){return this.translator?.translate(...e)}exists(...e){return this.translator?.exists(...e)}setDefaultNamespace(e){this.options.defaultNS=e}hasLoadedNamespace(e,t={}){if(!this.isInitialized)return this.logger.warn(`hasLoadedNamespace: i18next was not initialized`,this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn(`hasLoadedNamespace: i18n.languages were undefined or empty`,this.languages),!1;let n=t.lng||this.resolvedLanguage||this.languages[0],r=this.options?this.options.fallbackLng:!1,i=this.languages[this.languages.length-1];if(n.toLowerCase()===`cimode`)return!0;let a=(e,t)=>{let n=this.services.backendConnector.state[`${e}|${t}`];return n===-1||n===0||n===2};if(t.precheck){let e=t.precheck(this,a);if(e!==void 0)return e}return!!(this.hasResourceBundle(n,e)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||a(n,e)&&(!r||a(i,e)))}loadNamespaces(e,t){let n=g();return this.options.ns?(h(e)&&(e=[e]),e.forEach(e=>{this.options.ns.indexOf(e)<0&&this.options.ns.push(e)}),this.loadResources(e=>{n.resolve(),t&&t(e)}),n):(t&&t(),Promise.resolve())}loadLanguages(e,t){let n=g();h(e)&&(e=[e]);let r=this.options.preload||[],i=e.filter(e=>r.indexOf(e)<0&&this.services.languageUtils.isSupportedCode(e));return i.length?(this.options.preload=r.concat(i),this.loadResources(e=>{n.resolve(),t&&t(e)}),n):(t&&t(),Promise.resolve())}dir(e){if(e||=this.resolvedLanguage||(this.languages?.length>0?this.languages[0]:this.language),!e)return`rtl`;try{let t=new Intl.Locale(e);if(t&&t.getTextInfo){let e=t.getTextInfo();if(e&&e.direction)return e.direction}}catch{}let t=`ar.shu.sqr.ssh.xaa.yhd.yud.aao.abh.abv.acm.acq.acw.acx.acy.adf.ads.aeb.aec.afb.ajp.apc.apd.arb.arq.ars.ary.arz.auz.avl.ayh.ayl.ayn.ayp.bbz.pga.he.iw.ps.pbt.pbu.pst.prp.prd.ug.ur.ydd.yds.yih.ji.yi.hbo.men.xmn.fa.jpr.peo.pes.prs.dv.sam.ckb`.split(`.`),n=this.services?.languageUtils||new _e(Ae());return e.toLowerCase().indexOf(`-latn`)>1?`ltr`:t.indexOf(n.getLanguagePartFromCode(e))>-1||e.toLowerCase().indexOf(`-arab`)>1?`rtl`:`ltr`}static createInstance(t={},n){let r=new e(t,n);return r.createInstance=e.createInstance,r}cloneInstance(t={},n=Me){let r=t.forkResourceStore;r&&delete t.forkResourceStore;let i={...this.options,...t,isClone:!0},a=new e(i);if((t.debug!==void 0||t.prefix!==void 0)&&(a.logger=a.logger.clone(t)),[`store`,`services`,`language`].forEach(e=>{a[e]=this[e]}),a.services={...this.services},a.services.utils={hasLoadedNamespace:a.hasLoadedNamespace.bind(a)},r&&(a.store=new le(Object.keys(this.store.data).reduce((e,t)=>(e[t]={...this.store.data[t]},e[t]=Object.keys(e[t]).reduce((n,r)=>(n[r]={...e[t][r]},n),e[t]),e),{}),i),a.services.resourceStore=a.store),t.interpolation){let e={...Ae().interpolation,...this.options.interpolation,...t.interpolation},n={...i,interpolation:e};a.services.interpolator=new Ce(n)}return a.translator=new ge(a.services,i),a.translator.on(`*`,(e,...t)=>{a.emit(e,...t)}),a.init(i,n),a.translator.options=i,a.translator.backendConnector.services.utils={hasLoadedNamespace:a.hasLoadedNamespace.bind(a)},a}toJSON(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}}.createInstance();j.createInstance,j.dir,j.init,j.loadResources,j.reloadResources,j.use,j.changeLanguage,j.getFixedT;var M=j.t;j.exists,j.setDefaultNamespace,j.hasLoadedNamespace,j.loadNamespaces,j.loadLanguages;var Le=f.z.object({created_at:f.z.string(),updated_at:f.z.string()}),Re=f.z.object({id:f.z.string(),version:f.z.string().optional()}),ze=f.z.object({name:f.z.string(),version:f.z.string()}),Be=f.z.object({name:f.z.string(),value:f.z.string().optional()}),Ve=f.z.object({name:f.z.string().max(255),code:f.z.string().max(1e5),supported_triggers:f.z.array(Re).optional(),runtime:f.z.string().max(50).optional(),dependencies:f.z.array(ze).optional(),secrets:f.z.array(Be).optional(),is_system:f.z.boolean().optional(),inherit:f.z.boolean().optional()}),He=Ve.partial().extend({status:f.z.enum([`draft`,`built`]).optional(),deployed_at:f.z.string().optional()}),Ue=Ve.extend({id:f.z.string(),tenant_id:f.z.string(),status:f.z.enum([`draft`,`built`]).default(`built`),deployed_at:f.z.string().optional(),secrets:f.z.array(f.z.object({name:f.z.string(),value:f.z.string().optional()})).optional()}).extend(Le.shape),We=f.z.string(),Ge=f.z.enum([`unspecified`,`pending`,`final`,`partial`,`canceled`,`suspended`]),Ke=f.z.object({id:f.z.string(),msg:f.z.string(),url:f.z.string().optional()}),qe=f.z.object({action_name:f.z.string(),error:Ke.nullable(),started_at:f.z.string(),ended_at:f.z.string()}),Je=f.z.object({level:f.z.enum([`log`,`info`,`warn`,`error`,`debug`]),message:f.z.string()}),Ye=f.z.array(f.z.object({action_name:f.z.string(),lines:f.z.array(Je)})),Xe=f.z.object({id:f.z.string(),tenant_id:f.z.string(),trigger_id:We,status:Ge,results:f.z.array(qe),logs:Ye.optional(),created_at:f.z.string(),updated_at:f.z.string()}),Ze=Xe.omit({tenant_id:!0,created_at:!0,updated_at:!0}),Qe=f.z.object({action_id:f.z.string(),code:f.z.string().max(1e5),runtime:f.z.string().max(50).optional(),dependencies:f.z.array(ze).optional(),secrets:f.z.array(Be).optional(),supported_triggers:f.z.array(Re).optional(),deployed:f.z.boolean().default(!0)}),$e=Qe.extend({id:f.z.string(),tenant_id:f.z.string(),number:f.z.number().int()}).extend(Le.shape),et=f.z.enum([`user_action`,`admin_action`,`system`,`api`]),tt=f.z.object({type:f.z.enum([`user`,`admin`,`system`,`api_key`,`client_credentials`]),id:f.z.string().optional(),email:f.z.string().optional(),org_id:f.z.string().optional(),org_name:f.z.string().optional(),scopes:f.z.array(f.z.string()).optional(),client_id:f.z.string().optional()}),nt=f.z.object({type:f.z.string(),id:f.z.string(),before:f.z.record(f.z.string(),f.z.unknown()).optional(),after:f.z.record(f.z.string(),f.z.unknown()).optional(),diff:f.z.record(f.z.string(),f.z.object({old:f.z.unknown(),new:f.z.unknown()})).optional()}),rt=f.z.object({method:f.z.string(),path:f.z.string(),query:f.z.record(f.z.string(),f.z.string()).optional(),body:f.z.unknown().optional(),ip:f.z.string(),user_agent:f.z.string().optional(),correlation_id:f.z.string().optional()}),it=f.z.object({status_code:f.z.number(),body:f.z.unknown().optional()}),at=f.z.object({country_code:f.z.string(),city_name:f.z.string(),latitude:f.z.string(),longitude:f.z.string(),time_zone:f.z.string(),continent_code:f.z.string()}),ot=f.z.object({name:f.z.string(),version:f.z.string(),env:f.z.record(f.z.string(),f.z.string()).optional()}),st=f.z.object({tenant_id:f.z.string(),event_type:f.z.string(),log_type:f.z.string(),description:f.z.string().optional(),category:et,actor:tt,target:nt,request:rt,response:it.optional(),connection:f.z.string().optional(),strategy:f.z.string().optional(),strategy_type:f.z.string().optional(),audience:f.z.string().optional(),scope:f.z.string().optional(),location:at.optional(),auth0_client:ot.optional(),hostname:f.z.string(),is_mobile:f.z.boolean().optional(),timestamp:f.z.string()}),ct=st.extend({id:f.z.string()}),lt=f.z.enum([`AUTH0`,`EMAIL`,`REDIRECT`]),ut=f.z.enum([`CREATE_USER`,`GET_USER`,`UPDATE_USER`,`SEND_REQUEST`,`SEND_EMAIL`]),dt=f.z.enum([`VERIFY_EMAIL`]),ft=f.z.object({require_mx_record:f.z.boolean().optional(),block_aliases:f.z.boolean().optional(),block_free_emails:f.z.boolean().optional(),block_disposable_emails:f.z.boolean().optional(),blocklist:f.z.array(f.z.string()).optional(),allowlist:f.z.array(f.z.string()).optional()}),pt=f.z.object({id:f.z.string(),alias:f.z.string().max(100).optional(),type:f.z.literal(`AUTH0`),action:f.z.literal(`UPDATE_USER`),allow_failure:f.z.boolean().optional(),mask_output:f.z.boolean().optional(),params:f.z.object({connection_id:f.z.string().optional(),user_id:f.z.string(),changes:f.z.record(f.z.string(),f.z.any())})}),mt=f.z.object({id:f.z.string(),alias:f.z.string().max(100).optional(),type:f.z.literal(`EMAIL`),action:f.z.literal(`VERIFY_EMAIL`),allow_failure:f.z.boolean().optional(),mask_output:f.z.boolean().optional(),params:f.z.object({email:f.z.string(),rules:ft.optional()})}),ht=f.z.enum([`change-email`,`account`,`custom`]),gt=f.z.object({id:f.z.string(),alias:f.z.string().max(100).optional(),type:f.z.literal(`REDIRECT`),action:f.z.literal(`REDIRECT_USER`),allow_failure:f.z.boolean().optional(),mask_output:f.z.boolean().optional(),params:f.z.object({target:ht.openapi({description:`The predefined target to redirect to, or 'custom' for a custom URL`}),custom_url:f.z.string().optional().openapi({description:`Custom URL to redirect to when target is 'custom'`})})}),_t=f.z.union([pt,mt,gt]),vt=f.z.object({name:f.z.string().min(1).max(150).openapi({description:`The name of the flow`}),actions:f.z.array(_t).optional().default([]).openapi({description:`The list of actions to execute in sequence`})}),yt=vt.extend(Le.shape).extend({id:f.z.string().openapi({description:`Unique identifier for the flow`,example:`af_12tMpdJ3iek7svMyZkSh5M`})}),tee=f.z.object({page:f.z.string().min(0).optional().default(`0`).transform(e=>parseInt(e,10)).openapi({description:`The page number where 0 is the first page`}),per_page:f.z.string().min(1).optional().default(`10`).transform(e=>parseInt(e,10)).openapi({description:`The number of items per page`}),include_totals:f.z.string().optional().default(`false`).transform(e=>e===`true`).openapi({description:`If the total number of items should be included in the response`}),sort:f.z.string().regex(/^.+:(-1|1)$/).optional().openapi({description:`A property that should have the format 'string:-1' or 'string:1'`}),q:f.z.string().optional().openapi({description:`A lucene query string used to filter the results`})}),bt=f.z.object({start:f.z.number(),limit:f.z.number(),length:f.z.number(),total:f.z.number().optional()}),xt=f.z.object({email:f.z.string().optional(),email_verified:f.z.boolean().optional(),name:f.z.string().optional(),username:f.z.string().optional(),given_name:f.z.string().optional(),phone_number:f.z.string().optional(),phone_verified:f.z.boolean().optional(),family_name:f.z.string().optional()}).catchall(f.z.any()),St=f.z.object({connection:f.z.string(),user_id:f.z.string(),provider:f.z.string(),isSocial:f.z.boolean(),email:f.z.string().optional(),email_verified:f.z.boolean().optional(),phone_number:f.z.string().optional(),phone_verified:f.z.boolean().optional(),username:f.z.string().optional(),access_token:f.z.string().optional(),access_token_secret:f.z.string().optional(),refresh_token:f.z.string().optional(),profileData:xt.optional()}),Ct=f.z.object({formatted:f.z.string().optional(),street_address:f.z.string().optional(),locality:f.z.string().optional(),region:f.z.string().optional(),postal_code:f.z.string().optional(),country:f.z.string().optional()}).optional(),wt=f.z.object({email:f.z.string().transform(e=>e.toLowerCase()).optional(),username:f.z.string().refine(e=>!e.includes(`@`),{message:`Usernames must not contain "@". Use the email field for email addresses.`}).optional(),phone_number:f.z.string().optional(),phone_verified:f.z.boolean().optional(),given_name:f.z.string().optional(),family_name:f.z.string().optional(),nickname:f.z.string().optional(),name:f.z.string().optional(),picture:f.z.string().optional(),locale:f.z.string().optional(),linked_to:f.z.string().optional(),profileData:f.z.string().optional(),user_id:f.z.string().optional(),app_metadata:f.z.any().default({}).optional(),user_metadata:f.z.any().default({}).optional(),middle_name:f.z.string().optional(),preferred_username:f.z.string().optional(),profile:f.z.string().optional(),website:f.z.string().optional(),gender:f.z.string().optional(),birthdate:f.z.string().optional(),zoneinfo:f.z.string().optional(),address:Ct}),Tt=wt.extend({email_verified:f.z.boolean().default(!1),verify_email:f.z.boolean().optional(),last_ip:f.z.string().optional(),last_login:f.z.string().optional(),user_id:f.z.string().optional(),provider:f.z.string().optional(),connection:f.z.string(),is_social:f.z.boolean().optional(),registration_completed_at:f.z.string().optional(),password:f.z.object({hash:f.z.string(),algorithm:f.z.string()}).optional()}),Et=Tt.omit({password:!0}).extend(Le.shape).extend({user_id:f.z.string(),provider:f.z.string(),is_social:f.z.boolean(),email:f.z.string().optional(),login_count:f.z.number().default(0),identities:f.z.array(St).optional()}),Dt=Et.omit({registration_completed_at:!0}),Ot=wt.extend({login_count:f.z.number(),multifactor:f.z.array(f.z.string()).optional(),last_ip:f.z.string().optional(),last_login:f.z.string().optional(),user_id:f.z.string()}).catchall(f.z.any()),nee=`useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict`,ree=(e=21)=>{let t=``,n=crypto.getRandomValues(new Uint8Array(e|=0));for(;e--;)t+=nee[n[e]&63];return t},kt=f.z.object({client_id:f.z.string().optional().openapi({description:`ID of this client. Generated server-side if omitted (Auth0 behavior).`}),name:f.z.string().min(1).openapi({description:`Name of this client (min length: 1 character, does not allow < or >).`}),description:f.z.string().max(140).optional().openapi({description:`Free text description of this client (max length: 140 characters).`}),global:f.z.boolean().default(!1).openapi({description:`Whether this is your global 'All Applications' client representing legacy tenant settings (true) or a regular client (false).`}),client_secret:f.z.string().default(()=>ree()).optional().openapi({description:`Client secret (which you must not make public).`}),app_type:f.z.enum([`native`,`spa`,`regular_web`,`non_interactive`,`resource_server`,`express_configuration`,`rms`,`box`,`cloudbees`,`concur`,`dropbox`,`mscrm`,`echosign`,`egnyte`,`newrelic`,`office365`,`salesforce`,`sentry`,`sharepoint`,`slack`,`springcm`,`zendesk`,`zoom`,`sso_integration`,`oag`]).default(`regular_web`).optional().openapi({description:`The type of application this client represents`}),logo_uri:f.z.string().url().optional().openapi({description:`URL of the logo to display for this client. Recommended size is 150x150 pixels.`}),is_first_party:f.z.boolean().default(!0).openapi({description:`Whether this client is a first party client (true) or not (false). First-party clients skip the consent screen; third-party clients require explicit user consent for non-basic scopes.`}),oidc_conformant:f.z.boolean().default(!0).openapi({description:`Whether this client conforms to strict OIDC specifications (true) or uses legacy features (false).`}),auth0_conformant:f.z.boolean().default(!0).openapi({description:`Whether this client follows Auth0-compatible behavior (true) or strict OIDC behavior (false). When true, profile/email claims are included in the ID token when scopes are requested. When false, these claims are only available from the userinfo endpoint (strict OIDC 5.4 compliance).`}),callbacks:f.z.array(f.z.string()).default([]).optional().openapi({description:`Comma-separated list of URLs whitelisted for Auth0 to use as a callback to the client after authentication.`}),allowed_origins:f.z.array(f.z.string()).default([]).optional().openapi({description:`Comma-separated list of URLs allowed to make requests from JavaScript to Auth0 API (typically used with CORS). By default, all your callback URLs will be allowed. This field allows you to enter other origins if necessary. You can also use wildcards at the subdomain level (e.g., https://*.contoso.com). Query strings and hash information are not taken into account when validating these URLs.`}),web_origins:f.z.array(f.z.string()).default([]).optional().openapi({description:`Comma-separated list of allowed origins for use with Cross-Origin Authentication, Device Flow, and web message response mode.`}),client_aliases:f.z.array(f.z.string()).default([]).optional().openapi({description:`List of audiences/realms for SAML protocol. Used by the wsfed addon.`}),allowed_clients:f.z.array(f.z.string()).default([]).optional().openapi({description:`List of allow clients and API ids that are allowed to make delegation requests. Empty means all all your clients are allowed.`}),connections:f.z.array(f.z.string()).default([]).optional().openapi({description:`List of connection IDs enabled for this client. The order determines the display order on the login page.`}),allowed_logout_urls:f.z.array(f.z.string()).default([]).optional().openapi({description:`Comma-separated list of URLs that are valid to redirect to after logout from Auth0. Wildcards are allowed for subdomains.`}),session_transfer:f.z.record(f.z.string(),f.z.any()).default({}).optional().openapi({description:`Native to Web SSO Configuration`}),oidc_logout:f.z.record(f.z.string(),f.z.any()).default({}).optional().openapi({description:`Configuration for OIDC backchannel logout`}),grant_types:f.z.array(f.z.string()).default([]).optional().openapi({description:`List of grant types supported for this application. Can include authorization_code, implicit, refresh_token, client_credentials, password, http://auth0.com/oauth/grant-type/password-realm, http://auth0.com/oauth/grant-type/mfa-oob, http://auth0.com/oauth/grant-type/mfa-otp, http://auth0.com/oauth/grant-type/mfa-recovery-code, urn:openid:params:grant-type:ciba, and urn:ietf:params:oauth:grant-type:device_code.`}),jwt_configuration:f.z.record(f.z.string(),f.z.any()).default({}).optional().openapi({description:`Configuration related to JWTs for the client.`}),signing_keys:f.z.array(f.z.record(f.z.string(),f.z.any())).default([]).optional().openapi({description:`Signing certificates associated with this client.`}),encryption_key:f.z.record(f.z.string(),f.z.any()).default({}).optional().openapi({description:`Encryption used for WsFed responses with this client.`}),sso:f.z.boolean().default(!1).openapi({description:`Applies only to SSO clients and determines whether Auth0 will handle Single Sign On (true) or whether the Identity Provider will (false).`}),sso_disabled:f.z.boolean().default(!1).openapi({description:`Whether Single Sign On is disabled for this client. When true, existing SSO sessions will not be reused and users must authenticate every time.`}),cross_origin_authentication:f.z.boolean().default(!1).openapi({description:`Whether this client can be used to make cross-origin authentication requests (true) or it is not allowed to make such requests (false).`}),cross_origin_loc:f.z.string().url().optional().openapi({description:`URL of the location in your site where the cross origin verification takes place for the cross-origin auth flow when performing Auth in your own domain instead of Auth0 hosted login page.`}),custom_login_page_on:f.z.boolean().default(!1).openapi({description:`Whether a custom login page is to be used (true) or the default provided login page (false).`}),custom_login_page:f.z.string().optional().openapi({description:`The content (HTML, CSS, JS) of the custom login page.`}),custom_login_page_preview:f.z.string().optional().openapi({description:`The content (HTML, CSS, JS) of the custom login page. (Used on Previews)`}),form_template:f.z.string().optional().openapi({description:`HTML form template to be used for WS-Federation.`}),addons:f.z.record(f.z.string(),f.z.any()).default({}).optional().openapi({description:`Addons enabled for this client and their associated configurations.`}),token_endpoint_auth_method:f.z.enum([`none`,`client_secret_post`,`client_secret_basic`,`client_secret_jwt`,`private_key_jwt`]).default(`client_secret_basic`).optional().openapi({description:"Defines the requested authentication method for the token endpoint. `none` (public client), `client_secret_post` / `client_secret_basic` (HTTP POST / Basic), `client_secret_jwt` (RFC 7523 HMAC assertion using client_secret), or `private_key_jwt` (RFC 7523 asymmetric assertion verified against the client's `jwks` / `jwks_uri`)."}),client_metadata:f.z.record(f.z.string(),f.z.string().max(255)).default({}).optional().openapi({description:`Metadata associated with the client, in the form of an object with string values (max 255 chars). Maximum of 10 metadata properties allowed. Field names (max 255 chars) are alphanumeric and may only include the following special characters: :,-+=_*?"/()<>@ [Tab][Space]`}),hide_sign_up_disabled_error:f.z.boolean().default(!1).optional().openapi({description:"Enumeration-safe variant of the connection-level `disable_signup` flag. When a signup is blocked by the password connection and this is true, the identifier screen does not reveal that an email is unknown — it advances to the OTP/password challenge as if the account existed and fails at credential check. Mitigates email enumeration at the cost of UX: users without an account see a generic credential failure instead of an explicit signup-disabled message."}),mobile:f.z.record(f.z.string(),f.z.any()).default({}).optional().openapi({description:`Additional configuration for native mobile apps.`}),initiate_login_uri:f.z.string().url().optional().openapi({description:`Initiate login uri, must be https`}),native_social_login:f.z.record(f.z.string(),f.z.any()).default({}).optional(),refresh_token:f.z.object({rotation_type:f.z.enum([`rotating`,`non-rotating`]).optional().openapi({description:`Whether refresh tokens for this client are rotated on every exchange (Auth0 'rotating' behavior) or kept stable (legacy non-rotating). Defaults to 'non-rotating' when unset.`}),leeway:f.z.number().int().min(0).max(600).optional().openapi({description:`Seconds after a parent token's first rotation during which presenting it again still mints a fresh sibling child instead of triggering reuse-detection. Defaults to 30s when unset.`}),expiration_type:f.z.enum([`expiring`,`non-expiring`]).optional().openapi({description:`Auth0-compatible: whether refresh tokens expire.`}),token_lifetime:f.z.number().int().min(0).optional().openapi({description:`Auth0-compatible: refresh-token absolute lifetime in seconds.`}),infinite_token_lifetime:f.z.boolean().optional().openapi({description:`Auth0-compatible: when true, refresh tokens have no absolute expiry.`}),idle_token_lifetime:f.z.number().int().min(0).optional().openapi({description:`Auth0-compatible: refresh-token idle (sliding) lifetime in seconds.`}),infinite_idle_token_lifetime:f.z.boolean().optional().openapi({description:`Auth0-compatible: when true, refresh tokens have no idle expiry.`})}).default({}).optional().openapi({description:`Refresh token configuration`}),default_organization:f.z.record(f.z.string(),f.z.any()).default({}).optional().openapi({description:`Defines the default Organization ID and flows`}),organization_usage:f.z.enum([`deny`,`allow`,`require`]).default(`deny`).optional().openapi({description:`Defines how to proceed during an authentication transaction with regards an organization. Can be deny (default), allow or require.`}),organization_require_behavior:f.z.enum([`no_prompt`,`pre_login_prompt`,`post_login_prompt`]).default(`no_prompt`).optional().openapi({description:`Defines how to proceed during an authentication transaction when client.organization_usage: 'require'. Can be no_prompt (default), pre_login_prompt or post_login_prompt. post_login_prompt requires oidc_conformant: true.`}),client_authentication_methods:f.z.record(f.z.string(),f.z.any()).default({}).optional().openapi({description:`Defines client authentication methods.`}),require_pushed_authorization_requests:f.z.boolean().default(!1).openapi({description:`Makes the use of Pushed Authorization Requests mandatory for this client`}),require_proof_of_possession:f.z.boolean().default(!1).openapi({description:`Makes the use of Proof-of-Possession mandatory for this client`}),signed_request_object:f.z.record(f.z.string(),f.z.any()).default({}).optional().openapi({description:`JWT-secured Authorization Requests (JAR) settings.`}),compliance_level:f.z.enum([`none`,`fapi1_adv_pkj_par`,`fapi1_adv_mtls_par`,`fapi2_sp_pkj_mtls`,`fapi2_sp_mtls_mtls`]).optional().openapi({description:`Defines the compliance level for this client, which may restrict it's capabilities`}),par_request_expiry:f.z.number().optional().openapi({description:`Specifies how long, in seconds, a Pushed Authorization Request URI remains valid`}),token_quota:f.z.record(f.z.string(),f.z.any()).default({}).optional(),owner_user_id:f.z.string().optional().openapi({description:`User ID of the consenting user when this client was created via IAT-gated Dynamic Client Registration. NULL for clients created via the Management API or open DCR.`}),registration_type:f.z.enum([`manual`,`open_dcr`,`iat_dcr`]).optional().openapi({description:"Provenance of this client. `manual` = Management API; `open_dcr` = RFC 7591 without IAT; `iat_dcr` = RFC 7591 with an Initial Access Token."}),registration_metadata:f.z.record(f.z.string(),f.z.any()).default({}).optional().openapi({description:"Arbitrary metadata captured at Dynamic Client Registration time that isn't a first-class client field (e.g. integration_type, domain). Also stores `iat_constraints` for clients created via IAT so RFC 7592 PUT can enforce field immutability."}),user_linking_mode:f.z.enum([`builtin`,`off`]).optional().openapi({description:"Per-client override for the built-in email-based user-linking path. `builtin` runs the legacy in-process linking at user creation/email update. `off` disables the legacy path; linking only happens if the tenant has enabled the `account-linking` template hook. When unset, the service-level `userLinkingMode` default applies."})}),At=f.z.object({created_at:f.z.string(),updated_at:f.z.string()}).extend(kt.shape).extend({client_id:f.z.string()}),jt=f.z.object({client_id:f.z.string().min(1).openapi({description:`ID of the client.`}),audience:f.z.string().min(1).openapi({description:`The audience (API identifier) of this client grant.`}),scope:f.z.array(f.z.string()).optional().openapi({description:`Scopes allowed for this client grant.`}),organization_usage:f.z.enum([`deny`,`allow`,`require`]).optional().openapi({description:`Defines whether organizations can be used with client credentials exchanges for this grant.`}),allow_any_organization:f.z.boolean().optional().openapi({description:`If enabled, any organization can be used with this grant. If disabled (default), the grant must be explicitly assigned to the desired organizations.`}),is_system:f.z.boolean().optional().openapi({description:`If enabled, this grant is a special grant created by Auth0. It cannot be modified or deleted directly.`}),subject_type:f.z.enum([`client`,`user`]).optional().openapi({description:`The type of application access the client grant allows. Use of this field is subject to the applicable Free Trial terms in Okta's Master Subscription Agreement.`}),authorization_details_types:f.z.array(f.z.string()).optional().openapi({description:`Types of authorization_details allowed for this client grant. Use of this field is subject to the applicable Free Trial terms in Okta's Master Subscription Agreement.`})}),Mt=f.z.object({id:f.z.string().openapi({description:`ID of the client grant.`})}).extend(jt.shape).extend({created_at:f.z.string().optional(),updated_at:f.z.string().optional()}),Nt=f.z.array(Mt),Pt=f.z.enum([`iat`,`rat`]),Ft=f.z.object({id:f.z.string(),token_hash:f.z.string(),type:Pt,client_id:f.z.string().optional(),sub:f.z.string().optional(),constraints:f.z.record(f.z.string(),f.z.unknown()).optional(),single_use:f.z.boolean().default(!1),expires_at:f.z.string().optional()}),It=f.z.object({created_at:f.z.string(),used_at:f.z.string().optional(),revoked_at:f.z.string().optional()}).extend(Ft.shape),Lt=f.z.object({x:f.z.number(),y:f.z.number()}),Rt=function(e){return e.RICH_TEXT=`RICH_TEXT`,e.NEXT_BUTTON=`NEXT_BUTTON`,e.BACK_BUTTON=`BACK_BUTTON`,e.SUBMIT_BUTTON=`SUBMIT_BUTTON`,e.DIVIDER=`DIVIDER`,e.TEXT=`TEXT`,e.EMAIL=`EMAIL`,e.PASSWORD=`PASSWORD`,e.NUMBER=`NUMBER`,e.PHONE=`PHONE`,e.DATE=`DATE`,e.CHECKBOX=`CHECKBOX`,e.RADIO=`RADIO`,e.SELECT=`SELECT`,e.HIDDEN=`HIDDEN`,e.LEGAL=`LEGAL`,e}({}),zt=function(e){return e.BLOCK=`BLOCK`,e.FIELD=`FIELD`,e}({}),Bt=f.z.object({id:f.z.string(),category:f.z.nativeEnum(zt),type:f.z.nativeEnum(Rt)}),Vt=Bt.extend({category:f.z.literal(`BLOCK`),type:f.z.literal(`RICH_TEXT`),config:f.z.object({content:f.z.string()}).passthrough()}),Ht=Bt.extend({category:f.z.literal(`BLOCK`),type:f.z.union([f.z.literal(`NEXT_BUTTON`),f.z.literal(`BACK_BUTTON`),f.z.literal(`SUBMIT_BUTTON`)]),config:f.z.object({text:f.z.string()}).passthrough()}),Ut=Bt.extend({category:f.z.literal(`FIELD`),type:f.z.literal(`LEGAL`),required:f.z.boolean().optional(),sensitive:f.z.boolean().optional(),config:f.z.object({text:f.z.string()}).passthrough()}),Wt=Bt.extend({category:f.z.literal(`FIELD`),type:f.z.union([f.z.literal(`TEXT`),f.z.literal(`EMAIL`),f.z.literal(`PASSWORD`),f.z.literal(`NUMBER`),f.z.literal(`PHONE`),f.z.literal(`DATE`),f.z.literal(`CHECKBOX`),f.z.literal(`RADIO`),f.z.literal(`SELECT`),f.z.literal(`HIDDEN`)]),required:f.z.boolean().optional(),sensitive:f.z.boolean().optional(),config:f.z.object({label:f.z.string().optional(),placeholder:f.z.string().optional()}).passthrough()}),Gt=f.z.object({id:f.z.string(),category:f.z.string(),type:f.z.string()}).passthrough(),Kt=f.z.union([Vt,Ht,Ut,Wt,Gt]),qt=function(e){return e.STEP=`STEP`,e.FLOW=`FLOW`,e.CONDITION=`CONDITION`,e.ACTION=`ACTION`,e}({}),Jt=f.z.object({id:f.z.string(),type:f.z.literal(`STEP`),coordinates:Lt,alias:f.z.string().optional(),config:f.z.object({components:f.z.array(Kt),next_node:f.z.string()}).passthrough()}),Yt=f.z.object({id:f.z.string(),type:f.z.literal(`FLOW`),coordinates:Lt,alias:f.z.string().optional(),config:f.z.object({flow_id:f.z.string(),next_node:f.z.string()})}),Xt=f.z.object({id:f.z.string(),type:f.z.literal(`ACTION`),coordinates:Lt,alias:f.z.string().optional(),config:f.z.object({action_type:f.z.enum([`REDIRECT`]).openapi({description:`The type of action to perform`}),target:f.z.enum([`change-email`,`account`,`custom`]).openapi({description:`The predefined target to redirect to`}),custom_url:f.z.string().optional().openapi({description:`Custom URL when target is 'custom'`}),next_node:f.z.string().openapi({description:`The next node to navigate to after action (for non-redirect actions)`})}).passthrough()}),Zt=f.z.object({id:f.z.string(),type:f.z.string(),coordinates:Lt}).passthrough(),Qt=f.z.union([Jt,Yt,Xt,Zt]),$t=f.z.object({next_node:f.z.string(),coordinates:Lt}).passthrough(),en=f.z.object({resume_flow:f.z.boolean().optional(),coordinates:Lt}).passthrough(),tn=f.z.object({id:f.z.string(),name:f.z.string(),languages:f.z.object({primary:f.z.string()}).passthrough(),nodes:f.z.array(Qt),start:$t,ending:en,created_at:f.z.string(),updated_at:f.z.string(),links:f.z.object({sdkSrc:f.z.string().optional(),sdk_src:f.z.string().optional()}).passthrough()}).passthrough(),nn=tn.omit({id:!0,created_at:!0,updated_at:!0}),rn=function(e){return e.TOKEN=`token`,e.ID_TOKEN=`id_token`,e.TOKEN_ID_TOKEN=`id_token token`,e.CODE=`code`,e.CODE_ID_TOKEN=`code id_token`,e.CODE_TOKEN=`code token`,e.CODE_ID_TOKEN_TOKEN=`code id_token token`,e}({}),an=function(e){return e.QUERY=`query`,e.FRAGMENT=`fragment`,e.FORM_POST=`form_post`,e.WEB_MESSAGE=`web_message`,e.SAML_POST=`saml_post`,e}({}),on=function(e){return e.S256=`S256`,e.Plain=`plain`,e}({}),sn=f.z.union([f.z.null(),f.z.object({essential:f.z.boolean().optional(),value:f.z.unknown().optional(),values:f.z.array(f.z.unknown()).optional()})]).nullable(),cn=f.z.object({userinfo:f.z.record(f.z.string(),sn).optional(),id_token:f.z.record(f.z.string(),sn).optional()}),ln=f.z.object({client_id:f.z.string(),act_as:f.z.string().optional(),response_type:f.z.nativeEnum(rn).optional(),response_mode:f.z.nativeEnum(an).optional(),redirect_uri:f.z.string().optional(),audience:f.z.string().optional(),organization:f.z.string().optional(),state:f.z.string().optional(),nonce:f.z.string().optional(),scope:f.z.string().optional(),prompt:f.z.string().optional(),code_challenge_method:f.z.nativeEnum(on).optional(),code_challenge:f.z.string().optional(),username:f.z.string().optional(),ui_locales:f.z.string().optional(),max_age:f.z.number().optional(),acr_values:f.z.string().optional(),claims:cn.optional(),vendor_id:f.z.string().optional()}),un=f.z.object({colors:f.z.object({primary:f.z.string(),page_background:f.z.union([f.z.string(),f.z.object({type:f.z.string().optional(),start:f.z.string().optional(),end:f.z.string().optional(),angle_deg:f.z.number().optional()})]).optional()}).optional(),logo_url:f.z.string().optional(),favicon_url:f.z.string().optional(),powered_by_logo_url:f.z.string().optional(),font:f.z.object({url:f.z.string()}).optional(),dark_mode:f.z.enum([`dark`,`light`,`auto`]).optional()}),dn=f.z.enum([`password_reset`,`email_verification`,`otp`,`mfa_otp`,`authorization_code`,`oauth2_state`,`ticket`]),fn=f.z.object({code_id:f.z.string().openapi({description:`The code that will be used in for instance an email verification flow`}),login_id:f.z.string().openapi({description:`The id of the login session that the code is connected to`}),connection_id:f.z.string().optional().openapi({description:`The connection that the code is connected to`}),code_type:dn,code_verifier:f.z.string().optional().openapi({description:`The code verifier used in PKCE in outbound flows`}),code_challenge:f.z.string().optional().openapi({description:`The code challenge used in PKCE in outbound flows`}),code_challenge_method:f.z.enum([`plain`,`S256`]).optional().openapi({description:`The code challenge method used in PKCE in outbound flows`}),redirect_uri:f.z.string().optional().openapi({description:`The redirect URI associated with the code`}),otp:f.z.string().optional().openapi({description:`The one-time password value for OTP-based flows`}),nonce:f.z.string().optional().openapi({description:`The nonce value used for security in OIDC flows`}),state:f.z.string().optional().openapi({description:`The state parameter used for CSRF protection in OAuth flows`}),expires_at:f.z.string(),used_at:f.z.string().optional(),user_id:f.z.string().optional()}),pn=fn.extend({created_at:f.z.string()}),mn=f.z.object({kid:f.z.string().optional(),team_id:f.z.string().optional(),realms:f.z.string().optional(),authentication_method:f.z.string().optional(),client_id:f.z.string().optional(),client_secret:f.z.string().optional(),app_secret:f.z.string().optional(),scope:f.z.string().optional(),authorization_endpoint:f.z.string().optional(),token_endpoint:f.z.string().optional(),userinfo_endpoint:f.z.string().optional(),jwks_uri:f.z.string().optional(),discovery_url:f.z.string().optional(),issuer:f.z.string().optional(),token_endpoint_auth_method:f.z.enum([`client_secret_basic`,`client_secret_post`]).optional(),provider:f.z.string().optional(),from:f.z.string().optional(),twilio_sid:f.z.string().optional(),twilio_token:f.z.string().optional(),icon_url:f.z.string().optional(),domain_aliases:f.z.array(f.z.string()).optional(),callback_url:f.z.string().url().optional(),passwordPolicy:f.z.enum([`none`,`low`,`fair`,`good`,`excellent`]).optional(),password_complexity_options:f.z.object({min_length:f.z.number().optional()}).optional(),password_history:f.z.object({enable:f.z.boolean().optional(),size:f.z.number().optional()}).optional(),password_no_personal_info:f.z.object({enable:f.z.boolean().optional()}).optional(),password_dictionary:f.z.object({enable:f.z.boolean().optional(),dictionary:f.z.array(f.z.string()).optional()}).optional(),disable_signup:f.z.boolean().optional(),brute_force_protection:f.z.boolean().optional(),import_mode:f.z.boolean().optional(),configuration:f.z.object({token_endpoint:f.z.string().optional(),userinfo_endpoint:f.z.string().optional(),client_id:f.z.string().optional(),client_secret:f.z.string().optional(),realm:f.z.string().optional()}).optional(),attributes:f.z.object({email:f.z.object({identifier:f.z.object({active:f.z.boolean().optional()}).optional(),signup:f.z.object({status:f.z.enum([`required`,`optional`,`disabled`]).optional(),verification:f.z.object({active:f.z.boolean().optional()}).optional()}).optional(),validation:f.z.object({allowed:f.z.boolean().optional()}).optional(),unique:f.z.boolean().optional(),profile_required:f.z.boolean().optional(),verification_method:f.z.enum([`link`,`code`]).optional()}).optional(),username:f.z.object({identifier:f.z.object({active:f.z.boolean().optional()}).optional(),signup:f.z.object({status:f.z.enum([`required`,`optional`,`disabled`]).optional()}).optional(),validation:f.z.object({max_length:f.z.number().optional(),min_length:f.z.number().optional(),allowed_types:f.z.object({email:f.z.boolean().optional(),phone_number:f.z.boolean().optional()}).optional()}).optional(),profile_required:f.z.boolean().optional()}).optional(),phone_number:f.z.object({identifier:f.z.object({active:f.z.boolean().optional()}).optional(),signup:f.z.object({status:f.z.enum([`required`,`optional`,`disabled`]).optional()}).optional()}).optional()}).optional(),authentication_methods:f.z.object({password:f.z.object({enabled:f.z.boolean().optional()}).optional(),passkey:f.z.object({enabled:f.z.boolean().optional()}).optional()}).optional(),passkey_options:f.z.object({challenge_ui:f.z.enum([`both`,`autofill`,`button`]).optional(),local_enrollment_enabled:f.z.boolean().optional(),progressive_enrollment_enabled:f.z.boolean().optional()}).optional(),requires_username:f.z.boolean().optional(),validation:f.z.object({username:f.z.object({min:f.z.number().optional(),max:f.z.number().optional()}).optional()}).optional(),set_user_root_attributes:f.z.enum([`on_each_login`,`on_first_login`,`never_on_login`]).optional()});function hn(e){if(e!==null){if(Array.isArray(e))return e.filter(e=>e!==null).map(hn);if(e&&typeof e==`object`){let t={};for(let[n,r]of Object.entries(e))r!==null&&(t[n]=hn(r));return t}return e}}var gn=f.z.object({id:f.z.string().optional(),name:f.z.string(),display_name:f.z.string().optional(),strategy:f.z.string(),options:f.z.preprocess(e=>e===null?{}:hn(e),mn).default({}),enabled_clients:f.z.array(f.z.string()).default([]).optional(),response_type:f.z.custom().optional(),response_mode:f.z.custom().optional(),is_domain_connection:f.z.boolean().optional(),show_as_button:f.z.boolean().optional(),metadata:f.z.record(f.z.string(),f.z.any()).optional(),is_system:f.z.boolean().optional()}),_n=f.z.object({id:f.z.string(),created_at:f.z.string().transform(e=>e===null?``:e),updated_at:f.z.string().transform(e=>e===null?``:e)}).extend(gn.shape),vn=f.z.object({domain:f.z.string(),custom_domain_id:f.z.string().optional(),type:f.z.enum([`auth0_managed_certs`,`self_managed_certs`]),verification_method:f.z.enum([`txt`]).optional(),tls_policy:f.z.enum([`recommended`]).optional(),custom_client_ip_header:f.z.enum([`true-client-ip`,`cf-connecting-ip`,`x-forwarded-for`,`x-azure-clientip`,`null`]).optional(),domain_metadata:f.z.record(f.z.string(),f.z.string().max(255)).optional()}),yn=f.z.discriminatedUnion(`name`,[f.z.object({name:f.z.literal(`txt`),record:f.z.string(),domain:f.z.string()}),f.z.object({name:f.z.literal(`http`),http_body:f.z.string(),http_url:f.z.string()})]),bn=vn.extend({custom_domain_id:f.z.string(),primary:f.z.boolean(),status:f.z.enum([`disabled`,`pending`,`pending_verification`,`ready`]),origin_domain_name:f.z.string().optional(),verification:f.z.object({methods:f.z.array(yn)}).optional(),tls_policy:f.z.string().optional()}),xn=vn.pick({tls_policy:!0,custom_client_ip_header:!0,domain_metadata:!0}).strict(),iee=bn.extend({tenant_id:f.z.string()}),Sn=f.z.object({certificate:f.z.string().regex(/^-----BEGIN CERTIFICATE-----[\s\S]+-----END CERTIFICATE-----\s*$/,`must be PEM-encoded; include the full certificate chain in leaf-first order`),private_key:f.z.string().regex(/-----BEGIN (RSA |EC |ENCRYPTED )?PRIVATE KEY-----[\s\S]+-----END \1PRIVATE KEY-----\s*$/,`must be a PEM-encoded private key`)}),Cn=f.z.object({id:f.z.string(),order:f.z.number().optional(),visible:f.z.boolean().optional().default(!0)}),wn=Cn.extend({category:f.z.literal(`BLOCK`).optional()}),aee=wn.extend({type:f.z.literal(`DIVIDER`),config:f.z.object({text:f.z.string().optional()}).optional()}),oee=wn.extend({type:f.z.literal(`HTML`),config:f.z.object({content:f.z.string().optional()}).optional()}),Tn=wn.extend({type:f.z.literal(`IMAGE`),config:f.z.object({src:f.z.string().optional(),alt:f.z.string().optional(),width:f.z.number().optional(),height:f.z.number().optional()}).optional()}),En=wn.extend({type:f.z.literal(`JUMP_BUTTON`),config:f.z.object({text:f.z.string().optional(),target_step:f.z.string().optional()})}),Dn=wn.extend({type:f.z.literal(`RESEND_BUTTON`),config:f.z.object({text:f.z.string().optional(),resend_action:f.z.string().optional()})}),On=wn.extend({type:f.z.literal(`NEXT_BUTTON`),config:f.z.object({text:f.z.string().optional()})}),kn=wn.extend({type:f.z.literal(`PREVIOUS_BUTTON`),config:f.z.object({text:f.z.string().optional()})}),An=wn.extend({type:f.z.literal(`RICH_TEXT`),config:f.z.object({content:f.z.string().optional()}).optional()}),jn=Cn.extend({category:f.z.literal(`WIDGET`).optional(),label:f.z.string().min(1).optional(),hint:f.z.string().min(1).max(500).optional(),required:f.z.boolean().optional(),sensitive:f.z.boolean().optional()}),Mn=jn.extend({type:f.z.literal(`AUTH0_VERIFIABLE_CREDENTIALS`),config:f.z.object({credential_type:f.z.string().optional()})}),Nn=jn.extend({type:f.z.literal(`GMAPS_ADDRESS`),config:f.z.object({api_key:f.z.string().optional()})}),Pn=jn.extend({type:f.z.literal(`RECAPTCHA`),config:f.z.object({site_key:f.z.string().optional()})}),Fn=Cn.extend({category:f.z.literal(`FIELD`).optional(),label:f.z.string().min(1).optional(),hint:f.z.string().min(1).max(500).optional(),messages:f.z.array(f.z.object({id:f.z.number().optional(),text:f.z.string(),type:f.z.enum([`info`,`error`,`success`,`warning`])})).optional(),required:f.z.boolean().optional(),sensitive:f.z.boolean().optional()}),In=Fn.extend({type:f.z.literal(`BOOLEAN`),config:f.z.object({default_value:f.z.boolean().optional()}).optional()}),Ln=Fn.extend({type:f.z.literal(`CARDS`),config:f.z.object({options:f.z.array(f.z.object({value:f.z.string(),label:f.z.string(),description:f.z.string().optional(),image:f.z.string().optional()})).optional(),multi_select:f.z.boolean().optional()}).optional()}),Rn=Fn.extend({type:f.z.literal(`CHOICE`),config:f.z.object({options:f.z.array(f.z.object({value:f.z.string(),label:f.z.string()})).optional(),display:f.z.enum([`radio`,`checkbox`]).optional(),multiple:f.z.boolean().optional(),default_value:f.z.union([f.z.string(),f.z.array(f.z.string())]).optional()}).optional()}),zn=Fn.extend({type:f.z.literal(`CUSTOM`),config:f.z.object({component:f.z.string().optional(),props:f.z.record(f.z.string(),f.z.any()).optional(),schema:f.z.record(f.z.string(),f.z.any()).optional(),code:f.z.string().optional()})}),Bn=Fn.extend({type:f.z.literal(`DATE`),config:f.z.object({format:f.z.string().optional(),min:f.z.string().optional(),max:f.z.string().optional(),default_value:f.z.string().optional()}).optional()}),Vn=Fn.extend({type:f.z.literal(`DROPDOWN`),config:f.z.object({options:f.z.array(f.z.object({value:f.z.string(),label:f.z.string()})).optional(),placeholder:f.z.string().optional(),searchable:f.z.boolean().optional(),multiple:f.z.boolean().optional(),default_value:f.z.union([f.z.string(),f.z.array(f.z.string())]).optional()}).optional()}),Hn=Fn.extend({type:f.z.literal(`EMAIL`),config:f.z.object({placeholder:f.z.string().optional(),default_value:f.z.string().optional()}).optional()}),Un=Fn.extend({type:f.z.literal(`FILE`),config:f.z.object({accept:f.z.string().optional(),max_size:f.z.number().optional(),multiple:f.z.boolean().optional()}).optional()}),Wn=Fn.extend({type:f.z.literal(`LEGAL`),config:f.z.object({text:f.z.string(),html:f.z.boolean().optional()}).optional()}),Gn=Fn.extend({type:f.z.literal(`NUMBER`),config:f.z.object({placeholder:f.z.string().optional(),min:f.z.number().optional(),max:f.z.number().optional(),step:f.z.number().optional(),default_value:f.z.string().optional()}).optional()}),Kn=Fn.extend({type:f.z.literal(`PASSWORD`),config:f.z.object({placeholder:f.z.string().optional(),min_length:f.z.number().optional(),show_toggle:f.z.boolean().optional(),forgot_password_link:f.z.string().optional(),default_value:f.z.string().optional()}).optional()}),qn=Fn.extend({type:f.z.literal(`PAYMENT`),config:f.z.object({provider:f.z.string().optional(),currency:f.z.string().optional()}).optional()}),Jn=Fn.extend({type:f.z.literal(`SOCIAL`),config:f.z.object({providers:f.z.array(f.z.string()).optional(),provider_details:f.z.array(f.z.object({name:f.z.string(),strategy:f.z.string().optional(),display_name:f.z.string().optional(),icon_url:f.z.string().optional(),href:f.z.string().optional()})).optional()}).optional()}),Yn=Fn.extend({type:f.z.literal(`TEL`),config:f.z.object({placeholder:f.z.string().optional(),default_country:f.z.string().optional(),default_value:f.z.string().optional(),allow_email:f.z.boolean().optional()}).optional()}),Xn=Fn.extend({type:f.z.literal(`TEXT`),config:f.z.object({placeholder:f.z.string().optional(),multiline:f.z.boolean().optional(),max_length:f.z.number().optional(),default_value:f.z.string().optional()}).optional()}),Zn=Fn.extend({type:f.z.literal(`COUNTRY`),config:f.z.object({placeholder:f.z.string().optional(),default_value:f.z.string().optional()}).optional()}),Qn=Fn.extend({type:f.z.literal(`URL`),config:f.z.object({placeholder:f.z.string().optional(),default_value:f.z.string().optional()}).optional()}),$n=f.z.discriminatedUnion(`type`,[aee,oee,Tn,En,Dn,On,kn,An]),er=f.z.discriminatedUnion(`type`,[Mn,Nn,Pn]),tr=f.z.discriminatedUnion(`type`,[In,Ln,Rn,Zn,zn,Bn,Vn,Hn,Un,Wn,Gn,Kn,qn,Jn,Yn,Xn,Qn]),nr=f.z.union([$n,er,tr]),rr=new Set([`BOOLEAN`,`CARDS`,`CHOICE`,`COUNTRY`,`DATE`,`DROPDOWN`,`EMAIL`,`LEGAL`,`NUMBER`,`PASSWORD`,`TEL`,`TEXT`,`URL`]),ir=f.z.object({id:f.z.string(),type:f.z.literal(`submit`),label:f.z.string(),className:f.z.string().optional(),disabled:f.z.boolean().optional().default(!1),order:f.z.number().optional(),visible:f.z.boolean().optional().default(!0),customizations:f.z.record(f.z.string(),f.z.any()).optional()}),ar=f.z.object({x:f.z.number(),y:f.z.number()}),or=f.z.object({id:f.z.string(),type:f.z.literal(`FLOW`),coordinates:ar,alias:f.z.string().min(1).max(150).optional(),config:f.z.object({flow_id:f.z.string().max(30),next_node:f.z.string().optional()})}),sr=f.z.object({id:f.z.string(),type:f.z.literal(`ROUTER`),coordinates:ar,alias:f.z.string().min(1).max(150),config:f.z.object({rules:f.z.array(f.z.object({id:f.z.string(),alias:f.z.string().min(1).max(150).optional(),condition:f.z.any(),next_node:f.z.string()})),fallback:f.z.string()})}),cr=f.z.object({id:f.z.string(),type:f.z.literal(`STEP`),coordinates:ar,alias:f.z.string().min(1).max(150).optional(),config:f.z.object({components:f.z.array(nr),next_node:f.z.string().optional()})}),lr=f.z.discriminatedUnion(`type`,[or,sr,cr]),ur=f.z.object({name:f.z.string().openapi({description:`The name of the form`}),messages:f.z.object({errors:f.z.record(f.z.string(),f.z.any()).optional(),custom:f.z.record(f.z.string(),f.z.any()).optional()}).optional(),languages:f.z.object({primary:f.z.string().optional(),default:f.z.string().optional()}).optional(),translations:f.z.record(f.z.string(),f.z.any()).optional(),nodes:f.z.array(lr).optional(),start:f.z.object({hidden_fields:f.z.array(f.z.object({key:f.z.string(),value:f.z.string()})).optional(),next_node:f.z.string().optional(),coordinates:ar.optional()}).optional(),ending:f.z.object({redirection:f.z.object({delay:f.z.number().optional(),target:f.z.string().optional()}).optional(),after_submit:f.z.object({flow_id:f.z.string().optional()}).optional(),coordinates:ar.optional(),resume_flow:f.z.boolean().optional()}).optional(),style:f.z.object({css:f.z.string().optional()}).optional(),links:f.z.object({sdkSrc:f.z.string().optional(),sdk_src:f.z.string().optional()}).optional()}).openapi({description:`Schema for flow-based forms (matches Auth0 Forms structure)`}),dr=Le.extend(ur.shape).extend({id:f.z.string()}),fr=f.z.object({id:f.z.number().optional(),text:f.z.string(),type:f.z.enum([`info`,`error`,`success`,`warning`])}),pr=f.z.object({id:f.z.string().optional(),text:f.z.string(),href:f.z.string(),linkText:f.z.string().optional()}),mr=f.z.object({name:f.z.string().optional(),action:f.z.string(),method:f.z.enum([`POST`,`GET`]),title:f.z.string().optional(),description:f.z.string().optional(),components:f.z.array(nr),messages:f.z.array(fr).optional(),links:f.z.array(pr).optional(),footer:f.z.string().optional()});function hr(e){return e.category===`BLOCK`}function gr(e){return e.category===`WIDGET`}function see(e){return e.category===`FIELD`}var _r=f.z.enum([`pre-user-registration`,`post-user-registration`,`post-user-login`,`post-user-update`,`validate-registration-username`,`pre-user-deletion`,`post-user-deletion`]),vr=f.z.enum([`pre-user-registration`,`post-user-registration`,`post-user-login`,`validate-registration-username`,`pre-user-deletion`,`post-user-deletion`]),yr=f.z.enum([`post-user-login`,`post-user-registration`,`post-user-update`,`credentials-exchange`]),br=f.z.enum([`post-user-login`,`credentials-exchange`,`pre-user-registration`,`post-user-registration`]),xr=f.z.enum([`ensure-username`,`set-preferred-username`,`account-linking`]),cee={"ensure-username":{name:`Ensure Username`,description:`Automatically assigns a username to users who sign in without one. Creates a linked username account for social/email users.`,trigger_ids:[`post-user-login`]},"set-preferred-username":{name:`Set Preferred Username`,description:`Sets the preferred_username claim on tokens based on the username from the primary or linked user.`,trigger_ids:[`credentials-exchange`]},"account-linking":{name:`Account Linking`,description:`Links a user to an existing primary account with the same verified email. Idempotent — safe to run on every login, registration, and email update.`,trigger_ids:[`post-user-login`,`post-user-registration`,`post-user-update`]}},Sr={enabled:f.z.boolean().default(!1),synchronous:f.z.boolean().default(!1),priority:f.z.number().optional(),hook_id:f.z.string().optional(),metadata:f.z.record(f.z.string(),f.z.unknown()).optional()},lee=f.z.object({...Sr,trigger_id:_r,url:f.z.string()}),uee=f.z.object({...Sr,trigger_id:vr,form_id:f.z.string()}),dee=f.z.object({...Sr,trigger_id:yr,template_id:xr}),fee=f.z.object({...Sr,trigger_id:br,code_id:f.z.string()}),Cr=f.z.union([lee,uee,dee,fee]),pee=f.z.object({...Sr,trigger_id:_r}).extend(Le.shape).extend({hook_id:f.z.string(),url:f.z.string()}),mee=f.z.object({...Sr,trigger_id:vr}).extend(Le.shape).extend({hook_id:f.z.string(),form_id:f.z.string()}),hee=f.z.object({...Sr,trigger_id:yr}).extend(Le.shape).extend({hook_id:f.z.string(),template_id:xr}),gee=f.z.object({...Sr,trigger_id:br}).extend(Le.shape).extend({hook_id:f.z.string(),code_id:f.z.string()}),wr=f.z.union([pee,mee,hee,gee]),Tr=f.z.object({code:f.z.string().max(1e5),secrets:f.z.record(f.z.string(),f.z.string()).optional()}),Er=Tr.extend({id:f.z.string(),tenant_id:f.z.string()}).extend(Le.shape),Dr=f.z.object({name:f.z.string().optional()}),Or=f.z.object({email:f.z.string().optional()}),kr=f.z.object({id:f.z.string().optional(),organization_id:f.z.string().max(50),inviter:Dr,invitee:Or,invitation_url:f.z.string().url(),client_id:f.z.string(),connection_id:f.z.string().optional(),app_metadata:f.z.record(f.z.string(),f.z.any()).default({}).optional(),user_metadata:f.z.record(f.z.string(),f.z.any()).default({}).optional(),ttl_sec:f.z.number().int().max(2592e3).default(604800).optional(),roles:f.z.array(f.z.string()).default([]).optional(),send_invitation_email:f.z.boolean().default(!0).optional()}),Ar=f.z.object({id:f.z.string(),organization_id:f.z.string().max(50),created_at:f.z.string().datetime(),expires_at:f.z.string().datetime(),ticket_id:f.z.string().optional()}).extend(kr.omit({id:!0}).shape),jr=f.z.object({alg:f.z.enum([`RS256`,`RS384`,`RS512`,`ES256`,`ES384`,`ES512`,`HS256`,`HS384`,`HS512`]),kid:f.z.string().optional(),kty:f.z.enum([`RSA`,`EC`,`oct`]),use:f.z.enum([`sig`,`enc`]).optional(),n:f.z.string().optional(),e:f.z.string().optional(),crv:f.z.string().optional(),x:f.z.string().optional(),y:f.z.string().optional(),x5t:f.z.string().optional(),x5c:f.z.array(f.z.string()).optional()}).superRefine((e,t)=>{if(e.kty===`RSA`)for(let n of[`n`,`e`])e[n]||t.addIssue({code:f.z.ZodIssueCode.custom,path:[n],message:`RSA JWK is missing required member '${n}'`});else if(e.kty===`EC`)for(let n of[`crv`,`x`,`y`])e[n]||t.addIssue({code:f.z.ZodIssueCode.custom,path:[n],message:`EC JWK is missing required member '${n}'`})}),Mr=f.z.object({keys:f.z.array(jr)}),Nr=f.z.object({issuer:f.z.string(),authorization_endpoint:f.z.string(),token_endpoint:f.z.string(),userinfo_endpoint:f.z.string(),jwks_uri:f.z.string(),registration_endpoint:f.z.string().optional(),revocation_endpoint:f.z.string(),end_session_endpoint:f.z.string().optional(),scopes_supported:f.z.array(f.z.string()),response_types_supported:f.z.array(f.z.string()),grant_types_supported:f.z.array(f.z.string()).optional(),code_challenge_methods_supported:f.z.array(f.z.string()),response_modes_supported:f.z.array(f.z.string()),subject_types_supported:f.z.array(f.z.string()),id_token_signing_alg_values_supported:f.z.array(f.z.string()),token_endpoint_auth_methods_supported:f.z.array(f.z.string()),claims_supported:f.z.array(f.z.string()),request_uri_parameter_supported:f.z.boolean(),request_parameter_supported:f.z.boolean(),claims_parameter_supported:f.z.boolean().optional(),request_object_signing_alg_values_supported:f.z.array(f.z.string()).optional(),token_endpoint_auth_signing_alg_values_supported:f.z.array(f.z.string()),client_id_metadata_document_supported:f.z.boolean().optional()}),N=function(e){return e.PENDING=`pending`,e.AUTHENTICATED=`authenticated`,e.AWAITING_EMAIL_VERIFICATION=`awaiting_email_verification`,e.AWAITING_MFA=`awaiting_mfa`,e.AWAITING_HOOK=`awaiting_hook`,e.AWAITING_CONTINUATION=`awaiting_continuation`,e.AWAITING_CONSENT=`awaiting_consent`,e.COMPLETED=`completed`,e.FAILED=`failed`,e.EXPIRED=`expired`,e}({}),Pr=f.z.nativeEnum(N),Fr=f.z.object({strategy:f.z.string(),strategy_type:f.z.string()}),Ir=f.z.object({csrf_token:f.z.string(),auth0Client:f.z.string().optional(),authParams:ln,expires_at:f.z.string(),deleted_at:f.z.string().optional(),ip:f.z.string().optional(),useragent:f.z.string().optional(),session_id:f.z.string().optional(),authorization_url:f.z.string().optional(),state:Pr.optional().default(`pending`),state_data:f.z.string().optional(),failure_reason:f.z.string().optional(),user_id:f.z.string().optional(),auth_connection:f.z.string().optional(),auth_strategy:Fr.optional(),authenticated_at:f.z.string().optional()}).openapi({description:`This represents a login sesion`}),Lr=Ir.extend({id:f.z.string().openapi({description:`This is is used as the state in the universal login`}),created_at:f.z.string(),updated_at:f.z.string()}),P={ACLS_SUMMARY:`acls_summary`,ACTIONS_EXECUTION_FAILED:`actions_execution_failed`,API_LIMIT:`api_limit`,API_LIMIT_WARNING:`api_limit_warning`,APPI:`appi`,CIBA_EXCHANGE_FAILED:`ciba_exchange_failed`,CIBA_EXCHANGE_SUCCEEDED:`ciba_exchange_succeeded`,CIBA_START_FAILED:`ciba_start_failed`,CIBA_START_SUCCEEDED:`ciba_start_succeeded`,CODE_LINK_SENT:`cls`,CODE_SENT:`cs`,DEPRECATION_NOTICE:`depnote`,FAILED_LOGIN:`f`,FAILED_BY_CONNECTOR:`fc`,FAILED_CHANGE_EMAIL:`fce`,FAILED_BY_CORS:`fco`,FAILED_CROSS_ORIGIN_AUTHENTICATION:`fcoa`,FAILED_CHANGE_PASSWORD:`fcp`,FAILED_POST_CHANGE_PASSWORD_HOOK:`fcph`,FAILED_CHANGE_PHONE_NUMBER:`fcpn`,FAILED_CHANGE_PASSWORD_REQUEST:`fcpr`,FAILED_CONNECTOR_PROVISIONING:`fcpro`,FAILED_CHANGE_USERNAME:`fcu`,FAILED_DELEGATION:`fd`,FAILED_DEVICE_ACTIVATION:`fdeac`,FAILED_DEVICE_AUTHORIZATION_REQUEST:`fdeaz`,USER_CANCELED_DEVICE_CONFIRMATION:`fdecc`,FAILED_USER_DELETION:`fdu`,FAILED_EXCHANGE_AUTHORIZATION_CODE_FOR_ACCESS_TOKEN:`feacft`,FAILED_EXCHANGE_ACCESS_TOKEN_FOR_CLIENT_CREDENTIALS:`feccft`,FAILED_EXCHANGE_CUSTOM_TOKEN:`fecte`,FAILED_EXCHANGE_DEVICE_CODE_FOR_ACCESS_TOKEN:`fede`,FAILED_FEDERATED_LOGOUT:`federated_logout_failed`,FAILED_EXCHANGE_NATIVE_SOCIAL_LOGIN:`fens`,FAILED_EXCHANGE_PASSWORD_OOB_FOR_ACCESS_TOKEN:`feoobft`,FAILED_EXCHANGE_PASSWORD_OTP_FOR_ACCESS_TOKEN:`feotpft`,FAILED_EXCHANGE_PASSWORD_FOR_ACCESS_TOKEN:`fepft`,FAILED_EXCHANGE_PASSWORDLESS_OTP_FOR_ACCESS_TOKEN:`fepotpft`,FAILED_EXCHANGE_PASSWORD_MFA_RECOVERY_FOR_ACCESS_TOKEN:`fercft`,FAILED_EXCHANGE_ROTATING_REFRESH_TOKEN:`ferrt`,FAILED_EXCHANGE_REFRESH_TOKEN_FOR_ACCESS_TOKEN:`fertft`,FAILED_EXCHANGE_SUBJECT_TOKEN_FOR_ACCESS_TOKEN:`festft`,FAILED_HOOK:`fh`,FAILED_IMPERSONATION:`fimp`,FAILED_INVITE_ACCEPT:`fi`,FAILED_LOGOUT:`flo`,FLOWS_EXECUTION_COMPLETED:`flows_execution_completed`,FLOWS_EXECUTION_FAILED:`flows_execution_failed`,FAILED_SENDING_NOTIFICATION:`fn`,FORMS_SUBMISSION_FAILED:`forms_submission_failed`,FORMS_SUBMISSION_SUCCEEDED:`forms_submission_succeeded`,FAILED_LOGIN_INCORRECT_PASSWORD:`fp`,FAILED_PUSHED_AUTHORIZATION_REQUEST:`fpar`,FAILED_POST_USER_REGISTRATION_HOOK:`fpurh`,FAILED_SIGNUP:`fs`,FAILED_SILENT_AUTH:`fsa`,FAILED_LOGIN_INVALID_EMAIL_USERNAME:`fu`,FAILED_USERS_IMPORT:`fui`,FAILED_VERIFICATION_EMAIL:`fv`,FAILED_VERIFICATION_EMAIL_REQUEST:`fvr`,EMAIL_VERIFICATION_CONFIRMED:`gd_auth_email_verification`,EMAIL_VERIFICATION_FAILED:`gd_auth_fail_email_verification`,MFA_AUTH_FAILED:`gd_auth_failed`,MFA_AUTH_REJECTED:`gd_auth_rejected`,MFA_AUTH_SUCCESS:`gd_auth_succeed`,MFA_ENROLLMENT_COMPLETE:`gd_enrollment_complete`,TOO_MANY_MFA_FAILURES:`gd_otp_rate_limit_exceed`,MFA_RECOVERY_FAILED:`gd_recovery_failed`,MFA_RECOVERY_RATE_LIMIT_EXCEED:`gd_recovery_rate_limit_exceed`,MFA_RECOVERY_SUCCESS:`gd_recovery_succeed`,MFA_EMAIL_SENT:`gd_send_email`,EMAIL_VERIFICATION_SENT:`gd_send_email_verification`,EMAIL_VERIFICATION_SEND_FAILURE:`gd_send_email_verification_failure`,PUSH_NOTIFICATION_SENT:`gd_send_pn`,ERROR_SENDING_MFA_PUSH_NOTIFICATION:`gd_send_pn_failure`,MFA_SMS_SENT:`gd_send_sms`,ERROR_SENDING_MFA_SMS:`gd_send_sms_failure`,MFA_VOICE_CALL_SUCCESS:`gd_send_voice`,MFA_VOICE_CALL_FAILED:`gd_send_voice_failure`,SECOND_FACTOR_STARTED:`gd_start_auth`,MFA_ENROLL_STARTED:`gd_start_enroll`,MFA_ENROLLMENT_FAILED:`gd_start_enroll_failed`,GUARDIAN_TENANT_UPDATE:`gd_tenant_update`,UNENROLL_DEVICE_ACCOUNT:`gd_unenroll`,UPDATE_DEVICE_ACCOUNT:`gd_update_device_account`,WEBAUTHN_CHALLENGE_FAILED:`gd_webauthn_challenge_failed`,WEBAUTHN_ENROLLMENT_FAILED:`gd_webauthn_enrollment_failed`,FAILED_KMS_API_OPERATION:`kms_key_management_failure`,SUCCESS_KMS_API_OPERATION:`kms_key_management_success`,KMS_KEY_STATE_CHANGED:`kms_key_state_changed`,TOO_MANY_CALLS_TO_DELEGATION:`limit_delegation`,BLOCKED_IP_ADDRESS:`limit_mu`,BLOCKED_ACCOUNT_IP:`limit_sul`,BLOCKED_ACCOUNT_EMAIL:`limit_wc`,INFORMATION:`i`,MFA_REQUIRED:`mfar`,MANAGEMENT_API_READ_OPERATION:`mgmt_api_read`,FAILED_AUTHENTICATION_METHOD_OPERATION_MY_ACCOUNT:`my_account_authentication_method_failed`,SUCCESSFUL_AUTHENTICATION_METHOD_OPERATION_MY_ACCOUNT:`my_account_authentication_method_succeeded`,FAILED_OIDC_BACKCHANNEL_LOGOUT:`oidc_backchannel_logout_failed`,SUCCESSFUL_OIDC_BACKCHANNEL_LOGOUT:`oidc_backchannel_logout_succeeded`,ORGANIZATION_MEMBER_ADDED:`organization_member_added`,PASSKEY_CHALLENGE_FAILED:`passkey_challenge_failed`,PASSKEY_CHALLENGE_STARTED:`passkey_challenge_started`,PRE_LOGIN_ASSESSMENT:`pla`,BREACHED_PASSWORD:`pwd_leak`,BREACHED_PASSWORD_ON_RESET:`reset_pwd_leak`,SUCCESS_RESOURCE_CLEANUP:`resource_cleanup`,RICH_CONSENTS_ACCESS_ERROR:`rich_consents_access_error`,SUCCESS_LOGIN:`s`,SUCCESS_API_OPERATION:`sapi`,FAILED_API_OPERATION:`fapi`,SUCCESS_CHANGE_EMAIL:`sce`,SUCCESS_CROSS_ORIGIN_AUTHENTICATION:`scoa`,SUCCESS_CHANGE_PASSWORD:`scp`,SUCCESS_CHANGE_PHONE_NUMBER:`scpn`,SUCCESS_CHANGE_PASSWORD_REQUEST:`scpr`,SUCCESS_CHANGE_USERNAME:`scu`,SUCCESS_CREDENTIAL_VALIDATION:`scv`,SUCCESS_DELEGATION:`sd`,SUCCESS_USER_DELETION:`sdu`,SUCCESS_EXCHANGE_AUTHORIZATION_CODE_FOR_ACCESS_TOKEN:`seacft`,SUCCESS_EXCHANGE_ACCESS_TOKEN_FOR_CLIENT_CREDENTIALS:`seccft`,SUCCESS_EXCHANGE_CUSTOM_TOKEN:`secte`,SUCCESS_EXCHANGE_DEVICE_CODE_FOR_ACCESS_TOKEN:`sede`,SUCCESS_EXCHANGE_NATIVE_SOCIAL_LOGIN:`sens`,SUCCESS_EXCHANGE_PASSWORD_OOB_FOR_ACCESS_TOKEN:`seoobft`,SUCCESS_EXCHANGE_PASSWORD_OTP_FOR_ACCESS_TOKEN:`seotpft`,SUCCESS_EXCHANGE_PASSWORDLESS_OTP_FOR_ACCESS_TOKEN:`sepotpft`,SUCCESS_EXCHANGE_PASSWORD_FOR_ACCESS_TOKEN:`sepft`,SUCCESS_EXCHANGE_PASSKEY_OOB_FOR_ACCESS_TOKEN:`sepkoobft`,SUCCESS_EXCHANGE_PASSKEY_OTP_FOR_ACCESS_TOKEN:`sepkotpft`,SUCCESS_EXCHANGE_PASSKEY_MFA_RECOVERY_FOR_ACCESS_TOKEN:`sepkrcft`,SUCCESS_EXCHANGE_PASSWORD_MFA_RECOVERY_FOR_ACCESS_TOKEN:`sercft`,SUCCESS_EXCHANGE_REFRESH_TOKEN_FOR_ACCESS_TOKEN:`sertft`,SUCCESS_EXCHANGE_SUBJECT_TOKEN_FOR_ACCESS_TOKEN:`sestft`,SUCCESS_IMPERSONATION:`simp`,SUCCESSFULLY_ACCEPTED_USER_INVITE:`si`,BREACHED_PASSWORD_ON_SIGNUP:`signup_pwd_leak`,SUCCESS_LOGOUT:`slo`,SUCCESS_HOOK:`sh`,SUCCESS_PASSWORD_MIGRATION:`spm`,SUCCESS_REVOCATION:`srrt`,SUCCESS_SIGNUP:`ss`,FAILED_SS_SSO_OPERATION:`ss_sso_failure`,INFORMATION_FROM_SS_SSO_OPERATION:`ss_sso_info`,SUCCESS_SS_SSO_OPERATION:`ss_sso_success`,SUCCESS_SILENT_AUTH:`ssa`,SUCCESSFUL_SCIM_OPERATION:`sscim`,SUCCESSFULLY_IMPORTED_USERS:`sui`,SUCCESS_VERIFICATION_EMAIL:`sv`,SUCCESS_VERIFICATION_EMAIL_REQUEST:`svr`,MAX_AMOUNT_OF_AUTHENTICATORS:`too_many_records`,USER_LOGIN_BLOCK_RELEASED:`ublkdu`,FAILED_UNIVERSAL_LOGOUT:`universal_logout_failed`,SUCCESSFUL_UNIVERSAL_LOGOUT:`universal_logout_succeeded`,WARNING_DURING_LOGIN:`w`,WARNING_SENDING_NOTIFICATION:`wn`,WARNING_USER_MANAGEMENT:`wum`},Rr=f.z.string().refine(e=>Object.values(P).includes(e),{message:`Invalid log type`}),zr={[P.ACLS_SUMMARY]:`ACLs Summary`,[P.ACTIONS_EXECUTION_FAILED]:`Actions Execution Failed`,[P.API_LIMIT]:`API Rate Limit Reached`,[P.API_LIMIT_WARNING]:`API Rate Limit Warning`,[P.APPI]:`API Operation`,[P.CIBA_EXCHANGE_FAILED]:`CIBA Exchange Failed`,[P.CIBA_EXCHANGE_SUCCEEDED]:`CIBA Exchange Succeeded`,[P.CIBA_START_FAILED]:`CIBA Start Failed`,[P.CIBA_START_SUCCEEDED]:`CIBA Start Succeeded`,[P.CODE_LINK_SENT]:`Code/Link Sent`,[P.CODE_SENT]:`Code Sent`,[P.DEPRECATION_NOTICE]:`Deprecation Notice`,[P.FAILED_LOGIN]:`Failed Login`,[P.FAILED_BY_CONNECTOR]:`Failed by Connector`,[P.FAILED_CHANGE_EMAIL]:`Failed Change Email`,[P.FAILED_BY_CORS]:`Failed by CORS`,[P.FAILED_CROSS_ORIGIN_AUTHENTICATION]:`Failed Cross Origin Authentication`,[P.FAILED_CHANGE_PASSWORD]:`Failed Change Password`,[P.FAILED_POST_CHANGE_PASSWORD_HOOK]:`Failed Post-Change Password Hook`,[P.FAILED_CHANGE_PHONE_NUMBER]:`Failed Change Phone Number`,[P.FAILED_CHANGE_PASSWORD_REQUEST]:`Failed Change Password Request`,[P.FAILED_CONNECTOR_PROVISIONING]:`Failed Connector Provisioning`,[P.FAILED_CHANGE_USERNAME]:`Failed Change Username`,[P.FAILED_DELEGATION]:`Failed Delegation`,[P.FAILED_DEVICE_ACTIVATION]:`Failed Device Activation`,[P.FAILED_DEVICE_AUTHORIZATION_REQUEST]:`Failed Device Authorization Request`,[P.USER_CANCELED_DEVICE_CONFIRMATION]:`User Canceled Device Confirmation`,[P.FAILED_USER_DELETION]:`Failed User Deletion`,[P.FAILED_EXCHANGE_AUTHORIZATION_CODE_FOR_ACCESS_TOKEN]:`Failed Exchange Authorization Code for Access Token`,[P.FAILED_EXCHANGE_ACCESS_TOKEN_FOR_CLIENT_CREDENTIALS]:`Failed Exchange Access Token for Client Credentials`,[P.FAILED_EXCHANGE_CUSTOM_TOKEN]:`Failed Exchange Custom Token`,[P.FAILED_EXCHANGE_DEVICE_CODE_FOR_ACCESS_TOKEN]:`Failed Exchange Device Code for Access Token`,[P.FAILED_FEDERATED_LOGOUT]:`Failed Federated Logout`,[P.FAILED_EXCHANGE_NATIVE_SOCIAL_LOGIN]:`Failed Exchange Native Social Login`,[P.FAILED_EXCHANGE_PASSWORD_OOB_FOR_ACCESS_TOKEN]:`Failed Exchange Password OOB for Access Token`,[P.FAILED_EXCHANGE_PASSWORD_OTP_FOR_ACCESS_TOKEN]:`Failed Exchange Password OTP for Access Token`,[P.FAILED_EXCHANGE_PASSWORD_FOR_ACCESS_TOKEN]:`Failed Exchange Password for Access Token`,[P.FAILED_EXCHANGE_PASSWORDLESS_OTP_FOR_ACCESS_TOKEN]:`Failed Exchange Passwordless OTP for Access Token`,[P.FAILED_EXCHANGE_PASSWORD_MFA_RECOVERY_FOR_ACCESS_TOKEN]:`Failed Exchange Password MFA Recovery for Access Token`,[P.FAILED_EXCHANGE_ROTATING_REFRESH_TOKEN]:`Failed Exchange Rotating Refresh Token`,[P.FAILED_EXCHANGE_REFRESH_TOKEN_FOR_ACCESS_TOKEN]:`Failed Exchange Refresh Token for Access Token`,[P.FAILED_EXCHANGE_SUBJECT_TOKEN_FOR_ACCESS_TOKEN]:`Failed Exchange Subject Token for Access Token`,[P.FAILED_HOOK]:`Failed Hook`,[P.FAILED_IMPERSONATION]:`Failed Impersonation`,[P.FAILED_INVITE_ACCEPT]:`Failed Invite Accept`,[P.FAILED_LOGOUT]:`Failed Logout`,[P.FLOWS_EXECUTION_COMPLETED]:`Flows Execution Completed`,[P.FLOWS_EXECUTION_FAILED]:`Flows Execution Failed`,[P.FAILED_SENDING_NOTIFICATION]:`Failed Sending Notification`,[P.FORMS_SUBMISSION_FAILED]:`Forms Submission Failed`,[P.FORMS_SUBMISSION_SUCCEEDED]:`Forms Submission Succeeded`,[P.FAILED_LOGIN_INCORRECT_PASSWORD]:`Failed Login - Incorrect Password`,[P.FAILED_PUSHED_AUTHORIZATION_REQUEST]:`Failed Pushed Authorization Request`,[P.FAILED_POST_USER_REGISTRATION_HOOK]:`Failed Post-User Registration Hook`,[P.FAILED_SIGNUP]:`Failed Signup`,[P.FAILED_SILENT_AUTH]:`Failed Silent Auth`,[P.FAILED_LOGIN_INVALID_EMAIL_USERNAME]:`Failed Login - Invalid Email/Username`,[P.FAILED_USERS_IMPORT]:`Failed Users Import`,[P.FAILED_VERIFICATION_EMAIL]:`Failed Verification Email`,[P.FAILED_VERIFICATION_EMAIL_REQUEST]:`Failed Verification Email Request`,[P.EMAIL_VERIFICATION_CONFIRMED]:`Email Verification Confirmed`,[P.EMAIL_VERIFICATION_FAILED]:`Email Verification Failed`,[P.MFA_AUTH_FAILED]:`MFA Auth Failed`,[P.MFA_AUTH_REJECTED]:`MFA Auth Rejected`,[P.MFA_AUTH_SUCCESS]:`MFA Auth Success`,[P.MFA_ENROLLMENT_COMPLETE]:`MFA Enrollment Complete`,[P.TOO_MANY_MFA_FAILURES]:`Too Many MFA Failures`,[P.MFA_RECOVERY_FAILED]:`MFA Recovery Failed`,[P.MFA_RECOVERY_RATE_LIMIT_EXCEED]:`MFA Recovery Rate Limit Exceeded`,[P.MFA_RECOVERY_SUCCESS]:`MFA Recovery Success`,[P.MFA_EMAIL_SENT]:`MFA Email Sent`,[P.EMAIL_VERIFICATION_SENT]:`Email Verification Sent`,[P.EMAIL_VERIFICATION_SEND_FAILURE]:`Email Verification Send Failure`,[P.PUSH_NOTIFICATION_SENT]:`Push Notification Sent`,[P.ERROR_SENDING_MFA_PUSH_NOTIFICATION]:`Error Sending MFA Push Notification`,[P.MFA_SMS_SENT]:`MFA SMS Sent`,[P.ERROR_SENDING_MFA_SMS]:`Error Sending MFA SMS`,[P.MFA_VOICE_CALL_SUCCESS]:`MFA Voice Call Success`,[P.MFA_VOICE_CALL_FAILED]:`MFA Voice Call Failed`,[P.SECOND_FACTOR_STARTED]:`Second Factor Started`,[P.MFA_ENROLL_STARTED]:`MFA Enroll Started`,[P.MFA_ENROLLMENT_FAILED]:`MFA Enrollment Failed`,[P.GUARDIAN_TENANT_UPDATE]:`Guardian Tenant Update`,[P.UNENROLL_DEVICE_ACCOUNT]:`Unenroll Device Account`,[P.UPDATE_DEVICE_ACCOUNT]:`Update Device Account`,[P.WEBAUTHN_CHALLENGE_FAILED]:`WebAuthn Challenge Failed`,[P.WEBAUTHN_ENROLLMENT_FAILED]:`WebAuthn Enrollment Failed`,[P.FAILED_KMS_API_OPERATION]:`Failed KMS API Operation`,[P.SUCCESS_KMS_API_OPERATION]:`Success KMS API Operation`,[P.KMS_KEY_STATE_CHANGED]:`KMS Key State Changed`,[P.TOO_MANY_CALLS_TO_DELEGATION]:`Too Many Calls to Delegation`,[P.BLOCKED_IP_ADDRESS]:`Blocked IP Address`,[P.BLOCKED_ACCOUNT_IP]:`Blocked Account (IP)`,[P.BLOCKED_ACCOUNT_EMAIL]:`Blocked Account (Email)`,[P.INFORMATION]:`Information`,[P.MFA_REQUIRED]:`MFA Required`,[P.MANAGEMENT_API_READ_OPERATION]:`Management API Read Operation`,[P.FAILED_AUTHENTICATION_METHOD_OPERATION_MY_ACCOUNT]:`Failed Authentication Method Operation (My Account)`,[P.SUCCESSFUL_AUTHENTICATION_METHOD_OPERATION_MY_ACCOUNT]:`Successful Authentication Method Operation (My Account)`,[P.FAILED_OIDC_BACKCHANNEL_LOGOUT]:`Failed OIDC Backchannel Logout`,[P.SUCCESSFUL_OIDC_BACKCHANNEL_LOGOUT]:`Successful OIDC Backchannel Logout`,[P.ORGANIZATION_MEMBER_ADDED]:`Organization Member Added`,[P.PASSKEY_CHALLENGE_FAILED]:`Passkey Challenge Failed`,[P.PASSKEY_CHALLENGE_STARTED]:`Passkey Challenge Started`,[P.PRE_LOGIN_ASSESSMENT]:`Pre-Login Assessment`,[P.BREACHED_PASSWORD]:`Breached Password`,[P.BREACHED_PASSWORD_ON_RESET]:`Breached Password on Reset`,[P.SUCCESS_RESOURCE_CLEANUP]:`Success Resource Cleanup`,[P.RICH_CONSENTS_ACCESS_ERROR]:`Rich Consents Access Error`,[P.SUCCESS_LOGIN]:`Success Login`,[P.SUCCESS_API_OPERATION]:`Success API Operation`,[P.FAILED_API_OPERATION]:`Failed API Operation`,[P.SUCCESS_CHANGE_EMAIL]:`Success Change Email`,[P.SUCCESS_CROSS_ORIGIN_AUTHENTICATION]:`Success Cross Origin Authentication`,[P.SUCCESS_CHANGE_PASSWORD]:`Success Change Password`,[P.SUCCESS_CHANGE_PHONE_NUMBER]:`Success Change Phone Number`,[P.SUCCESS_CHANGE_PASSWORD_REQUEST]:`Success Change Password Request`,[P.SUCCESS_CHANGE_USERNAME]:`Success Change Username`,[P.SUCCESS_CREDENTIAL_VALIDATION]:`Success Credential Validation`,[P.SUCCESS_DELEGATION]:`Success Delegation`,[P.SUCCESS_USER_DELETION]:`Success User Deletion`,[P.SUCCESS_EXCHANGE_AUTHORIZATION_CODE_FOR_ACCESS_TOKEN]:`Success Exchange Authorization Code for Access Token`,[P.SUCCESS_EXCHANGE_ACCESS_TOKEN_FOR_CLIENT_CREDENTIALS]:`Success Exchange Access Token for Client Credentials`,[P.SUCCESS_EXCHANGE_CUSTOM_TOKEN]:`Success Exchange Custom Token`,[P.SUCCESS_EXCHANGE_DEVICE_CODE_FOR_ACCESS_TOKEN]:`Success Exchange Device Code for Access Token`,[P.SUCCESS_EXCHANGE_NATIVE_SOCIAL_LOGIN]:`Success Exchange Native Social Login`,[P.SUCCESS_EXCHANGE_PASSWORD_OOB_FOR_ACCESS_TOKEN]:`Success Exchange Password OOB for Access Token`,[P.SUCCESS_EXCHANGE_PASSWORD_OTP_FOR_ACCESS_TOKEN]:`Success Exchange Password OTP for Access Token`,[P.SUCCESS_EXCHANGE_PASSWORDLESS_OTP_FOR_ACCESS_TOKEN]:`Success Exchange Passwordless OTP for Access Token`,[P.SUCCESS_EXCHANGE_PASSWORD_FOR_ACCESS_TOKEN]:`Success Exchange Password for Access Token`,[P.SUCCESS_EXCHANGE_PASSKEY_OOB_FOR_ACCESS_TOKEN]:`Success Exchange Passkey OOB for Access Token`,[P.SUCCESS_EXCHANGE_PASSKEY_OTP_FOR_ACCESS_TOKEN]:`Success Exchange Passkey OTP for Access Token`,[P.SUCCESS_EXCHANGE_PASSKEY_MFA_RECOVERY_FOR_ACCESS_TOKEN]:`Success Exchange Passkey MFA Recovery for Access Token`,[P.SUCCESS_EXCHANGE_PASSWORD_MFA_RECOVERY_FOR_ACCESS_TOKEN]:`Success Exchange Password MFA Recovery for Access Token`,[P.SUCCESS_EXCHANGE_REFRESH_TOKEN_FOR_ACCESS_TOKEN]:`Success Exchange Refresh Token for Access Token`,[P.SUCCESS_EXCHANGE_SUBJECT_TOKEN_FOR_ACCESS_TOKEN]:`Success Exchange Subject Token for Access Token`,[P.SUCCESS_IMPERSONATION]:`Success Impersonation`,[P.SUCCESSFULLY_ACCEPTED_USER_INVITE]:`Successfully Accepted User Invite`,[P.BREACHED_PASSWORD_ON_SIGNUP]:`Breached Password on Signup`,[P.SUCCESS_LOGOUT]:`Success Logout`,[P.SUCCESS_HOOK]:`Success Hook`,[P.SUCCESS_PASSWORD_MIGRATION]:`Success Password Migration`,[P.SUCCESS_REVOCATION]:`Success Revocation`,[P.SUCCESS_SIGNUP]:`Success Signup`,[P.FAILED_SS_SSO_OPERATION]:`Failed SS SSO Operation`,[P.INFORMATION_FROM_SS_SSO_OPERATION]:`Information from SS SSO Operation`,[P.SUCCESS_SS_SSO_OPERATION]:`Success SS SSO Operation`,[P.SUCCESS_SILENT_AUTH]:`Success Silent Auth`,[P.SUCCESSFUL_SCIM_OPERATION]:`Successful SCIM Operation`,[P.SUCCESSFULLY_IMPORTED_USERS]:`Successfully Imported Users`,[P.SUCCESS_VERIFICATION_EMAIL]:`Success Verification Email`,[P.SUCCESS_VERIFICATION_EMAIL_REQUEST]:`Success Verification Email Request`,[P.MAX_AMOUNT_OF_AUTHENTICATORS]:`Max Amount of Authenticators`,[P.USER_LOGIN_BLOCK_RELEASED]:`User Login Block Released`,[P.FAILED_UNIVERSAL_LOGOUT]:`Failed Universal Logout`,[P.SUCCESSFUL_UNIVERSAL_LOGOUT]:`Successful Universal Logout`,[P.WARNING_DURING_LOGIN]:`Warning During Login`,[P.WARNING_SENDING_NOTIFICATION]:`Warning Sending Notification`,[P.WARNING_USER_MANAGEMENT]:`Warning User Management`},Br=(()=>{let e={};for(let[t,n]of Object.entries(P))t.startsWith(`SUCCESS_`)||t.startsWith(`SUCCESSFUL_`)||t.startsWith(`SUCCESSFULLY_`)||t.endsWith(`_SUCCEEDED`)||t.endsWith(`_COMPLETED`)?e[n]=`success`:t.startsWith(`FAILED_`)||t.startsWith(`ERROR_`)||t.startsWith(`BREACHED_`)||t.startsWith(`BLOCKED_`)||t===`MFA_AUTH_FAILED`||t===`MFA_AUTH_REJECTED`||t===`MFA_RECOVERY_FAILED`||t===`MFA_ENROLLMENT_FAILED`||t===`EMAIL_VERIFICATION_FAILED`||t===`WEBAUTHN_CHALLENGE_FAILED`||t===`WEBAUTHN_ENROLLMENT_FAILED`||t===`PASSKEY_CHALLENGE_FAILED`||t===`FLOWS_EXECUTION_FAILED`||t===`FORMS_SUBMISSION_FAILED`||t===`CIBA_EXCHANGE_FAILED`||t===`CIBA_START_FAILED`||t===`ACTIONS_EXECUTION_FAILED`||t===`RICH_CONSENTS_ACCESS_ERROR`||t===`USER_CANCELED_DEVICE_CONFIRMATION`||t===`TOO_MANY_MFA_FAILURES`||t===`MFA_RECOVERY_RATE_LIMIT_EXCEED`||t===`API_LIMIT`||t===`MAX_AMOUNT_OF_AUTHENTICATORS`?e[n]=`failure`:t.startsWith(`WARNING_`)||t===`API_LIMIT_WARNING`||t===`DEPRECATION_NOTICE`||t===`PRE_LOGIN_ASSESSMENT`?e[n]=`warning`:t===`CODE_SENT`||t===`CODE_LINK_SENT`||t===`MFA_EMAIL_SENT`||t===`MFA_SMS_SENT`||t===`EMAIL_VERIFICATION_SENT`||t===`PUSH_NOTIFICATION_SENT`?e[n]=`code_sent`:t===`INFORMATION`||t===`INFORMATION_FROM_SS_SSO_OPERATION`||t===`MANAGEMENT_API_READ_OPERATION`||t===`APPI`||t===`ACLS_SUMMARY`||t===`ORGANIZATION_MEMBER_ADDED`?e[n]=`info`:e[n]=`other`;return e})();function Vr(e){return zr[e]??e}function Hr(e){return Br[e]??`other`}var Ur=f.z.object({name:f.z.string(),version:f.z.string(),env:f.z.object({node:f.z.string().optional()}).optional()}),Wr=f.z.object({country_code:f.z.string().length(2),city_name:f.z.string(),latitude:f.z.string(),longitude:f.z.string(),time_zone:f.z.string(),continent_code:f.z.string()}),Gr=f.z.object({type:Rr,date:f.z.string(),description:f.z.string().optional(),ip:f.z.string().optional(),user_agent:f.z.string().optional(),details:f.z.any().optional(),isMobile:f.z.boolean(),user_id:f.z.string().optional(),user_name:f.z.string().optional(),connection:f.z.string().optional(),connection_id:f.z.string().optional(),client_id:f.z.string().optional(),client_name:f.z.string().optional(),audience:f.z.string().optional(),scope:f.z.string().optional(),strategy:f.z.string().optional(),strategy_type:f.z.string().optional(),hostname:f.z.string().optional(),auth0_client:Ur.optional(),log_id:f.z.string().optional(),location_info:Wr.optional()}),Kr=Gr.extend({log_id:f.z.string()}),qr=f.z.enum([`http`,`eventbridge`,`eventgrid`,`splunk`,`datadog`,`sumo`]),Jr=f.z.enum([`active`,`paused`,`suspended`]),Yr=f.z.object({type:f.z.string(),name:f.z.string()}),Xr=f.z.object({name:f.z.string(),type:qr,status:Jr.optional(),sink:f.z.record(f.z.string(),f.z.unknown()),filters:f.z.array(Yr).optional(),isPriority:f.z.boolean().optional()}),Zr=Xr.extend({id:f.z.string(),status:Jr,created_at:f.z.string().optional(),updated_at:f.z.string().optional()}),Qr=f.z.enum([`auth0`,`cognito`,`okta`,`oidc`]),$r=f.z.object({domain:f.z.string(),client_id:f.z.string(),client_secret:f.z.string(),audience:f.z.string().optional(),scope:f.z.string().optional()}),ei=f.z.object({id:f.z.string().optional(),name:f.z.string(),provider:Qr,connection:f.z.string(),enabled:f.z.boolean().default(!0),credentials:$r}),ti=f.z.object({id:f.z.string(),created_at:f.z.string(),updated_at:f.z.string()}).extend(ei.shape),ni=f.z.object({enabled:f.z.boolean().optional(),shields:f.z.array(f.z.string()).optional(),admin_notification_frequency:f.z.array(f.z.string()).optional(),method:f.z.string().optional(),stage:f.z.object({"pre-user-registration":f.z.object({shields:f.z.array(f.z.string()).optional()}).optional(),"pre-change-password":f.z.object({shields:f.z.array(f.z.string()).optional()}).optional()}).optional()}),ri=f.z.object({enabled:f.z.boolean().optional(),shields:f.z.array(f.z.string()).optional(),allowlist:f.z.array(f.z.string()).optional(),mode:f.z.string().optional(),max_attempts:f.z.number().optional()}),ii=f.z.object({enabled:f.z.boolean().optional(),shields:f.z.array(f.z.string()).optional(),allowlist:f.z.array(f.z.string()).optional(),stage:f.z.object({"pre-login":f.z.object({max_attempts:f.z.number().optional(),rate:f.z.number().optional()}).optional(),"pre-user-registration":f.z.object({max_attempts:f.z.number().optional(),rate:f.z.number().optional()}).optional()}).optional()}),ai=f.z.object({breached_password_detection:ni.optional(),brute_force_protection:ri.optional(),suspicious_ip_throttling:ii.optional()}),oi=f.z.object({id:f.z.string().optional(),user_id:f.z.string(),password:f.z.string(),algorithm:f.z.enum([`bcrypt`,`argon2id`]).default(`argon2id`),is_current:f.z.boolean().default(!0)}),si=oi.extend({id:f.z.string(),created_at:f.z.string(),updated_at:f.z.string()}),ci=f.z.object({initial_user_agent:f.z.string().describe(`First user agent of the device from which this user logged in`),initial_ip:f.z.string().describe(`First IP address associated with this session`),initial_asn:f.z.string().describe(`First autonomous system number associated with this session`),last_user_agent:f.z.string().describe(`Last user agent of the device from which this user logged in`),last_ip:f.z.string().describe(`Last IP address from which this user logged in`),last_asn:f.z.string().describe(`Last autonomous system number from which this user logged in`)}),li=f.z.object({id:f.z.string(),revoked_at:f.z.string().optional(),used_at:f.z.string().optional(),user_id:f.z.string().describe(`The user ID associated with the session`),expires_at:f.z.string().optional(),login_session_id:f.z.string(),idle_expires_at:f.z.string().optional(),device:ci.describe(`Metadata related to the device used in the session`),clients:f.z.array(f.z.string()).describe(`List of client details for the session`)}),ui=f.z.object({created_at:f.z.string(),updated_at:f.z.string(),authenticated_at:f.z.string(),last_interaction_at:f.z.string()}).extend(li.shape),di=f.z.object({kid:f.z.string().openapi({description:`The key id of the signing key`}),tenant_id:f.z.string().optional().openapi({description:`The tenant the key belongs to. Omitted means the key is shared / control-plane scoped.`}),cert:f.z.string().openapi({description:`The public certificate of the signing key`}),fingerprint:f.z.string().openapi({description:`The cert fingerprint`}),thumbprint:f.z.string().openapi({description:`The cert thumbprint`}),pkcs7:f.z.string().optional().openapi({description:`The private key in pkcs7 format`}),current:f.z.boolean().optional().openapi({description:`True if the key is the current key`}),next:f.z.boolean().optional().openapi({description:`True if the key is the next key`}),previous:f.z.boolean().optional().openapi({description:`True if the key is the previous key`}),current_since:f.z.string().optional().openapi({description:`The date and time when the key became the current key`}),current_until:f.z.string().optional().openapi({description:`The date and time when the current key was rotated`}),revoked:f.z.boolean().optional().openapi({description:`True if the key is revoked`}),revoked_at:f.z.string().optional().openapi({description:`The date and time when the key was revoked`}),connection:f.z.string().optional().openapi({description:`The connection identifier associated with the key`}),type:f.z.enum([`jwt_signing`,`saml_encryption`]).openapi({description:`The type of the signing key`})}),fi=f.z.object({id:f.z.string().optional(),audience:f.z.string().optional(),friendly_name:f.z.string(),picture_url:f.z.string().optional(),support_email:f.z.string().optional(),support_url:f.z.string().optional(),sender_email:f.z.string().email().optional(),sender_name:f.z.string().optional(),session_lifetime:f.z.number().optional(),idle_session_lifetime:f.z.number().optional(),ephemeral_session_lifetime:f.z.number().optional(),idle_ephemeral_session_lifetime:f.z.number().optional(),session_cookie:f.z.object({mode:f.z.enum([`persistent`,`non-persistent`]).optional()}).optional(),allowed_logout_urls:f.z.array(f.z.string()).optional(),default_redirection_uri:f.z.string().optional(),default_client_id:f.z.string().optional(),enabled_locales:f.z.array(f.z.string()).optional(),default_directory:f.z.string().optional(),error_page:f.z.object({html:f.z.string().optional(),show_log_link:f.z.boolean().optional(),url:f.z.string().optional()}).nullish(),flags:f.z.object({allow_changing_enable_sso:f.z.boolean().optional(),allow_legacy_delegation_grant_types:f.z.boolean().optional(),allow_legacy_ro_grant_types:f.z.boolean().optional(),allow_legacy_tokeninfo_endpoint:f.z.boolean().optional(),change_pwd_flow_v1:f.z.boolean().optional(),client_id_metadata_document_registration:f.z.boolean().optional(),custom_domains_provisioning:f.z.boolean().optional(),dashboard_insights_view:f.z.boolean().optional(),dashboard_log_streams_next:f.z.boolean().optional(),disable_clickjack_protection_headers:f.z.boolean().optional(),disable_fields_map_fix:f.z.boolean().optional(),disable_impersonation:f.z.boolean().optional(),disable_management_api_sms_obfuscation:f.z.boolean().optional(),enable_adfs_waad_email_verification:f.z.boolean().optional(),enable_apis_section:f.z.boolean().optional(),enable_client_connections:f.z.boolean().optional(),enable_custom_domain_in_emails:f.z.boolean().optional(),enable_dynamic_client_registration:f.z.boolean().optional(),dcr_require_initial_access_token:f.z.boolean().optional(),dcr_allowed_grant_types:f.z.array(f.z.string()).optional(),allow_http_return_to:f.z.array(f.z.string().refine(e=>{try{let t=new URL(e);return t.protocol===`http:`&&(t.pathname===``||t.pathname===`/`)&&!t.search&&!t.hash&&e===t.origin}catch{return!1}},{message:`must be a fully-qualified http origin (scheme + host + port, no path)`})).optional(),enable_idtoken_api2:f.z.boolean().optional(),enable_legacy_logs_search_v2:f.z.boolean().optional(),enable_legacy_profile:f.z.boolean().optional(),enable_pipeline2:f.z.boolean().optional(),enable_public_signup_user_exists_error:f.z.boolean().optional(),enable_sso:f.z.boolean().optional(),enforce_client_authentication_on_passwordless_start:f.z.boolean().optional(),genai_trial:f.z.boolean().optional(),improved_signup_bot_detection_in_classic:f.z.boolean().optional(),mfa_show_factor_list_on_enrollment:f.z.boolean().optional(),no_disclose_enterprise_connections:f.z.boolean().optional(),remove_alg_from_jwks:f.z.boolean().optional(),revoke_refresh_token_grant:f.z.boolean().optional(),trust_azure_adfs_email_verified_connection_property:f.z.boolean().optional(),use_scope_descriptions_for_consent:f.z.boolean().optional(),inherit_global_permissions_in_organizations:f.z.boolean().optional(),restrict_undefined_scopes:f.z.boolean().optional()}).optional(),sandbox_version:f.z.string().optional(),legacy_sandbox_version:f.z.string().optional(),sandbox_versions_available:f.z.array(f.z.string()).optional(),change_password:f.z.object({enabled:f.z.boolean().optional(),html:f.z.string().optional()}).optional(),guardian_mfa_page:f.z.object({enabled:f.z.boolean().optional(),html:f.z.string().optional()}).optional(),device_flow:f.z.object({charset:f.z.enum([`base20`,`digits`]).optional(),mask:f.z.string().max(20).optional()}).optional(),default_token_quota:f.z.object({clients:f.z.object({client_credentials:f.z.record(f.z.string(),f.z.any()).optional()}).optional(),organizations:f.z.object({client_credentials:f.z.record(f.z.string(),f.z.any()).optional()}).optional()}).nullish(),default_audience:f.z.string().optional(),default_organization:f.z.string().optional(),sessions:f.z.object({oidc_logout_prompt_enabled:f.z.boolean().optional()}).optional(),oidc_logout:f.z.object({rp_logout_end_session_endpoint_discovery:f.z.boolean().optional()}).optional(),allow_organization_name_in_authentication_api:f.z.boolean().optional(),customize_mfa_in_postlogin_action:f.z.boolean().optional(),acr_values_supported:f.z.array(f.z.string()).optional(),mtls:f.z.object({enable_endpoint_aliases:f.z.boolean().optional()}).nullish(),pushed_authorization_requests_supported:f.z.boolean().optional(),authorization_response_iss_parameter_supported:f.z.boolean().optional(),deployment_type:f.z.enum([`shared`,`wfp`]).default(`shared`).optional(),provisioning_state:f.z.enum([`pending`,`ready`,`failed`]).default(`ready`).optional(),provisioning_error:f.z.string().max(2048).optional(),provisioning_state_changed_at:f.z.string().optional(),bundle_configuration:f.z.string().max(64).optional(),worker_version:f.z.string().max(64).optional(),worker_script_name:f.z.string().max(255).optional(),storage_kind:f.z.enum([`own_d1`,`existing_d1`,`shared_planetscale`]).optional(),d1_database_id:f.z.string().max(64).optional(),attack_protection:ai.optional(),mfa:f.z.object({policy:f.z.enum([`never`,`always`]).default(`never`).optional(),factors:f.z.object({sms:f.z.boolean().default(!1),otp:f.z.boolean().default(!1),email:f.z.boolean().default(!1),push_notification:f.z.boolean().default(!1),webauthn_roaming:f.z.boolean().default(!1),webauthn_platform:f.z.boolean().default(!1),recovery_code:f.z.boolean().default(!1),duo:f.z.boolean().default(!1)}).optional(),sms_provider:f.z.object({provider:f.z.enum([`twilio`,`vonage`,`aws_sns`,`phone_message_hook`]).optional()}).optional(),twilio:f.z.object({sid:f.z.string().optional(),auth_token:f.z.string().optional(),from:f.z.string().optional(),messaging_service_sid:f.z.string().optional()}).optional(),phone_message:f.z.object({message:f.z.string().optional()}).optional()}).optional()}),pi=f.z.object({created_at:f.z.string().nullable().transform(e=>e??``),updated_at:f.z.string().nullable().transform(e=>e??``)}).extend(fi.shape).extend({id:f.z.string(),is_control_plane:f.z.boolean().optional()}),mi=function(e){return e.RefreshToken=`refresh_token`,e.AuthorizationCode=`authorization_code`,e.ClientCredential=`client_credentials`,e.Passwordless=`passwordless`,e.Password=`password`,e.OTP=`http://auth0.com/oauth/grant-type/passwordless/otp`,e.TokenExchange=`urn:ietf:params:oauth:grant-type:token-exchange`,e}({}),hi=f.z.object({access_token:f.z.string(),id_token:f.z.string().optional(),scope:f.z.string().optional(),state:f.z.string().optional(),refresh_token:f.z.string().optional(),token_type:f.z.string(),expires_in:f.z.number()});f.z.object({code:f.z.string(),state:f.z.string().optional()});var gi=f.z.object({button_border_radius:f.z.number(),button_border_weight:f.z.number(),buttons_style:f.z.enum([`pill`,`rounded`,`sharp`]),input_border_radius:f.z.number(),input_border_weight:f.z.number(),inputs_style:f.z.enum([`pill`,`rounded`,`sharp`]),show_widget_shadow:f.z.boolean(),widget_border_weight:f.z.number(),widget_corner_radius:f.z.number()}),_i=f.z.object({base_focus_color:f.z.string(),base_hover_color:f.z.string(),body_text:f.z.string(),captcha_widget_theme:f.z.enum([`auto`,`dark`,`light`]),error:f.z.string(),header:f.z.string(),icons:f.z.string(),input_background:f.z.string(),input_border:f.z.string(),input_filled_text:f.z.string(),input_labels_placeholders:f.z.string(),links_focused_components:f.z.string(),primary_button:f.z.string(),primary_button_label:f.z.string(),secondary_button_border:f.z.string(),secondary_button_label:f.z.string(),success:f.z.string(),widget_background:f.z.string(),widget_border:f.z.string()}),vi=f.z.object({bold:f.z.boolean(),size:f.z.number()}),yi=f.z.object({body_text:vi,buttons_text:vi,font_url:f.z.string(),input_labels:vi,links:vi,links_style:f.z.enum([`normal`,`underlined`]),reference_text_size:f.z.number(),subtitle:vi,title:vi}),bi=f.z.object({background_color:f.z.string(),background_image_url:f.z.string(),page_layout:f.z.enum([`center`,`left`,`right`]),logo_placement:f.z.enum([`widget`,`chip`,`none`]).optional()}),xi=f.z.object({header_text_alignment:f.z.enum([`center`,`left`,`right`]),logo_height:f.z.number(),logo_position:f.z.enum([`center`,`left`,`none`,`right`]),logo_url:f.z.string(),social_buttons_layout:f.z.enum([`bottom`,`top`])}),Si=f.z.object({borders:gi,colors:_i,displayName:f.z.string(),fonts:yi,page_background:bi,widget:xi}),Ci=Si.extend({themeId:f.z.string()}),wi=f.z.object({universal_login_experience:f.z.enum([`new`,`classic`]).default(`new`),identifier_first:f.z.boolean().default(!0),password_first:f.z.boolean().default(!1),webauthn_platform_first_factor:f.z.boolean()}),Ti=f.z.object({hosts:f.z.array(f.z.string()).optional(),methods:f.z.array(f.z.string()).optional(),path:f.z.string().default(`/*`),headers:f.z.record(f.z.string(),f.z.string()).optional(),query:f.z.record(f.z.string(),f.z.string()).optional()}),Ei=f.z.object({type:f.z.string(),options:f.z.record(f.z.string(),f.z.unknown()).default({})}),Di=f.z.object({id:f.z.string().optional(),custom_domain_id:f.z.string(),priority:f.z.number().int().default(100),match:Ti,handlers:f.z.array(Ei).min(1)}),Oi=Di.extend({id:f.z.string(),tenant_id:f.z.string(),created_at:f.z.string(),updated_at:f.z.string()}),ki=Di.partial().omit({id:!0,custom_domain_id:!0}),Ai=f.z.object({name:f.z.string(),enabled:f.z.boolean().optional().default(!0),default_from_address:f.z.string().optional(),credentials:f.z.record(f.z.string(),f.z.unknown()),settings:f.z.object({}).optional()}),ji=f.z.enum([`verify_email`,`verify_email_by_code`,`reset_email`,`reset_email_by_code`,`welcome_email`,`blocked_account`,`stolen_credentials`,`enrollment_email`,`mfa_oob_code`,`change_password`,`password_reset`,`user_invitation`]),Mi=f.z.object({template:ji,body:f.z.string(),from:f.z.string(),subject:f.z.string(),syntax:f.z.literal(`liquid`).default(`liquid`),resultUrl:f.z.string().optional(),urlLifetimeInSeconds:f.z.number().int().nonnegative().optional(),includeEmailInRedirect:f.z.boolean().default(!1),enabled:f.z.boolean().default(!0)}),Ni=f.z.object({id:f.z.string(),login_id:f.z.string(),user_id:f.z.string(),client_id:f.z.string(),expires_at:f.z.string().optional(),idle_expires_at:f.z.string().optional(),last_exchanged_at:f.z.string().optional(),device:ci,resource_servers:f.z.array(f.z.object({audience:f.z.string(),scopes:f.z.string()})),rotating:f.z.boolean(),token_lookup:f.z.string().optional(),token_hash:f.z.string().optional(),family_id:f.z.string().optional(),rotated_to:f.z.string().optional(),rotated_at:f.z.string().optional()}),_ee=Ni.extend({created_at:f.z.string(),revoked_at:f.z.string().optional()}),vee=f.z.object({to:f.z.string(),message:f.z.string()}),yee=f.z.object({name:f.z.string(),options:f.z.object({})}),Pi=f.z.object({value:f.z.string(),description:f.z.string().optional()}),Fi=f.z.object({token_dialect:f.z.enum([`access_token`,`access_token_authz`]).optional(),enforce_policies:f.z.boolean().optional(),allow_skipping_userinfo:f.z.boolean().optional(),skip_userinfo:f.z.boolean().optional(),persist_client_authorization:f.z.boolean().optional(),enable_introspection_endpoint:f.z.boolean().optional(),mtls:f.z.object({bound_access_tokens:f.z.boolean().optional()}).optional()}),Ii=f.z.object({id:f.z.string().optional(),name:f.z.string(),identifier:f.z.string(),scopes:f.z.array(Pi).optional(),signing_alg:f.z.string().optional(),signing_secret:f.z.string().optional(),token_lifetime:f.z.number().default(86400),token_lifetime_for_web:f.z.number().default(7200),skip_consent_for_verifiable_first_party_clients:f.z.boolean().optional(),allow_offline_access:f.z.boolean().optional(),verificationKey:f.z.string().optional(),options:Fi.optional(),is_system:f.z.boolean().optional(),metadata:f.z.record(f.z.string(),f.z.any()).optional()}),Li=Ii.extend({created_at:f.z.string().optional(),updated_at:f.z.string().optional()}),Ri=f.z.array(Li),zi=f.z.object({role_id:f.z.string(),resource_server_identifier:f.z.string(),permission_name:f.z.string()}),Bi=zi.extend({created_at:f.z.string()}),Vi=f.z.array(Bi),Hi=f.z.object({user_id:f.z.string().openapi({description:`The id of the user that granted the consent`}),clientID:f.z.string().openapi({description:`The id of the client the grant was issued to`}),audience:f.z.string().optional().openapi({description:`The audience the grant applies to`}),scope:f.z.array(f.z.string()).default([]).openapi({description:`The list of OAuth scopes the user has consented to`})}),Ui=Hi.extend({id:f.z.string()}),Wi=f.z.object({user_id:f.z.string(),resource_server_identifier:f.z.string(),permission_name:f.z.string(),organization_id:f.z.string().optional()}),Gi=Wi.extend({tenant_id:f.z.string(),created_at:f.z.string().optional()}),Ki=f.z.array(Gi),qi=f.z.object({user_id:f.z.string(),resource_server_identifier:f.z.string(),resource_server_name:f.z.string(),permission_name:f.z.string(),description:f.z.string().nullable().optional(),created_at:f.z.string().optional(),organization_id:f.z.string().optional()}),Ji=f.z.array(qi),Yi=f.z.object({user_id:f.z.string(),role_id:f.z.string(),organization_id:f.z.string().optional()}),Xi=Yi.extend({tenant_id:f.z.string(),created_at:f.z.string().optional()}),Zi=f.z.array(Xi),Qi=f.z.object({id:f.z.string().optional().openapi({description:`The unique identifier of the role. If not provided, one will be generated.`}),name:f.z.string().min(1).max(50).openapi({description:`The name of the role. Cannot include '<' or '>'`}),description:f.z.string().max(255).optional().openapi({description:`The description of the role`}),is_system:f.z.boolean().optional(),metadata:f.z.record(f.z.string(),f.z.any()).optional().openapi({description:`Metadata associated with the role. Can be used to control sync behavior in multi-tenancy scenarios.`})}),$i=Qi.extend({id:f.z.string().openapi({description:`The unique identifier of the role`}),created_at:f.z.string().optional(),updated_at:f.z.string().optional()}),ea=f.z.array($i),ta=f.z.object({logo_url:f.z.string().optional().openapi({description:`URL of the organization's logo`}),colors:f.z.object({primary:f.z.string().optional().openapi({description:`Primary color in hex format (e.g., #FF0000)`}),page_background:f.z.string().optional().openapi({description:`Page background color in hex format (e.g., #FFFFFF)`})}).optional()}).optional(),na=f.z.object({connection_id:f.z.string().openapi({description:`ID of the connection`}),assign_membership_on_login:f.z.boolean().default(!1).openapi({description:`Whether to assign membership to the organization on login`}),show_as_button:f.z.boolean().default(!0).openapi({description:`Whether to show this connection as a button in the login screen`}),is_signup_enabled:f.z.boolean().default(!0).openapi({description:`Whether signup is enabled for this connection`})}),ra=f.z.object({client_credentials:f.z.object({enforce:f.z.boolean().default(!1).openapi({description:`Whether to enforce token quota limits`}),per_day:f.z.number().min(0).default(0).openapi({description:`Maximum tokens per day (0 = unlimited)`}),per_hour:f.z.number().min(0).default(0).openapi({description:`Maximum tokens per hour (0 = unlimited)`})}).optional()}).optional(),ia=f.z.object({id:f.z.string().optional(),name:f.z.string().min(1).regex(/^[a-z0-9_-]+$/,{message:`Organization name must be lowercase and can only contain letters, numbers, hyphens, and underscores`}).openapi({description:`The name of the organization. Must be lowercase and can only contain letters, numbers, hyphens, and underscores.`}),display_name:f.z.string().optional().openapi({description:`The display name of the organization`}),branding:ta,metadata:f.z.record(f.z.string(),f.z.any()).default({}).optional().openapi({description:`Custom metadata for the organization`}),enabled_connections:f.z.array(na).default([]).optional().openapi({description:`List of enabled connections for the organization`}),token_quota:ra}),aa=ia.extend(Le.shape).extend({id:f.z.string(),name:f.z.string().min(1).openapi({description:`The name of the organization`})}),oa=f.z.object({connection_id:f.z.string().openapi({description:`ID of the tenant-level connection to enable for the org.`}),assign_membership_on_login:f.z.boolean().optional().default(!1),show_as_button:f.z.boolean().optional().default(!0),is_signup_enabled:f.z.boolean().optional().default(!0)}),sa=oa.extend({connection:f.z.object({name:f.z.string().optional(),strategy:f.z.string().optional()}).optional(),created_at:f.z.string().optional(),updated_at:f.z.string().optional()}),ca=f.z.array(sa),la=f.z.object({user_id:f.z.string().openapi({description:`ID of the user`}),organization_id:f.z.string().openapi({description:`ID of the organization`})}),ua=la.extend(Le.shape).extend({id:f.z.string()}),da=f.z.object({idle_session_lifetime:f.z.number().default(72),session_lifetime:f.z.number().default(168),session_cookie:f.z.object({mode:f.z.enum([`persistent`,`non-persistent`]).optional()}).optional(),enable_client_connections:f.z.boolean().optional(),default_redirection_uri:f.z.string().optional(),enabled_locales:f.z.array(f.z.string()).optional(),default_directory:f.z.string().optional(),error_page:f.z.object({html:f.z.string().optional(),show_log_link:f.z.boolean().optional(),url:f.z.string().optional()}).optional(),flags:f.z.object({allow_legacy_delegation_grant_types:f.z.boolean().optional(),allow_legacy_ro_grant_types:f.z.boolean().optional(),allow_legacy_tokeninfo_endpoint:f.z.boolean().optional(),disable_clickjack_protection_headers:f.z.boolean().optional(),enable_apis_section:f.z.boolean().optional(),enable_client_connections:f.z.boolean().optional(),enable_custom_domain_in_emails:f.z.boolean().optional(),enable_dynamic_client_registration:f.z.boolean().optional(),enable_idtoken_api2:f.z.boolean().optional(),enable_legacy_logs_search_v2:f.z.boolean().optional(),enable_legacy_profile:f.z.boolean().optional(),enable_pipeline2:f.z.boolean().optional(),enable_public_signup_user_exists_error:f.z.boolean().optional(),use_scope_descriptions_for_consent:f.z.boolean().optional(),disable_management_api_sms_obfuscation:f.z.boolean().optional(),enable_adfs_waad_email_verification:f.z.boolean().optional(),revoke_refresh_token_grant:f.z.boolean().optional(),dashboard_log_streams_next:f.z.boolean().optional(),dashboard_insights_view:f.z.boolean().optional(),disable_fields_map_fix:f.z.boolean().optional(),mfa_show_factor_list_on_enrollment:f.z.boolean().optional()}).optional(),friendly_name:f.z.string().optional(),picture_url:f.z.string().optional(),support_email:f.z.string().optional(),support_url:f.z.string().optional(),sandbox_version:f.z.string().optional(),sandbox_versions_available:f.z.array(f.z.string()).optional(),change_password:f.z.object({enabled:f.z.boolean(),html:f.z.string()}).optional(),guardian_mfa_page:f.z.object({enabled:f.z.boolean(),html:f.z.string()}).optional(),default_audience:f.z.string().optional(),default_organization:f.z.string().optional(),sessions:f.z.object({oidc_logout_prompt_enabled:f.z.boolean().optional()}).optional(),mfa:f.z.object({policy:f.z.enum([`never`,`always`]).default(`never`).optional(),factors:f.z.object({sms:f.z.boolean().default(!1),otp:f.z.boolean().default(!1),email:f.z.boolean().default(!1),push_notification:f.z.boolean().default(!1),webauthn_roaming:f.z.boolean().default(!1),webauthn_platform:f.z.boolean().default(!1),recovery_code:f.z.boolean().default(!1),duo:f.z.boolean().default(!1)}).optional(),sms_provider:f.z.object({provider:f.z.enum([`twilio`,`vonage`,`aws_sns`,`phone_message_hook`]).optional()}).optional(),twilio:f.z.object({sid:f.z.string().optional(),auth_token:f.z.string().optional(),from:f.z.string().optional(),messaging_service_sid:f.z.string().optional()}).optional(),phone_message:f.z.object({message:f.z.string().optional()}).optional()}).optional()}),fa=f.z.object({date:f.z.string().openapi({description:`Date these events occurred in ISO 8601 format`,example:`2025-12-19`}),logins:f.z.number().openapi({description:`Number of logins on this date`,example:150}),signups:f.z.number().openapi({description:`Number of signups on this date`,example:25}),leaked_passwords:f.z.number().openapi({description:`Number of breached-password detections on this date (subscription required)`,example:0}),updated_at:f.z.string().openapi({description:`Date and time this stats entry was last updated in ISO 8601 format`,example:`2025-12-19T10:30:00.000Z`}),created_at:f.z.string().openapi({description:`Approximate date and time the first event occurred in ISO 8601 format`,example:`2025-12-19T00:00:00.000Z`})}),pa=f.z.number().openapi({description:`Number of active users in the last 30 days`,example:1234}),ma=f.z.enum([`active-users`,`logins`,`signups`,`refresh-tokens`,`sessions`]),ha=f.z.enum([`hour`,`day`,`week`,`month`]),ga=f.z.enum([`time`,`connection`,`client_id`,`user_type`,`event`]),_a=f.z.enum([`password`,`social`,`passwordless`,`enterprise`]),va=f.z.object({name:f.z.string(),type:f.z.string()}),ya=f.z.object({elapsed:f.z.number(),rows_read:f.z.number().optional(),bytes_read:f.z.number().optional()}),ba=f.z.object({meta:f.z.array(va),data:f.z.array(f.z.record(f.z.string(),f.z.any())),rows:f.z.number(),rows_before_limit_at_least:f.z.number().optional(),statistics:ya.optional()}),xa=f.z.enum(`login.login-id.login-password.signup.signup-id.signup-password.reset-password.consent.mfa.mfa-push.mfa-otp.mfa-voice.mfa-phone.mfa-webauthn.mfa-email.mfa-recovery-code.status.device-flow.email-verification.email-otp-challenge.organizations.invitation.common.passkeys.captcha.custom-form.login-passwordless.mfa-login-options`.split(`.`)),Sa=f.z.record(f.z.string(),f.z.record(f.z.string(),f.z.string())).openapi({type:`object`,additionalProperties:{type:`object`,additionalProperties:{type:`string`}}}),Ca=f.z.object({prompt:xa,language:f.z.string(),custom_text:Sa}),F={EMAIL:`email`,SMS:`sms`,USERNAME_PASSWORD:`Username-Password-Authentication`,GOOGLE_OAUTH2:`google-oauth2`,APPLE:`apple`,FACEBOOK:`facebook`,GITHUB:`github`,WINDOWSLIVE:`windowslive`,VIPPS:`vipps`,OIDC:`oidc`,OAUTH2:`oauth2`,SAMLP:`samlp`,WAAD:`waad`,ADFS:`adfs`,OKTA:`okta`},wa={DATABASE:`database`,SOCIAL:`social`,PASSWORDLESS:`passwordless`},Ta=f.z.enum([`phone`,`totp`,`email`,`push`,`webauthn-roaming`,`webauthn-platform`,`passkey`]),Ea=f.z.object({user_id:f.z.string(),type:Ta,phone_number:f.z.string().optional(),totp_secret:f.z.string().optional(),credential_id:f.z.string().optional(),public_key:f.z.string().optional(),sign_count:f.z.number().int().nonnegative().optional(),credential_backed_up:f.z.boolean().optional(),transports:f.z.array(f.z.string()).optional(),friendly_name:f.z.string().optional(),confirmed:f.z.boolean().default(!1)});function Da(e,t){e.type===`phone`&&!e.phone_number&&t.addIssue({code:f.z.ZodIssueCode.custom,message:`phone_number is required when type is 'phone'`,path:[`phone_number`]}),e.type===`totp`&&!e.totp_secret&&t.addIssue({code:f.z.ZodIssueCode.custom,message:`totp_secret is required when type is 'totp'`,path:[`totp_secret`]}),[`webauthn-roaming`,`webauthn-platform`,`passkey`].includes(e.type)&&(e.credential_id||t.addIssue({code:f.z.ZodIssueCode.custom,message:`credential_id is required when type is '${e.type}'`,path:[`credential_id`]}),e.public_key||t.addIssue({code:f.z.ZodIssueCode.custom,message:`public_key is required when type is '${e.type}'`,path:[`public_key`]}))}var Oa=Ea.superRefine(Da),ka=Ea.extend({id:f.z.string(),created_at:f.z.string(),updated_at:f.z.string()}).superRefine(Da);function Aa(e){let[t,n]=e.split(`|`);if(!t||!n)throw Error(`Invalid user_id: ${e}`);return{connection:t,id:n}}function ja(e){let{primary:t,secondaries:n,syncMethods:r=[`create`,`rawCreate`,`update`,`remove`,`delete`,`set`]}=e;return new Proxy(t,{get(e,t){if(typeof t==`symbol`)return e[t];let i=e[t];return typeof i==`function`?r.includes(t)?async(...r)=>{let a=await i.apply(e,r),o=[];for(let e of n){let n=e.adapter[t];if(typeof n!=`function`)continue;let i=(async()=>{try{await n.apply(e.adapter,r)}catch(n){try{e.onError?e.onError(n,t,r):console.error(`Passthrough adapter: secondary write failed for ${t}:`,n)}catch(e){console.error(`Passthrough adapter: onError handler threw for ${t}:`,e)}}})();e.blocking&&o.push(i)}return o.length>0&&await Promise.all(o),a}:i.bind(e):i}})}function Ma(e){return e}function Na(e){let t=e?.options;if(!t)return{usernameIdentifierActive:!1,emailIdentifierActive:!0,usernameMinLength:1,usernameMaxLength:15};let n=t.attributes;return n?{usernameIdentifierActive:n.username?.identifier?.active===!0,emailIdentifierActive:n.email?.identifier?.active!==!1,usernameMinLength:n.username?.validation?.min_length??1,usernameMaxLength:n.username?.validation?.max_length??15}:{usernameIdentifierActive:t.requires_username===!0,emailIdentifierActive:!0,usernameMinLength:t.validation?.username?.min??1,usernameMaxLength:t.validation?.username?.max??15}}function Pa(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Fa(e,t){return t?`https://${t}/`:e.ISSUER}function Ia(e,t,n=`u`){let r=n.replace(/^\/+|\/+$/g,``)||`u`;return t?`https://${t}/${r}/`:e.UNIVERSAL_LOGIN_URL?`${new URL(e.UNIVERSAL_LOGIN_URL).origin}/${r}/`:`${e.ISSUER}${r}/`}function La(e,t){return t?`https://${t}/`:e.OAUTH_API_URL||e.ISSUER}var Ra={deno:`Deno`,bun:`Bun`,workerd:`Cloudflare-Workers`,node:`Node.js`},za=()=>{let e=globalThis;if(typeof navigator<`u`&&typeof navigator.userAgent==`string`){for(let[e,t]of Object.entries(Ra))if(Ba(t))return e}return typeof e?.EdgeRuntime==`string`?`edge-light`:e?.fastly===void 0?e?.process?.release?.name===`node`?`node`:`other`:`fastly`},Ba=e=>navigator.userAgent.startsWith(e);function Va(e,t){if(za()===`workerd`)try{e.executionCtx.waitUntil(t);return}catch{}let n=t.then(()=>void 0,e=>{console.error(`waitUntil promise error:`,e)}),r;try{r=e.var?.backgroundPromises}catch{r=void 0}if(!Array.isArray(r)){if(typeof e.set!=`function`)return;r=[],e.set(`backgroundPromises`,r)}r.push(n)}async function Ha(e){let t=e.var.backgroundPromises;if(!Array.isArray(t)||t.length===0)return;let n=t.splice(0,t.length);await Promise.all(n)}function Ua(e){return[...e].reduce((e,[t,n])=>({...e,[t]:n}),{})}var Wa=new Set([`password`,`password_hash`,`client_secret`,`client_assertion`,`code_verifier`,`otp`,`signing_keys`,`credentials`,`encryption_key`,`otp_secret`]),Ga=new Set([`code`,`refresh_token`,`subject_token`,`actor_token`]);function Ka(e,t=3){return e.length<=t?`*`.repeat(e.length):`*`.repeat(e.length-t)+e.slice(-t)}function qa(e){if(!e)return;let t={};for(let[n,r]of Object.entries(e))Wa.has(n)?t[n]=`[REDACTED]`:Ga.has(n)&&typeof r==`string`?t[n]=Ka(r):t[n]=r;return t}function Ja(e){return e&&typeof e==`object`&&!Array.isArray(e)?qa(e):e}function Ya(e,t){if(!e||!t)return;let n={},r=new Set([...Object.keys(e),...Object.keys(t)]);for(let i of r){let r=e[i],a=t[i];JSON.stringify(r)!==JSON.stringify(a)&&(n[i]={old:r,new:a})}return Object.keys(n).length>0?n:void 0}function Xa(e,t){return e.var.user_id||t.actorUserId?`admin_action`:t.userId?`user_action`:e.var.client_id?`api`:`system`}function Za(e,t,n){let r=e.env.outbox?.captureEntityState!==!1,i=r?qa(n.beforeState):void 0,a=r?qa(n.afterState):void 0;return{tenant_id:t,event_type:n.targetType?`${n.targetType}.${Qa(e.req.method)}`:n.type,log_type:n.type,description:n.description,category:Xa(e,n),actor:{type:e.var.user_id||n.actorUserId?`admin`:n.userId?`user`:e.var.client_id?`client_credentials`:`system`,id:e.var.user_id||n.actorUserId||n.userId||void 0,email:e.var.username||n.username||void 0,org_id:e.var.organization_id||e.var.user?.org_id||void 0,org_name:e.var.org_name||e.var.user?.org_name||void 0,scopes:e.var.user?.scope?e.var.user.scope.split(` `):void 0,client_id:e.var.client_id||void 0},target:{type:n.targetType||`unknown`,id:n.targetId||n.userId||e.var.user_id||``,before:i,after:a,diff:Ya(i,a)},request:{method:e.req.method,path:e.req.path,query:e.req.queries()?Object.fromEntries(Object.entries(e.req.queries()).map(([e,t])=>[e,Array.isArray(t)?t.join(`,`):t])):void 0,body:Ja(n.body||e.var.body||void 0),ip:e.var.ip||``,user_agent:e.var.useragent||void 0},response:n.response?{status_code:n.response.statusCode,body:n.response.body}:void 0,connection:n.connection||e.var.connection||void 0,strategy:n.strategy||void 0,strategy_type:n.strategy_type||void 0,audience:n.audience||void 0,scope:n.scope||void 0,hostname:e.var.host||``,is_mobile:!1,auth0_client:e.var.auth0_client,timestamp:new Date().toISOString()}}function Qa(e){switch(e){case`POST`:return`created`;case`PATCH`:case`PUT`:return`updated`;case`DELETE`:return`deleted`;default:return`accessed`}}async function I(e,t,n){let r={};if(e.req.raw?.headers){let t=Ua(e.req.raw.headers);for(let[e,n]of Object.entries(t))r[e.toLowerCase()]=n}if(e.env.outbox?.enabled&&e.env.data.outbox){let r=Za(e,t,n),i=e.env.data.outbox.create(t,r),a=e.var.outboxEventPromises||[];a.push(i),e.set(`outboxEventPromises`,a);return}let i=async()=>{let i;if(e.env.data.geo)try{i=await e.env.data.geo.getGeoInfo(r)||void 0}catch(e){console.warn(`Failed to get geo information:`,e)}let a={type:n.type,description:n.description||``,ip:e.var.ip,user_agent:e.var.useragent||``,auth0_client:e.var.auth0_client,date:new Date().toISOString(),details:n.details||{request:{method:e.req.method,path:e.req.path,qs:e.req.queries(),body:Ja(n.body||e.var.body||``)},...n.response&&{response:n.response}},isMobile:!1,client_id:e.var.client_id,client_name:``,user_id:n.userId||e.var.user_id||``,hostname:e.var.host||``,user_name:e.var.username||n.username||``,connection_id:``,connection:n.connection||e.var.connection||``,strategy:n.strategy||``,strategy_type:n.strategy_type||``,audience:n.audience||``,scope:n.scope||``,location_info:i};await e.env.data.logs.create(t,a)};n.waitForCompletion?await i():Va(e,i())}async function $a(e,t,n,r){if(!e.env.outbox?.enabled||!t.outbox)return;let i=Za(e,n,r);return t.outbox.create(n,i)}var eo=f.z.object({page:f.z.string().min(0).optional().default(`0`).transform(e=>parseInt(e,10)).openapi({description:`Page index of the results to return. First page is 0.`}),per_page:f.z.string().min(1).optional().default(`10`).transform(e=>parseInt(e,10)).openapi({description:`Number of results per page. Defaults to 50.`}),include_totals:f.z.string().optional().default(`false`).transform(e=>e===`true`).openapi({description:`Return results inside an object that contains the total result count (true) or as a direct array of results (false, default).`}),from:f.z.string().optional().openapi({description:`Optional Id from which to start selection.`}),take:f.z.string().optional().transform(e=>e?parseInt(e,10):void 0).openapi({description:`Number of results per page. Defaults to 50.`}),sort:f.z.string().regex(/^.+:(-1|1)$/).optional().openapi({description:`Field to sort by. Use field:order where order is 1 for ascending and -1 for descending. e.g. created_at:1.`}),q:f.z.string().optional().openapi({description:`A lucene query string used to filter the results`}),from_date:f.z.preprocess(e=>typeof e==`string`&&/^\d+$/.test(e)?Number(e):e,f.z.number().int().optional()).openapi({description:`Start of date range as a Unix timestamp in seconds (inclusive). Only applies to log queries.`}),to_date:f.z.preprocess(e=>typeof e==`string`&&/^\d+$/.test(e)?Number(e):e,f.z.number().int().optional()).openapi({description:`End of date range as a Unix timestamp in seconds (inclusive). Only applies to log queries.`})});function to(e){if(!e)return;let[t,n]=e.split(`:`),r=n===`1`?`asc`:`desc`;if(!(!t||!r))return{sort_by:t,sort_order:r}}var L=e=>(0,f.defineOpenAPIRoute)(e),no=bt.extend({actions:f.z.array(Ue)}),ro={"post-login":`post-user-login`};function io(e){return ro[e]||e}var ao=f.z.object({versions:f.z.array($e)}),oo=bt.extend({versions:f.z.array($e)});function so(e,t,n,r){return e.actionVersions.create(t,{action_id:n.id,code:n.code,runtime:n.runtime,secrets:n.secrets,dependencies:n.dependencies,supported_triggers:n.supported_triggers,deployed:r})}var co=L({route:(0,f.createRoute)({tags:[`actions`],method:`get`,path:`/`,request:{query:eo,headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:actions`]}],responses:{200:{content:{"application/json":{schema:f.z.union([f.z.array(Ue),no])}},description:`List of actions`}}}),handler:async e=>{let{page:t,per_page:n,include_totals:r,sort:i,q:a}=e.req.valid(`query`),o=await e.env.data.actions.list(e.var.tenant_id,{page:t,per_page:n,include_totals:r,sort:to(i),q:a}),s=o.actions.map(e=>({...e,secrets:e.secrets?.map(e=>({name:e.name}))}));return r?e.json({...o,actions:s}):e.json(s)}}),lo=L({route:(0,f.createRoute)({tags:[`actions`],method:`post`,path:`/`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),body:{content:{"application/json":{schema:Ve}}}},security:[{Bearer:[`create:actions`]}],responses:{201:{content:{"application/json":{schema:Ue}},description:`The created action`}}}),handler:async e=>{let t=e.req.valid(`json`),n=await e.env.data.actions.create(e.var.tenant_id,t),r=!1;if(e.env.codeExecutor?.deploy)try{await e.env.codeExecutor.deploy(n.id,t.code),r=!0}catch(t){await I(e,e.var.tenant_id,{type:P.FAILED_HOOK,description:`Failed to deploy action ${n.id}: ${t instanceof Error?t.message:String(t)}`})}else r=!0;return await so(e.env.data,e.var.tenant_id,n,r),await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Create action`,targetType:`action`,targetId:n.id}),e.json(n,{status:201})}}),uo=L({route:(0,f.createRoute)({tags:[`actions`],method:`get`,path:`/{id}`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),params:f.z.object({id:f.z.string()})},security:[{Bearer:[`read:actions`]}],responses:{200:{content:{"application/json":{schema:Ue}},description:`An action`},404:{description:`Action not found`}}}),handler:async e=>{let{id:t}=e.req.valid(`param`),n=await e.env.data.actions.get(e.var.tenant_id,t);if(!n)throw new m(404,{message:`Action not found`});return e.json({...n,secrets:n.secrets?.map(e=>({name:e.name}))})}}),fo=L({route:(0,f.createRoute)({tags:[`actions`],method:`patch`,path:`/{id}`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),params:f.z.object({id:f.z.string()}),body:{content:{"application/json":{schema:Ve.partial()}}}},security:[{Bearer:[`update:actions`]}],responses:{200:{content:{"application/json":{schema:Ue}},description:`The updated action`},404:{description:`Action not found`}}}),handler:async e=>{let{id:t}=e.req.valid(`param`),n=e.req.valid(`json`);if(!await e.env.data.actions.update(e.var.tenant_id,t,n))throw new m(404,{message:`Action not found`});let r=await e.env.data.actions.get(e.var.tenant_id,t);if(!r)throw new m(404,{message:`Action not found`});if(n.code!==void 0&&e.env.codeExecutor?.deploy){let i=!1;try{await e.env.codeExecutor.deploy(t,n.code),i=!0}catch(n){await I(e,e.var.tenant_id,{type:P.FAILED_HOOK,description:`Failed to deploy action ${t}: ${n instanceof Error?n.message:String(n)}`})}await so(e.env.data,e.var.tenant_id,r,i)}return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Update action`,targetType:`action`,targetId:t}),e.json({...r,secrets:r.secrets?.map(e=>({name:e.name}))})}}),po=L({route:(0,f.createRoute)({tags:[`actions`],method:`delete`,path:`/{id}`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),params:f.z.object({id:f.z.string()})},security:[{Bearer:[`delete:actions`]}],responses:{200:{description:`Action deleted`},404:{description:`Action not found`},409:{description:`Action is bound to a trigger and cannot be deleted`}}}),handler:async e=>{let{id:t}=e.req.valid(`param`);if((await e.env.data.hooks.list(e.var.tenant_id,{q:`code_id:"${t}"`})).hooks.length>0)throw new m(409,{message:`Action is bound to a trigger. Remove the binding before deleting.`});if(!await e.env.data.actions.remove(e.var.tenant_id,t))throw new m(404,{message:`Action not found`});if(await e.env.data.actionVersions.removeForAction(e.var.tenant_id,t),e.env.codeExecutor?.remove)try{await e.env.codeExecutor.remove(t)}catch(n){await I(e,e.var.tenant_id,{type:P.FAILED_HOOK,description:`Failed to remove action worker ${t}: ${n instanceof Error?n.message:String(n)}`})}return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Delete action`,targetType:`action`,targetId:t}),e.text(`OK`)}}),mo=L({route:(0,f.createRoute)({tags:[`actions`],method:`post`,path:`/{id}/deploy`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),params:f.z.object({id:f.z.string()})},security:[{Bearer:[`update:actions`]}],responses:{200:{content:{"application/json":{schema:Ue}},description:`The deployed action`},404:{description:`Action not found`}}}),handler:async e=>{let{id:t}=e.req.valid(`param`),n=await e.env.data.actions.get(e.var.tenant_id,t);if(!n)throw new m(404,{message:`Action not found`});if(e.env.codeExecutor?.deploy)try{await e.env.codeExecutor.deploy(t,n.code)}catch(n){throw await I(e,e.var.tenant_id,{type:P.FAILED_HOOK,description:`Failed to deploy action ${t}: ${n instanceof Error?n.message:String(n)}`}),new m(500,{message:`Deployment failed: ${n instanceof Error?n.message:String(n)}`})}return await e.env.data.actions.update(e.var.tenant_id,t,{status:`built`,deployed_at:new Date().toISOString()}),await so(e.env.data,e.var.tenant_id,n,!0),await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Deploy action`,targetType:`action`,targetId:t}),e.json({...n,status:`built`,secrets:n.secrets?.map(e=>({name:e.name}))})}}),ho=L({route:(0,f.createRoute)({tags:[`actions`],method:`get`,path:`/{actionId}/versions`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),params:f.z.object({actionId:f.z.string()}),query:eo},security:[{Bearer:[`read:actions`]}],responses:{200:{content:{"application/json":{schema:f.z.union([ao,oo])}},description:`List of action versions`},404:{description:`Action not found`}}}),handler:async e=>{let{actionId:t}=e.req.valid(`param`),{page:n,per_page:r,include_totals:i,sort:a}=e.req.valid(`query`);if(!await e.env.data.actions.get(e.var.tenant_id,t))throw new m(404,{message:`Action not found`});let o=await e.env.data.actionVersions.list(e.var.tenant_id,t,{page:n,per_page:r,include_totals:i,sort:to(a)}),s=o.versions.map(e=>({...e,secrets:e.secrets?.map(e=>({name:e.name}))}));return i?e.json({...o,versions:s}):e.json({versions:s})}}),go=L({route:(0,f.createRoute)({tags:[`actions`],method:`get`,path:`/{actionId}/versions/{id}`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),params:f.z.object({actionId:f.z.string(),id:f.z.string()})},security:[{Bearer:[`read:actions`]}],responses:{200:{content:{"application/json":{schema:$e}},description:`Action version`},404:{description:`Action version not found`}}}),handler:async e=>{let{actionId:t,id:n}=e.req.valid(`param`),r=await e.env.data.actionVersions.get(e.var.tenant_id,t,n);if(!r)throw new m(404,{message:`Action version not found`});return e.json({...r,secrets:r.secrets?.map(e=>({name:e.name}))})}}),_o=L({route:(0,f.createRoute)({tags:[`actions`],method:`post`,path:`/{actionId}/versions/{id}/deploy`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),params:f.z.object({actionId:f.z.string(),id:f.z.string()})},security:[{Bearer:[`update:actions`]}],responses:{200:{content:{"application/json":{schema:Ue}},description:`The action after rollback`},404:{description:`Action version not found`}}}),handler:async e=>{let{actionId:t,id:n}=e.req.valid(`param`),r=await e.env.data.actionVersions.get(e.var.tenant_id,t,n);if(!r)throw new m(404,{message:`Action version not found`});if(e.env.codeExecutor?.deploy)try{await e.env.codeExecutor.deploy(t,r.code)}catch(r){throw await I(e,e.var.tenant_id,{type:P.FAILED_HOOK,description:`Failed to roll back action ${t} to version ${n}: ${r instanceof Error?r.message:String(r)}`}),new m(500,{message:`Rollback failed: ${r instanceof Error?r.message:String(r)}`})}await e.env.data.actions.update(e.var.tenant_id,t,{code:r.code,runtime:r.runtime,secrets:r.secrets,dependencies:r.dependencies,supported_triggers:r.supported_triggers,status:`built`,deployed_at:new Date().toISOString()});let i=await e.env.data.actions.get(e.var.tenant_id,t);if(!i)throw new m(404,{message:`Action not found`});return await so(e.env.data,e.var.tenant_id,i,!0),await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Roll back action to version ${r.number}`,targetType:`action`,targetId:t}),e.json({...i,secrets:i.secrets?.map(e=>({name:e.name}))})}}),vo=L({route:(0,f.createRoute)({tags:[`actions`],method:`post`,path:`/{id}/test`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),params:f.z.object({id:f.z.string()}),body:{content:{"application/json":{schema:f.z.object({trigger_id:f.z.string().optional(),event:f.z.record(f.z.string(),f.z.unknown()).optional()})}}}},security:[{Bearer:[`update:actions`]}],responses:{200:{content:{"application/json":{schema:f.z.object({success:f.z.boolean(),error:f.z.string().optional(),duration_ms:f.z.number(),api_calls:f.z.array(f.z.object({method:f.z.string(),args:f.z.array(f.z.unknown())})),logs:f.z.array(f.z.object({level:f.z.enum([`log`,`info`,`warn`,`error`,`debug`]),message:f.z.string()}))})}},description:`Test run result`},404:{description:`Action not found`},503:{description:`Code executor not configured`}}}),handler:async e=>{let{id:t}=e.req.valid(`param`),n=e.req.valid(`json`),r=e.env.codeExecutor;if(!r)throw new m(503,{message:`Code executor not configured`});let i=await e.env.data.actions.get(e.var.tenant_id,t);if(!i)throw new m(404,{message:`Action not found`});let a=io(n.trigger_id??i.supported_triggers?.[0]?.id??`post-login`),o=i.secrets?.reduce((e,t)=>(t.value!==void 0&&(e[t.name]=t.value),e),{}),s=await r.execute({code:i.code,hookCodeId:i.id,triggerId:a,event:{...n.event??{},secrets:o??{}},timeoutMs:5e3});return e.json({success:s.success,error:s.error,duration_ms:s.durationMs,api_calls:s.apiCalls,logs:s.logs??[]})}}),yo=new f.OpenAPIHono().openapiRoutes([co,lo,uo,fo,po,mo,ho,go,_o,vo]),bo=f.z.object({id:f.z.string(),trigger_id:f.z.string(),status:Ge,results:f.z.array(qe),created_at:f.z.string(),updated_at:f.z.string()}),xo=f.z.object({logs:Ye}),So=L({route:(0,f.createRoute)({tags:[`actions`],method:`get`,path:`/{id}`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),params:f.z.object({id:f.z.string()})},security:[{Bearer:[`read:actions`]}],responses:{200:{content:{"application/json":{schema:bo}},description:`Action execution`},404:{description:`Execution not found`}}}),handler:async e=>{let{id:t}=e.req.valid(`param`),n=await e.env.data.actionExecutions.get(e.var.tenant_id,t);if(!n)throw new m(404,{message:`Execution not found`});return e.json({id:n.id,trigger_id:n.trigger_id,status:n.status,results:n.results,created_at:n.created_at,updated_at:n.updated_at})}}),Co=L({route:(0,f.createRoute)({tags:[`actions`],method:`get`,path:`/{id}/logs`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),params:f.z.object({id:f.z.string()})},security:[{Bearer:[`read:actions`]}],responses:{200:{content:{"application/json":{schema:xo}},description:`Captured console output for the execution`},404:{description:`Execution not found`}}}),handler:async e=>{let{id:t}=e.req.valid(`param`),n=await e.env.data.actionExecutions.get(e.var.tenant_id,t);if(!n)throw new m(404,{message:`Execution not found`});return e.json({logs:n.logs??[]})}}),bee=new f.OpenAPIHono().openapiRoutes([So,Co]),xee=`useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict`,See=e=>crypto.getRandomValues(new Uint8Array(e)),Cee=(e,t,n)=>{let r=256-256%e.length;if(r===256){let r=e.length-1;return(i=t)=>{if(!i)return``;let a=``;for(;;){let t=n(i),o=i;for(;o--;)if(a+=e[t[o]&r],a.length>=i)return a}}}let i=Math.ceil(1.6*256*t/r);return(a=t)=>{if(!a)return``;let o=``;for(;;){let t=n(i),s=i;for(;s--;)if(t[s]<r&&(o+=e[t[s]%e.length],o.length>=a))return o}}},wo=(e,t=21)=>Cee(e,t|0,See),To=(e=21)=>{let t=``,n=crypto.getRandomValues(new Uint8Array(e|=0));for(;e--;)t+=xee[n[e]&63];return t},wee=17,Tee={organization:`org_`,connection:`con_`,action:`act_`,hook:`h_`,rule:`rul_`,resource_server:`api_`,guardian_factor:`gfa_`,invite:`inv_`,flow:`af_`};function Eo(e){let t=wo(`0123456789abcdefghijklmnopqrstuvwxyz`,wee)();return`${Tee[e]}${t}`}function Eee(){return Eo(`organization`)}function Dee(){return Eo(`connection`)}function Do(){return Eo(`hook`)}function Oee(){return Eo(`invite`)}var Oo={"post-login":`post-user-login`,"credentials-exchange":`credentials-exchange`,"pre-user-registration":`pre-user-registration`,"post-user-registration":`post-user-registration`},kee=Object.fromEntries(Object.entries(Oo).map(([e,t])=>[t,e]));function ko(e){return Oo[e]||e}function Ao(e){return kee[e]||e}var Aee=f.z.object({type:f.z.enum([`action_id`,`action_name`]).optional(),value:f.z.string().optional(),id:f.z.string().optional(),name:f.z.string().optional()}),jee=f.z.object({ref:Aee,display_name:f.z.string().optional()}),Mee=f.z.object({id:f.z.string(),trigger_id:f.z.string(),display_name:f.z.string(),action:Ue,created_at:f.z.string(),updated_at:f.z.string()}),jo=f.z.object({bindings:f.z.array(Mee)}),Nee=L({route:(0,f.createRoute)({tags:[`actions`],method:`get`,path:`/{triggerId}/bindings`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),params:f.z.object({triggerId:f.z.string()})},security:[{Bearer:[`read:actions`]}],responses:{200:{content:{"application/json":{schema:jo}},description:`Trigger bindings`}}}),handler:async e=>{let{triggerId:t}=e.req.valid(`param`),n=ko(t),r=(await e.env.data.hooks.list(e.var.tenant_id,{q:`trigger_id:"${n}"`,per_page:100})).hooks.filter(e=>`code_id`in e&&e.code_id).sort((e,t)=>(t.priority||0)-(e.priority||0)),i=[];for(let t of r){let n=t.code_id,r=await e.env.data.actions.get(e.var.tenant_id,n);r&&i.push({id:t.hook_id,trigger_id:Ao(t.trigger_id),display_name:r.name,action:{...r,secrets:r.secrets?.map(e=>({name:e.name}))},created_at:t.created_at,updated_at:t.updated_at})}return e.json({bindings:i})}}),Pee=L({route:(0,f.createRoute)({tags:[`actions`],method:`patch`,path:`/{triggerId}/bindings`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),params:f.z.object({triggerId:f.z.string()}),body:{content:{"application/json":{schema:f.z.object({bindings:f.z.array(jee)})}}}},security:[{Bearer:[`update:actions`]}],responses:{200:{content:{"application/json":{schema:jo}},description:`Updated trigger bindings`}}}),handler:async e=>{let{triggerId:t}=e.req.valid(`param`),{bindings:n}=e.req.valid(`json`),r=ko(t),i=[];for(let t=0;t<n.length;t++){let r=n[t],a=r.ref.id;if(!a&&r.ref.type===`action_id`&&r.ref.value)a=r.ref.value;else if(!a&&r.ref.type===`action_name`&&r.ref.value){let t=r.ref.value,n=0;for(;;){let r=await e.env.data.actions.list(e.var.tenant_id,{page:n,per_page:100,include_totals:!1}),i=r.actions.find(e=>e.name===t);if(i){a=i.id;break}if(r.actions.length<100)break;n++}}if(!a)throw new m(400,{message:`Binding at index ${t} must reference an action via ref.id or ref.value`});let o=await e.env.data.actions.get(e.var.tenant_id,a);if(!o)throw new m(404,{message:`Action ${a} not found`});i.push({binding:r,actionId:a,action:o})}let a=await e.env.data.hooks.list(e.var.tenant_id,{q:`trigger_id:"${r}"`,per_page:100});for(let t of a.hooks)`code_id`in t&&t.code_id&&await e.env.data.hooks.remove(e.var.tenant_id,t.hook_id);let o=[];for(let t=0;t<i.length;t++){let{binding:n,actionId:a,action:s}=i[t],c=await e.env.data.hooks.create(e.var.tenant_id,{hook_id:Do(),trigger_id:r,code_id:a,enabled:!0,synchronous:!0,priority:i.length-t});o.push({id:c.hook_id,trigger_id:Ao(c.trigger_id),display_name:n.display_name||s.name,action:{...s,secrets:s.secrets?.map(e=>({name:e.name}))},created_at:c.created_at,updated_at:c.updated_at})}return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Update trigger bindings for ${t}`,targetType:`action`}),e.json({bindings:o})}}),Fee=new f.OpenAPIHono().openapiRoutes([Nee,Pee]),Mo={themeId:`default`,borders:{button_border_radius:8,button_border_weight:1,buttons_style:`pill`,input_border_radius:8,input_border_weight:1,inputs_style:`pill`,show_widget_shadow:!0,widget_border_weight:1,widget_corner_radius:16},colors:{base_focus_color:`#7D68F4`,base_hover_color:`#A091F2`,body_text:`#000000`,captcha_widget_theme:`auto`,error:`#FC5A5A`,header:`#000000`,icons:`#666666`,input_background:`#FFFFFF`,input_border:`#8E8CA0`,input_filled_text:`#000000`,input_labels_placeholders:`#88869F`,links_focused_components:`#7D68F4`,primary_button:`#7D68F4`,primary_button_label:`#FFFFFF`,secondary_button_border:`#8E8CA0`,secondary_button_label:`#000000`,success:`#36BF76`,widget_background:`#FFFFFF`,widget_border:`#8E8CA0`},displayName:`Default Theme`,fonts:{body_text:{bold:!1,size:100},buttons_text:{bold:!0,size:100},font_url:`https://assets.sesamy.com/fonts/khteka/WOFF2/KHTeka-Regular.woff2`,input_labels:{bold:!1,size:100},links:{bold:!0,size:100},links_style:`normal`,reference_text_size:16,subtitle:{bold:!1,size:100},title:{bold:!0,size:150}},page_background:{background_color:`#F8F9FB`,background_image_url:``,page_layout:`center`},widget:{logo_url:``,header_text_alignment:`center`,logo_height:36,logo_position:`center`,social_buttons_layout:`bottom`}};function No(e,t){let n=structuredClone(e);function r(e,t){for(let n in t)t[n]!==void 0&&typeof t[n]==`object`&&!Array.isArray(t[n])&&typeof e[n]==`object`&&e[n]!==null?r(e[n],t[n]):e[n]=t[n];return e}return r(n,t)}function Po(e){if(e instanceof f.z.ZodObject){let t={};for(let[n,r]of Object.entries(e.shape))t[n]=Po(r).optional();return f.z.object(t)}return e}function Iee(e){return Po(e)}var Lee=L({route:(0,f.createRoute)({tags:[`branding`],method:`get`,path:`/default`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:branding`]}],responses:{200:{content:{"application/json":{schema:Ci}},description:`Default theme settings`}}}),handler:async e=>{let t=await e.env.data.themes.get(e.var.tenant_id,`default`);return t?e.json(t):e.json(Mo)}}),Ree=L({route:(0,f.createRoute)({tags:[`branding`],method:`patch`,path:`/default`,request:{body:{content:{"application/json":{schema:Iee(Ci)}}},headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`update:branding`]}],responses:{200:{content:{"application/json":{schema:Ci}},description:`Updated theme settings`}}}),handler:async e=>{let t=e.req.valid(`json`),n=await e.env.data.themes.get(e.var.tenant_id,`default`),r=No(n||Mo,t);return n?await e.env.data.themes.update(e.var.tenant_id,`default`,r):await e.env.data.themes.create(e.var.tenant_id,r,`default`),await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Update Theme`,targetType:`theme`,targetId:`default`,...n?{beforeState:n}:{},afterState:r}),e.json({...r,themeId:`default`})}}),zee=new f.OpenAPIHono().openapiRoutes([Lee,Ree]),Fo={colors:{primary:`#7D68F4`,page_background:{type:`solid`,start:`#F8F9FB`,end:`#F8F9FB`,angle_deg:0}},logo_url:`https://assets.sesamy.com/static/images/sesamy/logos/sesamy_logo_black.svg`,favicon_url:`https://assets.sesamy.com/images/favicon.ico`,font:{url:`https://assets.sesamy.com/fonts/khteka/WOFF2/KHTeka-Regular.woff2`}};function R(e){return e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`).replace(/'/g,`'`)}function Bee(e){return e.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`).replace(/'/g,`\\'`).replace(/\(/g,`\\(`).replace(/\)/g,`\\)`).replace(/\n/g,``).replace(/\r/g,``).replace(/\t/g,``)}function Io(e){if(!e)return``;try{let t=new URL(e);return[`http:`,`https:`,`data:`].includes(t.protocol)?R(e):``}catch{return e.startsWith(`/`)?R(e):``}}function Lo(e){return e&&/^(#[0-9a-fA-F]{3,8}|rgba?\([^)]+\)|hsla?\([^)]+\)|[a-zA-Z]+)$/.test(e.trim())?e.trim():``}function Vee(e){if(!e)return`#f5f5f5`;if(typeof e==`string`)return Lo(e)||`#f5f5f5`;let{type:t,start:n,end:r,angle_deg:i}=e;if(t===`linear-gradient`&&n&&r){let e=Lo(n),t=Lo(r);if(e&&t)return`linear-gradient(${typeof i==`number`?i:180}deg, ${e}, ${t})`}if(n){let e=Lo(n);if(e)return e}return`#f5f5f5`}function Ro(e,t){if(e?.background_image_url){let t=Io(e.background_image_url);if(t)return`${Lo(e.background_color)||`#f5f5f5`} url("${Bee(t)}") center / cover no-repeat`}if(e?.background_color){let t=Lo(e.background_color);if(t)return t}return Vee(t)}var Hee=(e,t)=>{try{return t(e)}catch{return e.replace(/(?:%[0-9A-Fa-f]{2})+/g,e=>{try{return t(e)}catch{return e}})}},Uee=decodeURIComponent,zo=/^[\w!#$%&'*.^`|~+-]+$/,Wee=/^[ !#-:<-[\]-~]*$/,Bo=e=>{let t=0,n=e.length;for(;t<n;){let n=e.charCodeAt(t);if(n!==32&&n!==9)break;t++}for(;n>t;){let t=e.charCodeAt(n-1);if(t!==32&&t!==9)break;n--}return t===0&&n===e.length?e:e.slice(t,n)},Vo=(e,t)=>{if(t&&e.indexOf(t)===-1)return{};let n=e.split(`;`),r=Object.create(null);for(let e of n){let n=e.indexOf(`=`);if(n===-1)continue;let i=Bo(e.substring(0,n));if(t&&t!==i||!zo.test(i)||i in r)continue;let a=Bo(e.substring(n+1));if(a.startsWith(`"`)&&a.endsWith(`"`)&&(a=a.slice(1,-1)),Wee.test(a)&&(r[i]=a.indexOf(`%`)===-1?a:Hee(a,Uee),t))break}return r},Gee=(e,t,n={})=>{if(!zo.test(e))throw Error(`Invalid cookie name`);let r=`${e}=${t}`;if(e.startsWith(`__Secure-`)&&!n.secure)throw Error(`__Secure- Cookie must have Secure attributes`);if(e.startsWith(`__Host-`)){if(!n.secure)throw Error(`__Host- Cookie must have Secure attributes`);if(n.path!==`/`)throw Error(`__Host- Cookie must have Path attributes with "/"`);if(n.domain)throw Error(`__Host- Cookie must not have Domain attributes`)}for(let e of[`domain`,`path`,`sameSite`,`priority`])if(n[e]&&/[;\r\n]/.test(n[e]))throw Error(`${e} must not contain ";", "\\r", or "\\n"`);if(n&&typeof n.maxAge==`number`&&n.maxAge>=0){if(n.maxAge>3456e4)throw Error(`Cookies Max-Age SHOULD NOT be greater than 400 days (34560000 seconds) in duration.`);r+=`; Max-Age=${n.maxAge|0}`}if(n.domain&&n.prefix!==`host`&&(r+=`; Domain=${n.domain}`),n.path&&(r+=`; Path=${n.path}`),n.expires){if(n.expires.getTime()-Date.now()>3456e7)throw Error(`Cookies Expires SHOULD NOT be greater than 400 days (34560000 seconds) in the future.`);r+=`; Expires=${n.expires.toUTCString()}`}if(n.httpOnly&&(r+=`; HttpOnly`),n.secure&&(r+=`; Secure`),n.sameSite&&(r+=`; SameSite=${n.sameSite.charAt(0).toUpperCase()+n.sameSite.slice(1)}`),n.priority&&(r+=`; Priority=${n.priority.charAt(0).toUpperCase()+n.priority.slice(1)}`),n.partitioned){if(!n.secure)throw Error(`Partitioned Cookie must have Secure attributes`);r+=`; Partitioned`}return r},Ho=(e,t,n)=>(t=encodeURIComponent(t),Gee(e,t,n)),Kee=(e,t,n)=>{let r=e.req.raw.headers.get(`Cookie`);if(typeof t==`string`){if(!r)return;let e=t;return n===`secure`?e=`__Secure-`+t:n===`host`&&(e=`__Host-`+t),Vo(r,e)[e]}return r?Vo(r):{}},Uo=(e,t,n)=>{let r;return r=n?.prefix===`secure`?Ho(`__Secure-`+e,t,{path:`/`,...n,secure:!0}):n?.prefix===`host`?Ho(`__Host-`+e,t,{...n,path:`/`,secure:!0,domain:void 0}):Ho(e,t,{path:`/`,...n}),r},Wo=(e,t,n,r)=>{let i=Uo(t,n,r);e.header(`Set-Cookie`,i,{append:!0})},Go=`mqgcrqyg`,Ko=c({common:()=>qo,consent:()=>Jo,default:()=>ns,invitation:()=>Yo,login:()=>Xo,mfa:()=>Zo,organizations:()=>$o,passkeys:()=>Qo,signup:()=>es,status:()=>ts}),qo={common:{alertListTitle:`Upozornění`,backText:`Vrátit se zpět`,cancelText:`Zrušit`,closeText:`Zavřít`,contactSupportText:`Potřebujete pomoc?`,continueText:`Pokračovat`,copyrightText:"© ${currentYear} ${companyName}",errorText:`Něco se pokazilo. Zkuste to prosím znovu.`,hidePasswordText:`Skrýt heslo`,loadingText:`Načítání...`,orText:`nebo`,privacyPolicyText:`Zásady ochrany osobních údajů`,showPasswordText:`Zobrazit heslo`,termsOfServiceText:`Podmínky služby`,termsShortText:`Podmínky`,tryAgainText:`Zkusit znovu`}},Jo={consent:{buttonText:`Přijmout`,cancelButtonText:`Zamítnout`,description:"${clientName} žádá o přístup k vašemu účtu",pageTitle:"Autorizace | ${clientName}",scopesTitle:"Tímto povolíte ${clientName}:",title:"Autorizovat ${clientName}"}},Yo={invitation:{acceptButtonText:`Přijmout pozvánku`,description:"${inviterName} vás pozval(a), abyste se připojili k ${organizationName} na ${clientName}",pageTitle:"Pozvánka | ${clientName}",title:`Byli jste pozváni`}},Xo={login:{alertListTitle:`Upozornění`,buttonText:`Pokračovat`,description:"Přihlaste se k ${clientName}.",editEmailText:`Upravit`,emailPlaceholder:`E-mailová adresa`,enterACodeBtn:`Přihlásit se kódem`,federatedConnectionButtonText:"Pokračovat s ${connectionName}",footerLinkText:`Zaregistrujte se`,footerText:`Nemáte účet?`,forgotPasswordText:`Zapomněli jste heslo?`,hidePasswordText:`Skrýt heslo`,invalidEmail:`Neplatný e-mail`,invalidIdentifier:`Neplatný e-mail nebo uživatelské jméno`,invitationDescription:"Přihlaste se pro přijetí pozvánky od ${inviterName} k připojení k ${companyName} na ${clientName}.",invitationTitle:`Byli jste pozváni!`,logoAltText:"${companyName}","no-email":`Zadejte prosím e-mailovou adresu`,"no-password":`Heslo je povinné`,pageTitle:"Přihlášení | ${clientName}",passwordLoginNotAvailable:`Přihlášení heslem není k dispozici`,passwordPlaceholder:`Heslo`,phonePlaceholder:`Telefonní číslo`,separatorText:`nebo`,sessionExpired:`Platnost vaší relace vypršela. Zkuste to prosím znovu.`,showPasswordText:`Zobrazit heslo`,signupActionLinkText:"${footerLinkText}",signupActionText:"${footerText}",title:`Vítejte`,tooManyFailedLogins:`Příliš mnoho neúspěšných pokusů o přihlášení. Zkuste to prosím později.`,unverifiedEmail:`Před přihlášením prosím ověřte svou e-mailovou adresu`,userAccountDoesNotExist:`Uživatelský účet neexistuje`,usernamePlaceholder:`Uživatelské jméno nebo e-mailová adresa`,usernameTooLong:"Uživatelské jméno musí mít nejvýše ${max} znaků",usernameTooShort:"Uživatelské jméno musí mít alespoň ${min} znaků",wrongCredentials:`Nesprávné uživatelské jméno nebo heslo`,passkeyButtonText:`Přihlásit se pomocí passkey`}},Zo={mfa:{backupCodeText:`Použít záložní kód`,description:`Zvolte metodu ověření`,pageTitle:"Vícefaktorové ověření | ${clientName}",title:`Ověřte svou identitu`}},Qo={"passkey-enrollment-nudge":{title:`Zabezpečte svůj účet pomocí passkey`,description:`Passkey používají biometrii nebo PIN vašeho zařízení k rychlejšímu a bezpečnějšímu přihlášení.`,enrollButtonText:`Nastavit passkey`,snoozeButtonText:`Možná později`,optOutLinkText:`Nezobrazovat znovu`,pageTitle:"Nastavení Passkey | ${clientName}"},"passkey-enrollment":{title:`Vytvořte svůj passkey`,description:`Postupujte podle pokynů prohlížeče a vytvořte passkey pro tento účet.`,errorMessage:`Vytvoření passkey se nezdařilo. Zkuste to prosím znovu.`,cancelLinkText:`Prozatím přeskočit`,retryButtonText:`Zkusit znovu`,enrollmentComplete:`Váš passkey byl úspěšně nastaven. Tuto stránku můžete zavřít.`,pageTitle:"Vytvoření Passkey | ${clientName}"},"passkey-challenge":{title:`Přihlásit se pomocí passkey`,description:`Postupujte podle pokynů prohlížeče k ověření vaší identity.`,errorMessage:`Ověření pomocí passkey selhalo. Zkuste to prosím znovu.`,cancelLinkText:`Zpět na přihlášení`,retryButtonText:`Zkusit znovu`,pageTitle:"Přihlášení pomocí passkey | ${clientName}"}},$o={organizations:{description:`Vyberte, ke které organizaci se chcete přihlásit`,pageTitle:"Výběr organizace | ${clientName}",searchPlaceholder:`Hledat organizace`,title:`Vyberte svou organizaci`}},es={signup:{buttonText:`Pokračovat`,confirmPasswordPlaceholder:`Potvrzení hesla`,description:`Zaregistrujte se a pokračujte`,"email-already-exists":`Tento e-mail je již zaregistrován`,emailPlaceholder:`E-mailová adresa`,federatedConnectionButtonText:"Pokračovat s ${connectionName}",hidePasswordText:`Skrýt heslo`,"invalid-email-format":`Neplatný e-mail`,loginActionLinkText:`Přihlásit se`,loginActionText:`Už máte účet?`,"no-email":`Zadejte prosím e-mailovou adresu`,"no-password":`Heslo je povinné`,"no-username":`Uživatelské jméno je povinné`,pageTitle:"Registrace | ${clientName}",passwordPlaceholder:`Heslo`,passwordsDidntMatch:`Hesla se neshodují`,phonePlaceholder:`Telefonní číslo`,privacyPolicyLinkText:`Zásady ochrany osobních údajů`,separatorText:`nebo`,sessionExpired:`Platnost vaší relace vypršela. Zkuste to prosím znovu.`,showPasswordText:`Zobrazit heslo`,termsOfServiceLinkText:`Podmínky služby`,termsText:`Registrací souhlasíte s našimi`,title:`Vytvořte svůj účet`,"username-already-exists":`Toto uživatelské jméno je již obsazeno`,usernamePlaceholder:`Uživatelské jméno`,verifyEmailText:`Zkontrolujte prosím svůj e-mail pro ověření účtu`}},ts={status:{continueButtonText:`Pokračovat`,errorTitle:`Chyba`,pageTitle:"Stav | ${clientName}",successTitle:`Hotovo`,title:`Stav`}},ns={common:qo,consent:Jo,"device-flow":{"device-flow":{buttonText:`Pokračovat`,codePlaceholder:`Zadejte kód`,description:`Zadejte kód zobrazený na vašem zařízení`,"expired-code":`Platnost kódu vypršela`,"invalid-code":`Zadaný kód je neplatný`,pageTitle:"Aktivace zařízení | ${clientName}",title:`Aktivujte své zařízení`}},"email-otp-challenge":{"email-otp-challenge":{buttonText:`Přihlásit se`,codeLabel:`Ověřovací kód`,codePlaceholder:`Zadejte kód`,defaultDescription:`Zadejte ověřovací kód zaslaný na váš e-mail`,description:"Odeslali jsme kód na ${email}","invalid-code":`Neplatný kód`,noCode:`Zadejte prosím ověřovací kód`,pageTitle:"Zadejte kód | ${clientName}",resendText:`Opětovné odeslání kódu`,sessionExpired:`Platnost vaší relace vypršela. Zkuste to prosím znovu.`,title:`Zkontrolujte svůj e-mail`,unexpectedError:`Došlo k neočekávané chybě`}},"email-verification":{"email-verification":{description:"Odeslali jsme e-mail na ${email}",pageTitle:"Ověření e-mailu | ${clientName}",resendText:`Opětovné odeslání kódu`,successDescription:`Váš e-mail byl úspěšně ověřen.`,successTitle:`E-mail ověřen`,title:`Ověření e-mailu`}},invitation:Yo,login:Xo,"login-id":{"login-id":{alertListTitle:`Upozornění`,"auth0-users-validation":`Něco se pokazilo, zkuste to prosím později`,"authentication-failure":`Omlouváme se, při pokusu o přihlášení se něco pokazilo`,buttonText:`Pokračovat`,"captcha-client-failure":`Nepodařilo se načíst bezpečnostní výzvu. Zkuste to prosím znovu. (Kód chyby: #{errorCode})`,"captcha-validation-failure":`Omlouváme se, při ověřování captcha došlo k chybě. Zkuste to prosím znovu.`,captchaCodePlaceholder:`Zadejte kód zobrazený výše`,"custom-script-error-code":`Něco se pokazilo, zkuste to prosím později.`,description:"Přihlaste se k ${clientName}.",editEmailText:`Upravit`,emailPlaceholder:`E-mailová adresa`,federatedConnectionButtonText:"Pokračovat s ${connectionName}",footerLinkText:`Zaregistrujte se`,footerText:`Nemáte účet?`,forgotPasswordText:`Zapomněli jste heslo?`,hidePasswordText:`Skrýt heslo`,"invalid-captcha":`Vyřešte úlohu, abyste ověřili, že nejste robot.`,"invalid-code":`Neplatný kód`,"invalid-connection":`Neplatné připojení`,"invalid-email-format":`Neplatný e-mail`,"invalid-email-phone":`Zadejte platnou e-mailovou adresu nebo telefonní číslo. Telefonní čísla musí obsahovat předvolbu země.`,"invalid-email-phone-username":`Zadejte platnou e-mailovou adresu, telefonní číslo nebo uživatelské jméno. Telefonní čísla musí obsahovat předvolbu země.`,"invalid-email-username":`Zadejte platnou e-mailovou adresu nebo uživatelské jméno`,"invalid-expired-code":`Neplatný nebo vypršelý uživatelský kód`,"invalid-login-id":`Zadáno neplatné přihlašovací ID`,"invalid-phone-username":`Zadejte platné telefonní číslo nebo uživatelské jméno. Telefonní čísla musí obsahovat předvolbu země.`,"invalid-recaptcha":`Zaškrtněte políčko, abyste ověřili, že nejste robot.`,"invalid-username":"Uživatelské jméno může obsahovat pouze alfanumerické znaky nebo: '${characters}'. Uživatelské jméno musí mít ${min} až ${max} znaků.",invitationDescription:"Přihlaste se pro přijetí pozvánky od ${inviterName} k připojení k ${companyName} na ${clientName}.",invitationTitle:`Byli jste pozváni!`,"ip-blocked":`Zjistili jsme podezřelé přihlašovací chování a další pokusy budou blokovány. Kontaktujte prosím administrátora.`,logoAltText:"${companyName}","no-db-connection":`Neplatné připojení`,"no-email":`Zadejte prosím e-mailovou adresu`,"no-email-phone":`Je vyžadována e-mailová adresa nebo telefonní číslo`,"no-email-phone-username":`Je vyžadováno telefonní číslo, uživatelské jméno nebo e-mailová adresa`,"no-email-username":`Je vyžadována e-mailová adresa nebo uživatelské jméno`,"no-password":`Heslo je povinné`,"no-phone":`Zadejte prosím telefonní číslo`,"no-phone-username":`Je vyžadováno telefonní číslo nebo uživatelské jméno`,"no-username":`Uživatelské jméno je povinné`,pageTitle:"Přihlášení | ${clientName}","password-breached":`Zjistili jsme potenciální bezpečnostní problém s tímto účtem. Pro ochranu vašeho účtu jsme toto přihlášení zablokovali. Pro pokračování prosím resetujte své heslo.`,passwordPlaceholder:`Heslo`,phoneOrEmailPlaceholder:`E-mail nebo telefonní číslo`,phoneOrUsernameOrEmailPlaceholder:`Telefon, uživatelské jméno nebo e-mail`,phoneOrUsernamePlaceholder:`Telefonní číslo nebo uživatelské jméno`,phonePlaceholder:`Telefonní číslo`,"same-user-login":`Příliš mnoho pokusů o přihlášení pro tohoto uživatele. Počkejte prosím a zkuste to znovu později.`,selectCountryCode:"Vyberte předvolbu země, aktuálně nastaveno na ${countryName}, ${countryCode}, +${countryPrefix}",separatorText:`nebo`,sessionExpired:`Platnost vaší relace vypršela. Zkuste to prosím znovu.`,showPasswordText:`Zobrazit heslo`,signupActionLinkText:"${footerLinkText}",signupActionText:"${footerText}",termsAndConditionsTemplate:'Pokračováním souhlasíte s našimi <a href="${termsAndConditionsUrl}" target="_blank" rel="noopener noreferrer">Podmínkami a pravidly</a>.',title:`Vítejte`,"user-blocked":`Váš účet byl zablokován po několika po sobě jdoucích neúspěšných pokusech o přihlášení.`,userAccountDoesNotExist:`Uživatelský účet neexistuje`,usernameOnlyPlaceholder:`Uživatelské jméno`,usernameOrEmailPlaceholder:`Uživatelské jméno nebo e-mailová adresa`,usernamePlaceholder:`Uživatelské jméno nebo e-mailová adresa`,usernameTooLong:"Uživatelské jméno musí mít nejvýše ${max} znaků",usernameTooShort:"Uživatelské jméno musí mít alespoň ${min} znaků","wrong-credentials":`Nesprávné uživatelské jméno nebo heslo`,"wrong-email-credentials":`Nesprávný e-mail nebo heslo`,"wrong-email-phone-credentials":`Nesprávná e-mailová adresa, telefonní číslo nebo heslo. Telefonní čísla musí obsahovat předvolbu země.`,"wrong-email-phone-username-credentials":`Nesprávná e-mailová adresa, telefonní číslo, uživatelské jméno nebo heslo. Telefonní čísla musí obsahovat předvolbu země.`,"wrong-email-username-credentials":`Nesprávná e-mailová adresa, uživatelské jméno nebo heslo`,"wrong-phone-credentials":`Nesprávné telefonní číslo nebo heslo`,"wrong-phone-username-credentials":`Nesprávné telefonní číslo, uživatelské jméno nebo heslo. Telefonní čísla musí obsahovat předvolbu země.`,"wrong-username-credentials":`Nesprávné uživatelské jméno nebo heslo`,passkeyButtonText:`Přihlásit se pomocí passkey`}},"login-password":{"login-password":{buttonText:`Přihlásit se`,description:"Přihlaste se k ${clientName}",forgotPasswordText:`Zapomněli jste heslo?`,hidePasswordText:`Skrýt heslo`,"no-password":`Heslo je povinné`,pageTitle:"Přihlášení | ${clientName}","password-breached":`Zjistili jsme potenciální bezpečnostní problém s tímto účtem. Pro ochranu vašeho účtu jsme toto přihlášení zablokovali. Pro pokračování prosím resetujte své heslo.`,passwordPlaceholder:`Heslo`,showPasswordText:`Zobrazit heslo`,signingInAs:"Přihlášení jako ${email}",title:`Zadejte heslo`,unverifiedEmail:`Před přihlášením prosím ověřte svou e-mailovou adresu`,"user-blocked":`Váš účet byl zablokován po několika po sobě jdoucích neúspěšných pokusech o přihlášení.`,"wrong-credentials":`Nesprávné heslo`}},"login-passwordless":{"login-passwordless":{authMethodEmail:`e-mailová adresa`,authMethodEmailOrPhone:`e-mail nebo telefonní číslo`,authMethodPhone:`telefonní číslo`,description:"Přihlaste se pomocí ${authMethod}",emailOrPhonePlaceholder:`E-mailová adresa nebo telefonní číslo`,emailPlaceholder:`E-mailová adresa`,invalidEmail:`Zadejte prosím platnou e-mailovou adresu`,invalidIdentifier:`Zadejte prosím platnou e-mailovou adresu nebo telefonní číslo`,invalidPhone:`Zadejte prosím platné telefonní číslo s předvolbou země`,noEmail:`Zadejte prosím svou e-mailovou adresu`,noPhone:`Zadejte prosím své telefonní číslo`,phonePlaceholder:`Telefonní číslo`,sessionExpired:`Platnost vaší relace vypršela. Zkuste to prosím znovu.`,title:`Přihlásit se kódem`,userAccountDoesNotExist:`Uživatelský účet neexistuje`}},"magic-link-sent":{"magic-link-sent":{defaultDescription:`Klikněte na odkaz ve svém e-mailu pro přihlášení`,description:"Odeslali jsme odkaz na ${username}. Kliknutím na něj se přihlásíte.",resendText:`Odeslat odkaz znovu`,spamText:`Nedostali jste e-mail? Zkontrolujte složku nevyžádané pošty.`,title:`Zkontrolujte svůj e-mail`}},mfa:Zo,"mfa-email":{"mfa-email":{buttonText:`Pokračovat`,codePlaceholder:`Zadejte kód`,description:"Odeslali jsme kód na ${email}","invalid-code":`Zadaný kód je neplatný`,pageTitle:"Ověření e-mailem | ${clientName}",resendText:`Opětovné odeslání kódu`,title:`Zkontrolujte svůj e-mail`}},"mfa-otp":{"mfa-otp":{buttonText:`Pokračovat`,codePlaceholder:`Zadejte kód`,description:`Zadejte šestimístný kód z vaší ověřovací aplikace`,"invalid-code":`Zadaný kód je neplatný`,pageTitle:"Zadejte kód | ${clientName}",title:`Zadejte svůj kód`},"mfa-totp-enrollment":{title:`Nastavit ověřovací aplikaci`,description:`Naskenujte QR kód níže pomocí ověřovací aplikace a poté zadejte šestimístný kód pro ověření`,secretLabel:`Nebo zadejte tento kód ručně:`,codePlaceholder:`Zadejte kód`,continueButtonText:`Ověřit a aktivovat`,"invalid-code":`Zadaný kód je neplatný. Zkuste to prosím znovu.`,"transaction-not-found":`Platnost vaší registrace vypršela, budete muset začít znovu.`,pageTitle:"Nastavení ověřovací aplikace | ${clientName}",unexpectedError:`Něco se pokazilo. Zkuste to prosím znovu.`,enrollmentComplete:`Registrace MFA je dokončena. Tuto stránku můžete zavřít.`},"mfa-totp-challenge":{title:`Ověřte svou identitu`,description:`Zadejte šestimístný kód z vaší ověřovací aplikace`,codePlaceholder:`Zadejte kód`,continueButtonText:`Pokračovat`,"invalid-code":`Zadaný kód je neplatný`,"transaction-not-found":`Platnost vaší registrace vypršela, budete muset začít znovu.`,unexpectedError:`Něco se pokazilo. Zkuste to prosím znovu.`,pageTitle:"Ověření identity | ${clientName}"}},"mfa-phone":{"mfa-phone-challenge":{pageTitle:"Použijte své telefonní číslo pro přihlášení | ${clientName}",title:`Ověřte svou identitu`,description:"Odeslali jsme kód na ${phoneNumber}",continueButtonText:`Pokračovat`,changePhoneText:`Zvolte jiné telefonní číslo.`,smsButtonText:`Textová zpráva`,voiceButtonText:`Hlasový hovor`,chooseMessageTypeText:`Jak chcete kód přijmout?`,pickAuthenticatorText:`Zkusit jinou metodu`,logoAltText:"${companyName}",codePlaceholder:`Zadejte kód`,"send-sms-failed":`Při odesílání SMS došlo k problému`,"send-voice-failed":`Při uskutečnění hlasového hovoru došlo k problému`,"invalid-phone-format":`Telefonní číslo může obsahovat pouze číslice.`,"invalid-phone":`Zdá se, že vaše telefonní číslo není platné. Zkontrolujte a zkuste to znovu.`,"too-many-sms":`Překročili jste maximální počet telefonních zpráv za hodinu. Počkejte pár minut a zkuste to znovu.`,"too-many-voice":`Překročili jste maximální počet hlasových hovorů za hodinu. Počkejte pár minut a zkuste to znovu.`,"transaction-not-found":`Vaše registrační transakce vypršela, budete muset začít znovu.`,"no-phone":`Zadejte telefonní číslo`,noCode:`Zadejte ověřovací kód`,invalidCode:`Zadaný kód je neplatný. Zkuste to znovu.`,unexpectedError:`Něco se pokazilo. Zkuste to znovu.`,resendSuccess:`Odeslali jsme nový kód na váš telefon`,enrollmentComplete:`Registrace MFA je dokončena. Tuto stránku můžete zavřít.`},"mfa-phone-enrollment":{pageTitle:"Zadejte své telefonní číslo pro přihlášení pomocí telefonního kódu | ${clientName}",title:`Zabezpečte svůj účet`,description:`Zadejte kód země a telefonní číslo, na které můžeme odeslat 6místný kód:`,continueButtonText:`Pokračovat`,smsButtonText:`Textová zpráva`,voiceButtonText:`Hlasový hovor`,chooseMessageTypeText:`Jak chcete kód přijmout?`,pickAuthenticatorText:`Zkusit jinou metodu`,placeholder:`Zadejte své telefonní číslo`,logoAltText:"${companyName}",selectCountryCode:"Vyberte kód země, aktuálně nastaveno na ${countryName}, ${countryCode}, +${countryPrefix}","send-sms-failed":`Při odesílání SMS došlo k problému`,"send-voice-failed":`Při uskutečnění hlasového hovoru došlo k problému`,"sms-authenticator-error":`Nepodařilo se odeslat SMS. Zkuste to prosím později.`,"invalid-phone-format":`Telefonní číslo může obsahovat pouze číslice.`,"invalid-phone":`Zdá se, že vaše telefonní číslo není platné. Zkontrolujte a zkuste to znovu.`,"too-many-sms":`Překročili jste maximální počet telefonních zpráv za hodinu. Počkejte pár minut a zkuste to znovu.`,"too-many-voice":`Překročili jste maximální počet hlasových hovorů za hodinu. Počkejte pár minut a zkuste to znovu.`,"transaction-not-found":`Vaše registrační transakce vypršela, budete muset začít znovu.`,"no-phone":`Zadejte telefonní číslo`,"phone-is-too-short":`Telefonní číslo je příliš krátké`,"phone-is-too-long":`Telefonní číslo je příliš dlouhé`}},"mfa-login-options":{"mfa-login-options":{pageTitle:"Vyberte metodu ověření | ${clientName}",title:`Vyberte způsob ověření`,description:`Zvolte, jak chcete ověřit svou identitu`,authenticatorAppLabel:`Autentizační aplikace`,authenticatorAppDescription:`Použijte autentizační aplikaci k získání ověřovacího kódu`,smsLabel:`Textová zpráva`,smsDescription:`Nechte si zaslat ověřovací kód na telefon`,passkeyLabel:`Passkey`,passkeyDescription:`Použijte biometrii zařízení nebo bezpečnostní klíč`}},"mfa-push":{"mfa-push":{description:`Odeslali jsme oznámení na vaše zařízení`,pageTitle:"Push oznámení | ${clientName}",resendText:`Odeslat oznámení znovu`,title:`Schvalte požadavek`,useCodeText:`Zadat kód ručně`}},"mfa-recovery-code":{"mfa-recovery-code":{buttonText:`Pokračovat`,codePlaceholder:`Záložní kód`,description:`Zadejte jeden z vašich záložních kódů`,"invalid-code":`Zadaný záložní kód je neplatný`,pageTitle:"Záložní kód | ${clientName}",title:`Zadejte záložní kód`}},"mfa-voice":{"mfa-voice":{buttonText:`Zavolat mi`,codePlaceholder:`Zadejte kód`,description:"Zavoláme na ${phoneNumber} s vaším kódem","invalid-code":`Zadaný kód je neplatný`,pageTitle:"Hlasový hovor | ${clientName}",title:`Přijmout telefonní hovor`}},"mfa-webauthn":{"mfa-webauthn":{buttonText:`Zkusit znovu`,description:`Vložte svůj bezpečnostní klíč a postupujte podle pokynů`,pageTitle:"Bezpečnostní klíč | ${clientName}",title:`Použijte svůj bezpečnostní klíč`}},passkeys:Qo,organizations:$o,"reset-password":{"reset-password":{backToLoginText:`Zpět na přihlášení`,buttonText:`Pokračovat`,codeExpired:`Platnost kódu pro obnovení hesla vypršela. Požádejte prosím o nový.`,confirmPasswordLabel:`Potvrzení hesla`,confirmPasswordPlaceholder:`Potvrzení hesla`,description:`Zadejte svůj e-mail pro obnovení hesla`,emailPlaceholder:`E-mailová adresa`,failed:`Obnovení hesla se nezdařilo. Zkuste to prosím znovu.`,"invalid-email-format":`Neplatný e-mail`,"no-email":`Zadejte prosím e-mailovou adresu`,pageTitle:"Obnovení hesla | ${clientName}",passwordLabel:`Nové heslo`,passwordPlaceholder:`Nové heslo`,passwordTooWeak:`Heslo je příliš slabé`,passwordsDidntMatch:`Hesla se neshodují`,successDescription:`Odkaz na obnovení hesla jsme odeslali na vaši e-mailovou adresu.`,successTitle:`Zkontrolujte svůj e-mail`,title:`Zapomněli jste heslo?`,"user-not-found":`Uživatel nenalezen`},"reset-password-code":{backToLoginText:`Zpět na přihlášení`,buttonText:`Obnovit heslo`,codeLabel:`Kód pro obnovení`,codePlaceholder:`Zadejte 6místný kód`,confirmPasswordLabel:`Potvrzení hesla`,confirmPasswordPlaceholder:`Potvrzení hesla`,defaultDescription:`Zadejte kód zaslaný na váš e-mail a zvolte nové heslo`,description:"Odeslali jsme kód na ${email}",failed:`Obnovení hesla se nezdařilo. Zkuste to prosím znovu.`,invalidCode:`Zadaný kód je neplatný nebo vypršel`,noCode:`Zadejte prosím kód pro obnovení`,pageTitle:"Zadejte kód pro obnovení | ${clientName}",passwordLabel:`Nové heslo`,passwordPlaceholder:`Nové heslo`,passwordTooWeak:`Heslo je příliš slabé`,passwordsDidntMatch:`Hesla se neshodují`,resendFailed:`Nepodařilo se znovu odeslat kód. Zkuste to prosím znovu.`,resendSuccess:`Nový kód byl odeslán na váš e-mail`,resendText:`Odeslat kód znovu`,sessionExpired:`Platnost vaší relace vypršela. Zkuste to prosím znovu.`,title:`Zadejte kód pro obnovení`}},signup:es,"signup-id":{"signup-id":{buttonText:`Pokračovat`,description:`Zaregistrujte se a pokračujte`,"email-already-exists":`Tento e-mail je již zaregistrován`,emailPlaceholder:`E-mailová adresa`,federatedConnectionButtonText:"Pokračovat s ${connectionName}","invalid-email-format":`Neplatný e-mail`,loginActionLinkText:`Přihlásit se`,loginActionText:`Už máte účet?`,"no-email":`Zadejte prosím e-mailovou adresu`,pageTitle:"Registrace | ${clientName}",phonePlaceholder:`Telefonní číslo`,separatorText:`nebo`,title:`Vytvořte svůj účet`,usernamePlaceholder:`Uživatelské jméno`}},"signup-password":{"signup-password":{buttonText:`Pokračovat`,description:`Zaregistrujte se a pokračujte`,hidePasswordText:`Skrýt heslo`,"no-password":`Heslo je povinné`,pageTitle:"Registrace | ${clientName}","password-policy-not-met":`Heslo nesplňuje požadavky`,"password-too-weak":`Heslo je příliš slabé`,passwordPlaceholder:`Heslo`,showPasswordText:`Zobrazit heslo`,title:`Vytvořte své heslo`}},"sms-otp-challenge":{"sms-otp-challenge":{buttonText:`Pokračovat`,codeLabel:`Ověřovací kód`,codePlaceholder:`Zadejte kód`,defaultDescription:`Zadejte ověřovací kód zaslaný na váš telefon`,description:"Odeslali jsme kód na ${username}","invalid-code":`Neplatný kód`,noCode:`Zadejte prosím ověřovací kód`,pageTitle:"Zadejte kód | ${clientName}",resendText:`Opětovné odeslání kódu`,sessionExpired:`Platnost vaší relace vypršela. Zkuste to prosím znovu.`,title:`Zkontrolujte svůj telefon`,unexpectedError:`Došlo k neočekávané chybě`}},status:ts},rs=c({common:()=>is,consent:()=>as,default:()=>ps,invitation:()=>os,login:()=>ss,mfa:()=>cs,organizations:()=>us,passkeys:()=>ls,signup:()=>ds,status:()=>fs}),is={common:{alertListTitle:`Advarsler`,backText:`Gå tilbage`,cancelText:`Gå tilbage`,closeText:`Luk`,contactSupportText:`Har du brug for hjælp?`,continueText:`Fortsæt`,copyrightText:"© ${currentYear} ${companyName}",errorText:`Noget gik galt. Prøv venligst igen.`,hidePasswordText:`Skjul adgangskode`,loadingText:`Indlæser...`,orText:`eller`,privacyPolicyText:`Privatlivspolitik`,showPasswordText:`Vis adgangskode`,termsOfServiceText:`Servicevilkår`,termsShortText:`Vilkår`,tryAgainText:`Prøv igen`}},as={consent:{buttonText:`Acceptér`,cancelButtonText:`Afvis`,description:"${clientName} anmoder om adgang til din konto",pageTitle:"Godkend | ${clientName}",scopesTitle:"Dette vil give ${clientName} tilladelse til at:",title:"Godkend ${clientName}"}},os={invitation:{acceptButtonText:`Acceptér invitation`,description:"${inviterName} har inviteret dig til at deltage i ${organizationName} på ${clientName}",pageTitle:"Invitation | ${clientName}",title:`Du er blevet inviteret`}},ss={login:{alertListTitle:`Advarsler`,buttonText:`Fortsæt`,description:"Log ind på ${clientName}.",editEmailText:`Rediger`,emailPlaceholder:`E-mail-adresse`,enterACodeBtn:`Log ind med en kode`,federatedConnectionButtonText:"Fortsæt med ${connectionName}",footerLinkText:`Tilmeld dig`,footerText:`Har du ikke en konto?`,forgotPasswordText:`Har du glemt din adgangskode?`,hidePasswordText:`Skjul adgangskode`,invalidEmail:`Ugyldig e-mail`,invalidIdentifier:`Ugyldig e-mail eller brugernavn`,invitationDescription:"Log ind for at acceptere ${inviterName}s invitation til at deltage i ${companyName} på ${clientName}.",invitationTitle:`Du er blevet inviteret!`,logoAltText:"${companyName}","no-email":`Indtast venligst en e-mailadresse`,"no-password":`Adgangskode er påkrævet`,pageTitle:"Log ind | ${clientName}",passwordLoginNotAvailable:`Adgangskodegodkendelse er ikke tilgængelig`,passwordPlaceholder:`Adgangskode`,phonePlaceholder:`Telefonnummer`,separatorText:`eller`,sessionExpired:`Din session er udløbet. Prøv venligst igen.`,showPasswordText:`Vis adgangskode`,signupActionLinkText:`Tilmeld dig`,signupActionText:`Har du ikke en konto?`,title:`Velkommen`,tooManyFailedLogins:`For mange mislykkede loginforsøg. Prøv venligst igen senere.`,unverifiedEmail:`Bekræft venligst din e-mailadresse, før du logger ind`,userAccountDoesNotExist:`Brugerkontoen findes ikke`,usernamePlaceholder:`Brugernavn eller e-mailadresse`,usernameTooLong:"Brugernavnet må højst være ${max} tegn",usernameTooShort:"Brugernavnet skal være mindst ${min} tegn",wrongCredentials:`Forkert brugernavn eller adgangskode`,passkeyButtonText:`Log ind med passkey`}},cs={mfa:{backupCodeText:`Brug backupkode`,description:`Vælg en bekræftelsesmetode`,pageTitle:"Multifaktorgodkendelse | ${clientName}",title:`Bekræft din identitet`}},ls={"passkey-enrollment-nudge":{title:`Sikr din konto med en adgangsnøgle`,description:`Adgangsnøgler bruger din enheds biometri eller PIN til at logge dig ind hurtigere og mere sikkert.`,enrollButtonText:`Konfigurer adgangsnøgle`,snoozeButtonText:`Måske senere`,optOutLinkText:`Vis ikke dette igen`,pageTitle:"Konfigurer Adgangsnøgle | ${clientName}"},"passkey-enrollment":{title:`Opret din adgangsnøgle`,description:`Følg anvisningerne fra din browser for at oprette en adgangsnøgle til denne konto.`,errorMessage:`Oprettelse af adgangsnøgle mislykkedes. Prøv venligst igen.`,cancelLinkText:`Spring over for nu`,retryButtonText:`Prøv igen`,enrollmentComplete:`Din adgangsnøgle er konfigureret. Du kan lukke denne side.`,pageTitle:"Opret Adgangsnøgle | ${clientName}"},"passkey-challenge":{title:`Log ind med passkey`,description:`Følg anvisningerne fra din browser for at bekræfte din identitet.`,errorMessage:`Godkendelse med passkey mislykkedes. Prøv venligst igen.`,cancelLinkText:`Tilbage til login`,retryButtonText:`Prøv igen`,pageTitle:"Log ind med passkey | ${clientName}"}},us={organizations:{description:`Vælg hvilken organisation du vil logge ind på`,pageTitle:"Vælg organisation | ${clientName}",searchPlaceholder:`Søg organisationer`,title:`Vælg din organisation`}},ds={signup:{buttonText:`Tilmelding`,confirmPasswordPlaceholder:`Bekræft adgangskode`,description:`Vælg en adgangskode med en blanding af store og små bogstaver, tal og symboler.`,"email-already-exists":`E-mailen er allerede optaget`,emailPlaceholder:`E-mail-adresse`,federatedConnectionButtonText:"Fortsæt med ${connectionName}",hidePasswordText:`Skjul adgangskode`,"invalid-email-format":`Ugyldig e-mail`,loginActionLinkText:`Log ind`,loginActionText:`Har du allerede en konto?`,"no-email":`Indtast venligst en e-mailadresse`,"no-password":`Adgangskode er påkrævet`,"no-username":`Brugernavn er påkrævet`,pageTitle:"Tilmeld dig | ${clientName}",passwordPlaceholder:`Adgangskode`,passwordsDidntMatch:`Adgangskoderne matcher ikke`,phonePlaceholder:`Telefonnummer`,privacyPolicyLinkText:`Privatlivspolitik`,separatorText:`eller`,sessionExpired:`Din session er udløbet. Prøv venligst igen.`,showPasswordText:`Vis adgangskode`,termsOfServiceLinkText:`Servicevilkår`,termsText:`Ved at tilmelde dig accepterer du vores`,title:`Vælg adgangskode`,"username-already-exists":`Dette brugernavn er allerede taget`,usernamePlaceholder:`Brugernavn`,verifyEmailText:`Tjek venligst din e-mail for at bekræfte din konto`}},fs={status:{continueButtonText:`Fortsæt`,errorTitle:`Fejl`,pageTitle:"Status | ${clientName}",successTitle:`Succes`,title:`Status`}},ps={common:is,consent:as,"device-flow":{"device-flow":{buttonText:`Fortsæt`,codePlaceholder:`Indtast kode`,description:`Indtast koden, der vises på din enhed`,"expired-code":`Koden er udløbet`,"invalid-code":`Den indtastede kode er ugyldig`,pageTitle:"Enhedsaktivering | ${clientName}",title:`Aktivér din enhed`}},"email-otp-challenge":{"email-otp-challenge":{buttonText:`Log ind`,codeLabel:`Bekræftelseskode`,codePlaceholder:`Indtast kode`,defaultDescription:`Indtast bekræftelseskoden, der blev sendt til din e-mail`,description:"Vi sendte en kode til ${email}","invalid-code":`Ugyldig kode`,noCode:`Indtast venligst bekræftelseskoden`,pageTitle:"Indtast kode | ${clientName}",resendText:`Send koden igen`,sessionExpired:`Din session er udløbet. Prøv venligst igen.`,title:`Tjek din e-mail`,unexpectedError:`Der opstod en uventet fejl`}},"email-verification":{"email-verification":{description:"Vi sendte en e-mail til ${email}",pageTitle:"Bekræft e-mail | ${clientName}",resendText:`Send koden igen`,successDescription:`Din e-mail er blevet bekræftet.`,successTitle:`E-mail bekræftet`,title:`Bekræft din e-mail`}},invitation:os,login:ss,"login-id":{"login-id":{alertListTitle:`Advarsler`,"auth0-users-validation":`Noget gik galt, prøv venligst igen senere`,"authentication-failure":`Vi beklager, noget gik galt under loginforsøget`,buttonText:`Fortsæt`,"captcha-client-failure":`Vi kunne ikke indlæse sikkerhedsudfordringen. Prøv venligst igen. (Fejlkode: #{errorCode})`,"captcha-validation-failure":`Vi beklager, noget gik galt under validering af captcha-svaret. Prøv venligst igen.`,captchaCodePlaceholder:`Indtast koden vist ovenfor`,"custom-script-error-code":`Noget gik galt, prøv venligst igen senere.`,description:"Log ind på ${clientName}.",editEmailText:`Rediger`,emailPlaceholder:`E-mail-adresse`,federatedConnectionButtonText:"Fortsæt med ${connectionName}",footerLinkText:`Tilmeld dig`,footerText:`Har du ikke en konto?`,forgotPasswordText:`Har du glemt din adgangskode?`,hidePasswordText:`Skjul adgangskode`,"invalid-captcha":`Løs sikkerhedsspørgsmålet for at bekræfte, at du ikke er en robot.`,"invalid-code":`Ugyldig kode`,"invalid-connection":`Ugyldig forbindelse`,"invalid-email-format":`Ugyldig e-mail`,"invalid-email-phone":`Indtast en gyldig e-mailadresse eller telefonnummer. Telefonnumre skal inkludere landekoden.`,"invalid-email-phone-username":`Indtast en gyldig e-mailadresse, telefonnummer eller brugernavn. Telefonnumre skal inkludere landekoden.`,"invalid-email-username":`Indtast en gyldig e-mailadresse eller brugernavn`,"invalid-expired-code":`Ugyldig eller udløbet brugerkode`,"invalid-login-id":`Ugyldigt login-ID indtastet`,"invalid-phone-username":`Indtast et gyldigt telefonnummer eller brugernavn. Telefonnumre skal inkludere landekoden.`,"invalid-recaptcha":`Markér afkrydsningsfeltet for at bekræfte, at du ikke er en robot.`,"invalid-username":"Brugernavnet kan kun indeholde alfanumeriske tegn eller: '${characters}'. Brugernavnet skal være mellem ${min} og ${max} tegn.",invitationDescription:"Log ind for at acceptere ${inviterName}s invitation til at deltage i ${companyName} på ${clientName}.",invitationTitle:`Du er blevet inviteret!`,"ip-blocked":`Vi har registreret mistænkelig loginadfærd, og yderligere forsøg vil blive blokeret. Kontakt venligst administratoren.`,logoAltText:"${companyName}","no-db-connection":`Ugyldig forbindelse`,"no-email":`Indtast venligst en e-mailadresse`,"no-email-phone":`E-mailadresse eller telefonnummer er påkrævet`,"no-email-phone-username":`Telefonnummer, brugernavn eller e-mailadresse er påkrævet`,"no-email-username":`E-mailadresse eller brugernavn er påkrævet`,"no-password":`Adgangskode er påkrævet`,"no-phone":`Indtast venligst et telefonnummer`,"no-phone-username":`Telefonnummer eller brugernavn er påkrævet`,"no-username":`Brugernavn er påkrævet`,pageTitle:"Log ind | ${clientName}","password-breached":`Vi har registreret et potentielt sikkerhedsproblem med denne konto. For at beskytte din konto har vi forhindret dette login. Nulstil venligst din adgangskode for at fortsætte.`,passwordPlaceholder:`Adgangskode`,phoneOrEmailPlaceholder:`E-mail eller telefonnummer`,phoneOrUsernameOrEmailPlaceholder:`Telefon, brugernavn eller e-mail`,phoneOrUsernamePlaceholder:`Telefonnummer eller brugernavn`,phonePlaceholder:`Telefonnummer`,"same-user-login":`For mange loginforsøg for denne bruger. Vent venligst, og prøv igen senere.`,selectCountryCode:"Vælg landekode, i øjeblikket sat til ${countryName}, ${countryCode}, +${countryPrefix}",separatorText:`eller`,sessionExpired:`Din session er udløbet. Prøv venligst igen.`,showPasswordText:`Vis adgangskode`,signupActionLinkText:`Tilmeld dig`,signupActionText:`Har du ikke en konto?`,termsAndConditionsTemplate:'Ved at fortsætte accepterer du vores <a href="${termsAndConditionsUrl}" target="_blank" rel="noopener noreferrer">Vilkår og betingelser</a>.',title:`Velkommen`,"user-blocked":`Din konto er blevet blokeret efter flere på hinanden følgende loginforsøg.`,userAccountDoesNotExist:`Brugerkontoen findes ikke`,usernameOnlyPlaceholder:`Brugernavn`,usernameOrEmailPlaceholder:`Brugernavn eller e-mailadresse`,usernamePlaceholder:`Brugernavn`,usernameTooLong:"Brugernavnet må højst være ${max} tegn",usernameTooShort:"Brugernavnet skal være mindst ${min} tegn","wrong-credentials":`Forkert brugernavn eller adgangskode`,"wrong-email-credentials":`Forkert e-mail eller adgangskode`,"wrong-email-phone-credentials":`Forkert e-mailadresse, telefonnummer eller adgangskode. Telefonnumre skal inkludere landekoden.`,"wrong-email-phone-username-credentials":`Forkert e-mailadresse, telefonnummer, brugernavn eller adgangskode. Telefonnumre skal inkludere landekoden.`,"wrong-email-username-credentials":`Forkert e-mailadresse, brugernavn eller adgangskode`,"wrong-phone-credentials":`Forkert telefonnummer eller adgangskode`,"wrong-phone-username-credentials":`Forkert telefonnummer, brugernavn eller adgangskode. Telefonnumre skal inkludere landekoden.`,"wrong-username-credentials":`Forkert brugernavn eller adgangskode`,passkeyButtonText:`Log ind med passkey`}},"login-password":{"login-password":{buttonText:`Log ind`,description:`Indtast din e-mailadresse og adgangskode for at logge ind.`,forgotPasswordText:`Har du glemt din adgangskode?`,hidePasswordText:`Skjul adgangskode`,"no-password":`Adgangskode er påkrævet`,pageTitle:"Log ind | ${clientName}","password-breached":`Vi har registreret et potentielt sikkerhedsproblem med denne konto. For at beskytte din konto har vi forhindret dette login. Nulstil venligst din adgangskode for at fortsætte.`,passwordPlaceholder:`Adgangskode`,showPasswordText:`Vis adgangskode`,signingInAs:"Logger ind som ${email}",title:`Indtast adgangskode`,unverifiedEmail:`Bekræft venligst din e-mailadresse, før du logger ind`,"user-blocked":`Din konto er blevet blokeret efter flere på hinanden følgende loginforsøg.`,"wrong-credentials":`Forkert adgangskode`}},"login-passwordless":{"login-passwordless":{authMethodEmail:`e-mail`,authMethodEmailOrPhone:`e-mail eller telefonnummer`,authMethodPhone:`telefonnummer`,description:"Log ind med din ${authMethod}",emailOrPhonePlaceholder:`E-mailadresse eller telefonnummer`,emailPlaceholder:`E-mail-adresse`,invalidEmail:`Indtast venligst en gyldig e-mailadresse`,invalidIdentifier:`Indtast venligst en gyldig e-mailadresse eller telefonnummer`,invalidPhone:`Indtast venligst et gyldigt telefonnummer med landekode`,noEmail:`Indtast venligst din e-mailadresse`,noPhone:`Indtast venligst dit telefonnummer`,phonePlaceholder:`Telefonnummer`,sessionExpired:`Din session er udløbet. Prøv venligst igen.`,title:`Log ind med en kode`,userAccountDoesNotExist:`Brugerkontoen findes ikke`}},"magic-link-sent":{"magic-link-sent":{defaultDescription:`Klik på linket i din e-mail for at logge ind`,description:"Vi sendte et link til ${username}. Klik på det for at logge ind.",resendText:`Send link igen`,spamText:`Har du ikke modtaget e-mailen? Tjek din spam-mappe.`,title:`Tjek din e-mail`}},mfa:cs,"mfa-email":{"mfa-email":{buttonText:`Fortsæt`,codePlaceholder:`Indtast kode`,description:"Vi sendte en kode til ${email}","invalid-code":`Den indtastede kode er ugyldig`,pageTitle:"E-mailbekræftelse | ${clientName}",resendText:`Send kode igen`,title:`Tjek din e-mail`}},"mfa-otp":{"mfa-otp":{buttonText:`Fortsæt`,codePlaceholder:`Indtast kode`,description:`Indtast den 6-cifrede kode fra din autentificeringsapp`,"invalid-code":`Den indtastede kode er ugyldig`,pageTitle:"Indtast kode | ${clientName}",title:`Indtast din kode`},"mfa-totp-enrollment":{title:`Opsæt autentificeringsapp`,description:`Scan QR-koden nedenfor med din autentificeringsapp, og indtast derefter den 6-cifrede kode for at bekræfte`,secretLabel:`Eller indtast denne kode manuelt:`,codePlaceholder:`Indtast kode`,continueButtonText:`Bekræft og aktiver`,"invalid-code":`Den indtastede kode er ugyldig. Prøv venligst igen.`,"transaction-not-found":`Din tilmeldingssession er udløbet. Du skal starte forfra.`,pageTitle:"Opsæt autentificeringsapp | ${clientName}",unexpectedError:`Noget gik galt. Prøv venligst igen.`,enrollmentComplete:`MFA-tilmeldingen er fuldført. Du kan lukke denne side.`},"mfa-totp-challenge":{title:`Bekræft din identitet`,description:`Indtast den 6-cifrede kode fra din autentificeringsapp`,codePlaceholder:`Indtast kode`,continueButtonText:`Fortsæt`,"invalid-code":`Den indtastede kode er ugyldig`,"transaction-not-found":`Din session er udløbet. Du skal starte forfra.`,unexpectedError:`Noget gik galt. Prøv venligst igen.`,pageTitle:"Bekræft identitet | ${clientName}"}},"mfa-phone":{"mfa-phone-challenge":{pageTitle:"Brug dit telefonnummer til at logge ind | ${clientName}",title:`Bekræft din identitet`,description:"Vi sendte en kode til ${phoneNumber}",continueButtonText:`Fortsæt`,changePhoneText:`Vælg et andet telefonnummer.`,smsButtonText:`SMS`,voiceButtonText:`Taleopkald`,chooseMessageTypeText:`Hvordan vil du modtage koden?`,pickAuthenticatorText:`Prøv en anden metode`,logoAltText:"${companyName}",codePlaceholder:`Indtast kode`,"send-sms-failed":`Der opstod et problem med at sende SMS'en`,"send-voice-failed":`Der opstod et problem med at foretage taleopkaldet`,"invalid-phone-format":`Telefonnummeret kan kun indeholde cifre.`,"invalid-phone":`Det ser ud til, at dit telefonnummer ikke er gyldigt. Kontrollér og prøv igen.`,"too-many-sms":`Du har overskredet det maksimale antal telefonbeskeder pr. time. Vent et par minutter og prøv igen.`,"too-many-voice":`Du har overskredet det maksimale antal telefonopkald pr. time. Vent et par minutter og prøv igen.`,"transaction-not-found":`Din registreringstransaktion er udløbet, du skal starte forfra.`,"no-phone":`Indtast et telefonnummer`,noCode:`Indtast bekræftelseskoden`,invalidCode:`Den indtastede kode er ugyldig. Prøv igen.`,unexpectedError:`Noget gik galt. Prøv igen.`,resendSuccess:`Vi sendte en ny kode til din telefon`,enrollmentComplete:`MFA-tilmeldingen er fuldført. Du kan lukke denne side.`},"mfa-phone-enrollment":{pageTitle:"Indtast dit telefonnummer for at logge ind med en telefonkode | ${clientName}",title:`Sikre din konto`,description:`Indtast din landekode og telefonnummer, som vi kan sende en 6-cifret kode til:`,continueButtonText:`Fortsæt`,smsButtonText:`SMS`,voiceButtonText:`Taleopkald`,chooseMessageTypeText:`Hvordan vil du modtage koden?`,pickAuthenticatorText:`Prøv en anden metode`,placeholder:`Indtast dit telefonnummer`,logoAltText:"${companyName}",selectCountryCode:"Vælg landekode, i øjeblikket sat til ${countryName}, ${countryCode}, +${countryPrefix}","send-sms-failed":`Der opstod et problem med at sende SMS'en`,"send-voice-failed":`Der opstod et problem med at foretage taleopkaldet`,"sms-authenticator-error":`Vi kunne ikke sende SMS'en. Prøv igen senere.`,"invalid-phone-format":`Telefonnummeret kan kun indeholde cifre.`,"invalid-phone":`Det ser ud til, at dit telefonnummer ikke er gyldigt. Kontrollér og prøv igen.`,"too-many-sms":`Du har overskredet det maksimale antal telefonbeskeder pr. time. Vent et par minutter og prøv igen.`,"too-many-voice":`Du har overskredet det maksimale antal telefonopkald pr. time. Vent et par minutter og prøv igen.`,"transaction-not-found":`Din registreringstransaktion er udløbet, du skal starte forfra.`,"no-phone":`Indtast et telefonnummer`,"phone-is-too-short":`Telefonnummeret er for kort`,"phone-is-too-long":`Telefonnummeret er for langt`}},"mfa-login-options":{"mfa-login-options":{pageTitle:"Vælg bekræftelsesmetode | ${clientName}",title:`Vælg din bekræftelsesmetode`,description:`Vælg hvordan du vil bekræfte din identitet`,authenticatorAppLabel:`Godkendelsesapp`,authenticatorAppDescription:`Brug din godkendelsesapp til at få en bekræftelseskode`,smsLabel:`Sms-besked`,smsDescription:`Få en bekræftelseskode sendt til din telefon`,passkeyLabel:`Adgangsnøgle`,passkeyDescription:`Brug din enheds biometri eller sikkerhedsnøgle`}},"mfa-push":{"mfa-push":{description:`Vi sendte en notifikation til din enhed`,pageTitle:"Push-notifikation | ${clientName}",resendText:`Send notifikation igen`,title:`Godkend anmodningen`,useCodeText:`Indtast kode manuelt`}},"mfa-recovery-code":{"mfa-recovery-code":{buttonText:`Fortsæt`,codePlaceholder:`Gendannelseskode`,description:`Indtast en af dine gendannelseskoder`,"invalid-code":`Den indtastede gendannelseskode er ugyldig`,pageTitle:"Gendannelseskode | ${clientName}",title:`Indtast gendannelseskode`}},"mfa-voice":{"mfa-voice":{buttonText:`Ring til mig`,codePlaceholder:`Indtast kode`,description:"Vi ringer til ${phoneNumber} med din kode","invalid-code":`Den indtastede kode er ugyldig`,pageTitle:"Taleopkald | ${clientName}",title:`Modtag et telefonopkald`}},"mfa-webauthn":{"mfa-webauthn":{buttonText:`Prøv igen`,description:`Indsæt din sikkerhedsnøgle og følg instruktionerne`,pageTitle:"Sikkerhedsnøgle | ${clientName}",title:`Brug din sikkerhedsnøgle`}},passkeys:ls,organizations:us,"reset-password":{"reset-password":{backToLoginText:`Gå tilbage`,buttonText:`Send e-mail til nulstilling af adgangskode`,codeExpired:`Din kode til nulstilling af adgangskode er udløbet. Anmod venligst om en ny.`,confirmPasswordLabel:`Bekræft adgangskode`,confirmPasswordPlaceholder:`Bekræft adgangskode`,description:`Klik på knappen nedenfor, så sender vi instruktioner om, hvordan du nulstiller din adgangskode.`,emailPlaceholder:`E-mail-adresse`,failed:`Nulstilling af adgangskode mislykkedes. Prøv venligst igen.`,"invalid-email-format":`Ugyldig e-mail`,"no-email":`Indtast venligst en e-mailadresse`,pageTitle:"Nulstil adgangskode | ${clientName}",passwordLabel:`Ny adgangskode`,passwordPlaceholder:`Ny adgangskode`,passwordTooWeak:`Adgangskoden er for svag`,passwordsDidntMatch:`Adgangskoderne matcher ikke`,successDescription:`Vi har sendt et link til nulstilling af adgangskode til din e-mailadresse.`,successTitle:`E-mail til nulstilling af adgangskode sendt`,title:`Har du glemt din adgangskode?`,"user-not-found":`Bruger ikke fundet`},"reset-password-code":{backToLoginText:`Tilbage til login`,buttonText:`Nulstil adgangskode`,codeLabel:`Nulstillingskode`,codePlaceholder:`Indtast 6-cifret kode`,confirmPasswordLabel:`Bekræft adgangskode`,confirmPasswordPlaceholder:`Bekræft adgangskode`,defaultDescription:`Indtast koden sendt til din e-mail og vælg en ny adgangskode`,description:"Vi sendte en kode til ${email}",failed:`Nulstilling af adgangskode mislykkedes. Prøv venligst igen.`,invalidCode:`Den indtastede kode er ugyldig eller udløbet`,noCode:`Indtast venligst nulstillingskoden`,pageTitle:"Indtast nulstillingskode | ${clientName}",passwordLabel:`Ny adgangskode`,passwordPlaceholder:`Ny adgangskode`,passwordTooWeak:`Adgangskoden er for svag`,passwordsDidntMatch:`Adgangskoderne matcher ikke`,resendFailed:`Kunne ikke sende koden igen. Prøv igen.`,resendSuccess:`En ny kode er blevet sendt til din e-mail`,resendText:`Send kode igen`,sessionExpired:`Din session er udløbet. Prøv venligst igen.`,title:`Indtast nulstillingskode`}},signup:ds,"signup-id":{"signup-id":{buttonText:`Fortsæt`,description:`Vælg en adgangskode med en blanding af store og små bogstaver, tal og symboler.`,"email-already-exists":`E-mailen er allerede optaget`,emailPlaceholder:`E-mail-adresse`,federatedConnectionButtonText:"Fortsæt med ${connectionName}","invalid-email-format":`Ugyldig e-mail`,loginActionLinkText:`Log ind`,loginActionText:`Har du allerede en konto?`,"no-email":`Indtast venligst en e-mailadresse`,pageTitle:"Tilmeld dig | ${clientName}",phonePlaceholder:`Telefonnummer`,separatorText:`eller`,title:`Vælg adgangskode`,usernamePlaceholder:`Brugernavn`}},"signup-password":{"signup-password":{buttonText:`Fortsæt`,description:`Vælg en adgangskode med en blanding af store og små bogstaver, tal og symboler.`,hidePasswordText:`Skjul adgangskode`,"no-password":`Adgangskode er påkrævet`,pageTitle:"Tilmeld dig | ${clientName}","password-policy-not-met":`Adgangskoden opfylder ikke kravene`,"password-too-weak":`Adgangskoden er for svag`,passwordPlaceholder:`Adgangskode`,showPasswordText:`Vis adgangskode`,title:`Vælg adgangskode`}},"sms-otp-challenge":{"sms-otp-challenge":{buttonText:`Log ind`,codeLabel:`Bekræftelseskode`,codePlaceholder:`Indtast kode`,defaultDescription:`Indtast bekræftelseskoden, der blev sendt til din telefon`,description:"Vi sendte en kode til ${username}","invalid-code":`Ugyldig kode`,noCode:`Indtast venligst bekræftelseskoden`,pageTitle:"Indtast kode | ${clientName}",resendText:`Send koden igen`,sessionExpired:`Din session er udløbet. Prøv venligst igen.`,title:`Tjek din telefon`,unexpectedError:`Der opstod en uventet fejl`}},status:fs},ms=c({common:()=>hs,consent:()=>gs,default:()=>ws,invitation:()=>_s,login:()=>vs,mfa:()=>ys,organizations:()=>xs,passkeys:()=>bs,signup:()=>Ss,status:()=>Cs}),hs={common:{alertListTitle:`Alerts`,backText:`Back`,cancelText:`Cancel`,closeText:`Close`,contactSupportText:`Contact Support`,continueText:`Continue`,copyrightText:"© ${currentYear} ${companyName}",errorText:`An error occurred`,hidePasswordText:`Hide password`,loadingText:`Loading...`,orText:`or`,privacyPolicyText:`Privacy Policy`,showPasswordText:`Show password`,termsOfServiceText:`Terms of Service`,termsShortText:`Terms`,tryAgainText:`Try again`}},gs={consent:{buttonText:`Accept`,cancelButtonText:`Deny`,description:"${clientName} is requesting access to your account",pageTitle:"Authorize | ${clientName}",scopesTitle:"This will allow ${clientName} to:",title:"Authorize ${clientName}"}},_s={invitation:{acceptButtonText:`Accept invitation`,description:"${inviterName} has invited you to join ${organizationName} on ${clientName}",pageTitle:"Invitation | ${clientName}",title:`You've been invited`}},vs={login:{alertListTitle:`Alerts`,buttonText:`Continue`,description:"Log in to ${clientName}.",editEmailText:`Edit`,emailPlaceholder:`Email address`,enterACodeBtn:`Sign in with a code`,federatedConnectionButtonText:"Continue with ${connectionName}",footerLinkText:`Sign up`,footerText:`Don't have an account?`,forgotPasswordText:`Forgot password?`,hidePasswordText:`Hide password`,invalidEmail:`Invalid email`,invalidIdentifier:`Invalid email or username`,invitationDescription:"Log in to accept ${inviterName}'s invitation to join ${companyName} on ${clientName}.",invitationTitle:`You've Been Invited!`,logoAltText:"${companyName}","no-email":`Please enter an email address`,"no-password":`Password is required`,pageTitle:"Log in | ${clientName}",passwordLoginNotAvailable:`Password authentication is not available`,passwordPlaceholder:`Password`,phonePlaceholder:`Phone number`,separatorText:`Or`,sessionExpired:`Your session has expired. Please try again.`,showPasswordText:`Show password`,signupActionLinkText:`Sign up`,signupActionText:`Don't have an account?`,title:`Welcome`,tooManyFailedLogins:`Too many failed login attempts. Please try again later.`,unverifiedEmail:`Please verify your email address before logging in`,userAccountDoesNotExist:`User account does not exist`,usernamePlaceholder:`Username or email address`,usernameTooLong:"Username must be ${max} characters or less",usernameTooShort:"Username must be at least ${min} characters",passkeyButtonText:`Sign in with a passkey`,wrongCredentials:`Wrong username or password`}},ys={mfa:{backupCodeText:`Use backup code`,description:`Choose a verification method`,pageTitle:"Multi-Factor Authentication | ${clientName}",title:`Verify your identity`}},bs={"passkey-enrollment-nudge":{title:`Secure your account with a passkey`,description:`Passkeys use your device's biometrics or PIN to sign you in faster and more securely.`,enrollButtonText:`Set up passkey`,snoozeButtonText:`Maybe later`,optOutLinkText:`Don't show this again`,pageTitle:"Set Up Passkey | ${clientName}"},"passkey-enrollment":{title:`Create your passkey`,description:`Follow the prompts from your browser to create a passkey for this account.`,errorMessage:`Failed to create passkey. Please try again.`,cancelLinkText:`Skip for now`,retryButtonText:`Try again`,enrollmentComplete:`Your passkey has been set up successfully. You can close this page.`,pageTitle:"Create Passkey | ${clientName}"},"passkey-challenge":{title:`Sign in with a passkey`,description:`Follow the prompts from your browser to verify your identity.`,errorMessage:`Passkey authentication failed. Please try again.`,cancelLinkText:`Back to login`,retryButtonText:`Try again`,pageTitle:"Sign In with Passkey | ${clientName}"}},xs={organizations:{description:`Choose which organization to log in to`,pageTitle:"Select Organization | ${clientName}",searchPlaceholder:`Search organizations`,title:`Select your organization`}},Ss={signup:{buttonText:`Continue`,confirmPasswordPlaceholder:`Confirm password`,description:`Sign up to continue`,"email-already-exists":`This email is already registered`,emailPlaceholder:`Email address`,federatedConnectionButtonText:"Continue with ${connectionName}",hidePasswordText:`Hide password`,"invalid-email-format":`Email is not valid.`,loginActionLinkText:`Log in`,loginActionText:`Already have an account?`,"no-email":`Please enter an email address`,"no-password":`Password is required`,"no-username":`Username is required`,pageTitle:"Sign up | ${clientName}",passwordPlaceholder:`Password`,passwordsDidntMatch:`Passwords don't match`,phonePlaceholder:`Phone number`,privacyPolicyLinkText:`Privacy Policy`,separatorText:`Or`,sessionExpired:`Your session has expired. Please try again.`,showPasswordText:`Show password`,termsOfServiceLinkText:`Terms of Service`,termsText:`By signing up, you agree to our`,title:`Create your account`,"username-already-exists":`This username is already taken`,usernamePlaceholder:`Username`,verifyEmailText:`Please check your email to verify your account`}},Cs={status:{continueButtonText:`Continue`,errorTitle:`Error`,pageTitle:"Status | ${clientName}",successTitle:`Success`,title:`Status`}},ws={common:hs,consent:gs,"device-flow":{"device-flow":{buttonText:`Continue`,codePlaceholder:`Enter code`,description:`Enter the code shown on your device`,"expired-code":`The code has expired`,"invalid-code":`The code you entered is invalid`,pageTitle:"Device Activation | ${clientName}",title:`Activate your device`}},"email-otp-challenge":{"email-otp-challenge":{buttonText:`Continue`,codeLabel:`Verification Code`,codePlaceholder:`Enter code`,defaultDescription:`Enter the verification code sent to your email`,description:"We sent a code to ${email}","invalid-code":`The code you entered is invalid`,noCode:`Please enter the verification code`,pageTitle:"Enter Code | ${clientName}",resendText:`Resend code`,sessionExpired:`Your session has expired. Please try again.`,title:`Check your email`,unexpectedError:`An unexpected error occurred`}},"email-verification":{"email-verification":{description:"We sent an email to ${email}",pageTitle:"Verify Email | ${clientName}",resendText:`Resend email`,successDescription:`Your email has been verified successfully.`,successTitle:`Email verified`,title:`Verify your email`}},invitation:_s,login:vs,"login-id":{"login-id":{alertListTitle:`Alerts`,"auth0-users-validation":`Something went wrong, please try again later`,"authentication-failure":`We are sorry, something went wrong when attempting to log in`,buttonText:`Continue`,"captcha-client-failure":`We couldn't load the security challenge. Please try again. (Error code: #{errorCode})`,"captcha-validation-failure":`We are sorry, something went wrong while validating the captcha response. Please try again.`,captchaCodePlaceholder:`Enter the code shown above`,"custom-script-error-code":`Something went wrong, please try again later.`,description:"Log in to ${clientName}.",editEmailText:`Edit`,emailPlaceholder:`Email address`,federatedConnectionButtonText:"Continue with ${connectionName}",footerLinkText:`Sign up`,footerText:`Don't have an account?`,forgotPasswordText:`Forgot password?`,hidePasswordText:`Hide password`,"invalid-captcha":`Solve the challenge question to verify you are not a robot.`,"invalid-code":`The code you entered is invalid`,"invalid-connection":`Invalid connection`,"invalid-email-format":`Email is not valid.`,"invalid-email-phone":`Enter a valid email address or phone number. Phone numbers must include the country code.`,"invalid-email-phone-username":`Enter a valid email address, phone number or username. Phone numbers must include the country code.`,"invalid-email-username":`Enter a valid email address or username`,"invalid-expired-code":`Invalid or expired user code`,"invalid-login-id":`Invalid Login ID entered`,"invalid-phone-username":`Enter a valid phone number or username. Phone numbers must include the country code.`,"invalid-recaptcha":`Select the checkbox to verify you are not a robot.`,"invalid-username":"Username can only contain alphanumeric characters or: '${characters}'. Username should have between ${min} and ${max} characters.",invitationDescription:"Log in to accept ${inviterName}'s invitation to join ${companyName} on ${clientName}.",invitationTitle:`You've Been Invited!`,"ip-blocked":`We have detected suspicious login behavior and further attempts will be blocked. Please contact the administrator.`,logoAltText:"${companyName}","no-db-connection":`Invalid connection`,"no-email":`Please enter an email address`,"no-email-phone":`Email address or phone number is required`,"no-email-phone-username":`Phone number, username, or email address is required`,"no-email-username":`Email address or username is required`,"no-password":`Password is required`,"no-phone":`Please enter a phone number`,"no-phone-username":`Phone number or username is required`,"no-username":`Username is required`,pageTitle:"Log in | ${clientName}","password-breached":`We have detected a potential security issue with this account. To protect your account, we have prevented this login. Please reset your password to proceed.`,passwordPlaceholder:`Password`,phoneOrEmailPlaceholder:`Phone number or Email address`,phoneOrUsernameOrEmailPlaceholder:`Phone or Username or Email`,phoneOrUsernamePlaceholder:`Phone Number or Username`,phonePlaceholder:`Phone number`,"same-user-login":`Too many login attempts for this user. Please wait, and try again later.`,selectCountryCode:"Select country code, currently set to ${countryName}, ${countryCode}, +${countryPrefix}",separatorText:`Or`,sessionExpired:`Your session has expired. Please try again.`,showPasswordText:`Show password`,signupActionLinkText:`Sign up`,signupActionText:`Don't have an account?`,termsAndConditionsTemplate:'By continuing, you agree to our <a href="${termsAndConditionsUrl}" target="_blank" rel="noopener noreferrer">Terms and Conditions</a>.',title:`Welcome`,"user-blocked":`Your account has been blocked after multiple consecutive login attempts.`,userAccountDoesNotExist:`User account does not exist`,usernameOnlyPlaceholder:`Username`,usernameOrEmailPlaceholder:`Username or Email address`,usernamePlaceholder:`Username or email address`,usernameTooLong:"Username must be ${max} characters or less",usernameTooShort:"Username must be at least ${min} characters","wrong-credentials":`Wrong username or password`,"wrong-email-credentials":`Wrong email or password`,"wrong-email-phone-credentials":`Incorrect email address, phone number, or password. Phone numbers must include the country code.`,"wrong-email-phone-username-credentials":`Incorrect email address, phone number, username, or password. Phone numbers must include the country code.`,"wrong-email-username-credentials":`Incorrect email address, username, or password`,"wrong-phone-credentials":`Incorrect phone number or password`,"wrong-phone-username-credentials":`Incorrect phone number, username or password. Phone numbers must include the country code.`,passkeyButtonText:`Sign in with a passkey`,"wrong-username-credentials":`Incorrect username or password`}},"login-password":{"login-password":{buttonText:`Continue`,description:"Log in to ${clientName}",forgotPasswordText:`Forgot password?`,hidePasswordText:`Hide password`,"no-password":`Password is required`,pageTitle:"Log in | ${clientName}","password-breached":`We have detected a potential security issue with this account. To protect your account, we have prevented this login. Please reset your password to proceed.`,passwordPlaceholder:`Password`,showPasswordText:`Show password`,signingInAs:"Signing in as ${email}",title:`Enter your password`,unverifiedEmail:`Please verify your email address before logging in`,"user-blocked":`Your account has been blocked after multiple consecutive login attempts.`,"wrong-credentials":`Wrong password`}},"login-passwordless":{"login-passwordless":{authMethodEmail:`email`,authMethodEmailOrPhone:`email or phone number`,authMethodPhone:`phone number`,description:"Sign in using your ${authMethod}",emailOrPhonePlaceholder:`Email address or phone number`,emailPlaceholder:`Email address`,invalidEmail:`Please enter a valid email address`,invalidIdentifier:`Please enter a valid email address or phone number`,invalidPhone:`Please enter a valid phone number with country code`,noEmail:`Please enter your email address`,noPhone:`Please enter your phone number`,phonePlaceholder:`Phone number`,sessionExpired:`Your session has expired. Please try again.`,title:`Sign in with a code`,userAccountDoesNotExist:`User account does not exist`}},"magic-link-sent":{"magic-link-sent":{defaultDescription:`Click the link in your email to sign in`,description:"We sent a link to ${username}. Click it to sign in.",resendText:`Resend link`,spamText:`Didn't receive the email? Check your spam folder.`,title:`Check your email`}},mfa:ys,"mfa-email":{"mfa-email":{buttonText:`Continue`,codePlaceholder:`Enter code`,description:"We sent a code to ${email}","invalid-code":`The code you entered is invalid`,pageTitle:"Email Verification | ${clientName}",resendText:`Resend code`,title:`Check your email`}},"mfa-otp":{"mfa-otp":{buttonText:`Continue`,codePlaceholder:`Enter code`,description:`Enter the 6-digit code from your authenticator app`,"invalid-code":`The code you entered is invalid`,pageTitle:"Enter Code | ${clientName}",title:`Enter your code`},"mfa-totp-enrollment":{title:`Set up authenticator`,description:`Scan the QR code below with your authenticator app, then enter the 6-digit code to verify`,secretLabel:`Or enter this code manually:`,codePlaceholder:`Enter code`,continueButtonText:`Verify & Activate`,"invalid-code":`The code you entered is invalid. Please try again.`,"transaction-not-found":`Your enrollment transaction expired, you will need to start again.`,unexpectedError:`Something went wrong. Please try again.`,pageTitle:"Set up Authenticator | ${clientName}",enrollmentComplete:`MFA enrollment is complete. You can close this page.`},"mfa-totp-challenge":{title:`Verify your identity`,description:`Enter the 6-digit code from your authenticator app`,codePlaceholder:`Enter code`,continueButtonText:`Continue`,"invalid-code":`The code you entered is invalid`,"transaction-not-found":`Your enrollment transaction expired, you will need to start again.`,unexpectedError:`Something went wrong. Please try again.`,pageTitle:"Verify Identity | ${clientName}"}},"mfa-phone":{"mfa-phone-challenge":{pageTitle:"Use your phone number to log in | ${clientName}",title:`Verify Your Identity`,description:"We sent a code to ${phoneNumber}",continueButtonText:`Continue`,changePhoneText:`Choose another phone number.`,smsButtonText:`Text message`,voiceButtonText:`Voice call`,chooseMessageTypeText:`How do you want to receive the code?`,pickAuthenticatorText:`Try another method`,logoAltText:"${companyName}",codePlaceholder:`Enter code`,"send-sms-failed":`There was a problem sending the SMS`,"send-voice-failed":`There was a problem making the voice call`,"invalid-phone-format":`Phone number can only include digits.`,"invalid-phone":`It seems that your phone number is not valid. Please check and retry.`,"too-many-sms":`You have exceeded the maximum number of phone messages per hour. Wait a few minutes and try again.`,"too-many-voice":`You have exceeded the maximum number of phone messages per hour. Wait a few minutes and try again.`,"transaction-not-found":`Your enrollment transaction expired, you will need to start again.`,"no-phone":`Please enter a phone number`,noCode:`Please enter the verification code`,invalidCode:`The code you entered is invalid. Please try again.`,unexpectedError:`Something went wrong. Please try again.`,resendSuccess:`We sent a new code to your phone`,enrollmentComplete:`MFA enrollment is complete. You can close this page.`},"mfa-phone-enrollment":{pageTitle:"Enter your phone number to log in using a phone code | ${clientName}",title:`Secure Your Account`,description:`Enter your country code and phone number to which we can send a 6-digit code:`,continueButtonText:`Continue`,smsButtonText:`Text message`,voiceButtonText:`Voice call`,chooseMessageTypeText:`How do you want to receive the code?`,pickAuthenticatorText:`Try another method`,placeholder:`Enter your phone number`,logoAltText:"${companyName}",selectCountryCode:"Select country code, currently set to ${countryName}, ${countryCode}, +${countryPrefix}","send-sms-failed":`There was a problem sending the SMS`,"send-voice-failed":`There was a problem making the voice call`,"sms-authenticator-error":`We couldn't send the SMS. Please try again later.`,"invalid-phone-format":`Phone number can only include digits.`,"invalid-phone":`It seems that your phone number is not valid. Please check and retry.`,"too-many-sms":`You have exceeded the maximum number of phone messages per hour. Wait a few minutes and try again.`,"too-many-voice":`You have exceeded the maximum number of phone messages per hour. Wait a few minutes and try again.`,"transaction-not-found":`Your enrollment transaction expired, you will need to start again.`,"no-phone":`Please enter a phone number`,"phone-is-too-short":`Phone number is too short`,"phone-is-too-long":`Phone number is too long`}},"mfa-login-options":{"mfa-login-options":{pageTitle:"Choose Verification Method | ${clientName}",title:`Choose your verification method`,description:`Select how you'd like to verify your identity`,authenticatorAppLabel:`Authenticator App`,authenticatorAppDescription:`Use your authenticator app to get a verification code`,smsLabel:`Text Message`,smsDescription:`Get a verification code sent to your phone`,passkeyLabel:`Passkey`,passkeyDescription:`Use your device's biometrics or security key`}},"mfa-push":{"mfa-push":{description:`We sent a notification to your device`,pageTitle:"Push Notification | ${clientName}",resendText:`Resend notification`,title:`Approve the request`,useCodeText:`Enter code manually`}},"mfa-recovery-code":{"mfa-recovery-code":{buttonText:`Continue`,codePlaceholder:`Recovery code`,description:`Enter one of your recovery codes`,"invalid-code":`The recovery code you entered is invalid`,pageTitle:"Recovery Code | ${clientName}",title:`Enter recovery code`}},"mfa-voice":{"mfa-voice":{buttonText:`Call me`,codePlaceholder:`Enter code`,description:"We will call ${phoneNumber} with your code","invalid-code":`The code you entered is invalid`,pageTitle:"Voice Call | ${clientName}",title:`Receive a phone call`}},"mfa-webauthn":{"mfa-webauthn":{buttonText:`Try again`,description:`Insert your security key and follow the instructions`,pageTitle:"Security Key | ${clientName}",title:`Use your security key`}},passkeys:bs,organizations:xs,"reset-password":{"reset-password":{backToLoginText:`Back to login`,buttonText:`Continue`,codeExpired:`Your password reset code has expired. Please request a new one.`,confirmPasswordLabel:`Confirm Password`,confirmPasswordPlaceholder:`Confirm password`,description:`Enter your email to reset your password`,emailPlaceholder:`Email address`,failed:`Password reset failed. Please try again.`,"invalid-email-format":`Email is not valid.`,"no-email":`Please enter an email address`,pageTitle:"Reset Password | ${clientName}",passwordLabel:`New Password`,passwordPlaceholder:`New password`,passwordTooWeak:`Password is too weak`,passwordsDidntMatch:`Passwords don't match`,successDescription:`We have sent a password reset link to your email address.`,successTitle:`Check your email`,title:`Forgot your password?`,"user-not-found":`User not found`},"reset-password-code":{backToLoginText:`Back to login`,buttonText:`Reset Password`,codeLabel:`Reset Code`,codePlaceholder:`Enter 6-digit code`,confirmPasswordLabel:`Confirm Password`,confirmPasswordPlaceholder:`Confirm password`,defaultDescription:`Enter the code sent to your email and choose a new password`,description:"We sent a code to ${email}",failed:`Password reset failed. Please try again.`,invalidCode:`The code you entered is invalid or has expired`,noCode:`Please enter the reset code`,pageTitle:"Enter Reset Code | ${clientName}",passwordLabel:`New Password`,passwordPlaceholder:`New password`,passwordTooWeak:`Password is too weak`,passwordsDidntMatch:`Passwords don't match`,resendFailed:`Failed to resend the code. Please try again.`,resendSuccess:`A new code has been sent to your email`,resendText:`Resend code`,sessionExpired:`Your session has expired. Please try again.`,title:`Enter reset code`}},signup:Ss,"signup-id":{"signup-id":{buttonText:`Continue`,description:`Sign up to continue`,"email-already-exists":`This email is already registered`,emailPlaceholder:`Email address`,federatedConnectionButtonText:"Continue with ${connectionName}","invalid-email-format":`Email is not valid.`,loginActionLinkText:`Log in`,loginActionText:`Already have an account?`,"no-email":`Please enter an email address`,pageTitle:"Sign up | ${clientName}",phonePlaceholder:`Phone number`,separatorText:`Or`,title:`Create your account`,usernamePlaceholder:`Username`}},"signup-password":{"signup-password":{buttonText:`Continue`,description:`Sign up to continue`,hidePasswordText:`Hide password`,"no-password":`Password is required`,pageTitle:"Sign up | ${clientName}","password-policy-not-met":`Password does not meet the requirements`,"password-too-weak":`Password is too weak`,passwordPlaceholder:`Password`,showPasswordText:`Show password`,title:`Create your password`}},"sms-otp-challenge":{"sms-otp-challenge":{buttonText:`Continue`,codeLabel:`Verification Code`,codePlaceholder:`Enter code`,defaultDescription:`Enter the verification code sent to your phone`,description:"We sent a code to ${username}","invalid-code":`The code you entered is invalid`,noCode:`Please enter the verification code`,pageTitle:"Enter Code | ${clientName}",resendText:`Resend code`,sessionExpired:`Your session has expired. Please try again.`,title:`Check your phone`,unexpectedError:`An unexpected error occurred`}},status:Cs},Ts=c({common:()=>Es,consent:()=>Ds,default:()=>Fs,invitation:()=>Os,login:()=>ks,mfa:()=>As,organizations:()=>Ms,passkeys:()=>js,signup:()=>Ns,status:()=>Ps}),Es={common:{alertListTitle:`Ilmoitukset`,backText:`Palaa takaisin`,cancelText:`Palaa takaisin`,closeText:`Sulje`,contactSupportText:`Tarvitsetko apua?`,continueText:`Jatka`,copyrightText:"© ${currentYear} ${companyName}",errorText:`Jokin meni pieleen. Yritä uudelleen.`,hidePasswordText:`Piilota salasana`,loadingText:`Ladataan...`,orText:`tai`,privacyPolicyText:`Tietosuojakäytäntö`,showPasswordText:`Näytä salasana`,termsOfServiceText:`Käyttöehdot`,termsShortText:`Ehdot`,tryAgainText:`Yritä uudelleen`}},Ds={consent:{buttonText:`Hyväksy`,cancelButtonText:`Hylkää`,description:"${clientName} pyytää pääsyä tilillesi",pageTitle:"Valtuuta | ${clientName}",scopesTitle:"Tämä sallii sovelluksen ${clientName}:",title:"Valtuuta ${clientName}"}},Os={invitation:{acceptButtonText:`Hyväksy kutsu`,description:"${inviterName} on kutsunut sinut liittymään organisaatioon ${organizationName} palvelussa ${clientName}",pageTitle:"Kutsu | ${clientName}",title:`Sinut on kutsuttu`}},ks={login:{alertListTitle:`Ilmoitukset`,buttonText:`Jatka`,description:"Kirjaudu sisään ${clientName}.",editEmailText:`Muokkaa`,emailPlaceholder:`Sähköpostiosoite`,enterACodeBtn:`Kirjaudu koodilla`,federatedConnectionButtonText:"Jatka palvelulla ${connectionName}",footerLinkText:`Rekisteröidy`,footerText:`Eikö sinulla ole tiliä?`,forgotPasswordText:`Unohditko salasanan?`,hidePasswordText:`Piilota salasana`,invalidEmail:`Virheellinen sähköpostiosoite`,invalidIdentifier:`Virheellinen sähköpostiosoite tai käyttäjänimi`,invitationDescription:"Kirjaudu sisään hyväksyäksesi käyttäjän ${inviterName} kutsun liittyä palveluun ${companyName} sovelluksessa ${clientName}.",invitationTitle:`Sinut on kutsuttu!`,logoAltText:"${companyName}","no-email":`Sähköpostiosoite vaaditaan`,"no-password":`Salasana vaaditaan`,pageTitle:"Kirjaudu sisään | ${clientName}",passwordLoginNotAvailable:`Salasanakirjautuminen ei ole käytettävissä`,passwordPlaceholder:`Salasana`,phonePlaceholder:`Puhelinnumero`,separatorText:`tai`,sessionExpired:`Istuntosi on vanhentunut. Yritä uudelleen.`,showPasswordText:`Näytä salasana`,signupActionLinkText:`Rekisteröidy`,signupActionText:`Eikö sinulla ole tiliä?`,title:`Tervetuloa`,tooManyFailedLogins:`Liian monta epäonnistunutta kirjautumisyritystä. Yritä myöhemmin uudelleen.`,unverifiedEmail:`Vahvista sähköpostiosoitteesi ennen kirjautumista`,userAccountDoesNotExist:`Käyttäjätiliä ei ole olemassa`,usernamePlaceholder:`Käyttäjänimi tai sähköpostiosoite`,usernameTooLong:"Käyttäjänimen on oltava enintään ${max} merkkiä",usernameTooShort:"Käyttäjänimen on oltava vähintään ${min} merkkiä",wrongCredentials:`Väärä käyttäjänimi tai salasana`,passkeyButtonText:`Kirjaudu sisään passkey:llä`}},As={mfa:{backupCodeText:`Käytä varakoodia`,description:`Valitse vahvistusmenetelmä`,pageTitle:"Monivaiheinen tunnistautuminen | ${clientName}",title:`Vahvista henkilöllisyytesi`}},js={"passkey-enrollment-nudge":{title:`Suojaa tilisi tunnistautumisavaimella`,description:`Tunnistautumisavaimet käyttävät laitteesi biometriikkaa tai PIN-koodia kirjautuaksesi nopeammin ja turvallisemmin.`,enrollButtonText:`Määritä tunnistautumisavain`,snoozeButtonText:`Ehkä myöhemmin`,optOutLinkText:`Älä näytä tätä uudelleen`,pageTitle:"Määritä Tunnistautumisavain | ${clientName}"},"passkey-enrollment":{title:`Luo tunnistautumisavain`,description:`Seuraa selaimesi ohjeita luodaksesi tunnistautumisavaimen tälle tilille.`,errorMessage:`Tunnistautumisavaimen luominen epäonnistui. Yritä uudelleen.`,cancelLinkText:`Ohita toistaiseksi`,retryButtonText:`Yritä uudelleen`,enrollmentComplete:`Tunnistautumisavaimesi on määritetty onnistuneesti. Voit sulkea tämän sivun.`,pageTitle:"Luo Tunnistautumisavain | ${clientName}"},"passkey-challenge":{title:`Kirjaudu sisään passkey:llä`,description:`Noudata selaimesi ohjeita henkilöllisyytesi vahvistamiseksi.`,errorMessage:`Passkey-todennus epäonnistui. Yritä uudelleen.`,cancelLinkText:`Takaisin kirjautumiseen`,retryButtonText:`Yritä uudelleen`,pageTitle:"Kirjaudu sisään passkey:llä | ${clientName}"}},Ms={organizations:{description:`Valitse organisaatio, johon haluat kirjautua`,pageTitle:"Valitse organisaatio | ${clientName}",searchPlaceholder:`Hae organisaatioita`,title:`Valitse organisaatiosi`}},Ns={signup:{buttonText:`Rekisteröityminen`,confirmPasswordPlaceholder:`Vahvista salasana`,description:`Valitse salasana, jossa on isoja ja pieniä kirjaimia, numeroita ja symboleja.`,"email-already-exists":`Sähköposti on jo varattu`,emailPlaceholder:`Sähköpostiosoite`,federatedConnectionButtonText:"Jatka palvelulla ${connectionName}",hidePasswordText:`Piilota salasana`,"invalid-email-format":`Virheellinen sähköpostiosoite`,loginActionLinkText:`Kirjaudu sisään`,loginActionText:`Onko sinulla jo tili?`,"no-email":`Sähköpostiosoite vaaditaan`,"no-password":`Salasana vaaditaan`,"no-username":`Käyttäjänimi vaaditaan`,pageTitle:"Rekisteröidy | ${clientName}",passwordPlaceholder:`Salasana`,passwordsDidntMatch:`Salasanat eivät täsmää`,phonePlaceholder:`Puhelinnumero`,privacyPolicyLinkText:`Tietosuojakäytäntö`,separatorText:`tai`,sessionExpired:`Istuntosi on vanhentunut. Yritä uudelleen.`,showPasswordText:`Näytä salasana`,termsOfServiceLinkText:`Käyttöehdot`,termsText:`Rekisteröitymällä hyväksyt`,title:`Valitse salasana`,"username-already-exists":`Tämä käyttäjänimi on jo varattu`,usernamePlaceholder:`Käyttäjänimi`,verifyEmailText:`Tarkista sähköpostisi vahvistaaksesi tilisi`}},Ps={status:{continueButtonText:`Jatka`,errorTitle:`Virhe`,pageTitle:"Tila | ${clientName}",successTitle:`Onnistui`,title:`Tila`}},Fs={common:Es,consent:Ds,"device-flow":{"device-flow":{buttonText:`Jatka`,codePlaceholder:`Syötä koodi`,description:`Syötä laitteessasi näkyvä koodi`,"expired-code":`Koodi on vanhentunut`,"invalid-code":`Syöttämäsi koodi on virheellinen`,pageTitle:"Laitteen aktivointi | ${clientName}",title:`Aktivoi laitteesi`}},"email-otp-challenge":{"email-otp-challenge":{buttonText:`Kirjaudu sisään`,codeLabel:`Vahvistuskoodi`,codePlaceholder:`Syötä koodi`,defaultDescription:`Syötä sähköpostiisi lähetetty vahvistuskoodi`,description:"Lähetimme koodin osoitteeseen ${email}","invalid-code":`Virheellinen koodi`,noCode:`Syötä vahvistuskoodi`,pageTitle:"Syötä koodi | ${clientName}",resendText:`Lähetä koodi uudelleen`,sessionExpired:`Istuntosi on vanhentunut. Yritä uudelleen.`,title:`Tarkista sähköpostisi`,unexpectedError:`Odottamaton virhe tapahtui`}},"email-verification":{"email-verification":{description:"Lähetimme sähköpostin osoitteeseen ${email}",pageTitle:"Vahvista sähköposti | ${clientName}",resendText:`Lähetä koodi uudelleen`,successDescription:`Sähköpostiosoitteesi on vahvistettu onnistuneesti.`,successTitle:`Sähköposti vahvistettu`,title:`Vahvista sähköpostiosoitteesi`}},invitation:Os,login:ks,"login-id":{"login-id":{alertListTitle:`Ilmoitukset`,"auth0-users-validation":`Jokin meni pieleen, yritä myöhemmin uudelleen`,"authentication-failure":`Valitettavasti jokin meni pieleen kirjautumisyrityksen aikana`,buttonText:`Jatka`,"captcha-client-failure":`Turvatarkistuksen lataaminen epäonnistui. Yritä uudelleen. (Virhekoodi: #{errorCode})`,"captcha-validation-failure":`Valitettavasti jokin meni pieleen captcha-vastauksen tarkistuksessa. Yritä uudelleen.`,captchaCodePlaceholder:`Syötä yllä näkyvä koodi`,"custom-script-error-code":`Jokin meni pieleen, yritä myöhemmin uudelleen.`,description:"Kirjaudu sisään ${clientName}.",editEmailText:`Muokkaa`,emailPlaceholder:`Sähköpostiosoite`,federatedConnectionButtonText:"Jatka palvelulla ${connectionName}",footerLinkText:`Rekisteröidy`,footerText:`Eikö sinulla ole tiliä?`,forgotPasswordText:`Unohditko salasanan?`,hidePasswordText:`Piilota salasana`,"invalid-captcha":`Ratkaise haaste varmistaaksesi, ettet ole robotti.`,"invalid-code":`Virheellinen koodi`,"invalid-connection":`Virheellinen yhteys`,"invalid-email-format":`Virheellinen sähköpostiosoite`,"invalid-email-phone":`Syötä kelvollinen sähköpostiosoite tai puhelinnumero. Puhelinnumeron tulee sisältää maatunnus.`,"invalid-email-phone-username":`Syötä kelvollinen sähköpostiosoite, puhelinnumero tai käyttäjänimi. Puhelinnumeron tulee sisältää maatunnus.`,"invalid-email-username":`Syötä kelvollinen sähköpostiosoite tai käyttäjänimi`,"invalid-expired-code":`Virheellinen tai vanhentunut käyttäjäkoodi`,"invalid-login-id":`Virheellinen kirjautumistunnus`,"invalid-phone-username":`Syötä kelvollinen puhelinnumero tai käyttäjänimi. Puhelinnumeron tulee sisältää maatunnus.`,"invalid-recaptcha":`Valitse valintaruutu varmistaaksesi, ettet ole robotti.`,"invalid-username":"Käyttäjänimi voi sisältää vain aakkosnumeerisia merkkejä tai: '${characters}'. Käyttäjänimen tulee olla ${min}–${max} merkkiä.",invitationDescription:"Kirjaudu sisään hyväksyäksesi käyttäjän ${inviterName} kutsun liittyä palveluun ${companyName} sovelluksessa ${clientName}.",invitationTitle:`Sinut on kutsuttu!`,"ip-blocked":`Olemme havainneet epäilyttävää kirjautumiskäyttäytymistä ja lisäyritykset estetään. Ota yhteyttä ylläpitäjään.`,logoAltText:"${companyName}","no-db-connection":`Virheellinen yhteys`,"no-email":`Sähköpostiosoite vaaditaan`,"no-email-phone":`Sähköpostiosoite tai puhelinnumero vaaditaan`,"no-email-phone-username":`Puhelinnumero, käyttäjänimi tai sähköpostiosoite vaaditaan`,"no-email-username":`Sähköpostiosoite tai käyttäjänimi vaaditaan`,"no-password":`Salasana vaaditaan`,"no-phone":`Syötä puhelinnumero`,"no-phone-username":`Puhelinnumero tai käyttäjänimi vaaditaan`,"no-username":`Käyttäjänimi vaaditaan`,pageTitle:"Kirjaudu sisään | ${clientName}","password-breached":`Olemme havainneet mahdollisen tietoturvaongelman tässä tilissä. Tilisi suojaamiseksi olemme estäneet tämän kirjautumisen. Vaihda salasanasi jatkaaksesi.`,passwordPlaceholder:`Salasana`,phoneOrEmailPlaceholder:`Sähköposti tai puhelinnumero`,phoneOrUsernameOrEmailPlaceholder:`Puhelin, käyttäjänimi tai sähköposti`,phoneOrUsernamePlaceholder:`Puhelinnumero tai käyttäjänimi`,phonePlaceholder:`Puhelinnumero`,"same-user-login":`Liian monta kirjautumisyritystä tälle käyttäjälle. Odota hetki ja yritä myöhemmin uudelleen.`,selectCountryCode:"Valitse maakoodi, tällä hetkellä ${countryName}, ${countryCode}, +${countryPrefix}",separatorText:`tai`,sessionExpired:`Istuntosi on vanhentunut. Yritä uudelleen.`,showPasswordText:`Näytä salasana`,signupActionLinkText:`Rekisteröidy`,signupActionText:`Eikö sinulla ole tiliä?`,termsAndConditionsTemplate:'Jatkamalla hyväksyt <a href="${termsAndConditionsUrl}" target="_blank" rel="noopener noreferrer">Käyttöehdot</a>.',title:`Tervetuloa`,"user-blocked":`Tilisi on estetty useiden peräkkäisten kirjautumisyritysten jälkeen.`,userAccountDoesNotExist:`Käyttäjätiliä ei ole olemassa`,usernameOnlyPlaceholder:`Käyttäjänimi`,usernameOrEmailPlaceholder:`Käyttäjänimi tai sähköpostiosoite`,usernamePlaceholder:`Käyttäjänimi`,usernameTooLong:"Käyttäjänimen on oltava enintään ${max} merkkiä",usernameTooShort:"Käyttäjänimen on oltava vähintään ${min} merkkiä","wrong-credentials":`Väärä käyttäjänimi tai salasana`,"wrong-email-credentials":`Väärä sähköpostiosoite tai salasana`,"wrong-email-phone-credentials":`Virheellinen sähköpostiosoite, puhelinnumero tai salasana. Puhelinnumeron tulee sisältää maatunnus.`,"wrong-email-phone-username-credentials":`Virheellinen sähköpostiosoite, puhelinnumero, käyttäjänimi tai salasana. Puhelinnumeron tulee sisältää maatunnus.`,"wrong-email-username-credentials":`Virheellinen sähköpostiosoite, käyttäjänimi tai salasana`,"wrong-phone-credentials":`Virheellinen puhelinnumero tai salasana`,"wrong-phone-username-credentials":`Virheellinen puhelinnumero, käyttäjänimi tai salasana. Puhelinnumeron tulee sisältää maatunnus.`,"wrong-username-credentials":`Virheellinen käyttäjänimi tai salasana`,passkeyButtonText:`Kirjaudu sisään passkey:llä`}},"login-password":{"login-password":{buttonText:`Kirjaudu sisään`,description:`Anna sähköpostiosoitteesi ja salasanasi kirjautuaksesi sisään.`,forgotPasswordText:`Unohditko salasanan?`,hidePasswordText:`Piilota salasana`,"no-password":`Salasana vaaditaan`,pageTitle:"Kirjaudu sisään | ${clientName}","password-breached":`Olemme havainneet mahdollisen tietoturvaongelman tässä tilissä. Tilisi suojaamiseksi olemme estäneet tämän kirjautumisen. Vaihda salasanasi jatkaaksesi.`,passwordPlaceholder:`Salasana`,showPasswordText:`Näytä salasana`,signingInAs:"Kirjaudutaan käyttäjänä ${email}",title:`Anna salasana`,unverifiedEmail:`Vahvista sähköpostiosoitteesi ennen kirjautumista`,"user-blocked":`Tilisi on estetty useiden peräkkäisten kirjautumisyritysten jälkeen.`,"wrong-credentials":`Väärä salasana`}},"login-passwordless":{"login-passwordless":{authMethodEmail:`sähköposti`,authMethodEmailOrPhone:`sähköposti tai puhelinnumero`,authMethodPhone:`puhelinnumero`,description:"Kirjaudu sisään käyttämällä ${authMethod}",emailOrPhonePlaceholder:`Sähköpostiosoite tai puhelinnumero`,emailPlaceholder:`Sähköpostiosoite`,invalidEmail:`Syötä kelvollinen sähköpostiosoite`,invalidIdentifier:`Syötä kelvollinen sähköpostiosoite tai puhelinnumero`,invalidPhone:`Syötä kelvollinen puhelinnumero maatunnuksella`,noEmail:`Syötä sähköpostiosoitteesi`,noPhone:`Syötä puhelinnumerosi`,phonePlaceholder:`Puhelinnumero`,sessionExpired:`Istuntosi on vanhentunut. Yritä uudelleen.`,title:`Kirjaudu koodilla`,userAccountDoesNotExist:`Käyttäjätiliä ei ole olemassa`}},"magic-link-sent":{"magic-link-sent":{defaultDescription:`Napsauta sähköpostissasi olevaa linkkiä kirjautuaksesi sisään`,description:"Lähetimme linkin osoitteeseen ${username}. Napsauta sitä kirjautuaksesi.",resendText:`Lähetä linkki uudelleen`,spamText:`Etkö saanut sähköpostia? Tarkista roskapostikansiosi.`,title:`Tarkista sähköpostisi`}},mfa:As,"mfa-email":{"mfa-email":{buttonText:`Jatka`,codePlaceholder:`Syötä koodi`,description:"Lähetimme koodin osoitteeseen ${email}","invalid-code":`Syöttämäsi koodi on virheellinen`,pageTitle:"Sähköpostivahvistus | ${clientName}",resendText:`Lähetä koodi uudelleen`,title:`Tarkista sähköpostisi`}},"mfa-otp":{"mfa-otp":{buttonText:`Jatka`,codePlaceholder:`Syötä koodi`,description:`Syötä 6-numeroinen koodi todentajasovelluksestasi`,"invalid-code":`Syöttämäsi koodi on virheellinen`,pageTitle:"Syötä koodi | ${clientName}",title:`Syötä koodisi`},"mfa-totp-enrollment":{title:`Ota todentajasovellus käyttöön`,description:`Skannaa alla oleva QR-koodi todentajasovelluksellasi ja syötä sitten 6-numeroinen koodi vahvistaaksesi`,secretLabel:`Tai syötä tämä koodi manuaalisesti:`,codePlaceholder:`Syötä koodi`,continueButtonText:`Vahvista ja aktivoi`,"invalid-code":`Syöttämäsi koodi on virheellinen. Yritä uudelleen.`,"transaction-not-found":`Rekisteröintitapahtumasi on vanhentunut, sinun täytyy aloittaa alusta.`,pageTitle:"Ota todentaja käyttöön | ${clientName}",unexpectedError:`Jokin meni pieleen. Yritä uudelleen.`,enrollmentComplete:`MFA-rekisteröinti on valmis. Voit sulkea tämän sivun.`},"mfa-totp-challenge":{title:`Vahvista henkilöllisyytesi`,description:`Syötä 6-numeroinen koodi todentajasovelluksestasi`,codePlaceholder:`Syötä koodi`,continueButtonText:`Jatka`,"invalid-code":`Syöttämäsi koodi on virheellinen`,"transaction-not-found":`Rekisteröintitapahtumasi on vanhentunut, sinun täytyy aloittaa alusta.`,unexpectedError:`Jokin meni pieleen. Yritä uudelleen.`,pageTitle:"Vahvista henkilöllisyys | ${clientName}"}},"mfa-phone":{"mfa-phone-challenge":{pageTitle:"Käytä puhelinnumeroasi kirjautumiseen | ${clientName}",title:`Vahvista henkilöllisyytesi`,description:"Lähetimme koodin numeroon ${phoneNumber}",continueButtonText:`Jatka`,changePhoneText:`Valitse toinen puhelinnumero.`,smsButtonText:`Tekstiviesti`,voiceButtonText:`Äänipuhelu`,chooseMessageTypeText:`Miten haluat vastaanottaa koodin?`,pickAuthenticatorText:`Kokeile toista menetelmää`,logoAltText:"${companyName}",codePlaceholder:`Syötä koodi`,"send-sms-failed":`Tekstiviestin lähettämisessä oli ongelma`,"send-voice-failed":`Äänipuhelun soittamisessa oli ongelma`,"invalid-phone-format":`Puhelinnumero voi sisältää vain numeroita.`,"invalid-phone":`Puhelinnumerosi ei vaikuta olevan kelvollinen. Tarkista ja yritä uudelleen.`,"too-many-sms":`Olet ylittänyt tunnin enimmäismäärän puhelinviestejä. Odota muutama minuutti ja yritä uudelleen.`,"too-many-voice":`Olet ylittänyt tunnin enimmäismäärän puhelinviestejä. Odota muutama minuutti ja yritä uudelleen.`,"transaction-not-found":`Rekisteröintitapahtumasi on vanhentunut, sinun täytyy aloittaa alusta.`,"no-phone":`Syötä puhelinnumero`,noCode:`Syötä vahvistuskoodi`,invalidCode:`Antamasi koodi on virheellinen. Yritä uudelleen.`,unexpectedError:`Jokin meni pieleen. Yritä uudelleen.`,resendSuccess:`Lähetimme uuden koodin puhelimeesi`,enrollmentComplete:`MFA-rekisteröinti on valmis. Voit sulkea tämän sivun.`},"mfa-phone-enrollment":{pageTitle:"Syötä puhelinnumerosi kirjautuaksesi puhelinkoodilla | ${clientName}",title:`Suojaa tilisi`,description:`Syötä maakoodisi ja puhelinnumero, johon voimme lähettää 6-numeroisen koodin:`,continueButtonText:`Jatka`,smsButtonText:`Tekstiviesti`,voiceButtonText:`Äänipuhelu`,chooseMessageTypeText:`Miten haluat vastaanottaa koodin?`,pickAuthenticatorText:`Kokeile toista menetelmää`,placeholder:`Syötä puhelinnumerosi`,logoAltText:"${companyName}",selectCountryCode:"Valitse maakoodi, tällä hetkellä asetettu ${countryName}, ${countryCode}, +${countryPrefix}","send-sms-failed":`Tekstiviestin lähettämisessä oli ongelma`,"send-voice-failed":`Äänipuhelun soittamisessa oli ongelma`,"sms-authenticator-error":`Emme pystyneet lähettämään tekstiviestiä. Yritä myöhemmin uudelleen.`,"invalid-phone-format":`Puhelinnumero voi sisältää vain numeroita.`,"invalid-phone":`Puhelinnumerosi ei vaikuta olevan kelvollinen. Tarkista ja yritä uudelleen.`,"too-many-sms":`Olet ylittänyt tunnin enimmäismäärän puhelinviestejä. Odota muutama minuutti ja yritä uudelleen.`,"too-many-voice":`Olet ylittänyt tunnin enimmäismäärän puhelinviestejä. Odota muutama minuutti ja yritä uudelleen.`,"transaction-not-found":`Rekisteröintitapahtumasi on vanhentunut, sinun täytyy aloittaa alusta.`,"no-phone":`Syötä puhelinnumero`,"phone-is-too-short":`Puhelinnumero on liian lyhyt`,"phone-is-too-long":`Puhelinnumero on liian pitkä`}},"mfa-login-options":{"mfa-login-options":{pageTitle:"Valitse vahvistusmenetelmä | ${clientName}",title:`Valitse vahvistusmenetelmä`,description:`Valitse, miten haluat vahvistaa henkilöllisyytesi`,authenticatorAppLabel:`Todennussovellus`,authenticatorAppDescription:`Käytä todennussovellusta vahvistuskoodin saamiseksi`,smsLabel:`Tekstiviesti`,smsDescription:`Saat vahvistuskoodin puhelimeesi tekstiviestillä`,passkeyLabel:`Tunnistautumisavain`,passkeyDescription:`Käytä laitteesi biometriikkaa tai suojausavainta`}},"mfa-push":{"mfa-push":{description:`Lähetimme ilmoituksen laitteellesi`,pageTitle:"Push-ilmoitus | ${clientName}",resendText:`Lähetä ilmoitus uudelleen`,title:`Hyväksy pyyntö`,useCodeText:`Syötä koodi manuaalisesti`}},"mfa-recovery-code":{"mfa-recovery-code":{buttonText:`Jatka`,codePlaceholder:`Palautuskoodi`,description:`Syötä yksi palautuskoodeistasi`,"invalid-code":`Syöttämäsi palautuskoodi on virheellinen`,pageTitle:"Palautuskoodi | ${clientName}",title:`Syötä palautuskoodi`}},"mfa-voice":{"mfa-voice":{buttonText:`Soita minulle`,codePlaceholder:`Syötä koodi`,description:"Soitamme numeroon ${phoneNumber} ja kerromme koodisi","invalid-code":`Syöttämäsi koodi on virheellinen`,pageTitle:"Äänipuhelu | ${clientName}",title:`Vastaanota puhelu`}},"mfa-webauthn":{"mfa-webauthn":{buttonText:`Yritä uudelleen`,description:`Aseta turva-avaimesi ja seuraa ohjeita`,pageTitle:"Turva-avain | ${clientName}",title:`Käytä turva-avaintasi`}},passkeys:js,organizations:Ms,"reset-password":{"reset-password":{backToLoginText:`Palaa takaisin`,buttonText:`Lähetä salasanan palautussähköposti`,codeExpired:`Salasanan palautuskoodisi on vanhentunut. Pyydä uusi koodi.`,confirmPasswordLabel:`Vahvista salasana`,confirmPasswordPlaceholder:`Vahvista salasana`,description:`Napsauta alla olevaa painiketta, niin lähetämme ohjeet salasanasi palauttamiseen.`,emailPlaceholder:`Sähköpostiosoite`,failed:`Salasanan vaihto epäonnistui. Yritä uudelleen.`,"invalid-email-format":`Virheellinen sähköpostiosoite`,"no-email":`Sähköpostiosoite vaaditaan`,pageTitle:"Vaihda salasana | ${clientName}",passwordLabel:`Uusi salasana`,passwordPlaceholder:`Uusi salasana`,passwordTooWeak:`Salasana on liian heikko`,passwordsDidntMatch:`Salasanat eivät täsmää`,successDescription:`Olemme lähettäneet salasanan palautuslinkin sähköpostiosoitteeseesi.`,successTitle:`Salasanan palautussähköposti lähetetty`,title:`Unohditko salasanan?`,"user-not-found":`Käyttäjää ei löytynyt`},"reset-password-code":{backToLoginText:`Takaisin kirjautumiseen`,buttonText:`Vaihda salasana`,codeLabel:`Palautuskoodi`,codePlaceholder:`Syötä 6-numeroinen koodi`,confirmPasswordLabel:`Vahvista salasana`,confirmPasswordPlaceholder:`Vahvista salasana`,defaultDescription:`Syötä sähköpostiisi lähetetty koodi ja valitse uusi salasana`,description:"Lähetimme koodin osoitteeseen ${email}",failed:`Salasanan vaihto epäonnistui. Yritä uudelleen.`,invalidCode:`Syöttämäsi koodi on virheellinen tai vanhentunut`,noCode:`Syötä palautuskoodi`,pageTitle:"Syötä palautuskoodi | ${clientName}",passwordLabel:`Uusi salasana`,passwordPlaceholder:`Uusi salasana`,passwordTooWeak:`Salasana on liian heikko`,passwordsDidntMatch:`Salasanat eivät täsmää`,resendFailed:`Koodin uudelleenlähetys epäonnistui. Yritä uudelleen.`,resendSuccess:`Uusi koodi on lähetetty sähköpostiisi`,resendText:`Lähetä koodi uudelleen`,sessionExpired:`Istuntosi on vanhentunut. Yritä uudelleen.`,title:`Syötä palautuskoodi`}},signup:Ns,"signup-id":{"signup-id":{buttonText:`Jatka`,description:`Valitse salasana, jossa on isoja ja pieniä kirjaimia, numeroita ja symboleja.`,"email-already-exists":`Sähköposti on jo varattu`,emailPlaceholder:`Sähköpostiosoite`,federatedConnectionButtonText:"Jatka palvelulla ${connectionName}","invalid-email-format":`Virheellinen sähköpostiosoite`,loginActionLinkText:`Kirjaudu sisään`,loginActionText:`Onko sinulla jo tili?`,"no-email":`Sähköpostiosoite vaaditaan`,pageTitle:"Rekisteröidy | ${clientName}",phonePlaceholder:`Puhelinnumero`,separatorText:`tai`,title:`Valitse salasana`,usernamePlaceholder:`Käyttäjänimi`}},"signup-password":{"signup-password":{buttonText:`Jatka`,description:`Valitse salasana, jossa on isoja ja pieniä kirjaimia, numeroita ja symboleja.`,hidePasswordText:`Piilota salasana`,"no-password":`Salasana vaaditaan`,pageTitle:"Rekisteröidy | ${clientName}","password-policy-not-met":`Salasana ei täytä vaatimuksia`,"password-too-weak":`Salasana on liian heikko`,passwordPlaceholder:`Salasana`,showPasswordText:`Näytä salasana`,title:`Valitse salasana`}},"sms-otp-challenge":{"sms-otp-challenge":{buttonText:`Jatka`,codeLabel:`Vahvistuskoodi`,codePlaceholder:`Syötä koodi`,defaultDescription:`Syötä puhelimeesi lähetetty vahvistuskoodi`,description:"Lähetimme koodin käyttäjälle ${username}","invalid-code":`Virheellinen koodi`,noCode:`Syötä vahvistuskoodi`,pageTitle:"Syötä koodi | ${clientName}",resendText:`Lähetä koodi uudelleen`,sessionExpired:`Istuntosi on vanhentunut. Yritä uudelleen.`,title:`Tarkista puhelimesi`,unexpectedError:`Odottamaton virhe tapahtui`}},status:Ps},Is=c({common:()=>Ls,consent:()=>Rs,default:()=>Ks,invitation:()=>zs,login:()=>Bs,mfa:()=>Vs,organizations:()=>Us,passkeys:()=>Hs,signup:()=>Ws,status:()=>Gs}),Ls={common:{alertListTitle:`Avvisi`,backText:`Torna indietro`,cancelText:`Annulla`,closeText:`Chiudi`,contactSupportText:`Contatta l'assistenza`,continueText:`Continua`,copyrightText:"© ${currentYear} ${companyName}",errorText:`Si è verificato un errore`,hidePasswordText:`Nascondi password`,loadingText:`Caricamento...`,orText:`o`,privacyPolicyText:`Informativa sulla privacy`,showPasswordText:`Mostra password`,termsOfServiceText:`Termini di servizio`,termsShortText:`Termini`,tryAgainText:`Riprova`}},Rs={consent:{buttonText:`Accetta`,cancelButtonText:`Rifiuta`,description:"${clientName} richiede l'accesso al tuo account",pageTitle:"Autorizza | ${clientName}",scopesTitle:"Questo permetterà a ${clientName} di:",title:"Autorizza ${clientName}"}},zs={invitation:{acceptButtonText:`Accetta invito`,description:"${inviterName} ti ha invitato a unirti a ${organizationName} su ${clientName}",pageTitle:"Invito | ${clientName}",title:`Sei stato invitato`}},Bs={login:{alertListTitle:`Avvisi`,buttonText:`Continua`,description:"Accedi a ${clientName}.",editEmailText:`Modifica`,emailPlaceholder:`Indirizzo e-mail`,enterACodeBtn:`Accedi con un codice`,federatedConnectionButtonText:"Continua con ${connectionName}",footerLinkText:`Iscriviti`,footerText:`Non hai un account?`,forgotPasswordText:`Hai dimenticato la password?`,hidePasswordText:`Nascondi password`,invalidEmail:`Email non valida`,invalidIdentifier:`Email o nome utente non valido`,invitationDescription:"Accedi per accettare l'invito di ${inviterName} a unirti a ${companyName} su ${clientName}.",invitationTitle:`Sei stato invitato!`,logoAltText:"${companyName}","no-email":`Inserisci un indirizzo email`,"no-password":`La password è obbligatoria`,pageTitle:"Accedi | ${clientName}",passwordLoginNotAvailable:`L'autenticazione con password non è disponibile`,passwordPlaceholder:`Password`,phonePlaceholder:`Numero di telefono`,separatorText:`o`,sessionExpired:`La sessione è scaduta. Riprova.`,showPasswordText:`Mostra password`,signupActionLinkText:`Iscriviti`,signupActionText:`Non hai un account?`,title:`Benvenuto`,tooManyFailedLogins:`Troppi tentativi di accesso falliti. Riprova più tardi.`,unverifiedEmail:`Verifica il tuo indirizzo email prima di accedere`,userAccountDoesNotExist:`L'account utente non esiste`,usernamePlaceholder:`Nome utente o indirizzo email`,usernameTooLong:"Il nome utente deve avere al massimo ${max} caratteri",usernameTooShort:"Il nome utente deve avere almeno ${min} caratteri",wrongCredentials:`Nome utente o password errati`,passkeyButtonText:`Accedi con una passkey`}},Vs={mfa:{backupCodeText:`Usa codice di backup`,description:`Scegli un metodo di verifica`,pageTitle:"Autenticazione a più fattori | ${clientName}",title:`Verifica la tua identità`}},Hs={"passkey-enrollment-nudge":{title:`Proteggi il tuo account con una passkey`,description:`Le passkey utilizzano la biometria o il PIN del tuo dispositivo per accedere più velocemente e in modo più sicuro.`,enrollButtonText:`Configura passkey`,snoozeButtonText:`Forse più tardi`,optOutLinkText:`Non mostrare più`,pageTitle:"Configura Passkey | ${clientName}"},"passkey-enrollment":{title:`Crea la tua passkey`,description:`Segui le istruzioni del browser per creare una passkey per questo account.`,errorMessage:`Creazione della passkey non riuscita. Riprova.`,cancelLinkText:`Salta per ora`,retryButtonText:`Riprova`,enrollmentComplete:`La tua passkey è stata configurata con successo. Puoi chiudere questa pagina.`,pageTitle:"Crea Passkey | ${clientName}"},"passkey-challenge":{title:`Accedi con passkey`,description:`Segui le istruzioni del browser per verificare la tua identità.`,errorMessage:`Autenticazione con passkey non riuscita. Riprova.`,cancelLinkText:`Torna al login`,retryButtonText:`Riprova`,pageTitle:"Accedi con passkey | ${clientName}"}},Us={organizations:{description:`Scegli a quale organizzazione accedere`,pageTitle:"Seleziona organizzazione | ${clientName}",searchPlaceholder:`Cerca organizzazioni`,title:`Seleziona la tua organizzazione`}},Ws={signup:{buttonText:`Iscriviti`,confirmPasswordPlaceholder:`Conferma password`,description:`Registrati per continuare`,"email-already-exists":`Questa email è già registrata`,emailPlaceholder:`Indirizzo e-mail`,federatedConnectionButtonText:"Continua con ${connectionName}",hidePasswordText:`Nascondi password`,"invalid-email-format":`Email non valida`,loginActionLinkText:`Accedi`,loginActionText:`Hai già un account?`,"no-email":`Inserisci un indirizzo email`,"no-password":`La password è obbligatoria`,"no-username":`Il nome utente è obbligatorio`,pageTitle:"Registrati | ${clientName}",passwordPlaceholder:`Password`,passwordsDidntMatch:`Le password non corrispondono`,phonePlaceholder:`Numero di telefono`,privacyPolicyLinkText:`Informativa sulla privacy`,separatorText:`o`,sessionExpired:`La sessione è scaduta. Riprova.`,showPasswordText:`Mostra password`,termsOfServiceLinkText:`Termini di servizio`,termsText:`Registrandoti, accetti i nostri`,title:`Crea il tuo account`,"username-already-exists":`Questo nome utente è già in uso`,usernamePlaceholder:`Nome utente`,verifyEmailText:`Controlla la tua email per verificare il tuo account`}},Gs={status:{continueButtonText:`Continua`,errorTitle:`Errore`,pageTitle:"Stato | ${clientName}",successTitle:`Operazione riuscita`,title:`Stato`}},Ks={common:Ls,consent:Rs,"device-flow":{"device-flow":{buttonText:`Continua`,codePlaceholder:`Inserisci il codice`,description:`Inserisci il codice mostrato sul tuo dispositivo`,"expired-code":`Il codice è scaduto`,"invalid-code":`Il codice inserito non è valido`,pageTitle:"Attivazione dispositivo | ${clientName}",title:`Attiva il tuo dispositivo`}},"email-otp-challenge":{"email-otp-challenge":{buttonText:`Continua`,codeLabel:`Codice di verifica`,codePlaceholder:`Inserisci il codice`,defaultDescription:`Inserisci il codice di verifica inviato alla tua email`,description:"Abbiamo inviato un codice a ${email}","invalid-code":`Codice non valido`,noCode:`Inserisci il codice di verifica`,pageTitle:"Inserisci il codice | ${clientName}",resendText:`Reinvio del codice`,sessionExpired:`La sessione è scaduta. Riprova.`,title:`Controlla la tua email`,unexpectedError:`Si è verificato un errore imprevisto`}},"email-verification":{"email-verification":{description:"Abbiamo inviato un'email a ${email}",pageTitle:"Verifica email | ${clientName}",resendText:`Reinvia email`,successDescription:`La tua email è stata verificata con successo.`,successTitle:`Email verificata`,title:`Verificare l'e-mail`}},invitation:zs,login:Bs,"login-id":{"login-id":{alertListTitle:`Avvisi`,"auth0-users-validation":`Qualcosa è andato storto, riprova più tardi`,"authentication-failure":`Siamo spiacenti, si è verificato un errore durante il tentativo di accesso`,buttonText:`Continua`,"captcha-client-failure":`Non è stato possibile caricare la verifica di sicurezza. Riprova. (Codice errore: #{errorCode})`,"captcha-validation-failure":`Siamo spiacenti, si è verificato un errore durante la convalida della risposta captcha. Riprova.`,captchaCodePlaceholder:`Inserisci il codice mostrato sopra`,"custom-script-error-code":`Qualcosa è andato storto, riprova più tardi.`,description:"Accedi a ${clientName}.",editEmailText:`Modifica`,emailPlaceholder:`Indirizzo e-mail`,federatedConnectionButtonText:"Continua con ${connectionName}",footerLinkText:`Iscriviti`,footerText:`Non hai un account?`,forgotPasswordText:`Hai dimenticato la password?`,hidePasswordText:`Nascondi password`,"invalid-captcha":`Risolvi la domanda di verifica per confermare che non sei un robot.`,"invalid-code":`Codice non valido`,"invalid-connection":`Connessione non valida`,"invalid-email-format":`Email non valida`,"invalid-email-phone":`Inserisci un indirizzo email o un numero di telefono valido. I numeri di telefono devono includere il prefisso internazionale.`,"invalid-email-phone-username":`Inserisci un indirizzo email, un numero di telefono o un nome utente valido. I numeri di telefono devono includere il prefisso internazionale.`,"invalid-email-username":`Inserisci un indirizzo email o un nome utente valido`,"invalid-expired-code":`Codice utente non valido o scaduto`,"invalid-login-id":`ID di accesso non valido`,"invalid-phone-username":`Inserisci un numero di telefono o un nome utente valido. I numeri di telefono devono includere il prefisso internazionale.`,"invalid-recaptcha":`Seleziona la casella per confermare che non sei un robot.`,"invalid-username":"Il nome utente può contenere solo caratteri alfanumerici o: '${characters}'. Il nome utente deve avere tra ${min} e ${max} caratteri.",invitationDescription:"Accedi per accettare l'invito di ${inviterName} a unirti a ${companyName} su ${clientName}.",invitationTitle:`Sei stato invitato!`,"ip-blocked":`Abbiamo rilevato un comportamento di accesso sospetto e ulteriori tentativi saranno bloccati. Contatta l'amministratore.`,logoAltText:"${companyName}","no-db-connection":`Connessione non valida`,"no-email":`Inserisci un indirizzo email`,"no-email-phone":`È richiesto un indirizzo email o un numero di telefono`,"no-email-phone-username":`È richiesto un numero di telefono, un nome utente o un indirizzo email`,"no-email-username":`È richiesto un indirizzo email o un nome utente`,"no-password":`La password è obbligatoria`,"no-phone":`Inserisci un numero di telefono`,"no-phone-username":`È richiesto un numero di telefono o un nome utente`,"no-username":`Il nome utente è obbligatorio`,pageTitle:"Accedi | ${clientName}","password-breached":`Abbiamo rilevato un potenziale problema di sicurezza con questo account. Per proteggere il tuo account, abbiamo impedito questo accesso. Reimposta la password per procedere.`,passwordPlaceholder:`Password`,phoneOrEmailPlaceholder:`Indirizzo e-mail o numero di telefono`,phoneOrUsernameOrEmailPlaceholder:`Telefono, nome utente o email`,phoneOrUsernamePlaceholder:`Numero di telefono o nome utente`,phonePlaceholder:`Numero di telefono`,"same-user-login":`Troppi tentativi di accesso per questo utente. Attendi e riprova più tardi.`,selectCountryCode:"Seleziona prefisso paese, attualmente impostato su ${countryName}, ${countryCode}, +${countryPrefix}",separatorText:`o`,sessionExpired:`La sessione è scaduta. Riprova.`,showPasswordText:`Mostra password`,signupActionLinkText:`Iscriviti`,signupActionText:`Non hai un account?`,termsAndConditionsTemplate:'Continuando, accetti i nostri <a href="${termsAndConditionsUrl}" target="_blank" rel="noopener noreferrer">Termini e condizioni</a>.',title:`Benvenuto`,"user-blocked":`Il tuo account è stato bloccato dopo diversi tentativi di accesso consecutivi.`,userAccountDoesNotExist:`L'account utente non esiste`,usernameOnlyPlaceholder:`Nome utente`,usernameOrEmailPlaceholder:`Nome utente o indirizzo email`,usernamePlaceholder:`Nome utente`,usernameTooLong:"Il nome utente deve avere al massimo ${max} caratteri",usernameTooShort:"Il nome utente deve avere almeno ${min} caratteri","wrong-credentials":`Nome utente o password errati`,"wrong-email-credentials":`Email o password errati`,"wrong-email-phone-credentials":`Indirizzo email, numero di telefono o password errati. I numeri di telefono devono includere il prefisso internazionale.`,"wrong-email-phone-username-credentials":`Indirizzo email, numero di telefono, nome utente o password errati. I numeri di telefono devono includere il prefisso internazionale.`,"wrong-email-username-credentials":`Indirizzo email, nome utente o password errati`,"wrong-phone-credentials":`Numero di telefono o password errati`,"wrong-phone-username-credentials":`Numero di telefono, nome utente o password errati. I numeri di telefono devono includere il prefisso internazionale.`,"wrong-username-credentials":`Nome utente o password errati`,passkeyButtonText:`Accedi con una passkey`}},"login-password":{"login-password":{buttonText:`Accedi`,description:"Accedi a ${clientName}",forgotPasswordText:`Hai dimenticato la password?`,hidePasswordText:`Nascondi password`,"no-password":`La password è obbligatoria`,pageTitle:"Accedi | ${clientName}","password-breached":`Abbiamo rilevato un potenziale problema di sicurezza con questo account. Per proteggere il tuo account, abbiamo impedito questo accesso. Reimposta la password per procedere.`,passwordPlaceholder:`Password`,showPasswordText:`Mostra password`,signingInAs:"Accesso come ${email}",title:`Inserire la password`,unverifiedEmail:`Verifica il tuo indirizzo email prima di accedere`,"user-blocked":`Il tuo account è stato bloccato dopo diversi tentativi di accesso consecutivi.`,"wrong-credentials":`Password errata`}},"login-passwordless":{"login-passwordless":{authMethodEmail:`email`,authMethodEmailOrPhone:`email o numero di telefono`,authMethodPhone:`numero di telefono`,description:"Accedi usando il tuo ${authMethod}",emailOrPhonePlaceholder:`Indirizzo email o numero di telefono`,emailPlaceholder:`Indirizzo e-mail`,invalidEmail:`Inserisci un indirizzo email valido`,invalidIdentifier:`Inserisci un indirizzo email o un numero di telefono valido`,invalidPhone:`Inserisci un numero di telefono valido con il prefisso internazionale`,noEmail:`Inserisci il tuo indirizzo email`,noPhone:`Inserisci il tuo numero di telefono`,phonePlaceholder:`Numero di telefono`,sessionExpired:`La sessione è scaduta. Riprova.`,title:`Accedi con un codice`,userAccountDoesNotExist:`L'account utente non esiste`}},"magic-link-sent":{"magic-link-sent":{defaultDescription:`Clicca il link nella tua email per accedere`,description:"Abbiamo inviato un link a ${username}. Cliccalo per accedere.",resendText:`Reinvia link`,spamText:`Non hai ricevuto l'email? Controlla la cartella spam.`,title:`Controlla la tua email`}},mfa:Vs,"mfa-email":{"mfa-email":{buttonText:`Continua`,codePlaceholder:`Inserisci il codice`,description:"Abbiamo inviato un codice a ${email}","invalid-code":`Il codice inserito non è valido`,pageTitle:"Verifica email | ${clientName}",resendText:`Reinvia codice`,title:`Controlla la tua email`}},"mfa-otp":{"mfa-otp":{buttonText:`Continua`,codePlaceholder:`Inserisci il codice`,description:`Inserisci il codice a 6 cifre dalla tua app di autenticazione`,"invalid-code":`Il codice inserito non è valido`,pageTitle:"Inserisci il codice | ${clientName}",title:`Inserisci il tuo codice`},"mfa-totp-enrollment":{title:`Configura l'autenticatore`,description:`Scansiona il codice QR qui sotto con la tua app di autenticazione, poi inserisci il codice a 6 cifre per verificare`,secretLabel:`Oppure inserisci questo codice manualmente:`,codePlaceholder:`Inserisci il codice`,continueButtonText:`Verifica e attiva`,"invalid-code":`Il codice inserito non è valido. Riprova.`,"transaction-not-found":`La tua transazione di registrazione è scaduta, dovrai ricominciare.`,pageTitle:"Configura autenticatore | ${clientName}",unexpectedError:`Qualcosa è andato storto. Riprova.`,enrollmentComplete:`La registrazione MFA è completata. Puoi chiudere questa pagina.`},"mfa-totp-challenge":{title:`Verifica la tua identità`,description:`Inserisci il codice a 6 cifre dalla tua app di autenticazione`,codePlaceholder:`Inserisci il codice`,continueButtonText:`Continua`,"invalid-code":`Il codice inserito non è valido`,"transaction-not-found":`La tua transazione di registrazione è scaduta, dovrai ricominciare.`,unexpectedError:`Qualcosa è andato storto. Riprova.`,pageTitle:"Verifica identità | ${clientName}"}},"mfa-phone":{"mfa-phone-challenge":{pageTitle:"Usa il tuo numero di telefono per accedere | ${clientName}",title:`Verifica la tua identità`,description:"Abbiamo inviato un codice a ${phoneNumber}",continueButtonText:`Continua`,changePhoneText:`Scegli un altro numero di telefono.`,smsButtonText:`Messaggio di testo`,voiceButtonText:`Chiamata vocale`,chooseMessageTypeText:`Come vuoi ricevere il codice?`,pickAuthenticatorText:`Prova un altro metodo`,logoAltText:"${companyName}",codePlaceholder:`Inserisci il codice`,"send-sms-failed":`Si è verificato un problema nell'invio dell'SMS`,"send-voice-failed":`Si è verificato un problema nell'effettuare la chiamata vocale`,"invalid-phone-format":`Il numero di telefono può contenere solo cifre.`,"invalid-phone":`Sembra che il tuo numero di telefono non sia valido. Controlla e riprova.`,"too-many-sms":`Hai superato il numero massimo di messaggi telefonici all'ora. Attendi qualche minuto e riprova.`,"too-many-voice":`Hai superato il numero massimo di messaggi telefonici all'ora. Attendi qualche minuto e riprova.`,"transaction-not-found":`La tua transazione di registrazione è scaduta, dovrai ricominciare.`,"no-phone":`Inserisci un numero di telefono`,noCode:`Inserisci il codice di verifica`,invalidCode:`Il codice inserito non è valido. Riprova.`,unexpectedError:`Qualcosa è andato storto. Riprova.`,resendSuccess:`Abbiamo inviato un nuovo codice al tuo telefono`,enrollmentComplete:`La registrazione MFA è completata. Puoi chiudere questa pagina.`},"mfa-phone-enrollment":{pageTitle:"Inserisci il tuo numero di telefono per accedere con un codice telefonico | ${clientName}",title:`Proteggi il tuo account`,description:`Inserisci il prefisso del paese e il numero di telefono a cui possiamo inviare un codice a 6 cifre:`,continueButtonText:`Continua`,smsButtonText:`Messaggio di testo`,voiceButtonText:`Chiamata vocale`,chooseMessageTypeText:`Come vuoi ricevere il codice?`,pickAuthenticatorText:`Prova un altro metodo`,placeholder:`Inserisci il tuo numero di telefono`,logoAltText:"${companyName}",selectCountryCode:"Seleziona prefisso paese, attualmente impostato su ${countryName}, ${countryCode}, +${countryPrefix}","send-sms-failed":`Si è verificato un problema nell'invio dell'SMS`,"send-voice-failed":`Si è verificato un problema nell'effettuare la chiamata vocale`,"sms-authenticator-error":`Non siamo riusciti a inviare l'SMS. Riprova più tardi.`,"invalid-phone-format":`Il numero di telefono può contenere solo cifre.`,"invalid-phone":`Sembra che il tuo numero di telefono non sia valido. Controlla e riprova.`,"too-many-sms":`Hai superato il numero massimo di messaggi telefonici all'ora. Attendi qualche minuto e riprova.`,"too-many-voice":`Hai superato il numero massimo di messaggi telefonici all'ora. Attendi qualche minuto e riprova.`,"transaction-not-found":`La tua transazione di registrazione è scaduta, dovrai ricominciare.`,"no-phone":`Inserisci un numero di telefono`,"phone-is-too-short":`Il numero di telefono è troppo corto`,"phone-is-too-long":`Il numero di telefono è troppo lungo`}},"mfa-login-options":{"mfa-login-options":{pageTitle:"Scegli il metodo di verifica | ${clientName}",title:`Scegli il metodo di verifica`,description:`Seleziona come vuoi verificare la tua identità`,authenticatorAppLabel:`App di autenticazione`,authenticatorAppDescription:`Usa la tua app di autenticazione per ottenere un codice di verifica`,smsLabel:`Messaggio di testo`,smsDescription:`Ricevi un codice di verifica inviato al tuo telefono`,passkeyLabel:`Passkey`,passkeyDescription:`Usa la biometria del tuo dispositivo o una chiave di sicurezza`}},"mfa-push":{"mfa-push":{description:`Abbiamo inviato una notifica al tuo dispositivo`,pageTitle:"Notifica push | ${clientName}",resendText:`Reinvia notifica`,title:`Approva la richiesta`,useCodeText:`Inserisci il codice manualmente`}},"mfa-recovery-code":{"mfa-recovery-code":{buttonText:`Continua`,codePlaceholder:`Codice di recupero`,description:`Inserisci uno dei tuoi codici di recupero`,"invalid-code":`Il codice di recupero inserito non è valido`,pageTitle:"Codice di recupero | ${clientName}",title:`Inserisci il codice di recupero`}},"mfa-voice":{"mfa-voice":{buttonText:`Chiamami`,codePlaceholder:`Inserisci il codice`,description:"Chiameremo ${phoneNumber} con il tuo codice","invalid-code":`Il codice inserito non è valido`,pageTitle:"Chiamata vocale | ${clientName}",title:`Ricevi una telefonata`}},"mfa-webauthn":{"mfa-webauthn":{buttonText:`Riprova`,description:`Inserisci la tua chiave di sicurezza e segui le istruzioni`,pageTitle:"Chiave di sicurezza | ${clientName}",title:`Usa la tua chiave di sicurezza`}},passkeys:Hs,organizations:Us,"reset-password":{"reset-password":{backToLoginText:`Torna al login`,buttonText:`Continua`,codeExpired:`Il codice di reimpostazione della password è scaduto. Richiedine uno nuovo.`,confirmPasswordLabel:`Conferma password`,confirmPasswordPlaceholder:`Conferma password`,description:`Inserisci la tua email per reimpostare la password`,emailPlaceholder:`Indirizzo e-mail`,failed:`Reimpostazione della password non riuscita. Riprova.`,"invalid-email-format":`Email non valida`,"no-email":`Inserisci un indirizzo email`,pageTitle:"Reimposta password | ${clientName}",passwordLabel:`Nuova password`,passwordPlaceholder:`Nuova password`,passwordTooWeak:`La password è troppo debole`,passwordsDidntMatch:`Le password non corrispondono`,successDescription:`Abbiamo inviato un link per reimpostare la password al tuo indirizzo email.`,successTitle:`Controlla la tua email`,title:`Hai dimenticato la password?`,"user-not-found":`Utente non trovato`},"reset-password-code":{backToLoginText:`Torna al login`,buttonText:`Reimposta password`,codeLabel:`Codice di reimpostazione`,codePlaceholder:`Inserisci il codice a 6 cifre`,confirmPasswordLabel:`Conferma password`,confirmPasswordPlaceholder:`Conferma password`,defaultDescription:`Inserisci il codice inviato alla tua email e scegli una nuova password`,description:"Abbiamo inviato un codice a ${email}",failed:`Reimpostazione della password non riuscita. Riprova.`,invalidCode:`Il codice inserito non è valido o è scaduto`,noCode:`Inserisci il codice di reimpostazione`,pageTitle:"Inserisci il codice di reimpostazione | ${clientName}",passwordLabel:`Nuova password`,passwordPlaceholder:`Nuova password`,passwordTooWeak:`La password è troppo debole`,passwordsDidntMatch:`Le password non corrispondono`,resendFailed:`Impossibile reinviare il codice. Riprova.`,resendSuccess:`Un nuovo codice è stato inviato alla tua email`,resendText:`Reinvia codice`,sessionExpired:`La sessione è scaduta. Riprova.`,title:`Inserisci il codice di reimpostazione`}},signup:Ws,"signup-id":{"signup-id":{buttonText:`Continua`,description:`Registrati per continuare`,"email-already-exists":`Questa email è già registrata`,emailPlaceholder:`Indirizzo e-mail`,federatedConnectionButtonText:"Continua con ${connectionName}","invalid-email-format":`Email non valida`,loginActionLinkText:`Accedi`,loginActionText:`Hai già un account?`,"no-email":`Inserisci un indirizzo email`,pageTitle:"Registrati | ${clientName}",phonePlaceholder:`Numero di telefono`,separatorText:`o`,title:`Crea il tuo account`,usernamePlaceholder:`Nome utente`}},"signup-password":{"signup-password":{buttonText:`Continua`,description:`Registrati per continuare`,hidePasswordText:`Nascondi password`,"no-password":`La password è obbligatoria`,pageTitle:"Registrati | ${clientName}","password-policy-not-met":`La password non soddisfa i requisiti`,"password-too-weak":`La password è troppo debole`,passwordPlaceholder:`Password`,showPasswordText:`Mostra password`,title:`Crea la tua password`}},"sms-otp-challenge":{"sms-otp-challenge":{buttonText:`Continua`,codeLabel:`Codice di verifica`,codePlaceholder:`Inserisci il codice`,defaultDescription:`Inserisci il codice di verifica inviato al tuo telefono`,description:"Abbiamo inviato un codice a ${username}","invalid-code":`Codice non valido`,noCode:`Inserisci il codice di verifica`,pageTitle:"Inserisci il codice | ${clientName}",resendText:`Reinvia codice`,sessionExpired:`La sessione è scaduta. Riprova.`,title:`Controlla il tuo telefono`,unexpectedError:`Si è verificato un errore imprevisto`}},status:Gs},qs=c({common:()=>Js,consent:()=>Ys,default:()=>rc,invitation:()=>Xs,login:()=>Zs,mfa:()=>Qs,organizations:()=>ec,passkeys:()=>$s,signup:()=>tc,status:()=>nc}),Js={common:{alertListTitle:`Varsler`,backText:`Gå tilbake`,cancelText:`Avbryt`,closeText:`Lukk`,contactSupportText:`Kontakt kundestøtte`,continueText:`Fortsett`,copyrightText:"© ${currentYear} ${companyName}",errorText:`Det oppstod en feil`,hidePasswordText:`Skjul passord`,loadingText:`Laster...`,orText:`eller`,privacyPolicyText:`Personvernerklæring`,showPasswordText:`Vis passord`,termsOfServiceText:`Vilkår for bruk`,termsShortText:`Vilkår`,tryAgainText:`Prøv igjen`}},Ys={consent:{buttonText:`Godta`,cancelButtonText:`Avslå`,description:"${clientName} ber om tilgang til kontoen din",pageTitle:"Godkjenn | ${clientName}",scopesTitle:"Dette vil gi ${clientName} tillatelse til å:",title:"Godkjenn ${clientName}"}},Xs={invitation:{acceptButtonText:`Godta invitasjon`,description:"${inviterName} har invitert deg til å bli med i ${organizationName} på ${clientName}",pageTitle:"Invitasjon | ${clientName}",title:`Du har blitt invitert`}},Zs={login:{alertListTitle:`Varsler`,buttonText:`Fortsett`,description:"Logg inn på ${clientName}.",editEmailText:`Rediger`,emailPlaceholder:`E-postadresse`,enterACodeBtn:`Logg inn med en kode`,federatedConnectionButtonText:"Fortsett med ${connectionName}",footerLinkText:`Registrer deg`,footerText:`Har du ikke en konto?`,forgotPasswordText:`Har du glemt passordet?`,hidePasswordText:`Skjul passord`,invalidEmail:`Ugyldig e-postadresse`,invalidIdentifier:`Ugyldig e-postadresse eller brukernavn`,invitationDescription:"Logg inn for å godta ${inviterName} sin invitasjon til å bli med i ${companyName} på ${clientName}.",invitationTitle:`Du har blitt invitert!`,logoAltText:"${companyName}","no-email":`Vennligst oppgi en e-postadresse`,"no-password":`Passord er påkrevd`,pageTitle:"Logg inn | ${clientName}",passwordLoginNotAvailable:`Passordautentisering er ikke tilgjengelig`,passwordPlaceholder:`Passord`,phonePlaceholder:`Telefonnummer`,separatorText:`eller`,sessionExpired:`Økten din har utløpt. Vennligst prøv igjen.`,showPasswordText:`Vis passord`,signupActionLinkText:`Registrer deg`,signupActionText:`Har du ikke en konto?`,title:`Velkommen`,tooManyFailedLogins:`For mange mislykkede innloggingsforsøk. Vennligst prøv igjen senere.`,unverifiedEmail:`Vennligst bekreft e-postadressen din før du logger inn`,userAccountDoesNotExist:`Brukerkontoen finnes ikke`,usernamePlaceholder:`Brukernavn eller e-postadresse`,usernameTooLong:"Brukernavnet må være ${max} tegn eller færre",usernameTooShort:"Brukernavnet må være minst ${min} tegn",wrongCredentials:`Feil brukernavn eller passord`,passkeyButtonText:`Logg inn med passkey`}},Qs={mfa:{backupCodeText:`Bruk reservekode`,description:`Velg en bekreftelsesmetode`,pageTitle:"Flerfaktorautentisering | ${clientName}",title:`Bekreft identiteten din`}},$s={"passkey-enrollment-nudge":{title:`Sikre kontoen din med en passnøkkel`,description:`Passnøkler bruker enhetens biometri eller PIN-kode for å logge deg inn raskere og sikrere.`,enrollButtonText:`Sett opp passnøkkel`,snoozeButtonText:`Kanskje senere`,optOutLinkText:`Ikke vis dette igjen`,pageTitle:"Sett Opp Passnøkkel | ${clientName}"},"passkey-enrollment":{title:`Opprett passnøkkelen din`,description:`Følg instruksjonene fra nettleseren for å opprette en passnøkkel for denne kontoen.`,errorMessage:`Kunne ikke opprette passnøkkel. Vennligst prøv igjen.`,cancelLinkText:`Hopp over for nå`,retryButtonText:`Prøv igjen`,enrollmentComplete:`Passnøkkelen din er konfigurert. Du kan lukke denne siden.`,pageTitle:"Opprett Passnøkkel | ${clientName}"},"passkey-challenge":{title:`Logg inn med passkey`,description:`Følg instruksjonene fra nettleseren for å bekrefte identiteten din.`,errorMessage:`Autentisering med passkey mislyktes. Vennligst prøv igjen.`,cancelLinkText:`Tilbake til innlogging`,retryButtonText:`Prøv igjen`,pageTitle:"Logg inn med passkey | ${clientName}"}},ec={organizations:{description:`Velg hvilken organisasjon du vil logge inn på`,pageTitle:"Velg organisasjon | ${clientName}",searchPlaceholder:`Søk etter organisasjoner`,title:`Velg din organisasjon`}},tc={signup:{buttonText:`Registrer deg`,confirmPasswordPlaceholder:`Bekreft passord`,description:`Registrer deg for å fortsette`,"email-already-exists":`E-postadressen er allerede registrert`,emailPlaceholder:`E-postadresse`,federatedConnectionButtonText:"Fortsett med ${connectionName}",hidePasswordText:`Skjul passord`,"invalid-email-format":`Ugyldig e-postadresse`,loginActionLinkText:`Logg inn`,loginActionText:`Har du allerede en konto?`,"no-email":`Vennligst oppgi en e-postadresse`,"no-password":`Passord er påkrevd`,"no-username":`Brukernavn er påkrevd`,pageTitle:"Registrer deg | ${clientName}",passwordPlaceholder:`Passord`,passwordsDidntMatch:`Passordene samsvarer ikke`,phonePlaceholder:`Telefonnummer`,privacyPolicyLinkText:`Personvernerklæring`,separatorText:`eller`,sessionExpired:`Økten din har utløpt. Vennligst prøv igjen.`,showPasswordText:`Vis passord`,termsOfServiceLinkText:`Vilkår for bruk`,termsText:`Ved å registrere deg godtar du våre`,title:`Opprett kontoen din`,"username-already-exists":`Dette brukernavnet er allerede tatt`,usernamePlaceholder:`Brukernavn`,verifyEmailText:`Sjekk e-posten din for å bekrefte kontoen`}},nc={status:{continueButtonText:`Fortsett`,errorTitle:`Feil`,pageTitle:"Status | ${clientName}",successTitle:`Vellykket`,title:`Status`}},rc={common:Js,consent:Ys,"device-flow":{"device-flow":{buttonText:`Fortsett`,codePlaceholder:`Skriv inn kode`,description:`Skriv inn koden som vises på enheten din`,"expired-code":`Koden har utløpt`,"invalid-code":`Koden du skrev inn er ugyldig`,pageTitle:"Enhetsaktivering | ${clientName}",title:`Aktiver enheten din`}},"email-otp-challenge":{"email-otp-challenge":{buttonText:`Fortsett`,codeLabel:`Bekreftelseskode`,codePlaceholder:`Skriv inn kode`,defaultDescription:`Skriv inn bekreftelseskoden som ble sendt til e-posten din`,description:"Vi sendte en kode til ${email}","invalid-code":`Ugyldig kode`,noCode:`Vennligst skriv inn bekreftelseskoden`,pageTitle:"Skriv inn kode | ${clientName}",resendText:`Send kode på nytt`,sessionExpired:`Økten din har utløpt. Vennligst prøv igjen.`,title:`Sjekk e-posten din`,unexpectedError:`En uventet feil oppstod`}},"email-verification":{"email-verification":{description:"Vi sendte en e-post til ${email}",pageTitle:"Bekreft e-post | ${clientName}",resendText:`Send e-post på nytt`,successDescription:`E-postadressen din er bekreftet.`,successTitle:`E-post bekreftet`,title:`Bekreft e-posten din`}},invitation:Xs,login:Zs,"login-id":{"login-id":{alertListTitle:`Varsler`,"auth0-users-validation":`Noe gikk galt, vennligst prøv igjen senere`,"authentication-failure":`Beklager, noe gikk galt under innloggingsforsøket`,buttonText:`Fortsett`,"captcha-client-failure":`Vi kunne ikke laste sikkerhetsutfordringen. Vennligst prøv igjen. (Feilkode: #{errorCode})`,"captcha-validation-failure":`Beklager, noe gikk galt under validering av captcha-svaret. Vennligst prøv igjen.`,captchaCodePlaceholder:`Skriv inn koden som vises ovenfor`,"custom-script-error-code":`Noe gikk galt, vennligst prøv igjen senere.`,description:"Logg inn på ${clientName}.",editEmailText:`Rediger`,emailPlaceholder:`E-postadresse`,federatedConnectionButtonText:"Fortsett med ${connectionName}",footerLinkText:`Registrer deg`,footerText:`Har du ikke en konto?`,forgotPasswordText:`Har du glemt passordet?`,hidePasswordText:`Skjul passord`,"invalid-captcha":`Løs utfordringen for å bekrefte at du ikke er en robot.`,"invalid-code":`Ugyldig kode`,"invalid-connection":`Ugyldig tilkobling`,"invalid-email-format":`Ugyldig e-postadresse`,"invalid-email-phone":`Skriv inn en gyldig e-postadresse eller telefonnummer. Telefonnumre må inkludere landskode.`,"invalid-email-phone-username":`Skriv inn en gyldig e-postadresse, telefonnummer eller brukernavn. Telefonnumre må inkludere landskode.`,"invalid-email-username":`Skriv inn en gyldig e-postadresse eller brukernavn`,"invalid-expired-code":`Ugyldig eller utløpt brukerkode`,"invalid-login-id":`Ugyldig innloggings-ID`,"invalid-phone-username":`Skriv inn et gyldig telefonnummer eller brukernavn. Telefonnumre må inkludere landskode.`,"invalid-recaptcha":`Kryss av i boksen for å bekrefte at du ikke er en robot.`,"invalid-username":"Brukernavnet kan bare inneholde alfanumeriske tegn eller: '${characters}'. Brukernavnet må ha mellom ${min} og ${max} tegn.",invitationDescription:"Logg inn for å godta ${inviterName} sin invitasjon til å bli med i ${companyName} på ${clientName}.",invitationTitle:`Du har blitt invitert!`,"ip-blocked":`Vi har oppdaget mistenkelig innloggingsaktivitet, og videre forsøk vil bli blokkert. Vennligst kontakt administratoren.`,logoAltText:"${companyName}","no-db-connection":`Ugyldig tilkobling`,"no-email":`Vennligst oppgi en e-postadresse`,"no-email-phone":`E-postadresse eller telefonnummer er påkrevd`,"no-email-phone-username":`Telefonnummer, brukernavn eller e-postadresse er påkrevd`,"no-email-username":`E-postadresse eller brukernavn er påkrevd`,"no-password":`Passord er påkrevd`,"no-phone":`Vennligst oppgi et telefonnummer`,"no-phone-username":`Telefonnummer eller brukernavn er påkrevd`,"no-username":`Brukernavn er påkrevd`,pageTitle:"Logg inn | ${clientName}","password-breached":`Vi har oppdaget et potensielt sikkerhetsproblem med denne kontoen. For å beskytte kontoen din har vi forhindret denne innloggingen. Vennligst tilbakestill passordet ditt for å fortsette.`,passwordPlaceholder:`Passord`,phoneOrEmailPlaceholder:`E-post eller telefonnummer`,phoneOrUsernameOrEmailPlaceholder:`Telefon, brukernavn eller e-post`,phoneOrUsernamePlaceholder:`Telefonnummer eller brukernavn`,phonePlaceholder:`Telefonnummer`,"same-user-login":`For mange innloggingsforsøk for denne brukeren. Vennligst vent og prøv igjen senere.`,selectCountryCode:"Velg landskode, for øyeblikket satt til ${countryName}, ${countryCode}, +${countryPrefix}",separatorText:`eller`,sessionExpired:`Økten din har utløpt. Vennligst prøv igjen.`,showPasswordText:`Vis passord`,signupActionLinkText:`Registrer deg`,signupActionText:`Har du ikke en konto?`,termsAndConditionsTemplate:'Ved å fortsette godtar du våre <a href="${termsAndConditionsUrl}" target="_blank" rel="noopener noreferrer">vilkår</a>.',title:`Velkommen`,"user-blocked":`Kontoen din har blitt blokkert etter flere påfølgende innloggingsforsøk.`,userAccountDoesNotExist:`Brukerkontoen finnes ikke`,usernameOnlyPlaceholder:`Brukernavn`,usernameOrEmailPlaceholder:`Brukernavn eller e-postadresse`,usernamePlaceholder:`Brukernavn eller e-postadresse`,usernameTooLong:"Brukernavnet må være ${max} tegn eller færre",usernameTooShort:"Brukernavnet må være minst ${min} tegn","wrong-credentials":`Feil brukernavn eller passord`,"wrong-email-credentials":`Feil e-postadresse eller passord`,"wrong-email-phone-credentials":`Feil e-postadresse, telefonnummer eller passord. Telefonnumre må inkludere landskode.`,"wrong-email-phone-username-credentials":`Feil e-postadresse, telefonnummer, brukernavn eller passord. Telefonnumre må inkludere landskode.`,"wrong-email-username-credentials":`Feil e-postadresse, brukernavn eller passord`,"wrong-phone-credentials":`Feil telefonnummer eller passord`,"wrong-phone-username-credentials":`Feil telefonnummer, brukernavn eller passord. Telefonnumre må inkludere landskode.`,"wrong-username-credentials":`Feil brukernavn eller passord`,passkeyButtonText:`Logg inn med passkey`}},"login-password":{"login-password":{buttonText:`Logg inn`,description:"Logg inn på ${clientName}",forgotPasswordText:`Har du glemt passordet?`,hidePasswordText:`Skjul passord`,"no-password":`Passord er påkrevd`,pageTitle:"Logg inn | ${clientName}","password-breached":`Vi har oppdaget et potensielt sikkerhetsproblem med denne kontoen. For å beskytte kontoen din har vi forhindret denne innloggingen. Vennligst tilbakestill passordet ditt for å fortsette.`,passwordPlaceholder:`Passord`,showPasswordText:`Vis passord`,signingInAs:"Logger inn som ${email}",title:`Oppgi passord`,unverifiedEmail:`Vennligst bekreft e-postadressen din før du logger inn`,"user-blocked":`Kontoen din har blitt blokkert etter flere påfølgende innloggingsforsøk.`,"wrong-credentials":`Feil passord`}},"login-passwordless":{"login-passwordless":{authMethodEmail:`e-post`,authMethodEmailOrPhone:`e-post eller telefonnummer`,authMethodPhone:`telefonnummer`,description:"Logg inn med din ${authMethod}",emailOrPhonePlaceholder:`E-postadresse eller telefonnummer`,emailPlaceholder:`E-postadresse`,invalidEmail:`Vennligst oppgi en gyldig e-postadresse`,invalidIdentifier:`Vennligst oppgi en gyldig e-postadresse eller telefonnummer`,invalidPhone:`Vennligst oppgi et gyldig telefonnummer med landskode`,noEmail:`Vennligst oppgi e-postadressen din`,noPhone:`Vennligst oppgi telefonnummeret ditt`,phonePlaceholder:`Telefonnummer`,sessionExpired:`Økten din har utløpt. Vennligst prøv igjen.`,title:`Logg inn med en kode`,userAccountDoesNotExist:`Brukerkontoen finnes ikke`}},"magic-link-sent":{"magic-link-sent":{defaultDescription:`Klikk på lenken i e-posten for å logge inn`,description:"Vi sendte en lenke til ${username}. Klikk på den for å logge inn.",resendText:`Send lenke på nytt`,spamText:`Fikk du ikke e-posten? Sjekk søppelpostmappen.`,title:`Sjekk e-posten din`}},mfa:Qs,"mfa-email":{"mfa-email":{buttonText:`Fortsett`,codePlaceholder:`Skriv inn kode`,description:"Vi sendte en kode til ${email}","invalid-code":`Koden du skrev inn er ugyldig`,pageTitle:"E-postbekreftelse | ${clientName}",resendText:`Send kode på nytt`,title:`Sjekk e-posten din`}},"mfa-otp":{"mfa-otp":{buttonText:`Fortsett`,codePlaceholder:`Skriv inn kode`,description:`Skriv inn den 6-sifrede koden fra autentiseringsappen din`,"invalid-code":`Koden du skrev inn er ugyldig`,pageTitle:"Skriv inn kode | ${clientName}",title:`Skriv inn koden din`},"mfa-totp-enrollment":{title:`Sett opp autentisering`,description:`Skann QR-koden nedenfor med autentiseringsappen din, og skriv deretter inn den 6-sifrede koden for å verifisere`,secretLabel:`Eller skriv inn denne koden manuelt:`,codePlaceholder:`Skriv inn kode`,continueButtonText:`Bekreft og aktiver`,"invalid-code":`Koden du skrev inn er ugyldig. Vennligst prøv igjen.`,"transaction-not-found":`Registreringsøkten din har utløpt, du må starte på nytt.`,pageTitle:"Sett opp autentisering | ${clientName}",unexpectedError:`Noe gikk galt. Vennligst prøv igjen.`,enrollmentComplete:`MFA-registreringen er fullført. Du kan lukke denne siden.`},"mfa-totp-challenge":{title:`Bekreft identiteten din`,description:`Skriv inn den 6-sifrede koden fra autentiseringsappen din`,codePlaceholder:`Skriv inn kode`,continueButtonText:`Fortsett`,"invalid-code":`Koden du skrev inn er ugyldig`,"transaction-not-found":`Registreringsøkten din har utløpt, du må starte på nytt.`,unexpectedError:`Noe gikk galt. Vennligst prøv igjen.`,pageTitle:"Bekreft identitet | ${clientName}"}},"mfa-phone":{"mfa-phone-challenge":{pageTitle:"Bruk telefonnummeret ditt for å logge inn | ${clientName}",title:`Bekreft identiteten din`,description:"Vi sendte en kode til ${phoneNumber}",continueButtonText:`Fortsett`,changePhoneText:`Velg et annet telefonnummer.`,smsButtonText:`Tekstmelding`,voiceButtonText:`Taleanrop`,chooseMessageTypeText:`Hvordan vil du motta koden?`,pickAuthenticatorText:`Prøv en annen metode`,logoAltText:"${companyName}",codePlaceholder:`Skriv inn kode`,"send-sms-failed":`Det oppstod et problem med å sende SMS-en`,"send-voice-failed":`Det oppstod et problem med å ringe taleanropet`,"invalid-phone-format":`Telefonnummeret kan bare inneholde sifre.`,"invalid-phone":`Det ser ut som telefonnummeret ditt ikke er gyldig. Sjekk og prøv igjen.`,"too-many-sms":`Du har overskredet maksimalt antall telefonmeldinger per time. Vent noen minutter og prøv igjen.`,"too-many-voice":`Du har overskredet maksimalt antall telefonmeldinger per time. Vent noen minutter og prøv igjen.`,"transaction-not-found":`Registreringstransaksjonen din har utløpt, du må starte på nytt.`,"no-phone":`Skriv inn et telefonnummer`,noCode:`Vennligst skriv inn bekreftelseskoden`,invalidCode:`Koden du skrev inn er ugyldig. Prøv igjen.`,unexpectedError:`Noe gikk galt. Prøv igjen.`,resendSuccess:`Vi sendte en ny kode til telefonen din`,enrollmentComplete:`MFA-registreringen er fullført. Du kan lukke denne siden.`},"mfa-phone-enrollment":{pageTitle:"Skriv inn telefonnummeret ditt for å logge inn med en telefonkode | ${clientName}",title:`Sikre kontoen din`,description:`Skriv inn landskoden og telefonnummeret vi kan sende en 6-sifret kode til:`,continueButtonText:`Fortsett`,smsButtonText:`Tekstmelding`,voiceButtonText:`Taleanrop`,chooseMessageTypeText:`Hvordan vil du motta koden?`,pickAuthenticatorText:`Prøv en annen metode`,placeholder:`Skriv inn telefonnummeret ditt`,logoAltText:"${companyName}",selectCountryCode:"Velg landskode, for øyeblikket satt til ${countryName}, ${countryCode}, +${countryPrefix}","send-sms-failed":`Det oppstod et problem med å sende SMS-en`,"send-voice-failed":`Det oppstod et problem med å ringe taleanropet`,"sms-authenticator-error":`Vi kunne ikke sende SMS-en. Prøv igjen senere.`,"invalid-phone-format":`Telefonnummeret kan bare inneholde sifre.`,"invalid-phone":`Det ser ut som telefonnummeret ditt ikke er gyldig. Sjekk og prøv igjen.`,"too-many-sms":`Du har overskredet maksimalt antall telefonmeldinger per time. Vent noen minutter og prøv igjen.`,"too-many-voice":`Du har overskredet maksimalt antall telefonmeldinger per time. Vent noen minutter og prøv igjen.`,"transaction-not-found":`Registreringstransaksjonen din har utløpt, du må starte på nytt.`,"no-phone":`Skriv inn et telefonnummer`,"phone-is-too-short":`Telefonnummeret er for kort`,"phone-is-too-long":`Telefonnummeret er for langt`}},"mfa-login-options":{"mfa-login-options":{pageTitle:"Velg bekreftelsesmetode | ${clientName}",title:`Velg bekreftelsesmetode`,description:`Velg hvordan du vil bekrefte identiteten din`,authenticatorAppLabel:`Autentiseringsapp`,authenticatorAppDescription:`Bruk autentiseringsappen din for å få en bekreftelseskode`,smsLabel:`Tekstmelding`,smsDescription:`Få en bekreftelseskode sendt til telefonen din`,passkeyLabel:`Passnøkkel`,passkeyDescription:`Bruk enhetens biometri eller sikkerhetsnøkkel`}},"mfa-push":{"mfa-push":{description:`Vi sendte en varsling til enheten din`,pageTitle:"Push-varsling | ${clientName}",resendText:`Send varsling på nytt`,title:`Godkjenn forespørselen`,useCodeText:`Skriv inn kode manuelt`}},"mfa-recovery-code":{"mfa-recovery-code":{buttonText:`Fortsett`,codePlaceholder:`Gjenopprettingskode`,description:`Skriv inn en av gjenopprettingskodene dine`,"invalid-code":`Gjenopprettingskoden du skrev inn er ugyldig`,pageTitle:"Gjenopprettingskode | ${clientName}",title:`Skriv inn gjenopprettingskode`}},"mfa-voice":{"mfa-voice":{buttonText:`Ring meg`,codePlaceholder:`Skriv inn kode`,description:"Vi ringer ${phoneNumber} med koden din","invalid-code":`Koden du skrev inn er ugyldig`,pageTitle:"Taleanrop | ${clientName}",title:`Motta en telefonsamtale`}},"mfa-webauthn":{"mfa-webauthn":{buttonText:`Prøv igjen`,description:`Sett inn sikkerhetsnøkkelen din og følg instruksjonene`,pageTitle:"Sikkerhetsnøkkel | ${clientName}",title:`Bruk sikkerhetsnøkkelen din`}},passkeys:$s,organizations:ec,"reset-password":{"reset-password":{backToLoginText:`Tilbake til innlogging`,buttonText:`Fortsett`,codeExpired:`Koden for tilbakestilling av passord har utløpt. Vennligst be om en ny.`,confirmPasswordLabel:`Bekreft passord`,confirmPasswordPlaceholder:`Bekreft passord`,description:`Oppgi e-postadressen din for å tilbakestille passordet`,emailPlaceholder:`E-postadresse`,failed:`Tilbakestilling av passord mislyktes. Vennligst prøv igjen.`,"invalid-email-format":`Ugyldig e-postadresse`,"no-email":`Vennligst oppgi en e-postadresse`,pageTitle:"Tilbakestill passord | ${clientName}",passwordLabel:`Nytt passord`,passwordPlaceholder:`Nytt passord`,passwordTooWeak:`Passordet er for svakt`,passwordsDidntMatch:`Passordene samsvarer ikke`,successDescription:`Vi har sendt en lenke for tilbakestilling av passord til e-postadressen din.`,successTitle:`Sjekk e-posten din`,title:`Har du glemt passordet?`,"user-not-found":`Brukeren ble ikke funnet`},"reset-password-code":{backToLoginText:`Tilbake til innlogging`,buttonText:`Tilbakestill passord`,codeLabel:`Tilbakestillingskode`,codePlaceholder:`Skriv inn 6-sifret kode`,confirmPasswordLabel:`Bekreft passord`,confirmPasswordPlaceholder:`Bekreft passord`,defaultDescription:`Skriv inn koden som ble sendt til e-posten din og velg et nytt passord`,description:"Vi sendte en kode til ${email}",failed:`Tilbakestilling av passord mislyktes. Vennligst prøv igjen.`,invalidCode:`Koden du skrev inn er ugyldig eller har utløpt`,noCode:`Vennligst skriv inn tilbakestillingskoden`,pageTitle:"Skriv inn tilbakestillingskode | ${clientName}",passwordLabel:`Nytt passord`,passwordPlaceholder:`Nytt passord`,passwordTooWeak:`Passordet er for svakt`,passwordsDidntMatch:`Passordene samsvarer ikke`,resendFailed:`Kunne ikke sende koden på nytt. Vennligst prøv igjen.`,resendSuccess:`En ny kode har blitt sendt til e-posten din`,resendText:`Send kode på nytt`,sessionExpired:`Økten din har utløpt. Vennligst prøv igjen.`,title:`Skriv inn tilbakestillingskode`}},signup:tc,"signup-id":{"signup-id":{buttonText:`Fortsett`,description:`Registrer deg for å fortsette`,"email-already-exists":`E-postadressen er allerede registrert`,emailPlaceholder:`E-postadresse`,federatedConnectionButtonText:"Fortsett med ${connectionName}","invalid-email-format":`Ugyldig e-postadresse`,loginActionLinkText:`Logg inn`,loginActionText:`Har du allerede en konto?`,"no-email":`Vennligst oppgi en e-postadresse`,pageTitle:"Registrer deg | ${clientName}",phonePlaceholder:`Telefonnummer`,separatorText:`eller`,title:`Opprett kontoen din`,usernamePlaceholder:`Brukernavn`}},"signup-password":{"signup-password":{buttonText:`Fortsett`,description:`Opprett et passord for å fortsette`,hidePasswordText:`Skjul passord`,"no-password":`Passord er påkrevd`,pageTitle:"Registrer deg | ${clientName}","password-policy-not-met":`Passordet oppfyller ikke kravene`,"password-too-weak":`Passordet er for svakt`,passwordPlaceholder:`Passord`,showPasswordText:`Vis passord`,title:`Opprett passordet ditt`}},"sms-otp-challenge":{"sms-otp-challenge":{buttonText:`Fortsett`,codeLabel:`Bekreftelseskode`,codePlaceholder:`Skriv inn kode`,defaultDescription:`Skriv inn bekreftelseskoden som ble sendt til telefonen din`,description:"Vi sendte en kode til ${username}","invalid-code":`Ugyldig kode`,noCode:`Vennligst skriv inn bekreftelseskoden`,pageTitle:"Skriv inn kode | ${clientName}",resendText:`Send kode på nytt`,sessionExpired:`Økten din har utløpt. Vennligst prøv igjen.`,title:`Sjekk telefonen din`,unexpectedError:`En uventet feil oppstod`}},status:nc},ic=c({common:()=>ac,consent:()=>oc,default:()=>mc,invitation:()=>sc,login:()=>cc,mfa:()=>lc,organizations:()=>dc,passkeys:()=>uc,signup:()=>fc,status:()=>pc}),ac={common:{alertListTitle:`Powiadomienia`,backText:`Wróć`,cancelText:`Anuluj`,closeText:`Zamknij`,contactSupportText:`Potrzebujesz pomocy?`,continueText:`Kontynuuj`,copyrightText:"© ${currentYear} ${companyName}",errorText:`Coś poszło nie tak. Spróbuj ponownie.`,hidePasswordText:`Ukryj hasło`,loadingText:`Ładowanie...`,orText:`lub`,privacyPolicyText:`Polityka prywatności`,showPasswordText:`Pokaż hasło`,termsOfServiceText:`Regulamin`,termsShortText:`Zasady`,tryAgainText:`Spróbuj ponownie`}},oc={consent:{buttonText:`Zaakceptuj`,cancelButtonText:`Odmów`,description:"${clientName} prosi o dostęp do Twojego konta",pageTitle:"Autoryzacja | ${clientName}",scopesTitle:"Umożliwi to ${clientName}:",title:"Autoryzuj ${clientName}"}},sc={invitation:{acceptButtonText:`Przyjmij zaproszenie`,description:"${inviterName} zaprosił Cię do dołączenia do ${organizationName} w ${clientName}",pageTitle:"Zaproszenie | ${clientName}",title:`Otrzymałeś zaproszenie`}},cc={login:{alertListTitle:`Powiadomienia`,buttonText:`Kontynuuj`,description:"Zaloguj się do ${clientName}.",editEmailText:`Edytuj`,emailPlaceholder:`Adres e-mail`,enterACodeBtn:`Zaloguj się kodem`,federatedConnectionButtonText:"Kontynuuj z ${connectionName}",footerLinkText:`Zarejestruj się`,footerText:`Nie masz konta?`,forgotPasswordText:`Zapomniałeś hasła?`,hidePasswordText:`Ukryj hasło`,invalidEmail:`Nieprawidłowy adres e-mail`,invalidIdentifier:`Nieprawidłowy adres e-mail lub nazwa użytkownika`,invitationDescription:"Zaloguj się, aby przyjąć zaproszenie od ${inviterName} do dołączenia do ${companyName} w ${clientName}.",invitationTitle:`Otrzymałeś zaproszenie!`,logoAltText:"${companyName}","no-email":`Wprowadź adres e-mail`,"no-password":`Hasło jest wymagane`,pageTitle:"Logowanie | ${clientName}",passwordLoginNotAvailable:`Logowanie hasłem jest niedostępne`,passwordPlaceholder:`Hasło`,phonePlaceholder:`Numer telefonu`,separatorText:`lub`,sessionExpired:`Twoja sesja wygasła. Spróbuj ponownie.`,showPasswordText:`Pokaż hasło`,signupActionLinkText:`Zarejestruj się`,signupActionText:`Nie masz konta?`,title:`Witamy`,tooManyFailedLogins:`Zbyt wiele nieudanych prób logowania. Spróbuj ponownie później.`,unverifiedEmail:`Zweryfikuj swój adres e-mail przed zalogowaniem`,userAccountDoesNotExist:`Konto użytkownika nie istnieje`,usernamePlaceholder:`Nazwa użytkownika lub adres e-mail`,usernameTooLong:"Nazwa użytkownika musi mieć maksymalnie ${max} znaków",usernameTooShort:"Nazwa użytkownika musi mieć co najmniej ${min} znaków",wrongCredentials:`Nieprawidłowa nazwa użytkownika lub hasło`,passkeyButtonText:`Zaloguj się za pomocą passkey`}},lc={mfa:{backupCodeText:`Użyj kodu zapasowego`,description:`Wybierz metodę weryfikacji`,pageTitle:"Uwierzytelnianie wieloskładnikowe | ${clientName}",title:`Zweryfikuj swoją tożsamość`}},uc={"passkey-enrollment-nudge":{title:`Zabezpiecz swoje konto kluczem dostępu`,description:`Klucze dostępu wykorzystują biometrię lub PIN urządzenia, aby logować się szybciej i bezpieczniej.`,enrollButtonText:`Skonfiguruj klucz dostępu`,snoozeButtonText:`Może później`,optOutLinkText:`Nie pokazuj ponownie`,pageTitle:"Konfiguracja Klucza Dostępu | ${clientName}"},"passkey-enrollment":{title:`Utwórz klucz dostępu`,description:`Postępuj zgodnie z instrukcjami przeglądarki, aby utworzyć klucz dostępu dla tego konta.`,errorMessage:`Nie udało się utworzyć klucza dostępu. Spróbuj ponownie.`,cancelLinkText:`Pomiń na razie`,retryButtonText:`Spróbuj ponownie`,enrollmentComplete:`Twój klucz dostępu został pomyślnie skonfigurowany. Możesz zamknąć tę stronę.`,pageTitle:"Tworzenie Klucza Dostępu | ${clientName}"},"passkey-challenge":{title:`Zaloguj się za pomocą passkey`,description:`Postępuj zgodnie z instrukcjami przeglądarki, aby zweryfikować swoją tożsamość.`,errorMessage:`Uwierzytelnianie za pomocą passkey nie powiodło się. Spróbuj ponownie.`,cancelLinkText:`Powrót do logowania`,retryButtonText:`Spróbuj ponownie`,pageTitle:"Logowanie za pomocą passkey | ${clientName}"}},dc={organizations:{description:`Wybierz organizację, do której chcesz się zalogować`,pageTitle:"Wybierz organizację | ${clientName}",searchPlaceholder:`Szukaj organizacji`,title:`Wybierz swoją organizację`}},fc={signup:{buttonText:`Zarejestruj się`,confirmPasswordPlaceholder:`Potwierdź hasło`,description:`Zarejestruj się, aby kontynuować`,"email-already-exists":`Ten adres e-mail jest już zarejestrowany`,emailPlaceholder:`Adres e-mail`,federatedConnectionButtonText:"Kontynuuj z ${connectionName}",hidePasswordText:`Ukryj hasło`,"invalid-email-format":`Nieprawidłowy adres e-mail`,loginActionLinkText:`Zaloguj się`,loginActionText:`Masz już konto?`,"no-email":`Wprowadź adres e-mail`,"no-password":`Hasło jest wymagane`,"no-username":`Nazwa użytkownika jest wymagana`,pageTitle:"Rejestracja | ${clientName}",passwordPlaceholder:`Hasło`,passwordsDidntMatch:`Hasła nie są zgodne`,phonePlaceholder:`Numer telefonu`,privacyPolicyLinkText:`Polityka prywatności`,separatorText:`lub`,sessionExpired:`Twoja sesja wygasła. Spróbuj ponownie.`,showPasswordText:`Pokaż hasło`,termsOfServiceLinkText:`Regulamin`,termsText:`Rejestrując się, akceptujesz nasz`,title:`Utwórz konto`,"username-already-exists":`Ta nazwa użytkownika jest już zajęta`,usernamePlaceholder:`Nazwa użytkownika`,verifyEmailText:`Sprawdź swoją pocztę, aby zweryfikować konto`}},pc={status:{continueButtonText:`Kontynuuj`,errorTitle:`Błąd`,pageTitle:"Status | ${clientName}",successTitle:`Sukces`,title:`Status`}},mc={common:ac,consent:oc,"device-flow":{"device-flow":{buttonText:`Kontynuuj`,codePlaceholder:`Wprowadź kod`,description:`Wprowadź kod wyświetlony na Twoim urządzeniu`,"expired-code":`Kod wygasł`,"invalid-code":`Wprowadzony kod jest nieprawidłowy`,pageTitle:"Aktywacja urządzenia | ${clientName}",title:`Aktywuj swoje urządzenie`}},"email-otp-challenge":{"email-otp-challenge":{buttonText:`Kontynuuj`,codeLabel:`Kod weryfikacyjny`,codePlaceholder:`Wprowadź kod`,defaultDescription:`Wprowadź kod weryfikacyjny wysłany na Twój adres e-mail`,description:"Wysłaliśmy kod na ${email}","invalid-code":`Nieprawidłowy kod`,noCode:`Wprowadź kod weryfikacyjny`,pageTitle:"Wprowadź kod | ${clientName}",resendText:`Wyślij ponownie kod`,sessionExpired:`Twoja sesja wygasła. Spróbuj ponownie.`,title:`Sprawdź swoją pocztę`,unexpectedError:`Wystąpił nieoczekiwany błąd`}},"email-verification":{"email-verification":{description:"Wysłaliśmy wiadomość na ${email}",pageTitle:"Weryfikacja e-mail | ${clientName}",resendText:`Wyślij ponownie e-mail`,successDescription:`Twój adres e-mail został pomyślnie zweryfikowany.`,successTitle:`E-mail zweryfikowany`,title:`Zweryfikuj swój adres e-mail`}},invitation:sc,login:cc,"login-id":{"login-id":{alertListTitle:`Powiadomienia`,"auth0-users-validation":`Coś poszło nie tak, spróbuj ponownie później`,"authentication-failure":`Przepraszamy, wystąpił błąd podczas logowania`,buttonText:`Kontynuuj`,"captcha-client-failure":`Nie udało się załadować weryfikacji bezpieczeństwa. Spróbuj ponownie. (Kod błędu: #{errorCode})`,"captcha-validation-failure":`Przepraszamy, wystąpił błąd podczas weryfikacji captcha. Spróbuj ponownie.`,captchaCodePlaceholder:`Wprowadź kod widoczny powyżej`,"custom-script-error-code":`Coś poszło nie tak, spróbuj ponownie później.`,description:"Zaloguj się do ${clientName}.",editEmailText:`Edytuj`,emailPlaceholder:`Adres e-mail`,federatedConnectionButtonText:"Kontynuuj z ${connectionName}",footerLinkText:`Zarejestruj się`,footerText:`Nie masz konta?`,forgotPasswordText:`Zapomniałeś hasła?`,hidePasswordText:`Ukryj hasło`,"invalid-captcha":`Rozwiąż zadanie, aby potwierdzić, że nie jesteś robotem.`,"invalid-code":`Nieprawidłowy kod`,"invalid-connection":`Nieprawidłowe połączenie`,"invalid-email-format":`Nieprawidłowy adres e-mail`,"invalid-email-phone":`Wprowadź prawidłowy adres e-mail lub numer telefonu. Numery telefonów muszą zawierać kod kraju.`,"invalid-email-phone-username":`Wprowadź prawidłowy adres e-mail, numer telefonu lub nazwę użytkownika. Numery telefonów muszą zawierać kod kraju.`,"invalid-email-username":`Wprowadź prawidłowy adres e-mail lub nazwę użytkownika`,"invalid-expired-code":`Nieprawidłowy lub wygasły kod użytkownika`,"invalid-login-id":`Wprowadzono nieprawidłowy identyfikator logowania`,"invalid-phone-username":`Wprowadź prawidłowy numer telefonu lub nazwę użytkownika. Numery telefonów muszą zawierać kod kraju.`,"invalid-recaptcha":`Zaznacz pole wyboru, aby potwierdzić, że nie jesteś robotem.`,"invalid-username":"Nazwa użytkownika może zawierać tylko znaki alfanumeryczne lub: '${characters}'. Nazwa użytkownika powinna mieć od ${min} do ${max} znaków.",invitationDescription:"Zaloguj się, aby przyjąć zaproszenie od ${inviterName} do dołączenia do ${companyName} w ${clientName}.",invitationTitle:`Otrzymałeś zaproszenie!`,"ip-blocked":`Wykryliśmy podejrzaną aktywność logowania i dalsze próby zostaną zablokowane. Skontaktuj się z administratorem.`,logoAltText:"${companyName}","no-db-connection":`Nieprawidłowe połączenie`,"no-email":`Wprowadź adres e-mail`,"no-email-phone":`Adres e-mail lub numer telefonu jest wymagany`,"no-email-phone-username":`Numer telefonu, nazwa użytkownika lub adres e-mail jest wymagany`,"no-email-username":`Adres e-mail lub nazwa użytkownika jest wymagany`,"no-password":`Hasło jest wymagane`,"no-phone":`Wprowadź numer telefonu`,"no-phone-username":`Numer telefonu lub nazwa użytkownika jest wymagany`,"no-username":`Nazwa użytkownika jest wymagana`,pageTitle:"Logowanie | ${clientName}","password-breached":`Wykryliśmy potencjalny problem z bezpieczeństwem tego konta. Aby chronić Twoje konto, zablokowano to logowanie. Zresetuj hasło, aby kontynuować.`,passwordPlaceholder:`Hasło`,phoneOrEmailPlaceholder:`E-mail lub numer telefonu`,phoneOrUsernameOrEmailPlaceholder:`Telefon, nazwa użytkownika lub e-mail`,phoneOrUsernamePlaceholder:`Numer telefonu lub nazwa użytkownika`,phonePlaceholder:`Numer telefonu`,"same-user-login":`Zbyt wiele prób logowania dla tego użytkownika. Poczekaj chwilę i spróbuj ponownie.`,selectCountryCode:"Wybierz kod kraju, aktualnie ustawiony na ${countryName}, ${countryCode}, +${countryPrefix}",separatorText:`lub`,sessionExpired:`Twoja sesja wygasła. Spróbuj ponownie.`,showPasswordText:`Pokaż hasło`,signupActionLinkText:`Zarejestruj się`,signupActionText:`Nie masz konta?`,termsAndConditionsTemplate:'Kontynuując, akceptujesz nasze <a href="${termsAndConditionsUrl}" target="_blank" rel="noopener noreferrer">Zasady i warunki</a>.',title:`Witamy`,"user-blocked":`Twoje konto zostało zablokowane po wielu kolejnych nieudanych próbach logowania.`,userAccountDoesNotExist:`Konto użytkownika nie istnieje`,usernameOnlyPlaceholder:`Nazwa użytkownika`,usernameOrEmailPlaceholder:`Nazwa użytkownika lub adres e-mail`,usernamePlaceholder:`Nazwa użytkownika`,usernameTooLong:"Nazwa użytkownika musi mieć maksymalnie ${max} znaków",usernameTooShort:"Nazwa użytkownika musi mieć co najmniej ${min} znaków","wrong-credentials":`Nieprawidłowa nazwa użytkownika lub hasło`,"wrong-email-credentials":`Nieprawidłowy adres e-mail lub hasło`,"wrong-email-phone-credentials":`Nieprawidłowy adres e-mail, numer telefonu lub hasło. Numery telefonów muszą zawierać kod kraju.`,"wrong-email-phone-username-credentials":`Nieprawidłowy adres e-mail, numer telefonu, nazwa użytkownika lub hasło. Numery telefonów muszą zawierać kod kraju.`,"wrong-email-username-credentials":`Nieprawidłowy adres e-mail, nazwa użytkownika lub hasło`,"wrong-phone-credentials":`Nieprawidłowy numer telefonu lub hasło`,"wrong-phone-username-credentials":`Nieprawidłowy numer telefonu, nazwa użytkownika lub hasło. Numery telefonów muszą zawierać kod kraju.`,"wrong-username-credentials":`Nieprawidłowa nazwa użytkownika lub hasło`,passkeyButtonText:`Zaloguj się za pomocą passkey`}},"login-password":{"login-password":{buttonText:`Zaloguj się`,description:"Zaloguj się do ${clientName}",forgotPasswordText:`Zapomniałeś hasła?`,hidePasswordText:`Ukryj hasło`,"no-password":`Hasło jest wymagane`,pageTitle:"Logowanie | ${clientName}","password-breached":`Wykryliśmy potencjalny problem z bezpieczeństwem tego konta. Aby chronić Twoje konto, zablokowano to logowanie. Zresetuj hasło, aby kontynuować.`,passwordPlaceholder:`Hasło`,showPasswordText:`Pokaż hasło`,signingInAs:"Logujesz się jako ${email}",title:`Wprowadź hasło`,unverifiedEmail:`Zweryfikuj swój adres e-mail przed zalogowaniem`,"user-blocked":`Twoje konto zostało zablokowane po wielu kolejnych nieudanych próbach logowania.`,"wrong-credentials":`Nieprawidłowe hasło`}},"login-passwordless":{"login-passwordless":{authMethodEmail:`e-mail`,authMethodEmailOrPhone:`e-mail lub numer telefonu`,authMethodPhone:`numer telefonu`,description:"Zaloguj się za pomocą swojego ${authMethod}",emailOrPhonePlaceholder:`Adres e-mail lub numer telefonu`,emailPlaceholder:`Adres e-mail`,invalidEmail:`Wprowadź prawidłowy adres e-mail`,invalidIdentifier:`Wprowadź prawidłowy adres e-mail lub numer telefonu`,invalidPhone:`Wprowadź prawidłowy numer telefonu z kodem kraju`,noEmail:`Wprowadź swój adres e-mail`,noPhone:`Wprowadź swój numer telefonu`,phonePlaceholder:`Numer telefonu`,sessionExpired:`Twoja sesja wygasła. Spróbuj ponownie.`,title:`Zaloguj się kodem`,userAccountDoesNotExist:`Konto użytkownika nie istnieje`}},"magic-link-sent":{"magic-link-sent":{defaultDescription:`Kliknij link w wiadomości e-mail, aby się zalogować`,description:"Wysłaliśmy link na ${username}. Kliknij go, aby się zalogować.",resendText:`Wyślij ponownie link`,spamText:`Nie otrzymałeś wiadomości? Sprawdź folder spam.`,title:`Sprawdź swoją pocztę`}},mfa:lc,"mfa-email":{"mfa-email":{buttonText:`Kontynuuj`,codePlaceholder:`Wprowadź kod`,description:"Wysłaliśmy kod na ${email}","invalid-code":`Wprowadzony kod jest nieprawidłowy`,pageTitle:"Weryfikacja e-mail | ${clientName}",resendText:`Wyślij ponownie kod`,title:`Sprawdź swoją pocztę`}},"mfa-otp":{"mfa-otp":{buttonText:`Kontynuuj`,codePlaceholder:`Wprowadź kod`,description:`Wprowadź 6-cyfrowy kod z aplikacji uwierzytelniającej`,"invalid-code":`Wprowadzony kod jest nieprawidłowy`,pageTitle:"Wprowadź kod | ${clientName}",title:`Wprowadź swój kod`},"mfa-totp-enrollment":{title:`Skonfiguruj aplikację uwierzytelniającą`,description:`Zeskanuj poniższy kod QR za pomocą aplikacji uwierzytelniającej, a następnie wprowadź 6-cyfrowy kod w celu weryfikacji`,secretLabel:`Lub wprowadź ten kod ręcznie:`,codePlaceholder:`Wprowadź kod`,continueButtonText:`Zweryfikuj i aktywuj`,"invalid-code":`Wprowadzony kod jest nieprawidłowy. Spróbuj ponownie.`,"transaction-not-found":`Twoja transakcja rejestracji wygasła, musisz zacząć od nowa.`,pageTitle:"Konfiguracja uwierzytelniania | ${clientName}",unexpectedError:`Coś poszło nie tak. Spróbuj ponownie.`,enrollmentComplete:`Rejestracja MFA została zakończona. Możesz zamknąć tę stronę.`},"mfa-totp-challenge":{title:`Zweryfikuj swoją tożsamość`,description:`Wprowadź 6-cyfrowy kod z aplikacji uwierzytelniającej`,codePlaceholder:`Wprowadź kod`,continueButtonText:`Kontynuuj`,"invalid-code":`Wprowadzony kod jest nieprawidłowy`,"transaction-not-found":`Twoja transakcja rejestracji wygasła, musisz zacząć od nowa.`,unexpectedError:`Coś poszło nie tak. Spróbuj ponownie.`,pageTitle:"Weryfikacja tożsamości | ${clientName}"}},"mfa-phone":{"mfa-phone-challenge":{pageTitle:"Użyj swojego numeru telefonu, aby się zalogować | ${clientName}",title:`Zweryfikuj swoją tożsamość`,description:"Wysłaliśmy kod na ${phoneNumber}",continueButtonText:`Kontynuuj`,changePhoneText:`Wybierz inny numer telefonu.`,smsButtonText:`Wiadomość tekstowa`,voiceButtonText:`Połączenie głosowe`,chooseMessageTypeText:`Jak chcesz otrzymać kod?`,pickAuthenticatorText:`Wypróbuj inną metodę`,logoAltText:"${companyName}",codePlaceholder:`Wpisz kod`,"send-sms-failed":`Wystąpił problem z wysłaniem SMS-a`,"send-voice-failed":`Wystąpił problem z wykonaniem połączenia głosowego`,"invalid-phone-format":`Numer telefonu może zawierać tylko cyfry.`,"invalid-phone":`Wygląda na to, że Twój numer telefonu jest nieprawidłowy. Sprawdź i spróbuj ponownie.`,"too-many-sms":`Przekroczono maksymalną liczbę wiadomości telefonicznych na godzinę. Poczekaj kilka minut i spróbuj ponownie.`,"too-many-voice":`Przekroczono maksymalną liczbę połączeń telefonicznych na godzinę. Poczekaj kilka minut i spróbuj ponownie.`,"transaction-not-found":`Twoja transakcja rejestracji wygasła, musisz zacząć od nowa.`,"no-phone":`Wpisz numer telefonu`,noCode:`Wprowadź kod weryfikacyjny`,invalidCode:`Wprowadzony kod jest nieprawidłowy. Spróbuj ponownie.`,unexpectedError:`Coś poszło nie tak. Spróbuj ponownie.`,resendSuccess:`Wysłaliśmy nowy kod na Twój telefon`,enrollmentComplete:`Rejestracja MFA została zakończona. Możesz zamknąć tę stronę.`},"mfa-phone-enrollment":{pageTitle:"Wpisz swój numer telefonu, aby zalogować się kodem telefonicznym | ${clientName}",title:`Zabezpiecz swoje konto`,description:`Wpisz kod kraju i numer telefonu, na który możemy wysłać 6-cyfrowy kod:`,continueButtonText:`Kontynuuj`,smsButtonText:`Wiadomość tekstowa`,voiceButtonText:`Połączenie głosowe`,chooseMessageTypeText:`Jak chcesz otrzymać kod?`,pickAuthenticatorText:`Wypróbuj inną metodę`,placeholder:`Wpisz swój numer telefonu`,logoAltText:"${companyName}",selectCountryCode:"Wybierz kod kraju, aktualnie ustawiony na ${countryName}, ${countryCode}, +${countryPrefix}","send-sms-failed":`Wystąpił problem z wysłaniem SMS-a`,"send-voice-failed":`Wystąpił problem z wykonaniem połączenia głosowego`,"sms-authenticator-error":`Nie udało się wysłać SMS-a. Spróbuj ponownie później.`,"invalid-phone-format":`Numer telefonu może zawierać tylko cyfry.`,"invalid-phone":`Wygląda na to, że Twój numer telefonu jest nieprawidłowy. Sprawdź i spróbuj ponownie.`,"too-many-sms":`Przekroczono maksymalną liczbę wiadomości telefonicznych na godzinę. Poczekaj kilka minut i spróbuj ponownie.`,"too-many-voice":`Przekroczono maksymalną liczbę połączeń telefonicznych na godzinę. Poczekaj kilka minut i spróbuj ponownie.`,"transaction-not-found":`Twoja transakcja rejestracji wygasła, musisz zacząć od nowa.`,"no-phone":`Wpisz numer telefonu`,"phone-is-too-short":`Numer telefonu jest za krótki`,"phone-is-too-long":`Numer telefonu jest za długi`}},"mfa-login-options":{"mfa-login-options":{pageTitle:"Wybierz metodę weryfikacji | ${clientName}",title:`Wybierz metodę weryfikacji`,description:`Wybierz, w jaki sposób chcesz zweryfikować swoją tożsamość`,authenticatorAppLabel:`Aplikacja uwierzytelniająca`,authenticatorAppDescription:`Użyj aplikacji uwierzytelniającej, aby uzyskać kod weryfikacyjny`,smsLabel:`Wiadomość tekstowa`,smsDescription:`Otrzymaj kod weryfikacyjny wysłany na swój telefon`,passkeyLabel:`Klucz dostępu`,passkeyDescription:`Użyj biometrii urządzenia lub klucza bezpieczeństwa`}},"mfa-push":{"mfa-push":{description:`Wysłaliśmy powiadomienie na Twoje urządzenie`,pageTitle:"Powiadomienie push | ${clientName}",resendText:`Wyślij ponownie powiadomienie`,title:`Zatwierdź żądanie`,useCodeText:`Wprowadź kod ręcznie`}},"mfa-recovery-code":{"mfa-recovery-code":{buttonText:`Kontynuuj`,codePlaceholder:`Kod odzyskiwania`,description:`Wprowadź jeden z kodów odzyskiwania`,"invalid-code":`Wprowadzony kod odzyskiwania jest nieprawidłowy`,pageTitle:"Kod odzyskiwania | ${clientName}",title:`Wprowadź kod odzyskiwania`}},"mfa-voice":{"mfa-voice":{buttonText:`Zadzwoń do mnie`,codePlaceholder:`Wprowadź kod`,description:"Zadzwonimy na ${phoneNumber} z Twoim kodem","invalid-code":`Wprowadzony kod jest nieprawidłowy`,pageTitle:"Połączenie głosowe | ${clientName}",title:`Odbierz połączenie telefoniczne`}},"mfa-webauthn":{"mfa-webauthn":{buttonText:`Spróbuj ponownie`,description:`Włóż klucz bezpieczeństwa i postępuj zgodnie z instrukcjami`,pageTitle:"Klucz bezpieczeństwa | ${clientName}",title:`Użyj klucza bezpieczeństwa`}},passkeys:uc,organizations:dc,"reset-password":{"reset-password":{backToLoginText:`Wróć do logowania`,buttonText:`Kontynuuj`,codeExpired:`Kod resetu hasła wygasł. Poproś o nowy.`,confirmPasswordLabel:`Potwierdź hasło`,confirmPasswordPlaceholder:`Potwierdź hasło`,description:`Wprowadź swój adres e-mail, aby zresetować hasło`,emailPlaceholder:`Adres e-mail`,failed:`Reset hasła nie powiódł się. Spróbuj ponownie.`,"invalid-email-format":`Nieprawidłowy adres e-mail`,"no-email":`Wprowadź adres e-mail`,pageTitle:"Resetowanie hasła | ${clientName}",passwordLabel:`Nowe hasło`,passwordPlaceholder:`Nowe hasło`,passwordTooWeak:`Hasło jest zbyt słabe`,passwordsDidntMatch:`Hasła nie są zgodne`,successDescription:`Wysłaliśmy link do resetowania hasła na Twój adres e-mail.`,successTitle:`Sprawdź swoją pocztę`,title:`Zapomniałeś hasła?`,"user-not-found":`Nie znaleziono użytkownika`},"reset-password-code":{backToLoginText:`Wróć do logowania`,buttonText:`Zresetuj hasło`,codeLabel:`Kod resetowania`,codePlaceholder:`Wprowadź 6-cyfrowy kod`,confirmPasswordLabel:`Potwierdź hasło`,confirmPasswordPlaceholder:`Potwierdź hasło`,defaultDescription:`Wprowadź kod wysłany na Twój e-mail i wybierz nowe hasło`,description:"Wysłaliśmy kod na ${email}",failed:`Reset hasła nie powiódł się. Spróbuj ponownie.`,invalidCode:`Wprowadzony kod jest nieprawidłowy lub wygasł`,noCode:`Wprowadź kod resetowania`,pageTitle:"Wprowadź kod resetowania | ${clientName}",passwordLabel:`Nowe hasło`,passwordPlaceholder:`Nowe hasło`,passwordTooWeak:`Hasło jest zbyt słabe`,passwordsDidntMatch:`Hasła nie są zgodne`,resendFailed:`Nie udało się ponownie wysłać kodu. Spróbuj ponownie.`,resendSuccess:`Nowy kod został wysłany na Twój e-mail`,resendText:`Wyślij kod ponownie`,sessionExpired:`Twoja sesja wygasła. Spróbuj ponownie.`,title:`Wprowadź kod resetowania`}},signup:fc,"signup-id":{"signup-id":{buttonText:`Kontynuuj`,description:`Zarejestruj się, aby kontynuować`,"email-already-exists":`Ten adres e-mail jest już zarejestrowany`,emailPlaceholder:`Adres e-mail`,federatedConnectionButtonText:"Kontynuuj z ${connectionName}","invalid-email-format":`Nieprawidłowy adres e-mail`,loginActionLinkText:`Zaloguj się`,loginActionText:`Masz już konto?`,"no-email":`Wprowadź adres e-mail`,pageTitle:"Rejestracja | ${clientName}",phonePlaceholder:`Numer telefonu`,separatorText:`lub`,title:`Utwórz konto`,usernamePlaceholder:`Nazwa użytkownika`}},"signup-password":{"signup-password":{buttonText:`Kontynuuj`,description:`Utwórz swoje hasło`,hidePasswordText:`Ukryj hasło`,"no-password":`Hasło jest wymagane`,pageTitle:"Rejestracja | ${clientName}","password-policy-not-met":`Hasło nie spełnia wymagań`,"password-too-weak":`Hasło jest zbyt słabe`,passwordPlaceholder:`Hasło`,showPasswordText:`Pokaż hasło`,title:`Utwórz hasło`}},"sms-otp-challenge":{"sms-otp-challenge":{buttonText:`Kontynuuj`,codeLabel:`Kod weryfikacyjny`,codePlaceholder:`Wprowadź kod`,defaultDescription:`Wprowadź kod weryfikacyjny wysłany na Twój telefon`,description:"Wysłaliśmy kod na ${username}","invalid-code":`Nieprawidłowy kod`,noCode:`Wprowadź kod weryfikacyjny`,pageTitle:"Wprowadź kod | ${clientName}",resendText:`Wyślij ponownie kod`,sessionExpired:`Twoja sesja wygasła. Spróbuj ponownie.`,title:`Sprawdź swój telefon`,unexpectedError:`Wystąpił nieoczekiwany błąd`}},status:pc},hc=c({common:()=>gc,consent:()=>_c,default:()=>Tc,invitation:()=>vc,login:()=>yc,mfa:()=>bc,organizations:()=>Sc,passkeys:()=>xc,signup:()=>Cc,status:()=>wc}),gc={common:{alertListTitle:`Meddelanden`,backText:`Gå tillbaka`,cancelText:`Gå tillbaka`,closeText:`Stäng`,contactSupportText:`Behöver du hjälp?`,continueText:`Fortsätt`,copyrightText:"© ${currentYear} ${companyName}",errorText:`Något gick fel. Vänligen försök igen.`,hidePasswordText:`Dölj lösenord`,loadingText:`Laddar...`,orText:`eller`,privacyPolicyText:`Integritetspolicy`,showPasswordText:`Visa lösenord`,termsOfServiceText:`Användarvillkor`,termsShortText:`Villkor`,tryAgainText:`Försök igen`}},_c={consent:{buttonText:`Godkänn`,cancelButtonText:`Neka`,description:"${clientName} begär åtkomst till ditt konto",pageTitle:"Auktorisera | ${clientName}",scopesTitle:"Detta ger ${clientName} tillåtelse att:",title:"Auktorisera ${clientName}"}},vc={invitation:{acceptButtonText:`Acceptera inbjudan`,description:"${inviterName} har bjudit in dig att gå med i ${organizationName} på ${clientName}",pageTitle:"Inbjudan | ${clientName}",title:`Du har blivit inbjuden`}},yc={login:{alertListTitle:`Meddelanden`,buttonText:`Fortsätt`,description:"Logga in på ${clientName}.",editEmailText:`Redigera`,emailPlaceholder:`E-postadress`,enterACodeBtn:`Logga in med en kod`,federatedConnectionButtonText:"Fortsätt med ${connectionName}",footerLinkText:`Registrera dig`,footerText:`Har du inget konto?`,forgotPasswordText:`Har du glömt lösenordet?`,hidePasswordText:`Dölj lösenord`,invalidEmail:`Ogiltig e-postadress`,invalidIdentifier:`Ogiltig e-postadress eller användarnamn`,invitationDescription:"Logga in för att acceptera ${inviterName}s inbjudan att gå med i ${companyName} på ${clientName}.",invitationTitle:`Du har blivit inbjuden!`,logoAltText:"${companyName}","no-email":`Vänligen ange en e-postadress`,"no-password":`Lösenord krävs`,pageTitle:"Logga in | ${clientName}",passwordLoginNotAvailable:`Lösenordsinloggning är inte tillgänglig`,passwordPlaceholder:`Lösenord`,phonePlaceholder:`Telefonnummer`,separatorText:`eller`,sessionExpired:`Din session har gått ut. Försök igen.`,showPasswordText:`Visa lösenord`,signupActionLinkText:`Registrera dig`,signupActionText:`Har du inget konto?`,title:`Välkommen`,tooManyFailedLogins:`För många misslyckade inloggningsförsök. Försök igen senare.`,unverifiedEmail:`Verifiera din e-postadress innan du loggar in`,userAccountDoesNotExist:`Användarkontot finns inte`,usernamePlaceholder:`Användarnamn eller e-postadress`,usernameTooLong:"Användarnamnet får vara högst ${max} tecken",usernameTooShort:"Användarnamnet måste vara minst ${min} tecken",wrongCredentials:`Fel användarnamn eller lösenord`,passkeyButtonText:`Logga in med passkey`}},bc={mfa:{backupCodeText:`Använd reservkod`,description:`Välj en verifieringsmetod`,pageTitle:"Multifaktorautentisering | ${clientName}",title:`Verifiera din identitet`}},xc={"passkey-enrollment-nudge":{title:`Skydda ditt konto med en nyckel`,description:`Nycklar använder enhetens biometri eller PIN-kod för att logga in snabbare och säkrare.`,enrollButtonText:`Konfigurera nyckel`,snoozeButtonText:`Kanske senare`,optOutLinkText:`Visa inte detta igen`,pageTitle:"Konfigurera Nyckel | ${clientName}"},"passkey-enrollment":{title:`Skapa din nyckel`,description:`Följ anvisningarna från din webbläsare för att skapa en nyckel för detta konto.`,errorMessage:`Det gick inte att skapa nyckeln. Försök igen.`,cancelLinkText:`Hoppa över för nu`,retryButtonText:`Försök igen`,enrollmentComplete:`Din nyckel har konfigurerats. Du kan stänga denna sida.`,pageTitle:"Skapa Nyckel | ${clientName}"},"passkey-challenge":{title:`Logga in med passkey`,description:`Följ instruktionerna från din webbläsare för att verifiera din identitet.`,errorMessage:`Autentisering med passkey misslyckades. Försök igen.`,cancelLinkText:`Tillbaka till inloggning`,retryButtonText:`Försök igen`,pageTitle:"Logga in med passkey | ${clientName}"}},Sc={organizations:{description:`Välj vilken organisation du vill logga in på`,pageTitle:"Välj organisation | ${clientName}",searchPlaceholder:`Sök organisationer`,title:`Välj din organisation`}},Cc={signup:{buttonText:`Registrera dig`,confirmPasswordPlaceholder:`Bekräfta lösenord`,description:`Välj ett lösenord med en blandning av stora och små bokstäver, siffror och symboler.`,"email-already-exists":`E-postadressen är redan upptagen`,emailPlaceholder:`E-postadress`,federatedConnectionButtonText:"Fortsätt med ${connectionName}",hidePasswordText:`Dölj lösenord`,"invalid-email-format":`Ogiltig e-postadress`,loginActionLinkText:`Logga in`,loginActionText:`Har du redan ett konto?`,"no-email":`Vänligen ange en e-postadress`,"no-password":`Lösenord krävs`,"no-username":`Användarnamn krävs`,pageTitle:"Registrera dig | ${clientName}",passwordPlaceholder:`Lösenord`,passwordsDidntMatch:`Lösenorden matchar inte`,phonePlaceholder:`Telefonnummer`,privacyPolicyLinkText:`Integritetspolicy`,separatorText:`eller`,sessionExpired:`Din session har gått ut. Försök igen.`,showPasswordText:`Visa lösenord`,termsOfServiceLinkText:`Användarvillkor`,termsText:`Genom att registrera dig godkänner du våra`,title:`Välj lösenord`,"username-already-exists":`Användarnamnet är redan taget`,usernamePlaceholder:`Användarnamn`,verifyEmailText:`Kontrollera din e-post för att verifiera ditt konto`}},wc={status:{continueButtonText:`Fortsätt`,errorTitle:`Fel`,pageTitle:"Status | ${clientName}",successTitle:`Klart`,title:`Status`}},Tc={common:gc,consent:_c,"device-flow":{"device-flow":{buttonText:`Fortsätt`,codePlaceholder:`Ange kod`,description:`Ange koden som visas på din enhet`,"expired-code":`Koden har gått ut`,"invalid-code":`Koden du angav är ogiltig`,pageTitle:"Enhetsaktivering | ${clientName}",title:`Aktivera din enhet`}},"email-otp-challenge":{"email-otp-challenge":{buttonText:`Logga in`,codeLabel:`Verifieringskod`,codePlaceholder:`Ange kod`,defaultDescription:`Ange verifieringskoden som skickades till din e-post`,description:"Vi skickade en kod till ${email}","invalid-code":`Ogiltig kod`,noCode:`Ange verifieringskoden`,pageTitle:"Ange kod | ${clientName}",resendText:`Skicka koden igen`,sessionExpired:`Din session har gått ut. Försök igen.`,title:`Kolla din e-post`,unexpectedError:`Ett oväntat fel uppstod`}},"email-verification":{"email-verification":{description:"Vi skickade ett e-postmeddelande till ${email}",pageTitle:"Verifiera e-post | ${clientName}",resendText:`Skicka koden igen`,successDescription:`Din e-postadress har verifierats.`,successTitle:`E-post verifierad`,title:`Ange engångskod`}},invitation:vc,login:yc,"login-id":{"login-id":{alertListTitle:`Meddelanden`,"auth0-users-validation":`Något gick fel, försök igen senare`,"authentication-failure":`Vi beklagar, något gick fel vid inloggningsförsöket`,buttonText:`Fortsätt`,"captcha-client-failure":`Vi kunde inte ladda säkerhetsutmaningen. Försök igen. (Felkod: #{errorCode})`,"captcha-validation-failure":`Vi beklagar, något gick fel vid validering av captcha-svaret. Försök igen.`,captchaCodePlaceholder:`Ange koden som visas ovan`,"custom-script-error-code":`Något gick fel, försök igen senare.`,description:"Logga in på ${clientName}.",editEmailText:`Redigera`,emailPlaceholder:`E-postadress`,federatedConnectionButtonText:"Fortsätt med ${connectionName}",footerLinkText:`Registrera dig`,footerText:`Har du inget konto?`,forgotPasswordText:`Har du glömt lösenordet?`,hidePasswordText:`Dölj lösenord`,"invalid-captcha":`Lös utmaningen för att verifiera att du inte är en robot.`,"invalid-code":`Ogiltig kod`,"invalid-connection":`Ogiltig anslutning`,"invalid-email-format":`Ogiltig e-postadress`,"invalid-email-phone":`Ange en giltig e-postadress eller telefonnummer. Telefonnummer måste innehålla landskod.`,"invalid-email-phone-username":`Ange en giltig e-postadress, telefonnummer eller användarnamn. Telefonnummer måste innehålla landskod.`,"invalid-email-username":`Ange en giltig e-postadress eller användarnamn`,"invalid-expired-code":`Ogiltig eller utgången användarkod`,"invalid-login-id":`Ogiltigt inloggnings-ID angivet`,"invalid-phone-username":`Ange ett giltigt telefonnummer eller användarnamn. Telefonnummer måste innehålla landskod.`,"invalid-recaptcha":`Markera kryssrutan för att verifiera att du inte är en robot.`,"invalid-username":"Användarnamn kan bara innehålla alfanumeriska tecken eller: '${characters}'. Användarnamn ska vara mellan ${min} och ${max} tecken.",invitationDescription:"Logga in för att acceptera ${inviterName}s inbjudan att gå med i ${companyName} på ${clientName}.",invitationTitle:`Du har blivit inbjuden!`,"ip-blocked":`Vi har upptäckt misstänkt inloggningsaktivitet och ytterligare försök kommer att blockeras. Kontakta administratören.`,logoAltText:"${companyName}","no-db-connection":`Ogiltig anslutning`,"no-email":`Vänligen ange en e-postadress`,"no-email-phone":`E-postadress eller telefonnummer krävs`,"no-email-phone-username":`Telefonnummer, användarnamn eller e-postadress krävs`,"no-email-username":`E-postadress eller användarnamn krävs`,"no-password":`Lösenord krävs`,"no-phone":`Ange ett telefonnummer`,"no-phone-username":`Telefonnummer eller användarnamn krävs`,"no-username":`Användarnamn krävs`,pageTitle:"Logga in | ${clientName}","password-breached":`Vi har upptäckt ett potentiellt säkerhetsproblem med detta konto. För att skydda ditt konto har vi förhindrat denna inloggning. Återställ ditt lösenord för att fortsätta.`,passwordPlaceholder:`Lösenord`,phoneOrEmailPlaceholder:`E-post eller telefonnummer`,phoneOrUsernameOrEmailPlaceholder:`Telefon, användarnamn eller e-post`,phoneOrUsernamePlaceholder:`Telefonnummer eller användarnamn`,phonePlaceholder:`Telefonnummer`,"same-user-login":`För många inloggningsförsök för denna användare. Vänta en stund och försök igen.`,selectCountryCode:"Välj landskod, för närvarande inställd på ${countryName}, ${countryCode}, +${countryPrefix}",separatorText:`eller`,sessionExpired:`Din session har gått ut. Försök igen.`,showPasswordText:`Visa lösenord`,signupActionLinkText:`Registrera dig`,signupActionText:`Har du inget konto?`,termsAndConditionsTemplate:'Genom att fortsätta godkänner du våra <a href="${termsAndConditionsUrl}" target="_blank" rel="noopener noreferrer">Villkor</a>.',title:`Välkommen`,"user-blocked":`Ditt konto har blockerats efter flera misslyckade inloggningsförsök i rad.`,userAccountDoesNotExist:`Användarkontot finns inte`,usernameOnlyPlaceholder:`Användarnamn`,usernameOrEmailPlaceholder:`Användarnamn eller e-postadress`,usernamePlaceholder:`Användarnamn`,usernameTooLong:"Användarnamnet får vara högst ${max} tecken",usernameTooShort:"Användarnamnet måste vara minst ${min} tecken","wrong-credentials":`Fel användarnamn eller lösenord`,"wrong-email-credentials":`Fel e-postadress eller lösenord`,"wrong-email-phone-credentials":`Fel e-postadress, telefonnummer eller lösenord. Telefonnummer måste innehålla landskod.`,"wrong-email-phone-username-credentials":`Fel e-postadress, telefonnummer, användarnamn eller lösenord. Telefonnummer måste innehålla landskod.`,"wrong-email-username-credentials":`Fel e-postadress, användarnamn eller lösenord`,"wrong-phone-credentials":`Fel telefonnummer eller lösenord`,"wrong-phone-username-credentials":`Fel telefonnummer, användarnamn eller lösenord. Telefonnummer måste innehålla landskod.`,"wrong-username-credentials":`Fel användarnamn eller lösenord`,passkeyButtonText:`Logga in med passkey`}},"login-password":{"login-password":{buttonText:`Logga in`,description:`Ange din e-postadress och ditt lösenord för att logga in.`,forgotPasswordText:`Har du glömt lösenordet?`,hidePasswordText:`Dölj lösenord`,"no-password":`Lösenord krävs`,pageTitle:"Logga in | ${clientName}","password-breached":`Vi har upptäckt ett potentiellt säkerhetsproblem med detta konto. För att skydda ditt konto har vi förhindrat denna inloggning. Återställ ditt lösenord för att fortsätta.`,passwordPlaceholder:`Lösenord`,showPasswordText:`Visa lösenord`,signingInAs:"Loggar in som ${email}",title:`Ange lösenord`,unverifiedEmail:`Verifiera din e-postadress innan du loggar in`,"user-blocked":`Ditt konto har blockerats efter flera misslyckade inloggningsförsök i rad.`,"wrong-credentials":`Fel lösenord`}},"login-passwordless":{"login-passwordless":{authMethodEmail:`e-post`,authMethodEmailOrPhone:`e-post eller telefonnummer`,authMethodPhone:`telefonnummer`,description:"Logga in med din ${authMethod}",emailOrPhonePlaceholder:`E-postadress eller telefonnummer`,emailPlaceholder:`E-postadress`,invalidEmail:`Ange en giltig e-postadress`,invalidIdentifier:`Ange en giltig e-postadress eller telefonnummer`,invalidPhone:`Ange ett giltigt telefonnummer med landskod`,noEmail:`Ange din e-postadress`,noPhone:`Ange ditt telefonnummer`,phonePlaceholder:`Telefonnummer`,sessionExpired:`Din session har gått ut. Försök igen.`,title:`Logga in med en kod`,userAccountDoesNotExist:`Användarkontot finns inte`}},"magic-link-sent":{"magic-link-sent":{defaultDescription:`Klicka på länken i ditt e-postmeddelande för att logga in`,description:"Vi skickade en länk till ${username}. Klicka på den för att logga in.",resendText:`Skicka länken igen`,spamText:`Fick du inte e-postmeddelandet? Kolla din skräppost.`,title:`Kolla din e-post`}},mfa:bc,"mfa-email":{"mfa-email":{buttonText:`Fortsätt`,codePlaceholder:`Ange kod`,description:"Vi skickade en kod till ${email}","invalid-code":`Koden du angav är ogiltig`,pageTitle:"E-postverifiering | ${clientName}",resendText:`Skicka koden igen`,title:`Kolla din e-post`}},"mfa-otp":{"mfa-otp":{buttonText:`Fortsätt`,codePlaceholder:`Ange kod`,description:`Ange den 6-siffriga koden från din autentiseringsapp`,"invalid-code":`Koden du angav är ogiltig`,pageTitle:"Ange kod | ${clientName}",title:`Ange din kod`},"mfa-totp-enrollment":{title:`Konfigurera autentiseringsapp`,description:`Skanna QR-koden nedan med din autentiseringsapp och ange sedan den 6-siffriga koden för att verifiera`,secretLabel:`Eller ange denna kod manuellt:`,codePlaceholder:`Ange kod`,continueButtonText:`Verifiera och aktivera`,"invalid-code":`Koden du angav är ogiltig. Försök igen.`,"transaction-not-found":`Din registreringstransaktion har gått ut, du behöver börja om.`,pageTitle:"Konfigurera autentiseringsapp | ${clientName}",unexpectedError:`Något gick fel. Försök igen.`,enrollmentComplete:`MFA-registreringen är klar. Du kan stänga denna sida.`},"mfa-totp-challenge":{title:`Verifiera din identitet`,description:`Ange den 6-siffriga koden från din autentiseringsapp`,codePlaceholder:`Ange kod`,continueButtonText:`Fortsätt`,"invalid-code":`Koden du angav är ogiltig`,"transaction-not-found":`Din registreringstransaktion har gått ut, du behöver börja om.`,unexpectedError:`Något gick fel. Försök igen.`,pageTitle:"Verifiera identitet | ${clientName}"}},"mfa-phone":{"mfa-phone-challenge":{pageTitle:"Använd ditt telefonnummer för att logga in | ${clientName}",title:`Verifiera din identitet`,description:"Vi skickade en kod till ${phoneNumber}",continueButtonText:`Fortsätt`,changePhoneText:`Välj ett annat telefonnummer.`,smsButtonText:`SMS`,voiceButtonText:`Röstsamtal`,chooseMessageTypeText:`Hur vill du ta emot koden?`,pickAuthenticatorText:`Prova en annan metod`,logoAltText:"${companyName}",codePlaceholder:`Ange kod`,"send-sms-failed":`Det gick inte att skicka SMS:et`,"send-voice-failed":`Det gick inte att ringa röstsamtalet`,"invalid-phone-format":`Telefonnumret kan bara innehålla siffror.`,"invalid-phone":`Det verkar som att ditt telefonnummer inte är giltigt. Kontrollera och försök igen.`,"too-many-sms":`Du har överskridit det maximala antalet telefonmeddelanden per timme. Vänta några minuter och försök igen.`,"too-many-voice":`Du har överskridit det maximala antalet telefonmeddelanden per timme. Vänta några minuter och försök igen.`,"transaction-not-found":`Din registreringstransaktion har gått ut, du behöver börja om.`,"no-phone":`Ange ett telefonnummer`,noCode:`Ange verifieringskoden`,invalidCode:`Koden du angav är ogiltig. Försök igen.`,unexpectedError:`Något gick fel. Försök igen.`,resendSuccess:`Vi skickade en ny kod till din telefon`,enrollmentComplete:`MFA-registreringen är klar. Du kan stänga denna sida.`},"mfa-phone-enrollment":{pageTitle:"Ange ditt telefonnummer för att logga in med en telefonkod | ${clientName}",title:`Säkra ditt konto`,description:`Ange din landskod och telefonnummer som vi kan skicka en 6-siffrig kod till:`,continueButtonText:`Fortsätt`,smsButtonText:`SMS`,voiceButtonText:`Röstsamtal`,chooseMessageTypeText:`Hur vill du ta emot koden?`,pickAuthenticatorText:`Prova en annan metod`,placeholder:`Ange ditt telefonnummer`,logoAltText:"${companyName}",selectCountryCode:"Välj landskod, för närvarande inställd på ${countryName}, ${countryCode}, +${countryPrefix}","send-sms-failed":`Det gick inte att skicka SMS:et`,"send-voice-failed":`Det gick inte att ringa röstsamtalet`,"sms-authenticator-error":`Vi kunde inte skicka SMS:et. Försök igen senare.`,"invalid-phone-format":`Telefonnumret kan bara innehålla siffror.`,"invalid-phone":`Det verkar som att ditt telefonnummer inte är giltigt. Kontrollera och försök igen.`,"too-many-sms":`Du har överskridit det maximala antalet telefonmeddelanden per timme. Vänta några minuter och försök igen.`,"too-many-voice":`Du har överskridit det maximala antalet telefonmeddelanden per timme. Vänta några minuter och försök igen.`,"transaction-not-found":`Din registreringstransaktion har gått ut, du behöver börja om.`,"no-phone":`Ange ett telefonnummer`,"phone-is-too-short":`Telefonnumret är för kort`,"phone-is-too-long":`Telefonnumret är för långt`}},"mfa-login-options":{"mfa-login-options":{pageTitle:"Välj verifieringsmetod | ${clientName}",title:`Välj din verifieringsmetod`,description:`Välj hur du vill verifiera din identitet`,authenticatorAppLabel:`Autentiseringsapp`,authenticatorAppDescription:`Använd din autentiseringsapp för att få en verifieringskod`,smsLabel:`Sms`,smsDescription:`Få en verifieringskod skickad till din telefon`,passkeyLabel:`Lösenordsnyckel`,passkeyDescription:`Använd din enhets biometri eller säkerhetsnyckel`}},"mfa-push":{"mfa-push":{description:`Vi skickade en notis till din enhet`,pageTitle:"Push-notis | ${clientName}",resendText:`Skicka notisen igen`,title:`Godkänn förfrågan`,useCodeText:`Ange kod manuellt`}},"mfa-recovery-code":{"mfa-recovery-code":{buttonText:`Fortsätt`,codePlaceholder:`Återställningskod`,description:`Ange en av dina återställningskoder`,"invalid-code":`Återställningskoden du angav är ogiltig`,pageTitle:"Återställningskod | ${clientName}",title:`Ange återställningskod`}},"mfa-voice":{"mfa-voice":{buttonText:`Ring mig`,codePlaceholder:`Ange kod`,description:"Vi ringer ${phoneNumber} med din kod","invalid-code":`Koden du angav är ogiltig`,pageTitle:"Röstsamtal | ${clientName}",title:`Ta emot ett telefonsamtal`}},"mfa-webauthn":{"mfa-webauthn":{buttonText:`Försök igen`,description:`Sätt in din säkerhetsnyckel och följ instruktionerna`,pageTitle:"Säkerhetsnyckel | ${clientName}",title:`Använd din säkerhetsnyckel`}},passkeys:xc,organizations:Sc,"reset-password":{"reset-password":{backToLoginText:`Gå tillbaka`,buttonText:`Skicka`,codeExpired:`Din kod för lösenordsåterställning har gått ut. Begär en ny.`,confirmPasswordLabel:`Bekräfta lösenord`,confirmPasswordPlaceholder:`Bekräfta lösenord`,description:`Klicka på knappen nedan så skickar vi instruktioner om hur du återställer ditt lösenord.`,emailPlaceholder:`E-postadress`,failed:`Lösenordsåterställningen misslyckades. Försök igen.`,"invalid-email-format":`Ogiltig e-postadress`,"no-email":`Vänligen ange en e-postadress`,pageTitle:"Återställ lösenord | ${clientName}",passwordLabel:`Nytt lösenord`,passwordPlaceholder:`Nytt lösenord`,passwordTooWeak:`Lösenordet är för svagt`,passwordsDidntMatch:`Lösenorden matchar inte`,successDescription:`Vi har skickat en länk för lösenordsåterställning till din e-postadress.`,successTitle:`Vi har skickat ett e-postmeddelande med instruktioner om hur du återställer ditt lösenord till den e-postadress du angav.`,title:`Har du glömt lösenordet?`,"user-not-found":`Användaren hittades inte`},"reset-password-code":{backToLoginText:`Tillbaka till inloggning`,buttonText:`Återställ lösenord`,codeLabel:`Återställningskod`,codePlaceholder:`Ange 6-siffrig kod`,confirmPasswordLabel:`Bekräfta lösenord`,confirmPasswordPlaceholder:`Bekräfta lösenord`,defaultDescription:`Ange koden som skickades till din e-post och välj ett nytt lösenord`,description:"Vi skickade en kod till ${email}",failed:`Lösenordsåterställningen misslyckades. Försök igen.`,invalidCode:`Koden du angav är ogiltig eller har gått ut`,noCode:`Vänligen ange återställningskoden`,pageTitle:"Ange återställningskod | ${clientName}",passwordLabel:`Nytt lösenord`,passwordPlaceholder:`Nytt lösenord`,passwordTooWeak:`Lösenordet är för svagt`,passwordsDidntMatch:`Lösenorden matchar inte`,resendFailed:`Kunde inte skicka koden igen. Försök igen.`,resendSuccess:`En ny kod har skickats till din e-post`,resendText:`Skicka koden igen`,sessionExpired:`Din session har gått ut. Försök igen.`,title:`Ange återställningskod`}},signup:Cc,"signup-id":{"signup-id":{buttonText:`Fortsätt`,description:`Välj ett lösenord med en blandning av stora och små bokstäver, siffror och symboler.`,"email-already-exists":`E-postadressen är redan upptagen`,emailPlaceholder:`E-postadress`,federatedConnectionButtonText:"Fortsätt med ${connectionName}","invalid-email-format":`Ogiltig e-postadress`,loginActionLinkText:`Logga in`,loginActionText:`Har du redan ett konto?`,"no-email":`Vänligen ange en e-postadress`,pageTitle:"Registrera dig | ${clientName}",phonePlaceholder:`Telefonnummer`,separatorText:`eller`,title:`Välj lösenord`,usernamePlaceholder:`Användarnamn`}},"signup-password":{"signup-password":{buttonText:`Fortsätt`,description:`Välj ett lösenord med en blandning av stora och små bokstäver, siffror och symboler.`,hidePasswordText:`Dölj lösenord`,"no-password":`Lösenord krävs`,pageTitle:"Registrera dig | ${clientName}","password-policy-not-met":`Lösenordet uppfyller inte kraven`,"password-too-weak":`Lösenordet är för svagt`,passwordPlaceholder:`Lösenord`,showPasswordText:`Visa lösenord`,title:`Välj lösenord`}},"sms-otp-challenge":{"sms-otp-challenge":{buttonText:`Fortsätt`,codeLabel:`Verifieringskod`,codePlaceholder:`Ange kod`,defaultDescription:`Ange verifieringskoden som skickades till din telefon`,description:"Vi skickade en kod till ${username}","invalid-code":`Ogiltig kod`,noCode:`Ange verifieringskoden`,pageTitle:"Ange kod | ${clientName}",resendText:`Skicka koden igen`,sessionExpired:`Din session har gått ut. Försök igen.`,title:`Kolla din telefon`,unexpectedError:`Ett oväntat fel uppstod`}},status:wc},Ec=[`cs`,`da`,`en`,`fi`,`it`,`nb`,`pl`,`sv`],Dc={cs:`Čeština`,da:`Dansk`,en:`English`,fi:`Suomi`,it:`Italiano`,nb:`Norsk`,pl:`Polski`,sv:`Svenska`};function Oc(e){return Dc[e]??e}var kc=Object.assign({"../../locales/cs.json":Ko,"../../locales/da.json":rs,"../../locales/en.json":ms,"../../locales/fi.json":Ts,"../../locales/it.json":Is,"../../locales/nb.json":qs,"../../locales/pl.json":ic,"../../locales/sv.json":hc}),Ac={};for(let[e,t]of Object.entries(kc)){let n=e.match(/\/(\w+)\.json$/)?.[1];n&&(Ac[n]=t.default||t)}var jc={},Mc=Ac.en;if(Mc)for(let[e,t]of Object.entries(Mc))for(let[n,r]of Object.entries(t)){let t={};for(let e of Object.keys(r))t[e]=f.z.string();jc[`${e}.${n}`]=f.z.object(t)}function Nc(e,t){if(!t)return e;let n=e;for(let[e,r]of Object.entries(t))if(r!==void 0){let t=e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);n=n.replace(RegExp(`\\$\\{${t}\\}`,`g`),String(r)).replace(RegExp(`#\\{${t}\\}`,`g`),String(r)).replace(RegExp(`\\{${t}\\}`,`g`),String(r))}return n}function Pc(e){let t=e.split(`-`)[0]?.toLowerCase()||`en`;return Ec.includes(t)?t:`en`}function Fc(e,t,n,r){let i=Pc(n),a=Ac.en?.[e]?.[t]??{},o=Ac[i]?.[e]?.[t]??{},s={...a,...o},c=r?.[t]??{},l={...s,...c},u=jc[`${e}.${t}`];if(u){let n=u.safeParse(l);n.success||console.warn(`[i18n] Missing translations for ${e}.${t} (${i}):`,n.error.issues.map(e=>e.path.join(`.`)).join(`, `))}let d={};for(let[e,t]of Object.entries(l))d[e]=e=>Nc(t,e);return{m:new Proxy(d,{get:(e,t)=>e[t]??(()=>t)}),locale:i}}function Ic(e){let t=e?.language?.split(`-`)[0]?.toLowerCase(),n=[];for(let[r,i]of Object.entries(Ac))if(!(t&&r!==t))for(let[t,a]of Object.entries(i))e?.prompt&&t!==e.prompt||n.push({prompt:t,language:r,custom_text:a});return n}var Lc={Stringify:1,BeforeStream:2,Stream:3},Rc=(e,t)=>{let n=new String(e);return n.isEscaped=!0,n.callbacks=t,n},zc=/[&<>'"]/,Bc=async(e,t)=>{let n=``;t||=[];let r=await Promise.all(e);for(let e=r.length-1;n+=r[e],e--,!(e<0);e--){let i=r[e];typeof i==`object`&&t.push(...i.callbacks||[]);let a=i.isEscaped;if(i=await(typeof i==`object`?i.toString():i),typeof i==`object`&&t.push(...i.callbacks||[]),i.isEscaped??a)n+=i;else{let e=[n];Vc(i,e),n=e[0]}}return Rc(n,t)},Vc=(e,t)=>{let n=e.search(zc);if(n===-1){t[0]+=e;return}let r,i,a=0;for(i=n;i<e.length;i++){switch(e.charCodeAt(i)){case 34:r=`"`;break;case 39:r=`'`;break;case 38:r=`&`;break;case 60:r=`<`;break;case 62:r=`>`;break;default:continue}t[0]+=e.substring(a,i)+r,a=i+1}t[0]+=e.substring(a,i)},Hc=e=>{let t=e.callbacks;if(!t?.length)return e;let n=[e],r={};return t.forEach(e=>e({phase:Lc.Stringify,buffer:n,context:r})),n[0]},Uc=async(e,t,n,r,i)=>{typeof e==`object`&&!(e instanceof String)&&(e instanceof Promise||(e=e.toString()),e instanceof Promise&&(e=await e));let a=e.callbacks;if(!a?.length)return Promise.resolve(e);i?i[0]+=e:i=[e];let o=Promise.all(a.map(e=>e({phase:t,buffer:i,context:r}))).then(e=>Promise.all(e.filter(Boolean).map(e=>Uc(e,t,!1,r,i))).then(()=>i[0]));return n?Rc(await o,a):o},Wc=Symbol(`RENDERER`),Gc=Symbol(`ERROR_HANDLER`),Kc=Symbol(`STASH`),qc=Symbol(`INTERNAL`),Jc=Symbol(`MEMO`),Yc=Symbol(`PERMALINK`),Xc=e=>(e[qc]=!0,e),Zc=e=>({value:t,children:n})=>{if(!n)return;let r={children:[{tag:Xc(()=>{e.push(t)}),props:{}}]};Array.isArray(n)?r.children.push(...n.flat()):r.children.push(n),r.children.push({tag:Xc(()=>{e.pop()}),props:{}});let i={tag:``,props:r,type:``};return i[Gc]=t=>{throw e.pop(),t},i},Qc=e=>{let t=[e],n=Zc(t);return n.values=t,n.Provider=n,$c.push(n),n},$c=[],el=e=>{let t=[e],n=(e=>{t.push(e.value);let n;try{n=e.children?(Array.isArray(e.children)?new Ol(``,{},e.children):e.children).toString():``}catch(e){throw t.pop(),e}return n instanceof Promise?n.finally(()=>t.pop()).then(e=>Rc(e,e.callbacks)):(t.pop(),Rc(n))});return n.values=t,n.Provider=n,n[Wc]=Zc(t),$c.push(n),n},tl=e=>e.values.at(-1),nl={title:[],script:[`src`],style:[`data-href`],link:[`href`],meta:[`name`,`httpEquiv`,`charset`,`itemProp`]},rl={},il=`data-precedence`,al=e=>e.rel===`stylesheet`&&`precedence`in e,ol=(e,t)=>e===`link`?t:nl[e].length>0,sl=e=>Array.isArray(e)?e:[e],cl=c({button:()=>ete,form:()=>Qee,input:()=>$ee,link:()=>Xee,meta:()=>Zee,script:()=>Jee,style:()=>Yee,title:()=>qee}),ll=new WeakMap,ul=(e,t,n,r)=>({buffer:i,context:a})=>{if(!i)return;let o=ll.get(a)||{};ll.set(a,o);let s=o[e]||=[],c=!1,l=nl[e],u=ol(e,r!==void 0);if(u){LOOP:for(let[,t]of s)if(!(e===`link`&&!(t.rel===`stylesheet`&&t[`data-precedence`]!==void 0))){for(let e of l)if((t?.[e]??null)===n?.[e]){c=!0;break LOOP}}}if(c?i[0]=i[0].replaceAll(t,``):u||e===`link`?s.push([t,n,r]):s.unshift([t,n,r]),i[0].indexOf(`</head>`)!==-1){let t;if(e===`link`||r!==void 0){let e=[];t=s.map(([t,,n],r)=>{if(n===void 0)return[t,2**53-1,r];let i=e.indexOf(n);return i===-1&&(e.push(n),i=e.length-1),[t,i,r]}).sort((e,t)=>e[1]-t[1]||e[2]-t[2]).map(([e])=>e)}else t=s.map(([e])=>e);t.forEach(e=>{i[0]=i[0].replaceAll(e,``)}),i[0]=i[0].replace(/(?=<\/head>)/,t.join(``))}},dl=(e,t,n)=>Rc(new El(e,n,sl(t??[])).toString()),fl=(e,t,n,r)=>{if(`itemProp`in n)return dl(e,t,n);let{precedence:i,blocking:a,...o}=n;i=r?i??``:void 0,r&&(o[il]=i);let s=new El(e,o,sl(t||[])).toString();return s instanceof Promise?s.then(t=>Rc(s,[...t.callbacks||[],ul(e,t,o,i)])):Rc(s,[ul(e,s,o,i)])},qee=({children:e,...t})=>{let n=wl();if(n){let r=tl(n);if(r===`svg`||r===`head`)return new El(`title`,t,sl(e??[]))}return fl(`title`,e,t,!1)},Jee=({children:e,...t})=>{let n=wl();return[`src`,`async`].some(e=>!t[e])||n&&tl(n)===`head`?dl(`script`,e,t):fl(`script`,e,t,!1)},Yee=({children:e,...t})=>[`href`,`precedence`].every(e=>e in t)?(t[`data-href`]=t.href,delete t.href,fl(`style`,e,t,!0)):dl(`style`,e,t),Xee=({children:e,...t})=>[`onLoad`,`onError`].some(e=>e in t)||t.rel===`stylesheet`&&(!(`precedence`in t)||`disabled`in t)?dl(`link`,e,t):fl(`link`,e,t,al(t)),Zee=({children:e,...t})=>{let n=wl();return n&&tl(n)===`head`?dl(`meta`,e,t):fl(`meta`,e,t,!1)},pl=(e,{children:t,...n})=>new El(e,n,sl(t??[])),Qee=e=>(typeof e.action==`function`&&(e.action=Yc in e.action?e.action[Yc]:void 0),pl(`form`,e)),ml=(e,t)=>(typeof t.formAction==`function`&&(t.formAction=Yc in t.formAction?t.formAction[Yc]:void 0),pl(e,t)),$ee=e=>ml(`input`,e),ete=e=>ml(`button`,e),tte=new Map([[`className`,`class`],[`htmlFor`,`for`],[`crossOrigin`,`crossorigin`],[`httpEquiv`,`http-equiv`],[`itemProp`,`itemprop`],[`fetchPriority`,`fetchpriority`],[`noModule`,`nomodule`],[`formAction`,`formaction`]]),hl=e=>tte.get(e)||e,nte=/[\s"'<>/=`\\\x00-\x1f\x7f-\x9f]/,gl=new Set,_l=1024,rte=/^[!?]|[\s"'<>/=`\\\x00-\x1f\x7f-\x9f]/,vl=new Set,ite=256,yl=(e,t,n)=>{e.size>=t&&e.clear(),e.add(n)},ate=e=>vl.has(e)?!0:typeof e==`string`?e.length===0?!0:rte.test(e)?!1:(yl(vl,ite,e),!0):!1,ote=e=>{if(gl.has(e))return!0;let t=e.length;if(t===0)return!1;for(let n=0;n<t;n++){let t=e.charCodeAt(n);if(!(t>=97&&t<=122||t>=65&&t<=90||t>=48&&t<=57||t===45||t===95||t===46||t===58))return nte.test(e)?!1:(yl(gl,_l,e),!0)}return yl(gl,_l,e),!0},ste=/[\s"'():;\\/\[\]{}\x00-\x1f\x7f-\x9f]/,bl=new Set,xl=1024,cte=e=>{if(bl.has(e))return!0;let t=e.length;if(t===0)return!1;for(let n=0;n<t;n++){let t=e.charCodeAt(n);if(!(t>=97&&t<=122||t>=65&&t<=90||t>=48&&t<=57||t===45||t===95))return ste.test(e)?!1:(yl(bl,xl,e),!0)}return yl(bl,xl,e),!0},lte=/[;"'\\/\[\](){}]/,ute=e=>{if(!lte.test(e))return!1;let t=0,n=[];for(let r=0,i=e.length;r<i;r++){let a=e.charCodeAt(r);if(a===92){if(r===i-1)return!0;r++}else if(t!==0){if(a===10||a===12||a===13)return!0;a===t&&(t=0)}else if(a===47&&e.charCodeAt(r+1)===42){let t=e.indexOf(`*/`,r+2);if(t===-1)return!0;r=t+1}else if(a===34||a===39)t=a;else if(a===40)n.push(41);else if(a===91)n.push(93);else if(a===123||a===125)return!0;else if(a===41||a===93){if(n[n.length-1]!==a)return!0;n.pop()}else if(a===59&&n.length===0)return!0}return t!==0||n.length!==0},Sl=(e,t)=>{for(let[n,r]of Object.entries(e)){let e=n[0]===`-`||!/[A-Z]/.test(n)?n:n.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`);if(!cte(e))continue;if(r==null){t(e,null);continue}let i;if(typeof r==`number`)i=e.match(/^(?:a|border-im|column(?:-c|s)|flex(?:$|-[^b])|grid-(?:ar|[^a])|font-w|li|or|sca|st|ta|wido|z)|ty$/)?`${r}`:`${r}px`;else if(typeof r==`string`){if(ute(r))continue;i=r}else continue;t(e,i)}},Cl=void 0,wl=()=>Cl,dte=e=>/[A-Z]/.test(e)&&e.match(/^(?:al|basel|clip(?:Path|Rule)$|co|do|fill|fl|fo|gl|let|lig|i|marker[EMS]|o|pai|pointe|sh|st[or]|text[^L]|tr|u|ve|w)/)?e.replace(/([A-Z])/g,`-$1`).toLowerCase():e,fte=[`area`,`base`,`br`,`col`,`embed`,`hr`,`img`,`input`,`keygen`,`link`,`meta`,`param`,`source`,`track`,`wbr`],pte=`allowfullscreen.async.autofocus.autoplay.checked.controls.default.defer.disabled.download.formnovalidate.hidden.inert.ismap.itemscope.loop.multiple.muted.nomodule.novalidate.open.playsinline.readonly.required.reversed.selected`.split(`.`),Tl=(e,t)=>{for(let n=0,r=e.length;n<r;n++){let r=e[n];if(typeof r==`string`)Vc(r,t);else if(typeof r==`boolean`||r==null)continue;else r instanceof El?r.toStringToBuffer(t):typeof r==`number`||r.isEscaped?t[0]+=r:r instanceof Promise?t.unshift(``,r):Tl(r,t)}},El=class{tag;props;key;children;isEscaped=!0;localContexts;constructor(e,t,n){if(typeof e!=`function`&&!ate(e))throw Error(`Invalid JSX tag name: ${e}`);this.tag=e,this.props=t,this.children=n}get type(){return this.tag}get ref(){return this.props.ref||null}toString(){let e=[``];this.localContexts?.forEach(([e,t])=>{e.values.push(t)});try{this.toStringToBuffer(e)}finally{this.localContexts?.forEach(([e])=>{e.values.pop()})}return e.length===1?`callbacks`in e?Hc(Rc(e[0],e.callbacks)).toString():e[0]:Bc(e,e.callbacks)}toStringToBuffer(e){let t=this.tag,n=this.props,{children:r}=this;e[0]+=`<${t}`;let i=t===`svg`||Cl&&tl(Cl)===`svg`?e=>dte(hl(e)):e=>hl(e);for(let[a,o]of Object.entries(n))if(a=i(a),ote(a)&&a!==`children`){if(a===`style`&&typeof o==`object`){let t=``;Sl(o,(e,n)=>{n!=null&&(t+=`${t?`;`:``}${e}:${n}`)}),e[0]+=` style="`,Vc(t,e),e[0]+=`"`}else if(typeof o==`string`)e[0]+=` ${a}="`,Vc(o,e),e[0]+=`"`;else if(o!=null)if(typeof o==`number`||o.isEscaped)e[0]+=` ${a}="${o}"`;else if(typeof o==`boolean`&&pte.includes(a))o&&(e[0]+=` ${a}=""`);else if(a===`dangerouslySetInnerHTML`){if(r.length>0)throw Error("Can only set one of `children` or `props.dangerouslySetInnerHTML`.");r=[Rc(o.__html)]}else if(o instanceof Promise)e[0]+=` ${a}="`,e.unshift(`"`,o);else if(typeof o==`function`){if(!a.startsWith(`on`)&&a!==`ref`)throw Error(`Invalid prop '${a}' of type 'function' supplied to '${t}'.`)}else e[0]+=` ${a}="`,Vc(o.toString(),e),e[0]+=`"`}if(fte.includes(t)&&r.length===0){e[0]+=`/>`;return}e[0]+=`>`,Tl(r,e),e[0]+=`</${t}>`}},Dl=class extends El{toStringToBuffer(e){let{children:t}=this,n={...this.props};t.length&&(n.children=t.length===1?t[0]:t);let r=this.tag.call(null,n);if(!(typeof r==`boolean`||r==null))if(r instanceof Promise)if($c.length===0)e.unshift(``,r);else{let t=$c.map(e=>[e,e.values.at(-1)]);e.unshift(``,r.then(e=>(e instanceof El&&(e.localContexts=t),e)))}else r instanceof El?r.toStringToBuffer(e):typeof r==`number`||r.isEscaped?(e[0]+=r,r.callbacks&&(e.callbacks||=[],e.callbacks.push(...r.callbacks))):Vc(r,e)}},Ol=class extends El{toStringToBuffer(e){Tl(this.children,e)}},kl=(e,t,...n)=>{t??={},n.length&&(t.children=n.length===1?n[0]:n);let r=t.key;delete t.key;let i=jl(e,t,n);return i.key=r,i},Al=!1,jl=(e,t,n)=>{if(!Al){for(let e in rl)cl[e][Wc]=rl[e];Al=!0}return typeof e==`function`?new Dl(e,t,n):cl[e]?new Dl(cl[e],t,n):e===`svg`||e===`head`?(Cl||=el(``),new El(e,t,[new Dl(Cl,{value:e},n)])):new El(e,t,n)},Ml=({children:e})=>new Ol(``,{children:e},Array.isArray(e)?e:e?[e]:[]),mte=(e,t,...n)=>{let r;if(n.length>0)r=n;else{let t=e.props.children;r=Array.isArray(t)?t:[t]}return kl(e.tag,{...e.props,...t},...r)};function z(e,t,n){let r;if(!t||!(`children`in t))r=jl(e,t,[]);else{let n=t.children;r=Array.isArray(n)?jl(e,t,n):jl(e,t,[n])}return r.key=n,r}function Nl(e,t){let n=Kee(e,`ah-dark-mode`);if(n===`dark`||n===`light`||n===`auto`)return n;let r=t?.dark_mode;return r===`dark`||r===`light`||r===`auto`?r:`auto`}var Pl={"--ah-color-text":`#f9fafb`,"--ah-color-text-muted":`#9ca3af`,"--ah-color-text-label":`#d1d5db`,"--ah-color-header":`#f9fafb`,"--ah-color-bg":`#1f2937`,"--ah-color-bg-hover":`#374151`,"--ah-color-bg-muted":`#374151`,"--ah-color-bg-disabled":`#4b5563`,"--ah-color-input-bg":`#374151`,"--ah-color-border":`#4b5563`,"--ah-color-border-hover":`#6b7280`,"--ah-color-border-muted":`#374151`,"--ah-color-error-bg":`rgba(220,38,38,0.2)`,"--ah-color-success-bg":`rgba(22,163,74,0.2)`,"--ah-color-link":`#60a5fa`};function Fl(e){let t=e.replace(`#`,``),n=parseInt(t,16);return[n>>16&255,n>>8&255,n&255]}function Il(e){let[t,n,r]=Fl(e).map(e=>{let t=e/255;return t<=.04045?t/12.92:((t+.055)/1.055)**2.4});return .2126*t+.7152*n+.0722*r}function Ll(e,t){let n=Il(e),r=Il(t);return(Math.max(n,r)+.05)/(Math.min(n,r)+.05)}function Rl(e,t){let[n,r,i]=Fl(e),a=e=>Math.min(255,Math.round(e+(255-e)*t)).toString(16).padStart(2,`0`);return`#${a(n)}${a(r)}${a(i)}`}function zl(e,t){let n={...Pl};if(t){let e=Pl[`--ah-color-bg`]||`#1f2937`;if(Ll(t,e)<3){let r=t;for(let n=1;n<=10&&(r=Rl(t,n*.1),!(Ll(r,e)>=3));n++);n[`--ah-color-primary`]=r,n[`--ah-color-primary-hover`]=r}let r=n[`--ah-color-primary`]||t,i=Ll(r,`#ffffff`);n[`--ah-color-text-on-primary`]=Ll(r,`#000000`)>i*1.35?`#000000`:`#ffffff`}return`${e} { ${Object.entries(n).map(([e,t])=>`${e}: ${t} !important`).join(`; `)}; }`}var hte=`(function(btn){var h=document.documentElement;var cur=h.classList.contains('ah-dark-mode')?'dark':h.classList.contains('ah-light-mode')?'light':'auto';var next=cur==='auto'?'dark':cur==='dark'?'light':'auto';h.classList.remove('ah-dark-mode','ah-light-mode');if(next==='dark'){h.classList.add('ah-dark-mode');h.setAttribute('data-mode','dark')}else if(next==='light'){h.classList.add('ah-light-mode');h.setAttribute('data-mode','light')}else{h.removeAttribute('data-mode')}btn.querySelector('.icon-sun').style.display=next==='light'?'block':'none';btn.querySelector('.icon-moon').style.display=next==='dark'?'block':'none';btn.querySelector('.icon-auto').style.display=next==='auto'?'block':'none';document.cookie='ah-dark-mode='+next+';path=/;max-age=31536000;SameSite=Lax';if(window.__ahDarkMode){window.__ahDarkMode(next)}})(this)`,gte=`var p=new URLSearchParams(window.location.search);p.set('ui_locales',this.value);window.location.search=p.toString()`;function Bl({logoUrl:e,clientName:t}){let n=e?Io(e):null;return z(`div`,{class:`ah-chip ah-chip-logo`,"data-ah-slot":`top-left`,children:n?z(`img`,{src:n,alt:t}):z(`span`,{class:`ah-logo-text`,children:t})})}function Vl({darkMode:e}){return z(`button`,{type:`button`,"aria-label":`Toggle dark mode`,onclick:hte,children:[z(`svg`,{class:`icon-auto`,width:`13`,height:`13`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2.2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,style:e===`auto`?void 0:`display:none`,children:[z(`circle`,{cx:`12`,cy:`12`,r:`9`}),z(`path`,{d:`M12 3a9 9 0 0 1 0 18`,fill:`currentColor`})]}),z(`svg`,{class:`icon-sun`,width:`13`,height:`13`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2.2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,style:e===`light`?void 0:`display:none`,children:[z(`circle`,{cx:`12`,cy:`12`,r:`5`}),z(`line`,{x1:`12`,y1:`1`,x2:`12`,y2:`3`}),z(`line`,{x1:`12`,y1:`21`,x2:`12`,y2:`23`}),z(`line`,{x1:`4.22`,y1:`4.22`,x2:`5.64`,y2:`5.64`}),z(`line`,{x1:`18.36`,y1:`18.36`,x2:`19.78`,y2:`19.78`}),z(`line`,{x1:`1`,y1:`12`,x2:`3`,y2:`12`}),z(`line`,{x1:`21`,y1:`12`,x2:`23`,y2:`12`})]}),z(`svg`,{class:`icon-moon`,width:`13`,height:`13`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2.2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,style:e===`dark`?void 0:`display:none`,children:z(`path`,{d:`M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z`})})]})}function Hl({language:e,availableLanguages:t}){return!t||t.length<2?null:z(`div`,{class:`ah-lang`,children:[z(`svg`,{width:`13`,height:`13`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2.2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,children:[z(`circle`,{cx:`12`,cy:`12`,r:`10`}),z(`path`,{d:`M2 12h20`}),z(`path`,{d:`M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z`})]}),z(`select`,{"aria-label":`Language`,onchange:gte,children:t.map(t=>z(`option`,{value:t,selected:t===e,children:Oc(t)}))})]})}function Ul({darkMode:e,language:t,availableLanguages:n}){return z(`div`,{class:`ah-chip ah-chip-settings`,"data-ah-slot":`top-right`,children:[z(Vl,{darkMode:e}),n&&z(Hl,{language:t,availableLanguages:n})]})}function Wl({url:e,href:t,alt:n,height:r}){let i=Io(e),a=t?Io(t):null;if(!i)return null;let o=z(`img`,{src:i,alt:n||``,height:r||18});return z(`div`,{class:`ah-chip ah-chip-trust`,"data-ah-slot":`bottom-left`,children:a?z(`a`,{href:a,target:`_blank`,rel:`noopener noreferrer`,children:o}):o})}function Gl({termsAndConditionsUrl:e,language:t}){if(!e)return null;let{m:n}=Fc(`common`,`common`,t||`en`);return z(`div`,{class:`ah-chip-legal`,"data-ah-slot":`bottom-right`,children:z(`a`,{href:e,target:`_blank`,rel:`noopener noreferrer`,children:n.termsShortText()})})}function Kl(e,t){let n=[],r=Lo(e?.colors?.primary);r&&n.push(`--ah-color-primary: ${r}`);let i=Lo(t?.colors?.primary_button)||r;if(i){let e=Ll(i,`#ffffff`),t=Ll(i,`#000000`)>e*1.35?`#000000`:`#ffffff`;n.push(`--ah-color-text-on-primary: ${t}`)}return n.length>0?n.join(`; `)+`; width: clamp(320px, 100%, 400px);`:`width: clamp(320px, 100%, 400px);`}function _te(e){let{primaryColor:t,themePrimary:n,widgetBackground:r}=e;return`
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(e&&(t=e(e=0)),t),s=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),c=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r},l=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},u=(n,r,a)=>(a=n==null?{}:e(i(n)),l(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n)),d=e=>a.call(e,`module.exports`)?e[`module.exports`]:l(t({},`__esModule`,{value:!0}),e);let f=require("@hono/zod-openapi"),p=require("hono");var m=class extends Error{res;status;constructor(e=500,t){super(t?.message,{cause:t?.cause}),this.res=t?.res,this.status=e}getResponse(){return this.res?new Response(this.res.body,{status:this.status,headers:this.res.headers}):new Response(this.message,{status:this.status})}},h=e=>typeof e==`string`,g=()=>{let e,t,n=new Promise((n,r)=>{e=n,t=r});return n.resolve=e,n.reject=t,n},_=e=>e==null?``:``+e,v=(e,t,n)=>{e.forEach(e=>{t[e]&&(n[e]=t[e])})},y=/###/g,b=e=>e&&e.indexOf(`###`)>-1?e.replace(y,`.`):e,x=e=>!e||h(e),S=(e,t,n)=>{let r=h(t)?t.split(`.`):t,i=0;for(;i<r.length-1;){if(x(e))return{};let t=b(r[i]);!e[t]&&n&&(e[t]=new n),e=Object.prototype.hasOwnProperty.call(e,t)?e[t]:{},++i}return x(e)?{}:{obj:e,k:b(r[i])}},C=(e,t,n)=>{let{obj:r,k:i}=S(e,t,Object);if(r!==void 0||t.length===1){r[i]=n;return}let a=t[t.length-1],o=t.slice(0,t.length-1),s=S(e,o,Object);for(;s.obj===void 0&&o.length;)a=`${o[o.length-1]}.${a}`,o=o.slice(0,o.length-1),s=S(e,o,Object),s?.obj&&s.obj[`${s.k}.${a}`]!==void 0&&(s.obj=void 0);s.obj[`${s.k}.${a}`]=n},w=(e,t,n,r)=>{let{obj:i,k:a}=S(e,t,Object);i[a]=i[a]||[],i[a].push(n)},T=(e,t)=>{let{obj:n,k:r}=S(e,t);if(n&&Object.prototype.hasOwnProperty.call(n,r))return n[r]},ee=(e,t,n)=>{let r=T(e,n);return r===void 0?T(t,n):r},E=(e,t,n)=>{for(let r in t)r!==`__proto__`&&r!==`constructor`&&(r in e?h(e[r])||e[r]instanceof String||h(t[r])||t[r]instanceof String?n&&(e[r]=t[r]):E(e[r],t[r],n):e[r]=t[r]);return e},te=e=>e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,`\\$&`),ne={"&":`&`,"<":`<`,">":`>`,'"':`"`,"'":`'`,"/":`/`},D=e=>h(e)?e.replace(/[&<>"'\/]/g,e=>ne[e]):e,re=class{constructor(e){this.capacity=e,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(e){let t=this.regExpMap.get(e);if(t!==void 0)return t;let n=new RegExp(e);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(e,n),this.regExpQueue.push(e),n}},ie=[` `,`,`,`?`,`!`,`;`],O=new re(20),ae=(e,t,n)=>{t||=``,n||=``;let r=ie.filter(e=>t.indexOf(e)<0&&n.indexOf(e)<0);if(r.length===0)return!0;let i=O.getRegExp(`(${r.map(e=>e===`?`?`\\?`:e).join(`|`)})`),a=!i.test(e);if(!a){let t=e.indexOf(n);t>0&&!i.test(e.substring(0,t))&&(a=!0)}return a},oe=(e,t,n=`.`)=>{if(!e)return;if(e[t])return Object.prototype.hasOwnProperty.call(e,t)?e[t]:void 0;let r=t.split(n),i=e;for(let e=0;e<r.length;){if(!i||typeof i!=`object`)return;let t,a=``;for(let o=e;o<r.length;++o)if(o!==e&&(a+=n),a+=r[o],t=i[a],t!==void 0){if([`string`,`number`,`boolean`].indexOf(typeof t)>-1&&o<r.length-1)continue;e+=o-e+1;break}i=t}return i},se=e=>e?.replace(/_/g,`-`),k={type:`logger`,log(e){this.output(`log`,e)},warn(e){this.output(`warn`,e)},error(e){this.output(`error`,e)},output(e,t){console?.[e]?.apply?.(console,t)}},A=new class e{constructor(e,t={}){this.init(e,t)}init(e,t={}){this.prefix=t.prefix||`i18next:`,this.logger=e||k,this.options=t,this.debug=t.debug}log(...e){return this.forward(e,`log`,``,!0)}warn(...e){return this.forward(e,`warn`,``,!0)}error(...e){return this.forward(e,`error`,``)}deprecate(...e){return this.forward(e,`warn`,`WARNING DEPRECATED: `,!0)}forward(e,t,n,r){return r&&!this.debug?null:(h(e[0])&&(e[0]=`${n}${this.prefix} ${e[0]}`),this.logger[t](e))}create(t){return new e(this.logger,{prefix:`${this.prefix}:${t}:`,...this.options})}clone(t){return t||=this.options,t.prefix=t.prefix||this.prefix,new e(this.logger,t)}},ce=class{constructor(){this.observers={}}on(e,t){return e.split(` `).forEach(e=>{this.observers[e]||(this.observers[e]=new Map);let n=this.observers[e].get(t)||0;this.observers[e].set(t,n+1)}),this}off(e,t){if(this.observers[e]){if(!t){delete this.observers[e];return}this.observers[e].delete(t)}}emit(e,...t){this.observers[e]&&Array.from(this.observers[e].entries()).forEach(([e,n])=>{for(let r=0;r<n;r++)e(...t)}),this.observers[`*`]&&Array.from(this.observers[`*`].entries()).forEach(([n,r])=>{for(let i=0;i<r;i++)n.apply(n,[e,...t])})}},le=class extends ce{constructor(e,t={ns:[`translation`],defaultNS:`translation`}){super(),this.data=e||{},this.options=t,this.options.keySeparator===void 0&&(this.options.keySeparator=`.`),this.options.ignoreJSONStructure===void 0&&(this.options.ignoreJSONStructure=!0)}addNamespaces(e){this.options.ns.indexOf(e)<0&&this.options.ns.push(e)}removeNamespaces(e){let t=this.options.ns.indexOf(e);t>-1&&this.options.ns.splice(t,1)}getResource(e,t,n,r={}){let i=r.keySeparator===void 0?this.options.keySeparator:r.keySeparator,a=r.ignoreJSONStructure===void 0?this.options.ignoreJSONStructure:r.ignoreJSONStructure,o;e.indexOf(`.`)>-1?o=e.split(`.`):(o=[e,t],n&&(Array.isArray(n)?o.push(...n):h(n)&&i?o.push(...n.split(i)):o.push(n)));let s=T(this.data,o);return!s&&!t&&!n&&e.indexOf(`.`)>-1&&(e=o[0],t=o[1],n=o.slice(2).join(`.`)),s||!a||!h(n)?s:oe(this.data?.[e]?.[t],n,i)}addResource(e,t,n,r,i={silent:!1}){let a=i.keySeparator===void 0?this.options.keySeparator:i.keySeparator,o=[e,t];n&&(o=o.concat(a?n.split(a):n)),e.indexOf(`.`)>-1&&(o=e.split(`.`),r=t,t=o[1]),this.addNamespaces(t),C(this.data,o,r),i.silent||this.emit(`added`,e,t,n,r)}addResources(e,t,n,r={silent:!1}){for(let r in n)(h(n[r])||Array.isArray(n[r]))&&this.addResource(e,t,r,n[r],{silent:!0});r.silent||this.emit(`added`,e,t,n)}addResourceBundle(e,t,n,r,i,a={silent:!1,skipCopy:!1}){let o=[e,t];e.indexOf(`.`)>-1&&(o=e.split(`.`),r=n,n=t,t=o[1]),this.addNamespaces(t);let s=T(this.data,o)||{};a.skipCopy||(n=JSON.parse(JSON.stringify(n))),r?E(s,n,i):s={...s,...n},C(this.data,o,s),a.silent||this.emit(`added`,e,t,n)}removeResourceBundle(e,t){this.hasResourceBundle(e,t)&&delete this.data[e][t],this.removeNamespaces(t),this.emit(`removed`,e,t)}hasResourceBundle(e,t){return this.getResource(e,t)!==void 0}getResourceBundle(e,t){return t||=this.options.defaultNS,this.getResource(e,t)}getDataByLanguage(e){return this.data[e]}hasLanguageSomeTranslations(e){let t=this.getDataByLanguage(e);return!!(t&&Object.keys(t)||[]).find(e=>t[e]&&Object.keys(t[e]).length>0)}toJSON(){return this.data}},ue={processors:{},addPostProcessor(e){this.processors[e.name]=e},handle(e,t,n,r,i){return e.forEach(e=>{t=this.processors[e]?.process(t,n,r,i)??t}),t}},de=Symbol(`i18next/PATH_KEY`);function fe(){let e=[],t=Object.create(null),n;return t.get=(r,i)=>(n?.revoke?.(),i===de?e:(e.push(i),n=Proxy.revocable(r,t),n.proxy)),Proxy.revocable(Object.create(null),t).proxy}function pe(e,t){let{[de]:n}=e(fe()),r=t?.keySeparator??`.`,i=t?.nsSeparator??`:`;if(n.length>1&&i){let e=t?.ns,a=Array.isArray(e)?e:null;if(a&&a.length>1&&a.slice(1).includes(n[0]))return`${n[0]}${i}${n.slice(1).join(r)}`}return n.join(r)}var me={},he=e=>!h(e)&&typeof e!=`boolean`&&typeof e!=`number`,ge=class e extends ce{constructor(e,t={}){super(),v([`resourceStore`,`languageUtils`,`pluralResolver`,`interpolator`,`backendConnector`,`i18nFormat`,`utils`],e,this),this.options=t,this.options.keySeparator===void 0&&(this.options.keySeparator=`.`),this.logger=A.create(`translator`)}changeLanguage(e){e&&(this.language=e)}exists(e,t={interpolation:{}}){let n={...t};if(e==null)return!1;let r=this.resolve(e,n);if(r?.res===void 0)return!1;let i=he(r.res);return!(n.returnObjects===!1&&i)}extractFromKey(e,t){let n=t.nsSeparator===void 0?this.options.nsSeparator:t.nsSeparator;n===void 0&&(n=`:`);let r=t.keySeparator===void 0?this.options.keySeparator:t.keySeparator,i=t.ns||this.options.defaultNS||[],a=n&&e.indexOf(n)>-1,o=!this.options.userDefinedKeySeparator&&!t.keySeparator&&!this.options.userDefinedNsSeparator&&!t.nsSeparator&&!ae(e,n,r);if(a&&!o){let t=e.match(this.interpolator.nestingRegexp);if(t&&t.length>0)return{key:e,namespaces:h(i)?[i]:i};let a=e.split(n);(n!==r||n===r&&this.options.ns.indexOf(a[0])>-1)&&(i=a.shift()),e=a.join(r)}return{key:e,namespaces:h(i)?[i]:i}}translate(t,n,r){let i=typeof n==`object`?{...n}:n;if(typeof i!=`object`&&this.options.overloadTranslationOptionHandler&&(i=this.options.overloadTranslationOptionHandler(arguments)),typeof i==`object`&&(i={...i}),i||={},t==null)return``;typeof t==`function`&&(t=pe(t,{...this.options,...i})),Array.isArray(t)||(t=[String(t)]),t=t.map(e=>typeof e==`function`?pe(e,{...this.options,...i}):String(e));let a=i.returnDetails===void 0?this.options.returnDetails:i.returnDetails,o=i.keySeparator===void 0?this.options.keySeparator:i.keySeparator,{key:s,namespaces:c}=this.extractFromKey(t[t.length-1],i),l=c[c.length-1],u=i.nsSeparator===void 0?this.options.nsSeparator:i.nsSeparator;u===void 0&&(u=`:`);let d=i.lng||this.language,f=i.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(d?.toLowerCase()===`cimode`)return f?a?{res:`${l}${u}${s}`,usedKey:s,exactUsedKey:s,usedLng:d,usedNS:l,usedParams:this.getUsedParamsDetails(i)}:`${l}${u}${s}`:a?{res:s,usedKey:s,exactUsedKey:s,usedLng:d,usedNS:l,usedParams:this.getUsedParamsDetails(i)}:s;let p=this.resolve(t,i),m=p?.res,g=p?.usedKey||s,_=p?.exactUsedKey||s,v=[`[object Number]`,`[object Function]`,`[object RegExp]`],y=i.joinArrays===void 0?this.options.joinArrays:i.joinArrays,b=!this.i18nFormat||this.i18nFormat.handleAsObject,x=i.count!==void 0&&!h(i.count),S=e.hasDefaultValue(i),C=x?this.pluralResolver.getSuffix(d,i.count,i):``,w=i.ordinal&&x?this.pluralResolver.getSuffix(d,i.count,{ordinal:!1}):``,T=x&&!i.ordinal&&i.count===0,ee=T&&i[`defaultValue${this.options.pluralSeparator}zero`]||i[`defaultValue${C}`]||i[`defaultValue${w}`]||i.defaultValue,E=m;b&&!m&&S&&(E=ee);let te=he(E),ne=Object.prototype.toString.apply(E);if(b&&E&&te&&v.indexOf(ne)<0&&!(h(y)&&Array.isArray(E))){if(!i.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn(`accessing an object - but returnObjects options is not enabled!`);let e=this.options.returnedObjectHandler?this.options.returnedObjectHandler(g,E,{...i,ns:c}):`key '${s} (${this.language})' returned an object instead of string.`;return a?(p.res=e,p.usedParams=this.getUsedParamsDetails(i),p):e}if(o){let e=Array.isArray(E),t=e?[]:{},n=e?_:g;for(let e in E)if(Object.prototype.hasOwnProperty.call(E,e)){let r=`${n}${o}${e}`;S&&!m?t[e]=this.translate(r,{...i,defaultValue:he(ee)?ee[e]:void 0,joinArrays:!1,ns:c}):t[e]=this.translate(r,{...i,joinArrays:!1,ns:c}),t[e]===r&&(t[e]=E[e])}m=t}}else if(b&&h(y)&&Array.isArray(m))m=m.join(y),m&&=this.extendTranslation(m,t,i,r);else{let e=!1,n=!1;!this.isValidLookup(m)&&S&&(e=!0,m=ee),this.isValidLookup(m)||(n=!0,m=s);let a=(i.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&n?void 0:m,c=S&&ee!==m&&this.options.updateMissing;if(n||e||c){if(this.logger.log(c?`updateKey`:`missingKey`,d,l,s,c?ee:m),o){let e=this.resolve(s,{...i,keySeparator:!1});e&&e.res&&this.logger.warn(`Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.`)}let e=[],t=this.languageUtils.getFallbackCodes(this.options.fallbackLng,i.lng||this.language);if(this.options.saveMissingTo===`fallback`&&t&&t[0])for(let n=0;n<t.length;n++)e.push(t[n]);else this.options.saveMissingTo===`all`?e=this.languageUtils.toResolveHierarchy(i.lng||this.language):e.push(i.lng||this.language);let n=(e,t,n)=>{let r=S&&n!==m?n:a;this.options.missingKeyHandler?this.options.missingKeyHandler(e,l,t,r,c,i):this.backendConnector?.saveMissing&&this.backendConnector.saveMissing(e,l,t,r,c,i),this.emit(`missingKey`,e,l,t,m)};this.options.saveMissing&&(this.options.saveMissingPlurals&&x?e.forEach(e=>{let t=this.pluralResolver.getSuffixes(e,i);T&&i[`defaultValue${this.options.pluralSeparator}zero`]&&t.indexOf(`${this.options.pluralSeparator}zero`)<0&&t.push(`${this.options.pluralSeparator}zero`),t.forEach(t=>{n([e],s+t,i[`defaultValue${t}`]||ee)})}):n(e,s,ee))}m=this.extendTranslation(m,t,i,p,r),n&&m===s&&this.options.appendNamespaceToMissingKey&&(m=`${l}${u}${s}`),(n||e)&&this.options.parseMissingKeyHandler&&(m=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${l}${u}${s}`:s,e?m:void 0,i))}return a?(p.res=m,p.usedParams=this.getUsedParamsDetails(i),p):m}extendTranslation(e,t,n,r,i){if(this.i18nFormat?.parse)e=this.i18nFormat.parse(e,{...this.options.interpolation.defaultVariables,...n},n.lng||this.language||r.usedLng,r.usedNS,r.usedKey,{resolved:r});else if(!n.skipInterpolation){n.interpolation&&this.interpolator.init({...n,interpolation:{...this.options.interpolation,...n.interpolation}});let a=h(e)&&(n?.interpolation?.skipOnVariables===void 0?this.options.interpolation.skipOnVariables:n.interpolation.skipOnVariables),o;if(a){let t=e.match(this.interpolator.nestingRegexp);o=t&&t.length}let s=n.replace&&!h(n.replace)?n.replace:n;if(this.options.interpolation.defaultVariables&&(s={...this.options.interpolation.defaultVariables,...s}),e=this.interpolator.interpolate(e,s,n.lng||this.language||r.usedLng,n),a){let t=e.match(this.interpolator.nestingRegexp),r=t&&t.length;o<r&&(n.nest=!1)}!n.lng&&r&&r.res&&(n.lng=this.language||r.usedLng),n.nest!==!1&&(e=this.interpolator.nest(e,(...e)=>i?.[0]===e[0]&&!n.context?(this.logger.warn(`It seems you are nesting recursively key: ${e[0]} in key: ${t[0]}`),null):this.translate(...e,t),n)),n.interpolation&&this.interpolator.reset()}let a=n.postProcess||this.options.postProcess,o=h(a)?[a]:a;return e!=null&&o?.length&&n.applyPostProcessor!==!1&&(e=ue.handle(o,e,t,this.options&&this.options.postProcessPassResolved?{i18nResolved:{...r,usedParams:this.getUsedParamsDetails(n)},...n}:n,this)),e}resolve(e,t={}){let n,r,i,a,o;return h(e)&&(e=[e]),Array.isArray(e)&&(e=e.map(e=>typeof e==`function`?pe(e,{...this.options,...t}):e)),e.forEach(e=>{if(this.isValidLookup(n))return;let s=this.extractFromKey(e,t),c=s.key;r=c;let l=s.namespaces;this.options.fallbackNS&&(l=l.concat(this.options.fallbackNS));let u=t.count!==void 0&&!h(t.count),d=u&&!t.ordinal&&t.count===0,f=t.context!==void 0&&(h(t.context)||typeof t.context==`number`)&&t.context!==``,p=t.lngs?t.lngs:this.languageUtils.toResolveHierarchy(t.lng||this.language,t.fallbackLng);l.forEach(e=>{this.isValidLookup(n)||(o=e,!me[`${p[0]}-${e}`]&&this.utils?.hasLoadedNamespace&&!this.utils?.hasLoadedNamespace(o)&&(me[`${p[0]}-${e}`]=!0,this.logger.warn(`key "${r}" for languages "${p.join(`, `)}" won't get resolved as namespace "${o}" was not yet loaded`,`This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!`)),p.forEach(r=>{if(this.isValidLookup(n))return;a=r;let o=[c];if(this.i18nFormat?.addLookupKeys)this.i18nFormat.addLookupKeys(o,c,r,e,t);else{let e;u&&(e=this.pluralResolver.getSuffix(r,t.count,t));let n=`${this.options.pluralSeparator}zero`,i=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(u&&(t.ordinal&&e.indexOf(i)===0&&o.push(c+e.replace(i,this.options.pluralSeparator)),o.push(c+e),d&&o.push(c+n)),f){let r=`${c}${this.options.contextSeparator||`_`}${t.context}`;o.push(r),u&&(t.ordinal&&e.indexOf(i)===0&&o.push(r+e.replace(i,this.options.pluralSeparator)),o.push(r+e),d&&o.push(r+n))}}let s;for(;s=o.pop();)this.isValidLookup(n)||(i=s,n=this.getResource(r,e,s,t))}))})}),{res:n,usedKey:r,exactUsedKey:i,usedLng:a,usedNS:o}}isValidLookup(e){return e!==void 0&&!(!this.options.returnNull&&e===null)&&!(!this.options.returnEmptyString&&e===``)}getResource(e,t,n,r={}){return this.i18nFormat?.getResource?this.i18nFormat.getResource(e,t,n,r):this.resourceStore.getResource(e,t,n,r)}getUsedParamsDetails(e={}){let t=[`defaultValue`,`ordinal`,`context`,`replace`,`lng`,`lngs`,`fallbackLng`,`ns`,`keySeparator`,`nsSeparator`,`returnObjects`,`returnDetails`,`joinArrays`,`postProcess`,`interpolation`],n=e.replace&&!h(e.replace),r=n?e.replace:e;if(n&&e.count!==void 0&&(r.count=e.count),this.options.interpolation.defaultVariables&&(r={...this.options.interpolation.defaultVariables,...r}),!n){r={...r};for(let e of t)delete r[e]}return r}static hasDefaultValue(e){for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t)&&t.substring(0,12)===`defaultValue`&&e[t]!==void 0)return!0;return!1}},_e=class{constructor(e){this.options=e,this.supportedLngs=this.options.supportedLngs||!1,this.logger=A.create(`languageUtils`)}getScriptPartFromCode(e){if(e=se(e),!e||e.indexOf(`-`)<0)return null;let t=e.split(`-`);return t.length===2||(t.pop(),t[t.length-1].toLowerCase()===`x`)?null:this.formatLanguageCode(t.join(`-`))}getLanguagePartFromCode(e){if(e=se(e),!e||e.indexOf(`-`)<0)return e;let t=e.split(`-`);return this.formatLanguageCode(t[0])}formatLanguageCode(e){if(h(e)&&e.indexOf(`-`)>-1){let t;try{t=Intl.getCanonicalLocales(e)[0]}catch{}return t&&this.options.lowerCaseLng&&(t=t.toLowerCase()),t||(this.options.lowerCaseLng?e.toLowerCase():e)}return this.options.cleanCode||this.options.lowerCaseLng?e.toLowerCase():e}isSupportedCode(e){return(this.options.load===`languageOnly`||this.options.nonExplicitSupportedLngs)&&(e=this.getLanguagePartFromCode(e)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(e)>-1}getBestMatchFromCodes(e){if(!e)return null;let t;return e.forEach(e=>{if(t)return;let n=this.formatLanguageCode(e);(!this.options.supportedLngs||this.isSupportedCode(n))&&(t=n)}),!t&&this.options.supportedLngs&&e.forEach(e=>{if(t)return;let n=this.getScriptPartFromCode(e);if(this.isSupportedCode(n))return t=n;let r=this.getLanguagePartFromCode(e);if(this.isSupportedCode(r))return t=r;t=this.options.supportedLngs.find(e=>{if(e===r||!(e.indexOf(`-`)<0&&r.indexOf(`-`)<0)&&(e.indexOf(`-`)>0&&r.indexOf(`-`)<0&&e.substring(0,e.indexOf(`-`))===r||e.indexOf(r)===0&&r.length>1))return e})}),t||=this.getFallbackCodes(this.options.fallbackLng)[0],t}getFallbackCodes(e,t){if(!e)return[];if(typeof e==`function`&&(e=e(t)),h(e)&&(e=[e]),Array.isArray(e))return e;if(!t)return e.default||[];let n=e[t];return n||=e[this.getScriptPartFromCode(t)],n||=e[this.formatLanguageCode(t)],n||=e[this.getLanguagePartFromCode(t)],n||=e.default,n||[]}toResolveHierarchy(e,t){let n=this.getFallbackCodes((t===!1?[]:t)||this.options.fallbackLng||[],e),r=[],i=e=>{e&&(this.isSupportedCode(e)?r.push(e):this.logger.warn(`rejecting language code not found in supportedLngs: ${e}`))};return h(e)&&(e.indexOf(`-`)>-1||e.indexOf(`_`)>-1)?(this.options.load!==`languageOnly`&&i(this.formatLanguageCode(e)),this.options.load!==`languageOnly`&&this.options.load!==`currentOnly`&&i(this.getScriptPartFromCode(e)),this.options.load!==`currentOnly`&&i(this.getLanguagePartFromCode(e))):h(e)&&i(this.formatLanguageCode(e)),n.forEach(e=>{r.indexOf(e)<0&&i(this.formatLanguageCode(e))}),r}},ve={zero:0,one:1,two:2,few:3,many:4,other:5},ye={select:e=>e===1?`one`:`other`,resolvedOptions:()=>({pluralCategories:[`one`,`other`]})},be=class{constructor(e,t={}){this.languageUtils=e,this.options=t,this.logger=A.create(`pluralResolver`),this.pluralRulesCache={}}clearCache(){this.pluralRulesCache={}}getRule(e,t={}){let n=se(e===`dev`?`en`:e),r=t.ordinal?`ordinal`:`cardinal`,i=JSON.stringify({cleanedCode:n,type:r});if(i in this.pluralRulesCache)return this.pluralRulesCache[i];let a;try{a=new Intl.PluralRules(n,{type:r})}catch{if(typeof Intl>`u`)return this.logger.error(`No Intl support, please use an Intl polyfill!`),ye;if(!e.match(/-|_/))return ye;let n=this.languageUtils.getLanguagePartFromCode(e);a=this.getRule(n,t)}return this.pluralRulesCache[i]=a,a}needsPlural(e,t={}){let n=this.getRule(e,t);return n||=this.getRule(`dev`,t),n?.resolvedOptions().pluralCategories.length>1}getPluralFormsOfKey(e,t,n={}){return this.getSuffixes(e,n).map(e=>`${t}${e}`)}getSuffixes(e,t={}){let n=this.getRule(e,t);return n||=this.getRule(`dev`,t),n?n.resolvedOptions().pluralCategories.sort((e,t)=>ve[e]-ve[t]).map(e=>`${this.options.prepend}${t.ordinal?`ordinal${this.options.prepend}`:``}${e}`):[]}getSuffix(e,t,n={}){let r=this.getRule(e,n);return r?`${this.options.prepend}${n.ordinal?`ordinal${this.options.prepend}`:``}${r.select(t)}`:(this.logger.warn(`no plural rule found for: ${e}`),this.getSuffix(`dev`,t,n))}},xe=(e,t,n,r=`.`,i=!0)=>{let a=ee(e,t,n);return!a&&i&&h(n)&&(a=oe(e,n,r),a===void 0&&(a=oe(t,n,r))),a},Se=e=>e.replace(/\$/g,`$$$$`),Ce=class{constructor(e={}){this.logger=A.create(`interpolator`),this.options=e,this.format=e?.interpolation?.format||(e=>e),this.init(e)}init(e={}){e.interpolation||={escapeValue:!0};let{escape:t,escapeValue:n,useRawValueToEscape:r,prefix:i,prefixEscaped:a,suffix:o,suffixEscaped:s,formatSeparator:c,unescapeSuffix:l,unescapePrefix:u,nestingPrefix:d,nestingPrefixEscaped:f,nestingSuffix:p,nestingSuffixEscaped:m,nestingOptionsSeparator:h,maxReplaces:g,alwaysFormat:_}=e.interpolation;this.escape=t===void 0?D:t,this.escapeValue=n===void 0?!0:n,this.useRawValueToEscape=r===void 0?!1:r,this.prefix=i?te(i):a||`{{`,this.suffix=o?te(o):s||`}}`,this.formatSeparator=c||`,`,this.unescapePrefix=l?``:u||`-`,this.unescapeSuffix=this.unescapePrefix?``:l||``,this.nestingPrefix=d?te(d):f||te(`$t(`),this.nestingSuffix=p?te(p):m||te(`)`),this.nestingOptionsSeparator=h||`,`,this.maxReplaces=g||1e3,this.alwaysFormat=_===void 0?!1:_,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){let e=(e,t)=>e?.source===t?(e.lastIndex=0,e):new RegExp(t,`g`);this.regexp=e(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=e(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=e(this.nestingRegexp,`${this.nestingPrefix}((?:[^()"']+|"[^"]*"|'[^']*'|\\((?:[^()]|"[^"]*"|'[^']*')*\\))*?)${this.nestingSuffix}`)}interpolate(e,t,n,r){let i,a,o,s=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},c=e=>{if(e.indexOf(this.formatSeparator)<0){let i=xe(t,s,e,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(i,void 0,n,{...r,...t,interpolationkey:e}):i}let i=e.split(this.formatSeparator),a=i.shift().trim(),o=i.join(this.formatSeparator).trim();return this.format(xe(t,s,a,this.options.keySeparator,this.options.ignoreJSONStructure),o,n,{...r,...t,interpolationkey:a})};this.resetRegExp();let l=r?.missingInterpolationHandler||this.options.missingInterpolationHandler,u=r?.interpolation?.skipOnVariables===void 0?this.options.interpolation.skipOnVariables:r.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:e=>Se(e)},{regex:this.regexp,safeValue:e=>this.escapeValue?Se(this.escape(e)):Se(e)}].forEach(t=>{for(o=0;i=t.regex.exec(e);){let n=i[1].trim();if(a=c(n),a===void 0)if(typeof l==`function`){let t=l(e,i,r);a=h(t)?t:``}else if(r&&Object.prototype.hasOwnProperty.call(r,n))a=``;else if(u){a=i[0];continue}else this.logger.warn(`missed to pass in variable ${n} for interpolating ${e}`),a=``;else !h(a)&&!this.useRawValueToEscape&&(a=_(a));let s=t.safeValue(a);if(e=e.replace(i[0],s),u?(t.regex.lastIndex+=a.length,t.regex.lastIndex-=i[0].length):t.regex.lastIndex=0,o++,o>=this.maxReplaces)break}}),e}nest(e,t,n={}){let r,i,a,o=(e,t)=>{let n=this.nestingOptionsSeparator;if(e.indexOf(n)<0)return e;let r=e.split(RegExp(`${te(n)}[ ]*{`)),i=`{${r[1]}`;e=r[0],i=this.interpolate(i,a);let o=i.match(/'/g),s=i.match(/"/g);((o?.length??0)%2==0&&!s||(s?.length??0)%2!=0)&&(i=i.replace(/'/g,`"`));try{a=JSON.parse(i),t&&(a={...t,...a})}catch(t){return this.logger.warn(`failed parsing options string in nesting for key ${e}`,t),`${e}${n}${i}`}return a.defaultValue&&a.defaultValue.indexOf(this.prefix)>-1&&delete a.defaultValue,e};for(;r=this.nestingRegexp.exec(e);){let s=[];a={...n},a=a.replace&&!h(a.replace)?a.replace:a,a.applyPostProcessor=!1,delete a.defaultValue;let c=/{.*}/.test(r[1])?r[1].lastIndexOf(`}`)+1:r[1].indexOf(this.formatSeparator);if(c!==-1&&(s=r[1].slice(c).split(this.formatSeparator).map(e=>e.trim()).filter(Boolean),r[1]=r[1].slice(0,c)),i=t(o.call(this,r[1].trim(),a),a),i&&r[0]===e&&!h(i))return i;h(i)||(i=_(i)),i||=(this.logger.warn(`missed to resolve ${r[1]} for nesting ${e}`),``),s.length&&(i=s.reduce((e,t)=>this.format(e,t,n.lng,{...n,interpolationkey:r[1].trim()}),i.trim())),e=e.replace(r[0],i),this.regexp.lastIndex=0}return e}},we=e=>{let t=e.toLowerCase().trim(),n={};if(e.indexOf(`(`)>-1){let r=e.split(`(`);t=r[0].toLowerCase().trim();let i=r[1].substring(0,r[1].length-1);t===`currency`&&i.indexOf(`:`)<0?n.currency||=i.trim():t===`relativetime`&&i.indexOf(`:`)<0?n.range||=i.trim():i.split(`;`).forEach(e=>{if(e){let[t,...r]=e.split(`:`),i=r.join(`:`).trim().replace(/^'+|'+$/g,``),a=t.trim();n[a]||(n[a]=i),i===`false`&&(n[a]=!1),i===`true`&&(n[a]=!0),isNaN(i)||(n[a]=parseInt(i,10))}})}return{formatName:t,formatOptions:n}},Te=e=>{let t={};return(n,r,i)=>{let a=i;i&&i.interpolationkey&&i.formatParams&&i.formatParams[i.interpolationkey]&&i[i.interpolationkey]&&(a={...a,[i.interpolationkey]:void 0});let o=r+JSON.stringify(a),s=t[o];return s||(s=e(se(r),i),t[o]=s),s(n)}},Ee=e=>(t,n,r)=>e(se(n),r)(t),De=class{constructor(e={}){this.logger=A.create(`formatter`),this.options=e,this.init(e)}init(e,t={interpolation:{}}){this.formatSeparator=t.interpolation.formatSeparator||`,`;let n=t.cacheInBuiltFormats?Te:Ee;this.formats={number:n((e,t)=>{let n=new Intl.NumberFormat(e,{...t});return e=>n.format(e)}),currency:n((e,t)=>{let n=new Intl.NumberFormat(e,{...t,style:`currency`});return e=>n.format(e)}),datetime:n((e,t)=>{let n=new Intl.DateTimeFormat(e,{...t});return e=>n.format(e)}),relativetime:n((e,t)=>{let n=new Intl.RelativeTimeFormat(e,{...t});return e=>n.format(e,t.range||`day`)}),list:n((e,t)=>{let n=new Intl.ListFormat(e,{...t});return e=>n.format(e)})}}add(e,t){this.formats[e.toLowerCase().trim()]=t}addCached(e,t){this.formats[e.toLowerCase().trim()]=Te(t)}format(e,t,n,r={}){let i=t.split(this.formatSeparator);if(i.length>1&&i[0].indexOf(`(`)>1&&i[0].indexOf(`)`)<0&&i.find(e=>e.indexOf(`)`)>-1)){let e=i.findIndex(e=>e.indexOf(`)`)>-1);i[0]=[i[0],...i.splice(1,e)].join(this.formatSeparator)}return i.reduce((e,t)=>{let{formatName:i,formatOptions:a}=we(t);if(this.formats[i]){let t=e;try{let o=r?.formatParams?.[r.interpolationkey]||{},s=o.locale||o.lng||r.locale||r.lng||n;t=this.formats[i](e,s,{...a,...r,...o})}catch(e){this.logger.warn(e)}return t}else this.logger.warn(`there was no format function for ${i}`);return e},e)}},Oe=(e,t)=>{e.pending[t]!==void 0&&(delete e.pending[t],e.pendingCount--)},ke=class extends ce{constructor(e,t,n,r={}){super(),this.backend=e,this.store=t,this.services=n,this.languageUtils=n.languageUtils,this.options=r,this.logger=A.create(`backendConnector`),this.waitingReads=[],this.maxParallelReads=r.maxParallelReads||10,this.readingCalls=0,this.maxRetries=r.maxRetries>=0?r.maxRetries:5,this.retryTimeout=r.retryTimeout>=1?r.retryTimeout:350,this.state={},this.queue=[],this.backend?.init?.(n,r.backend,r)}queueLoad(e,t,n,r){let i={},a={},o={},s={};return e.forEach(e=>{let r=!0;t.forEach(t=>{let o=`${e}|${t}`;!n.reload&&this.store.hasResourceBundle(e,t)?this.state[o]=2:this.state[o]<0||(this.state[o]===1?a[o]===void 0&&(a[o]=!0):(this.state[o]=1,r=!1,a[o]===void 0&&(a[o]=!0),i[o]===void 0&&(i[o]=!0),s[t]===void 0&&(s[t]=!0)))}),r||(o[e]=!0)}),(Object.keys(i).length||Object.keys(a).length)&&this.queue.push({pending:a,pendingCount:Object.keys(a).length,loaded:{},errors:[],callback:r}),{toLoad:Object.keys(i),pending:Object.keys(a),toLoadLanguages:Object.keys(o),toLoadNamespaces:Object.keys(s)}}loaded(e,t,n){let r=e.split(`|`),i=r[0],a=r[1];t&&this.emit(`failedLoading`,i,a,t),!t&&n&&this.store.addResourceBundle(i,a,n,void 0,void 0,{skipCopy:!0}),this.state[e]=t?-1:2,t&&n&&(this.state[e]=0);let o={};this.queue.forEach(n=>{w(n.loaded,[i],a),Oe(n,e),t&&n.errors.push(t),n.pendingCount===0&&!n.done&&(Object.keys(n.loaded).forEach(e=>{o[e]||(o[e]={});let t=n.loaded[e];t.length&&t.forEach(t=>{o[e][t]===void 0&&(o[e][t]=!0)})}),n.done=!0,n.errors.length?n.callback(n.errors):n.callback())}),this.emit(`loaded`,o),this.queue=this.queue.filter(e=>!e.done)}read(e,t,n,r=0,i=this.retryTimeout,a){if(!e.length)return a(null,{});if(this.readingCalls>=this.maxParallelReads){this.waitingReads.push({lng:e,ns:t,fcName:n,tried:r,wait:i,callback:a});return}this.readingCalls++;let o=(o,s)=>{if(this.readingCalls--,this.waitingReads.length>0){let e=this.waitingReads.shift();this.read(e.lng,e.ns,e.fcName,e.tried,e.wait,e.callback)}if(o&&s&&r<this.maxRetries){setTimeout(()=>{this.read.call(this,e,t,n,r+1,i*2,a)},i);return}a(o,s)},s=this.backend[n].bind(this.backend);if(s.length===2){try{let n=s(e,t);n&&typeof n.then==`function`?n.then(e=>o(null,e)).catch(o):o(null,n)}catch(e){o(e)}return}return s(e,t,o)}prepareLoading(e,t,n={},r){if(!this.backend)return this.logger.warn(`No backend was added via i18next.use. Will not load resources.`),r&&r();h(e)&&(e=this.languageUtils.toResolveHierarchy(e)),h(t)&&(t=[t]);let i=this.queueLoad(e,t,n,r);if(!i.toLoad.length)return i.pending.length||r(),null;i.toLoad.forEach(e=>{this.loadOne(e)})}load(e,t,n){this.prepareLoading(e,t,{},n)}reload(e,t,n){this.prepareLoading(e,t,{reload:!0},n)}loadOne(e,t=``){let n=e.split(`|`),r=n[0],i=n[1];this.read(r,i,`read`,void 0,void 0,(n,a)=>{n&&this.logger.warn(`${t}loading namespace ${i} for language ${r} failed`,n),!n&&a&&this.logger.log(`${t}loaded namespace ${i} for language ${r}`,a),this.loaded(e,n,a)})}saveMissing(e,t,n,r,i,a={},o=()=>{}){if(this.services?.utils?.hasLoadedNamespace&&!this.services?.utils?.hasLoadedNamespace(t)){this.logger.warn(`did not save key "${n}" as the namespace "${t}" was not yet loaded`,`This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!`);return}if(!(n==null||n===``)){if(this.backend?.create){let s={...a,isUpdate:i},c=this.backend.create.bind(this.backend);if(c.length<6)try{let i;i=c.length===5?c(e,t,n,r,s):c(e,t,n,r),i&&typeof i.then==`function`?i.then(e=>o(null,e)).catch(o):o(null,i)}catch(e){o(e)}else c(e,t,n,r,o,s)}!e||!e[0]||this.store.addResource(e[0],t,n,r)}}},Ae=()=>({debug:!1,initAsync:!0,ns:[`translation`],defaultNS:[`translation`],fallbackLng:[`dev`],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:`all`,preload:!1,simplifyPluralSuffix:!0,keySeparator:`.`,nsSeparator:`:`,pluralSeparator:`_`,contextSeparator:`_`,partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:`fallback`,saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:e=>{let t={};if(typeof e[1]==`object`&&(t=e[1]),h(e[1])&&(t.defaultValue=e[1]),h(e[2])&&(t.tDescription=e[2]),typeof e[2]==`object`||typeof e[3]==`object`){let n=e[3]||e[2];Object.keys(n).forEach(e=>{t[e]=n[e]})}return t},interpolation:{escapeValue:!0,format:e=>e,prefix:`{{`,suffix:`}}`,formatSeparator:`,`,unescapePrefix:`-`,nestingPrefix:`$t(`,nestingSuffix:`)`,nestingOptionsSeparator:`,`,maxReplaces:1e3,skipOnVariables:!0},cacheInBuiltFormats:!0}),je=e=>(h(e.ns)&&(e.ns=[e.ns]),h(e.fallbackLng)&&(e.fallbackLng=[e.fallbackLng]),h(e.fallbackNS)&&(e.fallbackNS=[e.fallbackNS]),e.supportedLngs?.indexOf?.(`cimode`)<0&&(e.supportedLngs=e.supportedLngs.concat([`cimode`])),typeof e.initImmediate==`boolean`&&(e.initAsync=e.initImmediate),e),Me=()=>{},Ne=e=>{Object.getOwnPropertyNames(Object.getPrototypeOf(e)).forEach(t=>{typeof e[t]==`function`&&(e[t]=e[t].bind(e))})},Pe=`__i18next_supportNoticeShown`,Fe=()=>!!(typeof globalThis<`u`&&globalThis[Pe]||typeof process<`u`&&process.env&&process.env.I18NEXT_NO_SUPPORT_NOTICE||typeof process<`u`&&process.env&&process.env.NODE_ENV===`production`),Ie=()=>{typeof globalThis<`u`&&(globalThis[Pe]=!0)},eee=e=>!!(e?.modules?.backend?.name?.indexOf(`Locize`)>0||e?.modules?.backend?.constructor?.name?.indexOf(`Locize`)>0||e?.options?.backend?.backends&&e.options.backend.backends.some(e=>e?.name?.indexOf(`Locize`)>0||e?.constructor?.name?.indexOf(`Locize`)>0)||e?.options?.backend?.projectId||e?.options?.backend?.backendOptions&&e.options.backend.backendOptions.some(e=>e?.projectId)),j=class e extends ce{constructor(e={},t){if(super(),this.options=je(e),this.services={},this.logger=A,this.modules={external:[]},Ne(this),t&&!this.isInitialized&&!e.isClone){if(!this.options.initAsync)return this.init(e,t),this;setTimeout(()=>{this.init(e,t)},0)}}init(e={},t){this.isInitializing=!0,typeof e==`function`&&(t=e,e={}),e.defaultNS==null&&e.ns&&(h(e.ns)?e.defaultNS=e.ns:e.ns.indexOf(`translation`)<0&&(e.defaultNS=e.ns[0]));let n=Ae();this.options={...n,...this.options,...je(e)},this.options.interpolation={...n.interpolation,...this.options.interpolation},e.keySeparator!==void 0&&(this.options.userDefinedKeySeparator=e.keySeparator),e.nsSeparator!==void 0&&(this.options.userDefinedNsSeparator=e.nsSeparator),typeof this.options.overloadTranslationOptionHandler!=`function`&&(this.options.overloadTranslationOptionHandler=n.overloadTranslationOptionHandler),this.options.showSupportNotice!==!1&&!eee(this)&&!Fe()&&(typeof console<`u`&&console.info!==void 0&&console.info(`🌐 i18next is made possible by our own product, Locize — consider powering your project with managed localization (AI, CDN, integrations): https://locize.com 💙`),Ie());let r=e=>e?typeof e==`function`?new e:e:null;if(!this.options.isClone){this.modules.logger?A.init(r(this.modules.logger),this.options):A.init(null,this.options);let e;e=this.modules.formatter?this.modules.formatter:De;let t=new _e(this.options);this.store=new le(this.options.resources,this.options);let i=this.services;i.logger=A,i.resourceStore=this.store,i.languageUtils=t,i.pluralResolver=new be(t,{prepend:this.options.pluralSeparator,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),this.options.interpolation.format&&this.options.interpolation.format!==n.interpolation.format&&this.logger.deprecate(`init: you are still using the legacy format function, please use the new approach: https://www.i18next.com/translation-function/formatting`),e&&(!this.options.interpolation.format||this.options.interpolation.format===n.interpolation.format)&&(i.formatter=r(e),i.formatter.init&&i.formatter.init(i,this.options),this.options.interpolation.format=i.formatter.format.bind(i.formatter)),i.interpolator=new Ce(this.options),i.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},i.backendConnector=new ke(r(this.modules.backend),i.resourceStore,i,this.options),i.backendConnector.on(`*`,(e,...t)=>{this.emit(e,...t)}),this.modules.languageDetector&&(i.languageDetector=r(this.modules.languageDetector),i.languageDetector.init&&i.languageDetector.init(i,this.options.detection,this.options)),this.modules.i18nFormat&&(i.i18nFormat=r(this.modules.i18nFormat),i.i18nFormat.init&&i.i18nFormat.init(this)),this.translator=new ge(this.services,this.options),this.translator.on(`*`,(e,...t)=>{this.emit(e,...t)}),this.modules.external.forEach(e=>{e.init&&e.init(this)})}if(this.format=this.options.interpolation.format,t||=Me,this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){let e=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);e.length>0&&e[0]!==`dev`&&(this.options.lng=e[0])}!this.services.languageDetector&&!this.options.lng&&this.logger.warn(`init: no languageDetector is used and no lng is defined`),[`getResource`,`hasResourceBundle`,`getResourceBundle`,`getDataByLanguage`].forEach(e=>{this[e]=(...t)=>this.store[e](...t)}),[`addResource`,`addResources`,`addResourceBundle`,`removeResourceBundle`].forEach(e=>{this[e]=(...t)=>(this.store[e](...t),this)});let i=g(),a=()=>{let e=(e,n)=>{this.isInitializing=!1,this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn(`init: i18next is already initialized. You should call init just once!`),this.isInitialized=!0,this.options.isClone||this.logger.log(`initialized`,this.options),this.emit(`initialized`,this.options),i.resolve(n),t(e,n)};if(this.languages&&!this.isInitialized)return e(null,this.t.bind(this));this.changeLanguage(this.options.lng,e)};return this.options.resources||!this.options.initAsync?a():setTimeout(a,0),i}loadResources(e,t=Me){let n=t,r=h(e)?e:this.language;if(typeof e==`function`&&(n=e),!this.options.resources||this.options.partialBundledLanguages){if(r?.toLowerCase()===`cimode`&&(!this.options.preload||this.options.preload.length===0))return n();let e=[],t=t=>{t&&t!==`cimode`&&this.services.languageUtils.toResolveHierarchy(t).forEach(t=>{t!==`cimode`&&e.indexOf(t)<0&&e.push(t)})};r?t(r):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(e=>t(e)),this.options.preload?.forEach?.(e=>t(e)),this.services.backendConnector.load(e,this.options.ns,e=>{!e&&!this.resolvedLanguage&&this.language&&this.setResolvedLanguage(this.language),n(e)})}else n(null)}reloadResources(e,t,n){let r=g();return typeof e==`function`&&(n=e,e=void 0),typeof t==`function`&&(n=t,t=void 0),e||=this.languages,t||=this.options.ns,n||=Me,this.services.backendConnector.reload(e,t,e=>{r.resolve(),n(e)}),r}use(e){if(!e)throw Error(`You are passing an undefined module! Please check the object you are passing to i18next.use()`);if(!e.type)throw Error(`You are passing a wrong module! Please check the object you are passing to i18next.use()`);return e.type===`backend`&&(this.modules.backend=e),(e.type===`logger`||e.log&&e.warn&&e.error)&&(this.modules.logger=e),e.type===`languageDetector`&&(this.modules.languageDetector=e),e.type===`i18nFormat`&&(this.modules.i18nFormat=e),e.type===`postProcessor`&&ue.addPostProcessor(e),e.type===`formatter`&&(this.modules.formatter=e),e.type===`3rdParty`&&this.modules.external.push(e),this}setResolvedLanguage(e){if(!(!e||!this.languages)&&!([`cimode`,`dev`].indexOf(e)>-1)){for(let e=0;e<this.languages.length;e++){let t=this.languages[e];if(!([`cimode`,`dev`].indexOf(t)>-1)&&this.store.hasLanguageSomeTranslations(t)){this.resolvedLanguage=t;break}}!this.resolvedLanguage&&this.languages.indexOf(e)<0&&this.store.hasLanguageSomeTranslations(e)&&(this.resolvedLanguage=e,this.languages.unshift(e))}}changeLanguage(e,t){this.isLanguageChangingTo=e;let n=g();this.emit(`languageChanging`,e);let r=e=>{this.language=e,this.languages=this.services.languageUtils.toResolveHierarchy(e),this.resolvedLanguage=void 0,this.setResolvedLanguage(e)},i=(i,a)=>{a?this.isLanguageChangingTo===e&&(r(a),this.translator.changeLanguage(a),this.isLanguageChangingTo=void 0,this.emit(`languageChanged`,a),this.logger.log(`languageChanged`,a)):this.isLanguageChangingTo=void 0,n.resolve((...e)=>this.t(...e)),t&&t(i,(...e)=>this.t(...e))},a=t=>{!e&&!t&&this.services.languageDetector&&(t=[]);let n=h(t)?t:t&&t[0],a=this.store.hasLanguageSomeTranslations(n)?n:this.services.languageUtils.getBestMatchFromCodes(h(t)?[t]:t);a&&(this.language||r(a),this.translator.language||this.translator.changeLanguage(a),this.services.languageDetector?.cacheUserLanguage?.(a)),this.loadResources(a,e=>{i(e,a)})};return!e&&this.services.languageDetector&&!this.services.languageDetector.async?a(this.services.languageDetector.detect()):!e&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect.length===0?this.services.languageDetector.detect().then(a):this.services.languageDetector.detect(a):a(e),n}getFixedT(e,t,n){let r=(e,t,...i)=>{let a;a=typeof t==`object`?{...t}:this.options.overloadTranslationOptionHandler([e,t].concat(i)),a.lng=a.lng||r.lng,a.lngs=a.lngs||r.lngs,a.ns=a.ns||r.ns,a.keyPrefix!==``&&(a.keyPrefix=a.keyPrefix||n||r.keyPrefix);let o={...this.options,...a};typeof a.keyPrefix==`function`&&(a.keyPrefix=pe(a.keyPrefix,o));let s=this.options.keySeparator||`.`,c;return a.keyPrefix&&Array.isArray(e)?c=e.map(e=>(typeof e==`function`&&(e=pe(e,o)),`${a.keyPrefix}${s}${e}`)):(typeof e==`function`&&(e=pe(e,o)),c=a.keyPrefix?`${a.keyPrefix}${s}${e}`:e),this.t(c,a)};return h(e)?r.lng=e:r.lngs=e,r.ns=t,r.keyPrefix=n,r}t(...e){return this.translator?.translate(...e)}exists(...e){return this.translator?.exists(...e)}setDefaultNamespace(e){this.options.defaultNS=e}hasLoadedNamespace(e,t={}){if(!this.isInitialized)return this.logger.warn(`hasLoadedNamespace: i18next was not initialized`,this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn(`hasLoadedNamespace: i18n.languages were undefined or empty`,this.languages),!1;let n=t.lng||this.resolvedLanguage||this.languages[0],r=this.options?this.options.fallbackLng:!1,i=this.languages[this.languages.length-1];if(n.toLowerCase()===`cimode`)return!0;let a=(e,t)=>{let n=this.services.backendConnector.state[`${e}|${t}`];return n===-1||n===0||n===2};if(t.precheck){let e=t.precheck(this,a);if(e!==void 0)return e}return!!(this.hasResourceBundle(n,e)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||a(n,e)&&(!r||a(i,e)))}loadNamespaces(e,t){let n=g();return this.options.ns?(h(e)&&(e=[e]),e.forEach(e=>{this.options.ns.indexOf(e)<0&&this.options.ns.push(e)}),this.loadResources(e=>{n.resolve(),t&&t(e)}),n):(t&&t(),Promise.resolve())}loadLanguages(e,t){let n=g();h(e)&&(e=[e]);let r=this.options.preload||[],i=e.filter(e=>r.indexOf(e)<0&&this.services.languageUtils.isSupportedCode(e));return i.length?(this.options.preload=r.concat(i),this.loadResources(e=>{n.resolve(),t&&t(e)}),n):(t&&t(),Promise.resolve())}dir(e){if(e||=this.resolvedLanguage||(this.languages?.length>0?this.languages[0]:this.language),!e)return`rtl`;try{let t=new Intl.Locale(e);if(t&&t.getTextInfo){let e=t.getTextInfo();if(e&&e.direction)return e.direction}}catch{}let t=`ar.shu.sqr.ssh.xaa.yhd.yud.aao.abh.abv.acm.acq.acw.acx.acy.adf.ads.aeb.aec.afb.ajp.apc.apd.arb.arq.ars.ary.arz.auz.avl.ayh.ayl.ayn.ayp.bbz.pga.he.iw.ps.pbt.pbu.pst.prp.prd.ug.ur.ydd.yds.yih.ji.yi.hbo.men.xmn.fa.jpr.peo.pes.prs.dv.sam.ckb`.split(`.`),n=this.services?.languageUtils||new _e(Ae());return e.toLowerCase().indexOf(`-latn`)>1?`ltr`:t.indexOf(n.getLanguagePartFromCode(e))>-1||e.toLowerCase().indexOf(`-arab`)>1?`rtl`:`ltr`}static createInstance(t={},n){let r=new e(t,n);return r.createInstance=e.createInstance,r}cloneInstance(t={},n=Me){let r=t.forkResourceStore;r&&delete t.forkResourceStore;let i={...this.options,...t,isClone:!0},a=new e(i);if((t.debug!==void 0||t.prefix!==void 0)&&(a.logger=a.logger.clone(t)),[`store`,`services`,`language`].forEach(e=>{a[e]=this[e]}),a.services={...this.services},a.services.utils={hasLoadedNamespace:a.hasLoadedNamespace.bind(a)},r&&(a.store=new le(Object.keys(this.store.data).reduce((e,t)=>(e[t]={...this.store.data[t]},e[t]=Object.keys(e[t]).reduce((n,r)=>(n[r]={...e[t][r]},n),e[t]),e),{}),i),a.services.resourceStore=a.store),t.interpolation){let e={...Ae().interpolation,...this.options.interpolation,...t.interpolation},n={...i,interpolation:e};a.services.interpolator=new Ce(n)}return a.translator=new ge(a.services,i),a.translator.on(`*`,(e,...t)=>{a.emit(e,...t)}),a.init(i,n),a.translator.options=i,a.translator.backendConnector.services.utils={hasLoadedNamespace:a.hasLoadedNamespace.bind(a)},a}toJSON(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}}.createInstance();j.createInstance,j.dir,j.init,j.loadResources,j.reloadResources,j.use,j.changeLanguage,j.getFixedT;var M=j.t;j.exists,j.setDefaultNamespace,j.hasLoadedNamespace,j.loadNamespaces,j.loadLanguages;var Le=f.z.object({created_at:f.z.string(),updated_at:f.z.string()}),Re=f.z.object({id:f.z.string(),version:f.z.string().optional()}),ze=f.z.object({name:f.z.string(),version:f.z.string()}),Be=f.z.object({name:f.z.string(),value:f.z.string().optional()}),Ve=f.z.object({name:f.z.string().max(255),code:f.z.string().max(1e5),supported_triggers:f.z.array(Re).optional(),runtime:f.z.string().max(50).optional(),dependencies:f.z.array(ze).optional(),secrets:f.z.array(Be).optional(),is_system:f.z.boolean().optional(),inherit:f.z.boolean().optional()}),He=Ve.partial().extend({status:f.z.enum([`draft`,`built`]).optional(),deployed_at:f.z.string().optional()}),Ue=Ve.extend({id:f.z.string(),tenant_id:f.z.string(),status:f.z.enum([`draft`,`built`]).default(`built`),deployed_at:f.z.string().optional(),secrets:f.z.array(f.z.object({name:f.z.string(),value:f.z.string().optional()})).optional()}).extend(Le.shape),We=f.z.string(),Ge=f.z.enum([`unspecified`,`pending`,`final`,`partial`,`canceled`,`suspended`]),Ke=f.z.object({id:f.z.string(),msg:f.z.string(),url:f.z.string().optional()}),qe=f.z.object({action_name:f.z.string(),error:Ke.nullable(),started_at:f.z.string(),ended_at:f.z.string()}),Je=f.z.object({level:f.z.enum([`log`,`info`,`warn`,`error`,`debug`]),message:f.z.string()}),Ye=f.z.array(f.z.object({action_name:f.z.string(),lines:f.z.array(Je)})),Xe=f.z.object({id:f.z.string(),tenant_id:f.z.string(),trigger_id:We,status:Ge,results:f.z.array(qe),logs:Ye.optional(),created_at:f.z.string(),updated_at:f.z.string()}),Ze=Xe.omit({tenant_id:!0,created_at:!0,updated_at:!0}),Qe=f.z.object({action_id:f.z.string(),code:f.z.string().max(1e5),runtime:f.z.string().max(50).optional(),dependencies:f.z.array(ze).optional(),secrets:f.z.array(Be).optional(),supported_triggers:f.z.array(Re).optional(),deployed:f.z.boolean().default(!0)}),$e=Qe.extend({id:f.z.string(),tenant_id:f.z.string(),number:f.z.number().int()}).extend(Le.shape),et=f.z.enum([`user_action`,`admin_action`,`system`,`api`]),tt=f.z.object({type:f.z.enum([`user`,`admin`,`system`,`api_key`,`client_credentials`]),id:f.z.string().optional(),email:f.z.string().optional(),org_id:f.z.string().optional(),org_name:f.z.string().optional(),scopes:f.z.array(f.z.string()).optional(),client_id:f.z.string().optional()}),nt=f.z.object({type:f.z.string(),id:f.z.string(),before:f.z.record(f.z.string(),f.z.unknown()).optional(),after:f.z.record(f.z.string(),f.z.unknown()).optional(),diff:f.z.record(f.z.string(),f.z.object({old:f.z.unknown(),new:f.z.unknown()})).optional()}),rt=f.z.object({method:f.z.string(),path:f.z.string(),query:f.z.record(f.z.string(),f.z.string()).optional(),body:f.z.unknown().optional(),ip:f.z.string(),user_agent:f.z.string().optional(),correlation_id:f.z.string().optional()}),it=f.z.object({status_code:f.z.number(),body:f.z.unknown().optional()}),at=f.z.object({country_code:f.z.string(),city_name:f.z.string(),latitude:f.z.string(),longitude:f.z.string(),time_zone:f.z.string(),continent_code:f.z.string()}),ot=f.z.object({name:f.z.string(),version:f.z.string(),env:f.z.record(f.z.string(),f.z.string()).optional()}),st=f.z.object({tenant_id:f.z.string(),event_type:f.z.string(),log_type:f.z.string(),description:f.z.string().optional(),category:et,actor:tt,target:nt,request:rt,response:it.optional(),connection:f.z.string().optional(),strategy:f.z.string().optional(),strategy_type:f.z.string().optional(),audience:f.z.string().optional(),scope:f.z.string().optional(),location:at.optional(),auth0_client:ot.optional(),hostname:f.z.string(),is_mobile:f.z.boolean().optional(),timestamp:f.z.string()}),ct=st.extend({id:f.z.string()}),lt=f.z.enum([`AUTH0`,`EMAIL`,`REDIRECT`]),ut=f.z.enum([`CREATE_USER`,`GET_USER`,`UPDATE_USER`,`SEND_REQUEST`,`SEND_EMAIL`]),dt=f.z.enum([`VERIFY_EMAIL`]),ft=f.z.object({require_mx_record:f.z.boolean().optional(),block_aliases:f.z.boolean().optional(),block_free_emails:f.z.boolean().optional(),block_disposable_emails:f.z.boolean().optional(),blocklist:f.z.array(f.z.string()).optional(),allowlist:f.z.array(f.z.string()).optional()}),pt=f.z.object({id:f.z.string(),alias:f.z.string().max(100).optional(),type:f.z.literal(`AUTH0`),action:f.z.literal(`UPDATE_USER`),allow_failure:f.z.boolean().optional(),mask_output:f.z.boolean().optional(),params:f.z.object({connection_id:f.z.string().optional(),user_id:f.z.string(),changes:f.z.record(f.z.string(),f.z.any())})}),mt=f.z.object({id:f.z.string(),alias:f.z.string().max(100).optional(),type:f.z.literal(`EMAIL`),action:f.z.literal(`VERIFY_EMAIL`),allow_failure:f.z.boolean().optional(),mask_output:f.z.boolean().optional(),params:f.z.object({email:f.z.string(),rules:ft.optional()})}),ht=f.z.enum([`change-email`,`account`,`custom`]),gt=f.z.object({id:f.z.string(),alias:f.z.string().max(100).optional(),type:f.z.literal(`REDIRECT`),action:f.z.literal(`REDIRECT_USER`),allow_failure:f.z.boolean().optional(),mask_output:f.z.boolean().optional(),params:f.z.object({target:ht.openapi({description:`The predefined target to redirect to, or 'custom' for a custom URL`}),custom_url:f.z.string().optional().openapi({description:`Custom URL to redirect to when target is 'custom'`})})}),_t=f.z.union([pt,mt,gt]),vt=f.z.object({name:f.z.string().min(1).max(150).openapi({description:`The name of the flow`}),actions:f.z.array(_t).optional().default([]).openapi({description:`The list of actions to execute in sequence`})}),yt=vt.extend(Le.shape).extend({id:f.z.string().openapi({description:`Unique identifier for the flow`,example:`af_12tMpdJ3iek7svMyZkSh5M`})}),tee=f.z.object({page:f.z.string().min(0).optional().default(`0`).transform(e=>parseInt(e,10)).openapi({description:`The page number where 0 is the first page`}),per_page:f.z.string().min(1).optional().default(`10`).transform(e=>parseInt(e,10)).openapi({description:`The number of items per page`}),include_totals:f.z.string().optional().default(`false`).transform(e=>e===`true`).openapi({description:`If the total number of items should be included in the response`}),sort:f.z.string().regex(/^.+:(-1|1)$/).optional().openapi({description:`A property that should have the format 'string:-1' or 'string:1'`}),q:f.z.string().optional().openapi({description:`A lucene query string used to filter the results`})}),bt=f.z.object({start:f.z.number(),limit:f.z.number(),length:f.z.number(),total:f.z.number().optional()}),xt=f.z.object({email:f.z.string().optional(),email_verified:f.z.boolean().optional(),name:f.z.string().optional(),username:f.z.string().optional(),given_name:f.z.string().optional(),phone_number:f.z.string().optional(),phone_verified:f.z.boolean().optional(),family_name:f.z.string().optional()}).catchall(f.z.any()),St=f.z.object({connection:f.z.string(),user_id:f.z.string(),provider:f.z.string(),isSocial:f.z.boolean(),email:f.z.string().optional(),email_verified:f.z.boolean().optional(),phone_number:f.z.string().optional(),phone_verified:f.z.boolean().optional(),username:f.z.string().optional(),access_token:f.z.string().optional(),access_token_secret:f.z.string().optional(),refresh_token:f.z.string().optional(),profileData:xt.optional()}),Ct=f.z.object({formatted:f.z.string().optional(),street_address:f.z.string().optional(),locality:f.z.string().optional(),region:f.z.string().optional(),postal_code:f.z.string().optional(),country:f.z.string().optional()}).optional(),wt=f.z.object({email:f.z.string().transform(e=>e.toLowerCase()).optional(),username:f.z.string().refine(e=>!e.includes(`@`),{message:`Usernames must not contain "@". Use the email field for email addresses.`}).optional(),phone_number:f.z.string().optional(),phone_verified:f.z.boolean().optional(),given_name:f.z.string().optional(),family_name:f.z.string().optional(),nickname:f.z.string().optional(),name:f.z.string().optional(),picture:f.z.string().optional(),locale:f.z.string().optional(),linked_to:f.z.string().optional(),profileData:f.z.string().optional(),user_id:f.z.string().optional(),app_metadata:f.z.any().default({}).optional(),user_metadata:f.z.any().default({}).optional(),middle_name:f.z.string().optional(),preferred_username:f.z.string().optional(),profile:f.z.string().optional(),website:f.z.string().optional(),gender:f.z.string().optional(),birthdate:f.z.string().optional(),zoneinfo:f.z.string().optional(),address:Ct}),Tt=wt.extend({email_verified:f.z.boolean().default(!1),verify_email:f.z.boolean().optional(),last_ip:f.z.string().optional(),last_login:f.z.string().optional(),user_id:f.z.string().optional(),provider:f.z.string().optional(),connection:f.z.string(),is_social:f.z.boolean().optional(),registration_completed_at:f.z.string().optional(),password:f.z.object({hash:f.z.string(),algorithm:f.z.string()}).optional()}),Et=Tt.omit({password:!0}).extend(Le.shape).extend({user_id:f.z.string(),provider:f.z.string(),is_social:f.z.boolean(),email:f.z.string().optional(),login_count:f.z.number().default(0),identities:f.z.array(St).optional()}),Dt=Et.omit({registration_completed_at:!0}),Ot=wt.extend({login_count:f.z.number(),multifactor:f.z.array(f.z.string()).optional(),last_ip:f.z.string().optional(),last_login:f.z.string().optional(),user_id:f.z.string()}).catchall(f.z.any()),nee=`useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict`,ree=(e=21)=>{let t=``,n=crypto.getRandomValues(new Uint8Array(e|=0));for(;e--;)t+=nee[n[e]&63];return t},kt=f.z.object({client_id:f.z.string().optional().openapi({description:`ID of this client. Generated server-side if omitted (Auth0 behavior).`}),name:f.z.string().min(1).openapi({description:`Name of this client (min length: 1 character, does not allow < or >).`}),description:f.z.string().max(140).optional().openapi({description:`Free text description of this client (max length: 140 characters).`}),global:f.z.boolean().default(!1).openapi({description:`Whether this is your global 'All Applications' client representing legacy tenant settings (true) or a regular client (false).`}),client_secret:f.z.string().default(()=>ree()).optional().openapi({description:`Client secret (which you must not make public).`}),app_type:f.z.enum([`native`,`spa`,`regular_web`,`non_interactive`,`resource_server`,`express_configuration`,`rms`,`box`,`cloudbees`,`concur`,`dropbox`,`mscrm`,`echosign`,`egnyte`,`newrelic`,`office365`,`salesforce`,`sentry`,`sharepoint`,`slack`,`springcm`,`zendesk`,`zoom`,`sso_integration`,`oag`]).default(`regular_web`).optional().openapi({description:`The type of application this client represents`}),logo_uri:f.z.string().url().optional().openapi({description:`URL of the logo to display for this client. Recommended size is 150x150 pixels.`}),is_first_party:f.z.boolean().default(!0).openapi({description:`Whether this client is a first party client (true) or not (false). First-party clients skip the consent screen; third-party clients require explicit user consent for non-basic scopes.`}),oidc_conformant:f.z.boolean().default(!0).openapi({description:`Whether this client conforms to strict OIDC specifications (true) or uses legacy features (false).`}),auth0_conformant:f.z.boolean().default(!0).openapi({description:`Whether this client follows Auth0-compatible behavior (true) or strict OIDC behavior (false). When true, profile/email claims are included in the ID token when scopes are requested. When false, these claims are only available from the userinfo endpoint (strict OIDC 5.4 compliance).`}),callbacks:f.z.array(f.z.string()).default([]).optional().openapi({description:`Comma-separated list of URLs whitelisted for Auth0 to use as a callback to the client after authentication.`}),allowed_origins:f.z.array(f.z.string()).default([]).optional().openapi({description:`Comma-separated list of URLs allowed to make requests from JavaScript to Auth0 API (typically used with CORS). By default, all your callback URLs will be allowed. This field allows you to enter other origins if necessary. You can also use wildcards at the subdomain level (e.g., https://*.contoso.com). Query strings and hash information are not taken into account when validating these URLs.`}),web_origins:f.z.array(f.z.string()).default([]).optional().openapi({description:`Comma-separated list of allowed origins for use with Cross-Origin Authentication, Device Flow, and web message response mode.`}),client_aliases:f.z.array(f.z.string()).default([]).optional().openapi({description:`List of audiences/realms for SAML protocol. Used by the wsfed addon.`}),allowed_clients:f.z.array(f.z.string()).default([]).optional().openapi({description:`List of allow clients and API ids that are allowed to make delegation requests. Empty means all all your clients are allowed.`}),connections:f.z.array(f.z.string()).default([]).optional().openapi({description:`List of connection IDs enabled for this client. The order determines the display order on the login page.`}),allowed_logout_urls:f.z.array(f.z.string()).default([]).optional().openapi({description:`Comma-separated list of URLs that are valid to redirect to after logout from Auth0. Wildcards are allowed for subdomains.`}),session_transfer:f.z.record(f.z.string(),f.z.any()).default({}).optional().openapi({description:`Native to Web SSO Configuration`}),oidc_logout:f.z.record(f.z.string(),f.z.any()).default({}).optional().openapi({description:`Configuration for OIDC backchannel logout`}),grant_types:f.z.array(f.z.string()).default([]).optional().openapi({description:`List of grant types supported for this application. Can include authorization_code, implicit, refresh_token, client_credentials, password, http://auth0.com/oauth/grant-type/password-realm, http://auth0.com/oauth/grant-type/mfa-oob, http://auth0.com/oauth/grant-type/mfa-otp, http://auth0.com/oauth/grant-type/mfa-recovery-code, urn:openid:params:grant-type:ciba, and urn:ietf:params:oauth:grant-type:device_code.`}),jwt_configuration:f.z.record(f.z.string(),f.z.any()).default({}).optional().openapi({description:`Configuration related to JWTs for the client.`}),signing_keys:f.z.array(f.z.record(f.z.string(),f.z.any())).default([]).optional().openapi({description:`Signing certificates associated with this client.`}),encryption_key:f.z.record(f.z.string(),f.z.any()).default({}).optional().openapi({description:`Encryption used for WsFed responses with this client.`}),sso:f.z.boolean().default(!1).openapi({description:`Applies only to SSO clients and determines whether Auth0 will handle Single Sign On (true) or whether the Identity Provider will (false).`}),sso_disabled:f.z.boolean().default(!1).openapi({description:`Whether Single Sign On is disabled for this client. When true, existing SSO sessions will not be reused and users must authenticate every time.`}),cross_origin_authentication:f.z.boolean().default(!1).openapi({description:`Whether this client can be used to make cross-origin authentication requests (true) or it is not allowed to make such requests (false).`}),cross_origin_loc:f.z.string().url().optional().openapi({description:`URL of the location in your site where the cross origin verification takes place for the cross-origin auth flow when performing Auth in your own domain instead of Auth0 hosted login page.`}),custom_login_page_on:f.z.boolean().default(!1).openapi({description:`Whether a custom login page is to be used (true) or the default provided login page (false).`}),custom_login_page:f.z.string().optional().openapi({description:`The content (HTML, CSS, JS) of the custom login page.`}),custom_login_page_preview:f.z.string().optional().openapi({description:`The content (HTML, CSS, JS) of the custom login page. (Used on Previews)`}),form_template:f.z.string().optional().openapi({description:`HTML form template to be used for WS-Federation.`}),addons:f.z.record(f.z.string(),f.z.any()).default({}).optional().openapi({description:`Addons enabled for this client and their associated configurations.`}),token_endpoint_auth_method:f.z.enum([`none`,`client_secret_post`,`client_secret_basic`,`client_secret_jwt`,`private_key_jwt`]).default(`client_secret_basic`).optional().openapi({description:"Defines the requested authentication method for the token endpoint. `none` (public client), `client_secret_post` / `client_secret_basic` (HTTP POST / Basic), `client_secret_jwt` (RFC 7523 HMAC assertion using client_secret), or `private_key_jwt` (RFC 7523 asymmetric assertion verified against the client's `jwks` / `jwks_uri`)."}),client_metadata:f.z.record(f.z.string(),f.z.string().max(255)).default({}).optional().openapi({description:`Metadata associated with the client, in the form of an object with string values (max 255 chars). Maximum of 10 metadata properties allowed. Field names (max 255 chars) are alphanumeric and may only include the following special characters: :,-+=_*?"/()<>@ [Tab][Space]`}),hide_sign_up_disabled_error:f.z.boolean().default(!1).optional().openapi({description:"Enumeration-safe variant of the connection-level `disable_signup` flag. When a signup is blocked by the password connection and this is true, the identifier screen does not reveal that an email is unknown — it advances to the OTP/password challenge as if the account existed and fails at credential check. Mitigates email enumeration at the cost of UX: users without an account see a generic credential failure instead of an explicit signup-disabled message."}),mobile:f.z.record(f.z.string(),f.z.any()).default({}).optional().openapi({description:`Additional configuration for native mobile apps.`}),initiate_login_uri:f.z.string().url().optional().openapi({description:`Initiate login uri, must be https`}),native_social_login:f.z.record(f.z.string(),f.z.any()).default({}).optional(),refresh_token:f.z.object({rotation_type:f.z.enum([`rotating`,`non-rotating`]).optional().openapi({description:`Whether refresh tokens for this client are rotated on every exchange (Auth0 'rotating' behavior) or kept stable (legacy non-rotating). Defaults to 'non-rotating' when unset.`}),leeway:f.z.number().int().min(0).max(600).optional().openapi({description:`Seconds after a parent token's first rotation during which presenting it again still mints a fresh sibling child instead of triggering reuse-detection. Defaults to 30s when unset.`}),expiration_type:f.z.enum([`expiring`,`non-expiring`]).optional().openapi({description:`Auth0-compatible: whether refresh tokens expire.`}),token_lifetime:f.z.number().int().min(0).optional().openapi({description:`Auth0-compatible: refresh-token absolute lifetime in seconds.`}),infinite_token_lifetime:f.z.boolean().optional().openapi({description:`Auth0-compatible: when true, refresh tokens have no absolute expiry.`}),idle_token_lifetime:f.z.number().int().min(0).optional().openapi({description:`Auth0-compatible: refresh-token idle (sliding) lifetime in seconds.`}),infinite_idle_token_lifetime:f.z.boolean().optional().openapi({description:`Auth0-compatible: when true, refresh tokens have no idle expiry.`})}).default({}).optional().openapi({description:`Refresh token configuration`}),default_organization:f.z.record(f.z.string(),f.z.any()).default({}).optional().openapi({description:`Defines the default Organization ID and flows`}),organization_usage:f.z.enum([`deny`,`allow`,`require`]).default(`deny`).optional().openapi({description:`Defines how to proceed during an authentication transaction with regards an organization. Can be deny (default), allow or require.`}),organization_require_behavior:f.z.enum([`no_prompt`,`pre_login_prompt`,`post_login_prompt`]).default(`no_prompt`).optional().openapi({description:`Defines how to proceed during an authentication transaction when client.organization_usage: 'require'. Can be no_prompt (default), pre_login_prompt or post_login_prompt. post_login_prompt requires oidc_conformant: true.`}),client_authentication_methods:f.z.record(f.z.string(),f.z.any()).default({}).optional().openapi({description:`Defines client authentication methods.`}),require_pushed_authorization_requests:f.z.boolean().default(!1).openapi({description:`Makes the use of Pushed Authorization Requests mandatory for this client`}),require_proof_of_possession:f.z.boolean().default(!1).openapi({description:`Makes the use of Proof-of-Possession mandatory for this client`}),signed_request_object:f.z.record(f.z.string(),f.z.any()).default({}).optional().openapi({description:`JWT-secured Authorization Requests (JAR) settings.`}),compliance_level:f.z.enum([`none`,`fapi1_adv_pkj_par`,`fapi1_adv_mtls_par`,`fapi2_sp_pkj_mtls`,`fapi2_sp_mtls_mtls`]).optional().openapi({description:`Defines the compliance level for this client, which may restrict it's capabilities`}),par_request_expiry:f.z.number().optional().openapi({description:`Specifies how long, in seconds, a Pushed Authorization Request URI remains valid`}),token_quota:f.z.record(f.z.string(),f.z.any()).default({}).optional(),owner_user_id:f.z.string().optional().openapi({description:`User ID of the consenting user when this client was created via IAT-gated Dynamic Client Registration. NULL for clients created via the Management API or open DCR.`}),registration_type:f.z.enum([`manual`,`open_dcr`,`iat_dcr`]).optional().openapi({description:"Provenance of this client. `manual` = Management API; `open_dcr` = RFC 7591 without IAT; `iat_dcr` = RFC 7591 with an Initial Access Token."}),registration_metadata:f.z.record(f.z.string(),f.z.any()).default({}).optional().openapi({description:"Arbitrary metadata captured at Dynamic Client Registration time that isn't a first-class client field (e.g. integration_type, domain). Also stores `iat_constraints` for clients created via IAT so RFC 7592 PUT can enforce field immutability."}),user_linking_mode:f.z.enum([`builtin`,`off`]).optional().openapi({description:"Per-client override for the built-in email-based user-linking path. `builtin` runs the legacy in-process linking at user creation/email update. `off` disables the legacy path; linking only happens if the tenant has enabled the `account-linking` template hook. When unset, the service-level `userLinkingMode` default applies."})}),At=f.z.object({created_at:f.z.string(),updated_at:f.z.string()}).extend(kt.shape).extend({client_id:f.z.string()}),jt=f.z.object({client_id:f.z.string().min(1).openapi({description:`ID of the client.`}),audience:f.z.string().min(1).openapi({description:`The audience (API identifier) of this client grant.`}),scope:f.z.array(f.z.string()).optional().openapi({description:`Scopes allowed for this client grant.`}),organization_usage:f.z.enum([`deny`,`allow`,`require`]).optional().openapi({description:`Defines whether organizations can be used with client credentials exchanges for this grant.`}),allow_any_organization:f.z.boolean().optional().openapi({description:`If enabled, any organization can be used with this grant. If disabled (default), the grant must be explicitly assigned to the desired organizations.`}),is_system:f.z.boolean().optional().openapi({description:`If enabled, this grant is a special grant created by Auth0. It cannot be modified or deleted directly.`}),subject_type:f.z.enum([`client`,`user`]).optional().openapi({description:`The type of application access the client grant allows. Use of this field is subject to the applicable Free Trial terms in Okta's Master Subscription Agreement.`}),authorization_details_types:f.z.array(f.z.string()).optional().openapi({description:`Types of authorization_details allowed for this client grant. Use of this field is subject to the applicable Free Trial terms in Okta's Master Subscription Agreement.`})}),Mt=f.z.object({id:f.z.string().openapi({description:`ID of the client grant.`})}).extend(jt.shape).extend({created_at:f.z.string().optional(),updated_at:f.z.string().optional()}),Nt=f.z.array(Mt),Pt=f.z.enum([`iat`,`rat`]),Ft=f.z.object({id:f.z.string(),token_hash:f.z.string(),type:Pt,client_id:f.z.string().optional(),sub:f.z.string().optional(),constraints:f.z.record(f.z.string(),f.z.unknown()).optional(),single_use:f.z.boolean().default(!1),expires_at:f.z.string().optional()}),It=f.z.object({created_at:f.z.string(),used_at:f.z.string().optional(),revoked_at:f.z.string().optional()}).extend(Ft.shape),Lt=f.z.object({x:f.z.number(),y:f.z.number()}),Rt=function(e){return e.RICH_TEXT=`RICH_TEXT`,e.NEXT_BUTTON=`NEXT_BUTTON`,e.BACK_BUTTON=`BACK_BUTTON`,e.SUBMIT_BUTTON=`SUBMIT_BUTTON`,e.DIVIDER=`DIVIDER`,e.TEXT=`TEXT`,e.EMAIL=`EMAIL`,e.PASSWORD=`PASSWORD`,e.NUMBER=`NUMBER`,e.PHONE=`PHONE`,e.DATE=`DATE`,e.CHECKBOX=`CHECKBOX`,e.RADIO=`RADIO`,e.SELECT=`SELECT`,e.HIDDEN=`HIDDEN`,e.LEGAL=`LEGAL`,e}({}),zt=function(e){return e.BLOCK=`BLOCK`,e.FIELD=`FIELD`,e}({}),Bt=f.z.object({id:f.z.string(),category:f.z.nativeEnum(zt),type:f.z.nativeEnum(Rt)}),Vt=Bt.extend({category:f.z.literal(`BLOCK`),type:f.z.literal(`RICH_TEXT`),config:f.z.object({content:f.z.string()}).passthrough()}),Ht=Bt.extend({category:f.z.literal(`BLOCK`),type:f.z.union([f.z.literal(`NEXT_BUTTON`),f.z.literal(`BACK_BUTTON`),f.z.literal(`SUBMIT_BUTTON`)]),config:f.z.object({text:f.z.string()}).passthrough()}),Ut=Bt.extend({category:f.z.literal(`FIELD`),type:f.z.literal(`LEGAL`),required:f.z.boolean().optional(),sensitive:f.z.boolean().optional(),config:f.z.object({text:f.z.string()}).passthrough()}),Wt=Bt.extend({category:f.z.literal(`FIELD`),type:f.z.union([f.z.literal(`TEXT`),f.z.literal(`EMAIL`),f.z.literal(`PASSWORD`),f.z.literal(`NUMBER`),f.z.literal(`PHONE`),f.z.literal(`DATE`),f.z.literal(`CHECKBOX`),f.z.literal(`RADIO`),f.z.literal(`SELECT`),f.z.literal(`HIDDEN`)]),required:f.z.boolean().optional(),sensitive:f.z.boolean().optional(),config:f.z.object({label:f.z.string().optional(),placeholder:f.z.string().optional()}).passthrough()}),Gt=f.z.object({id:f.z.string(),category:f.z.string(),type:f.z.string()}).passthrough(),Kt=f.z.union([Vt,Ht,Ut,Wt,Gt]),qt=function(e){return e.STEP=`STEP`,e.FLOW=`FLOW`,e.CONDITION=`CONDITION`,e.ACTION=`ACTION`,e}({}),Jt=f.z.object({id:f.z.string(),type:f.z.literal(`STEP`),coordinates:Lt,alias:f.z.string().optional(),config:f.z.object({components:f.z.array(Kt),next_node:f.z.string()}).passthrough()}),Yt=f.z.object({id:f.z.string(),type:f.z.literal(`FLOW`),coordinates:Lt,alias:f.z.string().optional(),config:f.z.object({flow_id:f.z.string(),next_node:f.z.string()})}),Xt=f.z.object({id:f.z.string(),type:f.z.literal(`ACTION`),coordinates:Lt,alias:f.z.string().optional(),config:f.z.object({action_type:f.z.enum([`REDIRECT`]).openapi({description:`The type of action to perform`}),target:f.z.enum([`change-email`,`account`,`custom`]).openapi({description:`The predefined target to redirect to`}),custom_url:f.z.string().optional().openapi({description:`Custom URL when target is 'custom'`}),next_node:f.z.string().openapi({description:`The next node to navigate to after action (for non-redirect actions)`})}).passthrough()}),Zt=f.z.object({id:f.z.string(),type:f.z.string(),coordinates:Lt}).passthrough(),Qt=f.z.union([Jt,Yt,Xt,Zt]),$t=f.z.object({next_node:f.z.string(),coordinates:Lt}).passthrough(),en=f.z.object({resume_flow:f.z.boolean().optional(),coordinates:Lt}).passthrough(),tn=f.z.object({id:f.z.string(),name:f.z.string(),languages:f.z.object({primary:f.z.string()}).passthrough(),nodes:f.z.array(Qt),start:$t,ending:en,created_at:f.z.string(),updated_at:f.z.string(),links:f.z.object({sdkSrc:f.z.string().optional(),sdk_src:f.z.string().optional()}).passthrough()}).passthrough(),nn=tn.omit({id:!0,created_at:!0,updated_at:!0}),rn=function(e){return e.TOKEN=`token`,e.ID_TOKEN=`id_token`,e.TOKEN_ID_TOKEN=`id_token token`,e.CODE=`code`,e.CODE_ID_TOKEN=`code id_token`,e.CODE_TOKEN=`code token`,e.CODE_ID_TOKEN_TOKEN=`code id_token token`,e}({}),an=function(e){return e.QUERY=`query`,e.FRAGMENT=`fragment`,e.FORM_POST=`form_post`,e.WEB_MESSAGE=`web_message`,e.SAML_POST=`saml_post`,e}({}),on=function(e){return e.S256=`S256`,e.Plain=`plain`,e}({}),sn=f.z.union([f.z.null(),f.z.object({essential:f.z.boolean().optional(),value:f.z.unknown().optional(),values:f.z.array(f.z.unknown()).optional()})]).nullable(),cn=f.z.object({userinfo:f.z.record(f.z.string(),sn).optional(),id_token:f.z.record(f.z.string(),sn).optional()}),ln=f.z.object({client_id:f.z.string(),act_as:f.z.string().optional(),response_type:f.z.nativeEnum(rn).optional(),response_mode:f.z.nativeEnum(an).optional(),redirect_uri:f.z.string().optional(),audience:f.z.string().optional(),organization:f.z.string().optional(),state:f.z.string().optional(),nonce:f.z.string().optional(),scope:f.z.string().optional(),prompt:f.z.string().optional(),code_challenge_method:f.z.nativeEnum(on).optional(),code_challenge:f.z.string().optional(),username:f.z.string().optional(),ui_locales:f.z.string().optional(),max_age:f.z.number().optional(),acr_values:f.z.string().optional(),claims:cn.optional(),vendor_id:f.z.string().optional()}),un=f.z.object({colors:f.z.object({primary:f.z.string(),page_background:f.z.union([f.z.string(),f.z.object({type:f.z.string().optional(),start:f.z.string().optional(),end:f.z.string().optional(),angle_deg:f.z.number().optional()})]).optional()}).optional(),logo_url:f.z.string().optional(),favicon_url:f.z.string().optional(),powered_by_logo_url:f.z.string().optional(),font:f.z.object({url:f.z.string()}).optional(),dark_mode:f.z.enum([`dark`,`light`,`auto`]).optional()}),dn=f.z.enum([`password_reset`,`email_verification`,`otp`,`mfa_otp`,`authorization_code`,`oauth2_state`,`ticket`]),fn=f.z.object({code_id:f.z.string().openapi({description:`The code that will be used in for instance an email verification flow`}),login_id:f.z.string().openapi({description:`The id of the login session that the code is connected to`}),connection_id:f.z.string().optional().openapi({description:`The connection that the code is connected to`}),code_type:dn,code_verifier:f.z.string().optional().openapi({description:`The code verifier used in PKCE in outbound flows`}),code_challenge:f.z.string().optional().openapi({description:`The code challenge used in PKCE in outbound flows`}),code_challenge_method:f.z.enum([`plain`,`S256`]).optional().openapi({description:`The code challenge method used in PKCE in outbound flows`}),redirect_uri:f.z.string().optional().openapi({description:`The redirect URI associated with the code`}),otp:f.z.string().optional().openapi({description:`The one-time password value for OTP-based flows`}),nonce:f.z.string().optional().openapi({description:`The nonce value used for security in OIDC flows`}),state:f.z.string().optional().openapi({description:`The state parameter used for CSRF protection in OAuth flows`}),expires_at:f.z.string(),used_at:f.z.string().optional(),user_id:f.z.string().optional()}),pn=fn.extend({created_at:f.z.string()}),mn=f.z.object({kid:f.z.string().optional(),team_id:f.z.string().optional(),realms:f.z.string().optional(),authentication_method:f.z.string().optional(),client_id:f.z.string().optional(),client_secret:f.z.string().optional(),app_secret:f.z.string().optional(),scope:f.z.string().optional(),authorization_endpoint:f.z.string().optional(),token_endpoint:f.z.string().optional(),userinfo_endpoint:f.z.string().optional(),jwks_uri:f.z.string().optional(),discovery_url:f.z.string().optional(),issuer:f.z.string().optional(),token_endpoint_auth_method:f.z.enum([`client_secret_basic`,`client_secret_post`]).optional(),provider:f.z.string().optional(),from:f.z.string().optional(),twilio_sid:f.z.string().optional(),twilio_token:f.z.string().optional(),icon_url:f.z.string().optional(),domain_aliases:f.z.array(f.z.string()).optional(),callback_url:f.z.string().url().optional(),passwordPolicy:f.z.enum([`none`,`low`,`fair`,`good`,`excellent`]).optional(),password_complexity_options:f.z.object({min_length:f.z.number().optional()}).optional(),password_history:f.z.object({enable:f.z.boolean().optional(),size:f.z.number().optional()}).optional(),password_no_personal_info:f.z.object({enable:f.z.boolean().optional()}).optional(),password_dictionary:f.z.object({enable:f.z.boolean().optional(),dictionary:f.z.array(f.z.string()).optional()}).optional(),disable_signup:f.z.boolean().optional(),brute_force_protection:f.z.boolean().optional(),import_mode:f.z.boolean().optional(),configuration:f.z.object({token_endpoint:f.z.string().optional(),userinfo_endpoint:f.z.string().optional(),client_id:f.z.string().optional(),client_secret:f.z.string().optional(),realm:f.z.string().optional()}).optional(),attributes:f.z.object({email:f.z.object({identifier:f.z.object({active:f.z.boolean().optional()}).optional(),signup:f.z.object({status:f.z.enum([`required`,`optional`,`disabled`]).optional(),verification:f.z.object({active:f.z.boolean().optional()}).optional()}).optional(),validation:f.z.object({allowed:f.z.boolean().optional()}).optional(),unique:f.z.boolean().optional(),profile_required:f.z.boolean().optional(),verification_method:f.z.enum([`link`,`code`]).optional()}).optional(),username:f.z.object({identifier:f.z.object({active:f.z.boolean().optional()}).optional(),signup:f.z.object({status:f.z.enum([`required`,`optional`,`disabled`]).optional()}).optional(),validation:f.z.object({max_length:f.z.number().optional(),min_length:f.z.number().optional(),allowed_types:f.z.object({email:f.z.boolean().optional(),phone_number:f.z.boolean().optional()}).optional()}).optional(),profile_required:f.z.boolean().optional()}).optional(),phone_number:f.z.object({identifier:f.z.object({active:f.z.boolean().optional()}).optional(),signup:f.z.object({status:f.z.enum([`required`,`optional`,`disabled`]).optional()}).optional()}).optional()}).optional(),authentication_methods:f.z.object({password:f.z.object({enabled:f.z.boolean().optional()}).optional(),passkey:f.z.object({enabled:f.z.boolean().optional()}).optional()}).optional(),passkey_options:f.z.object({challenge_ui:f.z.enum([`both`,`autofill`,`button`]).optional(),local_enrollment_enabled:f.z.boolean().optional(),progressive_enrollment_enabled:f.z.boolean().optional()}).optional(),requires_username:f.z.boolean().optional(),validation:f.z.object({username:f.z.object({min:f.z.number().optional(),max:f.z.number().optional()}).optional()}).optional(),set_user_root_attributes:f.z.enum([`on_each_login`,`on_first_login`,`never_on_login`]).optional()});function hn(e){if(e!==null){if(Array.isArray(e))return e.filter(e=>e!==null).map(hn);if(e&&typeof e==`object`){let t={};for(let[n,r]of Object.entries(e))r!==null&&(t[n]=hn(r));return t}return e}}var gn=f.z.object({id:f.z.string().optional(),name:f.z.string(),display_name:f.z.string().optional(),strategy:f.z.string(),options:f.z.preprocess(e=>e===null?{}:hn(e),mn).default({}),enabled_clients:f.z.array(f.z.string()).default([]).optional(),response_type:f.z.custom().optional(),response_mode:f.z.custom().optional(),is_domain_connection:f.z.boolean().optional(),show_as_button:f.z.boolean().optional(),metadata:f.z.record(f.z.string(),f.z.any()).optional(),is_system:f.z.boolean().optional()}),_n=f.z.object({id:f.z.string(),created_at:f.z.string().transform(e=>e===null?``:e),updated_at:f.z.string().transform(e=>e===null?``:e)}).extend(gn.shape),vn=f.z.object({domain:f.z.string(),custom_domain_id:f.z.string().optional(),type:f.z.enum([`auth0_managed_certs`,`self_managed_certs`]),verification_method:f.z.enum([`txt`]).optional(),tls_policy:f.z.enum([`recommended`]).optional(),custom_client_ip_header:f.z.enum([`true-client-ip`,`cf-connecting-ip`,`x-forwarded-for`,`x-azure-clientip`,`null`]).optional(),domain_metadata:f.z.record(f.z.string(),f.z.string().max(255)).optional()}),yn=f.z.discriminatedUnion(`name`,[f.z.object({name:f.z.literal(`txt`),record:f.z.string(),domain:f.z.string()}),f.z.object({name:f.z.literal(`http`),http_body:f.z.string(),http_url:f.z.string()})]),bn=vn.extend({custom_domain_id:f.z.string(),primary:f.z.boolean(),status:f.z.enum([`disabled`,`pending`,`pending_verification`,`ready`]),origin_domain_name:f.z.string().optional(),verification:f.z.object({methods:f.z.array(yn)}).optional(),tls_policy:f.z.string().optional()}),xn=vn.pick({tls_policy:!0,custom_client_ip_header:!0,domain_metadata:!0}).strict(),iee=bn.extend({tenant_id:f.z.string()}),Sn=f.z.object({certificate:f.z.string().regex(/^-----BEGIN CERTIFICATE-----[\s\S]+-----END CERTIFICATE-----\s*$/,`must be PEM-encoded; include the full certificate chain in leaf-first order`),private_key:f.z.string().regex(/-----BEGIN (RSA |EC |ENCRYPTED )?PRIVATE KEY-----[\s\S]+-----END \1PRIVATE KEY-----\s*$/,`must be a PEM-encoded private key`)}),Cn=f.z.object({id:f.z.string(),order:f.z.number().optional(),visible:f.z.boolean().optional().default(!0)}),wn=Cn.extend({category:f.z.literal(`BLOCK`).optional()}),aee=wn.extend({type:f.z.literal(`DIVIDER`),config:f.z.object({text:f.z.string().optional()}).optional()}),oee=wn.extend({type:f.z.literal(`HTML`),config:f.z.object({content:f.z.string().optional()}).optional()}),Tn=wn.extend({type:f.z.literal(`IMAGE`),config:f.z.object({src:f.z.string().optional(),alt:f.z.string().optional(),width:f.z.number().optional(),height:f.z.number().optional()}).optional()}),En=wn.extend({type:f.z.literal(`JUMP_BUTTON`),config:f.z.object({text:f.z.string().optional(),target_step:f.z.string().optional()})}),Dn=wn.extend({type:f.z.literal(`RESEND_BUTTON`),config:f.z.object({text:f.z.string().optional(),resend_action:f.z.string().optional()})}),On=wn.extend({type:f.z.literal(`NEXT_BUTTON`),config:f.z.object({text:f.z.string().optional()})}),kn=wn.extend({type:f.z.literal(`PREVIOUS_BUTTON`),config:f.z.object({text:f.z.string().optional()})}),An=wn.extend({type:f.z.literal(`RICH_TEXT`),config:f.z.object({content:f.z.string().optional()}).optional()}),jn=Cn.extend({category:f.z.literal(`WIDGET`).optional(),label:f.z.string().min(1).optional(),hint:f.z.string().min(1).max(500).optional(),required:f.z.boolean().optional(),sensitive:f.z.boolean().optional()}),Mn=jn.extend({type:f.z.literal(`AUTH0_VERIFIABLE_CREDENTIALS`),config:f.z.object({credential_type:f.z.string().optional()})}),Nn=jn.extend({type:f.z.literal(`GMAPS_ADDRESS`),config:f.z.object({api_key:f.z.string().optional()})}),Pn=jn.extend({type:f.z.literal(`RECAPTCHA`),config:f.z.object({site_key:f.z.string().optional()})}),Fn=Cn.extend({category:f.z.literal(`FIELD`).optional(),label:f.z.string().min(1).optional(),hint:f.z.string().min(1).max(500).optional(),messages:f.z.array(f.z.object({id:f.z.number().optional(),text:f.z.string(),type:f.z.enum([`info`,`error`,`success`,`warning`])})).optional(),required:f.z.boolean().optional(),sensitive:f.z.boolean().optional()}),In=Fn.extend({type:f.z.literal(`BOOLEAN`),config:f.z.object({default_value:f.z.boolean().optional()}).optional()}),Ln=Fn.extend({type:f.z.literal(`CARDS`),config:f.z.object({options:f.z.array(f.z.object({value:f.z.string(),label:f.z.string(),description:f.z.string().optional(),image:f.z.string().optional()})).optional(),multi_select:f.z.boolean().optional()}).optional()}),Rn=Fn.extend({type:f.z.literal(`CHOICE`),config:f.z.object({options:f.z.array(f.z.object({value:f.z.string(),label:f.z.string()})).optional(),display:f.z.enum([`radio`,`checkbox`]).optional(),multiple:f.z.boolean().optional(),default_value:f.z.union([f.z.string(),f.z.array(f.z.string())]).optional()}).optional()}),zn=Fn.extend({type:f.z.literal(`CUSTOM`),config:f.z.object({component:f.z.string().optional(),props:f.z.record(f.z.string(),f.z.any()).optional(),schema:f.z.record(f.z.string(),f.z.any()).optional(),code:f.z.string().optional()})}),Bn=Fn.extend({type:f.z.literal(`DATE`),config:f.z.object({format:f.z.string().optional(),min:f.z.string().optional(),max:f.z.string().optional(),default_value:f.z.string().optional()}).optional()}),Vn=Fn.extend({type:f.z.literal(`DROPDOWN`),config:f.z.object({options:f.z.array(f.z.object({value:f.z.string(),label:f.z.string()})).optional(),placeholder:f.z.string().optional(),searchable:f.z.boolean().optional(),multiple:f.z.boolean().optional(),default_value:f.z.union([f.z.string(),f.z.array(f.z.string())]).optional()}).optional()}),Hn=Fn.extend({type:f.z.literal(`EMAIL`),config:f.z.object({placeholder:f.z.string().optional(),default_value:f.z.string().optional()}).optional()}),Un=Fn.extend({type:f.z.literal(`FILE`),config:f.z.object({accept:f.z.string().optional(),max_size:f.z.number().optional(),multiple:f.z.boolean().optional()}).optional()}),Wn=Fn.extend({type:f.z.literal(`LEGAL`),config:f.z.object({text:f.z.string(),html:f.z.boolean().optional()}).optional()}),Gn=Fn.extend({type:f.z.literal(`NUMBER`),config:f.z.object({placeholder:f.z.string().optional(),min:f.z.number().optional(),max:f.z.number().optional(),step:f.z.number().optional(),default_value:f.z.string().optional()}).optional()}),Kn=Fn.extend({type:f.z.literal(`PASSWORD`),config:f.z.object({placeholder:f.z.string().optional(),min_length:f.z.number().optional(),show_toggle:f.z.boolean().optional(),forgot_password_link:f.z.string().optional(),default_value:f.z.string().optional()}).optional()}),qn=Fn.extend({type:f.z.literal(`PAYMENT`),config:f.z.object({provider:f.z.string().optional(),currency:f.z.string().optional()}).optional()}),Jn=Fn.extend({type:f.z.literal(`SOCIAL`),config:f.z.object({providers:f.z.array(f.z.string()).optional(),provider_details:f.z.array(f.z.object({name:f.z.string(),strategy:f.z.string().optional(),display_name:f.z.string().optional(),icon_url:f.z.string().optional(),href:f.z.string().optional()})).optional()}).optional()}),Yn=Fn.extend({type:f.z.literal(`TEL`),config:f.z.object({placeholder:f.z.string().optional(),default_country:f.z.string().optional(),default_value:f.z.string().optional(),allow_email:f.z.boolean().optional()}).optional()}),Xn=Fn.extend({type:f.z.literal(`TEXT`),config:f.z.object({placeholder:f.z.string().optional(),multiline:f.z.boolean().optional(),max_length:f.z.number().optional(),default_value:f.z.string().optional()}).optional()}),Zn=Fn.extend({type:f.z.literal(`COUNTRY`),config:f.z.object({placeholder:f.z.string().optional(),default_value:f.z.string().optional()}).optional()}),Qn=Fn.extend({type:f.z.literal(`URL`),config:f.z.object({placeholder:f.z.string().optional(),default_value:f.z.string().optional()}).optional()}),$n=f.z.discriminatedUnion(`type`,[aee,oee,Tn,En,Dn,On,kn,An]),er=f.z.discriminatedUnion(`type`,[Mn,Nn,Pn]),tr=f.z.discriminatedUnion(`type`,[In,Ln,Rn,Zn,zn,Bn,Vn,Hn,Un,Wn,Gn,Kn,qn,Jn,Yn,Xn,Qn]),nr=f.z.union([$n,er,tr]),rr=new Set([`BOOLEAN`,`CARDS`,`CHOICE`,`COUNTRY`,`DATE`,`DROPDOWN`,`EMAIL`,`LEGAL`,`NUMBER`,`PASSWORD`,`TEL`,`TEXT`,`URL`]),ir=f.z.object({id:f.z.string(),type:f.z.literal(`submit`),label:f.z.string(),className:f.z.string().optional(),disabled:f.z.boolean().optional().default(!1),order:f.z.number().optional(),visible:f.z.boolean().optional().default(!0),customizations:f.z.record(f.z.string(),f.z.any()).optional()}),ar=f.z.object({x:f.z.number(),y:f.z.number()}),or=f.z.object({id:f.z.string(),type:f.z.literal(`FLOW`),coordinates:ar,alias:f.z.string().min(1).max(150).optional(),config:f.z.object({flow_id:f.z.string().max(30),next_node:f.z.string().optional()})}),sr=f.z.object({id:f.z.string(),type:f.z.literal(`ROUTER`),coordinates:ar,alias:f.z.string().min(1).max(150),config:f.z.object({rules:f.z.array(f.z.object({id:f.z.string(),alias:f.z.string().min(1).max(150).optional(),condition:f.z.any(),next_node:f.z.string()})),fallback:f.z.string()})}),cr=f.z.object({id:f.z.string(),type:f.z.literal(`STEP`),coordinates:ar,alias:f.z.string().min(1).max(150).optional(),config:f.z.object({components:f.z.array(nr),next_node:f.z.string().optional()})}),lr=f.z.discriminatedUnion(`type`,[or,sr,cr]),ur=f.z.object({name:f.z.string().openapi({description:`The name of the form`}),messages:f.z.object({errors:f.z.record(f.z.string(),f.z.any()).optional(),custom:f.z.record(f.z.string(),f.z.any()).optional()}).optional(),languages:f.z.object({primary:f.z.string().optional(),default:f.z.string().optional()}).optional(),translations:f.z.record(f.z.string(),f.z.any()).optional(),nodes:f.z.array(lr).optional(),start:f.z.object({hidden_fields:f.z.array(f.z.object({key:f.z.string(),value:f.z.string()})).optional(),next_node:f.z.string().optional(),coordinates:ar.optional()}).optional(),ending:f.z.object({redirection:f.z.object({delay:f.z.number().optional(),target:f.z.string().optional()}).optional(),after_submit:f.z.object({flow_id:f.z.string().optional()}).optional(),coordinates:ar.optional(),resume_flow:f.z.boolean().optional()}).optional(),style:f.z.object({css:f.z.string().optional()}).optional(),links:f.z.object({sdkSrc:f.z.string().optional(),sdk_src:f.z.string().optional()}).optional()}).openapi({description:`Schema for flow-based forms (matches Auth0 Forms structure)`}),dr=Le.extend(ur.shape).extend({id:f.z.string()}),fr=f.z.object({id:f.z.number().optional(),text:f.z.string(),type:f.z.enum([`info`,`error`,`success`,`warning`])}),pr=f.z.object({id:f.z.string().optional(),text:f.z.string(),href:f.z.string(),linkText:f.z.string().optional()}),mr=f.z.object({name:f.z.string().optional(),action:f.z.string(),method:f.z.enum([`POST`,`GET`]),title:f.z.string().optional(),description:f.z.string().optional(),components:f.z.array(nr),messages:f.z.array(fr).optional(),links:f.z.array(pr).optional(),footer:f.z.string().optional()});function hr(e){return e.category===`BLOCK`}function gr(e){return e.category===`WIDGET`}function see(e){return e.category===`FIELD`}var _r=f.z.enum([`pre-user-registration`,`post-user-registration`,`post-user-login`,`post-user-update`,`validate-registration-username`,`pre-user-deletion`,`post-user-deletion`]),vr=f.z.enum([`pre-user-registration`,`post-user-registration`,`post-user-login`,`validate-registration-username`,`pre-user-deletion`,`post-user-deletion`]),yr=f.z.enum([`post-user-login`,`post-user-registration`,`post-user-update`,`credentials-exchange`]),br=f.z.enum([`post-user-login`,`credentials-exchange`,`pre-user-registration`,`post-user-registration`]),xr=f.z.enum([`ensure-username`,`set-preferred-username`,`account-linking`]),cee={"ensure-username":{name:`Ensure Username`,description:`Automatically assigns a username to users who sign in without one. Creates a linked username account for social/email users.`,trigger_ids:[`post-user-login`]},"set-preferred-username":{name:`Set Preferred Username`,description:`Sets the preferred_username claim on tokens based on the username from the primary or linked user.`,trigger_ids:[`credentials-exchange`]},"account-linking":{name:`Account Linking`,description:`Links a user to an existing primary account with the same verified email. Idempotent — safe to run on every login, registration, and email update.`,trigger_ids:[`post-user-login`,`post-user-registration`,`post-user-update`]}},Sr={enabled:f.z.boolean().default(!1),synchronous:f.z.boolean().default(!1),priority:f.z.number().optional(),hook_id:f.z.string().optional(),metadata:f.z.record(f.z.string(),f.z.unknown()).optional()},lee=f.z.object({...Sr,trigger_id:_r,url:f.z.string()}),uee=f.z.object({...Sr,trigger_id:vr,form_id:f.z.string()}),dee=f.z.object({...Sr,trigger_id:yr,template_id:xr}),fee=f.z.object({...Sr,trigger_id:br,code_id:f.z.string()}),Cr=f.z.union([lee,uee,dee,fee]),pee=f.z.object({...Sr,trigger_id:_r}).extend(Le.shape).extend({hook_id:f.z.string(),url:f.z.string()}),mee=f.z.object({...Sr,trigger_id:vr}).extend(Le.shape).extend({hook_id:f.z.string(),form_id:f.z.string()}),hee=f.z.object({...Sr,trigger_id:yr}).extend(Le.shape).extend({hook_id:f.z.string(),template_id:xr}),gee=f.z.object({...Sr,trigger_id:br}).extend(Le.shape).extend({hook_id:f.z.string(),code_id:f.z.string()}),wr=f.z.union([pee,mee,hee,gee]),Tr=f.z.object({code:f.z.string().max(1e5),secrets:f.z.record(f.z.string(),f.z.string()).optional()}),Er=Tr.extend({id:f.z.string(),tenant_id:f.z.string()}).extend(Le.shape),Dr=f.z.object({name:f.z.string().optional()}),Or=f.z.object({email:f.z.string().optional()}),kr=f.z.object({id:f.z.string().optional(),organization_id:f.z.string().max(50),inviter:Dr,invitee:Or,invitation_url:f.z.string().url(),client_id:f.z.string(),connection_id:f.z.string().optional(),app_metadata:f.z.record(f.z.string(),f.z.any()).default({}).optional(),user_metadata:f.z.record(f.z.string(),f.z.any()).default({}).optional(),ttl_sec:f.z.number().int().max(2592e3).default(604800).optional(),roles:f.z.array(f.z.string()).default([]).optional(),send_invitation_email:f.z.boolean().default(!0).optional()}),Ar=f.z.object({id:f.z.string(),organization_id:f.z.string().max(50),created_at:f.z.string().datetime(),expires_at:f.z.string().datetime(),ticket_id:f.z.string().optional()}).extend(kr.omit({id:!0}).shape),jr=f.z.object({alg:f.z.enum([`RS256`,`RS384`,`RS512`,`ES256`,`ES384`,`ES512`,`HS256`,`HS384`,`HS512`]),kid:f.z.string().optional(),kty:f.z.enum([`RSA`,`EC`,`oct`]),use:f.z.enum([`sig`,`enc`]).optional(),n:f.z.string().optional(),e:f.z.string().optional(),crv:f.z.string().optional(),x:f.z.string().optional(),y:f.z.string().optional(),x5t:f.z.string().optional(),x5c:f.z.array(f.z.string()).optional()}).superRefine((e,t)=>{if(e.kty===`RSA`)for(let n of[`n`,`e`])e[n]||t.addIssue({code:f.z.ZodIssueCode.custom,path:[n],message:`RSA JWK is missing required member '${n}'`});else if(e.kty===`EC`)for(let n of[`crv`,`x`,`y`])e[n]||t.addIssue({code:f.z.ZodIssueCode.custom,path:[n],message:`EC JWK is missing required member '${n}'`})}),Mr=f.z.object({keys:f.z.array(jr)}),Nr=f.z.object({issuer:f.z.string(),authorization_endpoint:f.z.string(),token_endpoint:f.z.string(),userinfo_endpoint:f.z.string(),jwks_uri:f.z.string(),registration_endpoint:f.z.string().optional(),revocation_endpoint:f.z.string(),end_session_endpoint:f.z.string().optional(),scopes_supported:f.z.array(f.z.string()),response_types_supported:f.z.array(f.z.string()),grant_types_supported:f.z.array(f.z.string()).optional(),code_challenge_methods_supported:f.z.array(f.z.string()),response_modes_supported:f.z.array(f.z.string()),subject_types_supported:f.z.array(f.z.string()),id_token_signing_alg_values_supported:f.z.array(f.z.string()),token_endpoint_auth_methods_supported:f.z.array(f.z.string()),claims_supported:f.z.array(f.z.string()),request_uri_parameter_supported:f.z.boolean(),request_parameter_supported:f.z.boolean(),claims_parameter_supported:f.z.boolean().optional(),request_object_signing_alg_values_supported:f.z.array(f.z.string()).optional(),token_endpoint_auth_signing_alg_values_supported:f.z.array(f.z.string()),client_id_metadata_document_supported:f.z.boolean().optional()}),N=function(e){return e.PENDING=`pending`,e.AUTHENTICATED=`authenticated`,e.AWAITING_EMAIL_VERIFICATION=`awaiting_email_verification`,e.AWAITING_MFA=`awaiting_mfa`,e.AWAITING_HOOK=`awaiting_hook`,e.AWAITING_CONTINUATION=`awaiting_continuation`,e.AWAITING_CONSENT=`awaiting_consent`,e.COMPLETED=`completed`,e.FAILED=`failed`,e.EXPIRED=`expired`,e}({}),Pr=f.z.nativeEnum(N),Fr=f.z.object({strategy:f.z.string(),strategy_type:f.z.string()}),Ir=f.z.object({csrf_token:f.z.string(),auth0Client:f.z.string().optional(),authParams:ln,expires_at:f.z.string(),deleted_at:f.z.string().optional(),ip:f.z.string().optional(),useragent:f.z.string().optional(),session_id:f.z.string().optional(),authorization_url:f.z.string().optional(),state:Pr.optional().default(`pending`),state_data:f.z.string().optional(),failure_reason:f.z.string().optional(),user_id:f.z.string().optional(),auth_connection:f.z.string().optional(),auth_strategy:Fr.optional(),authenticated_at:f.z.string().optional()}).openapi({description:`This represents a login sesion`}),Lr=Ir.extend({id:f.z.string().openapi({description:`This is is used as the state in the universal login`}),created_at:f.z.string(),updated_at:f.z.string()}),P={ACLS_SUMMARY:`acls_summary`,ACTIONS_EXECUTION_FAILED:`actions_execution_failed`,API_LIMIT:`api_limit`,API_LIMIT_WARNING:`api_limit_warning`,APPI:`appi`,CIBA_EXCHANGE_FAILED:`ciba_exchange_failed`,CIBA_EXCHANGE_SUCCEEDED:`ciba_exchange_succeeded`,CIBA_START_FAILED:`ciba_start_failed`,CIBA_START_SUCCEEDED:`ciba_start_succeeded`,CODE_LINK_SENT:`cls`,CODE_SENT:`cs`,DEPRECATION_NOTICE:`depnote`,FAILED_LOGIN:`f`,FAILED_BY_CONNECTOR:`fc`,FAILED_CHANGE_EMAIL:`fce`,FAILED_BY_CORS:`fco`,FAILED_CROSS_ORIGIN_AUTHENTICATION:`fcoa`,FAILED_CHANGE_PASSWORD:`fcp`,FAILED_POST_CHANGE_PASSWORD_HOOK:`fcph`,FAILED_CHANGE_PHONE_NUMBER:`fcpn`,FAILED_CHANGE_PASSWORD_REQUEST:`fcpr`,FAILED_CONNECTOR_PROVISIONING:`fcpro`,FAILED_CHANGE_USERNAME:`fcu`,FAILED_DELEGATION:`fd`,FAILED_DEVICE_ACTIVATION:`fdeac`,FAILED_DEVICE_AUTHORIZATION_REQUEST:`fdeaz`,USER_CANCELED_DEVICE_CONFIRMATION:`fdecc`,FAILED_USER_DELETION:`fdu`,FAILED_EXCHANGE_AUTHORIZATION_CODE_FOR_ACCESS_TOKEN:`feacft`,FAILED_EXCHANGE_ACCESS_TOKEN_FOR_CLIENT_CREDENTIALS:`feccft`,FAILED_EXCHANGE_CUSTOM_TOKEN:`fecte`,FAILED_EXCHANGE_DEVICE_CODE_FOR_ACCESS_TOKEN:`fede`,FAILED_FEDERATED_LOGOUT:`federated_logout_failed`,FAILED_EXCHANGE_NATIVE_SOCIAL_LOGIN:`fens`,FAILED_EXCHANGE_PASSWORD_OOB_FOR_ACCESS_TOKEN:`feoobft`,FAILED_EXCHANGE_PASSWORD_OTP_FOR_ACCESS_TOKEN:`feotpft`,FAILED_EXCHANGE_PASSWORD_FOR_ACCESS_TOKEN:`fepft`,FAILED_EXCHANGE_PASSWORDLESS_OTP_FOR_ACCESS_TOKEN:`fepotpft`,FAILED_EXCHANGE_PASSWORD_MFA_RECOVERY_FOR_ACCESS_TOKEN:`fercft`,FAILED_EXCHANGE_ROTATING_REFRESH_TOKEN:`ferrt`,FAILED_EXCHANGE_REFRESH_TOKEN_FOR_ACCESS_TOKEN:`fertft`,FAILED_EXCHANGE_SUBJECT_TOKEN_FOR_ACCESS_TOKEN:`festft`,FAILED_HOOK:`fh`,FAILED_IMPERSONATION:`fimp`,FAILED_INVITE_ACCEPT:`fi`,FAILED_LOGOUT:`flo`,FLOWS_EXECUTION_COMPLETED:`flows_execution_completed`,FLOWS_EXECUTION_FAILED:`flows_execution_failed`,FAILED_SENDING_NOTIFICATION:`fn`,FORMS_SUBMISSION_FAILED:`forms_submission_failed`,FORMS_SUBMISSION_SUCCEEDED:`forms_submission_succeeded`,FAILED_LOGIN_INCORRECT_PASSWORD:`fp`,FAILED_PUSHED_AUTHORIZATION_REQUEST:`fpar`,FAILED_POST_USER_REGISTRATION_HOOK:`fpurh`,FAILED_SIGNUP:`fs`,FAILED_SILENT_AUTH:`fsa`,FAILED_LOGIN_INVALID_EMAIL_USERNAME:`fu`,FAILED_USERS_IMPORT:`fui`,FAILED_VERIFICATION_EMAIL:`fv`,FAILED_VERIFICATION_EMAIL_REQUEST:`fvr`,EMAIL_VERIFICATION_CONFIRMED:`gd_auth_email_verification`,EMAIL_VERIFICATION_FAILED:`gd_auth_fail_email_verification`,MFA_AUTH_FAILED:`gd_auth_failed`,MFA_AUTH_REJECTED:`gd_auth_rejected`,MFA_AUTH_SUCCESS:`gd_auth_succeed`,MFA_ENROLLMENT_COMPLETE:`gd_enrollment_complete`,TOO_MANY_MFA_FAILURES:`gd_otp_rate_limit_exceed`,MFA_RECOVERY_FAILED:`gd_recovery_failed`,MFA_RECOVERY_RATE_LIMIT_EXCEED:`gd_recovery_rate_limit_exceed`,MFA_RECOVERY_SUCCESS:`gd_recovery_succeed`,MFA_EMAIL_SENT:`gd_send_email`,EMAIL_VERIFICATION_SENT:`gd_send_email_verification`,EMAIL_VERIFICATION_SEND_FAILURE:`gd_send_email_verification_failure`,PUSH_NOTIFICATION_SENT:`gd_send_pn`,ERROR_SENDING_MFA_PUSH_NOTIFICATION:`gd_send_pn_failure`,MFA_SMS_SENT:`gd_send_sms`,ERROR_SENDING_MFA_SMS:`gd_send_sms_failure`,MFA_VOICE_CALL_SUCCESS:`gd_send_voice`,MFA_VOICE_CALL_FAILED:`gd_send_voice_failure`,SECOND_FACTOR_STARTED:`gd_start_auth`,MFA_ENROLL_STARTED:`gd_start_enroll`,MFA_ENROLLMENT_FAILED:`gd_start_enroll_failed`,GUARDIAN_TENANT_UPDATE:`gd_tenant_update`,UNENROLL_DEVICE_ACCOUNT:`gd_unenroll`,UPDATE_DEVICE_ACCOUNT:`gd_update_device_account`,WEBAUTHN_CHALLENGE_FAILED:`gd_webauthn_challenge_failed`,WEBAUTHN_ENROLLMENT_FAILED:`gd_webauthn_enrollment_failed`,FAILED_KMS_API_OPERATION:`kms_key_management_failure`,SUCCESS_KMS_API_OPERATION:`kms_key_management_success`,KMS_KEY_STATE_CHANGED:`kms_key_state_changed`,TOO_MANY_CALLS_TO_DELEGATION:`limit_delegation`,BLOCKED_IP_ADDRESS:`limit_mu`,BLOCKED_ACCOUNT_IP:`limit_sul`,BLOCKED_ACCOUNT_EMAIL:`limit_wc`,INFORMATION:`i`,MFA_REQUIRED:`mfar`,MANAGEMENT_API_READ_OPERATION:`mgmt_api_read`,FAILED_AUTHENTICATION_METHOD_OPERATION_MY_ACCOUNT:`my_account_authentication_method_failed`,SUCCESSFUL_AUTHENTICATION_METHOD_OPERATION_MY_ACCOUNT:`my_account_authentication_method_succeeded`,FAILED_OIDC_BACKCHANNEL_LOGOUT:`oidc_backchannel_logout_failed`,SUCCESSFUL_OIDC_BACKCHANNEL_LOGOUT:`oidc_backchannel_logout_succeeded`,ORGANIZATION_MEMBER_ADDED:`organization_member_added`,PASSKEY_CHALLENGE_FAILED:`passkey_challenge_failed`,PASSKEY_CHALLENGE_STARTED:`passkey_challenge_started`,PRE_LOGIN_ASSESSMENT:`pla`,BREACHED_PASSWORD:`pwd_leak`,BREACHED_PASSWORD_ON_RESET:`reset_pwd_leak`,SUCCESS_RESOURCE_CLEANUP:`resource_cleanup`,RICH_CONSENTS_ACCESS_ERROR:`rich_consents_access_error`,SUCCESS_LOGIN:`s`,SUCCESS_API_OPERATION:`sapi`,FAILED_API_OPERATION:`fapi`,SUCCESS_CHANGE_EMAIL:`sce`,SUCCESS_CROSS_ORIGIN_AUTHENTICATION:`scoa`,SUCCESS_CHANGE_PASSWORD:`scp`,SUCCESS_CHANGE_PHONE_NUMBER:`scpn`,SUCCESS_CHANGE_PASSWORD_REQUEST:`scpr`,SUCCESS_CHANGE_USERNAME:`scu`,SUCCESS_CREDENTIAL_VALIDATION:`scv`,SUCCESS_DELEGATION:`sd`,SUCCESS_USER_DELETION:`sdu`,SUCCESS_EXCHANGE_AUTHORIZATION_CODE_FOR_ACCESS_TOKEN:`seacft`,SUCCESS_EXCHANGE_ACCESS_TOKEN_FOR_CLIENT_CREDENTIALS:`seccft`,SUCCESS_EXCHANGE_CUSTOM_TOKEN:`secte`,SUCCESS_EXCHANGE_DEVICE_CODE_FOR_ACCESS_TOKEN:`sede`,SUCCESS_EXCHANGE_NATIVE_SOCIAL_LOGIN:`sens`,SUCCESS_EXCHANGE_PASSWORD_OOB_FOR_ACCESS_TOKEN:`seoobft`,SUCCESS_EXCHANGE_PASSWORD_OTP_FOR_ACCESS_TOKEN:`seotpft`,SUCCESS_EXCHANGE_PASSWORDLESS_OTP_FOR_ACCESS_TOKEN:`sepotpft`,SUCCESS_EXCHANGE_PASSWORD_FOR_ACCESS_TOKEN:`sepft`,SUCCESS_EXCHANGE_PASSKEY_OOB_FOR_ACCESS_TOKEN:`sepkoobft`,SUCCESS_EXCHANGE_PASSKEY_OTP_FOR_ACCESS_TOKEN:`sepkotpft`,SUCCESS_EXCHANGE_PASSKEY_MFA_RECOVERY_FOR_ACCESS_TOKEN:`sepkrcft`,SUCCESS_EXCHANGE_PASSWORD_MFA_RECOVERY_FOR_ACCESS_TOKEN:`sercft`,SUCCESS_EXCHANGE_REFRESH_TOKEN_FOR_ACCESS_TOKEN:`sertft`,SUCCESS_EXCHANGE_SUBJECT_TOKEN_FOR_ACCESS_TOKEN:`sestft`,SUCCESS_IMPERSONATION:`simp`,SUCCESSFULLY_ACCEPTED_USER_INVITE:`si`,BREACHED_PASSWORD_ON_SIGNUP:`signup_pwd_leak`,SUCCESS_LOGOUT:`slo`,SUCCESS_HOOK:`sh`,SUCCESS_PASSWORD_MIGRATION:`spm`,SUCCESS_REVOCATION:`srrt`,SUCCESS_SIGNUP:`ss`,FAILED_SS_SSO_OPERATION:`ss_sso_failure`,INFORMATION_FROM_SS_SSO_OPERATION:`ss_sso_info`,SUCCESS_SS_SSO_OPERATION:`ss_sso_success`,SUCCESS_SILENT_AUTH:`ssa`,SUCCESSFUL_SCIM_OPERATION:`sscim`,SUCCESSFULLY_IMPORTED_USERS:`sui`,SUCCESS_VERIFICATION_EMAIL:`sv`,SUCCESS_VERIFICATION_EMAIL_REQUEST:`svr`,MAX_AMOUNT_OF_AUTHENTICATORS:`too_many_records`,USER_LOGIN_BLOCK_RELEASED:`ublkdu`,FAILED_UNIVERSAL_LOGOUT:`universal_logout_failed`,SUCCESSFUL_UNIVERSAL_LOGOUT:`universal_logout_succeeded`,WARNING_DURING_LOGIN:`w`,WARNING_SENDING_NOTIFICATION:`wn`,WARNING_USER_MANAGEMENT:`wum`},Rr=f.z.string().refine(e=>Object.values(P).includes(e),{message:`Invalid log type`}),zr={[P.ACLS_SUMMARY]:`ACLs Summary`,[P.ACTIONS_EXECUTION_FAILED]:`Actions Execution Failed`,[P.API_LIMIT]:`API Rate Limit Reached`,[P.API_LIMIT_WARNING]:`API Rate Limit Warning`,[P.APPI]:`API Operation`,[P.CIBA_EXCHANGE_FAILED]:`CIBA Exchange Failed`,[P.CIBA_EXCHANGE_SUCCEEDED]:`CIBA Exchange Succeeded`,[P.CIBA_START_FAILED]:`CIBA Start Failed`,[P.CIBA_START_SUCCEEDED]:`CIBA Start Succeeded`,[P.CODE_LINK_SENT]:`Code/Link Sent`,[P.CODE_SENT]:`Code Sent`,[P.DEPRECATION_NOTICE]:`Deprecation Notice`,[P.FAILED_LOGIN]:`Failed Login`,[P.FAILED_BY_CONNECTOR]:`Failed by Connector`,[P.FAILED_CHANGE_EMAIL]:`Failed Change Email`,[P.FAILED_BY_CORS]:`Failed by CORS`,[P.FAILED_CROSS_ORIGIN_AUTHENTICATION]:`Failed Cross Origin Authentication`,[P.FAILED_CHANGE_PASSWORD]:`Failed Change Password`,[P.FAILED_POST_CHANGE_PASSWORD_HOOK]:`Failed Post-Change Password Hook`,[P.FAILED_CHANGE_PHONE_NUMBER]:`Failed Change Phone Number`,[P.FAILED_CHANGE_PASSWORD_REQUEST]:`Failed Change Password Request`,[P.FAILED_CONNECTOR_PROVISIONING]:`Failed Connector Provisioning`,[P.FAILED_CHANGE_USERNAME]:`Failed Change Username`,[P.FAILED_DELEGATION]:`Failed Delegation`,[P.FAILED_DEVICE_ACTIVATION]:`Failed Device Activation`,[P.FAILED_DEVICE_AUTHORIZATION_REQUEST]:`Failed Device Authorization Request`,[P.USER_CANCELED_DEVICE_CONFIRMATION]:`User Canceled Device Confirmation`,[P.FAILED_USER_DELETION]:`Failed User Deletion`,[P.FAILED_EXCHANGE_AUTHORIZATION_CODE_FOR_ACCESS_TOKEN]:`Failed Exchange Authorization Code for Access Token`,[P.FAILED_EXCHANGE_ACCESS_TOKEN_FOR_CLIENT_CREDENTIALS]:`Failed Exchange Access Token for Client Credentials`,[P.FAILED_EXCHANGE_CUSTOM_TOKEN]:`Failed Exchange Custom Token`,[P.FAILED_EXCHANGE_DEVICE_CODE_FOR_ACCESS_TOKEN]:`Failed Exchange Device Code for Access Token`,[P.FAILED_FEDERATED_LOGOUT]:`Failed Federated Logout`,[P.FAILED_EXCHANGE_NATIVE_SOCIAL_LOGIN]:`Failed Exchange Native Social Login`,[P.FAILED_EXCHANGE_PASSWORD_OOB_FOR_ACCESS_TOKEN]:`Failed Exchange Password OOB for Access Token`,[P.FAILED_EXCHANGE_PASSWORD_OTP_FOR_ACCESS_TOKEN]:`Failed Exchange Password OTP for Access Token`,[P.FAILED_EXCHANGE_PASSWORD_FOR_ACCESS_TOKEN]:`Failed Exchange Password for Access Token`,[P.FAILED_EXCHANGE_PASSWORDLESS_OTP_FOR_ACCESS_TOKEN]:`Failed Exchange Passwordless OTP for Access Token`,[P.FAILED_EXCHANGE_PASSWORD_MFA_RECOVERY_FOR_ACCESS_TOKEN]:`Failed Exchange Password MFA Recovery for Access Token`,[P.FAILED_EXCHANGE_ROTATING_REFRESH_TOKEN]:`Failed Exchange Rotating Refresh Token`,[P.FAILED_EXCHANGE_REFRESH_TOKEN_FOR_ACCESS_TOKEN]:`Failed Exchange Refresh Token for Access Token`,[P.FAILED_EXCHANGE_SUBJECT_TOKEN_FOR_ACCESS_TOKEN]:`Failed Exchange Subject Token for Access Token`,[P.FAILED_HOOK]:`Failed Hook`,[P.FAILED_IMPERSONATION]:`Failed Impersonation`,[P.FAILED_INVITE_ACCEPT]:`Failed Invite Accept`,[P.FAILED_LOGOUT]:`Failed Logout`,[P.FLOWS_EXECUTION_COMPLETED]:`Flows Execution Completed`,[P.FLOWS_EXECUTION_FAILED]:`Flows Execution Failed`,[P.FAILED_SENDING_NOTIFICATION]:`Failed Sending Notification`,[P.FORMS_SUBMISSION_FAILED]:`Forms Submission Failed`,[P.FORMS_SUBMISSION_SUCCEEDED]:`Forms Submission Succeeded`,[P.FAILED_LOGIN_INCORRECT_PASSWORD]:`Failed Login - Incorrect Password`,[P.FAILED_PUSHED_AUTHORIZATION_REQUEST]:`Failed Pushed Authorization Request`,[P.FAILED_POST_USER_REGISTRATION_HOOK]:`Failed Post-User Registration Hook`,[P.FAILED_SIGNUP]:`Failed Signup`,[P.FAILED_SILENT_AUTH]:`Failed Silent Auth`,[P.FAILED_LOGIN_INVALID_EMAIL_USERNAME]:`Failed Login - Invalid Email/Username`,[P.FAILED_USERS_IMPORT]:`Failed Users Import`,[P.FAILED_VERIFICATION_EMAIL]:`Failed Verification Email`,[P.FAILED_VERIFICATION_EMAIL_REQUEST]:`Failed Verification Email Request`,[P.EMAIL_VERIFICATION_CONFIRMED]:`Email Verification Confirmed`,[P.EMAIL_VERIFICATION_FAILED]:`Email Verification Failed`,[P.MFA_AUTH_FAILED]:`MFA Auth Failed`,[P.MFA_AUTH_REJECTED]:`MFA Auth Rejected`,[P.MFA_AUTH_SUCCESS]:`MFA Auth Success`,[P.MFA_ENROLLMENT_COMPLETE]:`MFA Enrollment Complete`,[P.TOO_MANY_MFA_FAILURES]:`Too Many MFA Failures`,[P.MFA_RECOVERY_FAILED]:`MFA Recovery Failed`,[P.MFA_RECOVERY_RATE_LIMIT_EXCEED]:`MFA Recovery Rate Limit Exceeded`,[P.MFA_RECOVERY_SUCCESS]:`MFA Recovery Success`,[P.MFA_EMAIL_SENT]:`MFA Email Sent`,[P.EMAIL_VERIFICATION_SENT]:`Email Verification Sent`,[P.EMAIL_VERIFICATION_SEND_FAILURE]:`Email Verification Send Failure`,[P.PUSH_NOTIFICATION_SENT]:`Push Notification Sent`,[P.ERROR_SENDING_MFA_PUSH_NOTIFICATION]:`Error Sending MFA Push Notification`,[P.MFA_SMS_SENT]:`MFA SMS Sent`,[P.ERROR_SENDING_MFA_SMS]:`Error Sending MFA SMS`,[P.MFA_VOICE_CALL_SUCCESS]:`MFA Voice Call Success`,[P.MFA_VOICE_CALL_FAILED]:`MFA Voice Call Failed`,[P.SECOND_FACTOR_STARTED]:`Second Factor Started`,[P.MFA_ENROLL_STARTED]:`MFA Enroll Started`,[P.MFA_ENROLLMENT_FAILED]:`MFA Enrollment Failed`,[P.GUARDIAN_TENANT_UPDATE]:`Guardian Tenant Update`,[P.UNENROLL_DEVICE_ACCOUNT]:`Unenroll Device Account`,[P.UPDATE_DEVICE_ACCOUNT]:`Update Device Account`,[P.WEBAUTHN_CHALLENGE_FAILED]:`WebAuthn Challenge Failed`,[P.WEBAUTHN_ENROLLMENT_FAILED]:`WebAuthn Enrollment Failed`,[P.FAILED_KMS_API_OPERATION]:`Failed KMS API Operation`,[P.SUCCESS_KMS_API_OPERATION]:`Success KMS API Operation`,[P.KMS_KEY_STATE_CHANGED]:`KMS Key State Changed`,[P.TOO_MANY_CALLS_TO_DELEGATION]:`Too Many Calls to Delegation`,[P.BLOCKED_IP_ADDRESS]:`Blocked IP Address`,[P.BLOCKED_ACCOUNT_IP]:`Blocked Account (IP)`,[P.BLOCKED_ACCOUNT_EMAIL]:`Blocked Account (Email)`,[P.INFORMATION]:`Information`,[P.MFA_REQUIRED]:`MFA Required`,[P.MANAGEMENT_API_READ_OPERATION]:`Management API Read Operation`,[P.FAILED_AUTHENTICATION_METHOD_OPERATION_MY_ACCOUNT]:`Failed Authentication Method Operation (My Account)`,[P.SUCCESSFUL_AUTHENTICATION_METHOD_OPERATION_MY_ACCOUNT]:`Successful Authentication Method Operation (My Account)`,[P.FAILED_OIDC_BACKCHANNEL_LOGOUT]:`Failed OIDC Backchannel Logout`,[P.SUCCESSFUL_OIDC_BACKCHANNEL_LOGOUT]:`Successful OIDC Backchannel Logout`,[P.ORGANIZATION_MEMBER_ADDED]:`Organization Member Added`,[P.PASSKEY_CHALLENGE_FAILED]:`Passkey Challenge Failed`,[P.PASSKEY_CHALLENGE_STARTED]:`Passkey Challenge Started`,[P.PRE_LOGIN_ASSESSMENT]:`Pre-Login Assessment`,[P.BREACHED_PASSWORD]:`Breached Password`,[P.BREACHED_PASSWORD_ON_RESET]:`Breached Password on Reset`,[P.SUCCESS_RESOURCE_CLEANUP]:`Success Resource Cleanup`,[P.RICH_CONSENTS_ACCESS_ERROR]:`Rich Consents Access Error`,[P.SUCCESS_LOGIN]:`Success Login`,[P.SUCCESS_API_OPERATION]:`Success API Operation`,[P.FAILED_API_OPERATION]:`Failed API Operation`,[P.SUCCESS_CHANGE_EMAIL]:`Success Change Email`,[P.SUCCESS_CROSS_ORIGIN_AUTHENTICATION]:`Success Cross Origin Authentication`,[P.SUCCESS_CHANGE_PASSWORD]:`Success Change Password`,[P.SUCCESS_CHANGE_PHONE_NUMBER]:`Success Change Phone Number`,[P.SUCCESS_CHANGE_PASSWORD_REQUEST]:`Success Change Password Request`,[P.SUCCESS_CHANGE_USERNAME]:`Success Change Username`,[P.SUCCESS_CREDENTIAL_VALIDATION]:`Success Credential Validation`,[P.SUCCESS_DELEGATION]:`Success Delegation`,[P.SUCCESS_USER_DELETION]:`Success User Deletion`,[P.SUCCESS_EXCHANGE_AUTHORIZATION_CODE_FOR_ACCESS_TOKEN]:`Success Exchange Authorization Code for Access Token`,[P.SUCCESS_EXCHANGE_ACCESS_TOKEN_FOR_CLIENT_CREDENTIALS]:`Success Exchange Access Token for Client Credentials`,[P.SUCCESS_EXCHANGE_CUSTOM_TOKEN]:`Success Exchange Custom Token`,[P.SUCCESS_EXCHANGE_DEVICE_CODE_FOR_ACCESS_TOKEN]:`Success Exchange Device Code for Access Token`,[P.SUCCESS_EXCHANGE_NATIVE_SOCIAL_LOGIN]:`Success Exchange Native Social Login`,[P.SUCCESS_EXCHANGE_PASSWORD_OOB_FOR_ACCESS_TOKEN]:`Success Exchange Password OOB for Access Token`,[P.SUCCESS_EXCHANGE_PASSWORD_OTP_FOR_ACCESS_TOKEN]:`Success Exchange Password OTP for Access Token`,[P.SUCCESS_EXCHANGE_PASSWORDLESS_OTP_FOR_ACCESS_TOKEN]:`Success Exchange Passwordless OTP for Access Token`,[P.SUCCESS_EXCHANGE_PASSWORD_FOR_ACCESS_TOKEN]:`Success Exchange Password for Access Token`,[P.SUCCESS_EXCHANGE_PASSKEY_OOB_FOR_ACCESS_TOKEN]:`Success Exchange Passkey OOB for Access Token`,[P.SUCCESS_EXCHANGE_PASSKEY_OTP_FOR_ACCESS_TOKEN]:`Success Exchange Passkey OTP for Access Token`,[P.SUCCESS_EXCHANGE_PASSKEY_MFA_RECOVERY_FOR_ACCESS_TOKEN]:`Success Exchange Passkey MFA Recovery for Access Token`,[P.SUCCESS_EXCHANGE_PASSWORD_MFA_RECOVERY_FOR_ACCESS_TOKEN]:`Success Exchange Password MFA Recovery for Access Token`,[P.SUCCESS_EXCHANGE_REFRESH_TOKEN_FOR_ACCESS_TOKEN]:`Success Exchange Refresh Token for Access Token`,[P.SUCCESS_EXCHANGE_SUBJECT_TOKEN_FOR_ACCESS_TOKEN]:`Success Exchange Subject Token for Access Token`,[P.SUCCESS_IMPERSONATION]:`Success Impersonation`,[P.SUCCESSFULLY_ACCEPTED_USER_INVITE]:`Successfully Accepted User Invite`,[P.BREACHED_PASSWORD_ON_SIGNUP]:`Breached Password on Signup`,[P.SUCCESS_LOGOUT]:`Success Logout`,[P.SUCCESS_HOOK]:`Success Hook`,[P.SUCCESS_PASSWORD_MIGRATION]:`Success Password Migration`,[P.SUCCESS_REVOCATION]:`Success Revocation`,[P.SUCCESS_SIGNUP]:`Success Signup`,[P.FAILED_SS_SSO_OPERATION]:`Failed SS SSO Operation`,[P.INFORMATION_FROM_SS_SSO_OPERATION]:`Information from SS SSO Operation`,[P.SUCCESS_SS_SSO_OPERATION]:`Success SS SSO Operation`,[P.SUCCESS_SILENT_AUTH]:`Success Silent Auth`,[P.SUCCESSFUL_SCIM_OPERATION]:`Successful SCIM Operation`,[P.SUCCESSFULLY_IMPORTED_USERS]:`Successfully Imported Users`,[P.SUCCESS_VERIFICATION_EMAIL]:`Success Verification Email`,[P.SUCCESS_VERIFICATION_EMAIL_REQUEST]:`Success Verification Email Request`,[P.MAX_AMOUNT_OF_AUTHENTICATORS]:`Max Amount of Authenticators`,[P.USER_LOGIN_BLOCK_RELEASED]:`User Login Block Released`,[P.FAILED_UNIVERSAL_LOGOUT]:`Failed Universal Logout`,[P.SUCCESSFUL_UNIVERSAL_LOGOUT]:`Successful Universal Logout`,[P.WARNING_DURING_LOGIN]:`Warning During Login`,[P.WARNING_SENDING_NOTIFICATION]:`Warning Sending Notification`,[P.WARNING_USER_MANAGEMENT]:`Warning User Management`},Br=(()=>{let e={};for(let[t,n]of Object.entries(P))t.startsWith(`SUCCESS_`)||t.startsWith(`SUCCESSFUL_`)||t.startsWith(`SUCCESSFULLY_`)||t.endsWith(`_SUCCEEDED`)||t.endsWith(`_COMPLETED`)?e[n]=`success`:t.startsWith(`FAILED_`)||t.startsWith(`ERROR_`)||t.startsWith(`BREACHED_`)||t.startsWith(`BLOCKED_`)||t===`MFA_AUTH_FAILED`||t===`MFA_AUTH_REJECTED`||t===`MFA_RECOVERY_FAILED`||t===`MFA_ENROLLMENT_FAILED`||t===`EMAIL_VERIFICATION_FAILED`||t===`WEBAUTHN_CHALLENGE_FAILED`||t===`WEBAUTHN_ENROLLMENT_FAILED`||t===`PASSKEY_CHALLENGE_FAILED`||t===`FLOWS_EXECUTION_FAILED`||t===`FORMS_SUBMISSION_FAILED`||t===`CIBA_EXCHANGE_FAILED`||t===`CIBA_START_FAILED`||t===`ACTIONS_EXECUTION_FAILED`||t===`RICH_CONSENTS_ACCESS_ERROR`||t===`USER_CANCELED_DEVICE_CONFIRMATION`||t===`TOO_MANY_MFA_FAILURES`||t===`MFA_RECOVERY_RATE_LIMIT_EXCEED`||t===`API_LIMIT`||t===`MAX_AMOUNT_OF_AUTHENTICATORS`?e[n]=`failure`:t.startsWith(`WARNING_`)||t===`API_LIMIT_WARNING`||t===`DEPRECATION_NOTICE`||t===`PRE_LOGIN_ASSESSMENT`?e[n]=`warning`:t===`CODE_SENT`||t===`CODE_LINK_SENT`||t===`MFA_EMAIL_SENT`||t===`MFA_SMS_SENT`||t===`EMAIL_VERIFICATION_SENT`||t===`PUSH_NOTIFICATION_SENT`?e[n]=`code_sent`:t===`INFORMATION`||t===`INFORMATION_FROM_SS_SSO_OPERATION`||t===`MANAGEMENT_API_READ_OPERATION`||t===`APPI`||t===`ACLS_SUMMARY`||t===`ORGANIZATION_MEMBER_ADDED`?e[n]=`info`:e[n]=`other`;return e})();function Vr(e){return zr[e]??e}function Hr(e){return Br[e]??`other`}var Ur=f.z.object({name:f.z.string(),version:f.z.string(),env:f.z.object({node:f.z.string().optional()}).optional()}),Wr=f.z.object({country_code:f.z.string().length(2),city_name:f.z.string(),latitude:f.z.string(),longitude:f.z.string(),time_zone:f.z.string(),continent_code:f.z.string()}),Gr=f.z.object({type:Rr,date:f.z.string(),description:f.z.string().optional(),ip:f.z.string().optional(),user_agent:f.z.string().optional(),details:f.z.any().optional(),isMobile:f.z.boolean(),user_id:f.z.string().optional(),user_name:f.z.string().optional(),connection:f.z.string().optional(),connection_id:f.z.string().optional(),client_id:f.z.string().optional(),client_name:f.z.string().optional(),audience:f.z.string().optional(),scope:f.z.string().optional(),strategy:f.z.string().optional(),strategy_type:f.z.string().optional(),hostname:f.z.string().optional(),auth0_client:Ur.optional(),log_id:f.z.string().optional(),location_info:Wr.optional()}),Kr=Gr.extend({log_id:f.z.string()}),qr=f.z.enum([`http`,`eventbridge`,`eventgrid`,`splunk`,`datadog`,`sumo`]),Jr=f.z.enum([`active`,`paused`,`suspended`]),Yr=f.z.object({type:f.z.string(),name:f.z.string()}),Xr=f.z.object({name:f.z.string(),type:qr,status:Jr.optional(),sink:f.z.record(f.z.string(),f.z.unknown()),filters:f.z.array(Yr).optional(),isPriority:f.z.boolean().optional()}),Zr=Xr.extend({id:f.z.string(),status:Jr,created_at:f.z.string().optional(),updated_at:f.z.string().optional()}),Qr=f.z.enum([`auth0`,`cognito`,`okta`,`oidc`]),$r=f.z.object({domain:f.z.string(),client_id:f.z.string(),client_secret:f.z.string(),audience:f.z.string().optional(),scope:f.z.string().optional()}),ei=f.z.object({id:f.z.string().optional(),name:f.z.string(),provider:Qr,connection:f.z.string(),enabled:f.z.boolean().default(!0),credentials:$r}),ti=f.z.object({id:f.z.string(),created_at:f.z.string(),updated_at:f.z.string()}).extend(ei.shape),ni=f.z.object({enabled:f.z.boolean().optional(),shields:f.z.array(f.z.string()).optional(),admin_notification_frequency:f.z.array(f.z.string()).optional(),method:f.z.string().optional(),stage:f.z.object({"pre-user-registration":f.z.object({shields:f.z.array(f.z.string()).optional()}).optional(),"pre-change-password":f.z.object({shields:f.z.array(f.z.string()).optional()}).optional()}).optional()}),ri=f.z.object({enabled:f.z.boolean().optional(),shields:f.z.array(f.z.string()).optional(),allowlist:f.z.array(f.z.string()).optional(),mode:f.z.string().optional(),max_attempts:f.z.number().optional()}),ii=f.z.object({enabled:f.z.boolean().optional(),shields:f.z.array(f.z.string()).optional(),allowlist:f.z.array(f.z.string()).optional(),stage:f.z.object({"pre-login":f.z.object({max_attempts:f.z.number().optional(),rate:f.z.number().optional()}).optional(),"pre-user-registration":f.z.object({max_attempts:f.z.number().optional(),rate:f.z.number().optional()}).optional()}).optional()}),ai=f.z.object({breached_password_detection:ni.optional(),brute_force_protection:ri.optional(),suspicious_ip_throttling:ii.optional()}),oi=f.z.object({id:f.z.string().optional(),user_id:f.z.string(),password:f.z.string(),algorithm:f.z.enum([`bcrypt`,`argon2id`]).default(`argon2id`),is_current:f.z.boolean().default(!0)}),si=oi.extend({id:f.z.string(),created_at:f.z.string(),updated_at:f.z.string()}),ci=f.z.object({initial_user_agent:f.z.string().describe(`First user agent of the device from which this user logged in`),initial_ip:f.z.string().describe(`First IP address associated with this session`),initial_asn:f.z.string().describe(`First autonomous system number associated with this session`),last_user_agent:f.z.string().describe(`Last user agent of the device from which this user logged in`),last_ip:f.z.string().describe(`Last IP address from which this user logged in`),last_asn:f.z.string().describe(`Last autonomous system number from which this user logged in`)}),li=f.z.object({id:f.z.string(),revoked_at:f.z.string().optional(),used_at:f.z.string().optional(),user_id:f.z.string().describe(`The user ID associated with the session`),expires_at:f.z.string().optional(),login_session_id:f.z.string(),idle_expires_at:f.z.string().optional(),device:ci.describe(`Metadata related to the device used in the session`),clients:f.z.array(f.z.string()).describe(`List of client details for the session`)}),ui=f.z.object({created_at:f.z.string(),updated_at:f.z.string(),authenticated_at:f.z.string(),last_interaction_at:f.z.string()}).extend(li.shape),di=f.z.object({kid:f.z.string().openapi({description:`The key id of the signing key`}),tenant_id:f.z.string().optional().openapi({description:`The tenant the key belongs to. Omitted means the key is shared / control-plane scoped.`}),cert:f.z.string().openapi({description:`The public certificate of the signing key`}),fingerprint:f.z.string().openapi({description:`The cert fingerprint`}),thumbprint:f.z.string().openapi({description:`The cert thumbprint`}),pkcs7:f.z.string().optional().openapi({description:`The private key in pkcs7 format`}),current:f.z.boolean().optional().openapi({description:`True if the key is the current key`}),next:f.z.boolean().optional().openapi({description:`True if the key is the next key`}),previous:f.z.boolean().optional().openapi({description:`True if the key is the previous key`}),current_since:f.z.string().optional().openapi({description:`The date and time when the key became the current key`}),current_until:f.z.string().optional().openapi({description:`The date and time when the current key was rotated`}),revoked:f.z.boolean().optional().openapi({description:`True if the key is revoked`}),revoked_at:f.z.string().optional().openapi({description:`The date and time when the key was revoked`}),connection:f.z.string().optional().openapi({description:`The connection identifier associated with the key`}),type:f.z.enum([`jwt_signing`,`saml_encryption`]).openapi({description:`The type of the signing key`})}),fi=f.z.object({id:f.z.string().optional(),audience:f.z.string().optional(),friendly_name:f.z.string(),picture_url:f.z.string().optional(),support_email:f.z.string().optional(),support_url:f.z.string().optional(),sender_email:f.z.string().email().optional(),sender_name:f.z.string().optional(),session_lifetime:f.z.number().optional(),idle_session_lifetime:f.z.number().optional(),ephemeral_session_lifetime:f.z.number().optional(),idle_ephemeral_session_lifetime:f.z.number().optional(),session_cookie:f.z.object({mode:f.z.enum([`persistent`,`non-persistent`]).optional()}).optional(),allowed_logout_urls:f.z.array(f.z.string()).optional(),default_redirection_uri:f.z.string().optional(),default_client_id:f.z.string().optional(),enabled_locales:f.z.array(f.z.string()).optional(),default_directory:f.z.string().optional(),error_page:f.z.object({html:f.z.string().optional(),show_log_link:f.z.boolean().optional(),url:f.z.string().optional()}).nullish(),flags:f.z.object({allow_changing_enable_sso:f.z.boolean().optional(),allow_legacy_delegation_grant_types:f.z.boolean().optional(),allow_legacy_ro_grant_types:f.z.boolean().optional(),allow_legacy_tokeninfo_endpoint:f.z.boolean().optional(),change_pwd_flow_v1:f.z.boolean().optional(),client_id_metadata_document_registration:f.z.boolean().optional(),custom_domains_provisioning:f.z.boolean().optional(),dashboard_insights_view:f.z.boolean().optional(),dashboard_log_streams_next:f.z.boolean().optional(),disable_clickjack_protection_headers:f.z.boolean().optional(),disable_fields_map_fix:f.z.boolean().optional(),disable_impersonation:f.z.boolean().optional(),disable_management_api_sms_obfuscation:f.z.boolean().optional(),enable_adfs_waad_email_verification:f.z.boolean().optional(),enable_apis_section:f.z.boolean().optional(),enable_client_connections:f.z.boolean().optional(),enable_custom_domain_in_emails:f.z.boolean().optional(),enable_dynamic_client_registration:f.z.boolean().optional(),dcr_require_initial_access_token:f.z.boolean().optional(),dcr_allowed_grant_types:f.z.array(f.z.string()).optional(),allow_http_return_to:f.z.array(f.z.string().refine(e=>{try{let t=new URL(e);return t.protocol===`http:`&&(t.pathname===``||t.pathname===`/`)&&!t.search&&!t.hash&&e===t.origin}catch{return!1}},{message:`must be a fully-qualified http origin (scheme + host + port, no path)`})).optional(),enable_idtoken_api2:f.z.boolean().optional(),enable_legacy_logs_search_v2:f.z.boolean().optional(),enable_legacy_profile:f.z.boolean().optional(),enable_pipeline2:f.z.boolean().optional(),enable_public_signup_user_exists_error:f.z.boolean().optional(),enable_sso:f.z.boolean().optional(),enforce_client_authentication_on_passwordless_start:f.z.boolean().optional(),genai_trial:f.z.boolean().optional(),improved_signup_bot_detection_in_classic:f.z.boolean().optional(),mfa_show_factor_list_on_enrollment:f.z.boolean().optional(),no_disclose_enterprise_connections:f.z.boolean().optional(),remove_alg_from_jwks:f.z.boolean().optional(),revoke_refresh_token_grant:f.z.boolean().optional(),trust_azure_adfs_email_verified_connection_property:f.z.boolean().optional(),use_scope_descriptions_for_consent:f.z.boolean().optional(),inherit_global_permissions_in_organizations:f.z.boolean().optional(),restrict_undefined_scopes:f.z.boolean().optional()}).optional(),sandbox_version:f.z.string().optional(),legacy_sandbox_version:f.z.string().optional(),sandbox_versions_available:f.z.array(f.z.string()).optional(),change_password:f.z.object({enabled:f.z.boolean().optional(),html:f.z.string().optional()}).optional(),guardian_mfa_page:f.z.object({enabled:f.z.boolean().optional(),html:f.z.string().optional()}).optional(),device_flow:f.z.object({charset:f.z.enum([`base20`,`digits`]).optional(),mask:f.z.string().max(20).optional()}).optional(),default_token_quota:f.z.object({clients:f.z.object({client_credentials:f.z.record(f.z.string(),f.z.any()).optional()}).optional(),organizations:f.z.object({client_credentials:f.z.record(f.z.string(),f.z.any()).optional()}).optional()}).nullish(),default_audience:f.z.string().optional(),default_organization:f.z.string().optional(),sessions:f.z.object({oidc_logout_prompt_enabled:f.z.boolean().optional()}).optional(),oidc_logout:f.z.object({rp_logout_end_session_endpoint_discovery:f.z.boolean().optional()}).optional(),allow_organization_name_in_authentication_api:f.z.boolean().optional(),customize_mfa_in_postlogin_action:f.z.boolean().optional(),acr_values_supported:f.z.array(f.z.string()).optional(),mtls:f.z.object({enable_endpoint_aliases:f.z.boolean().optional()}).nullish(),pushed_authorization_requests_supported:f.z.boolean().optional(),authorization_response_iss_parameter_supported:f.z.boolean().optional(),deployment_type:f.z.enum([`shared`,`wfp`]).default(`shared`).optional(),provisioning_state:f.z.enum([`pending`,`ready`,`failed`]).default(`ready`).optional(),provisioning_error:f.z.string().max(2048).optional(),provisioning_state_changed_at:f.z.string().optional(),bundle_configuration:f.z.string().max(64).optional(),worker_version:f.z.string().max(64).optional(),worker_script_name:f.z.string().max(255).optional(),storage_kind:f.z.enum([`own_d1`,`existing_d1`,`shared_planetscale`]).optional(),d1_database_id:f.z.string().max(64).optional(),attack_protection:ai.optional(),mfa:f.z.object({policy:f.z.enum([`never`,`always`]).default(`never`).optional(),factors:f.z.object({sms:f.z.boolean().default(!1),otp:f.z.boolean().default(!1),email:f.z.boolean().default(!1),push_notification:f.z.boolean().default(!1),webauthn_roaming:f.z.boolean().default(!1),webauthn_platform:f.z.boolean().default(!1),recovery_code:f.z.boolean().default(!1),duo:f.z.boolean().default(!1)}).optional(),sms_provider:f.z.object({provider:f.z.enum([`twilio`,`vonage`,`aws_sns`,`phone_message_hook`]).optional()}).optional(),twilio:f.z.object({sid:f.z.string().optional(),auth_token:f.z.string().optional(),from:f.z.string().optional(),messaging_service_sid:f.z.string().optional()}).optional(),phone_message:f.z.object({message:f.z.string().optional()}).optional()}).optional()}),pi=f.z.object({created_at:f.z.string().nullable().transform(e=>e??``),updated_at:f.z.string().nullable().transform(e=>e??``)}).extend(fi.shape).extend({id:f.z.string(),is_control_plane:f.z.boolean().optional()}),mi=function(e){return e.RefreshToken=`refresh_token`,e.AuthorizationCode=`authorization_code`,e.ClientCredential=`client_credentials`,e.Passwordless=`passwordless`,e.Password=`password`,e.OTP=`http://auth0.com/oauth/grant-type/passwordless/otp`,e.TokenExchange=`urn:ietf:params:oauth:grant-type:token-exchange`,e}({}),hi=f.z.object({access_token:f.z.string(),id_token:f.z.string().optional(),scope:f.z.string().optional(),state:f.z.string().optional(),refresh_token:f.z.string().optional(),token_type:f.z.string(),expires_in:f.z.number()});f.z.object({code:f.z.string(),state:f.z.string().optional()});var gi=f.z.object({button_border_radius:f.z.number(),button_border_weight:f.z.number(),buttons_style:f.z.enum([`pill`,`rounded`,`sharp`]),input_border_radius:f.z.number(),input_border_weight:f.z.number(),inputs_style:f.z.enum([`pill`,`rounded`,`sharp`]),show_widget_shadow:f.z.boolean(),widget_border_weight:f.z.number(),widget_corner_radius:f.z.number()}),_i=f.z.object({base_focus_color:f.z.string(),base_hover_color:f.z.string(),body_text:f.z.string(),captcha_widget_theme:f.z.enum([`auto`,`dark`,`light`]),error:f.z.string(),header:f.z.string(),icons:f.z.string(),input_background:f.z.string(),input_border:f.z.string(),input_filled_text:f.z.string(),input_labels_placeholders:f.z.string(),links_focused_components:f.z.string(),primary_button:f.z.string(),primary_button_label:f.z.string(),secondary_button_border:f.z.string(),secondary_button_label:f.z.string(),success:f.z.string(),widget_background:f.z.string(),widget_border:f.z.string()}),vi=f.z.object({bold:f.z.boolean(),size:f.z.number()}),yi=f.z.object({body_text:vi,buttons_text:vi,font_url:f.z.string(),input_labels:vi,links:vi,links_style:f.z.enum([`normal`,`underlined`]),reference_text_size:f.z.number(),subtitle:vi,title:vi}),bi=f.z.object({background_color:f.z.string(),background_image_url:f.z.string(),page_layout:f.z.enum([`center`,`left`,`right`]),logo_placement:f.z.enum([`widget`,`chip`,`none`]).optional()}),xi=f.z.object({header_text_alignment:f.z.enum([`center`,`left`,`right`]),logo_height:f.z.number(),logo_position:f.z.enum([`center`,`left`,`none`,`right`]),logo_url:f.z.string(),social_buttons_layout:f.z.enum([`bottom`,`top`])}),Si=f.z.object({borders:gi,colors:_i,displayName:f.z.string(),fonts:yi,page_background:bi,widget:xi}),Ci=Si.extend({themeId:f.z.string()}),wi=f.z.object({universal_login_experience:f.z.enum([`new`,`classic`]).default(`new`),identifier_first:f.z.boolean().default(!0),password_first:f.z.boolean().default(!1),webauthn_platform_first_factor:f.z.boolean()}),Ti=f.z.object({hosts:f.z.array(f.z.string()).optional(),methods:f.z.array(f.z.string()).optional(),path:f.z.string().default(`/*`),headers:f.z.record(f.z.string(),f.z.string()).optional(),query:f.z.record(f.z.string(),f.z.string()).optional()}),Ei=f.z.object({type:f.z.string(),options:f.z.record(f.z.string(),f.z.unknown()).default({})}),Di=f.z.object({id:f.z.string().optional(),custom_domain_id:f.z.string(),priority:f.z.number().int().default(100),match:Ti,handlers:f.z.array(Ei).min(1)}),Oi=Di.extend({id:f.z.string(),tenant_id:f.z.string(),created_at:f.z.string(),updated_at:f.z.string()}),ki=Di.partial().omit({id:!0,custom_domain_id:!0}),Ai=f.z.object({name:f.z.string(),enabled:f.z.boolean().optional().default(!0),default_from_address:f.z.string().optional(),credentials:f.z.record(f.z.string(),f.z.unknown()),settings:f.z.object({}).optional()}),ji=f.z.enum([`verify_email`,`verify_email_by_code`,`reset_email`,`reset_email_by_code`,`welcome_email`,`blocked_account`,`stolen_credentials`,`enrollment_email`,`mfa_oob_code`,`change_password`,`password_reset`,`user_invitation`]),Mi=f.z.object({template:ji,body:f.z.string(),from:f.z.string(),subject:f.z.string(),syntax:f.z.literal(`liquid`).default(`liquid`),resultUrl:f.z.string().optional(),urlLifetimeInSeconds:f.z.number().int().nonnegative().optional(),includeEmailInRedirect:f.z.boolean().default(!1),enabled:f.z.boolean().default(!0)}),Ni=f.z.object({id:f.z.string(),login_id:f.z.string(),user_id:f.z.string(),client_id:f.z.string(),expires_at:f.z.string().optional(),idle_expires_at:f.z.string().optional(),last_exchanged_at:f.z.string().optional(),device:ci,resource_servers:f.z.array(f.z.object({audience:f.z.string(),scopes:f.z.string()})),rotating:f.z.boolean(),token_lookup:f.z.string().optional(),token_hash:f.z.string().optional(),family_id:f.z.string().optional(),rotated_to:f.z.string().optional(),rotated_at:f.z.string().optional()}),_ee=Ni.extend({created_at:f.z.string(),revoked_at:f.z.string().optional()}),vee=f.z.object({to:f.z.string(),message:f.z.string()}),yee=f.z.object({name:f.z.string(),options:f.z.object({})}),Pi=f.z.object({value:f.z.string(),description:f.z.string().optional()}),Fi=f.z.object({token_dialect:f.z.enum([`access_token`,`access_token_authz`]).optional(),enforce_policies:f.z.boolean().optional(),allow_skipping_userinfo:f.z.boolean().optional(),skip_userinfo:f.z.boolean().optional(),persist_client_authorization:f.z.boolean().optional(),enable_introspection_endpoint:f.z.boolean().optional(),mtls:f.z.object({bound_access_tokens:f.z.boolean().optional()}).optional()}),Ii=f.z.object({id:f.z.string().optional(),name:f.z.string(),identifier:f.z.string(),scopes:f.z.array(Pi).optional(),signing_alg:f.z.string().optional(),signing_secret:f.z.string().optional(),token_lifetime:f.z.number().default(86400),token_lifetime_for_web:f.z.number().default(7200),skip_consent_for_verifiable_first_party_clients:f.z.boolean().optional(),allow_offline_access:f.z.boolean().optional(),verificationKey:f.z.string().optional(),options:Fi.optional(),is_system:f.z.boolean().optional(),metadata:f.z.record(f.z.string(),f.z.any()).optional()}),Li=Ii.extend({created_at:f.z.string().optional(),updated_at:f.z.string().optional()}),Ri=f.z.array(Li),zi=f.z.object({role_id:f.z.string(),resource_server_identifier:f.z.string(),permission_name:f.z.string()}),Bi=zi.extend({created_at:f.z.string()}),Vi=f.z.array(Bi),Hi=f.z.object({user_id:f.z.string().openapi({description:`The id of the user that granted the consent`}),clientID:f.z.string().openapi({description:`The id of the client the grant was issued to`}),audience:f.z.string().optional().openapi({description:`The audience the grant applies to`}),scope:f.z.array(f.z.string()).default([]).openapi({description:`The list of OAuth scopes the user has consented to`})}),Ui=Hi.extend({id:f.z.string()}),Wi=f.z.object({user_id:f.z.string(),resource_server_identifier:f.z.string(),permission_name:f.z.string(),organization_id:f.z.string().optional()}),Gi=Wi.extend({tenant_id:f.z.string(),created_at:f.z.string().optional()}),Ki=f.z.array(Gi),qi=f.z.object({user_id:f.z.string(),resource_server_identifier:f.z.string(),resource_server_name:f.z.string(),permission_name:f.z.string(),description:f.z.string().nullable().optional(),created_at:f.z.string().optional(),organization_id:f.z.string().optional()}),Ji=f.z.array(qi),Yi=f.z.object({user_id:f.z.string(),role_id:f.z.string(),organization_id:f.z.string().optional()}),Xi=Yi.extend({tenant_id:f.z.string(),created_at:f.z.string().optional()}),Zi=f.z.array(Xi),Qi=f.z.object({id:f.z.string().optional().openapi({description:`The unique identifier of the role. If not provided, one will be generated.`}),name:f.z.string().min(1).max(50).openapi({description:`The name of the role. Cannot include '<' or '>'`}),description:f.z.string().max(255).optional().openapi({description:`The description of the role`}),is_system:f.z.boolean().optional(),metadata:f.z.record(f.z.string(),f.z.any()).optional().openapi({description:`Metadata associated with the role. Can be used to control sync behavior in multi-tenancy scenarios.`})}),$i=Qi.extend({id:f.z.string().openapi({description:`The unique identifier of the role`}),created_at:f.z.string().optional(),updated_at:f.z.string().optional()}),ea=f.z.array($i),ta=f.z.object({logo_url:f.z.string().optional().openapi({description:`URL of the organization's logo`}),colors:f.z.object({primary:f.z.string().optional().openapi({description:`Primary color in hex format (e.g., #FF0000)`}),page_background:f.z.string().optional().openapi({description:`Page background color in hex format (e.g., #FFFFFF)`})}).optional()}).optional(),na=f.z.object({connection_id:f.z.string().openapi({description:`ID of the connection`}),assign_membership_on_login:f.z.boolean().default(!1).openapi({description:`Whether to assign membership to the organization on login`}),show_as_button:f.z.boolean().default(!0).openapi({description:`Whether to show this connection as a button in the login screen`}),is_signup_enabled:f.z.boolean().default(!0).openapi({description:`Whether signup is enabled for this connection`})}),ra=f.z.object({client_credentials:f.z.object({enforce:f.z.boolean().default(!1).openapi({description:`Whether to enforce token quota limits`}),per_day:f.z.number().min(0).default(0).openapi({description:`Maximum tokens per day (0 = unlimited)`}),per_hour:f.z.number().min(0).default(0).openapi({description:`Maximum tokens per hour (0 = unlimited)`})}).optional()}).optional(),ia=f.z.object({id:f.z.string().optional(),name:f.z.string().min(1).regex(/^[a-z0-9_-]+$/,{message:`Organization name must be lowercase and can only contain letters, numbers, hyphens, and underscores`}).openapi({description:`The name of the organization. Must be lowercase and can only contain letters, numbers, hyphens, and underscores.`}),display_name:f.z.string().optional().openapi({description:`The display name of the organization`}),branding:ta,metadata:f.z.record(f.z.string(),f.z.any()).default({}).optional().openapi({description:`Custom metadata for the organization`}),enabled_connections:f.z.array(na).default([]).optional().openapi({description:`List of enabled connections for the organization`}),token_quota:ra}),aa=ia.extend(Le.shape).extend({id:f.z.string(),name:f.z.string().min(1).openapi({description:`The name of the organization`})}),oa=f.z.object({connection_id:f.z.string().openapi({description:`ID of the tenant-level connection to enable for the org.`}),assign_membership_on_login:f.z.boolean().optional().default(!1),show_as_button:f.z.boolean().optional().default(!0),is_signup_enabled:f.z.boolean().optional().default(!0)}),sa=oa.extend({connection:f.z.object({name:f.z.string().optional(),strategy:f.z.string().optional()}).optional(),created_at:f.z.string().optional(),updated_at:f.z.string().optional()}),ca=f.z.array(sa),la=f.z.object({user_id:f.z.string().openapi({description:`ID of the user`}),organization_id:f.z.string().openapi({description:`ID of the organization`})}),ua=la.extend(Le.shape).extend({id:f.z.string()}),da=f.z.object({idle_session_lifetime:f.z.number().default(72),session_lifetime:f.z.number().default(168),session_cookie:f.z.object({mode:f.z.enum([`persistent`,`non-persistent`]).optional()}).optional(),enable_client_connections:f.z.boolean().optional(),default_redirection_uri:f.z.string().optional(),enabled_locales:f.z.array(f.z.string()).optional(),default_directory:f.z.string().optional(),error_page:f.z.object({html:f.z.string().optional(),show_log_link:f.z.boolean().optional(),url:f.z.string().optional()}).optional(),flags:f.z.object({allow_legacy_delegation_grant_types:f.z.boolean().optional(),allow_legacy_ro_grant_types:f.z.boolean().optional(),allow_legacy_tokeninfo_endpoint:f.z.boolean().optional(),disable_clickjack_protection_headers:f.z.boolean().optional(),enable_apis_section:f.z.boolean().optional(),enable_client_connections:f.z.boolean().optional(),enable_custom_domain_in_emails:f.z.boolean().optional(),enable_dynamic_client_registration:f.z.boolean().optional(),enable_idtoken_api2:f.z.boolean().optional(),enable_legacy_logs_search_v2:f.z.boolean().optional(),enable_legacy_profile:f.z.boolean().optional(),enable_pipeline2:f.z.boolean().optional(),enable_public_signup_user_exists_error:f.z.boolean().optional(),use_scope_descriptions_for_consent:f.z.boolean().optional(),disable_management_api_sms_obfuscation:f.z.boolean().optional(),enable_adfs_waad_email_verification:f.z.boolean().optional(),revoke_refresh_token_grant:f.z.boolean().optional(),dashboard_log_streams_next:f.z.boolean().optional(),dashboard_insights_view:f.z.boolean().optional(),disable_fields_map_fix:f.z.boolean().optional(),mfa_show_factor_list_on_enrollment:f.z.boolean().optional()}).optional(),friendly_name:f.z.string().optional(),picture_url:f.z.string().optional(),support_email:f.z.string().optional(),support_url:f.z.string().optional(),sandbox_version:f.z.string().optional(),sandbox_versions_available:f.z.array(f.z.string()).optional(),change_password:f.z.object({enabled:f.z.boolean(),html:f.z.string()}).optional(),guardian_mfa_page:f.z.object({enabled:f.z.boolean(),html:f.z.string()}).optional(),default_audience:f.z.string().optional(),default_organization:f.z.string().optional(),sessions:f.z.object({oidc_logout_prompt_enabled:f.z.boolean().optional()}).optional(),mfa:f.z.object({policy:f.z.enum([`never`,`always`]).default(`never`).optional(),factors:f.z.object({sms:f.z.boolean().default(!1),otp:f.z.boolean().default(!1),email:f.z.boolean().default(!1),push_notification:f.z.boolean().default(!1),webauthn_roaming:f.z.boolean().default(!1),webauthn_platform:f.z.boolean().default(!1),recovery_code:f.z.boolean().default(!1),duo:f.z.boolean().default(!1)}).optional(),sms_provider:f.z.object({provider:f.z.enum([`twilio`,`vonage`,`aws_sns`,`phone_message_hook`]).optional()}).optional(),twilio:f.z.object({sid:f.z.string().optional(),auth_token:f.z.string().optional(),from:f.z.string().optional(),messaging_service_sid:f.z.string().optional()}).optional(),phone_message:f.z.object({message:f.z.string().optional()}).optional()}).optional()}),fa=f.z.object({date:f.z.string().openapi({description:`Date these events occurred in ISO 8601 format`,example:`2025-12-19`}),logins:f.z.number().openapi({description:`Number of logins on this date`,example:150}),signups:f.z.number().openapi({description:`Number of signups on this date`,example:25}),leaked_passwords:f.z.number().openapi({description:`Number of breached-password detections on this date (subscription required)`,example:0}),updated_at:f.z.string().openapi({description:`Date and time this stats entry was last updated in ISO 8601 format`,example:`2025-12-19T10:30:00.000Z`}),created_at:f.z.string().openapi({description:`Approximate date and time the first event occurred in ISO 8601 format`,example:`2025-12-19T00:00:00.000Z`})}),pa=f.z.number().openapi({description:`Number of active users in the last 30 days`,example:1234}),ma=f.z.enum([`active-users`,`logins`,`signups`,`refresh-tokens`,`sessions`]),ha=f.z.enum([`hour`,`day`,`week`,`month`]),ga=f.z.enum([`time`,`connection`,`client_id`,`user_type`,`event`]),_a=f.z.enum([`password`,`social`,`passwordless`,`enterprise`]),va=f.z.object({name:f.z.string(),type:f.z.string()}),ya=f.z.object({elapsed:f.z.number(),rows_read:f.z.number().optional(),bytes_read:f.z.number().optional()}),ba=f.z.object({meta:f.z.array(va),data:f.z.array(f.z.record(f.z.string(),f.z.any())),rows:f.z.number(),rows_before_limit_at_least:f.z.number().optional(),statistics:ya.optional()}),xa=f.z.enum(`login.login-id.login-password.signup.signup-id.signup-password.reset-password.consent.mfa.mfa-push.mfa-otp.mfa-voice.mfa-phone.mfa-webauthn.mfa-email.mfa-recovery-code.status.device-flow.email-verification.email-otp-challenge.organizations.invitation.common.passkeys.captcha.custom-form.login-passwordless.mfa-login-options`.split(`.`)),Sa=f.z.record(f.z.string(),f.z.record(f.z.string(),f.z.string())).openapi({type:`object`,additionalProperties:{type:`object`,additionalProperties:{type:`string`}}}),Ca=f.z.object({prompt:xa,language:f.z.string(),custom_text:Sa}),F={EMAIL:`email`,SMS:`sms`,USERNAME_PASSWORD:`Username-Password-Authentication`,GOOGLE_OAUTH2:`google-oauth2`,APPLE:`apple`,FACEBOOK:`facebook`,GITHUB:`github`,WINDOWSLIVE:`windowslive`,VIPPS:`vipps`,OIDC:`oidc`,OAUTH2:`oauth2`,SAMLP:`samlp`,WAAD:`waad`,ADFS:`adfs`,OKTA:`okta`},wa={DATABASE:`database`,SOCIAL:`social`,PASSWORDLESS:`passwordless`},Ta=f.z.enum([`phone`,`totp`,`email`,`push`,`webauthn-roaming`,`webauthn-platform`,`passkey`]),Ea=f.z.object({user_id:f.z.string(),type:Ta,phone_number:f.z.string().optional(),totp_secret:f.z.string().optional(),credential_id:f.z.string().optional(),public_key:f.z.string().optional(),sign_count:f.z.number().int().nonnegative().optional(),credential_backed_up:f.z.boolean().optional(),transports:f.z.array(f.z.string()).optional(),friendly_name:f.z.string().optional(),confirmed:f.z.boolean().default(!1)});function Da(e,t){e.type===`phone`&&!e.phone_number&&t.addIssue({code:f.z.ZodIssueCode.custom,message:`phone_number is required when type is 'phone'`,path:[`phone_number`]}),e.type===`totp`&&!e.totp_secret&&t.addIssue({code:f.z.ZodIssueCode.custom,message:`totp_secret is required when type is 'totp'`,path:[`totp_secret`]}),[`webauthn-roaming`,`webauthn-platform`,`passkey`].includes(e.type)&&(e.credential_id||t.addIssue({code:f.z.ZodIssueCode.custom,message:`credential_id is required when type is '${e.type}'`,path:[`credential_id`]}),e.public_key||t.addIssue({code:f.z.ZodIssueCode.custom,message:`public_key is required when type is '${e.type}'`,path:[`public_key`]}))}var Oa=Ea.superRefine(Da),ka=Ea.extend({id:f.z.string(),created_at:f.z.string(),updated_at:f.z.string()}).superRefine(Da);function Aa(e){let[t,n]=e.split(`|`);if(!t||!n)throw Error(`Invalid user_id: ${e}`);return{connection:t,id:n}}function ja(e){let{primary:t,secondaries:n,syncMethods:r=[`create`,`rawCreate`,`update`,`remove`,`delete`,`set`]}=e;return new Proxy(t,{get(e,t){if(typeof t==`symbol`)return e[t];let i=e[t];return typeof i==`function`?r.includes(t)?async(...r)=>{let a=await i.apply(e,r),o=[];for(let e of n){let n=e.adapter[t];if(typeof n!=`function`)continue;let i=(async()=>{try{await n.apply(e.adapter,r)}catch(n){try{e.onError?e.onError(n,t,r):console.error(`Passthrough adapter: secondary write failed for ${t}:`,n)}catch(e){console.error(`Passthrough adapter: onError handler threw for ${t}:`,e)}}})();e.blocking&&o.push(i)}return o.length>0&&await Promise.all(o),a}:i.bind(e):i}})}function Ma(e){return e}function Na(e){let t=e?.options;if(!t)return{usernameIdentifierActive:!1,emailIdentifierActive:!0,usernameMinLength:1,usernameMaxLength:15};let n=t.attributes;return n?{usernameIdentifierActive:n.username?.identifier?.active===!0,emailIdentifierActive:n.email?.identifier?.active!==!1,usernameMinLength:n.username?.validation?.min_length??1,usernameMaxLength:n.username?.validation?.max_length??15}:{usernameIdentifierActive:t.requires_username===!0,emailIdentifierActive:!0,usernameMinLength:t.validation?.username?.min??1,usernameMaxLength:t.validation?.username?.max??15}}function Pa(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Fa(e,t){return t?`https://${t}/`:e.ISSUER}function Ia(e,t,n=`u`){let r=n.replace(/^\/+|\/+$/g,``)||`u`;return t?`https://${t}/${r}/`:e.UNIVERSAL_LOGIN_URL?`${new URL(e.UNIVERSAL_LOGIN_URL).origin}/${r}/`:`${e.ISSUER}${r}/`}function La(e,t){return t?`https://${t}/`:e.OAUTH_API_URL||e.ISSUER}var Ra={deno:`Deno`,bun:`Bun`,workerd:`Cloudflare-Workers`,node:`Node.js`},za=()=>{let e=globalThis;if(typeof navigator<`u`&&typeof navigator.userAgent==`string`){for(let[e,t]of Object.entries(Ra))if(Ba(t))return e}return typeof e?.EdgeRuntime==`string`?`edge-light`:e?.fastly===void 0?e?.process?.release?.name===`node`?`node`:`other`:`fastly`},Ba=e=>navigator.userAgent.startsWith(e);function Va(e,t){if(za()===`workerd`)try{e.executionCtx.waitUntil(t);return}catch{}let n=t.then(()=>void 0,e=>{console.error(`waitUntil promise error:`,e)}),r;try{r=e.var?.backgroundPromises}catch{r=void 0}if(!Array.isArray(r)){if(typeof e.set!=`function`)return;r=[],e.set(`backgroundPromises`,r)}r.push(n)}async function Ha(e){let t=e.var.backgroundPromises;if(!Array.isArray(t)||t.length===0)return;let n=t.splice(0,t.length);await Promise.all(n)}function Ua(e){return[...e].reduce((e,[t,n])=>({...e,[t]:n}),{})}var Wa=new Set([`password`,`password_hash`,`client_secret`,`client_assertion`,`code_verifier`,`otp`,`signing_keys`,`credentials`,`encryption_key`,`otp_secret`]),Ga=new Set([`code`,`refresh_token`,`subject_token`,`actor_token`]);function Ka(e,t=3){return e.length<=t?`*`.repeat(e.length):`*`.repeat(e.length-t)+e.slice(-t)}function qa(e){if(!e)return;let t={};for(let[n,r]of Object.entries(e))Wa.has(n)?t[n]=`[REDACTED]`:Ga.has(n)&&typeof r==`string`?t[n]=Ka(r):t[n]=r;return t}function Ja(e){return e&&typeof e==`object`&&!Array.isArray(e)?qa(e):e}function Ya(e,t){if(!e||!t)return;let n={},r=new Set([...Object.keys(e),...Object.keys(t)]);for(let i of r){let r=e[i],a=t[i];JSON.stringify(r)!==JSON.stringify(a)&&(n[i]={old:r,new:a})}return Object.keys(n).length>0?n:void 0}function Xa(e,t){return e.var.user_id||t.actorUserId?`admin_action`:t.userId?`user_action`:e.var.client_id?`api`:`system`}function Za(e,t,n){let r=e.env.outbox?.captureEntityState!==!1,i=r?qa(n.beforeState):void 0,a=r?qa(n.afterState):void 0;return{tenant_id:t,event_type:n.targetType?`${n.targetType}.${Qa(e.req.method)}`:n.type,log_type:n.type,description:n.description,category:Xa(e,n),actor:{type:e.var.user_id||n.actorUserId?`admin`:n.userId?`user`:e.var.client_id?`client_credentials`:`system`,id:e.var.user_id||n.actorUserId||n.userId||void 0,email:e.var.username||n.username||void 0,org_id:e.var.organization_id||e.var.user?.org_id||void 0,org_name:e.var.org_name||e.var.user?.org_name||void 0,scopes:e.var.user?.scope?e.var.user.scope.split(` `):void 0,client_id:e.var.client_id||void 0},target:{type:n.targetType||`unknown`,id:n.targetId||n.userId||e.var.user_id||``,before:i,after:a,diff:Ya(i,a)},request:{method:e.req.method,path:e.req.path,query:e.req.queries()?Object.fromEntries(Object.entries(e.req.queries()).map(([e,t])=>[e,Array.isArray(t)?t.join(`,`):t])):void 0,body:Ja(n.body||e.var.body||void 0),ip:e.var.ip||``,user_agent:e.var.useragent||void 0},response:n.response?{status_code:n.response.statusCode,body:n.response.body}:void 0,connection:n.connection||e.var.connection||void 0,strategy:n.strategy||void 0,strategy_type:n.strategy_type||void 0,audience:n.audience||void 0,scope:n.scope||void 0,hostname:e.var.host||``,is_mobile:!1,auth0_client:e.var.auth0_client,timestamp:new Date().toISOString()}}function Qa(e){switch(e){case`POST`:return`created`;case`PATCH`:case`PUT`:return`updated`;case`DELETE`:return`deleted`;default:return`accessed`}}async function I(e,t,n){let r={};if(e.req.raw?.headers){let t=Ua(e.req.raw.headers);for(let[e,n]of Object.entries(t))r[e.toLowerCase()]=n}if(e.env.outbox?.enabled&&e.env.data.outbox){let r=Za(e,t,n),i=e.env.data.outbox.create(t,r),a=e.var.outboxEventPromises||[];a.push(i),e.set(`outboxEventPromises`,a);return}let i=async()=>{let i;if(e.env.data.geo)try{i=await e.env.data.geo.getGeoInfo(r)||void 0}catch(e){console.warn(`Failed to get geo information:`,e)}let a={type:n.type,description:n.description||``,ip:e.var.ip,user_agent:e.var.useragent||``,auth0_client:e.var.auth0_client,date:new Date().toISOString(),details:n.details||{request:{method:e.req.method,path:e.req.path,qs:e.req.queries(),body:Ja(n.body||e.var.body||``)},...n.response&&{response:n.response}},isMobile:!1,client_id:e.var.client_id,client_name:``,user_id:n.userId||e.var.user_id||``,hostname:e.var.host||``,user_name:e.var.username||n.username||``,connection_id:``,connection:n.connection||e.var.connection||``,strategy:n.strategy||``,strategy_type:n.strategy_type||``,audience:n.audience||``,scope:n.scope||``,location_info:i};await e.env.data.logs.create(t,a)};n.waitForCompletion?await i():Va(e,i())}async function $a(e,t,n,r){if(!e.env.outbox?.enabled||!t.outbox)return;let i=Za(e,n,r);return t.outbox.create(n,i)}var eo=f.z.object({page:f.z.string().min(0).optional().default(`0`).transform(e=>parseInt(e,10)).openapi({description:`Page index of the results to return. First page is 0.`}),per_page:f.z.string().min(1).optional().default(`10`).transform(e=>parseInt(e,10)).openapi({description:`Number of results per page. Defaults to 50.`}),include_totals:f.z.string().optional().default(`false`).transform(e=>e===`true`).openapi({description:`Return results inside an object that contains the total result count (true) or as a direct array of results (false, default).`}),from:f.z.string().optional().openapi({description:`Optional Id from which to start selection.`}),take:f.z.string().optional().transform(e=>e?parseInt(e,10):void 0).openapi({description:`Number of results per page. Defaults to 50.`}),sort:f.z.string().regex(/^.+:(-1|1)$/).optional().openapi({description:`Field to sort by. Use field:order where order is 1 for ascending and -1 for descending. e.g. created_at:1.`}),q:f.z.string().optional().openapi({description:`A lucene query string used to filter the results`}),from_date:f.z.preprocess(e=>typeof e==`string`&&/^\d+$/.test(e)?Number(e):e,f.z.number().int().optional()).openapi({description:`Start of date range as a Unix timestamp in seconds (inclusive). Only applies to log queries.`}),to_date:f.z.preprocess(e=>typeof e==`string`&&/^\d+$/.test(e)?Number(e):e,f.z.number().int().optional()).openapi({description:`End of date range as a Unix timestamp in seconds (inclusive). Only applies to log queries.`})});function to(e){if(!e)return;let[t,n]=e.split(`:`),r=n===`1`?`asc`:`desc`;if(!(!t||!r))return{sort_by:t,sort_order:r}}var L=e=>(0,f.defineOpenAPIRoute)(e),no=bt.extend({actions:f.z.array(Ue)}),ro={"post-login":`post-user-login`};function io(e){return ro[e]||e}var ao=f.z.object({versions:f.z.array($e)}),oo=bt.extend({versions:f.z.array($e)});function so(e,t,n,r){return e.actionVersions.create(t,{action_id:n.id,code:n.code,runtime:n.runtime,secrets:n.secrets,dependencies:n.dependencies,supported_triggers:n.supported_triggers,deployed:r})}var co=L({route:(0,f.createRoute)({tags:[`actions`],method:`get`,path:`/`,request:{query:eo,headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:actions`]}],responses:{200:{content:{"application/json":{schema:f.z.union([f.z.array(Ue),no])}},description:`List of actions`}}}),handler:async e=>{let{page:t,per_page:n,include_totals:r,sort:i,q:a}=e.req.valid(`query`),o=await e.env.data.actions.list(e.var.tenant_id,{page:t,per_page:n,include_totals:r,sort:to(i),q:a}),s=o.actions.map(e=>({...e,secrets:e.secrets?.map(e=>({name:e.name}))}));return r?e.json({...o,actions:s}):e.json(s)}}),lo=L({route:(0,f.createRoute)({tags:[`actions`],method:`post`,path:`/`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),body:{content:{"application/json":{schema:Ve}}}},security:[{Bearer:[`create:actions`]}],responses:{201:{content:{"application/json":{schema:Ue}},description:`The created action`}}}),handler:async e=>{let t=e.req.valid(`json`),n=await e.env.data.actions.create(e.var.tenant_id,t),r=!1;if(e.env.codeExecutor?.deploy)try{await e.env.codeExecutor.deploy(n.id,t.code),r=!0}catch(t){await I(e,e.var.tenant_id,{type:P.FAILED_HOOK,description:`Failed to deploy action ${n.id}: ${t instanceof Error?t.message:String(t)}`})}else r=!0;return await so(e.env.data,e.var.tenant_id,n,r),await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Create action`,targetType:`action`,targetId:n.id}),e.json(n,{status:201})}}),uo=L({route:(0,f.createRoute)({tags:[`actions`],method:`get`,path:`/{id}`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),params:f.z.object({id:f.z.string()})},security:[{Bearer:[`read:actions`]}],responses:{200:{content:{"application/json":{schema:Ue}},description:`An action`},404:{description:`Action not found`}}}),handler:async e=>{let{id:t}=e.req.valid(`param`),n=await e.env.data.actions.get(e.var.tenant_id,t);if(!n)throw new m(404,{message:`Action not found`});return e.json({...n,secrets:n.secrets?.map(e=>({name:e.name}))})}}),fo=L({route:(0,f.createRoute)({tags:[`actions`],method:`patch`,path:`/{id}`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),params:f.z.object({id:f.z.string()}),body:{content:{"application/json":{schema:Ve.partial()}}}},security:[{Bearer:[`update:actions`]}],responses:{200:{content:{"application/json":{schema:Ue}},description:`The updated action`},404:{description:`Action not found`}}}),handler:async e=>{let{id:t}=e.req.valid(`param`),n=e.req.valid(`json`);if(!await e.env.data.actions.update(e.var.tenant_id,t,n))throw new m(404,{message:`Action not found`});let r=await e.env.data.actions.get(e.var.tenant_id,t);if(!r)throw new m(404,{message:`Action not found`});if(n.code!==void 0&&e.env.codeExecutor?.deploy){let i=!1;try{await e.env.codeExecutor.deploy(t,n.code),i=!0}catch(n){await I(e,e.var.tenant_id,{type:P.FAILED_HOOK,description:`Failed to deploy action ${t}: ${n instanceof Error?n.message:String(n)}`})}await so(e.env.data,e.var.tenant_id,r,i)}return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Update action`,targetType:`action`,targetId:t}),e.json({...r,secrets:r.secrets?.map(e=>({name:e.name}))})}}),po=L({route:(0,f.createRoute)({tags:[`actions`],method:`delete`,path:`/{id}`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),params:f.z.object({id:f.z.string()})},security:[{Bearer:[`delete:actions`]}],responses:{200:{description:`Action deleted`},404:{description:`Action not found`},409:{description:`Action is bound to a trigger and cannot be deleted`}}}),handler:async e=>{let{id:t}=e.req.valid(`param`);if((await e.env.data.hooks.list(e.var.tenant_id,{q:`code_id:"${t}"`})).hooks.length>0)throw new m(409,{message:`Action is bound to a trigger. Remove the binding before deleting.`});if(!await e.env.data.actions.remove(e.var.tenant_id,t))throw new m(404,{message:`Action not found`});if(await e.env.data.actionVersions.removeForAction(e.var.tenant_id,t),e.env.codeExecutor?.remove)try{await e.env.codeExecutor.remove(t)}catch(n){await I(e,e.var.tenant_id,{type:P.FAILED_HOOK,description:`Failed to remove action worker ${t}: ${n instanceof Error?n.message:String(n)}`})}return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Delete action`,targetType:`action`,targetId:t}),e.text(`OK`)}}),mo=L({route:(0,f.createRoute)({tags:[`actions`],method:`post`,path:`/{id}/deploy`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),params:f.z.object({id:f.z.string()})},security:[{Bearer:[`update:actions`]}],responses:{200:{content:{"application/json":{schema:Ue}},description:`The deployed action`},404:{description:`Action not found`}}}),handler:async e=>{let{id:t}=e.req.valid(`param`),n=await e.env.data.actions.get(e.var.tenant_id,t);if(!n)throw new m(404,{message:`Action not found`});if(e.env.codeExecutor?.deploy)try{await e.env.codeExecutor.deploy(t,n.code)}catch(n){throw await I(e,e.var.tenant_id,{type:P.FAILED_HOOK,description:`Failed to deploy action ${t}: ${n instanceof Error?n.message:String(n)}`}),new m(500,{message:`Deployment failed: ${n instanceof Error?n.message:String(n)}`})}return await e.env.data.actions.update(e.var.tenant_id,t,{status:`built`,deployed_at:new Date().toISOString()}),await so(e.env.data,e.var.tenant_id,n,!0),await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Deploy action`,targetType:`action`,targetId:t}),e.json({...n,status:`built`,secrets:n.secrets?.map(e=>({name:e.name}))})}}),ho=L({route:(0,f.createRoute)({tags:[`actions`],method:`get`,path:`/{actionId}/versions`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),params:f.z.object({actionId:f.z.string()}),query:eo},security:[{Bearer:[`read:actions`]}],responses:{200:{content:{"application/json":{schema:f.z.union([ao,oo])}},description:`List of action versions`},404:{description:`Action not found`}}}),handler:async e=>{let{actionId:t}=e.req.valid(`param`),{page:n,per_page:r,include_totals:i,sort:a}=e.req.valid(`query`);if(!await e.env.data.actions.get(e.var.tenant_id,t))throw new m(404,{message:`Action not found`});let o=await e.env.data.actionVersions.list(e.var.tenant_id,t,{page:n,per_page:r,include_totals:i,sort:to(a)}),s=o.versions.map(e=>({...e,secrets:e.secrets?.map(e=>({name:e.name}))}));return i?e.json({...o,versions:s}):e.json({versions:s})}}),go=L({route:(0,f.createRoute)({tags:[`actions`],method:`get`,path:`/{actionId}/versions/{id}`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),params:f.z.object({actionId:f.z.string(),id:f.z.string()})},security:[{Bearer:[`read:actions`]}],responses:{200:{content:{"application/json":{schema:$e}},description:`Action version`},404:{description:`Action version not found`}}}),handler:async e=>{let{actionId:t,id:n}=e.req.valid(`param`),r=await e.env.data.actionVersions.get(e.var.tenant_id,t,n);if(!r)throw new m(404,{message:`Action version not found`});return e.json({...r,secrets:r.secrets?.map(e=>({name:e.name}))})}}),_o=L({route:(0,f.createRoute)({tags:[`actions`],method:`post`,path:`/{actionId}/versions/{id}/deploy`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),params:f.z.object({actionId:f.z.string(),id:f.z.string()})},security:[{Bearer:[`update:actions`]}],responses:{200:{content:{"application/json":{schema:Ue}},description:`The action after rollback`},404:{description:`Action version not found`}}}),handler:async e=>{let{actionId:t,id:n}=e.req.valid(`param`),r=await e.env.data.actionVersions.get(e.var.tenant_id,t,n);if(!r)throw new m(404,{message:`Action version not found`});if(e.env.codeExecutor?.deploy)try{await e.env.codeExecutor.deploy(t,r.code)}catch(r){throw await I(e,e.var.tenant_id,{type:P.FAILED_HOOK,description:`Failed to roll back action ${t} to version ${n}: ${r instanceof Error?r.message:String(r)}`}),new m(500,{message:`Rollback failed: ${r instanceof Error?r.message:String(r)}`})}await e.env.data.actions.update(e.var.tenant_id,t,{code:r.code,runtime:r.runtime,secrets:r.secrets,dependencies:r.dependencies,supported_triggers:r.supported_triggers,status:`built`,deployed_at:new Date().toISOString()});let i=await e.env.data.actions.get(e.var.tenant_id,t);if(!i)throw new m(404,{message:`Action not found`});return await so(e.env.data,e.var.tenant_id,i,!0),await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Roll back action to version ${r.number}`,targetType:`action`,targetId:t}),e.json({...i,secrets:i.secrets?.map(e=>({name:e.name}))})}}),vo=L({route:(0,f.createRoute)({tags:[`actions`],method:`post`,path:`/{id}/test`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),params:f.z.object({id:f.z.string()}),body:{content:{"application/json":{schema:f.z.object({trigger_id:f.z.string().optional(),event:f.z.record(f.z.string(),f.z.unknown()).optional()})}}}},security:[{Bearer:[`update:actions`]}],responses:{200:{content:{"application/json":{schema:f.z.object({success:f.z.boolean(),error:f.z.string().optional(),duration_ms:f.z.number(),api_calls:f.z.array(f.z.object({method:f.z.string(),args:f.z.array(f.z.unknown())})),logs:f.z.array(f.z.object({level:f.z.enum([`log`,`info`,`warn`,`error`,`debug`]),message:f.z.string()}))})}},description:`Test run result`},404:{description:`Action not found`},503:{description:`Code executor not configured`}}}),handler:async e=>{let{id:t}=e.req.valid(`param`),n=e.req.valid(`json`),r=e.env.codeExecutor;if(!r)throw new m(503,{message:`Code executor not configured`});let i=await e.env.data.actions.get(e.var.tenant_id,t);if(!i)throw new m(404,{message:`Action not found`});let a=io(n.trigger_id??i.supported_triggers?.[0]?.id??`post-login`),o=i.secrets?.reduce((e,t)=>(t.value!==void 0&&(e[t.name]=t.value),e),{}),s=await r.execute({code:i.code,hookCodeId:i.id,triggerId:a,event:{...n.event??{},secrets:o??{}},timeoutMs:5e3});return e.json({success:s.success,error:s.error,duration_ms:s.durationMs,api_calls:s.apiCalls,logs:s.logs??[]})}}),yo=new f.OpenAPIHono().openapiRoutes([co,lo,uo,fo,po,mo,ho,go,_o,vo]),bo=f.z.object({id:f.z.string(),trigger_id:f.z.string(),status:Ge,results:f.z.array(qe),created_at:f.z.string(),updated_at:f.z.string()}),xo=f.z.object({logs:Ye}),So=L({route:(0,f.createRoute)({tags:[`actions`],method:`get`,path:`/{id}`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),params:f.z.object({id:f.z.string()})},security:[{Bearer:[`read:actions`]}],responses:{200:{content:{"application/json":{schema:bo}},description:`Action execution`},404:{description:`Execution not found`}}}),handler:async e=>{let{id:t}=e.req.valid(`param`),n=await e.env.data.actionExecutions.get(e.var.tenant_id,t);if(!n)throw new m(404,{message:`Execution not found`});return e.json({id:n.id,trigger_id:n.trigger_id,status:n.status,results:n.results,created_at:n.created_at,updated_at:n.updated_at})}}),Co=L({route:(0,f.createRoute)({tags:[`actions`],method:`get`,path:`/{id}/logs`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),params:f.z.object({id:f.z.string()})},security:[{Bearer:[`read:actions`]}],responses:{200:{content:{"application/json":{schema:xo}},description:`Captured console output for the execution`},404:{description:`Execution not found`}}}),handler:async e=>{let{id:t}=e.req.valid(`param`),n=await e.env.data.actionExecutions.get(e.var.tenant_id,t);if(!n)throw new m(404,{message:`Execution not found`});return e.json({logs:n.logs??[]})}}),bee=new f.OpenAPIHono().openapiRoutes([So,Co]),xee=`useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict`,See=e=>crypto.getRandomValues(new Uint8Array(e)),Cee=(e,t,n)=>{let r=256-256%e.length;if(r===256){let r=e.length-1;return(i=t)=>{if(!i)return``;let a=``;for(;;){let t=n(i),o=i;for(;o--;)if(a+=e[t[o]&r],a.length>=i)return a}}}let i=Math.ceil(1.6*256*t/r);return(a=t)=>{if(!a)return``;let o=``;for(;;){let t=n(i),s=i;for(;s--;)if(t[s]<r&&(o+=e[t[s]%e.length],o.length>=a))return o}}},wo=(e,t=21)=>Cee(e,t|0,See),To=(e=21)=>{let t=``,n=crypto.getRandomValues(new Uint8Array(e|=0));for(;e--;)t+=xee[n[e]&63];return t},wee=17,Tee={organization:`org_`,connection:`con_`,action:`act_`,hook:`h_`,rule:`rul_`,resource_server:`api_`,guardian_factor:`gfa_`,invite:`inv_`,flow:`af_`};function Eo(e){let t=wo(`0123456789abcdefghijklmnopqrstuvwxyz`,wee)();return`${Tee[e]}${t}`}function Eee(){return Eo(`organization`)}function Dee(){return Eo(`connection`)}function Do(){return Eo(`hook`)}function Oee(){return Eo(`invite`)}var Oo={"post-login":`post-user-login`,"credentials-exchange":`credentials-exchange`,"pre-user-registration":`pre-user-registration`,"post-user-registration":`post-user-registration`},kee=Object.fromEntries(Object.entries(Oo).map(([e,t])=>[t,e]));function ko(e){return Oo[e]||e}function Ao(e){return kee[e]||e}var Aee=f.z.object({type:f.z.enum([`action_id`,`action_name`]).optional(),value:f.z.string().optional(),id:f.z.string().optional(),name:f.z.string().optional()}),jee=f.z.object({ref:Aee,display_name:f.z.string().optional()}),Mee=f.z.object({id:f.z.string(),trigger_id:f.z.string(),display_name:f.z.string(),action:Ue,created_at:f.z.string(),updated_at:f.z.string()}),jo=f.z.object({bindings:f.z.array(Mee)}),Nee=L({route:(0,f.createRoute)({tags:[`actions`],method:`get`,path:`/{triggerId}/bindings`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),params:f.z.object({triggerId:f.z.string()})},security:[{Bearer:[`read:actions`]}],responses:{200:{content:{"application/json":{schema:jo}},description:`Trigger bindings`}}}),handler:async e=>{let{triggerId:t}=e.req.valid(`param`),n=ko(t),r=(await e.env.data.hooks.list(e.var.tenant_id,{q:`trigger_id:"${n}"`,per_page:100})).hooks.filter(e=>`code_id`in e&&e.code_id).sort((e,t)=>(t.priority||0)-(e.priority||0)),i=[];for(let t of r){let n=t.code_id,r=await e.env.data.actions.get(e.var.tenant_id,n);r&&i.push({id:t.hook_id,trigger_id:Ao(t.trigger_id),display_name:r.name,action:{...r,secrets:r.secrets?.map(e=>({name:e.name}))},created_at:t.created_at,updated_at:t.updated_at})}return e.json({bindings:i})}}),Pee=L({route:(0,f.createRoute)({tags:[`actions`],method:`patch`,path:`/{triggerId}/bindings`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),params:f.z.object({triggerId:f.z.string()}),body:{content:{"application/json":{schema:f.z.object({bindings:f.z.array(jee)})}}}},security:[{Bearer:[`update:actions`]}],responses:{200:{content:{"application/json":{schema:jo}},description:`Updated trigger bindings`}}}),handler:async e=>{let{triggerId:t}=e.req.valid(`param`),{bindings:n}=e.req.valid(`json`),r=ko(t),i=[];for(let t=0;t<n.length;t++){let r=n[t],a=r.ref.id;if(!a&&r.ref.type===`action_id`&&r.ref.value)a=r.ref.value;else if(!a&&r.ref.type===`action_name`&&r.ref.value){let t=r.ref.value,n=0;for(;;){let r=await e.env.data.actions.list(e.var.tenant_id,{page:n,per_page:100,include_totals:!1}),i=r.actions.find(e=>e.name===t);if(i){a=i.id;break}if(r.actions.length<100)break;n++}}if(!a)throw new m(400,{message:`Binding at index ${t} must reference an action via ref.id or ref.value`});let o=await e.env.data.actions.get(e.var.tenant_id,a);if(!o)throw new m(404,{message:`Action ${a} not found`});i.push({binding:r,actionId:a,action:o})}let a=await e.env.data.hooks.list(e.var.tenant_id,{q:`trigger_id:"${r}"`,per_page:100});for(let t of a.hooks)`code_id`in t&&t.code_id&&await e.env.data.hooks.remove(e.var.tenant_id,t.hook_id);let o=[];for(let t=0;t<i.length;t++){let{binding:n,actionId:a,action:s}=i[t],c=await e.env.data.hooks.create(e.var.tenant_id,{hook_id:Do(),trigger_id:r,code_id:a,enabled:!0,synchronous:!0,priority:i.length-t});o.push({id:c.hook_id,trigger_id:Ao(c.trigger_id),display_name:n.display_name||s.name,action:{...s,secrets:s.secrets?.map(e=>({name:e.name}))},created_at:c.created_at,updated_at:c.updated_at})}return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Update trigger bindings for ${t}`,targetType:`action`}),e.json({bindings:o})}}),Fee=new f.OpenAPIHono().openapiRoutes([Nee,Pee]),Mo={themeId:`default`,borders:{button_border_radius:8,button_border_weight:1,buttons_style:`pill`,input_border_radius:8,input_border_weight:1,inputs_style:`pill`,show_widget_shadow:!0,widget_border_weight:1,widget_corner_radius:16},colors:{base_focus_color:`#7D68F4`,base_hover_color:`#A091F2`,body_text:`#000000`,captcha_widget_theme:`auto`,error:`#FC5A5A`,header:`#000000`,icons:`#666666`,input_background:`#FFFFFF`,input_border:`#8E8CA0`,input_filled_text:`#000000`,input_labels_placeholders:`#88869F`,links_focused_components:`#7D68F4`,primary_button:`#7D68F4`,primary_button_label:`#FFFFFF`,secondary_button_border:`#8E8CA0`,secondary_button_label:`#000000`,success:`#36BF76`,widget_background:`#FFFFFF`,widget_border:`#8E8CA0`},displayName:`Default Theme`,fonts:{body_text:{bold:!1,size:100},buttons_text:{bold:!0,size:100},font_url:`https://assets.sesamy.com/fonts/khteka/WOFF2/KHTeka-Regular.woff2`,input_labels:{bold:!1,size:100},links:{bold:!0,size:100},links_style:`normal`,reference_text_size:16,subtitle:{bold:!1,size:100},title:{bold:!0,size:150}},page_background:{background_color:`#F8F9FB`,background_image_url:``,page_layout:`center`},widget:{logo_url:``,header_text_alignment:`center`,logo_height:36,logo_position:`center`,social_buttons_layout:`bottom`}};function No(e,t){let n=structuredClone(e);function r(e,t){for(let n in t)t[n]!==void 0&&typeof t[n]==`object`&&!Array.isArray(t[n])&&typeof e[n]==`object`&&e[n]!==null?r(e[n],t[n]):e[n]=t[n];return e}return r(n,t)}function Po(e){if(e instanceof f.z.ZodObject){let t={};for(let[n,r]of Object.entries(e.shape))t[n]=Po(r).optional();return f.z.object(t)}return e}function Iee(e){return Po(e)}var Lee=L({route:(0,f.createRoute)({tags:[`branding`],method:`get`,path:`/default`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:branding`]}],responses:{200:{content:{"application/json":{schema:Ci}},description:`Default theme settings`}}}),handler:async e=>{let t=await e.env.data.themes.get(e.var.tenant_id,`default`);return t?e.json(t):e.json(Mo)}}),Ree=L({route:(0,f.createRoute)({tags:[`branding`],method:`patch`,path:`/default`,request:{body:{content:{"application/json":{schema:Iee(Ci)}}},headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`update:branding`]}],responses:{200:{content:{"application/json":{schema:Ci}},description:`Updated theme settings`}}}),handler:async e=>{let t=e.req.valid(`json`),n=await e.env.data.themes.get(e.var.tenant_id,`default`),r=No(n||Mo,t);return n?await e.env.data.themes.update(e.var.tenant_id,`default`,r):await e.env.data.themes.create(e.var.tenant_id,r,`default`),await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Update Theme`,targetType:`theme`,targetId:`default`,...n?{beforeState:n}:{},afterState:r}),e.json({...r,themeId:`default`})}}),zee=new f.OpenAPIHono().openapiRoutes([Lee,Ree]),Fo={colors:{primary:`#7D68F4`,page_background:{type:`solid`,start:`#F8F9FB`,end:`#F8F9FB`,angle_deg:0}},logo_url:`https://assets.sesamy.com/static/images/sesamy/logos/sesamy_logo_black.svg`,favicon_url:`https://assets.sesamy.com/images/favicon.ico`,font:{url:`https://assets.sesamy.com/fonts/khteka/WOFF2/KHTeka-Regular.woff2`}};function R(e){return e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`).replace(/'/g,`'`)}function Bee(e){return e.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`).replace(/'/g,`\\'`).replace(/\(/g,`\\(`).replace(/\)/g,`\\)`).replace(/\n/g,``).replace(/\r/g,``).replace(/\t/g,``)}function Io(e){if(!e)return``;try{let t=new URL(e);return[`http:`,`https:`,`data:`].includes(t.protocol)?R(e):``}catch{return e.startsWith(`/`)?R(e):``}}function Lo(e){return e&&/^(#[0-9a-fA-F]{3,8}|rgba?\([^)]+\)|hsla?\([^)]+\)|[a-zA-Z]+)$/.test(e.trim())?e.trim():``}function Vee(e){if(!e)return`#f5f5f5`;if(typeof e==`string`)return Lo(e)||`#f5f5f5`;let{type:t,start:n,end:r,angle_deg:i}=e;if(t===`linear-gradient`&&n&&r){let e=Lo(n),t=Lo(r);if(e&&t)return`linear-gradient(${typeof i==`number`?i:180}deg, ${e}, ${t})`}if(n){let e=Lo(n);if(e)return e}return`#f5f5f5`}function Ro(e,t){if(e?.background_image_url){let t=Io(e.background_image_url);if(t)return`${Lo(e.background_color)||`#f5f5f5`} url("${Bee(t)}") center / cover no-repeat`}if(e?.background_color){let t=Lo(e.background_color);if(t)return t}return Vee(t)}var Hee=(e,t)=>{try{return t(e)}catch{return e.replace(/(?:%[0-9A-Fa-f]{2})+/g,e=>{try{return t(e)}catch{return e}})}},Uee=decodeURIComponent,zo=/^[\w!#$%&'*.^`|~+-]+$/,Wee=/^[ !#-:<-[\]-~]*$/,Bo=e=>{let t=0,n=e.length;for(;t<n;){let n=e.charCodeAt(t);if(n!==32&&n!==9)break;t++}for(;n>t;){let t=e.charCodeAt(n-1);if(t!==32&&t!==9)break;n--}return t===0&&n===e.length?e:e.slice(t,n)},Vo=(e,t)=>{if(t&&e.indexOf(t)===-1)return{};let n=e.split(`;`),r=Object.create(null);for(let e of n){let n=e.indexOf(`=`);if(n===-1)continue;let i=Bo(e.substring(0,n));if(t&&t!==i||!zo.test(i)||i in r)continue;let a=Bo(e.substring(n+1));if(a.startsWith(`"`)&&a.endsWith(`"`)&&(a=a.slice(1,-1)),Wee.test(a)&&(r[i]=a.indexOf(`%`)===-1?a:Hee(a,Uee),t))break}return r},Gee=(e,t,n={})=>{if(!zo.test(e))throw Error(`Invalid cookie name`);let r=`${e}=${t}`;if(e.startsWith(`__Secure-`)&&!n.secure)throw Error(`__Secure- Cookie must have Secure attributes`);if(e.startsWith(`__Host-`)){if(!n.secure)throw Error(`__Host- Cookie must have Secure attributes`);if(n.path!==`/`)throw Error(`__Host- Cookie must have Path attributes with "/"`);if(n.domain)throw Error(`__Host- Cookie must not have Domain attributes`)}for(let e of[`domain`,`path`,`sameSite`,`priority`])if(n[e]&&/[;\r\n]/.test(n[e]))throw Error(`${e} must not contain ";", "\\r", or "\\n"`);if(n&&typeof n.maxAge==`number`&&n.maxAge>=0){if(n.maxAge>3456e4)throw Error(`Cookies Max-Age SHOULD NOT be greater than 400 days (34560000 seconds) in duration.`);r+=`; Max-Age=${n.maxAge|0}`}if(n.domain&&n.prefix!==`host`&&(r+=`; Domain=${n.domain}`),n.path&&(r+=`; Path=${n.path}`),n.expires){if(n.expires.getTime()-Date.now()>3456e7)throw Error(`Cookies Expires SHOULD NOT be greater than 400 days (34560000 seconds) in the future.`);r+=`; Expires=${n.expires.toUTCString()}`}if(n.httpOnly&&(r+=`; HttpOnly`),n.secure&&(r+=`; Secure`),n.sameSite&&(r+=`; SameSite=${n.sameSite.charAt(0).toUpperCase()+n.sameSite.slice(1)}`),n.priority&&(r+=`; Priority=${n.priority.charAt(0).toUpperCase()+n.priority.slice(1)}`),n.partitioned){if(!n.secure)throw Error(`Partitioned Cookie must have Secure attributes`);r+=`; Partitioned`}return r},Ho=(e,t,n)=>(t=encodeURIComponent(t),Gee(e,t,n)),Kee=(e,t,n)=>{let r=e.req.raw.headers.get(`Cookie`);if(typeof t==`string`){if(!r)return;let e=t;return n===`secure`?e=`__Secure-`+t:n===`host`&&(e=`__Host-`+t),Vo(r,e)[e]}return r?Vo(r):{}},Uo=(e,t,n)=>{let r;return r=n?.prefix===`secure`?Ho(`__Secure-`+e,t,{path:`/`,...n,secure:!0}):n?.prefix===`host`?Ho(`__Host-`+e,t,{...n,path:`/`,secure:!0,domain:void 0}):Ho(e,t,{path:`/`,...n}),r},Wo=(e,t,n,r)=>{let i=Uo(t,n,r);e.header(`Set-Cookie`,i,{append:!0})},Go=`mqhu28ix`,Ko=c({common:()=>qo,consent:()=>Jo,default:()=>ns,invitation:()=>Yo,login:()=>Xo,mfa:()=>Zo,organizations:()=>$o,passkeys:()=>Qo,signup:()=>es,status:()=>ts}),qo={common:{alertListTitle:`Upozornění`,backText:`Vrátit se zpět`,cancelText:`Zrušit`,closeText:`Zavřít`,contactSupportText:`Potřebujete pomoc?`,continueText:`Pokračovat`,copyrightText:"© ${currentYear} ${companyName}",errorText:`Něco se pokazilo. Zkuste to prosím znovu.`,hidePasswordText:`Skrýt heslo`,loadingText:`Načítání...`,orText:`nebo`,privacyPolicyText:`Zásady ochrany osobních údajů`,showPasswordText:`Zobrazit heslo`,termsOfServiceText:`Podmínky služby`,termsShortText:`Podmínky`,tryAgainText:`Zkusit znovu`}},Jo={consent:{buttonText:`Přijmout`,cancelButtonText:`Zamítnout`,description:"${clientName} žádá o přístup k vašemu účtu",pageTitle:"Autorizace | ${clientName}",scopesTitle:"Tímto povolíte ${clientName}:",title:"Autorizovat ${clientName}"}},Yo={invitation:{acceptButtonText:`Přijmout pozvánku`,description:"${inviterName} vás pozval(a), abyste se připojili k ${organizationName} na ${clientName}",pageTitle:"Pozvánka | ${clientName}",title:`Byli jste pozváni`}},Xo={login:{alertListTitle:`Upozornění`,buttonText:`Pokračovat`,description:"Přihlaste se k ${clientName}.",editEmailText:`Upravit`,emailPlaceholder:`E-mailová adresa`,enterACodeBtn:`Přihlásit se kódem`,federatedConnectionButtonText:"Pokračovat s ${connectionName}",footerLinkText:`Zaregistrujte se`,footerText:`Nemáte účet?`,forgotPasswordText:`Zapomněli jste heslo?`,hidePasswordText:`Skrýt heslo`,invalidEmail:`Neplatný e-mail`,invalidIdentifier:`Neplatný e-mail nebo uživatelské jméno`,invitationDescription:"Přihlaste se pro přijetí pozvánky od ${inviterName} k připojení k ${companyName} na ${clientName}.",invitationTitle:`Byli jste pozváni!`,logoAltText:"${companyName}","no-email":`Zadejte prosím e-mailovou adresu`,"no-password":`Heslo je povinné`,pageTitle:"Přihlášení | ${clientName}",passwordLoginNotAvailable:`Přihlášení heslem není k dispozici`,passwordPlaceholder:`Heslo`,phonePlaceholder:`Telefonní číslo`,separatorText:`nebo`,sessionExpired:`Platnost vaší relace vypršela. Zkuste to prosím znovu.`,showPasswordText:`Zobrazit heslo`,signupActionLinkText:"${footerLinkText}",signupActionText:"${footerText}",title:`Vítejte`,tooManyFailedLogins:`Příliš mnoho neúspěšných pokusů o přihlášení. Zkuste to prosím později.`,unverifiedEmail:`Před přihlášením prosím ověřte svou e-mailovou adresu`,userAccountDoesNotExist:`Uživatelský účet neexistuje`,usernamePlaceholder:`Uživatelské jméno nebo e-mailová adresa`,usernameTooLong:"Uživatelské jméno musí mít nejvýše ${max} znaků",usernameTooShort:"Uživatelské jméno musí mít alespoň ${min} znaků",wrongCredentials:`Nesprávné uživatelské jméno nebo heslo`,passkeyButtonText:`Přihlásit se pomocí passkey`}},Zo={mfa:{backupCodeText:`Použít záložní kód`,description:`Zvolte metodu ověření`,pageTitle:"Vícefaktorové ověření | ${clientName}",title:`Ověřte svou identitu`}},Qo={"passkey-enrollment-nudge":{title:`Zabezpečte svůj účet pomocí passkey`,description:`Passkey používají biometrii nebo PIN vašeho zařízení k rychlejšímu a bezpečnějšímu přihlášení.`,enrollButtonText:`Nastavit passkey`,snoozeButtonText:`Možná později`,optOutLinkText:`Nezobrazovat znovu`,pageTitle:"Nastavení Passkey | ${clientName}"},"passkey-enrollment":{title:`Vytvořte svůj passkey`,description:`Postupujte podle pokynů prohlížeče a vytvořte passkey pro tento účet.`,errorMessage:`Vytvoření passkey se nezdařilo. Zkuste to prosím znovu.`,cancelLinkText:`Prozatím přeskočit`,retryButtonText:`Zkusit znovu`,enrollmentComplete:`Váš passkey byl úspěšně nastaven. Tuto stránku můžete zavřít.`,pageTitle:"Vytvoření Passkey | ${clientName}"},"passkey-challenge":{title:`Přihlásit se pomocí passkey`,description:`Postupujte podle pokynů prohlížeče k ověření vaší identity.`,errorMessage:`Ověření pomocí passkey selhalo. Zkuste to prosím znovu.`,cancelLinkText:`Zpět na přihlášení`,retryButtonText:`Zkusit znovu`,pageTitle:"Přihlášení pomocí passkey | ${clientName}"}},$o={organizations:{description:`Vyberte, ke které organizaci se chcete přihlásit`,pageTitle:"Výběr organizace | ${clientName}",searchPlaceholder:`Hledat organizace`,title:`Vyberte svou organizaci`}},es={signup:{buttonText:`Pokračovat`,confirmPasswordPlaceholder:`Potvrzení hesla`,description:`Zaregistrujte se a pokračujte`,"email-already-exists":`Tento e-mail je již zaregistrován`,emailPlaceholder:`E-mailová adresa`,federatedConnectionButtonText:"Pokračovat s ${connectionName}",hidePasswordText:`Skrýt heslo`,"invalid-email-format":`Neplatný e-mail`,loginActionLinkText:`Přihlásit se`,loginActionText:`Už máte účet?`,"no-email":`Zadejte prosím e-mailovou adresu`,"no-password":`Heslo je povinné`,"no-username":`Uživatelské jméno je povinné`,pageTitle:"Registrace | ${clientName}",passwordPlaceholder:`Heslo`,passwordsDidntMatch:`Hesla se neshodují`,phonePlaceholder:`Telefonní číslo`,privacyPolicyLinkText:`Zásady ochrany osobních údajů`,separatorText:`nebo`,sessionExpired:`Platnost vaší relace vypršela. Zkuste to prosím znovu.`,showPasswordText:`Zobrazit heslo`,termsOfServiceLinkText:`Podmínky služby`,termsText:`Registrací souhlasíte s našimi`,title:`Vytvořte svůj účet`,"username-already-exists":`Toto uživatelské jméno je již obsazeno`,usernamePlaceholder:`Uživatelské jméno`,verifyEmailText:`Zkontrolujte prosím svůj e-mail pro ověření účtu`}},ts={status:{continueButtonText:`Pokračovat`,errorTitle:`Chyba`,pageTitle:"Stav | ${clientName}",successTitle:`Hotovo`,title:`Stav`}},ns={common:qo,consent:Jo,"device-flow":{"device-flow":{buttonText:`Pokračovat`,codePlaceholder:`Zadejte kód`,description:`Zadejte kód zobrazený na vašem zařízení`,"expired-code":`Platnost kódu vypršela`,"invalid-code":`Zadaný kód je neplatný`,pageTitle:"Aktivace zařízení | ${clientName}",title:`Aktivujte své zařízení`}},"email-otp-challenge":{"email-otp-challenge":{buttonText:`Přihlásit se`,codeLabel:`Ověřovací kód`,codePlaceholder:`Zadejte kód`,defaultDescription:`Zadejte ověřovací kód zaslaný na váš e-mail`,description:"Odeslali jsme kód na ${email}","invalid-code":`Neplatný kód`,noCode:`Zadejte prosím ověřovací kód`,pageTitle:"Zadejte kód | ${clientName}",resendText:`Opětovné odeslání kódu`,sessionExpired:`Platnost vaší relace vypršela. Zkuste to prosím znovu.`,title:`Zkontrolujte svůj e-mail`,unexpectedError:`Došlo k neočekávané chybě`}},"email-verification":{"email-verification":{description:"Odeslali jsme e-mail na ${email}",pageTitle:"Ověření e-mailu | ${clientName}",resendText:`Opětovné odeslání kódu`,successDescription:`Váš e-mail byl úspěšně ověřen.`,successTitle:`E-mail ověřen`,title:`Ověření e-mailu`}},invitation:Yo,login:Xo,"login-id":{"login-id":{alertListTitle:`Upozornění`,"auth0-users-validation":`Něco se pokazilo, zkuste to prosím později`,"authentication-failure":`Omlouváme se, při pokusu o přihlášení se něco pokazilo`,buttonText:`Pokračovat`,"captcha-client-failure":`Nepodařilo se načíst bezpečnostní výzvu. Zkuste to prosím znovu. (Kód chyby: #{errorCode})`,"captcha-validation-failure":`Omlouváme se, při ověřování captcha došlo k chybě. Zkuste to prosím znovu.`,captchaCodePlaceholder:`Zadejte kód zobrazený výše`,"custom-script-error-code":`Něco se pokazilo, zkuste to prosím později.`,description:"Přihlaste se k ${clientName}.",editEmailText:`Upravit`,emailPlaceholder:`E-mailová adresa`,federatedConnectionButtonText:"Pokračovat s ${connectionName}",footerLinkText:`Zaregistrujte se`,footerText:`Nemáte účet?`,forgotPasswordText:`Zapomněli jste heslo?`,hidePasswordText:`Skrýt heslo`,"invalid-captcha":`Vyřešte úlohu, abyste ověřili, že nejste robot.`,"invalid-code":`Neplatný kód`,"invalid-connection":`Neplatné připojení`,"invalid-email-format":`Neplatný e-mail`,"invalid-email-phone":`Zadejte platnou e-mailovou adresu nebo telefonní číslo. Telefonní čísla musí obsahovat předvolbu země.`,"invalid-email-phone-username":`Zadejte platnou e-mailovou adresu, telefonní číslo nebo uživatelské jméno. Telefonní čísla musí obsahovat předvolbu země.`,"invalid-email-username":`Zadejte platnou e-mailovou adresu nebo uživatelské jméno`,"invalid-expired-code":`Neplatný nebo vypršelý uživatelský kód`,"invalid-login-id":`Zadáno neplatné přihlašovací ID`,"invalid-phone-username":`Zadejte platné telefonní číslo nebo uživatelské jméno. Telefonní čísla musí obsahovat předvolbu země.`,"invalid-recaptcha":`Zaškrtněte políčko, abyste ověřili, že nejste robot.`,"invalid-username":"Uživatelské jméno může obsahovat pouze alfanumerické znaky nebo: '${characters}'. Uživatelské jméno musí mít ${min} až ${max} znaků.",invitationDescription:"Přihlaste se pro přijetí pozvánky od ${inviterName} k připojení k ${companyName} na ${clientName}.",invitationTitle:`Byli jste pozváni!`,"ip-blocked":`Zjistili jsme podezřelé přihlašovací chování a další pokusy budou blokovány. Kontaktujte prosím administrátora.`,logoAltText:"${companyName}","no-db-connection":`Neplatné připojení`,"no-email":`Zadejte prosím e-mailovou adresu`,"no-email-phone":`Je vyžadována e-mailová adresa nebo telefonní číslo`,"no-email-phone-username":`Je vyžadováno telefonní číslo, uživatelské jméno nebo e-mailová adresa`,"no-email-username":`Je vyžadována e-mailová adresa nebo uživatelské jméno`,"no-password":`Heslo je povinné`,"no-phone":`Zadejte prosím telefonní číslo`,"no-phone-username":`Je vyžadováno telefonní číslo nebo uživatelské jméno`,"no-username":`Uživatelské jméno je povinné`,pageTitle:"Přihlášení | ${clientName}","password-breached":`Zjistili jsme potenciální bezpečnostní problém s tímto účtem. Pro ochranu vašeho účtu jsme toto přihlášení zablokovali. Pro pokračování prosím resetujte své heslo.`,passwordPlaceholder:`Heslo`,phoneOrEmailPlaceholder:`E-mail nebo telefonní číslo`,phoneOrUsernameOrEmailPlaceholder:`Telefon, uživatelské jméno nebo e-mail`,phoneOrUsernamePlaceholder:`Telefonní číslo nebo uživatelské jméno`,phonePlaceholder:`Telefonní číslo`,"same-user-login":`Příliš mnoho pokusů o přihlášení pro tohoto uživatele. Počkejte prosím a zkuste to znovu později.`,selectCountryCode:"Vyberte předvolbu země, aktuálně nastaveno na ${countryName}, ${countryCode}, +${countryPrefix}",separatorText:`nebo`,sessionExpired:`Platnost vaší relace vypršela. Zkuste to prosím znovu.`,showPasswordText:`Zobrazit heslo`,signupActionLinkText:"${footerLinkText}",signupActionText:"${footerText}",termsAndConditionsTemplate:'Pokračováním souhlasíte s našimi <a href="${termsAndConditionsUrl}" target="_blank" rel="noopener noreferrer">Podmínkami a pravidly</a>.',title:`Vítejte`,"user-blocked":`Váš účet byl zablokován po několika po sobě jdoucích neúspěšných pokusech o přihlášení.`,userAccountDoesNotExist:`Uživatelský účet neexistuje`,usernameOnlyPlaceholder:`Uživatelské jméno`,usernameOrEmailPlaceholder:`Uživatelské jméno nebo e-mailová adresa`,usernamePlaceholder:`Uživatelské jméno nebo e-mailová adresa`,usernameTooLong:"Uživatelské jméno musí mít nejvýše ${max} znaků",usernameTooShort:"Uživatelské jméno musí mít alespoň ${min} znaků","wrong-credentials":`Nesprávné uživatelské jméno nebo heslo`,"wrong-email-credentials":`Nesprávný e-mail nebo heslo`,"wrong-email-phone-credentials":`Nesprávná e-mailová adresa, telefonní číslo nebo heslo. Telefonní čísla musí obsahovat předvolbu země.`,"wrong-email-phone-username-credentials":`Nesprávná e-mailová adresa, telefonní číslo, uživatelské jméno nebo heslo. Telefonní čísla musí obsahovat předvolbu země.`,"wrong-email-username-credentials":`Nesprávná e-mailová adresa, uživatelské jméno nebo heslo`,"wrong-phone-credentials":`Nesprávné telefonní číslo nebo heslo`,"wrong-phone-username-credentials":`Nesprávné telefonní číslo, uživatelské jméno nebo heslo. Telefonní čísla musí obsahovat předvolbu země.`,"wrong-username-credentials":`Nesprávné uživatelské jméno nebo heslo`,passkeyButtonText:`Přihlásit se pomocí passkey`}},"login-password":{"login-password":{buttonText:`Přihlásit se`,description:"Přihlaste se k ${clientName}",forgotPasswordText:`Zapomněli jste heslo?`,hidePasswordText:`Skrýt heslo`,"no-password":`Heslo je povinné`,pageTitle:"Přihlášení | ${clientName}","password-breached":`Zjistili jsme potenciální bezpečnostní problém s tímto účtem. Pro ochranu vašeho účtu jsme toto přihlášení zablokovali. Pro pokračování prosím resetujte své heslo.`,passwordPlaceholder:`Heslo`,showPasswordText:`Zobrazit heslo`,signingInAs:"Přihlášení jako ${email}",title:`Zadejte heslo`,unverifiedEmail:`Před přihlášením prosím ověřte svou e-mailovou adresu`,"user-blocked":`Váš účet byl zablokován po několika po sobě jdoucích neúspěšných pokusech o přihlášení.`,"wrong-credentials":`Nesprávné heslo`}},"login-passwordless":{"login-passwordless":{authMethodEmail:`e-mailová adresa`,authMethodEmailOrPhone:`e-mail nebo telefonní číslo`,authMethodPhone:`telefonní číslo`,description:"Přihlaste se pomocí ${authMethod}",emailOrPhonePlaceholder:`E-mailová adresa nebo telefonní číslo`,emailPlaceholder:`E-mailová adresa`,invalidEmail:`Zadejte prosím platnou e-mailovou adresu`,invalidIdentifier:`Zadejte prosím platnou e-mailovou adresu nebo telefonní číslo`,invalidPhone:`Zadejte prosím platné telefonní číslo s předvolbou země`,noEmail:`Zadejte prosím svou e-mailovou adresu`,noPhone:`Zadejte prosím své telefonní číslo`,phonePlaceholder:`Telefonní číslo`,sessionExpired:`Platnost vaší relace vypršela. Zkuste to prosím znovu.`,title:`Přihlásit se kódem`,userAccountDoesNotExist:`Uživatelský účet neexistuje`}},"magic-link-sent":{"magic-link-sent":{defaultDescription:`Klikněte na odkaz ve svém e-mailu pro přihlášení`,description:"Odeslali jsme odkaz na ${username}. Kliknutím na něj se přihlásíte.",resendText:`Odeslat odkaz znovu`,spamText:`Nedostali jste e-mail? Zkontrolujte složku nevyžádané pošty.`,title:`Zkontrolujte svůj e-mail`}},mfa:Zo,"mfa-email":{"mfa-email":{buttonText:`Pokračovat`,codePlaceholder:`Zadejte kód`,description:"Odeslali jsme kód na ${email}","invalid-code":`Zadaný kód je neplatný`,pageTitle:"Ověření e-mailem | ${clientName}",resendText:`Opětovné odeslání kódu`,title:`Zkontrolujte svůj e-mail`}},"mfa-otp":{"mfa-otp":{buttonText:`Pokračovat`,codePlaceholder:`Zadejte kód`,description:`Zadejte šestimístný kód z vaší ověřovací aplikace`,"invalid-code":`Zadaný kód je neplatný`,pageTitle:"Zadejte kód | ${clientName}",title:`Zadejte svůj kód`},"mfa-totp-enrollment":{title:`Nastavit ověřovací aplikaci`,description:`Naskenujte QR kód níže pomocí ověřovací aplikace a poté zadejte šestimístný kód pro ověření`,secretLabel:`Nebo zadejte tento kód ručně:`,codePlaceholder:`Zadejte kód`,continueButtonText:`Ověřit a aktivovat`,"invalid-code":`Zadaný kód je neplatný. Zkuste to prosím znovu.`,"transaction-not-found":`Platnost vaší registrace vypršela, budete muset začít znovu.`,pageTitle:"Nastavení ověřovací aplikace | ${clientName}",unexpectedError:`Něco se pokazilo. Zkuste to prosím znovu.`,enrollmentComplete:`Registrace MFA je dokončena. Tuto stránku můžete zavřít.`},"mfa-totp-challenge":{title:`Ověřte svou identitu`,description:`Zadejte šestimístný kód z vaší ověřovací aplikace`,codePlaceholder:`Zadejte kód`,continueButtonText:`Pokračovat`,"invalid-code":`Zadaný kód je neplatný`,"transaction-not-found":`Platnost vaší registrace vypršela, budete muset začít znovu.`,unexpectedError:`Něco se pokazilo. Zkuste to prosím znovu.`,pageTitle:"Ověření identity | ${clientName}"}},"mfa-phone":{"mfa-phone-challenge":{pageTitle:"Použijte své telefonní číslo pro přihlášení | ${clientName}",title:`Ověřte svou identitu`,description:"Odeslali jsme kód na ${phoneNumber}",continueButtonText:`Pokračovat`,changePhoneText:`Zvolte jiné telefonní číslo.`,smsButtonText:`Textová zpráva`,voiceButtonText:`Hlasový hovor`,chooseMessageTypeText:`Jak chcete kód přijmout?`,pickAuthenticatorText:`Zkusit jinou metodu`,logoAltText:"${companyName}",codePlaceholder:`Zadejte kód`,"send-sms-failed":`Při odesílání SMS došlo k problému`,"send-voice-failed":`Při uskutečnění hlasového hovoru došlo k problému`,"invalid-phone-format":`Telefonní číslo může obsahovat pouze číslice.`,"invalid-phone":`Zdá se, že vaše telefonní číslo není platné. Zkontrolujte a zkuste to znovu.`,"too-many-sms":`Překročili jste maximální počet telefonních zpráv za hodinu. Počkejte pár minut a zkuste to znovu.`,"too-many-voice":`Překročili jste maximální počet hlasových hovorů za hodinu. Počkejte pár minut a zkuste to znovu.`,"transaction-not-found":`Vaše registrační transakce vypršela, budete muset začít znovu.`,"no-phone":`Zadejte telefonní číslo`,noCode:`Zadejte ověřovací kód`,invalidCode:`Zadaný kód je neplatný. Zkuste to znovu.`,unexpectedError:`Něco se pokazilo. Zkuste to znovu.`,resendSuccess:`Odeslali jsme nový kód na váš telefon`,enrollmentComplete:`Registrace MFA je dokončena. Tuto stránku můžete zavřít.`},"mfa-phone-enrollment":{pageTitle:"Zadejte své telefonní číslo pro přihlášení pomocí telefonního kódu | ${clientName}",title:`Zabezpečte svůj účet`,description:`Zadejte kód země a telefonní číslo, na které můžeme odeslat 6místný kód:`,continueButtonText:`Pokračovat`,smsButtonText:`Textová zpráva`,voiceButtonText:`Hlasový hovor`,chooseMessageTypeText:`Jak chcete kód přijmout?`,pickAuthenticatorText:`Zkusit jinou metodu`,placeholder:`Zadejte své telefonní číslo`,logoAltText:"${companyName}",selectCountryCode:"Vyberte kód země, aktuálně nastaveno na ${countryName}, ${countryCode}, +${countryPrefix}","send-sms-failed":`Při odesílání SMS došlo k problému`,"send-voice-failed":`Při uskutečnění hlasového hovoru došlo k problému`,"sms-authenticator-error":`Nepodařilo se odeslat SMS. Zkuste to prosím později.`,"invalid-phone-format":`Telefonní číslo může obsahovat pouze číslice.`,"invalid-phone":`Zdá se, že vaše telefonní číslo není platné. Zkontrolujte a zkuste to znovu.`,"too-many-sms":`Překročili jste maximální počet telefonních zpráv za hodinu. Počkejte pár minut a zkuste to znovu.`,"too-many-voice":`Překročili jste maximální počet hlasových hovorů za hodinu. Počkejte pár minut a zkuste to znovu.`,"transaction-not-found":`Vaše registrační transakce vypršela, budete muset začít znovu.`,"no-phone":`Zadejte telefonní číslo`,"phone-is-too-short":`Telefonní číslo je příliš krátké`,"phone-is-too-long":`Telefonní číslo je příliš dlouhé`}},"mfa-login-options":{"mfa-login-options":{pageTitle:"Vyberte metodu ověření | ${clientName}",title:`Vyberte způsob ověření`,description:`Zvolte, jak chcete ověřit svou identitu`,authenticatorAppLabel:`Autentizační aplikace`,authenticatorAppDescription:`Použijte autentizační aplikaci k získání ověřovacího kódu`,smsLabel:`Textová zpráva`,smsDescription:`Nechte si zaslat ověřovací kód na telefon`,passkeyLabel:`Passkey`,passkeyDescription:`Použijte biometrii zařízení nebo bezpečnostní klíč`}},"mfa-push":{"mfa-push":{description:`Odeslali jsme oznámení na vaše zařízení`,pageTitle:"Push oznámení | ${clientName}",resendText:`Odeslat oznámení znovu`,title:`Schvalte požadavek`,useCodeText:`Zadat kód ručně`}},"mfa-recovery-code":{"mfa-recovery-code":{buttonText:`Pokračovat`,codePlaceholder:`Záložní kód`,description:`Zadejte jeden z vašich záložních kódů`,"invalid-code":`Zadaný záložní kód je neplatný`,pageTitle:"Záložní kód | ${clientName}",title:`Zadejte záložní kód`}},"mfa-voice":{"mfa-voice":{buttonText:`Zavolat mi`,codePlaceholder:`Zadejte kód`,description:"Zavoláme na ${phoneNumber} s vaším kódem","invalid-code":`Zadaný kód je neplatný`,pageTitle:"Hlasový hovor | ${clientName}",title:`Přijmout telefonní hovor`}},"mfa-webauthn":{"mfa-webauthn":{buttonText:`Zkusit znovu`,description:`Vložte svůj bezpečnostní klíč a postupujte podle pokynů`,pageTitle:"Bezpečnostní klíč | ${clientName}",title:`Použijte svůj bezpečnostní klíč`}},passkeys:Qo,organizations:$o,"reset-password":{"reset-password":{backToLoginText:`Zpět na přihlášení`,buttonText:`Pokračovat`,codeExpired:`Platnost kódu pro obnovení hesla vypršela. Požádejte prosím o nový.`,confirmPasswordLabel:`Potvrzení hesla`,confirmPasswordPlaceholder:`Potvrzení hesla`,description:`Zadejte svůj e-mail pro obnovení hesla`,emailPlaceholder:`E-mailová adresa`,failed:`Obnovení hesla se nezdařilo. Zkuste to prosím znovu.`,"invalid-email-format":`Neplatný e-mail`,"no-email":`Zadejte prosím e-mailovou adresu`,pageTitle:"Obnovení hesla | ${clientName}",passwordLabel:`Nové heslo`,passwordPlaceholder:`Nové heslo`,passwordTooWeak:`Heslo je příliš slabé`,passwordsDidntMatch:`Hesla se neshodují`,successDescription:`Odkaz na obnovení hesla jsme odeslali na vaši e-mailovou adresu.`,successTitle:`Zkontrolujte svůj e-mail`,title:`Zapomněli jste heslo?`,"user-not-found":`Uživatel nenalezen`},"reset-password-code":{backToLoginText:`Zpět na přihlášení`,buttonText:`Obnovit heslo`,codeLabel:`Kód pro obnovení`,codePlaceholder:`Zadejte 6místný kód`,confirmPasswordLabel:`Potvrzení hesla`,confirmPasswordPlaceholder:`Potvrzení hesla`,defaultDescription:`Zadejte kód zaslaný na váš e-mail a zvolte nové heslo`,description:"Odeslali jsme kód na ${email}",failed:`Obnovení hesla se nezdařilo. Zkuste to prosím znovu.`,invalidCode:`Zadaný kód je neplatný nebo vypršel`,noCode:`Zadejte prosím kód pro obnovení`,pageTitle:"Zadejte kód pro obnovení | ${clientName}",passwordLabel:`Nové heslo`,passwordPlaceholder:`Nové heslo`,passwordTooWeak:`Heslo je příliš slabé`,passwordsDidntMatch:`Hesla se neshodují`,resendFailed:`Nepodařilo se znovu odeslat kód. Zkuste to prosím znovu.`,resendSuccess:`Nový kód byl odeslán na váš e-mail`,resendText:`Odeslat kód znovu`,sessionExpired:`Platnost vaší relace vypršela. Zkuste to prosím znovu.`,title:`Zadejte kód pro obnovení`}},signup:es,"signup-id":{"signup-id":{buttonText:`Pokračovat`,description:`Zaregistrujte se a pokračujte`,"email-already-exists":`Tento e-mail je již zaregistrován`,emailPlaceholder:`E-mailová adresa`,federatedConnectionButtonText:"Pokračovat s ${connectionName}","invalid-email-format":`Neplatný e-mail`,loginActionLinkText:`Přihlásit se`,loginActionText:`Už máte účet?`,"no-email":`Zadejte prosím e-mailovou adresu`,pageTitle:"Registrace | ${clientName}",phonePlaceholder:`Telefonní číslo`,separatorText:`nebo`,title:`Vytvořte svůj účet`,usernamePlaceholder:`Uživatelské jméno`}},"signup-password":{"signup-password":{buttonText:`Pokračovat`,description:`Zaregistrujte se a pokračujte`,hidePasswordText:`Skrýt heslo`,"no-password":`Heslo je povinné`,pageTitle:"Registrace | ${clientName}","password-policy-not-met":`Heslo nesplňuje požadavky`,"password-too-weak":`Heslo je příliš slabé`,passwordPlaceholder:`Heslo`,showPasswordText:`Zobrazit heslo`,title:`Vytvořte své heslo`}},"sms-otp-challenge":{"sms-otp-challenge":{buttonText:`Pokračovat`,codeLabel:`Ověřovací kód`,codePlaceholder:`Zadejte kód`,defaultDescription:`Zadejte ověřovací kód zaslaný na váš telefon`,description:"Odeslali jsme kód na ${username}","invalid-code":`Neplatný kód`,noCode:`Zadejte prosím ověřovací kód`,pageTitle:"Zadejte kód | ${clientName}",resendText:`Opětovné odeslání kódu`,sessionExpired:`Platnost vaší relace vypršela. Zkuste to prosím znovu.`,title:`Zkontrolujte svůj telefon`,unexpectedError:`Došlo k neočekávané chybě`}},status:ts},rs=c({common:()=>is,consent:()=>as,default:()=>ps,invitation:()=>os,login:()=>ss,mfa:()=>cs,organizations:()=>us,passkeys:()=>ls,signup:()=>ds,status:()=>fs}),is={common:{alertListTitle:`Advarsler`,backText:`Gå tilbage`,cancelText:`Gå tilbage`,closeText:`Luk`,contactSupportText:`Har du brug for hjælp?`,continueText:`Fortsæt`,copyrightText:"© ${currentYear} ${companyName}",errorText:`Noget gik galt. Prøv venligst igen.`,hidePasswordText:`Skjul adgangskode`,loadingText:`Indlæser...`,orText:`eller`,privacyPolicyText:`Privatlivspolitik`,showPasswordText:`Vis adgangskode`,termsOfServiceText:`Servicevilkår`,termsShortText:`Vilkår`,tryAgainText:`Prøv igen`}},as={consent:{buttonText:`Acceptér`,cancelButtonText:`Afvis`,description:"${clientName} anmoder om adgang til din konto",pageTitle:"Godkend | ${clientName}",scopesTitle:"Dette vil give ${clientName} tilladelse til at:",title:"Godkend ${clientName}"}},os={invitation:{acceptButtonText:`Acceptér invitation`,description:"${inviterName} har inviteret dig til at deltage i ${organizationName} på ${clientName}",pageTitle:"Invitation | ${clientName}",title:`Du er blevet inviteret`}},ss={login:{alertListTitle:`Advarsler`,buttonText:`Fortsæt`,description:"Log ind på ${clientName}.",editEmailText:`Rediger`,emailPlaceholder:`E-mail-adresse`,enterACodeBtn:`Log ind med en kode`,federatedConnectionButtonText:"Fortsæt med ${connectionName}",footerLinkText:`Tilmeld dig`,footerText:`Har du ikke en konto?`,forgotPasswordText:`Har du glemt din adgangskode?`,hidePasswordText:`Skjul adgangskode`,invalidEmail:`Ugyldig e-mail`,invalidIdentifier:`Ugyldig e-mail eller brugernavn`,invitationDescription:"Log ind for at acceptere ${inviterName}s invitation til at deltage i ${companyName} på ${clientName}.",invitationTitle:`Du er blevet inviteret!`,logoAltText:"${companyName}","no-email":`Indtast venligst en e-mailadresse`,"no-password":`Adgangskode er påkrævet`,pageTitle:"Log ind | ${clientName}",passwordLoginNotAvailable:`Adgangskodegodkendelse er ikke tilgængelig`,passwordPlaceholder:`Adgangskode`,phonePlaceholder:`Telefonnummer`,separatorText:`eller`,sessionExpired:`Din session er udløbet. Prøv venligst igen.`,showPasswordText:`Vis adgangskode`,signupActionLinkText:`Tilmeld dig`,signupActionText:`Har du ikke en konto?`,title:`Velkommen`,tooManyFailedLogins:`For mange mislykkede loginforsøg. Prøv venligst igen senere.`,unverifiedEmail:`Bekræft venligst din e-mailadresse, før du logger ind`,userAccountDoesNotExist:`Brugerkontoen findes ikke`,usernamePlaceholder:`Brugernavn eller e-mailadresse`,usernameTooLong:"Brugernavnet må højst være ${max} tegn",usernameTooShort:"Brugernavnet skal være mindst ${min} tegn",wrongCredentials:`Forkert brugernavn eller adgangskode`,passkeyButtonText:`Log ind med passkey`}},cs={mfa:{backupCodeText:`Brug backupkode`,description:`Vælg en bekræftelsesmetode`,pageTitle:"Multifaktorgodkendelse | ${clientName}",title:`Bekræft din identitet`}},ls={"passkey-enrollment-nudge":{title:`Sikr din konto med en adgangsnøgle`,description:`Adgangsnøgler bruger din enheds biometri eller PIN til at logge dig ind hurtigere og mere sikkert.`,enrollButtonText:`Konfigurer adgangsnøgle`,snoozeButtonText:`Måske senere`,optOutLinkText:`Vis ikke dette igen`,pageTitle:"Konfigurer Adgangsnøgle | ${clientName}"},"passkey-enrollment":{title:`Opret din adgangsnøgle`,description:`Følg anvisningerne fra din browser for at oprette en adgangsnøgle til denne konto.`,errorMessage:`Oprettelse af adgangsnøgle mislykkedes. Prøv venligst igen.`,cancelLinkText:`Spring over for nu`,retryButtonText:`Prøv igen`,enrollmentComplete:`Din adgangsnøgle er konfigureret. Du kan lukke denne side.`,pageTitle:"Opret Adgangsnøgle | ${clientName}"},"passkey-challenge":{title:`Log ind med passkey`,description:`Følg anvisningerne fra din browser for at bekræfte din identitet.`,errorMessage:`Godkendelse med passkey mislykkedes. Prøv venligst igen.`,cancelLinkText:`Tilbage til login`,retryButtonText:`Prøv igen`,pageTitle:"Log ind med passkey | ${clientName}"}},us={organizations:{description:`Vælg hvilken organisation du vil logge ind på`,pageTitle:"Vælg organisation | ${clientName}",searchPlaceholder:`Søg organisationer`,title:`Vælg din organisation`}},ds={signup:{buttonText:`Tilmelding`,confirmPasswordPlaceholder:`Bekræft adgangskode`,description:`Vælg en adgangskode med en blanding af store og små bogstaver, tal og symboler.`,"email-already-exists":`E-mailen er allerede optaget`,emailPlaceholder:`E-mail-adresse`,federatedConnectionButtonText:"Fortsæt med ${connectionName}",hidePasswordText:`Skjul adgangskode`,"invalid-email-format":`Ugyldig e-mail`,loginActionLinkText:`Log ind`,loginActionText:`Har du allerede en konto?`,"no-email":`Indtast venligst en e-mailadresse`,"no-password":`Adgangskode er påkrævet`,"no-username":`Brugernavn er påkrævet`,pageTitle:"Tilmeld dig | ${clientName}",passwordPlaceholder:`Adgangskode`,passwordsDidntMatch:`Adgangskoderne matcher ikke`,phonePlaceholder:`Telefonnummer`,privacyPolicyLinkText:`Privatlivspolitik`,separatorText:`eller`,sessionExpired:`Din session er udløbet. Prøv venligst igen.`,showPasswordText:`Vis adgangskode`,termsOfServiceLinkText:`Servicevilkår`,termsText:`Ved at tilmelde dig accepterer du vores`,title:`Vælg adgangskode`,"username-already-exists":`Dette brugernavn er allerede taget`,usernamePlaceholder:`Brugernavn`,verifyEmailText:`Tjek venligst din e-mail for at bekræfte din konto`}},fs={status:{continueButtonText:`Fortsæt`,errorTitle:`Fejl`,pageTitle:"Status | ${clientName}",successTitle:`Succes`,title:`Status`}},ps={common:is,consent:as,"device-flow":{"device-flow":{buttonText:`Fortsæt`,codePlaceholder:`Indtast kode`,description:`Indtast koden, der vises på din enhed`,"expired-code":`Koden er udløbet`,"invalid-code":`Den indtastede kode er ugyldig`,pageTitle:"Enhedsaktivering | ${clientName}",title:`Aktivér din enhed`}},"email-otp-challenge":{"email-otp-challenge":{buttonText:`Log ind`,codeLabel:`Bekræftelseskode`,codePlaceholder:`Indtast kode`,defaultDescription:`Indtast bekræftelseskoden, der blev sendt til din e-mail`,description:"Vi sendte en kode til ${email}","invalid-code":`Ugyldig kode`,noCode:`Indtast venligst bekræftelseskoden`,pageTitle:"Indtast kode | ${clientName}",resendText:`Send koden igen`,sessionExpired:`Din session er udløbet. Prøv venligst igen.`,title:`Tjek din e-mail`,unexpectedError:`Der opstod en uventet fejl`}},"email-verification":{"email-verification":{description:"Vi sendte en e-mail til ${email}",pageTitle:"Bekræft e-mail | ${clientName}",resendText:`Send koden igen`,successDescription:`Din e-mail er blevet bekræftet.`,successTitle:`E-mail bekræftet`,title:`Bekræft din e-mail`}},invitation:os,login:ss,"login-id":{"login-id":{alertListTitle:`Advarsler`,"auth0-users-validation":`Noget gik galt, prøv venligst igen senere`,"authentication-failure":`Vi beklager, noget gik galt under loginforsøget`,buttonText:`Fortsæt`,"captcha-client-failure":`Vi kunne ikke indlæse sikkerhedsudfordringen. Prøv venligst igen. (Fejlkode: #{errorCode})`,"captcha-validation-failure":`Vi beklager, noget gik galt under validering af captcha-svaret. Prøv venligst igen.`,captchaCodePlaceholder:`Indtast koden vist ovenfor`,"custom-script-error-code":`Noget gik galt, prøv venligst igen senere.`,description:"Log ind på ${clientName}.",editEmailText:`Rediger`,emailPlaceholder:`E-mail-adresse`,federatedConnectionButtonText:"Fortsæt med ${connectionName}",footerLinkText:`Tilmeld dig`,footerText:`Har du ikke en konto?`,forgotPasswordText:`Har du glemt din adgangskode?`,hidePasswordText:`Skjul adgangskode`,"invalid-captcha":`Løs sikkerhedsspørgsmålet for at bekræfte, at du ikke er en robot.`,"invalid-code":`Ugyldig kode`,"invalid-connection":`Ugyldig forbindelse`,"invalid-email-format":`Ugyldig e-mail`,"invalid-email-phone":`Indtast en gyldig e-mailadresse eller telefonnummer. Telefonnumre skal inkludere landekoden.`,"invalid-email-phone-username":`Indtast en gyldig e-mailadresse, telefonnummer eller brugernavn. Telefonnumre skal inkludere landekoden.`,"invalid-email-username":`Indtast en gyldig e-mailadresse eller brugernavn`,"invalid-expired-code":`Ugyldig eller udløbet brugerkode`,"invalid-login-id":`Ugyldigt login-ID indtastet`,"invalid-phone-username":`Indtast et gyldigt telefonnummer eller brugernavn. Telefonnumre skal inkludere landekoden.`,"invalid-recaptcha":`Markér afkrydsningsfeltet for at bekræfte, at du ikke er en robot.`,"invalid-username":"Brugernavnet kan kun indeholde alfanumeriske tegn eller: '${characters}'. Brugernavnet skal være mellem ${min} og ${max} tegn.",invitationDescription:"Log ind for at acceptere ${inviterName}s invitation til at deltage i ${companyName} på ${clientName}.",invitationTitle:`Du er blevet inviteret!`,"ip-blocked":`Vi har registreret mistænkelig loginadfærd, og yderligere forsøg vil blive blokeret. Kontakt venligst administratoren.`,logoAltText:"${companyName}","no-db-connection":`Ugyldig forbindelse`,"no-email":`Indtast venligst en e-mailadresse`,"no-email-phone":`E-mailadresse eller telefonnummer er påkrævet`,"no-email-phone-username":`Telefonnummer, brugernavn eller e-mailadresse er påkrævet`,"no-email-username":`E-mailadresse eller brugernavn er påkrævet`,"no-password":`Adgangskode er påkrævet`,"no-phone":`Indtast venligst et telefonnummer`,"no-phone-username":`Telefonnummer eller brugernavn er påkrævet`,"no-username":`Brugernavn er påkrævet`,pageTitle:"Log ind | ${clientName}","password-breached":`Vi har registreret et potentielt sikkerhedsproblem med denne konto. For at beskytte din konto har vi forhindret dette login. Nulstil venligst din adgangskode for at fortsætte.`,passwordPlaceholder:`Adgangskode`,phoneOrEmailPlaceholder:`E-mail eller telefonnummer`,phoneOrUsernameOrEmailPlaceholder:`Telefon, brugernavn eller e-mail`,phoneOrUsernamePlaceholder:`Telefonnummer eller brugernavn`,phonePlaceholder:`Telefonnummer`,"same-user-login":`For mange loginforsøg for denne bruger. Vent venligst, og prøv igen senere.`,selectCountryCode:"Vælg landekode, i øjeblikket sat til ${countryName}, ${countryCode}, +${countryPrefix}",separatorText:`eller`,sessionExpired:`Din session er udløbet. Prøv venligst igen.`,showPasswordText:`Vis adgangskode`,signupActionLinkText:`Tilmeld dig`,signupActionText:`Har du ikke en konto?`,termsAndConditionsTemplate:'Ved at fortsætte accepterer du vores <a href="${termsAndConditionsUrl}" target="_blank" rel="noopener noreferrer">Vilkår og betingelser</a>.',title:`Velkommen`,"user-blocked":`Din konto er blevet blokeret efter flere på hinanden følgende loginforsøg.`,userAccountDoesNotExist:`Brugerkontoen findes ikke`,usernameOnlyPlaceholder:`Brugernavn`,usernameOrEmailPlaceholder:`Brugernavn eller e-mailadresse`,usernamePlaceholder:`Brugernavn`,usernameTooLong:"Brugernavnet må højst være ${max} tegn",usernameTooShort:"Brugernavnet skal være mindst ${min} tegn","wrong-credentials":`Forkert brugernavn eller adgangskode`,"wrong-email-credentials":`Forkert e-mail eller adgangskode`,"wrong-email-phone-credentials":`Forkert e-mailadresse, telefonnummer eller adgangskode. Telefonnumre skal inkludere landekoden.`,"wrong-email-phone-username-credentials":`Forkert e-mailadresse, telefonnummer, brugernavn eller adgangskode. Telefonnumre skal inkludere landekoden.`,"wrong-email-username-credentials":`Forkert e-mailadresse, brugernavn eller adgangskode`,"wrong-phone-credentials":`Forkert telefonnummer eller adgangskode`,"wrong-phone-username-credentials":`Forkert telefonnummer, brugernavn eller adgangskode. Telefonnumre skal inkludere landekoden.`,"wrong-username-credentials":`Forkert brugernavn eller adgangskode`,passkeyButtonText:`Log ind med passkey`}},"login-password":{"login-password":{buttonText:`Log ind`,description:`Indtast din e-mailadresse og adgangskode for at logge ind.`,forgotPasswordText:`Har du glemt din adgangskode?`,hidePasswordText:`Skjul adgangskode`,"no-password":`Adgangskode er påkrævet`,pageTitle:"Log ind | ${clientName}","password-breached":`Vi har registreret et potentielt sikkerhedsproblem med denne konto. For at beskytte din konto har vi forhindret dette login. Nulstil venligst din adgangskode for at fortsætte.`,passwordPlaceholder:`Adgangskode`,showPasswordText:`Vis adgangskode`,signingInAs:"Logger ind som ${email}",title:`Indtast adgangskode`,unverifiedEmail:`Bekræft venligst din e-mailadresse, før du logger ind`,"user-blocked":`Din konto er blevet blokeret efter flere på hinanden følgende loginforsøg.`,"wrong-credentials":`Forkert adgangskode`}},"login-passwordless":{"login-passwordless":{authMethodEmail:`e-mail`,authMethodEmailOrPhone:`e-mail eller telefonnummer`,authMethodPhone:`telefonnummer`,description:"Log ind med din ${authMethod}",emailOrPhonePlaceholder:`E-mailadresse eller telefonnummer`,emailPlaceholder:`E-mail-adresse`,invalidEmail:`Indtast venligst en gyldig e-mailadresse`,invalidIdentifier:`Indtast venligst en gyldig e-mailadresse eller telefonnummer`,invalidPhone:`Indtast venligst et gyldigt telefonnummer med landekode`,noEmail:`Indtast venligst din e-mailadresse`,noPhone:`Indtast venligst dit telefonnummer`,phonePlaceholder:`Telefonnummer`,sessionExpired:`Din session er udløbet. Prøv venligst igen.`,title:`Log ind med en kode`,userAccountDoesNotExist:`Brugerkontoen findes ikke`}},"magic-link-sent":{"magic-link-sent":{defaultDescription:`Klik på linket i din e-mail for at logge ind`,description:"Vi sendte et link til ${username}. Klik på det for at logge ind.",resendText:`Send link igen`,spamText:`Har du ikke modtaget e-mailen? Tjek din spam-mappe.`,title:`Tjek din e-mail`}},mfa:cs,"mfa-email":{"mfa-email":{buttonText:`Fortsæt`,codePlaceholder:`Indtast kode`,description:"Vi sendte en kode til ${email}","invalid-code":`Den indtastede kode er ugyldig`,pageTitle:"E-mailbekræftelse | ${clientName}",resendText:`Send kode igen`,title:`Tjek din e-mail`}},"mfa-otp":{"mfa-otp":{buttonText:`Fortsæt`,codePlaceholder:`Indtast kode`,description:`Indtast den 6-cifrede kode fra din autentificeringsapp`,"invalid-code":`Den indtastede kode er ugyldig`,pageTitle:"Indtast kode | ${clientName}",title:`Indtast din kode`},"mfa-totp-enrollment":{title:`Opsæt autentificeringsapp`,description:`Scan QR-koden nedenfor med din autentificeringsapp, og indtast derefter den 6-cifrede kode for at bekræfte`,secretLabel:`Eller indtast denne kode manuelt:`,codePlaceholder:`Indtast kode`,continueButtonText:`Bekræft og aktiver`,"invalid-code":`Den indtastede kode er ugyldig. Prøv venligst igen.`,"transaction-not-found":`Din tilmeldingssession er udløbet. Du skal starte forfra.`,pageTitle:"Opsæt autentificeringsapp | ${clientName}",unexpectedError:`Noget gik galt. Prøv venligst igen.`,enrollmentComplete:`MFA-tilmeldingen er fuldført. Du kan lukke denne side.`},"mfa-totp-challenge":{title:`Bekræft din identitet`,description:`Indtast den 6-cifrede kode fra din autentificeringsapp`,codePlaceholder:`Indtast kode`,continueButtonText:`Fortsæt`,"invalid-code":`Den indtastede kode er ugyldig`,"transaction-not-found":`Din session er udløbet. Du skal starte forfra.`,unexpectedError:`Noget gik galt. Prøv venligst igen.`,pageTitle:"Bekræft identitet | ${clientName}"}},"mfa-phone":{"mfa-phone-challenge":{pageTitle:"Brug dit telefonnummer til at logge ind | ${clientName}",title:`Bekræft din identitet`,description:"Vi sendte en kode til ${phoneNumber}",continueButtonText:`Fortsæt`,changePhoneText:`Vælg et andet telefonnummer.`,smsButtonText:`SMS`,voiceButtonText:`Taleopkald`,chooseMessageTypeText:`Hvordan vil du modtage koden?`,pickAuthenticatorText:`Prøv en anden metode`,logoAltText:"${companyName}",codePlaceholder:`Indtast kode`,"send-sms-failed":`Der opstod et problem med at sende SMS'en`,"send-voice-failed":`Der opstod et problem med at foretage taleopkaldet`,"invalid-phone-format":`Telefonnummeret kan kun indeholde cifre.`,"invalid-phone":`Det ser ud til, at dit telefonnummer ikke er gyldigt. Kontrollér og prøv igen.`,"too-many-sms":`Du har overskredet det maksimale antal telefonbeskeder pr. time. Vent et par minutter og prøv igen.`,"too-many-voice":`Du har overskredet det maksimale antal telefonopkald pr. time. Vent et par minutter og prøv igen.`,"transaction-not-found":`Din registreringstransaktion er udløbet, du skal starte forfra.`,"no-phone":`Indtast et telefonnummer`,noCode:`Indtast bekræftelseskoden`,invalidCode:`Den indtastede kode er ugyldig. Prøv igen.`,unexpectedError:`Noget gik galt. Prøv igen.`,resendSuccess:`Vi sendte en ny kode til din telefon`,enrollmentComplete:`MFA-tilmeldingen er fuldført. Du kan lukke denne side.`},"mfa-phone-enrollment":{pageTitle:"Indtast dit telefonnummer for at logge ind med en telefonkode | ${clientName}",title:`Sikre din konto`,description:`Indtast din landekode og telefonnummer, som vi kan sende en 6-cifret kode til:`,continueButtonText:`Fortsæt`,smsButtonText:`SMS`,voiceButtonText:`Taleopkald`,chooseMessageTypeText:`Hvordan vil du modtage koden?`,pickAuthenticatorText:`Prøv en anden metode`,placeholder:`Indtast dit telefonnummer`,logoAltText:"${companyName}",selectCountryCode:"Vælg landekode, i øjeblikket sat til ${countryName}, ${countryCode}, +${countryPrefix}","send-sms-failed":`Der opstod et problem med at sende SMS'en`,"send-voice-failed":`Der opstod et problem med at foretage taleopkaldet`,"sms-authenticator-error":`Vi kunne ikke sende SMS'en. Prøv igen senere.`,"invalid-phone-format":`Telefonnummeret kan kun indeholde cifre.`,"invalid-phone":`Det ser ud til, at dit telefonnummer ikke er gyldigt. Kontrollér og prøv igen.`,"too-many-sms":`Du har overskredet det maksimale antal telefonbeskeder pr. time. Vent et par minutter og prøv igen.`,"too-many-voice":`Du har overskredet det maksimale antal telefonopkald pr. time. Vent et par minutter og prøv igen.`,"transaction-not-found":`Din registreringstransaktion er udløbet, du skal starte forfra.`,"no-phone":`Indtast et telefonnummer`,"phone-is-too-short":`Telefonnummeret er for kort`,"phone-is-too-long":`Telefonnummeret er for langt`}},"mfa-login-options":{"mfa-login-options":{pageTitle:"Vælg bekræftelsesmetode | ${clientName}",title:`Vælg din bekræftelsesmetode`,description:`Vælg hvordan du vil bekræfte din identitet`,authenticatorAppLabel:`Godkendelsesapp`,authenticatorAppDescription:`Brug din godkendelsesapp til at få en bekræftelseskode`,smsLabel:`Sms-besked`,smsDescription:`Få en bekræftelseskode sendt til din telefon`,passkeyLabel:`Adgangsnøgle`,passkeyDescription:`Brug din enheds biometri eller sikkerhedsnøgle`}},"mfa-push":{"mfa-push":{description:`Vi sendte en notifikation til din enhed`,pageTitle:"Push-notifikation | ${clientName}",resendText:`Send notifikation igen`,title:`Godkend anmodningen`,useCodeText:`Indtast kode manuelt`}},"mfa-recovery-code":{"mfa-recovery-code":{buttonText:`Fortsæt`,codePlaceholder:`Gendannelseskode`,description:`Indtast en af dine gendannelseskoder`,"invalid-code":`Den indtastede gendannelseskode er ugyldig`,pageTitle:"Gendannelseskode | ${clientName}",title:`Indtast gendannelseskode`}},"mfa-voice":{"mfa-voice":{buttonText:`Ring til mig`,codePlaceholder:`Indtast kode`,description:"Vi ringer til ${phoneNumber} med din kode","invalid-code":`Den indtastede kode er ugyldig`,pageTitle:"Taleopkald | ${clientName}",title:`Modtag et telefonopkald`}},"mfa-webauthn":{"mfa-webauthn":{buttonText:`Prøv igen`,description:`Indsæt din sikkerhedsnøgle og følg instruktionerne`,pageTitle:"Sikkerhedsnøgle | ${clientName}",title:`Brug din sikkerhedsnøgle`}},passkeys:ls,organizations:us,"reset-password":{"reset-password":{backToLoginText:`Gå tilbage`,buttonText:`Send e-mail til nulstilling af adgangskode`,codeExpired:`Din kode til nulstilling af adgangskode er udløbet. Anmod venligst om en ny.`,confirmPasswordLabel:`Bekræft adgangskode`,confirmPasswordPlaceholder:`Bekræft adgangskode`,description:`Klik på knappen nedenfor, så sender vi instruktioner om, hvordan du nulstiller din adgangskode.`,emailPlaceholder:`E-mail-adresse`,failed:`Nulstilling af adgangskode mislykkedes. Prøv venligst igen.`,"invalid-email-format":`Ugyldig e-mail`,"no-email":`Indtast venligst en e-mailadresse`,pageTitle:"Nulstil adgangskode | ${clientName}",passwordLabel:`Ny adgangskode`,passwordPlaceholder:`Ny adgangskode`,passwordTooWeak:`Adgangskoden er for svag`,passwordsDidntMatch:`Adgangskoderne matcher ikke`,successDescription:`Vi har sendt et link til nulstilling af adgangskode til din e-mailadresse.`,successTitle:`E-mail til nulstilling af adgangskode sendt`,title:`Har du glemt din adgangskode?`,"user-not-found":`Bruger ikke fundet`},"reset-password-code":{backToLoginText:`Tilbage til login`,buttonText:`Nulstil adgangskode`,codeLabel:`Nulstillingskode`,codePlaceholder:`Indtast 6-cifret kode`,confirmPasswordLabel:`Bekræft adgangskode`,confirmPasswordPlaceholder:`Bekræft adgangskode`,defaultDescription:`Indtast koden sendt til din e-mail og vælg en ny adgangskode`,description:"Vi sendte en kode til ${email}",failed:`Nulstilling af adgangskode mislykkedes. Prøv venligst igen.`,invalidCode:`Den indtastede kode er ugyldig eller udløbet`,noCode:`Indtast venligst nulstillingskoden`,pageTitle:"Indtast nulstillingskode | ${clientName}",passwordLabel:`Ny adgangskode`,passwordPlaceholder:`Ny adgangskode`,passwordTooWeak:`Adgangskoden er for svag`,passwordsDidntMatch:`Adgangskoderne matcher ikke`,resendFailed:`Kunne ikke sende koden igen. Prøv igen.`,resendSuccess:`En ny kode er blevet sendt til din e-mail`,resendText:`Send kode igen`,sessionExpired:`Din session er udløbet. Prøv venligst igen.`,title:`Indtast nulstillingskode`}},signup:ds,"signup-id":{"signup-id":{buttonText:`Fortsæt`,description:`Vælg en adgangskode med en blanding af store og små bogstaver, tal og symboler.`,"email-already-exists":`E-mailen er allerede optaget`,emailPlaceholder:`E-mail-adresse`,federatedConnectionButtonText:"Fortsæt med ${connectionName}","invalid-email-format":`Ugyldig e-mail`,loginActionLinkText:`Log ind`,loginActionText:`Har du allerede en konto?`,"no-email":`Indtast venligst en e-mailadresse`,pageTitle:"Tilmeld dig | ${clientName}",phonePlaceholder:`Telefonnummer`,separatorText:`eller`,title:`Vælg adgangskode`,usernamePlaceholder:`Brugernavn`}},"signup-password":{"signup-password":{buttonText:`Fortsæt`,description:`Vælg en adgangskode med en blanding af store og små bogstaver, tal og symboler.`,hidePasswordText:`Skjul adgangskode`,"no-password":`Adgangskode er påkrævet`,pageTitle:"Tilmeld dig | ${clientName}","password-policy-not-met":`Adgangskoden opfylder ikke kravene`,"password-too-weak":`Adgangskoden er for svag`,passwordPlaceholder:`Adgangskode`,showPasswordText:`Vis adgangskode`,title:`Vælg adgangskode`}},"sms-otp-challenge":{"sms-otp-challenge":{buttonText:`Log ind`,codeLabel:`Bekræftelseskode`,codePlaceholder:`Indtast kode`,defaultDescription:`Indtast bekræftelseskoden, der blev sendt til din telefon`,description:"Vi sendte en kode til ${username}","invalid-code":`Ugyldig kode`,noCode:`Indtast venligst bekræftelseskoden`,pageTitle:"Indtast kode | ${clientName}",resendText:`Send koden igen`,sessionExpired:`Din session er udløbet. Prøv venligst igen.`,title:`Tjek din telefon`,unexpectedError:`Der opstod en uventet fejl`}},status:fs},ms=c({common:()=>hs,consent:()=>gs,default:()=>ws,invitation:()=>_s,login:()=>vs,mfa:()=>ys,organizations:()=>xs,passkeys:()=>bs,signup:()=>Ss,status:()=>Cs}),hs={common:{alertListTitle:`Alerts`,backText:`Back`,cancelText:`Cancel`,closeText:`Close`,contactSupportText:`Contact Support`,continueText:`Continue`,copyrightText:"© ${currentYear} ${companyName}",errorText:`An error occurred`,hidePasswordText:`Hide password`,loadingText:`Loading...`,orText:`or`,privacyPolicyText:`Privacy Policy`,showPasswordText:`Show password`,termsOfServiceText:`Terms of Service`,termsShortText:`Terms`,tryAgainText:`Try again`}},gs={consent:{buttonText:`Accept`,cancelButtonText:`Deny`,description:"${clientName} is requesting access to your account",pageTitle:"Authorize | ${clientName}",scopesTitle:"This will allow ${clientName} to:",title:"Authorize ${clientName}"}},_s={invitation:{acceptButtonText:`Accept invitation`,description:"${inviterName} has invited you to join ${organizationName} on ${clientName}",pageTitle:"Invitation | ${clientName}",title:`You've been invited`}},vs={login:{alertListTitle:`Alerts`,buttonText:`Continue`,description:"Log in to ${clientName}.",editEmailText:`Edit`,emailPlaceholder:`Email address`,enterACodeBtn:`Sign in with a code`,federatedConnectionButtonText:"Continue with ${connectionName}",footerLinkText:`Sign up`,footerText:`Don't have an account?`,forgotPasswordText:`Forgot password?`,hidePasswordText:`Hide password`,invalidEmail:`Invalid email`,invalidIdentifier:`Invalid email or username`,invitationDescription:"Log in to accept ${inviterName}'s invitation to join ${companyName} on ${clientName}.",invitationTitle:`You've Been Invited!`,logoAltText:"${companyName}","no-email":`Please enter an email address`,"no-password":`Password is required`,pageTitle:"Log in | ${clientName}",passwordLoginNotAvailable:`Password authentication is not available`,passwordPlaceholder:`Password`,phonePlaceholder:`Phone number`,separatorText:`Or`,sessionExpired:`Your session has expired. Please try again.`,showPasswordText:`Show password`,signupActionLinkText:`Sign up`,signupActionText:`Don't have an account?`,title:`Welcome`,tooManyFailedLogins:`Too many failed login attempts. Please try again later.`,unverifiedEmail:`Please verify your email address before logging in`,userAccountDoesNotExist:`User account does not exist`,usernamePlaceholder:`Username or email address`,usernameTooLong:"Username must be ${max} characters or less",usernameTooShort:"Username must be at least ${min} characters",passkeyButtonText:`Sign in with a passkey`,wrongCredentials:`Wrong username or password`}},ys={mfa:{backupCodeText:`Use backup code`,description:`Choose a verification method`,pageTitle:"Multi-Factor Authentication | ${clientName}",title:`Verify your identity`}},bs={"passkey-enrollment-nudge":{title:`Secure your account with a passkey`,description:`Passkeys use your device's biometrics or PIN to sign you in faster and more securely.`,enrollButtonText:`Set up passkey`,snoozeButtonText:`Maybe later`,optOutLinkText:`Don't show this again`,pageTitle:"Set Up Passkey | ${clientName}"},"passkey-enrollment":{title:`Create your passkey`,description:`Follow the prompts from your browser to create a passkey for this account.`,errorMessage:`Failed to create passkey. Please try again.`,cancelLinkText:`Skip for now`,retryButtonText:`Try again`,enrollmentComplete:`Your passkey has been set up successfully. You can close this page.`,pageTitle:"Create Passkey | ${clientName}"},"passkey-challenge":{title:`Sign in with a passkey`,description:`Follow the prompts from your browser to verify your identity.`,errorMessage:`Passkey authentication failed. Please try again.`,cancelLinkText:`Back to login`,retryButtonText:`Try again`,pageTitle:"Sign In with Passkey | ${clientName}"}},xs={organizations:{description:`Choose which organization to log in to`,pageTitle:"Select Organization | ${clientName}",searchPlaceholder:`Search organizations`,title:`Select your organization`}},Ss={signup:{buttonText:`Continue`,confirmPasswordPlaceholder:`Confirm password`,description:`Sign up to continue`,"email-already-exists":`This email is already registered`,emailPlaceholder:`Email address`,federatedConnectionButtonText:"Continue with ${connectionName}",hidePasswordText:`Hide password`,"invalid-email-format":`Email is not valid.`,loginActionLinkText:`Log in`,loginActionText:`Already have an account?`,"no-email":`Please enter an email address`,"no-password":`Password is required`,"no-username":`Username is required`,pageTitle:"Sign up | ${clientName}",passwordPlaceholder:`Password`,passwordsDidntMatch:`Passwords don't match`,phonePlaceholder:`Phone number`,privacyPolicyLinkText:`Privacy Policy`,separatorText:`Or`,sessionExpired:`Your session has expired. Please try again.`,showPasswordText:`Show password`,termsOfServiceLinkText:`Terms of Service`,termsText:`By signing up, you agree to our`,title:`Create your account`,"username-already-exists":`This username is already taken`,usernamePlaceholder:`Username`,verifyEmailText:`Please check your email to verify your account`}},Cs={status:{continueButtonText:`Continue`,errorTitle:`Error`,pageTitle:"Status | ${clientName}",successTitle:`Success`,title:`Status`}},ws={common:hs,consent:gs,"device-flow":{"device-flow":{buttonText:`Continue`,codePlaceholder:`Enter code`,description:`Enter the code shown on your device`,"expired-code":`The code has expired`,"invalid-code":`The code you entered is invalid`,pageTitle:"Device Activation | ${clientName}",title:`Activate your device`}},"email-otp-challenge":{"email-otp-challenge":{buttonText:`Continue`,codeLabel:`Verification Code`,codePlaceholder:`Enter code`,defaultDescription:`Enter the verification code sent to your email`,description:"We sent a code to ${email}","invalid-code":`The code you entered is invalid`,noCode:`Please enter the verification code`,pageTitle:"Enter Code | ${clientName}",resendText:`Resend code`,sessionExpired:`Your session has expired. Please try again.`,title:`Check your email`,unexpectedError:`An unexpected error occurred`}},"email-verification":{"email-verification":{description:"We sent an email to ${email}",pageTitle:"Verify Email | ${clientName}",resendText:`Resend email`,successDescription:`Your email has been verified successfully.`,successTitle:`Email verified`,title:`Verify your email`}},invitation:_s,login:vs,"login-id":{"login-id":{alertListTitle:`Alerts`,"auth0-users-validation":`Something went wrong, please try again later`,"authentication-failure":`We are sorry, something went wrong when attempting to log in`,buttonText:`Continue`,"captcha-client-failure":`We couldn't load the security challenge. Please try again. (Error code: #{errorCode})`,"captcha-validation-failure":`We are sorry, something went wrong while validating the captcha response. Please try again.`,captchaCodePlaceholder:`Enter the code shown above`,"custom-script-error-code":`Something went wrong, please try again later.`,description:"Log in to ${clientName}.",editEmailText:`Edit`,emailPlaceholder:`Email address`,federatedConnectionButtonText:"Continue with ${connectionName}",footerLinkText:`Sign up`,footerText:`Don't have an account?`,forgotPasswordText:`Forgot password?`,hidePasswordText:`Hide password`,"invalid-captcha":`Solve the challenge question to verify you are not a robot.`,"invalid-code":`The code you entered is invalid`,"invalid-connection":`Invalid connection`,"invalid-email-format":`Email is not valid.`,"invalid-email-phone":`Enter a valid email address or phone number. Phone numbers must include the country code.`,"invalid-email-phone-username":`Enter a valid email address, phone number or username. Phone numbers must include the country code.`,"invalid-email-username":`Enter a valid email address or username`,"invalid-expired-code":`Invalid or expired user code`,"invalid-login-id":`Invalid Login ID entered`,"invalid-phone-username":`Enter a valid phone number or username. Phone numbers must include the country code.`,"invalid-recaptcha":`Select the checkbox to verify you are not a robot.`,"invalid-username":"Username can only contain alphanumeric characters or: '${characters}'. Username should have between ${min} and ${max} characters.",invitationDescription:"Log in to accept ${inviterName}'s invitation to join ${companyName} on ${clientName}.",invitationTitle:`You've Been Invited!`,"ip-blocked":`We have detected suspicious login behavior and further attempts will be blocked. Please contact the administrator.`,logoAltText:"${companyName}","no-db-connection":`Invalid connection`,"no-email":`Please enter an email address`,"no-email-phone":`Email address or phone number is required`,"no-email-phone-username":`Phone number, username, or email address is required`,"no-email-username":`Email address or username is required`,"no-password":`Password is required`,"no-phone":`Please enter a phone number`,"no-phone-username":`Phone number or username is required`,"no-username":`Username is required`,pageTitle:"Log in | ${clientName}","password-breached":`We have detected a potential security issue with this account. To protect your account, we have prevented this login. Please reset your password to proceed.`,passwordPlaceholder:`Password`,phoneOrEmailPlaceholder:`Phone number or Email address`,phoneOrUsernameOrEmailPlaceholder:`Phone or Username or Email`,phoneOrUsernamePlaceholder:`Phone Number or Username`,phonePlaceholder:`Phone number`,"same-user-login":`Too many login attempts for this user. Please wait, and try again later.`,selectCountryCode:"Select country code, currently set to ${countryName}, ${countryCode}, +${countryPrefix}",separatorText:`Or`,sessionExpired:`Your session has expired. Please try again.`,showPasswordText:`Show password`,signupActionLinkText:`Sign up`,signupActionText:`Don't have an account?`,termsAndConditionsTemplate:'By continuing, you agree to our <a href="${termsAndConditionsUrl}" target="_blank" rel="noopener noreferrer">Terms and Conditions</a>.',title:`Welcome`,"user-blocked":`Your account has been blocked after multiple consecutive login attempts.`,userAccountDoesNotExist:`User account does not exist`,usernameOnlyPlaceholder:`Username`,usernameOrEmailPlaceholder:`Username or Email address`,usernamePlaceholder:`Username or email address`,usernameTooLong:"Username must be ${max} characters or less",usernameTooShort:"Username must be at least ${min} characters","wrong-credentials":`Wrong username or password`,"wrong-email-credentials":`Wrong email or password`,"wrong-email-phone-credentials":`Incorrect email address, phone number, or password. Phone numbers must include the country code.`,"wrong-email-phone-username-credentials":`Incorrect email address, phone number, username, or password. Phone numbers must include the country code.`,"wrong-email-username-credentials":`Incorrect email address, username, or password`,"wrong-phone-credentials":`Incorrect phone number or password`,"wrong-phone-username-credentials":`Incorrect phone number, username or password. Phone numbers must include the country code.`,passkeyButtonText:`Sign in with a passkey`,"wrong-username-credentials":`Incorrect username or password`}},"login-password":{"login-password":{buttonText:`Continue`,description:"Log in to ${clientName}",forgotPasswordText:`Forgot password?`,hidePasswordText:`Hide password`,"no-password":`Password is required`,pageTitle:"Log in | ${clientName}","password-breached":`We have detected a potential security issue with this account. To protect your account, we have prevented this login. Please reset your password to proceed.`,passwordPlaceholder:`Password`,showPasswordText:`Show password`,signingInAs:"Signing in as ${email}",title:`Enter your password`,unverifiedEmail:`Please verify your email address before logging in`,"user-blocked":`Your account has been blocked after multiple consecutive login attempts.`,"wrong-credentials":`Wrong password`}},"login-passwordless":{"login-passwordless":{authMethodEmail:`email`,authMethodEmailOrPhone:`email or phone number`,authMethodPhone:`phone number`,description:"Sign in using your ${authMethod}",emailOrPhonePlaceholder:`Email address or phone number`,emailPlaceholder:`Email address`,invalidEmail:`Please enter a valid email address`,invalidIdentifier:`Please enter a valid email address or phone number`,invalidPhone:`Please enter a valid phone number with country code`,noEmail:`Please enter your email address`,noPhone:`Please enter your phone number`,phonePlaceholder:`Phone number`,sessionExpired:`Your session has expired. Please try again.`,title:`Sign in with a code`,userAccountDoesNotExist:`User account does not exist`}},"magic-link-sent":{"magic-link-sent":{defaultDescription:`Click the link in your email to sign in`,description:"We sent a link to ${username}. Click it to sign in.",resendText:`Resend link`,spamText:`Didn't receive the email? Check your spam folder.`,title:`Check your email`}},mfa:ys,"mfa-email":{"mfa-email":{buttonText:`Continue`,codePlaceholder:`Enter code`,description:"We sent a code to ${email}","invalid-code":`The code you entered is invalid`,pageTitle:"Email Verification | ${clientName}",resendText:`Resend code`,title:`Check your email`}},"mfa-otp":{"mfa-otp":{buttonText:`Continue`,codePlaceholder:`Enter code`,description:`Enter the 6-digit code from your authenticator app`,"invalid-code":`The code you entered is invalid`,pageTitle:"Enter Code | ${clientName}",title:`Enter your code`},"mfa-totp-enrollment":{title:`Set up authenticator`,description:`Scan the QR code below with your authenticator app, then enter the 6-digit code to verify`,secretLabel:`Or enter this code manually:`,codePlaceholder:`Enter code`,continueButtonText:`Verify & Activate`,"invalid-code":`The code you entered is invalid. Please try again.`,"transaction-not-found":`Your enrollment transaction expired, you will need to start again.`,unexpectedError:`Something went wrong. Please try again.`,pageTitle:"Set up Authenticator | ${clientName}",enrollmentComplete:`MFA enrollment is complete. You can close this page.`},"mfa-totp-challenge":{title:`Verify your identity`,description:`Enter the 6-digit code from your authenticator app`,codePlaceholder:`Enter code`,continueButtonText:`Continue`,"invalid-code":`The code you entered is invalid`,"transaction-not-found":`Your enrollment transaction expired, you will need to start again.`,unexpectedError:`Something went wrong. Please try again.`,pageTitle:"Verify Identity | ${clientName}"}},"mfa-phone":{"mfa-phone-challenge":{pageTitle:"Use your phone number to log in | ${clientName}",title:`Verify Your Identity`,description:"We sent a code to ${phoneNumber}",continueButtonText:`Continue`,changePhoneText:`Choose another phone number.`,smsButtonText:`Text message`,voiceButtonText:`Voice call`,chooseMessageTypeText:`How do you want to receive the code?`,pickAuthenticatorText:`Try another method`,logoAltText:"${companyName}",codePlaceholder:`Enter code`,"send-sms-failed":`There was a problem sending the SMS`,"send-voice-failed":`There was a problem making the voice call`,"invalid-phone-format":`Phone number can only include digits.`,"invalid-phone":`It seems that your phone number is not valid. Please check and retry.`,"too-many-sms":`You have exceeded the maximum number of phone messages per hour. Wait a few minutes and try again.`,"too-many-voice":`You have exceeded the maximum number of phone messages per hour. Wait a few minutes and try again.`,"transaction-not-found":`Your enrollment transaction expired, you will need to start again.`,"no-phone":`Please enter a phone number`,noCode:`Please enter the verification code`,invalidCode:`The code you entered is invalid. Please try again.`,unexpectedError:`Something went wrong. Please try again.`,resendSuccess:`We sent a new code to your phone`,enrollmentComplete:`MFA enrollment is complete. You can close this page.`},"mfa-phone-enrollment":{pageTitle:"Enter your phone number to log in using a phone code | ${clientName}",title:`Secure Your Account`,description:`Enter your country code and phone number to which we can send a 6-digit code:`,continueButtonText:`Continue`,smsButtonText:`Text message`,voiceButtonText:`Voice call`,chooseMessageTypeText:`How do you want to receive the code?`,pickAuthenticatorText:`Try another method`,placeholder:`Enter your phone number`,logoAltText:"${companyName}",selectCountryCode:"Select country code, currently set to ${countryName}, ${countryCode}, +${countryPrefix}","send-sms-failed":`There was a problem sending the SMS`,"send-voice-failed":`There was a problem making the voice call`,"sms-authenticator-error":`We couldn't send the SMS. Please try again later.`,"invalid-phone-format":`Phone number can only include digits.`,"invalid-phone":`It seems that your phone number is not valid. Please check and retry.`,"too-many-sms":`You have exceeded the maximum number of phone messages per hour. Wait a few minutes and try again.`,"too-many-voice":`You have exceeded the maximum number of phone messages per hour. Wait a few minutes and try again.`,"transaction-not-found":`Your enrollment transaction expired, you will need to start again.`,"no-phone":`Please enter a phone number`,"phone-is-too-short":`Phone number is too short`,"phone-is-too-long":`Phone number is too long`}},"mfa-login-options":{"mfa-login-options":{pageTitle:"Choose Verification Method | ${clientName}",title:`Choose your verification method`,description:`Select how you'd like to verify your identity`,authenticatorAppLabel:`Authenticator App`,authenticatorAppDescription:`Use your authenticator app to get a verification code`,smsLabel:`Text Message`,smsDescription:`Get a verification code sent to your phone`,passkeyLabel:`Passkey`,passkeyDescription:`Use your device's biometrics or security key`}},"mfa-push":{"mfa-push":{description:`We sent a notification to your device`,pageTitle:"Push Notification | ${clientName}",resendText:`Resend notification`,title:`Approve the request`,useCodeText:`Enter code manually`}},"mfa-recovery-code":{"mfa-recovery-code":{buttonText:`Continue`,codePlaceholder:`Recovery code`,description:`Enter one of your recovery codes`,"invalid-code":`The recovery code you entered is invalid`,pageTitle:"Recovery Code | ${clientName}",title:`Enter recovery code`}},"mfa-voice":{"mfa-voice":{buttonText:`Call me`,codePlaceholder:`Enter code`,description:"We will call ${phoneNumber} with your code","invalid-code":`The code you entered is invalid`,pageTitle:"Voice Call | ${clientName}",title:`Receive a phone call`}},"mfa-webauthn":{"mfa-webauthn":{buttonText:`Try again`,description:`Insert your security key and follow the instructions`,pageTitle:"Security Key | ${clientName}",title:`Use your security key`}},passkeys:bs,organizations:xs,"reset-password":{"reset-password":{backToLoginText:`Back to login`,buttonText:`Continue`,codeExpired:`Your password reset code has expired. Please request a new one.`,confirmPasswordLabel:`Confirm Password`,confirmPasswordPlaceholder:`Confirm password`,description:`Enter your email to reset your password`,emailPlaceholder:`Email address`,failed:`Password reset failed. Please try again.`,"invalid-email-format":`Email is not valid.`,"no-email":`Please enter an email address`,pageTitle:"Reset Password | ${clientName}",passwordLabel:`New Password`,passwordPlaceholder:`New password`,passwordTooWeak:`Password is too weak`,passwordsDidntMatch:`Passwords don't match`,successDescription:`We have sent a password reset link to your email address.`,successTitle:`Check your email`,title:`Forgot your password?`,"user-not-found":`User not found`},"reset-password-code":{backToLoginText:`Back to login`,buttonText:`Reset Password`,codeLabel:`Reset Code`,codePlaceholder:`Enter 6-digit code`,confirmPasswordLabel:`Confirm Password`,confirmPasswordPlaceholder:`Confirm password`,defaultDescription:`Enter the code sent to your email and choose a new password`,description:"We sent a code to ${email}",failed:`Password reset failed. Please try again.`,invalidCode:`The code you entered is invalid or has expired`,noCode:`Please enter the reset code`,pageTitle:"Enter Reset Code | ${clientName}",passwordLabel:`New Password`,passwordPlaceholder:`New password`,passwordTooWeak:`Password is too weak`,passwordsDidntMatch:`Passwords don't match`,resendFailed:`Failed to resend the code. Please try again.`,resendSuccess:`A new code has been sent to your email`,resendText:`Resend code`,sessionExpired:`Your session has expired. Please try again.`,title:`Enter reset code`}},signup:Ss,"signup-id":{"signup-id":{buttonText:`Continue`,description:`Sign up to continue`,"email-already-exists":`This email is already registered`,emailPlaceholder:`Email address`,federatedConnectionButtonText:"Continue with ${connectionName}","invalid-email-format":`Email is not valid.`,loginActionLinkText:`Log in`,loginActionText:`Already have an account?`,"no-email":`Please enter an email address`,pageTitle:"Sign up | ${clientName}",phonePlaceholder:`Phone number`,separatorText:`Or`,title:`Create your account`,usernamePlaceholder:`Username`}},"signup-password":{"signup-password":{buttonText:`Continue`,description:`Sign up to continue`,hidePasswordText:`Hide password`,"no-password":`Password is required`,pageTitle:"Sign up | ${clientName}","password-policy-not-met":`Password does not meet the requirements`,"password-too-weak":`Password is too weak`,passwordPlaceholder:`Password`,showPasswordText:`Show password`,title:`Create your password`}},"sms-otp-challenge":{"sms-otp-challenge":{buttonText:`Continue`,codeLabel:`Verification Code`,codePlaceholder:`Enter code`,defaultDescription:`Enter the verification code sent to your phone`,description:"We sent a code to ${username}","invalid-code":`The code you entered is invalid`,noCode:`Please enter the verification code`,pageTitle:"Enter Code | ${clientName}",resendText:`Resend code`,sessionExpired:`Your session has expired. Please try again.`,title:`Check your phone`,unexpectedError:`An unexpected error occurred`}},status:Cs},Ts=c({common:()=>Es,consent:()=>Ds,default:()=>Fs,invitation:()=>Os,login:()=>ks,mfa:()=>As,organizations:()=>Ms,passkeys:()=>js,signup:()=>Ns,status:()=>Ps}),Es={common:{alertListTitle:`Ilmoitukset`,backText:`Palaa takaisin`,cancelText:`Palaa takaisin`,closeText:`Sulje`,contactSupportText:`Tarvitsetko apua?`,continueText:`Jatka`,copyrightText:"© ${currentYear} ${companyName}",errorText:`Jokin meni pieleen. Yritä uudelleen.`,hidePasswordText:`Piilota salasana`,loadingText:`Ladataan...`,orText:`tai`,privacyPolicyText:`Tietosuojakäytäntö`,showPasswordText:`Näytä salasana`,termsOfServiceText:`Käyttöehdot`,termsShortText:`Ehdot`,tryAgainText:`Yritä uudelleen`}},Ds={consent:{buttonText:`Hyväksy`,cancelButtonText:`Hylkää`,description:"${clientName} pyytää pääsyä tilillesi",pageTitle:"Valtuuta | ${clientName}",scopesTitle:"Tämä sallii sovelluksen ${clientName}:",title:"Valtuuta ${clientName}"}},Os={invitation:{acceptButtonText:`Hyväksy kutsu`,description:"${inviterName} on kutsunut sinut liittymään organisaatioon ${organizationName} palvelussa ${clientName}",pageTitle:"Kutsu | ${clientName}",title:`Sinut on kutsuttu`}},ks={login:{alertListTitle:`Ilmoitukset`,buttonText:`Jatka`,description:"Kirjaudu sisään ${clientName}.",editEmailText:`Muokkaa`,emailPlaceholder:`Sähköpostiosoite`,enterACodeBtn:`Kirjaudu koodilla`,federatedConnectionButtonText:"Jatka palvelulla ${connectionName}",footerLinkText:`Rekisteröidy`,footerText:`Eikö sinulla ole tiliä?`,forgotPasswordText:`Unohditko salasanan?`,hidePasswordText:`Piilota salasana`,invalidEmail:`Virheellinen sähköpostiosoite`,invalidIdentifier:`Virheellinen sähköpostiosoite tai käyttäjänimi`,invitationDescription:"Kirjaudu sisään hyväksyäksesi käyttäjän ${inviterName} kutsun liittyä palveluun ${companyName} sovelluksessa ${clientName}.",invitationTitle:`Sinut on kutsuttu!`,logoAltText:"${companyName}","no-email":`Sähköpostiosoite vaaditaan`,"no-password":`Salasana vaaditaan`,pageTitle:"Kirjaudu sisään | ${clientName}",passwordLoginNotAvailable:`Salasanakirjautuminen ei ole käytettävissä`,passwordPlaceholder:`Salasana`,phonePlaceholder:`Puhelinnumero`,separatorText:`tai`,sessionExpired:`Istuntosi on vanhentunut. Yritä uudelleen.`,showPasswordText:`Näytä salasana`,signupActionLinkText:`Rekisteröidy`,signupActionText:`Eikö sinulla ole tiliä?`,title:`Tervetuloa`,tooManyFailedLogins:`Liian monta epäonnistunutta kirjautumisyritystä. Yritä myöhemmin uudelleen.`,unverifiedEmail:`Vahvista sähköpostiosoitteesi ennen kirjautumista`,userAccountDoesNotExist:`Käyttäjätiliä ei ole olemassa`,usernamePlaceholder:`Käyttäjänimi tai sähköpostiosoite`,usernameTooLong:"Käyttäjänimen on oltava enintään ${max} merkkiä",usernameTooShort:"Käyttäjänimen on oltava vähintään ${min} merkkiä",wrongCredentials:`Väärä käyttäjänimi tai salasana`,passkeyButtonText:`Kirjaudu sisään passkey:llä`}},As={mfa:{backupCodeText:`Käytä varakoodia`,description:`Valitse vahvistusmenetelmä`,pageTitle:"Monivaiheinen tunnistautuminen | ${clientName}",title:`Vahvista henkilöllisyytesi`}},js={"passkey-enrollment-nudge":{title:`Suojaa tilisi tunnistautumisavaimella`,description:`Tunnistautumisavaimet käyttävät laitteesi biometriikkaa tai PIN-koodia kirjautuaksesi nopeammin ja turvallisemmin.`,enrollButtonText:`Määritä tunnistautumisavain`,snoozeButtonText:`Ehkä myöhemmin`,optOutLinkText:`Älä näytä tätä uudelleen`,pageTitle:"Määritä Tunnistautumisavain | ${clientName}"},"passkey-enrollment":{title:`Luo tunnistautumisavain`,description:`Seuraa selaimesi ohjeita luodaksesi tunnistautumisavaimen tälle tilille.`,errorMessage:`Tunnistautumisavaimen luominen epäonnistui. Yritä uudelleen.`,cancelLinkText:`Ohita toistaiseksi`,retryButtonText:`Yritä uudelleen`,enrollmentComplete:`Tunnistautumisavaimesi on määritetty onnistuneesti. Voit sulkea tämän sivun.`,pageTitle:"Luo Tunnistautumisavain | ${clientName}"},"passkey-challenge":{title:`Kirjaudu sisään passkey:llä`,description:`Noudata selaimesi ohjeita henkilöllisyytesi vahvistamiseksi.`,errorMessage:`Passkey-todennus epäonnistui. Yritä uudelleen.`,cancelLinkText:`Takaisin kirjautumiseen`,retryButtonText:`Yritä uudelleen`,pageTitle:"Kirjaudu sisään passkey:llä | ${clientName}"}},Ms={organizations:{description:`Valitse organisaatio, johon haluat kirjautua`,pageTitle:"Valitse organisaatio | ${clientName}",searchPlaceholder:`Hae organisaatioita`,title:`Valitse organisaatiosi`}},Ns={signup:{buttonText:`Rekisteröityminen`,confirmPasswordPlaceholder:`Vahvista salasana`,description:`Valitse salasana, jossa on isoja ja pieniä kirjaimia, numeroita ja symboleja.`,"email-already-exists":`Sähköposti on jo varattu`,emailPlaceholder:`Sähköpostiosoite`,federatedConnectionButtonText:"Jatka palvelulla ${connectionName}",hidePasswordText:`Piilota salasana`,"invalid-email-format":`Virheellinen sähköpostiosoite`,loginActionLinkText:`Kirjaudu sisään`,loginActionText:`Onko sinulla jo tili?`,"no-email":`Sähköpostiosoite vaaditaan`,"no-password":`Salasana vaaditaan`,"no-username":`Käyttäjänimi vaaditaan`,pageTitle:"Rekisteröidy | ${clientName}",passwordPlaceholder:`Salasana`,passwordsDidntMatch:`Salasanat eivät täsmää`,phonePlaceholder:`Puhelinnumero`,privacyPolicyLinkText:`Tietosuojakäytäntö`,separatorText:`tai`,sessionExpired:`Istuntosi on vanhentunut. Yritä uudelleen.`,showPasswordText:`Näytä salasana`,termsOfServiceLinkText:`Käyttöehdot`,termsText:`Rekisteröitymällä hyväksyt`,title:`Valitse salasana`,"username-already-exists":`Tämä käyttäjänimi on jo varattu`,usernamePlaceholder:`Käyttäjänimi`,verifyEmailText:`Tarkista sähköpostisi vahvistaaksesi tilisi`}},Ps={status:{continueButtonText:`Jatka`,errorTitle:`Virhe`,pageTitle:"Tila | ${clientName}",successTitle:`Onnistui`,title:`Tila`}},Fs={common:Es,consent:Ds,"device-flow":{"device-flow":{buttonText:`Jatka`,codePlaceholder:`Syötä koodi`,description:`Syötä laitteessasi näkyvä koodi`,"expired-code":`Koodi on vanhentunut`,"invalid-code":`Syöttämäsi koodi on virheellinen`,pageTitle:"Laitteen aktivointi | ${clientName}",title:`Aktivoi laitteesi`}},"email-otp-challenge":{"email-otp-challenge":{buttonText:`Kirjaudu sisään`,codeLabel:`Vahvistuskoodi`,codePlaceholder:`Syötä koodi`,defaultDescription:`Syötä sähköpostiisi lähetetty vahvistuskoodi`,description:"Lähetimme koodin osoitteeseen ${email}","invalid-code":`Virheellinen koodi`,noCode:`Syötä vahvistuskoodi`,pageTitle:"Syötä koodi | ${clientName}",resendText:`Lähetä koodi uudelleen`,sessionExpired:`Istuntosi on vanhentunut. Yritä uudelleen.`,title:`Tarkista sähköpostisi`,unexpectedError:`Odottamaton virhe tapahtui`}},"email-verification":{"email-verification":{description:"Lähetimme sähköpostin osoitteeseen ${email}",pageTitle:"Vahvista sähköposti | ${clientName}",resendText:`Lähetä koodi uudelleen`,successDescription:`Sähköpostiosoitteesi on vahvistettu onnistuneesti.`,successTitle:`Sähköposti vahvistettu`,title:`Vahvista sähköpostiosoitteesi`}},invitation:Os,login:ks,"login-id":{"login-id":{alertListTitle:`Ilmoitukset`,"auth0-users-validation":`Jokin meni pieleen, yritä myöhemmin uudelleen`,"authentication-failure":`Valitettavasti jokin meni pieleen kirjautumisyrityksen aikana`,buttonText:`Jatka`,"captcha-client-failure":`Turvatarkistuksen lataaminen epäonnistui. Yritä uudelleen. (Virhekoodi: #{errorCode})`,"captcha-validation-failure":`Valitettavasti jokin meni pieleen captcha-vastauksen tarkistuksessa. Yritä uudelleen.`,captchaCodePlaceholder:`Syötä yllä näkyvä koodi`,"custom-script-error-code":`Jokin meni pieleen, yritä myöhemmin uudelleen.`,description:"Kirjaudu sisään ${clientName}.",editEmailText:`Muokkaa`,emailPlaceholder:`Sähköpostiosoite`,federatedConnectionButtonText:"Jatka palvelulla ${connectionName}",footerLinkText:`Rekisteröidy`,footerText:`Eikö sinulla ole tiliä?`,forgotPasswordText:`Unohditko salasanan?`,hidePasswordText:`Piilota salasana`,"invalid-captcha":`Ratkaise haaste varmistaaksesi, ettet ole robotti.`,"invalid-code":`Virheellinen koodi`,"invalid-connection":`Virheellinen yhteys`,"invalid-email-format":`Virheellinen sähköpostiosoite`,"invalid-email-phone":`Syötä kelvollinen sähköpostiosoite tai puhelinnumero. Puhelinnumeron tulee sisältää maatunnus.`,"invalid-email-phone-username":`Syötä kelvollinen sähköpostiosoite, puhelinnumero tai käyttäjänimi. Puhelinnumeron tulee sisältää maatunnus.`,"invalid-email-username":`Syötä kelvollinen sähköpostiosoite tai käyttäjänimi`,"invalid-expired-code":`Virheellinen tai vanhentunut käyttäjäkoodi`,"invalid-login-id":`Virheellinen kirjautumistunnus`,"invalid-phone-username":`Syötä kelvollinen puhelinnumero tai käyttäjänimi. Puhelinnumeron tulee sisältää maatunnus.`,"invalid-recaptcha":`Valitse valintaruutu varmistaaksesi, ettet ole robotti.`,"invalid-username":"Käyttäjänimi voi sisältää vain aakkosnumeerisia merkkejä tai: '${characters}'. Käyttäjänimen tulee olla ${min}–${max} merkkiä.",invitationDescription:"Kirjaudu sisään hyväksyäksesi käyttäjän ${inviterName} kutsun liittyä palveluun ${companyName} sovelluksessa ${clientName}.",invitationTitle:`Sinut on kutsuttu!`,"ip-blocked":`Olemme havainneet epäilyttävää kirjautumiskäyttäytymistä ja lisäyritykset estetään. Ota yhteyttä ylläpitäjään.`,logoAltText:"${companyName}","no-db-connection":`Virheellinen yhteys`,"no-email":`Sähköpostiosoite vaaditaan`,"no-email-phone":`Sähköpostiosoite tai puhelinnumero vaaditaan`,"no-email-phone-username":`Puhelinnumero, käyttäjänimi tai sähköpostiosoite vaaditaan`,"no-email-username":`Sähköpostiosoite tai käyttäjänimi vaaditaan`,"no-password":`Salasana vaaditaan`,"no-phone":`Syötä puhelinnumero`,"no-phone-username":`Puhelinnumero tai käyttäjänimi vaaditaan`,"no-username":`Käyttäjänimi vaaditaan`,pageTitle:"Kirjaudu sisään | ${clientName}","password-breached":`Olemme havainneet mahdollisen tietoturvaongelman tässä tilissä. Tilisi suojaamiseksi olemme estäneet tämän kirjautumisen. Vaihda salasanasi jatkaaksesi.`,passwordPlaceholder:`Salasana`,phoneOrEmailPlaceholder:`Sähköposti tai puhelinnumero`,phoneOrUsernameOrEmailPlaceholder:`Puhelin, käyttäjänimi tai sähköposti`,phoneOrUsernamePlaceholder:`Puhelinnumero tai käyttäjänimi`,phonePlaceholder:`Puhelinnumero`,"same-user-login":`Liian monta kirjautumisyritystä tälle käyttäjälle. Odota hetki ja yritä myöhemmin uudelleen.`,selectCountryCode:"Valitse maakoodi, tällä hetkellä ${countryName}, ${countryCode}, +${countryPrefix}",separatorText:`tai`,sessionExpired:`Istuntosi on vanhentunut. Yritä uudelleen.`,showPasswordText:`Näytä salasana`,signupActionLinkText:`Rekisteröidy`,signupActionText:`Eikö sinulla ole tiliä?`,termsAndConditionsTemplate:'Jatkamalla hyväksyt <a href="${termsAndConditionsUrl}" target="_blank" rel="noopener noreferrer">Käyttöehdot</a>.',title:`Tervetuloa`,"user-blocked":`Tilisi on estetty useiden peräkkäisten kirjautumisyritysten jälkeen.`,userAccountDoesNotExist:`Käyttäjätiliä ei ole olemassa`,usernameOnlyPlaceholder:`Käyttäjänimi`,usernameOrEmailPlaceholder:`Käyttäjänimi tai sähköpostiosoite`,usernamePlaceholder:`Käyttäjänimi`,usernameTooLong:"Käyttäjänimen on oltava enintään ${max} merkkiä",usernameTooShort:"Käyttäjänimen on oltava vähintään ${min} merkkiä","wrong-credentials":`Väärä käyttäjänimi tai salasana`,"wrong-email-credentials":`Väärä sähköpostiosoite tai salasana`,"wrong-email-phone-credentials":`Virheellinen sähköpostiosoite, puhelinnumero tai salasana. Puhelinnumeron tulee sisältää maatunnus.`,"wrong-email-phone-username-credentials":`Virheellinen sähköpostiosoite, puhelinnumero, käyttäjänimi tai salasana. Puhelinnumeron tulee sisältää maatunnus.`,"wrong-email-username-credentials":`Virheellinen sähköpostiosoite, käyttäjänimi tai salasana`,"wrong-phone-credentials":`Virheellinen puhelinnumero tai salasana`,"wrong-phone-username-credentials":`Virheellinen puhelinnumero, käyttäjänimi tai salasana. Puhelinnumeron tulee sisältää maatunnus.`,"wrong-username-credentials":`Virheellinen käyttäjänimi tai salasana`,passkeyButtonText:`Kirjaudu sisään passkey:llä`}},"login-password":{"login-password":{buttonText:`Kirjaudu sisään`,description:`Anna sähköpostiosoitteesi ja salasanasi kirjautuaksesi sisään.`,forgotPasswordText:`Unohditko salasanan?`,hidePasswordText:`Piilota salasana`,"no-password":`Salasana vaaditaan`,pageTitle:"Kirjaudu sisään | ${clientName}","password-breached":`Olemme havainneet mahdollisen tietoturvaongelman tässä tilissä. Tilisi suojaamiseksi olemme estäneet tämän kirjautumisen. Vaihda salasanasi jatkaaksesi.`,passwordPlaceholder:`Salasana`,showPasswordText:`Näytä salasana`,signingInAs:"Kirjaudutaan käyttäjänä ${email}",title:`Anna salasana`,unverifiedEmail:`Vahvista sähköpostiosoitteesi ennen kirjautumista`,"user-blocked":`Tilisi on estetty useiden peräkkäisten kirjautumisyritysten jälkeen.`,"wrong-credentials":`Väärä salasana`}},"login-passwordless":{"login-passwordless":{authMethodEmail:`sähköposti`,authMethodEmailOrPhone:`sähköposti tai puhelinnumero`,authMethodPhone:`puhelinnumero`,description:"Kirjaudu sisään käyttämällä ${authMethod}",emailOrPhonePlaceholder:`Sähköpostiosoite tai puhelinnumero`,emailPlaceholder:`Sähköpostiosoite`,invalidEmail:`Syötä kelvollinen sähköpostiosoite`,invalidIdentifier:`Syötä kelvollinen sähköpostiosoite tai puhelinnumero`,invalidPhone:`Syötä kelvollinen puhelinnumero maatunnuksella`,noEmail:`Syötä sähköpostiosoitteesi`,noPhone:`Syötä puhelinnumerosi`,phonePlaceholder:`Puhelinnumero`,sessionExpired:`Istuntosi on vanhentunut. Yritä uudelleen.`,title:`Kirjaudu koodilla`,userAccountDoesNotExist:`Käyttäjätiliä ei ole olemassa`}},"magic-link-sent":{"magic-link-sent":{defaultDescription:`Napsauta sähköpostissasi olevaa linkkiä kirjautuaksesi sisään`,description:"Lähetimme linkin osoitteeseen ${username}. Napsauta sitä kirjautuaksesi.",resendText:`Lähetä linkki uudelleen`,spamText:`Etkö saanut sähköpostia? Tarkista roskapostikansiosi.`,title:`Tarkista sähköpostisi`}},mfa:As,"mfa-email":{"mfa-email":{buttonText:`Jatka`,codePlaceholder:`Syötä koodi`,description:"Lähetimme koodin osoitteeseen ${email}","invalid-code":`Syöttämäsi koodi on virheellinen`,pageTitle:"Sähköpostivahvistus | ${clientName}",resendText:`Lähetä koodi uudelleen`,title:`Tarkista sähköpostisi`}},"mfa-otp":{"mfa-otp":{buttonText:`Jatka`,codePlaceholder:`Syötä koodi`,description:`Syötä 6-numeroinen koodi todentajasovelluksestasi`,"invalid-code":`Syöttämäsi koodi on virheellinen`,pageTitle:"Syötä koodi | ${clientName}",title:`Syötä koodisi`},"mfa-totp-enrollment":{title:`Ota todentajasovellus käyttöön`,description:`Skannaa alla oleva QR-koodi todentajasovelluksellasi ja syötä sitten 6-numeroinen koodi vahvistaaksesi`,secretLabel:`Tai syötä tämä koodi manuaalisesti:`,codePlaceholder:`Syötä koodi`,continueButtonText:`Vahvista ja aktivoi`,"invalid-code":`Syöttämäsi koodi on virheellinen. Yritä uudelleen.`,"transaction-not-found":`Rekisteröintitapahtumasi on vanhentunut, sinun täytyy aloittaa alusta.`,pageTitle:"Ota todentaja käyttöön | ${clientName}",unexpectedError:`Jokin meni pieleen. Yritä uudelleen.`,enrollmentComplete:`MFA-rekisteröinti on valmis. Voit sulkea tämän sivun.`},"mfa-totp-challenge":{title:`Vahvista henkilöllisyytesi`,description:`Syötä 6-numeroinen koodi todentajasovelluksestasi`,codePlaceholder:`Syötä koodi`,continueButtonText:`Jatka`,"invalid-code":`Syöttämäsi koodi on virheellinen`,"transaction-not-found":`Rekisteröintitapahtumasi on vanhentunut, sinun täytyy aloittaa alusta.`,unexpectedError:`Jokin meni pieleen. Yritä uudelleen.`,pageTitle:"Vahvista henkilöllisyys | ${clientName}"}},"mfa-phone":{"mfa-phone-challenge":{pageTitle:"Käytä puhelinnumeroasi kirjautumiseen | ${clientName}",title:`Vahvista henkilöllisyytesi`,description:"Lähetimme koodin numeroon ${phoneNumber}",continueButtonText:`Jatka`,changePhoneText:`Valitse toinen puhelinnumero.`,smsButtonText:`Tekstiviesti`,voiceButtonText:`Äänipuhelu`,chooseMessageTypeText:`Miten haluat vastaanottaa koodin?`,pickAuthenticatorText:`Kokeile toista menetelmää`,logoAltText:"${companyName}",codePlaceholder:`Syötä koodi`,"send-sms-failed":`Tekstiviestin lähettämisessä oli ongelma`,"send-voice-failed":`Äänipuhelun soittamisessa oli ongelma`,"invalid-phone-format":`Puhelinnumero voi sisältää vain numeroita.`,"invalid-phone":`Puhelinnumerosi ei vaikuta olevan kelvollinen. Tarkista ja yritä uudelleen.`,"too-many-sms":`Olet ylittänyt tunnin enimmäismäärän puhelinviestejä. Odota muutama minuutti ja yritä uudelleen.`,"too-many-voice":`Olet ylittänyt tunnin enimmäismäärän puhelinviestejä. Odota muutama minuutti ja yritä uudelleen.`,"transaction-not-found":`Rekisteröintitapahtumasi on vanhentunut, sinun täytyy aloittaa alusta.`,"no-phone":`Syötä puhelinnumero`,noCode:`Syötä vahvistuskoodi`,invalidCode:`Antamasi koodi on virheellinen. Yritä uudelleen.`,unexpectedError:`Jokin meni pieleen. Yritä uudelleen.`,resendSuccess:`Lähetimme uuden koodin puhelimeesi`,enrollmentComplete:`MFA-rekisteröinti on valmis. Voit sulkea tämän sivun.`},"mfa-phone-enrollment":{pageTitle:"Syötä puhelinnumerosi kirjautuaksesi puhelinkoodilla | ${clientName}",title:`Suojaa tilisi`,description:`Syötä maakoodisi ja puhelinnumero, johon voimme lähettää 6-numeroisen koodin:`,continueButtonText:`Jatka`,smsButtonText:`Tekstiviesti`,voiceButtonText:`Äänipuhelu`,chooseMessageTypeText:`Miten haluat vastaanottaa koodin?`,pickAuthenticatorText:`Kokeile toista menetelmää`,placeholder:`Syötä puhelinnumerosi`,logoAltText:"${companyName}",selectCountryCode:"Valitse maakoodi, tällä hetkellä asetettu ${countryName}, ${countryCode}, +${countryPrefix}","send-sms-failed":`Tekstiviestin lähettämisessä oli ongelma`,"send-voice-failed":`Äänipuhelun soittamisessa oli ongelma`,"sms-authenticator-error":`Emme pystyneet lähettämään tekstiviestiä. Yritä myöhemmin uudelleen.`,"invalid-phone-format":`Puhelinnumero voi sisältää vain numeroita.`,"invalid-phone":`Puhelinnumerosi ei vaikuta olevan kelvollinen. Tarkista ja yritä uudelleen.`,"too-many-sms":`Olet ylittänyt tunnin enimmäismäärän puhelinviestejä. Odota muutama minuutti ja yritä uudelleen.`,"too-many-voice":`Olet ylittänyt tunnin enimmäismäärän puhelinviestejä. Odota muutama minuutti ja yritä uudelleen.`,"transaction-not-found":`Rekisteröintitapahtumasi on vanhentunut, sinun täytyy aloittaa alusta.`,"no-phone":`Syötä puhelinnumero`,"phone-is-too-short":`Puhelinnumero on liian lyhyt`,"phone-is-too-long":`Puhelinnumero on liian pitkä`}},"mfa-login-options":{"mfa-login-options":{pageTitle:"Valitse vahvistusmenetelmä | ${clientName}",title:`Valitse vahvistusmenetelmä`,description:`Valitse, miten haluat vahvistaa henkilöllisyytesi`,authenticatorAppLabel:`Todennussovellus`,authenticatorAppDescription:`Käytä todennussovellusta vahvistuskoodin saamiseksi`,smsLabel:`Tekstiviesti`,smsDescription:`Saat vahvistuskoodin puhelimeesi tekstiviestillä`,passkeyLabel:`Tunnistautumisavain`,passkeyDescription:`Käytä laitteesi biometriikkaa tai suojausavainta`}},"mfa-push":{"mfa-push":{description:`Lähetimme ilmoituksen laitteellesi`,pageTitle:"Push-ilmoitus | ${clientName}",resendText:`Lähetä ilmoitus uudelleen`,title:`Hyväksy pyyntö`,useCodeText:`Syötä koodi manuaalisesti`}},"mfa-recovery-code":{"mfa-recovery-code":{buttonText:`Jatka`,codePlaceholder:`Palautuskoodi`,description:`Syötä yksi palautuskoodeistasi`,"invalid-code":`Syöttämäsi palautuskoodi on virheellinen`,pageTitle:"Palautuskoodi | ${clientName}",title:`Syötä palautuskoodi`}},"mfa-voice":{"mfa-voice":{buttonText:`Soita minulle`,codePlaceholder:`Syötä koodi`,description:"Soitamme numeroon ${phoneNumber} ja kerromme koodisi","invalid-code":`Syöttämäsi koodi on virheellinen`,pageTitle:"Äänipuhelu | ${clientName}",title:`Vastaanota puhelu`}},"mfa-webauthn":{"mfa-webauthn":{buttonText:`Yritä uudelleen`,description:`Aseta turva-avaimesi ja seuraa ohjeita`,pageTitle:"Turva-avain | ${clientName}",title:`Käytä turva-avaintasi`}},passkeys:js,organizations:Ms,"reset-password":{"reset-password":{backToLoginText:`Palaa takaisin`,buttonText:`Lähetä salasanan palautussähköposti`,codeExpired:`Salasanan palautuskoodisi on vanhentunut. Pyydä uusi koodi.`,confirmPasswordLabel:`Vahvista salasana`,confirmPasswordPlaceholder:`Vahvista salasana`,description:`Napsauta alla olevaa painiketta, niin lähetämme ohjeet salasanasi palauttamiseen.`,emailPlaceholder:`Sähköpostiosoite`,failed:`Salasanan vaihto epäonnistui. Yritä uudelleen.`,"invalid-email-format":`Virheellinen sähköpostiosoite`,"no-email":`Sähköpostiosoite vaaditaan`,pageTitle:"Vaihda salasana | ${clientName}",passwordLabel:`Uusi salasana`,passwordPlaceholder:`Uusi salasana`,passwordTooWeak:`Salasana on liian heikko`,passwordsDidntMatch:`Salasanat eivät täsmää`,successDescription:`Olemme lähettäneet salasanan palautuslinkin sähköpostiosoitteeseesi.`,successTitle:`Salasanan palautussähköposti lähetetty`,title:`Unohditko salasanan?`,"user-not-found":`Käyttäjää ei löytynyt`},"reset-password-code":{backToLoginText:`Takaisin kirjautumiseen`,buttonText:`Vaihda salasana`,codeLabel:`Palautuskoodi`,codePlaceholder:`Syötä 6-numeroinen koodi`,confirmPasswordLabel:`Vahvista salasana`,confirmPasswordPlaceholder:`Vahvista salasana`,defaultDescription:`Syötä sähköpostiisi lähetetty koodi ja valitse uusi salasana`,description:"Lähetimme koodin osoitteeseen ${email}",failed:`Salasanan vaihto epäonnistui. Yritä uudelleen.`,invalidCode:`Syöttämäsi koodi on virheellinen tai vanhentunut`,noCode:`Syötä palautuskoodi`,pageTitle:"Syötä palautuskoodi | ${clientName}",passwordLabel:`Uusi salasana`,passwordPlaceholder:`Uusi salasana`,passwordTooWeak:`Salasana on liian heikko`,passwordsDidntMatch:`Salasanat eivät täsmää`,resendFailed:`Koodin uudelleenlähetys epäonnistui. Yritä uudelleen.`,resendSuccess:`Uusi koodi on lähetetty sähköpostiisi`,resendText:`Lähetä koodi uudelleen`,sessionExpired:`Istuntosi on vanhentunut. Yritä uudelleen.`,title:`Syötä palautuskoodi`}},signup:Ns,"signup-id":{"signup-id":{buttonText:`Jatka`,description:`Valitse salasana, jossa on isoja ja pieniä kirjaimia, numeroita ja symboleja.`,"email-already-exists":`Sähköposti on jo varattu`,emailPlaceholder:`Sähköpostiosoite`,federatedConnectionButtonText:"Jatka palvelulla ${connectionName}","invalid-email-format":`Virheellinen sähköpostiosoite`,loginActionLinkText:`Kirjaudu sisään`,loginActionText:`Onko sinulla jo tili?`,"no-email":`Sähköpostiosoite vaaditaan`,pageTitle:"Rekisteröidy | ${clientName}",phonePlaceholder:`Puhelinnumero`,separatorText:`tai`,title:`Valitse salasana`,usernamePlaceholder:`Käyttäjänimi`}},"signup-password":{"signup-password":{buttonText:`Jatka`,description:`Valitse salasana, jossa on isoja ja pieniä kirjaimia, numeroita ja symboleja.`,hidePasswordText:`Piilota salasana`,"no-password":`Salasana vaaditaan`,pageTitle:"Rekisteröidy | ${clientName}","password-policy-not-met":`Salasana ei täytä vaatimuksia`,"password-too-weak":`Salasana on liian heikko`,passwordPlaceholder:`Salasana`,showPasswordText:`Näytä salasana`,title:`Valitse salasana`}},"sms-otp-challenge":{"sms-otp-challenge":{buttonText:`Jatka`,codeLabel:`Vahvistuskoodi`,codePlaceholder:`Syötä koodi`,defaultDescription:`Syötä puhelimeesi lähetetty vahvistuskoodi`,description:"Lähetimme koodin käyttäjälle ${username}","invalid-code":`Virheellinen koodi`,noCode:`Syötä vahvistuskoodi`,pageTitle:"Syötä koodi | ${clientName}",resendText:`Lähetä koodi uudelleen`,sessionExpired:`Istuntosi on vanhentunut. Yritä uudelleen.`,title:`Tarkista puhelimesi`,unexpectedError:`Odottamaton virhe tapahtui`}},status:Ps},Is=c({common:()=>Ls,consent:()=>Rs,default:()=>Ks,invitation:()=>zs,login:()=>Bs,mfa:()=>Vs,organizations:()=>Us,passkeys:()=>Hs,signup:()=>Ws,status:()=>Gs}),Ls={common:{alertListTitle:`Avvisi`,backText:`Torna indietro`,cancelText:`Annulla`,closeText:`Chiudi`,contactSupportText:`Contatta l'assistenza`,continueText:`Continua`,copyrightText:"© ${currentYear} ${companyName}",errorText:`Si è verificato un errore`,hidePasswordText:`Nascondi password`,loadingText:`Caricamento...`,orText:`o`,privacyPolicyText:`Informativa sulla privacy`,showPasswordText:`Mostra password`,termsOfServiceText:`Termini di servizio`,termsShortText:`Termini`,tryAgainText:`Riprova`}},Rs={consent:{buttonText:`Accetta`,cancelButtonText:`Rifiuta`,description:"${clientName} richiede l'accesso al tuo account",pageTitle:"Autorizza | ${clientName}",scopesTitle:"Questo permetterà a ${clientName} di:",title:"Autorizza ${clientName}"}},zs={invitation:{acceptButtonText:`Accetta invito`,description:"${inviterName} ti ha invitato a unirti a ${organizationName} su ${clientName}",pageTitle:"Invito | ${clientName}",title:`Sei stato invitato`}},Bs={login:{alertListTitle:`Avvisi`,buttonText:`Continua`,description:"Accedi a ${clientName}.",editEmailText:`Modifica`,emailPlaceholder:`Indirizzo e-mail`,enterACodeBtn:`Accedi con un codice`,federatedConnectionButtonText:"Continua con ${connectionName}",footerLinkText:`Iscriviti`,footerText:`Non hai un account?`,forgotPasswordText:`Hai dimenticato la password?`,hidePasswordText:`Nascondi password`,invalidEmail:`Email non valida`,invalidIdentifier:`Email o nome utente non valido`,invitationDescription:"Accedi per accettare l'invito di ${inviterName} a unirti a ${companyName} su ${clientName}.",invitationTitle:`Sei stato invitato!`,logoAltText:"${companyName}","no-email":`Inserisci un indirizzo email`,"no-password":`La password è obbligatoria`,pageTitle:"Accedi | ${clientName}",passwordLoginNotAvailable:`L'autenticazione con password non è disponibile`,passwordPlaceholder:`Password`,phonePlaceholder:`Numero di telefono`,separatorText:`o`,sessionExpired:`La sessione è scaduta. Riprova.`,showPasswordText:`Mostra password`,signupActionLinkText:`Iscriviti`,signupActionText:`Non hai un account?`,title:`Benvenuto`,tooManyFailedLogins:`Troppi tentativi di accesso falliti. Riprova più tardi.`,unverifiedEmail:`Verifica il tuo indirizzo email prima di accedere`,userAccountDoesNotExist:`L'account utente non esiste`,usernamePlaceholder:`Nome utente o indirizzo email`,usernameTooLong:"Il nome utente deve avere al massimo ${max} caratteri",usernameTooShort:"Il nome utente deve avere almeno ${min} caratteri",wrongCredentials:`Nome utente o password errati`,passkeyButtonText:`Accedi con una passkey`}},Vs={mfa:{backupCodeText:`Usa codice di backup`,description:`Scegli un metodo di verifica`,pageTitle:"Autenticazione a più fattori | ${clientName}",title:`Verifica la tua identità`}},Hs={"passkey-enrollment-nudge":{title:`Proteggi il tuo account con una passkey`,description:`Le passkey utilizzano la biometria o il PIN del tuo dispositivo per accedere più velocemente e in modo più sicuro.`,enrollButtonText:`Configura passkey`,snoozeButtonText:`Forse più tardi`,optOutLinkText:`Non mostrare più`,pageTitle:"Configura Passkey | ${clientName}"},"passkey-enrollment":{title:`Crea la tua passkey`,description:`Segui le istruzioni del browser per creare una passkey per questo account.`,errorMessage:`Creazione della passkey non riuscita. Riprova.`,cancelLinkText:`Salta per ora`,retryButtonText:`Riprova`,enrollmentComplete:`La tua passkey è stata configurata con successo. Puoi chiudere questa pagina.`,pageTitle:"Crea Passkey | ${clientName}"},"passkey-challenge":{title:`Accedi con passkey`,description:`Segui le istruzioni del browser per verificare la tua identità.`,errorMessage:`Autenticazione con passkey non riuscita. Riprova.`,cancelLinkText:`Torna al login`,retryButtonText:`Riprova`,pageTitle:"Accedi con passkey | ${clientName}"}},Us={organizations:{description:`Scegli a quale organizzazione accedere`,pageTitle:"Seleziona organizzazione | ${clientName}",searchPlaceholder:`Cerca organizzazioni`,title:`Seleziona la tua organizzazione`}},Ws={signup:{buttonText:`Iscriviti`,confirmPasswordPlaceholder:`Conferma password`,description:`Registrati per continuare`,"email-already-exists":`Questa email è già registrata`,emailPlaceholder:`Indirizzo e-mail`,federatedConnectionButtonText:"Continua con ${connectionName}",hidePasswordText:`Nascondi password`,"invalid-email-format":`Email non valida`,loginActionLinkText:`Accedi`,loginActionText:`Hai già un account?`,"no-email":`Inserisci un indirizzo email`,"no-password":`La password è obbligatoria`,"no-username":`Il nome utente è obbligatorio`,pageTitle:"Registrati | ${clientName}",passwordPlaceholder:`Password`,passwordsDidntMatch:`Le password non corrispondono`,phonePlaceholder:`Numero di telefono`,privacyPolicyLinkText:`Informativa sulla privacy`,separatorText:`o`,sessionExpired:`La sessione è scaduta. Riprova.`,showPasswordText:`Mostra password`,termsOfServiceLinkText:`Termini di servizio`,termsText:`Registrandoti, accetti i nostri`,title:`Crea il tuo account`,"username-already-exists":`Questo nome utente è già in uso`,usernamePlaceholder:`Nome utente`,verifyEmailText:`Controlla la tua email per verificare il tuo account`}},Gs={status:{continueButtonText:`Continua`,errorTitle:`Errore`,pageTitle:"Stato | ${clientName}",successTitle:`Operazione riuscita`,title:`Stato`}},Ks={common:Ls,consent:Rs,"device-flow":{"device-flow":{buttonText:`Continua`,codePlaceholder:`Inserisci il codice`,description:`Inserisci il codice mostrato sul tuo dispositivo`,"expired-code":`Il codice è scaduto`,"invalid-code":`Il codice inserito non è valido`,pageTitle:"Attivazione dispositivo | ${clientName}",title:`Attiva il tuo dispositivo`}},"email-otp-challenge":{"email-otp-challenge":{buttonText:`Continua`,codeLabel:`Codice di verifica`,codePlaceholder:`Inserisci il codice`,defaultDescription:`Inserisci il codice di verifica inviato alla tua email`,description:"Abbiamo inviato un codice a ${email}","invalid-code":`Codice non valido`,noCode:`Inserisci il codice di verifica`,pageTitle:"Inserisci il codice | ${clientName}",resendText:`Reinvio del codice`,sessionExpired:`La sessione è scaduta. Riprova.`,title:`Controlla la tua email`,unexpectedError:`Si è verificato un errore imprevisto`}},"email-verification":{"email-verification":{description:"Abbiamo inviato un'email a ${email}",pageTitle:"Verifica email | ${clientName}",resendText:`Reinvia email`,successDescription:`La tua email è stata verificata con successo.`,successTitle:`Email verificata`,title:`Verificare l'e-mail`}},invitation:zs,login:Bs,"login-id":{"login-id":{alertListTitle:`Avvisi`,"auth0-users-validation":`Qualcosa è andato storto, riprova più tardi`,"authentication-failure":`Siamo spiacenti, si è verificato un errore durante il tentativo di accesso`,buttonText:`Continua`,"captcha-client-failure":`Non è stato possibile caricare la verifica di sicurezza. Riprova. (Codice errore: #{errorCode})`,"captcha-validation-failure":`Siamo spiacenti, si è verificato un errore durante la convalida della risposta captcha. Riprova.`,captchaCodePlaceholder:`Inserisci il codice mostrato sopra`,"custom-script-error-code":`Qualcosa è andato storto, riprova più tardi.`,description:"Accedi a ${clientName}.",editEmailText:`Modifica`,emailPlaceholder:`Indirizzo e-mail`,federatedConnectionButtonText:"Continua con ${connectionName}",footerLinkText:`Iscriviti`,footerText:`Non hai un account?`,forgotPasswordText:`Hai dimenticato la password?`,hidePasswordText:`Nascondi password`,"invalid-captcha":`Risolvi la domanda di verifica per confermare che non sei un robot.`,"invalid-code":`Codice non valido`,"invalid-connection":`Connessione non valida`,"invalid-email-format":`Email non valida`,"invalid-email-phone":`Inserisci un indirizzo email o un numero di telefono valido. I numeri di telefono devono includere il prefisso internazionale.`,"invalid-email-phone-username":`Inserisci un indirizzo email, un numero di telefono o un nome utente valido. I numeri di telefono devono includere il prefisso internazionale.`,"invalid-email-username":`Inserisci un indirizzo email o un nome utente valido`,"invalid-expired-code":`Codice utente non valido o scaduto`,"invalid-login-id":`ID di accesso non valido`,"invalid-phone-username":`Inserisci un numero di telefono o un nome utente valido. I numeri di telefono devono includere il prefisso internazionale.`,"invalid-recaptcha":`Seleziona la casella per confermare che non sei un robot.`,"invalid-username":"Il nome utente può contenere solo caratteri alfanumerici o: '${characters}'. Il nome utente deve avere tra ${min} e ${max} caratteri.",invitationDescription:"Accedi per accettare l'invito di ${inviterName} a unirti a ${companyName} su ${clientName}.",invitationTitle:`Sei stato invitato!`,"ip-blocked":`Abbiamo rilevato un comportamento di accesso sospetto e ulteriori tentativi saranno bloccati. Contatta l'amministratore.`,logoAltText:"${companyName}","no-db-connection":`Connessione non valida`,"no-email":`Inserisci un indirizzo email`,"no-email-phone":`È richiesto un indirizzo email o un numero di telefono`,"no-email-phone-username":`È richiesto un numero di telefono, un nome utente o un indirizzo email`,"no-email-username":`È richiesto un indirizzo email o un nome utente`,"no-password":`La password è obbligatoria`,"no-phone":`Inserisci un numero di telefono`,"no-phone-username":`È richiesto un numero di telefono o un nome utente`,"no-username":`Il nome utente è obbligatorio`,pageTitle:"Accedi | ${clientName}","password-breached":`Abbiamo rilevato un potenziale problema di sicurezza con questo account. Per proteggere il tuo account, abbiamo impedito questo accesso. Reimposta la password per procedere.`,passwordPlaceholder:`Password`,phoneOrEmailPlaceholder:`Indirizzo e-mail o numero di telefono`,phoneOrUsernameOrEmailPlaceholder:`Telefono, nome utente o email`,phoneOrUsernamePlaceholder:`Numero di telefono o nome utente`,phonePlaceholder:`Numero di telefono`,"same-user-login":`Troppi tentativi di accesso per questo utente. Attendi e riprova più tardi.`,selectCountryCode:"Seleziona prefisso paese, attualmente impostato su ${countryName}, ${countryCode}, +${countryPrefix}",separatorText:`o`,sessionExpired:`La sessione è scaduta. Riprova.`,showPasswordText:`Mostra password`,signupActionLinkText:`Iscriviti`,signupActionText:`Non hai un account?`,termsAndConditionsTemplate:'Continuando, accetti i nostri <a href="${termsAndConditionsUrl}" target="_blank" rel="noopener noreferrer">Termini e condizioni</a>.',title:`Benvenuto`,"user-blocked":`Il tuo account è stato bloccato dopo diversi tentativi di accesso consecutivi.`,userAccountDoesNotExist:`L'account utente non esiste`,usernameOnlyPlaceholder:`Nome utente`,usernameOrEmailPlaceholder:`Nome utente o indirizzo email`,usernamePlaceholder:`Nome utente`,usernameTooLong:"Il nome utente deve avere al massimo ${max} caratteri",usernameTooShort:"Il nome utente deve avere almeno ${min} caratteri","wrong-credentials":`Nome utente o password errati`,"wrong-email-credentials":`Email o password errati`,"wrong-email-phone-credentials":`Indirizzo email, numero di telefono o password errati. I numeri di telefono devono includere il prefisso internazionale.`,"wrong-email-phone-username-credentials":`Indirizzo email, numero di telefono, nome utente o password errati. I numeri di telefono devono includere il prefisso internazionale.`,"wrong-email-username-credentials":`Indirizzo email, nome utente o password errati`,"wrong-phone-credentials":`Numero di telefono o password errati`,"wrong-phone-username-credentials":`Numero di telefono, nome utente o password errati. I numeri di telefono devono includere il prefisso internazionale.`,"wrong-username-credentials":`Nome utente o password errati`,passkeyButtonText:`Accedi con una passkey`}},"login-password":{"login-password":{buttonText:`Accedi`,description:"Accedi a ${clientName}",forgotPasswordText:`Hai dimenticato la password?`,hidePasswordText:`Nascondi password`,"no-password":`La password è obbligatoria`,pageTitle:"Accedi | ${clientName}","password-breached":`Abbiamo rilevato un potenziale problema di sicurezza con questo account. Per proteggere il tuo account, abbiamo impedito questo accesso. Reimposta la password per procedere.`,passwordPlaceholder:`Password`,showPasswordText:`Mostra password`,signingInAs:"Accesso come ${email}",title:`Inserire la password`,unverifiedEmail:`Verifica il tuo indirizzo email prima di accedere`,"user-blocked":`Il tuo account è stato bloccato dopo diversi tentativi di accesso consecutivi.`,"wrong-credentials":`Password errata`}},"login-passwordless":{"login-passwordless":{authMethodEmail:`email`,authMethodEmailOrPhone:`email o numero di telefono`,authMethodPhone:`numero di telefono`,description:"Accedi usando il tuo ${authMethod}",emailOrPhonePlaceholder:`Indirizzo email o numero di telefono`,emailPlaceholder:`Indirizzo e-mail`,invalidEmail:`Inserisci un indirizzo email valido`,invalidIdentifier:`Inserisci un indirizzo email o un numero di telefono valido`,invalidPhone:`Inserisci un numero di telefono valido con il prefisso internazionale`,noEmail:`Inserisci il tuo indirizzo email`,noPhone:`Inserisci il tuo numero di telefono`,phonePlaceholder:`Numero di telefono`,sessionExpired:`La sessione è scaduta. Riprova.`,title:`Accedi con un codice`,userAccountDoesNotExist:`L'account utente non esiste`}},"magic-link-sent":{"magic-link-sent":{defaultDescription:`Clicca il link nella tua email per accedere`,description:"Abbiamo inviato un link a ${username}. Cliccalo per accedere.",resendText:`Reinvia link`,spamText:`Non hai ricevuto l'email? Controlla la cartella spam.`,title:`Controlla la tua email`}},mfa:Vs,"mfa-email":{"mfa-email":{buttonText:`Continua`,codePlaceholder:`Inserisci il codice`,description:"Abbiamo inviato un codice a ${email}","invalid-code":`Il codice inserito non è valido`,pageTitle:"Verifica email | ${clientName}",resendText:`Reinvia codice`,title:`Controlla la tua email`}},"mfa-otp":{"mfa-otp":{buttonText:`Continua`,codePlaceholder:`Inserisci il codice`,description:`Inserisci il codice a 6 cifre dalla tua app di autenticazione`,"invalid-code":`Il codice inserito non è valido`,pageTitle:"Inserisci il codice | ${clientName}",title:`Inserisci il tuo codice`},"mfa-totp-enrollment":{title:`Configura l'autenticatore`,description:`Scansiona il codice QR qui sotto con la tua app di autenticazione, poi inserisci il codice a 6 cifre per verificare`,secretLabel:`Oppure inserisci questo codice manualmente:`,codePlaceholder:`Inserisci il codice`,continueButtonText:`Verifica e attiva`,"invalid-code":`Il codice inserito non è valido. Riprova.`,"transaction-not-found":`La tua transazione di registrazione è scaduta, dovrai ricominciare.`,pageTitle:"Configura autenticatore | ${clientName}",unexpectedError:`Qualcosa è andato storto. Riprova.`,enrollmentComplete:`La registrazione MFA è completata. Puoi chiudere questa pagina.`},"mfa-totp-challenge":{title:`Verifica la tua identità`,description:`Inserisci il codice a 6 cifre dalla tua app di autenticazione`,codePlaceholder:`Inserisci il codice`,continueButtonText:`Continua`,"invalid-code":`Il codice inserito non è valido`,"transaction-not-found":`La tua transazione di registrazione è scaduta, dovrai ricominciare.`,unexpectedError:`Qualcosa è andato storto. Riprova.`,pageTitle:"Verifica identità | ${clientName}"}},"mfa-phone":{"mfa-phone-challenge":{pageTitle:"Usa il tuo numero di telefono per accedere | ${clientName}",title:`Verifica la tua identità`,description:"Abbiamo inviato un codice a ${phoneNumber}",continueButtonText:`Continua`,changePhoneText:`Scegli un altro numero di telefono.`,smsButtonText:`Messaggio di testo`,voiceButtonText:`Chiamata vocale`,chooseMessageTypeText:`Come vuoi ricevere il codice?`,pickAuthenticatorText:`Prova un altro metodo`,logoAltText:"${companyName}",codePlaceholder:`Inserisci il codice`,"send-sms-failed":`Si è verificato un problema nell'invio dell'SMS`,"send-voice-failed":`Si è verificato un problema nell'effettuare la chiamata vocale`,"invalid-phone-format":`Il numero di telefono può contenere solo cifre.`,"invalid-phone":`Sembra che il tuo numero di telefono non sia valido. Controlla e riprova.`,"too-many-sms":`Hai superato il numero massimo di messaggi telefonici all'ora. Attendi qualche minuto e riprova.`,"too-many-voice":`Hai superato il numero massimo di messaggi telefonici all'ora. Attendi qualche minuto e riprova.`,"transaction-not-found":`La tua transazione di registrazione è scaduta, dovrai ricominciare.`,"no-phone":`Inserisci un numero di telefono`,noCode:`Inserisci il codice di verifica`,invalidCode:`Il codice inserito non è valido. Riprova.`,unexpectedError:`Qualcosa è andato storto. Riprova.`,resendSuccess:`Abbiamo inviato un nuovo codice al tuo telefono`,enrollmentComplete:`La registrazione MFA è completata. Puoi chiudere questa pagina.`},"mfa-phone-enrollment":{pageTitle:"Inserisci il tuo numero di telefono per accedere con un codice telefonico | ${clientName}",title:`Proteggi il tuo account`,description:`Inserisci il prefisso del paese e il numero di telefono a cui possiamo inviare un codice a 6 cifre:`,continueButtonText:`Continua`,smsButtonText:`Messaggio di testo`,voiceButtonText:`Chiamata vocale`,chooseMessageTypeText:`Come vuoi ricevere il codice?`,pickAuthenticatorText:`Prova un altro metodo`,placeholder:`Inserisci il tuo numero di telefono`,logoAltText:"${companyName}",selectCountryCode:"Seleziona prefisso paese, attualmente impostato su ${countryName}, ${countryCode}, +${countryPrefix}","send-sms-failed":`Si è verificato un problema nell'invio dell'SMS`,"send-voice-failed":`Si è verificato un problema nell'effettuare la chiamata vocale`,"sms-authenticator-error":`Non siamo riusciti a inviare l'SMS. Riprova più tardi.`,"invalid-phone-format":`Il numero di telefono può contenere solo cifre.`,"invalid-phone":`Sembra che il tuo numero di telefono non sia valido. Controlla e riprova.`,"too-many-sms":`Hai superato il numero massimo di messaggi telefonici all'ora. Attendi qualche minuto e riprova.`,"too-many-voice":`Hai superato il numero massimo di messaggi telefonici all'ora. Attendi qualche minuto e riprova.`,"transaction-not-found":`La tua transazione di registrazione è scaduta, dovrai ricominciare.`,"no-phone":`Inserisci un numero di telefono`,"phone-is-too-short":`Il numero di telefono è troppo corto`,"phone-is-too-long":`Il numero di telefono è troppo lungo`}},"mfa-login-options":{"mfa-login-options":{pageTitle:"Scegli il metodo di verifica | ${clientName}",title:`Scegli il metodo di verifica`,description:`Seleziona come vuoi verificare la tua identità`,authenticatorAppLabel:`App di autenticazione`,authenticatorAppDescription:`Usa la tua app di autenticazione per ottenere un codice di verifica`,smsLabel:`Messaggio di testo`,smsDescription:`Ricevi un codice di verifica inviato al tuo telefono`,passkeyLabel:`Passkey`,passkeyDescription:`Usa la biometria del tuo dispositivo o una chiave di sicurezza`}},"mfa-push":{"mfa-push":{description:`Abbiamo inviato una notifica al tuo dispositivo`,pageTitle:"Notifica push | ${clientName}",resendText:`Reinvia notifica`,title:`Approva la richiesta`,useCodeText:`Inserisci il codice manualmente`}},"mfa-recovery-code":{"mfa-recovery-code":{buttonText:`Continua`,codePlaceholder:`Codice di recupero`,description:`Inserisci uno dei tuoi codici di recupero`,"invalid-code":`Il codice di recupero inserito non è valido`,pageTitle:"Codice di recupero | ${clientName}",title:`Inserisci il codice di recupero`}},"mfa-voice":{"mfa-voice":{buttonText:`Chiamami`,codePlaceholder:`Inserisci il codice`,description:"Chiameremo ${phoneNumber} con il tuo codice","invalid-code":`Il codice inserito non è valido`,pageTitle:"Chiamata vocale | ${clientName}",title:`Ricevi una telefonata`}},"mfa-webauthn":{"mfa-webauthn":{buttonText:`Riprova`,description:`Inserisci la tua chiave di sicurezza e segui le istruzioni`,pageTitle:"Chiave di sicurezza | ${clientName}",title:`Usa la tua chiave di sicurezza`}},passkeys:Hs,organizations:Us,"reset-password":{"reset-password":{backToLoginText:`Torna al login`,buttonText:`Continua`,codeExpired:`Il codice di reimpostazione della password è scaduto. Richiedine uno nuovo.`,confirmPasswordLabel:`Conferma password`,confirmPasswordPlaceholder:`Conferma password`,description:`Inserisci la tua email per reimpostare la password`,emailPlaceholder:`Indirizzo e-mail`,failed:`Reimpostazione della password non riuscita. Riprova.`,"invalid-email-format":`Email non valida`,"no-email":`Inserisci un indirizzo email`,pageTitle:"Reimposta password | ${clientName}",passwordLabel:`Nuova password`,passwordPlaceholder:`Nuova password`,passwordTooWeak:`La password è troppo debole`,passwordsDidntMatch:`Le password non corrispondono`,successDescription:`Abbiamo inviato un link per reimpostare la password al tuo indirizzo email.`,successTitle:`Controlla la tua email`,title:`Hai dimenticato la password?`,"user-not-found":`Utente non trovato`},"reset-password-code":{backToLoginText:`Torna al login`,buttonText:`Reimposta password`,codeLabel:`Codice di reimpostazione`,codePlaceholder:`Inserisci il codice a 6 cifre`,confirmPasswordLabel:`Conferma password`,confirmPasswordPlaceholder:`Conferma password`,defaultDescription:`Inserisci il codice inviato alla tua email e scegli una nuova password`,description:"Abbiamo inviato un codice a ${email}",failed:`Reimpostazione della password non riuscita. Riprova.`,invalidCode:`Il codice inserito non è valido o è scaduto`,noCode:`Inserisci il codice di reimpostazione`,pageTitle:"Inserisci il codice di reimpostazione | ${clientName}",passwordLabel:`Nuova password`,passwordPlaceholder:`Nuova password`,passwordTooWeak:`La password è troppo debole`,passwordsDidntMatch:`Le password non corrispondono`,resendFailed:`Impossibile reinviare il codice. Riprova.`,resendSuccess:`Un nuovo codice è stato inviato alla tua email`,resendText:`Reinvia codice`,sessionExpired:`La sessione è scaduta. Riprova.`,title:`Inserisci il codice di reimpostazione`}},signup:Ws,"signup-id":{"signup-id":{buttonText:`Continua`,description:`Registrati per continuare`,"email-already-exists":`Questa email è già registrata`,emailPlaceholder:`Indirizzo e-mail`,federatedConnectionButtonText:"Continua con ${connectionName}","invalid-email-format":`Email non valida`,loginActionLinkText:`Accedi`,loginActionText:`Hai già un account?`,"no-email":`Inserisci un indirizzo email`,pageTitle:"Registrati | ${clientName}",phonePlaceholder:`Numero di telefono`,separatorText:`o`,title:`Crea il tuo account`,usernamePlaceholder:`Nome utente`}},"signup-password":{"signup-password":{buttonText:`Continua`,description:`Registrati per continuare`,hidePasswordText:`Nascondi password`,"no-password":`La password è obbligatoria`,pageTitle:"Registrati | ${clientName}","password-policy-not-met":`La password non soddisfa i requisiti`,"password-too-weak":`La password è troppo debole`,passwordPlaceholder:`Password`,showPasswordText:`Mostra password`,title:`Crea la tua password`}},"sms-otp-challenge":{"sms-otp-challenge":{buttonText:`Continua`,codeLabel:`Codice di verifica`,codePlaceholder:`Inserisci il codice`,defaultDescription:`Inserisci il codice di verifica inviato al tuo telefono`,description:"Abbiamo inviato un codice a ${username}","invalid-code":`Codice non valido`,noCode:`Inserisci il codice di verifica`,pageTitle:"Inserisci il codice | ${clientName}",resendText:`Reinvia codice`,sessionExpired:`La sessione è scaduta. Riprova.`,title:`Controlla il tuo telefono`,unexpectedError:`Si è verificato un errore imprevisto`}},status:Gs},qs=c({common:()=>Js,consent:()=>Ys,default:()=>rc,invitation:()=>Xs,login:()=>Zs,mfa:()=>Qs,organizations:()=>ec,passkeys:()=>$s,signup:()=>tc,status:()=>nc}),Js={common:{alertListTitle:`Varsler`,backText:`Gå tilbake`,cancelText:`Avbryt`,closeText:`Lukk`,contactSupportText:`Kontakt kundestøtte`,continueText:`Fortsett`,copyrightText:"© ${currentYear} ${companyName}",errorText:`Det oppstod en feil`,hidePasswordText:`Skjul passord`,loadingText:`Laster...`,orText:`eller`,privacyPolicyText:`Personvernerklæring`,showPasswordText:`Vis passord`,termsOfServiceText:`Vilkår for bruk`,termsShortText:`Vilkår`,tryAgainText:`Prøv igjen`}},Ys={consent:{buttonText:`Godta`,cancelButtonText:`Avslå`,description:"${clientName} ber om tilgang til kontoen din",pageTitle:"Godkjenn | ${clientName}",scopesTitle:"Dette vil gi ${clientName} tillatelse til å:",title:"Godkjenn ${clientName}"}},Xs={invitation:{acceptButtonText:`Godta invitasjon`,description:"${inviterName} har invitert deg til å bli med i ${organizationName} på ${clientName}",pageTitle:"Invitasjon | ${clientName}",title:`Du har blitt invitert`}},Zs={login:{alertListTitle:`Varsler`,buttonText:`Fortsett`,description:"Logg inn på ${clientName}.",editEmailText:`Rediger`,emailPlaceholder:`E-postadresse`,enterACodeBtn:`Logg inn med en kode`,federatedConnectionButtonText:"Fortsett med ${connectionName}",footerLinkText:`Registrer deg`,footerText:`Har du ikke en konto?`,forgotPasswordText:`Har du glemt passordet?`,hidePasswordText:`Skjul passord`,invalidEmail:`Ugyldig e-postadresse`,invalidIdentifier:`Ugyldig e-postadresse eller brukernavn`,invitationDescription:"Logg inn for å godta ${inviterName} sin invitasjon til å bli med i ${companyName} på ${clientName}.",invitationTitle:`Du har blitt invitert!`,logoAltText:"${companyName}","no-email":`Vennligst oppgi en e-postadresse`,"no-password":`Passord er påkrevd`,pageTitle:"Logg inn | ${clientName}",passwordLoginNotAvailable:`Passordautentisering er ikke tilgjengelig`,passwordPlaceholder:`Passord`,phonePlaceholder:`Telefonnummer`,separatorText:`eller`,sessionExpired:`Økten din har utløpt. Vennligst prøv igjen.`,showPasswordText:`Vis passord`,signupActionLinkText:`Registrer deg`,signupActionText:`Har du ikke en konto?`,title:`Velkommen`,tooManyFailedLogins:`For mange mislykkede innloggingsforsøk. Vennligst prøv igjen senere.`,unverifiedEmail:`Vennligst bekreft e-postadressen din før du logger inn`,userAccountDoesNotExist:`Brukerkontoen finnes ikke`,usernamePlaceholder:`Brukernavn eller e-postadresse`,usernameTooLong:"Brukernavnet må være ${max} tegn eller færre",usernameTooShort:"Brukernavnet må være minst ${min} tegn",wrongCredentials:`Feil brukernavn eller passord`,passkeyButtonText:`Logg inn med passkey`}},Qs={mfa:{backupCodeText:`Bruk reservekode`,description:`Velg en bekreftelsesmetode`,pageTitle:"Flerfaktorautentisering | ${clientName}",title:`Bekreft identiteten din`}},$s={"passkey-enrollment-nudge":{title:`Sikre kontoen din med en passnøkkel`,description:`Passnøkler bruker enhetens biometri eller PIN-kode for å logge deg inn raskere og sikrere.`,enrollButtonText:`Sett opp passnøkkel`,snoozeButtonText:`Kanskje senere`,optOutLinkText:`Ikke vis dette igjen`,pageTitle:"Sett Opp Passnøkkel | ${clientName}"},"passkey-enrollment":{title:`Opprett passnøkkelen din`,description:`Følg instruksjonene fra nettleseren for å opprette en passnøkkel for denne kontoen.`,errorMessage:`Kunne ikke opprette passnøkkel. Vennligst prøv igjen.`,cancelLinkText:`Hopp over for nå`,retryButtonText:`Prøv igjen`,enrollmentComplete:`Passnøkkelen din er konfigurert. Du kan lukke denne siden.`,pageTitle:"Opprett Passnøkkel | ${clientName}"},"passkey-challenge":{title:`Logg inn med passkey`,description:`Følg instruksjonene fra nettleseren for å bekrefte identiteten din.`,errorMessage:`Autentisering med passkey mislyktes. Vennligst prøv igjen.`,cancelLinkText:`Tilbake til innlogging`,retryButtonText:`Prøv igjen`,pageTitle:"Logg inn med passkey | ${clientName}"}},ec={organizations:{description:`Velg hvilken organisasjon du vil logge inn på`,pageTitle:"Velg organisasjon | ${clientName}",searchPlaceholder:`Søk etter organisasjoner`,title:`Velg din organisasjon`}},tc={signup:{buttonText:`Registrer deg`,confirmPasswordPlaceholder:`Bekreft passord`,description:`Registrer deg for å fortsette`,"email-already-exists":`E-postadressen er allerede registrert`,emailPlaceholder:`E-postadresse`,federatedConnectionButtonText:"Fortsett med ${connectionName}",hidePasswordText:`Skjul passord`,"invalid-email-format":`Ugyldig e-postadresse`,loginActionLinkText:`Logg inn`,loginActionText:`Har du allerede en konto?`,"no-email":`Vennligst oppgi en e-postadresse`,"no-password":`Passord er påkrevd`,"no-username":`Brukernavn er påkrevd`,pageTitle:"Registrer deg | ${clientName}",passwordPlaceholder:`Passord`,passwordsDidntMatch:`Passordene samsvarer ikke`,phonePlaceholder:`Telefonnummer`,privacyPolicyLinkText:`Personvernerklæring`,separatorText:`eller`,sessionExpired:`Økten din har utløpt. Vennligst prøv igjen.`,showPasswordText:`Vis passord`,termsOfServiceLinkText:`Vilkår for bruk`,termsText:`Ved å registrere deg godtar du våre`,title:`Opprett kontoen din`,"username-already-exists":`Dette brukernavnet er allerede tatt`,usernamePlaceholder:`Brukernavn`,verifyEmailText:`Sjekk e-posten din for å bekrefte kontoen`}},nc={status:{continueButtonText:`Fortsett`,errorTitle:`Feil`,pageTitle:"Status | ${clientName}",successTitle:`Vellykket`,title:`Status`}},rc={common:Js,consent:Ys,"device-flow":{"device-flow":{buttonText:`Fortsett`,codePlaceholder:`Skriv inn kode`,description:`Skriv inn koden som vises på enheten din`,"expired-code":`Koden har utløpt`,"invalid-code":`Koden du skrev inn er ugyldig`,pageTitle:"Enhetsaktivering | ${clientName}",title:`Aktiver enheten din`}},"email-otp-challenge":{"email-otp-challenge":{buttonText:`Fortsett`,codeLabel:`Bekreftelseskode`,codePlaceholder:`Skriv inn kode`,defaultDescription:`Skriv inn bekreftelseskoden som ble sendt til e-posten din`,description:"Vi sendte en kode til ${email}","invalid-code":`Ugyldig kode`,noCode:`Vennligst skriv inn bekreftelseskoden`,pageTitle:"Skriv inn kode | ${clientName}",resendText:`Send kode på nytt`,sessionExpired:`Økten din har utløpt. Vennligst prøv igjen.`,title:`Sjekk e-posten din`,unexpectedError:`En uventet feil oppstod`}},"email-verification":{"email-verification":{description:"Vi sendte en e-post til ${email}",pageTitle:"Bekreft e-post | ${clientName}",resendText:`Send e-post på nytt`,successDescription:`E-postadressen din er bekreftet.`,successTitle:`E-post bekreftet`,title:`Bekreft e-posten din`}},invitation:Xs,login:Zs,"login-id":{"login-id":{alertListTitle:`Varsler`,"auth0-users-validation":`Noe gikk galt, vennligst prøv igjen senere`,"authentication-failure":`Beklager, noe gikk galt under innloggingsforsøket`,buttonText:`Fortsett`,"captcha-client-failure":`Vi kunne ikke laste sikkerhetsutfordringen. Vennligst prøv igjen. (Feilkode: #{errorCode})`,"captcha-validation-failure":`Beklager, noe gikk galt under validering av captcha-svaret. Vennligst prøv igjen.`,captchaCodePlaceholder:`Skriv inn koden som vises ovenfor`,"custom-script-error-code":`Noe gikk galt, vennligst prøv igjen senere.`,description:"Logg inn på ${clientName}.",editEmailText:`Rediger`,emailPlaceholder:`E-postadresse`,federatedConnectionButtonText:"Fortsett med ${connectionName}",footerLinkText:`Registrer deg`,footerText:`Har du ikke en konto?`,forgotPasswordText:`Har du glemt passordet?`,hidePasswordText:`Skjul passord`,"invalid-captcha":`Løs utfordringen for å bekrefte at du ikke er en robot.`,"invalid-code":`Ugyldig kode`,"invalid-connection":`Ugyldig tilkobling`,"invalid-email-format":`Ugyldig e-postadresse`,"invalid-email-phone":`Skriv inn en gyldig e-postadresse eller telefonnummer. Telefonnumre må inkludere landskode.`,"invalid-email-phone-username":`Skriv inn en gyldig e-postadresse, telefonnummer eller brukernavn. Telefonnumre må inkludere landskode.`,"invalid-email-username":`Skriv inn en gyldig e-postadresse eller brukernavn`,"invalid-expired-code":`Ugyldig eller utløpt brukerkode`,"invalid-login-id":`Ugyldig innloggings-ID`,"invalid-phone-username":`Skriv inn et gyldig telefonnummer eller brukernavn. Telefonnumre må inkludere landskode.`,"invalid-recaptcha":`Kryss av i boksen for å bekrefte at du ikke er en robot.`,"invalid-username":"Brukernavnet kan bare inneholde alfanumeriske tegn eller: '${characters}'. Brukernavnet må ha mellom ${min} og ${max} tegn.",invitationDescription:"Logg inn for å godta ${inviterName} sin invitasjon til å bli med i ${companyName} på ${clientName}.",invitationTitle:`Du har blitt invitert!`,"ip-blocked":`Vi har oppdaget mistenkelig innloggingsaktivitet, og videre forsøk vil bli blokkert. Vennligst kontakt administratoren.`,logoAltText:"${companyName}","no-db-connection":`Ugyldig tilkobling`,"no-email":`Vennligst oppgi en e-postadresse`,"no-email-phone":`E-postadresse eller telefonnummer er påkrevd`,"no-email-phone-username":`Telefonnummer, brukernavn eller e-postadresse er påkrevd`,"no-email-username":`E-postadresse eller brukernavn er påkrevd`,"no-password":`Passord er påkrevd`,"no-phone":`Vennligst oppgi et telefonnummer`,"no-phone-username":`Telefonnummer eller brukernavn er påkrevd`,"no-username":`Brukernavn er påkrevd`,pageTitle:"Logg inn | ${clientName}","password-breached":`Vi har oppdaget et potensielt sikkerhetsproblem med denne kontoen. For å beskytte kontoen din har vi forhindret denne innloggingen. Vennligst tilbakestill passordet ditt for å fortsette.`,passwordPlaceholder:`Passord`,phoneOrEmailPlaceholder:`E-post eller telefonnummer`,phoneOrUsernameOrEmailPlaceholder:`Telefon, brukernavn eller e-post`,phoneOrUsernamePlaceholder:`Telefonnummer eller brukernavn`,phonePlaceholder:`Telefonnummer`,"same-user-login":`For mange innloggingsforsøk for denne brukeren. Vennligst vent og prøv igjen senere.`,selectCountryCode:"Velg landskode, for øyeblikket satt til ${countryName}, ${countryCode}, +${countryPrefix}",separatorText:`eller`,sessionExpired:`Økten din har utløpt. Vennligst prøv igjen.`,showPasswordText:`Vis passord`,signupActionLinkText:`Registrer deg`,signupActionText:`Har du ikke en konto?`,termsAndConditionsTemplate:'Ved å fortsette godtar du våre <a href="${termsAndConditionsUrl}" target="_blank" rel="noopener noreferrer">vilkår</a>.',title:`Velkommen`,"user-blocked":`Kontoen din har blitt blokkert etter flere påfølgende innloggingsforsøk.`,userAccountDoesNotExist:`Brukerkontoen finnes ikke`,usernameOnlyPlaceholder:`Brukernavn`,usernameOrEmailPlaceholder:`Brukernavn eller e-postadresse`,usernamePlaceholder:`Brukernavn eller e-postadresse`,usernameTooLong:"Brukernavnet må være ${max} tegn eller færre",usernameTooShort:"Brukernavnet må være minst ${min} tegn","wrong-credentials":`Feil brukernavn eller passord`,"wrong-email-credentials":`Feil e-postadresse eller passord`,"wrong-email-phone-credentials":`Feil e-postadresse, telefonnummer eller passord. Telefonnumre må inkludere landskode.`,"wrong-email-phone-username-credentials":`Feil e-postadresse, telefonnummer, brukernavn eller passord. Telefonnumre må inkludere landskode.`,"wrong-email-username-credentials":`Feil e-postadresse, brukernavn eller passord`,"wrong-phone-credentials":`Feil telefonnummer eller passord`,"wrong-phone-username-credentials":`Feil telefonnummer, brukernavn eller passord. Telefonnumre må inkludere landskode.`,"wrong-username-credentials":`Feil brukernavn eller passord`,passkeyButtonText:`Logg inn med passkey`}},"login-password":{"login-password":{buttonText:`Logg inn`,description:"Logg inn på ${clientName}",forgotPasswordText:`Har du glemt passordet?`,hidePasswordText:`Skjul passord`,"no-password":`Passord er påkrevd`,pageTitle:"Logg inn | ${clientName}","password-breached":`Vi har oppdaget et potensielt sikkerhetsproblem med denne kontoen. For å beskytte kontoen din har vi forhindret denne innloggingen. Vennligst tilbakestill passordet ditt for å fortsette.`,passwordPlaceholder:`Passord`,showPasswordText:`Vis passord`,signingInAs:"Logger inn som ${email}",title:`Oppgi passord`,unverifiedEmail:`Vennligst bekreft e-postadressen din før du logger inn`,"user-blocked":`Kontoen din har blitt blokkert etter flere påfølgende innloggingsforsøk.`,"wrong-credentials":`Feil passord`}},"login-passwordless":{"login-passwordless":{authMethodEmail:`e-post`,authMethodEmailOrPhone:`e-post eller telefonnummer`,authMethodPhone:`telefonnummer`,description:"Logg inn med din ${authMethod}",emailOrPhonePlaceholder:`E-postadresse eller telefonnummer`,emailPlaceholder:`E-postadresse`,invalidEmail:`Vennligst oppgi en gyldig e-postadresse`,invalidIdentifier:`Vennligst oppgi en gyldig e-postadresse eller telefonnummer`,invalidPhone:`Vennligst oppgi et gyldig telefonnummer med landskode`,noEmail:`Vennligst oppgi e-postadressen din`,noPhone:`Vennligst oppgi telefonnummeret ditt`,phonePlaceholder:`Telefonnummer`,sessionExpired:`Økten din har utløpt. Vennligst prøv igjen.`,title:`Logg inn med en kode`,userAccountDoesNotExist:`Brukerkontoen finnes ikke`}},"magic-link-sent":{"magic-link-sent":{defaultDescription:`Klikk på lenken i e-posten for å logge inn`,description:"Vi sendte en lenke til ${username}. Klikk på den for å logge inn.",resendText:`Send lenke på nytt`,spamText:`Fikk du ikke e-posten? Sjekk søppelpostmappen.`,title:`Sjekk e-posten din`}},mfa:Qs,"mfa-email":{"mfa-email":{buttonText:`Fortsett`,codePlaceholder:`Skriv inn kode`,description:"Vi sendte en kode til ${email}","invalid-code":`Koden du skrev inn er ugyldig`,pageTitle:"E-postbekreftelse | ${clientName}",resendText:`Send kode på nytt`,title:`Sjekk e-posten din`}},"mfa-otp":{"mfa-otp":{buttonText:`Fortsett`,codePlaceholder:`Skriv inn kode`,description:`Skriv inn den 6-sifrede koden fra autentiseringsappen din`,"invalid-code":`Koden du skrev inn er ugyldig`,pageTitle:"Skriv inn kode | ${clientName}",title:`Skriv inn koden din`},"mfa-totp-enrollment":{title:`Sett opp autentisering`,description:`Skann QR-koden nedenfor med autentiseringsappen din, og skriv deretter inn den 6-sifrede koden for å verifisere`,secretLabel:`Eller skriv inn denne koden manuelt:`,codePlaceholder:`Skriv inn kode`,continueButtonText:`Bekreft og aktiver`,"invalid-code":`Koden du skrev inn er ugyldig. Vennligst prøv igjen.`,"transaction-not-found":`Registreringsøkten din har utløpt, du må starte på nytt.`,pageTitle:"Sett opp autentisering | ${clientName}",unexpectedError:`Noe gikk galt. Vennligst prøv igjen.`,enrollmentComplete:`MFA-registreringen er fullført. Du kan lukke denne siden.`},"mfa-totp-challenge":{title:`Bekreft identiteten din`,description:`Skriv inn den 6-sifrede koden fra autentiseringsappen din`,codePlaceholder:`Skriv inn kode`,continueButtonText:`Fortsett`,"invalid-code":`Koden du skrev inn er ugyldig`,"transaction-not-found":`Registreringsøkten din har utløpt, du må starte på nytt.`,unexpectedError:`Noe gikk galt. Vennligst prøv igjen.`,pageTitle:"Bekreft identitet | ${clientName}"}},"mfa-phone":{"mfa-phone-challenge":{pageTitle:"Bruk telefonnummeret ditt for å logge inn | ${clientName}",title:`Bekreft identiteten din`,description:"Vi sendte en kode til ${phoneNumber}",continueButtonText:`Fortsett`,changePhoneText:`Velg et annet telefonnummer.`,smsButtonText:`Tekstmelding`,voiceButtonText:`Taleanrop`,chooseMessageTypeText:`Hvordan vil du motta koden?`,pickAuthenticatorText:`Prøv en annen metode`,logoAltText:"${companyName}",codePlaceholder:`Skriv inn kode`,"send-sms-failed":`Det oppstod et problem med å sende SMS-en`,"send-voice-failed":`Det oppstod et problem med å ringe taleanropet`,"invalid-phone-format":`Telefonnummeret kan bare inneholde sifre.`,"invalid-phone":`Det ser ut som telefonnummeret ditt ikke er gyldig. Sjekk og prøv igjen.`,"too-many-sms":`Du har overskredet maksimalt antall telefonmeldinger per time. Vent noen minutter og prøv igjen.`,"too-many-voice":`Du har overskredet maksimalt antall telefonmeldinger per time. Vent noen minutter og prøv igjen.`,"transaction-not-found":`Registreringstransaksjonen din har utløpt, du må starte på nytt.`,"no-phone":`Skriv inn et telefonnummer`,noCode:`Vennligst skriv inn bekreftelseskoden`,invalidCode:`Koden du skrev inn er ugyldig. Prøv igjen.`,unexpectedError:`Noe gikk galt. Prøv igjen.`,resendSuccess:`Vi sendte en ny kode til telefonen din`,enrollmentComplete:`MFA-registreringen er fullført. Du kan lukke denne siden.`},"mfa-phone-enrollment":{pageTitle:"Skriv inn telefonnummeret ditt for å logge inn med en telefonkode | ${clientName}",title:`Sikre kontoen din`,description:`Skriv inn landskoden og telefonnummeret vi kan sende en 6-sifret kode til:`,continueButtonText:`Fortsett`,smsButtonText:`Tekstmelding`,voiceButtonText:`Taleanrop`,chooseMessageTypeText:`Hvordan vil du motta koden?`,pickAuthenticatorText:`Prøv en annen metode`,placeholder:`Skriv inn telefonnummeret ditt`,logoAltText:"${companyName}",selectCountryCode:"Velg landskode, for øyeblikket satt til ${countryName}, ${countryCode}, +${countryPrefix}","send-sms-failed":`Det oppstod et problem med å sende SMS-en`,"send-voice-failed":`Det oppstod et problem med å ringe taleanropet`,"sms-authenticator-error":`Vi kunne ikke sende SMS-en. Prøv igjen senere.`,"invalid-phone-format":`Telefonnummeret kan bare inneholde sifre.`,"invalid-phone":`Det ser ut som telefonnummeret ditt ikke er gyldig. Sjekk og prøv igjen.`,"too-many-sms":`Du har overskredet maksimalt antall telefonmeldinger per time. Vent noen minutter og prøv igjen.`,"too-many-voice":`Du har overskredet maksimalt antall telefonmeldinger per time. Vent noen minutter og prøv igjen.`,"transaction-not-found":`Registreringstransaksjonen din har utløpt, du må starte på nytt.`,"no-phone":`Skriv inn et telefonnummer`,"phone-is-too-short":`Telefonnummeret er for kort`,"phone-is-too-long":`Telefonnummeret er for langt`}},"mfa-login-options":{"mfa-login-options":{pageTitle:"Velg bekreftelsesmetode | ${clientName}",title:`Velg bekreftelsesmetode`,description:`Velg hvordan du vil bekrefte identiteten din`,authenticatorAppLabel:`Autentiseringsapp`,authenticatorAppDescription:`Bruk autentiseringsappen din for å få en bekreftelseskode`,smsLabel:`Tekstmelding`,smsDescription:`Få en bekreftelseskode sendt til telefonen din`,passkeyLabel:`Passnøkkel`,passkeyDescription:`Bruk enhetens biometri eller sikkerhetsnøkkel`}},"mfa-push":{"mfa-push":{description:`Vi sendte en varsling til enheten din`,pageTitle:"Push-varsling | ${clientName}",resendText:`Send varsling på nytt`,title:`Godkjenn forespørselen`,useCodeText:`Skriv inn kode manuelt`}},"mfa-recovery-code":{"mfa-recovery-code":{buttonText:`Fortsett`,codePlaceholder:`Gjenopprettingskode`,description:`Skriv inn en av gjenopprettingskodene dine`,"invalid-code":`Gjenopprettingskoden du skrev inn er ugyldig`,pageTitle:"Gjenopprettingskode | ${clientName}",title:`Skriv inn gjenopprettingskode`}},"mfa-voice":{"mfa-voice":{buttonText:`Ring meg`,codePlaceholder:`Skriv inn kode`,description:"Vi ringer ${phoneNumber} med koden din","invalid-code":`Koden du skrev inn er ugyldig`,pageTitle:"Taleanrop | ${clientName}",title:`Motta en telefonsamtale`}},"mfa-webauthn":{"mfa-webauthn":{buttonText:`Prøv igjen`,description:`Sett inn sikkerhetsnøkkelen din og følg instruksjonene`,pageTitle:"Sikkerhetsnøkkel | ${clientName}",title:`Bruk sikkerhetsnøkkelen din`}},passkeys:$s,organizations:ec,"reset-password":{"reset-password":{backToLoginText:`Tilbake til innlogging`,buttonText:`Fortsett`,codeExpired:`Koden for tilbakestilling av passord har utløpt. Vennligst be om en ny.`,confirmPasswordLabel:`Bekreft passord`,confirmPasswordPlaceholder:`Bekreft passord`,description:`Oppgi e-postadressen din for å tilbakestille passordet`,emailPlaceholder:`E-postadresse`,failed:`Tilbakestilling av passord mislyktes. Vennligst prøv igjen.`,"invalid-email-format":`Ugyldig e-postadresse`,"no-email":`Vennligst oppgi en e-postadresse`,pageTitle:"Tilbakestill passord | ${clientName}",passwordLabel:`Nytt passord`,passwordPlaceholder:`Nytt passord`,passwordTooWeak:`Passordet er for svakt`,passwordsDidntMatch:`Passordene samsvarer ikke`,successDescription:`Vi har sendt en lenke for tilbakestilling av passord til e-postadressen din.`,successTitle:`Sjekk e-posten din`,title:`Har du glemt passordet?`,"user-not-found":`Brukeren ble ikke funnet`},"reset-password-code":{backToLoginText:`Tilbake til innlogging`,buttonText:`Tilbakestill passord`,codeLabel:`Tilbakestillingskode`,codePlaceholder:`Skriv inn 6-sifret kode`,confirmPasswordLabel:`Bekreft passord`,confirmPasswordPlaceholder:`Bekreft passord`,defaultDescription:`Skriv inn koden som ble sendt til e-posten din og velg et nytt passord`,description:"Vi sendte en kode til ${email}",failed:`Tilbakestilling av passord mislyktes. Vennligst prøv igjen.`,invalidCode:`Koden du skrev inn er ugyldig eller har utløpt`,noCode:`Vennligst skriv inn tilbakestillingskoden`,pageTitle:"Skriv inn tilbakestillingskode | ${clientName}",passwordLabel:`Nytt passord`,passwordPlaceholder:`Nytt passord`,passwordTooWeak:`Passordet er for svakt`,passwordsDidntMatch:`Passordene samsvarer ikke`,resendFailed:`Kunne ikke sende koden på nytt. Vennligst prøv igjen.`,resendSuccess:`En ny kode har blitt sendt til e-posten din`,resendText:`Send kode på nytt`,sessionExpired:`Økten din har utløpt. Vennligst prøv igjen.`,title:`Skriv inn tilbakestillingskode`}},signup:tc,"signup-id":{"signup-id":{buttonText:`Fortsett`,description:`Registrer deg for å fortsette`,"email-already-exists":`E-postadressen er allerede registrert`,emailPlaceholder:`E-postadresse`,federatedConnectionButtonText:"Fortsett med ${connectionName}","invalid-email-format":`Ugyldig e-postadresse`,loginActionLinkText:`Logg inn`,loginActionText:`Har du allerede en konto?`,"no-email":`Vennligst oppgi en e-postadresse`,pageTitle:"Registrer deg | ${clientName}",phonePlaceholder:`Telefonnummer`,separatorText:`eller`,title:`Opprett kontoen din`,usernamePlaceholder:`Brukernavn`}},"signup-password":{"signup-password":{buttonText:`Fortsett`,description:`Opprett et passord for å fortsette`,hidePasswordText:`Skjul passord`,"no-password":`Passord er påkrevd`,pageTitle:"Registrer deg | ${clientName}","password-policy-not-met":`Passordet oppfyller ikke kravene`,"password-too-weak":`Passordet er for svakt`,passwordPlaceholder:`Passord`,showPasswordText:`Vis passord`,title:`Opprett passordet ditt`}},"sms-otp-challenge":{"sms-otp-challenge":{buttonText:`Fortsett`,codeLabel:`Bekreftelseskode`,codePlaceholder:`Skriv inn kode`,defaultDescription:`Skriv inn bekreftelseskoden som ble sendt til telefonen din`,description:"Vi sendte en kode til ${username}","invalid-code":`Ugyldig kode`,noCode:`Vennligst skriv inn bekreftelseskoden`,pageTitle:"Skriv inn kode | ${clientName}",resendText:`Send kode på nytt`,sessionExpired:`Økten din har utløpt. Vennligst prøv igjen.`,title:`Sjekk telefonen din`,unexpectedError:`En uventet feil oppstod`}},status:nc},ic=c({common:()=>ac,consent:()=>oc,default:()=>mc,invitation:()=>sc,login:()=>cc,mfa:()=>lc,organizations:()=>dc,passkeys:()=>uc,signup:()=>fc,status:()=>pc}),ac={common:{alertListTitle:`Powiadomienia`,backText:`Wróć`,cancelText:`Anuluj`,closeText:`Zamknij`,contactSupportText:`Potrzebujesz pomocy?`,continueText:`Kontynuuj`,copyrightText:"© ${currentYear} ${companyName}",errorText:`Coś poszło nie tak. Spróbuj ponownie.`,hidePasswordText:`Ukryj hasło`,loadingText:`Ładowanie...`,orText:`lub`,privacyPolicyText:`Polityka prywatności`,showPasswordText:`Pokaż hasło`,termsOfServiceText:`Regulamin`,termsShortText:`Zasady`,tryAgainText:`Spróbuj ponownie`}},oc={consent:{buttonText:`Zaakceptuj`,cancelButtonText:`Odmów`,description:"${clientName} prosi o dostęp do Twojego konta",pageTitle:"Autoryzacja | ${clientName}",scopesTitle:"Umożliwi to ${clientName}:",title:"Autoryzuj ${clientName}"}},sc={invitation:{acceptButtonText:`Przyjmij zaproszenie`,description:"${inviterName} zaprosił Cię do dołączenia do ${organizationName} w ${clientName}",pageTitle:"Zaproszenie | ${clientName}",title:`Otrzymałeś zaproszenie`}},cc={login:{alertListTitle:`Powiadomienia`,buttonText:`Kontynuuj`,description:"Zaloguj się do ${clientName}.",editEmailText:`Edytuj`,emailPlaceholder:`Adres e-mail`,enterACodeBtn:`Zaloguj się kodem`,federatedConnectionButtonText:"Kontynuuj z ${connectionName}",footerLinkText:`Zarejestruj się`,footerText:`Nie masz konta?`,forgotPasswordText:`Zapomniałeś hasła?`,hidePasswordText:`Ukryj hasło`,invalidEmail:`Nieprawidłowy adres e-mail`,invalidIdentifier:`Nieprawidłowy adres e-mail lub nazwa użytkownika`,invitationDescription:"Zaloguj się, aby przyjąć zaproszenie od ${inviterName} do dołączenia do ${companyName} w ${clientName}.",invitationTitle:`Otrzymałeś zaproszenie!`,logoAltText:"${companyName}","no-email":`Wprowadź adres e-mail`,"no-password":`Hasło jest wymagane`,pageTitle:"Logowanie | ${clientName}",passwordLoginNotAvailable:`Logowanie hasłem jest niedostępne`,passwordPlaceholder:`Hasło`,phonePlaceholder:`Numer telefonu`,separatorText:`lub`,sessionExpired:`Twoja sesja wygasła. Spróbuj ponownie.`,showPasswordText:`Pokaż hasło`,signupActionLinkText:`Zarejestruj się`,signupActionText:`Nie masz konta?`,title:`Witamy`,tooManyFailedLogins:`Zbyt wiele nieudanych prób logowania. Spróbuj ponownie później.`,unverifiedEmail:`Zweryfikuj swój adres e-mail przed zalogowaniem`,userAccountDoesNotExist:`Konto użytkownika nie istnieje`,usernamePlaceholder:`Nazwa użytkownika lub adres e-mail`,usernameTooLong:"Nazwa użytkownika musi mieć maksymalnie ${max} znaków",usernameTooShort:"Nazwa użytkownika musi mieć co najmniej ${min} znaków",wrongCredentials:`Nieprawidłowa nazwa użytkownika lub hasło`,passkeyButtonText:`Zaloguj się za pomocą passkey`}},lc={mfa:{backupCodeText:`Użyj kodu zapasowego`,description:`Wybierz metodę weryfikacji`,pageTitle:"Uwierzytelnianie wieloskładnikowe | ${clientName}",title:`Zweryfikuj swoją tożsamość`}},uc={"passkey-enrollment-nudge":{title:`Zabezpiecz swoje konto kluczem dostępu`,description:`Klucze dostępu wykorzystują biometrię lub PIN urządzenia, aby logować się szybciej i bezpieczniej.`,enrollButtonText:`Skonfiguruj klucz dostępu`,snoozeButtonText:`Może później`,optOutLinkText:`Nie pokazuj ponownie`,pageTitle:"Konfiguracja Klucza Dostępu | ${clientName}"},"passkey-enrollment":{title:`Utwórz klucz dostępu`,description:`Postępuj zgodnie z instrukcjami przeglądarki, aby utworzyć klucz dostępu dla tego konta.`,errorMessage:`Nie udało się utworzyć klucza dostępu. Spróbuj ponownie.`,cancelLinkText:`Pomiń na razie`,retryButtonText:`Spróbuj ponownie`,enrollmentComplete:`Twój klucz dostępu został pomyślnie skonfigurowany. Możesz zamknąć tę stronę.`,pageTitle:"Tworzenie Klucza Dostępu | ${clientName}"},"passkey-challenge":{title:`Zaloguj się za pomocą passkey`,description:`Postępuj zgodnie z instrukcjami przeglądarki, aby zweryfikować swoją tożsamość.`,errorMessage:`Uwierzytelnianie za pomocą passkey nie powiodło się. Spróbuj ponownie.`,cancelLinkText:`Powrót do logowania`,retryButtonText:`Spróbuj ponownie`,pageTitle:"Logowanie za pomocą passkey | ${clientName}"}},dc={organizations:{description:`Wybierz organizację, do której chcesz się zalogować`,pageTitle:"Wybierz organizację | ${clientName}",searchPlaceholder:`Szukaj organizacji`,title:`Wybierz swoją organizację`}},fc={signup:{buttonText:`Zarejestruj się`,confirmPasswordPlaceholder:`Potwierdź hasło`,description:`Zarejestruj się, aby kontynuować`,"email-already-exists":`Ten adres e-mail jest już zarejestrowany`,emailPlaceholder:`Adres e-mail`,federatedConnectionButtonText:"Kontynuuj z ${connectionName}",hidePasswordText:`Ukryj hasło`,"invalid-email-format":`Nieprawidłowy adres e-mail`,loginActionLinkText:`Zaloguj się`,loginActionText:`Masz już konto?`,"no-email":`Wprowadź adres e-mail`,"no-password":`Hasło jest wymagane`,"no-username":`Nazwa użytkownika jest wymagana`,pageTitle:"Rejestracja | ${clientName}",passwordPlaceholder:`Hasło`,passwordsDidntMatch:`Hasła nie są zgodne`,phonePlaceholder:`Numer telefonu`,privacyPolicyLinkText:`Polityka prywatności`,separatorText:`lub`,sessionExpired:`Twoja sesja wygasła. Spróbuj ponownie.`,showPasswordText:`Pokaż hasło`,termsOfServiceLinkText:`Regulamin`,termsText:`Rejestrując się, akceptujesz nasz`,title:`Utwórz konto`,"username-already-exists":`Ta nazwa użytkownika jest już zajęta`,usernamePlaceholder:`Nazwa użytkownika`,verifyEmailText:`Sprawdź swoją pocztę, aby zweryfikować konto`}},pc={status:{continueButtonText:`Kontynuuj`,errorTitle:`Błąd`,pageTitle:"Status | ${clientName}",successTitle:`Sukces`,title:`Status`}},mc={common:ac,consent:oc,"device-flow":{"device-flow":{buttonText:`Kontynuuj`,codePlaceholder:`Wprowadź kod`,description:`Wprowadź kod wyświetlony na Twoim urządzeniu`,"expired-code":`Kod wygasł`,"invalid-code":`Wprowadzony kod jest nieprawidłowy`,pageTitle:"Aktywacja urządzenia | ${clientName}",title:`Aktywuj swoje urządzenie`}},"email-otp-challenge":{"email-otp-challenge":{buttonText:`Kontynuuj`,codeLabel:`Kod weryfikacyjny`,codePlaceholder:`Wprowadź kod`,defaultDescription:`Wprowadź kod weryfikacyjny wysłany na Twój adres e-mail`,description:"Wysłaliśmy kod na ${email}","invalid-code":`Nieprawidłowy kod`,noCode:`Wprowadź kod weryfikacyjny`,pageTitle:"Wprowadź kod | ${clientName}",resendText:`Wyślij ponownie kod`,sessionExpired:`Twoja sesja wygasła. Spróbuj ponownie.`,title:`Sprawdź swoją pocztę`,unexpectedError:`Wystąpił nieoczekiwany błąd`}},"email-verification":{"email-verification":{description:"Wysłaliśmy wiadomość na ${email}",pageTitle:"Weryfikacja e-mail | ${clientName}",resendText:`Wyślij ponownie e-mail`,successDescription:`Twój adres e-mail został pomyślnie zweryfikowany.`,successTitle:`E-mail zweryfikowany`,title:`Zweryfikuj swój adres e-mail`}},invitation:sc,login:cc,"login-id":{"login-id":{alertListTitle:`Powiadomienia`,"auth0-users-validation":`Coś poszło nie tak, spróbuj ponownie później`,"authentication-failure":`Przepraszamy, wystąpił błąd podczas logowania`,buttonText:`Kontynuuj`,"captcha-client-failure":`Nie udało się załadować weryfikacji bezpieczeństwa. Spróbuj ponownie. (Kod błędu: #{errorCode})`,"captcha-validation-failure":`Przepraszamy, wystąpił błąd podczas weryfikacji captcha. Spróbuj ponownie.`,captchaCodePlaceholder:`Wprowadź kod widoczny powyżej`,"custom-script-error-code":`Coś poszło nie tak, spróbuj ponownie później.`,description:"Zaloguj się do ${clientName}.",editEmailText:`Edytuj`,emailPlaceholder:`Adres e-mail`,federatedConnectionButtonText:"Kontynuuj z ${connectionName}",footerLinkText:`Zarejestruj się`,footerText:`Nie masz konta?`,forgotPasswordText:`Zapomniałeś hasła?`,hidePasswordText:`Ukryj hasło`,"invalid-captcha":`Rozwiąż zadanie, aby potwierdzić, że nie jesteś robotem.`,"invalid-code":`Nieprawidłowy kod`,"invalid-connection":`Nieprawidłowe połączenie`,"invalid-email-format":`Nieprawidłowy adres e-mail`,"invalid-email-phone":`Wprowadź prawidłowy adres e-mail lub numer telefonu. Numery telefonów muszą zawierać kod kraju.`,"invalid-email-phone-username":`Wprowadź prawidłowy adres e-mail, numer telefonu lub nazwę użytkownika. Numery telefonów muszą zawierać kod kraju.`,"invalid-email-username":`Wprowadź prawidłowy adres e-mail lub nazwę użytkownika`,"invalid-expired-code":`Nieprawidłowy lub wygasły kod użytkownika`,"invalid-login-id":`Wprowadzono nieprawidłowy identyfikator logowania`,"invalid-phone-username":`Wprowadź prawidłowy numer telefonu lub nazwę użytkownika. Numery telefonów muszą zawierać kod kraju.`,"invalid-recaptcha":`Zaznacz pole wyboru, aby potwierdzić, że nie jesteś robotem.`,"invalid-username":"Nazwa użytkownika może zawierać tylko znaki alfanumeryczne lub: '${characters}'. Nazwa użytkownika powinna mieć od ${min} do ${max} znaków.",invitationDescription:"Zaloguj się, aby przyjąć zaproszenie od ${inviterName} do dołączenia do ${companyName} w ${clientName}.",invitationTitle:`Otrzymałeś zaproszenie!`,"ip-blocked":`Wykryliśmy podejrzaną aktywność logowania i dalsze próby zostaną zablokowane. Skontaktuj się z administratorem.`,logoAltText:"${companyName}","no-db-connection":`Nieprawidłowe połączenie`,"no-email":`Wprowadź adres e-mail`,"no-email-phone":`Adres e-mail lub numer telefonu jest wymagany`,"no-email-phone-username":`Numer telefonu, nazwa użytkownika lub adres e-mail jest wymagany`,"no-email-username":`Adres e-mail lub nazwa użytkownika jest wymagany`,"no-password":`Hasło jest wymagane`,"no-phone":`Wprowadź numer telefonu`,"no-phone-username":`Numer telefonu lub nazwa użytkownika jest wymagany`,"no-username":`Nazwa użytkownika jest wymagana`,pageTitle:"Logowanie | ${clientName}","password-breached":`Wykryliśmy potencjalny problem z bezpieczeństwem tego konta. Aby chronić Twoje konto, zablokowano to logowanie. Zresetuj hasło, aby kontynuować.`,passwordPlaceholder:`Hasło`,phoneOrEmailPlaceholder:`E-mail lub numer telefonu`,phoneOrUsernameOrEmailPlaceholder:`Telefon, nazwa użytkownika lub e-mail`,phoneOrUsernamePlaceholder:`Numer telefonu lub nazwa użytkownika`,phonePlaceholder:`Numer telefonu`,"same-user-login":`Zbyt wiele prób logowania dla tego użytkownika. Poczekaj chwilę i spróbuj ponownie.`,selectCountryCode:"Wybierz kod kraju, aktualnie ustawiony na ${countryName}, ${countryCode}, +${countryPrefix}",separatorText:`lub`,sessionExpired:`Twoja sesja wygasła. Spróbuj ponownie.`,showPasswordText:`Pokaż hasło`,signupActionLinkText:`Zarejestruj się`,signupActionText:`Nie masz konta?`,termsAndConditionsTemplate:'Kontynuując, akceptujesz nasze <a href="${termsAndConditionsUrl}" target="_blank" rel="noopener noreferrer">Zasady i warunki</a>.',title:`Witamy`,"user-blocked":`Twoje konto zostało zablokowane po wielu kolejnych nieudanych próbach logowania.`,userAccountDoesNotExist:`Konto użytkownika nie istnieje`,usernameOnlyPlaceholder:`Nazwa użytkownika`,usernameOrEmailPlaceholder:`Nazwa użytkownika lub adres e-mail`,usernamePlaceholder:`Nazwa użytkownika`,usernameTooLong:"Nazwa użytkownika musi mieć maksymalnie ${max} znaków",usernameTooShort:"Nazwa użytkownika musi mieć co najmniej ${min} znaków","wrong-credentials":`Nieprawidłowa nazwa użytkownika lub hasło`,"wrong-email-credentials":`Nieprawidłowy adres e-mail lub hasło`,"wrong-email-phone-credentials":`Nieprawidłowy adres e-mail, numer telefonu lub hasło. Numery telefonów muszą zawierać kod kraju.`,"wrong-email-phone-username-credentials":`Nieprawidłowy adres e-mail, numer telefonu, nazwa użytkownika lub hasło. Numery telefonów muszą zawierać kod kraju.`,"wrong-email-username-credentials":`Nieprawidłowy adres e-mail, nazwa użytkownika lub hasło`,"wrong-phone-credentials":`Nieprawidłowy numer telefonu lub hasło`,"wrong-phone-username-credentials":`Nieprawidłowy numer telefonu, nazwa użytkownika lub hasło. Numery telefonów muszą zawierać kod kraju.`,"wrong-username-credentials":`Nieprawidłowa nazwa użytkownika lub hasło`,passkeyButtonText:`Zaloguj się za pomocą passkey`}},"login-password":{"login-password":{buttonText:`Zaloguj się`,description:"Zaloguj się do ${clientName}",forgotPasswordText:`Zapomniałeś hasła?`,hidePasswordText:`Ukryj hasło`,"no-password":`Hasło jest wymagane`,pageTitle:"Logowanie | ${clientName}","password-breached":`Wykryliśmy potencjalny problem z bezpieczeństwem tego konta. Aby chronić Twoje konto, zablokowano to logowanie. Zresetuj hasło, aby kontynuować.`,passwordPlaceholder:`Hasło`,showPasswordText:`Pokaż hasło`,signingInAs:"Logujesz się jako ${email}",title:`Wprowadź hasło`,unverifiedEmail:`Zweryfikuj swój adres e-mail przed zalogowaniem`,"user-blocked":`Twoje konto zostało zablokowane po wielu kolejnych nieudanych próbach logowania.`,"wrong-credentials":`Nieprawidłowe hasło`}},"login-passwordless":{"login-passwordless":{authMethodEmail:`e-mail`,authMethodEmailOrPhone:`e-mail lub numer telefonu`,authMethodPhone:`numer telefonu`,description:"Zaloguj się za pomocą swojego ${authMethod}",emailOrPhonePlaceholder:`Adres e-mail lub numer telefonu`,emailPlaceholder:`Adres e-mail`,invalidEmail:`Wprowadź prawidłowy adres e-mail`,invalidIdentifier:`Wprowadź prawidłowy adres e-mail lub numer telefonu`,invalidPhone:`Wprowadź prawidłowy numer telefonu z kodem kraju`,noEmail:`Wprowadź swój adres e-mail`,noPhone:`Wprowadź swój numer telefonu`,phonePlaceholder:`Numer telefonu`,sessionExpired:`Twoja sesja wygasła. Spróbuj ponownie.`,title:`Zaloguj się kodem`,userAccountDoesNotExist:`Konto użytkownika nie istnieje`}},"magic-link-sent":{"magic-link-sent":{defaultDescription:`Kliknij link w wiadomości e-mail, aby się zalogować`,description:"Wysłaliśmy link na ${username}. Kliknij go, aby się zalogować.",resendText:`Wyślij ponownie link`,spamText:`Nie otrzymałeś wiadomości? Sprawdź folder spam.`,title:`Sprawdź swoją pocztę`}},mfa:lc,"mfa-email":{"mfa-email":{buttonText:`Kontynuuj`,codePlaceholder:`Wprowadź kod`,description:"Wysłaliśmy kod na ${email}","invalid-code":`Wprowadzony kod jest nieprawidłowy`,pageTitle:"Weryfikacja e-mail | ${clientName}",resendText:`Wyślij ponownie kod`,title:`Sprawdź swoją pocztę`}},"mfa-otp":{"mfa-otp":{buttonText:`Kontynuuj`,codePlaceholder:`Wprowadź kod`,description:`Wprowadź 6-cyfrowy kod z aplikacji uwierzytelniającej`,"invalid-code":`Wprowadzony kod jest nieprawidłowy`,pageTitle:"Wprowadź kod | ${clientName}",title:`Wprowadź swój kod`},"mfa-totp-enrollment":{title:`Skonfiguruj aplikację uwierzytelniającą`,description:`Zeskanuj poniższy kod QR za pomocą aplikacji uwierzytelniającej, a następnie wprowadź 6-cyfrowy kod w celu weryfikacji`,secretLabel:`Lub wprowadź ten kod ręcznie:`,codePlaceholder:`Wprowadź kod`,continueButtonText:`Zweryfikuj i aktywuj`,"invalid-code":`Wprowadzony kod jest nieprawidłowy. Spróbuj ponownie.`,"transaction-not-found":`Twoja transakcja rejestracji wygasła, musisz zacząć od nowa.`,pageTitle:"Konfiguracja uwierzytelniania | ${clientName}",unexpectedError:`Coś poszło nie tak. Spróbuj ponownie.`,enrollmentComplete:`Rejestracja MFA została zakończona. Możesz zamknąć tę stronę.`},"mfa-totp-challenge":{title:`Zweryfikuj swoją tożsamość`,description:`Wprowadź 6-cyfrowy kod z aplikacji uwierzytelniającej`,codePlaceholder:`Wprowadź kod`,continueButtonText:`Kontynuuj`,"invalid-code":`Wprowadzony kod jest nieprawidłowy`,"transaction-not-found":`Twoja transakcja rejestracji wygasła, musisz zacząć od nowa.`,unexpectedError:`Coś poszło nie tak. Spróbuj ponownie.`,pageTitle:"Weryfikacja tożsamości | ${clientName}"}},"mfa-phone":{"mfa-phone-challenge":{pageTitle:"Użyj swojego numeru telefonu, aby się zalogować | ${clientName}",title:`Zweryfikuj swoją tożsamość`,description:"Wysłaliśmy kod na ${phoneNumber}",continueButtonText:`Kontynuuj`,changePhoneText:`Wybierz inny numer telefonu.`,smsButtonText:`Wiadomość tekstowa`,voiceButtonText:`Połączenie głosowe`,chooseMessageTypeText:`Jak chcesz otrzymać kod?`,pickAuthenticatorText:`Wypróbuj inną metodę`,logoAltText:"${companyName}",codePlaceholder:`Wpisz kod`,"send-sms-failed":`Wystąpił problem z wysłaniem SMS-a`,"send-voice-failed":`Wystąpił problem z wykonaniem połączenia głosowego`,"invalid-phone-format":`Numer telefonu może zawierać tylko cyfry.`,"invalid-phone":`Wygląda na to, że Twój numer telefonu jest nieprawidłowy. Sprawdź i spróbuj ponownie.`,"too-many-sms":`Przekroczono maksymalną liczbę wiadomości telefonicznych na godzinę. Poczekaj kilka minut i spróbuj ponownie.`,"too-many-voice":`Przekroczono maksymalną liczbę połączeń telefonicznych na godzinę. Poczekaj kilka minut i spróbuj ponownie.`,"transaction-not-found":`Twoja transakcja rejestracji wygasła, musisz zacząć od nowa.`,"no-phone":`Wpisz numer telefonu`,noCode:`Wprowadź kod weryfikacyjny`,invalidCode:`Wprowadzony kod jest nieprawidłowy. Spróbuj ponownie.`,unexpectedError:`Coś poszło nie tak. Spróbuj ponownie.`,resendSuccess:`Wysłaliśmy nowy kod na Twój telefon`,enrollmentComplete:`Rejestracja MFA została zakończona. Możesz zamknąć tę stronę.`},"mfa-phone-enrollment":{pageTitle:"Wpisz swój numer telefonu, aby zalogować się kodem telefonicznym | ${clientName}",title:`Zabezpiecz swoje konto`,description:`Wpisz kod kraju i numer telefonu, na który możemy wysłać 6-cyfrowy kod:`,continueButtonText:`Kontynuuj`,smsButtonText:`Wiadomość tekstowa`,voiceButtonText:`Połączenie głosowe`,chooseMessageTypeText:`Jak chcesz otrzymać kod?`,pickAuthenticatorText:`Wypróbuj inną metodę`,placeholder:`Wpisz swój numer telefonu`,logoAltText:"${companyName}",selectCountryCode:"Wybierz kod kraju, aktualnie ustawiony na ${countryName}, ${countryCode}, +${countryPrefix}","send-sms-failed":`Wystąpił problem z wysłaniem SMS-a`,"send-voice-failed":`Wystąpił problem z wykonaniem połączenia głosowego`,"sms-authenticator-error":`Nie udało się wysłać SMS-a. Spróbuj ponownie później.`,"invalid-phone-format":`Numer telefonu może zawierać tylko cyfry.`,"invalid-phone":`Wygląda na to, że Twój numer telefonu jest nieprawidłowy. Sprawdź i spróbuj ponownie.`,"too-many-sms":`Przekroczono maksymalną liczbę wiadomości telefonicznych na godzinę. Poczekaj kilka minut i spróbuj ponownie.`,"too-many-voice":`Przekroczono maksymalną liczbę połączeń telefonicznych na godzinę. Poczekaj kilka minut i spróbuj ponownie.`,"transaction-not-found":`Twoja transakcja rejestracji wygasła, musisz zacząć od nowa.`,"no-phone":`Wpisz numer telefonu`,"phone-is-too-short":`Numer telefonu jest za krótki`,"phone-is-too-long":`Numer telefonu jest za długi`}},"mfa-login-options":{"mfa-login-options":{pageTitle:"Wybierz metodę weryfikacji | ${clientName}",title:`Wybierz metodę weryfikacji`,description:`Wybierz, w jaki sposób chcesz zweryfikować swoją tożsamość`,authenticatorAppLabel:`Aplikacja uwierzytelniająca`,authenticatorAppDescription:`Użyj aplikacji uwierzytelniającej, aby uzyskać kod weryfikacyjny`,smsLabel:`Wiadomość tekstowa`,smsDescription:`Otrzymaj kod weryfikacyjny wysłany na swój telefon`,passkeyLabel:`Klucz dostępu`,passkeyDescription:`Użyj biometrii urządzenia lub klucza bezpieczeństwa`}},"mfa-push":{"mfa-push":{description:`Wysłaliśmy powiadomienie na Twoje urządzenie`,pageTitle:"Powiadomienie push | ${clientName}",resendText:`Wyślij ponownie powiadomienie`,title:`Zatwierdź żądanie`,useCodeText:`Wprowadź kod ręcznie`}},"mfa-recovery-code":{"mfa-recovery-code":{buttonText:`Kontynuuj`,codePlaceholder:`Kod odzyskiwania`,description:`Wprowadź jeden z kodów odzyskiwania`,"invalid-code":`Wprowadzony kod odzyskiwania jest nieprawidłowy`,pageTitle:"Kod odzyskiwania | ${clientName}",title:`Wprowadź kod odzyskiwania`}},"mfa-voice":{"mfa-voice":{buttonText:`Zadzwoń do mnie`,codePlaceholder:`Wprowadź kod`,description:"Zadzwonimy na ${phoneNumber} z Twoim kodem","invalid-code":`Wprowadzony kod jest nieprawidłowy`,pageTitle:"Połączenie głosowe | ${clientName}",title:`Odbierz połączenie telefoniczne`}},"mfa-webauthn":{"mfa-webauthn":{buttonText:`Spróbuj ponownie`,description:`Włóż klucz bezpieczeństwa i postępuj zgodnie z instrukcjami`,pageTitle:"Klucz bezpieczeństwa | ${clientName}",title:`Użyj klucza bezpieczeństwa`}},passkeys:uc,organizations:dc,"reset-password":{"reset-password":{backToLoginText:`Wróć do logowania`,buttonText:`Kontynuuj`,codeExpired:`Kod resetu hasła wygasł. Poproś o nowy.`,confirmPasswordLabel:`Potwierdź hasło`,confirmPasswordPlaceholder:`Potwierdź hasło`,description:`Wprowadź swój adres e-mail, aby zresetować hasło`,emailPlaceholder:`Adres e-mail`,failed:`Reset hasła nie powiódł się. Spróbuj ponownie.`,"invalid-email-format":`Nieprawidłowy adres e-mail`,"no-email":`Wprowadź adres e-mail`,pageTitle:"Resetowanie hasła | ${clientName}",passwordLabel:`Nowe hasło`,passwordPlaceholder:`Nowe hasło`,passwordTooWeak:`Hasło jest zbyt słabe`,passwordsDidntMatch:`Hasła nie są zgodne`,successDescription:`Wysłaliśmy link do resetowania hasła na Twój adres e-mail.`,successTitle:`Sprawdź swoją pocztę`,title:`Zapomniałeś hasła?`,"user-not-found":`Nie znaleziono użytkownika`},"reset-password-code":{backToLoginText:`Wróć do logowania`,buttonText:`Zresetuj hasło`,codeLabel:`Kod resetowania`,codePlaceholder:`Wprowadź 6-cyfrowy kod`,confirmPasswordLabel:`Potwierdź hasło`,confirmPasswordPlaceholder:`Potwierdź hasło`,defaultDescription:`Wprowadź kod wysłany na Twój e-mail i wybierz nowe hasło`,description:"Wysłaliśmy kod na ${email}",failed:`Reset hasła nie powiódł się. Spróbuj ponownie.`,invalidCode:`Wprowadzony kod jest nieprawidłowy lub wygasł`,noCode:`Wprowadź kod resetowania`,pageTitle:"Wprowadź kod resetowania | ${clientName}",passwordLabel:`Nowe hasło`,passwordPlaceholder:`Nowe hasło`,passwordTooWeak:`Hasło jest zbyt słabe`,passwordsDidntMatch:`Hasła nie są zgodne`,resendFailed:`Nie udało się ponownie wysłać kodu. Spróbuj ponownie.`,resendSuccess:`Nowy kod został wysłany na Twój e-mail`,resendText:`Wyślij kod ponownie`,sessionExpired:`Twoja sesja wygasła. Spróbuj ponownie.`,title:`Wprowadź kod resetowania`}},signup:fc,"signup-id":{"signup-id":{buttonText:`Kontynuuj`,description:`Zarejestruj się, aby kontynuować`,"email-already-exists":`Ten adres e-mail jest już zarejestrowany`,emailPlaceholder:`Adres e-mail`,federatedConnectionButtonText:"Kontynuuj z ${connectionName}","invalid-email-format":`Nieprawidłowy adres e-mail`,loginActionLinkText:`Zaloguj się`,loginActionText:`Masz już konto?`,"no-email":`Wprowadź adres e-mail`,pageTitle:"Rejestracja | ${clientName}",phonePlaceholder:`Numer telefonu`,separatorText:`lub`,title:`Utwórz konto`,usernamePlaceholder:`Nazwa użytkownika`}},"signup-password":{"signup-password":{buttonText:`Kontynuuj`,description:`Utwórz swoje hasło`,hidePasswordText:`Ukryj hasło`,"no-password":`Hasło jest wymagane`,pageTitle:"Rejestracja | ${clientName}","password-policy-not-met":`Hasło nie spełnia wymagań`,"password-too-weak":`Hasło jest zbyt słabe`,passwordPlaceholder:`Hasło`,showPasswordText:`Pokaż hasło`,title:`Utwórz hasło`}},"sms-otp-challenge":{"sms-otp-challenge":{buttonText:`Kontynuuj`,codeLabel:`Kod weryfikacyjny`,codePlaceholder:`Wprowadź kod`,defaultDescription:`Wprowadź kod weryfikacyjny wysłany na Twój telefon`,description:"Wysłaliśmy kod na ${username}","invalid-code":`Nieprawidłowy kod`,noCode:`Wprowadź kod weryfikacyjny`,pageTitle:"Wprowadź kod | ${clientName}",resendText:`Wyślij ponownie kod`,sessionExpired:`Twoja sesja wygasła. Spróbuj ponownie.`,title:`Sprawdź swój telefon`,unexpectedError:`Wystąpił nieoczekiwany błąd`}},status:pc},hc=c({common:()=>gc,consent:()=>_c,default:()=>Tc,invitation:()=>vc,login:()=>yc,mfa:()=>bc,organizations:()=>Sc,passkeys:()=>xc,signup:()=>Cc,status:()=>wc}),gc={common:{alertListTitle:`Meddelanden`,backText:`Gå tillbaka`,cancelText:`Gå tillbaka`,closeText:`Stäng`,contactSupportText:`Behöver du hjälp?`,continueText:`Fortsätt`,copyrightText:"© ${currentYear} ${companyName}",errorText:`Något gick fel. Vänligen försök igen.`,hidePasswordText:`Dölj lösenord`,loadingText:`Laddar...`,orText:`eller`,privacyPolicyText:`Integritetspolicy`,showPasswordText:`Visa lösenord`,termsOfServiceText:`Användarvillkor`,termsShortText:`Villkor`,tryAgainText:`Försök igen`}},_c={consent:{buttonText:`Godkänn`,cancelButtonText:`Neka`,description:"${clientName} begär åtkomst till ditt konto",pageTitle:"Auktorisera | ${clientName}",scopesTitle:"Detta ger ${clientName} tillåtelse att:",title:"Auktorisera ${clientName}"}},vc={invitation:{acceptButtonText:`Acceptera inbjudan`,description:"${inviterName} har bjudit in dig att gå med i ${organizationName} på ${clientName}",pageTitle:"Inbjudan | ${clientName}",title:`Du har blivit inbjuden`}},yc={login:{alertListTitle:`Meddelanden`,buttonText:`Fortsätt`,description:"Logga in på ${clientName}.",editEmailText:`Redigera`,emailPlaceholder:`E-postadress`,enterACodeBtn:`Logga in med en kod`,federatedConnectionButtonText:"Fortsätt med ${connectionName}",footerLinkText:`Registrera dig`,footerText:`Har du inget konto?`,forgotPasswordText:`Har du glömt lösenordet?`,hidePasswordText:`Dölj lösenord`,invalidEmail:`Ogiltig e-postadress`,invalidIdentifier:`Ogiltig e-postadress eller användarnamn`,invitationDescription:"Logga in för att acceptera ${inviterName}s inbjudan att gå med i ${companyName} på ${clientName}.",invitationTitle:`Du har blivit inbjuden!`,logoAltText:"${companyName}","no-email":`Vänligen ange en e-postadress`,"no-password":`Lösenord krävs`,pageTitle:"Logga in | ${clientName}",passwordLoginNotAvailable:`Lösenordsinloggning är inte tillgänglig`,passwordPlaceholder:`Lösenord`,phonePlaceholder:`Telefonnummer`,separatorText:`eller`,sessionExpired:`Din session har gått ut. Försök igen.`,showPasswordText:`Visa lösenord`,signupActionLinkText:`Registrera dig`,signupActionText:`Har du inget konto?`,title:`Välkommen`,tooManyFailedLogins:`För många misslyckade inloggningsförsök. Försök igen senare.`,unverifiedEmail:`Verifiera din e-postadress innan du loggar in`,userAccountDoesNotExist:`Användarkontot finns inte`,usernamePlaceholder:`Användarnamn eller e-postadress`,usernameTooLong:"Användarnamnet får vara högst ${max} tecken",usernameTooShort:"Användarnamnet måste vara minst ${min} tecken",wrongCredentials:`Fel användarnamn eller lösenord`,passkeyButtonText:`Logga in med passkey`}},bc={mfa:{backupCodeText:`Använd reservkod`,description:`Välj en verifieringsmetod`,pageTitle:"Multifaktorautentisering | ${clientName}",title:`Verifiera din identitet`}},xc={"passkey-enrollment-nudge":{title:`Skydda ditt konto med en nyckel`,description:`Nycklar använder enhetens biometri eller PIN-kod för att logga in snabbare och säkrare.`,enrollButtonText:`Konfigurera nyckel`,snoozeButtonText:`Kanske senare`,optOutLinkText:`Visa inte detta igen`,pageTitle:"Konfigurera Nyckel | ${clientName}"},"passkey-enrollment":{title:`Skapa din nyckel`,description:`Följ anvisningarna från din webbläsare för att skapa en nyckel för detta konto.`,errorMessage:`Det gick inte att skapa nyckeln. Försök igen.`,cancelLinkText:`Hoppa över för nu`,retryButtonText:`Försök igen`,enrollmentComplete:`Din nyckel har konfigurerats. Du kan stänga denna sida.`,pageTitle:"Skapa Nyckel | ${clientName}"},"passkey-challenge":{title:`Logga in med passkey`,description:`Följ instruktionerna från din webbläsare för att verifiera din identitet.`,errorMessage:`Autentisering med passkey misslyckades. Försök igen.`,cancelLinkText:`Tillbaka till inloggning`,retryButtonText:`Försök igen`,pageTitle:"Logga in med passkey | ${clientName}"}},Sc={organizations:{description:`Välj vilken organisation du vill logga in på`,pageTitle:"Välj organisation | ${clientName}",searchPlaceholder:`Sök organisationer`,title:`Välj din organisation`}},Cc={signup:{buttonText:`Registrera dig`,confirmPasswordPlaceholder:`Bekräfta lösenord`,description:`Välj ett lösenord med en blandning av stora och små bokstäver, siffror och symboler.`,"email-already-exists":`E-postadressen är redan upptagen`,emailPlaceholder:`E-postadress`,federatedConnectionButtonText:"Fortsätt med ${connectionName}",hidePasswordText:`Dölj lösenord`,"invalid-email-format":`Ogiltig e-postadress`,loginActionLinkText:`Logga in`,loginActionText:`Har du redan ett konto?`,"no-email":`Vänligen ange en e-postadress`,"no-password":`Lösenord krävs`,"no-username":`Användarnamn krävs`,pageTitle:"Registrera dig | ${clientName}",passwordPlaceholder:`Lösenord`,passwordsDidntMatch:`Lösenorden matchar inte`,phonePlaceholder:`Telefonnummer`,privacyPolicyLinkText:`Integritetspolicy`,separatorText:`eller`,sessionExpired:`Din session har gått ut. Försök igen.`,showPasswordText:`Visa lösenord`,termsOfServiceLinkText:`Användarvillkor`,termsText:`Genom att registrera dig godkänner du våra`,title:`Välj lösenord`,"username-already-exists":`Användarnamnet är redan taget`,usernamePlaceholder:`Användarnamn`,verifyEmailText:`Kontrollera din e-post för att verifiera ditt konto`}},wc={status:{continueButtonText:`Fortsätt`,errorTitle:`Fel`,pageTitle:"Status | ${clientName}",successTitle:`Klart`,title:`Status`}},Tc={common:gc,consent:_c,"device-flow":{"device-flow":{buttonText:`Fortsätt`,codePlaceholder:`Ange kod`,description:`Ange koden som visas på din enhet`,"expired-code":`Koden har gått ut`,"invalid-code":`Koden du angav är ogiltig`,pageTitle:"Enhetsaktivering | ${clientName}",title:`Aktivera din enhet`}},"email-otp-challenge":{"email-otp-challenge":{buttonText:`Logga in`,codeLabel:`Verifieringskod`,codePlaceholder:`Ange kod`,defaultDescription:`Ange verifieringskoden som skickades till din e-post`,description:"Vi skickade en kod till ${email}","invalid-code":`Ogiltig kod`,noCode:`Ange verifieringskoden`,pageTitle:"Ange kod | ${clientName}",resendText:`Skicka koden igen`,sessionExpired:`Din session har gått ut. Försök igen.`,title:`Kolla din e-post`,unexpectedError:`Ett oväntat fel uppstod`}},"email-verification":{"email-verification":{description:"Vi skickade ett e-postmeddelande till ${email}",pageTitle:"Verifiera e-post | ${clientName}",resendText:`Skicka koden igen`,successDescription:`Din e-postadress har verifierats.`,successTitle:`E-post verifierad`,title:`Ange engångskod`}},invitation:vc,login:yc,"login-id":{"login-id":{alertListTitle:`Meddelanden`,"auth0-users-validation":`Något gick fel, försök igen senare`,"authentication-failure":`Vi beklagar, något gick fel vid inloggningsförsöket`,buttonText:`Fortsätt`,"captcha-client-failure":`Vi kunde inte ladda säkerhetsutmaningen. Försök igen. (Felkod: #{errorCode})`,"captcha-validation-failure":`Vi beklagar, något gick fel vid validering av captcha-svaret. Försök igen.`,captchaCodePlaceholder:`Ange koden som visas ovan`,"custom-script-error-code":`Något gick fel, försök igen senare.`,description:"Logga in på ${clientName}.",editEmailText:`Redigera`,emailPlaceholder:`E-postadress`,federatedConnectionButtonText:"Fortsätt med ${connectionName}",footerLinkText:`Registrera dig`,footerText:`Har du inget konto?`,forgotPasswordText:`Har du glömt lösenordet?`,hidePasswordText:`Dölj lösenord`,"invalid-captcha":`Lös utmaningen för att verifiera att du inte är en robot.`,"invalid-code":`Ogiltig kod`,"invalid-connection":`Ogiltig anslutning`,"invalid-email-format":`Ogiltig e-postadress`,"invalid-email-phone":`Ange en giltig e-postadress eller telefonnummer. Telefonnummer måste innehålla landskod.`,"invalid-email-phone-username":`Ange en giltig e-postadress, telefonnummer eller användarnamn. Telefonnummer måste innehålla landskod.`,"invalid-email-username":`Ange en giltig e-postadress eller användarnamn`,"invalid-expired-code":`Ogiltig eller utgången användarkod`,"invalid-login-id":`Ogiltigt inloggnings-ID angivet`,"invalid-phone-username":`Ange ett giltigt telefonnummer eller användarnamn. Telefonnummer måste innehålla landskod.`,"invalid-recaptcha":`Markera kryssrutan för att verifiera att du inte är en robot.`,"invalid-username":"Användarnamn kan bara innehålla alfanumeriska tecken eller: '${characters}'. Användarnamn ska vara mellan ${min} och ${max} tecken.",invitationDescription:"Logga in för att acceptera ${inviterName}s inbjudan att gå med i ${companyName} på ${clientName}.",invitationTitle:`Du har blivit inbjuden!`,"ip-blocked":`Vi har upptäckt misstänkt inloggningsaktivitet och ytterligare försök kommer att blockeras. Kontakta administratören.`,logoAltText:"${companyName}","no-db-connection":`Ogiltig anslutning`,"no-email":`Vänligen ange en e-postadress`,"no-email-phone":`E-postadress eller telefonnummer krävs`,"no-email-phone-username":`Telefonnummer, användarnamn eller e-postadress krävs`,"no-email-username":`E-postadress eller användarnamn krävs`,"no-password":`Lösenord krävs`,"no-phone":`Ange ett telefonnummer`,"no-phone-username":`Telefonnummer eller användarnamn krävs`,"no-username":`Användarnamn krävs`,pageTitle:"Logga in | ${clientName}","password-breached":`Vi har upptäckt ett potentiellt säkerhetsproblem med detta konto. För att skydda ditt konto har vi förhindrat denna inloggning. Återställ ditt lösenord för att fortsätta.`,passwordPlaceholder:`Lösenord`,phoneOrEmailPlaceholder:`E-post eller telefonnummer`,phoneOrUsernameOrEmailPlaceholder:`Telefon, användarnamn eller e-post`,phoneOrUsernamePlaceholder:`Telefonnummer eller användarnamn`,phonePlaceholder:`Telefonnummer`,"same-user-login":`För många inloggningsförsök för denna användare. Vänta en stund och försök igen.`,selectCountryCode:"Välj landskod, för närvarande inställd på ${countryName}, ${countryCode}, +${countryPrefix}",separatorText:`eller`,sessionExpired:`Din session har gått ut. Försök igen.`,showPasswordText:`Visa lösenord`,signupActionLinkText:`Registrera dig`,signupActionText:`Har du inget konto?`,termsAndConditionsTemplate:'Genom att fortsätta godkänner du våra <a href="${termsAndConditionsUrl}" target="_blank" rel="noopener noreferrer">Villkor</a>.',title:`Välkommen`,"user-blocked":`Ditt konto har blockerats efter flera misslyckade inloggningsförsök i rad.`,userAccountDoesNotExist:`Användarkontot finns inte`,usernameOnlyPlaceholder:`Användarnamn`,usernameOrEmailPlaceholder:`Användarnamn eller e-postadress`,usernamePlaceholder:`Användarnamn`,usernameTooLong:"Användarnamnet får vara högst ${max} tecken",usernameTooShort:"Användarnamnet måste vara minst ${min} tecken","wrong-credentials":`Fel användarnamn eller lösenord`,"wrong-email-credentials":`Fel e-postadress eller lösenord`,"wrong-email-phone-credentials":`Fel e-postadress, telefonnummer eller lösenord. Telefonnummer måste innehålla landskod.`,"wrong-email-phone-username-credentials":`Fel e-postadress, telefonnummer, användarnamn eller lösenord. Telefonnummer måste innehålla landskod.`,"wrong-email-username-credentials":`Fel e-postadress, användarnamn eller lösenord`,"wrong-phone-credentials":`Fel telefonnummer eller lösenord`,"wrong-phone-username-credentials":`Fel telefonnummer, användarnamn eller lösenord. Telefonnummer måste innehålla landskod.`,"wrong-username-credentials":`Fel användarnamn eller lösenord`,passkeyButtonText:`Logga in med passkey`}},"login-password":{"login-password":{buttonText:`Logga in`,description:`Ange din e-postadress och ditt lösenord för att logga in.`,forgotPasswordText:`Har du glömt lösenordet?`,hidePasswordText:`Dölj lösenord`,"no-password":`Lösenord krävs`,pageTitle:"Logga in | ${clientName}","password-breached":`Vi har upptäckt ett potentiellt säkerhetsproblem med detta konto. För att skydda ditt konto har vi förhindrat denna inloggning. Återställ ditt lösenord för att fortsätta.`,passwordPlaceholder:`Lösenord`,showPasswordText:`Visa lösenord`,signingInAs:"Loggar in som ${email}",title:`Ange lösenord`,unverifiedEmail:`Verifiera din e-postadress innan du loggar in`,"user-blocked":`Ditt konto har blockerats efter flera misslyckade inloggningsförsök i rad.`,"wrong-credentials":`Fel lösenord`}},"login-passwordless":{"login-passwordless":{authMethodEmail:`e-post`,authMethodEmailOrPhone:`e-post eller telefonnummer`,authMethodPhone:`telefonnummer`,description:"Logga in med din ${authMethod}",emailOrPhonePlaceholder:`E-postadress eller telefonnummer`,emailPlaceholder:`E-postadress`,invalidEmail:`Ange en giltig e-postadress`,invalidIdentifier:`Ange en giltig e-postadress eller telefonnummer`,invalidPhone:`Ange ett giltigt telefonnummer med landskod`,noEmail:`Ange din e-postadress`,noPhone:`Ange ditt telefonnummer`,phonePlaceholder:`Telefonnummer`,sessionExpired:`Din session har gått ut. Försök igen.`,title:`Logga in med en kod`,userAccountDoesNotExist:`Användarkontot finns inte`}},"magic-link-sent":{"magic-link-sent":{defaultDescription:`Klicka på länken i ditt e-postmeddelande för att logga in`,description:"Vi skickade en länk till ${username}. Klicka på den för att logga in.",resendText:`Skicka länken igen`,spamText:`Fick du inte e-postmeddelandet? Kolla din skräppost.`,title:`Kolla din e-post`}},mfa:bc,"mfa-email":{"mfa-email":{buttonText:`Fortsätt`,codePlaceholder:`Ange kod`,description:"Vi skickade en kod till ${email}","invalid-code":`Koden du angav är ogiltig`,pageTitle:"E-postverifiering | ${clientName}",resendText:`Skicka koden igen`,title:`Kolla din e-post`}},"mfa-otp":{"mfa-otp":{buttonText:`Fortsätt`,codePlaceholder:`Ange kod`,description:`Ange den 6-siffriga koden från din autentiseringsapp`,"invalid-code":`Koden du angav är ogiltig`,pageTitle:"Ange kod | ${clientName}",title:`Ange din kod`},"mfa-totp-enrollment":{title:`Konfigurera autentiseringsapp`,description:`Skanna QR-koden nedan med din autentiseringsapp och ange sedan den 6-siffriga koden för att verifiera`,secretLabel:`Eller ange denna kod manuellt:`,codePlaceholder:`Ange kod`,continueButtonText:`Verifiera och aktivera`,"invalid-code":`Koden du angav är ogiltig. Försök igen.`,"transaction-not-found":`Din registreringstransaktion har gått ut, du behöver börja om.`,pageTitle:"Konfigurera autentiseringsapp | ${clientName}",unexpectedError:`Något gick fel. Försök igen.`,enrollmentComplete:`MFA-registreringen är klar. Du kan stänga denna sida.`},"mfa-totp-challenge":{title:`Verifiera din identitet`,description:`Ange den 6-siffriga koden från din autentiseringsapp`,codePlaceholder:`Ange kod`,continueButtonText:`Fortsätt`,"invalid-code":`Koden du angav är ogiltig`,"transaction-not-found":`Din registreringstransaktion har gått ut, du behöver börja om.`,unexpectedError:`Något gick fel. Försök igen.`,pageTitle:"Verifiera identitet | ${clientName}"}},"mfa-phone":{"mfa-phone-challenge":{pageTitle:"Använd ditt telefonnummer för att logga in | ${clientName}",title:`Verifiera din identitet`,description:"Vi skickade en kod till ${phoneNumber}",continueButtonText:`Fortsätt`,changePhoneText:`Välj ett annat telefonnummer.`,smsButtonText:`SMS`,voiceButtonText:`Röstsamtal`,chooseMessageTypeText:`Hur vill du ta emot koden?`,pickAuthenticatorText:`Prova en annan metod`,logoAltText:"${companyName}",codePlaceholder:`Ange kod`,"send-sms-failed":`Det gick inte att skicka SMS:et`,"send-voice-failed":`Det gick inte att ringa röstsamtalet`,"invalid-phone-format":`Telefonnumret kan bara innehålla siffror.`,"invalid-phone":`Det verkar som att ditt telefonnummer inte är giltigt. Kontrollera och försök igen.`,"too-many-sms":`Du har överskridit det maximala antalet telefonmeddelanden per timme. Vänta några minuter och försök igen.`,"too-many-voice":`Du har överskridit det maximala antalet telefonmeddelanden per timme. Vänta några minuter och försök igen.`,"transaction-not-found":`Din registreringstransaktion har gått ut, du behöver börja om.`,"no-phone":`Ange ett telefonnummer`,noCode:`Ange verifieringskoden`,invalidCode:`Koden du angav är ogiltig. Försök igen.`,unexpectedError:`Något gick fel. Försök igen.`,resendSuccess:`Vi skickade en ny kod till din telefon`,enrollmentComplete:`MFA-registreringen är klar. Du kan stänga denna sida.`},"mfa-phone-enrollment":{pageTitle:"Ange ditt telefonnummer för att logga in med en telefonkod | ${clientName}",title:`Säkra ditt konto`,description:`Ange din landskod och telefonnummer som vi kan skicka en 6-siffrig kod till:`,continueButtonText:`Fortsätt`,smsButtonText:`SMS`,voiceButtonText:`Röstsamtal`,chooseMessageTypeText:`Hur vill du ta emot koden?`,pickAuthenticatorText:`Prova en annan metod`,placeholder:`Ange ditt telefonnummer`,logoAltText:"${companyName}",selectCountryCode:"Välj landskod, för närvarande inställd på ${countryName}, ${countryCode}, +${countryPrefix}","send-sms-failed":`Det gick inte att skicka SMS:et`,"send-voice-failed":`Det gick inte att ringa röstsamtalet`,"sms-authenticator-error":`Vi kunde inte skicka SMS:et. Försök igen senare.`,"invalid-phone-format":`Telefonnumret kan bara innehålla siffror.`,"invalid-phone":`Det verkar som att ditt telefonnummer inte är giltigt. Kontrollera och försök igen.`,"too-many-sms":`Du har överskridit det maximala antalet telefonmeddelanden per timme. Vänta några minuter och försök igen.`,"too-many-voice":`Du har överskridit det maximala antalet telefonmeddelanden per timme. Vänta några minuter och försök igen.`,"transaction-not-found":`Din registreringstransaktion har gått ut, du behöver börja om.`,"no-phone":`Ange ett telefonnummer`,"phone-is-too-short":`Telefonnumret är för kort`,"phone-is-too-long":`Telefonnumret är för långt`}},"mfa-login-options":{"mfa-login-options":{pageTitle:"Välj verifieringsmetod | ${clientName}",title:`Välj din verifieringsmetod`,description:`Välj hur du vill verifiera din identitet`,authenticatorAppLabel:`Autentiseringsapp`,authenticatorAppDescription:`Använd din autentiseringsapp för att få en verifieringskod`,smsLabel:`Sms`,smsDescription:`Få en verifieringskod skickad till din telefon`,passkeyLabel:`Lösenordsnyckel`,passkeyDescription:`Använd din enhets biometri eller säkerhetsnyckel`}},"mfa-push":{"mfa-push":{description:`Vi skickade en notis till din enhet`,pageTitle:"Push-notis | ${clientName}",resendText:`Skicka notisen igen`,title:`Godkänn förfrågan`,useCodeText:`Ange kod manuellt`}},"mfa-recovery-code":{"mfa-recovery-code":{buttonText:`Fortsätt`,codePlaceholder:`Återställningskod`,description:`Ange en av dina återställningskoder`,"invalid-code":`Återställningskoden du angav är ogiltig`,pageTitle:"Återställningskod | ${clientName}",title:`Ange återställningskod`}},"mfa-voice":{"mfa-voice":{buttonText:`Ring mig`,codePlaceholder:`Ange kod`,description:"Vi ringer ${phoneNumber} med din kod","invalid-code":`Koden du angav är ogiltig`,pageTitle:"Röstsamtal | ${clientName}",title:`Ta emot ett telefonsamtal`}},"mfa-webauthn":{"mfa-webauthn":{buttonText:`Försök igen`,description:`Sätt in din säkerhetsnyckel och följ instruktionerna`,pageTitle:"Säkerhetsnyckel | ${clientName}",title:`Använd din säkerhetsnyckel`}},passkeys:xc,organizations:Sc,"reset-password":{"reset-password":{backToLoginText:`Gå tillbaka`,buttonText:`Skicka`,codeExpired:`Din kod för lösenordsåterställning har gått ut. Begär en ny.`,confirmPasswordLabel:`Bekräfta lösenord`,confirmPasswordPlaceholder:`Bekräfta lösenord`,description:`Klicka på knappen nedan så skickar vi instruktioner om hur du återställer ditt lösenord.`,emailPlaceholder:`E-postadress`,failed:`Lösenordsåterställningen misslyckades. Försök igen.`,"invalid-email-format":`Ogiltig e-postadress`,"no-email":`Vänligen ange en e-postadress`,pageTitle:"Återställ lösenord | ${clientName}",passwordLabel:`Nytt lösenord`,passwordPlaceholder:`Nytt lösenord`,passwordTooWeak:`Lösenordet är för svagt`,passwordsDidntMatch:`Lösenorden matchar inte`,successDescription:`Vi har skickat en länk för lösenordsåterställning till din e-postadress.`,successTitle:`Vi har skickat ett e-postmeddelande med instruktioner om hur du återställer ditt lösenord till den e-postadress du angav.`,title:`Har du glömt lösenordet?`,"user-not-found":`Användaren hittades inte`},"reset-password-code":{backToLoginText:`Tillbaka till inloggning`,buttonText:`Återställ lösenord`,codeLabel:`Återställningskod`,codePlaceholder:`Ange 6-siffrig kod`,confirmPasswordLabel:`Bekräfta lösenord`,confirmPasswordPlaceholder:`Bekräfta lösenord`,defaultDescription:`Ange koden som skickades till din e-post och välj ett nytt lösenord`,description:"Vi skickade en kod till ${email}",failed:`Lösenordsåterställningen misslyckades. Försök igen.`,invalidCode:`Koden du angav är ogiltig eller har gått ut`,noCode:`Vänligen ange återställningskoden`,pageTitle:"Ange återställningskod | ${clientName}",passwordLabel:`Nytt lösenord`,passwordPlaceholder:`Nytt lösenord`,passwordTooWeak:`Lösenordet är för svagt`,passwordsDidntMatch:`Lösenorden matchar inte`,resendFailed:`Kunde inte skicka koden igen. Försök igen.`,resendSuccess:`En ny kod har skickats till din e-post`,resendText:`Skicka koden igen`,sessionExpired:`Din session har gått ut. Försök igen.`,title:`Ange återställningskod`}},signup:Cc,"signup-id":{"signup-id":{buttonText:`Fortsätt`,description:`Välj ett lösenord med en blandning av stora och små bokstäver, siffror och symboler.`,"email-already-exists":`E-postadressen är redan upptagen`,emailPlaceholder:`E-postadress`,federatedConnectionButtonText:"Fortsätt med ${connectionName}","invalid-email-format":`Ogiltig e-postadress`,loginActionLinkText:`Logga in`,loginActionText:`Har du redan ett konto?`,"no-email":`Vänligen ange en e-postadress`,pageTitle:"Registrera dig | ${clientName}",phonePlaceholder:`Telefonnummer`,separatorText:`eller`,title:`Välj lösenord`,usernamePlaceholder:`Användarnamn`}},"signup-password":{"signup-password":{buttonText:`Fortsätt`,description:`Välj ett lösenord med en blandning av stora och små bokstäver, siffror och symboler.`,hidePasswordText:`Dölj lösenord`,"no-password":`Lösenord krävs`,pageTitle:"Registrera dig | ${clientName}","password-policy-not-met":`Lösenordet uppfyller inte kraven`,"password-too-weak":`Lösenordet är för svagt`,passwordPlaceholder:`Lösenord`,showPasswordText:`Visa lösenord`,title:`Välj lösenord`}},"sms-otp-challenge":{"sms-otp-challenge":{buttonText:`Fortsätt`,codeLabel:`Verifieringskod`,codePlaceholder:`Ange kod`,defaultDescription:`Ange verifieringskoden som skickades till din telefon`,description:"Vi skickade en kod till ${username}","invalid-code":`Ogiltig kod`,noCode:`Ange verifieringskoden`,pageTitle:"Ange kod | ${clientName}",resendText:`Skicka koden igen`,sessionExpired:`Din session har gått ut. Försök igen.`,title:`Kolla din telefon`,unexpectedError:`Ett oväntat fel uppstod`}},status:wc},Ec=[`cs`,`da`,`en`,`fi`,`it`,`nb`,`pl`,`sv`],Dc={cs:`Čeština`,da:`Dansk`,en:`English`,fi:`Suomi`,it:`Italiano`,nb:`Norsk`,pl:`Polski`,sv:`Svenska`};function Oc(e){return Dc[e]??e}var kc=Object.assign({"../../locales/cs.json":Ko,"../../locales/da.json":rs,"../../locales/en.json":ms,"../../locales/fi.json":Ts,"../../locales/it.json":Is,"../../locales/nb.json":qs,"../../locales/pl.json":ic,"../../locales/sv.json":hc}),Ac={};for(let[e,t]of Object.entries(kc)){let n=e.match(/\/(\w+)\.json$/)?.[1];n&&(Ac[n]=t.default||t)}var jc={},Mc=Ac.en;if(Mc)for(let[e,t]of Object.entries(Mc))for(let[n,r]of Object.entries(t)){let t={};for(let e of Object.keys(r))t[e]=f.z.string();jc[`${e}.${n}`]=f.z.object(t)}function Nc(e,t){if(!t)return e;let n=e;for(let[e,r]of Object.entries(t))if(r!==void 0){let t=e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);n=n.replace(RegExp(`\\$\\{${t}\\}`,`g`),String(r)).replace(RegExp(`#\\{${t}\\}`,`g`),String(r)).replace(RegExp(`\\{${t}\\}`,`g`),String(r))}return n}function Pc(e){let t=e.split(`-`)[0]?.toLowerCase()||`en`;return Ec.includes(t)?t:`en`}function Fc(e,t,n,r){let i=Pc(n),a=Ac.en?.[e]?.[t]??{},o=Ac[i]?.[e]?.[t]??{},s={...a,...o},c=r?.[t]??{},l={...s,...c},u=jc[`${e}.${t}`];if(u){let n=u.safeParse(l);n.success||console.warn(`[i18n] Missing translations for ${e}.${t} (${i}):`,n.error.issues.map(e=>e.path.join(`.`)).join(`, `))}let d={};for(let[e,t]of Object.entries(l))d[e]=e=>Nc(t,e);return{m:new Proxy(d,{get:(e,t)=>e[t]??(()=>t)}),locale:i}}function Ic(e){let t=e?.language?.split(`-`)[0]?.toLowerCase(),n=[];for(let[r,i]of Object.entries(Ac))if(!(t&&r!==t))for(let[t,a]of Object.entries(i))e?.prompt&&t!==e.prompt||n.push({prompt:t,language:r,custom_text:a});return n}var Lc={Stringify:1,BeforeStream:2,Stream:3},Rc=(e,t)=>{let n=new String(e);return n.isEscaped=!0,n.callbacks=t,n},zc=/[&<>'"]/,Bc=async(e,t)=>{let n=``;t||=[];let r=await Promise.all(e);for(let e=r.length-1;n+=r[e],e--,!(e<0);e--){let i=r[e];typeof i==`object`&&t.push(...i.callbacks||[]);let a=i.isEscaped;if(i=await(typeof i==`object`?i.toString():i),typeof i==`object`&&t.push(...i.callbacks||[]),i.isEscaped??a)n+=i;else{let e=[n];Vc(i,e),n=e[0]}}return Rc(n,t)},Vc=(e,t)=>{let n=e.search(zc);if(n===-1){t[0]+=e;return}let r,i,a=0;for(i=n;i<e.length;i++){switch(e.charCodeAt(i)){case 34:r=`"`;break;case 39:r=`'`;break;case 38:r=`&`;break;case 60:r=`<`;break;case 62:r=`>`;break;default:continue}t[0]+=e.substring(a,i)+r,a=i+1}t[0]+=e.substring(a,i)},Hc=e=>{let t=e.callbacks;if(!t?.length)return e;let n=[e],r={};return t.forEach(e=>e({phase:Lc.Stringify,buffer:n,context:r})),n[0]},Uc=async(e,t,n,r,i)=>{typeof e==`object`&&!(e instanceof String)&&(e instanceof Promise||(e=e.toString()),e instanceof Promise&&(e=await e));let a=e.callbacks;if(!a?.length)return Promise.resolve(e);i?i[0]+=e:i=[e];let o=Promise.all(a.map(e=>e({phase:t,buffer:i,context:r}))).then(e=>Promise.all(e.filter(Boolean).map(e=>Uc(e,t,!1,r,i))).then(()=>i[0]));return n?Rc(await o,a):o},Wc=Symbol(`RENDERER`),Gc=Symbol(`ERROR_HANDLER`),Kc=Symbol(`STASH`),qc=Symbol(`INTERNAL`),Jc=Symbol(`MEMO`),Yc=Symbol(`PERMALINK`),Xc=e=>(e[qc]=!0,e),Zc=e=>({value:t,children:n})=>{if(!n)return;let r={children:[{tag:Xc(()=>{e.push(t)}),props:{}}]};Array.isArray(n)?r.children.push(...n.flat()):r.children.push(n),r.children.push({tag:Xc(()=>{e.pop()}),props:{}});let i={tag:``,props:r,type:``};return i[Gc]=t=>{throw e.pop(),t},i},Qc=e=>{let t=[e],n=Zc(t);return n.values=t,n.Provider=n,$c.push(n),n},$c=[],el=e=>{let t=[e],n=(e=>{t.push(e.value);let n;try{n=e.children?(Array.isArray(e.children)?new Ol(``,{},e.children):e.children).toString():``}catch(e){throw t.pop(),e}return n instanceof Promise?n.finally(()=>t.pop()).then(e=>Rc(e,e.callbacks)):(t.pop(),Rc(n))});return n.values=t,n.Provider=n,n[Wc]=Zc(t),$c.push(n),n},tl=e=>e.values.at(-1),nl={title:[],script:[`src`],style:[`data-href`],link:[`href`],meta:[`name`,`httpEquiv`,`charset`,`itemProp`]},rl={},il=`data-precedence`,al=e=>e.rel===`stylesheet`&&`precedence`in e,ol=(e,t)=>e===`link`?t:nl[e].length>0,sl=e=>Array.isArray(e)?e:[e],cl=c({button:()=>ete,form:()=>Qee,input:()=>$ee,link:()=>Xee,meta:()=>Zee,script:()=>Jee,style:()=>Yee,title:()=>qee}),ll=new WeakMap,ul=(e,t,n,r)=>({buffer:i,context:a})=>{if(!i)return;let o=ll.get(a)||{};ll.set(a,o);let s=o[e]||=[],c=!1,l=nl[e],u=ol(e,r!==void 0);if(u){LOOP:for(let[,t]of s)if(!(e===`link`&&!(t.rel===`stylesheet`&&t[`data-precedence`]!==void 0))){for(let e of l)if((t?.[e]??null)===n?.[e]){c=!0;break LOOP}}}if(c?i[0]=i[0].replaceAll(t,``):u||e===`link`?s.push([t,n,r]):s.unshift([t,n,r]),i[0].indexOf(`</head>`)!==-1){let t;if(e===`link`||r!==void 0){let e=[];t=s.map(([t,,n],r)=>{if(n===void 0)return[t,2**53-1,r];let i=e.indexOf(n);return i===-1&&(e.push(n),i=e.length-1),[t,i,r]}).sort((e,t)=>e[1]-t[1]||e[2]-t[2]).map(([e])=>e)}else t=s.map(([e])=>e);t.forEach(e=>{i[0]=i[0].replaceAll(e,``)}),i[0]=i[0].replace(/(?=<\/head>)/,t.join(``))}},dl=(e,t,n)=>Rc(new El(e,n,sl(t??[])).toString()),fl=(e,t,n,r)=>{if(`itemProp`in n)return dl(e,t,n);let{precedence:i,blocking:a,...o}=n;i=r?i??``:void 0,r&&(o[il]=i);let s=new El(e,o,sl(t||[])).toString();return s instanceof Promise?s.then(t=>Rc(s,[...t.callbacks||[],ul(e,t,o,i)])):Rc(s,[ul(e,s,o,i)])},qee=({children:e,...t})=>{let n=wl();if(n){let r=tl(n);if(r===`svg`||r===`head`)return new El(`title`,t,sl(e??[]))}return fl(`title`,e,t,!1)},Jee=({children:e,...t})=>{let n=wl();return[`src`,`async`].some(e=>!t[e])||n&&tl(n)===`head`?dl(`script`,e,t):fl(`script`,e,t,!1)},Yee=({children:e,...t})=>[`href`,`precedence`].every(e=>e in t)?(t[`data-href`]=t.href,delete t.href,fl(`style`,e,t,!0)):dl(`style`,e,t),Xee=({children:e,...t})=>[`onLoad`,`onError`].some(e=>e in t)||t.rel===`stylesheet`&&(!(`precedence`in t)||`disabled`in t)?dl(`link`,e,t):fl(`link`,e,t,al(t)),Zee=({children:e,...t})=>{let n=wl();return n&&tl(n)===`head`?dl(`meta`,e,t):fl(`meta`,e,t,!1)},pl=(e,{children:t,...n})=>new El(e,n,sl(t??[])),Qee=e=>(typeof e.action==`function`&&(e.action=Yc in e.action?e.action[Yc]:void 0),pl(`form`,e)),ml=(e,t)=>(typeof t.formAction==`function`&&(t.formAction=Yc in t.formAction?t.formAction[Yc]:void 0),pl(e,t)),$ee=e=>ml(`input`,e),ete=e=>ml(`button`,e),tte=new Map([[`className`,`class`],[`htmlFor`,`for`],[`crossOrigin`,`crossorigin`],[`httpEquiv`,`http-equiv`],[`itemProp`,`itemprop`],[`fetchPriority`,`fetchpriority`],[`noModule`,`nomodule`],[`formAction`,`formaction`]]),hl=e=>tte.get(e)||e,nte=/[\s"'<>/=`\\\x00-\x1f\x7f-\x9f]/,gl=new Set,_l=1024,rte=/^[!?]|[\s"'<>/=`\\\x00-\x1f\x7f-\x9f]/,vl=new Set,ite=256,yl=(e,t,n)=>{e.size>=t&&e.clear(),e.add(n)},ate=e=>vl.has(e)?!0:typeof e==`string`?e.length===0?!0:rte.test(e)?!1:(yl(vl,ite,e),!0):!1,ote=e=>{if(gl.has(e))return!0;let t=e.length;if(t===0)return!1;for(let n=0;n<t;n++){let t=e.charCodeAt(n);if(!(t>=97&&t<=122||t>=65&&t<=90||t>=48&&t<=57||t===45||t===95||t===46||t===58))return nte.test(e)?!1:(yl(gl,_l,e),!0)}return yl(gl,_l,e),!0},ste=/[\s"'():;\\/\[\]{}\x00-\x1f\x7f-\x9f]/,bl=new Set,xl=1024,cte=e=>{if(bl.has(e))return!0;let t=e.length;if(t===0)return!1;for(let n=0;n<t;n++){let t=e.charCodeAt(n);if(!(t>=97&&t<=122||t>=65&&t<=90||t>=48&&t<=57||t===45||t===95))return ste.test(e)?!1:(yl(bl,xl,e),!0)}return yl(bl,xl,e),!0},lte=/[;"'\\/\[\](){}]/,ute=e=>{if(!lte.test(e))return!1;let t=0,n=[];for(let r=0,i=e.length;r<i;r++){let a=e.charCodeAt(r);if(a===92){if(r===i-1)return!0;r++}else if(t!==0){if(a===10||a===12||a===13)return!0;a===t&&(t=0)}else if(a===47&&e.charCodeAt(r+1)===42){let t=e.indexOf(`*/`,r+2);if(t===-1)return!0;r=t+1}else if(a===34||a===39)t=a;else if(a===40)n.push(41);else if(a===91)n.push(93);else if(a===123||a===125)return!0;else if(a===41||a===93){if(n[n.length-1]!==a)return!0;n.pop()}else if(a===59&&n.length===0)return!0}return t!==0||n.length!==0},Sl=(e,t)=>{for(let[n,r]of Object.entries(e)){let e=n[0]===`-`||!/[A-Z]/.test(n)?n:n.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`);if(!cte(e))continue;if(r==null){t(e,null);continue}let i;if(typeof r==`number`)i=e.match(/^(?:a|border-im|column(?:-c|s)|flex(?:$|-[^b])|grid-(?:ar|[^a])|font-w|li|or|sca|st|ta|wido|z)|ty$/)?`${r}`:`${r}px`;else if(typeof r==`string`){if(ute(r))continue;i=r}else continue;t(e,i)}},Cl=void 0,wl=()=>Cl,dte=e=>/[A-Z]/.test(e)&&e.match(/^(?:al|basel|clip(?:Path|Rule)$|co|do|fill|fl|fo|gl|let|lig|i|marker[EMS]|o|pai|pointe|sh|st[or]|text[^L]|tr|u|ve|w)/)?e.replace(/([A-Z])/g,`-$1`).toLowerCase():e,fte=[`area`,`base`,`br`,`col`,`embed`,`hr`,`img`,`input`,`keygen`,`link`,`meta`,`param`,`source`,`track`,`wbr`],pte=`allowfullscreen.async.autofocus.autoplay.checked.controls.default.defer.disabled.download.formnovalidate.hidden.inert.ismap.itemscope.loop.multiple.muted.nomodule.novalidate.open.playsinline.readonly.required.reversed.selected`.split(`.`),Tl=(e,t)=>{for(let n=0,r=e.length;n<r;n++){let r=e[n];if(typeof r==`string`)Vc(r,t);else if(typeof r==`boolean`||r==null)continue;else r instanceof El?r.toStringToBuffer(t):typeof r==`number`||r.isEscaped?t[0]+=r:r instanceof Promise?t.unshift(``,r):Tl(r,t)}},El=class{tag;props;key;children;isEscaped=!0;localContexts;constructor(e,t,n){if(typeof e!=`function`&&!ate(e))throw Error(`Invalid JSX tag name: ${e}`);this.tag=e,this.props=t,this.children=n}get type(){return this.tag}get ref(){return this.props.ref||null}toString(){let e=[``];this.localContexts?.forEach(([e,t])=>{e.values.push(t)});try{this.toStringToBuffer(e)}finally{this.localContexts?.forEach(([e])=>{e.values.pop()})}return e.length===1?`callbacks`in e?Hc(Rc(e[0],e.callbacks)).toString():e[0]:Bc(e,e.callbacks)}toStringToBuffer(e){let t=this.tag,n=this.props,{children:r}=this;e[0]+=`<${t}`;let i=t===`svg`||Cl&&tl(Cl)===`svg`?e=>dte(hl(e)):e=>hl(e);for(let[a,o]of Object.entries(n))if(a=i(a),ote(a)&&a!==`children`){if(a===`style`&&typeof o==`object`){let t=``;Sl(o,(e,n)=>{n!=null&&(t+=`${t?`;`:``}${e}:${n}`)}),e[0]+=` style="`,Vc(t,e),e[0]+=`"`}else if(typeof o==`string`)e[0]+=` ${a}="`,Vc(o,e),e[0]+=`"`;else if(o!=null)if(typeof o==`number`||o.isEscaped)e[0]+=` ${a}="${o}"`;else if(typeof o==`boolean`&&pte.includes(a))o&&(e[0]+=` ${a}=""`);else if(a===`dangerouslySetInnerHTML`){if(r.length>0)throw Error("Can only set one of `children` or `props.dangerouslySetInnerHTML`.");r=[Rc(o.__html)]}else if(o instanceof Promise)e[0]+=` ${a}="`,e.unshift(`"`,o);else if(typeof o==`function`){if(!a.startsWith(`on`)&&a!==`ref`)throw Error(`Invalid prop '${a}' of type 'function' supplied to '${t}'.`)}else e[0]+=` ${a}="`,Vc(o.toString(),e),e[0]+=`"`}if(fte.includes(t)&&r.length===0){e[0]+=`/>`;return}e[0]+=`>`,Tl(r,e),e[0]+=`</${t}>`}},Dl=class extends El{toStringToBuffer(e){let{children:t}=this,n={...this.props};t.length&&(n.children=t.length===1?t[0]:t);let r=this.tag.call(null,n);if(!(typeof r==`boolean`||r==null))if(r instanceof Promise)if($c.length===0)e.unshift(``,r);else{let t=$c.map(e=>[e,e.values.at(-1)]);e.unshift(``,r.then(e=>(e instanceof El&&(e.localContexts=t),e)))}else r instanceof El?r.toStringToBuffer(e):typeof r==`number`||r.isEscaped?(e[0]+=r,r.callbacks&&(e.callbacks||=[],e.callbacks.push(...r.callbacks))):Vc(r,e)}},Ol=class extends El{toStringToBuffer(e){Tl(this.children,e)}},kl=(e,t,...n)=>{t??={},n.length&&(t.children=n.length===1?n[0]:n);let r=t.key;delete t.key;let i=jl(e,t,n);return i.key=r,i},Al=!1,jl=(e,t,n)=>{if(!Al){for(let e in rl)cl[e][Wc]=rl[e];Al=!0}return typeof e==`function`?new Dl(e,t,n):cl[e]?new Dl(cl[e],t,n):e===`svg`||e===`head`?(Cl||=el(``),new El(e,t,[new Dl(Cl,{value:e},n)])):new El(e,t,n)},Ml=({children:e})=>new Ol(``,{children:e},Array.isArray(e)?e:e?[e]:[]),mte=(e,t,...n)=>{let r;if(n.length>0)r=n;else{let t=e.props.children;r=Array.isArray(t)?t:[t]}return kl(e.tag,{...e.props,...t},...r)};function z(e,t,n){let r;if(!t||!(`children`in t))r=jl(e,t,[]);else{let n=t.children;r=Array.isArray(n)?jl(e,t,n):jl(e,t,[n])}return r.key=n,r}function Nl(e,t){let n=Kee(e,`ah-dark-mode`);if(n===`dark`||n===`light`||n===`auto`)return n;let r=t?.dark_mode;return r===`dark`||r===`light`||r===`auto`?r:`auto`}var Pl={"--ah-color-text":`#f9fafb`,"--ah-color-text-muted":`#9ca3af`,"--ah-color-text-label":`#d1d5db`,"--ah-color-header":`#f9fafb`,"--ah-color-bg":`#1f2937`,"--ah-color-bg-hover":`#374151`,"--ah-color-bg-muted":`#374151`,"--ah-color-bg-disabled":`#4b5563`,"--ah-color-input-bg":`#374151`,"--ah-color-border":`#4b5563`,"--ah-color-border-hover":`#6b7280`,"--ah-color-border-muted":`#374151`,"--ah-color-error-bg":`rgba(220,38,38,0.2)`,"--ah-color-success-bg":`rgba(22,163,74,0.2)`,"--ah-color-link":`#60a5fa`};function Fl(e){let t=e.replace(`#`,``),n=parseInt(t,16);return[n>>16&255,n>>8&255,n&255]}function Il(e){let[t,n,r]=Fl(e).map(e=>{let t=e/255;return t<=.04045?t/12.92:((t+.055)/1.055)**2.4});return .2126*t+.7152*n+.0722*r}function Ll(e,t){let n=Il(e),r=Il(t);return(Math.max(n,r)+.05)/(Math.min(n,r)+.05)}function Rl(e,t){let[n,r,i]=Fl(e),a=e=>Math.min(255,Math.round(e+(255-e)*t)).toString(16).padStart(2,`0`);return`#${a(n)}${a(r)}${a(i)}`}function zl(e,t){let n={...Pl};if(t){let e=Pl[`--ah-color-bg`]||`#1f2937`;if(Ll(t,e)<3){let r=t;for(let n=1;n<=10&&(r=Rl(t,n*.1),!(Ll(r,e)>=3));n++);n[`--ah-color-primary`]=r,n[`--ah-color-primary-hover`]=r}let r=n[`--ah-color-primary`]||t,i=Ll(r,`#ffffff`);n[`--ah-color-text-on-primary`]=Ll(r,`#000000`)>i*1.35?`#000000`:`#ffffff`}return`${e} { ${Object.entries(n).map(([e,t])=>`${e}: ${t} !important`).join(`; `)}; }`}var hte=`(function(btn){var h=document.documentElement;var cur=h.classList.contains('ah-dark-mode')?'dark':h.classList.contains('ah-light-mode')?'light':'auto';var next=cur==='auto'?'dark':cur==='dark'?'light':'auto';h.classList.remove('ah-dark-mode','ah-light-mode');if(next==='dark'){h.classList.add('ah-dark-mode');h.setAttribute('data-mode','dark')}else if(next==='light'){h.classList.add('ah-light-mode');h.setAttribute('data-mode','light')}else{h.removeAttribute('data-mode')}btn.querySelector('.icon-sun').style.display=next==='light'?'block':'none';btn.querySelector('.icon-moon').style.display=next==='dark'?'block':'none';btn.querySelector('.icon-auto').style.display=next==='auto'?'block':'none';document.cookie='ah-dark-mode='+next+';path=/;max-age=31536000;SameSite=Lax';if(window.__ahDarkMode){window.__ahDarkMode(next)}})(this)`,gte=`var p=new URLSearchParams(window.location.search);p.set('ui_locales',this.value);window.location.search=p.toString()`;function Bl({logoUrl:e,clientName:t}){let n=e?Io(e):null;return z(`div`,{class:`ah-chip ah-chip-logo`,"data-ah-slot":`top-left`,children:n?z(`img`,{src:n,alt:t}):z(`span`,{class:`ah-logo-text`,children:t})})}function Vl({darkMode:e}){return z(`button`,{type:`button`,"aria-label":`Toggle dark mode`,onclick:hte,children:[z(`svg`,{class:`icon-auto`,width:`13`,height:`13`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2.2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,style:e===`auto`?void 0:`display:none`,children:[z(`circle`,{cx:`12`,cy:`12`,r:`9`}),z(`path`,{d:`M12 3a9 9 0 0 1 0 18`,fill:`currentColor`})]}),z(`svg`,{class:`icon-sun`,width:`13`,height:`13`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2.2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,style:e===`light`?void 0:`display:none`,children:[z(`circle`,{cx:`12`,cy:`12`,r:`5`}),z(`line`,{x1:`12`,y1:`1`,x2:`12`,y2:`3`}),z(`line`,{x1:`12`,y1:`21`,x2:`12`,y2:`23`}),z(`line`,{x1:`4.22`,y1:`4.22`,x2:`5.64`,y2:`5.64`}),z(`line`,{x1:`18.36`,y1:`18.36`,x2:`19.78`,y2:`19.78`}),z(`line`,{x1:`1`,y1:`12`,x2:`3`,y2:`12`}),z(`line`,{x1:`21`,y1:`12`,x2:`23`,y2:`12`})]}),z(`svg`,{class:`icon-moon`,width:`13`,height:`13`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2.2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,style:e===`dark`?void 0:`display:none`,children:z(`path`,{d:`M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z`})})]})}function Hl({language:e,availableLanguages:t}){return!t||t.length<2?null:z(`div`,{class:`ah-lang`,children:[z(`svg`,{width:`13`,height:`13`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2.2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,children:[z(`circle`,{cx:`12`,cy:`12`,r:`10`}),z(`path`,{d:`M2 12h20`}),z(`path`,{d:`M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z`})]}),z(`select`,{"aria-label":`Language`,onchange:gte,children:t.map(t=>z(`option`,{value:t,selected:t===e,children:Oc(t)}))})]})}function Ul({darkMode:e,language:t,availableLanguages:n}){return z(`div`,{class:`ah-chip ah-chip-settings`,"data-ah-slot":`top-right`,children:[z(Vl,{darkMode:e}),n&&z(Hl,{language:t,availableLanguages:n})]})}function Wl({url:e,href:t,alt:n,height:r}){let i=Io(e),a=t?Io(t):null;if(!i)return null;let o=z(`img`,{src:i,alt:n||``,height:r||18});return z(`div`,{class:`ah-chip ah-chip-trust`,"data-ah-slot":`bottom-left`,children:a?z(`a`,{href:a,target:`_blank`,rel:`noopener noreferrer`,children:o}):o})}function Gl({termsAndConditionsUrl:e,language:t}){if(!e)return null;let{m:n}=Fc(`common`,`common`,t||`en`);return z(`div`,{class:`ah-chip-legal`,"data-ah-slot":`bottom-right`,children:z(`a`,{href:e,target:`_blank`,rel:`noopener noreferrer`,children:n.termsShortText()})})}function Kl(e,t){let n=[],r=Lo(e?.colors?.primary);r&&n.push(`--ah-color-primary: ${r}`);let i=Lo(t?.colors?.primary_button)||r;if(i){let e=Ll(i,`#ffffff`),t=Ll(i,`#000000`)>e*1.35?`#000000`:`#ffffff`;n.push(`--ah-color-text-on-primary: ${t}`)}return n.length>0?n.join(`; `)+`; width: clamp(320px, 100%, 400px);`:`width: clamp(320px, 100%, 400px);`}function _te(e){let{primaryColor:t,themePrimary:n,widgetBackground:r}=e;return`
|
|
2
2
|
* { box-sizing: border-box; margin: 0; padding: 0; }
|
|
3
3
|
|
|
4
4
|
/* ============= CHROME TOKENS =============
|
|
@@ -204,7 +204,7 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.
|
|
|
204
204
|
top: auto; bottom: 12px; right: 12px;
|
|
205
205
|
}
|
|
206
206
|
}
|
|
207
|
-
`}function ql({widgetHtml:e,screenId:t,branding:n,theme:r,themePageBackground:i,clientName:a,poweredByLogo:o,language:s,availableLanguages:c,termsAndConditionsUrl:l,darkMode:u=`auto`,logoPosition:d,extraScript:f,customBodyHtml:p}){let m=d??r?.page_background?.logo_placement??`widget`,h=Lo(n?.colors?.primary),g=Ro(i,n?.colors?.page_background),_=!!i?.background_image_url,v=Io(n?.favicon_url),y=Io(n?.font?.url),b=Lo(r?.colors?.widget_background)||`#ffffff`,x=n?.logo_url?Io(n.logo_url):null,S=i?.page_layout||`center`,C={minHeight:`100vh`,display:`flex`,alignItems:`center`,justifyContent:S===`left`?`flex-start`:S===`right`?`flex-end`:`center`,background:g,fontFamily:y?`'Inter', system-ui, sans-serif`:`system-ui, -apple-system, sans-serif`,padding:S===`left`?`20px 20px 20px 80px`:S===`right`?`20px 80px 20px 20px`:`20px`},w=Kl(n,r),T=u===`dark`?`ah-dark-mode`:u===`light`?`ah-light-mode`:void 0,ee=u===`dark`?`dark`:u===`light`?`light`:void 0,E={...Pl},te=Lo(r?.colors?.primary_button)||h;if(te){let e=Pl[`--ah-color-bg`]||`#1f2937`;if(Ll(te,e)<3){let t=te;for(let n=1;n<=10&&(t=Rl(te,n*.1),!(Ll(t,e)>=3));n++);E[`--ah-color-primary`]=t,E[`--ah-color-primary-hover`]=t}let t=E[`--ah-color-primary`]||te,n=Ll(t,`#ffffff`);E[`--ah-color-text-on-primary`]=Ll(t,`#000000`)>n*1.35?`#000000`:`#ffffff`}let ne=JSON.stringify(E),D=_te({primaryColor:h,themePrimary:Lo(r?.colors?.primary_button),widgetBackground:b}),re=z(Bl,{logoUrl:x,clientName:a}),ie=z(Ul,{darkMode:u,language:s,availableLanguages:c}),O=o?z(Wl,{url:o.url,href:o.href,alt:o.alt,height:o.height}):null,ae=z(Gl,{termsAndConditionsUrl:l,language:s});return z(`html`,{lang:s||`en`,class:T,"data-mode":ee,"data-bg":_?`image`:`none`,"data-logo-position":m,children:[z(`head`,{children:[z(`meta`,{charSet:`UTF-8`}),z(`meta`,{name:`viewport`,content:`width=device-width, initial-scale=1.0`}),z(`title`,{children:[`Sign in - `,a]}),v&&z(`link`,{rel:`icon`,href:v}),y&&z(`link`,{rel:`stylesheet`,href:y}),z(`style`,{dangerouslySetInnerHTML:{__html:D}}),z(`script`,{type:`module`,src:`/u/widget/authhero-widget.esm.js?v=${Go}`})]}),z(`body`,{style:C,children:[_&&z(`div`,{class:`ah-bg-tint`,"aria-hidden":`true`}),p?z(`div`,{dangerouslySetInnerHTML:{__html:p}}):z(Ml,{children:[z(`div`,{class:`widget-container`,"data-authhero-widget-container":!0,"data-screen":t,style:w,dangerouslySetInnerHTML:{__html:e}}),re,ie,O,ae]}),f&&z(`script`,{dangerouslySetInnerHTML:{__html:f}}),z(`script`,{dangerouslySetInnerHTML:{__html:`(function(){
|
|
207
|
+
`}function ql({widgetHtml:e,screenId:t,branding:n,theme:r,themePageBackground:i,clientName:a,poweredByLogo:o,language:s,availableLanguages:c,termsAndConditionsUrl:l,darkMode:u=`auto`,logoPosition:d,extraScript:f,customBodyHtml:p}){let m=d??r?.page_background?.logo_placement??`widget`,h=Lo(n?.colors?.primary),g=Ro(i,n?.colors?.page_background),_=!!i?.background_image_url,v=Io(n?.favicon_url),y=Io(n?.font?.url),b=Lo(r?.colors?.widget_background)||`#ffffff`,x=n?.logo_url?Io(n.logo_url):null,S=i?.page_layout||`center`,C={minHeight:`100vh`,display:`flex`,alignItems:`center`,justifyContent:S===`left`?`flex-start`:S===`right`?`flex-end`:`center`,background:g,fontFamily:y?`'Inter', system-ui, sans-serif`:`system-ui, -apple-system, sans-serif`,padding:S===`left`?`20px 20px 20px 80px`:S===`right`?`20px 80px 20px 20px`:`20px`},w=Kl(n,r),T=u===`dark`?`ah-dark-mode`:u===`light`?`ah-light-mode`:void 0,ee=u===`dark`?`dark`:u===`light`?`light`:void 0,E={...Pl},te=Lo(r?.colors?.primary_button)||h;if(te){let e=Pl[`--ah-color-bg`]||`#1f2937`;if(Ll(te,e)<3){let t=te;for(let n=1;n<=10&&(t=Rl(te,n*.1),!(Ll(t,e)>=3));n++);E[`--ah-color-primary`]=t,E[`--ah-color-primary-hover`]=t}let t=E[`--ah-color-primary`]||te,n=Ll(t,`#ffffff`);E[`--ah-color-text-on-primary`]=Ll(t,`#000000`)>n*1.35?`#000000`:`#ffffff`}let ne=JSON.stringify(E),D=_te({primaryColor:h,themePrimary:Lo(r?.colors?.primary_button),widgetBackground:b}),re=z(Bl,{logoUrl:x,clientName:a}),ie=z(Ul,{darkMode:u,language:s,availableLanguages:c}),O=o?z(Wl,{url:o.url,href:o.href,alt:o.alt,height:o.height}):null,ae=z(Gl,{termsAndConditionsUrl:l,language:s});return z(`html`,{lang:s||`en`,class:T,"data-mode":ee,"data-bg":_?`image`:`none`,"data-logo-position":m,children:[z(`head`,{children:[z(`meta`,{charSet:`UTF-8`}),z(`meta`,{name:`viewport`,content:`width=device-width, initial-scale=1.0`}),z(`title`,{children:[`Sign in - `,a]}),v&&z(`link`,{rel:`icon`,href:v}),y&&z(`link`,{rel:`stylesheet`,href:y}),z(`style`,{dangerouslySetInnerHTML:{__html:D}}),z(`script`,{type:`module`,src:`/u/widget/authhero-widget.esm.js?v=${Go}`})]}),z(`body`,{style:C,children:[_&&z(`div`,{class:`ah-bg-tint`,"aria-hidden":`true`}),p?z(`div`,{style:{display:`contents`},dangerouslySetInnerHTML:{__html:p}}):z(Ml,{children:[z(`div`,{class:`widget-container`,"data-authhero-widget-container":!0,"data-screen":t,style:w,dangerouslySetInnerHTML:{__html:e}}),re,ie,O,ae]}),f&&z(`script`,{dangerouslySetInnerHTML:{__html:f}}),z(`script`,{dangerouslySetInnerHTML:{__html:`(function(){
|
|
208
208
|
try{var p=localStorage.getItem('ah-dark-mode');if(p!==null&&!document.cookie.match(/ah-dark-mode=/)){var v=p==='1'?'dark':'light';document.cookie='ah-dark-mode='+v+';path=/;max-age=31536000;SameSite=Lax';localStorage.removeItem('ah-dark-mode')}}catch(e){}
|
|
209
209
|
var dv=${ne};
|
|
210
210
|
function apply(w){for(var k in dv)w.style.setProperty(k,dv[k])}
|
|
@@ -2936,8 +2936,8 @@ From `+this.originalError.stack)}static is(e){return e?.[BF]===`LiquidError`}},H
|
|
|
2936
2936
|
<!--/$-->
|
|
2937
2937
|
</body>
|
|
2938
2938
|
</html>
|
|
2939
|
-
`},bV={reset_email:`{{ password_reset_title }}`,reset_email_by_code:`{{ password_reset_title }}`,verify_email:`{{ welcome_to_your_account }}`,verify_email_by_code:`{{ code_email_subject }}`,welcome_email:`{{ welcome_to_your_account }}`,user_invitation:`{{ invitation_email_subject }}`,blocked_account:`{{ blocked_account_title }}`,stolen_credentials:`{{ stolen_credentials_title }}`,enrollment_email:`{{ enrollment_email_title }}`,mfa_oob_code:`{{ mfa_oob_code_title }}`,change_password:`{{ password_reset_title }}`,password_reset:`{{ password_reset_notification_title }}`};function xV(e){let t=yV[e],n=bV[e];return!t||!n?null:{subject:n,body:t}}var SV=new vV({cache:!0,strictVariables:!1,strictFilters:!1});async function CV(e,t,n,r){let i=await e.env.data.emailTemplates.get(e.var.tenant_id,t);if(i&&i.enabled===!1)return{kind:`disabled`};let a=i?{subject:i.subject,body:i.body}:xV(t);if(!a)return{kind:`none`};let[o,s]=await Promise.all([SV.parseAndRender(a.subject,n),SV.parseAndRender(a.body,n)]);return{kind:`rendered`,email:{subject:o,html:s,from:i?.from||r}}}var wV=f.z.object({api_key:f.z.string().min(1),domain:f.z.string().min(4),region:f.z.enum([`eu`,`us`]).nullish()}),TV=class{options;constructor(e={}){this.options=e}async send(e){let t=this.options.fetchImpl??globalThis.fetch,n=wV.parse(e.emailProvider.credentials),r=`https://${n.region===`eu`?`api.eu.mailgun.net`:`api.mailgun.net`}/v3/${encodeURIComponent(n.domain)}/messages`,i=new URLSearchParams;i.append(`from`,e.from),i.append(`to`,e.to),i.append(`subject`,e.subject),i.append(`h:X-Mailgun-Variables`,JSON.stringify(e.data)),e.html?i.append(`html`,e.html):i.append(`template`,e.template),e.text&&i.append(`text`,e.text);let a=await t(r,{method:`POST`,headers:{Authorization:`Basic ${btoa(`api:${n.api_key}`)}`,"Content-Type":`application/x-www-form-urlencoded`},body:i.toString()});if(!a.ok){let e=await a.text().catch(()=>``);throw Error(`Mailgun send failed: ${a.status} ${a.statusText} ${e.slice(0,500)}`)}}},EV=f.z.object({api_key:f.z.string().min(1)}),DV=class{options;constructor(e={}){this.options=e}async send(e){let t=this.options.fetchImpl??globalThis.fetch,n=EV.parse(e.emailProvider.credentials),r={from:e.from,to:e.to,subject:e.subject};e.html&&(r.html=e.html),e.text&&(r.text=e.text);let i=await t(`https://api.resend.com/emails`,{method:`POST`,headers:{Authorization:`Bearer ${n.api_key}`,"Content-Type":`application/json`},body:JSON.stringify(r)});if(!i.ok){let e=await i.text().catch(()=>``);throw Error(`Resend send failed: ${i.status} ${i.statusText} ${e.slice(0,500)}`)}}},OV=f.z.object({api_key:f.z.string().min(1)}),kV=class{options;constructor(e={}){this.options=e}async send(e){let t=this.options.fetchImpl??globalThis.fetch,n={"X-Postmark-Server-Token":OV.parse(e.emailProvider.credentials).api_key,Accept:`application/json`,"Content-Type":`application/json`},r,i;e.html?(r=`https://api.postmarkapp.com/email`,i={From:e.from,To:e.to,Subject:e.subject,HtmlBody:e.html},e.text&&(i.TextBody=e.text)):(r=`https://api.postmarkapp.com/email/withTemplate`,i={From:e.from,To:e.to,TemplateAlias:e.template,TemplateModel:e.data});let a=await t(r,{method:`POST`,headers:n,body:JSON.stringify(i)});if(!a.ok){let e=await a.text().catch(()=>``);throw Error(`Postmark send failed: ${a.status} ${a.statusText} ${e.slice(0,500)}`)}}};function AV(e,t){return async n=>(await iN(e,t,n,{allowControlPlaneFallback:!0})).access_token}var jV={mailgun:()=>new TV,resend:()=>new DV,postmark:()=>new kV};async function MV(e,t){let n=await e.env.data.emailProviders.get(e.var.tenant_id);if(!n)throw new m(500,{message:`Email provider not found`});let r=jV[n.name],i=r?r():e.env.data.emailService;if(!i)throw new m(500,{message:`Email service not configured`});try{await i.send({emailProvider:n,...t,from:t.from||n.default_from_address||`login@${e.env.ISSUER}`,createServiceToken:AV(e,e.var.tenant_id)})}catch(r){let i=r instanceof Error?r.message:String(r);console.error(`[sendEmail] tenant=${e.var.tenant_id} provider=${n.name} template=${t.template} to=${t.to}: ${i}`,r);try{await I(e,e.var.tenant_id,{type:P.FAILED_SENDING_NOTIFICATION,description:`email send failed via ${n.name}: ${i}`.slice(0,500),details:{provider:n.name,template:t.template,to:t.to,error:i},waitForCompletion:!0})}catch(e){console.error(`[sendEmail] failed to record log entry`,e)}throw r}}async function NV(e,t){if(!e.var.client_id)throw new m(500,{message:`Client not found`});let n=await bk(e.env,e.var.client_id),r=n.connections.find(e=>e.strategy===F.SMS);if(!r)throw new m(500,{message:`SMS provider not found`});let i=e.env.data.smsService;if(!i)throw new m(500,{message:`SMS service not configured`});try{await i.send({options:r.options,to:t.to,from:t.from,text:t.text,template:`auth-code`,data:{code:t.code,tenantName:n.tenant.friendly_name,tenantId:n.tenant.id},createServiceToken:AV(e,e.var.tenant_id)})}catch(n){let i=n instanceof Error?n.message:String(n);console.error(`[sendSms] tenant=${e.var.tenant_id} connection=${r.name} to=${t.to}: ${i}`,n);try{await I(e,e.var.tenant_id,{type:P.FAILED_SENDING_NOTIFICATION,description:`sms send failed via ${r.name}: ${i}`.slice(0,500),details:{connection:r.name,to:t.to,error:i},waitForCompletion:!0})}catch(e){console.error(`[sendSms] failed to record log entry`,e)}throw n}}async function PV(e,t){let n=await e.env.data.tenants.get(e.var.tenant_id);if(!n)throw new m(500,{message:`Tenant not found`});let r=await e.env.data.branding.get(e.var.tenant_id);return{tenant:n,logo:r?.logo_url||``,buttonColor:r?.colors?.primary||`#7d68f4`,options:{vendorName:n.friendly_name,lng:t||`en`}}}async function FV(e,t){let n=(await e.env.data.emailProviders.get(e.var.tenant_id))?.default_from_address||`login@${e.env.ISSUER}`,r={vendorName:t.tenant.friendly_name,lng:t.language||`en`},i={...t.data,tenant:{id:t.tenant.id,friendly_name:t.tenant.friendly_name,support_url:t.tenant.support_url||``},branding:{logo:t.branding.logo,primary_color:t.branding.primary_color,button_text_color:`#ffffff`,button_border_radius:`4px`},signature:{enabled:!0},footer:{address:``},kind_regards:M(`kind_regards`,r),team_signature:M(`team_signature`,r),link_email_fallback_intro:M(`link_email_fallback_intro`,r),url:t.url,code:t.code},a=await CV(e,t.templateName,i,n);if(a.kind===`disabled`)return!1;let o=a.kind===`rendered`?a.email.subject:t.fallbackSubject,s=a.kind===`rendered`?a.email.html:t.fallbackHtml,c=a.kind===`rendered`?a.email.from:n;return await MV(e,{to:t.to,subject:o,html:s,template:t.legacyTemplate,data:t.data,from:c}),!0}async function IV(e,t,n,r,i,a){let{tenant:o,logo:s,buttonColor:c,options:l}=await PV(e,i),u=`${Ia(e.env,void 0,a)}reset-password?state=${r}&code=${n}`,d={tenantId:o.id,language:i||`en`,vendorName:o.friendly_name,logo:s,passwordResetUrl:u,supportUrl:o.support_url||`https://support.sesamy.com`,buttonColor:c,password_reset_title:M(`password_reset_title`,l),passwordResetTitle:M(`password_reset_title`,l),reset_password_email_click_to_reset:M(`reset_password_email_click_to_reset`,l),resetPasswordEmailClickToReset:M(`reset_password_email_click_to_reset`,l),reset_password_email_reset:M(`reset_password_email_reset`,l),resetPasswordEmailReset:M(`reset_password_email_reset`,l),support_info:M(`support_info`,l),supportInfo:M(`support_info`,l),contact_us:M(`contact_us`,l),contactUs:M(`contact_us`,l),copyright:M(`copyright`,l),tenantName:o.friendly_name};try{await FV(e,{to:t,templateName:`reset_email`,legacyTemplate:`auth-password-reset`,fallbackSubject:M(`reset_password_title`,l),fallbackHtml:`Click here to reset your password: ${u}`,tenant:o,branding:{logo:s,primary_color:c},url:u,language:i,data:d})}catch(n){try{await I(e,o.id,{type:P.FAILED_CHANGE_PASSWORD_REQUEST,description:t})}catch(e){console.error(`[sendResetPassword] failed to record log entry`,e)}throw n}I(e,o.id,{type:P.SUCCESS_CHANGE_PASSWORD_REQUEST,description:t})}async function LV(e,t,n,r){let{tenant:i,logo:a,buttonColor:o,options:s}=await PV(e,r),c={tenantId:i.id,language:r||`en`,code:n,vendorName:i.friendly_name,logo:a,supportUrl:i.support_url||`https://support.sesamy.com`,buttonColor:o,welcomeToYourAccount:M(`password_reset_title`,s),password_reset_title:M(`password_reset_title`,s),reset_password_email_enter_code:M(`reset_password_email_enter_code`,s),resetPasswordEmailEnterCode:M(`reset_password_email_enter_code`,s),linkEmailLogin:M(`reset_password_email_reset`,s),reset_password_email_reset:M(`reset_password_email_reset`,s),linkEmailOrEnterCode:M(`link_email_or_enter_code`,{...s,code:n}),codeValid30Mins:M(`code_valid_30_minutes`,s),code_valid_30_minutes:M(`code_valid_30_minutes`,s),support_info:M(`support_info`,s),supportInfo:M(`support_info`,s),contact_us:M(`contact_us`,s),contactUs:M(`contact_us`,s),copyright:M(`copyright`,s)};try{await FV(e,{to:t,templateName:`reset_email_by_code`,legacyTemplate:`auth-code`,fallbackSubject:M(`reset_password_title`,s),fallbackHtml:`Your password reset code is: ${n}`,tenant:i,branding:{logo:a,primary_color:o},code:n,language:r,data:c})}catch(n){try{await I(e,i.id,{type:P.FAILED_CHANGE_PASSWORD_REQUEST,description:t})}catch(e){console.error(`[sendResetPasswordCode] failed to record log entry`,e)}throw n}I(e,i.id,{type:P.SUCCESS_CHANGE_PASSWORD_REQUEST,description:t})}async function RV(e,{to:t,code:n,language:r}){let i=await e.env.data.tenants.get(e.var.tenant_id);if(!i)throw new m(500,{message:`Tenant not found`});let{connectionType:a}=iF(t),o=await e.env.data.branding.get(e.var.tenant_id),s=o?.logo_url||``,c=o?.colors?.primary||`#7d68f4`,l=new URL(Ia(e.env)),u={vendorName:i.friendly_name,vendorId:i.id,loginDomain:l.hostname,code:n,lng:r||`en`};if(a===`email`){let a={tenantId:i.id,language:r||`en`,code:n,vendorName:i.friendly_name,logo:s,supportUrl:i.support_url||``,buttonColor:c,welcomeToYourAccount:M(`welcome_to_your_account`,u),welcome_to_your_account:M(`welcome_to_your_account`,u),linkEmailClickToLogin:M(`link_email_click_to_login`,u),link_email_click_to_login:M(`link_email_click_to_login`,u),linkEmailLogin:M(`link_email_login`,u),link_email_login:M(`link_email_login`,u),linkEmailOrEnterCode:M(`link_email_or_enter_code`,u),link_email_or_enter_code:M(`link_email_or_enter_code`,u),codeValid30Mins:M(`code_valid_30_minutes`,u),code_valid_30_minutes:M(`code_valid_30_minutes`,u),code_email_subject:M(`code_email_subject`,u),supportInfo:M(`support_info`,u),support_info:M(`support_info`,u),contactUs:M(`contact_us`,u),contact_us:M(`contact_us`,u),copyright:M(`copyright`,u)};await FV(e,{to:t,templateName:`verify_email_by_code`,legacyTemplate:`auth-code`,fallbackSubject:M(`code_email_subject`,u),fallbackHtml:`Click here to validate your email: ${Ia(e.env)}validate-email`,tenant:i,branding:{logo:s,primary_color:c},code:n,language:r,data:a})}else a===`sms`&&await NV(e,{to:t,text:M(`sms_code_text`,u),code:n,from:i.friendly_name});I(e,i.id,{type:P.CODE_LINK_SENT,description:t})}async function zV(e,{to:t,code:n,authParams:r,language:i}){let a=await e.env.data.tenants.get(e.var.tenant_id);if(!a)throw new m(500,{message:`Tenant not found`});if(!r.redirect_uri)throw new m(400,{message:`redirect_uri is required`});let{connectionType:o}=iF(t),s=await e.env.data.branding.get(e.var.tenant_id),c=s?.logo_url||``,l=s?.colors?.primary||``,u=new URL(La(e.env));u.pathname=`passwordless/verify_redirect`,u.searchParams.set(`verification_code`,n),u.searchParams.set(`connection`,o),u.searchParams.set(`client_id`,r.client_id),u.searchParams.set(`redirect_uri`,r.redirect_uri),u.searchParams.set(`email`,t),r.response_type&&u.searchParams.set(`response_type`,r.response_type),r.scope&&u.searchParams.set(`scope`,r.scope),r.state&&u.searchParams.set(`state`,r.state),r.nonce&&u.searchParams.set(`nonce`,r.nonce),r.code_challenge&&u.searchParams.set(`code_challenge`,r.code_challenge),r.code_challenge_method&&u.searchParams.set(`code_challenge_method`,r.code_challenge_method),r.audience&&u.searchParams.set(`audience`,r.audience);let d={vendorName:a.friendly_name,code:n,lng:i||`en`};if(o===`email`){let r={tenantId:a.id,language:i||`en`,code:n,vendorName:a.friendly_name,logo:c,supportUrl:a.support_url||``,magicLink:u.toString(),buttonColor:l,welcomeToYourAccount:M(`welcome_to_your_account`,d),welcome_to_your_account:M(`welcome_to_your_account`,d),linkEmailClickToLogin:M(`link_email_click_to_login`,d),link_email_click_to_login:M(`link_email_click_to_login`,d),linkEmailLogin:M(`link_email_login`,d),link_email_login:M(`link_email_login`,d),linkEmailOrEnterCode:M(`link_email_or_enter_code`,d),link_email_or_enter_code:M(`link_email_or_enter_code`,d),codeValid30Mins:M(`code_valid_30_minutes`,d),code_valid_30_minutes:M(`code_valid_30_minutes`,d),code_email_subject:M(`code_email_subject`,d),supportInfo:M(`support_info`,d),support_info:M(`support_info`,d),contactUs:M(`contact_us`,d),contact_us:M(`contact_us`,d),copyright:M(`copyright`,d)};await FV(e,{to:t,templateName:`verify_email`,legacyTemplate:`auth-link`,fallbackSubject:M(`code_email_subject`,d),fallbackHtml:`Click here to validate your email: ${u.toString()}`,tenant:a,branding:{logo:c,primary_color:l},url:u.toString(),code:n,language:i,data:r})}else if(o===`sms`)await NV(e,{to:t,text:`${M(`link_sms_login`,d)}: ${u.toString()}`,code:n,from:a.friendly_name});else throw new m(400,{message:`Only email and SMS connections are supported for magic links`});I(e,a.id,{type:P.CODE_LINK_SENT,description:t})}async function BV(e,t,n){let r=await e.env.data.tenants.get(e.var.tenant_id);if(!r)throw new m(500,{message:`Tenant not found`});if(!t.email)throw new m(400,{message:`User has no email`});let i=await e.env.data.branding.get(e.var.tenant_id),a=i?.logo_url||``,o=i?.colors?.primary||`#7d68f4`,s={vendorName:r.friendly_name,lng:n||`en`},c=`${Ia(e.env)}validate-email`,l={tenantId:r.id,language:n||`en`,vendorName:r.friendly_name,logo:a,emailValidationUrl:c,supportUrl:r.support_url||`https://support.sesamy.com`,buttonColor:o,welcomeToYourAccount:M(`welcome_to_your_account`,s),welcome_to_your_account:M(`welcome_to_your_account`,s),verifyEmailVerify:M(`verify_email_verify`,s),verify_email_verify:M(`verify_email_verify`,s),link_email_click_to_login:M(`verify_email_verify`,s),link_email_login:M(`verify_email_verify`,s),supportInfo:M(`support_info`,s),support_info:M(`support_info`,s),contactUs:M(`contact_us`,s),contact_us:M(`contact_us`,s),copyright:M(`copyright`,s)};try{await FV(e,{to:t.email,templateName:`verify_email`,legacyTemplate:`auth-verify-email`,fallbackSubject:M(`welcome_to_your_account`,s),fallbackHtml:`Click here to validate your email: ${c}`,tenant:r,branding:{logo:a,primary_color:o},url:c,language:n,data:l})}catch(n){try{await I(e,r.id,{type:P.FAILED_VERIFICATION_EMAIL_REQUEST,description:t.email,userId:t.user_id})}catch(e){console.error(`[sendValidateEmailAddress] failed to record log entry`,e)}throw n}I(e,r.id,{type:P.SUCCESS_VERIFICATION_EMAIL_REQUEST,description:t.email,userId:t.user_id})}async function VV(e,t,n,r,i){let a=await e.env.data.tenants.get(e.var.tenant_id);if(!a)throw new m(500,{message:`Tenant not found`});let o=await e.env.data.branding.get(e.var.tenant_id),s=o?.logo_url||``,c=o?.colors?.primary||`#7d68f4`,l={vendorName:a.friendly_name,lng:i||`en`},u=`${Ia(e.env)}signup?state=${r}&code=${n}`,d={tenantId:a.id,language:i||`en`,vendorName:a.friendly_name,logo:s,signupUrl:u,setPassword:M(`set_password`,l),registerPasswordAccount:M(`register_password_account`,l),clickToSignUpDescription:M(`click_to_sign_up_description`,l),supportUrl:a.support_url||`https://support.sesamy.com`,buttonColor:c,welcomeToYourAccount:M(`welcome_to_your_account`,l),welcome_to_your_account:M(`welcome_to_your_account`,l),verifyEmailVerify:M(`verify_email_verify`,l),verify_email_verify:M(`verify_email_verify`,l),link_email_click_to_login:M(`click_to_sign_up_description`,l),link_email_login:M(`set_password`,l),supportInfo:M(`support_info`,l),support_info:M(`support_info`,l),contactUs:M(`contact_us`,l),contact_us:M(`contact_us`,l),copyright:M(`copyright`,l)};await FV(e,{to:t,templateName:`verify_email`,legacyTemplate:`auth-pre-signup-verification`,fallbackSubject:M(`register_password_account`,l),fallbackHtml:`Click here to register: ${u}`,tenant:a,branding:{logo:s,primary_color:c},url:u,language:i,data:d})}async function HV(e,{to:t,invitationUrl:n,inviterName:r,organizationName:i,ttlSec:a,language:o}){let{tenant:s,logo:c,buttonColor:l,options:u}=await PV(e,o),d=String(Math.max(1,Math.round(a/86400))),f=r||s.friendly_name,p={...u,inviterName:f,organizationName:i,ttlDays:d},m={tenantId:s.id,language:o||`en`,vendorName:s.friendly_name,organizationName:i,inviterName:f,logo:c,invitationUrl:n,supportUrl:s.support_url||``,buttonColor:l,ttlDays:d,invitation_email_subject:M(`invitation_email_subject`,p),invitationEmailSubject:M(`invitation_email_subject`,p),invitation_email_intro:M(`invitation_email_intro`,p),invitationEmailIntro:M(`invitation_email_intro`,p),invitation_email_click_to_accept:M(`invitation_email_click_to_accept`,p),invitationEmailClickToAccept:M(`invitation_email_click_to_accept`,p),invitation_email_accept_button:M(`invitation_email_accept_button`,p),invitationEmailAcceptButton:M(`invitation_email_accept_button`,p),invitation_expires_in:M(`invitation_expires_in`,p),invitationExpiresIn:M(`invitation_expires_in`,p),supportInfo:M(`support_info`,p),support_info:M(`support_info`,p),contactUs:M(`contact_us`,p),contact_us:M(`contact_us`,p),copyright:M(`copyright`,p)};await FV(e,{to:t,templateName:`user_invitation`,legacyTemplate:`auth-invitation`,fallbackSubject:M(`invitation_email_subject`,p),fallbackHtml:`You've been invited to ${i}. Accept your invitation: ${n}`,tenant:s,branding:{logo:c,primary_color:l},url:n,language:o,data:m})}var UV=new vV({cache:!0,strictVariables:!1,strictFilters:!1});async function WV(e,t){let{tenant:n,logo:r,buttonColor:i,options:a}=await PV(e,t.language),o=(await e.env.data.emailProviders.get(e.var.tenant_id))?.default_from_address||`login@${e.env.ISSUER}`,s=t.body,c=t.subject;if(!s||!c){let n=await e.env.data.emailTemplates.get(e.var.tenant_id,t.templateName)??xV(t.templateName);if(!n)throw new m(404,{message:`No template body/subject available for ${t.templateName}`});s||=n.body,c||=n.subject}let l=`123456`,u=`${La(e.env)}u/preview?code=${l}`,d={tenant:{id:n.id,friendly_name:n.friendly_name,support_url:n.support_url||``},branding:{logo:r,primary_color:i,button_text_color:`#ffffff`,button_border_radius:`4px`},signature:{enabled:!0},footer:{address:``},url:u,code:l,kind_regards:M(`kind_regards`,a),team_signature:M(`team_signature`,a),link_email_fallback_intro:M(`link_email_fallback_intro`,a),password_reset_title:M(`password_reset_title`,a),reset_password_email_click_to_reset:M(`reset_password_email_click_to_reset`,a),reset_password_email_reset:M(`reset_password_email_reset`,a),welcome_to_your_account:M(`welcome_to_your_account`,a),code_email_subject:M(`code_email_subject`,a),code_valid_30_minutes:M(`code_valid_30_minutes`,a),link_email_click_to_login:M(`link_email_click_to_login`,a),link_email_login:M(`link_email_login`,a),link_email_or_enter_code:M(`link_email_or_enter_code`,{...a,code:l}),invitation_email_subject:M(`invitation_email_subject`,{...a,inviterName:`Test User`,organizationName:`Test Org`}),invitation_email_intro:M(`invitation_email_intro`,{...a,inviterName:`Test User`,organizationName:`Test Org`}),invitation_email_click_to_accept:M(`invitation_email_click_to_accept`,a),invitation_email_accept_button:M(`invitation_email_accept_button`,a),invitation_expires_in:M(`invitation_expires_in`,{...a,ttlDays:7}),support_info:M(`support_info`,a),contact_us:M(`contact_us`,a),copyright:M(`copyright`,a)},[f,p]=await Promise.all([UV.parseAndRender(c,d),UV.parseAndRender(s,d)]);await MV(e,{to:t.to,subject:`[TEST] ${f}`,html:p,template:t.templateName,data:{},from:t.from||o})}function GV(e){if(e)return`${e.name}/${e.version}${e.env?.node?` (env: node/${e.env.node})`:``}`}function KV(){let e=new Uint8Array(6);crypto.getRandomValues(e);let t=``;for(let n=0;n<6;n+=1)t+=(e[n]%10).toString();return t}async function qV(e,t){let n=[];for(let r=0;;r++){let{connections:i}=await e.env.data.connections.list(t,{page:r,per_page:100,include_totals:!1});if(n.push(...i),i.length<100)break}return n}async function JV(e,t,n){return(await qV(e,t)).find(e=>e.name===n)??null}var YV=`http://auth0.com/oauth/grant-type/password-realm`,XV=`openid profile email`,ZV=1e4,QV=class extends Error{status;code;description;constructor(e,t,n){super(n??t),this.name=`Auth0UpstreamError`,this.status=e,this.code=t,this.description=n}};function $V(e){return typeof e==`object`&&!!e}function eH(e){return typeof e==`string`?e:void 0}async function tH(e){let t=await e.text();if(!t)return null;try{return JSON.parse(t)}catch{throw new QV(e.status,`malformed_response`,`Upstream returned non-JSON body`)}}function nH(e){if(!$V(e))throw new QV(502,`malformed_response`,`Upstream token response was not an object`);let t=eH(e.access_token);if(!t)throw new QV(502,`malformed_response`,`Upstream token response missing access_token`);return{access_token:t,id_token:eH(e.id_token),refresh_token:eH(e.refresh_token),expires_in:typeof e.expires_in==`number`?e.expires_in:void 0,token_type:eH(e.token_type),scope:eH(e.scope)}}function rH(e,t){let n=$V(t)?eH(t.error):void 0,r=$V(t)?eH(t.error_description):void 0;return new QV(e,n??`invalid_grant`,r??`Upstream returned HTTP ${e}`)}async function iH(e){let t=new URLSearchParams;t.set(`grant_type`,YV),t.set(`client_id`,e.clientId),t.set(`client_secret`,e.clientSecret),t.set(`realm`,e.realm),t.set(`username`,e.username),t.set(`password`,e.password),t.set(`scope`,e.scope??XV),e.audience&&t.set(`audience`,e.audience);let n;try{n=await fetch(e.tokenEndpoint,{method:`POST`,headers:{"content-type":`application/x-www-form-urlencoded`,accept:`application/json`},body:t.toString()})}catch(e){throw new QV(0,`network_error`,e instanceof Error?e.message:`fetch failed`)}let r=await tH(n);if(!n.ok)throw rH(n.status,r);return nH(r)}async function aH(e){let t=new URLSearchParams;t.set(`grant_type`,`refresh_token`),t.set(`client_id`,e.clientId),t.set(`client_secret`,e.clientSecret),t.set(`refresh_token`,e.refreshToken),e.scope&&t.set(`scope`,e.scope),e.audience&&t.set(`audience`,e.audience);let n=new AbortController,r=setTimeout(()=>n.abort(),ZV),i;try{i=await fetch(e.tokenEndpoint,{method:`POST`,headers:{"content-type":`application/x-www-form-urlencoded`,accept:`application/json`},body:t.toString(),signal:n.signal})}catch(e){throw n.signal.aborted?new QV(0,`network_error`,`request_timed_out`):new QV(0,`network_error`,e instanceof Error?e.message:`fetch failed`)}finally{clearTimeout(r)}let a=await tH(i);if(!i.ok)throw rH(i.status,a);return nH(a)}async function oH(e,t){let n;try{n=await fetch(e,{method:`GET`,headers:{authorization:`Bearer ${t}`,accept:`application/json`}})}catch(e){throw new QV(0,`network_error`,e instanceof Error?e.message:`fetch failed`)}let r=await tH(n);if(!n.ok)throw rH(n.status,r);if(!$V(r))throw new QV(502,`malformed_response`,`Upstream userinfo response was not an object`);let i=eH(r.sub);if(!i)throw new QV(502,`malformed_response`,`Upstream userinfo response missing sub`);return{...r,sub:i}}function sH(e){return typeof e==`string`?e:void 0}function cH(e){let t=e.options&&typeof e.options==`object`?e.options.configuration:void 0;if(!t||typeof t!=`object`)return null;let n=t,r=sH(n.token_endpoint),i=sH(n.userinfo_endpoint),a=sH(n.client_id),o=sH(n.client_secret),s=sH(n.realm);return!r||!i||!a||!o?null:{tokenEndpoint:r,userinfoEndpoint:i,clientId:a,clientSecret:o,realm:s}}async function lH(e){let{ctx:t,client:n,username:r,password:i,dbConnection:a,existingUser:o}=e;if(a.options?.import_mode!==!0)return null;let s=cH(a);if(!s)return null;let c;try{c=await iH({tokenEndpoint:s.tokenEndpoint,clientId:s.clientId,clientSecret:s.clientSecret,realm:s.realm??a.name,username:r,password:i})}catch(e){if(e instanceof QV)return console.warn(`Auth0 upstream ROPG failed for tenant=${n.tenant.id} realm=${a.name}: ${e.code} ${e.description??``}`),null;throw e}let l=t.env.data,u=o;if(!u){let e;try{e=await oH(s.userinfoEndpoint,c.access_token)}catch(e){if(e instanceof QV)return console.warn(`Auth0 upstream userinfo failed for tenant=${n.tenant.id}: ${e.code} ${e.description??``}`),null;throw e}let i=r.includes(`@`),o=typeof e.email==`string`?e.email:void 0,d=await em(t.env,n.tenant.id),f=`${d}|${uu()}`;t.set(`is_lazy_migration`,!0);try{u=await l.users.create(n.tenant.id,{user_id:f,email:o??(i?r:void 0),username:i?void 0:r,name:typeof e.name==`string`?e.name:r,given_name:typeof e.given_name==`string`?e.given_name:void 0,family_name:typeof e.family_name==`string`?e.family_name:void 0,nickname:typeof e.nickname==`string`?e.nickname:void 0,picture:typeof e.picture==`string`?e.picture:void 0,email_verified:e.email_verified===!0,provider:d,connection:a.name,is_social:!1,last_ip:t.var.ip??``,last_login:new Date().toISOString(),profileData:JSON.stringify(e)})}finally{t.set(`is_lazy_migration`,!1)}}let{hash:d,algorithm:f}=await cd(i),p=await l.passwords.get(n.tenant.id,u.user_id);return p&&await l.passwords.update(n.tenant.id,{id:p.id,user_id:u.user_id,password:p.password,algorithm:p.algorithm,is_current:!1}),await l.passwords.create(n.tenant.id,{user_id:u.user_id,password:d,algorithm:f,is_current:!0}),I(t,n.tenant.id,{type:P.SUCCESS_PASSWORD_MIGRATION,description:`Imported password from upstream for ${u.user_id}`,userId:u.user_id,connection:a.name}),u}async function uH(e,t,n){let r=n.app_metadata||{},i=r.failed_logins||[],a=Date.now();r.failed_logins=[...i.filter(e=>a-e<1e3*60*5),a],await e.users.update(t,n.user_id,{app_metadata:r})}function dH(e){return typeof e==`object`&&!!e&&`allowed`in e&&typeof e.allowed==`boolean`}function fH(e){let t=(e.app_metadata||{}).failed_logins||[],n=Date.now();return t.filter(e=>n-e<1e3*60*5)}async function pH(e,t,n,r,i=F.USERNAME_PASSWORD){let{data:a}=e.env,{username:o}=n;if(e.set(`username`,o),!o)throw new B(400,{message:`Username is required`});let s=t.tenant.attack_protection?.suspicious_ip_throttling,c=e.var.ip,l=c?s?.allowlist?.includes(c):!1;if(a.rateLimit&&s?.enabled&&c&&!l){let n={allowed:!0};try{let e=await a.rateLimit.consume(`pre-login`,`${t.tenant.id}:${c}`);dH(e)&&(n=e)}catch(e){console.error(`Pre-login rate limit consume failed:`,e)}if(!n.allowed)throw I(e,t.tenant.id,{type:P.FAILED_LOGIN,description:`Rate limit exceeded for pre-login`}),new hN(429,{message:`Too many requests`,code:`TOO_MANY_REQUESTS`})}let u=await nm({env:e.env,tenant_id:t.tenant.id,username:o});if(!u){let r=await JV(e,t.tenant.id,i);if(!r&&i===F.USERNAME_PASSWORD){let e=t.connections.filter(e=>e.strategy===F.USERNAME_PASSWORD);if(e.length>1)throw new B(400,{message:`Multiple username-password connections configured for this client; specify an explicit realm.`});r=e[0]??null}if(r?.options?.import_mode===!0){let i=await lH({ctx:e,client:t,username:o,password:n.password,dbConnection:r,existingUser:null});i&&(u=i)}if(!u)throw I(e,t.tenant.id,{type:P.FAILED_LOGIN_INCORRECT_PASSWORD,description:`Invalid user`}),new hN(403,{message:`User not found`,code:`USER_NOT_FOUND`})}let d=u.linked_to?await a.users.get(t.tenant.id,u.linked_to):u;if(!d)throw new hN(403,{message:`User not found`,code:`USER_NOT_FOUND`});if(e.set(`connection`,u.connection),e.set(`user_id`,d.user_id),fH(d).length>=3)throw I(e,t.tenant.id,{type:P.FAILED_LOGIN,description:`Too many failed login attempts`}),new hN(403,{message:`Too many failed login attempts`,code:`TOO_MANY_FAILED_LOGINS`});let f=await a.passwords.get(t.tenant.id,u.user_id),p=f&&await rd.compare(n.password,f.password);if(!p){let r=await JV(e,t.tenant.id,u.connection);r?.options?.import_mode===!0&&await lH({ctx:e,client:t,username:o,password:n.password,dbConnection:r,existingUser:d})&&(p=!0)}if(!p)throw I(e,t.tenant.id,{type:P.FAILED_LOGIN_INCORRECT_PASSWORD,description:`Invalid password`}),uH(a,t.tenant.id,d),new hN(403,{message:`Invalid password`,code:`INVALID_PASSWORD`});if(!u.email_verified&&t.client_metadata?.email_validation===`enforced`){let n=r?.authParams?.ui_locales?.split(` `)?.map(e=>e.split(`-`)[0])[0];throw await BV(e,u,n),I(e,t.tenant.id,{type:P.FAILED_LOGIN,description:`Email not verified`}),r&&await rre(e,t.tenant.id,r,`Email not verified`),new hN(403,{message:`Email not verified`,code:`EMAIL_NOT_VERIFIED`})}let m=d.app_metadata||{};return m.failed_logins&&m.failed_logins.length>0&&(m.failed_logins=[],a.users.update(t.tenant.id,d.user_id,{app_metadata:m})),{client:t,authParams:n,user:d,loginSession:r}}async function mH(e,t,n,r,i,a=F.USERNAME_PASSWORD){return QM(e,{...await pH(e,t,n,r,a),ticketAuth:i,authConnection:e.get(`connection`)||F.USERNAME_PASSWORD,authStrategy:{strategy:F.USERNAME_PASSWORD,strategy_type:wa.DATABASE}})}async function hH(e,t,n,r,i,a){if(!await nm({env:e.env,tenant_id:t.tenant.id,username:n})){let r=t.connections.find(e=>e.strategy===F.USERNAME_PASSWORD);if(!(await Zk(e,t,e.env.data,n,r?.name??F.USERNAME_PASSWORD)).allowed)return;await im(e,{client:t,username:n,connection:F.USERNAME_PASSWORD,ip:e.var.ip})}let o=KV(),s=await e.env.data.codes.get(t.tenant.id,o,`password_reset`);for(;s;)o=KV(),s=await e.env.data.codes.get(t.tenant.id,o,`password_reset`);let c=r;if(!await e.env.data.loginSessions.get(t.tenant.id,r)){let r=e.get(`ip`),i=e.get(`useragent`),a=GV(e.get(`auth0_client`));c=(await e.env.data.loginSessions.create(t.tenant.id,{expires_at:new Date(Date.now()+OD).toISOString(),authParams:{client_id:t.client_id,username:n},csrf_token:To(),ip:r,useragent:i,auth0Client:a})).id}let l=await e.env.data.codes.create(t.tenant.id,{code_id:o,code_type:`password_reset`,login_id:c,expires_at:new Date(Date.now()+DD).toISOString()});i===`code`?await LV(e,n,l.code_id):await IV(e,n,l.code_id,c,void 0,a)}function gH(e){return e===F.USERNAME_PASSWORD||e===`auth2`}var _H=bt.extend({connections:f.z.array(_n)}),vH=[`client_secret`,`app_secret`,`twilio_token`];function yH(e){if(!e.options)return e;let t={...e.options};for(let e of vH)delete t[e];return{...e,options:t}}var bH=f.z.object({enabled_clients:f.z.array(f.z.object({client_id:f.z.string(),name:f.z.string()}))}),xH=f.z.array(f.z.object({client_id:f.z.string(),status:f.z.boolean()})),SH=L({route:(0,f.createRoute)({tags:[`connections`],method:`get`,path:`/`,request:{query:eo,headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:connections`]}],responses:{200:{content:{"application/json":{schema:f.z.union([f.z.array(_n),_H])}},description:`List of connections`}}}),handler:async e=>{let{page:t,per_page:n,include_totals:r=!1,sort:i,q:a}=e.req.valid(`query`),o=await e.env.data.connections.list(e.var.tenant_id,{page:t,per_page:n,include_totals:r,sort:to(i),q:a}),s=o.connections.map(yH);return r?e.json({...o,connections:s}):e.json(s)}}),CH=L({route:(0,f.createRoute)({tags:[`connections`],method:`get`,path:`/{id}`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:connections`]}],responses:{200:{content:{"application/json":{schema:_n}},description:`A connection`}}}),handler:async e=>{let{id:t}=e.req.valid(`param`),n=await e.env.data.connections.get(e.var.tenant_id,t);if(!n)throw new m(404);return e.json(yH(n))}}),wH=L({route:(0,f.createRoute)({tags:[`connections`],method:`delete`,path:`/{id}`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`delete:connections`]}],responses:{200:{description:`Status`}}}),handler:async e=>{let{id:t}=e.req.valid(`param`),n=e.var.tenant_id;if(!await e.env.data.connections.remove(n,t))throw new m(404,{message:`Connection not found`});return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Delete a Connection`,targetType:`connection`,targetId:t}),e.text(`OK`)}}),TH=L({route:(0,f.createRoute)({tags:[`connections`],method:`patch`,path:`/{id}`,request:{body:{content:{"application/json":{schema:f.z.object(gn.shape).partial()}}},params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`update:connections`]}],responses:{200:{content:{"application/json":{schema:_n}},description:`The updated connection`}}}),handler:async e=>{let{id:t}=e.req.valid(`param`),n=e.req.valid(`json`),r=e.var.tenant_id,i=await e.env.data.connections.get(r,t),a=n;if(n.options&&i?.options){let e={...n.options};for(let t of vH)e[t]===void 0&&i.options[t]!==void 0&&(e[t]=i.options[t]);a={...n,options:e}}if(!await e.env.data.connections.update(r,t,a))throw new m(404,{message:`Connection not found`});let o=await e.env.data.connections.get(r,t);if(!o)throw new m(404,{message:`Connection not found`});return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Update a Connection`,beforeState:i,afterState:o,targetType:`connection`,targetId:t,body:n}),e.json(yH(o))}}),EH=L({route:(0,f.createRoute)({tags:[`connections`],method:`post`,path:`/`,request:{body:{content:{"application/json":{schema:f.z.object(gn.shape)}}},headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`create:connections`]}],responses:{201:{content:{"application/json":{schema:_n}},description:`A connection`}}}),handler:async e=>{let t=e.req.valid(`json`),n=e.var.tenant_id,r=t.id||Dee(),i=await e.env.data.connections.create(n,{...t,id:r});return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Create a Connection`,afterState:i,targetType:`connection`,targetId:i.id}),e.json(yH(i),{status:201})}}),DH=L({route:(0,f.createRoute)({tags:[`connections`],method:`get`,path:`/{id}/clients`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:connections`]}],responses:{200:{content:{"application/json":{schema:bH}},description:`List of clients enabled for this connection`}}}),handler:async e=>{let{id:t}=e.req.valid(`param`);if(!await e.env.data.connections.get(e.var.tenant_id,t))throw new m(404,{message:`Connection not found`});let{clients:n}=await e.env.data.clients.list(e.var.tenant_id,{per_page:1e3}),r=n.filter(e=>e.connections?.includes(t)).map(e=>({client_id:e.client_id,name:e.name}));return e.json({enabled_clients:r})}}),OH=L({route:(0,f.createRoute)({tags:[`connections`],method:`patch`,path:`/{id}/clients`,request:{body:{content:{"application/json":{schema:xH}}},params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`update:connections`]}],responses:{204:{description:`Clients updated successfully (No Content)`}}}),handler:async e=>{let{id:t}=e.req.valid(`param`),n=e.req.valid(`json`);if(!await e.env.data.connections.get(e.var.tenant_id,t))throw new m(404,{message:`Connection not found`});for(let r of n){let n=await e.env.data.clients.get(e.var.tenant_id,r.client_id);if(!n)continue;let i=n.connections||[];r.status?i.includes(t)||await e.env.data.clients.update(e.var.tenant_id,r.client_id,{connections:[...i,t]}):i.includes(t)&&await e.env.data.clients.update(e.var.tenant_id,r.client_id,{connections:i.filter(e=>e!==t)})}return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Update Connection Clients`,targetType:`connection_client`,targetId:t}),e.body(null,204)}}),kH=L({route:(0,f.createRoute)({tags:[`connections`],method:`post`,path:`/{id}/try`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()}),body:{content:{"application/json":{schema:f.z.object({username:f.z.string().optional(),password:f.z.string().optional()}).optional()}}}},security:[{Bearer:[`update:connections`]}],responses:{200:{content:{"application/json":{schema:f.z.union([f.z.object({mode:f.z.literal(`redirect`),authorize_url:f.z.string(),state:f.z.string(),result_url:f.z.string(),client_id:f.z.string(),connection:f.z.object({id:f.z.string(),name:f.z.string(),strategy:f.z.string()})}),f.z.object({mode:f.z.literal(`inline`),status:f.z.enum([`success`,`error`]),connection_id:f.z.string(),connection_name:f.z.string(),strategy:f.z.string(),userinfo:f.z.record(f.z.string(),f.z.unknown()).optional(),raw:f.z.record(f.z.string(),f.z.unknown()).nullable().optional(),error:f.z.string().optional(),error_description:f.z.string().optional()})])}},description:`Test outcome (inline) or how to drive the test (redirect)`}}}),handler:async e=>{let{id:t}=e.req.valid(`param`),n=e.var.tenant_id,r=await e.env.data.connections.get(n,t);if(!r)throw new m(404,{message:`Connection not found`});let i=r.id??t,a=await Ere(e.env,n);if(await I(e,n,{type:P.SUCCESS_API_OPERATION,description:`Try Connection initiated`,targetType:`connection`,targetId:t}),gH(r.strategy)){let t=e.req.valid(`json`)??{};if(!t.username||!t.password)throw new m(400,{message:`username and password are required for database connections`});let o=await bk(e.env,a,n);try{let{user:n}=await pH(e,o,{username:t.username,password:t.password,client_id:a},void 0,r.name);return e.json({mode:`inline`,status:`success`,connection_id:i,connection_name:r.name,strategy:r.strategy,userinfo:n,raw:n})}catch(t){let n=t instanceof Error?t.message:`Password login failed`,a=t&&typeof t==`object`&&`code`in t?String(t.code):`error`;return e.json({mode:`inline`,status:`error`,connection_id:i,connection_name:r.name,strategy:r.strategy,error:a,error_description:n})}}let o=await Dre(e.env,n),s=To(),c=new URL(mN(e.env,o)),l=e.req.header(`origin`);if(l)try{new URL(l).origin===l&&c.searchParams.set(`opener_origin`,l)}catch{}let u=c.toString(),d=La(e.env,o),f=new URL(`${d}authorize`);return f.searchParams.set(`client_id`,a),f.searchParams.set(`response_type`,`code`),f.searchParams.set(`scope`,`openid profile email`),f.searchParams.set(`connection`,r.name),f.searchParams.set(`redirect_uri`,u),f.searchParams.set(`state`,s),e.json({mode:`redirect`,authorize_url:f.toString(),state:s,result_url:u,client_id:a,connection:{id:i,name:r.name,strategy:r.strategy}})}}),AH=new f.OpenAPIHono().openapiRoutes([SH,CH,wH,TH,EH,DH,OH,kH]),jH=L({route:(0,f.createRoute)({tags:[`prompts`],method:`get`,path:`/`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:prompts`]}],responses:{200:{content:{"application/json":{schema:wi}},description:`Branding settings`}}}),handler:async e=>{let t=await e.env.data.promptSettings.get(e.var.tenant_id);return t?e.json(t):e.json(wi.parse({}))}}),MH=L({route:(0,f.createRoute)({tags:[`prompts`],method:`patch`,path:`/`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),body:{content:{"application/json":{schema:f.z.object(wi.shape).partial()}}}},security:[{Bearer:[`update:prompts`]}],responses:{200:{description:`Prompts settings`}}}),handler:async e=>{let t=e.req.valid(`json`),n=await e.env.data.promptSettings.get(e.var.tenant_id);return await e.env.data.promptSettings.set(e.var.tenant_id,{...n,...t}),await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Update Prompt Settings`,targetType:`prompt_settings`,targetId:e.var.tenant_id}),e.json(await e.env.data.promptSettings.get(e.var.tenant_id))}}),NH=L({route:(0,f.createRoute)({tags:[`prompts`],method:`get`,path:`/custom-text`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:prompts`]}],responses:{200:{content:{"application/json":{schema:f.z.array(f.z.object({prompt:xa,language:f.z.string()}))}},description:`List of custom text entries`}}}),handler:async e=>{let t=await e.env.data.customText.list(e.var.tenant_id);return e.json(t)}}),PH=L({route:(0,f.createRoute)({tags:[`prompts`],method:`get`,path:`/custom-text/defaults`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),query:f.z.object({language:f.z.string().optional(),prompt:f.z.string().optional()})},security:[{Bearer:[`read:prompts`]}],responses:{200:{content:{"application/json":{schema:f.z.array(f.z.object({prompt:f.z.string(),language:f.z.string(),custom_text:Sa}))}},description:`Bundled default text for every prompt/language shipped with authhero. authhero extension; not available in Auth0.`}}}),handler:async e=>{let{language:t,prompt:n}=e.req.valid(`query`);return e.json(Ic({language:t,prompt:n}))}}),FH=L({route:(0,f.createRoute)({tags:[`prompts`],method:`get`,path:`/{prompt}/custom-text/{language}`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),params:f.z.object({prompt:xa,language:f.z.string()})},security:[{Bearer:[`read:prompts`]}],responses:{200:{content:{"application/json":{schema:Sa}},description:`Custom text for the prompt and language`}}}),handler:async e=>{let{prompt:t,language:n}=e.req.valid(`param`),r=await e.env.data.customText.get(e.var.tenant_id,t,n);return e.json(r??{})}}),IH=L({route:(0,f.createRoute)({tags:[`prompts`],method:`put`,path:`/{prompt}/custom-text/{language}`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),params:f.z.object({prompt:xa,language:f.z.string()}),body:{content:{"application/json":{schema:Sa}}}},security:[{Bearer:[`update:prompts`]}],responses:{200:{content:{"application/json":{schema:Sa}},description:`Updated custom text`}}}),handler:async e=>{let{prompt:t,language:n}=e.req.valid(`param`),r=await e.req.json(),i=Sa.parse(r);return await e.env.data.customText.set(e.var.tenant_id,t,n,i),await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Set Custom Text`,targetType:`custom_text`,targetId:e.var.tenant_id}),e.json(i)}}),LH=L({route:(0,f.createRoute)({tags:[`prompts`],method:`delete`,path:`/{prompt}/custom-text/{language}`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),params:f.z.object({prompt:xa,language:f.z.string()})},security:[{Bearer:[`delete:prompts`]}],responses:{204:{description:`Custom text deleted`}}}),handler:async e=>{let{prompt:t,language:n}=e.req.valid(`param`);return await e.env.data.customText.delete(e.var.tenant_id,t,n),await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Delete Custom Text`,targetType:`custom_text`,targetId:e.var.tenant_id}),e.body(null,204)}}),RH=new f.OpenAPIHono().openapiRoutes([jH,MH,NH,PH,FH,IH,LH]),zH=!1;function BH(e){e.use(async(t,n)=>(zH||=(e.openAPIRegistry.registerComponent(`securitySchemes`,`Bearer`,{type:`oauth2`,scheme:`bearer`,flows:{implicit:{authorizationUrl:`${t.env.AUTH_URL}/authorize`,scopes:{openid:`Basic user information`,email:`User email`,profile:`User profile information`}}}}),!0),await n()))}var VH=e=>WH(e.replace(/_|-/g,e=>({_:`/`,"-":`+`})[e]??e)),HH=e=>UH(e).replace(/\/|\+/g,e=>({"/":`_`,"+":`-`})[e]??e),UH=e=>{let t=``,n=new Uint8Array(e);for(let e=0,r=n.length;e<r;e++)t+=String.fromCharCode(n[e]);return btoa(t)},WH=e=>{let t=atob(e),n=new Uint8Array(new ArrayBuffer(t.length)),r=t.length/2;for(let e=0,i=t.length-1;e<=r;e++,i--)n[e]=t.charCodeAt(e),n[i]=t.charCodeAt(i);return n},GH=(e=>(e.HS256=`HS256`,e.HS384=`HS384`,e.HS512=`HS512`,e.RS256=`RS256`,e.RS384=`RS384`,e.RS512=`RS512`,e.PS256=`PS256`,e.PS384=`PS384`,e.PS512=`PS512`,e.ES256=`ES256`,e.ES384=`ES384`,e.ES512=`ES512`,e.EdDSA=`EdDSA`,e))(GH||{}),KH=class extends Error{constructor(e){super(`${e} is not an implemented algorithm`),this.name=`JwtAlgorithmNotImplemented`}},qH=class extends Error{constructor(){super(`JWT verification requires "alg" option to be specified`),this.name=`JwtAlgorithmRequired`}},JH=class extends Error{constructor(e,t){super(`JWT algorithm mismatch: expected "${e}", got "${t}"`),this.name=`JwtAlgorithmMismatch`}},YH=class extends Error{constructor(e){super(`invalid JWT token: ${e}`),this.name=`JwtTokenInvalid`}},XH=class extends Error{constructor(e){super(`token (${e}) is being used before it's valid`),this.name=`JwtTokenNotBefore`}},ZH=class extends Error{constructor(e){super(`token (${e}) expired`),this.name=`JwtTokenExpired`}},QH=class extends Error{constructor(e,t){super(`Invalid "iat" claim, must be a valid number lower than "${e}" (iat: "${t}")`),this.name=`JwtTokenIssuedAt`}},$H=class extends Error{constructor(e,t){super(`expected issuer "${e}", got ${t?`"${t}"`:`none`} `),this.name=`JwtTokenIssuer`}},eU=class extends Error{constructor(e){super(`jwt header is invalid: ${JSON.stringify(e)}`),this.name=`JwtHeaderInvalid`}},tU=class extends Error{constructor(e){super(`required "kid" in jwt header: ${JSON.stringify(e)}`),this.name=`JwtHeaderRequiresKid`}},nU=class extends Error{constructor(e){super(`symmetric algorithm "${e}" is not allowed for JWK verification`),this.name=`JwtSymmetricAlgorithmNotAllowed`}},rU=class extends Error{constructor(e,t){super(`algorithm "${e}" is not in the allowed list: [${t.join(`, `)}]`),this.name=`JwtAlgorithmNotAllowed`}},iU=class extends Error{constructor(e){super(`token(${e}) signature mismatched`),this.name=`JwtTokenSignatureMismatched`}},aU=class extends Error{constructor(e){super(`required "aud" in jwt payload: ${JSON.stringify(e)}`),this.name=`JwtPayloadRequiresAud`}},oU=class extends Error{constructor(e,t){super(`expected audience "${Array.isArray(e)?e.join(`, `):e}", got "${t}"`),this.name=`JwtTokenAudience`}},sU=(e=>(e.Encrypt=`encrypt`,e.Decrypt=`decrypt`,e.Sign=`sign`,e.Verify=`verify`,e.DeriveKey=`deriveKey`,e.DeriveBits=`deriveBits`,e.WrapKey=`wrapKey`,e.UnwrapKey=`unwrapKey`,e))(sU||{}),cU=new TextEncoder,lU=new TextDecoder;async function uU(e,t,n){let r=gU(t),i=await pU(e,r);return await crypto.subtle.sign(r,i,n)}async function dU(e,t,n,r){let i=gU(t),a=await mU(e,i);return await crypto.subtle.verify(i,a,n,r)}function fU(e){return WH(e.replace(/-+(BEGIN|END).*?-+/g,``).replace(/\s/g,``))}async function pU(e,t){if(!crypto.subtle||!crypto.subtle.importKey)throw Error("`crypto.subtle.importKey` is undefined. JWT auth middleware requires it.");if(_U(e)){if(e.type!==`private`&&e.type!==`secret`)throw Error(`unexpected key type: CryptoKey.type is ${e.type}, expected private or secret`);return e}let n=[sU.Sign];return typeof e==`object`?await crypto.subtle.importKey(`jwk`,e,t,!1,n):e.includes(`PRIVATE`)?await crypto.subtle.importKey(`pkcs8`,fU(e),t,!1,n):await crypto.subtle.importKey(`raw`,cU.encode(e),t,!1,n)}async function mU(e,t){if(!crypto.subtle||!crypto.subtle.importKey)throw Error("`crypto.subtle.importKey` is undefined. JWT auth middleware requires it.");if(_U(e)){if(e.type===`public`||e.type===`secret`)return e;e=await hU(e)}typeof e==`string`&&e.includes(`PRIVATE`)&&(e=await hU(await crypto.subtle.importKey(`pkcs8`,fU(e),t,!0,[sU.Sign])));let n=[sU.Verify];return typeof e==`object`?await crypto.subtle.importKey(`jwk`,e,t,!1,n):e.includes(`PUBLIC`)?await crypto.subtle.importKey(`spki`,fU(e),t,!1,n):await crypto.subtle.importKey(`raw`,cU.encode(e),t,!1,n)}async function hU(e){if(e.type!==`private`)throw Error(`unexpected key type: ${e.type}`);if(!e.extractable)throw Error(`unexpected private key is unextractable`);let t=await crypto.subtle.exportKey(`jwk`,e),{kty:n}=t,{alg:r,e:i,n:a}=t,{crv:o,x:s,y:c}=t;return{kty:n,alg:r,e:i,n:a,crv:o,x:s,y:c,key_ops:[sU.Verify]}}function gU(e){switch(e){case`HS256`:return{name:`HMAC`,hash:{name:`SHA-256`}};case`HS384`:return{name:`HMAC`,hash:{name:`SHA-384`}};case`HS512`:return{name:`HMAC`,hash:{name:`SHA-512`}};case`RS256`:return{name:`RSASSA-PKCS1-v1_5`,hash:{name:`SHA-256`}};case`RS384`:return{name:`RSASSA-PKCS1-v1_5`,hash:{name:`SHA-384`}};case`RS512`:return{name:`RSASSA-PKCS1-v1_5`,hash:{name:`SHA-512`}};case`PS256`:return{name:`RSA-PSS`,hash:{name:`SHA-256`},saltLength:32};case`PS384`:return{name:`RSA-PSS`,hash:{name:`SHA-384`},saltLength:48};case`PS512`:return{name:`RSA-PSS`,hash:{name:`SHA-512`},saltLength:64};case`ES256`:return{name:`ECDSA`,hash:{name:`SHA-256`},namedCurve:`P-256`};case`ES384`:return{name:`ECDSA`,hash:{name:`SHA-384`},namedCurve:`P-384`};case`ES512`:return{name:`ECDSA`,hash:{name:`SHA-512`},namedCurve:`P-521`};case`EdDSA`:return{name:`Ed25519`,namedCurve:`Ed25519`};default:throw new KH(e)}}function _U(e){return za()===`node`&&crypto.webcrypto?e instanceof crypto.webcrypto.CryptoKey:e instanceof CryptoKey}var vU=e=>HH(cU.encode(JSON.stringify(e)).buffer).replace(/=/g,``),yU=e=>HH(e).replace(/=/g,``),bU=e=>JSON.parse(lU.decode(VH(e)));function xU(e){if(typeof e==`object`&&e){let t=e;return`alg`in t&&Object.values(GH).includes(t.alg)&&(!(`typ`in t)||t.typ===`JWT`)}return!1}var SU=async(e,t,n=`HS256`)=>{let r=vU(e),i;typeof t==`object`&&`alg`in t?(n=t.alg,i=vU({alg:n,typ:`JWT`,kid:t.kid})):i=vU({alg:n,typ:`JWT`});let a=`${i}.${r}`;return`${a}.${yU(await uU(t,n,cU.encode(a)))}`},CU=async(e,t,n)=>{if(!n)throw new qH;let{alg:r,iss:i,nbf:a=!0,exp:o=!0,iat:s=!0,aud:c}=typeof n==`string`?{alg:n}:n;if(!r)throw new qH;let l=e.split(`.`);if(l.length!==3)throw new YH(e);let{header:u,payload:d}=EU(e);if(!xU(u))throw new eU(u);if(u.alg!==r)throw new JH(r,u.alg);let f=Math.floor(Date.now()/1e3);if(a&&d.nbf!==void 0&&(typeof d.nbf!=`number`||!Number.isFinite(d.nbf)||d.nbf>f))throw new XH(e);if(o&&d.exp!==void 0&&(typeof d.exp!=`number`||!Number.isFinite(d.exp)||d.exp<=f))throw new ZH(e);if(s&&d.iat!==void 0&&(typeof d.iat!=`number`||!Number.isFinite(d.iat)||f<d.iat))throw new QH(f,d.iat);if(i){if(!d.iss)throw new $H(i,null);if(typeof i==`string`&&d.iss!==i||i instanceof RegExp&&!i.test(d.iss))throw new $H(i,d.iss)}if(c){if(!d.aud)throw new aU(d);if(!(Array.isArray(d.aud)?d.aud:[d.aud]).some(e=>c instanceof RegExp?c.test(e):typeof c==`string`?e===c:Array.isArray(c)&&c.includes(e)))throw new oU(c,d.aud)}let p=e.substring(0,e.lastIndexOf(`.`));if(!await dU(t,r,VH(l[2]),cU.encode(p)))throw new iU(e);return d},wU=[GH.HS256,GH.HS384,GH.HS512],TU=async(e,t,n)=>{let r=t.verification||{},i=DU(e);if(!xU(i))throw new eU(i);if(!i.kid)throw new tU(i);if(wU.includes(i.alg))throw new nU(i.alg);if(!t.allowedAlgorithms.includes(i.alg))throw new rU(i.alg,t.allowedAlgorithms);let a=t.keys?[...t.keys]:void 0;if(t.jwks_uri){let e=await fetch(t.jwks_uri,n);if(!e.ok)throw Error(`failed to fetch JWKS from ${t.jwks_uri}`);let r=await e.json();if(!r.keys)throw Error(`invalid JWKS response. "keys" field is missing`);if(!Array.isArray(r.keys))throw Error(`invalid JWKS response. "keys" field is not an array`);a??=[],a.push(...r.keys)}else if(!a)throw Error(`verifyWithJwks requires options for either "keys" or "jwks_uri" or both`);let o=a.find(e=>e.kid===i.kid);if(!o)throw new YH(e);if(o.alg&&o.alg!==i.alg)throw new JH(o.alg,i.alg);return await CU(e,o,{alg:i.alg,...r})},EU=e=>{let t=e.split(`.`);if(t.length!==3)throw new YH(e);try{return{header:bU(t[0]),payload:bU(t[1])}}catch{throw new YH(e)}},DU=e=>{let t=e.split(`.`);if(t.length!==3)throw new YH(e);try{return bU(t[0])}catch{throw new YH(e)}},OU={sign:SU,verify:CU,decode:EU,verifyWithJwks:TU};OU.verifyWithJwks;var kU=OU.verify,AU=OU.decode;OU.sign;async function jU(e){return Promise.all(e.map(async e=>{let t=await new pE(e.cert).publicKey.export(),n=await crypto.subtle.exportKey(`jwk`,t),r=n.alg??OO(n);return jr.parse({...n,alg:r,use:`sig`,kid:e.kid})}))}async function MU(e,t,n){return jU(await GE(e.keys,t,n,{purpose:`publish`}))}async function NU(e,t,n){return t?MU(e,t,n):jU(await UE(e.keys))}function PU(e){switch(e){case`RS256`:case`RS384`:case`RS512`:case`ES256`:case`ES384`:case`ES512`:return e;default:throw new B(401,{message:`Unsupported JWS alg: ${e??`(missing)`}`})}}var FU=class extends B{constructor(){super(403,{message:`Invalid JWT signature`}),this.name=`JwtExpiredError`}};async function IU(e,t,n={}){try{let{header:r}=AU(t),i=PU(r?.alg),a=(await NU(e.env.data,e.var.tenant_id,e.env.signingKeyMode)).find(e=>e.kid===r.kid);if(!a)throw new B(401,{message:`No matching kid found`});if(a.alg!==i)throw new B(401,{message:`alg mismatch between token header and JWK`});let o=kO(a,i),s=await kU(t,await crypto.subtle.importKey(`jwk`,a,o,!1,[`verify`]),i);if(!n.skipIssuerCheck){let t=Fa(e.env,e.var.custom_domain);if(s.iss!==t)throw new B(401,{message:`Invalid issuer`})}return s}catch(e){throw e instanceof m?e:e instanceof Error&&e.name===`JwtTokenExpired`?new FU:new B(403,{message:`Invalid JWT signature`})}}function LU(e){if(!e)return;let[t,n]=e.split(` `);if(!(!t||t.toLowerCase()!==`bearer`))return n?.trim()||void 0}function RU(e){if(!e)return{};let[t,n]=e.split(` `);if(t?.toLowerCase()!==`basic`||!n)return{};try{let[e,t]=atob(n).split(`:`);return!e||!t?{}:{client_id:e,client_secret:t}}catch{return{}}}var zU=`urn:authhero:management`;function BU(e){return e.replace(/:([a-zA-Z_][a-zA-Z0-9_]*)/g,`{$1}`)}function VU(e){let t=e.split(`:`);if(t.length!==2||!t[0]||!t[1])return[e];let n=`${t[1]}:${t[0]}`;return n===e?[e]:[e,n]}function HU(e,t={}){let n=t.requireManagementAudience??!1,r=t.relaxManagementAudience??!1,i=t.additionalManagementAudiences;return async(t,a)=>{let o=t.req.matchedRoutes.find(e=>e.method.toUpperCase()===t.req.method&&e.path!==`/*`);if(!o)return await a();let s=BU(o.path),c=s.startsWith(`/api/v2`)?s.slice(7)||`/`:s,l=e.openAPIRegistry.definitions.find(e=>`route`in e&&e.route.path===c&&e.route.method.toUpperCase()===t.req.method.toUpperCase());if(l&&`route`in l){let e=l.route.security?.[0]?.Bearer;if(e===void 0)return await a();let o=LU(t.req.header(`authorization`));if(!o)throw new B(401,{message:`Missing bearer token`});try{let a=await IU(t,o);if(t.set(`user_id`,a.sub),t.set(`user`,a),a.azp&&t.set(`client_id`,a.azp),a.org_name&&t.set(`org_name`,a.org_name),a.org_id&&t.set(`organization_id`,a.org_id),!t.var.tenant_id&&a.tenant_id&&t.set(`tenant_id`,a.tenant_id),n){let e=a.aud,n=Array.isArray(e)?e:e?[e]:[],o=typeof a.tenant_id==`string`?a.tenant_id:void 0,s=i?await i({tenant_id:o}):[],c=new Set([zU,...s]);if(!n.some(e=>c.has(e)))if(r)console.warn(`[authhero] management API accepted token without management audience (relaxManagementAudience=true): sub=${a.sub??`unknown`} aud=${JSON.stringify(e)}`);else throw new B(403,{message:`Invalid audience`});let l=typeof a.tenant_id==`string`?a.tenant_id:void 0,u=t.var.tenant_id;if(l&&u&&l!==u){let e=t.env.data?.multiTenancyConfig?.controlPlaneTenantId;if(!e||l!==e)throw new B(403,{message:`Cross-tenant management requires a control-plane token`})}}let s=Array.isArray(a.permissions)?a.permissions:[],c=typeof a.scope==`string`?a.scope.split(` `):Array.isArray(a.scope)?a.scope:[];if(e.length){let t=e.flatMap(VU);if(!(t.some(e=>s.includes(e))||t.some(e=>c.includes(e))))throw new B(403,{message:`Unauthorized`})}}catch(e){throw e instanceof m?e:new B(403,{message:`Invalid token`})}}return await a()}}var UU=L({route:(0,f.createRoute)({tags:[`emails`],method:`get`,path:`/`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:email_provider`]}],responses:{200:{content:{"application/json":{schema:f.z.object(Ai.shape).partial()}},description:`Email provider`}}}),handler:async e=>{let t=await e.env.data.emailProviders.get(e.var.tenant_id);return e.json(t??{})}}),WU=L({route:(0,f.createRoute)({tags:[`emails`],method:`post`,path:`/`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),body:{content:{"application/json":{schema:f.z.object(Ai.shape)}}}},security:[{Bearer:[`create:email_provider`]}],responses:{201:{content:{"application/json":{schema:Ai}},description:`Email provider`},409:{description:`Email provider already configured`}}}),handler:async e=>{let t=e.req.valid(`json`);if(await e.env.data.emailProviders.get(e.var.tenant_id))throw new m(409,{message:`Email provider already configured`});await e.env.data.emailProviders.create(e.var.tenant_id,t),await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Create Email Provider`,targetType:`email_provider`,targetId:e.var.tenant_id});let n=await e.env.data.emailProviders.get(e.var.tenant_id);return e.json(n??t,{status:201})}}),GU=L({route:(0,f.createRoute)({tags:[`emails`],method:`patch`,path:`/`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),body:{content:{"application/json":{schema:f.z.object(Ai.shape).partial()}}}},security:[{Bearer:[`update:email_provider`]}],responses:{200:{content:{"application/json":{schema:Ai}},description:`Email provider`}}}),handler:async e=>{let t=e.req.valid(`json`);await e.env.data.emailProviders.update(e.var.tenant_id,t);let n=await e.env.data.emailProviders.get(e.var.tenant_id);if(!n)throw new m(404,{message:`Email provider not found`});return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Update Email Provider`,targetType:`email_provider`,targetId:e.var.tenant_id}),e.json(n)}}),KU=L({route:(0,f.createRoute)({tags:[`emails`],method:`delete`,path:`/`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`delete:email_provider`]}],responses:{204:{description:`Email provider deleted`},404:{description:`Email provider not found`}}}),handler:async e=>{if(!await e.env.data.emailProviders.get(e.var.tenant_id))throw new m(404,{message:`Email provider not found`});return await e.env.data.emailProviders.remove(e.var.tenant_id),await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Delete Email Provider`,targetType:`email_provider`,targetId:e.var.tenant_id}),e.body(null,204)}}),qU=new f.OpenAPIHono().openapiRoutes([UU,WU,GU,KU]),JU=f.z.object({"tenant-id":f.z.string().optional()}),YU=f.z.object({templateName:ji}),XU=Mi.partial(),ZU=Mi.extend({from:Mi.shape.from.optional()}),QU=L({route:(0,f.createRoute)({tags:[`email-templates`],method:`post`,path:`/`,request:{headers:JU,body:{content:{"application/json":{schema:Mi}}}},security:[{Bearer:[`create:email_templates`]}],responses:{201:{content:{"application/json":{schema:Mi}},description:`Email template`},409:{description:`Template already exists`}}}),handler:async e=>{let t=e.req.valid(`json`);if(await e.env.data.emailTemplates.get(e.var.tenant_id,t.template))throw new m(409,{message:`Email template already configured`});let n=await e.env.data.emailTemplates.create(e.var.tenant_id,t);return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Create Email Template`,targetType:`email_template`,targetId:t.template}),e.json(n,{status:201})}}),$U=f.z.object({name:ji,body:f.z.string(),subject:f.z.string()}),eW=L({route:(0,f.createRoute)({tags:[`email-templates`],method:`get`,path:`/defaults`,request:{headers:JU},security:[{Bearer:[`read:email_templates`]}],responses:{200:{content:{"application/json":{schema:f.z.array($U)}},description:`Bundled default email templates shipped with authhero. authhero extension; not available in Auth0.`}}}),handler:async e=>{let t=[];for(let e of ji.options){let n=xV(e);n&&t.push({name:e,body:n.body,subject:n.subject})}return e.json(t)}}),tW=L({route:(0,f.createRoute)({tags:[`email-templates`],method:`get`,path:`/{templateName}`,request:{headers:JU,params:YU},security:[{Bearer:[`read:email_templates`]}],responses:{200:{content:{"application/json":{schema:Mi}},description:`Email template`},404:{description:`Template not found`}}}),handler:async e=>{let{templateName:t}=e.req.valid(`param`),n=await e.env.data.emailTemplates.get(e.var.tenant_id,t);if(!n)throw new m(404,{message:`Email template not found`});return e.json(n)}}),nW=L({route:(0,f.createRoute)({tags:[`email-templates`],method:`put`,path:`/{templateName}`,request:{headers:JU,params:YU,body:{content:{"application/json":{schema:ZU}}}},security:[{Bearer:[`update:email_templates`]}],responses:{200:{content:{"application/json":{schema:Mi}},description:`Email template upserted`}}}),handler:async e=>{let{templateName:t}=e.req.valid(`param`),n=e.req.valid(`json`);if(n.template!==t)throw new m(400,{message:`Body template must match URL templateName`});let r=n.from?.trim()??``,i={...n,from:r};await e.env.data.emailTemplates.get(e.var.tenant_id,t)?await e.env.data.emailTemplates.update(e.var.tenant_id,t,i):await e.env.data.emailTemplates.create(e.var.tenant_id,i);let a=await e.env.data.emailTemplates.get(e.var.tenant_id,t);if(!a)throw new m(500,{message:`Email template not found after upsert (tenant_id=${e.var.tenant_id}, template=${t})`});return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Update Email Template`,targetType:`email_template`,targetId:t}),e.json(a)}}),rW=L({route:(0,f.createRoute)({tags:[`email-templates`],method:`patch`,path:`/{templateName}`,request:{headers:JU,params:YU,body:{content:{"application/json":{schema:XU}}}},security:[{Bearer:[`update:email_templates`]}],responses:{200:{content:{"application/json":{schema:Mi}},description:`Email template`},404:{description:`Template not found`}}}),handler:async e=>{let{templateName:t}=e.req.valid(`param`),n=e.req.valid(`json`);if(!await e.env.data.emailTemplates.update(e.var.tenant_id,t,n))throw new m(404,{message:`Email template not found`});let r=await e.env.data.emailTemplates.get(e.var.tenant_id,t);if(!r)throw new m(404,{message:`Email template not found`});return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Patch Email Template`,targetType:`email_template`,targetId:t}),e.json(r)}}),iW=L({route:(0,f.createRoute)({tags:[`email-templates`],method:`delete`,path:`/{templateName}`,request:{headers:JU,params:YU},security:[{Bearer:[`update:email_templates`]}],responses:{204:{description:`Tenant override removed; subsequent sends use the bundled default. authhero extension; not available in Auth0.`},404:{description:`Template override not found`}}}),handler:async e=>{let{templateName:t}=e.req.valid(`param`);if(!await e.env.data.emailTemplates.remove(e.var.tenant_id,t))throw new m(404,{message:`Email template not found`});return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Delete Email Template`,targetType:`email_template`,targetId:t}),e.body(null,204)}}),aW=L({route:(0,f.createRoute)({tags:[`email-templates`],method:`post`,path:`/{templateName}/try`,request:{headers:JU,params:YU,body:{content:{"application/json":{schema:f.z.object({to:f.z.string().email(),body:f.z.string().optional(),subject:f.z.string().optional(),from:f.z.string().optional(),language:f.z.string().optional()})}}}},security:[{Bearer:[`update:email_templates`]}],responses:{200:{content:{"application/json":{schema:f.z.object({sent:f.z.boolean()})}},description:`Sends a test email rendered with sample data. authhero extension; not available in Auth0.`}}}),handler:async e=>{let{templateName:t}=e.req.valid(`param`),n=e.req.valid(`json`),r=n.from?.trim();return await WV(e,{to:n.to,templateName:t,body:n.body,subject:n.subject,from:r===``?void 0:r,language:n.language}),await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Test Email Sent (${t})`,targetType:`email_template`,targetId:t}),e.json({sent:!0})}}),oW=new f.OpenAPIHono().openapiRoutes([QU,eW,tW,nW,rW,iW,aW]),sW=L({route:(0,f.createRoute)({tags:[`sessions`],method:`get`,path:`/{id}`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:sessions`]}],responses:{200:{content:{"application/json":{schema:ui}},description:`A session`}}}),handler:async e=>{let{id:t}=e.req.valid(`param`),n=await e.env.data.sessions.get(e.var.tenant_id,t);if(!n)throw new m(404);return e.json(n)}}),cW=L({route:(0,f.createRoute)({tags:[`sessions`],method:`delete`,path:`/{id}`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`delete:sessions`]}],responses:{200:{description:`Status`}}}),handler:async e=>{let{id:t}=e.req.valid(`param`);if(!await e.env.data.sessions.remove(e.var.tenant_id,t))throw new m(404,{message:`Session not found`});return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Delete a Session`,targetType:`session`,targetId:t}),e.text(`OK`)}}),lW=L({route:(0,f.createRoute)({tags:[`sessions`],method:`post`,path:`/{id}/revoke`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`update:sessions`]}],responses:{202:{description:`Session deletion status`}}}),handler:async e=>{let{id:t}=e.req.valid(`param`);if(!await e.env.data.sessions.update(e.var.tenant_id,t,{revoked_at:new Date().toISOString()}))throw new m(404,{message:`Session not found`});return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Revoke a Session`,targetType:`session`,targetId:t}),e.text(`Session deletion request accepted.`,{status:202})}}),uW=new f.OpenAPIHono().openapiRoutes([sW,cW,lW]),dW=L({route:(0,f.createRoute)({tags:[`refresh_tokens`],method:`get`,path:`/{id}`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:refresh_tokens`]}],responses:{200:{content:{"application/json":{schema:Ni}},description:`A session`}}}),handler:async e=>{let{id:t}=e.req.valid(`param`),n=await e.env.data.refreshTokens.get(e.var.tenant_id,t);if(!n)throw new m(404);return e.json(n)}}),fW=L({route:(0,f.createRoute)({tags:[`refresh_tokens`],method:`delete`,path:`/{id}`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`delete:refresh_tokens`]}],responses:{200:{description:`Status`}}}),handler:async e=>{let{id:t}=e.req.valid(`param`),n=await e.env.data.refreshTokens.get(e.var.tenant_id,t),r=n?.family_id??n?.id;if(r&&await e.env.data.refreshTokens.revokeFamily(e.var.tenant_id,r,new Date().toISOString()),!await e.env.data.refreshTokens.remove(e.var.tenant_id,t))throw new m(404,{message:`Session not found`});return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Delete a Refresh Token`,targetType:`refresh_token`,targetId:t}),e.text(`OK`)}}),pW=new f.OpenAPIHono().openapiRoutes([dW,fW]),mW=`controlplane.sync.`;function hW(e,t){if(!e.env.outbox?.enabled||!e.env.data.outbox)return;let n={tenant_id:t.tenantId,event_type:`${mW}${t.entity}.${t.op}`,log_type:P.SUCCESS_API_OPERATION,description:`Replicate ${t.entity} ${t.op} to control plane`,category:`system`,actor:{type:e.var.user_id?`admin`:e.var.client_id?`client_credentials`:`system`,id:e.var.user_id||void 0,client_id:e.var.client_id||void 0},target:{type:t.entity,id:t.aggregateId,after:t.payload},request:{method:e.req.method,path:e.req.path,ip:e.var.ip||``,user_agent:e.var.useragent||void 0},hostname:e.var.host||``,auth0_client:e.var.auth0_client,timestamp:new Date().toISOString()},r=e.env.data.outbox.create(t.tenantId,n),i=e.var.outboxEventPromises||[];i.push(r),e.set(`outboxEventPromises`,i)}var gW=L({route:(0,f.createRoute)({tags:[`custom-domains`],method:`get`,path:`/`,request:{query:eo,headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:custom_domains`]}],responses:{200:{content:{"application/json":{schema:f.z.array(bn)}},description:`List of custom domains`}}}),handler:async e=>{let t=await e.env.data.customDomains.list(e.var.tenant_id);return e.json(t)}}),_W=L({route:(0,f.createRoute)({tags:[`custom-domains`],method:`get`,path:`/{id}`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:custom_domains`]}],responses:{200:{content:{"application/json":{schema:bn}},description:`A customDomain`}}}),handler:async e=>{let{id:t}=e.req.valid(`param`),n=await e.env.data.customDomains.get(e.var.tenant_id,t);if(!n)throw new m(404);return e.json(n)}}),vW=L({route:(0,f.createRoute)({tags:[`custom-domains`],method:`delete`,path:`/{id}`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`delete:custom_domains`]}],responses:{200:{description:`Status`}}}),handler:async e=>{let{id:t}=e.req.valid(`param`),n=await e.env.data.customDomains.get(e.var.tenant_id,t);if(!await e.env.data.customDomains.remove(e.var.tenant_id,t))throw new m(404,{message:`Custom domain not found`});return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Delete a Custom Domain`,targetType:`custom_domain`,targetId:t}),n&&hW(e,{tenantId:e.var.tenant_id,entity:`custom_domain`,op:`deleted`,aggregateId:t,payload:n}),e.text(`OK`)}}),yW=L({route:(0,f.createRoute)({tags:[`custom-domains`],method:`patch`,path:`/{id}`,request:{body:{content:{"application/json":{schema:xn}}},params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`update:custom_domains`]}],responses:{200:{content:{"application/json":{schema:bn}},description:`The updated custom domain`}}}),handler:async e=>{let{id:t}=e.req.valid(`param`),n=e.req.valid(`json`);if(!await e.env.data.customDomains.update(e.var.tenant_id,t,n))throw new m(404);let r=await e.env.data.customDomains.get(e.var.tenant_id,t);if(!r)throw new m(404);return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Update a Custom Domain`,targetType:`custom_domain`,targetId:t,afterState:r}),hW(e,{tenantId:e.var.tenant_id,entity:`custom_domain`,op:`updated`,aggregateId:t,payload:r}),e.json(r)}}),bW=L({route:(0,f.createRoute)({tags:[`custom-domains`],method:`post`,path:`/`,request:{body:{content:{"application/json":{schema:f.z.object(vn.shape)}}},headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`create:custom_domains`]}],responses:{201:{content:{"application/json":{schema:bn}},description:`The created custom domain`}}}),handler:async e=>{let t=e.req.valid(`json`),n=await e.env.data.customDomains.create(e.var.tenant_id,t);return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Create a Custom Domain`,targetType:`custom_domain`,targetId:n.custom_domain_id,afterState:n}),hW(e,{tenantId:e.var.tenant_id,entity:`custom_domain`,op:`created`,aggregateId:n.custom_domain_id,payload:n}),e.json(n,{status:201})}}),xW=L({route:(0,f.createRoute)({tags:[`custom-domains`],method:`put`,path:`/{id}/certificate`,request:{body:{content:{"application/json":{schema:Sn}}},params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`update:custom_domains`]}],responses:{200:{content:{"application/json":{schema:bn}},description:`The custom domain with the uploaded certificate installed at the edge`}}}),handler:async e=>{let{id:t}=e.req.valid(`param`),n=e.req.valid(`json`),{uploadCertificate:r}=e.env.data.customDomains;if(!r)throw new m(501,{message:`The configured custom-domain adapter does not support certificate upload`});let i=await r(e.var.tenant_id,t,n);return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Upload a Custom Domain Certificate`,targetType:`custom_domain`,targetId:t}),e.json(i)}}),SW=L({route:(0,f.createRoute)({tags:[`custom-domains`],method:`post`,path:`/{id}/verify`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`update:custom_domains`]}],responses:{200:{content:{"application/json":{schema:bn}},description:`The custom domain`}}}),handler:async()=>{throw new m(501,{message:`Not implemented`})}}),CW=new f.OpenAPIHono().openapiRoutes([gW,_W,vW,yW,bW,xW,SW]);function wW(e){let t=e.env.data.logStreams;if(!t)throw new m(501,{message:`Log streams are not supported by this adapter`});return t}var TW=L({route:(0,f.createRoute)({tags:[`log-streams`],method:`get`,path:`/`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:log_streams`]}],responses:{200:{content:{"application/json":{schema:f.z.array(Zr)}},description:`List of log streams`}}}),handler:async e=>{let t=await wW(e).list(e.var.tenant_id);return e.json(t)}}),EW=L({route:(0,f.createRoute)({tags:[`log-streams`],method:`get`,path:`/{id}`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:log_streams`]}],responses:{200:{content:{"application/json":{schema:Zr}},description:`A log stream`}}}),handler:async e=>{let t=wW(e),{id:n}=e.req.valid(`param`),r=await t.get(e.var.tenant_id,n);if(!r)throw new m(404);return e.json(r)}}),DW=L({route:(0,f.createRoute)({tags:[`log-streams`],method:`post`,path:`/`,request:{body:{content:{"application/json":{schema:f.z.object(Xr.shape)}}},headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`create:log_streams`]}],responses:{201:{content:{"application/json":{schema:Zr}},description:`The created log stream`}}}),handler:async e=>{let t=wW(e),n=e.req.valid(`json`),r=await t.create(e.var.tenant_id,n);return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Create a Log Stream`,targetType:`log_stream`,targetId:r.id,afterState:r}),e.json(r,{status:201})}}),OW=L({route:(0,f.createRoute)({tags:[`log-streams`],method:`patch`,path:`/{id}`,request:{params:f.z.object({id:f.z.string()}),body:{content:{"application/json":{schema:f.z.object(Zr.shape).partial()}}},headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`update:log_streams`]}],responses:{200:{content:{"application/json":{schema:Zr}},description:`The updated log stream`}}}),handler:async e=>{let t=wW(e),{id:n}=e.req.valid(`param`),r=e.req.valid(`json`);if(!await t.update(e.var.tenant_id,n,r))throw new m(404);let i=await t.get(e.var.tenant_id,n);if(!i)throw new m(404);return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Update a Log Stream`,targetType:`log_stream`,targetId:n,afterState:i}),e.json(i)}}),kW=L({route:(0,f.createRoute)({tags:[`log-streams`],method:`delete`,path:`/{id}`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`delete:log_streams`]}],responses:{204:{description:`Log stream deleted`}}}),handler:async e=>{let t=wW(e),{id:n}=e.req.valid(`param`);if(!await t.remove(e.var.tenant_id,n))throw new m(404);return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Delete a Log Stream`,targetType:`log_stream`,targetId:n}),e.body(null,204)}}),AW=new f.OpenAPIHono().openapiRoutes([TW,EW,DW,OW,kW]),jW=`***`,MW=ti.extend({credentials:ti.shape.credentials.extend({client_secret:f.z.string()})});function NW(e){return{...e,credentials:{...e.credentials,client_secret:jW}}}function PW(e){let t=e.env.data.migrationSources;if(!t)throw new m(501,{message:`Migration sources are not supported by this adapter`});return t}var FW=L({route:(0,f.createRoute)({tags:[`migration-sources`],method:`get`,path:`/`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:migration_sources`]}],responses:{200:{content:{"application/json":{schema:f.z.array(MW)}},description:`List of migration sources`}}}),handler:async e=>{let t=await PW(e).list(e.var.tenant_id);return e.json(t.map(NW))}}),IW=L({route:(0,f.createRoute)({tags:[`migration-sources`],method:`get`,path:`/{id}`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:migration_sources`]}],responses:{200:{content:{"application/json":{schema:MW}},description:`A migration source`}}}),handler:async e=>{let t=PW(e),{id:n}=e.req.valid(`param`),r=await t.get(e.var.tenant_id,n);if(!r)throw new m(404);return e.json(NW(r))}}),LW=L({route:(0,f.createRoute)({tags:[`migration-sources`],method:`post`,path:`/`,request:{body:{content:{"application/json":{schema:f.z.object(ei.shape)}}},headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`create:migration_sources`]}],responses:{201:{content:{"application/json":{schema:MW}},description:`The created migration source`}}}),handler:async e=>{let t=PW(e),n=e.req.valid(`json`),r=await t.create(e.var.tenant_id,n);return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Create a Migration Source`,targetType:`migration_source`,targetId:r.id,afterState:NW(r)}),e.json(NW(r),{status:201})}}),RW=L({route:(0,f.createRoute)({tags:[`migration-sources`],method:`patch`,path:`/{id}`,request:{params:f.z.object({id:f.z.string()}),body:{content:{"application/json":{schema:f.z.object(ei.shape).partial()}}},headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`update:migration_sources`]}],responses:{200:{content:{"application/json":{schema:MW}},description:`The updated migration source`}}}),handler:async e=>{let t=PW(e),{id:n}=e.req.valid(`param`),r=e.req.valid(`json`);if(!await t.update(e.var.tenant_id,n,r))throw new m(404);let i=await t.get(e.var.tenant_id,n);if(!i)throw new m(404);return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Update a Migration Source`,targetType:`migration_source`,targetId:n,afterState:NW(i)}),e.json(NW(i))}}),zW=L({route:(0,f.createRoute)({tags:[`migration-sources`],method:`delete`,path:`/{id}`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`delete:migration_sources`]}],responses:{204:{description:`Migration source deleted`}}}),handler:async e=>{let t=PW(e),{id:n}=e.req.valid(`param`);if(!await t.remove(e.var.tenant_id,n))throw new m(404);return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Delete a Migration Source`,targetType:`migration_source`,targetId:n}),e.body(null,204)}}),BW=new f.OpenAPIHono().openapiRoutes([FW,IW,LW,RW,zW]);function VW(e){return!!e&&typeof e==`object`&&!Array.isArray(e)}function HW(e,t){if(!VW(t))return e;let n=VW(e)?{...e}:{};for(let[e,r]of Object.entries(t))n[e]=VW(r)?HW(n[e],r):r;return n}async function UW(e,t){let n=await e.env.data.tenants.get(e.var.tenant_id);if(!n)throw new m(404,{message:`Tenant not found`});return n.attack_protection?.[t]??{}}async function WW(e,t,n){let r=await e.env.data.tenants.get(e.var.tenant_id);if(!r)throw new m(404,{message:`Tenant not found`});let i=r.attack_protection??{},a=HW(i[t]??{},n??{}),o={...i,[t]:a};return await e.env.data.tenants.update(e.var.tenant_id,{attack_protection:o}),await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Update Attack Protection (${t})`,targetType:`attack_protection`,targetId:e.var.tenant_id}),o[t]}var GW=L({route:(0,f.createRoute)({tags:[`attack-protection`],method:`get`,path:`/breached-password-detection`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:attack_protection`]}],responses:{200:{content:{"application/json":{schema:ni}},description:`Breached password detection settings`}}}),handler:async e=>e.json(await UW(e,`breached_password_detection`))}),KW=L({route:(0,f.createRoute)({tags:[`attack-protection`],method:`patch`,path:`/breached-password-detection`,request:{body:{content:{"application/json":{schema:ni}}},headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`update:attack_protection`]}],responses:{200:{content:{"application/json":{schema:ni}},description:`Updated settings`}}}),handler:async e=>{let t=ni.parse(await e.req.json());return e.json(await WW(e,`breached_password_detection`,t))}}),qW=L({route:(0,f.createRoute)({tags:[`attack-protection`],method:`get`,path:`/brute-force-protection`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:attack_protection`]}],responses:{200:{content:{"application/json":{schema:ri}},description:`Brute force protection settings`}}}),handler:async e=>e.json(await UW(e,`brute_force_protection`))}),JW=L({route:(0,f.createRoute)({tags:[`attack-protection`],method:`patch`,path:`/brute-force-protection`,request:{body:{content:{"application/json":{schema:ri}}},headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`update:attack_protection`]}],responses:{200:{content:{"application/json":{schema:ri}},description:`Updated settings`}}}),handler:async e=>{let t=ri.parse(await e.req.json());return e.json(await WW(e,`brute_force_protection`,t))}}),YW=L({route:(0,f.createRoute)({tags:[`attack-protection`],method:`get`,path:`/suspicious-ip-throttling`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:attack_protection`]}],responses:{200:{content:{"application/json":{schema:ii}},description:`Suspicious IP throttling settings`}}}),handler:async e=>e.json(await UW(e,`suspicious_ip_throttling`))}),XW=L({route:(0,f.createRoute)({tags:[`attack-protection`],method:`patch`,path:`/suspicious-ip-throttling`,request:{body:{content:{"application/json":{schema:ii}}},headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`update:attack_protection`]}],responses:{200:{content:{"application/json":{schema:ii}},description:`Updated settings`}}}),handler:async e=>{let t=ii.parse(await e.req.json());return e.json(await WW(e,`suspicious_ip_throttling`,t))}}),ZW=new f.OpenAPIHono().openapiRoutes([GW,KW,qW,JW,YW,XW]);function QW(e){return async(t,n)=>(t.env||={},!t.env.data&&e.dataAdapter&&(t.env.data=e.dataAdapter),e.hooks&&(t.env.hooks={...e.hooks,...t.env.hooks||{}}),e.samlSigner&&(t.env.samlSigner=e.samlSigner),e.poweredByLogo&&(t.env.poweredByLogo=e.poweredByLogo),t.env.codeExecutor==null&&e.codeExecutor&&(t.env.codeExecutor=e.codeExecutor),e.webhookInvoker&&(t.env.webhookInvoker=e.webhookInvoker),e.outbox&&(t.env.outbox=e.outbox),e.userLinkingMode&&(t.env.userLinkingMode=e.userLinkingMode),e.usernamePasswordProvider&&(t.env.usernamePasswordProvider=e.usernamePasswordProvider),e.signingKeyMode&&(t.env.signingKeyMode=e.signingKeyMode),n())}var $W=new Set([`/callback`,`/login/callback`,`/authorize/resume`]);function eG(e){if($W.has(e.req.path))return!0;if(e.req.path===`/authorize`){let t=e.req.query(`client_id`);if(t&&!mD(t))return!0}return!1}async function tG(e,t){let n=e.req.header(`x-forwarded-host`),r=e.req.header(`host`),i=n||r||new URL(Fa(e.env)).host;e.set(`host`,i);let a=e.var.user;if(a?.tenant_id)return e.set(`tenant_id`,a.tenant_id),await t();let o=e.req.header(`tenant-id`);if(o)return e.set(`tenant_id`,o),await t();let s=new URL(Fa(e.env)).host.toLowerCase(),c=e=>e===s||e.endsWith(`.${s}`),l=i.toLowerCase();if(l.endsWith(`.${s}`)){let n=l.slice(0,-(s.length+1));if(n&&!n.includes(`.`))return e.set(`tenant_id`,n),e.set(`custom_domain`,i),await t()}for(let i of[n,r]){if(!i)continue;let n=i.toLowerCase();if(c(n))continue;let r=await e.env.data.customDomains.getByDomain(n);if(r)return e.set(`tenant_id`,r.tenant_id),e.set(`custom_domain`,i),await t()}let u=e.req.query(`tenant_id`);if(u)return e.set(`tenant_id`,u),await t();if(!eG(e)){let{tenants:t}=await e.env.data.tenants.list({per_page:2});t.length===1&&t[0]&&e.set(`tenant_id`,t[0].id)}return await t()}var nG=f.z.object({name:f.z.string(),version:f.z.string(),env:f.z.object({node:f.z.string().optional()}).optional()});function rG(e){if(e)try{let t=e;try{t=atob(e)}catch{}try{let e=JSON.parse(t);return nG.parse(e)}catch{}}catch{return}}var iG=async(e,t)=>{let n=e.req.query(`auth0Client`)?.slice(0,255),r=(e.req.header(`x-forwarded-host`)&&e.req.header(`x-forwarded-for`)?e.req.header(`x-forwarded-for`)?.split(`,`)[0]?.trim():e.req.header(`cf-connecting-ip`)||e.req.header(`x-real-ip`))?.slice(0,45),i=e.req.header(`user-agent`)?.slice(0,512),a=e.req.header(`cf-ipcountry`)?.slice(0,2),o=n?rG(n):void 0;o&&e.set(`auth0_client`,o),r&&e.set(`ip`,r),i&&e.set(`useragent`,i),a&&e.set(`countryCode`,a),await t()},aG=new Set([`include-linked`]);function oG(e){let t=new Set;if(!e)return t;for(let n of e.split(`,`)){let e=n.split(`;`)[0]?.split(`=`)[0]?.trim().toLowerCase();e&&aG.has(e)&&t.add(e)}return t}var sG=async(e,t)=>{let n=oG(e.req.header(`prefer`)),r=new Set;e.set(`prefer`,{has:e=>n.has(e),applied:e=>{r.add(e)},appliedTokens:()=>Array.from(r)}),await t(),r.size>0&&e.res.headers.set(`Preference-Applied`,Array.from(r).join(`, `))};function cG(e,t,n,r){try{let i=`${e}:${t}:${JSON.stringify(n)}`;return r?`${r}:${i}`:i}catch{let n=`${e}:${t}:${Date.now()}-${Math.random()}`;return r?`${r}:${n}`:n}}function lG(e,t){let{cache:n,defaultTtl:r,customTtls:i={},excludeMethods:a=[],cacheEntities:o=[],keyPrefix:s}=t,c=new Set(a),l=o.length===0,u=new Set(o),d={};for(let[t,a]of Object.entries(e)){if(a==null)continue;if(typeof a==`function`){d[t]=a;continue}let e=l||u.has(t),o={};for(let l of aN(a)){let u=a[l];if(typeof u==`function`){if(!e){o[l]=u;continue}let d=`${t}:${l}`;if(c.has(d)){o[l]=u;continue}let f=i[d]??r,p=[`create`,`update`,`remove`,`delete`,`set`,`used`,`add`].some(e=>l.startsWith(e));o[l]=async(...e)=>{if(p){let r=await u.apply(a,e);try{if(e.length>=2&&[`update`,`remove`,`delete`].includes(l)){let r=cG(t,`get`,[e[0],e[1]],s);await n.delete(r);let i=cG(t,`list`,[e[0],{}],s);await n.delete(i)}let r=s?`${s}:${t}:`:`${t}:`;await n.deleteByPrefix(r)}catch{}return r}let r=cG(t,l,e,s),i=await n.get(r);if(i!==null)if(i&&typeof i==`object`&&`isCachedNull`in i){let e=i;return e.isCachedNull?null:e.value}else return i;let o=await u.apply(a,e);return f>=0&&(o===null?await n.set(r,{value:null,isCachedNull:!0},f):await n.set(r,o,f)),o}}else o[l]=u}d[t]=o}return d}var uG={freshSeconds:300,staleSeconds:600,keyPrefix:`client-bundle`};function dG(e,t,n=uG.keyPrefix){return`${n}:${e}:${t}`}var fG=[`tenants`,`clients`,`connections`,`clientConnections`,`branding`,`resourceServers`,`promptSettings`,`hooks`,`themes`];async function pG(e,t,n){let[r,i,a,o,s,c,l,u,d]=await Promise.all([e.tenants.get(t),e.clients.get(t,n),e.connections.list(t),e.clientConnections.listByClient(t,n),e.branding.get(t),e.resourceServers.list(t),e.promptSettings.get(t).catch(()=>null),e.hooks.list(t),e.themes.get(t,`default`)]);return{tenant:r,client:i,connections:a,clientConnections:o,branding:s,resourceServers:c,promptSettings:l,hooks:u,defaultTheme:d}}async function mG(e,t,n,r,i={}){let a={...uG,...i.config??{}},o=i.now??Date.now,s=dG(n,r,a.keyPrefix),c=await t.get(s),l=o();return c&&l<c.freshUntil?c.value:c&&l<c.staleUntil&&i.scheduleRefresh?(i.scheduleRefresh(hG(e,t,n,r,a,o).catch(()=>void 0)),c.value):hG(e,t,n,r,a,o)}async function hG(e,t,n,r,i,a){let o=await pG(e,n,r),s=a(),c={value:o,freshUntil:s+i.freshSeconds*1e3,staleUntil:s+(i.freshSeconds+i.staleSeconds)*1e3};return await t.set(gG(n,r,i.keyPrefix),c,i.freshSeconds+i.staleSeconds),o}function gG(e,t,n){return dG(e,t,n)}function _G(e,t,n){let r=(e,r)=>t.delete(dG(e,r,n)).catch(()=>{}),i=e=>{let r=`${n??`client-bundle`}:${e}:`;return t.deleteByPrefix(r).catch(()=>0)};return{...e,tenants:{...e.tenants,update:async(t,n)=>{let r=await e.tenants.update(t,n);return await i(t),r},remove:async t=>{let n=await e.tenants.remove(t);return await i(t),n}},clients:{...e.clients,update:async(t,n,i)=>{let a=await e.clients.update(t,n,i);return await r(t,n),a},remove:async(t,n)=>{let i=await e.clients.remove(t,n);return await r(t,n),i}},clientConnections:{...e.clientConnections,updateByClient:async(t,n,i)=>{let a=await e.clientConnections.updateByClient(t,n,i);return await r(t,n),a},addClientToConnection:async(t,n,i)=>{let a=await e.clientConnections.addClientToConnection(t,n,i);return await r(t,i),a},removeClientFromConnection:async(t,n,i)=>{let a=await e.clientConnections.removeClientFromConnection(t,n,i);return await r(t,i),a}},connections:{...e.connections,update:async(t,n,r)=>{let a=await e.connections.update(t,n,r);return await i(t),a},remove:async(t,n)=>{let r=await e.connections.remove(t,n);return await i(t),r}},branding:{...e.branding,set:async(t,n)=>{let r=await e.branding.set(t,n);return await i(t),r}},themes:{...e.themes,create:async(t,n,r)=>{let a=await e.themes.create(t,n,r);return await i(t),a},update:async(t,n,r)=>{let a=await e.themes.update(t,n,r);return await i(t),a},remove:async(t,n)=>{let r=await e.themes.remove(t,n);return await i(t),r}},resourceServers:{...e.resourceServers,update:async(t,n,r)=>{let a=await e.resourceServers.update(t,n,r);return await i(t),a},remove:async(t,n)=>{let r=await e.resourceServers.remove(t,n);return await i(t),r}},promptSettings:{...e.promptSettings,set:async(t,n)=>{let r=await e.promptSettings.set(t,n);return await i(t),r}},hooks:{...e.hooks,update:async(t,n,r)=>{let a=await e.hooks.update(t,n,r);return await i(t),a},remove:async(t,n)=>{let r=await e.hooks.remove(t,n);return await i(t),r}}}}function vG(e){if(!e)return;let t=e.filter(e=>e!==void 0);if(t.length!==0)return t.length===1?t[0]:{beforeCreate:yG(t.map(e=>e.beforeCreate),(e,t)=>[e,t],(e,t)=>[e[0],t]),afterCreate:bG(t.map(e=>e.afterCreate)),beforeUpdate:yG(t.map(e=>e.beforeUpdate),(e,t,n)=>[e,t,n],(e,t)=>[e[0],e[1],t]),afterUpdate:bG(t.map(e=>e.afterUpdate)),beforeDelete:bG(t.map(e=>e.beforeDelete)),afterDelete:bG(t.map(e=>e.afterDelete))}}function yG(e,t,n){let r=e.filter(e=>e!==void 0);if(r.length!==0)return r.length===1?r[0]:async(...e)=>{let i=t(...e),a=i[i.length-1];for(let e of r)a=await e(...i),i=n(i,a);return a}}function bG(e){let t=e.filter(e=>e!==void 0);if(t.length!==0)return t.length===1?t[0]:async(...e)=>{for(let n of t)await n(...e)}}function xG(e){if(!e)return;let t=e.filter(e=>e!==void 0);if(t.length!==0)return t.length===1?t[0]:{beforeAssign:yG(t.map(e=>e.beforeAssign),(e,t,n)=>[e,t,n],(e,t)=>[e[0],e[1],t]),afterAssign:bG(t.map(e=>e.afterAssign)),beforeRemove:yG(t.map(e=>e.beforeRemove),(e,t,n)=>[e,t,n],(e,t)=>[e[0],e[1],t]),afterRemove:bG(t.map(e=>e.afterRemove))}}function SG(e,t,n){return t?{...e,create:async(r,i)=>{let a=i;t.beforeCreate&&(a=await t.beforeCreate(n,i));let o=await e.create(r,a);return t.afterCreate&&await t.afterCreate(n,o),o},update:async(r,i,a)=>{let o=a;t.beforeUpdate&&(o=await t.beforeUpdate(n,i,a));let s=await e.update(r,i,o);if(t.afterUpdate){let a;a=typeof s==`boolean`?await e.get(r,i):s,a&&await t.afterUpdate(n,i,a)}return s},remove:async(r,i)=>{t.beforeDelete&&await t.beforeDelete(n,i);let a=await e.remove(r,i);return t.afterDelete&&a&&await t.afterDelete(n,i),a}}:e}function CG(e,t,n){return t?{...e,assign:async(r,i,a)=>{let o=a;t.beforeAssign&&(o=await t.beforeAssign(n,i,a));let s=await e.assign(r,i,o);return t.afterAssign&&s&&await t.afterAssign(n,i,o),s},remove:async(r,i,a)=>{let o=a;t.beforeRemove&&(o=await t.beforeRemove(n,i,a));let s=await e.remove(r,i,o);return t.afterRemove&&s&&await t.afterRemove(n,i,o),s}}:e}function wG(e,t,n){return t?{...e,create:async r=>{let i=r;t.beforeCreate&&(i=await t.beforeCreate(n,r));let a=await e.create(i);return t.afterCreate&&await t.afterCreate(n,a),a},update:async(r,i)=>{let a=i;if(t.beforeUpdate&&(a=await t.beforeUpdate(n,r,i)),await e.update(r,a),t.afterUpdate){let i=await e.get(r);i&&await t.afterUpdate(n,r,i)}},remove:async r=>{t.beforeDelete&&await t.beforeDelete(n,r);let i=await e.remove(r);return t.afterDelete&&i&&await t.afterDelete(n,r),i}}:e}function TG(e,t){let{tenantId:n,entityHooks:r}=t;if(!r)return e;let i={connections:vG(r.connections),roles:vG(r.roles),resourceServers:vG(r.resourceServers),rolePermissions:xG(r.rolePermissions),tenants:vG(r.tenants)},a={tenantId:n,adapters:e};return{...e,connections:SG(e.connections,i.connections,a),roles:SG(e.roles,i.roles,a),resourceServers:SG(e.resourceServers,i.resourceServers,a),rolePermissions:CG(e.rolePermissions,i.rolePermissions,a),tenants:wG(e.tenants,i.tenants,a)}}var EG=class{config;cache=new Map;accessOrder=new Map;accessCounter=0;cleanupTimer;constructor(e={}){this.config=e;let t=e.cleanupIntervalMs;t&&t>0&&(this.cleanupTimer=setInterval(()=>{this.cleanupExpired()},t))}async get(e){let t=this.cache.get(e);return t?t.expiresAt&&t.expiresAt<new Date?(this.cache.delete(e),this.accessOrder.delete(e),null):(this.accessOrder.set(e,++this.accessCounter),t.value):null}async set(e,t,n){let r,i=n??this.config.defaultTtlSeconds,a=i!==void 0,o=a?Math.max(0,i):0;a&&(r=new Date(Date.now()+(o>0?o*1e3:-1))),this.config.maxEntries&&this.cache.size>=this.config.maxEntries&&!this.cache.has(e)&&this.evictLeastRecentlyUsed();let s={value:t,expiresAt:r};this.cache.set(e,s),this.accessOrder.set(e,++this.accessCounter)}async delete(e){let t=this.cache.has(e);return this.cache.delete(e),this.accessOrder.delete(e),t}async deleteByPrefix(e){let t=0;for(let n of this.cache.keys())n.startsWith(e)&&(this.cache.delete(n),this.accessOrder.delete(n),t++);return t}async clear(){this.cache.clear(),this.accessOrder.clear(),this.accessCounter=0}getStats(){return{size:this.cache.size,maxEntries:this.config.maxEntries,defaultTtlSeconds:this.config.defaultTtlSeconds}}cleanupExpired(){let e=new Date,t=[];for(let[n,r]of this.cache.entries())r.expiresAt&&r.expiresAt<e&&t.push(n);for(let e of t)this.cache.delete(e),this.accessOrder.delete(e)}evictLeastRecentlyUsed(){let e=null,t=1/0;for(let[n,r]of this.accessOrder.entries())r<t&&(t=r,e=n);e&&(this.cache.delete(e),this.accessOrder.delete(e))}destroy(){this.cleanupTimer&&=(clearInterval(this.cleanupTimer),void 0)}};function DG(e={}){return new EG(e)}var OG=bt.extend({forms:f.z.array(dr)}),kG=L({route:(0,f.createRoute)({tags:[`forms`],method:`get`,path:`/`,request:{query:eo,headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:forms`]}],responses:{200:{content:{"application/json":{schema:f.z.union([f.z.array(dr),OG])}},description:`List of forms`}}}),handler:async e=>{let t=e.var.tenant_id,{page:n,per_page:r,include_totals:i=!1,sort:a,q:o}=e.req.valid(`query`),s=await e.env.data.forms.list(t,{page:n,per_page:r,include_totals:i,sort:to(a),q:o});return i?e.json(s):e.json(s.forms)}}),AG=L({route:(0,f.createRoute)({tags:[`forms`],method:`get`,path:`/{id}`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:forms`]}],responses:{200:{content:{"application/json":{schema:dr}},description:`A form`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n}=e.req.valid(`param`),r=await e.env.data.forms.get(t,n);if(!r)throw new m(404);return e.json(r)}}),jG=L({route:(0,f.createRoute)({tags:[`forms`],method:`delete`,path:`/{id}`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`delete:forms`]}],responses:{200:{description:`Status`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n}=e.req.valid(`param`);if(!await e.env.data.forms.remove(t,n))throw new m(404,{message:`Form not found`});return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Delete a Form`,targetType:`form`,targetId:n}),e.text(`OK`)}}),MG=L({route:(0,f.createRoute)({tags:[`forms`],method:`patch`,path:`/{id}`,request:{body:{content:{"application/json":{schema:ur.partial()}}},params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`update:forms`]}],responses:{200:{content:{"application/json":{schema:dr}},description:`The updated form`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n}=e.req.valid(`param`),r=e.req.valid(`json`);if(!await e.env.data.forms.update(t,n,r))throw new m(404,{message:`Form not found`});let i=await e.env.data.forms.get(t,n);if(!i)throw new m(404,{message:`Form not found`});return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Update a Form`,targetType:`form`,targetId:n,afterState:i}),e.json(i)}}),NG=L({route:(0,f.createRoute)({tags:[`forms`],method:`post`,path:`/`,request:{body:{content:{"application/json":{schema:ur}}},headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`create:forms`]}],responses:{201:{content:{"application/json":{schema:dr}},description:`A form`}}}),handler:async e=>{let t=e.var.tenant_id,n=e.req.valid(`json`),r=await e.env.data.forms.create(t,n);return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Create a Form`,targetType:`form`,targetId:r.id,afterState:r}),e.json(r,{status:201})}}),PG=new f.OpenAPIHono().openapiRoutes([kG,AG,jG,MG,NG]),FG=bt.extend({flows:f.z.array(yt)}),IG=L({route:(0,f.createRoute)({tags:[`flows`],method:`get`,path:`/`,request:{query:eo,headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:flows`]}],responses:{200:{content:{"application/json":{schema:f.z.union([f.z.array(yt),FG])}},description:`List of flows`}}}),handler:async e=>{let t=e.var.tenant_id,{page:n,per_page:r,include_totals:i=!1,sort:a,q:o}=e.req.valid(`query`),s=await e.env.data.flows.list(t,{page:n,per_page:r,include_totals:i,sort:to(a),q:o});return i?e.json(s):e.json(s.flows)}}),LG=L({route:(0,f.createRoute)({tags:[`flows`],method:`get`,path:`/{id}`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:flows`]}],responses:{200:{content:{"application/json":{schema:yt}},description:`A flow`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n}=e.req.valid(`param`),r=await e.env.data.flows.get(t,n);if(!r)throw new m(404);return e.json(r)}}),RG=L({route:(0,f.createRoute)({tags:[`flows`],method:`delete`,path:`/{id}`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`delete:flows`]}],responses:{200:{description:`Status`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n}=e.req.valid(`param`);if(!await e.env.data.flows.remove(t,n))throw new m(404,{message:`Flow not found`});return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Delete a Flow`,targetType:`flow`,targetId:n}),e.text(`OK`)}}),zG=L({route:(0,f.createRoute)({tags:[`flows`],method:`patch`,path:`/{id}`,request:{body:{content:{"application/json":{schema:f.z.object(vt.shape).partial()}}},params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`update:flows`]}],responses:{200:{content:{"application/json":{schema:yt}},description:`The updated flow`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n}=e.req.valid(`param`),r=e.req.valid(`json`),i=await e.env.data.flows.update(t,n,r);if(!i)throw new m(404,{message:`Flow not found`});return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Update a Flow`,targetType:`flow`,targetId:n,afterState:i}),e.json(i)}}),BG=L({route:(0,f.createRoute)({tags:[`flows`],method:`post`,path:`/`,request:{body:{content:{"application/json":{schema:f.z.object(vt.shape)}}},headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`create:flows`]}],responses:{201:{content:{"application/json":{schema:yt}},description:`The created flow`}}}),handler:async e=>{let t=e.var.tenant_id,n=e.req.valid(`json`),r=await e.env.data.flows.create(t,n);return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Create a Flow`,targetType:`flow`,targetId:r.id,afterState:r}),e.json(r,{status:201})}}),VG=new f.OpenAPIHono().openapiRoutes([IG,LG,RG,zG,BG]),HG=bt.extend({roles:f.z.array($i)}),UG=bt.extend({permissions:f.z.array(Bi)}),WG=L({route:(0,f.createRoute)({tags:[`roles`],method:`get`,path:`/`,request:{query:eo,headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:roles`]}],responses:{200:{content:{"application/json":{schema:f.z.union([f.z.array($i),HG])}},description:`List of roles`}}}),handler:async e=>{let{page:t,per_page:n,include_totals:r,sort:i,q:a}=e.req.valid(`query`),o=e.var.tenant_id;if(!o)throw new m(400,{message:`tenant-id header is required`});let s=await e.env.data.roles.list(o,{page:t,per_page:n,include_totals:r,sort:to(i),q:a});return r?e.json(s):e.json(s.roles)}}),GG=L({route:(0,f.createRoute)({tags:[`roles`],method:`get`,path:`/{id}`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:roles`]}],responses:{200:{content:{"application/json":{schema:$i}},description:`A role`}}}),handler:async e=>{let{id:t}=e.req.valid(`param`),n=e.var.tenant_id;if(!n)throw new m(400,{message:`tenant-id header is required`});let r=await e.env.data.roles.get(n,t);if(!r)throw new m(404);return e.json(r)}}),KG=L({route:(0,f.createRoute)({tags:[`roles`],method:`post`,path:`/`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),body:{content:{"application/json":{schema:Qi}}}},security:[{Bearer:[`create:roles`]}],responses:{201:{content:{"application/json":{schema:$i}},description:`Role created`}}}),handler:async e=>{let t=e.req.valid(`json`),n=e.var.tenant_id;if(!n)throw new m(400,{message:`tenant-id header is required`});let r=await e.env.data.roles.create(n,t);return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Create a Role`,targetType:`role`,targetId:r.id,afterState:r}),e.json(r,{status:201})}}),qG=L({route:(0,f.createRoute)({tags:[`roles`],method:`patch`,path:`/{id}`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()}),body:{content:{"application/json":{schema:Qi.partial()}}}},security:[{Bearer:[`update:roles`]}],responses:{200:{content:{"application/json":{schema:$i}},description:`Updated role`}}}),handler:async e=>{let{id:t}=e.req.valid(`param`),n=e.req.valid(`json`),r=e.var.tenant_id;if(!r)throw new m(400,{message:`tenant-id header is required`});if(!await e.env.data.roles.update(r,t,n))throw new m(404);let i=await e.env.data.roles.get(r,t);return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Update a Role`,targetType:`role`,targetId:t,afterState:i}),e.json(i)}}),JG=L({route:(0,f.createRoute)({tags:[`roles`],method:`delete`,path:`/{id}`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`delete:roles`]}],responses:{200:{description:`Status`}}}),handler:async e=>{let{id:t}=e.req.valid(`param`),n=e.var.tenant_id;if(!n)throw new m(400,{message:`tenant-id header is required`});if(!await e.env.data.roles.remove(n,t))throw new m(404);return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Delete a Role`,targetType:`role`,targetId:t}),e.text(`OK`)}}),YG=L({route:(0,f.createRoute)({tags:[`roles`],method:`get`,path:`/{id}/permissions`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()}),query:eo},security:[{Bearer:[`read:roles`]}],responses:{200:{content:{"application/json":{schema:f.z.union([Vi,UG])}},description:`Role permissions`}}}),handler:async e=>{let{id:t}=e.req.valid(`param`),{page:n,per_page:r,include_totals:i,sort:a,q:o}=e.req.valid(`query`),s=e.var.tenant_id;if(!s)throw new m(400,{message:`tenant-id header is required`});if(!await e.env.data.roles.get(s,t))throw new m(404,{message:`Role not found`});if(i){let i=await e.env.data.rolePermissions.list(s,t,{per_page:1e4,sort:to(a),q:o}),c=r??50,l=(n??0)*c,u=i.slice(l,l+c);return e.json({permissions:u,total:i.length,start:l,limit:c,length:u.length})}let c=await e.env.data.rolePermissions.list(s,t,{page:n,per_page:r,include_totals:!1,sort:to(a),q:o});return e.json(c)}}),XG=L({route:(0,f.createRoute)({tags:[`roles`],method:`post`,path:`/{id}/permissions`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()}),body:{content:{"application/json":{schema:f.z.object({permissions:f.z.array(f.z.object({permission_name:f.z.string(),resource_server_identifier:f.z.string()}))})}}}},security:[{Bearer:[`update:roles`]}],responses:{204:{description:`Permissions assigned to role`}}}),handler:async e=>{let{id:t}=e.req.valid(`param`),{permissions:n}=e.req.valid(`json`),r=e.var.tenant_id;if(!r)throw new m(400,{message:`tenant-id header is required`});if(!await e.env.data.roles.get(r,t))throw new m(404,{message:`Role not found`});let i=n.map(e=>({role_id:t,resource_server_identifier:e.resource_server_identifier,permission_name:e.permission_name}));if(!await e.env.data.rolePermissions.assign(r,t,i))throw new m(500,{message:`Failed to assign permissions to role`});return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Assign Permissions to a Role`,targetType:`role_permission`,targetId:t}),e.body(null,204)}}),ZG=L({route:(0,f.createRoute)({tags:[`roles`],method:`delete`,path:`/{id}/permissions`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()}),body:{content:{"application/json":{schema:f.z.object({permissions:f.z.array(f.z.object({permission_name:f.z.string(),resource_server_identifier:f.z.string()}))})}}}},security:[{Bearer:[`update:roles`]}],responses:{200:{description:`Permissions removed from role`}}}),handler:async e=>{let{id:t}=e.req.valid(`param`),{permissions:n}=e.req.valid(`json`),r=e.var.tenant_id;if(!r)throw new m(400,{message:`tenant-id header is required`});if(!await e.env.data.roles.get(r,t))throw new m(404,{message:`Role not found`});if(!await e.env.data.rolePermissions.remove(r,t,n))throw new m(500,{message:`Failed to remove permissions from role`});return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Remove Permissions from a Role`,targetType:`role_permission`,targetId:t}),e.json({message:`Permissions removed successfully`})}}),QG=new f.OpenAPIHono().openapiRoutes([WG,GG,KG,qG,JG,YG,XG,ZG]),$G=bt.extend({resource_servers:f.z.array(Li)});async function eK(e,t,n){return await e.env.data.resourceServers.get(t,n)||((await e.env.data.resourceServers.list(t,{})).resource_servers.find(e=>e.identifier===n)??null)}var tK=L({route:(0,f.createRoute)({tags:[`resource-servers`],method:`get`,path:`/`,request:{query:eo,headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:resource_servers`]}],responses:{200:{content:{"application/json":{schema:f.z.union([f.z.array(Li),$G])}},description:`List of resource servers`}}}),handler:async e=>{let t=e.var.tenant_id,{page:n,per_page:r,include_totals:i=!1,sort:a,q:o}=e.req.valid(`query`),s=await e.env.data.resourceServers.list(t,{page:n,per_page:r,include_totals:i,sort:to(a),q:o});return i?e.json(s):e.json(s.resource_servers)}}),nK=L({route:(0,f.createRoute)({tags:[`resource-servers`],method:`get`,path:`/{id}`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:resource_servers`]}],responses:{200:{content:{"application/json":{schema:Li}},description:`A resource server`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n}=e.req.valid(`param`),r=await eK(e,t,n);if(!r)throw new m(404);return e.json(r)}}),rK=L({route:(0,f.createRoute)({tags:[`resource-servers`],method:`delete`,path:`/{id}`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`delete:resource_servers`]}],responses:{200:{description:`Status`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n}=e.req.valid(`param`),r=await eK(e,t,n);if(!r)throw new m(404,{message:`Resource server not found`});if(r.is_system)throw new m(403,{message:`System entities cannot be deleted`});if((await e.env.data.tenants.get(t))?.default_audience===r.identifier)throw new m(409,{message:`Resource server is set as the tenant's default_audience; clear it before deleting`});return await e.env.data.resourceServers.remove(t,r.id),await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Delete a Resource Server`,targetType:`resource_server`,targetId:r.id,beforeState:r}),e.text(`OK`)}}),iK=L({route:(0,f.createRoute)({tags:[`resource-servers`],method:`patch`,path:`/{id}`,request:{body:{content:{"application/json":{schema:f.z.object(Ii.shape).partial()}}},params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`update:resource_servers`]}],responses:{200:{content:{"application/json":{schema:Li}},description:`The updated resource server`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n}=e.req.valid(`param`),r=e.req.valid(`json`),i=await eK(e,t,n);if(!i)throw new m(404,{message:`Resource server not found`});if(i.is_system)throw new m(403,{message:`System entities cannot be modified`});let a=i.id;await e.env.data.resourceServers.update(t,a,r);let o=await e.env.data.resourceServers.get(t,a);if(!o)throw new m(404,{message:`Resource server not found`});return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Update a Resource Server`,targetType:`resource_server`,targetId:o.id,beforeState:i,afterState:o}),e.json(o)}}),aK=L({route:(0,f.createRoute)({tags:[`resource-servers`],method:`post`,path:`/`,request:{body:{content:{"application/json":{schema:f.z.object(Ii.shape)}}},headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`create:resource_servers`]}],responses:{201:{content:{"application/json":{schema:Li}},description:`A resource server`}}}),handler:async e=>{let t=e.var.tenant_id,n=e.req.valid(`json`),r=await e.env.data.resourceServers.create(t,n);return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Create a Resource Server`,targetType:`resource_server`,targetId:r.id,afterState:r}),e.json(r,{status:201})}}),oK=new f.OpenAPIHono().openapiRoutes([tK,nK,rK,iK,aK]),sK=f.z.object({per_page:f.z.string().min(1).optional().default(`50`).transform(e=>parseInt(e,10)).openapi({description:`Number of results per page. Defaults to 50.`}),page:f.z.string().min(0).optional().default(`0`).transform(e=>parseInt(e,10)).openapi({description:`Page index of the results to return. First page is 0.`}),include_totals:f.z.string().optional().default(`false`).transform(e=>e===`true`).openapi({description:`Return results inside an object that contains the total result count (true) or as a direct array of results (false, default).`}),from:f.z.string().optional().openapi({description:`Optional Id from which to start selection.`}),take:f.z.string().min(1).optional().transform(e=>e?parseInt(e,10):void 0).openapi({description:`Number of results per page. Defaults to 50.`}),audience:f.z.string().optional().openapi({description:`Optional filter on audience.`}),client_id:f.z.string().optional().openapi({description:`Optional filter on client_id.`}),allow_any_organization:f.z.string().optional().transform(e=>e===`true`?!0:e===`false`?!1:void 0).openapi({description:`Optional filter on allow_any_organization.`}),subject_type:f.z.enum([`client`,`user`]).optional().openapi({description:`EA The type of application access the client grant allows. Use of this field is subject to the applicable Free Trial terms in Okta's Master Subscription Agreement.`})}),cK=bt.extend({client_grants:f.z.array(Mt)}),lK=L({route:(0,f.createRoute)({tags:[`client-grants`],method:`get`,path:`/`,request:{query:sK,headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:client_grants`]}],responses:{200:{content:{"application/json":{schema:f.z.union([f.z.array(Mt),cK])}},description:`List of client grants`}}}),handler:async e=>{let t=e.var.tenant_id,{page:n,per_page:r,include_totals:i=!1,from:a,take:o,audience:s,client_id:c,allow_any_organization:l,subject_type:u}=e.req.valid(`query`),d=[];c&&d.push(`client_id:"${c}"`),s&&d.push(`audience:"${s}"`),l!==void 0&&d.push(`allow_any_organization:${l}`),u&&d.push(`subject_type:"${u}"`),a&&d.push(`id:>${a}`);let f=d.length>0?d.join(` AND `):void 0,p=o??r,m=await e.env.data.clientGrants.list(t,{page:n,per_page:p,include_totals:i,q:f});return i?e.json(m):e.json(m.client_grants)}}),uK=L({route:(0,f.createRoute)({tags:[`client-grants`],method:`get`,path:`/{id}`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:client_grants`]}],responses:{200:{content:{"application/json":{schema:Mt}},description:`A client grant`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n}=e.req.valid(`param`),r=await e.env.data.clientGrants.get(t,n);if(!r)throw new m(404,{message:`Client grant not found`});return e.json(r)}}),dK=L({route:(0,f.createRoute)({tags:[`client-grants`],method:`delete`,path:`/{id}`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`delete:client_grants`]}],responses:{200:{description:`Status`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n}=e.req.valid(`param`);if(!await e.env.data.clientGrants.remove(t,n))throw new m(404,{message:`Client grant not found`});return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Delete a Client Grant`,targetType:`client_grant`,targetId:n}),e.text(`OK`)}}),fK=L({route:(0,f.createRoute)({tags:[`client-grants`],method:`patch`,path:`/{id}`,request:{params:f.z.object({id:f.z.string()}),body:{content:{"application/json":{schema:f.z.object(jt.shape).partial()}}},headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`update:client_grants`]}],responses:{200:{content:{"application/json":{schema:Mt}},description:`The updated client grant`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n}=e.req.valid(`param`),r=e.req.valid(`json`),i=await e.env.data.clientGrants.get(t,n);if(!i)throw new m(404,{message:`Client grant not found`});if(!await e.env.data.clientGrants.update(t,n,r))throw new m(500,{message:`Failed to update client grant`});let a=await e.env.data.clientGrants.get(t,n);if(!a)throw new m(404,{message:`Client grant not found`});return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Update a Client Grant`,targetType:`client_grant`,targetId:n,beforeState:i,afterState:a}),e.json(a)}}),pK=L({route:(0,f.createRoute)({tags:[`client-grants`],method:`post`,path:`/`,request:{body:{content:{"application/json":{schema:f.z.object(jt.shape)}}},headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`create:client_grants`]}],responses:{201:{content:{"application/json":{schema:Mt}},description:`A client grant`}}}),handler:async e=>{let t=e.var.tenant_id,n=e.req.valid(`json`),r=await e.env.data.clientGrants.create(t,n);return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Create a Client Grant`,targetType:`client_grant`,targetId:r.id,afterState:r}),e.json(r,{status:201})}}),mK=new f.OpenAPIHono().openapiRoutes([lK,uK,dK,fK,pK]),hK=f.z.object({per_page:f.z.string().optional().default(`50`).transform(e=>parseInt(e,10)).openapi({description:`Number of results per page. Defaults to 50.`}),page:f.z.string().optional().default(`0`).transform(e=>parseInt(e,10)).openapi({description:`Page index of the results to return. First page is 0.`}),include_totals:f.z.string().optional().default(`false`).transform(e=>e===`true`).openapi({description:`Return totals envelope (true) or a plain array (false, default).`}),user_id:f.z.string().optional().openapi({description:`Filter grants by user_id.`}),client_id:f.z.string().optional().openapi({description:`Filter grants by clientID.`}),audience:f.z.string().optional().openapi({description:`Filter grants by audience.`})}),gK=bt.extend({grants:f.z.array(Ui)}),_K=L({route:(0,f.createRoute)({tags:[`grants`],method:`get`,path:`/`,request:{query:hK,headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:grants`,`auth:read`]}],responses:{200:{content:{"application/json":{schema:f.z.union([f.z.array(Ui),gK])}},description:`List of OAuth grants`}}}),handler:async e=>{let{page:t,per_page:n,include_totals:r,user_id:i,client_id:a,audience:o}=e.req.valid(`query`);if(!e.env.data.grants)return r?e.json({grants:[],start:0,limit:0,length:0}):e.json([]);let s=[];i&&s.push(`user_id:"${i}"`),a&&s.push(`client_id:"${a}"`),o&&s.push(`audience:"${o}"`);let c=s.length>0?s.join(` AND `):void 0,l=await e.env.data.grants.list(e.var.tenant_id,{page:t,per_page:n,include_totals:r,q:c});return r?e.json(l):e.json(l.grants)}}),vK=L({route:(0,f.createRoute)({tags:[`grants`],method:`delete`,path:`/{id}`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),params:f.z.object({id:f.z.string()})},security:[{Bearer:[`delete:grants`]}],responses:{204:{description:`Grant removed`}}}),handler:async e=>{let{id:t}=e.req.valid(`param`);if(!e.env.data.grants||!await e.env.data.grants.remove(e.var.tenant_id,t))throw new m(404);return e.body(null,204)}}),yK=L({route:(0,f.createRoute)({tags:[`grants`],method:`delete`,path:`/`,request:{query:f.z.object({user_id:f.z.string().openapi({description:`Delete all grants for the given user_id.`})}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`delete:grants`]}],responses:{204:{description:`Grants removed`}}}),handler:async e=>{let{user_id:t}=e.req.valid(`query`);return e.env.data.grants&&await e.env.data.grants.removeByUser(e.var.tenant_id,t),e.body(null,204)}}),bK=new f.OpenAPIHono().openapiRoutes([_K,vK,yK]);function xK(e){let t=new Uint8Array(e);return crypto.getRandomValues(t),t}async function SK(e){return Cf(await vf(new TextEncoder().encode(e)))}async function CK(){let e=Of.encode(xK(32),{includePadding:!1}),t=await SK(e);return{id:To(),token:e,token_hash:t}}var wK=300;async function TK(e,t,n={}){let r=await CK(),i=n.expires_in_seconds??wK,a=new Date(Date.now()+i*1e3).toISOString(),o=await e.create(t,{id:r.id,token_hash:r.token_hash,type:`iat`,sub:n.sub,constraints:n.constraints,single_use:n.single_use??!0,expires_at:a});return{id:r.id,token:r.token,expires_at:a,record:o}}async function EK(e,t,n,r){let i=await SK(n),a=await e.getByHash(t,i);return a?a.type===r?a.revoked_at?{ok:!1,failure:`revoked`}:a.expires_at&&new Date(a.expires_at).getTime()<=Date.now()?{ok:!1,failure:`expired`}:a.single_use&&a.used_at?{ok:!1,failure:`already_used`}:{ok:!0,token:a}:{ok:!1,failure:`wrong_type`}:{ok:!1,failure:`not_found`}}function DK(e,t){return`${La(e.env,e.var.custom_domain)}oidc/register/${t}`}async function OK(e){let t=await e.env.data.tenants.get(e.var.tenant_id);if(!t)throw new B(404,{error:`invalid_request`,error_description:`Tenant not found`});return t}function kK(e){if(!e.flags?.enable_dynamic_client_registration)throw new B(404,{error:`invalid_request`,error_description:`Dynamic Client Registration is not enabled`})}function AK(e){if(!e.clientRegistrationTokens)throw new B(500,{error:`server_error`,error_description:`Dynamic Client Registration requires a clientRegistrationTokens adapter`});return e.clientRegistrationTokens}async function jK(e,t){let n=LU(e.req.header(`authorization`));if(n){let t=await EK(AK(e.env.data),e.var.tenant_id,n,`iat`);if(!t.ok||!t.token)throw new B(401,{error:`invalid_token`,error_description:`Initial access token ${t.failure??`invalid`}`});return t.token}if(t.flags?.dcr_require_initial_access_token===!0)throw new B(401,{error:`invalid_token`,error_description:`Initial access token required`})}async function MK(e,t){let n=LU(e.req.header(`authorization`));if(!n)throw new B(401,{error:`invalid_token`,error_description:`Registration access token required`});let r=await EK(AK(e.env.data),e.var.tenant_id,n,`rat`);if(!r.ok||!r.token)throw new B(401,{error:`invalid_token`,error_description:`Registration access token ${r.failure??`invalid`}`});if(r.token.client_id!==t)throw new B(401,{error:`invalid_token`,error_description:`Registration access token is not bound to this client`});return r.token}function NK(e){return e.client_metadata?.status===`deleted`}function PK(){return To(24)}function FK(){return To(43)}var IK=f.z.object({sub:f.z.string().optional().openapi({description:`User ID to bind the IAT to (optional)`}),constraints:f.z.record(f.z.string(),f.z.unknown()).optional().openapi({description:`Pre-bound metadata that the registration request must match exactly (or omit, in which case the value is filled in from this map)`}),expires_in_seconds:f.z.number().int().min(30).max(3600*24).optional().openapi({description:`Token TTL in seconds. Default 300 (5 minutes).`}),single_use:f.z.boolean().optional().openapi({description:`Whether the IAT is invalidated after first use. Default true.`})}),LK=f.z.object({id:f.z.string(),token:f.z.string(),expires_at:f.z.string(),sub:f.z.string().optional(),constraints:f.z.record(f.z.string(),f.z.unknown()).optional(),single_use:f.z.boolean()}),RK=L({route:(0,f.createRoute)({tags:[`client-registration-tokens`],method:`post`,path:`/`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),body:{content:{"application/json":{schema:IK}}}},security:[{Bearer:[`create:client_registration_tokens`]}],responses:{201:{content:{"application/json":{schema:LK}},description:"Initial Access Token issued. The `token` field is shown once and not retrievable later."}}}),handler:async e=>{let t=e.var.tenant_id,n=e.req.valid(`json`),r=await TK(AK(e.env.data),t,{sub:n.sub,constraints:n.constraints,expires_in_seconds:n.expires_in_seconds,single_use:n.single_use});return await I(e,t,{type:P.SUCCESS_API_OPERATION,description:`DCR Initial Access Token issued via Management API`,targetType:`client_registration_token`,targetId:r.id,userId:n.sub}),e.json({id:r.id,token:r.token,expires_at:r.expires_at,sub:r.record.sub,constraints:r.record.constraints,single_use:r.record.single_use},201)}}),zK=new f.OpenAPIHono().openapiRoutes([RK]),BK=f.z.object({page:f.z.string().optional().default(`0`).transform(e=>parseInt(e,10)).openapi({description:`Page index of the results to return. First page is 0.`}),per_page:f.z.string().optional().default(`50`).transform(e=>parseInt(e,10)).openapi({description:`Number of results per page. Defaults to 50.`}),include_totals:f.z.string().optional().default(`false`).transform(e=>e===`true`).openapi({description:`When true, return results inside an object that also contains the start and limit. When false (default), a direct array of results is returned.`}),fields:f.z.string().optional().openapi({description:`Comma-separated list of fields to include or exclude (based on value provided for include_fields) in the result. Leave empty to retrieve all fields.`}),include_fields:f.z.string().optional().default(`true`).transform(e=>e===`true`).openapi({description:`Whether specified fields are to be included (true) or excluded (false). Defaults to true.`}),sort:f.z.string().optional().default(`created_at:-1`).openapi({description:`Field to sort by. Use field:order where order is 1 for ascending and -1 for descending. Defaults to created_at:-1.`})}),VK=f.z.object({invitations:f.z.array(Ar),start:f.z.number(),limit:f.z.number(),length:f.z.number()}),HK=kr.omit({organization_id:!0,invitation_url:!0}),UK=bt.extend({organizations:f.z.array(aa)}),WK=f.z.object({user_id:f.z.string().openapi({description:`ID of this user`}),email:f.z.string().email().optional().openapi({description:`Email address of this user`,format:`email`}),name:f.z.string().optional().openapi({description:`Name of this user`}),picture:f.z.string().optional().openapi({description:`Picture URL for this user`}),roles:f.z.array($i).default([]).openapi({description:`Array of roles assigned to this user in the organization`})}),GK=f.z.object({start:f.z.number().openapi({description:`Start index of the current page`}),limit:f.z.number().openapi({description:`Number of items per page`}),total:f.z.number().openapi({description:`Total number of members`}),members:f.z.array(WK).openapi({description:`Array of organization members`})}),KK=f.z.object({next:f.z.string().optional().openapi({description:`Checkpoint ID to be used to retrieve the next set of results`}),members:f.z.array(WK).openapi({description:`Array of organization members`})}),qK=f.z.object({members:f.z.array(f.z.string()).openapi({description:`Array of user IDs to add to the organization`})}),JK=f.z.object({members:f.z.array(f.z.string()).openapi({description:`Array of user IDs to remove from the organization`})}),YK=L({route:(0,f.createRoute)({tags:[`organizations`],method:`get`,path:`/`,request:{query:eo,headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:organizations`]}],responses:{200:{content:{"application/json":{schema:f.z.union([UK,f.z.array(aa)])}},description:`List of organizations`}}}),handler:async e=>{let t=e.var.tenant_id,{page:n,per_page:r,include_totals:i,sort:a,q:o,from:s,take:c}=e.req.valid(`query`),l=await e.env.data.organizations.list(t,{page:n,per_page:r,include_totals:i,sort:to(a),q:o,from:s,take:c});return i?e.json(l):e.json(l.organizations)}}),XK=L({route:(0,f.createRoute)({tags:[`organizations`],method:`get`,path:`/{id}`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:organizations`]}],responses:{200:{content:{"application/json":{schema:aa}},description:`An organization`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n}=e.req.valid(`param`),r=await e.env.data.organizations.get(t,n);if(!r)throw new m(404,{message:`Organization not found`});return e.json(r)}}),ZK=L({route:(0,f.createRoute)({tags:[`organizations`],method:`delete`,path:`/{id}`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`delete:organizations`]}],responses:{200:{description:`Organization deleted successfully`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n}=e.req.valid(`param`);if(!await e.env.data.organizations.remove(t,n))throw new m(404,{message:`Organization not found`});return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Delete an Organization`,targetType:`organization`,targetId:n}),e.text(`OK`)}}),QK=L({route:(0,f.createRoute)({tags:[`organizations`],method:`patch`,path:`/{id}`,request:{body:{content:{"application/json":{schema:ia.partial()}}},params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`update:organizations`]}],responses:{200:{content:{"application/json":{schema:aa}},description:`The updated organization`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n}=e.req.valid(`param`),r=e.req.valid(`json`),i=await e.env.data.organizations.get(t,n);if(!i||!await e.env.data.organizations.update(t,n,r))throw new m(404,{message:`Organization not found`});let a=await e.env.data.organizations.get(t,n);if(!a)throw new m(404,{message:`Organization not found`});return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Update an Organization`,targetType:`organization`,targetId:n,beforeState:i,afterState:a}),e.json(a)}}),$K=L({route:(0,f.createRoute)({tags:[`organizations`],method:`post`,path:`/`,request:{body:{content:{"application/json":{schema:ia}}},headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`create:organizations`]}],responses:{201:{content:{"application/json":{schema:aa}},description:`The created organization`}}}),handler:async e=>{let t=e.var.tenant_id,n=e.req.valid(`json`),r={...n,id:n.id||Eee()},i=await e.env.data.organizations.create(t,r);return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Create an Organization`,targetType:`organization`,targetId:i.id,afterState:i}),e.json(i,{status:201})}}),eq=L({route:(0,f.createRoute)({tags:[`organizations`],method:`get`,path:`/{id}/members`,request:{params:f.z.object({id:f.z.string()}),query:eo,headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:organizations`]}],responses:{200:{content:{"application/json":{schema:f.z.union([f.z.array(WK),GK,KK])}},description:`List of organization members`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n}=e.req.valid(`param`),{page:r,per_page:i,include_totals:a,sort:o}=e.req.valid(`query`),s=await e.env.data.organizations.get(t,n);if(!s)throw new m(404,{message:`Organization not found`});let c=await e.env.data.userOrganizations.list(t,{page:r,per_page:i,include_totals:a,sort:to(o),q:`organization_id:${s.id}`}),l=await Promise.all(c.userOrganizations.map(async n=>{let r=await e.env.data.users.get(t,n.user_id);if(!r)return null;let i=await e.env.data.userRoles.list(t,r.user_id,void 0,s.id);return{user_id:r.user_id,email:r.email||void 0,name:r.name||void 0,picture:r.picture||void 0,roles:i}})).then(e=>e.filter(e=>e!==null));return a?e.json({start:c.start,limit:c.limit,total:c.length,members:l}):e.json(l)}}),tq=L({route:(0,f.createRoute)({tags:[`organizations`],method:`post`,path:`/{id}/members`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()}),body:{content:{"application/json":{schema:qK}}}},security:[{Bearer:[`update:organizations`]}],responses:{204:{description:`Members added successfully`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n}=e.req.valid(`param`),{members:r}=e.req.valid(`json`),i=await e.env.data.organizations.get(t,n);if(!i)throw new m(404,{message:`Organization not found`});for(let n of r)(await e.env.data.userOrganizations.list(t,{q:`user_id:${n}`,per_page:1})).userOrganizations.some(e=>e.organization_id===i.id)||await e.env.data.userOrganizations.create(t,{user_id:n,organization_id:i.id});return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Add Members to an Organization`,targetType:`organization_member`,targetId:i.id}),new Response(null,{status:204})}}),nq=L({route:(0,f.createRoute)({tags:[`organizations`],method:`delete`,path:`/{id}/members`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()}),body:{content:{"application/json":{schema:JK}}}},security:[{Bearer:[`update:organizations`]}],responses:{200:{description:`Members removed successfully`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n}=e.req.valid(`param`),{members:r}=e.req.valid(`json`),i=await e.env.data.organizations.get(t,n);if(!i)throw new m(404,{message:`Organization not found`});for(let n of r){let r=(await e.env.data.userOrganizations.list(t,{q:`user_id:${n}`,per_page:100})).userOrganizations.find(e=>e.organization_id===i.id);r&&await e.env.data.userOrganizations.remove(t,r.id)}return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Remove Members from an Organization`,targetType:`organization_member`,targetId:i.id}),e.json({message:`Members removed successfully`})}}),rq=L({route:(0,f.createRoute)({tags:[`organizations`],method:`get`,path:`/{id}/members/{user_id}/roles`,request:{params:f.z.object({id:f.z.string(),user_id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()}),query:eo},security:[{Bearer:[`read:organization_member_roles`]}],responses:{200:{content:{"application/json":{schema:ea}},description:`User roles in organization`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n,user_id:r}=e.req.valid(`param`),i=await e.env.data.organizations.get(t,n);if(!i)throw new m(404,{message:`Organization not found`});if(!await e.env.data.users.get(t,r))throw new m(404,{message:`User not found`});let a=await e.env.data.userRoles.list(t,r,void 0,i.id);return e.json(a)}}),iq=L({route:(0,f.createRoute)({tags:[`organizations`],method:`post`,path:`/{id}/members/{user_id}/roles`,request:{params:f.z.object({id:f.z.string(),user_id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()}),body:{content:{"application/json":{schema:f.z.object({roles:f.z.array(f.z.string()).openapi({description:`List of role IDs to associate with the user`})})}}}},security:[{Bearer:[`create:organization_member_roles`]}],responses:{204:{description:`Roles assigned successfully`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n,user_id:r}=e.req.valid(`param`),{roles:i}=e.req.valid(`json`),a=await e.env.data.organizations.get(t,n);if(!a)throw new m(404,{message:`Organization not found`});if(!await e.env.data.users.get(t,r))throw new m(404,{message:`User not found`});let o=await e.env.data.userRoles.list(t,r,void 0,a.id),s=new Set(o.map(e=>e.id));for(let n of i)if(!s.has(n)){if(!await e.env.data.roles.get(t,n))throw new m(400,{message:`Role ${n} not found`});if(!await e.env.data.userRoles.create(t,r,n,a.id))throw new m(500,{message:`Failed to assign role ${n} to user`})}return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Assign Roles to an Organization Member`,targetType:`organization_member_role`,targetId:r}),e.body(null,204)}}),aq=L({route:(0,f.createRoute)({tags:[`organizations`],method:`delete`,path:`/{id}/members/{user_id}/roles`,request:{params:f.z.object({id:f.z.string(),user_id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()}),body:{content:{"application/json":{schema:f.z.object({roles:f.z.array(f.z.string()).openapi({description:`List of role IDs to remove from the user`})})}}}},security:[{Bearer:[`delete:organization_member_roles`]}],responses:{200:{description:`Roles removed successfully`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n,user_id:r}=e.req.valid(`param`),{roles:i}=e.req.valid(`json`),a=await e.env.data.organizations.get(t,n);if(!a)throw new m(404,{message:`Organization not found`});if(!await e.env.data.users.get(t,r))throw new m(404,{message:`User not found`});for(let n of i)if(!await e.env.data.userRoles.remove(t,r,n,a.id))throw new m(500,{message:`Failed to remove role ${n} from user`});return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Remove Roles from an Organization Member`,targetType:`organization_member_role`,targetId:r}),e.json({message:`Roles removed successfully`})}}),oq=L({route:(0,f.createRoute)({tags:[`organizations`],method:`get`,path:`/{id}/roles`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()}),query:eo},security:[{Bearer:[`read:organizations`]}],responses:{200:{content:{"application/json":{schema:ea}},description:`List of roles available in organization`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n}=e.req.valid(`param`),{page:r,per_page:i,sort:a,q:o}=e.req.valid(`query`);if(!await e.env.data.organizations.get(t,n))throw new m(404,{message:`Organization not found`});let s=await e.env.data.roles.list(t,{page:r,per_page:i,sort:to(a),q:o});return e.json(s.roles)}}),sq=L({route:(0,f.createRoute)({tags:[`organizations`],method:`get`,path:`/{id}/invitations`,request:{params:f.z.object({id:f.z.string().openapi({description:`Organization ID`,param:{name:`id`,in:`path`}})}),query:BK,headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:organizations`]}],responses:{200:{content:{"application/json":{schema:f.z.union([f.z.array(Ar),VK])}},description:`List of organization invitations`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n}=e.req.valid(`param`),{page:r,per_page:i,include_totals:a,fields:o,include_fields:s,sort:c}=e.req.valid(`query`),l=await e.env.data.organizations.get(t,n);if(!l)throw new m(404,{message:`Organization not found`});let u=(await e.env.data.invites.list(t,{page:r,per_page:i})).invites.filter(e=>e.organization_id===l.id);if(c){let e=to(c);if(e){let{sort_by:t,sort_order:n}=e;u.sort((e,r)=>{let i=e[t],a=r[t];if(i===void 0||a===void 0||i===a)return 0;let o=i<a?-1:1;return n===`asc`?o:-o})}}if(o){let e=o.split(`,`).map(e=>e.trim());u=u.map(t=>{let n={};for(let r of Object.keys(t))(s?e.includes(r):!e.includes(r))&&(n[r]=t[r]);return n})}return a?e.json({invitations:u,start:r*i,limit:i,length:u.length}):e.json(u)}}),cq=L({route:(0,f.createRoute)({tags:[`organizations`],method:`get`,path:`/{id}/invitations/{invitation_id}`,request:{params:f.z.object({id:f.z.string().openapi({description:`Organization ID`,param:{name:`id`,in:`path`}}),invitation_id:f.z.string().openapi({description:`Invitation ID`,param:{name:`invitation_id`,in:`path`}})}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:organizations`]}],responses:{200:{content:{"application/json":{schema:Ar}},description:`An invitation`},404:{description:`Invitation not found`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n,invitation_id:r}=e.req.valid(`param`),i=await e.env.data.organizations.get(t,n);if(!i)throw new m(404,{message:`Organization not found`});let a=await e.env.data.invites.get(t,r);if(!a||a.organization_id!==i.id)throw new m(404,{message:`Invitation not found`});return e.json(a)}}),lq=L({route:(0,f.createRoute)({tags:[`organizations`],method:`post`,path:`/{id}/invitations`,request:{params:f.z.object({id:f.z.string().openapi({description:`Organization ID`,param:{name:`id`,in:`path`}})}),body:{content:{"application/json":{schema:HK}}},headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`update:organizations`]}],responses:{201:{content:{"application/json":{schema:Ar}},description:`The created invitation`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n}=e.req.valid(`param`),r=e.req.valid(`json`),i=await e.env.data.organizations.get(t,n);if(!i)throw new m(404,{message:`Organization not found`});let a=Oee(),o=Fa(e.env,e.var.custom_domain),s=new URL(`u2/accept-invitation`,o);s.searchParams.set(`invitation`,a),s.searchParams.set(`organization`,i.id);let c=s.toString(),l={...r,id:a,organization_id:i.id,invitation_url:c},u=await e.env.data.invites.create(t,l);if(await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Create an Organization Invitation`,targetType:`invitation`,targetId:u.id,afterState:u}),r.send_invitation_email!==!1&&r.invitee?.email)try{await HV(e,{to:r.invitee.email,invitationUrl:c,inviterName:r.inviter?.name,organizationName:i.display_name||i.name||i.id,ttlSec:r.ttl_sec??604800})}catch(e){console.error(`[invitations] failed to send invitation email for ${u.id}:`,e)}return e.json(u,{status:201})}}),uq=L({route:(0,f.createRoute)({tags:[`organizations`],method:`delete`,path:`/{id}/invitations/{invitation_id}`,request:{params:f.z.object({id:f.z.string().openapi({description:`Organization ID`,param:{name:`id`,in:`path`}}),invitation_id:f.z.string().openapi({description:`Invitation ID`,param:{name:`invitation_id`,in:`path`}})}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`update:organizations`]}],responses:{204:{description:`Invitation deleted successfully`},404:{description:`Invitation not found`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n,invitation_id:r}=e.req.valid(`param`),i=await e.env.data.organizations.get(t,n);if(!i)throw new m(404,{message:`Organization not found`});let a=await e.env.data.invites.get(t,r);if(!a||a.organization_id!==i.id||!await e.env.data.invites.remove(t,r))throw new m(404,{message:`Invitation not found`});return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Delete an Organization Invitation`,targetType:`invitation`,targetId:r}),e.body(null,{status:204})}}),dq=L({route:(0,f.createRoute)({tags:[`organizations`],method:`get`,path:`/{id}/enabled_connections`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()}),query:f.z.object({include_totals:f.z.string().optional().transform(e=>e===`true`).openapi({deprecated:!0,description:`Ignored for compatibility; the connections/total/start/limit/length wrapper is always returned.`}),page:f.z.string().optional().transform(e=>e?parseInt(e,10):0),per_page:f.z.string().optional().transform(e=>e?parseInt(e,10):50)})},security:[{Bearer:[`read:organization_connections`]}],responses:{200:{content:{"application/json":{schema:bt.extend({connections:f.z.array(sa)})}},description:`Connections enabled for the organization`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n}=e.req.valid(`param`),{include_totals:r,page:i,per_page:a}=e.req.valid(`query`),o=await e.env.data.organizations.get(t,n);if(!o)throw new m(404,{message:`Organization not found`});let s=await e.env.data.organizationConnections.list(t,o.id),c=i*a,l=s.slice(c,c+a);return e.json({connections:l,total:s.length,start:c,limit:a,length:l.length})}}),fq=L({route:(0,f.createRoute)({tags:[`organizations`],method:`post`,path:`/{id}/enabled_connections`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()}),body:{content:{"application/json":{schema:oa}}}},security:[{Bearer:[`create:organization_connections`]}],responses:{201:{content:{"application/json":{schema:sa}},description:`Connection enabled for the organization`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n}=e.req.valid(`param`),r=e.req.valid(`json`),i=await e.env.data.organizations.get(t,n);if(!i)throw new m(404,{message:`Organization not found`});if(!await e.env.data.connections.get(t,r.connection_id))throw new m(400,{message:`Connection ${r.connection_id} not found`});if(await e.env.data.organizationConnections.get(t,i.id,r.connection_id))throw new m(409,{message:`Connection already enabled for this organization`});let a=await e.env.data.organizationConnections.create(t,i.id,r);return await I(e,t,{type:P.SUCCESS_API_OPERATION,description:`Enable an Organization Connection`,targetType:`organization_connection`,targetId:`${i.id}:${r.connection_id}`}),e.json(a,{status:201})}}),pq=L({route:(0,f.createRoute)({tags:[`organizations`],method:`get`,path:`/{id}/enabled_connections/{connection_id}`,request:{params:f.z.object({id:f.z.string(),connection_id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:organization_connections`]}],responses:{200:{content:{"application/json":{schema:sa}},description:`An enabled organization connection`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n,connection_id:r}=e.req.valid(`param`),i=await e.env.data.organizations.get(t,n);if(!i)throw new m(404,{message:`Organization not found`});let a=await e.env.data.organizationConnections.get(t,i.id,r);if(!a)throw new m(404,{message:`Organization connection not found`});return e.json(a)}}),mq=L({route:(0,f.createRoute)({tags:[`organizations`],method:`patch`,path:`/{id}/enabled_connections/{connection_id}`,request:{params:f.z.object({id:f.z.string(),connection_id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()}),body:{content:{"application/json":{schema:oa.omit({connection_id:!0}).partial()}}}},security:[{Bearer:[`update:organization_connections`]}],responses:{200:{content:{"application/json":{schema:sa}},description:`Updated organization connection`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n,connection_id:r}=e.req.valid(`param`),i=e.req.valid(`json`),a=await e.env.data.organizations.get(t,n);if(!a)throw new m(404,{message:`Organization not found`});let o=await e.env.data.organizationConnections.update(t,a.id,r,i);if(!o)throw new m(404,{message:`Organization connection not found`});return await I(e,t,{type:P.SUCCESS_API_OPERATION,description:`Update an Organization Connection`,targetType:`organization_connection`,targetId:`${a.id}:${r}`}),e.json(o)}}),hq=L({route:(0,f.createRoute)({tags:[`organizations`],method:`delete`,path:`/{id}/enabled_connections/{connection_id}`,request:{params:f.z.object({id:f.z.string(),connection_id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`delete:organization_connections`]}],responses:{204:{description:`Connection disabled`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n,connection_id:r}=e.req.valid(`param`),i=await e.env.data.organizations.get(t,n);if(!i)throw new m(404,{message:`Organization not found`});if(!await e.env.data.organizationConnections.remove(t,i.id,r))throw new m(404,{message:`Organization connection not found`});return await I(e,t,{type:P.SUCCESS_API_OPERATION,description:`Disable an Organization Connection`,targetType:`organization_connection`,targetId:`${i.id}:${r}`}),e.body(null,{status:204})}}),gq=new f.OpenAPIHono().openapiRoutes([YK,XK,ZK,QK,$K,eq,tq,nq,rq,iq,aq,oq,sq,cq,lq,uq,dq,fq,pq,mq,hq]);function _q(e){return`${e.slice(0,4)}-${e.slice(4,6)}-${e.slice(6,8)}`}function vq(e){return e.toISOString().split(`T`)[0]}function yq(e,t,n){let r=new Map(e.map(e=>[e.date,e])),i=[],a=new Date(`${t}T00:00:00.000Z`),o=new Date(`${n}T00:00:00.000Z`);for(let e=a;e<=o;e.setUTCDate(e.getUTCDate()+1)){let t=vq(e),n=r.get(t);if(n)i.push(n);else{let e=`${t}T00:00:00.000Z`;i.push({date:t,logins:0,signups:0,leaked_passwords:0,created_at:e,updated_at:e})}}return i}var bq=L({route:(0,f.createRoute)({tags:[`stats`],method:`get`,path:`/daily`,request:{query:f.z.object({from:f.z.string().optional().openapi({description:`Optional first day of the date range (inclusive) in YYYYMMDD format`,example:`20251120`}),to:f.z.string().optional().openapi({description:`Optional last day of the date range (inclusive) in YYYYMMDD format`,example:`20251219`})}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:stats`]}],responses:{200:{content:{"application/json":{schema:f.z.array(fa)}},description:`Daily statistics including logins, signups, and leaked passwords`}}}),handler:async e=>{let{from:t,to:n}=e.req.valid(`query`);if(!e.env.data.stats)throw new m(501,{message:`Stats adapter not configured`});let r=new Date,i=new Date(r);i.setUTCDate(i.getUTCDate()-30);let a=t?_q(t):vq(i),o=n?_q(n):vq(r),s=await e.env.data.stats.getDaily(e.var.tenant_id,{from:a,to:o});return e.json(yq(s,a,o))}}),xq=L({route:(0,f.createRoute)({tags:[`stats`],method:`get`,path:`/active-users`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:stats`]}],responses:{200:{content:{"application/json":{schema:f.z.number().openapi({description:`Number of active users in the last 30 days`,example:1234})}},description:`Number of active users in the last 30 days`}}}),handler:async e=>{if(!e.env.data.stats)throw new m(501,{message:`Stats adapter not configured`});let t=await e.env.data.stats.getActiveUsers(e.var.tenant_id);return e.json(t)}}),Sq=new f.OpenAPIHono().openapiRoutes([bq,xq]),Cq={"active-users":[`time`,`connection`,`client_id`,`user_type`],logins:[`time`,`connection`,`client_id`,`user_type`,`event`],signups:[`time`,`connection`,`client_id`,`user_type`,`event`],"refresh-tokens":[`time`,`client_id`,`event`],sessions:[`time`,`client_id`]},wq=[`hour`,`day`,`week`,`month`],Tq=[`password`,`social`,`passwordless`,`enterprise`],Eq={"active-users":`active_users`,logins:`logins`,signups:`signups`,"refresh-tokens":`refresh_tokens`,sessions:`sessions`},Dq=1e4,Oq=1e3,kq=5e4,Aq=720*60*60*1e3,jq=class extends Error{param;detail;constructor(e,t){super(t),this.param=e,this.detail=t}};function Mq(e,t){let n=new Date(e);if(Number.isNaN(n.getTime()))throw new jq(t,`'${t}' must be an ISO 8601 datetime`);return n.toISOString()}function Nq(e,t,n,{min:r,max:i}){if(e===void 0)return n;let a=Number.parseInt(e,10);if(!Number.isFinite(a)||String(a)!==e)throw new jq(t,`'${t}' must be an integer`);if(a<r||a>i)throw new jq(t,`'${t}' must be between ${r} and ${i}`);return a}function Pq(e,t,n){let r=new Date,i=new Date(r.getTime()-720*60*60*1e3),a=t(`from`),o=t(`to`),s=a?Mq(a,`from`):i.toISOString(),c=o?Mq(o,`to`):r.toISOString(),l=new Date(s).getTime(),u=new Date(c).getTime();if(u<=l)throw new jq(`to`,`'to' must be after 'from'`);let d=t(`interval`),f=`day`;if(d){if(!wq.includes(d))throw new jq(`interval`,`'interval' must be one of: ${wq.join(`, `)}`);f=d}if(f===`hour`&&u-l>Aq)throw new jq(`interval`,`interval=hour is only allowed for ranges of 30 days or less`);let p=t(`tz`)||`UTC`,m=(t(`group_by`)||``).split(`,`).map(e=>e.trim()).filter(Boolean),h=new Set(Cq[e]);for(let t of m)if(!h.has(t))throw new jq(`group_by`,`group_by value '${t}' is not valid for /analytics/${e}. Allowed: ${[...h].join(`, `)}`);let g=n(`user_type`);for(let e of g)if(!Tq.includes(e))throw new jq(`user_type`,`user_type value '${e}' is not valid. Allowed: ${Tq.join(`, `)}`);let _={connection:n(`connection`),client_id:n(`client_id`),user_type:g,user_id:n(`user_id`)},v=Nq(t(`limit`),`limit`,Oq,{min:1,max:Dq}),y=Nq(t(`offset`),`offset`,0,{min:0,max:1e6});if(m.length===0&&v>kq)throw new jq(`limit`,`ungrouped queries may not request more than ${kq} rows; add group_by or lower limit`);let b=t(`order_by`),x;if(b){let t=b.startsWith(`-`)?b.slice(1):b,n=new Set([...m,Eq[e]]);if(!n.has(t))throw new jq(`order_by`,`'order_by' column '${t}' is not selectable. Allowed: ${[...n].join(`, `)}`);x=b}return{from:s,to:c,interval:f,tz:p,filters:_,group_by:m,limit:v,offset:y,order_by:x}}function Fq(e,t=Date.now()){let n=new Date(e).getTime(),r=t-3600*1e3,i=new Date(t);i.setUTCHours(0,0,0,0),i.setUTCDate(i.getUTCDate()-1);let a=t-1440*60*1e3;return n>=r?60:n>=a?300:n<i.getTime()?1440*60:3600}function Iq(e,t,n){let r={from:n.from,to:n.to,interval:n.interval,tz:n.tz,group_by:[...n.group_by].sort(),filters:{connection:[...n.filters.connection||[]].sort(),client_id:[...n.filters.client_id||[]].sort(),user_type:[...n.filters.user_type||[]].sort(),user_id:[...n.filters.user_id||[]].sort()},limit:n.limit,offset:n.offset,order_by:n.order_by||``};return`analytics:${e}:${t}:${JSON.stringify(r)}`}var Lq=f.z.object({from:f.z.string().datetime().optional().openapi({description:`Inclusive lower bound, ISO 8601 datetime`}),to:f.z.string().datetime().optional().openapi({description:`Exclusive upper bound, ISO 8601 datetime`}),interval:f.z.enum([`hour`,`day`,`week`,`month`]).optional().openapi({description:`Time bucket size for time-grouped queries`}),tz:f.z.string().optional().openapi({description:`IANA timezone, e.g. Europe/Madrid`}),group_by:f.z.string().optional().openapi({description:`Comma-separated dimensions, e.g. 'time,connection'`}),connection:f.z.union([f.z.string(),f.z.array(f.z.string())]).optional().openapi({description:`Repeatable. Filter to one or more connection names.`}),client_id:f.z.union([f.z.string(),f.z.array(f.z.string())]).optional().openapi({description:`Repeatable. Filter to one or more client IDs.`}),user_type:f.z.union([f.z.enum([`password`,`social`,`passwordless`,`enterprise`]),f.z.array(f.z.enum([`password`,`social`,`passwordless`,`enterprise`]))]).optional().openapi({description:`Repeatable.`}),user_id:f.z.union([f.z.string(),f.z.array(f.z.string())]).optional().openapi({description:`Repeatable.`}),limit:f.z.string().optional().openapi({description:`Max 10000`}),offset:f.z.string().optional(),order_by:f.z.string().optional().openapi({description:`Column name, prefix with '-' for descending`})});function Rq(e={}){let t=e.cache,n=new f.OpenAPIHono;function r(e){return(0,f.createRoute)({tags:[`analytics`],method:`get`,path:`/${e}`,request:{query:Lq,headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:stats`]}],responses:{200:{content:{"application/json":{schema:ba}},description:`${e} analytics`},400:{content:{"application/json":{schema:f.z.any()}},description:`Invalid request`}}})}let i=e=>async n=>{if(!n.env.data.analytics)throw new m(501,{message:`Analytics adapter not configured`});let r;try{r=Pq(e,e=>n.req.query(e)??void 0,e=>n.req.queries(e)??[])}catch(e){if(e instanceof jq)return n.json({type:`https://authhero.net/errors/invalid-parameter`,title:`Invalid parameter`,status:400,detail:e.detail,param:e.param},400);throw e}let i=n.var.tenant_id,a=t?Iq(i,e,r):null;if(t&&a){let e=await t.get(a);if(e!==null)return n.header(`X-Cache`,`HIT`),n.json(e)}let o=await n.env.data.analytics.query(i,e,r);if(t&&a){let e=Fq(r.to);t.set(a,o,e).catch(()=>{}),n.header(`X-Cache`,`MISS`),n.header(`Cache-Control`,`public, max-age=${e}`)}return n.json(o)};for(let e of[`active-users`,`logins`,`signups`,`refresh-tokens`,`sessions`])n.openapi(r(e),i(e));return n}var zq=[`sms`,`otp`,`email`,`push-notification`,`webauthn-roaming`,`webauthn-platform`,`recovery-code`,`duo`];function Bq(e){return e.replace(/-/g,`_`)}var Vq=f.z.object({name:f.z.enum(zq),enabled:f.z.boolean(),trial_expired:f.z.boolean().optional()}),Hq=f.z.array(Vq),Uq=f.z.object({enabled:f.z.boolean()}),Wq=f.z.object({provider:f.z.enum([`twilio`,`vonage`,`aws_sns`,`phone_message_hook`])}),Gq=f.z.object({sid:f.z.string().optional(),auth_token:f.z.string().optional(),from:f.z.string().optional(),messaging_service_sid:f.z.string().optional()}),Kq=f.z.object({message_type:f.z.enum([`sms`,`voice`])}),qq=L({route:(0,f.createRoute)({tags:[`guardian`],method:`get`,path:`/factors`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:guardian_factors`]}],responses:{200:{content:{"application/json":{schema:Hq}},description:`List of MFA factors`}}}),handler:async e=>{let t=(await e.env.data.tenants.get(e.var.tenant_id))?.mfa?.factors,n=zq.map(e=>{let n=Bq(e);return{name:e,enabled:!!t?.[n],trial_expired:!1}});return e.json(n)}}),Jq=L({route:(0,f.createRoute)({tags:[`guardian`],method:`get`,path:`/factors/sms/selected-provider`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:guardian_factors`]}],responses:{200:{content:{"application/json":{schema:Wq}},description:`Selected SMS provider`}}}),handler:async e=>{let t=(await e.env.data.tenants.get(e.var.tenant_id))?.mfa?.sms_provider?.provider||`twilio`;return e.json({provider:t})}}),Yq=L({route:(0,f.createRoute)({tags:[`guardian`],method:`put`,path:`/factors/sms/selected-provider`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),body:{content:{"application/json":{schema:Wq}}}},security:[{Bearer:[`update:guardian_factors`]}],responses:{200:{content:{"application/json":{schema:Wq}},description:`Updated SMS provider selection`}}}),handler:async e=>{let{provider:t}=e.req.valid(`json`),n=await e.env.data.tenants.get(e.var.tenant_id);if(!n)throw new m(404,{message:`Tenant not found`});return await e.env.data.tenants.update(e.var.tenant_id,{mfa:{...n.mfa,sms_provider:{provider:t}}}),await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Set SMS Provider`,targetType:`guardian`,targetId:e.var.tenant_id}),e.json({provider:t})}}),Xq=L({route:(0,f.createRoute)({tags:[`guardian`],method:`get`,path:`/factors/sms/providers/twilio`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:guardian_factors`]}],responses:{200:{content:{"application/json":{schema:Gq}},description:`Twilio provider configuration`}}}),handler:async e=>{let t=(await e.env.data.tenants.get(e.var.tenant_id))?.mfa?.twilio||{};return e.json({sid:t.sid,auth_token:t.auth_token?`********`:void 0,from:t.from,messaging_service_sid:t.messaging_service_sid})}}),Zq=L({route:(0,f.createRoute)({tags:[`guardian`],method:`put`,path:`/factors/sms/providers/twilio`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),body:{content:{"application/json":{schema:Gq}}}},security:[{Bearer:[`update:guardian_factors`]}],responses:{200:{content:{"application/json":{schema:Gq}},description:`Updated Twilio configuration`}}}),handler:async e=>{let t=e.req.valid(`json`),n=await e.env.data.tenants.get(e.var.tenant_id);if(!n)throw new m(404,{message:`Tenant not found`});let r=n.mfa?.twilio||{},i={...r,...t,auth_token:t.auth_token&&t.auth_token!==`********`?t.auth_token:r.auth_token};return await e.env.data.tenants.update(e.var.tenant_id,{mfa:{...n.mfa,twilio:i}}),await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Configure Twilio Provider`,targetType:`guardian`,targetId:e.var.tenant_id}),e.json({sid:i.sid,auth_token:i.auth_token?`********`:void 0,from:i.from,messaging_service_sid:i.messaging_service_sid})}}),Qq=L({route:(0,f.createRoute)({tags:[`guardian`],method:`get`,path:`/factors/phone/message-types`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:guardian_factors`]}],responses:{200:{content:{"application/json":{schema:f.z.array(Kq)}},description:`Available message types`}}}),handler:async e=>e.json([{message_type:`sms`}])}),$q=L({route:(0,f.createRoute)({tags:[`guardian`],method:`get`,path:`/policies`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:guardian_factors`]}],responses:{200:{content:{"application/json":{schema:f.z.array(f.z.string())}},description:`Current MFA policies`}}}),handler:async e=>(await e.env.data.tenants.get(e.var.tenant_id))?.mfa?.policy===`always`?e.json([`all-applications`]):e.json([])}),eJ=L({route:(0,f.createRoute)({tags:[`guardian`],method:`put`,path:`/policies`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),body:{content:{"application/json":{schema:f.z.array(f.z.string())}}}},security:[{Bearer:[`update:guardian_factors`]}],responses:{200:{content:{"application/json":{schema:f.z.array(f.z.string())}},description:`Updated MFA policies`}}}),handler:async e=>{let t=e.req.valid(`json`),n=await e.env.data.tenants.get(e.var.tenant_id);if(!n)throw new m(404,{message:`Tenant not found`});let r=t.includes(`all-applications`)?`always`:`never`;return await e.env.data.tenants.update(e.var.tenant_id,{mfa:{...n.mfa,policy:r}}),await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Set Guardian Policies`,targetType:`guardian`,targetId:e.var.tenant_id}),e.json(r===`always`?[`all-applications`]:[])}}),tJ=L({route:(0,f.createRoute)({tags:[`guardian`],method:`post`,path:`/enrollments/ticket`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),body:{content:{"application/json":{schema:f.z.object({user_id:f.z.string(),send_mail:f.z.boolean().optional(),email:f.z.string().email().optional()})}}}},security:[{Bearer:[`create:guardian_enrollment_tickets`]}],responses:{201:{content:{"application/json":{schema:f.z.object({ticket_id:f.z.string(),ticket_url:f.z.string()})}},description:`Enrollment ticket created`}}}),handler:async e=>{let{user_id:t,email:n}=e.req.valid(`json`),r=e.var.tenant_id,i=await e.env.data.tenants.get(r);if(!i)throw new m(404,{message:`Tenant not found`});if(!(i.mfa?.factors?.sms===!0||i.mfa?.factors?.otp===!0||i.mfa?.factors?.webauthn_roaming===!0||i.mfa?.factors?.webauthn_platform===!0))throw new m(400,{message:`At least one MFA factor (SMS, OTP, or WebAuthn) must be enabled before creating enrollment tickets.`});let a=await e.env.data.users.get(r,t);if(!a)throw new m(404,{message:`User not found`});let{clients:o}=await e.env.data.clients.list(r);if(!o.length)throw new m(400,{message:`No clients configured for this tenant`});let s=o[0].client_id,c=new Date(Date.now()+7200*60*1e3).toISOString(),l=await e.env.data.loginSessions.create(r,{expires_at:c,authParams:{client_id:s,username:n||a.email},csrf_token:To(),user_id:t,state:N.AWAITING_MFA,state_data:JSON.stringify({guardian_enrollment:!0})}),u=To();await e.env.data.codes.create(r,{code_id:u,code_type:`ticket`,login_id:l.id,user_id:t,expires_at:c});let d=Fa(e.env,e.var.custom_domain),f=new URL(`u2/guardian/enroll`,d);f.searchParams.append(`ticket`,u),e.var.custom_domain||f.searchParams.append(`tenant_id`,r);let p=f.toString();return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Create Enrollment Ticket`,targetType:`guardian`,targetId:e.var.tenant_id}),e.json({ticket_id:u,ticket_url:p},201)}}),nJ=L({route:(0,f.createRoute)({tags:[`guardian`],method:`get`,path:`/factors/{factor_name}`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),params:f.z.object({factor_name:f.z.enum(zq)})},security:[{Bearer:[`read:guardian_factors`]}],responses:{200:{content:{"application/json":{schema:Vq}},description:`MFA factor details`}}}),handler:async e=>{let{factor_name:t}=e.req.valid(`param`),n=(await e.env.data.tenants.get(e.var.tenant_id))?.mfa?.factors,r=Bq(t);return e.json({name:t,enabled:!!n?.[r],trial_expired:!1})}}),rJ=L({route:(0,f.createRoute)({tags:[`guardian`],method:`put`,path:`/factors/{factor_name}`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),params:f.z.object({factor_name:f.z.enum(zq)}),body:{content:{"application/json":{schema:Uq}}}},security:[{Bearer:[`update:guardian_factors`]}],responses:{200:{content:{"application/json":{schema:Vq}},description:`Updated MFA factor`}}}),handler:async e=>{let{factor_name:t}=e.req.valid(`param`),{enabled:n}=e.req.valid(`json`),r=Bq(t),i=await e.env.data.tenants.get(e.var.tenant_id);if(!i)throw new m(404,{message:`Tenant not found`});let a=i.mfa?.factors;return await e.env.data.tenants.update(e.var.tenant_id,{mfa:{...i.mfa,factors:{sms:a?.sms??!1,otp:a?.otp??!1,email:a?.email??!1,push_notification:a?.push_notification??!1,webauthn_roaming:a?.webauthn_roaming??!1,webauthn_platform:a?.webauthn_platform??!1,recovery_code:a?.recovery_code??!1,duo:a?.duo??!1,[r]:n}}}),await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Update Guardian Factor`,targetType:`guardian`,targetId:e.var.tenant_id}),e.json({name:t,enabled:n,trial_expired:!1})}}),iJ=new f.OpenAPIHono().openapiRoutes([qq,Jq,Yq,Xq,Zq,Qq,$q,eJ,tJ,nJ,rJ]),aJ=f.z.object({id:f.z.string(),type:f.z.string(),confirmed:f.z.boolean(),phone_number:f.z.string().optional(),credential_id:f.z.string().optional(),public_key:f.z.string().optional(),sign_count:f.z.number().optional(),credential_backed_up:f.z.boolean().optional(),transports:f.z.array(f.z.string()).optional(),friendly_name:f.z.string().optional(),created_at:f.z.string()}),oJ=f.z.array(aJ),sJ=f.z.object({type:f.z.enum([`phone`,`totp`,`email`,`push`,`webauthn-roaming`,`webauthn-platform`,`passkey`]),phone_number:f.z.string().optional(),totp_secret:f.z.string().optional(),credential_id:f.z.string().optional(),public_key:f.z.string().optional(),sign_count:f.z.number().int().nonnegative().optional(),credential_backed_up:f.z.boolean().optional(),transports:f.z.array(f.z.string()).optional(),friendly_name:f.z.string().optional(),confirmed:f.z.boolean().optional().default(!0)}).superRefine((e,t)=>{e.type===`phone`&&!e.phone_number&&t.addIssue({code:f.z.ZodIssueCode.custom,message:`phone_number is required when type is 'phone'`,path:[`phone_number`]}),e.type===`totp`&&!e.totp_secret&&t.addIssue({code:f.z.ZodIssueCode.custom,message:`totp_secret is required when type is 'totp'`,path:[`totp_secret`]}),[`webauthn-roaming`,`webauthn-platform`,`passkey`].includes(e.type)&&(e.credential_id||t.addIssue({code:f.z.ZodIssueCode.custom,message:`credential_id is required when type is '${e.type}'`,path:[`credential_id`]}),e.public_key||t.addIssue({code:f.z.ZodIssueCode.custom,message:`public_key is required when type is '${e.type}'`,path:[`public_key`]}))}),cJ=L({route:(0,f.createRoute)({tags:[`users`],method:`get`,path:`/`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:users`]}],responses:{200:{content:{"application/json":{schema:oJ}},description:`List of authentication methods for the user`}}}),handler:async e=>{let t=e.req.param(`user_id`);if(!t)throw new m(400,{message:`user_id is required`});let n=(await e.env.data.authenticationMethods.list(e.var.tenant_id,t)).map(e=>({id:e.id,type:e.type,confirmed:e.confirmed,phone_number:e.phone_number,credential_id:e.credential_id,public_key:e.public_key,sign_count:e.sign_count,credential_backed_up:e.credential_backed_up,transports:e.transports,friendly_name:e.friendly_name,created_at:e.created_at}));return e.json(n)}}),lJ=L({route:(0,f.createRoute)({tags:[`users`],method:`post`,path:`/`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),body:{content:{"application/json":{schema:sJ}}}},security:[{Bearer:[`update:users`]}],responses:{201:{content:{"application/json":{schema:aJ}},description:`Created authentication method`}}}),handler:async e=>{let t=e.req.param(`user_id`);if(!t)throw new m(400,{message:`user_id is required`});let n=e.req.valid(`json`),r=await e.env.data.authenticationMethods.create(e.var.tenant_id,{user_id:t,type:n.type,phone_number:n.phone_number,totp_secret:n.totp_secret,credential_id:n.credential_id,public_key:n.public_key,sign_count:n.sign_count,credential_backed_up:n.credential_backed_up,transports:n.transports,friendly_name:n.friendly_name,confirmed:n.confirmed??!0});return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Create Authentication Method`,targetType:`authentication_method`,targetId:r.id}),e.json({id:r.id,type:r.type,confirmed:r.confirmed,phone_number:r.phone_number,credential_id:r.credential_id,public_key:r.public_key,sign_count:r.sign_count,credential_backed_up:r.credential_backed_up,transports:r.transports,friendly_name:r.friendly_name,created_at:r.created_at},201)}}),uJ=L({route:(0,f.createRoute)({tags:[`users`],method:`get`,path:`/{method_id}`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),params:f.z.object({method_id:f.z.string()})},security:[{Bearer:[`read:users`]}],responses:{200:{content:{"application/json":{schema:aJ}},description:`Authentication method details`}}}),handler:async e=>{let{method_id:t}=e.req.valid(`param`),n=e.req.param(`user_id`),r=await e.env.data.authenticationMethods.get(e.var.tenant_id,t);if(!r||r.user_id!==n)throw new m(404,{message:`Authentication method not found`});return e.json({id:r.id,type:r.type,confirmed:r.confirmed,phone_number:r.phone_number,credential_id:r.credential_id,public_key:r.public_key,sign_count:r.sign_count,credential_backed_up:r.credential_backed_up,transports:r.transports,friendly_name:r.friendly_name,created_at:r.created_at})}}),dJ=L({route:(0,f.createRoute)({tags:[`users`],method:`delete`,path:`/{method_id}`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),params:f.z.object({method_id:f.z.string()})},security:[{Bearer:[`update:users`]}],responses:{204:{description:`Authentication method deleted`}}}),handler:async e=>{let{method_id:t}=e.req.valid(`param`),n=e.req.param(`user_id`),r=await e.env.data.authenticationMethods.get(e.var.tenant_id,t);if(!r||r.user_id!==n||!await e.env.data.authenticationMethods.remove(e.var.tenant_id,t))throw new m(404,{message:`Authentication method not found`});return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Delete Authentication Method`,targetType:`authentication_method`,targetId:t}),e.body(null,204)}}),fJ=new f.OpenAPIHono().openapiRoutes([cJ,lJ,uJ,dJ]),pJ=432e3,mJ=f.z.object({user_id:f.z.string(),result_url:f.z.string().url().optional(),ttl_sec:f.z.number().int().positive().max(2592e3).optional(),client_id:f.z.string().optional(),organization_id:f.z.string().optional(),identity:f.z.object({user_id:f.z.string().optional(),provider:f.z.string().optional()}).optional(),includeEmailInRedirect:f.z.boolean().optional()}),hJ=f.z.object({user_id:f.z.string().optional(),email:f.z.string().email().optional(),connection_id:f.z.string().optional(),result_url:f.z.string().url().optional(),ttl_sec:f.z.number().int().positive().max(2592e3).optional(),client_id:f.z.string().optional(),organization_id:f.z.string().optional(),mark_email_as_verified:f.z.boolean().optional(),includeEmailInRedirect:f.z.boolean().optional(),new_password:f.z.string().optional()}),gJ=f.z.object({ticket:f.z.string().openapi({description:`A URL representing the ticket. Single-use, time-limited.`})}),_J=L({route:(0,f.createRoute)({tags:[`tickets`],method:`post`,path:`/email-verification`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),body:{content:{"application/json":{schema:mJ}}}},security:[{Bearer:[`create:user_tickets`]}],responses:{201:{description:`Email verification ticket created`,content:{"application/json":{schema:gJ}}}}}),handler:async e=>{let t=e.var.tenant_id,n=e.req.valid(`json`),r=await e.env.data.users.get(t,n.user_id);if(!r)throw new m(404,{message:`User not found`});let i=To(),a=n.ttl_sec??pJ,o=new Date(Date.now()+a*1e3).toISOString();await e.env.data.codes.create(t,{code_id:i,code_type:`ticket`,login_id:i,user_id:r.user_id,expires_at:o,redirect_uri:n.result_url,state:JSON.stringify({purpose:`email_verification`,client_id:n.client_id,organization_id:n.organization_id,result_url:n.result_url,includeEmailInRedirect:n.includeEmailInRedirect})});let s=Fa(e.env,e.var.custom_domain),c=new URL(`u2/tickets/email-verification`,s);return c.searchParams.set(`ticket`,i),e.var.custom_domain||c.searchParams.set(`tenant_id`,t),await I(e,t,{type:P.SUCCESS_API_OPERATION,description:`Create Email Verification Ticket`,targetType:`ticket`,targetId:i,userId:r.user_id}),e.json({ticket:c.toString()},{status:201})}}),vJ=L({route:(0,f.createRoute)({tags:[`tickets`],method:`post`,path:`/password-change`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),body:{content:{"application/json":{schema:hJ}}}},security:[{Bearer:[`create:user_tickets`]}],responses:{201:{description:`Password change ticket created`,content:{"application/json":{schema:gJ}}}}}),handler:async e=>{let t=e.var.tenant_id,n=e.req.valid(`json`),r=n.user_id;if(!r){if(!n.email)throw new m(400,{message:`user_id or email is required`});let i;if(n.connection_id){let r=await e.env.data.connections.get(t,n.connection_id);if(!r)throw new m(404,{message:`Connection not found (connection_id=${n.connection_id})`});i=r.name}let a=i?`email:${n.email.toLowerCase()} connection:${i}`:`email:${n.email.toLowerCase()}`,{users:o}=await e.env.data.users.list(t,{q:a,per_page:1}),s=o[0];if(!s)throw new m(404,{message:`User not found`});r=s.user_id}let i=To(),a=n.ttl_sec??pJ,o=new Date(Date.now()+a*1e3).toISOString();await e.env.data.codes.create(t,{code_id:i,code_type:`ticket`,login_id:i,user_id:r,expires_at:o,redirect_uri:n.result_url,state:JSON.stringify({purpose:`password_change`,client_id:n.client_id,organization_id:n.organization_id,connection_id:n.connection_id,result_url:n.result_url,mark_email_as_verified:n.mark_email_as_verified})});let s=Fa(e.env,e.var.custom_domain),c=new URL(`u2/tickets/password-change`,s);return c.searchParams.set(`ticket`,i),e.var.custom_domain||c.searchParams.set(`tenant_id`,t),await I(e,t,{type:P.SUCCESS_API_OPERATION,description:`Create Password Change Ticket`,targetType:`ticket`,targetId:i,userId:r}),e.json({ticket:c.toString()},{status:201})}}),yJ=new f.OpenAPIHono().openapiRoutes([_J,vJ]),bJ=f.z.object({proxy_routes:f.z.array(Oi),start:f.z.number(),limit:f.z.number(),length:f.z.number()}),xJ=f.z.object({page:f.z.coerce.number().int().min(0).optional(),per_page:f.z.coerce.number().int().min(1).max(200).optional(),custom_domain_id:f.z.string().optional()}),SJ=f.z.object({id:f.z.string()}),CJ=f.z.object({"tenant-id":f.z.string().optional()});function wJ(e){let t=e.env.data.proxyRoutes;if(!t)throw new m(501,{message:`Proxy routes adapter not configured`});return t}var TJ=L({route:(0,f.createRoute)({tags:[`proxy-routes`],method:`get`,path:`/`,request:{query:xJ,headers:CJ},security:[{Bearer:[`read:proxy_routes`]}],responses:{200:{content:{"application/json":{schema:bJ}},description:`List of proxy routes`}}}),handler:async e=>{let t=wJ(e),n=e.req.valid(`query`),r=await t.list(e.var.tenant_id,{page:n.page,per_page:n.per_page,custom_domain_id:n.custom_domain_id});return e.json(r)}}),EJ=L({route:(0,f.createRoute)({tags:[`proxy-routes`],method:`get`,path:`/{id}`,request:{params:SJ,headers:CJ},security:[{Bearer:[`read:proxy_routes`]}],responses:{200:{content:{"application/json":{schema:Oi}},description:`A proxy route`}}}),handler:async e=>{let t=wJ(e),{id:n}=e.req.valid(`param`),r=await t.get(e.var.tenant_id,n);if(!r)throw new m(404);return e.json(r)}}),DJ=L({route:(0,f.createRoute)({tags:[`proxy-routes`],method:`post`,path:`/`,request:{body:{content:{"application/json":{schema:f.z.object(Di.shape)}}},headers:CJ},security:[{Bearer:[`create:proxy_routes`]}],responses:{201:{content:{"application/json":{schema:Oi}},description:`Created proxy route`}}}),handler:async e=>{let t=wJ(e),n=e.req.valid(`json`),r=await t.create(e.var.tenant_id,n);return hW(e,{tenantId:e.var.tenant_id,entity:`proxy_route`,op:`created`,aggregateId:r.id,payload:r}),e.json(r,{status:201})}}),OJ=L({route:(0,f.createRoute)({tags:[`proxy-routes`],method:`patch`,path:`/{id}`,request:{params:SJ,body:{content:{"application/json":{schema:f.z.object(ki.shape).partial()}}},headers:CJ},security:[{Bearer:[`update:proxy_routes`]}],responses:{200:{content:{"application/json":{schema:Oi}},description:`Updated proxy route`}}}),handler:async e=>{let t=wJ(e),{id:n}=e.req.valid(`param`),r=e.req.valid(`json`);if(!await t.update(e.var.tenant_id,n,r))throw new m(404);let i=await t.get(e.var.tenant_id,n);if(!i)throw new m(404);return hW(e,{tenantId:e.var.tenant_id,entity:`proxy_route`,op:`updated`,aggregateId:n,payload:i}),e.json(i)}}),kJ=L({route:(0,f.createRoute)({tags:[`proxy-routes`],method:`delete`,path:`/{id}`,request:{params:SJ,headers:CJ},security:[{Bearer:[`delete:proxy_routes`]}],responses:{204:{description:`Deleted`}}}),handler:async e=>{let t=wJ(e),{id:n}=e.req.valid(`param`),r=await t.get(e.var.tenant_id,n);if(!await t.remove(e.var.tenant_id,n))throw new m(404);return r&&hW(e,{tenantId:e.var.tenant_id,entity:`proxy_route`,op:`deleted`,aggregateId:n,payload:r}),e.body(null,204)}}),AJ=new f.OpenAPIHono().openapiRoutes([TJ,EJ,DJ,OJ,kJ]),jJ=50,MJ=1e3,NJ=3e5,PJ=5,FJ=7,IJ=3e4;async function LJ(e,t,n){console.warn(`Outbox event ${t} dead-lettering: ${n}`);try{await e.deadLetter(t,n)}catch{}}function RJ(e){let t=Math.min(MJ*2**e,NJ);return new Date(Date.now()+t).toISOString()}async function zJ(e,t,n,r){if(t.length===0)return;let i=r?.maxRetries??PJ,a=crypto.randomUUID(),o=await e.claimEvents(t,a,IJ);if(o.length===0)return;let s=await e.getByIds(o);if(s.length===0)return;let c=[];for(let t of s){if(t.retry_count>=i){await LJ(e,t.id,t.error||`Exceeded max retries (${i})`);continue}let r=!0,a=!1;for(let i of n)if(!(i.accepts&&!i.accepts(t))){a=!0;try{let e=i.transform(t);await i.deliver([e])}catch(n){r=!1;let a=n instanceof Error?n.message:String(n);try{await e.markRetry(t.id,`${i.name}: ${a}`,RJ(t.retry_count))}catch{}break}}if(!a){await LJ(e,t.id,`No destination accepts event_type=${t.event_type}`);continue}r&&c.push(t.id)}if(c.length>0)try{await e.markProcessed(c)}catch{}}async function BJ(e,t,n){let r=n?.batchSize??jJ,i=n?.maxRetries??PJ,a=n?.retentionDays??FJ,o=await e.getUnprocessed(r);if(o.length===0)return;let s=crypto.randomUUID(),c=o.map(e=>e.id),l=new Set(await e.claimEvents(c,s,IJ)),u=o.filter(e=>l.has(e.id));if(u.length===0)return;let d=[],f=[];for(let n of u){if(n.retry_count>=i){await LJ(e,n.id,n.error||`Exceeded max retries (${i})`);continue}let r=!0,a=!1;for(let i of t)if(!(i.accepts&&!i.accepts(n))){a=!0;try{let e=i.transform(n);await i.deliver([e])}catch(t){r=!1;let a=t instanceof Error?t.message:String(t);try{await e.markRetry(n.id,`${i.name}: ${a}`,RJ(n.retry_count))}catch{}break}}if(!a){await LJ(e,n.id,`No destination accepts event_type=${n.event_type}`);continue}r?d.push(n.id):f.push(n.id)}if(d.length>0)try{await e.markProcessed(d)}catch{}try{let t=new Date(Date.now()-a*24*60*60*1e3).toISOString();await e.cleanup(t)}catch{}}function VJ(e){return async(t,n)=>{t.set(`outboxEventPromises`,[]),t.set(`backgroundPromises`,[]);let r;try{await n()}catch(e){r=e}finally{let n=t.var.outboxEventPromises??[],r=[];if(n.length>0){let e=await Promise.allSettled(n);for(let t of e)t.status===`fulfilled`?r.push(t.value):console.error(`Outbox event creation failed`,t.reason)}if(r.length>0){let n=e.getOutbox(t);n&&Va(t,zJ(n,r,e.getDestinations(t),{maxRetries:t.env.outbox?.maxRetries}))}typeof process<`u`&&process.env.NODE_ENV===`test`&&await Ha(t)}if(r)throw r}}function HJ(e){return{log_id:e.id,type:e.log_type,date:e.timestamp,description:e.description||``,ip:e.request.ip,user_agent:e.request.user_agent||``,user_id:e.actor.id||``,user_name:e.actor.email||``,client_id:e.actor.client_id,client_name:``,connection:e.connection,strategy:e.strategy,strategy_type:e.strategy_type,audience:e.audience||``,scope:e.scope||e.actor.scopes?.join(` `),hostname:e.hostname,auth0_client:e.auth0_client,isMobile:e.is_mobile||!1,location_info:e.location,details:{request:{method:e.request.method,path:e.request.path,qs:e.request.query,body:e.request.body},...e.response&&{response:{statusCode:e.response.status_code,body:e.response.body}}}}}var UJ=class{name=`logs`;logs;constructor(e){this.logs=e}accepts(e){return!e.event_type.startsWith(`hook.`)&&!e.event_type.startsWith(`controlplane.sync.`)}transform(e){return{tenantId:e.tenant_id,log:HJ(e)}}async deliver(e){for(let{tenantId:t,log:n}of e)try{await this.logs.create(t,n)}catch(e){let t=e instanceof Error?e.message:String(e);if(t.includes(`UNIQUE constraint failed`)||t.includes(`Duplicate entry`))continue;throw e}}},WJ=1e4;function GJ(e){return{log_id:e.id,description:e.description,data:{date:e.timestamp,type:e.log_type,description:e.description,tenant_name:e.tenant_id,ip:e.request.ip,user_agent:e.request.user_agent,user_id:e.actor.id,user_name:e.actor.email,client_id:e.actor.client_id,connection:e.connection,strategy:e.strategy,strategy_type:e.strategy_type,audience:e.audience,scope:e.scope||e.actor.scopes?.join(` `),hostname:e.hostname,auth0_client:e.auth0_client,location_info:e.location,details:{request:{method:e.request.method,path:e.request.path,qs:e.request.query,body:e.request.body},...e.response&&{response:{statusCode:e.response.status_code,body:e.response.body}}}}}}function KJ(e,t){return!e.filters||e.filters.length===0?!0:e.filters.some(e=>e.name===t)}function qJ(e,t){switch(e){case`JSONOBJECT`:return JSON.stringify(t);case`JSONLINES`:return JSON.stringify(t)+`
|
|
2940
|
-
`;default:return JSON.stringify([t])}}var JJ=class{name=`log-streams`;logStreams;timeoutMs;constructor(e,t){this.logStreams=e,this.timeoutMs=t?.timeoutMs??WJ}accepts(e){return!e.event_type.startsWith(`hook.`)&&!e.event_type.startsWith(`controlplane.sync.`)}transform(e){return{tenantId:e.tenant_id,logType:e.log_type,payload:GJ(e)}}async deliver(e){for(let{tenantId:t,logType:n,payload:r}of e){let e=(await this.logStreams.list(t)).filter(e=>e.type===`http`&&e.status===`active`);if(e.length!==0)for(let t of e)KJ(t,n)&&await this.deliverToStream(t,r)}}async deliverToStream(e,t){let n=e.sink;if(!n.http_endpoint)throw Error(`Log stream ${e.id} is missing sink.http_endpoint`);let r={"Content-Type":n.http_content_type||`application/json`};if(n.http_authorization&&(r.Authorization=n.http_authorization),Array.isArray(n.http_custom_headers))for(let e of n.http_custom_headers)e&&typeof e.header==`string`&&typeof e.value==`string`&&(r[e.header]=e.value);let i=qJ(n.http_content_format,t),a=new AbortController,o=setTimeout(()=>a.abort(),this.timeoutMs);try{let t=await fetch(n.http_endpoint,{method:`POST`,headers:r,body:i,signal:a.signal});if(!t.ok){let n=await t.text().catch(()=>``);throw Error(`Log stream ${e.id} returned ${t.status}: ${n.slice(0,256)}`)}}finally{clearTimeout(o)}}},YJ=`hook.`,XJ=1e4,ZJ=`webhook`,QJ=class{name=`webhooks`;hooks;getServiceToken;timeoutMs;webhookInvoker;constructor(e,t,n={}){this.hooks=e,this.getServiceToken=t,this.timeoutMs=n.timeoutMs??XJ,this.webhookInvoker=n.webhookInvoker}accepts(e){return e.event_type.startsWith(YJ)}transform(e){let t=e.event_type.slice(5);return{eventId:e.id,tenantId:e.tenant_id,triggerId:t,payload:{tenant_id:e.tenant_id,trigger_id:t,user:e.target?.after,request:e.request}}}async deliver(e){for(let t of e){let{hooks:e}=await this.hooks.list(t.tenantId),n=e.filter(e=>e.enabled&&e.trigger_id===t.triggerId&&`url`in e);if(n.length!==0)for(let e of n)this.webhookInvoker?await this.invokeCustom(e,t):await this.invokeDefault(e,t)}}async invokeCustom(e,t){let n=this.webhookInvoker,r=(e=ZJ)=>this.getServiceToken(t.tenantId,e),i=new Promise((n,r)=>{setTimeout(()=>r(Error(`Webhook ${e.hook_id} (${t.triggerId}) timed out after ${this.timeoutMs}ms`)),this.timeoutMs)}),a=await Promise.race([n({hook:e,data:t.payload,tenant_id:t.tenantId,idempotency_key:t.eventId,createServiceToken:r}),i]);if(!a.ok){let n=await a.text().catch(()=>``);throw Error(`Webhook ${e.hook_id} (${t.triggerId}) returned ${a.status}: ${n.slice(0,256)}`)}}async invokeDefault(e,t){let n=await this.getServiceToken(t.tenantId,ZJ),r=new AbortController,i=setTimeout(()=>r.abort(),this.timeoutMs);try{let i=await fetch(e.url,{method:`POST`,headers:{"Content-Type":`application/json`,Authorization:`Bearer ${n}`,"Idempotency-Key":t.eventId},body:JSON.stringify(t.payload),signal:r.signal});if(!i.ok){let n=await i.text().catch(()=>``);throw Error(`Webhook ${e.hook_id} (${t.triggerId}) returned ${i.status}: ${n.slice(0,256)}`)}}finally{clearTimeout(i)}}},$J=`hook.post-user-registration`,eY=class{name=`registration-finalizer`;users;constructor(e){this.users=e}accepts(e){return e.event_type===$J}transform(e){return{tenantId:e.tenant_id,userId:e.target?.id??``,timestamp:new Date().toISOString()}}async deliver(e){for(let{tenantId:t,userId:n,timestamp:r}of e)n&&await this.users.update(t,n,{registration_completed_at:r})}},tY=1e4,nY=`controlplane:sync`,rY=`/api/v2/proxy/control-plane/sync`,iY=new Set([`custom_domain`,`proxy_route`]),aY=new Set([`created`,`updated`,`deleted`]);function oY(e){return iY.has(e)}function sY(e){return aY.has(e)}var cY=class{name=`control-plane-sync`;baseUrl;getServiceToken;timeoutMs;fetchImpl;constructor(e){this.baseUrl=e.baseUrl.replace(/\/+$/,``),this.getServiceToken=e.getServiceToken,this.timeoutMs=e.timeoutMs??tY,this.fetchImpl=e.fetchImpl??fetch}accepts(e){return e.event_type.startsWith(mW)}transform(e){let[t,n]=e.event_type.slice(mW.length).split(`.`);if(!t||!oY(t))throw Error(`ControlPlaneSyncDestination: unknown entity in event_type "${e.event_type}"`);if(!n||!sY(n))throw Error(`ControlPlaneSyncDestination: unknown op in event_type "${e.event_type}"`);let r=e.target.after??e.target.before;if(!r)throw Error(`ControlPlaneSyncDestination: event ${e.id} has no payload (target.after/before)`);return{event_id:e.id,tenant_id:e.tenant_id,entity:t,op:n,aggregate_id:e.target.id,payload:r,occurred_at:e.timestamp}}async deliver(e){for(let t of e){let e=await this.getServiceToken(t.tenant_id,nY),n=new AbortController,r=setTimeout(()=>n.abort(),this.timeoutMs);try{let r=await this.fetchImpl(`${this.baseUrl}${rY}`,{method:`POST`,headers:{"Content-Type":`application/json`,Authorization:`Bearer ${e}`,"Idempotency-Key":t.event_id},body:JSON.stringify({events:[t]}),signal:n.signal});if(!r.ok){let e=await r.text().catch(()=>``);throw Error(`Control-plane sync POST returned ${r.status}: ${e.slice(0,256)}`)}}finally{clearTimeout(r)}}}};function lY(e){let t=new f.OpenAPIHono,n=e.managementDataAdapter??e.dataAdapter;t.use(QW(e)),t.use(sN);let r=async e=>{let t=e.req.header(`x-forwarded-host`),r=e.req.header(`host`),i=t||r;if(!i)return;let a=new URL(Fa(e.env)).host.toLowerCase(),o=i.toLowerCase();if(o.endsWith(`.${a}`)){let e=o.slice(0,-(a.length+1));return e&&!e.includes(`.`)?e:void 0}for(let e of[t,r]){if(!e)continue;let t=e.toLowerCase();if(t===a||t.endsWith(`.${a}`))continue;let r=await n.customDomains.getByDomain(t);if(r)return r.tenant_id}};t.use(async(t,i)=>{let a=t.req.header(`origin`),o=e=>{t.res.headers.set(`Access-Control-Allow-Origin`,e),t.res.headers.set(`Access-Control-Allow-Headers`,`Tenant-Id, Content-Type, Content-Range, Auth0-Client, Authorization, Range, Upgrade-Insecure-Requests`),t.res.headers.set(`Access-Control-Allow-Methods`,`POST, PUT, GET, DELETE, PATCH, OPTIONS`),t.res.headers.set(`Access-Control-Expose-Headers`,`Content-Length, Content-Range`),t.res.headers.set(`Access-Control-Max-Age`,`600`),t.res.headers.set(`Access-Control-Allow-Credentials`,`true`),t.res.headers.append(`Vary`,`Origin`)};if(t.req.method===`OPTIONS`){let i=new Response(null,{status:204});if(a){let o=e=>{i.headers.set(`Access-Control-Allow-Origin`,e),i.headers.set(`Access-Control-Allow-Headers`,`Tenant-Id, Content-Type, Content-Range, Auth0-Client, Authorization, Range, Upgrade-Insecure-Requests`),i.headers.set(`Access-Control-Allow-Methods`,`POST, PUT, GET, DELETE, PATCH, OPTIONS`),i.headers.set(`Access-Control-Expose-Headers`,`Content-Length, Content-Range`),i.headers.set(`Access-Control-Max-Age`,`600`),i.headers.set(`Access-Control-Allow-Credentials`,`true`),i.headers.append(`Vary`,`Origin`)};if(e.allowedOrigins?.includes(a))return o(a),i;let s=t.req.header(`tenant-id`)??await r(t);if(s&&(await n.clients.list(s,{})).clients.flatMap(e=>e.web_origins||[]).includes(a))return o(a),i}return i.headers.append(`Vary`,`Origin`),i}if(await i(),t.res.headers.append(`Vary`,`Origin`),a){if(e.allowedOrigins?.includes(a)){o(a);return}let r=t.var.tenant_id||t.req.header(`tenant-id`);r&&(await n.clients.list(r,{})).clients.flatMap(e=>e.web_origins||[]).includes(a)&&o(a)}}),t.onError((e,t)=>{if(!(e instanceof m))throw e;let n=e.status;if(n<400||n>=500)throw e;let r=e.getResponse();if(r.headers.get(`content-type`)?.includes(`application/json`))return r;let i={400:`Bad Request`,401:`Unauthorized`,403:`Forbidden`,404:`Not Found`,405:`Method Not Allowed`,409:`Conflict`,422:`Unprocessable Entity`,429:`Too Many Requests`};return t.json({statusCode:n,error:i[n]??`Error`,message:e.message||i[n]||`Error`},n)}),t.use(async(e,t)=>{if(await t(),e.res.status!==400||!e.res.headers.get(`content-type`)?.includes(`application/json`))return;let n;try{n=await e.res.clone().json()}catch{return}if(typeof n!=`object`||!n||!(`success`in n)||n.success!==!1||!(`error`in n)||typeof n.error!=`object`||n.error===null||!(`name`in n.error)||n.error.name!==`ZodError`)return;let r=`issues`in n.error&&Array.isArray(n.error.issues)?n.error.issues:[],i=r.length?`Payload validation error: ${r.map(e=>{let t=Array.isArray(e.path)?e.path:[];return`'${t.length?t.join(`.`):`root`}': ${e.message??`invalid`}`}).join(`; `)}`:`Payload validation error`;e.res=new Response(JSON.stringify({statusCode:400,error:`Bad Request`,message:i,errorCode:`invalid_body`}),{status:400,headers:{"content-type":`application/json`}})}),BH(t);let i=e.dataAdapter.cache||DG({defaultTtlSeconds:0,maxEntries:100,cleanupIntervalMs:0}),a=(e,t)=>{let n=iA(e,uN(e,t)),r=lN(e,i);return _G(lG(n,{defaultTtl:0,cacheEntities:[`tenants`,`connections`,`clients`,`branding`,`themes`,`promptSettings`,`customText`,`forms`,`hooks`],cache:r}),r)};t.use(VJ({getOutbox:()=>n.outbox,getDestinations:t=>[new UJ(n.logs),...n.logStreams?[new JJ(n.logStreams)]:[],new QJ(n.hooks,async e=>(await nN(t,e,`webhook`)).access_token),...e.controlPlaneSync?[new cY({baseUrl:e.controlPlaneSync.baseUrl,timeoutMs:e.controlPlaneSync.timeoutMs,getServiceToken:async(e,n)=>(await nN(t,e,n??`controlplane:sync`)).access_token})]:[],new eY(n.users)]})),t.use(async(t,r)=>{t.env.data=a(t,n),t.env.entityHooks=e.entityHooks,await r()}),t.use(async(e,t)=>{let n;try{await t()}catch(e){n=e}let r,i;if(n instanceof m){r=n.status;let e=n.getResponse();if(e.headers.get(`content-type`)?.includes(`application/json`))try{i=await e.clone().json()}catch{}}else if(n)r=500;else if(r=e.res.status,r>=400&&e.res.headers.get(`content-type`)?.includes(`application/json`))try{i=await e.res.clone().json()}catch{}if(r>=400&&r<600){let t=e.var.tenant_id||e.req.header(`tenant-id`);if(t&&e.env.data?.logs)try{let n=e.var.user?.aud,a=Array.isArray(n)?n.join(`,`):typeof n==`string`?n:void 0,o=a?`${e.req.method} ${e.req.path} (aud: ${a})`:`${e.req.method} ${e.req.path}`;await I(e,t,{type:P.FAILED_API_OPERATION,description:o,response:{statusCode:r,body:i}})}catch(e){console.warn(`Failed to write fapi log:`,e)}}if(n)throw n}),t.use(iG).use(sG).use(tG).use(HU(t,{requireManagementAudience:!0,relaxManagementAudience:e.relaxManagementAudience,additionalManagementAudiences:e.additionalManagementAudiences})).use(async(t,n)=>(e.entityHooks&&t.var.tenant_id&&(t.env.data=TG(t.env.data,{tenantId:t.var.tenant_id,entityHooks:e.entityHooks})),n()));let o=new Set(e.managementApiExtensions?.map(e=>e.path)||[]),s=t.route(`/actions/actions`,yo).route(`/actions/executions`,bee).route(`/actions/triggers`,Fee).route(`/branding`,cu).route(`/custom-domains`,CW).route(`/email/providers`,qU).route(`/emails/provider`,qU).route(`/email-templates`,oW).route(`/users`,jm).route(`/keys`,$E).route(`/users-by-email`,tD).route(`/clients`,qD).route(`/client-grants`,mK).route(`/grants`,bK).route(`/client-registration-tokens`,zK).route(`/logs`,tO).route(`/log-streams`,AW).route(`/migration-sources`,BW).route(`/attack-protection`,ZW).route(`/failed-events`,oO).route(`/hooks`,yre).route(`/hook-code`,wre).route(`/connections`,AH).route(`/prompts`,RH).route(`/sessions`,uW).route(`/refresh_tokens`,pW).route(`/forms`,PG).route(`/flows`,VG).route(`/roles`,QG).route(`/resource-servers`,oK).route(`/organizations`,gq).route(`/stats`,Sq).route(`/analytics`,Rq({cache:i})).route(`/guardian`,iJ).route(`/tickets`,yJ).route(`/users/:user_id/authentication-methods`,fJ);if(o.has(`/tenants`)||s.route(`/tenants`,XD),!o.has(`/proxy-routes`)&&n.proxyRoutes&&s.route(`/proxy-routes`,AJ),e.managementApiExtensions)for(let t of e.managementApiExtensions)s.route(t.path,t.router);return s.doc(`/spec`,{openapi:`3.0.0`,info:{version:`1.0.0`,title:`Management API`},servers:[{url:`/api/v2`,description:`API V2`}],security:[{oauth2:[`openid`,`email`,`profile`]}]}),s}var uY=f.z.object({created_at:f.z.string(),updated_at:f.z.string()}),dY=f.z.object({id:f.z.string(),version:f.z.string().optional()}),fY=f.z.object({name:f.z.string(),version:f.z.string()}),pY=f.z.object({name:f.z.string(),value:f.z.string().optional()}),mY=f.z.object({name:f.z.string().max(255),code:f.z.string().max(1e5),supported_triggers:f.z.array(dY).optional(),runtime:f.z.string().max(50).optional(),dependencies:f.z.array(fY).optional(),secrets:f.z.array(pY).optional(),is_system:f.z.boolean().optional(),inherit:f.z.boolean().optional()});mY.partial().extend({status:f.z.enum([`draft`,`built`]).optional(),deployed_at:f.z.string().optional()}),mY.extend({id:f.z.string(),tenant_id:f.z.string(),status:f.z.enum([`draft`,`built`]).default(`built`),deployed_at:f.z.string().optional(),secrets:f.z.array(f.z.object({name:f.z.string(),value:f.z.string().optional()})).optional()}).extend(uY.shape);var hY=f.z.string(),gY=f.z.enum([`unspecified`,`pending`,`final`,`partial`,`canceled`,`suspended`]),_Y=f.z.object({id:f.z.string(),msg:f.z.string(),url:f.z.string().optional()}),vY=f.z.object({action_name:f.z.string(),error:_Y.nullable(),started_at:f.z.string(),ended_at:f.z.string()}),yY=f.z.object({level:f.z.enum([`log`,`info`,`warn`,`error`,`debug`]),message:f.z.string()}),bY=f.z.array(f.z.object({action_name:f.z.string(),lines:f.z.array(yY)}));f.z.object({id:f.z.string(),tenant_id:f.z.string(),trigger_id:hY,status:gY,results:f.z.array(vY),logs:bY.optional(),created_at:f.z.string(),updated_at:f.z.string()}).omit({tenant_id:!0,created_at:!0,updated_at:!0}),f.z.object({action_id:f.z.string(),code:f.z.string().max(1e5),runtime:f.z.string().max(50).optional(),dependencies:f.z.array(fY).optional(),secrets:f.z.array(pY).optional(),supported_triggers:f.z.array(dY).optional(),deployed:f.z.boolean().default(!0)}).extend({id:f.z.string(),tenant_id:f.z.string(),number:f.z.number().int()}).extend(uY.shape);var xY=f.z.enum([`user_action`,`admin_action`,`system`,`api`]),SY=f.z.object({type:f.z.enum([`user`,`admin`,`system`,`api_key`,`client_credentials`]),id:f.z.string().optional(),email:f.z.string().optional(),org_id:f.z.string().optional(),org_name:f.z.string().optional(),scopes:f.z.array(f.z.string()).optional(),client_id:f.z.string().optional()}),CY=f.z.object({type:f.z.string(),id:f.z.string(),before:f.z.record(f.z.string(),f.z.unknown()).optional(),after:f.z.record(f.z.string(),f.z.unknown()).optional(),diff:f.z.record(f.z.string(),f.z.object({old:f.z.unknown(),new:f.z.unknown()})).optional()}),wY=f.z.object({method:f.z.string(),path:f.z.string(),query:f.z.record(f.z.string(),f.z.string()).optional(),body:f.z.unknown().optional(),ip:f.z.string(),user_agent:f.z.string().optional(),correlation_id:f.z.string().optional()}),TY=f.z.object({status_code:f.z.number(),body:f.z.unknown().optional()}),EY=f.z.object({country_code:f.z.string(),city_name:f.z.string(),latitude:f.z.string(),longitude:f.z.string(),time_zone:f.z.string(),continent_code:f.z.string()}),DY=f.z.object({name:f.z.string(),version:f.z.string(),env:f.z.record(f.z.string(),f.z.string()).optional()});f.z.object({tenant_id:f.z.string(),event_type:f.z.string(),log_type:f.z.string(),description:f.z.string().optional(),category:xY,actor:SY,target:CY,request:wY,response:TY.optional(),connection:f.z.string().optional(),strategy:f.z.string().optional(),strategy_type:f.z.string().optional(),audience:f.z.string().optional(),scope:f.z.string().optional(),location:EY.optional(),auth0_client:DY.optional(),hostname:f.z.string(),is_mobile:f.z.boolean().optional(),timestamp:f.z.string()}).extend({id:f.z.string()}),f.z.enum([`AUTH0`,`EMAIL`,`REDIRECT`]),f.z.enum([`CREATE_USER`,`GET_USER`,`UPDATE_USER`,`SEND_REQUEST`,`SEND_EMAIL`]),f.z.enum([`VERIFY_EMAIL`]);var OY=f.z.object({require_mx_record:f.z.boolean().optional(),block_aliases:f.z.boolean().optional(),block_free_emails:f.z.boolean().optional(),block_disposable_emails:f.z.boolean().optional(),blocklist:f.z.array(f.z.string()).optional(),allowlist:f.z.array(f.z.string()).optional()}),kY=f.z.object({id:f.z.string(),alias:f.z.string().max(100).optional(),type:f.z.literal(`AUTH0`),action:f.z.literal(`UPDATE_USER`),allow_failure:f.z.boolean().optional(),mask_output:f.z.boolean().optional(),params:f.z.object({connection_id:f.z.string().optional(),user_id:f.z.string(),changes:f.z.record(f.z.string(),f.z.any())})}),AY=f.z.object({id:f.z.string(),alias:f.z.string().max(100).optional(),type:f.z.literal(`EMAIL`),action:f.z.literal(`VERIFY_EMAIL`),allow_failure:f.z.boolean().optional(),mask_output:f.z.boolean().optional(),params:f.z.object({email:f.z.string(),rules:OY.optional()})}),jY=f.z.enum([`change-email`,`account`,`custom`]),MY=f.z.object({id:f.z.string(),alias:f.z.string().max(100).optional(),type:f.z.literal(`REDIRECT`),action:f.z.literal(`REDIRECT_USER`),allow_failure:f.z.boolean().optional(),mask_output:f.z.boolean().optional(),params:f.z.object({target:jY.openapi({description:`The predefined target to redirect to, or 'custom' for a custom URL`}),custom_url:f.z.string().optional().openapi({description:`Custom URL to redirect to when target is 'custom'`})})}),NY=f.z.union([kY,AY,MY]);f.z.object({name:f.z.string().min(1).max(150).openapi({description:`The name of the flow`}),actions:f.z.array(NY).optional().default([]).openapi({description:`The list of actions to execute in sequence`})}).extend(uY.shape).extend({id:f.z.string().openapi({description:`Unique identifier for the flow`,example:`af_12tMpdJ3iek7svMyZkSh5M`})}),f.z.object({page:f.z.string().min(0).optional().default(`0`).transform(e=>parseInt(e,10)).openapi({description:`The page number where 0 is the first page`}),per_page:f.z.string().min(1).optional().default(`10`).transform(e=>parseInt(e,10)).openapi({description:`The number of items per page`}),include_totals:f.z.string().optional().default(`false`).transform(e=>e===`true`).openapi({description:`If the total number of items should be included in the response`}),sort:f.z.string().regex(/^.+:(-1|1)$/).optional().openapi({description:`A property that should have the format 'string:-1' or 'string:1'`}),q:f.z.string().optional().openapi({description:`A lucene query string used to filter the results`})}),f.z.object({start:f.z.number(),limit:f.z.number(),length:f.z.number(),total:f.z.number().optional()});var PY=f.z.object({email:f.z.string().optional(),email_verified:f.z.boolean().optional(),name:f.z.string().optional(),username:f.z.string().optional(),given_name:f.z.string().optional(),phone_number:f.z.string().optional(),phone_verified:f.z.boolean().optional(),family_name:f.z.string().optional()}).catchall(f.z.any()),FY=f.z.object({connection:f.z.string(),user_id:f.z.string(),provider:f.z.string(),isSocial:f.z.boolean(),email:f.z.string().optional(),email_verified:f.z.boolean().optional(),phone_number:f.z.string().optional(),phone_verified:f.z.boolean().optional(),username:f.z.string().optional(),access_token:f.z.string().optional(),access_token_secret:f.z.string().optional(),refresh_token:f.z.string().optional(),profileData:PY.optional()}),IY=f.z.object({formatted:f.z.string().optional(),street_address:f.z.string().optional(),locality:f.z.string().optional(),region:f.z.string().optional(),postal_code:f.z.string().optional(),country:f.z.string().optional()}).optional(),LY=f.z.object({email:f.z.string().transform(e=>e.toLowerCase()).optional(),username:f.z.string().refine(e=>!e.includes(`@`),{message:`Usernames must not contain "@". Use the email field for email addresses.`}).optional(),phone_number:f.z.string().optional(),phone_verified:f.z.boolean().optional(),given_name:f.z.string().optional(),family_name:f.z.string().optional(),nickname:f.z.string().optional(),name:f.z.string().optional(),picture:f.z.string().optional(),locale:f.z.string().optional(),linked_to:f.z.string().optional(),profileData:f.z.string().optional(),user_id:f.z.string().optional(),app_metadata:f.z.any().default({}).optional(),user_metadata:f.z.any().default({}).optional(),middle_name:f.z.string().optional(),preferred_username:f.z.string().optional(),profile:f.z.string().optional(),website:f.z.string().optional(),gender:f.z.string().optional(),birthdate:f.z.string().optional(),zoneinfo:f.z.string().optional(),address:IY});LY.extend({email_verified:f.z.boolean().default(!1),verify_email:f.z.boolean().optional(),last_ip:f.z.string().optional(),last_login:f.z.string().optional(),user_id:f.z.string().optional(),provider:f.z.string().optional(),connection:f.z.string(),is_social:f.z.boolean().optional(),registration_completed_at:f.z.string().optional(),password:f.z.object({hash:f.z.string(),algorithm:f.z.string()}).optional()}).omit({password:!0}).extend(uY.shape).extend({user_id:f.z.string(),provider:f.z.string(),is_social:f.z.boolean(),email:f.z.string().optional(),login_count:f.z.number().default(0),identities:f.z.array(FY).optional()}).omit({registration_completed_at:!0}),LY.extend({login_count:f.z.number(),multifactor:f.z.array(f.z.string()).optional(),last_ip:f.z.string().optional(),last_login:f.z.string().optional(),user_id:f.z.string()}).catchall(f.z.any());var RY=`useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict`,zY=(e=21)=>{let t=``,n=crypto.getRandomValues(new Uint8Array(e|=0));for(;e--;)t+=RY[n[e]&63];return t},BY=f.z.object({client_id:f.z.string().optional().openapi({description:`ID of this client. Generated server-side if omitted (Auth0 behavior).`}),name:f.z.string().min(1).openapi({description:`Name of this client (min length: 1 character, does not allow < or >).`}),description:f.z.string().max(140).optional().openapi({description:`Free text description of this client (max length: 140 characters).`}),global:f.z.boolean().default(!1).openapi({description:`Whether this is your global 'All Applications' client representing legacy tenant settings (true) or a regular client (false).`}),client_secret:f.z.string().default(()=>zY()).optional().openapi({description:`Client secret (which you must not make public).`}),app_type:f.z.enum([`native`,`spa`,`regular_web`,`non_interactive`,`resource_server`,`express_configuration`,`rms`,`box`,`cloudbees`,`concur`,`dropbox`,`mscrm`,`echosign`,`egnyte`,`newrelic`,`office365`,`salesforce`,`sentry`,`sharepoint`,`slack`,`springcm`,`zendesk`,`zoom`,`sso_integration`,`oag`]).default(`regular_web`).optional().openapi({description:`The type of application this client represents`}),logo_uri:f.z.string().url().optional().openapi({description:`URL of the logo to display for this client. Recommended size is 150x150 pixels.`}),is_first_party:f.z.boolean().default(!0).openapi({description:`Whether this client is a first party client (true) or not (false). First-party clients skip the consent screen; third-party clients require explicit user consent for non-basic scopes.`}),oidc_conformant:f.z.boolean().default(!0).openapi({description:`Whether this client conforms to strict OIDC specifications (true) or uses legacy features (false).`}),auth0_conformant:f.z.boolean().default(!0).openapi({description:`Whether this client follows Auth0-compatible behavior (true) or strict OIDC behavior (false). When true, profile/email claims are included in the ID token when scopes are requested. When false, these claims are only available from the userinfo endpoint (strict OIDC 5.4 compliance).`}),callbacks:f.z.array(f.z.string()).default([]).optional().openapi({description:`Comma-separated list of URLs whitelisted for Auth0 to use as a callback to the client after authentication.`}),allowed_origins:f.z.array(f.z.string()).default([]).optional().openapi({description:`Comma-separated list of URLs allowed to make requests from JavaScript to Auth0 API (typically used with CORS). By default, all your callback URLs will be allowed. This field allows you to enter other origins if necessary. You can also use wildcards at the subdomain level (e.g., https://*.contoso.com). Query strings and hash information are not taken into account when validating these URLs.`}),web_origins:f.z.array(f.z.string()).default([]).optional().openapi({description:`Comma-separated list of allowed origins for use with Cross-Origin Authentication, Device Flow, and web message response mode.`}),client_aliases:f.z.array(f.z.string()).default([]).optional().openapi({description:`List of audiences/realms for SAML protocol. Used by the wsfed addon.`}),allowed_clients:f.z.array(f.z.string()).default([]).optional().openapi({description:`List of allow clients and API ids that are allowed to make delegation requests. Empty means all all your clients are allowed.`}),connections:f.z.array(f.z.string()).default([]).optional().openapi({description:`List of connection IDs enabled for this client. The order determines the display order on the login page.`}),allowed_logout_urls:f.z.array(f.z.string()).default([]).optional().openapi({description:`Comma-separated list of URLs that are valid to redirect to after logout from Auth0. Wildcards are allowed for subdomains.`}),session_transfer:f.z.record(f.z.string(),f.z.any()).default({}).optional().openapi({description:`Native to Web SSO Configuration`}),oidc_logout:f.z.record(f.z.string(),f.z.any()).default({}).optional().openapi({description:`Configuration for OIDC backchannel logout`}),grant_types:f.z.array(f.z.string()).default([]).optional().openapi({description:`List of grant types supported for this application. Can include authorization_code, implicit, refresh_token, client_credentials, password, http://auth0.com/oauth/grant-type/password-realm, http://auth0.com/oauth/grant-type/mfa-oob, http://auth0.com/oauth/grant-type/mfa-otp, http://auth0.com/oauth/grant-type/mfa-recovery-code, urn:openid:params:grant-type:ciba, and urn:ietf:params:oauth:grant-type:device_code.`}),jwt_configuration:f.z.record(f.z.string(),f.z.any()).default({}).optional().openapi({description:`Configuration related to JWTs for the client.`}),signing_keys:f.z.array(f.z.record(f.z.string(),f.z.any())).default([]).optional().openapi({description:`Signing certificates associated with this client.`}),encryption_key:f.z.record(f.z.string(),f.z.any()).default({}).optional().openapi({description:`Encryption used for WsFed responses with this client.`}),sso:f.z.boolean().default(!1).openapi({description:`Applies only to SSO clients and determines whether Auth0 will handle Single Sign On (true) or whether the Identity Provider will (false).`}),sso_disabled:f.z.boolean().default(!1).openapi({description:`Whether Single Sign On is disabled for this client. When true, existing SSO sessions will not be reused and users must authenticate every time.`}),cross_origin_authentication:f.z.boolean().default(!1).openapi({description:`Whether this client can be used to make cross-origin authentication requests (true) or it is not allowed to make such requests (false).`}),cross_origin_loc:f.z.string().url().optional().openapi({description:`URL of the location in your site where the cross origin verification takes place for the cross-origin auth flow when performing Auth in your own domain instead of Auth0 hosted login page.`}),custom_login_page_on:f.z.boolean().default(!1).openapi({description:`Whether a custom login page is to be used (true) or the default provided login page (false).`}),custom_login_page:f.z.string().optional().openapi({description:`The content (HTML, CSS, JS) of the custom login page.`}),custom_login_page_preview:f.z.string().optional().openapi({description:`The content (HTML, CSS, JS) of the custom login page. (Used on Previews)`}),form_template:f.z.string().optional().openapi({description:`HTML form template to be used for WS-Federation.`}),addons:f.z.record(f.z.string(),f.z.any()).default({}).optional().openapi({description:`Addons enabled for this client and their associated configurations.`}),token_endpoint_auth_method:f.z.enum([`none`,`client_secret_post`,`client_secret_basic`,`client_secret_jwt`,`private_key_jwt`]).default(`client_secret_basic`).optional().openapi({description:"Defines the requested authentication method for the token endpoint. `none` (public client), `client_secret_post` / `client_secret_basic` (HTTP POST / Basic), `client_secret_jwt` (RFC 7523 HMAC assertion using client_secret), or `private_key_jwt` (RFC 7523 asymmetric assertion verified against the client's `jwks` / `jwks_uri`)."}),client_metadata:f.z.record(f.z.string(),f.z.string().max(255)).default({}).optional().openapi({description:`Metadata associated with the client, in the form of an object with string values (max 255 chars). Maximum of 10 metadata properties allowed. Field names (max 255 chars) are alphanumeric and may only include the following special characters: :,-+=_*?"/()<>@ [Tab][Space]`}),hide_sign_up_disabled_error:f.z.boolean().default(!1).optional().openapi({description:"Enumeration-safe variant of the connection-level `disable_signup` flag. When a signup is blocked by the password connection and this is true, the identifier screen does not reveal that an email is unknown — it advances to the OTP/password challenge as if the account existed and fails at credential check. Mitigates email enumeration at the cost of UX: users without an account see a generic credential failure instead of an explicit signup-disabled message."}),mobile:f.z.record(f.z.string(),f.z.any()).default({}).optional().openapi({description:`Additional configuration for native mobile apps.`}),initiate_login_uri:f.z.string().url().optional().openapi({description:`Initiate login uri, must be https`}),native_social_login:f.z.record(f.z.string(),f.z.any()).default({}).optional(),refresh_token:f.z.object({rotation_type:f.z.enum([`rotating`,`non-rotating`]).optional().openapi({description:`Whether refresh tokens for this client are rotated on every exchange (Auth0 'rotating' behavior) or kept stable (legacy non-rotating). Defaults to 'non-rotating' when unset.`}),leeway:f.z.number().int().min(0).max(600).optional().openapi({description:`Seconds after a parent token's first rotation during which presenting it again still mints a fresh sibling child instead of triggering reuse-detection. Defaults to 30s when unset.`}),expiration_type:f.z.enum([`expiring`,`non-expiring`]).optional().openapi({description:`Auth0-compatible: whether refresh tokens expire.`}),token_lifetime:f.z.number().int().min(0).optional().openapi({description:`Auth0-compatible: refresh-token absolute lifetime in seconds.`}),infinite_token_lifetime:f.z.boolean().optional().openapi({description:`Auth0-compatible: when true, refresh tokens have no absolute expiry.`}),idle_token_lifetime:f.z.number().int().min(0).optional().openapi({description:`Auth0-compatible: refresh-token idle (sliding) lifetime in seconds.`}),infinite_idle_token_lifetime:f.z.boolean().optional().openapi({description:`Auth0-compatible: when true, refresh tokens have no idle expiry.`})}).default({}).optional().openapi({description:`Refresh token configuration`}),default_organization:f.z.record(f.z.string(),f.z.any()).default({}).optional().openapi({description:`Defines the default Organization ID and flows`}),organization_usage:f.z.enum([`deny`,`allow`,`require`]).default(`deny`).optional().openapi({description:`Defines how to proceed during an authentication transaction with regards an organization. Can be deny (default), allow or require.`}),organization_require_behavior:f.z.enum([`no_prompt`,`pre_login_prompt`,`post_login_prompt`]).default(`no_prompt`).optional().openapi({description:`Defines how to proceed during an authentication transaction when client.organization_usage: 'require'. Can be no_prompt (default), pre_login_prompt or post_login_prompt. post_login_prompt requires oidc_conformant: true.`}),client_authentication_methods:f.z.record(f.z.string(),f.z.any()).default({}).optional().openapi({description:`Defines client authentication methods.`}),require_pushed_authorization_requests:f.z.boolean().default(!1).openapi({description:`Makes the use of Pushed Authorization Requests mandatory for this client`}),require_proof_of_possession:f.z.boolean().default(!1).openapi({description:`Makes the use of Proof-of-Possession mandatory for this client`}),signed_request_object:f.z.record(f.z.string(),f.z.any()).default({}).optional().openapi({description:`JWT-secured Authorization Requests (JAR) settings.`}),compliance_level:f.z.enum([`none`,`fapi1_adv_pkj_par`,`fapi1_adv_mtls_par`,`fapi2_sp_pkj_mtls`,`fapi2_sp_mtls_mtls`]).optional().openapi({description:`Defines the compliance level for this client, which may restrict it's capabilities`}),par_request_expiry:f.z.number().optional().openapi({description:`Specifies how long, in seconds, a Pushed Authorization Request URI remains valid`}),token_quota:f.z.record(f.z.string(),f.z.any()).default({}).optional(),owner_user_id:f.z.string().optional().openapi({description:`User ID of the consenting user when this client was created via IAT-gated Dynamic Client Registration. NULL for clients created via the Management API or open DCR.`}),registration_type:f.z.enum([`manual`,`open_dcr`,`iat_dcr`]).optional().openapi({description:"Provenance of this client. `manual` = Management API; `open_dcr` = RFC 7591 without IAT; `iat_dcr` = RFC 7591 with an Initial Access Token."}),registration_metadata:f.z.record(f.z.string(),f.z.any()).default({}).optional().openapi({description:"Arbitrary metadata captured at Dynamic Client Registration time that isn't a first-class client field (e.g. integration_type, domain). Also stores `iat_constraints` for clients created via IAT so RFC 7592 PUT can enforce field immutability."}),user_linking_mode:f.z.enum([`builtin`,`off`]).optional().openapi({description:"Per-client override for the built-in email-based user-linking path. `builtin` runs the legacy in-process linking at user creation/email update. `off` disables the legacy path; linking only happens if the tenant has enabled the `account-linking` template hook. When unset, the service-level `userLinkingMode` default applies."})});f.z.object({created_at:f.z.string(),updated_at:f.z.string()}).extend(BY.shape).extend({client_id:f.z.string()});var VY=f.z.object({client_id:f.z.string().min(1).openapi({description:`ID of the client.`}),audience:f.z.string().min(1).openapi({description:`The audience (API identifier) of this client grant.`}),scope:f.z.array(f.z.string()).optional().openapi({description:`Scopes allowed for this client grant.`}),organization_usage:f.z.enum([`deny`,`allow`,`require`]).optional().openapi({description:`Defines whether organizations can be used with client credentials exchanges for this grant.`}),allow_any_organization:f.z.boolean().optional().openapi({description:`If enabled, any organization can be used with this grant. If disabled (default), the grant must be explicitly assigned to the desired organizations.`}),is_system:f.z.boolean().optional().openapi({description:`If enabled, this grant is a special grant created by Auth0. It cannot be modified or deleted directly.`}),subject_type:f.z.enum([`client`,`user`]).optional().openapi({description:`The type of application access the client grant allows. Use of this field is subject to the applicable Free Trial terms in Okta's Master Subscription Agreement.`}),authorization_details_types:f.z.array(f.z.string()).optional().openapi({description:`Types of authorization_details allowed for this client grant. Use of this field is subject to the applicable Free Trial terms in Okta's Master Subscription Agreement.`})}),HY=f.z.object({id:f.z.string().openapi({description:`ID of the client grant.`})}).extend(VY.shape).extend({created_at:f.z.string().optional(),updated_at:f.z.string().optional()});f.z.array(HY);var UY=f.z.enum([`iat`,`rat`]),WY=f.z.object({id:f.z.string(),token_hash:f.z.string(),type:UY,client_id:f.z.string().optional(),sub:f.z.string().optional(),constraints:f.z.record(f.z.string(),f.z.unknown()).optional(),single_use:f.z.boolean().default(!1),expires_at:f.z.string().optional()});f.z.object({created_at:f.z.string(),used_at:f.z.string().optional(),revoked_at:f.z.string().optional()}).extend(WY.shape);var GY=f.z.object({x:f.z.number(),y:f.z.number()}),KY=function(e){return e.RICH_TEXT=`RICH_TEXT`,e.NEXT_BUTTON=`NEXT_BUTTON`,e.BACK_BUTTON=`BACK_BUTTON`,e.SUBMIT_BUTTON=`SUBMIT_BUTTON`,e.DIVIDER=`DIVIDER`,e.TEXT=`TEXT`,e.EMAIL=`EMAIL`,e.PASSWORD=`PASSWORD`,e.NUMBER=`NUMBER`,e.PHONE=`PHONE`,e.DATE=`DATE`,e.CHECKBOX=`CHECKBOX`,e.RADIO=`RADIO`,e.SELECT=`SELECT`,e.HIDDEN=`HIDDEN`,e.LEGAL=`LEGAL`,e}({}),qY=function(e){return e.BLOCK=`BLOCK`,e.FIELD=`FIELD`,e}({}),JY=f.z.object({id:f.z.string(),category:f.z.nativeEnum(qY),type:f.z.nativeEnum(KY)}),YY=JY.extend({category:f.z.literal(`BLOCK`),type:f.z.literal(`RICH_TEXT`),config:f.z.object({content:f.z.string()}).passthrough()}),XY=JY.extend({category:f.z.literal(`BLOCK`),type:f.z.union([f.z.literal(`NEXT_BUTTON`),f.z.literal(`BACK_BUTTON`),f.z.literal(`SUBMIT_BUTTON`)]),config:f.z.object({text:f.z.string()}).passthrough()}),ZY=JY.extend({category:f.z.literal(`FIELD`),type:f.z.literal(`LEGAL`),required:f.z.boolean().optional(),sensitive:f.z.boolean().optional(),config:f.z.object({text:f.z.string()}).passthrough()}),QY=JY.extend({category:f.z.literal(`FIELD`),type:f.z.union([f.z.literal(`TEXT`),f.z.literal(`EMAIL`),f.z.literal(`PASSWORD`),f.z.literal(`NUMBER`),f.z.literal(`PHONE`),f.z.literal(`DATE`),f.z.literal(`CHECKBOX`),f.z.literal(`RADIO`),f.z.literal(`SELECT`),f.z.literal(`HIDDEN`)]),required:f.z.boolean().optional(),sensitive:f.z.boolean().optional(),config:f.z.object({label:f.z.string().optional(),placeholder:f.z.string().optional()}).passthrough()}),$Y=f.z.object({id:f.z.string(),category:f.z.string(),type:f.z.string()}).passthrough(),eX=f.z.union([YY,XY,ZY,QY,$Y]),tX=f.z.object({id:f.z.string(),type:f.z.literal(`STEP`),coordinates:GY,alias:f.z.string().optional(),config:f.z.object({components:f.z.array(eX),next_node:f.z.string()}).passthrough()}),nX=f.z.object({id:f.z.string(),type:f.z.literal(`FLOW`),coordinates:GY,alias:f.z.string().optional(),config:f.z.object({flow_id:f.z.string(),next_node:f.z.string()})}),rX=f.z.object({id:f.z.string(),type:f.z.literal(`ACTION`),coordinates:GY,alias:f.z.string().optional(),config:f.z.object({action_type:f.z.enum([`REDIRECT`]).openapi({description:`The type of action to perform`}),target:f.z.enum([`change-email`,`account`,`custom`]).openapi({description:`The predefined target to redirect to`}),custom_url:f.z.string().optional().openapi({description:`Custom URL when target is 'custom'`}),next_node:f.z.string().openapi({description:`The next node to navigate to after action (for non-redirect actions)`})}).passthrough()}),iX=f.z.object({id:f.z.string(),type:f.z.string(),coordinates:GY}).passthrough(),aX=f.z.union([tX,nX,rX,iX]),oX=f.z.object({next_node:f.z.string(),coordinates:GY}).passthrough(),sX=f.z.object({resume_flow:f.z.boolean().optional(),coordinates:GY}).passthrough();f.z.object({id:f.z.string(),name:f.z.string(),languages:f.z.object({primary:f.z.string()}).passthrough(),nodes:f.z.array(aX),start:oX,ending:sX,created_at:f.z.string(),updated_at:f.z.string(),links:f.z.object({sdkSrc:f.z.string().optional(),sdk_src:f.z.string().optional()}).passthrough()}).passthrough().omit({id:!0,created_at:!0,updated_at:!0});var cX=function(e){return e.TOKEN=`token`,e.ID_TOKEN=`id_token`,e.TOKEN_ID_TOKEN=`id_token token`,e.CODE=`code`,e.CODE_ID_TOKEN=`code id_token`,e.CODE_TOKEN=`code token`,e.CODE_ID_TOKEN_TOKEN=`code id_token token`,e}({}),lX=function(e){return e.QUERY=`query`,e.FRAGMENT=`fragment`,e.FORM_POST=`form_post`,e.WEB_MESSAGE=`web_message`,e.SAML_POST=`saml_post`,e}({}),uX=function(e){return e.S256=`S256`,e.Plain=`plain`,e}({}),dX=f.z.union([f.z.null(),f.z.object({essential:f.z.boolean().optional(),value:f.z.unknown().optional(),values:f.z.array(f.z.unknown()).optional()})]).nullable(),fX=f.z.object({userinfo:f.z.record(f.z.string(),dX).optional(),id_token:f.z.record(f.z.string(),dX).optional()}),pX=f.z.object({client_id:f.z.string(),act_as:f.z.string().optional(),response_type:f.z.nativeEnum(cX).optional(),response_mode:f.z.nativeEnum(lX).optional(),redirect_uri:f.z.string().optional(),audience:f.z.string().optional(),organization:f.z.string().optional(),state:f.z.string().optional(),nonce:f.z.string().optional(),scope:f.z.string().optional(),prompt:f.z.string().optional(),code_challenge_method:f.z.nativeEnum(uX).optional(),code_challenge:f.z.string().optional(),username:f.z.string().optional(),ui_locales:f.z.string().optional(),max_age:f.z.number().optional(),acr_values:f.z.string().optional(),claims:fX.optional(),vendor_id:f.z.string().optional()});f.z.object({colors:f.z.object({primary:f.z.string(),page_background:f.z.union([f.z.string(),f.z.object({type:f.z.string().optional(),start:f.z.string().optional(),end:f.z.string().optional(),angle_deg:f.z.number().optional()})]).optional()}).optional(),logo_url:f.z.string().optional(),favicon_url:f.z.string().optional(),powered_by_logo_url:f.z.string().optional(),font:f.z.object({url:f.z.string()}).optional(),dark_mode:f.z.enum([`dark`,`light`,`auto`]).optional()});var mX=f.z.enum([`password_reset`,`email_verification`,`otp`,`mfa_otp`,`authorization_code`,`oauth2_state`,`ticket`]);f.z.object({code_id:f.z.string().openapi({description:`The code that will be used in for instance an email verification flow`}),login_id:f.z.string().openapi({description:`The id of the login session that the code is connected to`}),connection_id:f.z.string().optional().openapi({description:`The connection that the code is connected to`}),code_type:mX,code_verifier:f.z.string().optional().openapi({description:`The code verifier used in PKCE in outbound flows`}),code_challenge:f.z.string().optional().openapi({description:`The code challenge used in PKCE in outbound flows`}),code_challenge_method:f.z.enum([`plain`,`S256`]).optional().openapi({description:`The code challenge method used in PKCE in outbound flows`}),redirect_uri:f.z.string().optional().openapi({description:`The redirect URI associated with the code`}),otp:f.z.string().optional().openapi({description:`The one-time password value for OTP-based flows`}),nonce:f.z.string().optional().openapi({description:`The nonce value used for security in OIDC flows`}),state:f.z.string().optional().openapi({description:`The state parameter used for CSRF protection in OAuth flows`}),expires_at:f.z.string(),used_at:f.z.string().optional(),user_id:f.z.string().optional()}).extend({created_at:f.z.string()});var hX=f.z.object({kid:f.z.string().optional(),team_id:f.z.string().optional(),realms:f.z.string().optional(),authentication_method:f.z.string().optional(),client_id:f.z.string().optional(),client_secret:f.z.string().optional(),app_secret:f.z.string().optional(),scope:f.z.string().optional(),authorization_endpoint:f.z.string().optional(),token_endpoint:f.z.string().optional(),userinfo_endpoint:f.z.string().optional(),jwks_uri:f.z.string().optional(),discovery_url:f.z.string().optional(),issuer:f.z.string().optional(),token_endpoint_auth_method:f.z.enum([`client_secret_basic`,`client_secret_post`]).optional(),provider:f.z.string().optional(),from:f.z.string().optional(),twilio_sid:f.z.string().optional(),twilio_token:f.z.string().optional(),icon_url:f.z.string().optional(),domain_aliases:f.z.array(f.z.string()).optional(),callback_url:f.z.string().url().optional(),passwordPolicy:f.z.enum([`none`,`low`,`fair`,`good`,`excellent`]).optional(),password_complexity_options:f.z.object({min_length:f.z.number().optional()}).optional(),password_history:f.z.object({enable:f.z.boolean().optional(),size:f.z.number().optional()}).optional(),password_no_personal_info:f.z.object({enable:f.z.boolean().optional()}).optional(),password_dictionary:f.z.object({enable:f.z.boolean().optional(),dictionary:f.z.array(f.z.string()).optional()}).optional(),disable_signup:f.z.boolean().optional(),brute_force_protection:f.z.boolean().optional(),import_mode:f.z.boolean().optional(),configuration:f.z.object({token_endpoint:f.z.string().optional(),userinfo_endpoint:f.z.string().optional(),client_id:f.z.string().optional(),client_secret:f.z.string().optional(),realm:f.z.string().optional()}).optional(),attributes:f.z.object({email:f.z.object({identifier:f.z.object({active:f.z.boolean().optional()}).optional(),signup:f.z.object({status:f.z.enum([`required`,`optional`,`disabled`]).optional(),verification:f.z.object({active:f.z.boolean().optional()}).optional()}).optional(),validation:f.z.object({allowed:f.z.boolean().optional()}).optional(),unique:f.z.boolean().optional(),profile_required:f.z.boolean().optional(),verification_method:f.z.enum([`link`,`code`]).optional()}).optional(),username:f.z.object({identifier:f.z.object({active:f.z.boolean().optional()}).optional(),signup:f.z.object({status:f.z.enum([`required`,`optional`,`disabled`]).optional()}).optional(),validation:f.z.object({max_length:f.z.number().optional(),min_length:f.z.number().optional(),allowed_types:f.z.object({email:f.z.boolean().optional(),phone_number:f.z.boolean().optional()}).optional()}).optional(),profile_required:f.z.boolean().optional()}).optional(),phone_number:f.z.object({identifier:f.z.object({active:f.z.boolean().optional()}).optional(),signup:f.z.object({status:f.z.enum([`required`,`optional`,`disabled`]).optional()}).optional()}).optional()}).optional(),authentication_methods:f.z.object({password:f.z.object({enabled:f.z.boolean().optional()}).optional(),passkey:f.z.object({enabled:f.z.boolean().optional()}).optional()}).optional(),passkey_options:f.z.object({challenge_ui:f.z.enum([`both`,`autofill`,`button`]).optional(),local_enrollment_enabled:f.z.boolean().optional(),progressive_enrollment_enabled:f.z.boolean().optional()}).optional(),requires_username:f.z.boolean().optional(),validation:f.z.object({username:f.z.object({min:f.z.number().optional(),max:f.z.number().optional()}).optional()}).optional(),set_user_root_attributes:f.z.enum([`on_each_login`,`on_first_login`,`never_on_login`]).optional()});function gX(e){if(e!==null){if(Array.isArray(e))return e.filter(e=>e!==null).map(gX);if(e&&typeof e==`object`){let t={};for(let[n,r]of Object.entries(e))r!==null&&(t[n]=gX(r));return t}return e}}var _X=f.z.object({id:f.z.string().optional(),name:f.z.string(),display_name:f.z.string().optional(),strategy:f.z.string(),options:f.z.preprocess(e=>e===null?{}:gX(e),hX).default({}),enabled_clients:f.z.array(f.z.string()).default([]).optional(),response_type:f.z.custom().optional(),response_mode:f.z.custom().optional(),is_domain_connection:f.z.boolean().optional(),show_as_button:f.z.boolean().optional(),metadata:f.z.record(f.z.string(),f.z.any()).optional(),is_system:f.z.boolean().optional()});f.z.object({id:f.z.string(),created_at:f.z.string().transform(e=>e===null?``:e),updated_at:f.z.string().transform(e=>e===null?``:e)}).extend(_X.shape);var vX=f.z.object({domain:f.z.string(),custom_domain_id:f.z.string().optional(),type:f.z.enum([`auth0_managed_certs`,`self_managed_certs`]),verification_method:f.z.enum([`txt`]).optional(),tls_policy:f.z.enum([`recommended`]).optional(),custom_client_ip_header:f.z.enum([`true-client-ip`,`cf-connecting-ip`,`x-forwarded-for`,`x-azure-clientip`,`null`]).optional(),domain_metadata:f.z.record(f.z.string(),f.z.string().max(255)).optional()}),yX=f.z.discriminatedUnion(`name`,[f.z.object({name:f.z.literal(`txt`),record:f.z.string(),domain:f.z.string()}),f.z.object({name:f.z.literal(`http`),http_body:f.z.string(),http_url:f.z.string()})]),bX=vX.extend({custom_domain_id:f.z.string(),primary:f.z.boolean(),status:f.z.enum([`disabled`,`pending`,`pending_verification`,`ready`]),origin_domain_name:f.z.string().optional(),verification:f.z.object({methods:f.z.array(yX)}).optional(),tls_policy:f.z.string().optional()});vX.pick({tls_policy:!0,custom_client_ip_header:!0,domain_metadata:!0}).strict(),bX.extend({tenant_id:f.z.string()}),f.z.object({certificate:f.z.string().regex(/^-----BEGIN CERTIFICATE-----[\s\S]+-----END CERTIFICATE-----\s*$/,`must be PEM-encoded; include the full certificate chain in leaf-first order`),private_key:f.z.string().regex(/-----BEGIN (RSA |EC |ENCRYPTED )?PRIVATE KEY-----[\s\S]+-----END \1PRIVATE KEY-----\s*$/,`must be a PEM-encoded private key`)});var xX=f.z.object({id:f.z.string(),order:f.z.number().optional(),visible:f.z.boolean().optional().default(!0)}),SX=xX.extend({category:f.z.literal(`BLOCK`).optional()}),CX=SX.extend({type:f.z.literal(`DIVIDER`),config:f.z.object({text:f.z.string().optional()}).optional()}),wX=SX.extend({type:f.z.literal(`HTML`),config:f.z.object({content:f.z.string().optional()}).optional()}),TX=SX.extend({type:f.z.literal(`IMAGE`),config:f.z.object({src:f.z.string().optional(),alt:f.z.string().optional(),width:f.z.number().optional(),height:f.z.number().optional()}).optional()}),EX=SX.extend({type:f.z.literal(`JUMP_BUTTON`),config:f.z.object({text:f.z.string().optional(),target_step:f.z.string().optional()})}),DX=SX.extend({type:f.z.literal(`RESEND_BUTTON`),config:f.z.object({text:f.z.string().optional(),resend_action:f.z.string().optional()})}),OX=SX.extend({type:f.z.literal(`NEXT_BUTTON`),config:f.z.object({text:f.z.string().optional()})}),kX=SX.extend({type:f.z.literal(`PREVIOUS_BUTTON`),config:f.z.object({text:f.z.string().optional()})}),AX=SX.extend({type:f.z.literal(`RICH_TEXT`),config:f.z.object({content:f.z.string().optional()}).optional()}),jX=xX.extend({category:f.z.literal(`WIDGET`).optional(),label:f.z.string().min(1).optional(),hint:f.z.string().min(1).max(500).optional(),required:f.z.boolean().optional(),sensitive:f.z.boolean().optional()}),MX=jX.extend({type:f.z.literal(`AUTH0_VERIFIABLE_CREDENTIALS`),config:f.z.object({credential_type:f.z.string().optional()})}),NX=jX.extend({type:f.z.literal(`GMAPS_ADDRESS`),config:f.z.object({api_key:f.z.string().optional()})}),PX=jX.extend({type:f.z.literal(`RECAPTCHA`),config:f.z.object({site_key:f.z.string().optional()})}),FX=xX.extend({category:f.z.literal(`FIELD`).optional(),label:f.z.string().min(1).optional(),hint:f.z.string().min(1).max(500).optional(),messages:f.z.array(f.z.object({id:f.z.number().optional(),text:f.z.string(),type:f.z.enum([`info`,`error`,`success`,`warning`])})).optional(),required:f.z.boolean().optional(),sensitive:f.z.boolean().optional()}),IX=FX.extend({type:f.z.literal(`BOOLEAN`),config:f.z.object({default_value:f.z.boolean().optional()}).optional()}),LX=FX.extend({type:f.z.literal(`CARDS`),config:f.z.object({options:f.z.array(f.z.object({value:f.z.string(),label:f.z.string(),description:f.z.string().optional(),image:f.z.string().optional()})).optional(),multi_select:f.z.boolean().optional()}).optional()}),RX=FX.extend({type:f.z.literal(`CHOICE`),config:f.z.object({options:f.z.array(f.z.object({value:f.z.string(),label:f.z.string()})).optional(),display:f.z.enum([`radio`,`checkbox`]).optional(),multiple:f.z.boolean().optional(),default_value:f.z.union([f.z.string(),f.z.array(f.z.string())]).optional()}).optional()}),zX=FX.extend({type:f.z.literal(`CUSTOM`),config:f.z.object({component:f.z.string().optional(),props:f.z.record(f.z.string(),f.z.any()).optional(),schema:f.z.record(f.z.string(),f.z.any()).optional(),code:f.z.string().optional()})}),BX=FX.extend({type:f.z.literal(`DATE`),config:f.z.object({format:f.z.string().optional(),min:f.z.string().optional(),max:f.z.string().optional(),default_value:f.z.string().optional()}).optional()}),VX=FX.extend({type:f.z.literal(`DROPDOWN`),config:f.z.object({options:f.z.array(f.z.object({value:f.z.string(),label:f.z.string()})).optional(),placeholder:f.z.string().optional(),searchable:f.z.boolean().optional(),multiple:f.z.boolean().optional(),default_value:f.z.union([f.z.string(),f.z.array(f.z.string())]).optional()}).optional()}),HX=FX.extend({type:f.z.literal(`EMAIL`),config:f.z.object({placeholder:f.z.string().optional(),default_value:f.z.string().optional()}).optional()}),UX=FX.extend({type:f.z.literal(`FILE`),config:f.z.object({accept:f.z.string().optional(),max_size:f.z.number().optional(),multiple:f.z.boolean().optional()}).optional()}),WX=FX.extend({type:f.z.literal(`LEGAL`),config:f.z.object({text:f.z.string(),html:f.z.boolean().optional()}).optional()}),GX=FX.extend({type:f.z.literal(`NUMBER`),config:f.z.object({placeholder:f.z.string().optional(),min:f.z.number().optional(),max:f.z.number().optional(),step:f.z.number().optional(),default_value:f.z.string().optional()}).optional()}),KX=FX.extend({type:f.z.literal(`PASSWORD`),config:f.z.object({placeholder:f.z.string().optional(),min_length:f.z.number().optional(),show_toggle:f.z.boolean().optional(),forgot_password_link:f.z.string().optional(),default_value:f.z.string().optional()}).optional()}),qX=FX.extend({type:f.z.literal(`PAYMENT`),config:f.z.object({provider:f.z.string().optional(),currency:f.z.string().optional()}).optional()}),JX=FX.extend({type:f.z.literal(`SOCIAL`),config:f.z.object({providers:f.z.array(f.z.string()).optional(),provider_details:f.z.array(f.z.object({name:f.z.string(),strategy:f.z.string().optional(),display_name:f.z.string().optional(),icon_url:f.z.string().optional(),href:f.z.string().optional()})).optional()}).optional()}),YX=FX.extend({type:f.z.literal(`TEL`),config:f.z.object({placeholder:f.z.string().optional(),default_country:f.z.string().optional(),default_value:f.z.string().optional(),allow_email:f.z.boolean().optional()}).optional()}),XX=FX.extend({type:f.z.literal(`TEXT`),config:f.z.object({placeholder:f.z.string().optional(),multiline:f.z.boolean().optional(),max_length:f.z.number().optional(),default_value:f.z.string().optional()}).optional()}),ZX=FX.extend({type:f.z.literal(`COUNTRY`),config:f.z.object({placeholder:f.z.string().optional(),default_value:f.z.string().optional()}).optional()}),QX=FX.extend({type:f.z.literal(`URL`),config:f.z.object({placeholder:f.z.string().optional(),default_value:f.z.string().optional()}).optional()}),$X=f.z.discriminatedUnion(`type`,[CX,wX,TX,EX,DX,OX,kX,AX]),eZ=f.z.discriminatedUnion(`type`,[MX,NX,PX]),tZ=f.z.discriminatedUnion(`type`,[IX,LX,RX,ZX,zX,BX,VX,HX,UX,WX,GX,KX,qX,JX,YX,XX,QX]),nZ=f.z.union([$X,eZ,tZ]);new Set([`BOOLEAN`,`CARDS`,`CHOICE`,`COUNTRY`,`DATE`,`DROPDOWN`,`EMAIL`,`LEGAL`,`NUMBER`,`PASSWORD`,`TEL`,`TEXT`,`URL`]),f.z.object({id:f.z.string(),type:f.z.literal(`submit`),label:f.z.string(),className:f.z.string().optional(),disabled:f.z.boolean().optional().default(!1),order:f.z.number().optional(),visible:f.z.boolean().optional().default(!0),customizations:f.z.record(f.z.string(),f.z.any()).optional()});var rZ=f.z.object({x:f.z.number(),y:f.z.number()}),iZ=f.z.object({id:f.z.string(),type:f.z.literal(`FLOW`),coordinates:rZ,alias:f.z.string().min(1).max(150).optional(),config:f.z.object({flow_id:f.z.string().max(30),next_node:f.z.string().optional()})}),aZ=f.z.object({id:f.z.string(),type:f.z.literal(`ROUTER`),coordinates:rZ,alias:f.z.string().min(1).max(150),config:f.z.object({rules:f.z.array(f.z.object({id:f.z.string(),alias:f.z.string().min(1).max(150).optional(),condition:f.z.any(),next_node:f.z.string()})),fallback:f.z.string()})}),oZ=f.z.object({id:f.z.string(),type:f.z.literal(`STEP`),coordinates:rZ,alias:f.z.string().min(1).max(150).optional(),config:f.z.object({components:f.z.array(nZ),next_node:f.z.string().optional()})}),sZ=f.z.discriminatedUnion(`type`,[iZ,aZ,oZ]),cZ=f.z.object({name:f.z.string().openapi({description:`The name of the form`}),messages:f.z.object({errors:f.z.record(f.z.string(),f.z.any()).optional(),custom:f.z.record(f.z.string(),f.z.any()).optional()}).optional(),languages:f.z.object({primary:f.z.string().optional(),default:f.z.string().optional()}).optional(),translations:f.z.record(f.z.string(),f.z.any()).optional(),nodes:f.z.array(sZ).optional(),start:f.z.object({hidden_fields:f.z.array(f.z.object({key:f.z.string(),value:f.z.string()})).optional(),next_node:f.z.string().optional(),coordinates:rZ.optional()}).optional(),ending:f.z.object({redirection:f.z.object({delay:f.z.number().optional(),target:f.z.string().optional()}).optional(),after_submit:f.z.object({flow_id:f.z.string().optional()}).optional(),coordinates:rZ.optional(),resume_flow:f.z.boolean().optional()}).optional(),style:f.z.object({css:f.z.string().optional()}).optional(),links:f.z.object({sdkSrc:f.z.string().optional(),sdk_src:f.z.string().optional()}).optional()}).openapi({description:`Schema for flow-based forms (matches Auth0 Forms structure)`});uY.extend(cZ.shape).extend({id:f.z.string()});var lZ=f.z.object({id:f.z.number().optional(),text:f.z.string(),type:f.z.enum([`info`,`error`,`success`,`warning`])}),uZ=f.z.object({id:f.z.string().optional(),text:f.z.string(),href:f.z.string(),linkText:f.z.string().optional()});f.z.object({name:f.z.string().optional(),action:f.z.string(),method:f.z.enum([`POST`,`GET`]),title:f.z.string().optional(),description:f.z.string().optional(),components:f.z.array(nZ),messages:f.z.array(lZ).optional(),links:f.z.array(uZ).optional(),footer:f.z.string().optional()});var dZ=f.z.enum([`pre-user-registration`,`post-user-registration`,`post-user-login`,`post-user-update`,`validate-registration-username`,`pre-user-deletion`,`post-user-deletion`]),fZ=f.z.enum([`pre-user-registration`,`post-user-registration`,`post-user-login`,`validate-registration-username`,`pre-user-deletion`,`post-user-deletion`]),pZ=f.z.enum([`post-user-login`,`post-user-registration`,`post-user-update`,`credentials-exchange`]),mZ=f.z.enum([`post-user-login`,`credentials-exchange`,`pre-user-registration`,`post-user-registration`]),hZ=f.z.enum([`ensure-username`,`set-preferred-username`,`account-linking`]),gZ={enabled:f.z.boolean().default(!1),synchronous:f.z.boolean().default(!1),priority:f.z.number().optional(),hook_id:f.z.string().optional(),metadata:f.z.record(f.z.string(),f.z.unknown()).optional()},_Z=f.z.object({...gZ,trigger_id:dZ,url:f.z.string()}),vZ=f.z.object({...gZ,trigger_id:fZ,form_id:f.z.string()}),yZ=f.z.object({...gZ,trigger_id:pZ,template_id:hZ}),bZ=f.z.object({...gZ,trigger_id:mZ,code_id:f.z.string()});f.z.union([_Z,vZ,yZ,bZ]);var xZ=f.z.object({...gZ,trigger_id:dZ}).extend(uY.shape).extend({hook_id:f.z.string(),url:f.z.string()}),SZ=f.z.object({...gZ,trigger_id:fZ}).extend(uY.shape).extend({hook_id:f.z.string(),form_id:f.z.string()}),CZ=f.z.object({...gZ,trigger_id:pZ}).extend(uY.shape).extend({hook_id:f.z.string(),template_id:hZ}),wZ=f.z.object({...gZ,trigger_id:mZ}).extend(uY.shape).extend({hook_id:f.z.string(),code_id:f.z.string()});f.z.union([xZ,SZ,CZ,wZ]),f.z.object({code:f.z.string().max(1e5),secrets:f.z.record(f.z.string(),f.z.string()).optional()}).extend({id:f.z.string(),tenant_id:f.z.string()}).extend(uY.shape);var TZ=f.z.object({name:f.z.string().optional()}),EZ=f.z.object({email:f.z.string().optional()}),DZ=f.z.object({id:f.z.string().optional(),organization_id:f.z.string().max(50),inviter:TZ,invitee:EZ,invitation_url:f.z.string().url(),client_id:f.z.string(),connection_id:f.z.string().optional(),app_metadata:f.z.record(f.z.string(),f.z.any()).default({}).optional(),user_metadata:f.z.record(f.z.string(),f.z.any()).default({}).optional(),ttl_sec:f.z.number().int().max(2592e3).default(604800).optional(),roles:f.z.array(f.z.string()).default([]).optional(),send_invitation_email:f.z.boolean().default(!0).optional()});f.z.object({id:f.z.string(),organization_id:f.z.string().max(50),created_at:f.z.string().datetime(),expires_at:f.z.string().datetime(),ticket_id:f.z.string().optional()}).extend(DZ.omit({id:!0}).shape);var OZ=f.z.object({alg:f.z.enum([`RS256`,`RS384`,`RS512`,`ES256`,`ES384`,`ES512`,`HS256`,`HS384`,`HS512`]),kid:f.z.string().optional(),kty:f.z.enum([`RSA`,`EC`,`oct`]),use:f.z.enum([`sig`,`enc`]).optional(),n:f.z.string().optional(),e:f.z.string().optional(),crv:f.z.string().optional(),x:f.z.string().optional(),y:f.z.string().optional(),x5t:f.z.string().optional(),x5c:f.z.array(f.z.string()).optional()}).superRefine((e,t)=>{if(e.kty===`RSA`)for(let n of[`n`,`e`])e[n]||t.addIssue({code:f.z.ZodIssueCode.custom,path:[n],message:`RSA JWK is missing required member '${n}'`});else if(e.kty===`EC`)for(let n of[`crv`,`x`,`y`])e[n]||t.addIssue({code:f.z.ZodIssueCode.custom,path:[n],message:`EC JWK is missing required member '${n}'`})});f.z.object({keys:f.z.array(OZ)}),f.z.object({issuer:f.z.string(),authorization_endpoint:f.z.string(),token_endpoint:f.z.string(),userinfo_endpoint:f.z.string(),jwks_uri:f.z.string(),registration_endpoint:f.z.string().optional(),revocation_endpoint:f.z.string(),end_session_endpoint:f.z.string().optional(),scopes_supported:f.z.array(f.z.string()),response_types_supported:f.z.array(f.z.string()),grant_types_supported:f.z.array(f.z.string()).optional(),code_challenge_methods_supported:f.z.array(f.z.string()),response_modes_supported:f.z.array(f.z.string()),subject_types_supported:f.z.array(f.z.string()),id_token_signing_alg_values_supported:f.z.array(f.z.string()),token_endpoint_auth_methods_supported:f.z.array(f.z.string()),claims_supported:f.z.array(f.z.string()),request_uri_parameter_supported:f.z.boolean(),request_parameter_supported:f.z.boolean(),claims_parameter_supported:f.z.boolean().optional(),request_object_signing_alg_values_supported:f.z.array(f.z.string()).optional(),token_endpoint_auth_signing_alg_values_supported:f.z.array(f.z.string()),client_id_metadata_document_supported:f.z.boolean().optional()});var kZ=function(e){return e.PENDING=`pending`,e.AUTHENTICATED=`authenticated`,e.AWAITING_EMAIL_VERIFICATION=`awaiting_email_verification`,e.AWAITING_MFA=`awaiting_mfa`,e.AWAITING_HOOK=`awaiting_hook`,e.AWAITING_CONTINUATION=`awaiting_continuation`,e.AWAITING_CONSENT=`awaiting_consent`,e.COMPLETED=`completed`,e.FAILED=`failed`,e.EXPIRED=`expired`,e}({}),AZ=f.z.nativeEnum(kZ),jZ=f.z.object({strategy:f.z.string(),strategy_type:f.z.string()});f.z.object({csrf_token:f.z.string(),auth0Client:f.z.string().optional(),authParams:pX,expires_at:f.z.string(),deleted_at:f.z.string().optional(),ip:f.z.string().optional(),useragent:f.z.string().optional(),session_id:f.z.string().optional(),authorization_url:f.z.string().optional(),state:AZ.optional().default(`pending`),state_data:f.z.string().optional(),failure_reason:f.z.string().optional(),user_id:f.z.string().optional(),auth_connection:f.z.string().optional(),auth_strategy:jZ.optional(),authenticated_at:f.z.string().optional()}).openapi({description:`This represents a login sesion`}).extend({id:f.z.string().openapi({description:`This is is used as the state in the universal login`}),created_at:f.z.string(),updated_at:f.z.string()});var $={ACLS_SUMMARY:`acls_summary`,ACTIONS_EXECUTION_FAILED:`actions_execution_failed`,API_LIMIT:`api_limit`,API_LIMIT_WARNING:`api_limit_warning`,APPI:`appi`,CIBA_EXCHANGE_FAILED:`ciba_exchange_failed`,CIBA_EXCHANGE_SUCCEEDED:`ciba_exchange_succeeded`,CIBA_START_FAILED:`ciba_start_failed`,CIBA_START_SUCCEEDED:`ciba_start_succeeded`,CODE_LINK_SENT:`cls`,CODE_SENT:`cs`,DEPRECATION_NOTICE:`depnote`,FAILED_LOGIN:`f`,FAILED_BY_CONNECTOR:`fc`,FAILED_CHANGE_EMAIL:`fce`,FAILED_BY_CORS:`fco`,FAILED_CROSS_ORIGIN_AUTHENTICATION:`fcoa`,FAILED_CHANGE_PASSWORD:`fcp`,FAILED_POST_CHANGE_PASSWORD_HOOK:`fcph`,FAILED_CHANGE_PHONE_NUMBER:`fcpn`,FAILED_CHANGE_PASSWORD_REQUEST:`fcpr`,FAILED_CONNECTOR_PROVISIONING:`fcpro`,FAILED_CHANGE_USERNAME:`fcu`,FAILED_DELEGATION:`fd`,FAILED_DEVICE_ACTIVATION:`fdeac`,FAILED_DEVICE_AUTHORIZATION_REQUEST:`fdeaz`,USER_CANCELED_DEVICE_CONFIRMATION:`fdecc`,FAILED_USER_DELETION:`fdu`,FAILED_EXCHANGE_AUTHORIZATION_CODE_FOR_ACCESS_TOKEN:`feacft`,FAILED_EXCHANGE_ACCESS_TOKEN_FOR_CLIENT_CREDENTIALS:`feccft`,FAILED_EXCHANGE_CUSTOM_TOKEN:`fecte`,FAILED_EXCHANGE_DEVICE_CODE_FOR_ACCESS_TOKEN:`fede`,FAILED_FEDERATED_LOGOUT:`federated_logout_failed`,FAILED_EXCHANGE_NATIVE_SOCIAL_LOGIN:`fens`,FAILED_EXCHANGE_PASSWORD_OOB_FOR_ACCESS_TOKEN:`feoobft`,FAILED_EXCHANGE_PASSWORD_OTP_FOR_ACCESS_TOKEN:`feotpft`,FAILED_EXCHANGE_PASSWORD_FOR_ACCESS_TOKEN:`fepft`,FAILED_EXCHANGE_PASSWORDLESS_OTP_FOR_ACCESS_TOKEN:`fepotpft`,FAILED_EXCHANGE_PASSWORD_MFA_RECOVERY_FOR_ACCESS_TOKEN:`fercft`,FAILED_EXCHANGE_ROTATING_REFRESH_TOKEN:`ferrt`,FAILED_EXCHANGE_REFRESH_TOKEN_FOR_ACCESS_TOKEN:`fertft`,FAILED_EXCHANGE_SUBJECT_TOKEN_FOR_ACCESS_TOKEN:`festft`,FAILED_HOOK:`fh`,FAILED_IMPERSONATION:`fimp`,FAILED_INVITE_ACCEPT:`fi`,FAILED_LOGOUT:`flo`,FLOWS_EXECUTION_COMPLETED:`flows_execution_completed`,FLOWS_EXECUTION_FAILED:`flows_execution_failed`,FAILED_SENDING_NOTIFICATION:`fn`,FORMS_SUBMISSION_FAILED:`forms_submission_failed`,FORMS_SUBMISSION_SUCCEEDED:`forms_submission_succeeded`,FAILED_LOGIN_INCORRECT_PASSWORD:`fp`,FAILED_PUSHED_AUTHORIZATION_REQUEST:`fpar`,FAILED_POST_USER_REGISTRATION_HOOK:`fpurh`,FAILED_SIGNUP:`fs`,FAILED_SILENT_AUTH:`fsa`,FAILED_LOGIN_INVALID_EMAIL_USERNAME:`fu`,FAILED_USERS_IMPORT:`fui`,FAILED_VERIFICATION_EMAIL:`fv`,FAILED_VERIFICATION_EMAIL_REQUEST:`fvr`,EMAIL_VERIFICATION_CONFIRMED:`gd_auth_email_verification`,EMAIL_VERIFICATION_FAILED:`gd_auth_fail_email_verification`,MFA_AUTH_FAILED:`gd_auth_failed`,MFA_AUTH_REJECTED:`gd_auth_rejected`,MFA_AUTH_SUCCESS:`gd_auth_succeed`,MFA_ENROLLMENT_COMPLETE:`gd_enrollment_complete`,TOO_MANY_MFA_FAILURES:`gd_otp_rate_limit_exceed`,MFA_RECOVERY_FAILED:`gd_recovery_failed`,MFA_RECOVERY_RATE_LIMIT_EXCEED:`gd_recovery_rate_limit_exceed`,MFA_RECOVERY_SUCCESS:`gd_recovery_succeed`,MFA_EMAIL_SENT:`gd_send_email`,EMAIL_VERIFICATION_SENT:`gd_send_email_verification`,EMAIL_VERIFICATION_SEND_FAILURE:`gd_send_email_verification_failure`,PUSH_NOTIFICATION_SENT:`gd_send_pn`,ERROR_SENDING_MFA_PUSH_NOTIFICATION:`gd_send_pn_failure`,MFA_SMS_SENT:`gd_send_sms`,ERROR_SENDING_MFA_SMS:`gd_send_sms_failure`,MFA_VOICE_CALL_SUCCESS:`gd_send_voice`,MFA_VOICE_CALL_FAILED:`gd_send_voice_failure`,SECOND_FACTOR_STARTED:`gd_start_auth`,MFA_ENROLL_STARTED:`gd_start_enroll`,MFA_ENROLLMENT_FAILED:`gd_start_enroll_failed`,GUARDIAN_TENANT_UPDATE:`gd_tenant_update`,UNENROLL_DEVICE_ACCOUNT:`gd_unenroll`,UPDATE_DEVICE_ACCOUNT:`gd_update_device_account`,WEBAUTHN_CHALLENGE_FAILED:`gd_webauthn_challenge_failed`,WEBAUTHN_ENROLLMENT_FAILED:`gd_webauthn_enrollment_failed`,FAILED_KMS_API_OPERATION:`kms_key_management_failure`,SUCCESS_KMS_API_OPERATION:`kms_key_management_success`,KMS_KEY_STATE_CHANGED:`kms_key_state_changed`,TOO_MANY_CALLS_TO_DELEGATION:`limit_delegation`,BLOCKED_IP_ADDRESS:`limit_mu`,BLOCKED_ACCOUNT_IP:`limit_sul`,BLOCKED_ACCOUNT_EMAIL:`limit_wc`,INFORMATION:`i`,MFA_REQUIRED:`mfar`,MANAGEMENT_API_READ_OPERATION:`mgmt_api_read`,FAILED_AUTHENTICATION_METHOD_OPERATION_MY_ACCOUNT:`my_account_authentication_method_failed`,SUCCESSFUL_AUTHENTICATION_METHOD_OPERATION_MY_ACCOUNT:`my_account_authentication_method_succeeded`,FAILED_OIDC_BACKCHANNEL_LOGOUT:`oidc_backchannel_logout_failed`,SUCCESSFUL_OIDC_BACKCHANNEL_LOGOUT:`oidc_backchannel_logout_succeeded`,ORGANIZATION_MEMBER_ADDED:`organization_member_added`,PASSKEY_CHALLENGE_FAILED:`passkey_challenge_failed`,PASSKEY_CHALLENGE_STARTED:`passkey_challenge_started`,PRE_LOGIN_ASSESSMENT:`pla`,BREACHED_PASSWORD:`pwd_leak`,BREACHED_PASSWORD_ON_RESET:`reset_pwd_leak`,SUCCESS_RESOURCE_CLEANUP:`resource_cleanup`,RICH_CONSENTS_ACCESS_ERROR:`rich_consents_access_error`,SUCCESS_LOGIN:`s`,SUCCESS_API_OPERATION:`sapi`,FAILED_API_OPERATION:`fapi`,SUCCESS_CHANGE_EMAIL:`sce`,SUCCESS_CROSS_ORIGIN_AUTHENTICATION:`scoa`,SUCCESS_CHANGE_PASSWORD:`scp`,SUCCESS_CHANGE_PHONE_NUMBER:`scpn`,SUCCESS_CHANGE_PASSWORD_REQUEST:`scpr`,SUCCESS_CHANGE_USERNAME:`scu`,SUCCESS_CREDENTIAL_VALIDATION:`scv`,SUCCESS_DELEGATION:`sd`,SUCCESS_USER_DELETION:`sdu`,SUCCESS_EXCHANGE_AUTHORIZATION_CODE_FOR_ACCESS_TOKEN:`seacft`,SUCCESS_EXCHANGE_ACCESS_TOKEN_FOR_CLIENT_CREDENTIALS:`seccft`,SUCCESS_EXCHANGE_CUSTOM_TOKEN:`secte`,SUCCESS_EXCHANGE_DEVICE_CODE_FOR_ACCESS_TOKEN:`sede`,SUCCESS_EXCHANGE_NATIVE_SOCIAL_LOGIN:`sens`,SUCCESS_EXCHANGE_PASSWORD_OOB_FOR_ACCESS_TOKEN:`seoobft`,SUCCESS_EXCHANGE_PASSWORD_OTP_FOR_ACCESS_TOKEN:`seotpft`,SUCCESS_EXCHANGE_PASSWORDLESS_OTP_FOR_ACCESS_TOKEN:`sepotpft`,SUCCESS_EXCHANGE_PASSWORD_FOR_ACCESS_TOKEN:`sepft`,SUCCESS_EXCHANGE_PASSKEY_OOB_FOR_ACCESS_TOKEN:`sepkoobft`,SUCCESS_EXCHANGE_PASSKEY_OTP_FOR_ACCESS_TOKEN:`sepkotpft`,SUCCESS_EXCHANGE_PASSKEY_MFA_RECOVERY_FOR_ACCESS_TOKEN:`sepkrcft`,SUCCESS_EXCHANGE_PASSWORD_MFA_RECOVERY_FOR_ACCESS_TOKEN:`sercft`,SUCCESS_EXCHANGE_REFRESH_TOKEN_FOR_ACCESS_TOKEN:`sertft`,SUCCESS_EXCHANGE_SUBJECT_TOKEN_FOR_ACCESS_TOKEN:`sestft`,SUCCESS_IMPERSONATION:`simp`,SUCCESSFULLY_ACCEPTED_USER_INVITE:`si`,BREACHED_PASSWORD_ON_SIGNUP:`signup_pwd_leak`,SUCCESS_LOGOUT:`slo`,SUCCESS_HOOK:`sh`,SUCCESS_PASSWORD_MIGRATION:`spm`,SUCCESS_REVOCATION:`srrt`,SUCCESS_SIGNUP:`ss`,FAILED_SS_SSO_OPERATION:`ss_sso_failure`,INFORMATION_FROM_SS_SSO_OPERATION:`ss_sso_info`,SUCCESS_SS_SSO_OPERATION:`ss_sso_success`,SUCCESS_SILENT_AUTH:`ssa`,SUCCESSFUL_SCIM_OPERATION:`sscim`,SUCCESSFULLY_IMPORTED_USERS:`sui`,SUCCESS_VERIFICATION_EMAIL:`sv`,SUCCESS_VERIFICATION_EMAIL_REQUEST:`svr`,MAX_AMOUNT_OF_AUTHENTICATORS:`too_many_records`,USER_LOGIN_BLOCK_RELEASED:`ublkdu`,FAILED_UNIVERSAL_LOGOUT:`universal_logout_failed`,SUCCESSFUL_UNIVERSAL_LOGOUT:`universal_logout_succeeded`,WARNING_DURING_LOGIN:`w`,WARNING_SENDING_NOTIFICATION:`wn`,WARNING_USER_MANAGEMENT:`wum`},MZ=f.z.string().refine(e=>Object.values($).includes(e),{message:`Invalid log type`});$.ACLS_SUMMARY,$.ACTIONS_EXECUTION_FAILED,$.API_LIMIT,$.API_LIMIT_WARNING,$.APPI,$.CIBA_EXCHANGE_FAILED,$.CIBA_EXCHANGE_SUCCEEDED,$.CIBA_START_FAILED,$.CIBA_START_SUCCEEDED,$.CODE_LINK_SENT,$.CODE_SENT,$.DEPRECATION_NOTICE,$.FAILED_LOGIN,$.FAILED_BY_CONNECTOR,$.FAILED_CHANGE_EMAIL,$.FAILED_BY_CORS,$.FAILED_CROSS_ORIGIN_AUTHENTICATION,$.FAILED_CHANGE_PASSWORD,$.FAILED_POST_CHANGE_PASSWORD_HOOK,$.FAILED_CHANGE_PHONE_NUMBER,$.FAILED_CHANGE_PASSWORD_REQUEST,$.FAILED_CONNECTOR_PROVISIONING,$.FAILED_CHANGE_USERNAME,$.FAILED_DELEGATION,$.FAILED_DEVICE_ACTIVATION,$.FAILED_DEVICE_AUTHORIZATION_REQUEST,$.USER_CANCELED_DEVICE_CONFIRMATION,$.FAILED_USER_DELETION,$.FAILED_EXCHANGE_AUTHORIZATION_CODE_FOR_ACCESS_TOKEN,$.FAILED_EXCHANGE_ACCESS_TOKEN_FOR_CLIENT_CREDENTIALS,$.FAILED_EXCHANGE_CUSTOM_TOKEN,$.FAILED_EXCHANGE_DEVICE_CODE_FOR_ACCESS_TOKEN,$.FAILED_FEDERATED_LOGOUT,$.FAILED_EXCHANGE_NATIVE_SOCIAL_LOGIN,$.FAILED_EXCHANGE_PASSWORD_OOB_FOR_ACCESS_TOKEN,$.FAILED_EXCHANGE_PASSWORD_OTP_FOR_ACCESS_TOKEN,$.FAILED_EXCHANGE_PASSWORD_FOR_ACCESS_TOKEN,$.FAILED_EXCHANGE_PASSWORDLESS_OTP_FOR_ACCESS_TOKEN,$.FAILED_EXCHANGE_PASSWORD_MFA_RECOVERY_FOR_ACCESS_TOKEN,$.FAILED_EXCHANGE_ROTATING_REFRESH_TOKEN,$.FAILED_EXCHANGE_REFRESH_TOKEN_FOR_ACCESS_TOKEN,$.FAILED_EXCHANGE_SUBJECT_TOKEN_FOR_ACCESS_TOKEN,$.FAILED_HOOK,$.FAILED_IMPERSONATION,$.FAILED_INVITE_ACCEPT,$.FAILED_LOGOUT,$.FLOWS_EXECUTION_COMPLETED,$.FLOWS_EXECUTION_FAILED,$.FAILED_SENDING_NOTIFICATION,$.FORMS_SUBMISSION_FAILED,$.FORMS_SUBMISSION_SUCCEEDED,$.FAILED_LOGIN_INCORRECT_PASSWORD,$.FAILED_PUSHED_AUTHORIZATION_REQUEST,$.FAILED_POST_USER_REGISTRATION_HOOK,$.FAILED_SIGNUP,$.FAILED_SILENT_AUTH,$.FAILED_LOGIN_INVALID_EMAIL_USERNAME,$.FAILED_USERS_IMPORT,$.FAILED_VERIFICATION_EMAIL,$.FAILED_VERIFICATION_EMAIL_REQUEST,$.EMAIL_VERIFICATION_CONFIRMED,$.EMAIL_VERIFICATION_FAILED,$.MFA_AUTH_FAILED,$.MFA_AUTH_REJECTED,$.MFA_AUTH_SUCCESS,$.MFA_ENROLLMENT_COMPLETE,$.TOO_MANY_MFA_FAILURES,$.MFA_RECOVERY_FAILED,$.MFA_RECOVERY_RATE_LIMIT_EXCEED,$.MFA_RECOVERY_SUCCESS,$.MFA_EMAIL_SENT,$.EMAIL_VERIFICATION_SENT,$.EMAIL_VERIFICATION_SEND_FAILURE,$.PUSH_NOTIFICATION_SENT,$.ERROR_SENDING_MFA_PUSH_NOTIFICATION,$.MFA_SMS_SENT,$.ERROR_SENDING_MFA_SMS,$.MFA_VOICE_CALL_SUCCESS,$.MFA_VOICE_CALL_FAILED,$.SECOND_FACTOR_STARTED,$.MFA_ENROLL_STARTED,$.MFA_ENROLLMENT_FAILED,$.GUARDIAN_TENANT_UPDATE,$.UNENROLL_DEVICE_ACCOUNT,$.UPDATE_DEVICE_ACCOUNT,$.WEBAUTHN_CHALLENGE_FAILED,$.WEBAUTHN_ENROLLMENT_FAILED,$.FAILED_KMS_API_OPERATION,$.SUCCESS_KMS_API_OPERATION,$.KMS_KEY_STATE_CHANGED,$.TOO_MANY_CALLS_TO_DELEGATION,$.BLOCKED_IP_ADDRESS,$.BLOCKED_ACCOUNT_IP,$.BLOCKED_ACCOUNT_EMAIL,$.INFORMATION,$.MFA_REQUIRED,$.MANAGEMENT_API_READ_OPERATION,$.FAILED_AUTHENTICATION_METHOD_OPERATION_MY_ACCOUNT,$.SUCCESSFUL_AUTHENTICATION_METHOD_OPERATION_MY_ACCOUNT,$.FAILED_OIDC_BACKCHANNEL_LOGOUT,$.SUCCESSFUL_OIDC_BACKCHANNEL_LOGOUT,$.ORGANIZATION_MEMBER_ADDED,$.PASSKEY_CHALLENGE_FAILED,$.PASSKEY_CHALLENGE_STARTED,$.PRE_LOGIN_ASSESSMENT,$.BREACHED_PASSWORD,$.BREACHED_PASSWORD_ON_RESET,$.SUCCESS_RESOURCE_CLEANUP,$.RICH_CONSENTS_ACCESS_ERROR,$.SUCCESS_LOGIN,$.SUCCESS_API_OPERATION,$.FAILED_API_OPERATION,$.SUCCESS_CHANGE_EMAIL,$.SUCCESS_CROSS_ORIGIN_AUTHENTICATION,$.SUCCESS_CHANGE_PASSWORD,$.SUCCESS_CHANGE_PHONE_NUMBER,$.SUCCESS_CHANGE_PASSWORD_REQUEST,$.SUCCESS_CHANGE_USERNAME,$.SUCCESS_CREDENTIAL_VALIDATION,$.SUCCESS_DELEGATION,$.SUCCESS_USER_DELETION,$.SUCCESS_EXCHANGE_AUTHORIZATION_CODE_FOR_ACCESS_TOKEN,$.SUCCESS_EXCHANGE_ACCESS_TOKEN_FOR_CLIENT_CREDENTIALS,$.SUCCESS_EXCHANGE_CUSTOM_TOKEN,$.SUCCESS_EXCHANGE_DEVICE_CODE_FOR_ACCESS_TOKEN,$.SUCCESS_EXCHANGE_NATIVE_SOCIAL_LOGIN,$.SUCCESS_EXCHANGE_PASSWORD_OOB_FOR_ACCESS_TOKEN,$.SUCCESS_EXCHANGE_PASSWORD_OTP_FOR_ACCESS_TOKEN,$.SUCCESS_EXCHANGE_PASSWORDLESS_OTP_FOR_ACCESS_TOKEN,$.SUCCESS_EXCHANGE_PASSWORD_FOR_ACCESS_TOKEN,$.SUCCESS_EXCHANGE_PASSKEY_OOB_FOR_ACCESS_TOKEN,$.SUCCESS_EXCHANGE_PASSKEY_OTP_FOR_ACCESS_TOKEN,$.SUCCESS_EXCHANGE_PASSKEY_MFA_RECOVERY_FOR_ACCESS_TOKEN,$.SUCCESS_EXCHANGE_PASSWORD_MFA_RECOVERY_FOR_ACCESS_TOKEN,$.SUCCESS_EXCHANGE_REFRESH_TOKEN_FOR_ACCESS_TOKEN,$.SUCCESS_EXCHANGE_SUBJECT_TOKEN_FOR_ACCESS_TOKEN,$.SUCCESS_IMPERSONATION,$.SUCCESSFULLY_ACCEPTED_USER_INVITE,$.BREACHED_PASSWORD_ON_SIGNUP,$.SUCCESS_LOGOUT,$.SUCCESS_HOOK,$.SUCCESS_PASSWORD_MIGRATION,$.SUCCESS_REVOCATION,$.SUCCESS_SIGNUP,$.FAILED_SS_SSO_OPERATION,$.INFORMATION_FROM_SS_SSO_OPERATION,$.SUCCESS_SS_SSO_OPERATION,$.SUCCESS_SILENT_AUTH,$.SUCCESSFUL_SCIM_OPERATION,$.SUCCESSFULLY_IMPORTED_USERS,$.SUCCESS_VERIFICATION_EMAIL,$.SUCCESS_VERIFICATION_EMAIL_REQUEST,$.MAX_AMOUNT_OF_AUTHENTICATORS,$.USER_LOGIN_BLOCK_RELEASED,$.FAILED_UNIVERSAL_LOGOUT,$.SUCCESSFUL_UNIVERSAL_LOGOUT,$.WARNING_DURING_LOGIN,$.WARNING_SENDING_NOTIFICATION,$.WARNING_USER_MANAGEMENT,(()=>{let e={};for(let[t,n]of Object.entries($))t.startsWith(`SUCCESS_`)||t.startsWith(`SUCCESSFUL_`)||t.startsWith(`SUCCESSFULLY_`)||t.endsWith(`_SUCCEEDED`)||t.endsWith(`_COMPLETED`)?e[n]=`success`:t.startsWith(`FAILED_`)||t.startsWith(`ERROR_`)||t.startsWith(`BREACHED_`)||t.startsWith(`BLOCKED_`)||t===`MFA_AUTH_FAILED`||t===`MFA_AUTH_REJECTED`||t===`MFA_RECOVERY_FAILED`||t===`MFA_ENROLLMENT_FAILED`||t===`EMAIL_VERIFICATION_FAILED`||t===`WEBAUTHN_CHALLENGE_FAILED`||t===`WEBAUTHN_ENROLLMENT_FAILED`||t===`PASSKEY_CHALLENGE_FAILED`||t===`FLOWS_EXECUTION_FAILED`||t===`FORMS_SUBMISSION_FAILED`||t===`CIBA_EXCHANGE_FAILED`||t===`CIBA_START_FAILED`||t===`ACTIONS_EXECUTION_FAILED`||t===`RICH_CONSENTS_ACCESS_ERROR`||t===`USER_CANCELED_DEVICE_CONFIRMATION`||t===`TOO_MANY_MFA_FAILURES`||t===`MFA_RECOVERY_RATE_LIMIT_EXCEED`||t===`API_LIMIT`||t===`MAX_AMOUNT_OF_AUTHENTICATORS`?e[n]=`failure`:t.startsWith(`WARNING_`)||t===`API_LIMIT_WARNING`||t===`DEPRECATION_NOTICE`||t===`PRE_LOGIN_ASSESSMENT`?e[n]=`warning`:t===`CODE_SENT`||t===`CODE_LINK_SENT`||t===`MFA_EMAIL_SENT`||t===`MFA_SMS_SENT`||t===`EMAIL_VERIFICATION_SENT`||t===`PUSH_NOTIFICATION_SENT`?e[n]=`code_sent`:t===`INFORMATION`||t===`INFORMATION_FROM_SS_SSO_OPERATION`||t===`MANAGEMENT_API_READ_OPERATION`||t===`APPI`||t===`ACLS_SUMMARY`||t===`ORGANIZATION_MEMBER_ADDED`?e[n]=`info`:e[n]=`other`;return e})();var NZ=f.z.object({name:f.z.string(),version:f.z.string(),env:f.z.object({node:f.z.string().optional()}).optional()}),PZ=f.z.object({country_code:f.z.string().length(2),city_name:f.z.string(),latitude:f.z.string(),longitude:f.z.string(),time_zone:f.z.string(),continent_code:f.z.string()});f.z.object({type:MZ,date:f.z.string(),description:f.z.string().optional(),ip:f.z.string().optional(),user_agent:f.z.string().optional(),details:f.z.any().optional(),isMobile:f.z.boolean(),user_id:f.z.string().optional(),user_name:f.z.string().optional(),connection:f.z.string().optional(),connection_id:f.z.string().optional(),client_id:f.z.string().optional(),client_name:f.z.string().optional(),audience:f.z.string().optional(),scope:f.z.string().optional(),strategy:f.z.string().optional(),strategy_type:f.z.string().optional(),hostname:f.z.string().optional(),auth0_client:NZ.optional(),log_id:f.z.string().optional(),location_info:PZ.optional()}).extend({log_id:f.z.string()});var FZ=f.z.enum([`http`,`eventbridge`,`eventgrid`,`splunk`,`datadog`,`sumo`]),IZ=f.z.enum([`active`,`paused`,`suspended`]),LZ=f.z.object({type:f.z.string(),name:f.z.string()});f.z.object({name:f.z.string(),type:FZ,status:IZ.optional(),sink:f.z.record(f.z.string(),f.z.unknown()),filters:f.z.array(LZ).optional(),isPriority:f.z.boolean().optional()}).extend({id:f.z.string(),status:IZ,created_at:f.z.string().optional(),updated_at:f.z.string().optional()});var RZ=f.z.enum([`auth0`,`cognito`,`okta`,`oidc`]),zZ=f.z.object({domain:f.z.string(),client_id:f.z.string(),client_secret:f.z.string(),audience:f.z.string().optional(),scope:f.z.string().optional()}),BZ=f.z.object({id:f.z.string().optional(),name:f.z.string(),provider:RZ,connection:f.z.string(),enabled:f.z.boolean().default(!0),credentials:zZ});f.z.object({id:f.z.string(),created_at:f.z.string(),updated_at:f.z.string()}).extend(BZ.shape);var VZ=f.z.object({enabled:f.z.boolean().optional(),shields:f.z.array(f.z.string()).optional(),admin_notification_frequency:f.z.array(f.z.string()).optional(),method:f.z.string().optional(),stage:f.z.object({"pre-user-registration":f.z.object({shields:f.z.array(f.z.string()).optional()}).optional(),"pre-change-password":f.z.object({shields:f.z.array(f.z.string()).optional()}).optional()}).optional()}),HZ=f.z.object({enabled:f.z.boolean().optional(),shields:f.z.array(f.z.string()).optional(),allowlist:f.z.array(f.z.string()).optional(),mode:f.z.string().optional(),max_attempts:f.z.number().optional()}),UZ=f.z.object({enabled:f.z.boolean().optional(),shields:f.z.array(f.z.string()).optional(),allowlist:f.z.array(f.z.string()).optional(),stage:f.z.object({"pre-login":f.z.object({max_attempts:f.z.number().optional(),rate:f.z.number().optional()}).optional(),"pre-user-registration":f.z.object({max_attempts:f.z.number().optional(),rate:f.z.number().optional()}).optional()}).optional()}),WZ=f.z.object({breached_password_detection:VZ.optional(),brute_force_protection:HZ.optional(),suspicious_ip_throttling:UZ.optional()});f.z.object({id:f.z.string().optional(),user_id:f.z.string(),password:f.z.string(),algorithm:f.z.enum([`bcrypt`,`argon2id`]).default(`argon2id`),is_current:f.z.boolean().default(!0)}).extend({id:f.z.string(),created_at:f.z.string(),updated_at:f.z.string()});var GZ=f.z.object({initial_user_agent:f.z.string().describe(`First user agent of the device from which this user logged in`),initial_ip:f.z.string().describe(`First IP address associated with this session`),initial_asn:f.z.string().describe(`First autonomous system number associated with this session`),last_user_agent:f.z.string().describe(`Last user agent of the device from which this user logged in`),last_ip:f.z.string().describe(`Last IP address from which this user logged in`),last_asn:f.z.string().describe(`Last autonomous system number from which this user logged in`)}),KZ=f.z.object({id:f.z.string(),revoked_at:f.z.string().optional(),used_at:f.z.string().optional(),user_id:f.z.string().describe(`The user ID associated with the session`),expires_at:f.z.string().optional(),login_session_id:f.z.string(),idle_expires_at:f.z.string().optional(),device:GZ.describe(`Metadata related to the device used in the session`),clients:f.z.array(f.z.string()).describe(`List of client details for the session`)});f.z.object({created_at:f.z.string(),updated_at:f.z.string(),authenticated_at:f.z.string(),last_interaction_at:f.z.string()}).extend(KZ.shape),f.z.object({kid:f.z.string().openapi({description:`The key id of the signing key`}),tenant_id:f.z.string().optional().openapi({description:`The tenant the key belongs to. Omitted means the key is shared / control-plane scoped.`}),cert:f.z.string().openapi({description:`The public certificate of the signing key`}),fingerprint:f.z.string().openapi({description:`The cert fingerprint`}),thumbprint:f.z.string().openapi({description:`The cert thumbprint`}),pkcs7:f.z.string().optional().openapi({description:`The private key in pkcs7 format`}),current:f.z.boolean().optional().openapi({description:`True if the key is the current key`}),next:f.z.boolean().optional().openapi({description:`True if the key is the next key`}),previous:f.z.boolean().optional().openapi({description:`True if the key is the previous key`}),current_since:f.z.string().optional().openapi({description:`The date and time when the key became the current key`}),current_until:f.z.string().optional().openapi({description:`The date and time when the current key was rotated`}),revoked:f.z.boolean().optional().openapi({description:`True if the key is revoked`}),revoked_at:f.z.string().optional().openapi({description:`The date and time when the key was revoked`}),connection:f.z.string().optional().openapi({description:`The connection identifier associated with the key`}),type:f.z.enum([`jwt_signing`,`saml_encryption`]).openapi({description:`The type of the signing key`})});var qZ=f.z.object({id:f.z.string().optional(),audience:f.z.string().optional(),friendly_name:f.z.string(),picture_url:f.z.string().optional(),support_email:f.z.string().optional(),support_url:f.z.string().optional(),sender_email:f.z.string().email().optional(),sender_name:f.z.string().optional(),session_lifetime:f.z.number().optional(),idle_session_lifetime:f.z.number().optional(),ephemeral_session_lifetime:f.z.number().optional(),idle_ephemeral_session_lifetime:f.z.number().optional(),session_cookie:f.z.object({mode:f.z.enum([`persistent`,`non-persistent`]).optional()}).optional(),allowed_logout_urls:f.z.array(f.z.string()).optional(),default_redirection_uri:f.z.string().optional(),default_client_id:f.z.string().optional(),enabled_locales:f.z.array(f.z.string()).optional(),default_directory:f.z.string().optional(),error_page:f.z.object({html:f.z.string().optional(),show_log_link:f.z.boolean().optional(),url:f.z.string().optional()}).nullish(),flags:f.z.object({allow_changing_enable_sso:f.z.boolean().optional(),allow_legacy_delegation_grant_types:f.z.boolean().optional(),allow_legacy_ro_grant_types:f.z.boolean().optional(),allow_legacy_tokeninfo_endpoint:f.z.boolean().optional(),change_pwd_flow_v1:f.z.boolean().optional(),client_id_metadata_document_registration:f.z.boolean().optional(),custom_domains_provisioning:f.z.boolean().optional(),dashboard_insights_view:f.z.boolean().optional(),dashboard_log_streams_next:f.z.boolean().optional(),disable_clickjack_protection_headers:f.z.boolean().optional(),disable_fields_map_fix:f.z.boolean().optional(),disable_impersonation:f.z.boolean().optional(),disable_management_api_sms_obfuscation:f.z.boolean().optional(),enable_adfs_waad_email_verification:f.z.boolean().optional(),enable_apis_section:f.z.boolean().optional(),enable_client_connections:f.z.boolean().optional(),enable_custom_domain_in_emails:f.z.boolean().optional(),enable_dynamic_client_registration:f.z.boolean().optional(),dcr_require_initial_access_token:f.z.boolean().optional(),dcr_allowed_grant_types:f.z.array(f.z.string()).optional(),allow_http_return_to:f.z.array(f.z.string().refine(e=>{try{let t=new URL(e);return t.protocol===`http:`&&(t.pathname===``||t.pathname===`/`)&&!t.search&&!t.hash&&e===t.origin}catch{return!1}},{message:`must be a fully-qualified http origin (scheme + host + port, no path)`})).optional(),enable_idtoken_api2:f.z.boolean().optional(),enable_legacy_logs_search_v2:f.z.boolean().optional(),enable_legacy_profile:f.z.boolean().optional(),enable_pipeline2:f.z.boolean().optional(),enable_public_signup_user_exists_error:f.z.boolean().optional(),enable_sso:f.z.boolean().optional(),enforce_client_authentication_on_passwordless_start:f.z.boolean().optional(),genai_trial:f.z.boolean().optional(),improved_signup_bot_detection_in_classic:f.z.boolean().optional(),mfa_show_factor_list_on_enrollment:f.z.boolean().optional(),no_disclose_enterprise_connections:f.z.boolean().optional(),remove_alg_from_jwks:f.z.boolean().optional(),revoke_refresh_token_grant:f.z.boolean().optional(),trust_azure_adfs_email_verified_connection_property:f.z.boolean().optional(),use_scope_descriptions_for_consent:f.z.boolean().optional(),inherit_global_permissions_in_organizations:f.z.boolean().optional(),restrict_undefined_scopes:f.z.boolean().optional()}).optional(),sandbox_version:f.z.string().optional(),legacy_sandbox_version:f.z.string().optional(),sandbox_versions_available:f.z.array(f.z.string()).optional(),change_password:f.z.object({enabled:f.z.boolean().optional(),html:f.z.string().optional()}).optional(),guardian_mfa_page:f.z.object({enabled:f.z.boolean().optional(),html:f.z.string().optional()}).optional(),device_flow:f.z.object({charset:f.z.enum([`base20`,`digits`]).optional(),mask:f.z.string().max(20).optional()}).optional(),default_token_quota:f.z.object({clients:f.z.object({client_credentials:f.z.record(f.z.string(),f.z.any()).optional()}).optional(),organizations:f.z.object({client_credentials:f.z.record(f.z.string(),f.z.any()).optional()}).optional()}).nullish(),default_audience:f.z.string().optional(),default_organization:f.z.string().optional(),sessions:f.z.object({oidc_logout_prompt_enabled:f.z.boolean().optional()}).optional(),oidc_logout:f.z.object({rp_logout_end_session_endpoint_discovery:f.z.boolean().optional()}).optional(),allow_organization_name_in_authentication_api:f.z.boolean().optional(),customize_mfa_in_postlogin_action:f.z.boolean().optional(),acr_values_supported:f.z.array(f.z.string()).optional(),mtls:f.z.object({enable_endpoint_aliases:f.z.boolean().optional()}).nullish(),pushed_authorization_requests_supported:f.z.boolean().optional(),authorization_response_iss_parameter_supported:f.z.boolean().optional(),deployment_type:f.z.enum([`shared`,`wfp`]).default(`shared`).optional(),provisioning_state:f.z.enum([`pending`,`ready`,`failed`]).default(`ready`).optional(),provisioning_error:f.z.string().max(2048).optional(),provisioning_state_changed_at:f.z.string().optional(),bundle_configuration:f.z.string().max(64).optional(),worker_version:f.z.string().max(64).optional(),worker_script_name:f.z.string().max(255).optional(),storage_kind:f.z.enum([`own_d1`,`existing_d1`,`shared_planetscale`]).optional(),d1_database_id:f.z.string().max(64).optional(),attack_protection:WZ.optional(),mfa:f.z.object({policy:f.z.enum([`never`,`always`]).default(`never`).optional(),factors:f.z.object({sms:f.z.boolean().default(!1),otp:f.z.boolean().default(!1),email:f.z.boolean().default(!1),push_notification:f.z.boolean().default(!1),webauthn_roaming:f.z.boolean().default(!1),webauthn_platform:f.z.boolean().default(!1),recovery_code:f.z.boolean().default(!1),duo:f.z.boolean().default(!1)}).optional(),sms_provider:f.z.object({provider:f.z.enum([`twilio`,`vonage`,`aws_sns`,`phone_message_hook`]).optional()}).optional(),twilio:f.z.object({sid:f.z.string().optional(),auth_token:f.z.string().optional(),from:f.z.string().optional(),messaging_service_sid:f.z.string().optional()}).optional(),phone_message:f.z.object({message:f.z.string().optional()}).optional()}).optional()});f.z.object({created_at:f.z.string().nullable().transform(e=>e??``),updated_at:f.z.string().nullable().transform(e=>e??``)}).extend(qZ.shape).extend({id:f.z.string(),is_control_plane:f.z.boolean().optional()}),f.z.object({access_token:f.z.string(),id_token:f.z.string().optional(),scope:f.z.string().optional(),state:f.z.string().optional(),refresh_token:f.z.string().optional(),token_type:f.z.string(),expires_in:f.z.number()}),f.z.object({code:f.z.string(),state:f.z.string().optional()});var JZ=f.z.object({button_border_radius:f.z.number(),button_border_weight:f.z.number(),buttons_style:f.z.enum([`pill`,`rounded`,`sharp`]),input_border_radius:f.z.number(),input_border_weight:f.z.number(),inputs_style:f.z.enum([`pill`,`rounded`,`sharp`]),show_widget_shadow:f.z.boolean(),widget_border_weight:f.z.number(),widget_corner_radius:f.z.number()}),YZ=f.z.object({base_focus_color:f.z.string(),base_hover_color:f.z.string(),body_text:f.z.string(),captcha_widget_theme:f.z.enum([`auto`,`dark`,`light`]),error:f.z.string(),header:f.z.string(),icons:f.z.string(),input_background:f.z.string(),input_border:f.z.string(),input_filled_text:f.z.string(),input_labels_placeholders:f.z.string(),links_focused_components:f.z.string(),primary_button:f.z.string(),primary_button_label:f.z.string(),secondary_button_border:f.z.string(),secondary_button_label:f.z.string(),success:f.z.string(),widget_background:f.z.string(),widget_border:f.z.string()}),XZ=f.z.object({bold:f.z.boolean(),size:f.z.number()}),ZZ=f.z.object({body_text:XZ,buttons_text:XZ,font_url:f.z.string(),input_labels:XZ,links:XZ,links_style:f.z.enum([`normal`,`underlined`]),reference_text_size:f.z.number(),subtitle:XZ,title:XZ}),QZ=f.z.object({background_color:f.z.string(),background_image_url:f.z.string(),page_layout:f.z.enum([`center`,`left`,`right`]),logo_placement:f.z.enum([`widget`,`chip`,`none`]).optional()}),$Z=f.z.object({header_text_alignment:f.z.enum([`center`,`left`,`right`]),logo_height:f.z.number(),logo_position:f.z.enum([`center`,`left`,`none`,`right`]),logo_url:f.z.string(),social_buttons_layout:f.z.enum([`bottom`,`top`])});f.z.object({borders:JZ,colors:YZ,displayName:f.z.string(),fonts:ZZ,page_background:QZ,widget:$Z}).extend({themeId:f.z.string()}),f.z.object({universal_login_experience:f.z.enum([`new`,`classic`]).default(`new`),identifier_first:f.z.boolean().default(!0),password_first:f.z.boolean().default(!1),webauthn_platform_first_factor:f.z.boolean()});var eQ=f.z.object({hosts:f.z.array(f.z.string()).optional(),methods:f.z.array(f.z.string()).optional(),path:f.z.string().default(`/*`),headers:f.z.record(f.z.string(),f.z.string()).optional(),query:f.z.record(f.z.string(),f.z.string()).optional()}),tQ=f.z.object({type:f.z.string(),options:f.z.record(f.z.string(),f.z.unknown()).default({})}),nQ=f.z.object({id:f.z.string().optional(),custom_domain_id:f.z.string(),priority:f.z.number().int().default(100),match:eQ,handlers:f.z.array(tQ).min(1)});nQ.extend({id:f.z.string(),tenant_id:f.z.string(),created_at:f.z.string(),updated_at:f.z.string()}),nQ.partial().omit({id:!0,custom_domain_id:!0}),f.z.object({name:f.z.string(),enabled:f.z.boolean().optional().default(!0),default_from_address:f.z.string().optional(),credentials:f.z.record(f.z.string(),f.z.unknown()),settings:f.z.object({}).optional()});var rQ=f.z.enum([`verify_email`,`verify_email_by_code`,`reset_email`,`reset_email_by_code`,`welcome_email`,`blocked_account`,`stolen_credentials`,`enrollment_email`,`mfa_oob_code`,`change_password`,`password_reset`,`user_invitation`]);f.z.object({template:rQ,body:f.z.string(),from:f.z.string(),subject:f.z.string(),syntax:f.z.literal(`liquid`).default(`liquid`),resultUrl:f.z.string().optional(),urlLifetimeInSeconds:f.z.number().int().nonnegative().optional(),includeEmailInRedirect:f.z.boolean().default(!1),enabled:f.z.boolean().default(!0)}),f.z.object({id:f.z.string(),login_id:f.z.string(),user_id:f.z.string(),client_id:f.z.string(),expires_at:f.z.string().optional(),idle_expires_at:f.z.string().optional(),last_exchanged_at:f.z.string().optional(),device:GZ,resource_servers:f.z.array(f.z.object({audience:f.z.string(),scopes:f.z.string()})),rotating:f.z.boolean(),token_lookup:f.z.string().optional(),token_hash:f.z.string().optional(),family_id:f.z.string().optional(),rotated_to:f.z.string().optional(),rotated_at:f.z.string().optional()}).extend({created_at:f.z.string(),revoked_at:f.z.string().optional()}),f.z.object({to:f.z.string(),message:f.z.string()}),f.z.object({name:f.z.string(),options:f.z.object({})});var iQ=f.z.object({value:f.z.string(),description:f.z.string().optional()}),aQ=f.z.object({token_dialect:f.z.enum([`access_token`,`access_token_authz`]).optional(),enforce_policies:f.z.boolean().optional(),allow_skipping_userinfo:f.z.boolean().optional(),skip_userinfo:f.z.boolean().optional(),persist_client_authorization:f.z.boolean().optional(),enable_introspection_endpoint:f.z.boolean().optional(),mtls:f.z.object({bound_access_tokens:f.z.boolean().optional()}).optional()}),oQ=f.z.object({id:f.z.string().optional(),name:f.z.string(),identifier:f.z.string(),scopes:f.z.array(iQ).optional(),signing_alg:f.z.string().optional(),signing_secret:f.z.string().optional(),token_lifetime:f.z.number().default(86400),token_lifetime_for_web:f.z.number().default(7200),skip_consent_for_verifiable_first_party_clients:f.z.boolean().optional(),allow_offline_access:f.z.boolean().optional(),verificationKey:f.z.string().optional(),options:aQ.optional(),is_system:f.z.boolean().optional(),metadata:f.z.record(f.z.string(),f.z.any()).optional()}).extend({created_at:f.z.string().optional(),updated_at:f.z.string().optional()});f.z.array(oQ);var sQ=f.z.object({role_id:f.z.string(),resource_server_identifier:f.z.string(),permission_name:f.z.string()}).extend({created_at:f.z.string()});f.z.array(sQ),f.z.object({user_id:f.z.string().openapi({description:`The id of the user that granted the consent`}),clientID:f.z.string().openapi({description:`The id of the client the grant was issued to`}),audience:f.z.string().optional().openapi({description:`The audience the grant applies to`}),scope:f.z.array(f.z.string()).default([]).openapi({description:`The list of OAuth scopes the user has consented to`})}).extend({id:f.z.string()});var cQ=f.z.object({user_id:f.z.string(),resource_server_identifier:f.z.string(),permission_name:f.z.string(),organization_id:f.z.string().optional()}).extend({tenant_id:f.z.string(),created_at:f.z.string().optional()});f.z.array(cQ);var lQ=f.z.object({user_id:f.z.string(),resource_server_identifier:f.z.string(),resource_server_name:f.z.string(),permission_name:f.z.string(),description:f.z.string().nullable().optional(),created_at:f.z.string().optional(),organization_id:f.z.string().optional()});f.z.array(lQ);var uQ=f.z.object({user_id:f.z.string(),role_id:f.z.string(),organization_id:f.z.string().optional()}).extend({tenant_id:f.z.string(),created_at:f.z.string().optional()});f.z.array(uQ);var dQ=f.z.object({id:f.z.string().optional().openapi({description:`The unique identifier of the role. If not provided, one will be generated.`}),name:f.z.string().min(1).max(50).openapi({description:`The name of the role. Cannot include '<' or '>'`}),description:f.z.string().max(255).optional().openapi({description:`The description of the role`}),is_system:f.z.boolean().optional(),metadata:f.z.record(f.z.string(),f.z.any()).optional().openapi({description:`Metadata associated with the role. Can be used to control sync behavior in multi-tenancy scenarios.`})}).extend({id:f.z.string().openapi({description:`The unique identifier of the role`}),created_at:f.z.string().optional(),updated_at:f.z.string().optional()});f.z.array(dQ);var fQ=f.z.object({logo_url:f.z.string().optional().openapi({description:`URL of the organization's logo`}),colors:f.z.object({primary:f.z.string().optional().openapi({description:`Primary color in hex format (e.g., #FF0000)`}),page_background:f.z.string().optional().openapi({description:`Page background color in hex format (e.g., #FFFFFF)`})}).optional()}).optional(),pQ=f.z.object({connection_id:f.z.string().openapi({description:`ID of the connection`}),assign_membership_on_login:f.z.boolean().default(!1).openapi({description:`Whether to assign membership to the organization on login`}),show_as_button:f.z.boolean().default(!0).openapi({description:`Whether to show this connection as a button in the login screen`}),is_signup_enabled:f.z.boolean().default(!0).openapi({description:`Whether signup is enabled for this connection`})}),mQ=f.z.object({client_credentials:f.z.object({enforce:f.z.boolean().default(!1).openapi({description:`Whether to enforce token quota limits`}),per_day:f.z.number().min(0).default(0).openapi({description:`Maximum tokens per day (0 = unlimited)`}),per_hour:f.z.number().min(0).default(0).openapi({description:`Maximum tokens per hour (0 = unlimited)`})}).optional()}).optional();f.z.object({id:f.z.string().optional(),name:f.z.string().min(1).regex(/^[a-z0-9_-]+$/,{message:`Organization name must be lowercase and can only contain letters, numbers, hyphens, and underscores`}).openapi({description:`The name of the organization. Must be lowercase and can only contain letters, numbers, hyphens, and underscores.`}),display_name:f.z.string().optional().openapi({description:`The display name of the organization`}),branding:fQ,metadata:f.z.record(f.z.string(),f.z.any()).default({}).optional().openapi({description:`Custom metadata for the organization`}),enabled_connections:f.z.array(pQ).default([]).optional().openapi({description:`List of enabled connections for the organization`}),token_quota:mQ}).extend(uY.shape).extend({id:f.z.string(),name:f.z.string().min(1).openapi({description:`The name of the organization`})});var hQ=f.z.object({connection_id:f.z.string().openapi({description:`ID of the tenant-level connection to enable for the org.`}),assign_membership_on_login:f.z.boolean().optional().default(!1),show_as_button:f.z.boolean().optional().default(!0),is_signup_enabled:f.z.boolean().optional().default(!0)}).extend({connection:f.z.object({name:f.z.string().optional(),strategy:f.z.string().optional()}).optional(),created_at:f.z.string().optional(),updated_at:f.z.string().optional()});f.z.array(hQ),f.z.object({user_id:f.z.string().openapi({description:`ID of the user`}),organization_id:f.z.string().openapi({description:`ID of the organization`})}).extend(uY.shape).extend({id:f.z.string()}),f.z.object({idle_session_lifetime:f.z.number().default(72),session_lifetime:f.z.number().default(168),session_cookie:f.z.object({mode:f.z.enum([`persistent`,`non-persistent`]).optional()}).optional(),enable_client_connections:f.z.boolean().optional(),default_redirection_uri:f.z.string().optional(),enabled_locales:f.z.array(f.z.string()).optional(),default_directory:f.z.string().optional(),error_page:f.z.object({html:f.z.string().optional(),show_log_link:f.z.boolean().optional(),url:f.z.string().optional()}).optional(),flags:f.z.object({allow_legacy_delegation_grant_types:f.z.boolean().optional(),allow_legacy_ro_grant_types:f.z.boolean().optional(),allow_legacy_tokeninfo_endpoint:f.z.boolean().optional(),disable_clickjack_protection_headers:f.z.boolean().optional(),enable_apis_section:f.z.boolean().optional(),enable_client_connections:f.z.boolean().optional(),enable_custom_domain_in_emails:f.z.boolean().optional(),enable_dynamic_client_registration:f.z.boolean().optional(),enable_idtoken_api2:f.z.boolean().optional(),enable_legacy_logs_search_v2:f.z.boolean().optional(),enable_legacy_profile:f.z.boolean().optional(),enable_pipeline2:f.z.boolean().optional(),enable_public_signup_user_exists_error:f.z.boolean().optional(),use_scope_descriptions_for_consent:f.z.boolean().optional(),disable_management_api_sms_obfuscation:f.z.boolean().optional(),enable_adfs_waad_email_verification:f.z.boolean().optional(),revoke_refresh_token_grant:f.z.boolean().optional(),dashboard_log_streams_next:f.z.boolean().optional(),dashboard_insights_view:f.z.boolean().optional(),disable_fields_map_fix:f.z.boolean().optional(),mfa_show_factor_list_on_enrollment:f.z.boolean().optional()}).optional(),friendly_name:f.z.string().optional(),picture_url:f.z.string().optional(),support_email:f.z.string().optional(),support_url:f.z.string().optional(),sandbox_version:f.z.string().optional(),sandbox_versions_available:f.z.array(f.z.string()).optional(),change_password:f.z.object({enabled:f.z.boolean(),html:f.z.string()}).optional(),guardian_mfa_page:f.z.object({enabled:f.z.boolean(),html:f.z.string()}).optional(),default_audience:f.z.string().optional(),default_organization:f.z.string().optional(),sessions:f.z.object({oidc_logout_prompt_enabled:f.z.boolean().optional()}).optional(),mfa:f.z.object({policy:f.z.enum([`never`,`always`]).default(`never`).optional(),factors:f.z.object({sms:f.z.boolean().default(!1),otp:f.z.boolean().default(!1),email:f.z.boolean().default(!1),push_notification:f.z.boolean().default(!1),webauthn_roaming:f.z.boolean().default(!1),webauthn_platform:f.z.boolean().default(!1),recovery_code:f.z.boolean().default(!1),duo:f.z.boolean().default(!1)}).optional(),sms_provider:f.z.object({provider:f.z.enum([`twilio`,`vonage`,`aws_sns`,`phone_message_hook`]).optional()}).optional(),twilio:f.z.object({sid:f.z.string().optional(),auth_token:f.z.string().optional(),from:f.z.string().optional(),messaging_service_sid:f.z.string().optional()}).optional(),phone_message:f.z.object({message:f.z.string().optional()}).optional()}).optional()}),f.z.object({date:f.z.string().openapi({description:`Date these events occurred in ISO 8601 format`,example:`2025-12-19`}),logins:f.z.number().openapi({description:`Number of logins on this date`,example:150}),signups:f.z.number().openapi({description:`Number of signups on this date`,example:25}),leaked_passwords:f.z.number().openapi({description:`Number of breached-password detections on this date (subscription required)`,example:0}),updated_at:f.z.string().openapi({description:`Date and time this stats entry was last updated in ISO 8601 format`,example:`2025-12-19T10:30:00.000Z`}),created_at:f.z.string().openapi({description:`Approximate date and time the first event occurred in ISO 8601 format`,example:`2025-12-19T00:00:00.000Z`})}),f.z.number().openapi({description:`Number of active users in the last 30 days`,example:1234}),f.z.enum([`active-users`,`logins`,`signups`,`refresh-tokens`,`sessions`]),f.z.enum([`hour`,`day`,`week`,`month`]),f.z.enum([`time`,`connection`,`client_id`,`user_type`,`event`]),f.z.enum([`password`,`social`,`passwordless`,`enterprise`]);var gQ=f.z.object({name:f.z.string(),type:f.z.string()}),_Q=f.z.object({elapsed:f.z.number(),rows_read:f.z.number().optional(),bytes_read:f.z.number().optional()});f.z.object({meta:f.z.array(gQ),data:f.z.array(f.z.record(f.z.string(),f.z.any())),rows:f.z.number(),rows_before_limit_at_least:f.z.number().optional(),statistics:_Q.optional()});var vQ=f.z.enum(`login.login-id.login-password.signup.signup-id.signup-password.reset-password.consent.mfa.mfa-push.mfa-otp.mfa-voice.mfa-phone.mfa-webauthn.mfa-email.mfa-recovery-code.status.device-flow.email-verification.email-otp-challenge.organizations.invitation.common.passkeys.captcha.custom-form.login-passwordless.mfa-login-options`.split(`.`)),yQ=f.z.record(f.z.string(),f.z.record(f.z.string(),f.z.string())).openapi({type:`object`,additionalProperties:{type:`object`,additionalProperties:{type:`string`}}});f.z.object({prompt:vQ,language:f.z.string(),custom_text:yQ});var bQ=f.z.enum([`phone`,`totp`,`email`,`push`,`webauthn-roaming`,`webauthn-platform`,`passkey`]),xQ=f.z.object({user_id:f.z.string(),type:bQ,phone_number:f.z.string().optional(),totp_secret:f.z.string().optional(),credential_id:f.z.string().optional(),public_key:f.z.string().optional(),sign_count:f.z.number().int().nonnegative().optional(),credential_backed_up:f.z.boolean().optional(),transports:f.z.array(f.z.string()).optional(),friendly_name:f.z.string().optional(),confirmed:f.z.boolean().default(!1)});function SQ(e,t){e.type===`phone`&&!e.phone_number&&t.addIssue({code:f.z.ZodIssueCode.custom,message:`phone_number is required when type is 'phone'`,path:[`phone_number`]}),e.type===`totp`&&!e.totp_secret&&t.addIssue({code:f.z.ZodIssueCode.custom,message:`totp_secret is required when type is 'totp'`,path:[`totp_secret`]}),[`webauthn-roaming`,`webauthn-platform`,`passkey`].includes(e.type)&&(e.credential_id||t.addIssue({code:f.z.ZodIssueCode.custom,message:`credential_id is required when type is '${e.type}'`,path:[`credential_id`]}),e.public_key||t.addIssue({code:f.z.ZodIssueCode.custom,message:`public_key is required when type is '${e.type}'`,path:[`public_key`]}))}xQ.superRefine(SQ),xQ.extend({id:f.z.string(),created_at:f.z.string(),updated_at:f.z.string()}).superRefine(SQ),f.z.object({origins:f.z.array(f.z.string()).optional(),allow_credentials:f.z.boolean().optional(),allow_headers:f.z.array(f.z.string()).optional(),allow_methods:f.z.array(f.z.string()).optional(),expose_headers:f.z.array(f.z.string()).optional(),max_age:f.z.number().int().optional()}).refine(e=>!(e.allow_credentials&&e.origins?.includes(`*`)),{message:`Cannot use wildcard origin (*) with allow_credentials`}),f.z.object({username:f.z.string(),password:f.z.string(),realm:f.z.string().optional()}),f.z.object({request:f.z.record(f.z.string(),f.z.string()).optional(),response:f.z.record(f.z.string(),f.z.string()).optional(),remove_request:f.z.array(f.z.string()).optional(),remove_response:f.z.array(f.z.string()).optional()}),f.z.object({ttl_seconds:f.z.number().int().positive()}),f.z.object({client_ip_header:f.z.string().default(`cf-connecting-ip`),set_x_real_ip:f.z.boolean().default(!0),set_x_original_url:f.z.boolean().default(!0)}),f.z.object({upstream_host:f.z.string().optional()}),f.z.object({upstream_origin:f.z.string().optional()}),new Set([`connection`,`keep-alive`,`proxy-authenticate`,`proxy-authorization`,`te`,`trailers`,`transfer-encoding`,`upgrade`]),f.z.object({upstream_url:f.z.string(),preserve_host:f.z.boolean().default(!1),timeout_ms:f.z.number().int().positive().optional()}),f.z.object({binding:f.z.string(),upstream_url:f.z.string().optional(),preserve_host:f.z.boolean().default(!0),timeout_ms:f.z.number().int().positive().optional()}),f.z.object({binding:f.z.string(),script_name:f.z.string(),cpu_ms:f.z.number().int().positive().optional(),subrequests:f.z.number().int().positive().optional(),timeout_ms:f.z.number().int().positive().optional()}),f.z.object({upstream_url:f.z.string().refine(e=>{try{let t=new URL(e);return(t.protocol===`http:`||t.protocol===`https:`)&&!!t.hostname}catch{return!1}},{message:`upstream_url must be a valid http(s) URL with a hostname`}),status:f.z.union([f.z.literal(301),f.z.literal(302),f.z.literal(307),f.z.literal(308)]).default(302),preserve_path:f.z.boolean().default(!0),preserve_query:f.z.boolean().default(!0)}),f.z.object({status:f.z.number().int().default(200),headers:f.z.record(f.z.string(),f.z.string()).optional(),body:f.z.string().optional(),json:f.z.unknown().optional()});var CQ=`proxy:resolve_host`,wQ=new Set([`RS256`,`RS384`,`RS512`,`ES256`,`ES384`,`ES512`]);function TQ(e){return typeof e==`string`&&wQ.has(e)?e:null}function EQ(e){return e.href.replace(/\/$/,``)}function DQ(e,t){try{return EQ(new URL(e))===EQ(new URL(t))}catch{return!1}}var OQ=f.z.object({keys:f.z.array(jr)});function kQ(e){return new URL(`/.well-known/jwks.json`,e).href}async function AQ(e){let{token:t,jwksFetch:n,expectedIssuers:r}=e,i=e.requiredScope??`proxy:resolve_host`,a,o;try{let e=AU(t);a=e.header,o=e.payload}catch{return{ok:!1,reason:`malformed token`}}let s=TQ(a.alg);if(!s)return{ok:!1,reason:`unsupported alg`};if(typeof a.kid!=`string`||a.kid.length===0)return{ok:!1,reason:`missing kid`};if(typeof o.iss!=`string`||!r.some(e=>DQ(o.iss,e)))return{ok:!1,reason:`issuer mismatch`};let c=o.iss,l=kQ(c),u=n??fetch,d;try{d=await u(l)}catch(e){return{ok:!1,reason:`jwks fetch failed: ${e instanceof Error?e.message:`unknown`}`}}if(!d.ok)return{ok:!1,reason:`jwks fetch http ${d.status}`};let f;try{f=await d.json()}catch{return{ok:!1,reason:`jwks body not json`}}let p=OQ.safeParse(f);if(!p.success)return{ok:!1,reason:`jwks body schema mismatch`};let m=p.data.keys.find(e=>e.kid===a.kid);if(!m)return{ok:!1,reason:`unknown kid`};if(m.alg!==s)return{ok:!1,reason:`alg mismatch between jwk and token header`};let h;try{let e=kO(m,s);h=await crypto.subtle.importKey(`jwk`,m,e,!1,[`verify`])}catch{return{ok:!1,reason:`key import failed`}}let g;try{g=await kU(t,h,s)}catch{return{ok:!1,reason:`signature verification failed`}}let _=g.scope;return(typeof _==`string`?_.split(/\s+/).filter(Boolean):[]).includes(i)?{ok:!0}:{ok:!1,reason:`missing required scope`}}var jQ=f.z.discriminatedUnion(`entity`,[f.z.object({event_id:f.z.string(),tenant_id:f.z.string(),entity:f.z.literal(`custom_domain`),op:f.z.enum([`created`,`updated`,`deleted`]),aggregate_id:f.z.string(),payload:bn,occurred_at:f.z.string()}),f.z.object({event_id:f.z.string(),tenant_id:f.z.string(),entity:f.z.literal(`proxy_route`),op:f.z.enum([`created`,`updated`,`deleted`]),aggregate_id:f.z.string(),payload:Oi,occurred_at:f.z.string()})]),MQ=f.z.object({events:f.z.array(jQ).min(1)});function NQ(e){let t=e.headers.get(`authorization`);return t?/^Bearer\s+(\S+)$/i.exec(t)?.[1]??null:null}function PQ(e){let t=new p.Hono;async function n(t){let n=NQ(t.req.raw);if(!n)return{ok:!1,reason:`missing bearer token`};let r=`https://${t.req.header(`x-forwarded-host`)??new URL(t.req.url).host}/`,i=Array.from(new Set([t.env.ISSUER,r]));return AQ({token:n,jwksFetch:e.jwksFetch,expectedIssuers:i,requiredScope:CQ})}if(t.get(`/hosts/:host`,async t=>{let r=await n(t);if(!r.ok)return console.warn(`[proxy/control-plane] authentication failed: ${r.reason}`),t.text(`Unauthorized`,401,{"WWW-Authenticate":`Bearer`});let i=t.req.param(`host`);if(!i)return t.text(`Missing host`,400);let a=await e.resolveHost(i);return a?t.json(a):t.text(`Unknown host`,404)}),e.applySyncEvents){let r=e.applySyncEvents;t.post(`/sync`,async e=>{let t=await n(e);if(!t.ok)return console.warn(`[proxy/control-plane/sync] authentication failed: ${t.reason}`),e.text(`Unauthorized`,401,{"WWW-Authenticate":`Bearer`});let i;try{i=await e.req.json()}catch{return e.text(`Invalid JSON`,400)}let a=MQ.safeParse(i);if(!a.success)return e.json({error:`Invalid sync request`,details:a.error.issues},400);try{return await r(a.data.events),e.body(null,204)}catch(t){if(typeof t==`object`&&t&&t.retryable===!0)throw t;let n=t instanceof Error?t:Error(String(t));return console.error(`[proxy/control-plane/sync] applySyncEvents failed:`,n),e.json({error:`Failed to apply sync events`,message:n.message,kind:n.name,retryable:!1},500)}})}return t}function FQ(e){let{customDomains:t,proxyRoutes:n}=e;async function r(e){if(e.entity===`custom_domain`){await IQ(t,e);return}if(!n)throw Error(`proxy_route sync event received but no proxyRoutes adapter is configured`);await RQ(n,e)}return async e=>{for(let t of e)await r(t)}}async function IQ(e,t){if(t.op===`deleted`){try{await e.remove(t.tenant_id,t.aggregate_id)}catch(e){if(!BQ(e))throw e}return}let n=LQ(t.payload);if(t.op===`created`)try{await e.create(t.tenant_id,n);return}catch(e){if(!zQ(e))throw e}await e.update(t.tenant_id,t.aggregate_id,t.payload)||await e.create(t.tenant_id,n)}function LQ(e){let{tls_policy:t,...n}=e;return{...n,tls_policy:t===`recommended`?`recommended`:void 0}}async function RQ(e,t){if(t.op===`deleted`){try{await e.remove(t.tenant_id,t.aggregate_id)}catch(e){if(!BQ(e))throw e}return}if(t.op===`created`)try{await e.create(t.tenant_id,t.payload);return}catch(e){if(!zQ(e))throw e}await e.update(t.tenant_id,t.aggregate_id,t.payload)||await e.create(t.tenant_id,t.payload)}function zQ(e){let t=e instanceof Error?e.message:String(e);return t.includes(`UNIQUE constraint failed`)||t.includes(`Duplicate entry`)||t.includes(`PRIMARY KEY`)}function BQ(e){return(e instanceof Error?e.message:String(e)).toLowerCase().includes(`not found`)}var VQ=e=>{let t={origin:`*`,allowMethods:[`GET`,`HEAD`,`PUT`,`POST`,`DELETE`,`PATCH`],allowHeaders:[],exposeHeaders:[],...e},n=(e=>typeof e==`string`?e===`*`?()=>e:t=>e===t?t:null:typeof e==`function`?e:t=>e.includes(t)?t:null)(t.origin),r=(e=>typeof e==`function`?e:Array.isArray(e)?()=>e:()=>[])(t.allowMethods);return async function(e,i){function a(t,n){e.res.headers.set(t,n)}let o=await n(e.req.header(`origin`)||``,e);if(o&&a(`Access-Control-Allow-Origin`,o),t.credentials&&a(`Access-Control-Allow-Credentials`,`true`),t.exposeHeaders?.length&&a(`Access-Control-Expose-Headers`,t.exposeHeaders.join(`,`)),e.req.method===`OPTIONS`){t.origin!==`*`&&a(`Vary`,`Origin`),t.maxAge!=null&&a(`Access-Control-Max-Age`,t.maxAge.toString());let n=await r(e.req.header(`origin`)||``,e);n.length&&a(`Access-Control-Allow-Methods`,n.join(`,`));let i=t.allowHeaders;if(!i?.length){let t=e.req.header(`Access-Control-Request-Headers`);t&&(i=t.split(/\s*,\s*/))}return i?.length&&(a(`Access-Control-Allow-Headers`,i.join(`,`)),e.res.headers.append(`Vary`,`Access-Control-Request-Headers`)),e.res.headers.delete(`Content-Length`),e.res.headers.delete(`Content-Type`),new Response(null,{headers:e.res.headers,status:204,statusText:`No Content`})}await i(),t.origin!==`*`&&e.header(`Vary`,`Origin`,{append:!0})}};async function HQ(e,t){let{client_id:n}=t,{tenant_id:r}=t;if(!r){let t=await e.env.data.clients.getByClientId(n);if(!t)throw new B(403,{message:`Client not found`});r=t.tenant_id}let i=e.var.tenant_id,a=e.var.client_id;e.set(`tenant_id`,r),e.set(`client_id`,n);try{let[t,i]=await Promise.all([e.env.data.tenants.get(r),e.env.data.clients.get(r,n)]);if(!t)throw new B(404,{message:`Tenant not found`});if(!i)throw new B(403,{message:`Client not found`});return{tenant:t,client:i}}catch(t){throw e.set(`tenant_id`,i),e.set(`client_id`,a),t}}function UQ(e,t){let n=e.var.tenant_id;if(!n){e.set(`tenant_id`,t);return}if(n!==t)throw new m(403,{message:`Tenant mismatch`})}var WQ=`try_connection_result`;function GQ(e){if(!e)return{};try{let t=JSON.parse(e);return typeof t==`object`&&t?t:{}}catch{return{}}}async function KQ(e,t,n,r){let i={...GQ(n.state_data),[WQ]:r};await e.env.data.loginSessions.update(t,n.id,{state_data:JSON.stringify(i)});let a=n.authParams.redirect_uri;if(!a)return new Response(JSON.stringify(r,null,2),{status:r.status===`success`?200:400,headers:{"content-type":`application/json`}});let o=new URL(a);return o.searchParams.set(`state`,n.id),new Response(null,{status:302,headers:{location:o.href}})}function qQ(e){return GQ(e.state_data).try_connection_result??null}async function JQ(e,t,n,r,i){if(!r.state)throw new B(400,{message:`State not found`});let a=t.connections.find(e=>e.name===n);if(!a)throw e.set(`client_id`,t.client_id),await I(e,t.tenant.id,{type:P.FAILED_LOGIN,description:`Connection not found`}),new B(403,{message:`Connection Not Found`});let o=i===void 0?await e.env.data.loginSessions.get(t.tenant.id,r.state):i;if(!o){let n=e.get(`ip`),i=e.get(`useragent`),a=e.get(`auth0_client`);o=await e.env.data.loginSessions.create(t.tenant.id,{expires_at:new Date(Date.now()+SD*1e3).toISOString(),authParams:r,csrf_token:To(),ip:n,useragent:i,auth0Client:GV(a)})}let s=await qp(e,a.strategy).getRedirect(e,a,r.username);return await e.env.data.codes.create(t.tenant.id,{login_id:o.id,code_id:s.code,code_type:`oauth2_state`,connection_id:a.id,code_verifier:s.codeVerifier,expires_at:new Date(Date.now()+300*1e3).toISOString()}),new Response(null,{status:302,headers:{location:s.redirectUrl}})}async function YQ(e,{code:t,state:n}){let{env:r}=e,i=await r.data.codes.get(e.var.tenant_id||``,n,`oauth2_state`);if(!i||!i.connection_id)throw new B(403,{message:`State not found`});let a=await r.data.loginSessions.get(e.var.tenant_id||``,i.login_id);if(!a)throw new B(403,{message:`Session not found`});let o=a.authParams.client_id;o&&!mD(o)&&await HQ(e,{client_id:o,tenant_id:e.var.tenant_id||void 0}).catch(()=>{});let s=await bk(r,a.authParams.client_id);e.set(`client_id`,s.client_id),UQ(e,s.tenant.id);let c=jD(s.client_id),l=i.connection_id,u=s.connections.find(e=>e.id===l);if(!u){if(await I(e,s.tenant.id,{type:P.FAILED_LOGIN,description:`Connection not found`}),c)return KQ(e,s.tenant.id,a,{status:`error`,connection_id:l,error:`connection_not_found`,error_description:`Connection not found`,completed_at:new Date().toISOString()});throw new B(403,{message:`Connection not found`})}if(e.set(`connection`,u.name),!a.authParams.redirect_uri)throw await I(e,s.tenant.id,{type:P.FAILED_LOGIN,description:`Redirect URI not defined`}),new B(403,{message:`Redirect URI not defined`});let d=qp(e,u.strategy);if(c){let n=new Date().toISOString();try{let r=d.validateAuthorizationCodeAndGetUserWithRaw?await d.validateAuthorizationCodeAndGetUserWithRaw(e,u,t,i.code_verifier):{userinfo:await d.validateAuthorizationCodeAndGetUser(e,u,t,i.code_verifier),raw:null};return e.set(`user_id`,r.userinfo.sub),KQ(e,s.tenant.id,a,{status:`success`,connection_id:l,connection_name:u.name,strategy:u.strategy,userinfo:r.userinfo,raw:r.raw,completed_at:n})}catch(t){let r=t instanceof Error?t.message:`Strategy validation failed`;return await I(e,s.tenant.id,{type:P.FAILED_LOGIN,description:`Try connection failed: ${r}`}),KQ(e,s.tenant.id,a,{status:`error`,connection_id:l,connection_name:u.name,strategy:u.strategy,error:`strategy_error`,error_description:r,completed_at:n})}}let f=await d.validateAuthorizationCodeAndGetUser(e,u,t,i.code_verifier),{sub:p,...m}=f;e.set(`user_id`,p);let h=f.email?.toLocaleLowerCase()||`${u.name}.${p}@${new URL(e.env.ISSUER).hostname}`;e.set(`username`,h);let g=Jp.has(u.strategy),_=g?`enterprise`:wa.SOCIAL,v=!g;return nre(e,{client:s,loginSession:a,user:await yu(e,{client:s,username:h,provider:Yp(u),connection:u.name,userId:p,profileData:m,isSocial:v,ip:e.var.ip,set_user_root_attributes:u.options.set_user_root_attributes}),authConnection:u.name,authStrategy:{strategy:u.strategy,strategy_type:_}})}function XQ(e,t,n){let r=new URL(`/u/error`,Fa(e.env,e.var.custom_domain));return LM(r,{error:t,error_description:n}),e.redirect(r.toString())}async function ZQ(e,t,n,r,i,a){let o=await e.env.data.codes.get(e.var.tenant_id||``,t,`oauth2_state`);if(!o)return XQ(e,`state_not_found`);let s=await e.env.data.loginSessions.get(e.var.tenant_id,o.login_id);if(!s)return XQ(e,`session_not_found`);let{redirect_uri:c}=s.authParams;if(!c)throw new m(400,{message:`Redirect uri not found`});a||I(e,e.var.tenant_id,{type:P.FAILED_LOGIN,description:`Failed connection login: ${i} ${n}, ${r}`});let l=`/u`,u=`/login/identifier`;if(s.authParams.client_id)try{let t=await bk(e.env,s.authParams.client_id,e.var.tenant_id);if(t?.client_metadata?.universal_login_version===`2`){l=`/u2`;let n=await e.env.data.promptSettings.get(e.var.tenant_id),r=wi.parse(n||{}),i=t.connections.some(e=>e.strategy===F.USERNAME_PASSWORD);r.identifier_first===!1&&i&&(u=`/login`)}}catch{}let d=new URL(`${l}${u}`,Fa(e.env,e.var.custom_domain));return LM(d,{state:s.id,error:n,error_description:r}),e.redirect(d.toString())}function QQ(e){if(e instanceof Error){if(`code`in e&&`description`in e){let t=e;return t.description?`${t.code}: ${t.description}`:t.code}if(`status`in e){let t=e;return`${e.message} (status: ${t.status})`}return e.message}return String(e)}async function $Q(e,t){let{state:n,code:r,error:i,error_description:a,error_code:o}=t;if(i)return ZQ(e,n,i,a,o);if(!r)throw new m(400,{message:`Code is required`});try{let t=await YQ(e,{code:r,state:n});if(!(t instanceof Response))throw new m(500,{message:`Internal server error`});return t}catch(t){if(t instanceof B){if(t.status===403)return XQ(e,`state_not_found`);if(t.status===400){let r=await e.env.data.codes.get(e.var.tenant_id||``,n,`oauth2_state`);if(r&&await e.env.data.loginSessions.get(e.var.tenant_id,r.login_id)){let r=`access_denied`,i=`access_denied`;try{let e=JSON.parse(t.message);r=e.error_description||e.message||r,i=e.error||i}catch{r=t.message||r}return ZQ(e,n,i,r)}}}if(t instanceof m)throw t;let r=QQ(t);return I(e,e.var.tenant_id,{type:P.FAILED_LOGIN,description:`Connection callback failed: ${r}`}),ZQ(e,n,`connection_error`,`Connection failed`,void 0,!0)}}var e$=f.z.object({state:f.z.string(),code:f.z.string().optional(),scope:f.z.string().optional(),hd:f.z.string().optional(),error:f.z.string().optional(),error_description:f.z.string().optional(),error_code:f.z.string().optional(),error_reason:f.z.string().optional()});function t$(e){return new f.OpenAPIHono().openapi((0,f.createRoute)({tags:[`oauth2`],method:`get`,path:`/`,operationId:`${e.operationIdPrefix}Get`,deprecated:e.deprecated,request:{query:e$},responses:{302:{description:`Redirect to the client's redirect uri`},400:{description:`Bad Request`,content:{"application/json":{schema:f.z.object({message:f.z.string()})}}},500:{description:`Internal Server Error`,content:{"application/json":{schema:f.z.object({message:f.z.string()})}}}}}),async e=>$Q(e,e.req.valid(`query`))).openapi((0,f.createRoute)({tags:[`oauth2`],method:`post`,path:`/`,operationId:`${e.operationIdPrefix}Post`,deprecated:e.deprecated,request:{body:{content:{"application/x-www-form-urlencoded":{schema:e$}}}},responses:{302:{description:`Redirect to the client's redirect uri`},400:{description:`Bad Request`,content:{"application/json":{schema:f.z.object({message:f.z.string()})}}},500:{description:`Internal Server Error`,content:{"application/json":{schema:f.z.object({message:f.z.string()})}}}}}),async e=>$Q(e,e.req.valid(`form`)))}var n$=t$({operationIdPrefix:`callback`,deprecated:!0}),r$=t$({operationIdPrefix:`loginCallback`});function i$(e,t=[],n={}){try{let r=new URL(e);return t.some(e=>{try{return a$(r,new URL(e),n)}catch{return!1}})}catch{return!1}}function a$(e,t,n={}){if(e.protocol!==t.protocol)return!1;if(n.allowPathWildcards&&t.pathname.includes(`*`)){let n=t.pathname.replace(/\*/g,`.*`).replace(/\//g,`\\/`);if(!RegExp(`^${n}$`).test(e.pathname))return!1}else if(e.pathname!==t.pathname)return!1;if(t.search){for(let[n,r]of t.searchParams)if(e.searchParams.get(n)!==r)return!1}if(n.allowSubDomainWildcards&&t.hostname.startsWith(`*.`)&&t.hostname.split(`.`).length>2&&[`http:`,`https:`].includes(t.protocol)){let n=t.hostname.split(`.`).slice(1).join(`.`);return e.hostname===n||e.hostname.endsWith(`.`+n)}return e.hostname===t.hostname}var o$=L({route:(0,f.createRoute)({tags:[`oauth2`],method:`get`,path:`/`,request:{query:f.z.object({client_id:f.z.string(),returnTo:f.z.string().optional()}),header:f.z.object({cookie:f.z.string().optional()})},responses:{302:{description:`Log the user out`}}}),handler:async e=>{let{client_id:t,returnTo:n}=e.req.valid(`query`);mD(t)||await HQ(e,{client_id:t}).catch(()=>{});let r;try{r=await bk(e.env,t)}catch{return e.text(`OK`)}let i;try{i=await bk(e.env,`DEFAULT_CLIENT`)}catch{}e.set(`client_id`,t),UQ(e,r.tenant.id);let a=n||e.req.header(`referer`);if(!a)return e.text(`OK`);if(!i$(a,[...r.allowed_logout_urls||[],...i?.allowed_logout_urls||[]],{allowPathWildcards:!0,allowSubDomainWildcards:!0}))throw I(e,r.tenant.id,{type:P.FAILED_LOGOUT,description:`Invalid redirect uri`}),new m(400,{message:`Invalid redirect uri`});let o=e.req.header(`cookie`);if(o){let t=zO(r.tenant.id,o);if(t){let n=await e.env.data.sessions.get(r.tenant.id,t);if(n){let i=await e.env.data.users.get(r.tenant.id,n.user_id);i&&(e.set(`user_id`,i.user_id),e.set(`connection`,i.connection));let a=new Date().toISOString(),{revokedCount:o,committedEventId:s}=await e.env.data.transaction(async i=>{let o=n.login_session_id?await i.refreshTokens.revokeByLoginSession(r.tenant.id,n.login_session_id,a):0;return await i.sessions.update(r.tenant.id,t,{revoked_at:a}),{revokedCount:o,committedEventId:o>0?await $a(e,i,r.tenant.id,{type:P.SUCCESS_REVOCATION,description:`Revoked ${o} refresh token(s)`}):void 0}});if(s){let t=e.var.outboxEventPromises??[];t.push(Promise.resolve(s)),e.set(`outboxEventPromises`,t)}else o>0&&I(e,r.tenant.id,{type:P.SUCCESS_REVOCATION,description:`Revoked ${o} refresh token(s)`})}}}I(e,r.tenant.id,{type:P.SUCCESS_LOGOUT,description:`User successfully logged out`});let s=new Headers;return BO(r.tenant.id,e.var.host).forEach(e=>{s.append(`set-cookie`,e)}),s.set(`location`,a),new Response(`Redirecting`,{status:302,headers:s})}}),s$=new f.OpenAPIHono().openapiRoutes([o$]),c$=f.z.object({id_token_hint:f.z.string().optional(),client_id:f.z.string().optional(),post_logout_redirect_uri:f.z.string().optional(),state:f.z.string().optional(),logout_hint:f.z.string().optional(),ui_locales:f.z.string().optional()}),l$=`<!DOCTYPE html>
|
|
2939
|
+
`},bV={reset_email:`{{ password_reset_title }}`,reset_email_by_code:`{{ password_reset_title }}`,verify_email:`{{ welcome_to_your_account }}`,verify_email_by_code:`{{ code_email_subject }}`,welcome_email:`{{ welcome_to_your_account }}`,user_invitation:`{{ invitation_email_subject }}`,blocked_account:`{{ blocked_account_title }}`,stolen_credentials:`{{ stolen_credentials_title }}`,enrollment_email:`{{ enrollment_email_title }}`,mfa_oob_code:`{{ mfa_oob_code_title }}`,change_password:`{{ password_reset_title }}`,password_reset:`{{ password_reset_notification_title }}`};function xV(e){let t=yV[e],n=bV[e];return!t||!n?null:{subject:n,body:t}}var SV=new vV({cache:!0,strictVariables:!1,strictFilters:!1});async function CV(e,t,n,r){let i=await e.env.data.emailTemplates.get(e.var.tenant_id,t);if(i&&i.enabled===!1)return{kind:`disabled`};let a=i?{subject:i.subject,body:i.body}:xV(t);if(!a)return{kind:`none`};let[o,s]=await Promise.all([SV.parseAndRender(a.subject,n),SV.parseAndRender(a.body,n)]);return{kind:`rendered`,email:{subject:o,html:s,from:i?.from||r}}}var wV=f.z.object({api_key:f.z.string().min(1),domain:f.z.string().min(4),region:f.z.enum([`eu`,`us`]).nullish()}),TV=class{options;constructor(e={}){this.options=e}async send(e){let t=this.options.fetchImpl??globalThis.fetch,n=wV.parse(e.emailProvider.credentials),r=`https://${n.region===`eu`?`api.eu.mailgun.net`:`api.mailgun.net`}/v3/${encodeURIComponent(n.domain)}/messages`,i=new URLSearchParams;i.append(`from`,e.from),i.append(`to`,e.to),i.append(`subject`,e.subject),i.append(`h:X-Mailgun-Variables`,JSON.stringify(e.data)),e.html?i.append(`html`,e.html):i.append(`template`,e.template),e.text&&i.append(`text`,e.text);let a=await t(r,{method:`POST`,headers:{Authorization:`Basic ${btoa(`api:${n.api_key}`)}`,"Content-Type":`application/x-www-form-urlencoded`},body:i.toString()});if(!a.ok){let e=await a.text().catch(()=>``);throw Error(`Mailgun send failed: ${a.status} ${a.statusText} ${e.slice(0,500)}`)}}},EV=f.z.object({api_key:f.z.string().min(1)}),DV=class{options;constructor(e={}){this.options=e}async send(e){let t=this.options.fetchImpl??globalThis.fetch,n=EV.parse(e.emailProvider.credentials),r={from:e.from,to:e.to,subject:e.subject};e.html&&(r.html=e.html),e.text&&(r.text=e.text);let i=await t(`https://api.resend.com/emails`,{method:`POST`,headers:{Authorization:`Bearer ${n.api_key}`,"Content-Type":`application/json`},body:JSON.stringify(r)});if(!i.ok){let e=await i.text().catch(()=>``);throw Error(`Resend send failed: ${i.status} ${i.statusText} ${e.slice(0,500)}`)}}},OV=f.z.object({api_key:f.z.string().min(1)}),kV=class{options;constructor(e={}){this.options=e}async send(e){let t=this.options.fetchImpl??globalThis.fetch,n={"X-Postmark-Server-Token":OV.parse(e.emailProvider.credentials).api_key,Accept:`application/json`,"Content-Type":`application/json`},r,i;e.html?(r=`https://api.postmarkapp.com/email`,i={From:e.from,To:e.to,Subject:e.subject,HtmlBody:e.html},e.text&&(i.TextBody=e.text)):(r=`https://api.postmarkapp.com/email/withTemplate`,i={From:e.from,To:e.to,TemplateAlias:e.template,TemplateModel:e.data});let a=await t(r,{method:`POST`,headers:n,body:JSON.stringify(i)});if(!a.ok){let e=await a.text().catch(()=>``);throw Error(`Postmark send failed: ${a.status} ${a.statusText} ${e.slice(0,500)}`)}}};function AV(e,t){return async n=>(await iN(e,t,n,{allowControlPlaneFallback:!0})).access_token}var jV={mailgun:()=>new TV,resend:()=>new DV,postmark:()=>new kV};async function MV(e,t){let n=await e.env.data.emailProviders.get(e.var.tenant_id);if(!n)throw new m(500,{message:`Email provider not found`});let r=jV[n.name],i=r?r():e.env.data.emailService;if(!i)throw new m(500,{message:`Email service not configured`});try{await i.send({emailProvider:n,...t,from:t.from||n.default_from_address||`login@${e.env.ISSUER}`,createServiceToken:AV(e,e.var.tenant_id)})}catch(r){let i=r instanceof Error?r.message:String(r);console.error(`[sendEmail] tenant=${e.var.tenant_id} provider=${n.name} template=${t.template} to=${t.to}: ${i}`,r);try{await I(e,e.var.tenant_id,{type:P.FAILED_SENDING_NOTIFICATION,description:`email send failed via ${n.name}: ${i}`.slice(0,500),details:{provider:n.name,template:t.template,to:t.to,error:i},waitForCompletion:!0})}catch(e){console.error(`[sendEmail] failed to record log entry`,e)}throw r}}async function NV(e,t){if(!e.var.client_id)throw new m(500,{message:`Client not found`});let n=await bk(e.env,e.var.client_id),r=n.connections.find(e=>e.strategy===F.SMS);if(!r)throw new m(500,{message:`SMS provider not found`});let i=e.env.data.smsService;if(!i)throw new m(500,{message:`SMS service not configured`});try{await i.send({options:r.options,to:t.to,from:t.from,text:t.text,template:`auth-code`,data:{code:t.code,tenantName:n.tenant.friendly_name,tenantId:n.tenant.id},createServiceToken:AV(e,e.var.tenant_id)})}catch(n){let i=n instanceof Error?n.message:String(n);console.error(`[sendSms] tenant=${e.var.tenant_id} connection=${r.name} to=${t.to}: ${i}`,n);try{await I(e,e.var.tenant_id,{type:P.FAILED_SENDING_NOTIFICATION,description:`sms send failed via ${r.name}: ${i}`.slice(0,500),details:{connection:r.name,to:t.to,error:i},waitForCompletion:!0})}catch(e){console.error(`[sendSms] failed to record log entry`,e)}throw n}}async function PV(e,t){let n=await e.env.data.tenants.get(e.var.tenant_id);if(!n)throw new m(500,{message:`Tenant not found`});let r=await e.env.data.branding.get(e.var.tenant_id);return{tenant:n,logo:r?.logo_url||``,buttonColor:r?.colors?.primary||`#7d68f4`,options:{vendorName:n.friendly_name,lng:t||`en`}}}async function FV(e,t){let n=(await e.env.data.emailProviders.get(e.var.tenant_id))?.default_from_address||`login@${e.env.ISSUER}`,r={vendorName:t.tenant.friendly_name,lng:t.language||`en`},i={...t.data,tenant:{id:t.tenant.id,friendly_name:t.tenant.friendly_name,support_url:t.tenant.support_url||``},branding:{logo:t.branding.logo,primary_color:t.branding.primary_color,button_text_color:`#ffffff`,button_border_radius:`4px`},signature:{enabled:!0},footer:{address:``},kind_regards:M(`kind_regards`,r),team_signature:M(`team_signature`,r),link_email_fallback_intro:M(`link_email_fallback_intro`,r),url:t.url,code:t.code},a=await CV(e,t.templateName,i,n);if(a.kind===`disabled`)return!1;let o=a.kind===`rendered`?a.email.subject:t.fallbackSubject,s=a.kind===`rendered`?a.email.html:t.fallbackHtml,c=a.kind===`rendered`?a.email.from:n;return await MV(e,{to:t.to,subject:o,html:s,template:t.legacyTemplate,data:t.data,from:c}),!0}async function IV(e,t,n,r,i,a){let{tenant:o,logo:s,buttonColor:c,options:l}=await PV(e,i),u=`${Ia(e.env,void 0,a)}reset-password?state=${r}&code=${n}`,d={tenantId:o.id,language:i||`en`,vendorName:o.friendly_name,logo:s,passwordResetUrl:u,supportUrl:o.support_url||`https://support.sesamy.com`,buttonColor:c,password_reset_title:M(`password_reset_title`,l),passwordResetTitle:M(`password_reset_title`,l),reset_password_email_click_to_reset:M(`reset_password_email_click_to_reset`,l),resetPasswordEmailClickToReset:M(`reset_password_email_click_to_reset`,l),reset_password_email_reset:M(`reset_password_email_reset`,l),resetPasswordEmailReset:M(`reset_password_email_reset`,l),support_info:M(`support_info`,l),supportInfo:M(`support_info`,l),contact_us:M(`contact_us`,l),contactUs:M(`contact_us`,l),copyright:M(`copyright`,l),tenantName:o.friendly_name};try{await FV(e,{to:t,templateName:`reset_email`,legacyTemplate:`auth-password-reset`,fallbackSubject:M(`reset_password_title`,l),fallbackHtml:`Click here to reset your password: ${u}`,tenant:o,branding:{logo:s,primary_color:c},url:u,language:i,data:d})}catch(n){try{await I(e,o.id,{type:P.FAILED_CHANGE_PASSWORD_REQUEST,description:t})}catch(e){console.error(`[sendResetPassword] failed to record log entry`,e)}throw n}I(e,o.id,{type:P.SUCCESS_CHANGE_PASSWORD_REQUEST,description:t})}async function LV(e,t,n,r){let{tenant:i,logo:a,buttonColor:o,options:s}=await PV(e,r),c={tenantId:i.id,language:r||`en`,code:n,vendorName:i.friendly_name,logo:a,supportUrl:i.support_url||`https://support.sesamy.com`,buttonColor:o,welcomeToYourAccount:M(`password_reset_title`,s),password_reset_title:M(`password_reset_title`,s),reset_password_email_enter_code:M(`reset_password_email_enter_code`,s),resetPasswordEmailEnterCode:M(`reset_password_email_enter_code`,s),linkEmailLogin:M(`reset_password_email_reset`,s),reset_password_email_reset:M(`reset_password_email_reset`,s),linkEmailOrEnterCode:M(`link_email_or_enter_code`,{...s,code:n}),codeValid30Mins:M(`code_valid_30_minutes`,s),code_valid_30_minutes:M(`code_valid_30_minutes`,s),support_info:M(`support_info`,s),supportInfo:M(`support_info`,s),contact_us:M(`contact_us`,s),contactUs:M(`contact_us`,s),copyright:M(`copyright`,s)};try{await FV(e,{to:t,templateName:`reset_email_by_code`,legacyTemplate:`auth-code`,fallbackSubject:M(`reset_password_title`,s),fallbackHtml:`Your password reset code is: ${n}`,tenant:i,branding:{logo:a,primary_color:o},code:n,language:r,data:c})}catch(n){try{await I(e,i.id,{type:P.FAILED_CHANGE_PASSWORD_REQUEST,description:t})}catch(e){console.error(`[sendResetPasswordCode] failed to record log entry`,e)}throw n}I(e,i.id,{type:P.SUCCESS_CHANGE_PASSWORD_REQUEST,description:t})}async function RV(e,{to:t,code:n,language:r}){let i=await e.env.data.tenants.get(e.var.tenant_id);if(!i)throw new m(500,{message:`Tenant not found`});let{connectionType:a}=iF(t),o=await e.env.data.branding.get(e.var.tenant_id),s=o?.logo_url||``,c=o?.colors?.primary||`#7d68f4`,l=new URL(Ia(e.env)),u={vendorName:i.friendly_name,vendorId:i.id,loginDomain:l.hostname,code:n,lng:r||`en`};if(a===`email`){let a={tenantId:i.id,language:r||`en`,code:n,vendorName:i.friendly_name,logo:s,supportUrl:i.support_url||``,buttonColor:c,welcomeToYourAccount:M(`welcome_to_your_account`,u),welcome_to_your_account:M(`welcome_to_your_account`,u),linkEmailClickToLogin:M(`link_email_click_to_login`,u),link_email_click_to_login:M(`link_email_click_to_login`,u),linkEmailLogin:M(`link_email_login`,u),link_email_login:M(`link_email_login`,u),linkEmailOrEnterCode:M(`link_email_or_enter_code`,u),link_email_or_enter_code:M(`link_email_or_enter_code`,u),codeValid30Mins:M(`code_valid_30_minutes`,u),code_valid_30_minutes:M(`code_valid_30_minutes`,u),code_email_subject:M(`code_email_subject`,u),supportInfo:M(`support_info`,u),support_info:M(`support_info`,u),contactUs:M(`contact_us`,u),contact_us:M(`contact_us`,u),copyright:M(`copyright`,u)};await FV(e,{to:t,templateName:`verify_email_by_code`,legacyTemplate:`auth-code`,fallbackSubject:M(`code_email_subject`,u),fallbackHtml:`Click here to validate your email: ${Ia(e.env)}validate-email`,tenant:i,branding:{logo:s,primary_color:c},code:n,language:r,data:a})}else a===`sms`&&await NV(e,{to:t,text:M(`sms_code_text`,u),code:n,from:i.friendly_name});I(e,i.id,{type:P.CODE_LINK_SENT,description:t})}async function zV(e,{to:t,code:n,authParams:r,language:i}){let a=await e.env.data.tenants.get(e.var.tenant_id);if(!a)throw new m(500,{message:`Tenant not found`});if(!r.redirect_uri)throw new m(400,{message:`redirect_uri is required`});let{connectionType:o}=iF(t),s=await e.env.data.branding.get(e.var.tenant_id),c=s?.logo_url||``,l=s?.colors?.primary||``,u=new URL(La(e.env));u.pathname=`passwordless/verify_redirect`,u.searchParams.set(`verification_code`,n),u.searchParams.set(`connection`,o),u.searchParams.set(`client_id`,r.client_id),u.searchParams.set(`redirect_uri`,r.redirect_uri),u.searchParams.set(`email`,t),r.response_type&&u.searchParams.set(`response_type`,r.response_type),r.scope&&u.searchParams.set(`scope`,r.scope),r.state&&u.searchParams.set(`state`,r.state),r.nonce&&u.searchParams.set(`nonce`,r.nonce),r.code_challenge&&u.searchParams.set(`code_challenge`,r.code_challenge),r.code_challenge_method&&u.searchParams.set(`code_challenge_method`,r.code_challenge_method),r.audience&&u.searchParams.set(`audience`,r.audience);let d={vendorName:a.friendly_name,code:n,lng:i||`en`};if(o===`email`){let r={tenantId:a.id,language:i||`en`,code:n,vendorName:a.friendly_name,logo:c,supportUrl:a.support_url||``,magicLink:u.toString(),buttonColor:l,welcomeToYourAccount:M(`welcome_to_your_account`,d),welcome_to_your_account:M(`welcome_to_your_account`,d),linkEmailClickToLogin:M(`link_email_click_to_login`,d),link_email_click_to_login:M(`link_email_click_to_login`,d),linkEmailLogin:M(`link_email_login`,d),link_email_login:M(`link_email_login`,d),linkEmailOrEnterCode:M(`link_email_or_enter_code`,d),link_email_or_enter_code:M(`link_email_or_enter_code`,d),codeValid30Mins:M(`code_valid_30_minutes`,d),code_valid_30_minutes:M(`code_valid_30_minutes`,d),code_email_subject:M(`code_email_subject`,d),supportInfo:M(`support_info`,d),support_info:M(`support_info`,d),contactUs:M(`contact_us`,d),contact_us:M(`contact_us`,d),copyright:M(`copyright`,d)};await FV(e,{to:t,templateName:`verify_email`,legacyTemplate:`auth-link`,fallbackSubject:M(`code_email_subject`,d),fallbackHtml:`Click here to validate your email: ${u.toString()}`,tenant:a,branding:{logo:c,primary_color:l},url:u.toString(),code:n,language:i,data:r})}else if(o===`sms`)await NV(e,{to:t,text:`${M(`link_sms_login`,d)}: ${u.toString()}`,code:n,from:a.friendly_name});else throw new m(400,{message:`Only email and SMS connections are supported for magic links`});I(e,a.id,{type:P.CODE_LINK_SENT,description:t})}async function BV(e,t,n){let r=await e.env.data.tenants.get(e.var.tenant_id);if(!r)throw new m(500,{message:`Tenant not found`});if(!t.email)throw new m(400,{message:`User has no email`});let i=await e.env.data.branding.get(e.var.tenant_id),a=i?.logo_url||``,o=i?.colors?.primary||`#7d68f4`,s={vendorName:r.friendly_name,lng:n||`en`},c=`${Ia(e.env)}validate-email`,l={tenantId:r.id,language:n||`en`,vendorName:r.friendly_name,logo:a,emailValidationUrl:c,supportUrl:r.support_url||`https://support.sesamy.com`,buttonColor:o,welcomeToYourAccount:M(`welcome_to_your_account`,s),welcome_to_your_account:M(`welcome_to_your_account`,s),verifyEmailVerify:M(`verify_email_verify`,s),verify_email_verify:M(`verify_email_verify`,s),link_email_click_to_login:M(`verify_email_verify`,s),link_email_login:M(`verify_email_verify`,s),supportInfo:M(`support_info`,s),support_info:M(`support_info`,s),contactUs:M(`contact_us`,s),contact_us:M(`contact_us`,s),copyright:M(`copyright`,s)};try{await FV(e,{to:t.email,templateName:`verify_email`,legacyTemplate:`auth-verify-email`,fallbackSubject:M(`welcome_to_your_account`,s),fallbackHtml:`Click here to validate your email: ${c}`,tenant:r,branding:{logo:a,primary_color:o},url:c,language:n,data:l})}catch(n){try{await I(e,r.id,{type:P.FAILED_VERIFICATION_EMAIL_REQUEST,description:t.email,userId:t.user_id})}catch(e){console.error(`[sendValidateEmailAddress] failed to record log entry`,e)}throw n}I(e,r.id,{type:P.SUCCESS_VERIFICATION_EMAIL_REQUEST,description:t.email,userId:t.user_id})}async function VV(e,t,n,r,i){let a=await e.env.data.tenants.get(e.var.tenant_id);if(!a)throw new m(500,{message:`Tenant not found`});let o=await e.env.data.branding.get(e.var.tenant_id),s=o?.logo_url||``,c=o?.colors?.primary||`#7d68f4`,l={vendorName:a.friendly_name,lng:i||`en`},u=`${Ia(e.env)}signup?state=${r}&code=${n}`,d={tenantId:a.id,language:i||`en`,vendorName:a.friendly_name,logo:s,signupUrl:u,setPassword:M(`set_password`,l),registerPasswordAccount:M(`register_password_account`,l),clickToSignUpDescription:M(`click_to_sign_up_description`,l),supportUrl:a.support_url||`https://support.sesamy.com`,buttonColor:c,welcomeToYourAccount:M(`welcome_to_your_account`,l),welcome_to_your_account:M(`welcome_to_your_account`,l),verifyEmailVerify:M(`verify_email_verify`,l),verify_email_verify:M(`verify_email_verify`,l),link_email_click_to_login:M(`click_to_sign_up_description`,l),link_email_login:M(`set_password`,l),supportInfo:M(`support_info`,l),support_info:M(`support_info`,l),contactUs:M(`contact_us`,l),contact_us:M(`contact_us`,l),copyright:M(`copyright`,l)};await FV(e,{to:t,templateName:`verify_email`,legacyTemplate:`auth-pre-signup-verification`,fallbackSubject:M(`register_password_account`,l),fallbackHtml:`Click here to register: ${u}`,tenant:a,branding:{logo:s,primary_color:c},url:u,language:i,data:d})}async function HV(e,{to:t,invitationUrl:n,inviterName:r,organizationName:i,ttlSec:a,language:o}){let{tenant:s,logo:c,buttonColor:l,options:u}=await PV(e,o),d=String(Math.max(1,Math.round(a/86400))),f=r||s.friendly_name,p={...u,inviterName:f,organizationName:i,ttlDays:d},m={tenantId:s.id,language:o||`en`,vendorName:s.friendly_name,organizationName:i,inviterName:f,logo:c,invitationUrl:n,supportUrl:s.support_url||``,buttonColor:l,ttlDays:d,invitation_email_subject:M(`invitation_email_subject`,p),invitationEmailSubject:M(`invitation_email_subject`,p),invitation_email_intro:M(`invitation_email_intro`,p),invitationEmailIntro:M(`invitation_email_intro`,p),invitation_email_click_to_accept:M(`invitation_email_click_to_accept`,p),invitationEmailClickToAccept:M(`invitation_email_click_to_accept`,p),invitation_email_accept_button:M(`invitation_email_accept_button`,p),invitationEmailAcceptButton:M(`invitation_email_accept_button`,p),invitation_expires_in:M(`invitation_expires_in`,p),invitationExpiresIn:M(`invitation_expires_in`,p),supportInfo:M(`support_info`,p),support_info:M(`support_info`,p),contactUs:M(`contact_us`,p),contact_us:M(`contact_us`,p),copyright:M(`copyright`,p)};await FV(e,{to:t,templateName:`user_invitation`,legacyTemplate:`auth-invitation`,fallbackSubject:M(`invitation_email_subject`,p),fallbackHtml:`You've been invited to ${i}. Accept your invitation: ${n}`,tenant:s,branding:{logo:c,primary_color:l},url:n,language:o,data:m})}var UV=new vV({cache:!0,strictVariables:!1,strictFilters:!1});async function WV(e,t){let{tenant:n,logo:r,buttonColor:i,options:a}=await PV(e,t.language),o=(await e.env.data.emailProviders.get(e.var.tenant_id))?.default_from_address||`login@${e.env.ISSUER}`,s=t.body,c=t.subject;if(!s||!c){let n=await e.env.data.emailTemplates.get(e.var.tenant_id,t.templateName)??xV(t.templateName);if(!n)throw new m(404,{message:`No template body/subject available for ${t.templateName}`});s||=n.body,c||=n.subject}let l=`123456`,u=`${La(e.env)}u/preview?code=${l}`,d={tenant:{id:n.id,friendly_name:n.friendly_name,support_url:n.support_url||``},branding:{logo:r,primary_color:i,button_text_color:`#ffffff`,button_border_radius:`4px`},signature:{enabled:!0},footer:{address:``},url:u,code:l,kind_regards:M(`kind_regards`,a),team_signature:M(`team_signature`,a),link_email_fallback_intro:M(`link_email_fallback_intro`,a),password_reset_title:M(`password_reset_title`,a),reset_password_email_click_to_reset:M(`reset_password_email_click_to_reset`,a),reset_password_email_reset:M(`reset_password_email_reset`,a),welcome_to_your_account:M(`welcome_to_your_account`,a),code_email_subject:M(`code_email_subject`,a),code_valid_30_minutes:M(`code_valid_30_minutes`,a),link_email_click_to_login:M(`link_email_click_to_login`,a),link_email_login:M(`link_email_login`,a),link_email_or_enter_code:M(`link_email_or_enter_code`,{...a,code:l}),invitation_email_subject:M(`invitation_email_subject`,{...a,inviterName:`Test User`,organizationName:`Test Org`}),invitation_email_intro:M(`invitation_email_intro`,{...a,inviterName:`Test User`,organizationName:`Test Org`}),invitation_email_click_to_accept:M(`invitation_email_click_to_accept`,a),invitation_email_accept_button:M(`invitation_email_accept_button`,a),invitation_expires_in:M(`invitation_expires_in`,{...a,ttlDays:7}),support_info:M(`support_info`,a),contact_us:M(`contact_us`,a),copyright:M(`copyright`,a)},[f,p]=await Promise.all([UV.parseAndRender(c,d),UV.parseAndRender(s,d)]);await MV(e,{to:t.to,subject:`[TEST] ${f}`,html:p,template:t.templateName,data:{},from:t.from||o})}function GV(e){if(e)return`${e.name}/${e.version}${e.env?.node?` (env: node/${e.env.node})`:``}`}function KV(){let e=new Uint8Array(6);crypto.getRandomValues(e);let t=``;for(let n=0;n<6;n+=1)t+=(e[n]%10).toString();return t}async function qV(e,t){let n=[];for(let r=0;;r++){let{connections:i}=await e.env.data.connections.list(t,{page:r,per_page:100,include_totals:!1});if(n.push(...i),i.length<100)break}return n}async function JV(e,t,n){return(await qV(e,t)).find(e=>e.name===n)??null}var YV=`http://auth0.com/oauth/grant-type/password-realm`,XV=`openid profile email`,ZV=1e4,QV=class extends Error{status;code;description;constructor(e,t,n){super(n??t),this.name=`Auth0UpstreamError`,this.status=e,this.code=t,this.description=n}};function $V(e){return typeof e==`object`&&!!e}function eH(e){return typeof e==`string`?e:void 0}async function tH(e){let t=await e.text();if(!t)return null;try{return JSON.parse(t)}catch{throw new QV(e.status,`malformed_response`,`Upstream returned non-JSON body`)}}function nH(e){if(!$V(e))throw new QV(502,`malformed_response`,`Upstream token response was not an object`);let t=eH(e.access_token);if(!t)throw new QV(502,`malformed_response`,`Upstream token response missing access_token`);return{access_token:t,id_token:eH(e.id_token),refresh_token:eH(e.refresh_token),expires_in:typeof e.expires_in==`number`?e.expires_in:void 0,token_type:eH(e.token_type),scope:eH(e.scope)}}function rH(e,t){let n=$V(t)?eH(t.error):void 0,r=$V(t)?eH(t.error_description):void 0;return new QV(e,n??`invalid_grant`,r??`Upstream returned HTTP ${e}`)}async function iH(e){let t=new URLSearchParams;t.set(`grant_type`,YV),t.set(`client_id`,e.clientId),t.set(`client_secret`,e.clientSecret),t.set(`realm`,e.realm),t.set(`username`,e.username),t.set(`password`,e.password),t.set(`scope`,e.scope??XV),e.audience&&t.set(`audience`,e.audience);let n;try{n=await fetch(e.tokenEndpoint,{method:`POST`,headers:{"content-type":`application/x-www-form-urlencoded`,accept:`application/json`},body:t.toString()})}catch(e){throw new QV(0,`network_error`,e instanceof Error?e.message:`fetch failed`)}let r=await tH(n);if(!n.ok)throw rH(n.status,r);return nH(r)}async function aH(e){let t=new URLSearchParams;t.set(`grant_type`,`refresh_token`),t.set(`client_id`,e.clientId),t.set(`client_secret`,e.clientSecret),t.set(`refresh_token`,e.refreshToken),e.scope&&t.set(`scope`,e.scope),e.audience&&t.set(`audience`,e.audience);let n=new AbortController,r=setTimeout(()=>n.abort(),ZV),i;try{i=await fetch(e.tokenEndpoint,{method:`POST`,headers:{"content-type":`application/x-www-form-urlencoded`,accept:`application/json`},body:t.toString(),signal:n.signal})}catch(e){throw n.signal.aborted?new QV(0,`network_error`,`request_timed_out`):new QV(0,`network_error`,e instanceof Error?e.message:`fetch failed`)}finally{clearTimeout(r)}let a=await tH(i);if(!i.ok)throw rH(i.status,a);return nH(a)}async function oH(e,t){let n;try{n=await fetch(e,{method:`GET`,headers:{authorization:`Bearer ${t}`,accept:`application/json`}})}catch(e){throw new QV(0,`network_error`,e instanceof Error?e.message:`fetch failed`)}let r=await tH(n);if(!n.ok)throw rH(n.status,r);if(!$V(r))throw new QV(502,`malformed_response`,`Upstream userinfo response was not an object`);let i=eH(r.sub);if(!i)throw new QV(502,`malformed_response`,`Upstream userinfo response missing sub`);return{...r,sub:i}}function sH(e){return typeof e==`string`?e:void 0}function cH(e){let t=e.options&&typeof e.options==`object`?e.options.configuration:void 0;if(!t||typeof t!=`object`)return null;let n=t,r=sH(n.token_endpoint),i=sH(n.userinfo_endpoint),a=sH(n.client_id),o=sH(n.client_secret),s=sH(n.realm);return!r||!i||!a||!o?null:{tokenEndpoint:r,userinfoEndpoint:i,clientId:a,clientSecret:o,realm:s}}async function lH(e){let{ctx:t,client:n,username:r,password:i,dbConnection:a,existingUser:o}=e;if(a.options?.import_mode!==!0)return null;let s=cH(a);if(!s)return null;let c;try{c=await iH({tokenEndpoint:s.tokenEndpoint,clientId:s.clientId,clientSecret:s.clientSecret,realm:s.realm??a.name,username:r,password:i})}catch(e){if(e instanceof QV)return console.warn(`Auth0 upstream ROPG failed for tenant=${n.tenant.id} realm=${a.name}: ${e.code} ${e.description??``}`),null;throw e}let l=t.env.data,u=o;if(!u){let e;try{e=await oH(s.userinfoEndpoint,c.access_token)}catch(e){if(e instanceof QV)return console.warn(`Auth0 upstream userinfo failed for tenant=${n.tenant.id}: ${e.code} ${e.description??``}`),null;throw e}let i=r.includes(`@`),o=typeof e.email==`string`?e.email:void 0,d=await em(t.env,n.tenant.id),f=`${d}|${uu()}`;t.set(`is_lazy_migration`,!0);try{u=await l.users.create(n.tenant.id,{user_id:f,email:o??(i?r:void 0),username:i?void 0:r,name:typeof e.name==`string`?e.name:r,given_name:typeof e.given_name==`string`?e.given_name:void 0,family_name:typeof e.family_name==`string`?e.family_name:void 0,nickname:typeof e.nickname==`string`?e.nickname:void 0,picture:typeof e.picture==`string`?e.picture:void 0,email_verified:e.email_verified===!0,provider:d,connection:a.name,is_social:!1,last_ip:t.var.ip??``,last_login:new Date().toISOString(),profileData:JSON.stringify(e)})}finally{t.set(`is_lazy_migration`,!1)}}let{hash:d,algorithm:f}=await cd(i),p=await l.passwords.get(n.tenant.id,u.user_id);return p&&await l.passwords.update(n.tenant.id,{id:p.id,user_id:u.user_id,password:p.password,algorithm:p.algorithm,is_current:!1}),await l.passwords.create(n.tenant.id,{user_id:u.user_id,password:d,algorithm:f,is_current:!0}),I(t,n.tenant.id,{type:P.SUCCESS_PASSWORD_MIGRATION,description:`Imported password from upstream for ${u.user_id}`,userId:u.user_id,connection:a.name}),u}async function uH(e,t,n){let r=n.app_metadata||{},i=r.failed_logins||[],a=Date.now();r.failed_logins=[...i.filter(e=>a-e<1e3*60*5),a],await e.users.update(t,n.user_id,{app_metadata:r})}function dH(e){return typeof e==`object`&&!!e&&`allowed`in e&&typeof e.allowed==`boolean`}function fH(e){let t=(e.app_metadata||{}).failed_logins||[],n=Date.now();return t.filter(e=>n-e<1e3*60*5)}async function pH(e,t,n,r,i=F.USERNAME_PASSWORD){let{data:a}=e.env,{username:o}=n;if(e.set(`username`,o),!o)throw new B(400,{message:`Username is required`});let s=t.tenant.attack_protection?.suspicious_ip_throttling,c=e.var.ip,l=c?s?.allowlist?.includes(c):!1;if(a.rateLimit&&s?.enabled&&c&&!l){let n={allowed:!0};try{let e=await a.rateLimit.consume(`pre-login`,`${t.tenant.id}:${c}`);dH(e)&&(n=e)}catch(e){console.error(`Pre-login rate limit consume failed:`,e)}if(!n.allowed)throw I(e,t.tenant.id,{type:P.FAILED_LOGIN,description:`Rate limit exceeded for pre-login`}),new hN(429,{message:`Too many requests`,code:`TOO_MANY_REQUESTS`})}let u=await nm({env:e.env,tenant_id:t.tenant.id,username:o});if(!u){let r=await JV(e,t.tenant.id,i);if(!r&&i===F.USERNAME_PASSWORD){let e=t.connections.filter(e=>e.strategy===F.USERNAME_PASSWORD);if(e.length>1)throw new B(400,{message:`Multiple username-password connections configured for this client; specify an explicit realm.`});r=e[0]??null}if(r?.options?.import_mode===!0){let i=await lH({ctx:e,client:t,username:o,password:n.password,dbConnection:r,existingUser:null});i&&(u=i)}if(!u)throw I(e,t.tenant.id,{type:P.FAILED_LOGIN_INCORRECT_PASSWORD,description:`Invalid user`}),new hN(403,{message:`User not found`,code:`USER_NOT_FOUND`})}let d=u.linked_to?await a.users.get(t.tenant.id,u.linked_to):u;if(!d)throw new hN(403,{message:`User not found`,code:`USER_NOT_FOUND`});if(e.set(`connection`,u.connection),e.set(`user_id`,d.user_id),fH(d).length>=3)throw I(e,t.tenant.id,{type:P.FAILED_LOGIN,description:`Too many failed login attempts`}),new hN(403,{message:`Too many failed login attempts`,code:`TOO_MANY_FAILED_LOGINS`});let f=await a.passwords.get(t.tenant.id,u.user_id),p=f&&await rd.compare(n.password,f.password);if(!p){let r=await JV(e,t.tenant.id,u.connection);r?.options?.import_mode===!0&&await lH({ctx:e,client:t,username:o,password:n.password,dbConnection:r,existingUser:d})&&(p=!0)}if(!p)throw I(e,t.tenant.id,{type:P.FAILED_LOGIN_INCORRECT_PASSWORD,description:`Invalid password`}),uH(a,t.tenant.id,d),new hN(403,{message:`Invalid password`,code:`INVALID_PASSWORD`});if(!u.email_verified&&t.client_metadata?.email_validation===`enforced`){let n=r?.authParams?.ui_locales?.split(` `)?.map(e=>e.split(`-`)[0])[0];throw await BV(e,u,n),I(e,t.tenant.id,{type:P.FAILED_LOGIN,description:`Email not verified`}),r&&await rre(e,t.tenant.id,r,`Email not verified`),new hN(403,{message:`Email not verified`,code:`EMAIL_NOT_VERIFIED`})}let m=d.app_metadata||{};return m.failed_logins&&m.failed_logins.length>0&&(m.failed_logins=[],a.users.update(t.tenant.id,d.user_id,{app_metadata:m})),{client:t,authParams:n,user:d,loginSession:r}}async function mH(e,t,n,r,i,a=F.USERNAME_PASSWORD){return QM(e,{...await pH(e,t,n,r,a),ticketAuth:i,authConnection:e.get(`connection`)||F.USERNAME_PASSWORD,authStrategy:{strategy:F.USERNAME_PASSWORD,strategy_type:wa.DATABASE}})}async function hH(e,t,n,r,i,a){if(!await nm({env:e.env,tenant_id:t.tenant.id,username:n})){let r=t.connections.find(e=>e.strategy===F.USERNAME_PASSWORD);if(!(await Zk(e,t,e.env.data,n,r?.name??F.USERNAME_PASSWORD)).allowed)return;await im(e,{client:t,username:n,connection:F.USERNAME_PASSWORD,ip:e.var.ip})}let o=KV(),s=await e.env.data.codes.get(t.tenant.id,o,`password_reset`);for(;s;)o=KV(),s=await e.env.data.codes.get(t.tenant.id,o,`password_reset`);let c=r;if(!await e.env.data.loginSessions.get(t.tenant.id,r)){let r=e.get(`ip`),i=e.get(`useragent`),a=GV(e.get(`auth0_client`));c=(await e.env.data.loginSessions.create(t.tenant.id,{expires_at:new Date(Date.now()+OD).toISOString(),authParams:{client_id:t.client_id,username:n},csrf_token:To(),ip:r,useragent:i,auth0Client:a})).id}let l=await e.env.data.codes.create(t.tenant.id,{code_id:o,code_type:`password_reset`,login_id:c,expires_at:new Date(Date.now()+DD).toISOString()});i===`code`?await LV(e,n,l.code_id):await IV(e,n,l.code_id,c,void 0,a)}function gH(e){return e===F.USERNAME_PASSWORD||e===`auth2`}var _H=bt.extend({connections:f.z.array(_n)}),vH=[`client_secret`,`app_secret`,`twilio_token`];function yH(e){if(!e.options)return e;let t={...e.options};for(let e of vH)delete t[e];return{...e,options:t}}var bH=f.z.object({enabled_clients:f.z.array(f.z.object({client_id:f.z.string(),name:f.z.string()}))}),xH=f.z.array(f.z.object({client_id:f.z.string(),status:f.z.boolean()})),SH=L({route:(0,f.createRoute)({tags:[`connections`],method:`get`,path:`/`,request:{query:eo,headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:connections`]}],responses:{200:{content:{"application/json":{schema:f.z.union([f.z.array(_n),_H])}},description:`List of connections`}}}),handler:async e=>{let{page:t,per_page:n,include_totals:r=!1,sort:i,q:a}=e.req.valid(`query`),o=await e.env.data.connections.list(e.var.tenant_id,{page:t,per_page:n,include_totals:r,sort:to(i),q:a}),s=o.connections.map(yH);return r?e.json({...o,connections:s}):e.json(s)}}),CH=L({route:(0,f.createRoute)({tags:[`connections`],method:`get`,path:`/{id}`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:connections`]}],responses:{200:{content:{"application/json":{schema:_n}},description:`A connection`}}}),handler:async e=>{let{id:t}=e.req.valid(`param`),n=await e.env.data.connections.get(e.var.tenant_id,t);if(!n)throw new m(404);return e.json(yH(n))}}),wH=L({route:(0,f.createRoute)({tags:[`connections`],method:`delete`,path:`/{id}`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`delete:connections`]}],responses:{200:{description:`Status`}}}),handler:async e=>{let{id:t}=e.req.valid(`param`),n=e.var.tenant_id;if(!await e.env.data.connections.remove(n,t))throw new m(404,{message:`Connection not found`});return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Delete a Connection`,targetType:`connection`,targetId:t}),e.text(`OK`)}}),TH=L({route:(0,f.createRoute)({tags:[`connections`],method:`patch`,path:`/{id}`,request:{body:{content:{"application/json":{schema:f.z.object(gn.shape).partial()}}},params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`update:connections`]}],responses:{200:{content:{"application/json":{schema:_n}},description:`The updated connection`}}}),handler:async e=>{let{id:t}=e.req.valid(`param`),n=e.req.valid(`json`),r=e.var.tenant_id,i=await e.env.data.connections.get(r,t),a=n;if(n.options&&i?.options){let e={...n.options};for(let t of vH)e[t]===void 0&&i.options[t]!==void 0&&(e[t]=i.options[t]);a={...n,options:e}}if(!await e.env.data.connections.update(r,t,a))throw new m(404,{message:`Connection not found`});let o=await e.env.data.connections.get(r,t);if(!o)throw new m(404,{message:`Connection not found`});return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Update a Connection`,beforeState:i,afterState:o,targetType:`connection`,targetId:t,body:n}),e.json(yH(o))}}),EH=L({route:(0,f.createRoute)({tags:[`connections`],method:`post`,path:`/`,request:{body:{content:{"application/json":{schema:f.z.object(gn.shape)}}},headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`create:connections`]}],responses:{201:{content:{"application/json":{schema:_n}},description:`A connection`}}}),handler:async e=>{let t=e.req.valid(`json`),n=e.var.tenant_id,r=t.id||Dee(),i=await e.env.data.connections.create(n,{...t,id:r});return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Create a Connection`,afterState:i,targetType:`connection`,targetId:i.id}),e.json(yH(i),{status:201})}}),DH=L({route:(0,f.createRoute)({tags:[`connections`],method:`get`,path:`/{id}/clients`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:connections`]}],responses:{200:{content:{"application/json":{schema:bH}},description:`List of clients enabled for this connection`}}}),handler:async e=>{let{id:t}=e.req.valid(`param`);if(!await e.env.data.connections.get(e.var.tenant_id,t))throw new m(404,{message:`Connection not found`});let{clients:n}=await e.env.data.clients.list(e.var.tenant_id,{per_page:1e3}),r=n.filter(e=>e.connections?.includes(t)).map(e=>({client_id:e.client_id,name:e.name}));return e.json({enabled_clients:r})}}),OH=L({route:(0,f.createRoute)({tags:[`connections`],method:`patch`,path:`/{id}/clients`,request:{body:{content:{"application/json":{schema:xH}}},params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`update:connections`]}],responses:{204:{description:`Clients updated successfully (No Content)`}}}),handler:async e=>{let{id:t}=e.req.valid(`param`),n=e.req.valid(`json`);if(!await e.env.data.connections.get(e.var.tenant_id,t))throw new m(404,{message:`Connection not found`});for(let r of n){let n=await e.env.data.clients.get(e.var.tenant_id,r.client_id);if(!n)continue;let i=n.connections||[];r.status?i.includes(t)||await e.env.data.clients.update(e.var.tenant_id,r.client_id,{connections:[...i,t]}):i.includes(t)&&await e.env.data.clients.update(e.var.tenant_id,r.client_id,{connections:i.filter(e=>e!==t)})}return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Update Connection Clients`,targetType:`connection_client`,targetId:t}),e.body(null,204)}}),kH=L({route:(0,f.createRoute)({tags:[`connections`],method:`post`,path:`/{id}/try`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()}),body:{content:{"application/json":{schema:f.z.object({username:f.z.string().optional(),password:f.z.string().optional()}).optional()}}}},security:[{Bearer:[`update:connections`]}],responses:{200:{content:{"application/json":{schema:f.z.union([f.z.object({mode:f.z.literal(`redirect`),authorize_url:f.z.string(),state:f.z.string(),result_url:f.z.string(),client_id:f.z.string(),connection:f.z.object({id:f.z.string(),name:f.z.string(),strategy:f.z.string()})}),f.z.object({mode:f.z.literal(`inline`),status:f.z.enum([`success`,`error`]),connection_id:f.z.string(),connection_name:f.z.string(),strategy:f.z.string(),userinfo:f.z.record(f.z.string(),f.z.unknown()).optional(),raw:f.z.record(f.z.string(),f.z.unknown()).nullable().optional(),error:f.z.string().optional(),error_description:f.z.string().optional()})])}},description:`Test outcome (inline) or how to drive the test (redirect)`}}}),handler:async e=>{let{id:t}=e.req.valid(`param`),n=e.var.tenant_id,r=await e.env.data.connections.get(n,t);if(!r)throw new m(404,{message:`Connection not found`});let i=r.id??t,a=await Ere(e.env,n);if(await I(e,n,{type:P.SUCCESS_API_OPERATION,description:`Try Connection initiated`,targetType:`connection`,targetId:t}),gH(r.strategy)){let t=e.req.valid(`json`)??{};if(!t.username||!t.password)throw new m(400,{message:`username and password are required for database connections`});let o=await bk(e.env,a,n);try{let{user:n}=await pH(e,o,{username:t.username,password:t.password,client_id:a},void 0,r.name);return e.json({mode:`inline`,status:`success`,connection_id:i,connection_name:r.name,strategy:r.strategy,userinfo:n,raw:n})}catch(t){let n=t instanceof Error?t.message:`Password login failed`,a=t&&typeof t==`object`&&`code`in t?String(t.code):`error`;return e.json({mode:`inline`,status:`error`,connection_id:i,connection_name:r.name,strategy:r.strategy,error:a,error_description:n})}}let o=await Dre(e.env,n),s=To(),c=new URL(mN(e.env,o)),l=e.req.header(`origin`);if(l)try{new URL(l).origin===l&&c.searchParams.set(`opener_origin`,l)}catch{}let u=c.toString(),d=La(e.env,o),f=new URL(`${d}authorize`);return f.searchParams.set(`client_id`,a),f.searchParams.set(`response_type`,`code`),f.searchParams.set(`scope`,`openid profile email`),f.searchParams.set(`connection`,r.name),f.searchParams.set(`redirect_uri`,u),f.searchParams.set(`state`,s),e.json({mode:`redirect`,authorize_url:f.toString(),state:s,result_url:u,client_id:a,connection:{id:i,name:r.name,strategy:r.strategy}})}}),AH=new f.OpenAPIHono().openapiRoutes([SH,CH,wH,TH,EH,DH,OH,kH]),jH=L({route:(0,f.createRoute)({tags:[`prompts`],method:`get`,path:`/`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:prompts`]}],responses:{200:{content:{"application/json":{schema:wi}},description:`Branding settings`}}}),handler:async e=>{let t=await e.env.data.promptSettings.get(e.var.tenant_id);return t?e.json(t):e.json(wi.parse({}))}}),MH=L({route:(0,f.createRoute)({tags:[`prompts`],method:`patch`,path:`/`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),body:{content:{"application/json":{schema:f.z.object(wi.shape).partial()}}}},security:[{Bearer:[`update:prompts`]}],responses:{200:{description:`Prompts settings`}}}),handler:async e=>{let t=e.req.valid(`json`),n=await e.env.data.promptSettings.get(e.var.tenant_id);return await e.env.data.promptSettings.set(e.var.tenant_id,{...n,...t}),await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Update Prompt Settings`,targetType:`prompt_settings`,targetId:e.var.tenant_id}),e.json(await e.env.data.promptSettings.get(e.var.tenant_id))}}),NH=L({route:(0,f.createRoute)({tags:[`prompts`],method:`get`,path:`/custom-text`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:prompts`]}],responses:{200:{content:{"application/json":{schema:f.z.array(f.z.object({prompt:xa,language:f.z.string()}))}},description:`List of custom text entries`}}}),handler:async e=>{let t=await e.env.data.customText.list(e.var.tenant_id);return e.json(t)}}),PH=L({route:(0,f.createRoute)({tags:[`prompts`],method:`get`,path:`/custom-text/defaults`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),query:f.z.object({language:f.z.string().optional(),prompt:f.z.string().optional()})},security:[{Bearer:[`read:prompts`]}],responses:{200:{content:{"application/json":{schema:f.z.array(f.z.object({prompt:f.z.string(),language:f.z.string(),custom_text:Sa}))}},description:`Bundled default text for every prompt/language shipped with authhero. authhero extension; not available in Auth0.`}}}),handler:async e=>{let{language:t,prompt:n}=e.req.valid(`query`);return e.json(Ic({language:t,prompt:n}))}}),FH=L({route:(0,f.createRoute)({tags:[`prompts`],method:`get`,path:`/{prompt}/custom-text/{language}`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),params:f.z.object({prompt:xa,language:f.z.string()})},security:[{Bearer:[`read:prompts`]}],responses:{200:{content:{"application/json":{schema:Sa}},description:`Custom text for the prompt and language`}}}),handler:async e=>{let{prompt:t,language:n}=e.req.valid(`param`),r=await e.env.data.customText.get(e.var.tenant_id,t,n);return e.json(r??{})}}),IH=L({route:(0,f.createRoute)({tags:[`prompts`],method:`put`,path:`/{prompt}/custom-text/{language}`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),params:f.z.object({prompt:xa,language:f.z.string()}),body:{content:{"application/json":{schema:Sa}}}},security:[{Bearer:[`update:prompts`]}],responses:{200:{content:{"application/json":{schema:Sa}},description:`Updated custom text`}}}),handler:async e=>{let{prompt:t,language:n}=e.req.valid(`param`),r=await e.req.json(),i=Sa.parse(r);return await e.env.data.customText.set(e.var.tenant_id,t,n,i),await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Set Custom Text`,targetType:`custom_text`,targetId:e.var.tenant_id}),e.json(i)}}),LH=L({route:(0,f.createRoute)({tags:[`prompts`],method:`delete`,path:`/{prompt}/custom-text/{language}`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),params:f.z.object({prompt:xa,language:f.z.string()})},security:[{Bearer:[`delete:prompts`]}],responses:{204:{description:`Custom text deleted`}}}),handler:async e=>{let{prompt:t,language:n}=e.req.valid(`param`);return await e.env.data.customText.delete(e.var.tenant_id,t,n),await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Delete Custom Text`,targetType:`custom_text`,targetId:e.var.tenant_id}),e.body(null,204)}}),RH=new f.OpenAPIHono().openapiRoutes([jH,MH,NH,PH,FH,IH,LH]),zH=!1;function BH(e){e.use(async(t,n)=>(zH||=(e.openAPIRegistry.registerComponent(`securitySchemes`,`Bearer`,{type:`oauth2`,scheme:`bearer`,flows:{implicit:{authorizationUrl:`${t.env.AUTH_URL}/authorize`,scopes:{openid:`Basic user information`,email:`User email`,profile:`User profile information`}}}}),!0),await n()))}var VH=e=>WH(e.replace(/_|-/g,e=>({_:`/`,"-":`+`})[e]??e)),HH=e=>UH(e).replace(/\/|\+/g,e=>({"/":`_`,"+":`-`})[e]??e),UH=e=>{let t=``,n=new Uint8Array(e);for(let e=0,r=n.length;e<r;e++)t+=String.fromCharCode(n[e]);return btoa(t)},WH=e=>{let t=atob(e),n=new Uint8Array(new ArrayBuffer(t.length)),r=t.length/2;for(let e=0,i=t.length-1;e<=r;e++,i--)n[e]=t.charCodeAt(e),n[i]=t.charCodeAt(i);return n},GH=(e=>(e.HS256=`HS256`,e.HS384=`HS384`,e.HS512=`HS512`,e.RS256=`RS256`,e.RS384=`RS384`,e.RS512=`RS512`,e.PS256=`PS256`,e.PS384=`PS384`,e.PS512=`PS512`,e.ES256=`ES256`,e.ES384=`ES384`,e.ES512=`ES512`,e.EdDSA=`EdDSA`,e))(GH||{}),KH=class extends Error{constructor(e){super(`${e} is not an implemented algorithm`),this.name=`JwtAlgorithmNotImplemented`}},qH=class extends Error{constructor(){super(`JWT verification requires "alg" option to be specified`),this.name=`JwtAlgorithmRequired`}},JH=class extends Error{constructor(e,t){super(`JWT algorithm mismatch: expected "${e}", got "${t}"`),this.name=`JwtAlgorithmMismatch`}},YH=class extends Error{constructor(e){super(`invalid JWT token: ${e}`),this.name=`JwtTokenInvalid`}},XH=class extends Error{constructor(e){super(`token (${e}) is being used before it's valid`),this.name=`JwtTokenNotBefore`}},ZH=class extends Error{constructor(e){super(`token (${e}) expired`),this.name=`JwtTokenExpired`}},QH=class extends Error{constructor(e,t){super(`Invalid "iat" claim, must be a valid number lower than "${e}" (iat: "${t}")`),this.name=`JwtTokenIssuedAt`}},$H=class extends Error{constructor(e,t){super(`expected issuer "${e}", got ${t?`"${t}"`:`none`} `),this.name=`JwtTokenIssuer`}},eU=class extends Error{constructor(e){super(`jwt header is invalid: ${JSON.stringify(e)}`),this.name=`JwtHeaderInvalid`}},tU=class extends Error{constructor(e){super(`required "kid" in jwt header: ${JSON.stringify(e)}`),this.name=`JwtHeaderRequiresKid`}},nU=class extends Error{constructor(e){super(`symmetric algorithm "${e}" is not allowed for JWK verification`),this.name=`JwtSymmetricAlgorithmNotAllowed`}},rU=class extends Error{constructor(e,t){super(`algorithm "${e}" is not in the allowed list: [${t.join(`, `)}]`),this.name=`JwtAlgorithmNotAllowed`}},iU=class extends Error{constructor(e){super(`token(${e}) signature mismatched`),this.name=`JwtTokenSignatureMismatched`}},aU=class extends Error{constructor(e){super(`required "aud" in jwt payload: ${JSON.stringify(e)}`),this.name=`JwtPayloadRequiresAud`}},oU=class extends Error{constructor(e,t){super(`expected audience "${Array.isArray(e)?e.join(`, `):e}", got "${t}"`),this.name=`JwtTokenAudience`}},sU=(e=>(e.Encrypt=`encrypt`,e.Decrypt=`decrypt`,e.Sign=`sign`,e.Verify=`verify`,e.DeriveKey=`deriveKey`,e.DeriveBits=`deriveBits`,e.WrapKey=`wrapKey`,e.UnwrapKey=`unwrapKey`,e))(sU||{}),cU=new TextEncoder,lU=new TextDecoder;async function uU(e,t,n){let r=gU(t),i=await pU(e,r);return await crypto.subtle.sign(r,i,n)}async function dU(e,t,n,r){let i=gU(t),a=await mU(e,i);return await crypto.subtle.verify(i,a,n,r)}function fU(e){return WH(e.replace(/-+(BEGIN|END).*?-+/g,``).replace(/\s/g,``))}async function pU(e,t){if(!crypto.subtle||!crypto.subtle.importKey)throw Error("`crypto.subtle.importKey` is undefined. JWT auth middleware requires it.");if(_U(e)){if(e.type!==`private`&&e.type!==`secret`)throw Error(`unexpected key type: CryptoKey.type is ${e.type}, expected private or secret`);return e}let n=[sU.Sign];return typeof e==`object`?await crypto.subtle.importKey(`jwk`,e,t,!1,n):e.includes(`PRIVATE`)?await crypto.subtle.importKey(`pkcs8`,fU(e),t,!1,n):await crypto.subtle.importKey(`raw`,cU.encode(e),t,!1,n)}async function mU(e,t){if(!crypto.subtle||!crypto.subtle.importKey)throw Error("`crypto.subtle.importKey` is undefined. JWT auth middleware requires it.");if(_U(e)){if(e.type===`public`||e.type===`secret`)return e;e=await hU(e)}typeof e==`string`&&e.includes(`PRIVATE`)&&(e=await hU(await crypto.subtle.importKey(`pkcs8`,fU(e),t,!0,[sU.Sign])));let n=[sU.Verify];return typeof e==`object`?await crypto.subtle.importKey(`jwk`,e,t,!1,n):e.includes(`PUBLIC`)?await crypto.subtle.importKey(`spki`,fU(e),t,!1,n):await crypto.subtle.importKey(`raw`,cU.encode(e),t,!1,n)}async function hU(e){if(e.type!==`private`)throw Error(`unexpected key type: ${e.type}`);if(!e.extractable)throw Error(`unexpected private key is unextractable`);let t=await crypto.subtle.exportKey(`jwk`,e),{kty:n}=t,{alg:r,e:i,n:a}=t,{crv:o,x:s,y:c}=t;return{kty:n,alg:r,e:i,n:a,crv:o,x:s,y:c,key_ops:[sU.Verify]}}function gU(e){switch(e){case`HS256`:return{name:`HMAC`,hash:{name:`SHA-256`}};case`HS384`:return{name:`HMAC`,hash:{name:`SHA-384`}};case`HS512`:return{name:`HMAC`,hash:{name:`SHA-512`}};case`RS256`:return{name:`RSASSA-PKCS1-v1_5`,hash:{name:`SHA-256`}};case`RS384`:return{name:`RSASSA-PKCS1-v1_5`,hash:{name:`SHA-384`}};case`RS512`:return{name:`RSASSA-PKCS1-v1_5`,hash:{name:`SHA-512`}};case`PS256`:return{name:`RSA-PSS`,hash:{name:`SHA-256`},saltLength:32};case`PS384`:return{name:`RSA-PSS`,hash:{name:`SHA-384`},saltLength:48};case`PS512`:return{name:`RSA-PSS`,hash:{name:`SHA-512`},saltLength:64};case`ES256`:return{name:`ECDSA`,hash:{name:`SHA-256`},namedCurve:`P-256`};case`ES384`:return{name:`ECDSA`,hash:{name:`SHA-384`},namedCurve:`P-384`};case`ES512`:return{name:`ECDSA`,hash:{name:`SHA-512`},namedCurve:`P-521`};case`EdDSA`:return{name:`Ed25519`,namedCurve:`Ed25519`};default:throw new KH(e)}}function _U(e){return za()===`node`&&crypto.webcrypto?e instanceof crypto.webcrypto.CryptoKey:e instanceof CryptoKey}var vU=e=>HH(cU.encode(JSON.stringify(e)).buffer).replace(/=/g,``),yU=e=>HH(e).replace(/=/g,``),bU=e=>JSON.parse(lU.decode(VH(e)));function xU(e){if(typeof e==`object`&&e){let t=e;return`alg`in t&&Object.values(GH).includes(t.alg)&&(!(`typ`in t)||t.typ===`JWT`)}return!1}var SU=async(e,t,n=`HS256`)=>{let r=vU(e),i;typeof t==`object`&&`alg`in t?(n=t.alg,i=vU({alg:n,typ:`JWT`,kid:t.kid})):i=vU({alg:n,typ:`JWT`});let a=`${i}.${r}`;return`${a}.${yU(await uU(t,n,cU.encode(a)))}`},CU=async(e,t,n)=>{if(!n)throw new qH;let{alg:r,iss:i,nbf:a=!0,exp:o=!0,iat:s=!0,aud:c}=typeof n==`string`?{alg:n}:n;if(!r)throw new qH;let l=e.split(`.`);if(l.length!==3)throw new YH(e);let{header:u,payload:d}=EU(e);if(!xU(u))throw new eU(u);if(u.alg!==r)throw new JH(r,u.alg);let f=Math.floor(Date.now()/1e3);if(a&&d.nbf!==void 0&&(typeof d.nbf!=`number`||!Number.isFinite(d.nbf)||d.nbf>f))throw new XH(e);if(o&&d.exp!==void 0&&(typeof d.exp!=`number`||!Number.isFinite(d.exp)||d.exp<=f))throw new ZH(e);if(s&&d.iat!==void 0&&(typeof d.iat!=`number`||!Number.isFinite(d.iat)||f<d.iat))throw new QH(f,d.iat);if(i){if(!d.iss)throw new $H(i,null);if(typeof i==`string`&&d.iss!==i||i instanceof RegExp&&!i.test(d.iss))throw new $H(i,d.iss)}if(c){if(!d.aud)throw new aU(d);if(!(Array.isArray(d.aud)?d.aud:[d.aud]).some(e=>c instanceof RegExp?c.test(e):typeof c==`string`?e===c:Array.isArray(c)&&c.includes(e)))throw new oU(c,d.aud)}let p=e.substring(0,e.lastIndexOf(`.`));if(!await dU(t,r,VH(l[2]),cU.encode(p)))throw new iU(e);return d},wU=[GH.HS256,GH.HS384,GH.HS512],TU=async(e,t,n)=>{let r=t.verification||{},i=DU(e);if(!xU(i))throw new eU(i);if(!i.kid)throw new tU(i);if(wU.includes(i.alg))throw new nU(i.alg);if(!t.allowedAlgorithms.includes(i.alg))throw new rU(i.alg,t.allowedAlgorithms);let a=t.keys?[...t.keys]:void 0;if(t.jwks_uri){let e=await fetch(t.jwks_uri,n);if(!e.ok)throw Error(`failed to fetch JWKS from ${t.jwks_uri}`);let r=await e.json();if(!r.keys)throw Error(`invalid JWKS response. "keys" field is missing`);if(!Array.isArray(r.keys))throw Error(`invalid JWKS response. "keys" field is not an array`);a??=[],a.push(...r.keys)}else if(!a)throw Error(`verifyWithJwks requires options for either "keys" or "jwks_uri" or both`);let o=a.find(e=>e.kid===i.kid);if(!o)throw new YH(e);if(o.alg&&o.alg!==i.alg)throw new JH(o.alg,i.alg);return await CU(e,o,{alg:i.alg,...r})},EU=e=>{let t=e.split(`.`);if(t.length!==3)throw new YH(e);try{return{header:bU(t[0]),payload:bU(t[1])}}catch{throw new YH(e)}},DU=e=>{let t=e.split(`.`);if(t.length!==3)throw new YH(e);try{return bU(t[0])}catch{throw new YH(e)}},OU={sign:SU,verify:CU,decode:EU,verifyWithJwks:TU};OU.verifyWithJwks;var kU=OU.verify,AU=OU.decode;OU.sign;async function jU(e){return Promise.all(e.map(async e=>{let t=await new pE(e.cert).publicKey.export(),n=await crypto.subtle.exportKey(`jwk`,t),r=n.alg??OO(n);return jr.parse({...n,alg:r,use:`sig`,kid:e.kid})}))}async function MU(e,t,n){return jU(await GE(e.keys,t,n,{purpose:`publish`}))}async function NU(e,t,n){return t?MU(e,t,n):jU(await UE(e.keys))}function PU(e){switch(e){case`RS256`:case`RS384`:case`RS512`:case`ES256`:case`ES384`:case`ES512`:return e;default:throw new B(401,{message:`Unsupported JWS alg: ${e??`(missing)`}`})}}var FU=class extends B{constructor(){super(403,{message:`Invalid JWT signature`}),this.name=`JwtExpiredError`}};async function IU(e,t,n={}){try{let{header:r}=AU(t),i=PU(r?.alg),a=(await NU(e.env.data,e.var.tenant_id,e.env.signingKeyMode)).find(e=>e.kid===r.kid);if(!a)throw new B(401,{message:`No matching kid found`});if(a.alg!==i)throw new B(401,{message:`alg mismatch between token header and JWK`});let o=kO(a,i),s=await kU(t,await crypto.subtle.importKey(`jwk`,a,o,!1,[`verify`]),i);if(!n.skipIssuerCheck){let t=Fa(e.env,e.var.custom_domain),r=n.additionalIssuers??[];if(s.iss!==t&&!r.includes(s.iss))throw new B(401,{message:`Invalid issuer`})}return s}catch(e){throw e instanceof m?e:e instanceof Error&&e.name===`JwtTokenExpired`?new FU:new B(403,{message:`Invalid JWT signature`})}}function LU(e){if(!e)return;let[t,n]=e.split(` `);if(!(!t||t.toLowerCase()!==`bearer`))return n?.trim()||void 0}function RU(e){if(!e)return{};let[t,n]=e.split(` `);if(t?.toLowerCase()!==`basic`||!n)return{};try{let[e,t]=atob(n).split(`:`);return!e||!t?{}:{client_id:e,client_secret:t}}catch{return{}}}var zU=`urn:authhero:management`;function BU(e){return e.replace(/:([a-zA-Z_][a-zA-Z0-9_]*)/g,`{$1}`)}function VU(e){let t=e.split(`:`);if(t.length!==2||!t[0]||!t[1])return[e];let n=`${t[1]}:${t[0]}`;return n===e?[e]:[e,n]}function HU(e,t={}){let n=t.requireManagementAudience??!1,r=t.relaxManagementAudience??!1,i=t.additionalManagementAudiences,a=t.additionalIssuers;return async(t,o)=>{let s=t.req.matchedRoutes.find(e=>e.method.toUpperCase()===t.req.method&&e.path!==`/*`);if(!s)return await o();let c=BU(s.path),l=c.startsWith(`/api/v2`)?c.slice(7)||`/`:c,u=e.openAPIRegistry.definitions.find(e=>`route`in e&&e.route.path===l&&e.route.method.toUpperCase()===t.req.method.toUpperCase());if(u&&`route`in u){let e=u.route.security?.[0]?.Bearer;if(e===void 0)return await o();let s=LU(t.req.header(`authorization`));if(!s)throw new B(401,{message:`Missing bearer token`});try{let o;if(a){let{payload:e}=AU(s);o=await a({tenant_id:typeof e?.tenant_id==`string`?e.tenant_id:void 0})}let c=await IU(t,s,{additionalIssuers:o});if(t.set(`user_id`,c.sub),t.set(`user`,c),c.azp&&t.set(`client_id`,c.azp),c.org_name&&t.set(`org_name`,c.org_name),c.org_id&&t.set(`organization_id`,c.org_id),!t.var.tenant_id&&c.tenant_id&&t.set(`tenant_id`,c.tenant_id),n){let e=c.aud,n=Array.isArray(e)?e:e?[e]:[],a=typeof c.tenant_id==`string`?c.tenant_id:void 0,o=i?await i({tenant_id:a}):[],s=new Set([zU,...o]);if(!n.some(e=>s.has(e)))if(r)console.warn(`[authhero] management API accepted token without management audience (relaxManagementAudience=true): sub=${c.sub??`unknown`} aud=${JSON.stringify(e)}`);else throw new B(403,{message:`Invalid audience`});let l=typeof c.tenant_id==`string`?c.tenant_id:void 0,u=t.var.tenant_id;if(l&&u&&l!==u){let e=t.env.data?.multiTenancyConfig?.controlPlaneTenantId;if(!e||l!==e)throw new B(403,{message:`Cross-tenant management requires a control-plane token`})}}let l=Array.isArray(c.permissions)?c.permissions:[],u=typeof c.scope==`string`?c.scope.split(` `):Array.isArray(c.scope)?c.scope:[];if(e.length){let t=e.flatMap(VU);if(!(t.some(e=>l.includes(e))||t.some(e=>u.includes(e))))throw new B(403,{message:`Unauthorized`})}}catch(e){throw e instanceof m?e:new B(403,{message:`Invalid token`})}}return await o()}}var UU=L({route:(0,f.createRoute)({tags:[`emails`],method:`get`,path:`/`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:email_provider`]}],responses:{200:{content:{"application/json":{schema:f.z.object(Ai.shape).partial()}},description:`Email provider`}}}),handler:async e=>{let t=await e.env.data.emailProviders.get(e.var.tenant_id);return e.json(t??{})}}),WU=L({route:(0,f.createRoute)({tags:[`emails`],method:`post`,path:`/`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),body:{content:{"application/json":{schema:f.z.object(Ai.shape)}}}},security:[{Bearer:[`create:email_provider`]}],responses:{201:{content:{"application/json":{schema:Ai}},description:`Email provider`},409:{description:`Email provider already configured`}}}),handler:async e=>{let t=e.req.valid(`json`);if(await e.env.data.emailProviders.get(e.var.tenant_id))throw new m(409,{message:`Email provider already configured`});await e.env.data.emailProviders.create(e.var.tenant_id,t),await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Create Email Provider`,targetType:`email_provider`,targetId:e.var.tenant_id});let n=await e.env.data.emailProviders.get(e.var.tenant_id);return e.json(n??t,{status:201})}}),GU=L({route:(0,f.createRoute)({tags:[`emails`],method:`patch`,path:`/`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),body:{content:{"application/json":{schema:f.z.object(Ai.shape).partial()}}}},security:[{Bearer:[`update:email_provider`]}],responses:{200:{content:{"application/json":{schema:Ai}},description:`Email provider`}}}),handler:async e=>{let t=e.req.valid(`json`);await e.env.data.emailProviders.update(e.var.tenant_id,t);let n=await e.env.data.emailProviders.get(e.var.tenant_id);if(!n)throw new m(404,{message:`Email provider not found`});return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Update Email Provider`,targetType:`email_provider`,targetId:e.var.tenant_id}),e.json(n)}}),KU=L({route:(0,f.createRoute)({tags:[`emails`],method:`delete`,path:`/`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`delete:email_provider`]}],responses:{204:{description:`Email provider deleted`},404:{description:`Email provider not found`}}}),handler:async e=>{if(!await e.env.data.emailProviders.get(e.var.tenant_id))throw new m(404,{message:`Email provider not found`});return await e.env.data.emailProviders.remove(e.var.tenant_id),await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Delete Email Provider`,targetType:`email_provider`,targetId:e.var.tenant_id}),e.body(null,204)}}),qU=new f.OpenAPIHono().openapiRoutes([UU,WU,GU,KU]),JU=f.z.object({"tenant-id":f.z.string().optional()}),YU=f.z.object({templateName:ji}),XU=Mi.partial(),ZU=Mi.extend({from:Mi.shape.from.optional()}),QU=L({route:(0,f.createRoute)({tags:[`email-templates`],method:`post`,path:`/`,request:{headers:JU,body:{content:{"application/json":{schema:Mi}}}},security:[{Bearer:[`create:email_templates`]}],responses:{201:{content:{"application/json":{schema:Mi}},description:`Email template`},409:{description:`Template already exists`}}}),handler:async e=>{let t=e.req.valid(`json`);if(await e.env.data.emailTemplates.get(e.var.tenant_id,t.template))throw new m(409,{message:`Email template already configured`});let n=await e.env.data.emailTemplates.create(e.var.tenant_id,t);return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Create Email Template`,targetType:`email_template`,targetId:t.template}),e.json(n,{status:201})}}),$U=f.z.object({name:ji,body:f.z.string(),subject:f.z.string()}),eW=L({route:(0,f.createRoute)({tags:[`email-templates`],method:`get`,path:`/defaults`,request:{headers:JU},security:[{Bearer:[`read:email_templates`]}],responses:{200:{content:{"application/json":{schema:f.z.array($U)}},description:`Bundled default email templates shipped with authhero. authhero extension; not available in Auth0.`}}}),handler:async e=>{let t=[];for(let e of ji.options){let n=xV(e);n&&t.push({name:e,body:n.body,subject:n.subject})}return e.json(t)}}),tW=L({route:(0,f.createRoute)({tags:[`email-templates`],method:`get`,path:`/{templateName}`,request:{headers:JU,params:YU},security:[{Bearer:[`read:email_templates`]}],responses:{200:{content:{"application/json":{schema:Mi}},description:`Email template`},404:{description:`Template not found`}}}),handler:async e=>{let{templateName:t}=e.req.valid(`param`),n=await e.env.data.emailTemplates.get(e.var.tenant_id,t);if(!n)throw new m(404,{message:`Email template not found`});return e.json(n)}}),nW=L({route:(0,f.createRoute)({tags:[`email-templates`],method:`put`,path:`/{templateName}`,request:{headers:JU,params:YU,body:{content:{"application/json":{schema:ZU}}}},security:[{Bearer:[`update:email_templates`]}],responses:{200:{content:{"application/json":{schema:Mi}},description:`Email template upserted`}}}),handler:async e=>{let{templateName:t}=e.req.valid(`param`),n=e.req.valid(`json`);if(n.template!==t)throw new m(400,{message:`Body template must match URL templateName`});let r=n.from?.trim()??``,i={...n,from:r};await e.env.data.emailTemplates.get(e.var.tenant_id,t)?await e.env.data.emailTemplates.update(e.var.tenant_id,t,i):await e.env.data.emailTemplates.create(e.var.tenant_id,i);let a=await e.env.data.emailTemplates.get(e.var.tenant_id,t);if(!a)throw new m(500,{message:`Email template not found after upsert (tenant_id=${e.var.tenant_id}, template=${t})`});return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Update Email Template`,targetType:`email_template`,targetId:t}),e.json(a)}}),rW=L({route:(0,f.createRoute)({tags:[`email-templates`],method:`patch`,path:`/{templateName}`,request:{headers:JU,params:YU,body:{content:{"application/json":{schema:XU}}}},security:[{Bearer:[`update:email_templates`]}],responses:{200:{content:{"application/json":{schema:Mi}},description:`Email template`},404:{description:`Template not found`}}}),handler:async e=>{let{templateName:t}=e.req.valid(`param`),n=e.req.valid(`json`);if(!await e.env.data.emailTemplates.update(e.var.tenant_id,t,n))throw new m(404,{message:`Email template not found`});let r=await e.env.data.emailTemplates.get(e.var.tenant_id,t);if(!r)throw new m(404,{message:`Email template not found`});return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Patch Email Template`,targetType:`email_template`,targetId:t}),e.json(r)}}),iW=L({route:(0,f.createRoute)({tags:[`email-templates`],method:`delete`,path:`/{templateName}`,request:{headers:JU,params:YU},security:[{Bearer:[`update:email_templates`]}],responses:{204:{description:`Tenant override removed; subsequent sends use the bundled default. authhero extension; not available in Auth0.`},404:{description:`Template override not found`}}}),handler:async e=>{let{templateName:t}=e.req.valid(`param`);if(!await e.env.data.emailTemplates.remove(e.var.tenant_id,t))throw new m(404,{message:`Email template not found`});return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Delete Email Template`,targetType:`email_template`,targetId:t}),e.body(null,204)}}),aW=L({route:(0,f.createRoute)({tags:[`email-templates`],method:`post`,path:`/{templateName}/try`,request:{headers:JU,params:YU,body:{content:{"application/json":{schema:f.z.object({to:f.z.string().email(),body:f.z.string().optional(),subject:f.z.string().optional(),from:f.z.string().optional(),language:f.z.string().optional()})}}}},security:[{Bearer:[`update:email_templates`]}],responses:{200:{content:{"application/json":{schema:f.z.object({sent:f.z.boolean()})}},description:`Sends a test email rendered with sample data. authhero extension; not available in Auth0.`}}}),handler:async e=>{let{templateName:t}=e.req.valid(`param`),n=e.req.valid(`json`),r=n.from?.trim();return await WV(e,{to:n.to,templateName:t,body:n.body,subject:n.subject,from:r===``?void 0:r,language:n.language}),await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Test Email Sent (${t})`,targetType:`email_template`,targetId:t}),e.json({sent:!0})}}),oW=new f.OpenAPIHono().openapiRoutes([QU,eW,tW,nW,rW,iW,aW]),sW=L({route:(0,f.createRoute)({tags:[`sessions`],method:`get`,path:`/{id}`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:sessions`]}],responses:{200:{content:{"application/json":{schema:ui}},description:`A session`}}}),handler:async e=>{let{id:t}=e.req.valid(`param`),n=await e.env.data.sessions.get(e.var.tenant_id,t);if(!n)throw new m(404);return e.json(n)}}),cW=L({route:(0,f.createRoute)({tags:[`sessions`],method:`delete`,path:`/{id}`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`delete:sessions`]}],responses:{200:{description:`Status`}}}),handler:async e=>{let{id:t}=e.req.valid(`param`);if(!await e.env.data.sessions.remove(e.var.tenant_id,t))throw new m(404,{message:`Session not found`});return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Delete a Session`,targetType:`session`,targetId:t}),e.text(`OK`)}}),lW=L({route:(0,f.createRoute)({tags:[`sessions`],method:`post`,path:`/{id}/revoke`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`update:sessions`]}],responses:{202:{description:`Session deletion status`}}}),handler:async e=>{let{id:t}=e.req.valid(`param`);if(!await e.env.data.sessions.update(e.var.tenant_id,t,{revoked_at:new Date().toISOString()}))throw new m(404,{message:`Session not found`});return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Revoke a Session`,targetType:`session`,targetId:t}),e.text(`Session deletion request accepted.`,{status:202})}}),uW=new f.OpenAPIHono().openapiRoutes([sW,cW,lW]),dW=L({route:(0,f.createRoute)({tags:[`refresh_tokens`],method:`get`,path:`/{id}`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:refresh_tokens`]}],responses:{200:{content:{"application/json":{schema:Ni}},description:`A session`}}}),handler:async e=>{let{id:t}=e.req.valid(`param`),n=await e.env.data.refreshTokens.get(e.var.tenant_id,t);if(!n)throw new m(404);return e.json(n)}}),fW=L({route:(0,f.createRoute)({tags:[`refresh_tokens`],method:`delete`,path:`/{id}`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`delete:refresh_tokens`]}],responses:{200:{description:`Status`}}}),handler:async e=>{let{id:t}=e.req.valid(`param`),n=await e.env.data.refreshTokens.get(e.var.tenant_id,t),r=n?.family_id??n?.id;if(r&&await e.env.data.refreshTokens.revokeFamily(e.var.tenant_id,r,new Date().toISOString()),!await e.env.data.refreshTokens.remove(e.var.tenant_id,t))throw new m(404,{message:`Session not found`});return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Delete a Refresh Token`,targetType:`refresh_token`,targetId:t}),e.text(`OK`)}}),pW=new f.OpenAPIHono().openapiRoutes([dW,fW]),mW=`controlplane.sync.`;function hW(e,t){if(!e.env.outbox?.enabled||!e.env.data.outbox)return;let n={tenant_id:t.tenantId,event_type:`${mW}${t.entity}.${t.op}`,log_type:P.SUCCESS_API_OPERATION,description:`Replicate ${t.entity} ${t.op} to control plane`,category:`system`,actor:{type:e.var.user_id?`admin`:e.var.client_id?`client_credentials`:`system`,id:e.var.user_id||void 0,client_id:e.var.client_id||void 0},target:{type:t.entity,id:t.aggregateId,after:t.payload},request:{method:e.req.method,path:e.req.path,ip:e.var.ip||``,user_agent:e.var.useragent||void 0},hostname:e.var.host||``,auth0_client:e.var.auth0_client,timestamp:new Date().toISOString()},r=e.env.data.outbox.create(t.tenantId,n),i=e.var.outboxEventPromises||[];i.push(r),e.set(`outboxEventPromises`,i)}var gW=L({route:(0,f.createRoute)({tags:[`custom-domains`],method:`get`,path:`/`,request:{query:eo,headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:custom_domains`]}],responses:{200:{content:{"application/json":{schema:f.z.array(bn)}},description:`List of custom domains`}}}),handler:async e=>{let t=await e.env.data.customDomains.list(e.var.tenant_id);return e.json(t)}}),_W=L({route:(0,f.createRoute)({tags:[`custom-domains`],method:`get`,path:`/{id}`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:custom_domains`]}],responses:{200:{content:{"application/json":{schema:bn}},description:`A customDomain`}}}),handler:async e=>{let{id:t}=e.req.valid(`param`),n=await e.env.data.customDomains.get(e.var.tenant_id,t);if(!n)throw new m(404);return e.json(n)}}),vW=L({route:(0,f.createRoute)({tags:[`custom-domains`],method:`delete`,path:`/{id}`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`delete:custom_domains`]}],responses:{200:{description:`Status`}}}),handler:async e=>{let{id:t}=e.req.valid(`param`),n=await e.env.data.customDomains.get(e.var.tenant_id,t);if(!await e.env.data.customDomains.remove(e.var.tenant_id,t))throw new m(404,{message:`Custom domain not found`});return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Delete a Custom Domain`,targetType:`custom_domain`,targetId:t}),n&&hW(e,{tenantId:e.var.tenant_id,entity:`custom_domain`,op:`deleted`,aggregateId:t,payload:n}),e.text(`OK`)}}),yW=L({route:(0,f.createRoute)({tags:[`custom-domains`],method:`patch`,path:`/{id}`,request:{body:{content:{"application/json":{schema:xn}}},params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`update:custom_domains`]}],responses:{200:{content:{"application/json":{schema:bn}},description:`The updated custom domain`}}}),handler:async e=>{let{id:t}=e.req.valid(`param`),n=e.req.valid(`json`);if(!await e.env.data.customDomains.update(e.var.tenant_id,t,n))throw new m(404);let r=await e.env.data.customDomains.get(e.var.tenant_id,t);if(!r)throw new m(404);return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Update a Custom Domain`,targetType:`custom_domain`,targetId:t,afterState:r}),hW(e,{tenantId:e.var.tenant_id,entity:`custom_domain`,op:`updated`,aggregateId:t,payload:r}),e.json(r)}}),bW=L({route:(0,f.createRoute)({tags:[`custom-domains`],method:`post`,path:`/`,request:{body:{content:{"application/json":{schema:f.z.object(vn.shape)}}},headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`create:custom_domains`]}],responses:{201:{content:{"application/json":{schema:bn}},description:`The created custom domain`}}}),handler:async e=>{let t=e.req.valid(`json`),n=await e.env.data.customDomains.create(e.var.tenant_id,t);return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Create a Custom Domain`,targetType:`custom_domain`,targetId:n.custom_domain_id,afterState:n}),hW(e,{tenantId:e.var.tenant_id,entity:`custom_domain`,op:`created`,aggregateId:n.custom_domain_id,payload:n}),e.json(n,{status:201})}}),xW=L({route:(0,f.createRoute)({tags:[`custom-domains`],method:`put`,path:`/{id}/certificate`,request:{body:{content:{"application/json":{schema:Sn}}},params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`update:custom_domains`]}],responses:{200:{content:{"application/json":{schema:bn}},description:`The custom domain with the uploaded certificate installed at the edge`}}}),handler:async e=>{let{id:t}=e.req.valid(`param`),n=e.req.valid(`json`),{uploadCertificate:r}=e.env.data.customDomains;if(!r)throw new m(501,{message:`The configured custom-domain adapter does not support certificate upload`});let i=await r(e.var.tenant_id,t,n);return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Upload a Custom Domain Certificate`,targetType:`custom_domain`,targetId:t}),e.json(i)}}),SW=L({route:(0,f.createRoute)({tags:[`custom-domains`],method:`post`,path:`/{id}/verify`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`update:custom_domains`]}],responses:{200:{content:{"application/json":{schema:bn}},description:`The custom domain`}}}),handler:async()=>{throw new m(501,{message:`Not implemented`})}}),CW=new f.OpenAPIHono().openapiRoutes([gW,_W,vW,yW,bW,xW,SW]);function wW(e){let t=e.env.data.logStreams;if(!t)throw new m(501,{message:`Log streams are not supported by this adapter`});return t}var TW=L({route:(0,f.createRoute)({tags:[`log-streams`],method:`get`,path:`/`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:log_streams`]}],responses:{200:{content:{"application/json":{schema:f.z.array(Zr)}},description:`List of log streams`}}}),handler:async e=>{let t=await wW(e).list(e.var.tenant_id);return e.json(t)}}),EW=L({route:(0,f.createRoute)({tags:[`log-streams`],method:`get`,path:`/{id}`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:log_streams`]}],responses:{200:{content:{"application/json":{schema:Zr}},description:`A log stream`}}}),handler:async e=>{let t=wW(e),{id:n}=e.req.valid(`param`),r=await t.get(e.var.tenant_id,n);if(!r)throw new m(404);return e.json(r)}}),DW=L({route:(0,f.createRoute)({tags:[`log-streams`],method:`post`,path:`/`,request:{body:{content:{"application/json":{schema:f.z.object(Xr.shape)}}},headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`create:log_streams`]}],responses:{201:{content:{"application/json":{schema:Zr}},description:`The created log stream`}}}),handler:async e=>{let t=wW(e),n=e.req.valid(`json`),r=await t.create(e.var.tenant_id,n);return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Create a Log Stream`,targetType:`log_stream`,targetId:r.id,afterState:r}),e.json(r,{status:201})}}),OW=L({route:(0,f.createRoute)({tags:[`log-streams`],method:`patch`,path:`/{id}`,request:{params:f.z.object({id:f.z.string()}),body:{content:{"application/json":{schema:f.z.object(Zr.shape).partial()}}},headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`update:log_streams`]}],responses:{200:{content:{"application/json":{schema:Zr}},description:`The updated log stream`}}}),handler:async e=>{let t=wW(e),{id:n}=e.req.valid(`param`),r=e.req.valid(`json`);if(!await t.update(e.var.tenant_id,n,r))throw new m(404);let i=await t.get(e.var.tenant_id,n);if(!i)throw new m(404);return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Update a Log Stream`,targetType:`log_stream`,targetId:n,afterState:i}),e.json(i)}}),kW=L({route:(0,f.createRoute)({tags:[`log-streams`],method:`delete`,path:`/{id}`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`delete:log_streams`]}],responses:{204:{description:`Log stream deleted`}}}),handler:async e=>{let t=wW(e),{id:n}=e.req.valid(`param`);if(!await t.remove(e.var.tenant_id,n))throw new m(404);return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Delete a Log Stream`,targetType:`log_stream`,targetId:n}),e.body(null,204)}}),AW=new f.OpenAPIHono().openapiRoutes([TW,EW,DW,OW,kW]),jW=`***`,MW=ti.extend({credentials:ti.shape.credentials.extend({client_secret:f.z.string()})});function NW(e){return{...e,credentials:{...e.credentials,client_secret:jW}}}function PW(e){let t=e.env.data.migrationSources;if(!t)throw new m(501,{message:`Migration sources are not supported by this adapter`});return t}var FW=L({route:(0,f.createRoute)({tags:[`migration-sources`],method:`get`,path:`/`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:migration_sources`]}],responses:{200:{content:{"application/json":{schema:f.z.array(MW)}},description:`List of migration sources`}}}),handler:async e=>{let t=await PW(e).list(e.var.tenant_id);return e.json(t.map(NW))}}),IW=L({route:(0,f.createRoute)({tags:[`migration-sources`],method:`get`,path:`/{id}`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:migration_sources`]}],responses:{200:{content:{"application/json":{schema:MW}},description:`A migration source`}}}),handler:async e=>{let t=PW(e),{id:n}=e.req.valid(`param`),r=await t.get(e.var.tenant_id,n);if(!r)throw new m(404);return e.json(NW(r))}}),LW=L({route:(0,f.createRoute)({tags:[`migration-sources`],method:`post`,path:`/`,request:{body:{content:{"application/json":{schema:f.z.object(ei.shape)}}},headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`create:migration_sources`]}],responses:{201:{content:{"application/json":{schema:MW}},description:`The created migration source`}}}),handler:async e=>{let t=PW(e),n=e.req.valid(`json`),r=await t.create(e.var.tenant_id,n);return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Create a Migration Source`,targetType:`migration_source`,targetId:r.id,afterState:NW(r)}),e.json(NW(r),{status:201})}}),RW=L({route:(0,f.createRoute)({tags:[`migration-sources`],method:`patch`,path:`/{id}`,request:{params:f.z.object({id:f.z.string()}),body:{content:{"application/json":{schema:f.z.object(ei.shape).partial()}}},headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`update:migration_sources`]}],responses:{200:{content:{"application/json":{schema:MW}},description:`The updated migration source`}}}),handler:async e=>{let t=PW(e),{id:n}=e.req.valid(`param`),r=e.req.valid(`json`);if(!await t.update(e.var.tenant_id,n,r))throw new m(404);let i=await t.get(e.var.tenant_id,n);if(!i)throw new m(404);return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Update a Migration Source`,targetType:`migration_source`,targetId:n,afterState:NW(i)}),e.json(NW(i))}}),zW=L({route:(0,f.createRoute)({tags:[`migration-sources`],method:`delete`,path:`/{id}`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`delete:migration_sources`]}],responses:{204:{description:`Migration source deleted`}}}),handler:async e=>{let t=PW(e),{id:n}=e.req.valid(`param`);if(!await t.remove(e.var.tenant_id,n))throw new m(404);return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Delete a Migration Source`,targetType:`migration_source`,targetId:n}),e.body(null,204)}}),BW=new f.OpenAPIHono().openapiRoutes([FW,IW,LW,RW,zW]);function VW(e){return!!e&&typeof e==`object`&&!Array.isArray(e)}function HW(e,t){if(!VW(t))return e;let n=VW(e)?{...e}:{};for(let[e,r]of Object.entries(t))n[e]=VW(r)?HW(n[e],r):r;return n}async function UW(e,t){let n=await e.env.data.tenants.get(e.var.tenant_id);if(!n)throw new m(404,{message:`Tenant not found`});return n.attack_protection?.[t]??{}}async function WW(e,t,n){let r=await e.env.data.tenants.get(e.var.tenant_id);if(!r)throw new m(404,{message:`Tenant not found`});let i=r.attack_protection??{},a=HW(i[t]??{},n??{}),o={...i,[t]:a};return await e.env.data.tenants.update(e.var.tenant_id,{attack_protection:o}),await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Update Attack Protection (${t})`,targetType:`attack_protection`,targetId:e.var.tenant_id}),o[t]}var GW=L({route:(0,f.createRoute)({tags:[`attack-protection`],method:`get`,path:`/breached-password-detection`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:attack_protection`]}],responses:{200:{content:{"application/json":{schema:ni}},description:`Breached password detection settings`}}}),handler:async e=>e.json(await UW(e,`breached_password_detection`))}),KW=L({route:(0,f.createRoute)({tags:[`attack-protection`],method:`patch`,path:`/breached-password-detection`,request:{body:{content:{"application/json":{schema:ni}}},headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`update:attack_protection`]}],responses:{200:{content:{"application/json":{schema:ni}},description:`Updated settings`}}}),handler:async e=>{let t=ni.parse(await e.req.json());return e.json(await WW(e,`breached_password_detection`,t))}}),qW=L({route:(0,f.createRoute)({tags:[`attack-protection`],method:`get`,path:`/brute-force-protection`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:attack_protection`]}],responses:{200:{content:{"application/json":{schema:ri}},description:`Brute force protection settings`}}}),handler:async e=>e.json(await UW(e,`brute_force_protection`))}),JW=L({route:(0,f.createRoute)({tags:[`attack-protection`],method:`patch`,path:`/brute-force-protection`,request:{body:{content:{"application/json":{schema:ri}}},headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`update:attack_protection`]}],responses:{200:{content:{"application/json":{schema:ri}},description:`Updated settings`}}}),handler:async e=>{let t=ri.parse(await e.req.json());return e.json(await WW(e,`brute_force_protection`,t))}}),YW=L({route:(0,f.createRoute)({tags:[`attack-protection`],method:`get`,path:`/suspicious-ip-throttling`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:attack_protection`]}],responses:{200:{content:{"application/json":{schema:ii}},description:`Suspicious IP throttling settings`}}}),handler:async e=>e.json(await UW(e,`suspicious_ip_throttling`))}),XW=L({route:(0,f.createRoute)({tags:[`attack-protection`],method:`patch`,path:`/suspicious-ip-throttling`,request:{body:{content:{"application/json":{schema:ii}}},headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`update:attack_protection`]}],responses:{200:{content:{"application/json":{schema:ii}},description:`Updated settings`}}}),handler:async e=>{let t=ii.parse(await e.req.json());return e.json(await WW(e,`suspicious_ip_throttling`,t))}}),ZW=new f.OpenAPIHono().openapiRoutes([GW,KW,qW,JW,YW,XW]);function QW(e){return async(t,n)=>(t.env||={},!t.env.data&&e.dataAdapter&&(t.env.data=e.dataAdapter),e.hooks&&(t.env.hooks={...e.hooks,...t.env.hooks||{}}),e.samlSigner&&(t.env.samlSigner=e.samlSigner),e.poweredByLogo&&(t.env.poweredByLogo=e.poweredByLogo),t.env.codeExecutor==null&&e.codeExecutor&&(t.env.codeExecutor=e.codeExecutor),e.webhookInvoker&&(t.env.webhookInvoker=e.webhookInvoker),e.outbox&&(t.env.outbox=e.outbox),e.userLinkingMode&&(t.env.userLinkingMode=e.userLinkingMode),e.usernamePasswordProvider&&(t.env.usernamePasswordProvider=e.usernamePasswordProvider),e.signingKeyMode&&(t.env.signingKeyMode=e.signingKeyMode),n())}var $W=new Set([`/callback`,`/login/callback`,`/authorize/resume`]);function eG(e){if($W.has(e.req.path))return!0;if(e.req.path===`/authorize`){let t=e.req.query(`client_id`);if(t&&!mD(t))return!0}return!1}async function tG(e,t){let n=e.req.header(`x-forwarded-host`),r=e.req.header(`host`),i=n||r||new URL(Fa(e.env)).host;e.set(`host`,i);let a=e.var.user;if(a?.tenant_id)return e.set(`tenant_id`,a.tenant_id),await t();let o=e.req.header(`tenant-id`);if(o)return e.set(`tenant_id`,o),await t();let s=new URL(Fa(e.env)).host.toLowerCase(),c=e=>e===s||e.endsWith(`.${s}`),l=i.toLowerCase();if(l.endsWith(`.${s}`)){let n=l.slice(0,-(s.length+1));if(n&&!n.includes(`.`))return e.set(`tenant_id`,n),e.set(`custom_domain`,i),await t()}for(let i of[n,r]){if(!i)continue;let n=i.toLowerCase();if(c(n))continue;let r=await e.env.data.customDomains.getByDomain(n);if(r)return e.set(`tenant_id`,r.tenant_id),e.set(`custom_domain`,i),await t()}let u=e.req.query(`tenant_id`);if(u)return e.set(`tenant_id`,u),await t();if(!eG(e)){let{tenants:t}=await e.env.data.tenants.list({per_page:2});t.length===1&&t[0]&&e.set(`tenant_id`,t[0].id)}return await t()}var nG=f.z.object({name:f.z.string(),version:f.z.string(),env:f.z.object({node:f.z.string().optional()}).optional()});function rG(e){if(e)try{let t=e;try{t=atob(e)}catch{}try{let e=JSON.parse(t);return nG.parse(e)}catch{}}catch{return}}var iG=async(e,t)=>{let n=e.req.query(`auth0Client`)?.slice(0,255),r=(e.req.header(`x-forwarded-host`)&&e.req.header(`x-forwarded-for`)?e.req.header(`x-forwarded-for`)?.split(`,`)[0]?.trim():e.req.header(`cf-connecting-ip`)||e.req.header(`x-real-ip`))?.slice(0,45),i=e.req.header(`user-agent`)?.slice(0,512),a=e.req.header(`cf-ipcountry`)?.slice(0,2),o=n?rG(n):void 0;o&&e.set(`auth0_client`,o),r&&e.set(`ip`,r),i&&e.set(`useragent`,i),a&&e.set(`countryCode`,a),await t()},aG=new Set([`include-linked`]);function oG(e){let t=new Set;if(!e)return t;for(let n of e.split(`,`)){let e=n.split(`;`)[0]?.split(`=`)[0]?.trim().toLowerCase();e&&aG.has(e)&&t.add(e)}return t}var sG=async(e,t)=>{let n=oG(e.req.header(`prefer`)),r=new Set;e.set(`prefer`,{has:e=>n.has(e),applied:e=>{r.add(e)},appliedTokens:()=>Array.from(r)}),await t(),r.size>0&&e.res.headers.set(`Preference-Applied`,Array.from(r).join(`, `))};function cG(e,t,n,r){try{let i=`${e}:${t}:${JSON.stringify(n)}`;return r?`${r}:${i}`:i}catch{let n=`${e}:${t}:${Date.now()}-${Math.random()}`;return r?`${r}:${n}`:n}}function lG(e,t){let{cache:n,defaultTtl:r,customTtls:i={},excludeMethods:a=[],cacheEntities:o=[],keyPrefix:s}=t,c=new Set(a),l=o.length===0,u=new Set(o),d={};for(let[t,a]of Object.entries(e)){if(a==null)continue;if(typeof a==`function`){d[t]=a;continue}let e=l||u.has(t),o={};for(let l of aN(a)){let u=a[l];if(typeof u==`function`){if(!e){o[l]=u;continue}let d=`${t}:${l}`;if(c.has(d)){o[l]=u;continue}let f=i[d]??r,p=[`create`,`update`,`remove`,`delete`,`set`,`used`,`add`].some(e=>l.startsWith(e));o[l]=async(...e)=>{if(p){let r=await u.apply(a,e);try{if(e.length>=2&&[`update`,`remove`,`delete`].includes(l)){let r=cG(t,`get`,[e[0],e[1]],s);await n.delete(r);let i=cG(t,`list`,[e[0],{}],s);await n.delete(i)}let r=s?`${s}:${t}:`:`${t}:`;await n.deleteByPrefix(r)}catch{}return r}let r=cG(t,l,e,s),i=await n.get(r);if(i!==null)if(i&&typeof i==`object`&&`isCachedNull`in i){let e=i;return e.isCachedNull?null:e.value}else return i;let o=await u.apply(a,e);return f>=0&&(o===null?await n.set(r,{value:null,isCachedNull:!0},f):await n.set(r,o,f)),o}}else o[l]=u}d[t]=o}return d}var uG={freshSeconds:300,staleSeconds:600,keyPrefix:`client-bundle`};function dG(e,t,n=uG.keyPrefix){return`${n}:${e}:${t}`}var fG=[`tenants`,`clients`,`connections`,`clientConnections`,`branding`,`resourceServers`,`promptSettings`,`hooks`,`themes`];async function pG(e,t,n){let[r,i,a,o,s,c,l,u,d]=await Promise.all([e.tenants.get(t),e.clients.get(t,n),e.connections.list(t),e.clientConnections.listByClient(t,n),e.branding.get(t),e.resourceServers.list(t),e.promptSettings.get(t).catch(()=>null),e.hooks.list(t),e.themes.get(t,`default`)]);return{tenant:r,client:i,connections:a,clientConnections:o,branding:s,resourceServers:c,promptSettings:l,hooks:u,defaultTheme:d}}async function mG(e,t,n,r,i={}){let a={...uG,...i.config??{}},o=i.now??Date.now,s=dG(n,r,a.keyPrefix),c=await t.get(s),l=o();return c&&l<c.freshUntil?c.value:c&&l<c.staleUntil&&i.scheduleRefresh?(i.scheduleRefresh(hG(e,t,n,r,a,o).catch(()=>void 0)),c.value):hG(e,t,n,r,a,o)}async function hG(e,t,n,r,i,a){let o=await pG(e,n,r),s=a(),c={value:o,freshUntil:s+i.freshSeconds*1e3,staleUntil:s+(i.freshSeconds+i.staleSeconds)*1e3};return await t.set(gG(n,r,i.keyPrefix),c,i.freshSeconds+i.staleSeconds),o}function gG(e,t,n){return dG(e,t,n)}function _G(e,t,n){let r=(e,r)=>t.delete(dG(e,r,n)).catch(()=>{}),i=e=>{let r=`${n??`client-bundle`}:${e}:`;return t.deleteByPrefix(r).catch(()=>0)};return{...e,tenants:{...e.tenants,update:async(t,n)=>{let r=await e.tenants.update(t,n);return await i(t),r},remove:async t=>{let n=await e.tenants.remove(t);return await i(t),n}},clients:{...e.clients,update:async(t,n,i)=>{let a=await e.clients.update(t,n,i);return await r(t,n),a},remove:async(t,n)=>{let i=await e.clients.remove(t,n);return await r(t,n),i}},clientConnections:{...e.clientConnections,updateByClient:async(t,n,i)=>{let a=await e.clientConnections.updateByClient(t,n,i);return await r(t,n),a},addClientToConnection:async(t,n,i)=>{let a=await e.clientConnections.addClientToConnection(t,n,i);return await r(t,i),a},removeClientFromConnection:async(t,n,i)=>{let a=await e.clientConnections.removeClientFromConnection(t,n,i);return await r(t,i),a}},connections:{...e.connections,update:async(t,n,r)=>{let a=await e.connections.update(t,n,r);return await i(t),a},remove:async(t,n)=>{let r=await e.connections.remove(t,n);return await i(t),r}},branding:{...e.branding,set:async(t,n)=>{let r=await e.branding.set(t,n);return await i(t),r}},themes:{...e.themes,create:async(t,n,r)=>{let a=await e.themes.create(t,n,r);return await i(t),a},update:async(t,n,r)=>{let a=await e.themes.update(t,n,r);return await i(t),a},remove:async(t,n)=>{let r=await e.themes.remove(t,n);return await i(t),r}},resourceServers:{...e.resourceServers,update:async(t,n,r)=>{let a=await e.resourceServers.update(t,n,r);return await i(t),a},remove:async(t,n)=>{let r=await e.resourceServers.remove(t,n);return await i(t),r}},promptSettings:{...e.promptSettings,set:async(t,n)=>{let r=await e.promptSettings.set(t,n);return await i(t),r}},hooks:{...e.hooks,update:async(t,n,r)=>{let a=await e.hooks.update(t,n,r);return await i(t),a},remove:async(t,n)=>{let r=await e.hooks.remove(t,n);return await i(t),r}}}}function vG(e){if(!e)return;let t=e.filter(e=>e!==void 0);if(t.length!==0)return t.length===1?t[0]:{beforeCreate:yG(t.map(e=>e.beforeCreate),(e,t)=>[e,t],(e,t)=>[e[0],t]),afterCreate:bG(t.map(e=>e.afterCreate)),beforeUpdate:yG(t.map(e=>e.beforeUpdate),(e,t,n)=>[e,t,n],(e,t)=>[e[0],e[1],t]),afterUpdate:bG(t.map(e=>e.afterUpdate)),beforeDelete:bG(t.map(e=>e.beforeDelete)),afterDelete:bG(t.map(e=>e.afterDelete))}}function yG(e,t,n){let r=e.filter(e=>e!==void 0);if(r.length!==0)return r.length===1?r[0]:async(...e)=>{let i=t(...e),a=i[i.length-1];for(let e of r)a=await e(...i),i=n(i,a);return a}}function bG(e){let t=e.filter(e=>e!==void 0);if(t.length!==0)return t.length===1?t[0]:async(...e)=>{for(let n of t)await n(...e)}}function xG(e){if(!e)return;let t=e.filter(e=>e!==void 0);if(t.length!==0)return t.length===1?t[0]:{beforeAssign:yG(t.map(e=>e.beforeAssign),(e,t,n)=>[e,t,n],(e,t)=>[e[0],e[1],t]),afterAssign:bG(t.map(e=>e.afterAssign)),beforeRemove:yG(t.map(e=>e.beforeRemove),(e,t,n)=>[e,t,n],(e,t)=>[e[0],e[1],t]),afterRemove:bG(t.map(e=>e.afterRemove))}}function SG(e,t,n){return t?{...e,create:async(r,i)=>{let a=i;t.beforeCreate&&(a=await t.beforeCreate(n,i));let o=await e.create(r,a);return t.afterCreate&&await t.afterCreate(n,o),o},update:async(r,i,a)=>{let o=a;t.beforeUpdate&&(o=await t.beforeUpdate(n,i,a));let s=await e.update(r,i,o);if(t.afterUpdate){let a;a=typeof s==`boolean`?await e.get(r,i):s,a&&await t.afterUpdate(n,i,a)}return s},remove:async(r,i)=>{t.beforeDelete&&await t.beforeDelete(n,i);let a=await e.remove(r,i);return t.afterDelete&&a&&await t.afterDelete(n,i),a}}:e}function CG(e,t,n){return t?{...e,assign:async(r,i,a)=>{let o=a;t.beforeAssign&&(o=await t.beforeAssign(n,i,a));let s=await e.assign(r,i,o);return t.afterAssign&&s&&await t.afterAssign(n,i,o),s},remove:async(r,i,a)=>{let o=a;t.beforeRemove&&(o=await t.beforeRemove(n,i,a));let s=await e.remove(r,i,o);return t.afterRemove&&s&&await t.afterRemove(n,i,o),s}}:e}function wG(e,t,n){return t?{...e,create:async r=>{let i=r;t.beforeCreate&&(i=await t.beforeCreate(n,r));let a=await e.create(i);return t.afterCreate&&await t.afterCreate(n,a),a},update:async(r,i)=>{let a=i;if(t.beforeUpdate&&(a=await t.beforeUpdate(n,r,i)),await e.update(r,a),t.afterUpdate){let i=await e.get(r);i&&await t.afterUpdate(n,r,i)}},remove:async r=>{t.beforeDelete&&await t.beforeDelete(n,r);let i=await e.remove(r);return t.afterDelete&&i&&await t.afterDelete(n,r),i}}:e}function TG(e,t){let{tenantId:n,entityHooks:r}=t;if(!r)return e;let i={connections:vG(r.connections),roles:vG(r.roles),resourceServers:vG(r.resourceServers),rolePermissions:xG(r.rolePermissions),tenants:vG(r.tenants)},a={tenantId:n,adapters:e};return{...e,connections:SG(e.connections,i.connections,a),roles:SG(e.roles,i.roles,a),resourceServers:SG(e.resourceServers,i.resourceServers,a),rolePermissions:CG(e.rolePermissions,i.rolePermissions,a),tenants:wG(e.tenants,i.tenants,a)}}var EG=class{config;cache=new Map;accessOrder=new Map;accessCounter=0;cleanupTimer;constructor(e={}){this.config=e;let t=e.cleanupIntervalMs;t&&t>0&&(this.cleanupTimer=setInterval(()=>{this.cleanupExpired()},t))}async get(e){let t=this.cache.get(e);return t?t.expiresAt&&t.expiresAt<new Date?(this.cache.delete(e),this.accessOrder.delete(e),null):(this.accessOrder.set(e,++this.accessCounter),t.value):null}async set(e,t,n){let r,i=n??this.config.defaultTtlSeconds,a=i!==void 0,o=a?Math.max(0,i):0;a&&(r=new Date(Date.now()+(o>0?o*1e3:-1))),this.config.maxEntries&&this.cache.size>=this.config.maxEntries&&!this.cache.has(e)&&this.evictLeastRecentlyUsed();let s={value:t,expiresAt:r};this.cache.set(e,s),this.accessOrder.set(e,++this.accessCounter)}async delete(e){let t=this.cache.has(e);return this.cache.delete(e),this.accessOrder.delete(e),t}async deleteByPrefix(e){let t=0;for(let n of this.cache.keys())n.startsWith(e)&&(this.cache.delete(n),this.accessOrder.delete(n),t++);return t}async clear(){this.cache.clear(),this.accessOrder.clear(),this.accessCounter=0}getStats(){return{size:this.cache.size,maxEntries:this.config.maxEntries,defaultTtlSeconds:this.config.defaultTtlSeconds}}cleanupExpired(){let e=new Date,t=[];for(let[n,r]of this.cache.entries())r.expiresAt&&r.expiresAt<e&&t.push(n);for(let e of t)this.cache.delete(e),this.accessOrder.delete(e)}evictLeastRecentlyUsed(){let e=null,t=1/0;for(let[n,r]of this.accessOrder.entries())r<t&&(t=r,e=n);e&&(this.cache.delete(e),this.accessOrder.delete(e))}destroy(){this.cleanupTimer&&=(clearInterval(this.cleanupTimer),void 0)}};function DG(e={}){return new EG(e)}var OG=bt.extend({forms:f.z.array(dr)}),kG=L({route:(0,f.createRoute)({tags:[`forms`],method:`get`,path:`/`,request:{query:eo,headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:forms`]}],responses:{200:{content:{"application/json":{schema:f.z.union([f.z.array(dr),OG])}},description:`List of forms`}}}),handler:async e=>{let t=e.var.tenant_id,{page:n,per_page:r,include_totals:i=!1,sort:a,q:o}=e.req.valid(`query`),s=await e.env.data.forms.list(t,{page:n,per_page:r,include_totals:i,sort:to(a),q:o});return i?e.json(s):e.json(s.forms)}}),AG=L({route:(0,f.createRoute)({tags:[`forms`],method:`get`,path:`/{id}`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:forms`]}],responses:{200:{content:{"application/json":{schema:dr}},description:`A form`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n}=e.req.valid(`param`),r=await e.env.data.forms.get(t,n);if(!r)throw new m(404);return e.json(r)}}),jG=L({route:(0,f.createRoute)({tags:[`forms`],method:`delete`,path:`/{id}`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`delete:forms`]}],responses:{200:{description:`Status`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n}=e.req.valid(`param`);if(!await e.env.data.forms.remove(t,n))throw new m(404,{message:`Form not found`});return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Delete a Form`,targetType:`form`,targetId:n}),e.text(`OK`)}}),MG=L({route:(0,f.createRoute)({tags:[`forms`],method:`patch`,path:`/{id}`,request:{body:{content:{"application/json":{schema:ur.partial()}}},params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`update:forms`]}],responses:{200:{content:{"application/json":{schema:dr}},description:`The updated form`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n}=e.req.valid(`param`),r=e.req.valid(`json`);if(!await e.env.data.forms.update(t,n,r))throw new m(404,{message:`Form not found`});let i=await e.env.data.forms.get(t,n);if(!i)throw new m(404,{message:`Form not found`});return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Update a Form`,targetType:`form`,targetId:n,afterState:i}),e.json(i)}}),NG=L({route:(0,f.createRoute)({tags:[`forms`],method:`post`,path:`/`,request:{body:{content:{"application/json":{schema:ur}}},headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`create:forms`]}],responses:{201:{content:{"application/json":{schema:dr}},description:`A form`}}}),handler:async e=>{let t=e.var.tenant_id,n=e.req.valid(`json`),r=await e.env.data.forms.create(t,n);return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Create a Form`,targetType:`form`,targetId:r.id,afterState:r}),e.json(r,{status:201})}}),PG=new f.OpenAPIHono().openapiRoutes([kG,AG,jG,MG,NG]),FG=bt.extend({flows:f.z.array(yt)}),IG=L({route:(0,f.createRoute)({tags:[`flows`],method:`get`,path:`/`,request:{query:eo,headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:flows`]}],responses:{200:{content:{"application/json":{schema:f.z.union([f.z.array(yt),FG])}},description:`List of flows`}}}),handler:async e=>{let t=e.var.tenant_id,{page:n,per_page:r,include_totals:i=!1,sort:a,q:o}=e.req.valid(`query`),s=await e.env.data.flows.list(t,{page:n,per_page:r,include_totals:i,sort:to(a),q:o});return i?e.json(s):e.json(s.flows)}}),LG=L({route:(0,f.createRoute)({tags:[`flows`],method:`get`,path:`/{id}`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:flows`]}],responses:{200:{content:{"application/json":{schema:yt}},description:`A flow`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n}=e.req.valid(`param`),r=await e.env.data.flows.get(t,n);if(!r)throw new m(404);return e.json(r)}}),RG=L({route:(0,f.createRoute)({tags:[`flows`],method:`delete`,path:`/{id}`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`delete:flows`]}],responses:{200:{description:`Status`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n}=e.req.valid(`param`);if(!await e.env.data.flows.remove(t,n))throw new m(404,{message:`Flow not found`});return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Delete a Flow`,targetType:`flow`,targetId:n}),e.text(`OK`)}}),zG=L({route:(0,f.createRoute)({tags:[`flows`],method:`patch`,path:`/{id}`,request:{body:{content:{"application/json":{schema:f.z.object(vt.shape).partial()}}},params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`update:flows`]}],responses:{200:{content:{"application/json":{schema:yt}},description:`The updated flow`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n}=e.req.valid(`param`),r=e.req.valid(`json`),i=await e.env.data.flows.update(t,n,r);if(!i)throw new m(404,{message:`Flow not found`});return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Update a Flow`,targetType:`flow`,targetId:n,afterState:i}),e.json(i)}}),BG=L({route:(0,f.createRoute)({tags:[`flows`],method:`post`,path:`/`,request:{body:{content:{"application/json":{schema:f.z.object(vt.shape)}}},headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`create:flows`]}],responses:{201:{content:{"application/json":{schema:yt}},description:`The created flow`}}}),handler:async e=>{let t=e.var.tenant_id,n=e.req.valid(`json`),r=await e.env.data.flows.create(t,n);return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Create a Flow`,targetType:`flow`,targetId:r.id,afterState:r}),e.json(r,{status:201})}}),VG=new f.OpenAPIHono().openapiRoutes([IG,LG,RG,zG,BG]),HG=bt.extend({roles:f.z.array($i)}),UG=bt.extend({permissions:f.z.array(Bi)}),WG=L({route:(0,f.createRoute)({tags:[`roles`],method:`get`,path:`/`,request:{query:eo,headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:roles`]}],responses:{200:{content:{"application/json":{schema:f.z.union([f.z.array($i),HG])}},description:`List of roles`}}}),handler:async e=>{let{page:t,per_page:n,include_totals:r,sort:i,q:a}=e.req.valid(`query`),o=e.var.tenant_id;if(!o)throw new m(400,{message:`tenant-id header is required`});let s=await e.env.data.roles.list(o,{page:t,per_page:n,include_totals:r,sort:to(i),q:a});return r?e.json(s):e.json(s.roles)}}),GG=L({route:(0,f.createRoute)({tags:[`roles`],method:`get`,path:`/{id}`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:roles`]}],responses:{200:{content:{"application/json":{schema:$i}},description:`A role`}}}),handler:async e=>{let{id:t}=e.req.valid(`param`),n=e.var.tenant_id;if(!n)throw new m(400,{message:`tenant-id header is required`});let r=await e.env.data.roles.get(n,t);if(!r)throw new m(404);return e.json(r)}}),KG=L({route:(0,f.createRoute)({tags:[`roles`],method:`post`,path:`/`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),body:{content:{"application/json":{schema:Qi}}}},security:[{Bearer:[`create:roles`]}],responses:{201:{content:{"application/json":{schema:$i}},description:`Role created`}}}),handler:async e=>{let t=e.req.valid(`json`),n=e.var.tenant_id;if(!n)throw new m(400,{message:`tenant-id header is required`});let r=await e.env.data.roles.create(n,t);return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Create a Role`,targetType:`role`,targetId:r.id,afterState:r}),e.json(r,{status:201})}}),qG=L({route:(0,f.createRoute)({tags:[`roles`],method:`patch`,path:`/{id}`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()}),body:{content:{"application/json":{schema:Qi.partial()}}}},security:[{Bearer:[`update:roles`]}],responses:{200:{content:{"application/json":{schema:$i}},description:`Updated role`}}}),handler:async e=>{let{id:t}=e.req.valid(`param`),n=e.req.valid(`json`),r=e.var.tenant_id;if(!r)throw new m(400,{message:`tenant-id header is required`});if(!await e.env.data.roles.update(r,t,n))throw new m(404);let i=await e.env.data.roles.get(r,t);return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Update a Role`,targetType:`role`,targetId:t,afterState:i}),e.json(i)}}),JG=L({route:(0,f.createRoute)({tags:[`roles`],method:`delete`,path:`/{id}`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`delete:roles`]}],responses:{200:{description:`Status`}}}),handler:async e=>{let{id:t}=e.req.valid(`param`),n=e.var.tenant_id;if(!n)throw new m(400,{message:`tenant-id header is required`});if(!await e.env.data.roles.remove(n,t))throw new m(404);return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Delete a Role`,targetType:`role`,targetId:t}),e.text(`OK`)}}),YG=L({route:(0,f.createRoute)({tags:[`roles`],method:`get`,path:`/{id}/permissions`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()}),query:eo},security:[{Bearer:[`read:roles`]}],responses:{200:{content:{"application/json":{schema:f.z.union([Vi,UG])}},description:`Role permissions`}}}),handler:async e=>{let{id:t}=e.req.valid(`param`),{page:n,per_page:r,include_totals:i,sort:a,q:o}=e.req.valid(`query`),s=e.var.tenant_id;if(!s)throw new m(400,{message:`tenant-id header is required`});if(!await e.env.data.roles.get(s,t))throw new m(404,{message:`Role not found`});if(i){let i=await e.env.data.rolePermissions.list(s,t,{per_page:1e4,sort:to(a),q:o}),c=r??50,l=(n??0)*c,u=i.slice(l,l+c);return e.json({permissions:u,total:i.length,start:l,limit:c,length:u.length})}let c=await e.env.data.rolePermissions.list(s,t,{page:n,per_page:r,include_totals:!1,sort:to(a),q:o});return e.json(c)}}),XG=L({route:(0,f.createRoute)({tags:[`roles`],method:`post`,path:`/{id}/permissions`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()}),body:{content:{"application/json":{schema:f.z.object({permissions:f.z.array(f.z.object({permission_name:f.z.string(),resource_server_identifier:f.z.string()}))})}}}},security:[{Bearer:[`update:roles`]}],responses:{204:{description:`Permissions assigned to role`}}}),handler:async e=>{let{id:t}=e.req.valid(`param`),{permissions:n}=e.req.valid(`json`),r=e.var.tenant_id;if(!r)throw new m(400,{message:`tenant-id header is required`});if(!await e.env.data.roles.get(r,t))throw new m(404,{message:`Role not found`});let i=n.map(e=>({role_id:t,resource_server_identifier:e.resource_server_identifier,permission_name:e.permission_name}));if(!await e.env.data.rolePermissions.assign(r,t,i))throw new m(500,{message:`Failed to assign permissions to role`});return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Assign Permissions to a Role`,targetType:`role_permission`,targetId:t}),e.body(null,204)}}),ZG=L({route:(0,f.createRoute)({tags:[`roles`],method:`delete`,path:`/{id}/permissions`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()}),body:{content:{"application/json":{schema:f.z.object({permissions:f.z.array(f.z.object({permission_name:f.z.string(),resource_server_identifier:f.z.string()}))})}}}},security:[{Bearer:[`update:roles`]}],responses:{200:{description:`Permissions removed from role`}}}),handler:async e=>{let{id:t}=e.req.valid(`param`),{permissions:n}=e.req.valid(`json`),r=e.var.tenant_id;if(!r)throw new m(400,{message:`tenant-id header is required`});if(!await e.env.data.roles.get(r,t))throw new m(404,{message:`Role not found`});if(!await e.env.data.rolePermissions.remove(r,t,n))throw new m(500,{message:`Failed to remove permissions from role`});return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Remove Permissions from a Role`,targetType:`role_permission`,targetId:t}),e.json({message:`Permissions removed successfully`})}}),QG=new f.OpenAPIHono().openapiRoutes([WG,GG,KG,qG,JG,YG,XG,ZG]),$G=bt.extend({resource_servers:f.z.array(Li)});async function eK(e,t,n){return await e.env.data.resourceServers.get(t,n)||((await e.env.data.resourceServers.list(t,{})).resource_servers.find(e=>e.identifier===n)??null)}var tK=L({route:(0,f.createRoute)({tags:[`resource-servers`],method:`get`,path:`/`,request:{query:eo,headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:resource_servers`]}],responses:{200:{content:{"application/json":{schema:f.z.union([f.z.array(Li),$G])}},description:`List of resource servers`}}}),handler:async e=>{let t=e.var.tenant_id,{page:n,per_page:r,include_totals:i=!1,sort:a,q:o}=e.req.valid(`query`),s=await e.env.data.resourceServers.list(t,{page:n,per_page:r,include_totals:i,sort:to(a),q:o});return i?e.json(s):e.json(s.resource_servers)}}),nK=L({route:(0,f.createRoute)({tags:[`resource-servers`],method:`get`,path:`/{id}`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:resource_servers`]}],responses:{200:{content:{"application/json":{schema:Li}},description:`A resource server`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n}=e.req.valid(`param`),r=await eK(e,t,n);if(!r)throw new m(404);return e.json(r)}}),rK=L({route:(0,f.createRoute)({tags:[`resource-servers`],method:`delete`,path:`/{id}`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`delete:resource_servers`]}],responses:{200:{description:`Status`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n}=e.req.valid(`param`),r=await eK(e,t,n);if(!r)throw new m(404,{message:`Resource server not found`});if(r.is_system)throw new m(403,{message:`System entities cannot be deleted`});if((await e.env.data.tenants.get(t))?.default_audience===r.identifier)throw new m(409,{message:`Resource server is set as the tenant's default_audience; clear it before deleting`});return await e.env.data.resourceServers.remove(t,r.id),await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Delete a Resource Server`,targetType:`resource_server`,targetId:r.id,beforeState:r}),e.text(`OK`)}}),iK=L({route:(0,f.createRoute)({tags:[`resource-servers`],method:`patch`,path:`/{id}`,request:{body:{content:{"application/json":{schema:f.z.object(Ii.shape).partial()}}},params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`update:resource_servers`]}],responses:{200:{content:{"application/json":{schema:Li}},description:`The updated resource server`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n}=e.req.valid(`param`),r=e.req.valid(`json`),i=await eK(e,t,n);if(!i)throw new m(404,{message:`Resource server not found`});if(i.is_system)throw new m(403,{message:`System entities cannot be modified`});let a=i.id;await e.env.data.resourceServers.update(t,a,r);let o=await e.env.data.resourceServers.get(t,a);if(!o)throw new m(404,{message:`Resource server not found`});return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Update a Resource Server`,targetType:`resource_server`,targetId:o.id,beforeState:i,afterState:o}),e.json(o)}}),aK=L({route:(0,f.createRoute)({tags:[`resource-servers`],method:`post`,path:`/`,request:{body:{content:{"application/json":{schema:f.z.object(Ii.shape)}}},headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`create:resource_servers`]}],responses:{201:{content:{"application/json":{schema:Li}},description:`A resource server`}}}),handler:async e=>{let t=e.var.tenant_id,n=e.req.valid(`json`),r=await e.env.data.resourceServers.create(t,n);return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Create a Resource Server`,targetType:`resource_server`,targetId:r.id,afterState:r}),e.json(r,{status:201})}}),oK=new f.OpenAPIHono().openapiRoutes([tK,nK,rK,iK,aK]),sK=f.z.object({per_page:f.z.string().min(1).optional().default(`50`).transform(e=>parseInt(e,10)).openapi({description:`Number of results per page. Defaults to 50.`}),page:f.z.string().min(0).optional().default(`0`).transform(e=>parseInt(e,10)).openapi({description:`Page index of the results to return. First page is 0.`}),include_totals:f.z.string().optional().default(`false`).transform(e=>e===`true`).openapi({description:`Return results inside an object that contains the total result count (true) or as a direct array of results (false, default).`}),from:f.z.string().optional().openapi({description:`Optional Id from which to start selection.`}),take:f.z.string().min(1).optional().transform(e=>e?parseInt(e,10):void 0).openapi({description:`Number of results per page. Defaults to 50.`}),audience:f.z.string().optional().openapi({description:`Optional filter on audience.`}),client_id:f.z.string().optional().openapi({description:`Optional filter on client_id.`}),allow_any_organization:f.z.string().optional().transform(e=>e===`true`?!0:e===`false`?!1:void 0).openapi({description:`Optional filter on allow_any_organization.`}),subject_type:f.z.enum([`client`,`user`]).optional().openapi({description:`EA The type of application access the client grant allows. Use of this field is subject to the applicable Free Trial terms in Okta's Master Subscription Agreement.`})}),cK=bt.extend({client_grants:f.z.array(Mt)}),lK=L({route:(0,f.createRoute)({tags:[`client-grants`],method:`get`,path:`/`,request:{query:sK,headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:client_grants`]}],responses:{200:{content:{"application/json":{schema:f.z.union([f.z.array(Mt),cK])}},description:`List of client grants`}}}),handler:async e=>{let t=e.var.tenant_id,{page:n,per_page:r,include_totals:i=!1,from:a,take:o,audience:s,client_id:c,allow_any_organization:l,subject_type:u}=e.req.valid(`query`),d=[];c&&d.push(`client_id:"${c}"`),s&&d.push(`audience:"${s}"`),l!==void 0&&d.push(`allow_any_organization:${l}`),u&&d.push(`subject_type:"${u}"`),a&&d.push(`id:>${a}`);let f=d.length>0?d.join(` AND `):void 0,p=o??r,m=await e.env.data.clientGrants.list(t,{page:n,per_page:p,include_totals:i,q:f});return i?e.json(m):e.json(m.client_grants)}}),uK=L({route:(0,f.createRoute)({tags:[`client-grants`],method:`get`,path:`/{id}`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:client_grants`]}],responses:{200:{content:{"application/json":{schema:Mt}},description:`A client grant`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n}=e.req.valid(`param`),r=await e.env.data.clientGrants.get(t,n);if(!r)throw new m(404,{message:`Client grant not found`});return e.json(r)}}),dK=L({route:(0,f.createRoute)({tags:[`client-grants`],method:`delete`,path:`/{id}`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`delete:client_grants`]}],responses:{200:{description:`Status`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n}=e.req.valid(`param`);if(!await e.env.data.clientGrants.remove(t,n))throw new m(404,{message:`Client grant not found`});return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Delete a Client Grant`,targetType:`client_grant`,targetId:n}),e.text(`OK`)}}),fK=L({route:(0,f.createRoute)({tags:[`client-grants`],method:`patch`,path:`/{id}`,request:{params:f.z.object({id:f.z.string()}),body:{content:{"application/json":{schema:f.z.object(jt.shape).partial()}}},headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`update:client_grants`]}],responses:{200:{content:{"application/json":{schema:Mt}},description:`The updated client grant`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n}=e.req.valid(`param`),r=e.req.valid(`json`),i=await e.env.data.clientGrants.get(t,n);if(!i)throw new m(404,{message:`Client grant not found`});if(!await e.env.data.clientGrants.update(t,n,r))throw new m(500,{message:`Failed to update client grant`});let a=await e.env.data.clientGrants.get(t,n);if(!a)throw new m(404,{message:`Client grant not found`});return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Update a Client Grant`,targetType:`client_grant`,targetId:n,beforeState:i,afterState:a}),e.json(a)}}),pK=L({route:(0,f.createRoute)({tags:[`client-grants`],method:`post`,path:`/`,request:{body:{content:{"application/json":{schema:f.z.object(jt.shape)}}},headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`create:client_grants`]}],responses:{201:{content:{"application/json":{schema:Mt}},description:`A client grant`}}}),handler:async e=>{let t=e.var.tenant_id,n=e.req.valid(`json`),r=await e.env.data.clientGrants.create(t,n);return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Create a Client Grant`,targetType:`client_grant`,targetId:r.id,afterState:r}),e.json(r,{status:201})}}),mK=new f.OpenAPIHono().openapiRoutes([lK,uK,dK,fK,pK]),hK=f.z.object({per_page:f.z.string().optional().default(`50`).transform(e=>parseInt(e,10)).openapi({description:`Number of results per page. Defaults to 50.`}),page:f.z.string().optional().default(`0`).transform(e=>parseInt(e,10)).openapi({description:`Page index of the results to return. First page is 0.`}),include_totals:f.z.string().optional().default(`false`).transform(e=>e===`true`).openapi({description:`Return totals envelope (true) or a plain array (false, default).`}),user_id:f.z.string().optional().openapi({description:`Filter grants by user_id.`}),client_id:f.z.string().optional().openapi({description:`Filter grants by clientID.`}),audience:f.z.string().optional().openapi({description:`Filter grants by audience.`})}),gK=bt.extend({grants:f.z.array(Ui)}),_K=L({route:(0,f.createRoute)({tags:[`grants`],method:`get`,path:`/`,request:{query:hK,headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:grants`,`auth:read`]}],responses:{200:{content:{"application/json":{schema:f.z.union([f.z.array(Ui),gK])}},description:`List of OAuth grants`}}}),handler:async e=>{let{page:t,per_page:n,include_totals:r,user_id:i,client_id:a,audience:o}=e.req.valid(`query`);if(!e.env.data.grants)return r?e.json({grants:[],start:0,limit:0,length:0}):e.json([]);let s=[];i&&s.push(`user_id:"${i}"`),a&&s.push(`client_id:"${a}"`),o&&s.push(`audience:"${o}"`);let c=s.length>0?s.join(` AND `):void 0,l=await e.env.data.grants.list(e.var.tenant_id,{page:t,per_page:n,include_totals:r,q:c});return r?e.json(l):e.json(l.grants)}}),vK=L({route:(0,f.createRoute)({tags:[`grants`],method:`delete`,path:`/{id}`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),params:f.z.object({id:f.z.string()})},security:[{Bearer:[`delete:grants`]}],responses:{204:{description:`Grant removed`}}}),handler:async e=>{let{id:t}=e.req.valid(`param`);if(!e.env.data.grants||!await e.env.data.grants.remove(e.var.tenant_id,t))throw new m(404);return e.body(null,204)}}),yK=L({route:(0,f.createRoute)({tags:[`grants`],method:`delete`,path:`/`,request:{query:f.z.object({user_id:f.z.string().openapi({description:`Delete all grants for the given user_id.`})}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`delete:grants`]}],responses:{204:{description:`Grants removed`}}}),handler:async e=>{let{user_id:t}=e.req.valid(`query`);return e.env.data.grants&&await e.env.data.grants.removeByUser(e.var.tenant_id,t),e.body(null,204)}}),bK=new f.OpenAPIHono().openapiRoutes([_K,vK,yK]);function xK(e){let t=new Uint8Array(e);return crypto.getRandomValues(t),t}async function SK(e){return Cf(await vf(new TextEncoder().encode(e)))}async function CK(){let e=Of.encode(xK(32),{includePadding:!1}),t=await SK(e);return{id:To(),token:e,token_hash:t}}var wK=300;async function TK(e,t,n={}){let r=await CK(),i=n.expires_in_seconds??wK,a=new Date(Date.now()+i*1e3).toISOString(),o=await e.create(t,{id:r.id,token_hash:r.token_hash,type:`iat`,sub:n.sub,constraints:n.constraints,single_use:n.single_use??!0,expires_at:a});return{id:r.id,token:r.token,expires_at:a,record:o}}async function EK(e,t,n,r){let i=await SK(n),a=await e.getByHash(t,i);return a?a.type===r?a.revoked_at?{ok:!1,failure:`revoked`}:a.expires_at&&new Date(a.expires_at).getTime()<=Date.now()?{ok:!1,failure:`expired`}:a.single_use&&a.used_at?{ok:!1,failure:`already_used`}:{ok:!0,token:a}:{ok:!1,failure:`wrong_type`}:{ok:!1,failure:`not_found`}}function DK(e,t){return`${La(e.env,e.var.custom_domain)}oidc/register/${t}`}async function OK(e){let t=await e.env.data.tenants.get(e.var.tenant_id);if(!t)throw new B(404,{error:`invalid_request`,error_description:`Tenant not found`});return t}function kK(e){if(!e.flags?.enable_dynamic_client_registration)throw new B(404,{error:`invalid_request`,error_description:`Dynamic Client Registration is not enabled`})}function AK(e){if(!e.clientRegistrationTokens)throw new B(500,{error:`server_error`,error_description:`Dynamic Client Registration requires a clientRegistrationTokens adapter`});return e.clientRegistrationTokens}async function jK(e,t){let n=LU(e.req.header(`authorization`));if(n){let t=await EK(AK(e.env.data),e.var.tenant_id,n,`iat`);if(!t.ok||!t.token)throw new B(401,{error:`invalid_token`,error_description:`Initial access token ${t.failure??`invalid`}`});return t.token}if(t.flags?.dcr_require_initial_access_token===!0)throw new B(401,{error:`invalid_token`,error_description:`Initial access token required`})}async function MK(e,t){let n=LU(e.req.header(`authorization`));if(!n)throw new B(401,{error:`invalid_token`,error_description:`Registration access token required`});let r=await EK(AK(e.env.data),e.var.tenant_id,n,`rat`);if(!r.ok||!r.token)throw new B(401,{error:`invalid_token`,error_description:`Registration access token ${r.failure??`invalid`}`});if(r.token.client_id!==t)throw new B(401,{error:`invalid_token`,error_description:`Registration access token is not bound to this client`});return r.token}function NK(e){return e.client_metadata?.status===`deleted`}function PK(){return To(24)}function FK(){return To(43)}var IK=f.z.object({sub:f.z.string().optional().openapi({description:`User ID to bind the IAT to (optional)`}),constraints:f.z.record(f.z.string(),f.z.unknown()).optional().openapi({description:`Pre-bound metadata that the registration request must match exactly (or omit, in which case the value is filled in from this map)`}),expires_in_seconds:f.z.number().int().min(30).max(3600*24).optional().openapi({description:`Token TTL in seconds. Default 300 (5 minutes).`}),single_use:f.z.boolean().optional().openapi({description:`Whether the IAT is invalidated after first use. Default true.`})}),LK=f.z.object({id:f.z.string(),token:f.z.string(),expires_at:f.z.string(),sub:f.z.string().optional(),constraints:f.z.record(f.z.string(),f.z.unknown()).optional(),single_use:f.z.boolean()}),RK=L({route:(0,f.createRoute)({tags:[`client-registration-tokens`],method:`post`,path:`/`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),body:{content:{"application/json":{schema:IK}}}},security:[{Bearer:[`create:client_registration_tokens`]}],responses:{201:{content:{"application/json":{schema:LK}},description:"Initial Access Token issued. The `token` field is shown once and not retrievable later."}}}),handler:async e=>{let t=e.var.tenant_id,n=e.req.valid(`json`),r=await TK(AK(e.env.data),t,{sub:n.sub,constraints:n.constraints,expires_in_seconds:n.expires_in_seconds,single_use:n.single_use});return await I(e,t,{type:P.SUCCESS_API_OPERATION,description:`DCR Initial Access Token issued via Management API`,targetType:`client_registration_token`,targetId:r.id,userId:n.sub}),e.json({id:r.id,token:r.token,expires_at:r.expires_at,sub:r.record.sub,constraints:r.record.constraints,single_use:r.record.single_use},201)}}),zK=new f.OpenAPIHono().openapiRoutes([RK]),BK=f.z.object({page:f.z.string().optional().default(`0`).transform(e=>parseInt(e,10)).openapi({description:`Page index of the results to return. First page is 0.`}),per_page:f.z.string().optional().default(`50`).transform(e=>parseInt(e,10)).openapi({description:`Number of results per page. Defaults to 50.`}),include_totals:f.z.string().optional().default(`false`).transform(e=>e===`true`).openapi({description:`When true, return results inside an object that also contains the start and limit. When false (default), a direct array of results is returned.`}),fields:f.z.string().optional().openapi({description:`Comma-separated list of fields to include or exclude (based on value provided for include_fields) in the result. Leave empty to retrieve all fields.`}),include_fields:f.z.string().optional().default(`true`).transform(e=>e===`true`).openapi({description:`Whether specified fields are to be included (true) or excluded (false). Defaults to true.`}),sort:f.z.string().optional().default(`created_at:-1`).openapi({description:`Field to sort by. Use field:order where order is 1 for ascending and -1 for descending. Defaults to created_at:-1.`})}),VK=f.z.object({invitations:f.z.array(Ar),start:f.z.number(),limit:f.z.number(),length:f.z.number()}),HK=kr.omit({organization_id:!0,invitation_url:!0}),UK=bt.extend({organizations:f.z.array(aa)}),WK=f.z.object({user_id:f.z.string().openapi({description:`ID of this user`}),email:f.z.string().email().optional().openapi({description:`Email address of this user`,format:`email`}),name:f.z.string().optional().openapi({description:`Name of this user`}),picture:f.z.string().optional().openapi({description:`Picture URL for this user`}),roles:f.z.array($i).default([]).openapi({description:`Array of roles assigned to this user in the organization`})}),GK=f.z.object({start:f.z.number().openapi({description:`Start index of the current page`}),limit:f.z.number().openapi({description:`Number of items per page`}),total:f.z.number().openapi({description:`Total number of members`}),members:f.z.array(WK).openapi({description:`Array of organization members`})}),KK=f.z.object({next:f.z.string().optional().openapi({description:`Checkpoint ID to be used to retrieve the next set of results`}),members:f.z.array(WK).openapi({description:`Array of organization members`})}),qK=f.z.object({members:f.z.array(f.z.string()).openapi({description:`Array of user IDs to add to the organization`})}),JK=f.z.object({members:f.z.array(f.z.string()).openapi({description:`Array of user IDs to remove from the organization`})}),YK=L({route:(0,f.createRoute)({tags:[`organizations`],method:`get`,path:`/`,request:{query:eo,headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:organizations`]}],responses:{200:{content:{"application/json":{schema:f.z.union([UK,f.z.array(aa)])}},description:`List of organizations`}}}),handler:async e=>{let t=e.var.tenant_id,{page:n,per_page:r,include_totals:i,sort:a,q:o,from:s,take:c}=e.req.valid(`query`),l=await e.env.data.organizations.list(t,{page:n,per_page:r,include_totals:i,sort:to(a),q:o,from:s,take:c});return i?e.json(l):e.json(l.organizations)}}),XK=L({route:(0,f.createRoute)({tags:[`organizations`],method:`get`,path:`/{id}`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:organizations`]}],responses:{200:{content:{"application/json":{schema:aa}},description:`An organization`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n}=e.req.valid(`param`),r=await e.env.data.organizations.get(t,n);if(!r)throw new m(404,{message:`Organization not found`});return e.json(r)}}),ZK=L({route:(0,f.createRoute)({tags:[`organizations`],method:`delete`,path:`/{id}`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`delete:organizations`]}],responses:{200:{description:`Organization deleted successfully`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n}=e.req.valid(`param`);if(!await e.env.data.organizations.remove(t,n))throw new m(404,{message:`Organization not found`});return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Delete an Organization`,targetType:`organization`,targetId:n}),e.text(`OK`)}}),QK=L({route:(0,f.createRoute)({tags:[`organizations`],method:`patch`,path:`/{id}`,request:{body:{content:{"application/json":{schema:ia.partial()}}},params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`update:organizations`]}],responses:{200:{content:{"application/json":{schema:aa}},description:`The updated organization`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n}=e.req.valid(`param`),r=e.req.valid(`json`),i=await e.env.data.organizations.get(t,n);if(!i||!await e.env.data.organizations.update(t,n,r))throw new m(404,{message:`Organization not found`});let a=await e.env.data.organizations.get(t,n);if(!a)throw new m(404,{message:`Organization not found`});return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Update an Organization`,targetType:`organization`,targetId:n,beforeState:i,afterState:a}),e.json(a)}}),$K=L({route:(0,f.createRoute)({tags:[`organizations`],method:`post`,path:`/`,request:{body:{content:{"application/json":{schema:ia}}},headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`create:organizations`]}],responses:{201:{content:{"application/json":{schema:aa}},description:`The created organization`}}}),handler:async e=>{let t=e.var.tenant_id,n=e.req.valid(`json`),r={...n,id:n.id||Eee()},i=await e.env.data.organizations.create(t,r);return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Create an Organization`,targetType:`organization`,targetId:i.id,afterState:i}),e.json(i,{status:201})}}),eq=L({route:(0,f.createRoute)({tags:[`organizations`],method:`get`,path:`/{id}/members`,request:{params:f.z.object({id:f.z.string()}),query:eo,headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:organizations`]}],responses:{200:{content:{"application/json":{schema:f.z.union([f.z.array(WK),GK,KK])}},description:`List of organization members`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n}=e.req.valid(`param`),{page:r,per_page:i,include_totals:a,sort:o}=e.req.valid(`query`),s=await e.env.data.organizations.get(t,n);if(!s)throw new m(404,{message:`Organization not found`});let c=await e.env.data.userOrganizations.list(t,{page:r,per_page:i,include_totals:a,sort:to(o),q:`organization_id:${s.id}`}),l=await Promise.all(c.userOrganizations.map(async n=>{let r=await e.env.data.users.get(t,n.user_id);if(!r)return null;let i=await e.env.data.userRoles.list(t,r.user_id,void 0,s.id);return{user_id:r.user_id,email:r.email||void 0,name:r.name||void 0,picture:r.picture||void 0,roles:i}})).then(e=>e.filter(e=>e!==null));return a?e.json({start:c.start,limit:c.limit,total:c.length,members:l}):e.json(l)}}),tq=L({route:(0,f.createRoute)({tags:[`organizations`],method:`post`,path:`/{id}/members`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()}),body:{content:{"application/json":{schema:qK}}}},security:[{Bearer:[`update:organizations`]}],responses:{204:{description:`Members added successfully`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n}=e.req.valid(`param`),{members:r}=e.req.valid(`json`),i=await e.env.data.organizations.get(t,n);if(!i)throw new m(404,{message:`Organization not found`});for(let n of r)(await e.env.data.userOrganizations.list(t,{q:`user_id:${n}`,per_page:1})).userOrganizations.some(e=>e.organization_id===i.id)||await e.env.data.userOrganizations.create(t,{user_id:n,organization_id:i.id});return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Add Members to an Organization`,targetType:`organization_member`,targetId:i.id}),new Response(null,{status:204})}}),nq=L({route:(0,f.createRoute)({tags:[`organizations`],method:`delete`,path:`/{id}/members`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()}),body:{content:{"application/json":{schema:JK}}}},security:[{Bearer:[`update:organizations`]}],responses:{200:{description:`Members removed successfully`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n}=e.req.valid(`param`),{members:r}=e.req.valid(`json`),i=await e.env.data.organizations.get(t,n);if(!i)throw new m(404,{message:`Organization not found`});for(let n of r){let r=(await e.env.data.userOrganizations.list(t,{q:`user_id:${n}`,per_page:100})).userOrganizations.find(e=>e.organization_id===i.id);r&&await e.env.data.userOrganizations.remove(t,r.id)}return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Remove Members from an Organization`,targetType:`organization_member`,targetId:i.id}),e.json({message:`Members removed successfully`})}}),rq=L({route:(0,f.createRoute)({tags:[`organizations`],method:`get`,path:`/{id}/members/{user_id}/roles`,request:{params:f.z.object({id:f.z.string(),user_id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()}),query:eo},security:[{Bearer:[`read:organization_member_roles`]}],responses:{200:{content:{"application/json":{schema:ea}},description:`User roles in organization`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n,user_id:r}=e.req.valid(`param`),i=await e.env.data.organizations.get(t,n);if(!i)throw new m(404,{message:`Organization not found`});if(!await e.env.data.users.get(t,r))throw new m(404,{message:`User not found`});let a=await e.env.data.userRoles.list(t,r,void 0,i.id);return e.json(a)}}),iq=L({route:(0,f.createRoute)({tags:[`organizations`],method:`post`,path:`/{id}/members/{user_id}/roles`,request:{params:f.z.object({id:f.z.string(),user_id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()}),body:{content:{"application/json":{schema:f.z.object({roles:f.z.array(f.z.string()).openapi({description:`List of role IDs to associate with the user`})})}}}},security:[{Bearer:[`create:organization_member_roles`]}],responses:{204:{description:`Roles assigned successfully`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n,user_id:r}=e.req.valid(`param`),{roles:i}=e.req.valid(`json`),a=await e.env.data.organizations.get(t,n);if(!a)throw new m(404,{message:`Organization not found`});if(!await e.env.data.users.get(t,r))throw new m(404,{message:`User not found`});let o=await e.env.data.userRoles.list(t,r,void 0,a.id),s=new Set(o.map(e=>e.id));for(let n of i)if(!s.has(n)){if(!await e.env.data.roles.get(t,n))throw new m(400,{message:`Role ${n} not found`});if(!await e.env.data.userRoles.create(t,r,n,a.id))throw new m(500,{message:`Failed to assign role ${n} to user`})}return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Assign Roles to an Organization Member`,targetType:`organization_member_role`,targetId:r}),e.body(null,204)}}),aq=L({route:(0,f.createRoute)({tags:[`organizations`],method:`delete`,path:`/{id}/members/{user_id}/roles`,request:{params:f.z.object({id:f.z.string(),user_id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()}),body:{content:{"application/json":{schema:f.z.object({roles:f.z.array(f.z.string()).openapi({description:`List of role IDs to remove from the user`})})}}}},security:[{Bearer:[`delete:organization_member_roles`]}],responses:{200:{description:`Roles removed successfully`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n,user_id:r}=e.req.valid(`param`),{roles:i}=e.req.valid(`json`),a=await e.env.data.organizations.get(t,n);if(!a)throw new m(404,{message:`Organization not found`});if(!await e.env.data.users.get(t,r))throw new m(404,{message:`User not found`});for(let n of i)if(!await e.env.data.userRoles.remove(t,r,n,a.id))throw new m(500,{message:`Failed to remove role ${n} from user`});return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Remove Roles from an Organization Member`,targetType:`organization_member_role`,targetId:r}),e.json({message:`Roles removed successfully`})}}),oq=L({route:(0,f.createRoute)({tags:[`organizations`],method:`get`,path:`/{id}/roles`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()}),query:eo},security:[{Bearer:[`read:organizations`]}],responses:{200:{content:{"application/json":{schema:ea}},description:`List of roles available in organization`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n}=e.req.valid(`param`),{page:r,per_page:i,sort:a,q:o}=e.req.valid(`query`);if(!await e.env.data.organizations.get(t,n))throw new m(404,{message:`Organization not found`});let s=await e.env.data.roles.list(t,{page:r,per_page:i,sort:to(a),q:o});return e.json(s.roles)}}),sq=L({route:(0,f.createRoute)({tags:[`organizations`],method:`get`,path:`/{id}/invitations`,request:{params:f.z.object({id:f.z.string().openapi({description:`Organization ID`,param:{name:`id`,in:`path`}})}),query:BK,headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:organizations`]}],responses:{200:{content:{"application/json":{schema:f.z.union([f.z.array(Ar),VK])}},description:`List of organization invitations`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n}=e.req.valid(`param`),{page:r,per_page:i,include_totals:a,fields:o,include_fields:s,sort:c}=e.req.valid(`query`),l=await e.env.data.organizations.get(t,n);if(!l)throw new m(404,{message:`Organization not found`});let u=(await e.env.data.invites.list(t,{page:r,per_page:i})).invites.filter(e=>e.organization_id===l.id);if(c){let e=to(c);if(e){let{sort_by:t,sort_order:n}=e;u.sort((e,r)=>{let i=e[t],a=r[t];if(i===void 0||a===void 0||i===a)return 0;let o=i<a?-1:1;return n===`asc`?o:-o})}}if(o){let e=o.split(`,`).map(e=>e.trim());u=u.map(t=>{let n={};for(let r of Object.keys(t))(s?e.includes(r):!e.includes(r))&&(n[r]=t[r]);return n})}return a?e.json({invitations:u,start:r*i,limit:i,length:u.length}):e.json(u)}}),cq=L({route:(0,f.createRoute)({tags:[`organizations`],method:`get`,path:`/{id}/invitations/{invitation_id}`,request:{params:f.z.object({id:f.z.string().openapi({description:`Organization ID`,param:{name:`id`,in:`path`}}),invitation_id:f.z.string().openapi({description:`Invitation ID`,param:{name:`invitation_id`,in:`path`}})}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:organizations`]}],responses:{200:{content:{"application/json":{schema:Ar}},description:`An invitation`},404:{description:`Invitation not found`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n,invitation_id:r}=e.req.valid(`param`),i=await e.env.data.organizations.get(t,n);if(!i)throw new m(404,{message:`Organization not found`});let a=await e.env.data.invites.get(t,r);if(!a||a.organization_id!==i.id)throw new m(404,{message:`Invitation not found`});return e.json(a)}}),lq=L({route:(0,f.createRoute)({tags:[`organizations`],method:`post`,path:`/{id}/invitations`,request:{params:f.z.object({id:f.z.string().openapi({description:`Organization ID`,param:{name:`id`,in:`path`}})}),body:{content:{"application/json":{schema:HK}}},headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`update:organizations`]}],responses:{201:{content:{"application/json":{schema:Ar}},description:`The created invitation`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n}=e.req.valid(`param`),r=e.req.valid(`json`),i=await e.env.data.organizations.get(t,n);if(!i)throw new m(404,{message:`Organization not found`});let a=Oee(),o=Fa(e.env,e.var.custom_domain),s=new URL(`u2/accept-invitation`,o);s.searchParams.set(`invitation`,a),s.searchParams.set(`organization`,i.id);let c=s.toString(),l={...r,id:a,organization_id:i.id,invitation_url:c},u=await e.env.data.invites.create(t,l);if(await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Create an Organization Invitation`,targetType:`invitation`,targetId:u.id,afterState:u}),r.send_invitation_email!==!1&&r.invitee?.email)try{await HV(e,{to:r.invitee.email,invitationUrl:c,inviterName:r.inviter?.name,organizationName:i.display_name||i.name||i.id,ttlSec:r.ttl_sec??604800})}catch(e){console.error(`[invitations] failed to send invitation email for ${u.id}:`,e)}return e.json(u,{status:201})}}),uq=L({route:(0,f.createRoute)({tags:[`organizations`],method:`delete`,path:`/{id}/invitations/{invitation_id}`,request:{params:f.z.object({id:f.z.string().openapi({description:`Organization ID`,param:{name:`id`,in:`path`}}),invitation_id:f.z.string().openapi({description:`Invitation ID`,param:{name:`invitation_id`,in:`path`}})}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`update:organizations`]}],responses:{204:{description:`Invitation deleted successfully`},404:{description:`Invitation not found`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n,invitation_id:r}=e.req.valid(`param`),i=await e.env.data.organizations.get(t,n);if(!i)throw new m(404,{message:`Organization not found`});let a=await e.env.data.invites.get(t,r);if(!a||a.organization_id!==i.id||!await e.env.data.invites.remove(t,r))throw new m(404,{message:`Invitation not found`});return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Delete an Organization Invitation`,targetType:`invitation`,targetId:r}),e.body(null,{status:204})}}),dq=L({route:(0,f.createRoute)({tags:[`organizations`],method:`get`,path:`/{id}/enabled_connections`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()}),query:f.z.object({include_totals:f.z.string().optional().transform(e=>e===`true`).openapi({deprecated:!0,description:`Ignored for compatibility; the connections/total/start/limit/length wrapper is always returned.`}),page:f.z.string().optional().transform(e=>e?parseInt(e,10):0),per_page:f.z.string().optional().transform(e=>e?parseInt(e,10):50)})},security:[{Bearer:[`read:organization_connections`]}],responses:{200:{content:{"application/json":{schema:bt.extend({connections:f.z.array(sa)})}},description:`Connections enabled for the organization`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n}=e.req.valid(`param`),{include_totals:r,page:i,per_page:a}=e.req.valid(`query`),o=await e.env.data.organizations.get(t,n);if(!o)throw new m(404,{message:`Organization not found`});let s=await e.env.data.organizationConnections.list(t,o.id),c=i*a,l=s.slice(c,c+a);return e.json({connections:l,total:s.length,start:c,limit:a,length:l.length})}}),fq=L({route:(0,f.createRoute)({tags:[`organizations`],method:`post`,path:`/{id}/enabled_connections`,request:{params:f.z.object({id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()}),body:{content:{"application/json":{schema:oa}}}},security:[{Bearer:[`create:organization_connections`]}],responses:{201:{content:{"application/json":{schema:sa}},description:`Connection enabled for the organization`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n}=e.req.valid(`param`),r=e.req.valid(`json`),i=await e.env.data.organizations.get(t,n);if(!i)throw new m(404,{message:`Organization not found`});if(!await e.env.data.connections.get(t,r.connection_id))throw new m(400,{message:`Connection ${r.connection_id} not found`});if(await e.env.data.organizationConnections.get(t,i.id,r.connection_id))throw new m(409,{message:`Connection already enabled for this organization`});let a=await e.env.data.organizationConnections.create(t,i.id,r);return await I(e,t,{type:P.SUCCESS_API_OPERATION,description:`Enable an Organization Connection`,targetType:`organization_connection`,targetId:`${i.id}:${r.connection_id}`}),e.json(a,{status:201})}}),pq=L({route:(0,f.createRoute)({tags:[`organizations`],method:`get`,path:`/{id}/enabled_connections/{connection_id}`,request:{params:f.z.object({id:f.z.string(),connection_id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:organization_connections`]}],responses:{200:{content:{"application/json":{schema:sa}},description:`An enabled organization connection`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n,connection_id:r}=e.req.valid(`param`),i=await e.env.data.organizations.get(t,n);if(!i)throw new m(404,{message:`Organization not found`});let a=await e.env.data.organizationConnections.get(t,i.id,r);if(!a)throw new m(404,{message:`Organization connection not found`});return e.json(a)}}),mq=L({route:(0,f.createRoute)({tags:[`organizations`],method:`patch`,path:`/{id}/enabled_connections/{connection_id}`,request:{params:f.z.object({id:f.z.string(),connection_id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()}),body:{content:{"application/json":{schema:oa.omit({connection_id:!0}).partial()}}}},security:[{Bearer:[`update:organization_connections`]}],responses:{200:{content:{"application/json":{schema:sa}},description:`Updated organization connection`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n,connection_id:r}=e.req.valid(`param`),i=e.req.valid(`json`),a=await e.env.data.organizations.get(t,n);if(!a)throw new m(404,{message:`Organization not found`});let o=await e.env.data.organizationConnections.update(t,a.id,r,i);if(!o)throw new m(404,{message:`Organization connection not found`});return await I(e,t,{type:P.SUCCESS_API_OPERATION,description:`Update an Organization Connection`,targetType:`organization_connection`,targetId:`${a.id}:${r}`}),e.json(o)}}),hq=L({route:(0,f.createRoute)({tags:[`organizations`],method:`delete`,path:`/{id}/enabled_connections/{connection_id}`,request:{params:f.z.object({id:f.z.string(),connection_id:f.z.string()}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`delete:organization_connections`]}],responses:{204:{description:`Connection disabled`}}}),handler:async e=>{let t=e.var.tenant_id,{id:n,connection_id:r}=e.req.valid(`param`),i=await e.env.data.organizations.get(t,n);if(!i)throw new m(404,{message:`Organization not found`});if(!await e.env.data.organizationConnections.remove(t,i.id,r))throw new m(404,{message:`Organization connection not found`});return await I(e,t,{type:P.SUCCESS_API_OPERATION,description:`Disable an Organization Connection`,targetType:`organization_connection`,targetId:`${i.id}:${r}`}),e.body(null,{status:204})}}),gq=new f.OpenAPIHono().openapiRoutes([YK,XK,ZK,QK,$K,eq,tq,nq,rq,iq,aq,oq,sq,cq,lq,uq,dq,fq,pq,mq,hq]);function _q(e){return`${e.slice(0,4)}-${e.slice(4,6)}-${e.slice(6,8)}`}function vq(e){return e.toISOString().split(`T`)[0]}function yq(e,t,n){let r=new Map(e.map(e=>[e.date,e])),i=[],a=new Date(`${t}T00:00:00.000Z`),o=new Date(`${n}T00:00:00.000Z`);for(let e=a;e<=o;e.setUTCDate(e.getUTCDate()+1)){let t=vq(e),n=r.get(t);if(n)i.push(n);else{let e=`${t}T00:00:00.000Z`;i.push({date:t,logins:0,signups:0,leaked_passwords:0,created_at:e,updated_at:e})}}return i}var bq=L({route:(0,f.createRoute)({tags:[`stats`],method:`get`,path:`/daily`,request:{query:f.z.object({from:f.z.string().optional().openapi({description:`Optional first day of the date range (inclusive) in YYYYMMDD format`,example:`20251120`}),to:f.z.string().optional().openapi({description:`Optional last day of the date range (inclusive) in YYYYMMDD format`,example:`20251219`})}),headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:stats`]}],responses:{200:{content:{"application/json":{schema:f.z.array(fa)}},description:`Daily statistics including logins, signups, and leaked passwords`}}}),handler:async e=>{let{from:t,to:n}=e.req.valid(`query`);if(!e.env.data.stats)throw new m(501,{message:`Stats adapter not configured`});let r=new Date,i=new Date(r);i.setUTCDate(i.getUTCDate()-30);let a=t?_q(t):vq(i),o=n?_q(n):vq(r),s=await e.env.data.stats.getDaily(e.var.tenant_id,{from:a,to:o});return e.json(yq(s,a,o))}}),xq=L({route:(0,f.createRoute)({tags:[`stats`],method:`get`,path:`/active-users`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:stats`]}],responses:{200:{content:{"application/json":{schema:f.z.number().openapi({description:`Number of active users in the last 30 days`,example:1234})}},description:`Number of active users in the last 30 days`}}}),handler:async e=>{if(!e.env.data.stats)throw new m(501,{message:`Stats adapter not configured`});let t=await e.env.data.stats.getActiveUsers(e.var.tenant_id);return e.json(t)}}),Sq=new f.OpenAPIHono().openapiRoutes([bq,xq]),Cq={"active-users":[`time`,`connection`,`client_id`,`user_type`],logins:[`time`,`connection`,`client_id`,`user_type`,`event`],signups:[`time`,`connection`,`client_id`,`user_type`,`event`],"refresh-tokens":[`time`,`client_id`,`event`],sessions:[`time`,`client_id`]},wq=[`hour`,`day`,`week`,`month`],Tq=[`password`,`social`,`passwordless`,`enterprise`],Eq={"active-users":`active_users`,logins:`logins`,signups:`signups`,"refresh-tokens":`refresh_tokens`,sessions:`sessions`},Dq=1e4,Oq=1e3,kq=5e4,Aq=720*60*60*1e3,jq=class extends Error{param;detail;constructor(e,t){super(t),this.param=e,this.detail=t}};function Mq(e,t){let n=new Date(e);if(Number.isNaN(n.getTime()))throw new jq(t,`'${t}' must be an ISO 8601 datetime`);return n.toISOString()}function Nq(e,t,n,{min:r,max:i}){if(e===void 0)return n;let a=Number.parseInt(e,10);if(!Number.isFinite(a)||String(a)!==e)throw new jq(t,`'${t}' must be an integer`);if(a<r||a>i)throw new jq(t,`'${t}' must be between ${r} and ${i}`);return a}function Pq(e,t,n){let r=new Date,i=new Date(r.getTime()-720*60*60*1e3),a=t(`from`),o=t(`to`),s=a?Mq(a,`from`):i.toISOString(),c=o?Mq(o,`to`):r.toISOString(),l=new Date(s).getTime(),u=new Date(c).getTime();if(u<=l)throw new jq(`to`,`'to' must be after 'from'`);let d=t(`interval`),f=`day`;if(d){if(!wq.includes(d))throw new jq(`interval`,`'interval' must be one of: ${wq.join(`, `)}`);f=d}if(f===`hour`&&u-l>Aq)throw new jq(`interval`,`interval=hour is only allowed for ranges of 30 days or less`);let p=t(`tz`)||`UTC`,m=(t(`group_by`)||``).split(`,`).map(e=>e.trim()).filter(Boolean),h=new Set(Cq[e]);for(let t of m)if(!h.has(t))throw new jq(`group_by`,`group_by value '${t}' is not valid for /analytics/${e}. Allowed: ${[...h].join(`, `)}`);let g=n(`user_type`);for(let e of g)if(!Tq.includes(e))throw new jq(`user_type`,`user_type value '${e}' is not valid. Allowed: ${Tq.join(`, `)}`);let _={connection:n(`connection`),client_id:n(`client_id`),user_type:g,user_id:n(`user_id`)},v=Nq(t(`limit`),`limit`,Oq,{min:1,max:Dq}),y=Nq(t(`offset`),`offset`,0,{min:0,max:1e6});if(m.length===0&&v>kq)throw new jq(`limit`,`ungrouped queries may not request more than ${kq} rows; add group_by or lower limit`);let b=t(`order_by`),x;if(b){let t=b.startsWith(`-`)?b.slice(1):b,n=new Set([...m,Eq[e]]);if(!n.has(t))throw new jq(`order_by`,`'order_by' column '${t}' is not selectable. Allowed: ${[...n].join(`, `)}`);x=b}return{from:s,to:c,interval:f,tz:p,filters:_,group_by:m,limit:v,offset:y,order_by:x}}function Fq(e,t=Date.now()){let n=new Date(e).getTime(),r=t-3600*1e3,i=new Date(t);i.setUTCHours(0,0,0,0),i.setUTCDate(i.getUTCDate()-1);let a=t-1440*60*1e3;return n>=r?60:n>=a?300:n<i.getTime()?1440*60:3600}function Iq(e,t,n){let r={from:n.from,to:n.to,interval:n.interval,tz:n.tz,group_by:[...n.group_by].sort(),filters:{connection:[...n.filters.connection||[]].sort(),client_id:[...n.filters.client_id||[]].sort(),user_type:[...n.filters.user_type||[]].sort(),user_id:[...n.filters.user_id||[]].sort()},limit:n.limit,offset:n.offset,order_by:n.order_by||``};return`analytics:${e}:${t}:${JSON.stringify(r)}`}var Lq=f.z.object({from:f.z.string().datetime().optional().openapi({description:`Inclusive lower bound, ISO 8601 datetime`}),to:f.z.string().datetime().optional().openapi({description:`Exclusive upper bound, ISO 8601 datetime`}),interval:f.z.enum([`hour`,`day`,`week`,`month`]).optional().openapi({description:`Time bucket size for time-grouped queries`}),tz:f.z.string().optional().openapi({description:`IANA timezone, e.g. Europe/Madrid`}),group_by:f.z.string().optional().openapi({description:`Comma-separated dimensions, e.g. 'time,connection'`}),connection:f.z.union([f.z.string(),f.z.array(f.z.string())]).optional().openapi({description:`Repeatable. Filter to one or more connection names.`}),client_id:f.z.union([f.z.string(),f.z.array(f.z.string())]).optional().openapi({description:`Repeatable. Filter to one or more client IDs.`}),user_type:f.z.union([f.z.enum([`password`,`social`,`passwordless`,`enterprise`]),f.z.array(f.z.enum([`password`,`social`,`passwordless`,`enterprise`]))]).optional().openapi({description:`Repeatable.`}),user_id:f.z.union([f.z.string(),f.z.array(f.z.string())]).optional().openapi({description:`Repeatable.`}),limit:f.z.string().optional().openapi({description:`Max 10000`}),offset:f.z.string().optional(),order_by:f.z.string().optional().openapi({description:`Column name, prefix with '-' for descending`})});function Rq(e={}){let t=e.cache,n=new f.OpenAPIHono;function r(e){return(0,f.createRoute)({tags:[`analytics`],method:`get`,path:`/${e}`,request:{query:Lq,headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:stats`]}],responses:{200:{content:{"application/json":{schema:ba}},description:`${e} analytics`},400:{content:{"application/json":{schema:f.z.any()}},description:`Invalid request`}}})}let i=e=>async n=>{if(!n.env.data.analytics)throw new m(501,{message:`Analytics adapter not configured`});let r;try{r=Pq(e,e=>n.req.query(e)??void 0,e=>n.req.queries(e)??[])}catch(e){if(e instanceof jq)return n.json({type:`https://authhero.net/errors/invalid-parameter`,title:`Invalid parameter`,status:400,detail:e.detail,param:e.param},400);throw e}let i=n.var.tenant_id,a=t?Iq(i,e,r):null;if(t&&a){let e=await t.get(a);if(e!==null)return n.header(`X-Cache`,`HIT`),n.json(e)}let o=await n.env.data.analytics.query(i,e,r);if(t&&a){let e=Fq(r.to);t.set(a,o,e).catch(()=>{}),n.header(`X-Cache`,`MISS`),n.header(`Cache-Control`,`public, max-age=${e}`)}return n.json(o)};for(let e of[`active-users`,`logins`,`signups`,`refresh-tokens`,`sessions`])n.openapi(r(e),i(e));return n}var zq=[`sms`,`otp`,`email`,`push-notification`,`webauthn-roaming`,`webauthn-platform`,`recovery-code`,`duo`];function Bq(e){return e.replace(/-/g,`_`)}var Vq=f.z.object({name:f.z.enum(zq),enabled:f.z.boolean(),trial_expired:f.z.boolean().optional()}),Hq=f.z.array(Vq),Uq=f.z.object({enabled:f.z.boolean()}),Wq=f.z.object({provider:f.z.enum([`twilio`,`vonage`,`aws_sns`,`phone_message_hook`])}),Gq=f.z.object({sid:f.z.string().optional(),auth_token:f.z.string().optional(),from:f.z.string().optional(),messaging_service_sid:f.z.string().optional()}),Kq=f.z.object({message_type:f.z.enum([`sms`,`voice`])}),qq=L({route:(0,f.createRoute)({tags:[`guardian`],method:`get`,path:`/factors`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:guardian_factors`]}],responses:{200:{content:{"application/json":{schema:Hq}},description:`List of MFA factors`}}}),handler:async e=>{let t=(await e.env.data.tenants.get(e.var.tenant_id))?.mfa?.factors,n=zq.map(e=>{let n=Bq(e);return{name:e,enabled:!!t?.[n],trial_expired:!1}});return e.json(n)}}),Jq=L({route:(0,f.createRoute)({tags:[`guardian`],method:`get`,path:`/factors/sms/selected-provider`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:guardian_factors`]}],responses:{200:{content:{"application/json":{schema:Wq}},description:`Selected SMS provider`}}}),handler:async e=>{let t=(await e.env.data.tenants.get(e.var.tenant_id))?.mfa?.sms_provider?.provider||`twilio`;return e.json({provider:t})}}),Yq=L({route:(0,f.createRoute)({tags:[`guardian`],method:`put`,path:`/factors/sms/selected-provider`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),body:{content:{"application/json":{schema:Wq}}}},security:[{Bearer:[`update:guardian_factors`]}],responses:{200:{content:{"application/json":{schema:Wq}},description:`Updated SMS provider selection`}}}),handler:async e=>{let{provider:t}=e.req.valid(`json`),n=await e.env.data.tenants.get(e.var.tenant_id);if(!n)throw new m(404,{message:`Tenant not found`});return await e.env.data.tenants.update(e.var.tenant_id,{mfa:{...n.mfa,sms_provider:{provider:t}}}),await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Set SMS Provider`,targetType:`guardian`,targetId:e.var.tenant_id}),e.json({provider:t})}}),Xq=L({route:(0,f.createRoute)({tags:[`guardian`],method:`get`,path:`/factors/sms/providers/twilio`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:guardian_factors`]}],responses:{200:{content:{"application/json":{schema:Gq}},description:`Twilio provider configuration`}}}),handler:async e=>{let t=(await e.env.data.tenants.get(e.var.tenant_id))?.mfa?.twilio||{};return e.json({sid:t.sid,auth_token:t.auth_token?`********`:void 0,from:t.from,messaging_service_sid:t.messaging_service_sid})}}),Zq=L({route:(0,f.createRoute)({tags:[`guardian`],method:`put`,path:`/factors/sms/providers/twilio`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),body:{content:{"application/json":{schema:Gq}}}},security:[{Bearer:[`update:guardian_factors`]}],responses:{200:{content:{"application/json":{schema:Gq}},description:`Updated Twilio configuration`}}}),handler:async e=>{let t=e.req.valid(`json`),n=await e.env.data.tenants.get(e.var.tenant_id);if(!n)throw new m(404,{message:`Tenant not found`});let r=n.mfa?.twilio||{},i={...r,...t,auth_token:t.auth_token&&t.auth_token!==`********`?t.auth_token:r.auth_token};return await e.env.data.tenants.update(e.var.tenant_id,{mfa:{...n.mfa,twilio:i}}),await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Configure Twilio Provider`,targetType:`guardian`,targetId:e.var.tenant_id}),e.json({sid:i.sid,auth_token:i.auth_token?`********`:void 0,from:i.from,messaging_service_sid:i.messaging_service_sid})}}),Qq=L({route:(0,f.createRoute)({tags:[`guardian`],method:`get`,path:`/factors/phone/message-types`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:guardian_factors`]}],responses:{200:{content:{"application/json":{schema:f.z.array(Kq)}},description:`Available message types`}}}),handler:async e=>e.json([{message_type:`sms`}])}),$q=L({route:(0,f.createRoute)({tags:[`guardian`],method:`get`,path:`/policies`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:guardian_factors`]}],responses:{200:{content:{"application/json":{schema:f.z.array(f.z.string())}},description:`Current MFA policies`}}}),handler:async e=>(await e.env.data.tenants.get(e.var.tenant_id))?.mfa?.policy===`always`?e.json([`all-applications`]):e.json([])}),eJ=L({route:(0,f.createRoute)({tags:[`guardian`],method:`put`,path:`/policies`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),body:{content:{"application/json":{schema:f.z.array(f.z.string())}}}},security:[{Bearer:[`update:guardian_factors`]}],responses:{200:{content:{"application/json":{schema:f.z.array(f.z.string())}},description:`Updated MFA policies`}}}),handler:async e=>{let t=e.req.valid(`json`),n=await e.env.data.tenants.get(e.var.tenant_id);if(!n)throw new m(404,{message:`Tenant not found`});let r=t.includes(`all-applications`)?`always`:`never`;return await e.env.data.tenants.update(e.var.tenant_id,{mfa:{...n.mfa,policy:r}}),await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Set Guardian Policies`,targetType:`guardian`,targetId:e.var.tenant_id}),e.json(r===`always`?[`all-applications`]:[])}}),tJ=L({route:(0,f.createRoute)({tags:[`guardian`],method:`post`,path:`/enrollments/ticket`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),body:{content:{"application/json":{schema:f.z.object({user_id:f.z.string(),send_mail:f.z.boolean().optional(),email:f.z.string().email().optional()})}}}},security:[{Bearer:[`create:guardian_enrollment_tickets`]}],responses:{201:{content:{"application/json":{schema:f.z.object({ticket_id:f.z.string(),ticket_url:f.z.string()})}},description:`Enrollment ticket created`}}}),handler:async e=>{let{user_id:t,email:n}=e.req.valid(`json`),r=e.var.tenant_id,i=await e.env.data.tenants.get(r);if(!i)throw new m(404,{message:`Tenant not found`});if(!(i.mfa?.factors?.sms===!0||i.mfa?.factors?.otp===!0||i.mfa?.factors?.webauthn_roaming===!0||i.mfa?.factors?.webauthn_platform===!0))throw new m(400,{message:`At least one MFA factor (SMS, OTP, or WebAuthn) must be enabled before creating enrollment tickets.`});let a=await e.env.data.users.get(r,t);if(!a)throw new m(404,{message:`User not found`});let{clients:o}=await e.env.data.clients.list(r);if(!o.length)throw new m(400,{message:`No clients configured for this tenant`});let s=o[0].client_id,c=new Date(Date.now()+7200*60*1e3).toISOString(),l=await e.env.data.loginSessions.create(r,{expires_at:c,authParams:{client_id:s,username:n||a.email},csrf_token:To(),user_id:t,state:N.AWAITING_MFA,state_data:JSON.stringify({guardian_enrollment:!0})}),u=To();await e.env.data.codes.create(r,{code_id:u,code_type:`ticket`,login_id:l.id,user_id:t,expires_at:c});let d=Fa(e.env,e.var.custom_domain),f=new URL(`u2/guardian/enroll`,d);f.searchParams.append(`ticket`,u),e.var.custom_domain||f.searchParams.append(`tenant_id`,r);let p=f.toString();return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Create Enrollment Ticket`,targetType:`guardian`,targetId:e.var.tenant_id}),e.json({ticket_id:u,ticket_url:p},201)}}),nJ=L({route:(0,f.createRoute)({tags:[`guardian`],method:`get`,path:`/factors/{factor_name}`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),params:f.z.object({factor_name:f.z.enum(zq)})},security:[{Bearer:[`read:guardian_factors`]}],responses:{200:{content:{"application/json":{schema:Vq}},description:`MFA factor details`}}}),handler:async e=>{let{factor_name:t}=e.req.valid(`param`),n=(await e.env.data.tenants.get(e.var.tenant_id))?.mfa?.factors,r=Bq(t);return e.json({name:t,enabled:!!n?.[r],trial_expired:!1})}}),rJ=L({route:(0,f.createRoute)({tags:[`guardian`],method:`put`,path:`/factors/{factor_name}`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),params:f.z.object({factor_name:f.z.enum(zq)}),body:{content:{"application/json":{schema:Uq}}}},security:[{Bearer:[`update:guardian_factors`]}],responses:{200:{content:{"application/json":{schema:Vq}},description:`Updated MFA factor`}}}),handler:async e=>{let{factor_name:t}=e.req.valid(`param`),{enabled:n}=e.req.valid(`json`),r=Bq(t),i=await e.env.data.tenants.get(e.var.tenant_id);if(!i)throw new m(404,{message:`Tenant not found`});let a=i.mfa?.factors;return await e.env.data.tenants.update(e.var.tenant_id,{mfa:{...i.mfa,factors:{sms:a?.sms??!1,otp:a?.otp??!1,email:a?.email??!1,push_notification:a?.push_notification??!1,webauthn_roaming:a?.webauthn_roaming??!1,webauthn_platform:a?.webauthn_platform??!1,recovery_code:a?.recovery_code??!1,duo:a?.duo??!1,[r]:n}}}),await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Update Guardian Factor`,targetType:`guardian`,targetId:e.var.tenant_id}),e.json({name:t,enabled:n,trial_expired:!1})}}),iJ=new f.OpenAPIHono().openapiRoutes([qq,Jq,Yq,Xq,Zq,Qq,$q,eJ,tJ,nJ,rJ]),aJ=f.z.object({id:f.z.string(),type:f.z.string(),confirmed:f.z.boolean(),phone_number:f.z.string().optional(),credential_id:f.z.string().optional(),public_key:f.z.string().optional(),sign_count:f.z.number().optional(),credential_backed_up:f.z.boolean().optional(),transports:f.z.array(f.z.string()).optional(),friendly_name:f.z.string().optional(),created_at:f.z.string()}),oJ=f.z.array(aJ),sJ=f.z.object({type:f.z.enum([`phone`,`totp`,`email`,`push`,`webauthn-roaming`,`webauthn-platform`,`passkey`]),phone_number:f.z.string().optional(),totp_secret:f.z.string().optional(),credential_id:f.z.string().optional(),public_key:f.z.string().optional(),sign_count:f.z.number().int().nonnegative().optional(),credential_backed_up:f.z.boolean().optional(),transports:f.z.array(f.z.string()).optional(),friendly_name:f.z.string().optional(),confirmed:f.z.boolean().optional().default(!0)}).superRefine((e,t)=>{e.type===`phone`&&!e.phone_number&&t.addIssue({code:f.z.ZodIssueCode.custom,message:`phone_number is required when type is 'phone'`,path:[`phone_number`]}),e.type===`totp`&&!e.totp_secret&&t.addIssue({code:f.z.ZodIssueCode.custom,message:`totp_secret is required when type is 'totp'`,path:[`totp_secret`]}),[`webauthn-roaming`,`webauthn-platform`,`passkey`].includes(e.type)&&(e.credential_id||t.addIssue({code:f.z.ZodIssueCode.custom,message:`credential_id is required when type is '${e.type}'`,path:[`credential_id`]}),e.public_key||t.addIssue({code:f.z.ZodIssueCode.custom,message:`public_key is required when type is '${e.type}'`,path:[`public_key`]}))}),cJ=L({route:(0,f.createRoute)({tags:[`users`],method:`get`,path:`/`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()})},security:[{Bearer:[`read:users`]}],responses:{200:{content:{"application/json":{schema:oJ}},description:`List of authentication methods for the user`}}}),handler:async e=>{let t=e.req.param(`user_id`);if(!t)throw new m(400,{message:`user_id is required`});let n=(await e.env.data.authenticationMethods.list(e.var.tenant_id,t)).map(e=>({id:e.id,type:e.type,confirmed:e.confirmed,phone_number:e.phone_number,credential_id:e.credential_id,public_key:e.public_key,sign_count:e.sign_count,credential_backed_up:e.credential_backed_up,transports:e.transports,friendly_name:e.friendly_name,created_at:e.created_at}));return e.json(n)}}),lJ=L({route:(0,f.createRoute)({tags:[`users`],method:`post`,path:`/`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),body:{content:{"application/json":{schema:sJ}}}},security:[{Bearer:[`update:users`]}],responses:{201:{content:{"application/json":{schema:aJ}},description:`Created authentication method`}}}),handler:async e=>{let t=e.req.param(`user_id`);if(!t)throw new m(400,{message:`user_id is required`});let n=e.req.valid(`json`),r=await e.env.data.authenticationMethods.create(e.var.tenant_id,{user_id:t,type:n.type,phone_number:n.phone_number,totp_secret:n.totp_secret,credential_id:n.credential_id,public_key:n.public_key,sign_count:n.sign_count,credential_backed_up:n.credential_backed_up,transports:n.transports,friendly_name:n.friendly_name,confirmed:n.confirmed??!0});return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Create Authentication Method`,targetType:`authentication_method`,targetId:r.id}),e.json({id:r.id,type:r.type,confirmed:r.confirmed,phone_number:r.phone_number,credential_id:r.credential_id,public_key:r.public_key,sign_count:r.sign_count,credential_backed_up:r.credential_backed_up,transports:r.transports,friendly_name:r.friendly_name,created_at:r.created_at},201)}}),uJ=L({route:(0,f.createRoute)({tags:[`users`],method:`get`,path:`/{method_id}`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),params:f.z.object({method_id:f.z.string()})},security:[{Bearer:[`read:users`]}],responses:{200:{content:{"application/json":{schema:aJ}},description:`Authentication method details`}}}),handler:async e=>{let{method_id:t}=e.req.valid(`param`),n=e.req.param(`user_id`),r=await e.env.data.authenticationMethods.get(e.var.tenant_id,t);if(!r||r.user_id!==n)throw new m(404,{message:`Authentication method not found`});return e.json({id:r.id,type:r.type,confirmed:r.confirmed,phone_number:r.phone_number,credential_id:r.credential_id,public_key:r.public_key,sign_count:r.sign_count,credential_backed_up:r.credential_backed_up,transports:r.transports,friendly_name:r.friendly_name,created_at:r.created_at})}}),dJ=L({route:(0,f.createRoute)({tags:[`users`],method:`delete`,path:`/{method_id}`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),params:f.z.object({method_id:f.z.string()})},security:[{Bearer:[`update:users`]}],responses:{204:{description:`Authentication method deleted`}}}),handler:async e=>{let{method_id:t}=e.req.valid(`param`),n=e.req.param(`user_id`),r=await e.env.data.authenticationMethods.get(e.var.tenant_id,t);if(!r||r.user_id!==n||!await e.env.data.authenticationMethods.remove(e.var.tenant_id,t))throw new m(404,{message:`Authentication method not found`});return await I(e,e.var.tenant_id,{type:P.SUCCESS_API_OPERATION,description:`Delete Authentication Method`,targetType:`authentication_method`,targetId:t}),e.body(null,204)}}),fJ=new f.OpenAPIHono().openapiRoutes([cJ,lJ,uJ,dJ]),pJ=432e3,mJ=f.z.object({user_id:f.z.string(),result_url:f.z.string().url().optional(),ttl_sec:f.z.number().int().positive().max(2592e3).optional(),client_id:f.z.string().optional(),organization_id:f.z.string().optional(),identity:f.z.object({user_id:f.z.string().optional(),provider:f.z.string().optional()}).optional(),includeEmailInRedirect:f.z.boolean().optional()}),hJ=f.z.object({user_id:f.z.string().optional(),email:f.z.string().email().optional(),connection_id:f.z.string().optional(),result_url:f.z.string().url().optional(),ttl_sec:f.z.number().int().positive().max(2592e3).optional(),client_id:f.z.string().optional(),organization_id:f.z.string().optional(),mark_email_as_verified:f.z.boolean().optional(),includeEmailInRedirect:f.z.boolean().optional(),new_password:f.z.string().optional()}),gJ=f.z.object({ticket:f.z.string().openapi({description:`A URL representing the ticket. Single-use, time-limited.`})}),_J=L({route:(0,f.createRoute)({tags:[`tickets`],method:`post`,path:`/email-verification`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),body:{content:{"application/json":{schema:mJ}}}},security:[{Bearer:[`create:user_tickets`]}],responses:{201:{description:`Email verification ticket created`,content:{"application/json":{schema:gJ}}}}}),handler:async e=>{let t=e.var.tenant_id,n=e.req.valid(`json`),r=await e.env.data.users.get(t,n.user_id);if(!r)throw new m(404,{message:`User not found`});let i=To(),a=n.ttl_sec??pJ,o=new Date(Date.now()+a*1e3).toISOString();await e.env.data.codes.create(t,{code_id:i,code_type:`ticket`,login_id:i,user_id:r.user_id,expires_at:o,redirect_uri:n.result_url,state:JSON.stringify({purpose:`email_verification`,client_id:n.client_id,organization_id:n.organization_id,result_url:n.result_url,includeEmailInRedirect:n.includeEmailInRedirect})});let s=Fa(e.env,e.var.custom_domain),c=new URL(`u2/tickets/email-verification`,s);return c.searchParams.set(`ticket`,i),e.var.custom_domain||c.searchParams.set(`tenant_id`,t),await I(e,t,{type:P.SUCCESS_API_OPERATION,description:`Create Email Verification Ticket`,targetType:`ticket`,targetId:i,userId:r.user_id}),e.json({ticket:c.toString()},{status:201})}}),vJ=L({route:(0,f.createRoute)({tags:[`tickets`],method:`post`,path:`/password-change`,request:{headers:f.z.object({"tenant-id":f.z.string().optional()}),body:{content:{"application/json":{schema:hJ}}}},security:[{Bearer:[`create:user_tickets`]}],responses:{201:{description:`Password change ticket created`,content:{"application/json":{schema:gJ}}}}}),handler:async e=>{let t=e.var.tenant_id,n=e.req.valid(`json`),r=n.user_id;if(!r){if(!n.email)throw new m(400,{message:`user_id or email is required`});let i;if(n.connection_id){let r=await e.env.data.connections.get(t,n.connection_id);if(!r)throw new m(404,{message:`Connection not found (connection_id=${n.connection_id})`});i=r.name}let a=i?`email:${n.email.toLowerCase()} connection:${i}`:`email:${n.email.toLowerCase()}`,{users:o}=await e.env.data.users.list(t,{q:a,per_page:1}),s=o[0];if(!s)throw new m(404,{message:`User not found`});r=s.user_id}let i=To(),a=n.ttl_sec??pJ,o=new Date(Date.now()+a*1e3).toISOString();await e.env.data.codes.create(t,{code_id:i,code_type:`ticket`,login_id:i,user_id:r,expires_at:o,redirect_uri:n.result_url,state:JSON.stringify({purpose:`password_change`,client_id:n.client_id,organization_id:n.organization_id,connection_id:n.connection_id,result_url:n.result_url,mark_email_as_verified:n.mark_email_as_verified})});let s=Fa(e.env,e.var.custom_domain),c=new URL(`u2/tickets/password-change`,s);return c.searchParams.set(`ticket`,i),e.var.custom_domain||c.searchParams.set(`tenant_id`,t),await I(e,t,{type:P.SUCCESS_API_OPERATION,description:`Create Password Change Ticket`,targetType:`ticket`,targetId:i,userId:r}),e.json({ticket:c.toString()},{status:201})}}),yJ=new f.OpenAPIHono().openapiRoutes([_J,vJ]),bJ=f.z.object({proxy_routes:f.z.array(Oi),start:f.z.number(),limit:f.z.number(),length:f.z.number()}),xJ=f.z.object({page:f.z.coerce.number().int().min(0).optional(),per_page:f.z.coerce.number().int().min(1).max(200).optional(),custom_domain_id:f.z.string().optional()}),SJ=f.z.object({id:f.z.string()}),CJ=f.z.object({"tenant-id":f.z.string().optional()});function wJ(e){let t=e.env.data.proxyRoutes;if(!t)throw new m(501,{message:`Proxy routes adapter not configured`});return t}var TJ=L({route:(0,f.createRoute)({tags:[`proxy-routes`],method:`get`,path:`/`,request:{query:xJ,headers:CJ},security:[{Bearer:[`read:proxy_routes`]}],responses:{200:{content:{"application/json":{schema:bJ}},description:`List of proxy routes`}}}),handler:async e=>{let t=wJ(e),n=e.req.valid(`query`),r=await t.list(e.var.tenant_id,{page:n.page,per_page:n.per_page,custom_domain_id:n.custom_domain_id});return e.json(r)}}),EJ=L({route:(0,f.createRoute)({tags:[`proxy-routes`],method:`get`,path:`/{id}`,request:{params:SJ,headers:CJ},security:[{Bearer:[`read:proxy_routes`]}],responses:{200:{content:{"application/json":{schema:Oi}},description:`A proxy route`}}}),handler:async e=>{let t=wJ(e),{id:n}=e.req.valid(`param`),r=await t.get(e.var.tenant_id,n);if(!r)throw new m(404);return e.json(r)}}),DJ=L({route:(0,f.createRoute)({tags:[`proxy-routes`],method:`post`,path:`/`,request:{body:{content:{"application/json":{schema:f.z.object(Di.shape)}}},headers:CJ},security:[{Bearer:[`create:proxy_routes`]}],responses:{201:{content:{"application/json":{schema:Oi}},description:`Created proxy route`}}}),handler:async e=>{let t=wJ(e),n=e.req.valid(`json`),r=await t.create(e.var.tenant_id,n);return hW(e,{tenantId:e.var.tenant_id,entity:`proxy_route`,op:`created`,aggregateId:r.id,payload:r}),e.json(r,{status:201})}}),OJ=L({route:(0,f.createRoute)({tags:[`proxy-routes`],method:`patch`,path:`/{id}`,request:{params:SJ,body:{content:{"application/json":{schema:f.z.object(ki.shape).partial()}}},headers:CJ},security:[{Bearer:[`update:proxy_routes`]}],responses:{200:{content:{"application/json":{schema:Oi}},description:`Updated proxy route`}}}),handler:async e=>{let t=wJ(e),{id:n}=e.req.valid(`param`),r=e.req.valid(`json`);if(!await t.update(e.var.tenant_id,n,r))throw new m(404);let i=await t.get(e.var.tenant_id,n);if(!i)throw new m(404);return hW(e,{tenantId:e.var.tenant_id,entity:`proxy_route`,op:`updated`,aggregateId:n,payload:i}),e.json(i)}}),kJ=L({route:(0,f.createRoute)({tags:[`proxy-routes`],method:`delete`,path:`/{id}`,request:{params:SJ,headers:CJ},security:[{Bearer:[`delete:proxy_routes`]}],responses:{204:{description:`Deleted`}}}),handler:async e=>{let t=wJ(e),{id:n}=e.req.valid(`param`),r=await t.get(e.var.tenant_id,n);if(!await t.remove(e.var.tenant_id,n))throw new m(404);return r&&hW(e,{tenantId:e.var.tenant_id,entity:`proxy_route`,op:`deleted`,aggregateId:n,payload:r}),e.body(null,204)}}),AJ=new f.OpenAPIHono().openapiRoutes([TJ,EJ,DJ,OJ,kJ]),jJ=50,MJ=1e3,NJ=3e5,PJ=5,FJ=7,IJ=3e4;async function LJ(e,t,n){console.warn(`Outbox event ${t} dead-lettering: ${n}`);try{await e.deadLetter(t,n)}catch{}}function RJ(e){let t=Math.min(MJ*2**e,NJ);return new Date(Date.now()+t).toISOString()}async function zJ(e,t,n,r){if(t.length===0)return;let i=r?.maxRetries??PJ,a=crypto.randomUUID(),o=await e.claimEvents(t,a,IJ);if(o.length===0)return;let s=await e.getByIds(o);if(s.length===0)return;let c=[];for(let t of s){if(t.retry_count>=i){await LJ(e,t.id,t.error||`Exceeded max retries (${i})`);continue}let r=!0,a=!1;for(let i of n)if(!(i.accepts&&!i.accepts(t))){a=!0;try{let e=i.transform(t);await i.deliver([e])}catch(n){r=!1;let a=n instanceof Error?n.message:String(n);try{await e.markRetry(t.id,`${i.name}: ${a}`,RJ(t.retry_count))}catch{}break}}if(!a){await LJ(e,t.id,`No destination accepts event_type=${t.event_type}`);continue}r&&c.push(t.id)}if(c.length>0)try{await e.markProcessed(c)}catch{}}async function BJ(e,t,n){let r=n?.batchSize??jJ,i=n?.maxRetries??PJ,a=n?.retentionDays??FJ,o=await e.getUnprocessed(r);if(o.length===0)return;let s=crypto.randomUUID(),c=o.map(e=>e.id),l=new Set(await e.claimEvents(c,s,IJ)),u=o.filter(e=>l.has(e.id));if(u.length===0)return;let d=[],f=[];for(let n of u){if(n.retry_count>=i){await LJ(e,n.id,n.error||`Exceeded max retries (${i})`);continue}let r=!0,a=!1;for(let i of t)if(!(i.accepts&&!i.accepts(n))){a=!0;try{let e=i.transform(n);await i.deliver([e])}catch(t){r=!1;let a=t instanceof Error?t.message:String(t);try{await e.markRetry(n.id,`${i.name}: ${a}`,RJ(n.retry_count))}catch{}break}}if(!a){await LJ(e,n.id,`No destination accepts event_type=${n.event_type}`);continue}r?d.push(n.id):f.push(n.id)}if(d.length>0)try{await e.markProcessed(d)}catch{}try{let t=new Date(Date.now()-a*24*60*60*1e3).toISOString();await e.cleanup(t)}catch{}}function VJ(e){return async(t,n)=>{t.set(`outboxEventPromises`,[]),t.set(`backgroundPromises`,[]);let r;try{await n()}catch(e){r=e}finally{let n=t.var.outboxEventPromises??[],r=[];if(n.length>0){let e=await Promise.allSettled(n);for(let t of e)t.status===`fulfilled`?r.push(t.value):console.error(`Outbox event creation failed`,t.reason)}if(r.length>0){let n=e.getOutbox(t);n&&Va(t,zJ(n,r,e.getDestinations(t),{maxRetries:t.env.outbox?.maxRetries}))}typeof process<`u`&&process.env.NODE_ENV===`test`&&await Ha(t)}if(r)throw r}}function HJ(e){return{log_id:e.id,type:e.log_type,date:e.timestamp,description:e.description||``,ip:e.request.ip,user_agent:e.request.user_agent||``,user_id:e.actor.id||``,user_name:e.actor.email||``,client_id:e.actor.client_id,client_name:``,connection:e.connection,strategy:e.strategy,strategy_type:e.strategy_type,audience:e.audience||``,scope:e.scope||e.actor.scopes?.join(` `),hostname:e.hostname,auth0_client:e.auth0_client,isMobile:e.is_mobile||!1,location_info:e.location,details:{request:{method:e.request.method,path:e.request.path,qs:e.request.query,body:e.request.body},...e.response&&{response:{statusCode:e.response.status_code,body:e.response.body}}}}}var UJ=class{name=`logs`;logs;constructor(e){this.logs=e}accepts(e){return!e.event_type.startsWith(`hook.`)&&!e.event_type.startsWith(`controlplane.sync.`)}transform(e){return{tenantId:e.tenant_id,log:HJ(e)}}async deliver(e){for(let{tenantId:t,log:n}of e)try{await this.logs.create(t,n)}catch(e){let t=e instanceof Error?e.message:String(e);if(t.includes(`UNIQUE constraint failed`)||t.includes(`Duplicate entry`))continue;throw e}}},WJ=1e4;function GJ(e){return{log_id:e.id,description:e.description,data:{date:e.timestamp,type:e.log_type,description:e.description,tenant_name:e.tenant_id,ip:e.request.ip,user_agent:e.request.user_agent,user_id:e.actor.id,user_name:e.actor.email,client_id:e.actor.client_id,connection:e.connection,strategy:e.strategy,strategy_type:e.strategy_type,audience:e.audience,scope:e.scope||e.actor.scopes?.join(` `),hostname:e.hostname,auth0_client:e.auth0_client,location_info:e.location,details:{request:{method:e.request.method,path:e.request.path,qs:e.request.query,body:e.request.body},...e.response&&{response:{statusCode:e.response.status_code,body:e.response.body}}}}}}function KJ(e,t){return!e.filters||e.filters.length===0?!0:e.filters.some(e=>e.name===t)}function qJ(e,t){switch(e){case`JSONOBJECT`:return JSON.stringify(t);case`JSONLINES`:return JSON.stringify(t)+`
|
|
2940
|
+
`;default:return JSON.stringify([t])}}var JJ=class{name=`log-streams`;logStreams;timeoutMs;constructor(e,t){this.logStreams=e,this.timeoutMs=t?.timeoutMs??WJ}accepts(e){return!e.event_type.startsWith(`hook.`)&&!e.event_type.startsWith(`controlplane.sync.`)}transform(e){return{tenantId:e.tenant_id,logType:e.log_type,payload:GJ(e)}}async deliver(e){for(let{tenantId:t,logType:n,payload:r}of e){let e=(await this.logStreams.list(t)).filter(e=>e.type===`http`&&e.status===`active`);if(e.length!==0)for(let t of e)KJ(t,n)&&await this.deliverToStream(t,r)}}async deliverToStream(e,t){let n=e.sink;if(!n.http_endpoint)throw Error(`Log stream ${e.id} is missing sink.http_endpoint`);let r={"Content-Type":n.http_content_type||`application/json`};if(n.http_authorization&&(r.Authorization=n.http_authorization),Array.isArray(n.http_custom_headers))for(let e of n.http_custom_headers)e&&typeof e.header==`string`&&typeof e.value==`string`&&(r[e.header]=e.value);let i=qJ(n.http_content_format,t),a=new AbortController,o=setTimeout(()=>a.abort(),this.timeoutMs);try{let t=await fetch(n.http_endpoint,{method:`POST`,headers:r,body:i,signal:a.signal});if(!t.ok){let n=await t.text().catch(()=>``);throw Error(`Log stream ${e.id} returned ${t.status}: ${n.slice(0,256)}`)}}finally{clearTimeout(o)}}},YJ=`hook.`,XJ=1e4,ZJ=`webhook`,QJ=class{name=`webhooks`;hooks;getServiceToken;timeoutMs;webhookInvoker;constructor(e,t,n={}){this.hooks=e,this.getServiceToken=t,this.timeoutMs=n.timeoutMs??XJ,this.webhookInvoker=n.webhookInvoker}accepts(e){return e.event_type.startsWith(YJ)}transform(e){let t=e.event_type.slice(5);return{eventId:e.id,tenantId:e.tenant_id,triggerId:t,payload:{tenant_id:e.tenant_id,trigger_id:t,user:e.target?.after,request:e.request}}}async deliver(e){for(let t of e){let{hooks:e}=await this.hooks.list(t.tenantId),n=e.filter(e=>e.enabled&&e.trigger_id===t.triggerId&&`url`in e);if(n.length!==0)for(let e of n)this.webhookInvoker?await this.invokeCustom(e,t):await this.invokeDefault(e,t)}}async invokeCustom(e,t){let n=this.webhookInvoker,r=(e=ZJ)=>this.getServiceToken(t.tenantId,e),i=new Promise((n,r)=>{setTimeout(()=>r(Error(`Webhook ${e.hook_id} (${t.triggerId}) timed out after ${this.timeoutMs}ms`)),this.timeoutMs)}),a=await Promise.race([n({hook:e,data:t.payload,tenant_id:t.tenantId,idempotency_key:t.eventId,createServiceToken:r}),i]);if(!a.ok){let n=await a.text().catch(()=>``);throw Error(`Webhook ${e.hook_id} (${t.triggerId}) returned ${a.status}: ${n.slice(0,256)}`)}}async invokeDefault(e,t){let n=await this.getServiceToken(t.tenantId,ZJ),r=new AbortController,i=setTimeout(()=>r.abort(),this.timeoutMs);try{let i=await fetch(e.url,{method:`POST`,headers:{"Content-Type":`application/json`,Authorization:`Bearer ${n}`,"Idempotency-Key":t.eventId},body:JSON.stringify(t.payload),signal:r.signal});if(!i.ok){let n=await i.text().catch(()=>``);throw Error(`Webhook ${e.hook_id} (${t.triggerId}) returned ${i.status}: ${n.slice(0,256)}`)}}finally{clearTimeout(i)}}},$J=`hook.post-user-registration`,eY=class{name=`registration-finalizer`;users;constructor(e){this.users=e}accepts(e){return e.event_type===$J}transform(e){return{tenantId:e.tenant_id,userId:e.target?.id??``,timestamp:new Date().toISOString()}}async deliver(e){for(let{tenantId:t,userId:n,timestamp:r}of e)n&&await this.users.update(t,n,{registration_completed_at:r})}},tY=1e4,nY=`controlplane:sync`,rY=`/api/v2/proxy/control-plane/sync`,iY=new Set([`custom_domain`,`proxy_route`]),aY=new Set([`created`,`updated`,`deleted`]);function oY(e){return iY.has(e)}function sY(e){return aY.has(e)}var cY=class{name=`control-plane-sync`;baseUrl;getServiceToken;timeoutMs;fetchImpl;constructor(e){this.baseUrl=e.baseUrl.replace(/\/+$/,``),this.getServiceToken=e.getServiceToken,this.timeoutMs=e.timeoutMs??tY,this.fetchImpl=e.fetchImpl??fetch}accepts(e){return e.event_type.startsWith(mW)}transform(e){let[t,n]=e.event_type.slice(mW.length).split(`.`);if(!t||!oY(t))throw Error(`ControlPlaneSyncDestination: unknown entity in event_type "${e.event_type}"`);if(!n||!sY(n))throw Error(`ControlPlaneSyncDestination: unknown op in event_type "${e.event_type}"`);let r=e.target.after??e.target.before;if(!r)throw Error(`ControlPlaneSyncDestination: event ${e.id} has no payload (target.after/before)`);return{event_id:e.id,tenant_id:e.tenant_id,entity:t,op:n,aggregate_id:e.target.id,payload:r,occurred_at:e.timestamp}}async deliver(e){for(let t of e){let e=await this.getServiceToken(t.tenant_id,nY),n=new AbortController,r=setTimeout(()=>n.abort(),this.timeoutMs);try{let r=await this.fetchImpl(`${this.baseUrl}${rY}`,{method:`POST`,headers:{"Content-Type":`application/json`,Authorization:`Bearer ${e}`,"Idempotency-Key":t.event_id},body:JSON.stringify({events:[t]}),signal:n.signal});if(!r.ok){let e=await r.text().catch(()=>``);throw Error(`Control-plane sync POST returned ${r.status}: ${e.slice(0,256)}`)}}finally{clearTimeout(r)}}}};function lY(e){let t=new f.OpenAPIHono,n=e.managementDataAdapter??e.dataAdapter;t.use(QW(e)),t.use(sN);let r=async e=>{let t=e.req.header(`x-forwarded-host`),r=e.req.header(`host`),i=t||r;if(!i)return;let a=new URL(Fa(e.env)).host.toLowerCase(),o=i.toLowerCase();if(o.endsWith(`.${a}`)){let e=o.slice(0,-(a.length+1));return e&&!e.includes(`.`)?e:void 0}for(let e of[t,r]){if(!e)continue;let t=e.toLowerCase();if(t===a||t.endsWith(`.${a}`))continue;let r=await n.customDomains.getByDomain(t);if(r)return r.tenant_id}};t.use(async(t,i)=>{let a=t.req.header(`origin`),o=e=>{t.res.headers.set(`Access-Control-Allow-Origin`,e),t.res.headers.set(`Access-Control-Allow-Headers`,`Tenant-Id, Content-Type, Content-Range, Auth0-Client, Authorization, Range, Upgrade-Insecure-Requests`),t.res.headers.set(`Access-Control-Allow-Methods`,`POST, PUT, GET, DELETE, PATCH, OPTIONS`),t.res.headers.set(`Access-Control-Expose-Headers`,`Content-Length, Content-Range`),t.res.headers.set(`Access-Control-Max-Age`,`600`),t.res.headers.set(`Access-Control-Allow-Credentials`,`true`),t.res.headers.append(`Vary`,`Origin`)};if(t.req.method===`OPTIONS`){let i=new Response(null,{status:204});if(a){let o=e=>{i.headers.set(`Access-Control-Allow-Origin`,e),i.headers.set(`Access-Control-Allow-Headers`,`Tenant-Id, Content-Type, Content-Range, Auth0-Client, Authorization, Range, Upgrade-Insecure-Requests`),i.headers.set(`Access-Control-Allow-Methods`,`POST, PUT, GET, DELETE, PATCH, OPTIONS`),i.headers.set(`Access-Control-Expose-Headers`,`Content-Length, Content-Range`),i.headers.set(`Access-Control-Max-Age`,`600`),i.headers.set(`Access-Control-Allow-Credentials`,`true`),i.headers.append(`Vary`,`Origin`)};if(e.allowedOrigins?.includes(a))return o(a),i;let s=t.req.header(`tenant-id`)??await r(t);if(s&&(await n.clients.list(s,{})).clients.flatMap(e=>e.web_origins||[]).includes(a))return o(a),i}return i.headers.append(`Vary`,`Origin`),i}if(await i(),t.res.headers.append(`Vary`,`Origin`),a){if(e.allowedOrigins?.includes(a)){o(a);return}let r=t.var.tenant_id||t.req.header(`tenant-id`);r&&(await n.clients.list(r,{})).clients.flatMap(e=>e.web_origins||[]).includes(a)&&o(a)}}),t.onError((e,t)=>{if(!(e instanceof m))throw e;let n=e.status;if(n<400||n>=500)throw e;let r=e.getResponse();if(r.headers.get(`content-type`)?.includes(`application/json`))return r;let i={400:`Bad Request`,401:`Unauthorized`,403:`Forbidden`,404:`Not Found`,405:`Method Not Allowed`,409:`Conflict`,422:`Unprocessable Entity`,429:`Too Many Requests`};return t.json({statusCode:n,error:i[n]??`Error`,message:e.message||i[n]||`Error`},n)}),t.use(async(e,t)=>{if(await t(),e.res.status!==400||!e.res.headers.get(`content-type`)?.includes(`application/json`))return;let n;try{n=await e.res.clone().json()}catch{return}if(typeof n!=`object`||!n||!(`success`in n)||n.success!==!1||!(`error`in n)||typeof n.error!=`object`||n.error===null||!(`name`in n.error)||n.error.name!==`ZodError`)return;let r=`issues`in n.error&&Array.isArray(n.error.issues)?n.error.issues:[],i=r.length?`Payload validation error: ${r.map(e=>{let t=Array.isArray(e.path)?e.path:[];return`'${t.length?t.join(`.`):`root`}': ${e.message??`invalid`}`}).join(`; `)}`:`Payload validation error`;e.res=new Response(JSON.stringify({statusCode:400,error:`Bad Request`,message:i,errorCode:`invalid_body`}),{status:400,headers:{"content-type":`application/json`}})}),BH(t);let i=e.dataAdapter.cache||DG({defaultTtlSeconds:0,maxEntries:100,cleanupIntervalMs:0}),a=(e,t)=>{let n=iA(e,uN(e,t)),r=lN(e,i);return _G(lG(n,{defaultTtl:0,cacheEntities:[`tenants`,`connections`,`clients`,`branding`,`themes`,`promptSettings`,`customText`,`forms`,`hooks`],cache:r}),r)};t.use(VJ({getOutbox:()=>n.outbox,getDestinations:t=>[new UJ(n.logs),...n.logStreams?[new JJ(n.logStreams)]:[],new QJ(n.hooks,async e=>(await nN(t,e,`webhook`)).access_token),...e.controlPlaneSync?[new cY({baseUrl:e.controlPlaneSync.baseUrl,timeoutMs:e.controlPlaneSync.timeoutMs,getServiceToken:async(e,n)=>(await nN(t,e,n??`controlplane:sync`)).access_token})]:[],new eY(n.users)]})),t.use(async(t,r)=>{t.env.data=a(t,n),t.env.entityHooks=e.entityHooks,await r()}),t.use(async(e,t)=>{let n;try{await t()}catch(e){n=e}let r,i;if(n instanceof m){r=n.status;let e=n.getResponse();if(e.headers.get(`content-type`)?.includes(`application/json`))try{i=await e.clone().json()}catch{}}else if(n)r=500;else if(r=e.res.status,r>=400&&e.res.headers.get(`content-type`)?.includes(`application/json`))try{i=await e.res.clone().json()}catch{}if(r>=400&&r<600){let t=e.var.tenant_id||e.req.header(`tenant-id`);if(t&&e.env.data?.logs)try{let n=e.var.user?.aud,a=Array.isArray(n)?n.join(`,`):typeof n==`string`?n:void 0,o=a?`${e.req.method} ${e.req.path} (aud: ${a})`:`${e.req.method} ${e.req.path}`;await I(e,t,{type:P.FAILED_API_OPERATION,description:o,response:{statusCode:r,body:i}})}catch(e){console.warn(`Failed to write fapi log:`,e)}}if(n)throw n}),t.use(iG).use(sG).use(tG).use(HU(t,{requireManagementAudience:!0,relaxManagementAudience:e.relaxManagementAudience,additionalManagementAudiences:e.additionalManagementAudiences,additionalIssuers:e.additionalIssuers})).use(async(t,n)=>(e.entityHooks&&t.var.tenant_id&&(t.env.data=TG(t.env.data,{tenantId:t.var.tenant_id,entityHooks:e.entityHooks})),n()));let o=new Set(e.managementApiExtensions?.map(e=>e.path)||[]),s=t.route(`/actions/actions`,yo).route(`/actions/executions`,bee).route(`/actions/triggers`,Fee).route(`/branding`,cu).route(`/custom-domains`,CW).route(`/email/providers`,qU).route(`/emails/provider`,qU).route(`/email-templates`,oW).route(`/users`,jm).route(`/keys`,$E).route(`/users-by-email`,tD).route(`/clients`,qD).route(`/client-grants`,mK).route(`/grants`,bK).route(`/client-registration-tokens`,zK).route(`/logs`,tO).route(`/log-streams`,AW).route(`/migration-sources`,BW).route(`/attack-protection`,ZW).route(`/failed-events`,oO).route(`/hooks`,yre).route(`/hook-code`,wre).route(`/connections`,AH).route(`/prompts`,RH).route(`/sessions`,uW).route(`/refresh_tokens`,pW).route(`/forms`,PG).route(`/flows`,VG).route(`/roles`,QG).route(`/resource-servers`,oK).route(`/organizations`,gq).route(`/stats`,Sq).route(`/analytics`,Rq({cache:i})).route(`/guardian`,iJ).route(`/tickets`,yJ).route(`/users/:user_id/authentication-methods`,fJ);if(o.has(`/tenants`)||s.route(`/tenants`,XD),!o.has(`/proxy-routes`)&&n.proxyRoutes&&s.route(`/proxy-routes`,AJ),e.managementApiExtensions)for(let t of e.managementApiExtensions)s.route(t.path,t.router);return s.doc(`/spec`,{openapi:`3.0.0`,info:{version:`1.0.0`,title:`Management API`},servers:[{url:`/api/v2`,description:`API V2`}],security:[{oauth2:[`openid`,`email`,`profile`]}]}),s}var uY=f.z.object({created_at:f.z.string(),updated_at:f.z.string()}),dY=f.z.object({id:f.z.string(),version:f.z.string().optional()}),fY=f.z.object({name:f.z.string(),version:f.z.string()}),pY=f.z.object({name:f.z.string(),value:f.z.string().optional()}),mY=f.z.object({name:f.z.string().max(255),code:f.z.string().max(1e5),supported_triggers:f.z.array(dY).optional(),runtime:f.z.string().max(50).optional(),dependencies:f.z.array(fY).optional(),secrets:f.z.array(pY).optional(),is_system:f.z.boolean().optional(),inherit:f.z.boolean().optional()});mY.partial().extend({status:f.z.enum([`draft`,`built`]).optional(),deployed_at:f.z.string().optional()}),mY.extend({id:f.z.string(),tenant_id:f.z.string(),status:f.z.enum([`draft`,`built`]).default(`built`),deployed_at:f.z.string().optional(),secrets:f.z.array(f.z.object({name:f.z.string(),value:f.z.string().optional()})).optional()}).extend(uY.shape);var hY=f.z.string(),gY=f.z.enum([`unspecified`,`pending`,`final`,`partial`,`canceled`,`suspended`]),_Y=f.z.object({id:f.z.string(),msg:f.z.string(),url:f.z.string().optional()}),vY=f.z.object({action_name:f.z.string(),error:_Y.nullable(),started_at:f.z.string(),ended_at:f.z.string()}),yY=f.z.object({level:f.z.enum([`log`,`info`,`warn`,`error`,`debug`]),message:f.z.string()}),bY=f.z.array(f.z.object({action_name:f.z.string(),lines:f.z.array(yY)}));f.z.object({id:f.z.string(),tenant_id:f.z.string(),trigger_id:hY,status:gY,results:f.z.array(vY),logs:bY.optional(),created_at:f.z.string(),updated_at:f.z.string()}).omit({tenant_id:!0,created_at:!0,updated_at:!0}),f.z.object({action_id:f.z.string(),code:f.z.string().max(1e5),runtime:f.z.string().max(50).optional(),dependencies:f.z.array(fY).optional(),secrets:f.z.array(pY).optional(),supported_triggers:f.z.array(dY).optional(),deployed:f.z.boolean().default(!0)}).extend({id:f.z.string(),tenant_id:f.z.string(),number:f.z.number().int()}).extend(uY.shape);var xY=f.z.enum([`user_action`,`admin_action`,`system`,`api`]),SY=f.z.object({type:f.z.enum([`user`,`admin`,`system`,`api_key`,`client_credentials`]),id:f.z.string().optional(),email:f.z.string().optional(),org_id:f.z.string().optional(),org_name:f.z.string().optional(),scopes:f.z.array(f.z.string()).optional(),client_id:f.z.string().optional()}),CY=f.z.object({type:f.z.string(),id:f.z.string(),before:f.z.record(f.z.string(),f.z.unknown()).optional(),after:f.z.record(f.z.string(),f.z.unknown()).optional(),diff:f.z.record(f.z.string(),f.z.object({old:f.z.unknown(),new:f.z.unknown()})).optional()}),wY=f.z.object({method:f.z.string(),path:f.z.string(),query:f.z.record(f.z.string(),f.z.string()).optional(),body:f.z.unknown().optional(),ip:f.z.string(),user_agent:f.z.string().optional(),correlation_id:f.z.string().optional()}),TY=f.z.object({status_code:f.z.number(),body:f.z.unknown().optional()}),EY=f.z.object({country_code:f.z.string(),city_name:f.z.string(),latitude:f.z.string(),longitude:f.z.string(),time_zone:f.z.string(),continent_code:f.z.string()}),DY=f.z.object({name:f.z.string(),version:f.z.string(),env:f.z.record(f.z.string(),f.z.string()).optional()});f.z.object({tenant_id:f.z.string(),event_type:f.z.string(),log_type:f.z.string(),description:f.z.string().optional(),category:xY,actor:SY,target:CY,request:wY,response:TY.optional(),connection:f.z.string().optional(),strategy:f.z.string().optional(),strategy_type:f.z.string().optional(),audience:f.z.string().optional(),scope:f.z.string().optional(),location:EY.optional(),auth0_client:DY.optional(),hostname:f.z.string(),is_mobile:f.z.boolean().optional(),timestamp:f.z.string()}).extend({id:f.z.string()}),f.z.enum([`AUTH0`,`EMAIL`,`REDIRECT`]),f.z.enum([`CREATE_USER`,`GET_USER`,`UPDATE_USER`,`SEND_REQUEST`,`SEND_EMAIL`]),f.z.enum([`VERIFY_EMAIL`]);var OY=f.z.object({require_mx_record:f.z.boolean().optional(),block_aliases:f.z.boolean().optional(),block_free_emails:f.z.boolean().optional(),block_disposable_emails:f.z.boolean().optional(),blocklist:f.z.array(f.z.string()).optional(),allowlist:f.z.array(f.z.string()).optional()}),kY=f.z.object({id:f.z.string(),alias:f.z.string().max(100).optional(),type:f.z.literal(`AUTH0`),action:f.z.literal(`UPDATE_USER`),allow_failure:f.z.boolean().optional(),mask_output:f.z.boolean().optional(),params:f.z.object({connection_id:f.z.string().optional(),user_id:f.z.string(),changes:f.z.record(f.z.string(),f.z.any())})}),AY=f.z.object({id:f.z.string(),alias:f.z.string().max(100).optional(),type:f.z.literal(`EMAIL`),action:f.z.literal(`VERIFY_EMAIL`),allow_failure:f.z.boolean().optional(),mask_output:f.z.boolean().optional(),params:f.z.object({email:f.z.string(),rules:OY.optional()})}),jY=f.z.enum([`change-email`,`account`,`custom`]),MY=f.z.object({id:f.z.string(),alias:f.z.string().max(100).optional(),type:f.z.literal(`REDIRECT`),action:f.z.literal(`REDIRECT_USER`),allow_failure:f.z.boolean().optional(),mask_output:f.z.boolean().optional(),params:f.z.object({target:jY.openapi({description:`The predefined target to redirect to, or 'custom' for a custom URL`}),custom_url:f.z.string().optional().openapi({description:`Custom URL to redirect to when target is 'custom'`})})}),NY=f.z.union([kY,AY,MY]);f.z.object({name:f.z.string().min(1).max(150).openapi({description:`The name of the flow`}),actions:f.z.array(NY).optional().default([]).openapi({description:`The list of actions to execute in sequence`})}).extend(uY.shape).extend({id:f.z.string().openapi({description:`Unique identifier for the flow`,example:`af_12tMpdJ3iek7svMyZkSh5M`})}),f.z.object({page:f.z.string().min(0).optional().default(`0`).transform(e=>parseInt(e,10)).openapi({description:`The page number where 0 is the first page`}),per_page:f.z.string().min(1).optional().default(`10`).transform(e=>parseInt(e,10)).openapi({description:`The number of items per page`}),include_totals:f.z.string().optional().default(`false`).transform(e=>e===`true`).openapi({description:`If the total number of items should be included in the response`}),sort:f.z.string().regex(/^.+:(-1|1)$/).optional().openapi({description:`A property that should have the format 'string:-1' or 'string:1'`}),q:f.z.string().optional().openapi({description:`A lucene query string used to filter the results`})}),f.z.object({start:f.z.number(),limit:f.z.number(),length:f.z.number(),total:f.z.number().optional()});var PY=f.z.object({email:f.z.string().optional(),email_verified:f.z.boolean().optional(),name:f.z.string().optional(),username:f.z.string().optional(),given_name:f.z.string().optional(),phone_number:f.z.string().optional(),phone_verified:f.z.boolean().optional(),family_name:f.z.string().optional()}).catchall(f.z.any()),FY=f.z.object({connection:f.z.string(),user_id:f.z.string(),provider:f.z.string(),isSocial:f.z.boolean(),email:f.z.string().optional(),email_verified:f.z.boolean().optional(),phone_number:f.z.string().optional(),phone_verified:f.z.boolean().optional(),username:f.z.string().optional(),access_token:f.z.string().optional(),access_token_secret:f.z.string().optional(),refresh_token:f.z.string().optional(),profileData:PY.optional()}),IY=f.z.object({formatted:f.z.string().optional(),street_address:f.z.string().optional(),locality:f.z.string().optional(),region:f.z.string().optional(),postal_code:f.z.string().optional(),country:f.z.string().optional()}).optional(),LY=f.z.object({email:f.z.string().transform(e=>e.toLowerCase()).optional(),username:f.z.string().refine(e=>!e.includes(`@`),{message:`Usernames must not contain "@". Use the email field for email addresses.`}).optional(),phone_number:f.z.string().optional(),phone_verified:f.z.boolean().optional(),given_name:f.z.string().optional(),family_name:f.z.string().optional(),nickname:f.z.string().optional(),name:f.z.string().optional(),picture:f.z.string().optional(),locale:f.z.string().optional(),linked_to:f.z.string().optional(),profileData:f.z.string().optional(),user_id:f.z.string().optional(),app_metadata:f.z.any().default({}).optional(),user_metadata:f.z.any().default({}).optional(),middle_name:f.z.string().optional(),preferred_username:f.z.string().optional(),profile:f.z.string().optional(),website:f.z.string().optional(),gender:f.z.string().optional(),birthdate:f.z.string().optional(),zoneinfo:f.z.string().optional(),address:IY});LY.extend({email_verified:f.z.boolean().default(!1),verify_email:f.z.boolean().optional(),last_ip:f.z.string().optional(),last_login:f.z.string().optional(),user_id:f.z.string().optional(),provider:f.z.string().optional(),connection:f.z.string(),is_social:f.z.boolean().optional(),registration_completed_at:f.z.string().optional(),password:f.z.object({hash:f.z.string(),algorithm:f.z.string()}).optional()}).omit({password:!0}).extend(uY.shape).extend({user_id:f.z.string(),provider:f.z.string(),is_social:f.z.boolean(),email:f.z.string().optional(),login_count:f.z.number().default(0),identities:f.z.array(FY).optional()}).omit({registration_completed_at:!0}),LY.extend({login_count:f.z.number(),multifactor:f.z.array(f.z.string()).optional(),last_ip:f.z.string().optional(),last_login:f.z.string().optional(),user_id:f.z.string()}).catchall(f.z.any());var RY=`useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict`,zY=(e=21)=>{let t=``,n=crypto.getRandomValues(new Uint8Array(e|=0));for(;e--;)t+=RY[n[e]&63];return t},BY=f.z.object({client_id:f.z.string().optional().openapi({description:`ID of this client. Generated server-side if omitted (Auth0 behavior).`}),name:f.z.string().min(1).openapi({description:`Name of this client (min length: 1 character, does not allow < or >).`}),description:f.z.string().max(140).optional().openapi({description:`Free text description of this client (max length: 140 characters).`}),global:f.z.boolean().default(!1).openapi({description:`Whether this is your global 'All Applications' client representing legacy tenant settings (true) or a regular client (false).`}),client_secret:f.z.string().default(()=>zY()).optional().openapi({description:`Client secret (which you must not make public).`}),app_type:f.z.enum([`native`,`spa`,`regular_web`,`non_interactive`,`resource_server`,`express_configuration`,`rms`,`box`,`cloudbees`,`concur`,`dropbox`,`mscrm`,`echosign`,`egnyte`,`newrelic`,`office365`,`salesforce`,`sentry`,`sharepoint`,`slack`,`springcm`,`zendesk`,`zoom`,`sso_integration`,`oag`]).default(`regular_web`).optional().openapi({description:`The type of application this client represents`}),logo_uri:f.z.string().url().optional().openapi({description:`URL of the logo to display for this client. Recommended size is 150x150 pixels.`}),is_first_party:f.z.boolean().default(!0).openapi({description:`Whether this client is a first party client (true) or not (false). First-party clients skip the consent screen; third-party clients require explicit user consent for non-basic scopes.`}),oidc_conformant:f.z.boolean().default(!0).openapi({description:`Whether this client conforms to strict OIDC specifications (true) or uses legacy features (false).`}),auth0_conformant:f.z.boolean().default(!0).openapi({description:`Whether this client follows Auth0-compatible behavior (true) or strict OIDC behavior (false). When true, profile/email claims are included in the ID token when scopes are requested. When false, these claims are only available from the userinfo endpoint (strict OIDC 5.4 compliance).`}),callbacks:f.z.array(f.z.string()).default([]).optional().openapi({description:`Comma-separated list of URLs whitelisted for Auth0 to use as a callback to the client after authentication.`}),allowed_origins:f.z.array(f.z.string()).default([]).optional().openapi({description:`Comma-separated list of URLs allowed to make requests from JavaScript to Auth0 API (typically used with CORS). By default, all your callback URLs will be allowed. This field allows you to enter other origins if necessary. You can also use wildcards at the subdomain level (e.g., https://*.contoso.com). Query strings and hash information are not taken into account when validating these URLs.`}),web_origins:f.z.array(f.z.string()).default([]).optional().openapi({description:`Comma-separated list of allowed origins for use with Cross-Origin Authentication, Device Flow, and web message response mode.`}),client_aliases:f.z.array(f.z.string()).default([]).optional().openapi({description:`List of audiences/realms for SAML protocol. Used by the wsfed addon.`}),allowed_clients:f.z.array(f.z.string()).default([]).optional().openapi({description:`List of allow clients and API ids that are allowed to make delegation requests. Empty means all all your clients are allowed.`}),connections:f.z.array(f.z.string()).default([]).optional().openapi({description:`List of connection IDs enabled for this client. The order determines the display order on the login page.`}),allowed_logout_urls:f.z.array(f.z.string()).default([]).optional().openapi({description:`Comma-separated list of URLs that are valid to redirect to after logout from Auth0. Wildcards are allowed for subdomains.`}),session_transfer:f.z.record(f.z.string(),f.z.any()).default({}).optional().openapi({description:`Native to Web SSO Configuration`}),oidc_logout:f.z.record(f.z.string(),f.z.any()).default({}).optional().openapi({description:`Configuration for OIDC backchannel logout`}),grant_types:f.z.array(f.z.string()).default([]).optional().openapi({description:`List of grant types supported for this application. Can include authorization_code, implicit, refresh_token, client_credentials, password, http://auth0.com/oauth/grant-type/password-realm, http://auth0.com/oauth/grant-type/mfa-oob, http://auth0.com/oauth/grant-type/mfa-otp, http://auth0.com/oauth/grant-type/mfa-recovery-code, urn:openid:params:grant-type:ciba, and urn:ietf:params:oauth:grant-type:device_code.`}),jwt_configuration:f.z.record(f.z.string(),f.z.any()).default({}).optional().openapi({description:`Configuration related to JWTs for the client.`}),signing_keys:f.z.array(f.z.record(f.z.string(),f.z.any())).default([]).optional().openapi({description:`Signing certificates associated with this client.`}),encryption_key:f.z.record(f.z.string(),f.z.any()).default({}).optional().openapi({description:`Encryption used for WsFed responses with this client.`}),sso:f.z.boolean().default(!1).openapi({description:`Applies only to SSO clients and determines whether Auth0 will handle Single Sign On (true) or whether the Identity Provider will (false).`}),sso_disabled:f.z.boolean().default(!1).openapi({description:`Whether Single Sign On is disabled for this client. When true, existing SSO sessions will not be reused and users must authenticate every time.`}),cross_origin_authentication:f.z.boolean().default(!1).openapi({description:`Whether this client can be used to make cross-origin authentication requests (true) or it is not allowed to make such requests (false).`}),cross_origin_loc:f.z.string().url().optional().openapi({description:`URL of the location in your site where the cross origin verification takes place for the cross-origin auth flow when performing Auth in your own domain instead of Auth0 hosted login page.`}),custom_login_page_on:f.z.boolean().default(!1).openapi({description:`Whether a custom login page is to be used (true) or the default provided login page (false).`}),custom_login_page:f.z.string().optional().openapi({description:`The content (HTML, CSS, JS) of the custom login page.`}),custom_login_page_preview:f.z.string().optional().openapi({description:`The content (HTML, CSS, JS) of the custom login page. (Used on Previews)`}),form_template:f.z.string().optional().openapi({description:`HTML form template to be used for WS-Federation.`}),addons:f.z.record(f.z.string(),f.z.any()).default({}).optional().openapi({description:`Addons enabled for this client and their associated configurations.`}),token_endpoint_auth_method:f.z.enum([`none`,`client_secret_post`,`client_secret_basic`,`client_secret_jwt`,`private_key_jwt`]).default(`client_secret_basic`).optional().openapi({description:"Defines the requested authentication method for the token endpoint. `none` (public client), `client_secret_post` / `client_secret_basic` (HTTP POST / Basic), `client_secret_jwt` (RFC 7523 HMAC assertion using client_secret), or `private_key_jwt` (RFC 7523 asymmetric assertion verified against the client's `jwks` / `jwks_uri`)."}),client_metadata:f.z.record(f.z.string(),f.z.string().max(255)).default({}).optional().openapi({description:`Metadata associated with the client, in the form of an object with string values (max 255 chars). Maximum of 10 metadata properties allowed. Field names (max 255 chars) are alphanumeric and may only include the following special characters: :,-+=_*?"/()<>@ [Tab][Space]`}),hide_sign_up_disabled_error:f.z.boolean().default(!1).optional().openapi({description:"Enumeration-safe variant of the connection-level `disable_signup` flag. When a signup is blocked by the password connection and this is true, the identifier screen does not reveal that an email is unknown — it advances to the OTP/password challenge as if the account existed and fails at credential check. Mitigates email enumeration at the cost of UX: users without an account see a generic credential failure instead of an explicit signup-disabled message."}),mobile:f.z.record(f.z.string(),f.z.any()).default({}).optional().openapi({description:`Additional configuration for native mobile apps.`}),initiate_login_uri:f.z.string().url().optional().openapi({description:`Initiate login uri, must be https`}),native_social_login:f.z.record(f.z.string(),f.z.any()).default({}).optional(),refresh_token:f.z.object({rotation_type:f.z.enum([`rotating`,`non-rotating`]).optional().openapi({description:`Whether refresh tokens for this client are rotated on every exchange (Auth0 'rotating' behavior) or kept stable (legacy non-rotating). Defaults to 'non-rotating' when unset.`}),leeway:f.z.number().int().min(0).max(600).optional().openapi({description:`Seconds after a parent token's first rotation during which presenting it again still mints a fresh sibling child instead of triggering reuse-detection. Defaults to 30s when unset.`}),expiration_type:f.z.enum([`expiring`,`non-expiring`]).optional().openapi({description:`Auth0-compatible: whether refresh tokens expire.`}),token_lifetime:f.z.number().int().min(0).optional().openapi({description:`Auth0-compatible: refresh-token absolute lifetime in seconds.`}),infinite_token_lifetime:f.z.boolean().optional().openapi({description:`Auth0-compatible: when true, refresh tokens have no absolute expiry.`}),idle_token_lifetime:f.z.number().int().min(0).optional().openapi({description:`Auth0-compatible: refresh-token idle (sliding) lifetime in seconds.`}),infinite_idle_token_lifetime:f.z.boolean().optional().openapi({description:`Auth0-compatible: when true, refresh tokens have no idle expiry.`})}).default({}).optional().openapi({description:`Refresh token configuration`}),default_organization:f.z.record(f.z.string(),f.z.any()).default({}).optional().openapi({description:`Defines the default Organization ID and flows`}),organization_usage:f.z.enum([`deny`,`allow`,`require`]).default(`deny`).optional().openapi({description:`Defines how to proceed during an authentication transaction with regards an organization. Can be deny (default), allow or require.`}),organization_require_behavior:f.z.enum([`no_prompt`,`pre_login_prompt`,`post_login_prompt`]).default(`no_prompt`).optional().openapi({description:`Defines how to proceed during an authentication transaction when client.organization_usage: 'require'. Can be no_prompt (default), pre_login_prompt or post_login_prompt. post_login_prompt requires oidc_conformant: true.`}),client_authentication_methods:f.z.record(f.z.string(),f.z.any()).default({}).optional().openapi({description:`Defines client authentication methods.`}),require_pushed_authorization_requests:f.z.boolean().default(!1).openapi({description:`Makes the use of Pushed Authorization Requests mandatory for this client`}),require_proof_of_possession:f.z.boolean().default(!1).openapi({description:`Makes the use of Proof-of-Possession mandatory for this client`}),signed_request_object:f.z.record(f.z.string(),f.z.any()).default({}).optional().openapi({description:`JWT-secured Authorization Requests (JAR) settings.`}),compliance_level:f.z.enum([`none`,`fapi1_adv_pkj_par`,`fapi1_adv_mtls_par`,`fapi2_sp_pkj_mtls`,`fapi2_sp_mtls_mtls`]).optional().openapi({description:`Defines the compliance level for this client, which may restrict it's capabilities`}),par_request_expiry:f.z.number().optional().openapi({description:`Specifies how long, in seconds, a Pushed Authorization Request URI remains valid`}),token_quota:f.z.record(f.z.string(),f.z.any()).default({}).optional(),owner_user_id:f.z.string().optional().openapi({description:`User ID of the consenting user when this client was created via IAT-gated Dynamic Client Registration. NULL for clients created via the Management API or open DCR.`}),registration_type:f.z.enum([`manual`,`open_dcr`,`iat_dcr`]).optional().openapi({description:"Provenance of this client. `manual` = Management API; `open_dcr` = RFC 7591 without IAT; `iat_dcr` = RFC 7591 with an Initial Access Token."}),registration_metadata:f.z.record(f.z.string(),f.z.any()).default({}).optional().openapi({description:"Arbitrary metadata captured at Dynamic Client Registration time that isn't a first-class client field (e.g. integration_type, domain). Also stores `iat_constraints` for clients created via IAT so RFC 7592 PUT can enforce field immutability."}),user_linking_mode:f.z.enum([`builtin`,`off`]).optional().openapi({description:"Per-client override for the built-in email-based user-linking path. `builtin` runs the legacy in-process linking at user creation/email update. `off` disables the legacy path; linking only happens if the tenant has enabled the `account-linking` template hook. When unset, the service-level `userLinkingMode` default applies."})});f.z.object({created_at:f.z.string(),updated_at:f.z.string()}).extend(BY.shape).extend({client_id:f.z.string()});var VY=f.z.object({client_id:f.z.string().min(1).openapi({description:`ID of the client.`}),audience:f.z.string().min(1).openapi({description:`The audience (API identifier) of this client grant.`}),scope:f.z.array(f.z.string()).optional().openapi({description:`Scopes allowed for this client grant.`}),organization_usage:f.z.enum([`deny`,`allow`,`require`]).optional().openapi({description:`Defines whether organizations can be used with client credentials exchanges for this grant.`}),allow_any_organization:f.z.boolean().optional().openapi({description:`If enabled, any organization can be used with this grant. If disabled (default), the grant must be explicitly assigned to the desired organizations.`}),is_system:f.z.boolean().optional().openapi({description:`If enabled, this grant is a special grant created by Auth0. It cannot be modified or deleted directly.`}),subject_type:f.z.enum([`client`,`user`]).optional().openapi({description:`The type of application access the client grant allows. Use of this field is subject to the applicable Free Trial terms in Okta's Master Subscription Agreement.`}),authorization_details_types:f.z.array(f.z.string()).optional().openapi({description:`Types of authorization_details allowed for this client grant. Use of this field is subject to the applicable Free Trial terms in Okta's Master Subscription Agreement.`})}),HY=f.z.object({id:f.z.string().openapi({description:`ID of the client grant.`})}).extend(VY.shape).extend({created_at:f.z.string().optional(),updated_at:f.z.string().optional()});f.z.array(HY);var UY=f.z.enum([`iat`,`rat`]),WY=f.z.object({id:f.z.string(),token_hash:f.z.string(),type:UY,client_id:f.z.string().optional(),sub:f.z.string().optional(),constraints:f.z.record(f.z.string(),f.z.unknown()).optional(),single_use:f.z.boolean().default(!1),expires_at:f.z.string().optional()});f.z.object({created_at:f.z.string(),used_at:f.z.string().optional(),revoked_at:f.z.string().optional()}).extend(WY.shape);var GY=f.z.object({x:f.z.number(),y:f.z.number()}),KY=function(e){return e.RICH_TEXT=`RICH_TEXT`,e.NEXT_BUTTON=`NEXT_BUTTON`,e.BACK_BUTTON=`BACK_BUTTON`,e.SUBMIT_BUTTON=`SUBMIT_BUTTON`,e.DIVIDER=`DIVIDER`,e.TEXT=`TEXT`,e.EMAIL=`EMAIL`,e.PASSWORD=`PASSWORD`,e.NUMBER=`NUMBER`,e.PHONE=`PHONE`,e.DATE=`DATE`,e.CHECKBOX=`CHECKBOX`,e.RADIO=`RADIO`,e.SELECT=`SELECT`,e.HIDDEN=`HIDDEN`,e.LEGAL=`LEGAL`,e}({}),qY=function(e){return e.BLOCK=`BLOCK`,e.FIELD=`FIELD`,e}({}),JY=f.z.object({id:f.z.string(),category:f.z.nativeEnum(qY),type:f.z.nativeEnum(KY)}),YY=JY.extend({category:f.z.literal(`BLOCK`),type:f.z.literal(`RICH_TEXT`),config:f.z.object({content:f.z.string()}).passthrough()}),XY=JY.extend({category:f.z.literal(`BLOCK`),type:f.z.union([f.z.literal(`NEXT_BUTTON`),f.z.literal(`BACK_BUTTON`),f.z.literal(`SUBMIT_BUTTON`)]),config:f.z.object({text:f.z.string()}).passthrough()}),ZY=JY.extend({category:f.z.literal(`FIELD`),type:f.z.literal(`LEGAL`),required:f.z.boolean().optional(),sensitive:f.z.boolean().optional(),config:f.z.object({text:f.z.string()}).passthrough()}),QY=JY.extend({category:f.z.literal(`FIELD`),type:f.z.union([f.z.literal(`TEXT`),f.z.literal(`EMAIL`),f.z.literal(`PASSWORD`),f.z.literal(`NUMBER`),f.z.literal(`PHONE`),f.z.literal(`DATE`),f.z.literal(`CHECKBOX`),f.z.literal(`RADIO`),f.z.literal(`SELECT`),f.z.literal(`HIDDEN`)]),required:f.z.boolean().optional(),sensitive:f.z.boolean().optional(),config:f.z.object({label:f.z.string().optional(),placeholder:f.z.string().optional()}).passthrough()}),$Y=f.z.object({id:f.z.string(),category:f.z.string(),type:f.z.string()}).passthrough(),eX=f.z.union([YY,XY,ZY,QY,$Y]),tX=f.z.object({id:f.z.string(),type:f.z.literal(`STEP`),coordinates:GY,alias:f.z.string().optional(),config:f.z.object({components:f.z.array(eX),next_node:f.z.string()}).passthrough()}),nX=f.z.object({id:f.z.string(),type:f.z.literal(`FLOW`),coordinates:GY,alias:f.z.string().optional(),config:f.z.object({flow_id:f.z.string(),next_node:f.z.string()})}),rX=f.z.object({id:f.z.string(),type:f.z.literal(`ACTION`),coordinates:GY,alias:f.z.string().optional(),config:f.z.object({action_type:f.z.enum([`REDIRECT`]).openapi({description:`The type of action to perform`}),target:f.z.enum([`change-email`,`account`,`custom`]).openapi({description:`The predefined target to redirect to`}),custom_url:f.z.string().optional().openapi({description:`Custom URL when target is 'custom'`}),next_node:f.z.string().openapi({description:`The next node to navigate to after action (for non-redirect actions)`})}).passthrough()}),iX=f.z.object({id:f.z.string(),type:f.z.string(),coordinates:GY}).passthrough(),aX=f.z.union([tX,nX,rX,iX]),oX=f.z.object({next_node:f.z.string(),coordinates:GY}).passthrough(),sX=f.z.object({resume_flow:f.z.boolean().optional(),coordinates:GY}).passthrough();f.z.object({id:f.z.string(),name:f.z.string(),languages:f.z.object({primary:f.z.string()}).passthrough(),nodes:f.z.array(aX),start:oX,ending:sX,created_at:f.z.string(),updated_at:f.z.string(),links:f.z.object({sdkSrc:f.z.string().optional(),sdk_src:f.z.string().optional()}).passthrough()}).passthrough().omit({id:!0,created_at:!0,updated_at:!0});var cX=function(e){return e.TOKEN=`token`,e.ID_TOKEN=`id_token`,e.TOKEN_ID_TOKEN=`id_token token`,e.CODE=`code`,e.CODE_ID_TOKEN=`code id_token`,e.CODE_TOKEN=`code token`,e.CODE_ID_TOKEN_TOKEN=`code id_token token`,e}({}),lX=function(e){return e.QUERY=`query`,e.FRAGMENT=`fragment`,e.FORM_POST=`form_post`,e.WEB_MESSAGE=`web_message`,e.SAML_POST=`saml_post`,e}({}),uX=function(e){return e.S256=`S256`,e.Plain=`plain`,e}({}),dX=f.z.union([f.z.null(),f.z.object({essential:f.z.boolean().optional(),value:f.z.unknown().optional(),values:f.z.array(f.z.unknown()).optional()})]).nullable(),fX=f.z.object({userinfo:f.z.record(f.z.string(),dX).optional(),id_token:f.z.record(f.z.string(),dX).optional()}),pX=f.z.object({client_id:f.z.string(),act_as:f.z.string().optional(),response_type:f.z.nativeEnum(cX).optional(),response_mode:f.z.nativeEnum(lX).optional(),redirect_uri:f.z.string().optional(),audience:f.z.string().optional(),organization:f.z.string().optional(),state:f.z.string().optional(),nonce:f.z.string().optional(),scope:f.z.string().optional(),prompt:f.z.string().optional(),code_challenge_method:f.z.nativeEnum(uX).optional(),code_challenge:f.z.string().optional(),username:f.z.string().optional(),ui_locales:f.z.string().optional(),max_age:f.z.number().optional(),acr_values:f.z.string().optional(),claims:fX.optional(),vendor_id:f.z.string().optional()});f.z.object({colors:f.z.object({primary:f.z.string(),page_background:f.z.union([f.z.string(),f.z.object({type:f.z.string().optional(),start:f.z.string().optional(),end:f.z.string().optional(),angle_deg:f.z.number().optional()})]).optional()}).optional(),logo_url:f.z.string().optional(),favicon_url:f.z.string().optional(),powered_by_logo_url:f.z.string().optional(),font:f.z.object({url:f.z.string()}).optional(),dark_mode:f.z.enum([`dark`,`light`,`auto`]).optional()});var mX=f.z.enum([`password_reset`,`email_verification`,`otp`,`mfa_otp`,`authorization_code`,`oauth2_state`,`ticket`]);f.z.object({code_id:f.z.string().openapi({description:`The code that will be used in for instance an email verification flow`}),login_id:f.z.string().openapi({description:`The id of the login session that the code is connected to`}),connection_id:f.z.string().optional().openapi({description:`The connection that the code is connected to`}),code_type:mX,code_verifier:f.z.string().optional().openapi({description:`The code verifier used in PKCE in outbound flows`}),code_challenge:f.z.string().optional().openapi({description:`The code challenge used in PKCE in outbound flows`}),code_challenge_method:f.z.enum([`plain`,`S256`]).optional().openapi({description:`The code challenge method used in PKCE in outbound flows`}),redirect_uri:f.z.string().optional().openapi({description:`The redirect URI associated with the code`}),otp:f.z.string().optional().openapi({description:`The one-time password value for OTP-based flows`}),nonce:f.z.string().optional().openapi({description:`The nonce value used for security in OIDC flows`}),state:f.z.string().optional().openapi({description:`The state parameter used for CSRF protection in OAuth flows`}),expires_at:f.z.string(),used_at:f.z.string().optional(),user_id:f.z.string().optional()}).extend({created_at:f.z.string()});var hX=f.z.object({kid:f.z.string().optional(),team_id:f.z.string().optional(),realms:f.z.string().optional(),authentication_method:f.z.string().optional(),client_id:f.z.string().optional(),client_secret:f.z.string().optional(),app_secret:f.z.string().optional(),scope:f.z.string().optional(),authorization_endpoint:f.z.string().optional(),token_endpoint:f.z.string().optional(),userinfo_endpoint:f.z.string().optional(),jwks_uri:f.z.string().optional(),discovery_url:f.z.string().optional(),issuer:f.z.string().optional(),token_endpoint_auth_method:f.z.enum([`client_secret_basic`,`client_secret_post`]).optional(),provider:f.z.string().optional(),from:f.z.string().optional(),twilio_sid:f.z.string().optional(),twilio_token:f.z.string().optional(),icon_url:f.z.string().optional(),domain_aliases:f.z.array(f.z.string()).optional(),callback_url:f.z.string().url().optional(),passwordPolicy:f.z.enum([`none`,`low`,`fair`,`good`,`excellent`]).optional(),password_complexity_options:f.z.object({min_length:f.z.number().optional()}).optional(),password_history:f.z.object({enable:f.z.boolean().optional(),size:f.z.number().optional()}).optional(),password_no_personal_info:f.z.object({enable:f.z.boolean().optional()}).optional(),password_dictionary:f.z.object({enable:f.z.boolean().optional(),dictionary:f.z.array(f.z.string()).optional()}).optional(),disable_signup:f.z.boolean().optional(),brute_force_protection:f.z.boolean().optional(),import_mode:f.z.boolean().optional(),configuration:f.z.object({token_endpoint:f.z.string().optional(),userinfo_endpoint:f.z.string().optional(),client_id:f.z.string().optional(),client_secret:f.z.string().optional(),realm:f.z.string().optional()}).optional(),attributes:f.z.object({email:f.z.object({identifier:f.z.object({active:f.z.boolean().optional()}).optional(),signup:f.z.object({status:f.z.enum([`required`,`optional`,`disabled`]).optional(),verification:f.z.object({active:f.z.boolean().optional()}).optional()}).optional(),validation:f.z.object({allowed:f.z.boolean().optional()}).optional(),unique:f.z.boolean().optional(),profile_required:f.z.boolean().optional(),verification_method:f.z.enum([`link`,`code`]).optional()}).optional(),username:f.z.object({identifier:f.z.object({active:f.z.boolean().optional()}).optional(),signup:f.z.object({status:f.z.enum([`required`,`optional`,`disabled`]).optional()}).optional(),validation:f.z.object({max_length:f.z.number().optional(),min_length:f.z.number().optional(),allowed_types:f.z.object({email:f.z.boolean().optional(),phone_number:f.z.boolean().optional()}).optional()}).optional(),profile_required:f.z.boolean().optional()}).optional(),phone_number:f.z.object({identifier:f.z.object({active:f.z.boolean().optional()}).optional(),signup:f.z.object({status:f.z.enum([`required`,`optional`,`disabled`]).optional()}).optional()}).optional()}).optional(),authentication_methods:f.z.object({password:f.z.object({enabled:f.z.boolean().optional()}).optional(),passkey:f.z.object({enabled:f.z.boolean().optional()}).optional()}).optional(),passkey_options:f.z.object({challenge_ui:f.z.enum([`both`,`autofill`,`button`]).optional(),local_enrollment_enabled:f.z.boolean().optional(),progressive_enrollment_enabled:f.z.boolean().optional()}).optional(),requires_username:f.z.boolean().optional(),validation:f.z.object({username:f.z.object({min:f.z.number().optional(),max:f.z.number().optional()}).optional()}).optional(),set_user_root_attributes:f.z.enum([`on_each_login`,`on_first_login`,`never_on_login`]).optional()});function gX(e){if(e!==null){if(Array.isArray(e))return e.filter(e=>e!==null).map(gX);if(e&&typeof e==`object`){let t={};for(let[n,r]of Object.entries(e))r!==null&&(t[n]=gX(r));return t}return e}}var _X=f.z.object({id:f.z.string().optional(),name:f.z.string(),display_name:f.z.string().optional(),strategy:f.z.string(),options:f.z.preprocess(e=>e===null?{}:gX(e),hX).default({}),enabled_clients:f.z.array(f.z.string()).default([]).optional(),response_type:f.z.custom().optional(),response_mode:f.z.custom().optional(),is_domain_connection:f.z.boolean().optional(),show_as_button:f.z.boolean().optional(),metadata:f.z.record(f.z.string(),f.z.any()).optional(),is_system:f.z.boolean().optional()});f.z.object({id:f.z.string(),created_at:f.z.string().transform(e=>e===null?``:e),updated_at:f.z.string().transform(e=>e===null?``:e)}).extend(_X.shape);var vX=f.z.object({domain:f.z.string(),custom_domain_id:f.z.string().optional(),type:f.z.enum([`auth0_managed_certs`,`self_managed_certs`]),verification_method:f.z.enum([`txt`]).optional(),tls_policy:f.z.enum([`recommended`]).optional(),custom_client_ip_header:f.z.enum([`true-client-ip`,`cf-connecting-ip`,`x-forwarded-for`,`x-azure-clientip`,`null`]).optional(),domain_metadata:f.z.record(f.z.string(),f.z.string().max(255)).optional()}),yX=f.z.discriminatedUnion(`name`,[f.z.object({name:f.z.literal(`txt`),record:f.z.string(),domain:f.z.string()}),f.z.object({name:f.z.literal(`http`),http_body:f.z.string(),http_url:f.z.string()})]),bX=vX.extend({custom_domain_id:f.z.string(),primary:f.z.boolean(),status:f.z.enum([`disabled`,`pending`,`pending_verification`,`ready`]),origin_domain_name:f.z.string().optional(),verification:f.z.object({methods:f.z.array(yX)}).optional(),tls_policy:f.z.string().optional()});vX.pick({tls_policy:!0,custom_client_ip_header:!0,domain_metadata:!0}).strict(),bX.extend({tenant_id:f.z.string()}),f.z.object({certificate:f.z.string().regex(/^-----BEGIN CERTIFICATE-----[\s\S]+-----END CERTIFICATE-----\s*$/,`must be PEM-encoded; include the full certificate chain in leaf-first order`),private_key:f.z.string().regex(/-----BEGIN (RSA |EC |ENCRYPTED )?PRIVATE KEY-----[\s\S]+-----END \1PRIVATE KEY-----\s*$/,`must be a PEM-encoded private key`)});var xX=f.z.object({id:f.z.string(),order:f.z.number().optional(),visible:f.z.boolean().optional().default(!0)}),SX=xX.extend({category:f.z.literal(`BLOCK`).optional()}),CX=SX.extend({type:f.z.literal(`DIVIDER`),config:f.z.object({text:f.z.string().optional()}).optional()}),wX=SX.extend({type:f.z.literal(`HTML`),config:f.z.object({content:f.z.string().optional()}).optional()}),TX=SX.extend({type:f.z.literal(`IMAGE`),config:f.z.object({src:f.z.string().optional(),alt:f.z.string().optional(),width:f.z.number().optional(),height:f.z.number().optional()}).optional()}),EX=SX.extend({type:f.z.literal(`JUMP_BUTTON`),config:f.z.object({text:f.z.string().optional(),target_step:f.z.string().optional()})}),DX=SX.extend({type:f.z.literal(`RESEND_BUTTON`),config:f.z.object({text:f.z.string().optional(),resend_action:f.z.string().optional()})}),OX=SX.extend({type:f.z.literal(`NEXT_BUTTON`),config:f.z.object({text:f.z.string().optional()})}),kX=SX.extend({type:f.z.literal(`PREVIOUS_BUTTON`),config:f.z.object({text:f.z.string().optional()})}),AX=SX.extend({type:f.z.literal(`RICH_TEXT`),config:f.z.object({content:f.z.string().optional()}).optional()}),jX=xX.extend({category:f.z.literal(`WIDGET`).optional(),label:f.z.string().min(1).optional(),hint:f.z.string().min(1).max(500).optional(),required:f.z.boolean().optional(),sensitive:f.z.boolean().optional()}),MX=jX.extend({type:f.z.literal(`AUTH0_VERIFIABLE_CREDENTIALS`),config:f.z.object({credential_type:f.z.string().optional()})}),NX=jX.extend({type:f.z.literal(`GMAPS_ADDRESS`),config:f.z.object({api_key:f.z.string().optional()})}),PX=jX.extend({type:f.z.literal(`RECAPTCHA`),config:f.z.object({site_key:f.z.string().optional()})}),FX=xX.extend({category:f.z.literal(`FIELD`).optional(),label:f.z.string().min(1).optional(),hint:f.z.string().min(1).max(500).optional(),messages:f.z.array(f.z.object({id:f.z.number().optional(),text:f.z.string(),type:f.z.enum([`info`,`error`,`success`,`warning`])})).optional(),required:f.z.boolean().optional(),sensitive:f.z.boolean().optional()}),IX=FX.extend({type:f.z.literal(`BOOLEAN`),config:f.z.object({default_value:f.z.boolean().optional()}).optional()}),LX=FX.extend({type:f.z.literal(`CARDS`),config:f.z.object({options:f.z.array(f.z.object({value:f.z.string(),label:f.z.string(),description:f.z.string().optional(),image:f.z.string().optional()})).optional(),multi_select:f.z.boolean().optional()}).optional()}),RX=FX.extend({type:f.z.literal(`CHOICE`),config:f.z.object({options:f.z.array(f.z.object({value:f.z.string(),label:f.z.string()})).optional(),display:f.z.enum([`radio`,`checkbox`]).optional(),multiple:f.z.boolean().optional(),default_value:f.z.union([f.z.string(),f.z.array(f.z.string())]).optional()}).optional()}),zX=FX.extend({type:f.z.literal(`CUSTOM`),config:f.z.object({component:f.z.string().optional(),props:f.z.record(f.z.string(),f.z.any()).optional(),schema:f.z.record(f.z.string(),f.z.any()).optional(),code:f.z.string().optional()})}),BX=FX.extend({type:f.z.literal(`DATE`),config:f.z.object({format:f.z.string().optional(),min:f.z.string().optional(),max:f.z.string().optional(),default_value:f.z.string().optional()}).optional()}),VX=FX.extend({type:f.z.literal(`DROPDOWN`),config:f.z.object({options:f.z.array(f.z.object({value:f.z.string(),label:f.z.string()})).optional(),placeholder:f.z.string().optional(),searchable:f.z.boolean().optional(),multiple:f.z.boolean().optional(),default_value:f.z.union([f.z.string(),f.z.array(f.z.string())]).optional()}).optional()}),HX=FX.extend({type:f.z.literal(`EMAIL`),config:f.z.object({placeholder:f.z.string().optional(),default_value:f.z.string().optional()}).optional()}),UX=FX.extend({type:f.z.literal(`FILE`),config:f.z.object({accept:f.z.string().optional(),max_size:f.z.number().optional(),multiple:f.z.boolean().optional()}).optional()}),WX=FX.extend({type:f.z.literal(`LEGAL`),config:f.z.object({text:f.z.string(),html:f.z.boolean().optional()}).optional()}),GX=FX.extend({type:f.z.literal(`NUMBER`),config:f.z.object({placeholder:f.z.string().optional(),min:f.z.number().optional(),max:f.z.number().optional(),step:f.z.number().optional(),default_value:f.z.string().optional()}).optional()}),KX=FX.extend({type:f.z.literal(`PASSWORD`),config:f.z.object({placeholder:f.z.string().optional(),min_length:f.z.number().optional(),show_toggle:f.z.boolean().optional(),forgot_password_link:f.z.string().optional(),default_value:f.z.string().optional()}).optional()}),qX=FX.extend({type:f.z.literal(`PAYMENT`),config:f.z.object({provider:f.z.string().optional(),currency:f.z.string().optional()}).optional()}),JX=FX.extend({type:f.z.literal(`SOCIAL`),config:f.z.object({providers:f.z.array(f.z.string()).optional(),provider_details:f.z.array(f.z.object({name:f.z.string(),strategy:f.z.string().optional(),display_name:f.z.string().optional(),icon_url:f.z.string().optional(),href:f.z.string().optional()})).optional()}).optional()}),YX=FX.extend({type:f.z.literal(`TEL`),config:f.z.object({placeholder:f.z.string().optional(),default_country:f.z.string().optional(),default_value:f.z.string().optional(),allow_email:f.z.boolean().optional()}).optional()}),XX=FX.extend({type:f.z.literal(`TEXT`),config:f.z.object({placeholder:f.z.string().optional(),multiline:f.z.boolean().optional(),max_length:f.z.number().optional(),default_value:f.z.string().optional()}).optional()}),ZX=FX.extend({type:f.z.literal(`COUNTRY`),config:f.z.object({placeholder:f.z.string().optional(),default_value:f.z.string().optional()}).optional()}),QX=FX.extend({type:f.z.literal(`URL`),config:f.z.object({placeholder:f.z.string().optional(),default_value:f.z.string().optional()}).optional()}),$X=f.z.discriminatedUnion(`type`,[CX,wX,TX,EX,DX,OX,kX,AX]),eZ=f.z.discriminatedUnion(`type`,[MX,NX,PX]),tZ=f.z.discriminatedUnion(`type`,[IX,LX,RX,ZX,zX,BX,VX,HX,UX,WX,GX,KX,qX,JX,YX,XX,QX]),nZ=f.z.union([$X,eZ,tZ]);new Set([`BOOLEAN`,`CARDS`,`CHOICE`,`COUNTRY`,`DATE`,`DROPDOWN`,`EMAIL`,`LEGAL`,`NUMBER`,`PASSWORD`,`TEL`,`TEXT`,`URL`]),f.z.object({id:f.z.string(),type:f.z.literal(`submit`),label:f.z.string(),className:f.z.string().optional(),disabled:f.z.boolean().optional().default(!1),order:f.z.number().optional(),visible:f.z.boolean().optional().default(!0),customizations:f.z.record(f.z.string(),f.z.any()).optional()});var rZ=f.z.object({x:f.z.number(),y:f.z.number()}),iZ=f.z.object({id:f.z.string(),type:f.z.literal(`FLOW`),coordinates:rZ,alias:f.z.string().min(1).max(150).optional(),config:f.z.object({flow_id:f.z.string().max(30),next_node:f.z.string().optional()})}),aZ=f.z.object({id:f.z.string(),type:f.z.literal(`ROUTER`),coordinates:rZ,alias:f.z.string().min(1).max(150),config:f.z.object({rules:f.z.array(f.z.object({id:f.z.string(),alias:f.z.string().min(1).max(150).optional(),condition:f.z.any(),next_node:f.z.string()})),fallback:f.z.string()})}),oZ=f.z.object({id:f.z.string(),type:f.z.literal(`STEP`),coordinates:rZ,alias:f.z.string().min(1).max(150).optional(),config:f.z.object({components:f.z.array(nZ),next_node:f.z.string().optional()})}),sZ=f.z.discriminatedUnion(`type`,[iZ,aZ,oZ]),cZ=f.z.object({name:f.z.string().openapi({description:`The name of the form`}),messages:f.z.object({errors:f.z.record(f.z.string(),f.z.any()).optional(),custom:f.z.record(f.z.string(),f.z.any()).optional()}).optional(),languages:f.z.object({primary:f.z.string().optional(),default:f.z.string().optional()}).optional(),translations:f.z.record(f.z.string(),f.z.any()).optional(),nodes:f.z.array(sZ).optional(),start:f.z.object({hidden_fields:f.z.array(f.z.object({key:f.z.string(),value:f.z.string()})).optional(),next_node:f.z.string().optional(),coordinates:rZ.optional()}).optional(),ending:f.z.object({redirection:f.z.object({delay:f.z.number().optional(),target:f.z.string().optional()}).optional(),after_submit:f.z.object({flow_id:f.z.string().optional()}).optional(),coordinates:rZ.optional(),resume_flow:f.z.boolean().optional()}).optional(),style:f.z.object({css:f.z.string().optional()}).optional(),links:f.z.object({sdkSrc:f.z.string().optional(),sdk_src:f.z.string().optional()}).optional()}).openapi({description:`Schema for flow-based forms (matches Auth0 Forms structure)`});uY.extend(cZ.shape).extend({id:f.z.string()});var lZ=f.z.object({id:f.z.number().optional(),text:f.z.string(),type:f.z.enum([`info`,`error`,`success`,`warning`])}),uZ=f.z.object({id:f.z.string().optional(),text:f.z.string(),href:f.z.string(),linkText:f.z.string().optional()});f.z.object({name:f.z.string().optional(),action:f.z.string(),method:f.z.enum([`POST`,`GET`]),title:f.z.string().optional(),description:f.z.string().optional(),components:f.z.array(nZ),messages:f.z.array(lZ).optional(),links:f.z.array(uZ).optional(),footer:f.z.string().optional()});var dZ=f.z.enum([`pre-user-registration`,`post-user-registration`,`post-user-login`,`post-user-update`,`validate-registration-username`,`pre-user-deletion`,`post-user-deletion`]),fZ=f.z.enum([`pre-user-registration`,`post-user-registration`,`post-user-login`,`validate-registration-username`,`pre-user-deletion`,`post-user-deletion`]),pZ=f.z.enum([`post-user-login`,`post-user-registration`,`post-user-update`,`credentials-exchange`]),mZ=f.z.enum([`post-user-login`,`credentials-exchange`,`pre-user-registration`,`post-user-registration`]),hZ=f.z.enum([`ensure-username`,`set-preferred-username`,`account-linking`]),gZ={enabled:f.z.boolean().default(!1),synchronous:f.z.boolean().default(!1),priority:f.z.number().optional(),hook_id:f.z.string().optional(),metadata:f.z.record(f.z.string(),f.z.unknown()).optional()},_Z=f.z.object({...gZ,trigger_id:dZ,url:f.z.string()}),vZ=f.z.object({...gZ,trigger_id:fZ,form_id:f.z.string()}),yZ=f.z.object({...gZ,trigger_id:pZ,template_id:hZ}),bZ=f.z.object({...gZ,trigger_id:mZ,code_id:f.z.string()});f.z.union([_Z,vZ,yZ,bZ]);var xZ=f.z.object({...gZ,trigger_id:dZ}).extend(uY.shape).extend({hook_id:f.z.string(),url:f.z.string()}),SZ=f.z.object({...gZ,trigger_id:fZ}).extend(uY.shape).extend({hook_id:f.z.string(),form_id:f.z.string()}),CZ=f.z.object({...gZ,trigger_id:pZ}).extend(uY.shape).extend({hook_id:f.z.string(),template_id:hZ}),wZ=f.z.object({...gZ,trigger_id:mZ}).extend(uY.shape).extend({hook_id:f.z.string(),code_id:f.z.string()});f.z.union([xZ,SZ,CZ,wZ]),f.z.object({code:f.z.string().max(1e5),secrets:f.z.record(f.z.string(),f.z.string()).optional()}).extend({id:f.z.string(),tenant_id:f.z.string()}).extend(uY.shape);var TZ=f.z.object({name:f.z.string().optional()}),EZ=f.z.object({email:f.z.string().optional()}),DZ=f.z.object({id:f.z.string().optional(),organization_id:f.z.string().max(50),inviter:TZ,invitee:EZ,invitation_url:f.z.string().url(),client_id:f.z.string(),connection_id:f.z.string().optional(),app_metadata:f.z.record(f.z.string(),f.z.any()).default({}).optional(),user_metadata:f.z.record(f.z.string(),f.z.any()).default({}).optional(),ttl_sec:f.z.number().int().max(2592e3).default(604800).optional(),roles:f.z.array(f.z.string()).default([]).optional(),send_invitation_email:f.z.boolean().default(!0).optional()});f.z.object({id:f.z.string(),organization_id:f.z.string().max(50),created_at:f.z.string().datetime(),expires_at:f.z.string().datetime(),ticket_id:f.z.string().optional()}).extend(DZ.omit({id:!0}).shape);var OZ=f.z.object({alg:f.z.enum([`RS256`,`RS384`,`RS512`,`ES256`,`ES384`,`ES512`,`HS256`,`HS384`,`HS512`]),kid:f.z.string().optional(),kty:f.z.enum([`RSA`,`EC`,`oct`]),use:f.z.enum([`sig`,`enc`]).optional(),n:f.z.string().optional(),e:f.z.string().optional(),crv:f.z.string().optional(),x:f.z.string().optional(),y:f.z.string().optional(),x5t:f.z.string().optional(),x5c:f.z.array(f.z.string()).optional()}).superRefine((e,t)=>{if(e.kty===`RSA`)for(let n of[`n`,`e`])e[n]||t.addIssue({code:f.z.ZodIssueCode.custom,path:[n],message:`RSA JWK is missing required member '${n}'`});else if(e.kty===`EC`)for(let n of[`crv`,`x`,`y`])e[n]||t.addIssue({code:f.z.ZodIssueCode.custom,path:[n],message:`EC JWK is missing required member '${n}'`})});f.z.object({keys:f.z.array(OZ)}),f.z.object({issuer:f.z.string(),authorization_endpoint:f.z.string(),token_endpoint:f.z.string(),userinfo_endpoint:f.z.string(),jwks_uri:f.z.string(),registration_endpoint:f.z.string().optional(),revocation_endpoint:f.z.string(),end_session_endpoint:f.z.string().optional(),scopes_supported:f.z.array(f.z.string()),response_types_supported:f.z.array(f.z.string()),grant_types_supported:f.z.array(f.z.string()).optional(),code_challenge_methods_supported:f.z.array(f.z.string()),response_modes_supported:f.z.array(f.z.string()),subject_types_supported:f.z.array(f.z.string()),id_token_signing_alg_values_supported:f.z.array(f.z.string()),token_endpoint_auth_methods_supported:f.z.array(f.z.string()),claims_supported:f.z.array(f.z.string()),request_uri_parameter_supported:f.z.boolean(),request_parameter_supported:f.z.boolean(),claims_parameter_supported:f.z.boolean().optional(),request_object_signing_alg_values_supported:f.z.array(f.z.string()).optional(),token_endpoint_auth_signing_alg_values_supported:f.z.array(f.z.string()),client_id_metadata_document_supported:f.z.boolean().optional()});var kZ=function(e){return e.PENDING=`pending`,e.AUTHENTICATED=`authenticated`,e.AWAITING_EMAIL_VERIFICATION=`awaiting_email_verification`,e.AWAITING_MFA=`awaiting_mfa`,e.AWAITING_HOOK=`awaiting_hook`,e.AWAITING_CONTINUATION=`awaiting_continuation`,e.AWAITING_CONSENT=`awaiting_consent`,e.COMPLETED=`completed`,e.FAILED=`failed`,e.EXPIRED=`expired`,e}({}),AZ=f.z.nativeEnum(kZ),jZ=f.z.object({strategy:f.z.string(),strategy_type:f.z.string()});f.z.object({csrf_token:f.z.string(),auth0Client:f.z.string().optional(),authParams:pX,expires_at:f.z.string(),deleted_at:f.z.string().optional(),ip:f.z.string().optional(),useragent:f.z.string().optional(),session_id:f.z.string().optional(),authorization_url:f.z.string().optional(),state:AZ.optional().default(`pending`),state_data:f.z.string().optional(),failure_reason:f.z.string().optional(),user_id:f.z.string().optional(),auth_connection:f.z.string().optional(),auth_strategy:jZ.optional(),authenticated_at:f.z.string().optional()}).openapi({description:`This represents a login sesion`}).extend({id:f.z.string().openapi({description:`This is is used as the state in the universal login`}),created_at:f.z.string(),updated_at:f.z.string()});var $={ACLS_SUMMARY:`acls_summary`,ACTIONS_EXECUTION_FAILED:`actions_execution_failed`,API_LIMIT:`api_limit`,API_LIMIT_WARNING:`api_limit_warning`,APPI:`appi`,CIBA_EXCHANGE_FAILED:`ciba_exchange_failed`,CIBA_EXCHANGE_SUCCEEDED:`ciba_exchange_succeeded`,CIBA_START_FAILED:`ciba_start_failed`,CIBA_START_SUCCEEDED:`ciba_start_succeeded`,CODE_LINK_SENT:`cls`,CODE_SENT:`cs`,DEPRECATION_NOTICE:`depnote`,FAILED_LOGIN:`f`,FAILED_BY_CONNECTOR:`fc`,FAILED_CHANGE_EMAIL:`fce`,FAILED_BY_CORS:`fco`,FAILED_CROSS_ORIGIN_AUTHENTICATION:`fcoa`,FAILED_CHANGE_PASSWORD:`fcp`,FAILED_POST_CHANGE_PASSWORD_HOOK:`fcph`,FAILED_CHANGE_PHONE_NUMBER:`fcpn`,FAILED_CHANGE_PASSWORD_REQUEST:`fcpr`,FAILED_CONNECTOR_PROVISIONING:`fcpro`,FAILED_CHANGE_USERNAME:`fcu`,FAILED_DELEGATION:`fd`,FAILED_DEVICE_ACTIVATION:`fdeac`,FAILED_DEVICE_AUTHORIZATION_REQUEST:`fdeaz`,USER_CANCELED_DEVICE_CONFIRMATION:`fdecc`,FAILED_USER_DELETION:`fdu`,FAILED_EXCHANGE_AUTHORIZATION_CODE_FOR_ACCESS_TOKEN:`feacft`,FAILED_EXCHANGE_ACCESS_TOKEN_FOR_CLIENT_CREDENTIALS:`feccft`,FAILED_EXCHANGE_CUSTOM_TOKEN:`fecte`,FAILED_EXCHANGE_DEVICE_CODE_FOR_ACCESS_TOKEN:`fede`,FAILED_FEDERATED_LOGOUT:`federated_logout_failed`,FAILED_EXCHANGE_NATIVE_SOCIAL_LOGIN:`fens`,FAILED_EXCHANGE_PASSWORD_OOB_FOR_ACCESS_TOKEN:`feoobft`,FAILED_EXCHANGE_PASSWORD_OTP_FOR_ACCESS_TOKEN:`feotpft`,FAILED_EXCHANGE_PASSWORD_FOR_ACCESS_TOKEN:`fepft`,FAILED_EXCHANGE_PASSWORDLESS_OTP_FOR_ACCESS_TOKEN:`fepotpft`,FAILED_EXCHANGE_PASSWORD_MFA_RECOVERY_FOR_ACCESS_TOKEN:`fercft`,FAILED_EXCHANGE_ROTATING_REFRESH_TOKEN:`ferrt`,FAILED_EXCHANGE_REFRESH_TOKEN_FOR_ACCESS_TOKEN:`fertft`,FAILED_EXCHANGE_SUBJECT_TOKEN_FOR_ACCESS_TOKEN:`festft`,FAILED_HOOK:`fh`,FAILED_IMPERSONATION:`fimp`,FAILED_INVITE_ACCEPT:`fi`,FAILED_LOGOUT:`flo`,FLOWS_EXECUTION_COMPLETED:`flows_execution_completed`,FLOWS_EXECUTION_FAILED:`flows_execution_failed`,FAILED_SENDING_NOTIFICATION:`fn`,FORMS_SUBMISSION_FAILED:`forms_submission_failed`,FORMS_SUBMISSION_SUCCEEDED:`forms_submission_succeeded`,FAILED_LOGIN_INCORRECT_PASSWORD:`fp`,FAILED_PUSHED_AUTHORIZATION_REQUEST:`fpar`,FAILED_POST_USER_REGISTRATION_HOOK:`fpurh`,FAILED_SIGNUP:`fs`,FAILED_SILENT_AUTH:`fsa`,FAILED_LOGIN_INVALID_EMAIL_USERNAME:`fu`,FAILED_USERS_IMPORT:`fui`,FAILED_VERIFICATION_EMAIL:`fv`,FAILED_VERIFICATION_EMAIL_REQUEST:`fvr`,EMAIL_VERIFICATION_CONFIRMED:`gd_auth_email_verification`,EMAIL_VERIFICATION_FAILED:`gd_auth_fail_email_verification`,MFA_AUTH_FAILED:`gd_auth_failed`,MFA_AUTH_REJECTED:`gd_auth_rejected`,MFA_AUTH_SUCCESS:`gd_auth_succeed`,MFA_ENROLLMENT_COMPLETE:`gd_enrollment_complete`,TOO_MANY_MFA_FAILURES:`gd_otp_rate_limit_exceed`,MFA_RECOVERY_FAILED:`gd_recovery_failed`,MFA_RECOVERY_RATE_LIMIT_EXCEED:`gd_recovery_rate_limit_exceed`,MFA_RECOVERY_SUCCESS:`gd_recovery_succeed`,MFA_EMAIL_SENT:`gd_send_email`,EMAIL_VERIFICATION_SENT:`gd_send_email_verification`,EMAIL_VERIFICATION_SEND_FAILURE:`gd_send_email_verification_failure`,PUSH_NOTIFICATION_SENT:`gd_send_pn`,ERROR_SENDING_MFA_PUSH_NOTIFICATION:`gd_send_pn_failure`,MFA_SMS_SENT:`gd_send_sms`,ERROR_SENDING_MFA_SMS:`gd_send_sms_failure`,MFA_VOICE_CALL_SUCCESS:`gd_send_voice`,MFA_VOICE_CALL_FAILED:`gd_send_voice_failure`,SECOND_FACTOR_STARTED:`gd_start_auth`,MFA_ENROLL_STARTED:`gd_start_enroll`,MFA_ENROLLMENT_FAILED:`gd_start_enroll_failed`,GUARDIAN_TENANT_UPDATE:`gd_tenant_update`,UNENROLL_DEVICE_ACCOUNT:`gd_unenroll`,UPDATE_DEVICE_ACCOUNT:`gd_update_device_account`,WEBAUTHN_CHALLENGE_FAILED:`gd_webauthn_challenge_failed`,WEBAUTHN_ENROLLMENT_FAILED:`gd_webauthn_enrollment_failed`,FAILED_KMS_API_OPERATION:`kms_key_management_failure`,SUCCESS_KMS_API_OPERATION:`kms_key_management_success`,KMS_KEY_STATE_CHANGED:`kms_key_state_changed`,TOO_MANY_CALLS_TO_DELEGATION:`limit_delegation`,BLOCKED_IP_ADDRESS:`limit_mu`,BLOCKED_ACCOUNT_IP:`limit_sul`,BLOCKED_ACCOUNT_EMAIL:`limit_wc`,INFORMATION:`i`,MFA_REQUIRED:`mfar`,MANAGEMENT_API_READ_OPERATION:`mgmt_api_read`,FAILED_AUTHENTICATION_METHOD_OPERATION_MY_ACCOUNT:`my_account_authentication_method_failed`,SUCCESSFUL_AUTHENTICATION_METHOD_OPERATION_MY_ACCOUNT:`my_account_authentication_method_succeeded`,FAILED_OIDC_BACKCHANNEL_LOGOUT:`oidc_backchannel_logout_failed`,SUCCESSFUL_OIDC_BACKCHANNEL_LOGOUT:`oidc_backchannel_logout_succeeded`,ORGANIZATION_MEMBER_ADDED:`organization_member_added`,PASSKEY_CHALLENGE_FAILED:`passkey_challenge_failed`,PASSKEY_CHALLENGE_STARTED:`passkey_challenge_started`,PRE_LOGIN_ASSESSMENT:`pla`,BREACHED_PASSWORD:`pwd_leak`,BREACHED_PASSWORD_ON_RESET:`reset_pwd_leak`,SUCCESS_RESOURCE_CLEANUP:`resource_cleanup`,RICH_CONSENTS_ACCESS_ERROR:`rich_consents_access_error`,SUCCESS_LOGIN:`s`,SUCCESS_API_OPERATION:`sapi`,FAILED_API_OPERATION:`fapi`,SUCCESS_CHANGE_EMAIL:`sce`,SUCCESS_CROSS_ORIGIN_AUTHENTICATION:`scoa`,SUCCESS_CHANGE_PASSWORD:`scp`,SUCCESS_CHANGE_PHONE_NUMBER:`scpn`,SUCCESS_CHANGE_PASSWORD_REQUEST:`scpr`,SUCCESS_CHANGE_USERNAME:`scu`,SUCCESS_CREDENTIAL_VALIDATION:`scv`,SUCCESS_DELEGATION:`sd`,SUCCESS_USER_DELETION:`sdu`,SUCCESS_EXCHANGE_AUTHORIZATION_CODE_FOR_ACCESS_TOKEN:`seacft`,SUCCESS_EXCHANGE_ACCESS_TOKEN_FOR_CLIENT_CREDENTIALS:`seccft`,SUCCESS_EXCHANGE_CUSTOM_TOKEN:`secte`,SUCCESS_EXCHANGE_DEVICE_CODE_FOR_ACCESS_TOKEN:`sede`,SUCCESS_EXCHANGE_NATIVE_SOCIAL_LOGIN:`sens`,SUCCESS_EXCHANGE_PASSWORD_OOB_FOR_ACCESS_TOKEN:`seoobft`,SUCCESS_EXCHANGE_PASSWORD_OTP_FOR_ACCESS_TOKEN:`seotpft`,SUCCESS_EXCHANGE_PASSWORDLESS_OTP_FOR_ACCESS_TOKEN:`sepotpft`,SUCCESS_EXCHANGE_PASSWORD_FOR_ACCESS_TOKEN:`sepft`,SUCCESS_EXCHANGE_PASSKEY_OOB_FOR_ACCESS_TOKEN:`sepkoobft`,SUCCESS_EXCHANGE_PASSKEY_OTP_FOR_ACCESS_TOKEN:`sepkotpft`,SUCCESS_EXCHANGE_PASSKEY_MFA_RECOVERY_FOR_ACCESS_TOKEN:`sepkrcft`,SUCCESS_EXCHANGE_PASSWORD_MFA_RECOVERY_FOR_ACCESS_TOKEN:`sercft`,SUCCESS_EXCHANGE_REFRESH_TOKEN_FOR_ACCESS_TOKEN:`sertft`,SUCCESS_EXCHANGE_SUBJECT_TOKEN_FOR_ACCESS_TOKEN:`sestft`,SUCCESS_IMPERSONATION:`simp`,SUCCESSFULLY_ACCEPTED_USER_INVITE:`si`,BREACHED_PASSWORD_ON_SIGNUP:`signup_pwd_leak`,SUCCESS_LOGOUT:`slo`,SUCCESS_HOOK:`sh`,SUCCESS_PASSWORD_MIGRATION:`spm`,SUCCESS_REVOCATION:`srrt`,SUCCESS_SIGNUP:`ss`,FAILED_SS_SSO_OPERATION:`ss_sso_failure`,INFORMATION_FROM_SS_SSO_OPERATION:`ss_sso_info`,SUCCESS_SS_SSO_OPERATION:`ss_sso_success`,SUCCESS_SILENT_AUTH:`ssa`,SUCCESSFUL_SCIM_OPERATION:`sscim`,SUCCESSFULLY_IMPORTED_USERS:`sui`,SUCCESS_VERIFICATION_EMAIL:`sv`,SUCCESS_VERIFICATION_EMAIL_REQUEST:`svr`,MAX_AMOUNT_OF_AUTHENTICATORS:`too_many_records`,USER_LOGIN_BLOCK_RELEASED:`ublkdu`,FAILED_UNIVERSAL_LOGOUT:`universal_logout_failed`,SUCCESSFUL_UNIVERSAL_LOGOUT:`universal_logout_succeeded`,WARNING_DURING_LOGIN:`w`,WARNING_SENDING_NOTIFICATION:`wn`,WARNING_USER_MANAGEMENT:`wum`},MZ=f.z.string().refine(e=>Object.values($).includes(e),{message:`Invalid log type`});$.ACLS_SUMMARY,$.ACTIONS_EXECUTION_FAILED,$.API_LIMIT,$.API_LIMIT_WARNING,$.APPI,$.CIBA_EXCHANGE_FAILED,$.CIBA_EXCHANGE_SUCCEEDED,$.CIBA_START_FAILED,$.CIBA_START_SUCCEEDED,$.CODE_LINK_SENT,$.CODE_SENT,$.DEPRECATION_NOTICE,$.FAILED_LOGIN,$.FAILED_BY_CONNECTOR,$.FAILED_CHANGE_EMAIL,$.FAILED_BY_CORS,$.FAILED_CROSS_ORIGIN_AUTHENTICATION,$.FAILED_CHANGE_PASSWORD,$.FAILED_POST_CHANGE_PASSWORD_HOOK,$.FAILED_CHANGE_PHONE_NUMBER,$.FAILED_CHANGE_PASSWORD_REQUEST,$.FAILED_CONNECTOR_PROVISIONING,$.FAILED_CHANGE_USERNAME,$.FAILED_DELEGATION,$.FAILED_DEVICE_ACTIVATION,$.FAILED_DEVICE_AUTHORIZATION_REQUEST,$.USER_CANCELED_DEVICE_CONFIRMATION,$.FAILED_USER_DELETION,$.FAILED_EXCHANGE_AUTHORIZATION_CODE_FOR_ACCESS_TOKEN,$.FAILED_EXCHANGE_ACCESS_TOKEN_FOR_CLIENT_CREDENTIALS,$.FAILED_EXCHANGE_CUSTOM_TOKEN,$.FAILED_EXCHANGE_DEVICE_CODE_FOR_ACCESS_TOKEN,$.FAILED_FEDERATED_LOGOUT,$.FAILED_EXCHANGE_NATIVE_SOCIAL_LOGIN,$.FAILED_EXCHANGE_PASSWORD_OOB_FOR_ACCESS_TOKEN,$.FAILED_EXCHANGE_PASSWORD_OTP_FOR_ACCESS_TOKEN,$.FAILED_EXCHANGE_PASSWORD_FOR_ACCESS_TOKEN,$.FAILED_EXCHANGE_PASSWORDLESS_OTP_FOR_ACCESS_TOKEN,$.FAILED_EXCHANGE_PASSWORD_MFA_RECOVERY_FOR_ACCESS_TOKEN,$.FAILED_EXCHANGE_ROTATING_REFRESH_TOKEN,$.FAILED_EXCHANGE_REFRESH_TOKEN_FOR_ACCESS_TOKEN,$.FAILED_EXCHANGE_SUBJECT_TOKEN_FOR_ACCESS_TOKEN,$.FAILED_HOOK,$.FAILED_IMPERSONATION,$.FAILED_INVITE_ACCEPT,$.FAILED_LOGOUT,$.FLOWS_EXECUTION_COMPLETED,$.FLOWS_EXECUTION_FAILED,$.FAILED_SENDING_NOTIFICATION,$.FORMS_SUBMISSION_FAILED,$.FORMS_SUBMISSION_SUCCEEDED,$.FAILED_LOGIN_INCORRECT_PASSWORD,$.FAILED_PUSHED_AUTHORIZATION_REQUEST,$.FAILED_POST_USER_REGISTRATION_HOOK,$.FAILED_SIGNUP,$.FAILED_SILENT_AUTH,$.FAILED_LOGIN_INVALID_EMAIL_USERNAME,$.FAILED_USERS_IMPORT,$.FAILED_VERIFICATION_EMAIL,$.FAILED_VERIFICATION_EMAIL_REQUEST,$.EMAIL_VERIFICATION_CONFIRMED,$.EMAIL_VERIFICATION_FAILED,$.MFA_AUTH_FAILED,$.MFA_AUTH_REJECTED,$.MFA_AUTH_SUCCESS,$.MFA_ENROLLMENT_COMPLETE,$.TOO_MANY_MFA_FAILURES,$.MFA_RECOVERY_FAILED,$.MFA_RECOVERY_RATE_LIMIT_EXCEED,$.MFA_RECOVERY_SUCCESS,$.MFA_EMAIL_SENT,$.EMAIL_VERIFICATION_SENT,$.EMAIL_VERIFICATION_SEND_FAILURE,$.PUSH_NOTIFICATION_SENT,$.ERROR_SENDING_MFA_PUSH_NOTIFICATION,$.MFA_SMS_SENT,$.ERROR_SENDING_MFA_SMS,$.MFA_VOICE_CALL_SUCCESS,$.MFA_VOICE_CALL_FAILED,$.SECOND_FACTOR_STARTED,$.MFA_ENROLL_STARTED,$.MFA_ENROLLMENT_FAILED,$.GUARDIAN_TENANT_UPDATE,$.UNENROLL_DEVICE_ACCOUNT,$.UPDATE_DEVICE_ACCOUNT,$.WEBAUTHN_CHALLENGE_FAILED,$.WEBAUTHN_ENROLLMENT_FAILED,$.FAILED_KMS_API_OPERATION,$.SUCCESS_KMS_API_OPERATION,$.KMS_KEY_STATE_CHANGED,$.TOO_MANY_CALLS_TO_DELEGATION,$.BLOCKED_IP_ADDRESS,$.BLOCKED_ACCOUNT_IP,$.BLOCKED_ACCOUNT_EMAIL,$.INFORMATION,$.MFA_REQUIRED,$.MANAGEMENT_API_READ_OPERATION,$.FAILED_AUTHENTICATION_METHOD_OPERATION_MY_ACCOUNT,$.SUCCESSFUL_AUTHENTICATION_METHOD_OPERATION_MY_ACCOUNT,$.FAILED_OIDC_BACKCHANNEL_LOGOUT,$.SUCCESSFUL_OIDC_BACKCHANNEL_LOGOUT,$.ORGANIZATION_MEMBER_ADDED,$.PASSKEY_CHALLENGE_FAILED,$.PASSKEY_CHALLENGE_STARTED,$.PRE_LOGIN_ASSESSMENT,$.BREACHED_PASSWORD,$.BREACHED_PASSWORD_ON_RESET,$.SUCCESS_RESOURCE_CLEANUP,$.RICH_CONSENTS_ACCESS_ERROR,$.SUCCESS_LOGIN,$.SUCCESS_API_OPERATION,$.FAILED_API_OPERATION,$.SUCCESS_CHANGE_EMAIL,$.SUCCESS_CROSS_ORIGIN_AUTHENTICATION,$.SUCCESS_CHANGE_PASSWORD,$.SUCCESS_CHANGE_PHONE_NUMBER,$.SUCCESS_CHANGE_PASSWORD_REQUEST,$.SUCCESS_CHANGE_USERNAME,$.SUCCESS_CREDENTIAL_VALIDATION,$.SUCCESS_DELEGATION,$.SUCCESS_USER_DELETION,$.SUCCESS_EXCHANGE_AUTHORIZATION_CODE_FOR_ACCESS_TOKEN,$.SUCCESS_EXCHANGE_ACCESS_TOKEN_FOR_CLIENT_CREDENTIALS,$.SUCCESS_EXCHANGE_CUSTOM_TOKEN,$.SUCCESS_EXCHANGE_DEVICE_CODE_FOR_ACCESS_TOKEN,$.SUCCESS_EXCHANGE_NATIVE_SOCIAL_LOGIN,$.SUCCESS_EXCHANGE_PASSWORD_OOB_FOR_ACCESS_TOKEN,$.SUCCESS_EXCHANGE_PASSWORD_OTP_FOR_ACCESS_TOKEN,$.SUCCESS_EXCHANGE_PASSWORDLESS_OTP_FOR_ACCESS_TOKEN,$.SUCCESS_EXCHANGE_PASSWORD_FOR_ACCESS_TOKEN,$.SUCCESS_EXCHANGE_PASSKEY_OOB_FOR_ACCESS_TOKEN,$.SUCCESS_EXCHANGE_PASSKEY_OTP_FOR_ACCESS_TOKEN,$.SUCCESS_EXCHANGE_PASSKEY_MFA_RECOVERY_FOR_ACCESS_TOKEN,$.SUCCESS_EXCHANGE_PASSWORD_MFA_RECOVERY_FOR_ACCESS_TOKEN,$.SUCCESS_EXCHANGE_REFRESH_TOKEN_FOR_ACCESS_TOKEN,$.SUCCESS_EXCHANGE_SUBJECT_TOKEN_FOR_ACCESS_TOKEN,$.SUCCESS_IMPERSONATION,$.SUCCESSFULLY_ACCEPTED_USER_INVITE,$.BREACHED_PASSWORD_ON_SIGNUP,$.SUCCESS_LOGOUT,$.SUCCESS_HOOK,$.SUCCESS_PASSWORD_MIGRATION,$.SUCCESS_REVOCATION,$.SUCCESS_SIGNUP,$.FAILED_SS_SSO_OPERATION,$.INFORMATION_FROM_SS_SSO_OPERATION,$.SUCCESS_SS_SSO_OPERATION,$.SUCCESS_SILENT_AUTH,$.SUCCESSFUL_SCIM_OPERATION,$.SUCCESSFULLY_IMPORTED_USERS,$.SUCCESS_VERIFICATION_EMAIL,$.SUCCESS_VERIFICATION_EMAIL_REQUEST,$.MAX_AMOUNT_OF_AUTHENTICATORS,$.USER_LOGIN_BLOCK_RELEASED,$.FAILED_UNIVERSAL_LOGOUT,$.SUCCESSFUL_UNIVERSAL_LOGOUT,$.WARNING_DURING_LOGIN,$.WARNING_SENDING_NOTIFICATION,$.WARNING_USER_MANAGEMENT,(()=>{let e={};for(let[t,n]of Object.entries($))t.startsWith(`SUCCESS_`)||t.startsWith(`SUCCESSFUL_`)||t.startsWith(`SUCCESSFULLY_`)||t.endsWith(`_SUCCEEDED`)||t.endsWith(`_COMPLETED`)?e[n]=`success`:t.startsWith(`FAILED_`)||t.startsWith(`ERROR_`)||t.startsWith(`BREACHED_`)||t.startsWith(`BLOCKED_`)||t===`MFA_AUTH_FAILED`||t===`MFA_AUTH_REJECTED`||t===`MFA_RECOVERY_FAILED`||t===`MFA_ENROLLMENT_FAILED`||t===`EMAIL_VERIFICATION_FAILED`||t===`WEBAUTHN_CHALLENGE_FAILED`||t===`WEBAUTHN_ENROLLMENT_FAILED`||t===`PASSKEY_CHALLENGE_FAILED`||t===`FLOWS_EXECUTION_FAILED`||t===`FORMS_SUBMISSION_FAILED`||t===`CIBA_EXCHANGE_FAILED`||t===`CIBA_START_FAILED`||t===`ACTIONS_EXECUTION_FAILED`||t===`RICH_CONSENTS_ACCESS_ERROR`||t===`USER_CANCELED_DEVICE_CONFIRMATION`||t===`TOO_MANY_MFA_FAILURES`||t===`MFA_RECOVERY_RATE_LIMIT_EXCEED`||t===`API_LIMIT`||t===`MAX_AMOUNT_OF_AUTHENTICATORS`?e[n]=`failure`:t.startsWith(`WARNING_`)||t===`API_LIMIT_WARNING`||t===`DEPRECATION_NOTICE`||t===`PRE_LOGIN_ASSESSMENT`?e[n]=`warning`:t===`CODE_SENT`||t===`CODE_LINK_SENT`||t===`MFA_EMAIL_SENT`||t===`MFA_SMS_SENT`||t===`EMAIL_VERIFICATION_SENT`||t===`PUSH_NOTIFICATION_SENT`?e[n]=`code_sent`:t===`INFORMATION`||t===`INFORMATION_FROM_SS_SSO_OPERATION`||t===`MANAGEMENT_API_READ_OPERATION`||t===`APPI`||t===`ACLS_SUMMARY`||t===`ORGANIZATION_MEMBER_ADDED`?e[n]=`info`:e[n]=`other`;return e})();var NZ=f.z.object({name:f.z.string(),version:f.z.string(),env:f.z.object({node:f.z.string().optional()}).optional()}),PZ=f.z.object({country_code:f.z.string().length(2),city_name:f.z.string(),latitude:f.z.string(),longitude:f.z.string(),time_zone:f.z.string(),continent_code:f.z.string()});f.z.object({type:MZ,date:f.z.string(),description:f.z.string().optional(),ip:f.z.string().optional(),user_agent:f.z.string().optional(),details:f.z.any().optional(),isMobile:f.z.boolean(),user_id:f.z.string().optional(),user_name:f.z.string().optional(),connection:f.z.string().optional(),connection_id:f.z.string().optional(),client_id:f.z.string().optional(),client_name:f.z.string().optional(),audience:f.z.string().optional(),scope:f.z.string().optional(),strategy:f.z.string().optional(),strategy_type:f.z.string().optional(),hostname:f.z.string().optional(),auth0_client:NZ.optional(),log_id:f.z.string().optional(),location_info:PZ.optional()}).extend({log_id:f.z.string()});var FZ=f.z.enum([`http`,`eventbridge`,`eventgrid`,`splunk`,`datadog`,`sumo`]),IZ=f.z.enum([`active`,`paused`,`suspended`]),LZ=f.z.object({type:f.z.string(),name:f.z.string()});f.z.object({name:f.z.string(),type:FZ,status:IZ.optional(),sink:f.z.record(f.z.string(),f.z.unknown()),filters:f.z.array(LZ).optional(),isPriority:f.z.boolean().optional()}).extend({id:f.z.string(),status:IZ,created_at:f.z.string().optional(),updated_at:f.z.string().optional()});var RZ=f.z.enum([`auth0`,`cognito`,`okta`,`oidc`]),zZ=f.z.object({domain:f.z.string(),client_id:f.z.string(),client_secret:f.z.string(),audience:f.z.string().optional(),scope:f.z.string().optional()}),BZ=f.z.object({id:f.z.string().optional(),name:f.z.string(),provider:RZ,connection:f.z.string(),enabled:f.z.boolean().default(!0),credentials:zZ});f.z.object({id:f.z.string(),created_at:f.z.string(),updated_at:f.z.string()}).extend(BZ.shape);var VZ=f.z.object({enabled:f.z.boolean().optional(),shields:f.z.array(f.z.string()).optional(),admin_notification_frequency:f.z.array(f.z.string()).optional(),method:f.z.string().optional(),stage:f.z.object({"pre-user-registration":f.z.object({shields:f.z.array(f.z.string()).optional()}).optional(),"pre-change-password":f.z.object({shields:f.z.array(f.z.string()).optional()}).optional()}).optional()}),HZ=f.z.object({enabled:f.z.boolean().optional(),shields:f.z.array(f.z.string()).optional(),allowlist:f.z.array(f.z.string()).optional(),mode:f.z.string().optional(),max_attempts:f.z.number().optional()}),UZ=f.z.object({enabled:f.z.boolean().optional(),shields:f.z.array(f.z.string()).optional(),allowlist:f.z.array(f.z.string()).optional(),stage:f.z.object({"pre-login":f.z.object({max_attempts:f.z.number().optional(),rate:f.z.number().optional()}).optional(),"pre-user-registration":f.z.object({max_attempts:f.z.number().optional(),rate:f.z.number().optional()}).optional()}).optional()}),WZ=f.z.object({breached_password_detection:VZ.optional(),brute_force_protection:HZ.optional(),suspicious_ip_throttling:UZ.optional()});f.z.object({id:f.z.string().optional(),user_id:f.z.string(),password:f.z.string(),algorithm:f.z.enum([`bcrypt`,`argon2id`]).default(`argon2id`),is_current:f.z.boolean().default(!0)}).extend({id:f.z.string(),created_at:f.z.string(),updated_at:f.z.string()});var GZ=f.z.object({initial_user_agent:f.z.string().describe(`First user agent of the device from which this user logged in`),initial_ip:f.z.string().describe(`First IP address associated with this session`),initial_asn:f.z.string().describe(`First autonomous system number associated with this session`),last_user_agent:f.z.string().describe(`Last user agent of the device from which this user logged in`),last_ip:f.z.string().describe(`Last IP address from which this user logged in`),last_asn:f.z.string().describe(`Last autonomous system number from which this user logged in`)}),KZ=f.z.object({id:f.z.string(),revoked_at:f.z.string().optional(),used_at:f.z.string().optional(),user_id:f.z.string().describe(`The user ID associated with the session`),expires_at:f.z.string().optional(),login_session_id:f.z.string(),idle_expires_at:f.z.string().optional(),device:GZ.describe(`Metadata related to the device used in the session`),clients:f.z.array(f.z.string()).describe(`List of client details for the session`)});f.z.object({created_at:f.z.string(),updated_at:f.z.string(),authenticated_at:f.z.string(),last_interaction_at:f.z.string()}).extend(KZ.shape),f.z.object({kid:f.z.string().openapi({description:`The key id of the signing key`}),tenant_id:f.z.string().optional().openapi({description:`The tenant the key belongs to. Omitted means the key is shared / control-plane scoped.`}),cert:f.z.string().openapi({description:`The public certificate of the signing key`}),fingerprint:f.z.string().openapi({description:`The cert fingerprint`}),thumbprint:f.z.string().openapi({description:`The cert thumbprint`}),pkcs7:f.z.string().optional().openapi({description:`The private key in pkcs7 format`}),current:f.z.boolean().optional().openapi({description:`True if the key is the current key`}),next:f.z.boolean().optional().openapi({description:`True if the key is the next key`}),previous:f.z.boolean().optional().openapi({description:`True if the key is the previous key`}),current_since:f.z.string().optional().openapi({description:`The date and time when the key became the current key`}),current_until:f.z.string().optional().openapi({description:`The date and time when the current key was rotated`}),revoked:f.z.boolean().optional().openapi({description:`True if the key is revoked`}),revoked_at:f.z.string().optional().openapi({description:`The date and time when the key was revoked`}),connection:f.z.string().optional().openapi({description:`The connection identifier associated with the key`}),type:f.z.enum([`jwt_signing`,`saml_encryption`]).openapi({description:`The type of the signing key`})});var qZ=f.z.object({id:f.z.string().optional(),audience:f.z.string().optional(),friendly_name:f.z.string(),picture_url:f.z.string().optional(),support_email:f.z.string().optional(),support_url:f.z.string().optional(),sender_email:f.z.string().email().optional(),sender_name:f.z.string().optional(),session_lifetime:f.z.number().optional(),idle_session_lifetime:f.z.number().optional(),ephemeral_session_lifetime:f.z.number().optional(),idle_ephemeral_session_lifetime:f.z.number().optional(),session_cookie:f.z.object({mode:f.z.enum([`persistent`,`non-persistent`]).optional()}).optional(),allowed_logout_urls:f.z.array(f.z.string()).optional(),default_redirection_uri:f.z.string().optional(),default_client_id:f.z.string().optional(),enabled_locales:f.z.array(f.z.string()).optional(),default_directory:f.z.string().optional(),error_page:f.z.object({html:f.z.string().optional(),show_log_link:f.z.boolean().optional(),url:f.z.string().optional()}).nullish(),flags:f.z.object({allow_changing_enable_sso:f.z.boolean().optional(),allow_legacy_delegation_grant_types:f.z.boolean().optional(),allow_legacy_ro_grant_types:f.z.boolean().optional(),allow_legacy_tokeninfo_endpoint:f.z.boolean().optional(),change_pwd_flow_v1:f.z.boolean().optional(),client_id_metadata_document_registration:f.z.boolean().optional(),custom_domains_provisioning:f.z.boolean().optional(),dashboard_insights_view:f.z.boolean().optional(),dashboard_log_streams_next:f.z.boolean().optional(),disable_clickjack_protection_headers:f.z.boolean().optional(),disable_fields_map_fix:f.z.boolean().optional(),disable_impersonation:f.z.boolean().optional(),disable_management_api_sms_obfuscation:f.z.boolean().optional(),enable_adfs_waad_email_verification:f.z.boolean().optional(),enable_apis_section:f.z.boolean().optional(),enable_client_connections:f.z.boolean().optional(),enable_custom_domain_in_emails:f.z.boolean().optional(),enable_dynamic_client_registration:f.z.boolean().optional(),dcr_require_initial_access_token:f.z.boolean().optional(),dcr_allowed_grant_types:f.z.array(f.z.string()).optional(),allow_http_return_to:f.z.array(f.z.string().refine(e=>{try{let t=new URL(e);return t.protocol===`http:`&&(t.pathname===``||t.pathname===`/`)&&!t.search&&!t.hash&&e===t.origin}catch{return!1}},{message:`must be a fully-qualified http origin (scheme + host + port, no path)`})).optional(),enable_idtoken_api2:f.z.boolean().optional(),enable_legacy_logs_search_v2:f.z.boolean().optional(),enable_legacy_profile:f.z.boolean().optional(),enable_pipeline2:f.z.boolean().optional(),enable_public_signup_user_exists_error:f.z.boolean().optional(),enable_sso:f.z.boolean().optional(),enforce_client_authentication_on_passwordless_start:f.z.boolean().optional(),genai_trial:f.z.boolean().optional(),improved_signup_bot_detection_in_classic:f.z.boolean().optional(),mfa_show_factor_list_on_enrollment:f.z.boolean().optional(),no_disclose_enterprise_connections:f.z.boolean().optional(),remove_alg_from_jwks:f.z.boolean().optional(),revoke_refresh_token_grant:f.z.boolean().optional(),trust_azure_adfs_email_verified_connection_property:f.z.boolean().optional(),use_scope_descriptions_for_consent:f.z.boolean().optional(),inherit_global_permissions_in_organizations:f.z.boolean().optional(),restrict_undefined_scopes:f.z.boolean().optional()}).optional(),sandbox_version:f.z.string().optional(),legacy_sandbox_version:f.z.string().optional(),sandbox_versions_available:f.z.array(f.z.string()).optional(),change_password:f.z.object({enabled:f.z.boolean().optional(),html:f.z.string().optional()}).optional(),guardian_mfa_page:f.z.object({enabled:f.z.boolean().optional(),html:f.z.string().optional()}).optional(),device_flow:f.z.object({charset:f.z.enum([`base20`,`digits`]).optional(),mask:f.z.string().max(20).optional()}).optional(),default_token_quota:f.z.object({clients:f.z.object({client_credentials:f.z.record(f.z.string(),f.z.any()).optional()}).optional(),organizations:f.z.object({client_credentials:f.z.record(f.z.string(),f.z.any()).optional()}).optional()}).nullish(),default_audience:f.z.string().optional(),default_organization:f.z.string().optional(),sessions:f.z.object({oidc_logout_prompt_enabled:f.z.boolean().optional()}).optional(),oidc_logout:f.z.object({rp_logout_end_session_endpoint_discovery:f.z.boolean().optional()}).optional(),allow_organization_name_in_authentication_api:f.z.boolean().optional(),customize_mfa_in_postlogin_action:f.z.boolean().optional(),acr_values_supported:f.z.array(f.z.string()).optional(),mtls:f.z.object({enable_endpoint_aliases:f.z.boolean().optional()}).nullish(),pushed_authorization_requests_supported:f.z.boolean().optional(),authorization_response_iss_parameter_supported:f.z.boolean().optional(),deployment_type:f.z.enum([`shared`,`wfp`]).default(`shared`).optional(),provisioning_state:f.z.enum([`pending`,`ready`,`failed`]).default(`ready`).optional(),provisioning_error:f.z.string().max(2048).optional(),provisioning_state_changed_at:f.z.string().optional(),bundle_configuration:f.z.string().max(64).optional(),worker_version:f.z.string().max(64).optional(),worker_script_name:f.z.string().max(255).optional(),storage_kind:f.z.enum([`own_d1`,`existing_d1`,`shared_planetscale`]).optional(),d1_database_id:f.z.string().max(64).optional(),attack_protection:WZ.optional(),mfa:f.z.object({policy:f.z.enum([`never`,`always`]).default(`never`).optional(),factors:f.z.object({sms:f.z.boolean().default(!1),otp:f.z.boolean().default(!1),email:f.z.boolean().default(!1),push_notification:f.z.boolean().default(!1),webauthn_roaming:f.z.boolean().default(!1),webauthn_platform:f.z.boolean().default(!1),recovery_code:f.z.boolean().default(!1),duo:f.z.boolean().default(!1)}).optional(),sms_provider:f.z.object({provider:f.z.enum([`twilio`,`vonage`,`aws_sns`,`phone_message_hook`]).optional()}).optional(),twilio:f.z.object({sid:f.z.string().optional(),auth_token:f.z.string().optional(),from:f.z.string().optional(),messaging_service_sid:f.z.string().optional()}).optional(),phone_message:f.z.object({message:f.z.string().optional()}).optional()}).optional()});f.z.object({created_at:f.z.string().nullable().transform(e=>e??``),updated_at:f.z.string().nullable().transform(e=>e??``)}).extend(qZ.shape).extend({id:f.z.string(),is_control_plane:f.z.boolean().optional()}),f.z.object({access_token:f.z.string(),id_token:f.z.string().optional(),scope:f.z.string().optional(),state:f.z.string().optional(),refresh_token:f.z.string().optional(),token_type:f.z.string(),expires_in:f.z.number()}),f.z.object({code:f.z.string(),state:f.z.string().optional()});var JZ=f.z.object({button_border_radius:f.z.number(),button_border_weight:f.z.number(),buttons_style:f.z.enum([`pill`,`rounded`,`sharp`]),input_border_radius:f.z.number(),input_border_weight:f.z.number(),inputs_style:f.z.enum([`pill`,`rounded`,`sharp`]),show_widget_shadow:f.z.boolean(),widget_border_weight:f.z.number(),widget_corner_radius:f.z.number()}),YZ=f.z.object({base_focus_color:f.z.string(),base_hover_color:f.z.string(),body_text:f.z.string(),captcha_widget_theme:f.z.enum([`auto`,`dark`,`light`]),error:f.z.string(),header:f.z.string(),icons:f.z.string(),input_background:f.z.string(),input_border:f.z.string(),input_filled_text:f.z.string(),input_labels_placeholders:f.z.string(),links_focused_components:f.z.string(),primary_button:f.z.string(),primary_button_label:f.z.string(),secondary_button_border:f.z.string(),secondary_button_label:f.z.string(),success:f.z.string(),widget_background:f.z.string(),widget_border:f.z.string()}),XZ=f.z.object({bold:f.z.boolean(),size:f.z.number()}),ZZ=f.z.object({body_text:XZ,buttons_text:XZ,font_url:f.z.string(),input_labels:XZ,links:XZ,links_style:f.z.enum([`normal`,`underlined`]),reference_text_size:f.z.number(),subtitle:XZ,title:XZ}),QZ=f.z.object({background_color:f.z.string(),background_image_url:f.z.string(),page_layout:f.z.enum([`center`,`left`,`right`]),logo_placement:f.z.enum([`widget`,`chip`,`none`]).optional()}),$Z=f.z.object({header_text_alignment:f.z.enum([`center`,`left`,`right`]),logo_height:f.z.number(),logo_position:f.z.enum([`center`,`left`,`none`,`right`]),logo_url:f.z.string(),social_buttons_layout:f.z.enum([`bottom`,`top`])});f.z.object({borders:JZ,colors:YZ,displayName:f.z.string(),fonts:ZZ,page_background:QZ,widget:$Z}).extend({themeId:f.z.string()}),f.z.object({universal_login_experience:f.z.enum([`new`,`classic`]).default(`new`),identifier_first:f.z.boolean().default(!0),password_first:f.z.boolean().default(!1),webauthn_platform_first_factor:f.z.boolean()});var eQ=f.z.object({hosts:f.z.array(f.z.string()).optional(),methods:f.z.array(f.z.string()).optional(),path:f.z.string().default(`/*`),headers:f.z.record(f.z.string(),f.z.string()).optional(),query:f.z.record(f.z.string(),f.z.string()).optional()}),tQ=f.z.object({type:f.z.string(),options:f.z.record(f.z.string(),f.z.unknown()).default({})}),nQ=f.z.object({id:f.z.string().optional(),custom_domain_id:f.z.string(),priority:f.z.number().int().default(100),match:eQ,handlers:f.z.array(tQ).min(1)});nQ.extend({id:f.z.string(),tenant_id:f.z.string(),created_at:f.z.string(),updated_at:f.z.string()}),nQ.partial().omit({id:!0,custom_domain_id:!0}),f.z.object({name:f.z.string(),enabled:f.z.boolean().optional().default(!0),default_from_address:f.z.string().optional(),credentials:f.z.record(f.z.string(),f.z.unknown()),settings:f.z.object({}).optional()});var rQ=f.z.enum([`verify_email`,`verify_email_by_code`,`reset_email`,`reset_email_by_code`,`welcome_email`,`blocked_account`,`stolen_credentials`,`enrollment_email`,`mfa_oob_code`,`change_password`,`password_reset`,`user_invitation`]);f.z.object({template:rQ,body:f.z.string(),from:f.z.string(),subject:f.z.string(),syntax:f.z.literal(`liquid`).default(`liquid`),resultUrl:f.z.string().optional(),urlLifetimeInSeconds:f.z.number().int().nonnegative().optional(),includeEmailInRedirect:f.z.boolean().default(!1),enabled:f.z.boolean().default(!0)}),f.z.object({id:f.z.string(),login_id:f.z.string(),user_id:f.z.string(),client_id:f.z.string(),expires_at:f.z.string().optional(),idle_expires_at:f.z.string().optional(),last_exchanged_at:f.z.string().optional(),device:GZ,resource_servers:f.z.array(f.z.object({audience:f.z.string(),scopes:f.z.string()})),rotating:f.z.boolean(),token_lookup:f.z.string().optional(),token_hash:f.z.string().optional(),family_id:f.z.string().optional(),rotated_to:f.z.string().optional(),rotated_at:f.z.string().optional()}).extend({created_at:f.z.string(),revoked_at:f.z.string().optional()}),f.z.object({to:f.z.string(),message:f.z.string()}),f.z.object({name:f.z.string(),options:f.z.object({})});var iQ=f.z.object({value:f.z.string(),description:f.z.string().optional()}),aQ=f.z.object({token_dialect:f.z.enum([`access_token`,`access_token_authz`]).optional(),enforce_policies:f.z.boolean().optional(),allow_skipping_userinfo:f.z.boolean().optional(),skip_userinfo:f.z.boolean().optional(),persist_client_authorization:f.z.boolean().optional(),enable_introspection_endpoint:f.z.boolean().optional(),mtls:f.z.object({bound_access_tokens:f.z.boolean().optional()}).optional()}),oQ=f.z.object({id:f.z.string().optional(),name:f.z.string(),identifier:f.z.string(),scopes:f.z.array(iQ).optional(),signing_alg:f.z.string().optional(),signing_secret:f.z.string().optional(),token_lifetime:f.z.number().default(86400),token_lifetime_for_web:f.z.number().default(7200),skip_consent_for_verifiable_first_party_clients:f.z.boolean().optional(),allow_offline_access:f.z.boolean().optional(),verificationKey:f.z.string().optional(),options:aQ.optional(),is_system:f.z.boolean().optional(),metadata:f.z.record(f.z.string(),f.z.any()).optional()}).extend({created_at:f.z.string().optional(),updated_at:f.z.string().optional()});f.z.array(oQ);var sQ=f.z.object({role_id:f.z.string(),resource_server_identifier:f.z.string(),permission_name:f.z.string()}).extend({created_at:f.z.string()});f.z.array(sQ),f.z.object({user_id:f.z.string().openapi({description:`The id of the user that granted the consent`}),clientID:f.z.string().openapi({description:`The id of the client the grant was issued to`}),audience:f.z.string().optional().openapi({description:`The audience the grant applies to`}),scope:f.z.array(f.z.string()).default([]).openapi({description:`The list of OAuth scopes the user has consented to`})}).extend({id:f.z.string()});var cQ=f.z.object({user_id:f.z.string(),resource_server_identifier:f.z.string(),permission_name:f.z.string(),organization_id:f.z.string().optional()}).extend({tenant_id:f.z.string(),created_at:f.z.string().optional()});f.z.array(cQ);var lQ=f.z.object({user_id:f.z.string(),resource_server_identifier:f.z.string(),resource_server_name:f.z.string(),permission_name:f.z.string(),description:f.z.string().nullable().optional(),created_at:f.z.string().optional(),organization_id:f.z.string().optional()});f.z.array(lQ);var uQ=f.z.object({user_id:f.z.string(),role_id:f.z.string(),organization_id:f.z.string().optional()}).extend({tenant_id:f.z.string(),created_at:f.z.string().optional()});f.z.array(uQ);var dQ=f.z.object({id:f.z.string().optional().openapi({description:`The unique identifier of the role. If not provided, one will be generated.`}),name:f.z.string().min(1).max(50).openapi({description:`The name of the role. Cannot include '<' or '>'`}),description:f.z.string().max(255).optional().openapi({description:`The description of the role`}),is_system:f.z.boolean().optional(),metadata:f.z.record(f.z.string(),f.z.any()).optional().openapi({description:`Metadata associated with the role. Can be used to control sync behavior in multi-tenancy scenarios.`})}).extend({id:f.z.string().openapi({description:`The unique identifier of the role`}),created_at:f.z.string().optional(),updated_at:f.z.string().optional()});f.z.array(dQ);var fQ=f.z.object({logo_url:f.z.string().optional().openapi({description:`URL of the organization's logo`}),colors:f.z.object({primary:f.z.string().optional().openapi({description:`Primary color in hex format (e.g., #FF0000)`}),page_background:f.z.string().optional().openapi({description:`Page background color in hex format (e.g., #FFFFFF)`})}).optional()}).optional(),pQ=f.z.object({connection_id:f.z.string().openapi({description:`ID of the connection`}),assign_membership_on_login:f.z.boolean().default(!1).openapi({description:`Whether to assign membership to the organization on login`}),show_as_button:f.z.boolean().default(!0).openapi({description:`Whether to show this connection as a button in the login screen`}),is_signup_enabled:f.z.boolean().default(!0).openapi({description:`Whether signup is enabled for this connection`})}),mQ=f.z.object({client_credentials:f.z.object({enforce:f.z.boolean().default(!1).openapi({description:`Whether to enforce token quota limits`}),per_day:f.z.number().min(0).default(0).openapi({description:`Maximum tokens per day (0 = unlimited)`}),per_hour:f.z.number().min(0).default(0).openapi({description:`Maximum tokens per hour (0 = unlimited)`})}).optional()}).optional();f.z.object({id:f.z.string().optional(),name:f.z.string().min(1).regex(/^[a-z0-9_-]+$/,{message:`Organization name must be lowercase and can only contain letters, numbers, hyphens, and underscores`}).openapi({description:`The name of the organization. Must be lowercase and can only contain letters, numbers, hyphens, and underscores.`}),display_name:f.z.string().optional().openapi({description:`The display name of the organization`}),branding:fQ,metadata:f.z.record(f.z.string(),f.z.any()).default({}).optional().openapi({description:`Custom metadata for the organization`}),enabled_connections:f.z.array(pQ).default([]).optional().openapi({description:`List of enabled connections for the organization`}),token_quota:mQ}).extend(uY.shape).extend({id:f.z.string(),name:f.z.string().min(1).openapi({description:`The name of the organization`})});var hQ=f.z.object({connection_id:f.z.string().openapi({description:`ID of the tenant-level connection to enable for the org.`}),assign_membership_on_login:f.z.boolean().optional().default(!1),show_as_button:f.z.boolean().optional().default(!0),is_signup_enabled:f.z.boolean().optional().default(!0)}).extend({connection:f.z.object({name:f.z.string().optional(),strategy:f.z.string().optional()}).optional(),created_at:f.z.string().optional(),updated_at:f.z.string().optional()});f.z.array(hQ),f.z.object({user_id:f.z.string().openapi({description:`ID of the user`}),organization_id:f.z.string().openapi({description:`ID of the organization`})}).extend(uY.shape).extend({id:f.z.string()}),f.z.object({idle_session_lifetime:f.z.number().default(72),session_lifetime:f.z.number().default(168),session_cookie:f.z.object({mode:f.z.enum([`persistent`,`non-persistent`]).optional()}).optional(),enable_client_connections:f.z.boolean().optional(),default_redirection_uri:f.z.string().optional(),enabled_locales:f.z.array(f.z.string()).optional(),default_directory:f.z.string().optional(),error_page:f.z.object({html:f.z.string().optional(),show_log_link:f.z.boolean().optional(),url:f.z.string().optional()}).optional(),flags:f.z.object({allow_legacy_delegation_grant_types:f.z.boolean().optional(),allow_legacy_ro_grant_types:f.z.boolean().optional(),allow_legacy_tokeninfo_endpoint:f.z.boolean().optional(),disable_clickjack_protection_headers:f.z.boolean().optional(),enable_apis_section:f.z.boolean().optional(),enable_client_connections:f.z.boolean().optional(),enable_custom_domain_in_emails:f.z.boolean().optional(),enable_dynamic_client_registration:f.z.boolean().optional(),enable_idtoken_api2:f.z.boolean().optional(),enable_legacy_logs_search_v2:f.z.boolean().optional(),enable_legacy_profile:f.z.boolean().optional(),enable_pipeline2:f.z.boolean().optional(),enable_public_signup_user_exists_error:f.z.boolean().optional(),use_scope_descriptions_for_consent:f.z.boolean().optional(),disable_management_api_sms_obfuscation:f.z.boolean().optional(),enable_adfs_waad_email_verification:f.z.boolean().optional(),revoke_refresh_token_grant:f.z.boolean().optional(),dashboard_log_streams_next:f.z.boolean().optional(),dashboard_insights_view:f.z.boolean().optional(),disable_fields_map_fix:f.z.boolean().optional(),mfa_show_factor_list_on_enrollment:f.z.boolean().optional()}).optional(),friendly_name:f.z.string().optional(),picture_url:f.z.string().optional(),support_email:f.z.string().optional(),support_url:f.z.string().optional(),sandbox_version:f.z.string().optional(),sandbox_versions_available:f.z.array(f.z.string()).optional(),change_password:f.z.object({enabled:f.z.boolean(),html:f.z.string()}).optional(),guardian_mfa_page:f.z.object({enabled:f.z.boolean(),html:f.z.string()}).optional(),default_audience:f.z.string().optional(),default_organization:f.z.string().optional(),sessions:f.z.object({oidc_logout_prompt_enabled:f.z.boolean().optional()}).optional(),mfa:f.z.object({policy:f.z.enum([`never`,`always`]).default(`never`).optional(),factors:f.z.object({sms:f.z.boolean().default(!1),otp:f.z.boolean().default(!1),email:f.z.boolean().default(!1),push_notification:f.z.boolean().default(!1),webauthn_roaming:f.z.boolean().default(!1),webauthn_platform:f.z.boolean().default(!1),recovery_code:f.z.boolean().default(!1),duo:f.z.boolean().default(!1)}).optional(),sms_provider:f.z.object({provider:f.z.enum([`twilio`,`vonage`,`aws_sns`,`phone_message_hook`]).optional()}).optional(),twilio:f.z.object({sid:f.z.string().optional(),auth_token:f.z.string().optional(),from:f.z.string().optional(),messaging_service_sid:f.z.string().optional()}).optional(),phone_message:f.z.object({message:f.z.string().optional()}).optional()}).optional()}),f.z.object({date:f.z.string().openapi({description:`Date these events occurred in ISO 8601 format`,example:`2025-12-19`}),logins:f.z.number().openapi({description:`Number of logins on this date`,example:150}),signups:f.z.number().openapi({description:`Number of signups on this date`,example:25}),leaked_passwords:f.z.number().openapi({description:`Number of breached-password detections on this date (subscription required)`,example:0}),updated_at:f.z.string().openapi({description:`Date and time this stats entry was last updated in ISO 8601 format`,example:`2025-12-19T10:30:00.000Z`}),created_at:f.z.string().openapi({description:`Approximate date and time the first event occurred in ISO 8601 format`,example:`2025-12-19T00:00:00.000Z`})}),f.z.number().openapi({description:`Number of active users in the last 30 days`,example:1234}),f.z.enum([`active-users`,`logins`,`signups`,`refresh-tokens`,`sessions`]),f.z.enum([`hour`,`day`,`week`,`month`]),f.z.enum([`time`,`connection`,`client_id`,`user_type`,`event`]),f.z.enum([`password`,`social`,`passwordless`,`enterprise`]);var gQ=f.z.object({name:f.z.string(),type:f.z.string()}),_Q=f.z.object({elapsed:f.z.number(),rows_read:f.z.number().optional(),bytes_read:f.z.number().optional()});f.z.object({meta:f.z.array(gQ),data:f.z.array(f.z.record(f.z.string(),f.z.any())),rows:f.z.number(),rows_before_limit_at_least:f.z.number().optional(),statistics:_Q.optional()});var vQ=f.z.enum(`login.login-id.login-password.signup.signup-id.signup-password.reset-password.consent.mfa.mfa-push.mfa-otp.mfa-voice.mfa-phone.mfa-webauthn.mfa-email.mfa-recovery-code.status.device-flow.email-verification.email-otp-challenge.organizations.invitation.common.passkeys.captcha.custom-form.login-passwordless.mfa-login-options`.split(`.`)),yQ=f.z.record(f.z.string(),f.z.record(f.z.string(),f.z.string())).openapi({type:`object`,additionalProperties:{type:`object`,additionalProperties:{type:`string`}}});f.z.object({prompt:vQ,language:f.z.string(),custom_text:yQ});var bQ=f.z.enum([`phone`,`totp`,`email`,`push`,`webauthn-roaming`,`webauthn-platform`,`passkey`]),xQ=f.z.object({user_id:f.z.string(),type:bQ,phone_number:f.z.string().optional(),totp_secret:f.z.string().optional(),credential_id:f.z.string().optional(),public_key:f.z.string().optional(),sign_count:f.z.number().int().nonnegative().optional(),credential_backed_up:f.z.boolean().optional(),transports:f.z.array(f.z.string()).optional(),friendly_name:f.z.string().optional(),confirmed:f.z.boolean().default(!1)});function SQ(e,t){e.type===`phone`&&!e.phone_number&&t.addIssue({code:f.z.ZodIssueCode.custom,message:`phone_number is required when type is 'phone'`,path:[`phone_number`]}),e.type===`totp`&&!e.totp_secret&&t.addIssue({code:f.z.ZodIssueCode.custom,message:`totp_secret is required when type is 'totp'`,path:[`totp_secret`]}),[`webauthn-roaming`,`webauthn-platform`,`passkey`].includes(e.type)&&(e.credential_id||t.addIssue({code:f.z.ZodIssueCode.custom,message:`credential_id is required when type is '${e.type}'`,path:[`credential_id`]}),e.public_key||t.addIssue({code:f.z.ZodIssueCode.custom,message:`public_key is required when type is '${e.type}'`,path:[`public_key`]}))}xQ.superRefine(SQ),xQ.extend({id:f.z.string(),created_at:f.z.string(),updated_at:f.z.string()}).superRefine(SQ),f.z.object({origins:f.z.array(f.z.string()).optional(),allow_credentials:f.z.boolean().optional(),allow_headers:f.z.array(f.z.string()).optional(),allow_methods:f.z.array(f.z.string()).optional(),expose_headers:f.z.array(f.z.string()).optional(),max_age:f.z.number().int().optional()}).refine(e=>!(e.allow_credentials&&e.origins?.includes(`*`)),{message:`Cannot use wildcard origin (*) with allow_credentials`}),f.z.object({username:f.z.string(),password:f.z.string(),realm:f.z.string().optional()}),f.z.object({request:f.z.record(f.z.string(),f.z.string()).optional(),response:f.z.record(f.z.string(),f.z.string()).optional(),remove_request:f.z.array(f.z.string()).optional(),remove_response:f.z.array(f.z.string()).optional()}),f.z.object({ttl_seconds:f.z.number().int().positive()}),f.z.object({client_ip_header:f.z.string().default(`cf-connecting-ip`),set_x_real_ip:f.z.boolean().default(!0),set_x_original_url:f.z.boolean().default(!0)}),f.z.object({upstream_host:f.z.string().optional()}),f.z.object({upstream_origin:f.z.string().optional()}),new Set([`connection`,`keep-alive`,`proxy-authenticate`,`proxy-authorization`,`te`,`trailers`,`transfer-encoding`,`upgrade`]),f.z.object({upstream_url:f.z.string(),preserve_host:f.z.boolean().default(!1),timeout_ms:f.z.number().int().positive().optional()}),f.z.object({binding:f.z.string(),upstream_url:f.z.string().optional(),preserve_host:f.z.boolean().default(!0),timeout_ms:f.z.number().int().positive().optional()}),f.z.object({binding:f.z.string(),script_name:f.z.string(),cpu_ms:f.z.number().int().positive().optional(),subrequests:f.z.number().int().positive().optional(),timeout_ms:f.z.number().int().positive().optional()}),f.z.object({upstream_url:f.z.string().refine(e=>{try{let t=new URL(e);return(t.protocol===`http:`||t.protocol===`https:`)&&!!t.hostname}catch{return!1}},{message:`upstream_url must be a valid http(s) URL with a hostname`}),status:f.z.union([f.z.literal(301),f.z.literal(302),f.z.literal(307),f.z.literal(308)]).default(302),preserve_path:f.z.boolean().default(!0),preserve_query:f.z.boolean().default(!0)}),f.z.object({status:f.z.number().int().default(200),headers:f.z.record(f.z.string(),f.z.string()).optional(),body:f.z.string().optional(),json:f.z.unknown().optional()});var CQ=`proxy:resolve_host`,wQ=new Set([`RS256`,`RS384`,`RS512`,`ES256`,`ES384`,`ES512`]);function TQ(e){return typeof e==`string`&&wQ.has(e)?e:null}function EQ(e){return e.href.replace(/\/$/,``)}function DQ(e,t){try{return EQ(new URL(e))===EQ(new URL(t))}catch{return!1}}var OQ=f.z.object({keys:f.z.array(jr)});function kQ(e){return new URL(`/.well-known/jwks.json`,e).href}async function AQ(e){let{token:t,jwksFetch:n,expectedIssuers:r}=e,i=e.requiredScope??`proxy:resolve_host`,a,o;try{let e=AU(t);a=e.header,o=e.payload}catch{return{ok:!1,reason:`malformed token`}}let s=TQ(a.alg);if(!s)return{ok:!1,reason:`unsupported alg`};if(typeof a.kid!=`string`||a.kid.length===0)return{ok:!1,reason:`missing kid`};if(typeof o.iss!=`string`||!r.some(e=>DQ(o.iss,e)))return{ok:!1,reason:`issuer mismatch`};let c=o.iss,l=kQ(c),u=n??fetch,d;try{d=await u(l)}catch(e){return{ok:!1,reason:`jwks fetch failed: ${e instanceof Error?e.message:`unknown`}`}}if(!d.ok)return{ok:!1,reason:`jwks fetch http ${d.status}`};let f;try{f=await d.json()}catch{return{ok:!1,reason:`jwks body not json`}}let p=OQ.safeParse(f);if(!p.success)return{ok:!1,reason:`jwks body schema mismatch`};let m=p.data.keys.find(e=>e.kid===a.kid);if(!m)return{ok:!1,reason:`unknown kid`};if(m.alg!==s)return{ok:!1,reason:`alg mismatch between jwk and token header`};let h;try{let e=kO(m,s);h=await crypto.subtle.importKey(`jwk`,m,e,!1,[`verify`])}catch{return{ok:!1,reason:`key import failed`}}let g;try{g=await kU(t,h,s)}catch{return{ok:!1,reason:`signature verification failed`}}let _=g.scope;return(typeof _==`string`?_.split(/\s+/).filter(Boolean):[]).includes(i)?{ok:!0}:{ok:!1,reason:`missing required scope`}}var jQ=f.z.discriminatedUnion(`entity`,[f.z.object({event_id:f.z.string(),tenant_id:f.z.string(),entity:f.z.literal(`custom_domain`),op:f.z.enum([`created`,`updated`,`deleted`]),aggregate_id:f.z.string(),payload:bn,occurred_at:f.z.string()}),f.z.object({event_id:f.z.string(),tenant_id:f.z.string(),entity:f.z.literal(`proxy_route`),op:f.z.enum([`created`,`updated`,`deleted`]),aggregate_id:f.z.string(),payload:Oi,occurred_at:f.z.string()})]),MQ=f.z.object({events:f.z.array(jQ).min(1)});function NQ(e){let t=e.headers.get(`authorization`);return t?/^Bearer\s+(\S+)$/i.exec(t)?.[1]??null:null}function PQ(e){let t=new p.Hono;async function n(t){let n=NQ(t.req.raw);if(!n)return{ok:!1,reason:`missing bearer token`};let r=`https://${t.req.header(`x-forwarded-host`)??new URL(t.req.url).host}/`,i=Array.from(new Set([t.env.ISSUER,r]));return AQ({token:n,jwksFetch:e.jwksFetch,expectedIssuers:i,requiredScope:CQ})}if(t.get(`/hosts/:host`,async t=>{let r=await n(t);if(!r.ok)return console.warn(`[proxy/control-plane] authentication failed: ${r.reason}`),t.text(`Unauthorized`,401,{"WWW-Authenticate":`Bearer`});let i=t.req.param(`host`);if(!i)return t.text(`Missing host`,400);let a=await e.resolveHost(i);return a?t.json(a):t.text(`Unknown host`,404)}),e.applySyncEvents){let r=e.applySyncEvents;t.post(`/sync`,async e=>{let t=await n(e);if(!t.ok)return console.warn(`[proxy/control-plane/sync] authentication failed: ${t.reason}`),e.text(`Unauthorized`,401,{"WWW-Authenticate":`Bearer`});let i;try{i=await e.req.json()}catch{return e.text(`Invalid JSON`,400)}let a=MQ.safeParse(i);if(!a.success)return e.json({error:`Invalid sync request`,details:a.error.issues},400);try{return await r(a.data.events),e.body(null,204)}catch(t){if(typeof t==`object`&&t&&t.retryable===!0)throw t;let n=t instanceof Error?t:Error(String(t));return console.error(`[proxy/control-plane/sync] applySyncEvents failed:`,n),e.json({error:`Failed to apply sync events`,message:n.message,kind:n.name,retryable:!1},500)}})}return t}function FQ(e){let{customDomains:t,proxyRoutes:n}=e;async function r(e){if(e.entity===`custom_domain`){await IQ(t,e);return}if(!n)throw Error(`proxy_route sync event received but no proxyRoutes adapter is configured`);await RQ(n,e)}return async e=>{for(let t of e)await r(t)}}async function IQ(e,t){if(t.op===`deleted`){try{await e.remove(t.tenant_id,t.aggregate_id)}catch(e){if(!BQ(e))throw e}return}let n=LQ(t.payload);if(t.op===`created`)try{await e.create(t.tenant_id,n);return}catch(e){if(!zQ(e))throw e}await e.update(t.tenant_id,t.aggregate_id,t.payload)||await e.create(t.tenant_id,n)}function LQ(e){let{tls_policy:t,...n}=e;return{...n,tls_policy:t===`recommended`?`recommended`:void 0}}async function RQ(e,t){if(t.op===`deleted`){try{await e.remove(t.tenant_id,t.aggregate_id)}catch(e){if(!BQ(e))throw e}return}if(t.op===`created`)try{await e.create(t.tenant_id,t.payload);return}catch(e){if(!zQ(e))throw e}await e.update(t.tenant_id,t.aggregate_id,t.payload)||await e.create(t.tenant_id,t.payload)}function zQ(e){let t=e instanceof Error?e.message:String(e);return t.includes(`UNIQUE constraint failed`)||t.includes(`Duplicate entry`)||t.includes(`PRIMARY KEY`)}function BQ(e){return(e instanceof Error?e.message:String(e)).toLowerCase().includes(`not found`)}var VQ=e=>{let t={origin:`*`,allowMethods:[`GET`,`HEAD`,`PUT`,`POST`,`DELETE`,`PATCH`],allowHeaders:[],exposeHeaders:[],...e},n=(e=>typeof e==`string`?e===`*`?()=>e:t=>e===t?t:null:typeof e==`function`?e:t=>e.includes(t)?t:null)(t.origin),r=(e=>typeof e==`function`?e:Array.isArray(e)?()=>e:()=>[])(t.allowMethods);return async function(e,i){function a(t,n){e.res.headers.set(t,n)}let o=await n(e.req.header(`origin`)||``,e);if(o&&a(`Access-Control-Allow-Origin`,o),t.credentials&&a(`Access-Control-Allow-Credentials`,`true`),t.exposeHeaders?.length&&a(`Access-Control-Expose-Headers`,t.exposeHeaders.join(`,`)),e.req.method===`OPTIONS`){t.origin!==`*`&&a(`Vary`,`Origin`),t.maxAge!=null&&a(`Access-Control-Max-Age`,t.maxAge.toString());let n=await r(e.req.header(`origin`)||``,e);n.length&&a(`Access-Control-Allow-Methods`,n.join(`,`));let i=t.allowHeaders;if(!i?.length){let t=e.req.header(`Access-Control-Request-Headers`);t&&(i=t.split(/\s*,\s*/))}return i?.length&&(a(`Access-Control-Allow-Headers`,i.join(`,`)),e.res.headers.append(`Vary`,`Access-Control-Request-Headers`)),e.res.headers.delete(`Content-Length`),e.res.headers.delete(`Content-Type`),new Response(null,{headers:e.res.headers,status:204,statusText:`No Content`})}await i(),t.origin!==`*`&&e.header(`Vary`,`Origin`,{append:!0})}};async function HQ(e,t){let{client_id:n}=t,{tenant_id:r}=t;if(!r){let t=await e.env.data.clients.getByClientId(n);if(!t)throw new B(403,{message:`Client not found`});r=t.tenant_id}let i=e.var.tenant_id,a=e.var.client_id;e.set(`tenant_id`,r),e.set(`client_id`,n);try{let[t,i]=await Promise.all([e.env.data.tenants.get(r),e.env.data.clients.get(r,n)]);if(!t)throw new B(404,{message:`Tenant not found`});if(!i)throw new B(403,{message:`Client not found`});return{tenant:t,client:i}}catch(t){throw e.set(`tenant_id`,i),e.set(`client_id`,a),t}}function UQ(e,t){let n=e.var.tenant_id;if(!n){e.set(`tenant_id`,t);return}if(n!==t)throw new m(403,{message:`Tenant mismatch`})}var WQ=`try_connection_result`;function GQ(e){if(!e)return{};try{let t=JSON.parse(e);return typeof t==`object`&&t?t:{}}catch{return{}}}async function KQ(e,t,n,r){let i={...GQ(n.state_data),[WQ]:r};await e.env.data.loginSessions.update(t,n.id,{state_data:JSON.stringify(i)});let a=n.authParams.redirect_uri;if(!a)return new Response(JSON.stringify(r,null,2),{status:r.status===`success`?200:400,headers:{"content-type":`application/json`}});let o=new URL(a);return o.searchParams.set(`state`,n.id),new Response(null,{status:302,headers:{location:o.href}})}function qQ(e){return GQ(e.state_data).try_connection_result??null}async function JQ(e,t,n,r,i){if(!r.state)throw new B(400,{message:`State not found`});let a=t.connections.find(e=>e.name===n);if(!a)throw e.set(`client_id`,t.client_id),await I(e,t.tenant.id,{type:P.FAILED_LOGIN,description:`Connection not found`}),new B(403,{message:`Connection Not Found`});let o=i===void 0?await e.env.data.loginSessions.get(t.tenant.id,r.state):i;if(!o){let n=e.get(`ip`),i=e.get(`useragent`),a=e.get(`auth0_client`);o=await e.env.data.loginSessions.create(t.tenant.id,{expires_at:new Date(Date.now()+SD*1e3).toISOString(),authParams:r,csrf_token:To(),ip:n,useragent:i,auth0Client:GV(a)})}let s=await qp(e,a.strategy).getRedirect(e,a,r.username);return await e.env.data.codes.create(t.tenant.id,{login_id:o.id,code_id:s.code,code_type:`oauth2_state`,connection_id:a.id,code_verifier:s.codeVerifier,expires_at:new Date(Date.now()+300*1e3).toISOString()}),new Response(null,{status:302,headers:{location:s.redirectUrl}})}async function YQ(e,{code:t,state:n}){let{env:r}=e,i=await r.data.codes.get(e.var.tenant_id||``,n,`oauth2_state`);if(!i||!i.connection_id)throw new B(403,{message:`State not found`});let a=await r.data.loginSessions.get(e.var.tenant_id||``,i.login_id);if(!a)throw new B(403,{message:`Session not found`});let o=a.authParams.client_id;o&&!mD(o)&&await HQ(e,{client_id:o,tenant_id:e.var.tenant_id||void 0}).catch(()=>{});let s=await bk(r,a.authParams.client_id);e.set(`client_id`,s.client_id),UQ(e,s.tenant.id);let c=jD(s.client_id),l=i.connection_id,u=s.connections.find(e=>e.id===l);if(!u){if(await I(e,s.tenant.id,{type:P.FAILED_LOGIN,description:`Connection not found`}),c)return KQ(e,s.tenant.id,a,{status:`error`,connection_id:l,error:`connection_not_found`,error_description:`Connection not found`,completed_at:new Date().toISOString()});throw new B(403,{message:`Connection not found`})}if(e.set(`connection`,u.name),!a.authParams.redirect_uri)throw await I(e,s.tenant.id,{type:P.FAILED_LOGIN,description:`Redirect URI not defined`}),new B(403,{message:`Redirect URI not defined`});let d=qp(e,u.strategy);if(c){let n=new Date().toISOString();try{let r=d.validateAuthorizationCodeAndGetUserWithRaw?await d.validateAuthorizationCodeAndGetUserWithRaw(e,u,t,i.code_verifier):{userinfo:await d.validateAuthorizationCodeAndGetUser(e,u,t,i.code_verifier),raw:null};return e.set(`user_id`,r.userinfo.sub),KQ(e,s.tenant.id,a,{status:`success`,connection_id:l,connection_name:u.name,strategy:u.strategy,userinfo:r.userinfo,raw:r.raw,completed_at:n})}catch(t){let r=t instanceof Error?t.message:`Strategy validation failed`;return await I(e,s.tenant.id,{type:P.FAILED_LOGIN,description:`Try connection failed: ${r}`}),KQ(e,s.tenant.id,a,{status:`error`,connection_id:l,connection_name:u.name,strategy:u.strategy,error:`strategy_error`,error_description:r,completed_at:n})}}let f=await d.validateAuthorizationCodeAndGetUser(e,u,t,i.code_verifier),{sub:p,...m}=f;e.set(`user_id`,p);let h=f.email?.toLocaleLowerCase()||`${u.name}.${p}@${new URL(e.env.ISSUER).hostname}`;e.set(`username`,h);let g=Jp.has(u.strategy),_=g?`enterprise`:wa.SOCIAL,v=!g;return nre(e,{client:s,loginSession:a,user:await yu(e,{client:s,username:h,provider:Yp(u),connection:u.name,userId:p,profileData:m,isSocial:v,ip:e.var.ip,set_user_root_attributes:u.options.set_user_root_attributes}),authConnection:u.name,authStrategy:{strategy:u.strategy,strategy_type:_}})}function XQ(e,t,n){let r=new URL(`/u/error`,Fa(e.env,e.var.custom_domain));return LM(r,{error:t,error_description:n}),e.redirect(r.toString())}async function ZQ(e,t,n,r,i,a){let o=await e.env.data.codes.get(e.var.tenant_id||``,t,`oauth2_state`);if(!o)return XQ(e,`state_not_found`);let s=await e.env.data.loginSessions.get(e.var.tenant_id,o.login_id);if(!s)return XQ(e,`session_not_found`);let{redirect_uri:c}=s.authParams;if(!c)throw new m(400,{message:`Redirect uri not found`});a||I(e,e.var.tenant_id,{type:P.FAILED_LOGIN,description:`Failed connection login: ${i} ${n}, ${r}`});let l=`/u`,u=`/login/identifier`;if(s.authParams.client_id)try{let t=await bk(e.env,s.authParams.client_id,e.var.tenant_id);if(t?.client_metadata?.universal_login_version===`2`){l=`/u2`;let n=await e.env.data.promptSettings.get(e.var.tenant_id),r=wi.parse(n||{}),i=t.connections.some(e=>e.strategy===F.USERNAME_PASSWORD);r.identifier_first===!1&&i&&(u=`/login`)}}catch{}let d=new URL(`${l}${u}`,Fa(e.env,e.var.custom_domain));return LM(d,{state:s.id,error:n,error_description:r}),e.redirect(d.toString())}function QQ(e){if(e instanceof Error){if(`code`in e&&`description`in e){let t=e;return t.description?`${t.code}: ${t.description}`:t.code}if(`status`in e){let t=e;return`${e.message} (status: ${t.status})`}return e.message}return String(e)}async function $Q(e,t){let{state:n,code:r,error:i,error_description:a,error_code:o}=t;if(i)return ZQ(e,n,i,a,o);if(!r)throw new m(400,{message:`Code is required`});try{let t=await YQ(e,{code:r,state:n});if(!(t instanceof Response))throw new m(500,{message:`Internal server error`});return t}catch(t){if(t instanceof B){if(t.status===403)return XQ(e,`state_not_found`);if(t.status===400){let r=await e.env.data.codes.get(e.var.tenant_id||``,n,`oauth2_state`);if(r&&await e.env.data.loginSessions.get(e.var.tenant_id,r.login_id)){let r=`access_denied`,i=`access_denied`;try{let e=JSON.parse(t.message);r=e.error_description||e.message||r,i=e.error||i}catch{r=t.message||r}return ZQ(e,n,i,r)}}}if(t instanceof m)throw t;let r=QQ(t);return I(e,e.var.tenant_id,{type:P.FAILED_LOGIN,description:`Connection callback failed: ${r}`}),ZQ(e,n,`connection_error`,`Connection failed`,void 0,!0)}}var e$=f.z.object({state:f.z.string(),code:f.z.string().optional(),scope:f.z.string().optional(),hd:f.z.string().optional(),error:f.z.string().optional(),error_description:f.z.string().optional(),error_code:f.z.string().optional(),error_reason:f.z.string().optional()});function t$(e){return new f.OpenAPIHono().openapi((0,f.createRoute)({tags:[`oauth2`],method:`get`,path:`/`,operationId:`${e.operationIdPrefix}Get`,deprecated:e.deprecated,request:{query:e$},responses:{302:{description:`Redirect to the client's redirect uri`},400:{description:`Bad Request`,content:{"application/json":{schema:f.z.object({message:f.z.string()})}}},500:{description:`Internal Server Error`,content:{"application/json":{schema:f.z.object({message:f.z.string()})}}}}}),async e=>$Q(e,e.req.valid(`query`))).openapi((0,f.createRoute)({tags:[`oauth2`],method:`post`,path:`/`,operationId:`${e.operationIdPrefix}Post`,deprecated:e.deprecated,request:{body:{content:{"application/x-www-form-urlencoded":{schema:e$}}}},responses:{302:{description:`Redirect to the client's redirect uri`},400:{description:`Bad Request`,content:{"application/json":{schema:f.z.object({message:f.z.string()})}}},500:{description:`Internal Server Error`,content:{"application/json":{schema:f.z.object({message:f.z.string()})}}}}}),async e=>$Q(e,e.req.valid(`form`)))}var n$=t$({operationIdPrefix:`callback`,deprecated:!0}),r$=t$({operationIdPrefix:`loginCallback`});function i$(e,t=[],n={}){try{let r=new URL(e);return t.some(e=>{try{return a$(r,new URL(e),n)}catch{return!1}})}catch{return!1}}function a$(e,t,n={}){if(e.protocol!==t.protocol)return!1;if(n.allowPathWildcards&&t.pathname.includes(`*`)){let n=t.pathname.replace(/\*/g,`.*`).replace(/\//g,`\\/`);if(!RegExp(`^${n}$`).test(e.pathname))return!1}else if(e.pathname!==t.pathname)return!1;if(t.search){for(let[n,r]of t.searchParams)if(e.searchParams.get(n)!==r)return!1}if(n.allowSubDomainWildcards&&t.hostname.startsWith(`*.`)&&t.hostname.split(`.`).length>2&&[`http:`,`https:`].includes(t.protocol)){let n=t.hostname.split(`.`).slice(1).join(`.`);return e.hostname===n||e.hostname.endsWith(`.`+n)}return e.hostname===t.hostname}var o$=L({route:(0,f.createRoute)({tags:[`oauth2`],method:`get`,path:`/`,request:{query:f.z.object({client_id:f.z.string(),returnTo:f.z.string().optional()}),header:f.z.object({cookie:f.z.string().optional()})},responses:{302:{description:`Log the user out`}}}),handler:async e=>{let{client_id:t,returnTo:n}=e.req.valid(`query`);mD(t)||await HQ(e,{client_id:t}).catch(()=>{});let r;try{r=await bk(e.env,t)}catch{return e.text(`OK`)}let i;try{i=await bk(e.env,`DEFAULT_CLIENT`)}catch{}e.set(`client_id`,t),UQ(e,r.tenant.id);let a=n||e.req.header(`referer`);if(!a)return e.text(`OK`);if(!i$(a,[...r.allowed_logout_urls||[],...i?.allowed_logout_urls||[]],{allowPathWildcards:!0,allowSubDomainWildcards:!0}))throw I(e,r.tenant.id,{type:P.FAILED_LOGOUT,description:`Invalid redirect uri`}),new m(400,{message:`Invalid redirect uri`});let o=e.req.header(`cookie`);if(o){let t=zO(r.tenant.id,o);if(t){let n=await e.env.data.sessions.get(r.tenant.id,t);if(n){let i=await e.env.data.users.get(r.tenant.id,n.user_id);i&&(e.set(`user_id`,i.user_id),e.set(`connection`,i.connection));let a=new Date().toISOString(),{revokedCount:o,committedEventId:s}=await e.env.data.transaction(async i=>{let o=n.login_session_id?await i.refreshTokens.revokeByLoginSession(r.tenant.id,n.login_session_id,a):0;return await i.sessions.update(r.tenant.id,t,{revoked_at:a}),{revokedCount:o,committedEventId:o>0?await $a(e,i,r.tenant.id,{type:P.SUCCESS_REVOCATION,description:`Revoked ${o} refresh token(s)`}):void 0}});if(s){let t=e.var.outboxEventPromises??[];t.push(Promise.resolve(s)),e.set(`outboxEventPromises`,t)}else o>0&&I(e,r.tenant.id,{type:P.SUCCESS_REVOCATION,description:`Revoked ${o} refresh token(s)`})}}}I(e,r.tenant.id,{type:P.SUCCESS_LOGOUT,description:`User successfully logged out`});let s=new Headers;return BO(r.tenant.id,e.var.host).forEach(e=>{s.append(`set-cookie`,e)}),s.set(`location`,a),new Response(`Redirecting`,{status:302,headers:s})}}),s$=new f.OpenAPIHono().openapiRoutes([o$]),c$=f.z.object({id_token_hint:f.z.string().optional(),client_id:f.z.string().optional(),post_logout_redirect_uri:f.z.string().optional(),state:f.z.string().optional(),logout_hint:f.z.string().optional(),ui_locales:f.z.string().optional()}),l$=`<!DOCTYPE html>
|
|
2941
2941
|
<html lang="en">
|
|
2942
2942
|
<head>
|
|
2943
2943
|
<meta charset="utf-8" />
|
|
@@ -2965,7 +2965,7 @@ From `+this.originalError.stack)}static is(e){return e?.[BF]===`LiquidError`}},H
|
|
|
2965
2965
|
@media (prefers-color-scheme: dark) {
|
|
2966
2966
|
body { --text-on-primary: ${o}; }
|
|
2967
2967
|
}`}
|
|
2968
|
-
`},n2=`https://assets.sesamy.com/images/login-bg.jpg`,r2=({title:e,children:t,theme:n,branding:r,client:i})=>{let a={backgroundImage:`url(${n?.page_background?.background_image_url||n2})`};return z(`html`,{lang:j.language||`en`,children:[z(`head`,{children:[z(`title`,{children:e}),z(`meta`,{charset:`UTF-8`}),z(`meta`,{name:`robots`,content:`noindex, follow`}),z(`link`,{rel:`preload`,href:`https://assets.sesamy.com/fonts/khteka/WOFF2/KHTeka-Regular.woff2`,as:`font`,type:`font/woff2`,crossOrigin:`anonymous`}),z(`link`,{rel:`preload`,href:`https://assets.sesamy.com/fonts/khteka/WOFF2/KHTeka-Medium.woff2`,as:`font`,type:`font/woff2`,crossOrigin:`anonymous`}),z(`link`,{rel:`preload`,href:`https://assets.sesamy.com/fonts/khteka/WOFF2/KHTeka-Bold.woff2`,as:`font`,type:`font/woff2`,crossOrigin:`anonymous`}),z(`link`,{rel:`stylesheet`,href:`/u/css/tailwind.css?v=${Go}`}),z(`meta`,{name:`viewport`,content:`width=device-width, initial-scale=1, maximum-scale=1`}),z(`style`,{children:t2(n,r)}),z(`meta`,{name:`theme-color`,content:`#000000`}),r?.favicon_url&&z(`link`,{rel:`icon`,type:`image/x-icon`,href:r.favicon_url})]}),z(`body`,{children:[z(`div`,{className:`row min-h-full w-full overflow-hidden bg-cover bg-center text-sm sm:bg-fixed sm:bg-left-top sm:pt-16 py-2`,style:a,children:z(`div`,{className:`row-up-left w-[calc(100%-theme(space.2)-theme(space.2))] max-w-[1295px] !flex-nowrap sm:w-[calc(100%-theme(space.16)-theme(space.16))]`,children:z(`div`,{className:`column-left w-full sm:w-auto`,children:[z(`div`,{className:`relative flex w-full flex-col rounded-2xl bg-white px-5 py-10 dark:bg-gray-800 dark:text-white sm:min-h-[700px] sm:max-w-md sm:px-14 sm:py-14 md:min-w-[448px] short:min-h-[558px] min-h-[calc(100vh-83px)]`,children:[z(`div`,{className:`mb-16`,children:z(W0,{theme:n,branding:r})}),z(`div`,{className:`flex flex-1 flex-col`,children:[t,z(G0,{theme:n,branding:r,client:i})]})]}),z(`div`,{className:`flex w-full items-center px-6 pb-8 pt-4 justify-between`,children:[z(`div`,{className:`flex justify-center leading-[0]`,children:z(`a`,{href:`https://sesamy.com`,target:`_blank`,rel:`noreferrer`,children:z(J0,{name:`sesamy`,className:`text-xl text-white`})})}),z(`div`,{className:`flex justify-center space-x-2 text-xs text-white sm:justify-normal md:text-xs`})]})]})})}),z(`div`,{id:`client-root`})]}),z(`script`,{type:`module`,src:`/u/js/client.js?v=${Go}`})]})},i2=({children:e,className:t})=>z(`div`,{className:(0,K0.default)(`mb-2 text-sm text-red`,t),children:e}),a2=e=>e===`small`?`text-base`:e===`medium`?`text-2xl`:e===`large`?`text-3xl`:``,o2=({size:e})=>{let t=a2(e);return z(`div`,{className:`relative inline-block leading-[0]`,children:[z(J0,{className:(0,K0.default)(`text-gray-200 dark:text-[#201a41]`,{[t]:t}),name:`spinner-circle`}),z(J0,{className:(0,K0.default)(`absolute inset-0 animate-spin text-primary`,{[t]:t}),name:`spinner-inner`})]})},s2=({children:e,className:t,Component:n=`button`,variant:r=`primary`,href:i,disabled:a,isLoading:o,id:s})=>{let c=n===`a`?{href:i}:{};return z(n,{class:(0,K0.default)(`btn relative w-full rounded-lg text-center`,{"px-4 py-5":r!==`custom`,"bg-primary text-textOnPrimary hover:bg-primaryHover":r===`primary`,"border border-gray-300 bg-white text-black":r===`secondary`,"pointer-events-none cursor-not-allowed opacity-40":a,"is-loading":o},`focus:outline-none focus:ring`,t),type:`submit`,disabled:a,id:s,...c,children:[z(`span`,{className:`btn-label flex items-center justify-center space-x-2`,children:e}),z(`div`,{className:`btn-spinner absolute left-0 top-0 flex h-full w-full items-center justify-center`,children:z(o2,{size:`medium`})})]})},c2=({connection:e,text:t,icon:n=null,canResize:r=!1,loginSession:i})=>{let a=new URLSearchParams({client_id:i.authParams.client_id,connection:e});a.set(`response_type`,i.authParams.response_type||`code`),i.authParams.redirect_uri&&a.set(`redirect_uri`,i.authParams.redirect_uri),i.authParams.scope&&a.set(`scope`,i.authParams.scope),i.authParams.nonce&&a.set(`nonce`,i.authParams.nonce),i.authParams.state&&a.set(`state`,i.id);let o=`/authorize?${a.toString()}`;return z(s2,{className:(0,K0.default)(`border border-gray-400 bg-white hover:bg-gray-100 dark:border-gray-500 dark:bg-black dark:hover:bg-black/90`,{"px-0 py-3 sm:px-10 sm:py-4 short:px-0 short:py-3":r,"px-10 py-3":!r}),variant:`custom`,"aria-label":t,Component:`a`,href:o,children:[n||``,z(`div`,{className:(0,K0.default)(`text-left text-black dark:text-white sm:text-base`,{"hidden sm:inline short:hidden":r}),children:t})]})},l2=({children:e,className:t})=>z(`form`,{id:`form`,method:`post`,className:t,children:e}),u2=({error:e,theme:t,branding:n,loginSession:r,email:i,client:a,isEmbedded:o,browserName:s})=>{let c=a.connections.map(({strategy:e})=>e),l=c.includes(F.EMAIL)||c.includes(F.USERNAME_PASSWORD),u=c.includes(F.SMS),d=Na(a.connections.find(e=>e.strategy===F.USERNAME_PASSWORD)).usernameIdentifierActive,f=new Set([F.EMAIL,F.SMS,F.USERNAME_PASSWORD]),p=a.connections.filter(e=>!f.has(e.strategy)).filter(e=>{if(e.show_as_button===!1)return!1;if(e.show_as_button===!0)return!0;let t=e.options?.domain_aliases;return!(t&&t.length>0)}).map(e=>{let t=Kp[e.strategy];return t?{...t,connectionName:e.name,displayName:e.display_name||t.displayName||e.name,iconUrl:e.options.icon_url}:null}).filter(e=>e!==null).filter(e=>!(o&&e.disableEmbeddedBrowsers)),m=l||u,h=l&&!u&&!d?`email`:`text`,g=l&&u?`email_or_phone_placeholder`:l&&d?`email_or_username_placeholder`:d?`username_placeholder`:l?`email_placeholder`:`phone_placeholder`,_=j.t(g,l&&u?`Email or Phone Number`:l&&d?`Email address or Username`:d?`Username`:l?`Email Address`:`Phone Number`);return z(r2,{title:j.t(`welcome`),theme:t,branding:n,client:a,children:[z(`div`,{id:`incognito-warning-container`,className:`mb-4 hidden rounded-md border border-yellow-200 bg-yellow-50 p-4 text-sm text-yellow-800 dark:border-yellow-900 dark:bg-yellow-900/20 dark:text-yellow-100`,role:`alert`,children:z(`div`,{className:`flex items-start gap-3`,children:[z(`span`,{className:`text-lg leading-none`,children:`⚠️`}),z(`div`,{children:[z(`strong`,{children:j.t(`incognito_mode_detected`,`Incognito Mode Detected`)}),z(`p`,{className:`mt-1 text-xs opacity-90`,children:j.t(`incognito_mode_warning`,`You are in incognito/private mode. Session data may not persist across page refreshes. Some features might not work as expected.`)})]})]})}),o&&z(`div`,{className:`mb-4 rounded-md border border-orange-200 bg-orange-50 p-4 text-sm text-orange-800 dark:border-orange-900 dark:bg-orange-900/20 dark:text-orange-100`,role:`alert`,children:z(`div`,{className:`flex items-start gap-3`,children:[z(`span`,{className:`text-lg leading-none`,children:`⚠️`}),z(`div`,{children:[z(`strong`,{children:j.t(`embedded_browser_detected`)}),z(`p`,{className:`mt-1 text-xs opacity-90`,children:j.t(`embedded_browser_warning`,{browserName:s||`app`})})]})]})}),z(`div`,{className:`mb-4 text-lg font-medium sm:text-2xl`,children:j.t(`welcome`)}),z(`div`,{className:`mb-8 text-gray-300`,children:m?j.t(`login_description_template`,{authMethod:j.t(g,{defaultValue:l&&u?`email or phone number`:l&&d?`email address or username`:l?`email address`:`phone number`}).toLocaleLowerCase(),defaultValue:`Sign in with your {{authMethod}}`}):j.t(`login_description_social_only`,`Choose how to login`)}),z(`div`,{className:`flex flex-1 flex-col justify-center`,children:[m&&z(l2,{className:`mb-7`,children:[z(`input`,{type:h,name:`username`,placeholder:_,className:(0,K0.default)(`mb-2 w-full rounded-lg border bg-gray-100 px-4 py-5 text-base lowercase placeholder:normal-case placeholder:text-gray-300 dark:bg-gray-600 md:text-base`,{"border-red":e,"border-gray-100 dark:border-gray-500":!e}),required:!0,value:i||``}),e&&z(i2,{children:e}),z(s2,{className:`sm:mt-4 !text-base`,children:[z(`span`,{children:j.t(`continue`)}),z(J0,{className:`text-xs`,name:`arrow-right`})]})]}),m&&p.length>0&&z(`div`,{className:`relative mb-5 block text-center text-gray-300 dark:text-gray-300`,children:[z(`div`,{className:`absolute left-0 right-0 top-1/2 border-b border-gray-200 dark:border-gray-600`}),z(`div`,{className:`relative inline-block bg-white px-2 dark:bg-gray-800`,children:j.t(`continue_social_login`)})]}),z(`div`,{className:`flex space-x-4 sm:flex-col sm:space-x-0 sm:space-y-4 short:flex-row short:space-x-4 short:space-y-0`,children:p.map(e=>{let t=e.iconUrl||e.logoDataUri;return z(c2,{connection:e.connectionName,text:j.t(`continue_with`,{provider:e.displayName}),canResize:!0,icon:t?z(`img`,{src:t,alt:e.displayName,className:`h-5 w-5 sm:absolute sm:left-4 sm:top-1/2 sm:h-6 sm:w-6 sm:-translate-y-1/2 short:static short:left-auto short:top-auto short:h-5 short:w-5 short:translate-y-0`}):null,loginSession:r},e.connectionName)})})]})]})};function d2(e,t,n){let r=e.lastIndexOf(`@`);if(r<0)return;let i=e.slice(r+1).trim().toLowerCase();if(!i)return;let a=t.filter(e=>{if(!(e.strategy in Kp||n!==void 0&&e.strategy in n))return!1;let t=e.options?.domain_aliases;return t?.length?t.some(e=>e.trim().toLowerCase()===i):!1});return a.length===1?a[0]:void 0}var f2=class{parse(e){let t=this.detectEmbedded(e);return{browser:t.browser,isEmbedded:t.isEmbedded}}detectEmbedded(e){for(let[t,n]of[[/wv\)/i,`WebView`],[/GSA\//i,`Google Search App`],[/FBAN\//i,`Facebook`],[/FBAV\//i,`Facebook`],[/Instagram/i,`Instagram`],[/Snapchat/i,`Snapchat`],[/TikTok/i,`TikTok`],[/Twitter/i,`Twitter/X`],[/LinkedIn/i,`LinkedIn`],[/UC Browser/i,`UC Browser`],[/SamsungBrowser/i,`Samsung Internet`],[/Electron/i,`Electron`],[/Tauri/i,`Tauri`]])if(t.test(e))return{isEmbedded:!0,browser:{name:n}};return{isEmbedded:!1}}};function p2(e){let t=new f2().parse(e);return{isEmbedded:t.isEmbedded??!1,browserName:t.browser?.name}}var m2=L({route:(0,f.createRoute)({tags:[`login`],method:`get`,path:`/`,request:{query:f.z.object({state:f.z.string().openapi({description:`The state parameter from the authorization request`}),impersonation:f.z.string().optional(),error:f.z.string().optional().openapi({description:`Error code from failed authentication`}),error_description:f.z.string().optional().openapi({description:`Human-readable error description`})})},responses:{200:{description:`Response`}}}),handler:async e=>{let{state:t,error:n,error_description:r}=e.req.valid(`query`),{theme:i,branding:a,loginSession:o,client:s}=await B0(e,t),{isEmbedded:c,browserName:l}=p2(e.req.header(`user-agent`)||``),u=r||n;return e.html(z(u2,{theme:i,branding:a,loginSession:o,client:s,email:o.authParams.username,isEmbedded:c,browserName:l,error:u}))}}),h2=L({route:(0,f.createRoute)({tags:[`login`],method:`post`,path:`/`,request:{query:f.z.object({state:f.z.string().openapi({description:`The state parameter from the authorization request`})}),body:{content:{"application/x-www-form-urlencoded":{schema:f.z.object({username:f.z.string().transform(e=>e.toLowerCase()),login_selection:f.z.enum([`code`,`password`]).optional()})}}}},responses:{400:{description:`Error response`},302:{description:`Redirect to enter code or password`}}}),handler:async e=>{let{env:t}=e,{state:n}=e.req.valid(`query`),r=e.req.valid(`form`);e.set(`body`,r),e.set(`username`,r.username);let{client:i,loginSession:a,theme:o,branding:s}=await B0(e,n);e.set(`client_id`,i.client_id);let{isEmbedded:c,browserName:l}=p2(e.req.header(`user-agent`)||``),u=e.get(`countryCode`),{normalized:d,connectionType:f}=iF(r.username,u);if(f===`email`&&d){let n=d2(d,i.connections,t.STRATEGIES);if(n)return a.authParams.username=d,await t.data.loginSessions.update(i.tenant.id,a.id,a),JQ(e,i,n.name,a.authParams)}let p=Na(i.connections.find(e=>e.strategy===F.USERNAME_PASSWORD)),h=p.usernameIdentifierActive;if(f===`username`&&h&&d){let t=p.usernameMinLength,n=p.usernameMaxLength;if(d.length<t||d.length>n){let u=d.length<t?`Username must be at least ${t} characters`:`Username must be ${n} characters or less`;return e.html(z(u2,{theme:o,branding:s,loginSession:a,error:u,email:r.username,client:i,isEmbedded:c,browserName:l}),400)}}let g=d?f===`email`?await hu({userAdapter:t.data.users,tenant_id:i.tenant.id,email:d}):f===`username`?await rm({env:t,tenant_id:i.tenant.id,username:d}):await _u({userAdapter:t.data.users,tenant_id:i.tenant.id,username:d,provider:`sms`}):null,_=i.connections.find(e=>e.strategy===f)||f===`username`&&h||g,v=!1;if(!_&&f===`email`&&d&&i.connections.some(e=>e.strategy===F.USERNAME_PASSWORD&&e.options?.import_mode===!0&&typeof e.options?.configuration==`object`&&e.options.configuration!==null)&&(_=!0,v=!0),!_||!d)return e.html(z(u2,{theme:o,branding:s,loginSession:a,error:`Email is not valid.`,email:r.username,client:i}),400);if(g&&e.set(`user_id`,g.user_id),!g&&!v){let t=await Zk(e,i,e.env.data,d,f);if(!t.allowed)return await I(e,i.tenant.id,{type:P.FAILED_SIGNUP,description:t.reason||`User account does not exist`}),e.html(z(u2,{theme:o,branding:s,loginSession:a,error:j.t(`user_account_does_not_exist`),email:r.username,client:i,isEmbedded:c,browserName:l}),400)}if(a.authParams.username=d,await t.data.loginSessions.update(i.tenant.id,a.id,a),await U0(e,i,r.username,f,r.login_selection)===`password`)return e.redirect(`/u/enter-password?state=${n}`);let y=KV(),b=await t.data.codes.get(i.tenant.id,y,`otp`);for(;b;)y=KV(),b=await t.data.codes.get(i.tenant.id,y,`otp`);let x=await e.env.data.codes.create(i.tenant.id,{code_id:y,code_type:`otp`,login_id:a.id,expires_at:new Date(Date.now()+wD).toISOString(),redirect_uri:a.authParams.redirect_uri}),S=i.connections.find(e=>e.strategy===f);if(!S)throw new m(400,{message:j.t(`connection_not_found`,{connection:f})});let C=a.authParams?.ui_locales?.split(` `)?.map(e=>e.split(`-`)[0])[0];f===`email`&&S.options.authentication_method===`magic_link`?await zV(e,{to:d,code:x.code_id,authParams:a.authParams,language:C}):await RV(e,{to:d,code:x.code_id,language:C});let w=f===`sms`?`sms-otp-challenge`:`email-otp-challenge`;return e.redirect(`/u/login/${w}?state=${n}`)}}),g2=new f.OpenAPIHono().openapiRoutes([m2,h2]),_2=e=>z(`a`,{className:`block text-primary hover:text-primaryHover text-center`,href:`/u/login/identifier?state=${e.state}`,children:j.t(`go_back`)}),v2=`_hp`,y2={Change:`Input`,DoubleClick:`DblClick`},b2={svg:`2000/svg`,math:`1998/Math/MathML`},x2=[],S2=new WeakMap,C2=void 0,w2=()=>C2,T2=e=>`t`in e,E2={onClick:[`click`,!1]},D2=e=>{if(!e.startsWith(`on`))return;if(E2[e])return E2[e];let t=e.match(/^on([A-Z][a-zA-Z]+?(?:PointerCapture)?)(Capture)?$/);if(t){let[,n,r]=t;return E2[e]=[(y2[n]||n).toLowerCase(),!!r]}},O2=(e,t)=>C2&&e instanceof SVGElement&&/[A-Z]/.test(t)&&(t in e.style||t.match(/^(?:o|pai|str|u|ve)/))?t.replace(/([A-Z])/g,`-$1`).toLowerCase():t,k2=e=>e==null||e===!1?null:e,A2=(e,t)=>{`value`in t&&(e.value=k2(t.value),!e.multiple&&e.selectedIndex===-1&&(e.selectedIndex=0))},j2=e=>e instanceof DOMException&&e.name===`InvalidCharacterError`,M2=(e,t,n)=>{t||={};for(let r in t){let i=t[r];if(r!==`children`&&(!n||n[r]!==i)){r=hl(r);let t=D2(r);if(t){if(n?.[r]!==i&&(n&&e.removeEventListener(t[0],n[r],t[1]),i!=null)){if(typeof i!=`function`)throw Error(`Event handler for "${r}" is not a function`);e.addEventListener(t[0],i,t[1])}}else if(r===`dangerouslySetInnerHTML`&&i)e.innerHTML=i.__html;else if(r===`ref`){let t;typeof i==`function`?t=i(e)||(()=>i(null)):i&&`current`in i&&(i.current=e,t=()=>i.current=null),S2.set(e,t)}else if(r===`style`){let t=e.style;typeof i==`string`?t.cssText=i:(t.cssText=``,i!=null&&Sl(i,t.setProperty.bind(t)))}else{if(r===`value`){let t=e.nodeName;if(t===`SELECT`)continue;if((t===`INPUT`||t===`TEXTAREA`)&&(e.value=k2(i),t===`TEXTAREA`)){e.textContent=i;continue}}else (r===`checked`&&e.nodeName===`INPUT`||r===`selected`&&e.nodeName===`OPTION`)&&(e[r]=i);let t=O2(e,r);try{i==null||i===!1?e.removeAttribute(t):i===!0?e.setAttribute(t,``):typeof i==`string`||typeof i==`number`?e.setAttribute(t,i):e.setAttribute(t,i.toString())}catch(e){if(!j2(e))throw e}}}}if(n)for(let r in n){let i=n[r];if(r!==`children`&&!(r in t)){r=hl(r);let t=D2(r);if(t)e.removeEventListener(t[0],i,t[1]);else if(r===`ref`)S2.get(e)?.();else try{e.removeAttribute(O2(e,r))}catch(e){if(!j2(e))throw e}}}},N2=(e,t)=>{t[Kc][0]=0,x2.push([e,t]);let n=t.tag[Wc]||t.tag,r=n.defaultProps?{...n.defaultProps,...t.props}:t.props;try{return[n.call(null,r)]}finally{x2.pop()}},P2=(e,t,n,r,i)=>{e.vR?.length&&(r.push(...e.vR),delete e.vR),typeof e.tag==`function`&&e[Kc][1][1]?.forEach(e=>i.push(e)),e.vC.forEach(e=>{if(T2(e))n.push(e);else if(typeof e.tag==`function`||e.tag===``){e.c=t;let a=n.length;if(P2(e,t,n,r,i),e.s){for(let e=a;e<n.length;e++)n[e].s=!0;e.s=!1}}else n.push(e),e.vR?.length&&(r.push(...e.vR),delete e.vR)})},F2=e=>{for(;e&&(e.tag===v2||!e.e);)e=e.tag===v2||!e.vC?.[0]?e.nN:e.vC[0];return e?.e},I2=e=>{T2(e)||(e[Kc]?.[1][1]?.forEach(e=>e[2]?.()),S2.get(e.e)?.(),e.p===2&&e.vC?.forEach(e=>e.p=2),e.vC?.forEach(I2)),e.p||(e.e?.remove(),delete e.e),typeof e.tag==`function`&&(K2.delete(e),H2.delete(e),delete e[Kc][3],e.a=!0)},L2=(e,t,n)=>{e.c=t,B2(e,t,n)},R2=(e,t)=>{if(t){for(let n=0,r=e.length;n<r;n++)if(e[n]===t)return n}},z2=Symbol(),B2=(e,t,n)=>{let r=[],i=[],a=[];P2(e,t,r,i,a),i.forEach(I2);let o=n?void 0:t.childNodes,s,c=null;if(n)s=-1;else if(!o.length)s=0;else{let t=R2(o,F2(e.nN));t===void 0?s=R2(o,r.find(e=>e.tag!==v2&&e.e)?.e)??-1:(c=o[t],s=t),s===-1&&(n=!0)}for(let e=0,i=r.length;e<i;e++,s++){let i=r[e],a;if(i.s&&i.e)a=i.e,i.s=!1;else{let e=n||!i.e;T2(i)?(i.e&&i.d&&(i.e.textContent=i.t),i.d=!1,a=i.e||=document.createTextNode(i.t)):(a=i.e||=i.n?document.createElementNS(i.n,i.tag):document.createElement(i.tag),M2(a,i.props,i.pP),B2(i,a,e),i.tag===`select`&&A2(a,i.props))}i.tag===v2?s--:n?a.parentNode||t.appendChild(a):o[s]!==a&&o[s-1]!==a&&(o[s+1]===a?t.appendChild(o[s]):t.insertBefore(a,c||o[s]||null))}if(e.pP&&=void 0,a.length){let e=[],t=[];a.forEach(([,n,,r,i])=>{n&&e.push(n),r&&t.push(r),i?.()}),e.forEach(e=>e()),t.length&&requestAnimationFrame(()=>{t.forEach(e=>e())})}},V2=(e,t)=>!!(e&&e.length===t.length&&e.every((e,n)=>e[1]===t[n][1])),H2=new WeakMap,U2=(e,t,n)=>{let r=!n&&t.pC;n&&(t.pC||=t.vC);let i;try{n||=typeof t.tag==`function`?N2(e,t):sl(t.props.children),n[0]?.tag===``&&n[0][Gc]&&(i=n[0][Gc],e[5].push([e,i,t]));let a=r?[...t.pC]:t.vC?[...t.vC]:void 0,o=[],s;for(let r=0;r<n.length;r++){if(Array.isArray(n[r])){n.splice(r,1,...n[r].flat(1/0)),r--;continue}let i=W2(n[r]);if(i){typeof i.tag==`function`&&!i.tag[qc]&&($c.length>0&&(i[Kc][2]=$c.map(e=>[e,e.values.at(-1)])),e[5]?.length&&(i[Kc][3]=e[5].at(-1)));let n;if(a&&a.length){let e=a.findIndex(T2(i)?e=>T2(e):i.key===void 0?e=>e.tag===i.tag:e=>e.key===i.key&&e.tag===i.tag);e!==-1&&(n=a[e],a.splice(e,1))}if(n)if(T2(i))n.t!==i.t&&(n.t=i.t,n.d=!0),i=n;else{let e=n.pP=n.props;if(n.props=i.props,n.f||=i.f||t.f,typeof i.tag==`function`){let t=n[Kc][2];n[Kc][2]=i[Kc][2]||[],n[Kc][3]=i[Kc][3],!n.f&&((n.o||n)===i.o||n.tag[Jc]?.(e,n.props))&&V2(t,n[Kc][2])&&(n.s=!0)}i=n}else if(!T2(i)&&C2){let e=tl(C2);e&&(i.n=e)}if(!T2(i)&&!i.s&&(U2(e,i),delete i.f),o.push(i),s&&!s.s&&!i.s)for(let e=s;e&&!T2(e);e=e.vC?.at(-1))e.nN=i;s=i}}t.vR=r?[...t.vC,...a||[]]:a||[],t.vC=o,r&&delete t.pC}catch(n){if(t.f=!0,n===z2){if(i)return;throw n}let[r,a,o]=t[Kc]?.[3]||[];if(a){let t=()=>J2([0,!1,e[2]],o),i=H2.get(o)||[];i.push(t),H2.set(o,i);let s=a(n,()=>{let e=H2.get(o);if(e){let n=e.indexOf(t);if(n!==-1)return e.splice(n,1),t()}});if(s){if(e[0]===1)e[1]=!0;else if(U2(e,o,[s]),(a.length===1||e!==r)&&o.c){L2(o,o.c,!1);return}throw z2}}throw n}finally{i&&e[5].pop()}},W2=e=>{if(!(e==null||typeof e==`boolean`)){if(typeof e==`string`||typeof e==`number`)return{t:e.toString(),d:!0};if(`vR`in e&&(e={tag:e.tag,props:e.props,key:e.key,f:e.f,type:e.tag,ref:e.props.ref,o:e.o||e}),typeof e.tag==`function`)e[Kc]=[0,[]];else{let t=b2[e.tag];t&&(C2||=Qc(``),e.props.children=[{tag:C2,props:{value:e.n=`http://www.w3.org/${t}`,children:e.props.children}}])}return e}},G2=(e,t)=>{t[Kc][2]?.forEach(([e,t])=>{e.values.push(t)});try{U2(e,t,void 0)}catch{return}if(t.a){delete t.a;return}t[Kc][2]?.forEach(([e])=>{e.values.pop()}),(e[0]!==1||!e[1])&&L2(t,t.c,!1)},K2=new WeakMap,q2=[],J2=async(e,t)=>{e[5]||=[];let n=K2.get(t);n&&n[0](void 0);let r,i=new Promise(e=>r=e);if(K2.set(t,[r,()=>{e[2]?e[2](e,t,e=>{G2(e,t)}).then(()=>r(t)):(G2(e,t),r(t))}]),q2.length)q2.at(-1).add(t);else{await Promise.resolve();let e=K2.get(t);e&&(K2.delete(t),e[1]())}return i},Y2=(e,t,n)=>({tag:v2,props:{children:e},key:n,e:t,p:1}),X2=0,Z2=2,Q2=3,$2=new WeakMap,e4=(e,t)=>!e||!t||e.length!==t.length||t.some((t,n)=>t!==e[n]),t4=void 0,n4=[],r4=e=>{let t=()=>typeof e==`function`?e():e,n=x2.at(-1);if(!n)return[t(),()=>{}];let[,r]=n,i=r[Kc][1][X2]||=[],a=r[Kc][0]++;return i[a]||=[t(),e=>{let t=t4,n=i[a];if(typeof e==`function`&&(e=e(n[0])),!Object.is(e,n[0]))if(n[0]=e,n4.length){let[e,n]=n4.at(-1);Promise.all([e===3?r:J2([e,!1,t],r),n]).then(([n])=>{if(!n||!(e===2||e===3))return;let r=n.vC;requestAnimationFrame(()=>{setTimeout(()=>{r===n.vC&&J2([+(e===3),!1,t],n)})})})}else J2([0,!1,t],r)}]},i4=(e,t)=>{let n=x2.at(-1);if(!n)return e;let[,r]=n,i=r[Kc][1][Z2]||=[],a=r[Kc][0]++,o=i[a];return e4(o?.[1],t)?i[a]=[e,t]:e=i[a][0],e},a4=e=>{let t=$2.get(e);if(t){if(t.length===2)throw t[1];return t[0]}throw e.then(t=>$2.set(e,[t]),t=>$2.set(e,[void 0,t])),e},o4=(e,t)=>{let n=x2.at(-1);if(!n)return e();let[,r]=n,i=r[Kc][1][Q2]||=[],a=r[Kc][0]++,o=i[a];return e4(o?.[1],t)&&(i[a]=[e(),t]),i[a][0]},s4=Qc({pending:!1,data:null,method:null,action:null}),c4=new Set,l4=e=>{c4.add(e),e.finally(()=>c4.delete(e))},u4=c({button:()=>T4,clearCache:()=>d4,composeRef:()=>f4,form:()=>S4,input:()=>w4,link:()=>y4,meta:()=>b4,script:()=>_4,style:()=>v4,title:()=>g4}),d4=()=>{p4=Object.create(null),m4=Object.create(null)},f4=(e,t)=>o4(()=>n=>{let r;e&&(typeof e==`function`?r=e(n)||(()=>{e(null)}):e&&`current`in e&&(e.current=n,r=()=>{e.current=null}));let i=t(n);return()=>{i?.(),r?.()}},[e]),p4=Object.create(null),m4=Object.create(null),h4=(e,t,n,r,i)=>{if(t?.itemProp)return{tag:e,props:t,type:e,ref:t.ref};let a=document.head,{onLoad:o,onError:s,precedence:c,blocking:l,...u}=t,d=null,f=!1,p=nl[e],m=ol(e,r),h=e=>e.getAttribute(`rel`)===`stylesheet`&&e.getAttribute(`data-precedence`)!==null,g;if(m){let n=a.querySelectorAll(e);LOOP:for(let r of n)if(!(e===`link`&&!h(r))){for(let e of p)if(r.getAttribute(e)===t[e]){d=r;break LOOP}}if(!d){let n=p.reduce((e,n)=>t[n]===void 0?e:`${e}-${n}-${t[n]}`,e);f=!m4[n],d=m4[n]||=(()=>{let n=document.createElement(e);for(let e of p)t[e]!==void 0&&n.setAttribute(e,t[e]);return t.rel&&n.setAttribute(`rel`,t.rel),n})()}}else g=a.querySelectorAll(e);c=r?c??``:void 0,r&&(u[il]=c);let _=i4(t=>{if(m){if(e===`link`&&c!==void 0){let n=!1;for(let r of a.querySelectorAll(e)){let e=r.getAttribute(il);if(e===null){a.insertBefore(t,r);return}if(n&&e!==c){a.insertBefore(t,r);return}e===c&&(n=!0)}a.appendChild(t);return}let n=!1;for(let r of a.querySelectorAll(e)){if(n&&r.getAttribute(`data-precedence`)!==c){a.insertBefore(t,r);return}r.getAttribute(`data-precedence`)===c&&(n=!0)}a.appendChild(t)}else if(e===`link`)a.contains(t)||a.appendChild(t);else if(g){let n=!1;for(let e of g)if(e===t){n=!0;break}n||a.insertBefore(t,a.contains(g[0])?g[0]:a.querySelector(e)),g=void 0}},[m,c,e]),v=f4(t.ref,e=>{let t=p[0];if(n===2&&(e.innerHTML=``),(f||g)&&_(e),!s&&!o||!t)return;let r=p4[e.getAttribute(t)]||=new Promise((t,n)=>{e.addEventListener(`load`,t),e.addEventListener(`error`,n)});o&&(r=r.then(o)),s&&(r=r.catch(s)),r.catch(()=>{})});if(i&&l===`render`){let n=nl[e][0];if(n&&t[n]){let e=t[n];a4(p4[e]||=new Promise((e,t)=>{_(d),d.addEventListener(`load`,e),d.addEventListener(`error`,t)}))}}let y={tag:e,type:e,props:{...u,ref:v},ref:v};return y.p=n,d&&(y.e=d),Y2(y,a)},g4=e=>{let t=w2();return(t&&tl(t))?.endsWith(`svg`)?{tag:`title`,props:e,type:`title`,ref:e.ref}:h4(`title`,e,void 0,!1,!1)},_4=e=>!e||[`src`,`async`].some(t=>!e[t])?{tag:`script`,props:e,type:`script`,ref:e.ref}:h4(`script`,e,1,!1,!0),v4=e=>!e||![`href`,`precedence`].every(t=>t in e)?{tag:`style`,props:e,type:`style`,ref:e.ref}:(e[`data-href`]=e.href,delete e.href,h4(`style`,e,2,!0,!0)),y4=e=>!e||[`onLoad`,`onError`].some(t=>t in e)||e.rel===`stylesheet`&&(!(`precedence`in e)||`disabled`in e)?{tag:`link`,props:e,type:`link`,ref:e.ref}:h4(`link`,e,1,al(e),!0),b4=e=>h4(`meta`,e,void 0,!1,!1),x4=Symbol(),S4=e=>{let{action:t,...n}=e;typeof t!=`function`&&(n.action=t);let[r,i]=r4([null,!1]),a=i4(async e=>{let n=e.isTrusted?t:e.detail[x4];if(typeof n!=`function`)return;e.preventDefault();let r=new FormData(e.target);i([r,!0]);let a=n(r);a instanceof Promise&&(l4(a),await a),i([null,!0])},[]),o=f4(e.ref,e=>(e.addEventListener(`submit`,a),()=>{e.removeEventListener(`submit`,a)})),[s,c]=r;return r[1]=!1,{tag:s4,props:{value:{pending:s!==null,data:s,method:s?`post`:null,action:s?t:null},children:{tag:`form`,props:{...n,ref:o},type:`form`,ref:o}},f:c}},C4=(e,{formAction:t,...n})=>{if(typeof t==`function`){let e=i4(e=>{e.preventDefault(),e.currentTarget.form.dispatchEvent(new CustomEvent(`submit`,{detail:{[x4]:t}}))},[]);n.ref=f4(n.ref,t=>(t.addEventListener(`click`,e),()=>{t.removeEventListener(`click`,e)}))}return{tag:e,props:n,type:e,ref:n.ref}},w4=e=>C4(`input`,e),T4=e=>C4(`button`,e);Object.assign(rl,{title:g4,script:_4,style:v4,link:y4,meta:b4,form:S4,input:w4,button:T4});var E4=(e,t,n)=>(typeof e==`string`&&u4[e]&&(e=u4[e]),{tag:e,type:e,props:t,key:n,ref:t.ref}),D4=e=>E4(``,e,void 0),O4=(({children:e,fallback:t,fallbackRender:n,onError:r})=>{let i=D4({children:e});return i[Gc]=e=>{if(e instanceof Promise)throw e;return r?.(e),n?.(e)||t},i}),k4=(({children:e,fallback:t})=>{let n=D4({children:e});return n[Gc]=(e,n)=>{if(!(e instanceof Promise))throw e;return e.finally(n),t},n}),A4=el(null),j4=0,M4=async({children:e,fallback:t})=>{Array.isArray(e)||(e=[e]);let n=tl(A4)?.scriptNonce,r=[],i={[Kc]:[0,[]]},a=e=>(x2.pop(),e);try{i[Kc][0]=0,x2.push([[],i]),r=e.map(e=>e==null||typeof e==`boolean`?``:e.toString())}catch(t){if(t instanceof Promise)r=[t.then(()=>(i[Kc][0]=0,x2.push([[],i]),P4(e).then(a)))];else throw t}finally{a()}if(r.some(e=>e instanceof Promise)){let e=j4++,i=await t.toString();return Rc(`<template id="H:${e}"></template>${i}<!--/$-->`,[...i.callbacks||[],({phase:t,buffer:i,context:a})=>{if(t!==Lc.BeforeStream)return Promise.all(r).then(async r=>{r=r.flat();let o=r.join(``);i&&(i[0]=i[0].replace(RegExp(`<template id="H:${e}"></template>.*?<!--/\\$-->`),o));let s=i?``:`<template data-hono-target="H:${e}">${o}</template><script${n?` nonce="${n}"`:``}>
|
|
2968
|
+
`},n2=`https://assets.sesamy.com/images/login-bg.jpg`,r2=({title:e,children:t,theme:n,branding:r,client:i})=>{let a={backgroundImage:`url(${n?.page_background?.background_image_url||n2})`};return z(`html`,{lang:j.language||`en`,children:[z(`head`,{children:[z(`title`,{children:e}),z(`meta`,{charset:`UTF-8`}),z(`meta`,{name:`robots`,content:`noindex, follow`}),z(`link`,{rel:`preload`,href:`https://assets.sesamy.com/fonts/khteka/WOFF2/KHTeka-Regular.woff2`,as:`font`,type:`font/woff2`,crossOrigin:`anonymous`}),z(`link`,{rel:`preload`,href:`https://assets.sesamy.com/fonts/khteka/WOFF2/KHTeka-Medium.woff2`,as:`font`,type:`font/woff2`,crossOrigin:`anonymous`}),z(`link`,{rel:`preload`,href:`https://assets.sesamy.com/fonts/khteka/WOFF2/KHTeka-Bold.woff2`,as:`font`,type:`font/woff2`,crossOrigin:`anonymous`}),z(`link`,{rel:`stylesheet`,href:`/u/css/tailwind.css?v=${Go}`}),z(`meta`,{name:`viewport`,content:`width=device-width, initial-scale=1, maximum-scale=1`}),z(`style`,{children:t2(n,r)}),z(`meta`,{name:`theme-color`,content:`#000000`}),r?.favicon_url&&z(`link`,{rel:`icon`,type:`image/x-icon`,href:r.favicon_url})]}),z(`body`,{children:[z(`div`,{className:`row min-h-full w-full overflow-hidden bg-cover bg-center text-sm sm:bg-fixed sm:bg-left-top sm:pt-16 py-2`,style:a,children:z(`div`,{className:`row-up-left w-[calc(100%-theme(space.2)-theme(space.2))] max-w-[1295px] !flex-nowrap sm:w-[calc(100%-theme(space.16)-theme(space.16))]`,children:z(`div`,{className:`column-left w-full sm:w-auto`,children:[z(`div`,{className:`relative flex w-full flex-col rounded-2xl bg-white px-5 py-10 dark:bg-gray-800 dark:text-white sm:min-h-[700px] sm:max-w-md sm:px-14 sm:py-14 md:min-w-[448px] short:min-h-[558px] min-h-[calc(100vh-83px)]`,children:[z(`div`,{className:`mb-16`,children:z(W0,{theme:n,branding:r})}),z(`div`,{className:`flex flex-1 flex-col`,children:[t,z(G0,{theme:n,branding:r,client:i})]})]}),z(`div`,{className:`flex w-full items-center px-6 pb-8 pt-4 justify-between`,children:[z(`div`,{className:`flex justify-center leading-[0]`,children:z(`a`,{href:`https://sesamy.com`,target:`_blank`,rel:`noreferrer`,children:z(J0,{name:`sesamy`,className:`text-xl text-white`})})}),z(`div`,{className:`flex justify-center space-x-2 text-xs text-white sm:justify-normal md:text-xs`})]})]})})}),z(`div`,{id:`client-root`})]}),z(`script`,{type:`module`,src:`/u/js/client.js?v=${Go}`})]})},i2=({children:e,className:t})=>z(`div`,{className:(0,K0.default)(`mb-2 text-sm text-red`,t),children:e}),a2=e=>e===`small`?`text-base`:e===`medium`?`text-2xl`:e===`large`?`text-3xl`:``,o2=({size:e})=>{let t=a2(e);return z(`div`,{className:`relative inline-block leading-[0]`,children:[z(J0,{className:(0,K0.default)(`text-gray-200 dark:text-[#201a41]`,{[t]:t}),name:`spinner-circle`}),z(J0,{className:(0,K0.default)(`absolute inset-0 animate-spin text-primary`,{[t]:t}),name:`spinner-inner`})]})},s2=({children:e,className:t,Component:n=`button`,variant:r=`primary`,href:i,disabled:a,isLoading:o,id:s,loadingLink:c})=>{let l=n===`a`?{href:i,...c?{"data-loading-link":``}:{}}:{};return z(n,{class:(0,K0.default)(`btn relative w-full rounded-lg text-center`,{"px-4 py-5":r!==`custom`,"bg-primary text-textOnPrimary hover:bg-primaryHover":r===`primary`,"border border-gray-300 bg-white text-black":r===`secondary`,"pointer-events-none cursor-not-allowed opacity-40":a,"is-loading":o},`focus:outline-none focus:ring`,t),type:`submit`,disabled:a,id:s,...l,children:[z(`span`,{className:`btn-label flex items-center justify-center space-x-2`,children:e}),z(`div`,{className:`btn-spinner absolute left-0 top-0 flex h-full w-full items-center justify-center`,children:z(o2,{size:`medium`})})]})},c2=({connection:e,text:t,icon:n=null,canResize:r=!1,loginSession:i})=>{let a=new URLSearchParams({client_id:i.authParams.client_id,connection:e});a.set(`response_type`,i.authParams.response_type||`code`),i.authParams.redirect_uri&&a.set(`redirect_uri`,i.authParams.redirect_uri),i.authParams.scope&&a.set(`scope`,i.authParams.scope),i.authParams.nonce&&a.set(`nonce`,i.authParams.nonce),i.authParams.state&&a.set(`state`,i.id);let o=`/authorize?${a.toString()}`;return z(s2,{className:(0,K0.default)(`border border-gray-400 bg-white hover:bg-gray-100 dark:border-gray-500 dark:bg-black dark:hover:bg-black/90`,{"px-0 py-3 sm:px-10 sm:py-4 short:px-0 short:py-3":r,"px-10 py-3":!r}),variant:`custom`,"aria-label":t,Component:`a`,href:o,loadingLink:!0,children:[n||``,z(`div`,{className:(0,K0.default)(`text-left text-black dark:text-white sm:text-base`,{"hidden sm:inline short:hidden":r}),children:t})]})},l2=({children:e,className:t})=>z(`form`,{id:`form`,method:`post`,className:t,children:e}),u2=({error:e,theme:t,branding:n,loginSession:r,email:i,client:a,isEmbedded:o,browserName:s})=>{let c=a.connections.map(({strategy:e})=>e),l=c.includes(F.EMAIL)||c.includes(F.USERNAME_PASSWORD),u=c.includes(F.SMS),d=Na(a.connections.find(e=>e.strategy===F.USERNAME_PASSWORD)).usernameIdentifierActive,f=new Set([F.EMAIL,F.SMS,F.USERNAME_PASSWORD]),p=a.connections.filter(e=>!f.has(e.strategy)).filter(e=>{if(e.show_as_button===!1)return!1;if(e.show_as_button===!0)return!0;let t=e.options?.domain_aliases;return!(t&&t.length>0)}).map(e=>{let t=Kp[e.strategy];return t?{...t,connectionName:e.name,displayName:e.display_name||t.displayName||e.name,iconUrl:e.options.icon_url}:null}).filter(e=>e!==null).filter(e=>!(o&&e.disableEmbeddedBrowsers)),m=l||u,h=l&&!u&&!d?`email`:`text`,g=l&&u?`email_or_phone_placeholder`:l&&d?`email_or_username_placeholder`:d?`username_placeholder`:l?`email_placeholder`:`phone_placeholder`,_=j.t(g,l&&u?`Email or Phone Number`:l&&d?`Email address or Username`:d?`Username`:l?`Email Address`:`Phone Number`);return z(r2,{title:j.t(`welcome`),theme:t,branding:n,client:a,children:[z(`div`,{id:`incognito-warning-container`,className:`mb-4 hidden rounded-md border border-yellow-200 bg-yellow-50 p-4 text-sm text-yellow-800 dark:border-yellow-900 dark:bg-yellow-900/20 dark:text-yellow-100`,role:`alert`,children:z(`div`,{className:`flex items-start gap-3`,children:[z(`span`,{className:`text-lg leading-none`,children:`⚠️`}),z(`div`,{children:[z(`strong`,{children:j.t(`incognito_mode_detected`,`Incognito Mode Detected`)}),z(`p`,{className:`mt-1 text-xs opacity-90`,children:j.t(`incognito_mode_warning`,`You are in incognito/private mode. Session data may not persist across page refreshes. Some features might not work as expected.`)})]})]})}),o&&z(`div`,{className:`mb-4 rounded-md border border-orange-200 bg-orange-50 p-4 text-sm text-orange-800 dark:border-orange-900 dark:bg-orange-900/20 dark:text-orange-100`,role:`alert`,children:z(`div`,{className:`flex items-start gap-3`,children:[z(`span`,{className:`text-lg leading-none`,children:`⚠️`}),z(`div`,{children:[z(`strong`,{children:j.t(`embedded_browser_detected`)}),z(`p`,{className:`mt-1 text-xs opacity-90`,children:j.t(`embedded_browser_warning`,{browserName:s||`app`})})]})]})}),z(`div`,{className:`mb-4 text-lg font-medium sm:text-2xl`,children:j.t(`welcome`)}),z(`div`,{className:`mb-8 text-gray-300`,children:m?j.t(`login_description_template`,{authMethod:j.t(g,{defaultValue:l&&u?`email or phone number`:l&&d?`email address or username`:l?`email address`:`phone number`}).toLocaleLowerCase(),defaultValue:`Sign in with your {{authMethod}}`}):j.t(`login_description_social_only`,`Choose how to login`)}),z(`div`,{className:`flex flex-1 flex-col justify-center`,children:[m&&z(l2,{className:`mb-7`,children:[z(`input`,{type:h,name:`username`,placeholder:_,className:(0,K0.default)(`mb-2 w-full rounded-lg border bg-gray-100 px-4 py-5 text-base lowercase placeholder:normal-case placeholder:text-gray-300 dark:bg-gray-600 md:text-base`,{"border-red":e,"border-gray-100 dark:border-gray-500":!e}),required:!0,value:i||``}),e&&z(i2,{children:e}),z(s2,{className:`sm:mt-4 !text-base`,children:[z(`span`,{children:j.t(`continue`)}),z(J0,{className:`text-xs`,name:`arrow-right`})]})]}),m&&p.length>0&&z(`div`,{className:`relative mb-5 block text-center text-gray-300 dark:text-gray-300`,children:[z(`div`,{className:`absolute left-0 right-0 top-1/2 border-b border-gray-200 dark:border-gray-600`}),z(`div`,{className:`relative inline-block bg-white px-2 dark:bg-gray-800`,children:j.t(`continue_social_login`)})]}),z(`div`,{className:`flex space-x-4 sm:flex-col sm:space-x-0 sm:space-y-4 short:flex-row short:space-x-4 short:space-y-0`,children:p.map(e=>{let t=e.iconUrl||e.logoDataUri;return z(c2,{connection:e.connectionName,text:j.t(`continue_with`,{provider:e.displayName}),canResize:!0,icon:t?z(`img`,{src:t,alt:e.displayName,className:`h-5 w-5 sm:absolute sm:left-4 sm:top-1/2 sm:h-6 sm:w-6 sm:-translate-y-1/2 short:static short:left-auto short:top-auto short:h-5 short:w-5 short:translate-y-0`}):null,loginSession:r},e.connectionName)})})]})]})};function d2(e,t,n){let r=e.lastIndexOf(`@`);if(r<0)return;let i=e.slice(r+1).trim().toLowerCase();if(!i)return;let a=t.filter(e=>{if(!(e.strategy in Kp||n!==void 0&&e.strategy in n))return!1;let t=e.options?.domain_aliases;return t?.length?t.some(e=>e.trim().toLowerCase()===i):!1});return a.length===1?a[0]:void 0}var f2=class{parse(e){let t=this.detectEmbedded(e);return{browser:t.browser,isEmbedded:t.isEmbedded}}detectEmbedded(e){for(let[t,n]of[[/wv\)/i,`WebView`],[/GSA\//i,`Google Search App`],[/FBAN\//i,`Facebook`],[/FBAV\//i,`Facebook`],[/Instagram/i,`Instagram`],[/Snapchat/i,`Snapchat`],[/TikTok/i,`TikTok`],[/Twitter/i,`Twitter/X`],[/LinkedIn/i,`LinkedIn`],[/UC Browser/i,`UC Browser`],[/SamsungBrowser/i,`Samsung Internet`],[/Electron/i,`Electron`],[/Tauri/i,`Tauri`]])if(t.test(e))return{isEmbedded:!0,browser:{name:n}};return{isEmbedded:!1}}};function p2(e){let t=new f2().parse(e);return{isEmbedded:t.isEmbedded??!1,browserName:t.browser?.name}}var m2=L({route:(0,f.createRoute)({tags:[`login`],method:`get`,path:`/`,request:{query:f.z.object({state:f.z.string().openapi({description:`The state parameter from the authorization request`}),impersonation:f.z.string().optional(),error:f.z.string().optional().openapi({description:`Error code from failed authentication`}),error_description:f.z.string().optional().openapi({description:`Human-readable error description`})})},responses:{200:{description:`Response`}}}),handler:async e=>{let{state:t,error:n,error_description:r}=e.req.valid(`query`),{theme:i,branding:a,loginSession:o,client:s}=await B0(e,t),{isEmbedded:c,browserName:l}=p2(e.req.header(`user-agent`)||``),u=r||n;return e.html(z(u2,{theme:i,branding:a,loginSession:o,client:s,email:o.authParams.username,isEmbedded:c,browserName:l,error:u}))}}),h2=L({route:(0,f.createRoute)({tags:[`login`],method:`post`,path:`/`,request:{query:f.z.object({state:f.z.string().openapi({description:`The state parameter from the authorization request`})}),body:{content:{"application/x-www-form-urlencoded":{schema:f.z.object({username:f.z.string().transform(e=>e.toLowerCase()),login_selection:f.z.enum([`code`,`password`]).optional()})}}}},responses:{400:{description:`Error response`},302:{description:`Redirect to enter code or password`}}}),handler:async e=>{let{env:t}=e,{state:n}=e.req.valid(`query`),r=e.req.valid(`form`);e.set(`body`,r),e.set(`username`,r.username);let{client:i,loginSession:a,theme:o,branding:s}=await B0(e,n);e.set(`client_id`,i.client_id);let{isEmbedded:c,browserName:l}=p2(e.req.header(`user-agent`)||``),u=e.get(`countryCode`),{normalized:d,connectionType:f}=iF(r.username,u);if(f===`email`&&d){let n=d2(d,i.connections,t.STRATEGIES);if(n)return a.authParams.username=d,await t.data.loginSessions.update(i.tenant.id,a.id,a),JQ(e,i,n.name,a.authParams)}let p=Na(i.connections.find(e=>e.strategy===F.USERNAME_PASSWORD)),h=p.usernameIdentifierActive;if(f===`username`&&h&&d){let t=p.usernameMinLength,n=p.usernameMaxLength;if(d.length<t||d.length>n){let u=d.length<t?`Username must be at least ${t} characters`:`Username must be ${n} characters or less`;return e.html(z(u2,{theme:o,branding:s,loginSession:a,error:u,email:r.username,client:i,isEmbedded:c,browserName:l}),400)}}let g=d?f===`email`?await hu({userAdapter:t.data.users,tenant_id:i.tenant.id,email:d}):f===`username`?await rm({env:t,tenant_id:i.tenant.id,username:d}):await _u({userAdapter:t.data.users,tenant_id:i.tenant.id,username:d,provider:`sms`}):null,_=i.connections.find(e=>e.strategy===f)||f===`username`&&h||g,v=!1;if(!_&&f===`email`&&d&&i.connections.some(e=>e.strategy===F.USERNAME_PASSWORD&&e.options?.import_mode===!0&&typeof e.options?.configuration==`object`&&e.options.configuration!==null)&&(_=!0,v=!0),!_||!d)return e.html(z(u2,{theme:o,branding:s,loginSession:a,error:`Email is not valid.`,email:r.username,client:i}),400);if(g&&e.set(`user_id`,g.user_id),!g&&!v){let t=await Zk(e,i,e.env.data,d,f);if(!t.allowed)return await I(e,i.tenant.id,{type:P.FAILED_SIGNUP,description:t.reason||`User account does not exist`}),e.html(z(u2,{theme:o,branding:s,loginSession:a,error:j.t(`user_account_does_not_exist`),email:r.username,client:i,isEmbedded:c,browserName:l}),400)}if(a.authParams.username=d,await t.data.loginSessions.update(i.tenant.id,a.id,a),await U0(e,i,r.username,f,r.login_selection)===`password`)return e.redirect(`/u/enter-password?state=${n}`);let y=KV(),b=await t.data.codes.get(i.tenant.id,y,`otp`);for(;b;)y=KV(),b=await t.data.codes.get(i.tenant.id,y,`otp`);let x=await e.env.data.codes.create(i.tenant.id,{code_id:y,code_type:`otp`,login_id:a.id,expires_at:new Date(Date.now()+wD).toISOString(),redirect_uri:a.authParams.redirect_uri}),S=i.connections.find(e=>e.strategy===f);if(!S)throw new m(400,{message:j.t(`connection_not_found`,{connection:f})});let C=a.authParams?.ui_locales?.split(` `)?.map(e=>e.split(`-`)[0])[0];f===`email`&&S.options.authentication_method===`magic_link`?await zV(e,{to:d,code:x.code_id,authParams:a.authParams,language:C}):await RV(e,{to:d,code:x.code_id,language:C});let w=f===`sms`?`sms-otp-challenge`:`email-otp-challenge`;return e.redirect(`/u/login/${w}?state=${n}`)}}),g2=new f.OpenAPIHono().openapiRoutes([m2,h2]),_2=e=>z(`a`,{className:`block text-primary hover:text-primaryHover text-center`,href:`/u/login/identifier?state=${e.state}`,children:j.t(`go_back`)}),v2=`_hp`,y2={Change:`Input`,DoubleClick:`DblClick`},b2={svg:`2000/svg`,math:`1998/Math/MathML`},x2=[],S2=new WeakMap,C2=void 0,w2=()=>C2,T2=e=>`t`in e,E2={onClick:[`click`,!1]},D2=e=>{if(!e.startsWith(`on`))return;if(E2[e])return E2[e];let t=e.match(/^on([A-Z][a-zA-Z]+?(?:PointerCapture)?)(Capture)?$/);if(t){let[,n,r]=t;return E2[e]=[(y2[n]||n).toLowerCase(),!!r]}},O2=(e,t)=>C2&&e instanceof SVGElement&&/[A-Z]/.test(t)&&(t in e.style||t.match(/^(?:o|pai|str|u|ve)/))?t.replace(/([A-Z])/g,`-$1`).toLowerCase():t,k2=e=>e==null||e===!1?null:e,A2=(e,t)=>{`value`in t&&(e.value=k2(t.value),!e.multiple&&e.selectedIndex===-1&&(e.selectedIndex=0))},j2=e=>e instanceof DOMException&&e.name===`InvalidCharacterError`,M2=(e,t,n)=>{t||={};for(let r in t){let i=t[r];if(r!==`children`&&(!n||n[r]!==i)){r=hl(r);let t=D2(r);if(t){if(n?.[r]!==i&&(n&&e.removeEventListener(t[0],n[r],t[1]),i!=null)){if(typeof i!=`function`)throw Error(`Event handler for "${r}" is not a function`);e.addEventListener(t[0],i,t[1])}}else if(r===`dangerouslySetInnerHTML`&&i)e.innerHTML=i.__html;else if(r===`ref`){let t;typeof i==`function`?t=i(e)||(()=>i(null)):i&&`current`in i&&(i.current=e,t=()=>i.current=null),S2.set(e,t)}else if(r===`style`){let t=e.style;typeof i==`string`?t.cssText=i:(t.cssText=``,i!=null&&Sl(i,t.setProperty.bind(t)))}else{if(r===`value`){let t=e.nodeName;if(t===`SELECT`)continue;if((t===`INPUT`||t===`TEXTAREA`)&&(e.value=k2(i),t===`TEXTAREA`)){e.textContent=i;continue}}else (r===`checked`&&e.nodeName===`INPUT`||r===`selected`&&e.nodeName===`OPTION`)&&(e[r]=i);let t=O2(e,r);try{i==null||i===!1?e.removeAttribute(t):i===!0?e.setAttribute(t,``):typeof i==`string`||typeof i==`number`?e.setAttribute(t,i):e.setAttribute(t,i.toString())}catch(e){if(!j2(e))throw e}}}}if(n)for(let r in n){let i=n[r];if(r!==`children`&&!(r in t)){r=hl(r);let t=D2(r);if(t)e.removeEventListener(t[0],i,t[1]);else if(r===`ref`)S2.get(e)?.();else try{e.removeAttribute(O2(e,r))}catch(e){if(!j2(e))throw e}}}},N2=(e,t)=>{t[Kc][0]=0,x2.push([e,t]);let n=t.tag[Wc]||t.tag,r=n.defaultProps?{...n.defaultProps,...t.props}:t.props;try{return[n.call(null,r)]}finally{x2.pop()}},P2=(e,t,n,r,i)=>{e.vR?.length&&(r.push(...e.vR),delete e.vR),typeof e.tag==`function`&&e[Kc][1][1]?.forEach(e=>i.push(e)),e.vC.forEach(e=>{if(T2(e))n.push(e);else if(typeof e.tag==`function`||e.tag===``){e.c=t;let a=n.length;if(P2(e,t,n,r,i),e.s){for(let e=a;e<n.length;e++)n[e].s=!0;e.s=!1}}else n.push(e),e.vR?.length&&(r.push(...e.vR),delete e.vR)})},F2=e=>{for(;e&&(e.tag===v2||!e.e);)e=e.tag===v2||!e.vC?.[0]?e.nN:e.vC[0];return e?.e},I2=e=>{T2(e)||(e[Kc]?.[1][1]?.forEach(e=>e[2]?.()),S2.get(e.e)?.(),e.p===2&&e.vC?.forEach(e=>e.p=2),e.vC?.forEach(I2)),e.p||(e.e?.remove(),delete e.e),typeof e.tag==`function`&&(K2.delete(e),H2.delete(e),delete e[Kc][3],e.a=!0)},L2=(e,t,n)=>{e.c=t,B2(e,t,n)},R2=(e,t)=>{if(t){for(let n=0,r=e.length;n<r;n++)if(e[n]===t)return n}},z2=Symbol(),B2=(e,t,n)=>{let r=[],i=[],a=[];P2(e,t,r,i,a),i.forEach(I2);let o=n?void 0:t.childNodes,s,c=null;if(n)s=-1;else if(!o.length)s=0;else{let t=R2(o,F2(e.nN));t===void 0?s=R2(o,r.find(e=>e.tag!==v2&&e.e)?.e)??-1:(c=o[t],s=t),s===-1&&(n=!0)}for(let e=0,i=r.length;e<i;e++,s++){let i=r[e],a;if(i.s&&i.e)a=i.e,i.s=!1;else{let e=n||!i.e;T2(i)?(i.e&&i.d&&(i.e.textContent=i.t),i.d=!1,a=i.e||=document.createTextNode(i.t)):(a=i.e||=i.n?document.createElementNS(i.n,i.tag):document.createElement(i.tag),M2(a,i.props,i.pP),B2(i,a,e),i.tag===`select`&&A2(a,i.props))}i.tag===v2?s--:n?a.parentNode||t.appendChild(a):o[s]!==a&&o[s-1]!==a&&(o[s+1]===a?t.appendChild(o[s]):t.insertBefore(a,c||o[s]||null))}if(e.pP&&=void 0,a.length){let e=[],t=[];a.forEach(([,n,,r,i])=>{n&&e.push(n),r&&t.push(r),i?.()}),e.forEach(e=>e()),t.length&&requestAnimationFrame(()=>{t.forEach(e=>e())})}},V2=(e,t)=>!!(e&&e.length===t.length&&e.every((e,n)=>e[1]===t[n][1])),H2=new WeakMap,U2=(e,t,n)=>{let r=!n&&t.pC;n&&(t.pC||=t.vC);let i;try{n||=typeof t.tag==`function`?N2(e,t):sl(t.props.children),n[0]?.tag===``&&n[0][Gc]&&(i=n[0][Gc],e[5].push([e,i,t]));let a=r?[...t.pC]:t.vC?[...t.vC]:void 0,o=[],s;for(let r=0;r<n.length;r++){if(Array.isArray(n[r])){n.splice(r,1,...n[r].flat(1/0)),r--;continue}let i=W2(n[r]);if(i){typeof i.tag==`function`&&!i.tag[qc]&&($c.length>0&&(i[Kc][2]=$c.map(e=>[e,e.values.at(-1)])),e[5]?.length&&(i[Kc][3]=e[5].at(-1)));let n;if(a&&a.length){let e=a.findIndex(T2(i)?e=>T2(e):i.key===void 0?e=>e.tag===i.tag:e=>e.key===i.key&&e.tag===i.tag);e!==-1&&(n=a[e],a.splice(e,1))}if(n)if(T2(i))n.t!==i.t&&(n.t=i.t,n.d=!0),i=n;else{let e=n.pP=n.props;if(n.props=i.props,n.f||=i.f||t.f,typeof i.tag==`function`){let t=n[Kc][2];n[Kc][2]=i[Kc][2]||[],n[Kc][3]=i[Kc][3],!n.f&&((n.o||n)===i.o||n.tag[Jc]?.(e,n.props))&&V2(t,n[Kc][2])&&(n.s=!0)}i=n}else if(!T2(i)&&C2){let e=tl(C2);e&&(i.n=e)}if(!T2(i)&&!i.s&&(U2(e,i),delete i.f),o.push(i),s&&!s.s&&!i.s)for(let e=s;e&&!T2(e);e=e.vC?.at(-1))e.nN=i;s=i}}t.vR=r?[...t.vC,...a||[]]:a||[],t.vC=o,r&&delete t.pC}catch(n){if(t.f=!0,n===z2){if(i)return;throw n}let[r,a,o]=t[Kc]?.[3]||[];if(a){let t=()=>J2([0,!1,e[2]],o),i=H2.get(o)||[];i.push(t),H2.set(o,i);let s=a(n,()=>{let e=H2.get(o);if(e){let n=e.indexOf(t);if(n!==-1)return e.splice(n,1),t()}});if(s){if(e[0]===1)e[1]=!0;else if(U2(e,o,[s]),(a.length===1||e!==r)&&o.c){L2(o,o.c,!1);return}throw z2}}throw n}finally{i&&e[5].pop()}},W2=e=>{if(!(e==null||typeof e==`boolean`)){if(typeof e==`string`||typeof e==`number`)return{t:e.toString(),d:!0};if(`vR`in e&&(e={tag:e.tag,props:e.props,key:e.key,f:e.f,type:e.tag,ref:e.props.ref,o:e.o||e}),typeof e.tag==`function`)e[Kc]=[0,[]];else{let t=b2[e.tag];t&&(C2||=Qc(``),e.props.children=[{tag:C2,props:{value:e.n=`http://www.w3.org/${t}`,children:e.props.children}}])}return e}},G2=(e,t)=>{t[Kc][2]?.forEach(([e,t])=>{e.values.push(t)});try{U2(e,t,void 0)}catch{return}if(t.a){delete t.a;return}t[Kc][2]?.forEach(([e])=>{e.values.pop()}),(e[0]!==1||!e[1])&&L2(t,t.c,!1)},K2=new WeakMap,q2=[],J2=async(e,t)=>{e[5]||=[];let n=K2.get(t);n&&n[0](void 0);let r,i=new Promise(e=>r=e);if(K2.set(t,[r,()=>{e[2]?e[2](e,t,e=>{G2(e,t)}).then(()=>r(t)):(G2(e,t),r(t))}]),q2.length)q2.at(-1).add(t);else{await Promise.resolve();let e=K2.get(t);e&&(K2.delete(t),e[1]())}return i},Y2=(e,t,n)=>({tag:v2,props:{children:e},key:n,e:t,p:1}),X2=0,Z2=2,Q2=3,$2=new WeakMap,e4=(e,t)=>!e||!t||e.length!==t.length||t.some((t,n)=>t!==e[n]),t4=void 0,n4=[],r4=e=>{let t=()=>typeof e==`function`?e():e,n=x2.at(-1);if(!n)return[t(),()=>{}];let[,r]=n,i=r[Kc][1][X2]||=[],a=r[Kc][0]++;return i[a]||=[t(),e=>{let t=t4,n=i[a];if(typeof e==`function`&&(e=e(n[0])),!Object.is(e,n[0]))if(n[0]=e,n4.length){let[e,n]=n4.at(-1);Promise.all([e===3?r:J2([e,!1,t],r),n]).then(([n])=>{if(!n||!(e===2||e===3))return;let r=n.vC;requestAnimationFrame(()=>{setTimeout(()=>{r===n.vC&&J2([+(e===3),!1,t],n)})})})}else J2([0,!1,t],r)}]},i4=(e,t)=>{let n=x2.at(-1);if(!n)return e;let[,r]=n,i=r[Kc][1][Z2]||=[],a=r[Kc][0]++,o=i[a];return e4(o?.[1],t)?i[a]=[e,t]:e=i[a][0],e},a4=e=>{let t=$2.get(e);if(t){if(t.length===2)throw t[1];return t[0]}throw e.then(t=>$2.set(e,[t]),t=>$2.set(e,[void 0,t])),e},o4=(e,t)=>{let n=x2.at(-1);if(!n)return e();let[,r]=n,i=r[Kc][1][Q2]||=[],a=r[Kc][0]++,o=i[a];return e4(o?.[1],t)&&(i[a]=[e(),t]),i[a][0]},s4=Qc({pending:!1,data:null,method:null,action:null}),c4=new Set,l4=e=>{c4.add(e),e.finally(()=>c4.delete(e))},u4=c({button:()=>T4,clearCache:()=>d4,composeRef:()=>f4,form:()=>S4,input:()=>w4,link:()=>y4,meta:()=>b4,script:()=>_4,style:()=>v4,title:()=>g4}),d4=()=>{p4=Object.create(null),m4=Object.create(null)},f4=(e,t)=>o4(()=>n=>{let r;e&&(typeof e==`function`?r=e(n)||(()=>{e(null)}):e&&`current`in e&&(e.current=n,r=()=>{e.current=null}));let i=t(n);return()=>{i?.(),r?.()}},[e]),p4=Object.create(null),m4=Object.create(null),h4=(e,t,n,r,i)=>{if(t?.itemProp)return{tag:e,props:t,type:e,ref:t.ref};let a=document.head,{onLoad:o,onError:s,precedence:c,blocking:l,...u}=t,d=null,f=!1,p=nl[e],m=ol(e,r),h=e=>e.getAttribute(`rel`)===`stylesheet`&&e.getAttribute(`data-precedence`)!==null,g;if(m){let n=a.querySelectorAll(e);LOOP:for(let r of n)if(!(e===`link`&&!h(r))){for(let e of p)if(r.getAttribute(e)===t[e]){d=r;break LOOP}}if(!d){let n=p.reduce((e,n)=>t[n]===void 0?e:`${e}-${n}-${t[n]}`,e);f=!m4[n],d=m4[n]||=(()=>{let n=document.createElement(e);for(let e of p)t[e]!==void 0&&n.setAttribute(e,t[e]);return t.rel&&n.setAttribute(`rel`,t.rel),n})()}}else g=a.querySelectorAll(e);c=r?c??``:void 0,r&&(u[il]=c);let _=i4(t=>{if(m){if(e===`link`&&c!==void 0){let n=!1;for(let r of a.querySelectorAll(e)){let e=r.getAttribute(il);if(e===null){a.insertBefore(t,r);return}if(n&&e!==c){a.insertBefore(t,r);return}e===c&&(n=!0)}a.appendChild(t);return}let n=!1;for(let r of a.querySelectorAll(e)){if(n&&r.getAttribute(`data-precedence`)!==c){a.insertBefore(t,r);return}r.getAttribute(`data-precedence`)===c&&(n=!0)}a.appendChild(t)}else if(e===`link`)a.contains(t)||a.appendChild(t);else if(g){let n=!1;for(let e of g)if(e===t){n=!0;break}n||a.insertBefore(t,a.contains(g[0])?g[0]:a.querySelector(e)),g=void 0}},[m,c,e]),v=f4(t.ref,e=>{let t=p[0];if(n===2&&(e.innerHTML=``),(f||g)&&_(e),!s&&!o||!t)return;let r=p4[e.getAttribute(t)]||=new Promise((t,n)=>{e.addEventListener(`load`,t),e.addEventListener(`error`,n)});o&&(r=r.then(o)),s&&(r=r.catch(s)),r.catch(()=>{})});if(i&&l===`render`){let n=nl[e][0];if(n&&t[n]){let e=t[n];a4(p4[e]||=new Promise((e,t)=>{_(d),d.addEventListener(`load`,e),d.addEventListener(`error`,t)}))}}let y={tag:e,type:e,props:{...u,ref:v},ref:v};return y.p=n,d&&(y.e=d),Y2(y,a)},g4=e=>{let t=w2();return(t&&tl(t))?.endsWith(`svg`)?{tag:`title`,props:e,type:`title`,ref:e.ref}:h4(`title`,e,void 0,!1,!1)},_4=e=>!e||[`src`,`async`].some(t=>!e[t])?{tag:`script`,props:e,type:`script`,ref:e.ref}:h4(`script`,e,1,!1,!0),v4=e=>!e||![`href`,`precedence`].every(t=>t in e)?{tag:`style`,props:e,type:`style`,ref:e.ref}:(e[`data-href`]=e.href,delete e.href,h4(`style`,e,2,!0,!0)),y4=e=>!e||[`onLoad`,`onError`].some(t=>t in e)||e.rel===`stylesheet`&&(!(`precedence`in e)||`disabled`in e)?{tag:`link`,props:e,type:`link`,ref:e.ref}:h4(`link`,e,1,al(e),!0),b4=e=>h4(`meta`,e,void 0,!1,!1),x4=Symbol(),S4=e=>{let{action:t,...n}=e;typeof t!=`function`&&(n.action=t);let[r,i]=r4([null,!1]),a=i4(async e=>{let n=e.isTrusted?t:e.detail[x4];if(typeof n!=`function`)return;e.preventDefault();let r=new FormData(e.target);i([r,!0]);let a=n(r);a instanceof Promise&&(l4(a),await a),i([null,!0])},[]),o=f4(e.ref,e=>(e.addEventListener(`submit`,a),()=>{e.removeEventListener(`submit`,a)})),[s,c]=r;return r[1]=!1,{tag:s4,props:{value:{pending:s!==null,data:s,method:s?`post`:null,action:s?t:null},children:{tag:`form`,props:{...n,ref:o},type:`form`,ref:o}},f:c}},C4=(e,{formAction:t,...n})=>{if(typeof t==`function`){let e=i4(e=>{e.preventDefault(),e.currentTarget.form.dispatchEvent(new CustomEvent(`submit`,{detail:{[x4]:t}}))},[]);n.ref=f4(n.ref,t=>(t.addEventListener(`click`,e),()=>{t.removeEventListener(`click`,e)}))}return{tag:e,props:n,type:e,ref:n.ref}},w4=e=>C4(`input`,e),T4=e=>C4(`button`,e);Object.assign(rl,{title:g4,script:_4,style:v4,link:y4,meta:b4,form:S4,input:w4,button:T4});var E4=(e,t,n)=>(typeof e==`string`&&u4[e]&&(e=u4[e]),{tag:e,type:e,props:t,key:n,ref:t.ref}),D4=e=>E4(``,e,void 0),O4=(({children:e,fallback:t,fallbackRender:n,onError:r})=>{let i=D4({children:e});return i[Gc]=e=>{if(e instanceof Promise)throw e;return r?.(e),n?.(e)||t},i}),k4=(({children:e,fallback:t})=>{let n=D4({children:e});return n[Gc]=(e,n)=>{if(!(e instanceof Promise))throw e;return e.finally(n),t},n}),A4=el(null),j4=0,M4=async({children:e,fallback:t})=>{Array.isArray(e)||(e=[e]);let n=tl(A4)?.scriptNonce,r=[],i={[Kc]:[0,[]]},a=e=>(x2.pop(),e);try{i[Kc][0]=0,x2.push([[],i]),r=e.map(e=>e==null||typeof e==`boolean`?``:e.toString())}catch(t){if(t instanceof Promise)r=[t.then(()=>(i[Kc][0]=0,x2.push([[],i]),P4(e).then(a)))];else throw t}finally{a()}if(r.some(e=>e instanceof Promise)){let e=j4++,i=await t.toString();return Rc(`<template id="H:${e}"></template>${i}<!--/$-->`,[...i.callbacks||[],({phase:t,buffer:i,context:a})=>{if(t!==Lc.BeforeStream)return Promise.all(r).then(async r=>{r=r.flat();let o=r.join(``);i&&(i[0]=i[0].replace(RegExp(`<template id="H:${e}"></template>.*?<!--/\\$-->`),o));let s=i?``:`<template data-hono-target="H:${e}">${o}</template><script${n?` nonce="${n}"`:``}>
|
|
2969
2969
|
((d,c,n) => {
|
|
2970
2970
|
c=d.currentScript.previousSibling
|
|
2971
2971
|
d=d.getElementById('H:${e}')
|
|
@@ -3000,7 +3000,7 @@ d.remove()
|
|
|
3000
3000
|
<\/script>`:``),n.callbacks))).catch(e=>n({error:e,buffer:s})));return Rc(u,p)}).catch(e=>n({error:e,buffer:s}))}])}else return Ml({children:c})};I4[Wc]=O4;var L4=e=>{let{i18nKey:t,values:n,components:r}=e,i=j.t(t,n),a=/<(\d+)>(.*?)<\/\d+>/g,o=[],s=0,c;for(;(c=a.exec(i))!==null;){let[,e,t]=c,n=i.substring(s,c.index);n&&o.push(n);let l=parseInt(e,10);o.push(mte(r[l],{},t)),s=a.lastIndex}return s<i.length&&o.push(i.substring(s)),z(Ml,{children:o})},R4=6,z4=({error:e,theme:t,branding:n,email:r,state:i,client:a,hasPasswordLogin:o})=>{let s=new URLSearchParams({state:i}),c=a.connections.some(e=>e.strategy===F.USERNAME_PASSWORD);return z(r2,{title:j.t(`verify_your_email`),theme:t,branding:n,client:a,children:[z(`div`,{className:`mb-4 text-2xl font-medium`,children:j.t(`verify_your_email`)}),z(`div`,{className:`mb-8 text-gray-300`,children:z(L4,{i18nKey:`code_sent_template`,components:[z(`span`,{className:`text-black dark:text-white`},`span`)],values:{username:r}})}),z(`div`,{className:`flex flex-1 flex-col justify-center`,children:[z(l2,{className:`pt-2`,children:[z(`input`,{autoFocus:!0,type:`text`,pattern:`[0-9]*`,maxLength:R4,inputMode:`numeric`,name:`code`,placeholder:`******`,className:(0,K0.default)(`mb-2 w-full rounded-lg border bg-gray-100 px-4 pb-2 pt-2.5 text-center indent-[5px] font-mono text-3xl placeholder:text-gray-300 dark:bg-gray-600 md:text-3xl`,{"border-red":e,"border-gray-100 dark:border-gray-500":!e}),minLength:R4,required:!0,id:`code-input`}),e&&z(i2,{children:e}),z(s2,{className:`sm:mt-4 !text-base`,children:[z(`span`,{children:j.t(`login`)}),z(J0,{className:`text-xs`,name:`arrow-right`})]}),z(`div`,{className:`my-4 flex space-x-2 text-sm text-[#B2B2B2]`,children:[z(J0,{className:`text-base`,name:`info-bubble`}),z(`div`,{className:`text-sm text-gray-300 md:text-sm`,children:j.t(`sent_code_spam`)})]}),c&&z(`div`,{className:`text-center mb-12`,children:[z(`div`,{className:`relative mb-5 block text-center text-gray-300 dark:text-gray-300`,children:[z(`div`,{className:`absolute left-0 right-0 top-1/2 border-b border-gray-200 dark:border-gray-600`}),z(`div`,{className:`relative inline-block bg-white px-2 dark:bg-gray-800`,children:j.t(`or`)})]}),z(s2,{Component:`a`,href:`/u/${o?`enter-password`:`pre-signup`}?${s.toString()}`,variant:`secondary`,className:`block`,children:j.t(`enter_your_password_btn`)})]})]}),z(_2,{state:i})]})]})},B4=e=>{let{message:t,theme:n,branding:r,client:i,pageTitle:a,state:o}=e;return z(r2,{title:`Login`,theme:n,branding:r,client:i,children:[a?z(`div`,{className:`mb-4 text-2xl font-medium`,children:a}):``,z(`div`,{className:`text-gray-300 mb-12`,children:t}),o?z(_2,{state:o}):``]})},V4=L({route:(0,f.createRoute)({tags:[`login`],method:`get`,path:`/`,request:{query:f.z.object({state:f.z.string().openapi({description:`The state`}),style:f.z.enum([`classic`,`shadcn`]).optional().openapi({description:`UI style to use for the enter code page`})})},responses:{200:{description:`HTML page to enter verification code.`,content:{"text/html":{schema:f.z.string()}}},400:{description:`Bad Request - HTML error page if username is missing in state.`,content:{"text/html":{schema:f.z.string()}}},500:{description:`Internal Server Error - HTML error page.`,content:{"text/html":{schema:f.z.string()}}}}}),handler:async e=>{let{state:t,style:n}=e.req.valid(`query`);n&&Wo(e,`auth_ui_style`,n,{path:`/`,maxAge:3600*24*365,httpOnly:!0,secure:!0,sameSite:`Lax`});let{theme:r,branding:i,loginSession:a,client:o}=await B0(e,t);if(!a.authParams.username)return e.html(z(B4,{theme:r,branding:i,client:o,state:t,pageTitle:j.t(`error_page_title`)||`Error`,message:j.t(`username_not_found_error`)||`Username not found in session.`}),400);let s=!1;try{s=!!await rm({env:e.env,tenant_id:o.tenant.id,username:a.authParams.username})}catch{s=!1}return e.html(z(z4,{theme:r,branding:i,email:a.authParams.username,state:t,client:o,hasPasswordLogin:s}))}}),H4=L({route:(0,f.createRoute)({tags:[`login`],method:`post`,path:`/`,request:{query:f.z.object({state:f.z.string().openapi({description:`The state`}),style:f.z.enum([`classic`,`shadcn`]).optional().openapi({description:`UI style to use for the enter code page`})}),body:{content:{"application/x-www-form-urlencoded":{schema:f.z.object({code:f.z.string()})}}}},responses:{302:{description:`Redirect to continue authentication flow.`,headers:f.z.object({Location:f.z.string().url()})},400:{description:`Bad Request - HTML page with an error message (e.g., invalid code, username missing).`,content:{"text/html":{schema:f.z.string()}}},500:{description:`Internal Server Error - HTML error page for unexpected issues.`,content:{"text/html":{schema:f.z.string()}}}}}),handler:async e=>{let{state:t,style:n}=e.req.valid(`query`),{code:r}=e.req.valid(`form`);n&&Wo(e,`auth_ui_style`,n,{path:`/`,maxAge:3600*24*365,httpOnly:!0,secure:!0,sameSite:`Lax`});let{theme:i,branding:a,client:o,loginSession:s}=await B0(e,t);if(!s.authParams.username)throw new m(400,{message:j.t(`username_not_found_error`)||`Username not found in session.`});try{e.set(`client_id`,o.client_id);let t=await t1(e,{client_id:o.client_id,authParams:s.authParams,username:s.authParams.username,otp:r});if(t instanceof Response)return t;throw new m(500,{message:j.t(`unexpected_error_try_again`)||`An unexpected error occurred. Please try again.`})}catch(n){let r;try{r=await rm({env:e.env,tenant_id:o.tenant.id,username:s.authParams.username})}catch{r=null}return e.html(z(z4,{theme:i,branding:a,email:s.authParams?.username,state:t,client:o,error:n.message,hasPasswordLogin:!!r}),400)}}}),U4=new f.OpenAPIHono().openapiRoutes([V4,H4]),W4=e=>{let{theme:t,branding:n,client:r,state:i}=e;return z(r2,{title:j.t(`unverified_email`),theme:t,branding:n,client:r,children:[z(`div`,{className:`flex flex-1 flex-col justify-center`,children:[z(`p`,{className:`mb-8 text-gray-300 text-lg`,children:j.t(`unverified_email`)}),z(`div`,{className:`my-4 flex space-x-2 text-sm text-[#B2B2B2]`,children:[z(J0,{className:`text-base`,name:`info-bubble`}),z(`div`,{className:`text-sm text-gray-300 md:text-sm`,children:j.t(`sent_code_spam`)})]}),z(_2,{state:i})]}),z(_2,{state:i})]})},G4=({width:e=22,height:t=17,className:n,...r})=>z(`svg`,{width:e,height:t,className:n,xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 576 512`,...r,children:z(`path`,{fill:`currentColor`,d:`M288 32c-80.8 0-145.5 36.8-192.6 80.6C48.6 156 17.3 208 2.5 243.7c-3.3 7.9-3.3 16.7 0 24.6C17.3 304 48.6 356 95.4 399.4 142.5 443.2 207.2 480 288 480s145.5-36.8 192.6-80.6c46.8-43.5 78.1-95.4 93-131.1 3.3-7.9 3.3-16.7 0-24.6-14.9-35.7-46.2-87.7-93-131.1C433.5 68.8 368.8 32 288 32M144 256a144 144 0 1 1 288 0 144 144 0 1 1-288 0m144-64c0 35.3-28.7 64-64 64-7.1 0-13.9-1.2-20.3-3.3-5.5-1.8-11.9 1.6-11.7 7.4.3 6.9 1.3 13.8 3.2 20.7 13.7 51.2 66.4 81.6 117.6 67.9s81.6-66.4 67.9-117.6c-11.1-41.5-47.8-69.4-88.6-71.1-5.8-.2-9.2 6.1-7.4 11.7 2.1 6.4 3.3 13.2 3.3 20.3`})}),K4=({width:e=23,height:t=18,className:n,...r})=>z(`svg`,{width:e,height:t,className:n,xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 640 512`,...r,children:z(`path`,{fill:`currentColor`,d:`M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2s-6.3 25.5 4.1 33.7l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-105.2-82.4c39.6-40.6 66.4-86.1 79.9-118.4 3.3-7.9 3.3-16.7 0-24.6-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8zm184.3 144.4c25.5-23.3 59.6-37.5 96.9-37.5 79.5 0 144 64.5 144 144 0 24.9-6.3 48.3-17.4 68.7L408 294.5c8.4-19.3 10.6-41.4 4.8-63.3-11.1-41.5-47.8-69.4-88.6-71.1-5.8-.2-9.2 6.1-7.4 11.7 2.1 6.4 3.3 13.2 3.3 20.3 0 10.2-2.4 19.8-6.6 28.3l-90.3-70.8zM373 389.9c-16.4 6.5-34.3 10.1-53 10.1-79.5 0-144-64.5-144-144 0-6.9.5-13.6 1.4-20.2l-94.3-74.3c-22.8 29.7-39.1 59.3-48.6 82.2-3.3 7.9-3.3 16.7 0 24.6 14.9 35.7 46.2 87.7 93 131.1 47 43.8 111.7 80.6 192.5 80.6 47.8 0 89.9-12.9 126.2-32.5z`})}),q4=({name:e,placeholder:t=j.t(`password`)})=>z(`div`,{className:`password-input relative mb-2`,"data-password-toggle":!0,children:[z(`input`,{type:`password`,name:e,placeholder:t,className:`w-full rounded-lg bg-gray-100 px-4 py-5 text-base placeholder:text-gray-300 dark:bg-gray-600 md:text-base`,required:!0}),z(`button`,{type:`button`,"aria-label":j.t(`show_password`),title:j.t(`show_password`),className:`absolute right-0 top-0 w-10 h-full rounded-r-lg text-gray-400 column hover:bg-black/5`,"data-password-toggle-btn":!0,children:[z(G4,{"data-show-icon":!0}),z(K4,{"data-hide-icon":!0,className:`hidden`})]})]}),J4=e=>{let{error:t,theme:n,branding:r,email:i,state:a,client:o}=e,s=new URLSearchParams({state:a});return z(r2,{title:j.t(`enter_password`),theme:n,branding:r,client:o,children:[z(`div`,{className:`mb-4 text-lg font-medium sm:text-2xl`,children:j.t(`enter_password`)}),z(`div`,{className:`mb-6 text-gray-300`,children:j.t(`enter_password_description`)}),z(`div`,{className:`flex flex-1 flex-col justify-center`,children:[z(l2,{className:`mb-7`,children:[z(`input`,{type:`text`,name:`username`,placeholder:j.t(`email_placeholder`),className:`mb-2 w-full rounded-lg bg-gray-100 px-4 py-5 text-base placeholder:text-gray-300 dark:bg-gray-600 md:text-base`,value:i}),z(q4,{name:`password`}),t&&z(i2,{children:t}),z(s2,{className:`sm:mt-4 !text-base`,children:[z(`span`,{children:j.t(`login`)}),z(J0,{className:`text-xs`,name:`arrow-right`})]})]}),z(`a`,{href:`/u/forgot-password?${s.toString()}`,className:`text-primary hover:underline mb-4`,children:j.t(`forgot_password_link`)}),z(`div`,{className:`text-center mb-12`,children:[z(`div`,{className:`relative mb-5 block text-center text-gray-300 dark:text-gray-300`,children:[z(`div`,{className:`absolute left-0 right-0 top-1/2 border-b border-gray-200 dark:border-gray-600`}),z(`div`,{className:`relative inline-block bg-white px-2 dark:bg-gray-800`,children:j.t(`or`)})]}),z(`form`,{method:`post`,action:`/u/login/identifier?${s.toString()}`,children:[z(`input`,{type:`hidden`,name:`login_selection`,value:`code`}),z(`input`,{type:`hidden`,name:`username`,value:i}),z(s2,{variant:`secondary`,className:`block`,children:j.t(`enter_a_code_btn`)})]})]}),z(_2,{state:a})]})]})},Y4=L({route:(0,f.createRoute)({tags:[`login`],method:`get`,path:`/`,request:{query:f.z.object({state:f.z.string().openapi({description:`The state parameter from the authorization request`})})},responses:{200:{description:`Response`}}}),handler:async e=>{let{state:t}=e.req.valid(`query`),{theme:n,branding:r,client:i,loginSession:a}=await B0(e,t);if(!a.authParams.username)throw new m(400,{message:`Username required`});return e.html(z(J4,{theme:n,branding:r,email:a.authParams.username,state:t,client:i}))}}),X4=L({route:(0,f.createRoute)({tags:[`login`],method:`post`,path:`/`,request:{query:f.z.object({state:f.z.string().openapi({description:`The state parameter from the authorization request`})}),body:{content:{"application/x-www-form-urlencoded":{schema:f.z.object({password:f.z.string()})}}}},responses:{200:{description:`HTML page indicating success or a next step (if not redirecting).`,content:{"text/html":{schema:f.z.string()}}},302:{description:`Redirect to continue the authentication flow (e.g., to client, MFA, consent).`,headers:f.z.object({Location:f.z.string().url()})},400:{description:`Bad Request - HTML page with an error message (e.g., invalid password, username required).`,content:{"text/html":{schema:f.z.string()}}},500:{description:`Internal Server Error - HTML page with an error message.`,content:{"text/html":{schema:f.z.string()}}}}}),handler:async e=>{let{state:t}=e.req.valid(`query`),{password:n}=e.req.valid(`form`),{theme:r,branding:i,client:a,loginSession:o}=await B0(e,t),{username:s}=o.authParams;if(!s)throw new m(400,{message:`Username required`});try{return await mH(e,a,{...o.authParams,password:n},o)}catch(n){let o=n;return o.code===`INVALID_PASSWORD`||o.code===`USER_NOT_FOUND`?e.html(z(J4,{theme:r,branding:i,email:s,error:j.t(`invalid_password`),state:t,client:a}),400):o.code===`EMAIL_NOT_VERIFIED`?e.html(z(W4,{theme:r,branding:i,client:a,state:t}),400):e.html(z(J4,{theme:r,branding:i,email:s,error:o.message||`An unknown error occurred.`,state:t,client:a}),o.code?400:500)}}}),Z4=new f.OpenAPIHono().openapiRoutes([Y4,X4]),Q4=e=>{let{error:t,theme:n,branding:r,client:i,email:a,state:o,code:s}=e;return z(r2,{title:j.t(`sign_up`),theme:n,branding:r,client:i,children:[z(`div`,{className:`mb-4 text-lg font-medium sm:text-2xl`,children:j.t(`create_account_title`)}),z(`div`,{className:`mb-6 text-gray-300`,children:j.t(`create_account_description`)}),z(`div`,{className:`flex flex-1 flex-col justify-center`,children:[z(l2,{children:[z(`input`,{type:`hidden`,name:`code`,value:s}),z(`input`,{type:`email`,name:`username`,placeholder:j.t(`email_placeholder`),className:`mb-2 w-full rounded-lg bg-gray-100 px-4 py-5 text-base placeholder:text-gray-300 dark:bg-gray-600 md:text-base`,required:!0,value:a,disabled:!!a}),z(`input`,{type:`password`,name:`password`,placeholder:j.t(`enter_new_password_placeholder`),className:`mb-2 w-full rounded-lg bg-gray-100 px-4 py-5 text-base placeholder:text-gray-300 dark:bg-gray-600 md:text-base`}),z(`input`,{type:`password`,name:`re-enter-password`,placeholder:j.t(`reenter_new_password_placeholder`),className:`mb-2 w-full rounded-lg bg-gray-100 px-4 py-5 text-base placeholder:text-gray-300 dark:bg-gray-600 md:text-base`}),t&&z(i2,{children:t}),z(s2,{className:`sm:mt-4 !text-base`,children:j.t(`continue`)})]}),z(_2,{state:o})]})]})},$4=L({route:(0,f.createRoute)({tags:[`login`],method:`get`,path:`/`,request:{query:f.z.object({state:f.z.string().openapi({description:`The state parameter from the authorization request`}),code:f.z.string().optional().openapi({description:`The code parameter from an email verification link`})})},responses:{200:{description:`Response`}}}),handler:async e=>{let{state:t,code:n}=e.req.valid(`query`),{theme:r,branding:i,client:a,loginSession:o}=await B0(e,t),{username:s}=o.authParams;if(!s)throw new m(400,{message:`Username required`});return n?e.html(z(Q4,{state:t,theme:r,branding:i,client:a,email:s,code:n})):e.html(z(Q4,{state:t,theme:r,branding:i,client:a,email:s}))}}),e3=L({route:(0,f.createRoute)({tags:[`login`],method:`post`,path:`/`,request:{query:f.z.object({state:f.z.string().openapi({description:`The state parameter from the authorization request`})}),body:{content:{"application/x-www-form-urlencoded":{schema:f.z.object({password:f.z.string(),"re-enter-password":f.z.string(),code:f.z.string().optional()})}}}},responses:{200:{description:`HTML page indicating success (e.g., email verification sent) or a next step.`,content:{"text/html":{schema:f.z.string()}}},302:{description:`Redirect to continue the authentication flow (e.g., to client, MFA, consent) after successful login.`,headers:f.z.object({Location:f.z.string().url()})},400:{description:`Bad Request - HTML page with an error message (e.g., passwords don't match, weak password, user exists).`,content:{"text/html":{schema:f.z.string()}}},500:{description:`Internal Server Error - HTML page with an error message.`,content:{"text/html":{schema:f.z.string()}}}}}),handler:async e=>{let{state:t}=e.req.valid(`query`),n=e.req.valid(`form`),{env:r}=e,{theme:i,branding:a,client:o,loginSession:s}=await B0(e,t);try{if(!s.authParams.username)throw new m(400,{message:`Username required`});let c=o.connections.find(e=>e.strategy===F.USERNAME_PASSWORD)?.name||F.USERNAME_PASSWORD;if(e.set(`connection`,c),n.password!==n[`re-enter-password`])return e.html(z(Q4,{state:t,code:n.code,theme:i,branding:a,client:o,error:j.t(`create_account_passwords_didnt_match`),email:s.authParams.username}),400);let l=await sd(r.data,o.tenant.id,c);try{await od(l,{tenantId:o.tenant.id,userId:``,newPassword:n.password,data:r.data})}catch(r){let c;return c=r instanceof ad?j.t(r.code,{defaultValue:r.message,...r.params}):r?.message||j.t(`create_account_weak_password`),e.html(z(Q4,{state:t,code:n.code,theme:i,branding:a,client:o,error:c,email:s.authParams.username}),400)}let u=n.code?await r.data.codes.get(o.tenant.id,n.code,`email_verification`):void 0,d=u?await r.data.loginSessions.get(o.tenant.id,u.login_id):void 0;if(await nm({env:e.env,tenant_id:o.tenant.id,username:s.authParams.username}))return e.html(z(Q4,{state:t,code:n.code,theme:i,branding:a,client:o,error:j.t(`user_exists_error`),email:s.authParams.username}),400);let f=d?.authParams.username===s.authParams.username,p=await em(e.env,o.tenant.id),h=`${p}|${uu()}`,g=await r.data.users.create(o.tenant.id,{user_id:h,email:s.authParams.username,email_verified:f,provider:p,connection:c,is_social:!1});if(await r.data.passwords.create(o.tenant.id,{user_id:h,password:await rd.hash(n.password,10),algorithm:`bcrypt`,is_current:!0}),!f){let n=s.authParams?.ui_locales?.split(` `)?.map(e=>e.split(`-`)[0])[0];return await BV(e,g,n),e.html(z(B4,{message:j.t(`validate_email_body`),pageTitle:j.t(`validate_email_title`),theme:i,branding:a,client:o,state:t}))}return QM(e,await pH(e,o,{...s.authParams,password:n.password},s))}catch(r){let c=j.t(`unknown_error_message`),l=400;return r instanceof m?(c=r.message||c,l=r.status===400?400:500):r instanceof hN?c=r.message||c:r instanceof Error&&(c=r.message||c,l=500),e.html(z(Q4,{state:t,theme:i,branding:a,client:o,error:c,email:s.authParams.username,code:n.code}),l)}}}),t3=new f.OpenAPIHono().openapiRoutes([$4,e3]),n3=e=>{let{error:t,theme:n,branding:r,client:i,email:a}=e;return z(r2,{title:j.t(`reset_password_title`),theme:n,branding:r,client:i,children:[z(`div`,{className:`mb-4 text-lg font-medium sm:text-2xl`,children:j.t(`reset_password_title`)}),z(`div`,{className:`mb-6 text-gray-300`,children:`${j.t(`reset_password_description`)} ${a}`}),z(`div`,{className:`flex flex-1 flex-col justify-center`,children:z(l2,{children:[z(q4,{name:`password`,placeholder:j.t(`enter_new_password_placeholder`)}),z(q4,{name:`re-enter-password`,placeholder:j.t(`reenter_new_password_placeholder`)}),t&&z(i2,{children:t}),z(s2,{className:`sm:mt-4 !text-base`,children:j.t(`reset_password_cta`)})]})})]})},r3=L({route:(0,f.createRoute)({tags:[`login`],method:`get`,path:`/`,request:{query:f.z.object({state:f.z.string().openapi({description:`The state parameter from the authorization request`}),code:f.z.string().openapi({description:`The code parameter from the authorization request`})})},responses:{200:{description:`Response`}}}),handler:async e=>{let{state:t}=e.req.valid(`query`),{theme:n,branding:r,client:i,loginSession:a}=await B0(e,t);if(!a.authParams.username)throw new m(400,{message:`Username required`});return e.html(z(n3,{theme:n,branding:r,client:i,email:a.authParams.username}))}}),i3=L({route:(0,f.createRoute)({tags:[`login`],method:`post`,path:`/`,request:{query:f.z.object({state:f.z.string().openapi({description:`The state parameter from the authorization request`}),code:f.z.string().openapi({description:`The code parameter from the authorization request`})}),body:{content:{"application/x-www-form-urlencoded":{schema:f.z.object({password:f.z.string(),"re-enter-password":f.z.string()})}}}},responses:{200:{description:`Response`}}}),handler:async e=>{let{state:t,code:n}=e.req.valid(`query`),{password:r,"re-enter-password":i}=e.req.valid(`form`),{env:a}=e,{theme:o,branding:s,client:c,loginSession:l}=await B0(e,t);if(!l.authParams.username)throw new m(400,{message:`Username required`});if(r!==i)return e.html(z(n3,{error:j.t(`create_account_passwords_didnt_match`),theme:o,branding:s,client:c,email:l.authParams.username}),400);let u=await nm({env:a,tenant_id:c.tenant.id,username:l.authParams.username});if(!u)throw new m(400,{message:`User not found`});let d=c.connections.find(e=>e.strategy===F.USERNAME_PASSWORD)?.name||u.connection,f=await sd(a.data,c.tenant.id,d);try{await od(f,{tenantId:c.tenant.id,userId:u.user_id,newPassword:r,userData:u,data:a.data})}catch(t){let n=t?.message||j.t(`create_account_weak_password`);return e.html(z(n3,{error:n,theme:o,branding:s,client:c,email:l.authParams.username}),400)}let p=l.authParams.username,h=()=>e.html(z(n3,{error:j.t(`password_reset_code_expired`,`Code not found or expired`),theme:o,branding:s,client:c,email:p}),400);try{let t=await a.data.codes.get(c.tenant.id,n,`password_reset`);if(!t||!await a.data.codes.consume(c.tenant.id,t.code_id))return h();let i=await a.data.passwords.get(c.tenant.id,u.user_id);i&&await a.data.passwords.update(c.tenant.id,{id:i.id,user_id:u.user_id,password:i.password,algorithm:i.algorithm,is_current:!1}),await a.data.passwords.create(c.tenant.id,{user_id:u.user_id,password:await rd.hash(r,10),algorithm:`bcrypt`,is_current:!0}),u.email_verified||await a.data.users.update(c.tenant.id,u.user_id,{email_verified:!0}),await I(e,c.tenant.id,{type:P.SUCCESS_CHANGE_PASSWORD,description:`Password changed for ${u.email}`,userId:u.user_id})}catch(t){console.error(`Password reset failed:`,t);let n=t instanceof Error?t.message:JSON.stringify(t);await I(e,c.tenant.id,{type:P.FAILED_CHANGE_PASSWORD,description:`Password reset failed for ${u.email}: ${n}`,userId:u.user_id});let r;return r=t instanceof ad?j.t(t.code,{defaultValue:t.message,...t.params}):j.t(`password_reset_failed`,`The password could not be reset`),e.html(z(n3,{error:r,theme:o,branding:s,client:c,email:l.authParams.username}),400)}return e.html(z(B4,{message:j.t(`password_has_been_reset`),theme:o,branding:s,client:c,state:t}))}}),a3=new f.OpenAPIHono().openapiRoutes([r3,i3]),o3=e=>{let{error:t,theme:n,branding:r,client:i,email:a,state:o}=e;return z(r2,{title:j.t(`forgot_password_title`),theme:n,branding:r,client:i,children:[z(`div`,{className:`mb-4 text-lg font-medium sm:text-2xl`,children:j.t(`forgot_password_title`)}),z(`div`,{className:`mb-6 text-gray-300`,children:j.t(`forgot_password_description`)}),z(`div`,{className:`flex flex-1 flex-col justify-center`,children:[z(l2,{className:`pt-2`,children:[z(`input`,{type:`email`,name:`username`,placeholder:j.t(`email_placeholder`),className:`mb-2 w-full rounded-lg bg-gray-100 px-4 py-5 text-base placeholder:text-gray-300 dark:bg-gray-600 md:text-base`,value:a,disabled:!!a}),t&&z(i2,{children:t}),z(s2,{className:`sm:mt-4 !text-base`,children:j.t(`forgot_password_cta`)})]}),z(_2,{state:o})]})]})},s3=e=>{let{theme:t,branding:n,client:r,state:i}=e;return z(r2,{title:`Login`,theme:t,branding:n,client:r,children:[z(`div`,{className:`flex flex-1 flex-col justify-center`,children:[z(`div`,{children:j.t(`forgot_password_email_sent`)}),z(`div`,{className:`my-4 flex space-x-2 text-sm text-[#B2B2B2]`,children:[z(J0,{className:`text-base`,name:`info-bubble`}),z(`div`,{className:`text-sm text-gray-300 md:text-sm`,children:j.t(`sent_code_spam`)})]})]}),z(_2,{state:i})]})},c3=L({route:(0,f.createRoute)({tags:[`login`],method:`get`,path:`/`,request:{query:f.z.object({state:f.z.string().openapi({description:`The state parameter from the authorization request`})})},responses:{200:{description:`Response`}}}),handler:async e=>{let{state:t}=e.req.valid(`query`),{theme:n,branding:r,client:i,loginSession:a}=await B0(e,t);return e.html(z(o3,{theme:n,branding:r,client:i,state:t,email:a.authParams.username}))}}),l3=L({route:(0,f.createRoute)({tags:[`login`],method:`post`,path:`/`,request:{query:f.z.object({state:f.z.string().openapi({description:`The state parameter from the authorization request`})})},responses:{200:{description:`Response`}}}),handler:async e=>{let{state:t}=e.req.valid(`query`),{theme:n,branding:r,client:i,loginSession:a}=await B0(e,t);return await hH(e,i,a.authParams.username,a.id),e.html(z(s3,{theme:n,branding:r,client:i,state:t}))}}),u3=new f.OpenAPIHono().openapiRoutes([c3,l3]),d3=({width:e=18,height:t=18,className:n})=>z(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:e,height:t,viewBox:`0 0 640 640`,className:n,fill:`currentColor`,role:`img`,focusable:`false`,children:z(`path`,{d:`M416.9 85.2 372 130.1 509.9 268l44.9-44.9c13.6-13.5 21.2-31.9 21.2-51.1s-7.6-37.6-21.2-51.1l-35.7-35.7C505.6 71.6 487.2 64 468 64s-37.6 7.6-51.1 21.2M338.1 164 122.9 379.1c-10.7 10.7-18.5 24.1-22.6 38.7L64.9 545.6c-2.3 8.3 0 17.3 6.2 23.4s15.1 8.5 23.4 6.2l127.8-35.5c14.6-4.1 27.9-11.8 38.7-22.6l215-215.2z`})}),f3=!1,p3=e=>{let{theme:t,branding:n,user:r,client:i,error:a,success:o,state:s,csrfToken:c}=e;return r.identities?.filter(e=>!(e.provider===r.provider&&e.user_id===r.user_id.split(`|`)[1])),z(r2,{title:j.t(`account_title`)||`Account Settings`,theme:t,branding:n,client:i,children:[z(`div`,{className:`mb-4 text-2xl font-medium`,children:j.t(`account_title`)}),z(`div`,{className:`mb-8 text-gray-300`,children:j.t(`account_page_description`)}),a&&z(i2,{className:`mb-8`,children:a}),o&&z(`div`,{className:`mb-8 text-green`,children:o}),z(`div`,{className:`column-left gap-6 border-y border-gray-200/50 py-6 mb-8`,children:[z(`div`,{className:`row-left w-full !justify-between !flex-nowrap gap-4`,children:[z(`div`,{className:`column-left gap-1.5`,children:[z(`div`,{className:`text-gray-300`,children:j.t(`email_placeholder`)}),z(`div`,{className:`font-medium text-base text-gray-800 line-clamp-1 break-all`,children:r.email||j.t(`no_email_address`)})]}),z(`a`,{className:`bg-gray-200/40 p-2 rounded-md hover:bg-gray-200/75`,title:j.t(`edit`),"aria-label":j.t(`edit`),href:s?`/u/account/change-email?state=${encodeURIComponent(s)}`:`/u/account/change-email?client_id=${encodeURIComponent(i.client_id)}`,children:z(d3,{})})]}),f3]})]})},m3=L({route:(0,f.createRoute)({tags:[`login`],method:`get`,path:`/`,request:{query:f.z.object({state:f.z.string().openapi({description:`The state parameter from the authorization request`})})},responses:{200:{description:`HTML page showing account management interface.`,content:{"text/html":{schema:f.z.string()}}},302:{description:`Redirect to login if no session`,headers:f.z.object({Location:f.z.string().url()})},400:{description:`Bad Request - HTML error page if state is missing or other input error.`,content:{"text/html":{schema:f.z.string()}}},500:{description:`Internal Server Error - HTML error page.`,content:{"text/html":{schema:f.z.string()}}}}}),handler:async e=>{let{env:t}=e,{state:n}=e.req.valid(`query`),{theme:r,branding:i,client:a,user:o,loginSession:s}=await V0(e,n,{continuationScope:`account`});if(!a||!a.tenant?.id)return console.error(`Client or tenant ID missing in GET /u/account after initJSXRoute`),e.html(z(B4,{theme:r,branding:i,client:a,state:n,pageTitle:j.t(`error_page_title`)||`Error`,message:j.t(`configuration_error_message`)||`A configuration error occurred.`}),500);let c=To();return await t.data.loginSessions.update(a.tenant.id,s.id,{csrf_token:c}),e.html(z(p3,{theme:r,branding:i,user:o,client:a,state:n,csrfToken:c}))}}),h3=L({route:(0,f.createRoute)({tags:[`login`],method:`post`,path:`/`,request:{query:f.z.object({state:f.z.string().openapi({description:`The state parameter from the authorization request`})}),body:{content:{"application/x-www-form-urlencoded":{schema:f.z.object({action:f.z.enum([`unlink_account`]),provider:f.z.string().optional(),user_id:f.z.string().optional(),csrf_token:f.z.string().optional()})}}}},responses:{200:{description:`HTML response with form results`,content:{"text/html":{schema:f.z.string()}}},302:{description:`Redirect to login if no session`,headers:f.z.object({Location:f.z.string().url()})},400:{description:`Bad Request - HTML error page if state is missing or other input error.`,content:{"text/html":{schema:f.z.string()}}},500:{description:`Internal Server Error - HTML error page.`,content:{"text/html":{schema:f.z.string()}}}}}),handler:async e=>{let{env:t}=e,{state:n}=e.req.valid(`query`),r=e.req.valid(`form`),{theme:i,branding:a,client:o,user:s,loginSession:c}=await V0(e,n,{continuationScope:`account`}),l,u;try{if(r.action===`unlink_account`&&r.provider&&r.user_id){if(!r.csrf_token||r.csrf_token!==c.csrf_token)throw Error(`Invalid CSRF token`);await t.data.users.unlink(o.tenant.id,s.user_id,r.provider,r.user_id),u=j.t(`account_unlinked_successfully`)||`Account unlinked successfully`}}catch{l=j.t(`operation_failed`)||`Operation failed`}let d=await t.data.users.get(o.tenant.id,s.user_id),f=To();return await t.data.loginSessions.update(o.tenant.id,c.id,{csrf_token:f}),e.html(z(p3,{theme:i,branding:a,user:d||s,client:o,error:l,success:u,state:n,csrfToken:f}))}}),g3=new f.OpenAPIHono().openapiRoutes([m3,h3]),_3=e=>{let{theme:t,branding:n,user:r,client:i,state:a,error:o}=e;return z(r2,{title:j.t(`change_email`),theme:t,branding:n,client:i,children:[z(`div`,{className:`mb-4 text-2xl font-medium`,children:j.t(`change_email`)}),z(`div`,{className:`column-left gap-1 mb-8`,children:[z(`div`,{className:`text-gray-300`,children:j.t(`current_email`)}),z(`div`,{className:`font-medium text-base text-gray-800`,children:r.email||j.t(`no_email_address`)})]}),z(`div`,{className:`flex flex-1 flex-col justify-center`,children:[z(l2,{children:[z(`input`,{type:`email`,id:`email`,name:`email`,placeholder:j.t(`new_email`),className:(0,K0.default)(`mb-2 w-full rounded-lg border bg-gray-100 px-4 py-5 text-base placeholder:text-gray-300 dark:bg-gray-600 md:text-base`,{"border-red":o,"border-gray-100 dark:border-gray-500":!o}),required:!0}),o&&z(i2,{children:o}),z(s2,{className:`sm:mt-4 !text-base`,children:[z(`span`,{children:j.t(`continue`)}),z(J0,{className:`text-xs`,name:`arrow-right`})]}),z(`div`,{className:`my-4 flex space-x-2 text-sm text-[#B2B2B2]`,children:[z(`span`,{className:`uicon-info-bubble text-base`}),z(`div`,{className:`text-sm text-gray-300 md:text-sm`,children:j.t(`new_email_code_info`)})]})]}),z(`a`,{className:`block text-primary hover:text-primaryHover text-center`,href:`/u/account?state=${encodeURIComponent(a)}`,children:j.t(`go_back`)})]})]})},v3=L({route:(0,f.createRoute)({tags:[`login`],method:`get`,path:`/`,request:{query:f.z.object({state:f.z.string().openapi({description:`The state parameter from the authorization request`})})},responses:{200:{description:`HTML page showing email change interface.`,content:{"text/html":{schema:f.z.string()}}},302:{description:`Redirect to login if no session`,headers:f.z.object({Location:f.z.string().url()})},400:{description:`Bad Request - HTML error page if state is missing or other input error.`,content:{"text/html":{schema:f.z.string()}}},500:{description:`Internal Server Error - HTML error page.`,content:{"text/html":{schema:f.z.string()}}}}}),handler:async e=>{let{state:t}=e.req.valid(`query`),{theme:n,branding:r,client:i,user:a}=await V0(e,t,{continuationScope:`change-email`});return e.html(z(_3,{theme:n,branding:r,user:a,client:i,state:t}))}}),y3=L({route:(0,f.createRoute)({tags:[`login`],method:`post`,path:`/`,request:{query:f.z.object({state:f.z.string().openapi({description:`The state parameter from the authorization request`})}),body:{content:{"application/x-www-form-urlencoded":{schema:f.z.object({email:f.z.string().toLowerCase()})}}}},responses:{200:{description:`HTML response with form results`,content:{"text/html":{schema:f.z.string()}}},302:{description:`Redirect to change-email verification page`,headers:f.z.object({Location:f.z.string().url()})},400:{description:`Bad Request - HTML error page if state is missing or other input error.`,content:{"text/html":{schema:f.z.string()}}},500:{description:`Internal Server Error - HTML error page.`,content:{"text/html":{schema:f.z.string()}}}}}),handler:async e=>{let{env:t}=e,{state:n}=e.req.valid(`query`),{email:r}=e.req.valid(`form`),{theme:i,branding:a,client:o,user:s,loginSession:c}=await V0(e,n,{continuationScope:`change-email`}),l=await t.data.users.list(o.tenant.id,{page:1,per_page:1,include_totals:!1,q:`email:"${r}"`});if(l.users.length>0&&l.users[0]?.user_id!==s.user_id)return e.html(z(_3,{theme:i,branding:a,user:s,client:o,state:n,error:j.t(`email_already_taken`)||`Email is already taken`}));let u=KV(),d=To();await t.data.codes.create(o.tenant.id,{code_id:d,login_id:``,code_type:`email_verification`,expires_at:new Date(Date.now()+TD).toISOString(),user_id:s.user_id}),await t.data.codes.create(o.tenant.id,{code_id:u,login_id:``,code_type:`email_verification`,expires_at:new Date(Date.now()+TD).toISOString(),user_id:s.user_id});let f=c.authParams?.ui_locales?.split(` `)?.map(e=>e.split(`-`)[0])[0];return await RV(e,{to:r,code:u,language:f}),I(e,o.tenant.id,{type:P.CODE_SENT,description:`Change email verification code sent to ${r}`,userId:s.user_id}),e.redirect(`/u/account/change-email-verify?state=${encodeURIComponent(n)}&email=${encodeURIComponent(r)}&change_id=${d}`)}}),b3=new f.OpenAPIHono().openapiRoutes([v3,y3]),x3=6,S3=({error:e,theme:t,branding:n,client:r,email:i,success:a,state:o,redirectUrl:s})=>a?z(r2,{title:j.t(`success`),theme:t,branding:n,client:r,children:[z(`div`,{className:`mb-4 text-2xl font-medium`,children:j.t(`success`)}),z(`div`,{className:`mb-8 text-gray-300`,children:z(L4,{i18nKey:`email_changed_to_template`,components:[z(`span`,{className:`text-black dark:text-white`},`span`)],values:{email:i}})}),z(`div`,{className:`flex flex-1 flex-col justify-center`,children:z(s2,{Component:`a`,href:s||(o?`/u/account?state=${encodeURIComponent(o)}`:`/u/account?client_id=${encodeURIComponent(r.client_id)}`),className:`sm:mt-4 !text-base`,children:[z(`span`,{children:j.t(`continue`)}),z(J0,{className:`text-xs`,name:`arrow-right`})]})})]}):z(r2,{title:j.t(`verify_email_verify`),theme:t,branding:n,client:r,children:[z(`div`,{className:`mb-4 text-2xl font-medium`,children:j.t(`verify_email_verify`)}),z(`div`,{className:`mb-8 text-gray-300`,children:z(L4,{i18nKey:`code_sent_template`,components:[z(`span`,{className:`text-black dark:text-white`},`span`)],values:{username:i}})}),z(`div`,{className:`flex flex-1 flex-col justify-center`,children:[z(l2,{className:`pt-2`,children:[z(`input`,{autoFocus:!0,type:`text`,pattern:`[0-9]*`,maxLength:x3,inputMode:`numeric`,name:`code`,placeholder:`******`,className:(0,K0.default)(`mb-2 w-full rounded-lg border bg-gray-100 px-4 pb-2 pt-2.5 text-center indent-[5px] font-mono text-3xl placeholder:text-gray-300 dark:bg-gray-600 md:text-3xl`,{"border-red":e,"border-gray-100 dark:border-gray-500":!e}),minLength:x3,required:!0,id:`code-input`}),e&&z(i2,{children:e}),z(s2,{className:`sm:mt-4 !text-base`,children:[z(`span`,{children:j.t(`continue`)}),z(J0,{className:`text-xs`,name:`arrow-right`})]}),z(`div`,{className:`my-4 flex space-x-2 text-sm text-[#B2B2B2]`,children:[z(J0,{className:`text-base`,name:`info-bubble`}),z(`div`,{className:`text-sm text-gray-300 md:text-sm`,children:j.t(`sent_code_spam`)})]})]}),z(`a`,{className:`block text-primary hover:text-primaryHover text-center`,href:o?`/u/account?state=${encodeURIComponent(o)}`:`/u/account?client_id=${encodeURIComponent(r.client_id)}`,children:j.t(`go_back`)})]})]}),C3=L({route:(0,f.createRoute)({tags:[`login`],method:`get`,path:`/`,request:{query:f.z.object({state:f.z.string().openapi({description:`The state parameter from the authorization request`}),email:f.z.string().email(),change_id:f.z.string()})},responses:{200:{description:`HTML page for email change verification`,content:{"text/html":{schema:f.z.string()}}},302:{description:`Redirect to account or login if no session`,headers:f.z.object({Location:f.z.string().url()})},400:{description:`Bad Request - HTML error page if state is missing or other input error.`,content:{"text/html":{schema:f.z.string()}}},500:{description:`Internal Server Error - HTML error page.`,content:{"text/html":{schema:f.z.string()}}}}}),handler:async e=>{let{state:t,email:n,change_id:r}=e.req.valid(`query`),{theme:i,branding:a,client:o,user:s}=await V0(e,t,{continuationScope:`change-email`}),c=await e.env.data.codes.get(o.tenant.id,r,`email_verification`);return!c||c.user_id!==s.user_id?e.redirect(`/u/account?state=${t}`):e.html(z(S3,{theme:i,branding:a,client:o,email:n,state:t}))}}),w3=L({route:(0,f.createRoute)({tags:[`login`],method:`post`,path:`/`,request:{query:f.z.object({state:f.z.string().openapi({description:`The state parameter from the authorization request`}),email:f.z.string().toLowerCase(),change_id:f.z.string()}),body:{content:{"application/x-www-form-urlencoded":{schema:f.z.object({code:f.z.string()})}}}},responses:{200:{description:`HTML response with verification result`,content:{"text/html":{schema:f.z.string()}}},302:{description:`Redirect to confirmation page on success`,headers:f.z.object({Location:f.z.string().url()})},400:{description:`Bad Request - HTML error page if state is missing or other input error.`,content:{"text/html":{schema:f.z.string()}}},500:{description:`Internal Server Error - HTML error page.`,content:{"text/html":{schema:f.z.string()}}}}}),handler:async e=>{let{env:t}=e,{state:n,email:r,change_id:i}=e.req.valid(`query`),{code:a}=e.req.valid(`form`),{theme:o,branding:s,client:c,user:l}=await V0(e,n,{continuationScope:`change-email`}),u;try{let o=await t.data.codes.get(c.tenant.id,i,`email_verification`);if(!o)u=j.t(`invalid_request`);else if(o.user_id!==l.user_id)u=j.t(`invalid_request`);else if(o.used_at)u=j.t(`code_already_used`);else if(new Date(o.expires_at)<new Date)u=j.t(`code_expired`);else{let o=await t.data.codes.get(c.tenant.id,a,`email_verification`);if(!o)u=j.t(`invalid_code`);else if(o.used_at)u=j.t(`code_already_used`);else if(new Date(o.expires_at)<new Date)u=j.t(`code_expired`);else if(o.user_id!==l.user_id)u=j.t(`invalid_code`);else if(await t.data.codes.used(c.tenant.id,i),await t.data.codes.used(c.tenant.id,a),!await t.data.users.update(c.tenant.id,l.user_id,{email:r,email_verified:!0}))u=j.t(`user_not_found`)||`User not found`;else{let i=await t.data.users.list(c.tenant.id,{page:0,per_page:100,include_totals:!1,q:`linked_to:${l.user_id}`});for(let e of i.users)await t.data.users.update(c.tenant.id,e.user_id,{email:r,email_verified:!0});return e.redirect(`/u/account/change-email-confirmation?state=${encodeURIComponent(n)}&email=${encodeURIComponent(r)}`)}}}catch(t){I(e,c.tenant.id,{type:P.FAILED_CHANGE_EMAIL,description:`Change email failed: ${t instanceof Error?t.message:`Unknown error`}`,userId:l.user_id}),u=j.t(`operation_failed`)}return e.html(z(S3,{theme:o,branding:s,client:c,email:r,error:u,state:n}))}}),T3=new f.OpenAPIHono().openapiRoutes([C3,w3]),E3=L({route:(0,f.createRoute)({tags:[`login`],method:`get`,path:`/`,request:{query:f.z.object({state:f.z.string().openapi({description:`The state parameter from the authorization request`}),email:f.z.string().email()})},responses:{200:{description:`HTML page showing email change confirmation`,content:{"text/html":{schema:f.z.string()}}},302:{description:`Redirect to login if no session`,headers:f.z.object({Location:f.z.string().url()})},400:{description:`Bad Request - HTML error page if state is missing or other input error.`,content:{"text/html":{schema:f.z.string()}}},500:{description:`Internal Server Error - HTML error page.`,content:{"text/html":{schema:f.z.string()}}}}}),handler:async e=>{let{state:t,email:n}=e.req.valid(`query`),{theme:r,branding:i,client:a,loginSession:o,isContinuation:s}=await V0(e,t,{continuationScope:`change-email`});if(!a||!a.tenant?.id)return console.error(`Client or tenant ID missing in GET /u/change-email-confirmation after initJSXRoute`),e.html(z(B4,{theme:r,branding:i,client:a,state:t,pageTitle:j.t(`error_page_title`)||`Error`,message:j.t(`configuration_error_message`)||`A configuration error occurred.`}),500);let c=`/u/account?state=${encodeURIComponent(t)}`;if(s&&o.state_data)try{let e=JSON.parse(o.state_data);e.continuationReturnUrl&&(c=e.continuationReturnUrl)}catch{}else o?.authorization_url&&new URL(o.authorization_url).searchParams.get(`screen_hint`)===`change-email`&&(c=o.authParams?.redirect_uri||c);return e.html(z(S3,{theme:r,branding:i,client:a,email:n,success:!0,state:t,redirectUrl:c}))}}),D3=new f.OpenAPIHono().openapiRoutes([E3]),O3=e=>{let{theme:t,branding:n,client:r,email:i,state:a}=e;return z(r2,{title:j.t(`create_password_account_title`),theme:t,branding:n,client:r,children:[z(`div`,{className:`mb-4 text-lg font-medium sm:text-2xl`,children:j.t(`create_password_account_title`)}),z(`div`,{className:`mb-6 text-gray-300`,children:j.t(`enter_email_for_verification_description`)}),z(`div`,{className:`flex flex-1 flex-col justify-center`,children:z(l2,{className:`pt-2`,children:[z(`input`,{type:`email`,name:`username`,placeholder:j.t(`email_placeholder`),className:`mb-2 w-full rounded-lg bg-gray-100 px-4 py-5 text-base placeholder:text-gray-300 dark:bg-gray-600 md:text-base`,required:!0,value:i,disabled:!0}),z(s2,{className:`sm:mt-4 !text-base`,children:j.t(`send`)})]})}),z(_2,{state:a})]})},k3=L({route:(0,f.createRoute)({tags:[`login`],method:`get`,path:`/`,request:{query:f.z.object({state:f.z.string().openapi({description:`The state parameter from the authorization request`})})},responses:{200:{description:`Response`}}}),handler:async e=>{let{state:t}=e.req.valid(`query`),{theme:n,branding:r,client:i,loginSession:a}=await B0(e,t),{username:o}=a.authParams;if(!o)throw new m(400,{message:`Username required`});return e.html(z(O3,{state:t,theme:n,branding:r,client:i,email:o}))}}),A3=L({route:(0,f.createRoute)({tags:[`login`],method:`post`,path:`/`,request:{query:f.z.object({state:f.z.string().openapi({description:`The state parameter from the authorization request`})})},responses:{200:{description:`Response`}}}),handler:async e=>{let{state:t}=e.req.valid(`query`),{loginSession:n,client:r}=await B0(e,t),{username:i}=n.authParams;if(!i)throw new m(400,{message:`Username required`});return await VV(e,i,(await e.env.data.codes.create(r.tenant.id,{code_id:KV(),code_type:`email_verification`,login_id:n.id,expires_at:new Date(Date.now()+TD).toISOString()})).code_id,n.id),e.redirect(`/u/pre-signup-sent?state=${t}`)}}),j3=new f.OpenAPIHono().openapiRoutes([k3,A3]),M3=e=>{let{redirectUrl:t,theme:n,branding:r,client:i}=e;return z(r2,{title:j.t(`invalid_session_title`),theme:n,branding:r,client:i,children:[z(`div`,{className:`flex flex-1 flex-col justify-center`,children:j.t(`invalid_session_body`)}),z(`div`,{className:`flex flex-1 flex-col justify-center`,children:t&&z(`a`,{className:`block text-primary hover:text-primaryHover text-center`,href:t,children:j.t(`go_back`)})})]})},N3=L({route:(0,f.createRoute)({tags:[`login`],method:`get`,path:`/`,request:{query:f.z.object({state:f.z.string()})},responses:{200:{description:`Response`}}}),handler:async e=>{let{state:t}=e.req.valid(`query`),{theme:n,branding:r,client:i,loginSession:a}=await B0(e,t),o;return a.authParams.redirect_uri&&a.authParams.state&&(o=new URL(a.authParams.redirect_uri),o.searchParams.set(`state`,a.authParams.state),o.searchParams.set(`error`,`invalid_session`),o.searchParams.set(`error_description`,a.authParams.username||``)),e.html(z(M3,{redirectUrl:o?.href,theme:n,branding:r,client:i}))}}),P3=new f.OpenAPIHono().openapiRoutes([N3]),F3=L({route:(0,f.createRoute)({tags:[`login`],method:`get`,path:`/`,request:{query:f.z.object({state:f.z.string().openapi({description:`The state parameter from the authorization request`}),code:f.z.string().openapi({description:`The code parameter from the authorization request`})})},responses:{200:{description:`Response`}}}),handler:async e=>{let{state:t}=e.req.valid(`query`),{theme:n,branding:r,client:i}=await B0(e,t);return e.html(z(B4,{message:`Not implemented`,pageTitle:`User info`,theme:n,branding:r,client:i,state:t}))}}),I3=new f.OpenAPIHono().openapiRoutes([F3]),L3=({theme:e,branding:t,client:n,state:r})=>{let i=new URLSearchParams({state:r});return z(r2,{title:j.t(`email_validated`),theme:e,branding:t,client:n,children:[z(`div`,{className:`mb-4 text-lg font-medium sm:text-2xl`,children:j.t(`email_validated`)}),z(`div`,{className:`flex flex-1 flex-col justify-center mb-7`,children:z(s2,{Component:`a`,href:`/u/enter-password?${i}`,className:`text-base sm:mt-4 md:text-base`,children:z(`div`,{className:`flex items-center space-x-2`,children:[z(`span`,{children:j.t(`email_validated_cta`)}),z(J0,{className:`text-xs`,name:`arrow-right`})]})})})]})},R3=L({route:(0,f.createRoute)({tags:[`login`],method:`get`,path:`/`,request:{query:f.z.object({state:f.z.string().openapi({description:`The state parameter from the authorization request`}),code:f.z.string().openapi({description:`The code parameter from the authorization request`})})},responses:{200:{description:`Response`}}}),handler:async e=>{let{state:t,code:n}=e.req.valid(`query`),{env:r}=e,{client:i,loginSession:a,theme:o,branding:s}=await B0(e,t),{username:c}=a.authParams;if(!c)throw I(e,i.tenant.id,{type:P.FAILED_VERIFICATION_EMAIL,description:`Username not found in state`}),new m(400,{message:`Username not found in state`});let l=await nm({env:r,tenant_id:i.tenant.id,username:c});if(!l)throw I(e,i.tenant.id,{type:P.FAILED_VERIFICATION_EMAIL,description:`No user found`}),new m(500,{message:`No user found`});if(!await r.data.codes.get(i.tenant.id,n,`email_verification`))throw I(e,i.tenant.id,{type:P.FAILED_VERIFICATION_EMAIL,description:`Code not found or expired`,userId:l.user_id}),new m(400,{message:`Code not found or expired`});await r.data.users.update(i.tenant.id,l.user_id,{email_verified:!0}),I(e,i.tenant.id,{type:P.SUCCESS_VERIFICATION_EMAIL,userId:l.user_id});let u=(await fu(r.data.users,i.tenant.id,c)).filter(e=>!tm(e.provider));if(u.length>0){let e=u.filter(e=>!e.linked_to);e.length>1&&console.error(`More than one primary user found for email`,c),e.length===0&&console.error(`No primary user found for email`,c),e.length===1&&await r.data.users.update(i.tenant.id,l.user_id,{linked_to:e[0]?.user_id})}return e.html(z(L3,{theme:o,branding:s,client:i,state:t}))}}),z3=new f.OpenAPIHono().openapiRoutes([R3]),B3=e=>{let{theme:t,branding:n,client:r,email:i,state:a}=e;return z(r2,{title:j.t(`sign_up_success`),theme:t,branding:n,client:r,children:[z(`div`,{className:`mb-4 text-lg font-medium sm:text-2xl`,children:j.t(`email_verification_for_signup_sent_title`)}),z(`div`,{className:`flex flex-1 flex-col justify-center`,children:[z(`div`,{className:`mb-6 text-gray-300`,children:z(L4,{i18nKey:`email_verification_for_signup_sent_description`,components:[z(`span`,{className:`text-black dark:text-white`},`span`)],values:{email:i}})}),z(`div`,{className:`my-4 flex space-x-2 text-sm text-[#B2B2B2]`,children:[z(J0,{className:`text-base`,name:`info-bubble`}),z(`div`,{className:`text-sm text-gray-300 md:text-sm`,children:j.t(`sent_code_spam`)})]})]}),z(_2,{state:a})]})},V3=L({route:(0,f.createRoute)({tags:[`login`],method:`get`,path:`/`,request:{query:f.z.object({state:f.z.string().openapi({description:`The state parameter from the authorization request`})})},responses:{200:{description:`Response`}}}),handler:async e=>{let{state:t}=e.req.valid(`query`),{theme:n,branding:r,client:i,loginSession:a}=await B0(e,t),{username:o}=a.authParams;if(!o)throw new m(400,{message:`Username required`});return e.html(z(B3,{theme:n,branding:r,client:i,state:t,email:o}))}}),H3=new f.OpenAPIHono().openapiRoutes([V3]),U3=`
|
|
3001
3001
|
@font-face{font-display:swap;font-family:KHTeka;font-style:normal;font-weight:400;src:url(https://assets.sesamy.com/fonts/khteka/WOFF2/KHTeka-Regular.woff2) format("woff2")}@font-face{font-display:swap;font-family:KHTeka;font-style:normal;font-weight:500;src:url(https://assets.sesamy.com/fonts/khteka/WOFF2/KHTeka-Medium.woff2) format("woff2")}@font-face{font-display:swap;font-family:KHTeka;font-style:normal;font-weight:600;src:url(https://assets.sesamy.com/fonts/khteka/WOFF2/KHTeka-Bold.woff2) format("woff2")}@font-face{font-family:uicon;src:url(https://login2.sesamy.com/_next/static/media/uicon.0b00e08a.woff2)}[class*=" uicon-"],[class^=uicon-]{font-family:uicon!important;font-size:inherit;font-style:normal;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}.uicon-apple:before{content:"\\ea01"}.uicon-arrow-down:before{content:"\\ea02"}.uicon-arrow-left:before{content:"\\ea03"}.uicon-arrow-right:before{content:"\\ea04"}.uicon-arrow-up:before{content:"\\ea05"}.uicon-facebook:before{content:"\\ea06"}.uicon-google:before{content:"\\ea07"}.uicon-info-bubble:before{content:"\\ea08"}.uicon-info:before{content:"\\ea09"}.uicon-sesamy:before{content:"\\ea0a"}.uicon-spinner-circle:before{content:"\\ea0b"}.uicon-spinner-inner:before{content:"\\ea0c"}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }
|
|
3002
3002
|
|
|
3003
|
-
/*! tailwindcss v3.4.18 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid #bfbcd7;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:KHTeka,Helvetica Neue,HelveticaNeue,TeX Gyre Heros,TeXGyreHeros,FreeSans,Nimbus Sans L,Liberation Sans,Arimo,Helvetica,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-feature-settings:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#4b4a58;opacity:1}input::placeholder,textarea::placeholder{color:#4b4a58;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}body,html{height:100%}body{--tw-bg-opacity:1;background-color:rgb(248 249 251/var(--tw-bg-opacity,1));font-size:1rem;letter-spacing:.0125rem;line-height:120%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (min-width:1280px){body{font-size:1.125rem;line-height:120%}}body:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}button,input,optgroup,select,textarea{font-size:.875rem;letter-spacing:.0125rem;line-height:120%}@media (min-width:1280px){button,input,optgroup,select,textarea{font-size:1rem;line-height:120%}}h1{font-size:1.5rem;font-weight:500;line-height:120%}@media (min-width:1280px){h1{font-size:2rem;line-height:120%}}@media (min-width:640px){h1{font-size:3rem;letter-spacing:-.0625rem;line-height:100%}}@media (min-width:1280px){h1{font-size:3.5rem;letter-spacing:-.0625rem;line-height:100%}}h2{font-size:1.25rem;font-weight:500;line-height:120%}@media (min-width:1280px){h2{font-size:1.5rem;line-height:120%}}@media (min-width:640px){h2{font-size:2rem;letter-spacing:0;line-height:120%}}@media (min-width:1280px){h2{font-size:3rem;letter-spacing:-.0625rem;line-height:100%}}h3{font-size:1.125rem;font-weight:500;line-height:120%}@media (min-width:1280px){h3{font-size:1.25rem;line-height:120%}}@media (min-width:640px){h3{font-size:1.5rem;line-height:120%}}@media (min-width:1280px){h3{font-size:2rem;line-height:120%}}h4{font-size:1rem;font-weight:500;line-height:120%}@media (min-width:1280px){h4{font-size:1.125rem;line-height:120%}}@media (min-width:640px){h4{font-size:1.125rem;line-height:120%}}@media (min-width:1280px){h4{font-size:1.5rem;line-height:120%}}h5{font-size:.875rem;font-weight:500;line-height:120%}@media (min-width:1280px){h5{font-size:1rem;line-height:120%}}@media (min-width:640px){h5{font-size:1rem;line-height:120%}}@media (min-width:1280px){h5{font-size:1.125rem;line-height:120%}}h6{font-size:.75rem;font-weight:500;line-height:135%}@media (min-width:1280px){h6{font-size:.875rem;line-height:120%}}@media (min-width:640px){h6{font-size:.875rem;line-height:120%}}@media (min-width:1280px){h6{font-size:1rem;line-height:120%}}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1920px){.container{max-width:1920px}}.pointer-events-none{pointer-events:none}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.left-0{left:0}.right-0{right:0}.right-2{right:.5rem}.top-0{top:0}.top-1\\/2{top:50%}.my-4{margin-bottom:1rem;margin-top:1rem}.mb-1{margin-bottom:.25rem}.mb-12{margin-bottom:3rem}.mb-16{margin-bottom:4rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-7{margin-bottom:1.75rem}.mb-8{margin-bottom:2rem}.mr-2{margin-right:.5rem}.mr-4{margin-right:1rem}.mt-0\\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-8{margin-top:2rem}.line-clamp-1{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-5{height:1.25rem}.h-9{height:2.25rem}.h-full{height:100%}.min-h-\\[calc\\(100vh-83px\\)\\]{min-height:calc(100vh - 83px)}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.w-10{width:2.5rem}.w-12{width:3rem}.w-5{width:1.25rem}.w-9{width:2.25rem}.w-\\[calc\\(100\\%-theme\\(space\\.2\\)-theme\\(space\\.2\\)\\)\\]{width:calc(100% - 1rem)}.w-auto{width:auto}.w-full{width:100%}.min-w-0{min-width:0}.max-w-\\[1295px\\]{max-width:1295px}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.grow{flex-grow:1}.-translate-y-1\\/2{--tw-translate-y:-50%}.-translate-y-1\\/2,.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.flex-col{flex-direction:column}.\\!flex-nowrap{flex-wrap:nowrap!important}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.\\!justify-between{justify-content:space-between!important}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.5rem*var(--tw-space-x-reverse))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1rem*var(--tw-space-x-reverse))}.space-y-1\\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.375rem*var(--tw-space-y-reverse));margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.75rem*var(--tw-space-y-reverse));margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.5rem*var(--tw-space-y-reverse));margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)))}.overflow-hidden,.truncate{overflow:hidden}.truncate{text-overflow:ellipsis;white-space:nowrap}.break-all{word-break:break-all}.rounded-2xl{border-radius:1.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.625rem}.rounded-md{border-radius:.375rem}.rounded-r-lg{border-bottom-right-radius:.625rem;border-top-right-radius:.625rem}.border{border-width:1px}.border-y{border-top-width:1px}.border-b,.border-y{border-bottom-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-gray-100{--tw-border-opacity:1;border-color:rgb(248 249 251/var(--tw-border-opacity,1))}.border-gray-200{--tw-border-opacity:1;border-color:rgb(191 188 215/var(--tw-border-opacity,1))}.border-gray-200\\/50{border-color:rgba(191,188,215,.5)}.border-gray-300{--tw-border-opacity:1;border-color:rgb(136 134 159/var(--tw-border-opacity,1))}.border-gray-400{--tw-border-opacity:1;border-color:rgb(75 74 88/var(--tw-border-opacity,1))}.border-gray-500{--tw-border-opacity:1;border-color:rgb(59 57 70/var(--tw-border-opacity,1))}.border-red{--tw-border-opacity:1;border-color:rgb(252 90 90/var(--tw-border-opacity,1))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(248 249 251/var(--tw-bg-opacity,1))}.bg-gray-200\\/40{background-color:rgba(191,188,215,.4)}.bg-primary{background-color:var(--primary-color)}.bg-primaryHover{background-color:var(--primary-hover)}.bg-red\\/80{background-color:rgba(252,90,90,.8)}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-cover{background-size:cover}.bg-center{background-position:50%}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-0{padding-left:0;padding-right:0}.px-10{padding-left:2.5rem;padding-right:2.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1\\.5{padding-bottom:.375rem;padding-top:.375rem}.py-10{padding-bottom:2.5rem;padding-top:2.5rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-5{padding-bottom:1.25rem;padding-top:1.25rem}.py-6{padding-bottom:1.5rem;padding-top:1.5rem}.pb-2{padding-bottom:.5rem}.pb-8{padding-bottom:2rem}.pl-12{padding-left:3rem}.pl-6{padding-left:1.5rem}.pr-12{padding-right:3rem}.pr-6{padding-right:1.5rem}.pr-8{padding-right:2rem}.pt-0{padding-top:0}.pt-2{padding-top:.5rem}.pt-2\\.5{padding-top:.625rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.indent-\\[5px\\]{text-indent:5px}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.\\!text-base{font-size:1rem!important;line-height:120%!important}.\\!text-xs{font-size:.75rem!important;line-height:135%!important}.text-2xl{font-size:1.5rem;line-height:120%}.text-3xl{font-size:2rem;line-height:120%}.text-base{font-size:1rem;line-height:120%}.text-lg{font-size:1.125rem;line-height:120%}.text-sm{font-size:.875rem;line-height:120%}.text-xl{font-size:1.25rem;line-height:120%}.text-xs{font-size:.75rem;line-height:135%}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.leading-\\[0\\]{line-height:0}.leading-none{line-height:1}.leading-tight{line-height:1.25}.tracking-tight{letter-spacing:-.025em}.text-\\[\\#B2B2B2\\]{--tw-text-opacity:1;color:rgb(178 178 178/var(--tw-text-opacity,1))}.text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.text-gray-200{--tw-text-opacity:1;color:rgb(191 188 215/var(--tw-text-opacity,1))}.text-gray-300{--tw-text-opacity:1;color:rgb(136 134 159/var(--tw-text-opacity,1))}.text-gray-400{--tw-text-opacity:1;color:rgb(75 74 88/var(--tw-text-opacity,1))}.text-gray-500{--tw-text-opacity:1;color:rgb(59 57 70/var(--tw-text-opacity,1))}.text-gray-800{--tw-text-opacity:1;color:rgb(20 20 26/var(--tw-text-opacity,1))}.text-green{--tw-text-opacity:1;color:rgb(54 191 118/var(--tw-text-opacity,1))}.text-primary{color:var(--primary-color)}.text-red{--tw-text-opacity:1;color:rgb(252 90 90/var(--tw-text-opacity,1))}.text-textOnPrimary{color:var(--text-on-primary)}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.accent-\\[\\#4F2D7F\\]{accent-color:#4f2d7f}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-90{opacity:.9}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.ring-offset-white{--tw-ring-offset-color:#fff}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-200{transition-duration:.2s}.row-up-left{align-content:flex-start;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start}.row-left{justify-content:flex-start}.row,.row-left{align-content:center;align-items:center;display:flex;flex-direction:row;flex-wrap:wrap}.row{justify-content:center}.column-left{align-items:flex-start}.column,.column-left{display:flex;flex-direction:column;justify-content:center}.column{align-items:center}@media (min-width:1280px){.text-5xl{font-size:5.125rem;letter-spacing:-.125rem;line-height:100%}.text-4xl{font-size:3.5rem}.text-3xl,.text-4xl{letter-spacing:-.0625rem;line-height:100%}.text-3xl{font-size:3rem}.text-2xl{font-size:2rem}.text-2xl,.text-xl{line-height:120%}.text-xl{font-size:1.5rem}.text-lg{font-size:1.25rem}.text-base,.text-lg{line-height:120%}.text-base{font-size:1.125rem}.text-sm{font-size:1rem}.text-sm,.text-xs{line-height:120%}.text-xs{font-size:.875rem}}:root{--primary-color:#7d68f4;--primary-hover:#9786f6;--text-on-primary:#fff}svg{transform:translate3d(var(--tw-translate-x),var(--tw-translate-y),0) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}*,:after,:before{text-underline-offset:4px}input[type=number],input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;-moz-appearance:textfield!important}.btn.is-loading{cursor:not-allowed;opacity:.4;pointer-events:none}.btn .btn-spinner,.btn.is-loading .btn-label{opacity:0;visibility:hidden}.btn.is-loading .btn-spinner{opacity:1;visibility:visible}[class*=" uicon-"],[class^=uicon-]{letter-spacing:0;line-height:100%}.file\\:border-0::file-selector-button{border-width:0}.file\\:text-sm::file-selector-button{font-size:.875rem;line-height:120%}.file\\:font-medium::file-selector-button{font-weight:500}.placeholder\\:normal-case::-moz-placeholder{text-transform:none}.placeholder\\:normal-case::placeholder{text-transform:none}.placeholder\\:text-gray-300::-moz-placeholder{--tw-text-opacity:1;color:rgb(136 134 159/var(--tw-text-opacity,1))}.placeholder\\:text-gray-300::placeholder{--tw-text-opacity:1;color:rgb(136 134 159/var(--tw-text-opacity,1))}.placeholder\\:text-gray-500::-moz-placeholder{--tw-text-opacity:1;color:rgb(59 57 70/var(--tw-text-opacity,1))}.placeholder\\:text-gray-500::placeholder{--tw-text-opacity:1;color:rgb(59 57 70/var(--tw-text-opacity,1))}.first\\:rounded-l-md:first-child{border-bottom-left-radius:.375rem;border-top-left-radius:.375rem}.first\\:border-l:first-child{border-left-width:1px}.last\\:rounded-r-md:last-child{border-bottom-right-radius:.375rem;border-top-right-radius:.375rem}.hover\\:bg-black\\/5:hover{background-color:rgba(0,0,0,.05)}.hover\\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(248 249 251/var(--tw-bg-opacity,1))}.hover\\:bg-gray-200:hover{--tw-bg-opacity:1;background-color:rgb(191 188 215/var(--tw-bg-opacity,1))}.hover\\:bg-gray-200\\/75:hover{background-color:rgba(191,188,215,.75)}.hover\\:bg-primaryHover:hover{background-color:var(--primary-hover)}.hover\\:bg-red\\/90:hover{background-color:rgba(252,90,90,.9)}.hover\\:text-gray-700:hover{--tw-text-opacity:1;color:rgb(30 30 39/var(--tw-text-opacity,1))}.hover\\:text-primaryHover:hover{color:var(--primary-hover)}.hover\\:underline:hover{text-decoration-line:underline}.hover\\:opacity-100:hover{opacity:1}.hover\\:brightness-90:hover{--tw-brightness:brightness(.9);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.focus\\:z-10:focus{z-index:10}.focus\\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\\:ring:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\\:ring-1:focus,.focus\\:ring:focus{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\\:ring-1:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\\:ring-offset-2:focus{--tw-ring-offset-width:2px}.focus-visible\\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.disabled\\:pointer-events-none:disabled{pointer-events:none}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:opacity-50:disabled{opacity:.5}.group[open] .group-open\\:rotate-90{--tw-rotate:90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.peer:disabled~.peer-disabled\\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\\:opacity-70{opacity:.7}.has-\\[\\:disabled\\]\\:opacity-50:has(:disabled){opacity:.5}.dark\\:border-gray-500:is(.dark *){--tw-border-opacity:1;border-color:rgb(59 57 70/var(--tw-border-opacity,1))}.dark\\:border-gray-600:is(.dark *){--tw-border-opacity:1;border-color:rgb(40 40 52/var(--tw-border-opacity,1))}.dark\\:border-gray-700:is(.dark *){--tw-border-opacity:1;border-color:rgb(30 30 39/var(--tw-border-opacity,1))}.dark\\:bg-black:is(.dark *){--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.dark\\:bg-gray-600:is(.dark *){--tw-bg-opacity:1;background-color:rgb(40 40 52/var(--tw-bg-opacity,1))}.dark\\:bg-gray-700:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 30 39/var(--tw-bg-opacity,1))}.dark\\:bg-gray-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(20 20 26/var(--tw-bg-opacity,1))}.dark\\:text-\\[\\#201a41\\]:is(.dark *){--tw-text-opacity:1;color:rgb(32 26 65/var(--tw-text-opacity,1))}.dark\\:text-gray-300:is(.dark *){--tw-text-opacity:1;color:rgb(136 134 159/var(--tw-text-opacity,1))}.dark\\:text-gray-400:is(.dark *){--tw-text-opacity:1;color:rgb(75 74 88/var(--tw-text-opacity,1))}.dark\\:text-white:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.dark\\:ring-offset-gray-900:is(.dark *){--tw-ring-offset-color:#08080e}.dark\\:placeholder\\:text-gray-400:is(.dark *)::-moz-placeholder{--tw-text-opacity:1;color:rgb(75 74 88/var(--tw-text-opacity,1))}.dark\\:placeholder\\:text-gray-400:is(.dark *)::placeholder{--tw-text-opacity:1;color:rgb(75 74 88/var(--tw-text-opacity,1))}.dark\\:hover\\:bg-black\\/90:hover:is(.dark *){background-color:rgba(0,0,0,.9)}.dark\\:hover\\:bg-gray-700:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 30 39/var(--tw-bg-opacity,1))}.dark\\:hover\\:bg-gray-800:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(20 20 26/var(--tw-bg-opacity,1))}@media (min-width:640px){.sm\\:absolute{position:absolute}.sm\\:left-4{left:1rem}.sm\\:top-1\\/2{top:50%}.sm\\:mt-4{margin-top:1rem}.sm\\:inline{display:inline}.sm\\:h-6{height:1.5rem}.sm\\:min-h-\\[700px\\]{min-height:700px}.sm\\:w-6{width:1.5rem}.sm\\:w-\\[calc\\(100\\%-theme\\(space\\.16\\)-theme\\(space\\.16\\)\\)\\]{width:calc(100% - 8rem)}.sm\\:w-auto{width:auto}.sm\\:w-full{width:100%}.sm\\:max-w-md{max-width:28rem}.sm\\:-translate-y-1\\/2{--tw-translate-y:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.sm\\:flex-col{flex-direction:column}.sm\\:justify-normal{justify-content:normal}.sm\\:space-x-0>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(0px*(1 - var(--tw-space-x-reverse)));margin-right:calc(0px*var(--tw-space-x-reverse))}.sm\\:space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}.sm\\:bg-fixed{background-attachment:fixed}.sm\\:bg-left-top{background-position:0 0}.sm\\:px-10{padding-left:2.5rem;padding-right:2.5rem}.sm\\:px-14{padding-left:3.5rem;padding-right:3.5rem}.sm\\:py-14{padding-bottom:3.5rem;padding-top:3.5rem}.sm\\:py-4{padding-bottom:1rem;padding-top:1rem}.sm\\:pt-16{padding-top:4rem}.sm\\:text-2xl{font-size:1.5rem;line-height:120%}.sm\\:text-base{font-size:1rem;line-height:120%}}@media (min-width:1280px){.md\\:min-w-\\[448px\\]{min-width:448px}.md\\:p-10{padding:2.5rem}.md\\:py-10{padding-bottom:2.5rem;padding-top:2.5rem}.md\\:pl-10{padding-left:2.5rem}.md\\:pl-20{padding-left:5rem}.md\\:pr-10{padding-right:2.5rem}.md\\:pr-20{padding-right:5rem}.md\\:text-3xl{font-size:2rem;line-height:120%}.md\\:text-base{font-size:1rem;line-height:120%}.md\\:text-sm{font-size:.875rem;line-height:120%}.md\\:text-xs{font-size:.75rem;line-height:135%}}@media (max-height:900px) and (min-width:640px){.short\\:static{position:static}.short\\:left-auto{left:auto}.short\\:top-auto{top:auto}.short\\:inline{display:inline}.short\\:hidden{display:none}.short\\:h-5{height:1.25rem}.short\\:min-h-\\[558px\\]{min-height:558px}.short\\:w-5{width:1.25rem}.short\\:flex-1{flex:1 1 0%}.short\\:translate-y-0{--tw-translate-y:0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.short\\:flex-row{flex-direction:row}.short\\:space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1rem*var(--tw-space-x-reverse))}.short\\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(0px*var(--tw-space-y-reverse));margin-top:calc(0px*(1 - var(--tw-space-y-reverse)))}.short\\:px-0{padding-left:0;padding-right:0}.short\\:py-3{padding-bottom:.75rem;padding-top:.75rem}}.\\[\\&\\>\\*\\:last-child\\]\\:mb-0>:last-child{margin-bottom:0}.\\[\\&_h1\\]\\:mb-6 h1,.\\[\\&_h2\\]\\:mb-6 h2{margin-bottom:1.5rem}`;function W3(){if(typeof document<`u`){let e=document.createElement(`style`);e.innerHTML=U3,e.setAttribute(`data-authhero-tailwind`,``),document.head.appendChild(e)}}var G3='var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r},n={Stringify:1,BeforeStream:2,Stream:3},r=(e,t)=>{let n=new String(e);return n.isEscaped=!0,n.callbacks=t,n},i=/[&<>\'"]/,a=async(e,t)=>{let n=``;t||=[];let i=await Promise.all(e);for(let e=i.length-1;n+=i[e],e--,!(e<0);e--){let r=i[e];typeof r==`object`&&t.push(...r.callbacks||[]);let a=r.isEscaped;if(r=await(typeof r==`object`?r.toString():r),typeof r==`object`&&t.push(...r.callbacks||[]),r.isEscaped??a)n+=r;else{let e=[n];o(r,e),n=e[0]}}return r(n,t)},o=(e,t)=>{let n=e.search(i);if(n===-1){t[0]+=e;return}let r,a,o=0;for(a=n;a<e.length;a++){switch(e.charCodeAt(a)){case 34:r=`"`;break;case 39:r=`'`;break;case 38:r=`&`;break;case 60:r=`<`;break;case 62:r=`>`;break;default:continue}t[0]+=e.substring(o,a)+r,o=a+1}t[0]+=e.substring(o,a)},s=e=>{let t=e.callbacks;if(!t?.length)return e;let r=[e],i={};return t.forEach(e=>e({phase:n.Stringify,buffer:r,context:i})),r[0]},c=async(e,t,n,i,a)=>{typeof e==`object`&&!(e instanceof String)&&(e instanceof Promise||(e=e.toString()),e instanceof Promise&&(e=await e));let o=e.callbacks;if(!o?.length)return Promise.resolve(e);a?a[0]+=e:a=[e];let s=Promise.all(o.map(e=>e({phase:t,buffer:a,context:i}))).then(e=>Promise.all(e.filter(Boolean).map(e=>c(e,t,!1,i,a))).then(()=>a[0]));return n?r(await s,o):s},l=Symbol(`RENDERER`),u=Symbol(`ERROR_HANDLER`),d=Symbol(`STASH`),f=Symbol(`INTERNAL`),p=Symbol(`MEMO`),m=Symbol(`PERMALINK`),h=e=>(e[f]=!0,e),g=e=>({value:t,children:n})=>{if(!n)return;let r={children:[{tag:h(()=>{e.push(t)}),props:{}}]};Array.isArray(n)?r.children.push(...n.flat()):r.children.push(n),r.children.push({tag:h(()=>{e.pop()}),props:{}});let i={tag:``,props:r,type:``};return i[u]=t=>{throw e.pop(),t},i},_=e=>{let t=[e],n=g(t);return n.values=t,n.Provider=n,v.push(n),n},v=[],y=e=>{let t=[e],n=(e=>{t.push(e.value);let n;try{n=e.children?(Array.isArray(e.children)?new je(``,{},e.children):e.children).toString():``}catch(e){throw t.pop(),e}return n instanceof Promise?n.finally(()=>t.pop()).then(e=>r(e,e.callbacks)):(t.pop(),r(n))});return n.values=t,n.Provider=n,n[l]=g(t),v.push(n),n},b=e=>e.values.at(-1),x={title:[],script:[`src`],style:[`data-href`],link:[`href`],meta:[`name`,`httpEquiv`,`charset`,`itemProp`]},S={},C=`data-precedence`,ee=e=>e.rel===`stylesheet`&&`precedence`in e,te=(e,t)=>e===`link`?t:x[e].length>0,w=e=>Array.isArray(e)?e:[e],T=t({button:()=>pe,form:()=>ue,input:()=>fe,link:()=>se,meta:()=>ce,script:()=>ae,style:()=>oe,title:()=>ie}),ne=new WeakMap,re=(e,t,n,r)=>({buffer:i,context:a})=>{if(!i)return;let o=ne.get(a)||{};ne.set(a,o);let s=o[e]||=[],c=!1,l=x[e],u=te(e,r!==void 0);if(u){LOOP:for(let[,t]of s)if(!(e===`link`&&!(t.rel===`stylesheet`&&t[`data-precedence`]!==void 0))){for(let e of l)if((t?.[e]??null)===n?.[e]){c=!0;break LOOP}}}if(c?i[0]=i[0].replaceAll(t,``):u||e===`link`?s.push([t,n,r]):s.unshift([t,n,r]),i[0].indexOf(`</head>`)!==-1){let t;if(e===`link`||r!==void 0){let e=[];t=s.map(([t,,n],r)=>{if(n===void 0)return[t,2**53-1,r];let i=e.indexOf(n);return i===-1&&(e.push(n),i=e.length-1),[t,i,r]}).sort((e,t)=>e[1]-t[1]||e[2]-t[2]).map(([e])=>e)}else t=s.map(([e])=>e);t.forEach(e=>{i[0]=i[0].replaceAll(e,``)}),i[0]=i[0].replace(/(?=<\\/head>)/,t.join(``))}},E=(e,t,n)=>r(new F(e,n,w(t??[])).toString()),D=(e,t,n,i)=>{if(`itemProp`in n)return E(e,t,n);let{precedence:a,blocking:o,...s}=n;a=i?a??``:void 0,i&&(s[C]=a);let c=new F(e,s,w(t||[])).toString();return c instanceof Promise?c.then(t=>r(c,[...t.callbacks||[],re(e,t,s,a)])):r(c,[re(e,c,s,a)])},ie=({children:e,...t})=>{let n=N();if(n){let r=b(n);if(r===`svg`||r===`head`)return new F(`title`,t,w(e??[]))}return D(`title`,e,t,!1)},ae=({children:e,...t})=>{let n=N();return[`src`,`async`].some(e=>!t[e])||n&&b(n)===`head`?E(`script`,e,t):D(`script`,e,t,!1)},oe=({children:e,...t})=>[`href`,`precedence`].every(e=>e in t)?(t[`data-href`]=t.href,delete t.href,D(`style`,e,t,!0)):E(`style`,e,t),se=({children:e,...t})=>[`onLoad`,`onError`].some(e=>e in t)||t.rel===`stylesheet`&&(!(`precedence`in t)||`disabled`in t)?E(`link`,e,t):D(`link`,e,t,ee(t)),ce=({children:e,...t})=>{let n=N();return n&&b(n)===`head`?E(`meta`,e,t):D(`meta`,e,t,!1)},le=(e,{children:t,...n})=>new F(e,n,w(t??[])),ue=e=>(typeof e.action==`function`&&(e.action=m in e.action?e.action[m]:void 0),le(`form`,e)),de=(e,t)=>(typeof t.formAction==`function`&&(t.formAction=m in t.formAction?t.formAction[m]:void 0),le(e,t)),fe=e=>de(`input`,e),pe=e=>de(`button`,e),me=new Map([[`className`,`class`],[`htmlFor`,`for`],[`crossOrigin`,`crossorigin`],[`httpEquiv`,`http-equiv`],[`itemProp`,`itemprop`],[`fetchPriority`,`fetchpriority`],[`noModule`,`nomodule`],[`formAction`,`formaction`]]),O=e=>me.get(e)||e,he=/[\\s"\'<>/=`\\\\\\x00-\\x1f\\x7f-\\x9f]/,k=new Set,ge=1024,_e=/^[!?]|[\\s"\'<>/=`\\\\\\x00-\\x1f\\x7f-\\x9f]/,ve=new Set,ye=256,A=(e,t,n)=>{e.size>=t&&e.clear(),e.add(n)},be=e=>ve.has(e)?!0:typeof e==`string`?e.length===0?!0:_e.test(e)?!1:(A(ve,ye,e),!0):!1,xe=e=>{if(k.has(e))return!0;let t=e.length;if(t===0)return!1;for(let n=0;n<t;n++){let t=e.charCodeAt(n);if(!(t>=97&&t<=122||t>=65&&t<=90||t>=48&&t<=57||t===45||t===95||t===46||t===58))return he.test(e)?!1:(A(k,ge,e),!0)}return A(k,ge,e),!0},Se=/[\\s"\'():;\\\\/\\[\\]{}\\x00-\\x1f\\x7f-\\x9f]/,j=new Set,Ce=1024,we=e=>{if(j.has(e))return!0;let t=e.length;if(t===0)return!1;for(let n=0;n<t;n++){let t=e.charCodeAt(n);if(!(t>=97&&t<=122||t>=65&&t<=90||t>=48&&t<=57||t===45||t===95))return Se.test(e)?!1:(A(j,Ce,e),!0)}return A(j,Ce,e),!0},Te=/[;"\'\\\\/\\[\\](){}]/,Ee=e=>{if(!Te.test(e))return!1;let t=0,n=[];for(let r=0,i=e.length;r<i;r++){let a=e.charCodeAt(r);if(a===92){if(r===i-1)return!0;r++}else if(t!==0){if(a===10||a===12||a===13)return!0;a===t&&(t=0)}else if(a===47&&e.charCodeAt(r+1)===42){let t=e.indexOf(`*/`,r+2);if(t===-1)return!0;r=t+1}else if(a===34||a===39)t=a;else if(a===40)n.push(41);else if(a===91)n.push(93);else if(a===123||a===125)return!0;else if(a===41||a===93){if(n[n.length-1]!==a)return!0;n.pop()}else if(a===59&&n.length===0)return!0}return t!==0||n.length!==0},De=(e,t)=>{for(let[n,r]of Object.entries(e)){let e=n[0]===`-`||!/[A-Z]/.test(n)?n:n.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`);if(!we(e))continue;if(r==null){t(e,null);continue}let i;if(typeof r==`number`)i=e.match(/^(?:a|border-im|column(?:-c|s)|flex(?:$|-[^b])|grid-(?:ar|[^a])|font-w|li|or|sca|st|ta|wido|z)|ty$/)?`${r}`:`${r}px`;else if(typeof r==`string`){if(Ee(r))continue;i=r}else continue;t(e,i)}},M=void 0,N=()=>M,Oe=e=>/[A-Z]/.test(e)&&e.match(/^(?:al|basel|clip(?:Path|Rule)$|co|do|fill|fl|fo|gl|let|lig|i|marker[EMS]|o|pai|pointe|sh|st[or]|text[^L]|tr|u|ve|w)/)?e.replace(/([A-Z])/g,`-$1`).toLowerCase():e,ke=[`area`,`base`,`br`,`col`,`embed`,`hr`,`img`,`input`,`keygen`,`link`,`meta`,`param`,`source`,`track`,`wbr`],Ae=`allowfullscreen.async.autofocus.autoplay.checked.controls.default.defer.disabled.download.formnovalidate.hidden.inert.ismap.itemscope.loop.multiple.muted.nomodule.novalidate.open.playsinline.readonly.required.reversed.selected`.split(`.`),P=(e,t)=>{for(let n=0,r=e.length;n<r;n++){let r=e[n];if(typeof r==`string`)o(r,t);else if(typeof r==`boolean`||r==null)continue;else r instanceof F?r.toStringToBuffer(t):typeof r==`number`||r.isEscaped?t[0]+=r:r instanceof Promise?t.unshift(``,r):P(r,t)}},F=class{tag;props;key;children;isEscaped=!0;localContexts;constructor(e,t,n){if(typeof e!=`function`&&!be(e))throw Error(`Invalid JSX tag name: ${e}`);this.tag=e,this.props=t,this.children=n}get type(){return this.tag}get ref(){return this.props.ref||null}toString(){let e=[``];this.localContexts?.forEach(([e,t])=>{e.values.push(t)});try{this.toStringToBuffer(e)}finally{this.localContexts?.forEach(([e])=>{e.values.pop()})}return e.length===1?`callbacks`in e?s(r(e[0],e.callbacks)).toString():e[0]:a(e,e.callbacks)}toStringToBuffer(e){let t=this.tag,n=this.props,{children:i}=this;e[0]+=`<${t}`;let a=t===`svg`||M&&b(M)===`svg`?e=>Oe(O(e)):e=>O(e);for(let[s,c]of Object.entries(n))if(s=a(s),xe(s)&&s!==`children`){if(s===`style`&&typeof c==`object`){let t=``;De(c,(e,n)=>{n!=null&&(t+=`${t?`;`:``}${e}:${n}`)}),e[0]+=` style="`,o(t,e),e[0]+=`"`}else if(typeof c==`string`)e[0]+=` ${s}="`,o(c,e),e[0]+=`"`;else if(c!=null)if(typeof c==`number`||c.isEscaped)e[0]+=` ${s}="${c}"`;else if(typeof c==`boolean`&&Ae.includes(s))c&&(e[0]+=` ${s}=""`);else if(s===`dangerouslySetInnerHTML`){if(i.length>0)throw Error("Can only set one of `children` or `props.dangerouslySetInnerHTML`.");i=[r(c.__html)]}else if(c instanceof Promise)e[0]+=` ${s}="`,e.unshift(`"`,c);else if(typeof c==`function`){if(!s.startsWith(`on`)&&s!==`ref`)throw Error(`Invalid prop \'${s}\' of type \'function\' supplied to \'${t}\'.`)}else e[0]+=` ${s}="`,o(c.toString(),e),e[0]+=`"`}if(ke.includes(t)&&i.length===0){e[0]+=`/>`;return}e[0]+=`>`,P(i,e),e[0]+=`</${t}>`}},I=class extends F{toStringToBuffer(e){let{children:t}=this,n={...this.props};t.length&&(n.children=t.length===1?t[0]:t);let r=this.tag.call(null,n);if(!(typeof r==`boolean`||r==null))if(r instanceof Promise)if(v.length===0)e.unshift(``,r);else{let t=v.map(e=>[e,e.values.at(-1)]);e.unshift(``,r.then(e=>(e instanceof F&&(e.localContexts=t),e)))}else r instanceof F?r.toStringToBuffer(e):typeof r==`number`||r.isEscaped?(e[0]+=r,r.callbacks&&(e.callbacks||=[],e.callbacks.push(...r.callbacks))):o(r,e)}},je=class extends F{toStringToBuffer(e){P(this.children,e)}},Me=(e,t,...n)=>{t??={},n.length&&(t.children=n.length===1?n[0]:n);let r=t.key;delete t.key;let i=L(e,t,n);return i.key=r,i},Ne=!1,L=(e,t,n)=>{if(!Ne){for(let e in S)T[e][l]=S[e];Ne=!0}return typeof e==`function`?new I(e,t,n):T[e]?new I(T[e],t,n):e===`svg`||e===`head`?(M||=y(``),new F(e,t,[new I(M,{value:e},n)])):new F(e,t,n)},R=({children:e})=>new je(``,{children:e},Array.isArray(e)?e:e?[e]:[]),z=`_hp`,Pe={Change:`Input`,DoubleClick:`DblClick`},Fe={svg:`2000/svg`,math:`1998/Math/MathML`},B=[],Ie=new WeakMap,V=void 0,Le=()=>V,H=e=>`t`in e,Re={onClick:[`click`,!1]},ze=e=>{if(!e.startsWith(`on`))return;if(Re[e])return Re[e];let t=e.match(/^on([A-Z][a-zA-Z]+?(?:PointerCapture)?)(Capture)?$/);if(t){let[,n,r]=t;return Re[e]=[(Pe[n]||n).toLowerCase(),!!r]}},Be=(e,t)=>V&&e instanceof SVGElement&&/[A-Z]/.test(t)&&(t in e.style||t.match(/^(?:o|pai|str|u|ve)/))?t.replace(/([A-Z])/g,`-$1`).toLowerCase():t,Ve=e=>e==null||e===!1?null:e,He=(e,t)=>{`value`in t&&(e.value=Ve(t.value),!e.multiple&&e.selectedIndex===-1&&(e.selectedIndex=0))},Ue=e=>e instanceof DOMException&&e.name===`InvalidCharacterError`,We=(e,t,n)=>{t||={};for(let r in t){let i=t[r];if(r!==`children`&&(!n||n[r]!==i)){r=O(r);let t=ze(r);if(t){if(n?.[r]!==i&&(n&&e.removeEventListener(t[0],n[r],t[1]),i!=null)){if(typeof i!=`function`)throw Error(`Event handler for "${r}" is not a function`);e.addEventListener(t[0],i,t[1])}}else if(r===`dangerouslySetInnerHTML`&&i)e.innerHTML=i.__html;else if(r===`ref`){let t;typeof i==`function`?t=i(e)||(()=>i(null)):i&&`current`in i&&(i.current=e,t=()=>i.current=null),Ie.set(e,t)}else if(r===`style`){let t=e.style;typeof i==`string`?t.cssText=i:(t.cssText=``,i!=null&&De(i,t.setProperty.bind(t)))}else{if(r===`value`){let t=e.nodeName;if(t===`SELECT`)continue;if((t===`INPUT`||t===`TEXTAREA`)&&(e.value=Ve(i),t===`TEXTAREA`)){e.textContent=i;continue}}else (r===`checked`&&e.nodeName===`INPUT`||r===`selected`&&e.nodeName===`OPTION`)&&(e[r]=i);let t=Be(e,r);try{i==null||i===!1?e.removeAttribute(t):i===!0?e.setAttribute(t,``):typeof i==`string`||typeof i==`number`?e.setAttribute(t,i):e.setAttribute(t,i.toString())}catch(e){if(!Ue(e))throw e}}}}if(n)for(let r in n){let i=n[r];if(r!==`children`&&!(r in t)){r=O(r);let t=ze(r);if(t)e.removeEventListener(t[0],i,t[1]);else if(r===`ref`)Ie.get(e)?.();else try{e.removeAttribute(Be(e,r))}catch(e){if(!Ue(e))throw e}}}},Ge=(e,t)=>{t[d][0]=0,B.push([e,t]);let n=t.tag[l]||t.tag,r=n.defaultProps?{...n.defaultProps,...t.props}:t.props;try{return[n.call(null,r)]}finally{B.pop()}},Ke=(e,t,n,r,i)=>{e.vR?.length&&(r.push(...e.vR),delete e.vR),typeof e.tag==`function`&&e[d][1][1]?.forEach(e=>i.push(e)),e.vC.forEach(e=>{if(H(e))n.push(e);else if(typeof e.tag==`function`||e.tag===``){e.c=t;let a=n.length;if(Ke(e,t,n,r,i),e.s){for(let e=a;e<n.length;e++)n[e].s=!0;e.s=!1}}else n.push(e),e.vR?.length&&(r.push(...e.vR),delete e.vR)})},qe=e=>{for(;e&&(e.tag===z||!e.e);)e=e.tag===z||!e.vC?.[0]?e.nN:e.vC[0];return e?.e},Je=e=>{H(e)||(e[d]?.[1][1]?.forEach(e=>e[2]?.()),Ie.get(e.e)?.(),e.p===2&&e.vC?.forEach(e=>e.p=2),e.vC?.forEach(Je)),e.p||(e.e?.remove(),delete e.e),typeof e.tag==`function`&&(G.delete(e),U.delete(e),delete e[d][3],e.a=!0)},Ye=(e,t,n)=>{e.c=t,Qe(e,t,n)},Xe=(e,t)=>{if(t){for(let n=0,r=e.length;n<r;n++)if(e[n]===t)return n}},Ze=Symbol(),Qe=(e,t,n)=>{let r=[],i=[],a=[];Ke(e,t,r,i,a),i.forEach(Je);let o=n?void 0:t.childNodes,s,c=null;if(n)s=-1;else if(!o.length)s=0;else{let t=Xe(o,qe(e.nN));t===void 0?s=Xe(o,r.find(e=>e.tag!==z&&e.e)?.e)??-1:(c=o[t],s=t),s===-1&&(n=!0)}for(let e=0,i=r.length;e<i;e++,s++){let i=r[e],a;if(i.s&&i.e)a=i.e,i.s=!1;else{let e=n||!i.e;H(i)?(i.e&&i.d&&(i.e.textContent=i.t),i.d=!1,a=i.e||=document.createTextNode(i.t)):(a=i.e||=i.n?document.createElementNS(i.n,i.tag):document.createElement(i.tag),We(a,i.props,i.pP),Qe(i,a,e),i.tag===`select`&&He(a,i.props))}i.tag===z?s--:n?a.parentNode||t.appendChild(a):o[s]!==a&&o[s-1]!==a&&(o[s+1]===a?t.appendChild(o[s]):t.insertBefore(a,c||o[s]||null))}if(e.pP&&=void 0,a.length){let e=[],t=[];a.forEach(([,n,,r,i])=>{n&&e.push(n),r&&t.push(r),i?.()}),e.forEach(e=>e()),t.length&&requestAnimationFrame(()=>{t.forEach(e=>e())})}},$e=(e,t)=>!!(e&&e.length===t.length&&e.every((e,n)=>e[1]===t[n][1])),U=new WeakMap,W=(e,t,n)=>{let r=!n&&t.pC;n&&(t.pC||=t.vC);let i;try{n||=typeof t.tag==`function`?Ge(e,t):w(t.props.children),n[0]?.tag===``&&n[0][u]&&(i=n[0][u],e[5].push([e,i,t]));let a=r?[...t.pC]:t.vC?[...t.vC]:void 0,o=[],s;for(let r=0;r<n.length;r++){if(Array.isArray(n[r])){n.splice(r,1,...n[r].flat(1/0)),r--;continue}let i=et(n[r]);if(i){typeof i.tag==`function`&&!i.tag[f]&&(v.length>0&&(i[d][2]=v.map(e=>[e,e.values.at(-1)])),e[5]?.length&&(i[d][3]=e[5].at(-1)));let n;if(a&&a.length){let e=a.findIndex(H(i)?e=>H(e):i.key===void 0?e=>e.tag===i.tag:e=>e.key===i.key&&e.tag===i.tag);e!==-1&&(n=a[e],a.splice(e,1))}if(n)if(H(i))n.t!==i.t&&(n.t=i.t,n.d=!0),i=n;else{let e=n.pP=n.props;if(n.props=i.props,n.f||=i.f||t.f,typeof i.tag==`function`){let t=n[d][2];n[d][2]=i[d][2]||[],n[d][3]=i[d][3],!n.f&&((n.o||n)===i.o||n.tag[p]?.(e,n.props))&&$e(t,n[d][2])&&(n.s=!0)}i=n}else if(!H(i)&&V){let e=b(V);e&&(i.n=e)}if(!H(i)&&!i.s&&(W(e,i),delete i.f),o.push(i),s&&!s.s&&!i.s)for(let e=s;e&&!H(e);e=e.vC?.at(-1))e.nN=i;s=i}}t.vR=r?[...t.vC,...a||[]]:a||[],t.vC=o,r&&delete t.pC}catch(n){if(t.f=!0,n===Ze){if(i)return;throw n}let[r,a,o]=t[d]?.[3]||[];if(a){let t=()=>K([0,!1,e[2]],o),i=U.get(o)||[];i.push(t),U.set(o,i);let s=a(n,()=>{let e=U.get(o);if(e){let n=e.indexOf(t);if(n!==-1)return e.splice(n,1),t()}});if(s){if(e[0]===1)e[1]=!0;else if(W(e,o,[s]),(a.length===1||e!==r)&&o.c){Ye(o,o.c,!1);return}throw Ze}}throw n}finally{i&&e[5].pop()}},et=e=>{if(!(e==null||typeof e==`boolean`)){if(typeof e==`string`||typeof e==`number`)return{t:e.toString(),d:!0};if(`vR`in e&&(e={tag:e.tag,props:e.props,key:e.key,f:e.f,type:e.tag,ref:e.props.ref,o:e.o||e}),typeof e.tag==`function`)e[d]=[0,[]];else{let t=Fe[e.tag];t&&(V||=_(``),e.props.children=[{tag:V,props:{value:e.n=`http://www.w3.org/${t}`,children:e.props.children}}])}return e}},tt=(e,t,n)=>{e.c===t&&(e.c=n,e.vC.forEach(e=>tt(e,t,n)))},nt=(e,t)=>{t[d][2]?.forEach(([e,t])=>{e.values.push(t)});try{W(e,t,void 0)}catch{return}if(t.a){delete t.a;return}t[d][2]?.forEach(([e])=>{e.values.pop()}),(e[0]!==1||!e[1])&&Ye(t,t.c,!1)},G=new WeakMap,rt=[],K=async(e,t)=>{e[5]||=[];let n=G.get(t);n&&n[0](void 0);let r,i=new Promise(e=>r=e);if(G.set(t,[r,()=>{e[2]?e[2](e,t,e=>{nt(e,t)}).then(()=>r(t)):(nt(e,t),r(t))}]),rt.length)rt.at(-1).add(t);else{await Promise.resolve();let e=G.get(t);e&&(G.delete(t),e[1]())}return i},it=(e,t)=>{let n=[];n[5]=[],n[4]=!0,W(n,e,void 0),n[4]=!1;let r=document.createDocumentFragment();Ye(e,r,!0),tt(e,r,t),t.replaceChildren(r)},at=(e,t,n)=>({tag:z,props:{children:e},key:n,e:t,p:1}),ot=0,st=2,ct=3,lt=new WeakMap,ut=(e,t)=>!e||!t||e.length!==t.length||t.some((t,n)=>t!==e[n]),dt=void 0,ft=[],pt=e=>{let t=()=>typeof e==`function`?e():e,n=B.at(-1);if(!n)return[t(),()=>{}];let[,r]=n,i=r[d][1][ot]||=[],a=r[d][0]++;return i[a]||=[t(),e=>{let t=dt,n=i[a];if(typeof e==`function`&&(e=e(n[0])),!Object.is(e,n[0]))if(n[0]=e,ft.length){let[e,n]=ft.at(-1);Promise.all([e===3?r:K([e,!1,t],r),n]).then(([n])=>{if(!n||!(e===2||e===3))return;let r=n.vC;requestAnimationFrame(()=>{setTimeout(()=>{r===n.vC&&K([+(e===3),!1,t],n)})})})}else K([0,!1,t],r)}]},mt=(e,t,n)=>{let r=B.at(-1);if(!r)return;let[,i]=r,a=i[d][1][1]||=[],o=i[d][0]++,[s,,c]=a[o]||=[];if(ut(s,n)){c&&c();let r=()=>{i[e]=void 0,i[2]=t()},i=[n,void 0,void 0,void 0,void 0];i[e]=r,a[o]=i}},ht=(e,t)=>mt(3,e,t),gt=(e,t)=>{let n=B.at(-1);if(!n)return e;let[,r]=n,i=r[d][1][st]||=[],a=r[d][0]++,o=i[a];return ut(o?.[1],t)?i[a]=[e,t]:e=i[a][0],e},_t=e=>{let t=lt.get(e);if(t){if(t.length===2)throw t[1];return t[0]}throw e.then(t=>lt.set(e,[t]),t=>lt.set(e,[void 0,t])),e},vt=(e,t)=>{let n=B.at(-1);if(!n)return e();let[,r]=n,i=r[d][1][ct]||=[],a=r[d][0]++,o=i[a];return ut(o?.[1],t)&&(i[a]=[e(),t]),i[a][0]},yt=_({pending:!1,data:null,method:null,action:null}),bt=new Set,xt=e=>{bt.add(e),e.finally(()=>bt.delete(e))},St=t({button:()=>Ft,clearCache:()=>Ct,composeRef:()=>q,form:()=>Mt,input:()=>Pt,link:()=>kt,meta:()=>At,script:()=>Dt,style:()=>Ot,title:()=>Et}),Ct=()=>{wt=Object.create(null),Tt=Object.create(null)},q=(e,t)=>vt(()=>n=>{let r;e&&(typeof e==`function`?r=e(n)||(()=>{e(null)}):e&&`current`in e&&(e.current=n,r=()=>{e.current=null}));let i=t(n);return()=>{i?.(),r?.()}},[e]),wt=Object.create(null),Tt=Object.create(null),J=(e,t,n,r,i)=>{if(t?.itemProp)return{tag:e,props:t,type:e,ref:t.ref};let a=document.head,{onLoad:o,onError:s,precedence:c,blocking:l,...u}=t,d=null,f=!1,p=x[e],m=te(e,r),h=e=>e.getAttribute(`rel`)===`stylesheet`&&e.getAttribute(`data-precedence`)!==null,g;if(m){let n=a.querySelectorAll(e);LOOP:for(let r of n)if(!(e===`link`&&!h(r))){for(let e of p)if(r.getAttribute(e)===t[e]){d=r;break LOOP}}if(!d){let n=p.reduce((e,n)=>t[n]===void 0?e:`${e}-${n}-${t[n]}`,e);f=!Tt[n],d=Tt[n]||=(()=>{let n=document.createElement(e);for(let e of p)t[e]!==void 0&&n.setAttribute(e,t[e]);return t.rel&&n.setAttribute(`rel`,t.rel),n})()}}else g=a.querySelectorAll(e);c=r?c??``:void 0,r&&(u[C]=c);let _=gt(t=>{if(m){if(e===`link`&&c!==void 0){let n=!1;for(let r of a.querySelectorAll(e)){let e=r.getAttribute(C);if(e===null){a.insertBefore(t,r);return}if(n&&e!==c){a.insertBefore(t,r);return}e===c&&(n=!0)}a.appendChild(t);return}let n=!1;for(let r of a.querySelectorAll(e)){if(n&&r.getAttribute(`data-precedence`)!==c){a.insertBefore(t,r);return}r.getAttribute(`data-precedence`)===c&&(n=!0)}a.appendChild(t)}else if(e===`link`)a.contains(t)||a.appendChild(t);else if(g){let n=!1;for(let e of g)if(e===t){n=!0;break}n||a.insertBefore(t,a.contains(g[0])?g[0]:a.querySelector(e)),g=void 0}},[m,c,e]),v=q(t.ref,e=>{let t=p[0];if(n===2&&(e.innerHTML=``),(f||g)&&_(e),!s&&!o||!t)return;let r=wt[e.getAttribute(t)]||=new Promise((t,n)=>{e.addEventListener(`load`,t),e.addEventListener(`error`,n)});o&&(r=r.then(o)),s&&(r=r.catch(s)),r.catch(()=>{})});if(i&&l===`render`){let n=x[e][0];if(n&&t[n]){let e=t[n];_t(wt[e]||=new Promise((e,t)=>{_(d),d.addEventListener(`load`,e),d.addEventListener(`error`,t)}))}}let y={tag:e,type:e,props:{...u,ref:v},ref:v};return y.p=n,d&&(y.e=d),at(y,a)},Et=e=>{let t=Le();return(t&&b(t))?.endsWith(`svg`)?{tag:`title`,props:e,type:`title`,ref:e.ref}:J(`title`,e,void 0,!1,!1)},Dt=e=>!e||[`src`,`async`].some(t=>!e[t])?{tag:`script`,props:e,type:`script`,ref:e.ref}:J(`script`,e,1,!1,!0),Ot=e=>!e||![`href`,`precedence`].every(t=>t in e)?{tag:`style`,props:e,type:`style`,ref:e.ref}:(e[`data-href`]=e.href,delete e.href,J(`style`,e,2,!0,!0)),kt=e=>!e||[`onLoad`,`onError`].some(t=>t in e)||e.rel===`stylesheet`&&(!(`precedence`in e)||`disabled`in e)?{tag:`link`,props:e,type:`link`,ref:e.ref}:J(`link`,e,1,ee(e),!0),At=e=>J(`meta`,e,void 0,!1,!1),jt=Symbol(),Mt=e=>{let{action:t,...n}=e;typeof t!=`function`&&(n.action=t);let[r,i]=pt([null,!1]),a=gt(async e=>{let n=e.isTrusted?t:e.detail[jt];if(typeof n!=`function`)return;e.preventDefault();let r=new FormData(e.target);i([r,!0]);let a=n(r);a instanceof Promise&&(xt(a),await a),i([null,!0])},[]),o=q(e.ref,e=>(e.addEventListener(`submit`,a),()=>{e.removeEventListener(`submit`,a)})),[s,c]=r;return r[1]=!1,{tag:yt,props:{value:{pending:s!==null,data:s,method:s?`post`:null,action:s?t:null},children:{tag:`form`,props:{...n,ref:o},type:`form`,ref:o}},f:c}},Nt=(e,{formAction:t,...n})=>{if(typeof t==`function`){let e=gt(e=>{e.preventDefault(),e.currentTarget.form.dispatchEvent(new CustomEvent(`submit`,{detail:{[jt]:t}}))},[]);n.ref=q(n.ref,t=>(t.addEventListener(`click`,e),()=>{t.removeEventListener(`click`,e)}))}return{tag:e,props:n,type:e,ref:n.ref}},Pt=e=>Nt(`input`,e),Ft=e=>Nt(`button`,e);Object.assign(S,{title:Et,script:Dt,style:Ot,link:kt,meta:At,form:Mt,input:Pt,button:Ft});var It=(e,t,n)=>(typeof e==`string`&&St[e]&&(e=St[e]),{tag:e,type:e,props:t,key:n,ref:t.ref}),Lt=e=>It(``,e,void 0),Rt=(({children:e,fallback:t,fallbackRender:n,onError:r})=>{let i=Lt({children:e});return i[u]=e=>{if(e instanceof Promise)throw e;return r?.(e),n?.(e)||t},i}),zt=(({children:e,fallback:t})=>{let n=Lt({children:e});return n[u]=(e,n)=>{if(!(e instanceof Promise))throw e;return e.finally(n),t},n}),Bt=y(null),Vt=0,Ht=async({children:e,fallback:t})=>{Array.isArray(e)||(e=[e]);let i=b(Bt)?.scriptNonce,a=[],o={[d]:[0,[]]},s=e=>(B.pop(),e);try{o[d][0]=0,B.push([[],o]),a=e.map(e=>e==null||typeof e==`boolean`?``:e.toString())}catch(t){if(t instanceof Promise)a=[t.then(()=>(o[d][0]=0,B.push([[],o]),Y(e).then(s)))];else throw t}finally{s()}if(a.some(e=>e instanceof Promise)){let e=Vt++,o=await t.toString();return r(`<template id="H:${e}"></template>${o}<!--/$-->`,[...o.callbacks||[],({phase:t,buffer:o,context:s})=>{if(t!==n.BeforeStream)return Promise.all(a).then(async a=>{a=a.flat();let l=a.join(``);o&&(o[0]=o[0].replace(RegExp(`<template id="H:${e}"></template>.*?<!--/\\\\$-->`),l));let u=o?``:`<template data-hono-target="H:${e}">${l}</template><script${i?` nonce="${i}"`:``}>\n((d,c,n) => {\nc=d.currentScript.previousSibling\nd=d.getElementById(\'H:${e}\')\nif(!d)return\ndo{n=d.nextSibling;n.remove()}while(n.nodeType!=8||n.nodeValue!=\'/$\')\nd.replaceWith(c.content)\n})(document)\n<\\/script>`,d=a.map(e=>e.callbacks||[]).flat();return d.length?(t===n.Stream&&(u=await c(u,n.BeforeStream,!0,s)),r(u,d)):u})}])}else return r(a.join(``))};Ht[l]=zt,new TextEncoder;var Ut=0,Y=async e=>{try{return e.flat().map(e=>e==null||typeof e==`boolean`?``:e.toString())}catch(t){if(t instanceof Promise)return await t,Y(e);throw t}},Wt=e=>{if(e==null||typeof e==`boolean`)return``;if(typeof e==`string`)return e;{let t=e.toString();return t instanceof Promise?t:r(t)}},Gt=async({children:e,fallback:t,fallbackRender:i,onError:a})=>{if(!e)return r(``);Array.isArray(e)||(e=[e]);let o=b(Bt)?.scriptNonce,s,l=async()=>{let e=await t;typeof e==`string`?s=e:(s=await e?.toString(),typeof s==`string`&&(s=r(s)))},u=e=>(a?.(e),s||i&&Me(R,{},i(e))||``),d=[];try{d=e.map(Wt)}catch(t){await l(),d=t instanceof Promise?[t.then(()=>Y(e)).catch(e=>u(e))]:[u(t)]}if(d.some(e=>e instanceof Promise)){await l();let e=Ut++,t=RegExp(`(<template id="E:${e}"></template>.*?)(.*?)(<!--E:${e}-->)`),i=async({error:n,buffer:r})=>{let i=await R({children:u(n)}).toString();return r&&(r[0]=r[0].replace(t,i)),r?``:`<template data-hono-target="E:${e}">${i}</template><script>\n((d,c,n) => {\nc=d.currentScript.previousSibling\nd=d.getElementById(\'E:${e}\')\nif(!d)return\ndo{n=d.nextSibling;n.remove()}while(n.nodeType!=8||n.nodeValue!=\'E:${e}\')\nd.replaceWith(c.content)\n})(document)\n<\\/script>`},a,s=Promise.all(d).catch(e=>a=e);return r(`<template id="E:${e}"></template><!--E:${e}-->`,[({phase:l,buffer:u,context:d})=>{if(l!==n.BeforeStream)return s.then(async s=>{if(a)throw a;s=s.flat();let f=s.join(``),p=u?``:`<template data-hono-target="E:${e}">${f}</template><script${o?` nonce="${o}"`:``}>\n((d,c) => {\nc=d.currentScript.previousSibling\nd=d.getElementById(\'E:${e}\')\nif(!d)return\nd.parentElement.insertBefore(c.content,d.nextSibling)\n})(document)\n<\\/script>`;if(s.every(e=>!e.callbacks?.length))return u&&(u[0]=u[0].replace(t,f)),p;u&&(u[0]=u[0].replace(t,(e,t,n,r)=>`${t}${f}${r}`));let m=s.map(e=>e.callbacks||[]).flat();l===n.Stream&&(p=await c(p,n.BeforeStream,!0,d));let h=0,g=m.map(n=>(...a)=>n(...a)?.then(n=>(h++,u?(h===m.length&&(u[0]=u[0].replace(t,(e,t,n)=>n)),u[0]+=n,r(``,n.callbacks)):r(n+(h===m.length?`<script>\n((d,c,n) => {\nd=d.getElementById(\'E:${e}\')\nif(!d)return\nn=d.nextSibling\nwhile(n.nodeType!=8||n.nodeValue!=\'E:${e}\'){n=n.nextSibling}\nn.remove()\nd.remove()\n})(document)\n<\\/script>`:``),n.callbacks))).catch(e=>i({error:e,buffer:u})));return r(p,g)}).catch(e=>i({error:e,buffer:u}))}])}else return R({children:d})};Gt[l]=Rt;var Kt=(e,t={})=>{let n;return Object.keys(t).length>0&&console.warn(`createRoot options are not supported yet`),{render(t){if(n===null)throw Error(`Cannot update an unmounted root`);n?n(t):it(et({tag:()=>{let[e,r]=pt(t);return n=r,e},props:{}}),e)},unmount(){n?.(null),n=null}}},qt=(e,t,n={})=>{let r=Kt(e,n);return r.render(t),r};function Jt(){return ht(()=>{let e=document.querySelectorAll(`form`),t=[];return e.forEach(e=>{let n=e=>{if(e.defaultPrevented)return;let t=e.submitter;t&&t.type===`submit`&&(t.classList.add(`is-loading`),t.disabled=!0)};e.addEventListener(`submit`,n);let r=t=>{t.persisted&&e.querySelectorAll(`button[type=submit]`).forEach(e=>{e.classList.remove(`is-loading`),e.disabled=!1})};window.addEventListener(`pageshow`,r),t.push(()=>{e.removeEventListener(`submit`,n),window.removeEventListener(`pageshow`,r)})}),()=>{t.forEach(e=>e())}},[]),null}function Yt(){return ht(()=>{let e=document.querySelectorAll(`[data-password-toggle]`),t=[];return e.forEach(e=>{let n=e.querySelector(`input[type=\'password\'], input[data-password-input]`),r=e.querySelector(`[data-password-toggle-btn]`),i=r?.querySelector(`[data-show-icon]`),a=r?.querySelector(`[data-hide-icon]`);if(!n||!r||!i||!a)return;let o=e=>{e?(n.type=`text`,n.setAttribute(`data-password-input`,`text`),i.classList.add(`hidden`),a.classList.remove(`hidden`)):(n.type=`password`,n.setAttribute(`data-password-input`,`password`),a.classList.add(`hidden`),i.classList.remove(`hidden`))},s=e=>{e.preventDefault(),o(n.type===`password`)};r.addEventListener(`click`,s),t.push(()=>{r.removeEventListener(`click`,s)})}),()=>{t.forEach(e=>e())}},[]),null}function Xt(){return document.querySelectorAll(`[data-input-otp-container]`).forEach(e=>{let t=Array.from(e.querySelectorAll(`[data-input-otp-slot]`));if(!t.length)return;let n=e.closest(`form`),r=null;if(n&&t.length>0){let e=t[0]?.getAttribute(`name`);e&&(r=n.querySelector(`input[name="${e}"][type="hidden"]`),r||(r=document.createElement(`input`),r.type=`hidden`,r.name=e,n.appendChild(r)),t.forEach(e=>e.removeAttribute(`name`)))}let i=()=>{if(r){let e=t.map(e=>e.value).join(``);r.value=e,e.length===t.length&&n&&setTimeout(()=>{n.requestSubmit()},100)}};t.forEach((e,n)=>{e.addEventListener(`input`,e=>{let r=e.target,a=r.value;a=a.replace(/[^0-9]/g,``),a.length>1&&(a=a.charAt(0)),r.value=a,a&&n<t.length-1&&t[n+1]?.focus(),i()}),e.addEventListener(`paste`,e=>{e.preventDefault();let r=(e.clipboardData?.getData(`text`)||``).replace(/[^0-9]/g,``);for(let e=0;e<Math.min(r.length,t.length-n);e++){let i=t[n+e],a=r.charAt(e);i&&a&&(i.value=a)}let a=t.findIndex((e,t)=>t>=n&&!e.value);a===-1?t[Math.min(n+r.length,t.length-1)]?.focus():t[a]?.focus(),i()}),e.addEventListener(`keydown`,e=>{if(e.key===`Backspace`){let r=e.target;if(!r.value&&n>0){e.preventDefault();let r=t[n-1];r&&(r.value=``,r.focus()),i()}else r.value&&setTimeout(()=>i(),0)}else e.key===`ArrowLeft`&&n>0?(e.preventDefault(),t[n-1]?.focus()):e.key===`ArrowRight`&&n<t.length-1&&(e.preventDefault(),t[n+1]?.focus())}),e.addEventListener(`focus`,()=>{e.select()})}),i()}),null}var Zt={d:(e,t)=>{for(var n in t)Zt.o(t,n)&&!Zt.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},Qt={};Zt.d(Qt,{A:()=>en,k:()=>$t});var X=function(e,t,n,r){return new(n||=Promise)(function(i,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}c((r=r.apply(e,t||[])).next())})},Z=function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},typeof Symbol==`function`&&(a[Symbol.iterator]=function(){return this}),a;function s(s){return function(c){return function(s){if(n)throw TypeError(`Generator is already executing.`);for(;a&&(a=0,s[0]&&(o=0)),o;)try{if(n=1,r&&(i=2&s[0]?r.return:s[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,s[1])).done)return i;switch(r=0,i&&(s=[2&s[0],i.value]),s[0]){case 0:case 1:i=s;break;case 4:return o.label++,{value:s[1],done:!1};case 5:o.label++,r=s[1],s=[0];continue;case 7:s=o.ops.pop(),o.trys.pop();continue;default:if(i=o.trys,!((i=i.length>0&&i[i.length-1])||s[0]!==6&&s[0]!==2)){o=0;continue}if(s[0]===3&&(!i||s[1]>i[0]&&s[1]<i[3])){o.label=s[1];break}if(s[0]===6&&o.label<i[1]){o.label=i[1],i=s;break}if(i&&o.label<i[2]){o.label=i[2],o.ops.push(s);break}i[2]&&o.ops.pop(),o.trys.pop();continue}s=t.call(e,o)}catch(e){s=[6,e],r=0}finally{n=i=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,c])}}};function $t(){return X(this,void 0,Promise,function(){return Z(this,function(e){switch(e.label){case 0:return[4,new Promise(function(e,t){var n=`Unknown`,r=!1;function i(t){r||(r=!0,e({isPrivate:t,browserName:n}))}function a(){var e=0,t=-1;try{t.toFixed(t)}catch(t){e=t.message.length}return e}function o(){return X(this,void 0,void 0,function(){var e,t;return Z(this,function(n){switch(n.label){case 0:return n.trys.push([0,2,,3]),[4,navigator.storage.getDirectory()];case 1:return n.sent(),i(!1),[3,3];case 2:return e=n.sent(),t=e instanceof Error&&typeof e.message==`string`?e.message:String(e),i(t.includes(`unknown transient reason`)),[3,3];case 3:return[2]}})})}function s(){return X(this,void 0,Promise,function(){return Z(this,function(e){switch(e.label){case 0:return typeof navigator.storage?.getDirectory==`function`?[4,o()]:[3,2];case 1:return e.sent(),[3,3];case 2:navigator.maxTouchPoints===void 0?function(){var e=window.openDatabase,t=window.localStorage;try{e(null,null,null,null)}catch{i(!0);return}try{t.setItem(`test`,`1`),t.removeItem(`test`)}catch{i(!0);return}i(!1)}():function(){var e=String(Math.random());try{var t=indexedDB.open(e,1);t.onupgradeneeded=function(t){var n=t.target.result,r=function(e){i(e)};try{n.createObjectStore(`t`,{autoIncrement:!0}).put(new Blob),r(!1)}catch(e){(e instanceof Error&&typeof e.message==`string`?e.message:String(e)).includes(`are not yet supported`)?r(!0):r(!1)}finally{n.close(),indexedDB.deleteDatabase(e)}},t.onerror=function(){return i(!1)}}catch{i(!1)}}(),e.label=3;case 3:return[2]}})})}function c(){return X(this,void 0,Promise,function(){var e,t,n;return Z(this,function(r){switch(r.label){case 0:if(typeof navigator.storage?.getDirectory!=`function`)return[3,5];r.label=1;case 1:return r.trys.push([1,3,,4]),[4,navigator.storage.getDirectory()];case 2:return r.sent(),i(!1),[3,4];case 3:return e=r.sent(),t=e instanceof Error&&typeof e.message==`string`?e.message:String(e),i(t.includes(`Security error`)),[2];case 4:return[3,6];case 5:(n=indexedDB.open(`inPrivate`)).onerror=function(e){n.error&&n.error.name===`InvalidStateError`&&e.preventDefault(),i(!0)},n.onsuccess=function(){indexedDB.deleteDatabase(`inPrivate`),i(!1)},r.label=6;case 6:return[2]}})})}(function(){return X(this,void 0,Promise,function(){return Z(this,function(e){switch(e.label){case 0:return a()!==44&&a()!==43?[3,2]:(n=`Safari`,[4,s()]);case 1:return e.sent(),[3,6];case 2:return a()===51?(o=navigator.userAgent,n=o.match(/Chrome/)?navigator.brave===void 0?o.match(/Edg/)?`Edge`:o.match(/OPR/)?`Opera`:`Chrome`:`Brave`:`Chromium`,(r=new Worker(URL.createObjectURL(new Blob([`(async()=>{try{const r=await navigator.storage.getDirectory(),f=await(await r.getFileHandle(\'_\',{create:true})).createSyncAccessHandle(),b=new Uint8Array(1);let m=1/0;for(let i=0;i<3;i++){f.write(b,{at:0});const s=performance.now();f.flush();const dt=performance.now()-s;if(dt<m)m=dt}f.close();postMessage(m<.1)}catch{postMessage(false)}})()`])))).onmessage=function(e){r.terminate(),i(e.data)},[3,6]):[3,3];case 3:return a()===25?(n=`Firefox`,[4,c()]):[3,5];case 4:return e.sent(),[3,6];case 5:navigator.msSaveBlob===void 0?t(Error(`detectIncognito cannot determine the browser`)):(n=`Internet Explorer`,i(window.indexedDB===void 0)),e.label=6;case 6:return[2]}var r,o})})})().catch(t)})];case 1:return[2,e.sent()]}})})}typeof window<`u`&&(window.detectIncognito=$t);var en=$t;Qt.A;var tn=Qt.k,Q=`authhero_incognito_mode`;function nn(){try{let e=sessionStorage.getItem(Q);return e===null?void 0:e===`true`}catch{return}}async function rn(){try{let e=sessionStorage.getItem(Q);if(e!==null)return e===`true`;let{isPrivate:t}=await tn();return sessionStorage.setItem(Q,t.toString()),t}catch{try{sessionStorage.setItem(Q,`false`)}catch{}return!1}}var an=()=>{let e=nn();if(e!==void 0){e&&on();return}rn().then(e=>{e&&on()}).catch(()=>{})};function on(){let e=document.getElementById(`incognito-warning-container`);e&&e.classList.remove(`hidden`)}function $(e,t,n){let r;if(!t||!(`children`in t))r=L(e,t,[]);else{let n=t.children;r=Array.isArray(n)?L(e,t,n):L(e,t,[n])}return r.key=n,r}an();var sn=document.getElementById(`client-root`);sn&&qt(sn,$(R,{children:[$(Jt,{}),$(Yt,{}),$(Xt,{})]}));',K3=s((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.fromCodePoint=void 0,e.replaceCodePoint=n,e.decodeCodePoint=r;var t=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]);e.fromCodePoint=String.fromCodePoint??(e=>{let t=``;return e>65535&&(e-=65536,t+=String.fromCharCode(e>>>10&1023|55296),e=56320|e&1023),t+=String.fromCharCode(e),t});function n(e){return e>=55296&&e<=57343||e>1114111?65533:t.get(e)??e}function r(t){return(0,e.fromCodePoint)(n(t))}})),q3=s((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.decodeBase64=t;function t(e){let t=typeof atob==`function`?atob(e):typeof Buffer.from==`function`?Buffer.from(e,`base64`).toString(`binary`):new Buffer(e,`base64`).toString(`binary`),n=t.length&-2,r=new Uint16Array(n/2);for(let e=0,i=0;e<n;e+=2){let n=t.charCodeAt(e),a=t.charCodeAt(e+1);r[i++]=n|a<<8}return r}})),J3=s((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.htmlDecodeTree=void 0,e.htmlDecodeTree=(0,q3().decodeBase64)(`QR08ALkAAgH6AYsDNQR2BO0EPgXZBQEGLAbdBxMISQrvCmQLfQurDKQNLw4fD4YPpA+6D/IPAAAAAAAAAAAAAAAAKhBMEY8TmxUWF2EYLBkxGuAa3RsJHDscWR8YIC8jSCSIJcMl6ie3Ku8rEC0CLjoupS7kLgAIRU1hYmNmZ2xtbm9wcnN0dVQAWgBeAGUAaQBzAHcAfgCBAIQAhwCSAJoAoACsALMAbABpAGcAO4DGAMZAUAA7gCYAJkBjAHUAdABlADuAwQDBQHIiZXZlAAJhAAFpeW0AcgByAGMAO4DCAMJAEGRyAADgNdgE3XIAYQB2AGUAO4DAAMBA8CFoYZFj4SFjcgBhZAAAoFMqAAFncIsAjgBvAG4ABGFmAADgNdg43fAlbHlGdW5jdGlvbgCgYSBpAG4AZwA7gMUAxUAAAWNzpACoAHIAAOA12Jzc6SFnbgCgVCJpAGwAZABlADuAwwDDQG0AbAA7gMQAxEAABGFjZWZvcnN1xQDYANoA7QDxAPYA+QD8AAABY3LJAM8AayNzbGFzaAAAoBYidgHTANUAAKDnKmUAZAAAoAYjeQARZIABY3J0AOAA5QDrAGEidXNlAACgNSLuI291bGxpcwCgLCFhAJJjcgAA4DXYBd1wAGYAAOA12Dnd5SF2ZdhiYwDyAOoAbSJwZXEAAKBOIgAHSE9hY2RlZmhpbG9yc3UXARoBHwE6AVIBVQFiAWQBZgGCAakB6QHtAfIBYwB5ACdkUABZADuAqQCpQIABY3B5ACUBKAE1AfUhdGUGYWmg0iJ0KGFsRGlmZmVyZW50aWFsRAAAoEUhbCJleXMAAKAtIQACYWVpb0EBRAFKAU0B8iFvbgxhZABpAGwAO4DHAMdAcgBjAAhhbiJpbnQAAKAwIm8AdAAKYQABZG5ZAV0BaSJsbGEAuGB0I2VyRG90ALdg8gA5AWkAp2NyImNsZQAAAkRNUFRwAXQBeQF9AW8AdAAAoJkiaSJudXMAAKCWIuwhdXMAoJUiaSJtZXMAAKCXIm8AAAFjc4cBlAFrKndpc2VDb250b3VySW50ZWdyYWwAAKAyImUjQ3VybHkAAAFEUZwBpAFvJXVibGVRdW90ZQAAoB0gdSJvdGUAAKAZIAACbG5wdbABtgHNAdgBbwBuAGWgNyIAoHQqgAFnaXQAvAHBAcUB8iJ1ZW50AKBhIm4AdAAAoC8i7yV1ckludGVncmFsAKAuIgABZnLRAdMBAKACIe8iZHVjdACgECJuLnRlckNsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbAAAoDMi7yFzcwCgLypjAHIAAOA12J7ccABDoNMiYQBwAACgTSKABURKU1phY2VmaW9zAAsCEgIVAhgCGwIsAjQCOQI9AnMCfwNvoEUh9CJyYWhkAKARKWMAeQACZGMAeQAFZGMAeQAPZIABZ3JzACECJQIoAuchZXIAoCEgcgAAoKEhaAB2AACg5CoAAWF5MAIzAvIhb24OYRRkbAB0oAciYQCUY3IAAOA12AfdAAFhZkECawIAAWNtRQJnAvIjaXRpY2FsAAJBREdUUAJUAl8CYwJjInV0ZQC0YG8AdAFZAloC2WJiJGxlQWN1dGUA3WJyImF2ZQBgYGkibGRlANxi7yFuZACgxCJmJWVyZW50aWFsRAAAoEYhcAR9AgAAAAAAAIECjgIAABoDZgAA4DXYO91EoagAhQKJAm8AdAAAoNwgcSJ1YWwAAKBQIuIhbGUAA0NETFJVVpkCqAK1Au8C/wIRA28AbgB0AG8AdQByAEkAbgB0AGUAZwByAGEA7ADEAW8AdAKvAgAAAACwAqhgbiNBcnJvdwAAoNMhAAFlb7kC0AJmAHQAgAFBUlQAwQLGAs0CciJyb3cAAKDQIekkZ2h0QXJyb3cAoNQhZQDlACsCbgBnAAABTFLWAugC5SFmdAABQVLcAuECciJyb3cAAKD4J+kkZ2h0QXJyb3cAoPon6SRnaHRBcnJvdwCg+SdpImdodAAAAUFU9gL7AnIicm93AACg0iFlAGUAAKCoInAAQQIGAwAAAAALA3Iicm93AACg0SFvJHduQXJyb3cAAKDVIWUlcnRpY2FsQmFyAACgJSJuAAADQUJMUlRhJAM2AzoDWgNxA3oDciJyb3cAAKGTIUJVLAMwA2EAcgAAoBMpcCNBcnJvdwAAoPUhciJldmUAEWPlIWZ00gJDAwAASwMAAFIDaSVnaHRWZWN0b3IAAKBQKWUkZVZlY3RvcgAAoF4p5SJjdG9yQqC9IWEAcgAAoFYpaSJnaHQA1AFiAwAAaQNlJGVWZWN0b3IAAKBfKeUiY3RvckKgwSFhAHIAAKBXKWUAZQBBoKQiciJyb3cAAKCnIXIAcgBvAPcAtAIAAWN0gwOHA3IAAOA12J/c8iFvaxBhAAhOVGFjZGZnbG1vcHFzdHV4owOlA6kDsAO/A8IDxgPNA9ID8gP9AwEEFAQeBCAEJQRHAEphSAA7gNAA0EBjAHUAdABlADuAyQDJQIABYWl5ALYDuQO+A/Ihb24aYXIAYwA7gMoAykAtZG8AdAAWYXIAAOA12AjdcgBhAHYAZQA7gMgAyEDlIm1lbnQAoAgiAAFhcNYD2QNjAHIAEmF0AHkAUwLhAwAAAADpA20lYWxsU3F1YXJlAACg+yVlJ3J5U21hbGxTcXVhcmUAAKCrJQABZ3D2A/kDbwBuABhhZgAA4DXYPN3zImlsb26VY3UAAAFhaQYEDgRsAFSgdSppImxkZQAAoEIi7CNpYnJpdW0AoMwhAAFjaRgEGwRyAACgMCFtAACgcyphAJdjbQBsADuAywDLQAABaXApBC0E8yF0cwCgAyLvJG5lbnRpYWxFAKBHIYACY2Zpb3MAPQQ/BEMEXQRyBHkAJGRyAADgNdgJ3WwibGVkAFMCTAQAAAAAVARtJWFsbFNxdWFyZQAAoPwlZSdyeVNtYWxsU3F1YXJlAACgqiVwA2UEAABpBAAAAABtBGYAAOA12D3dwSFsbACgACLyI2llcnRyZgCgMSFjAPIAcQQABkpUYWJjZGZnb3JzdIgEiwSOBJMElwSkBKcEqwStBLIE5QTqBGMAeQADZDuAPgA+QO0hbWFkoJMD3GNyImV2ZQAeYYABZWl5AJ0EoASjBOQhaWwiYXIAYwAcYRNkbwB0ACBhcgAA4DXYCt0AoNkicABmAADgNdg+3eUiYXRlcgADRUZHTFNUvwTIBM8E1QTZBOAEcSJ1YWwATKBlIuUhc3MAoNsidSRsbEVxdWFsAACgZyJyI2VhdGVyAACgoirlIXNzAKB3IuwkYW50RXF1YWwAoH4qaSJsZGUAAKBzImMAcgAA4DXYotwAoGsiAARBYWNmaW9zdfkE/QQFBQgFCwUTBSIFKwVSIkRjeQAqZAABY3QBBQQFZQBrAMdiXmDpIXJjJGFyAACgDCFsJWJlcnRTcGFjZQAAoAsh8AEYBQAAGwVmAACgDSHpJXpvbnRhbExpbmUAoAAlAAFjdCYFKAXyABIF8iFvayZhbQBwAEQBMQU5BW8AdwBuAEgAdQBtAPAAAAFxInVhbAAAoE8iAAdFSk9hY2RmZ21ub3N0dVMFVgVZBVwFYwVtBXAFcwV6BZAFtgXFBckFzQVjAHkAFWTsIWlnMmFjAHkAAWRjAHUAdABlADuAzQDNQAABaXlnBWwFcgBjADuAzgDOQBhkbwB0ADBhcgAAoBEhcgBhAHYAZQA7gMwAzEAAoREhYXB/BYsFAAFjZ4MFhQVyACphaSNuYXJ5SQAAoEghbABpAGUA8wD6AvQBlQUAAKUFZaAsIgABZ3KaBZ4F8iFhbACgKyLzI2VjdGlvbgCgwiJpI3NpYmxlAAABQ1SsBbEFbyJtbWEAAKBjIGkibWVzAACgYiCAAWdwdAC8Bb8FwwVvAG4ALmFmAADgNdhA3WEAmWNjAHIAAKAQIWkibGRlAChh6wHSBQAA1QVjAHkABmRsADuAzwDPQIACY2Zvc3UA4QXpBe0F8gX9BQABaXnlBegFcgBjADRhGWRyAADgNdgN3XAAZgAA4DXYQd3jAfcFAAD7BXIAAOA12KXc8iFjeQhk6yFjeQRkgANISmFjZm9zAAwGDwYSBhUGHQYhBiYGYwB5ACVkYwB5AAxk8CFwYZpjAAFleRkGHAbkIWlsNmEaZHIAAOA12A7dcABmAADgNdhC3WMAcgAA4DXYptyABUpUYWNlZmxtb3N0AD0GQAZDBl4GawZkB2gHcAd0B80H2gdjAHkACWQ7gDwAPECAAmNtbnByAEwGTwZSBlUGWwb1IXRlOWHiIWRhm2NnAACg6ifsI2FjZXRyZgCgEiFyAACgniGAAWFleQBkBmcGagbyIW9uPWHkIWlsO2EbZAABZnNvBjQHdAAABUFDREZSVFVWYXKABp4GpAbGBssG3AYDByEHwQIqBwABbnKEBowGZyVsZUJyYWNrZXQAAKDoJ/Ihb3cAoZAhQlKTBpcGYQByAACg5CHpJGdodEFycm93AKDGIWUjaWxpbmcAAKAII28A9QGqBgAAsgZiJWxlQnJhY2tldAAAoOYnbgDUAbcGAAC+BmUkZVZlY3RvcgAAoGEp5SJjdG9yQqDDIWEAcgAAoFkpbCJvb3IAAKAKI2kiZ2h0AAABQVbSBtcGciJyb3cAAKCUIeUiY3RvcgCgTikAAWVy4AbwBmUAAKGjIkFW5gbrBnIicm93AACgpCHlImN0b3IAoFopaSNhbmdsZQBCorIi+wYAAAAA/wZhAHIAAKDPKXEidWFsAACgtCJwAIABRFRWAAoHEQcYB+8kd25WZWN0b3IAoFEpZSRlVmVjdG9yAACgYCnlImN0b3JCoL8hYQByAACgWCnlImN0b3JCoLwhYQByAACgUilpAGcAaAB0AGEAcgByAG8A9wDMAnMAAANFRkdMU1Q/B0cHTgdUB1gHXwfxJXVhbEdyZWF0ZXIAoNoidSRsbEVxdWFsAACgZiJyI2VhdGVyAACgdiLlIXNzAKChKuwkYW50RXF1YWwAoH0qaSJsZGUAAKByInIAAOA12A/dZaDYIuYjdGFycm93AKDaIWkiZG90AD9hgAFucHcAege1B7kHZwAAAkxSbHKCB5QHmwerB+UhZnQAAUFSiAeNB3Iicm93AACg9SfpJGdodEFycm93AKD3J+kkZ2h0QXJyb3cAoPYn5SFmdAABYXLcAqEHaQBnAGgAdABhAHIAcgBvAPcA5wJpAGcAaAB0AGEAcgByAG8A9wDuAmYAAOA12EPdZQByAAABTFK/B8YHZSRmdEFycm93AACgmSHpJGdodEFycm93AKCYIYABY2h0ANMH1QfXB/IAWgYAoLAh8iFva0FhAKBqIgAEYWNlZmlvc3XpB+wH7gf/BwMICQgOCBEIcAAAoAUpeQAcZAABZGzyB/kHaSR1bVNwYWNlAACgXyBsI2ludHJmAACgMyFyAADgNdgQ3e4jdXNQbHVzAKATInAAZgAA4DXYRN1jAPIA/gecY4AESmFjZWZvc3R1ACEIJAgoCDUIgQiFCDsKQApHCmMAeQAKZGMidXRlAENhgAFhZXkALggxCDQI8iFvbkdh5CFpbEVhHWSAAWdzdwA7CGEIfQjhInRpdmWAAU1UVgBECEwIWQhlJWRpdW1TcGFjZQAAoAsgaABpAAABY25SCFMIawBTAHAAYQBjAOUASwhlAHIAeQBUAGgAaQDuAFQI9CFlZAABR0xnCHUIcgBlAGEAdABlAHIARwByAGUAYQB0AGUA8gDrBGUAcwBzAEwAZQBzAPMA2wdMImluZQAKYHIAAOA12BHdAAJCbnB0jAiRCJkInAhyImVhawAAoGAgwiZyZWFraW5nU3BhY2WgYGYAAKAVIUOq7CqzCMIIzQgAAOcIGwkAAAAAAAAtCQAAbwkAAIcJAACdCcAJGQoAADQKAAFvdbYIvAjuI2dydWVudACgYiJwIkNhcAAAoG0ibyh1YmxlVmVydGljYWxCYXIAAKAmIoABbHF4ANII1wjhCOUibWVudACgCSL1IWFsVKBgImkibGRlAADgQiI4A2kic3RzAACgBCJyI2VhdGVyAACjbyJFRkdMU1T1CPoIAgkJCQ0JFQlxInVhbAAAoHEidSRsbEVxdWFsAADgZyI4A3IjZWF0ZXIAAOBrIjgD5SFzcwCgeSLsJGFudEVxdWFsAOB+KjgDaSJsZGUAAKB1IvUhbXBEASAJJwnvI3duSHVtcADgTiI4A3EidWFsAADgTyI4A2UAAAFmczEJRgn0JFRyaWFuZ2xlQqLqIj0JAAAAAEIJYQByAADgzyk4A3EidWFsAACg7CJzAICibiJFR0xTVABRCVYJXAlhCWkJcSJ1YWwAAKBwInIjZWF0ZXIAAKB4IuUhc3MA4GoiOAPsJGFudEVxdWFsAOB9KjgDaSJsZGUAAKB0IuUic3RlZAABR0x1CX8J8iZlYXRlckdyZWF0ZXIA4KIqOAPlI3NzTGVzcwDgoSo4A/IjZWNlZGVzAKGAIkVTjwmVCXEidWFsAADgryo4A+wkYW50RXF1YWwAoOAiAAFlaaAJqQl2JmVyc2VFbGVtZW50AACgDCLnJWh0VHJpYW5nbGVCousitgkAAAAAuwlhAHIAAODQKTgDcSJ1YWwAAKDtIgABcXXDCeAJdSNhcmVTdQAAAWJwywnVCfMhZXRF4I8iOANxInVhbAAAoOIi5SJyc2V0ReCQIjgDcSJ1YWwAAKDjIoABYmNwAOYJ8AkNCvMhZXRF4IIi0iBxInVhbAAAoIgi4yJlZWRzgKGBIkVTVAD6CQAKBwpxInVhbAAA4LAqOAPsJGFudEVxdWFsAKDhImkibGRlAADgfyI4A+UicnNldEXggyLSIHEidWFsAACgiSJpImxkZQCAoUEiRUZUACIKJwouCnEidWFsAACgRCJ1JGxsRXF1YWwAAKBHImkibGRlAACgSSJlJXJ0aWNhbEJhcgAAoCQiYwByAADgNdip3GkAbABkAGUAO4DRANFAnWMAB0VhY2RmZ21vcHJzdHV2XgphCmgKcgp2CnoKgQqRCpYKqwqtCrsKyArNCuwhaWdSYWMAdQB0AGUAO4DTANNAAAFpeWwKcQpyAGMAO4DUANRAHmRiImxhYwBQYXIAAOA12BLdcgBhAHYAZQA7gNIA0kCAAWFlaQCHCooKjQpjAHIATGFnAGEAqWNjInJvbgCfY3AAZgAA4DXYRt3lI25DdXJseQABRFGeCqYKbyV1YmxlUXVvdGUAAKAcIHUib3RlAACgGCAAoFQqAAFjbLEKtQpyAADgNdiq3GEAcwBoADuA2ADYQGkAbAHACsUKZABlADuA1QDVQGUAcwAAoDcqbQBsADuA1gDWQGUAcgAAAUJQ0wrmCgABYXLXCtoKcgAAoD4gYQBjAAABZWvgCuIKAKDeI2UAdAAAoLQjYSVyZW50aGVzaXMAAKDcI4AEYWNmaGlsb3JzAP0KAwsFCwkLCwsMCxELIwtaC3IjdGlhbEQAAKACInkAH2RyAADgNdgT3WkApmOgY/Ujc01pbnVzsWAAAWlwFQsgC24AYwBhAHIAZQBwAGwAYQBuAOUACgVmAACgGSGAobsqZWlvACoLRQtJC+MiZWRlc4CheiJFU1QANAs5C0ALcSJ1YWwAAKCvKuwkYW50RXF1YWwAoHwiaSJsZGUAAKB+Im0AZQAAoDMgAAFkcE0LUQv1IWN0AKAPIm8jcnRpb24AYaA3ImwAAKAdIgABY2leC2ILcgAA4DXYq9yoYwACVWZvc2oLbwtzC3cLTwBUADuAIgAiQHIAAOA12BTdcABmAACgGiFjAHIAAOA12KzcAAZCRWFjZWZoaW9yc3WPC5MLlwupC7YL2AvbC90LhQyTDJoMowzhIXJyAKAQKUcAO4CuAK5AgAFjbnIAnQugC6ML9SF0ZVRhZwAAoOsncgB0oKAhbAAAoBYpgAFhZXkArwuyC7UL8iFvblhh5CFpbFZhIGR2oBwhZSJyc2UAAAFFVb8LzwsAAWxxwwvIC+UibWVudACgCyL1JGlsaWJyaXVtAKDLIXAmRXF1aWxpYnJpdW0AAKBvKXIAAKAcIW8AoWPnIWh0AARBQ0RGVFVWYewLCgwQDDIMNwxeDHwM9gIAAW5y8Av4C2clbGVCcmFja2V0AACg6SfyIW93AKGSIUJM/wsDDGEAcgAAoOUhZSRmdEFycm93AACgxCFlI2lsaW5nAACgCSNvAPUBFgwAAB4MYiVsZUJyYWNrZXQAAKDnJ24A1AEjDAAAKgxlJGVWZWN0b3IAAKBdKeUiY3RvckKgwiFhAHIAAKBVKWwib29yAACgCyMAAWVyOwxLDGUAAKGiIkFWQQxGDHIicm93AACgpiHlImN0b3IAoFspaSNhbmdsZQBCorMiVgwAAAAAWgxhAHIAAKDQKXEidWFsAACgtSJwAIABRFRWAGUMbAxzDO8kd25WZWN0b3IAoE8pZSRlVmVjdG9yAACgXCnlImN0b3JCoL4hYQByAACgVCnlImN0b3JCoMAhYQByAACgUykAAXB1iQyMDGYAAKAdIe4kZEltcGxpZXMAoHAp6SRnaHRhcnJvdwCg2yEAAWNongyhDHIAAKAbIQCgsSHsJGVEZWxheWVkAKD0KYAGSE9hY2ZoaW1vcXN0dQC/DMgMzAzQDOIM5gwKDQ0NFA0ZDU8NVA1YDQABQ2PDDMYMyCFjeSlkeQAoZEYiVGN5ACxkYyJ1dGUAWmEAorwqYWVpedgM2wzeDOEM8iFvbmBh5CFpbF5hcgBjAFxhIWRyAADgNdgW3e8hcnQAAkRMUlXvDPYM/QwEDW8kd25BcnJvdwAAoJMhZSRmdEFycm93AACgkCHpJGdodEFycm93AKCSIXAjQXJyb3cAAKCRIechbWGjY+EkbGxDaXJjbGUAoBgicABmAADgNdhK3XICHw0AAAAAIg10AACgGiLhIXJlgKGhJUlTVQAqDTINSg3uJXRlcnNlY3Rpb24AoJMidQAAAWJwNw1ADfMhZXRFoI8icSJ1YWwAAKCRIuUicnNldEWgkCJxInVhbAAAoJIibiJpb24AAKCUImMAcgAA4DXYrtxhAHIAAKDGIgACYmNtcF8Nag2ODZANc6DQImUAdABFoNAicSJ1YWwAAKCGIgABY2huDYkNZSJlZHMAgKF7IkVTVAB4DX0NhA1xInVhbAAAoLAq7CRhbnRFcXVhbACgfSJpImxkZQAAoH8iVABoAGEA9ADHCwCgESIAodEiZXOVDZ8NciJzZXQARaCDInEidWFsAACghyJlAHQAAKDRIoAFSFJTYWNmaGlvcnMAtQ27Db8NyA3ODdsN3w3+DRgOHQ4jDk8AUgBOADuA3gDeQMEhREUAoCIhAAFIY8MNxg1jAHkAC2R5ACZkAAFidcwNzQ0JYKRjgAFhZXkA1A3XDdoN8iFvbmRh5CFpbGJhImRyAADgNdgX3QABZWnjDe4N8gHoDQAA7Q3lImZvcmUAoDQiYQCYYwABY27yDfkNayNTcGFjZQAA4F8gCiDTInBhY2UAoAkg7CFkZYChPCJFRlQABw4MDhMOcSJ1YWwAAKBDInUkbGxFcXVhbAAAoEUiaSJsZGUAAKBIInAAZgAA4DXYS93pI3BsZURvdACg2yAAAWN0Jw4rDnIAAOA12K/c8iFva2Zh4QpFDlYOYA5qDgAAbg5yDgAAAAAAAAAAAAB5DnwOqA6zDgAADg8RDxYPGg8AAWNySA5ODnUAdABlADuA2gDaQHIAb6CfIeMhaXIAoEkpcgDjAVsOAABdDnkADmR2AGUAbGEAAWl5Yw5oDnIAYwA7gNsA20AjZGIibGFjAHBhcgAA4DXYGN1yAGEAdgBlADuA2QDZQOEhY3JqYQABZGl/Dp8OZQByAAABQlCFDpcOAAFhcokOiw5yAF9gYQBjAAABZWuRDpMOAKDfI2UAdAAAoLUjYSVyZW50aGVzaXMAAKDdI28AbgBQoMMi7CF1cwCgjiIAAWdwqw6uDm8AbgByYWYAAOA12EzdAARBREVUYWRwc78O0g7ZDuEOBQPqDvMOBw9yInJvdwDCoZEhyA4AAMwOYQByAACgEilvJHduQXJyb3cAAKDFIW8kd25BcnJvdwAAoJUhcSV1aWxpYnJpdW0AAKBuKWUAZQBBoKUiciJyb3cAAKClIW8AdwBuAGEAcgByAG8A9wAQA2UAcgAAAUxS+Q4AD2UkZnRBcnJvdwAAoJYh6SRnaHRBcnJvdwCglyFpAGyg0gNvAG4ApWPpIW5nbmFjAHIAAOA12LDcaSJsZGUAaGFtAGwAO4DcANxAgAREYmNkZWZvc3YALQ8xDzUPNw89D3IPdg97D4AP4SFzaACgqyJhAHIAAKDrKnkAEmThIXNobKCpIgCg5ioAAWVyQQ9DDwCgwSKAAWJ0eQBJD00Paw9hAHIAAKAWIGmgFiDjIWFsAAJCTFNUWA9cD18PZg9hAHIAAKAjIukhbmV8YGUkcGFyYXRvcgAAoFgnaSJsZGUAAKBAItQkaGluU3BhY2UAoAogcgAA4DXYGd1wAGYAAOA12E3dYwByAADgNdix3GQiYXNoAACgqiKAAmNlZm9zAI4PkQ+VD5kPng/pIXJjdGHkIWdlAKDAInIAAOA12BrdcABmAADgNdhO3WMAcgAA4DXYstwAAmZpb3OqD64Prw+0D3IAAOA12BvdnmNwAGYAAOA12E/dYwByAADgNdiz3IAEQUlVYWNmb3N1AMgPyw/OD9EP2A/gD+QP6Q/uD2MAeQAvZGMAeQAHZGMAeQAuZGMAdQB0AGUAO4DdAN1AAAFpedwP3w9yAGMAdmErZHIAAOA12BzdcABmAADgNdhQ3WMAcgAA4DXYtNxtAGwAeGEABEhhY2RlZm9z/g8BEAUQDRAQEB0QIBAkEGMAeQAWZGMidXRlAHlhAAFheQkQDBDyIW9ufWEXZG8AdAB7YfIBFRAAABwQbwBXAGkAZAB0AOgAVAhhAJZjcgAAoCghcABmAACgJCFjAHIAAOA12LXc4QtCEEkQTRAAAGcQbRByEAAAAAAAAAAAeRCKEJcQ8hD9EAAAGxEhETIROREAAD4RYwB1AHQAZQA7gOEA4UByImV2ZQADYYCiPiJFZGl1eQBWEFkQWxBgEGUQAOA+IjMDAKA/InIAYwA7gOIA4kB0AGUAO4C0ALRAMGRsAGkAZwA7gOYA5kByoGEgAOA12B7dcgBhAHYAZQA7gOAA4EAAAWVwfBCGEAABZnCAEIQQ8yF5bQCgNSHoAIMQaABhALFjAAFhcI0QWwAAAWNskRCTEHIAAWFnAACgPypkApwQAAAAALEQAKInImFkc3ajEKcQqRCuEG4AZAAAoFUqAKBcKmwib3BlAACgWCoAoFoqAKMgImVsbXJzersQvRDAEN0Q5RDtEACgpCllAACgICJzAGQAYaAhImEEzhDQENIQ1BDWENgQ2hDcEACgqCkAoKkpAKCqKQCgqykAoKwpAKCtKQCgrikAoK8pdAB2oB8iYgBkoL4iAKCdKQABcHTpEOwQaAAAoCIixWDhIXJyAKB8IwABZ3D1EPgQbwBuAAVhZgAA4DXYUt0Ao0giRWFlaW9wBxEJEQ0RDxESERQRAKBwKuMhaXIAoG8qAKBKImQAAKBLInMAJ2DyIW94ZaBIIvEADhFpAG4AZwA7gOUA5UCAAWN0eQAmESoRKxFyAADgNdi23CpgbQBwAGWgSCLxAPgBaQBsAGQAZQA7gOMA40BtAGwAO4DkAORAAAFjaUERRxFvAG4AaQBuAPQA6AFuAHQAAKARKgAITmFiY2RlZmlrbG5vcHJzdWQRaBGXEZ8RpxGrEdIR1hErEjASexKKEn0RThNbE3oTbwB0AACg7SoAAWNybBGJEWsAAAJjZXBzdBF4EX0RghHvIW5nAKBMInAjc2lsb24A9mNyImltZQAAoDUgaQBtAGWgPSJxAACgzSJ2AY0RkRFlAGUAAKC9ImUAZABnoAUjZQAAoAUjcgBrAHSgtSPiIXJrAKC2IwABb3mjEaYRbgDnAHcRMWTxIXVvAKAeIIACY21wcnQAtBG5Eb4RwRHFEeEhdXPloDUi5ABwInR5dgAAoLApcwDpAH0RbgBvAPUA6gCAAWFodwDLEcwRzhGyYwCgNiHlIWVuAKBsInIAAOA12B/dZwCAA2Nvc3R1dncA4xHyEQUSEhIhEiYSKRKAAWFpdQDpEesR7xHwAKMFcgBjAACg7yVwAACgwyKAAWRwdAD4EfwRABJvAHQAAKAAKuwhdXMAoAEqaSJtZXMAAKACKnECCxIAAAAADxLjIXVwAKAGKmEAcgAAoAUm8iNpYW5nbGUAAWR1GhIeEu8hd24AoL0lcAAAoLMlcCJsdXMAAKAEKmUA5QBCD+UAkg9hInJvdwAAoA0pgAFha28ANhJoEncSAAFjbjoSZRJrAIABbHN0AEESRxJNEm8jemVuZ2UAAKDrKXEAdQBhAHIA5QBcBPIjaWFuZ2xlgKG0JWRscgBYElwSYBLvIXduAKC+JeUhZnQAoMIlaSJnaHQAAKC4JWsAAKAjJLEBbRIAAHUSsgFxEgAAcxIAoJIlAKCRJTQAAKCTJWMAawAAoIglAAFlb38ShxJx4D0A5SD1IWl2AOBhIuUgdAAAoBAjAAJwdHd4kRKVEpsSnxJmAADgNdhT3XSgpSJvAG0AAKClIvQhaWUAoMgiAAZESFVWYmRobXB0dXayEsES0RLgEvcS+xIKExoTHxMjEygTNxMAAkxSbHK5ErsSvRK/EgCgVyUAoFQlAKBWJQCgUyUAolAlRFVkdckSyxLNEs8SAKBmJQCgaSUAoGQlAKBnJQACTFJsctgS2hLcEt4SAKBdJQCgWiUAoFwlAKBZJQCjUSVITFJobHLrEu0S7xLxEvMS9RIAoGwlAKBjJQCgYCUAoGslAKBiJQCgXyVvAHgAAKDJKQACTFJscgITBBMGEwgTAKBVJQCgUiUAoBAlAKAMJQCiACVEVWR1EhMUExYTGBMAoGUlAKBoJQCgLCUAoDQlaSJudXMAAKCfIuwhdXMAoJ4iaSJtZXMAAKCgIgACTFJsci8TMRMzEzUTAKBbJQCgWCUAoBglAKAUJQCjAiVITFJobHJCE0QTRhNIE0oTTBMAoGolAKBhJQCgXiUAoDwlAKAkJQCgHCUAAWV2UhNVE3YA5QD5AGIAYQByADuApgCmQAACY2Vpb2ITZhNqE24TcgAA4DXYt9xtAGkAAKBPIG0A5aA9IogRbAAAoVwAYmh0E3YTAKDFKfMhdWIAoMgnbAF+E4QTbABloCIgdAAAoCIgcAAAoU4iRWWJE4sTAKCuKvGgTyI8BeEMqRMAAN8TABQDFB8UAAAjFDQUAAAAAIUUAAAAAI0UAAAAANcU4xT3FPsUAACIFQAAlhWAAWNwcgCuE7ET1RP1IXRlB2GAoikiYWJjZHMAuxO/E8QTzhPSE24AZAAAoEQqciJjdXAAAKBJKgABYXXIE8sTcAAAoEsqcAAAoEcqbwB0AACgQCoA4CkiAP4AAWVv2RPcE3QAAKBBIO4ABAUAAmFlaXXlE+8T9RP4E/AB6hMAAO0TcwAAoE0qbwBuAA1hZABpAGwAO4DnAOdAcgBjAAlhcABzAHOgTCptAACgUCpvAHQAC2GAAWRtbgAIFA0UEhRpAGwAO4C4ALhAcCJ0eXYAAKCyKXQAAIGiADtlGBQZFKJAcgBkAG8A9ABiAXIAAOA12CDdgAFjZWkAKBQqFDIUeQBHZGMAawBtoBMn4SFyawCgEyfHY3IAAKPLJUVjZWZtcz8UQRRHFHcUfBSAFACgwykAocYCZWxGFEkUcQAAoFciZQBhAlAUAAAAAGAUciJyb3cAAAFsclYUWhTlIWZ0AKC6IWkiZ2h0AACguyGAAlJTYWNkAGgUaRRrFG8UcxSuYACgyCRzAHQAAKCbIukhcmMAoJoi4SFzaACgnSJuImludAAAoBAqaQBkAACg7yrjIWlyAKDCKfUhYnN1oGMmaQB0AACgYybsApMUmhS2FAAAwxRvAG4AZaA6APGgVCKrAG0CnxQAAAAAoxRhAHSgLABAYAChASJmbKcUqRTuABMNZQAAAW14rhSyFOUhbnQAoAEiZQDzANIB5wG6FAAAwBRkoEUibwB0AACgbSpuAPQAzAGAAWZyeQDIFMsUzhQA4DXYVN1vAOQA1wEAgakAO3MeAdMUcgAAoBchAAFhb9oU3hRyAHIAAKC1IXMAcwAAoBcnAAFjdeYU6hRyAADgNdi43AABYnDuFPIUZaDPKgCg0SploNAqAKDSKuQhb3QAoO8igANkZWxwcnZ3AAYVEBUbFSEVRBVlFYQV4SFycgABbHIMFQ4VAKA4KQCgNSlwAhYVAAAAABkVcgAAoN4iYwAAoN8i4SFycnCgtiEAoD0pgKIqImJjZG9zACsVMBU6FT4VQRVyImNhcAAAoEgqAAFhdTQVNxVwAACgRipwAACgSipvAHQAAKCNInIAAKBFKgDgKiIA/gACYWxydksVURVuFXMVcgByAG2gtyEAoDwpeQCAAWV2dwBYFWUVaRVxAHACXxUAAAAAYxVyAGUA4wAXFXUA4wAZFWUAZQAAoM4iZSJkZ2UAAKDPImUAbgA7gKQApEBlI2Fycm93AAABbHJ7FX8V5SFmdACgtiFpImdodAAAoLchZQDkAG0VAAFjaYsVkRVvAG4AaQBuAPQAkwFuAHQAAKAxImwiY3R5AACgLSOACUFIYWJjZGVmaGlqbG9yc3R1d3oAuBW7Fb8V1RXgFegV+RUKFhUWHxZUFlcWZRbFFtsW7xb7FgUXChdyAPIAtAJhAHIAAKBlKQACZ2xyc8YVyhXOFdAV5yFlcgCgICDlIXRoAKA4IfIA9QxoAHagECAAoKMiawHZFd4VYSJyb3cAAKAPKWEA4wBfAgABYXnkFecV8iFvbg9hNGQAoUYhYW/tFfQVAAFnciEC8RVyAACgyiF0InNlcQAAoHcqgAFnbG0A/xUCFgUWO4CwALBAdABhALRjcCJ0eXYAAKCxKQABaXIOFhIW8yFodACgfykA4DXYId1hAHIAAAFschsWHRYAoMMhAKDCIYACYWVnc3YAKBauAjYWOhY+Fm0AAKHEIm9zLhY0Fm4AZABzoMQi9SFpdACgZiZhIm1tYQDdY2kAbgAAoPIiAKH3AGlvQxZRFmQAZQAAgfcAO29KFksW90BuI3RpbWVzAACgxyJuAPgAUBZjAHkAUmRjAG8CXhYAAAAAYhZyAG4AAKAeI28AcAAAoA0jgAJscHR1dwBuFnEWdRaSFp4W7CFhciRgZgAA4DXYVd0AotkCZW1wc30WhBaJFo0WcQBkoFAibwB0AACgUSJpIm51cwAAoDgi7CF1cwCgFCLxInVhcmUAoKEiYgBsAGUAYgBhAHIAdwBlAGQAZwDlANcAbgCAAWFkaAClFqoWtBZyAHIAbwD3APUMbwB3AG4AYQByAHIAbwB3APMA8xVhI3Jwb29uAAABbHK8FsAWZQBmAPQAHBZpAGcAaAD0AB4WYgHJFs8WawBhAHIAbwD3AJILbwLUFgAAAADYFnIAbgAAoB8jbwBwAACgDCOAAWNvdADhFukW7BYAAXJ55RboFgDgNdi53FVkbAAAoPYp8iFvaxFhAAFkcvMW9xZvAHQAAKDxImkA5qC/JVsSAAFhaP8WAhdyAPIANQNhAPIA1wvhIm5nbGUAoKYpAAFjaQ4XEBd5AF9k5yJyYXJyAKD/JwAJRGFjZGVmZ2xtbm9wcXJzdHV4MRc4F0YXWxcyBF4XaRd5F40XrBe0F78X2RcVGCEYLRg1GEAYAAFEbzUXgRZvAPQA+BUAAWNzPBdCF3UAdABlADuA6QDpQPQhZXIAoG4qAAJhaW95TRdQF1YXWhfyIW9uG2FyAGOgViI7gOoA6kDsIW9uAKBVIk1kbwB0ABdhAAFEcmIXZhdvAHQAAKBSIgDgNdgi3XKhmipuF3QXYQB2AGUAO4DoAOhAZKCWKm8AdAAAoJgqgKGZKmlscwCAF4UXhxfuInRlcnMAoOcjAKATIWSglSpvAHQAAKCXKoABYXBzAJMXlheiF2MAcgATYXQAeQBzogUinxcAAAAAoRdlAHQAAKAFInAAMaADIDMBqRerFwCgBCAAoAUgAAFnc7AXsRdLYXAAAKACIAABZ3C4F7sXbwBuABlhZgAA4DXYVt2AAWFscwDFF8sXzxdyAHOg1SJsAACg4yl1AHMAAKBxKmkAAKG1A2x21RfYF28AbgC1Y/VjAAJjc3V24BfoF/0XEBgAAWlv5BdWF3IAYwAAoFYiaQLuFwAAAADwF+0ADQThIW50AAFnbPUX+Rd0AHIAAKCWKuUhc3MAoJUqgAFhZWkAAxgGGAoYbABzAD1gcwB0AACgXyJ2AESgYSJEAACgeCrwImFyc2wAoOUpAAFEYRkYHRhvAHQAAKBTInIAcgAAoHEpgAFjZGkAJxgqGO0XcgAAoC8hbwD0AIwCAAFhaDEYMhi3YzuA8ADwQAABbXI5GD0YbAA7gOsA60BvAACgrCCAAWNpcABGGEgYSxhsACFgcwD0ACwEAAFlb08YVxhjAHQAYQB0AGkAbwDuABoEbgBlAG4AdABpAGEAbADlADME4Ql1GAAAgRgAAIMYiBgAAAAAoRilGAAAqhgAALsYvhjRGAAA1xgnGWwAbABpAG4AZwBkAG8AdABzAGUA8QBlF3kARGRtImFsZQAAoEAmgAFpbHIAjRiRGJ0Y7CFpZwCgA/tpApcYAAAAAJoYZwAAoAD7aQBnAACgBPsA4DXYI93sIWlnAKAB++whaWcA4GYAagCAAWFsdACvGLIYthh0AACgbSZpAGcAAKAC+24AcwAAoLElbwBmAJJh8AHCGAAAxhhmAADgNdhX3QABYWvJGMwYbADsAGsEdqDUIgCg2SphI3J0aW50AACgDSoAAWFv2hgiGQABY3PeGB8ZsQPnGP0YBRkSGRUZAAAdGbID7xjyGPQY9xj5GAAA+xg7gL0AvUAAoFMhO4C8ALxAAKBVIQCgWSEAoFshswEBGQAAAxkAoFQhAKBWIbQCCxkOGQAAAAAQGTuAvgC+QACgVyEAoFwhNQAAoFghtgEZGQAAGxkAoFohAKBdITgAAKBeIWwAAKBEIHcAbgAAoCIjYwByAADgNdi73IAIRWFiY2RlZmdpamxub3JzdHYARhlKGVoZXhlmGWkZkhmWGZkZnRmgGa0ZxhnLGc8Z4BkjGmygZyIAoIwqgAFjbXAAUBlTGVgZ9SF0ZfVhbQBhAOSgswM6FgCghipyImV2ZQAfYQABaXliGWUZcgBjAB1hM2RvAHQAIWGAoWUibHFzAMYEcBl6GfGhZSLOBAAAdhlsAGEAbgD0AN8EgKF+KmNkbACBGYQZjBljAACgqSpvAHQAb6CAKmyggioAoIQqZeDbIgD+cwAAoJQqcgAA4DXYJN3noGsirATtIWVsAKA3IWMAeQBTZIChdyJFYWoApxmpGasZAKCSKgCgpSoAoKQqAAJFYWVztBm2Gb0ZwhkAoGkicABwoIoq8iFveACgiipxoIgq8aCIKrUZaQBtAACg5yJwAGYAAOA12FjdYQB2AOUAYwIAAWNp0xnWGXIAAKAKIW0AAKFzImVs3BneGQCgjioAoJAqAIM+ADtjZGxxco0E6xn0GfgZ/BkBGgABY2nvGfEZAKCnKnIAAKB6Km8AdAAAoNci0CFhcgCglSl1ImVzdAAAoHwqgAJhZGVscwAKGvQZFhrVBCAa8AEPGgAAFBpwAHIAbwD4AFkZcgAAoHgpcQAAAWxxxAQbGmwAZQBzAPMASRlpAO0A5AQAAWVuJxouGnIjdG5lcXEAAOBpIgD+xQAsGgAFQWFiY2Vma29zeUAaQxpmGmoabRqDGocalhrCGtMacgDyAMwCAAJpbG1yShpOGlAaVBpyAHMA8ABxD2YAvWBpAGwA9AASBQABZHJYGlsaYwB5AEpkAKGUIWN3YBpkGmkAcgAAoEgpAKCtIWEAcgAAoA8h6SFyYyVhgAFhbHIAcxp7Gn8a8iF0c3WgZSZpAHQAAKBlJuwhaXAAoCYg4yFvbgCguSJyAADgNdgl3XMAAAFld4wakRphInJvdwAAoCUpYSJyb3cAAKAmKYACYW1vcHIAnxqjGqcauhq+GnIAcgAAoP8h9CFodACgOyJrAAABbHKsGrMaZSRmdGFycm93AACgqSHpJGdodGFycm93AKCqIWYAAOA12Fnd4iFhcgCgFSCAAWNsdADIGswa0BpyAADgNdi93GEAcwDoAGka8iFvaydhAAFicNca2xr1IWxsAKBDIOghZW4AoBAg4Qr2GgAA/RoAAAgbExsaGwAAIRs7GwAAAAA+G2IbmRuVG6sbAACyG80b0htjAHUAdABlADuA7QDtQAChYyBpeQEbBhtyAGMAO4DuAO5AOGQAAWN4CxsNG3kANWRjAGwAO4ChAKFAAAFmcssCFhsA4DXYJt1yAGEAdgBlADuA7ADsQIChSCFpbm8AJxsyGzYbAAFpbisbLxtuAHQAAKAMKnQAAKAtIuYhaW4AoNwpdABhAACgKSHsIWlnM2GAAWFvcABDG1sbXhuAAWNndABJG0sbWRtyACthgAFlbHAAcQVRG1UbaQBuAOUAyAVhAHIA9AByBWgAMWFmAACgtyJlAGQAtWEAoggiY2ZvdGkbbRt1G3kb4SFyZQCgBSFpAG4AdKAeImkAZQAAoN0pZABvAPQAWxsAoisiY2VscIEbhRuPG5QbYQBsAACguiIAAWdyiRuNG2UAcgDzACMQ4wCCG2EicmhrAACgFyryIW9kAKA8KgACY2dwdJ8boRukG6gbeQBRZG8AbgAvYWYAAOA12FrdYQC5Y3UAZQBzAHQAO4C/AL9AAAFjabUbuRtyAADgNdi+3G4AAKIIIkVkc3bCG8QbyBvQAwCg+SJvAHQAAKD1Inag9CIAoPMiaaBiIOwhZGUpYesB1hsAANkbYwB5AFZkbAA7gO8A70AAA2NmbW9zdeYb7hvyG/Ub+hsFHAABaXnqG+0bcgBjADVhOWRyAADgNdgn3eEhdGg3YnAAZgAA4DXYW93jAf8bAAADHHIAAOA12L/c8iFjeVhk6yFjeVRkAARhY2ZnaGpvcxUcGhwiHCYcKhwtHDAcNRzwIXBhdqC6A/BjAAFleR4cIRzkIWlsN2E6ZHIAAOA12CjdciJlZW4AOGFjAHkARWRjAHkAXGRwAGYAAOA12FzdYwByAADgNdjA3IALQUJFSGFiY2RlZmdoamxtbm9wcnN0dXYAXhxtHHEcdRx5HN8cBx0dHTwd3B3tHfEdAR4EHh0eLB5FHrwewx7hHgkfPR9LH4ABYXJ0AGQcZxxpHHIA8gBvB/IAxQLhIWlsAKAbKeEhcnIAoA4pZ6BmIgCgiyphAHIAAKBiKWMJjRwAAJAcAACVHAAAAAAAAAAAAACZHJwcAACmHKgcrRwAANIc9SF0ZTph7SJwdHl2AKC0KXIAYQDuAFoG4iFkYbtjZwAAoegnZGyhHKMcAKCRKeUAiwYAoIUqdQBvADuAqwCrQHIAgKOQIWJmaGxwc3QAuhy/HMIcxBzHHMoczhxmoOQhcwAAoB8pcwAAoB0p6wCyGnAAAKCrIWwAAKA5KWkAbQAAoHMpbAAAoKIhAKGrKmFl1hzaHGkAbAAAoBkpc6CtKgDgrSoA/oABYWJyAOUc6RztHHIAcgAAoAwpcgBrAACgcicAAWFr8Rz4HGMAAAFla/Yc9xx7YFtgAAFlc/wc/hwAoIspbAAAAWR1Ax0FHQCgjykAoI0pAAJhZXV5Dh0RHRodHB3yIW9uPmEAAWRpFR0YHWkAbAA8YewAowbiAPccO2QAAmNxcnMkHScdLB05HWEAAKA2KXUAbwDyoBwgqhEAAWR1MB00HeghYXIAoGcpcyJoYXIAAKBLKWgAAKCyIQCiZCJmZ3FzRB1FB5Qdnh10AIACYWhscnQATh1WHWUdbB2NHXIicm93AHSgkCFhAOkAzxxhI3Jwb29uAAABZHVeHWId7yF3bgCgvSFwAACgvCHlJGZ0YXJyb3dzAKDHIWkiZ2h0AIABYWhzAHUdex2DHXIicm93APOglCGdBmEAcgBwAG8AbwBuAPMAzgtxAHUAaQBnAGEAcgByAG8A9wBlGugkcmVldGltZXMAoMsi8aFkIk0HAACaHWwAYQBuAPQAXgcAon0qY2Rnc6YdqR2xHbcdYwAAoKgqbwB0AG+gfypyoIEqAKCDKmXg2iIA/nMAAKCTKoACYWRlZ3MAwB3GHcod1h3ZHXAAcAByAG8A+ACmHG8AdAAAoNYicQAAAWdxzx3SHXQA8gBGB2cAdADyAHQcdADyAFMHaQDtAGMHgAFpbHIA4h3mHeod8yFodACgfClvAG8A8gDKBgDgNdgp3UWgdiIAoJEqYQH1Hf4dcgAAAWR1YB35HWygvCEAoGopbABrAACghCVjAHkAWWQAomoiYWNodAweDx4VHhkecgDyAGsdbwByAG4AZQDyAGAW4SFyZACgaylyAGkAAKD6JQABaW8hHiQe5CFvdEBh9SFzdGGgsCPjIWhlAKCwIwACRWFlczMeNR48HkEeAKBoInAAcKCJKvIhb3gAoIkqcaCHKvGghyo0HmkAbQAAoOYiAARhYm5vcHR3elIeXB5fHoUelh6mHqsetB4AAW5yVh5ZHmcAAKDsJ3IAAKD9IXIA6wCwBmcAgAFsbXIAZh52Hnse5SFmdAABYXKIB2weaQBnAGgAdABhAHIAcgBvAPcAkwfhInBzdG8AoPwnaQBnAGgAdABhAHIAcgBvAPcAmgdwI2Fycm93AAABbHKNHpEeZQBmAPQAxhxpImdodAAAoKwhgAFhZmwAnB6fHqIecgAAoIUpAOA12F3ddQBzAACgLSppIm1lcwAAoDQqYQGvHrMecwB0AACgFyLhAIoOZaHKJbkeRhLuIWdlAKDKJWEAcgBsoCgAdAAAoJMpgAJhY2htdADMHs8e1R7bHt0ecgDyAJ0GbwByAG4AZQDyANYWYQByAGSgyyEAoG0pAKAOIHIAaQAAoL8iAANhY2hpcXTrHu8e1QfzHv0eBh/xIXVvAKA5IHIAAOA12MHcbQDloXIi+h4AAPweAKCNKgCgjyoAAWJ19xwBH28AcqAYIACgGiDyIW9rQmEAhDwAO2NkaGlscXJCBhcfxh0gHyQfKB8sHzEfAAFjaRsfHR8AoKYqcgAAoHkqcgBlAOUAkx3tIWVzAKDJIuEhcnIAoHYpdSJlc3QAAKB7KgABUGk1HzkfYQByAACglillocMlAgdfEnIAAAFkdUIfRx9zImhhcgAAoEop6CFhcgCgZikAAWVuTx9WH3IjdG5lcXEAAOBoIgD+xQBUHwAHRGFjZGVmaGlsbm9wc3VuH3Ifoh+rH68ftx+7H74f5h/uH/MfBwj/HwsgxCFvdACgOiIAAmNscHJ5H30fiR+eH3IAO4CvAK9AAAFldIEfgx8AoEImZaAgJ3MAZQAAoCAnc6CmIXQAbwCAoaYhZGx1AJQfmB+cH28AdwDuAHkDZQBmAPQA6gbwAOkO6yFlcgCgriUAAW95ph+qH+0hbWEAoCkqPGThIXNoAKAUIOElc3VyZWRhbmdsZQCgISJyAADgNdgq3W8AAKAnIYABY2RuAMQfyR/bH3IAbwA7gLUAtUBhoiMi0B8AANMf1x9zAPQAKxFpAHIAAKDwKm8AdAA7gLcAt0B1AHMA4qESIh4TAADjH3WgOCIAoCoqYwHqH+0fcAAAoNsq8gB+GnAAbAB1APMACAgAAWRw9x/7H+UhbHMAoKciZgAA4DXYXt0AAWN0AyAHIHIAAOA12MLc8CFvcwCgPiJsobwDECAVIPQiaW1hcACguCJhAPAAEyAADEdMUlZhYmNkZWZnaGlqbG1vcHJzdHV2dzwgRyBmIG0geSCqILgg2iDeIBEhFSEyIUMhTSFQIZwhnyHSIQAiIyKLIrEivyIUIwABZ3RAIEMgAODZIjgD9uBrItIgBwmAAWVsdABNIF8gYiBmAHQAAAFhclMgWCByInJvdwAAoM0h6SRnaHRhcnJvdwCgziEA4NgiOAP24Goi0iBfCekkZ2h0YXJyb3cAoM8hAAFEZHEgdSDhIXNoAKCvIuEhc2gAoK4igAJiY25wdACCIIYgiSCNIKIgbABhAACgByL1IXRlRGFnAADgICLSIACiSSJFaW9wlSCYIJwgniAA4HAqOANkAADgSyI4A3MASWFyAG8A+AAyCnUAcgBhoG4mbADzoG4mmwjzAa8gAACzIHAAO4CgAKBAbQBwAOXgTiI4AyoJgAJhZW91eQDBIMogzSDWINkg8AHGIAAAyCAAoEMqbwBuAEhh5CFpbEZhbgBnAGSgRyJvAHQAAOBtKjgDcAAAoEIqPWThIXNoAKATIACjYCJBYWRxc3jpIO0g+SD+IAIhDCFyAHIAAKDXIXIAAAFocvIg9SBrAACgJClvoJch9wAGD28AdAAA4FAiOAN1AGkA9gC7CAABZWkGIQohYQByAACgKCntAN8I6SFzdPOgBCLlCHIAAOA12CvdAAJFZXN0/wgcISshLiHxoXEiIiEAABMJ8aFxIgAJAAAnIWwAYQBuAPQAEwlpAO0AGQlyoG8iAKBvIoABQWFwADghOyE/IXIA8gBeIHIAcgAAoK4hYQByAACg8ipzogsiSiEAAAAAxwtkoPwiAKD6ImMAeQBaZIADQUVhZGVzdABcIV8hYiFmIWkhkyGWIXIA8gBXIADgZiI4A3IAcgAAoJohcgAAoCUggKFwImZxcwBwIYQhjiF0AAABYXJ1IXohcgByAG8A9wBlIWkAZwBoAHQAYQByAHIAbwD3AD4h8aFwImAhAACKIWwAYQBuAPQAZwlz4H0qOAMAoG4iaQDtAG0JcqBuImkA5aDqIkUJaQDkADoKAAFwdKMhpyFmAADgNdhf3YCBrAA7aW4AriGvIcchrEBuAIChCSJFZHYAtyG6Ib8hAOD5IjgDbwB0AADg9SI4A+EB1gjEIcYhAKD3IgCg9iJpAHagDCLhAagJzyHRIQCg/iIAoP0igAFhb3IA2CHsIfEhcgCAoSYiYXN0AOAh5SHpIWwAbABlAOwAywhsAADg/SrlIADgAiI4A2wiaW50AACgFCrjoYAi9yEAAPohdQDlAJsJY+CvKjgDZaCAIvEAkwkAAkFhaXQHIgoiFyIeInIA8gBsIHIAcgAAoZshY3cRIhQiAOAzKTgDAOCdITgDZyRodGFycm93AACgmyFyAGkA5aDrIr4JgANjaGltcHF1AC8iPCJHIpwhTSJQIloigKGBImNlcgA2Iv0JOSJ1AOUABgoA4DXYw9zvIXJ0bQKdIQAAAABEImEAcgDhAOEhbQBloEEi8aBEIiYKYQDyAMsIcwB1AAABYnBWIlgi5QDUCeUA3wmAAWJjcABgInMieCKAoYQiRWVzAGci7glqIgDgxSo4A2UAdABl4IIi0iBxAPGgiCJoImMAZaCBIvEA/gmAoYUiRWVzAH8iFgqCIgDgxio4A2UAdABl4IMi0iBxAPGgiSKAIgACZ2lscpIilCKaIpwi7AAMCWwAZABlADuA8QDxQOcAWwlpI2FuZ2xlAAABbHKkIqoi5SFmdGWg6iLxAEUJaSJnaHQAZaDrIvEAvgltoL0DAKEjAGVzuCK8InIAbwAAoBYhcAAAoAcggARESGFkZ2lscnMAziLSItYi2iLeIugi7SICIw8j4SFzaACgrSLhIXJyAKAEKXAAAOBNItIg4SFzaACgrCIAAWV04iLlIgDgZSLSIADgPgDSIG4iZmluAACg3imAAUFldADzIvci+iJyAHIAAKACKQDgZCLSIHLgPADSIGkAZQAA4LQi0iAAAUF0BiMKI3IAcgAAoAMp8iFpZQDgtSLSIGkAbQAA4Dwi0iCAAUFhbgAaIx4jKiNyAHIAAKDWIXIAAAFociMjJiNrAACgIylvoJYh9wD/DuUhYXIAoCcpUxJqFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVCMAAF4jaSN/I4IjjSOeI8AUAAAAAKYjwCMAANoj3yMAAO8jHiQvJD8kRCQAAWNzVyNsFHUAdABlADuA8wDzQAABaXlhI2cjcgBjoJoiO4D0APRAPmSAAmFiaW9zAHEjdCN3I3EBeiNzAOgAdhTsIWFjUWF2AACgOCrvIWxkAKC8KewhaWdTYQABY3KFI4kjaQByAACgvykA4DXYLN1vA5QjAAAAAJYjAACcI24A22JhAHYAZQA7gPIA8kAAoMEpAAFibaEjjAphAHIAAKC1KQACYWNpdKwjryO6I70jcgDyAFkUAAFpcrMjtiNyAACgvinvIXNzAKC7KW4A5QDZCgCgwCmAAWFlaQDFI8gjyyNjAHIATWFnAGEAyWOAAWNkbgDRI9Qj1iPyIW9uv2MAoLYpdQDzAHgBcABmAADgNdhg3YABYWVsAOQj5yPrI3IAAKC3KXIAcAAAoLkpdQDzAHwBAKMoImFkaW9zdvkj/CMPJBMkFiQbJHIA8gBeFIChXSplZm0AAyQJJAwkcgBvoDQhZgAAoDQhO4CqAKpAO4C6ALpA5yFvZgCgtiJyAACgVipsIm9wZQAAoFcqAKBbKoABY2xvACMkJSQrJPIACCRhAHMAaAA7gPgA+EBsAACgmCJpAGwBMyQ4JGQAZQA7gPUA9UBlAHMAYaCXInMAAKA2Km0AbAA7gPYA9kDiIWFyAKA9I+EKXiQAAHokAAB8JJQkAACYJKkkAAAAALUkEQsAAPAkAAAAAAQleiUAAIMlcgCAoSUiYXN0AGUkbyQBCwCBtgA7bGokayS2QGwAZQDsABgDaQJ1JAAAAAB4JG0AAKDzKgCg/Sp5AD9kcgCAAmNpbXB0AIUkiCSLJJkSjyRuAHQAJWBvAGQALmBpAGwAAKAwIOUhbmsAoDEgcgAA4DXYLd2AAWltbwCdJKAkpCR2oMYD1WNtAGEA9AD+B24AZQAAoA4m9KHAA64kAAC0JGMjaGZvcmsAAKDUItZjAAFhdbgkxCRuAAABY2u9JMIkawBooA8hAKAOIfYAaRpzAACkKwBhYmNkZW1zdNMkIRPXJNsk4STjJOck6yTjIWlyAKAjKmkAcgAAoCIqAAFvdYsW3yQAoCUqAKByKm4AO4CxALFAaQBtAACgJip3AG8AAKAnKoABaXB1APUk+iT+JO4idGludACgFSpmAADgNdhh3W4AZAA7gKMAo0CApHoiRWFjZWlub3N1ABMlFSUYJRslTCVRJVklSSV1JQCgsypwAACgtyp1AOUAPwtjoK8qgKJ6ImFjZW5zACclLSU0JTYlSSVwAHAAcgBvAPgAFyV1AHIAbAB5AGUA8QA/C/EAOAuAAWFlcwA8JUElRSXwInByb3gAoLkqcQBxAACgtSppAG0AAKDoImkA7QBEC20AZQDzoDIgIguAAUVhcwBDJVclRSXwAEAlgAFkZnAATwtfJXElgAFhbHMAZSVpJW0l7CFhcgCgLiPpIW5lAKASI/UhcmYAoBMjdKAdIu8AWQvyIWVsAKCwIgABY2l9JYElcgAA4DXYxdzIY24iY3NwAACgCCAAA2Zpb3BzdZElKxuVJZolnyWkJXIAAOA12C7dcABmAADgNdhi3XIiaW1lAACgVyBjAHIAAOA12MbcgAFhZW8AqiW6JcAldAAAAWVpryW2JXIAbgBpAG8AbgDzABkFbgB0AACgFipzAHQAZaA/APEACRj0AG0LgApBQkhhYmNkZWZoaWxtbm9wcnN0dXgA4yXyJfYl+iVpJpAmpia9JtUm5ib4JlonaCdxJ3UnnietJ7EnyCfiJ+cngAFhcnQA6SXsJe4lcgDyAJkM8gD6AuEhaWwAoBwpYQByAPIA3BVhAHIAAKBkKYADY2RlbnFydAAGJhAmEyYYJiYmKyZaJgABZXUKJg0mAOA9IjEDdABlAFVhaQDjACAN7SJwdHl2AKCzKWcAgKHpJ2RlbAAgJiImJCYAoJIpAKClKeUA9wt1AG8AO4C7ALtAcgAApZIhYWJjZmhscHN0dz0mQCZFJkcmSiZMJk4mUSZVJlgmcAAAoHUpZqDlIXMAAKAgKQCgMylzAACgHinrALka8ACVHmwAAKBFKWkAbQAAoHQpbAAAoKMhAKCdIQABYWleJmImaQBsAACgGilvAG6gNiJhAGwA8wB2C4ABYWJyAG8mciZ2JnIA8gAvEnIAawAAoHMnAAFha3omgSZjAAABZWt/JoAmfWBdYAABZXOFJocmAKCMKWwAAAFkdYwmjiYAoI4pAKCQKQACYWV1eZcmmiajJqUm8iFvbllhAAFkaZ4moSZpAGwAV2HsAA8M4gCAJkBkAAJjbHFzrSawJrUmuiZhAACgNylkImhhcgAAoGkpdQBvAPKgHSCjAWgAAKCzIYABYWNnAMMm0iaUC2wAgKEcIWlwcwDLJs4migxuAOUAoAxhAHIA9ADaC3QAAKCtJYABaWxyANsm3ybjJvMhaHQAoH0pbwBvAPIANgwA4DXYL90AAWFv6ib1JnIAAAFkde8m8SYAoMEhbKDAIQCgbCl2oMED8WOAAWducwD+Jk4nUCdoAHQAAANhaGxyc3QKJxInISc1Jz0nRydyInJvdwB0oJIhYQDpAFYmYSNycG9vbgAAAWR1GiceJ28AdwDuAPAmcAAAoMAh5SFmdAABYWgnJy0ncgByAG8AdwDzAAkMYQByAHAAbwBvAG4A8wATBGklZ2h0YXJyb3dzAACgySFxAHUAaQBnAGEAcgByAG8A9wBZJugkcmVldGltZXMAoMwiZwDaYmkAbgBnAGQAbwB0AHMAZQDxABwYgAFhaG0AYCdjJ2YncgDyAAkMYQDyABMEAKAPIG8idXN0AGGgsSPjIWhlAKCxI+0haWQAoO4qAAJhYnB0fCeGJ4knmScAAW5ygCeDJ2cAAKDtJ3IAAKD+IXIA6wAcDIABYWZsAI8nkieVJ3IAAKCGKQDgNdhj3XUAcwAAoC4qaSJtZXMAAKA1KgABYXCiJ6gncgBnoCkAdAAAoJQp7yJsaW50AKASKmEAcgDyADwnAAJhY2hxuCe8J6EMwCfxIXVvAKA6IHIAAOA12MfcAAFidYAmxCdvAPKgGSCoAYABaGlyAM4n0ifWJ3IAZQDlAE0n7SFlcwCgyiJpAIChuSVlZmwAXAxjEt4n9CFyaQCgzinsInVoYXIAoGgpAKAeIWENBSgJKA0oSyhVKIYoAACLKLAoAAAAAOMo5ygAABApJCkxKW0pcSmHKaYpAACYKgAAAACxKmMidXRlAFthcQB1AO8ABR+ApHsiRWFjZWlucHN5ABwoHignKCooLygyKEEoRihJKACgtCrwASMoAAAlKACguCpvAG4AYWF1AOUAgw1koLAqaQBsAF9hcgBjAF1hgAFFYXMAOCg6KD0oAKC2KnAAAKC6KmkAbQAAoOki7yJsaW50AKATKmkA7QCIDUFkbwB0AGKixSKRFgAAAABTKACgZiqAA0FhY21zdHgAYChkKG8ocyh1KHkogihyAHIAAKDYIXIAAAFocmkoayjrAJAab6CYIfcAzAd0ADuApwCnQGkAO2D3IWFyAKApKW0AAAFpbn4ozQBuAHUA8wDOAHQAAKA2J3IA7+A12DDdIxkAAmFjb3mRKJUonSisKHIAcAAAoG8mAAFoeZkonChjAHkASWRIZHIAdABtAqUoAAAAAKgoaQDkAFsPYQByAGEA7ABsJDuArQCtQAABZ22zKLsobQBhAAChwwNmdroouijCY4CjPCJkZWdsbnByAMgozCjPKNMo1yjaKN4obwB0AACgairxoEMiCw5FoJ4qAKCgKkWgnSoAoJ8qZQAAoEYi7CF1cwCgJCrhIXJyAKByKWEAcgDyAPwMAAJhZWl07Sj8KAEpCCkAAWxz8Sj4KGwAcwBlAHQAbQDpAH8oaABwAACgMyrwImFyc2wAoOQpAAFkbFoPBSllAACgIyNloKoqc6CsKgDgrCoA/oABZmxwABUpGCkfKfQhY3lMZGKgLwBhoMQpcgAAoD8jZgAA4DXYZN1hAAABZHIoKRcDZQBzAHWgYCZpAHQAAKBgJoABY3N1ADYpRilhKQABYXU6KUApcABzoJMiAOCTIgD+cABzoJQiAOCUIgD+dQAAAWJwSylWKQChjyJlcz4NUCllAHQAZaCPIvEAPw0AoZAiZXNIDVspZQB0AGWgkCLxAEkNAKGhJWFmZilbBHIAZQFrKVwEAKChJWEAcgDyAAMNAAJjZW10dyl7KX8pgilyAADgNdjI3HQAbQDuAM4AaQDsAAYpYQByAOYAVw0AAWFyiimOKXIA5qAGJhESAAFhbpIpoylpImdodAAAAWVwmSmgKXAAcwBpAGwAbwDuANkXaADpAKAkcwCvYIACYmNtbnAArin8KY4NJSooKgCkgiJFZGVtbnByc7wpvinCKcgpzCnUKdgp3CkAoMUqbwB0AACgvSpkoIYibwB0AACgwyr1IWx0AKDBKgABRWXQKdIpAKDLKgCgiiLsIXVzAKC/KuEhcnIAoHkpgAFlaXUA4inxKfQpdAAAoYIiZW7oKewpcQDxoIYivSllAHEA8aCKItEpbQAAoMcqAAFicPgp+ikAoNUqAKDTKmMAgKJ7ImFjZW5zAAcqDSoUKhYqRihwAHAAcgBvAPgAIyh1AHIAbAB5AGUA8QCDDfEAfA2AAWFlcwAcKiIqPShwAHAAcgBvAPgAPChxAPEAOShnAACgaiYApoMiMTIzRWRlaGxtbnBzPCo/KkIqRSpHKlIqWCpjKmcqaypzKncqO4C5ALlAO4CyALJAO4CzALNAAKDGKgABb3NLKk4qdAAAoL4qdQBiAACg2CpkoIcibwB0AACgxCpzAAABb3VdKmAqbAAAoMknYgAAoNcq4SFycgCgeyn1IWx0AKDCKgABRWVvKnEqAKDMKgCgiyLsIXVzAKDAKoABZWl1AH0qjCqPKnQAAKGDImVugyqHKnEA8aCHIkYqZQBxAPGgiyJwKm0AAKDIKgABYnCTKpUqAKDUKgCg1iqAAUFhbgCdKqEqrCpyAHIAAKDZIXIAAAFocqYqqCrrAJUab6CZIfcAxQf3IWFyAKAqKWwAaQBnADuA3wDfQOELzyrZKtwq6SrsKvEqAAD1KjQrAAAAAAAAAAAAAEwrbCsAAHErvSsAAAAAAADRK3IC1CoAAAAA2CrnIWV0AKAWI8RjcgDrAOUKgAFhZXkA4SrkKucq8iFvbmVh5CFpbGNhQmRvAPQAIg5sInJlYwAAoBUjcgAA4DXYMd0AAmVpa2/7KhIrKCsuK/IBACsAAAkrZQAAATRm6g0EK28AcgDlAOsNYQBzorgDECsAAAAAEit5AG0A0WMAAWNuFislK2sAAAFhcxsrIStwAHAAcgBvAPgAFw5pAG0AAKA8InMA8AD9DQABYXMsKyEr8AAXDnIAbgA7gP4A/kDsATgrOyswG2QA5QBnAmUAcwCAgdcAO2JkAEMrRCtJK9dAYaCgInIAAKAxKgCgMCqAAWVwcwBRK1MraSvhAAkh4qKkIlsrXysAAAAAYytvAHQAAKA2I2kAcgAAoPEqb+A12GXdcgBrAACg2irhAHgociJpbWUAAKA0IIABYWlwAHYreSu3K2QA5QC+DYADYWRlbXBzdACFK6MrmiunK6wrsCuzK24iZ2xlAACitSVkbHFykCuUK5ornCvvIXduAKC/JeUhZnRloMMl8QACBwCgXCJpImdodABloLkl8QBdDG8AdAAAoOwlaSJudXMAAKA6KuwhdXMAoDkqYgAAoM0p6SFtZQCgOyrlInppdW0AoOIjgAFjaHQAwivKK80rAAFyecYrySsA4DXYydxGZGMAeQBbZPIhb2tnYQABaW/UK9creAD0ANERaCJlYWQAAAFsct4r5ytlAGYAdABhAHIAcgBvAPcAXQbpJGdodGFycm93AKCgIQAJQUhhYmNkZmdobG1vcHJzdHV3CiwNLBEsHSwnLDEsQCxLLFIsYix6LIQsjyzLLOgs7Sz/LAotcgDyAAkDYQByAACgYykAAWNyFSwbLHUAdABlADuA+gD6QPIACQ1yAOMBIywAACUseQBeZHYAZQBtYQABaXkrLDAscgBjADuA+wD7QENkgAFhYmgANyw6LD0scgDyANEO7CFhY3FhYQDyAOAOAAFpckQsSCzzIWh0AKB+KQDgNdgy3XIAYQB2AGUAO4D5APlAYQFWLF8scgAAAWxyWixcLACgvyEAoL4hbABrAACggCUAAWN0Zix2LG8CbCwAAAAAcyxyAG4AZaAcI3IAAKAcI28AcAAAoA8jcgBpAACg+CUAAWFsfiyBLGMAcgBrYTuAqACoQAABZ3CILIssbwBuAHNhZgAA4DXYZt0AA2FkaGxzdZksniynLLgsuyzFLHIAcgBvAPcACQ1vAHcAbgBhAHIAcgBvAPcA2A5hI3Jwb29uAAABbHKvLLMsZQBmAPQAWyxpAGcAaAD0AF0sdQDzAKYOaQAAocUDaGzBLMIs0mNvAG4AxWPwI2Fycm93cwCgyCGAAWNpdADRLOEs5CxvAtcsAAAAAN4scgBuAGWgHSNyAACgHSNvAHAAAKAOI24AZwBvYXIAaQAAoPklYwByAADgNdjK3IABZGlyAPMs9yz6LG8AdAAAoPAi7CFkZWlhaQBmoLUlAKC0JQABYW0DLQYtcgDyAMosbAA7gPwA/EDhIm5nbGUAoKcpgAdBQkRhY2RlZmxub3Byc3oAJy0qLTAtNC2bLZ0toS2/LcMtxy3TLdgt3C3gLfwtcgDyABADYQByAHag6CoAoOkqYQBzAOgA/gIAAW5yOC08LechcnQAoJwpgANla25wcnN0AJkpSC1NLVQtXi1iLYItYQBwAHAA4QAaHG8AdABoAGkAbgDnAKEXgAFoaXIAoSmzJFotbwBwAPQAdCVooJUh7wD4JgABaXVmLWotZwBtAOEAuygAAWJwbi14LXMjZXRuZXEAceCKIgD+AODLKgD+cyNldG5lcQBx4IsiAP4A4MwqAP4AAWhyhi2KLWUAdADhABIraSNhbmdsZQAAAWxyki2WLeUhZnQAoLIiaSJnaHQAAKCzInkAMmThIXNoAKCiIoABZWxyAKcttC24LWKiKCKuLQAAAACyLWEAcgAAoLsicQAAoFoi7CFpcACg7iIAAWJ0vC1eD2EA8gBfD3IAAOA12DPddAByAOkAlS1zAHUAAAFicM0t0C0A4IIi0iAA4IMi0iBwAGYAAOA12GfdcgBvAPAAWQt0AHIA6QCaLQABY3XkLegtcgAA4DXYy9wAAWJw7C30LW4AAAFFZXUt8S0A4IoiAP5uAAABRWV/LfktAOCLIgD+6SJnemFnAKCaKYADY2Vmb3BycwANLhAuJS4pLiMuLi40LukhcmN1YQABZGkULiEuAAFiZxguHC5hAHIAAKBfKmUAcaAnIgCgWSLlIXJwAKAYIXIAAOA12DTdcABmAADgNdho3WWgQCJhAHQA6ABqD2MAcgAA4DXYzNzjCuQRUC4AAFQuAABYLmIuAAAAAGMubS5wLnQuAAAAAIguki4AAJouJxIqEnQAcgDpAB0ScgAA4DXYNd0AAUFhWy5eLnIA8gDnAnIA8gCTB75jAAFBYWYuaS5yAPIA4AJyAPIAjAdhAPAAeh5pAHMAAKD7IoABZHB0APgReS6DLgABZmx9LoAuAOA12GnddQDzAP8RaQBtAOUABBIAAUFhiy6OLnIA8gDuAnIA8gCaBwABY3GVLgoScgAA4DXYzdwAAXB0nS6hLmwAdQDzACUScgDpACASAARhY2VmaW9zdbEuvC7ELsguzC7PLtQu2S5jAAABdXm2LrsudABlADuA/QD9QE9kAAFpecAuwy5yAGMAd2FLZG4AO4ClAKVAcgAA4DXYNt1jAHkAV2RwAGYAAOA12GrdYwByAADgNdjO3AABY23dLt8ueQBOZGwAO4D/AP9AAAVhY2RlZmhpb3N38y73Lv8uAi8MLxAvEy8YLx0vIi9jInV0ZQB6YQABYXn7Lv4u8iFvbn5hN2RvAHQAfGEAAWV0Bi8KL3QAcgDmAB8QYQC2Y3IAAOA12DfdYwB5ADZk5yJyYXJyAKDdIXAAZgAA4DXYa91jAHIAAOA12M/cAAFqbiYvKC8AoA0gagAAoAwg`)})),Y3=s((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.xmlDecodeTree=void 0,e.xmlDecodeTree=(0,q3().decodeBase64)(`AAJhZ2xxBwARABMAFQBtAg0AAAAAAA8AcAAmYG8AcwAnYHQAPmB0ADxg9SFvdCJg`)})),sae=s((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.BinTrieFlags=void 0;var t;(function(e){e[e.VALUE_LENGTH=49152]=`VALUE_LENGTH`,e[e.FLAG13=8192]=`FLAG13`,e[e.BRANCH_LENGTH=8064]=`BRANCH_LENGTH`,e[e.JUMP_TABLE=127]=`JUMP_TABLE`})(t||(e.BinTrieFlags=t={}))})),X3=s((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.xmlDecodeTree=e.htmlDecodeTree=e.replaceCodePoint=e.fromCodePoint=e.decodeCodePoint=e.EntityDecoder=e.DecodingMode=void 0,e.determineBranch=h,e.decodeHTML=v,e.decodeHTMLAttribute=y,e.decodeHTMLStrict=b,e.decodeXML=x;var t=K3(),n=J3(),r=Y3(),i=sae(),a;(function(e){e[e.NUM=35]=`NUM`,e[e.SEMI=59]=`SEMI`,e[e.EQUALS=61]=`EQUALS`,e[e.ZERO=48]=`ZERO`,e[e.NINE=57]=`NINE`,e[e.LOWER_A=97]=`LOWER_A`,e[e.LOWER_F=102]=`LOWER_F`,e[e.LOWER_X=120]=`LOWER_X`,e[e.LOWER_Z=122]=`LOWER_Z`,e[e.UPPER_A=65]=`UPPER_A`,e[e.UPPER_F=70]=`UPPER_F`,e[e.UPPER_Z=90]=`UPPER_Z`})(a||={});var o=32;function s(e){return e>=a.ZERO&&e<=a.NINE}function c(e){return e>=a.UPPER_A&&e<=a.UPPER_F||e>=a.LOWER_A&&e<=a.LOWER_F}function l(e){return e>=a.UPPER_A&&e<=a.UPPER_Z||e>=a.LOWER_A&&e<=a.LOWER_Z||s(e)}function u(e){return e===a.EQUALS||l(e)}var d;(function(e){e[e.EntityStart=0]=`EntityStart`,e[e.NumericStart=1]=`NumericStart`,e[e.NumericDecimal=2]=`NumericDecimal`,e[e.NumericHex=3]=`NumericHex`,e[e.NamedEntity=4]=`NamedEntity`})(d||={});var f;(function(e){e[e.Legacy=0]=`Legacy`,e[e.Strict=1]=`Strict`,e[e.Attribute=2]=`Attribute`})(f||(e.DecodingMode=f={}));var p=class{constructor(e,t,n){this.decodeTree=e,this.emitCodePoint=t,this.errors=n,this.state=d.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=f.Strict,this.runConsumed=0}startEntity(e){this.decodeMode=e,this.state=d.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1,this.runConsumed=0}write(e,t){switch(this.state){case d.EntityStart:return e.charCodeAt(t)===a.NUM?(this.state=d.NumericStart,this.consumed+=1,this.stateNumericStart(e,t+1)):(this.state=d.NamedEntity,this.stateNamedEntity(e,t));case d.NumericStart:return this.stateNumericStart(e,t);case d.NumericDecimal:return this.stateNumericDecimal(e,t);case d.NumericHex:return this.stateNumericHex(e,t);case d.NamedEntity:return this.stateNamedEntity(e,t)}}stateNumericStart(e,t){return t>=e.length?-1:(e.charCodeAt(t)|o)===a.LOWER_X?(this.state=d.NumericHex,this.consumed+=1,this.stateNumericHex(e,t+1)):(this.state=d.NumericDecimal,this.stateNumericDecimal(e,t))}stateNumericHex(e,t){for(;t<e.length;){let n=e.charCodeAt(t);if(s(n)||c(n)){let e=n<=a.NINE?n-a.ZERO:(n|o)-a.LOWER_A+10;this.result=this.result*16+e,this.consumed++,t++}else return this.emitNumericEntity(n,3)}return-1}stateNumericDecimal(e,t){for(;t<e.length;){let n=e.charCodeAt(t);if(s(n))this.result=this.result*10+(n-a.ZERO),this.consumed++,t++;else return this.emitNumericEntity(n,2)}return-1}emitNumericEntity(e,n){var r;if(this.consumed<=n)return(r=this.errors)==null||r.absenceOfDigitsInNumericCharacterReference(this.consumed),0;if(e===a.SEMI)this.consumed+=1;else if(this.decodeMode===f.Strict)return 0;return this.emitCodePoint((0,t.replaceCodePoint)(this.result),this.consumed),this.errors&&(e!==a.SEMI&&this.errors.missingSemicolonAfterCharacterReference(),this.errors.validateNumericCharacterReference(this.result)),this.consumed}stateNamedEntity(e,t){let{decodeTree:n}=this,r=n[this.treeIndex],o=(r&i.BinTrieFlags.VALUE_LENGTH)>>14;for(;t<e.length;){if(o===0&&(r&i.BinTrieFlags.FLAG13)!==0){let a=(r&i.BinTrieFlags.BRANCH_LENGTH)>>7;if(this.runConsumed===0){let n=r&i.BinTrieFlags.JUMP_TABLE;if(e.charCodeAt(t)!==n)return this.result===0?0:this.emitNotTerminatedNamedEntity();t++,this.excess++,this.runConsumed++}for(;this.runConsumed<a;){if(t>=e.length)return-1;let r=this.runConsumed-1,i=n[this.treeIndex+1+(r>>1)],a=r%2==0?i&255:i>>8&255;if(e.charCodeAt(t)!==a)return this.runConsumed=0,this.result===0?0:this.emitNotTerminatedNamedEntity();t++,this.excess++,this.runConsumed++}this.runConsumed=0,this.treeIndex+=1+(a>>1),r=n[this.treeIndex],o=(r&i.BinTrieFlags.VALUE_LENGTH)>>14}if(t>=e.length)break;let s=e.charCodeAt(t);if(s===a.SEMI&&o!==0&&(r&i.BinTrieFlags.FLAG13)!==0)return this.emitNamedEntityData(this.treeIndex,o,this.consumed+this.excess);if(this.treeIndex=h(n,r,this.treeIndex+Math.max(1,o),s),this.treeIndex<0)return this.result===0||this.decodeMode===f.Attribute&&(o===0||u(s))?0:this.emitNotTerminatedNamedEntity();if(r=n[this.treeIndex],o=(r&i.BinTrieFlags.VALUE_LENGTH)>>14,o!==0){if(s===a.SEMI)return this.emitNamedEntityData(this.treeIndex,o,this.consumed+this.excess);this.decodeMode!==f.Strict&&(r&i.BinTrieFlags.FLAG13)===0&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}t++,this.excess++}return-1}emitNotTerminatedNamedEntity(){var e;let{result:t,decodeTree:n}=this,r=(n[t]&i.BinTrieFlags.VALUE_LENGTH)>>14;return this.emitNamedEntityData(t,r,this.consumed),(e=this.errors)==null||e.missingSemicolonAfterCharacterReference(),this.consumed}emitNamedEntityData(e,t,n){let{decodeTree:r}=this;return this.emitCodePoint(t===1?r[e]&~(i.BinTrieFlags.VALUE_LENGTH|i.BinTrieFlags.FLAG13):r[e+1],n),t===3&&this.emitCodePoint(r[e+2],n),n}end(){var e;switch(this.state){case d.NamedEntity:return this.result!==0&&(this.decodeMode!==f.Attribute||this.result===this.treeIndex)?this.emitNotTerminatedNamedEntity():0;case d.NumericDecimal:return this.emitNumericEntity(0,2);case d.NumericHex:return this.emitNumericEntity(0,3);case d.NumericStart:return(e=this.errors)==null||e.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case d.EntityStart:return 0}}};e.EntityDecoder=p;function m(e){let n=``,r=new p(e,e=>n+=(0,t.fromCodePoint)(e));return function(e,t){let i=0,a=0;for(;(a=e.indexOf(`&`,a))>=0;){n+=e.slice(i,a),r.startEntity(t);let o=r.write(e,a+1);if(o<0){i=a+r.end();break}i=a+o,a=o===0?i+1:i}let o=n+e.slice(i);return n=``,o}}function h(e,t,n,r){let a=(t&i.BinTrieFlags.BRANCH_LENGTH)>>7,o=t&i.BinTrieFlags.JUMP_TABLE;if(a===0)return o!==0&&r===o?n:-1;if(o){let t=r-o;return t<0||t>=a?-1:e[n+t]-1}let s=a+1>>1,c=0,l=a-1;for(;c<=l;){let t=c+l>>>1,i=e[n+(t>>1)]>>(t&1)*8&255;if(i<r)c=t+1;else if(i>r)l=t-1;else return e[n+s+t]}return-1}var g=m(n.htmlDecodeTree),_=m(r.xmlDecodeTree);function v(e,t=f.Legacy){return g(e,t)}function y(e){return g(e,f.Attribute)}function b(e){return g(e,f.Strict)}function x(e){return _(e,f.Strict)}var S=K3();Object.defineProperty(e,"decodeCodePoint",{enumerable:!0,get:function(){return S.decodeCodePoint}}),Object.defineProperty(e,"fromCodePoint",{enumerable:!0,get:function(){return S.fromCodePoint}}),Object.defineProperty(e,"replaceCodePoint",{enumerable:!0,get:function(){return S.replaceCodePoint}});var C=J3();Object.defineProperty(e,"htmlDecodeTree",{enumerable:!0,get:function(){return C.htmlDecodeTree}});var w=Y3();Object.defineProperty(e,"xmlDecodeTree",{enumerable:!0,get:function(){return w.xmlDecodeTree}})})),Z3=s((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.QuoteType=void 0;var t=X3(),n;(function(e){e[e.Tab=9]=`Tab`,e[e.NewLine=10]=`NewLine`,e[e.FormFeed=12]=`FormFeed`,e[e.CarriageReturn=13]=`CarriageReturn`,e[e.Space=32]=`Space`,e[e.ExclamationMark=33]=`ExclamationMark`,e[e.Number=35]=`Number`,e[e.Amp=38]=`Amp`,e[e.SingleQuote=39]=`SingleQuote`,e[e.DoubleQuote=34]=`DoubleQuote`,e[e.Dash=45]=`Dash`,e[e.Slash=47]=`Slash`,e[e.Zero=48]=`Zero`,e[e.Nine=57]=`Nine`,e[e.Semi=59]=`Semi`,e[e.Lt=60]=`Lt`,e[e.Eq=61]=`Eq`,e[e.Gt=62]=`Gt`,e[e.Questionmark=63]=`Questionmark`,e[e.UpperA=65]=`UpperA`,e[e.LowerA=97]=`LowerA`,e[e.UpperF=70]=`UpperF`,e[e.LowerF=102]=`LowerF`,e[e.UpperZ=90]=`UpperZ`,e[e.LowerZ=122]=`LowerZ`,e[e.LowerX=120]=`LowerX`,e[e.OpeningSquareBracket=91]=`OpeningSquareBracket`})(n||={});var r;(function(e){e[e.Text=1]=`Text`,e[e.BeforeTagName=2]=`BeforeTagName`,e[e.InTagName=3]=`InTagName`,e[e.InSelfClosingTag=4]=`InSelfClosingTag`,e[e.BeforeClosingTagName=5]=`BeforeClosingTagName`,e[e.InClosingTagName=6]=`InClosingTagName`,e[e.AfterClosingTagName=7]=`AfterClosingTagName`,e[e.BeforeAttributeName=8]=`BeforeAttributeName`,e[e.InAttributeName=9]=`InAttributeName`,e[e.AfterAttributeName=10]=`AfterAttributeName`,e[e.BeforeAttributeValue=11]=`BeforeAttributeValue`,e[e.InAttributeValueDq=12]=`InAttributeValueDq`,e[e.InAttributeValueSq=13]=`InAttributeValueSq`,e[e.InAttributeValueNq=14]=`InAttributeValueNq`,e[e.BeforeDeclaration=15]=`BeforeDeclaration`,e[e.InDeclaration=16]=`InDeclaration`,e[e.InProcessingInstruction=17]=`InProcessingInstruction`,e[e.BeforeComment=18]=`BeforeComment`,e[e.CDATASequence=19]=`CDATASequence`,e[e.InSpecialComment=20]=`InSpecialComment`,e[e.InCommentLike=21]=`InCommentLike`,e[e.BeforeSpecialS=22]=`BeforeSpecialS`,e[e.BeforeSpecialT=23]=`BeforeSpecialT`,e[e.SpecialStartSequence=24]=`SpecialStartSequence`,e[e.InSpecialTag=25]=`InSpecialTag`,e[e.InEntity=26]=`InEntity`})(r||={});function i(e){return e===n.Space||e===n.NewLine||e===n.Tab||e===n.FormFeed||e===n.CarriageReturn}function a(e){return e===n.Slash||e===n.Gt||i(e)}function o(e){return e>=n.LowerA&&e<=n.LowerZ||e>=n.UpperA&&e<=n.UpperZ}var s;(function(e){e[e.NoValue=0]=`NoValue`,e[e.Unquoted=1]=`Unquoted`,e[e.Single=2]=`Single`,e[e.Double=3]=`Double`})(s||(e.QuoteType=s={}));var c={Cdata:new Uint8Array([67,68,65,84,65,91]),CdataEnd:new Uint8Array([93,93,62]),CommentEnd:new Uint8Array([45,45,62]),ScriptEnd:new Uint8Array([60,47,115,99,114,105,112,116]),StyleEnd:new Uint8Array([60,47,115,116,121,108,101]),TitleEnd:new Uint8Array([60,47,116,105,116,108,101]),TextareaEnd:new Uint8Array([60,47,116,101,120,116,97,114,101,97]),XmpEnd:new Uint8Array([60,47,120,109,112])};e.default=class{constructor({xmlMode:e=!1,decodeEntities:n=!0},i){this.cbs=i,this.state=r.Text,this.buffer=``,this.sectionStart=0,this.index=0,this.entityStart=0,this.baseState=r.Text,this.isSpecial=!1,this.running=!0,this.offset=0,this.currentSequence=void 0,this.sequenceIndex=0,this.xmlMode=e,this.decodeEntities=n,this.entityDecoder=new t.EntityDecoder(e?t.xmlDecodeTree:t.htmlDecodeTree,(e,t)=>this.emitCodePoint(e,t))}reset(){this.state=r.Text,this.buffer=``,this.sectionStart=0,this.index=0,this.baseState=r.Text,this.currentSequence=void 0,this.running=!0,this.offset=0}write(e){this.offset+=this.buffer.length,this.buffer=e,this.parse()}end(){this.running&&this.finish()}pause(){this.running=!1}resume(){this.running=!0,this.index<this.buffer.length+this.offset&&this.parse()}stateText(e){e===n.Lt||!this.decodeEntities&&this.fastForwardTo(n.Lt)?(this.index>this.sectionStart&&this.cbs.ontext(this.sectionStart,this.index),this.state=r.BeforeTagName,this.sectionStart=this.index):this.decodeEntities&&e===n.Amp&&this.startEntity()}stateSpecialStartSequence(e){let t=this.sequenceIndex===this.currentSequence.length;if(!(t?a(e):(e|32)===this.currentSequence[this.sequenceIndex]))this.isSpecial=!1;else if(!t){this.sequenceIndex++;return}this.sequenceIndex=0,this.state=r.InTagName,this.stateInTagName(e)}stateInSpecialTag(e){if(this.sequenceIndex===this.currentSequence.length){if(e===n.Gt||i(e)){let t=this.index-this.currentSequence.length;if(this.sectionStart<t){let e=this.index;this.index=t,this.cbs.ontext(this.sectionStart,t),this.index=e}this.isSpecial=!1,this.sectionStart=t+2,this.stateInClosingTagName(e);return}this.sequenceIndex=0}(e|32)===this.currentSequence[this.sequenceIndex]?this.sequenceIndex+=1:this.sequenceIndex===0?this.currentSequence===c.TitleEnd?this.decodeEntities&&e===n.Amp&&this.startEntity():this.fastForwardTo(n.Lt)&&(this.sequenceIndex=1):this.sequenceIndex=Number(e===n.Lt)}stateCDATASequence(e){e===c.Cdata[this.sequenceIndex]?++this.sequenceIndex===c.Cdata.length&&(this.state=r.InCommentLike,this.currentSequence=c.CdataEnd,this.sequenceIndex=0,this.sectionStart=this.index+1):(this.sequenceIndex=0,this.state=r.InDeclaration,this.stateInDeclaration(e))}fastForwardTo(e){for(;++this.index<this.buffer.length+this.offset;)if(this.buffer.charCodeAt(this.index-this.offset)===e)return!0;return this.index=this.buffer.length+this.offset-1,!1}stateInCommentLike(e){e===this.currentSequence[this.sequenceIndex]?++this.sequenceIndex===this.currentSequence.length&&(this.currentSequence===c.CdataEnd?this.cbs.oncdata(this.sectionStart,this.index,2):this.cbs.oncomment(this.sectionStart,this.index,2),this.sequenceIndex=0,this.sectionStart=this.index+1,this.state=r.Text):this.sequenceIndex===0?this.fastForwardTo(this.currentSequence[0])&&(this.sequenceIndex=1):e!==this.currentSequence[this.sequenceIndex-1]&&(this.sequenceIndex=0)}isTagStartChar(e){return this.xmlMode?!a(e):o(e)}startSpecial(e,t){this.isSpecial=!0,this.currentSequence=e,this.sequenceIndex=t,this.state=r.SpecialStartSequence}stateBeforeTagName(e){if(e===n.ExclamationMark)this.state=r.BeforeDeclaration,this.sectionStart=this.index+1;else if(e===n.Questionmark)this.state=r.InProcessingInstruction,this.sectionStart=this.index+1;else if(this.isTagStartChar(e)){let t=e|32;this.sectionStart=this.index,this.xmlMode?this.state=r.InTagName:t===c.ScriptEnd[2]?this.state=r.BeforeSpecialS:t===c.TitleEnd[2]||t===c.XmpEnd[2]?this.state=r.BeforeSpecialT:this.state=r.InTagName}else e===n.Slash?this.state=r.BeforeClosingTagName:(this.state=r.Text,this.stateText(e))}stateInTagName(e){a(e)&&(this.cbs.onopentagname(this.sectionStart,this.index),this.sectionStart=-1,this.state=r.BeforeAttributeName,this.stateBeforeAttributeName(e))}stateBeforeClosingTagName(e){i(e)||(e===n.Gt?this.state=r.Text:(this.state=this.isTagStartChar(e)?r.InClosingTagName:r.InSpecialComment,this.sectionStart=this.index))}stateInClosingTagName(e){(e===n.Gt||i(e))&&(this.cbs.onclosetag(this.sectionStart,this.index),this.sectionStart=-1,this.state=r.AfterClosingTagName,this.stateAfterClosingTagName(e))}stateAfterClosingTagName(e){(e===n.Gt||this.fastForwardTo(n.Gt))&&(this.state=r.Text,this.sectionStart=this.index+1)}stateBeforeAttributeName(e){e===n.Gt?(this.cbs.onopentagend(this.index),this.isSpecial?(this.state=r.InSpecialTag,this.sequenceIndex=0):this.state=r.Text,this.sectionStart=this.index+1):e===n.Slash?this.state=r.InSelfClosingTag:i(e)||(this.state=r.InAttributeName,this.sectionStart=this.index)}stateInSelfClosingTag(e){e===n.Gt?(this.cbs.onselfclosingtag(this.index),this.state=r.Text,this.sectionStart=this.index+1,this.isSpecial=!1):i(e)||(this.state=r.BeforeAttributeName,this.stateBeforeAttributeName(e))}stateInAttributeName(e){(e===n.Eq||a(e))&&(this.cbs.onattribname(this.sectionStart,this.index),this.sectionStart=this.index,this.state=r.AfterAttributeName,this.stateAfterAttributeName(e))}stateAfterAttributeName(e){e===n.Eq?this.state=r.BeforeAttributeValue:e===n.Slash||e===n.Gt?(this.cbs.onattribend(s.NoValue,this.sectionStart),this.sectionStart=-1,this.state=r.BeforeAttributeName,this.stateBeforeAttributeName(e)):i(e)||(this.cbs.onattribend(s.NoValue,this.sectionStart),this.state=r.InAttributeName,this.sectionStart=this.index)}stateBeforeAttributeValue(e){e===n.DoubleQuote?(this.state=r.InAttributeValueDq,this.sectionStart=this.index+1):e===n.SingleQuote?(this.state=r.InAttributeValueSq,this.sectionStart=this.index+1):i(e)||(this.sectionStart=this.index,this.state=r.InAttributeValueNq,this.stateInAttributeValueNoQuotes(e))}handleInAttributeValue(e,t){e===t||!this.decodeEntities&&this.fastForwardTo(t)?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(t===n.DoubleQuote?s.Double:s.Single,this.index+1),this.state=r.BeforeAttributeName):this.decodeEntities&&e===n.Amp&&this.startEntity()}stateInAttributeValueDoubleQuotes(e){this.handleInAttributeValue(e,n.DoubleQuote)}stateInAttributeValueSingleQuotes(e){this.handleInAttributeValue(e,n.SingleQuote)}stateInAttributeValueNoQuotes(e){i(e)||e===n.Gt?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(s.Unquoted,this.index),this.state=r.BeforeAttributeName,this.stateBeforeAttributeName(e)):this.decodeEntities&&e===n.Amp&&this.startEntity()}stateBeforeDeclaration(e){e===n.OpeningSquareBracket?(this.state=r.CDATASequence,this.sequenceIndex=0):this.state=e===n.Dash?r.BeforeComment:r.InDeclaration}stateInDeclaration(e){(e===n.Gt||this.fastForwardTo(n.Gt))&&(this.cbs.ondeclaration(this.sectionStart,this.index),this.state=r.Text,this.sectionStart=this.index+1)}stateInProcessingInstruction(e){(e===n.Gt||this.fastForwardTo(n.Gt))&&(this.cbs.onprocessinginstruction(this.sectionStart,this.index),this.state=r.Text,this.sectionStart=this.index+1)}stateBeforeComment(e){e===n.Dash?(this.state=r.InCommentLike,this.currentSequence=c.CommentEnd,this.sequenceIndex=2,this.sectionStart=this.index+1):this.state=r.InDeclaration}stateInSpecialComment(e){(e===n.Gt||this.fastForwardTo(n.Gt))&&(this.cbs.oncomment(this.sectionStart,this.index,0),this.state=r.Text,this.sectionStart=this.index+1)}stateBeforeSpecialS(e){let t=e|32;t===c.ScriptEnd[3]?this.startSpecial(c.ScriptEnd,4):t===c.StyleEnd[3]?this.startSpecial(c.StyleEnd,4):(this.state=r.InTagName,this.stateInTagName(e))}stateBeforeSpecialT(e){switch(e|32){case c.TitleEnd[3]:this.startSpecial(c.TitleEnd,4);break;case c.TextareaEnd[3]:this.startSpecial(c.TextareaEnd,4);break;case c.XmpEnd[3]:this.startSpecial(c.XmpEnd,4);break;default:this.state=r.InTagName,this.stateInTagName(e)}}startEntity(){this.baseState=this.state,this.state=r.InEntity,this.entityStart=this.index,this.entityDecoder.startEntity(this.xmlMode?t.DecodingMode.Strict:this.baseState===r.Text||this.baseState===r.InSpecialTag?t.DecodingMode.Legacy:t.DecodingMode.Attribute)}stateInEntity(){let e=this.index-this.offset,t=this.entityDecoder.write(this.buffer,e);if(t>=0)this.state=this.baseState,t===0&&--this.index;else{if(e<this.buffer.length&&this.buffer.charCodeAt(e)===n.Amp){this.state=this.baseState,--this.index;return}this.index=this.offset+this.buffer.length-1}}cleanup(){this.running&&this.sectionStart!==this.index&&(this.state===r.Text||this.state===r.InSpecialTag&&this.sequenceIndex===0?(this.cbs.ontext(this.sectionStart,this.index),this.sectionStart=this.index):(this.state===r.InAttributeValueDq||this.state===r.InAttributeValueSq||this.state===r.InAttributeValueNq)&&(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=this.index))}shouldContinue(){return this.index<this.buffer.length+this.offset&&this.running}parse(){for(;this.shouldContinue();){let e=this.buffer.charCodeAt(this.index-this.offset);switch(this.state){case r.Text:this.stateText(e);break;case r.SpecialStartSequence:this.stateSpecialStartSequence(e);break;case r.InSpecialTag:this.stateInSpecialTag(e);break;case r.CDATASequence:this.stateCDATASequence(e);break;case r.InAttributeValueDq:this.stateInAttributeValueDoubleQuotes(e);break;case r.InAttributeName:this.stateInAttributeName(e);break;case r.InCommentLike:this.stateInCommentLike(e);break;case r.InSpecialComment:this.stateInSpecialComment(e);break;case r.BeforeAttributeName:this.stateBeforeAttributeName(e);break;case r.InTagName:this.stateInTagName(e);break;case r.InClosingTagName:this.stateInClosingTagName(e);break;case r.BeforeTagName:this.stateBeforeTagName(e);break;case r.AfterAttributeName:this.stateAfterAttributeName(e);break;case r.InAttributeValueSq:this.stateInAttributeValueSingleQuotes(e);break;case r.BeforeAttributeValue:this.stateBeforeAttributeValue(e);break;case r.BeforeClosingTagName:this.stateBeforeClosingTagName(e);break;case r.AfterClosingTagName:this.stateAfterClosingTagName(e);break;case r.BeforeSpecialS:this.stateBeforeSpecialS(e);break;case r.BeforeSpecialT:this.stateBeforeSpecialT(e);break;case r.InAttributeValueNq:this.stateInAttributeValueNoQuotes(e);break;case r.InSelfClosingTag:this.stateInSelfClosingTag(e);break;case r.InDeclaration:this.stateInDeclaration(e);break;case r.BeforeDeclaration:this.stateBeforeDeclaration(e);break;case r.BeforeComment:this.stateBeforeComment(e);break;case r.InProcessingInstruction:this.stateInProcessingInstruction(e);break;case r.InEntity:this.stateInEntity();break}this.index++}this.cleanup()}finish(){this.state===r.InEntity&&(this.entityDecoder.end(),this.state=this.baseState),this.handleTrailingData(),this.cbs.onend()}handleTrailingData(){let e=this.buffer.length+this.offset;this.sectionStart>=e||(this.state===r.InCommentLike?this.currentSequence===c.CdataEnd?this.cbs.oncdata(this.sectionStart,e,0):this.cbs.oncomment(this.sectionStart,e,0):this.state===r.InTagName||this.state===r.BeforeAttributeName||this.state===r.BeforeAttributeValue||this.state===r.AfterAttributeName||this.state===r.InAttributeName||this.state===r.InAttributeValueSq||this.state===r.InAttributeValueDq||this.state===r.InAttributeValueNq||this.state===r.InClosingTagName||this.cbs.ontext(this.sectionStart,e))}emitCodePoint(e,t){this.baseState!==r.Text&&this.baseState!==r.InSpecialTag?(this.sectionStart<this.entityStart&&this.cbs.onattribdata(this.sectionStart,this.entityStart),this.sectionStart=this.entityStart+t,this.index=this.sectionStart-1,this.cbs.onattribentity(e)):(this.sectionStart<this.entityStart&&this.cbs.ontext(this.sectionStart,this.entityStart),this.sectionStart=this.entityStart+t,this.index=this.sectionStart-1,this.cbs.ontextentity(e,this.sectionStart))}}})),Q3=s((e=>{var t=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||(`get`in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),n=e&&e.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),r=e&&e.__importStar||(function(){var e=function(t){return e=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t},e(t)};return function(r){if(r&&r.__esModule)return r;var i={};if(r!=null)for(var a=e(r),o=0;o<a.length;o++)a[o]!=="default"&&t(i,r,a[o]);return n(i,r),i}})();Object.defineProperty(e,"__esModule",{value:!0}),e.Parser=void 0;var i=r(Z3()),a=X3(),o=new Set([`input`,`option`,`optgroup`,`select`,`button`,`datalist`,`textarea`]),s=new Set([`p`]),c=new Set([`thead`,`tbody`]),l=new Set([`dd`,`dt`]),u=new Set([`rt`,`rp`]),d=new Map([[`tr`,new Set([`tr`,`th`,`td`])],[`th`,new Set([`th`])],[`td`,new Set([`thead`,`th`,`td`])],[`body`,new Set([`head`,`link`,`script`])],[`li`,new Set([`li`])],[`p`,s],[`h1`,s],[`h2`,s],[`h3`,s],[`h4`,s],[`h5`,s],[`h6`,s],[`select`,o],[`input`,o],[`output`,o],[`button`,o],[`datalist`,o],[`textarea`,o],[`option`,new Set([`option`])],[`optgroup`,new Set([`optgroup`,`option`])],[`dd`,l],[`dt`,l],[`address`,s],[`article`,s],[`aside`,s],[`blockquote`,s],[`details`,s],[`div`,s],[`dl`,s],[`fieldset`,s],[`figcaption`,s],[`figure`,s],[`footer`,s],[`form`,s],[`header`,s],[`hr`,s],[`main`,s],[`nav`,s],[`ol`,s],[`pre`,s],[`section`,s],[`table`,s],[`ul`,s],[`rt`,u],[`rp`,u],[`tbody`,c],[`tfoot`,c]]),f=new Set([`area`,`base`,`basefont`,`br`,`col`,`command`,`embed`,`frame`,`hr`,`img`,`input`,`isindex`,`keygen`,`link`,`meta`,`param`,`source`,`track`,`wbr`]),p=new Set([`math`,`svg`]),m=new Set([`mi`,`mo`,`mn`,`ms`,`mtext`,`annotation-xml`,`foreignobject`,`desc`,`title`]),h=/\s|\//;e.Parser=class{constructor(e,t={}){var n,r;this.options=t,this.startIndex=0,this.endIndex=0,this.openTagStart=0,this.tagname=``,this.attribname=``,this.attribvalue=``,this.attribs=null,this.stack=[],this.buffers=[],this.bufferOffset=0,this.writeIndex=0,this.ended=!1,this.cbs=e??{},this.htmlMode=!this.options.xmlMode,this.lowerCaseTagNames=t.lowerCaseTags??this.htmlMode,this.lowerCaseAttributeNames=t.lowerCaseAttributeNames??this.htmlMode,this.recognizeSelfClosing=t.recognizeSelfClosing??!this.htmlMode,this.tokenizer=new(t.Tokenizer??i.default)(this.options,this),this.foreignContext=[!this.htmlMode],(r=(n=this.cbs).onparserinit)==null||r.call(n,this)}ontext(e,t){var n,r;let i=this.getSlice(e,t);this.endIndex=t-1,(r=(n=this.cbs).ontext)==null||r.call(n,i),this.startIndex=t}ontextentity(e,t){var n,r;this.endIndex=t-1,(r=(n=this.cbs).ontext)==null||r.call(n,(0,a.fromCodePoint)(e)),this.startIndex=t}isVoidElement(e){return this.htmlMode&&f.has(e)}onopentagname(e,t){this.endIndex=t;let n=this.getSlice(e,t);this.lowerCaseTagNames&&(n=n.toLowerCase()),this.emitOpenTag(n)}emitOpenTag(e){var t,n,r,i;this.openTagStart=this.startIndex,this.tagname=e;let a=this.htmlMode&&d.get(e);if(a)for(;this.stack.length>0&&a.has(this.stack[0]);){let e=this.stack.shift();(n=(t=this.cbs).onclosetag)==null||n.call(t,e,!0)}this.isVoidElement(e)||(this.stack.unshift(e),this.htmlMode&&(p.has(e)?this.foreignContext.unshift(!0):m.has(e)&&this.foreignContext.unshift(!1))),(i=(r=this.cbs).onopentagname)==null||i.call(r,e),this.cbs.onopentag&&(this.attribs={})}endOpenTag(e){var t,n;this.startIndex=this.openTagStart,this.attribs&&=((n=(t=this.cbs).onopentag)==null||n.call(t,this.tagname,this.attribs,e),null),this.cbs.onclosetag&&this.isVoidElement(this.tagname)&&this.cbs.onclosetag(this.tagname,!0),this.tagname=``}onopentagend(e){this.endIndex=e,this.endOpenTag(!1),this.startIndex=e+1}onclosetag(e,t){var n,r,i,a,o,s,c,l;this.endIndex=t;let u=this.getSlice(e,t);if(this.lowerCaseTagNames&&(u=u.toLowerCase()),this.htmlMode&&(p.has(u)||m.has(u))&&this.foreignContext.shift(),this.isVoidElement(u))this.htmlMode&&u===`br`&&((a=(i=this.cbs).onopentagname)==null||a.call(i,`br`),(s=(o=this.cbs).onopentag)==null||s.call(o,`br`,{},!0),(l=(c=this.cbs).onclosetag)==null||l.call(c,`br`,!1));else{let e=this.stack.indexOf(u);if(e!==-1)for(let t=0;t<=e;t++){let i=this.stack.shift();(r=(n=this.cbs).onclosetag)==null||r.call(n,i,t!==e)}else this.htmlMode&&u===`p`&&(this.emitOpenTag(`p`),this.closeCurrentTag(!0))}this.startIndex=t+1}onselfclosingtag(e){this.endIndex=e,this.recognizeSelfClosing||this.foreignContext[0]?(this.closeCurrentTag(!1),this.startIndex=e+1):this.onopentagend(e)}closeCurrentTag(e){var t,n;let r=this.tagname;this.endOpenTag(e),this.stack[0]===r&&((n=(t=this.cbs).onclosetag)==null||n.call(t,r,!e),this.stack.shift())}onattribname(e,t){this.startIndex=e;let n=this.getSlice(e,t);this.attribname=this.lowerCaseAttributeNames?n.toLowerCase():n}onattribdata(e,t){this.attribvalue+=this.getSlice(e,t)}onattribentity(e){this.attribvalue+=(0,a.fromCodePoint)(e)}onattribend(e,t){var n,r;this.endIndex=t,(r=(n=this.cbs).onattribute)==null||r.call(n,this.attribname,this.attribvalue,e===i.QuoteType.Double?`"`:e===i.QuoteType.Single?`'`:e===i.QuoteType.NoValue?void 0:null),this.attribs&&!Object.prototype.hasOwnProperty.call(this.attribs,this.attribname)&&(this.attribs[this.attribname]=this.attribvalue),this.attribvalue=``}getInstructionName(e){let t=e.search(h),n=t<0?e:e.substr(0,t);return this.lowerCaseTagNames&&(n=n.toLowerCase()),n}ondeclaration(e,t){this.endIndex=t;let n=this.getSlice(e,t);if(this.cbs.onprocessinginstruction){let e=this.getInstructionName(n);this.cbs.onprocessinginstruction(`!${e}`,`!${n}`)}this.startIndex=t+1}onprocessinginstruction(e,t){this.endIndex=t;let n=this.getSlice(e,t);if(this.cbs.onprocessinginstruction){let e=this.getInstructionName(n);this.cbs.onprocessinginstruction(`?${e}`,`?${n}`)}this.startIndex=t+1}oncomment(e,t,n){var r,i,a,o;this.endIndex=t,(i=(r=this.cbs).oncomment)==null||i.call(r,this.getSlice(e,t-n)),(o=(a=this.cbs).oncommentend)==null||o.call(a),this.startIndex=t+1}oncdata(e,t,n){var r,i,a,o,s,c,l,u,d,f;this.endIndex=t;let p=this.getSlice(e,t-n);!this.htmlMode||this.options.recognizeCDATA?((i=(r=this.cbs).oncdatastart)==null||i.call(r),(o=(a=this.cbs).ontext)==null||o.call(a,p),(c=(s=this.cbs).oncdataend)==null||c.call(s)):((u=(l=this.cbs).oncomment)==null||u.call(l,`[CDATA[${p}]]`),(f=(d=this.cbs).oncommentend)==null||f.call(d)),this.startIndex=t+1}onend(){var e,t;if(this.cbs.onclosetag){this.endIndex=this.startIndex;for(let e=0;e<this.stack.length;e++)this.cbs.onclosetag(this.stack[e],!0)}(t=(e=this.cbs).onend)==null||t.call(e)}reset(){var e,t,n,r;(t=(e=this.cbs).onreset)==null||t.call(e),this.tokenizer.reset(),this.tagname=``,this.attribname=``,this.attribs=null,this.stack.length=0,this.startIndex=0,this.endIndex=0,(r=(n=this.cbs).onparserinit)==null||r.call(n,this),this.buffers.length=0,this.foreignContext.length=0,this.foreignContext.unshift(!this.htmlMode),this.bufferOffset=0,this.writeIndex=0,this.ended=!1}parseComplete(e){this.reset(),this.end(e)}getSlice(e,t){for(;e-this.bufferOffset>=this.buffers[0].length;)this.shiftBuffer();let n=this.buffers[0].slice(e-this.bufferOffset,t-this.bufferOffset);for(;t-this.bufferOffset>this.buffers[0].length;)this.shiftBuffer(),n+=this.buffers[0].slice(0,t-this.bufferOffset);return n}shiftBuffer(){this.bufferOffset+=this.buffers[0].length,this.writeIndex--,this.buffers.shift()}write(e){var t,n;if(this.ended){(n=(t=this.cbs).onerror)==null||n.call(t,Error(`.write() after done!`));return}this.buffers.push(e),this.tokenizer.running&&(this.tokenizer.write(e),this.writeIndex++)}end(e){var t,n;if(this.ended){(n=(t=this.cbs).onerror)==null||n.call(t,Error(`.end() after done!`));return}e&&this.write(e),this.ended=!0,this.tokenizer.end()}pause(){this.tokenizer.pause()}resume(){for(this.tokenizer.resume();this.tokenizer.running&&this.writeIndex<this.buffers.length;)this.tokenizer.write(this.buffers[this.writeIndex++]);this.ended&&this.tokenizer.end()}parseChunk(e){this.write(e)}done(e){this.end(e)}}})),$3=s((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.Doctype=e.CDATA=e.Tag=e.Style=e.Script=e.Comment=e.Directive=e.Text=e.Root=e.isTag=e.ElementType=void 0;var t;(function(e){e.Root=`root`,e.Text=`text`,e.Directive=`directive`,e.Comment=`comment`,e.Script=`script`,e.Style=`style`,e.Tag=`tag`,e.CDATA=`cdata`,e.Doctype=`doctype`})(t=e.ElementType||={});function n(e){return e.type===t.Tag||e.type===t.Script||e.type===t.Style}e.isTag=n,e.Root=t.Root,e.Text=t.Text,e.Directive=t.Directive,e.Comment=t.Comment,e.Script=t.Script,e.Style=t.Style,e.Tag=t.Tag,e.CDATA=t.CDATA,e.Doctype=t.Doctype})),e6=s((e=>{var t=e&&e.__extends||(function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){if(typeof n!=`function`&&n!==null)throw TypeError(`Class extends value `+String(n)+` is not a constructor or null`);e(t,n);function r(){this.constructor=t}t.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}})(),n=e&&e.__assign||function(){return n=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n],t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},n.apply(this,arguments)};Object.defineProperty(e,"__esModule",{value:!0}),e.cloneNode=e.hasChildren=e.isDocument=e.isDirective=e.isComment=e.isText=e.isCDATA=e.isTag=e.Element=e.Document=e.CDATA=e.NodeWithChildren=e.ProcessingInstruction=e.Comment=e.Text=e.DataNode=e.Node=void 0;var r=$3(),i=function(){function e(){this.parent=null,this.prev=null,this.next=null,this.startIndex=null,this.endIndex=null}return Object.defineProperty(e.prototype,"parentNode",{get:function(){return this.parent},set:function(e){this.parent=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"previousSibling",{get:function(){return this.prev},set:function(e){this.prev=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"nextSibling",{get:function(){return this.next},set:function(e){this.next=e},enumerable:!1,configurable:!0}),e.prototype.cloneNode=function(e){return e===void 0&&(e=!1),b(this,e)},e}();e.Node=i;var a=function(e){t(n,e);function n(t){var n=e.call(this)||this;return n.data=t,n}return Object.defineProperty(n.prototype,"nodeValue",{get:function(){return this.data},set:function(e){this.data=e},enumerable:!1,configurable:!0}),n}(i);e.DataNode=a;var o=function(e){t(n,e);function n(){var t=e!==null&&e.apply(this,arguments)||this;return t.type=r.ElementType.Text,t}return Object.defineProperty(n.prototype,"nodeType",{get:function(){return 3},enumerable:!1,configurable:!0}),n}(a);e.Text=o;var s=function(e){t(n,e);function n(){var t=e!==null&&e.apply(this,arguments)||this;return t.type=r.ElementType.Comment,t}return Object.defineProperty(n.prototype,"nodeType",{get:function(){return 8},enumerable:!1,configurable:!0}),n}(a);e.Comment=s;var c=function(e){t(n,e);function n(t,n){var i=e.call(this,n)||this;return i.name=t,i.type=r.ElementType.Directive,i}return Object.defineProperty(n.prototype,"nodeType",{get:function(){return 1},enumerable:!1,configurable:!0}),n}(a);e.ProcessingInstruction=c;var l=function(e){t(n,e);function n(t){var n=e.call(this)||this;return n.children=t,n}return Object.defineProperty(n.prototype,"firstChild",{get:function(){return this.children[0]??null},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"lastChild",{get:function(){return this.children.length>0?this.children[this.children.length-1]:null},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"childNodes",{get:function(){return this.children},set:function(e){this.children=e},enumerable:!1,configurable:!0}),n}(i);e.NodeWithChildren=l;var u=function(e){t(n,e);function n(){var t=e!==null&&e.apply(this,arguments)||this;return t.type=r.ElementType.CDATA,t}return Object.defineProperty(n.prototype,"nodeType",{get:function(){return 4},enumerable:!1,configurable:!0}),n}(l);e.CDATA=u;var d=function(e){t(n,e);function n(){var t=e!==null&&e.apply(this,arguments)||this;return t.type=r.ElementType.Root,t}return Object.defineProperty(n.prototype,"nodeType",{get:function(){return 9},enumerable:!1,configurable:!0}),n}(l);e.Document=d;var f=function(e){t(n,e);function n(t,n,i,a){i===void 0&&(i=[]),a===void 0&&(a=t===`script`?r.ElementType.Script:t===`style`?r.ElementType.Style:r.ElementType.Tag);var o=e.call(this,i)||this;return o.name=t,o.attribs=n,o.type=a,o}return Object.defineProperty(n.prototype,"nodeType",{get:function(){return 1},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"tagName",{get:function(){return this.name},set:function(e){this.name=e},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"attributes",{get:function(){var e=this;return Object.keys(this.attribs).map(function(t){return{name:t,value:e.attribs[t],namespace:e[`x-attribsNamespace`]?.[t],prefix:e[`x-attribsPrefix`]?.[t]}})},enumerable:!1,configurable:!0}),n}(l);e.Element=f;function p(e){return(0,r.isTag)(e)}e.isTag=p;function m(e){return e.type===r.ElementType.CDATA}e.isCDATA=m;function h(e){return e.type===r.ElementType.Text}e.isText=h;function g(e){return e.type===r.ElementType.Comment}e.isComment=g;function _(e){return e.type===r.ElementType.Directive}e.isDirective=_;function v(e){return e.type===r.ElementType.Root}e.isDocument=v;function y(e){return Object.prototype.hasOwnProperty.call(e,`children`)}e.hasChildren=y;function b(e,t){t===void 0&&(t=!1);var r;if(h(e))r=new o(e.data);else if(g(e))r=new s(e.data);else if(p(e)){var i=t?x(e.children):[],a=new f(e.name,n({},e.attribs),i);i.forEach(function(e){return e.parent=a}),e.namespace!=null&&(a.namespace=e.namespace),e[`x-attribsNamespace`]&&(a[`x-attribsNamespace`]=n({},e[`x-attribsNamespace`])),e[`x-attribsPrefix`]&&(a[`x-attribsPrefix`]=n({},e[`x-attribsPrefix`])),r=a}else if(m(e)){var i=t?x(e.children):[],l=new u(i);i.forEach(function(e){return e.parent=l}),r=l}else if(v(e)){var i=t?x(e.children):[],y=new d(i);i.forEach(function(e){return e.parent=y}),e[`x-mode`]&&(y[`x-mode`]=e[`x-mode`]),r=y}else if(_(e)){var b=new c(e.name,e.data);e[`x-name`]!=null&&(b[`x-name`]=e[`x-name`],b[`x-publicId`]=e[`x-publicId`],b[`x-systemId`]=e[`x-systemId`]),r=b}else throw Error(`Not implemented yet: ${e.type}`);return r.startIndex=e.startIndex,r.endIndex=e.endIndex,e.sourceCodeLocation!=null&&(r.sourceCodeLocation=e.sourceCodeLocation),r}e.cloneNode=b;function x(e){for(var t=e.map(function(e){return b(e,!0)}),n=1;n<t.length;n++)t[n].prev=t[n-1],t[n-1].next=t[n];return t}})),t6=s((e=>{var t=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||(`get`in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),n=e&&e.__exportStar||function(e,n){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(n,r)&&t(n,e,r)};Object.defineProperty(e,"__esModule",{value:!0}),e.DomHandler=void 0;var r=$3(),i=e6();n(e6(),e);var a={withStartIndices:!1,withEndIndices:!1,xmlMode:!1},o=function(){function e(e,t,n){this.dom=[],this.root=new i.Document(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null,typeof t==`function`&&(n=t,t=a),typeof e==`object`&&(t=e,e=void 0),this.callback=e??null,this.options=t??a,this.elementCB=n??null}return e.prototype.onparserinit=function(e){this.parser=e},e.prototype.onreset=function(){this.dom=[],this.root=new i.Document(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null},e.prototype.onend=function(){this.done||(this.done=!0,this.parser=null,this.handleCallback(null))},e.prototype.onerror=function(e){this.handleCallback(e)},e.prototype.onclosetag=function(){this.lastNode=null;var e=this.tagStack.pop();this.options.withEndIndices&&(e.endIndex=this.parser.endIndex),this.elementCB&&this.elementCB(e)},e.prototype.onopentag=function(e,t){var n=this.options.xmlMode?r.ElementType.Tag:void 0,a=new i.Element(e,t,void 0,n);this.addNode(a),this.tagStack.push(a)},e.prototype.ontext=function(e){var t=this.lastNode;if(t&&t.type===r.ElementType.Text)t.data+=e,this.options.withEndIndices&&(t.endIndex=this.parser.endIndex);else{var n=new i.Text(e);this.addNode(n),this.lastNode=n}},e.prototype.oncomment=function(e){if(this.lastNode&&this.lastNode.type===r.ElementType.Comment){this.lastNode.data+=e;return}var t=new i.Comment(e);this.addNode(t),this.lastNode=t},e.prototype.oncommentend=function(){this.lastNode=null},e.prototype.oncdatastart=function(){var e=new i.Text(``),t=new i.CDATA([e]);this.addNode(t),e.parent=t,this.lastNode=e},e.prototype.oncdataend=function(){this.lastNode=null},e.prototype.onprocessinginstruction=function(e,t){var n=new i.ProcessingInstruction(e,t);this.addNode(n)},e.prototype.handleCallback=function(e){if(typeof this.callback==`function`)this.callback(e,this.dom);else if(e)throw e},e.prototype.addNode=function(e){var t=this.tagStack[this.tagStack.length-1],n=t.children[t.children.length-1];this.options.withStartIndices&&(e.startIndex=this.parser.startIndex),this.options.withEndIndices&&(e.endIndex=this.parser.endIndex),t.children.push(e),n&&(e.prev=n,n.next=e),e.parent=t,this.lastNode=null},e}();e.DomHandler=o,e.default=o})),cae=s((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.default=new Uint16Array(`ᵁ<Õıʊҝջאٵ۞ޢߖࠏઑඡ༉༦ረዡᐕᒝᓃᓟᔥ\0\0\0\0\0\0ᕫᛍᦍᰒᷝ↰⊍⏀⏻⑂⠤⤒ⴈ⹈⿎〖㊺㘹㞬㣾㨨㩱㫠㬮ࠀEMabcfglmnoprstu\\bfms¦³¹ÈÏlig耻Æ䃆P耻&䀦cute耻Á䃁reve;䄂Āiyx}rc耻Â䃂;䐐r;쀀𝔄rave耻À䃀pha;䎑acr;䄀d;橓Āgp¡on;䄄f;쀀𝔸plyFunction;恡ing耻Å䃅Ācs¾Ãr;쀀𝒜ign;扔ilde耻Ã䃃ml耻Ä䃄ЀaceforsuåûþėĜĢħĪĀcrêòkslash;或Ŷöø;櫧ed;挆y;䐑ƀcrtąċĔause;戵noullis;愬a;䎒r;쀀𝔅pf;쀀𝔹eve;䋘còēmpeq;扎܀HOacdefhilorsuōőŖƀƞƢƵƷƺǜȕɳɸɾcy;䐧PY耻©䂩ƀcpyŝŢźute;䄆Ā;iŧŨ拒talDifferentialD;慅leys;愭ȀaeioƉƎƔƘron;䄌dil耻Ç䃇rc;䄈nint;戰ot;䄊ĀdnƧƭilla;䂸terDot;䂷òſi;䎧rcleȀDMPTLJNjǑǖot;抙inus;抖lus;投imes;抗oĀcsǢǸkwiseContourIntegral;戲eCurlyĀDQȃȏoubleQuote;思uote;怙ȀlnpuȞȨɇɕonĀ;eȥȦ户;橴ƀgitȯȶȺruent;扡nt;戯ourIntegral;戮ĀfrɌɎ;愂oduct;成nterClockwiseContourIntegral;戳oss;樯cr;쀀𝒞pĀ;Cʄʅ拓ap;才րDJSZacefiosʠʬʰʴʸˋ˗ˡ˦̳ҍĀ;oŹʥtrahd;椑cy;䐂cy;䐅cy;䐏ƀgrsʿ˄ˇger;怡r;憡hv;櫤Āayː˕ron;䄎;䐔lĀ;t˝˞戇a;䎔r;쀀𝔇Āaf˫̧Ācm˰̢riticalȀADGT̖̜̀̆cute;䂴oŴ̋̍;䋙bleAcute;䋝rave;䁠ilde;䋜ond;拄ferentialD;慆Ѱ̽\0\0\0͔͂\0Ѕf;쀀𝔻ƀ;DE͈͉͍䂨ot;惜qual;扐blèCDLRUVͣͲϏϢϸontourIntegraìȹoɴ\0\0ͻ»͉nArrow;懓Āeo·ΤftƀARTΐΖΡrrow;懐ightArrow;懔eåˊngĀLRΫτeftĀARγιrrow;柸ightArrow;柺ightArrow;柹ightĀATϘϞrrow;懒ee;抨pɁϩ\0\0ϯrrow;懑ownArrow;懕erticalBar;戥ǹABLRTaВЪаўѿͼrrowƀ;BUНОТ憓ar;椓pArrow;懵reve;䌑eft˒к\0ц\0ѐightVector;楐eeVector;楞ectorĀ;Bљњ憽ar;楖ightǔѧ\0ѱeeVector;楟ectorĀ;BѺѻ懁ar;楗eeĀ;A҆҇护rrow;憧ĀctҒҗr;쀀𝒟rok;䄐ࠀNTacdfglmopqstuxҽӀӄӋӞӢӧӮӵԡԯԶՒ՝ՠեG;䅊H耻Ð䃐cute耻É䃉ƀaiyӒӗӜron;䄚rc耻Ê䃊;䐭ot;䄖r;쀀𝔈rave耻È䃈ement;戈ĀapӺӾcr;䄒tyɓԆ\0\0ԒmallSquare;旻erySmallSquare;斫ĀgpԦԪon;䄘f;쀀𝔼silon;䎕uĀaiԼՉlĀ;TՂՃ橵ilde;扂librium;懌Āci՚r;愰m;橳a;䎗ml耻Ë䃋Āipժկsts;戃onentialE;慇ʀcfiosօֈ֍ֲy;䐤r;쀀𝔉lledɓ֗\0\0֣mallSquare;旼erySmallSquare;斪Ͱֺ\0ֿ\0\0ׄf;쀀𝔽All;戀riertrf;愱còJTabcdfgorstרׯؒؖ؛؝أ٬ٲcy;䐃耻>䀾mmaĀ;d䎓;䏜reve;䄞ƀeiy؇،ؐdil;䄢rc;䄜;䐓ot;䄠r;쀀𝔊;拙pf;쀀𝔾eater̀EFGLSTصلَٖٛ٦qualĀ;Lؾؿ扥ess;招ullEqual;执reater;檢ess;扷lantEqual;橾ilde;扳cr;쀀𝒢;扫ЀAacfiosuڅڋږڛڞڪھۊRDcy;䐪Āctڐڔek;䋇;䁞irc;䄤r;愌lbertSpace;愋ǰگ\0ڲf;愍izontalLine;攀Āctۃۅòکrok;䄦mpńېۘownHumðįqual;扏܀EJOacdfgmnostuۺ۾܃܇ܚܞܡܨ݄ݸދޏޕcy;䐕lig;䄲cy;䐁cute耻Í䃍Āiyܓܘrc耻Î䃎;䐘ot;䄰r;愑rave耻Ì䃌ƀ;apܠܯܿĀcgܴܷr;䄪inaryI;慈lieóϝǴ݉\0ݢĀ;eݍݎ戬Āgrݓݘral;戫section;拂isibleĀCTݬݲomma;恣imes;恢ƀgptݿރވon;䄮f;쀀𝕀a;䎙cr;愐ilde;䄨ǫޚ\0ޞcy;䐆l耻Ï䃏ʀcfosuެ߂ߐĀiyޱrc;䄴;䐙r;쀀𝔍pf;쀀𝕁ǣ߇\0ߌr;쀀𝒥rcy;䐈kcy;䐄HJacfosߤߨ߽߬߱ࠂࠈcy;䐥cy;䐌ppa;䎚Āey߶dil;䄶;䐚r;쀀𝔎pf;쀀𝕂cr;쀀𝒦րJTaceflmostࠥࠩࠬࡐࡣসে্ੇcy;䐉耻<䀼ʀcmnpr࠷࠼ࡁࡄࡍute;䄹bda;䎛g;柪lacetrf;愒r;憞ƀaeyࡗࡡron;䄽dil;䄻;䐛Āfsࡨ॰tԀACDFRTUVarࡾࢩࢱࣦ࣠ࣼयज़ΐ४ĀnrࢃgleBracket;柨rowƀ;BR࢙࢚࢞憐ar;懤ightArrow;懆eiling;挈oǵࢷ\0ࣃbleBracket;柦nǔࣈ\0࣒eeVector;楡ectorĀ;Bࣛࣜ懃ar;楙loor;挊ightĀAV࣯ࣵrrow;憔ector;楎Āerँगeƀ;AVउऊऐ抣rrow;憤ector;楚iangleƀ;BEतथऩ抲ar;槏qual;抴pƀDTVषूौownVector;楑eeVector;楠ectorĀ;Bॖॗ憿ar;楘ectorĀ;B॥०憼ar;楒ightáΜs̀EFGLSTॾঋকঝঢভqualGreater;拚ullEqual;扦reater;扶ess;檡lantEqual;橽ilde;扲r;쀀𝔏Ā;eঽা拘ftarrow;懚idot;䄿ƀnpwਖਛgȀLRlr৷ਂਐeftĀAR০৬rrow;柵ightArrow;柷ightArrow;柶eftĀarγਊightáοightáϊf;쀀𝕃erĀLRਢਬeftArrow;憙ightArrow;憘ƀchtਾੀੂòࡌ;憰rok;䅁;扪Ѐacefiosuਗ਼અઋp;椅y;䐜Ādl੯iumSpace;恟lintrf;愳r;쀀𝔐nusPlus;戓pf;쀀𝕄cò੶;䎜ҀJacefostuણધભીଔଙඑඞcy;䐊cute;䅃ƀaeyહાron;䅇dil;䅅;䐝ƀgswે૰ativeƀMTV૨ediumSpace;怋hiĀcn૦ëeryThiîtedĀGLଆreaterGreateòٳessLesóੈLine;䀊r;쀀𝔑ȀBnptଢନଷreak;恠BreakingSpace;䂠f;愕ڀ;CDEGHLNPRSTV୕ୖ୪௫ఄ಄ದൡඅ櫬Āoungruent;扢pCap;扭oubleVerticalBar;戦ƀlqxஃஊement;戉ualĀ;Tஒஓ扠ilde;쀀≂̸ists;戄reater;EFGLSTஶஷ扯qual;扱ullEqual;쀀≧̸reater;쀀≫̸ess;批lantEqual;쀀⩾̸ilde;扵umpń௲ownHump;쀀≎̸qual;쀀≏̸eĀfsఊధtTriangleƀ;BEచఛడ拪ar;쀀⧏̸qual;括s̀;EGLSTవశ఼ౄోౘ扮qual;扰reater;扸ess;쀀≪̸lantEqual;쀀⩽̸ilde;扴estedĀGL౨౹reaterGreater;쀀⪢̸essLess;쀀⪡̸recedesƀ;ESಒಓಛ技qual;쀀⪯̸lantEqual;拠ĀeiಫಹverseElement;戌ghtTriangleƀ;BEೋೌ拫ar;쀀⧐̸qual;拭ĀquೝഌuareSuĀbp೨setĀ;Eೳ쀀⊏̸qual;拢ersetĀ;Eഃആ쀀⊐̸qual;拣ƀbcpഓതൎsetĀ;Eഛഞ쀀⊂⃒qual;抈ceedsȀ;ESTലള഻െ抁qual;쀀⪰̸lantEqual;拡ilde;쀀≿̸ersetĀ;E൘൛쀀⊃⃒qual;抉ildeȀ;EFT൮൯൵ൿ扁qual;扄ullEqual;扇ilde;扉erticalBar;戤cr;쀀𝒩ilde耻Ñ䃑;䎝܀Eacdfgmoprstuvලෂෛ෧ขภยา฿ไlig;䅒cute耻Ó䃓Āiyීrc耻Ô䃔;䐞blac;䅐r;쀀𝔒rave耻Ò䃒ƀaei෮ෲcr;䅌ga;䎩cron;䎟pf;쀀𝕆enCurlyĀDQฎบoubleQuote;怜uote;怘;橔Āclวฬr;쀀𝒪ash耻Ø䃘iŬืde耻Õ䃕es;樷ml耻Ö䃖erĀBP๋Āar๐๓r;怾acĀek๚;揞et;掴arenthesis;揜ҀacfhilorsງຊຏຒດຝະrtialD;戂y;䐟r;쀀𝔓i;䎦;䎠usMinus;䂱Āipຢອncareplanåڝf;愙Ȁ;eio຺ູ檻cedesȀ;EST່້扺qual;檯lantEqual;扼ilde;找me;怳Ādpuct;戏ortionĀ;aȥl;戝Āci༁༆r;쀀𝒫;䎨ȀUfos༑༖༛༟OT耻"䀢r;쀀𝔔pf;愚cr;쀀𝒬BEacefhiorsu༾གྷཇའཱིྦྷྪྭ႖ႩႴႾarr;椐G耻®䂮ƀcnrཎནབute;䅔g;柫rĀ;tཛྷཝ憠l;椖ƀaeyཧཬཱron;䅘dil;䅖;䐠Ā;vླྀཹ愜erseĀEUྂྙĀlq྇ྎement;戋uilibrium;懋pEquilibrium;楯r»ཹo;䎡ghtЀACDFTUVa࿁ဢဨၛႇϘĀnr࿆࿒gleBracket;柩rowƀ;BL憒ar;懥eftArrow;懄eiling;按oǵ\0စbleBracket;柧nǔည\0နeeVector;楝ectorĀ;Bဝသ懂ar;楕loor;挋Āerိ၃eƀ;AVဵံြ抢rrow;憦ector;楛iangleƀ;BEၐၑၕ抳ar;槐qual;抵pƀDTVၣၮၸownVector;楏eeVector;楜ectorĀ;Bႂႃ憾ar;楔ectorĀ;B႑႒懀ar;楓Āpuႛ႞f;愝ndImplies;楰ightarrow;懛ĀchႹႼr;愛;憱leDelayed;槴ڀHOacfhimoqstuფჱჷჽᄙᄞᅑᅖᅡᅧᆵᆻᆿĀCcჩხHcy;䐩y;䐨FTcy;䐬cute;䅚ʀ;aeiyᄈᄉᄎᄓᄗ檼ron;䅠dil;䅞rc;䅜;䐡r;쀀𝔖ortȀDLRUᄪᄴᄾᅉownArrow»ОeftArrow»࢚ightArrow»pArrow;憑gma;䎣allCircle;战pf;쀀𝕊ɲᅭ\0\0ᅰt;戚areȀ;ISUᅻᅼᆉᆯ斡ntersection;抓uĀbpᆏᆞsetĀ;Eᆗᆘ抏qual;抑ersetĀ;Eᆨᆩ抐qual;抒nion;抔cr;쀀𝒮ar;拆ȀbcmpᇈᇛሉላĀ;sᇍᇎ拐etĀ;Eᇍᇕqual;抆ĀchᇠህeedsȀ;ESTᇭᇮᇴᇿ扻qual;檰lantEqual;扽ilde;承Tháྌ;我ƀ;esሒሓሣ拑rsetĀ;Eሜም抃qual;抇et»ሓրHRSacfhiorsሾቄቕቱቶኟዂወዑORN耻Þ䃞ADE;愢ĀHcቒcy;䐋y;䐦Ābuቚቜ;䀉;䎤ƀaeyብቪቯron;䅤dil;䅢;䐢r;쀀𝔗ĀeiቻDzኀ\0ኇefore;戴a;䎘ĀcnኘkSpace;쀀 Space;怉ldeȀ;EFTካኬኲኼ戼qual;扃ullEqual;扅ilde;扈pf;쀀𝕋ipleDot;惛Āctዖዛr;쀀𝒯rok;䅦ૡዷጎጚጦ\0ጬጱ\0\0\0\0\0ጸጽ፷ᎅ\0ᐄᐊᐐĀcrዻጁute耻Ú䃚rĀ;oጇገ憟cir;楉rǣጓ\0y;䐎ve;䅬Āiyጞጣrc耻Û䃛;䐣blac;䅰r;쀀𝔘rave耻Ù䃙acr;䅪Ādiፁ፩erĀBPፈ፝Āarፍፐr;䁟acĀekፗፙ;揟et;掵arenthesis;揝onĀ;P፰፱拃lus;抎Āgp፻on;䅲f;쀀𝕌ЀADETadps᎕ᎮᎸᏄϨᏒᏗᏳrrowƀ;BDᅐᎠᎤar;椒ownArrow;懅ownArrow;憕quilibrium;楮eeĀ;AᏋᏌ报rrow;憥ownáϳerĀLRᏞᏨeftArrow;憖ightArrow;憗iĀ;lᏹᏺ䏒on;䎥ing;䅮cr;쀀𝒰ilde;䅨ml耻Ü䃜ҀDbcdefosvᐧᐬᐰᐳᐾᒅᒊᒐᒖash;披ar;櫫y;䐒ashĀ;lᐻᐼ抩;櫦Āerᑃᑅ;拁ƀbtyᑌᑐᑺar;怖Ā;iᑏᑕcalȀBLSTᑡᑥᑪᑴar;戣ine;䁼eparator;杘ilde;所ThinSpace;怊r;쀀𝔙pf;쀀𝕍cr;쀀𝒱dash;抪ʀcefosᒧᒬᒱᒶᒼirc;䅴dge;拀r;쀀𝔚pf;쀀𝕎cr;쀀𝒲Ȁfiosᓋᓐᓒᓘr;쀀𝔛;䎞pf;쀀𝕏cr;쀀𝒳ҀAIUacfosuᓱᓵᓹᓽᔄᔏᔔᔚᔠcy;䐯cy;䐇cy;䐮cute耻Ý䃝Āiyᔉᔍrc;䅶;䐫r;쀀𝔜pf;쀀𝕐cr;쀀𝒴ml;䅸ЀHacdefosᔵᔹᔿᕋᕏᕝᕠᕤcy;䐖cute;䅹Āayᕄᕉron;䅽;䐗ot;䅻Dzᕔ\0ᕛoWidtèa;䎖r;愨pf;愤cr;쀀𝒵ᖃᖊᖐ\0ᖰᖶᖿ\0\0\0\0ᗆᗛᗫᙟ᙭\0ᚕ᚛ᚲᚹ\0ᚾcute耻á䃡reve;䄃̀;Ediuyᖜᖝᖡᖣᖨᖭ戾;쀀∾̳;房rc耻â䃢te肻´̆;䐰lig耻æ䃦Ā;r²ᖺ;쀀𝔞rave耻à䃠ĀepᗊᗖĀfpᗏᗔsym;愵èᗓha;䎱ĀapᗟcĀclᗤᗧr;䄁g;樿ɤᗰ\0\0ᘊʀ;adsvᗺᗻᗿᘁᘇ戧nd;橕;橜lope;橘;橚;elmrszᘘᘙᘛᘞᘿᙏᙙ戠;榤e»ᘙsdĀ;aᘥᘦ戡ѡᘰᘲᘴᘶᘸᘺᘼᘾ;榨;榩;榪;榫;榬;榭;榮;榯tĀ;vᙅᙆ戟bĀ;dᙌᙍ抾;榝Āptᙔᙗh;戢»¹arr;捼Āgpᙣᙧon;䄅f;쀀𝕒;Eaeiopᙻᙽᚂᚄᚇᚊ;橰cir;橯;扊d;手s;䀧roxĀ;eᚒñᚃing耻å䃥ƀctyᚡᚦᚨr;쀀𝒶;䀪mpĀ;eᚯñʈilde耻ã䃣ml耻ä䃤Āciᛂᛈoninôɲnt;樑ࠀNabcdefiklnoprsu᛭ᛱᜰᝃᝈ០៦ᠹᡐᜍ᥈ᥰot;櫭ĀcrᛶkȀcepsᜀᜅᜍᜓong;扌psilon;䏶rime;怵imĀ;e戽q;拍Ŷᜢᜦee;抽edĀ;gᜬᜭ挅e»ᜭrkĀ;tbrk;掶Āoyᜁᝁ;䐱quo;怞ʀcmprtᝓᝡᝤᝨausĀ;eĊĉptyv;榰séᜌnoõēƀahwᝯᝳ;䎲;愶een;扬r;쀀𝔟gcostuvwឍឝឳេ៕៛ƀaiuបពរðݠrc;旯p»፱ƀdptឤឨឭot;樀lus;樁imes;樂ɱឹ\0\0ើcup;樆ar;昅riangleĀdu៍្own;施p;斳plus;樄eåᑄåᒭarow;植ƀakoᠦᠵĀcn៲ᠣkƀlst֫᠂ozenge;槫riangleȀ;dlr᠒᠓᠘斴own;斾eft;旂ight;斸k;搣Ʊᠫ\0ᠳƲᠯ\0ᠱ;斒;斑4;斓ck;斈ĀeoᠾᡍĀ;qᡃᡆ쀀=⃥uiv;쀀≡⃥t;挐Ȁptwxᡙᡞᡧᡬf;쀀𝕓Ā;tᏋᡣom»Ꮜtie;拈DHUVbdhmptuvᢅᢖᢪᢻᣗᣛᣬᤅᤊᤐᤡȀLRlrᢎᢐᢒᢔ;敗;敔;敖;敓ʀ;DUduᢡᢢᢤᢦᢨ敐;敦;敩;敤;敧ȀLRlrᢳᢵᢷᢹ;敝;敚;敜;教;HLRhlrᣊᣋᣍᣏᣑᣓᣕ救;敬;散;敠;敫;敢;敟ox;槉ȀLRlrᣤᣦᣨᣪ;敕;敒;攐;攌ʀ;DUduڽ;敥;敨;攬;攴inus;抟lus;択imes;抠ȀLRlrᤙᤛᤝ;敛;敘;攘;攔;HLRhlrᤰᤱᤳᤵᤷ᤻᤹攂;敪;敡;敞;攼;攤;攜Āevģbar耻¦䂦Ȁceioᥑᥖᥚᥠr;쀀𝒷mi;恏mĀ;elƀ;bhᥨᥩᥫ䁜;槅sub;柈ŬᥴlĀ;e怢t»pƀ;Eeįᦅᦇ;檮Ā;qۜۛೡᦧ\0᧨ᨑᨕᨲ\0ᨷᩐ\0\0᪴\0\0᫁\0\0ᬡᬮ᭒\0᯽\0ᰌƀcprᦲute;䄇̀;abcdsᦿᧀᧄ᧕᧙戩nd;橄rcup;橉Āau᧒p;橋p;橇ot;橀;쀀∩︀Āeo᧢᧥t;恁îړȀaeiu᧰᧻ᨁᨅǰ᧵\0᧸s;橍on;䄍dil耻ç䃧rc;䄉psĀ;sᨌᨍ橌m;橐ot;䄋ƀdmnᨛᨠᨦil肻¸ƭptyv;榲t脀¢;eᨭᨮ䂢räƲr;쀀𝔠ƀceiᨽᩀᩍy;䑇ckĀ;mᩇᩈ朓ark»ᩈ;䏇r;Ecefms᩠ᩢᩫ᪤᪪旋;槃ƀ;elᩩᩪᩭ䋆q;扗eɡᩴ\0\0᪈rrowĀlr᩼᪁eft;憺ight;憻ʀRSacd᪒᪔᪖»ཇ;擈st;抛irc;抚ash;抝nint;樐id;櫯cir;槂ubsĀ;u᪻᪼晣it»᪼ˬ᫇\0ᬊonĀ;eᫍᫎ䀺Ā;qÇÆɭ\0\0aĀ;t䀬;䁀ƀ;fl戁îᅠeĀmxent»eóɍǧ\0ᬇĀ;dኻᬂot;橭nôɆƀfryᬐᬔᬗ;쀀𝕔oäɔ脀©;sŕᬝr;愗Āaoᬥᬩrr;憵ss;朗Ācuᬲᬷr;쀀𝒸Ābpᬼ᭄Ā;eᭁᭂ櫏;櫑Ā;eᭉᭊ櫐;櫒dot;拯delprvw᭠᭬᭷ᮂᮬᯔarrĀlr᭨᭪;椸;椵ɰ᭲\0\0᭵r;拞c;拟arrĀ;pᮀ憶;椽̀;bcdosᮏᮐᮖᮡᮥᮨ截rcap;橈Āauᮛᮞp;橆p;橊ot;抍r;橅;쀀∪︀Ȁalrv᮵ᮿᯞᯣrrĀ;mᮼᮽ憷;椼yƀevwᯇᯔᯘqɰᯎ\0\0ᯒreã᭳uã᭵ee;拎edge;拏en耻¤䂤earrowĀlrᯮ᯳eft»ᮀight»ᮽeäᯝĀciᰁᰇoninôǷnt;戱lcty;挭ঀAHabcdefhijlorstuwz᰻᰿ᱝᱩᱵᲞᲬᲷᴍᵻᶑᶫᶻ᷆᷍ròar;楥Ȁglrs᱈ᱍ᱒᱔ger;怠eth;愸òᄳhĀ;vᱚᱛ怐»ऊūᱡᱧarow;椏aã̕Āayᱮᱳron;䄏;䐴ƀ;ao̲ᱼᲄĀgrʿᲁr;懊tseq;橷ƀglmᲑᲔᲘ耻°䂰ta;䎴ptyv;榱ĀirᲣᲨsht;楿;쀀𝔡arĀlrᲳᲵ»ࣜ»သʀaegsv᳂᳖᳜᳠mƀ;oș᳔ndĀ;ș᳑uit;晦amma;䏝in;拲ƀ;io᳧᳨᳸䃷de脀÷;o᳧ᳰntimes;拇nø᳷cy;䑒cɯᴆ\0\0ᴊrn;挞op;挍ʀlptuwᴘᴝᴢᵉᵕlar;䀤f;쀀𝕕ʀ;emps̋ᴭᴷᴽᵂqĀ;d͒ᴳot;扑inus;戸lus;戔quare;抡blebarwedgåúnƀadhᄮᵝᵧownarrowóᲃarpoonĀlrᵲᵶefôᲴighôᲶŢᵿᶅkaro÷གɯᶊ\0\0ᶎrn;挟op;挌ƀcotᶘᶣᶦĀryᶝᶡ;쀀𝒹;䑕l;槶rok;䄑Ādrᶰᶴot;拱iĀ;fᶺ᠖斿Āah᷀᷃ròЩaòྦangle;榦Āci᷒ᷕy;䑟grarr;柿ऀDacdefglmnopqrstuxḁḉḙḸոḼṉṡṾấắẽỡἪἷὄĀDoḆᴴoôĀcsḎḔute耻é䃩ter;橮ȀaioyḢḧḱḶron;䄛rĀ;cḭḮ扖耻ê䃪lon;払;䑍ot;䄗ĀDrṁṅot;扒;쀀𝔢ƀ;rsṐṑṗ檚ave耻è䃨Ā;dṜṝ檖ot;檘Ȁ;ilsṪṫṲṴ檙nters;揧;愓Ā;dṹṺ檕ot;檗ƀapsẅẉẗcr;䄓tyƀ;svẒẓẕ戅et»ẓpĀ1;ẝẤijạả;怄;怅怃ĀgsẪẬ;䅋p;怂ĀgpẴẸon;䄙f;쀀𝕖ƀalsỄỎỒrĀ;sỊị拕l;槣us;橱iƀ;lvỚớở䎵on»ớ;䏵ȀcsuvỪỳἋἣĀioữḱrc»Ḯɩỹ\0\0ỻíՈantĀglἂἆtr»ṝess»ṺƀaeiἒἚls;䀽st;扟vĀ;DȵἠD;橸parsl;槥ĀDaἯἳot;打rr;楱ƀcdiἾὁỸr;愯oô͒ĀahὉὋ;䎷耻ð䃰Āmrὓὗl耻ë䃫o;悬ƀcipὡὤὧl;䀡sôծĀeoὬὴctatioîՙnentialåչৡᾒ\0ᾞ\0ᾡᾧ\0\0ῆῌ\0ΐ\0ῦῪ \0 ⁚llingdotseñṄy;䑄male;晀ƀilrᾭᾳ῁lig;耀ffiɩᾹ\0\0᾽g;耀ffig;耀ffl;쀀𝔣lig;耀filig;쀀fjƀaltῙῡt;晭ig;耀flns;斱of;䆒ǰ΅\0ῳf;쀀𝕗ĀakֿῷĀ;vῼ´拔;櫙artint;樍Āao⁕Ācs‑⁒ႉ‸⁅⁈\0⁐β•‥‧\0耻½䂽;慓耻¼䂼;慕;慙;慛Ƴ‴\0‶;慔;慖ʴ‾⁁\0\0⁃耻¾䂾;慗;慜5;慘ƶ⁌\0⁎;慚;慝8;慞l;恄wn;挢cr;쀀𝒻ࢀEabcdefgijlnorstv₂₉₥₰₴⃰℃ℒℸ̗ℾ⅒↞Ā;lٍ₇;檌ƀcmpₐₕute;䇵maĀ;dₜ᳚䎳;檆reve;䄟Āiy₪₮rc;䄝;䐳ot;䄡Ȁ;lqsؾق₽ƀ;qsؾٌlanô٥Ȁ;cdl٥⃒⃥⃕c;檩otĀ;o⃜⃝檀Ā;l⃢⃣檂;檄Ā;e⃪⃭쀀⋛︀s;檔r;쀀𝔤Ā;gٳ؛mel;愷cy;䑓Ȁ;Eajٚℌℎℐ;檒;檥;檤ȀEaesℛℝ℩ℴ;扩pĀ;p℣ℤ檊rox»ℤĀ;q℮ℯ檈Ā;q℮ℛim;拧pf;쀀𝕘Āci⅃ⅆr;愊mƀ;el٫ⅎ⅐;檎;檐茀>;cdlqrⅠⅪⅮⅳⅹĀciⅥⅧ;檧r;橺ot;拗Par;榕uest;橼ʀadelsↄⅪ←ٖ↛ǰ↉\0proør;楸qĀlqؿ↖lesó₈ií٫Āen↣↭rtneqq;쀀≩︀Å↪ԀAabcefkosy⇄⇇⇱⇵⇺∘∝∯≨≽ròΠȀilmr⇐⇔⇗⇛rsðᒄf»․ilôکĀdr⇠⇤cy;䑊ƀ;cwࣴ⇫⇯ir;楈;憭ar;意irc;䄥ƀalr∁∎∓rtsĀ;u∉∊晥it»∊lip;怦con;抹r;쀀𝔥sĀew∣∩arow;椥arow;椦ʀamopr∺∾≃≞≣rr;懿tht;戻kĀlr≉≓eftarrow;憩ightarrow;憪f;쀀𝕙bar;怕ƀclt≯≴≸r;쀀𝒽asè⇴rok;䄧Ābp⊂⊇ull;恃hen»ᱛૡ⊣\0⊪\0⊸⋅⋎\0⋕⋳\0\0⋸⌢⍧⍢⍿\0⎆⎪⎴cute耻í䃭ƀ;iyݱ⊰⊵rc耻î䃮;䐸Ācx⊼⊿y;䐵cl耻¡䂡ĀfrΟ⋉;쀀𝔦rave耻ì䃬Ȁ;inoܾ⋝⋩⋮Āin⋢⋦nt;樌t;戭fin;槜ta;愩lig;䄳ƀaop⋾⌚⌝ƀcgt⌅⌈⌗r;䄫ƀelpܟ⌏⌓inåގarôܠh;䄱f;抷ed;䆵ʀ;cfotӴ⌬⌱⌽⍁are;愅inĀ;t⌸⌹戞ie;槝doô⌙ʀ;celpݗ⍌⍐⍛⍡al;抺Āgr⍕⍙eróᕣã⍍arhk;樗rod;樼Ȁcgpt⍯⍲⍶⍻y;䑑on;䄯f;쀀𝕚a;䎹uest耻¿䂿Āci⎊⎏r;쀀𝒾nʀ;EdsvӴ⎛⎝⎡ӳ;拹ot;拵Ā;v⎦⎧拴;拳Ā;iݷ⎮lde;䄩ǫ⎸\0⎼cy;䑖l耻ï䃯̀cfmosu⏌⏗⏜⏡⏧⏵Āiy⏑⏕rc;䄵;䐹r;쀀𝔧ath;䈷pf;쀀𝕛ǣ⏬\0⏱r;쀀𝒿rcy;䑘kcy;䑔Ѐacfghjos␋␖␢ppaĀ;v␓␔䎺;䏰Āey␛␠dil;䄷;䐺r;쀀𝔨reen;䄸cy;䑅cy;䑜pf;쀀𝕜cr;쀀𝓀ABEHabcdefghjlmnoprstuv⑰⒁⒆⒍⒑┎┽╚▀♎♞♥♹♽⚚⚲⛘❝❨➋⟀⠁⠒ƀart⑷⑺⑼ròòΕail;椛arr;椎Ā;gঔ⒋;檋ar;楢ॣ⒥\0⒪\0⒱\0\0\0\0\0⒵Ⓔ\0ⓆⓈⓍ\0⓹ute;䄺mptyv;榴raîࡌbda;䎻gƀ;dlࢎⓁⓃ;榑åࢎ;檅uo耻«䂫rЀ;bfhlpst࢙ⓞⓦⓩ⓫⓮⓱⓵Ā;f࢝ⓣs;椟s;椝ë≒p;憫l;椹im;楳l;憢ƀ;ae⓿─┄檫il;椙Ā;s┉┊檭;쀀⪭︀ƀabr┕┙┝rr;椌rk;杲Āak┢┬cĀek┨┪;䁻;䁛Āes┱┳;榋lĀdu┹┻;榏;榍Ȁaeuy╆╋╖╘ron;䄾Ādi═╔il;䄼ìࢰâ┩;䐻Ȁcqrs╣╦╭╽a;椶uoĀ;rนᝆĀdu╲╷har;楧shar;楋h;憲ʀ;fgqs▋▌উ◳◿扤tʀahlrt▘▤▷◂◨rrowĀ;t࢙□aé⓶arpoonĀdu▯▴own»њp»०eftarrows;懇ightƀahs◍◖◞rrowĀ;sࣴࢧarpoonóquigarro÷⇰hreetimes;拋ƀ;qs▋ও◺lanôবʀ;cdgsব☊☍☝☨c;檨otĀ;o☔☕橿Ā;r☚☛檁;檃Ā;e☢☥쀀⋚︀s;檓ʀadegs☳☹☽♉♋pproøⓆot;拖qĀgq♃♅ôউgtò⒌ôছiíলƀilr♕࣡♚sht;楼;쀀𝔩Ā;Eজ♣;檑š♩♶rĀdu▲♮Ā;l॥♳;楪lk;斄cy;䑙ʀ;achtੈ⚈⚋⚑⚖rò◁orneòᴈard;楫ri;旺Āio⚟⚤dot;䅀ustĀ;a⚬⚭掰che»⚭ȀEaes⚻⚽⛉⛔;扨pĀ;p⛃⛄檉rox»⛄Ā;q⛎⛏檇Ā;q⛎⚻im;拦Ѐabnoptwz⛩⛴⛷✚✯❁❇❐Ānr⛮⛱g;柬r;懽rëࣁgƀlmr⛿✍✔eftĀar০✇ightá৲apsto;柼ightá৽parrowĀlr✥✩efô⓭ight;憬ƀafl✶✹✽r;榅;쀀𝕝us;樭imes;樴š❋❏st;戗áፎƀ;ef❗❘᠀旊nge»❘arĀ;l❤❥䀨t;榓ʀachmt❳❶❼➅➇ròࢨorneòᶌarĀ;d➃;業;怎ri;抿̀achiqt➘➝ੀ➢➮➻quo;怹r;쀀𝓁mƀ;egল➪➬;檍;檏Ābu┪➳oĀ;rฟ➹;怚rok;䅂萀<;cdhilqrࠫ⟒☹⟜⟠⟥⟪⟰Āci⟗⟙;檦r;橹reå◲mes;拉arr;楶uest;橻ĀPi⟵⟹ar;榖ƀ;ef⠀भ旃rĀdu⠇⠍shar;楊har;楦Āen⠗⠡rtneqq;쀀≨︀Å⠞܀Dacdefhilnopsu⡀⡅⢂⢎⢓⢠⢥⢨⣚⣢⣤ઃ⣳⤂Dot;戺Ȁclpr⡎⡒⡣⡽r耻¯䂯Āet⡗⡙;時Ā;e⡞⡟朠se»⡟Ā;sျ⡨toȀ;dluျ⡳⡷⡻owîҌefôएðᏑker;斮Āoy⢇⢌mma;権;䐼ash;怔asuredangle»ᘦr;쀀𝔪o;愧ƀcdn⢯⢴⣉ro耻µ䂵Ȁ;acdᑤ⢽⣀⣄sôᚧir;櫰ot肻·Ƶusƀ;bd⣒ᤃ⣓戒Ā;uᴼ⣘;横ţ⣞⣡p;櫛ò−ðઁĀdp⣩⣮els;抧f;쀀𝕞Āct⣸⣽r;쀀𝓂pos»ᖝƀ;lm⤉⤊⤍䎼timap;抸ఀGLRVabcdefghijlmoprstuvw⥂⥓⥾⦉⦘⧚⧩⨕⨚⩘⩝⪃⪕⪤⪨⬄⬇⭄⭿⮮ⰴⱧⱼ⳩Āgt⥇⥋;쀀⋙̸Ā;v⥐쀀≫⃒ƀelt⥚⥲⥶ftĀar⥡⥧rrow;懍ightarrow;懎;쀀⋘̸Ā;v⥻ే쀀≪⃒ightarrow;懏ĀDd⦎⦓ash;抯ash;抮ʀbcnpt⦣⦧⦬⦱⧌la»˞ute;䅄g;쀀∠⃒ʀ;Eiop⦼⧀⧅⧈;쀀⩰̸d;쀀≋̸s;䅉roøurĀ;a⧓⧔普lĀ;s⧓ସdz⧟\0⧣p肻\xA0ଷmpĀ;e௹ఀʀaeouy⧴⧾⨃⨐⨓ǰ⧹\0⧻;橃on;䅈dil;䅆ngĀ;dൾ⨊ot;쀀⩭̸p;橂;䐽ash;怓;Aadqsxஒ⨩⨭⨻⩁⩅⩐rr;懗rĀhr⨳⨶k;椤Ā;oᏲᏰot;쀀≐̸uiöୣĀei⩊⩎ar;椨íistĀ;sடr;쀀𝔫ȀEest⩦⩹⩼ƀ;qs⩭ƀ;qs⩴lanôií௪Ā;rஶ⪁»ஷƀAap⪊⪍⪑rò⥱rr;憮ar;櫲ƀ;svྍ⪜ྌĀ;d⪡⪢拼;拺cy;䑚AEadest⪷⪺⪾⫂⫅⫶⫹rò⥦;쀀≦̸rr;憚r;急Ȁ;fqs⫎⫣⫯tĀar⫔⫙rro÷⫁ightarro÷⪐ƀ;qs⪺⫪lanôౕĀ;sౕ⫴»శiíౝĀ;rవ⫾iĀ;eచథiäඐĀpt⬌⬑f;쀀𝕟膀¬;in⬙⬚⬶䂬nȀ;Edvஉ⬤⬨⬮;쀀⋹̸ot;쀀⋵̸ǡஉ⬳⬵;拷;拶iĀ;vಸ⬼ǡಸ⭁⭃;拾;拽ƀaor⭋⭣⭩rȀ;ast⭕⭚⭟lleìl;쀀⫽⃥;쀀∂̸lint;樔ƀ;ceಒ⭰⭳uåಥĀ;cಘ⭸Ā;eಒ⭽ñಘȀAait⮈⮋⮝⮧rò⦈rrƀ;cw⮔⮕⮙憛;쀀⤳̸;쀀↝̸ghtarrow»⮕riĀ;eೋೖchimpqu⮽⯍⯙⬄⯤⯯Ȁ;cerല⯆ഷ⯉uå;쀀𝓃ortɭ⬅\0\0⯖ará⭖mĀ;e൮⯟Ā;q൴൳suĀbp⯫⯭ååഋƀbcp⯶ⰑⰙȀ;Ees⯿ⰀഢⰄ抄;쀀⫅̸etĀ;eഛⰋqĀ;qണⰀcĀ;eലⰗñസȀ;EesⰢⰣൟⰧ抅;쀀⫆̸etĀ;e൘ⰮqĀ;qൠⰣȀgilrⰽⰿⱅⱇìௗlde耻ñ䃱çృiangleĀlrⱒⱜeftĀ;eచⱚñదightĀ;eೋⱥñĀ;mⱬⱭ䎽ƀ;esⱴⱵⱹ䀣ro;愖p;怇ҀDHadgilrsⲏⲔⲙⲞⲣⲰⲶⳓⳣash;抭arr;椄p;쀀≍⃒ash;抬ĀetⲨⲬ;쀀≥⃒;쀀>⃒nfin;槞ƀAetⲽⳁⳅrr;椂;쀀≤⃒Ā;rⳊⳍ쀀<⃒ie;쀀⊴⃒ĀAtⳘⳜrr;椃rie;쀀⊵⃒im;쀀∼⃒ƀAan⳰ⴂrr;懖rĀhr⳺⳽k;椣Ā;oᏧᏥear;椧ቓ᪕\0\0\0\0\0\0\0\0\0\0\0\0\0ⴭ\0ⴸⵈⵠⵥⶄᬇ\0\0ⶍⶫ\0ⷈⷎ\0ⷜ⸙⸫⸾⹃Ācsⴱ᪗ute耻ó䃳ĀiyⴼⵅrĀ;cⵂ耻ô䃴;䐾ʀabios᪠ⵒⵗLjⵚlac;䅑v;樸old;榼lig;䅓Ācrir;榿;쀀𝔬ͯ\0\0\0ⶂn;䋛ave耻ò䃲;槁Ābmⶈ෴ar;榵Ȁacitⶕⶥⶨrò᪀Āirⶠr;榾oss;榻nå๒;槀ƀaeiⶱⶵⶹcr;䅍ga;䏉ƀcdnⷀⷅǍron;䎿;榶pf;쀀𝕠ƀaelⷔǒr;榷rp;榹;adiosvⷪⷫⷮ⸈⸍⸐⸖戨rò᪆Ȁ;efmⷷⷸ⸂⸅橝rĀ;oⷾⷿ愴f»ⷿ耻ª䂪耻º䂺gof;抶r;橖lope;橗;橛ƀclo⸟⸡⸧ò⸁ash耻ø䃸l;折iŬⸯ⸴de耻õ䃵esĀ;aǛ⸺s;樶ml耻ö䃶bar;挽ૡ\0\0⺀⺝\0⺢⺹\0\0⻋ຜ\0⼓\0\0⼫⾼\0⿈rȀ;astЃ脀¶;l䂶leìЃɩ\0\0m;櫳;櫽y;䐿rʀcimpt⺋⺏⺓ᡥ⺗nt;䀥od;䀮il;怰enk;怱r;쀀𝔭ƀimo⺨⺰⺴Ā;v⺭⺮䏆;䏕maô੶ne;明ƀ;tv⺿⻀⻈䏀chfork»´;䏖Āau⻏⻟nĀck⻕⻝kĀ;h⇴⻛;愎ö⇴sҀ;abcdemst⻳ᤈ⼄⼆⼊⼎䀫cir;樣ir;樢Āouᵀ⼂;樥;橲n肻±ຝim;樦wo;樧ƀipu⼙⼠⼥ntint;樕f;쀀𝕡nd耻£䂣Ԁ;Eaceinosu່⼿⽁⽄⽇⾁⾉⾒⽾⾶;檳p;檷uå໙Ā;c໎⽌̀;acens່⽙⽟⽦⽨⽾pproø⽃urlyeñ໙ñ໎ƀaes⽯⽶⽺pprox;檹qq;檵im;拨iíໟmeĀ;s⾈ຮ怲ƀEas⽸⾐⽺ð⽵ƀdfp⾙⾯ƀals⾠⾥⾪lar;挮ine;挒urf;挓Ā;t⾴ïrel;抰Āci⿀⿅r;쀀𝓅;䏈ncsp;怈̀fiopsu⋢⿱r;쀀𝔮pf;쀀𝕢rime;恗cr;쀀𝓆ƀaeo⿸〉〓tĀei々rnionóڰnt;樖stĀ;e【】䀿ñἙô༔ABHabcdefhilmnoprstuxけさすムㄎㄫㅇㅢㅲㆎ㈆㈕㈤㈩㉘㉮㉲㊐㊰㊷ƀartぇおがròႳòϝail;検aròᱥar;楤cdenqrtとふへみわゔヌĀeuねぱ;쀀∽̱te;䅕iãᅮmptyv;榳gȀ;del࿑らるろ;榒;榥å࿑uo耻»䂻rր;abcfhlpstwガクシスゼゾダッデナp;極Ā;fゴs;椠;椳s;椞ë≝ð✮l;楅im;楴l;憣;憝Āaiパフil;椚oĀ;nホボ戶aló༞ƀabrョリヮrò៥rk;杳ĀakンヽcĀekヹ・;䁽;䁝Āes;榌lĀduㄊㄌ;榎;榐Ȁaeuyㄗㄜㄧㄩron;䅙Ādiㄡㄥil;䅗ìâヺ;䑀Ȁclqsㄴㄷㄽㅄa;椷dhar;楩uoĀ;rȎȍh;憳ƀacgㅎㅟངlȀ;ipsླྀㅘㅛႜnåႻarôྩt;断ƀilrㅩဣㅮsht;楽;쀀𝔯ĀaoㅷㆆrĀduㅽㅿ»ѻĀ;l႑ㆄ;楬Ā;vㆋㆌ䏁;䏱ƀgns㆕ㇹㇼht̀ahlrstㆤㆰ㇂㇘rrowĀ;tㆭaéトarpoonĀduㆻㆿowîㅾp»႒eftĀah㇊㇐rrowóarpoonóՑightarrows;應quigarro÷ニhreetimes;拌g;䋚ingdotseñἲƀahm㈍㈐㈓ròaòՑ;怏oustĀ;a㈞掱che»mid;櫮Ȁabpt㈲㈽㉀㉒Ānr㈷㈺g;柭r;懾rëဃƀafl㉇㉊㉎r;榆;쀀𝕣us;樮imes;樵Āap㉝㉧rĀ;g㉣㉤䀩t;榔olint;樒arò㇣Ȁachq㉻㊀Ⴜ㊅quo;怺r;쀀𝓇Ābu・㊊oĀ;rȔȓƀhir㊗㊛㊠reåㇸmes;拊iȀ;efl㊪ၙᠡ㊫方tri;槎luhar;楨;愞ൡ㋕㋛㋟㌬㌸㍱\0㍺㎤\0\0㏬㏰\0㐨㑈㑚㒭㒱㓊㓱\0㘖\0\0㘳cute;䅛quï➺Ԁ;Eaceinpsyᇭ㋳㋵㋿㌂㌋㌏㌟㌦㌩;檴ǰ㋺\0㋼;檸on;䅡uåᇾĀ;dᇳ㌇il;䅟rc;䅝ƀEas㌖㌘㌛;檶p;檺im;择olint;樓iíሄ;䑁otƀ;be㌴ᵇ㌵担;橦Aacmstx㍆㍊㍗㍛㍞㍣㍭rr;懘rĀhr㍐㍒ë∨Ā;oਸ਼t耻§䂧i;䀻war;椩mĀin㍩ðnuóñt;朶rĀ;o㍶⁕쀀𝔰Ȁacoy㎂㎆㎑㎠rp;景Āhy㎋㎏cy;䑉;䑈rtɭ㎙\0\0㎜iäᑤaraì耻䂭Āgm㎨㎴maƀ;fv㎱㎲㎲䏃;䏂Ѐ;deglnprካ㏅㏉㏎㏖㏞㏡㏦ot;橪Ā;qኰĀ;E㏓㏔檞;檠Ā;E㏛㏜檝;檟e;扆lus;樤arr;楲aròᄽȀaeit㏸㐈㐏㐗Āls㏽㐄lsetmé㍪hp;樳parsl;槤Ādlᑣ㐔e;挣Ā;e㐜㐝檪Ā;s㐢㐣檬;쀀⪬︀ƀflp㐮㐳㑂tcy;䑌Ā;b㐸㐹䀯Ā;a㐾㐿槄r;挿f;쀀𝕤aĀdr㑍ЂesĀ;u㑔㑕晠it»㑕ƀcsu㑠㑹㒟Āau㑥㑯pĀ;sᆈ㑫;쀀⊓︀pĀ;sᆴ㑵;쀀⊔︀uĀbp㑿㒏ƀ;esᆗᆜ㒆etĀ;eᆗ㒍ñᆝƀ;esᆨᆭ㒖etĀ;eᆨ㒝ñᆮƀ;afᅻ㒦ְrť㒫ֱ»ᅼaròᅈȀcemt㒹㒾㓂㓅r;쀀𝓈tmîñiì㐕aræᆾĀar㓎㓕rĀ;f㓔ឿ昆Āan㓚㓭ightĀep㓣㓪psiloîỠhé⺯s»⡒ʀbcmnp㓻㕞ሉ㖋㖎Ҁ;Edemnprs㔎㔏㔑㔕㔞㔣㔬㔱㔶抂;櫅ot;檽Ā;dᇚ㔚ot;櫃ult;櫁ĀEe㔨㔪;櫋;把lus;檿arr;楹ƀeiu㔽㕒㕕tƀ;en㔎㕅㕋qĀ;qᇚ㔏eqĀ;q㔫㔨m;櫇Ābp㕚㕜;櫕;櫓c̀;acensᇭ㕬㕲㕹㕻㌦pproø㋺urlyeñᇾñᇳƀaes㖂㖈㌛pproø㌚qñ㌗g;晪ڀ123;Edehlmnps㖩㖬㖯ሜ㖲㖴㗀㗉㗕㗚㗟㗨㗭耻¹䂹耻²䂲耻³䂳;櫆Āos㖹㖼t;檾ub;櫘Ā;dሢ㗅ot;櫄sĀou㗏㗒l;柉b;櫗arr;楻ult;櫂ĀEe㗤㗦;櫌;抋lus;櫀ƀeiu㗴㘉㘌tƀ;enሜ㗼㘂qĀ;qሢ㖲eqĀ;q㗧㗤m;櫈Ābp㘑㘓;櫔;櫖ƀAan㘜㘠㘭rr;懙rĀhr㘦㘨ë∮Ā;oਫwar;椪lig耻ß䃟㙑㙝㙠ዎ㙳㙹\0㙾㛂\0\0\0\0\0㛛㜃\0㜉㝬\0\0\0㞇ɲ㙖\0\0㙛get;挖;䏄rëƀaey㙦㙫㙰ron;䅥dil;䅣;䑂lrec;挕r;쀀𝔱Ȁeiko㚆㚝㚵㚼Dz㚋\0㚑eĀ4fኄኁaƀ;sv㚘㚙㚛䎸ym;䏑Ācn㚢㚲kĀas㚨㚮pproøim»ኬsðኞĀas㚺㚮ðrn耻þ䃾Ǭ̟㛆⋧es膀×;bd㛏㛐㛘䃗Ā;aᤏ㛕r;樱;樰ƀeps㛡㛣㜀á⩍Ȁ;bcf҆㛬㛰㛴ot;挶ir;櫱Ā;o㛹㛼쀀𝕥rk;櫚á㍢rime;怴ƀaip㜏㜒㝤dåቈadempst㜡㝍㝀㝑㝗㝜㝟ngleʀ;dlqr㜰㜱㜶㝀㝂斵own»ᶻeftĀ;e⠀㜾ñम;扜ightĀ;e㊪㝋ñၚot;旬inus;樺lus;樹b;槍ime;樻ezium;揢ƀcht㝲㝽㞁Āry㝷㝻;쀀𝓉;䑆cy;䑛rok;䅧Āio㞋㞎xôheadĀlr㞗㞠eftarro÷ࡏightarrow»ཝऀAHabcdfghlmoprstuw㟐㟓㟗㟤㟰㟼㠎㠜㠣㠴㡑㡝㡫㢩㣌㣒㣪㣶ròϭar;楣Ācr㟜㟢ute耻ú䃺òᅐrǣ㟪\0㟭y;䑞ve;䅭Āiy㟵㟺rc耻û䃻;䑃ƀabh㠃㠆㠋ròᎭlac;䅱aòᏃĀir㠓㠘sht;楾;쀀𝔲rave耻ù䃹š㠧㠱rĀlr㠬㠮»ॗ»ႃlk;斀Āct㠹㡍ɯ㠿\0\0㡊rnĀ;e㡅㡆挜r»㡆op;挏ri;旸Āal㡖㡚cr;䅫肻¨͉Āgp㡢㡦on;䅳f;쀀𝕦̀adhlsuᅋ㡸㡽፲㢑㢠ownáᎳarpoonĀlr㢈㢌efô㠭ighô㠯iƀ;hl㢙㢚㢜䏅»ᏺon»㢚parrows;懈ƀcit㢰㣄㣈ɯ㢶\0\0㣁rnĀ;e㢼㢽挝r»㢽op;挎ng;䅯ri;旹cr;쀀𝓊ƀdir㣙㣝㣢ot;拰lde;䅩iĀ;f㜰㣨»᠓Āam㣯㣲rò㢨l耻ü䃼angle;榧ހABDacdeflnoprsz㤜㤟㤩㤭㦵㦸㦽㧟㧤㧨㧳㧹㧽㨁㨠ròϷarĀ;v㤦㤧櫨;櫩asèϡĀnr㤲㤷grt;榜eknprst㓣㥆㥋㥒㥝㥤㦖appá␕othinçẖƀhir㓫⻈㥙opô⾵Ā;hᎷ㥢ïㆍĀiu㥩㥭gmá㎳Ābp㥲㦄setneqĀ;q㥽㦀쀀⊊︀;쀀⫋︀setneqĀ;q㦏㦒쀀⊋︀;쀀⫌︀Āhr㦛㦟etá㚜iangleĀlr㦪㦯eft»थight»ၑy;䐲ash»ံƀelr㧄㧒㧗ƀ;beⷪ㧋㧏ar;抻q;扚lip;拮Ābt㧜ᑨaòᑩr;쀀𝔳tré㦮suĀbp㧯㧱»ജ»൙pf;쀀𝕧roðtré㦴Ācu㨆㨋r;쀀𝓋Ābp㨐㨘nĀEe㦀㨖»㥾nĀEe㦒㨞»㦐igzag;榚cefoprs㨶㨻㩖㩛㩔㩡㩪irc;䅵Ādi㩀㩑Ābg㩅㩉ar;機eĀ;qᗺ㩏;扙erp;愘r;쀀𝔴pf;쀀𝕨Ā;eᑹ㩦atèᑹcr;쀀𝓌ૣណ㪇\0㪋\0㪐㪛\0\0㪝㪨㪫㪯\0\0㫃㫎\0㫘ៜtré៑r;쀀𝔵ĀAa㪔㪗ròσrò৶;䎾ĀAa㪡㪤ròθrò৫að✓is;拻ƀdptឤ㪵㪾Āfl㪺ឩ;쀀𝕩imåឲĀAa㫇㫊ròώròਁĀcq㫒ីr;쀀𝓍Āpt៖㫜ré។Ѐacefiosu㫰㫽㬈㬌㬑㬕㬛㬡cĀuy㫶㫻te耻ý䃽;䑏Āiy㬂㬆rc;䅷;䑋n耻¥䂥r;쀀𝔶cy;䑗pf;쀀𝕪cr;쀀𝓎Ācm㬦㬩y;䑎l耻ÿ䃿Ԁacdefhiosw㭂㭈㭔㭘㭤㭩㭭㭴㭺㮀cute;䅺Āay㭍㭒ron;䅾;䐷ot;䅼Āet㭝㭡træᕟa;䎶r;쀀𝔷cy;䐶grarr;懝pf;쀀𝕫cr;쀀𝓏Ājn㮅㮇;怍j;怌`.split(``).map(function(e){return e.charCodeAt(0)}))})),lae=s((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.default=new Uint16Array(`Ȁaglq \x1Bɭ\0\0p;䀦os;䀧t;䀾t;䀼uot;䀢`.split(``).map(function(e){return e.charCodeAt(0)}))})),n6=s((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.replaceCodePoint=e.fromCodePoint=void 0;var t=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]);e.fromCodePoint=String.fromCodePoint??function(e){var t=``;return e>65535&&(e-=65536,t+=String.fromCharCode(e>>>10&1023|55296),e=56320|e&1023),t+=String.fromCharCode(e),t};function n(e){return e>=55296&&e<=57343||e>1114111?65533:t.get(e)??e}e.replaceCodePoint=n;function r(t){return(0,e.fromCodePoint)(n(t))}e.default=r})),r6=s((e=>{var t=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||(`get`in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),n=e&&e.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),r=e&&e.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var i in e)i!=="default"&&Object.prototype.hasOwnProperty.call(e,i)&&t(r,e,i);return n(r,e),r},i=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,"__esModule",{value:!0}),e.decodeXML=e.decodeHTMLStrict=e.decodeHTMLAttribute=e.decodeHTML=e.determineBranch=e.EntityDecoder=e.DecodingMode=e.BinTrieFlags=e.fromCodePoint=e.replaceCodePoint=e.decodeCodePoint=e.xmlDecodeTree=e.htmlDecodeTree=void 0;var a=i(cae());e.htmlDecodeTree=a.default;var o=i(lae());e.xmlDecodeTree=o.default;var s=r(n6());e.decodeCodePoint=s.default;var c=n6();Object.defineProperty(e,"replaceCodePoint",{enumerable:!0,get:function(){return c.replaceCodePoint}}),Object.defineProperty(e,"fromCodePoint",{enumerable:!0,get:function(){return c.fromCodePoint}});var l;(function(e){e[e.NUM=35]=`NUM`,e[e.SEMI=59]=`SEMI`,e[e.EQUALS=61]=`EQUALS`,e[e.ZERO=48]=`ZERO`,e[e.NINE=57]=`NINE`,e[e.LOWER_A=97]=`LOWER_A`,e[e.LOWER_F=102]=`LOWER_F`,e[e.LOWER_X=120]=`LOWER_X`,e[e.LOWER_Z=122]=`LOWER_Z`,e[e.UPPER_A=65]=`UPPER_A`,e[e.UPPER_F=70]=`UPPER_F`,e[e.UPPER_Z=90]=`UPPER_Z`})(l||={});var u=32,d;(function(e){e[e.VALUE_LENGTH=49152]=`VALUE_LENGTH`,e[e.BRANCH_LENGTH=16256]=`BRANCH_LENGTH`,e[e.JUMP_TABLE=127]=`JUMP_TABLE`})(d=e.BinTrieFlags||={});function f(e){return e>=l.ZERO&&e<=l.NINE}function p(e){return e>=l.UPPER_A&&e<=l.UPPER_F||e>=l.LOWER_A&&e<=l.LOWER_F}function m(e){return e>=l.UPPER_A&&e<=l.UPPER_Z||e>=l.LOWER_A&&e<=l.LOWER_Z||f(e)}function h(e){return e===l.EQUALS||m(e)}var g;(function(e){e[e.EntityStart=0]=`EntityStart`,e[e.NumericStart=1]=`NumericStart`,e[e.NumericDecimal=2]=`NumericDecimal`,e[e.NumericHex=3]=`NumericHex`,e[e.NamedEntity=4]=`NamedEntity`})(g||={});var _;(function(e){e[e.Legacy=0]=`Legacy`,e[e.Strict=1]=`Strict`,e[e.Attribute=2]=`Attribute`})(_=e.DecodingMode||={});var v=function(){function e(e,t,n){this.decodeTree=e,this.emitCodePoint=t,this.errors=n,this.state=g.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=_.Strict}return e.prototype.startEntity=function(e){this.decodeMode=e,this.state=g.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1},e.prototype.write=function(e,t){switch(this.state){case g.EntityStart:return e.charCodeAt(t)===l.NUM?(this.state=g.NumericStart,this.consumed+=1,this.stateNumericStart(e,t+1)):(this.state=g.NamedEntity,this.stateNamedEntity(e,t));case g.NumericStart:return this.stateNumericStart(e,t);case g.NumericDecimal:return this.stateNumericDecimal(e,t);case g.NumericHex:return this.stateNumericHex(e,t);case g.NamedEntity:return this.stateNamedEntity(e,t)}},e.prototype.stateNumericStart=function(e,t){return t>=e.length?-1:(e.charCodeAt(t)|u)===l.LOWER_X?(this.state=g.NumericHex,this.consumed+=1,this.stateNumericHex(e,t+1)):(this.state=g.NumericDecimal,this.stateNumericDecimal(e,t))},e.prototype.addToNumericResult=function(e,t,n,r){if(t!==n){var i=n-t;this.result=this.result*r**+i+parseInt(e.substr(t,i),r),this.consumed+=i}},e.prototype.stateNumericHex=function(e,t){for(var n=t;t<e.length;){var r=e.charCodeAt(t);if(f(r)||p(r))t+=1;else return this.addToNumericResult(e,n,t,16),this.emitNumericEntity(r,3)}return this.addToNumericResult(e,n,t,16),-1},e.prototype.stateNumericDecimal=function(e,t){for(var n=t;t<e.length;){var r=e.charCodeAt(t);if(f(r))t+=1;else return this.addToNumericResult(e,n,t,10),this.emitNumericEntity(r,2)}return this.addToNumericResult(e,n,t,10),-1},e.prototype.emitNumericEntity=function(e,t){var n;if(this.consumed<=t)return(n=this.errors)==null||n.absenceOfDigitsInNumericCharacterReference(this.consumed),0;if(e===l.SEMI)this.consumed+=1;else if(this.decodeMode===_.Strict)return 0;return this.emitCodePoint((0,s.replaceCodePoint)(this.result),this.consumed),this.errors&&(e!==l.SEMI&&this.errors.missingSemicolonAfterCharacterReference(),this.errors.validateNumericCharacterReference(this.result)),this.consumed},e.prototype.stateNamedEntity=function(e,t){for(var n=this.decodeTree,r=n[this.treeIndex],i=(r&d.VALUE_LENGTH)>>14;t<e.length;t++,this.excess++){var a=e.charCodeAt(t);if(this.treeIndex=b(n,r,this.treeIndex+Math.max(1,i),a),this.treeIndex<0)return this.result===0||this.decodeMode===_.Attribute&&(i===0||h(a))?0:this.emitNotTerminatedNamedEntity();if(r=n[this.treeIndex],i=(r&d.VALUE_LENGTH)>>14,i!==0){if(a===l.SEMI)return this.emitNamedEntityData(this.treeIndex,i,this.consumed+this.excess);this.decodeMode!==_.Strict&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}}return-1},e.prototype.emitNotTerminatedNamedEntity=function(){var e,t=this,n=t.result,r=(t.decodeTree[n]&d.VALUE_LENGTH)>>14;return this.emitNamedEntityData(n,r,this.consumed),(e=this.errors)==null||e.missingSemicolonAfterCharacterReference(),this.consumed},e.prototype.emitNamedEntityData=function(e,t,n){var r=this.decodeTree;return this.emitCodePoint(t===1?r[e]&~d.VALUE_LENGTH:r[e+1],n),t===3&&this.emitCodePoint(r[e+2],n),n},e.prototype.end=function(){var e;switch(this.state){case g.NamedEntity:return this.result!==0&&(this.decodeMode!==_.Attribute||this.result===this.treeIndex)?this.emitNotTerminatedNamedEntity():0;case g.NumericDecimal:return this.emitNumericEntity(0,2);case g.NumericHex:return this.emitNumericEntity(0,3);case g.NumericStart:return(e=this.errors)==null||e.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case g.EntityStart:return 0}},e}();e.EntityDecoder=v;function y(e){var t=``,n=new v(e,function(e){return t+=(0,s.fromCodePoint)(e)});return function(e,r){for(var i=0,a=0;(a=e.indexOf(`&`,a))>=0;){t+=e.slice(i,a),n.startEntity(r);var o=n.write(e,a+1);if(o<0){i=a+n.end();break}i=a+o,a=o===0?i+1:i}var s=t+e.slice(i);return t=``,s}}function b(e,t,n,r){var i=(t&d.BRANCH_LENGTH)>>7,a=t&d.JUMP_TABLE;if(i===0)return a!==0&&r===a?n:-1;if(a){var o=r-a;return o<0||o>=i?-1:e[n+o]-1}for(var s=n,c=s+i-1;s<=c;){var l=s+c>>>1,u=e[l];if(u<r)s=l+1;else if(u>r)c=l-1;else return e[l+i]}return-1}e.determineBranch=b;var x=y(a.default),S=y(o.default);function C(e,t){return t===void 0&&(t=_.Legacy),x(e,t)}e.decodeHTML=C;function w(e){return x(e,_.Attribute)}e.decodeHTMLAttribute=w;function T(e){return x(e,_.Strict)}e.decodeHTMLStrict=T;function ee(e){return S(e,_.Strict)}e.decodeXML=ee})),uae=s((e=>{Object.defineProperty(e,"__esModule",{value:!0});function t(e){for(var t=1;t<e.length;t++)e[t][0]+=e[t-1][0]+1;return e}e.default=new Map(t([[9,`	`],[0,`
`],[22,`!`],[0,`"`],[0,`#`],[0,`$`],[0,`%`],[0,`&`],[0,`'`],[0,`(`],[0,`)`],[0,`*`],[0,`+`],[0,`,`],[1,`.`],[0,`/`],[10,`:`],[0,`;`],[0,{v:`<`,n:8402,o:`<⃒`}],[0,{v:`=`,n:8421,o:`=⃥`}],[0,{v:`>`,n:8402,o:`>⃒`}],[0,`?`],[0,`@`],[26,`[`],[0,`\`],[0,`]`],[0,`^`],[0,`_`],[0,```],[5,{n:106,o:`fj`}],[20,`{`],[0,`|`],[0,`}`],[34,` `],[0,`¡`],[0,`¢`],[0,`£`],[0,`¤`],[0,`¥`],[0,`¦`],[0,`§`],[0,`¨`],[0,`©`],[0,`ª`],[0,`«`],[0,`¬`],[0,`­`],[0,`®`],[0,`¯`],[0,`°`],[0,`±`],[0,`²`],[0,`³`],[0,`´`],[0,`µ`],[0,`¶`],[0,`·`],[0,`¸`],[0,`¹`],[0,`º`],[0,`»`],[0,`¼`],[0,`½`],[0,`¾`],[0,`¿`],[0,`À`],[0,`Á`],[0,`Â`],[0,`Ã`],[0,`Ä`],[0,`Å`],[0,`Æ`],[0,`Ç`],[0,`È`],[0,`É`],[0,`Ê`],[0,`Ë`],[0,`Ì`],[0,`Í`],[0,`Î`],[0,`Ï`],[0,`Ð`],[0,`Ñ`],[0,`Ò`],[0,`Ó`],[0,`Ô`],[0,`Õ`],[0,`Ö`],[0,`×`],[0,`Ø`],[0,`Ù`],[0,`Ú`],[0,`Û`],[0,`Ü`],[0,`Ý`],[0,`Þ`],[0,`ß`],[0,`à`],[0,`á`],[0,`â`],[0,`ã`],[0,`ä`],[0,`å`],[0,`æ`],[0,`ç`],[0,`è`],[0,`é`],[0,`ê`],[0,`ë`],[0,`ì`],[0,`í`],[0,`î`],[0,`ï`],[0,`ð`],[0,`ñ`],[0,`ò`],[0,`ó`],[0,`ô`],[0,`õ`],[0,`ö`],[0,`÷`],[0,`ø`],[0,`ù`],[0,`ú`],[0,`û`],[0,`ü`],[0,`ý`],[0,`þ`],[0,`ÿ`],[0,`Ā`],[0,`ā`],[0,`Ă`],[0,`ă`],[0,`Ą`],[0,`ą`],[0,`Ć`],[0,`ć`],[0,`Ĉ`],[0,`ĉ`],[0,`Ċ`],[0,`ċ`],[0,`Č`],[0,`č`],[0,`Ď`],[0,`ď`],[0,`Đ`],[0,`đ`],[0,`Ē`],[0,`ē`],[2,`Ė`],[0,`ė`],[0,`Ę`],[0,`ę`],[0,`Ě`],[0,`ě`],[0,`Ĝ`],[0,`ĝ`],[0,`Ğ`],[0,`ğ`],[0,`Ġ`],[0,`ġ`],[0,`Ģ`],[1,`Ĥ`],[0,`ĥ`],[0,`Ħ`],[0,`ħ`],[0,`Ĩ`],[0,`ĩ`],[0,`Ī`],[0,`ī`],[2,`Į`],[0,`į`],[0,`İ`],[0,`ı`],[0,`IJ`],[0,`ij`],[0,`Ĵ`],[0,`ĵ`],[0,`Ķ`],[0,`ķ`],[0,`ĸ`],[0,`Ĺ`],[0,`ĺ`],[0,`Ļ`],[0,`ļ`],[0,`Ľ`],[0,`ľ`],[0,`Ŀ`],[0,`ŀ`],[0,`Ł`],[0,`ł`],[0,`Ń`],[0,`ń`],[0,`Ņ`],[0,`ņ`],[0,`Ň`],[0,`ň`],[0,`ʼn`],[0,`Ŋ`],[0,`ŋ`],[0,`Ō`],[0,`ō`],[2,`Ő`],[0,`ő`],[0,`Œ`],[0,`œ`],[0,`Ŕ`],[0,`ŕ`],[0,`Ŗ`],[0,`ŗ`],[0,`Ř`],[0,`ř`],[0,`Ś`],[0,`ś`],[0,`Ŝ`],[0,`ŝ`],[0,`Ş`],[0,`ş`],[0,`Š`],[0,`š`],[0,`Ţ`],[0,`ţ`],[0,`Ť`],[0,`ť`],[0,`Ŧ`],[0,`ŧ`],[0,`Ũ`],[0,`ũ`],[0,`Ū`],[0,`ū`],[0,`Ŭ`],[0,`ŭ`],[0,`Ů`],[0,`ů`],[0,`Ű`],[0,`ű`],[0,`Ų`],[0,`ų`],[0,`Ŵ`],[0,`ŵ`],[0,`Ŷ`],[0,`ŷ`],[0,`Ÿ`],[0,`Ź`],[0,`ź`],[0,`Ż`],[0,`ż`],[0,`Ž`],[0,`ž`],[19,`ƒ`],[34,`Ƶ`],[63,`ǵ`],[65,`ȷ`],[142,`ˆ`],[0,`ˇ`],[16,`˘`],[0,`˙`],[0,`˚`],[0,`˛`],[0,`˜`],[0,`˝`],[51,`̑`],[127,`Α`],[0,`Β`],[0,`Γ`],[0,`Δ`],[0,`Ε`],[0,`Ζ`],[0,`Η`],[0,`Θ`],[0,`Ι`],[0,`Κ`],[0,`Λ`],[0,`Μ`],[0,`Ν`],[0,`Ξ`],[0,`Ο`],[0,`Π`],[0,`Ρ`],[1,`Σ`],[0,`Τ`],[0,`Υ`],[0,`Φ`],[0,`Χ`],[0,`Ψ`],[0,`Ω`],[7,`α`],[0,`β`],[0,`γ`],[0,`δ`],[0,`ε`],[0,`ζ`],[0,`η`],[0,`θ`],[0,`ι`],[0,`κ`],[0,`λ`],[0,`μ`],[0,`ν`],[0,`ξ`],[0,`ο`],[0,`π`],[0,`ρ`],[0,`ς`],[0,`σ`],[0,`τ`],[0,`υ`],[0,`φ`],[0,`χ`],[0,`ψ`],[0,`ω`],[7,`ϑ`],[0,`ϒ`],[2,`ϕ`],[0,`ϖ`],[5,`Ϝ`],[0,`ϝ`],[18,`ϰ`],[0,`ϱ`],[3,`ϵ`],[0,`϶`],[10,`Ё`],[0,`Ђ`],[0,`Ѓ`],[0,`Є`],[0,`Ѕ`],[0,`І`],[0,`Ї`],[0,`Ј`],[0,`Љ`],[0,`Њ`],[0,`Ћ`],[0,`Ќ`],[1,`Ў`],[0,`Џ`],[0,`А`],[0,`Б`],[0,`В`],[0,`Г`],[0,`Д`],[0,`Е`],[0,`Ж`],[0,`З`],[0,`И`],[0,`Й`],[0,`К`],[0,`Л`],[0,`М`],[0,`Н`],[0,`О`],[0,`П`],[0,`Р`],[0,`С`],[0,`Т`],[0,`У`],[0,`Ф`],[0,`Х`],[0,`Ц`],[0,`Ч`],[0,`Ш`],[0,`Щ`],[0,`Ъ`],[0,`Ы`],[0,`Ь`],[0,`Э`],[0,`Ю`],[0,`Я`],[0,`а`],[0,`б`],[0,`в`],[0,`г`],[0,`д`],[0,`е`],[0,`ж`],[0,`з`],[0,`и`],[0,`й`],[0,`к`],[0,`л`],[0,`м`],[0,`н`],[0,`о`],[0,`п`],[0,`р`],[0,`с`],[0,`т`],[0,`у`],[0,`ф`],[0,`х`],[0,`ц`],[0,`ч`],[0,`ш`],[0,`щ`],[0,`ъ`],[0,`ы`],[0,`ь`],[0,`э`],[0,`ю`],[0,`я`],[1,`ё`],[0,`ђ`],[0,`ѓ`],[0,`є`],[0,`ѕ`],[0,`і`],[0,`ї`],[0,`ј`],[0,`љ`],[0,`њ`],[0,`ћ`],[0,`ќ`],[1,`ў`],[0,`џ`],[7074,` `],[0,` `],[0,` `],[0,` `],[1,` `],[0,` `],[0,` `],[0,` `],[0,`​`],[0,`‌`],[0,`‍`],[0,`‎`],[0,`‏`],[0,`‐`],[2,`–`],[0,`—`],[0,`―`],[0,`‖`],[1,`‘`],[0,`’`],[0,`‚`],[1,`“`],[0,`”`],[0,`„`],[1,`†`],[0,`‡`],[0,`•`],[2,`‥`],[0,`…`],[9,`‰`],[0,`‱`],[0,`′`],[0,`″`],[0,`‴`],[0,`‵`],[3,`‹`],[0,`›`],[3,`‾`],[2,`⁁`],[1,`⁃`],[0,`⁄`],[10,`⁏`],[7,`⁗`],[7,{v:` `,n:8202,o:`  `}],[0,`⁠`],[0,`⁡`],[0,`⁢`],[0,`⁣`],[72,`€`],[46,`⃛`],[0,`⃜`],[37,`ℂ`],[2,`℅`],[4,`ℊ`],[0,`ℋ`],[0,`ℌ`],[0,`ℍ`],[0,`ℎ`],[0,`ℏ`],[0,`ℐ`],[0,`ℑ`],[0,`ℒ`],[0,`ℓ`],[1,`ℕ`],[0,`№`],[0,`℗`],[0,`℘`],[0,`ℙ`],[0,`ℚ`],[0,`ℛ`],[0,`ℜ`],[0,`ℝ`],[0,`℞`],[3,`™`],[1,`ℤ`],[2,`℧`],[0,`ℨ`],[0,`℩`],[2,`ℬ`],[0,`ℭ`],[1,`ℯ`],[0,`ℰ`],[0,`ℱ`],[1,`ℳ`],[0,`ℴ`],[0,`ℵ`],[0,`ℶ`],[0,`ℷ`],[0,`ℸ`],[12,`ⅅ`],[0,`ⅆ`],[0,`ⅇ`],[0,`ⅈ`],[10,`⅓`],[0,`⅔`],[0,`⅕`],[0,`⅖`],[0,`⅗`],[0,`⅘`],[0,`⅙`],[0,`⅚`],[0,`⅛`],[0,`⅜`],[0,`⅝`],[0,`⅞`],[49,`←`],[0,`↑`],[0,`→`],[0,`↓`],[0,`↔`],[0,`↕`],[0,`↖`],[0,`↗`],[0,`↘`],[0,`↙`],[0,`↚`],[0,`↛`],[1,{v:`↝`,n:824,o:`↝̸`}],[0,`↞`],[0,`↟`],[0,`↠`],[0,`↡`],[0,`↢`],[0,`↣`],[0,`↤`],[0,`↥`],[0,`↦`],[0,`↧`],[1,`↩`],[0,`↪`],[0,`↫`],[0,`↬`],[0,`↭`],[0,`↮`],[1,`↰`],[0,`↱`],[0,`↲`],[0,`↳`],[1,`↵`],[0,`↶`],[0,`↷`],[2,`↺`],[0,`↻`],[0,`↼`],[0,`↽`],[0,`↾`],[0,`↿`],[0,`⇀`],[0,`⇁`],[0,`⇂`],[0,`⇃`],[0,`⇄`],[0,`⇅`],[0,`⇆`],[0,`⇇`],[0,`⇈`],[0,`⇉`],[0,`⇊`],[0,`⇋`],[0,`⇌`],[0,`⇍`],[0,`⇎`],[0,`⇏`],[0,`⇐`],[0,`⇑`],[0,`⇒`],[0,`⇓`],[0,`⇔`],[0,`⇕`],[0,`⇖`],[0,`⇗`],[0,`⇘`],[0,`⇙`],[0,`⇚`],[0,`⇛`],[1,`⇝`],[6,`⇤`],[0,`⇥`],[15,`⇵`],[7,`⇽`],[0,`⇾`],[0,`⇿`],[0,`∀`],[0,`∁`],[0,{v:`∂`,n:824,o:`∂̸`}],[0,`∃`],[0,`∄`],[0,`∅`],[1,`∇`],[0,`∈`],[0,`∉`],[1,`∋`],[0,`∌`],[2,`∏`],[0,`∐`],[0,`∑`],[0,`−`],[0,`∓`],[0,`∔`],[1,`∖`],[0,`∗`],[0,`∘`],[1,`√`],[2,`∝`],[0,`∞`],[0,`∟`],[0,{v:`∠`,n:8402,o:`∠⃒`}],[0,`∡`],[0,`∢`],[0,`∣`],[0,`∤`],[0,`∥`],[0,`∦`],[0,`∧`],[0,`∨`],[0,{v:`∩`,n:65024,o:`∩︀`}],[0,{v:`∪`,n:65024,o:`∪︀`}],[0,`∫`],[0,`∬`],[0,`∭`],[0,`∮`],[0,`∯`],[0,`∰`],[0,`∱`],[0,`∲`],[0,`∳`],[0,`∴`],[0,`∵`],[0,`∶`],[0,`∷`],[0,`∸`],[1,`∺`],[0,`∻`],[0,{v:`∼`,n:8402,o:`∼⃒`}],[0,{v:`∽`,n:817,o:`∽̱`}],[0,{v:`∾`,n:819,o:`∾̳`}],[0,`∿`],[0,`≀`],[0,`≁`],[0,{v:`≂`,n:824,o:`≂̸`}],[0,`≃`],[0,`≄`],[0,`≅`],[0,`≆`],[0,`≇`],[0,`≈`],[0,`≉`],[0,`≊`],[0,{v:`≋`,n:824,o:`≋̸`}],[0,`≌`],[0,{v:`≍`,n:8402,o:`≍⃒`}],[0,{v:`≎`,n:824,o:`≎̸`}],[0,{v:`≏`,n:824,o:`≏̸`}],[0,{v:`≐`,n:824,o:`≐̸`}],[0,`≑`],[0,`≒`],[0,`≓`],[0,`≔`],[0,`≕`],[0,`≖`],[0,`≗`],[1,`≙`],[0,`≚`],[1,`≜`],[2,`≟`],[0,`≠`],[0,{v:`≡`,n:8421,o:`≡⃥`}],[0,`≢`],[1,{v:`≤`,n:8402,o:`≤⃒`}],[0,{v:`≥`,n:8402,o:`≥⃒`}],[0,{v:`≦`,n:824,o:`≦̸`}],[0,{v:`≧`,n:824,o:`≧̸`}],[0,{v:`≨`,n:65024,o:`≨︀`}],[0,{v:`≩`,n:65024,o:`≩︀`}],[0,{v:`≪`,n:new Map(t([[824,`≪̸`],[7577,`≪⃒`]]))}],[0,{v:`≫`,n:new Map(t([[824,`≫̸`],[7577,`≫⃒`]]))}],[0,`≬`],[0,`≭`],[0,`≮`],[0,`≯`],[0,`≰`],[0,`≱`],[0,`≲`],[0,`≳`],[0,`≴`],[0,`≵`],[0,`≶`],[0,`≷`],[0,`≸`],[0,`≹`],[0,`≺`],[0,`≻`],[0,`≼`],[0,`≽`],[0,`≾`],[0,{v:`≿`,n:824,o:`≿̸`}],[0,`⊀`],[0,`⊁`],[0,{v:`⊂`,n:8402,o:`⊂⃒`}],[0,{v:`⊃`,n:8402,o:`⊃⃒`}],[0,`⊄`],[0,`⊅`],[0,`⊆`],[0,`⊇`],[0,`⊈`],[0,`⊉`],[0,{v:`⊊`,n:65024,o:`⊊︀`}],[0,{v:`⊋`,n:65024,o:`⊋︀`}],[1,`⊍`],[0,`⊎`],[0,{v:`⊏`,n:824,o:`⊏̸`}],[0,{v:`⊐`,n:824,o:`⊐̸`}],[0,`⊑`],[0,`⊒`],[0,{v:`⊓`,n:65024,o:`⊓︀`}],[0,{v:`⊔`,n:65024,o:`⊔︀`}],[0,`⊕`],[0,`⊖`],[0,`⊗`],[0,`⊘`],[0,`⊙`],[0,`⊚`],[0,`⊛`],[1,`⊝`],[0,`⊞`],[0,`⊟`],[0,`⊠`],[0,`⊡`],[0,`⊢`],[0,`⊣`],[0,`⊤`],[0,`⊥`],[1,`⊧`],[0,`⊨`],[0,`⊩`],[0,`⊪`],[0,`⊫`],[0,`⊬`],[0,`⊭`],[0,`⊮`],[0,`⊯`],[0,`⊰`],[1,`⊲`],[0,`⊳`],[0,{v:`⊴`,n:8402,o:`⊴⃒`}],[0,{v:`⊵`,n:8402,o:`⊵⃒`}],[0,`⊶`],[0,`⊷`],[0,`⊸`],[0,`⊹`],[0,`⊺`],[0,`⊻`],[1,`⊽`],[0,`⊾`],[0,`⊿`],[0,`⋀`],[0,`⋁`],[0,`⋂`],[0,`⋃`],[0,`⋄`],[0,`⋅`],[0,`⋆`],[0,`⋇`],[0,`⋈`],[0,`⋉`],[0,`⋊`],[0,`⋋`],[0,`⋌`],[0,`⋍`],[0,`⋎`],[0,`⋏`],[0,`⋐`],[0,`⋑`],[0,`⋒`],[0,`⋓`],[0,`⋔`],[0,`⋕`],[0,`⋖`],[0,`⋗`],[0,{v:`⋘`,n:824,o:`⋘̸`}],[0,{v:`⋙`,n:824,o:`⋙̸`}],[0,{v:`⋚`,n:65024,o:`⋚︀`}],[0,{v:`⋛`,n:65024,o:`⋛︀`}],[2,`⋞`],[0,`⋟`],[0,`⋠`],[0,`⋡`],[0,`⋢`],[0,`⋣`],[2,`⋦`],[0,`⋧`],[0,`⋨`],[0,`⋩`],[0,`⋪`],[0,`⋫`],[0,`⋬`],[0,`⋭`],[0,`⋮`],[0,`⋯`],[0,`⋰`],[0,`⋱`],[0,`⋲`],[0,`⋳`],[0,`⋴`],[0,{v:`⋵`,n:824,o:`⋵̸`}],[0,`⋶`],[0,`⋷`],[1,{v:`⋹`,n:824,o:`⋹̸`}],[0,`⋺`],[0,`⋻`],[0,`⋼`],[0,`⋽`],[0,`⋾`],[6,`⌅`],[0,`⌆`],[1,`⌈`],[0,`⌉`],[0,`⌊`],[0,`⌋`],[0,`⌌`],[0,`⌍`],[0,`⌎`],[0,`⌏`],[0,`⌐`],[1,`⌒`],[0,`⌓`],[1,`⌕`],[0,`⌖`],[5,`⌜`],[0,`⌝`],[0,`⌞`],[0,`⌟`],[2,`⌢`],[0,`⌣`],[9,`⌭`],[0,`⌮`],[7,`⌶`],[6,`⌽`],[1,`⌿`],[60,`⍼`],[51,`⎰`],[0,`⎱`],[2,`⎴`],[0,`⎵`],[0,`⎶`],[37,`⏜`],[0,`⏝`],[0,`⏞`],[0,`⏟`],[2,`⏢`],[4,`⏧`],[59,`␣`],[164,`Ⓢ`],[55,`─`],[1,`│`],[9,`┌`],[3,`┐`],[3,`└`],[3,`┘`],[3,`├`],[7,`┤`],[7,`┬`],[7,`┴`],[7,`┼`],[19,`═`],[0,`║`],[0,`╒`],[0,`╓`],[0,`╔`],[0,`╕`],[0,`╖`],[0,`╗`],[0,`╘`],[0,`╙`],[0,`╚`],[0,`╛`],[0,`╜`],[0,`╝`],[0,`╞`],[0,`╟`],[0,`╠`],[0,`╡`],[0,`╢`],[0,`╣`],[0,`╤`],[0,`╥`],[0,`╦`],[0,`╧`],[0,`╨`],[0,`╩`],[0,`╪`],[0,`╫`],[0,`╬`],[19,`▀`],[3,`▄`],[3,`█`],[8,`░`],[0,`▒`],[0,`▓`],[13,`□`],[8,`▪`],[0,`▫`],[1,`▭`],[0,`▮`],[2,`▱`],[1,`△`],[0,`▴`],[0,`▵`],[2,`▸`],[0,`▹`],[3,`▽`],[0,`▾`],[0,`▿`],[2,`◂`],[0,`◃`],[6,`◊`],[0,`○`],[32,`◬`],[2,`◯`],[8,`◸`],[0,`◹`],[0,`◺`],[0,`◻`],[0,`◼`],[8,`★`],[0,`☆`],[7,`☎`],[49,`♀`],[1,`♂`],[29,`♠`],[2,`♣`],[1,`♥`],[0,`♦`],[3,`♪`],[2,`♭`],[0,`♮`],[0,`♯`],[163,`✓`],[3,`✗`],[8,`✠`],[21,`✶`],[33,`❘`],[25,`❲`],[0,`❳`],[84,`⟈`],[0,`⟉`],[28,`⟦`],[0,`⟧`],[0,`⟨`],[0,`⟩`],[0,`⟪`],[0,`⟫`],[0,`⟬`],[0,`⟭`],[7,`⟵`],[0,`⟶`],[0,`⟷`],[0,`⟸`],[0,`⟹`],[0,`⟺`],[1,`⟼`],[2,`⟿`],[258,`⤂`],[0,`⤃`],[0,`⤄`],[0,`⤅`],[6,`⤌`],[0,`⤍`],[0,`⤎`],[0,`⤏`],[0,`⤐`],[0,`⤑`],[0,`⤒`],[0,`⤓`],[2,`⤖`],[2,`⤙`],[0,`⤚`],[0,`⤛`],[0,`⤜`],[0,`⤝`],[0,`⤞`],[0,`⤟`],[0,`⤠`],[2,`⤣`],[0,`⤤`],[0,`⤥`],[0,`⤦`],[0,`⤧`],[0,`⤨`],[0,`⤩`],[0,`⤪`],[8,{v:`⤳`,n:824,o:`⤳̸`}],[1,`⤵`],[0,`⤶`],[0,`⤷`],[0,`⤸`],[0,`⤹`],[2,`⤼`],[0,`⤽`],[7,`⥅`],[2,`⥈`],[0,`⥉`],[0,`⥊`],[0,`⥋`],[2,`⥎`],[0,`⥏`],[0,`⥐`],[0,`⥑`],[0,`⥒`],[0,`⥓`],[0,`⥔`],[0,`⥕`],[0,`⥖`],[0,`⥗`],[0,`⥘`],[0,`⥙`],[0,`⥚`],[0,`⥛`],[0,`⥜`],[0,`⥝`],[0,`⥞`],[0,`⥟`],[0,`⥠`],[0,`⥡`],[0,`⥢`],[0,`⥣`],[0,`⥤`],[0,`⥥`],[0,`⥦`],[0,`⥧`],[0,`⥨`],[0,`⥩`],[0,`⥪`],[0,`⥫`],[0,`⥬`],[0,`⥭`],[0,`⥮`],[0,`⥯`],[0,`⥰`],[0,`⥱`],[0,`⥲`],[0,`⥳`],[0,`⥴`],[0,`⥵`],[0,`⥶`],[1,`⥸`],[0,`⥹`],[1,`⥻`],[0,`⥼`],[0,`⥽`],[0,`⥾`],[0,`⥿`],[5,`⦅`],[0,`⦆`],[4,`⦋`],[0,`⦌`],[0,`⦍`],[0,`⦎`],[0,`⦏`],[0,`⦐`],[0,`⦑`],[0,`⦒`],[0,`⦓`],[0,`⦔`],[0,`⦕`],[0,`⦖`],[3,`⦚`],[1,`⦜`],[0,`⦝`],[6,`⦤`],[0,`⦥`],[0,`⦦`],[0,`⦧`],[0,`⦨`],[0,`⦩`],[0,`⦪`],[0,`⦫`],[0,`⦬`],[0,`⦭`],[0,`⦮`],[0,`⦯`],[0,`⦰`],[0,`⦱`],[0,`⦲`],[0,`⦳`],[0,`⦴`],[0,`⦵`],[0,`⦶`],[0,`⦷`],[1,`⦹`],[1,`⦻`],[0,`⦼`],[1,`⦾`],[0,`⦿`],[0,`⧀`],[0,`⧁`],[0,`⧂`],[0,`⧃`],[0,`⧄`],[0,`⧅`],[3,`⧉`],[3,`⧍`],[0,`⧎`],[0,{v:`⧏`,n:824,o:`⧏̸`}],[0,{v:`⧐`,n:824,o:`⧐̸`}],[11,`⧜`],[0,`⧝`],[0,`⧞`],[4,`⧣`],[0,`⧤`],[0,`⧥`],[5,`⧫`],[8,`⧴`],[1,`⧶`],[9,`⨀`],[0,`⨁`],[0,`⨂`],[1,`⨄`],[1,`⨆`],[5,`⨌`],[0,`⨍`],[2,`⨐`],[0,`⨑`],[0,`⨒`],[0,`⨓`],[0,`⨔`],[0,`⨕`],[0,`⨖`],[0,`⨗`],[10,`⨢`],[0,`⨣`],[0,`⨤`],[0,`⨥`],[0,`⨦`],[0,`⨧`],[1,`⨩`],[0,`⨪`],[2,`⨭`],[0,`⨮`],[0,`⨯`],[0,`⨰`],[0,`⨱`],[1,`⨳`],[0,`⨴`],[0,`⨵`],[0,`⨶`],[0,`⨷`],[0,`⨸`],[0,`⨹`],[0,`⨺`],[0,`⨻`],[0,`⨼`],[2,`⨿`],[0,`⩀`],[1,`⩂`],[0,`⩃`],[0,`⩄`],[0,`⩅`],[0,`⩆`],[0,`⩇`],[0,`⩈`],[0,`⩉`],[0,`⩊`],[0,`⩋`],[0,`⩌`],[0,`⩍`],[2,`⩐`],[2,`⩓`],[0,`⩔`],[0,`⩕`],[0,`⩖`],[0,`⩗`],[0,`⩘`],[1,`⩚`],[0,`⩛`],[0,`⩜`],[0,`⩝`],[1,`⩟`],[6,`⩦`],[3,`⩪`],[2,{v:`⩭`,n:824,o:`⩭̸`}],[0,`⩮`],[0,`⩯`],[0,{v:`⩰`,n:824,o:`⩰̸`}],[0,`⩱`],[0,`⩲`],[0,`⩳`],[0,`⩴`],[0,`⩵`],[1,`⩷`],[0,`⩸`],[0,`⩹`],[0,`⩺`],[0,`⩻`],[0,`⩼`],[0,{v:`⩽`,n:824,o:`⩽̸`}],[0,{v:`⩾`,n:824,o:`⩾̸`}],[0,`⩿`],[0,`⪀`],[0,`⪁`],[0,`⪂`],[0,`⪃`],[0,`⪄`],[0,`⪅`],[0,`⪆`],[0,`⪇`],[0,`⪈`],[0,`⪉`],[0,`⪊`],[0,`⪋`],[0,`⪌`],[0,`⪍`],[0,`⪎`],[0,`⪏`],[0,`⪐`],[0,`⪑`],[0,`⪒`],[0,`⪓`],[0,`⪔`],[0,`⪕`],[0,`⪖`],[0,`⪗`],[0,`⪘`],[0,`⪙`],[0,`⪚`],[2,`⪝`],[0,`⪞`],[0,`⪟`],[0,`⪠`],[0,{v:`⪡`,n:824,o:`⪡̸`}],[0,{v:`⪢`,n:824,o:`⪢̸`}],[1,`⪤`],[0,`⪥`],[0,`⪦`],[0,`⪧`],[0,`⪨`],[0,`⪩`],[0,`⪪`],[0,`⪫`],[0,{v:`⪬`,n:65024,o:`⪬︀`}],[0,{v:`⪭`,n:65024,o:`⪭︀`}],[0,`⪮`],[0,{v:`⪯`,n:824,o:`⪯̸`}],[0,{v:`⪰`,n:824,o:`⪰̸`}],[2,`⪳`],[0,`⪴`],[0,`⪵`],[0,`⪶`],[0,`⪷`],[0,`⪸`],[0,`⪹`],[0,`⪺`],[0,`⪻`],[0,`⪼`],[0,`⪽`],[0,`⪾`],[0,`⪿`],[0,`⫀`],[0,`⫁`],[0,`⫂`],[0,`⫃`],[0,`⫄`],[0,{v:`⫅`,n:824,o:`⫅̸`}],[0,{v:`⫆`,n:824,o:`⫆̸`}],[0,`⫇`],[0,`⫈`],[2,{v:`⫋`,n:65024,o:`⫋︀`}],[0,{v:`⫌`,n:65024,o:`⫌︀`}],[2,`⫏`],[0,`⫐`],[0,`⫑`],[0,`⫒`],[0,`⫓`],[0,`⫔`],[0,`⫕`],[0,`⫖`],[0,`⫗`],[0,`⫘`],[0,`⫙`],[0,`⫚`],[0,`⫛`],[8,`⫤`],[1,`⫦`],[0,`⫧`],[0,`⫨`],[0,`⫩`],[1,`⫫`],[0,`⫬`],[0,`⫭`],[0,`⫮`],[0,`⫯`],[0,`⫰`],[0,`⫱`],[0,`⫲`],[0,`⫳`],[9,{v:`⫽`,n:8421,o:`⫽⃥`}],[44343,{n:new Map(t([[56476,`𝒜`],[1,`𝒞`],[0,`𝒟`],[2,`𝒢`],[2,`𝒥`],[0,`𝒦`],[2,`𝒩`],[0,`𝒪`],[0,`𝒫`],[0,`𝒬`],[1,`𝒮`],[0,`𝒯`],[0,`𝒰`],[0,`𝒱`],[0,`𝒲`],[0,`𝒳`],[0,`𝒴`],[0,`𝒵`],[0,`𝒶`],[0,`𝒷`],[0,`𝒸`],[0,`𝒹`],[1,`𝒻`],[1,`𝒽`],[0,`𝒾`],[0,`𝒿`],[0,`𝓀`],[0,`𝓁`],[0,`𝓂`],[0,`𝓃`],[1,`𝓅`],[0,`𝓆`],[0,`𝓇`],[0,`𝓈`],[0,`𝓉`],[0,`𝓊`],[0,`𝓋`],[0,`𝓌`],[0,`𝓍`],[0,`𝓎`],[0,`𝓏`],[52,`𝔄`],[0,`𝔅`],[1,`𝔇`],[0,`𝔈`],[0,`𝔉`],[0,`𝔊`],[2,`𝔍`],[0,`𝔎`],[0,`𝔏`],[0,`𝔐`],[0,`𝔑`],[0,`𝔒`],[0,`𝔓`],[0,`𝔔`],[1,`𝔖`],[0,`𝔗`],[0,`𝔘`],[0,`𝔙`],[0,`𝔚`],[0,`𝔛`],[0,`𝔜`],[1,`𝔞`],[0,`𝔟`],[0,`𝔠`],[0,`𝔡`],[0,`𝔢`],[0,`𝔣`],[0,`𝔤`],[0,`𝔥`],[0,`𝔦`],[0,`𝔧`],[0,`𝔨`],[0,`𝔩`],[0,`𝔪`],[0,`𝔫`],[0,`𝔬`],[0,`𝔭`],[0,`𝔮`],[0,`𝔯`],[0,`𝔰`],[0,`𝔱`],[0,`𝔲`],[0,`𝔳`],[0,`𝔴`],[0,`𝔵`],[0,`𝔶`],[0,`𝔷`],[0,`𝔸`],[0,`𝔹`],[1,`𝔻`],[0,`𝔼`],[0,`𝔽`],[0,`𝔾`],[1,`𝕀`],[0,`𝕁`],[0,`𝕂`],[0,`𝕃`],[0,`𝕄`],[1,`𝕆`],[3,`𝕊`],[0,`𝕋`],[0,`𝕌`],[0,`𝕍`],[0,`𝕎`],[0,`𝕏`],[0,`𝕐`],[1,`𝕒`],[0,`𝕓`],[0,`𝕔`],[0,`𝕕`],[0,`𝕖`],[0,`𝕗`],[0,`𝕘`],[0,`𝕙`],[0,`𝕚`],[0,`𝕛`],[0,`𝕜`],[0,`𝕝`],[0,`𝕞`],[0,`𝕟`],[0,`𝕠`],[0,`𝕡`],[0,`𝕢`],[0,`𝕣`],[0,`𝕤`],[0,`𝕥`],[0,`𝕦`],[0,`𝕧`],[0,`𝕨`],[0,`𝕩`],[0,`𝕪`],[0,`𝕫`]]))}],[8906,`ff`],[0,`fi`],[0,`fl`],[0,`ffi`],[0,`ffl`]]))})),i6=s((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.escapeText=e.escapeAttribute=e.escapeUTF8=e.escape=e.encodeXML=e.getCodePoint=e.xmlReplacer=void 0,e.xmlReplacer=/["&'<>$\x80-\uFFFF]/g;var t=new Map([[34,`"`],[38,`&`],[39,`'`],[60,`<`],[62,`>`]]);e.getCodePoint=String.prototype.codePointAt==null?function(e,t){return(e.charCodeAt(t)&64512)==55296?(e.charCodeAt(t)-55296)*1024+e.charCodeAt(t+1)-56320+65536:e.charCodeAt(t)}:function(e,t){return e.codePointAt(t)};function n(n){for(var r=``,i=0,a;(a=e.xmlReplacer.exec(n))!==null;){var o=a.index,s=n.charCodeAt(o),c=t.get(s);c===void 0?(r+=`${n.substring(i,o)}&#x${(0,e.getCodePoint)(n,o).toString(16)};`,i=e.xmlReplacer.lastIndex+=Number((s&64512)==55296)):(r+=n.substring(i,o)+c,i=o+1)}return r+n.substr(i)}e.encodeXML=n,e.escape=n;function r(e,t){return function(n){for(var r,i=0,a=``;r=e.exec(n);)i!==r.index&&(a+=n.substring(i,r.index)),a+=t.get(r[0].charCodeAt(0)),i=r.index+1;return a+n.substring(i)}}e.escapeUTF8=r(/[&<>'"]/g,t),e.escapeAttribute=r(/["&\u00A0]/g,new Map([[34,`"`],[38,`&`],[160,` `]])),e.escapeText=r(/[&<>\u00A0]/g,new Map([[38,`&`],[60,`<`],[62,`>`],[160,` `]]))})),a6=s((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,"__esModule",{value:!0}),e.encodeNonAsciiHTML=e.encodeHTML=void 0;var n=t(uae()),r=i6(),i=/[\t\n!-,./:-@[-`\f{-}$\x80-\uFFFF]/g;function a(e){return s(i,e)}e.encodeHTML=a;function o(e){return s(r.xmlReplacer,e)}e.encodeNonAsciiHTML=o;function s(e,t){for(var i=``,a=0,o;(o=e.exec(t))!==null;){var s=o.index;i+=t.substring(a,s);var c=t.charCodeAt(s),l=n.default.get(c);if(typeof l==`object`){if(s+1<t.length){var u=t.charCodeAt(s+1),d=typeof l.n==`number`?l.n===u?l.o:void 0:l.n.get(u);if(d!==void 0){i+=d,a=e.lastIndex+=1;continue}}l=l.v}if(l!==void 0)i+=l,a=s+1;else{var f=(0,r.getCodePoint)(t,s);i+=`&#x${f.toString(16)};`,a=e.lastIndex+=Number(f!==c)}}return i+t.substr(a)}})),dae=s((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.decodeXMLStrict=e.decodeHTML5Strict=e.decodeHTML4Strict=e.decodeHTML5=e.decodeHTML4=e.decodeHTMLAttribute=e.decodeHTMLStrict=e.decodeHTML=e.decodeXML=e.DecodingMode=e.EntityDecoder=e.encodeHTML5=e.encodeHTML4=e.encodeNonAsciiHTML=e.encodeHTML=e.escapeText=e.escapeAttribute=e.escapeUTF8=e.escape=e.encodeXML=e.encode=e.decodeStrict=e.decode=e.EncodingMode=e.EntityLevel=void 0;var t=r6(),n=a6(),r=i6(),i;(function(e){e[e.XML=0]=`XML`,e[e.HTML=1]=`HTML`})(i=e.EntityLevel||={});var a;(function(e){e[e.UTF8=0]=`UTF8`,e[e.ASCII=1]=`ASCII`,e[e.Extensive=2]=`Extensive`,e[e.Attribute=3]=`Attribute`,e[e.Text=4]=`Text`})(a=e.EncodingMode||={});function o(e,n){if(n===void 0&&(n=i.XML),(typeof n==`number`?n:n.level)===i.HTML){var r=typeof n==`object`?n.mode:void 0;return(0,t.decodeHTML)(e,r)}return(0,t.decodeXML)(e)}e.decode=o;function s(e,n){n===void 0&&(n=i.XML);var r=typeof n==`number`?{level:n}:n;return r.mode??=t.DecodingMode.Strict,o(e,r)}e.decodeStrict=s;function c(e,t){t===void 0&&(t=i.XML);var o=typeof t==`number`?{level:t}:t;return o.mode===a.UTF8?(0,r.escapeUTF8)(e):o.mode===a.Attribute?(0,r.escapeAttribute)(e):o.mode===a.Text?(0,r.escapeText)(e):o.level===i.HTML?o.mode===a.ASCII?(0,n.encodeNonAsciiHTML)(e):(0,n.encodeHTML)(e):(0,r.encodeXML)(e)}e.encode=c;var l=i6();Object.defineProperty(e,"encodeXML",{enumerable:!0,get:function(){return l.encodeXML}}),Object.defineProperty(e,"escape",{enumerable:!0,get:function(){return l.escape}}),Object.defineProperty(e,"escapeUTF8",{enumerable:!0,get:function(){return l.escapeUTF8}}),Object.defineProperty(e,"escapeAttribute",{enumerable:!0,get:function(){return l.escapeAttribute}}),Object.defineProperty(e,"escapeText",{enumerable:!0,get:function(){return l.escapeText}});var u=a6();Object.defineProperty(e,"encodeHTML",{enumerable:!0,get:function(){return u.encodeHTML}}),Object.defineProperty(e,"encodeNonAsciiHTML",{enumerable:!0,get:function(){return u.encodeNonAsciiHTML}}),Object.defineProperty(e,"encodeHTML4",{enumerable:!0,get:function(){return u.encodeHTML}}),Object.defineProperty(e,"encodeHTML5",{enumerable:!0,get:function(){return u.encodeHTML}});var d=r6();Object.defineProperty(e,"EntityDecoder",{enumerable:!0,get:function(){return d.EntityDecoder}}),Object.defineProperty(e,"DecodingMode",{enumerable:!0,get:function(){return d.DecodingMode}}),Object.defineProperty(e,"decodeXML",{enumerable:!0,get:function(){return d.decodeXML}}),Object.defineProperty(e,"decodeHTML",{enumerable:!0,get:function(){return d.decodeHTML}}),Object.defineProperty(e,"decodeHTMLStrict",{enumerable:!0,get:function(){return d.decodeHTMLStrict}}),Object.defineProperty(e,"decodeHTMLAttribute",{enumerable:!0,get:function(){return d.decodeHTMLAttribute}}),Object.defineProperty(e,"decodeHTML4",{enumerable:!0,get:function(){return d.decodeHTML}}),Object.defineProperty(e,"decodeHTML5",{enumerable:!0,get:function(){return d.decodeHTML}}),Object.defineProperty(e,"decodeHTML4Strict",{enumerable:!0,get:function(){return d.decodeHTMLStrict}}),Object.defineProperty(e,"decodeHTML5Strict",{enumerable:!0,get:function(){return d.decodeHTMLStrict}}),Object.defineProperty(e,"decodeXMLStrict",{enumerable:!0,get:function(){return d.decodeXML}})})),fae=s((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.attributeNames=e.elementNames=void 0,e.elementNames=new Map(`altGlyph.altGlyphDef.altGlyphItem.animateColor.animateMotion.animateTransform.clipPath.feBlend.feColorMatrix.feComponentTransfer.feComposite.feConvolveMatrix.feDiffuseLighting.feDisplacementMap.feDistantLight.feDropShadow.feFlood.feFuncA.feFuncB.feFuncG.feFuncR.feGaussianBlur.feImage.feMerge.feMergeNode.feMorphology.feOffset.fePointLight.feSpecularLighting.feSpotLight.feTile.feTurbulence.foreignObject.glyphRef.linearGradient.radialGradient.textPath`.split(`.`).map(function(e){return[e.toLowerCase(),e]})),e.attributeNames=new Map(`definitionURL.attributeName.attributeType.baseFrequency.baseProfile.calcMode.clipPathUnits.diffuseConstant.edgeMode.filterUnits.glyphRef.gradientTransform.gradientUnits.kernelMatrix.kernelUnitLength.keyPoints.keySplines.keyTimes.lengthAdjust.limitingConeAngle.markerHeight.markerUnits.markerWidth.maskContentUnits.maskUnits.numOctaves.pathLength.patternContentUnits.patternTransform.patternUnits.pointsAtX.pointsAtY.pointsAtZ.preserveAlpha.preserveAspectRatio.primitiveUnits.refX.refY.repeatCount.repeatDur.requiredExtensions.requiredFeatures.specularConstant.specularExponent.spreadMethod.startOffset.stdDeviation.stitchTiles.surfaceScale.systemLanguage.tableValues.targetX.targetY.textLength.viewBox.viewTarget.xChannelSelector.yChannelSelector.zoomAndPan`.split(`.`).map(function(e){return[e.toLowerCase(),e]}))})),pae=s((e=>{var t=e&&e.__assign||function(){return t=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n],t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},t.apply(this,arguments)},n=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||(`get`in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),r=e&&e.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),i=e&&e.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var i in e)i!=="default"&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return r(t,e),t};Object.defineProperty(e,"__esModule",{value:!0}),e.render=void 0;var a=i($3()),o=dae(),s=fae(),c=new Set([`style`,`script`,`xmp`,`iframe`,`noembed`,`noframes`,`plaintext`,`noscript`]);function l(e){return e.replace(/"/g,`"`)}function u(e,t){if(e){var n=(t.encodeEntities??t.decodeEntities)===!1?l:t.xmlMode||t.encodeEntities!==`utf8`?o.encodeXML:o.escapeAttribute;return Object.keys(e).map(function(r){var i=e[r]??``;return t.xmlMode===`foreign`&&(r=s.attributeNames.get(r)??r),!t.emptyAttrs&&!t.xmlMode&&i===``?r:`${r}="${n(i)}"`}).join(` `)}}var d=new Set([`area`,`base`,`basefont`,`br`,`col`,`command`,`embed`,`frame`,`hr`,`img`,`input`,`isindex`,`keygen`,`link`,`meta`,`param`,`source`,`track`,`wbr`]);function f(e,t){t===void 0&&(t={});for(var n=(`length`in e)?e:[e],r=``,i=0;i<n.length;i++)r+=p(n[i],t);return r}e.render=f,e.default=f;function p(e,t){switch(e.type){case a.Root:return f(e.children,t);case a.Doctype:case a.Directive:return _(e);case a.Comment:return b(e);case a.CDATA:return y(e);case a.Script:case a.Style:case a.Tag:return g(e,t);case a.Text:return v(e,t)}}var m=new Set([`mi`,`mo`,`mn`,`ms`,`mtext`,`annotation-xml`,`foreignObject`,`desc`,`title`]),h=new Set([`svg`,`math`]);function g(e,n){n.xmlMode===`foreign`&&(e.name=s.elementNames.get(e.name)??e.name,e.parent&&m.has(e.parent.name)&&(n=t(t({},n),{xmlMode:!1}))),!n.xmlMode&&h.has(e.name)&&(n=t(t({},n),{xmlMode:`foreign`}));var r=`<${e.name}`,i=u(e.attribs,n);return i&&(r+=` ${i}`),e.children.length===0&&(n.xmlMode?n.selfClosingTags!==!1:n.selfClosingTags&&d.has(e.name))?(n.xmlMode||(r+=` `),r+=`/>`):(r+=`>`,e.children.length>0&&(r+=f(e.children,n)),(n.xmlMode||!d.has(e.name))&&(r+=`</${e.name}>`)),r}function _(e){return`<${e.data}>`}function v(e,t){var n=e.data||``;return(t.encodeEntities??t.decodeEntities)!==!1&&!(!t.xmlMode&&e.parent&&c.has(e.parent.name))&&(n=t.xmlMode||t.encodeEntities!==`utf8`?(0,o.encodeXML)(n):(0,o.escapeText)(n)),n}function y(e){return`<![CDATA[${e.children[0].data}]]>`}function b(e){return`<!--${e.data}-->`}})),o6=s((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,"__esModule",{value:!0}),e.getOuterHTML=a,e.getInnerHTML=o,e.getText=s,e.textContent=c,e.innerText=l;var n=t6(),r=t(pae()),i=$3();function a(e,t){return(0,r.default)(e,t)}function o(e,t){return(0,n.hasChildren)(e)?e.children.map(function(e){return a(e,t)}).join(``):``}function s(e){return Array.isArray(e)?e.map(s).join(``):(0,n.isTag)(e)?e.name===`br`?`
|
|
3003
|
+
/*! tailwindcss v3.4.18 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid #bfbcd7;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:KHTeka,Helvetica Neue,HelveticaNeue,TeX Gyre Heros,TeXGyreHeros,FreeSans,Nimbus Sans L,Liberation Sans,Arimo,Helvetica,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-feature-settings:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#4b4a58;opacity:1}input::placeholder,textarea::placeholder{color:#4b4a58;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}body,html{height:100%}body{--tw-bg-opacity:1;background-color:rgb(248 249 251/var(--tw-bg-opacity,1));font-size:1rem;letter-spacing:.0125rem;line-height:120%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (min-width:1280px){body{font-size:1.125rem;line-height:120%}}body:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}button,input,optgroup,select,textarea{font-size:.875rem;letter-spacing:.0125rem;line-height:120%}@media (min-width:1280px){button,input,optgroup,select,textarea{font-size:1rem;line-height:120%}}h1{font-size:1.5rem;font-weight:500;line-height:120%}@media (min-width:1280px){h1{font-size:2rem;line-height:120%}}@media (min-width:640px){h1{font-size:3rem;letter-spacing:-.0625rem;line-height:100%}}@media (min-width:1280px){h1{font-size:3.5rem;letter-spacing:-.0625rem;line-height:100%}}h2{font-size:1.25rem;font-weight:500;line-height:120%}@media (min-width:1280px){h2{font-size:1.5rem;line-height:120%}}@media (min-width:640px){h2{font-size:2rem;letter-spacing:0;line-height:120%}}@media (min-width:1280px){h2{font-size:3rem;letter-spacing:-.0625rem;line-height:100%}}h3{font-size:1.125rem;font-weight:500;line-height:120%}@media (min-width:1280px){h3{font-size:1.25rem;line-height:120%}}@media (min-width:640px){h3{font-size:1.5rem;line-height:120%}}@media (min-width:1280px){h3{font-size:2rem;line-height:120%}}h4{font-size:1rem;font-weight:500;line-height:120%}@media (min-width:1280px){h4{font-size:1.125rem;line-height:120%}}@media (min-width:640px){h4{font-size:1.125rem;line-height:120%}}@media (min-width:1280px){h4{font-size:1.5rem;line-height:120%}}h5{font-size:.875rem;font-weight:500;line-height:120%}@media (min-width:1280px){h5{font-size:1rem;line-height:120%}}@media (min-width:640px){h5{font-size:1rem;line-height:120%}}@media (min-width:1280px){h5{font-size:1.125rem;line-height:120%}}h6{font-size:.75rem;font-weight:500;line-height:135%}@media (min-width:1280px){h6{font-size:.875rem;line-height:120%}}@media (min-width:640px){h6{font-size:.875rem;line-height:120%}}@media (min-width:1280px){h6{font-size:1rem;line-height:120%}}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1920px){.container{max-width:1920px}}.pointer-events-none{pointer-events:none}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.left-0{left:0}.right-0{right:0}.right-2{right:.5rem}.top-0{top:0}.top-1\\/2{top:50%}.my-4{margin-bottom:1rem;margin-top:1rem}.mb-1{margin-bottom:.25rem}.mb-12{margin-bottom:3rem}.mb-16{margin-bottom:4rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-7{margin-bottom:1.75rem}.mb-8{margin-bottom:2rem}.mr-2{margin-right:.5rem}.mr-4{margin-right:1rem}.mt-0\\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-8{margin-top:2rem}.line-clamp-1{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-5{height:1.25rem}.h-9{height:2.25rem}.h-full{height:100%}.min-h-\\[calc\\(100vh-83px\\)\\]{min-height:calc(100vh - 83px)}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.w-10{width:2.5rem}.w-12{width:3rem}.w-5{width:1.25rem}.w-9{width:2.25rem}.w-\\[calc\\(100\\%-theme\\(space\\.2\\)-theme\\(space\\.2\\)\\)\\]{width:calc(100% - 1rem)}.w-auto{width:auto}.w-full{width:100%}.min-w-0{min-width:0}.max-w-\\[1295px\\]{max-width:1295px}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.grow{flex-grow:1}.-translate-y-1\\/2{--tw-translate-y:-50%}.-translate-y-1\\/2,.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.flex-col{flex-direction:column}.\\!flex-nowrap{flex-wrap:nowrap!important}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.\\!justify-between{justify-content:space-between!important}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.5rem*var(--tw-space-x-reverse))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1rem*var(--tw-space-x-reverse))}.space-y-1\\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.375rem*var(--tw-space-y-reverse));margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.75rem*var(--tw-space-y-reverse));margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.5rem*var(--tw-space-y-reverse));margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)))}.overflow-hidden,.truncate{overflow:hidden}.truncate{text-overflow:ellipsis;white-space:nowrap}.break-all{word-break:break-all}.rounded-2xl{border-radius:1.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.625rem}.rounded-md{border-radius:.375rem}.rounded-r-lg{border-bottom-right-radius:.625rem;border-top-right-radius:.625rem}.border{border-width:1px}.border-y{border-top-width:1px}.border-b,.border-y{border-bottom-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-gray-100{--tw-border-opacity:1;border-color:rgb(248 249 251/var(--tw-border-opacity,1))}.border-gray-200{--tw-border-opacity:1;border-color:rgb(191 188 215/var(--tw-border-opacity,1))}.border-gray-200\\/50{border-color:rgba(191,188,215,.5)}.border-gray-300{--tw-border-opacity:1;border-color:rgb(136 134 159/var(--tw-border-opacity,1))}.border-gray-400{--tw-border-opacity:1;border-color:rgb(75 74 88/var(--tw-border-opacity,1))}.border-gray-500{--tw-border-opacity:1;border-color:rgb(59 57 70/var(--tw-border-opacity,1))}.border-red{--tw-border-opacity:1;border-color:rgb(252 90 90/var(--tw-border-opacity,1))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(248 249 251/var(--tw-bg-opacity,1))}.bg-gray-200\\/40{background-color:rgba(191,188,215,.4)}.bg-primary{background-color:var(--primary-color)}.bg-primaryHover{background-color:var(--primary-hover)}.bg-red\\/80{background-color:rgba(252,90,90,.8)}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-cover{background-size:cover}.bg-center{background-position:50%}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-0{padding-left:0;padding-right:0}.px-10{padding-left:2.5rem;padding-right:2.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1\\.5{padding-bottom:.375rem;padding-top:.375rem}.py-10{padding-bottom:2.5rem;padding-top:2.5rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-5{padding-bottom:1.25rem;padding-top:1.25rem}.py-6{padding-bottom:1.5rem;padding-top:1.5rem}.pb-2{padding-bottom:.5rem}.pb-8{padding-bottom:2rem}.pl-12{padding-left:3rem}.pl-6{padding-left:1.5rem}.pr-12{padding-right:3rem}.pr-6{padding-right:1.5rem}.pr-8{padding-right:2rem}.pt-0{padding-top:0}.pt-2{padding-top:.5rem}.pt-2\\.5{padding-top:.625rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.indent-\\[5px\\]{text-indent:5px}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.\\!text-base{font-size:1rem!important;line-height:120%!important}.\\!text-xs{font-size:.75rem!important;line-height:135%!important}.text-2xl{font-size:1.5rem;line-height:120%}.text-3xl{font-size:2rem;line-height:120%}.text-base{font-size:1rem;line-height:120%}.text-lg{font-size:1.125rem;line-height:120%}.text-sm{font-size:.875rem;line-height:120%}.text-xl{font-size:1.25rem;line-height:120%}.text-xs{font-size:.75rem;line-height:135%}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.leading-\\[0\\]{line-height:0}.leading-none{line-height:1}.leading-tight{line-height:1.25}.tracking-tight{letter-spacing:-.025em}.text-\\[\\#B2B2B2\\]{--tw-text-opacity:1;color:rgb(178 178 178/var(--tw-text-opacity,1))}.text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.text-gray-200{--tw-text-opacity:1;color:rgb(191 188 215/var(--tw-text-opacity,1))}.text-gray-300{--tw-text-opacity:1;color:rgb(136 134 159/var(--tw-text-opacity,1))}.text-gray-400{--tw-text-opacity:1;color:rgb(75 74 88/var(--tw-text-opacity,1))}.text-gray-500{--tw-text-opacity:1;color:rgb(59 57 70/var(--tw-text-opacity,1))}.text-gray-800{--tw-text-opacity:1;color:rgb(20 20 26/var(--tw-text-opacity,1))}.text-green{--tw-text-opacity:1;color:rgb(54 191 118/var(--tw-text-opacity,1))}.text-primary{color:var(--primary-color)}.text-red{--tw-text-opacity:1;color:rgb(252 90 90/var(--tw-text-opacity,1))}.text-textOnPrimary{color:var(--text-on-primary)}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.accent-\\[\\#4F2D7F\\]{accent-color:#4f2d7f}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-90{opacity:.9}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.ring-offset-white{--tw-ring-offset-color:#fff}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-200{transition-duration:.2s}.row-up-left{align-content:flex-start;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start}.row-left{justify-content:flex-start}.row,.row-left{align-content:center;align-items:center;display:flex;flex-direction:row;flex-wrap:wrap}.row{justify-content:center}.column-left{align-items:flex-start}.column,.column-left{display:flex;flex-direction:column;justify-content:center}.column{align-items:center}@media (min-width:1280px){.text-5xl{font-size:5.125rem;letter-spacing:-.125rem;line-height:100%}.text-4xl{font-size:3.5rem}.text-3xl,.text-4xl{letter-spacing:-.0625rem;line-height:100%}.text-3xl{font-size:3rem}.text-2xl{font-size:2rem}.text-2xl,.text-xl{line-height:120%}.text-xl{font-size:1.5rem}.text-lg{font-size:1.25rem}.text-base,.text-lg{line-height:120%}.text-base{font-size:1.125rem}.text-sm{font-size:1rem}.text-sm,.text-xs{line-height:120%}.text-xs{font-size:.875rem}}:root{--primary-color:#7d68f4;--primary-hover:#9786f6;--text-on-primary:#fff}svg{transform:translate3d(var(--tw-translate-x),var(--tw-translate-y),0) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}*,:after,:before{text-underline-offset:4px}input[type=number],input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;-moz-appearance:textfield!important}.btn.is-loading{cursor:not-allowed;opacity:.4;pointer-events:none}.btn .btn-spinner,.btn.is-loading .btn-label{opacity:0;visibility:hidden}.btn.is-loading .btn-spinner{opacity:1;visibility:visible}[class*=" uicon-"],[class^=uicon-]{letter-spacing:0;line-height:100%}.file\\:border-0::file-selector-button{border-width:0}.file\\:text-sm::file-selector-button{font-size:.875rem;line-height:120%}.file\\:font-medium::file-selector-button{font-weight:500}.placeholder\\:normal-case::-moz-placeholder{text-transform:none}.placeholder\\:normal-case::placeholder{text-transform:none}.placeholder\\:text-gray-300::-moz-placeholder{--tw-text-opacity:1;color:rgb(136 134 159/var(--tw-text-opacity,1))}.placeholder\\:text-gray-300::placeholder{--tw-text-opacity:1;color:rgb(136 134 159/var(--tw-text-opacity,1))}.placeholder\\:text-gray-500::-moz-placeholder{--tw-text-opacity:1;color:rgb(59 57 70/var(--tw-text-opacity,1))}.placeholder\\:text-gray-500::placeholder{--tw-text-opacity:1;color:rgb(59 57 70/var(--tw-text-opacity,1))}.first\\:rounded-l-md:first-child{border-bottom-left-radius:.375rem;border-top-left-radius:.375rem}.first\\:border-l:first-child{border-left-width:1px}.last\\:rounded-r-md:last-child{border-bottom-right-radius:.375rem;border-top-right-radius:.375rem}.hover\\:bg-black\\/5:hover{background-color:rgba(0,0,0,.05)}.hover\\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(248 249 251/var(--tw-bg-opacity,1))}.hover\\:bg-gray-200:hover{--tw-bg-opacity:1;background-color:rgb(191 188 215/var(--tw-bg-opacity,1))}.hover\\:bg-gray-200\\/75:hover{background-color:rgba(191,188,215,.75)}.hover\\:bg-primaryHover:hover{background-color:var(--primary-hover)}.hover\\:bg-red\\/90:hover{background-color:rgba(252,90,90,.9)}.hover\\:text-gray-700:hover{--tw-text-opacity:1;color:rgb(30 30 39/var(--tw-text-opacity,1))}.hover\\:text-primaryHover:hover{color:var(--primary-hover)}.hover\\:underline:hover{text-decoration-line:underline}.hover\\:opacity-100:hover{opacity:1}.hover\\:brightness-90:hover{--tw-brightness:brightness(.9);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.focus\\:z-10:focus{z-index:10}.focus\\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\\:ring:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\\:ring-1:focus,.focus\\:ring:focus{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\\:ring-1:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\\:ring-offset-2:focus{--tw-ring-offset-width:2px}.focus-visible\\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.disabled\\:pointer-events-none:disabled{pointer-events:none}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:opacity-50:disabled{opacity:.5}.group[open] .group-open\\:rotate-90{--tw-rotate:90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.peer:disabled~.peer-disabled\\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\\:opacity-70{opacity:.7}.has-\\[\\:disabled\\]\\:opacity-50:has(:disabled){opacity:.5}.dark\\:border-gray-500:is(.dark *){--tw-border-opacity:1;border-color:rgb(59 57 70/var(--tw-border-opacity,1))}.dark\\:border-gray-600:is(.dark *){--tw-border-opacity:1;border-color:rgb(40 40 52/var(--tw-border-opacity,1))}.dark\\:border-gray-700:is(.dark *){--tw-border-opacity:1;border-color:rgb(30 30 39/var(--tw-border-opacity,1))}.dark\\:bg-black:is(.dark *){--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.dark\\:bg-gray-600:is(.dark *){--tw-bg-opacity:1;background-color:rgb(40 40 52/var(--tw-bg-opacity,1))}.dark\\:bg-gray-700:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 30 39/var(--tw-bg-opacity,1))}.dark\\:bg-gray-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(20 20 26/var(--tw-bg-opacity,1))}.dark\\:text-\\[\\#201a41\\]:is(.dark *){--tw-text-opacity:1;color:rgb(32 26 65/var(--tw-text-opacity,1))}.dark\\:text-gray-300:is(.dark *){--tw-text-opacity:1;color:rgb(136 134 159/var(--tw-text-opacity,1))}.dark\\:text-gray-400:is(.dark *){--tw-text-opacity:1;color:rgb(75 74 88/var(--tw-text-opacity,1))}.dark\\:text-white:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.dark\\:ring-offset-gray-900:is(.dark *){--tw-ring-offset-color:#08080e}.dark\\:placeholder\\:text-gray-400:is(.dark *)::-moz-placeholder{--tw-text-opacity:1;color:rgb(75 74 88/var(--tw-text-opacity,1))}.dark\\:placeholder\\:text-gray-400:is(.dark *)::placeholder{--tw-text-opacity:1;color:rgb(75 74 88/var(--tw-text-opacity,1))}.dark\\:hover\\:bg-black\\/90:hover:is(.dark *){background-color:rgba(0,0,0,.9)}.dark\\:hover\\:bg-gray-700:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 30 39/var(--tw-bg-opacity,1))}.dark\\:hover\\:bg-gray-800:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(20 20 26/var(--tw-bg-opacity,1))}@media (min-width:640px){.sm\\:absolute{position:absolute}.sm\\:left-4{left:1rem}.sm\\:top-1\\/2{top:50%}.sm\\:mt-4{margin-top:1rem}.sm\\:inline{display:inline}.sm\\:h-6{height:1.5rem}.sm\\:min-h-\\[700px\\]{min-height:700px}.sm\\:w-6{width:1.5rem}.sm\\:w-\\[calc\\(100\\%-theme\\(space\\.16\\)-theme\\(space\\.16\\)\\)\\]{width:calc(100% - 8rem)}.sm\\:w-auto{width:auto}.sm\\:w-full{width:100%}.sm\\:max-w-md{max-width:28rem}.sm\\:-translate-y-1\\/2{--tw-translate-y:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.sm\\:flex-col{flex-direction:column}.sm\\:justify-normal{justify-content:normal}.sm\\:space-x-0>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(0px*(1 - var(--tw-space-x-reverse)));margin-right:calc(0px*var(--tw-space-x-reverse))}.sm\\:space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}.sm\\:bg-fixed{background-attachment:fixed}.sm\\:bg-left-top{background-position:0 0}.sm\\:px-10{padding-left:2.5rem;padding-right:2.5rem}.sm\\:px-14{padding-left:3.5rem;padding-right:3.5rem}.sm\\:py-14{padding-bottom:3.5rem;padding-top:3.5rem}.sm\\:py-4{padding-bottom:1rem;padding-top:1rem}.sm\\:pt-16{padding-top:4rem}.sm\\:text-2xl{font-size:1.5rem;line-height:120%}.sm\\:text-base{font-size:1rem;line-height:120%}}@media (min-width:1280px){.md\\:min-w-\\[448px\\]{min-width:448px}.md\\:p-10{padding:2.5rem}.md\\:py-10{padding-bottom:2.5rem;padding-top:2.5rem}.md\\:pl-10{padding-left:2.5rem}.md\\:pl-20{padding-left:5rem}.md\\:pr-10{padding-right:2.5rem}.md\\:pr-20{padding-right:5rem}.md\\:text-3xl{font-size:2rem;line-height:120%}.md\\:text-base{font-size:1rem;line-height:120%}.md\\:text-sm{font-size:.875rem;line-height:120%}.md\\:text-xs{font-size:.75rem;line-height:135%}}@media (max-height:900px) and (min-width:640px){.short\\:static{position:static}.short\\:left-auto{left:auto}.short\\:top-auto{top:auto}.short\\:inline{display:inline}.short\\:hidden{display:none}.short\\:h-5{height:1.25rem}.short\\:min-h-\\[558px\\]{min-height:558px}.short\\:w-5{width:1.25rem}.short\\:flex-1{flex:1 1 0%}.short\\:translate-y-0{--tw-translate-y:0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.short\\:flex-row{flex-direction:row}.short\\:space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1rem*var(--tw-space-x-reverse))}.short\\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(0px*var(--tw-space-y-reverse));margin-top:calc(0px*(1 - var(--tw-space-y-reverse)))}.short\\:px-0{padding-left:0;padding-right:0}.short\\:py-3{padding-bottom:.75rem;padding-top:.75rem}}.\\[\\&\\>\\*\\:last-child\\]\\:mb-0>:last-child{margin-bottom:0}.\\[\\&_h1\\]\\:mb-6 h1,.\\[\\&_h2\\]\\:mb-6 h2{margin-bottom:1.5rem}`;function W3(){if(typeof document<`u`){let e=document.createElement(`style`);e.innerHTML=U3,e.setAttribute(`data-authhero-tailwind`,``),document.head.appendChild(e)}}var G3='var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r},n={Stringify:1,BeforeStream:2,Stream:3},r=(e,t)=>{let n=new String(e);return n.isEscaped=!0,n.callbacks=t,n},i=/[&<>\'"]/,a=async(e,t)=>{let n=``;t||=[];let i=await Promise.all(e);for(let e=i.length-1;n+=i[e],e--,!(e<0);e--){let r=i[e];typeof r==`object`&&t.push(...r.callbacks||[]);let a=r.isEscaped;if(r=await(typeof r==`object`?r.toString():r),typeof r==`object`&&t.push(...r.callbacks||[]),r.isEscaped??a)n+=r;else{let e=[n];o(r,e),n=e[0]}}return r(n,t)},o=(e,t)=>{let n=e.search(i);if(n===-1){t[0]+=e;return}let r,a,o=0;for(a=n;a<e.length;a++){switch(e.charCodeAt(a)){case 34:r=`"`;break;case 39:r=`'`;break;case 38:r=`&`;break;case 60:r=`<`;break;case 62:r=`>`;break;default:continue}t[0]+=e.substring(o,a)+r,o=a+1}t[0]+=e.substring(o,a)},s=e=>{let t=e.callbacks;if(!t?.length)return e;let r=[e],i={};return t.forEach(e=>e({phase:n.Stringify,buffer:r,context:i})),r[0]},c=async(e,t,n,i,a)=>{typeof e==`object`&&!(e instanceof String)&&(e instanceof Promise||(e=e.toString()),e instanceof Promise&&(e=await e));let o=e.callbacks;if(!o?.length)return Promise.resolve(e);a?a[0]+=e:a=[e];let s=Promise.all(o.map(e=>e({phase:t,buffer:a,context:i}))).then(e=>Promise.all(e.filter(Boolean).map(e=>c(e,t,!1,i,a))).then(()=>a[0]));return n?r(await s,o):s},l=Symbol(`RENDERER`),u=Symbol(`ERROR_HANDLER`),d=Symbol(`STASH`),f=Symbol(`INTERNAL`),p=Symbol(`MEMO`),m=Symbol(`PERMALINK`),h=e=>(e[f]=!0,e),g=e=>({value:t,children:n})=>{if(!n)return;let r={children:[{tag:h(()=>{e.push(t)}),props:{}}]};Array.isArray(n)?r.children.push(...n.flat()):r.children.push(n),r.children.push({tag:h(()=>{e.pop()}),props:{}});let i={tag:``,props:r,type:``};return i[u]=t=>{throw e.pop(),t},i},_=e=>{let t=[e],n=g(t);return n.values=t,n.Provider=n,v.push(n),n},v=[],y=e=>{let t=[e],n=(e=>{t.push(e.value);let n;try{n=e.children?(Array.isArray(e.children)?new je(``,{},e.children):e.children).toString():``}catch(e){throw t.pop(),e}return n instanceof Promise?n.finally(()=>t.pop()).then(e=>r(e,e.callbacks)):(t.pop(),r(n))});return n.values=t,n.Provider=n,n[l]=g(t),v.push(n),n},b=e=>e.values.at(-1),x={title:[],script:[`src`],style:[`data-href`],link:[`href`],meta:[`name`,`httpEquiv`,`charset`,`itemProp`]},S={},C=`data-precedence`,ee=e=>e.rel===`stylesheet`&&`precedence`in e,te=(e,t)=>e===`link`?t:x[e].length>0,w=e=>Array.isArray(e)?e:[e],T=t({button:()=>pe,form:()=>ue,input:()=>fe,link:()=>se,meta:()=>ce,script:()=>ae,style:()=>oe,title:()=>ie}),ne=new WeakMap,re=(e,t,n,r)=>({buffer:i,context:a})=>{if(!i)return;let o=ne.get(a)||{};ne.set(a,o);let s=o[e]||=[],c=!1,l=x[e],u=te(e,r!==void 0);if(u){LOOP:for(let[,t]of s)if(!(e===`link`&&!(t.rel===`stylesheet`&&t[`data-precedence`]!==void 0))){for(let e of l)if((t?.[e]??null)===n?.[e]){c=!0;break LOOP}}}if(c?i[0]=i[0].replaceAll(t,``):u||e===`link`?s.push([t,n,r]):s.unshift([t,n,r]),i[0].indexOf(`</head>`)!==-1){let t;if(e===`link`||r!==void 0){let e=[];t=s.map(([t,,n],r)=>{if(n===void 0)return[t,2**53-1,r];let i=e.indexOf(n);return i===-1&&(e.push(n),i=e.length-1),[t,i,r]}).sort((e,t)=>e[1]-t[1]||e[2]-t[2]).map(([e])=>e)}else t=s.map(([e])=>e);t.forEach(e=>{i[0]=i[0].replaceAll(e,``)}),i[0]=i[0].replace(/(?=<\\/head>)/,t.join(``))}},E=(e,t,n)=>r(new F(e,n,w(t??[])).toString()),D=(e,t,n,i)=>{if(`itemProp`in n)return E(e,t,n);let{precedence:a,blocking:o,...s}=n;a=i?a??``:void 0,i&&(s[C]=a);let c=new F(e,s,w(t||[])).toString();return c instanceof Promise?c.then(t=>r(c,[...t.callbacks||[],re(e,t,s,a)])):r(c,[re(e,c,s,a)])},ie=({children:e,...t})=>{let n=N();if(n){let r=b(n);if(r===`svg`||r===`head`)return new F(`title`,t,w(e??[]))}return D(`title`,e,t,!1)},ae=({children:e,...t})=>{let n=N();return[`src`,`async`].some(e=>!t[e])||n&&b(n)===`head`?E(`script`,e,t):D(`script`,e,t,!1)},oe=({children:e,...t})=>[`href`,`precedence`].every(e=>e in t)?(t[`data-href`]=t.href,delete t.href,D(`style`,e,t,!0)):E(`style`,e,t),se=({children:e,...t})=>[`onLoad`,`onError`].some(e=>e in t)||t.rel===`stylesheet`&&(!(`precedence`in t)||`disabled`in t)?E(`link`,e,t):D(`link`,e,t,ee(t)),ce=({children:e,...t})=>{let n=N();return n&&b(n)===`head`?E(`meta`,e,t):D(`meta`,e,t,!1)},le=(e,{children:t,...n})=>new F(e,n,w(t??[])),ue=e=>(typeof e.action==`function`&&(e.action=m in e.action?e.action[m]:void 0),le(`form`,e)),de=(e,t)=>(typeof t.formAction==`function`&&(t.formAction=m in t.formAction?t.formAction[m]:void 0),le(e,t)),fe=e=>de(`input`,e),pe=e=>de(`button`,e),me=new Map([[`className`,`class`],[`htmlFor`,`for`],[`crossOrigin`,`crossorigin`],[`httpEquiv`,`http-equiv`],[`itemProp`,`itemprop`],[`fetchPriority`,`fetchpriority`],[`noModule`,`nomodule`],[`formAction`,`formaction`]]),O=e=>me.get(e)||e,he=/[\\s"\'<>/=`\\\\\\x00-\\x1f\\x7f-\\x9f]/,k=new Set,ge=1024,_e=/^[!?]|[\\s"\'<>/=`\\\\\\x00-\\x1f\\x7f-\\x9f]/,ve=new Set,ye=256,A=(e,t,n)=>{e.size>=t&&e.clear(),e.add(n)},be=e=>ve.has(e)?!0:typeof e==`string`?e.length===0?!0:_e.test(e)?!1:(A(ve,ye,e),!0):!1,xe=e=>{if(k.has(e))return!0;let t=e.length;if(t===0)return!1;for(let n=0;n<t;n++){let t=e.charCodeAt(n);if(!(t>=97&&t<=122||t>=65&&t<=90||t>=48&&t<=57||t===45||t===95||t===46||t===58))return he.test(e)?!1:(A(k,ge,e),!0)}return A(k,ge,e),!0},Se=/[\\s"\'():;\\\\/\\[\\]{}\\x00-\\x1f\\x7f-\\x9f]/,j=new Set,Ce=1024,we=e=>{if(j.has(e))return!0;let t=e.length;if(t===0)return!1;for(let n=0;n<t;n++){let t=e.charCodeAt(n);if(!(t>=97&&t<=122||t>=65&&t<=90||t>=48&&t<=57||t===45||t===95))return Se.test(e)?!1:(A(j,Ce,e),!0)}return A(j,Ce,e),!0},Te=/[;"\'\\\\/\\[\\](){}]/,Ee=e=>{if(!Te.test(e))return!1;let t=0,n=[];for(let r=0,i=e.length;r<i;r++){let a=e.charCodeAt(r);if(a===92){if(r===i-1)return!0;r++}else if(t!==0){if(a===10||a===12||a===13)return!0;a===t&&(t=0)}else if(a===47&&e.charCodeAt(r+1)===42){let t=e.indexOf(`*/`,r+2);if(t===-1)return!0;r=t+1}else if(a===34||a===39)t=a;else if(a===40)n.push(41);else if(a===91)n.push(93);else if(a===123||a===125)return!0;else if(a===41||a===93){if(n[n.length-1]!==a)return!0;n.pop()}else if(a===59&&n.length===0)return!0}return t!==0||n.length!==0},De=(e,t)=>{for(let[n,r]of Object.entries(e)){let e=n[0]===`-`||!/[A-Z]/.test(n)?n:n.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`);if(!we(e))continue;if(r==null){t(e,null);continue}let i;if(typeof r==`number`)i=e.match(/^(?:a|border-im|column(?:-c|s)|flex(?:$|-[^b])|grid-(?:ar|[^a])|font-w|li|or|sca|st|ta|wido|z)|ty$/)?`${r}`:`${r}px`;else if(typeof r==`string`){if(Ee(r))continue;i=r}else continue;t(e,i)}},M=void 0,N=()=>M,Oe=e=>/[A-Z]/.test(e)&&e.match(/^(?:al|basel|clip(?:Path|Rule)$|co|do|fill|fl|fo|gl|let|lig|i|marker[EMS]|o|pai|pointe|sh|st[or]|text[^L]|tr|u|ve|w)/)?e.replace(/([A-Z])/g,`-$1`).toLowerCase():e,ke=[`area`,`base`,`br`,`col`,`embed`,`hr`,`img`,`input`,`keygen`,`link`,`meta`,`param`,`source`,`track`,`wbr`],Ae=`allowfullscreen.async.autofocus.autoplay.checked.controls.default.defer.disabled.download.formnovalidate.hidden.inert.ismap.itemscope.loop.multiple.muted.nomodule.novalidate.open.playsinline.readonly.required.reversed.selected`.split(`.`),P=(e,t)=>{for(let n=0,r=e.length;n<r;n++){let r=e[n];if(typeof r==`string`)o(r,t);else if(typeof r==`boolean`||r==null)continue;else r instanceof F?r.toStringToBuffer(t):typeof r==`number`||r.isEscaped?t[0]+=r:r instanceof Promise?t.unshift(``,r):P(r,t)}},F=class{tag;props;key;children;isEscaped=!0;localContexts;constructor(e,t,n){if(typeof e!=`function`&&!be(e))throw Error(`Invalid JSX tag name: ${e}`);this.tag=e,this.props=t,this.children=n}get type(){return this.tag}get ref(){return this.props.ref||null}toString(){let e=[``];this.localContexts?.forEach(([e,t])=>{e.values.push(t)});try{this.toStringToBuffer(e)}finally{this.localContexts?.forEach(([e])=>{e.values.pop()})}return e.length===1?`callbacks`in e?s(r(e[0],e.callbacks)).toString():e[0]:a(e,e.callbacks)}toStringToBuffer(e){let t=this.tag,n=this.props,{children:i}=this;e[0]+=`<${t}`;let a=t===`svg`||M&&b(M)===`svg`?e=>Oe(O(e)):e=>O(e);for(let[s,c]of Object.entries(n))if(s=a(s),xe(s)&&s!==`children`){if(s===`style`&&typeof c==`object`){let t=``;De(c,(e,n)=>{n!=null&&(t+=`${t?`;`:``}${e}:${n}`)}),e[0]+=` style="`,o(t,e),e[0]+=`"`}else if(typeof c==`string`)e[0]+=` ${s}="`,o(c,e),e[0]+=`"`;else if(c!=null)if(typeof c==`number`||c.isEscaped)e[0]+=` ${s}="${c}"`;else if(typeof c==`boolean`&&Ae.includes(s))c&&(e[0]+=` ${s}=""`);else if(s===`dangerouslySetInnerHTML`){if(i.length>0)throw Error("Can only set one of `children` or `props.dangerouslySetInnerHTML`.");i=[r(c.__html)]}else if(c instanceof Promise)e[0]+=` ${s}="`,e.unshift(`"`,c);else if(typeof c==`function`){if(!s.startsWith(`on`)&&s!==`ref`)throw Error(`Invalid prop \'${s}\' of type \'function\' supplied to \'${t}\'.`)}else e[0]+=` ${s}="`,o(c.toString(),e),e[0]+=`"`}if(ke.includes(t)&&i.length===0){e[0]+=`/>`;return}e[0]+=`>`,P(i,e),e[0]+=`</${t}>`}},I=class extends F{toStringToBuffer(e){let{children:t}=this,n={...this.props};t.length&&(n.children=t.length===1?t[0]:t);let r=this.tag.call(null,n);if(!(typeof r==`boolean`||r==null))if(r instanceof Promise)if(v.length===0)e.unshift(``,r);else{let t=v.map(e=>[e,e.values.at(-1)]);e.unshift(``,r.then(e=>(e instanceof F&&(e.localContexts=t),e)))}else r instanceof F?r.toStringToBuffer(e):typeof r==`number`||r.isEscaped?(e[0]+=r,r.callbacks&&(e.callbacks||=[],e.callbacks.push(...r.callbacks))):o(r,e)}},je=class extends F{toStringToBuffer(e){P(this.children,e)}},Me=(e,t,...n)=>{t??={},n.length&&(t.children=n.length===1?n[0]:n);let r=t.key;delete t.key;let i=L(e,t,n);return i.key=r,i},Ne=!1,L=(e,t,n)=>{if(!Ne){for(let e in S)T[e][l]=S[e];Ne=!0}return typeof e==`function`?new I(e,t,n):T[e]?new I(T[e],t,n):e===`svg`||e===`head`?(M||=y(``),new F(e,t,[new I(M,{value:e},n)])):new F(e,t,n)},R=({children:e})=>new je(``,{children:e},Array.isArray(e)?e:e?[e]:[]),z=`_hp`,Pe={Change:`Input`,DoubleClick:`DblClick`},Fe={svg:`2000/svg`,math:`1998/Math/MathML`},B=[],Ie=new WeakMap,V=void 0,Le=()=>V,H=e=>`t`in e,Re={onClick:[`click`,!1]},ze=e=>{if(!e.startsWith(`on`))return;if(Re[e])return Re[e];let t=e.match(/^on([A-Z][a-zA-Z]+?(?:PointerCapture)?)(Capture)?$/);if(t){let[,n,r]=t;return Re[e]=[(Pe[n]||n).toLowerCase(),!!r]}},Be=(e,t)=>V&&e instanceof SVGElement&&/[A-Z]/.test(t)&&(t in e.style||t.match(/^(?:o|pai|str|u|ve)/))?t.replace(/([A-Z])/g,`-$1`).toLowerCase():t,Ve=e=>e==null||e===!1?null:e,He=(e,t)=>{`value`in t&&(e.value=Ve(t.value),!e.multiple&&e.selectedIndex===-1&&(e.selectedIndex=0))},Ue=e=>e instanceof DOMException&&e.name===`InvalidCharacterError`,We=(e,t,n)=>{t||={};for(let r in t){let i=t[r];if(r!==`children`&&(!n||n[r]!==i)){r=O(r);let t=ze(r);if(t){if(n?.[r]!==i&&(n&&e.removeEventListener(t[0],n[r],t[1]),i!=null)){if(typeof i!=`function`)throw Error(`Event handler for "${r}" is not a function`);e.addEventListener(t[0],i,t[1])}}else if(r===`dangerouslySetInnerHTML`&&i)e.innerHTML=i.__html;else if(r===`ref`){let t;typeof i==`function`?t=i(e)||(()=>i(null)):i&&`current`in i&&(i.current=e,t=()=>i.current=null),Ie.set(e,t)}else if(r===`style`){let t=e.style;typeof i==`string`?t.cssText=i:(t.cssText=``,i!=null&&De(i,t.setProperty.bind(t)))}else{if(r===`value`){let t=e.nodeName;if(t===`SELECT`)continue;if((t===`INPUT`||t===`TEXTAREA`)&&(e.value=Ve(i),t===`TEXTAREA`)){e.textContent=i;continue}}else (r===`checked`&&e.nodeName===`INPUT`||r===`selected`&&e.nodeName===`OPTION`)&&(e[r]=i);let t=Be(e,r);try{i==null||i===!1?e.removeAttribute(t):i===!0?e.setAttribute(t,``):typeof i==`string`||typeof i==`number`?e.setAttribute(t,i):e.setAttribute(t,i.toString())}catch(e){if(!Ue(e))throw e}}}}if(n)for(let r in n){let i=n[r];if(r!==`children`&&!(r in t)){r=O(r);let t=ze(r);if(t)e.removeEventListener(t[0],i,t[1]);else if(r===`ref`)Ie.get(e)?.();else try{e.removeAttribute(Be(e,r))}catch(e){if(!Ue(e))throw e}}}},Ge=(e,t)=>{t[d][0]=0,B.push([e,t]);let n=t.tag[l]||t.tag,r=n.defaultProps?{...n.defaultProps,...t.props}:t.props;try{return[n.call(null,r)]}finally{B.pop()}},Ke=(e,t,n,r,i)=>{e.vR?.length&&(r.push(...e.vR),delete e.vR),typeof e.tag==`function`&&e[d][1][1]?.forEach(e=>i.push(e)),e.vC.forEach(e=>{if(H(e))n.push(e);else if(typeof e.tag==`function`||e.tag===``){e.c=t;let a=n.length;if(Ke(e,t,n,r,i),e.s){for(let e=a;e<n.length;e++)n[e].s=!0;e.s=!1}}else n.push(e),e.vR?.length&&(r.push(...e.vR),delete e.vR)})},qe=e=>{for(;e&&(e.tag===z||!e.e);)e=e.tag===z||!e.vC?.[0]?e.nN:e.vC[0];return e?.e},Je=e=>{H(e)||(e[d]?.[1][1]?.forEach(e=>e[2]?.()),Ie.get(e.e)?.(),e.p===2&&e.vC?.forEach(e=>e.p=2),e.vC?.forEach(Je)),e.p||(e.e?.remove(),delete e.e),typeof e.tag==`function`&&(K.delete(e),W.delete(e),delete e[d][3],e.a=!0)},U=(e,t,n)=>{e.c=t,Ze(e,t,n)},Ye=(e,t)=>{if(t){for(let n=0,r=e.length;n<r;n++)if(e[n]===t)return n}},Xe=Symbol(),Ze=(e,t,n)=>{let r=[],i=[],a=[];Ke(e,t,r,i,a),i.forEach(Je);let o=n?void 0:t.childNodes,s,c=null;if(n)s=-1;else if(!o.length)s=0;else{let t=Ye(o,qe(e.nN));t===void 0?s=Ye(o,r.find(e=>e.tag!==z&&e.e)?.e)??-1:(c=o[t],s=t),s===-1&&(n=!0)}for(let e=0,i=r.length;e<i;e++,s++){let i=r[e],a;if(i.s&&i.e)a=i.e,i.s=!1;else{let e=n||!i.e;H(i)?(i.e&&i.d&&(i.e.textContent=i.t),i.d=!1,a=i.e||=document.createTextNode(i.t)):(a=i.e||=i.n?document.createElementNS(i.n,i.tag):document.createElement(i.tag),We(a,i.props,i.pP),Ze(i,a,e),i.tag===`select`&&He(a,i.props))}i.tag===z?s--:n?a.parentNode||t.appendChild(a):o[s]!==a&&o[s-1]!==a&&(o[s+1]===a?t.appendChild(o[s]):t.insertBefore(a,c||o[s]||null))}if(e.pP&&=void 0,a.length){let e=[],t=[];a.forEach(([,n,,r,i])=>{n&&e.push(n),r&&t.push(r),i?.()}),e.forEach(e=>e()),t.length&&requestAnimationFrame(()=>{t.forEach(e=>e())})}},Qe=(e,t)=>!!(e&&e.length===t.length&&e.every((e,n)=>e[1]===t[n][1])),W=new WeakMap,G=(e,t,n)=>{let r=!n&&t.pC;n&&(t.pC||=t.vC);let i;try{n||=typeof t.tag==`function`?Ge(e,t):w(t.props.children),n[0]?.tag===``&&n[0][u]&&(i=n[0][u],e[5].push([e,i,t]));let a=r?[...t.pC]:t.vC?[...t.vC]:void 0,o=[],s;for(let r=0;r<n.length;r++){if(Array.isArray(n[r])){n.splice(r,1,...n[r].flat(1/0)),r--;continue}let i=$e(n[r]);if(i){typeof i.tag==`function`&&!i.tag[f]&&(v.length>0&&(i[d][2]=v.map(e=>[e,e.values.at(-1)])),e[5]?.length&&(i[d][3]=e[5].at(-1)));let n;if(a&&a.length){let e=a.findIndex(H(i)?e=>H(e):i.key===void 0?e=>e.tag===i.tag:e=>e.key===i.key&&e.tag===i.tag);e!==-1&&(n=a[e],a.splice(e,1))}if(n)if(H(i))n.t!==i.t&&(n.t=i.t,n.d=!0),i=n;else{let e=n.pP=n.props;if(n.props=i.props,n.f||=i.f||t.f,typeof i.tag==`function`){let t=n[d][2];n[d][2]=i[d][2]||[],n[d][3]=i[d][3],!n.f&&((n.o||n)===i.o||n.tag[p]?.(e,n.props))&&Qe(t,n[d][2])&&(n.s=!0)}i=n}else if(!H(i)&&V){let e=b(V);e&&(i.n=e)}if(!H(i)&&!i.s&&(G(e,i),delete i.f),o.push(i),s&&!s.s&&!i.s)for(let e=s;e&&!H(e);e=e.vC?.at(-1))e.nN=i;s=i}}t.vR=r?[...t.vC,...a||[]]:a||[],t.vC=o,r&&delete t.pC}catch(n){if(t.f=!0,n===Xe){if(i)return;throw n}let[r,a,o]=t[d]?.[3]||[];if(a){let t=()=>q([0,!1,e[2]],o),i=W.get(o)||[];i.push(t),W.set(o,i);let s=a(n,()=>{let e=W.get(o);if(e){let n=e.indexOf(t);if(n!==-1)return e.splice(n,1),t()}});if(s){if(e[0]===1)e[1]=!0;else if(G(e,o,[s]),(a.length===1||e!==r)&&o.c){U(o,o.c,!1);return}throw Xe}}throw n}finally{i&&e[5].pop()}},$e=e=>{if(!(e==null||typeof e==`boolean`)){if(typeof e==`string`||typeof e==`number`)return{t:e.toString(),d:!0};if(`vR`in e&&(e={tag:e.tag,props:e.props,key:e.key,f:e.f,type:e.tag,ref:e.props.ref,o:e.o||e}),typeof e.tag==`function`)e[d]=[0,[]];else{let t=Fe[e.tag];t&&(V||=_(``),e.props.children=[{tag:V,props:{value:e.n=`http://www.w3.org/${t}`,children:e.props.children}}])}return e}},et=(e,t,n)=>{e.c===t&&(e.c=n,e.vC.forEach(e=>et(e,t,n)))},tt=(e,t)=>{t[d][2]?.forEach(([e,t])=>{e.values.push(t)});try{G(e,t,void 0)}catch{return}if(t.a){delete t.a;return}t[d][2]?.forEach(([e])=>{e.values.pop()}),(e[0]!==1||!e[1])&&U(t,t.c,!1)},K=new WeakMap,nt=[],q=async(e,t)=>{e[5]||=[];let n=K.get(t);n&&n[0](void 0);let r,i=new Promise(e=>r=e);if(K.set(t,[r,()=>{e[2]?e[2](e,t,e=>{tt(e,t)}).then(()=>r(t)):(tt(e,t),r(t))}]),nt.length)nt.at(-1).add(t);else{await Promise.resolve();let e=K.get(t);e&&(K.delete(t),e[1]())}return i},rt=(e,t)=>{let n=[];n[5]=[],n[4]=!0,G(n,e,void 0),n[4]=!1;let r=document.createDocumentFragment();U(e,r,!0),et(e,r,t),t.replaceChildren(r)},it=(e,t,n)=>({tag:z,props:{children:e},key:n,e:t,p:1}),at=0,ot=2,st=3,ct=new WeakMap,lt=(e,t)=>!e||!t||e.length!==t.length||t.some((t,n)=>t!==e[n]),ut=void 0,dt=[],ft=e=>{let t=()=>typeof e==`function`?e():e,n=B.at(-1);if(!n)return[t(),()=>{}];let[,r]=n,i=r[d][1][at]||=[],a=r[d][0]++;return i[a]||=[t(),e=>{let t=ut,n=i[a];if(typeof e==`function`&&(e=e(n[0])),!Object.is(e,n[0]))if(n[0]=e,dt.length){let[e,n]=dt.at(-1);Promise.all([e===3?r:q([e,!1,t],r),n]).then(([n])=>{if(!n||!(e===2||e===3))return;let r=n.vC;requestAnimationFrame(()=>{setTimeout(()=>{r===n.vC&&q([+(e===3),!1,t],n)})})})}else q([0,!1,t],r)}]},pt=(e,t,n)=>{let r=B.at(-1);if(!r)return;let[,i]=r,a=i[d][1][1]||=[],o=i[d][0]++,[s,,c]=a[o]||=[];if(lt(s,n)){c&&c();let r=()=>{i[e]=void 0,i[2]=t()},i=[n,void 0,void 0,void 0,void 0];i[e]=r,a[o]=i}},mt=(e,t)=>pt(3,e,t),ht=(e,t)=>{let n=B.at(-1);if(!n)return e;let[,r]=n,i=r[d][1][ot]||=[],a=r[d][0]++,o=i[a];return lt(o?.[1],t)?i[a]=[e,t]:e=i[a][0],e},gt=e=>{let t=ct.get(e);if(t){if(t.length===2)throw t[1];return t[0]}throw e.then(t=>ct.set(e,[t]),t=>ct.set(e,[void 0,t])),e},_t=(e,t)=>{let n=B.at(-1);if(!n)return e();let[,r]=n,i=r[d][1][st]||=[],a=r[d][0]++,o=i[a];return lt(o?.[1],t)&&(i[a]=[e(),t]),i[a][0]},vt=_({pending:!1,data:null,method:null,action:null}),yt=new Set,bt=e=>{yt.add(e),e.finally(()=>yt.delete(e))},xt=t({button:()=>Pt,clearCache:()=>St,composeRef:()=>J,form:()=>jt,input:()=>Nt,link:()=>Ot,meta:()=>kt,script:()=>Et,style:()=>Dt,title:()=>Tt}),St=()=>{Ct=Object.create(null),wt=Object.create(null)},J=(e,t)=>_t(()=>n=>{let r;e&&(typeof e==`function`?r=e(n)||(()=>{e(null)}):e&&`current`in e&&(e.current=n,r=()=>{e.current=null}));let i=t(n);return()=>{i?.(),r?.()}},[e]),Ct=Object.create(null),wt=Object.create(null),Y=(e,t,n,r,i)=>{if(t?.itemProp)return{tag:e,props:t,type:e,ref:t.ref};let a=document.head,{onLoad:o,onError:s,precedence:c,blocking:l,...u}=t,d=null,f=!1,p=x[e],m=te(e,r),h=e=>e.getAttribute(`rel`)===`stylesheet`&&e.getAttribute(`data-precedence`)!==null,g;if(m){let n=a.querySelectorAll(e);LOOP:for(let r of n)if(!(e===`link`&&!h(r))){for(let e of p)if(r.getAttribute(e)===t[e]){d=r;break LOOP}}if(!d){let n=p.reduce((e,n)=>t[n]===void 0?e:`${e}-${n}-${t[n]}`,e);f=!wt[n],d=wt[n]||=(()=>{let n=document.createElement(e);for(let e of p)t[e]!==void 0&&n.setAttribute(e,t[e]);return t.rel&&n.setAttribute(`rel`,t.rel),n})()}}else g=a.querySelectorAll(e);c=r?c??``:void 0,r&&(u[C]=c);let _=ht(t=>{if(m){if(e===`link`&&c!==void 0){let n=!1;for(let r of a.querySelectorAll(e)){let e=r.getAttribute(C);if(e===null){a.insertBefore(t,r);return}if(n&&e!==c){a.insertBefore(t,r);return}e===c&&(n=!0)}a.appendChild(t);return}let n=!1;for(let r of a.querySelectorAll(e)){if(n&&r.getAttribute(`data-precedence`)!==c){a.insertBefore(t,r);return}r.getAttribute(`data-precedence`)===c&&(n=!0)}a.appendChild(t)}else if(e===`link`)a.contains(t)||a.appendChild(t);else if(g){let n=!1;for(let e of g)if(e===t){n=!0;break}n||a.insertBefore(t,a.contains(g[0])?g[0]:a.querySelector(e)),g=void 0}},[m,c,e]),v=J(t.ref,e=>{let t=p[0];if(n===2&&(e.innerHTML=``),(f||g)&&_(e),!s&&!o||!t)return;let r=Ct[e.getAttribute(t)]||=new Promise((t,n)=>{e.addEventListener(`load`,t),e.addEventListener(`error`,n)});o&&(r=r.then(o)),s&&(r=r.catch(s)),r.catch(()=>{})});if(i&&l===`render`){let n=x[e][0];if(n&&t[n]){let e=t[n];gt(Ct[e]||=new Promise((e,t)=>{_(d),d.addEventListener(`load`,e),d.addEventListener(`error`,t)}))}}let y={tag:e,type:e,props:{...u,ref:v},ref:v};return y.p=n,d&&(y.e=d),it(y,a)},Tt=e=>{let t=Le();return(t&&b(t))?.endsWith(`svg`)?{tag:`title`,props:e,type:`title`,ref:e.ref}:Y(`title`,e,void 0,!1,!1)},Et=e=>!e||[`src`,`async`].some(t=>!e[t])?{tag:`script`,props:e,type:`script`,ref:e.ref}:Y(`script`,e,1,!1,!0),Dt=e=>!e||![`href`,`precedence`].every(t=>t in e)?{tag:`style`,props:e,type:`style`,ref:e.ref}:(e[`data-href`]=e.href,delete e.href,Y(`style`,e,2,!0,!0)),Ot=e=>!e||[`onLoad`,`onError`].some(t=>t in e)||e.rel===`stylesheet`&&(!(`precedence`in e)||`disabled`in e)?{tag:`link`,props:e,type:`link`,ref:e.ref}:Y(`link`,e,1,ee(e),!0),kt=e=>Y(`meta`,e,void 0,!1,!1),At=Symbol(),jt=e=>{let{action:t,...n}=e;typeof t!=`function`&&(n.action=t);let[r,i]=ft([null,!1]),a=ht(async e=>{let n=e.isTrusted?t:e.detail[At];if(typeof n!=`function`)return;e.preventDefault();let r=new FormData(e.target);i([r,!0]);let a=n(r);a instanceof Promise&&(bt(a),await a),i([null,!0])},[]),o=J(e.ref,e=>(e.addEventListener(`submit`,a),()=>{e.removeEventListener(`submit`,a)})),[s,c]=r;return r[1]=!1,{tag:vt,props:{value:{pending:s!==null,data:s,method:s?`post`:null,action:s?t:null},children:{tag:`form`,props:{...n,ref:o},type:`form`,ref:o}},f:c}},Mt=(e,{formAction:t,...n})=>{if(typeof t==`function`){let e=ht(e=>{e.preventDefault(),e.currentTarget.form.dispatchEvent(new CustomEvent(`submit`,{detail:{[At]:t}}))},[]);n.ref=J(n.ref,t=>(t.addEventListener(`click`,e),()=>{t.removeEventListener(`click`,e)}))}return{tag:e,props:n,type:e,ref:n.ref}},Nt=e=>Mt(`input`,e),Pt=e=>Mt(`button`,e);Object.assign(S,{title:Tt,script:Et,style:Dt,link:Ot,meta:kt,form:jt,input:Nt,button:Pt});var Ft=(e,t,n)=>(typeof e==`string`&&xt[e]&&(e=xt[e]),{tag:e,type:e,props:t,key:n,ref:t.ref}),It=e=>Ft(``,e,void 0),Lt=(({children:e,fallback:t,fallbackRender:n,onError:r})=>{let i=It({children:e});return i[u]=e=>{if(e instanceof Promise)throw e;return r?.(e),n?.(e)||t},i}),Rt=(({children:e,fallback:t})=>{let n=It({children:e});return n[u]=(e,n)=>{if(!(e instanceof Promise))throw e;return e.finally(n),t},n}),zt=y(null),Bt=0,Vt=async({children:e,fallback:t})=>{Array.isArray(e)||(e=[e]);let i=b(zt)?.scriptNonce,a=[],o={[d]:[0,[]]},s=e=>(B.pop(),e);try{o[d][0]=0,B.push([[],o]),a=e.map(e=>e==null||typeof e==`boolean`?``:e.toString())}catch(t){if(t instanceof Promise)a=[t.then(()=>(o[d][0]=0,B.push([[],o]),Ut(e).then(s)))];else throw t}finally{s()}if(a.some(e=>e instanceof Promise)){let e=Bt++,o=await t.toString();return r(`<template id="H:${e}"></template>${o}<!--/$-->`,[...o.callbacks||[],({phase:t,buffer:o,context:s})=>{if(t!==n.BeforeStream)return Promise.all(a).then(async a=>{a=a.flat();let l=a.join(``);o&&(o[0]=o[0].replace(RegExp(`<template id="H:${e}"></template>.*?<!--/\\\\$-->`),l));let u=o?``:`<template data-hono-target="H:${e}">${l}</template><script${i?` nonce="${i}"`:``}>\n((d,c,n) => {\nc=d.currentScript.previousSibling\nd=d.getElementById(\'H:${e}\')\nif(!d)return\ndo{n=d.nextSibling;n.remove()}while(n.nodeType!=8||n.nodeValue!=\'/$\')\nd.replaceWith(c.content)\n})(document)\n<\\/script>`,d=a.map(e=>e.callbacks||[]).flat();return d.length?(t===n.Stream&&(u=await c(u,n.BeforeStream,!0,s)),r(u,d)):u})}])}else return r(a.join(``))};Vt[l]=Rt,new TextEncoder;var Ht=0,Ut=async e=>{try{return e.flat().map(e=>e==null||typeof e==`boolean`?``:e.toString())}catch(t){if(t instanceof Promise)return await t,Ut(e);throw t}},Wt=e=>{if(e==null||typeof e==`boolean`)return``;if(typeof e==`string`)return e;{let t=e.toString();return t instanceof Promise?t:r(t)}},Gt=async({children:e,fallback:t,fallbackRender:i,onError:a})=>{if(!e)return r(``);Array.isArray(e)||(e=[e]);let o=b(zt)?.scriptNonce,s,l=async()=>{let e=await t;typeof e==`string`?s=e:(s=await e?.toString(),typeof s==`string`&&(s=r(s)))},u=e=>(a?.(e),s||i&&Me(R,{},i(e))||``),d=[];try{d=e.map(Wt)}catch(t){await l(),d=t instanceof Promise?[t.then(()=>Ut(e)).catch(e=>u(e))]:[u(t)]}if(d.some(e=>e instanceof Promise)){await l();let e=Ht++,t=RegExp(`(<template id="E:${e}"></template>.*?)(.*?)(<!--E:${e}-->)`),i=async({error:n,buffer:r})=>{let i=await R({children:u(n)}).toString();return r&&(r[0]=r[0].replace(t,i)),r?``:`<template data-hono-target="E:${e}">${i}</template><script>\n((d,c,n) => {\nc=d.currentScript.previousSibling\nd=d.getElementById(\'E:${e}\')\nif(!d)return\ndo{n=d.nextSibling;n.remove()}while(n.nodeType!=8||n.nodeValue!=\'E:${e}\')\nd.replaceWith(c.content)\n})(document)\n<\\/script>`},a,s=Promise.all(d).catch(e=>a=e);return r(`<template id="E:${e}"></template><!--E:${e}-->`,[({phase:l,buffer:u,context:d})=>{if(l!==n.BeforeStream)return s.then(async s=>{if(a)throw a;s=s.flat();let f=s.join(``),p=u?``:`<template data-hono-target="E:${e}">${f}</template><script${o?` nonce="${o}"`:``}>\n((d,c) => {\nc=d.currentScript.previousSibling\nd=d.getElementById(\'E:${e}\')\nif(!d)return\nd.parentElement.insertBefore(c.content,d.nextSibling)\n})(document)\n<\\/script>`;if(s.every(e=>!e.callbacks?.length))return u&&(u[0]=u[0].replace(t,f)),p;u&&(u[0]=u[0].replace(t,(e,t,n,r)=>`${t}${f}${r}`));let m=s.map(e=>e.callbacks||[]).flat();l===n.Stream&&(p=await c(p,n.BeforeStream,!0,d));let h=0,g=m.map(n=>(...a)=>n(...a)?.then(n=>(h++,u?(h===m.length&&(u[0]=u[0].replace(t,(e,t,n)=>n)),u[0]+=n,r(``,n.callbacks)):r(n+(h===m.length?`<script>\n((d,c,n) => {\nd=d.getElementById(\'E:${e}\')\nif(!d)return\nn=d.nextSibling\nwhile(n.nodeType!=8||n.nodeValue!=\'E:${e}\'){n=n.nextSibling}\nn.remove()\nd.remove()\n})(document)\n<\\/script>`:``),n.callbacks))).catch(e=>i({error:e,buffer:u})));return r(p,g)}).catch(e=>i({error:e,buffer:u}))}])}else return R({children:d})};Gt[l]=Lt;var Kt=(e,t={})=>{let n;return Object.keys(t).length>0&&console.warn(`createRoot options are not supported yet`),{render(t){if(n===null)throw Error(`Cannot update an unmounted root`);n?n(t):rt($e({tag:()=>{let[e,r]=ft(t);return n=r,e},props:{}}),e)},unmount(){n?.(null),n=null}}},qt=(e,t,n={})=>{let r=Kt(e,n);return r.render(t),r};function Jt(){return mt(()=>{let e=document.querySelectorAll(`form`),t=[];return e.forEach(e=>{let n=e=>{if(e.defaultPrevented)return;let t=e.submitter;t&&t.type===`submit`&&(t.classList.add(`is-loading`),t.disabled=!0)};e.addEventListener(`submit`,n);let r=t=>{t.persisted&&e.querySelectorAll(`button[type=submit]`).forEach(e=>{e.classList.remove(`is-loading`),e.disabled=!1})};window.addEventListener(`pageshow`,r),t.push(()=>{e.removeEventListener(`submit`,n),window.removeEventListener(`pageshow`,r)})}),()=>{t.forEach(e=>e())}},[]),null}function Yt(){return mt(()=>{let e=document.querySelectorAll(`a[data-loading-link]`),t=[];return e.forEach(e=>{let n=t=>{t.defaultPrevented||t.button!==0||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||e.classList.add(`is-loading`)};e.addEventListener(`click`,n);let r=t=>{t.persisted&&e.classList.remove(`is-loading`)};window.addEventListener(`pageshow`,r),t.push(()=>{e.removeEventListener(`click`,n),window.removeEventListener(`pageshow`,r)})}),()=>{t.forEach(e=>e())}},[]),null}function Xt(){return mt(()=>{let e=document.querySelectorAll(`[data-password-toggle]`),t=[];return e.forEach(e=>{let n=e.querySelector(`input[type=\'password\'], input[data-password-input]`),r=e.querySelector(`[data-password-toggle-btn]`),i=r?.querySelector(`[data-show-icon]`),a=r?.querySelector(`[data-hide-icon]`);if(!n||!r||!i||!a)return;let o=e=>{e?(n.type=`text`,n.setAttribute(`data-password-input`,`text`),i.classList.add(`hidden`),a.classList.remove(`hidden`)):(n.type=`password`,n.setAttribute(`data-password-input`,`password`),a.classList.add(`hidden`),i.classList.remove(`hidden`))},s=e=>{e.preventDefault(),o(n.type===`password`)};r.addEventListener(`click`,s),t.push(()=>{r.removeEventListener(`click`,s)})}),()=>{t.forEach(e=>e())}},[]),null}function Zt(){return document.querySelectorAll(`[data-input-otp-container]`).forEach(e=>{let t=Array.from(e.querySelectorAll(`[data-input-otp-slot]`));if(!t.length)return;let n=e.closest(`form`),r=null;if(n&&t.length>0){let e=t[0]?.getAttribute(`name`);e&&(r=n.querySelector(`input[name="${e}"][type="hidden"]`),r||(r=document.createElement(`input`),r.type=`hidden`,r.name=e,n.appendChild(r)),t.forEach(e=>e.removeAttribute(`name`)))}let i=()=>{if(r){let e=t.map(e=>e.value).join(``);r.value=e,e.length===t.length&&n&&setTimeout(()=>{n.requestSubmit()},100)}};t.forEach((e,n)=>{e.addEventListener(`input`,e=>{let r=e.target,a=r.value;a=a.replace(/[^0-9]/g,``),a.length>1&&(a=a.charAt(0)),r.value=a,a&&n<t.length-1&&t[n+1]?.focus(),i()}),e.addEventListener(`paste`,e=>{e.preventDefault();let r=(e.clipboardData?.getData(`text`)||``).replace(/[^0-9]/g,``);for(let e=0;e<Math.min(r.length,t.length-n);e++){let i=t[n+e],a=r.charAt(e);i&&a&&(i.value=a)}let a=t.findIndex((e,t)=>t>=n&&!e.value);a===-1?t[Math.min(n+r.length,t.length-1)]?.focus():t[a]?.focus(),i()}),e.addEventListener(`keydown`,e=>{if(e.key===`Backspace`){let r=e.target;if(!r.value&&n>0){e.preventDefault();let r=t[n-1];r&&(r.value=``,r.focus()),i()}else r.value&&setTimeout(()=>i(),0)}else e.key===`ArrowLeft`&&n>0?(e.preventDefault(),t[n-1]?.focus()):e.key===`ArrowRight`&&n<t.length-1&&(e.preventDefault(),t[n+1]?.focus())}),e.addEventListener(`focus`,()=>{e.select()})}),i()}),null}var Qt={d:(e,t)=>{for(var n in t)Qt.o(t,n)&&!Qt.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},$t={};Qt.d($t,{A:()=>tn,k:()=>en});var X=function(e,t,n,r){return new(n||=Promise)(function(i,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}c((r=r.apply(e,t||[])).next())})},Z=function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},typeof Symbol==`function`&&(a[Symbol.iterator]=function(){return this}),a;function s(s){return function(c){return function(s){if(n)throw TypeError(`Generator is already executing.`);for(;a&&(a=0,s[0]&&(o=0)),o;)try{if(n=1,r&&(i=2&s[0]?r.return:s[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,s[1])).done)return i;switch(r=0,i&&(s=[2&s[0],i.value]),s[0]){case 0:case 1:i=s;break;case 4:return o.label++,{value:s[1],done:!1};case 5:o.label++,r=s[1],s=[0];continue;case 7:s=o.ops.pop(),o.trys.pop();continue;default:if(i=o.trys,!((i=i.length>0&&i[i.length-1])||s[0]!==6&&s[0]!==2)){o=0;continue}if(s[0]===3&&(!i||s[1]>i[0]&&s[1]<i[3])){o.label=s[1];break}if(s[0]===6&&o.label<i[1]){o.label=i[1],i=s;break}if(i&&o.label<i[2]){o.label=i[2],o.ops.push(s);break}i[2]&&o.ops.pop(),o.trys.pop();continue}s=t.call(e,o)}catch(e){s=[6,e],r=0}finally{n=i=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,c])}}};function en(){return X(this,void 0,Promise,function(){return Z(this,function(e){switch(e.label){case 0:return[4,new Promise(function(e,t){var n=`Unknown`,r=!1;function i(t){r||(r=!0,e({isPrivate:t,browserName:n}))}function a(){var e=0,t=-1;try{t.toFixed(t)}catch(t){e=t.message.length}return e}function o(){return X(this,void 0,void 0,function(){var e,t;return Z(this,function(n){switch(n.label){case 0:return n.trys.push([0,2,,3]),[4,navigator.storage.getDirectory()];case 1:return n.sent(),i(!1),[3,3];case 2:return e=n.sent(),t=e instanceof Error&&typeof e.message==`string`?e.message:String(e),i(t.includes(`unknown transient reason`)),[3,3];case 3:return[2]}})})}function s(){return X(this,void 0,Promise,function(){return Z(this,function(e){switch(e.label){case 0:return typeof navigator.storage?.getDirectory==`function`?[4,o()]:[3,2];case 1:return e.sent(),[3,3];case 2:navigator.maxTouchPoints===void 0?function(){var e=window.openDatabase,t=window.localStorage;try{e(null,null,null,null)}catch{i(!0);return}try{t.setItem(`test`,`1`),t.removeItem(`test`)}catch{i(!0);return}i(!1)}():function(){var e=String(Math.random());try{var t=indexedDB.open(e,1);t.onupgradeneeded=function(t){var n=t.target.result,r=function(e){i(e)};try{n.createObjectStore(`t`,{autoIncrement:!0}).put(new Blob),r(!1)}catch(e){(e instanceof Error&&typeof e.message==`string`?e.message:String(e)).includes(`are not yet supported`)?r(!0):r(!1)}finally{n.close(),indexedDB.deleteDatabase(e)}},t.onerror=function(){return i(!1)}}catch{i(!1)}}(),e.label=3;case 3:return[2]}})})}function c(){return X(this,void 0,Promise,function(){var e,t,n;return Z(this,function(r){switch(r.label){case 0:if(typeof navigator.storage?.getDirectory!=`function`)return[3,5];r.label=1;case 1:return r.trys.push([1,3,,4]),[4,navigator.storage.getDirectory()];case 2:return r.sent(),i(!1),[3,4];case 3:return e=r.sent(),t=e instanceof Error&&typeof e.message==`string`?e.message:String(e),i(t.includes(`Security error`)),[2];case 4:return[3,6];case 5:(n=indexedDB.open(`inPrivate`)).onerror=function(e){n.error&&n.error.name===`InvalidStateError`&&e.preventDefault(),i(!0)},n.onsuccess=function(){indexedDB.deleteDatabase(`inPrivate`),i(!1)},r.label=6;case 6:return[2]}})})}(function(){return X(this,void 0,Promise,function(){return Z(this,function(e){switch(e.label){case 0:return a()!==44&&a()!==43?[3,2]:(n=`Safari`,[4,s()]);case 1:return e.sent(),[3,6];case 2:return a()===51?(o=navigator.userAgent,n=o.match(/Chrome/)?navigator.brave===void 0?o.match(/Edg/)?`Edge`:o.match(/OPR/)?`Opera`:`Chrome`:`Brave`:`Chromium`,(r=new Worker(URL.createObjectURL(new Blob([`(async()=>{try{const r=await navigator.storage.getDirectory(),f=await(await r.getFileHandle(\'_\',{create:true})).createSyncAccessHandle(),b=new Uint8Array(1);let m=1/0;for(let i=0;i<3;i++){f.write(b,{at:0});const s=performance.now();f.flush();const dt=performance.now()-s;if(dt<m)m=dt}f.close();postMessage(m<.1)}catch{postMessage(false)}})()`])))).onmessage=function(e){r.terminate(),i(e.data)},[3,6]):[3,3];case 3:return a()===25?(n=`Firefox`,[4,c()]):[3,5];case 4:return e.sent(),[3,6];case 5:navigator.msSaveBlob===void 0?t(Error(`detectIncognito cannot determine the browser`)):(n=`Internet Explorer`,i(window.indexedDB===void 0)),e.label=6;case 6:return[2]}var r,o})})})().catch(t)})];case 1:return[2,e.sent()]}})})}typeof window<`u`&&(window.detectIncognito=en);var tn=en;$t.A;var nn=$t.k,Q=`authhero_incognito_mode`;function rn(){try{let e=sessionStorage.getItem(Q);return e===null?void 0:e===`true`}catch{return}}async function an(){try{let e=sessionStorage.getItem(Q);if(e!==null)return e===`true`;let{isPrivate:t}=await nn();return sessionStorage.setItem(Q,t.toString()),t}catch{try{sessionStorage.setItem(Q,`false`)}catch{}return!1}}var on=()=>{let e=rn();if(e!==void 0){e&&sn();return}an().then(e=>{e&&sn()}).catch(()=>{})};function sn(){let e=document.getElementById(`incognito-warning-container`);e&&e.classList.remove(`hidden`)}function $(e,t,n){let r;if(!t||!(`children`in t))r=L(e,t,[]);else{let n=t.children;r=Array.isArray(n)?L(e,t,n):L(e,t,[n])}return r.key=n,r}on();var cn=document.getElementById(`client-root`);cn&&qt(cn,$(R,{children:[$(Jt,{}),$(Yt,{}),$(Xt,{}),$(Zt,{})]}));',K3=s((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.fromCodePoint=void 0,e.replaceCodePoint=n,e.decodeCodePoint=r;var t=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]);e.fromCodePoint=String.fromCodePoint??(e=>{let t=``;return e>65535&&(e-=65536,t+=String.fromCharCode(e>>>10&1023|55296),e=56320|e&1023),t+=String.fromCharCode(e),t});function n(e){return e>=55296&&e<=57343||e>1114111?65533:t.get(e)??e}function r(t){return(0,e.fromCodePoint)(n(t))}})),q3=s((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.decodeBase64=t;function t(e){let t=typeof atob==`function`?atob(e):typeof Buffer.from==`function`?Buffer.from(e,`base64`).toString(`binary`):new Buffer(e,`base64`).toString(`binary`),n=t.length&-2,r=new Uint16Array(n/2);for(let e=0,i=0;e<n;e+=2){let n=t.charCodeAt(e),a=t.charCodeAt(e+1);r[i++]=n|a<<8}return r}})),J3=s((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.htmlDecodeTree=void 0,e.htmlDecodeTree=(0,q3().decodeBase64)(`QR08ALkAAgH6AYsDNQR2BO0EPgXZBQEGLAbdBxMISQrvCmQLfQurDKQNLw4fD4YPpA+6D/IPAAAAAAAAAAAAAAAAKhBMEY8TmxUWF2EYLBkxGuAa3RsJHDscWR8YIC8jSCSIJcMl6ie3Ku8rEC0CLjoupS7kLgAIRU1hYmNmZ2xtbm9wcnN0dVQAWgBeAGUAaQBzAHcAfgCBAIQAhwCSAJoAoACsALMAbABpAGcAO4DGAMZAUAA7gCYAJkBjAHUAdABlADuAwQDBQHIiZXZlAAJhAAFpeW0AcgByAGMAO4DCAMJAEGRyAADgNdgE3XIAYQB2AGUAO4DAAMBA8CFoYZFj4SFjcgBhZAAAoFMqAAFncIsAjgBvAG4ABGFmAADgNdg43fAlbHlGdW5jdGlvbgCgYSBpAG4AZwA7gMUAxUAAAWNzpACoAHIAAOA12Jzc6SFnbgCgVCJpAGwAZABlADuAwwDDQG0AbAA7gMQAxEAABGFjZWZvcnN1xQDYANoA7QDxAPYA+QD8AAABY3LJAM8AayNzbGFzaAAAoBYidgHTANUAAKDnKmUAZAAAoAYjeQARZIABY3J0AOAA5QDrAGEidXNlAACgNSLuI291bGxpcwCgLCFhAJJjcgAA4DXYBd1wAGYAAOA12Dnd5SF2ZdhiYwDyAOoAbSJwZXEAAKBOIgAHSE9hY2RlZmhpbG9yc3UXARoBHwE6AVIBVQFiAWQBZgGCAakB6QHtAfIBYwB5ACdkUABZADuAqQCpQIABY3B5ACUBKAE1AfUhdGUGYWmg0iJ0KGFsRGlmZmVyZW50aWFsRAAAoEUhbCJleXMAAKAtIQACYWVpb0EBRAFKAU0B8iFvbgxhZABpAGwAO4DHAMdAcgBjAAhhbiJpbnQAAKAwIm8AdAAKYQABZG5ZAV0BaSJsbGEAuGB0I2VyRG90ALdg8gA5AWkAp2NyImNsZQAAAkRNUFRwAXQBeQF9AW8AdAAAoJkiaSJudXMAAKCWIuwhdXMAoJUiaSJtZXMAAKCXIm8AAAFjc4cBlAFrKndpc2VDb250b3VySW50ZWdyYWwAAKAyImUjQ3VybHkAAAFEUZwBpAFvJXVibGVRdW90ZQAAoB0gdSJvdGUAAKAZIAACbG5wdbABtgHNAdgBbwBuAGWgNyIAoHQqgAFnaXQAvAHBAcUB8iJ1ZW50AKBhIm4AdAAAoC8i7yV1ckludGVncmFsAKAuIgABZnLRAdMBAKACIe8iZHVjdACgECJuLnRlckNsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbAAAoDMi7yFzcwCgLypjAHIAAOA12J7ccABDoNMiYQBwAACgTSKABURKU1phY2VmaW9zAAsCEgIVAhgCGwIsAjQCOQI9AnMCfwNvoEUh9CJyYWhkAKARKWMAeQACZGMAeQAFZGMAeQAPZIABZ3JzACECJQIoAuchZXIAoCEgcgAAoKEhaAB2AACg5CoAAWF5MAIzAvIhb24OYRRkbAB0oAciYQCUY3IAAOA12AfdAAFhZkECawIAAWNtRQJnAvIjaXRpY2FsAAJBREdUUAJUAl8CYwJjInV0ZQC0YG8AdAFZAloC2WJiJGxlQWN1dGUA3WJyImF2ZQBgYGkibGRlANxi7yFuZACgxCJmJWVyZW50aWFsRAAAoEYhcAR9AgAAAAAAAIECjgIAABoDZgAA4DXYO91EoagAhQKJAm8AdAAAoNwgcSJ1YWwAAKBQIuIhbGUAA0NETFJVVpkCqAK1Au8C/wIRA28AbgB0AG8AdQByAEkAbgB0AGUAZwByAGEA7ADEAW8AdAKvAgAAAACwAqhgbiNBcnJvdwAAoNMhAAFlb7kC0AJmAHQAgAFBUlQAwQLGAs0CciJyb3cAAKDQIekkZ2h0QXJyb3cAoNQhZQDlACsCbgBnAAABTFLWAugC5SFmdAABQVLcAuECciJyb3cAAKD4J+kkZ2h0QXJyb3cAoPon6SRnaHRBcnJvdwCg+SdpImdodAAAAUFU9gL7AnIicm93AACg0iFlAGUAAKCoInAAQQIGAwAAAAALA3Iicm93AACg0SFvJHduQXJyb3cAAKDVIWUlcnRpY2FsQmFyAACgJSJuAAADQUJMUlRhJAM2AzoDWgNxA3oDciJyb3cAAKGTIUJVLAMwA2EAcgAAoBMpcCNBcnJvdwAAoPUhciJldmUAEWPlIWZ00gJDAwAASwMAAFIDaSVnaHRWZWN0b3IAAKBQKWUkZVZlY3RvcgAAoF4p5SJjdG9yQqC9IWEAcgAAoFYpaSJnaHQA1AFiAwAAaQNlJGVWZWN0b3IAAKBfKeUiY3RvckKgwSFhAHIAAKBXKWUAZQBBoKQiciJyb3cAAKCnIXIAcgBvAPcAtAIAAWN0gwOHA3IAAOA12J/c8iFvaxBhAAhOVGFjZGZnbG1vcHFzdHV4owOlA6kDsAO/A8IDxgPNA9ID8gP9AwEEFAQeBCAEJQRHAEphSAA7gNAA0EBjAHUAdABlADuAyQDJQIABYWl5ALYDuQO+A/Ihb24aYXIAYwA7gMoAykAtZG8AdAAWYXIAAOA12AjdcgBhAHYAZQA7gMgAyEDlIm1lbnQAoAgiAAFhcNYD2QNjAHIAEmF0AHkAUwLhAwAAAADpA20lYWxsU3F1YXJlAACg+yVlJ3J5U21hbGxTcXVhcmUAAKCrJQABZ3D2A/kDbwBuABhhZgAA4DXYPN3zImlsb26VY3UAAAFhaQYEDgRsAFSgdSppImxkZQAAoEIi7CNpYnJpdW0AoMwhAAFjaRgEGwRyAACgMCFtAACgcyphAJdjbQBsADuAywDLQAABaXApBC0E8yF0cwCgAyLvJG5lbnRpYWxFAKBHIYACY2Zpb3MAPQQ/BEMEXQRyBHkAJGRyAADgNdgJ3WwibGVkAFMCTAQAAAAAVARtJWFsbFNxdWFyZQAAoPwlZSdyeVNtYWxsU3F1YXJlAACgqiVwA2UEAABpBAAAAABtBGYAAOA12D3dwSFsbACgACLyI2llcnRyZgCgMSFjAPIAcQQABkpUYWJjZGZnb3JzdIgEiwSOBJMElwSkBKcEqwStBLIE5QTqBGMAeQADZDuAPgA+QO0hbWFkoJMD3GNyImV2ZQAeYYABZWl5AJ0EoASjBOQhaWwiYXIAYwAcYRNkbwB0ACBhcgAA4DXYCt0AoNkicABmAADgNdg+3eUiYXRlcgADRUZHTFNUvwTIBM8E1QTZBOAEcSJ1YWwATKBlIuUhc3MAoNsidSRsbEVxdWFsAACgZyJyI2VhdGVyAACgoirlIXNzAKB3IuwkYW50RXF1YWwAoH4qaSJsZGUAAKBzImMAcgAA4DXYotwAoGsiAARBYWNmaW9zdfkE/QQFBQgFCwUTBSIFKwVSIkRjeQAqZAABY3QBBQQFZQBrAMdiXmDpIXJjJGFyAACgDCFsJWJlcnRTcGFjZQAAoAsh8AEYBQAAGwVmAACgDSHpJXpvbnRhbExpbmUAoAAlAAFjdCYFKAXyABIF8iFvayZhbQBwAEQBMQU5BW8AdwBuAEgAdQBtAPAAAAFxInVhbAAAoE8iAAdFSk9hY2RmZ21ub3N0dVMFVgVZBVwFYwVtBXAFcwV6BZAFtgXFBckFzQVjAHkAFWTsIWlnMmFjAHkAAWRjAHUAdABlADuAzQDNQAABaXlnBWwFcgBjADuAzgDOQBhkbwB0ADBhcgAAoBEhcgBhAHYAZQA7gMwAzEAAoREhYXB/BYsFAAFjZ4MFhQVyACphaSNuYXJ5SQAAoEghbABpAGUA8wD6AvQBlQUAAKUFZaAsIgABZ3KaBZ4F8iFhbACgKyLzI2VjdGlvbgCgwiJpI3NpYmxlAAABQ1SsBbEFbyJtbWEAAKBjIGkibWVzAACgYiCAAWdwdAC8Bb8FwwVvAG4ALmFmAADgNdhA3WEAmWNjAHIAAKAQIWkibGRlAChh6wHSBQAA1QVjAHkABmRsADuAzwDPQIACY2Zvc3UA4QXpBe0F8gX9BQABaXnlBegFcgBjADRhGWRyAADgNdgN3XAAZgAA4DXYQd3jAfcFAAD7BXIAAOA12KXc8iFjeQhk6yFjeQRkgANISmFjZm9zAAwGDwYSBhUGHQYhBiYGYwB5ACVkYwB5AAxk8CFwYZpjAAFleRkGHAbkIWlsNmEaZHIAAOA12A7dcABmAADgNdhC3WMAcgAA4DXYptyABUpUYWNlZmxtb3N0AD0GQAZDBl4GawZkB2gHcAd0B80H2gdjAHkACWQ7gDwAPECAAmNtbnByAEwGTwZSBlUGWwb1IXRlOWHiIWRhm2NnAACg6ifsI2FjZXRyZgCgEiFyAACgniGAAWFleQBkBmcGagbyIW9uPWHkIWlsO2EbZAABZnNvBjQHdAAABUFDREZSVFVWYXKABp4GpAbGBssG3AYDByEHwQIqBwABbnKEBowGZyVsZUJyYWNrZXQAAKDoJ/Ihb3cAoZAhQlKTBpcGYQByAACg5CHpJGdodEFycm93AKDGIWUjaWxpbmcAAKAII28A9QGqBgAAsgZiJWxlQnJhY2tldAAAoOYnbgDUAbcGAAC+BmUkZVZlY3RvcgAAoGEp5SJjdG9yQqDDIWEAcgAAoFkpbCJvb3IAAKAKI2kiZ2h0AAABQVbSBtcGciJyb3cAAKCUIeUiY3RvcgCgTikAAWVy4AbwBmUAAKGjIkFW5gbrBnIicm93AACgpCHlImN0b3IAoFopaSNhbmdsZQBCorIi+wYAAAAA/wZhAHIAAKDPKXEidWFsAACgtCJwAIABRFRWAAoHEQcYB+8kd25WZWN0b3IAoFEpZSRlVmVjdG9yAACgYCnlImN0b3JCoL8hYQByAACgWCnlImN0b3JCoLwhYQByAACgUilpAGcAaAB0AGEAcgByAG8A9wDMAnMAAANFRkdMU1Q/B0cHTgdUB1gHXwfxJXVhbEdyZWF0ZXIAoNoidSRsbEVxdWFsAACgZiJyI2VhdGVyAACgdiLlIXNzAKChKuwkYW50RXF1YWwAoH0qaSJsZGUAAKByInIAAOA12A/dZaDYIuYjdGFycm93AKDaIWkiZG90AD9hgAFucHcAege1B7kHZwAAAkxSbHKCB5QHmwerB+UhZnQAAUFSiAeNB3Iicm93AACg9SfpJGdodEFycm93AKD3J+kkZ2h0QXJyb3cAoPYn5SFmdAABYXLcAqEHaQBnAGgAdABhAHIAcgBvAPcA5wJpAGcAaAB0AGEAcgByAG8A9wDuAmYAAOA12EPdZQByAAABTFK/B8YHZSRmdEFycm93AACgmSHpJGdodEFycm93AKCYIYABY2h0ANMH1QfXB/IAWgYAoLAh8iFva0FhAKBqIgAEYWNlZmlvc3XpB+wH7gf/BwMICQgOCBEIcAAAoAUpeQAcZAABZGzyB/kHaSR1bVNwYWNlAACgXyBsI2ludHJmAACgMyFyAADgNdgQ3e4jdXNQbHVzAKATInAAZgAA4DXYRN1jAPIA/gecY4AESmFjZWZvc3R1ACEIJAgoCDUIgQiFCDsKQApHCmMAeQAKZGMidXRlAENhgAFhZXkALggxCDQI8iFvbkdh5CFpbEVhHWSAAWdzdwA7CGEIfQjhInRpdmWAAU1UVgBECEwIWQhlJWRpdW1TcGFjZQAAoAsgaABpAAABY25SCFMIawBTAHAAYQBjAOUASwhlAHIAeQBUAGgAaQDuAFQI9CFlZAABR0xnCHUIcgBlAGEAdABlAHIARwByAGUAYQB0AGUA8gDrBGUAcwBzAEwAZQBzAPMA2wdMImluZQAKYHIAAOA12BHdAAJCbnB0jAiRCJkInAhyImVhawAAoGAgwiZyZWFraW5nU3BhY2WgYGYAAKAVIUOq7CqzCMIIzQgAAOcIGwkAAAAAAAAtCQAAbwkAAIcJAACdCcAJGQoAADQKAAFvdbYIvAjuI2dydWVudACgYiJwIkNhcAAAoG0ibyh1YmxlVmVydGljYWxCYXIAAKAmIoABbHF4ANII1wjhCOUibWVudACgCSL1IWFsVKBgImkibGRlAADgQiI4A2kic3RzAACgBCJyI2VhdGVyAACjbyJFRkdMU1T1CPoIAgkJCQ0JFQlxInVhbAAAoHEidSRsbEVxdWFsAADgZyI4A3IjZWF0ZXIAAOBrIjgD5SFzcwCgeSLsJGFudEVxdWFsAOB+KjgDaSJsZGUAAKB1IvUhbXBEASAJJwnvI3duSHVtcADgTiI4A3EidWFsAADgTyI4A2UAAAFmczEJRgn0JFRyaWFuZ2xlQqLqIj0JAAAAAEIJYQByAADgzyk4A3EidWFsAACg7CJzAICibiJFR0xTVABRCVYJXAlhCWkJcSJ1YWwAAKBwInIjZWF0ZXIAAKB4IuUhc3MA4GoiOAPsJGFudEVxdWFsAOB9KjgDaSJsZGUAAKB0IuUic3RlZAABR0x1CX8J8iZlYXRlckdyZWF0ZXIA4KIqOAPlI3NzTGVzcwDgoSo4A/IjZWNlZGVzAKGAIkVTjwmVCXEidWFsAADgryo4A+wkYW50RXF1YWwAoOAiAAFlaaAJqQl2JmVyc2VFbGVtZW50AACgDCLnJWh0VHJpYW5nbGVCousitgkAAAAAuwlhAHIAAODQKTgDcSJ1YWwAAKDtIgABcXXDCeAJdSNhcmVTdQAAAWJwywnVCfMhZXRF4I8iOANxInVhbAAAoOIi5SJyc2V0ReCQIjgDcSJ1YWwAAKDjIoABYmNwAOYJ8AkNCvMhZXRF4IIi0iBxInVhbAAAoIgi4yJlZWRzgKGBIkVTVAD6CQAKBwpxInVhbAAA4LAqOAPsJGFudEVxdWFsAKDhImkibGRlAADgfyI4A+UicnNldEXggyLSIHEidWFsAACgiSJpImxkZQCAoUEiRUZUACIKJwouCnEidWFsAACgRCJ1JGxsRXF1YWwAAKBHImkibGRlAACgSSJlJXJ0aWNhbEJhcgAAoCQiYwByAADgNdip3GkAbABkAGUAO4DRANFAnWMAB0VhY2RmZ21vcHJzdHV2XgphCmgKcgp2CnoKgQqRCpYKqwqtCrsKyArNCuwhaWdSYWMAdQB0AGUAO4DTANNAAAFpeWwKcQpyAGMAO4DUANRAHmRiImxhYwBQYXIAAOA12BLdcgBhAHYAZQA7gNIA0kCAAWFlaQCHCooKjQpjAHIATGFnAGEAqWNjInJvbgCfY3AAZgAA4DXYRt3lI25DdXJseQABRFGeCqYKbyV1YmxlUXVvdGUAAKAcIHUib3RlAACgGCAAoFQqAAFjbLEKtQpyAADgNdiq3GEAcwBoADuA2ADYQGkAbAHACsUKZABlADuA1QDVQGUAcwAAoDcqbQBsADuA1gDWQGUAcgAAAUJQ0wrmCgABYXLXCtoKcgAAoD4gYQBjAAABZWvgCuIKAKDeI2UAdAAAoLQjYSVyZW50aGVzaXMAAKDcI4AEYWNmaGlsb3JzAP0KAwsFCwkLCwsMCxELIwtaC3IjdGlhbEQAAKACInkAH2RyAADgNdgT3WkApmOgY/Ujc01pbnVzsWAAAWlwFQsgC24AYwBhAHIAZQBwAGwAYQBuAOUACgVmAACgGSGAobsqZWlvACoLRQtJC+MiZWRlc4CheiJFU1QANAs5C0ALcSJ1YWwAAKCvKuwkYW50RXF1YWwAoHwiaSJsZGUAAKB+Im0AZQAAoDMgAAFkcE0LUQv1IWN0AKAPIm8jcnRpb24AYaA3ImwAAKAdIgABY2leC2ILcgAA4DXYq9yoYwACVWZvc2oLbwtzC3cLTwBUADuAIgAiQHIAAOA12BTdcABmAACgGiFjAHIAAOA12KzcAAZCRWFjZWZoaW9yc3WPC5MLlwupC7YL2AvbC90LhQyTDJoMowzhIXJyAKAQKUcAO4CuAK5AgAFjbnIAnQugC6ML9SF0ZVRhZwAAoOsncgB0oKAhbAAAoBYpgAFhZXkArwuyC7UL8iFvblhh5CFpbFZhIGR2oBwhZSJyc2UAAAFFVb8LzwsAAWxxwwvIC+UibWVudACgCyL1JGlsaWJyaXVtAKDLIXAmRXF1aWxpYnJpdW0AAKBvKXIAAKAcIW8AoWPnIWh0AARBQ0RGVFVWYewLCgwQDDIMNwxeDHwM9gIAAW5y8Av4C2clbGVCcmFja2V0AACg6SfyIW93AKGSIUJM/wsDDGEAcgAAoOUhZSRmdEFycm93AACgxCFlI2lsaW5nAACgCSNvAPUBFgwAAB4MYiVsZUJyYWNrZXQAAKDnJ24A1AEjDAAAKgxlJGVWZWN0b3IAAKBdKeUiY3RvckKgwiFhAHIAAKBVKWwib29yAACgCyMAAWVyOwxLDGUAAKGiIkFWQQxGDHIicm93AACgpiHlImN0b3IAoFspaSNhbmdsZQBCorMiVgwAAAAAWgxhAHIAAKDQKXEidWFsAACgtSJwAIABRFRWAGUMbAxzDO8kd25WZWN0b3IAoE8pZSRlVmVjdG9yAACgXCnlImN0b3JCoL4hYQByAACgVCnlImN0b3JCoMAhYQByAACgUykAAXB1iQyMDGYAAKAdIe4kZEltcGxpZXMAoHAp6SRnaHRhcnJvdwCg2yEAAWNongyhDHIAAKAbIQCgsSHsJGVEZWxheWVkAKD0KYAGSE9hY2ZoaW1vcXN0dQC/DMgMzAzQDOIM5gwKDQ0NFA0ZDU8NVA1YDQABQ2PDDMYMyCFjeSlkeQAoZEYiVGN5ACxkYyJ1dGUAWmEAorwqYWVpedgM2wzeDOEM8iFvbmBh5CFpbF5hcgBjAFxhIWRyAADgNdgW3e8hcnQAAkRMUlXvDPYM/QwEDW8kd25BcnJvdwAAoJMhZSRmdEFycm93AACgkCHpJGdodEFycm93AKCSIXAjQXJyb3cAAKCRIechbWGjY+EkbGxDaXJjbGUAoBgicABmAADgNdhK3XICHw0AAAAAIg10AACgGiLhIXJlgKGhJUlTVQAqDTINSg3uJXRlcnNlY3Rpb24AoJMidQAAAWJwNw1ADfMhZXRFoI8icSJ1YWwAAKCRIuUicnNldEWgkCJxInVhbAAAoJIibiJpb24AAKCUImMAcgAA4DXYrtxhAHIAAKDGIgACYmNtcF8Nag2ODZANc6DQImUAdABFoNAicSJ1YWwAAKCGIgABY2huDYkNZSJlZHMAgKF7IkVTVAB4DX0NhA1xInVhbAAAoLAq7CRhbnRFcXVhbACgfSJpImxkZQAAoH8iVABoAGEA9ADHCwCgESIAodEiZXOVDZ8NciJzZXQARaCDInEidWFsAACghyJlAHQAAKDRIoAFSFJTYWNmaGlvcnMAtQ27Db8NyA3ODdsN3w3+DRgOHQ4jDk8AUgBOADuA3gDeQMEhREUAoCIhAAFIY8MNxg1jAHkAC2R5ACZkAAFidcwNzQ0JYKRjgAFhZXkA1A3XDdoN8iFvbmRh5CFpbGJhImRyAADgNdgX3QABZWnjDe4N8gHoDQAA7Q3lImZvcmUAoDQiYQCYYwABY27yDfkNayNTcGFjZQAA4F8gCiDTInBhY2UAoAkg7CFkZYChPCJFRlQABw4MDhMOcSJ1YWwAAKBDInUkbGxFcXVhbAAAoEUiaSJsZGUAAKBIInAAZgAA4DXYS93pI3BsZURvdACg2yAAAWN0Jw4rDnIAAOA12K/c8iFva2Zh4QpFDlYOYA5qDgAAbg5yDgAAAAAAAAAAAAB5DnwOqA6zDgAADg8RDxYPGg8AAWNySA5ODnUAdABlADuA2gDaQHIAb6CfIeMhaXIAoEkpcgDjAVsOAABdDnkADmR2AGUAbGEAAWl5Yw5oDnIAYwA7gNsA20AjZGIibGFjAHBhcgAA4DXYGN1yAGEAdgBlADuA2QDZQOEhY3JqYQABZGl/Dp8OZQByAAABQlCFDpcOAAFhcokOiw5yAF9gYQBjAAABZWuRDpMOAKDfI2UAdAAAoLUjYSVyZW50aGVzaXMAAKDdI28AbgBQoMMi7CF1cwCgjiIAAWdwqw6uDm8AbgByYWYAAOA12EzdAARBREVUYWRwc78O0g7ZDuEOBQPqDvMOBw9yInJvdwDCoZEhyA4AAMwOYQByAACgEilvJHduQXJyb3cAAKDFIW8kd25BcnJvdwAAoJUhcSV1aWxpYnJpdW0AAKBuKWUAZQBBoKUiciJyb3cAAKClIW8AdwBuAGEAcgByAG8A9wAQA2UAcgAAAUxS+Q4AD2UkZnRBcnJvdwAAoJYh6SRnaHRBcnJvdwCglyFpAGyg0gNvAG4ApWPpIW5nbmFjAHIAAOA12LDcaSJsZGUAaGFtAGwAO4DcANxAgAREYmNkZWZvc3YALQ8xDzUPNw89D3IPdg97D4AP4SFzaACgqyJhAHIAAKDrKnkAEmThIXNobKCpIgCg5ioAAWVyQQ9DDwCgwSKAAWJ0eQBJD00Paw9hAHIAAKAWIGmgFiDjIWFsAAJCTFNUWA9cD18PZg9hAHIAAKAjIukhbmV8YGUkcGFyYXRvcgAAoFgnaSJsZGUAAKBAItQkaGluU3BhY2UAoAogcgAA4DXYGd1wAGYAAOA12E3dYwByAADgNdix3GQiYXNoAACgqiKAAmNlZm9zAI4PkQ+VD5kPng/pIXJjdGHkIWdlAKDAInIAAOA12BrdcABmAADgNdhO3WMAcgAA4DXYstwAAmZpb3OqD64Prw+0D3IAAOA12BvdnmNwAGYAAOA12E/dYwByAADgNdiz3IAEQUlVYWNmb3N1AMgPyw/OD9EP2A/gD+QP6Q/uD2MAeQAvZGMAeQAHZGMAeQAuZGMAdQB0AGUAO4DdAN1AAAFpedwP3w9yAGMAdmErZHIAAOA12BzdcABmAADgNdhQ3WMAcgAA4DXYtNxtAGwAeGEABEhhY2RlZm9z/g8BEAUQDRAQEB0QIBAkEGMAeQAWZGMidXRlAHlhAAFheQkQDBDyIW9ufWEXZG8AdAB7YfIBFRAAABwQbwBXAGkAZAB0AOgAVAhhAJZjcgAAoCghcABmAACgJCFjAHIAAOA12LXc4QtCEEkQTRAAAGcQbRByEAAAAAAAAAAAeRCKEJcQ8hD9EAAAGxEhETIROREAAD4RYwB1AHQAZQA7gOEA4UByImV2ZQADYYCiPiJFZGl1eQBWEFkQWxBgEGUQAOA+IjMDAKA/InIAYwA7gOIA4kB0AGUAO4C0ALRAMGRsAGkAZwA7gOYA5kByoGEgAOA12B7dcgBhAHYAZQA7gOAA4EAAAWVwfBCGEAABZnCAEIQQ8yF5bQCgNSHoAIMQaABhALFjAAFhcI0QWwAAAWNskRCTEHIAAWFnAACgPypkApwQAAAAALEQAKInImFkc3ajEKcQqRCuEG4AZAAAoFUqAKBcKmwib3BlAACgWCoAoFoqAKMgImVsbXJzersQvRDAEN0Q5RDtEACgpCllAACgICJzAGQAYaAhImEEzhDQENIQ1BDWENgQ2hDcEACgqCkAoKkpAKCqKQCgqykAoKwpAKCtKQCgrikAoK8pdAB2oB8iYgBkoL4iAKCdKQABcHTpEOwQaAAAoCIixWDhIXJyAKB8IwABZ3D1EPgQbwBuAAVhZgAA4DXYUt0Ao0giRWFlaW9wBxEJEQ0RDxESERQRAKBwKuMhaXIAoG8qAKBKImQAAKBLInMAJ2DyIW94ZaBIIvEADhFpAG4AZwA7gOUA5UCAAWN0eQAmESoRKxFyAADgNdi23CpgbQBwAGWgSCLxAPgBaQBsAGQAZQA7gOMA40BtAGwAO4DkAORAAAFjaUERRxFvAG4AaQBuAPQA6AFuAHQAAKARKgAITmFiY2RlZmlrbG5vcHJzdWQRaBGXEZ8RpxGrEdIR1hErEjASexKKEn0RThNbE3oTbwB0AACg7SoAAWNybBGJEWsAAAJjZXBzdBF4EX0RghHvIW5nAKBMInAjc2lsb24A9mNyImltZQAAoDUgaQBtAGWgPSJxAACgzSJ2AY0RkRFlAGUAAKC9ImUAZABnoAUjZQAAoAUjcgBrAHSgtSPiIXJrAKC2IwABb3mjEaYRbgDnAHcRMWTxIXVvAKAeIIACY21wcnQAtBG5Eb4RwRHFEeEhdXPloDUi5ABwInR5dgAAoLApcwDpAH0RbgBvAPUA6gCAAWFodwDLEcwRzhGyYwCgNiHlIWVuAKBsInIAAOA12B/dZwCAA2Nvc3R1dncA4xHyEQUSEhIhEiYSKRKAAWFpdQDpEesR7xHwAKMFcgBjAACg7yVwAACgwyKAAWRwdAD4EfwRABJvAHQAAKAAKuwhdXMAoAEqaSJtZXMAAKACKnECCxIAAAAADxLjIXVwAKAGKmEAcgAAoAUm8iNpYW5nbGUAAWR1GhIeEu8hd24AoL0lcAAAoLMlcCJsdXMAAKAEKmUA5QBCD+UAkg9hInJvdwAAoA0pgAFha28ANhJoEncSAAFjbjoSZRJrAIABbHN0AEESRxJNEm8jemVuZ2UAAKDrKXEAdQBhAHIA5QBcBPIjaWFuZ2xlgKG0JWRscgBYElwSYBLvIXduAKC+JeUhZnQAoMIlaSJnaHQAAKC4JWsAAKAjJLEBbRIAAHUSsgFxEgAAcxIAoJIlAKCRJTQAAKCTJWMAawAAoIglAAFlb38ShxJx4D0A5SD1IWl2AOBhIuUgdAAAoBAjAAJwdHd4kRKVEpsSnxJmAADgNdhT3XSgpSJvAG0AAKClIvQhaWUAoMgiAAZESFVWYmRobXB0dXayEsES0RLgEvcS+xIKExoTHxMjEygTNxMAAkxSbHK5ErsSvRK/EgCgVyUAoFQlAKBWJQCgUyUAolAlRFVkdckSyxLNEs8SAKBmJQCgaSUAoGQlAKBnJQACTFJsctgS2hLcEt4SAKBdJQCgWiUAoFwlAKBZJQCjUSVITFJobHLrEu0S7xLxEvMS9RIAoGwlAKBjJQCgYCUAoGslAKBiJQCgXyVvAHgAAKDJKQACTFJscgITBBMGEwgTAKBVJQCgUiUAoBAlAKAMJQCiACVEVWR1EhMUExYTGBMAoGUlAKBoJQCgLCUAoDQlaSJudXMAAKCfIuwhdXMAoJ4iaSJtZXMAAKCgIgACTFJsci8TMRMzEzUTAKBbJQCgWCUAoBglAKAUJQCjAiVITFJobHJCE0QTRhNIE0oTTBMAoGolAKBhJQCgXiUAoDwlAKAkJQCgHCUAAWV2UhNVE3YA5QD5AGIAYQByADuApgCmQAACY2Vpb2ITZhNqE24TcgAA4DXYt9xtAGkAAKBPIG0A5aA9IogRbAAAoVwAYmh0E3YTAKDFKfMhdWIAoMgnbAF+E4QTbABloCIgdAAAoCIgcAAAoU4iRWWJE4sTAKCuKvGgTyI8BeEMqRMAAN8TABQDFB8UAAAjFDQUAAAAAIUUAAAAAI0UAAAAANcU4xT3FPsUAACIFQAAlhWAAWNwcgCuE7ET1RP1IXRlB2GAoikiYWJjZHMAuxO/E8QTzhPSE24AZAAAoEQqciJjdXAAAKBJKgABYXXIE8sTcAAAoEsqcAAAoEcqbwB0AACgQCoA4CkiAP4AAWVv2RPcE3QAAKBBIO4ABAUAAmFlaXXlE+8T9RP4E/AB6hMAAO0TcwAAoE0qbwBuAA1hZABpAGwAO4DnAOdAcgBjAAlhcABzAHOgTCptAACgUCpvAHQAC2GAAWRtbgAIFA0UEhRpAGwAO4C4ALhAcCJ0eXYAAKCyKXQAAIGiADtlGBQZFKJAcgBkAG8A9ABiAXIAAOA12CDdgAFjZWkAKBQqFDIUeQBHZGMAawBtoBMn4SFyawCgEyfHY3IAAKPLJUVjZWZtcz8UQRRHFHcUfBSAFACgwykAocYCZWxGFEkUcQAAoFciZQBhAlAUAAAAAGAUciJyb3cAAAFsclYUWhTlIWZ0AKC6IWkiZ2h0AACguyGAAlJTYWNkAGgUaRRrFG8UcxSuYACgyCRzAHQAAKCbIukhcmMAoJoi4SFzaACgnSJuImludAAAoBAqaQBkAACg7yrjIWlyAKDCKfUhYnN1oGMmaQB0AACgYybsApMUmhS2FAAAwxRvAG4AZaA6APGgVCKrAG0CnxQAAAAAoxRhAHSgLABAYAChASJmbKcUqRTuABMNZQAAAW14rhSyFOUhbnQAoAEiZQDzANIB5wG6FAAAwBRkoEUibwB0AACgbSpuAPQAzAGAAWZyeQDIFMsUzhQA4DXYVN1vAOQA1wEAgakAO3MeAdMUcgAAoBchAAFhb9oU3hRyAHIAAKC1IXMAcwAAoBcnAAFjdeYU6hRyAADgNdi43AABYnDuFPIUZaDPKgCg0SploNAqAKDSKuQhb3QAoO8igANkZWxwcnZ3AAYVEBUbFSEVRBVlFYQV4SFycgABbHIMFQ4VAKA4KQCgNSlwAhYVAAAAABkVcgAAoN4iYwAAoN8i4SFycnCgtiEAoD0pgKIqImJjZG9zACsVMBU6FT4VQRVyImNhcAAAoEgqAAFhdTQVNxVwAACgRipwAACgSipvAHQAAKCNInIAAKBFKgDgKiIA/gACYWxydksVURVuFXMVcgByAG2gtyEAoDwpeQCAAWV2dwBYFWUVaRVxAHACXxUAAAAAYxVyAGUA4wAXFXUA4wAZFWUAZQAAoM4iZSJkZ2UAAKDPImUAbgA7gKQApEBlI2Fycm93AAABbHJ7FX8V5SFmdACgtiFpImdodAAAoLchZQDkAG0VAAFjaYsVkRVvAG4AaQBuAPQAkwFuAHQAAKAxImwiY3R5AACgLSOACUFIYWJjZGVmaGlqbG9yc3R1d3oAuBW7Fb8V1RXgFegV+RUKFhUWHxZUFlcWZRbFFtsW7xb7FgUXChdyAPIAtAJhAHIAAKBlKQACZ2xyc8YVyhXOFdAV5yFlcgCgICDlIXRoAKA4IfIA9QxoAHagECAAoKMiawHZFd4VYSJyb3cAAKAPKWEA4wBfAgABYXnkFecV8iFvbg9hNGQAoUYhYW/tFfQVAAFnciEC8RVyAACgyiF0InNlcQAAoHcqgAFnbG0A/xUCFgUWO4CwALBAdABhALRjcCJ0eXYAAKCxKQABaXIOFhIW8yFodACgfykA4DXYId1hAHIAAAFschsWHRYAoMMhAKDCIYACYWVnc3YAKBauAjYWOhY+Fm0AAKHEIm9zLhY0Fm4AZABzoMQi9SFpdACgZiZhIm1tYQDdY2kAbgAAoPIiAKH3AGlvQxZRFmQAZQAAgfcAO29KFksW90BuI3RpbWVzAACgxyJuAPgAUBZjAHkAUmRjAG8CXhYAAAAAYhZyAG4AAKAeI28AcAAAoA0jgAJscHR1dwBuFnEWdRaSFp4W7CFhciRgZgAA4DXYVd0AotkCZW1wc30WhBaJFo0WcQBkoFAibwB0AACgUSJpIm51cwAAoDgi7CF1cwCgFCLxInVhcmUAoKEiYgBsAGUAYgBhAHIAdwBlAGQAZwDlANcAbgCAAWFkaAClFqoWtBZyAHIAbwD3APUMbwB3AG4AYQByAHIAbwB3APMA8xVhI3Jwb29uAAABbHK8FsAWZQBmAPQAHBZpAGcAaAD0AB4WYgHJFs8WawBhAHIAbwD3AJILbwLUFgAAAADYFnIAbgAAoB8jbwBwAACgDCOAAWNvdADhFukW7BYAAXJ55RboFgDgNdi53FVkbAAAoPYp8iFvaxFhAAFkcvMW9xZvAHQAAKDxImkA5qC/JVsSAAFhaP8WAhdyAPIANQNhAPIA1wvhIm5nbGUAoKYpAAFjaQ4XEBd5AF9k5yJyYXJyAKD/JwAJRGFjZGVmZ2xtbm9wcXJzdHV4MRc4F0YXWxcyBF4XaRd5F40XrBe0F78X2RcVGCEYLRg1GEAYAAFEbzUXgRZvAPQA+BUAAWNzPBdCF3UAdABlADuA6QDpQPQhZXIAoG4qAAJhaW95TRdQF1YXWhfyIW9uG2FyAGOgViI7gOoA6kDsIW9uAKBVIk1kbwB0ABdhAAFEcmIXZhdvAHQAAKBSIgDgNdgi3XKhmipuF3QXYQB2AGUAO4DoAOhAZKCWKm8AdAAAoJgqgKGZKmlscwCAF4UXhxfuInRlcnMAoOcjAKATIWSglSpvAHQAAKCXKoABYXBzAJMXlheiF2MAcgATYXQAeQBzogUinxcAAAAAoRdlAHQAAKAFInAAMaADIDMBqRerFwCgBCAAoAUgAAFnc7AXsRdLYXAAAKACIAABZ3C4F7sXbwBuABlhZgAA4DXYVt2AAWFscwDFF8sXzxdyAHOg1SJsAACg4yl1AHMAAKBxKmkAAKG1A2x21RfYF28AbgC1Y/VjAAJjc3V24BfoF/0XEBgAAWlv5BdWF3IAYwAAoFYiaQLuFwAAAADwF+0ADQThIW50AAFnbPUX+Rd0AHIAAKCWKuUhc3MAoJUqgAFhZWkAAxgGGAoYbABzAD1gcwB0AACgXyJ2AESgYSJEAACgeCrwImFyc2wAoOUpAAFEYRkYHRhvAHQAAKBTInIAcgAAoHEpgAFjZGkAJxgqGO0XcgAAoC8hbwD0AIwCAAFhaDEYMhi3YzuA8ADwQAABbXI5GD0YbAA7gOsA60BvAACgrCCAAWNpcABGGEgYSxhsACFgcwD0ACwEAAFlb08YVxhjAHQAYQB0AGkAbwDuABoEbgBlAG4AdABpAGEAbADlADME4Ql1GAAAgRgAAIMYiBgAAAAAoRilGAAAqhgAALsYvhjRGAAA1xgnGWwAbABpAG4AZwBkAG8AdABzAGUA8QBlF3kARGRtImFsZQAAoEAmgAFpbHIAjRiRGJ0Y7CFpZwCgA/tpApcYAAAAAJoYZwAAoAD7aQBnAACgBPsA4DXYI93sIWlnAKAB++whaWcA4GYAagCAAWFsdACvGLIYthh0AACgbSZpAGcAAKAC+24AcwAAoLElbwBmAJJh8AHCGAAAxhhmAADgNdhX3QABYWvJGMwYbADsAGsEdqDUIgCg2SphI3J0aW50AACgDSoAAWFv2hgiGQABY3PeGB8ZsQPnGP0YBRkSGRUZAAAdGbID7xjyGPQY9xj5GAAA+xg7gL0AvUAAoFMhO4C8ALxAAKBVIQCgWSEAoFshswEBGQAAAxkAoFQhAKBWIbQCCxkOGQAAAAAQGTuAvgC+QACgVyEAoFwhNQAAoFghtgEZGQAAGxkAoFohAKBdITgAAKBeIWwAAKBEIHcAbgAAoCIjYwByAADgNdi73IAIRWFiY2RlZmdpamxub3JzdHYARhlKGVoZXhlmGWkZkhmWGZkZnRmgGa0ZxhnLGc8Z4BkjGmygZyIAoIwqgAFjbXAAUBlTGVgZ9SF0ZfVhbQBhAOSgswM6FgCghipyImV2ZQAfYQABaXliGWUZcgBjAB1hM2RvAHQAIWGAoWUibHFzAMYEcBl6GfGhZSLOBAAAdhlsAGEAbgD0AN8EgKF+KmNkbACBGYQZjBljAACgqSpvAHQAb6CAKmyggioAoIQqZeDbIgD+cwAAoJQqcgAA4DXYJN3noGsirATtIWVsAKA3IWMAeQBTZIChdyJFYWoApxmpGasZAKCSKgCgpSoAoKQqAAJFYWVztBm2Gb0ZwhkAoGkicABwoIoq8iFveACgiipxoIgq8aCIKrUZaQBtAACg5yJwAGYAAOA12FjdYQB2AOUAYwIAAWNp0xnWGXIAAKAKIW0AAKFzImVs3BneGQCgjioAoJAqAIM+ADtjZGxxco0E6xn0GfgZ/BkBGgABY2nvGfEZAKCnKnIAAKB6Km8AdAAAoNci0CFhcgCglSl1ImVzdAAAoHwqgAJhZGVscwAKGvQZFhrVBCAa8AEPGgAAFBpwAHIAbwD4AFkZcgAAoHgpcQAAAWxxxAQbGmwAZQBzAPMASRlpAO0A5AQAAWVuJxouGnIjdG5lcXEAAOBpIgD+xQAsGgAFQWFiY2Vma29zeUAaQxpmGmoabRqDGocalhrCGtMacgDyAMwCAAJpbG1yShpOGlAaVBpyAHMA8ABxD2YAvWBpAGwA9AASBQABZHJYGlsaYwB5AEpkAKGUIWN3YBpkGmkAcgAAoEgpAKCtIWEAcgAAoA8h6SFyYyVhgAFhbHIAcxp7Gn8a8iF0c3WgZSZpAHQAAKBlJuwhaXAAoCYg4yFvbgCguSJyAADgNdgl3XMAAAFld4wakRphInJvdwAAoCUpYSJyb3cAAKAmKYACYW1vcHIAnxqjGqcauhq+GnIAcgAAoP8h9CFodACgOyJrAAABbHKsGrMaZSRmdGFycm93AACgqSHpJGdodGFycm93AKCqIWYAAOA12Fnd4iFhcgCgFSCAAWNsdADIGswa0BpyAADgNdi93GEAcwDoAGka8iFvaydhAAFicNca2xr1IWxsAKBDIOghZW4AoBAg4Qr2GgAA/RoAAAgbExsaGwAAIRs7GwAAAAA+G2IbmRuVG6sbAACyG80b0htjAHUAdABlADuA7QDtQAChYyBpeQEbBhtyAGMAO4DuAO5AOGQAAWN4CxsNG3kANWRjAGwAO4ChAKFAAAFmcssCFhsA4DXYJt1yAGEAdgBlADuA7ADsQIChSCFpbm8AJxsyGzYbAAFpbisbLxtuAHQAAKAMKnQAAKAtIuYhaW4AoNwpdABhAACgKSHsIWlnM2GAAWFvcABDG1sbXhuAAWNndABJG0sbWRtyACthgAFlbHAAcQVRG1UbaQBuAOUAyAVhAHIA9AByBWgAMWFmAACgtyJlAGQAtWEAoggiY2ZvdGkbbRt1G3kb4SFyZQCgBSFpAG4AdKAeImkAZQAAoN0pZABvAPQAWxsAoisiY2VscIEbhRuPG5QbYQBsAACguiIAAWdyiRuNG2UAcgDzACMQ4wCCG2EicmhrAACgFyryIW9kAKA8KgACY2dwdJ8boRukG6gbeQBRZG8AbgAvYWYAAOA12FrdYQC5Y3UAZQBzAHQAO4C/AL9AAAFjabUbuRtyAADgNdi+3G4AAKIIIkVkc3bCG8QbyBvQAwCg+SJvAHQAAKD1Inag9CIAoPMiaaBiIOwhZGUpYesB1hsAANkbYwB5AFZkbAA7gO8A70AAA2NmbW9zdeYb7hvyG/Ub+hsFHAABaXnqG+0bcgBjADVhOWRyAADgNdgn3eEhdGg3YnAAZgAA4DXYW93jAf8bAAADHHIAAOA12L/c8iFjeVhk6yFjeVRkAARhY2ZnaGpvcxUcGhwiHCYcKhwtHDAcNRzwIXBhdqC6A/BjAAFleR4cIRzkIWlsN2E6ZHIAAOA12CjdciJlZW4AOGFjAHkARWRjAHkAXGRwAGYAAOA12FzdYwByAADgNdjA3IALQUJFSGFiY2RlZmdoamxtbm9wcnN0dXYAXhxtHHEcdRx5HN8cBx0dHTwd3B3tHfEdAR4EHh0eLB5FHrwewx7hHgkfPR9LH4ABYXJ0AGQcZxxpHHIA8gBvB/IAxQLhIWlsAKAbKeEhcnIAoA4pZ6BmIgCgiyphAHIAAKBiKWMJjRwAAJAcAACVHAAAAAAAAAAAAACZHJwcAACmHKgcrRwAANIc9SF0ZTph7SJwdHl2AKC0KXIAYQDuAFoG4iFkYbtjZwAAoegnZGyhHKMcAKCRKeUAiwYAoIUqdQBvADuAqwCrQHIAgKOQIWJmaGxwc3QAuhy/HMIcxBzHHMoczhxmoOQhcwAAoB8pcwAAoB0p6wCyGnAAAKCrIWwAAKA5KWkAbQAAoHMpbAAAoKIhAKGrKmFl1hzaHGkAbAAAoBkpc6CtKgDgrSoA/oABYWJyAOUc6RztHHIAcgAAoAwpcgBrAACgcicAAWFr8Rz4HGMAAAFla/Yc9xx7YFtgAAFlc/wc/hwAoIspbAAAAWR1Ax0FHQCgjykAoI0pAAJhZXV5Dh0RHRodHB3yIW9uPmEAAWRpFR0YHWkAbAA8YewAowbiAPccO2QAAmNxcnMkHScdLB05HWEAAKA2KXUAbwDyoBwgqhEAAWR1MB00HeghYXIAoGcpcyJoYXIAAKBLKWgAAKCyIQCiZCJmZ3FzRB1FB5Qdnh10AIACYWhscnQATh1WHWUdbB2NHXIicm93AHSgkCFhAOkAzxxhI3Jwb29uAAABZHVeHWId7yF3bgCgvSFwAACgvCHlJGZ0YXJyb3dzAKDHIWkiZ2h0AIABYWhzAHUdex2DHXIicm93APOglCGdBmEAcgBwAG8AbwBuAPMAzgtxAHUAaQBnAGEAcgByAG8A9wBlGugkcmVldGltZXMAoMsi8aFkIk0HAACaHWwAYQBuAPQAXgcAon0qY2Rnc6YdqR2xHbcdYwAAoKgqbwB0AG+gfypyoIEqAKCDKmXg2iIA/nMAAKCTKoACYWRlZ3MAwB3GHcod1h3ZHXAAcAByAG8A+ACmHG8AdAAAoNYicQAAAWdxzx3SHXQA8gBGB2cAdADyAHQcdADyAFMHaQDtAGMHgAFpbHIA4h3mHeod8yFodACgfClvAG8A8gDKBgDgNdgp3UWgdiIAoJEqYQH1Hf4dcgAAAWR1YB35HWygvCEAoGopbABrAACghCVjAHkAWWQAomoiYWNodAweDx4VHhkecgDyAGsdbwByAG4AZQDyAGAW4SFyZACgaylyAGkAAKD6JQABaW8hHiQe5CFvdEBh9SFzdGGgsCPjIWhlAKCwIwACRWFlczMeNR48HkEeAKBoInAAcKCJKvIhb3gAoIkqcaCHKvGghyo0HmkAbQAAoOYiAARhYm5vcHR3elIeXB5fHoUelh6mHqsetB4AAW5yVh5ZHmcAAKDsJ3IAAKD9IXIA6wCwBmcAgAFsbXIAZh52Hnse5SFmdAABYXKIB2weaQBnAGgAdABhAHIAcgBvAPcAkwfhInBzdG8AoPwnaQBnAGgAdABhAHIAcgBvAPcAmgdwI2Fycm93AAABbHKNHpEeZQBmAPQAxhxpImdodAAAoKwhgAFhZmwAnB6fHqIecgAAoIUpAOA12F3ddQBzAACgLSppIm1lcwAAoDQqYQGvHrMecwB0AACgFyLhAIoOZaHKJbkeRhLuIWdlAKDKJWEAcgBsoCgAdAAAoJMpgAJhY2htdADMHs8e1R7bHt0ecgDyAJ0GbwByAG4AZQDyANYWYQByAGSgyyEAoG0pAKAOIHIAaQAAoL8iAANhY2hpcXTrHu8e1QfzHv0eBh/xIXVvAKA5IHIAAOA12MHcbQDloXIi+h4AAPweAKCNKgCgjyoAAWJ19xwBH28AcqAYIACgGiDyIW9rQmEAhDwAO2NkaGlscXJCBhcfxh0gHyQfKB8sHzEfAAFjaRsfHR8AoKYqcgAAoHkqcgBlAOUAkx3tIWVzAKDJIuEhcnIAoHYpdSJlc3QAAKB7KgABUGk1HzkfYQByAACglillocMlAgdfEnIAAAFkdUIfRx9zImhhcgAAoEop6CFhcgCgZikAAWVuTx9WH3IjdG5lcXEAAOBoIgD+xQBUHwAHRGFjZGVmaGlsbm9wc3VuH3Ifoh+rH68ftx+7H74f5h/uH/MfBwj/HwsgxCFvdACgOiIAAmNscHJ5H30fiR+eH3IAO4CvAK9AAAFldIEfgx8AoEImZaAgJ3MAZQAAoCAnc6CmIXQAbwCAoaYhZGx1AJQfmB+cH28AdwDuAHkDZQBmAPQA6gbwAOkO6yFlcgCgriUAAW95ph+qH+0hbWEAoCkqPGThIXNoAKAUIOElc3VyZWRhbmdsZQCgISJyAADgNdgq3W8AAKAnIYABY2RuAMQfyR/bH3IAbwA7gLUAtUBhoiMi0B8AANMf1x9zAPQAKxFpAHIAAKDwKm8AdAA7gLcAt0B1AHMA4qESIh4TAADjH3WgOCIAoCoqYwHqH+0fcAAAoNsq8gB+GnAAbAB1APMACAgAAWRw9x/7H+UhbHMAoKciZgAA4DXYXt0AAWN0AyAHIHIAAOA12MLc8CFvcwCgPiJsobwDECAVIPQiaW1hcACguCJhAPAAEyAADEdMUlZhYmNkZWZnaGlqbG1vcHJzdHV2dzwgRyBmIG0geSCqILgg2iDeIBEhFSEyIUMhTSFQIZwhnyHSIQAiIyKLIrEivyIUIwABZ3RAIEMgAODZIjgD9uBrItIgBwmAAWVsdABNIF8gYiBmAHQAAAFhclMgWCByInJvdwAAoM0h6SRnaHRhcnJvdwCgziEA4NgiOAP24Goi0iBfCekkZ2h0YXJyb3cAoM8hAAFEZHEgdSDhIXNoAKCvIuEhc2gAoK4igAJiY25wdACCIIYgiSCNIKIgbABhAACgByL1IXRlRGFnAADgICLSIACiSSJFaW9wlSCYIJwgniAA4HAqOANkAADgSyI4A3MASWFyAG8A+AAyCnUAcgBhoG4mbADzoG4mmwjzAa8gAACzIHAAO4CgAKBAbQBwAOXgTiI4AyoJgAJhZW91eQDBIMogzSDWINkg8AHGIAAAyCAAoEMqbwBuAEhh5CFpbEZhbgBnAGSgRyJvAHQAAOBtKjgDcAAAoEIqPWThIXNoAKATIACjYCJBYWRxc3jpIO0g+SD+IAIhDCFyAHIAAKDXIXIAAAFocvIg9SBrAACgJClvoJch9wAGD28AdAAA4FAiOAN1AGkA9gC7CAABZWkGIQohYQByAACgKCntAN8I6SFzdPOgBCLlCHIAAOA12CvdAAJFZXN0/wgcISshLiHxoXEiIiEAABMJ8aFxIgAJAAAnIWwAYQBuAPQAEwlpAO0AGQlyoG8iAKBvIoABQWFwADghOyE/IXIA8gBeIHIAcgAAoK4hYQByAACg8ipzogsiSiEAAAAAxwtkoPwiAKD6ImMAeQBaZIADQUVhZGVzdABcIV8hYiFmIWkhkyGWIXIA8gBXIADgZiI4A3IAcgAAoJohcgAAoCUggKFwImZxcwBwIYQhjiF0AAABYXJ1IXohcgByAG8A9wBlIWkAZwBoAHQAYQByAHIAbwD3AD4h8aFwImAhAACKIWwAYQBuAPQAZwlz4H0qOAMAoG4iaQDtAG0JcqBuImkA5aDqIkUJaQDkADoKAAFwdKMhpyFmAADgNdhf3YCBrAA7aW4AriGvIcchrEBuAIChCSJFZHYAtyG6Ib8hAOD5IjgDbwB0AADg9SI4A+EB1gjEIcYhAKD3IgCg9iJpAHagDCLhAagJzyHRIQCg/iIAoP0igAFhb3IA2CHsIfEhcgCAoSYiYXN0AOAh5SHpIWwAbABlAOwAywhsAADg/SrlIADgAiI4A2wiaW50AACgFCrjoYAi9yEAAPohdQDlAJsJY+CvKjgDZaCAIvEAkwkAAkFhaXQHIgoiFyIeInIA8gBsIHIAcgAAoZshY3cRIhQiAOAzKTgDAOCdITgDZyRodGFycm93AACgmyFyAGkA5aDrIr4JgANjaGltcHF1AC8iPCJHIpwhTSJQIloigKGBImNlcgA2Iv0JOSJ1AOUABgoA4DXYw9zvIXJ0bQKdIQAAAABEImEAcgDhAOEhbQBloEEi8aBEIiYKYQDyAMsIcwB1AAABYnBWIlgi5QDUCeUA3wmAAWJjcABgInMieCKAoYQiRWVzAGci7glqIgDgxSo4A2UAdABl4IIi0iBxAPGgiCJoImMAZaCBIvEA/gmAoYUiRWVzAH8iFgqCIgDgxio4A2UAdABl4IMi0iBxAPGgiSKAIgACZ2lscpIilCKaIpwi7AAMCWwAZABlADuA8QDxQOcAWwlpI2FuZ2xlAAABbHKkIqoi5SFmdGWg6iLxAEUJaSJnaHQAZaDrIvEAvgltoL0DAKEjAGVzuCK8InIAbwAAoBYhcAAAoAcggARESGFkZ2lscnMAziLSItYi2iLeIugi7SICIw8j4SFzaACgrSLhIXJyAKAEKXAAAOBNItIg4SFzaACgrCIAAWV04iLlIgDgZSLSIADgPgDSIG4iZmluAACg3imAAUFldADzIvci+iJyAHIAAKACKQDgZCLSIHLgPADSIGkAZQAA4LQi0iAAAUF0BiMKI3IAcgAAoAMp8iFpZQDgtSLSIGkAbQAA4Dwi0iCAAUFhbgAaIx4jKiNyAHIAAKDWIXIAAAFociMjJiNrAACgIylvoJYh9wD/DuUhYXIAoCcpUxJqFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVCMAAF4jaSN/I4IjjSOeI8AUAAAAAKYjwCMAANoj3yMAAO8jHiQvJD8kRCQAAWNzVyNsFHUAdABlADuA8wDzQAABaXlhI2cjcgBjoJoiO4D0APRAPmSAAmFiaW9zAHEjdCN3I3EBeiNzAOgAdhTsIWFjUWF2AACgOCrvIWxkAKC8KewhaWdTYQABY3KFI4kjaQByAACgvykA4DXYLN1vA5QjAAAAAJYjAACcI24A22JhAHYAZQA7gPIA8kAAoMEpAAFibaEjjAphAHIAAKC1KQACYWNpdKwjryO6I70jcgDyAFkUAAFpcrMjtiNyAACgvinvIXNzAKC7KW4A5QDZCgCgwCmAAWFlaQDFI8gjyyNjAHIATWFnAGEAyWOAAWNkbgDRI9Qj1iPyIW9uv2MAoLYpdQDzAHgBcABmAADgNdhg3YABYWVsAOQj5yPrI3IAAKC3KXIAcAAAoLkpdQDzAHwBAKMoImFkaW9zdvkj/CMPJBMkFiQbJHIA8gBeFIChXSplZm0AAyQJJAwkcgBvoDQhZgAAoDQhO4CqAKpAO4C6ALpA5yFvZgCgtiJyAACgVipsIm9wZQAAoFcqAKBbKoABY2xvACMkJSQrJPIACCRhAHMAaAA7gPgA+EBsAACgmCJpAGwBMyQ4JGQAZQA7gPUA9UBlAHMAYaCXInMAAKA2Km0AbAA7gPYA9kDiIWFyAKA9I+EKXiQAAHokAAB8JJQkAACYJKkkAAAAALUkEQsAAPAkAAAAAAQleiUAAIMlcgCAoSUiYXN0AGUkbyQBCwCBtgA7bGokayS2QGwAZQDsABgDaQJ1JAAAAAB4JG0AAKDzKgCg/Sp5AD9kcgCAAmNpbXB0AIUkiCSLJJkSjyRuAHQAJWBvAGQALmBpAGwAAKAwIOUhbmsAoDEgcgAA4DXYLd2AAWltbwCdJKAkpCR2oMYD1WNtAGEA9AD+B24AZQAAoA4m9KHAA64kAAC0JGMjaGZvcmsAAKDUItZjAAFhdbgkxCRuAAABY2u9JMIkawBooA8hAKAOIfYAaRpzAACkKwBhYmNkZW1zdNMkIRPXJNsk4STjJOck6yTjIWlyAKAjKmkAcgAAoCIqAAFvdYsW3yQAoCUqAKByKm4AO4CxALFAaQBtAACgJip3AG8AAKAnKoABaXB1APUk+iT+JO4idGludACgFSpmAADgNdhh3W4AZAA7gKMAo0CApHoiRWFjZWlub3N1ABMlFSUYJRslTCVRJVklSSV1JQCgsypwAACgtyp1AOUAPwtjoK8qgKJ6ImFjZW5zACclLSU0JTYlSSVwAHAAcgBvAPgAFyV1AHIAbAB5AGUA8QA/C/EAOAuAAWFlcwA8JUElRSXwInByb3gAoLkqcQBxAACgtSppAG0AAKDoImkA7QBEC20AZQDzoDIgIguAAUVhcwBDJVclRSXwAEAlgAFkZnAATwtfJXElgAFhbHMAZSVpJW0l7CFhcgCgLiPpIW5lAKASI/UhcmYAoBMjdKAdIu8AWQvyIWVsAKCwIgABY2l9JYElcgAA4DXYxdzIY24iY3NwAACgCCAAA2Zpb3BzdZElKxuVJZolnyWkJXIAAOA12C7dcABmAADgNdhi3XIiaW1lAACgVyBjAHIAAOA12MbcgAFhZW8AqiW6JcAldAAAAWVpryW2JXIAbgBpAG8AbgDzABkFbgB0AACgFipzAHQAZaA/APEACRj0AG0LgApBQkhhYmNkZWZoaWxtbm9wcnN0dXgA4yXyJfYl+iVpJpAmpia9JtUm5ib4JlonaCdxJ3UnnietJ7EnyCfiJ+cngAFhcnQA6SXsJe4lcgDyAJkM8gD6AuEhaWwAoBwpYQByAPIA3BVhAHIAAKBkKYADY2RlbnFydAAGJhAmEyYYJiYmKyZaJgABZXUKJg0mAOA9IjEDdABlAFVhaQDjACAN7SJwdHl2AKCzKWcAgKHpJ2RlbAAgJiImJCYAoJIpAKClKeUA9wt1AG8AO4C7ALtAcgAApZIhYWJjZmhscHN0dz0mQCZFJkcmSiZMJk4mUSZVJlgmcAAAoHUpZqDlIXMAAKAgKQCgMylzAACgHinrALka8ACVHmwAAKBFKWkAbQAAoHQpbAAAoKMhAKCdIQABYWleJmImaQBsAACgGilvAG6gNiJhAGwA8wB2C4ABYWJyAG8mciZ2JnIA8gAvEnIAawAAoHMnAAFha3omgSZjAAABZWt/JoAmfWBdYAABZXOFJocmAKCMKWwAAAFkdYwmjiYAoI4pAKCQKQACYWV1eZcmmiajJqUm8iFvbllhAAFkaZ4moSZpAGwAV2HsAA8M4gCAJkBkAAJjbHFzrSawJrUmuiZhAACgNylkImhhcgAAoGkpdQBvAPKgHSCjAWgAAKCzIYABYWNnAMMm0iaUC2wAgKEcIWlwcwDLJs4migxuAOUAoAxhAHIA9ADaC3QAAKCtJYABaWxyANsm3ybjJvMhaHQAoH0pbwBvAPIANgwA4DXYL90AAWFv6ib1JnIAAAFkde8m8SYAoMEhbKDAIQCgbCl2oMED8WOAAWducwD+Jk4nUCdoAHQAAANhaGxyc3QKJxInISc1Jz0nRydyInJvdwB0oJIhYQDpAFYmYSNycG9vbgAAAWR1GiceJ28AdwDuAPAmcAAAoMAh5SFmdAABYWgnJy0ncgByAG8AdwDzAAkMYQByAHAAbwBvAG4A8wATBGklZ2h0YXJyb3dzAACgySFxAHUAaQBnAGEAcgByAG8A9wBZJugkcmVldGltZXMAoMwiZwDaYmkAbgBnAGQAbwB0AHMAZQDxABwYgAFhaG0AYCdjJ2YncgDyAAkMYQDyABMEAKAPIG8idXN0AGGgsSPjIWhlAKCxI+0haWQAoO4qAAJhYnB0fCeGJ4knmScAAW5ygCeDJ2cAAKDtJ3IAAKD+IXIA6wAcDIABYWZsAI8nkieVJ3IAAKCGKQDgNdhj3XUAcwAAoC4qaSJtZXMAAKA1KgABYXCiJ6gncgBnoCkAdAAAoJQp7yJsaW50AKASKmEAcgDyADwnAAJhY2hxuCe8J6EMwCfxIXVvAKA6IHIAAOA12MfcAAFidYAmxCdvAPKgGSCoAYABaGlyAM4n0ifWJ3IAZQDlAE0n7SFlcwCgyiJpAIChuSVlZmwAXAxjEt4n9CFyaQCgzinsInVoYXIAoGgpAKAeIWENBSgJKA0oSyhVKIYoAACLKLAoAAAAAOMo5ygAABApJCkxKW0pcSmHKaYpAACYKgAAAACxKmMidXRlAFthcQB1AO8ABR+ApHsiRWFjZWlucHN5ABwoHignKCooLygyKEEoRihJKACgtCrwASMoAAAlKACguCpvAG4AYWF1AOUAgw1koLAqaQBsAF9hcgBjAF1hgAFFYXMAOCg6KD0oAKC2KnAAAKC6KmkAbQAAoOki7yJsaW50AKATKmkA7QCIDUFkbwB0AGKixSKRFgAAAABTKACgZiqAA0FhY21zdHgAYChkKG8ocyh1KHkogihyAHIAAKDYIXIAAAFocmkoayjrAJAab6CYIfcAzAd0ADuApwCnQGkAO2D3IWFyAKApKW0AAAFpbn4ozQBuAHUA8wDOAHQAAKA2J3IA7+A12DDdIxkAAmFjb3mRKJUonSisKHIAcAAAoG8mAAFoeZkonChjAHkASWRIZHIAdABtAqUoAAAAAKgoaQDkAFsPYQByAGEA7ABsJDuArQCtQAABZ22zKLsobQBhAAChwwNmdroouijCY4CjPCJkZWdsbnByAMgozCjPKNMo1yjaKN4obwB0AACgairxoEMiCw5FoJ4qAKCgKkWgnSoAoJ8qZQAAoEYi7CF1cwCgJCrhIXJyAKByKWEAcgDyAPwMAAJhZWl07Sj8KAEpCCkAAWxz8Sj4KGwAcwBlAHQAbQDpAH8oaABwAACgMyrwImFyc2wAoOQpAAFkbFoPBSllAACgIyNloKoqc6CsKgDgrCoA/oABZmxwABUpGCkfKfQhY3lMZGKgLwBhoMQpcgAAoD8jZgAA4DXYZN1hAAABZHIoKRcDZQBzAHWgYCZpAHQAAKBgJoABY3N1ADYpRilhKQABYXU6KUApcABzoJMiAOCTIgD+cABzoJQiAOCUIgD+dQAAAWJwSylWKQChjyJlcz4NUCllAHQAZaCPIvEAPw0AoZAiZXNIDVspZQB0AGWgkCLxAEkNAKGhJWFmZilbBHIAZQFrKVwEAKChJWEAcgDyAAMNAAJjZW10dyl7KX8pgilyAADgNdjI3HQAbQDuAM4AaQDsAAYpYQByAOYAVw0AAWFyiimOKXIA5qAGJhESAAFhbpIpoylpImdodAAAAWVwmSmgKXAAcwBpAGwAbwDuANkXaADpAKAkcwCvYIACYmNtbnAArin8KY4NJSooKgCkgiJFZGVtbnByc7wpvinCKcgpzCnUKdgp3CkAoMUqbwB0AACgvSpkoIYibwB0AACgwyr1IWx0AKDBKgABRWXQKdIpAKDLKgCgiiLsIXVzAKC/KuEhcnIAoHkpgAFlaXUA4inxKfQpdAAAoYIiZW7oKewpcQDxoIYivSllAHEA8aCKItEpbQAAoMcqAAFicPgp+ikAoNUqAKDTKmMAgKJ7ImFjZW5zAAcqDSoUKhYqRihwAHAAcgBvAPgAIyh1AHIAbAB5AGUA8QCDDfEAfA2AAWFlcwAcKiIqPShwAHAAcgBvAPgAPChxAPEAOShnAACgaiYApoMiMTIzRWRlaGxtbnBzPCo/KkIqRSpHKlIqWCpjKmcqaypzKncqO4C5ALlAO4CyALJAO4CzALNAAKDGKgABb3NLKk4qdAAAoL4qdQBiAACg2CpkoIcibwB0AACgxCpzAAABb3VdKmAqbAAAoMknYgAAoNcq4SFycgCgeyn1IWx0AKDCKgABRWVvKnEqAKDMKgCgiyLsIXVzAKDAKoABZWl1AH0qjCqPKnQAAKGDImVugyqHKnEA8aCHIkYqZQBxAPGgiyJwKm0AAKDIKgABYnCTKpUqAKDUKgCg1iqAAUFhbgCdKqEqrCpyAHIAAKDZIXIAAAFocqYqqCrrAJUab6CZIfcAxQf3IWFyAKAqKWwAaQBnADuA3wDfQOELzyrZKtwq6SrsKvEqAAD1KjQrAAAAAAAAAAAAAEwrbCsAAHErvSsAAAAAAADRK3IC1CoAAAAA2CrnIWV0AKAWI8RjcgDrAOUKgAFhZXkA4SrkKucq8iFvbmVh5CFpbGNhQmRvAPQAIg5sInJlYwAAoBUjcgAA4DXYMd0AAmVpa2/7KhIrKCsuK/IBACsAAAkrZQAAATRm6g0EK28AcgDlAOsNYQBzorgDECsAAAAAEit5AG0A0WMAAWNuFislK2sAAAFhcxsrIStwAHAAcgBvAPgAFw5pAG0AAKA8InMA8AD9DQABYXMsKyEr8AAXDnIAbgA7gP4A/kDsATgrOyswG2QA5QBnAmUAcwCAgdcAO2JkAEMrRCtJK9dAYaCgInIAAKAxKgCgMCqAAWVwcwBRK1MraSvhAAkh4qKkIlsrXysAAAAAYytvAHQAAKA2I2kAcgAAoPEqb+A12GXdcgBrAACg2irhAHgociJpbWUAAKA0IIABYWlwAHYreSu3K2QA5QC+DYADYWRlbXBzdACFK6MrmiunK6wrsCuzK24iZ2xlAACitSVkbHFykCuUK5ornCvvIXduAKC/JeUhZnRloMMl8QACBwCgXCJpImdodABloLkl8QBdDG8AdAAAoOwlaSJudXMAAKA6KuwhdXMAoDkqYgAAoM0p6SFtZQCgOyrlInppdW0AoOIjgAFjaHQAwivKK80rAAFyecYrySsA4DXYydxGZGMAeQBbZPIhb2tnYQABaW/UK9creAD0ANERaCJlYWQAAAFsct4r5ytlAGYAdABhAHIAcgBvAPcAXQbpJGdodGFycm93AKCgIQAJQUhhYmNkZmdobG1vcHJzdHV3CiwNLBEsHSwnLDEsQCxLLFIsYix6LIQsjyzLLOgs7Sz/LAotcgDyAAkDYQByAACgYykAAWNyFSwbLHUAdABlADuA+gD6QPIACQ1yAOMBIywAACUseQBeZHYAZQBtYQABaXkrLDAscgBjADuA+wD7QENkgAFhYmgANyw6LD0scgDyANEO7CFhY3FhYQDyAOAOAAFpckQsSCzzIWh0AKB+KQDgNdgy3XIAYQB2AGUAO4D5APlAYQFWLF8scgAAAWxyWixcLACgvyEAoL4hbABrAACggCUAAWN0Zix2LG8CbCwAAAAAcyxyAG4AZaAcI3IAAKAcI28AcAAAoA8jcgBpAACg+CUAAWFsfiyBLGMAcgBrYTuAqACoQAABZ3CILIssbwBuAHNhZgAA4DXYZt0AA2FkaGxzdZksniynLLgsuyzFLHIAcgBvAPcACQ1vAHcAbgBhAHIAcgBvAPcA2A5hI3Jwb29uAAABbHKvLLMsZQBmAPQAWyxpAGcAaAD0AF0sdQDzAKYOaQAAocUDaGzBLMIs0mNvAG4AxWPwI2Fycm93cwCgyCGAAWNpdADRLOEs5CxvAtcsAAAAAN4scgBuAGWgHSNyAACgHSNvAHAAAKAOI24AZwBvYXIAaQAAoPklYwByAADgNdjK3IABZGlyAPMs9yz6LG8AdAAAoPAi7CFkZWlhaQBmoLUlAKC0JQABYW0DLQYtcgDyAMosbAA7gPwA/EDhIm5nbGUAoKcpgAdBQkRhY2RlZmxub3Byc3oAJy0qLTAtNC2bLZ0toS2/LcMtxy3TLdgt3C3gLfwtcgDyABADYQByAHag6CoAoOkqYQBzAOgA/gIAAW5yOC08LechcnQAoJwpgANla25wcnN0AJkpSC1NLVQtXi1iLYItYQBwAHAA4QAaHG8AdABoAGkAbgDnAKEXgAFoaXIAoSmzJFotbwBwAPQAdCVooJUh7wD4JgABaXVmLWotZwBtAOEAuygAAWJwbi14LXMjZXRuZXEAceCKIgD+AODLKgD+cyNldG5lcQBx4IsiAP4A4MwqAP4AAWhyhi2KLWUAdADhABIraSNhbmdsZQAAAWxyki2WLeUhZnQAoLIiaSJnaHQAAKCzInkAMmThIXNoAKCiIoABZWxyAKcttC24LWKiKCKuLQAAAACyLWEAcgAAoLsicQAAoFoi7CFpcACg7iIAAWJ0vC1eD2EA8gBfD3IAAOA12DPddAByAOkAlS1zAHUAAAFicM0t0C0A4IIi0iAA4IMi0iBwAGYAAOA12GfdcgBvAPAAWQt0AHIA6QCaLQABY3XkLegtcgAA4DXYy9wAAWJw7C30LW4AAAFFZXUt8S0A4IoiAP5uAAABRWV/LfktAOCLIgD+6SJnemFnAKCaKYADY2Vmb3BycwANLhAuJS4pLiMuLi40LukhcmN1YQABZGkULiEuAAFiZxguHC5hAHIAAKBfKmUAcaAnIgCgWSLlIXJwAKAYIXIAAOA12DTdcABmAADgNdho3WWgQCJhAHQA6ABqD2MAcgAA4DXYzNzjCuQRUC4AAFQuAABYLmIuAAAAAGMubS5wLnQuAAAAAIguki4AAJouJxIqEnQAcgDpAB0ScgAA4DXYNd0AAUFhWy5eLnIA8gDnAnIA8gCTB75jAAFBYWYuaS5yAPIA4AJyAPIAjAdhAPAAeh5pAHMAAKD7IoABZHB0APgReS6DLgABZmx9LoAuAOA12GnddQDzAP8RaQBtAOUABBIAAUFhiy6OLnIA8gDuAnIA8gCaBwABY3GVLgoScgAA4DXYzdwAAXB0nS6hLmwAdQDzACUScgDpACASAARhY2VmaW9zdbEuvC7ELsguzC7PLtQu2S5jAAABdXm2LrsudABlADuA/QD9QE9kAAFpecAuwy5yAGMAd2FLZG4AO4ClAKVAcgAA4DXYNt1jAHkAV2RwAGYAAOA12GrdYwByAADgNdjO3AABY23dLt8ueQBOZGwAO4D/AP9AAAVhY2RlZmhpb3N38y73Lv8uAi8MLxAvEy8YLx0vIi9jInV0ZQB6YQABYXn7Lv4u8iFvbn5hN2RvAHQAfGEAAWV0Bi8KL3QAcgDmAB8QYQC2Y3IAAOA12DfdYwB5ADZk5yJyYXJyAKDdIXAAZgAA4DXYa91jAHIAAOA12M/cAAFqbiYvKC8AoA0gagAAoAwg`)})),Y3=s((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.xmlDecodeTree=void 0,e.xmlDecodeTree=(0,q3().decodeBase64)(`AAJhZ2xxBwARABMAFQBtAg0AAAAAAA8AcAAmYG8AcwAnYHQAPmB0ADxg9SFvdCJg`)})),sae=s((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.BinTrieFlags=void 0;var t;(function(e){e[e.VALUE_LENGTH=49152]=`VALUE_LENGTH`,e[e.FLAG13=8192]=`FLAG13`,e[e.BRANCH_LENGTH=8064]=`BRANCH_LENGTH`,e[e.JUMP_TABLE=127]=`JUMP_TABLE`})(t||(e.BinTrieFlags=t={}))})),X3=s((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.xmlDecodeTree=e.htmlDecodeTree=e.replaceCodePoint=e.fromCodePoint=e.decodeCodePoint=e.EntityDecoder=e.DecodingMode=void 0,e.determineBranch=h,e.decodeHTML=v,e.decodeHTMLAttribute=y,e.decodeHTMLStrict=b,e.decodeXML=x;var t=K3(),n=J3(),r=Y3(),i=sae(),a;(function(e){e[e.NUM=35]=`NUM`,e[e.SEMI=59]=`SEMI`,e[e.EQUALS=61]=`EQUALS`,e[e.ZERO=48]=`ZERO`,e[e.NINE=57]=`NINE`,e[e.LOWER_A=97]=`LOWER_A`,e[e.LOWER_F=102]=`LOWER_F`,e[e.LOWER_X=120]=`LOWER_X`,e[e.LOWER_Z=122]=`LOWER_Z`,e[e.UPPER_A=65]=`UPPER_A`,e[e.UPPER_F=70]=`UPPER_F`,e[e.UPPER_Z=90]=`UPPER_Z`})(a||={});var o=32;function s(e){return e>=a.ZERO&&e<=a.NINE}function c(e){return e>=a.UPPER_A&&e<=a.UPPER_F||e>=a.LOWER_A&&e<=a.LOWER_F}function l(e){return e>=a.UPPER_A&&e<=a.UPPER_Z||e>=a.LOWER_A&&e<=a.LOWER_Z||s(e)}function u(e){return e===a.EQUALS||l(e)}var d;(function(e){e[e.EntityStart=0]=`EntityStart`,e[e.NumericStart=1]=`NumericStart`,e[e.NumericDecimal=2]=`NumericDecimal`,e[e.NumericHex=3]=`NumericHex`,e[e.NamedEntity=4]=`NamedEntity`})(d||={});var f;(function(e){e[e.Legacy=0]=`Legacy`,e[e.Strict=1]=`Strict`,e[e.Attribute=2]=`Attribute`})(f||(e.DecodingMode=f={}));var p=class{constructor(e,t,n){this.decodeTree=e,this.emitCodePoint=t,this.errors=n,this.state=d.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=f.Strict,this.runConsumed=0}startEntity(e){this.decodeMode=e,this.state=d.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1,this.runConsumed=0}write(e,t){switch(this.state){case d.EntityStart:return e.charCodeAt(t)===a.NUM?(this.state=d.NumericStart,this.consumed+=1,this.stateNumericStart(e,t+1)):(this.state=d.NamedEntity,this.stateNamedEntity(e,t));case d.NumericStart:return this.stateNumericStart(e,t);case d.NumericDecimal:return this.stateNumericDecimal(e,t);case d.NumericHex:return this.stateNumericHex(e,t);case d.NamedEntity:return this.stateNamedEntity(e,t)}}stateNumericStart(e,t){return t>=e.length?-1:(e.charCodeAt(t)|o)===a.LOWER_X?(this.state=d.NumericHex,this.consumed+=1,this.stateNumericHex(e,t+1)):(this.state=d.NumericDecimal,this.stateNumericDecimal(e,t))}stateNumericHex(e,t){for(;t<e.length;){let n=e.charCodeAt(t);if(s(n)||c(n)){let e=n<=a.NINE?n-a.ZERO:(n|o)-a.LOWER_A+10;this.result=this.result*16+e,this.consumed++,t++}else return this.emitNumericEntity(n,3)}return-1}stateNumericDecimal(e,t){for(;t<e.length;){let n=e.charCodeAt(t);if(s(n))this.result=this.result*10+(n-a.ZERO),this.consumed++,t++;else return this.emitNumericEntity(n,2)}return-1}emitNumericEntity(e,n){var r;if(this.consumed<=n)return(r=this.errors)==null||r.absenceOfDigitsInNumericCharacterReference(this.consumed),0;if(e===a.SEMI)this.consumed+=1;else if(this.decodeMode===f.Strict)return 0;return this.emitCodePoint((0,t.replaceCodePoint)(this.result),this.consumed),this.errors&&(e!==a.SEMI&&this.errors.missingSemicolonAfterCharacterReference(),this.errors.validateNumericCharacterReference(this.result)),this.consumed}stateNamedEntity(e,t){let{decodeTree:n}=this,r=n[this.treeIndex],o=(r&i.BinTrieFlags.VALUE_LENGTH)>>14;for(;t<e.length;){if(o===0&&(r&i.BinTrieFlags.FLAG13)!==0){let a=(r&i.BinTrieFlags.BRANCH_LENGTH)>>7;if(this.runConsumed===0){let n=r&i.BinTrieFlags.JUMP_TABLE;if(e.charCodeAt(t)!==n)return this.result===0?0:this.emitNotTerminatedNamedEntity();t++,this.excess++,this.runConsumed++}for(;this.runConsumed<a;){if(t>=e.length)return-1;let r=this.runConsumed-1,i=n[this.treeIndex+1+(r>>1)],a=r%2==0?i&255:i>>8&255;if(e.charCodeAt(t)!==a)return this.runConsumed=0,this.result===0?0:this.emitNotTerminatedNamedEntity();t++,this.excess++,this.runConsumed++}this.runConsumed=0,this.treeIndex+=1+(a>>1),r=n[this.treeIndex],o=(r&i.BinTrieFlags.VALUE_LENGTH)>>14}if(t>=e.length)break;let s=e.charCodeAt(t);if(s===a.SEMI&&o!==0&&(r&i.BinTrieFlags.FLAG13)!==0)return this.emitNamedEntityData(this.treeIndex,o,this.consumed+this.excess);if(this.treeIndex=h(n,r,this.treeIndex+Math.max(1,o),s),this.treeIndex<0)return this.result===0||this.decodeMode===f.Attribute&&(o===0||u(s))?0:this.emitNotTerminatedNamedEntity();if(r=n[this.treeIndex],o=(r&i.BinTrieFlags.VALUE_LENGTH)>>14,o!==0){if(s===a.SEMI)return this.emitNamedEntityData(this.treeIndex,o,this.consumed+this.excess);this.decodeMode!==f.Strict&&(r&i.BinTrieFlags.FLAG13)===0&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}t++,this.excess++}return-1}emitNotTerminatedNamedEntity(){var e;let{result:t,decodeTree:n}=this,r=(n[t]&i.BinTrieFlags.VALUE_LENGTH)>>14;return this.emitNamedEntityData(t,r,this.consumed),(e=this.errors)==null||e.missingSemicolonAfterCharacterReference(),this.consumed}emitNamedEntityData(e,t,n){let{decodeTree:r}=this;return this.emitCodePoint(t===1?r[e]&~(i.BinTrieFlags.VALUE_LENGTH|i.BinTrieFlags.FLAG13):r[e+1],n),t===3&&this.emitCodePoint(r[e+2],n),n}end(){var e;switch(this.state){case d.NamedEntity:return this.result!==0&&(this.decodeMode!==f.Attribute||this.result===this.treeIndex)?this.emitNotTerminatedNamedEntity():0;case d.NumericDecimal:return this.emitNumericEntity(0,2);case d.NumericHex:return this.emitNumericEntity(0,3);case d.NumericStart:return(e=this.errors)==null||e.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case d.EntityStart:return 0}}};e.EntityDecoder=p;function m(e){let n=``,r=new p(e,e=>n+=(0,t.fromCodePoint)(e));return function(e,t){let i=0,a=0;for(;(a=e.indexOf(`&`,a))>=0;){n+=e.slice(i,a),r.startEntity(t);let o=r.write(e,a+1);if(o<0){i=a+r.end();break}i=a+o,a=o===0?i+1:i}let o=n+e.slice(i);return n=``,o}}function h(e,t,n,r){let a=(t&i.BinTrieFlags.BRANCH_LENGTH)>>7,o=t&i.BinTrieFlags.JUMP_TABLE;if(a===0)return o!==0&&r===o?n:-1;if(o){let t=r-o;return t<0||t>=a?-1:e[n+t]-1}let s=a+1>>1,c=0,l=a-1;for(;c<=l;){let t=c+l>>>1,i=e[n+(t>>1)]>>(t&1)*8&255;if(i<r)c=t+1;else if(i>r)l=t-1;else return e[n+s+t]}return-1}var g=m(n.htmlDecodeTree),_=m(r.xmlDecodeTree);function v(e,t=f.Legacy){return g(e,t)}function y(e){return g(e,f.Attribute)}function b(e){return g(e,f.Strict)}function x(e){return _(e,f.Strict)}var S=K3();Object.defineProperty(e,"decodeCodePoint",{enumerable:!0,get:function(){return S.decodeCodePoint}}),Object.defineProperty(e,"fromCodePoint",{enumerable:!0,get:function(){return S.fromCodePoint}}),Object.defineProperty(e,"replaceCodePoint",{enumerable:!0,get:function(){return S.replaceCodePoint}});var C=J3();Object.defineProperty(e,"htmlDecodeTree",{enumerable:!0,get:function(){return C.htmlDecodeTree}});var w=Y3();Object.defineProperty(e,"xmlDecodeTree",{enumerable:!0,get:function(){return w.xmlDecodeTree}})})),Z3=s((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.QuoteType=void 0;var t=X3(),n;(function(e){e[e.Tab=9]=`Tab`,e[e.NewLine=10]=`NewLine`,e[e.FormFeed=12]=`FormFeed`,e[e.CarriageReturn=13]=`CarriageReturn`,e[e.Space=32]=`Space`,e[e.ExclamationMark=33]=`ExclamationMark`,e[e.Number=35]=`Number`,e[e.Amp=38]=`Amp`,e[e.SingleQuote=39]=`SingleQuote`,e[e.DoubleQuote=34]=`DoubleQuote`,e[e.Dash=45]=`Dash`,e[e.Slash=47]=`Slash`,e[e.Zero=48]=`Zero`,e[e.Nine=57]=`Nine`,e[e.Semi=59]=`Semi`,e[e.Lt=60]=`Lt`,e[e.Eq=61]=`Eq`,e[e.Gt=62]=`Gt`,e[e.Questionmark=63]=`Questionmark`,e[e.UpperA=65]=`UpperA`,e[e.LowerA=97]=`LowerA`,e[e.UpperF=70]=`UpperF`,e[e.LowerF=102]=`LowerF`,e[e.UpperZ=90]=`UpperZ`,e[e.LowerZ=122]=`LowerZ`,e[e.LowerX=120]=`LowerX`,e[e.OpeningSquareBracket=91]=`OpeningSquareBracket`})(n||={});var r;(function(e){e[e.Text=1]=`Text`,e[e.BeforeTagName=2]=`BeforeTagName`,e[e.InTagName=3]=`InTagName`,e[e.InSelfClosingTag=4]=`InSelfClosingTag`,e[e.BeforeClosingTagName=5]=`BeforeClosingTagName`,e[e.InClosingTagName=6]=`InClosingTagName`,e[e.AfterClosingTagName=7]=`AfterClosingTagName`,e[e.BeforeAttributeName=8]=`BeforeAttributeName`,e[e.InAttributeName=9]=`InAttributeName`,e[e.AfterAttributeName=10]=`AfterAttributeName`,e[e.BeforeAttributeValue=11]=`BeforeAttributeValue`,e[e.InAttributeValueDq=12]=`InAttributeValueDq`,e[e.InAttributeValueSq=13]=`InAttributeValueSq`,e[e.InAttributeValueNq=14]=`InAttributeValueNq`,e[e.BeforeDeclaration=15]=`BeforeDeclaration`,e[e.InDeclaration=16]=`InDeclaration`,e[e.InProcessingInstruction=17]=`InProcessingInstruction`,e[e.BeforeComment=18]=`BeforeComment`,e[e.CDATASequence=19]=`CDATASequence`,e[e.InSpecialComment=20]=`InSpecialComment`,e[e.InCommentLike=21]=`InCommentLike`,e[e.BeforeSpecialS=22]=`BeforeSpecialS`,e[e.BeforeSpecialT=23]=`BeforeSpecialT`,e[e.SpecialStartSequence=24]=`SpecialStartSequence`,e[e.InSpecialTag=25]=`InSpecialTag`,e[e.InEntity=26]=`InEntity`})(r||={});function i(e){return e===n.Space||e===n.NewLine||e===n.Tab||e===n.FormFeed||e===n.CarriageReturn}function a(e){return e===n.Slash||e===n.Gt||i(e)}function o(e){return e>=n.LowerA&&e<=n.LowerZ||e>=n.UpperA&&e<=n.UpperZ}var s;(function(e){e[e.NoValue=0]=`NoValue`,e[e.Unquoted=1]=`Unquoted`,e[e.Single=2]=`Single`,e[e.Double=3]=`Double`})(s||(e.QuoteType=s={}));var c={Cdata:new Uint8Array([67,68,65,84,65,91]),CdataEnd:new Uint8Array([93,93,62]),CommentEnd:new Uint8Array([45,45,62]),ScriptEnd:new Uint8Array([60,47,115,99,114,105,112,116]),StyleEnd:new Uint8Array([60,47,115,116,121,108,101]),TitleEnd:new Uint8Array([60,47,116,105,116,108,101]),TextareaEnd:new Uint8Array([60,47,116,101,120,116,97,114,101,97]),XmpEnd:new Uint8Array([60,47,120,109,112])};e.default=class{constructor({xmlMode:e=!1,decodeEntities:n=!0},i){this.cbs=i,this.state=r.Text,this.buffer=``,this.sectionStart=0,this.index=0,this.entityStart=0,this.baseState=r.Text,this.isSpecial=!1,this.running=!0,this.offset=0,this.currentSequence=void 0,this.sequenceIndex=0,this.xmlMode=e,this.decodeEntities=n,this.entityDecoder=new t.EntityDecoder(e?t.xmlDecodeTree:t.htmlDecodeTree,(e,t)=>this.emitCodePoint(e,t))}reset(){this.state=r.Text,this.buffer=``,this.sectionStart=0,this.index=0,this.baseState=r.Text,this.currentSequence=void 0,this.running=!0,this.offset=0}write(e){this.offset+=this.buffer.length,this.buffer=e,this.parse()}end(){this.running&&this.finish()}pause(){this.running=!1}resume(){this.running=!0,this.index<this.buffer.length+this.offset&&this.parse()}stateText(e){e===n.Lt||!this.decodeEntities&&this.fastForwardTo(n.Lt)?(this.index>this.sectionStart&&this.cbs.ontext(this.sectionStart,this.index),this.state=r.BeforeTagName,this.sectionStart=this.index):this.decodeEntities&&e===n.Amp&&this.startEntity()}stateSpecialStartSequence(e){let t=this.sequenceIndex===this.currentSequence.length;if(!(t?a(e):(e|32)===this.currentSequence[this.sequenceIndex]))this.isSpecial=!1;else if(!t){this.sequenceIndex++;return}this.sequenceIndex=0,this.state=r.InTagName,this.stateInTagName(e)}stateInSpecialTag(e){if(this.sequenceIndex===this.currentSequence.length){if(e===n.Gt||i(e)){let t=this.index-this.currentSequence.length;if(this.sectionStart<t){let e=this.index;this.index=t,this.cbs.ontext(this.sectionStart,t),this.index=e}this.isSpecial=!1,this.sectionStart=t+2,this.stateInClosingTagName(e);return}this.sequenceIndex=0}(e|32)===this.currentSequence[this.sequenceIndex]?this.sequenceIndex+=1:this.sequenceIndex===0?this.currentSequence===c.TitleEnd?this.decodeEntities&&e===n.Amp&&this.startEntity():this.fastForwardTo(n.Lt)&&(this.sequenceIndex=1):this.sequenceIndex=Number(e===n.Lt)}stateCDATASequence(e){e===c.Cdata[this.sequenceIndex]?++this.sequenceIndex===c.Cdata.length&&(this.state=r.InCommentLike,this.currentSequence=c.CdataEnd,this.sequenceIndex=0,this.sectionStart=this.index+1):(this.sequenceIndex=0,this.state=r.InDeclaration,this.stateInDeclaration(e))}fastForwardTo(e){for(;++this.index<this.buffer.length+this.offset;)if(this.buffer.charCodeAt(this.index-this.offset)===e)return!0;return this.index=this.buffer.length+this.offset-1,!1}stateInCommentLike(e){e===this.currentSequence[this.sequenceIndex]?++this.sequenceIndex===this.currentSequence.length&&(this.currentSequence===c.CdataEnd?this.cbs.oncdata(this.sectionStart,this.index,2):this.cbs.oncomment(this.sectionStart,this.index,2),this.sequenceIndex=0,this.sectionStart=this.index+1,this.state=r.Text):this.sequenceIndex===0?this.fastForwardTo(this.currentSequence[0])&&(this.sequenceIndex=1):e!==this.currentSequence[this.sequenceIndex-1]&&(this.sequenceIndex=0)}isTagStartChar(e){return this.xmlMode?!a(e):o(e)}startSpecial(e,t){this.isSpecial=!0,this.currentSequence=e,this.sequenceIndex=t,this.state=r.SpecialStartSequence}stateBeforeTagName(e){if(e===n.ExclamationMark)this.state=r.BeforeDeclaration,this.sectionStart=this.index+1;else if(e===n.Questionmark)this.state=r.InProcessingInstruction,this.sectionStart=this.index+1;else if(this.isTagStartChar(e)){let t=e|32;this.sectionStart=this.index,this.xmlMode?this.state=r.InTagName:t===c.ScriptEnd[2]?this.state=r.BeforeSpecialS:t===c.TitleEnd[2]||t===c.XmpEnd[2]?this.state=r.BeforeSpecialT:this.state=r.InTagName}else e===n.Slash?this.state=r.BeforeClosingTagName:(this.state=r.Text,this.stateText(e))}stateInTagName(e){a(e)&&(this.cbs.onopentagname(this.sectionStart,this.index),this.sectionStart=-1,this.state=r.BeforeAttributeName,this.stateBeforeAttributeName(e))}stateBeforeClosingTagName(e){i(e)||(e===n.Gt?this.state=r.Text:(this.state=this.isTagStartChar(e)?r.InClosingTagName:r.InSpecialComment,this.sectionStart=this.index))}stateInClosingTagName(e){(e===n.Gt||i(e))&&(this.cbs.onclosetag(this.sectionStart,this.index),this.sectionStart=-1,this.state=r.AfterClosingTagName,this.stateAfterClosingTagName(e))}stateAfterClosingTagName(e){(e===n.Gt||this.fastForwardTo(n.Gt))&&(this.state=r.Text,this.sectionStart=this.index+1)}stateBeforeAttributeName(e){e===n.Gt?(this.cbs.onopentagend(this.index),this.isSpecial?(this.state=r.InSpecialTag,this.sequenceIndex=0):this.state=r.Text,this.sectionStart=this.index+1):e===n.Slash?this.state=r.InSelfClosingTag:i(e)||(this.state=r.InAttributeName,this.sectionStart=this.index)}stateInSelfClosingTag(e){e===n.Gt?(this.cbs.onselfclosingtag(this.index),this.state=r.Text,this.sectionStart=this.index+1,this.isSpecial=!1):i(e)||(this.state=r.BeforeAttributeName,this.stateBeforeAttributeName(e))}stateInAttributeName(e){(e===n.Eq||a(e))&&(this.cbs.onattribname(this.sectionStart,this.index),this.sectionStart=this.index,this.state=r.AfterAttributeName,this.stateAfterAttributeName(e))}stateAfterAttributeName(e){e===n.Eq?this.state=r.BeforeAttributeValue:e===n.Slash||e===n.Gt?(this.cbs.onattribend(s.NoValue,this.sectionStart),this.sectionStart=-1,this.state=r.BeforeAttributeName,this.stateBeforeAttributeName(e)):i(e)||(this.cbs.onattribend(s.NoValue,this.sectionStart),this.state=r.InAttributeName,this.sectionStart=this.index)}stateBeforeAttributeValue(e){e===n.DoubleQuote?(this.state=r.InAttributeValueDq,this.sectionStart=this.index+1):e===n.SingleQuote?(this.state=r.InAttributeValueSq,this.sectionStart=this.index+1):i(e)||(this.sectionStart=this.index,this.state=r.InAttributeValueNq,this.stateInAttributeValueNoQuotes(e))}handleInAttributeValue(e,t){e===t||!this.decodeEntities&&this.fastForwardTo(t)?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(t===n.DoubleQuote?s.Double:s.Single,this.index+1),this.state=r.BeforeAttributeName):this.decodeEntities&&e===n.Amp&&this.startEntity()}stateInAttributeValueDoubleQuotes(e){this.handleInAttributeValue(e,n.DoubleQuote)}stateInAttributeValueSingleQuotes(e){this.handleInAttributeValue(e,n.SingleQuote)}stateInAttributeValueNoQuotes(e){i(e)||e===n.Gt?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(s.Unquoted,this.index),this.state=r.BeforeAttributeName,this.stateBeforeAttributeName(e)):this.decodeEntities&&e===n.Amp&&this.startEntity()}stateBeforeDeclaration(e){e===n.OpeningSquareBracket?(this.state=r.CDATASequence,this.sequenceIndex=0):this.state=e===n.Dash?r.BeforeComment:r.InDeclaration}stateInDeclaration(e){(e===n.Gt||this.fastForwardTo(n.Gt))&&(this.cbs.ondeclaration(this.sectionStart,this.index),this.state=r.Text,this.sectionStart=this.index+1)}stateInProcessingInstruction(e){(e===n.Gt||this.fastForwardTo(n.Gt))&&(this.cbs.onprocessinginstruction(this.sectionStart,this.index),this.state=r.Text,this.sectionStart=this.index+1)}stateBeforeComment(e){e===n.Dash?(this.state=r.InCommentLike,this.currentSequence=c.CommentEnd,this.sequenceIndex=2,this.sectionStart=this.index+1):this.state=r.InDeclaration}stateInSpecialComment(e){(e===n.Gt||this.fastForwardTo(n.Gt))&&(this.cbs.oncomment(this.sectionStart,this.index,0),this.state=r.Text,this.sectionStart=this.index+1)}stateBeforeSpecialS(e){let t=e|32;t===c.ScriptEnd[3]?this.startSpecial(c.ScriptEnd,4):t===c.StyleEnd[3]?this.startSpecial(c.StyleEnd,4):(this.state=r.InTagName,this.stateInTagName(e))}stateBeforeSpecialT(e){switch(e|32){case c.TitleEnd[3]:this.startSpecial(c.TitleEnd,4);break;case c.TextareaEnd[3]:this.startSpecial(c.TextareaEnd,4);break;case c.XmpEnd[3]:this.startSpecial(c.XmpEnd,4);break;default:this.state=r.InTagName,this.stateInTagName(e)}}startEntity(){this.baseState=this.state,this.state=r.InEntity,this.entityStart=this.index,this.entityDecoder.startEntity(this.xmlMode?t.DecodingMode.Strict:this.baseState===r.Text||this.baseState===r.InSpecialTag?t.DecodingMode.Legacy:t.DecodingMode.Attribute)}stateInEntity(){let e=this.index-this.offset,t=this.entityDecoder.write(this.buffer,e);if(t>=0)this.state=this.baseState,t===0&&--this.index;else{if(e<this.buffer.length&&this.buffer.charCodeAt(e)===n.Amp){this.state=this.baseState,--this.index;return}this.index=this.offset+this.buffer.length-1}}cleanup(){this.running&&this.sectionStart!==this.index&&(this.state===r.Text||this.state===r.InSpecialTag&&this.sequenceIndex===0?(this.cbs.ontext(this.sectionStart,this.index),this.sectionStart=this.index):(this.state===r.InAttributeValueDq||this.state===r.InAttributeValueSq||this.state===r.InAttributeValueNq)&&(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=this.index))}shouldContinue(){return this.index<this.buffer.length+this.offset&&this.running}parse(){for(;this.shouldContinue();){let e=this.buffer.charCodeAt(this.index-this.offset);switch(this.state){case r.Text:this.stateText(e);break;case r.SpecialStartSequence:this.stateSpecialStartSequence(e);break;case r.InSpecialTag:this.stateInSpecialTag(e);break;case r.CDATASequence:this.stateCDATASequence(e);break;case r.InAttributeValueDq:this.stateInAttributeValueDoubleQuotes(e);break;case r.InAttributeName:this.stateInAttributeName(e);break;case r.InCommentLike:this.stateInCommentLike(e);break;case r.InSpecialComment:this.stateInSpecialComment(e);break;case r.BeforeAttributeName:this.stateBeforeAttributeName(e);break;case r.InTagName:this.stateInTagName(e);break;case r.InClosingTagName:this.stateInClosingTagName(e);break;case r.BeforeTagName:this.stateBeforeTagName(e);break;case r.AfterAttributeName:this.stateAfterAttributeName(e);break;case r.InAttributeValueSq:this.stateInAttributeValueSingleQuotes(e);break;case r.BeforeAttributeValue:this.stateBeforeAttributeValue(e);break;case r.BeforeClosingTagName:this.stateBeforeClosingTagName(e);break;case r.AfterClosingTagName:this.stateAfterClosingTagName(e);break;case r.BeforeSpecialS:this.stateBeforeSpecialS(e);break;case r.BeforeSpecialT:this.stateBeforeSpecialT(e);break;case r.InAttributeValueNq:this.stateInAttributeValueNoQuotes(e);break;case r.InSelfClosingTag:this.stateInSelfClosingTag(e);break;case r.InDeclaration:this.stateInDeclaration(e);break;case r.BeforeDeclaration:this.stateBeforeDeclaration(e);break;case r.BeforeComment:this.stateBeforeComment(e);break;case r.InProcessingInstruction:this.stateInProcessingInstruction(e);break;case r.InEntity:this.stateInEntity();break}this.index++}this.cleanup()}finish(){this.state===r.InEntity&&(this.entityDecoder.end(),this.state=this.baseState),this.handleTrailingData(),this.cbs.onend()}handleTrailingData(){let e=this.buffer.length+this.offset;this.sectionStart>=e||(this.state===r.InCommentLike?this.currentSequence===c.CdataEnd?this.cbs.oncdata(this.sectionStart,e,0):this.cbs.oncomment(this.sectionStart,e,0):this.state===r.InTagName||this.state===r.BeforeAttributeName||this.state===r.BeforeAttributeValue||this.state===r.AfterAttributeName||this.state===r.InAttributeName||this.state===r.InAttributeValueSq||this.state===r.InAttributeValueDq||this.state===r.InAttributeValueNq||this.state===r.InClosingTagName||this.cbs.ontext(this.sectionStart,e))}emitCodePoint(e,t){this.baseState!==r.Text&&this.baseState!==r.InSpecialTag?(this.sectionStart<this.entityStart&&this.cbs.onattribdata(this.sectionStart,this.entityStart),this.sectionStart=this.entityStart+t,this.index=this.sectionStart-1,this.cbs.onattribentity(e)):(this.sectionStart<this.entityStart&&this.cbs.ontext(this.sectionStart,this.entityStart),this.sectionStart=this.entityStart+t,this.index=this.sectionStart-1,this.cbs.ontextentity(e,this.sectionStart))}}})),Q3=s((e=>{var t=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||(`get`in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),n=e&&e.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),r=e&&e.__importStar||(function(){var e=function(t){return e=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t},e(t)};return function(r){if(r&&r.__esModule)return r;var i={};if(r!=null)for(var a=e(r),o=0;o<a.length;o++)a[o]!=="default"&&t(i,r,a[o]);return n(i,r),i}})();Object.defineProperty(e,"__esModule",{value:!0}),e.Parser=void 0;var i=r(Z3()),a=X3(),o=new Set([`input`,`option`,`optgroup`,`select`,`button`,`datalist`,`textarea`]),s=new Set([`p`]),c=new Set([`thead`,`tbody`]),l=new Set([`dd`,`dt`]),u=new Set([`rt`,`rp`]),d=new Map([[`tr`,new Set([`tr`,`th`,`td`])],[`th`,new Set([`th`])],[`td`,new Set([`thead`,`th`,`td`])],[`body`,new Set([`head`,`link`,`script`])],[`li`,new Set([`li`])],[`p`,s],[`h1`,s],[`h2`,s],[`h3`,s],[`h4`,s],[`h5`,s],[`h6`,s],[`select`,o],[`input`,o],[`output`,o],[`button`,o],[`datalist`,o],[`textarea`,o],[`option`,new Set([`option`])],[`optgroup`,new Set([`optgroup`,`option`])],[`dd`,l],[`dt`,l],[`address`,s],[`article`,s],[`aside`,s],[`blockquote`,s],[`details`,s],[`div`,s],[`dl`,s],[`fieldset`,s],[`figcaption`,s],[`figure`,s],[`footer`,s],[`form`,s],[`header`,s],[`hr`,s],[`main`,s],[`nav`,s],[`ol`,s],[`pre`,s],[`section`,s],[`table`,s],[`ul`,s],[`rt`,u],[`rp`,u],[`tbody`,c],[`tfoot`,c]]),f=new Set([`area`,`base`,`basefont`,`br`,`col`,`command`,`embed`,`frame`,`hr`,`img`,`input`,`isindex`,`keygen`,`link`,`meta`,`param`,`source`,`track`,`wbr`]),p=new Set([`math`,`svg`]),m=new Set([`mi`,`mo`,`mn`,`ms`,`mtext`,`annotation-xml`,`foreignobject`,`desc`,`title`]),h=/\s|\//;e.Parser=class{constructor(e,t={}){var n,r;this.options=t,this.startIndex=0,this.endIndex=0,this.openTagStart=0,this.tagname=``,this.attribname=``,this.attribvalue=``,this.attribs=null,this.stack=[],this.buffers=[],this.bufferOffset=0,this.writeIndex=0,this.ended=!1,this.cbs=e??{},this.htmlMode=!this.options.xmlMode,this.lowerCaseTagNames=t.lowerCaseTags??this.htmlMode,this.lowerCaseAttributeNames=t.lowerCaseAttributeNames??this.htmlMode,this.recognizeSelfClosing=t.recognizeSelfClosing??!this.htmlMode,this.tokenizer=new(t.Tokenizer??i.default)(this.options,this),this.foreignContext=[!this.htmlMode],(r=(n=this.cbs).onparserinit)==null||r.call(n,this)}ontext(e,t){var n,r;let i=this.getSlice(e,t);this.endIndex=t-1,(r=(n=this.cbs).ontext)==null||r.call(n,i),this.startIndex=t}ontextentity(e,t){var n,r;this.endIndex=t-1,(r=(n=this.cbs).ontext)==null||r.call(n,(0,a.fromCodePoint)(e)),this.startIndex=t}isVoidElement(e){return this.htmlMode&&f.has(e)}onopentagname(e,t){this.endIndex=t;let n=this.getSlice(e,t);this.lowerCaseTagNames&&(n=n.toLowerCase()),this.emitOpenTag(n)}emitOpenTag(e){var t,n,r,i;this.openTagStart=this.startIndex,this.tagname=e;let a=this.htmlMode&&d.get(e);if(a)for(;this.stack.length>0&&a.has(this.stack[0]);){let e=this.stack.shift();(n=(t=this.cbs).onclosetag)==null||n.call(t,e,!0)}this.isVoidElement(e)||(this.stack.unshift(e),this.htmlMode&&(p.has(e)?this.foreignContext.unshift(!0):m.has(e)&&this.foreignContext.unshift(!1))),(i=(r=this.cbs).onopentagname)==null||i.call(r,e),this.cbs.onopentag&&(this.attribs={})}endOpenTag(e){var t,n;this.startIndex=this.openTagStart,this.attribs&&=((n=(t=this.cbs).onopentag)==null||n.call(t,this.tagname,this.attribs,e),null),this.cbs.onclosetag&&this.isVoidElement(this.tagname)&&this.cbs.onclosetag(this.tagname,!0),this.tagname=``}onopentagend(e){this.endIndex=e,this.endOpenTag(!1),this.startIndex=e+1}onclosetag(e,t){var n,r,i,a,o,s,c,l;this.endIndex=t;let u=this.getSlice(e,t);if(this.lowerCaseTagNames&&(u=u.toLowerCase()),this.htmlMode&&(p.has(u)||m.has(u))&&this.foreignContext.shift(),this.isVoidElement(u))this.htmlMode&&u===`br`&&((a=(i=this.cbs).onopentagname)==null||a.call(i,`br`),(s=(o=this.cbs).onopentag)==null||s.call(o,`br`,{},!0),(l=(c=this.cbs).onclosetag)==null||l.call(c,`br`,!1));else{let e=this.stack.indexOf(u);if(e!==-1)for(let t=0;t<=e;t++){let i=this.stack.shift();(r=(n=this.cbs).onclosetag)==null||r.call(n,i,t!==e)}else this.htmlMode&&u===`p`&&(this.emitOpenTag(`p`),this.closeCurrentTag(!0))}this.startIndex=t+1}onselfclosingtag(e){this.endIndex=e,this.recognizeSelfClosing||this.foreignContext[0]?(this.closeCurrentTag(!1),this.startIndex=e+1):this.onopentagend(e)}closeCurrentTag(e){var t,n;let r=this.tagname;this.endOpenTag(e),this.stack[0]===r&&((n=(t=this.cbs).onclosetag)==null||n.call(t,r,!e),this.stack.shift())}onattribname(e,t){this.startIndex=e;let n=this.getSlice(e,t);this.attribname=this.lowerCaseAttributeNames?n.toLowerCase():n}onattribdata(e,t){this.attribvalue+=this.getSlice(e,t)}onattribentity(e){this.attribvalue+=(0,a.fromCodePoint)(e)}onattribend(e,t){var n,r;this.endIndex=t,(r=(n=this.cbs).onattribute)==null||r.call(n,this.attribname,this.attribvalue,e===i.QuoteType.Double?`"`:e===i.QuoteType.Single?`'`:e===i.QuoteType.NoValue?void 0:null),this.attribs&&!Object.prototype.hasOwnProperty.call(this.attribs,this.attribname)&&(this.attribs[this.attribname]=this.attribvalue),this.attribvalue=``}getInstructionName(e){let t=e.search(h),n=t<0?e:e.substr(0,t);return this.lowerCaseTagNames&&(n=n.toLowerCase()),n}ondeclaration(e,t){this.endIndex=t;let n=this.getSlice(e,t);if(this.cbs.onprocessinginstruction){let e=this.getInstructionName(n);this.cbs.onprocessinginstruction(`!${e}`,`!${n}`)}this.startIndex=t+1}onprocessinginstruction(e,t){this.endIndex=t;let n=this.getSlice(e,t);if(this.cbs.onprocessinginstruction){let e=this.getInstructionName(n);this.cbs.onprocessinginstruction(`?${e}`,`?${n}`)}this.startIndex=t+1}oncomment(e,t,n){var r,i,a,o;this.endIndex=t,(i=(r=this.cbs).oncomment)==null||i.call(r,this.getSlice(e,t-n)),(o=(a=this.cbs).oncommentend)==null||o.call(a),this.startIndex=t+1}oncdata(e,t,n){var r,i,a,o,s,c,l,u,d,f;this.endIndex=t;let p=this.getSlice(e,t-n);!this.htmlMode||this.options.recognizeCDATA?((i=(r=this.cbs).oncdatastart)==null||i.call(r),(o=(a=this.cbs).ontext)==null||o.call(a,p),(c=(s=this.cbs).oncdataend)==null||c.call(s)):((u=(l=this.cbs).oncomment)==null||u.call(l,`[CDATA[${p}]]`),(f=(d=this.cbs).oncommentend)==null||f.call(d)),this.startIndex=t+1}onend(){var e,t;if(this.cbs.onclosetag){this.endIndex=this.startIndex;for(let e=0;e<this.stack.length;e++)this.cbs.onclosetag(this.stack[e],!0)}(t=(e=this.cbs).onend)==null||t.call(e)}reset(){var e,t,n,r;(t=(e=this.cbs).onreset)==null||t.call(e),this.tokenizer.reset(),this.tagname=``,this.attribname=``,this.attribs=null,this.stack.length=0,this.startIndex=0,this.endIndex=0,(r=(n=this.cbs).onparserinit)==null||r.call(n,this),this.buffers.length=0,this.foreignContext.length=0,this.foreignContext.unshift(!this.htmlMode),this.bufferOffset=0,this.writeIndex=0,this.ended=!1}parseComplete(e){this.reset(),this.end(e)}getSlice(e,t){for(;e-this.bufferOffset>=this.buffers[0].length;)this.shiftBuffer();let n=this.buffers[0].slice(e-this.bufferOffset,t-this.bufferOffset);for(;t-this.bufferOffset>this.buffers[0].length;)this.shiftBuffer(),n+=this.buffers[0].slice(0,t-this.bufferOffset);return n}shiftBuffer(){this.bufferOffset+=this.buffers[0].length,this.writeIndex--,this.buffers.shift()}write(e){var t,n;if(this.ended){(n=(t=this.cbs).onerror)==null||n.call(t,Error(`.write() after done!`));return}this.buffers.push(e),this.tokenizer.running&&(this.tokenizer.write(e),this.writeIndex++)}end(e){var t,n;if(this.ended){(n=(t=this.cbs).onerror)==null||n.call(t,Error(`.end() after done!`));return}e&&this.write(e),this.ended=!0,this.tokenizer.end()}pause(){this.tokenizer.pause()}resume(){for(this.tokenizer.resume();this.tokenizer.running&&this.writeIndex<this.buffers.length;)this.tokenizer.write(this.buffers[this.writeIndex++]);this.ended&&this.tokenizer.end()}parseChunk(e){this.write(e)}done(e){this.end(e)}}})),$3=s((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.Doctype=e.CDATA=e.Tag=e.Style=e.Script=e.Comment=e.Directive=e.Text=e.Root=e.isTag=e.ElementType=void 0;var t;(function(e){e.Root=`root`,e.Text=`text`,e.Directive=`directive`,e.Comment=`comment`,e.Script=`script`,e.Style=`style`,e.Tag=`tag`,e.CDATA=`cdata`,e.Doctype=`doctype`})(t=e.ElementType||={});function n(e){return e.type===t.Tag||e.type===t.Script||e.type===t.Style}e.isTag=n,e.Root=t.Root,e.Text=t.Text,e.Directive=t.Directive,e.Comment=t.Comment,e.Script=t.Script,e.Style=t.Style,e.Tag=t.Tag,e.CDATA=t.CDATA,e.Doctype=t.Doctype})),e6=s((e=>{var t=e&&e.__extends||(function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){if(typeof n!=`function`&&n!==null)throw TypeError(`Class extends value `+String(n)+` is not a constructor or null`);e(t,n);function r(){this.constructor=t}t.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}})(),n=e&&e.__assign||function(){return n=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n],t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},n.apply(this,arguments)};Object.defineProperty(e,"__esModule",{value:!0}),e.cloneNode=e.hasChildren=e.isDocument=e.isDirective=e.isComment=e.isText=e.isCDATA=e.isTag=e.Element=e.Document=e.CDATA=e.NodeWithChildren=e.ProcessingInstruction=e.Comment=e.Text=e.DataNode=e.Node=void 0;var r=$3(),i=function(){function e(){this.parent=null,this.prev=null,this.next=null,this.startIndex=null,this.endIndex=null}return Object.defineProperty(e.prototype,"parentNode",{get:function(){return this.parent},set:function(e){this.parent=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"previousSibling",{get:function(){return this.prev},set:function(e){this.prev=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"nextSibling",{get:function(){return this.next},set:function(e){this.next=e},enumerable:!1,configurable:!0}),e.prototype.cloneNode=function(e){return e===void 0&&(e=!1),b(this,e)},e}();e.Node=i;var a=function(e){t(n,e);function n(t){var n=e.call(this)||this;return n.data=t,n}return Object.defineProperty(n.prototype,"nodeValue",{get:function(){return this.data},set:function(e){this.data=e},enumerable:!1,configurable:!0}),n}(i);e.DataNode=a;var o=function(e){t(n,e);function n(){var t=e!==null&&e.apply(this,arguments)||this;return t.type=r.ElementType.Text,t}return Object.defineProperty(n.prototype,"nodeType",{get:function(){return 3},enumerable:!1,configurable:!0}),n}(a);e.Text=o;var s=function(e){t(n,e);function n(){var t=e!==null&&e.apply(this,arguments)||this;return t.type=r.ElementType.Comment,t}return Object.defineProperty(n.prototype,"nodeType",{get:function(){return 8},enumerable:!1,configurable:!0}),n}(a);e.Comment=s;var c=function(e){t(n,e);function n(t,n){var i=e.call(this,n)||this;return i.name=t,i.type=r.ElementType.Directive,i}return Object.defineProperty(n.prototype,"nodeType",{get:function(){return 1},enumerable:!1,configurable:!0}),n}(a);e.ProcessingInstruction=c;var l=function(e){t(n,e);function n(t){var n=e.call(this)||this;return n.children=t,n}return Object.defineProperty(n.prototype,"firstChild",{get:function(){return this.children[0]??null},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"lastChild",{get:function(){return this.children.length>0?this.children[this.children.length-1]:null},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"childNodes",{get:function(){return this.children},set:function(e){this.children=e},enumerable:!1,configurable:!0}),n}(i);e.NodeWithChildren=l;var u=function(e){t(n,e);function n(){var t=e!==null&&e.apply(this,arguments)||this;return t.type=r.ElementType.CDATA,t}return Object.defineProperty(n.prototype,"nodeType",{get:function(){return 4},enumerable:!1,configurable:!0}),n}(l);e.CDATA=u;var d=function(e){t(n,e);function n(){var t=e!==null&&e.apply(this,arguments)||this;return t.type=r.ElementType.Root,t}return Object.defineProperty(n.prototype,"nodeType",{get:function(){return 9},enumerable:!1,configurable:!0}),n}(l);e.Document=d;var f=function(e){t(n,e);function n(t,n,i,a){i===void 0&&(i=[]),a===void 0&&(a=t===`script`?r.ElementType.Script:t===`style`?r.ElementType.Style:r.ElementType.Tag);var o=e.call(this,i)||this;return o.name=t,o.attribs=n,o.type=a,o}return Object.defineProperty(n.prototype,"nodeType",{get:function(){return 1},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"tagName",{get:function(){return this.name},set:function(e){this.name=e},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"attributes",{get:function(){var e=this;return Object.keys(this.attribs).map(function(t){return{name:t,value:e.attribs[t],namespace:e[`x-attribsNamespace`]?.[t],prefix:e[`x-attribsPrefix`]?.[t]}})},enumerable:!1,configurable:!0}),n}(l);e.Element=f;function p(e){return(0,r.isTag)(e)}e.isTag=p;function m(e){return e.type===r.ElementType.CDATA}e.isCDATA=m;function h(e){return e.type===r.ElementType.Text}e.isText=h;function g(e){return e.type===r.ElementType.Comment}e.isComment=g;function _(e){return e.type===r.ElementType.Directive}e.isDirective=_;function v(e){return e.type===r.ElementType.Root}e.isDocument=v;function y(e){return Object.prototype.hasOwnProperty.call(e,`children`)}e.hasChildren=y;function b(e,t){t===void 0&&(t=!1);var r;if(h(e))r=new o(e.data);else if(g(e))r=new s(e.data);else if(p(e)){var i=t?x(e.children):[],a=new f(e.name,n({},e.attribs),i);i.forEach(function(e){return e.parent=a}),e.namespace!=null&&(a.namespace=e.namespace),e[`x-attribsNamespace`]&&(a[`x-attribsNamespace`]=n({},e[`x-attribsNamespace`])),e[`x-attribsPrefix`]&&(a[`x-attribsPrefix`]=n({},e[`x-attribsPrefix`])),r=a}else if(m(e)){var i=t?x(e.children):[],l=new u(i);i.forEach(function(e){return e.parent=l}),r=l}else if(v(e)){var i=t?x(e.children):[],y=new d(i);i.forEach(function(e){return e.parent=y}),e[`x-mode`]&&(y[`x-mode`]=e[`x-mode`]),r=y}else if(_(e)){var b=new c(e.name,e.data);e[`x-name`]!=null&&(b[`x-name`]=e[`x-name`],b[`x-publicId`]=e[`x-publicId`],b[`x-systemId`]=e[`x-systemId`]),r=b}else throw Error(`Not implemented yet: ${e.type}`);return r.startIndex=e.startIndex,r.endIndex=e.endIndex,e.sourceCodeLocation!=null&&(r.sourceCodeLocation=e.sourceCodeLocation),r}e.cloneNode=b;function x(e){for(var t=e.map(function(e){return b(e,!0)}),n=1;n<t.length;n++)t[n].prev=t[n-1],t[n-1].next=t[n];return t}})),t6=s((e=>{var t=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||(`get`in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),n=e&&e.__exportStar||function(e,n){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(n,r)&&t(n,e,r)};Object.defineProperty(e,"__esModule",{value:!0}),e.DomHandler=void 0;var r=$3(),i=e6();n(e6(),e);var a={withStartIndices:!1,withEndIndices:!1,xmlMode:!1},o=function(){function e(e,t,n){this.dom=[],this.root=new i.Document(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null,typeof t==`function`&&(n=t,t=a),typeof e==`object`&&(t=e,e=void 0),this.callback=e??null,this.options=t??a,this.elementCB=n??null}return e.prototype.onparserinit=function(e){this.parser=e},e.prototype.onreset=function(){this.dom=[],this.root=new i.Document(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null},e.prototype.onend=function(){this.done||(this.done=!0,this.parser=null,this.handleCallback(null))},e.prototype.onerror=function(e){this.handleCallback(e)},e.prototype.onclosetag=function(){this.lastNode=null;var e=this.tagStack.pop();this.options.withEndIndices&&(e.endIndex=this.parser.endIndex),this.elementCB&&this.elementCB(e)},e.prototype.onopentag=function(e,t){var n=this.options.xmlMode?r.ElementType.Tag:void 0,a=new i.Element(e,t,void 0,n);this.addNode(a),this.tagStack.push(a)},e.prototype.ontext=function(e){var t=this.lastNode;if(t&&t.type===r.ElementType.Text)t.data+=e,this.options.withEndIndices&&(t.endIndex=this.parser.endIndex);else{var n=new i.Text(e);this.addNode(n),this.lastNode=n}},e.prototype.oncomment=function(e){if(this.lastNode&&this.lastNode.type===r.ElementType.Comment){this.lastNode.data+=e;return}var t=new i.Comment(e);this.addNode(t),this.lastNode=t},e.prototype.oncommentend=function(){this.lastNode=null},e.prototype.oncdatastart=function(){var e=new i.Text(``),t=new i.CDATA([e]);this.addNode(t),e.parent=t,this.lastNode=e},e.prototype.oncdataend=function(){this.lastNode=null},e.prototype.onprocessinginstruction=function(e,t){var n=new i.ProcessingInstruction(e,t);this.addNode(n)},e.prototype.handleCallback=function(e){if(typeof this.callback==`function`)this.callback(e,this.dom);else if(e)throw e},e.prototype.addNode=function(e){var t=this.tagStack[this.tagStack.length-1],n=t.children[t.children.length-1];this.options.withStartIndices&&(e.startIndex=this.parser.startIndex),this.options.withEndIndices&&(e.endIndex=this.parser.endIndex),t.children.push(e),n&&(e.prev=n,n.next=e),e.parent=t,this.lastNode=null},e}();e.DomHandler=o,e.default=o})),cae=s((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.default=new Uint16Array(`ᵁ<Õıʊҝջאٵ۞ޢߖࠏઑඡ༉༦ረዡᐕᒝᓃᓟᔥ\0\0\0\0\0\0ᕫᛍᦍᰒᷝ↰⊍⏀⏻⑂⠤⤒ⴈ⹈⿎〖㊺㘹㞬㣾㨨㩱㫠㬮ࠀEMabcfglmnoprstu\\bfms¦³¹ÈÏlig耻Æ䃆P耻&䀦cute耻Á䃁reve;䄂Āiyx}rc耻Â䃂;䐐r;쀀𝔄rave耻À䃀pha;䎑acr;䄀d;橓Āgp¡on;䄄f;쀀𝔸plyFunction;恡ing耻Å䃅Ācs¾Ãr;쀀𝒜ign;扔ilde耻Ã䃃ml耻Ä䃄ЀaceforsuåûþėĜĢħĪĀcrêòkslash;或Ŷöø;櫧ed;挆y;䐑ƀcrtąċĔause;戵noullis;愬a;䎒r;쀀𝔅pf;쀀𝔹eve;䋘còēmpeq;扎܀HOacdefhilorsuōőŖƀƞƢƵƷƺǜȕɳɸɾcy;䐧PY耻©䂩ƀcpyŝŢźute;䄆Ā;iŧŨ拒talDifferentialD;慅leys;愭ȀaeioƉƎƔƘron;䄌dil耻Ç䃇rc;䄈nint;戰ot;䄊ĀdnƧƭilla;䂸terDot;䂷òſi;䎧rcleȀDMPTLJNjǑǖot;抙inus;抖lus;投imes;抗oĀcsǢǸkwiseContourIntegral;戲eCurlyĀDQȃȏoubleQuote;思uote;怙ȀlnpuȞȨɇɕonĀ;eȥȦ户;橴ƀgitȯȶȺruent;扡nt;戯ourIntegral;戮ĀfrɌɎ;愂oduct;成nterClockwiseContourIntegral;戳oss;樯cr;쀀𝒞pĀ;Cʄʅ拓ap;才րDJSZacefiosʠʬʰʴʸˋ˗ˡ˦̳ҍĀ;oŹʥtrahd;椑cy;䐂cy;䐅cy;䐏ƀgrsʿ˄ˇger;怡r;憡hv;櫤Āayː˕ron;䄎;䐔lĀ;t˝˞戇a;䎔r;쀀𝔇Āaf˫̧Ācm˰̢riticalȀADGT̖̜̀̆cute;䂴oŴ̋̍;䋙bleAcute;䋝rave;䁠ilde;䋜ond;拄ferentialD;慆Ѱ̽\0\0\0͔͂\0Ѕf;쀀𝔻ƀ;DE͈͉͍䂨ot;惜qual;扐blèCDLRUVͣͲϏϢϸontourIntegraìȹoɴ\0\0ͻ»͉nArrow;懓Āeo·ΤftƀARTΐΖΡrrow;懐ightArrow;懔eåˊngĀLRΫτeftĀARγιrrow;柸ightArrow;柺ightArrow;柹ightĀATϘϞrrow;懒ee;抨pɁϩ\0\0ϯrrow;懑ownArrow;懕erticalBar;戥ǹABLRTaВЪаўѿͼrrowƀ;BUНОТ憓ar;椓pArrow;懵reve;䌑eft˒к\0ц\0ѐightVector;楐eeVector;楞ectorĀ;Bљњ憽ar;楖ightǔѧ\0ѱeeVector;楟ectorĀ;BѺѻ懁ar;楗eeĀ;A҆҇护rrow;憧ĀctҒҗr;쀀𝒟rok;䄐ࠀNTacdfglmopqstuxҽӀӄӋӞӢӧӮӵԡԯԶՒ՝ՠեG;䅊H耻Ð䃐cute耻É䃉ƀaiyӒӗӜron;䄚rc耻Ê䃊;䐭ot;䄖r;쀀𝔈rave耻È䃈ement;戈ĀapӺӾcr;䄒tyɓԆ\0\0ԒmallSquare;旻erySmallSquare;斫ĀgpԦԪon;䄘f;쀀𝔼silon;䎕uĀaiԼՉlĀ;TՂՃ橵ilde;扂librium;懌Āci՚r;愰m;橳a;䎗ml耻Ë䃋Āipժկsts;戃onentialE;慇ʀcfiosօֈ֍ֲy;䐤r;쀀𝔉lledɓ֗\0\0֣mallSquare;旼erySmallSquare;斪Ͱֺ\0ֿ\0\0ׄf;쀀𝔽All;戀riertrf;愱còJTabcdfgorstרׯؒؖ؛؝أ٬ٲcy;䐃耻>䀾mmaĀ;d䎓;䏜reve;䄞ƀeiy؇،ؐdil;䄢rc;䄜;䐓ot;䄠r;쀀𝔊;拙pf;쀀𝔾eater̀EFGLSTصلَٖٛ٦qualĀ;Lؾؿ扥ess;招ullEqual;执reater;檢ess;扷lantEqual;橾ilde;扳cr;쀀𝒢;扫ЀAacfiosuڅڋږڛڞڪھۊRDcy;䐪Āctڐڔek;䋇;䁞irc;䄤r;愌lbertSpace;愋ǰگ\0ڲf;愍izontalLine;攀Āctۃۅòکrok;䄦mpńېۘownHumðįqual;扏܀EJOacdfgmnostuۺ۾܃܇ܚܞܡܨ݄ݸދޏޕcy;䐕lig;䄲cy;䐁cute耻Í䃍Āiyܓܘrc耻Î䃎;䐘ot;䄰r;愑rave耻Ì䃌ƀ;apܠܯܿĀcgܴܷr;䄪inaryI;慈lieóϝǴ݉\0ݢĀ;eݍݎ戬Āgrݓݘral;戫section;拂isibleĀCTݬݲomma;恣imes;恢ƀgptݿރވon;䄮f;쀀𝕀a;䎙cr;愐ilde;䄨ǫޚ\0ޞcy;䐆l耻Ï䃏ʀcfosuެ߂ߐĀiyޱrc;䄴;䐙r;쀀𝔍pf;쀀𝕁ǣ߇\0ߌr;쀀𝒥rcy;䐈kcy;䐄HJacfosߤߨ߽߬߱ࠂࠈcy;䐥cy;䐌ppa;䎚Āey߶dil;䄶;䐚r;쀀𝔎pf;쀀𝕂cr;쀀𝒦րJTaceflmostࠥࠩࠬࡐࡣসে্ੇcy;䐉耻<䀼ʀcmnpr࠷࠼ࡁࡄࡍute;䄹bda;䎛g;柪lacetrf;愒r;憞ƀaeyࡗࡡron;䄽dil;䄻;䐛Āfsࡨ॰tԀACDFRTUVarࡾࢩࢱࣦ࣠ࣼयज़ΐ४ĀnrࢃgleBracket;柨rowƀ;BR࢙࢚࢞憐ar;懤ightArrow;懆eiling;挈oǵࢷ\0ࣃbleBracket;柦nǔࣈ\0࣒eeVector;楡ectorĀ;Bࣛࣜ懃ar;楙loor;挊ightĀAV࣯ࣵrrow;憔ector;楎Āerँगeƀ;AVउऊऐ抣rrow;憤ector;楚iangleƀ;BEतथऩ抲ar;槏qual;抴pƀDTVषूौownVector;楑eeVector;楠ectorĀ;Bॖॗ憿ar;楘ectorĀ;B॥०憼ar;楒ightáΜs̀EFGLSTॾঋকঝঢভqualGreater;拚ullEqual;扦reater;扶ess;檡lantEqual;橽ilde;扲r;쀀𝔏Ā;eঽা拘ftarrow;懚idot;䄿ƀnpwਖਛgȀLRlr৷ਂਐeftĀAR০৬rrow;柵ightArrow;柷ightArrow;柶eftĀarγਊightáοightáϊf;쀀𝕃erĀLRਢਬeftArrow;憙ightArrow;憘ƀchtਾੀੂòࡌ;憰rok;䅁;扪Ѐacefiosuਗ਼અઋp;椅y;䐜Ādl੯iumSpace;恟lintrf;愳r;쀀𝔐nusPlus;戓pf;쀀𝕄cò੶;䎜ҀJacefostuણધભીଔଙඑඞcy;䐊cute;䅃ƀaeyહાron;䅇dil;䅅;䐝ƀgswે૰ativeƀMTV૨ediumSpace;怋hiĀcn૦ëeryThiîtedĀGLଆreaterGreateòٳessLesóੈLine;䀊r;쀀𝔑ȀBnptଢନଷreak;恠BreakingSpace;䂠f;愕ڀ;CDEGHLNPRSTV୕ୖ୪௫ఄ಄ದൡඅ櫬Āoungruent;扢pCap;扭oubleVerticalBar;戦ƀlqxஃஊement;戉ualĀ;Tஒஓ扠ilde;쀀≂̸ists;戄reater;EFGLSTஶஷ扯qual;扱ullEqual;쀀≧̸reater;쀀≫̸ess;批lantEqual;쀀⩾̸ilde;扵umpń௲ownHump;쀀≎̸qual;쀀≏̸eĀfsఊధtTriangleƀ;BEచఛడ拪ar;쀀⧏̸qual;括s̀;EGLSTవశ఼ౄోౘ扮qual;扰reater;扸ess;쀀≪̸lantEqual;쀀⩽̸ilde;扴estedĀGL౨౹reaterGreater;쀀⪢̸essLess;쀀⪡̸recedesƀ;ESಒಓಛ技qual;쀀⪯̸lantEqual;拠ĀeiಫಹverseElement;戌ghtTriangleƀ;BEೋೌ拫ar;쀀⧐̸qual;拭ĀquೝഌuareSuĀbp೨setĀ;Eೳ쀀⊏̸qual;拢ersetĀ;Eഃആ쀀⊐̸qual;拣ƀbcpഓതൎsetĀ;Eഛഞ쀀⊂⃒qual;抈ceedsȀ;ESTലള഻െ抁qual;쀀⪰̸lantEqual;拡ilde;쀀≿̸ersetĀ;E൘൛쀀⊃⃒qual;抉ildeȀ;EFT൮൯൵ൿ扁qual;扄ullEqual;扇ilde;扉erticalBar;戤cr;쀀𝒩ilde耻Ñ䃑;䎝܀Eacdfgmoprstuvලෂෛ෧ขภยา฿ไlig;䅒cute耻Ó䃓Āiyීrc耻Ô䃔;䐞blac;䅐r;쀀𝔒rave耻Ò䃒ƀaei෮ෲcr;䅌ga;䎩cron;䎟pf;쀀𝕆enCurlyĀDQฎบoubleQuote;怜uote;怘;橔Āclวฬr;쀀𝒪ash耻Ø䃘iŬืde耻Õ䃕es;樷ml耻Ö䃖erĀBP๋Āar๐๓r;怾acĀek๚;揞et;掴arenthesis;揜ҀacfhilorsງຊຏຒດຝະrtialD;戂y;䐟r;쀀𝔓i;䎦;䎠usMinus;䂱Āipຢອncareplanåڝf;愙Ȁ;eio຺ູ檻cedesȀ;EST່້扺qual;檯lantEqual;扼ilde;找me;怳Ādpuct;戏ortionĀ;aȥl;戝Āci༁༆r;쀀𝒫;䎨ȀUfos༑༖༛༟OT耻"䀢r;쀀𝔔pf;愚cr;쀀𝒬BEacefhiorsu༾གྷཇའཱིྦྷྪྭ႖ႩႴႾarr;椐G耻®䂮ƀcnrཎནབute;䅔g;柫rĀ;tཛྷཝ憠l;椖ƀaeyཧཬཱron;䅘dil;䅖;䐠Ā;vླྀཹ愜erseĀEUྂྙĀlq྇ྎement;戋uilibrium;懋pEquilibrium;楯r»ཹo;䎡ghtЀACDFTUVa࿁ဢဨၛႇϘĀnr࿆࿒gleBracket;柩rowƀ;BL憒ar;懥eftArrow;懄eiling;按oǵ\0စbleBracket;柧nǔည\0နeeVector;楝ectorĀ;Bဝသ懂ar;楕loor;挋Āerိ၃eƀ;AVဵံြ抢rrow;憦ector;楛iangleƀ;BEၐၑၕ抳ar;槐qual;抵pƀDTVၣၮၸownVector;楏eeVector;楜ectorĀ;Bႂႃ憾ar;楔ectorĀ;B႑႒懀ar;楓Āpuႛ႞f;愝ndImplies;楰ightarrow;懛ĀchႹႼr;愛;憱leDelayed;槴ڀHOacfhimoqstuფჱჷჽᄙᄞᅑᅖᅡᅧᆵᆻᆿĀCcჩხHcy;䐩y;䐨FTcy;䐬cute;䅚ʀ;aeiyᄈᄉᄎᄓᄗ檼ron;䅠dil;䅞rc;䅜;䐡r;쀀𝔖ortȀDLRUᄪᄴᄾᅉownArrow»ОeftArrow»࢚ightArrow»pArrow;憑gma;䎣allCircle;战pf;쀀𝕊ɲᅭ\0\0ᅰt;戚areȀ;ISUᅻᅼᆉᆯ斡ntersection;抓uĀbpᆏᆞsetĀ;Eᆗᆘ抏qual;抑ersetĀ;Eᆨᆩ抐qual;抒nion;抔cr;쀀𝒮ar;拆ȀbcmpᇈᇛሉላĀ;sᇍᇎ拐etĀ;Eᇍᇕqual;抆ĀchᇠህeedsȀ;ESTᇭᇮᇴᇿ扻qual;檰lantEqual;扽ilde;承Tháྌ;我ƀ;esሒሓሣ拑rsetĀ;Eሜም抃qual;抇et»ሓրHRSacfhiorsሾቄቕቱቶኟዂወዑORN耻Þ䃞ADE;愢ĀHcቒcy;䐋y;䐦Ābuቚቜ;䀉;䎤ƀaeyብቪቯron;䅤dil;䅢;䐢r;쀀𝔗ĀeiቻDzኀ\0ኇefore;戴a;䎘ĀcnኘkSpace;쀀 Space;怉ldeȀ;EFTካኬኲኼ戼qual;扃ullEqual;扅ilde;扈pf;쀀𝕋ipleDot;惛Āctዖዛr;쀀𝒯rok;䅦ૡዷጎጚጦ\0ጬጱ\0\0\0\0\0ጸጽ፷ᎅ\0ᐄᐊᐐĀcrዻጁute耻Ú䃚rĀ;oጇገ憟cir;楉rǣጓ\0y;䐎ve;䅬Āiyጞጣrc耻Û䃛;䐣blac;䅰r;쀀𝔘rave耻Ù䃙acr;䅪Ādiፁ፩erĀBPፈ፝Āarፍፐr;䁟acĀekፗፙ;揟et;掵arenthesis;揝onĀ;P፰፱拃lus;抎Āgp፻on;䅲f;쀀𝕌ЀADETadps᎕ᎮᎸᏄϨᏒᏗᏳrrowƀ;BDᅐᎠᎤar;椒ownArrow;懅ownArrow;憕quilibrium;楮eeĀ;AᏋᏌ报rrow;憥ownáϳerĀLRᏞᏨeftArrow;憖ightArrow;憗iĀ;lᏹᏺ䏒on;䎥ing;䅮cr;쀀𝒰ilde;䅨ml耻Ü䃜ҀDbcdefosvᐧᐬᐰᐳᐾᒅᒊᒐᒖash;披ar;櫫y;䐒ashĀ;lᐻᐼ抩;櫦Āerᑃᑅ;拁ƀbtyᑌᑐᑺar;怖Ā;iᑏᑕcalȀBLSTᑡᑥᑪᑴar;戣ine;䁼eparator;杘ilde;所ThinSpace;怊r;쀀𝔙pf;쀀𝕍cr;쀀𝒱dash;抪ʀcefosᒧᒬᒱᒶᒼirc;䅴dge;拀r;쀀𝔚pf;쀀𝕎cr;쀀𝒲Ȁfiosᓋᓐᓒᓘr;쀀𝔛;䎞pf;쀀𝕏cr;쀀𝒳ҀAIUacfosuᓱᓵᓹᓽᔄᔏᔔᔚᔠcy;䐯cy;䐇cy;䐮cute耻Ý䃝Āiyᔉᔍrc;䅶;䐫r;쀀𝔜pf;쀀𝕐cr;쀀𝒴ml;䅸ЀHacdefosᔵᔹᔿᕋᕏᕝᕠᕤcy;䐖cute;䅹Āayᕄᕉron;䅽;䐗ot;䅻Dzᕔ\0ᕛoWidtèa;䎖r;愨pf;愤cr;쀀𝒵ᖃᖊᖐ\0ᖰᖶᖿ\0\0\0\0ᗆᗛᗫᙟ᙭\0ᚕ᚛ᚲᚹ\0ᚾcute耻á䃡reve;䄃̀;Ediuyᖜᖝᖡᖣᖨᖭ戾;쀀∾̳;房rc耻â䃢te肻´̆;䐰lig耻æ䃦Ā;r²ᖺ;쀀𝔞rave耻à䃠ĀepᗊᗖĀfpᗏᗔsym;愵èᗓha;䎱ĀapᗟcĀclᗤᗧr;䄁g;樿ɤᗰ\0\0ᘊʀ;adsvᗺᗻᗿᘁᘇ戧nd;橕;橜lope;橘;橚;elmrszᘘᘙᘛᘞᘿᙏᙙ戠;榤e»ᘙsdĀ;aᘥᘦ戡ѡᘰᘲᘴᘶᘸᘺᘼᘾ;榨;榩;榪;榫;榬;榭;榮;榯tĀ;vᙅᙆ戟bĀ;dᙌᙍ抾;榝Āptᙔᙗh;戢»¹arr;捼Āgpᙣᙧon;䄅f;쀀𝕒;Eaeiopᙻᙽᚂᚄᚇᚊ;橰cir;橯;扊d;手s;䀧roxĀ;eᚒñᚃing耻å䃥ƀctyᚡᚦᚨr;쀀𝒶;䀪mpĀ;eᚯñʈilde耻ã䃣ml耻ä䃤Āciᛂᛈoninôɲnt;樑ࠀNabcdefiklnoprsu᛭ᛱᜰᝃᝈ០៦ᠹᡐᜍ᥈ᥰot;櫭ĀcrᛶkȀcepsᜀᜅᜍᜓong;扌psilon;䏶rime;怵imĀ;e戽q;拍Ŷᜢᜦee;抽edĀ;gᜬᜭ挅e»ᜭrkĀ;tbrk;掶Āoyᜁᝁ;䐱quo;怞ʀcmprtᝓᝡᝤᝨausĀ;eĊĉptyv;榰séᜌnoõēƀahwᝯᝳ;䎲;愶een;扬r;쀀𝔟gcostuvwឍឝឳេ៕៛ƀaiuបពរðݠrc;旯p»፱ƀdptឤឨឭot;樀lus;樁imes;樂ɱឹ\0\0ើcup;樆ar;昅riangleĀdu៍្own;施p;斳plus;樄eåᑄåᒭarow;植ƀakoᠦᠵĀcn៲ᠣkƀlst֫᠂ozenge;槫riangleȀ;dlr᠒᠓᠘斴own;斾eft;旂ight;斸k;搣Ʊᠫ\0ᠳƲᠯ\0ᠱ;斒;斑4;斓ck;斈ĀeoᠾᡍĀ;qᡃᡆ쀀=⃥uiv;쀀≡⃥t;挐Ȁptwxᡙᡞᡧᡬf;쀀𝕓Ā;tᏋᡣom»Ꮜtie;拈DHUVbdhmptuvᢅᢖᢪᢻᣗᣛᣬᤅᤊᤐᤡȀLRlrᢎᢐᢒᢔ;敗;敔;敖;敓ʀ;DUduᢡᢢᢤᢦᢨ敐;敦;敩;敤;敧ȀLRlrᢳᢵᢷᢹ;敝;敚;敜;教;HLRhlrᣊᣋᣍᣏᣑᣓᣕ救;敬;散;敠;敫;敢;敟ox;槉ȀLRlrᣤᣦᣨᣪ;敕;敒;攐;攌ʀ;DUduڽ;敥;敨;攬;攴inus;抟lus;択imes;抠ȀLRlrᤙᤛᤝ;敛;敘;攘;攔;HLRhlrᤰᤱᤳᤵᤷ᤻᤹攂;敪;敡;敞;攼;攤;攜Āevģbar耻¦䂦Ȁceioᥑᥖᥚᥠr;쀀𝒷mi;恏mĀ;elƀ;bhᥨᥩᥫ䁜;槅sub;柈ŬᥴlĀ;e怢t»pƀ;Eeįᦅᦇ;檮Ā;qۜۛೡᦧ\0᧨ᨑᨕᨲ\0ᨷᩐ\0\0᪴\0\0᫁\0\0ᬡᬮ᭒\0᯽\0ᰌƀcprᦲute;䄇̀;abcdsᦿᧀᧄ᧕᧙戩nd;橄rcup;橉Āau᧒p;橋p;橇ot;橀;쀀∩︀Āeo᧢᧥t;恁îړȀaeiu᧰᧻ᨁᨅǰ᧵\0᧸s;橍on;䄍dil耻ç䃧rc;䄉psĀ;sᨌᨍ橌m;橐ot;䄋ƀdmnᨛᨠᨦil肻¸ƭptyv;榲t脀¢;eᨭᨮ䂢räƲr;쀀𝔠ƀceiᨽᩀᩍy;䑇ckĀ;mᩇᩈ朓ark»ᩈ;䏇r;Ecefms᩠ᩢᩫ᪤᪪旋;槃ƀ;elᩩᩪᩭ䋆q;扗eɡᩴ\0\0᪈rrowĀlr᩼᪁eft;憺ight;憻ʀRSacd᪒᪔᪖»ཇ;擈st;抛irc;抚ash;抝nint;樐id;櫯cir;槂ubsĀ;u᪻᪼晣it»᪼ˬ᫇\0ᬊonĀ;eᫍᫎ䀺Ā;qÇÆɭ\0\0aĀ;t䀬;䁀ƀ;fl戁îᅠeĀmxent»eóɍǧ\0ᬇĀ;dኻᬂot;橭nôɆƀfryᬐᬔᬗ;쀀𝕔oäɔ脀©;sŕᬝr;愗Āaoᬥᬩrr;憵ss;朗Ācuᬲᬷr;쀀𝒸Ābpᬼ᭄Ā;eᭁᭂ櫏;櫑Ā;eᭉᭊ櫐;櫒dot;拯delprvw᭠᭬᭷ᮂᮬᯔarrĀlr᭨᭪;椸;椵ɰ᭲\0\0᭵r;拞c;拟arrĀ;pᮀ憶;椽̀;bcdosᮏᮐᮖᮡᮥᮨ截rcap;橈Āauᮛᮞp;橆p;橊ot;抍r;橅;쀀∪︀Ȁalrv᮵ᮿᯞᯣrrĀ;mᮼᮽ憷;椼yƀevwᯇᯔᯘqɰᯎ\0\0ᯒreã᭳uã᭵ee;拎edge;拏en耻¤䂤earrowĀlrᯮ᯳eft»ᮀight»ᮽeäᯝĀciᰁᰇoninôǷnt;戱lcty;挭ঀAHabcdefhijlorstuwz᰻᰿ᱝᱩᱵᲞᲬᲷᴍᵻᶑᶫᶻ᷆᷍ròar;楥Ȁglrs᱈ᱍ᱒᱔ger;怠eth;愸òᄳhĀ;vᱚᱛ怐»ऊūᱡᱧarow;椏aã̕Āayᱮᱳron;䄏;䐴ƀ;ao̲ᱼᲄĀgrʿᲁr;懊tseq;橷ƀglmᲑᲔᲘ耻°䂰ta;䎴ptyv;榱ĀirᲣᲨsht;楿;쀀𝔡arĀlrᲳᲵ»ࣜ»သʀaegsv᳂᳖᳜᳠mƀ;oș᳔ndĀ;ș᳑uit;晦amma;䏝in;拲ƀ;io᳧᳨᳸䃷de脀÷;o᳧ᳰntimes;拇nø᳷cy;䑒cɯᴆ\0\0ᴊrn;挞op;挍ʀlptuwᴘᴝᴢᵉᵕlar;䀤f;쀀𝕕ʀ;emps̋ᴭᴷᴽᵂqĀ;d͒ᴳot;扑inus;戸lus;戔quare;抡blebarwedgåúnƀadhᄮᵝᵧownarrowóᲃarpoonĀlrᵲᵶefôᲴighôᲶŢᵿᶅkaro÷གɯᶊ\0\0ᶎrn;挟op;挌ƀcotᶘᶣᶦĀryᶝᶡ;쀀𝒹;䑕l;槶rok;䄑Ādrᶰᶴot;拱iĀ;fᶺ᠖斿Āah᷀᷃ròЩaòྦangle;榦Āci᷒ᷕy;䑟grarr;柿ऀDacdefglmnopqrstuxḁḉḙḸոḼṉṡṾấắẽỡἪἷὄĀDoḆᴴoôĀcsḎḔute耻é䃩ter;橮ȀaioyḢḧḱḶron;䄛rĀ;cḭḮ扖耻ê䃪lon;払;䑍ot;䄗ĀDrṁṅot;扒;쀀𝔢ƀ;rsṐṑṗ檚ave耻è䃨Ā;dṜṝ檖ot;檘Ȁ;ilsṪṫṲṴ檙nters;揧;愓Ā;dṹṺ檕ot;檗ƀapsẅẉẗcr;䄓tyƀ;svẒẓẕ戅et»ẓpĀ1;ẝẤijạả;怄;怅怃ĀgsẪẬ;䅋p;怂ĀgpẴẸon;䄙f;쀀𝕖ƀalsỄỎỒrĀ;sỊị拕l;槣us;橱iƀ;lvỚớở䎵on»ớ;䏵ȀcsuvỪỳἋἣĀioữḱrc»Ḯɩỹ\0\0ỻíՈantĀglἂἆtr»ṝess»ṺƀaeiἒἚls;䀽st;扟vĀ;DȵἠD;橸parsl;槥ĀDaἯἳot;打rr;楱ƀcdiἾὁỸr;愯oô͒ĀahὉὋ;䎷耻ð䃰Āmrὓὗl耻ë䃫o;悬ƀcipὡὤὧl;䀡sôծĀeoὬὴctatioîՙnentialåչৡᾒ\0ᾞ\0ᾡᾧ\0\0ῆῌ\0ΐ\0ῦῪ \0 ⁚llingdotseñṄy;䑄male;晀ƀilrᾭᾳ῁lig;耀ffiɩᾹ\0\0᾽g;耀ffig;耀ffl;쀀𝔣lig;耀filig;쀀fjƀaltῙῡt;晭ig;耀flns;斱of;䆒ǰ΅\0ῳf;쀀𝕗ĀakֿῷĀ;vῼ´拔;櫙artint;樍Āao⁕Ācs‑⁒ႉ‸⁅⁈\0⁐β•‥‧\0耻½䂽;慓耻¼䂼;慕;慙;慛Ƴ‴\0‶;慔;慖ʴ‾⁁\0\0⁃耻¾䂾;慗;慜5;慘ƶ⁌\0⁎;慚;慝8;慞l;恄wn;挢cr;쀀𝒻ࢀEabcdefgijlnorstv₂₉₥₰₴⃰℃ℒℸ̗ℾ⅒↞Ā;lٍ₇;檌ƀcmpₐₕute;䇵maĀ;dₜ᳚䎳;檆reve;䄟Āiy₪₮rc;䄝;䐳ot;䄡Ȁ;lqsؾق₽ƀ;qsؾٌlanô٥Ȁ;cdl٥⃒⃥⃕c;檩otĀ;o⃜⃝檀Ā;l⃢⃣檂;檄Ā;e⃪⃭쀀⋛︀s;檔r;쀀𝔤Ā;gٳ؛mel;愷cy;䑓Ȁ;Eajٚℌℎℐ;檒;檥;檤ȀEaesℛℝ℩ℴ;扩pĀ;p℣ℤ檊rox»ℤĀ;q℮ℯ檈Ā;q℮ℛim;拧pf;쀀𝕘Āci⅃ⅆr;愊mƀ;el٫ⅎ⅐;檎;檐茀>;cdlqrⅠⅪⅮⅳⅹĀciⅥⅧ;檧r;橺ot;拗Par;榕uest;橼ʀadelsↄⅪ←ٖ↛ǰ↉\0proør;楸qĀlqؿ↖lesó₈ií٫Āen↣↭rtneqq;쀀≩︀Å↪ԀAabcefkosy⇄⇇⇱⇵⇺∘∝∯≨≽ròΠȀilmr⇐⇔⇗⇛rsðᒄf»․ilôکĀdr⇠⇤cy;䑊ƀ;cwࣴ⇫⇯ir;楈;憭ar;意irc;䄥ƀalr∁∎∓rtsĀ;u∉∊晥it»∊lip;怦con;抹r;쀀𝔥sĀew∣∩arow;椥arow;椦ʀamopr∺∾≃≞≣rr;懿tht;戻kĀlr≉≓eftarrow;憩ightarrow;憪f;쀀𝕙bar;怕ƀclt≯≴≸r;쀀𝒽asè⇴rok;䄧Ābp⊂⊇ull;恃hen»ᱛૡ⊣\0⊪\0⊸⋅⋎\0⋕⋳\0\0⋸⌢⍧⍢⍿\0⎆⎪⎴cute耻í䃭ƀ;iyݱ⊰⊵rc耻î䃮;䐸Ācx⊼⊿y;䐵cl耻¡䂡ĀfrΟ⋉;쀀𝔦rave耻ì䃬Ȁ;inoܾ⋝⋩⋮Āin⋢⋦nt;樌t;戭fin;槜ta;愩lig;䄳ƀaop⋾⌚⌝ƀcgt⌅⌈⌗r;䄫ƀelpܟ⌏⌓inåގarôܠh;䄱f;抷ed;䆵ʀ;cfotӴ⌬⌱⌽⍁are;愅inĀ;t⌸⌹戞ie;槝doô⌙ʀ;celpݗ⍌⍐⍛⍡al;抺Āgr⍕⍙eróᕣã⍍arhk;樗rod;樼Ȁcgpt⍯⍲⍶⍻y;䑑on;䄯f;쀀𝕚a;䎹uest耻¿䂿Āci⎊⎏r;쀀𝒾nʀ;EdsvӴ⎛⎝⎡ӳ;拹ot;拵Ā;v⎦⎧拴;拳Ā;iݷ⎮lde;䄩ǫ⎸\0⎼cy;䑖l耻ï䃯̀cfmosu⏌⏗⏜⏡⏧⏵Āiy⏑⏕rc;䄵;䐹r;쀀𝔧ath;䈷pf;쀀𝕛ǣ⏬\0⏱r;쀀𝒿rcy;䑘kcy;䑔Ѐacfghjos␋␖␢ppaĀ;v␓␔䎺;䏰Āey␛␠dil;䄷;䐺r;쀀𝔨reen;䄸cy;䑅cy;䑜pf;쀀𝕜cr;쀀𝓀ABEHabcdefghjlmnoprstuv⑰⒁⒆⒍⒑┎┽╚▀♎♞♥♹♽⚚⚲⛘❝❨➋⟀⠁⠒ƀart⑷⑺⑼ròòΕail;椛arr;椎Ā;gঔ⒋;檋ar;楢ॣ⒥\0⒪\0⒱\0\0\0\0\0⒵Ⓔ\0ⓆⓈⓍ\0⓹ute;䄺mptyv;榴raîࡌbda;䎻gƀ;dlࢎⓁⓃ;榑åࢎ;檅uo耻«䂫rЀ;bfhlpst࢙ⓞⓦⓩ⓫⓮⓱⓵Ā;f࢝ⓣs;椟s;椝ë≒p;憫l;椹im;楳l;憢ƀ;ae⓿─┄檫il;椙Ā;s┉┊檭;쀀⪭︀ƀabr┕┙┝rr;椌rk;杲Āak┢┬cĀek┨┪;䁻;䁛Āes┱┳;榋lĀdu┹┻;榏;榍Ȁaeuy╆╋╖╘ron;䄾Ādi═╔il;䄼ìࢰâ┩;䐻Ȁcqrs╣╦╭╽a;椶uoĀ;rนᝆĀdu╲╷har;楧shar;楋h;憲ʀ;fgqs▋▌উ◳◿扤tʀahlrt▘▤▷◂◨rrowĀ;t࢙□aé⓶arpoonĀdu▯▴own»њp»०eftarrows;懇ightƀahs◍◖◞rrowĀ;sࣴࢧarpoonóquigarro÷⇰hreetimes;拋ƀ;qs▋ও◺lanôবʀ;cdgsব☊☍☝☨c;檨otĀ;o☔☕橿Ā;r☚☛檁;檃Ā;e☢☥쀀⋚︀s;檓ʀadegs☳☹☽♉♋pproøⓆot;拖qĀgq♃♅ôউgtò⒌ôছiíলƀilr♕࣡♚sht;楼;쀀𝔩Ā;Eজ♣;檑š♩♶rĀdu▲♮Ā;l॥♳;楪lk;斄cy;䑙ʀ;achtੈ⚈⚋⚑⚖rò◁orneòᴈard;楫ri;旺Āio⚟⚤dot;䅀ustĀ;a⚬⚭掰che»⚭ȀEaes⚻⚽⛉⛔;扨pĀ;p⛃⛄檉rox»⛄Ā;q⛎⛏檇Ā;q⛎⚻im;拦Ѐabnoptwz⛩⛴⛷✚✯❁❇❐Ānr⛮⛱g;柬r;懽rëࣁgƀlmr⛿✍✔eftĀar০✇ightá৲apsto;柼ightá৽parrowĀlr✥✩efô⓭ight;憬ƀafl✶✹✽r;榅;쀀𝕝us;樭imes;樴š❋❏st;戗áፎƀ;ef❗❘᠀旊nge»❘arĀ;l❤❥䀨t;榓ʀachmt❳❶❼➅➇ròࢨorneòᶌarĀ;d➃;業;怎ri;抿̀achiqt➘➝ੀ➢➮➻quo;怹r;쀀𝓁mƀ;egল➪➬;檍;檏Ābu┪➳oĀ;rฟ➹;怚rok;䅂萀<;cdhilqrࠫ⟒☹⟜⟠⟥⟪⟰Āci⟗⟙;檦r;橹reå◲mes;拉arr;楶uest;橻ĀPi⟵⟹ar;榖ƀ;ef⠀भ旃rĀdu⠇⠍shar;楊har;楦Āen⠗⠡rtneqq;쀀≨︀Å⠞܀Dacdefhilnopsu⡀⡅⢂⢎⢓⢠⢥⢨⣚⣢⣤ઃ⣳⤂Dot;戺Ȁclpr⡎⡒⡣⡽r耻¯䂯Āet⡗⡙;時Ā;e⡞⡟朠se»⡟Ā;sျ⡨toȀ;dluျ⡳⡷⡻owîҌefôएðᏑker;斮Āoy⢇⢌mma;権;䐼ash;怔asuredangle»ᘦr;쀀𝔪o;愧ƀcdn⢯⢴⣉ro耻µ䂵Ȁ;acdᑤ⢽⣀⣄sôᚧir;櫰ot肻·Ƶusƀ;bd⣒ᤃ⣓戒Ā;uᴼ⣘;横ţ⣞⣡p;櫛ò−ðઁĀdp⣩⣮els;抧f;쀀𝕞Āct⣸⣽r;쀀𝓂pos»ᖝƀ;lm⤉⤊⤍䎼timap;抸ఀGLRVabcdefghijlmoprstuvw⥂⥓⥾⦉⦘⧚⧩⨕⨚⩘⩝⪃⪕⪤⪨⬄⬇⭄⭿⮮ⰴⱧⱼ⳩Āgt⥇⥋;쀀⋙̸Ā;v⥐쀀≫⃒ƀelt⥚⥲⥶ftĀar⥡⥧rrow;懍ightarrow;懎;쀀⋘̸Ā;v⥻ే쀀≪⃒ightarrow;懏ĀDd⦎⦓ash;抯ash;抮ʀbcnpt⦣⦧⦬⦱⧌la»˞ute;䅄g;쀀∠⃒ʀ;Eiop⦼⧀⧅⧈;쀀⩰̸d;쀀≋̸s;䅉roøurĀ;a⧓⧔普lĀ;s⧓ସdz⧟\0⧣p肻\xA0ଷmpĀ;e௹ఀʀaeouy⧴⧾⨃⨐⨓ǰ⧹\0⧻;橃on;䅈dil;䅆ngĀ;dൾ⨊ot;쀀⩭̸p;橂;䐽ash;怓;Aadqsxஒ⨩⨭⨻⩁⩅⩐rr;懗rĀhr⨳⨶k;椤Ā;oᏲᏰot;쀀≐̸uiöୣĀei⩊⩎ar;椨íistĀ;sடr;쀀𝔫ȀEest⩦⩹⩼ƀ;qs⩭ƀ;qs⩴lanôií௪Ā;rஶ⪁»ஷƀAap⪊⪍⪑rò⥱rr;憮ar;櫲ƀ;svྍ⪜ྌĀ;d⪡⪢拼;拺cy;䑚AEadest⪷⪺⪾⫂⫅⫶⫹rò⥦;쀀≦̸rr;憚r;急Ȁ;fqs⫎⫣⫯tĀar⫔⫙rro÷⫁ightarro÷⪐ƀ;qs⪺⫪lanôౕĀ;sౕ⫴»శiíౝĀ;rవ⫾iĀ;eచథiäඐĀpt⬌⬑f;쀀𝕟膀¬;in⬙⬚⬶䂬nȀ;Edvஉ⬤⬨⬮;쀀⋹̸ot;쀀⋵̸ǡஉ⬳⬵;拷;拶iĀ;vಸ⬼ǡಸ⭁⭃;拾;拽ƀaor⭋⭣⭩rȀ;ast⭕⭚⭟lleìl;쀀⫽⃥;쀀∂̸lint;樔ƀ;ceಒ⭰⭳uåಥĀ;cಘ⭸Ā;eಒ⭽ñಘȀAait⮈⮋⮝⮧rò⦈rrƀ;cw⮔⮕⮙憛;쀀⤳̸;쀀↝̸ghtarrow»⮕riĀ;eೋೖchimpqu⮽⯍⯙⬄⯤⯯Ȁ;cerല⯆ഷ⯉uå;쀀𝓃ortɭ⬅\0\0⯖ará⭖mĀ;e൮⯟Ā;q൴൳suĀbp⯫⯭ååഋƀbcp⯶ⰑⰙȀ;Ees⯿ⰀഢⰄ抄;쀀⫅̸etĀ;eഛⰋqĀ;qണⰀcĀ;eലⰗñസȀ;EesⰢⰣൟⰧ抅;쀀⫆̸etĀ;e൘ⰮqĀ;qൠⰣȀgilrⰽⰿⱅⱇìௗlde耻ñ䃱çృiangleĀlrⱒⱜeftĀ;eచⱚñదightĀ;eೋⱥñĀ;mⱬⱭ䎽ƀ;esⱴⱵⱹ䀣ro;愖p;怇ҀDHadgilrsⲏⲔⲙⲞⲣⲰⲶⳓⳣash;抭arr;椄p;쀀≍⃒ash;抬ĀetⲨⲬ;쀀≥⃒;쀀>⃒nfin;槞ƀAetⲽⳁⳅrr;椂;쀀≤⃒Ā;rⳊⳍ쀀<⃒ie;쀀⊴⃒ĀAtⳘⳜrr;椃rie;쀀⊵⃒im;쀀∼⃒ƀAan⳰ⴂrr;懖rĀhr⳺⳽k;椣Ā;oᏧᏥear;椧ቓ᪕\0\0\0\0\0\0\0\0\0\0\0\0\0ⴭ\0ⴸⵈⵠⵥⶄᬇ\0\0ⶍⶫ\0ⷈⷎ\0ⷜ⸙⸫⸾⹃Ācsⴱ᪗ute耻ó䃳ĀiyⴼⵅrĀ;cⵂ耻ô䃴;䐾ʀabios᪠ⵒⵗLjⵚlac;䅑v;樸old;榼lig;䅓Ācrir;榿;쀀𝔬ͯ\0\0\0ⶂn;䋛ave耻ò䃲;槁Ābmⶈ෴ar;榵Ȁacitⶕⶥⶨrò᪀Āirⶠr;榾oss;榻nå๒;槀ƀaeiⶱⶵⶹcr;䅍ga;䏉ƀcdnⷀⷅǍron;䎿;榶pf;쀀𝕠ƀaelⷔǒr;榷rp;榹;adiosvⷪⷫⷮ⸈⸍⸐⸖戨rò᪆Ȁ;efmⷷⷸ⸂⸅橝rĀ;oⷾⷿ愴f»ⷿ耻ª䂪耻º䂺gof;抶r;橖lope;橗;橛ƀclo⸟⸡⸧ò⸁ash耻ø䃸l;折iŬⸯ⸴de耻õ䃵esĀ;aǛ⸺s;樶ml耻ö䃶bar;挽ૡ\0\0⺀⺝\0⺢⺹\0\0⻋ຜ\0⼓\0\0⼫⾼\0⿈rȀ;astЃ脀¶;l䂶leìЃɩ\0\0m;櫳;櫽y;䐿rʀcimpt⺋⺏⺓ᡥ⺗nt;䀥od;䀮il;怰enk;怱r;쀀𝔭ƀimo⺨⺰⺴Ā;v⺭⺮䏆;䏕maô੶ne;明ƀ;tv⺿⻀⻈䏀chfork»´;䏖Āau⻏⻟nĀck⻕⻝kĀ;h⇴⻛;愎ö⇴sҀ;abcdemst⻳ᤈ⼄⼆⼊⼎䀫cir;樣ir;樢Āouᵀ⼂;樥;橲n肻±ຝim;樦wo;樧ƀipu⼙⼠⼥ntint;樕f;쀀𝕡nd耻£䂣Ԁ;Eaceinosu່⼿⽁⽄⽇⾁⾉⾒⽾⾶;檳p;檷uå໙Ā;c໎⽌̀;acens່⽙⽟⽦⽨⽾pproø⽃urlyeñ໙ñ໎ƀaes⽯⽶⽺pprox;檹qq;檵im;拨iíໟmeĀ;s⾈ຮ怲ƀEas⽸⾐⽺ð⽵ƀdfp⾙⾯ƀals⾠⾥⾪lar;挮ine;挒urf;挓Ā;t⾴ïrel;抰Āci⿀⿅r;쀀𝓅;䏈ncsp;怈̀fiopsu⋢⿱r;쀀𝔮pf;쀀𝕢rime;恗cr;쀀𝓆ƀaeo⿸〉〓tĀei々rnionóڰnt;樖stĀ;e【】䀿ñἙô༔ABHabcdefhilmnoprstuxけさすムㄎㄫㅇㅢㅲㆎ㈆㈕㈤㈩㉘㉮㉲㊐㊰㊷ƀartぇおがròႳòϝail;検aròᱥar;楤cdenqrtとふへみわゔヌĀeuねぱ;쀀∽̱te;䅕iãᅮmptyv;榳gȀ;del࿑らるろ;榒;榥å࿑uo耻»䂻rր;abcfhlpstwガクシスゼゾダッデナp;極Ā;fゴs;椠;椳s;椞ë≝ð✮l;楅im;楴l;憣;憝Āaiパフil;椚oĀ;nホボ戶aló༞ƀabrョリヮrò៥rk;杳ĀakンヽcĀekヹ・;䁽;䁝Āes;榌lĀduㄊㄌ;榎;榐Ȁaeuyㄗㄜㄧㄩron;䅙Ādiㄡㄥil;䅗ìâヺ;䑀Ȁclqsㄴㄷㄽㅄa;椷dhar;楩uoĀ;rȎȍh;憳ƀacgㅎㅟངlȀ;ipsླྀㅘㅛႜnåႻarôྩt;断ƀilrㅩဣㅮsht;楽;쀀𝔯ĀaoㅷㆆrĀduㅽㅿ»ѻĀ;l႑ㆄ;楬Ā;vㆋㆌ䏁;䏱ƀgns㆕ㇹㇼht̀ahlrstㆤㆰ㇂㇘rrowĀ;tㆭaéトarpoonĀduㆻㆿowîㅾp»႒eftĀah㇊㇐rrowóarpoonóՑightarrows;應quigarro÷ニhreetimes;拌g;䋚ingdotseñἲƀahm㈍㈐㈓ròaòՑ;怏oustĀ;a㈞掱che»mid;櫮Ȁabpt㈲㈽㉀㉒Ānr㈷㈺g;柭r;懾rëဃƀafl㉇㉊㉎r;榆;쀀𝕣us;樮imes;樵Āap㉝㉧rĀ;g㉣㉤䀩t;榔olint;樒arò㇣Ȁachq㉻㊀Ⴜ㊅quo;怺r;쀀𝓇Ābu・㊊oĀ;rȔȓƀhir㊗㊛㊠reåㇸmes;拊iȀ;efl㊪ၙᠡ㊫方tri;槎luhar;楨;愞ൡ㋕㋛㋟㌬㌸㍱\0㍺㎤\0\0㏬㏰\0㐨㑈㑚㒭㒱㓊㓱\0㘖\0\0㘳cute;䅛quï➺Ԁ;Eaceinpsyᇭ㋳㋵㋿㌂㌋㌏㌟㌦㌩;檴ǰ㋺\0㋼;檸on;䅡uåᇾĀ;dᇳ㌇il;䅟rc;䅝ƀEas㌖㌘㌛;檶p;檺im;择olint;樓iíሄ;䑁otƀ;be㌴ᵇ㌵担;橦Aacmstx㍆㍊㍗㍛㍞㍣㍭rr;懘rĀhr㍐㍒ë∨Ā;oਸ਼t耻§䂧i;䀻war;椩mĀin㍩ðnuóñt;朶rĀ;o㍶⁕쀀𝔰Ȁacoy㎂㎆㎑㎠rp;景Āhy㎋㎏cy;䑉;䑈rtɭ㎙\0\0㎜iäᑤaraì耻䂭Āgm㎨㎴maƀ;fv㎱㎲㎲䏃;䏂Ѐ;deglnprካ㏅㏉㏎㏖㏞㏡㏦ot;橪Ā;qኰĀ;E㏓㏔檞;檠Ā;E㏛㏜檝;檟e;扆lus;樤arr;楲aròᄽȀaeit㏸㐈㐏㐗Āls㏽㐄lsetmé㍪hp;樳parsl;槤Ādlᑣ㐔e;挣Ā;e㐜㐝檪Ā;s㐢㐣檬;쀀⪬︀ƀflp㐮㐳㑂tcy;䑌Ā;b㐸㐹䀯Ā;a㐾㐿槄r;挿f;쀀𝕤aĀdr㑍ЂesĀ;u㑔㑕晠it»㑕ƀcsu㑠㑹㒟Āau㑥㑯pĀ;sᆈ㑫;쀀⊓︀pĀ;sᆴ㑵;쀀⊔︀uĀbp㑿㒏ƀ;esᆗᆜ㒆etĀ;eᆗ㒍ñᆝƀ;esᆨᆭ㒖etĀ;eᆨ㒝ñᆮƀ;afᅻ㒦ְrť㒫ֱ»ᅼaròᅈȀcemt㒹㒾㓂㓅r;쀀𝓈tmîñiì㐕aræᆾĀar㓎㓕rĀ;f㓔ឿ昆Āan㓚㓭ightĀep㓣㓪psiloîỠhé⺯s»⡒ʀbcmnp㓻㕞ሉ㖋㖎Ҁ;Edemnprs㔎㔏㔑㔕㔞㔣㔬㔱㔶抂;櫅ot;檽Ā;dᇚ㔚ot;櫃ult;櫁ĀEe㔨㔪;櫋;把lus;檿arr;楹ƀeiu㔽㕒㕕tƀ;en㔎㕅㕋qĀ;qᇚ㔏eqĀ;q㔫㔨m;櫇Ābp㕚㕜;櫕;櫓c̀;acensᇭ㕬㕲㕹㕻㌦pproø㋺urlyeñᇾñᇳƀaes㖂㖈㌛pproø㌚qñ㌗g;晪ڀ123;Edehlmnps㖩㖬㖯ሜ㖲㖴㗀㗉㗕㗚㗟㗨㗭耻¹䂹耻²䂲耻³䂳;櫆Āos㖹㖼t;檾ub;櫘Ā;dሢ㗅ot;櫄sĀou㗏㗒l;柉b;櫗arr;楻ult;櫂ĀEe㗤㗦;櫌;抋lus;櫀ƀeiu㗴㘉㘌tƀ;enሜ㗼㘂qĀ;qሢ㖲eqĀ;q㗧㗤m;櫈Ābp㘑㘓;櫔;櫖ƀAan㘜㘠㘭rr;懙rĀhr㘦㘨ë∮Ā;oਫwar;椪lig耻ß䃟㙑㙝㙠ዎ㙳㙹\0㙾㛂\0\0\0\0\0㛛㜃\0㜉㝬\0\0\0㞇ɲ㙖\0\0㙛get;挖;䏄rëƀaey㙦㙫㙰ron;䅥dil;䅣;䑂lrec;挕r;쀀𝔱Ȁeiko㚆㚝㚵㚼Dz㚋\0㚑eĀ4fኄኁaƀ;sv㚘㚙㚛䎸ym;䏑Ācn㚢㚲kĀas㚨㚮pproøim»ኬsðኞĀas㚺㚮ðrn耻þ䃾Ǭ̟㛆⋧es膀×;bd㛏㛐㛘䃗Ā;aᤏ㛕r;樱;樰ƀeps㛡㛣㜀á⩍Ȁ;bcf҆㛬㛰㛴ot;挶ir;櫱Ā;o㛹㛼쀀𝕥rk;櫚á㍢rime;怴ƀaip㜏㜒㝤dåቈadempst㜡㝍㝀㝑㝗㝜㝟ngleʀ;dlqr㜰㜱㜶㝀㝂斵own»ᶻeftĀ;e⠀㜾ñम;扜ightĀ;e㊪㝋ñၚot;旬inus;樺lus;樹b;槍ime;樻ezium;揢ƀcht㝲㝽㞁Āry㝷㝻;쀀𝓉;䑆cy;䑛rok;䅧Āio㞋㞎xôheadĀlr㞗㞠eftarro÷ࡏightarrow»ཝऀAHabcdfghlmoprstuw㟐㟓㟗㟤㟰㟼㠎㠜㠣㠴㡑㡝㡫㢩㣌㣒㣪㣶ròϭar;楣Ācr㟜㟢ute耻ú䃺òᅐrǣ㟪\0㟭y;䑞ve;䅭Āiy㟵㟺rc耻û䃻;䑃ƀabh㠃㠆㠋ròᎭlac;䅱aòᏃĀir㠓㠘sht;楾;쀀𝔲rave耻ù䃹š㠧㠱rĀlr㠬㠮»ॗ»ႃlk;斀Āct㠹㡍ɯ㠿\0\0㡊rnĀ;e㡅㡆挜r»㡆op;挏ri;旸Āal㡖㡚cr;䅫肻¨͉Āgp㡢㡦on;䅳f;쀀𝕦̀adhlsuᅋ㡸㡽፲㢑㢠ownáᎳarpoonĀlr㢈㢌efô㠭ighô㠯iƀ;hl㢙㢚㢜䏅»ᏺon»㢚parrows;懈ƀcit㢰㣄㣈ɯ㢶\0\0㣁rnĀ;e㢼㢽挝r»㢽op;挎ng;䅯ri;旹cr;쀀𝓊ƀdir㣙㣝㣢ot;拰lde;䅩iĀ;f㜰㣨»᠓Āam㣯㣲rò㢨l耻ü䃼angle;榧ހABDacdeflnoprsz㤜㤟㤩㤭㦵㦸㦽㧟㧤㧨㧳㧹㧽㨁㨠ròϷarĀ;v㤦㤧櫨;櫩asèϡĀnr㤲㤷grt;榜eknprst㓣㥆㥋㥒㥝㥤㦖appá␕othinçẖƀhir㓫⻈㥙opô⾵Ā;hᎷ㥢ïㆍĀiu㥩㥭gmá㎳Ābp㥲㦄setneqĀ;q㥽㦀쀀⊊︀;쀀⫋︀setneqĀ;q㦏㦒쀀⊋︀;쀀⫌︀Āhr㦛㦟etá㚜iangleĀlr㦪㦯eft»थight»ၑy;䐲ash»ံƀelr㧄㧒㧗ƀ;beⷪ㧋㧏ar;抻q;扚lip;拮Ābt㧜ᑨaòᑩr;쀀𝔳tré㦮suĀbp㧯㧱»ജ»൙pf;쀀𝕧roðtré㦴Ācu㨆㨋r;쀀𝓋Ābp㨐㨘nĀEe㦀㨖»㥾nĀEe㦒㨞»㦐igzag;榚cefoprs㨶㨻㩖㩛㩔㩡㩪irc;䅵Ādi㩀㩑Ābg㩅㩉ar;機eĀ;qᗺ㩏;扙erp;愘r;쀀𝔴pf;쀀𝕨Ā;eᑹ㩦atèᑹcr;쀀𝓌ૣណ㪇\0㪋\0㪐㪛\0\0㪝㪨㪫㪯\0\0㫃㫎\0㫘ៜtré៑r;쀀𝔵ĀAa㪔㪗ròσrò৶;䎾ĀAa㪡㪤ròθrò৫að✓is;拻ƀdptឤ㪵㪾Āfl㪺ឩ;쀀𝕩imåឲĀAa㫇㫊ròώròਁĀcq㫒ីr;쀀𝓍Āpt៖㫜ré។Ѐacefiosu㫰㫽㬈㬌㬑㬕㬛㬡cĀuy㫶㫻te耻ý䃽;䑏Āiy㬂㬆rc;䅷;䑋n耻¥䂥r;쀀𝔶cy;䑗pf;쀀𝕪cr;쀀𝓎Ācm㬦㬩y;䑎l耻ÿ䃿Ԁacdefhiosw㭂㭈㭔㭘㭤㭩㭭㭴㭺㮀cute;䅺Āay㭍㭒ron;䅾;䐷ot;䅼Āet㭝㭡træᕟa;䎶r;쀀𝔷cy;䐶grarr;懝pf;쀀𝕫cr;쀀𝓏Ājn㮅㮇;怍j;怌`.split(``).map(function(e){return e.charCodeAt(0)}))})),lae=s((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.default=new Uint16Array(`Ȁaglq \x1Bɭ\0\0p;䀦os;䀧t;䀾t;䀼uot;䀢`.split(``).map(function(e){return e.charCodeAt(0)}))})),n6=s((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.replaceCodePoint=e.fromCodePoint=void 0;var t=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]);e.fromCodePoint=String.fromCodePoint??function(e){var t=``;return e>65535&&(e-=65536,t+=String.fromCharCode(e>>>10&1023|55296),e=56320|e&1023),t+=String.fromCharCode(e),t};function n(e){return e>=55296&&e<=57343||e>1114111?65533:t.get(e)??e}e.replaceCodePoint=n;function r(t){return(0,e.fromCodePoint)(n(t))}e.default=r})),r6=s((e=>{var t=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||(`get`in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),n=e&&e.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),r=e&&e.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var i in e)i!=="default"&&Object.prototype.hasOwnProperty.call(e,i)&&t(r,e,i);return n(r,e),r},i=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,"__esModule",{value:!0}),e.decodeXML=e.decodeHTMLStrict=e.decodeHTMLAttribute=e.decodeHTML=e.determineBranch=e.EntityDecoder=e.DecodingMode=e.BinTrieFlags=e.fromCodePoint=e.replaceCodePoint=e.decodeCodePoint=e.xmlDecodeTree=e.htmlDecodeTree=void 0;var a=i(cae());e.htmlDecodeTree=a.default;var o=i(lae());e.xmlDecodeTree=o.default;var s=r(n6());e.decodeCodePoint=s.default;var c=n6();Object.defineProperty(e,"replaceCodePoint",{enumerable:!0,get:function(){return c.replaceCodePoint}}),Object.defineProperty(e,"fromCodePoint",{enumerable:!0,get:function(){return c.fromCodePoint}});var l;(function(e){e[e.NUM=35]=`NUM`,e[e.SEMI=59]=`SEMI`,e[e.EQUALS=61]=`EQUALS`,e[e.ZERO=48]=`ZERO`,e[e.NINE=57]=`NINE`,e[e.LOWER_A=97]=`LOWER_A`,e[e.LOWER_F=102]=`LOWER_F`,e[e.LOWER_X=120]=`LOWER_X`,e[e.LOWER_Z=122]=`LOWER_Z`,e[e.UPPER_A=65]=`UPPER_A`,e[e.UPPER_F=70]=`UPPER_F`,e[e.UPPER_Z=90]=`UPPER_Z`})(l||={});var u=32,d;(function(e){e[e.VALUE_LENGTH=49152]=`VALUE_LENGTH`,e[e.BRANCH_LENGTH=16256]=`BRANCH_LENGTH`,e[e.JUMP_TABLE=127]=`JUMP_TABLE`})(d=e.BinTrieFlags||={});function f(e){return e>=l.ZERO&&e<=l.NINE}function p(e){return e>=l.UPPER_A&&e<=l.UPPER_F||e>=l.LOWER_A&&e<=l.LOWER_F}function m(e){return e>=l.UPPER_A&&e<=l.UPPER_Z||e>=l.LOWER_A&&e<=l.LOWER_Z||f(e)}function h(e){return e===l.EQUALS||m(e)}var g;(function(e){e[e.EntityStart=0]=`EntityStart`,e[e.NumericStart=1]=`NumericStart`,e[e.NumericDecimal=2]=`NumericDecimal`,e[e.NumericHex=3]=`NumericHex`,e[e.NamedEntity=4]=`NamedEntity`})(g||={});var _;(function(e){e[e.Legacy=0]=`Legacy`,e[e.Strict=1]=`Strict`,e[e.Attribute=2]=`Attribute`})(_=e.DecodingMode||={});var v=function(){function e(e,t,n){this.decodeTree=e,this.emitCodePoint=t,this.errors=n,this.state=g.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=_.Strict}return e.prototype.startEntity=function(e){this.decodeMode=e,this.state=g.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1},e.prototype.write=function(e,t){switch(this.state){case g.EntityStart:return e.charCodeAt(t)===l.NUM?(this.state=g.NumericStart,this.consumed+=1,this.stateNumericStart(e,t+1)):(this.state=g.NamedEntity,this.stateNamedEntity(e,t));case g.NumericStart:return this.stateNumericStart(e,t);case g.NumericDecimal:return this.stateNumericDecimal(e,t);case g.NumericHex:return this.stateNumericHex(e,t);case g.NamedEntity:return this.stateNamedEntity(e,t)}},e.prototype.stateNumericStart=function(e,t){return t>=e.length?-1:(e.charCodeAt(t)|u)===l.LOWER_X?(this.state=g.NumericHex,this.consumed+=1,this.stateNumericHex(e,t+1)):(this.state=g.NumericDecimal,this.stateNumericDecimal(e,t))},e.prototype.addToNumericResult=function(e,t,n,r){if(t!==n){var i=n-t;this.result=this.result*r**+i+parseInt(e.substr(t,i),r),this.consumed+=i}},e.prototype.stateNumericHex=function(e,t){for(var n=t;t<e.length;){var r=e.charCodeAt(t);if(f(r)||p(r))t+=1;else return this.addToNumericResult(e,n,t,16),this.emitNumericEntity(r,3)}return this.addToNumericResult(e,n,t,16),-1},e.prototype.stateNumericDecimal=function(e,t){for(var n=t;t<e.length;){var r=e.charCodeAt(t);if(f(r))t+=1;else return this.addToNumericResult(e,n,t,10),this.emitNumericEntity(r,2)}return this.addToNumericResult(e,n,t,10),-1},e.prototype.emitNumericEntity=function(e,t){var n;if(this.consumed<=t)return(n=this.errors)==null||n.absenceOfDigitsInNumericCharacterReference(this.consumed),0;if(e===l.SEMI)this.consumed+=1;else if(this.decodeMode===_.Strict)return 0;return this.emitCodePoint((0,s.replaceCodePoint)(this.result),this.consumed),this.errors&&(e!==l.SEMI&&this.errors.missingSemicolonAfterCharacterReference(),this.errors.validateNumericCharacterReference(this.result)),this.consumed},e.prototype.stateNamedEntity=function(e,t){for(var n=this.decodeTree,r=n[this.treeIndex],i=(r&d.VALUE_LENGTH)>>14;t<e.length;t++,this.excess++){var a=e.charCodeAt(t);if(this.treeIndex=b(n,r,this.treeIndex+Math.max(1,i),a),this.treeIndex<0)return this.result===0||this.decodeMode===_.Attribute&&(i===0||h(a))?0:this.emitNotTerminatedNamedEntity();if(r=n[this.treeIndex],i=(r&d.VALUE_LENGTH)>>14,i!==0){if(a===l.SEMI)return this.emitNamedEntityData(this.treeIndex,i,this.consumed+this.excess);this.decodeMode!==_.Strict&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}}return-1},e.prototype.emitNotTerminatedNamedEntity=function(){var e,t=this,n=t.result,r=(t.decodeTree[n]&d.VALUE_LENGTH)>>14;return this.emitNamedEntityData(n,r,this.consumed),(e=this.errors)==null||e.missingSemicolonAfterCharacterReference(),this.consumed},e.prototype.emitNamedEntityData=function(e,t,n){var r=this.decodeTree;return this.emitCodePoint(t===1?r[e]&~d.VALUE_LENGTH:r[e+1],n),t===3&&this.emitCodePoint(r[e+2],n),n},e.prototype.end=function(){var e;switch(this.state){case g.NamedEntity:return this.result!==0&&(this.decodeMode!==_.Attribute||this.result===this.treeIndex)?this.emitNotTerminatedNamedEntity():0;case g.NumericDecimal:return this.emitNumericEntity(0,2);case g.NumericHex:return this.emitNumericEntity(0,3);case g.NumericStart:return(e=this.errors)==null||e.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case g.EntityStart:return 0}},e}();e.EntityDecoder=v;function y(e){var t=``,n=new v(e,function(e){return t+=(0,s.fromCodePoint)(e)});return function(e,r){for(var i=0,a=0;(a=e.indexOf(`&`,a))>=0;){t+=e.slice(i,a),n.startEntity(r);var o=n.write(e,a+1);if(o<0){i=a+n.end();break}i=a+o,a=o===0?i+1:i}var s=t+e.slice(i);return t=``,s}}function b(e,t,n,r){var i=(t&d.BRANCH_LENGTH)>>7,a=t&d.JUMP_TABLE;if(i===0)return a!==0&&r===a?n:-1;if(a){var o=r-a;return o<0||o>=i?-1:e[n+o]-1}for(var s=n,c=s+i-1;s<=c;){var l=s+c>>>1,u=e[l];if(u<r)s=l+1;else if(u>r)c=l-1;else return e[l+i]}return-1}e.determineBranch=b;var x=y(a.default),S=y(o.default);function C(e,t){return t===void 0&&(t=_.Legacy),x(e,t)}e.decodeHTML=C;function w(e){return x(e,_.Attribute)}e.decodeHTMLAttribute=w;function T(e){return x(e,_.Strict)}e.decodeHTMLStrict=T;function ee(e){return S(e,_.Strict)}e.decodeXML=ee})),uae=s((e=>{Object.defineProperty(e,"__esModule",{value:!0});function t(e){for(var t=1;t<e.length;t++)e[t][0]+=e[t-1][0]+1;return e}e.default=new Map(t([[9,`	`],[0,`
`],[22,`!`],[0,`"`],[0,`#`],[0,`$`],[0,`%`],[0,`&`],[0,`'`],[0,`(`],[0,`)`],[0,`*`],[0,`+`],[0,`,`],[1,`.`],[0,`/`],[10,`:`],[0,`;`],[0,{v:`<`,n:8402,o:`<⃒`}],[0,{v:`=`,n:8421,o:`=⃥`}],[0,{v:`>`,n:8402,o:`>⃒`}],[0,`?`],[0,`@`],[26,`[`],[0,`\`],[0,`]`],[0,`^`],[0,`_`],[0,```],[5,{n:106,o:`fj`}],[20,`{`],[0,`|`],[0,`}`],[34,` `],[0,`¡`],[0,`¢`],[0,`£`],[0,`¤`],[0,`¥`],[0,`¦`],[0,`§`],[0,`¨`],[0,`©`],[0,`ª`],[0,`«`],[0,`¬`],[0,`­`],[0,`®`],[0,`¯`],[0,`°`],[0,`±`],[0,`²`],[0,`³`],[0,`´`],[0,`µ`],[0,`¶`],[0,`·`],[0,`¸`],[0,`¹`],[0,`º`],[0,`»`],[0,`¼`],[0,`½`],[0,`¾`],[0,`¿`],[0,`À`],[0,`Á`],[0,`Â`],[0,`Ã`],[0,`Ä`],[0,`Å`],[0,`Æ`],[0,`Ç`],[0,`È`],[0,`É`],[0,`Ê`],[0,`Ë`],[0,`Ì`],[0,`Í`],[0,`Î`],[0,`Ï`],[0,`Ð`],[0,`Ñ`],[0,`Ò`],[0,`Ó`],[0,`Ô`],[0,`Õ`],[0,`Ö`],[0,`×`],[0,`Ø`],[0,`Ù`],[0,`Ú`],[0,`Û`],[0,`Ü`],[0,`Ý`],[0,`Þ`],[0,`ß`],[0,`à`],[0,`á`],[0,`â`],[0,`ã`],[0,`ä`],[0,`å`],[0,`æ`],[0,`ç`],[0,`è`],[0,`é`],[0,`ê`],[0,`ë`],[0,`ì`],[0,`í`],[0,`î`],[0,`ï`],[0,`ð`],[0,`ñ`],[0,`ò`],[0,`ó`],[0,`ô`],[0,`õ`],[0,`ö`],[0,`÷`],[0,`ø`],[0,`ù`],[0,`ú`],[0,`û`],[0,`ü`],[0,`ý`],[0,`þ`],[0,`ÿ`],[0,`Ā`],[0,`ā`],[0,`Ă`],[0,`ă`],[0,`Ą`],[0,`ą`],[0,`Ć`],[0,`ć`],[0,`Ĉ`],[0,`ĉ`],[0,`Ċ`],[0,`ċ`],[0,`Č`],[0,`č`],[0,`Ď`],[0,`ď`],[0,`Đ`],[0,`đ`],[0,`Ē`],[0,`ē`],[2,`Ė`],[0,`ė`],[0,`Ę`],[0,`ę`],[0,`Ě`],[0,`ě`],[0,`Ĝ`],[0,`ĝ`],[0,`Ğ`],[0,`ğ`],[0,`Ġ`],[0,`ġ`],[0,`Ģ`],[1,`Ĥ`],[0,`ĥ`],[0,`Ħ`],[0,`ħ`],[0,`Ĩ`],[0,`ĩ`],[0,`Ī`],[0,`ī`],[2,`Į`],[0,`į`],[0,`İ`],[0,`ı`],[0,`IJ`],[0,`ij`],[0,`Ĵ`],[0,`ĵ`],[0,`Ķ`],[0,`ķ`],[0,`ĸ`],[0,`Ĺ`],[0,`ĺ`],[0,`Ļ`],[0,`ļ`],[0,`Ľ`],[0,`ľ`],[0,`Ŀ`],[0,`ŀ`],[0,`Ł`],[0,`ł`],[0,`Ń`],[0,`ń`],[0,`Ņ`],[0,`ņ`],[0,`Ň`],[0,`ň`],[0,`ʼn`],[0,`Ŋ`],[0,`ŋ`],[0,`Ō`],[0,`ō`],[2,`Ő`],[0,`ő`],[0,`Œ`],[0,`œ`],[0,`Ŕ`],[0,`ŕ`],[0,`Ŗ`],[0,`ŗ`],[0,`Ř`],[0,`ř`],[0,`Ś`],[0,`ś`],[0,`Ŝ`],[0,`ŝ`],[0,`Ş`],[0,`ş`],[0,`Š`],[0,`š`],[0,`Ţ`],[0,`ţ`],[0,`Ť`],[0,`ť`],[0,`Ŧ`],[0,`ŧ`],[0,`Ũ`],[0,`ũ`],[0,`Ū`],[0,`ū`],[0,`Ŭ`],[0,`ŭ`],[0,`Ů`],[0,`ů`],[0,`Ű`],[0,`ű`],[0,`Ų`],[0,`ų`],[0,`Ŵ`],[0,`ŵ`],[0,`Ŷ`],[0,`ŷ`],[0,`Ÿ`],[0,`Ź`],[0,`ź`],[0,`Ż`],[0,`ż`],[0,`Ž`],[0,`ž`],[19,`ƒ`],[34,`Ƶ`],[63,`ǵ`],[65,`ȷ`],[142,`ˆ`],[0,`ˇ`],[16,`˘`],[0,`˙`],[0,`˚`],[0,`˛`],[0,`˜`],[0,`˝`],[51,`̑`],[127,`Α`],[0,`Β`],[0,`Γ`],[0,`Δ`],[0,`Ε`],[0,`Ζ`],[0,`Η`],[0,`Θ`],[0,`Ι`],[0,`Κ`],[0,`Λ`],[0,`Μ`],[0,`Ν`],[0,`Ξ`],[0,`Ο`],[0,`Π`],[0,`Ρ`],[1,`Σ`],[0,`Τ`],[0,`Υ`],[0,`Φ`],[0,`Χ`],[0,`Ψ`],[0,`Ω`],[7,`α`],[0,`β`],[0,`γ`],[0,`δ`],[0,`ε`],[0,`ζ`],[0,`η`],[0,`θ`],[0,`ι`],[0,`κ`],[0,`λ`],[0,`μ`],[0,`ν`],[0,`ξ`],[0,`ο`],[0,`π`],[0,`ρ`],[0,`ς`],[0,`σ`],[0,`τ`],[0,`υ`],[0,`φ`],[0,`χ`],[0,`ψ`],[0,`ω`],[7,`ϑ`],[0,`ϒ`],[2,`ϕ`],[0,`ϖ`],[5,`Ϝ`],[0,`ϝ`],[18,`ϰ`],[0,`ϱ`],[3,`ϵ`],[0,`϶`],[10,`Ё`],[0,`Ђ`],[0,`Ѓ`],[0,`Є`],[0,`Ѕ`],[0,`І`],[0,`Ї`],[0,`Ј`],[0,`Љ`],[0,`Њ`],[0,`Ћ`],[0,`Ќ`],[1,`Ў`],[0,`Џ`],[0,`А`],[0,`Б`],[0,`В`],[0,`Г`],[0,`Д`],[0,`Е`],[0,`Ж`],[0,`З`],[0,`И`],[0,`Й`],[0,`К`],[0,`Л`],[0,`М`],[0,`Н`],[0,`О`],[0,`П`],[0,`Р`],[0,`С`],[0,`Т`],[0,`У`],[0,`Ф`],[0,`Х`],[0,`Ц`],[0,`Ч`],[0,`Ш`],[0,`Щ`],[0,`Ъ`],[0,`Ы`],[0,`Ь`],[0,`Э`],[0,`Ю`],[0,`Я`],[0,`а`],[0,`б`],[0,`в`],[0,`г`],[0,`д`],[0,`е`],[0,`ж`],[0,`з`],[0,`и`],[0,`й`],[0,`к`],[0,`л`],[0,`м`],[0,`н`],[0,`о`],[0,`п`],[0,`р`],[0,`с`],[0,`т`],[0,`у`],[0,`ф`],[0,`х`],[0,`ц`],[0,`ч`],[0,`ш`],[0,`щ`],[0,`ъ`],[0,`ы`],[0,`ь`],[0,`э`],[0,`ю`],[0,`я`],[1,`ё`],[0,`ђ`],[0,`ѓ`],[0,`є`],[0,`ѕ`],[0,`і`],[0,`ї`],[0,`ј`],[0,`љ`],[0,`њ`],[0,`ћ`],[0,`ќ`],[1,`ў`],[0,`џ`],[7074,` `],[0,` `],[0,` `],[0,` `],[1,` `],[0,` `],[0,` `],[0,` `],[0,`​`],[0,`‌`],[0,`‍`],[0,`‎`],[0,`‏`],[0,`‐`],[2,`–`],[0,`—`],[0,`―`],[0,`‖`],[1,`‘`],[0,`’`],[0,`‚`],[1,`“`],[0,`”`],[0,`„`],[1,`†`],[0,`‡`],[0,`•`],[2,`‥`],[0,`…`],[9,`‰`],[0,`‱`],[0,`′`],[0,`″`],[0,`‴`],[0,`‵`],[3,`‹`],[0,`›`],[3,`‾`],[2,`⁁`],[1,`⁃`],[0,`⁄`],[10,`⁏`],[7,`⁗`],[7,{v:` `,n:8202,o:`  `}],[0,`⁠`],[0,`⁡`],[0,`⁢`],[0,`⁣`],[72,`€`],[46,`⃛`],[0,`⃜`],[37,`ℂ`],[2,`℅`],[4,`ℊ`],[0,`ℋ`],[0,`ℌ`],[0,`ℍ`],[0,`ℎ`],[0,`ℏ`],[0,`ℐ`],[0,`ℑ`],[0,`ℒ`],[0,`ℓ`],[1,`ℕ`],[0,`№`],[0,`℗`],[0,`℘`],[0,`ℙ`],[0,`ℚ`],[0,`ℛ`],[0,`ℜ`],[0,`ℝ`],[0,`℞`],[3,`™`],[1,`ℤ`],[2,`℧`],[0,`ℨ`],[0,`℩`],[2,`ℬ`],[0,`ℭ`],[1,`ℯ`],[0,`ℰ`],[0,`ℱ`],[1,`ℳ`],[0,`ℴ`],[0,`ℵ`],[0,`ℶ`],[0,`ℷ`],[0,`ℸ`],[12,`ⅅ`],[0,`ⅆ`],[0,`ⅇ`],[0,`ⅈ`],[10,`⅓`],[0,`⅔`],[0,`⅕`],[0,`⅖`],[0,`⅗`],[0,`⅘`],[0,`⅙`],[0,`⅚`],[0,`⅛`],[0,`⅜`],[0,`⅝`],[0,`⅞`],[49,`←`],[0,`↑`],[0,`→`],[0,`↓`],[0,`↔`],[0,`↕`],[0,`↖`],[0,`↗`],[0,`↘`],[0,`↙`],[0,`↚`],[0,`↛`],[1,{v:`↝`,n:824,o:`↝̸`}],[0,`↞`],[0,`↟`],[0,`↠`],[0,`↡`],[0,`↢`],[0,`↣`],[0,`↤`],[0,`↥`],[0,`↦`],[0,`↧`],[1,`↩`],[0,`↪`],[0,`↫`],[0,`↬`],[0,`↭`],[0,`↮`],[1,`↰`],[0,`↱`],[0,`↲`],[0,`↳`],[1,`↵`],[0,`↶`],[0,`↷`],[2,`↺`],[0,`↻`],[0,`↼`],[0,`↽`],[0,`↾`],[0,`↿`],[0,`⇀`],[0,`⇁`],[0,`⇂`],[0,`⇃`],[0,`⇄`],[0,`⇅`],[0,`⇆`],[0,`⇇`],[0,`⇈`],[0,`⇉`],[0,`⇊`],[0,`⇋`],[0,`⇌`],[0,`⇍`],[0,`⇎`],[0,`⇏`],[0,`⇐`],[0,`⇑`],[0,`⇒`],[0,`⇓`],[0,`⇔`],[0,`⇕`],[0,`⇖`],[0,`⇗`],[0,`⇘`],[0,`⇙`],[0,`⇚`],[0,`⇛`],[1,`⇝`],[6,`⇤`],[0,`⇥`],[15,`⇵`],[7,`⇽`],[0,`⇾`],[0,`⇿`],[0,`∀`],[0,`∁`],[0,{v:`∂`,n:824,o:`∂̸`}],[0,`∃`],[0,`∄`],[0,`∅`],[1,`∇`],[0,`∈`],[0,`∉`],[1,`∋`],[0,`∌`],[2,`∏`],[0,`∐`],[0,`∑`],[0,`−`],[0,`∓`],[0,`∔`],[1,`∖`],[0,`∗`],[0,`∘`],[1,`√`],[2,`∝`],[0,`∞`],[0,`∟`],[0,{v:`∠`,n:8402,o:`∠⃒`}],[0,`∡`],[0,`∢`],[0,`∣`],[0,`∤`],[0,`∥`],[0,`∦`],[0,`∧`],[0,`∨`],[0,{v:`∩`,n:65024,o:`∩︀`}],[0,{v:`∪`,n:65024,o:`∪︀`}],[0,`∫`],[0,`∬`],[0,`∭`],[0,`∮`],[0,`∯`],[0,`∰`],[0,`∱`],[0,`∲`],[0,`∳`],[0,`∴`],[0,`∵`],[0,`∶`],[0,`∷`],[0,`∸`],[1,`∺`],[0,`∻`],[0,{v:`∼`,n:8402,o:`∼⃒`}],[0,{v:`∽`,n:817,o:`∽̱`}],[0,{v:`∾`,n:819,o:`∾̳`}],[0,`∿`],[0,`≀`],[0,`≁`],[0,{v:`≂`,n:824,o:`≂̸`}],[0,`≃`],[0,`≄`],[0,`≅`],[0,`≆`],[0,`≇`],[0,`≈`],[0,`≉`],[0,`≊`],[0,{v:`≋`,n:824,o:`≋̸`}],[0,`≌`],[0,{v:`≍`,n:8402,o:`≍⃒`}],[0,{v:`≎`,n:824,o:`≎̸`}],[0,{v:`≏`,n:824,o:`≏̸`}],[0,{v:`≐`,n:824,o:`≐̸`}],[0,`≑`],[0,`≒`],[0,`≓`],[0,`≔`],[0,`≕`],[0,`≖`],[0,`≗`],[1,`≙`],[0,`≚`],[1,`≜`],[2,`≟`],[0,`≠`],[0,{v:`≡`,n:8421,o:`≡⃥`}],[0,`≢`],[1,{v:`≤`,n:8402,o:`≤⃒`}],[0,{v:`≥`,n:8402,o:`≥⃒`}],[0,{v:`≦`,n:824,o:`≦̸`}],[0,{v:`≧`,n:824,o:`≧̸`}],[0,{v:`≨`,n:65024,o:`≨︀`}],[0,{v:`≩`,n:65024,o:`≩︀`}],[0,{v:`≪`,n:new Map(t([[824,`≪̸`],[7577,`≪⃒`]]))}],[0,{v:`≫`,n:new Map(t([[824,`≫̸`],[7577,`≫⃒`]]))}],[0,`≬`],[0,`≭`],[0,`≮`],[0,`≯`],[0,`≰`],[0,`≱`],[0,`≲`],[0,`≳`],[0,`≴`],[0,`≵`],[0,`≶`],[0,`≷`],[0,`≸`],[0,`≹`],[0,`≺`],[0,`≻`],[0,`≼`],[0,`≽`],[0,`≾`],[0,{v:`≿`,n:824,o:`≿̸`}],[0,`⊀`],[0,`⊁`],[0,{v:`⊂`,n:8402,o:`⊂⃒`}],[0,{v:`⊃`,n:8402,o:`⊃⃒`}],[0,`⊄`],[0,`⊅`],[0,`⊆`],[0,`⊇`],[0,`⊈`],[0,`⊉`],[0,{v:`⊊`,n:65024,o:`⊊︀`}],[0,{v:`⊋`,n:65024,o:`⊋︀`}],[1,`⊍`],[0,`⊎`],[0,{v:`⊏`,n:824,o:`⊏̸`}],[0,{v:`⊐`,n:824,o:`⊐̸`}],[0,`⊑`],[0,`⊒`],[0,{v:`⊓`,n:65024,o:`⊓︀`}],[0,{v:`⊔`,n:65024,o:`⊔︀`}],[0,`⊕`],[0,`⊖`],[0,`⊗`],[0,`⊘`],[0,`⊙`],[0,`⊚`],[0,`⊛`],[1,`⊝`],[0,`⊞`],[0,`⊟`],[0,`⊠`],[0,`⊡`],[0,`⊢`],[0,`⊣`],[0,`⊤`],[0,`⊥`],[1,`⊧`],[0,`⊨`],[0,`⊩`],[0,`⊪`],[0,`⊫`],[0,`⊬`],[0,`⊭`],[0,`⊮`],[0,`⊯`],[0,`⊰`],[1,`⊲`],[0,`⊳`],[0,{v:`⊴`,n:8402,o:`⊴⃒`}],[0,{v:`⊵`,n:8402,o:`⊵⃒`}],[0,`⊶`],[0,`⊷`],[0,`⊸`],[0,`⊹`],[0,`⊺`],[0,`⊻`],[1,`⊽`],[0,`⊾`],[0,`⊿`],[0,`⋀`],[0,`⋁`],[0,`⋂`],[0,`⋃`],[0,`⋄`],[0,`⋅`],[0,`⋆`],[0,`⋇`],[0,`⋈`],[0,`⋉`],[0,`⋊`],[0,`⋋`],[0,`⋌`],[0,`⋍`],[0,`⋎`],[0,`⋏`],[0,`⋐`],[0,`⋑`],[0,`⋒`],[0,`⋓`],[0,`⋔`],[0,`⋕`],[0,`⋖`],[0,`⋗`],[0,{v:`⋘`,n:824,o:`⋘̸`}],[0,{v:`⋙`,n:824,o:`⋙̸`}],[0,{v:`⋚`,n:65024,o:`⋚︀`}],[0,{v:`⋛`,n:65024,o:`⋛︀`}],[2,`⋞`],[0,`⋟`],[0,`⋠`],[0,`⋡`],[0,`⋢`],[0,`⋣`],[2,`⋦`],[0,`⋧`],[0,`⋨`],[0,`⋩`],[0,`⋪`],[0,`⋫`],[0,`⋬`],[0,`⋭`],[0,`⋮`],[0,`⋯`],[0,`⋰`],[0,`⋱`],[0,`⋲`],[0,`⋳`],[0,`⋴`],[0,{v:`⋵`,n:824,o:`⋵̸`}],[0,`⋶`],[0,`⋷`],[1,{v:`⋹`,n:824,o:`⋹̸`}],[0,`⋺`],[0,`⋻`],[0,`⋼`],[0,`⋽`],[0,`⋾`],[6,`⌅`],[0,`⌆`],[1,`⌈`],[0,`⌉`],[0,`⌊`],[0,`⌋`],[0,`⌌`],[0,`⌍`],[0,`⌎`],[0,`⌏`],[0,`⌐`],[1,`⌒`],[0,`⌓`],[1,`⌕`],[0,`⌖`],[5,`⌜`],[0,`⌝`],[0,`⌞`],[0,`⌟`],[2,`⌢`],[0,`⌣`],[9,`⌭`],[0,`⌮`],[7,`⌶`],[6,`⌽`],[1,`⌿`],[60,`⍼`],[51,`⎰`],[0,`⎱`],[2,`⎴`],[0,`⎵`],[0,`⎶`],[37,`⏜`],[0,`⏝`],[0,`⏞`],[0,`⏟`],[2,`⏢`],[4,`⏧`],[59,`␣`],[164,`Ⓢ`],[55,`─`],[1,`│`],[9,`┌`],[3,`┐`],[3,`└`],[3,`┘`],[3,`├`],[7,`┤`],[7,`┬`],[7,`┴`],[7,`┼`],[19,`═`],[0,`║`],[0,`╒`],[0,`╓`],[0,`╔`],[0,`╕`],[0,`╖`],[0,`╗`],[0,`╘`],[0,`╙`],[0,`╚`],[0,`╛`],[0,`╜`],[0,`╝`],[0,`╞`],[0,`╟`],[0,`╠`],[0,`╡`],[0,`╢`],[0,`╣`],[0,`╤`],[0,`╥`],[0,`╦`],[0,`╧`],[0,`╨`],[0,`╩`],[0,`╪`],[0,`╫`],[0,`╬`],[19,`▀`],[3,`▄`],[3,`█`],[8,`░`],[0,`▒`],[0,`▓`],[13,`□`],[8,`▪`],[0,`▫`],[1,`▭`],[0,`▮`],[2,`▱`],[1,`△`],[0,`▴`],[0,`▵`],[2,`▸`],[0,`▹`],[3,`▽`],[0,`▾`],[0,`▿`],[2,`◂`],[0,`◃`],[6,`◊`],[0,`○`],[32,`◬`],[2,`◯`],[8,`◸`],[0,`◹`],[0,`◺`],[0,`◻`],[0,`◼`],[8,`★`],[0,`☆`],[7,`☎`],[49,`♀`],[1,`♂`],[29,`♠`],[2,`♣`],[1,`♥`],[0,`♦`],[3,`♪`],[2,`♭`],[0,`♮`],[0,`♯`],[163,`✓`],[3,`✗`],[8,`✠`],[21,`✶`],[33,`❘`],[25,`❲`],[0,`❳`],[84,`⟈`],[0,`⟉`],[28,`⟦`],[0,`⟧`],[0,`⟨`],[0,`⟩`],[0,`⟪`],[0,`⟫`],[0,`⟬`],[0,`⟭`],[7,`⟵`],[0,`⟶`],[0,`⟷`],[0,`⟸`],[0,`⟹`],[0,`⟺`],[1,`⟼`],[2,`⟿`],[258,`⤂`],[0,`⤃`],[0,`⤄`],[0,`⤅`],[6,`⤌`],[0,`⤍`],[0,`⤎`],[0,`⤏`],[0,`⤐`],[0,`⤑`],[0,`⤒`],[0,`⤓`],[2,`⤖`],[2,`⤙`],[0,`⤚`],[0,`⤛`],[0,`⤜`],[0,`⤝`],[0,`⤞`],[0,`⤟`],[0,`⤠`],[2,`⤣`],[0,`⤤`],[0,`⤥`],[0,`⤦`],[0,`⤧`],[0,`⤨`],[0,`⤩`],[0,`⤪`],[8,{v:`⤳`,n:824,o:`⤳̸`}],[1,`⤵`],[0,`⤶`],[0,`⤷`],[0,`⤸`],[0,`⤹`],[2,`⤼`],[0,`⤽`],[7,`⥅`],[2,`⥈`],[0,`⥉`],[0,`⥊`],[0,`⥋`],[2,`⥎`],[0,`⥏`],[0,`⥐`],[0,`⥑`],[0,`⥒`],[0,`⥓`],[0,`⥔`],[0,`⥕`],[0,`⥖`],[0,`⥗`],[0,`⥘`],[0,`⥙`],[0,`⥚`],[0,`⥛`],[0,`⥜`],[0,`⥝`],[0,`⥞`],[0,`⥟`],[0,`⥠`],[0,`⥡`],[0,`⥢`],[0,`⥣`],[0,`⥤`],[0,`⥥`],[0,`⥦`],[0,`⥧`],[0,`⥨`],[0,`⥩`],[0,`⥪`],[0,`⥫`],[0,`⥬`],[0,`⥭`],[0,`⥮`],[0,`⥯`],[0,`⥰`],[0,`⥱`],[0,`⥲`],[0,`⥳`],[0,`⥴`],[0,`⥵`],[0,`⥶`],[1,`⥸`],[0,`⥹`],[1,`⥻`],[0,`⥼`],[0,`⥽`],[0,`⥾`],[0,`⥿`],[5,`⦅`],[0,`⦆`],[4,`⦋`],[0,`⦌`],[0,`⦍`],[0,`⦎`],[0,`⦏`],[0,`⦐`],[0,`⦑`],[0,`⦒`],[0,`⦓`],[0,`⦔`],[0,`⦕`],[0,`⦖`],[3,`⦚`],[1,`⦜`],[0,`⦝`],[6,`⦤`],[0,`⦥`],[0,`⦦`],[0,`⦧`],[0,`⦨`],[0,`⦩`],[0,`⦪`],[0,`⦫`],[0,`⦬`],[0,`⦭`],[0,`⦮`],[0,`⦯`],[0,`⦰`],[0,`⦱`],[0,`⦲`],[0,`⦳`],[0,`⦴`],[0,`⦵`],[0,`⦶`],[0,`⦷`],[1,`⦹`],[1,`⦻`],[0,`⦼`],[1,`⦾`],[0,`⦿`],[0,`⧀`],[0,`⧁`],[0,`⧂`],[0,`⧃`],[0,`⧄`],[0,`⧅`],[3,`⧉`],[3,`⧍`],[0,`⧎`],[0,{v:`⧏`,n:824,o:`⧏̸`}],[0,{v:`⧐`,n:824,o:`⧐̸`}],[11,`⧜`],[0,`⧝`],[0,`⧞`],[4,`⧣`],[0,`⧤`],[0,`⧥`],[5,`⧫`],[8,`⧴`],[1,`⧶`],[9,`⨀`],[0,`⨁`],[0,`⨂`],[1,`⨄`],[1,`⨆`],[5,`⨌`],[0,`⨍`],[2,`⨐`],[0,`⨑`],[0,`⨒`],[0,`⨓`],[0,`⨔`],[0,`⨕`],[0,`⨖`],[0,`⨗`],[10,`⨢`],[0,`⨣`],[0,`⨤`],[0,`⨥`],[0,`⨦`],[0,`⨧`],[1,`⨩`],[0,`⨪`],[2,`⨭`],[0,`⨮`],[0,`⨯`],[0,`⨰`],[0,`⨱`],[1,`⨳`],[0,`⨴`],[0,`⨵`],[0,`⨶`],[0,`⨷`],[0,`⨸`],[0,`⨹`],[0,`⨺`],[0,`⨻`],[0,`⨼`],[2,`⨿`],[0,`⩀`],[1,`⩂`],[0,`⩃`],[0,`⩄`],[0,`⩅`],[0,`⩆`],[0,`⩇`],[0,`⩈`],[0,`⩉`],[0,`⩊`],[0,`⩋`],[0,`⩌`],[0,`⩍`],[2,`⩐`],[2,`⩓`],[0,`⩔`],[0,`⩕`],[0,`⩖`],[0,`⩗`],[0,`⩘`],[1,`⩚`],[0,`⩛`],[0,`⩜`],[0,`⩝`],[1,`⩟`],[6,`⩦`],[3,`⩪`],[2,{v:`⩭`,n:824,o:`⩭̸`}],[0,`⩮`],[0,`⩯`],[0,{v:`⩰`,n:824,o:`⩰̸`}],[0,`⩱`],[0,`⩲`],[0,`⩳`],[0,`⩴`],[0,`⩵`],[1,`⩷`],[0,`⩸`],[0,`⩹`],[0,`⩺`],[0,`⩻`],[0,`⩼`],[0,{v:`⩽`,n:824,o:`⩽̸`}],[0,{v:`⩾`,n:824,o:`⩾̸`}],[0,`⩿`],[0,`⪀`],[0,`⪁`],[0,`⪂`],[0,`⪃`],[0,`⪄`],[0,`⪅`],[0,`⪆`],[0,`⪇`],[0,`⪈`],[0,`⪉`],[0,`⪊`],[0,`⪋`],[0,`⪌`],[0,`⪍`],[0,`⪎`],[0,`⪏`],[0,`⪐`],[0,`⪑`],[0,`⪒`],[0,`⪓`],[0,`⪔`],[0,`⪕`],[0,`⪖`],[0,`⪗`],[0,`⪘`],[0,`⪙`],[0,`⪚`],[2,`⪝`],[0,`⪞`],[0,`⪟`],[0,`⪠`],[0,{v:`⪡`,n:824,o:`⪡̸`}],[0,{v:`⪢`,n:824,o:`⪢̸`}],[1,`⪤`],[0,`⪥`],[0,`⪦`],[0,`⪧`],[0,`⪨`],[0,`⪩`],[0,`⪪`],[0,`⪫`],[0,{v:`⪬`,n:65024,o:`⪬︀`}],[0,{v:`⪭`,n:65024,o:`⪭︀`}],[0,`⪮`],[0,{v:`⪯`,n:824,o:`⪯̸`}],[0,{v:`⪰`,n:824,o:`⪰̸`}],[2,`⪳`],[0,`⪴`],[0,`⪵`],[0,`⪶`],[0,`⪷`],[0,`⪸`],[0,`⪹`],[0,`⪺`],[0,`⪻`],[0,`⪼`],[0,`⪽`],[0,`⪾`],[0,`⪿`],[0,`⫀`],[0,`⫁`],[0,`⫂`],[0,`⫃`],[0,`⫄`],[0,{v:`⫅`,n:824,o:`⫅̸`}],[0,{v:`⫆`,n:824,o:`⫆̸`}],[0,`⫇`],[0,`⫈`],[2,{v:`⫋`,n:65024,o:`⫋︀`}],[0,{v:`⫌`,n:65024,o:`⫌︀`}],[2,`⫏`],[0,`⫐`],[0,`⫑`],[0,`⫒`],[0,`⫓`],[0,`⫔`],[0,`⫕`],[0,`⫖`],[0,`⫗`],[0,`⫘`],[0,`⫙`],[0,`⫚`],[0,`⫛`],[8,`⫤`],[1,`⫦`],[0,`⫧`],[0,`⫨`],[0,`⫩`],[1,`⫫`],[0,`⫬`],[0,`⫭`],[0,`⫮`],[0,`⫯`],[0,`⫰`],[0,`⫱`],[0,`⫲`],[0,`⫳`],[9,{v:`⫽`,n:8421,o:`⫽⃥`}],[44343,{n:new Map(t([[56476,`𝒜`],[1,`𝒞`],[0,`𝒟`],[2,`𝒢`],[2,`𝒥`],[0,`𝒦`],[2,`𝒩`],[0,`𝒪`],[0,`𝒫`],[0,`𝒬`],[1,`𝒮`],[0,`𝒯`],[0,`𝒰`],[0,`𝒱`],[0,`𝒲`],[0,`𝒳`],[0,`𝒴`],[0,`𝒵`],[0,`𝒶`],[0,`𝒷`],[0,`𝒸`],[0,`𝒹`],[1,`𝒻`],[1,`𝒽`],[0,`𝒾`],[0,`𝒿`],[0,`𝓀`],[0,`𝓁`],[0,`𝓂`],[0,`𝓃`],[1,`𝓅`],[0,`𝓆`],[0,`𝓇`],[0,`𝓈`],[0,`𝓉`],[0,`𝓊`],[0,`𝓋`],[0,`𝓌`],[0,`𝓍`],[0,`𝓎`],[0,`𝓏`],[52,`𝔄`],[0,`𝔅`],[1,`𝔇`],[0,`𝔈`],[0,`𝔉`],[0,`𝔊`],[2,`𝔍`],[0,`𝔎`],[0,`𝔏`],[0,`𝔐`],[0,`𝔑`],[0,`𝔒`],[0,`𝔓`],[0,`𝔔`],[1,`𝔖`],[0,`𝔗`],[0,`𝔘`],[0,`𝔙`],[0,`𝔚`],[0,`𝔛`],[0,`𝔜`],[1,`𝔞`],[0,`𝔟`],[0,`𝔠`],[0,`𝔡`],[0,`𝔢`],[0,`𝔣`],[0,`𝔤`],[0,`𝔥`],[0,`𝔦`],[0,`𝔧`],[0,`𝔨`],[0,`𝔩`],[0,`𝔪`],[0,`𝔫`],[0,`𝔬`],[0,`𝔭`],[0,`𝔮`],[0,`𝔯`],[0,`𝔰`],[0,`𝔱`],[0,`𝔲`],[0,`𝔳`],[0,`𝔴`],[0,`𝔵`],[0,`𝔶`],[0,`𝔷`],[0,`𝔸`],[0,`𝔹`],[1,`𝔻`],[0,`𝔼`],[0,`𝔽`],[0,`𝔾`],[1,`𝕀`],[0,`𝕁`],[0,`𝕂`],[0,`𝕃`],[0,`𝕄`],[1,`𝕆`],[3,`𝕊`],[0,`𝕋`],[0,`𝕌`],[0,`𝕍`],[0,`𝕎`],[0,`𝕏`],[0,`𝕐`],[1,`𝕒`],[0,`𝕓`],[0,`𝕔`],[0,`𝕕`],[0,`𝕖`],[0,`𝕗`],[0,`𝕘`],[0,`𝕙`],[0,`𝕚`],[0,`𝕛`],[0,`𝕜`],[0,`𝕝`],[0,`𝕞`],[0,`𝕟`],[0,`𝕠`],[0,`𝕡`],[0,`𝕢`],[0,`𝕣`],[0,`𝕤`],[0,`𝕥`],[0,`𝕦`],[0,`𝕧`],[0,`𝕨`],[0,`𝕩`],[0,`𝕪`],[0,`𝕫`]]))}],[8906,`ff`],[0,`fi`],[0,`fl`],[0,`ffi`],[0,`ffl`]]))})),i6=s((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.escapeText=e.escapeAttribute=e.escapeUTF8=e.escape=e.encodeXML=e.getCodePoint=e.xmlReplacer=void 0,e.xmlReplacer=/["&'<>$\x80-\uFFFF]/g;var t=new Map([[34,`"`],[38,`&`],[39,`'`],[60,`<`],[62,`>`]]);e.getCodePoint=String.prototype.codePointAt==null?function(e,t){return(e.charCodeAt(t)&64512)==55296?(e.charCodeAt(t)-55296)*1024+e.charCodeAt(t+1)-56320+65536:e.charCodeAt(t)}:function(e,t){return e.codePointAt(t)};function n(n){for(var r=``,i=0,a;(a=e.xmlReplacer.exec(n))!==null;){var o=a.index,s=n.charCodeAt(o),c=t.get(s);c===void 0?(r+=`${n.substring(i,o)}&#x${(0,e.getCodePoint)(n,o).toString(16)};`,i=e.xmlReplacer.lastIndex+=Number((s&64512)==55296)):(r+=n.substring(i,o)+c,i=o+1)}return r+n.substr(i)}e.encodeXML=n,e.escape=n;function r(e,t){return function(n){for(var r,i=0,a=``;r=e.exec(n);)i!==r.index&&(a+=n.substring(i,r.index)),a+=t.get(r[0].charCodeAt(0)),i=r.index+1;return a+n.substring(i)}}e.escapeUTF8=r(/[&<>'"]/g,t),e.escapeAttribute=r(/["&\u00A0]/g,new Map([[34,`"`],[38,`&`],[160,` `]])),e.escapeText=r(/[&<>\u00A0]/g,new Map([[38,`&`],[60,`<`],[62,`>`],[160,` `]]))})),a6=s((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,"__esModule",{value:!0}),e.encodeNonAsciiHTML=e.encodeHTML=void 0;var n=t(uae()),r=i6(),i=/[\t\n!-,./:-@[-`\f{-}$\x80-\uFFFF]/g;function a(e){return s(i,e)}e.encodeHTML=a;function o(e){return s(r.xmlReplacer,e)}e.encodeNonAsciiHTML=o;function s(e,t){for(var i=``,a=0,o;(o=e.exec(t))!==null;){var s=o.index;i+=t.substring(a,s);var c=t.charCodeAt(s),l=n.default.get(c);if(typeof l==`object`){if(s+1<t.length){var u=t.charCodeAt(s+1),d=typeof l.n==`number`?l.n===u?l.o:void 0:l.n.get(u);if(d!==void 0){i+=d,a=e.lastIndex+=1;continue}}l=l.v}if(l!==void 0)i+=l,a=s+1;else{var f=(0,r.getCodePoint)(t,s);i+=`&#x${f.toString(16)};`,a=e.lastIndex+=Number(f!==c)}}return i+t.substr(a)}})),dae=s((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.decodeXMLStrict=e.decodeHTML5Strict=e.decodeHTML4Strict=e.decodeHTML5=e.decodeHTML4=e.decodeHTMLAttribute=e.decodeHTMLStrict=e.decodeHTML=e.decodeXML=e.DecodingMode=e.EntityDecoder=e.encodeHTML5=e.encodeHTML4=e.encodeNonAsciiHTML=e.encodeHTML=e.escapeText=e.escapeAttribute=e.escapeUTF8=e.escape=e.encodeXML=e.encode=e.decodeStrict=e.decode=e.EncodingMode=e.EntityLevel=void 0;var t=r6(),n=a6(),r=i6(),i;(function(e){e[e.XML=0]=`XML`,e[e.HTML=1]=`HTML`})(i=e.EntityLevel||={});var a;(function(e){e[e.UTF8=0]=`UTF8`,e[e.ASCII=1]=`ASCII`,e[e.Extensive=2]=`Extensive`,e[e.Attribute=3]=`Attribute`,e[e.Text=4]=`Text`})(a=e.EncodingMode||={});function o(e,n){if(n===void 0&&(n=i.XML),(typeof n==`number`?n:n.level)===i.HTML){var r=typeof n==`object`?n.mode:void 0;return(0,t.decodeHTML)(e,r)}return(0,t.decodeXML)(e)}e.decode=o;function s(e,n){n===void 0&&(n=i.XML);var r=typeof n==`number`?{level:n}:n;return r.mode??=t.DecodingMode.Strict,o(e,r)}e.decodeStrict=s;function c(e,t){t===void 0&&(t=i.XML);var o=typeof t==`number`?{level:t}:t;return o.mode===a.UTF8?(0,r.escapeUTF8)(e):o.mode===a.Attribute?(0,r.escapeAttribute)(e):o.mode===a.Text?(0,r.escapeText)(e):o.level===i.HTML?o.mode===a.ASCII?(0,n.encodeNonAsciiHTML)(e):(0,n.encodeHTML)(e):(0,r.encodeXML)(e)}e.encode=c;var l=i6();Object.defineProperty(e,"encodeXML",{enumerable:!0,get:function(){return l.encodeXML}}),Object.defineProperty(e,"escape",{enumerable:!0,get:function(){return l.escape}}),Object.defineProperty(e,"escapeUTF8",{enumerable:!0,get:function(){return l.escapeUTF8}}),Object.defineProperty(e,"escapeAttribute",{enumerable:!0,get:function(){return l.escapeAttribute}}),Object.defineProperty(e,"escapeText",{enumerable:!0,get:function(){return l.escapeText}});var u=a6();Object.defineProperty(e,"encodeHTML",{enumerable:!0,get:function(){return u.encodeHTML}}),Object.defineProperty(e,"encodeNonAsciiHTML",{enumerable:!0,get:function(){return u.encodeNonAsciiHTML}}),Object.defineProperty(e,"encodeHTML4",{enumerable:!0,get:function(){return u.encodeHTML}}),Object.defineProperty(e,"encodeHTML5",{enumerable:!0,get:function(){return u.encodeHTML}});var d=r6();Object.defineProperty(e,"EntityDecoder",{enumerable:!0,get:function(){return d.EntityDecoder}}),Object.defineProperty(e,"DecodingMode",{enumerable:!0,get:function(){return d.DecodingMode}}),Object.defineProperty(e,"decodeXML",{enumerable:!0,get:function(){return d.decodeXML}}),Object.defineProperty(e,"decodeHTML",{enumerable:!0,get:function(){return d.decodeHTML}}),Object.defineProperty(e,"decodeHTMLStrict",{enumerable:!0,get:function(){return d.decodeHTMLStrict}}),Object.defineProperty(e,"decodeHTMLAttribute",{enumerable:!0,get:function(){return d.decodeHTMLAttribute}}),Object.defineProperty(e,"decodeHTML4",{enumerable:!0,get:function(){return d.decodeHTML}}),Object.defineProperty(e,"decodeHTML5",{enumerable:!0,get:function(){return d.decodeHTML}}),Object.defineProperty(e,"decodeHTML4Strict",{enumerable:!0,get:function(){return d.decodeHTMLStrict}}),Object.defineProperty(e,"decodeHTML5Strict",{enumerable:!0,get:function(){return d.decodeHTMLStrict}}),Object.defineProperty(e,"decodeXMLStrict",{enumerable:!0,get:function(){return d.decodeXML}})})),fae=s((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.attributeNames=e.elementNames=void 0,e.elementNames=new Map(`altGlyph.altGlyphDef.altGlyphItem.animateColor.animateMotion.animateTransform.clipPath.feBlend.feColorMatrix.feComponentTransfer.feComposite.feConvolveMatrix.feDiffuseLighting.feDisplacementMap.feDistantLight.feDropShadow.feFlood.feFuncA.feFuncB.feFuncG.feFuncR.feGaussianBlur.feImage.feMerge.feMergeNode.feMorphology.feOffset.fePointLight.feSpecularLighting.feSpotLight.feTile.feTurbulence.foreignObject.glyphRef.linearGradient.radialGradient.textPath`.split(`.`).map(function(e){return[e.toLowerCase(),e]})),e.attributeNames=new Map(`definitionURL.attributeName.attributeType.baseFrequency.baseProfile.calcMode.clipPathUnits.diffuseConstant.edgeMode.filterUnits.glyphRef.gradientTransform.gradientUnits.kernelMatrix.kernelUnitLength.keyPoints.keySplines.keyTimes.lengthAdjust.limitingConeAngle.markerHeight.markerUnits.markerWidth.maskContentUnits.maskUnits.numOctaves.pathLength.patternContentUnits.patternTransform.patternUnits.pointsAtX.pointsAtY.pointsAtZ.preserveAlpha.preserveAspectRatio.primitiveUnits.refX.refY.repeatCount.repeatDur.requiredExtensions.requiredFeatures.specularConstant.specularExponent.spreadMethod.startOffset.stdDeviation.stitchTiles.surfaceScale.systemLanguage.tableValues.targetX.targetY.textLength.viewBox.viewTarget.xChannelSelector.yChannelSelector.zoomAndPan`.split(`.`).map(function(e){return[e.toLowerCase(),e]}))})),pae=s((e=>{var t=e&&e.__assign||function(){return t=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n],t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},t.apply(this,arguments)},n=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||(`get`in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),r=e&&e.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),i=e&&e.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var i in e)i!=="default"&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return r(t,e),t};Object.defineProperty(e,"__esModule",{value:!0}),e.render=void 0;var a=i($3()),o=dae(),s=fae(),c=new Set([`style`,`script`,`xmp`,`iframe`,`noembed`,`noframes`,`plaintext`,`noscript`]);function l(e){return e.replace(/"/g,`"`)}function u(e,t){if(e){var n=(t.encodeEntities??t.decodeEntities)===!1?l:t.xmlMode||t.encodeEntities!==`utf8`?o.encodeXML:o.escapeAttribute;return Object.keys(e).map(function(r){var i=e[r]??``;return t.xmlMode===`foreign`&&(r=s.attributeNames.get(r)??r),!t.emptyAttrs&&!t.xmlMode&&i===``?r:`${r}="${n(i)}"`}).join(` `)}}var d=new Set([`area`,`base`,`basefont`,`br`,`col`,`command`,`embed`,`frame`,`hr`,`img`,`input`,`isindex`,`keygen`,`link`,`meta`,`param`,`source`,`track`,`wbr`]);function f(e,t){t===void 0&&(t={});for(var n=(`length`in e)?e:[e],r=``,i=0;i<n.length;i++)r+=p(n[i],t);return r}e.render=f,e.default=f;function p(e,t){switch(e.type){case a.Root:return f(e.children,t);case a.Doctype:case a.Directive:return _(e);case a.Comment:return b(e);case a.CDATA:return y(e);case a.Script:case a.Style:case a.Tag:return g(e,t);case a.Text:return v(e,t)}}var m=new Set([`mi`,`mo`,`mn`,`ms`,`mtext`,`annotation-xml`,`foreignObject`,`desc`,`title`]),h=new Set([`svg`,`math`]);function g(e,n){n.xmlMode===`foreign`&&(e.name=s.elementNames.get(e.name)??e.name,e.parent&&m.has(e.parent.name)&&(n=t(t({},n),{xmlMode:!1}))),!n.xmlMode&&h.has(e.name)&&(n=t(t({},n),{xmlMode:`foreign`}));var r=`<${e.name}`,i=u(e.attribs,n);return i&&(r+=` ${i}`),e.children.length===0&&(n.xmlMode?n.selfClosingTags!==!1:n.selfClosingTags&&d.has(e.name))?(n.xmlMode||(r+=` `),r+=`/>`):(r+=`>`,e.children.length>0&&(r+=f(e.children,n)),(n.xmlMode||!d.has(e.name))&&(r+=`</${e.name}>`)),r}function _(e){return`<${e.data}>`}function v(e,t){var n=e.data||``;return(t.encodeEntities??t.decodeEntities)!==!1&&!(!t.xmlMode&&e.parent&&c.has(e.parent.name))&&(n=t.xmlMode||t.encodeEntities!==`utf8`?(0,o.encodeXML)(n):(0,o.escapeText)(n)),n}function y(e){return`<![CDATA[${e.children[0].data}]]>`}function b(e){return`<!--${e.data}-->`}})),o6=s((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,"__esModule",{value:!0}),e.getOuterHTML=a,e.getInnerHTML=o,e.getText=s,e.textContent=c,e.innerText=l;var n=t6(),r=t(pae()),i=$3();function a(e,t){return(0,r.default)(e,t)}function o(e,t){return(0,n.hasChildren)(e)?e.children.map(function(e){return a(e,t)}).join(``):``}function s(e){return Array.isArray(e)?e.map(s).join(``):(0,n.isTag)(e)?e.name===`br`?`
|
|
3004
3004
|
`:s(e.children):(0,n.isCDATA)(e)?s(e.children):(0,n.isText)(e)?e.data:``}function c(e){return Array.isArray(e)?e.map(c).join(``):(0,n.hasChildren)(e)&&!(0,n.isComment)(e)?c(e.children):(0,n.isText)(e)?e.data:``}function l(e){return Array.isArray(e)?e.map(l).join(``):(0,n.hasChildren)(e)&&(e.type===i.ElementType.Tag||(0,n.isCDATA)(e))?l(e.children):(0,n.isText)(e)?e.data:``}})),mae=s((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.getChildren=n,e.getParent=r,e.getSiblings=i,e.getAttributeValue=a,e.hasAttrib=o,e.getName=s,e.nextElementSibling=c,e.prevElementSibling=l;var t=t6();function n(e){return(0,t.hasChildren)(e)?e.children:[]}function r(e){return e.parent||null}function i(e){var t,i,a=r(e);if(a!=null)return n(a);for(var o=[e],s=e.prev,c=e.next;s!=null;)o.unshift(s),t=s,s=t.prev;for(;c!=null;)o.push(c),i=c,c=i.next;return o}function a(e,t){return e.attribs?.[t]}function o(e,t){return e.attribs!=null&&Object.prototype.hasOwnProperty.call(e.attribs,t)&&e.attribs[t]!=null}function s(e){return e.name}function c(e){for(var n,r=e.next;r!==null&&!(0,t.isTag)(r);)n=r,r=n.next;return r}function l(e){for(var n,r=e.prev;r!==null&&!(0,t.isTag)(r);)n=r,r=n.prev;return r}})),hae=s((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.removeElement=t,e.replaceElement=n,e.appendChild=r,e.append=i,e.prependChild=a,e.prepend=o;function t(e){if(e.prev&&(e.prev.next=e.next),e.next&&(e.next.prev=e.prev),e.parent){var t=e.parent.children,n=t.lastIndexOf(e);n>=0&&t.splice(n,1)}e.next=null,e.prev=null,e.parent=null}function n(e,t){var n=t.prev=e.prev;n&&(n.next=t);var r=t.next=e.next;r&&(r.prev=t);var i=t.parent=e.parent;if(i){var a=i.children;a[a.lastIndexOf(e)]=t,e.parent=null}}function r(e,n){if(t(n),n.next=null,n.parent=e,e.children.push(n)>1){var r=e.children[e.children.length-2];r.next=n,n.prev=r}else n.prev=null}function i(e,n){t(n);var r=e.parent,i=e.next;if(n.next=i,n.prev=e,e.next=n,n.parent=r,i){if(i.prev=n,r){var a=r.children;a.splice(a.lastIndexOf(i),0,n)}}else r&&r.children.push(n)}function a(e,n){if(t(n),n.parent=e,n.prev=null,e.children.unshift(n)!==1){var r=e.children[1];r.prev=n,n.next=r}else n.next=null}function o(e,n){t(n);var r=e.parent;if(r){var i=r.children;i.splice(i.indexOf(e),0,n)}e.prev&&(e.prev.next=n),n.parent=r,n.prev=e.prev,n.next=e,e.prev=n}})),s6=s((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.filter=n,e.find=r,e.findOneChild=i,e.findOne=a,e.existsOne=o,e.findAll=s;var t=t6();function n(e,t,n,i){return n===void 0&&(n=!0),i===void 0&&(i=1/0),r(e,Array.isArray(t)?t:[t],n,i)}function r(e,n,r,i){for(var a=[],o=[Array.isArray(n)?n:[n]],s=[0];;){if(s[0]>=o[0].length){if(s.length===1)return a;o.shift(),s.shift();continue}var c=o[0][s[0]++];if(e(c)&&(a.push(c),--i<=0))return a;r&&(0,t.hasChildren)(c)&&c.children.length>0&&(s.unshift(0),o.unshift(c.children))}}function i(e,t){return t.find(e)}function a(e,n,r){r===void 0&&(r=!0);for(var i=Array.isArray(n)?n:[n],o=0;o<i.length;o++){var s=i[o];if((0,t.isTag)(s)&&e(s))return s;if(r&&(0,t.hasChildren)(s)&&s.children.length>0){var c=a(e,s.children,!0);if(c)return c}}return null}function o(e,n){return(Array.isArray(n)?n:[n]).some(function(n){return(0,t.isTag)(n)&&e(n)||(0,t.hasChildren)(n)&&o(e,n.children)})}function s(e,n){for(var r=[],i=[Array.isArray(n)?n:[n]],a=[0];;){if(a[0]>=i[0].length){if(i.length===1)return r;i.shift(),a.shift();continue}var o=i[0][a[0]++];(0,t.isTag)(o)&&e(o)&&r.push(o),(0,t.hasChildren)(o)&&o.children.length>0&&(a.unshift(0),i.unshift(o.children))}}})),c6=s((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.testElement=s,e.getElements=c,e.getElementById=l,e.getElementsByTagName=u,e.getElementsByClassName=d,e.getElementsByTagType=f;var t=t6(),n=s6(),r={tag_name:function(e){return typeof e==`function`?function(n){return(0,t.isTag)(n)&&e(n.name)}:e===`*`?t.isTag:function(n){return(0,t.isTag)(n)&&n.name===e}},tag_type:function(e){return typeof e==`function`?function(t){return e(t.type)}:function(t){return t.type===e}},tag_contains:function(e){return typeof e==`function`?function(n){return(0,t.isText)(n)&&e(n.data)}:function(n){return(0,t.isText)(n)&&n.data===e}}};function i(e,n){return typeof n==`function`?function(r){return(0,t.isTag)(r)&&n(r.attribs[e])}:function(r){return(0,t.isTag)(r)&&r.attribs[e]===n}}function a(e,t){return function(n){return e(n)||t(n)}}function o(e){var t=Object.keys(e).map(function(t){var n=e[t];return Object.prototype.hasOwnProperty.call(r,t)?r[t](n):i(t,n)});return t.length===0?null:t.reduce(a)}function s(e,t){var n=o(e);return n?n(t):!0}function c(e,t,r,i){i===void 0&&(i=1/0);var a=o(e);return a?(0,n.filter)(a,t,r,i):[]}function l(e,t,r){return r===void 0&&(r=!0),Array.isArray(t)||(t=[t]),(0,n.findOne)(i(`id`,e),t,r)}function u(e,t,i,a){return i===void 0&&(i=!0),a===void 0&&(a=1/0),(0,n.filter)(r.tag_name(e),t,i,a)}function d(e,t,r,a){return r===void 0&&(r=!0),a===void 0&&(a=1/0),(0,n.filter)(i(`class`,e),t,r,a)}function f(e,t,i,a){return i===void 0&&(i=!0),a===void 0&&(a=1/0),(0,n.filter)(r.tag_type(e),t,i,a)}})),gae=s((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.DocumentPosition=void 0,e.removeSubsets=n,e.compareDocumentPosition=i,e.uniqueSort=a;var t=t6();function n(e){for(var t=e.length;--t>=0;){var n=e[t];if(t>0&&e.lastIndexOf(n,t-1)>=0){e.splice(t,1);continue}for(var r=n.parent;r;r=r.parent)if(e.includes(r)){e.splice(t,1);break}}return e}var r;(function(e){e[e.DISCONNECTED=1]=`DISCONNECTED`,e[e.PRECEDING=2]=`PRECEDING`,e[e.FOLLOWING=4]=`FOLLOWING`,e[e.CONTAINS=8]=`CONTAINS`,e[e.CONTAINED_BY=16]=`CONTAINED_BY`})(r||(e.DocumentPosition=r={}));function i(e,n){var i=[],a=[];if(e===n)return 0;for(var o=(0,t.hasChildren)(e)?e:e.parent;o;)i.unshift(o),o=o.parent;for(o=(0,t.hasChildren)(n)?n:n.parent;o;)a.unshift(o),o=o.parent;for(var s=Math.min(i.length,a.length),c=0;c<s&&i[c]===a[c];)c++;if(c===0)return r.DISCONNECTED;var l=i[c-1],u=l.children,d=i[c],f=a[c];return u.indexOf(d)>u.indexOf(f)?l===n?r.FOLLOWING|r.CONTAINED_BY:r.FOLLOWING:l===e?r.PRECEDING|r.CONTAINS:r.PRECEDING}function a(e){return e=e.filter(function(e,t,n){return!n.includes(e,t+1)}),e.sort(function(e,t){var n=i(e,t);return n&r.PRECEDING?-1:n&r.FOLLOWING?1:0}),e}})),_ae=s((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.getFeed=r;var t=o6(),n=c6();function r(e){var t=l(f,e);return t?t.name===`feed`?i(t):a(t):null}function i(e){var t=e.children,r={type:`atom`,items:(0,n.getElementsByTagName)(`entry`,t).map(function(e){var t=e.children,n={media:c(t)};d(n,`id`,`id`,t),d(n,`title`,`title`,t);var r=l(`link`,t)?.attribs.href;r&&(n.link=r);var i=u(`summary`,t)||u(`content`,t);i&&(n.description=i);var a=u(`updated`,t);return a&&(n.pubDate=new Date(a)),n})};d(r,`id`,`id`,t),d(r,`title`,`title`,t);var i=l(`link`,t)?.attribs.href;i&&(r.link=i),d(r,`description`,`subtitle`,t);var a=u(`updated`,t);return a&&(r.updated=new Date(a)),d(r,`author`,`email`,t,!0),r}function a(e){var t=l(`channel`,e.children)?.children??[],r={type:e.name.substr(0,3),id:``,items:(0,n.getElementsByTagName)(`item`,e.children).map(function(e){var t=e.children,n={media:c(t)};d(n,`id`,`guid`,t),d(n,`title`,`title`,t),d(n,`link`,`link`,t),d(n,`description`,`description`,t);var r=u(`pubDate`,t)||u(`dc:date`,t);return r&&(n.pubDate=new Date(r)),n})};d(r,`title`,`title`,t),d(r,`link`,`link`,t),d(r,`description`,`description`,t);var i=u(`lastBuildDate`,t);return i&&(r.updated=new Date(i)),d(r,`author`,`managingEditor`,t,!0),r}var o=[`url`,`type`,`lang`],s=[`fileSize`,`bitrate`,`framerate`,`samplingrate`,`channels`,`duration`,`height`,`width`];function c(e){return(0,n.getElementsByTagName)(`media:content`,e).map(function(e){for(var t=e.attribs,n={medium:t.medium,isDefault:!!t.isDefault},r=0,i=o;r<i.length;r++){var a=i[r];t[a]&&(n[a]=t[a])}for(var c=0,l=s;c<l.length;c++){var a=l[c];t[a]&&(n[a]=parseInt(t[a],10))}return t.expression&&(n.expression=t.expression),n})}function l(e,t){return(0,n.getElementsByTagName)(e,t,!0,1)[0]}function u(e,r,i){return i===void 0&&(i=!1),(0,t.textContent)((0,n.getElementsByTagName)(e,r,i,1)).trim()}function d(e,t,n,r,i){i===void 0&&(i=!1);var a=u(n,r,i);a&&(e[t]=a)}function f(e){return e===`rss`||e===`feed`||e===`rdf:RDF`}})),l6=s((e=>{var t=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||(`get`in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),n=e&&e.__exportStar||function(e,n){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(n,r)&&t(n,e,r)};Object.defineProperty(e,"__esModule",{value:!0}),e.hasChildren=e.isDocument=e.isComment=e.isText=e.isCDATA=e.isTag=void 0,n(o6(),e),n(mae(),e),n(hae(),e),n(s6(),e),n(c6(),e),n(gae(),e),n(_ae(),e);var r=t6();Object.defineProperty(e,"isTag",{enumerable:!0,get:function(){return r.isTag}}),Object.defineProperty(e,"isCDATA",{enumerable:!0,get:function(){return r.isCDATA}}),Object.defineProperty(e,"isText",{enumerable:!0,get:function(){return r.isText}}),Object.defineProperty(e,"isComment",{enumerable:!0,get:function(){return r.isComment}}),Object.defineProperty(e,"isDocument",{enumerable:!0,get:function(){return r.isDocument}}),Object.defineProperty(e,"hasChildren",{enumerable:!0,get:function(){return r.hasChildren}})})),vae=s((e=>{var t=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||(`get`in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),n=e&&e.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),r=e&&e.__importStar||(function(){var e=function(t){return e=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t},e(t)};return function(r){if(r&&r.__esModule)return r;var i={};if(r!=null)for(var a=e(r),o=0;o<a.length;o++)a[o]!=="default"&&t(i,r,a[o]);return n(i,r),i}})(),i=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,"__esModule",{value:!0}),e.DomUtils=e.getFeed=e.ElementType=e.QuoteType=e.Tokenizer=e.DefaultHandler=e.DomHandler=e.Parser=void 0,e.parseDocument=l,e.parseDOM=u,e.createDocumentStream=d,e.createDomStream=f,e.parseFeed=_;var a=Q3(),o=Q3();Object.defineProperty(e,"Parser",{enumerable:!0,get:function(){return o.Parser}});var s=t6(),c=t6();Object.defineProperty(e,"DomHandler",{enumerable:!0,get:function(){return c.DomHandler}}),Object.defineProperty(e,"DefaultHandler",{enumerable:!0,get:function(){return c.DomHandler}});function l(e,t){let n=new s.DomHandler(void 0,t);return new a.Parser(n,t).end(e),n.root}function u(e,t){return l(e,t).children}function d(e,t,n){let r=new s.DomHandler(t=>e(t,r.root),t,n);return new a.Parser(r,t)}function f(e,t,n){let r=new s.DomHandler(e,t,n);return new a.Parser(r,t)}var p=Z3();Object.defineProperty(e,"Tokenizer",{enumerable:!0,get:function(){return i(p).default}}),Object.defineProperty(e,"QuoteType",{enumerable:!0,get:function(){return p.QuoteType}}),e.ElementType=r($3());var m=l6(),h=l6();Object.defineProperty(e,"getFeed",{enumerable:!0,get:function(){return h.getFeed}});var g={xmlMode:!0};function _(e,t=g){return(0,m.getFeed)(u(e,t))}e.DomUtils=r(l6())})),yae=s(((e,t)=>{t.exports=e=>{if(typeof e!=`string`)throw TypeError(`Expected a string`);return e.replace(/[|\\{}()[\]^$+*?.]/g,`\\$&`).replace(/-/g,`\\x2d`)}})),bae=s((e=>{Object.defineProperty(e,"__esModule",{value:!0});function t(e){return Object.prototype.toString.call(e)===`[object Object]`}function n(e){var n,r;return t(e)===!1?!1:(n=e.constructor,n===void 0?!0:(r=n.prototype,!(t(r)===!1||r.hasOwnProperty(`isPrototypeOf`)===!1)))}e.isPlainObject=n})),xae=s(((e,t)=>{var n=function(e){return r(e)&&!i(e)};function r(e){return!!e&&typeof e==`object`}function i(e){var t=Object.prototype.toString.call(e);return t===`[object RegExp]`||t===`[object Date]`||o(e)}var a=typeof Symbol==`function`&&Symbol.for?Symbol.for(`react.element`):60103;function o(e){return e.$$typeof===a}function s(e){return Array.isArray(e)?[]:{}}function c(e,t){return t.clone!==!1&&t.isMergeableObject(e)?g(s(e),e,t):e}function l(e,t,n){return e.concat(t).map(function(e){return c(e,n)})}function u(e,t){if(!t.customMerge)return g;var n=t.customMerge(e);return typeof n==`function`?n:g}function d(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(function(t){return Object.propertyIsEnumerable.call(e,t)}):[]}function f(e){return Object.keys(e).concat(d(e))}function p(e,t){try{return t in e}catch{return!1}}function m(e,t){return p(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))}function h(e,t,n){var r={};return n.isMergeableObject(e)&&f(e).forEach(function(t){r[t]=c(e[t],n)}),f(t).forEach(function(i){m(e,i)||(p(e,i)&&n.isMergeableObject(t[i])?r[i]=u(i,n)(e[i],t[i],n):r[i]=c(t[i],n))}),r}function g(e,t,r){r||={},r.arrayMerge=r.arrayMerge||l,r.isMergeableObject=r.isMergeableObject||n,r.cloneUnlessOtherwiseSpecified=c;var i=Array.isArray(t);return i===Array.isArray(e)?i?r.arrayMerge(e,t,r):h(e,t,r):c(t,r)}g.all=function(e,t){if(!Array.isArray(e))throw Error(`first argument should be an array`);return e.reduce(function(e,n){return g(e,n,t)},{})},t.exports=g})),Sae=s(((e,t)=>{(function(e,n){typeof define==`function`&&define.amd?define([],n):typeof t==`object`&&t.exports?t.exports=n():e.parseSrcset=n()})(e,function(){return function(e){function t(e){return e===` `||e===` `||e===`
|
|
3005
3005
|
`||e===`\f`||e===`\r`}function n(t){var n,r=t.exec(e.substring(h));if(r)return n=r[0],h+=n.length,n}for(var r=e.length,i=/^[ \t\n\r\u000c]+/,a=/^[, \t\n\r\u000c]+/,o=/^[^ \t\n\r\u000c]+/,s=/[,]+$/,c=/^\d+$/,l=/^-?(?:[0-9]+|[0-9]*\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/,u,d,f,p,m,h=0,g=[];;){if(n(a),h>=r)return g;u=n(o),d=[],u.slice(-1)===`,`?(u=u.replace(s,``),v()):_()}function _(){for(n(i),f=``,p=`in descriptor`;;){if(m=e.charAt(h),p===`in descriptor`)if(t(m))f&&(d.push(f),f=``,p=`after descriptor`);else if(m===`,`){h+=1,f&&d.push(f),v();return}else if(m===`(`)f+=m,p=`in parens`;else if(m===``){f&&d.push(f),v();return}else f+=m;else if(p===`in parens`)if(m===`)`)f+=m,p=`in descriptor`;else if(m===``){d.push(f),v();return}else f+=m;else if(p===`after descriptor`&&!t(m))if(m===``){v();return}else p=`in descriptor`,--h;h+=1}}function v(){var t=!1,n,r,i,a,o={},s,f,p,m,h;for(a=0;a<d.length;a++)s=d[a],f=s[s.length-1],p=s.substring(0,s.length-1),m=parseInt(p,10),h=parseFloat(p),c.test(p)&&f===`w`?((n||r)&&(t=!0),m===0?t=!0:n=m):l.test(p)&&f===`x`?((n||r||i)&&(t=!0),h<0?t=!0:r=h):c.test(p)&&f===`h`?((i||r)&&(t=!0),m===0?t=!0:i=m):t=!0;t?console&&console.log&&console.log(`Invalid srcset descriptor found in '`+e+`' at '`+s+`'.`):(o.url=u,n&&(o.w=n),r&&(o.d=r),i&&(o.h=i),g.push(o))}}})})),Cae=s(((e,t)=>{var n=String,r=function(){return{isColorSupported:!1,reset:n,bold:n,dim:n,italic:n,underline:n,inverse:n,hidden:n,strikethrough:n,black:n,red:n,green:n,yellow:n,blue:n,magenta:n,cyan:n,white:n,gray:n,bgBlack:n,bgRed:n,bgGreen:n,bgYellow:n,bgBlue:n,bgMagenta:n,bgCyan:n,bgWhite:n,blackBright:n,redBright:n,greenBright:n,yellowBright:n,blueBright:n,magentaBright:n,cyanBright:n,whiteBright:n,bgBlackBright:n,bgRedBright:n,bgGreenBright:n,bgYellowBright:n,bgBlueBright:n,bgMagentaBright:n,bgCyanBright:n,bgWhiteBright:n}};t.exports=r(),t.exports.createColors=r})),u6=s(((e,t)=>{var n=Cae(),r=bu(),i=class e extends Error{constructor(t,n,r,i,a,o){super(t),this.name=`CssSyntaxError`,this.reason=t,a&&(this.file=a),i&&(this.source=i),o&&(this.plugin=o),n!==void 0&&r!==void 0&&(typeof n==`number`?(this.line=n,this.column=r):(this.line=n.line,this.column=n.column,this.endLine=r.line,this.endColumn=r.column)),this.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(this,e)}setMessage(){this.message=this.plugin?this.plugin+`: `:``,this.message+=this.file?this.file:`<css input>`,this.line!==void 0&&(this.message+=`:`+this.line+`:`+this.column),this.message+=`: `+this.reason}showSourceCode(e){if(!this.source)return``;let t=this.source;e??=n.isColorSupported;let i=e=>e,a=e=>e,o=e=>e;if(e){let{bold:e,gray:t,red:s}=n.createColors(!0);a=t=>e(s(t)),i=e=>t(e),r&&(o=e=>r(e))}let s=t.split(/\r?\n/),c=Math.max(this.line-3,0),l=Math.min(this.line+2,s.length),u=String(l).length;return s.slice(c,l).map((e,t)=>{let n=c+1+t,r=` `+(` `+n).slice(-u)+` | `;if(n===this.line){if(e.length>160){let t=Math.max(0,this.column-20),n=Math.max(this.column+20,this.endColumn+20),s=e.slice(t,n),c=i(r.replace(/\d/g,` `))+e.slice(0,Math.min(this.column-1,19)).replace(/[^\t]/g,` `);return a(`>`)+i(r)+o(s)+`
|
|
3006
3006
|
`+c+a(`^`)}let t=i(r.replace(/\d/g,` `))+e.slice(0,this.column-1).replace(/[^\t]/g,` `);return a(`>`)+i(r)+o(e)+`
|