shiplightai 0.1.21 → 0.1.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/dist/agentHelpers-ZM2YPYUG.js +3 -0
  2. package/dist/agentLogin-TVTERJCC.js +3 -0
  3. package/dist/chunk-47OHTDHW.js +18 -0
  4. package/dist/chunk-4MP3EHVU.js +11 -0
  5. package/dist/{chunk-32JFHFFG.js → chunk-AEEQXF3N.js} +29 -29
  6. package/dist/chunk-C6BVAOFE.js +3 -0
  7. package/dist/{chunk-RTTIJBGI.js → chunk-CSHDULY4.js} +28 -28
  8. package/dist/chunk-EEEG4LZX.js +3 -0
  9. package/dist/chunk-HJNJZWUA.js +5 -0
  10. package/dist/chunk-ID5JNGPZ.js +18 -0
  11. package/dist/{chunk-YHOTGR6H.js → chunk-J4TZ3OFZ.js} +1 -1
  12. package/dist/chunk-JQ2K2XJ4.js +61 -0
  13. package/dist/chunk-L5JSAS2D.js +3 -0
  14. package/dist/{chunk-YDR4P3GA.js → chunk-NLZ3YJX4.js} +1 -1
  15. package/dist/{chunk-JHSENQ4F.js → chunk-SFCNGCFT.js} +27 -27
  16. package/dist/{chunk-2F3YRAA7.js → chunk-VLVDPV2E.js} +13 -13
  17. package/dist/cjs/debugger-pw.cjs +7 -7
  18. package/dist/cjs/fixture.cjs +162 -147
  19. package/dist/cjs/index.cjs +229 -309
  20. package/dist/cjs/reporter.cjs +725 -0
  21. package/dist/cli.js +2107 -939
  22. package/dist/config-BUSI76YU.js +3 -0
  23. package/dist/debugger-pw.d.ts +5 -0
  24. package/dist/debugger-pw.js +1 -1
  25. package/dist/dist-3HGFS7M3-T7FMZHX4.js +3 -0
  26. package/dist/dist-K7NWI5BS.js +3 -0
  27. package/dist/dist-SIZHXBHX.js +3 -0
  28. package/dist/fixture.js +1 -1
  29. package/dist/handler-J6CCKSPE.js +3 -0
  30. package/dist/index.d.ts +1 -48
  31. package/dist/index.js +4 -11
  32. package/dist/{intRunner-5A6M6JSJ.js → intRunner-ZYEEZ6MK.js} +1 -1
  33. package/dist/reporter.d.ts +28 -0
  34. package/dist/reporter.js +723 -0
  35. package/dist/task-EDC5BGTS.js +192 -0
  36. package/dist/testFlow-HYGLHAP6.js +3 -0
  37. package/package.json +8 -1
  38. package/dist/agentHelpers-2TII7YCW.js +0 -3
  39. package/dist/agentLogin-GDOU6BCP.js +0 -3
  40. package/dist/chunk-DJDHFWEV.js +0 -3
  41. package/dist/chunk-JNRJXAJS.js +0 -18
  42. package/dist/chunk-LPSNOKYP.js +0 -61
  43. package/dist/chunk-THVHM4KG.js +0 -11
  44. package/dist/chunk-USRSZQWN.js +0 -5
  45. package/dist/dist-CXOVVE77.js +0 -3
  46. package/dist/dist-SRXGJZ7P.js +0 -3
  47. package/dist/handler-BAP4TGW6.js +0 -3
  48. package/dist/task-VW6MUEKX.js +0 -192
  49. package/dist/testFlow-ZLC5L5GT.js +0 -3
@@ -1,28 +1,28 @@
1
1
  import { createRequire as __createRequire } from "module";
2
2
  const require = __createRequire(import.meta.url);
3
- import{a as Pe,c as Zu,d as Ir,e as Kt,f as Me,g as He,h as Ue}from"./chunk-32JFHFFG.js";import{A as Ar,B as Lr,a as er,b as tr,c as ur,d as rr,e as ir,f as ar,g as nr,h as sr,i as or,j as cr,k as lr,l as dr,m as fr,n as hr,o as pr,p as mr,q as gr,r as br,s as xr,t as wr,u as yr,v as vr,w as kr,x as Sr,y as Tr,z as Er}from"./chunk-2F3YRAA7.js";import{a as Oe,b as P,c as jt,d as Vt,f as Qu,n as Re}from"./chunk-RTTIJBGI.js";import{a as Jt,b as Nr,c as pe,d as Dr,e as $r,f as Cr,g as Br,h as Pr,i as Or,l as Rr,o as Yt,r as qr}from"./chunk-LPSNOKYP.js";import{a as Wt,b as _r,d as Gt,g as zt,h as qe}from"./chunk-YHOTGR6H.js";import{a as k}from"./chunk-YDR4P3GA.js";import{b as Ft,c as o}from"./chunk-DJDHFWEV.js";import{a as nn,c as X,d as Xu}from"./chunk-CSINHOOD.js";var zi=X((xl,Gi)=>{"use strict";var Ws=function(t){return Gs(t)&&!zs(t)};function Gs(e){return!!e&&typeof e=="object"}function zs(e){var t=Object.prototype.toString.call(e);return t==="[object RegExp]"||t==="[object Date]"||Ys(e)}var Ks=typeof Symbol=="function"&&Symbol.for,Js=Ks?Symbol.for("react.element"):60103;function Ys(e){return e.$$typeof===Js}function Xs(e){return Array.isArray(e)?[]:{}}function De(e,t){return t.clone!==!1&&t.isMergeableObject(e)?fe(Xs(e),e,t):e}function Zs(e,t,u){return e.concat(t).map(function(r){return De(r,u)})}function Qs(e,t){if(!t.customMerge)return fe;var u=t.customMerge(e);return typeof u=="function"?u:fe}function eo(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(function(t){return Object.propertyIsEnumerable.call(e,t)}):[]}function Vi(e){return Object.keys(e).concat(eo(e))}function Wi(e,t){try{return t in e}catch{return!1}}function to(e,t){return Wi(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))}function uo(e,t,u){var r={};return u.isMergeableObject(e)&&Vi(e).forEach(function(i){r[i]=De(e[i],u)}),Vi(t).forEach(function(i){to(e,i)||(Wi(e,i)&&u.isMergeableObject(t[i])?r[i]=Qs(i,u)(e[i],t[i],u):r[i]=De(t[i],u))}),r}function fe(e,t,u){u=u||{},u.arrayMerge=u.arrayMerge||Zs,u.isMergeableObject=u.isMergeableObject||Ws,u.cloneUnlessOtherwiseSpecified=De;var r=Array.isArray(t),i=Array.isArray(e),a=r===i;return a?r?u.arrayMerge(e,t,u):uo(e,t,u):De(t,u)}fe.all=function(t,u){if(!Array.isArray(t))throw new Error("first argument should be an array");return t.reduce(function(r,i){return fe(r,i,u)},{})};var ro=fe;Gi.exports=ro});var ya=X(Tt=>{"use strict";Object.defineProperty(Tt,"__esModule",{value:!0});function m0(e){return e&&typeof e=="object"&&"default"in e?e.default:e}var wa=m0(nn("crypto")),g0=(e,t,u)=>wa.createHmac(e,Buffer.from(t,"hex")).update(Buffer.from(u,"hex")).digest().toString("hex"),b0=(e,t)=>wa.randomBytes(e).toString(t);Tt.createDigest=g0;Tt.createRandomBytes=b0});var ka=X(Du=>{"use strict";var x0="ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",va=[255,255,26,27,28,29,30,31,255,255,255,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,255,255,255,255,255];function w0(e){var t=Math.floor(e.length/5);return e.length%5===0?t:t+1}Du.encode=function(e){Buffer.isBuffer(e)||(e=new Buffer(e));for(var t=0,u=0,r=0,i=0,a=new Buffer(w0(e)*8);t<e.length;){var n=e[t];r>3?(i=n&255>>r,r=(r+5)%8,i=i<<r|(t+1<e.length?e[t+1]:0)>>8-r,t++):(i=n>>8-(r+5)&31,r=(r+5)%8,r===0&&t++),a[u]=x0.charCodeAt(i),u++}for(t=u;t<a.length;t++)a[t]=61;return a};Du.decode=function(e){var t=0,u=0,r,i=0;Buffer.isBuffer(e)||(e=new Buffer(e));for(var a=new Buffer(Math.ceil(e.length*5/8)),n=0;n<e.length&&e[n]!==61;n++){var s=e[n]-48;if(s<va.length)u=va[s],t<=3?(t=(t+5)%8,t===0?(r|=u,a[i]=r,i++,r=0):r|=255&u<<8-t):(t=(t+5)%8,r|=255&u>>>t,a[i]=r,i++,r=255&u<<8-t);else throw new Error("Invalid input - it is not base32 encoded string")}return a.slice(0,i)}});var Ta=X($u=>{"use strict";var Sa=ka();$u.encode=Sa.encode;$u.decode=Sa.decode});var Aa=X(Et=>{"use strict";Object.defineProperty(Et,"__esModule",{value:!0});function y0(e){return e&&typeof e=="object"&&"default"in e?e.default:e}var Ea=y0(Ta()),v0=(e,t)=>Ea.decode(e).toString(t),k0=(e,t)=>Ea.encode(Buffer.from(e,t).toString("ascii")).toString().replace(/=/g,"");Et.keyDecoder=v0;Et.keyEncoder=k0});var Ka=X(p=>{"use strict";Object.defineProperty(p,"__esModule",{value:!0});function Dt(e){return Object.keys(e).map(t=>e[t])}(function(e){e.SHA1="sha1",e.SHA256="sha256",e.SHA512="sha512"})(p.HashAlgorithms||(p.HashAlgorithms={}));var Lt=Dt(p.HashAlgorithms);(function(e){e.ASCII="ascii",e.BASE64="base64",e.HEX="hex",e.LATIN1="latin1",e.UTF8="utf8"})(p.KeyEncodings||(p.KeyEncodings={}));var Cu=Dt(p.KeyEncodings);(function(e){e.HOTP="hotp",e.TOTP="totp"})(p.Strategy||(p.Strategy={}));var Bu=Dt(p.Strategy),$t=()=>{throw new Error("Please provide an options.createDigest implementation.")};function Ru(e){return/^(\d+)$/.test(e)}function qu(e,t,u){return e.length>=t?e:`${Array(t+1).join(u)}${e}`.slice(-1*t)}function Mu(e){let t=`otpauth://${e.type}/{labelPrefix}:{accountName}?secret={secret}{query}`,u=[];if(Bu.indexOf(e.type)<0)throw new Error(`Expecting options.type to be one of ${Bu.join(", ")}. Received ${e.type}.`);if(e.type==="hotp"){if(e.counter==null||typeof e.counter!="number")throw new Error('Expecting options.counter to be a number when options.type is "hotp".');u.push(`&counter=${e.counter}`)}return e.type==="totp"&&e.step&&u.push(`&period=${e.step}`),e.digits&&u.push(`&digits=${e.digits}`),e.algorithm&&u.push(`&algorithm=${e.algorithm.toUpperCase()}`),e.issuer&&u.push(`&issuer=${encodeURIComponent(e.issuer)}`),t.replace("{labelPrefix}",encodeURIComponent(e.issuer||e.accountName)).replace("{accountName}",encodeURIComponent(e.accountName)).replace("{secret}",e.secret).replace("{query}",u.join(""))}var _t=class e{constructor(t={}){this._defaultOptions=Object.freeze({...t}),this._options=Object.freeze({})}create(t={}){return new e(t)}clone(t={}){let u=this.create({...this._defaultOptions,...t});return u.options=this._options,u}get options(){return Object.freeze({...this._defaultOptions,...this._options})}set options(t){this._options=Object.freeze({...this._options,...t})}allOptions(){return this.options}resetOptions(){this._options=Object.freeze({})}};function Hu(e){if(typeof e.createDigest!="function")throw new Error("Expecting options.createDigest to be a function.");if(typeof e.createHmacKey!="function")throw new Error("Expecting options.createHmacKey to be a function.");if(typeof e.digits!="number")throw new Error("Expecting options.digits to be a number.");if(!e.algorithm||Lt.indexOf(e.algorithm)<0)throw new Error(`Expecting options.algorithm to be one of ${Lt.join(", ")}. Received ${e.algorithm}.`);if(!e.encoding||Cu.indexOf(e.encoding)<0)throw new Error(`Expecting options.encoding to be one of ${Cu.join(", ")}. Received ${e.encoding}.`)}var _a=(e,t,u)=>Buffer.from(t,u).toString("hex");function Ia(){return{algorithm:p.HashAlgorithms.SHA1,createHmacKey:_a,createDigest:$t,digits:6,encoding:p.KeyEncodings.ASCII}}function Na(e){let t={...Ia(),...e};return Hu(t),Object.freeze(t)}function Da(e){let t=e.toString(16);return qu(t,16,"0")}function $a(e,t){let u=Buffer.from(e,"hex"),r=u[u.length-1]&15,a=((u[r]&127)<<24|(u[r+1]&255)<<16|(u[r+2]&255)<<8|u[r+3]&255)%Math.pow(10,t);return qu(String(a),t,"0")}function S0(e,t,u){let r=Da(t),i=u.createHmacKey(u.algorithm,e,u.encoding);return u.createDigest(u.algorithm,i,r)}function Ct(e,t,u){let r=u.digest||S0(e,t,u);return $a(r,u.digits)}function Ca(e,t,u,r){if(!Ru(e))return!1;let i=Ct(t,u,r);return e===i}function Ba(e,t,u,r,i){return Mu({algorithm:i.algorithm,digits:i.digits,type:p.Strategy.HOTP,accountName:e,counter:r,issuer:t,secret:u})}var It=class e extends _t{create(t={}){return new e(t)}allOptions(){return Na(this.options)}generate(t,u){return Ct(t,u,this.allOptions())}check(t,u,r){return Ca(t,u,r,this.allOptions())}verify(t){if(typeof t!="object")throw new Error("Expecting argument 0 of verify to be an object");return this.check(t.token,t.secret,t.counter)}keyuri(t,u,r,i){return Ba(t,u,r,i,this.allOptions())}};function Pa(e){if(typeof e=="number")return[Math.abs(e),Math.abs(e)];if(Array.isArray(e)){let[t,u]=e;if(typeof t=="number"&&typeof u=="number")return[Math.abs(t),Math.abs(u)]}throw new Error("Expecting options.window to be an number or [number, number].")}function Uu(e){if(Hu(e),Pa(e.window),typeof e.epoch!="number")throw new Error("Expecting options.epoch to be a number.");if(typeof e.step!="number")throw new Error("Expecting options.step to be a number.")}var At=(e,t,u)=>{let r=e.length,i=Buffer.from(e,t).toString("hex");if(r<u){let a=new Array(u-r+1).join(i);return Buffer.from(a,"hex").slice(0,u).toString("hex")}return i},Fu=(e,t,u)=>{switch(e){case p.HashAlgorithms.SHA1:return At(t,u,20);case p.HashAlgorithms.SHA256:return At(t,u,32);case p.HashAlgorithms.SHA512:return At(t,u,64);default:throw new Error(`Expecting algorithm to be one of ${Lt.join(", ")}. Received ${e}.`)}};function Oa(){return{algorithm:p.HashAlgorithms.SHA1,createDigest:$t,createHmacKey:Fu,digits:6,encoding:p.KeyEncodings.ASCII,epoch:Date.now(),step:30,window:0}}function Ra(e){let t={...Oa(),...e};return Uu(t),Object.freeze(t)}function qa(e,t){return Math.floor(e/t/1e3)}function Bt(e,t){let u=qa(t.epoch,t.step);return Ct(e,u,t)}function La(e,t,u,r){let i=[];if(r===0)return i;for(let a=1;a<=r;a++){let n=t*a*u;i.push(e+n)}return i}function Ma(e,t,u){let r=Pa(u),i=t*1e3;return{current:e,past:La(e,-1,i,r[0]),future:La(e,1,i,r[1])}}function ju(e,t,u){if(!Ru(e))return!1;let r=Bt(t,u);return e===r}function Pu(e,t,u,r){let i=null;return e.some((a,n)=>ju(t,u,{...r,epoch:a})?(i=n+1,!0):!1),i}function Vu(e,t,u){if(ju(e,t,u))return 0;let r=Ma(u.epoch,u.step,u.window),i=Pu(r.past,e,t,u);return i!==null?i*-1:Pu(r.future,e,t,u)}function Wu(e,t){return Math.floor(e/1e3)%t}function Ha(e,t){return t-Wu(e,t)}function Ua(e,t,u,r){return Mu({algorithm:r.algorithm,digits:r.digits,step:r.step,type:p.Strategy.TOTP,accountName:e,issuer:t,secret:u})}var Nt=class e extends It{create(t={}){return new e(t)}allOptions(){return Ra(this.options)}generate(t){return Bt(t,this.allOptions())}checkDelta(t,u){return Vu(t,u,this.allOptions())}check(t,u){return typeof this.checkDelta(t,u)=="number"}verify(t){if(typeof t!="object")throw new Error("Expecting argument 0 of verify to be an object");return this.check(t.token,t.secret)}timeRemaining(){let t=this.allOptions();return Ha(t.epoch,t.step)}timeUsed(){let t=this.allOptions();return Wu(t.epoch,t.step)}keyuri(t,u,r){return Ua(t,u,r,this.allOptions())}};function Fa(e){if(Uu(e),typeof e.keyDecoder!="function")throw new Error("Expecting options.keyDecoder to be a function.");if(e.keyEncoder&&typeof e.keyEncoder!="function")throw new Error("Expecting options.keyEncoder to be a function.")}function ja(){return{algorithm:p.HashAlgorithms.SHA1,createDigest:$t,createHmacKey:Fu,digits:6,encoding:p.KeyEncodings.HEX,epoch:Date.now(),step:30,window:0}}function Va(e){let t={...ja(),...e};return Fa(t),Object.freeze(t)}function Gu(e,t){return t.keyEncoder(e,t.encoding)}function Pt(e,t){return t.keyDecoder(e,t.encoding)}function Wa(e,t){let u=t.createRandomBytes(e,t.encoding);return Gu(u,t)}function Ga(e,t){return Bt(Pt(e,t),t)}function za(e,t,u){return Vu(e,Pt(t,u),u)}var Ou=class e extends Nt{create(t={}){return new e(t)}allOptions(){return Va(this.options)}generate(t){return Ga(t,this.allOptions())}checkDelta(t,u){return za(t,u,this.allOptions())}encode(t){return Gu(t,this.allOptions())}decode(t){return Pt(t,this.allOptions())}generateSecret(t=10){return Wa(t,this.allOptions())}};p.Authenticator=Ou;p.HASH_ALGORITHMS=Lt;p.HOTP=It;p.KEY_ENCODINGS=Cu;p.OTP=_t;p.STRATEGY=Bu;p.TOTP=Nt;p.authenticatorCheckWithWindow=za;p.authenticatorDecoder=Pt;p.authenticatorDefaultOptions=ja;p.authenticatorEncoder=Gu;p.authenticatorGenerateSecret=Wa;p.authenticatorOptionValidator=Fa;p.authenticatorOptions=Va;p.authenticatorToken=Ga;p.createDigestPlaceholder=$t;p.hotpCheck=Ca;p.hotpCounter=Da;p.hotpCreateHmacKey=_a;p.hotpDefaultOptions=Ia;p.hotpDigestToToken=$a;p.hotpKeyuri=Ba;p.hotpOptions=Na;p.hotpOptionsValidator=Hu;p.hotpToken=Ct;p.isTokenValid=Ru;p.keyuri=Mu;p.objectValues=Dt;p.padStart=qu;p.totpCheck=ju;p.totpCheckByEpoch=Pu;p.totpCheckWithWindow=Vu;p.totpCounter=qa;p.totpCreateHmacKey=Fu;p.totpDefaultOptions=Oa;p.totpEpochAvailable=Ma;p.totpKeyuri=Ua;p.totpOptions=Ra;p.totpOptionsValidator=Uu;p.totpPadSecret=At;p.totpTimeRemaining=Ha;p.totpTimeUsed=Wu;p.totpToken=Bt});var Ya=X($e=>{"use strict";Object.defineProperty($e,"__esModule",{value:!0});var Ot=ya(),Ja=Aa(),zu=Ka(),T0=new zu.HOTP({createDigest:Ot.createDigest}),E0=new zu.TOTP({createDigest:Ot.createDigest}),A0=new zu.Authenticator({createDigest:Ot.createDigest,createRandomBytes:Ot.createRandomBytes,keyDecoder:Ja.keyDecoder,keyEncoder:Ja.keyEncoder});$e.authenticator=A0;$e.hotp=T0;$e.totp=E0});var Za=X(Ku=>{"use strict";Object.defineProperty(Ku,"__esModule",{value:!0});var Xa=Ya();Object.keys(Xa).forEach(function(e){e!=="default"&&Object.defineProperty(Ku,e,{enumerable:!0,get:function(){return Xa[e]}})})});import*as Mr from"fs/promises";import*as Fe from"vm";function Hr(e,t,u,r=!1){if(e[t])if(r)o.info(`Overriding existing function: ${t}`),delete e[t];else{o.error(`The name ${t} is already defined in the global scope`);return}try{let i;if(Fe.isContext(e)?i=new Fe.Script(u,{importModuleDynamically:async a=>await import(a)}).runInContext(e):i=(0,eval)(u),typeof i!="function")throw new Error("The injected code must be a function");e[t]=i}catch(i){o.error(`Error injecting user function ${t}: ${i.message}`)}}async function sn(e,t,u=!1){try{let r=await Mr.readFile(t,"utf8"),i=JSON.parse(r);o.info(`Loading ${Object.keys(i).length} user functions...`);for(let[a,n]of Object.entries(i))Hr(e,a,n,u)}catch(r){throw o.error("Failed to load user functions:",r),r}}import*as Xt from"fs/promises";async function on(e){try{let t=await Xt.readFile(e,"utf8"),u=JSON.parse(t);return o.info(`Loaded ${u.length} knowledges from file`),u}catch(t){if(t.code==="ENOENT")return o.debug("No knowledges file found"),[];throw o.error("Failed to load knowledges:",t),t}}async function cn(e){try{let t=await Xt.readFile(e,"utf8"),u=JSON.parse(t);return o.info(`Loaded ${u.length} knowledge mappings from file`),u}catch(t){if(t.code==="ENOENT")return o.debug("No knowledge mappings file found"),[];throw o.error("Failed to load knowledge mappings:",t),t}}async function ln(e,t){if(!e.body)throw new Error("Response body is null");let u=e.body.getReader(),r=new TextDecoder,i="";try{for(;;){let{done:a,value:n}=await u.read();if(a)break;i+=r.decode(n,{stream:!0});let s=i.split(`
4
- `);i=s.pop()||"";for(let c of s){let l=null;if(c.startsWith("data: "))try{let f=c.slice(6);f.trim()&&(l=JSON.parse(f))}catch(f){console.error(`Failed to parse SSE event: ${c}`,f);continue}l&&t(l)}}}finally{u.releaseLock()}}import{z as Ur}from"zod";var dn=Ur.object({instruction:Ur.string().describe('The instruction of the operation to perform. Can only include one operation. Do not inlcude element indexes just describe the element, e.g. "select the text "Hello, world!" in "Hello, world!""')});function Fr(e){e.register({name:"perform_accurate_operation",description:"Perform an operation that requires accurate interaction like dragging or interacting with a specific area of an element. Only use this action when neccecary.",schema:dn,usesElementIndex:!1,async execute(t,u){let{instruction:r}=t,i={page:u.page,agentServices:u.agentServices,domService:u.domService},a=await Zu(r,i,{});if(a.status==="error"||!a.actionEntity)return{success:!1,actionEntity:{action_description:r,action_data:{action_name:"perform_accurate_operation",kwargs:{instruction:r}}},error:a.error||"Failed to generate action"};let{actionEntity:n}=a,s=await Ir(n,i);return{success:s.success,actionEntity:n,message:s.success?`Successfully executed action: ${n.action_data?.action_name}`:void 0,error:s.error}}})}var S;(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"})(S||(S={}));function jr(e){return e.type===S.Tag||e.type===S.Script||e.type===S.Style}var Vr=S.Root,Wr=S.Text,Gr=S.Directive,zr=S.Comment,Kr=S.Script,Jr=S.Style,Yr=S.Tag,Xr=S.CDATA,Zr=S.Doctype;var je=class{constructor(){this.parent=null,this.prev=null,this.next=null,this.startIndex=null,this.endIndex=null}get parentNode(){return this.parent}set parentNode(t){this.parent=t}get previousSibling(){return this.prev}set previousSibling(t){this.prev=t}get nextSibling(){return this.next}set nextSibling(t){this.next=t}cloneNode(t=!1){return ti(this,t)}},me=class extends je{constructor(t){super(),this.data=t}get nodeValue(){return this.data}set nodeValue(t){this.data=t}},te=class extends me{constructor(){super(...arguments),this.type=S.Text}get nodeType(){return 3}},ge=class extends me{constructor(){super(...arguments),this.type=S.Comment}get nodeType(){return 8}},be=class extends me{constructor(t,u){super(u),this.name=t,this.type=S.Directive}get nodeType(){return 1}},xe=class extends je{constructor(t){super(),this.children=t}get firstChild(){var t;return(t=this.children[0])!==null&&t!==void 0?t:null}get lastChild(){return this.children.length>0?this.children[this.children.length-1]:null}get childNodes(){return this.children}set childNodes(t){this.children=t}},we=class extends xe{constructor(){super(...arguments),this.type=S.CDATA}get nodeType(){return 4}},ue=class extends xe{constructor(){super(...arguments),this.type=S.Root}get nodeType(){return 9}},ye=class extends xe{constructor(t,u,r=[],i=t==="script"?S.Script:t==="style"?S.Style:S.Tag){super(r),this.name=t,this.attribs=u,this.type=i}get nodeType(){return 1}get tagName(){return this.name}set tagName(t){this.name=t}get attributes(){return Object.keys(this.attribs).map(t=>{var u,r;return{name:t,value:this.attribs[t],namespace:(u=this["x-attribsNamespace"])===null||u===void 0?void 0:u[t],prefix:(r=this["x-attribsPrefix"])===null||r===void 0?void 0:r[t]}})}};function W(e){return jr(e)}function Qt(e){return e.type===S.CDATA}function Ve(e){return e.type===S.Text}function eu(e){return e.type===S.Comment}function fn(e){return e.type===S.Directive}function ei(e){return e.type===S.Root}function ti(e,t=!1){let u;if(Ve(e))u=new te(e.data);else if(eu(e))u=new ge(e.data);else if(W(e)){let r=t?Zt(e.children):[],i=new ye(e.name,{...e.attribs},r);r.forEach(a=>a.parent=i),e.namespace!=null&&(i.namespace=e.namespace),e["x-attribsNamespace"]&&(i["x-attribsNamespace"]={...e["x-attribsNamespace"]}),e["x-attribsPrefix"]&&(i["x-attribsPrefix"]={...e["x-attribsPrefix"]}),u=i}else if(Qt(e)){let r=t?Zt(e.children):[],i=new we(r);r.forEach(a=>a.parent=i),u=i}else if(ei(e)){let r=t?Zt(e.children):[],i=new ue(r);r.forEach(a=>a.parent=i),e["x-mode"]&&(i["x-mode"]=e["x-mode"]),u=i}else if(fn(e)){let r=new be(e.name,e.data);e["x-name"]!=null&&(r["x-name"]=e["x-name"],r["x-publicId"]=e["x-publicId"],r["x-systemId"]=e["x-systemId"]),u=r}else throw new Error(`Not implemented yet: ${e.type}`);return u.startIndex=e.startIndex,u.endIndex=e.endIndex,e.sourceCodeLocation!=null&&(u.sourceCodeLocation=e.sourceCodeLocation),u}function Zt(e){let t=e.map(u=>ti(u,!0));for(let u=1;u<t.length;u++)t[u].prev=t[u-1],t[u-1].next=t[u];return t}var ui={withStartIndices:!1,withEndIndices:!1,xmlMode:!1},re=class{constructor(t,u,r){this.dom=[],this.root=new ue(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null,typeof u=="function"&&(r=u,u=ui),typeof t=="object"&&(u=t,t=void 0),this.callback=t??null,this.options=u??ui,this.elementCB=r??null}onparserinit(t){this.parser=t}onreset(){this.dom=[],this.root=new ue(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null}onend(){this.done||(this.done=!0,this.parser=null,this.handleCallback(null))}onerror(t){this.handleCallback(t)}onclosetag(){this.lastNode=null;let t=this.tagStack.pop();this.options.withEndIndices&&(t.endIndex=this.parser.endIndex),this.elementCB&&this.elementCB(t)}onopentag(t,u){let r=this.options.xmlMode?S.Tag:void 0,i=new ye(t,u,void 0,r);this.addNode(i),this.tagStack.push(i)}ontext(t){let{lastNode:u}=this;if(u&&u.type===S.Text)u.data+=t,this.options.withEndIndices&&(u.endIndex=this.parser.endIndex);else{let r=new te(t);this.addNode(r),this.lastNode=r}}oncomment(t){if(this.lastNode&&this.lastNode.type===S.Comment){this.lastNode.data+=t;return}let u=new ge(t);this.addNode(u),this.lastNode=u}oncommentend(){this.lastNode=null}oncdatastart(){let t=new te(""),u=new we([t]);this.addNode(u),t.parent=u,this.lastNode=t}oncdataend(){this.lastNode=null}onprocessinginstruction(t,u){let r=new be(t,u);this.addNode(r)}handleCallback(t){if(typeof this.callback=="function")this.callback(t,this.dom);else if(t)throw t}addNode(t){let u=this.tagStack[this.tagStack.length-1],r=u.children[u.children.length-1];this.options.withStartIndices&&(t.startIndex=this.parser.startIndex),this.options.withEndIndices&&(t.endIndex=this.parser.endIndex),u.children.push(t),r&&(t.prev=r,r.next=t),t.parent=u,this.lastNode=null}};var hn=/\n/g;function pn(e){let t=[...e.matchAll(hn)].map(r=>r.index||0);t.unshift(-1);let u=tu(t,0,t.length);return r=>ii(u,r)}function tu(e,t,u){if(u-t==1)return{offset:e[t],index:t+1};let r=Math.ceil((t+u)/2),i=tu(e,t,r),a=tu(e,r,u);return{offset:i.offset,low:i,high:a}}function ii(e,t){return function(u){return Object.prototype.hasOwnProperty.call(u,"index")}(e)?{line:e.index,column:t-e.offset}:ii(e.high.offset<t?e.high:e.low,t)}function uu(e,t="",u={}){let r=typeof t!="string"?t:u,i=typeof t=="string"?t:"",a=e.map(mn),n=!!r.lineNumbers;return function(s,c=0){let l=n?pn(s):()=>({line:0,column:0}),f=c,m=[];e:for(;f<s.length;){let x=!1;for(let g of a){g.regex.lastIndex=f;let b=g.regex.exec(s);if(b&&b[0].length>0){if(!g.discard){let v=l(f),y=typeof g.replace=="string"?b[0].replace(new RegExp(g.regex.source,g.regex.flags),g.replace):b[0];m.push({state:i,name:g.name,text:y,offset:f,len:b[0].length,line:v.line,column:v.column})}if(f=g.regex.lastIndex,x=!0,g.push){let v=g.push(s,f);m.push(...v.tokens),f=v.offset}if(g.pop)break e;break}}if(!x)break}return{tokens:m,offset:f,complete:s.length<=f}}}function mn(e,t){return{...e,regex:gn(e,t)}}function gn(e,t){if(e.name.length===0)throw new Error(`Rule #${t} has empty name, which is not allowed.`);if(function(u){return Object.prototype.hasOwnProperty.call(u,"regex")}(e))return function(u){if(u.global)throw new Error(`Regular expression /${u.source}/${u.flags} contains the global flag, which is not allowed.`);return u.sticky?u:new RegExp(u.source,u.flags+"y")}(e.regex);if(function(u){return Object.prototype.hasOwnProperty.call(u,"str")}(e)){if(e.str.length===0)throw new Error(`Rule #${t} ("${e.name}") has empty "str" property, which is not allowed.`);return new RegExp(ri(e.str),"y")}return new RegExp(ri(e.name),"y")}function ri(e){return e.replace(/[-[\]{}()*+!<=:?./\\^$|#\s,]/g,"\\$&")}function j(e,t){return(u,r)=>{let i=r,a;return r<u.tokens.length?(a=e(u.tokens[r],u,r),a!==void 0&&i++):t?.(u,r),a===void 0?{matched:!1}:{matched:!0,position:i,value:a}}}function ru(e,t){return e.matched?{matched:!0,position:e.position,value:t(e.value,e.position)}:e}function We(e,t){return e.matched?t(e):e}function N(e,t){return(u,r)=>ru(e(u,r),(i,a)=>t(i,u,r,a))}function ve(e,t){return(u,r)=>{let i=e(u,r);return i.matched?i:{matched:!0,position:r,value:t}}}function ie(...e){return(t,u)=>{for(let r of e){let i=r(t,u);if(i.matched)return i}return{matched:!1}}}function Z(e,t){return(u,r)=>{let i=e(u,r);return i.matched?i:t(u,r)}}function bn(e,t){return(u,r)=>{let i=[],a=!0;do{let n=e(u,r);n.matched&&t(n.value,i.length+1,u,r,n.position)?(i.push(n.value),r=n.position):a=!1}while(a);return{matched:!0,position:r,value:i}}}function Ge(e){return bn(e,()=>!0)}function ai(e){return $(e,Ge(e),(t,u)=>[t,...u])}function $(e,t,u){return(r,i)=>We(e(r,i),a=>ru(t(r,a.position),(n,s)=>u(a.value,n,r,i,s)))}function ni(e,t){return $(e,t,u=>u)}function iu(e,t){return $(e,t,(u,r)=>r)}function ze(e,t,u,r){return(i,a)=>We(e(i,a),n=>We(t(i,n.position),s=>ru(u(i,s.position),(c,l)=>r(n.value,s.value,c,i,a,l))))}function au(e,t,u){return ze(e,t,u,(r,i)=>i)}function xn(...e){return(t,u)=>{let r=[],i=u;for(let a of e){let n=a(t,i);if(n.matched)r.push(n.value),i=n.position;else return{matched:!1}}return{matched:!0,position:i,value:r}}}function si(...e){return wn(xn(...e))}function wn(e){return N(e,t=>t.flatMap(u=>u))}function yn(e,t){return(u,r)=>{let i=!0,a=e,n=r;do{let s=t(a,u,n)(u,n);s.matched?(a=s.value,n=s.position):i=!1}while(i);return{matched:!0,position:n,value:a}}}function vn(e,t,u){return yn(e,r=>N(t,(i,a,n,s)=>u(r,i,a,n,s)))}function nu(e,t,u){return kn(e,r=>vn(r,$(t,u,(i,a)=>[i,a]),(i,[a,n])=>a(i,n)))}function kn(e,t){return(u,r)=>We(e(u,r),i=>t(i.value,u,r,i.position)(u,i.position))}var Tn="(?:[ \\t\\r\\n\\f]*)",hi="(?:\\n|\\r\\n|\\r|\\f)",Ye="[^\\x00-\\x7F]",Te="(?:\\\\[0-9a-f]{1,6}(?:\\r\\n|[ \\n\\r\\t\\f])?)",Ee="(?:\\\\[^\\n\\r\\f0-9a-f])",En=`(?:[_a-z]|${Ye}|${Te}|${Ee})`,pi=`(?:[_a-z0-9-]|${Ye}|${Te}|${Ee})`,An=`(?:${pi}+)`,Ln=`(?:[-]?${En}${pi}*)`,_n=`'([^\\n\\r\\f\\\\']|\\\\${hi}|${Ye}|${Te}|${Ee})*'`,In=`"([^\\n\\r\\f\\\\"]|\\\\${hi}|${Ye}|${Te}|${Ee})*"`,Nn=uu([{name:"ws",regex:new RegExp(Tn)},{name:"hash",regex:new RegExp(`#${An}`,"i")},{name:"ident",regex:new RegExp(Ln,"i")},{name:"str1",regex:new RegExp(_n,"i")},{name:"str2",regex:new RegExp(In,"i")},{name:"*"},{name:"."},{name:","},{name:"["},{name:"]"},{name:"="},{name:">"},{name:"|"},{name:"+"},{name:"~"},{name:"^"},{name:"$"}]),Dn=uu([{name:"unicode",regex:new RegExp(Te,"i")},{name:"escape",regex:new RegExp(Ee,"i")},{name:"any",regex:new RegExp("[\\s\\S]","i")}]);function mi([e,t,u],[r,i,a]){return[e+r,t+i,u+a]}function $n(e){return e.reduce(mi,[0,0,0])}var Cn=j(e=>e.name==="unicode"?String.fromCodePoint(parseInt(e.text.slice(1),16)):void 0),Bn=j(e=>e.name==="escape"?e.text.slice(1):void 0),Pn=j(e=>e.name==="any"?e.text:void 0),On=N(Ge(ie(Cn,Bn,Pn)),e=>e.join(""));function cu(e){let t=Dn(e);return On({tokens:t.tokens,options:void 0},0).value}function A(e){return j(t=>t.name===e?!0:void 0)}var lu=j(e=>e.name==="ws"?null:void 0),su=ve(lu,null);function ne(e){return au(su,e,su)}var Se=j(e=>e.name==="ident"?cu(e.text):void 0),Rn=j(e=>e.name==="hash"?cu(e.text.slice(1)):void 0),qn=j(e=>e.name.startsWith("str")?cu(e.text.slice(1,-1)):void 0),gi=ni(ve(Se,""),A("|")),du=Z($(gi,Se,(e,t)=>({name:t,namespace:e})),N(Se,e=>({name:e,namespace:null}))),Mn=Z($(gi,A("*"),e=>({type:"universal",namespace:e,specificity:[0,0,0]})),N(A("*"),()=>({type:"universal",namespace:null,specificity:[0,0,0]}))),Hn=N(du,({name:e,namespace:t})=>({type:"tag",name:e,namespace:t,specificity:[0,0,1]})),Un=$(A("."),Se,(e,t)=>({type:"class",name:t,specificity:[0,1,0]})),Fn=N(Rn,e=>({type:"id",name:e,specificity:[1,0,0]})),oi=j(e=>{if(e.name==="ident"){if(e.text==="i"||e.text==="I")return"i";if(e.text==="s"||e.text==="S")return"s"}}),jn=Z($(qn,ve(iu(su,oi),null),(e,t)=>({value:e,modifier:t})),$(Se,ve(iu(lu,oi),null),(e,t)=>({value:e,modifier:t}))),Vn=ie(N(A("="),()=>"="),$(A("~"),A("="),()=>"~="),$(A("|"),A("="),()=>"|="),$(A("^"),A("="),()=>"^="),$(A("$"),A("="),()=>"$="),$(A("*"),A("="),()=>"*=")),Wn=ze(A("["),ne(du),A("]"),(e,{name:t,namespace:u})=>({type:"attrPresence",name:t,namespace:u,specificity:[0,1,0]})),Gn=au(A("["),ze(ne(du),Vn,ne(jn),({name:e,namespace:t},u,{value:r,modifier:i})=>({type:"attrValue",name:e,namespace:t,matcher:u,value:r,modifier:i,specificity:[0,1,0]})),A("]")),zn=Z(Wn,Gn),Kn=Z(Mn,Hn),ci=ie(Fn,Un,zn),li=N(Z(si(Kn,Ge(ci)),ai(ci)),e=>({type:"compound",list:e,specificity:$n(e.map(t=>t.specificity))})),Jn=ie(N(A(">"),()=>">"),N(A("+"),()=>"+"),N(A("~"),()=>"~"),$(A("|"),A("|"),()=>"||")),Yn=Z(ne(Jn),N(lu,()=>" ")),ou=nu(li,N(Yn,e=>(t,u)=>({type:"compound",list:[...u.list,{type:"combinator",combinator:e,left:t,specificity:t.specificity}],specificity:mi(t.specificity,u.specificity)})),li),K0=nu(N(ou,e=>({type:"list",list:[e]})),N(ne(A(",")),()=>(e,t)=>({type:"list",list:[...e.list,t]})),ou);function Xn(e,t){if(!(typeof t=="string"||t instanceof String))throw new Error("Expected a selector string. Actual input is not a string!");let u=Nn(t);if(!u.complete)throw new Error(`The input "${t}" was only partially tokenized, stopped at offset ${u.offset}!
5
- `+di(t,u.offset));let r=ne(e)({tokens:u.tokens,options:void 0},0);if(!r.matched)throw new Error(`No match for "${t}" input!`);if(r.position<u.tokens.length){let i=u.tokens[r.position];throw new Error(`The input "${t}" was only partially parsed, stopped at offset ${i.offset}!
6
- `+di(t,i.offset,i.len))}return r.value}function di(e,t,u=1){return`${e.replace(/(\t)|(\r)|(\n)/g,(r,i,a)=>i?"\u2409":a?"\u240D":"\u240A")}
7
- ${"".padEnd(t)}${"^".repeat(u)}`}function bi(e){return Xn(ou,e)}function H(e){if(!e.type)throw new Error("This is not an AST node.");switch(e.type){case"universal":return Ke(e.namespace)+"*";case"tag":return Ke(e.namespace)+ae(e.name);case"class":return"."+ae(e.name);case"id":return"#"+ae(e.name);case"attrPresence":return`[${Ke(e.namespace)}${ae(e.name)}]`;case"attrValue":return`[${Ke(e.namespace)}${ae(e.name)}${e.matcher}"${Zn(e.value)}"${e.modifier?e.modifier:""}]`;case"combinator":return H(e.left)+e.combinator;case"compound":return e.list.reduce((t,u)=>u.type==="combinator"?H(u)+t:t+H(u),"");case"list":return e.list.map(H).join(",")}}function Ke(e){return e||e===""?ae(e)+"|":""}function Je(e){return`\\${e.codePointAt(0).toString(16)} `}function ae(e){return e.replace(/(^[0-9])|(^-[0-9])|(^-$)|([-0-9a-zA-Z_]|[^\x00-\x7F])|(\x00)|([\x01-\x1f]|\x7f)|([\s\S])/g,(t,u,r,i,a,n,s,c)=>u?Je(u):r?"-"+Je(r.slice(1)):i?"\\-":a||(n?"\uFFFD":s?Je(s):"\\"+c))}function Zn(e){return e.replace(/(")|(\\)|(\x00)|([\x01-\x1f]|\x7f)/g,(t,u,r,i,a)=>u?'\\"':r?"\\\\":i?"\uFFFD":Je(a))}function ke(e){if(!e.type)throw new Error("This is not an AST node.");switch(e.type){case"compound":{e.list.forEach(ke),e.list.sort((t,u)=>xi(fi(t),fi(u)));break}case"combinator":{ke(e.left);break}case"list":{e.list.forEach(ke),e.list.sort((t,u)=>H(t)<H(u)?-1:1);break}}return e}function fi(e){switch(e.type){case"universal":return[1];case"tag":return[1];case"id":return[2];case"class":return[3,e.name];case"attrPresence":return[4,H(e)];case"attrValue":return[5,H(e)];case"combinator":return[15,H(e)]}}function fu(e,t){return xi(e,t)}function xi(e,t){if(!Array.isArray(e)||!Array.isArray(t))throw new Error("Arguments must be arrays.");let u=e.length<t.length?e.length:t.length;for(let r=0;r<u;r++)if(e[r]!==t[r])return e[r]<t[r]?-1:1;return e.length-t.length}var Ae=class{constructor(t){this.branches=se(es(t))}build(t){return t(this.branches)}};function es(e){let t=e.length,u=new Array(t);for(let r=0;r<t;r++){let[i,a]=e[r],n=ts(bi(i));u[r]={ast:n,terminal:{type:"terminal",valueContainer:{index:r,value:a,specificity:n.specificity}}}}return u}function ts(e){return yi(e),ke(e),e}function yi(e){let t=[];e.list.forEach(u=>{switch(u.type){case"class":t.push({matcher:"~=",modifier:null,name:"class",namespace:null,specificity:u.specificity,type:"attrValue",value:u.name});break;case"id":t.push({matcher:"=",modifier:null,name:"id",namespace:null,specificity:u.specificity,type:"attrValue",value:u.name});break;case"combinator":yi(u.left),t.push(u);break;case"universal":break;default:t.push(u);break}}),e.list=t}function se(e){let t=[];for(;e.length;){let u=Si(e,n=>!0,vi),{matches:r,nonmatches:i,empty:a}=rs(e,u);e=i,r.length&&t.push(is(u,r)),a.length&&t.push(...us(a))}return t}function us(e){let t=[];for(let u of e){let r=u.terminal;if(r.type==="terminal")t.push(r);else{let{matches:i,rest:a}=cs(r.cont,n=>n.type==="terminal");i.forEach(n=>t.push(n)),a.length&&(r.cont=a,t.push(r))}}return t}function rs(e,t){let u=[],r=[],i=[];for(let a of e){let n=a.ast.list;n.length?(n.some(c=>vi(c)===t)?u:r).push(a):i.push(a)}return{matches:u,nonmatches:r,empty:i}}function vi(e){switch(e.type){case"attrPresence":return`attrPresence ${e.name}`;case"attrValue":return`attrValue ${e.name}`;case"combinator":return`combinator ${e.combinator}`;default:return e.type}}function is(e,t){if(e==="tag")return as(t);if(e.startsWith("attrValue "))return ss(e.substring(10),t);if(e.startsWith("attrPresence "))return ns(e.substring(13),t);if(e==="combinator >")return wi(">",t);if(e==="combinator +")return wi("+",t);throw new Error(`Unsupported selector kind: ${e}`)}function as(e){let t=hu(e,r=>r.type==="tag",r=>r.name);return{type:"tagName",variants:Object.entries(t).map(([r,i])=>({type:"variant",value:r,cont:se(i.items)}))}}function ns(e,t){for(let u of t)ki(u,r=>r.type==="attrPresence"&&r.name===e);return{type:"attrPresence",name:e,cont:se(t)}}function ss(e,t){let u=hu(t,i=>i.type==="attrValue"&&i.name===e,i=>`${i.matcher} ${i.modifier||""} ${i.value}`),r=[];for(let i of Object.values(u)){let a=i.oneSimpleSelector,n=os(a),s=se(i.items);r.push({type:"matcher",matcher:a.matcher,modifier:a.modifier,value:a.value,predicate:n,cont:s})}return{type:"attrValue",name:e,matchers:r}}function os(e){if(e.modifier==="i"){let t=e.value.toLowerCase();switch(e.matcher){case"=":return u=>t===u.toLowerCase();case"~=":return u=>u.toLowerCase().split(/[ \t]+/).includes(t);case"^=":return u=>u.toLowerCase().startsWith(t);case"$=":return u=>u.toLowerCase().endsWith(t);case"*=":return u=>u.toLowerCase().includes(t);case"|=":return u=>{let r=u.toLowerCase();return t===r||r.startsWith(t)&&r[t.length]==="-"}}}else{let t=e.value;switch(e.matcher){case"=":return u=>t===u;case"~=":return u=>u.split(/[ \t]+/).includes(t);case"^=":return u=>u.startsWith(t);case"$=":return u=>u.endsWith(t);case"*=":return u=>u.includes(t);case"|=":return u=>t===u||u.startsWith(t)&&u[t.length]==="-"}}}function wi(e,t){let u=hu(t,i=>i.type==="combinator"&&i.combinator===e,i=>H(i.left)),r=[];for(let i of Object.values(u)){let a=se(i.items),n=i.oneSimpleSelector.left;r.push({ast:n,terminal:{type:"popElement",cont:a}})}return{type:"pushElement",combinator:e,cont:se(r)}}function hu(e,t,u){let r={};for(;e.length;){let i=Si(e,t,u),a=f=>t(f)&&u(f)===i,n=f=>f.ast.list.some(a),{matches:s,rest:c}=ls(e,n),l=null;for(let f of s){let m=ki(f,a);l||(l=m)}if(l==null)throw new Error("No simple selector is found.");r[i]={oneSimpleSelector:l,items:s},e=c}return r}function ki(e,t){let u=e.ast.list,r=new Array(u.length),i=-1;for(let n=u.length;n-- >0;)t(u[n])&&(r[n]=!0,i=n);if(i==-1)throw new Error("Couldn't find the required simple selector.");let a=u[i];return e.ast.list=u.filter((n,s)=>!r[s]),a}function Si(e,t,u){let r={};for(let n of e){let s={};for(let c of n.ast.list.filter(t))s[u(c)]=!0;for(let c of Object.keys(s))r[c]?r[c]++:r[c]=1}let i="",a=0;for(let n of Object.entries(r))n[1]>a&&(i=n[0],a=n[1]);return i}function cs(e,t){let u=[],r=[];for(let i of e)t(i)?u.push(i):r.push(i);return{matches:u,rest:r}}function ls(e,t){let u=[],r=[];for(let i of e)t(i)?u.push(i):r.push(i);return{matches:u,rest:r}}var Xe=class{constructor(t){this.f=t}pickAll(t){return this.f(t)}pick1(t,u=!1){let r=this.f(t),i=r.length;if(i===0)return null;if(i===1)return r[0].value;let a=u?ds:fs,n=r[0];for(let s=1;s<i;s++){let c=r[s];a(n,c)&&(n=c)}return n.value}};function ds(e,t){let u=fu(t.specificity,e.specificity);return u>0||u===0&&t.index<e.index}function fs(e,t){let u=fu(t.specificity,e.specificity);return u>0||u===0&&t.index>e.index}function pu(e){return new Xe(oe(e))}function oe(e){let t=e.map(hs);return(u,...r)=>t.flatMap(i=>i(u,...r))}function hs(e){switch(e.type){case"terminal":{let t=[e.valueContainer];return(u,...r)=>t}case"tagName":return ps(e);case"attrValue":return gs(e);case"attrPresence":return ms(e);case"pushElement":return bs(e);case"popElement":return ws(e)}}function ps(e){let t={};for(let u of e.variants)t[u.value]=oe(u.cont);return(u,...r)=>{let i=t[u.name];return i?i(u,...r):[]}}function ms(e){let t=e.name,u=oe(e.cont);return(r,...i)=>Object.prototype.hasOwnProperty.call(r.attribs,t)?u(r,...i):[]}function gs(e){let t=[];for(let r of e.matchers){let i=r.predicate,a=oe(r.cont);t.push((n,s,...c)=>i(n)?a(s,...c):[])}let u=e.name;return(r,...i)=>{let a=r.attribs[u];return a||a===""?t.flatMap(n=>n(a,r,...i)):[]}}function bs(e){let t=oe(e.cont),u=e.combinator==="+"?Ti:xs;return(r,...i)=>{let a=u(r);return a===null?[]:t(a,r,...i)}}var Ti=e=>{let t=e.prev;return t===null?null:W(t)?t:Ti(t)},xs=e=>{let t=e.parent;return t&&W(t)?t:null};function ws(e){let t=oe(e.cont);return(u,r,...i)=>t(r,...i)}var Ze=new Uint16Array('\u1D41<\xD5\u0131\u028A\u049D\u057B\u05D0\u0675\u06DE\u07A2\u07D6\u080F\u0A4A\u0A91\u0DA1\u0E6D\u0F09\u0F26\u10CA\u1228\u12E1\u1415\u149D\u14C3\u14DF\u1525\0\0\0\0\0\0\u156B\u16CD\u198D\u1C12\u1DDD\u1F7E\u2060\u21B0\u228D\u23C0\u23FB\u2442\u2824\u2912\u2D08\u2E48\u2FCE\u3016\u32BA\u3639\u37AC\u38FE\u3A28\u3A71\u3AE0\u3B2E\u0800EMabcfglmnoprstu\\bfms\x7F\x84\x8B\x90\x95\x98\xA6\xB3\xB9\xC8\xCFlig\u803B\xC6\u40C6P\u803B&\u4026cute\u803B\xC1\u40C1reve;\u4102\u0100iyx}rc\u803B\xC2\u40C2;\u4410r;\uC000\u{1D504}rave\u803B\xC0\u40C0pha;\u4391acr;\u4100d;\u6A53\u0100gp\x9D\xA1on;\u4104f;\uC000\u{1D538}plyFunction;\u6061ing\u803B\xC5\u40C5\u0100cs\xBE\xC3r;\uC000\u{1D49C}ign;\u6254ilde\u803B\xC3\u40C3ml\u803B\xC4\u40C4\u0400aceforsu\xE5\xFB\xFE\u0117\u011C\u0122\u0127\u012A\u0100cr\xEA\xF2kslash;\u6216\u0176\xF6\xF8;\u6AE7ed;\u6306y;\u4411\u0180crt\u0105\u010B\u0114ause;\u6235noullis;\u612Ca;\u4392r;\uC000\u{1D505}pf;\uC000\u{1D539}eve;\u42D8c\xF2\u0113mpeq;\u624E\u0700HOacdefhilorsu\u014D\u0151\u0156\u0180\u019E\u01A2\u01B5\u01B7\u01BA\u01DC\u0215\u0273\u0278\u027Ecy;\u4427PY\u803B\xA9\u40A9\u0180cpy\u015D\u0162\u017Aute;\u4106\u0100;i\u0167\u0168\u62D2talDifferentialD;\u6145leys;\u612D\u0200aeio\u0189\u018E\u0194\u0198ron;\u410Cdil\u803B\xC7\u40C7rc;\u4108nint;\u6230ot;\u410A\u0100dn\u01A7\u01ADilla;\u40B8terDot;\u40B7\xF2\u017Fi;\u43A7rcle\u0200DMPT\u01C7\u01CB\u01D1\u01D6ot;\u6299inus;\u6296lus;\u6295imes;\u6297o\u0100cs\u01E2\u01F8kwiseContourIntegral;\u6232eCurly\u0100DQ\u0203\u020FoubleQuote;\u601Duote;\u6019\u0200lnpu\u021E\u0228\u0247\u0255on\u0100;e\u0225\u0226\u6237;\u6A74\u0180git\u022F\u0236\u023Aruent;\u6261nt;\u622FourIntegral;\u622E\u0100fr\u024C\u024E;\u6102oduct;\u6210nterClockwiseContourIntegral;\u6233oss;\u6A2Fcr;\uC000\u{1D49E}p\u0100;C\u0284\u0285\u62D3ap;\u624D\u0580DJSZacefios\u02A0\u02AC\u02B0\u02B4\u02B8\u02CB\u02D7\u02E1\u02E6\u0333\u048D\u0100;o\u0179\u02A5trahd;\u6911cy;\u4402cy;\u4405cy;\u440F\u0180grs\u02BF\u02C4\u02C7ger;\u6021r;\u61A1hv;\u6AE4\u0100ay\u02D0\u02D5ron;\u410E;\u4414l\u0100;t\u02DD\u02DE\u6207a;\u4394r;\uC000\u{1D507}\u0100af\u02EB\u0327\u0100cm\u02F0\u0322ritical\u0200ADGT\u0300\u0306\u0316\u031Ccute;\u40B4o\u0174\u030B\u030D;\u42D9bleAcute;\u42DDrave;\u4060ilde;\u42DCond;\u62C4ferentialD;\u6146\u0470\u033D\0\0\0\u0342\u0354\0\u0405f;\uC000\u{1D53B}\u0180;DE\u0348\u0349\u034D\u40A8ot;\u60DCqual;\u6250ble\u0300CDLRUV\u0363\u0372\u0382\u03CF\u03E2\u03F8ontourIntegra\xEC\u0239o\u0274\u0379\0\0\u037B\xBB\u0349nArrow;\u61D3\u0100eo\u0387\u03A4ft\u0180ART\u0390\u0396\u03A1rrow;\u61D0ightArrow;\u61D4e\xE5\u02CAng\u0100LR\u03AB\u03C4eft\u0100AR\u03B3\u03B9rrow;\u67F8ightArrow;\u67FAightArrow;\u67F9ight\u0100AT\u03D8\u03DErrow;\u61D2ee;\u62A8p\u0241\u03E9\0\0\u03EFrrow;\u61D1ownArrow;\u61D5erticalBar;\u6225n\u0300ABLRTa\u0412\u042A\u0430\u045E\u047F\u037Crrow\u0180;BU\u041D\u041E\u0422\u6193ar;\u6913pArrow;\u61F5reve;\u4311eft\u02D2\u043A\0\u0446\0\u0450ightVector;\u6950eeVector;\u695Eector\u0100;B\u0459\u045A\u61BDar;\u6956ight\u01D4\u0467\0\u0471eeVector;\u695Fector\u0100;B\u047A\u047B\u61C1ar;\u6957ee\u0100;A\u0486\u0487\u62A4rrow;\u61A7\u0100ct\u0492\u0497r;\uC000\u{1D49F}rok;\u4110\u0800NTacdfglmopqstux\u04BD\u04C0\u04C4\u04CB\u04DE\u04E2\u04E7\u04EE\u04F5\u0521\u052F\u0536\u0552\u055D\u0560\u0565G;\u414AH\u803B\xD0\u40D0cute\u803B\xC9\u40C9\u0180aiy\u04D2\u04D7\u04DCron;\u411Arc\u803B\xCA\u40CA;\u442Dot;\u4116r;\uC000\u{1D508}rave\u803B\xC8\u40C8ement;\u6208\u0100ap\u04FA\u04FEcr;\u4112ty\u0253\u0506\0\0\u0512mallSquare;\u65FBerySmallSquare;\u65AB\u0100gp\u0526\u052Aon;\u4118f;\uC000\u{1D53C}silon;\u4395u\u0100ai\u053C\u0549l\u0100;T\u0542\u0543\u6A75ilde;\u6242librium;\u61CC\u0100ci\u0557\u055Ar;\u6130m;\u6A73a;\u4397ml\u803B\xCB\u40CB\u0100ip\u056A\u056Fsts;\u6203onentialE;\u6147\u0280cfios\u0585\u0588\u058D\u05B2\u05CCy;\u4424r;\uC000\u{1D509}lled\u0253\u0597\0\0\u05A3mallSquare;\u65FCerySmallSquare;\u65AA\u0370\u05BA\0\u05BF\0\0\u05C4f;\uC000\u{1D53D}All;\u6200riertrf;\u6131c\xF2\u05CB\u0600JTabcdfgorst\u05E8\u05EC\u05EF\u05FA\u0600\u0612\u0616\u061B\u061D\u0623\u066C\u0672cy;\u4403\u803B>\u403Emma\u0100;d\u05F7\u05F8\u4393;\u43DCreve;\u411E\u0180eiy\u0607\u060C\u0610dil;\u4122rc;\u411C;\u4413ot;\u4120r;\uC000\u{1D50A};\u62D9pf;\uC000\u{1D53E}eater\u0300EFGLST\u0635\u0644\u064E\u0656\u065B\u0666qual\u0100;L\u063E\u063F\u6265ess;\u62DBullEqual;\u6267reater;\u6AA2ess;\u6277lantEqual;\u6A7Eilde;\u6273cr;\uC000\u{1D4A2};\u626B\u0400Aacfiosu\u0685\u068B\u0696\u069B\u069E\u06AA\u06BE\u06CARDcy;\u442A\u0100ct\u0690\u0694ek;\u42C7;\u405Eirc;\u4124r;\u610ClbertSpace;\u610B\u01F0\u06AF\0\u06B2f;\u610DizontalLine;\u6500\u0100ct\u06C3\u06C5\xF2\u06A9rok;\u4126mp\u0144\u06D0\u06D8ownHum\xF0\u012Fqual;\u624F\u0700EJOacdfgmnostu\u06FA\u06FE\u0703\u0707\u070E\u071A\u071E\u0721\u0728\u0744\u0778\u078B\u078F\u0795cy;\u4415lig;\u4132cy;\u4401cute\u803B\xCD\u40CD\u0100iy\u0713\u0718rc\u803B\xCE\u40CE;\u4418ot;\u4130r;\u6111rave\u803B\xCC\u40CC\u0180;ap\u0720\u072F\u073F\u0100cg\u0734\u0737r;\u412AinaryI;\u6148lie\xF3\u03DD\u01F4\u0749\0\u0762\u0100;e\u074D\u074E\u622C\u0100gr\u0753\u0758ral;\u622Bsection;\u62C2isible\u0100CT\u076C\u0772omma;\u6063imes;\u6062\u0180gpt\u077F\u0783\u0788on;\u412Ef;\uC000\u{1D540}a;\u4399cr;\u6110ilde;\u4128\u01EB\u079A\0\u079Ecy;\u4406l\u803B\xCF\u40CF\u0280cfosu\u07AC\u07B7\u07BC\u07C2\u07D0\u0100iy\u07B1\u07B5rc;\u4134;\u4419r;\uC000\u{1D50D}pf;\uC000\u{1D541}\u01E3\u07C7\0\u07CCr;\uC000\u{1D4A5}rcy;\u4408kcy;\u4404\u0380HJacfos\u07E4\u07E8\u07EC\u07F1\u07FD\u0802\u0808cy;\u4425cy;\u440Cppa;\u439A\u0100ey\u07F6\u07FBdil;\u4136;\u441Ar;\uC000\u{1D50E}pf;\uC000\u{1D542}cr;\uC000\u{1D4A6}\u0580JTaceflmost\u0825\u0829\u082C\u0850\u0863\u09B3\u09B8\u09C7\u09CD\u0A37\u0A47cy;\u4409\u803B<\u403C\u0280cmnpr\u0837\u083C\u0841\u0844\u084Dute;\u4139bda;\u439Bg;\u67EAlacetrf;\u6112r;\u619E\u0180aey\u0857\u085C\u0861ron;\u413Ddil;\u413B;\u441B\u0100fs\u0868\u0970t\u0500ACDFRTUVar\u087E\u08A9\u08B1\u08E0\u08E6\u08FC\u092F\u095B\u0390\u096A\u0100nr\u0883\u088FgleBracket;\u67E8row\u0180;BR\u0899\u089A\u089E\u6190ar;\u61E4ightArrow;\u61C6eiling;\u6308o\u01F5\u08B7\0\u08C3bleBracket;\u67E6n\u01D4\u08C8\0\u08D2eeVector;\u6961ector\u0100;B\u08DB\u08DC\u61C3ar;\u6959loor;\u630Aight\u0100AV\u08EF\u08F5rrow;\u6194ector;\u694E\u0100er\u0901\u0917e\u0180;AV\u0909\u090A\u0910\u62A3rrow;\u61A4ector;\u695Aiangle\u0180;BE\u0924\u0925\u0929\u62B2ar;\u69CFqual;\u62B4p\u0180DTV\u0937\u0942\u094CownVector;\u6951eeVector;\u6960ector\u0100;B\u0956\u0957\u61BFar;\u6958ector\u0100;B\u0965\u0966\u61BCar;\u6952ight\xE1\u039Cs\u0300EFGLST\u097E\u098B\u0995\u099D\u09A2\u09ADqualGreater;\u62DAullEqual;\u6266reater;\u6276ess;\u6AA1lantEqual;\u6A7Dilde;\u6272r;\uC000\u{1D50F}\u0100;e\u09BD\u09BE\u62D8ftarrow;\u61DAidot;\u413F\u0180npw\u09D4\u0A16\u0A1Bg\u0200LRlr\u09DE\u09F7\u0A02\u0A10eft\u0100AR\u09E6\u09ECrrow;\u67F5ightArrow;\u67F7ightArrow;\u67F6eft\u0100ar\u03B3\u0A0Aight\xE1\u03BFight\xE1\u03CAf;\uC000\u{1D543}er\u0100LR\u0A22\u0A2CeftArrow;\u6199ightArrow;\u6198\u0180cht\u0A3E\u0A40\u0A42\xF2\u084C;\u61B0rok;\u4141;\u626A\u0400acefiosu\u0A5A\u0A5D\u0A60\u0A77\u0A7C\u0A85\u0A8B\u0A8Ep;\u6905y;\u441C\u0100dl\u0A65\u0A6FiumSpace;\u605Flintrf;\u6133r;\uC000\u{1D510}nusPlus;\u6213pf;\uC000\u{1D544}c\xF2\u0A76;\u439C\u0480Jacefostu\u0AA3\u0AA7\u0AAD\u0AC0\u0B14\u0B19\u0D91\u0D97\u0D9Ecy;\u440Acute;\u4143\u0180aey\u0AB4\u0AB9\u0ABEron;\u4147dil;\u4145;\u441D\u0180gsw\u0AC7\u0AF0\u0B0Eative\u0180MTV\u0AD3\u0ADF\u0AE8ediumSpace;\u600Bhi\u0100cn\u0AE6\u0AD8\xEB\u0AD9eryThi\xEE\u0AD9ted\u0100GL\u0AF8\u0B06reaterGreate\xF2\u0673essLes\xF3\u0A48Line;\u400Ar;\uC000\u{1D511}\u0200Bnpt\u0B22\u0B28\u0B37\u0B3Areak;\u6060BreakingSpace;\u40A0f;\u6115\u0680;CDEGHLNPRSTV\u0B55\u0B56\u0B6A\u0B7C\u0BA1\u0BEB\u0C04\u0C5E\u0C84\u0CA6\u0CD8\u0D61\u0D85\u6AEC\u0100ou\u0B5B\u0B64ngruent;\u6262pCap;\u626DoubleVerticalBar;\u6226\u0180lqx\u0B83\u0B8A\u0B9Bement;\u6209ual\u0100;T\u0B92\u0B93\u6260ilde;\uC000\u2242\u0338ists;\u6204reater\u0380;EFGLST\u0BB6\u0BB7\u0BBD\u0BC9\u0BD3\u0BD8\u0BE5\u626Fqual;\u6271ullEqual;\uC000\u2267\u0338reater;\uC000\u226B\u0338ess;\u6279lantEqual;\uC000\u2A7E\u0338ilde;\u6275ump\u0144\u0BF2\u0BFDownHump;\uC000\u224E\u0338qual;\uC000\u224F\u0338e\u0100fs\u0C0A\u0C27tTriangle\u0180;BE\u0C1A\u0C1B\u0C21\u62EAar;\uC000\u29CF\u0338qual;\u62ECs\u0300;EGLST\u0C35\u0C36\u0C3C\u0C44\u0C4B\u0C58\u626Equal;\u6270reater;\u6278ess;\uC000\u226A\u0338lantEqual;\uC000\u2A7D\u0338ilde;\u6274ested\u0100GL\u0C68\u0C79reaterGreater;\uC000\u2AA2\u0338essLess;\uC000\u2AA1\u0338recedes\u0180;ES\u0C92\u0C93\u0C9B\u6280qual;\uC000\u2AAF\u0338lantEqual;\u62E0\u0100ei\u0CAB\u0CB9verseElement;\u620CghtTriangle\u0180;BE\u0CCB\u0CCC\u0CD2\u62EBar;\uC000\u29D0\u0338qual;\u62ED\u0100qu\u0CDD\u0D0CuareSu\u0100bp\u0CE8\u0CF9set\u0100;E\u0CF0\u0CF3\uC000\u228F\u0338qual;\u62E2erset\u0100;E\u0D03\u0D06\uC000\u2290\u0338qual;\u62E3\u0180bcp\u0D13\u0D24\u0D4Eset\u0100;E\u0D1B\u0D1E\uC000\u2282\u20D2qual;\u6288ceeds\u0200;EST\u0D32\u0D33\u0D3B\u0D46\u6281qual;\uC000\u2AB0\u0338lantEqual;\u62E1ilde;\uC000\u227F\u0338erset\u0100;E\u0D58\u0D5B\uC000\u2283\u20D2qual;\u6289ilde\u0200;EFT\u0D6E\u0D6F\u0D75\u0D7F\u6241qual;\u6244ullEqual;\u6247ilde;\u6249erticalBar;\u6224cr;\uC000\u{1D4A9}ilde\u803B\xD1\u40D1;\u439D\u0700Eacdfgmoprstuv\u0DBD\u0DC2\u0DC9\u0DD5\u0DDB\u0DE0\u0DE7\u0DFC\u0E02\u0E20\u0E22\u0E32\u0E3F\u0E44lig;\u4152cute\u803B\xD3\u40D3\u0100iy\u0DCE\u0DD3rc\u803B\xD4\u40D4;\u441Eblac;\u4150r;\uC000\u{1D512}rave\u803B\xD2\u40D2\u0180aei\u0DEE\u0DF2\u0DF6cr;\u414Cga;\u43A9cron;\u439Fpf;\uC000\u{1D546}enCurly\u0100DQ\u0E0E\u0E1AoubleQuote;\u601Cuote;\u6018;\u6A54\u0100cl\u0E27\u0E2Cr;\uC000\u{1D4AA}ash\u803B\xD8\u40D8i\u016C\u0E37\u0E3Cde\u803B\xD5\u40D5es;\u6A37ml\u803B\xD6\u40D6er\u0100BP\u0E4B\u0E60\u0100ar\u0E50\u0E53r;\u603Eac\u0100ek\u0E5A\u0E5C;\u63DEet;\u63B4arenthesis;\u63DC\u0480acfhilors\u0E7F\u0E87\u0E8A\u0E8F\u0E92\u0E94\u0E9D\u0EB0\u0EFCrtialD;\u6202y;\u441Fr;\uC000\u{1D513}i;\u43A6;\u43A0usMinus;\u40B1\u0100ip\u0EA2\u0EADncareplan\xE5\u069Df;\u6119\u0200;eio\u0EB9\u0EBA\u0EE0\u0EE4\u6ABBcedes\u0200;EST\u0EC8\u0EC9\u0ECF\u0EDA\u627Aqual;\u6AAFlantEqual;\u627Cilde;\u627Eme;\u6033\u0100dp\u0EE9\u0EEEuct;\u620Fortion\u0100;a\u0225\u0EF9l;\u621D\u0100ci\u0F01\u0F06r;\uC000\u{1D4AB};\u43A8\u0200Ufos\u0F11\u0F16\u0F1B\u0F1FOT\u803B"\u4022r;\uC000\u{1D514}pf;\u611Acr;\uC000\u{1D4AC}\u0600BEacefhiorsu\u0F3E\u0F43\u0F47\u0F60\u0F73\u0FA7\u0FAA\u0FAD\u1096\u10A9\u10B4\u10BEarr;\u6910G\u803B\xAE\u40AE\u0180cnr\u0F4E\u0F53\u0F56ute;\u4154g;\u67EBr\u0100;t\u0F5C\u0F5D\u61A0l;\u6916\u0180aey\u0F67\u0F6C\u0F71ron;\u4158dil;\u4156;\u4420\u0100;v\u0F78\u0F79\u611Cerse\u0100EU\u0F82\u0F99\u0100lq\u0F87\u0F8Eement;\u620Builibrium;\u61CBpEquilibrium;\u696Fr\xBB\u0F79o;\u43A1ght\u0400ACDFTUVa\u0FC1\u0FEB\u0FF3\u1022\u1028\u105B\u1087\u03D8\u0100nr\u0FC6\u0FD2gleBracket;\u67E9row\u0180;BL\u0FDC\u0FDD\u0FE1\u6192ar;\u61E5eftArrow;\u61C4eiling;\u6309o\u01F5\u0FF9\0\u1005bleBracket;\u67E7n\u01D4\u100A\0\u1014eeVector;\u695Dector\u0100;B\u101D\u101E\u61C2ar;\u6955loor;\u630B\u0100er\u102D\u1043e\u0180;AV\u1035\u1036\u103C\u62A2rrow;\u61A6ector;\u695Biangle\u0180;BE\u1050\u1051\u1055\u62B3ar;\u69D0qual;\u62B5p\u0180DTV\u1063\u106E\u1078ownVector;\u694FeeVector;\u695Cector\u0100;B\u1082\u1083\u61BEar;\u6954ector\u0100;B\u1091\u1092\u61C0ar;\u6953\u0100pu\u109B\u109Ef;\u611DndImplies;\u6970ightarrow;\u61DB\u0100ch\u10B9\u10BCr;\u611B;\u61B1leDelayed;\u69F4\u0680HOacfhimoqstu\u10E4\u10F1\u10F7\u10FD\u1119\u111E\u1151\u1156\u1161\u1167\u11B5\u11BB\u11BF\u0100Cc\u10E9\u10EEHcy;\u4429y;\u4428FTcy;\u442Ccute;\u415A\u0280;aeiy\u1108\u1109\u110E\u1113\u1117\u6ABCron;\u4160dil;\u415Erc;\u415C;\u4421r;\uC000\u{1D516}ort\u0200DLRU\u112A\u1134\u113E\u1149ownArrow\xBB\u041EeftArrow\xBB\u089AightArrow\xBB\u0FDDpArrow;\u6191gma;\u43A3allCircle;\u6218pf;\uC000\u{1D54A}\u0272\u116D\0\0\u1170t;\u621Aare\u0200;ISU\u117B\u117C\u1189\u11AF\u65A1ntersection;\u6293u\u0100bp\u118F\u119Eset\u0100;E\u1197\u1198\u628Fqual;\u6291erset\u0100;E\u11A8\u11A9\u6290qual;\u6292nion;\u6294cr;\uC000\u{1D4AE}ar;\u62C6\u0200bcmp\u11C8\u11DB\u1209\u120B\u0100;s\u11CD\u11CE\u62D0et\u0100;E\u11CD\u11D5qual;\u6286\u0100ch\u11E0\u1205eeds\u0200;EST\u11ED\u11EE\u11F4\u11FF\u627Bqual;\u6AB0lantEqual;\u627Dilde;\u627FTh\xE1\u0F8C;\u6211\u0180;es\u1212\u1213\u1223\u62D1rset\u0100;E\u121C\u121D\u6283qual;\u6287et\xBB\u1213\u0580HRSacfhiors\u123E\u1244\u1249\u1255\u125E\u1271\u1276\u129F\u12C2\u12C8\u12D1ORN\u803B\xDE\u40DEADE;\u6122\u0100Hc\u124E\u1252cy;\u440By;\u4426\u0100bu\u125A\u125C;\u4009;\u43A4\u0180aey\u1265\u126A\u126Fron;\u4164dil;\u4162;\u4422r;\uC000\u{1D517}\u0100ei\u127B\u1289\u01F2\u1280\0\u1287efore;\u6234a;\u4398\u0100cn\u128E\u1298kSpace;\uC000\u205F\u200ASpace;\u6009lde\u0200;EFT\u12AB\u12AC\u12B2\u12BC\u623Cqual;\u6243ullEqual;\u6245ilde;\u6248pf;\uC000\u{1D54B}ipleDot;\u60DB\u0100ct\u12D6\u12DBr;\uC000\u{1D4AF}rok;\u4166\u0AE1\u12F7\u130E\u131A\u1326\0\u132C\u1331\0\0\0\0\0\u1338\u133D\u1377\u1385\0\u13FF\u1404\u140A\u1410\u0100cr\u12FB\u1301ute\u803B\xDA\u40DAr\u0100;o\u1307\u1308\u619Fcir;\u6949r\u01E3\u1313\0\u1316y;\u440Eve;\u416C\u0100iy\u131E\u1323rc\u803B\xDB\u40DB;\u4423blac;\u4170r;\uC000\u{1D518}rave\u803B\xD9\u40D9acr;\u416A\u0100di\u1341\u1369er\u0100BP\u1348\u135D\u0100ar\u134D\u1350r;\u405Fac\u0100ek\u1357\u1359;\u63DFet;\u63B5arenthesis;\u63DDon\u0100;P\u1370\u1371\u62C3lus;\u628E\u0100gp\u137B\u137Fon;\u4172f;\uC000\u{1D54C}\u0400ADETadps\u1395\u13AE\u13B8\u13C4\u03E8\u13D2\u13D7\u13F3rrow\u0180;BD\u1150\u13A0\u13A4ar;\u6912ownArrow;\u61C5ownArrow;\u6195quilibrium;\u696Eee\u0100;A\u13CB\u13CC\u62A5rrow;\u61A5own\xE1\u03F3er\u0100LR\u13DE\u13E8eftArrow;\u6196ightArrow;\u6197i\u0100;l\u13F9\u13FA\u43D2on;\u43A5ing;\u416Ecr;\uC000\u{1D4B0}ilde;\u4168ml\u803B\xDC\u40DC\u0480Dbcdefosv\u1427\u142C\u1430\u1433\u143E\u1485\u148A\u1490\u1496ash;\u62ABar;\u6AEBy;\u4412ash\u0100;l\u143B\u143C\u62A9;\u6AE6\u0100er\u1443\u1445;\u62C1\u0180bty\u144C\u1450\u147Aar;\u6016\u0100;i\u144F\u1455cal\u0200BLST\u1461\u1465\u146A\u1474ar;\u6223ine;\u407Ceparator;\u6758ilde;\u6240ThinSpace;\u600Ar;\uC000\u{1D519}pf;\uC000\u{1D54D}cr;\uC000\u{1D4B1}dash;\u62AA\u0280cefos\u14A7\u14AC\u14B1\u14B6\u14BCirc;\u4174dge;\u62C0r;\uC000\u{1D51A}pf;\uC000\u{1D54E}cr;\uC000\u{1D4B2}\u0200fios\u14CB\u14D0\u14D2\u14D8r;\uC000\u{1D51B};\u439Epf;\uC000\u{1D54F}cr;\uC000\u{1D4B3}\u0480AIUacfosu\u14F1\u14F5\u14F9\u14FD\u1504\u150F\u1514\u151A\u1520cy;\u442Fcy;\u4407cy;\u442Ecute\u803B\xDD\u40DD\u0100iy\u1509\u150Drc;\u4176;\u442Br;\uC000\u{1D51C}pf;\uC000\u{1D550}cr;\uC000\u{1D4B4}ml;\u4178\u0400Hacdefos\u1535\u1539\u153F\u154B\u154F\u155D\u1560\u1564cy;\u4416cute;\u4179\u0100ay\u1544\u1549ron;\u417D;\u4417ot;\u417B\u01F2\u1554\0\u155BoWidt\xE8\u0AD9a;\u4396r;\u6128pf;\u6124cr;\uC000\u{1D4B5}\u0BE1\u1583\u158A\u1590\0\u15B0\u15B6\u15BF\0\0\0\0\u15C6\u15DB\u15EB\u165F\u166D\0\u1695\u169B\u16B2\u16B9\0\u16BEcute\u803B\xE1\u40E1reve;\u4103\u0300;Ediuy\u159C\u159D\u15A1\u15A3\u15A8\u15AD\u623E;\uC000\u223E\u0333;\u623Frc\u803B\xE2\u40E2te\u80BB\xB4\u0306;\u4430lig\u803B\xE6\u40E6\u0100;r\xB2\u15BA;\uC000\u{1D51E}rave\u803B\xE0\u40E0\u0100ep\u15CA\u15D6\u0100fp\u15CF\u15D4sym;\u6135\xE8\u15D3ha;\u43B1\u0100ap\u15DFc\u0100cl\u15E4\u15E7r;\u4101g;\u6A3F\u0264\u15F0\0\0\u160A\u0280;adsv\u15FA\u15FB\u15FF\u1601\u1607\u6227nd;\u6A55;\u6A5Clope;\u6A58;\u6A5A\u0380;elmrsz\u1618\u1619\u161B\u161E\u163F\u164F\u1659\u6220;\u69A4e\xBB\u1619sd\u0100;a\u1625\u1626\u6221\u0461\u1630\u1632\u1634\u1636\u1638\u163A\u163C\u163E;\u69A8;\u69A9;\u69AA;\u69AB;\u69AC;\u69AD;\u69AE;\u69AFt\u0100;v\u1645\u1646\u621Fb\u0100;d\u164C\u164D\u62BE;\u699D\u0100pt\u1654\u1657h;\u6222\xBB\xB9arr;\u637C\u0100gp\u1663\u1667on;\u4105f;\uC000\u{1D552}\u0380;Eaeiop\u12C1\u167B\u167D\u1682\u1684\u1687\u168A;\u6A70cir;\u6A6F;\u624Ad;\u624Bs;\u4027rox\u0100;e\u12C1\u1692\xF1\u1683ing\u803B\xE5\u40E5\u0180cty\u16A1\u16A6\u16A8r;\uC000\u{1D4B6};\u402Amp\u0100;e\u12C1\u16AF\xF1\u0288ilde\u803B\xE3\u40E3ml\u803B\xE4\u40E4\u0100ci\u16C2\u16C8onin\xF4\u0272nt;\u6A11\u0800Nabcdefiklnoprsu\u16ED\u16F1\u1730\u173C\u1743\u1748\u1778\u177D\u17E0\u17E6\u1839\u1850\u170D\u193D\u1948\u1970ot;\u6AED\u0100cr\u16F6\u171Ek\u0200ceps\u1700\u1705\u170D\u1713ong;\u624Cpsilon;\u43F6rime;\u6035im\u0100;e\u171A\u171B\u623Dq;\u62CD\u0176\u1722\u1726ee;\u62BDed\u0100;g\u172C\u172D\u6305e\xBB\u172Drk\u0100;t\u135C\u1737brk;\u63B6\u0100oy\u1701\u1741;\u4431quo;\u601E\u0280cmprt\u1753\u175B\u1761\u1764\u1768aus\u0100;e\u010A\u0109ptyv;\u69B0s\xE9\u170Cno\xF5\u0113\u0180ahw\u176F\u1771\u1773;\u43B2;\u6136een;\u626Cr;\uC000\u{1D51F}g\u0380costuvw\u178D\u179D\u17B3\u17C1\u17D5\u17DB\u17DE\u0180aiu\u1794\u1796\u179A\xF0\u0760rc;\u65EFp\xBB\u1371\u0180dpt\u17A4\u17A8\u17ADot;\u6A00lus;\u6A01imes;\u6A02\u0271\u17B9\0\0\u17BEcup;\u6A06ar;\u6605riangle\u0100du\u17CD\u17D2own;\u65BDp;\u65B3plus;\u6A04e\xE5\u1444\xE5\u14ADarow;\u690D\u0180ako\u17ED\u1826\u1835\u0100cn\u17F2\u1823k\u0180lst\u17FA\u05AB\u1802ozenge;\u69EBriangle\u0200;dlr\u1812\u1813\u1818\u181D\u65B4own;\u65BEeft;\u65C2ight;\u65B8k;\u6423\u01B1\u182B\0\u1833\u01B2\u182F\0\u1831;\u6592;\u65914;\u6593ck;\u6588\u0100eo\u183E\u184D\u0100;q\u1843\u1846\uC000=\u20E5uiv;\uC000\u2261\u20E5t;\u6310\u0200ptwx\u1859\u185E\u1867\u186Cf;\uC000\u{1D553}\u0100;t\u13CB\u1863om\xBB\u13CCtie;\u62C8\u0600DHUVbdhmptuv\u1885\u1896\u18AA\u18BB\u18D7\u18DB\u18EC\u18FF\u1905\u190A\u1910\u1921\u0200LRlr\u188E\u1890\u1892\u1894;\u6557;\u6554;\u6556;\u6553\u0280;DUdu\u18A1\u18A2\u18A4\u18A6\u18A8\u6550;\u6566;\u6569;\u6564;\u6567\u0200LRlr\u18B3\u18B5\u18B7\u18B9;\u655D;\u655A;\u655C;\u6559\u0380;HLRhlr\u18CA\u18CB\u18CD\u18CF\u18D1\u18D3\u18D5\u6551;\u656C;\u6563;\u6560;\u656B;\u6562;\u655Fox;\u69C9\u0200LRlr\u18E4\u18E6\u18E8\u18EA;\u6555;\u6552;\u6510;\u650C\u0280;DUdu\u06BD\u18F7\u18F9\u18FB\u18FD;\u6565;\u6568;\u652C;\u6534inus;\u629Flus;\u629Eimes;\u62A0\u0200LRlr\u1919\u191B\u191D\u191F;\u655B;\u6558;\u6518;\u6514\u0380;HLRhlr\u1930\u1931\u1933\u1935\u1937\u1939\u193B\u6502;\u656A;\u6561;\u655E;\u653C;\u6524;\u651C\u0100ev\u0123\u1942bar\u803B\xA6\u40A6\u0200ceio\u1951\u1956\u195A\u1960r;\uC000\u{1D4B7}mi;\u604Fm\u0100;e\u171A\u171Cl\u0180;bh\u1968\u1969\u196B\u405C;\u69C5sub;\u67C8\u016C\u1974\u197El\u0100;e\u1979\u197A\u6022t\xBB\u197Ap\u0180;Ee\u012F\u1985\u1987;\u6AAE\u0100;q\u06DC\u06DB\u0CE1\u19A7\0\u19E8\u1A11\u1A15\u1A32\0\u1A37\u1A50\0\0\u1AB4\0\0\u1AC1\0\0\u1B21\u1B2E\u1B4D\u1B52\0\u1BFD\0\u1C0C\u0180cpr\u19AD\u19B2\u19DDute;\u4107\u0300;abcds\u19BF\u19C0\u19C4\u19CA\u19D5\u19D9\u6229nd;\u6A44rcup;\u6A49\u0100au\u19CF\u19D2p;\u6A4Bp;\u6A47ot;\u6A40;\uC000\u2229\uFE00\u0100eo\u19E2\u19E5t;\u6041\xEE\u0693\u0200aeiu\u19F0\u19FB\u1A01\u1A05\u01F0\u19F5\0\u19F8s;\u6A4Don;\u410Ddil\u803B\xE7\u40E7rc;\u4109ps\u0100;s\u1A0C\u1A0D\u6A4Cm;\u6A50ot;\u410B\u0180dmn\u1A1B\u1A20\u1A26il\u80BB\xB8\u01ADptyv;\u69B2t\u8100\xA2;e\u1A2D\u1A2E\u40A2r\xE4\u01B2r;\uC000\u{1D520}\u0180cei\u1A3D\u1A40\u1A4Dy;\u4447ck\u0100;m\u1A47\u1A48\u6713ark\xBB\u1A48;\u43C7r\u0380;Ecefms\u1A5F\u1A60\u1A62\u1A6B\u1AA4\u1AAA\u1AAE\u65CB;\u69C3\u0180;el\u1A69\u1A6A\u1A6D\u42C6q;\u6257e\u0261\u1A74\0\0\u1A88rrow\u0100lr\u1A7C\u1A81eft;\u61BAight;\u61BB\u0280RSacd\u1A92\u1A94\u1A96\u1A9A\u1A9F\xBB\u0F47;\u64C8st;\u629Birc;\u629Aash;\u629Dnint;\u6A10id;\u6AEFcir;\u69C2ubs\u0100;u\u1ABB\u1ABC\u6663it\xBB\u1ABC\u02EC\u1AC7\u1AD4\u1AFA\0\u1B0Aon\u0100;e\u1ACD\u1ACE\u403A\u0100;q\xC7\xC6\u026D\u1AD9\0\0\u1AE2a\u0100;t\u1ADE\u1ADF\u402C;\u4040\u0180;fl\u1AE8\u1AE9\u1AEB\u6201\xEE\u1160e\u0100mx\u1AF1\u1AF6ent\xBB\u1AE9e\xF3\u024D\u01E7\u1AFE\0\u1B07\u0100;d\u12BB\u1B02ot;\u6A6Dn\xF4\u0246\u0180fry\u1B10\u1B14\u1B17;\uC000\u{1D554}o\xE4\u0254\u8100\xA9;s\u0155\u1B1Dr;\u6117\u0100ao\u1B25\u1B29rr;\u61B5ss;\u6717\u0100cu\u1B32\u1B37r;\uC000\u{1D4B8}\u0100bp\u1B3C\u1B44\u0100;e\u1B41\u1B42\u6ACF;\u6AD1\u0100;e\u1B49\u1B4A\u6AD0;\u6AD2dot;\u62EF\u0380delprvw\u1B60\u1B6C\u1B77\u1B82\u1BAC\u1BD4\u1BF9arr\u0100lr\u1B68\u1B6A;\u6938;\u6935\u0270\u1B72\0\0\u1B75r;\u62DEc;\u62DFarr\u0100;p\u1B7F\u1B80\u61B6;\u693D\u0300;bcdos\u1B8F\u1B90\u1B96\u1BA1\u1BA5\u1BA8\u622Arcap;\u6A48\u0100au\u1B9B\u1B9Ep;\u6A46p;\u6A4Aot;\u628Dr;\u6A45;\uC000\u222A\uFE00\u0200alrv\u1BB5\u1BBF\u1BDE\u1BE3rr\u0100;m\u1BBC\u1BBD\u61B7;\u693Cy\u0180evw\u1BC7\u1BD4\u1BD8q\u0270\u1BCE\0\0\u1BD2re\xE3\u1B73u\xE3\u1B75ee;\u62CEedge;\u62CFen\u803B\xA4\u40A4earrow\u0100lr\u1BEE\u1BF3eft\xBB\u1B80ight\xBB\u1BBDe\xE4\u1BDD\u0100ci\u1C01\u1C07onin\xF4\u01F7nt;\u6231lcty;\u632D\u0980AHabcdefhijlorstuwz\u1C38\u1C3B\u1C3F\u1C5D\u1C69\u1C75\u1C8A\u1C9E\u1CAC\u1CB7\u1CFB\u1CFF\u1D0D\u1D7B\u1D91\u1DAB\u1DBB\u1DC6\u1DCDr\xF2\u0381ar;\u6965\u0200glrs\u1C48\u1C4D\u1C52\u1C54ger;\u6020eth;\u6138\xF2\u1133h\u0100;v\u1C5A\u1C5B\u6010\xBB\u090A\u016B\u1C61\u1C67arow;\u690Fa\xE3\u0315\u0100ay\u1C6E\u1C73ron;\u410F;\u4434\u0180;ao\u0332\u1C7C\u1C84\u0100gr\u02BF\u1C81r;\u61CAtseq;\u6A77\u0180glm\u1C91\u1C94\u1C98\u803B\xB0\u40B0ta;\u43B4ptyv;\u69B1\u0100ir\u1CA3\u1CA8sht;\u697F;\uC000\u{1D521}ar\u0100lr\u1CB3\u1CB5\xBB\u08DC\xBB\u101E\u0280aegsv\u1CC2\u0378\u1CD6\u1CDC\u1CE0m\u0180;os\u0326\u1CCA\u1CD4nd\u0100;s\u0326\u1CD1uit;\u6666amma;\u43DDin;\u62F2\u0180;io\u1CE7\u1CE8\u1CF8\u40F7de\u8100\xF7;o\u1CE7\u1CF0ntimes;\u62C7n\xF8\u1CF7cy;\u4452c\u026F\u1D06\0\0\u1D0Arn;\u631Eop;\u630D\u0280lptuw\u1D18\u1D1D\u1D22\u1D49\u1D55lar;\u4024f;\uC000\u{1D555}\u0280;emps\u030B\u1D2D\u1D37\u1D3D\u1D42q\u0100;d\u0352\u1D33ot;\u6251inus;\u6238lus;\u6214quare;\u62A1blebarwedg\xE5\xFAn\u0180adh\u112E\u1D5D\u1D67ownarrow\xF3\u1C83arpoon\u0100lr\u1D72\u1D76ef\xF4\u1CB4igh\xF4\u1CB6\u0162\u1D7F\u1D85karo\xF7\u0F42\u026F\u1D8A\0\0\u1D8Ern;\u631Fop;\u630C\u0180cot\u1D98\u1DA3\u1DA6\u0100ry\u1D9D\u1DA1;\uC000\u{1D4B9};\u4455l;\u69F6rok;\u4111\u0100dr\u1DB0\u1DB4ot;\u62F1i\u0100;f\u1DBA\u1816\u65BF\u0100ah\u1DC0\u1DC3r\xF2\u0429a\xF2\u0FA6angle;\u69A6\u0100ci\u1DD2\u1DD5y;\u445Fgrarr;\u67FF\u0900Dacdefglmnopqrstux\u1E01\u1E09\u1E19\u1E38\u0578\u1E3C\u1E49\u1E61\u1E7E\u1EA5\u1EAF\u1EBD\u1EE1\u1F2A\u1F37\u1F44\u1F4E\u1F5A\u0100Do\u1E06\u1D34o\xF4\u1C89\u0100cs\u1E0E\u1E14ute\u803B\xE9\u40E9ter;\u6A6E\u0200aioy\u1E22\u1E27\u1E31\u1E36ron;\u411Br\u0100;c\u1E2D\u1E2E\u6256\u803B\xEA\u40EAlon;\u6255;\u444Dot;\u4117\u0100Dr\u1E41\u1E45ot;\u6252;\uC000\u{1D522}\u0180;rs\u1E50\u1E51\u1E57\u6A9Aave\u803B\xE8\u40E8\u0100;d\u1E5C\u1E5D\u6A96ot;\u6A98\u0200;ils\u1E6A\u1E6B\u1E72\u1E74\u6A99nters;\u63E7;\u6113\u0100;d\u1E79\u1E7A\u6A95ot;\u6A97\u0180aps\u1E85\u1E89\u1E97cr;\u4113ty\u0180;sv\u1E92\u1E93\u1E95\u6205et\xBB\u1E93p\u01001;\u1E9D\u1EA4\u0133\u1EA1\u1EA3;\u6004;\u6005\u6003\u0100gs\u1EAA\u1EAC;\u414Bp;\u6002\u0100gp\u1EB4\u1EB8on;\u4119f;\uC000\u{1D556}\u0180als\u1EC4\u1ECE\u1ED2r\u0100;s\u1ECA\u1ECB\u62D5l;\u69E3us;\u6A71i\u0180;lv\u1EDA\u1EDB\u1EDF\u43B5on\xBB\u1EDB;\u43F5\u0200csuv\u1EEA\u1EF3\u1F0B\u1F23\u0100io\u1EEF\u1E31rc\xBB\u1E2E\u0269\u1EF9\0\0\u1EFB\xED\u0548ant\u0100gl\u1F02\u1F06tr\xBB\u1E5Dess\xBB\u1E7A\u0180aei\u1F12\u1F16\u1F1Als;\u403Dst;\u625Fv\u0100;D\u0235\u1F20D;\u6A78parsl;\u69E5\u0100Da\u1F2F\u1F33ot;\u6253rr;\u6971\u0180cdi\u1F3E\u1F41\u1EF8r;\u612Fo\xF4\u0352\u0100ah\u1F49\u1F4B;\u43B7\u803B\xF0\u40F0\u0100mr\u1F53\u1F57l\u803B\xEB\u40EBo;\u60AC\u0180cip\u1F61\u1F64\u1F67l;\u4021s\xF4\u056E\u0100eo\u1F6C\u1F74ctatio\xEE\u0559nential\xE5\u0579\u09E1\u1F92\0\u1F9E\0\u1FA1\u1FA7\0\0\u1FC6\u1FCC\0\u1FD3\0\u1FE6\u1FEA\u2000\0\u2008\u205Allingdotse\xF1\u1E44y;\u4444male;\u6640\u0180ilr\u1FAD\u1FB3\u1FC1lig;\u8000\uFB03\u0269\u1FB9\0\0\u1FBDg;\u8000\uFB00ig;\u8000\uFB04;\uC000\u{1D523}lig;\u8000\uFB01lig;\uC000fj\u0180alt\u1FD9\u1FDC\u1FE1t;\u666Dig;\u8000\uFB02ns;\u65B1of;\u4192\u01F0\u1FEE\0\u1FF3f;\uC000\u{1D557}\u0100ak\u05BF\u1FF7\u0100;v\u1FFC\u1FFD\u62D4;\u6AD9artint;\u6A0D\u0100ao\u200C\u2055\u0100cs\u2011\u2052\u03B1\u201A\u2030\u2038\u2045\u2048\0\u2050\u03B2\u2022\u2025\u2027\u202A\u202C\0\u202E\u803B\xBD\u40BD;\u6153\u803B\xBC\u40BC;\u6155;\u6159;\u615B\u01B3\u2034\0\u2036;\u6154;\u6156\u02B4\u203E\u2041\0\0\u2043\u803B\xBE\u40BE;\u6157;\u615C5;\u6158\u01B6\u204C\0\u204E;\u615A;\u615D8;\u615El;\u6044wn;\u6322cr;\uC000\u{1D4BB}\u0880Eabcdefgijlnorstv\u2082\u2089\u209F\u20A5\u20B0\u20B4\u20F0\u20F5\u20FA\u20FF\u2103\u2112\u2138\u0317\u213E\u2152\u219E\u0100;l\u064D\u2087;\u6A8C\u0180cmp\u2090\u2095\u209Dute;\u41F5ma\u0100;d\u209C\u1CDA\u43B3;\u6A86reve;\u411F\u0100iy\u20AA\u20AErc;\u411D;\u4433ot;\u4121\u0200;lqs\u063E\u0642\u20BD\u20C9\u0180;qs\u063E\u064C\u20C4lan\xF4\u0665\u0200;cdl\u0665\u20D2\u20D5\u20E5c;\u6AA9ot\u0100;o\u20DC\u20DD\u6A80\u0100;l\u20E2\u20E3\u6A82;\u6A84\u0100;e\u20EA\u20ED\uC000\u22DB\uFE00s;\u6A94r;\uC000\u{1D524}\u0100;g\u0673\u061Bmel;\u6137cy;\u4453\u0200;Eaj\u065A\u210C\u210E\u2110;\u6A92;\u6AA5;\u6AA4\u0200Eaes\u211B\u211D\u2129\u2134;\u6269p\u0100;p\u2123\u2124\u6A8Arox\xBB\u2124\u0100;q\u212E\u212F\u6A88\u0100;q\u212E\u211Bim;\u62E7pf;\uC000\u{1D558}\u0100ci\u2143\u2146r;\u610Am\u0180;el\u066B\u214E\u2150;\u6A8E;\u6A90\u8300>;cdlqr\u05EE\u2160\u216A\u216E\u2173\u2179\u0100ci\u2165\u2167;\u6AA7r;\u6A7Aot;\u62D7Par;\u6995uest;\u6A7C\u0280adels\u2184\u216A\u2190\u0656\u219B\u01F0\u2189\0\u218Epro\xF8\u209Er;\u6978q\u0100lq\u063F\u2196les\xF3\u2088i\xED\u066B\u0100en\u21A3\u21ADrtneqq;\uC000\u2269\uFE00\xC5\u21AA\u0500Aabcefkosy\u21C4\u21C7\u21F1\u21F5\u21FA\u2218\u221D\u222F\u2268\u227Dr\xF2\u03A0\u0200ilmr\u21D0\u21D4\u21D7\u21DBrs\xF0\u1484f\xBB\u2024il\xF4\u06A9\u0100dr\u21E0\u21E4cy;\u444A\u0180;cw\u08F4\u21EB\u21EFir;\u6948;\u61ADar;\u610Firc;\u4125\u0180alr\u2201\u220E\u2213rts\u0100;u\u2209\u220A\u6665it\xBB\u220Alip;\u6026con;\u62B9r;\uC000\u{1D525}s\u0100ew\u2223\u2229arow;\u6925arow;\u6926\u0280amopr\u223A\u223E\u2243\u225E\u2263rr;\u61FFtht;\u623Bk\u0100lr\u2249\u2253eftarrow;\u61A9ightarrow;\u61AAf;\uC000\u{1D559}bar;\u6015\u0180clt\u226F\u2274\u2278r;\uC000\u{1D4BD}as\xE8\u21F4rok;\u4127\u0100bp\u2282\u2287ull;\u6043hen\xBB\u1C5B\u0AE1\u22A3\0\u22AA\0\u22B8\u22C5\u22CE\0\u22D5\u22F3\0\0\u22F8\u2322\u2367\u2362\u237F\0\u2386\u23AA\u23B4cute\u803B\xED\u40ED\u0180;iy\u0771\u22B0\u22B5rc\u803B\xEE\u40EE;\u4438\u0100cx\u22BC\u22BFy;\u4435cl\u803B\xA1\u40A1\u0100fr\u039F\u22C9;\uC000\u{1D526}rave\u803B\xEC\u40EC\u0200;ino\u073E\u22DD\u22E9\u22EE\u0100in\u22E2\u22E6nt;\u6A0Ct;\u622Dfin;\u69DCta;\u6129lig;\u4133\u0180aop\u22FE\u231A\u231D\u0180cgt\u2305\u2308\u2317r;\u412B\u0180elp\u071F\u230F\u2313in\xE5\u078Ear\xF4\u0720h;\u4131f;\u62B7ed;\u41B5\u0280;cfot\u04F4\u232C\u2331\u233D\u2341are;\u6105in\u0100;t\u2338\u2339\u621Eie;\u69DDdo\xF4\u2319\u0280;celp\u0757\u234C\u2350\u235B\u2361al;\u62BA\u0100gr\u2355\u2359er\xF3\u1563\xE3\u234Darhk;\u6A17rod;\u6A3C\u0200cgpt\u236F\u2372\u2376\u237By;\u4451on;\u412Ff;\uC000\u{1D55A}a;\u43B9uest\u803B\xBF\u40BF\u0100ci\u238A\u238Fr;\uC000\u{1D4BE}n\u0280;Edsv\u04F4\u239B\u239D\u23A1\u04F3;\u62F9ot;\u62F5\u0100;v\u23A6\u23A7\u62F4;\u62F3\u0100;i\u0777\u23AElde;\u4129\u01EB\u23B8\0\u23BCcy;\u4456l\u803B\xEF\u40EF\u0300cfmosu\u23CC\u23D7\u23DC\u23E1\u23E7\u23F5\u0100iy\u23D1\u23D5rc;\u4135;\u4439r;\uC000\u{1D527}ath;\u4237pf;\uC000\u{1D55B}\u01E3\u23EC\0\u23F1r;\uC000\u{1D4BF}rcy;\u4458kcy;\u4454\u0400acfghjos\u240B\u2416\u2422\u2427\u242D\u2431\u2435\u243Bppa\u0100;v\u2413\u2414\u43BA;\u43F0\u0100ey\u241B\u2420dil;\u4137;\u443Ar;\uC000\u{1D528}reen;\u4138cy;\u4445cy;\u445Cpf;\uC000\u{1D55C}cr;\uC000\u{1D4C0}\u0B80ABEHabcdefghjlmnoprstuv\u2470\u2481\u2486\u248D\u2491\u250E\u253D\u255A\u2580\u264E\u265E\u2665\u2679\u267D\u269A\u26B2\u26D8\u275D\u2768\u278B\u27C0\u2801\u2812\u0180art\u2477\u247A\u247Cr\xF2\u09C6\xF2\u0395ail;\u691Barr;\u690E\u0100;g\u0994\u248B;\u6A8Bar;\u6962\u0963\u24A5\0\u24AA\0\u24B1\0\0\0\0\0\u24B5\u24BA\0\u24C6\u24C8\u24CD\0\u24F9ute;\u413Amptyv;\u69B4ra\xEE\u084Cbda;\u43BBg\u0180;dl\u088E\u24C1\u24C3;\u6991\xE5\u088E;\u6A85uo\u803B\xAB\u40ABr\u0400;bfhlpst\u0899\u24DE\u24E6\u24E9\u24EB\u24EE\u24F1\u24F5\u0100;f\u089D\u24E3s;\u691Fs;\u691D\xEB\u2252p;\u61ABl;\u6939im;\u6973l;\u61A2\u0180;ae\u24FF\u2500\u2504\u6AABil;\u6919\u0100;s\u2509\u250A\u6AAD;\uC000\u2AAD\uFE00\u0180abr\u2515\u2519\u251Drr;\u690Crk;\u6772\u0100ak\u2522\u252Cc\u0100ek\u2528\u252A;\u407B;\u405B\u0100es\u2531\u2533;\u698Bl\u0100du\u2539\u253B;\u698F;\u698D\u0200aeuy\u2546\u254B\u2556\u2558ron;\u413E\u0100di\u2550\u2554il;\u413C\xEC\u08B0\xE2\u2529;\u443B\u0200cqrs\u2563\u2566\u256D\u257Da;\u6936uo\u0100;r\u0E19\u1746\u0100du\u2572\u2577har;\u6967shar;\u694Bh;\u61B2\u0280;fgqs\u258B\u258C\u0989\u25F3\u25FF\u6264t\u0280ahlrt\u2598\u25A4\u25B7\u25C2\u25E8rrow\u0100;t\u0899\u25A1a\xE9\u24F6arpoon\u0100du\u25AF\u25B4own\xBB\u045Ap\xBB\u0966eftarrows;\u61C7ight\u0180ahs\u25CD\u25D6\u25DErrow\u0100;s\u08F4\u08A7arpoon\xF3\u0F98quigarro\xF7\u21F0hreetimes;\u62CB\u0180;qs\u258B\u0993\u25FAlan\xF4\u09AC\u0280;cdgs\u09AC\u260A\u260D\u261D\u2628c;\u6AA8ot\u0100;o\u2614\u2615\u6A7F\u0100;r\u261A\u261B\u6A81;\u6A83\u0100;e\u2622\u2625\uC000\u22DA\uFE00s;\u6A93\u0280adegs\u2633\u2639\u263D\u2649\u264Bppro\xF8\u24C6ot;\u62D6q\u0100gq\u2643\u2645\xF4\u0989gt\xF2\u248C\xF4\u099Bi\xED\u09B2\u0180ilr\u2655\u08E1\u265Asht;\u697C;\uC000\u{1D529}\u0100;E\u099C\u2663;\u6A91\u0161\u2669\u2676r\u0100du\u25B2\u266E\u0100;l\u0965\u2673;\u696Alk;\u6584cy;\u4459\u0280;acht\u0A48\u2688\u268B\u2691\u2696r\xF2\u25C1orne\xF2\u1D08ard;\u696Bri;\u65FA\u0100io\u269F\u26A4dot;\u4140ust\u0100;a\u26AC\u26AD\u63B0che\xBB\u26AD\u0200Eaes\u26BB\u26BD\u26C9\u26D4;\u6268p\u0100;p\u26C3\u26C4\u6A89rox\xBB\u26C4\u0100;q\u26CE\u26CF\u6A87\u0100;q\u26CE\u26BBim;\u62E6\u0400abnoptwz\u26E9\u26F4\u26F7\u271A\u272F\u2741\u2747\u2750\u0100nr\u26EE\u26F1g;\u67ECr;\u61FDr\xEB\u08C1g\u0180lmr\u26FF\u270D\u2714eft\u0100ar\u09E6\u2707ight\xE1\u09F2apsto;\u67FCight\xE1\u09FDparrow\u0100lr\u2725\u2729ef\xF4\u24EDight;\u61AC\u0180afl\u2736\u2739\u273Dr;\u6985;\uC000\u{1D55D}us;\u6A2Dimes;\u6A34\u0161\u274B\u274Fst;\u6217\xE1\u134E\u0180;ef\u2757\u2758\u1800\u65CAnge\xBB\u2758ar\u0100;l\u2764\u2765\u4028t;\u6993\u0280achmt\u2773\u2776\u277C\u2785\u2787r\xF2\u08A8orne\xF2\u1D8Car\u0100;d\u0F98\u2783;\u696D;\u600Eri;\u62BF\u0300achiqt\u2798\u279D\u0A40\u27A2\u27AE\u27BBquo;\u6039r;\uC000\u{1D4C1}m\u0180;eg\u09B2\u27AA\u27AC;\u6A8D;\u6A8F\u0100bu\u252A\u27B3o\u0100;r\u0E1F\u27B9;\u601Arok;\u4142\u8400<;cdhilqr\u082B\u27D2\u2639\u27DC\u27E0\u27E5\u27EA\u27F0\u0100ci\u27D7\u27D9;\u6AA6r;\u6A79re\xE5\u25F2mes;\u62C9arr;\u6976uest;\u6A7B\u0100Pi\u27F5\u27F9ar;\u6996\u0180;ef\u2800\u092D\u181B\u65C3r\u0100du\u2807\u280Dshar;\u694Ahar;\u6966\u0100en\u2817\u2821rtneqq;\uC000\u2268\uFE00\xC5\u281E\u0700Dacdefhilnopsu\u2840\u2845\u2882\u288E\u2893\u28A0\u28A5\u28A8\u28DA\u28E2\u28E4\u0A83\u28F3\u2902Dot;\u623A\u0200clpr\u284E\u2852\u2863\u287Dr\u803B\xAF\u40AF\u0100et\u2857\u2859;\u6642\u0100;e\u285E\u285F\u6720se\xBB\u285F\u0100;s\u103B\u2868to\u0200;dlu\u103B\u2873\u2877\u287Bow\xEE\u048Cef\xF4\u090F\xF0\u13D1ker;\u65AE\u0100oy\u2887\u288Cmma;\u6A29;\u443Cash;\u6014asuredangle\xBB\u1626r;\uC000\u{1D52A}o;\u6127\u0180cdn\u28AF\u28B4\u28C9ro\u803B\xB5\u40B5\u0200;acd\u1464\u28BD\u28C0\u28C4s\xF4\u16A7ir;\u6AF0ot\u80BB\xB7\u01B5us\u0180;bd\u28D2\u1903\u28D3\u6212\u0100;u\u1D3C\u28D8;\u6A2A\u0163\u28DE\u28E1p;\u6ADB\xF2\u2212\xF0\u0A81\u0100dp\u28E9\u28EEels;\u62A7f;\uC000\u{1D55E}\u0100ct\u28F8\u28FDr;\uC000\u{1D4C2}pos\xBB\u159D\u0180;lm\u2909\u290A\u290D\u43BCtimap;\u62B8\u0C00GLRVabcdefghijlmoprstuvw\u2942\u2953\u297E\u2989\u2998\u29DA\u29E9\u2A15\u2A1A\u2A58\u2A5D\u2A83\u2A95\u2AA4\u2AA8\u2B04\u2B07\u2B44\u2B7F\u2BAE\u2C34\u2C67\u2C7C\u2CE9\u0100gt\u2947\u294B;\uC000\u22D9\u0338\u0100;v\u2950\u0BCF\uC000\u226B\u20D2\u0180elt\u295A\u2972\u2976ft\u0100ar\u2961\u2967rrow;\u61CDightarrow;\u61CE;\uC000\u22D8\u0338\u0100;v\u297B\u0C47\uC000\u226A\u20D2ightarrow;\u61CF\u0100Dd\u298E\u2993ash;\u62AFash;\u62AE\u0280bcnpt\u29A3\u29A7\u29AC\u29B1\u29CCla\xBB\u02DEute;\u4144g;\uC000\u2220\u20D2\u0280;Eiop\u0D84\u29BC\u29C0\u29C5\u29C8;\uC000\u2A70\u0338d;\uC000\u224B\u0338s;\u4149ro\xF8\u0D84ur\u0100;a\u29D3\u29D4\u666El\u0100;s\u29D3\u0B38\u01F3\u29DF\0\u29E3p\u80BB\xA0\u0B37mp\u0100;e\u0BF9\u0C00\u0280aeouy\u29F4\u29FE\u2A03\u2A10\u2A13\u01F0\u29F9\0\u29FB;\u6A43on;\u4148dil;\u4146ng\u0100;d\u0D7E\u2A0Aot;\uC000\u2A6D\u0338p;\u6A42;\u443Dash;\u6013\u0380;Aadqsx\u0B92\u2A29\u2A2D\u2A3B\u2A41\u2A45\u2A50rr;\u61D7r\u0100hr\u2A33\u2A36k;\u6924\u0100;o\u13F2\u13F0ot;\uC000\u2250\u0338ui\xF6\u0B63\u0100ei\u2A4A\u2A4Ear;\u6928\xED\u0B98ist\u0100;s\u0BA0\u0B9Fr;\uC000\u{1D52B}\u0200Eest\u0BC5\u2A66\u2A79\u2A7C\u0180;qs\u0BBC\u2A6D\u0BE1\u0180;qs\u0BBC\u0BC5\u2A74lan\xF4\u0BE2i\xED\u0BEA\u0100;r\u0BB6\u2A81\xBB\u0BB7\u0180Aap\u2A8A\u2A8D\u2A91r\xF2\u2971rr;\u61AEar;\u6AF2\u0180;sv\u0F8D\u2A9C\u0F8C\u0100;d\u2AA1\u2AA2\u62FC;\u62FAcy;\u445A\u0380AEadest\u2AB7\u2ABA\u2ABE\u2AC2\u2AC5\u2AF6\u2AF9r\xF2\u2966;\uC000\u2266\u0338rr;\u619Ar;\u6025\u0200;fqs\u0C3B\u2ACE\u2AE3\u2AEFt\u0100ar\u2AD4\u2AD9rro\xF7\u2AC1ightarro\xF7\u2A90\u0180;qs\u0C3B\u2ABA\u2AEAlan\xF4\u0C55\u0100;s\u0C55\u2AF4\xBB\u0C36i\xED\u0C5D\u0100;r\u0C35\u2AFEi\u0100;e\u0C1A\u0C25i\xE4\u0D90\u0100pt\u2B0C\u2B11f;\uC000\u{1D55F}\u8180\xAC;in\u2B19\u2B1A\u2B36\u40ACn\u0200;Edv\u0B89\u2B24\u2B28\u2B2E;\uC000\u22F9\u0338ot;\uC000\u22F5\u0338\u01E1\u0B89\u2B33\u2B35;\u62F7;\u62F6i\u0100;v\u0CB8\u2B3C\u01E1\u0CB8\u2B41\u2B43;\u62FE;\u62FD\u0180aor\u2B4B\u2B63\u2B69r\u0200;ast\u0B7B\u2B55\u2B5A\u2B5Flle\xEC\u0B7Bl;\uC000\u2AFD\u20E5;\uC000\u2202\u0338lint;\u6A14\u0180;ce\u0C92\u2B70\u2B73u\xE5\u0CA5\u0100;c\u0C98\u2B78\u0100;e\u0C92\u2B7D\xF1\u0C98\u0200Aait\u2B88\u2B8B\u2B9D\u2BA7r\xF2\u2988rr\u0180;cw\u2B94\u2B95\u2B99\u619B;\uC000\u2933\u0338;\uC000\u219D\u0338ghtarrow\xBB\u2B95ri\u0100;e\u0CCB\u0CD6\u0380chimpqu\u2BBD\u2BCD\u2BD9\u2B04\u0B78\u2BE4\u2BEF\u0200;cer\u0D32\u2BC6\u0D37\u2BC9u\xE5\u0D45;\uC000\u{1D4C3}ort\u026D\u2B05\0\0\u2BD6ar\xE1\u2B56m\u0100;e\u0D6E\u2BDF\u0100;q\u0D74\u0D73su\u0100bp\u2BEB\u2BED\xE5\u0CF8\xE5\u0D0B\u0180bcp\u2BF6\u2C11\u2C19\u0200;Ees\u2BFF\u2C00\u0D22\u2C04\u6284;\uC000\u2AC5\u0338et\u0100;e\u0D1B\u2C0Bq\u0100;q\u0D23\u2C00c\u0100;e\u0D32\u2C17\xF1\u0D38\u0200;Ees\u2C22\u2C23\u0D5F\u2C27\u6285;\uC000\u2AC6\u0338et\u0100;e\u0D58\u2C2Eq\u0100;q\u0D60\u2C23\u0200gilr\u2C3D\u2C3F\u2C45\u2C47\xEC\u0BD7lde\u803B\xF1\u40F1\xE7\u0C43iangle\u0100lr\u2C52\u2C5Ceft\u0100;e\u0C1A\u2C5A\xF1\u0C26ight\u0100;e\u0CCB\u2C65\xF1\u0CD7\u0100;m\u2C6C\u2C6D\u43BD\u0180;es\u2C74\u2C75\u2C79\u4023ro;\u6116p;\u6007\u0480DHadgilrs\u2C8F\u2C94\u2C99\u2C9E\u2CA3\u2CB0\u2CB6\u2CD3\u2CE3ash;\u62ADarr;\u6904p;\uC000\u224D\u20D2ash;\u62AC\u0100et\u2CA8\u2CAC;\uC000\u2265\u20D2;\uC000>\u20D2nfin;\u69DE\u0180Aet\u2CBD\u2CC1\u2CC5rr;\u6902;\uC000\u2264\u20D2\u0100;r\u2CCA\u2CCD\uC000<\u20D2ie;\uC000\u22B4\u20D2\u0100At\u2CD8\u2CDCrr;\u6903rie;\uC000\u22B5\u20D2im;\uC000\u223C\u20D2\u0180Aan\u2CF0\u2CF4\u2D02rr;\u61D6r\u0100hr\u2CFA\u2CFDk;\u6923\u0100;o\u13E7\u13E5ear;\u6927\u1253\u1A95\0\0\0\0\0\0\0\0\0\0\0\0\0\u2D2D\0\u2D38\u2D48\u2D60\u2D65\u2D72\u2D84\u1B07\0\0\u2D8D\u2DAB\0\u2DC8\u2DCE\0\u2DDC\u2E19\u2E2B\u2E3E\u2E43\u0100cs\u2D31\u1A97ute\u803B\xF3\u40F3\u0100iy\u2D3C\u2D45r\u0100;c\u1A9E\u2D42\u803B\xF4\u40F4;\u443E\u0280abios\u1AA0\u2D52\u2D57\u01C8\u2D5Alac;\u4151v;\u6A38old;\u69BClig;\u4153\u0100cr\u2D69\u2D6Dir;\u69BF;\uC000\u{1D52C}\u036F\u2D79\0\0\u2D7C\0\u2D82n;\u42DBave\u803B\xF2\u40F2;\u69C1\u0100bm\u2D88\u0DF4ar;\u69B5\u0200acit\u2D95\u2D98\u2DA5\u2DA8r\xF2\u1A80\u0100ir\u2D9D\u2DA0r;\u69BEoss;\u69BBn\xE5\u0E52;\u69C0\u0180aei\u2DB1\u2DB5\u2DB9cr;\u414Dga;\u43C9\u0180cdn\u2DC0\u2DC5\u01CDron;\u43BF;\u69B6pf;\uC000\u{1D560}\u0180ael\u2DD4\u2DD7\u01D2r;\u69B7rp;\u69B9\u0380;adiosv\u2DEA\u2DEB\u2DEE\u2E08\u2E0D\u2E10\u2E16\u6228r\xF2\u1A86\u0200;efm\u2DF7\u2DF8\u2E02\u2E05\u6A5Dr\u0100;o\u2DFE\u2DFF\u6134f\xBB\u2DFF\u803B\xAA\u40AA\u803B\xBA\u40BAgof;\u62B6r;\u6A56lope;\u6A57;\u6A5B\u0180clo\u2E1F\u2E21\u2E27\xF2\u2E01ash\u803B\xF8\u40F8l;\u6298i\u016C\u2E2F\u2E34de\u803B\xF5\u40F5es\u0100;a\u01DB\u2E3As;\u6A36ml\u803B\xF6\u40F6bar;\u633D\u0AE1\u2E5E\0\u2E7D\0\u2E80\u2E9D\0\u2EA2\u2EB9\0\0\u2ECB\u0E9C\0\u2F13\0\0\u2F2B\u2FBC\0\u2FC8r\u0200;ast\u0403\u2E67\u2E72\u0E85\u8100\xB6;l\u2E6D\u2E6E\u40B6le\xEC\u0403\u0269\u2E78\0\0\u2E7Bm;\u6AF3;\u6AFDy;\u443Fr\u0280cimpt\u2E8B\u2E8F\u2E93\u1865\u2E97nt;\u4025od;\u402Eil;\u6030enk;\u6031r;\uC000\u{1D52D}\u0180imo\u2EA8\u2EB0\u2EB4\u0100;v\u2EAD\u2EAE\u43C6;\u43D5ma\xF4\u0A76ne;\u660E\u0180;tv\u2EBF\u2EC0\u2EC8\u43C0chfork\xBB\u1FFD;\u43D6\u0100au\u2ECF\u2EDFn\u0100ck\u2ED5\u2EDDk\u0100;h\u21F4\u2EDB;\u610E\xF6\u21F4s\u0480;abcdemst\u2EF3\u2EF4\u1908\u2EF9\u2EFD\u2F04\u2F06\u2F0A\u2F0E\u402Bcir;\u6A23ir;\u6A22\u0100ou\u1D40\u2F02;\u6A25;\u6A72n\u80BB\xB1\u0E9Dim;\u6A26wo;\u6A27\u0180ipu\u2F19\u2F20\u2F25ntint;\u6A15f;\uC000\u{1D561}nd\u803B\xA3\u40A3\u0500;Eaceinosu\u0EC8\u2F3F\u2F41\u2F44\u2F47\u2F81\u2F89\u2F92\u2F7E\u2FB6;\u6AB3p;\u6AB7u\xE5\u0ED9\u0100;c\u0ECE\u2F4C\u0300;acens\u0EC8\u2F59\u2F5F\u2F66\u2F68\u2F7Eppro\xF8\u2F43urlye\xF1\u0ED9\xF1\u0ECE\u0180aes\u2F6F\u2F76\u2F7Approx;\u6AB9qq;\u6AB5im;\u62E8i\xED\u0EDFme\u0100;s\u2F88\u0EAE\u6032\u0180Eas\u2F78\u2F90\u2F7A\xF0\u2F75\u0180dfp\u0EEC\u2F99\u2FAF\u0180als\u2FA0\u2FA5\u2FAAlar;\u632Eine;\u6312urf;\u6313\u0100;t\u0EFB\u2FB4\xEF\u0EFBrel;\u62B0\u0100ci\u2FC0\u2FC5r;\uC000\u{1D4C5};\u43C8ncsp;\u6008\u0300fiopsu\u2FDA\u22E2\u2FDF\u2FE5\u2FEB\u2FF1r;\uC000\u{1D52E}pf;\uC000\u{1D562}rime;\u6057cr;\uC000\u{1D4C6}\u0180aeo\u2FF8\u3009\u3013t\u0100ei\u2FFE\u3005rnion\xF3\u06B0nt;\u6A16st\u0100;e\u3010\u3011\u403F\xF1\u1F19\xF4\u0F14\u0A80ABHabcdefhilmnoprstux\u3040\u3051\u3055\u3059\u30E0\u310E\u312B\u3147\u3162\u3172\u318E\u3206\u3215\u3224\u3229\u3258\u326E\u3272\u3290\u32B0\u32B7\u0180art\u3047\u304A\u304Cr\xF2\u10B3\xF2\u03DDail;\u691Car\xF2\u1C65ar;\u6964\u0380cdenqrt\u3068\u3075\u3078\u307F\u308F\u3094\u30CC\u0100eu\u306D\u3071;\uC000\u223D\u0331te;\u4155i\xE3\u116Emptyv;\u69B3g\u0200;del\u0FD1\u3089\u308B\u308D;\u6992;\u69A5\xE5\u0FD1uo\u803B\xBB\u40BBr\u0580;abcfhlpstw\u0FDC\u30AC\u30AF\u30B7\u30B9\u30BC\u30BE\u30C0\u30C3\u30C7\u30CAp;\u6975\u0100;f\u0FE0\u30B4s;\u6920;\u6933s;\u691E\xEB\u225D\xF0\u272El;\u6945im;\u6974l;\u61A3;\u619D\u0100ai\u30D1\u30D5il;\u691Ao\u0100;n\u30DB\u30DC\u6236al\xF3\u0F1E\u0180abr\u30E7\u30EA\u30EEr\xF2\u17E5rk;\u6773\u0100ak\u30F3\u30FDc\u0100ek\u30F9\u30FB;\u407D;\u405D\u0100es\u3102\u3104;\u698Cl\u0100du\u310A\u310C;\u698E;\u6990\u0200aeuy\u3117\u311C\u3127\u3129ron;\u4159\u0100di\u3121\u3125il;\u4157\xEC\u0FF2\xE2\u30FA;\u4440\u0200clqs\u3134\u3137\u313D\u3144a;\u6937dhar;\u6969uo\u0100;r\u020E\u020Dh;\u61B3\u0180acg\u314E\u315F\u0F44l\u0200;ips\u0F78\u3158\u315B\u109Cn\xE5\u10BBar\xF4\u0FA9t;\u65AD\u0180ilr\u3169\u1023\u316Esht;\u697D;\uC000\u{1D52F}\u0100ao\u3177\u3186r\u0100du\u317D\u317F\xBB\u047B\u0100;l\u1091\u3184;\u696C\u0100;v\u318B\u318C\u43C1;\u43F1\u0180gns\u3195\u31F9\u31FCht\u0300ahlrst\u31A4\u31B0\u31C2\u31D8\u31E4\u31EErrow\u0100;t\u0FDC\u31ADa\xE9\u30C8arpoon\u0100du\u31BB\u31BFow\xEE\u317Ep\xBB\u1092eft\u0100ah\u31CA\u31D0rrow\xF3\u0FEAarpoon\xF3\u0551ightarrows;\u61C9quigarro\xF7\u30CBhreetimes;\u62CCg;\u42DAingdotse\xF1\u1F32\u0180ahm\u320D\u3210\u3213r\xF2\u0FEAa\xF2\u0551;\u600Foust\u0100;a\u321E\u321F\u63B1che\xBB\u321Fmid;\u6AEE\u0200abpt\u3232\u323D\u3240\u3252\u0100nr\u3237\u323Ag;\u67EDr;\u61FEr\xEB\u1003\u0180afl\u3247\u324A\u324Er;\u6986;\uC000\u{1D563}us;\u6A2Eimes;\u6A35\u0100ap\u325D\u3267r\u0100;g\u3263\u3264\u4029t;\u6994olint;\u6A12ar\xF2\u31E3\u0200achq\u327B\u3280\u10BC\u3285quo;\u603Ar;\uC000\u{1D4C7}\u0100bu\u30FB\u328Ao\u0100;r\u0214\u0213\u0180hir\u3297\u329B\u32A0re\xE5\u31F8mes;\u62CAi\u0200;efl\u32AA\u1059\u1821\u32AB\u65B9tri;\u69CEluhar;\u6968;\u611E\u0D61\u32D5\u32DB\u32DF\u332C\u3338\u3371\0\u337A\u33A4\0\0\u33EC\u33F0\0\u3428\u3448\u345A\u34AD\u34B1\u34CA\u34F1\0\u3616\0\0\u3633cute;\u415Bqu\xEF\u27BA\u0500;Eaceinpsy\u11ED\u32F3\u32F5\u32FF\u3302\u330B\u330F\u331F\u3326\u3329;\u6AB4\u01F0\u32FA\0\u32FC;\u6AB8on;\u4161u\xE5\u11FE\u0100;d\u11F3\u3307il;\u415Frc;\u415D\u0180Eas\u3316\u3318\u331B;\u6AB6p;\u6ABAim;\u62E9olint;\u6A13i\xED\u1204;\u4441ot\u0180;be\u3334\u1D47\u3335\u62C5;\u6A66\u0380Aacmstx\u3346\u334A\u3357\u335B\u335E\u3363\u336Drr;\u61D8r\u0100hr\u3350\u3352\xEB\u2228\u0100;o\u0A36\u0A34t\u803B\xA7\u40A7i;\u403Bwar;\u6929m\u0100in\u3369\xF0nu\xF3\xF1t;\u6736r\u0100;o\u3376\u2055\uC000\u{1D530}\u0200acoy\u3382\u3386\u3391\u33A0rp;\u666F\u0100hy\u338B\u338Fcy;\u4449;\u4448rt\u026D\u3399\0\0\u339Ci\xE4\u1464ara\xEC\u2E6F\u803B\xAD\u40AD\u0100gm\u33A8\u33B4ma\u0180;fv\u33B1\u33B2\u33B2\u43C3;\u43C2\u0400;deglnpr\u12AB\u33C5\u33C9\u33CE\u33D6\u33DE\u33E1\u33E6ot;\u6A6A\u0100;q\u12B1\u12B0\u0100;E\u33D3\u33D4\u6A9E;\u6AA0\u0100;E\u33DB\u33DC\u6A9D;\u6A9Fe;\u6246lus;\u6A24arr;\u6972ar\xF2\u113D\u0200aeit\u33F8\u3408\u340F\u3417\u0100ls\u33FD\u3404lsetm\xE9\u336Ahp;\u6A33parsl;\u69E4\u0100dl\u1463\u3414e;\u6323\u0100;e\u341C\u341D\u6AAA\u0100;s\u3422\u3423\u6AAC;\uC000\u2AAC\uFE00\u0180flp\u342E\u3433\u3442tcy;\u444C\u0100;b\u3438\u3439\u402F\u0100;a\u343E\u343F\u69C4r;\u633Ff;\uC000\u{1D564}a\u0100dr\u344D\u0402es\u0100;u\u3454\u3455\u6660it\xBB\u3455\u0180csu\u3460\u3479\u349F\u0100au\u3465\u346Fp\u0100;s\u1188\u346B;\uC000\u2293\uFE00p\u0100;s\u11B4\u3475;\uC000\u2294\uFE00u\u0100bp\u347F\u348F\u0180;es\u1197\u119C\u3486et\u0100;e\u1197\u348D\xF1\u119D\u0180;es\u11A8\u11AD\u3496et\u0100;e\u11A8\u349D\xF1\u11AE\u0180;af\u117B\u34A6\u05B0r\u0165\u34AB\u05B1\xBB\u117Car\xF2\u1148\u0200cemt\u34B9\u34BE\u34C2\u34C5r;\uC000\u{1D4C8}tm\xEE\xF1i\xEC\u3415ar\xE6\u11BE\u0100ar\u34CE\u34D5r\u0100;f\u34D4\u17BF\u6606\u0100an\u34DA\u34EDight\u0100ep\u34E3\u34EApsilo\xEE\u1EE0h\xE9\u2EAFs\xBB\u2852\u0280bcmnp\u34FB\u355E\u1209\u358B\u358E\u0480;Edemnprs\u350E\u350F\u3511\u3515\u351E\u3523\u352C\u3531\u3536\u6282;\u6AC5ot;\u6ABD\u0100;d\u11DA\u351Aot;\u6AC3ult;\u6AC1\u0100Ee\u3528\u352A;\u6ACB;\u628Alus;\u6ABFarr;\u6979\u0180eiu\u353D\u3552\u3555t\u0180;en\u350E\u3545\u354Bq\u0100;q\u11DA\u350Feq\u0100;q\u352B\u3528m;\u6AC7\u0100bp\u355A\u355C;\u6AD5;\u6AD3c\u0300;acens\u11ED\u356C\u3572\u3579\u357B\u3326ppro\xF8\u32FAurlye\xF1\u11FE\xF1\u11F3\u0180aes\u3582\u3588\u331Bppro\xF8\u331Aq\xF1\u3317g;\u666A\u0680123;Edehlmnps\u35A9\u35AC\u35AF\u121C\u35B2\u35B4\u35C0\u35C9\u35D5\u35DA\u35DF\u35E8\u35ED\u803B\xB9\u40B9\u803B\xB2\u40B2\u803B\xB3\u40B3;\u6AC6\u0100os\u35B9\u35BCt;\u6ABEub;\u6AD8\u0100;d\u1222\u35C5ot;\u6AC4s\u0100ou\u35CF\u35D2l;\u67C9b;\u6AD7arr;\u697Bult;\u6AC2\u0100Ee\u35E4\u35E6;\u6ACC;\u628Blus;\u6AC0\u0180eiu\u35F4\u3609\u360Ct\u0180;en\u121C\u35FC\u3602q\u0100;q\u1222\u35B2eq\u0100;q\u35E7\u35E4m;\u6AC8\u0100bp\u3611\u3613;\u6AD4;\u6AD6\u0180Aan\u361C\u3620\u362Drr;\u61D9r\u0100hr\u3626\u3628\xEB\u222E\u0100;o\u0A2B\u0A29war;\u692Alig\u803B\xDF\u40DF\u0BE1\u3651\u365D\u3660\u12CE\u3673\u3679\0\u367E\u36C2\0\0\0\0\0\u36DB\u3703\0\u3709\u376C\0\0\0\u3787\u0272\u3656\0\0\u365Bget;\u6316;\u43C4r\xEB\u0E5F\u0180aey\u3666\u366B\u3670ron;\u4165dil;\u4163;\u4442lrec;\u6315r;\uC000\u{1D531}\u0200eiko\u3686\u369D\u36B5\u36BC\u01F2\u368B\0\u3691e\u01004f\u1284\u1281a\u0180;sv\u3698\u3699\u369B\u43B8ym;\u43D1\u0100cn\u36A2\u36B2k\u0100as\u36A8\u36AEppro\xF8\u12C1im\xBB\u12ACs\xF0\u129E\u0100as\u36BA\u36AE\xF0\u12C1rn\u803B\xFE\u40FE\u01EC\u031F\u36C6\u22E7es\u8180\xD7;bd\u36CF\u36D0\u36D8\u40D7\u0100;a\u190F\u36D5r;\u6A31;\u6A30\u0180eps\u36E1\u36E3\u3700\xE1\u2A4D\u0200;bcf\u0486\u36EC\u36F0\u36F4ot;\u6336ir;\u6AF1\u0100;o\u36F9\u36FC\uC000\u{1D565}rk;\u6ADA\xE1\u3362rime;\u6034\u0180aip\u370F\u3712\u3764d\xE5\u1248\u0380adempst\u3721\u374D\u3740\u3751\u3757\u375C\u375Fngle\u0280;dlqr\u3730\u3731\u3736\u3740\u3742\u65B5own\xBB\u1DBBeft\u0100;e\u2800\u373E\xF1\u092E;\u625Cight\u0100;e\u32AA\u374B\xF1\u105Aot;\u65ECinus;\u6A3Alus;\u6A39b;\u69CDime;\u6A3Bezium;\u63E2\u0180cht\u3772\u377D\u3781\u0100ry\u3777\u377B;\uC000\u{1D4C9};\u4446cy;\u445Brok;\u4167\u0100io\u378B\u378Ex\xF4\u1777head\u0100lr\u3797\u37A0eftarro\xF7\u084Fightarrow\xBB\u0F5D\u0900AHabcdfghlmoprstuw\u37D0\u37D3\u37D7\u37E4\u37F0\u37FC\u380E\u381C\u3823\u3834\u3851\u385D\u386B\u38A9\u38CC\u38D2\u38EA\u38F6r\xF2\u03EDar;\u6963\u0100cr\u37DC\u37E2ute\u803B\xFA\u40FA\xF2\u1150r\u01E3\u37EA\0\u37EDy;\u445Eve;\u416D\u0100iy\u37F5\u37FArc\u803B\xFB\u40FB;\u4443\u0180abh\u3803\u3806\u380Br\xF2\u13ADlac;\u4171a\xF2\u13C3\u0100ir\u3813\u3818sht;\u697E;\uC000\u{1D532}rave\u803B\xF9\u40F9\u0161\u3827\u3831r\u0100lr\u382C\u382E\xBB\u0957\xBB\u1083lk;\u6580\u0100ct\u3839\u384D\u026F\u383F\0\0\u384Arn\u0100;e\u3845\u3846\u631Cr\xBB\u3846op;\u630Fri;\u65F8\u0100al\u3856\u385Acr;\u416B\u80BB\xA8\u0349\u0100gp\u3862\u3866on;\u4173f;\uC000\u{1D566}\u0300adhlsu\u114B\u3878\u387D\u1372\u3891\u38A0own\xE1\u13B3arpoon\u0100lr\u3888\u388Cef\xF4\u382Digh\xF4\u382Fi\u0180;hl\u3899\u389A\u389C\u43C5\xBB\u13FAon\xBB\u389Aparrows;\u61C8\u0180cit\u38B0\u38C4\u38C8\u026F\u38B6\0\0\u38C1rn\u0100;e\u38BC\u38BD\u631Dr\xBB\u38BDop;\u630Eng;\u416Fri;\u65F9cr;\uC000\u{1D4CA}\u0180dir\u38D9\u38DD\u38E2ot;\u62F0lde;\u4169i\u0100;f\u3730\u38E8\xBB\u1813\u0100am\u38EF\u38F2r\xF2\u38A8l\u803B\xFC\u40FCangle;\u69A7\u0780ABDacdeflnoprsz\u391C\u391F\u3929\u392D\u39B5\u39B8\u39BD\u39DF\u39E4\u39E8\u39F3\u39F9\u39FD\u3A01\u3A20r\xF2\u03F7ar\u0100;v\u3926\u3927\u6AE8;\u6AE9as\xE8\u03E1\u0100nr\u3932\u3937grt;\u699C\u0380eknprst\u34E3\u3946\u394B\u3952\u395D\u3964\u3996app\xE1\u2415othin\xE7\u1E96\u0180hir\u34EB\u2EC8\u3959op\xF4\u2FB5\u0100;h\u13B7\u3962\xEF\u318D\u0100iu\u3969\u396Dgm\xE1\u33B3\u0100bp\u3972\u3984setneq\u0100;q\u397D\u3980\uC000\u228A\uFE00;\uC000\u2ACB\uFE00setneq\u0100;q\u398F\u3992\uC000\u228B\uFE00;\uC000\u2ACC\uFE00\u0100hr\u399B\u399Fet\xE1\u369Ciangle\u0100lr\u39AA\u39AFeft\xBB\u0925ight\xBB\u1051y;\u4432ash\xBB\u1036\u0180elr\u39C4\u39D2\u39D7\u0180;be\u2DEA\u39CB\u39CFar;\u62BBq;\u625Alip;\u62EE\u0100bt\u39DC\u1468a\xF2\u1469r;\uC000\u{1D533}tr\xE9\u39AEsu\u0100bp\u39EF\u39F1\xBB\u0D1C\xBB\u0D59pf;\uC000\u{1D567}ro\xF0\u0EFBtr\xE9\u39B4\u0100cu\u3A06\u3A0Br;\uC000\u{1D4CB}\u0100bp\u3A10\u3A18n\u0100Ee\u3980\u3A16\xBB\u397En\u0100Ee\u3992\u3A1E\xBB\u3990igzag;\u699A\u0380cefoprs\u3A36\u3A3B\u3A56\u3A5B\u3A54\u3A61\u3A6Airc;\u4175\u0100di\u3A40\u3A51\u0100bg\u3A45\u3A49ar;\u6A5Fe\u0100;q\u15FA\u3A4F;\u6259erp;\u6118r;\uC000\u{1D534}pf;\uC000\u{1D568}\u0100;e\u1479\u3A66at\xE8\u1479cr;\uC000\u{1D4CC}\u0AE3\u178E\u3A87\0\u3A8B\0\u3A90\u3A9B\0\0\u3A9D\u3AA8\u3AAB\u3AAF\0\0\u3AC3\u3ACE\0\u3AD8\u17DC\u17DFtr\xE9\u17D1r;\uC000\u{1D535}\u0100Aa\u3A94\u3A97r\xF2\u03C3r\xF2\u09F6;\u43BE\u0100Aa\u3AA1\u3AA4r\xF2\u03B8r\xF2\u09EBa\xF0\u2713is;\u62FB\u0180dpt\u17A4\u3AB5\u3ABE\u0100fl\u3ABA\u17A9;\uC000\u{1D569}im\xE5\u17B2\u0100Aa\u3AC7\u3ACAr\xF2\u03CEr\xF2\u0A01\u0100cq\u3AD2\u17B8r;\uC000\u{1D4CD}\u0100pt\u17D6\u3ADCr\xE9\u17D4\u0400acefiosu\u3AF0\u3AFD\u3B08\u3B0C\u3B11\u3B15\u3B1B\u3B21c\u0100uy\u3AF6\u3AFBte\u803B\xFD\u40FD;\u444F\u0100iy\u3B02\u3B06rc;\u4177;\u444Bn\u803B\xA5\u40A5r;\uC000\u{1D536}cy;\u4457pf;\uC000\u{1D56A}cr;\uC000\u{1D4CE}\u0100cm\u3B26\u3B29y;\u444El\u803B\xFF\u40FF\u0500acdefhiosw\u3B42\u3B48\u3B54\u3B58\u3B64\u3B69\u3B6D\u3B74\u3B7A\u3B80cute;\u417A\u0100ay\u3B4D\u3B52ron;\u417E;\u4437ot;\u417C\u0100et\u3B5D\u3B61tr\xE6\u155Fa;\u43B6r;\uC000\u{1D537}cy;\u4436grarr;\u61DDpf;\uC000\u{1D56B}cr;\uC000\u{1D4CF}\u0100jn\u3B85\u3B87;\u600Dj;\u600C'.split("").map(e=>e.charCodeAt(0)));var Qe=new Uint16Array("\u0200aglq \x1B\u026D\0\0p;\u4026os;\u4027t;\u403Et;\u403Cuot;\u4022".split("").map(e=>e.charCodeAt(0)));var mu,ys=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]]),ce=(mu=String.fromCodePoint)!==null&&mu!==void 0?mu:function(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 Le(e){var t;return e>=55296&&e<=57343||e>1114111?65533:(t=ys.get(e))!==null&&t!==void 0?t:e}var _;(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"})(_||(_={}));var vs=32,O;(function(e){e[e.VALUE_LENGTH=49152]="VALUE_LENGTH",e[e.BRANCH_LENGTH=16256]="BRANCH_LENGTH",e[e.JUMP_TABLE=127]="JUMP_TABLE"})(O||(O={}));function gu(e){return e>=_.ZERO&&e<=_.NINE}function ks(e){return e>=_.UPPER_A&&e<=_.UPPER_F||e>=_.LOWER_A&&e<=_.LOWER_F}function Ss(e){return e>=_.UPPER_A&&e<=_.UPPER_Z||e>=_.LOWER_A&&e<=_.LOWER_Z||gu(e)}function Ts(e){return e===_.EQUALS||Ss(e)}var L;(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"})(L||(L={}));var G;(function(e){e[e.Legacy=0]="Legacy",e[e.Strict=1]="Strict",e[e.Attribute=2]="Attribute"})(G||(G={}));var et=class{constructor(t,u,r){this.decodeTree=t,this.emitCodePoint=u,this.errors=r,this.state=L.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=G.Strict}startEntity(t){this.decodeMode=t,this.state=L.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1}write(t,u){switch(this.state){case L.EntityStart:return t.charCodeAt(u)===_.NUM?(this.state=L.NumericStart,this.consumed+=1,this.stateNumericStart(t,u+1)):(this.state=L.NamedEntity,this.stateNamedEntity(t,u));case L.NumericStart:return this.stateNumericStart(t,u);case L.NumericDecimal:return this.stateNumericDecimal(t,u);case L.NumericHex:return this.stateNumericHex(t,u);case L.NamedEntity:return this.stateNamedEntity(t,u)}}stateNumericStart(t,u){return u>=t.length?-1:(t.charCodeAt(u)|vs)===_.LOWER_X?(this.state=L.NumericHex,this.consumed+=1,this.stateNumericHex(t,u+1)):(this.state=L.NumericDecimal,this.stateNumericDecimal(t,u))}addToNumericResult(t,u,r,i){if(u!==r){let a=r-u;this.result=this.result*Math.pow(i,a)+parseInt(t.substr(u,a),i),this.consumed+=a}}stateNumericHex(t,u){let r=u;for(;u<t.length;){let i=t.charCodeAt(u);if(gu(i)||ks(i))u+=1;else return this.addToNumericResult(t,r,u,16),this.emitNumericEntity(i,3)}return this.addToNumericResult(t,r,u,16),-1}stateNumericDecimal(t,u){let r=u;for(;u<t.length;){let i=t.charCodeAt(u);if(gu(i))u+=1;else return this.addToNumericResult(t,r,u,10),this.emitNumericEntity(i,2)}return this.addToNumericResult(t,r,u,10),-1}emitNumericEntity(t,u){var r;if(this.consumed<=u)return(r=this.errors)===null||r===void 0||r.absenceOfDigitsInNumericCharacterReference(this.consumed),0;if(t===_.SEMI)this.consumed+=1;else if(this.decodeMode===G.Strict)return 0;return this.emitCodePoint(Le(this.result),this.consumed),this.errors&&(t!==_.SEMI&&this.errors.missingSemicolonAfterCharacterReference(),this.errors.validateNumericCharacterReference(this.result)),this.consumed}stateNamedEntity(t,u){let{decodeTree:r}=this,i=r[this.treeIndex],a=(i&O.VALUE_LENGTH)>>14;for(;u<t.length;u++,this.excess++){let n=t.charCodeAt(u);if(this.treeIndex=bu(r,i,this.treeIndex+Math.max(1,a),n),this.treeIndex<0)return this.result===0||this.decodeMode===G.Attribute&&(a===0||Ts(n))?0:this.emitNotTerminatedNamedEntity();if(i=r[this.treeIndex],a=(i&O.VALUE_LENGTH)>>14,a!==0){if(n===_.SEMI)return this.emitNamedEntityData(this.treeIndex,a,this.consumed+this.excess);this.decodeMode!==G.Strict&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}}return-1}emitNotTerminatedNamedEntity(){var t;let{result:u,decodeTree:r}=this,i=(r[u]&O.VALUE_LENGTH)>>14;return this.emitNamedEntityData(u,i,this.consumed),(t=this.errors)===null||t===void 0||t.missingSemicolonAfterCharacterReference(),this.consumed}emitNamedEntityData(t,u,r){let{decodeTree:i}=this;return this.emitCodePoint(u===1?i[t]&~O.VALUE_LENGTH:i[t+1],r),u===3&&this.emitCodePoint(i[t+2],r),r}end(){var t;switch(this.state){case L.NamedEntity:return this.result!==0&&(this.decodeMode!==G.Attribute||this.result===this.treeIndex)?this.emitNotTerminatedNamedEntity():0;case L.NumericDecimal:return this.emitNumericEntity(0,2);case L.NumericHex:return this.emitNumericEntity(0,3);case L.NumericStart:return(t=this.errors)===null||t===void 0||t.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case L.EntityStart:return 0}}};function Ei(e){let t="",u=new et(e,r=>t+=ce(r));return function(i,a){let n=0,s=0;for(;(s=i.indexOf("&",s))>=0;){t+=i.slice(n,s),u.startEntity(a);let l=u.write(i,s+1);if(l<0){n=s+u.end();break}n=s+l,s=l===0?n+1:n}let c=t+i.slice(n);return t="",c}}function bu(e,t,u,r){let i=(t&O.BRANCH_LENGTH)>>7,a=t&O.JUMP_TABLE;if(i===0)return a!==0&&r===a?u:-1;if(a){let c=r-a;return c<0||c>=i?-1:e[u+c]-1}let n=u,s=n+i-1;for(;n<=s;){let c=n+s>>>1,l=e[c];if(l<r)n=c+1;else if(l>r)s=c-1;else return e[c+i]}return-1}var sc=Ei(Ze),oc=Ei(Qe);var h;(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"})(h||(h={}));var d;(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.SpecialStartSequence=23]="SpecialStartSequence",e[e.InSpecialTag=24]="InSpecialTag",e[e.BeforeEntity=25]="BeforeEntity",e[e.BeforeNumericEntity=26]="BeforeNumericEntity",e[e.InNamedEntity=27]="InNamedEntity",e[e.InNumericEntity=28]="InNumericEntity",e[e.InHexEntity=29]="InHexEntity"})(d||(d={}));function z(e){return e===h.Space||e===h.NewLine||e===h.Tab||e===h.FormFeed||e===h.CarriageReturn}function tt(e){return e===h.Slash||e===h.Gt||z(e)}function Ai(e){return e>=h.Zero&&e<=h.Nine}function Es(e){return e>=h.LowerA&&e<=h.LowerZ||e>=h.UpperA&&e<=h.UpperZ}function As(e){return e>=h.UpperA&&e<=h.UpperF||e>=h.LowerA&&e<=h.LowerF}var U;(function(e){e[e.NoValue=0]="NoValue",e[e.Unquoted=1]="Unquoted",e[e.Single=2]="Single",e[e.Double=3]="Double"})(U||(U={}));var B={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])},le=class{constructor({xmlMode:t=!1,decodeEntities:u=!0},r){this.cbs=r,this.state=d.Text,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=d.Text,this.isSpecial=!1,this.running=!0,this.offset=0,this.currentSequence=void 0,this.sequenceIndex=0,this.trieIndex=0,this.trieCurrent=0,this.entityResult=0,this.entityExcess=0,this.xmlMode=t,this.decodeEntities=u,this.entityTrie=t?Qe:Ze}reset(){this.state=d.Text,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=d.Text,this.currentSequence=void 0,this.running=!0,this.offset=0}write(t){this.offset+=this.buffer.length,this.buffer=t,this.parse()}end(){this.running&&this.finish()}pause(){this.running=!1}resume(){this.running=!0,this.index<this.buffer.length+this.offset&&this.parse()}getIndex(){return this.index}getSectionStart(){return this.sectionStart}stateText(t){t===h.Lt||!this.decodeEntities&&this.fastForwardTo(h.Lt)?(this.index>this.sectionStart&&this.cbs.ontext(this.sectionStart,this.index),this.state=d.BeforeTagName,this.sectionStart=this.index):this.decodeEntities&&t===h.Amp&&(this.state=d.BeforeEntity)}stateSpecialStartSequence(t){let u=this.sequenceIndex===this.currentSequence.length;if(!(u?tt(t):(t|32)===this.currentSequence[this.sequenceIndex]))this.isSpecial=!1;else if(!u){this.sequenceIndex++;return}this.sequenceIndex=0,this.state=d.InTagName,this.stateInTagName(t)}stateInSpecialTag(t){if(this.sequenceIndex===this.currentSequence.length){if(t===h.Gt||z(t)){let u=this.index-this.currentSequence.length;if(this.sectionStart<u){let r=this.index;this.index=u,this.cbs.ontext(this.sectionStart,u),this.index=r}this.isSpecial=!1,this.sectionStart=u+2,this.stateInClosingTagName(t);return}this.sequenceIndex=0}(t|32)===this.currentSequence[this.sequenceIndex]?this.sequenceIndex+=1:this.sequenceIndex===0?this.currentSequence===B.TitleEnd?this.decodeEntities&&t===h.Amp&&(this.state=d.BeforeEntity):this.fastForwardTo(h.Lt)&&(this.sequenceIndex=1):this.sequenceIndex=+(t===h.Lt)}stateCDATASequence(t){t===B.Cdata[this.sequenceIndex]?++this.sequenceIndex===B.Cdata.length&&(this.state=d.InCommentLike,this.currentSequence=B.CdataEnd,this.sequenceIndex=0,this.sectionStart=this.index+1):(this.sequenceIndex=0,this.state=d.InDeclaration,this.stateInDeclaration(t))}fastForwardTo(t){for(;++this.index<this.buffer.length+this.offset;)if(this.buffer.charCodeAt(this.index-this.offset)===t)return!0;return this.index=this.buffer.length+this.offset-1,!1}stateInCommentLike(t){t===this.currentSequence[this.sequenceIndex]?++this.sequenceIndex===this.currentSequence.length&&(this.currentSequence===B.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=d.Text):this.sequenceIndex===0?this.fastForwardTo(this.currentSequence[0])&&(this.sequenceIndex=1):t!==this.currentSequence[this.sequenceIndex-1]&&(this.sequenceIndex=0)}isTagStartChar(t){return this.xmlMode?!tt(t):Es(t)}startSpecial(t,u){this.isSpecial=!0,this.currentSequence=t,this.sequenceIndex=u,this.state=d.SpecialStartSequence}stateBeforeTagName(t){if(t===h.ExclamationMark)this.state=d.BeforeDeclaration,this.sectionStart=this.index+1;else if(t===h.Questionmark)this.state=d.InProcessingInstruction,this.sectionStart=this.index+1;else if(this.isTagStartChar(t)){let u=t|32;this.sectionStart=this.index,!this.xmlMode&&u===B.TitleEnd[2]?this.startSpecial(B.TitleEnd,3):this.state=!this.xmlMode&&u===B.ScriptEnd[2]?d.BeforeSpecialS:d.InTagName}else t===h.Slash?this.state=d.BeforeClosingTagName:(this.state=d.Text,this.stateText(t))}stateInTagName(t){tt(t)&&(this.cbs.onopentagname(this.sectionStart,this.index),this.sectionStart=-1,this.state=d.BeforeAttributeName,this.stateBeforeAttributeName(t))}stateBeforeClosingTagName(t){z(t)||(t===h.Gt?this.state=d.Text:(this.state=this.isTagStartChar(t)?d.InClosingTagName:d.InSpecialComment,this.sectionStart=this.index))}stateInClosingTagName(t){(t===h.Gt||z(t))&&(this.cbs.onclosetag(this.sectionStart,this.index),this.sectionStart=-1,this.state=d.AfterClosingTagName,this.stateAfterClosingTagName(t))}stateAfterClosingTagName(t){(t===h.Gt||this.fastForwardTo(h.Gt))&&(this.state=d.Text,this.baseState=d.Text,this.sectionStart=this.index+1)}stateBeforeAttributeName(t){t===h.Gt?(this.cbs.onopentagend(this.index),this.isSpecial?(this.state=d.InSpecialTag,this.sequenceIndex=0):this.state=d.Text,this.baseState=this.state,this.sectionStart=this.index+1):t===h.Slash?this.state=d.InSelfClosingTag:z(t)||(this.state=d.InAttributeName,this.sectionStart=this.index)}stateInSelfClosingTag(t){t===h.Gt?(this.cbs.onselfclosingtag(this.index),this.state=d.Text,this.baseState=d.Text,this.sectionStart=this.index+1,this.isSpecial=!1):z(t)||(this.state=d.BeforeAttributeName,this.stateBeforeAttributeName(t))}stateInAttributeName(t){(t===h.Eq||tt(t))&&(this.cbs.onattribname(this.sectionStart,this.index),this.sectionStart=-1,this.state=d.AfterAttributeName,this.stateAfterAttributeName(t))}stateAfterAttributeName(t){t===h.Eq?this.state=d.BeforeAttributeValue:t===h.Slash||t===h.Gt?(this.cbs.onattribend(U.NoValue,this.index),this.state=d.BeforeAttributeName,this.stateBeforeAttributeName(t)):z(t)||(this.cbs.onattribend(U.NoValue,this.index),this.state=d.InAttributeName,this.sectionStart=this.index)}stateBeforeAttributeValue(t){t===h.DoubleQuote?(this.state=d.InAttributeValueDq,this.sectionStart=this.index+1):t===h.SingleQuote?(this.state=d.InAttributeValueSq,this.sectionStart=this.index+1):z(t)||(this.sectionStart=this.index,this.state=d.InAttributeValueNq,this.stateInAttributeValueNoQuotes(t))}handleInAttributeValue(t,u){t===u||!this.decodeEntities&&this.fastForwardTo(u)?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(u===h.DoubleQuote?U.Double:U.Single,this.index),this.state=d.BeforeAttributeName):this.decodeEntities&&t===h.Amp&&(this.baseState=this.state,this.state=d.BeforeEntity)}stateInAttributeValueDoubleQuotes(t){this.handleInAttributeValue(t,h.DoubleQuote)}stateInAttributeValueSingleQuotes(t){this.handleInAttributeValue(t,h.SingleQuote)}stateInAttributeValueNoQuotes(t){z(t)||t===h.Gt?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(U.Unquoted,this.index),this.state=d.BeforeAttributeName,this.stateBeforeAttributeName(t)):this.decodeEntities&&t===h.Amp&&(this.baseState=this.state,this.state=d.BeforeEntity)}stateBeforeDeclaration(t){t===h.OpeningSquareBracket?(this.state=d.CDATASequence,this.sequenceIndex=0):this.state=t===h.Dash?d.BeforeComment:d.InDeclaration}stateInDeclaration(t){(t===h.Gt||this.fastForwardTo(h.Gt))&&(this.cbs.ondeclaration(this.sectionStart,this.index),this.state=d.Text,this.sectionStart=this.index+1)}stateInProcessingInstruction(t){(t===h.Gt||this.fastForwardTo(h.Gt))&&(this.cbs.onprocessinginstruction(this.sectionStart,this.index),this.state=d.Text,this.sectionStart=this.index+1)}stateBeforeComment(t){t===h.Dash?(this.state=d.InCommentLike,this.currentSequence=B.CommentEnd,this.sequenceIndex=2,this.sectionStart=this.index+1):this.state=d.InDeclaration}stateInSpecialComment(t){(t===h.Gt||this.fastForwardTo(h.Gt))&&(this.cbs.oncomment(this.sectionStart,this.index,0),this.state=d.Text,this.sectionStart=this.index+1)}stateBeforeSpecialS(t){let u=t|32;u===B.ScriptEnd[3]?this.startSpecial(B.ScriptEnd,4):u===B.StyleEnd[3]?this.startSpecial(B.StyleEnd,4):(this.state=d.InTagName,this.stateInTagName(t))}stateBeforeEntity(t){this.entityExcess=1,this.entityResult=0,t===h.Number?this.state=d.BeforeNumericEntity:t===h.Amp||(this.trieIndex=0,this.trieCurrent=this.entityTrie[0],this.state=d.InNamedEntity,this.stateInNamedEntity(t))}stateInNamedEntity(t){if(this.entityExcess+=1,this.trieIndex=bu(this.entityTrie,this.trieCurrent,this.trieIndex+1,t),this.trieIndex<0){this.emitNamedEntity(),this.index--;return}this.trieCurrent=this.entityTrie[this.trieIndex];let u=this.trieCurrent&O.VALUE_LENGTH;if(u){let r=(u>>14)-1;if(!this.allowLegacyEntity()&&t!==h.Semi)this.trieIndex+=r;else{let i=this.index-this.entityExcess+1;i>this.sectionStart&&this.emitPartial(this.sectionStart,i),this.entityResult=this.trieIndex,this.trieIndex+=r,this.entityExcess=0,this.sectionStart=this.index+1,r===0&&this.emitNamedEntity()}}}emitNamedEntity(){if(this.state=this.baseState,this.entityResult===0)return;switch((this.entityTrie[this.entityResult]&O.VALUE_LENGTH)>>14){case 1:{this.emitCodePoint(this.entityTrie[this.entityResult]&~O.VALUE_LENGTH);break}case 2:{this.emitCodePoint(this.entityTrie[this.entityResult+1]);break}case 3:this.emitCodePoint(this.entityTrie[this.entityResult+1]),this.emitCodePoint(this.entityTrie[this.entityResult+2])}}stateBeforeNumericEntity(t){(t|32)===h.LowerX?(this.entityExcess++,this.state=d.InHexEntity):(this.state=d.InNumericEntity,this.stateInNumericEntity(t))}emitNumericEntity(t){let u=this.index-this.entityExcess-1;u+2+ +(this.state===d.InHexEntity)!==this.index&&(u>this.sectionStart&&this.emitPartial(this.sectionStart,u),this.sectionStart=this.index+Number(t),this.emitCodePoint(Le(this.entityResult))),this.state=this.baseState}stateInNumericEntity(t){t===h.Semi?this.emitNumericEntity(!0):Ai(t)?(this.entityResult=this.entityResult*10+(t-h.Zero),this.entityExcess++):(this.allowLegacyEntity()?this.emitNumericEntity(!1):this.state=this.baseState,this.index--)}stateInHexEntity(t){t===h.Semi?this.emitNumericEntity(!0):Ai(t)?(this.entityResult=this.entityResult*16+(t-h.Zero),this.entityExcess++):As(t)?(this.entityResult=this.entityResult*16+((t|32)-h.LowerA+10),this.entityExcess++):(this.allowLegacyEntity()?this.emitNumericEntity(!1):this.state=this.baseState,this.index--)}allowLegacyEntity(){return!this.xmlMode&&(this.baseState===d.Text||this.baseState===d.InSpecialTag)}cleanup(){this.running&&this.sectionStart!==this.index&&(this.state===d.Text||this.state===d.InSpecialTag&&this.sequenceIndex===0?(this.cbs.ontext(this.sectionStart,this.index),this.sectionStart=this.index):(this.state===d.InAttributeValueDq||this.state===d.InAttributeValueSq||this.state===d.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 t=this.buffer.charCodeAt(this.index-this.offset);switch(this.state){case d.Text:{this.stateText(t);break}case d.SpecialStartSequence:{this.stateSpecialStartSequence(t);break}case d.InSpecialTag:{this.stateInSpecialTag(t);break}case d.CDATASequence:{this.stateCDATASequence(t);break}case d.InAttributeValueDq:{this.stateInAttributeValueDoubleQuotes(t);break}case d.InAttributeName:{this.stateInAttributeName(t);break}case d.InCommentLike:{this.stateInCommentLike(t);break}case d.InSpecialComment:{this.stateInSpecialComment(t);break}case d.BeforeAttributeName:{this.stateBeforeAttributeName(t);break}case d.InTagName:{this.stateInTagName(t);break}case d.InClosingTagName:{this.stateInClosingTagName(t);break}case d.BeforeTagName:{this.stateBeforeTagName(t);break}case d.AfterAttributeName:{this.stateAfterAttributeName(t);break}case d.InAttributeValueSq:{this.stateInAttributeValueSingleQuotes(t);break}case d.BeforeAttributeValue:{this.stateBeforeAttributeValue(t);break}case d.BeforeClosingTagName:{this.stateBeforeClosingTagName(t);break}case d.AfterClosingTagName:{this.stateAfterClosingTagName(t);break}case d.BeforeSpecialS:{this.stateBeforeSpecialS(t);break}case d.InAttributeValueNq:{this.stateInAttributeValueNoQuotes(t);break}case d.InSelfClosingTag:{this.stateInSelfClosingTag(t);break}case d.InDeclaration:{this.stateInDeclaration(t);break}case d.BeforeDeclaration:{this.stateBeforeDeclaration(t);break}case d.BeforeComment:{this.stateBeforeComment(t);break}case d.InProcessingInstruction:{this.stateInProcessingInstruction(t);break}case d.InNamedEntity:{this.stateInNamedEntity(t);break}case d.BeforeEntity:{this.stateBeforeEntity(t);break}case d.InHexEntity:{this.stateInHexEntity(t);break}case d.InNumericEntity:{this.stateInNumericEntity(t);break}default:this.stateBeforeNumericEntity(t)}this.index++}this.cleanup()}finish(){this.state===d.InNamedEntity&&this.emitNamedEntity(),this.sectionStart<this.index&&this.handleTrailingData(),this.cbs.onend()}handleTrailingData(){let t=this.buffer.length+this.offset;this.state===d.InCommentLike?this.currentSequence===B.CdataEnd?this.cbs.oncdata(this.sectionStart,t,0):this.cbs.oncomment(this.sectionStart,t,0):this.state===d.InNumericEntity&&this.allowLegacyEntity()?this.emitNumericEntity(!1):this.state===d.InHexEntity&&this.allowLegacyEntity()?this.emitNumericEntity(!1):this.state===d.InTagName||this.state===d.BeforeAttributeName||this.state===d.BeforeAttributeValue||this.state===d.AfterAttributeName||this.state===d.InAttributeName||this.state===d.InAttributeValueSq||this.state===d.InAttributeValueDq||this.state===d.InAttributeValueNq||this.state===d.InClosingTagName||this.cbs.ontext(this.sectionStart,t)}emitPartial(t,u){this.baseState!==d.Text&&this.baseState!==d.InSpecialTag?this.cbs.onattribdata(t,u):this.cbs.ontext(t,u)}emitCodePoint(t){this.baseState!==d.Text&&this.baseState!==d.InSpecialTag?this.cbs.onattribentity(t):this.cbs.ontextentity(t)}};var de=new Set(["input","option","optgroup","select","button","datalist","textarea"]),T=new Set(["p"]),Li=new Set(["thead","tbody"]),_i=new Set(["dd","dt"]),Ii=new Set(["rt","rp"]),Ls=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",T],["h1",T],["h2",T],["h3",T],["h4",T],["h5",T],["h6",T],["select",de],["input",de],["output",de],["button",de],["datalist",de],["textarea",de],["option",new Set(["option"])],["optgroup",new Set(["optgroup","option"])],["dd",_i],["dt",_i],["address",T],["article",T],["aside",T],["blockquote",T],["details",T],["div",T],["dl",T],["fieldset",T],["figcaption",T],["figure",T],["footer",T],["form",T],["header",T],["hr",T],["main",T],["nav",T],["ol",T],["pre",T],["section",T],["table",T],["ul",T],["rt",Ii],["rp",Ii],["tbody",Li],["tfoot",Li]]),_s=new Set(["area","base","basefont","br","col","command","embed","frame","hr","img","input","isindex","keygen","link","meta","param","source","track","wbr"]),Ni=new Set(["math","svg"]),Di=new Set(["mi","mo","mn","ms","mtext","annotation-xml","foreignobject","desc","title"]),Is=/\s|\//,_e=class{constructor(t,u={}){var r,i,a,n,s;this.options=u,this.startIndex=0,this.endIndex=0,this.openTagStart=0,this.tagname="",this.attribname="",this.attribvalue="",this.attribs=null,this.stack=[],this.foreignContext=[],this.buffers=[],this.bufferOffset=0,this.writeIndex=0,this.ended=!1,this.cbs=t??{},this.lowerCaseTagNames=(r=u.lowerCaseTags)!==null&&r!==void 0?r:!u.xmlMode,this.lowerCaseAttributeNames=(i=u.lowerCaseAttributeNames)!==null&&i!==void 0?i:!u.xmlMode,this.tokenizer=new((a=u.Tokenizer)!==null&&a!==void 0?a:le)(this.options,this),(s=(n=this.cbs).onparserinit)===null||s===void 0||s.call(n,this)}ontext(t,u){var r,i;let a=this.getSlice(t,u);this.endIndex=u-1,(i=(r=this.cbs).ontext)===null||i===void 0||i.call(r,a),this.startIndex=u}ontextentity(t){var u,r;let i=this.tokenizer.getSectionStart();this.endIndex=i-1,(r=(u=this.cbs).ontext)===null||r===void 0||r.call(u,ce(t)),this.startIndex=i}isVoidElement(t){return!this.options.xmlMode&&_s.has(t)}onopentagname(t,u){this.endIndex=u;let r=this.getSlice(t,u);this.lowerCaseTagNames&&(r=r.toLowerCase()),this.emitOpenTag(r)}emitOpenTag(t){var u,r,i,a;this.openTagStart=this.startIndex,this.tagname=t;let n=!this.options.xmlMode&&Ls.get(t);if(n)for(;this.stack.length>0&&n.has(this.stack[this.stack.length-1]);){let s=this.stack.pop();(r=(u=this.cbs).onclosetag)===null||r===void 0||r.call(u,s,!0)}this.isVoidElement(t)||(this.stack.push(t),Ni.has(t)?this.foreignContext.push(!0):Di.has(t)&&this.foreignContext.push(!1)),(a=(i=this.cbs).onopentagname)===null||a===void 0||a.call(i,t),this.cbs.onopentag&&(this.attribs={})}endOpenTag(t){var u,r;this.startIndex=this.openTagStart,this.attribs&&((r=(u=this.cbs).onopentag)===null||r===void 0||r.call(u,this.tagname,this.attribs,t),this.attribs=null),this.cbs.onclosetag&&this.isVoidElement(this.tagname)&&this.cbs.onclosetag(this.tagname,!0),this.tagname=""}onopentagend(t){this.endIndex=t,this.endOpenTag(!1),this.startIndex=t+1}onclosetag(t,u){var r,i,a,n,s,c;this.endIndex=u;let l=this.getSlice(t,u);if(this.lowerCaseTagNames&&(l=l.toLowerCase()),(Ni.has(l)||Di.has(l))&&this.foreignContext.pop(),this.isVoidElement(l))!this.options.xmlMode&&l==="br"&&((i=(r=this.cbs).onopentagname)===null||i===void 0||i.call(r,"br"),(n=(a=this.cbs).onopentag)===null||n===void 0||n.call(a,"br",{},!0),(c=(s=this.cbs).onclosetag)===null||c===void 0||c.call(s,"br",!1));else{let f=this.stack.lastIndexOf(l);if(f!==-1)if(this.cbs.onclosetag){let m=this.stack.length-f;for(;m--;)this.cbs.onclosetag(this.stack.pop(),m!==0)}else this.stack.length=f;else!this.options.xmlMode&&l==="p"&&(this.emitOpenTag("p"),this.closeCurrentTag(!0))}this.startIndex=u+1}onselfclosingtag(t){this.endIndex=t,this.options.xmlMode||this.options.recognizeSelfClosing||this.foreignContext[this.foreignContext.length-1]?(this.closeCurrentTag(!1),this.startIndex=t+1):this.onopentagend(t)}closeCurrentTag(t){var u,r;let i=this.tagname;this.endOpenTag(t),this.stack[this.stack.length-1]===i&&((r=(u=this.cbs).onclosetag)===null||r===void 0||r.call(u,i,!t),this.stack.pop())}onattribname(t,u){this.startIndex=t;let r=this.getSlice(t,u);this.attribname=this.lowerCaseAttributeNames?r.toLowerCase():r}onattribdata(t,u){this.attribvalue+=this.getSlice(t,u)}onattribentity(t){this.attribvalue+=ce(t)}onattribend(t,u){var r,i;this.endIndex=u,(i=(r=this.cbs).onattribute)===null||i===void 0||i.call(r,this.attribname,this.attribvalue,t===U.Double?'"':t===U.Single?"'":t===U.NoValue?void 0:null),this.attribs&&!Object.prototype.hasOwnProperty.call(this.attribs,this.attribname)&&(this.attribs[this.attribname]=this.attribvalue),this.attribvalue=""}getInstructionName(t){let u=t.search(Is),r=u<0?t:t.substr(0,u);return this.lowerCaseTagNames&&(r=r.toLowerCase()),r}ondeclaration(t,u){this.endIndex=u;let r=this.getSlice(t,u);if(this.cbs.onprocessinginstruction){let i=this.getInstructionName(r);this.cbs.onprocessinginstruction(`!${i}`,`!${r}`)}this.startIndex=u+1}onprocessinginstruction(t,u){this.endIndex=u;let r=this.getSlice(t,u);if(this.cbs.onprocessinginstruction){let i=this.getInstructionName(r);this.cbs.onprocessinginstruction(`?${i}`,`?${r}`)}this.startIndex=u+1}oncomment(t,u,r){var i,a,n,s;this.endIndex=u,(a=(i=this.cbs).oncomment)===null||a===void 0||a.call(i,this.getSlice(t,u-r)),(s=(n=this.cbs).oncommentend)===null||s===void 0||s.call(n),this.startIndex=u+1}oncdata(t,u,r){var i,a,n,s,c,l,f,m,x,g;this.endIndex=u;let b=this.getSlice(t,u-r);this.options.xmlMode||this.options.recognizeCDATA?((a=(i=this.cbs).oncdatastart)===null||a===void 0||a.call(i),(s=(n=this.cbs).ontext)===null||s===void 0||s.call(n,b),(l=(c=this.cbs).oncdataend)===null||l===void 0||l.call(c)):((m=(f=this.cbs).oncomment)===null||m===void 0||m.call(f,`[CDATA[${b}]]`),(g=(x=this.cbs).oncommentend)===null||g===void 0||g.call(x)),this.startIndex=u+1}onend(){var t,u;if(this.cbs.onclosetag){this.endIndex=this.startIndex;for(let r=this.stack.length;r>0;this.cbs.onclosetag(this.stack[--r],!0));}(u=(t=this.cbs).onend)===null||u===void 0||u.call(t)}reset(){var t,u,r,i;(u=(t=this.cbs).onreset)===null||u===void 0||u.call(t),this.tokenizer.reset(),this.tagname="",this.attribname="",this.attribs=null,this.stack.length=0,this.startIndex=0,this.endIndex=0,(i=(r=this.cbs).onparserinit)===null||i===void 0||i.call(r,this),this.buffers.length=0,this.bufferOffset=0,this.writeIndex=0,this.ended=!1}parseComplete(t){this.reset(),this.end(t)}getSlice(t,u){for(;t-this.bufferOffset>=this.buffers[0].length;)this.shiftBuffer();let r=this.buffers[0].slice(t-this.bufferOffset,u-this.bufferOffset);for(;u-this.bufferOffset>this.buffers[0].length;)this.shiftBuffer(),r+=this.buffers[0].slice(0,u-this.bufferOffset);return r}shiftBuffer(){this.bufferOffset+=this.buffers[0].length,this.writeIndex--,this.buffers.shift()}write(t){var u,r;if(this.ended){(r=(u=this.cbs).onerror)===null||r===void 0||r.call(u,new Error(".write() after done!"));return}this.buffers.push(t),this.tokenizer.running&&(this.tokenizer.write(t),this.writeIndex++)}end(t){var u,r;if(this.ended){(r=(u=this.cbs).onerror)===null||r===void 0||r.call(u,new Error(".end() after done!"));return}t&&this.write(t),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(t){this.write(t)}done(t){this.end(t)}};function ut(e){for(let t=1;t<e.length;t++)e[t][0]+=e[t-1][0]+1;return e}var Ns=new Map(ut([[9,"&Tab;"],[0,"&NewLine;"],[22,"&excl;"],[0,"&quot;"],[0,"&num;"],[0,"&dollar;"],[0,"&percnt;"],[0,"&amp;"],[0,"&apos;"],[0,"&lpar;"],[0,"&rpar;"],[0,"&ast;"],[0,"&plus;"],[0,"&comma;"],[1,"&period;"],[0,"&sol;"],[10,"&colon;"],[0,"&semi;"],[0,{v:"&lt;",n:8402,o:"&nvlt;"}],[0,{v:"&equals;",n:8421,o:"&bne;"}],[0,{v:"&gt;",n:8402,o:"&nvgt;"}],[0,"&quest;"],[0,"&commat;"],[26,"&lbrack;"],[0,"&bsol;"],[0,"&rbrack;"],[0,"&Hat;"],[0,"&lowbar;"],[0,"&DiacriticalGrave;"],[5,{n:106,o:"&fjlig;"}],[20,"&lbrace;"],[0,"&verbar;"],[0,"&rbrace;"],[34,"&nbsp;"],[0,"&iexcl;"],[0,"&cent;"],[0,"&pound;"],[0,"&curren;"],[0,"&yen;"],[0,"&brvbar;"],[0,"&sect;"],[0,"&die;"],[0,"&copy;"],[0,"&ordf;"],[0,"&laquo;"],[0,"&not;"],[0,"&shy;"],[0,"&circledR;"],[0,"&macr;"],[0,"&deg;"],[0,"&PlusMinus;"],[0,"&sup2;"],[0,"&sup3;"],[0,"&acute;"],[0,"&micro;"],[0,"&para;"],[0,"&centerdot;"],[0,"&cedil;"],[0,"&sup1;"],[0,"&ordm;"],[0,"&raquo;"],[0,"&frac14;"],[0,"&frac12;"],[0,"&frac34;"],[0,"&iquest;"],[0,"&Agrave;"],[0,"&Aacute;"],[0,"&Acirc;"],[0,"&Atilde;"],[0,"&Auml;"],[0,"&angst;"],[0,"&AElig;"],[0,"&Ccedil;"],[0,"&Egrave;"],[0,"&Eacute;"],[0,"&Ecirc;"],[0,"&Euml;"],[0,"&Igrave;"],[0,"&Iacute;"],[0,"&Icirc;"],[0,"&Iuml;"],[0,"&ETH;"],[0,"&Ntilde;"],[0,"&Ograve;"],[0,"&Oacute;"],[0,"&Ocirc;"],[0,"&Otilde;"],[0,"&Ouml;"],[0,"&times;"],[0,"&Oslash;"],[0,"&Ugrave;"],[0,"&Uacute;"],[0,"&Ucirc;"],[0,"&Uuml;"],[0,"&Yacute;"],[0,"&THORN;"],[0,"&szlig;"],[0,"&agrave;"],[0,"&aacute;"],[0,"&acirc;"],[0,"&atilde;"],[0,"&auml;"],[0,"&aring;"],[0,"&aelig;"],[0,"&ccedil;"],[0,"&egrave;"],[0,"&eacute;"],[0,"&ecirc;"],[0,"&euml;"],[0,"&igrave;"],[0,"&iacute;"],[0,"&icirc;"],[0,"&iuml;"],[0,"&eth;"],[0,"&ntilde;"],[0,"&ograve;"],[0,"&oacute;"],[0,"&ocirc;"],[0,"&otilde;"],[0,"&ouml;"],[0,"&div;"],[0,"&oslash;"],[0,"&ugrave;"],[0,"&uacute;"],[0,"&ucirc;"],[0,"&uuml;"],[0,"&yacute;"],[0,"&thorn;"],[0,"&yuml;"],[0,"&Amacr;"],[0,"&amacr;"],[0,"&Abreve;"],[0,"&abreve;"],[0,"&Aogon;"],[0,"&aogon;"],[0,"&Cacute;"],[0,"&cacute;"],[0,"&Ccirc;"],[0,"&ccirc;"],[0,"&Cdot;"],[0,"&cdot;"],[0,"&Ccaron;"],[0,"&ccaron;"],[0,"&Dcaron;"],[0,"&dcaron;"],[0,"&Dstrok;"],[0,"&dstrok;"],[0,"&Emacr;"],[0,"&emacr;"],[2,"&Edot;"],[0,"&edot;"],[0,"&Eogon;"],[0,"&eogon;"],[0,"&Ecaron;"],[0,"&ecaron;"],[0,"&Gcirc;"],[0,"&gcirc;"],[0,"&Gbreve;"],[0,"&gbreve;"],[0,"&Gdot;"],[0,"&gdot;"],[0,"&Gcedil;"],[1,"&Hcirc;"],[0,"&hcirc;"],[0,"&Hstrok;"],[0,"&hstrok;"],[0,"&Itilde;"],[0,"&itilde;"],[0,"&Imacr;"],[0,"&imacr;"],[2,"&Iogon;"],[0,"&iogon;"],[0,"&Idot;"],[0,"&imath;"],[0,"&IJlig;"],[0,"&ijlig;"],[0,"&Jcirc;"],[0,"&jcirc;"],[0,"&Kcedil;"],[0,"&kcedil;"],[0,"&kgreen;"],[0,"&Lacute;"],[0,"&lacute;"],[0,"&Lcedil;"],[0,"&lcedil;"],[0,"&Lcaron;"],[0,"&lcaron;"],[0,"&Lmidot;"],[0,"&lmidot;"],[0,"&Lstrok;"],[0,"&lstrok;"],[0,"&Nacute;"],[0,"&nacute;"],[0,"&Ncedil;"],[0,"&ncedil;"],[0,"&Ncaron;"],[0,"&ncaron;"],[0,"&napos;"],[0,"&ENG;"],[0,"&eng;"],[0,"&Omacr;"],[0,"&omacr;"],[2,"&Odblac;"],[0,"&odblac;"],[0,"&OElig;"],[0,"&oelig;"],[0,"&Racute;"],[0,"&racute;"],[0,"&Rcedil;"],[0,"&rcedil;"],[0,"&Rcaron;"],[0,"&rcaron;"],[0,"&Sacute;"],[0,"&sacute;"],[0,"&Scirc;"],[0,"&scirc;"],[0,"&Scedil;"],[0,"&scedil;"],[0,"&Scaron;"],[0,"&scaron;"],[0,"&Tcedil;"],[0,"&tcedil;"],[0,"&Tcaron;"],[0,"&tcaron;"],[0,"&Tstrok;"],[0,"&tstrok;"],[0,"&Utilde;"],[0,"&utilde;"],[0,"&Umacr;"],[0,"&umacr;"],[0,"&Ubreve;"],[0,"&ubreve;"],[0,"&Uring;"],[0,"&uring;"],[0,"&Udblac;"],[0,"&udblac;"],[0,"&Uogon;"],[0,"&uogon;"],[0,"&Wcirc;"],[0,"&wcirc;"],[0,"&Ycirc;"],[0,"&ycirc;"],[0,"&Yuml;"],[0,"&Zacute;"],[0,"&zacute;"],[0,"&Zdot;"],[0,"&zdot;"],[0,"&Zcaron;"],[0,"&zcaron;"],[19,"&fnof;"],[34,"&imped;"],[63,"&gacute;"],[65,"&jmath;"],[142,"&circ;"],[0,"&caron;"],[16,"&breve;"],[0,"&DiacriticalDot;"],[0,"&ring;"],[0,"&ogon;"],[0,"&DiacriticalTilde;"],[0,"&dblac;"],[51,"&DownBreve;"],[127,"&Alpha;"],[0,"&Beta;"],[0,"&Gamma;"],[0,"&Delta;"],[0,"&Epsilon;"],[0,"&Zeta;"],[0,"&Eta;"],[0,"&Theta;"],[0,"&Iota;"],[0,"&Kappa;"],[0,"&Lambda;"],[0,"&Mu;"],[0,"&Nu;"],[0,"&Xi;"],[0,"&Omicron;"],[0,"&Pi;"],[0,"&Rho;"],[1,"&Sigma;"],[0,"&Tau;"],[0,"&Upsilon;"],[0,"&Phi;"],[0,"&Chi;"],[0,"&Psi;"],[0,"&ohm;"],[7,"&alpha;"],[0,"&beta;"],[0,"&gamma;"],[0,"&delta;"],[0,"&epsi;"],[0,"&zeta;"],[0,"&eta;"],[0,"&theta;"],[0,"&iota;"],[0,"&kappa;"],[0,"&lambda;"],[0,"&mu;"],[0,"&nu;"],[0,"&xi;"],[0,"&omicron;"],[0,"&pi;"],[0,"&rho;"],[0,"&sigmaf;"],[0,"&sigma;"],[0,"&tau;"],[0,"&upsi;"],[0,"&phi;"],[0,"&chi;"],[0,"&psi;"],[0,"&omega;"],[7,"&thetasym;"],[0,"&Upsi;"],[2,"&phiv;"],[0,"&piv;"],[5,"&Gammad;"],[0,"&digamma;"],[18,"&kappav;"],[0,"&rhov;"],[3,"&epsiv;"],[0,"&backepsilon;"],[10,"&IOcy;"],[0,"&DJcy;"],[0,"&GJcy;"],[0,"&Jukcy;"],[0,"&DScy;"],[0,"&Iukcy;"],[0,"&YIcy;"],[0,"&Jsercy;"],[0,"&LJcy;"],[0,"&NJcy;"],[0,"&TSHcy;"],[0,"&KJcy;"],[1,"&Ubrcy;"],[0,"&DZcy;"],[0,"&Acy;"],[0,"&Bcy;"],[0,"&Vcy;"],[0,"&Gcy;"],[0,"&Dcy;"],[0,"&IEcy;"],[0,"&ZHcy;"],[0,"&Zcy;"],[0,"&Icy;"],[0,"&Jcy;"],[0,"&Kcy;"],[0,"&Lcy;"],[0,"&Mcy;"],[0,"&Ncy;"],[0,"&Ocy;"],[0,"&Pcy;"],[0,"&Rcy;"],[0,"&Scy;"],[0,"&Tcy;"],[0,"&Ucy;"],[0,"&Fcy;"],[0,"&KHcy;"],[0,"&TScy;"],[0,"&CHcy;"],[0,"&SHcy;"],[0,"&SHCHcy;"],[0,"&HARDcy;"],[0,"&Ycy;"],[0,"&SOFTcy;"],[0,"&Ecy;"],[0,"&YUcy;"],[0,"&YAcy;"],[0,"&acy;"],[0,"&bcy;"],[0,"&vcy;"],[0,"&gcy;"],[0,"&dcy;"],[0,"&iecy;"],[0,"&zhcy;"],[0,"&zcy;"],[0,"&icy;"],[0,"&jcy;"],[0,"&kcy;"],[0,"&lcy;"],[0,"&mcy;"],[0,"&ncy;"],[0,"&ocy;"],[0,"&pcy;"],[0,"&rcy;"],[0,"&scy;"],[0,"&tcy;"],[0,"&ucy;"],[0,"&fcy;"],[0,"&khcy;"],[0,"&tscy;"],[0,"&chcy;"],[0,"&shcy;"],[0,"&shchcy;"],[0,"&hardcy;"],[0,"&ycy;"],[0,"&softcy;"],[0,"&ecy;"],[0,"&yucy;"],[0,"&yacy;"],[1,"&iocy;"],[0,"&djcy;"],[0,"&gjcy;"],[0,"&jukcy;"],[0,"&dscy;"],[0,"&iukcy;"],[0,"&yicy;"],[0,"&jsercy;"],[0,"&ljcy;"],[0,"&njcy;"],[0,"&tshcy;"],[0,"&kjcy;"],[1,"&ubrcy;"],[0,"&dzcy;"],[7074,"&ensp;"],[0,"&emsp;"],[0,"&emsp13;"],[0,"&emsp14;"],[1,"&numsp;"],[0,"&puncsp;"],[0,"&ThinSpace;"],[0,"&hairsp;"],[0,"&NegativeMediumSpace;"],[0,"&zwnj;"],[0,"&zwj;"],[0,"&lrm;"],[0,"&rlm;"],[0,"&dash;"],[2,"&ndash;"],[0,"&mdash;"],[0,"&horbar;"],[0,"&Verbar;"],[1,"&lsquo;"],[0,"&CloseCurlyQuote;"],[0,"&lsquor;"],[1,"&ldquo;"],[0,"&CloseCurlyDoubleQuote;"],[0,"&bdquo;"],[1,"&dagger;"],[0,"&Dagger;"],[0,"&bull;"],[2,"&nldr;"],[0,"&hellip;"],[9,"&permil;"],[0,"&pertenk;"],[0,"&prime;"],[0,"&Prime;"],[0,"&tprime;"],[0,"&backprime;"],[3,"&lsaquo;"],[0,"&rsaquo;"],[3,"&oline;"],[2,"&caret;"],[1,"&hybull;"],[0,"&frasl;"],[10,"&bsemi;"],[7,"&qprime;"],[7,{v:"&MediumSpace;",n:8202,o:"&ThickSpace;"}],[0,"&NoBreak;"],[0,"&af;"],[0,"&InvisibleTimes;"],[0,"&ic;"],[72,"&euro;"],[46,"&tdot;"],[0,"&DotDot;"],[37,"&complexes;"],[2,"&incare;"],[4,"&gscr;"],[0,"&hamilt;"],[0,"&Hfr;"],[0,"&Hopf;"],[0,"&planckh;"],[0,"&hbar;"],[0,"&imagline;"],[0,"&Ifr;"],[0,"&lagran;"],[0,"&ell;"],[1,"&naturals;"],[0,"&numero;"],[0,"&copysr;"],[0,"&weierp;"],[0,"&Popf;"],[0,"&Qopf;"],[0,"&realine;"],[0,"&real;"],[0,"&reals;"],[0,"&rx;"],[3,"&trade;"],[1,"&integers;"],[2,"&mho;"],[0,"&zeetrf;"],[0,"&iiota;"],[2,"&bernou;"],[0,"&Cayleys;"],[1,"&escr;"],[0,"&Escr;"],[0,"&Fouriertrf;"],[1,"&Mellintrf;"],[0,"&order;"],[0,"&alefsym;"],[0,"&beth;"],[0,"&gimel;"],[0,"&daleth;"],[12,"&CapitalDifferentialD;"],[0,"&dd;"],[0,"&ee;"],[0,"&ii;"],[10,"&frac13;"],[0,"&frac23;"],[0,"&frac15;"],[0,"&frac25;"],[0,"&frac35;"],[0,"&frac45;"],[0,"&frac16;"],[0,"&frac56;"],[0,"&frac18;"],[0,"&frac38;"],[0,"&frac58;"],[0,"&frac78;"],[49,"&larr;"],[0,"&ShortUpArrow;"],[0,"&rarr;"],[0,"&darr;"],[0,"&harr;"],[0,"&updownarrow;"],[0,"&nwarr;"],[0,"&nearr;"],[0,"&LowerRightArrow;"],[0,"&LowerLeftArrow;"],[0,"&nlarr;"],[0,"&nrarr;"],[1,{v:"&rarrw;",n:824,o:"&nrarrw;"}],[0,"&Larr;"],[0,"&Uarr;"],[0,"&Rarr;"],[0,"&Darr;"],[0,"&larrtl;"],[0,"&rarrtl;"],[0,"&LeftTeeArrow;"],[0,"&mapstoup;"],[0,"&map;"],[0,"&DownTeeArrow;"],[1,"&hookleftarrow;"],[0,"&hookrightarrow;"],[0,"&larrlp;"],[0,"&looparrowright;"],[0,"&harrw;"],[0,"&nharr;"],[1,"&lsh;"],[0,"&rsh;"],[0,"&ldsh;"],[0,"&rdsh;"],[1,"&crarr;"],[0,"&cularr;"],[0,"&curarr;"],[2,"&circlearrowleft;"],[0,"&circlearrowright;"],[0,"&leftharpoonup;"],[0,"&DownLeftVector;"],[0,"&RightUpVector;"],[0,"&LeftUpVector;"],[0,"&rharu;"],[0,"&DownRightVector;"],[0,"&dharr;"],[0,"&dharl;"],[0,"&RightArrowLeftArrow;"],[0,"&udarr;"],[0,"&LeftArrowRightArrow;"],[0,"&leftleftarrows;"],[0,"&upuparrows;"],[0,"&rightrightarrows;"],[0,"&ddarr;"],[0,"&leftrightharpoons;"],[0,"&Equilibrium;"],[0,"&nlArr;"],[0,"&nhArr;"],[0,"&nrArr;"],[0,"&DoubleLeftArrow;"],[0,"&DoubleUpArrow;"],[0,"&DoubleRightArrow;"],[0,"&dArr;"],[0,"&DoubleLeftRightArrow;"],[0,"&DoubleUpDownArrow;"],[0,"&nwArr;"],[0,"&neArr;"],[0,"&seArr;"],[0,"&swArr;"],[0,"&lAarr;"],[0,"&rAarr;"],[1,"&zigrarr;"],[6,"&larrb;"],[0,"&rarrb;"],[15,"&DownArrowUpArrow;"],[7,"&loarr;"],[0,"&roarr;"],[0,"&hoarr;"],[0,"&forall;"],[0,"&comp;"],[0,{v:"&part;",n:824,o:"&npart;"}],[0,"&exist;"],[0,"&nexist;"],[0,"&empty;"],[1,"&Del;"],[0,"&Element;"],[0,"&NotElement;"],[1,"&ni;"],[0,"&notni;"],[2,"&prod;"],[0,"&coprod;"],[0,"&sum;"],[0,"&minus;"],[0,"&MinusPlus;"],[0,"&dotplus;"],[1,"&Backslash;"],[0,"&lowast;"],[0,"&compfn;"],[1,"&radic;"],[2,"&prop;"],[0,"&infin;"],[0,"&angrt;"],[0,{v:"&ang;",n:8402,o:"&nang;"}],[0,"&angmsd;"],[0,"&angsph;"],[0,"&mid;"],[0,"&nmid;"],[0,"&DoubleVerticalBar;"],[0,"&NotDoubleVerticalBar;"],[0,"&and;"],[0,"&or;"],[0,{v:"&cap;",n:65024,o:"&caps;"}],[0,{v:"&cup;",n:65024,o:"&cups;"}],[0,"&int;"],[0,"&Int;"],[0,"&iiint;"],[0,"&conint;"],[0,"&Conint;"],[0,"&Cconint;"],[0,"&cwint;"],[0,"&ClockwiseContourIntegral;"],[0,"&awconint;"],[0,"&there4;"],[0,"&becaus;"],[0,"&ratio;"],[0,"&Colon;"],[0,"&dotminus;"],[1,"&mDDot;"],[0,"&homtht;"],[0,{v:"&sim;",n:8402,o:"&nvsim;"}],[0,{v:"&backsim;",n:817,o:"&race;"}],[0,{v:"&ac;",n:819,o:"&acE;"}],[0,"&acd;"],[0,"&VerticalTilde;"],[0,"&NotTilde;"],[0,{v:"&eqsim;",n:824,o:"&nesim;"}],[0,"&sime;"],[0,"&NotTildeEqual;"],[0,"&cong;"],[0,"&simne;"],[0,"&ncong;"],[0,"&ap;"],[0,"&nap;"],[0,"&ape;"],[0,{v:"&apid;",n:824,o:"&napid;"}],[0,"&backcong;"],[0,{v:"&asympeq;",n:8402,o:"&nvap;"}],[0,{v:"&bump;",n:824,o:"&nbump;"}],[0,{v:"&bumpe;",n:824,o:"&nbumpe;"}],[0,{v:"&doteq;",n:824,o:"&nedot;"}],[0,"&doteqdot;"],[0,"&efDot;"],[0,"&erDot;"],[0,"&Assign;"],[0,"&ecolon;"],[0,"&ecir;"],[0,"&circeq;"],[1,"&wedgeq;"],[0,"&veeeq;"],[1,"&triangleq;"],[2,"&equest;"],[0,"&ne;"],[0,{v:"&Congruent;",n:8421,o:"&bnequiv;"}],[0,"&nequiv;"],[1,{v:"&le;",n:8402,o:"&nvle;"}],[0,{v:"&ge;",n:8402,o:"&nvge;"}],[0,{v:"&lE;",n:824,o:"&nlE;"}],[0,{v:"&gE;",n:824,o:"&ngE;"}],[0,{v:"&lnE;",n:65024,o:"&lvertneqq;"}],[0,{v:"&gnE;",n:65024,o:"&gvertneqq;"}],[0,{v:"&ll;",n:new Map(ut([[824,"&nLtv;"],[7577,"&nLt;"]]))}],[0,{v:"&gg;",n:new Map(ut([[824,"&nGtv;"],[7577,"&nGt;"]]))}],[0,"&between;"],[0,"&NotCupCap;"],[0,"&nless;"],[0,"&ngt;"],[0,"&nle;"],[0,"&nge;"],[0,"&lesssim;"],[0,"&GreaterTilde;"],[0,"&nlsim;"],[0,"&ngsim;"],[0,"&LessGreater;"],[0,"&gl;"],[0,"&NotLessGreater;"],[0,"&NotGreaterLess;"],[0,"&pr;"],[0,"&sc;"],[0,"&prcue;"],[0,"&sccue;"],[0,"&PrecedesTilde;"],[0,{v:"&scsim;",n:824,o:"&NotSucceedsTilde;"}],[0,"&NotPrecedes;"],[0,"&NotSucceeds;"],[0,{v:"&sub;",n:8402,o:"&NotSubset;"}],[0,{v:"&sup;",n:8402,o:"&NotSuperset;"}],[0,"&nsub;"],[0,"&nsup;"],[0,"&sube;"],[0,"&supe;"],[0,"&NotSubsetEqual;"],[0,"&NotSupersetEqual;"],[0,{v:"&subne;",n:65024,o:"&varsubsetneq;"}],[0,{v:"&supne;",n:65024,o:"&varsupsetneq;"}],[1,"&cupdot;"],[0,"&UnionPlus;"],[0,{v:"&sqsub;",n:824,o:"&NotSquareSubset;"}],[0,{v:"&sqsup;",n:824,o:"&NotSquareSuperset;"}],[0,"&sqsube;"],[0,"&sqsupe;"],[0,{v:"&sqcap;",n:65024,o:"&sqcaps;"}],[0,{v:"&sqcup;",n:65024,o:"&sqcups;"}],[0,"&CirclePlus;"],[0,"&CircleMinus;"],[0,"&CircleTimes;"],[0,"&osol;"],[0,"&CircleDot;"],[0,"&circledcirc;"],[0,"&circledast;"],[1,"&circleddash;"],[0,"&boxplus;"],[0,"&boxminus;"],[0,"&boxtimes;"],[0,"&dotsquare;"],[0,"&RightTee;"],[0,"&dashv;"],[0,"&DownTee;"],[0,"&bot;"],[1,"&models;"],[0,"&DoubleRightTee;"],[0,"&Vdash;"],[0,"&Vvdash;"],[0,"&VDash;"],[0,"&nvdash;"],[0,"&nvDash;"],[0,"&nVdash;"],[0,"&nVDash;"],[0,"&prurel;"],[1,"&LeftTriangle;"],[0,"&RightTriangle;"],[0,{v:"&LeftTriangleEqual;",n:8402,o:"&nvltrie;"}],[0,{v:"&RightTriangleEqual;",n:8402,o:"&nvrtrie;"}],[0,"&origof;"],[0,"&imof;"],[0,"&multimap;"],[0,"&hercon;"],[0,"&intcal;"],[0,"&veebar;"],[1,"&barvee;"],[0,"&angrtvb;"],[0,"&lrtri;"],[0,"&bigwedge;"],[0,"&bigvee;"],[0,"&bigcap;"],[0,"&bigcup;"],[0,"&diam;"],[0,"&sdot;"],[0,"&sstarf;"],[0,"&divideontimes;"],[0,"&bowtie;"],[0,"&ltimes;"],[0,"&rtimes;"],[0,"&leftthreetimes;"],[0,"&rightthreetimes;"],[0,"&backsimeq;"],[0,"&curlyvee;"],[0,"&curlywedge;"],[0,"&Sub;"],[0,"&Sup;"],[0,"&Cap;"],[0,"&Cup;"],[0,"&fork;"],[0,"&epar;"],[0,"&lessdot;"],[0,"&gtdot;"],[0,{v:"&Ll;",n:824,o:"&nLl;"}],[0,{v:"&Gg;",n:824,o:"&nGg;"}],[0,{v:"&leg;",n:65024,o:"&lesg;"}],[0,{v:"&gel;",n:65024,o:"&gesl;"}],[2,"&cuepr;"],[0,"&cuesc;"],[0,"&NotPrecedesSlantEqual;"],[0,"&NotSucceedsSlantEqual;"],[0,"&NotSquareSubsetEqual;"],[0,"&NotSquareSupersetEqual;"],[2,"&lnsim;"],[0,"&gnsim;"],[0,"&precnsim;"],[0,"&scnsim;"],[0,"&nltri;"],[0,"&NotRightTriangle;"],[0,"&nltrie;"],[0,"&NotRightTriangleEqual;"],[0,"&vellip;"],[0,"&ctdot;"],[0,"&utdot;"],[0,"&dtdot;"],[0,"&disin;"],[0,"&isinsv;"],[0,"&isins;"],[0,{v:"&isindot;",n:824,o:"&notindot;"}],[0,"&notinvc;"],[0,"&notinvb;"],[1,{v:"&isinE;",n:824,o:"&notinE;"}],[0,"&nisd;"],[0,"&xnis;"],[0,"&nis;"],[0,"&notnivc;"],[0,"&notnivb;"],[6,"&barwed;"],[0,"&Barwed;"],[1,"&lceil;"],[0,"&rceil;"],[0,"&LeftFloor;"],[0,"&rfloor;"],[0,"&drcrop;"],[0,"&dlcrop;"],[0,"&urcrop;"],[0,"&ulcrop;"],[0,"&bnot;"],[1,"&profline;"],[0,"&profsurf;"],[1,"&telrec;"],[0,"&target;"],[5,"&ulcorn;"],[0,"&urcorn;"],[0,"&dlcorn;"],[0,"&drcorn;"],[2,"&frown;"],[0,"&smile;"],[9,"&cylcty;"],[0,"&profalar;"],[7,"&topbot;"],[6,"&ovbar;"],[1,"&solbar;"],[60,"&angzarr;"],[51,"&lmoustache;"],[0,"&rmoustache;"],[2,"&OverBracket;"],[0,"&bbrk;"],[0,"&bbrktbrk;"],[37,"&OverParenthesis;"],[0,"&UnderParenthesis;"],[0,"&OverBrace;"],[0,"&UnderBrace;"],[2,"&trpezium;"],[4,"&elinters;"],[59,"&blank;"],[164,"&circledS;"],[55,"&boxh;"],[1,"&boxv;"],[9,"&boxdr;"],[3,"&boxdl;"],[3,"&boxur;"],[3,"&boxul;"],[3,"&boxvr;"],[7,"&boxvl;"],[7,"&boxhd;"],[7,"&boxhu;"],[7,"&boxvh;"],[19,"&boxH;"],[0,"&boxV;"],[0,"&boxdR;"],[0,"&boxDr;"],[0,"&boxDR;"],[0,"&boxdL;"],[0,"&boxDl;"],[0,"&boxDL;"],[0,"&boxuR;"],[0,"&boxUr;"],[0,"&boxUR;"],[0,"&boxuL;"],[0,"&boxUl;"],[0,"&boxUL;"],[0,"&boxvR;"],[0,"&boxVr;"],[0,"&boxVR;"],[0,"&boxvL;"],[0,"&boxVl;"],[0,"&boxVL;"],[0,"&boxHd;"],[0,"&boxhD;"],[0,"&boxHD;"],[0,"&boxHu;"],[0,"&boxhU;"],[0,"&boxHU;"],[0,"&boxvH;"],[0,"&boxVh;"],[0,"&boxVH;"],[19,"&uhblk;"],[3,"&lhblk;"],[3,"&block;"],[8,"&blk14;"],[0,"&blk12;"],[0,"&blk34;"],[13,"&square;"],[8,"&blacksquare;"],[0,"&EmptyVerySmallSquare;"],[1,"&rect;"],[0,"&marker;"],[2,"&fltns;"],[1,"&bigtriangleup;"],[0,"&blacktriangle;"],[0,"&triangle;"],[2,"&blacktriangleright;"],[0,"&rtri;"],[3,"&bigtriangledown;"],[0,"&blacktriangledown;"],[0,"&dtri;"],[2,"&blacktriangleleft;"],[0,"&ltri;"],[6,"&loz;"],[0,"&cir;"],[32,"&tridot;"],[2,"&bigcirc;"],[8,"&ultri;"],[0,"&urtri;"],[0,"&lltri;"],[0,"&EmptySmallSquare;"],[0,"&FilledSmallSquare;"],[8,"&bigstar;"],[0,"&star;"],[7,"&phone;"],[49,"&female;"],[1,"&male;"],[29,"&spades;"],[2,"&clubs;"],[1,"&hearts;"],[0,"&diamondsuit;"],[3,"&sung;"],[2,"&flat;"],[0,"&natural;"],[0,"&sharp;"],[163,"&check;"],[3,"&cross;"],[8,"&malt;"],[21,"&sext;"],[33,"&VerticalSeparator;"],[25,"&lbbrk;"],[0,"&rbbrk;"],[84,"&bsolhsub;"],[0,"&suphsol;"],[28,"&LeftDoubleBracket;"],[0,"&RightDoubleBracket;"],[0,"&lang;"],[0,"&rang;"],[0,"&Lang;"],[0,"&Rang;"],[0,"&loang;"],[0,"&roang;"],[7,"&longleftarrow;"],[0,"&longrightarrow;"],[0,"&longleftrightarrow;"],[0,"&DoubleLongLeftArrow;"],[0,"&DoubleLongRightArrow;"],[0,"&DoubleLongLeftRightArrow;"],[1,"&longmapsto;"],[2,"&dzigrarr;"],[258,"&nvlArr;"],[0,"&nvrArr;"],[0,"&nvHarr;"],[0,"&Map;"],[6,"&lbarr;"],[0,"&bkarow;"],[0,"&lBarr;"],[0,"&dbkarow;"],[0,"&drbkarow;"],[0,"&DDotrahd;"],[0,"&UpArrowBar;"],[0,"&DownArrowBar;"],[2,"&Rarrtl;"],[2,"&latail;"],[0,"&ratail;"],[0,"&lAtail;"],[0,"&rAtail;"],[0,"&larrfs;"],[0,"&rarrfs;"],[0,"&larrbfs;"],[0,"&rarrbfs;"],[2,"&nwarhk;"],[0,"&nearhk;"],[0,"&hksearow;"],[0,"&hkswarow;"],[0,"&nwnear;"],[0,"&nesear;"],[0,"&seswar;"],[0,"&swnwar;"],[8,{v:"&rarrc;",n:824,o:"&nrarrc;"}],[1,"&cudarrr;"],[0,"&ldca;"],[0,"&rdca;"],[0,"&cudarrl;"],[0,"&larrpl;"],[2,"&curarrm;"],[0,"&cularrp;"],[7,"&rarrpl;"],[2,"&harrcir;"],[0,"&Uarrocir;"],[0,"&lurdshar;"],[0,"&ldrushar;"],[2,"&LeftRightVector;"],[0,"&RightUpDownVector;"],[0,"&DownLeftRightVector;"],[0,"&LeftUpDownVector;"],[0,"&LeftVectorBar;"],[0,"&RightVectorBar;"],[0,"&RightUpVectorBar;"],[0,"&RightDownVectorBar;"],[0,"&DownLeftVectorBar;"],[0,"&DownRightVectorBar;"],[0,"&LeftUpVectorBar;"],[0,"&LeftDownVectorBar;"],[0,"&LeftTeeVector;"],[0,"&RightTeeVector;"],[0,"&RightUpTeeVector;"],[0,"&RightDownTeeVector;"],[0,"&DownLeftTeeVector;"],[0,"&DownRightTeeVector;"],[0,"&LeftUpTeeVector;"],[0,"&LeftDownTeeVector;"],[0,"&lHar;"],[0,"&uHar;"],[0,"&rHar;"],[0,"&dHar;"],[0,"&luruhar;"],[0,"&ldrdhar;"],[0,"&ruluhar;"],[0,"&rdldhar;"],[0,"&lharul;"],[0,"&llhard;"],[0,"&rharul;"],[0,"&lrhard;"],[0,"&udhar;"],[0,"&duhar;"],[0,"&RoundImplies;"],[0,"&erarr;"],[0,"&simrarr;"],[0,"&larrsim;"],[0,"&rarrsim;"],[0,"&rarrap;"],[0,"&ltlarr;"],[1,"&gtrarr;"],[0,"&subrarr;"],[1,"&suplarr;"],[0,"&lfisht;"],[0,"&rfisht;"],[0,"&ufisht;"],[0,"&dfisht;"],[5,"&lopar;"],[0,"&ropar;"],[4,"&lbrke;"],[0,"&rbrke;"],[0,"&lbrkslu;"],[0,"&rbrksld;"],[0,"&lbrksld;"],[0,"&rbrkslu;"],[0,"&langd;"],[0,"&rangd;"],[0,"&lparlt;"],[0,"&rpargt;"],[0,"&gtlPar;"],[0,"&ltrPar;"],[3,"&vzigzag;"],[1,"&vangrt;"],[0,"&angrtvbd;"],[6,"&ange;"],[0,"&range;"],[0,"&dwangle;"],[0,"&uwangle;"],[0,"&angmsdaa;"],[0,"&angmsdab;"],[0,"&angmsdac;"],[0,"&angmsdad;"],[0,"&angmsdae;"],[0,"&angmsdaf;"],[0,"&angmsdag;"],[0,"&angmsdah;"],[0,"&bemptyv;"],[0,"&demptyv;"],[0,"&cemptyv;"],[0,"&raemptyv;"],[0,"&laemptyv;"],[0,"&ohbar;"],[0,"&omid;"],[0,"&opar;"],[1,"&operp;"],[1,"&olcross;"],[0,"&odsold;"],[1,"&olcir;"],[0,"&ofcir;"],[0,"&olt;"],[0,"&ogt;"],[0,"&cirscir;"],[0,"&cirE;"],[0,"&solb;"],[0,"&bsolb;"],[3,"&boxbox;"],[3,"&trisb;"],[0,"&rtriltri;"],[0,{v:"&LeftTriangleBar;",n:824,o:"&NotLeftTriangleBar;"}],[0,{v:"&RightTriangleBar;",n:824,o:"&NotRightTriangleBar;"}],[11,"&iinfin;"],[0,"&infintie;"],[0,"&nvinfin;"],[4,"&eparsl;"],[0,"&smeparsl;"],[0,"&eqvparsl;"],[5,"&blacklozenge;"],[8,"&RuleDelayed;"],[1,"&dsol;"],[9,"&bigodot;"],[0,"&bigoplus;"],[0,"&bigotimes;"],[1,"&biguplus;"],[1,"&bigsqcup;"],[5,"&iiiint;"],[0,"&fpartint;"],[2,"&cirfnint;"],[0,"&awint;"],[0,"&rppolint;"],[0,"&scpolint;"],[0,"&npolint;"],[0,"&pointint;"],[0,"&quatint;"],[0,"&intlarhk;"],[10,"&pluscir;"],[0,"&plusacir;"],[0,"&simplus;"],[0,"&plusdu;"],[0,"&plussim;"],[0,"&plustwo;"],[1,"&mcomma;"],[0,"&minusdu;"],[2,"&loplus;"],[0,"&roplus;"],[0,"&Cross;"],[0,"&timesd;"],[0,"&timesbar;"],[1,"&smashp;"],[0,"&lotimes;"],[0,"&rotimes;"],[0,"&otimesas;"],[0,"&Otimes;"],[0,"&odiv;"],[0,"&triplus;"],[0,"&triminus;"],[0,"&tritime;"],[0,"&intprod;"],[2,"&amalg;"],[0,"&capdot;"],[1,"&ncup;"],[0,"&ncap;"],[0,"&capand;"],[0,"&cupor;"],[0,"&cupcap;"],[0,"&capcup;"],[0,"&cupbrcap;"],[0,"&capbrcup;"],[0,"&cupcup;"],[0,"&capcap;"],[0,"&ccups;"],[0,"&ccaps;"],[2,"&ccupssm;"],[2,"&And;"],[0,"&Or;"],[0,"&andand;"],[0,"&oror;"],[0,"&orslope;"],[0,"&andslope;"],[1,"&andv;"],[0,"&orv;"],[0,"&andd;"],[0,"&ord;"],[1,"&wedbar;"],[6,"&sdote;"],[3,"&simdot;"],[2,{v:"&congdot;",n:824,o:"&ncongdot;"}],[0,"&easter;"],[0,"&apacir;"],[0,{v:"&apE;",n:824,o:"&napE;"}],[0,"&eplus;"],[0,"&pluse;"],[0,"&Esim;"],[0,"&Colone;"],[0,"&Equal;"],[1,"&ddotseq;"],[0,"&equivDD;"],[0,"&ltcir;"],[0,"&gtcir;"],[0,"&ltquest;"],[0,"&gtquest;"],[0,{v:"&leqslant;",n:824,o:"&nleqslant;"}],[0,{v:"&geqslant;",n:824,o:"&ngeqslant;"}],[0,"&lesdot;"],[0,"&gesdot;"],[0,"&lesdoto;"],[0,"&gesdoto;"],[0,"&lesdotor;"],[0,"&gesdotol;"],[0,"&lap;"],[0,"&gap;"],[0,"&lne;"],[0,"&gne;"],[0,"&lnap;"],[0,"&gnap;"],[0,"&lEg;"],[0,"&gEl;"],[0,"&lsime;"],[0,"&gsime;"],[0,"&lsimg;"],[0,"&gsiml;"],[0,"&lgE;"],[0,"&glE;"],[0,"&lesges;"],[0,"&gesles;"],[0,"&els;"],[0,"&egs;"],[0,"&elsdot;"],[0,"&egsdot;"],[0,"&el;"],[0,"&eg;"],[2,"&siml;"],[0,"&simg;"],[0,"&simlE;"],[0,"&simgE;"],[0,{v:"&LessLess;",n:824,o:"&NotNestedLessLess;"}],[0,{v:"&GreaterGreater;",n:824,o:"&NotNestedGreaterGreater;"}],[1,"&glj;"],[0,"&gla;"],[0,"&ltcc;"],[0,"&gtcc;"],[0,"&lescc;"],[0,"&gescc;"],[0,"&smt;"],[0,"&lat;"],[0,{v:"&smte;",n:65024,o:"&smtes;"}],[0,{v:"&late;",n:65024,o:"&lates;"}],[0,"&bumpE;"],[0,{v:"&PrecedesEqual;",n:824,o:"&NotPrecedesEqual;"}],[0,{v:"&sce;",n:824,o:"&NotSucceedsEqual;"}],[2,"&prE;"],[0,"&scE;"],[0,"&precneqq;"],[0,"&scnE;"],[0,"&prap;"],[0,"&scap;"],[0,"&precnapprox;"],[0,"&scnap;"],[0,"&Pr;"],[0,"&Sc;"],[0,"&subdot;"],[0,"&supdot;"],[0,"&subplus;"],[0,"&supplus;"],[0,"&submult;"],[0,"&supmult;"],[0,"&subedot;"],[0,"&supedot;"],[0,{v:"&subE;",n:824,o:"&nsubE;"}],[0,{v:"&supE;",n:824,o:"&nsupE;"}],[0,"&subsim;"],[0,"&supsim;"],[2,{v:"&subnE;",n:65024,o:"&varsubsetneqq;"}],[0,{v:"&supnE;",n:65024,o:"&varsupsetneqq;"}],[2,"&csub;"],[0,"&csup;"],[0,"&csube;"],[0,"&csupe;"],[0,"&subsup;"],[0,"&supsub;"],[0,"&subsub;"],[0,"&supsup;"],[0,"&suphsub;"],[0,"&supdsub;"],[0,"&forkv;"],[0,"&topfork;"],[0,"&mlcp;"],[8,"&Dashv;"],[1,"&Vdashl;"],[0,"&Barv;"],[0,"&vBar;"],[0,"&vBarv;"],[1,"&Vbar;"],[0,"&Not;"],[0,"&bNot;"],[0,"&rnmid;"],[0,"&cirmid;"],[0,"&midcir;"],[0,"&topcir;"],[0,"&nhpar;"],[0,"&parsim;"],[9,{v:"&parsl;",n:8421,o:"&nparsl;"}],[44343,{n:new Map(ut([[56476,"&Ascr;"],[1,"&Cscr;"],[0,"&Dscr;"],[2,"&Gscr;"],[2,"&Jscr;"],[0,"&Kscr;"],[2,"&Nscr;"],[0,"&Oscr;"],[0,"&Pscr;"],[0,"&Qscr;"],[1,"&Sscr;"],[0,"&Tscr;"],[0,"&Uscr;"],[0,"&Vscr;"],[0,"&Wscr;"],[0,"&Xscr;"],[0,"&Yscr;"],[0,"&Zscr;"],[0,"&ascr;"],[0,"&bscr;"],[0,"&cscr;"],[0,"&dscr;"],[1,"&fscr;"],[1,"&hscr;"],[0,"&iscr;"],[0,"&jscr;"],[0,"&kscr;"],[0,"&lscr;"],[0,"&mscr;"],[0,"&nscr;"],[1,"&pscr;"],[0,"&qscr;"],[0,"&rscr;"],[0,"&sscr;"],[0,"&tscr;"],[0,"&uscr;"],[0,"&vscr;"],[0,"&wscr;"],[0,"&xscr;"],[0,"&yscr;"],[0,"&zscr;"],[52,"&Afr;"],[0,"&Bfr;"],[1,"&Dfr;"],[0,"&Efr;"],[0,"&Ffr;"],[0,"&Gfr;"],[2,"&Jfr;"],[0,"&Kfr;"],[0,"&Lfr;"],[0,"&Mfr;"],[0,"&Nfr;"],[0,"&Ofr;"],[0,"&Pfr;"],[0,"&Qfr;"],[1,"&Sfr;"],[0,"&Tfr;"],[0,"&Ufr;"],[0,"&Vfr;"],[0,"&Wfr;"],[0,"&Xfr;"],[0,"&Yfr;"],[1,"&afr;"],[0,"&bfr;"],[0,"&cfr;"],[0,"&dfr;"],[0,"&efr;"],[0,"&ffr;"],[0,"&gfr;"],[0,"&hfr;"],[0,"&ifr;"],[0,"&jfr;"],[0,"&kfr;"],[0,"&lfr;"],[0,"&mfr;"],[0,"&nfr;"],[0,"&ofr;"],[0,"&pfr;"],[0,"&qfr;"],[0,"&rfr;"],[0,"&sfr;"],[0,"&tfr;"],[0,"&ufr;"],[0,"&vfr;"],[0,"&wfr;"],[0,"&xfr;"],[0,"&yfr;"],[0,"&zfr;"],[0,"&Aopf;"],[0,"&Bopf;"],[1,"&Dopf;"],[0,"&Eopf;"],[0,"&Fopf;"],[0,"&Gopf;"],[1,"&Iopf;"],[0,"&Jopf;"],[0,"&Kopf;"],[0,"&Lopf;"],[0,"&Mopf;"],[1,"&Oopf;"],[3,"&Sopf;"],[0,"&Topf;"],[0,"&Uopf;"],[0,"&Vopf;"],[0,"&Wopf;"],[0,"&Xopf;"],[0,"&Yopf;"],[1,"&aopf;"],[0,"&bopf;"],[0,"&copf;"],[0,"&dopf;"],[0,"&eopf;"],[0,"&fopf;"],[0,"&gopf;"],[0,"&hopf;"],[0,"&iopf;"],[0,"&jopf;"],[0,"&kopf;"],[0,"&lopf;"],[0,"&mopf;"],[0,"&nopf;"],[0,"&oopf;"],[0,"&popf;"],[0,"&qopf;"],[0,"&ropf;"],[0,"&sopf;"],[0,"&topf;"],[0,"&uopf;"],[0,"&vopf;"],[0,"&wopf;"],[0,"&xopf;"],[0,"&yopf;"],[0,"&zopf;"]]))}],[8906,"&fflig;"],[0,"&filig;"],[0,"&fllig;"],[0,"&ffilig;"],[0,"&ffllig;"]]));var xu=/["&'<>$\x80-\uFFFF]/g,$i=new Map([[34,"&quot;"],[38,"&amp;"],[39,"&apos;"],[60,"&lt;"],[62,"&gt;"]]),Ci=String.prototype.codePointAt!=null?(e,t)=>e.codePointAt(t):(e,t)=>(e.charCodeAt(t)&64512)===55296?(e.charCodeAt(t)-55296)*1024+e.charCodeAt(t+1)-56320+65536:e.charCodeAt(t);function Ie(e){let t="",u=0,r;for(;(r=xu.exec(e))!==null;){let i=r.index,a=e.charCodeAt(i),n=$i.get(a);n!==void 0?(t+=e.substring(u,i)+n,u=i+1):(t+=`${e.substring(u,i)}&#x${Ci(e,i).toString(16)};`,u=xu.lastIndex+=+((a&64512)===55296))}return t+e.substr(u)}function wu(e,t){return function(r){let i,a=0,n="";for(;i=e.exec(r);)a!==i.index&&(n+=r.substring(a,i.index)),n+=t.get(i[0].charCodeAt(0)),a=i.index+1;return n+r.substring(a)}}var Bi=wu(/[&<>'"]/g,$i),rt=wu(/["&\u00A0]/g,new Map([[34,"&quot;"],[38,"&amp;"],[160,"&nbsp;"]])),it=wu(/[&<>\u00A0]/g,new Map([[38,"&amp;"],[60,"&lt;"],[62,"&gt;"],[160,"&nbsp;"]]));var Pi;(function(e){e[e.XML=0]="XML",e[e.HTML=1]="HTML"})(Pi||(Pi={}));var Oi;(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"})(Oi||(Oi={}));var Mi=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"].map(e=>[e.toLowerCase(),e])),Hi=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"].map(e=>[e.toLowerCase(),e]));var $s=new Set(["style","script","xmp","iframe","noembed","noframes","plaintext","noscript"]);function Cs(e){return e.replace(/"/g,"&quot;")}function Bs(e,t){var u;if(!e)return;let r=((u=t.encodeEntities)!==null&&u!==void 0?u:t.decodeEntities)===!1?Cs:t.xmlMode||t.encodeEntities!=="utf8"?Ie:rt;return Object.keys(e).map(i=>{var a,n;let s=(a=e[i])!==null&&a!==void 0?a:"";return t.xmlMode==="foreign"&&(i=(n=Hi.get(i))!==null&&n!==void 0?n:i),!t.emptyAttrs&&!t.xmlMode&&s===""?i:`${i}="${r(s)}"`}).join(" ")}var Ui=new Set(["area","base","basefont","br","col","command","embed","frame","hr","img","input","isindex","keygen","link","meta","param","source","track","wbr"]);function Ne(e,t={}){let u="length"in e?e:[e],r="";for(let i=0;i<u.length;i++)r+=Ps(u[i],t);return r}function Ps(e,t){switch(e.type){case Vr:return Ne(e.children,t);case Zr:case Gr:return Ms(e);case zr:return Fs(e);case Xr:return Us(e);case Kr:case Jr:case Yr:return qs(e,t);case Wr:return Hs(e,t)}}var Os=new Set(["mi","mo","mn","ms","mtext","annotation-xml","foreignObject","desc","title"]),Rs=new Set(["svg","math"]);function qs(e,t){var u;t.xmlMode==="foreign"&&(e.name=(u=Mi.get(e.name))!==null&&u!==void 0?u:e.name,e.parent&&Os.has(e.parent.name)&&(t={...t,xmlMode:!1})),!t.xmlMode&&Rs.has(e.name)&&(t={...t,xmlMode:"foreign"});let r=`<${e.name}`,i=Bs(e.attribs,t);return i&&(r+=` ${i}`),e.children.length===0&&(t.xmlMode?t.selfClosingTags!==!1:t.selfClosingTags&&Ui.has(e.name))?(t.xmlMode||(r+=" "),r+="/>"):(r+=">",e.children.length>0&&(r+=Ne(e.children,t)),(t.xmlMode||!Ui.has(e.name))&&(r+=`</${e.name}>`)),r}function Ms(e){return`<${e.data}>`}function Hs(e,t){var u;let r=e.data||"";return((u=t.encodeEntities)!==null&&u!==void 0?u:t.decodeEntities)!==!1&&!(!t.xmlMode&&e.parent&&$s.has(e.parent.name))&&(r=t.xmlMode||t.encodeEntities!=="utf8"?Ie(r):it(r)),r}function Us(e){return`<![CDATA[${e.children[0].data}]]>`}function Fs(e){return`<!--${e.data}-->`}var Fi;(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"})(Fi||(Fi={}));function ji(e,t){let u=new re(void 0,t);return new _e(u,t).end(e),u.root}var _u=Xu(zi(),1);function Iu(e,t,u=()=>{}){if(e===void 0){let r=function(...i){return t(r,...i)};return r}return e>=0?function(...r){return t(Iu(e-1,t,u),...r)}:u}function Zi(e,t){let u=0,r=e.length;for(;u<r&&e[u]===t;)++u;for(;r>u&&e[r-1]===t;)--r;return u>0||r<e.length?e.substring(u,r):e}function io(e,t){let u=e.length;for(;u>0&&e[u-1]===t;)--u;return u<e.length?e.substring(0,u):e}function ao(e){return e.replace(/[\s\S]/g,t=>"\\u"+t.charCodeAt().toString(16).padStart(4,"0"))}function Qi(e,t){let u=new Map;for(let r=e.length;r-- >0;){let i=e[r],a=t(i);u.set(a,u.has(a)?(0,_u.default)(i,u.get(a),{arrayMerge:no}):i)}return[...u.values()].reverse()}var no=(e,t,u)=>[...t];function he(e,t){for(let u of t){if(!e)return;e=e[u]}return e}function Ki(e,t="a",u=26){let r=[];do e-=1,r.push(e%u),e=e/u>>0;while(e>0);let i=t.charCodeAt(0);return r.reverse().map(a=>String.fromCharCode(i+a)).join("")}var ku=["I","X","C","M"],Ji=["V","L","D"];function Yi(e){return[...e+""].map(t=>+t).reverse().map((t,u)=>t%5<4?(t<5?"":Ji[u])+ku[u].repeat(t%5):ku[u]+(t<5?Ji[u]:ku[u+1])).reverse().join("")}var st=class{constructor(t,u=void 0){this.lines=[],this.nextLineWords=[],this.maxLineLength=u||t.wordwrap||Number.MAX_VALUE,this.nextLineAvailableChars=this.maxLineLength,this.wrapCharacters=he(t,["longWordSplit","wrapCharacters"])||[],this.forceWrapOnLimit=he(t,["longWordSplit","forceWrapOnLimit"])||!1,this.stashedSpace=!1,this.wordBreakOpportunity=!1}pushWord(t,u=!1){this.nextLineAvailableChars<=0&&!u&&this.startNewLine();let r=this.nextLineWords.length===0,i=t.length+(r?0:1);if(i<=this.nextLineAvailableChars||u)this.nextLineWords.push(t),this.nextLineAvailableChars-=i;else{let[a,...n]=this.splitLongWord(t);r||this.startNewLine(),this.nextLineWords.push(a),this.nextLineAvailableChars-=a.length;for(let s of n)this.startNewLine(),this.nextLineWords.push(s),this.nextLineAvailableChars-=s.length}}popWord(){let t=this.nextLineWords.pop();if(t!==void 0){let u=this.nextLineWords.length===0,r=t.length+(u?0:1);this.nextLineAvailableChars+=r}return t}concatWord(t,u=!1){if(this.wordBreakOpportunity&&t.length>this.nextLineAvailableChars)this.pushWord(t,u),this.wordBreakOpportunity=!1;else{let r=this.popWord();this.pushWord(r?r.concat(t):t,u)}}startNewLine(t=1){this.lines.push(this.nextLineWords),t>1&&this.lines.push(...Array.from({length:t-1},()=>[])),this.nextLineWords=[],this.nextLineAvailableChars=this.maxLineLength}isEmpty(){return this.lines.length===0&&this.nextLineWords.length===0}clear(){this.lines.length=0,this.nextLineWords.length=0,this.nextLineAvailableChars=this.maxLineLength}toString(){return[...this.lines,this.nextLineWords].map(t=>t.join(" ")).join(`
8
- `)}splitLongWord(t){let u=[],r=0;for(;t.length>this.maxLineLength;){let i=t.substring(0,this.maxLineLength),a=t.substring(this.maxLineLength),n=i.lastIndexOf(this.wrapCharacters[r]);if(n>-1)t=i.substring(n+1)+a,u.push(i.substring(0,n+1));else if(r++,r<this.wrapCharacters.length)t=i+a;else{if(this.forceWrapOnLimit){if(u.push(i),t=a,t.length>this.maxLineLength)continue}else t=i+a;break}}return u.push(t),u}},ee=class{constructor(t=null){this.next=t}getRoot(){return this.next?this.next:this}},R=class extends ee{constructor(t,u=null,r=1,i=void 0){super(u),this.leadingLineBreaks=r,this.inlineTextBuilder=new st(t,i),this.rawText="",this.stashedLineBreaks=0,this.isPre=u&&u.isPre,this.isNoWrap=u&&u.isNoWrap}},ot=class extends R{constructor(t,u=null,{interRowLineBreaks:r=1,leadingLineBreaks:i=2,maxLineLength:a=void 0,maxPrefixLength:n=0,prefixAlign:s="left"}={}){super(t,u,i,a),this.maxPrefixLength=n,this.prefixAlign=s,this.interRowLineBreaks=r}},K=class extends R{constructor(t,u=null,{leadingLineBreaks:r=1,maxLineLength:i=void 0,prefix:a=""}={}){super(t,u,r,i),this.prefix=a}},ct=class extends ee{constructor(t=null){super(t),this.rows=[],this.isPre=t&&t.isPre,this.isNoWrap=t&&t.isNoWrap}},lt=class extends ee{constructor(t=null){super(t),this.cells=[],this.isPre=t&&t.isPre,this.isNoWrap=t&&t.isNoWrap}},J=class extends ee{constructor(t,u=null,r=void 0){super(u),this.inlineTextBuilder=new st(t,r),this.rawText="",this.stashedLineBreaks=0,this.isPre=u&&u.isPre,this.isNoWrap=u&&u.isNoWrap}},Su=class extends ee{constructor(t=null,u){super(t),this.transform=u}};function so(e){return[...e].map(t=>"\\u"+t.charCodeAt(0).toString(16).padStart(4,"0")).join("")}var Tu=class{constructor(t){this.whitespaceChars=t.preserveNewlines?t.whitespaceCharacters.replace(/\n/g,""):t.whitespaceCharacters;let u=so(this.whitespaceChars);if(this.leadingWhitespaceRe=new RegExp(`^[${u}]`),this.trailingWhitespaceRe=new RegExp(`[${u}]$`),this.allWhitespaceOrEmptyRe=new RegExp(`^[${u}]*$`),this.newlineOrNonWhitespaceRe=new RegExp(`(\\n|[^\\n${u}])`,"g"),this.newlineOrNonNewlineStringRe=new RegExp("(\\n|[^\\n]+)","g"),t.preserveNewlines){let r=new RegExp(`\\n|[^\\n${u}]+`,"gm");this.shrinkWrapAdd=function(i,a,n=c=>c,s=!1){if(!i)return;let c=a.stashedSpace,l=!1,f=r.exec(i);if(f)for(l=!0,f[0]===`
3
+ import{c as Xt,f as Mr}from"./chunk-JQ2K2XJ4.js";import{D as Dr,E as pe,K as $r,N as Cr,O as Br,Oa as qr,P as Pr,Q as Or,R as Rr,b as Yt}from"./chunk-ID5JNGPZ.js";import{a as Pe,c as Qu,d as Nr,e as Jt,f as Me,g as He,h as Ue}from"./chunk-AEEQXF3N.js";import{A as _r,B as Lr,a as tr,b as ur,c as rr,d as ir,e as ar,f as nr,g as sr,h as or,i as cr,j as lr,k as dr,l as fr,m as hr,n as pr,o as mr,p as gr,q as br,r as xr,s as wr,t as yr,u as vr,v as kr,w as Sr,x as Tr,y as Er,z as Ar}from"./chunk-VLVDPV2E.js";import{a as Gt,b as Ir,d as zt,g as Kt,h as qe}from"./chunk-J4TZ3OFZ.js";import{a as Oe,b as O,c as Vt,d as Wt,f as er,n as Re}from"./chunk-CSHDULY4.js";import{a as S}from"./chunk-NLZ3YJX4.js";import{a as o}from"./chunk-EEEG4LZX.js";import{c as jt}from"./chunk-C6BVAOFE.js";import{a as sn,c as X,d as Zu}from"./chunk-CSINHOOD.js";var Ki=X((vl,zi)=>{"use strict";var Gs=function(t){return zs(t)&&!Ks(t)};function zs(e){return!!e&&typeof e=="object"}function Ks(e){var t=Object.prototype.toString.call(e);return t==="[object RegExp]"||t==="[object Date]"||Xs(e)}var Js=typeof Symbol=="function"&&Symbol.for,Ys=Js?Symbol.for("react.element"):60103;function Xs(e){return e.$$typeof===Ys}function Zs(e){return Array.isArray(e)?[]:{}}function De(e,t){return t.clone!==!1&&t.isMergeableObject(e)?fe(Zs(e),e,t):e}function Qs(e,t,u){return e.concat(t).map(function(r){return De(r,u)})}function eo(e,t){if(!t.customMerge)return fe;var u=t.customMerge(e);return typeof u=="function"?u:fe}function to(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(function(t){return Object.propertyIsEnumerable.call(e,t)}):[]}function Wi(e){return Object.keys(e).concat(to(e))}function Gi(e,t){try{return t in e}catch{return!1}}function uo(e,t){return Gi(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))}function ro(e,t,u){var r={};return u.isMergeableObject(e)&&Wi(e).forEach(function(i){r[i]=De(e[i],u)}),Wi(t).forEach(function(i){uo(e,i)||(Gi(e,i)&&u.isMergeableObject(t[i])?r[i]=eo(i,u)(e[i],t[i],u):r[i]=De(t[i],u))}),r}function fe(e,t,u){u=u||{},u.arrayMerge=u.arrayMerge||Qs,u.isMergeableObject=u.isMergeableObject||Gs,u.cloneUnlessOtherwiseSpecified=De;var r=Array.isArray(t),i=Array.isArray(e),a=r===i;return a?r?u.arrayMerge(e,t,u):ro(e,t,u):De(t,u)}fe.all=function(t,u){if(!Array.isArray(t))throw new Error("first argument should be an array");return t.reduce(function(r,i){return fe(r,i,u)},{})};var io=fe;zi.exports=io});var Sa=X(Et=>{"use strict";Object.defineProperty(Et,"__esModule",{value:!0});function x0(e){return e&&typeof e=="object"&&"default"in e?e.default:e}var ka=x0(sn("crypto")),w0=(e,t,u)=>ka.createHmac(e,Buffer.from(t,"hex")).update(Buffer.from(u,"hex")).digest().toString("hex"),y0=(e,t)=>ka.randomBytes(e).toString(t);Et.createDigest=w0;Et.createRandomBytes=y0});var Ea=X($u=>{"use strict";var v0="ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",Ta=[255,255,26,27,28,29,30,31,255,255,255,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,255,255,255,255,255];function k0(e){var t=Math.floor(e.length/5);return e.length%5===0?t:t+1}$u.encode=function(e){Buffer.isBuffer(e)||(e=new Buffer(e));for(var t=0,u=0,r=0,i=0,a=new Buffer(k0(e)*8);t<e.length;){var n=e[t];r>3?(i=n&255>>r,r=(r+5)%8,i=i<<r|(t+1<e.length?e[t+1]:0)>>8-r,t++):(i=n>>8-(r+5)&31,r=(r+5)%8,r===0&&t++),a[u]=v0.charCodeAt(i),u++}for(t=u;t<a.length;t++)a[t]=61;return a};$u.decode=function(e){var t=0,u=0,r,i=0;Buffer.isBuffer(e)||(e=new Buffer(e));for(var a=new Buffer(Math.ceil(e.length*5/8)),n=0;n<e.length&&e[n]!==61;n++){var s=e[n]-48;if(s<Ta.length)u=Ta[s],t<=3?(t=(t+5)%8,t===0?(r|=u,a[i]=r,i++,r=0):r|=255&u<<8-t):(t=(t+5)%8,r|=255&u>>>t,a[i]=r,i++,r=255&u<<8-t);else throw new Error("Invalid input - it is not base32 encoded string")}return a.slice(0,i)}});var _a=X(Cu=>{"use strict";var Aa=Ea();Cu.encode=Aa.encode;Cu.decode=Aa.decode});var Ia=X(At=>{"use strict";Object.defineProperty(At,"__esModule",{value:!0});function S0(e){return e&&typeof e=="object"&&"default"in e?e.default:e}var La=S0(_a()),T0=(e,t)=>La.decode(e).toString(t),E0=(e,t)=>La.encode(Buffer.from(e,t).toString("ascii")).toString().replace(/=/g,"");At.keyDecoder=T0;At.keyEncoder=E0});var Xa=X(m=>{"use strict";Object.defineProperty(m,"__esModule",{value:!0});function $t(e){return Object.keys(e).map(t=>e[t])}(function(e){e.SHA1="sha1",e.SHA256="sha256",e.SHA512="sha512"})(m.HashAlgorithms||(m.HashAlgorithms={}));var Lt=$t(m.HashAlgorithms);(function(e){e.ASCII="ascii",e.BASE64="base64",e.HEX="hex",e.LATIN1="latin1",e.UTF8="utf8"})(m.KeyEncodings||(m.KeyEncodings={}));var Bu=$t(m.KeyEncodings);(function(e){e.HOTP="hotp",e.TOTP="totp"})(m.Strategy||(m.Strategy={}));var Pu=$t(m.Strategy),Ct=()=>{throw new Error("Please provide an options.createDigest implementation.")};function qu(e){return/^(\d+)$/.test(e)}function Mu(e,t,u){return e.length>=t?e:`${Array(t+1).join(u)}${e}`.slice(-1*t)}function Hu(e){let t=`otpauth://${e.type}/{labelPrefix}:{accountName}?secret={secret}{query}`,u=[];if(Pu.indexOf(e.type)<0)throw new Error(`Expecting options.type to be one of ${Pu.join(", ")}. Received ${e.type}.`);if(e.type==="hotp"){if(e.counter==null||typeof e.counter!="number")throw new Error('Expecting options.counter to be a number when options.type is "hotp".');u.push(`&counter=${e.counter}`)}return e.type==="totp"&&e.step&&u.push(`&period=${e.step}`),e.digits&&u.push(`&digits=${e.digits}`),e.algorithm&&u.push(`&algorithm=${e.algorithm.toUpperCase()}`),e.issuer&&u.push(`&issuer=${encodeURIComponent(e.issuer)}`),t.replace("{labelPrefix}",encodeURIComponent(e.issuer||e.accountName)).replace("{accountName}",encodeURIComponent(e.accountName)).replace("{secret}",e.secret).replace("{query}",u.join(""))}var It=class e{constructor(t={}){this._defaultOptions=Object.freeze({...t}),this._options=Object.freeze({})}create(t={}){return new e(t)}clone(t={}){let u=this.create({...this._defaultOptions,...t});return u.options=this._options,u}get options(){return Object.freeze({...this._defaultOptions,...this._options})}set options(t){this._options=Object.freeze({...this._options,...t})}allOptions(){return this.options}resetOptions(){this._options=Object.freeze({})}};function Uu(e){if(typeof e.createDigest!="function")throw new Error("Expecting options.createDigest to be a function.");if(typeof e.createHmacKey!="function")throw new Error("Expecting options.createHmacKey to be a function.");if(typeof e.digits!="number")throw new Error("Expecting options.digits to be a number.");if(!e.algorithm||Lt.indexOf(e.algorithm)<0)throw new Error(`Expecting options.algorithm to be one of ${Lt.join(", ")}. Received ${e.algorithm}.`);if(!e.encoding||Bu.indexOf(e.encoding)<0)throw new Error(`Expecting options.encoding to be one of ${Bu.join(", ")}. Received ${e.encoding}.`)}var Da=(e,t,u)=>Buffer.from(t,u).toString("hex");function $a(){return{algorithm:m.HashAlgorithms.SHA1,createHmacKey:Da,createDigest:Ct,digits:6,encoding:m.KeyEncodings.ASCII}}function Ca(e){let t={...$a(),...e};return Uu(t),Object.freeze(t)}function Ba(e){let t=e.toString(16);return Mu(t,16,"0")}function Pa(e,t){let u=Buffer.from(e,"hex"),r=u[u.length-1]&15,a=((u[r]&127)<<24|(u[r+1]&255)<<16|(u[r+2]&255)<<8|u[r+3]&255)%Math.pow(10,t);return Mu(String(a),t,"0")}function A0(e,t,u){let r=Ba(t),i=u.createHmacKey(u.algorithm,e,u.encoding);return u.createDigest(u.algorithm,i,r)}function Bt(e,t,u){let r=u.digest||A0(e,t,u);return Pa(r,u.digits)}function Oa(e,t,u,r){if(!qu(e))return!1;let i=Bt(t,u,r);return e===i}function Ra(e,t,u,r,i){return Hu({algorithm:i.algorithm,digits:i.digits,type:m.Strategy.HOTP,accountName:e,counter:r,issuer:t,secret:u})}var Nt=class e extends It{create(t={}){return new e(t)}allOptions(){return Ca(this.options)}generate(t,u){return Bt(t,u,this.allOptions())}check(t,u,r){return Oa(t,u,r,this.allOptions())}verify(t){if(typeof t!="object")throw new Error("Expecting argument 0 of verify to be an object");return this.check(t.token,t.secret,t.counter)}keyuri(t,u,r,i){return Ra(t,u,r,i,this.allOptions())}};function qa(e){if(typeof e=="number")return[Math.abs(e),Math.abs(e)];if(Array.isArray(e)){let[t,u]=e;if(typeof t=="number"&&typeof u=="number")return[Math.abs(t),Math.abs(u)]}throw new Error("Expecting options.window to be an number or [number, number].")}function Fu(e){if(Uu(e),qa(e.window),typeof e.epoch!="number")throw new Error("Expecting options.epoch to be a number.");if(typeof e.step!="number")throw new Error("Expecting options.step to be a number.")}var _t=(e,t,u)=>{let r=e.length,i=Buffer.from(e,t).toString("hex");if(r<u){let a=new Array(u-r+1).join(i);return Buffer.from(a,"hex").slice(0,u).toString("hex")}return i},ju=(e,t,u)=>{switch(e){case m.HashAlgorithms.SHA1:return _t(t,u,20);case m.HashAlgorithms.SHA256:return _t(t,u,32);case m.HashAlgorithms.SHA512:return _t(t,u,64);default:throw new Error(`Expecting algorithm to be one of ${Lt.join(", ")}. Received ${e}.`)}};function Ma(){return{algorithm:m.HashAlgorithms.SHA1,createDigest:Ct,createHmacKey:ju,digits:6,encoding:m.KeyEncodings.ASCII,epoch:Date.now(),step:30,window:0}}function Ha(e){let t={...Ma(),...e};return Fu(t),Object.freeze(t)}function Ua(e,t){return Math.floor(e/t/1e3)}function Pt(e,t){let u=Ua(t.epoch,t.step);return Bt(e,u,t)}function Na(e,t,u,r){let i=[];if(r===0)return i;for(let a=1;a<=r;a++){let n=t*a*u;i.push(e+n)}return i}function Fa(e,t,u){let r=qa(u),i=t*1e3;return{current:e,past:Na(e,-1,i,r[0]),future:Na(e,1,i,r[1])}}function Vu(e,t,u){if(!qu(e))return!1;let r=Pt(t,u);return e===r}function Ou(e,t,u,r){let i=null;return e.some((a,n)=>Vu(t,u,{...r,epoch:a})?(i=n+1,!0):!1),i}function Wu(e,t,u){if(Vu(e,t,u))return 0;let r=Fa(u.epoch,u.step,u.window),i=Ou(r.past,e,t,u);return i!==null?i*-1:Ou(r.future,e,t,u)}function Gu(e,t){return Math.floor(e/1e3)%t}function ja(e,t){return t-Gu(e,t)}function Va(e,t,u,r){return Hu({algorithm:r.algorithm,digits:r.digits,step:r.step,type:m.Strategy.TOTP,accountName:e,issuer:t,secret:u})}var Dt=class e extends Nt{create(t={}){return new e(t)}allOptions(){return Ha(this.options)}generate(t){return Pt(t,this.allOptions())}checkDelta(t,u){return Wu(t,u,this.allOptions())}check(t,u){return typeof this.checkDelta(t,u)=="number"}verify(t){if(typeof t!="object")throw new Error("Expecting argument 0 of verify to be an object");return this.check(t.token,t.secret)}timeRemaining(){let t=this.allOptions();return ja(t.epoch,t.step)}timeUsed(){let t=this.allOptions();return Gu(t.epoch,t.step)}keyuri(t,u,r){return Va(t,u,r,this.allOptions())}};function Wa(e){if(Fu(e),typeof e.keyDecoder!="function")throw new Error("Expecting options.keyDecoder to be a function.");if(e.keyEncoder&&typeof e.keyEncoder!="function")throw new Error("Expecting options.keyEncoder to be a function.")}function Ga(){return{algorithm:m.HashAlgorithms.SHA1,createDigest:Ct,createHmacKey:ju,digits:6,encoding:m.KeyEncodings.HEX,epoch:Date.now(),step:30,window:0}}function za(e){let t={...Ga(),...e};return Wa(t),Object.freeze(t)}function zu(e,t){return t.keyEncoder(e,t.encoding)}function Ot(e,t){return t.keyDecoder(e,t.encoding)}function Ka(e,t){let u=t.createRandomBytes(e,t.encoding);return zu(u,t)}function Ja(e,t){return Pt(Ot(e,t),t)}function Ya(e,t,u){return Wu(e,Ot(t,u),u)}var Ru=class e extends Dt{create(t={}){return new e(t)}allOptions(){return za(this.options)}generate(t){return Ja(t,this.allOptions())}checkDelta(t,u){return Ya(t,u,this.allOptions())}encode(t){return zu(t,this.allOptions())}decode(t){return Ot(t,this.allOptions())}generateSecret(t=10){return Ka(t,this.allOptions())}};m.Authenticator=Ru;m.HASH_ALGORITHMS=Lt;m.HOTP=Nt;m.KEY_ENCODINGS=Bu;m.OTP=It;m.STRATEGY=Pu;m.TOTP=Dt;m.authenticatorCheckWithWindow=Ya;m.authenticatorDecoder=Ot;m.authenticatorDefaultOptions=Ga;m.authenticatorEncoder=zu;m.authenticatorGenerateSecret=Ka;m.authenticatorOptionValidator=Wa;m.authenticatorOptions=za;m.authenticatorToken=Ja;m.createDigestPlaceholder=Ct;m.hotpCheck=Oa;m.hotpCounter=Ba;m.hotpCreateHmacKey=Da;m.hotpDefaultOptions=$a;m.hotpDigestToToken=Pa;m.hotpKeyuri=Ra;m.hotpOptions=Ca;m.hotpOptionsValidator=Uu;m.hotpToken=Bt;m.isTokenValid=qu;m.keyuri=Hu;m.objectValues=$t;m.padStart=Mu;m.totpCheck=Vu;m.totpCheckByEpoch=Ou;m.totpCheckWithWindow=Wu;m.totpCounter=Ua;m.totpCreateHmacKey=ju;m.totpDefaultOptions=Ma;m.totpEpochAvailable=Fa;m.totpKeyuri=Va;m.totpOptions=Ha;m.totpOptionsValidator=Fu;m.totpPadSecret=_t;m.totpTimeRemaining=ja;m.totpTimeUsed=Gu;m.totpToken=Pt});var Qa=X($e=>{"use strict";Object.defineProperty($e,"__esModule",{value:!0});var Rt=Sa(),Za=Ia(),Ku=Xa(),_0=new Ku.HOTP({createDigest:Rt.createDigest}),L0=new Ku.TOTP({createDigest:Rt.createDigest}),I0=new Ku.Authenticator({createDigest:Rt.createDigest,createRandomBytes:Rt.createRandomBytes,keyDecoder:Za.keyDecoder,keyEncoder:Za.keyEncoder});$e.authenticator=I0;$e.hotp=_0;$e.totp=L0});var tn=X(Ju=>{"use strict";Object.defineProperty(Ju,"__esModule",{value:!0});var en=Qa();Object.keys(en).forEach(function(e){e!=="default"&&Object.defineProperty(Ju,e,{enumerable:!0,get:function(){return en[e]}})})});async function on(e,t){if(!e.body)throw new Error("Response body is null");let u=e.body.getReader(),r=new TextDecoder,i="";try{for(;;){let{done:a,value:n}=await u.read();if(a)break;i+=r.decode(n,{stream:!0});let s=i.split(`
4
+ `);i=s.pop()||"";for(let c of s){let l=null;if(c.startsWith("data: "))try{let f=c.slice(6);f.trim()&&(l=JSON.parse(f))}catch(f){console.error(`Failed to parse SSE event: ${c}`,f);continue}l&&t(l)}}}finally{u.releaseLock()}}import*as Hr from"fs/promises";import*as Fe from"vm";function Ur(e,t,u,r=!1){if(e[t])if(r)o.info(`Overriding existing function: ${t}`),delete e[t];else{o.error(`The name ${t} is already defined in the global scope`);return}try{let i;if(Fe.isContext(e)?i=new Fe.Script(u,{importModuleDynamically:async a=>await import(a)}).runInContext(e):i=(0,eval)(u),typeof i!="function")throw new Error("The injected code must be a function");e[t]=i}catch(i){o.error(`Error injecting user function ${t}: ${i.message}`)}}async function cn(e,t,u=!1){try{let r=await Hr.readFile(t,"utf8"),i=JSON.parse(r);o.info(`Loading ${Object.keys(i).length} user functions...`);for(let[a,n]of Object.entries(i))Ur(e,a,n,u)}catch(r){throw o.error("Failed to load user functions:",r),r}}import*as Zt from"fs/promises";async function ln(e){try{let t=await Zt.readFile(e,"utf8"),u=JSON.parse(t);return o.info(`Loaded ${u.length} knowledges from file`),u}catch(t){if(t.code==="ENOENT")return o.debug("No knowledges file found"),[];throw o.error("Failed to load knowledges:",t),t}}async function dn(e){try{let t=await Zt.readFile(e,"utf8"),u=JSON.parse(t);return o.info(`Loaded ${u.length} knowledge mappings from file`),u}catch(t){if(t.code==="ENOENT")return o.debug("No knowledge mappings file found"),[];throw o.error("Failed to load knowledge mappings:",t),t}}import{z as Fr}from"zod";var fn=Fr.object({instruction:Fr.string().describe('The instruction of the operation to perform. Can only include one operation. Do not inlcude element indexes just describe the element, e.g. "select the text "Hello, world!" in "Hello, world!""')});function jr(e){e.register({name:"perform_accurate_operation",description:"Perform an operation that requires accurate interaction like dragging or interacting with a specific area of an element. Only use this action when neccecary.",schema:fn,usesElementIndex:!1,async execute(t,u){let{instruction:r}=t,i={page:u.page,agentServices:u.agentServices,domService:u.domService},a=await Qu(r,i,{});if(a.status==="error"||!a.actionEntity)return{success:!1,actionEntity:{action_description:r,action_data:{action_name:"perform_accurate_operation",kwargs:{instruction:r}}},error:a.error||"Failed to generate action"};let{actionEntity:n}=a,s=await Nr(n,i);return{success:s.success,actionEntity:n,message:s.success?`Successfully executed action: ${n.action_data?.action_name}`:void 0,error:s.error}}})}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||(T={}));function Vr(e){return e.type===T.Tag||e.type===T.Script||e.type===T.Style}var Wr=T.Root,Gr=T.Text,zr=T.Directive,Kr=T.Comment,Jr=T.Script,Yr=T.Style,Xr=T.Tag,Zr=T.CDATA,Qr=T.Doctype;var je=class{constructor(){this.parent=null,this.prev=null,this.next=null,this.startIndex=null,this.endIndex=null}get parentNode(){return this.parent}set parentNode(t){this.parent=t}get previousSibling(){return this.prev}set previousSibling(t){this.prev=t}get nextSibling(){return this.next}set nextSibling(t){this.next=t}cloneNode(t=!1){return ui(this,t)}},me=class extends je{constructor(t){super(),this.data=t}get nodeValue(){return this.data}set nodeValue(t){this.data=t}},te=class extends me{constructor(){super(...arguments),this.type=T.Text}get nodeType(){return 3}},ge=class extends me{constructor(){super(...arguments),this.type=T.Comment}get nodeType(){return 8}},be=class extends me{constructor(t,u){super(u),this.name=t,this.type=T.Directive}get nodeType(){return 1}},xe=class extends je{constructor(t){super(),this.children=t}get firstChild(){var t;return(t=this.children[0])!==null&&t!==void 0?t:null}get lastChild(){return this.children.length>0?this.children[this.children.length-1]:null}get childNodes(){return this.children}set childNodes(t){this.children=t}},we=class extends xe{constructor(){super(...arguments),this.type=T.CDATA}get nodeType(){return 4}},ue=class extends xe{constructor(){super(...arguments),this.type=T.Root}get nodeType(){return 9}},ye=class extends xe{constructor(t,u,r=[],i=t==="script"?T.Script:t==="style"?T.Style:T.Tag){super(r),this.name=t,this.attribs=u,this.type=i}get nodeType(){return 1}get tagName(){return this.name}set tagName(t){this.name=t}get attributes(){return Object.keys(this.attribs).map(t=>{var u,r;return{name:t,value:this.attribs[t],namespace:(u=this["x-attribsNamespace"])===null||u===void 0?void 0:u[t],prefix:(r=this["x-attribsPrefix"])===null||r===void 0?void 0:r[t]}})}};function W(e){return Vr(e)}function eu(e){return e.type===T.CDATA}function Ve(e){return e.type===T.Text}function tu(e){return e.type===T.Comment}function hn(e){return e.type===T.Directive}function ti(e){return e.type===T.Root}function ui(e,t=!1){let u;if(Ve(e))u=new te(e.data);else if(tu(e))u=new ge(e.data);else if(W(e)){let r=t?Qt(e.children):[],i=new ye(e.name,{...e.attribs},r);r.forEach(a=>a.parent=i),e.namespace!=null&&(i.namespace=e.namespace),e["x-attribsNamespace"]&&(i["x-attribsNamespace"]={...e["x-attribsNamespace"]}),e["x-attribsPrefix"]&&(i["x-attribsPrefix"]={...e["x-attribsPrefix"]}),u=i}else if(eu(e)){let r=t?Qt(e.children):[],i=new we(r);r.forEach(a=>a.parent=i),u=i}else if(ti(e)){let r=t?Qt(e.children):[],i=new ue(r);r.forEach(a=>a.parent=i),e["x-mode"]&&(i["x-mode"]=e["x-mode"]),u=i}else if(hn(e)){let r=new be(e.name,e.data);e["x-name"]!=null&&(r["x-name"]=e["x-name"],r["x-publicId"]=e["x-publicId"],r["x-systemId"]=e["x-systemId"]),u=r}else throw new Error(`Not implemented yet: ${e.type}`);return u.startIndex=e.startIndex,u.endIndex=e.endIndex,e.sourceCodeLocation!=null&&(u.sourceCodeLocation=e.sourceCodeLocation),u}function Qt(e){let t=e.map(u=>ui(u,!0));for(let u=1;u<t.length;u++)t[u].prev=t[u-1],t[u-1].next=t[u];return t}var ri={withStartIndices:!1,withEndIndices:!1,xmlMode:!1},re=class{constructor(t,u,r){this.dom=[],this.root=new ue(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null,typeof u=="function"&&(r=u,u=ri),typeof t=="object"&&(u=t,t=void 0),this.callback=t??null,this.options=u??ri,this.elementCB=r??null}onparserinit(t){this.parser=t}onreset(){this.dom=[],this.root=new ue(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null}onend(){this.done||(this.done=!0,this.parser=null,this.handleCallback(null))}onerror(t){this.handleCallback(t)}onclosetag(){this.lastNode=null;let t=this.tagStack.pop();this.options.withEndIndices&&(t.endIndex=this.parser.endIndex),this.elementCB&&this.elementCB(t)}onopentag(t,u){let r=this.options.xmlMode?T.Tag:void 0,i=new ye(t,u,void 0,r);this.addNode(i),this.tagStack.push(i)}ontext(t){let{lastNode:u}=this;if(u&&u.type===T.Text)u.data+=t,this.options.withEndIndices&&(u.endIndex=this.parser.endIndex);else{let r=new te(t);this.addNode(r),this.lastNode=r}}oncomment(t){if(this.lastNode&&this.lastNode.type===T.Comment){this.lastNode.data+=t;return}let u=new ge(t);this.addNode(u),this.lastNode=u}oncommentend(){this.lastNode=null}oncdatastart(){let t=new te(""),u=new we([t]);this.addNode(u),t.parent=u,this.lastNode=t}oncdataend(){this.lastNode=null}onprocessinginstruction(t,u){let r=new be(t,u);this.addNode(r)}handleCallback(t){if(typeof this.callback=="function")this.callback(t,this.dom);else if(t)throw t}addNode(t){let u=this.tagStack[this.tagStack.length-1],r=u.children[u.children.length-1];this.options.withStartIndices&&(t.startIndex=this.parser.startIndex),this.options.withEndIndices&&(t.endIndex=this.parser.endIndex),u.children.push(t),r&&(t.prev=r,r.next=t),t.parent=u,this.lastNode=null}};var pn=/\n/g;function mn(e){let t=[...e.matchAll(pn)].map(r=>r.index||0);t.unshift(-1);let u=uu(t,0,t.length);return r=>ai(u,r)}function uu(e,t,u){if(u-t==1)return{offset:e[t],index:t+1};let r=Math.ceil((t+u)/2),i=uu(e,t,r),a=uu(e,r,u);return{offset:i.offset,low:i,high:a}}function ai(e,t){return function(u){return Object.prototype.hasOwnProperty.call(u,"index")}(e)?{line:e.index,column:t-e.offset}:ai(e.high.offset<t?e.high:e.low,t)}function ru(e,t="",u={}){let r=typeof t!="string"?t:u,i=typeof t=="string"?t:"",a=e.map(gn),n=!!r.lineNumbers;return function(s,c=0){let l=n?mn(s):()=>({line:0,column:0}),f=c,b=[];e:for(;f<s.length;){let x=!1;for(let h of a){h.regex.lastIndex=f;let g=h.regex.exec(s);if(g&&g[0].length>0){if(!h.discard){let v=l(f),w=typeof h.replace=="string"?g[0].replace(new RegExp(h.regex.source,h.regex.flags),h.replace):g[0];b.push({state:i,name:h.name,text:w,offset:f,len:g[0].length,line:v.line,column:v.column})}if(f=h.regex.lastIndex,x=!0,h.push){let v=h.push(s,f);b.push(...v.tokens),f=v.offset}if(h.pop)break e;break}}if(!x)break}return{tokens:b,offset:f,complete:s.length<=f}}}function gn(e,t){return{...e,regex:bn(e,t)}}function bn(e,t){if(e.name.length===0)throw new Error(`Rule #${t} has empty name, which is not allowed.`);if(function(u){return Object.prototype.hasOwnProperty.call(u,"regex")}(e))return function(u){if(u.global)throw new Error(`Regular expression /${u.source}/${u.flags} contains the global flag, which is not allowed.`);return u.sticky?u:new RegExp(u.source,u.flags+"y")}(e.regex);if(function(u){return Object.prototype.hasOwnProperty.call(u,"str")}(e)){if(e.str.length===0)throw new Error(`Rule #${t} ("${e.name}") has empty "str" property, which is not allowed.`);return new RegExp(ii(e.str),"y")}return new RegExp(ii(e.name),"y")}function ii(e){return e.replace(/[-[\]{}()*+!<=:?./\\^$|#\s,]/g,"\\$&")}function j(e,t){return(u,r)=>{let i=r,a;return r<u.tokens.length?(a=e(u.tokens[r],u,r),a!==void 0&&i++):t?.(u,r),a===void 0?{matched:!1}:{matched:!0,position:i,value:a}}}function iu(e,t){return e.matched?{matched:!0,position:e.position,value:t(e.value,e.position)}:e}function We(e,t){return e.matched?t(e):e}function D(e,t){return(u,r)=>iu(e(u,r),(i,a)=>t(i,u,r,a))}function ve(e,t){return(u,r)=>{let i=e(u,r);return i.matched?i:{matched:!0,position:r,value:t}}}function ie(...e){return(t,u)=>{for(let r of e){let i=r(t,u);if(i.matched)return i}return{matched:!1}}}function Z(e,t){return(u,r)=>{let i=e(u,r);return i.matched?i:t(u,r)}}function xn(e,t){return(u,r)=>{let i=[],a=!0;do{let n=e(u,r);n.matched&&t(n.value,i.length+1,u,r,n.position)?(i.push(n.value),r=n.position):a=!1}while(a);return{matched:!0,position:r,value:i}}}function Ge(e){return xn(e,()=>!0)}function ni(e){return $(e,Ge(e),(t,u)=>[t,...u])}function $(e,t,u){return(r,i)=>We(e(r,i),a=>iu(t(r,a.position),(n,s)=>u(a.value,n,r,i,s)))}function si(e,t){return $(e,t,u=>u)}function au(e,t){return $(e,t,(u,r)=>r)}function ze(e,t,u,r){return(i,a)=>We(e(i,a),n=>We(t(i,n.position),s=>iu(u(i,s.position),(c,l)=>r(n.value,s.value,c,i,a,l))))}function nu(e,t,u){return ze(e,t,u,(r,i)=>i)}function wn(...e){return(t,u)=>{let r=[],i=u;for(let a of e){let n=a(t,i);if(n.matched)r.push(n.value),i=n.position;else return{matched:!1}}return{matched:!0,position:i,value:r}}}function oi(...e){return yn(wn(...e))}function yn(e){return D(e,t=>t.flatMap(u=>u))}function vn(e,t){return(u,r)=>{let i=!0,a=e,n=r;do{let s=t(a,u,n)(u,n);s.matched?(a=s.value,n=s.position):i=!1}while(i);return{matched:!0,position:n,value:a}}}function kn(e,t,u){return vn(e,r=>D(t,(i,a,n,s)=>u(r,i,a,n,s)))}function su(e,t,u){return Sn(e,r=>kn(r,$(t,u,(i,a)=>[i,a]),(i,[a,n])=>a(i,n)))}function Sn(e,t){return(u,r)=>We(e(u,r),i=>t(i.value,u,r,i.position)(u,i.position))}var En="(?:[ \\t\\r\\n\\f]*)",pi="(?:\\n|\\r\\n|\\r|\\f)",Ye="[^\\x00-\\x7F]",Te="(?:\\\\[0-9a-f]{1,6}(?:\\r\\n|[ \\n\\r\\t\\f])?)",Ee="(?:\\\\[^\\n\\r\\f0-9a-f])",An=`(?:[_a-z]|${Ye}|${Te}|${Ee})`,mi=`(?:[_a-z0-9-]|${Ye}|${Te}|${Ee})`,_n=`(?:${mi}+)`,Ln=`(?:[-]?${An}${mi}*)`,In=`'([^\\n\\r\\f\\\\']|\\\\${pi}|${Ye}|${Te}|${Ee})*'`,Nn=`"([^\\n\\r\\f\\\\"]|\\\\${pi}|${Ye}|${Te}|${Ee})*"`,Dn=ru([{name:"ws",regex:new RegExp(En)},{name:"hash",regex:new RegExp(`#${_n}`,"i")},{name:"ident",regex:new RegExp(Ln,"i")},{name:"str1",regex:new RegExp(In,"i")},{name:"str2",regex:new RegExp(Nn,"i")},{name:"*"},{name:"."},{name:","},{name:"["},{name:"]"},{name:"="},{name:">"},{name:"|"},{name:"+"},{name:"~"},{name:"^"},{name:"$"}]),$n=ru([{name:"unicode",regex:new RegExp(Te,"i")},{name:"escape",regex:new RegExp(Ee,"i")},{name:"any",regex:new RegExp("[\\s\\S]","i")}]);function gi([e,t,u],[r,i,a]){return[e+r,t+i,u+a]}function Cn(e){return e.reduce(gi,[0,0,0])}var Bn=j(e=>e.name==="unicode"?String.fromCodePoint(parseInt(e.text.slice(1),16)):void 0),Pn=j(e=>e.name==="escape"?e.text.slice(1):void 0),On=j(e=>e.name==="any"?e.text:void 0),Rn=D(Ge(ie(Bn,Pn,On)),e=>e.join(""));function lu(e){let t=$n(e);return Rn({tokens:t.tokens,options:void 0},0).value}function A(e){return j(t=>t.name===e?!0:void 0)}var du=j(e=>e.name==="ws"?null:void 0),ou=ve(du,null);function ne(e){return nu(ou,e,ou)}var Se=j(e=>e.name==="ident"?lu(e.text):void 0),qn=j(e=>e.name==="hash"?lu(e.text.slice(1)):void 0),Mn=j(e=>e.name.startsWith("str")?lu(e.text.slice(1,-1)):void 0),bi=si(ve(Se,""),A("|")),fu=Z($(bi,Se,(e,t)=>({name:t,namespace:e})),D(Se,e=>({name:e,namespace:null}))),Hn=Z($(bi,A("*"),e=>({type:"universal",namespace:e,specificity:[0,0,0]})),D(A("*"),()=>({type:"universal",namespace:null,specificity:[0,0,0]}))),Un=D(fu,({name:e,namespace:t})=>({type:"tag",name:e,namespace:t,specificity:[0,0,1]})),Fn=$(A("."),Se,(e,t)=>({type:"class",name:t,specificity:[0,1,0]})),jn=D(qn,e=>({type:"id",name:e,specificity:[1,0,0]})),ci=j(e=>{if(e.name==="ident"){if(e.text==="i"||e.text==="I")return"i";if(e.text==="s"||e.text==="S")return"s"}}),Vn=Z($(Mn,ve(au(ou,ci),null),(e,t)=>({value:e,modifier:t})),$(Se,ve(au(du,ci),null),(e,t)=>({value:e,modifier:t}))),Wn=ie(D(A("="),()=>"="),$(A("~"),A("="),()=>"~="),$(A("|"),A("="),()=>"|="),$(A("^"),A("="),()=>"^="),$(A("$"),A("="),()=>"$="),$(A("*"),A("="),()=>"*=")),Gn=ze(A("["),ne(fu),A("]"),(e,{name:t,namespace:u})=>({type:"attrPresence",name:t,namespace:u,specificity:[0,1,0]})),zn=nu(A("["),ze(ne(fu),Wn,ne(Vn),({name:e,namespace:t},u,{value:r,modifier:i})=>({type:"attrValue",name:e,namespace:t,matcher:u,value:r,modifier:i,specificity:[0,1,0]})),A("]")),Kn=Z(Gn,zn),Jn=Z(Hn,Un),li=ie(jn,Fn,Kn),di=D(Z(oi(Jn,Ge(li)),ni(li)),e=>({type:"compound",list:e,specificity:Cn(e.map(t=>t.specificity))})),Yn=ie(D(A(">"),()=>">"),D(A("+"),()=>"+"),D(A("~"),()=>"~"),$(A("|"),A("|"),()=>"||")),Xn=Z(ne(Yn),D(du,()=>" ")),cu=su(di,D(Xn,e=>(t,u)=>({type:"compound",list:[...u.list,{type:"combinator",combinator:e,left:t,specificity:t.specificity}],specificity:gi(t.specificity,u.specificity)})),di),X0=su(D(cu,e=>({type:"list",list:[e]})),D(ne(A(",")),()=>(e,t)=>({type:"list",list:[...e.list,t]})),cu);function Zn(e,t){if(!(typeof t=="string"||t instanceof String))throw new Error("Expected a selector string. Actual input is not a string!");let u=Dn(t);if(!u.complete)throw new Error(`The input "${t}" was only partially tokenized, stopped at offset ${u.offset}!
5
+ `+fi(t,u.offset));let r=ne(e)({tokens:u.tokens,options:void 0},0);if(!r.matched)throw new Error(`No match for "${t}" input!`);if(r.position<u.tokens.length){let i=u.tokens[r.position];throw new Error(`The input "${t}" was only partially parsed, stopped at offset ${i.offset}!
6
+ `+fi(t,i.offset,i.len))}return r.value}function fi(e,t,u=1){return`${e.replace(/(\t)|(\r)|(\n)/g,(r,i,a)=>i?"\u2409":a?"\u240D":"\u240A")}
7
+ ${"".padEnd(t)}${"^".repeat(u)}`}function xi(e){return Zn(cu,e)}function H(e){if(!e.type)throw new Error("This is not an AST node.");switch(e.type){case"universal":return Ke(e.namespace)+"*";case"tag":return Ke(e.namespace)+ae(e.name);case"class":return"."+ae(e.name);case"id":return"#"+ae(e.name);case"attrPresence":return`[${Ke(e.namespace)}${ae(e.name)}]`;case"attrValue":return`[${Ke(e.namespace)}${ae(e.name)}${e.matcher}"${Qn(e.value)}"${e.modifier?e.modifier:""}]`;case"combinator":return H(e.left)+e.combinator;case"compound":return e.list.reduce((t,u)=>u.type==="combinator"?H(u)+t:t+H(u),"");case"list":return e.list.map(H).join(",")}}function Ke(e){return e||e===""?ae(e)+"|":""}function Je(e){return`\\${e.codePointAt(0).toString(16)} `}function ae(e){return e.replace(/(^[0-9])|(^-[0-9])|(^-$)|([-0-9a-zA-Z_]|[^\x00-\x7F])|(\x00)|([\x01-\x1f]|\x7f)|([\s\S])/g,(t,u,r,i,a,n,s,c)=>u?Je(u):r?"-"+Je(r.slice(1)):i?"\\-":a||(n?"\uFFFD":s?Je(s):"\\"+c))}function Qn(e){return e.replace(/(")|(\\)|(\x00)|([\x01-\x1f]|\x7f)/g,(t,u,r,i,a)=>u?'\\"':r?"\\\\":i?"\uFFFD":Je(a))}function ke(e){if(!e.type)throw new Error("This is not an AST node.");switch(e.type){case"compound":{e.list.forEach(ke),e.list.sort((t,u)=>wi(hi(t),hi(u)));break}case"combinator":{ke(e.left);break}case"list":{e.list.forEach(ke),e.list.sort((t,u)=>H(t)<H(u)?-1:1);break}}return e}function hi(e){switch(e.type){case"universal":return[1];case"tag":return[1];case"id":return[2];case"class":return[3,e.name];case"attrPresence":return[4,H(e)];case"attrValue":return[5,H(e)];case"combinator":return[15,H(e)]}}function hu(e,t){return wi(e,t)}function wi(e,t){if(!Array.isArray(e)||!Array.isArray(t))throw new Error("Arguments must be arrays.");let u=e.length<t.length?e.length:t.length;for(let r=0;r<u;r++)if(e[r]!==t[r])return e[r]<t[r]?-1:1;return e.length-t.length}var Ae=class{constructor(t){this.branches=se(ts(t))}build(t){return t(this.branches)}};function ts(e){let t=e.length,u=new Array(t);for(let r=0;r<t;r++){let[i,a]=e[r],n=us(xi(i));u[r]={ast:n,terminal:{type:"terminal",valueContainer:{index:r,value:a,specificity:n.specificity}}}}return u}function us(e){return vi(e),ke(e),e}function vi(e){let t=[];e.list.forEach(u=>{switch(u.type){case"class":t.push({matcher:"~=",modifier:null,name:"class",namespace:null,specificity:u.specificity,type:"attrValue",value:u.name});break;case"id":t.push({matcher:"=",modifier:null,name:"id",namespace:null,specificity:u.specificity,type:"attrValue",value:u.name});break;case"combinator":vi(u.left),t.push(u);break;case"universal":break;default:t.push(u);break}}),e.list=t}function se(e){let t=[];for(;e.length;){let u=Ti(e,n=>!0,ki),{matches:r,nonmatches:i,empty:a}=is(e,u);e=i,r.length&&t.push(as(u,r)),a.length&&t.push(...rs(a))}return t}function rs(e){let t=[];for(let u of e){let r=u.terminal;if(r.type==="terminal")t.push(r);else{let{matches:i,rest:a}=ls(r.cont,n=>n.type==="terminal");i.forEach(n=>t.push(n)),a.length&&(r.cont=a,t.push(r))}}return t}function is(e,t){let u=[],r=[],i=[];for(let a of e){let n=a.ast.list;n.length?(n.some(c=>ki(c)===t)?u:r).push(a):i.push(a)}return{matches:u,nonmatches:r,empty:i}}function ki(e){switch(e.type){case"attrPresence":return`attrPresence ${e.name}`;case"attrValue":return`attrValue ${e.name}`;case"combinator":return`combinator ${e.combinator}`;default:return e.type}}function as(e,t){if(e==="tag")return ns(t);if(e.startsWith("attrValue "))return os(e.substring(10),t);if(e.startsWith("attrPresence "))return ss(e.substring(13),t);if(e==="combinator >")return yi(">",t);if(e==="combinator +")return yi("+",t);throw new Error(`Unsupported selector kind: ${e}`)}function ns(e){let t=pu(e,r=>r.type==="tag",r=>r.name);return{type:"tagName",variants:Object.entries(t).map(([r,i])=>({type:"variant",value:r,cont:se(i.items)}))}}function ss(e,t){for(let u of t)Si(u,r=>r.type==="attrPresence"&&r.name===e);return{type:"attrPresence",name:e,cont:se(t)}}function os(e,t){let u=pu(t,i=>i.type==="attrValue"&&i.name===e,i=>`${i.matcher} ${i.modifier||""} ${i.value}`),r=[];for(let i of Object.values(u)){let a=i.oneSimpleSelector,n=cs(a),s=se(i.items);r.push({type:"matcher",matcher:a.matcher,modifier:a.modifier,value:a.value,predicate:n,cont:s})}return{type:"attrValue",name:e,matchers:r}}function cs(e){if(e.modifier==="i"){let t=e.value.toLowerCase();switch(e.matcher){case"=":return u=>t===u.toLowerCase();case"~=":return u=>u.toLowerCase().split(/[ \t]+/).includes(t);case"^=":return u=>u.toLowerCase().startsWith(t);case"$=":return u=>u.toLowerCase().endsWith(t);case"*=":return u=>u.toLowerCase().includes(t);case"|=":return u=>{let r=u.toLowerCase();return t===r||r.startsWith(t)&&r[t.length]==="-"}}}else{let t=e.value;switch(e.matcher){case"=":return u=>t===u;case"~=":return u=>u.split(/[ \t]+/).includes(t);case"^=":return u=>u.startsWith(t);case"$=":return u=>u.endsWith(t);case"*=":return u=>u.includes(t);case"|=":return u=>t===u||u.startsWith(t)&&u[t.length]==="-"}}}function yi(e,t){let u=pu(t,i=>i.type==="combinator"&&i.combinator===e,i=>H(i.left)),r=[];for(let i of Object.values(u)){let a=se(i.items),n=i.oneSimpleSelector.left;r.push({ast:n,terminal:{type:"popElement",cont:a}})}return{type:"pushElement",combinator:e,cont:se(r)}}function pu(e,t,u){let r={};for(;e.length;){let i=Ti(e,t,u),a=f=>t(f)&&u(f)===i,n=f=>f.ast.list.some(a),{matches:s,rest:c}=ds(e,n),l=null;for(let f of s){let b=Si(f,a);l||(l=b)}if(l==null)throw new Error("No simple selector is found.");r[i]={oneSimpleSelector:l,items:s},e=c}return r}function Si(e,t){let u=e.ast.list,r=new Array(u.length),i=-1;for(let n=u.length;n-- >0;)t(u[n])&&(r[n]=!0,i=n);if(i==-1)throw new Error("Couldn't find the required simple selector.");let a=u[i];return e.ast.list=u.filter((n,s)=>!r[s]),a}function Ti(e,t,u){let r={};for(let n of e){let s={};for(let c of n.ast.list.filter(t))s[u(c)]=!0;for(let c of Object.keys(s))r[c]?r[c]++:r[c]=1}let i="",a=0;for(let n of Object.entries(r))n[1]>a&&(i=n[0],a=n[1]);return i}function ls(e,t){let u=[],r=[];for(let i of e)t(i)?u.push(i):r.push(i);return{matches:u,rest:r}}function ds(e,t){let u=[],r=[];for(let i of e)t(i)?u.push(i):r.push(i);return{matches:u,rest:r}}var Xe=class{constructor(t){this.f=t}pickAll(t){return this.f(t)}pick1(t,u=!1){let r=this.f(t),i=r.length;if(i===0)return null;if(i===1)return r[0].value;let a=u?fs:hs,n=r[0];for(let s=1;s<i;s++){let c=r[s];a(n,c)&&(n=c)}return n.value}};function fs(e,t){let u=hu(t.specificity,e.specificity);return u>0||u===0&&t.index<e.index}function hs(e,t){let u=hu(t.specificity,e.specificity);return u>0||u===0&&t.index>e.index}function mu(e){return new Xe(oe(e))}function oe(e){let t=e.map(ps);return(u,...r)=>t.flatMap(i=>i(u,...r))}function ps(e){switch(e.type){case"terminal":{let t=[e.valueContainer];return(u,...r)=>t}case"tagName":return ms(e);case"attrValue":return bs(e);case"attrPresence":return gs(e);case"pushElement":return xs(e);case"popElement":return ys(e)}}function ms(e){let t={};for(let u of e.variants)t[u.value]=oe(u.cont);return(u,...r)=>{let i=t[u.name];return i?i(u,...r):[]}}function gs(e){let t=e.name,u=oe(e.cont);return(r,...i)=>Object.prototype.hasOwnProperty.call(r.attribs,t)?u(r,...i):[]}function bs(e){let t=[];for(let r of e.matchers){let i=r.predicate,a=oe(r.cont);t.push((n,s,...c)=>i(n)?a(s,...c):[])}let u=e.name;return(r,...i)=>{let a=r.attribs[u];return a||a===""?t.flatMap(n=>n(a,r,...i)):[]}}function xs(e){let t=oe(e.cont),u=e.combinator==="+"?Ei:ws;return(r,...i)=>{let a=u(r);return a===null?[]:t(a,r,...i)}}var Ei=e=>{let t=e.prev;return t===null?null:W(t)?t:Ei(t)},ws=e=>{let t=e.parent;return t&&W(t)?t:null};function ys(e){let t=oe(e.cont);return(u,r,...i)=>t(r,...i)}var Ze=new Uint16Array('\u1D41<\xD5\u0131\u028A\u049D\u057B\u05D0\u0675\u06DE\u07A2\u07D6\u080F\u0A4A\u0A91\u0DA1\u0E6D\u0F09\u0F26\u10CA\u1228\u12E1\u1415\u149D\u14C3\u14DF\u1525\0\0\0\0\0\0\u156B\u16CD\u198D\u1C12\u1DDD\u1F7E\u2060\u21B0\u228D\u23C0\u23FB\u2442\u2824\u2912\u2D08\u2E48\u2FCE\u3016\u32BA\u3639\u37AC\u38FE\u3A28\u3A71\u3AE0\u3B2E\u0800EMabcfglmnoprstu\\bfms\x7F\x84\x8B\x90\x95\x98\xA6\xB3\xB9\xC8\xCFlig\u803B\xC6\u40C6P\u803B&\u4026cute\u803B\xC1\u40C1reve;\u4102\u0100iyx}rc\u803B\xC2\u40C2;\u4410r;\uC000\u{1D504}rave\u803B\xC0\u40C0pha;\u4391acr;\u4100d;\u6A53\u0100gp\x9D\xA1on;\u4104f;\uC000\u{1D538}plyFunction;\u6061ing\u803B\xC5\u40C5\u0100cs\xBE\xC3r;\uC000\u{1D49C}ign;\u6254ilde\u803B\xC3\u40C3ml\u803B\xC4\u40C4\u0400aceforsu\xE5\xFB\xFE\u0117\u011C\u0122\u0127\u012A\u0100cr\xEA\xF2kslash;\u6216\u0176\xF6\xF8;\u6AE7ed;\u6306y;\u4411\u0180crt\u0105\u010B\u0114ause;\u6235noullis;\u612Ca;\u4392r;\uC000\u{1D505}pf;\uC000\u{1D539}eve;\u42D8c\xF2\u0113mpeq;\u624E\u0700HOacdefhilorsu\u014D\u0151\u0156\u0180\u019E\u01A2\u01B5\u01B7\u01BA\u01DC\u0215\u0273\u0278\u027Ecy;\u4427PY\u803B\xA9\u40A9\u0180cpy\u015D\u0162\u017Aute;\u4106\u0100;i\u0167\u0168\u62D2talDifferentialD;\u6145leys;\u612D\u0200aeio\u0189\u018E\u0194\u0198ron;\u410Cdil\u803B\xC7\u40C7rc;\u4108nint;\u6230ot;\u410A\u0100dn\u01A7\u01ADilla;\u40B8terDot;\u40B7\xF2\u017Fi;\u43A7rcle\u0200DMPT\u01C7\u01CB\u01D1\u01D6ot;\u6299inus;\u6296lus;\u6295imes;\u6297o\u0100cs\u01E2\u01F8kwiseContourIntegral;\u6232eCurly\u0100DQ\u0203\u020FoubleQuote;\u601Duote;\u6019\u0200lnpu\u021E\u0228\u0247\u0255on\u0100;e\u0225\u0226\u6237;\u6A74\u0180git\u022F\u0236\u023Aruent;\u6261nt;\u622FourIntegral;\u622E\u0100fr\u024C\u024E;\u6102oduct;\u6210nterClockwiseContourIntegral;\u6233oss;\u6A2Fcr;\uC000\u{1D49E}p\u0100;C\u0284\u0285\u62D3ap;\u624D\u0580DJSZacefios\u02A0\u02AC\u02B0\u02B4\u02B8\u02CB\u02D7\u02E1\u02E6\u0333\u048D\u0100;o\u0179\u02A5trahd;\u6911cy;\u4402cy;\u4405cy;\u440F\u0180grs\u02BF\u02C4\u02C7ger;\u6021r;\u61A1hv;\u6AE4\u0100ay\u02D0\u02D5ron;\u410E;\u4414l\u0100;t\u02DD\u02DE\u6207a;\u4394r;\uC000\u{1D507}\u0100af\u02EB\u0327\u0100cm\u02F0\u0322ritical\u0200ADGT\u0300\u0306\u0316\u031Ccute;\u40B4o\u0174\u030B\u030D;\u42D9bleAcute;\u42DDrave;\u4060ilde;\u42DCond;\u62C4ferentialD;\u6146\u0470\u033D\0\0\0\u0342\u0354\0\u0405f;\uC000\u{1D53B}\u0180;DE\u0348\u0349\u034D\u40A8ot;\u60DCqual;\u6250ble\u0300CDLRUV\u0363\u0372\u0382\u03CF\u03E2\u03F8ontourIntegra\xEC\u0239o\u0274\u0379\0\0\u037B\xBB\u0349nArrow;\u61D3\u0100eo\u0387\u03A4ft\u0180ART\u0390\u0396\u03A1rrow;\u61D0ightArrow;\u61D4e\xE5\u02CAng\u0100LR\u03AB\u03C4eft\u0100AR\u03B3\u03B9rrow;\u67F8ightArrow;\u67FAightArrow;\u67F9ight\u0100AT\u03D8\u03DErrow;\u61D2ee;\u62A8p\u0241\u03E9\0\0\u03EFrrow;\u61D1ownArrow;\u61D5erticalBar;\u6225n\u0300ABLRTa\u0412\u042A\u0430\u045E\u047F\u037Crrow\u0180;BU\u041D\u041E\u0422\u6193ar;\u6913pArrow;\u61F5reve;\u4311eft\u02D2\u043A\0\u0446\0\u0450ightVector;\u6950eeVector;\u695Eector\u0100;B\u0459\u045A\u61BDar;\u6956ight\u01D4\u0467\0\u0471eeVector;\u695Fector\u0100;B\u047A\u047B\u61C1ar;\u6957ee\u0100;A\u0486\u0487\u62A4rrow;\u61A7\u0100ct\u0492\u0497r;\uC000\u{1D49F}rok;\u4110\u0800NTacdfglmopqstux\u04BD\u04C0\u04C4\u04CB\u04DE\u04E2\u04E7\u04EE\u04F5\u0521\u052F\u0536\u0552\u055D\u0560\u0565G;\u414AH\u803B\xD0\u40D0cute\u803B\xC9\u40C9\u0180aiy\u04D2\u04D7\u04DCron;\u411Arc\u803B\xCA\u40CA;\u442Dot;\u4116r;\uC000\u{1D508}rave\u803B\xC8\u40C8ement;\u6208\u0100ap\u04FA\u04FEcr;\u4112ty\u0253\u0506\0\0\u0512mallSquare;\u65FBerySmallSquare;\u65AB\u0100gp\u0526\u052Aon;\u4118f;\uC000\u{1D53C}silon;\u4395u\u0100ai\u053C\u0549l\u0100;T\u0542\u0543\u6A75ilde;\u6242librium;\u61CC\u0100ci\u0557\u055Ar;\u6130m;\u6A73a;\u4397ml\u803B\xCB\u40CB\u0100ip\u056A\u056Fsts;\u6203onentialE;\u6147\u0280cfios\u0585\u0588\u058D\u05B2\u05CCy;\u4424r;\uC000\u{1D509}lled\u0253\u0597\0\0\u05A3mallSquare;\u65FCerySmallSquare;\u65AA\u0370\u05BA\0\u05BF\0\0\u05C4f;\uC000\u{1D53D}All;\u6200riertrf;\u6131c\xF2\u05CB\u0600JTabcdfgorst\u05E8\u05EC\u05EF\u05FA\u0600\u0612\u0616\u061B\u061D\u0623\u066C\u0672cy;\u4403\u803B>\u403Emma\u0100;d\u05F7\u05F8\u4393;\u43DCreve;\u411E\u0180eiy\u0607\u060C\u0610dil;\u4122rc;\u411C;\u4413ot;\u4120r;\uC000\u{1D50A};\u62D9pf;\uC000\u{1D53E}eater\u0300EFGLST\u0635\u0644\u064E\u0656\u065B\u0666qual\u0100;L\u063E\u063F\u6265ess;\u62DBullEqual;\u6267reater;\u6AA2ess;\u6277lantEqual;\u6A7Eilde;\u6273cr;\uC000\u{1D4A2};\u626B\u0400Aacfiosu\u0685\u068B\u0696\u069B\u069E\u06AA\u06BE\u06CARDcy;\u442A\u0100ct\u0690\u0694ek;\u42C7;\u405Eirc;\u4124r;\u610ClbertSpace;\u610B\u01F0\u06AF\0\u06B2f;\u610DizontalLine;\u6500\u0100ct\u06C3\u06C5\xF2\u06A9rok;\u4126mp\u0144\u06D0\u06D8ownHum\xF0\u012Fqual;\u624F\u0700EJOacdfgmnostu\u06FA\u06FE\u0703\u0707\u070E\u071A\u071E\u0721\u0728\u0744\u0778\u078B\u078F\u0795cy;\u4415lig;\u4132cy;\u4401cute\u803B\xCD\u40CD\u0100iy\u0713\u0718rc\u803B\xCE\u40CE;\u4418ot;\u4130r;\u6111rave\u803B\xCC\u40CC\u0180;ap\u0720\u072F\u073F\u0100cg\u0734\u0737r;\u412AinaryI;\u6148lie\xF3\u03DD\u01F4\u0749\0\u0762\u0100;e\u074D\u074E\u622C\u0100gr\u0753\u0758ral;\u622Bsection;\u62C2isible\u0100CT\u076C\u0772omma;\u6063imes;\u6062\u0180gpt\u077F\u0783\u0788on;\u412Ef;\uC000\u{1D540}a;\u4399cr;\u6110ilde;\u4128\u01EB\u079A\0\u079Ecy;\u4406l\u803B\xCF\u40CF\u0280cfosu\u07AC\u07B7\u07BC\u07C2\u07D0\u0100iy\u07B1\u07B5rc;\u4134;\u4419r;\uC000\u{1D50D}pf;\uC000\u{1D541}\u01E3\u07C7\0\u07CCr;\uC000\u{1D4A5}rcy;\u4408kcy;\u4404\u0380HJacfos\u07E4\u07E8\u07EC\u07F1\u07FD\u0802\u0808cy;\u4425cy;\u440Cppa;\u439A\u0100ey\u07F6\u07FBdil;\u4136;\u441Ar;\uC000\u{1D50E}pf;\uC000\u{1D542}cr;\uC000\u{1D4A6}\u0580JTaceflmost\u0825\u0829\u082C\u0850\u0863\u09B3\u09B8\u09C7\u09CD\u0A37\u0A47cy;\u4409\u803B<\u403C\u0280cmnpr\u0837\u083C\u0841\u0844\u084Dute;\u4139bda;\u439Bg;\u67EAlacetrf;\u6112r;\u619E\u0180aey\u0857\u085C\u0861ron;\u413Ddil;\u413B;\u441B\u0100fs\u0868\u0970t\u0500ACDFRTUVar\u087E\u08A9\u08B1\u08E0\u08E6\u08FC\u092F\u095B\u0390\u096A\u0100nr\u0883\u088FgleBracket;\u67E8row\u0180;BR\u0899\u089A\u089E\u6190ar;\u61E4ightArrow;\u61C6eiling;\u6308o\u01F5\u08B7\0\u08C3bleBracket;\u67E6n\u01D4\u08C8\0\u08D2eeVector;\u6961ector\u0100;B\u08DB\u08DC\u61C3ar;\u6959loor;\u630Aight\u0100AV\u08EF\u08F5rrow;\u6194ector;\u694E\u0100er\u0901\u0917e\u0180;AV\u0909\u090A\u0910\u62A3rrow;\u61A4ector;\u695Aiangle\u0180;BE\u0924\u0925\u0929\u62B2ar;\u69CFqual;\u62B4p\u0180DTV\u0937\u0942\u094CownVector;\u6951eeVector;\u6960ector\u0100;B\u0956\u0957\u61BFar;\u6958ector\u0100;B\u0965\u0966\u61BCar;\u6952ight\xE1\u039Cs\u0300EFGLST\u097E\u098B\u0995\u099D\u09A2\u09ADqualGreater;\u62DAullEqual;\u6266reater;\u6276ess;\u6AA1lantEqual;\u6A7Dilde;\u6272r;\uC000\u{1D50F}\u0100;e\u09BD\u09BE\u62D8ftarrow;\u61DAidot;\u413F\u0180npw\u09D4\u0A16\u0A1Bg\u0200LRlr\u09DE\u09F7\u0A02\u0A10eft\u0100AR\u09E6\u09ECrrow;\u67F5ightArrow;\u67F7ightArrow;\u67F6eft\u0100ar\u03B3\u0A0Aight\xE1\u03BFight\xE1\u03CAf;\uC000\u{1D543}er\u0100LR\u0A22\u0A2CeftArrow;\u6199ightArrow;\u6198\u0180cht\u0A3E\u0A40\u0A42\xF2\u084C;\u61B0rok;\u4141;\u626A\u0400acefiosu\u0A5A\u0A5D\u0A60\u0A77\u0A7C\u0A85\u0A8B\u0A8Ep;\u6905y;\u441C\u0100dl\u0A65\u0A6FiumSpace;\u605Flintrf;\u6133r;\uC000\u{1D510}nusPlus;\u6213pf;\uC000\u{1D544}c\xF2\u0A76;\u439C\u0480Jacefostu\u0AA3\u0AA7\u0AAD\u0AC0\u0B14\u0B19\u0D91\u0D97\u0D9Ecy;\u440Acute;\u4143\u0180aey\u0AB4\u0AB9\u0ABEron;\u4147dil;\u4145;\u441D\u0180gsw\u0AC7\u0AF0\u0B0Eative\u0180MTV\u0AD3\u0ADF\u0AE8ediumSpace;\u600Bhi\u0100cn\u0AE6\u0AD8\xEB\u0AD9eryThi\xEE\u0AD9ted\u0100GL\u0AF8\u0B06reaterGreate\xF2\u0673essLes\xF3\u0A48Line;\u400Ar;\uC000\u{1D511}\u0200Bnpt\u0B22\u0B28\u0B37\u0B3Areak;\u6060BreakingSpace;\u40A0f;\u6115\u0680;CDEGHLNPRSTV\u0B55\u0B56\u0B6A\u0B7C\u0BA1\u0BEB\u0C04\u0C5E\u0C84\u0CA6\u0CD8\u0D61\u0D85\u6AEC\u0100ou\u0B5B\u0B64ngruent;\u6262pCap;\u626DoubleVerticalBar;\u6226\u0180lqx\u0B83\u0B8A\u0B9Bement;\u6209ual\u0100;T\u0B92\u0B93\u6260ilde;\uC000\u2242\u0338ists;\u6204reater\u0380;EFGLST\u0BB6\u0BB7\u0BBD\u0BC9\u0BD3\u0BD8\u0BE5\u626Fqual;\u6271ullEqual;\uC000\u2267\u0338reater;\uC000\u226B\u0338ess;\u6279lantEqual;\uC000\u2A7E\u0338ilde;\u6275ump\u0144\u0BF2\u0BFDownHump;\uC000\u224E\u0338qual;\uC000\u224F\u0338e\u0100fs\u0C0A\u0C27tTriangle\u0180;BE\u0C1A\u0C1B\u0C21\u62EAar;\uC000\u29CF\u0338qual;\u62ECs\u0300;EGLST\u0C35\u0C36\u0C3C\u0C44\u0C4B\u0C58\u626Equal;\u6270reater;\u6278ess;\uC000\u226A\u0338lantEqual;\uC000\u2A7D\u0338ilde;\u6274ested\u0100GL\u0C68\u0C79reaterGreater;\uC000\u2AA2\u0338essLess;\uC000\u2AA1\u0338recedes\u0180;ES\u0C92\u0C93\u0C9B\u6280qual;\uC000\u2AAF\u0338lantEqual;\u62E0\u0100ei\u0CAB\u0CB9verseElement;\u620CghtTriangle\u0180;BE\u0CCB\u0CCC\u0CD2\u62EBar;\uC000\u29D0\u0338qual;\u62ED\u0100qu\u0CDD\u0D0CuareSu\u0100bp\u0CE8\u0CF9set\u0100;E\u0CF0\u0CF3\uC000\u228F\u0338qual;\u62E2erset\u0100;E\u0D03\u0D06\uC000\u2290\u0338qual;\u62E3\u0180bcp\u0D13\u0D24\u0D4Eset\u0100;E\u0D1B\u0D1E\uC000\u2282\u20D2qual;\u6288ceeds\u0200;EST\u0D32\u0D33\u0D3B\u0D46\u6281qual;\uC000\u2AB0\u0338lantEqual;\u62E1ilde;\uC000\u227F\u0338erset\u0100;E\u0D58\u0D5B\uC000\u2283\u20D2qual;\u6289ilde\u0200;EFT\u0D6E\u0D6F\u0D75\u0D7F\u6241qual;\u6244ullEqual;\u6247ilde;\u6249erticalBar;\u6224cr;\uC000\u{1D4A9}ilde\u803B\xD1\u40D1;\u439D\u0700Eacdfgmoprstuv\u0DBD\u0DC2\u0DC9\u0DD5\u0DDB\u0DE0\u0DE7\u0DFC\u0E02\u0E20\u0E22\u0E32\u0E3F\u0E44lig;\u4152cute\u803B\xD3\u40D3\u0100iy\u0DCE\u0DD3rc\u803B\xD4\u40D4;\u441Eblac;\u4150r;\uC000\u{1D512}rave\u803B\xD2\u40D2\u0180aei\u0DEE\u0DF2\u0DF6cr;\u414Cga;\u43A9cron;\u439Fpf;\uC000\u{1D546}enCurly\u0100DQ\u0E0E\u0E1AoubleQuote;\u601Cuote;\u6018;\u6A54\u0100cl\u0E27\u0E2Cr;\uC000\u{1D4AA}ash\u803B\xD8\u40D8i\u016C\u0E37\u0E3Cde\u803B\xD5\u40D5es;\u6A37ml\u803B\xD6\u40D6er\u0100BP\u0E4B\u0E60\u0100ar\u0E50\u0E53r;\u603Eac\u0100ek\u0E5A\u0E5C;\u63DEet;\u63B4arenthesis;\u63DC\u0480acfhilors\u0E7F\u0E87\u0E8A\u0E8F\u0E92\u0E94\u0E9D\u0EB0\u0EFCrtialD;\u6202y;\u441Fr;\uC000\u{1D513}i;\u43A6;\u43A0usMinus;\u40B1\u0100ip\u0EA2\u0EADncareplan\xE5\u069Df;\u6119\u0200;eio\u0EB9\u0EBA\u0EE0\u0EE4\u6ABBcedes\u0200;EST\u0EC8\u0EC9\u0ECF\u0EDA\u627Aqual;\u6AAFlantEqual;\u627Cilde;\u627Eme;\u6033\u0100dp\u0EE9\u0EEEuct;\u620Fortion\u0100;a\u0225\u0EF9l;\u621D\u0100ci\u0F01\u0F06r;\uC000\u{1D4AB};\u43A8\u0200Ufos\u0F11\u0F16\u0F1B\u0F1FOT\u803B"\u4022r;\uC000\u{1D514}pf;\u611Acr;\uC000\u{1D4AC}\u0600BEacefhiorsu\u0F3E\u0F43\u0F47\u0F60\u0F73\u0FA7\u0FAA\u0FAD\u1096\u10A9\u10B4\u10BEarr;\u6910G\u803B\xAE\u40AE\u0180cnr\u0F4E\u0F53\u0F56ute;\u4154g;\u67EBr\u0100;t\u0F5C\u0F5D\u61A0l;\u6916\u0180aey\u0F67\u0F6C\u0F71ron;\u4158dil;\u4156;\u4420\u0100;v\u0F78\u0F79\u611Cerse\u0100EU\u0F82\u0F99\u0100lq\u0F87\u0F8Eement;\u620Builibrium;\u61CBpEquilibrium;\u696Fr\xBB\u0F79o;\u43A1ght\u0400ACDFTUVa\u0FC1\u0FEB\u0FF3\u1022\u1028\u105B\u1087\u03D8\u0100nr\u0FC6\u0FD2gleBracket;\u67E9row\u0180;BL\u0FDC\u0FDD\u0FE1\u6192ar;\u61E5eftArrow;\u61C4eiling;\u6309o\u01F5\u0FF9\0\u1005bleBracket;\u67E7n\u01D4\u100A\0\u1014eeVector;\u695Dector\u0100;B\u101D\u101E\u61C2ar;\u6955loor;\u630B\u0100er\u102D\u1043e\u0180;AV\u1035\u1036\u103C\u62A2rrow;\u61A6ector;\u695Biangle\u0180;BE\u1050\u1051\u1055\u62B3ar;\u69D0qual;\u62B5p\u0180DTV\u1063\u106E\u1078ownVector;\u694FeeVector;\u695Cector\u0100;B\u1082\u1083\u61BEar;\u6954ector\u0100;B\u1091\u1092\u61C0ar;\u6953\u0100pu\u109B\u109Ef;\u611DndImplies;\u6970ightarrow;\u61DB\u0100ch\u10B9\u10BCr;\u611B;\u61B1leDelayed;\u69F4\u0680HOacfhimoqstu\u10E4\u10F1\u10F7\u10FD\u1119\u111E\u1151\u1156\u1161\u1167\u11B5\u11BB\u11BF\u0100Cc\u10E9\u10EEHcy;\u4429y;\u4428FTcy;\u442Ccute;\u415A\u0280;aeiy\u1108\u1109\u110E\u1113\u1117\u6ABCron;\u4160dil;\u415Erc;\u415C;\u4421r;\uC000\u{1D516}ort\u0200DLRU\u112A\u1134\u113E\u1149ownArrow\xBB\u041EeftArrow\xBB\u089AightArrow\xBB\u0FDDpArrow;\u6191gma;\u43A3allCircle;\u6218pf;\uC000\u{1D54A}\u0272\u116D\0\0\u1170t;\u621Aare\u0200;ISU\u117B\u117C\u1189\u11AF\u65A1ntersection;\u6293u\u0100bp\u118F\u119Eset\u0100;E\u1197\u1198\u628Fqual;\u6291erset\u0100;E\u11A8\u11A9\u6290qual;\u6292nion;\u6294cr;\uC000\u{1D4AE}ar;\u62C6\u0200bcmp\u11C8\u11DB\u1209\u120B\u0100;s\u11CD\u11CE\u62D0et\u0100;E\u11CD\u11D5qual;\u6286\u0100ch\u11E0\u1205eeds\u0200;EST\u11ED\u11EE\u11F4\u11FF\u627Bqual;\u6AB0lantEqual;\u627Dilde;\u627FTh\xE1\u0F8C;\u6211\u0180;es\u1212\u1213\u1223\u62D1rset\u0100;E\u121C\u121D\u6283qual;\u6287et\xBB\u1213\u0580HRSacfhiors\u123E\u1244\u1249\u1255\u125E\u1271\u1276\u129F\u12C2\u12C8\u12D1ORN\u803B\xDE\u40DEADE;\u6122\u0100Hc\u124E\u1252cy;\u440By;\u4426\u0100bu\u125A\u125C;\u4009;\u43A4\u0180aey\u1265\u126A\u126Fron;\u4164dil;\u4162;\u4422r;\uC000\u{1D517}\u0100ei\u127B\u1289\u01F2\u1280\0\u1287efore;\u6234a;\u4398\u0100cn\u128E\u1298kSpace;\uC000\u205F\u200ASpace;\u6009lde\u0200;EFT\u12AB\u12AC\u12B2\u12BC\u623Cqual;\u6243ullEqual;\u6245ilde;\u6248pf;\uC000\u{1D54B}ipleDot;\u60DB\u0100ct\u12D6\u12DBr;\uC000\u{1D4AF}rok;\u4166\u0AE1\u12F7\u130E\u131A\u1326\0\u132C\u1331\0\0\0\0\0\u1338\u133D\u1377\u1385\0\u13FF\u1404\u140A\u1410\u0100cr\u12FB\u1301ute\u803B\xDA\u40DAr\u0100;o\u1307\u1308\u619Fcir;\u6949r\u01E3\u1313\0\u1316y;\u440Eve;\u416C\u0100iy\u131E\u1323rc\u803B\xDB\u40DB;\u4423blac;\u4170r;\uC000\u{1D518}rave\u803B\xD9\u40D9acr;\u416A\u0100di\u1341\u1369er\u0100BP\u1348\u135D\u0100ar\u134D\u1350r;\u405Fac\u0100ek\u1357\u1359;\u63DFet;\u63B5arenthesis;\u63DDon\u0100;P\u1370\u1371\u62C3lus;\u628E\u0100gp\u137B\u137Fon;\u4172f;\uC000\u{1D54C}\u0400ADETadps\u1395\u13AE\u13B8\u13C4\u03E8\u13D2\u13D7\u13F3rrow\u0180;BD\u1150\u13A0\u13A4ar;\u6912ownArrow;\u61C5ownArrow;\u6195quilibrium;\u696Eee\u0100;A\u13CB\u13CC\u62A5rrow;\u61A5own\xE1\u03F3er\u0100LR\u13DE\u13E8eftArrow;\u6196ightArrow;\u6197i\u0100;l\u13F9\u13FA\u43D2on;\u43A5ing;\u416Ecr;\uC000\u{1D4B0}ilde;\u4168ml\u803B\xDC\u40DC\u0480Dbcdefosv\u1427\u142C\u1430\u1433\u143E\u1485\u148A\u1490\u1496ash;\u62ABar;\u6AEBy;\u4412ash\u0100;l\u143B\u143C\u62A9;\u6AE6\u0100er\u1443\u1445;\u62C1\u0180bty\u144C\u1450\u147Aar;\u6016\u0100;i\u144F\u1455cal\u0200BLST\u1461\u1465\u146A\u1474ar;\u6223ine;\u407Ceparator;\u6758ilde;\u6240ThinSpace;\u600Ar;\uC000\u{1D519}pf;\uC000\u{1D54D}cr;\uC000\u{1D4B1}dash;\u62AA\u0280cefos\u14A7\u14AC\u14B1\u14B6\u14BCirc;\u4174dge;\u62C0r;\uC000\u{1D51A}pf;\uC000\u{1D54E}cr;\uC000\u{1D4B2}\u0200fios\u14CB\u14D0\u14D2\u14D8r;\uC000\u{1D51B};\u439Epf;\uC000\u{1D54F}cr;\uC000\u{1D4B3}\u0480AIUacfosu\u14F1\u14F5\u14F9\u14FD\u1504\u150F\u1514\u151A\u1520cy;\u442Fcy;\u4407cy;\u442Ecute\u803B\xDD\u40DD\u0100iy\u1509\u150Drc;\u4176;\u442Br;\uC000\u{1D51C}pf;\uC000\u{1D550}cr;\uC000\u{1D4B4}ml;\u4178\u0400Hacdefos\u1535\u1539\u153F\u154B\u154F\u155D\u1560\u1564cy;\u4416cute;\u4179\u0100ay\u1544\u1549ron;\u417D;\u4417ot;\u417B\u01F2\u1554\0\u155BoWidt\xE8\u0AD9a;\u4396r;\u6128pf;\u6124cr;\uC000\u{1D4B5}\u0BE1\u1583\u158A\u1590\0\u15B0\u15B6\u15BF\0\0\0\0\u15C6\u15DB\u15EB\u165F\u166D\0\u1695\u169B\u16B2\u16B9\0\u16BEcute\u803B\xE1\u40E1reve;\u4103\u0300;Ediuy\u159C\u159D\u15A1\u15A3\u15A8\u15AD\u623E;\uC000\u223E\u0333;\u623Frc\u803B\xE2\u40E2te\u80BB\xB4\u0306;\u4430lig\u803B\xE6\u40E6\u0100;r\xB2\u15BA;\uC000\u{1D51E}rave\u803B\xE0\u40E0\u0100ep\u15CA\u15D6\u0100fp\u15CF\u15D4sym;\u6135\xE8\u15D3ha;\u43B1\u0100ap\u15DFc\u0100cl\u15E4\u15E7r;\u4101g;\u6A3F\u0264\u15F0\0\0\u160A\u0280;adsv\u15FA\u15FB\u15FF\u1601\u1607\u6227nd;\u6A55;\u6A5Clope;\u6A58;\u6A5A\u0380;elmrsz\u1618\u1619\u161B\u161E\u163F\u164F\u1659\u6220;\u69A4e\xBB\u1619sd\u0100;a\u1625\u1626\u6221\u0461\u1630\u1632\u1634\u1636\u1638\u163A\u163C\u163E;\u69A8;\u69A9;\u69AA;\u69AB;\u69AC;\u69AD;\u69AE;\u69AFt\u0100;v\u1645\u1646\u621Fb\u0100;d\u164C\u164D\u62BE;\u699D\u0100pt\u1654\u1657h;\u6222\xBB\xB9arr;\u637C\u0100gp\u1663\u1667on;\u4105f;\uC000\u{1D552}\u0380;Eaeiop\u12C1\u167B\u167D\u1682\u1684\u1687\u168A;\u6A70cir;\u6A6F;\u624Ad;\u624Bs;\u4027rox\u0100;e\u12C1\u1692\xF1\u1683ing\u803B\xE5\u40E5\u0180cty\u16A1\u16A6\u16A8r;\uC000\u{1D4B6};\u402Amp\u0100;e\u12C1\u16AF\xF1\u0288ilde\u803B\xE3\u40E3ml\u803B\xE4\u40E4\u0100ci\u16C2\u16C8onin\xF4\u0272nt;\u6A11\u0800Nabcdefiklnoprsu\u16ED\u16F1\u1730\u173C\u1743\u1748\u1778\u177D\u17E0\u17E6\u1839\u1850\u170D\u193D\u1948\u1970ot;\u6AED\u0100cr\u16F6\u171Ek\u0200ceps\u1700\u1705\u170D\u1713ong;\u624Cpsilon;\u43F6rime;\u6035im\u0100;e\u171A\u171B\u623Dq;\u62CD\u0176\u1722\u1726ee;\u62BDed\u0100;g\u172C\u172D\u6305e\xBB\u172Drk\u0100;t\u135C\u1737brk;\u63B6\u0100oy\u1701\u1741;\u4431quo;\u601E\u0280cmprt\u1753\u175B\u1761\u1764\u1768aus\u0100;e\u010A\u0109ptyv;\u69B0s\xE9\u170Cno\xF5\u0113\u0180ahw\u176F\u1771\u1773;\u43B2;\u6136een;\u626Cr;\uC000\u{1D51F}g\u0380costuvw\u178D\u179D\u17B3\u17C1\u17D5\u17DB\u17DE\u0180aiu\u1794\u1796\u179A\xF0\u0760rc;\u65EFp\xBB\u1371\u0180dpt\u17A4\u17A8\u17ADot;\u6A00lus;\u6A01imes;\u6A02\u0271\u17B9\0\0\u17BEcup;\u6A06ar;\u6605riangle\u0100du\u17CD\u17D2own;\u65BDp;\u65B3plus;\u6A04e\xE5\u1444\xE5\u14ADarow;\u690D\u0180ako\u17ED\u1826\u1835\u0100cn\u17F2\u1823k\u0180lst\u17FA\u05AB\u1802ozenge;\u69EBriangle\u0200;dlr\u1812\u1813\u1818\u181D\u65B4own;\u65BEeft;\u65C2ight;\u65B8k;\u6423\u01B1\u182B\0\u1833\u01B2\u182F\0\u1831;\u6592;\u65914;\u6593ck;\u6588\u0100eo\u183E\u184D\u0100;q\u1843\u1846\uC000=\u20E5uiv;\uC000\u2261\u20E5t;\u6310\u0200ptwx\u1859\u185E\u1867\u186Cf;\uC000\u{1D553}\u0100;t\u13CB\u1863om\xBB\u13CCtie;\u62C8\u0600DHUVbdhmptuv\u1885\u1896\u18AA\u18BB\u18D7\u18DB\u18EC\u18FF\u1905\u190A\u1910\u1921\u0200LRlr\u188E\u1890\u1892\u1894;\u6557;\u6554;\u6556;\u6553\u0280;DUdu\u18A1\u18A2\u18A4\u18A6\u18A8\u6550;\u6566;\u6569;\u6564;\u6567\u0200LRlr\u18B3\u18B5\u18B7\u18B9;\u655D;\u655A;\u655C;\u6559\u0380;HLRhlr\u18CA\u18CB\u18CD\u18CF\u18D1\u18D3\u18D5\u6551;\u656C;\u6563;\u6560;\u656B;\u6562;\u655Fox;\u69C9\u0200LRlr\u18E4\u18E6\u18E8\u18EA;\u6555;\u6552;\u6510;\u650C\u0280;DUdu\u06BD\u18F7\u18F9\u18FB\u18FD;\u6565;\u6568;\u652C;\u6534inus;\u629Flus;\u629Eimes;\u62A0\u0200LRlr\u1919\u191B\u191D\u191F;\u655B;\u6558;\u6518;\u6514\u0380;HLRhlr\u1930\u1931\u1933\u1935\u1937\u1939\u193B\u6502;\u656A;\u6561;\u655E;\u653C;\u6524;\u651C\u0100ev\u0123\u1942bar\u803B\xA6\u40A6\u0200ceio\u1951\u1956\u195A\u1960r;\uC000\u{1D4B7}mi;\u604Fm\u0100;e\u171A\u171Cl\u0180;bh\u1968\u1969\u196B\u405C;\u69C5sub;\u67C8\u016C\u1974\u197El\u0100;e\u1979\u197A\u6022t\xBB\u197Ap\u0180;Ee\u012F\u1985\u1987;\u6AAE\u0100;q\u06DC\u06DB\u0CE1\u19A7\0\u19E8\u1A11\u1A15\u1A32\0\u1A37\u1A50\0\0\u1AB4\0\0\u1AC1\0\0\u1B21\u1B2E\u1B4D\u1B52\0\u1BFD\0\u1C0C\u0180cpr\u19AD\u19B2\u19DDute;\u4107\u0300;abcds\u19BF\u19C0\u19C4\u19CA\u19D5\u19D9\u6229nd;\u6A44rcup;\u6A49\u0100au\u19CF\u19D2p;\u6A4Bp;\u6A47ot;\u6A40;\uC000\u2229\uFE00\u0100eo\u19E2\u19E5t;\u6041\xEE\u0693\u0200aeiu\u19F0\u19FB\u1A01\u1A05\u01F0\u19F5\0\u19F8s;\u6A4Don;\u410Ddil\u803B\xE7\u40E7rc;\u4109ps\u0100;s\u1A0C\u1A0D\u6A4Cm;\u6A50ot;\u410B\u0180dmn\u1A1B\u1A20\u1A26il\u80BB\xB8\u01ADptyv;\u69B2t\u8100\xA2;e\u1A2D\u1A2E\u40A2r\xE4\u01B2r;\uC000\u{1D520}\u0180cei\u1A3D\u1A40\u1A4Dy;\u4447ck\u0100;m\u1A47\u1A48\u6713ark\xBB\u1A48;\u43C7r\u0380;Ecefms\u1A5F\u1A60\u1A62\u1A6B\u1AA4\u1AAA\u1AAE\u65CB;\u69C3\u0180;el\u1A69\u1A6A\u1A6D\u42C6q;\u6257e\u0261\u1A74\0\0\u1A88rrow\u0100lr\u1A7C\u1A81eft;\u61BAight;\u61BB\u0280RSacd\u1A92\u1A94\u1A96\u1A9A\u1A9F\xBB\u0F47;\u64C8st;\u629Birc;\u629Aash;\u629Dnint;\u6A10id;\u6AEFcir;\u69C2ubs\u0100;u\u1ABB\u1ABC\u6663it\xBB\u1ABC\u02EC\u1AC7\u1AD4\u1AFA\0\u1B0Aon\u0100;e\u1ACD\u1ACE\u403A\u0100;q\xC7\xC6\u026D\u1AD9\0\0\u1AE2a\u0100;t\u1ADE\u1ADF\u402C;\u4040\u0180;fl\u1AE8\u1AE9\u1AEB\u6201\xEE\u1160e\u0100mx\u1AF1\u1AF6ent\xBB\u1AE9e\xF3\u024D\u01E7\u1AFE\0\u1B07\u0100;d\u12BB\u1B02ot;\u6A6Dn\xF4\u0246\u0180fry\u1B10\u1B14\u1B17;\uC000\u{1D554}o\xE4\u0254\u8100\xA9;s\u0155\u1B1Dr;\u6117\u0100ao\u1B25\u1B29rr;\u61B5ss;\u6717\u0100cu\u1B32\u1B37r;\uC000\u{1D4B8}\u0100bp\u1B3C\u1B44\u0100;e\u1B41\u1B42\u6ACF;\u6AD1\u0100;e\u1B49\u1B4A\u6AD0;\u6AD2dot;\u62EF\u0380delprvw\u1B60\u1B6C\u1B77\u1B82\u1BAC\u1BD4\u1BF9arr\u0100lr\u1B68\u1B6A;\u6938;\u6935\u0270\u1B72\0\0\u1B75r;\u62DEc;\u62DFarr\u0100;p\u1B7F\u1B80\u61B6;\u693D\u0300;bcdos\u1B8F\u1B90\u1B96\u1BA1\u1BA5\u1BA8\u622Arcap;\u6A48\u0100au\u1B9B\u1B9Ep;\u6A46p;\u6A4Aot;\u628Dr;\u6A45;\uC000\u222A\uFE00\u0200alrv\u1BB5\u1BBF\u1BDE\u1BE3rr\u0100;m\u1BBC\u1BBD\u61B7;\u693Cy\u0180evw\u1BC7\u1BD4\u1BD8q\u0270\u1BCE\0\0\u1BD2re\xE3\u1B73u\xE3\u1B75ee;\u62CEedge;\u62CFen\u803B\xA4\u40A4earrow\u0100lr\u1BEE\u1BF3eft\xBB\u1B80ight\xBB\u1BBDe\xE4\u1BDD\u0100ci\u1C01\u1C07onin\xF4\u01F7nt;\u6231lcty;\u632D\u0980AHabcdefhijlorstuwz\u1C38\u1C3B\u1C3F\u1C5D\u1C69\u1C75\u1C8A\u1C9E\u1CAC\u1CB7\u1CFB\u1CFF\u1D0D\u1D7B\u1D91\u1DAB\u1DBB\u1DC6\u1DCDr\xF2\u0381ar;\u6965\u0200glrs\u1C48\u1C4D\u1C52\u1C54ger;\u6020eth;\u6138\xF2\u1133h\u0100;v\u1C5A\u1C5B\u6010\xBB\u090A\u016B\u1C61\u1C67arow;\u690Fa\xE3\u0315\u0100ay\u1C6E\u1C73ron;\u410F;\u4434\u0180;ao\u0332\u1C7C\u1C84\u0100gr\u02BF\u1C81r;\u61CAtseq;\u6A77\u0180glm\u1C91\u1C94\u1C98\u803B\xB0\u40B0ta;\u43B4ptyv;\u69B1\u0100ir\u1CA3\u1CA8sht;\u697F;\uC000\u{1D521}ar\u0100lr\u1CB3\u1CB5\xBB\u08DC\xBB\u101E\u0280aegsv\u1CC2\u0378\u1CD6\u1CDC\u1CE0m\u0180;os\u0326\u1CCA\u1CD4nd\u0100;s\u0326\u1CD1uit;\u6666amma;\u43DDin;\u62F2\u0180;io\u1CE7\u1CE8\u1CF8\u40F7de\u8100\xF7;o\u1CE7\u1CF0ntimes;\u62C7n\xF8\u1CF7cy;\u4452c\u026F\u1D06\0\0\u1D0Arn;\u631Eop;\u630D\u0280lptuw\u1D18\u1D1D\u1D22\u1D49\u1D55lar;\u4024f;\uC000\u{1D555}\u0280;emps\u030B\u1D2D\u1D37\u1D3D\u1D42q\u0100;d\u0352\u1D33ot;\u6251inus;\u6238lus;\u6214quare;\u62A1blebarwedg\xE5\xFAn\u0180adh\u112E\u1D5D\u1D67ownarrow\xF3\u1C83arpoon\u0100lr\u1D72\u1D76ef\xF4\u1CB4igh\xF4\u1CB6\u0162\u1D7F\u1D85karo\xF7\u0F42\u026F\u1D8A\0\0\u1D8Ern;\u631Fop;\u630C\u0180cot\u1D98\u1DA3\u1DA6\u0100ry\u1D9D\u1DA1;\uC000\u{1D4B9};\u4455l;\u69F6rok;\u4111\u0100dr\u1DB0\u1DB4ot;\u62F1i\u0100;f\u1DBA\u1816\u65BF\u0100ah\u1DC0\u1DC3r\xF2\u0429a\xF2\u0FA6angle;\u69A6\u0100ci\u1DD2\u1DD5y;\u445Fgrarr;\u67FF\u0900Dacdefglmnopqrstux\u1E01\u1E09\u1E19\u1E38\u0578\u1E3C\u1E49\u1E61\u1E7E\u1EA5\u1EAF\u1EBD\u1EE1\u1F2A\u1F37\u1F44\u1F4E\u1F5A\u0100Do\u1E06\u1D34o\xF4\u1C89\u0100cs\u1E0E\u1E14ute\u803B\xE9\u40E9ter;\u6A6E\u0200aioy\u1E22\u1E27\u1E31\u1E36ron;\u411Br\u0100;c\u1E2D\u1E2E\u6256\u803B\xEA\u40EAlon;\u6255;\u444Dot;\u4117\u0100Dr\u1E41\u1E45ot;\u6252;\uC000\u{1D522}\u0180;rs\u1E50\u1E51\u1E57\u6A9Aave\u803B\xE8\u40E8\u0100;d\u1E5C\u1E5D\u6A96ot;\u6A98\u0200;ils\u1E6A\u1E6B\u1E72\u1E74\u6A99nters;\u63E7;\u6113\u0100;d\u1E79\u1E7A\u6A95ot;\u6A97\u0180aps\u1E85\u1E89\u1E97cr;\u4113ty\u0180;sv\u1E92\u1E93\u1E95\u6205et\xBB\u1E93p\u01001;\u1E9D\u1EA4\u0133\u1EA1\u1EA3;\u6004;\u6005\u6003\u0100gs\u1EAA\u1EAC;\u414Bp;\u6002\u0100gp\u1EB4\u1EB8on;\u4119f;\uC000\u{1D556}\u0180als\u1EC4\u1ECE\u1ED2r\u0100;s\u1ECA\u1ECB\u62D5l;\u69E3us;\u6A71i\u0180;lv\u1EDA\u1EDB\u1EDF\u43B5on\xBB\u1EDB;\u43F5\u0200csuv\u1EEA\u1EF3\u1F0B\u1F23\u0100io\u1EEF\u1E31rc\xBB\u1E2E\u0269\u1EF9\0\0\u1EFB\xED\u0548ant\u0100gl\u1F02\u1F06tr\xBB\u1E5Dess\xBB\u1E7A\u0180aei\u1F12\u1F16\u1F1Als;\u403Dst;\u625Fv\u0100;D\u0235\u1F20D;\u6A78parsl;\u69E5\u0100Da\u1F2F\u1F33ot;\u6253rr;\u6971\u0180cdi\u1F3E\u1F41\u1EF8r;\u612Fo\xF4\u0352\u0100ah\u1F49\u1F4B;\u43B7\u803B\xF0\u40F0\u0100mr\u1F53\u1F57l\u803B\xEB\u40EBo;\u60AC\u0180cip\u1F61\u1F64\u1F67l;\u4021s\xF4\u056E\u0100eo\u1F6C\u1F74ctatio\xEE\u0559nential\xE5\u0579\u09E1\u1F92\0\u1F9E\0\u1FA1\u1FA7\0\0\u1FC6\u1FCC\0\u1FD3\0\u1FE6\u1FEA\u2000\0\u2008\u205Allingdotse\xF1\u1E44y;\u4444male;\u6640\u0180ilr\u1FAD\u1FB3\u1FC1lig;\u8000\uFB03\u0269\u1FB9\0\0\u1FBDg;\u8000\uFB00ig;\u8000\uFB04;\uC000\u{1D523}lig;\u8000\uFB01lig;\uC000fj\u0180alt\u1FD9\u1FDC\u1FE1t;\u666Dig;\u8000\uFB02ns;\u65B1of;\u4192\u01F0\u1FEE\0\u1FF3f;\uC000\u{1D557}\u0100ak\u05BF\u1FF7\u0100;v\u1FFC\u1FFD\u62D4;\u6AD9artint;\u6A0D\u0100ao\u200C\u2055\u0100cs\u2011\u2052\u03B1\u201A\u2030\u2038\u2045\u2048\0\u2050\u03B2\u2022\u2025\u2027\u202A\u202C\0\u202E\u803B\xBD\u40BD;\u6153\u803B\xBC\u40BC;\u6155;\u6159;\u615B\u01B3\u2034\0\u2036;\u6154;\u6156\u02B4\u203E\u2041\0\0\u2043\u803B\xBE\u40BE;\u6157;\u615C5;\u6158\u01B6\u204C\0\u204E;\u615A;\u615D8;\u615El;\u6044wn;\u6322cr;\uC000\u{1D4BB}\u0880Eabcdefgijlnorstv\u2082\u2089\u209F\u20A5\u20B0\u20B4\u20F0\u20F5\u20FA\u20FF\u2103\u2112\u2138\u0317\u213E\u2152\u219E\u0100;l\u064D\u2087;\u6A8C\u0180cmp\u2090\u2095\u209Dute;\u41F5ma\u0100;d\u209C\u1CDA\u43B3;\u6A86reve;\u411F\u0100iy\u20AA\u20AErc;\u411D;\u4433ot;\u4121\u0200;lqs\u063E\u0642\u20BD\u20C9\u0180;qs\u063E\u064C\u20C4lan\xF4\u0665\u0200;cdl\u0665\u20D2\u20D5\u20E5c;\u6AA9ot\u0100;o\u20DC\u20DD\u6A80\u0100;l\u20E2\u20E3\u6A82;\u6A84\u0100;e\u20EA\u20ED\uC000\u22DB\uFE00s;\u6A94r;\uC000\u{1D524}\u0100;g\u0673\u061Bmel;\u6137cy;\u4453\u0200;Eaj\u065A\u210C\u210E\u2110;\u6A92;\u6AA5;\u6AA4\u0200Eaes\u211B\u211D\u2129\u2134;\u6269p\u0100;p\u2123\u2124\u6A8Arox\xBB\u2124\u0100;q\u212E\u212F\u6A88\u0100;q\u212E\u211Bim;\u62E7pf;\uC000\u{1D558}\u0100ci\u2143\u2146r;\u610Am\u0180;el\u066B\u214E\u2150;\u6A8E;\u6A90\u8300>;cdlqr\u05EE\u2160\u216A\u216E\u2173\u2179\u0100ci\u2165\u2167;\u6AA7r;\u6A7Aot;\u62D7Par;\u6995uest;\u6A7C\u0280adels\u2184\u216A\u2190\u0656\u219B\u01F0\u2189\0\u218Epro\xF8\u209Er;\u6978q\u0100lq\u063F\u2196les\xF3\u2088i\xED\u066B\u0100en\u21A3\u21ADrtneqq;\uC000\u2269\uFE00\xC5\u21AA\u0500Aabcefkosy\u21C4\u21C7\u21F1\u21F5\u21FA\u2218\u221D\u222F\u2268\u227Dr\xF2\u03A0\u0200ilmr\u21D0\u21D4\u21D7\u21DBrs\xF0\u1484f\xBB\u2024il\xF4\u06A9\u0100dr\u21E0\u21E4cy;\u444A\u0180;cw\u08F4\u21EB\u21EFir;\u6948;\u61ADar;\u610Firc;\u4125\u0180alr\u2201\u220E\u2213rts\u0100;u\u2209\u220A\u6665it\xBB\u220Alip;\u6026con;\u62B9r;\uC000\u{1D525}s\u0100ew\u2223\u2229arow;\u6925arow;\u6926\u0280amopr\u223A\u223E\u2243\u225E\u2263rr;\u61FFtht;\u623Bk\u0100lr\u2249\u2253eftarrow;\u61A9ightarrow;\u61AAf;\uC000\u{1D559}bar;\u6015\u0180clt\u226F\u2274\u2278r;\uC000\u{1D4BD}as\xE8\u21F4rok;\u4127\u0100bp\u2282\u2287ull;\u6043hen\xBB\u1C5B\u0AE1\u22A3\0\u22AA\0\u22B8\u22C5\u22CE\0\u22D5\u22F3\0\0\u22F8\u2322\u2367\u2362\u237F\0\u2386\u23AA\u23B4cute\u803B\xED\u40ED\u0180;iy\u0771\u22B0\u22B5rc\u803B\xEE\u40EE;\u4438\u0100cx\u22BC\u22BFy;\u4435cl\u803B\xA1\u40A1\u0100fr\u039F\u22C9;\uC000\u{1D526}rave\u803B\xEC\u40EC\u0200;ino\u073E\u22DD\u22E9\u22EE\u0100in\u22E2\u22E6nt;\u6A0Ct;\u622Dfin;\u69DCta;\u6129lig;\u4133\u0180aop\u22FE\u231A\u231D\u0180cgt\u2305\u2308\u2317r;\u412B\u0180elp\u071F\u230F\u2313in\xE5\u078Ear\xF4\u0720h;\u4131f;\u62B7ed;\u41B5\u0280;cfot\u04F4\u232C\u2331\u233D\u2341are;\u6105in\u0100;t\u2338\u2339\u621Eie;\u69DDdo\xF4\u2319\u0280;celp\u0757\u234C\u2350\u235B\u2361al;\u62BA\u0100gr\u2355\u2359er\xF3\u1563\xE3\u234Darhk;\u6A17rod;\u6A3C\u0200cgpt\u236F\u2372\u2376\u237By;\u4451on;\u412Ff;\uC000\u{1D55A}a;\u43B9uest\u803B\xBF\u40BF\u0100ci\u238A\u238Fr;\uC000\u{1D4BE}n\u0280;Edsv\u04F4\u239B\u239D\u23A1\u04F3;\u62F9ot;\u62F5\u0100;v\u23A6\u23A7\u62F4;\u62F3\u0100;i\u0777\u23AElde;\u4129\u01EB\u23B8\0\u23BCcy;\u4456l\u803B\xEF\u40EF\u0300cfmosu\u23CC\u23D7\u23DC\u23E1\u23E7\u23F5\u0100iy\u23D1\u23D5rc;\u4135;\u4439r;\uC000\u{1D527}ath;\u4237pf;\uC000\u{1D55B}\u01E3\u23EC\0\u23F1r;\uC000\u{1D4BF}rcy;\u4458kcy;\u4454\u0400acfghjos\u240B\u2416\u2422\u2427\u242D\u2431\u2435\u243Bppa\u0100;v\u2413\u2414\u43BA;\u43F0\u0100ey\u241B\u2420dil;\u4137;\u443Ar;\uC000\u{1D528}reen;\u4138cy;\u4445cy;\u445Cpf;\uC000\u{1D55C}cr;\uC000\u{1D4C0}\u0B80ABEHabcdefghjlmnoprstuv\u2470\u2481\u2486\u248D\u2491\u250E\u253D\u255A\u2580\u264E\u265E\u2665\u2679\u267D\u269A\u26B2\u26D8\u275D\u2768\u278B\u27C0\u2801\u2812\u0180art\u2477\u247A\u247Cr\xF2\u09C6\xF2\u0395ail;\u691Barr;\u690E\u0100;g\u0994\u248B;\u6A8Bar;\u6962\u0963\u24A5\0\u24AA\0\u24B1\0\0\0\0\0\u24B5\u24BA\0\u24C6\u24C8\u24CD\0\u24F9ute;\u413Amptyv;\u69B4ra\xEE\u084Cbda;\u43BBg\u0180;dl\u088E\u24C1\u24C3;\u6991\xE5\u088E;\u6A85uo\u803B\xAB\u40ABr\u0400;bfhlpst\u0899\u24DE\u24E6\u24E9\u24EB\u24EE\u24F1\u24F5\u0100;f\u089D\u24E3s;\u691Fs;\u691D\xEB\u2252p;\u61ABl;\u6939im;\u6973l;\u61A2\u0180;ae\u24FF\u2500\u2504\u6AABil;\u6919\u0100;s\u2509\u250A\u6AAD;\uC000\u2AAD\uFE00\u0180abr\u2515\u2519\u251Drr;\u690Crk;\u6772\u0100ak\u2522\u252Cc\u0100ek\u2528\u252A;\u407B;\u405B\u0100es\u2531\u2533;\u698Bl\u0100du\u2539\u253B;\u698F;\u698D\u0200aeuy\u2546\u254B\u2556\u2558ron;\u413E\u0100di\u2550\u2554il;\u413C\xEC\u08B0\xE2\u2529;\u443B\u0200cqrs\u2563\u2566\u256D\u257Da;\u6936uo\u0100;r\u0E19\u1746\u0100du\u2572\u2577har;\u6967shar;\u694Bh;\u61B2\u0280;fgqs\u258B\u258C\u0989\u25F3\u25FF\u6264t\u0280ahlrt\u2598\u25A4\u25B7\u25C2\u25E8rrow\u0100;t\u0899\u25A1a\xE9\u24F6arpoon\u0100du\u25AF\u25B4own\xBB\u045Ap\xBB\u0966eftarrows;\u61C7ight\u0180ahs\u25CD\u25D6\u25DErrow\u0100;s\u08F4\u08A7arpoon\xF3\u0F98quigarro\xF7\u21F0hreetimes;\u62CB\u0180;qs\u258B\u0993\u25FAlan\xF4\u09AC\u0280;cdgs\u09AC\u260A\u260D\u261D\u2628c;\u6AA8ot\u0100;o\u2614\u2615\u6A7F\u0100;r\u261A\u261B\u6A81;\u6A83\u0100;e\u2622\u2625\uC000\u22DA\uFE00s;\u6A93\u0280adegs\u2633\u2639\u263D\u2649\u264Bppro\xF8\u24C6ot;\u62D6q\u0100gq\u2643\u2645\xF4\u0989gt\xF2\u248C\xF4\u099Bi\xED\u09B2\u0180ilr\u2655\u08E1\u265Asht;\u697C;\uC000\u{1D529}\u0100;E\u099C\u2663;\u6A91\u0161\u2669\u2676r\u0100du\u25B2\u266E\u0100;l\u0965\u2673;\u696Alk;\u6584cy;\u4459\u0280;acht\u0A48\u2688\u268B\u2691\u2696r\xF2\u25C1orne\xF2\u1D08ard;\u696Bri;\u65FA\u0100io\u269F\u26A4dot;\u4140ust\u0100;a\u26AC\u26AD\u63B0che\xBB\u26AD\u0200Eaes\u26BB\u26BD\u26C9\u26D4;\u6268p\u0100;p\u26C3\u26C4\u6A89rox\xBB\u26C4\u0100;q\u26CE\u26CF\u6A87\u0100;q\u26CE\u26BBim;\u62E6\u0400abnoptwz\u26E9\u26F4\u26F7\u271A\u272F\u2741\u2747\u2750\u0100nr\u26EE\u26F1g;\u67ECr;\u61FDr\xEB\u08C1g\u0180lmr\u26FF\u270D\u2714eft\u0100ar\u09E6\u2707ight\xE1\u09F2apsto;\u67FCight\xE1\u09FDparrow\u0100lr\u2725\u2729ef\xF4\u24EDight;\u61AC\u0180afl\u2736\u2739\u273Dr;\u6985;\uC000\u{1D55D}us;\u6A2Dimes;\u6A34\u0161\u274B\u274Fst;\u6217\xE1\u134E\u0180;ef\u2757\u2758\u1800\u65CAnge\xBB\u2758ar\u0100;l\u2764\u2765\u4028t;\u6993\u0280achmt\u2773\u2776\u277C\u2785\u2787r\xF2\u08A8orne\xF2\u1D8Car\u0100;d\u0F98\u2783;\u696D;\u600Eri;\u62BF\u0300achiqt\u2798\u279D\u0A40\u27A2\u27AE\u27BBquo;\u6039r;\uC000\u{1D4C1}m\u0180;eg\u09B2\u27AA\u27AC;\u6A8D;\u6A8F\u0100bu\u252A\u27B3o\u0100;r\u0E1F\u27B9;\u601Arok;\u4142\u8400<;cdhilqr\u082B\u27D2\u2639\u27DC\u27E0\u27E5\u27EA\u27F0\u0100ci\u27D7\u27D9;\u6AA6r;\u6A79re\xE5\u25F2mes;\u62C9arr;\u6976uest;\u6A7B\u0100Pi\u27F5\u27F9ar;\u6996\u0180;ef\u2800\u092D\u181B\u65C3r\u0100du\u2807\u280Dshar;\u694Ahar;\u6966\u0100en\u2817\u2821rtneqq;\uC000\u2268\uFE00\xC5\u281E\u0700Dacdefhilnopsu\u2840\u2845\u2882\u288E\u2893\u28A0\u28A5\u28A8\u28DA\u28E2\u28E4\u0A83\u28F3\u2902Dot;\u623A\u0200clpr\u284E\u2852\u2863\u287Dr\u803B\xAF\u40AF\u0100et\u2857\u2859;\u6642\u0100;e\u285E\u285F\u6720se\xBB\u285F\u0100;s\u103B\u2868to\u0200;dlu\u103B\u2873\u2877\u287Bow\xEE\u048Cef\xF4\u090F\xF0\u13D1ker;\u65AE\u0100oy\u2887\u288Cmma;\u6A29;\u443Cash;\u6014asuredangle\xBB\u1626r;\uC000\u{1D52A}o;\u6127\u0180cdn\u28AF\u28B4\u28C9ro\u803B\xB5\u40B5\u0200;acd\u1464\u28BD\u28C0\u28C4s\xF4\u16A7ir;\u6AF0ot\u80BB\xB7\u01B5us\u0180;bd\u28D2\u1903\u28D3\u6212\u0100;u\u1D3C\u28D8;\u6A2A\u0163\u28DE\u28E1p;\u6ADB\xF2\u2212\xF0\u0A81\u0100dp\u28E9\u28EEels;\u62A7f;\uC000\u{1D55E}\u0100ct\u28F8\u28FDr;\uC000\u{1D4C2}pos\xBB\u159D\u0180;lm\u2909\u290A\u290D\u43BCtimap;\u62B8\u0C00GLRVabcdefghijlmoprstuvw\u2942\u2953\u297E\u2989\u2998\u29DA\u29E9\u2A15\u2A1A\u2A58\u2A5D\u2A83\u2A95\u2AA4\u2AA8\u2B04\u2B07\u2B44\u2B7F\u2BAE\u2C34\u2C67\u2C7C\u2CE9\u0100gt\u2947\u294B;\uC000\u22D9\u0338\u0100;v\u2950\u0BCF\uC000\u226B\u20D2\u0180elt\u295A\u2972\u2976ft\u0100ar\u2961\u2967rrow;\u61CDightarrow;\u61CE;\uC000\u22D8\u0338\u0100;v\u297B\u0C47\uC000\u226A\u20D2ightarrow;\u61CF\u0100Dd\u298E\u2993ash;\u62AFash;\u62AE\u0280bcnpt\u29A3\u29A7\u29AC\u29B1\u29CCla\xBB\u02DEute;\u4144g;\uC000\u2220\u20D2\u0280;Eiop\u0D84\u29BC\u29C0\u29C5\u29C8;\uC000\u2A70\u0338d;\uC000\u224B\u0338s;\u4149ro\xF8\u0D84ur\u0100;a\u29D3\u29D4\u666El\u0100;s\u29D3\u0B38\u01F3\u29DF\0\u29E3p\u80BB\xA0\u0B37mp\u0100;e\u0BF9\u0C00\u0280aeouy\u29F4\u29FE\u2A03\u2A10\u2A13\u01F0\u29F9\0\u29FB;\u6A43on;\u4148dil;\u4146ng\u0100;d\u0D7E\u2A0Aot;\uC000\u2A6D\u0338p;\u6A42;\u443Dash;\u6013\u0380;Aadqsx\u0B92\u2A29\u2A2D\u2A3B\u2A41\u2A45\u2A50rr;\u61D7r\u0100hr\u2A33\u2A36k;\u6924\u0100;o\u13F2\u13F0ot;\uC000\u2250\u0338ui\xF6\u0B63\u0100ei\u2A4A\u2A4Ear;\u6928\xED\u0B98ist\u0100;s\u0BA0\u0B9Fr;\uC000\u{1D52B}\u0200Eest\u0BC5\u2A66\u2A79\u2A7C\u0180;qs\u0BBC\u2A6D\u0BE1\u0180;qs\u0BBC\u0BC5\u2A74lan\xF4\u0BE2i\xED\u0BEA\u0100;r\u0BB6\u2A81\xBB\u0BB7\u0180Aap\u2A8A\u2A8D\u2A91r\xF2\u2971rr;\u61AEar;\u6AF2\u0180;sv\u0F8D\u2A9C\u0F8C\u0100;d\u2AA1\u2AA2\u62FC;\u62FAcy;\u445A\u0380AEadest\u2AB7\u2ABA\u2ABE\u2AC2\u2AC5\u2AF6\u2AF9r\xF2\u2966;\uC000\u2266\u0338rr;\u619Ar;\u6025\u0200;fqs\u0C3B\u2ACE\u2AE3\u2AEFt\u0100ar\u2AD4\u2AD9rro\xF7\u2AC1ightarro\xF7\u2A90\u0180;qs\u0C3B\u2ABA\u2AEAlan\xF4\u0C55\u0100;s\u0C55\u2AF4\xBB\u0C36i\xED\u0C5D\u0100;r\u0C35\u2AFEi\u0100;e\u0C1A\u0C25i\xE4\u0D90\u0100pt\u2B0C\u2B11f;\uC000\u{1D55F}\u8180\xAC;in\u2B19\u2B1A\u2B36\u40ACn\u0200;Edv\u0B89\u2B24\u2B28\u2B2E;\uC000\u22F9\u0338ot;\uC000\u22F5\u0338\u01E1\u0B89\u2B33\u2B35;\u62F7;\u62F6i\u0100;v\u0CB8\u2B3C\u01E1\u0CB8\u2B41\u2B43;\u62FE;\u62FD\u0180aor\u2B4B\u2B63\u2B69r\u0200;ast\u0B7B\u2B55\u2B5A\u2B5Flle\xEC\u0B7Bl;\uC000\u2AFD\u20E5;\uC000\u2202\u0338lint;\u6A14\u0180;ce\u0C92\u2B70\u2B73u\xE5\u0CA5\u0100;c\u0C98\u2B78\u0100;e\u0C92\u2B7D\xF1\u0C98\u0200Aait\u2B88\u2B8B\u2B9D\u2BA7r\xF2\u2988rr\u0180;cw\u2B94\u2B95\u2B99\u619B;\uC000\u2933\u0338;\uC000\u219D\u0338ghtarrow\xBB\u2B95ri\u0100;e\u0CCB\u0CD6\u0380chimpqu\u2BBD\u2BCD\u2BD9\u2B04\u0B78\u2BE4\u2BEF\u0200;cer\u0D32\u2BC6\u0D37\u2BC9u\xE5\u0D45;\uC000\u{1D4C3}ort\u026D\u2B05\0\0\u2BD6ar\xE1\u2B56m\u0100;e\u0D6E\u2BDF\u0100;q\u0D74\u0D73su\u0100bp\u2BEB\u2BED\xE5\u0CF8\xE5\u0D0B\u0180bcp\u2BF6\u2C11\u2C19\u0200;Ees\u2BFF\u2C00\u0D22\u2C04\u6284;\uC000\u2AC5\u0338et\u0100;e\u0D1B\u2C0Bq\u0100;q\u0D23\u2C00c\u0100;e\u0D32\u2C17\xF1\u0D38\u0200;Ees\u2C22\u2C23\u0D5F\u2C27\u6285;\uC000\u2AC6\u0338et\u0100;e\u0D58\u2C2Eq\u0100;q\u0D60\u2C23\u0200gilr\u2C3D\u2C3F\u2C45\u2C47\xEC\u0BD7lde\u803B\xF1\u40F1\xE7\u0C43iangle\u0100lr\u2C52\u2C5Ceft\u0100;e\u0C1A\u2C5A\xF1\u0C26ight\u0100;e\u0CCB\u2C65\xF1\u0CD7\u0100;m\u2C6C\u2C6D\u43BD\u0180;es\u2C74\u2C75\u2C79\u4023ro;\u6116p;\u6007\u0480DHadgilrs\u2C8F\u2C94\u2C99\u2C9E\u2CA3\u2CB0\u2CB6\u2CD3\u2CE3ash;\u62ADarr;\u6904p;\uC000\u224D\u20D2ash;\u62AC\u0100et\u2CA8\u2CAC;\uC000\u2265\u20D2;\uC000>\u20D2nfin;\u69DE\u0180Aet\u2CBD\u2CC1\u2CC5rr;\u6902;\uC000\u2264\u20D2\u0100;r\u2CCA\u2CCD\uC000<\u20D2ie;\uC000\u22B4\u20D2\u0100At\u2CD8\u2CDCrr;\u6903rie;\uC000\u22B5\u20D2im;\uC000\u223C\u20D2\u0180Aan\u2CF0\u2CF4\u2D02rr;\u61D6r\u0100hr\u2CFA\u2CFDk;\u6923\u0100;o\u13E7\u13E5ear;\u6927\u1253\u1A95\0\0\0\0\0\0\0\0\0\0\0\0\0\u2D2D\0\u2D38\u2D48\u2D60\u2D65\u2D72\u2D84\u1B07\0\0\u2D8D\u2DAB\0\u2DC8\u2DCE\0\u2DDC\u2E19\u2E2B\u2E3E\u2E43\u0100cs\u2D31\u1A97ute\u803B\xF3\u40F3\u0100iy\u2D3C\u2D45r\u0100;c\u1A9E\u2D42\u803B\xF4\u40F4;\u443E\u0280abios\u1AA0\u2D52\u2D57\u01C8\u2D5Alac;\u4151v;\u6A38old;\u69BClig;\u4153\u0100cr\u2D69\u2D6Dir;\u69BF;\uC000\u{1D52C}\u036F\u2D79\0\0\u2D7C\0\u2D82n;\u42DBave\u803B\xF2\u40F2;\u69C1\u0100bm\u2D88\u0DF4ar;\u69B5\u0200acit\u2D95\u2D98\u2DA5\u2DA8r\xF2\u1A80\u0100ir\u2D9D\u2DA0r;\u69BEoss;\u69BBn\xE5\u0E52;\u69C0\u0180aei\u2DB1\u2DB5\u2DB9cr;\u414Dga;\u43C9\u0180cdn\u2DC0\u2DC5\u01CDron;\u43BF;\u69B6pf;\uC000\u{1D560}\u0180ael\u2DD4\u2DD7\u01D2r;\u69B7rp;\u69B9\u0380;adiosv\u2DEA\u2DEB\u2DEE\u2E08\u2E0D\u2E10\u2E16\u6228r\xF2\u1A86\u0200;efm\u2DF7\u2DF8\u2E02\u2E05\u6A5Dr\u0100;o\u2DFE\u2DFF\u6134f\xBB\u2DFF\u803B\xAA\u40AA\u803B\xBA\u40BAgof;\u62B6r;\u6A56lope;\u6A57;\u6A5B\u0180clo\u2E1F\u2E21\u2E27\xF2\u2E01ash\u803B\xF8\u40F8l;\u6298i\u016C\u2E2F\u2E34de\u803B\xF5\u40F5es\u0100;a\u01DB\u2E3As;\u6A36ml\u803B\xF6\u40F6bar;\u633D\u0AE1\u2E5E\0\u2E7D\0\u2E80\u2E9D\0\u2EA2\u2EB9\0\0\u2ECB\u0E9C\0\u2F13\0\0\u2F2B\u2FBC\0\u2FC8r\u0200;ast\u0403\u2E67\u2E72\u0E85\u8100\xB6;l\u2E6D\u2E6E\u40B6le\xEC\u0403\u0269\u2E78\0\0\u2E7Bm;\u6AF3;\u6AFDy;\u443Fr\u0280cimpt\u2E8B\u2E8F\u2E93\u1865\u2E97nt;\u4025od;\u402Eil;\u6030enk;\u6031r;\uC000\u{1D52D}\u0180imo\u2EA8\u2EB0\u2EB4\u0100;v\u2EAD\u2EAE\u43C6;\u43D5ma\xF4\u0A76ne;\u660E\u0180;tv\u2EBF\u2EC0\u2EC8\u43C0chfork\xBB\u1FFD;\u43D6\u0100au\u2ECF\u2EDFn\u0100ck\u2ED5\u2EDDk\u0100;h\u21F4\u2EDB;\u610E\xF6\u21F4s\u0480;abcdemst\u2EF3\u2EF4\u1908\u2EF9\u2EFD\u2F04\u2F06\u2F0A\u2F0E\u402Bcir;\u6A23ir;\u6A22\u0100ou\u1D40\u2F02;\u6A25;\u6A72n\u80BB\xB1\u0E9Dim;\u6A26wo;\u6A27\u0180ipu\u2F19\u2F20\u2F25ntint;\u6A15f;\uC000\u{1D561}nd\u803B\xA3\u40A3\u0500;Eaceinosu\u0EC8\u2F3F\u2F41\u2F44\u2F47\u2F81\u2F89\u2F92\u2F7E\u2FB6;\u6AB3p;\u6AB7u\xE5\u0ED9\u0100;c\u0ECE\u2F4C\u0300;acens\u0EC8\u2F59\u2F5F\u2F66\u2F68\u2F7Eppro\xF8\u2F43urlye\xF1\u0ED9\xF1\u0ECE\u0180aes\u2F6F\u2F76\u2F7Approx;\u6AB9qq;\u6AB5im;\u62E8i\xED\u0EDFme\u0100;s\u2F88\u0EAE\u6032\u0180Eas\u2F78\u2F90\u2F7A\xF0\u2F75\u0180dfp\u0EEC\u2F99\u2FAF\u0180als\u2FA0\u2FA5\u2FAAlar;\u632Eine;\u6312urf;\u6313\u0100;t\u0EFB\u2FB4\xEF\u0EFBrel;\u62B0\u0100ci\u2FC0\u2FC5r;\uC000\u{1D4C5};\u43C8ncsp;\u6008\u0300fiopsu\u2FDA\u22E2\u2FDF\u2FE5\u2FEB\u2FF1r;\uC000\u{1D52E}pf;\uC000\u{1D562}rime;\u6057cr;\uC000\u{1D4C6}\u0180aeo\u2FF8\u3009\u3013t\u0100ei\u2FFE\u3005rnion\xF3\u06B0nt;\u6A16st\u0100;e\u3010\u3011\u403F\xF1\u1F19\xF4\u0F14\u0A80ABHabcdefhilmnoprstux\u3040\u3051\u3055\u3059\u30E0\u310E\u312B\u3147\u3162\u3172\u318E\u3206\u3215\u3224\u3229\u3258\u326E\u3272\u3290\u32B0\u32B7\u0180art\u3047\u304A\u304Cr\xF2\u10B3\xF2\u03DDail;\u691Car\xF2\u1C65ar;\u6964\u0380cdenqrt\u3068\u3075\u3078\u307F\u308F\u3094\u30CC\u0100eu\u306D\u3071;\uC000\u223D\u0331te;\u4155i\xE3\u116Emptyv;\u69B3g\u0200;del\u0FD1\u3089\u308B\u308D;\u6992;\u69A5\xE5\u0FD1uo\u803B\xBB\u40BBr\u0580;abcfhlpstw\u0FDC\u30AC\u30AF\u30B7\u30B9\u30BC\u30BE\u30C0\u30C3\u30C7\u30CAp;\u6975\u0100;f\u0FE0\u30B4s;\u6920;\u6933s;\u691E\xEB\u225D\xF0\u272El;\u6945im;\u6974l;\u61A3;\u619D\u0100ai\u30D1\u30D5il;\u691Ao\u0100;n\u30DB\u30DC\u6236al\xF3\u0F1E\u0180abr\u30E7\u30EA\u30EEr\xF2\u17E5rk;\u6773\u0100ak\u30F3\u30FDc\u0100ek\u30F9\u30FB;\u407D;\u405D\u0100es\u3102\u3104;\u698Cl\u0100du\u310A\u310C;\u698E;\u6990\u0200aeuy\u3117\u311C\u3127\u3129ron;\u4159\u0100di\u3121\u3125il;\u4157\xEC\u0FF2\xE2\u30FA;\u4440\u0200clqs\u3134\u3137\u313D\u3144a;\u6937dhar;\u6969uo\u0100;r\u020E\u020Dh;\u61B3\u0180acg\u314E\u315F\u0F44l\u0200;ips\u0F78\u3158\u315B\u109Cn\xE5\u10BBar\xF4\u0FA9t;\u65AD\u0180ilr\u3169\u1023\u316Esht;\u697D;\uC000\u{1D52F}\u0100ao\u3177\u3186r\u0100du\u317D\u317F\xBB\u047B\u0100;l\u1091\u3184;\u696C\u0100;v\u318B\u318C\u43C1;\u43F1\u0180gns\u3195\u31F9\u31FCht\u0300ahlrst\u31A4\u31B0\u31C2\u31D8\u31E4\u31EErrow\u0100;t\u0FDC\u31ADa\xE9\u30C8arpoon\u0100du\u31BB\u31BFow\xEE\u317Ep\xBB\u1092eft\u0100ah\u31CA\u31D0rrow\xF3\u0FEAarpoon\xF3\u0551ightarrows;\u61C9quigarro\xF7\u30CBhreetimes;\u62CCg;\u42DAingdotse\xF1\u1F32\u0180ahm\u320D\u3210\u3213r\xF2\u0FEAa\xF2\u0551;\u600Foust\u0100;a\u321E\u321F\u63B1che\xBB\u321Fmid;\u6AEE\u0200abpt\u3232\u323D\u3240\u3252\u0100nr\u3237\u323Ag;\u67EDr;\u61FEr\xEB\u1003\u0180afl\u3247\u324A\u324Er;\u6986;\uC000\u{1D563}us;\u6A2Eimes;\u6A35\u0100ap\u325D\u3267r\u0100;g\u3263\u3264\u4029t;\u6994olint;\u6A12ar\xF2\u31E3\u0200achq\u327B\u3280\u10BC\u3285quo;\u603Ar;\uC000\u{1D4C7}\u0100bu\u30FB\u328Ao\u0100;r\u0214\u0213\u0180hir\u3297\u329B\u32A0re\xE5\u31F8mes;\u62CAi\u0200;efl\u32AA\u1059\u1821\u32AB\u65B9tri;\u69CEluhar;\u6968;\u611E\u0D61\u32D5\u32DB\u32DF\u332C\u3338\u3371\0\u337A\u33A4\0\0\u33EC\u33F0\0\u3428\u3448\u345A\u34AD\u34B1\u34CA\u34F1\0\u3616\0\0\u3633cute;\u415Bqu\xEF\u27BA\u0500;Eaceinpsy\u11ED\u32F3\u32F5\u32FF\u3302\u330B\u330F\u331F\u3326\u3329;\u6AB4\u01F0\u32FA\0\u32FC;\u6AB8on;\u4161u\xE5\u11FE\u0100;d\u11F3\u3307il;\u415Frc;\u415D\u0180Eas\u3316\u3318\u331B;\u6AB6p;\u6ABAim;\u62E9olint;\u6A13i\xED\u1204;\u4441ot\u0180;be\u3334\u1D47\u3335\u62C5;\u6A66\u0380Aacmstx\u3346\u334A\u3357\u335B\u335E\u3363\u336Drr;\u61D8r\u0100hr\u3350\u3352\xEB\u2228\u0100;o\u0A36\u0A34t\u803B\xA7\u40A7i;\u403Bwar;\u6929m\u0100in\u3369\xF0nu\xF3\xF1t;\u6736r\u0100;o\u3376\u2055\uC000\u{1D530}\u0200acoy\u3382\u3386\u3391\u33A0rp;\u666F\u0100hy\u338B\u338Fcy;\u4449;\u4448rt\u026D\u3399\0\0\u339Ci\xE4\u1464ara\xEC\u2E6F\u803B\xAD\u40AD\u0100gm\u33A8\u33B4ma\u0180;fv\u33B1\u33B2\u33B2\u43C3;\u43C2\u0400;deglnpr\u12AB\u33C5\u33C9\u33CE\u33D6\u33DE\u33E1\u33E6ot;\u6A6A\u0100;q\u12B1\u12B0\u0100;E\u33D3\u33D4\u6A9E;\u6AA0\u0100;E\u33DB\u33DC\u6A9D;\u6A9Fe;\u6246lus;\u6A24arr;\u6972ar\xF2\u113D\u0200aeit\u33F8\u3408\u340F\u3417\u0100ls\u33FD\u3404lsetm\xE9\u336Ahp;\u6A33parsl;\u69E4\u0100dl\u1463\u3414e;\u6323\u0100;e\u341C\u341D\u6AAA\u0100;s\u3422\u3423\u6AAC;\uC000\u2AAC\uFE00\u0180flp\u342E\u3433\u3442tcy;\u444C\u0100;b\u3438\u3439\u402F\u0100;a\u343E\u343F\u69C4r;\u633Ff;\uC000\u{1D564}a\u0100dr\u344D\u0402es\u0100;u\u3454\u3455\u6660it\xBB\u3455\u0180csu\u3460\u3479\u349F\u0100au\u3465\u346Fp\u0100;s\u1188\u346B;\uC000\u2293\uFE00p\u0100;s\u11B4\u3475;\uC000\u2294\uFE00u\u0100bp\u347F\u348F\u0180;es\u1197\u119C\u3486et\u0100;e\u1197\u348D\xF1\u119D\u0180;es\u11A8\u11AD\u3496et\u0100;e\u11A8\u349D\xF1\u11AE\u0180;af\u117B\u34A6\u05B0r\u0165\u34AB\u05B1\xBB\u117Car\xF2\u1148\u0200cemt\u34B9\u34BE\u34C2\u34C5r;\uC000\u{1D4C8}tm\xEE\xF1i\xEC\u3415ar\xE6\u11BE\u0100ar\u34CE\u34D5r\u0100;f\u34D4\u17BF\u6606\u0100an\u34DA\u34EDight\u0100ep\u34E3\u34EApsilo\xEE\u1EE0h\xE9\u2EAFs\xBB\u2852\u0280bcmnp\u34FB\u355E\u1209\u358B\u358E\u0480;Edemnprs\u350E\u350F\u3511\u3515\u351E\u3523\u352C\u3531\u3536\u6282;\u6AC5ot;\u6ABD\u0100;d\u11DA\u351Aot;\u6AC3ult;\u6AC1\u0100Ee\u3528\u352A;\u6ACB;\u628Alus;\u6ABFarr;\u6979\u0180eiu\u353D\u3552\u3555t\u0180;en\u350E\u3545\u354Bq\u0100;q\u11DA\u350Feq\u0100;q\u352B\u3528m;\u6AC7\u0100bp\u355A\u355C;\u6AD5;\u6AD3c\u0300;acens\u11ED\u356C\u3572\u3579\u357B\u3326ppro\xF8\u32FAurlye\xF1\u11FE\xF1\u11F3\u0180aes\u3582\u3588\u331Bppro\xF8\u331Aq\xF1\u3317g;\u666A\u0680123;Edehlmnps\u35A9\u35AC\u35AF\u121C\u35B2\u35B4\u35C0\u35C9\u35D5\u35DA\u35DF\u35E8\u35ED\u803B\xB9\u40B9\u803B\xB2\u40B2\u803B\xB3\u40B3;\u6AC6\u0100os\u35B9\u35BCt;\u6ABEub;\u6AD8\u0100;d\u1222\u35C5ot;\u6AC4s\u0100ou\u35CF\u35D2l;\u67C9b;\u6AD7arr;\u697Bult;\u6AC2\u0100Ee\u35E4\u35E6;\u6ACC;\u628Blus;\u6AC0\u0180eiu\u35F4\u3609\u360Ct\u0180;en\u121C\u35FC\u3602q\u0100;q\u1222\u35B2eq\u0100;q\u35E7\u35E4m;\u6AC8\u0100bp\u3611\u3613;\u6AD4;\u6AD6\u0180Aan\u361C\u3620\u362Drr;\u61D9r\u0100hr\u3626\u3628\xEB\u222E\u0100;o\u0A2B\u0A29war;\u692Alig\u803B\xDF\u40DF\u0BE1\u3651\u365D\u3660\u12CE\u3673\u3679\0\u367E\u36C2\0\0\0\0\0\u36DB\u3703\0\u3709\u376C\0\0\0\u3787\u0272\u3656\0\0\u365Bget;\u6316;\u43C4r\xEB\u0E5F\u0180aey\u3666\u366B\u3670ron;\u4165dil;\u4163;\u4442lrec;\u6315r;\uC000\u{1D531}\u0200eiko\u3686\u369D\u36B5\u36BC\u01F2\u368B\0\u3691e\u01004f\u1284\u1281a\u0180;sv\u3698\u3699\u369B\u43B8ym;\u43D1\u0100cn\u36A2\u36B2k\u0100as\u36A8\u36AEppro\xF8\u12C1im\xBB\u12ACs\xF0\u129E\u0100as\u36BA\u36AE\xF0\u12C1rn\u803B\xFE\u40FE\u01EC\u031F\u36C6\u22E7es\u8180\xD7;bd\u36CF\u36D0\u36D8\u40D7\u0100;a\u190F\u36D5r;\u6A31;\u6A30\u0180eps\u36E1\u36E3\u3700\xE1\u2A4D\u0200;bcf\u0486\u36EC\u36F0\u36F4ot;\u6336ir;\u6AF1\u0100;o\u36F9\u36FC\uC000\u{1D565}rk;\u6ADA\xE1\u3362rime;\u6034\u0180aip\u370F\u3712\u3764d\xE5\u1248\u0380adempst\u3721\u374D\u3740\u3751\u3757\u375C\u375Fngle\u0280;dlqr\u3730\u3731\u3736\u3740\u3742\u65B5own\xBB\u1DBBeft\u0100;e\u2800\u373E\xF1\u092E;\u625Cight\u0100;e\u32AA\u374B\xF1\u105Aot;\u65ECinus;\u6A3Alus;\u6A39b;\u69CDime;\u6A3Bezium;\u63E2\u0180cht\u3772\u377D\u3781\u0100ry\u3777\u377B;\uC000\u{1D4C9};\u4446cy;\u445Brok;\u4167\u0100io\u378B\u378Ex\xF4\u1777head\u0100lr\u3797\u37A0eftarro\xF7\u084Fightarrow\xBB\u0F5D\u0900AHabcdfghlmoprstuw\u37D0\u37D3\u37D7\u37E4\u37F0\u37FC\u380E\u381C\u3823\u3834\u3851\u385D\u386B\u38A9\u38CC\u38D2\u38EA\u38F6r\xF2\u03EDar;\u6963\u0100cr\u37DC\u37E2ute\u803B\xFA\u40FA\xF2\u1150r\u01E3\u37EA\0\u37EDy;\u445Eve;\u416D\u0100iy\u37F5\u37FArc\u803B\xFB\u40FB;\u4443\u0180abh\u3803\u3806\u380Br\xF2\u13ADlac;\u4171a\xF2\u13C3\u0100ir\u3813\u3818sht;\u697E;\uC000\u{1D532}rave\u803B\xF9\u40F9\u0161\u3827\u3831r\u0100lr\u382C\u382E\xBB\u0957\xBB\u1083lk;\u6580\u0100ct\u3839\u384D\u026F\u383F\0\0\u384Arn\u0100;e\u3845\u3846\u631Cr\xBB\u3846op;\u630Fri;\u65F8\u0100al\u3856\u385Acr;\u416B\u80BB\xA8\u0349\u0100gp\u3862\u3866on;\u4173f;\uC000\u{1D566}\u0300adhlsu\u114B\u3878\u387D\u1372\u3891\u38A0own\xE1\u13B3arpoon\u0100lr\u3888\u388Cef\xF4\u382Digh\xF4\u382Fi\u0180;hl\u3899\u389A\u389C\u43C5\xBB\u13FAon\xBB\u389Aparrows;\u61C8\u0180cit\u38B0\u38C4\u38C8\u026F\u38B6\0\0\u38C1rn\u0100;e\u38BC\u38BD\u631Dr\xBB\u38BDop;\u630Eng;\u416Fri;\u65F9cr;\uC000\u{1D4CA}\u0180dir\u38D9\u38DD\u38E2ot;\u62F0lde;\u4169i\u0100;f\u3730\u38E8\xBB\u1813\u0100am\u38EF\u38F2r\xF2\u38A8l\u803B\xFC\u40FCangle;\u69A7\u0780ABDacdeflnoprsz\u391C\u391F\u3929\u392D\u39B5\u39B8\u39BD\u39DF\u39E4\u39E8\u39F3\u39F9\u39FD\u3A01\u3A20r\xF2\u03F7ar\u0100;v\u3926\u3927\u6AE8;\u6AE9as\xE8\u03E1\u0100nr\u3932\u3937grt;\u699C\u0380eknprst\u34E3\u3946\u394B\u3952\u395D\u3964\u3996app\xE1\u2415othin\xE7\u1E96\u0180hir\u34EB\u2EC8\u3959op\xF4\u2FB5\u0100;h\u13B7\u3962\xEF\u318D\u0100iu\u3969\u396Dgm\xE1\u33B3\u0100bp\u3972\u3984setneq\u0100;q\u397D\u3980\uC000\u228A\uFE00;\uC000\u2ACB\uFE00setneq\u0100;q\u398F\u3992\uC000\u228B\uFE00;\uC000\u2ACC\uFE00\u0100hr\u399B\u399Fet\xE1\u369Ciangle\u0100lr\u39AA\u39AFeft\xBB\u0925ight\xBB\u1051y;\u4432ash\xBB\u1036\u0180elr\u39C4\u39D2\u39D7\u0180;be\u2DEA\u39CB\u39CFar;\u62BBq;\u625Alip;\u62EE\u0100bt\u39DC\u1468a\xF2\u1469r;\uC000\u{1D533}tr\xE9\u39AEsu\u0100bp\u39EF\u39F1\xBB\u0D1C\xBB\u0D59pf;\uC000\u{1D567}ro\xF0\u0EFBtr\xE9\u39B4\u0100cu\u3A06\u3A0Br;\uC000\u{1D4CB}\u0100bp\u3A10\u3A18n\u0100Ee\u3980\u3A16\xBB\u397En\u0100Ee\u3992\u3A1E\xBB\u3990igzag;\u699A\u0380cefoprs\u3A36\u3A3B\u3A56\u3A5B\u3A54\u3A61\u3A6Airc;\u4175\u0100di\u3A40\u3A51\u0100bg\u3A45\u3A49ar;\u6A5Fe\u0100;q\u15FA\u3A4F;\u6259erp;\u6118r;\uC000\u{1D534}pf;\uC000\u{1D568}\u0100;e\u1479\u3A66at\xE8\u1479cr;\uC000\u{1D4CC}\u0AE3\u178E\u3A87\0\u3A8B\0\u3A90\u3A9B\0\0\u3A9D\u3AA8\u3AAB\u3AAF\0\0\u3AC3\u3ACE\0\u3AD8\u17DC\u17DFtr\xE9\u17D1r;\uC000\u{1D535}\u0100Aa\u3A94\u3A97r\xF2\u03C3r\xF2\u09F6;\u43BE\u0100Aa\u3AA1\u3AA4r\xF2\u03B8r\xF2\u09EBa\xF0\u2713is;\u62FB\u0180dpt\u17A4\u3AB5\u3ABE\u0100fl\u3ABA\u17A9;\uC000\u{1D569}im\xE5\u17B2\u0100Aa\u3AC7\u3ACAr\xF2\u03CEr\xF2\u0A01\u0100cq\u3AD2\u17B8r;\uC000\u{1D4CD}\u0100pt\u17D6\u3ADCr\xE9\u17D4\u0400acefiosu\u3AF0\u3AFD\u3B08\u3B0C\u3B11\u3B15\u3B1B\u3B21c\u0100uy\u3AF6\u3AFBte\u803B\xFD\u40FD;\u444F\u0100iy\u3B02\u3B06rc;\u4177;\u444Bn\u803B\xA5\u40A5r;\uC000\u{1D536}cy;\u4457pf;\uC000\u{1D56A}cr;\uC000\u{1D4CE}\u0100cm\u3B26\u3B29y;\u444El\u803B\xFF\u40FF\u0500acdefhiosw\u3B42\u3B48\u3B54\u3B58\u3B64\u3B69\u3B6D\u3B74\u3B7A\u3B80cute;\u417A\u0100ay\u3B4D\u3B52ron;\u417E;\u4437ot;\u417C\u0100et\u3B5D\u3B61tr\xE6\u155Fa;\u43B6r;\uC000\u{1D537}cy;\u4436grarr;\u61DDpf;\uC000\u{1D56B}cr;\uC000\u{1D4CF}\u0100jn\u3B85\u3B87;\u600Dj;\u600C'.split("").map(e=>e.charCodeAt(0)));var Qe=new Uint16Array("\u0200aglq \x1B\u026D\0\0p;\u4026os;\u4027t;\u403Et;\u403Cuot;\u4022".split("").map(e=>e.charCodeAt(0)));var gu,vs=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]]),ce=(gu=String.fromCodePoint)!==null&&gu!==void 0?gu:function(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 _e(e){var t;return e>=55296&&e<=57343||e>1114111?65533:(t=vs.get(e))!==null&&t!==void 0?t:e}var I;(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"})(I||(I={}));var ks=32,R;(function(e){e[e.VALUE_LENGTH=49152]="VALUE_LENGTH",e[e.BRANCH_LENGTH=16256]="BRANCH_LENGTH",e[e.JUMP_TABLE=127]="JUMP_TABLE"})(R||(R={}));function bu(e){return e>=I.ZERO&&e<=I.NINE}function Ss(e){return e>=I.UPPER_A&&e<=I.UPPER_F||e>=I.LOWER_A&&e<=I.LOWER_F}function Ts(e){return e>=I.UPPER_A&&e<=I.UPPER_Z||e>=I.LOWER_A&&e<=I.LOWER_Z||bu(e)}function Es(e){return e===I.EQUALS||Ts(e)}var L;(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"})(L||(L={}));var G;(function(e){e[e.Legacy=0]="Legacy",e[e.Strict=1]="Strict",e[e.Attribute=2]="Attribute"})(G||(G={}));var et=class{constructor(t,u,r){this.decodeTree=t,this.emitCodePoint=u,this.errors=r,this.state=L.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=G.Strict}startEntity(t){this.decodeMode=t,this.state=L.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1}write(t,u){switch(this.state){case L.EntityStart:return t.charCodeAt(u)===I.NUM?(this.state=L.NumericStart,this.consumed+=1,this.stateNumericStart(t,u+1)):(this.state=L.NamedEntity,this.stateNamedEntity(t,u));case L.NumericStart:return this.stateNumericStart(t,u);case L.NumericDecimal:return this.stateNumericDecimal(t,u);case L.NumericHex:return this.stateNumericHex(t,u);case L.NamedEntity:return this.stateNamedEntity(t,u)}}stateNumericStart(t,u){return u>=t.length?-1:(t.charCodeAt(u)|ks)===I.LOWER_X?(this.state=L.NumericHex,this.consumed+=1,this.stateNumericHex(t,u+1)):(this.state=L.NumericDecimal,this.stateNumericDecimal(t,u))}addToNumericResult(t,u,r,i){if(u!==r){let a=r-u;this.result=this.result*Math.pow(i,a)+parseInt(t.substr(u,a),i),this.consumed+=a}}stateNumericHex(t,u){let r=u;for(;u<t.length;){let i=t.charCodeAt(u);if(bu(i)||Ss(i))u+=1;else return this.addToNumericResult(t,r,u,16),this.emitNumericEntity(i,3)}return this.addToNumericResult(t,r,u,16),-1}stateNumericDecimal(t,u){let r=u;for(;u<t.length;){let i=t.charCodeAt(u);if(bu(i))u+=1;else return this.addToNumericResult(t,r,u,10),this.emitNumericEntity(i,2)}return this.addToNumericResult(t,r,u,10),-1}emitNumericEntity(t,u){var r;if(this.consumed<=u)return(r=this.errors)===null||r===void 0||r.absenceOfDigitsInNumericCharacterReference(this.consumed),0;if(t===I.SEMI)this.consumed+=1;else if(this.decodeMode===G.Strict)return 0;return this.emitCodePoint(_e(this.result),this.consumed),this.errors&&(t!==I.SEMI&&this.errors.missingSemicolonAfterCharacterReference(),this.errors.validateNumericCharacterReference(this.result)),this.consumed}stateNamedEntity(t,u){let{decodeTree:r}=this,i=r[this.treeIndex],a=(i&R.VALUE_LENGTH)>>14;for(;u<t.length;u++,this.excess++){let n=t.charCodeAt(u);if(this.treeIndex=xu(r,i,this.treeIndex+Math.max(1,a),n),this.treeIndex<0)return this.result===0||this.decodeMode===G.Attribute&&(a===0||Es(n))?0:this.emitNotTerminatedNamedEntity();if(i=r[this.treeIndex],a=(i&R.VALUE_LENGTH)>>14,a!==0){if(n===I.SEMI)return this.emitNamedEntityData(this.treeIndex,a,this.consumed+this.excess);this.decodeMode!==G.Strict&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}}return-1}emitNotTerminatedNamedEntity(){var t;let{result:u,decodeTree:r}=this,i=(r[u]&R.VALUE_LENGTH)>>14;return this.emitNamedEntityData(u,i,this.consumed),(t=this.errors)===null||t===void 0||t.missingSemicolonAfterCharacterReference(),this.consumed}emitNamedEntityData(t,u,r){let{decodeTree:i}=this;return this.emitCodePoint(u===1?i[t]&~R.VALUE_LENGTH:i[t+1],r),u===3&&this.emitCodePoint(i[t+2],r),r}end(){var t;switch(this.state){case L.NamedEntity:return this.result!==0&&(this.decodeMode!==G.Attribute||this.result===this.treeIndex)?this.emitNotTerminatedNamedEntity():0;case L.NumericDecimal:return this.emitNumericEntity(0,2);case L.NumericHex:return this.emitNumericEntity(0,3);case L.NumericStart:return(t=this.errors)===null||t===void 0||t.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case L.EntityStart:return 0}}};function Ai(e){let t="",u=new et(e,r=>t+=ce(r));return function(i,a){let n=0,s=0;for(;(s=i.indexOf("&",s))>=0;){t+=i.slice(n,s),u.startEntity(a);let l=u.write(i,s+1);if(l<0){n=s+u.end();break}n=s+l,s=l===0?n+1:n}let c=t+i.slice(n);return t="",c}}function xu(e,t,u,r){let i=(t&R.BRANCH_LENGTH)>>7,a=t&R.JUMP_TABLE;if(i===0)return a!==0&&r===a?u:-1;if(a){let c=r-a;return c<0||c>=i?-1:e[u+c]-1}let n=u,s=n+i-1;for(;n<=s;){let c=n+s>>>1,l=e[c];if(l<r)n=c+1;else if(l>r)s=c-1;else return e[c+i]}return-1}var lc=Ai(Ze),dc=Ai(Qe);var p;(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"})(p||(p={}));var d;(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.SpecialStartSequence=23]="SpecialStartSequence",e[e.InSpecialTag=24]="InSpecialTag",e[e.BeforeEntity=25]="BeforeEntity",e[e.BeforeNumericEntity=26]="BeforeNumericEntity",e[e.InNamedEntity=27]="InNamedEntity",e[e.InNumericEntity=28]="InNumericEntity",e[e.InHexEntity=29]="InHexEntity"})(d||(d={}));function z(e){return e===p.Space||e===p.NewLine||e===p.Tab||e===p.FormFeed||e===p.CarriageReturn}function tt(e){return e===p.Slash||e===p.Gt||z(e)}function _i(e){return e>=p.Zero&&e<=p.Nine}function As(e){return e>=p.LowerA&&e<=p.LowerZ||e>=p.UpperA&&e<=p.UpperZ}function _s(e){return e>=p.UpperA&&e<=p.UpperF||e>=p.LowerA&&e<=p.LowerF}var U;(function(e){e[e.NoValue=0]="NoValue",e[e.Unquoted=1]="Unquoted",e[e.Single=2]="Single",e[e.Double=3]="Double"})(U||(U={}));var B={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])},le=class{constructor({xmlMode:t=!1,decodeEntities:u=!0},r){this.cbs=r,this.state=d.Text,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=d.Text,this.isSpecial=!1,this.running=!0,this.offset=0,this.currentSequence=void 0,this.sequenceIndex=0,this.trieIndex=0,this.trieCurrent=0,this.entityResult=0,this.entityExcess=0,this.xmlMode=t,this.decodeEntities=u,this.entityTrie=t?Qe:Ze}reset(){this.state=d.Text,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=d.Text,this.currentSequence=void 0,this.running=!0,this.offset=0}write(t){this.offset+=this.buffer.length,this.buffer=t,this.parse()}end(){this.running&&this.finish()}pause(){this.running=!1}resume(){this.running=!0,this.index<this.buffer.length+this.offset&&this.parse()}getIndex(){return this.index}getSectionStart(){return this.sectionStart}stateText(t){t===p.Lt||!this.decodeEntities&&this.fastForwardTo(p.Lt)?(this.index>this.sectionStart&&this.cbs.ontext(this.sectionStart,this.index),this.state=d.BeforeTagName,this.sectionStart=this.index):this.decodeEntities&&t===p.Amp&&(this.state=d.BeforeEntity)}stateSpecialStartSequence(t){let u=this.sequenceIndex===this.currentSequence.length;if(!(u?tt(t):(t|32)===this.currentSequence[this.sequenceIndex]))this.isSpecial=!1;else if(!u){this.sequenceIndex++;return}this.sequenceIndex=0,this.state=d.InTagName,this.stateInTagName(t)}stateInSpecialTag(t){if(this.sequenceIndex===this.currentSequence.length){if(t===p.Gt||z(t)){let u=this.index-this.currentSequence.length;if(this.sectionStart<u){let r=this.index;this.index=u,this.cbs.ontext(this.sectionStart,u),this.index=r}this.isSpecial=!1,this.sectionStart=u+2,this.stateInClosingTagName(t);return}this.sequenceIndex=0}(t|32)===this.currentSequence[this.sequenceIndex]?this.sequenceIndex+=1:this.sequenceIndex===0?this.currentSequence===B.TitleEnd?this.decodeEntities&&t===p.Amp&&(this.state=d.BeforeEntity):this.fastForwardTo(p.Lt)&&(this.sequenceIndex=1):this.sequenceIndex=+(t===p.Lt)}stateCDATASequence(t){t===B.Cdata[this.sequenceIndex]?++this.sequenceIndex===B.Cdata.length&&(this.state=d.InCommentLike,this.currentSequence=B.CdataEnd,this.sequenceIndex=0,this.sectionStart=this.index+1):(this.sequenceIndex=0,this.state=d.InDeclaration,this.stateInDeclaration(t))}fastForwardTo(t){for(;++this.index<this.buffer.length+this.offset;)if(this.buffer.charCodeAt(this.index-this.offset)===t)return!0;return this.index=this.buffer.length+this.offset-1,!1}stateInCommentLike(t){t===this.currentSequence[this.sequenceIndex]?++this.sequenceIndex===this.currentSequence.length&&(this.currentSequence===B.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=d.Text):this.sequenceIndex===0?this.fastForwardTo(this.currentSequence[0])&&(this.sequenceIndex=1):t!==this.currentSequence[this.sequenceIndex-1]&&(this.sequenceIndex=0)}isTagStartChar(t){return this.xmlMode?!tt(t):As(t)}startSpecial(t,u){this.isSpecial=!0,this.currentSequence=t,this.sequenceIndex=u,this.state=d.SpecialStartSequence}stateBeforeTagName(t){if(t===p.ExclamationMark)this.state=d.BeforeDeclaration,this.sectionStart=this.index+1;else if(t===p.Questionmark)this.state=d.InProcessingInstruction,this.sectionStart=this.index+1;else if(this.isTagStartChar(t)){let u=t|32;this.sectionStart=this.index,!this.xmlMode&&u===B.TitleEnd[2]?this.startSpecial(B.TitleEnd,3):this.state=!this.xmlMode&&u===B.ScriptEnd[2]?d.BeforeSpecialS:d.InTagName}else t===p.Slash?this.state=d.BeforeClosingTagName:(this.state=d.Text,this.stateText(t))}stateInTagName(t){tt(t)&&(this.cbs.onopentagname(this.sectionStart,this.index),this.sectionStart=-1,this.state=d.BeforeAttributeName,this.stateBeforeAttributeName(t))}stateBeforeClosingTagName(t){z(t)||(t===p.Gt?this.state=d.Text:(this.state=this.isTagStartChar(t)?d.InClosingTagName:d.InSpecialComment,this.sectionStart=this.index))}stateInClosingTagName(t){(t===p.Gt||z(t))&&(this.cbs.onclosetag(this.sectionStart,this.index),this.sectionStart=-1,this.state=d.AfterClosingTagName,this.stateAfterClosingTagName(t))}stateAfterClosingTagName(t){(t===p.Gt||this.fastForwardTo(p.Gt))&&(this.state=d.Text,this.baseState=d.Text,this.sectionStart=this.index+1)}stateBeforeAttributeName(t){t===p.Gt?(this.cbs.onopentagend(this.index),this.isSpecial?(this.state=d.InSpecialTag,this.sequenceIndex=0):this.state=d.Text,this.baseState=this.state,this.sectionStart=this.index+1):t===p.Slash?this.state=d.InSelfClosingTag:z(t)||(this.state=d.InAttributeName,this.sectionStart=this.index)}stateInSelfClosingTag(t){t===p.Gt?(this.cbs.onselfclosingtag(this.index),this.state=d.Text,this.baseState=d.Text,this.sectionStart=this.index+1,this.isSpecial=!1):z(t)||(this.state=d.BeforeAttributeName,this.stateBeforeAttributeName(t))}stateInAttributeName(t){(t===p.Eq||tt(t))&&(this.cbs.onattribname(this.sectionStart,this.index),this.sectionStart=-1,this.state=d.AfterAttributeName,this.stateAfterAttributeName(t))}stateAfterAttributeName(t){t===p.Eq?this.state=d.BeforeAttributeValue:t===p.Slash||t===p.Gt?(this.cbs.onattribend(U.NoValue,this.index),this.state=d.BeforeAttributeName,this.stateBeforeAttributeName(t)):z(t)||(this.cbs.onattribend(U.NoValue,this.index),this.state=d.InAttributeName,this.sectionStart=this.index)}stateBeforeAttributeValue(t){t===p.DoubleQuote?(this.state=d.InAttributeValueDq,this.sectionStart=this.index+1):t===p.SingleQuote?(this.state=d.InAttributeValueSq,this.sectionStart=this.index+1):z(t)||(this.sectionStart=this.index,this.state=d.InAttributeValueNq,this.stateInAttributeValueNoQuotes(t))}handleInAttributeValue(t,u){t===u||!this.decodeEntities&&this.fastForwardTo(u)?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(u===p.DoubleQuote?U.Double:U.Single,this.index),this.state=d.BeforeAttributeName):this.decodeEntities&&t===p.Amp&&(this.baseState=this.state,this.state=d.BeforeEntity)}stateInAttributeValueDoubleQuotes(t){this.handleInAttributeValue(t,p.DoubleQuote)}stateInAttributeValueSingleQuotes(t){this.handleInAttributeValue(t,p.SingleQuote)}stateInAttributeValueNoQuotes(t){z(t)||t===p.Gt?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(U.Unquoted,this.index),this.state=d.BeforeAttributeName,this.stateBeforeAttributeName(t)):this.decodeEntities&&t===p.Amp&&(this.baseState=this.state,this.state=d.BeforeEntity)}stateBeforeDeclaration(t){t===p.OpeningSquareBracket?(this.state=d.CDATASequence,this.sequenceIndex=0):this.state=t===p.Dash?d.BeforeComment:d.InDeclaration}stateInDeclaration(t){(t===p.Gt||this.fastForwardTo(p.Gt))&&(this.cbs.ondeclaration(this.sectionStart,this.index),this.state=d.Text,this.sectionStart=this.index+1)}stateInProcessingInstruction(t){(t===p.Gt||this.fastForwardTo(p.Gt))&&(this.cbs.onprocessinginstruction(this.sectionStart,this.index),this.state=d.Text,this.sectionStart=this.index+1)}stateBeforeComment(t){t===p.Dash?(this.state=d.InCommentLike,this.currentSequence=B.CommentEnd,this.sequenceIndex=2,this.sectionStart=this.index+1):this.state=d.InDeclaration}stateInSpecialComment(t){(t===p.Gt||this.fastForwardTo(p.Gt))&&(this.cbs.oncomment(this.sectionStart,this.index,0),this.state=d.Text,this.sectionStart=this.index+1)}stateBeforeSpecialS(t){let u=t|32;u===B.ScriptEnd[3]?this.startSpecial(B.ScriptEnd,4):u===B.StyleEnd[3]?this.startSpecial(B.StyleEnd,4):(this.state=d.InTagName,this.stateInTagName(t))}stateBeforeEntity(t){this.entityExcess=1,this.entityResult=0,t===p.Number?this.state=d.BeforeNumericEntity:t===p.Amp||(this.trieIndex=0,this.trieCurrent=this.entityTrie[0],this.state=d.InNamedEntity,this.stateInNamedEntity(t))}stateInNamedEntity(t){if(this.entityExcess+=1,this.trieIndex=xu(this.entityTrie,this.trieCurrent,this.trieIndex+1,t),this.trieIndex<0){this.emitNamedEntity(),this.index--;return}this.trieCurrent=this.entityTrie[this.trieIndex];let u=this.trieCurrent&R.VALUE_LENGTH;if(u){let r=(u>>14)-1;if(!this.allowLegacyEntity()&&t!==p.Semi)this.trieIndex+=r;else{let i=this.index-this.entityExcess+1;i>this.sectionStart&&this.emitPartial(this.sectionStart,i),this.entityResult=this.trieIndex,this.trieIndex+=r,this.entityExcess=0,this.sectionStart=this.index+1,r===0&&this.emitNamedEntity()}}}emitNamedEntity(){if(this.state=this.baseState,this.entityResult===0)return;switch((this.entityTrie[this.entityResult]&R.VALUE_LENGTH)>>14){case 1:{this.emitCodePoint(this.entityTrie[this.entityResult]&~R.VALUE_LENGTH);break}case 2:{this.emitCodePoint(this.entityTrie[this.entityResult+1]);break}case 3:this.emitCodePoint(this.entityTrie[this.entityResult+1]),this.emitCodePoint(this.entityTrie[this.entityResult+2])}}stateBeforeNumericEntity(t){(t|32)===p.LowerX?(this.entityExcess++,this.state=d.InHexEntity):(this.state=d.InNumericEntity,this.stateInNumericEntity(t))}emitNumericEntity(t){let u=this.index-this.entityExcess-1;u+2+ +(this.state===d.InHexEntity)!==this.index&&(u>this.sectionStart&&this.emitPartial(this.sectionStart,u),this.sectionStart=this.index+Number(t),this.emitCodePoint(_e(this.entityResult))),this.state=this.baseState}stateInNumericEntity(t){t===p.Semi?this.emitNumericEntity(!0):_i(t)?(this.entityResult=this.entityResult*10+(t-p.Zero),this.entityExcess++):(this.allowLegacyEntity()?this.emitNumericEntity(!1):this.state=this.baseState,this.index--)}stateInHexEntity(t){t===p.Semi?this.emitNumericEntity(!0):_i(t)?(this.entityResult=this.entityResult*16+(t-p.Zero),this.entityExcess++):_s(t)?(this.entityResult=this.entityResult*16+((t|32)-p.LowerA+10),this.entityExcess++):(this.allowLegacyEntity()?this.emitNumericEntity(!1):this.state=this.baseState,this.index--)}allowLegacyEntity(){return!this.xmlMode&&(this.baseState===d.Text||this.baseState===d.InSpecialTag)}cleanup(){this.running&&this.sectionStart!==this.index&&(this.state===d.Text||this.state===d.InSpecialTag&&this.sequenceIndex===0?(this.cbs.ontext(this.sectionStart,this.index),this.sectionStart=this.index):(this.state===d.InAttributeValueDq||this.state===d.InAttributeValueSq||this.state===d.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 t=this.buffer.charCodeAt(this.index-this.offset);switch(this.state){case d.Text:{this.stateText(t);break}case d.SpecialStartSequence:{this.stateSpecialStartSequence(t);break}case d.InSpecialTag:{this.stateInSpecialTag(t);break}case d.CDATASequence:{this.stateCDATASequence(t);break}case d.InAttributeValueDq:{this.stateInAttributeValueDoubleQuotes(t);break}case d.InAttributeName:{this.stateInAttributeName(t);break}case d.InCommentLike:{this.stateInCommentLike(t);break}case d.InSpecialComment:{this.stateInSpecialComment(t);break}case d.BeforeAttributeName:{this.stateBeforeAttributeName(t);break}case d.InTagName:{this.stateInTagName(t);break}case d.InClosingTagName:{this.stateInClosingTagName(t);break}case d.BeforeTagName:{this.stateBeforeTagName(t);break}case d.AfterAttributeName:{this.stateAfterAttributeName(t);break}case d.InAttributeValueSq:{this.stateInAttributeValueSingleQuotes(t);break}case d.BeforeAttributeValue:{this.stateBeforeAttributeValue(t);break}case d.BeforeClosingTagName:{this.stateBeforeClosingTagName(t);break}case d.AfterClosingTagName:{this.stateAfterClosingTagName(t);break}case d.BeforeSpecialS:{this.stateBeforeSpecialS(t);break}case d.InAttributeValueNq:{this.stateInAttributeValueNoQuotes(t);break}case d.InSelfClosingTag:{this.stateInSelfClosingTag(t);break}case d.InDeclaration:{this.stateInDeclaration(t);break}case d.BeforeDeclaration:{this.stateBeforeDeclaration(t);break}case d.BeforeComment:{this.stateBeforeComment(t);break}case d.InProcessingInstruction:{this.stateInProcessingInstruction(t);break}case d.InNamedEntity:{this.stateInNamedEntity(t);break}case d.BeforeEntity:{this.stateBeforeEntity(t);break}case d.InHexEntity:{this.stateInHexEntity(t);break}case d.InNumericEntity:{this.stateInNumericEntity(t);break}default:this.stateBeforeNumericEntity(t)}this.index++}this.cleanup()}finish(){this.state===d.InNamedEntity&&this.emitNamedEntity(),this.sectionStart<this.index&&this.handleTrailingData(),this.cbs.onend()}handleTrailingData(){let t=this.buffer.length+this.offset;this.state===d.InCommentLike?this.currentSequence===B.CdataEnd?this.cbs.oncdata(this.sectionStart,t,0):this.cbs.oncomment(this.sectionStart,t,0):this.state===d.InNumericEntity&&this.allowLegacyEntity()?this.emitNumericEntity(!1):this.state===d.InHexEntity&&this.allowLegacyEntity()?this.emitNumericEntity(!1):this.state===d.InTagName||this.state===d.BeforeAttributeName||this.state===d.BeforeAttributeValue||this.state===d.AfterAttributeName||this.state===d.InAttributeName||this.state===d.InAttributeValueSq||this.state===d.InAttributeValueDq||this.state===d.InAttributeValueNq||this.state===d.InClosingTagName||this.cbs.ontext(this.sectionStart,t)}emitPartial(t,u){this.baseState!==d.Text&&this.baseState!==d.InSpecialTag?this.cbs.onattribdata(t,u):this.cbs.ontext(t,u)}emitCodePoint(t){this.baseState!==d.Text&&this.baseState!==d.InSpecialTag?this.cbs.onattribentity(t):this.cbs.ontextentity(t)}};var de=new Set(["input","option","optgroup","select","button","datalist","textarea"]),E=new Set(["p"]),Li=new Set(["thead","tbody"]),Ii=new Set(["dd","dt"]),Ni=new Set(["rt","rp"]),Ls=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",E],["h1",E],["h2",E],["h3",E],["h4",E],["h5",E],["h6",E],["select",de],["input",de],["output",de],["button",de],["datalist",de],["textarea",de],["option",new Set(["option"])],["optgroup",new Set(["optgroup","option"])],["dd",Ii],["dt",Ii],["address",E],["article",E],["aside",E],["blockquote",E],["details",E],["div",E],["dl",E],["fieldset",E],["figcaption",E],["figure",E],["footer",E],["form",E],["header",E],["hr",E],["main",E],["nav",E],["ol",E],["pre",E],["section",E],["table",E],["ul",E],["rt",Ni],["rp",Ni],["tbody",Li],["tfoot",Li]]),Is=new Set(["area","base","basefont","br","col","command","embed","frame","hr","img","input","isindex","keygen","link","meta","param","source","track","wbr"]),Di=new Set(["math","svg"]),$i=new Set(["mi","mo","mn","ms","mtext","annotation-xml","foreignobject","desc","title"]),Ns=/\s|\//,Le=class{constructor(t,u={}){var r,i,a,n,s;this.options=u,this.startIndex=0,this.endIndex=0,this.openTagStart=0,this.tagname="",this.attribname="",this.attribvalue="",this.attribs=null,this.stack=[],this.foreignContext=[],this.buffers=[],this.bufferOffset=0,this.writeIndex=0,this.ended=!1,this.cbs=t??{},this.lowerCaseTagNames=(r=u.lowerCaseTags)!==null&&r!==void 0?r:!u.xmlMode,this.lowerCaseAttributeNames=(i=u.lowerCaseAttributeNames)!==null&&i!==void 0?i:!u.xmlMode,this.tokenizer=new((a=u.Tokenizer)!==null&&a!==void 0?a:le)(this.options,this),(s=(n=this.cbs).onparserinit)===null||s===void 0||s.call(n,this)}ontext(t,u){var r,i;let a=this.getSlice(t,u);this.endIndex=u-1,(i=(r=this.cbs).ontext)===null||i===void 0||i.call(r,a),this.startIndex=u}ontextentity(t){var u,r;let i=this.tokenizer.getSectionStart();this.endIndex=i-1,(r=(u=this.cbs).ontext)===null||r===void 0||r.call(u,ce(t)),this.startIndex=i}isVoidElement(t){return!this.options.xmlMode&&Is.has(t)}onopentagname(t,u){this.endIndex=u;let r=this.getSlice(t,u);this.lowerCaseTagNames&&(r=r.toLowerCase()),this.emitOpenTag(r)}emitOpenTag(t){var u,r,i,a;this.openTagStart=this.startIndex,this.tagname=t;let n=!this.options.xmlMode&&Ls.get(t);if(n)for(;this.stack.length>0&&n.has(this.stack[this.stack.length-1]);){let s=this.stack.pop();(r=(u=this.cbs).onclosetag)===null||r===void 0||r.call(u,s,!0)}this.isVoidElement(t)||(this.stack.push(t),Di.has(t)?this.foreignContext.push(!0):$i.has(t)&&this.foreignContext.push(!1)),(a=(i=this.cbs).onopentagname)===null||a===void 0||a.call(i,t),this.cbs.onopentag&&(this.attribs={})}endOpenTag(t){var u,r;this.startIndex=this.openTagStart,this.attribs&&((r=(u=this.cbs).onopentag)===null||r===void 0||r.call(u,this.tagname,this.attribs,t),this.attribs=null),this.cbs.onclosetag&&this.isVoidElement(this.tagname)&&this.cbs.onclosetag(this.tagname,!0),this.tagname=""}onopentagend(t){this.endIndex=t,this.endOpenTag(!1),this.startIndex=t+1}onclosetag(t,u){var r,i,a,n,s,c;this.endIndex=u;let l=this.getSlice(t,u);if(this.lowerCaseTagNames&&(l=l.toLowerCase()),(Di.has(l)||$i.has(l))&&this.foreignContext.pop(),this.isVoidElement(l))!this.options.xmlMode&&l==="br"&&((i=(r=this.cbs).onopentagname)===null||i===void 0||i.call(r,"br"),(n=(a=this.cbs).onopentag)===null||n===void 0||n.call(a,"br",{},!0),(c=(s=this.cbs).onclosetag)===null||c===void 0||c.call(s,"br",!1));else{let f=this.stack.lastIndexOf(l);if(f!==-1)if(this.cbs.onclosetag){let b=this.stack.length-f;for(;b--;)this.cbs.onclosetag(this.stack.pop(),b!==0)}else this.stack.length=f;else!this.options.xmlMode&&l==="p"&&(this.emitOpenTag("p"),this.closeCurrentTag(!0))}this.startIndex=u+1}onselfclosingtag(t){this.endIndex=t,this.options.xmlMode||this.options.recognizeSelfClosing||this.foreignContext[this.foreignContext.length-1]?(this.closeCurrentTag(!1),this.startIndex=t+1):this.onopentagend(t)}closeCurrentTag(t){var u,r;let i=this.tagname;this.endOpenTag(t),this.stack[this.stack.length-1]===i&&((r=(u=this.cbs).onclosetag)===null||r===void 0||r.call(u,i,!t),this.stack.pop())}onattribname(t,u){this.startIndex=t;let r=this.getSlice(t,u);this.attribname=this.lowerCaseAttributeNames?r.toLowerCase():r}onattribdata(t,u){this.attribvalue+=this.getSlice(t,u)}onattribentity(t){this.attribvalue+=ce(t)}onattribend(t,u){var r,i;this.endIndex=u,(i=(r=this.cbs).onattribute)===null||i===void 0||i.call(r,this.attribname,this.attribvalue,t===U.Double?'"':t===U.Single?"'":t===U.NoValue?void 0:null),this.attribs&&!Object.prototype.hasOwnProperty.call(this.attribs,this.attribname)&&(this.attribs[this.attribname]=this.attribvalue),this.attribvalue=""}getInstructionName(t){let u=t.search(Ns),r=u<0?t:t.substr(0,u);return this.lowerCaseTagNames&&(r=r.toLowerCase()),r}ondeclaration(t,u){this.endIndex=u;let r=this.getSlice(t,u);if(this.cbs.onprocessinginstruction){let i=this.getInstructionName(r);this.cbs.onprocessinginstruction(`!${i}`,`!${r}`)}this.startIndex=u+1}onprocessinginstruction(t,u){this.endIndex=u;let r=this.getSlice(t,u);if(this.cbs.onprocessinginstruction){let i=this.getInstructionName(r);this.cbs.onprocessinginstruction(`?${i}`,`?${r}`)}this.startIndex=u+1}oncomment(t,u,r){var i,a,n,s;this.endIndex=u,(a=(i=this.cbs).oncomment)===null||a===void 0||a.call(i,this.getSlice(t,u-r)),(s=(n=this.cbs).oncommentend)===null||s===void 0||s.call(n),this.startIndex=u+1}oncdata(t,u,r){var i,a,n,s,c,l,f,b,x,h;this.endIndex=u;let g=this.getSlice(t,u-r);this.options.xmlMode||this.options.recognizeCDATA?((a=(i=this.cbs).oncdatastart)===null||a===void 0||a.call(i),(s=(n=this.cbs).ontext)===null||s===void 0||s.call(n,g),(l=(c=this.cbs).oncdataend)===null||l===void 0||l.call(c)):((b=(f=this.cbs).oncomment)===null||b===void 0||b.call(f,`[CDATA[${g}]]`),(h=(x=this.cbs).oncommentend)===null||h===void 0||h.call(x)),this.startIndex=u+1}onend(){var t,u;if(this.cbs.onclosetag){this.endIndex=this.startIndex;for(let r=this.stack.length;r>0;this.cbs.onclosetag(this.stack[--r],!0));}(u=(t=this.cbs).onend)===null||u===void 0||u.call(t)}reset(){var t,u,r,i;(u=(t=this.cbs).onreset)===null||u===void 0||u.call(t),this.tokenizer.reset(),this.tagname="",this.attribname="",this.attribs=null,this.stack.length=0,this.startIndex=0,this.endIndex=0,(i=(r=this.cbs).onparserinit)===null||i===void 0||i.call(r,this),this.buffers.length=0,this.bufferOffset=0,this.writeIndex=0,this.ended=!1}parseComplete(t){this.reset(),this.end(t)}getSlice(t,u){for(;t-this.bufferOffset>=this.buffers[0].length;)this.shiftBuffer();let r=this.buffers[0].slice(t-this.bufferOffset,u-this.bufferOffset);for(;u-this.bufferOffset>this.buffers[0].length;)this.shiftBuffer(),r+=this.buffers[0].slice(0,u-this.bufferOffset);return r}shiftBuffer(){this.bufferOffset+=this.buffers[0].length,this.writeIndex--,this.buffers.shift()}write(t){var u,r;if(this.ended){(r=(u=this.cbs).onerror)===null||r===void 0||r.call(u,new Error(".write() after done!"));return}this.buffers.push(t),this.tokenizer.running&&(this.tokenizer.write(t),this.writeIndex++)}end(t){var u,r;if(this.ended){(r=(u=this.cbs).onerror)===null||r===void 0||r.call(u,new Error(".end() after done!"));return}t&&this.write(t),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(t){this.write(t)}done(t){this.end(t)}};function ut(e){for(let t=1;t<e.length;t++)e[t][0]+=e[t-1][0]+1;return e}var Ds=new Map(ut([[9,"&Tab;"],[0,"&NewLine;"],[22,"&excl;"],[0,"&quot;"],[0,"&num;"],[0,"&dollar;"],[0,"&percnt;"],[0,"&amp;"],[0,"&apos;"],[0,"&lpar;"],[0,"&rpar;"],[0,"&ast;"],[0,"&plus;"],[0,"&comma;"],[1,"&period;"],[0,"&sol;"],[10,"&colon;"],[0,"&semi;"],[0,{v:"&lt;",n:8402,o:"&nvlt;"}],[0,{v:"&equals;",n:8421,o:"&bne;"}],[0,{v:"&gt;",n:8402,o:"&nvgt;"}],[0,"&quest;"],[0,"&commat;"],[26,"&lbrack;"],[0,"&bsol;"],[0,"&rbrack;"],[0,"&Hat;"],[0,"&lowbar;"],[0,"&DiacriticalGrave;"],[5,{n:106,o:"&fjlig;"}],[20,"&lbrace;"],[0,"&verbar;"],[0,"&rbrace;"],[34,"&nbsp;"],[0,"&iexcl;"],[0,"&cent;"],[0,"&pound;"],[0,"&curren;"],[0,"&yen;"],[0,"&brvbar;"],[0,"&sect;"],[0,"&die;"],[0,"&copy;"],[0,"&ordf;"],[0,"&laquo;"],[0,"&not;"],[0,"&shy;"],[0,"&circledR;"],[0,"&macr;"],[0,"&deg;"],[0,"&PlusMinus;"],[0,"&sup2;"],[0,"&sup3;"],[0,"&acute;"],[0,"&micro;"],[0,"&para;"],[0,"&centerdot;"],[0,"&cedil;"],[0,"&sup1;"],[0,"&ordm;"],[0,"&raquo;"],[0,"&frac14;"],[0,"&frac12;"],[0,"&frac34;"],[0,"&iquest;"],[0,"&Agrave;"],[0,"&Aacute;"],[0,"&Acirc;"],[0,"&Atilde;"],[0,"&Auml;"],[0,"&angst;"],[0,"&AElig;"],[0,"&Ccedil;"],[0,"&Egrave;"],[0,"&Eacute;"],[0,"&Ecirc;"],[0,"&Euml;"],[0,"&Igrave;"],[0,"&Iacute;"],[0,"&Icirc;"],[0,"&Iuml;"],[0,"&ETH;"],[0,"&Ntilde;"],[0,"&Ograve;"],[0,"&Oacute;"],[0,"&Ocirc;"],[0,"&Otilde;"],[0,"&Ouml;"],[0,"&times;"],[0,"&Oslash;"],[0,"&Ugrave;"],[0,"&Uacute;"],[0,"&Ucirc;"],[0,"&Uuml;"],[0,"&Yacute;"],[0,"&THORN;"],[0,"&szlig;"],[0,"&agrave;"],[0,"&aacute;"],[0,"&acirc;"],[0,"&atilde;"],[0,"&auml;"],[0,"&aring;"],[0,"&aelig;"],[0,"&ccedil;"],[0,"&egrave;"],[0,"&eacute;"],[0,"&ecirc;"],[0,"&euml;"],[0,"&igrave;"],[0,"&iacute;"],[0,"&icirc;"],[0,"&iuml;"],[0,"&eth;"],[0,"&ntilde;"],[0,"&ograve;"],[0,"&oacute;"],[0,"&ocirc;"],[0,"&otilde;"],[0,"&ouml;"],[0,"&div;"],[0,"&oslash;"],[0,"&ugrave;"],[0,"&uacute;"],[0,"&ucirc;"],[0,"&uuml;"],[0,"&yacute;"],[0,"&thorn;"],[0,"&yuml;"],[0,"&Amacr;"],[0,"&amacr;"],[0,"&Abreve;"],[0,"&abreve;"],[0,"&Aogon;"],[0,"&aogon;"],[0,"&Cacute;"],[0,"&cacute;"],[0,"&Ccirc;"],[0,"&ccirc;"],[0,"&Cdot;"],[0,"&cdot;"],[0,"&Ccaron;"],[0,"&ccaron;"],[0,"&Dcaron;"],[0,"&dcaron;"],[0,"&Dstrok;"],[0,"&dstrok;"],[0,"&Emacr;"],[0,"&emacr;"],[2,"&Edot;"],[0,"&edot;"],[0,"&Eogon;"],[0,"&eogon;"],[0,"&Ecaron;"],[0,"&ecaron;"],[0,"&Gcirc;"],[0,"&gcirc;"],[0,"&Gbreve;"],[0,"&gbreve;"],[0,"&Gdot;"],[0,"&gdot;"],[0,"&Gcedil;"],[1,"&Hcirc;"],[0,"&hcirc;"],[0,"&Hstrok;"],[0,"&hstrok;"],[0,"&Itilde;"],[0,"&itilde;"],[0,"&Imacr;"],[0,"&imacr;"],[2,"&Iogon;"],[0,"&iogon;"],[0,"&Idot;"],[0,"&imath;"],[0,"&IJlig;"],[0,"&ijlig;"],[0,"&Jcirc;"],[0,"&jcirc;"],[0,"&Kcedil;"],[0,"&kcedil;"],[0,"&kgreen;"],[0,"&Lacute;"],[0,"&lacute;"],[0,"&Lcedil;"],[0,"&lcedil;"],[0,"&Lcaron;"],[0,"&lcaron;"],[0,"&Lmidot;"],[0,"&lmidot;"],[0,"&Lstrok;"],[0,"&lstrok;"],[0,"&Nacute;"],[0,"&nacute;"],[0,"&Ncedil;"],[0,"&ncedil;"],[0,"&Ncaron;"],[0,"&ncaron;"],[0,"&napos;"],[0,"&ENG;"],[0,"&eng;"],[0,"&Omacr;"],[0,"&omacr;"],[2,"&Odblac;"],[0,"&odblac;"],[0,"&OElig;"],[0,"&oelig;"],[0,"&Racute;"],[0,"&racute;"],[0,"&Rcedil;"],[0,"&rcedil;"],[0,"&Rcaron;"],[0,"&rcaron;"],[0,"&Sacute;"],[0,"&sacute;"],[0,"&Scirc;"],[0,"&scirc;"],[0,"&Scedil;"],[0,"&scedil;"],[0,"&Scaron;"],[0,"&scaron;"],[0,"&Tcedil;"],[0,"&tcedil;"],[0,"&Tcaron;"],[0,"&tcaron;"],[0,"&Tstrok;"],[0,"&tstrok;"],[0,"&Utilde;"],[0,"&utilde;"],[0,"&Umacr;"],[0,"&umacr;"],[0,"&Ubreve;"],[0,"&ubreve;"],[0,"&Uring;"],[0,"&uring;"],[0,"&Udblac;"],[0,"&udblac;"],[0,"&Uogon;"],[0,"&uogon;"],[0,"&Wcirc;"],[0,"&wcirc;"],[0,"&Ycirc;"],[0,"&ycirc;"],[0,"&Yuml;"],[0,"&Zacute;"],[0,"&zacute;"],[0,"&Zdot;"],[0,"&zdot;"],[0,"&Zcaron;"],[0,"&zcaron;"],[19,"&fnof;"],[34,"&imped;"],[63,"&gacute;"],[65,"&jmath;"],[142,"&circ;"],[0,"&caron;"],[16,"&breve;"],[0,"&DiacriticalDot;"],[0,"&ring;"],[0,"&ogon;"],[0,"&DiacriticalTilde;"],[0,"&dblac;"],[51,"&DownBreve;"],[127,"&Alpha;"],[0,"&Beta;"],[0,"&Gamma;"],[0,"&Delta;"],[0,"&Epsilon;"],[0,"&Zeta;"],[0,"&Eta;"],[0,"&Theta;"],[0,"&Iota;"],[0,"&Kappa;"],[0,"&Lambda;"],[0,"&Mu;"],[0,"&Nu;"],[0,"&Xi;"],[0,"&Omicron;"],[0,"&Pi;"],[0,"&Rho;"],[1,"&Sigma;"],[0,"&Tau;"],[0,"&Upsilon;"],[0,"&Phi;"],[0,"&Chi;"],[0,"&Psi;"],[0,"&ohm;"],[7,"&alpha;"],[0,"&beta;"],[0,"&gamma;"],[0,"&delta;"],[0,"&epsi;"],[0,"&zeta;"],[0,"&eta;"],[0,"&theta;"],[0,"&iota;"],[0,"&kappa;"],[0,"&lambda;"],[0,"&mu;"],[0,"&nu;"],[0,"&xi;"],[0,"&omicron;"],[0,"&pi;"],[0,"&rho;"],[0,"&sigmaf;"],[0,"&sigma;"],[0,"&tau;"],[0,"&upsi;"],[0,"&phi;"],[0,"&chi;"],[0,"&psi;"],[0,"&omega;"],[7,"&thetasym;"],[0,"&Upsi;"],[2,"&phiv;"],[0,"&piv;"],[5,"&Gammad;"],[0,"&digamma;"],[18,"&kappav;"],[0,"&rhov;"],[3,"&epsiv;"],[0,"&backepsilon;"],[10,"&IOcy;"],[0,"&DJcy;"],[0,"&GJcy;"],[0,"&Jukcy;"],[0,"&DScy;"],[0,"&Iukcy;"],[0,"&YIcy;"],[0,"&Jsercy;"],[0,"&LJcy;"],[0,"&NJcy;"],[0,"&TSHcy;"],[0,"&KJcy;"],[1,"&Ubrcy;"],[0,"&DZcy;"],[0,"&Acy;"],[0,"&Bcy;"],[0,"&Vcy;"],[0,"&Gcy;"],[0,"&Dcy;"],[0,"&IEcy;"],[0,"&ZHcy;"],[0,"&Zcy;"],[0,"&Icy;"],[0,"&Jcy;"],[0,"&Kcy;"],[0,"&Lcy;"],[0,"&Mcy;"],[0,"&Ncy;"],[0,"&Ocy;"],[0,"&Pcy;"],[0,"&Rcy;"],[0,"&Scy;"],[0,"&Tcy;"],[0,"&Ucy;"],[0,"&Fcy;"],[0,"&KHcy;"],[0,"&TScy;"],[0,"&CHcy;"],[0,"&SHcy;"],[0,"&SHCHcy;"],[0,"&HARDcy;"],[0,"&Ycy;"],[0,"&SOFTcy;"],[0,"&Ecy;"],[0,"&YUcy;"],[0,"&YAcy;"],[0,"&acy;"],[0,"&bcy;"],[0,"&vcy;"],[0,"&gcy;"],[0,"&dcy;"],[0,"&iecy;"],[0,"&zhcy;"],[0,"&zcy;"],[0,"&icy;"],[0,"&jcy;"],[0,"&kcy;"],[0,"&lcy;"],[0,"&mcy;"],[0,"&ncy;"],[0,"&ocy;"],[0,"&pcy;"],[0,"&rcy;"],[0,"&scy;"],[0,"&tcy;"],[0,"&ucy;"],[0,"&fcy;"],[0,"&khcy;"],[0,"&tscy;"],[0,"&chcy;"],[0,"&shcy;"],[0,"&shchcy;"],[0,"&hardcy;"],[0,"&ycy;"],[0,"&softcy;"],[0,"&ecy;"],[0,"&yucy;"],[0,"&yacy;"],[1,"&iocy;"],[0,"&djcy;"],[0,"&gjcy;"],[0,"&jukcy;"],[0,"&dscy;"],[0,"&iukcy;"],[0,"&yicy;"],[0,"&jsercy;"],[0,"&ljcy;"],[0,"&njcy;"],[0,"&tshcy;"],[0,"&kjcy;"],[1,"&ubrcy;"],[0,"&dzcy;"],[7074,"&ensp;"],[0,"&emsp;"],[0,"&emsp13;"],[0,"&emsp14;"],[1,"&numsp;"],[0,"&puncsp;"],[0,"&ThinSpace;"],[0,"&hairsp;"],[0,"&NegativeMediumSpace;"],[0,"&zwnj;"],[0,"&zwj;"],[0,"&lrm;"],[0,"&rlm;"],[0,"&dash;"],[2,"&ndash;"],[0,"&mdash;"],[0,"&horbar;"],[0,"&Verbar;"],[1,"&lsquo;"],[0,"&CloseCurlyQuote;"],[0,"&lsquor;"],[1,"&ldquo;"],[0,"&CloseCurlyDoubleQuote;"],[0,"&bdquo;"],[1,"&dagger;"],[0,"&Dagger;"],[0,"&bull;"],[2,"&nldr;"],[0,"&hellip;"],[9,"&permil;"],[0,"&pertenk;"],[0,"&prime;"],[0,"&Prime;"],[0,"&tprime;"],[0,"&backprime;"],[3,"&lsaquo;"],[0,"&rsaquo;"],[3,"&oline;"],[2,"&caret;"],[1,"&hybull;"],[0,"&frasl;"],[10,"&bsemi;"],[7,"&qprime;"],[7,{v:"&MediumSpace;",n:8202,o:"&ThickSpace;"}],[0,"&NoBreak;"],[0,"&af;"],[0,"&InvisibleTimes;"],[0,"&ic;"],[72,"&euro;"],[46,"&tdot;"],[0,"&DotDot;"],[37,"&complexes;"],[2,"&incare;"],[4,"&gscr;"],[0,"&hamilt;"],[0,"&Hfr;"],[0,"&Hopf;"],[0,"&planckh;"],[0,"&hbar;"],[0,"&imagline;"],[0,"&Ifr;"],[0,"&lagran;"],[0,"&ell;"],[1,"&naturals;"],[0,"&numero;"],[0,"&copysr;"],[0,"&weierp;"],[0,"&Popf;"],[0,"&Qopf;"],[0,"&realine;"],[0,"&real;"],[0,"&reals;"],[0,"&rx;"],[3,"&trade;"],[1,"&integers;"],[2,"&mho;"],[0,"&zeetrf;"],[0,"&iiota;"],[2,"&bernou;"],[0,"&Cayleys;"],[1,"&escr;"],[0,"&Escr;"],[0,"&Fouriertrf;"],[1,"&Mellintrf;"],[0,"&order;"],[0,"&alefsym;"],[0,"&beth;"],[0,"&gimel;"],[0,"&daleth;"],[12,"&CapitalDifferentialD;"],[0,"&dd;"],[0,"&ee;"],[0,"&ii;"],[10,"&frac13;"],[0,"&frac23;"],[0,"&frac15;"],[0,"&frac25;"],[0,"&frac35;"],[0,"&frac45;"],[0,"&frac16;"],[0,"&frac56;"],[0,"&frac18;"],[0,"&frac38;"],[0,"&frac58;"],[0,"&frac78;"],[49,"&larr;"],[0,"&ShortUpArrow;"],[0,"&rarr;"],[0,"&darr;"],[0,"&harr;"],[0,"&updownarrow;"],[0,"&nwarr;"],[0,"&nearr;"],[0,"&LowerRightArrow;"],[0,"&LowerLeftArrow;"],[0,"&nlarr;"],[0,"&nrarr;"],[1,{v:"&rarrw;",n:824,o:"&nrarrw;"}],[0,"&Larr;"],[0,"&Uarr;"],[0,"&Rarr;"],[0,"&Darr;"],[0,"&larrtl;"],[0,"&rarrtl;"],[0,"&LeftTeeArrow;"],[0,"&mapstoup;"],[0,"&map;"],[0,"&DownTeeArrow;"],[1,"&hookleftarrow;"],[0,"&hookrightarrow;"],[0,"&larrlp;"],[0,"&looparrowright;"],[0,"&harrw;"],[0,"&nharr;"],[1,"&lsh;"],[0,"&rsh;"],[0,"&ldsh;"],[0,"&rdsh;"],[1,"&crarr;"],[0,"&cularr;"],[0,"&curarr;"],[2,"&circlearrowleft;"],[0,"&circlearrowright;"],[0,"&leftharpoonup;"],[0,"&DownLeftVector;"],[0,"&RightUpVector;"],[0,"&LeftUpVector;"],[0,"&rharu;"],[0,"&DownRightVector;"],[0,"&dharr;"],[0,"&dharl;"],[0,"&RightArrowLeftArrow;"],[0,"&udarr;"],[0,"&LeftArrowRightArrow;"],[0,"&leftleftarrows;"],[0,"&upuparrows;"],[0,"&rightrightarrows;"],[0,"&ddarr;"],[0,"&leftrightharpoons;"],[0,"&Equilibrium;"],[0,"&nlArr;"],[0,"&nhArr;"],[0,"&nrArr;"],[0,"&DoubleLeftArrow;"],[0,"&DoubleUpArrow;"],[0,"&DoubleRightArrow;"],[0,"&dArr;"],[0,"&DoubleLeftRightArrow;"],[0,"&DoubleUpDownArrow;"],[0,"&nwArr;"],[0,"&neArr;"],[0,"&seArr;"],[0,"&swArr;"],[0,"&lAarr;"],[0,"&rAarr;"],[1,"&zigrarr;"],[6,"&larrb;"],[0,"&rarrb;"],[15,"&DownArrowUpArrow;"],[7,"&loarr;"],[0,"&roarr;"],[0,"&hoarr;"],[0,"&forall;"],[0,"&comp;"],[0,{v:"&part;",n:824,o:"&npart;"}],[0,"&exist;"],[0,"&nexist;"],[0,"&empty;"],[1,"&Del;"],[0,"&Element;"],[0,"&NotElement;"],[1,"&ni;"],[0,"&notni;"],[2,"&prod;"],[0,"&coprod;"],[0,"&sum;"],[0,"&minus;"],[0,"&MinusPlus;"],[0,"&dotplus;"],[1,"&Backslash;"],[0,"&lowast;"],[0,"&compfn;"],[1,"&radic;"],[2,"&prop;"],[0,"&infin;"],[0,"&angrt;"],[0,{v:"&ang;",n:8402,o:"&nang;"}],[0,"&angmsd;"],[0,"&angsph;"],[0,"&mid;"],[0,"&nmid;"],[0,"&DoubleVerticalBar;"],[0,"&NotDoubleVerticalBar;"],[0,"&and;"],[0,"&or;"],[0,{v:"&cap;",n:65024,o:"&caps;"}],[0,{v:"&cup;",n:65024,o:"&cups;"}],[0,"&int;"],[0,"&Int;"],[0,"&iiint;"],[0,"&conint;"],[0,"&Conint;"],[0,"&Cconint;"],[0,"&cwint;"],[0,"&ClockwiseContourIntegral;"],[0,"&awconint;"],[0,"&there4;"],[0,"&becaus;"],[0,"&ratio;"],[0,"&Colon;"],[0,"&dotminus;"],[1,"&mDDot;"],[0,"&homtht;"],[0,{v:"&sim;",n:8402,o:"&nvsim;"}],[0,{v:"&backsim;",n:817,o:"&race;"}],[0,{v:"&ac;",n:819,o:"&acE;"}],[0,"&acd;"],[0,"&VerticalTilde;"],[0,"&NotTilde;"],[0,{v:"&eqsim;",n:824,o:"&nesim;"}],[0,"&sime;"],[0,"&NotTildeEqual;"],[0,"&cong;"],[0,"&simne;"],[0,"&ncong;"],[0,"&ap;"],[0,"&nap;"],[0,"&ape;"],[0,{v:"&apid;",n:824,o:"&napid;"}],[0,"&backcong;"],[0,{v:"&asympeq;",n:8402,o:"&nvap;"}],[0,{v:"&bump;",n:824,o:"&nbump;"}],[0,{v:"&bumpe;",n:824,o:"&nbumpe;"}],[0,{v:"&doteq;",n:824,o:"&nedot;"}],[0,"&doteqdot;"],[0,"&efDot;"],[0,"&erDot;"],[0,"&Assign;"],[0,"&ecolon;"],[0,"&ecir;"],[0,"&circeq;"],[1,"&wedgeq;"],[0,"&veeeq;"],[1,"&triangleq;"],[2,"&equest;"],[0,"&ne;"],[0,{v:"&Congruent;",n:8421,o:"&bnequiv;"}],[0,"&nequiv;"],[1,{v:"&le;",n:8402,o:"&nvle;"}],[0,{v:"&ge;",n:8402,o:"&nvge;"}],[0,{v:"&lE;",n:824,o:"&nlE;"}],[0,{v:"&gE;",n:824,o:"&ngE;"}],[0,{v:"&lnE;",n:65024,o:"&lvertneqq;"}],[0,{v:"&gnE;",n:65024,o:"&gvertneqq;"}],[0,{v:"&ll;",n:new Map(ut([[824,"&nLtv;"],[7577,"&nLt;"]]))}],[0,{v:"&gg;",n:new Map(ut([[824,"&nGtv;"],[7577,"&nGt;"]]))}],[0,"&between;"],[0,"&NotCupCap;"],[0,"&nless;"],[0,"&ngt;"],[0,"&nle;"],[0,"&nge;"],[0,"&lesssim;"],[0,"&GreaterTilde;"],[0,"&nlsim;"],[0,"&ngsim;"],[0,"&LessGreater;"],[0,"&gl;"],[0,"&NotLessGreater;"],[0,"&NotGreaterLess;"],[0,"&pr;"],[0,"&sc;"],[0,"&prcue;"],[0,"&sccue;"],[0,"&PrecedesTilde;"],[0,{v:"&scsim;",n:824,o:"&NotSucceedsTilde;"}],[0,"&NotPrecedes;"],[0,"&NotSucceeds;"],[0,{v:"&sub;",n:8402,o:"&NotSubset;"}],[0,{v:"&sup;",n:8402,o:"&NotSuperset;"}],[0,"&nsub;"],[0,"&nsup;"],[0,"&sube;"],[0,"&supe;"],[0,"&NotSubsetEqual;"],[0,"&NotSupersetEqual;"],[0,{v:"&subne;",n:65024,o:"&varsubsetneq;"}],[0,{v:"&supne;",n:65024,o:"&varsupsetneq;"}],[1,"&cupdot;"],[0,"&UnionPlus;"],[0,{v:"&sqsub;",n:824,o:"&NotSquareSubset;"}],[0,{v:"&sqsup;",n:824,o:"&NotSquareSuperset;"}],[0,"&sqsube;"],[0,"&sqsupe;"],[0,{v:"&sqcap;",n:65024,o:"&sqcaps;"}],[0,{v:"&sqcup;",n:65024,o:"&sqcups;"}],[0,"&CirclePlus;"],[0,"&CircleMinus;"],[0,"&CircleTimes;"],[0,"&osol;"],[0,"&CircleDot;"],[0,"&circledcirc;"],[0,"&circledast;"],[1,"&circleddash;"],[0,"&boxplus;"],[0,"&boxminus;"],[0,"&boxtimes;"],[0,"&dotsquare;"],[0,"&RightTee;"],[0,"&dashv;"],[0,"&DownTee;"],[0,"&bot;"],[1,"&models;"],[0,"&DoubleRightTee;"],[0,"&Vdash;"],[0,"&Vvdash;"],[0,"&VDash;"],[0,"&nvdash;"],[0,"&nvDash;"],[0,"&nVdash;"],[0,"&nVDash;"],[0,"&prurel;"],[1,"&LeftTriangle;"],[0,"&RightTriangle;"],[0,{v:"&LeftTriangleEqual;",n:8402,o:"&nvltrie;"}],[0,{v:"&RightTriangleEqual;",n:8402,o:"&nvrtrie;"}],[0,"&origof;"],[0,"&imof;"],[0,"&multimap;"],[0,"&hercon;"],[0,"&intcal;"],[0,"&veebar;"],[1,"&barvee;"],[0,"&angrtvb;"],[0,"&lrtri;"],[0,"&bigwedge;"],[0,"&bigvee;"],[0,"&bigcap;"],[0,"&bigcup;"],[0,"&diam;"],[0,"&sdot;"],[0,"&sstarf;"],[0,"&divideontimes;"],[0,"&bowtie;"],[0,"&ltimes;"],[0,"&rtimes;"],[0,"&leftthreetimes;"],[0,"&rightthreetimes;"],[0,"&backsimeq;"],[0,"&curlyvee;"],[0,"&curlywedge;"],[0,"&Sub;"],[0,"&Sup;"],[0,"&Cap;"],[0,"&Cup;"],[0,"&fork;"],[0,"&epar;"],[0,"&lessdot;"],[0,"&gtdot;"],[0,{v:"&Ll;",n:824,o:"&nLl;"}],[0,{v:"&Gg;",n:824,o:"&nGg;"}],[0,{v:"&leg;",n:65024,o:"&lesg;"}],[0,{v:"&gel;",n:65024,o:"&gesl;"}],[2,"&cuepr;"],[0,"&cuesc;"],[0,"&NotPrecedesSlantEqual;"],[0,"&NotSucceedsSlantEqual;"],[0,"&NotSquareSubsetEqual;"],[0,"&NotSquareSupersetEqual;"],[2,"&lnsim;"],[0,"&gnsim;"],[0,"&precnsim;"],[0,"&scnsim;"],[0,"&nltri;"],[0,"&NotRightTriangle;"],[0,"&nltrie;"],[0,"&NotRightTriangleEqual;"],[0,"&vellip;"],[0,"&ctdot;"],[0,"&utdot;"],[0,"&dtdot;"],[0,"&disin;"],[0,"&isinsv;"],[0,"&isins;"],[0,{v:"&isindot;",n:824,o:"&notindot;"}],[0,"&notinvc;"],[0,"&notinvb;"],[1,{v:"&isinE;",n:824,o:"&notinE;"}],[0,"&nisd;"],[0,"&xnis;"],[0,"&nis;"],[0,"&notnivc;"],[0,"&notnivb;"],[6,"&barwed;"],[0,"&Barwed;"],[1,"&lceil;"],[0,"&rceil;"],[0,"&LeftFloor;"],[0,"&rfloor;"],[0,"&drcrop;"],[0,"&dlcrop;"],[0,"&urcrop;"],[0,"&ulcrop;"],[0,"&bnot;"],[1,"&profline;"],[0,"&profsurf;"],[1,"&telrec;"],[0,"&target;"],[5,"&ulcorn;"],[0,"&urcorn;"],[0,"&dlcorn;"],[0,"&drcorn;"],[2,"&frown;"],[0,"&smile;"],[9,"&cylcty;"],[0,"&profalar;"],[7,"&topbot;"],[6,"&ovbar;"],[1,"&solbar;"],[60,"&angzarr;"],[51,"&lmoustache;"],[0,"&rmoustache;"],[2,"&OverBracket;"],[0,"&bbrk;"],[0,"&bbrktbrk;"],[37,"&OverParenthesis;"],[0,"&UnderParenthesis;"],[0,"&OverBrace;"],[0,"&UnderBrace;"],[2,"&trpezium;"],[4,"&elinters;"],[59,"&blank;"],[164,"&circledS;"],[55,"&boxh;"],[1,"&boxv;"],[9,"&boxdr;"],[3,"&boxdl;"],[3,"&boxur;"],[3,"&boxul;"],[3,"&boxvr;"],[7,"&boxvl;"],[7,"&boxhd;"],[7,"&boxhu;"],[7,"&boxvh;"],[19,"&boxH;"],[0,"&boxV;"],[0,"&boxdR;"],[0,"&boxDr;"],[0,"&boxDR;"],[0,"&boxdL;"],[0,"&boxDl;"],[0,"&boxDL;"],[0,"&boxuR;"],[0,"&boxUr;"],[0,"&boxUR;"],[0,"&boxuL;"],[0,"&boxUl;"],[0,"&boxUL;"],[0,"&boxvR;"],[0,"&boxVr;"],[0,"&boxVR;"],[0,"&boxvL;"],[0,"&boxVl;"],[0,"&boxVL;"],[0,"&boxHd;"],[0,"&boxhD;"],[0,"&boxHD;"],[0,"&boxHu;"],[0,"&boxhU;"],[0,"&boxHU;"],[0,"&boxvH;"],[0,"&boxVh;"],[0,"&boxVH;"],[19,"&uhblk;"],[3,"&lhblk;"],[3,"&block;"],[8,"&blk14;"],[0,"&blk12;"],[0,"&blk34;"],[13,"&square;"],[8,"&blacksquare;"],[0,"&EmptyVerySmallSquare;"],[1,"&rect;"],[0,"&marker;"],[2,"&fltns;"],[1,"&bigtriangleup;"],[0,"&blacktriangle;"],[0,"&triangle;"],[2,"&blacktriangleright;"],[0,"&rtri;"],[3,"&bigtriangledown;"],[0,"&blacktriangledown;"],[0,"&dtri;"],[2,"&blacktriangleleft;"],[0,"&ltri;"],[6,"&loz;"],[0,"&cir;"],[32,"&tridot;"],[2,"&bigcirc;"],[8,"&ultri;"],[0,"&urtri;"],[0,"&lltri;"],[0,"&EmptySmallSquare;"],[0,"&FilledSmallSquare;"],[8,"&bigstar;"],[0,"&star;"],[7,"&phone;"],[49,"&female;"],[1,"&male;"],[29,"&spades;"],[2,"&clubs;"],[1,"&hearts;"],[0,"&diamondsuit;"],[3,"&sung;"],[2,"&flat;"],[0,"&natural;"],[0,"&sharp;"],[163,"&check;"],[3,"&cross;"],[8,"&malt;"],[21,"&sext;"],[33,"&VerticalSeparator;"],[25,"&lbbrk;"],[0,"&rbbrk;"],[84,"&bsolhsub;"],[0,"&suphsol;"],[28,"&LeftDoubleBracket;"],[0,"&RightDoubleBracket;"],[0,"&lang;"],[0,"&rang;"],[0,"&Lang;"],[0,"&Rang;"],[0,"&loang;"],[0,"&roang;"],[7,"&longleftarrow;"],[0,"&longrightarrow;"],[0,"&longleftrightarrow;"],[0,"&DoubleLongLeftArrow;"],[0,"&DoubleLongRightArrow;"],[0,"&DoubleLongLeftRightArrow;"],[1,"&longmapsto;"],[2,"&dzigrarr;"],[258,"&nvlArr;"],[0,"&nvrArr;"],[0,"&nvHarr;"],[0,"&Map;"],[6,"&lbarr;"],[0,"&bkarow;"],[0,"&lBarr;"],[0,"&dbkarow;"],[0,"&drbkarow;"],[0,"&DDotrahd;"],[0,"&UpArrowBar;"],[0,"&DownArrowBar;"],[2,"&Rarrtl;"],[2,"&latail;"],[0,"&ratail;"],[0,"&lAtail;"],[0,"&rAtail;"],[0,"&larrfs;"],[0,"&rarrfs;"],[0,"&larrbfs;"],[0,"&rarrbfs;"],[2,"&nwarhk;"],[0,"&nearhk;"],[0,"&hksearow;"],[0,"&hkswarow;"],[0,"&nwnear;"],[0,"&nesear;"],[0,"&seswar;"],[0,"&swnwar;"],[8,{v:"&rarrc;",n:824,o:"&nrarrc;"}],[1,"&cudarrr;"],[0,"&ldca;"],[0,"&rdca;"],[0,"&cudarrl;"],[0,"&larrpl;"],[2,"&curarrm;"],[0,"&cularrp;"],[7,"&rarrpl;"],[2,"&harrcir;"],[0,"&Uarrocir;"],[0,"&lurdshar;"],[0,"&ldrushar;"],[2,"&LeftRightVector;"],[0,"&RightUpDownVector;"],[0,"&DownLeftRightVector;"],[0,"&LeftUpDownVector;"],[0,"&LeftVectorBar;"],[0,"&RightVectorBar;"],[0,"&RightUpVectorBar;"],[0,"&RightDownVectorBar;"],[0,"&DownLeftVectorBar;"],[0,"&DownRightVectorBar;"],[0,"&LeftUpVectorBar;"],[0,"&LeftDownVectorBar;"],[0,"&LeftTeeVector;"],[0,"&RightTeeVector;"],[0,"&RightUpTeeVector;"],[0,"&RightDownTeeVector;"],[0,"&DownLeftTeeVector;"],[0,"&DownRightTeeVector;"],[0,"&LeftUpTeeVector;"],[0,"&LeftDownTeeVector;"],[0,"&lHar;"],[0,"&uHar;"],[0,"&rHar;"],[0,"&dHar;"],[0,"&luruhar;"],[0,"&ldrdhar;"],[0,"&ruluhar;"],[0,"&rdldhar;"],[0,"&lharul;"],[0,"&llhard;"],[0,"&rharul;"],[0,"&lrhard;"],[0,"&udhar;"],[0,"&duhar;"],[0,"&RoundImplies;"],[0,"&erarr;"],[0,"&simrarr;"],[0,"&larrsim;"],[0,"&rarrsim;"],[0,"&rarrap;"],[0,"&ltlarr;"],[1,"&gtrarr;"],[0,"&subrarr;"],[1,"&suplarr;"],[0,"&lfisht;"],[0,"&rfisht;"],[0,"&ufisht;"],[0,"&dfisht;"],[5,"&lopar;"],[0,"&ropar;"],[4,"&lbrke;"],[0,"&rbrke;"],[0,"&lbrkslu;"],[0,"&rbrksld;"],[0,"&lbrksld;"],[0,"&rbrkslu;"],[0,"&langd;"],[0,"&rangd;"],[0,"&lparlt;"],[0,"&rpargt;"],[0,"&gtlPar;"],[0,"&ltrPar;"],[3,"&vzigzag;"],[1,"&vangrt;"],[0,"&angrtvbd;"],[6,"&ange;"],[0,"&range;"],[0,"&dwangle;"],[0,"&uwangle;"],[0,"&angmsdaa;"],[0,"&angmsdab;"],[0,"&angmsdac;"],[0,"&angmsdad;"],[0,"&angmsdae;"],[0,"&angmsdaf;"],[0,"&angmsdag;"],[0,"&angmsdah;"],[0,"&bemptyv;"],[0,"&demptyv;"],[0,"&cemptyv;"],[0,"&raemptyv;"],[0,"&laemptyv;"],[0,"&ohbar;"],[0,"&omid;"],[0,"&opar;"],[1,"&operp;"],[1,"&olcross;"],[0,"&odsold;"],[1,"&olcir;"],[0,"&ofcir;"],[0,"&olt;"],[0,"&ogt;"],[0,"&cirscir;"],[0,"&cirE;"],[0,"&solb;"],[0,"&bsolb;"],[3,"&boxbox;"],[3,"&trisb;"],[0,"&rtriltri;"],[0,{v:"&LeftTriangleBar;",n:824,o:"&NotLeftTriangleBar;"}],[0,{v:"&RightTriangleBar;",n:824,o:"&NotRightTriangleBar;"}],[11,"&iinfin;"],[0,"&infintie;"],[0,"&nvinfin;"],[4,"&eparsl;"],[0,"&smeparsl;"],[0,"&eqvparsl;"],[5,"&blacklozenge;"],[8,"&RuleDelayed;"],[1,"&dsol;"],[9,"&bigodot;"],[0,"&bigoplus;"],[0,"&bigotimes;"],[1,"&biguplus;"],[1,"&bigsqcup;"],[5,"&iiiint;"],[0,"&fpartint;"],[2,"&cirfnint;"],[0,"&awint;"],[0,"&rppolint;"],[0,"&scpolint;"],[0,"&npolint;"],[0,"&pointint;"],[0,"&quatint;"],[0,"&intlarhk;"],[10,"&pluscir;"],[0,"&plusacir;"],[0,"&simplus;"],[0,"&plusdu;"],[0,"&plussim;"],[0,"&plustwo;"],[1,"&mcomma;"],[0,"&minusdu;"],[2,"&loplus;"],[0,"&roplus;"],[0,"&Cross;"],[0,"&timesd;"],[0,"&timesbar;"],[1,"&smashp;"],[0,"&lotimes;"],[0,"&rotimes;"],[0,"&otimesas;"],[0,"&Otimes;"],[0,"&odiv;"],[0,"&triplus;"],[0,"&triminus;"],[0,"&tritime;"],[0,"&intprod;"],[2,"&amalg;"],[0,"&capdot;"],[1,"&ncup;"],[0,"&ncap;"],[0,"&capand;"],[0,"&cupor;"],[0,"&cupcap;"],[0,"&capcup;"],[0,"&cupbrcap;"],[0,"&capbrcup;"],[0,"&cupcup;"],[0,"&capcap;"],[0,"&ccups;"],[0,"&ccaps;"],[2,"&ccupssm;"],[2,"&And;"],[0,"&Or;"],[0,"&andand;"],[0,"&oror;"],[0,"&orslope;"],[0,"&andslope;"],[1,"&andv;"],[0,"&orv;"],[0,"&andd;"],[0,"&ord;"],[1,"&wedbar;"],[6,"&sdote;"],[3,"&simdot;"],[2,{v:"&congdot;",n:824,o:"&ncongdot;"}],[0,"&easter;"],[0,"&apacir;"],[0,{v:"&apE;",n:824,o:"&napE;"}],[0,"&eplus;"],[0,"&pluse;"],[0,"&Esim;"],[0,"&Colone;"],[0,"&Equal;"],[1,"&ddotseq;"],[0,"&equivDD;"],[0,"&ltcir;"],[0,"&gtcir;"],[0,"&ltquest;"],[0,"&gtquest;"],[0,{v:"&leqslant;",n:824,o:"&nleqslant;"}],[0,{v:"&geqslant;",n:824,o:"&ngeqslant;"}],[0,"&lesdot;"],[0,"&gesdot;"],[0,"&lesdoto;"],[0,"&gesdoto;"],[0,"&lesdotor;"],[0,"&gesdotol;"],[0,"&lap;"],[0,"&gap;"],[0,"&lne;"],[0,"&gne;"],[0,"&lnap;"],[0,"&gnap;"],[0,"&lEg;"],[0,"&gEl;"],[0,"&lsime;"],[0,"&gsime;"],[0,"&lsimg;"],[0,"&gsiml;"],[0,"&lgE;"],[0,"&glE;"],[0,"&lesges;"],[0,"&gesles;"],[0,"&els;"],[0,"&egs;"],[0,"&elsdot;"],[0,"&egsdot;"],[0,"&el;"],[0,"&eg;"],[2,"&siml;"],[0,"&simg;"],[0,"&simlE;"],[0,"&simgE;"],[0,{v:"&LessLess;",n:824,o:"&NotNestedLessLess;"}],[0,{v:"&GreaterGreater;",n:824,o:"&NotNestedGreaterGreater;"}],[1,"&glj;"],[0,"&gla;"],[0,"&ltcc;"],[0,"&gtcc;"],[0,"&lescc;"],[0,"&gescc;"],[0,"&smt;"],[0,"&lat;"],[0,{v:"&smte;",n:65024,o:"&smtes;"}],[0,{v:"&late;",n:65024,o:"&lates;"}],[0,"&bumpE;"],[0,{v:"&PrecedesEqual;",n:824,o:"&NotPrecedesEqual;"}],[0,{v:"&sce;",n:824,o:"&NotSucceedsEqual;"}],[2,"&prE;"],[0,"&scE;"],[0,"&precneqq;"],[0,"&scnE;"],[0,"&prap;"],[0,"&scap;"],[0,"&precnapprox;"],[0,"&scnap;"],[0,"&Pr;"],[0,"&Sc;"],[0,"&subdot;"],[0,"&supdot;"],[0,"&subplus;"],[0,"&supplus;"],[0,"&submult;"],[0,"&supmult;"],[0,"&subedot;"],[0,"&supedot;"],[0,{v:"&subE;",n:824,o:"&nsubE;"}],[0,{v:"&supE;",n:824,o:"&nsupE;"}],[0,"&subsim;"],[0,"&supsim;"],[2,{v:"&subnE;",n:65024,o:"&varsubsetneqq;"}],[0,{v:"&supnE;",n:65024,o:"&varsupsetneqq;"}],[2,"&csub;"],[0,"&csup;"],[0,"&csube;"],[0,"&csupe;"],[0,"&subsup;"],[0,"&supsub;"],[0,"&subsub;"],[0,"&supsup;"],[0,"&suphsub;"],[0,"&supdsub;"],[0,"&forkv;"],[0,"&topfork;"],[0,"&mlcp;"],[8,"&Dashv;"],[1,"&Vdashl;"],[0,"&Barv;"],[0,"&vBar;"],[0,"&vBarv;"],[1,"&Vbar;"],[0,"&Not;"],[0,"&bNot;"],[0,"&rnmid;"],[0,"&cirmid;"],[0,"&midcir;"],[0,"&topcir;"],[0,"&nhpar;"],[0,"&parsim;"],[9,{v:"&parsl;",n:8421,o:"&nparsl;"}],[44343,{n:new Map(ut([[56476,"&Ascr;"],[1,"&Cscr;"],[0,"&Dscr;"],[2,"&Gscr;"],[2,"&Jscr;"],[0,"&Kscr;"],[2,"&Nscr;"],[0,"&Oscr;"],[0,"&Pscr;"],[0,"&Qscr;"],[1,"&Sscr;"],[0,"&Tscr;"],[0,"&Uscr;"],[0,"&Vscr;"],[0,"&Wscr;"],[0,"&Xscr;"],[0,"&Yscr;"],[0,"&Zscr;"],[0,"&ascr;"],[0,"&bscr;"],[0,"&cscr;"],[0,"&dscr;"],[1,"&fscr;"],[1,"&hscr;"],[0,"&iscr;"],[0,"&jscr;"],[0,"&kscr;"],[0,"&lscr;"],[0,"&mscr;"],[0,"&nscr;"],[1,"&pscr;"],[0,"&qscr;"],[0,"&rscr;"],[0,"&sscr;"],[0,"&tscr;"],[0,"&uscr;"],[0,"&vscr;"],[0,"&wscr;"],[0,"&xscr;"],[0,"&yscr;"],[0,"&zscr;"],[52,"&Afr;"],[0,"&Bfr;"],[1,"&Dfr;"],[0,"&Efr;"],[0,"&Ffr;"],[0,"&Gfr;"],[2,"&Jfr;"],[0,"&Kfr;"],[0,"&Lfr;"],[0,"&Mfr;"],[0,"&Nfr;"],[0,"&Ofr;"],[0,"&Pfr;"],[0,"&Qfr;"],[1,"&Sfr;"],[0,"&Tfr;"],[0,"&Ufr;"],[0,"&Vfr;"],[0,"&Wfr;"],[0,"&Xfr;"],[0,"&Yfr;"],[1,"&afr;"],[0,"&bfr;"],[0,"&cfr;"],[0,"&dfr;"],[0,"&efr;"],[0,"&ffr;"],[0,"&gfr;"],[0,"&hfr;"],[0,"&ifr;"],[0,"&jfr;"],[0,"&kfr;"],[0,"&lfr;"],[0,"&mfr;"],[0,"&nfr;"],[0,"&ofr;"],[0,"&pfr;"],[0,"&qfr;"],[0,"&rfr;"],[0,"&sfr;"],[0,"&tfr;"],[0,"&ufr;"],[0,"&vfr;"],[0,"&wfr;"],[0,"&xfr;"],[0,"&yfr;"],[0,"&zfr;"],[0,"&Aopf;"],[0,"&Bopf;"],[1,"&Dopf;"],[0,"&Eopf;"],[0,"&Fopf;"],[0,"&Gopf;"],[1,"&Iopf;"],[0,"&Jopf;"],[0,"&Kopf;"],[0,"&Lopf;"],[0,"&Mopf;"],[1,"&Oopf;"],[3,"&Sopf;"],[0,"&Topf;"],[0,"&Uopf;"],[0,"&Vopf;"],[0,"&Wopf;"],[0,"&Xopf;"],[0,"&Yopf;"],[1,"&aopf;"],[0,"&bopf;"],[0,"&copf;"],[0,"&dopf;"],[0,"&eopf;"],[0,"&fopf;"],[0,"&gopf;"],[0,"&hopf;"],[0,"&iopf;"],[0,"&jopf;"],[0,"&kopf;"],[0,"&lopf;"],[0,"&mopf;"],[0,"&nopf;"],[0,"&oopf;"],[0,"&popf;"],[0,"&qopf;"],[0,"&ropf;"],[0,"&sopf;"],[0,"&topf;"],[0,"&uopf;"],[0,"&vopf;"],[0,"&wopf;"],[0,"&xopf;"],[0,"&yopf;"],[0,"&zopf;"]]))}],[8906,"&fflig;"],[0,"&filig;"],[0,"&fllig;"],[0,"&ffilig;"],[0,"&ffllig;"]]));var wu=/["&'<>$\x80-\uFFFF]/g,Ci=new Map([[34,"&quot;"],[38,"&amp;"],[39,"&apos;"],[60,"&lt;"],[62,"&gt;"]]),Bi=String.prototype.codePointAt!=null?(e,t)=>e.codePointAt(t):(e,t)=>(e.charCodeAt(t)&64512)===55296?(e.charCodeAt(t)-55296)*1024+e.charCodeAt(t+1)-56320+65536:e.charCodeAt(t);function Ie(e){let t="",u=0,r;for(;(r=wu.exec(e))!==null;){let i=r.index,a=e.charCodeAt(i),n=Ci.get(a);n!==void 0?(t+=e.substring(u,i)+n,u=i+1):(t+=`${e.substring(u,i)}&#x${Bi(e,i).toString(16)};`,u=wu.lastIndex+=+((a&64512)===55296))}return t+e.substr(u)}function yu(e,t){return function(r){let i,a=0,n="";for(;i=e.exec(r);)a!==i.index&&(n+=r.substring(a,i.index)),n+=t.get(i[0].charCodeAt(0)),a=i.index+1;return n+r.substring(a)}}var Pi=yu(/[&<>'"]/g,Ci),rt=yu(/["&\u00A0]/g,new Map([[34,"&quot;"],[38,"&amp;"],[160,"&nbsp;"]])),it=yu(/[&<>\u00A0]/g,new Map([[38,"&amp;"],[60,"&lt;"],[62,"&gt;"],[160,"&nbsp;"]]));var Oi;(function(e){e[e.XML=0]="XML",e[e.HTML=1]="HTML"})(Oi||(Oi={}));var Ri;(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"})(Ri||(Ri={}));var Hi=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"].map(e=>[e.toLowerCase(),e])),Ui=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"].map(e=>[e.toLowerCase(),e]));var Cs=new Set(["style","script","xmp","iframe","noembed","noframes","plaintext","noscript"]);function Bs(e){return e.replace(/"/g,"&quot;")}function Ps(e,t){var u;if(!e)return;let r=((u=t.encodeEntities)!==null&&u!==void 0?u:t.decodeEntities)===!1?Bs:t.xmlMode||t.encodeEntities!=="utf8"?Ie:rt;return Object.keys(e).map(i=>{var a,n;let s=(a=e[i])!==null&&a!==void 0?a:"";return t.xmlMode==="foreign"&&(i=(n=Ui.get(i))!==null&&n!==void 0?n:i),!t.emptyAttrs&&!t.xmlMode&&s===""?i:`${i}="${r(s)}"`}).join(" ")}var Fi=new Set(["area","base","basefont","br","col","command","embed","frame","hr","img","input","isindex","keygen","link","meta","param","source","track","wbr"]);function Ne(e,t={}){let u="length"in e?e:[e],r="";for(let i=0;i<u.length;i++)r+=Os(u[i],t);return r}function Os(e,t){switch(e.type){case Wr:return Ne(e.children,t);case Qr:case zr:return Hs(e);case Kr:return js(e);case Zr:return Fs(e);case Jr:case Yr:case Xr:return Ms(e,t);case Gr:return Us(e,t)}}var Rs=new Set(["mi","mo","mn","ms","mtext","annotation-xml","foreignObject","desc","title"]),qs=new Set(["svg","math"]);function Ms(e,t){var u;t.xmlMode==="foreign"&&(e.name=(u=Hi.get(e.name))!==null&&u!==void 0?u:e.name,e.parent&&Rs.has(e.parent.name)&&(t={...t,xmlMode:!1})),!t.xmlMode&&qs.has(e.name)&&(t={...t,xmlMode:"foreign"});let r=`<${e.name}`,i=Ps(e.attribs,t);return i&&(r+=` ${i}`),e.children.length===0&&(t.xmlMode?t.selfClosingTags!==!1:t.selfClosingTags&&Fi.has(e.name))?(t.xmlMode||(r+=" "),r+="/>"):(r+=">",e.children.length>0&&(r+=Ne(e.children,t)),(t.xmlMode||!Fi.has(e.name))&&(r+=`</${e.name}>`)),r}function Hs(e){return`<${e.data}>`}function Us(e,t){var u;let r=e.data||"";return((u=t.encodeEntities)!==null&&u!==void 0?u:t.decodeEntities)!==!1&&!(!t.xmlMode&&e.parent&&Cs.has(e.parent.name))&&(r=t.xmlMode||t.encodeEntities!=="utf8"?Ie(r):it(r)),r}function Fs(e){return`<![CDATA[${e.children[0].data}]]>`}function js(e){return`<!--${e.data}-->`}var ji;(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"})(ji||(ji={}));function Vi(e,t){let u=new re(void 0,t);return new Le(u,t).end(e),u.root}var Iu=Zu(Ki(),1);function Nu(e,t,u=()=>{}){if(e===void 0){let r=function(...i){return t(r,...i)};return r}return e>=0?function(...r){return t(Nu(e-1,t,u),...r)}:u}function Qi(e,t){let u=0,r=e.length;for(;u<r&&e[u]===t;)++u;for(;r>u&&e[r-1]===t;)--r;return u>0||r<e.length?e.substring(u,r):e}function ao(e,t){let u=e.length;for(;u>0&&e[u-1]===t;)--u;return u<e.length?e.substring(0,u):e}function no(e){return e.replace(/[\s\S]/g,t=>"\\u"+t.charCodeAt().toString(16).padStart(4,"0"))}function ea(e,t){let u=new Map;for(let r=e.length;r-- >0;){let i=e[r],a=t(i);u.set(a,u.has(a)?(0,Iu.default)(i,u.get(a),{arrayMerge:so}):i)}return[...u.values()].reverse()}var so=(e,t,u)=>[...t];function he(e,t){for(let u of t){if(!e)return;e=e[u]}return e}function Ji(e,t="a",u=26){let r=[];do e-=1,r.push(e%u),e=e/u>>0;while(e>0);let i=t.charCodeAt(0);return r.reverse().map(a=>String.fromCharCode(i+a)).join("")}var Su=["I","X","C","M"],Yi=["V","L","D"];function Xi(e){return[...e+""].map(t=>+t).reverse().map((t,u)=>t%5<4?(t<5?"":Yi[u])+Su[u].repeat(t%5):Su[u]+(t<5?Yi[u]:Su[u+1])).reverse().join("")}var st=class{constructor(t,u=void 0){this.lines=[],this.nextLineWords=[],this.maxLineLength=u||t.wordwrap||Number.MAX_VALUE,this.nextLineAvailableChars=this.maxLineLength,this.wrapCharacters=he(t,["longWordSplit","wrapCharacters"])||[],this.forceWrapOnLimit=he(t,["longWordSplit","forceWrapOnLimit"])||!1,this.stashedSpace=!1,this.wordBreakOpportunity=!1}pushWord(t,u=!1){this.nextLineAvailableChars<=0&&!u&&this.startNewLine();let r=this.nextLineWords.length===0,i=t.length+(r?0:1);if(i<=this.nextLineAvailableChars||u)this.nextLineWords.push(t),this.nextLineAvailableChars-=i;else{let[a,...n]=this.splitLongWord(t);r||this.startNewLine(),this.nextLineWords.push(a),this.nextLineAvailableChars-=a.length;for(let s of n)this.startNewLine(),this.nextLineWords.push(s),this.nextLineAvailableChars-=s.length}}popWord(){let t=this.nextLineWords.pop();if(t!==void 0){let u=this.nextLineWords.length===0,r=t.length+(u?0:1);this.nextLineAvailableChars+=r}return t}concatWord(t,u=!1){if(this.wordBreakOpportunity&&t.length>this.nextLineAvailableChars)this.pushWord(t,u),this.wordBreakOpportunity=!1;else{let r=this.popWord();this.pushWord(r?r.concat(t):t,u)}}startNewLine(t=1){this.lines.push(this.nextLineWords),t>1&&this.lines.push(...Array.from({length:t-1},()=>[])),this.nextLineWords=[],this.nextLineAvailableChars=this.maxLineLength}isEmpty(){return this.lines.length===0&&this.nextLineWords.length===0}clear(){this.lines.length=0,this.nextLineWords.length=0,this.nextLineAvailableChars=this.maxLineLength}toString(){return[...this.lines,this.nextLineWords].map(t=>t.join(" ")).join(`
8
+ `)}splitLongWord(t){let u=[],r=0;for(;t.length>this.maxLineLength;){let i=t.substring(0,this.maxLineLength),a=t.substring(this.maxLineLength),n=i.lastIndexOf(this.wrapCharacters[r]);if(n>-1)t=i.substring(n+1)+a,u.push(i.substring(0,n+1));else if(r++,r<this.wrapCharacters.length)t=i+a;else{if(this.forceWrapOnLimit){if(u.push(i),t=a,t.length>this.maxLineLength)continue}else t=i+a;break}}return u.push(t),u}},ee=class{constructor(t=null){this.next=t}getRoot(){return this.next?this.next:this}},q=class extends ee{constructor(t,u=null,r=1,i=void 0){super(u),this.leadingLineBreaks=r,this.inlineTextBuilder=new st(t,i),this.rawText="",this.stashedLineBreaks=0,this.isPre=u&&u.isPre,this.isNoWrap=u&&u.isNoWrap}},ot=class extends q{constructor(t,u=null,{interRowLineBreaks:r=1,leadingLineBreaks:i=2,maxLineLength:a=void 0,maxPrefixLength:n=0,prefixAlign:s="left"}={}){super(t,u,i,a),this.maxPrefixLength=n,this.prefixAlign=s,this.interRowLineBreaks=r}},K=class extends q{constructor(t,u=null,{leadingLineBreaks:r=1,maxLineLength:i=void 0,prefix:a=""}={}){super(t,u,r,i),this.prefix=a}},ct=class extends ee{constructor(t=null){super(t),this.rows=[],this.isPre=t&&t.isPre,this.isNoWrap=t&&t.isNoWrap}},lt=class extends ee{constructor(t=null){super(t),this.cells=[],this.isPre=t&&t.isPre,this.isNoWrap=t&&t.isNoWrap}},J=class extends ee{constructor(t,u=null,r=void 0){super(u),this.inlineTextBuilder=new st(t,r),this.rawText="",this.stashedLineBreaks=0,this.isPre=u&&u.isPre,this.isNoWrap=u&&u.isNoWrap}},Tu=class extends ee{constructor(t=null,u){super(t),this.transform=u}};function oo(e){return[...e].map(t=>"\\u"+t.charCodeAt(0).toString(16).padStart(4,"0")).join("")}var Eu=class{constructor(t){this.whitespaceChars=t.preserveNewlines?t.whitespaceCharacters.replace(/\n/g,""):t.whitespaceCharacters;let u=oo(this.whitespaceChars);if(this.leadingWhitespaceRe=new RegExp(`^[${u}]`),this.trailingWhitespaceRe=new RegExp(`[${u}]$`),this.allWhitespaceOrEmptyRe=new RegExp(`^[${u}]*$`),this.newlineOrNonWhitespaceRe=new RegExp(`(\\n|[^\\n${u}])`,"g"),this.newlineOrNonNewlineStringRe=new RegExp("(\\n|[^\\n]+)","g"),t.preserveNewlines){let r=new RegExp(`\\n|[^\\n${u}]+`,"gm");this.shrinkWrapAdd=function(i,a,n=c=>c,s=!1){if(!i)return;let c=a.stashedSpace,l=!1,f=r.exec(i);if(f)for(l=!0,f[0]===`
9
9
  `?a.startNewLine():c||this.testLeadingWhitespace(i)?a.pushWord(n(f[0]),s):a.concatWord(n(f[0]),s);(f=r.exec(i))!==null;)f[0]===`
10
10
  `?a.startNewLine():a.pushWord(n(f[0]),s);a.stashedSpace=c&&!l||this.testTrailingWhitespace(i)}}else{let r=new RegExp(`[^${u}]+`,"g");this.shrinkWrapAdd=function(i,a,n=c=>c,s=!1){if(!i)return;let c=a.stashedSpace,l=!1,f=r.exec(i);if(f)for(l=!0,c||this.testLeadingWhitespace(i)?a.pushWord(n(f[0]),s):a.concatWord(n(f[0]),s);(f=r.exec(i))!==null;)a.pushWord(n(f[0]),s);a.stashedSpace=c&&!l||this.testTrailingWhitespace(i)}}}addLiteral(t,u,r=!0){if(!t)return;let i=u.stashedSpace,a=!1,n=this.newlineOrNonNewlineStringRe.exec(t);if(n)for(a=!0,n[0]===`
11
11
  `?u.startNewLine():i?u.pushWord(n[0],r):u.concatWord(n[0],r);(n=this.newlineOrNonNewlineStringRe.exec(t))!==null;)n[0]===`
12
12
  `?u.startNewLine():u.pushWord(n[0],r);u.stashedSpace=i&&!a}testLeadingWhitespace(t){return this.leadingWhitespaceRe.test(t)}testTrailingWhitespace(t){return this.trailingWhitespaceRe.test(t)}testContainsWords(t){return!this.allWhitespaceOrEmptyRe.test(t)}countNewlinesNoWords(t){this.newlineOrNonWhitespaceRe.lastIndex=0;let u=0,r;for(;(r=this.newlineOrNonWhitespaceRe.exec(t))!==null;)if(r[0]===`
13
- `)u++;else return 0;return u}},Eu=class{constructor(t,u,r=void 0){this.options=t,this.picker=u,this.metadata=r,this.whitespaceProcessor=new Tu(t),this._stackItem=new R(t),this._wordTransformer=void 0}pushWordTransform(t){this._wordTransformer=new Su(this._wordTransformer,t)}popWordTransform(){if(!this._wordTransformer)return;let t=this._wordTransformer.transform;return this._wordTransformer=this._wordTransformer.next,t}startNoWrap(){this._stackItem.isNoWrap=!0}stopNoWrap(){this._stackItem.isNoWrap=!1}_getCombinedWordTransformer(){let t=this._wordTransformer?r=>ea(r,this._wordTransformer):void 0,u=this.options.encodeCharacters;return t?u?r=>u(t(r)):t:u}_popStackItem(){let t=this._stackItem;return this._stackItem=t.next,t}addLineBreak(){(this._stackItem instanceof R||this._stackItem instanceof K||this._stackItem instanceof J)&&(this._stackItem.isPre?this._stackItem.rawText+=`
14
- `:this._stackItem.inlineTextBuilder.startNewLine())}addWordBreakOpportunity(){(this._stackItem instanceof R||this._stackItem instanceof K||this._stackItem instanceof J)&&(this._stackItem.inlineTextBuilder.wordBreakOpportunity=!0)}addInline(t,{noWordTransform:u=!1}={}){if(this._stackItem instanceof R||this._stackItem instanceof K||this._stackItem instanceof J){if(this._stackItem.isPre){this._stackItem.rawText+=t;return}if(!(t.length===0||this._stackItem.stashedLineBreaks&&!this.whitespaceProcessor.testContainsWords(t))){if(this.options.preserveNewlines){let r=this.whitespaceProcessor.countNewlinesNoWords(t);if(r>0){this._stackItem.inlineTextBuilder.startNewLine(r);return}}this._stackItem.stashedLineBreaks&&this._stackItem.inlineTextBuilder.startNewLine(this._stackItem.stashedLineBreaks),this.whitespaceProcessor.shrinkWrapAdd(t,this._stackItem.inlineTextBuilder,u?void 0:this._getCombinedWordTransformer(),this._stackItem.isNoWrap),this._stackItem.stashedLineBreaks=0}}}addLiteral(t){if((this._stackItem instanceof R||this._stackItem instanceof K||this._stackItem instanceof J)&&t.length!==0){if(this._stackItem.isPre){this._stackItem.rawText+=t;return}this._stackItem.stashedLineBreaks&&this._stackItem.inlineTextBuilder.startNewLine(this._stackItem.stashedLineBreaks),this.whitespaceProcessor.addLiteral(t,this._stackItem.inlineTextBuilder,this._stackItem.isNoWrap),this._stackItem.stashedLineBreaks=0}}openBlock({leadingLineBreaks:t=1,reservedLineLength:u=0,isPre:r=!1}={}){let i=Math.max(20,this._stackItem.inlineTextBuilder.maxLineLength-u);this._stackItem=new R(this.options,this._stackItem,t,i),r&&(this._stackItem.isPre=!0)}closeBlock({trailingLineBreaks:t=1,blockTransform:u=void 0}={}){let r=this._popStackItem(),i=u?u(Q(r)):Q(r);nt(this._stackItem,i,r.leadingLineBreaks,Math.max(r.stashedLineBreaks,t))}openList({maxPrefixLength:t=0,prefixAlign:u="left",interRowLineBreaks:r=1,leadingLineBreaks:i=2}={}){this._stackItem=new ot(this.options,this._stackItem,{interRowLineBreaks:r,leadingLineBreaks:i,maxLineLength:this._stackItem.inlineTextBuilder.maxLineLength,maxPrefixLength:t,prefixAlign:u})}openListItem({prefix:t=""}={}){if(!(this._stackItem instanceof ot))throw new Error("Can't add a list item to something that is not a list! Check the formatter.");let u=this._stackItem,r=Math.max(t.length,u.maxPrefixLength),i=Math.max(20,u.inlineTextBuilder.maxLineLength-r);this._stackItem=new K(this.options,u,{prefix:t,maxLineLength:i,leadingLineBreaks:u.interRowLineBreaks})}closeListItem(){let t=this._popStackItem(),u=t.next,r=Math.max(t.prefix.length,u.maxPrefixLength),i=`
15
- `+" ".repeat(r),n=(u.prefixAlign==="right"?t.prefix.padStart(r):t.prefix.padEnd(r))+Q(t).replace(/\n/g,i);nt(u,n,t.leadingLineBreaks,Math.max(t.stashedLineBreaks,u.interRowLineBreaks))}closeList({trailingLineBreaks:t=2}={}){let u=this._popStackItem(),r=Q(u);r&&nt(this._stackItem,r,u.leadingLineBreaks,t)}openTable(){this._stackItem=new ct(this._stackItem)}openTableRow(){if(!(this._stackItem instanceof ct))throw new Error("Can't add a table row to something that is not a table! Check the formatter.");this._stackItem=new lt(this._stackItem)}openTableCell({maxColumnWidth:t=void 0}={}){if(!(this._stackItem instanceof lt))throw new Error("Can't add a table cell to something that is not a table row! Check the formatter.");this._stackItem=new J(this.options,this._stackItem,t)}closeTableCell({colspan:t=1,rowspan:u=1}={}){let r=this._popStackItem(),i=Zi(Q(r),`
16
- `);r.next.cells.push({colspan:t,rowspan:u,text:i})}closeTableRow(){let t=this._popStackItem();t.next.rows.push(t.cells)}closeTable({tableToString:t,leadingLineBreaks:u=2,trailingLineBreaks:r=2}){let i=this._popStackItem(),a=t(i.rows);a&&nt(this._stackItem,a,u,r)}toString(){return Q(this._stackItem.getRoot())}};function Q(e){if(!(e instanceof R||e instanceof K||e instanceof J))throw new Error("Only blocks, list items and table cells can be requested for text contents.");return e.inlineTextBuilder.isEmpty()?e.rawText:e.rawText+e.inlineTextBuilder.toString()}function nt(e,t,u,r){if(!(e instanceof R||e instanceof K||e instanceof J))throw new Error("Only blocks, list items and table cells can contain text.");let i=Q(e),a=Math.max(e.stashedLineBreaks,u);e.inlineTextBuilder.clear(),i?e.rawText=i+`
17
- `.repeat(a)+t:(e.rawText=t,e.leadingLineBreaks=a),e.stashedLineBreaks=r}function ea(e,t){return t?ea(t.transform(e),t.next):e}function oo(e={}){let t=e.selectors.filter(n=>!n.format);if(t.length)throw new Error("Following selectors have no specified format: "+t.map(n=>`\`${n.selector}\``).join(", "));let u=new Ae(e.selectors.map(n=>[n.selector,n])).build(pu);typeof e.encodeCharacters!="function"&&(e.encodeCharacters=ho(e.encodeCharacters));let r=new Ae(e.baseElements.selectors.map((n,s)=>[n,s+1])).build(pu);function i(n){return lo(n,e,r)}let a=Iu(e.limits.maxDepth,fo,function(n,s){s.addInline(e.limits.ellipsis||"")});return function(n,s=void 0){return co(n,s,e,u,i,a)}}function co(e,t,u,r,i,a){let n=u.limits.maxInputLength;n&&e&&e.length>n&&(console.warn(`Input length ${e.length} is above allowed limit of ${n}. Truncating without ellipsis.`),e=e.substring(0,n));let s=ji(e,{decodeEntities:u.decodeEntities}),c=i(s.children),l=new Eu(u,r,t);return a(c,l),l.toString()}function lo(e,t,u){let r=[];function i(n,s){s=s.slice(0,t.limits.maxChildNodes);for(let c of s){if(c.type!=="tag")continue;let l=u.pick1(c);if(l>0?r.push({selectorIndex:l,element:c}):c.children&&n(c.children),r.length>=t.limits.maxBaseElements)return}}return Iu(t.limits.maxDepth,i)(e),t.baseElements.orderBy!=="occurrence"&&r.sort((n,s)=>n.selectorIndex-s.selectorIndex),t.baseElements.returnDomByDefault&&r.length===0?e:r.map(n=>n.element)}function fo(e,t,u){if(!t)return;let r=u.options;t.length>r.limits.maxChildNodes&&(t=t.slice(0,r.limits.maxChildNodes),t.push({data:r.limits.ellipsis,type:"text"}));for(let a of t)switch(a.type){case"text":{u.addInline(a.data);break}case"tag":{let n=u.picker.pick1(a),s=r.formatters[n.format];s(a,e,u,n.options||{});break}}}function ho(e){if(!e||Object.keys(e).length===0)return;let t=Object.entries(e).filter(([,a])=>a!==!1),u=new RegExp(t.map(([a])=>`(${ao([...a][0])})`).join("|"),"g"),r=t.map(([,a])=>a),i=(a,...n)=>r[n.findIndex(s=>s)];return a=>a.replace(u,i)}function po(e,t,u,r){}function mo(e,t,u,r){u.addLiteral(r.string||"")}function go(e,t,u,r){u.openBlock({leadingLineBreaks:r.leadingLineBreaks||2}),u.addLiteral(r.string||""),u.closeBlock({trailingLineBreaks:r.trailingLineBreaks||2})}function bo(e,t,u,r){t(e.children,u)}function xo(e,t,u,r){u.openBlock({leadingLineBreaks:r.leadingLineBreaks||2}),t(e.children,u),u.closeBlock({trailingLineBreaks:r.trailingLineBreaks||2})}function ta(e){let t=e.attribs&&e.attribs.length?" "+Object.entries(e.attribs).map(([u,r])=>r===""?u:`${u}=${r.replace(/"/g,"&quot;")}`).join(" "):"";return`<${e.name}${t}>`}function ua(e){return`</${e.name}>`}function wo(e,t,u,r){u.startNoWrap(),u.addLiteral(ta(e)),u.stopNoWrap(),t(e.children,u),u.startNoWrap(),u.addLiteral(ua(e)),u.stopNoWrap()}function yo(e,t,u,r){u.openBlock({leadingLineBreaks:r.leadingLineBreaks||2}),u.startNoWrap(),u.addLiteral(ta(e)),u.stopNoWrap(),t(e.children,u),u.startNoWrap(),u.addLiteral(ua(e)),u.stopNoWrap(),u.closeBlock({trailingLineBreaks:r.trailingLineBreaks||2})}function vo(e,t,u,r){u.startNoWrap(),u.addLiteral(Ne(e,{decodeEntities:u.options.decodeEntities})),u.stopNoWrap()}function ko(e,t,u,r){u.openBlock({leadingLineBreaks:r.leadingLineBreaks||2}),u.startNoWrap(),u.addLiteral(Ne(e,{decodeEntities:u.options.decodeEntities})),u.stopNoWrap(),u.closeBlock({trailingLineBreaks:r.trailingLineBreaks||2})}function So(e,t,u,r){u.addLiteral(r.prefix||""),t(e.children,u),u.addLiteral(r.suffix||"")}var To=Object.freeze({__proto__:null,block:xo,blockHtml:ko,blockString:go,blockTag:yo,inline:bo,inlineHtml:vo,inlineString:mo,inlineSurround:So,inlineTag:wo,skip:po});function dt(e,t){return e[t]||(e[t]=[]),e[t]}function Eo(e,t=0){for(;e[t];)t++;return t}function Ao(e,t){for(let u=0;u<t;u++){let r=dt(e,u);for(let i=0;i<u;i++){let a=dt(e,i);if(r[i]||a[u]){let n=r[i];r[i]=a[u],a[u]=n}}}}function Lo(e,t,u,r){for(let i=0;i<e.rowspan;i++){let a=dt(t,u+i);for(let n=0;n<e.colspan;n++)a[r+n]=e}}function Au(e,t){return e[t]===void 0&&(e[t]=t===0?0:1+Au(e,t-1)),e[t]}function Xi(e,t,u,r){e[t+u]=Math.max(Au(e,t+u),Au(e,t)+r)}function _o(e,t,u){let r=[],i=0,a=e.length,n=[0];for(let l=0;l<a;l++){let f=dt(r,l),m=e[l],x=0;for(let g=0;g<m.length;g++){let b=m[g];x=Eo(f,x),Lo(b,r,l,x),x+=b.colspan,b.lines=b.text.split(`
18
- `);let v=b.lines.length;Xi(n,l,b.rowspan,v+t)}i=f.length>i?f.length:i}Ao(r,a>i?a:i);let s=[],c=[0];for(let l=0;l<i;l++){let f=0,m,x=Math.min(a,r[l].length);for(;f<x;)if(m=r[l][f],m){if(!m.rendered){let g=0;for(let b=0;b<m.lines.length;b++){let v=m.lines[b],y=n[f]+b;s[y]=(s[y]||"").padEnd(c[l])+v,g=v.length>g?v.length:g}Xi(c,l,m.colspan,g+u),m.rendered=!0}f+=m.rowspan}else{let g=n[f];s[g]=s[g]||"",f++}}return s.join(`
19
- `)}function Io(e,t,u,r){u.addLineBreak()}function No(e,t,u,r){u.addWordBreakOpportunity()}function Do(e,t,u,r){u.openBlock({leadingLineBreaks:r.leadingLineBreaks||2}),u.addInline("-".repeat(r.length||u.options.wordwrap||40)),u.closeBlock({trailingLineBreaks:r.trailingLineBreaks||2})}function $o(e,t,u,r){u.openBlock({leadingLineBreaks:r.leadingLineBreaks||2}),t(e.children,u),u.closeBlock({trailingLineBreaks:r.trailingLineBreaks||2})}function Co(e,t,u,r){u.openBlock({isPre:!0,leadingLineBreaks:r.leadingLineBreaks||2}),t(e.children,u),u.closeBlock({trailingLineBreaks:r.trailingLineBreaks||2})}function Bo(e,t,u,r){u.openBlock({leadingLineBreaks:r.leadingLineBreaks||2}),r.uppercase!==!1?(u.pushWordTransform(i=>i.toUpperCase()),t(e.children,u),u.popWordTransform()):t(e.children,u),u.closeBlock({trailingLineBreaks:r.trailingLineBreaks||2})}function Po(e,t,u,r){u.openBlock({leadingLineBreaks:r.leadingLineBreaks||2,reservedLineLength:2}),t(e.children,u),u.closeBlock({trailingLineBreaks:r.trailingLineBreaks||2,blockTransform:i=>(r.trimEmptyLines!==!1?Zi(i,`
13
+ `)u++;else return 0;return u}},Au=class{constructor(t,u,r=void 0){this.options=t,this.picker=u,this.metadata=r,this.whitespaceProcessor=new Eu(t),this._stackItem=new q(t),this._wordTransformer=void 0}pushWordTransform(t){this._wordTransformer=new Tu(this._wordTransformer,t)}popWordTransform(){if(!this._wordTransformer)return;let t=this._wordTransformer.transform;return this._wordTransformer=this._wordTransformer.next,t}startNoWrap(){this._stackItem.isNoWrap=!0}stopNoWrap(){this._stackItem.isNoWrap=!1}_getCombinedWordTransformer(){let t=this._wordTransformer?r=>ta(r,this._wordTransformer):void 0,u=this.options.encodeCharacters;return t?u?r=>u(t(r)):t:u}_popStackItem(){let t=this._stackItem;return this._stackItem=t.next,t}addLineBreak(){(this._stackItem instanceof q||this._stackItem instanceof K||this._stackItem instanceof J)&&(this._stackItem.isPre?this._stackItem.rawText+=`
14
+ `:this._stackItem.inlineTextBuilder.startNewLine())}addWordBreakOpportunity(){(this._stackItem instanceof q||this._stackItem instanceof K||this._stackItem instanceof J)&&(this._stackItem.inlineTextBuilder.wordBreakOpportunity=!0)}addInline(t,{noWordTransform:u=!1}={}){if(this._stackItem instanceof q||this._stackItem instanceof K||this._stackItem instanceof J){if(this._stackItem.isPre){this._stackItem.rawText+=t;return}if(!(t.length===0||this._stackItem.stashedLineBreaks&&!this.whitespaceProcessor.testContainsWords(t))){if(this.options.preserveNewlines){let r=this.whitespaceProcessor.countNewlinesNoWords(t);if(r>0){this._stackItem.inlineTextBuilder.startNewLine(r);return}}this._stackItem.stashedLineBreaks&&this._stackItem.inlineTextBuilder.startNewLine(this._stackItem.stashedLineBreaks),this.whitespaceProcessor.shrinkWrapAdd(t,this._stackItem.inlineTextBuilder,u?void 0:this._getCombinedWordTransformer(),this._stackItem.isNoWrap),this._stackItem.stashedLineBreaks=0}}}addLiteral(t){if((this._stackItem instanceof q||this._stackItem instanceof K||this._stackItem instanceof J)&&t.length!==0){if(this._stackItem.isPre){this._stackItem.rawText+=t;return}this._stackItem.stashedLineBreaks&&this._stackItem.inlineTextBuilder.startNewLine(this._stackItem.stashedLineBreaks),this.whitespaceProcessor.addLiteral(t,this._stackItem.inlineTextBuilder,this._stackItem.isNoWrap),this._stackItem.stashedLineBreaks=0}}openBlock({leadingLineBreaks:t=1,reservedLineLength:u=0,isPre:r=!1}={}){let i=Math.max(20,this._stackItem.inlineTextBuilder.maxLineLength-u);this._stackItem=new q(this.options,this._stackItem,t,i),r&&(this._stackItem.isPre=!0)}closeBlock({trailingLineBreaks:t=1,blockTransform:u=void 0}={}){let r=this._popStackItem(),i=u?u(Q(r)):Q(r);nt(this._stackItem,i,r.leadingLineBreaks,Math.max(r.stashedLineBreaks,t))}openList({maxPrefixLength:t=0,prefixAlign:u="left",interRowLineBreaks:r=1,leadingLineBreaks:i=2}={}){this._stackItem=new ot(this.options,this._stackItem,{interRowLineBreaks:r,leadingLineBreaks:i,maxLineLength:this._stackItem.inlineTextBuilder.maxLineLength,maxPrefixLength:t,prefixAlign:u})}openListItem({prefix:t=""}={}){if(!(this._stackItem instanceof ot))throw new Error("Can't add a list item to something that is not a list! Check the formatter.");let u=this._stackItem,r=Math.max(t.length,u.maxPrefixLength),i=Math.max(20,u.inlineTextBuilder.maxLineLength-r);this._stackItem=new K(this.options,u,{prefix:t,maxLineLength:i,leadingLineBreaks:u.interRowLineBreaks})}closeListItem(){let t=this._popStackItem(),u=t.next,r=Math.max(t.prefix.length,u.maxPrefixLength),i=`
15
+ `+" ".repeat(r),n=(u.prefixAlign==="right"?t.prefix.padStart(r):t.prefix.padEnd(r))+Q(t).replace(/\n/g,i);nt(u,n,t.leadingLineBreaks,Math.max(t.stashedLineBreaks,u.interRowLineBreaks))}closeList({trailingLineBreaks:t=2}={}){let u=this._popStackItem(),r=Q(u);r&&nt(this._stackItem,r,u.leadingLineBreaks,t)}openTable(){this._stackItem=new ct(this._stackItem)}openTableRow(){if(!(this._stackItem instanceof ct))throw new Error("Can't add a table row to something that is not a table! Check the formatter.");this._stackItem=new lt(this._stackItem)}openTableCell({maxColumnWidth:t=void 0}={}){if(!(this._stackItem instanceof lt))throw new Error("Can't add a table cell to something that is not a table row! Check the formatter.");this._stackItem=new J(this.options,this._stackItem,t)}closeTableCell({colspan:t=1,rowspan:u=1}={}){let r=this._popStackItem(),i=Qi(Q(r),`
16
+ `);r.next.cells.push({colspan:t,rowspan:u,text:i})}closeTableRow(){let t=this._popStackItem();t.next.rows.push(t.cells)}closeTable({tableToString:t,leadingLineBreaks:u=2,trailingLineBreaks:r=2}){let i=this._popStackItem(),a=t(i.rows);a&&nt(this._stackItem,a,u,r)}toString(){return Q(this._stackItem.getRoot())}};function Q(e){if(!(e instanceof q||e instanceof K||e instanceof J))throw new Error("Only blocks, list items and table cells can be requested for text contents.");return e.inlineTextBuilder.isEmpty()?e.rawText:e.rawText+e.inlineTextBuilder.toString()}function nt(e,t,u,r){if(!(e instanceof q||e instanceof K||e instanceof J))throw new Error("Only blocks, list items and table cells can contain text.");let i=Q(e),a=Math.max(e.stashedLineBreaks,u);e.inlineTextBuilder.clear(),i?e.rawText=i+`
17
+ `.repeat(a)+t:(e.rawText=t,e.leadingLineBreaks=a),e.stashedLineBreaks=r}function ta(e,t){return t?ta(t.transform(e),t.next):e}function co(e={}){let t=e.selectors.filter(n=>!n.format);if(t.length)throw new Error("Following selectors have no specified format: "+t.map(n=>`\`${n.selector}\``).join(", "));let u=new Ae(e.selectors.map(n=>[n.selector,n])).build(mu);typeof e.encodeCharacters!="function"&&(e.encodeCharacters=po(e.encodeCharacters));let r=new Ae(e.baseElements.selectors.map((n,s)=>[n,s+1])).build(mu);function i(n){return fo(n,e,r)}let a=Nu(e.limits.maxDepth,ho,function(n,s){s.addInline(e.limits.ellipsis||"")});return function(n,s=void 0){return lo(n,s,e,u,i,a)}}function lo(e,t,u,r,i,a){let n=u.limits.maxInputLength;n&&e&&e.length>n&&(console.warn(`Input length ${e.length} is above allowed limit of ${n}. Truncating without ellipsis.`),e=e.substring(0,n));let s=Vi(e,{decodeEntities:u.decodeEntities}),c=i(s.children),l=new Au(u,r,t);return a(c,l),l.toString()}function fo(e,t,u){let r=[];function i(n,s){s=s.slice(0,t.limits.maxChildNodes);for(let c of s){if(c.type!=="tag")continue;let l=u.pick1(c);if(l>0?r.push({selectorIndex:l,element:c}):c.children&&n(c.children),r.length>=t.limits.maxBaseElements)return}}return Nu(t.limits.maxDepth,i)(e),t.baseElements.orderBy!=="occurrence"&&r.sort((n,s)=>n.selectorIndex-s.selectorIndex),t.baseElements.returnDomByDefault&&r.length===0?e:r.map(n=>n.element)}function ho(e,t,u){if(!t)return;let r=u.options;t.length>r.limits.maxChildNodes&&(t=t.slice(0,r.limits.maxChildNodes),t.push({data:r.limits.ellipsis,type:"text"}));for(let a of t)switch(a.type){case"text":{u.addInline(a.data);break}case"tag":{let n=u.picker.pick1(a),s=r.formatters[n.format];s(a,e,u,n.options||{});break}}}function po(e){if(!e||Object.keys(e).length===0)return;let t=Object.entries(e).filter(([,a])=>a!==!1),u=new RegExp(t.map(([a])=>`(${no([...a][0])})`).join("|"),"g"),r=t.map(([,a])=>a),i=(a,...n)=>r[n.findIndex(s=>s)];return a=>a.replace(u,i)}function mo(e,t,u,r){}function go(e,t,u,r){u.addLiteral(r.string||"")}function bo(e,t,u,r){u.openBlock({leadingLineBreaks:r.leadingLineBreaks||2}),u.addLiteral(r.string||""),u.closeBlock({trailingLineBreaks:r.trailingLineBreaks||2})}function xo(e,t,u,r){t(e.children,u)}function wo(e,t,u,r){u.openBlock({leadingLineBreaks:r.leadingLineBreaks||2}),t(e.children,u),u.closeBlock({trailingLineBreaks:r.trailingLineBreaks||2})}function ua(e){let t=e.attribs&&e.attribs.length?" "+Object.entries(e.attribs).map(([u,r])=>r===""?u:`${u}=${r.replace(/"/g,"&quot;")}`).join(" "):"";return`<${e.name}${t}>`}function ra(e){return`</${e.name}>`}function yo(e,t,u,r){u.startNoWrap(),u.addLiteral(ua(e)),u.stopNoWrap(),t(e.children,u),u.startNoWrap(),u.addLiteral(ra(e)),u.stopNoWrap()}function vo(e,t,u,r){u.openBlock({leadingLineBreaks:r.leadingLineBreaks||2}),u.startNoWrap(),u.addLiteral(ua(e)),u.stopNoWrap(),t(e.children,u),u.startNoWrap(),u.addLiteral(ra(e)),u.stopNoWrap(),u.closeBlock({trailingLineBreaks:r.trailingLineBreaks||2})}function ko(e,t,u,r){u.startNoWrap(),u.addLiteral(Ne(e,{decodeEntities:u.options.decodeEntities})),u.stopNoWrap()}function So(e,t,u,r){u.openBlock({leadingLineBreaks:r.leadingLineBreaks||2}),u.startNoWrap(),u.addLiteral(Ne(e,{decodeEntities:u.options.decodeEntities})),u.stopNoWrap(),u.closeBlock({trailingLineBreaks:r.trailingLineBreaks||2})}function To(e,t,u,r){u.addLiteral(r.prefix||""),t(e.children,u),u.addLiteral(r.suffix||"")}var Eo=Object.freeze({__proto__:null,block:wo,blockHtml:So,blockString:bo,blockTag:vo,inline:xo,inlineHtml:ko,inlineString:go,inlineSurround:To,inlineTag:yo,skip:mo});function dt(e,t){return e[t]||(e[t]=[]),e[t]}function Ao(e,t=0){for(;e[t];)t++;return t}function _o(e,t){for(let u=0;u<t;u++){let r=dt(e,u);for(let i=0;i<u;i++){let a=dt(e,i);if(r[i]||a[u]){let n=r[i];r[i]=a[u],a[u]=n}}}}function Lo(e,t,u,r){for(let i=0;i<e.rowspan;i++){let a=dt(t,u+i);for(let n=0;n<e.colspan;n++)a[r+n]=e}}function _u(e,t){return e[t]===void 0&&(e[t]=t===0?0:1+_u(e,t-1)),e[t]}function Zi(e,t,u,r){e[t+u]=Math.max(_u(e,t+u),_u(e,t)+r)}function Io(e,t,u){let r=[],i=0,a=e.length,n=[0];for(let l=0;l<a;l++){let f=dt(r,l),b=e[l],x=0;for(let h=0;h<b.length;h++){let g=b[h];x=Ao(f,x),Lo(g,r,l,x),x+=g.colspan,g.lines=g.text.split(`
18
+ `);let v=g.lines.length;Zi(n,l,g.rowspan,v+t)}i=f.length>i?f.length:i}_o(r,a>i?a:i);let s=[],c=[0];for(let l=0;l<i;l++){let f=0,b,x=Math.min(a,r[l].length);for(;f<x;)if(b=r[l][f],b){if(!b.rendered){let h=0;for(let g=0;g<b.lines.length;g++){let v=b.lines[g],w=n[f]+g;s[w]=(s[w]||"").padEnd(c[l])+v,h=v.length>h?v.length:h}Zi(c,l,b.colspan,h+u),b.rendered=!0}f+=b.rowspan}else{let h=n[f];s[h]=s[h]||"",f++}}return s.join(`
19
+ `)}function No(e,t,u,r){u.addLineBreak()}function Do(e,t,u,r){u.addWordBreakOpportunity()}function $o(e,t,u,r){u.openBlock({leadingLineBreaks:r.leadingLineBreaks||2}),u.addInline("-".repeat(r.length||u.options.wordwrap||40)),u.closeBlock({trailingLineBreaks:r.trailingLineBreaks||2})}function Co(e,t,u,r){u.openBlock({leadingLineBreaks:r.leadingLineBreaks||2}),t(e.children,u),u.closeBlock({trailingLineBreaks:r.trailingLineBreaks||2})}function Bo(e,t,u,r){u.openBlock({isPre:!0,leadingLineBreaks:r.leadingLineBreaks||2}),t(e.children,u),u.closeBlock({trailingLineBreaks:r.trailingLineBreaks||2})}function Po(e,t,u,r){u.openBlock({leadingLineBreaks:r.leadingLineBreaks||2}),r.uppercase!==!1?(u.pushWordTransform(i=>i.toUpperCase()),t(e.children,u),u.popWordTransform()):t(e.children,u),u.closeBlock({trailingLineBreaks:r.trailingLineBreaks||2})}function Oo(e,t,u,r){u.openBlock({leadingLineBreaks:r.leadingLineBreaks||2,reservedLineLength:2}),t(e.children,u),u.closeBlock({trailingLineBreaks:r.trailingLineBreaks||2,blockTransform:i=>(r.trimEmptyLines!==!1?Qi(i,`
20
20
  `):i).split(`
21
21
  `).map(a=>"> "+a).join(`
22
- `)})}function Lu(e,t){if(!t)return e;let u=typeof t[0]=="string"?t[0]:"[",r=typeof t[1]=="string"?t[1]:"]";return u+e+r}function ra(e,t,u,r,i){let a=typeof t=="function"?t(e,r,i):e;return a[0]==="/"&&u?io(u,"/")+a:a}function Oo(e,t,u,r){let i=e.attribs||{},a=i.alt?i.alt:"",n=i.src?ra(i.src,r.pathRewrite,r.baseUrl,u.metadata,e):"",s=n?a?a+" "+Lu(n,r.linkBrackets):Lu(n,r.linkBrackets):a;u.addInline(s,{noWordTransform:!0})}function Ro(e,t,u,r){function i(){if(r.ignoreHref||!e.attribs||!e.attribs.href)return"";let n=e.attribs.href.replace(/^mailto:/,"");return r.noAnchorUrl&&n[0]==="#"?"":(n=ra(n,r.pathRewrite,r.baseUrl,u.metadata,e),n)}let a=i();if(!a)t(e.children,u);else{let n="";u.pushWordTransform(c=>(c&&(n+=c),c)),t(e.children,u),u.popWordTransform(),r.hideLinkHrefIfSameAsText&&a===n||u.addInline(n?" "+Lu(a,r.linkBrackets):a,{noWordTransform:!0})}}function ia(e,t,u,r,i){let a=he(e,["parent","name"])==="li",n=0,s=(e.children||[]).filter(c=>c.type!=="text"||!/^\s*$/.test(c.data)).map(function(c){if(c.name!=="li")return{node:c,prefix:""};let l=a?i().trimStart():i();return l.length>n&&(n=l.length),{node:c,prefix:l}});if(s.length){u.openList({interRowLineBreaks:1,leadingLineBreaks:a?1:r.leadingLineBreaks||2,maxPrefixLength:n,prefixAlign:"left"});for(let{node:c,prefix:l}of s)u.openListItem({prefix:l}),t([c],u),u.closeListItem();u.closeList({trailingLineBreaks:a?1:r.trailingLineBreaks||2})}}function qo(e,t,u,r){let i=r.itemPrefix||" * ";return ia(e,t,u,r,()=>i)}function Mo(e,t,u,r){let i=Number(e.attribs.start||"1"),a=Ho(e.attribs.type);return ia(e,t,u,r,()=>" "+a(i++)+". ")}function Ho(e="1"){switch(e){case"a":return t=>Ki(t,"a");case"A":return t=>Ki(t,"A");case"i":return t=>Yi(t).toLowerCase();case"I":return t=>Yi(t);case"1":default:return t=>t.toString()}}function Uo(e){let t=[],u=[];for(let r of e)r.startsWith(".")?t.push(r.substring(1)):r.startsWith("#")&&u.push(r.substring(1));return{classes:t,ids:u}}function Fo(e,t){if(t===!0)return!0;if(!e)return!1;let{classes:u,ids:r}=Uo(t),i=(e.class||"").split(" "),a=(e.id||"").split(" ");return i.some(n=>u.includes(n))||a.some(n=>r.includes(n))}function jo(e,t,u,r){return Fo(e.attribs,u.options.tables)?aa(e,t,u,r):Vo(e,t,u,r)}function Vo(e,t,u,r){u.openBlock({leadingLineBreaks:r.leadingLineBreaks}),t(e.children,u),u.closeBlock({trailingLineBreaks:r.trailingLineBreaks})}function aa(e,t,u,r){u.openTable(),e.children.forEach(a),u.closeTable({tableToString:n=>_o(n,r.rowSpacing??0,r.colSpacing??3),leadingLineBreaks:r.leadingLineBreaks,trailingLineBreaks:r.trailingLineBreaks});function i(n){let s=+he(n,["attribs","colspan"])||1,c=+he(n,["attribs","rowspan"])||1;u.openTableCell({maxColumnWidth:r.maxColumnWidth}),t(n.children,u),u.closeTableCell({colspan:s,rowspan:c})}function a(n){if(n.type!=="tag")return;let s=r.uppercaseHeaderCells!==!1?c=>{u.pushWordTransform(l=>l.toUpperCase()),i(c),u.popWordTransform()}:i;switch(n.name){case"thead":case"tbody":case"tfoot":case"center":n.children.forEach(a);return;case"tr":{u.openTableRow();for(let c of n.children)if(c.type==="tag")switch(c.name){case"th":{s(c);break}case"td":{i(c);break}}u.closeTableRow();break}}}}var Wo=Object.freeze({__proto__:null,anchor:Ro,blockquote:Po,dataTable:aa,heading:Bo,horizontalLine:Do,image:Oo,lineBreak:Io,orderedList:Mo,paragraph:$o,pre:Co,table:jo,unorderedList:qo,wbr:No}),Go={baseElements:{selectors:["body"],orderBy:"selectors",returnDomByDefault:!0},decodeEntities:!0,encodeCharacters:{},formatters:{},limits:{ellipsis:"...",maxBaseElements:void 0,maxChildNodes:void 0,maxDepth:void 0,maxInputLength:1<<24},longWordSplit:{forceWrapOnLimit:!1,wrapCharacters:[]},preserveNewlines:!1,selectors:[{selector:"*",format:"inline"},{selector:"a",format:"anchor",options:{baseUrl:null,hideLinkHrefIfSameAsText:!1,ignoreHref:!1,linkBrackets:["[","]"],noAnchorUrl:!0}},{selector:"article",format:"block",options:{leadingLineBreaks:1,trailingLineBreaks:1}},{selector:"aside",format:"block",options:{leadingLineBreaks:1,trailingLineBreaks:1}},{selector:"blockquote",format:"blockquote",options:{leadingLineBreaks:2,trailingLineBreaks:2,trimEmptyLines:!0}},{selector:"br",format:"lineBreak"},{selector:"div",format:"block",options:{leadingLineBreaks:1,trailingLineBreaks:1}},{selector:"footer",format:"block",options:{leadingLineBreaks:1,trailingLineBreaks:1}},{selector:"form",format:"block",options:{leadingLineBreaks:1,trailingLineBreaks:1}},{selector:"h1",format:"heading",options:{leadingLineBreaks:3,trailingLineBreaks:2,uppercase:!0}},{selector:"h2",format:"heading",options:{leadingLineBreaks:3,trailingLineBreaks:2,uppercase:!0}},{selector:"h3",format:"heading",options:{leadingLineBreaks:3,trailingLineBreaks:2,uppercase:!0}},{selector:"h4",format:"heading",options:{leadingLineBreaks:2,trailingLineBreaks:2,uppercase:!0}},{selector:"h5",format:"heading",options:{leadingLineBreaks:2,trailingLineBreaks:2,uppercase:!0}},{selector:"h6",format:"heading",options:{leadingLineBreaks:2,trailingLineBreaks:2,uppercase:!0}},{selector:"header",format:"block",options:{leadingLineBreaks:1,trailingLineBreaks:1}},{selector:"hr",format:"horizontalLine",options:{leadingLineBreaks:2,length:void 0,trailingLineBreaks:2}},{selector:"img",format:"image",options:{baseUrl:null,linkBrackets:["[","]"]}},{selector:"main",format:"block",options:{leadingLineBreaks:1,trailingLineBreaks:1}},{selector:"nav",format:"block",options:{leadingLineBreaks:1,trailingLineBreaks:1}},{selector:"ol",format:"orderedList",options:{leadingLineBreaks:2,trailingLineBreaks:2}},{selector:"p",format:"paragraph",options:{leadingLineBreaks:2,trailingLineBreaks:2}},{selector:"pre",format:"pre",options:{leadingLineBreaks:2,trailingLineBreaks:2}},{selector:"section",format:"block",options:{leadingLineBreaks:1,trailingLineBreaks:1}},{selector:"table",format:"table",options:{colSpacing:3,leadingLineBreaks:2,maxColumnWidth:60,rowSpacing:0,trailingLineBreaks:2,uppercaseHeaderCells:!0}},{selector:"ul",format:"unorderedList",options:{itemPrefix:" * ",leadingLineBreaks:2,trailingLineBreaks:2}},{selector:"wbr",format:"wbr"}],tables:[],whitespaceCharacters:` \r
23
- \f\u200B`,wordwrap:80},zo=(e,t,u)=>[...e,...t],na=(e,t,u)=>[...t],Ko=(e,t,u)=>e.some(r=>typeof r=="object")?zo(e,t):na(e,t);function Jo(e={}){return e=(0,_u.default)(Go,e,{arrayMerge:na,customMerge:t=>t==="selectors"?Ko:void 0}),e.formatters=Object.assign({},To,Wo,e.formatters),e.selectors=Qi(e.selectors,t=>t.selector),Yo(e),oo(e)}function sa(e,t={},u=void 0){return Jo(t)(e,u)}function Yo(e){if(e.tags){let u=Object.entries(e.tags).map(([r,i])=>({...i,selector:r||"*"}));e.selectors.push(...u),e.selectors=Qi(e.selectors,r=>r.selector)}function t(u,r,i){let a=r.pop();for(let n of r){let s=u[n];s||(s={},u[n]=s),u=s}u[a]=i}if(e.baseElement){let u=e.baseElement;t(e,["baseElements","selectors"],Array.isArray(u)?u:[u])}e.returnDomByDefault!==void 0&&t(e,["baseElements","returnDomByDefault"],e.returnDomByDefault);for(let u of e.selectors)u.format==="anchor"&&he(u,["options","noLinkBrackets"])&&t(u,["options","linkBrackets"],!1)}async function Xo(e,t,u){let{apiKey:r,domain:i}=e;if(!r||!i)throw new Error("Mailgun configuration missing. Please provide apiKey and domain");let a=[];try{let n=`https://api.mailgun.net/v3/${i}/events`,s={event:"accepted",limit:"10",ascending:"yes",recipient:t};if(u.from_email&&(s.from=u.from_email),u.since)s.begin=Math.floor(u.since/1e3).toString();else{let f=new Date(Date.now()-6e5);s.begin=Math.floor(f.getTime()/1e3).toString()}o.info(`Mailgun params: ${JSON.stringify(s)}`);let c=await fetch(n+"?"+new URLSearchParams(s),{method:"GET",headers:{Authorization:`Basic ${Buffer.from(`api:${r}`).toString("base64")}`}});if(!c.ok){let f=await c.text();throw new Error(`Mailgun events API error: ${f}`)}let l=(await c.json()).items||[];for(let f of l.slice(0,10)){if(f.event!=="accepted")continue;let m=(f.storage||{}).url;if(o.info(`message_url: ${m}`),!m){let b=(f.message||{}).headers||{},v=b.subject||"",y=b.from||"",w=b.to||"";if(u.from_email&&!y.toLowerCase().includes(u.from_email.toLowerCase())||u.to_email&&!w.toLowerCase().includes(u.to_email.toLowerCase())||u.subject&&!v.toLowerCase().includes(u.subject.toLowerCase()))continue;a.push({subject:v,from:y,to:w,date:new Date(f.timestamp*1e3).toUTCString(),body:"Message body not available (Mailgun storage disabled)",message_id:b["message-id"]||""});continue}let x=m.split("/"),g=x[x.length-1];if(o.info(`Storage key: ${g}`),g){let b=`https://api.mailgun.net/v3/domains/${i}/messages/${g}`;try{let v=await fetch(b,{method:"GET",headers:{Authorization:`Basic ${Buffer.from(`api:${r}`).toString("base64")}`,Accept:"application/json"}});if(v.ok){let y=await v.json(),w=y.Subject||"",E=y.From||"",D=y.To||"",q=y.Date||"",F=y["Message-Id"]||"";o.info(`subject: ${w}`),o.info(`from_addr: ${E}`),o.info(`to_addr: ${D}`),o.info(`date: ${q}`),o.info(`message_id: ${F}`);let M=y["body-html"]||y["body-plain"]||"";if(M&&M.includes("<")&&(M=sa(M)),o.info(`Body: ${M.substring(0,200)}...`),u.subject&&!w.toLowerCase().includes(u.subject.toLowerCase())||u.body_contains&&!M.toLowerCase().includes(u.body_contains.toLowerCase()))continue;a.push({subject:w,from:E,to:D,date:q,body:M,message_id:F});continue}else o.warn(`Messages API returned ${v.status}`)}catch(v){o.warn(`Failed to parse JSON response: ${v}`)}}try{let b=await fetch(m,{method:"GET",headers:{Authorization:`Basic ${Buffer.from(`api:${r}`).toString("base64")}`}});if(!b.ok){o.warn(`Could not fetch stored message: ${b.status}`);continue}let v=await b.text();o.info(`Fallback: Raw email length: ${v.length}`);let y=v.split(`
24
- `),w=!0,E={},D="";for(let Mt=0;Mt<y.length;Mt++){let Ht=y[Mt];if(Ht.trim()===""&&w){w=!1;continue}if(w){let Ut=Ht.match(/^([^:]+):\s*(.+)$/);Ut&&(E[Ut[1].toLowerCase()]=Ut[2])}else D+=Ht+`
25
- `}let q=E.subject||"",F=E.from||"",M=E.to||"",Rt=E.date||"",qt=E["message-id"]||"";if(u.subject&&!q.toLowerCase().includes(u.subject.toLowerCase())||u.body_contains&&!D.toLowerCase().includes(u.body_contains.toLowerCase()))continue;a.push({subject:q,from:F,to:M,date:Rt,body:D.trim(),message_id:qt})}catch(b){o.warn(`Error fetching raw message: ${b}`)}}if(a.length>0){try{a.sort((m,x)=>{let g=new Date(m.date).getTime();return new Date(x.date).getTime()-g})}catch{}let f=a[0];return o.info(`Returning most recent email: ${f.subject}`),[f]}return a}catch(n){throw o.error(`Error fetching emails from Mailgun: ${n.message}`),new Error(`Error fetching emails from Mailgun: ${n.message}`)}}function Zo(e,t){if(e==="verification_code")return`You are analyzing an email to extract an OTP (One-Time Password) or verification code.
22
+ `)})}function Lu(e,t){if(!t)return e;let u=typeof t[0]=="string"?t[0]:"[",r=typeof t[1]=="string"?t[1]:"]";return u+e+r}function ia(e,t,u,r,i){let a=typeof t=="function"?t(e,r,i):e;return a[0]==="/"&&u?ao(u,"/")+a:a}function Ro(e,t,u,r){let i=e.attribs||{},a=i.alt?i.alt:"",n=i.src?ia(i.src,r.pathRewrite,r.baseUrl,u.metadata,e):"",s=n?a?a+" "+Lu(n,r.linkBrackets):Lu(n,r.linkBrackets):a;u.addInline(s,{noWordTransform:!0})}function qo(e,t,u,r){function i(){if(r.ignoreHref||!e.attribs||!e.attribs.href)return"";let n=e.attribs.href.replace(/^mailto:/,"");return r.noAnchorUrl&&n[0]==="#"?"":(n=ia(n,r.pathRewrite,r.baseUrl,u.metadata,e),n)}let a=i();if(!a)t(e.children,u);else{let n="";u.pushWordTransform(c=>(c&&(n+=c),c)),t(e.children,u),u.popWordTransform(),r.hideLinkHrefIfSameAsText&&a===n||u.addInline(n?" "+Lu(a,r.linkBrackets):a,{noWordTransform:!0})}}function aa(e,t,u,r,i){let a=he(e,["parent","name"])==="li",n=0,s=(e.children||[]).filter(c=>c.type!=="text"||!/^\s*$/.test(c.data)).map(function(c){if(c.name!=="li")return{node:c,prefix:""};let l=a?i().trimStart():i();return l.length>n&&(n=l.length),{node:c,prefix:l}});if(s.length){u.openList({interRowLineBreaks:1,leadingLineBreaks:a?1:r.leadingLineBreaks||2,maxPrefixLength:n,prefixAlign:"left"});for(let{node:c,prefix:l}of s)u.openListItem({prefix:l}),t([c],u),u.closeListItem();u.closeList({trailingLineBreaks:a?1:r.trailingLineBreaks||2})}}function Mo(e,t,u,r){let i=r.itemPrefix||" * ";return aa(e,t,u,r,()=>i)}function Ho(e,t,u,r){let i=Number(e.attribs.start||"1"),a=Uo(e.attribs.type);return aa(e,t,u,r,()=>" "+a(i++)+". ")}function Uo(e="1"){switch(e){case"a":return t=>Ji(t,"a");case"A":return t=>Ji(t,"A");case"i":return t=>Xi(t).toLowerCase();case"I":return t=>Xi(t);case"1":default:return t=>t.toString()}}function Fo(e){let t=[],u=[];for(let r of e)r.startsWith(".")?t.push(r.substring(1)):r.startsWith("#")&&u.push(r.substring(1));return{classes:t,ids:u}}function jo(e,t){if(t===!0)return!0;if(!e)return!1;let{classes:u,ids:r}=Fo(t),i=(e.class||"").split(" "),a=(e.id||"").split(" ");return i.some(n=>u.includes(n))||a.some(n=>r.includes(n))}function Vo(e,t,u,r){return jo(e.attribs,u.options.tables)?na(e,t,u,r):Wo(e,t,u,r)}function Wo(e,t,u,r){u.openBlock({leadingLineBreaks:r.leadingLineBreaks}),t(e.children,u),u.closeBlock({trailingLineBreaks:r.trailingLineBreaks})}function na(e,t,u,r){u.openTable(),e.children.forEach(a),u.closeTable({tableToString:n=>Io(n,r.rowSpacing??0,r.colSpacing??3),leadingLineBreaks:r.leadingLineBreaks,trailingLineBreaks:r.trailingLineBreaks});function i(n){let s=+he(n,["attribs","colspan"])||1,c=+he(n,["attribs","rowspan"])||1;u.openTableCell({maxColumnWidth:r.maxColumnWidth}),t(n.children,u),u.closeTableCell({colspan:s,rowspan:c})}function a(n){if(n.type!=="tag")return;let s=r.uppercaseHeaderCells!==!1?c=>{u.pushWordTransform(l=>l.toUpperCase()),i(c),u.popWordTransform()}:i;switch(n.name){case"thead":case"tbody":case"tfoot":case"center":n.children.forEach(a);return;case"tr":{u.openTableRow();for(let c of n.children)if(c.type==="tag")switch(c.name){case"th":{s(c);break}case"td":{i(c);break}}u.closeTableRow();break}}}}var Go=Object.freeze({__proto__:null,anchor:qo,blockquote:Oo,dataTable:na,heading:Po,horizontalLine:$o,image:Ro,lineBreak:No,orderedList:Ho,paragraph:Co,pre:Bo,table:Vo,unorderedList:Mo,wbr:Do}),zo={baseElements:{selectors:["body"],orderBy:"selectors",returnDomByDefault:!0},decodeEntities:!0,encodeCharacters:{},formatters:{},limits:{ellipsis:"...",maxBaseElements:void 0,maxChildNodes:void 0,maxDepth:void 0,maxInputLength:1<<24},longWordSplit:{forceWrapOnLimit:!1,wrapCharacters:[]},preserveNewlines:!1,selectors:[{selector:"*",format:"inline"},{selector:"a",format:"anchor",options:{baseUrl:null,hideLinkHrefIfSameAsText:!1,ignoreHref:!1,linkBrackets:["[","]"],noAnchorUrl:!0}},{selector:"article",format:"block",options:{leadingLineBreaks:1,trailingLineBreaks:1}},{selector:"aside",format:"block",options:{leadingLineBreaks:1,trailingLineBreaks:1}},{selector:"blockquote",format:"blockquote",options:{leadingLineBreaks:2,trailingLineBreaks:2,trimEmptyLines:!0}},{selector:"br",format:"lineBreak"},{selector:"div",format:"block",options:{leadingLineBreaks:1,trailingLineBreaks:1}},{selector:"footer",format:"block",options:{leadingLineBreaks:1,trailingLineBreaks:1}},{selector:"form",format:"block",options:{leadingLineBreaks:1,trailingLineBreaks:1}},{selector:"h1",format:"heading",options:{leadingLineBreaks:3,trailingLineBreaks:2,uppercase:!0}},{selector:"h2",format:"heading",options:{leadingLineBreaks:3,trailingLineBreaks:2,uppercase:!0}},{selector:"h3",format:"heading",options:{leadingLineBreaks:3,trailingLineBreaks:2,uppercase:!0}},{selector:"h4",format:"heading",options:{leadingLineBreaks:2,trailingLineBreaks:2,uppercase:!0}},{selector:"h5",format:"heading",options:{leadingLineBreaks:2,trailingLineBreaks:2,uppercase:!0}},{selector:"h6",format:"heading",options:{leadingLineBreaks:2,trailingLineBreaks:2,uppercase:!0}},{selector:"header",format:"block",options:{leadingLineBreaks:1,trailingLineBreaks:1}},{selector:"hr",format:"horizontalLine",options:{leadingLineBreaks:2,length:void 0,trailingLineBreaks:2}},{selector:"img",format:"image",options:{baseUrl:null,linkBrackets:["[","]"]}},{selector:"main",format:"block",options:{leadingLineBreaks:1,trailingLineBreaks:1}},{selector:"nav",format:"block",options:{leadingLineBreaks:1,trailingLineBreaks:1}},{selector:"ol",format:"orderedList",options:{leadingLineBreaks:2,trailingLineBreaks:2}},{selector:"p",format:"paragraph",options:{leadingLineBreaks:2,trailingLineBreaks:2}},{selector:"pre",format:"pre",options:{leadingLineBreaks:2,trailingLineBreaks:2}},{selector:"section",format:"block",options:{leadingLineBreaks:1,trailingLineBreaks:1}},{selector:"table",format:"table",options:{colSpacing:3,leadingLineBreaks:2,maxColumnWidth:60,rowSpacing:0,trailingLineBreaks:2,uppercaseHeaderCells:!0}},{selector:"ul",format:"unorderedList",options:{itemPrefix:" * ",leadingLineBreaks:2,trailingLineBreaks:2}},{selector:"wbr",format:"wbr"}],tables:[],whitespaceCharacters:` \r
23
+ \f\u200B`,wordwrap:80},Ko=(e,t,u)=>[...e,...t],sa=(e,t,u)=>[...t],Jo=(e,t,u)=>e.some(r=>typeof r=="object")?Ko(e,t):sa(e,t);function Yo(e={}){return e=(0,Iu.default)(zo,e,{arrayMerge:sa,customMerge:t=>t==="selectors"?Jo:void 0}),e.formatters=Object.assign({},Eo,Go,e.formatters),e.selectors=ea(e.selectors,t=>t.selector),Xo(e),co(e)}function oa(e,t={},u=void 0){return Yo(t)(e,u)}function Xo(e){if(e.tags){let u=Object.entries(e.tags).map(([r,i])=>({...i,selector:r||"*"}));e.selectors.push(...u),e.selectors=ea(e.selectors,r=>r.selector)}function t(u,r,i){let a=r.pop();for(let n of r){let s=u[n];s||(s={},u[n]=s),u=s}u[a]=i}if(e.baseElement){let u=e.baseElement;t(e,["baseElements","selectors"],Array.isArray(u)?u:[u])}e.returnDomByDefault!==void 0&&t(e,["baseElements","returnDomByDefault"],e.returnDomByDefault);for(let u of e.selectors)u.format==="anchor"&&he(u,["options","noLinkBrackets"])&&t(u,["options","linkBrackets"],!1)}async function Zo(e,t,u){let{apiKey:r,domain:i}=e;if(!r||!i)throw new Error("Mailgun configuration missing. Please provide apiKey and domain");let a=[];try{let n=`https://api.mailgun.net/v3/${i}/events`,s={event:"accepted",limit:"10",ascending:"yes",recipient:t};if(u.from_email&&(s.from=u.from_email),u.since)s.begin=Math.floor(u.since/1e3).toString();else{let f=new Date(Date.now()-6e5);s.begin=Math.floor(f.getTime()/1e3).toString()}o.info(`Mailgun params: ${JSON.stringify(s)}`);let c=await fetch(n+"?"+new URLSearchParams(s),{method:"GET",headers:{Authorization:`Basic ${Buffer.from(`api:${r}`).toString("base64")}`}});if(!c.ok){let f=await c.text();throw new Error(`Mailgun events API error: ${f}`)}let l=(await c.json()).items||[];for(let f of l.slice(0,10)){if(f.event!=="accepted")continue;let b=(f.storage||{}).url;if(o.info(`message_url: ${b}`),!b){let g=(f.message||{}).headers||{},v=g.subject||"",w=g.from||"",y=g.to||"";if(u.from_email&&!w.toLowerCase().includes(u.from_email.toLowerCase())||u.to_email&&!y.toLowerCase().includes(u.to_email.toLowerCase())||u.subject&&!v.toLowerCase().includes(u.subject.toLowerCase()))continue;a.push({subject:v,from:w,to:y,date:new Date(f.timestamp*1e3).toUTCString(),body:"Message body not available (Mailgun storage disabled)",message_id:g["message-id"]||""});continue}let x=b.split("/"),h=x[x.length-1];if(o.info(`Storage key: ${h}`),h){let g=`https://api.mailgun.net/v3/domains/${i}/messages/${h}`;try{let v=await fetch(g,{method:"GET",headers:{Authorization:`Basic ${Buffer.from(`api:${r}`).toString("base64")}`,Accept:"application/json"}});if(v.ok){let w=await v.json(),y=w.Subject||"",k=w.From||"",_=w.To||"",P=w.Date||"",F=w["Message-Id"]||"";o.info(`subject: ${y}`),o.info(`from_addr: ${k}`),o.info(`to_addr: ${_}`),o.info(`date: ${P}`),o.info(`message_id: ${F}`);let M=w["body-html"]||w["body-plain"]||"";if(M&&M.includes("<")&&(M=oa(M)),o.info(`Body: ${M.substring(0,200)}...`),u.subject&&!y.toLowerCase().includes(u.subject.toLowerCase())||u.body_contains&&!M.toLowerCase().includes(u.body_contains.toLowerCase()))continue;a.push({subject:y,from:k,to:_,date:P,body:M,message_id:F});continue}else o.warn(`Messages API returned ${v.status}`)}catch(v){o.warn(`Failed to parse JSON response: ${v}`)}}try{let g=await fetch(b,{method:"GET",headers:{Authorization:`Basic ${Buffer.from(`api:${r}`).toString("base64")}`}});if(!g.ok){o.warn(`Could not fetch stored message: ${g.status}`);continue}let v=await g.text();o.info(`Fallback: Raw email length: ${v.length}`);let w=v.split(`
24
+ `),y=!0,k={},_="";for(let Ht=0;Ht<w.length;Ht++){let Ut=w[Ht];if(Ut.trim()===""&&y){y=!1;continue}if(y){let Ft=Ut.match(/^([^:]+):\s*(.+)$/);Ft&&(k[Ft[1].toLowerCase()]=Ft[2])}else _+=Ut+`
25
+ `}let P=k.subject||"",F=k.from||"",M=k.to||"",qt=k.date||"",Mt=k["message-id"]||"";if(u.subject&&!P.toLowerCase().includes(u.subject.toLowerCase())||u.body_contains&&!_.toLowerCase().includes(u.body_contains.toLowerCase()))continue;a.push({subject:P,from:F,to:M,date:qt,body:_.trim(),message_id:Mt})}catch(g){o.warn(`Error fetching raw message: ${g}`)}}if(a.length>0){try{a.sort((b,x)=>{let h=new Date(b.date).getTime();return new Date(x.date).getTime()-h})}catch{}let f=a[0];return o.info(`Returning most recent email: ${f.subject}`),[f]}return a}catch(n){throw o.error(`Error fetching emails from Mailgun: ${n.message}`),new Error(`Error fetching emails from Mailgun: ${n.message}`)}}function Qo(e,t){if(e==="verification_code")return`You are analyzing an email to extract an OTP (One-Time Password) or verification code.
26
26
 
27
27
  Please carefully examine the email content and look for:
28
28
  1. Numeric codes (usually 4-8 digits)
@@ -79,27 +79,27 @@ Examples of what to extract:
79
79
  Extract: https://service.com/v/longtoken123456789abcdefghijklmnopqrstuvwxyz?param1=value1&param2=value2
80
80
 
81
81
  Return ONLY the complete extracted URL or "NOT_FOUND".`;if(e==="custom"){if(!t)throw new Error("Custom prompt is required when extraction_type is custom");return t+`
82
- Return only the required content or 'NOT_FOUND'.`}else throw new Error(`Unsupported extraction type: ${e}`)}async function Qo(e,t,u){try{let r=`${t}
82
+ Return only the required content or 'NOT_FOUND'.`}else throw new Error(`Unsupported extraction type: ${e}`)}async function e0(e,t,u){try{let r=`${t}
83
83
  ---
84
84
  Email Content:
85
85
  ---
86
86
  ${e}
87
87
  ---
88
- `,i=jt(u);return(await Qu({model:i,messages:[{role:"user",content:r}],temperature:0,providerOptions:Vt(u,0)})).text.trim()||"NOT_FOUND"}catch(r){throw o.error(`Error in LLM extraction: ${r.message}`),new Error(`Error in LLM extraction: ${r.message}`)}}async function oa(e,t){o.info(`extract_email_content:
88
+ `,i=Vt(u);return(await er({model:i,messages:[{role:"user",content:r}],temperature:0,providerOptions:Wt(u,0)})).text.trim()||"NOT_FOUND"}catch(r){throw o.error(`Error in LLM extraction: ${r.message}`),new Error(`Error in LLM extraction: ${r.message}`)}}async function ca(e,t){o.info(`extract_email_content:
89
89
  forward_email: ${t.forward_email}
90
90
  extraction_type: ${t.extraction_type}
91
91
  filters: ${JSON.stringify(t.filters||{})}
92
92
  timeout: ${t.timeout||60}
93
- polling_interval: 10`);let u=t.timeout||60,r=10;try{if(t.extraction_type==="custom"&&!t.prompt)return{data:void 0,status:"error",message:"Custom prompt is required when extraction_type is custom"};let i=Zo(t.extraction_type,t.prompt),a=new Date,n=new Date(a.getTime()+u*1e3),s=0;for(o.info(`Starting email polling for ${u} seconds with ${r}s intervals`);new Date<n;){s++,o.info(`Polling attempt ${s}`);try{let l=t.filters||{},f=await Xo(e,t.forward_email,l);if(f.length>0){o.info(`Found ${f.length} emails matching criteria`);let m=[];for(let x of f){let g=`Subject: ${x.subject}
93
+ polling_interval: 10`);let u=t.timeout||60,r=10;try{if(t.extraction_type==="custom"&&!t.prompt)return{data:void 0,status:"error",message:"Custom prompt is required when extraction_type is custom"};let i=Qo(t.extraction_type,t.prompt),a=new Date,n=new Date(a.getTime()+u*1e3),s=0;for(o.info(`Starting email polling for ${u} seconds with ${r}s intervals`);new Date<n;){s++,o.info(`Polling attempt ${s}`);try{let l=t.filters||{},f=await Zo(e,t.forward_email,l);if(f.length>0){o.info(`Found ${f.length} emails matching criteria`);let b=[];for(let x of f){let h=`Subject: ${x.subject}
94
94
  From: ${x.from}
95
95
  To: ${x.to}
96
96
  Date: ${x.date}
97
97
 
98
98
  Body:
99
- ${x.body}`,b=await Qo(g,i,t.model);o.info(`Extracted content: ${b}`),b&&b!=="NOT_FOUND"&&m.push({content:b,email_subject:x.subject,email_from:x.from,email_date:x.date})}if(m.length>0){let x=m[0],g=`$email_${t.extraction_type}`;t.extraction_type==="custom"?g="$email_extracted_content":t.extraction_type==="activation_link"?g="$email_magic_link":t.extraction_type==="verification_code"&&(g="$email_otp_code");let b=(new Date().getTime()-a.getTime())/1e3;return o.info(`Successfully extracted content after ${s} attempts in ${b.toFixed(1)} seconds`),{data:x.content,result_variable:g,status:"success",message:`Successfully extracted content from email: ${x.email_subject.substring(0,50)}... (attempts: ${s})`}}else o.info(`Found emails but no extractable content in attempt ${s}`)}else o.info(`No emails found in attempt ${s}`)}catch(l){o.warn(`Error in polling attempt ${s}: ${l.message}`)}if(new Date(Date.now()+r*1e3)>=n){o.info("Not enough time for another polling attempt");break}o.info(`Waiting ${r} seconds before next attempt...`),await new Promise(l=>setTimeout(l,r*1e3))}let c=(new Date().getTime()-a.getTime())/1e3;return{data:void 0,status:"error",message:`No emails with extractable content found after ${s} attempts over ${c.toFixed(1)} seconds`}}catch(i){return o.error(`Error extracting email content: ${i.message}`),{data:void 0,status:"error",message:`Error extracting email content: ${i.message}`}}}import{z as Y}from"zod";function ca(e){switch(e){case"verification_code":return"email_otp_code";case"activation_link":return"email_magic_link";case"custom":return"email_extracted_content";default:return"email_content"}}var la=class{getMailgunConfig(){let e=Ft().env||{};if(e.MAILGUN_API_KEY)return{apiKey:e.MAILGUN_API_KEY,domain:e.MAILGUN_DOMAIN||""}}async execute(e,t,u){let r=t.action_data;if(!r)throw new Error("Action data not found");let i=this.getMailgunConfig();if(!i)throw new Error("Mailgun configuration not provided. Please configure MAILGUN_API_KEY and MAILGUN_DOMAIN in SDK config.");let a=r.kwargs,n=u.getModel?.()||"gemini-2.5-pro",s=await oa(i,{model:n,forward_email:a.forward_email,extraction_type:a.extraction_type,prompt:a.prompt,filters:{from_email:a.filter_from_email,to_email:a.filter_to_email,subject:a.filter_subject,body_contains:a.filter_body_contains},timeout:a.timeout});if(s.status==="success"&&s.data){let c=s.result_variable?.replace(/^\$/,"")||ca(a.extraction_type);u.variableStore.set(c,s.data),o.info(`[extract_email_content] Extracted and saved to ${c}`)}else throw new Error(s.message||"Failed to extract email content")}transpile(e){let t=e.action_data?.kwargs||{};return['await agent.execAction("extract_email_content", page, {',` action_data: { kwargs: ${JSON.stringify(t)} },`,"});"]}},e0=Y.object({forward_email:Y.string().describe("Email address where emails are forwarded to (Mailgun inbox)"),extraction_type:Y.enum(["verification_code","activation_link","custom"]).describe("Type of content to extract: verification_code for OTP codes, activation_link for magic links, custom for custom prompts"),prompt:Y.string().optional().describe("Custom extraction prompt (required when extraction_type is custom)"),filter_from_email:Y.string().optional().describe("Filter emails by sender address"),filter_to_email:Y.string().optional().describe("Filter emails by recipient address"),filter_subject:Y.string().optional().describe("Filter emails by subject (partial match)"),filter_body_contains:Y.string().optional().describe("Filter emails by body content (partial match)"),timeout:Y.number().optional().describe("Timeout in seconds for polling (default: 60)")});function da(e,t){e.register({name:"extract_email_content",description:"Extract verification codes, magic links, or custom content from emails received via Mailgun. Polls the Mailgun inbox for matching emails and uses AI to extract the requested content.",schema:e0,async execute(u,r){let{forward_email:i,extraction_type:a,prompt:n,filter_from_email:s,filter_to_email:c,filter_subject:l,filter_body_contains:f,timeout:m}=u,{page:x,agentServices:g}=r;o.info(`[extract_email_content] Extracting ${a} from ${i}`);try{let b={action_description:`Extract ${a} from email`,action_data:{action_name:"extract_email_content",kwargs:{forward_email:i,extraction_type:a,prompt:n,filter_from_email:s,filter_to_email:c,filter_subject:l,filter_body_contains:f,timeout:m}}};await t.execute(x,b,g);let v=ca(a);return{success:!0,actionEntity:b,message:`Extracted ${a} and saved to $${v}`}}catch(b){return{success:!1,error:b.message,actionEntity:{action_description:`Extract ${a} from email (failed)`,action_data:{action_name:"extract_email_content",kwargs:{forward_email:i,extraction_type:a,prompt:n,filter_from_email:s,filter_to_email:c,filter_subject:l,filter_body_contains:f,timeout:m}},feedback:b.message}}}}})}var ft=null;async function V(){if(ft)return ft;let e=(await import("./handler-BAP4TGW6.js")).default;return ft=new e,ft}async function ht(e){let t=await V(),u=t.getAction("click"),r=t.getAction("hover"),i=t.getAction("right_click"),a=t.getAction("double_click");return Sr(e,u),yr(e,r),mr(e,i),Ar(e,a),"Click, hover, double-click, right-click, or drag elements"}async function pt(e){let t=await V(),u=t.getAction("go_to_url"),r=t.getAction("go_back"),i=t.getAction("reload_page");return wr(e,u),xr(e,r),pr(e,i),"Navigate to URLs, go back, or reload the page"}async function mt(e){let t=await V(),u=t.getAction("clear_input"),r=t.getAction("input_text"),i=t.getAction("press");return kr(e,u),fr(e,r),hr(e,i),"Type text into inputs, clear input values, or press keyboard keys"}async function gt(e){let t=await V(),u=t.getAction("scroll_on_element"),r=t.getAction("scroll_to_text"),i=t.getAction("scroll");return sr(e,u),or(e,r),nr(e,i),"Scroll the page or scroll to specific text/elements"}async function bt(e){let t=await V(),u=t.getAction("close_tab"),r=t.getAction("switch_tab");return Tr(e,u),dr(e,r),"Switch between browser tabs or close tabs"}async function xt(e){let t=await V(),u=t.getAction("upload_file"),r=t.getAction("wait_for_download_complete");return tr(e,u),rr(e,r),"Upload files or wait for downloads to complete"}async function wt(e){let t=await V(),u=t.getAction("get_dropdown_options"),r=t.getAction("select_dropdown_option"),i=t.getAction("set_date_for_native_date_picker");return br(e,u),cr(e,r),lr(e,i),"Get dropdown options, select dropdown values, or set date for native date picker input"}async function yt(e){let t=await V(),u=t.getAction("wait"),r=t.getAction("save_variable"),i=t.getAction("done");return ur(e,u),ar(e,r),Er(e,i),Fr(e),"Wait for conditions, save variables, or complete tasks"}async function vt(e){let t=(await V()).getAction("generate_2fa_code");gr(e,t);let u=new la;return(await import("./handler-BAP4TGW6.js")).default.registerAction("extract_email_content",u),da(e,u),"Generate 2FA codes or extract email/activation codes"}async function kt(e){let t=await V(),u=t.getAction("verify"),r=t.getAction("ai_extract"),i=t.getAction("ai_wait_until");return Lr(e,u),vr(e,r),ir(e,i),"Perform AI-powered assertions, extractions, or wait conditions"}async function fa(e){let[t,u,r,i,a,n,s,c,l,f]=await Promise.all([ht(e),pt(e),mt(e),gt(e),bt(e),xt(e),wt(e),yt(e),vt(e),kt(e)]);return{mouse:t,navigation:u,input:r,scroll:i,tabs:a,files:n,forms:s,utility:c,auth:l,ai:f}}function ha(e){return[`- Mouse: ${e.mouse}`,`- Navigation: ${e.navigation}`,`- Input: ${e.input}`,`- Scroll: ${e.scroll}`,`- Tabs: ${e.tabs}`,`- Files: ${e.files}`,`- Forms: ${e.forms}`,`- Utility: ${e.utility}`,`- Auth: ${e.auth}`,`- AI: ${e.ai}`].join(`
100
- `)}var t0=[ht(P),pt(P),mt(P),gt(P),bt(P),xt(P),wt(P),yt(P),kt(P),vt(P)],u0=Promise.all(t0);async function r0(){await u0}function i0(){return P}function a0(e=!0){let t=new Oe;return e&&(ht(t),pt(t),mt(t),gt(t),bt(t),xt(t),wt(t),vt(t),yt(t),kt(t)),t}async function n0(){let e=new Oe,t=await fa(e),u=ha(t);return{registry:e,capabilities:t,summary:u}}function s0(){return["- Mouse: Click, hover, double-click, right-click or drag on elements","- Navigation: Navigate to URLs, go back, or reload the page","- Input: Type text into inputs, clear input fields, or press keyboard keys","- Scroll: Scroll the page or scroll to specific text/elements","- Tabs: Switch between browser tabs or close tabs","- Files: Upload files or wait for downloads to complete","- Forms: Get dropdown options or select dropdown values","- Utility: Wait for conditions, save variables, or complete tasks","- Auth: Generate 2FA codes or extract email/activation codes","- AI: Perform AI-powered verifications, extractions, or wait conditions"].join(`
101
- `)}var o0=class{constructor(e,t){this.registry=e,this.getContext=t}getToolDefinitions(){return this.registry.getTools().filter(e=>e.availability.mcp).map(e=>({name:e.name,description:e.description,inputSchema:Pe(e.schema)}))}getToolDefinitionsFiltered(e){let t=new Set(e);return this.registry.getTools().filter(u=>t.has(u.name)&&u.availability.mcp).map(u=>({name:u.name,description:u.description,inputSchema:Pe(u.schema)}))}async createServer(e="web-sdk-tools"){throw new Error("MCP server creation not yet implemented. Install and configure an MCP SDK like @modelcontextprotocol/sdk")}async executeTool(e,t){let u=await this.getContext(),r=await this.registry.execute(e,t,u);return{content:[{type:"text",text:r.success?r.message||"Tool executed successfully":r.error||"Tool execution failed"}]}}getToolCount(){return this.registry.size()}getToolNames(){return this.registry.getToolNames()}};function c0(e){return e.getTools().map(t=>({name:t.name,description:t.description,inputSchema:Pe(t.schema)}))}import Nu from"fs";import St from"path";import{chromium as pa,firefox as l0,webkit as d0}from"playwright";var f0=class{constructor(e={}){e.testDir&&(this.testDir=e.testDir,this.videoBasePath=St.join(e.testDir,"videos"),this.statesBasePath=St.join(e.testDir,"states"),this.downloadsBasePath=St.join(e.testDir,"downloads"),Nu.mkdirSync(this.videoBasePath,{recursive:!0}),Nu.mkdirSync(this.statesBasePath,{recursive:!0}),Nu.mkdirSync(this.downloadsBasePath,{recursive:!0})),this.terminationTimeout=e.terminationTimeout??null,this.defaultHeadless=e.headless??!1,this.additionalArgs=e.additionalArgs??[]}async launchBrowser(e={}){let t=e.debugPort,u=e.headless??this.defaultHeadless,r=Or(e.deviceName),i=Pr(e.deviceName),a=r===pe.Chromium,n=!!e.extensionPath;o.info(`[BrowserManager] Launching ${r} browser for device: ${e.deviceName||"default"}${t?` on port ${t}`:""}`);let s={headless:u};if(a){n&&u&&(o.warn("[BrowserManager] Extension requested in headless mode; forcing headed mode to load extension."),u=!1,s.headless=!1);let w=[];(e.enableCamera||e.enableMicrophone)&&(w.push("--use-fake-device-for-media-stream","--use-fake-ui-for-media-stream"),e.enableMicrophone&&e.fakeAudioCapturePath&&(w.push(`--use-file-for-fake-audio-capture=${e.fakeAudioCapturePath}`),o.info(`[BrowserManager] Using fake audio capture file: ${e.fakeAudioCapturePath}`)));let E=n&&e.extensionPath?[`--disable-extensions-except=${e.extensionPath}`,`--load-extension=${e.extensionPath}`]:[];s.args=[..._r(t,e.disableSecurity??!0,u),...w,...E,...this.additionalArgs],i&&(s.channel=i,o.debug(`[BrowserManager] Launching browser with channel: ${i}`))}let c=$r(e.deviceName),l=Br(e.deviceName),f={acceptDownloads:!0,...c,timezoneId:"America/Los_Angeles",locale:e.locale||"en-US"};e.localStorageStatePath&&(f.storageState=e.localStorageStatePath),e.recordVideo&&this.videoBasePath&&(f.recordVideo={dir:this.videoBasePath,size:{width:l.width,height:l.height}}),e.proxy&&(f.proxy=e.proxy);let m,x,g;if(n&&a){if(e.userDataDir)g=e.userDataDir;else if(this.testDir)g=St.join(this.testDir,"user-data");else throw new Error("[BrowserManager] testDir is required to launch a persistent context with an extension");let w={...s,...f};x=await pa.launchPersistentContext(g,w),m=x.browser(),o.info(`[BrowserManager] Launched persistent context for extension at ${e.extensionPath}`)}else{switch(r){case pe.Firefox:m=await l0.launch(s);break;case pe.Webkit:m=await d0.launch(s);break;case pe.Chromium:default:m=await pa.launch(s);break}x=await m.newContext(f)}if(x.addInitScript(Wt),e.enableCamera||e.enableMicrophone)if(!a)o.warn("[BrowserManager] Camera/microphone enabled but browser is not Chromium; ignoring.");else{let w=[];e.enableCamera&&w.push("camera"),e.enableMicrophone&&w.push("microphone");try{await x.grantPermissions(w),o.info(`[BrowserManager] Granted permissions: ${w.join(", ")}`)}catch(E){o.warn("[BrowserManager] Failed to grant camera/microphone permissions:",E)}}if(e.cookies&&e.cookies.length>0){let w=(Date.now()+31536e6)/1e3,E=e.cookies.map(D=>({...D,expires:w}));await x.addCookies(E),o.info(`[BrowserManager] Added ${e.cookies.length} cookies to browser context with expires=${w}`)}let b=Cr(e.deviceName);o.info(`[BrowserManager] windowSize=${JSON.stringify(b)}`),a&&x.on("page",async w=>{try{await zt(w,b.width,b.height)}catch(E){o.warn("[BrowserManager] Failed to set window bounds via CDP:",E)}});let v="";if(a&&t!==void 0)try{v=await Gt(t)}catch(w){o.warn("[BrowserManager] Failed to get CDP WebSocket URL:",w)}let y={debugPort:t,browser:m,context:x,startTime:new Date,timeout:null,browserWsUrl:v,downloadsBasePath:this.downloadsBasePath,browserType:r,userDataDir:g};if(this.terminationTimeout!==null){let w=setTimeout(()=>{o.info(`[BrowserManager] Browser auto-terminated after ${this.terminationTimeout}ms`),this.terminateBrowser(y).catch(E=>o.error("[BrowserManager] Error terminating browser:",E))},this.terminationTimeout);y.timeout=w}return y}async terminateBrowser(e){e.timeout&&clearTimeout(e.timeout),await e.context.close(),await e.browser.close()}getVideoBasePath(){return this.videoBasePath}getStatesBasePath(){return this.statesBasePath}getDownloadsBasePath(){return this.downloadsBasePath}};var h0=e=>{if(!e||e===Nr)return"desktop";let t=Dr(e);return t&&t.isMobile?"mobile":"desktop"};var p0=(e=>(e.Desktop="desktop",e.Mobile="mobile",e))(p0||{});var ma=class{constructor(e){this.currentPage=null,this.currentIndex=-1,this.context=e,this.initialize()}initialize(){this.context.on("page",async t=>{await this.handleNewPage(t)});let e=this.context.pages();e.length>0&&(this.currentPage=e[0],this.currentIndex=0);for(let t of e)this.setupPageListeners(t)}async handleNewPage(e){try{this.setupPageListeners(e);let t=this.context.pages().indexOf(e);await this.setCurrentPage(e,t)}catch{}}setupPageListeners(e){e.on("close",async()=>{await this.handlePageClose(e)})}async handlePageClose(e){try{if(this.currentPage===e){let t=this.context.pages(),u=t.slice().reverse().find(r=>!r.isClosed());u&&await this.setCurrentPage(u,t.indexOf(u))}}catch{}}async setCurrentPage(e,t){let u=this.currentPage!==e;this.currentPage=e,this.currentIndex=t,u&&await e.bringToFront()}async switchToPage(e){let t=this.context.pages();if(e<0||e>=t.length)throw new Error(`Invalid page index: ${e}. Available pages: 0-${t.length-1}`);let u=t[e];if(u.isClosed())throw new Error(`Page at index ${e} is closed`);return await this.setCurrentPage(u,e),u}async closePage(e){let t=this.context.pages();if(e<0||e>=t.length)throw new Error(`Invalid page index: ${e}. Available pages: 0-${t.length-1}`);let u=t[e];if(u.isClosed())throw new Error(`Page at index ${e} is already closed`);await u.close()}getCurrentPage(){return this.currentPage}getCurrentIndex(){return this.currentIndex}getAllPages(){return this.context.pages()}getPageCount(){return this.context.pages().length}};async function ga(e,t=3e3,u=1e3){try{await qe(e,t,u)}catch{}}async function ba(e,t,u){let r=u*1e3,i=100,a=Date.now();for(;!t.downloadStatus||t.downloadStatus.status==="inProgress";){if(Date.now()-a>r){let n;throw t.downloadStatus?n=`Timed out after ${r}ms waiting for download to complete`:n="No download in progress or completed",o.error(n),new Error(n)}await e.waitForTimeout(i)}if(t.downloadStatus.status==="failed"){let n=`Download failed: ${t.downloadStatus.error||"Unknown error"}`;throw o.error(n),new Error(n)}t.agentNote=`Download completed: ${t.downloadStatus.filename}`}async function xa(e,t,u,r=60,i){let a=Math.min(r,280),n=Math.max(10,a/10)*1e3,s=Date.now()+a*1e3;for(o.info(`Waiting for condition: "${t}" (timeout: ${a}s)`);;){let c=Date.now();try{if(await u(e,t,i))return o.info(`Condition met: "${t}"`),!0}catch(f){o.warn(`Error evaluating condition: ${f.message}`)}if(Date.now()>s)return o.warn(`Timeout waiting for condition: "${t}"`),!1;let l=n-(Date.now()-c);l>0&&await e.waitForTimeout(l)}}var en=Xu(Za(),1);import*as Qa from"fs";import*as Ce from"path";function tn(e){return e.url()===":"}var Ju=class{constructor(e){this.context=e,this.testDataFileNames=[],this.extensionEnabled=!1}setTestDataDownloader(e,t){this.testDataDownloader=e,this.testDataFileNames=t??[]}setupPageTracking(e){this.tabManager=new ma(e)}async switchTab(e){if(!this.tabManager)throw new Error("Tab manager not initialized");return await this.tabManager.switchToPage(e)}async closeTab(e){if(!this.tabManager)throw new Error("Tab manager not initialized");await this.tabManager.closePage(e)}getCurrentPage(){return this.tabManager?this.tabManager.getCurrentPage():null}validatePage(e){let t=this.getCurrentPage();if(t&&t!==e&&!t.isClosed())return o.info(`[validatePage] Page changed, switching to ${t.url()}`),t;if(e.isClosed()){let u=e.context().pages().filter(r=>!r.isClosed());if(u.length>0){let r=u[u.length-1];return o.info(`[validatePage] Page closed, switching to ${r.url()}`),r}o.error("[validatePage] No valid pages found")}return e}replaceVariables(e){return Jt(e,this.context.variableStore.getAll())}getTestDataFileNames(){return this.testDataFileNames}getTestDataFilePath(e){let t=this.context.testDataDir||process.cwd();return Ce.join(t,e)}async downloadTestDataFiles(e){if(e.length===0){o.debug("[AgentServices] No file paths provided for download");return}let t=this.context.testDataDir||process.cwd(),u=e.filter(r=>{let i=Ce.basename(r),a=Ce.join(t,i),n=Qa.existsSync(a);return n&&o.debug(`[AgentServices] File already exists locally: ${i}`),!n});if(u.length===0){o.debug("[AgentServices] All files exist locally, no download needed");return}if(!this.testDataDownloader){o.debug("[AgentServices] No test data downloader configured, assuming files are pre-populated");return}o.info(`[AgentServices] Downloading ${u.length} test data files: ${u.join(", ")}`),await this.testDataDownloader(u,t)}async waitForDownloadComplete(e,t){return ba(e,this.context,t)}getRecentDownloadedFilePath(){return this.context.downloadStatus?this.context.downloadStatus.status!=="completed"?(o.debug(`Download is ${this.context.downloadStatus.status}, not completed`),null):this.context.downloadStatus.filePath?(o.info(`Retrieved recent download path: ${this.context.downloadStatus.filePath}`),this.context.downloadStatus.filePath):(o.warn("Download completed but file path is missing"),null):(o.debug("No download found"),null)}addSensitive(e,t){this.context.variableStore.set(e,t,!0)}saveVariable(e,t){let u=e.startsWith("$")?e.slice(1):e;this.context.variableStore.set(u,t),o.debug(`Saved variable: ${u} = ${JSON.stringify(t)}`),this.context.agentNote=`A new value is saved to the variable "${u}".`}addNote(e){!e||e.trim()===""||(this.context.agentNote?this.context.agentNote+=`
102
- ${e.trim()}`:this.context.agentNote=e.trim())}readVariable(e){let t=e.startsWith("$")?e.slice(1):e,u=this.context.variableStore.get(t);return o.debug(`Read variable: ${t} = ${JSON.stringify(u)}`),u}async generate2faCode(e){try{let t=en.authenticator.generate(e);return o.info(`Generated 2FA code: ${t}`),t}catch(t){throw o.error(`Failed to generate 2FA code: ${t.message}`),new Error(`Failed to generate 2FA code: ${t.message}`)}}async getDOMText(e){return await e.evaluate(()=>document.body.innerText)}async waitUntilStable(e,t){return qe(e,t)}setPage(e){this.context.setPage?(o.info("[AgentServices] Calling setPage callback"),this.context.setPage(e)):o.debug("[AgentServices] setPage callback not configured")}getModel(){if(!this.context.model)throw new Error("No LLM model configured. An LLM model is required for AI-powered actions (login, verify, ai_extract, ai_wait_until, etc.). Set GOOGLE_API_KEY or ANTHROPIC_API_KEY in your MCP server configuration.");return this.context.model}get variableStore(){return this.context.variableStore}getDownloadDir(){return this.context.downloadDir}getActionSettings(){return this.context.organizationSettings?.action_code_conversion_settings||{}}getInteractiveClassNames(){return this.context.organizationSettings?.agent_settings?.interactive_class_names||[]}isUseCleanScreenshotForAssertion(){return this.context.organizationSettings?.use_clean_screenshot_for_assertion||!1}isKnowledgeImagesEnabled(){return this.context.organizationSettings?.agent_settings?.enable_knowledge_images||!1}isSlicedScreenshotsEnabled(){return this.context.organizationSettings?.agent_settings?.use_sliced_screenshots||!1}isResizeSlicedScreenshotsEnabled(){return this.context.organizationSettings?.agent_settings?.resize_sliced_screenshots||!1}isAccessibilityTreeEnabled(){return this.context.organizationSettings?.agent_settings?.use_accessibility_tree||!1}isActionIntentFilteringEnabled(){return this.context.organizationSettings?.agent_settings?.use_action_intent_filtering||!1}isDomTreeTsEnabled(){let e=process.env.USE_DOM_TREE_TS;return e!==void 0?e==="true"||e==="1":this.context.organizationSettings?.agent_settings?.use_dom_tree_ts||!1}setExtensionEnabled(e){this.extensionEnabled=e}getDomServiceOptions(){return{useDomTreeTs:this.isDomTreeTsEnabled(),domTreeRoot:this.extensionEnabled?"document":"body"}}setKnowledgeRetriever(e){this.knowledgeRetriever=e}hasKnowledgeRetriever(){return this.knowledgeRetriever!==void 0}async retrieveKnowledges(e,t,u,r){if(!this.knowledgeRetriever)return o.debug("[AgentServices] No knowledge retriever configured"),[];try{let i=await this.knowledgeRetriever(e,t,u,r);return o.debug(`[AgentServices] Retrieved ${i.length} knowledges for statement`),i}catch(i){return o.warn(`[AgentServices] Failed to retrieve knowledges: ${i.message}`),[]}}};var un=(e=>(e.Started="started",e.Action="action",e.Completion="completion",e.Error="error",e.Aborted="aborted",e.Keepalive="keepalive",e))(un||{}),Yu=class extends Error{constructor(e){super(e),this.name="AgentTaskFailedError",this.details=e}};import*as I from"fs";import*as C from"path";var L0=1,_0=3,I0=40;function Be(e,t){let u={};for(let[r,i]of Object.entries(e))u[r]=t.has(r)?"*****":i;return u}var rn=class{constructor(e){this.context=e,this._newActionEntities=new Map,this.agentServices=new Ju(e),this.context.tokenUsages||(this.context.tokenUsages=[])}getNewActionEntities(){return this._newActionEntities}async getActionHandler(){if(!this._actionHandler){let{default:e}=await import("./handler-BAP4TGW6.js");this._actionHandler=new e}return this._actionHandler}async execAction(e,t,u){let r=(await this.getActionHandler()).getAction(e);if(!r)throw new Error(`Unknown action: ${e}`);await r.execute(t,u,this.agentServices)}async dismissModalIfPresent(e,t){try{let u=await this.execute(e,`TASK: Check if there is an INTRUSIVE POPUP blocking the page, and dismiss it if present.
99
+ ${x.body}`,g=await e0(h,i,t.model);o.info(`Extracted content: ${g}`),g&&g!=="NOT_FOUND"&&b.push({content:g,email_subject:x.subject,email_from:x.from,email_date:x.date})}if(b.length>0){let x=b[0],h=`$email_${t.extraction_type}`;t.extraction_type==="custom"?h="$email_extracted_content":t.extraction_type==="activation_link"?h="$email_magic_link":t.extraction_type==="verification_code"&&(h="$email_otp_code");let g=(new Date().getTime()-a.getTime())/1e3;return o.info(`Successfully extracted content after ${s} attempts in ${g.toFixed(1)} seconds`),{data:x.content,result_variable:h,status:"success",message:`Successfully extracted content from email: ${x.email_subject.substring(0,50)}... (attempts: ${s})`}}else o.info(`Found emails but no extractable content in attempt ${s}`)}else o.info(`No emails found in attempt ${s}`)}catch(l){o.warn(`Error in polling attempt ${s}: ${l.message}`)}if(new Date(Date.now()+r*1e3)>=n){o.info("Not enough time for another polling attempt");break}o.info(`Waiting ${r} seconds before next attempt...`),await new Promise(l=>setTimeout(l,r*1e3))}let c=(new Date().getTime()-a.getTime())/1e3;return{data:void 0,status:"error",message:`No emails with extractable content found after ${s} attempts over ${c.toFixed(1)} seconds`}}catch(i){return o.error(`Error extracting email content: ${i.message}`),{data:void 0,status:"error",message:`Error extracting email content: ${i.message}`}}}import{z as Y}from"zod";function la(e){switch(e){case"verification_code":return"email_otp_code";case"activation_link":return"email_magic_link";case"custom":return"email_extracted_content";default:return"email_content"}}var da=class{getMailgunConfig(){let e=jt().env||{};if(e.MAILGUN_API_KEY)return{apiKey:e.MAILGUN_API_KEY,domain:e.MAILGUN_DOMAIN||""}}async execute(e,t,u){let r=t.action_data;if(!r)throw new Error("Action data not found");let i=this.getMailgunConfig();if(!i)throw new Error("Mailgun configuration not provided. Please configure MAILGUN_API_KEY and MAILGUN_DOMAIN in SDK config.");let a=r.kwargs,n=u.getModel?.()||"gemini-2.5-pro",s=await ca(i,{model:n,forward_email:a.forward_email,extraction_type:a.extraction_type,prompt:a.prompt,filters:{from_email:a.filter_from_email,to_email:a.filter_to_email,subject:a.filter_subject,body_contains:a.filter_body_contains},timeout:a.timeout});if(s.status==="success"&&s.data){let c=s.result_variable?.replace(/^\$/,"")||la(a.extraction_type);u.variableStore.set(c,s.data),o.info(`[extract_email_content] Extracted and saved to ${c}`)}else throw new Error(s.message||"Failed to extract email content")}transpile(e){let t=e.action_data?.kwargs||{};return['await agent.execAction("extract_email_content", page, {',` action_data: { kwargs: ${JSON.stringify(t)} },`,"});"]}},t0=Y.object({forward_email:Y.string().describe("Email address where emails are forwarded to (Mailgun inbox)"),extraction_type:Y.enum(["verification_code","activation_link","custom"]).describe("Type of content to extract: verification_code for OTP codes, activation_link for magic links, custom for custom prompts"),prompt:Y.string().optional().describe("Custom extraction prompt (required when extraction_type is custom)"),filter_from_email:Y.string().optional().describe("Filter emails by sender address"),filter_to_email:Y.string().optional().describe("Filter emails by recipient address"),filter_subject:Y.string().optional().describe("Filter emails by subject (partial match)"),filter_body_contains:Y.string().optional().describe("Filter emails by body content (partial match)"),timeout:Y.number().optional().describe("Timeout in seconds for polling (default: 60)")});function fa(e,t){e.register({name:"extract_email_content",description:"Extract verification codes, magic links, or custom content from emails received via Mailgun. Polls the Mailgun inbox for matching emails and uses AI to extract the requested content.",schema:t0,async execute(u,r){let{forward_email:i,extraction_type:a,prompt:n,filter_from_email:s,filter_to_email:c,filter_subject:l,filter_body_contains:f,timeout:b}=u,{page:x,agentServices:h}=r;o.info(`[extract_email_content] Extracting ${a} from ${i}`);try{let g={action_description:`Extract ${a} from email`,action_data:{action_name:"extract_email_content",kwargs:{forward_email:i,extraction_type:a,prompt:n,filter_from_email:s,filter_to_email:c,filter_subject:l,filter_body_contains:f,timeout:b}}};await t.execute(x,g,h);let v=la(a);return{success:!0,actionEntity:g,message:`Extracted ${a} and saved to $${v}`}}catch(g){return{success:!1,error:g.message,actionEntity:{action_description:`Extract ${a} from email (failed)`,action_data:{action_name:"extract_email_content",kwargs:{forward_email:i,extraction_type:a,prompt:n,filter_from_email:s,filter_to_email:c,filter_subject:l,filter_body_contains:f,timeout:b}},feedback:g.message}}}}})}var ft=null;async function V(){if(ft)return ft;let e=(await import("./handler-J6CCKSPE.js")).default;return ft=new e,ft}async function ht(e){let t=await V(),u=t.getAction("click"),r=t.getAction("hover"),i=t.getAction("right_click"),a=t.getAction("double_click");return kr(e,u),yr(e,r),fr(e,i),Er(e,a),"Click, hover, double-click, right-click, or drag elements"}async function pt(e){let t=await V(),u=t.getAction("go_to_url"),r=t.getAction("go_back"),i=t.getAction("reload_page");return wr(e,u),xr(e,r),dr(e,i),"Navigate to URLs, go back, or reload the page"}async function mt(e){let t=await V(),u=t.getAction("clear_input"),r=t.getAction("input_text"),i=t.getAction("press");return Lr(e,u),vr(e,r),lr(e,i),"Type text into inputs, clear input values, or press keyboard keys"}async function gt(e){let t=await V(),u=t.getAction("scroll_on_element"),r=t.getAction("scroll_to_text"),i=t.getAction("scroll");return mr(e,u),ur(e,r),pr(e,i),"Scroll the page or scroll to specific text/elements"}async function bt(e){let t=await V(),u=t.getAction("close_tab"),r=t.getAction("switch_tab");return Sr(e,u),ar(e,r),"Switch between browser tabs or close tabs"}async function xt(e){let t=await V(),u=t.getAction("upload_file"),r=t.getAction("wait_for_download_complete");return sr(e,u),cr(e,r),"Upload files or wait for downloads to complete"}async function wt(e){let t=await V(),u=t.getAction("get_dropdown_options"),r=t.getAction("select_dropdown_option"),i=t.getAction("set_date_for_native_date_picker");return br(e,u),rr(e,r),ir(e,i),"Get dropdown options, select dropdown values, or set date for native date picker input"}async function yt(e){let t=await V(),u=t.getAction("wait"),r=t.getAction("save_variable"),i=t.getAction("done");return or(e,u),hr(e,r),Tr(e,i),jr(e),"Wait for conditions, save variables, or complete tasks"}async function vt(e){let t=(await V()).getAction("generate_2fa_code");gr(e,t);let u=new da;return(await import("./handler-J6CCKSPE.js")).default.registerAction("extract_email_content",u),fa(e,u),"Generate 2FA codes or extract email/activation codes"}async function kt(e){let t=await V(),u=t.getAction("verify"),r=t.getAction("ai_extract"),i=t.getAction("ai_wait_until");return Ar(e,u),_r(e,r),tr(e,i),"Perform AI-powered assertions, extractions, or wait conditions"}async function ha(e){let[t,u,r,i,a,n,s,c,l,f]=await Promise.all([ht(e),pt(e),mt(e),gt(e),bt(e),xt(e),wt(e),yt(e),vt(e),kt(e)]);return{mouse:t,navigation:u,input:r,scroll:i,tabs:a,files:n,forms:s,utility:c,auth:l,ai:f}}function pa(e){return[`- Mouse: ${e.mouse}`,`- Navigation: ${e.navigation}`,`- Input: ${e.input}`,`- Scroll: ${e.scroll}`,`- Tabs: ${e.tabs}`,`- Files: ${e.files}`,`- Forms: ${e.forms}`,`- Utility: ${e.utility}`,`- Auth: ${e.auth}`,`- AI: ${e.ai}`].join(`
100
+ `)}var u0=[ht(O),pt(O),mt(O),gt(O),bt(O),xt(O),wt(O),yt(O),kt(O),vt(O)],r0=Promise.all(u0);async function i0(){await r0}function a0(){return O}function n0(e=!0){let t=new Oe;return e&&(ht(t),pt(t),mt(t),gt(t),bt(t),xt(t),wt(t),vt(t),yt(t),kt(t)),t}async function s0(){let e=new Oe,t=await ha(e),u=pa(t);return{registry:e,capabilities:t,summary:u}}function o0(){return["- Mouse: Click, hover, double-click, right-click or drag on elements","- Navigation: Navigate to URLs, go back, or reload the page","- Input: Type text into inputs, clear input fields, or press keyboard keys","- Scroll: Scroll the page or scroll to specific text/elements","- Tabs: Switch between browser tabs or close tabs","- Files: Upload files or wait for downloads to complete","- Forms: Get dropdown options or select dropdown values","- Utility: Wait for conditions, save variables, or complete tasks","- Auth: Generate 2FA codes or extract email/activation codes","- AI: Perform AI-powered verifications, extractions, or wait conditions"].join(`
101
+ `)}var c0=class{constructor(e,t){this.registry=e,this.getContext=t}getToolDefinitions(){return this.registry.getTools().filter(e=>e.availability.mcp).map(e=>({name:e.name,description:e.description,inputSchema:Pe(e.schema)}))}getToolDefinitionsFiltered(e){let t=new Set(e);return this.registry.getTools().filter(u=>t.has(u.name)&&u.availability.mcp).map(u=>({name:u.name,description:u.description,inputSchema:Pe(u.schema)}))}async createServer(e="web-sdk-tools"){throw new Error("MCP server creation not yet implemented. Install and configure an MCP SDK like @modelcontextprotocol/sdk")}async executeTool(e,t){let u=await this.getContext(),r=await this.registry.execute(e,t,u);return{content:[{type:"text",text:r.success?r.message||"Tool executed successfully":r.error||"Tool execution failed"}]}}getToolCount(){return this.registry.size()}getToolNames(){return this.registry.getToolNames()}};function l0(e){return e.getTools().map(t=>({name:t.name,description:t.description,inputSchema:Pe(t.schema)}))}import Tt from"fs";import St from"path";import{chromium as ma,firefox as d0,webkit as f0}from"playwright";async function h0(e,t){let u=JSON.parse(Tt.readFileSync(t,"utf-8"));u.cookies?.length&&await e.addCookies(u.cookies)}var p0=class{constructor(e={}){e.testDir&&(this.testDir=e.testDir,this.videoBasePath=St.join(e.testDir,"videos"),this.statesBasePath=St.join(e.testDir,"states"),this.downloadsBasePath=St.join(e.testDir,"downloads"),Tt.mkdirSync(this.videoBasePath,{recursive:!0}),Tt.mkdirSync(this.statesBasePath,{recursive:!0}),Tt.mkdirSync(this.downloadsBasePath,{recursive:!0})),this.terminationTimeout=e.terminationTimeout??null,this.defaultHeadless=e.headless??!1,this.additionalArgs=e.additionalArgs??[]}async launchBrowser(e={}){let t=e.debugPort,u=e.headless??this.defaultHeadless,r=Rr(e.deviceName),i=Or(e.deviceName),a=r===pe.Chromium,n=!!e.extensionPath;o.info(`[BrowserManager] Launching ${r} browser for device: ${e.deviceName||"default"}${t?` on port ${t}`:""}`);let s={headless:u};if(a){n&&u&&(o.warn("[BrowserManager] Extension requested in headless mode; forcing headed mode to load extension."),u=!1,s.headless=!1);let k=[];(e.enableCamera||e.enableMicrophone)&&(k.push("--use-fake-device-for-media-stream","--use-fake-ui-for-media-stream"),e.enableMicrophone&&e.fakeAudioCapturePath&&(k.push(`--use-file-for-fake-audio-capture=${e.fakeAudioCapturePath}`),o.info(`[BrowserManager] Using fake audio capture file: ${e.fakeAudioCapturePath}`)));let _=n&&e.extensionPath?[`--disable-extensions-except=${e.extensionPath}`,`--load-extension=${e.extensionPath}`]:[];s.args=[...Ir(t,e.disableSecurity??!0,u),...k,..._,...this.additionalArgs],i&&(s.channel=i,o.debug(`[BrowserManager] Launching browser with channel: ${i}`))}let c=Cr(e.deviceName),l=Pr(e.deviceName),f={acceptDownloads:!0,...c,timezoneId:"America/Los_Angeles",locale:e.locale||"en-US"},b=n&&a?e.localStorageStatePath:void 0;e.localStorageStatePath&&!b&&(f.storageState=e.localStorageStatePath),e.recordVideo&&this.videoBasePath&&(f.recordVideo={dir:this.videoBasePath,size:{width:l.width,height:l.height}}),e.proxy&&(f.proxy=e.proxy);let x,h,g;if(n&&a){if(e.userDataDir)g=e.userDataDir;else if(this.testDir)g=St.join(this.testDir,"user-data");else throw new Error("[BrowserManager] testDir is required to launch a persistent context with an extension");let k={...s,...f};h=await ma.launchPersistentContext(g,k),b&&(await h0(h,b),o.info(`[BrowserManager] Loaded storage state into persistent context from ${b}`)),x=h.browser(),o.info(`[BrowserManager] Launched persistent context for extension at ${e.extensionPath}`)}else{switch(r){case pe.Firefox:x=await d0.launch(s);break;case pe.Webkit:x=await f0.launch(s);break;case pe.Chromium:default:x=await ma.launch(s);break}h=await x.newContext(f)}if(h.addInitScript(Gt),e.enableCamera||e.enableMicrophone)if(!a)o.warn("[BrowserManager] Camera/microphone enabled but browser is not Chromium; ignoring.");else{let k=[];e.enableCamera&&k.push("camera"),e.enableMicrophone&&k.push("microphone");try{await h.grantPermissions(k),o.info(`[BrowserManager] Granted permissions: ${k.join(", ")}`)}catch(_){o.warn("[BrowserManager] Failed to grant camera/microphone permissions:",_)}}if(e.cookies&&e.cookies.length>0){let k=(Date.now()+31536e6)/1e3,_=e.cookies.map(P=>({...P,expires:k}));await h.addCookies(_),o.info(`[BrowserManager] Added ${e.cookies.length} cookies to browser context with expires=${k}`)}let v=Br(e.deviceName);o.info(`[BrowserManager] windowSize=${JSON.stringify(v)}`),a&&h.on("page",async k=>{try{await Kt(k,v.width,v.height)}catch(_){o.warn("[BrowserManager] Failed to set window bounds via CDP:",_)}});let w="";if(a&&t!==void 0)try{w=await zt(t)}catch(k){o.warn("[BrowserManager] Failed to get CDP WebSocket URL:",k)}let y={debugPort:t,browser:x,context:h,startTime:new Date,timeout:null,browserWsUrl:w,downloadsBasePath:this.downloadsBasePath,browserType:r,userDataDir:g};if(this.terminationTimeout!==null){let k=setTimeout(()=>{o.info(`[BrowserManager] Browser auto-terminated after ${this.terminationTimeout}ms`),this.terminateBrowser(y).catch(_=>o.error("[BrowserManager] Error terminating browser:",_))},this.terminationTimeout);y.timeout=k}return y}async terminateBrowser(e){e.timeout&&clearTimeout(e.timeout),await e.context.close(),await e.browser.close()}getVideoBasePath(){return this.videoBasePath}getStatesBasePath(){return this.statesBasePath}getDownloadsBasePath(){return this.downloadsBasePath}};var m0=e=>{if(!e||e===Dr)return"desktop";let t=$r(e);return t&&t.isMobile?"mobile":"desktop"};var g0=(e=>(e.Desktop="desktop",e.Mobile="mobile",e))(g0||{});function b0(){let e=new Date,t=new Intl.DateTimeFormat("en-US",{timeZone:"America/Los_Angeles",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1}).formatToParts(e),u=t.find(y=>y.type==="year").value,r=t.find(y=>y.type==="month").value,i=t.find(y=>y.type==="day").value,a=t.find(y=>y.type==="hour").value,n=t.find(y=>y.type==="minute").value,s=t.find(y=>y.type==="second").value,c=String(e.getMilliseconds()).padStart(3,"0"),l=`${u}-${r}-${i}T${a}:${n}:${s}.${c}`,f=e.toISOString().slice(0,-1),b=Date.parse(l+"Z"),x=Date.parse(f+"Z"),h=Math.round((x-b)/(1e3*60)),g=String(Math.floor(Math.abs(h)/60)).padStart(2,"0"),v=String(Math.abs(h)%60).padStart(2,"0"),w=h<=0?"+":"-";return`${u}-${r}-${i}T${a}:${n}:${s}.${c}${w}${g}:${v}`}function ga(e){let t=e.variableStore;return t.has("currentTime")||t.set("currentTime",b0()),{model:e.model,variableStore:t,organizationId:e.organizationId,organizationSettings:e.organizationSettings,executionHistory:e.executionHistory||[],testDataDir:e.testDataDir,downloadDir:e.downloadDir,useNativeGenerator:e.useNativeGenerator,autoDisableModal:e.autoDisableModal,tokenUsages:[],aiActionDetails:[]}}var ba=(e=>(e.Started="started",e.Action="action",e.Completion="completion",e.Error="error",e.Aborted="aborted",e.Keepalive="keepalive",e))(ba||{}),Du=class extends Error{constructor(e){super(e),this.name="AgentTaskFailedError",this.details=e}};var xa=class{constructor(e){this.currentPage=null,this.currentIndex=-1,this.context=e,this.initialize()}initialize(){this.context.on("page",async t=>{await this.handleNewPage(t)});let e=this.context.pages();e.length>0&&(this.currentPage=e[0],this.currentIndex=0);for(let t of e)this.setupPageListeners(t)}async handleNewPage(e){try{this.setupPageListeners(e);let t=this.context.pages().indexOf(e);await this.setCurrentPage(e,t)}catch{}}setupPageListeners(e){e.on("close",async()=>{await this.handlePageClose(e)})}async handlePageClose(e){try{if(this.currentPage===e){let t=this.context.pages(),u=t.slice().reverse().find(r=>!r.isClosed());u&&await this.setCurrentPage(u,t.indexOf(u))}}catch{}}async setCurrentPage(e,t){let u=this.currentPage!==e;this.currentPage=e,this.currentIndex=t,u&&await e.bringToFront()}async switchToPage(e){let t=this.context.pages();if(e<0||e>=t.length)throw new Error(`Invalid page index: ${e}. Available pages: 0-${t.length-1}`);let u=t[e];if(u.isClosed())throw new Error(`Page at index ${e} is closed`);return await this.setCurrentPage(u,e),u}async closePage(e){let t=this.context.pages();if(e<0||e>=t.length)throw new Error(`Invalid page index: ${e}. Available pages: 0-${t.length-1}`);let u=t[e];if(u.isClosed())throw new Error(`Page at index ${e} is already closed`);await u.close()}getCurrentPage(){return this.currentPage}getCurrentIndex(){return this.currentIndex}getAllPages(){return this.context.pages()}getPageCount(){return this.context.pages().length}};async function wa(e,t=3e3,u=1e3){try{await qe(e,t,u)}catch{}}async function ya(e,t,u){let r=u*1e3,i=100,a=Date.now();for(;!t.downloadStatus||t.downloadStatus.status==="inProgress";){if(Date.now()-a>r){let n;throw t.downloadStatus?n=`Timed out after ${r}ms waiting for download to complete`:n="No download in progress or completed",o.error(n),new Error(n)}await e.waitForTimeout(i)}if(t.downloadStatus.status==="failed"){let n=`Download failed: ${t.downloadStatus.error||"Unknown error"}`;throw o.error(n),new Error(n)}t.agentNote=`Download completed: ${t.downloadStatus.filename}`}async function va(e,t,u,r=60,i){let a=Math.min(r,280),n=Math.max(10,a/10)*1e3,s=Date.now()+a*1e3;for(o.info(`Waiting for condition: "${t}" (timeout: ${a}s)`);;){let c=Date.now();try{if(await u(e,t,i))return o.info(`Condition met: "${t}"`),!0}catch(f){o.warn(`Error evaluating condition: ${f.message}`)}if(Date.now()>s)return o.warn(`Timeout waiting for condition: "${t}"`),!1;let l=n-(Date.now()-c);l>0&&await e.waitForTimeout(l)}}var rn=Zu(tn(),1);import*as un from"fs";import*as Ce from"path";function an(e){return e.url()===":"}var Yu=class{constructor(e){this.context=e,this.testDataFileNames=[],this.extensionEnabled=!1}setTestDataDownloader(e,t){this.testDataDownloader=e,this.testDataFileNames=t??[]}setupPageTracking(e){this.tabManager=new xa(e)}async switchTab(e){if(!this.tabManager)throw new Error("Tab manager not initialized");return await this.tabManager.switchToPage(e)}async closeTab(e){if(!this.tabManager)throw new Error("Tab manager not initialized");await this.tabManager.closePage(e)}getCurrentPage(){return this.tabManager?this.tabManager.getCurrentPage():null}validatePage(e){let t=this.getCurrentPage();if(t&&t!==e&&!t.isClosed())return o.info(`[validatePage] Page changed, switching to ${t.url()}`),t;if(e.isClosed()){let u=e.context().pages().filter(r=>!r.isClosed());if(u.length>0){let r=u[u.length-1];return o.info(`[validatePage] Page closed, switching to ${r.url()}`),r}o.error("[validatePage] No valid pages found")}return e}replaceVariables(e){return Yt(e,this.context.variableStore.getAll())}getTestDataFileNames(){return this.testDataFileNames}getTestDataFilePath(e){let t=this.context.testDataDir||process.cwd();return Ce.join(t,e)}async downloadTestDataFiles(e){if(e.length===0){o.debug("[AgentServices] No file paths provided for download");return}let t=this.context.testDataDir||process.cwd(),u=e.filter(r=>{let i=Ce.basename(r),a=Ce.join(t,i),n=un.existsSync(a);return n&&o.debug(`[AgentServices] File already exists locally: ${i}`),!n});if(u.length===0){o.debug("[AgentServices] All files exist locally, no download needed");return}if(!this.testDataDownloader){o.debug("[AgentServices] No test data downloader configured, assuming files are pre-populated");return}o.info(`[AgentServices] Downloading ${u.length} test data files: ${u.join(", ")}`),await this.testDataDownloader(u,t)}async waitForDownloadComplete(e,t){return ya(e,this.context,t)}getRecentDownloadedFilePath(){return this.context.downloadStatus?this.context.downloadStatus.status!=="completed"?(o.debug(`Download is ${this.context.downloadStatus.status}, not completed`),null):this.context.downloadStatus.filePath?(o.info(`Retrieved recent download path: ${this.context.downloadStatus.filePath}`),this.context.downloadStatus.filePath):(o.warn("Download completed but file path is missing"),null):(o.debug("No download found"),null)}addSensitive(e,t){this.context.variableStore.set(e,t,!0)}saveVariable(e,t){let u=e.startsWith("$")?e.slice(1):e;this.context.variableStore.set(u,t),o.debug(`Saved variable: ${u} = ${JSON.stringify(t)}`),this.context.agentNote=`A new value is saved to the variable "${u}".`}addNote(e){!e||e.trim()===""||(this.context.agentNote?this.context.agentNote+=`
102
+ ${e.trim()}`:this.context.agentNote=e.trim())}readVariable(e){let t=e.startsWith("$")?e.slice(1):e,u=this.context.variableStore.get(t);return o.debug(`Read variable: ${t} = ${JSON.stringify(u)}`),u}async generate2faCode(e){try{let t=rn.authenticator.generate(e);return o.info(`Generated 2FA code: ${t}`),t}catch(t){throw o.error(`Failed to generate 2FA code: ${t.message}`),new Error(`Failed to generate 2FA code: ${t.message}`)}}async getDOMText(e){return await e.evaluate(()=>document.body.innerText)}async waitUntilStable(e,t){return qe(e,t)}setPage(e){this.context.setPage?(o.info("[AgentServices] Calling setPage callback"),this.context.setPage(e)):o.debug("[AgentServices] setPage callback not configured")}getModel(){if(!this.context.model)throw new Error("No LLM model configured. An LLM model is required for AI-powered actions (login, verify, ai_extract, ai_wait_until, etc.). Set GOOGLE_API_KEY or ANTHROPIC_API_KEY in your MCP server configuration.");return this.context.model}get variableStore(){return this.context.variableStore}getDownloadDir(){return this.context.downloadDir}getActionSettings(){return this.context.organizationSettings?.action_code_conversion_settings||{}}getInteractiveClassNames(){return this.context.organizationSettings?.agent_settings?.interactive_class_names||[]}getIframeFallbackDomains(){return this.context.organizationSettings?.agent_settings?.iframe_fallback_domains||[]}isUseCleanScreenshotForAssertion(){return this.context.organizationSettings?.use_clean_screenshot_for_assertion||!1}isKnowledgeImagesEnabled(){return this.context.organizationSettings?.agent_settings?.enable_knowledge_images||!1}isSlicedScreenshotsEnabled(){return this.context.organizationSettings?.agent_settings?.use_sliced_screenshots||!1}isResizeSlicedScreenshotsEnabled(){return this.context.organizationSettings?.agent_settings?.resize_sliced_screenshots||!1}isAccessibilityTreeEnabled(){return this.context.organizationSettings?.agent_settings?.use_accessibility_tree||!1}isActionIntentFilteringEnabled(){return this.context.organizationSettings?.agent_settings?.use_action_intent_filtering||!1}isDomTreeTsEnabled(){let e=process.env.USE_DOM_TREE_TS;return e!==void 0?e==="true"||e==="1":this.context.organizationSettings?.agent_settings?.use_dom_tree_ts||!1}setExtensionEnabled(e){this.extensionEnabled=e}getDomServiceOptions(){return{useDomTreeTs:this.isDomTreeTsEnabled(),domTreeRoot:this.extensionEnabled?"document":"body"}}setKnowledgeRetriever(e){this.knowledgeRetriever=e}hasKnowledgeRetriever(){return this.knowledgeRetriever!==void 0}async retrieveKnowledges(e,t,u,r){if(!this.knowledgeRetriever)return o.debug("[AgentServices] No knowledge retriever configured"),[];try{let i=await this.knowledgeRetriever(e,t,u,r);return o.debug(`[AgentServices] Retrieved ${i.length} knowledges for statement`),i}catch(i){return o.warn(`[AgentServices] Failed to retrieve knowledges: ${i.message}`),[]}}};import*as N from"fs";import*as C from"path";var N0=1,D0=3,$0=40;function Be(e,t){let u={};for(let[r,i]of Object.entries(e))u[r]=t.has(r)?"*****":i;return u}var Xu=class{constructor(e){this.context=e,this._newActionEntities=new Map,this.agentServices=new Yu(e),this.agentServices.agent=this,this.context.tokenUsages||(this.context.tokenUsages=[])}getNewActionEntities(){return this._newActionEntities}async getActionHandler(){if(!this._actionHandler){let{default:e}=await import("./handler-J6CCKSPE.js");this._actionHandler=new e}return this._actionHandler}async execAction(e,t,u){let r=(await this.getActionHandler()).getAction(e);if(!r)throw new Error(`Unknown action: ${e}`);await r.execute(t,u,this.agentServices)}async dismissModalIfPresent(e,t){try{let u=await this.execute(e,`TASK: Check if there is an INTRUSIVE POPUP blocking the page, and dismiss it if present.
103
103
 
104
104
  ONLY dismiss intrusive popups such as:
105
105
  - Cookie/GDPR consent banners
@@ -121,7 +121,7 @@ If you find an intrusive popup, dismiss it by clicking its close/X button or "No
121
121
  IMPORTANT: Only act with HIGH CONFIDENCE. If unsure whether something is an intrusive popup, do nothing.
122
122
  It's better to miss a popup than to accidentally interact with normal page elements.
123
123
 
124
- If NO intrusive popup is present, do nothing and report that no intrusive popup was found.`,void 0,!1,_0),r=!!(u.actions&&u.actions.length>0);return{success:u.success,modalDismissed:r,details:u.details||(r?"Modal dismissed":"No modal found")}}catch(u){return{success:!1,modalDismissed:!1,details:u.message||"Modal dismissal failed"}}}_getContext(){return this.context}setupDownloadTracking(e){if(o.info(`[Download Tracking] Setting up download tracking for page: ${e.url()}`),tn(e)){o.info(`[Download Tracking] Skipping download tracking for blank tab: ${e.url()}`),e.close();return}e.on("download",async t=>{let u=t.suggestedFilename();o.info(`[Download Tracking] Download event detected! File: ${u}`),this.context.downloadStatus={filename:u,status:"inProgress",startTime:Date.now()},o.info(`[Download Tracking] Download status set to inProgress: ${JSON.stringify(this.context.downloadStatus)}`);try{let r=this.context.downloadDir||C.join(process.cwd(),"downloads");I.existsSync(r)||I.mkdirSync(r,{recursive:!0});let i=C.join(r,u);o.info(`[Download Tracking] Downloading file to: ${i}`),await t.saveAs(i),this.context.downloadStatus={filename:u,status:"completed",startTime:this.context.downloadStatus.startTime,filePath:i,timestamp:Date.now()},o.info(`[Download Tracking] Download completed: ${i}`),o.info(`[Download Tracking] Download status set to completed: ${JSON.stringify(this.context.downloadStatus)}`)}catch(r){this.context.downloadStatus={filename:u,status:"failed",startTime:this.context.downloadStatus.startTime,error:r.message,timestamp:Date.now()},o.error(`[Download Tracking] Download failed for ${u}: ${r.message}`)}})}setupDialogHandling(e){if(o.debug(`[Dialog Handling] setupDialogHandling called, isClosed=${e.isClosed()}, url=${e.url()}`),e.isClosed()){o.debug("[Dialog Handling] Skipping - page is closed");return}o.info(`[Dialog Handling] Setting up dialog handling for page: ${e.url()}`),e.on("dialog",async t=>{let u=t.type(),r=t.message();o.info(`[Dialog Handling] Dialog detected - type: ${u}, message: "${r}"`);let i=u==="beforeunload";try{i?await t.dismiss():await t.accept(),this.context.dialogStatus={type:u,message:r,response:i?"dismiss":"accept",timestamp:Date.now()},o.info(`[Dialog Handling] Dialog ${i?"dismissed":"accepted"} - type: ${u}, message: "${r}"`)}catch(a){o.warn(`[Dialog Handling] Failed to handle dialog (already dismissed?): ${a}`)}})}getRecentDownloadedFilePath(){return this.agentServices.getRecentDownloadedFilePath()}addNote(e){this.agentServices.addNote(e)}collectTokenUsages(e){let t;Array.isArray(e)?t=e:e?.tokenUsages&&(t=e.tokenUsages),t&&t.length>0?(this.context.tokenUsages||(this.context.tokenUsages=[]),this.context.tokenUsages.push(...t),o.debug(`[collectTokenUsages] Added ${t.length} token usage(s), total: ${this.context.tokenUsages.length}`)):o.debug("[collectTokenUsages] No token usages to collect (undefined or empty)")}trackAIAction(e,t,u,r=1,i,a){if(!e)return;let n=u?.tokenUsages||[];this.context.aiActionDetails||(this.context.aiActionDetails=[]);let s=this.context.aiActionDetails.find(c=>c.stepId===e&&c.actionType===t);s?(s.count+=r,n.length>0&&s.tokenUsages.push(...n),u?.userPrompt&&(s.userPrompt=u.userPrompt),u?.rawLlmResponse&&(s.rawLlmResponse=u.rawLlmResponse),u?.reasoningContent&&(s.reasoningContent=u.reasoningContent),u?.elementTree&&(s.elementTree=u.elementTree),u?.screenshotWithSom&&(s.screenshotWithSom=u.screenshotWithSom),a&&(s.explanation=a)):this.context.aiActionDetails.push({stepId:e,actionType:t,count:r,tokenUsages:[...n],statement:i,userPrompt:u?.userPrompt,rawLlmResponse:u?.rawLlmResponse,reasoningContent:u?.reasoningContent,explanation:a,elementTree:u?.elementTree,screenshotWithSom:u?.screenshotWithSom}),o.debug(`[trackAIAction] Tracked ${t} for step ${e}, count: ${r}`)}async assert(e,t,u){o.info(`Asserting statement: ${t}`),u&&this.context.stepTracking&&await this.createStepResult(e,u,t),await this.agentServices.waitUntilStable(e);try{let r=this.getCompletedExecutionHistory(),i=await He(t,e,this.agentServices,{executionHistory:r,useCleanScreenshotForAssertion:!0,variables:this.context.variableStore.getAll(),sensitiveKeys:this.context.variableStore.getAllSensitiveKeys()});this.collectTokenUsages(i.debugInfo),this.context.lastActionDebugInfo=i.debugInfo;let a=i.explanation||i.error||"No explanation";if(u&&this.trackAIAction(u,"assert",i.debugInfo,1,t,a),this.context.agentNote=a,u&&this.context.stepTracking&&await this.updateStepResult(u,i.success?"success":"failure",a,void 0,i.debugInfo),!i.success)throw this.addToExecutionHistory(`Assert: "${t}"`,`Failed: ${a}`),new Error(`Assertion failed: ${a}`);return this.addToExecutionHistory(`Assert: "${t}"`,`Passed: ${a}`),!0}catch(r){throw u&&this.context.stepTracking&&await this.updateStepResult(u,"failure",r.message),r}}async evaluate(e,t,u){o.info(`Evaluating condition: ${t}`),u&&this.context.stepTracking&&await this.createStepResult(e,u,t),await this.agentServices.waitUntilStable(e);try{let r=this.getCompletedExecutionHistory(),i=await He(t,e,this.agentServices,{executionHistory:r,variables:this.context.variableStore.getAll(),sensitiveKeys:this.context.variableStore.getAllSensitiveKeys()});this.collectTokenUsages(i.debugInfo),this.context.lastActionDebugInfo=i.debugInfo;let a=i.explanation||i.error||"No explanation";return u&&this.trackAIAction(u,"evaluate",i.debugInfo,1,t,a),this.context.agentNote=a,u&&this.context.stepTracking&&await this.updateStepResult(u,"success",a,void 0,i.debugInfo),i.success?(this.addToExecutionHistory(`Evaluate: "${t}"`,`Result: true - ${a}`),!0):(o.warn(`AI evaluation returned false/unknown: ${a}`),this.addToExecutionHistory(`Evaluate: "${t}"`,`Unknown/False: ${a}`),!1)}catch(r){throw u&&this.context.stepTracking&&await this.updateStepResult(u,"failure",r.message),r}}async performAction(e,t){o.info(`Act: ${t}`);let u=this.getCompletedExecutionHistory(),r=await Me(t,e,this.agentServices,{executionHistory:u,variables:this.context.variableStore.getAll(),sensitiveKeys:this.context.variableStore.getAllSensitiveKeys()});if(this.collectTokenUsages(r.debugInfo),r.status!=="success"||r.actionEntities.length===0)return{success:!1,details:r.explanation||r.error||"Action failed"};let i=r.actionEntities[0]?.action_description||t;return this.addToExecutionHistory(t,i),{success:!0,details:r.explanation}}async execute(e,t,u,r,i){if(i!==void 0&&i<=0)throw new Error(`maxSteps must be >= 1, got ${i}`);let a=i!==void 0&&i>1;o.info(`Executing statement: ${t} (${a?`multi, maxSteps: ${i}`:"single"})`),u&&this.context.stepTracking&&await this.createStepResult(e,u,t),await this.agentServices.waitUntilStable(e);try{let n=this.getCompletedExecutionHistory();this.context.agentNote="";let s,c;if(a){let f=u&&this.context.stepTracking?.artifactsDir?m=>{if(m.type==="action"&&m.debugInfo){let x=`${u}-step${m.step}`;this.saveDebugInfoToFiles(x,m.debugInfo,this.context.model)}}:void 0;if(s=await Ue(t,e,this.agentServices,f,{executionHistory:n,variables:this.context.variableStore.getAll(),sensitiveKeys:this.context.variableStore.getAllSensitiveKeys(),maxSteps:i??I0}),c=s.completed,this.collectTokenUsages(s.tokenUsages),u&&s.tokenUsages){let m={tokenUsages:s.tokenUsages};this.trackAIAction(u,"execute",m,s.actionEntities?.length||1,t,s.explanation||"Multi-step execution completed")}}else if(s=await Me(t,e,this.agentServices,{executionHistory:n,variables:this.context.variableStore.getAll(),sensitiveKeys:this.context.variableStore.getAllSensitiveKeys(),usePureVision:r}),c=!0,this.collectTokenUsages(s.debugInfo),this.context.lastActionDebugInfo=s.debugInfo,u){let f=s.explanation||s.error||"No explanation";this.trackAIAction(u,"execute",s.debugInfo,1,t,f)}if(s.status!=="success"||s.actionEntities.length===0||!c){let f=s.explanation||s.error||"Goal not completed";throw u&&this.context.stepTracking&&await this.updateStepResult(u,"failure",f,void 0,s.debugInfo),new Error(`Action failed: ${f}`)}let l=this.context.agentNote||s.explanation||"Action executed successfully";return u&&this.context.stepTracking&&await this.updateStepResult(u,"success",l,void 0,s.debugInfo),this.addToExecutionHistory(`Execute: "${t}"`,l),{success:!0,details:l,actions:s.actionEntities,debugInfo:s.debugInfo}}catch(n){throw u&&this.context.stepTracking&&await this.updateStepResult(u,"failure",n.message),this.addToExecutionHistory(`Execute: "${t}"`,`Failed: ${n.message}`),n}}async generate(e,t,u,r){u&&this.context.stepTracking&&await this.createStepResult(e,u,t);try{let i=this.getCompletedExecutionHistory(),a=await Kt(t,e,this.agentServices,{executionHistory:i,variables:this.context.variableStore.getAll(),sensitiveKeys:this.context.variableStore.getAllSensitiveKeys(),usePureVision:r});if(this.collectTokenUsages(a.debugInfo),a.status!=="success"||a.actionEntities.length===0){let c=a.explanation||a.error||"No explanation";throw u&&this.trackAIAction(u,"generate",a.debugInfo,1,t,c),u&&this.context.stepTracking&&await this.updateStepResult(u,"failure",c,void 0,a.debugInfo),new Error(c)}let n=a.completed,s=a.explanation||"Action generated successfully";return u&&this.trackAIAction(u,"generate",a.debugInfo,1,t,s),u&&this.context.stepTracking&&await this.updateStepResult(u,"success",s,void 0,a.debugInfo),o.info(`[generate] Generated action for "${t}": ${s}, goalAccomplished: ${a.completed}`),{success:n,details:s,actions:a.actionEntities,debugInfo:a.debugInfo}}catch(i){throw u&&this.context.stepTracking&&await this.updateStepResult(u,"failure",i.message),i}}async run(e,t,u,r){u&&this.context.stepTracking&&await this.createStepResult(e,u,t);try{let i=this.getCompletedExecutionHistory();this.context.agentNote="";let a=u&&this.context.stepTracking?.artifactsDir,n=r?.onAction||a?f=>{if(f.type==="action"&&f.action_entity&&(r?.onAction?.(f.action_entity),a&&f.debugInfo)){let m=`${u}-step${f.step}`;this.saveDebugInfoToFiles(m,f.debugInfo,this.context.model)}}:void 0,s=await Ue(t,e,this.agentServices,n,{executionHistory:i,variables:this.context.variableStore.getAll(),sensitiveKeys:this.context.variableStore.getAllSensitiveKeys(),abortSignal:r?.abortSignal,maxSteps:r?.maxSteps});k.log(`Run task result: status=${s.status}, completed=${s.completed}, actions=${s.actionEntities?.length||0}`),this.collectTokenUsages(s.tokenUsages);let c=s.status==="success"&&s.completed,l=this.context.agentNote?.trim()||s.explanation||s.error||(c?"Step completed":"Step failed");if(u&&s.tokenUsages){let f={tokenUsages:s.tokenUsages};this.trackAIAction(u,"run",f,s.actionEntities?.length||1,t,l)}if(!c)throw new Yu(l);return u&&this.context.stepTracking&&await this.updateStepResult(u,"success",l,void 0,void 0),this.addToExecutionHistory(`Run: "${t}"`,l),k.log(`Run result: success=${c}, details=${l}`),{success:c,details:l,actions:s.actionEntities}}catch(i){throw u&&this.context.stepTracking&&await this.updateStepResult(u,"failure",i.message),this.addToExecutionHistory(`Run: "${t}"`,`Failed: ${i.message}`),i}}async step(e,t,u,r,i,a=!0,n){let s=Date.now();this.context.stepTracking&&await this.createStepResult(e,r,u),await this.agentServices.waitUntilStable(e),this.context.stepTracking&&(this.context.stepTracking.currentStepId=r);let c=e.url(),l=await this.captureDOMSnapshot(e),f=this.context.stepTracking?.captureVariables?Be(this.context.variableStore.getAll(),this.context.variableStore.getAllSensitiveKeys()):{},m=this.context.stepTracking?.results[r]?.screenshot;try{o.info(`Executing step ${r}: ${u}`),this.addToExecutionHistory(u,""),this.context.agentNote="";let x=await t(),g=e.url(),b=await this.captureDOMSnapshot(e),v=this.context.stepTracking?.captureVariables?Be(this.context.variableStore.getAll(),this.context.variableStore.getAllSensitiveKeys()):{};if(this.context.stepTracking&&await this.updateStepResult(r,"success",""),this.context.stepTracking?.captureStateTransitions&&this.context.stepTracking.stateTransitions){let w=Date.now()-s,E=this.context.stepTracking.results[r]?.screenshot,D=Date.now();this.context.stepTracking.stateTransitions.length===0&&this.context.stepTracking.stateTransitions.push({type:"state",url:c,domSnapshot:l||void 0,variables:f,screenshotPath:m,timestamp:s}),this.context.stepTracking.stateTransitions.push({type:"action",stepId:r,description:u,action:{playwrightCode:[t.toString()]},consoleLogs:this.getConsoleLogsForStep(r),durationMs:w,status:"success"}),this.context.stepTracking.stateTransitions.push({type:"state",url:g,domSnapshot:b||void 0,variables:v,screenshotPath:E,timestamp:D})}let y=this.context.agentNote;return(!y||y.trim()==="")&&(y="Execution successful"),this.context.executionHistory&&this.context.executionHistory.length>0&&(this.context.executionHistory[this.context.executionHistory.length-1][1]=y),this.context.stepTracking&&(this.context.stepTracking.currentStepId=void 0),x}catch(x){let g=a&&!this.context.isSelfHealing;if(g&&(this.context.stepTracking&&await this.updateStepResult(r,"failure",x.message),this.context.executionHistory&&this.context.executionHistory.length>0&&(this.context.executionHistory[this.context.executionHistory.length-1][1]=x.message)),!u||u.trim()==="")throw o.error("No description provided for self-healing"),this.context.stepTracking&&(this.context.stepTracking.currentStepId=void 0),x;if(!g){if(o.info(`Failed to heal at step ${r}. ${u}`),this.context.isSelfHealing=!1,this.context.stepTracking?.captureStateTransitions&&this.context.stepTracking.stateTransitions){let y=e.url(),w=await this.captureDOMSnapshot(e),E=this.context.stepTracking.captureVariables?Be(this.context.variableStore.getAll(),this.context.variableStore.getAllSensitiveKeys()):{},D=Date.now()-s,q=Date.now();this.context.stepTracking.stateTransitions.length===0&&this.context.stepTracking.stateTransitions.push({type:"state",url:c,domSnapshot:l||void 0,variables:f,screenshotPath:m,timestamp:s}),this.context.stepTracking.stateTransitions.push({type:"action",stepId:r,description:u,action:{playwrightCode:[t.toString()]},consoleLogs:this.getConsoleLogsForStep(r),durationMs:D,status:"failure",errorMessage:x.message}),this.context.stepTracking.stateTransitions.push({type:"state",url:y,domSnapshot:w||void 0,variables:E,timestamp:q})}throw this.context.stepTracking&&(await this.updateStepResult(r,void 0,void 0),this.context.stepTracking.currentStepId=void 0),x}this.context.isSelfHealing=!0,o.info(`Action failed at step ${r}. ${u}`),o.info(`with error: ${x.message}`);let b;if(this.context.autoDisableModal){o.info("Attempting modal dismissal before self-healing...");let y=await this.dismissModalIfPresent(e,u);if(o.info(`Modal dismissal result: ${y.details}`),y.modalDismissed){b=`[Auto-dismissed modal: ${y.details}]`,o.info(`Modal dismissed, retrying original action for step ${r}`);try{let w=await t();return this.context.isSelfHealing=!1,this.context.executionHistory&&this.context.executionHistory.length>0&&(this.context.executionHistory[this.context.executionHistory.length-1][1]=b+" Retry successful"),this.context.stepTracking&&(await this.updateStepResult(r,"success",b),this.context.stepTracking.currentStepId=void 0),w}catch(w){o.info(`Retry after modal dismissal failed: ${w.message}, falling back to self-healing`)}}}let v=n??L0;o.info(`Calling execute() to self-heal (maxSteps: ${v})`);try{let y=await this.execute(e,u,r,!1,v);if(this.context.isSelfHealing=!1,!y.success)throw new Error(`Self-healing failed: ${y.details}`);let w=y.actions?.at(-1);i&&w&&(this._newActionEntities.set(i,w),o.info(`Stored new action entity for stmtUid: ${i} (last of ${y.actions?.length} actions)`));let E=e.url(),D=await this.captureDOMSnapshot(e),q=this.context.stepTracking?.captureVariables?Be(this.context.variableStore.getAll(),this.context.variableStore.getAllSensitiveKeys()):{};if(this.context.stepTracking){let F=b||"";await this.updateStepResult(r,"success",F)}if(this.context.stepTracking?.captureStateTransitions&&this.context.stepTracking.stateTransitions){let F=Date.now()-s,M=this.context.stepTracking.results[r]?.screenshot,Rt=Date.now();this.context.stepTracking.stateTransitions.length===0&&this.context.stepTracking.stateTransitions.push({type:"state",url:c,domSnapshot:l||void 0,variables:f,screenshotPath:m,timestamp:s}),this.context.stepTracking.stateTransitions.push({type:"action",stepId:r,description:u,action:{actionEntity:w,playwrightCode:y.actions?.map(qt=>qt.locator||""),llmPrompt:y.debugInfo?.userPrompt,llmResponse:y.debugInfo?.rawLlmResponse,llmReasoning:y.debugInfo?.reasoningContent},consoleLogs:this.getConsoleLogsForStep(r),durationMs:F,status:"success"}),this.context.stepTracking.stateTransitions.push({type:"state",url:E,domSnapshot:D||void 0,variables:q,screenshotPath:M,timestamp:Rt})}return this.context.stepTracking&&(this.context.stepTracking.currentStepId=void 0),y}catch(y){if(this.context.isSelfHealing=!1,this.context.stepTracking?.captureStateTransitions&&this.context.stepTracking.stateTransitions){let w=e.url(),E=await this.captureDOMSnapshot(e),D=this.context.stepTracking.captureVariables?Be(this.context.variableStore.getAll(),this.context.variableStore.getAllSensitiveKeys()):{},q=Date.now()-s,F=Date.now();this.context.stepTracking.stateTransitions.length===0&&this.context.stepTracking.stateTransitions.push({type:"state",url:c,domSnapshot:l||void 0,variables:f,screenshotPath:m,timestamp:s}),this.context.stepTracking.stateTransitions.push({type:"action",stepId:r,description:u,action:{playwrightCode:[t.toString()]},consoleLogs:this.getConsoleLogsForStep(r),durationMs:q,status:"failure",errorMessage:y.message}),this.context.stepTracking.stateTransitions.push({type:"state",url:w,domSnapshot:E||void 0,variables:D,timestamp:F})}throw this.context.stepTracking&&(this.context.stepTracking.currentStepId=void 0),y}}}async extract(e,t,u,r){r&&this.context.stepTracking&&await this.createStepResult(e,r,`Extract ${t} into ${u}`);try{let i=`Extract ${t} and save to ${u}`,a=await this.execute(e,i,r);if(!a.success)throw new Error(`AI extraction failed: ${a.details}`);r&&this.context.stepTracking&&await this.updateStepResult(r,"success",`Extracted ${t} to ${u}`)}catch(i){throw r&&this.context.stepTracking&&await this.updateStepResult(r,"failure",i.message),i}}async getDOMText(e){let t=new Re(this.agentServices.getDomServiceOptions()),u=this.agentServices.getInteractiveClassNames();return(await t.getClickableElements(e,{interactiveClassNames:u})).elementTree.clickableElementsToString()}async captureDOMSnapshot(e){if(!this.context.stepTracking?.captureStateTransitions||!this.context.stepTracking?.captureDom)return null;try{let t=new Re(this.agentServices.getDomServiceOptions()),u=this.agentServices.getInteractiveClassNames(),r=await t.getClickableElements(e,{interactiveClassNames:u,highlightElements:!1,viewportExpansion:0});return{elementTreeText:r.elementTree.clickableElementsToString(),elementCount:r.selectorMap.size,timestamp:Date.now()}}catch(t){return o.warn("Failed to capture DOM snapshot:",t),null}}getConsoleLogsForStep(e){return this.context.stepTracking?.consoleLogs?this.context.stepTracking.consoleLogs.filter(t=>t.stepId===e).map(t=>({type:t.type,message:t.message,timestamp:t.timestamp})):[]}async waitUntilStable(e,t=3e3,u=1e3){return ga(e,t,u)}async waitUntilCondition(e,t,u=60,r){return xa(e,t,(i,a,n)=>this.evaluate(i,a,n),u,r)}async uploadFile(e,t,u={},r){return er(e,t,u,this.context,(i,a,n)=>this.execute(i,a,n),r)}async loginPage(e,t,u){let{LoginType:r}=await import("./agentLogin-GDOU6BCP.js");if(o.info("Start login"),k.section("Login Flow"),k.log(`Site URL: ${t.site_url}`),k.log(`Account type: ${t.account.type}`),k.log(`Has cached actions: ${!!u?.cached_actions?.length}`),k.log(`Has validation exprs: ${!!u?.validation_exprs?.length}`),t.skip_verification)return o.info("Skipping login verification (skip_verification=true)"),{success:!0,page:e};if((t.account.type===r.PASSWORD||t.account.type===r.OAUTH2)&&(this.context.variableStore.set("username",t.account.username,!0),this.context.variableStore.set("password",t.account.password,!0)),t.account.two_factor_auth_config?.type==="totp"&&this.context.variableStore.set("otp_secret_key",t.account.two_factor_auth_config.data,!0),o.info(`Navigating to: ${t.site_url}`),await e.goto(t.site_url),await this.waitUntilStable(e,1e4,3e3),u?.validation_exprs&&u.validation_exprs.length>0){if(k.log("Level 1: Checking if already logged in via storage state..."),k.log(`Validation expressions: ${JSON.stringify(u.validation_exprs)}`),await Yt(e,u.validation_exprs)){k.log("Level 1 SUCCESS: Already logged in via storage state"),o.info("Login: Already logged in via storage state");let a=await e.context().storageState();return{success:!0,page:e,storage_state:a,cached_actions:u.cached_actions,validation_exprs:u.validation_exprs,alreadyLoggedIn:!0}}k.log("Level 1 FAILED: Storage state validation failed, trying Level 2")}if(u?.cached_actions&&u.cached_actions.length>0&&u?.validation_exprs&&u.validation_exprs.length>0){k.log(`Level 2: Attempting cached login with ${u.cached_actions.length} actions`);try{if((await this.executeCachedLogin(e,u.cached_actions,u.validation_exprs)).success){k.log("Level 2 SUCCESS: Cached login succeeded"),o.info("Login: Cached login succeeded");let a=await e.context().storageState();return{success:!0,page:e,storage_state:a,cached_actions:u.cached_actions,validation_exprs:u.validation_exprs}}k.log("Level 2 FAILED: Cached login failed, trying Level 3")}catch(a){k.log(`Level 2 ERROR: ${a.message}, trying Level 3`)}}else u?.cached_actions&&u.cached_actions.length>0&&k.log("Level 2 SKIPPED: Cached actions exist but no validation expressions, going to Level 3");let i=`First check if the page is already signed in. If it is, do nothing.
124
+ If NO intrusive popup is present, do nothing and report that no intrusive popup was found.`,void 0,!1,D0),r=!!(u.actions&&u.actions.length>0);return{success:u.success,modalDismissed:r,details:u.details||(r?"Modal dismissed":"No modal found")}}catch(u){return{success:!1,modalDismissed:!1,details:u.message||"Modal dismissal failed"}}}_getContext(){return this.context}setupDownloadTracking(e){if(o.info(`[Download Tracking] Setting up download tracking for page: ${e.url()}`),an(e)){o.info(`[Download Tracking] Skipping download tracking for blank tab: ${e.url()}`),e.close();return}e.on("download",async t=>{let u=t.suggestedFilename();o.info(`[Download Tracking] Download event detected! File: ${u}`),this.context.downloadStatus={filename:u,status:"inProgress",startTime:Date.now()},o.info(`[Download Tracking] Download status set to inProgress: ${JSON.stringify(this.context.downloadStatus)}`);try{let r=this.context.downloadDir||C.join(process.cwd(),"downloads");N.existsSync(r)||N.mkdirSync(r,{recursive:!0});let i=C.join(r,u);o.info(`[Download Tracking] Downloading file to: ${i}`),await t.saveAs(i),this.context.downloadStatus={filename:u,status:"completed",startTime:this.context.downloadStatus.startTime,filePath:i,timestamp:Date.now()},o.info(`[Download Tracking] Download completed: ${i}`),o.info(`[Download Tracking] Download status set to completed: ${JSON.stringify(this.context.downloadStatus)}`)}catch(r){this.context.downloadStatus={filename:u,status:"failed",startTime:this.context.downloadStatus.startTime,error:r.message,timestamp:Date.now()},o.error(`[Download Tracking] Download failed for ${u}: ${r.message}`)}})}setupDialogHandling(e){if(o.debug(`[Dialog Handling] setupDialogHandling called, isClosed=${e.isClosed()}, url=${e.url()}`),e.isClosed()){o.debug("[Dialog Handling] Skipping - page is closed");return}o.info(`[Dialog Handling] Setting up dialog handling for page: ${e.url()}`),e.on("dialog",async t=>{let u=t.type(),r=t.message();o.info(`[Dialog Handling] Dialog detected - type: ${u}, message: "${r}"`);let i=u==="beforeunload";try{i?await t.dismiss():await t.accept(),this.context.dialogStatus={type:u,message:r,response:i?"dismiss":"accept",timestamp:Date.now()},o.info(`[Dialog Handling] Dialog ${i?"dismissed":"accepted"} - type: ${u}, message: "${r}"`)}catch(a){o.warn(`[Dialog Handling] Failed to handle dialog (already dismissed?): ${a}`)}})}getRecentDownloadedFilePath(){return this.agentServices.getRecentDownloadedFilePath()}addNote(e){this.agentServices.addNote(e)}collectTokenUsages(e){let t;Array.isArray(e)?t=e:e?.tokenUsages&&(t=e.tokenUsages),t&&t.length>0?(this.context.tokenUsages||(this.context.tokenUsages=[]),this.context.tokenUsages.push(...t),o.debug(`[collectTokenUsages] Added ${t.length} token usage(s), total: ${this.context.tokenUsages.length}`)):o.debug("[collectTokenUsages] No token usages to collect (undefined or empty)")}trackAIAction(e,t,u,r=1,i,a){if(!e)return;let n=u?.tokenUsages||[];this.context.aiActionDetails||(this.context.aiActionDetails=[]);let s=this.context.aiActionDetails.find(c=>c.stepId===e&&c.actionType===t);s?(s.count+=r,n.length>0&&s.tokenUsages.push(...n),u?.userPrompt&&(s.userPrompt=u.userPrompt),u?.rawLlmResponse&&(s.rawLlmResponse=u.rawLlmResponse),u?.reasoningContent&&(s.reasoningContent=u.reasoningContent),u?.elementTree&&(s.elementTree=u.elementTree),u?.screenshotWithSom&&(s.screenshotWithSom=u.screenshotWithSom),a&&(s.explanation=a)):this.context.aiActionDetails.push({stepId:e,actionType:t,count:r,tokenUsages:[...n],statement:i,userPrompt:u?.userPrompt,rawLlmResponse:u?.rawLlmResponse,reasoningContent:u?.reasoningContent,explanation:a,elementTree:u?.elementTree,screenshotWithSom:u?.screenshotWithSom}),o.debug(`[trackAIAction] Tracked ${t} for step ${e}, count: ${r}`)}async assert(e,t,u){o.info(`Asserting statement: ${t}`),u&&this.context.stepTracking&&await this.createStepResult(e,u,t),await this.agentServices.waitUntilStable(e);try{let r=this.getCompletedExecutionHistory(),i=await He(t,e,this.agentServices,{executionHistory:r,useCleanScreenshotForAssertion:!0,variables:this.context.variableStore.getAll(),sensitiveKeys:this.context.variableStore.getAllSensitiveKeys()});this.collectTokenUsages(i.debugInfo),this.context.lastActionDebugInfo=i.debugInfo;let a=i.explanation||i.error||"No explanation";if(u&&this.trackAIAction(u,"assert",i.debugInfo,1,t,a),this.context.agentNote=a,u&&this.context.stepTracking&&await this.updateStepResult(u,i.success?"success":"failure",a,void 0,i.debugInfo),!i.success)throw this.addToExecutionHistory(`Assert: "${t}"`,`Failed: ${a}`),new Error(`Assertion failed: ${a}`);return this.addToExecutionHistory(`Assert: "${t}"`,`Passed: ${a}`),!0}catch(r){throw u&&this.context.stepTracking&&await this.updateStepResult(u,"failure",r.message),r}}async evaluate(e,t,u){o.info(`Evaluating condition: ${t}`),u&&this.context.stepTracking&&await this.createStepResult(e,u,t),await this.agentServices.waitUntilStable(e);try{let r=this.getCompletedExecutionHistory(),i=await He(t,e,this.agentServices,{executionHistory:r,variables:this.context.variableStore.getAll(),sensitiveKeys:this.context.variableStore.getAllSensitiveKeys()});this.collectTokenUsages(i.debugInfo),this.context.lastActionDebugInfo=i.debugInfo;let a=i.explanation||i.error||"No explanation";return u&&this.trackAIAction(u,"evaluate",i.debugInfo,1,t,a),this.context.agentNote=a,u&&this.context.stepTracking&&await this.updateStepResult(u,"success",a,void 0,i.debugInfo),i.success?(this.addToExecutionHistory(`Evaluate: "${t}"`,`Result: true - ${a}`),!0):(o.warn(`AI evaluation returned false/unknown: ${a}`),this.addToExecutionHistory(`Evaluate: "${t}"`,`Unknown/False: ${a}`),!1)}catch(r){throw u&&this.context.stepTracking&&await this.updateStepResult(u,"failure",r.message),r}}async performAction(e,t){o.info(`Act: ${t}`);let u=this.getCompletedExecutionHistory(),r=await Me(t,e,this.agentServices,{executionHistory:u,variables:this.context.variableStore.getAll(),sensitiveKeys:this.context.variableStore.getAllSensitiveKeys()});if(this.collectTokenUsages(r.debugInfo),r.status!=="success"||r.actionEntities.length===0)return{success:!1,details:r.explanation||r.error||"Action failed"};let i=r.actionEntities[0]?.action_description||t;return this.addToExecutionHistory(t,i),{success:!0,details:r.explanation}}async execute(e,t,u,r,i){if(i!==void 0&&i<=0)throw new Error(`maxSteps must be >= 1, got ${i}`);let a=i!==void 0&&i>1;o.info(`Executing statement: ${t} (${a?`multi, maxSteps: ${i}`:"single"})`),u&&this.context.stepTracking&&await this.createStepResult(e,u,t),e=this.agentServices.validatePage(e),await this.agentServices.waitUntilStable(e);try{let n=this.getCompletedExecutionHistory();this.context.agentNote="";let s,c;if(a){let f=u&&this.context.stepTracking?.artifactsDir?b=>{if(b.type==="action"&&b.debugInfo){let x=`${u}-step${b.step}`;this.saveDebugInfoToFiles(x,b.debugInfo,this.context.model)}}:void 0;if(s=await Ue(t,e,this.agentServices,f,{executionHistory:n,variables:this.context.variableStore.getAll(),sensitiveKeys:this.context.variableStore.getAllSensitiveKeys(),maxSteps:i??$0}),c=s.completed,this.collectTokenUsages(s.tokenUsages),u&&s.tokenUsages){let b={tokenUsages:s.tokenUsages};this.trackAIAction(u,"execute",b,s.actionEntities?.length||1,t,s.explanation||"Multi-step execution completed")}}else if(e=this.agentServices.validatePage(e),s=await Me(t,e,this.agentServices,{executionHistory:n,variables:this.context.variableStore.getAll(),sensitiveKeys:this.context.variableStore.getAllSensitiveKeys(),usePureVision:r}),c=s.completed,this.collectTokenUsages(s.debugInfo),this.context.lastActionDebugInfo=s.debugInfo,u){let f=s.explanation||s.error||"No explanation";this.trackAIAction(u,"execute",s.debugInfo,1,t,f)}if(s.status!=="success"||s.actionEntities.length===0||!c){let f=s.explanation||s.error||"Goal not completed";throw u&&this.context.stepTracking&&await this.updateStepResult(u,"failure",f,void 0,s.debugInfo),new Error(`Action failed: ${f}`)}let l=this.context.agentNote||s.explanation||"Action executed successfully";return u&&this.context.stepTracking&&await this.updateStepResult(u,"success",l,void 0,s.debugInfo),this.addToExecutionHistory(`Execute: "${t}"`,l),{success:!0,details:l,actions:s.actionEntities,debugInfo:s.debugInfo}}catch(n){throw u&&this.context.stepTracking&&await this.updateStepResult(u,"failure",n.message),this.addToExecutionHistory(`Execute: "${t}"`,`Failed: ${n.message}`),n}}async generate(e,t,u,r){u&&this.context.stepTracking&&await this.createStepResult(e,u,t);try{let i=this.getCompletedExecutionHistory(),a=await Jt(t,e,this.agentServices,{executionHistory:i,variables:this.context.variableStore.getAll(),sensitiveKeys:this.context.variableStore.getAllSensitiveKeys(),usePureVision:r});if(this.collectTokenUsages(a.debugInfo),a.status!=="success"||a.actionEntities.length===0){let c=a.explanation||a.error||"No explanation";throw u&&this.trackAIAction(u,"generate",a.debugInfo,1,t,c),u&&this.context.stepTracking&&await this.updateStepResult(u,"failure",c,void 0,a.debugInfo),new Error(c)}let n=a.completed,s=a.explanation||"Action generated successfully";return u&&this.trackAIAction(u,"generate",a.debugInfo,1,t,s),u&&this.context.stepTracking&&await this.updateStepResult(u,"success",s,void 0,a.debugInfo),o.info(`[generate] Generated action for "${t}": ${s}, goalAccomplished: ${a.completed}`),{success:n,details:s,actions:a.actionEntities,debugInfo:a.debugInfo}}catch(i){throw u&&this.context.stepTracking&&await this.updateStepResult(u,"failure",i.message),i}}async run(e,t,u,r){u&&this.context.stepTracking&&await this.createStepResult(e,u,t);try{let i=this.getCompletedExecutionHistory();this.context.agentNote="";let a=u&&this.context.stepTracking?.artifactsDir,n=r?.onAction||a?f=>{if(f.type==="action"&&f.action_entity&&(r?.onAction?.(f.action_entity),a&&f.debugInfo)){let b=`${u}-step${f.step}`;this.saveDebugInfoToFiles(b,f.debugInfo,this.context.model)}}:void 0,s=await Ue(t,e,this.agentServices,n,{executionHistory:i,variables:this.context.variableStore.getAll(),sensitiveKeys:this.context.variableStore.getAllSensitiveKeys(),abortSignal:r?.abortSignal,maxSteps:r?.maxSteps});S.log(`Run task result: status=${s.status}, completed=${s.completed}, actions=${s.actionEntities?.length||0}`),this.collectTokenUsages(s.tokenUsages);let c=s.status==="success"&&s.completed,l=this.context.agentNote?.trim()||s.explanation||s.error||(c?"Step completed":"Step failed");if(u&&s.tokenUsages){let f={tokenUsages:s.tokenUsages};this.trackAIAction(u,"run",f,s.actionEntities?.length||1,t,l)}if(!c)throw new Du(l);return u&&this.context.stepTracking&&await this.updateStepResult(u,"success",l,void 0,void 0),this.addToExecutionHistory(`Run: "${t}"`,l),S.log(`Run result: success=${c}, details=${l}`),{success:c,details:l,actions:s.actionEntities}}catch(i){throw u&&this.context.stepTracking&&await this.updateStepResult(u,"failure",i.message),this.addToExecutionHistory(`Run: "${t}"`,`Failed: ${i.message}`),i}}async step(e,t,u,r,i,a=!0,n){let s=Date.now();this.context.stepTracking&&await this.createStepResult(e,r,u),e=this.agentServices.validatePage(e),await this.agentServices.waitUntilStable(e),this.context.stepTracking&&(this.context.stepTracking.currentStepId=r),e=this.agentServices.validatePage(e);let c=e.url(),l=await this.captureDOMSnapshot(e),f=this.context.stepTracking?.captureVariables?Be(this.context.variableStore.getAll(),this.context.variableStore.getAllSensitiveKeys()):{},b=this.context.stepTracking?.results[r]?.screenshot;try{o.info(`Executing step ${r}: ${u}`),this.addToExecutionHistory(u,""),this.context.agentNote="",e=this.agentServices.validatePage(e);let x=await t();e=this.agentServices.validatePage(e);let h=e.url(),g=await this.captureDOMSnapshot(e),v=this.context.stepTracking?.captureVariables?Be(this.context.variableStore.getAll(),this.context.variableStore.getAllSensitiveKeys()):{};if(this.context.stepTracking&&await this.updateStepResult(r,"success",""),this.context.stepTracking?.captureStateTransitions&&this.context.stepTracking.stateTransitions){let y=Date.now()-s,k=this.context.stepTracking.results[r]?.screenshot,_=Date.now();this.context.stepTracking.stateTransitions.length===0&&this.context.stepTracking.stateTransitions.push({type:"state",url:c,domSnapshot:l||void 0,variables:f,screenshotPath:b,timestamp:s}),this.context.stepTracking.stateTransitions.push({type:"action",stepId:r,description:u,action:{playwrightCode:[t.toString()]},consoleLogs:this.getConsoleLogsForStep(r),durationMs:y,status:"success"}),this.context.stepTracking.stateTransitions.push({type:"state",url:h,domSnapshot:g||void 0,variables:v,screenshotPath:k,timestamp:_})}let w=this.context.agentNote;return(!w||w.trim()==="")&&(w="Execution successful"),this.context.executionHistory&&this.context.executionHistory.length>0&&(this.context.executionHistory[this.context.executionHistory.length-1][1]=w),this.context.stepTracking&&(this.context.stepTracking.currentStepId=void 0),x}catch(x){e=this.agentServices.validatePage(e);let h=a&&!this.context.isSelfHealing;if(h&&(this.context.stepTracking&&await this.updateStepResult(r,"failure",x.message),this.context.executionHistory&&this.context.executionHistory.length>0&&(this.context.executionHistory[this.context.executionHistory.length-1][1]=x.message)),!u||u.trim()==="")throw o.error("No description provided for self-healing"),this.context.stepTracking&&(this.context.stepTracking.currentStepId=void 0),x;if(!h){if(o.info(`Failed to heal at step ${r}. ${u}`),this.context.isSelfHealing=!1,this.context.stepTracking?.captureStateTransitions&&this.context.stepTracking.stateTransitions){let w=e.url(),y=await this.captureDOMSnapshot(e),k=this.context.stepTracking.captureVariables?Be(this.context.variableStore.getAll(),this.context.variableStore.getAllSensitiveKeys()):{},_=Date.now()-s,P=Date.now();this.context.stepTracking.stateTransitions.length===0&&this.context.stepTracking.stateTransitions.push({type:"state",url:c,domSnapshot:l||void 0,variables:f,screenshotPath:b,timestamp:s}),this.context.stepTracking.stateTransitions.push({type:"action",stepId:r,description:u,action:{playwrightCode:[t.toString()]},consoleLogs:this.getConsoleLogsForStep(r),durationMs:_,status:"failure",errorMessage:x.message}),this.context.stepTracking.stateTransitions.push({type:"state",url:w,domSnapshot:y||void 0,variables:k,timestamp:P})}throw this.context.stepTracking&&(await this.updateStepResult(r,void 0,void 0),this.context.stepTracking.currentStepId=void 0),x}this.context.isSelfHealing=!0,o.info(`Action failed at step ${r}. ${u}`),o.info(`with error: ${x.message}`);let g;if(this.context.autoDisableModal){o.info("Attempting modal dismissal before self-healing...");let w=await this.dismissModalIfPresent(e,u);if(o.info(`Modal dismissal result: ${w.details}`),w.modalDismissed){g=`[Auto-dismissed modal: ${w.details}]`,o.info(`Modal dismissed, retrying original action for step ${r}`);try{let y=await t();return this.context.isSelfHealing=!1,this.context.executionHistory&&this.context.executionHistory.length>0&&(this.context.executionHistory[this.context.executionHistory.length-1][1]=g+" Retry successful"),this.context.stepTracking&&(await this.updateStepResult(r,"success",g),this.context.stepTracking.currentStepId=void 0),y}catch(y){o.info(`Retry after modal dismissal failed: ${y.message}, falling back to self-healing`)}}}let v=n??N0;o.info(`Calling execute() to self-heal (maxSteps: ${v})`);try{let w=await this.execute(e,u,r,!1,v);if(this.context.isSelfHealing=!1,!w.success)throw new Error(`Self-healing failed: ${w.details}`);let y=w.actions?.at(-1);i&&y&&(this._newActionEntities.set(i,y),o.info(`Stored new action entity for stmtUid: ${i} (last of ${w.actions?.length} actions)`));let k=e.url(),_=await this.captureDOMSnapshot(e),P=this.context.stepTracking?.captureVariables?Be(this.context.variableStore.getAll(),this.context.variableStore.getAllSensitiveKeys()):{};if(this.context.stepTracking){let F=g||"";await this.updateStepResult(r,"success",F)}if(this.context.stepTracking?.captureStateTransitions&&this.context.stepTracking.stateTransitions){let F=Date.now()-s,M=this.context.stepTracking.results[r]?.screenshot,qt=Date.now();this.context.stepTracking.stateTransitions.length===0&&this.context.stepTracking.stateTransitions.push({type:"state",url:c,domSnapshot:l||void 0,variables:f,screenshotPath:b,timestamp:s}),this.context.stepTracking.stateTransitions.push({type:"action",stepId:r,description:u,action:{actionEntity:y,playwrightCode:w.actions?.map(Mt=>Mt.locator||""),llmPrompt:w.debugInfo?.userPrompt,llmResponse:w.debugInfo?.rawLlmResponse,llmReasoning:w.debugInfo?.reasoningContent},consoleLogs:this.getConsoleLogsForStep(r),durationMs:F,status:"success"}),this.context.stepTracking.stateTransitions.push({type:"state",url:k,domSnapshot:_||void 0,variables:P,screenshotPath:M,timestamp:qt})}return this.context.stepTracking&&(this.context.stepTracking.currentStepId=void 0),w}catch(w){if(this.context.isSelfHealing=!1,this.context.stepTracking?.captureStateTransitions&&this.context.stepTracking.stateTransitions){let y=e.url(),k=await this.captureDOMSnapshot(e),_=this.context.stepTracking.captureVariables?Be(this.context.variableStore.getAll(),this.context.variableStore.getAllSensitiveKeys()):{},P=Date.now()-s,F=Date.now();this.context.stepTracking.stateTransitions.length===0&&this.context.stepTracking.stateTransitions.push({type:"state",url:c,domSnapshot:l||void 0,variables:f,screenshotPath:b,timestamp:s}),this.context.stepTracking.stateTransitions.push({type:"action",stepId:r,description:u,action:{playwrightCode:[t.toString()]},consoleLogs:this.getConsoleLogsForStep(r),durationMs:P,status:"failure",errorMessage:w.message}),this.context.stepTracking.stateTransitions.push({type:"state",url:y,domSnapshot:k||void 0,variables:_,timestamp:F})}throw this.context.stepTracking&&(this.context.stepTracking.currentStepId=void 0),w}}}async extract(e,t,u,r){r&&this.context.stepTracking&&await this.createStepResult(e,r,`Extract ${t} into ${u}`);try{let i=`Extract ${t} and save to ${u}`,a=await this.execute(e,i,r);if(!a.success)throw new Error(`AI extraction failed: ${a.details}`);r&&this.context.stepTracking&&await this.updateStepResult(r,"success",`Extracted ${t} to ${u}`)}catch(i){throw r&&this.context.stepTracking&&await this.updateStepResult(r,"failure",i.message),i}}async getDOMText(e){let t=new Re(this.agentServices.getDomServiceOptions()),u=this.agentServices.getInteractiveClassNames(),r=this.agentServices.getIframeFallbackDomains();return(await t.getClickableElements(e,{interactiveClassNames:u,playwrightFrameFallbackDomains:r})).elementTree.clickableElementsToString()}async captureDOMSnapshot(e){if(!this.context.stepTracking?.captureStateTransitions||!this.context.stepTracking?.captureDom)return null;try{let t=new Re(this.agentServices.getDomServiceOptions()),u=this.agentServices.getInteractiveClassNames(),r=this.agentServices.getIframeFallbackDomains(),i=await t.getClickableElements(e,{interactiveClassNames:u,playwrightFrameFallbackDomains:r,highlightElements:!1,viewportExpansion:0});return{elementTreeText:i.elementTree.clickableElementsToString(),elementCount:i.selectorMap.size,timestamp:Date.now()}}catch(t){return o.warn("Failed to capture DOM snapshot:",t),null}}getConsoleLogsForStep(e){return this.context.stepTracking?.consoleLogs?this.context.stepTracking.consoleLogs.filter(t=>t.stepId===e).map(t=>({type:t.type,message:t.message,timestamp:t.timestamp})):[]}async waitUntilStable(e,t=3e3,u=1e3){return wa(e,t,u)}async waitUntilCondition(e,t,u=60,r){return va(e,t,(i,a,n)=>this.evaluate(i,a,n),u,r)}async uploadFile(e,t,u={},r){return nr(e,t,u,this.context,(i,a,n)=>this.execute(i,a,n),r)}async loginPage(e,t,u){let{LoginType:r}=await import("./agentLogin-TVTERJCC.js");if(o.info("Start login"),S.section("Login Flow"),S.log(`Site URL: ${t.site_url}`),S.log(`Account type: ${t.account.type}`),S.log(`Has cached actions: ${!!u?.cached_actions?.length}`),S.log(`Has validation exprs: ${!!u?.validation_exprs?.length}`),t.skip_verification)return o.info("Skipping login verification (skip_verification=true)"),{success:!0,page:e};if((t.account.type===r.PASSWORD||t.account.type===r.OAUTH2)&&(this.context.variableStore.set("username",t.account.username,!0),this.context.variableStore.set("password",t.account.password,!0)),t.account.two_factor_auth_config?.type==="totp"&&this.context.variableStore.set("otp_secret_key",t.account.two_factor_auth_config.data,!0),o.info(`Navigating to: ${t.site_url}`),await e.goto(t.site_url),await this.waitUntilStable(e,1e4,3e3),u?.validation_exprs&&u.validation_exprs.length>0){if(S.log("Level 1: Checking if already logged in via storage state..."),S.log(`Validation expressions: ${JSON.stringify(u.validation_exprs)}`),await Xt(e,u.validation_exprs))return S.log("Level 1 SUCCESS: Already logged in via storage state"),o.info("Login: Already logged in via storage state"),{success:!0,page:e,storage_state:null,cached_actions:u.cached_actions,validation_exprs:u.validation_exprs,alreadyLoggedIn:!0};S.log("Level 1 FAILED: Storage state validation failed, trying Level 2")}if(u?.cached_actions&&u.cached_actions.length>0&&u?.validation_exprs&&u.validation_exprs.length>0){S.log(`Level 2: Attempting cached login with ${u.cached_actions.length} actions`);try{if((await this.executeCachedLogin(e,u.cached_actions,u.validation_exprs)).success){S.log("Level 2 SUCCESS: Cached login succeeded"),o.info("Login: Cached login succeeded");let a=await e.context().storageState();return{success:!0,page:e,storage_state:a,cached_actions:u.cached_actions,validation_exprs:u.validation_exprs}}S.log("Level 2 FAILED: Cached login failed, trying Level 3")}catch(a){S.log(`Level 2 ERROR: ${a.message}, trying Level 3`)}}else u?.cached_actions&&u.cached_actions.length>0&&S.log("Level 2 SKIPPED: Cached actions exist but no validation expressions, going to Level 3");let i=`First check if the page is already signed in. If it is, do nothing.
125
125
  Use your best judgement to determine if the page is signed in.
126
126
  `;if(t.verification_hint&&(i+=`
127
127
  Signed in verification hint: ${t.verification_hint}
@@ -132,8 +132,8 @@ If the page is not signed in, sign in with the OAuth provider "${a.provider_name
132
132
  ($username, $password), and use $otp_secret_key to generate $otp_code for two-factor authentication. If you can't login with the provided credentials, just stop and report the failure.
133
133
  `}t.additional_prompt&&(i+=`
134
134
  Additional instructions: ${t.additional_prompt}
135
- `);try{k.log("Level 3: Attempting agent-based login"),k.log(`Login prompt:
136
- ${i}`);let a=this.agentServices.knowledgeRetriever,n=!1;this.agentServices.hasKnowledgeRetriever()&&a&&(k.log("Setting up login knowledge retriever..."),this.agentServices.setKnowledgeRetriever(async(x,g,b,v)=>await a(x,g,b,"login")),n=!0,k.log("Login knowledge retriever configured"));let s;try{if(s=await this.run(e,i,"login"),!s.success)return k.log("Level 3 FAILED: Agent login failed"),o.info("Login: Failed"),{success:!1,page:e}}finally{n&&a&&(this.agentServices.setKnowledgeRetriever(a),k.log("Restored original knowledge retriever"))}let c=await e.context().storageState(),l;if(t.num_verification_exprs!==0)try{k.log("Generating validation locators for future login verification...");let x=await qr(e,t.site_url,{verification_hint:t.verification_hint,num_verification_exprs:t.num_verification_exprs},async(g,b)=>this.run(g,b),async g=>this.getDOMText(g));x?(l=x,k.log(`Generated ${l.length} validation locator(s): ${JSON.stringify(l)}`)):k.log("Failed to generate validation locators, login will still succeed")}catch(x){k.log(`Error generating validation locators: ${x.message}`)}else k.log("Skipping validation locator generation (num_verification_exprs=0)");k.log("Level 3 SUCCESS: Agent login succeeded"),o.info("Login: Agent login succeeded");let f=s.actions||[],m=f.length>0?f:u?.cached_actions;return{success:!0,page:e,storage_state:c,cached_actions:m,validation_exprs:l}}catch(a){return k.error(`Agent login failed: ${a.message}`),o.info("Login: Failed"),{success:!1,page:e}}}async executeCachedLogin(e,t,u){let r=(await import("./handler-BAP4TGW6.js")).default,i=new r;for(let a=0;a<t.length;a++){let n=t[a];k.log(`Executing cached action ${a+1}/${t.length}: ${n.action_description||n.action_data?.action_name}`);try{if(!n.action_data){k.log(`Action ${a+1} missing action_data, skipping`);continue}await i.execute(e,n,this.agentServices),await this.waitUntilStable(e,5e3)}catch(s){return k.error(`Cached action ${a+1} failed: ${s.message}`),{success:!1}}}return u&&u.length>0&&!await Yt(e,u)?{success:!1}:{success:!0}}getCompletedExecutionHistory(){if(!this.context.executionHistory||this.context.executionHistory.length===0)return[];let e=this.context.executionHistory[this.context.executionHistory.length-1];return!e[1]||e[1].trim()===""?this.context.executionHistory.slice(0,-1):this.context.executionHistory}addToExecutionHistory(e,t){this.context.executionHistory||(this.context.executionHistory=[]),this.context.executionHistory.push([e,t])}async createStepResult(e,t,u){if(!this.context.stepTracking||this.context.stepTracking.results[t])return;this.context.stepTracking.currentStepId=t,this.context.stepTracking.onStepChange&&this.context.stepTracking.onStepChange(t),e=await this.agentServices.validatePage(e),await this.waitUntilStable(e);let r={description:u,startTime:Date.now(),artifacts:[]};if(this.context.stepTracking.artifactsDir){let i=C.join(this.context.stepTracking.artifactsDir,t.replace(/\./g,"-"));I.mkdirSync(i,{recursive:!0});let a=C.join(i,"screenshot.png");await e.screenshot({type:"png",path:a}),r.screenshot=a}this.context.stepTracking.results[t]=r}saveDebugInfoToFiles(e,t,u){let r={};if(!this.context.stepTracking?.artifactsDir)return o.debug("[saveDebugInfoToFiles] No artifacts directory configured, skipping debug info save"),r;let i=C.join(this.context.stepTracking.artifactsDir,e.replace(/\./g,"-"));try{if(I.mkdirSync(i,{recursive:!0}),t.systemPrompt){let a=C.join(i,"system_prompt.txt");I.writeFileSync(a,t.systemPrompt),r.system_prompt_path=a,o.debug(`[saveDebugInfoToFiles] Saved system prompt to: ${a}`)}if(t.userPrompt)if(typeof t.userPrompt=="string"){let a=C.join(i,"user_prompt.txt");I.writeFileSync(a,t.userPrompt),r.user_prompt_path=a,o.debug(`[saveDebugInfoToFiles] Saved user prompt to: ${a}`)}else{let a=t.userPrompt.map(c=>Array.isArray(c.content)?{...c,content:c.content.map(l=>l.type==="image"&&l.file?.startsWith("data:")?{...l,file:"[base64 image data stripped]"}:l)}:c),n=C.join(i,"messages.json"),s={system:t.systemPrompt,messages:a};I.writeFileSync(n,JSON.stringify(s,null,2)),r.messages_path=n,o.debug(`[saveDebugInfoToFiles] Saved messages to: ${n}`)}if(t.rawLlmResponse){let a=u?u.replace(/[\/\\:]/g,"-"):"llm",n=C.join(i,`${a}_response.txt`);I.writeFileSync(n,t.rawLlmResponse),r.response_path=n,o.debug(`[saveDebugInfoToFiles] Saved LLM response to: ${n}`)}if(t.screenshotWithSom){let a=C.join(i,"screenshot.png");I.writeFileSync(a,Buffer.from(t.screenshotWithSom,"base64")),r.screenshot_path=a,o.debug(`[saveDebugInfoToFiles] Saved SOM screenshot to: ${a}`)}if(t.reasoningContent){let a=C.join(i,"reasoning.txt");I.writeFileSync(a,t.reasoningContent),r.reasoning_path=a,o.debug(`[saveDebugInfoToFiles] Saved reasoning to: ${a}`)}o.debug(`[saveDebugInfoToFiles] Saved ${Object.keys(r).length} artifacts for step ${e}`)}catch(a){o.error(`[saveDebugInfoToFiles] Failed to save debug info for step ${e}:`,a)}return r}async updateStepResult(e,t,u,r,i){if(!this.context.stepTracking)return;let a=this.context.stepTracking.results[e];if(a){if(t&&(a.status=t,this.context.stepTracking.currentStepId=void 0,this.context.stepTracking.onStepChange&&this.context.stepTracking.onStepChange(void 0)),u!==void 0&&(a.message=u),r&&a.artifacts.push(r),i){let n=i.tokenUsages?.[0]?.model,s=this.saveDebugInfoToFiles(e,i,n);Object.keys(s).length>0&&a.artifacts.push(s)}a.duration=Date.now()-a.startTime,this.context.stepTracking.onStepComplete&&this.context.stepTracking.onStepComplete(e,a)}}async writeExecutionResults(e,t){try{if(await I.promises.mkdir(e,{recursive:!0}),this.context.stepTracking?.results&&Object.keys(this.context.stepTracking.results).length>0){let u=C.join(e,"test-results.json");await I.promises.writeFile(u,JSON.stringify(this.context.stepTracking.results,null,2)),o.debug(`Test results written to: ${u}`)}if(t?.tokenUsages&&this.context.tokenUsages&&this.context.tokenUsages.length>0){let u=C.join(e,"token-usages.json");await I.promises.writeFile(u,JSON.stringify(this.context.tokenUsages,null,2)),o.debug(`Token usages written to: ${u}`)}if(this.context.aiActionDetails&&this.context.aiActionDetails.length>0){let u=C.join(e,"ai-actions.json");await I.promises.writeFile(u,JSON.stringify(this.context.aiActionDetails,null,2)),o.debug(`AI action details written to: ${u}`)}}catch(u){throw o.error("Failed to write execution results:",u),u}}};function N0(){let e=new Date,t=new Intl.DateTimeFormat("en-US",{timeZone:"America/Los_Angeles",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1}).formatToParts(e),u=t.find(w=>w.type==="year").value,r=t.find(w=>w.type==="month").value,i=t.find(w=>w.type==="day").value,a=t.find(w=>w.type==="hour").value,n=t.find(w=>w.type==="minute").value,s=t.find(w=>w.type==="second").value,c=String(e.getMilliseconds()).padStart(3,"0"),l=`${u}-${r}-${i}T${a}:${n}:${s}.${c}`,f=e.toISOString().slice(0,-1),m=Date.parse(l+"Z"),x=Date.parse(f+"Z"),g=Math.round((x-m)/(1e3*60)),b=String(Math.floor(Math.abs(g)/60)).padStart(2,"0"),v=String(Math.abs(g)%60).padStart(2,"0"),y=g<=0?"+":"-";return`${u}-${r}-${i}T${a}:${n}:${s}.${c}${y}${b}:${v}`}function an(e){let t=e.variableStore;return t.has("currentTime")||t.set("currentTime",N0()),{model:e.model,variableStore:t,organizationId:e.organizationId,organizationSettings:e.organizationSettings,executionHistory:e.executionHistory||[],testDataDir:e.testDataDir,downloadDir:e.downloadDir,useNativeGenerator:e.useNativeGenerator,autoDisableModal:e.autoDisableModal,tokenUsages:[],aiActionDetails:[]}}function w1(e){let t=new Rr,u=new Set(e.sensitiveKeys||[]);if(e.variables)for(let[i,a]of Object.entries(e.variables))t.set(i,a,u.has(i));let r=an({model:e.model,variableStore:t,testDataDir:e.testDataDir,downloadDir:e.downloadDir});return new rn(r)}var y1="1.0.0";export{Hr as a,sn as b,on as c,cn as d,ln as e,r0 as f,i0 as g,a0 as h,n0 as i,s0 as j,o0 as k,c0 as l,f0 as m,h0 as n,Ju as o,un as p,Yu as q,rn as r,an as s,w1 as t,y1 as u};
135
+ `);try{S.log("Level 3: Attempting agent-based login"),S.log(`Login prompt:
136
+ ${i}`);let a=this.agentServices.knowledgeRetriever,n=!1;this.agentServices.hasKnowledgeRetriever()&&a&&(S.log("Setting up login knowledge retriever..."),this.agentServices.setKnowledgeRetriever(async(x,h,g,v)=>await a(x,h,g,"login")),n=!0,S.log("Login knowledge retriever configured"));let s;try{if(s=await this.run(e,i,"login"),!s.success)return S.log("Level 3 FAILED: Agent login failed"),o.info("Login: Failed"),{success:!1,page:e}}finally{n&&a&&(this.agentServices.setKnowledgeRetriever(a),S.log("Restored original knowledge retriever"))}let c=await e.context().storageState(),l;if(t.num_verification_exprs!==0)try{S.log("Generating validation locators for future login verification...");let x=await Mr(e,t.site_url,{verification_hint:t.verification_hint,num_verification_exprs:t.num_verification_exprs},async(h,g)=>this.run(h,g),async h=>this.getDOMText(h));x?(l=x,S.log(`Generated ${l.length} validation locator(s): ${JSON.stringify(l)}`)):S.log("Failed to generate validation locators, login will still succeed")}catch(x){S.log(`Error generating validation locators: ${x.message}`)}else S.log("Skipping validation locator generation (num_verification_exprs=0)");S.log("Level 3 SUCCESS: Agent login succeeded"),o.info("Login: Agent login succeeded");let f=s.actions||[],b=f.length>0?f:u?.cached_actions;return{success:!0,page:e,storage_state:c,cached_actions:b,validation_exprs:l}}catch(a){return S.error(`Agent login failed: ${a.message}`),o.info("Login: Failed"),{success:!1,page:e}}}async executeCachedLogin(e,t,u){let r=(await import("./handler-J6CCKSPE.js")).default,i=new r;for(let a=0;a<t.length;a++){let n=t[a];S.log(`Executing cached action ${a+1}/${t.length}: ${n.action_description||n.action_data?.action_name}`);try{if(!n.action_data){S.log(`Action ${a+1} missing action_data, skipping`);continue}await i.execute(e,n,this.agentServices),await this.waitUntilStable(e,5e3)}catch(s){return S.error(`Cached action ${a+1} failed: ${s.message}`),{success:!1}}}return u&&u.length>0&&!await Xt(e,u)?{success:!1}:{success:!0}}getCompletedExecutionHistory(){if(!this.context.executionHistory||this.context.executionHistory.length===0)return[];let e=this.context.executionHistory[this.context.executionHistory.length-1];return!e[1]||e[1].trim()===""?this.context.executionHistory.slice(0,-1):this.context.executionHistory}addToExecutionHistory(e,t){this.context.executionHistory||(this.context.executionHistory=[]),this.context.executionHistory.push([e,t])}async createStepResult(e,t,u){if(!this.context.stepTracking||this.context.stepTracking.results[t])return;this.context.stepTracking.currentStepId=t,this.context.stepTracking.onStepChange&&this.context.stepTracking.onStepChange(t),e=this.agentServices.validatePage(e),await this.waitUntilStable(e);let r={description:u,startTime:Date.now(),artifacts:[]};if(this.context.stepTracking.artifactsDir){let i=C.join(this.context.stepTracking.artifactsDir,t.replace(/\./g,"-"));N.mkdirSync(i,{recursive:!0});let a=C.join(i,"screenshot.png");e=this.agentServices.validatePage(e),await e.screenshot({type:"png",path:a}),r.screenshot=a}this.context.stepTracking.results[t]=r}saveDebugInfoToFiles(e,t,u){let r={};if(!this.context.stepTracking?.artifactsDir)return o.debug("[saveDebugInfoToFiles] No artifacts directory configured, skipping debug info save"),r;let i=C.join(this.context.stepTracking.artifactsDir,e.replace(/\./g,"-"));try{if(N.mkdirSync(i,{recursive:!0}),t.systemPrompt){let a=C.join(i,"system_prompt.txt");N.writeFileSync(a,t.systemPrompt),r.system_prompt_path=a,o.debug(`[saveDebugInfoToFiles] Saved system prompt to: ${a}`)}if(t.userPrompt)if(typeof t.userPrompt=="string"){let a=C.join(i,"user_prompt.txt");N.writeFileSync(a,t.userPrompt),r.user_prompt_path=a,o.debug(`[saveDebugInfoToFiles] Saved user prompt to: ${a}`)}else{let a=t.userPrompt.map(c=>Array.isArray(c.content)?{...c,content:c.content.map(l=>l.type==="image"&&l.file?.startsWith("data:")?{...l,file:"[base64 image data stripped]"}:l)}:c),n=C.join(i,"messages.json"),s={system:t.systemPrompt,messages:a};N.writeFileSync(n,JSON.stringify(s,null,2)),r.messages_path=n,o.debug(`[saveDebugInfoToFiles] Saved messages to: ${n}`)}if(t.rawLlmResponse){let a=u?u.replace(/[\/\\:]/g,"-"):"llm",n=C.join(i,`${a}_response.txt`);N.writeFileSync(n,t.rawLlmResponse),r.response_path=n,o.debug(`[saveDebugInfoToFiles] Saved LLM response to: ${n}`)}if(t.screenshotWithSom){let a=C.join(i,"screenshot.png");N.writeFileSync(a,Buffer.from(t.screenshotWithSom,"base64")),r.screenshot_path=a,o.debug(`[saveDebugInfoToFiles] Saved SOM screenshot to: ${a}`)}if(t.reasoningContent){let a=C.join(i,"reasoning.txt");N.writeFileSync(a,t.reasoningContent),r.reasoning_path=a,o.debug(`[saveDebugInfoToFiles] Saved reasoning to: ${a}`)}o.debug(`[saveDebugInfoToFiles] Saved ${Object.keys(r).length} artifacts for step ${e}`)}catch(a){o.error(`[saveDebugInfoToFiles] Failed to save debug info for step ${e}:`,a)}return r}async updateStepResult(e,t,u,r,i){if(!this.context.stepTracking)return;let a=this.context.stepTracking.results[e];if(a){if(t&&(a.status=t,this.context.stepTracking.currentStepId=void 0,this.context.stepTracking.onStepChange&&this.context.stepTracking.onStepChange(void 0)),u!==void 0&&(a.message=u),r&&a.artifacts.push(r),i){let n=i.tokenUsages?.[0]?.model,s=this.saveDebugInfoToFiles(e,i,n);Object.keys(s).length>0&&a.artifacts.push(s)}a.duration=Date.now()-a.startTime,this.context.stepTracking.onStepComplete&&this.context.stepTracking.onStepComplete(e,a)}}async writeExecutionResults(e,t){try{if(await N.promises.mkdir(e,{recursive:!0}),this.context.stepTracking?.results&&Object.keys(this.context.stepTracking.results).length>0){let u=C.join(e,"test-results.json");await N.promises.writeFile(u,JSON.stringify(this.context.stepTracking.results,null,2)),o.debug(`Test results written to: ${u}`)}if(t?.tokenUsages&&this.context.tokenUsages&&this.context.tokenUsages.length>0){let u=C.join(e,"token-usages.json");await N.promises.writeFile(u,JSON.stringify(this.context.tokenUsages,null,2)),o.debug(`Token usages written to: ${u}`)}if(this.context.aiActionDetails&&this.context.aiActionDetails.length>0){let u=C.join(e,"ai-actions.json");await N.promises.writeFile(u,JSON.stringify(this.context.aiActionDetails,null,2)),o.debug(`AI action details written to: ${u}`)}}catch(u){throw o.error("Failed to write execution results:",u),u}}};var nn=class extends Xu{constructor(e){super(e)}async login(e,t,u,r){let{LoginType:i}=await import("./agentLogin-TVTERJCC.js"),{TwoFactorAuthType:a}=await import("./dist-3HGFS7M3-T7FMZHX4.js"),n=e.url()||"about:blank";if(!(await this.loginPage(e,{site_url:n,num_verification_exprs:0,account:{type:i.PASSWORD,username:t,password:u,...r&&{two_factor_auth_config:{type:a.TOTP,data:r}}}})).success)throw new Error("Login failed")}};function C0(e){let t=new qr,u=new Set(e.sensitiveKeys||[]);if(e.variables)for(let[i,a]of Object.entries(e.variables))t.set(i,a,u.has(i));let r=ga({model:e.model,variableStore:t,testDataDir:e.testDataDir,downloadDir:e.downloadDir});return new nn(r)}async function A1(e,t,u,r){let{configureSdk:i,getSdkConfig:a}=await import("./config-BUSI76YU.js"),{resolveModelFromEnv:n}=await import("./dist-3HGFS7M3-T7FMZHX4.js");a().env||i({env:{GOOGLE_API_KEY:process.env.GOOGLE_API_KEY??"",ANTHROPIC_API_KEY:process.env.ANTHROPIC_API_KEY??""}});let s=n(process.env);if(!s)throw new Error("No AI model configured. Set WEB_AGENT_MODEL, ANTHROPIC_API_KEY, or GOOGLE_API_KEY.");await C0({model:s}).login(e,t,u,r)}var _1="1.0.0";export{on as a,Ur as b,cn as c,ln as d,dn as e,i0 as f,a0 as g,n0 as h,s0 as i,o0 as j,c0 as k,l0 as l,p0 as m,m0 as n,ga as o,ba as p,Du as q,Yu as r,Xu as s,nn as t,C0 as u,A1 as v,_1 as w};
137
137
  /*! Bundled license information:
138
138
 
139
139
  @otplib/plugin-crypto/index.js: