@limetech/lime-elements 39.44.4 → 39.44.6

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 (61) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/cjs/{keycodes-B75-uKOK.js → keycodes-k-EdzcMX.js} +4 -0
  3. package/dist/cjs/lime-elements.cjs.js +1 -1
  4. package/dist/cjs/limel-breadcrumbs_8.cjs.entry.js +20 -1
  5. package/dist/cjs/limel-chip-set.cjs.entry.js +1 -1
  6. package/dist/cjs/limel-chip_2.cjs.entry.js +1 -1
  7. package/dist/cjs/limel-file-viewer.cjs.entry.js +84 -8
  8. package/dist/cjs/limel-markdown.cjs.entry.js +2 -2
  9. package/dist/cjs/limel-picker.cjs.entry.js +1 -1
  10. package/dist/cjs/limel-popover_2.cjs.entry.js +1 -1
  11. package/dist/cjs/limel-prosemirror-adapter.cjs.entry.js +1 -1
  12. package/dist/cjs/limel-select.cjs.entry.js +377 -13
  13. package/dist/cjs/limel-text-editor-link-menu.cjs.entry.js +1 -1
  14. package/dist/cjs/loader.cjs.js +1 -1
  15. package/dist/cjs/{markdown-parser-F3YRMjcy.js → markdown-parser-ChnRAxpZ.js} +22 -6
  16. package/dist/collection/components/list/list.js +19 -0
  17. package/dist/collection/components/markdown/markdown-parser.js +5 -0
  18. package/dist/collection/components/markdown/markdown.js +2 -1
  19. package/dist/collection/components/markdown/sanitize-style.js +17 -6
  20. package/dist/collection/components/select/select.js +215 -12
  21. package/dist/collection/components/select/select.template.js +17 -3
  22. package/dist/collection/util/keycodes.js +3 -0
  23. package/dist/collection/util/typeahead.js +159 -0
  24. package/dist/esm/{keycodes-rI0IeKpx.js → keycodes-C4_9qUMP.js} +4 -1
  25. package/dist/esm/lime-elements.js +1 -1
  26. package/dist/esm/limel-breadcrumbs_8.entry.js +20 -1
  27. package/dist/esm/limel-chip-set.entry.js +1 -1
  28. package/dist/esm/limel-chip_2.entry.js +1 -1
  29. package/dist/esm/limel-file-viewer.entry.js +84 -8
  30. package/dist/esm/limel-markdown.entry.js +2 -2
  31. package/dist/esm/limel-picker.entry.js +1 -1
  32. package/dist/esm/limel-popover_2.entry.js +1 -1
  33. package/dist/esm/limel-prosemirror-adapter.entry.js +1 -1
  34. package/dist/esm/limel-select.entry.js +378 -14
  35. package/dist/esm/limel-text-editor-link-menu.entry.js +1 -1
  36. package/dist/esm/loader.js +1 -1
  37. package/dist/esm/{markdown-parser-Blt6ZFY0.js → markdown-parser-BSQKleVw.js} +22 -6
  38. package/dist/lime-elements/lime-elements.esm.js +1 -1
  39. package/dist/lime-elements/{p-a089b580.entry.js → p-03fd2181.entry.js} +1 -1
  40. package/dist/lime-elements/{p-fc43fb46.entry.js → p-12fe8fe1.entry.js} +6 -6
  41. package/dist/lime-elements/{p-bf3c78a8.entry.js → p-2b01c1f2.entry.js} +1 -1
  42. package/dist/lime-elements/{p-758939be.entry.js → p-2e5d5e79.entry.js} +1 -1
  43. package/dist/lime-elements/{p-224e80b5.entry.js → p-3ea159fd.entry.js} +1 -1
  44. package/dist/lime-elements/{p-4512a7b1.entry.js → p-845cfda7.entry.js} +1 -1
  45. package/dist/lime-elements/p-9152d7e1.entry.js +23 -0
  46. package/dist/lime-elements/{p-1e3cdfa1.entry.js → p-9a04a686.entry.js} +1 -1
  47. package/dist/lime-elements/{p-DnPeu2SH.js → p-B0qhUema.js} +1 -1
  48. package/dist/lime-elements/p-C4_9qUMP.js +1 -0
  49. package/dist/lime-elements/{p-6fbf20c6.entry.js → p-e8df7a2e.entry.js} +1 -1
  50. package/dist/lime-elements/p-f51b5651.entry.js +1 -0
  51. package/dist/types/components/markdown/markdown.d.ts +1 -0
  52. package/dist/types/components/markdown/sanitize-style.d.ts +9 -5
  53. package/dist/types/components/select/select.d.ts +76 -1
  54. package/dist/types/components/select/select.template.d.ts +21 -1
  55. package/dist/types/components.d.ts +40 -0
  56. package/dist/types/util/keycodes.d.ts +3 -0
  57. package/dist/types/util/typeahead.d.ts +101 -0
  58. package/package.json +3 -3
  59. package/dist/lime-elements/p-552d0733.entry.js +0 -1
  60. package/dist/lime-elements/p-8f4273e4.entry.js +0 -23
  61. package/dist/lime-elements/p-rI0IeKpx.js +0 -1
@@ -0,0 +1 @@
1
+ import{r as e,c as t,h as r,F as i,a as s}from"./p-BGxJfR2f.js";import{t as a}from"./p-Cb9R_zmF.js";import{d as o,u as n,r as l,a as c,v as u,b as h}from"./p-DMNtoJ8I.js";import{I as p}from"./p-Dpg0OkbJ.js";import"./p-B85MJLTf.js";function d(e,t){const r=e||t;return r&&{pdf:"pdf",jpg:"image",jpeg:"image",heic:"image",bmp:"image",png:"image",gif:"image",svg:"image",svgz:"image",ep:"image",eps:"image",avi:"video",flv:"video",h264:"video",mov:"video",mp4:"video",mwv:"video",mkv:"video",mp3:"audio",wav:"audio",wma:"audio",ogg:"audio",txt:"text",json:"text",html:"text",xml:"text",eml:"email",doc:"office",docx:"office",odt:"office",dot:"office",dotx:"office",docm:"office",dotm:"office",pot:"office",ppt:"office",pptx:"office",odp:"office",potx:"office",potm:"office",pps:"office",ppsx:"office",ppsm:"office",pptm:"office",ppam:"office",pages:"office",xls:"office",xlsx:"office",xlsm:"office",xlsb:"office",ods:"office",csv:"office",numbers:"office"}[r.split(".").pop().toLowerCase()]||"unknown"}class f{constructor(e){this.requestFullscreen=()=>{this.enter&&this.enter()},this.exitFullscreen=()=>{this.exit&&this.exit.bind(window.document)()},this.toggle=()=>{const e=window.document;e.fullscreenElement||e.mozFullScreenElement||e.webkitFullscreenElement||e.msFullscreenElement?this.exitFullscreen():this.requestFullscreen()},this.enter=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.enter&&(this.enter=this.enter.bind(e));const t=window.document;this.exit=t.exitFullscreen||t.msExitFullscreen||t.mozCancelFullScreen||t.webkitExitFullscreen}isSupported(){return!!this.enter}}const m=new TextEncoder,g=new Uint8Array(256);for(let e=0;e<64;e++)g["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charCodeAt(e)]=e;function b(e){let t=3*Math.ceil(e.length/4);const r=e.length;let i=0;e.length%4==3?t--:e.length%4==2?t-=2:"="===e[e.length-1]&&(t--,"="===e[e.length-2]&&t--);const s=new ArrayBuffer(t),a=new Uint8Array(s);for(let t=0;t<r;t+=4){let r=g[e.charCodeAt(t)],s=g[e.charCodeAt(t+1)],o=g[e.charCodeAt(t+2)],n=g[e.charCodeAt(t+3)];a[i++]=r<<2|s>>4,a[i++]=(15&s)<<4|o>>2,a[i++]=(3&o)<<6|63&n}return s}const v=new Map([["iso-8859-8-i","iso-8859-8"],["iso-8859-8-e","iso-8859-8"]]);function w(e){let t;e=(e||"utf8").trim().toLowerCase(),e=v.get(e)||e;try{t=new TextDecoder(e)}catch(e){t=new TextDecoder("windows-1252")}return t}async function y(e){if("arrayBuffer"in e)return await e.arrayBuffer();const t=new FileReader;return new Promise(((r,i)=>{t.onload=function(e){r(e.target.result)},t.onerror=function(){i(t.error)},t.readAsArrayBuffer(e)}))}function q(e){return(e>=48&&e<=57||e>=97&&e<=102||e>=65&&e<=70)&&String.fromCharCode(e)}function x(e,t,r){let i,s=e.indexOf("*");if(s>=0&&(e=e.substr(0,s)),"Q"===(t=t.toUpperCase())){r=r.replace(/=\s+([0-9a-fA-F])/g,"=$1").replace(/[_\s]/g," ");let e=m.encode(r),t=[];for(let r=0,i=e.length;r<i;r++){let s=e[r];if(r<=i-2&&61===s){let i=q(e[r+1]),s=q(e[r+2]);if(i&&s){let e=parseInt(i+s,16);t.push(e),r+=2;continue}}t.push(s)}i=new ArrayBuffer(t.length);let s=new DataView(i);for(let e=0,r=t.length;e<r;e++)s.setUint8(e,t[e])}else i="B"===t?b(r.replace(/[^a-zA-Z0-9\+\/=]+/g,"")):m.encode(r);return w(e).decode(i)}function k(e){let t=!0;for(;;){let r=(e||"").toString().replace(/(=\?([^?]+)\?[Bb]\?([^?]*)\?=)\s*(?==\?([^?]+)\?[Bb]\?[^?]*\?=)/g,((e,r,i,s,a)=>t?i!==a||s.length%4!=0||/=$/.test(s)?e:r+"__\0JOIN\0__":e)).replace(/(=\?([^?]+)\?[Qq]\?[^?]*\?=)\s*(?==\?([^?]+)\?[Qq]\?[^?]*\?=)/g,((e,r,i,s)=>t&&i===s?r+"__\0JOIN\0__":e)).replace(/(\?=)?__\x00JOIN\x00__(=\?([^?]+)\?[QqBb]\?)?/g,"").replace(/(=\?[^?]+\?[QqBb]\?[^?]*\?=)\s+(?==\?[^?]+\?[QqBb]\?[^?]*\?=)/g,"$1").replace(/=\?([\w_\-*]+)\?([QqBb])\?([^?]*)\?=/g,((e,t,r,i)=>x(t,r,i)));if(!(t&&r.indexOf("�")>=0))return r;t=!1}}class D{constructor(){this.chunks=[]}update(e){this.chunks.push(e),this.chunks.push("\n")}finalize(){return y(new Blob(this.chunks,{type:"application/octet-stream"}))}}class E{constructor(e){this.decoder=(e=e||{}).decoder||new TextDecoder,this.maxChunkSize=102400,this.chunks=[],this.remainder=""}update(e){let t=this.decoder.decode(e);if(t=t.replace(/[^a-zA-Z0-9+\/]+/g,""),this.remainder+=t,this.remainder.length>=this.maxChunkSize){let e,t=4*Math.floor(this.remainder.length/4);t===this.remainder.length?(e=this.remainder,this.remainder=""):(e=this.remainder.substr(0,t),this.remainder=this.remainder.substr(t)),e.length&&this.chunks.push(b(e))}}finalize(){return this.remainder&&!/^=+$/.test(this.remainder)&&this.chunks.push(b(this.remainder)),y(new Blob(this.chunks,{type:"application/octet-stream"}))}}const A=/^=[a-f0-9]{2}$/i,L=/(?==[a-f0-9]{2})/i,S=/=\r?\n/g,T=/=[a-fA-F0-9]?$/;class N{constructor(e){this.decoder=(e=e||{}).decoder||new TextDecoder,this.maxChunkSize=102400,this.remainder="",this.chunks=[]}decodeQPBytes(e){let t=new ArrayBuffer(e.length),r=new DataView(t);for(let t=0,i=e.length;t<i;t++)r.setUint8(t,parseInt(e[t],16));return t}decodeChunks(e){let t=(e=e.replace(S,"")).split(L),r=[];for(let e of t)if("="===e.charAt(0))if(3!==e.length){if(e.length>3){const t=e.substr(0,3);A.test(t)?(r.push(e.substr(1,2)),this.chunks.push(this.decodeQPBytes(r)),r=[],e=e.substr(3),this.chunks.push(e)):(r.length&&(this.chunks.push(this.decodeQPBytes(r)),r=[]),this.chunks.push(e))}}else A.test(e)?r.push(e.substr(1)):(r.length&&(this.chunks.push(this.decodeQPBytes(r)),r=[]),this.chunks.push(e));else r.length&&(this.chunks.push(this.decodeQPBytes(r)),r=[]),this.chunks.push(e);r.length&&this.chunks.push(this.decodeQPBytes(r))}update(e){let t=this.decoder.decode(e)+"\n";if(t=this.remainder+t,t.length<this.maxChunkSize)return void(this.remainder=t);this.remainder="";let r=t.match(T);if(r){if(0===r.index)return void(this.remainder=t);this.remainder=t.substr(r.index),t=t.substr(0,r.index)}this.decodeChunks(t)}finalize(){return this.remainder.length&&(this.decodeChunks(this.remainder),this.remainder=""),y(new Blob(this.chunks,{type:"application/octet-stream"}))}}const R=w();class U{constructor(e){if(this.options=e||{},this.postalMime=this.options.postalMime,this.root=!!this.options.parentNode,this.childNodes=[],this.options.parentNode){if(this.parentNode=this.options.parentNode,this.depth=this.parentNode.depth+1,this.depth>this.options.maxNestingDepth)throw new Error(`Maximum MIME nesting depth of ${this.options.maxNestingDepth} levels exceeded`);this.options.parentNode.childNodes.push(this)}else this.depth=0;this.state="header",this.headerLines=[],this.headerSize=0,this.contentType={value:"digest"===(this.options.parentMultipartType||null)?"message/rfc822":"text/plain",default:!0},this.contentTransferEncoding={value:"8bit"},this.contentDisposition={value:""},this.headers=[],this.contentDecoder=!1}setupContentDecoder(e){this.contentDecoder=/base64/i.test(e)?new E:/quoted-printable/i.test(e)?new N({decoder:w(this.contentType.parsed.params.charset)}):new D}async finalize(){if("finished"===this.state)return;"header"===this.state&&this.processHeaders();let e=this.postalMime.boundaries;for(let t=e.length-1;t>=0;t--)if(e[t].node===this){e.splice(t,1);break}await this.finalizeChildNodes(),this.content=this.contentDecoder?await this.contentDecoder.finalize():null,this.contentDecoder=!1,this.state="finished"}async finalizeChildNodes(){for(let e of this.childNodes)await e.finalize()}stripComments(e){let t="",r=0,i=!1,s=!1;for(let a=0;a<e.length;a++){const o=e.charAt(a);if(i)0===r&&(t+=o),i=!1;else if("\\"!==o)if('"'!==o||0!==r){if(!s){if("("===o){r++;continue}if(")"===o&&r>0){r--;continue}}0===r&&(t+=o)}else s=!s,t+=o;else i=!0,0===r&&(t+=o)}return t}parseStructuredHeader(e){let t,r={value:!1,params:{}},i=!1,s="",a="value",o=!1,n=!1;for(let l=0,c=(e=this.stripComments(e)).length;l<c;l++)switch(t=e.charAt(l),a){case"key":if("="===t){i=s.trim().toLowerCase(),a="value",s="";break}s+=t;break;case"value":if(n)s+=t;else{if("\\"===t){n=!0;continue}o&&t===o?o=!1:o||'"'!==t?o||";"!==t?s+=t:(!1===i?r.value=s.trim():r.params[i]=s.trim(),a="key",s=""):o=t}n=!1}return s=s.trim(),"value"===a?!1===i?r.value=s:r.params[i]=s:s&&(r.params[s.toLowerCase()]=""),r.value&&(r.value=r.value.toLowerCase()),function(e){let t=new Map;Object.keys(e.params).forEach((r=>{let i=r.match(/\*((\d+)\*?)?$/);if(!i)return;let s,a=r.substr(0,i.index).toLowerCase(),o=Number(i[2])||0;t.has(a)?s=t.get(a):(s={charset:!1,values:[]},t.set(a,s));let n=e.params[r];0===o&&"*"===i[0].charAt(i[0].length-1)&&(i=n.match(/^([^']*)'[^']*'(.*)$/))&&(s.charset=i[1]||"utf-8",n=i[2]),s.values.push({nr:o,value:n}),delete e.params[r]})),t.forEach(((t,r)=>{e.params[r]=function(e,t){t=t||"utf-8";let r=[];for(let t=0;t<e.length;t++){let i=e.charAt(t);if("%"===i&&/^[a-f0-9]{2}/i.test(e.substr(t+1,2))){let i=e.substr(t+1,2);t+=2,r.push(parseInt(i,16))}else if(i.charCodeAt(0)>126){i=m.encode(i);for(let e=0;e<i.length;e++)r.push(i[e])}else r.push(i.charCodeAt(0))}const i=new ArrayBuffer(r.length),s=new DataView(i);for(let e=0,t=r.length;e<t;e++)s.setUint8(e,r[e]);return w(t).decode(i)}(t.values.sort(((e,t)=>e.nr-t.nr)).map((e=>e.value)).join(""),t.charset)}))}(r),r}decodeFlowedText(e,t){return e.split(/\r?\n/).reduce(((e,r)=>e.endsWith(" ")&&"-- "!==e&&!e.endsWith("\n-- ")?t?e.slice(0,-1)+r:e+r:e+"\n"+r)).replace(/^ /gm,"")}getTextContent(){if(!this.content)return"";let e=w(this.contentType.parsed.params.charset).decode(this.content);return/^flowed$/i.test(this.contentType.parsed.params.format)&&(e=this.decodeFlowedText(e,/^yes$/i.test(this.contentType.parsed.params.delsp))),e}processHeaders(){for(let e=this.headerLines.length-1;e>=0;e--){let t=this.headerLines[e];e&&/^\s/.test(t)&&(this.headerLines[e-1]+="\n"+t,this.headerLines.splice(e,1))}this.rawHeaderLines=[];for(let e=this.headerLines.length-1;e>=0;e--){let t=this.headerLines[e],r=t.indexOf(":"),i=r<0?t.trim():t.substr(0,r).trim();this.rawHeaderLines.push({key:i.toLowerCase(),line:t});let s=t.replace(/\s+/g," ");r=s.indexOf(":");let a=r<0?s.trim():s.substr(0,r).trim(),o=r<0?"":s.substr(r+1).trim();switch(this.headers.push({key:a.toLowerCase(),originalKey:a,value:o}),a.toLowerCase()){case"content-type":this.contentType.default&&(this.contentType={value:o,parsed:{}});break;case"content-transfer-encoding":this.contentTransferEncoding={value:o,parsed:{}};break;case"content-disposition":this.contentDisposition={value:o,parsed:{}};break;case"content-id":this.contentId=o;break;case"content-description":this.contentDescription=o}}this.contentType.parsed=this.parseStructuredHeader(this.contentType.value),this.contentType.multipart=!!/^multipart\//i.test(this.contentType.parsed.value)&&this.contentType.parsed.value.substr(this.contentType.parsed.value.indexOf("/")+1),this.contentType.multipart&&this.contentType.parsed.params.boundary&&this.postalMime.boundaries.push({value:m.encode(this.contentType.parsed.params.boundary),node:this}),this.contentDisposition.parsed=this.parseStructuredHeader(this.contentDisposition.value),this.contentTransferEncoding.encoding=this.contentTransferEncoding.value.toLowerCase().split(/[^\w-]/).shift(),this.setupContentDecoder(this.contentTransferEncoding.encoding)}feed(e){switch(this.state){case"header":if(!e.length)return this.state="body",this.processHeaders();if(this.headerSize+=e.length,this.headerSize>this.options.maxHeadersSize)throw new Error(`Maximum header size of ${this.options.maxHeadersSize} bytes exceeded`);this.headerLines.push(R.decode(e));break;case"body":this.contentDecoder.update(e)}}}const B={"&AElig":"Æ","&AElig;":"Æ","&AMP":"&","&AMP;":"&","&Aacute":"Á","&Aacute;":"Á","&Abreve;":"Ă","&Acirc":"Â","&Acirc;":"Â","&Acy;":"А","&Afr;":"𝔄","&Agrave":"À","&Agrave;":"À","&Alpha;":"Α","&Amacr;":"Ā","&And;":"⩓","&Aogon;":"Ą","&Aopf;":"𝔸","&ApplyFunction;":"⁡","&Aring":"Å","&Aring;":"Å","&Ascr;":"𝒜","&Assign;":"≔","&Atilde":"Ã","&Atilde;":"Ã","&Auml":"Ä","&Auml;":"Ä","&Backslash;":"∖","&Barv;":"⫧","&Barwed;":"⌆","&Bcy;":"Б","&Because;":"∵","&Bernoullis;":"ℬ","&Beta;":"Β","&Bfr;":"𝔅","&Bopf;":"𝔹","&Breve;":"˘","&Bscr;":"ℬ","&Bumpeq;":"≎","&CHcy;":"Ч","&COPY":"©","&COPY;":"©","&Cacute;":"Ć","&Cap;":"⋒","&CapitalDifferentialD;":"ⅅ","&Cayleys;":"ℭ","&Ccaron;":"Č","&Ccedil":"Ç","&Ccedil;":"Ç","&Ccirc;":"Ĉ","&Cconint;":"∰","&Cdot;":"Ċ","&Cedilla;":"¸","&CenterDot;":"·","&Cfr;":"ℭ","&Chi;":"Χ","&CircleDot;":"⊙","&CircleMinus;":"⊖","&CirclePlus;":"⊕","&CircleTimes;":"⊗","&ClockwiseContourIntegral;":"∲","&CloseCurlyDoubleQuote;":"”","&CloseCurlyQuote;":"’","&Colon;":"∷","&Colone;":"⩴","&Congruent;":"≡","&Conint;":"∯","&ContourIntegral;":"∮","&Copf;":"ℂ","&Coproduct;":"∐","&CounterClockwiseContourIntegral;":"∳","&Cross;":"⨯","&Cscr;":"𝒞","&Cup;":"⋓","&CupCap;":"≍","&DD;":"ⅅ","&DDotrahd;":"⤑","&DJcy;":"Ђ","&DScy;":"Ѕ","&DZcy;":"Џ","&Dagger;":"‡","&Darr;":"↡","&Dashv;":"⫤","&Dcaron;":"Ď","&Dcy;":"Д","&Del;":"∇","&Delta;":"Δ","&Dfr;":"𝔇","&DiacriticalAcute;":"´","&DiacriticalDot;":"˙","&DiacriticalDoubleAcute;":"˝","&DiacriticalGrave;":"`","&DiacriticalTilde;":"˜","&Diamond;":"⋄","&DifferentialD;":"ⅆ","&Dopf;":"𝔻","&Dot;":"¨","&DotDot;":"⃜","&DotEqual;":"≐","&DoubleContourIntegral;":"∯","&DoubleDot;":"¨","&DoubleDownArrow;":"⇓","&DoubleLeftArrow;":"⇐","&DoubleLeftRightArrow;":"⇔","&DoubleLeftTee;":"⫤","&DoubleLongLeftArrow;":"⟸","&DoubleLongLeftRightArrow;":"⟺","&DoubleLongRightArrow;":"⟹","&DoubleRightArrow;":"⇒","&DoubleRightTee;":"⊨","&DoubleUpArrow;":"⇑","&DoubleUpDownArrow;":"⇕","&DoubleVerticalBar;":"∥","&DownArrow;":"↓","&DownArrowBar;":"⤓","&DownArrowUpArrow;":"⇵","&DownBreve;":"̑","&DownLeftRightVector;":"⥐","&DownLeftTeeVector;":"⥞","&DownLeftVector;":"↽","&DownLeftVectorBar;":"⥖","&DownRightTeeVector;":"⥟","&DownRightVector;":"⇁","&DownRightVectorBar;":"⥗","&DownTee;":"⊤","&DownTeeArrow;":"↧","&Downarrow;":"⇓","&Dscr;":"𝒟","&Dstrok;":"Đ","&ENG;":"Ŋ","&ETH":"Ð","&ETH;":"Ð","&Eacute":"É","&Eacute;":"É","&Ecaron;":"Ě","&Ecirc":"Ê","&Ecirc;":"Ê","&Ecy;":"Э","&Edot;":"Ė","&Efr;":"𝔈","&Egrave":"È","&Egrave;":"È","&Element;":"∈","&Emacr;":"Ē","&EmptySmallSquare;":"◻","&EmptyVerySmallSquare;":"▫","&Eogon;":"Ę","&Eopf;":"𝔼","&Epsilon;":"Ε","&Equal;":"⩵","&EqualTilde;":"≂","&Equilibrium;":"⇌","&Escr;":"ℰ","&Esim;":"⩳","&Eta;":"Η","&Euml":"Ë","&Euml;":"Ë","&Exists;":"∃","&ExponentialE;":"ⅇ","&Fcy;":"Ф","&Ffr;":"𝔉","&FilledSmallSquare;":"◼","&FilledVerySmallSquare;":"▪","&Fopf;":"𝔽","&ForAll;":"∀","&Fouriertrf;":"ℱ","&Fscr;":"ℱ","&GJcy;":"Ѓ","&GT":">","&GT;":">","&Gamma;":"Γ","&Gammad;":"Ϝ","&Gbreve;":"Ğ","&Gcedil;":"Ģ","&Gcirc;":"Ĝ","&Gcy;":"Г","&Gdot;":"Ġ","&Gfr;":"𝔊","&Gg;":"⋙","&Gopf;":"𝔾","&GreaterEqual;":"≥","&GreaterEqualLess;":"⋛","&GreaterFullEqual;":"≧","&GreaterGreater;":"⪢","&GreaterLess;":"≷","&GreaterSlantEqual;":"⩾","&GreaterTilde;":"≳","&Gscr;":"𝒢","&Gt;":"≫","&HARDcy;":"Ъ","&Hacek;":"ˇ","&Hat;":"^","&Hcirc;":"Ĥ","&Hfr;":"ℌ","&HilbertSpace;":"ℋ","&Hopf;":"ℍ","&HorizontalLine;":"─","&Hscr;":"ℋ","&Hstrok;":"Ħ","&HumpDownHump;":"≎","&HumpEqual;":"≏","&IEcy;":"Е","&IJlig;":"IJ","&IOcy;":"Ё","&Iacute":"Í","&Iacute;":"Í","&Icirc":"Î","&Icirc;":"Î","&Icy;":"И","&Idot;":"İ","&Ifr;":"ℑ","&Igrave":"Ì","&Igrave;":"Ì","&Im;":"ℑ","&Imacr;":"Ī","&ImaginaryI;":"ⅈ","&Implies;":"⇒","&Int;":"∬","&Integral;":"∫","&Intersection;":"⋂","&InvisibleComma;":"⁣","&InvisibleTimes;":"⁢","&Iogon;":"Į","&Iopf;":"𝕀","&Iota;":"Ι","&Iscr;":"ℐ","&Itilde;":"Ĩ","&Iukcy;":"І","&Iuml":"Ï","&Iuml;":"Ï","&Jcirc;":"Ĵ","&Jcy;":"Й","&Jfr;":"𝔍","&Jopf;":"𝕁","&Jscr;":"𝒥","&Jsercy;":"Ј","&Jukcy;":"Є","&KHcy;":"Х","&KJcy;":"Ќ","&Kappa;":"Κ","&Kcedil;":"Ķ","&Kcy;":"К","&Kfr;":"𝔎","&Kopf;":"𝕂","&Kscr;":"𝒦","&LJcy;":"Љ","&LT":"<","&LT;":"<","&Lacute;":"Ĺ","&Lambda;":"Λ","&Lang;":"⟪","&Laplacetrf;":"ℒ","&Larr;":"↞","&Lcaron;":"Ľ","&Lcedil;":"Ļ","&Lcy;":"Л","&LeftAngleBracket;":"⟨","&LeftArrow;":"←","&LeftArrowBar;":"⇤","&LeftArrowRightArrow;":"⇆","&LeftCeiling;":"⌈","&LeftDoubleBracket;":"⟦","&LeftDownTeeVector;":"⥡","&LeftDownVector;":"⇃","&LeftDownVectorBar;":"⥙","&LeftFloor;":"⌊","&LeftRightArrow;":"↔","&LeftRightVector;":"⥎","&LeftTee;":"⊣","&LeftTeeArrow;":"↤","&LeftTeeVector;":"⥚","&LeftTriangle;":"⊲","&LeftTriangleBar;":"⧏","&LeftTriangleEqual;":"⊴","&LeftUpDownVector;":"⥑","&LeftUpTeeVector;":"⥠","&LeftUpVector;":"↿","&LeftUpVectorBar;":"⥘","&LeftVector;":"↼","&LeftVectorBar;":"⥒","&Leftarrow;":"⇐","&Leftrightarrow;":"⇔","&LessEqualGreater;":"⋚","&LessFullEqual;":"≦","&LessGreater;":"≶","&LessLess;":"⪡","&LessSlantEqual;":"⩽","&LessTilde;":"≲","&Lfr;":"𝔏","&Ll;":"⋘","&Lleftarrow;":"⇚","&Lmidot;":"Ŀ","&LongLeftArrow;":"⟵","&LongLeftRightArrow;":"⟷","&LongRightArrow;":"⟶","&Longleftarrow;":"⟸","&Longleftrightarrow;":"⟺","&Longrightarrow;":"⟹","&Lopf;":"𝕃","&LowerLeftArrow;":"↙","&LowerRightArrow;":"↘","&Lscr;":"ℒ","&Lsh;":"↰","&Lstrok;":"Ł","&Lt;":"≪","&Map;":"⤅","&Mcy;":"М","&MediumSpace;":" ","&Mellintrf;":"ℳ","&Mfr;":"𝔐","&MinusPlus;":"∓","&Mopf;":"𝕄","&Mscr;":"ℳ","&Mu;":"Μ","&NJcy;":"Њ","&Nacute;":"Ń","&Ncaron;":"Ň","&Ncedil;":"Ņ","&Ncy;":"Н","&NegativeMediumSpace;":"​","&NegativeThickSpace;":"​","&NegativeThinSpace;":"​","&NegativeVeryThinSpace;":"​","&NestedGreaterGreater;":"≫","&NestedLessLess;":"≪","&NewLine;":"\n","&Nfr;":"𝔑","&NoBreak;":"⁠","&NonBreakingSpace;":" ","&Nopf;":"ℕ","&Not;":"⫬","&NotCongruent;":"≢","&NotCupCap;":"≭","&NotDoubleVerticalBar;":"∦","&NotElement;":"∉","&NotEqual;":"≠","&NotEqualTilde;":"≂̸","&NotExists;":"∄","&NotGreater;":"≯","&NotGreaterEqual;":"≱","&NotGreaterFullEqual;":"≧̸","&NotGreaterGreater;":"≫̸","&NotGreaterLess;":"≹","&NotGreaterSlantEqual;":"⩾̸","&NotGreaterTilde;":"≵","&NotHumpDownHump;":"≎̸","&NotHumpEqual;":"≏̸","&NotLeftTriangle;":"⋪","&NotLeftTriangleBar;":"⧏̸","&NotLeftTriangleEqual;":"⋬","&NotLess;":"≮","&NotLessEqual;":"≰","&NotLessGreater;":"≸","&NotLessLess;":"≪̸","&NotLessSlantEqual;":"⩽̸","&NotLessTilde;":"≴","&NotNestedGreaterGreater;":"⪢̸","&NotNestedLessLess;":"⪡̸","&NotPrecedes;":"⊀","&NotPrecedesEqual;":"⪯̸","&NotPrecedesSlantEqual;":"⋠","&NotReverseElement;":"∌","&NotRightTriangle;":"⋫","&NotRightTriangleBar;":"⧐̸","&NotRightTriangleEqual;":"⋭","&NotSquareSubset;":"⊏̸","&NotSquareSubsetEqual;":"⋢","&NotSquareSuperset;":"⊐̸","&NotSquareSupersetEqual;":"⋣","&NotSubset;":"⊂⃒","&NotSubsetEqual;":"⊈","&NotSucceeds;":"⊁","&NotSucceedsEqual;":"⪰̸","&NotSucceedsSlantEqual;":"⋡","&NotSucceedsTilde;":"≿̸","&NotSuperset;":"⊃⃒","&NotSupersetEqual;":"⊉","&NotTilde;":"≁","&NotTildeEqual;":"≄","&NotTildeFullEqual;":"≇","&NotTildeTilde;":"≉","&NotVerticalBar;":"∤","&Nscr;":"𝒩","&Ntilde":"Ñ","&Ntilde;":"Ñ","&Nu;":"Ν","&OElig;":"Œ","&Oacute":"Ó","&Oacute;":"Ó","&Ocirc":"Ô","&Ocirc;":"Ô","&Ocy;":"О","&Odblac;":"Ő","&Ofr;":"𝔒","&Ograve":"Ò","&Ograve;":"Ò","&Omacr;":"Ō","&Omega;":"Ω","&Omicron;":"Ο","&Oopf;":"𝕆","&OpenCurlyDoubleQuote;":"“","&OpenCurlyQuote;":"‘","&Or;":"⩔","&Oscr;":"𝒪","&Oslash":"Ø","&Oslash;":"Ø","&Otilde":"Õ","&Otilde;":"Õ","&Otimes;":"⨷","&Ouml":"Ö","&Ouml;":"Ö","&OverBar;":"‾","&OverBrace;":"⏞","&OverBracket;":"⎴","&OverParenthesis;":"⏜","&PartialD;":"∂","&Pcy;":"П","&Pfr;":"𝔓","&Phi;":"Φ","&Pi;":"Π","&PlusMinus;":"±","&Poincareplane;":"ℌ","&Popf;":"ℙ","&Pr;":"⪻","&Precedes;":"≺","&PrecedesEqual;":"⪯","&PrecedesSlantEqual;":"≼","&PrecedesTilde;":"≾","&Prime;":"″","&Product;":"∏","&Proportion;":"∷","&Proportional;":"∝","&Pscr;":"𝒫","&Psi;":"Ψ","&QUOT":'"',"&QUOT;":'"',"&Qfr;":"𝔔","&Qopf;":"ℚ","&Qscr;":"𝒬","&RBarr;":"⤐","&REG":"®","&REG;":"®","&Racute;":"Ŕ","&Rang;":"⟫","&Rarr;":"↠","&Rarrtl;":"⤖","&Rcaron;":"Ř","&Rcedil;":"Ŗ","&Rcy;":"Р","&Re;":"ℜ","&ReverseElement;":"∋","&ReverseEquilibrium;":"⇋","&ReverseUpEquilibrium;":"⥯","&Rfr;":"ℜ","&Rho;":"Ρ","&RightAngleBracket;":"⟩","&RightArrow;":"→","&RightArrowBar;":"⇥","&RightArrowLeftArrow;":"⇄","&RightCeiling;":"⌉","&RightDoubleBracket;":"⟧","&RightDownTeeVector;":"⥝","&RightDownVector;":"⇂","&RightDownVectorBar;":"⥕","&RightFloor;":"⌋","&RightTee;":"⊢","&RightTeeArrow;":"↦","&RightTeeVector;":"⥛","&RightTriangle;":"⊳","&RightTriangleBar;":"⧐","&RightTriangleEqual;":"⊵","&RightUpDownVector;":"⥏","&RightUpTeeVector;":"⥜","&RightUpVector;":"↾","&RightUpVectorBar;":"⥔","&RightVector;":"⇀","&RightVectorBar;":"⥓","&Rightarrow;":"⇒","&Ropf;":"ℝ","&RoundImplies;":"⥰","&Rrightarrow;":"⇛","&Rscr;":"ℛ","&Rsh;":"↱","&RuleDelayed;":"⧴","&SHCHcy;":"Щ","&SHcy;":"Ш","&SOFTcy;":"Ь","&Sacute;":"Ś","&Sc;":"⪼","&Scaron;":"Š","&Scedil;":"Ş","&Scirc;":"Ŝ","&Scy;":"С","&Sfr;":"𝔖","&ShortDownArrow;":"↓","&ShortLeftArrow;":"←","&ShortRightArrow;":"→","&ShortUpArrow;":"↑","&Sigma;":"Σ","&SmallCircle;":"∘","&Sopf;":"𝕊","&Sqrt;":"√","&Square;":"□","&SquareIntersection;":"⊓","&SquareSubset;":"⊏","&SquareSubsetEqual;":"⊑","&SquareSuperset;":"⊐","&SquareSupersetEqual;":"⊒","&SquareUnion;":"⊔","&Sscr;":"𝒮","&Star;":"⋆","&Sub;":"⋐","&Subset;":"⋐","&SubsetEqual;":"⊆","&Succeeds;":"≻","&SucceedsEqual;":"⪰","&SucceedsSlantEqual;":"≽","&SucceedsTilde;":"≿","&SuchThat;":"∋","&Sum;":"∑","&Sup;":"⋑","&Superset;":"⊃","&SupersetEqual;":"⊇","&Supset;":"⋑","&THORN":"Þ","&THORN;":"Þ","&TRADE;":"™","&TSHcy;":"Ћ","&TScy;":"Ц","&Tab;":"\t","&Tau;":"Τ","&Tcaron;":"Ť","&Tcedil;":"Ţ","&Tcy;":"Т","&Tfr;":"𝔗","&Therefore;":"∴","&Theta;":"Θ","&ThickSpace;":"  ","&ThinSpace;":" ","&Tilde;":"∼","&TildeEqual;":"≃","&TildeFullEqual;":"≅","&TildeTilde;":"≈","&Topf;":"𝕋","&TripleDot;":"⃛","&Tscr;":"𝒯","&Tstrok;":"Ŧ","&Uacute":"Ú","&Uacute;":"Ú","&Uarr;":"↟","&Uarrocir;":"⥉","&Ubrcy;":"Ў","&Ubreve;":"Ŭ","&Ucirc":"Û","&Ucirc;":"Û","&Ucy;":"У","&Udblac;":"Ű","&Ufr;":"𝔘","&Ugrave":"Ù","&Ugrave;":"Ù","&Umacr;":"Ū","&UnderBar;":"_","&UnderBrace;":"⏟","&UnderBracket;":"⎵","&UnderParenthesis;":"⏝","&Union;":"⋃","&UnionPlus;":"⊎","&Uogon;":"Ų","&Uopf;":"𝕌","&UpArrow;":"↑","&UpArrowBar;":"⤒","&UpArrowDownArrow;":"⇅","&UpDownArrow;":"↕","&UpEquilibrium;":"⥮","&UpTee;":"⊥","&UpTeeArrow;":"↥","&Uparrow;":"⇑","&Updownarrow;":"⇕","&UpperLeftArrow;":"↖","&UpperRightArrow;":"↗","&Upsi;":"ϒ","&Upsilon;":"Υ","&Uring;":"Ů","&Uscr;":"𝒰","&Utilde;":"Ũ","&Uuml":"Ü","&Uuml;":"Ü","&VDash;":"⊫","&Vbar;":"⫫","&Vcy;":"В","&Vdash;":"⊩","&Vdashl;":"⫦","&Vee;":"⋁","&Verbar;":"‖","&Vert;":"‖","&VerticalBar;":"∣","&VerticalLine;":"|","&VerticalSeparator;":"❘","&VerticalTilde;":"≀","&VeryThinSpace;":" ","&Vfr;":"𝔙","&Vopf;":"𝕍","&Vscr;":"𝒱","&Vvdash;":"⊪","&Wcirc;":"Ŵ","&Wedge;":"⋀","&Wfr;":"𝔚","&Wopf;":"𝕎","&Wscr;":"𝒲","&Xfr;":"𝔛","&Xi;":"Ξ","&Xopf;":"𝕏","&Xscr;":"𝒳","&YAcy;":"Я","&YIcy;":"Ї","&YUcy;":"Ю","&Yacute":"Ý","&Yacute;":"Ý","&Ycirc;":"Ŷ","&Ycy;":"Ы","&Yfr;":"𝔜","&Yopf;":"𝕐","&Yscr;":"𝒴","&Yuml;":"Ÿ","&ZHcy;":"Ж","&Zacute;":"Ź","&Zcaron;":"Ž","&Zcy;":"З","&Zdot;":"Ż","&ZeroWidthSpace;":"​","&Zeta;":"Ζ","&Zfr;":"ℨ","&Zopf;":"ℤ","&Zscr;":"𝒵","&aacute":"á","&aacute;":"á","&abreve;":"ă","&ac;":"∾","&acE;":"∾̳","&acd;":"∿","&acirc":"â","&acirc;":"â","&acute":"´","&acute;":"´","&acy;":"а","&aelig":"æ","&aelig;":"æ","&af;":"⁡","&afr;":"𝔞","&agrave":"à","&agrave;":"à","&alefsym;":"ℵ","&aleph;":"ℵ","&alpha;":"α","&amacr;":"ā","&amalg;":"⨿","&amp":"&","&amp;":"&","&and;":"∧","&andand;":"⩕","&andd;":"⩜","&andslope;":"⩘","&andv;":"⩚","&ang;":"∠","&ange;":"⦤","&angle;":"∠","&angmsd;":"∡","&angmsdaa;":"⦨","&angmsdab;":"⦩","&angmsdac;":"⦪","&angmsdad;":"⦫","&angmsdae;":"⦬","&angmsdaf;":"⦭","&angmsdag;":"⦮","&angmsdah;":"⦯","&angrt;":"∟","&angrtvb;":"⊾","&angrtvbd;":"⦝","&angsph;":"∢","&angst;":"Å","&angzarr;":"⍼","&aogon;":"ą","&aopf;":"𝕒","&ap;":"≈","&apE;":"⩰","&apacir;":"⩯","&ape;":"≊","&apid;":"≋","&apos;":"'","&approx;":"≈","&approxeq;":"≊","&aring":"å","&aring;":"å","&ascr;":"𝒶","&ast;":"*","&asymp;":"≈","&asympeq;":"≍","&atilde":"ã","&atilde;":"ã","&auml":"ä","&auml;":"ä","&awconint;":"∳","&awint;":"⨑","&bNot;":"⫭","&backcong;":"≌","&backepsilon;":"϶","&backprime;":"‵","&backsim;":"∽","&backsimeq;":"⋍","&barvee;":"⊽","&barwed;":"⌅","&barwedge;":"⌅","&bbrk;":"⎵","&bbrktbrk;":"⎶","&bcong;":"≌","&bcy;":"б","&bdquo;":"„","&becaus;":"∵","&because;":"∵","&bemptyv;":"⦰","&bepsi;":"϶","&bernou;":"ℬ","&beta;":"β","&beth;":"ℶ","&between;":"≬","&bfr;":"𝔟","&bigcap;":"⋂","&bigcirc;":"◯","&bigcup;":"⋃","&bigodot;":"⨀","&bigoplus;":"⨁","&bigotimes;":"⨂","&bigsqcup;":"⨆","&bigstar;":"★","&bigtriangledown;":"▽","&bigtriangleup;":"△","&biguplus;":"⨄","&bigvee;":"⋁","&bigwedge;":"⋀","&bkarow;":"⤍","&blacklozenge;":"⧫","&blacksquare;":"▪","&blacktriangle;":"▴","&blacktriangledown;":"▾","&blacktriangleleft;":"◂","&blacktriangleright;":"▸","&blank;":"␣","&blk12;":"▒","&blk14;":"░","&blk34;":"▓","&block;":"█","&bne;":"=⃥","&bnequiv;":"≡⃥","&bnot;":"⌐","&bopf;":"𝕓","&bot;":"⊥","&bottom;":"⊥","&bowtie;":"⋈","&boxDL;":"╗","&boxDR;":"╔","&boxDl;":"╖","&boxDr;":"╓","&boxH;":"═","&boxHD;":"╦","&boxHU;":"╩","&boxHd;":"╤","&boxHu;":"╧","&boxUL;":"╝","&boxUR;":"╚","&boxUl;":"╜","&boxUr;":"╙","&boxV;":"║","&boxVH;":"╬","&boxVL;":"╣","&boxVR;":"╠","&boxVh;":"╫","&boxVl;":"╢","&boxVr;":"╟","&boxbox;":"⧉","&boxdL;":"╕","&boxdR;":"╒","&boxdl;":"┐","&boxdr;":"┌","&boxh;":"─","&boxhD;":"╥","&boxhU;":"╨","&boxhd;":"┬","&boxhu;":"┴","&boxminus;":"⊟","&boxplus;":"⊞","&boxtimes;":"⊠","&boxuL;":"╛","&boxuR;":"╘","&boxul;":"┘","&boxur;":"└","&boxv;":"│","&boxvH;":"╪","&boxvL;":"╡","&boxvR;":"╞","&boxvh;":"┼","&boxvl;":"┤","&boxvr;":"├","&bprime;":"‵","&breve;":"˘","&brvbar":"¦","&brvbar;":"¦","&bscr;":"𝒷","&bsemi;":"⁏","&bsim;":"∽","&bsime;":"⋍","&bsol;":"\\","&bsolb;":"⧅","&bsolhsub;":"⟈","&bull;":"•","&bullet;":"•","&bump;":"≎","&bumpE;":"⪮","&bumpe;":"≏","&bumpeq;":"≏","&cacute;":"ć","&cap;":"∩","&capand;":"⩄","&capbrcup;":"⩉","&capcap;":"⩋","&capcup;":"⩇","&capdot;":"⩀","&caps;":"∩︀","&caret;":"⁁","&caron;":"ˇ","&ccaps;":"⩍","&ccaron;":"č","&ccedil":"ç","&ccedil;":"ç","&ccirc;":"ĉ","&ccups;":"⩌","&ccupssm;":"⩐","&cdot;":"ċ","&cedil":"¸","&cedil;":"¸","&cemptyv;":"⦲","&cent":"¢","&cent;":"¢","&centerdot;":"·","&cfr;":"𝔠","&chcy;":"ч","&check;":"✓","&checkmark;":"✓","&chi;":"χ","&cir;":"○","&cirE;":"⧃","&circ;":"ˆ","&circeq;":"≗","&circlearrowleft;":"↺","&circlearrowright;":"↻","&circledR;":"®","&circledS;":"Ⓢ","&circledast;":"⊛","&circledcirc;":"⊚","&circleddash;":"⊝","&cire;":"≗","&cirfnint;":"⨐","&cirmid;":"⫯","&cirscir;":"⧂","&clubs;":"♣","&clubsuit;":"♣","&colon;":":","&colone;":"≔","&coloneq;":"≔","&comma;":",","&commat;":"@","&comp;":"∁","&compfn;":"∘","&complement;":"∁","&complexes;":"ℂ","&cong;":"≅","&congdot;":"⩭","&conint;":"∮","&copf;":"𝕔","&coprod;":"∐","&copy":"©","&copy;":"©","&copysr;":"℗","&crarr;":"↵","&cross;":"✗","&cscr;":"𝒸","&csub;":"⫏","&csube;":"⫑","&csup;":"⫐","&csupe;":"⫒","&ctdot;":"⋯","&cudarrl;":"⤸","&cudarrr;":"⤵","&cuepr;":"⋞","&cuesc;":"⋟","&cularr;":"↶","&cularrp;":"⤽","&cup;":"∪","&cupbrcap;":"⩈","&cupcap;":"⩆","&cupcup;":"⩊","&cupdot;":"⊍","&cupor;":"⩅","&cups;":"∪︀","&curarr;":"↷","&curarrm;":"⤼","&curlyeqprec;":"⋞","&curlyeqsucc;":"⋟","&curlyvee;":"⋎","&curlywedge;":"⋏","&curren":"¤","&curren;":"¤","&curvearrowleft;":"↶","&curvearrowright;":"↷","&cuvee;":"⋎","&cuwed;":"⋏","&cwconint;":"∲","&cwint;":"∱","&cylcty;":"⌭","&dArr;":"⇓","&dHar;":"⥥","&dagger;":"†","&daleth;":"ℸ","&darr;":"↓","&dash;":"‐","&dashv;":"⊣","&dbkarow;":"⤏","&dblac;":"˝","&dcaron;":"ď","&dcy;":"д","&dd;":"ⅆ","&ddagger;":"‡","&ddarr;":"⇊","&ddotseq;":"⩷","&deg":"°","&deg;":"°","&delta;":"δ","&demptyv;":"⦱","&dfisht;":"⥿","&dfr;":"𝔡","&dharl;":"⇃","&dharr;":"⇂","&diam;":"⋄","&diamond;":"⋄","&diamondsuit;":"♦","&diams;":"♦","&die;":"¨","&digamma;":"ϝ","&disin;":"⋲","&div;":"÷","&divide":"÷","&divide;":"÷","&divideontimes;":"⋇","&divonx;":"⋇","&djcy;":"ђ","&dlcorn;":"⌞","&dlcrop;":"⌍","&dollar;":"$","&dopf;":"𝕕","&dot;":"˙","&doteq;":"≐","&doteqdot;":"≑","&dotminus;":"∸","&dotplus;":"∔","&dotsquare;":"⊡","&doublebarwedge;":"⌆","&downarrow;":"↓","&downdownarrows;":"⇊","&downharpoonleft;":"⇃","&downharpoonright;":"⇂","&drbkarow;":"⤐","&drcorn;":"⌟","&drcrop;":"⌌","&dscr;":"𝒹","&dscy;":"ѕ","&dsol;":"⧶","&dstrok;":"đ","&dtdot;":"⋱","&dtri;":"▿","&dtrif;":"▾","&duarr;":"⇵","&duhar;":"⥯","&dwangle;":"⦦","&dzcy;":"џ","&dzigrarr;":"⟿","&eDDot;":"⩷","&eDot;":"≑","&eacute":"é","&eacute;":"é","&easter;":"⩮","&ecaron;":"ě","&ecir;":"≖","&ecirc":"ê","&ecirc;":"ê","&ecolon;":"≕","&ecy;":"э","&edot;":"ė","&ee;":"ⅇ","&efDot;":"≒","&efr;":"𝔢","&eg;":"⪚","&egrave":"è","&egrave;":"è","&egs;":"⪖","&egsdot;":"⪘","&el;":"⪙","&elinters;":"⏧","&ell;":"ℓ","&els;":"⪕","&elsdot;":"⪗","&emacr;":"ē","&empty;":"∅","&emptyset;":"∅","&emptyv;":"∅","&emsp13;":" ","&emsp14;":" ","&emsp;":" ","&eng;":"ŋ","&ensp;":" ","&eogon;":"ę","&eopf;":"𝕖","&epar;":"⋕","&eparsl;":"⧣","&eplus;":"⩱","&epsi;":"ε","&epsilon;":"ε","&epsiv;":"ϵ","&eqcirc;":"≖","&eqcolon;":"≕","&eqsim;":"≂","&eqslantgtr;":"⪖","&eqslantless;":"⪕","&equals;":"=","&equest;":"≟","&equiv;":"≡","&equivDD;":"⩸","&eqvparsl;":"⧥","&erDot;":"≓","&erarr;":"⥱","&escr;":"ℯ","&esdot;":"≐","&esim;":"≂","&eta;":"η","&eth":"ð","&eth;":"ð","&euml":"ë","&euml;":"ë","&euro;":"€","&excl;":"!","&exist;":"∃","&expectation;":"ℰ","&exponentiale;":"ⅇ","&fallingdotseq;":"≒","&fcy;":"ф","&female;":"♀","&ffilig;":"ffi","&fflig;":"ff","&ffllig;":"ffl","&ffr;":"𝔣","&filig;":"fi","&fjlig;":"fj","&flat;":"♭","&fllig;":"fl","&fltns;":"▱","&fnof;":"ƒ","&fopf;":"𝕗","&forall;":"∀","&fork;":"⋔","&forkv;":"⫙","&fpartint;":"⨍","&frac12":"½","&frac12;":"½","&frac13;":"⅓","&frac14":"¼","&frac14;":"¼","&frac15;":"⅕","&frac16;":"⅙","&frac18;":"⅛","&frac23;":"⅔","&frac25;":"⅖","&frac34":"¾","&frac34;":"¾","&frac35;":"⅗","&frac38;":"⅜","&frac45;":"⅘","&frac56;":"⅚","&frac58;":"⅝","&frac78;":"⅞","&frasl;":"⁄","&frown;":"⌢","&fscr;":"𝒻","&gE;":"≧","&gEl;":"⪌","&gacute;":"ǵ","&gamma;":"γ","&gammad;":"ϝ","&gap;":"⪆","&gbreve;":"ğ","&gcirc;":"ĝ","&gcy;":"г","&gdot;":"ġ","&ge;":"≥","&gel;":"⋛","&geq;":"≥","&geqq;":"≧","&geqslant;":"⩾","&ges;":"⩾","&gescc;":"⪩","&gesdot;":"⪀","&gesdoto;":"⪂","&gesdotol;":"⪄","&gesl;":"⋛︀","&gesles;":"⪔","&gfr;":"𝔤","&gg;":"≫","&ggg;":"⋙","&gimel;":"ℷ","&gjcy;":"ѓ","&gl;":"≷","&glE;":"⪒","&gla;":"⪥","&glj;":"⪤","&gnE;":"≩","&gnap;":"⪊","&gnapprox;":"⪊","&gne;":"⪈","&gneq;":"⪈","&gneqq;":"≩","&gnsim;":"⋧","&gopf;":"𝕘","&grave;":"`","&gscr;":"ℊ","&gsim;":"≳","&gsime;":"⪎","&gsiml;":"⪐","&gt":">","&gt;":">","&gtcc;":"⪧","&gtcir;":"⩺","&gtdot;":"⋗","&gtlPar;":"⦕","&gtquest;":"⩼","&gtrapprox;":"⪆","&gtrarr;":"⥸","&gtrdot;":"⋗","&gtreqless;":"⋛","&gtreqqless;":"⪌","&gtrless;":"≷","&gtrsim;":"≳","&gvertneqq;":"≩︀","&gvnE;":"≩︀","&hArr;":"⇔","&hairsp;":" ","&half;":"½","&hamilt;":"ℋ","&hardcy;":"ъ","&harr;":"↔","&harrcir;":"⥈","&harrw;":"↭","&hbar;":"ℏ","&hcirc;":"ĥ","&hearts;":"♥","&heartsuit;":"♥","&hellip;":"…","&hercon;":"⊹","&hfr;":"𝔥","&hksearow;":"⤥","&hkswarow;":"⤦","&hoarr;":"⇿","&homtht;":"∻","&hookleftarrow;":"↩","&hookrightarrow;":"↪","&hopf;":"𝕙","&horbar;":"―","&hscr;":"𝒽","&hslash;":"ℏ","&hstrok;":"ħ","&hybull;":"⁃","&hyphen;":"‐","&iacute":"í","&iacute;":"í","&ic;":"⁣","&icirc":"î","&icirc;":"î","&icy;":"и","&iecy;":"е","&iexcl":"¡","&iexcl;":"¡","&iff;":"⇔","&ifr;":"𝔦","&igrave":"ì","&igrave;":"ì","&ii;":"ⅈ","&iiiint;":"⨌","&iiint;":"∭","&iinfin;":"⧜","&iiota;":"℩","&ijlig;":"ij","&imacr;":"ī","&image;":"ℑ","&imagline;":"ℐ","&imagpart;":"ℑ","&imath;":"ı","&imof;":"⊷","&imped;":"Ƶ","&in;":"∈","&incare;":"℅","&infin;":"∞","&infintie;":"⧝","&inodot;":"ı","&int;":"∫","&intcal;":"⊺","&integers;":"ℤ","&intercal;":"⊺","&intlarhk;":"⨗","&intprod;":"⨼","&iocy;":"ё","&iogon;":"į","&iopf;":"𝕚","&iota;":"ι","&iprod;":"⨼","&iquest":"¿","&iquest;":"¿","&iscr;":"𝒾","&isin;":"∈","&isinE;":"⋹","&isindot;":"⋵","&isins;":"⋴","&isinsv;":"⋳","&isinv;":"∈","&it;":"⁢","&itilde;":"ĩ","&iukcy;":"і","&iuml":"ï","&iuml;":"ï","&jcirc;":"ĵ","&jcy;":"й","&jfr;":"𝔧","&jmath;":"ȷ","&jopf;":"𝕛","&jscr;":"𝒿","&jsercy;":"ј","&jukcy;":"є","&kappa;":"κ","&kappav;":"ϰ","&kcedil;":"ķ","&kcy;":"к","&kfr;":"𝔨","&kgreen;":"ĸ","&khcy;":"х","&kjcy;":"ќ","&kopf;":"𝕜","&kscr;":"𝓀","&lAarr;":"⇚","&lArr;":"⇐","&lAtail;":"⤛","&lBarr;":"⤎","&lE;":"≦","&lEg;":"⪋","&lHar;":"⥢","&lacute;":"ĺ","&laemptyv;":"⦴","&lagran;":"ℒ","&lambda;":"λ","&lang;":"⟨","&langd;":"⦑","&langle;":"⟨","&lap;":"⪅","&laquo":"«","&laquo;":"«","&larr;":"←","&larrb;":"⇤","&larrbfs;":"⤟","&larrfs;":"⤝","&larrhk;":"↩","&larrlp;":"↫","&larrpl;":"⤹","&larrsim;":"⥳","&larrtl;":"↢","&lat;":"⪫","&latail;":"⤙","&late;":"⪭","&lates;":"⪭︀","&lbarr;":"⤌","&lbbrk;":"❲","&lbrace;":"{","&lbrack;":"[","&lbrke;":"⦋","&lbrksld;":"⦏","&lbrkslu;":"⦍","&lcaron;":"ľ","&lcedil;":"ļ","&lceil;":"⌈","&lcub;":"{","&lcy;":"л","&ldca;":"⤶","&ldquo;":"“","&ldquor;":"„","&ldrdhar;":"⥧","&ldrushar;":"⥋","&ldsh;":"↲","&le;":"≤","&leftarrow;":"←","&leftarrowtail;":"↢","&leftharpoondown;":"↽","&leftharpoonup;":"↼","&leftleftarrows;":"⇇","&leftrightarrow;":"↔","&leftrightarrows;":"⇆","&leftrightharpoons;":"⇋","&leftrightsquigarrow;":"↭","&leftthreetimes;":"⋋","&leg;":"⋚","&leq;":"≤","&leqq;":"≦","&leqslant;":"⩽","&les;":"⩽","&lescc;":"⪨","&lesdot;":"⩿","&lesdoto;":"⪁","&lesdotor;":"⪃","&lesg;":"⋚︀","&lesges;":"⪓","&lessapprox;":"⪅","&lessdot;":"⋖","&lesseqgtr;":"⋚","&lesseqqgtr;":"⪋","&lessgtr;":"≶","&lesssim;":"≲","&lfisht;":"⥼","&lfloor;":"⌊","&lfr;":"𝔩","&lg;":"≶","&lgE;":"⪑","&lhard;":"↽","&lharu;":"↼","&lharul;":"⥪","&lhblk;":"▄","&ljcy;":"љ","&ll;":"≪","&llarr;":"⇇","&llcorner;":"⌞","&llhard;":"⥫","&lltri;":"◺","&lmidot;":"ŀ","&lmoust;":"⎰","&lmoustache;":"⎰","&lnE;":"≨","&lnap;":"⪉","&lnapprox;":"⪉","&lne;":"⪇","&lneq;":"⪇","&lneqq;":"≨","&lnsim;":"⋦","&loang;":"⟬","&loarr;":"⇽","&lobrk;":"⟦","&longleftarrow;":"⟵","&longleftrightarrow;":"⟷","&longmapsto;":"⟼","&longrightarrow;":"⟶","&looparrowleft;":"↫","&looparrowright;":"↬","&lopar;":"⦅","&lopf;":"𝕝","&loplus;":"⨭","&lotimes;":"⨴","&lowast;":"∗","&lowbar;":"_","&loz;":"◊","&lozenge;":"◊","&lozf;":"⧫","&lpar;":"(","&lparlt;":"⦓","&lrarr;":"⇆","&lrcorner;":"⌟","&lrhar;":"⇋","&lrhard;":"⥭","&lrm;":"‎","&lrtri;":"⊿","&lsaquo;":"‹","&lscr;":"𝓁","&lsh;":"↰","&lsim;":"≲","&lsime;":"⪍","&lsimg;":"⪏","&lsqb;":"[","&lsquo;":"‘","&lsquor;":"‚","&lstrok;":"ł","&lt":"<","&lt;":"<","&ltcc;":"⪦","&ltcir;":"⩹","&ltdot;":"⋖","&lthree;":"⋋","&ltimes;":"⋉","&ltlarr;":"⥶","&ltquest;":"⩻","&ltrPar;":"⦖","&ltri;":"◃","&ltrie;":"⊴","&ltrif;":"◂","&lurdshar;":"⥊","&luruhar;":"⥦","&lvertneqq;":"≨︀","&lvnE;":"≨︀","&mDDot;":"∺","&macr":"¯","&macr;":"¯","&male;":"♂","&malt;":"✠","&maltese;":"✠","&map;":"↦","&mapsto;":"↦","&mapstodown;":"↧","&mapstoleft;":"↤","&mapstoup;":"↥","&marker;":"▮","&mcomma;":"⨩","&mcy;":"м","&mdash;":"—","&measuredangle;":"∡","&mfr;":"𝔪","&mho;":"℧","&micro":"µ","&micro;":"µ","&mid;":"∣","&midast;":"*","&midcir;":"⫰","&middot":"·","&middot;":"·","&minus;":"−","&minusb;":"⊟","&minusd;":"∸","&minusdu;":"⨪","&mlcp;":"⫛","&mldr;":"…","&mnplus;":"∓","&models;":"⊧","&mopf;":"𝕞","&mp;":"∓","&mscr;":"𝓂","&mstpos;":"∾","&mu;":"μ","&multimap;":"⊸","&mumap;":"⊸","&nGg;":"⋙̸","&nGt;":"≫⃒","&nGtv;":"≫̸","&nLeftarrow;":"⇍","&nLeftrightarrow;":"⇎","&nLl;":"⋘̸","&nLt;":"≪⃒","&nLtv;":"≪̸","&nRightarrow;":"⇏","&nVDash;":"⊯","&nVdash;":"⊮","&nabla;":"∇","&nacute;":"ń","&nang;":"∠⃒","&nap;":"≉","&napE;":"⩰̸","&napid;":"≋̸","&napos;":"ʼn","&napprox;":"≉","&natur;":"♮","&natural;":"♮","&naturals;":"ℕ","&nbsp":" ","&nbsp;":" ","&nbump;":"≎̸","&nbumpe;":"≏̸","&ncap;":"⩃","&ncaron;":"ň","&ncedil;":"ņ","&ncong;":"≇","&ncongdot;":"⩭̸","&ncup;":"⩂","&ncy;":"н","&ndash;":"–","&ne;":"≠","&neArr;":"⇗","&nearhk;":"⤤","&nearr;":"↗","&nearrow;":"↗","&nedot;":"≐̸","&nequiv;":"≢","&nesear;":"⤨","&nesim;":"≂̸","&nexist;":"∄","&nexists;":"∄","&nfr;":"𝔫","&ngE;":"≧̸","&nge;":"≱","&ngeq;":"≱","&ngeqq;":"≧̸","&ngeqslant;":"⩾̸","&nges;":"⩾̸","&ngsim;":"≵","&ngt;":"≯","&ngtr;":"≯","&nhArr;":"⇎","&nharr;":"↮","&nhpar;":"⫲","&ni;":"∋","&nis;":"⋼","&nisd;":"⋺","&niv;":"∋","&njcy;":"њ","&nlArr;":"⇍","&nlE;":"≦̸","&nlarr;":"↚","&nldr;":"‥","&nle;":"≰","&nleftarrow;":"↚","&nleftrightarrow;":"↮","&nleq;":"≰","&nleqq;":"≦̸","&nleqslant;":"⩽̸","&nles;":"⩽̸","&nless;":"≮","&nlsim;":"≴","&nlt;":"≮","&nltri;":"⋪","&nltrie;":"⋬","&nmid;":"∤","&nopf;":"𝕟","&not":"¬","&not;":"¬","&notin;":"∉","&notinE;":"⋹̸","&notindot;":"⋵̸","&notinva;":"∉","&notinvb;":"⋷","&notinvc;":"⋶","&notni;":"∌","&notniva;":"∌","&notnivb;":"⋾","&notnivc;":"⋽","&npar;":"∦","&nparallel;":"∦","&nparsl;":"⫽⃥","&npart;":"∂̸","&npolint;":"⨔","&npr;":"⊀","&nprcue;":"⋠","&npre;":"⪯̸","&nprec;":"⊀","&npreceq;":"⪯̸","&nrArr;":"⇏","&nrarr;":"↛","&nrarrc;":"⤳̸","&nrarrw;":"↝̸","&nrightarrow;":"↛","&nrtri;":"⋫","&nrtrie;":"⋭","&nsc;":"⊁","&nsccue;":"⋡","&nsce;":"⪰̸","&nscr;":"𝓃","&nshortmid;":"∤","&nshortparallel;":"∦","&nsim;":"≁","&nsime;":"≄","&nsimeq;":"≄","&nsmid;":"∤","&nspar;":"∦","&nsqsube;":"⋢","&nsqsupe;":"⋣","&nsub;":"⊄","&nsubE;":"⫅̸","&nsube;":"⊈","&nsubset;":"⊂⃒","&nsubseteq;":"⊈","&nsubseteqq;":"⫅̸","&nsucc;":"⊁","&nsucceq;":"⪰̸","&nsup;":"⊅","&nsupE;":"⫆̸","&nsupe;":"⊉","&nsupset;":"⊃⃒","&nsupseteq;":"⊉","&nsupseteqq;":"⫆̸","&ntgl;":"≹","&ntilde":"ñ","&ntilde;":"ñ","&ntlg;":"≸","&ntriangleleft;":"⋪","&ntrianglelefteq;":"⋬","&ntriangleright;":"⋫","&ntrianglerighteq;":"⋭","&nu;":"ν","&num;":"#","&numero;":"№","&numsp;":" ","&nvDash;":"⊭","&nvHarr;":"⤄","&nvap;":"≍⃒","&nvdash;":"⊬","&nvge;":"≥⃒","&nvgt;":">⃒","&nvinfin;":"⧞","&nvlArr;":"⤂","&nvle;":"≤⃒","&nvlt;":"<⃒","&nvltrie;":"⊴⃒","&nvrArr;":"⤃","&nvrtrie;":"⊵⃒","&nvsim;":"∼⃒","&nwArr;":"⇖","&nwarhk;":"⤣","&nwarr;":"↖","&nwarrow;":"↖","&nwnear;":"⤧","&oS;":"Ⓢ","&oacute":"ó","&oacute;":"ó","&oast;":"⊛","&ocir;":"⊚","&ocirc":"ô","&ocirc;":"ô","&ocy;":"о","&odash;":"⊝","&odblac;":"ő","&odiv;":"⨸","&odot;":"⊙","&odsold;":"⦼","&oelig;":"œ","&ofcir;":"⦿","&ofr;":"𝔬","&ogon;":"˛","&ograve":"ò","&ograve;":"ò","&ogt;":"⧁","&ohbar;":"⦵","&ohm;":"Ω","&oint;":"∮","&olarr;":"↺","&olcir;":"⦾","&olcross;":"⦻","&oline;":"‾","&olt;":"⧀","&omacr;":"ō","&omega;":"ω","&omicron;":"ο","&omid;":"⦶","&ominus;":"⊖","&oopf;":"𝕠","&opar;":"⦷","&operp;":"⦹","&oplus;":"⊕","&or;":"∨","&orarr;":"↻","&ord;":"⩝","&order;":"ℴ","&orderof;":"ℴ","&ordf":"ª","&ordf;":"ª","&ordm":"º","&ordm;":"º","&origof;":"⊶","&oror;":"⩖","&orslope;":"⩗","&orv;":"⩛","&oscr;":"ℴ","&oslash":"ø","&oslash;":"ø","&osol;":"⊘","&otilde":"õ","&otilde;":"õ","&otimes;":"⊗","&otimesas;":"⨶","&ouml":"ö","&ouml;":"ö","&ovbar;":"⌽","&par;":"∥","&para":"¶","&para;":"¶","&parallel;":"∥","&parsim;":"⫳","&parsl;":"⫽","&part;":"∂","&pcy;":"п","&percnt;":"%","&period;":".","&permil;":"‰","&perp;":"⊥","&pertenk;":"‱","&pfr;":"𝔭","&phi;":"φ","&phiv;":"ϕ","&phmmat;":"ℳ","&phone;":"☎","&pi;":"π","&pitchfork;":"⋔","&piv;":"ϖ","&planck;":"ℏ","&planckh;":"ℎ","&plankv;":"ℏ","&plus;":"+","&plusacir;":"⨣","&plusb;":"⊞","&pluscir;":"⨢","&plusdo;":"∔","&plusdu;":"⨥","&pluse;":"⩲","&plusmn":"±","&plusmn;":"±","&plussim;":"⨦","&plustwo;":"⨧","&pm;":"±","&pointint;":"⨕","&popf;":"𝕡","&pound":"£","&pound;":"£","&pr;":"≺","&prE;":"⪳","&prap;":"⪷","&prcue;":"≼","&pre;":"⪯","&prec;":"≺","&precapprox;":"⪷","&preccurlyeq;":"≼","&preceq;":"⪯","&precnapprox;":"⪹","&precneqq;":"⪵","&precnsim;":"⋨","&precsim;":"≾","&prime;":"′","&primes;":"ℙ","&prnE;":"⪵","&prnap;":"⪹","&prnsim;":"⋨","&prod;":"∏","&profalar;":"⌮","&profline;":"⌒","&profsurf;":"⌓","&prop;":"∝","&propto;":"∝","&prsim;":"≾","&prurel;":"⊰","&pscr;":"𝓅","&psi;":"ψ","&puncsp;":" ","&qfr;":"𝔮","&qint;":"⨌","&qopf;":"𝕢","&qprime;":"⁗","&qscr;":"𝓆","&quaternions;":"ℍ","&quatint;":"⨖","&quest;":"?","&questeq;":"≟","&quot":'"',"&quot;":'"',"&rAarr;":"⇛","&rArr;":"⇒","&rAtail;":"⤜","&rBarr;":"⤏","&rHar;":"⥤","&race;":"∽̱","&racute;":"ŕ","&radic;":"√","&raemptyv;":"⦳","&rang;":"⟩","&rangd;":"⦒","&range;":"⦥","&rangle;":"⟩","&raquo":"»","&raquo;":"»","&rarr;":"→","&rarrap;":"⥵","&rarrb;":"⇥","&rarrbfs;":"⤠","&rarrc;":"⤳","&rarrfs;":"⤞","&rarrhk;":"↪","&rarrlp;":"↬","&rarrpl;":"⥅","&rarrsim;":"⥴","&rarrtl;":"↣","&rarrw;":"↝","&ratail;":"⤚","&ratio;":"∶","&rationals;":"ℚ","&rbarr;":"⤍","&rbbrk;":"❳","&rbrace;":"}","&rbrack;":"]","&rbrke;":"⦌","&rbrksld;":"⦎","&rbrkslu;":"⦐","&rcaron;":"ř","&rcedil;":"ŗ","&rceil;":"⌉","&rcub;":"}","&rcy;":"р","&rdca;":"⤷","&rdldhar;":"⥩","&rdquo;":"”","&rdquor;":"”","&rdsh;":"↳","&real;":"ℜ","&realine;":"ℛ","&realpart;":"ℜ","&reals;":"ℝ","&rect;":"▭","&reg":"®","&reg;":"®","&rfisht;":"⥽","&rfloor;":"⌋","&rfr;":"𝔯","&rhard;":"⇁","&rharu;":"⇀","&rharul;":"⥬","&rho;":"ρ","&rhov;":"ϱ","&rightarrow;":"→","&rightarrowtail;":"↣","&rightharpoondown;":"⇁","&rightharpoonup;":"⇀","&rightleftarrows;":"⇄","&rightleftharpoons;":"⇌","&rightrightarrows;":"⇉","&rightsquigarrow;":"↝","&rightthreetimes;":"⋌","&ring;":"˚","&risingdotseq;":"≓","&rlarr;":"⇄","&rlhar;":"⇌","&rlm;":"‏","&rmoust;":"⎱","&rmoustache;":"⎱","&rnmid;":"⫮","&roang;":"⟭","&roarr;":"⇾","&robrk;":"⟧","&ropar;":"⦆","&ropf;":"𝕣","&roplus;":"⨮","&rotimes;":"⨵","&rpar;":")","&rpargt;":"⦔","&rppolint;":"⨒","&rrarr;":"⇉","&rsaquo;":"›","&rscr;":"𝓇","&rsh;":"↱","&rsqb;":"]","&rsquo;":"’","&rsquor;":"’","&rthree;":"⋌","&rtimes;":"⋊","&rtri;":"▹","&rtrie;":"⊵","&rtrif;":"▸","&rtriltri;":"⧎","&ruluhar;":"⥨","&rx;":"℞","&sacute;":"ś","&sbquo;":"‚","&sc;":"≻","&scE;":"⪴","&scap;":"⪸","&scaron;":"š","&sccue;":"≽","&sce;":"⪰","&scedil;":"ş","&scirc;":"ŝ","&scnE;":"⪶","&scnap;":"⪺","&scnsim;":"⋩","&scpolint;":"⨓","&scsim;":"≿","&scy;":"с","&sdot;":"⋅","&sdotb;":"⊡","&sdote;":"⩦","&seArr;":"⇘","&searhk;":"⤥","&searr;":"↘","&searrow;":"↘","&sect":"§","&sect;":"§","&semi;":";","&seswar;":"⤩","&setminus;":"∖","&setmn;":"∖","&sext;":"✶","&sfr;":"𝔰","&sfrown;":"⌢","&sharp;":"♯","&shchcy;":"щ","&shcy;":"ш","&shortmid;":"∣","&shortparallel;":"∥","&shy":"­","&shy;":"­","&sigma;":"σ","&sigmaf;":"ς","&sigmav;":"ς","&sim;":"∼","&simdot;":"⩪","&sime;":"≃","&simeq;":"≃","&simg;":"⪞","&simgE;":"⪠","&siml;":"⪝","&simlE;":"⪟","&simne;":"≆","&simplus;":"⨤","&simrarr;":"⥲","&slarr;":"←","&smallsetminus;":"∖","&smashp;":"⨳","&smeparsl;":"⧤","&smid;":"∣","&smile;":"⌣","&smt;":"⪪","&smte;":"⪬","&smtes;":"⪬︀","&softcy;":"ь","&sol;":"/","&solb;":"⧄","&solbar;":"⌿","&sopf;":"𝕤","&spades;":"♠","&spadesuit;":"♠","&spar;":"∥","&sqcap;":"⊓","&sqcaps;":"⊓︀","&sqcup;":"⊔","&sqcups;":"⊔︀","&sqsub;":"⊏","&sqsube;":"⊑","&sqsubset;":"⊏","&sqsubseteq;":"⊑","&sqsup;":"⊐","&sqsupe;":"⊒","&sqsupset;":"⊐","&sqsupseteq;":"⊒","&squ;":"□","&square;":"□","&squarf;":"▪","&squf;":"▪","&srarr;":"→","&sscr;":"𝓈","&ssetmn;":"∖","&ssmile;":"⌣","&sstarf;":"⋆","&star;":"☆","&starf;":"★","&straightepsilon;":"ϵ","&straightphi;":"ϕ","&strns;":"¯","&sub;":"⊂","&subE;":"⫅","&subdot;":"⪽","&sube;":"⊆","&subedot;":"⫃","&submult;":"⫁","&subnE;":"⫋","&subne;":"⊊","&subplus;":"⪿","&subrarr;":"⥹","&subset;":"⊂","&subseteq;":"⊆","&subseteqq;":"⫅","&subsetneq;":"⊊","&subsetneqq;":"⫋","&subsim;":"⫇","&subsub;":"⫕","&subsup;":"⫓","&succ;":"≻","&succapprox;":"⪸","&succcurlyeq;":"≽","&succeq;":"⪰","&succnapprox;":"⪺","&succneqq;":"⪶","&succnsim;":"⋩","&succsim;":"≿","&sum;":"∑","&sung;":"♪","&sup1":"¹","&sup1;":"¹","&sup2":"²","&sup2;":"²","&sup3":"³","&sup3;":"³","&sup;":"⊃","&supE;":"⫆","&supdot;":"⪾","&supdsub;":"⫘","&supe;":"⊇","&supedot;":"⫄","&suphsol;":"⟉","&suphsub;":"⫗","&suplarr;":"⥻","&supmult;":"⫂","&supnE;":"⫌","&supne;":"⊋","&supplus;":"⫀","&supset;":"⊃","&supseteq;":"⊇","&supseteqq;":"⫆","&supsetneq;":"⊋","&supsetneqq;":"⫌","&supsim;":"⫈","&supsub;":"⫔","&supsup;":"⫖","&swArr;":"⇙","&swarhk;":"⤦","&swarr;":"↙","&swarrow;":"↙","&swnwar;":"⤪","&szlig":"ß","&szlig;":"ß","&target;":"⌖","&tau;":"τ","&tbrk;":"⎴","&tcaron;":"ť","&tcedil;":"ţ","&tcy;":"т","&tdot;":"⃛","&telrec;":"⌕","&tfr;":"𝔱","&there4;":"∴","&therefore;":"∴","&theta;":"θ","&thetasym;":"ϑ","&thetav;":"ϑ","&thickapprox;":"≈","&thicksim;":"∼","&thinsp;":" ","&thkap;":"≈","&thksim;":"∼","&thorn":"þ","&thorn;":"þ","&tilde;":"˜","&times":"×","&times;":"×","&timesb;":"⊠","&timesbar;":"⨱","&timesd;":"⨰","&tint;":"∭","&toea;":"⤨","&top;":"⊤","&topbot;":"⌶","&topcir;":"⫱","&topf;":"𝕥","&topfork;":"⫚","&tosa;":"⤩","&tprime;":"‴","&trade;":"™","&triangle;":"▵","&triangledown;":"▿","&triangleleft;":"◃","&trianglelefteq;":"⊴","&triangleq;":"≜","&triangleright;":"▹","&trianglerighteq;":"⊵","&tridot;":"◬","&trie;":"≜","&triminus;":"⨺","&triplus;":"⨹","&trisb;":"⧍","&tritime;":"⨻","&trpezium;":"⏢","&tscr;":"𝓉","&tscy;":"ц","&tshcy;":"ћ","&tstrok;":"ŧ","&twixt;":"≬","&twoheadleftarrow;":"↞","&twoheadrightarrow;":"↠","&uArr;":"⇑","&uHar;":"⥣","&uacute":"ú","&uacute;":"ú","&uarr;":"↑","&ubrcy;":"ў","&ubreve;":"ŭ","&ucirc":"û","&ucirc;":"û","&ucy;":"у","&udarr;":"⇅","&udblac;":"ű","&udhar;":"⥮","&ufisht;":"⥾","&ufr;":"𝔲","&ugrave":"ù","&ugrave;":"ù","&uharl;":"↿","&uharr;":"↾","&uhblk;":"▀","&ulcorn;":"⌜","&ulcorner;":"⌜","&ulcrop;":"⌏","&ultri;":"◸","&umacr;":"ū","&uml":"¨","&uml;":"¨","&uogon;":"ų","&uopf;":"𝕦","&uparrow;":"↑","&updownarrow;":"↕","&upharpoonleft;":"↿","&upharpoonright;":"↾","&uplus;":"⊎","&upsi;":"υ","&upsih;":"ϒ","&upsilon;":"υ","&upuparrows;":"⇈","&urcorn;":"⌝","&urcorner;":"⌝","&urcrop;":"⌎","&uring;":"ů","&urtri;":"◹","&uscr;":"𝓊","&utdot;":"⋰","&utilde;":"ũ","&utri;":"▵","&utrif;":"▴","&uuarr;":"⇈","&uuml":"ü","&uuml;":"ü","&uwangle;":"⦧","&vArr;":"⇕","&vBar;":"⫨","&vBarv;":"⫩","&vDash;":"⊨","&vangrt;":"⦜","&varepsilon;":"ϵ","&varkappa;":"ϰ","&varnothing;":"∅","&varphi;":"ϕ","&varpi;":"ϖ","&varpropto;":"∝","&varr;":"↕","&varrho;":"ϱ","&varsigma;":"ς","&varsubsetneq;":"⊊︀","&varsubsetneqq;":"⫋︀","&varsupsetneq;":"⊋︀","&varsupsetneqq;":"⫌︀","&vartheta;":"ϑ","&vartriangleleft;":"⊲","&vartriangleright;":"⊳","&vcy;":"в","&vdash;":"⊢","&vee;":"∨","&veebar;":"⊻","&veeeq;":"≚","&vellip;":"⋮","&verbar;":"|","&vert;":"|","&vfr;":"𝔳","&vltri;":"⊲","&vnsub;":"⊂⃒","&vnsup;":"⊃⃒","&vopf;":"𝕧","&vprop;":"∝","&vrtri;":"⊳","&vscr;":"𝓋","&vsubnE;":"⫋︀","&vsubne;":"⊊︀","&vsupnE;":"⫌︀","&vsupne;":"⊋︀","&vzigzag;":"⦚","&wcirc;":"ŵ","&wedbar;":"⩟","&wedge;":"∧","&wedgeq;":"≙","&weierp;":"℘","&wfr;":"𝔴","&wopf;":"𝕨","&wp;":"℘","&wr;":"≀","&wreath;":"≀","&wscr;":"𝓌","&xcap;":"⋂","&xcirc;":"◯","&xcup;":"⋃","&xdtri;":"▽","&xfr;":"𝔵","&xhArr;":"⟺","&xharr;":"⟷","&xi;":"ξ","&xlArr;":"⟸","&xlarr;":"⟵","&xmap;":"⟼","&xnis;":"⋻","&xodot;":"⨀","&xopf;":"𝕩","&xoplus;":"⨁","&xotime;":"⨂","&xrArr;":"⟹","&xrarr;":"⟶","&xscr;":"𝓍","&xsqcup;":"⨆","&xuplus;":"⨄","&xutri;":"△","&xvee;":"⋁","&xwedge;":"⋀","&yacute":"ý","&yacute;":"ý","&yacy;":"я","&ycirc;":"ŷ","&ycy;":"ы","&yen":"¥","&yen;":"¥","&yfr;":"𝔶","&yicy;":"ї","&yopf;":"𝕪","&yscr;":"𝓎","&yucy;":"ю","&yuml":"ÿ","&yuml;":"ÿ","&zacute;":"ź","&zcaron;":"ž","&zcy;":"з","&zdot;":"ż","&zeetrf;":"ℨ","&zeta;":"ζ","&zfr;":"𝔷","&zhcy;":"ж","&zigrarr;":"⇝","&zopf;":"𝕫","&zscr;":"𝓏","&zwj;":"‍","&zwnj;":"‌"};function C(e){return e.trim().replace(/[<>"'?&]/g,(e=>{let t=e.charCodeAt(0).toString(16);return t.length<2&&(t="0"+t),"&#x"+t.toUpperCase()+";"}))}function I(e){return[].concat(e.name||[]).concat(e.name?`<${e.address}>`:e.address).join(" ")}function V(e){let t=[],r=(e,i)=>{if(i&&t.push(", "),e.group){let i=";";t.push(`${e.name}:`),e.group.forEach(r),t.push(i)}else t.push(I(e))};return e.forEach(r),t.join("")}function $(e){return`<a href="mailto:${C(e.address)}" class="postal-email-address">${C(e.name||`<${e.address}>`)}</a>`}function j(e){let t=[],r=(e,i)=>{if(i&&t.push('<span class="postal-email-address-separator">, </span>'),e.group){let i=`<span class="postal-email-address-group">${C(e.name)}:</span>`,s='<span class="postal-email-address-group">;</span>';t.push(i),e.group.forEach(r),t.push(s)}else t.push($(e))};return e.forEach(r),t.join(" ")}function z(e){let t=[];if(e.from&&t.push({key:"From",val:I(e.from)}),e.subject&&t.push({key:"Subject",val:e.subject}),e.date){let r="undefined"==typeof Intl?e.date:new Intl.DateTimeFormat("default",{year:"numeric",month:"numeric",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric",hour12:!1}).format(new Date(e.date));t.push({key:"Date",val:r})}e.to&&e.to.length&&t.push({key:"To",val:V(e.to)}),e.cc&&e.cc.length&&t.push({key:"Cc",val:V(e.cc)}),e.bcc&&e.bcc.length&&t.push({key:"Bcc",val:V(e.bcc)});let r=t.map((e=>e.key.length)).reduce(((e,t)=>t>e?t:e),0);t=t.flatMap((e=>{let t=r-e.key.length,i=`${e.key}: ${" ".repeat(t)}`,s=`${" ".repeat(e.key.length+1)} ${" ".repeat(t)}`;return function(e,t){t=t||76;let r,i,s=0,a=(e=(e||"").toString()).length,o="";for(;s<a;){if(r=e.substr(s,t),r.length<t){o+=r;break}(i=r.match(/^[^\n\r]*(\r?\n|\r)/))?(r=i[0],o+=r,s+=r.length):((i=r.match(/(\s+)[^\s]*$/))&&i[0].length-(i[1]||"").length<r.length?r=r.substr(0,r.length-(i[0].length-(i[1]||"").length)):(i=e.substr(s+r.length).match(/^[^\s]+(\s*)/))&&(r+=i[0].substr(0,i[0].length-0)),o+=r,s+=r.length,s<a&&(o+="\r\n"))}return o}(e.val,80).split(/\r?\n/).map((e=>e.trim())).map(((e,t)=>`${t?s:i}${e}`))}));let i=t.map((e=>e.length)).reduce(((e,t)=>t>e?t:e),0),s="-".repeat(i);return`\n${s}\n${t.join("\n")}\n${s}\n`}function O(e){let t=[];if(e.from&&t.push(`<div class="postal-email-header-key">From</div><div class="postal-email-header-value">${$(e.from)}</div>`),e.subject&&t.push(`<div class="postal-email-header-key">Subject</div><div class="postal-email-header-value postal-email-header-subject">${C(e.subject)}</div>`),e.date){let r="undefined"==typeof Intl?e.date:new Intl.DateTimeFormat("default",{year:"numeric",month:"numeric",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric",hour12:!1}).format(new Date(e.date));t.push(`<div class="postal-email-header-key">Date</div><div class="postal-email-header-value postal-email-header-date" data-date="${C(e.date)}">${C(r)}</div>`)}return e.to&&e.to.length&&t.push(`<div class="postal-email-header-key">To</div><div class="postal-email-header-value">${j(e.to)}</div>`),e.cc&&e.cc.length&&t.push(`<div class="postal-email-header-key">Cc</div><div class="postal-email-header-value">${j(e.cc)}</div>`),e.bcc&&e.bcc.length&&t.push(`<div class="postal-email-header-key">Bcc</div><div class="postal-email-header-value">${j(e.bcc)}</div>`),`<div class="postal-email-header">${t.length?'<div class="postal-email-header-row">':""}${t.join('</div>\n<div class="postal-email-header-row">')}${t.length?"</div>":""}</div>`}class G{constructor(e){this.str=(e||"").toString(),this.operatorCurrent="",this.operatorExpecting="",this.node=null,this.escaped=!1,this.list=[],this.operators={'"':'"',"(":")","<":">",",":"",":":";",";":""}}tokenize(){let e=[];for(let e=0,t=this.str.length;e<t;e++){let r=this.str.charAt(e),i=e<t-1?this.str.charAt(e+1):null;this.checkChar(r,i)}return this.list.forEach((t=>{t.value=(t.value||"").toString().trim(),t.value&&e.push(t)})),e}checkChar(e,t){if(this.escaped);else{if(e===this.operatorExpecting)return this.node={type:"operator",value:e},t&&![" ","\t","\r","\n",",",";"].includes(t)&&(this.node.noBreak=!0),this.list.push(this.node),this.node=null,this.operatorExpecting="",void(this.escaped=!1);if(!this.operatorExpecting&&e in this.operators)return this.node={type:"operator",value:e},this.list.push(this.node),this.node=null,this.operatorExpecting=this.operators[e],void(this.escaped=!1);if('"'===this.operatorExpecting&&"\\"===e)return void(this.escaped=!0)}this.node||(this.node={type:"text",value:""},this.list.push(this.node)),"\n"===e&&(e=" "),(e.charCodeAt(0)>=33||[" ","\t"].includes(e))&&(this.node.value+=e),this.escaped=!1}}function H(e,t){let r=(t=t||{})._depth||0;if(r>50)return[];let i=new G(e).tokenize(),s=[],a=[],o=[];if(i.forEach((e=>{"operator"!==e.type||","!==e.value&&";"!==e.value?a.push(e):(a.length&&s.push(a),a=[])})),a.length&&s.push(a),s.forEach((e=>{e=function(e,t){let r,i,s,a=!1,o="text",n=[],l={address:[],comment:[],group:[],text:[],textWasQuoted:[]},c=!1;for(i=0,s=e.length;i<s;i++){let t=e[i],r=i?e[i-1]:null;if("operator"===t.type)switch(t.value){case"<":o="address",c=!1;break;case"(":o="comment",c=!1;break;case":":o="group",a=!0,c=!1;break;case'"':c=!c,o="text";break;default:o="text",c=!1}else t.value&&("address"===o&&(t.value=t.value.replace(/^[^<]*<\s*/,"")),r&&r.noBreak&&l[o].length?(l[o][l[o].length-1]+=t.value,"text"===o&&c&&(l.textWasQuoted[l.textWasQuoted.length-1]=!0)):(l[o].push(t.value),"text"===o&&l.textWasQuoted.push(c)))}if(!l.text.length&&l.comment.length&&(l.text=l.comment,l.comment=[]),a){l.text=l.text.join(" ");let e=[];l.group.length&&H(l.group.join(","),{_depth:t+1}).forEach((t=>{t.group?e=e.concat(t.group):e.push(t)})),n.push({name:k(l.text||r&&r.name),group:e})}else{if(!l.address.length&&l.text.length){for(i=l.text.length-1;i>=0;i--)if(!l.textWasQuoted[i]&&l.text[i].match(/^[^@\s]+@[^@\s]+$/)){l.address=l.text.splice(i,1),l.textWasQuoted.splice(i,1);break}let e=function(e){return l.address.length?e:(l.address=[e.trim()]," ")};if(!l.address.length)for(i=l.text.length-1;i>=0&&(l.textWasQuoted[i]||(l.text[i]=l.text[i].replace(/\s*\b[^@\s]+@[^\s]+\b\s*/,e).trim(),!l.address.length));i--);}if(!l.text.length&&l.comment.length&&(l.text=l.comment,l.comment=[]),l.address.length>1&&(l.text=l.text.concat(l.address.splice(1))),l.text=l.text.join(" "),l.address=l.address.join(" "),!l.address&&/^=\?[^=]+?=$/.test(l.text.trim())){const e=k(l.text);if(/<[^<>]+@[^<>]+>/.test(e)){const t=H(e);if(t&&t.length)return t}return[{address:"",name:e}]}r={address:l.address||l.text||"",name:k(l.text||l.address||"")},r.address===r.name&&((r.address||"").match(/@/)?r.name="":r.address=""),n.push(r)}return n}(e,r),e.length&&(o=o.concat(e))})),t.flatten){let e=[],t=r=>{r.forEach((r=>{if(r.group)return t(r.group);e.push(r)}))};return t(o),e}return o}function P(e){for(var t,r="",i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=new Uint8Array(e),a=s.byteLength,o=a%3,n=a-o,l=0;l<n;l+=3)r+=i[(16515072&(t=s[l]<<16|s[l+1]<<8|s[l+2]))>>18]+i[(258048&t)>>12]+i[(4032&t)>>6]+i[63&t];return 1==o?r+=i[(252&(t=s[n]))>>2]+i[(3&t)<<4]+"==":2==o&&(r+=i[(64512&(t=s[n]<<8|s[n+1]))>>10]+i[(1008&t)>>4]+i[(15&t)<<2]+"="),r}function F(e){return e.replace(/-(.)/g,((e,t)=>t.toUpperCase()))}function M(e,t,r){if(null==e)return t;if("number"!=typeof e||!Number.isInteger(e)||e<0)throw new TypeError(`${r} must be a non-negative integer`);return e}class _{static async parse(e,t){return new _(t).parse(e)}constructor(e,t=0){this.options=e||{},this.mimeOptions={maxNestingDepth:M(this.options.maxNestingDepth,256,"maxNestingDepth"),maxHeadersSize:M(this.options.maxHeadersSize,2097152,"maxHeadersSize")},this.maxRfc822NestingDepth=M(this.options.maxRfc822NestingDepth,10,"maxRfc822NestingDepth"),this.rfc822NestingDepth=t,this.root=this.currentNode=new U({postalMime:this,...this.mimeOptions}),this.boundaries=[],this.textContent={},this.attachments=[],this.attachmentEncoding=(this.options.attachmentEncoding||"").toString().replace(/[-_\s]/g,"").trim().toLowerCase()||"arraybuffer",this.started=!1}async finalize(){await this.root.finalize()}async processLine(e,t){let r=this.boundaries;if(r.length&&e.length>2&&45===e[0]&&45===e[1])for(let i=r.length-1;i>=0;i--){let s=r[i];if(e.length<s.value.length+2)continue;let a=!0;for(let t=0;t<s.value.length;t++)if(e[t+2]!==s.value[t]){a=!1;break}if(!a)continue;let o=s.value.length+2,n=!1;e.length>=s.value.length+4&&45===e[s.value.length+2]&&45===e[s.value.length+3]&&(n=!0,o=s.value.length+4);let l=!0;for(let t=o;t<e.length;t++)if(32!==e[t]&&9!==e[t]){l=!1;break}if(l)return n?(await s.node.finalize(),this.currentNode=s.node.parentNode||this.root):(await s.node.finalizeChildNodes(),this.currentNode=new U({postalMime:this,parentNode:s.node,parentMultipartType:s.node.contentType.multipart,...this.mimeOptions})),t?this.finalize():void 0}if(this.currentNode.feed(e),t)return this.finalize()}readLine(){let e=this.readPos,t=this.readPos;for(;this.readPos<this.av.length;){const r=this.av[this.readPos++];if(13!==r&&10!==r&&(t=this.readPos),10===r)return{bytes:new Uint8Array(this.buf,e,t-e),done:this.readPos>=this.av.length}}return{bytes:new Uint8Array(this.buf,e,t-e),done:this.readPos>=this.av.length}}async processNodeTree(){let e={},t=new Set,r=this.textMap=new Map,i=this.forceRfc822Attachments(),s=async(e,a,o)=>{if(a=a||!1,o=o||!1,e.contentType.multipart)"alternative"===e.contentType.multipart?a=e:"related"===e.contentType.multipart&&(o=e);else{const s=this.isInlineMessageRfc822(e)&&!i,n=s&&this.rfc822NestingDepth>=this.maxRfc822NestingDepth;if(s&&!n){const i=new _({...this.mimeOptions,maxRfc822NestingDepth:this.maxRfc822NestingDepth,attachmentEncoding:"arraybuffer"},this.rfc822NestingDepth+1);e.subMessage=await i.parse(e.content),r.has(e)||r.set(e,{});let s=r.get(e);!e.subMessage.text&&e.subMessage.html||(s.plain=s.plain||[],s.plain.push({type:"subMessage",value:e.subMessage}),t.add("plain")),e.subMessage.html&&(s.html=s.html||[],s.html.push({type:"subMessage",value:e.subMessage}),t.add("html")),i.textMap&&i.textMap.forEach(((e,t)=>{r.set(t,e)}));for(let t of e.subMessage.attachments||[])this.attachments.push(t)}else if(this.isInlineTextNode(e)){let i=e.contentType.parsed.value.substr(e.contentType.parsed.value.indexOf("/")+1),s=a||e;r.has(s)||r.set(s,{});let o=r.get(s);o[i]=o[i]||[],o[i].push({type:"text",value:e.getTextContent()}),t.add(i)}else if(e.content){const t=e.contentDisposition?.parsed?.params?.filename||e.contentType.parsed.params.name||null,r={filename:t?k(t):null,mimeType:e.contentType.parsed.value,disposition:e.contentDisposition?.parsed?.value||null};switch(o&&e.contentId&&!n&&(r.related=!0),n&&(r.rfc822DepthExceeded=!0),e.contentDescription&&(r.description=e.contentDescription),e.contentId&&(r.contentId=e.contentId),e.contentType.parsed.value){case"text/calendar":case"application/ics":{e.contentType.parsed.params.method&&(r.method=e.contentType.parsed.params.method.toString().toUpperCase().trim());const t=e.getTextContent().replace(/\r?\n/g,"\n").replace(/\n*$/,"\n");r.content=m.encode(t);break}default:r.content=e.content}this.attachments.push(r)}}for(let t of e.childNodes)await s(t,a,o)};await s(this.root,!1,!1),r.forEach((r=>{t.forEach((t=>{if(e[t]||(e[t]=[]),r[t])r[t].forEach((r=>{switch(r.type){case"text":e[t].push(r.value);break;case"subMessage":switch(t){case"html":e[t].push(O(r.value));break;case"plain":e[t].push(z(r.value))}}}));else{let i;switch(t){case"html":i="plain";break;case"plain":i="html"}(r[i]||[]).forEach((r=>{switch(r.type){case"text":switch(t){case"html":e[t].push("<div>"+C(r.value).replace(/\n/g,"<br />")+"</div>");break;case"plain":e[t].push(function(e){return e.replace(/&(#\d+|#x[a-f0-9]+|[a-z]+\d*);?/gi,((e,t)=>{if("string"==typeof B[e])return B[e];if("#"!==t.charAt(0)||";"!==e.charAt(e.length-1))return e;let r;r="x"===t.charAt(1)?parseInt(t.substr(2),16):parseInt(t.substr(1),10);let i="";return r>=55296&&r<=57343||r>1114111?"�":(r>65535&&(r-=65536,i+=String.fromCharCode(r>>>10&1023|55296),r=56320|1023&r),i+=String.fromCharCode(r),i)}))}(r.value.replace(/\r?\n/g,"").replace(/<\!\-\-.*?\-\->/gi," ").replace(/<br\b[^>]*>/gi,"\n").replace(/<\/?(p|div|table|tr|td|th)\b[^>]*>/gi,"\n\n").replace(/<script\b[^>]*>.*?<\/script\b[^>]*>/gi," ").replace(/^.*<body\b[^>]*>/i,"").replace(/^.*<\/head\b[^>]*>/i,"").replace(/^.*<\!doctype\b[^>]*>/i,"").replace(/<\/body\b[^>]*>.*$/i,"").replace(/<\/html\b[^>]*>.*$/i,"").replace(/<a\b[^>]*href\s*=\s*["']?([^\s"']+)[^>]*>/gi," ($1) ").replace(/<\/?(span|em|i|strong|b|u|a)\b[^>]*>/gi,"").replace(/<li\b[^>]*>[\n\u0001\s]*/gi,"* ").replace(/<hr\b[^>]*>/g,"\n-------------\n").replace(/<[^>]*>/g," ").replace(/\u0001/g,"\n").replace(/[ \t]+/g," ").replace(/^\s+$/gm,"").replace(/\n\n+/g,"\n\n").replace(/^\n+/,"\n").replace(/\n+$/,"\n")))}break;case"subMessage":switch(t){case"html":e[t].push(O(r.value));break;case"plain":e[t].push(z(r.value))}}}))}}))})),Object.keys(e).forEach((t=>{e[t]=e[t].join("\n")})),this.textContent=e}isInlineTextNode(e){if("attachment"===e.contentDisposition?.parsed?.value)return!1;switch(e.contentType.parsed?.value){case"text/html":case"text/plain":return!0;default:return!1}}isInlineMessageRfc822(e){return"message/rfc822"===e.contentType.parsed?.value&&"inline"===(e.contentDisposition?.parsed?.value||(this.options.rfc822Attachments?"attachment":"inline"))}forceRfc822Attachments(){if(this.options.forceRfc822Attachments)return!0;let e=!1,t=r=>{r.contentType.multipart||r.contentType.parsed&&["message/delivery-status","message/feedback-report"].includes(r.contentType.parsed.value)&&(e=!0);for(let e of r.childNodes)t(e)};return t(this.root),e}async resolveStream(e){let t=0,r=[];const i=e.getReader();for(;;){const{done:e,value:s}=await i.read();if(e)break;r.push(s),t+=s.length}const s=new Uint8Array(t);let a=0;for(let e of r)s.set(e,a),a+=e.length;return s}async parse(e){if(this.started)throw new Error("Can not reuse parser, create a new PostalMime object");for(this.started=!0,e&&"function"==typeof e.getReader&&(e=await this.resolveStream(e)),"string"==typeof(e=e||new ArrayBuffer(0))&&(e=m.encode(e)),(e instanceof Blob||"[object Blob]"===Object.prototype.toString.call(e))&&(e=await y(e)),e.buffer instanceof ArrayBuffer&&(e=new Uint8Array(e).buffer),this.buf=e,this.av=new Uint8Array(e),this.readPos=0;this.readPos<this.av.length;){const e=this.readLine();await this.processLine(e.bytes,e.done)}await this.processNodeTree();const t={headers:this.root.headers.map((e=>({key:e.key,originalKey:e.originalKey,value:e.value}))).reverse()};for(const e of["from","sender"]){const r=this.root.headers.find((t=>t.key===e));if(r&&r.value){const i=H(r.value);i&&i.length&&(t[e]=i[0])}}for(const e of["delivered-to","return-path"]){const r=this.root.headers.find((t=>t.key===e));if(r&&r.value){const i=H(r.value);i&&i.length&&i[0].address&&(t[F(e)]=i[0].address)}}for(const e of["to","cc","bcc","reply-to"]){const r=this.root.headers.filter((t=>t.key===e));let i=[];r.filter((e=>e&&e.value)).map((e=>H(e.value))).forEach((e=>i=i.concat(e||[]))),i&&i.length&&(t[F(e)]=i)}for(const e of["subject","message-id","in-reply-to","references"]){const r=this.root.headers.find((t=>t.key===e));r&&r.value&&(t[F(e)]=k(r.value))}let r=this.root.headers.find((e=>"date"===e.key));if(r){let e=new Date(r.value);e="Invalid Date"===e.toString()?r.value:e.toISOString(),t.date=e}switch(this.textContent?.html&&(t.html=this.textContent.html),this.textContent?.plain&&(t.text=this.textContent.plain),t.attachments=this.attachments,t.headerLines=(this.root.rawHeaderLines||[]).slice().reverse(),this.attachmentEncoding){case"arraybuffer":break;case"base64":for(let e of t.attachments||[])e?.content&&(e.content=P(e.content),e.encoding="base64");break;case"utf8":let e=new TextDecoder("utf8");for(let r of t.attachments||[])r?.content&&(r.content=e.decode(r.content),r.encoding="utf8");break;default:throw new Error("Unknown attachment encoding")}return t}}var J,Q,Y,Z,K,W,X;const ee=new Set(["image/png","image/jpeg","image/jpg","image/gif","image/webp","image/bmp","image/x-icon","image/vnd.microsoft.icon"]);const te=null!==(Q=null===(J=o.protocols)||void 0===J?void 0:J.src)&&void 0!==Q?Q:[],re=Object.assign(Object.assign({},o),{clobberPrefix:"",protocols:Object.assign(Object.assign({},o.protocols),{src:[...te,"data"]}),attributes:Object.assign(Object.assign({},o.attributes),{table:[...null!==(Y=o.attributes.table)&&void 0!==Y?Y:[],"cellPadding","cellSpacing","border","dir","width","height"],font:["color","size","face"],meta:["charset","content","name"],colgroup:[...null!==(Z=o.attributes.colgroup)&&void 0!==Z?Z:[],"span"],col:[...null!==(K=o.attributes.col)&&void 0!==K?K:[],"width","span"],"*":[...null!==(W=o.attributes["*"])&&void 0!==W?W:[],"style","className","id","dataRemoteSrc"]}),tagNames:[...null!==(X=o.tagNames)&&void 0!==X?X:[],"html","head","body","title","meta","style","colgroup","col","center","font"]});function ie(e){const t=[/behavior\s*:/gi,/expression\s*\(/gi,/-moz-binding\s*:/gi,/vbscript\s*:/gi,/javascript\s*:/gi];let r=e;for(const e of t)r=r.replaceAll(e,"");return r=r.replaceAll(/@import\s+(?:url\([^)]{0,2000}\)|[^;]{0,2000});?/gi,""),r=r.replaceAll(/url\(\s{0,50}(?:"([^"]{0,2000})"|'([^']{0,2000})'|([^"')\s]{1,2000}))\s{0,50}\)/gi,((e,t,r,i)=>{var s,a;return(e=>{const t=e.trim().toLowerCase();return!!(t.startsWith("data:")||t.startsWith("cid:")||t.startsWith("#"))||!t.startsWith("//")&&!/^[a-z][a-z0-9+.-]*:/i.test(t)})((null!==(a=null!==(s=null!=t?t:r)&&void 0!==s?s:i)&&void 0!==a?a:"").trim())?e:'url("")'})),r}async function se(e){const t=await async function(e){try{const t=await fetch(e);if(!t.ok)throw new Error(`Failed to fetch email (${t.status} ${t.statusText})`);return await t.arrayBuffer()}catch(t){const r=t instanceof Error?t.message:String(t);throw new Error(`Failed to load email from ${e}: ${r}`)}}(e),r=await async function(e,t){try{return await _.parse(t,{attachmentEncoding:"arraybuffer"})}catch(t){const r=t instanceof Error?t.message:String(t);throw new Error(`Failed to parse email from ${e}: ${r}`)}}(e,t),i={subject:r.subject||void 0,from:de(r.from),to:pe(r.to),cc:pe(r.cc),date:ae(r,"date")||r.date||void 0},{attachments:s,cidUrlById:a}=function(e){const t=[],r=new Map;for(const s of e.attachments||[]){const e=oe(s.contentId),a=Boolean(e)&&"attachment"!==s.disposition||s.related||"inline"===s.disposition,o=(i=s.content)instanceof ArrayBuffer?new Uint8Array(i):ArrayBuffer.isView(i)?new Uint8Array(i.buffer,i.byteOffset,i.byteLength):void 0;if(!a){t.push({filename:s.filename||void 0,mimeType:s.mimeType||void 0,size:null==o?void 0:o.byteLength});continue}const n=Boolean(o);if(!e||!n){t.push({filename:s.filename||void 0,mimeType:s.mimeType||"application/octet-stream",size:null==o?void 0:o.byteLength});continue}const l=le(s.mimeType,o,s.filename),c=ne(o);r.set(e,`data:${l};base64,${c}`)}var i;return{attachments:t,cidUrlById:r}}(r);return s.length>0&&(i.attachments=s),await async function(e,t,r){const i=(t.html||"").trim();if(i){const t=function(e,t){return 0===t.size?e:e.replaceAll(/(src\s*=\s*["']?)cid:([^"'\s>]+)(["']?)/gi,((e,r,i,s)=>{const a=oe(function(e){try{return decodeURIComponent(e)}catch(t){return e}}(i)),o=t.get(a);return o?`${r}${o}${s}`:e}))}(i,r);e.bodyHtml=await async function(e){const t=await n().use(l).use(c,re).use((()=>e=>{u(e,"element",(e=>{!function(e){var t;if((null==e?void 0:e.tagName)&&((null===(t=e.properties)||void 0===t?void 0:t.style)&&"string"==typeof e.properties.style&&(e.properties.style=ie(e.properties.style)),"style"===e.tagName&&Array.isArray(e.children)))for(const t of e.children)"text"===(null==t?void 0:t.type)&&"string"==typeof t.value&&(t.value=ie(t.value))}(e),function(e){var t;if(!(null==e?void 0:e.tagName)||"img"!==e.tagName)return;const r=null===(t=e.properties)||void 0===t?void 0:t.src;if("string"!=typeof r)return;const i=function(e){const t=e.trim();if(!t)return;if(!t.toLowerCase().startsWith("data:"))return;const r=function(e){var t;const r=/^data:([^;,]+)(?:;charset=[^;,]+)?(?:;base64)?,/i.exec(e);return(null===(t=null==r?void 0:r[1])||void 0===t?void 0:t.toLowerCase())||void 0}(t);return r&&ee.has(r)?t:void 0}(r);if(i)return e.properties.src=i,void delete e.properties.dataRemoteSrc;const s=function(e){const t=e.trim(),r=t.toLowerCase();if(r.startsWith("http://")||r.startsWith("https://"))return t}(r);if(s)return e.properties.dataRemoteSrc=s,void delete e.properties.src;delete e.properties.src}(e)}))})).use(h).process(e);return t.toString()}(t)}else e.bodyText=(t.text||"").trim()||void 0}(i,r,a),i}function ae(e,t){const r=(e.headers||[]).find((e=>e.key===t.toLowerCase()));return(null==r?void 0:r.value)||void 0}function oe(e){if(!e)return"";let t=e.trim();return t.toLowerCase().startsWith("cid:")&&(t=t.slice(4).trim()),t.startsWith("<")&&(t=t.slice(1)),t.endsWith(">")&&(t=t.slice(0,-1)),t.trim()}function ne(e){if("function"==typeof btoa){let t="";for(const r of e)t+=String.fromCharCode(r);return btoa(t)}return globalThis.Buffer.from(e).toString("base64")}function le(e,t,r){const i="string"==typeof e?e.trim().toLowerCase():"",s=function(e){var t,r,i,s,a;return null!==(a=null!==(s=null!==(i=null!==(r=null!==(t=function(e){if(ce(e,[137,80,78,71,13,10,26,10]))return"image/png"}(e))&&void 0!==t?t:function(e){if(ce(e,[255,216,255]))return"image/jpeg"}(e))&&void 0!==r?r:function(e){const t=ue(e,0,6);if("GIF87a"===t||"GIF89a"===t)return"image/gif"}(e))&&void 0!==i?i:function(e){const t=ue(e,0,4),r=ue(e,8,12);if("RIFF"===t&&"WEBP"===r)return"image/webp"}(e))&&void 0!==s?s:function(e){if(ce(e,[0,0,1,0]))return"image/x-icon"}(e))&&void 0!==a?a:function(e){if(e.length<5)return;const t=new TextDecoder("utf8",{fatal:!1}).decode(e.slice(0,Math.min(e.length,256))).trimStart().toLowerCase();return t.startsWith("<svg")||t.startsWith("<?xml")&&t.includes("<svg")?"image/svg+xml":void 0}(e)}(t);if(i.startsWith("image/")){if(a=i,!(o=s)||a===o||"image/jpg"===a&&"image/jpeg"===o||"image/vnd.microsoft.icon"===a&&"image/x-icon"===o)return i;if(s)return s}var a,o;if(s)return s;const n=function(e){const t=null==e?void 0:e.trim().toLowerCase();if(!t||!t.includes("."))return;return{png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",webp:"image/webp",svg:"image/svg+xml",ico:"image/x-icon",bmp:"image/bmp"}[t.slice(t.lastIndexOf(".")+1)]}(r);return n||i||"application/octet-stream"}function ce(e,t){return!(e.length<t.length)&&t.every(((t,r)=>e[r]===t))}function ue(e,t,r){return e.length<r?"":String.fromCodePoint(...e.slice(t,r))}function he(e){return"string"==typeof e&&e.length>0}function pe(e){if(!e)return;const t=(Array.isArray(e)?e:[e]).map((e=>de(e))).filter(he);return t.length>0?t.join(", "):void 0}function de(e){if(!e)return;if(Array.isArray(e))return pe(e);if(e.group&&Array.isArray(e.group)){const t=(e.name||"").trim(),r=e.group.map((e=>de(e))).filter(he).join(", ");return t&&r?`${t}: ${r}`:t||r||void 0}const t=(e.name||"").trim(),r=(e.address||"").trim();if(t&&r){const e=function(e){if(!e)return"";if(!e.includes(",")&&!e.includes('"'))return e;return`"${e.replaceAll("\\","\\\\").replaceAll('"','\\"')}"`}(t);return`${e} <${r}>`}return t||r||void 0}const fe=class{constructor(s){e(this,s),this.action=t(this,"action"),this.allowFullscreen=!1,this.allowOpenInNewTab=!1,this.allowDownload=!1,this.language="en",this.officeViewer="microsoft-office",this.isFullscreen=!1,this.loading=!0,this.fileUrl="",this.renderPdf=()=>[r("div",{class:"action-menu-for-pdf-files"},this.renderActionMenu()),r("iframe",{src:this.sanitizeUrl(this.fileUrl),loading:"lazy"})],this.renderImage=()=>{var e;return r(i,null,this.renderButtons(),r(p,{image:{src:this.sanitizeUrl(this.fileUrl),alt:null!==(e=this.alt)&&void 0!==e?e:"",referrerpolicy:"no-referrer"}}))},this.renderVideo=()=>r("video",{controls:!0},r("source",{src:this.sanitizeUrl(this.fileUrl)})),this.renderAudio=()=>r("audio",{controls:!0},r("source",{src:this.sanitizeUrl(this.fileUrl)})),this.renderText=()=>{const e=[this.renderNoFileSupportMessage(!1)];return[this.renderButtons(),r("object",{data:this.sanitizeUrl(this.fileUrl),type:"text/plain"},e)]},this.renderEmail=()=>this.email?[this.renderButtons(),r("limel-email-viewer",{email:this.email,fallbackUrl:this.sanitizeUrl(this.fileUrl),language:this.language},r("div",{slot:"fallback"},this.renderNoFileSupportMessage(!1)))]:this.renderFileNotFoundMessage(),this.renderOffice=()=>[r("div",{class:"action-menu-for-office-files"},this.renderActionMenu()),r("iframe",{src:this.getOfficeViewerUrl()+encodeURIComponent(this.sanitizeUrl(this.fileUrl))+"&embedded=true",loading:"lazy"})],this.isOfficeFileAccessibleViaURL=()=>"office"===this.fileType&&!(this.fileUrl.startsWith("http://")||this.fileUrl.startsWith("https://")),this.getOfficeViewerUrl=()=>({"microsoft-office":"https://view.officeapps.live.com/op/embed.aspx?src=","google-drive":"https://docs.google.com/gview?url="}[this.officeViewer]),this.renderNoFileSupportMessage=(e=!0)=>r("div",{class:"no-support",role:"alert"},r("h1",null,"⚠️"),r("p",null,this.getTranslation("file-viewer.message.unsupported-filetype")),r("p",{style:{textAlign:"center",margin:"0 auto"}},this.getTranslation("file-viewer.message.try-other-options")),e&&this.renderDownloadButton()),this.renderFileNotFoundMessage=()=>r("div",{class:"no-support",role:"alert"},r("h1",null,"⚠️"),r("p",null,this.getTranslation("file-viewer.message.file-not-found"))),this.renderButtons=()=>r("div",{class:"buttons"},this.renderActionMenu(),this.renderToggleFullscreenButton(),this.renderDownloadButton(),this.renderOpenInNewTabButton()),this.renderToggleFullscreenButton=()=>{if(!this.allowFullscreen||!this.fullscreen.isSupported())return;const e=this.isFullscreen?"multiply":"fit_to_width",t=this.getTranslation(this.isFullscreen?"file-viewer.exit-fullscreen":"file-viewer.open-in-fullscreen");return[r("button",{class:"button--toggle-fullscreen",id:"tooltip-toggle-fullscreen",role:"button",onClick:this.handleToggleFullscreen},r("limel-icon",{name:e}),r("limel-tooltip",{label:t,elementId:"tooltip-toggle-fullscreen",openDirection:"left"}))]},this.renderDownloadButton=()=>{var e;if(this.allowDownload&&!this.isFullscreen)return r("a",{class:"button--download",id:"tooltip-download",role:"button",download:null!==(e=this.filename)&&void 0!==e?e:"",href:this.sanitizeUrl(this.fileUrl),target:"_blank"},r("limel-icon",{name:"download_2"}),r("limel-tooltip",{label:this.getTranslation("file-viewer.download"),elementId:"tooltip-download",openDirection:"left"}))},this.renderOpenInNewTabButton=()=>{if(this.allowOpenInNewTab&&!this.isFullscreen)return r("a",{class:"button--new-tab",id:"tooltip-new-tab",role:"button",href:this.sanitizeUrl(this.fileUrl),target:"_blank",rel:"noopener noreferrer"},r("limel-icon",{name:"external_link"}),r("limel-tooltip",{label:this.getTranslation("file-viewer.open-in-new-tab"),elementId:"tooltip-new-tab",openDirection:"left"}))},this.renderActionMenu=()=>{if(this.actions&&!this.isFullscreen)return r("limel-menu",{class:"action-menu",items:this.actions,onSelect:this.emitOnAction,"open-direction":"left"},r("button",{class:"button--action",id:"tooltip-more",role:"button",slot:"trigger"},r("limel-icon",{name:"menu_2"}),r("limel-tooltip",{label:this.getTranslation("file-viewer.more-actions"),elementId:"tooltip-more",openDirection:"left"})))},this.createURL=async e=>{this.revokePdfBlobUrl();const t={pdf:this.loadPdf,email:this.loadEmail}[e]||this.loadDefault;try{await t()}finally{this.loading=!1}},this.loadPdf=async()=>{const e=await fetch(this.url);if(!e.ok)throw new Error(`Failed to load PDF (${e.status} ${e.statusText})`);const t=await e.blob();this.fileUrl=URL.createObjectURL(t),this.pdfBlobUrl=this.fileUrl},this.loadEmail=async()=>{try{this.email=await se(this.url),this.fileUrl=this.url}catch(e){this.email=void 0,this.fileUrl=""}},this.loadDefault=async()=>{this.fileUrl=this.url},this.handleToggleFullscreen=()=>{this.fullscreen.isSupported()&&(this.fullscreen.toggle(),this.isFullscreen=!this.isFullscreen)},this.emitOnAction=e=>{e.stopPropagation(),this.action.emit(e.detail)},this.fullscreen=new f(this.HostElement)}disconnectedCallback(){void 0!==this.revokeAnimationFrame&&cancelAnimationFrame(this.revokeAnimationFrame),this.revokeAnimationFrame=requestAnimationFrame((()=>{this.revokePdfBlobUrl(),this.revokeAnimationFrame=void 0}))}connectedCallback(){void 0!==this.revokeAnimationFrame&&(cancelAnimationFrame(this.revokeAnimationFrame),this.revokeAnimationFrame=void 0)}async componentWillLoad(){this.fileType=d(this.filename,this.url),await this.createURL(this.fileType)}render(){return this.isOfficeFileAccessibleViaURL?this.loading?r("limel-spinner",{size:"x-small",limeBranded:!1}):this.renderFileViewer():this.renderNoFileSupportMessage()}async watchUrl(e,t){e!==t&&(this.loading=!0,this.fileType=d(this.filename,this.fileUrl),await this.createURL(this.fileType))}renderFileViewer(){return({pdf:this.renderPdf,image:this.renderImage,video:this.renderVideo,audio:this.renderAudio,text:this.renderText,email:this.renderEmail,office:this.renderOffice}[this.fileType]||this.renderNoFileSupportMessage)()}revokePdfBlobUrl(){this.pdfBlobUrl&&(URL.revokeObjectURL(this.pdfBlobUrl),this.pdfBlobUrl=void 0)}sanitizeUrl(e){if(!(null==e?void 0:e.trim()))return"";try{const t=new URL(e,window.location.href);return["http:","https:","blob:"].includes(t.protocol)?t.href:""}catch(e){return""}}getTranslation(e){return a.get(e,this.language)}get HostElement(){return s(this)}static get watchers(){return{url:[{watchUrl:0}]}}};fe.style='@charset "UTF-8";.buttons{position:absolute;z-index:1;bottom:0.25rem;right:0.25rem;display:flex;flex-direction:column;gap:0.25rem}@media (pointer: coarse){.buttons{gap:0.5rem}}.no-support{display:flex;flex-direction:column;gap:0.5rem;align-items:center;border:1px dashed rgb(var(--contrast-600));border-radius:0.5rem;padding:1.25rem}.no-support h1,.no-support p{margin:0}[class^=button--]{all:unset;transition:color var(--limel-clickable-transition-speed, 0.4s) ease, background-color var(--limel-clickable-transition-speed, 0.4s) ease, box-shadow var(--limel-clickable-transform-speed, 0.4s) ease, transform var(--limel-clickable-transform-speed, 0.4s) var(--limel-clickable-transform-timing-function, ease);cursor:pointer;color:var(--limel-theme-on-surface-color);background-color:var(--lime-elevated-surface-background-color);box-shadow:var(--button-shadow-normal)}[class^=button--]:hover,[class^=button--]:focus,[class^=button--]:focus-visible{will-change:color, background-color, box-shadow, transform}[class^=button--]:hover,[class^=button--]:focus-visible{transform:translate3d(0, -0.04rem, 0);color:var(--limel-theme-on-surface-color);background-color:var(--lime-elevated-surface-background-color);box-shadow:var(--button-shadow-hovered)}[class^=button--]:active{--limel-clickable-transform-timing-function:cubic-bezier( 0.83, -0.15, 0.49, 1.16 );transform:translate3d(0, 0.05rem, 0);box-shadow:var(--button-shadow-pressed)}[class^=button--]:hover,[class^=button--]:active{--limel-clickable-transition-speed:0.2s;--limel-clickable-transform-speed:0.16s}[class^=button--]:focus{outline:none}[class^=button--]:focus-visible{outline:none;box-shadow:var(--shadow-depth-8-focused)}[class^=button--]{display:flex;align-items:center;justify-content:center;border-radius:50%;width:var(--limel-file-viewer-size-of-buttons);height:var(--limel-file-viewer-size-of-buttons);background-color:rgba(var(--contrast-100), 0.8);backdrop-filter:blur(0.25rem);-webkit-backdrop-filter:blur(0.25rem)}[class^=button--] limel-icon{transition:color 0.2s ease;width:1.25rem;color:rgb(var(--contrast-1200))}[class^=button--]:hover limel-icon{color:rgb(var(--contrast-1400))}.action-menu-for-pdf-files,.action-menu-for-office-files{position:absolute;right:0.75rem}.action-menu-for-pdf-files{bottom:0.75rem}.action-menu-for-office-files{top:0.75rem}:host{--limel-file-viewer-size-of-buttons:2rem;isolation:isolate;position:relative;box-sizing:border-box;display:flex;align-items:center;justify-content:center;width:100%;height:100%}*{box-sizing:border-box}img,video,audio,object,iframe{max-height:100%;max-width:100%;box-sizing:border-box}iframe{border:none;width:100%;height:100%;min-height:20rem}img{min-width:7rem;object-fit:contain}video{width:100%;height:auto}audio{width:100%}object{width:100%;height:100%}object[type="application/pdf"]{min-height:20rem}object[type="text/plain"]{border-radius:0.25rem;padding-right:var(--limel-file-viewer-size-of-buttons);overflow-y:auto}:host(:fullscreen){background-color:rgb(var(--color-gray-darker))}:host(:fullscreen) object[type="text/plain"]{max-width:50rem;max-height:calc(100% - 2rem)}:host(:-webkit-full-screen){background-color:rgb(var(--color-gray-darker))}:host(:-webkit-full-screen) object[type="text/plain"]{max-width:50rem;max-height:calc(100% - 2rem)}';export{fe as limel_file_viewer}
@@ -21,6 +21,7 @@ import { CustomElementDefinition } from '../../global/shared-types/custom-elemen
21
21
  * @exampleComponent limel-example-markdown-code
22
22
  * @exampleComponent limel-example-markdown-footnotes
23
23
  * @exampleComponent limel-example-markdown-tables
24
+ * @exampleComponent limel-example-markdown-html-tables
24
25
  * @exampleComponent limel-example-markdown-html
25
26
  * @exampleComponent limel-example-markdown-keys
26
27
  * @exampleComponent limel-example-markdown-blockquotes
@@ -8,14 +8,18 @@ export declare function sanitizeStyle(node: any): void;
8
8
  * Applies a whitelist to the CSS properties in the input string.
9
9
  * Any CSS properties not in the whitelist will be removed.
10
10
  *
11
+ * A zero width is also removed from `table` elements. Some HTML sources
12
+ * (e.g. Google Sheets) set `width: 0px` on the table element and define
13
+ * the real column widths in `colgroup`; a zero width forces the table
14
+ * down to its min-content size, crushing every column to its longest
15
+ * word. A zero width on a table can only ever harm rendering, since
16
+ * auto layout already floors the table at min-content.
17
+ *
11
18
  * @param styleValue - a string with CSS properties and values
19
+ * @param tagName - tag name of the element the style belongs to
12
20
  * @returns a sanitized version of the input string
13
21
  */
14
- /**
15
- *
16
- * @param styleValue
17
- */
18
- export declare function sanitizeStyleValue(styleValue: string): string;
22
+ export declare function sanitizeStyleValue(styleValue: string, tagName?: string): string;
19
23
  /**
20
24
  * Returns a copy of the input object with the `background` property removed.
21
25
  * If the `background` property's value was a valid CSS color value, the
@@ -1,6 +1,17 @@
1
1
  import { ListSeparator } from '../list-item/list-item.types';
2
2
  import { Option } from '../select/option.types';
3
3
  /**
4
+ * ## Keyboard
5
+ *
6
+ * Typing characters jumps to the option whose text starts with them, the way
7
+ * a native `<select>` does. Characters accumulate for a short while, so typing
8
+ * `n`, `e` finds "Netherlands" rather than the next option starting with `n`.
9
+ * Pressing the same character repeatedly cycles through all options starting
10
+ * with it. This works both while the dropdown is open, and while the closed
11
+ * component has focus — in which case the dropdown opens with the match
12
+ * highlighted. Typing only moves the highlight; the value is not changed until
13
+ * the option is picked with `Enter` or a click.
14
+ *
4
15
  * @exampleComponent limel-example-select-basic
5
16
  * @exampleComponent limel-example-select-with-icons
6
17
  * @exampleComponent limel-example-select-with-separators
@@ -69,6 +80,13 @@ export declare class Select {
69
80
  private hasPrimaryComponentMemo;
70
81
  protected resetHasChanged(): void;
71
82
  protected updateHasPrimaryComponent(): void;
83
+ /**
84
+ * `options` and `required` are the inputs that decide which rows the
85
+ * dropdown renders, and therefore which row an index refers to. When
86
+ * either changes, a buffered typeahead match no longer points at what the
87
+ * user was aiming for.
88
+ */
89
+ protected resetTypeaheadOnItemsChange(): void;
72
90
  private checkValid;
73
91
  private mdcSelectHelperText;
74
92
  private mdcFloatingLabel;
@@ -76,6 +94,14 @@ export declare class Select {
76
94
  private portalId;
77
95
  private focusObserver;
78
96
  private focusTimeoutId;
97
+ private readonly typeaheadBuffer;
98
+ /**
99
+ * The row a typeahead match wants to focus, when it could not be focused
100
+ * right away — because the dropdown had not opened or rendered yet. It is
101
+ * consumed by `setMenuFocus`, once focus is about to land in the menu.
102
+ */
103
+ private pendingTypeaheadIndex;
104
+ private list;
79
105
  constructor();
80
106
  connectedCallback(): void;
81
107
  componentWillLoad(): void;
@@ -88,6 +114,18 @@ export declare class Select {
88
114
  private setMenuFocus;
89
115
  private cancelPendingFocus;
90
116
  private focusFirstMenuItem;
117
+ /**
118
+ * Focus the row at a given index in the dropdown.
119
+ *
120
+ * The rows only become focusable once `limel-list` has set up `MDCList`,
121
+ * which is what gives them a `tabindex`. Callers use the return value to
122
+ * fall back to `pendingTypeaheadIndex` when that has not happened yet.
123
+ *
124
+ * @param list - the `limel-list` of the dropdown
125
+ * @param index - the index of the row, as rendered in its `data-index`
126
+ * @returns whether the row could be focused
127
+ */
128
+ private focusMenuItemAtIndex;
91
129
  private setTriggerFocus;
92
130
  private getAnchorElement;
93
131
  private updatePortalAnchor;
@@ -95,7 +133,44 @@ export declare class Select {
95
133
  private openMenu;
96
134
  private getFirstNativeAutoSelectOption;
97
135
  private closeMenu;
98
- private handleMenuTriggerKeyPress;
136
+ private readonly handleMenuTriggerKeyDown;
137
+ private readonly setListElement;
138
+ /**
139
+ * Key handler for the dropdown, in the capture phase.
140
+ *
141
+ * `MDCList` listens for `keydown` on the `ul` inside `limel-list`'s shadow
142
+ * root, so capturing on the `limel-list` element itself is the only place
143
+ * a typed character can be stopped before MDC sees it. It has to be
144
+ * stopped: MDC would add it to its own typeahead buffer, which suppresses
145
+ * selection with `Enter` for as long as that buffer lives, and it treats
146
+ * the space bar as a selection.
147
+ *
148
+ * @param event - the key that was pressed
149
+ */
150
+ private readonly handleListKeyDownCapture;
151
+ /**
152
+ * Move the highlight to the option matching the characters typed so far,
153
+ * the way a native `<select>` does. Never changes the value — the option
154
+ * still has to be picked with `Enter` or a click.
155
+ *
156
+ * @param event - the key that was pressed
157
+ * @param focusedIndex - the row that currently has focus, if any
158
+ * @returns whether the key was handled as typeahead
159
+ */
160
+ private handleTypeaheadKey;
161
+ /**
162
+ * @param items - the items of the dropdown
163
+ * @param focusedIndex - the row that currently has focus, if any
164
+ * @returns the index a typeahead search should start from
165
+ */
166
+ private resolveTypeaheadIndex;
167
+ private focusTypeaheadMatch;
168
+ /**
169
+ * @returns the index of the focused row of the dropdown, or
170
+ * `NO_TYPEAHEAD_MATCH` when no row has focus
171
+ */
172
+ private getFocusedMenuItemIndex;
173
+ private resetTypeahead;
99
174
  private handleNativeChange;
100
175
  private getOptionsExcludingSeparators;
101
176
  private shouldRenderNative;
@@ -15,7 +15,12 @@ interface SelectTemplateProps {
15
15
  onNativeChange: (event: Event) => void;
16
16
  id: string;
17
17
  onMenuChange: (event: CustomEvent<ListItem | ListItem[]>) => void;
18
- onTriggerPress: (event: KeyboardEvent) => void;
18
+ onTriggerKeyDown: (event: KeyboardEvent) => void;
19
+ /**
20
+ * Stencil calls this with `null` when the `limel-list` goes away — on
21
+ * unmount, and when the native dropdown replaces the menu on mobile.
22
+ */
23
+ listRef: (element: HTMLLimelListElement | null) => void;
19
24
  isOpen: boolean;
20
25
  open: () => void;
21
26
  close: () => void;
@@ -24,6 +29,21 @@ interface SelectTemplateProps {
24
29
  anchor?: HTMLElement;
25
30
  }
26
31
  export declare const SelectTemplate: FunctionalComponent<SelectTemplateProps>;
32
+ /**
33
+ * Create the items for the dropdown.
34
+ *
35
+ * The returned array is index-aligned with the `data-index` attribute that
36
+ * `limel-list` renders on each row. Separators are included, and occupy an
37
+ * index. Anything that needs to address a row by index — such as the
38
+ * typeahead in `select.tsx` — must derive its indices from this same array.
39
+ *
40
+ * @param options - the options of the select
41
+ * @param value - the currently selected option or options
42
+ * @param selectIsRequired - whether the select requires a value, in which
43
+ * case the "empty" option is left out
44
+ * @returns the items to render in the dropdown
45
+ */
46
+ export declare function createMenuItems(options: Array<Option | ListSeparator>, value: Option | Option[], selectIsRequired?: boolean): Array<ListItem<Option> | ListSeparator>;
27
47
  /**
28
48
  *
29
49
  * @param options
@@ -2542,6 +2542,7 @@ export namespace Components {
2542
2542
  * @exampleComponent limel-example-markdown-code
2543
2543
  * @exampleComponent limel-example-markdown-footnotes
2544
2544
  * @exampleComponent limel-example-markdown-tables
2545
+ * @exampleComponent limel-example-markdown-html-tables
2545
2546
  * @exampleComponent limel-example-markdown-html
2546
2547
  * @exampleComponent limel-example-markdown-keys
2547
2548
  * @exampleComponent limel-example-markdown-blockquotes
@@ -3321,6 +3322,15 @@ export namespace Components {
3321
3322
  "selectedItem"?: ListItem<string | number>;
3322
3323
  }
3323
3324
  /**
3325
+ * ## Keyboard
3326
+ * Typing characters jumps to the option whose text starts with them, the way
3327
+ * a native `<select>` does. Characters accumulate for a short while, so typing
3328
+ * `n`, `e` finds "Netherlands" rather than the next option starting with `n`.
3329
+ * Pressing the same character repeatedly cycles through all options starting
3330
+ * with it. This works both while the dropdown is open, and while the closed
3331
+ * component has focus — in which case the dropdown opens with the match
3332
+ * highlighted. Typing only moves the highlight; the value is not changed until
3333
+ * the option is picked with `Enter` or a click.
3324
3334
  * @exampleComponent limel-example-select-basic
3325
3335
  * @exampleComponent limel-example-select-with-icons
3326
3336
  * @exampleComponent limel-example-select-with-separators
@@ -5670,6 +5680,7 @@ declare global {
5670
5680
  * @exampleComponent limel-example-markdown-code
5671
5681
  * @exampleComponent limel-example-markdown-footnotes
5672
5682
  * @exampleComponent limel-example-markdown-tables
5683
+ * @exampleComponent limel-example-markdown-html-tables
5673
5684
  * @exampleComponent limel-example-markdown-html
5674
5685
  * @exampleComponent limel-example-markdown-keys
5675
5686
  * @exampleComponent limel-example-markdown-blockquotes
@@ -6131,6 +6142,15 @@ declare global {
6131
6142
  "change": Option | Option[];
6132
6143
  }
6133
6144
  /**
6145
+ * ## Keyboard
6146
+ * Typing characters jumps to the option whose text starts with them, the way
6147
+ * a native `<select>` does. Characters accumulate for a short while, so typing
6148
+ * `n`, `e` finds "Netherlands" rather than the next option starting with `n`.
6149
+ * Pressing the same character repeatedly cycles through all options starting
6150
+ * with it. This works both while the dropdown is open, and while the closed
6151
+ * component has focus — in which case the dropdown opens with the match
6152
+ * highlighted. Typing only moves the highlight; the value is not changed until
6153
+ * the option is picked with `Enter` or a click.
6134
6154
  * @exampleComponent limel-example-select-basic
6135
6155
  * @exampleComponent limel-example-select-with-icons
6136
6156
  * @exampleComponent limel-example-select-with-separators
@@ -9219,6 +9239,7 @@ declare namespace LocalJSX {
9219
9239
  * @exampleComponent limel-example-markdown-code
9220
9240
  * @exampleComponent limel-example-markdown-footnotes
9221
9241
  * @exampleComponent limel-example-markdown-tables
9242
+ * @exampleComponent limel-example-markdown-html-tables
9222
9243
  * @exampleComponent limel-example-markdown-html
9223
9244
  * @exampleComponent limel-example-markdown-keys
9224
9245
  * @exampleComponent limel-example-markdown-blockquotes
@@ -10063,6 +10084,15 @@ declare namespace LocalJSX {
10063
10084
  "selectedItem"?: ListItem<string | number>;
10064
10085
  }
10065
10086
  /**
10087
+ * ## Keyboard
10088
+ * Typing characters jumps to the option whose text starts with them, the way
10089
+ * a native `<select>` does. Characters accumulate for a short while, so typing
10090
+ * `n`, `e` finds "Netherlands" rather than the next option starting with `n`.
10091
+ * Pressing the same character repeatedly cycles through all options starting
10092
+ * with it. This works both while the dropdown is open, and while the closed
10093
+ * component has focus — in which case the dropdown opens with the match
10094
+ * highlighted. Typing only moves the highlight; the value is not changed until
10095
+ * the option is picked with `Enter` or a click.
10066
10096
  * @exampleComponent limel-example-select-basic
10067
10097
  * @exampleComponent limel-example-select-with-icons
10068
10098
  * @exampleComponent limel-example-select-with-separators
@@ -12451,6 +12481,7 @@ declare module "@stencil/core" {
12451
12481
  * @exampleComponent limel-example-markdown-code
12452
12482
  * @exampleComponent limel-example-markdown-footnotes
12453
12483
  * @exampleComponent limel-example-markdown-tables
12484
+ * @exampleComponent limel-example-markdown-html-tables
12454
12485
  * @exampleComponent limel-example-markdown-html
12455
12486
  * @exampleComponent limel-example-markdown-keys
12456
12487
  * @exampleComponent limel-example-markdown-blockquotes
@@ -12705,6 +12736,15 @@ declare module "@stencil/core" {
12705
12736
  */
12706
12737
  "limel-radio-button-group": LocalJSX.IntrinsicElements["limel-radio-button-group"] & JSXBase.HTMLAttributes<HTMLLimelRadioButtonGroupElement>;
12707
12738
  /**
12739
+ * ## Keyboard
12740
+ * Typing characters jumps to the option whose text starts with them, the way
12741
+ * a native `<select>` does. Characters accumulate for a short while, so typing
12742
+ * `n`, `e` finds "Netherlands" rather than the next option starting with `n`.
12743
+ * Pressing the same character repeatedly cycles through all options starting
12744
+ * with it. This works both while the dropdown is open, and while the closed
12745
+ * component has focus — in which case the dropdown opens with the match
12746
+ * highlighted. Typing only moves the highlight; the value is not changed until
12747
+ * the option is picked with `Enter` or a click.
12708
12748
  * @exampleComponent limel-example-select-basic
12709
12749
  * @exampleComponent limel-example-select-with-icons
12710
12750
  * @exampleComponent limel-example-select-with-separators
@@ -1,7 +1,10 @@
1
1
  export declare const TAB = "Tab";
2
2
  export declare const ENTER = "Enter";
3
3
  export declare const ESCAPE = "Escape";
4
+ /** `KeyboardEvent.code` for the space bar. NOT a `KeyboardEvent.key`. */
4
5
  export declare const SPACE = "Space";
6
+ /** `KeyboardEvent.key` for the space bar. */
7
+ export declare const SPACEBAR = " ";
5
8
  export declare const BACKSPACE = "Backspace";
6
9
  export declare const DELETE = "Delete";
7
10
  export declare const ARROW_UP = "ArrowUp";