window.ClearlyEnv={debug:!0};class ClearlyApp{constructor(e){this.options=e||{},this.state={},this.config={},this.repeatDoms={},this.readyFns=[],this.runtime=window.chrome&&window.chrome.runtime,this.init()}load(e,a){return!(!this.boot&&!a)&&(this.setState({isReady:!0}),this.renderArticle(e),this.ga("create","UA-92398359-4","auto"),this.ga("set","checkProtocolTask",null),this.ga("send","pageview",{page:e.url,title:e?e.title:"No title"}),!0)}renderArticle(e){if(this.article=e,e)this.setState({load:!0,articleLang:this.getMainLang(),articleTitle:e.title,articleUrl:e.url,articleText:e.text,articleDomain:e.domain,articleLinks:e.links}),e.outline&&e.outline.length&&""!==e.outline[0].id&&e.outline.unshift({title:e.title,id:"ros-0",type:"h1"}),e.outline&&$("#outlines").html(DOMPurify.sanitize(e.outline.map((e=>'
  • '+e.title+"
  • ")).join("\n"),{SAFE_FOR_JQUERY:!0})),e.links&&e.links.length>0&&$("#links").html(DOMPurify.sanitize(e.links.filter((e=>"text"===e.type)).map((e=>``)).join("\n"),{SAFE_FOR_JQUERY:!0})),$("#btn-cantact").attr("href","https://clearlyreader.com/r/report?url="+encodeURIComponent(this.article.url)),document.querySelector("html").setAttribute("dir",e&&e.rtl?"rtl":""),$("#subject").text(e.title),$("#byline").html(`${e.authorName?""+e.authorName+"":""}\n ${this.message("app.article.estimated",e.readTime)}\n ${this.message("app.article.wordscount",e.wordsCount)}\n ${this.message("app.article.lang",String(e.lang||"en").toUpperCase())}`),$("#content").html(DOMPurify.sanitize(e.html,{USE_PROFILES:{html:!0,mathMl:!0,svg:!0},ADD_TAGS:["iframe","article"],SAFE_FOR_JQUERY:!0,ALLOWED_ATTR:["id","style","src","alt","href","class","srcset","title","crossorigin","colspan","rowspan","scope"]}));else{const e=this.getQuotes(),a=e[Math.floor(Math.random()*e.length)],[t,o]=a.split(" – ");$("#content").html(`
    ${t}
    ${o}
    `)}this.afterArticle()}afterArticle(){const e=document.querySelector("#content");this.maker=new Mark(e),window.hljs&&this.config.syntax&&(hljs.configure({ignoreUnescapedHTML:!0}),e.querySelectorAll("pre").forEach((e=>{e.classList.contains("hljs")||hljs.highlightElement(e)}))),window.katex&&this.config.latex&&this.renderLaTex(),e.querySelectorAll("img").forEach((function(e){e.onerror=function(){this.style.display="none"},e.onload=function(){debug("img onload",this.naturalWidth,this.naturalHeight,this.clientHeight,this.clientWidth,e),(this.naturalWidth<250||this.naturalWidth<250)&&e.setAttribute("class","img-small")}})),this.config.accountToken&&this.clip(this.config.autoClip?"clip":"get",{silent:!0}).then((e=>{this.showMark(this.state.marks)})),this.hasPermission("PRO")||this.setState({tipUpgrade:!0})}getQuotes(){return["“A reader lives a thousand lives before he dies . . . The man who never reads lives only one.” – George R.R. Martin,","“Until I feared I would lose it, I never loved to read. One does not love breathing.” – Harper Lee","“Never trust anyone who has not brought a book with them.” – Lemony Snicket","“You can never get a cup of tea large enough or a book long enough to suit me.” – C.S. Lewis","“Reading is essential for those who seek to rise above the ordinary.” – Jim Rohn","“I find television very educating. Every time somebody turns on the set, I go into the other room and read a book.” – Groucho Marx","“‘Classic’, a book which people praise and don’t read.” – Mark Twain","“You don’t have to burn books to destroy a culture. Just get people to stop reading them.” – Ray Bradbury","“So please, oh please, we beg, we pray, go throw your TV set away, and in its place you can install a lovely bookshelf on the wall.” – Roald Dahl","“Think before you speak. Read before you think.” – Fran Lebowitz","“Let’s be reasonable and add an eighth day to the week that is devoted exclusively to reading.” – Lena Dunham","“The reading of all good books is like conversation with the finest (people) of the past centuries.” – Descartes","“In the case of good books, the point is not to see how many of them you can get through, but rather how many can get through to you.” – Mortimer J. Adler","“Reading one book is like eating one potato chip.” – Diane Duane","“The more that you read, the more things you will know. The more that you learn, the more places you’ll go.” – Dr. Seuss","Like Dr. Suess? Want to see our entire collection of quotes from Dr. Suess?","“Books are a uniquely portable magic.” – Stephen King","“I read a book one day and my whole life was changed.” – Orhan Pamuk","“People say that life is the thing, but I prefer reading.” – Logan Pearsall Smith","“Today a reader, tomorrow a leader.” – Margaret Fuller","“People can lose their lives in libraries. They ought to be warned.” – Saul Bellow"]}popmenuClose(e){e&&$(e.target).parents("#popmenu,#poptranslate").length||(debug("popmenuClose",e),this.showPopmenuOverlay(),$("#popmenu").hide(),$("#poptranslate").hide(),$("#popshare").hide())}popmenu(e){debug("popmenu type",e);const a=window.getSelection().toString().trim();if(a){switch(this.lastSelectedText=a,e){case"translate":if(!this.hasPermission("PRO"))return void this.showUpgrade();this.setState({popmenuLoading:e}),this.translate(a,this.config.translateLang).then((e=>this.showPopmenuTranslate(e))).catch((e=>this.showPopmenuTranslate())).finally((e=>this.setState({popmenuLoading:null})));break;case"copy":document.execCommand("copy"),this.popmenuClose(),this.alert("ok","text copied");break;case"speak":window.speechSynthesis.speaking&&window.speechSynthesis.cancel();const t=new SpeechSynthesisUtterance(a);this.getVoiceConfig().then((e=>{t.voice=e,t.volume=1,window.speechSynthesis.speak(t),this.popmenuClose()}));break;case"search":if(!this.hasPermission("PRO"))return void this.showUpgrade();this.setState({popmenuLoading:e}),this.api("card/search",{keyword:a}).then((e=>this.showPopmenuOverlay({type:"search",data:e}))).finally((e=>this.setState({popmenuLoading:null})));break;case"wiki":if(!this.hasPermission("PRO"))return void this.showUpgrade();this.setState({popmenuLoading:e}),this.api("card/wiki",{text:a,lang:this.getMainLang()}).then((e=>this.showPopmenuOverlay({type:"wiki",data:e}))).finally((e=>this.setState({popmenuLoading:null})));break;case"share":html2canvas(document.querySelector("#root")).then((e=>{document.body.appendChild(e)}));break;case"mark":this.saveMark(),this.popmenuClose(),window.getSelection().empty()}this.ga("send","event","Popmenu",e)}}showPopmenuOverlay(e){if(debug("showPopmenuOverlay",e),e&&e.data){const a=e.data.results.slice(0,5);$("#popmenu-overlay").html(""),$("#popmenu-overlay").removeClass("pop-down"),a&&a.length?(a.forEach((e=>{$("#popmenu-overlay").prepend(`
    \n
    \n
    ${e.displayUrl||e.link}
    \n
    ${e.intro}
    \n
    `)})),$("#popmenu-overlay").append('")):$("#popmenu-overlay").html('
    no result
    ');$("#popmenu-overlay").position().top<0&&$("#popmenu-overlay").addClass("pop-down"),$("#popmenu-overlay").css({visibility:"visible"})}else $("#popmenu-overlay").css({visibility:"hidden"}),$("#popmenu-overlay").html("")}keepSelection(){if(!this.lastSelection)return;let e=window.getSelection(),a=e.toString(),t=this.lastSelection.ranges;a&&e.removeAllRanges();for(let a=0,o=t.length;a30?$("#popmenu").addClass("popmenu-long"):$("#popmenu").removeClass("popmenu-long"),this.popmenuCloseTimer&&(clearTimeout(this.popmenuCloseTimer),this.popmenuCloseTimer=null),this.popmenuCloseTimer=setTimeout((()=>{const e=a=>{this.popmenuClose(a),$("body").off("click",e)};$("body").on("click",e),this.popmenuCloseTimer=null}),200)}showPopmenuTranslate(e){let a=this.lastSelection.position;if($("#popmenu").hide(),$("#poptranslate").removeClass("pop-down"),!e){const e=800,a=600,t=window.outerHeight/2+window.screenY-a/2,o=window.outerWidth/2+window.screenX-e/2;return void window.open(`https://translate.google.com/?sl=auto&text=${encodeURIComponent(this.lastSelectedText)}&op=translate`,"translate",`toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, copyhistory=no, width=${e}, height=${a}, left=${o}, top=${t}`)}let t=e.sentences.map((e=>e.trans||"")).join("");if($("#poptranslate").show(),$("#poptranslate").css("visibility","hidden"),$("#poptranslate-explain").html(t),$("#poptranslate-voice").hide(),e.dict){$("#poptranslate").addClass("poptranslate-wordmode");let a=e.sentences.find((e=>e.translit));a.src_translit&&($("#poptranslate-voice span").html(`[${a.src_translit}]`),$("#poptranslate-voice").show()),$("#poptranslate-translit").html(a.translit||""),$("#poptranslate-word").html(this.lastSelection.text);let t=e.dict.map((e=>`${e.pos[0]}. ${e.terms.join("; ")}`)).join("
    ");$("#poptranslate-dict").html(t)}else $("#poptranslate").removeClass("poptranslate-wordmode");const o=document.getElementById("main"),l=o.getBoundingClientRect(),r=a.x-l.left+(a.width-$("#poptranslate").width())/2;let s=o.scrollTop+a.y-$("#poptranslate").height()-30;s<0&&(s=o.scrollTop+a.y+a.bottom-a.top,$("#poptranslate").addClass("pop-down")),$("#poptranslate").css({left:r,top:s,visibility:"visible"})}getAncestorTag(e,a,t){t=t||5;let o=0;for(;e.parentNode;){if(t>0&&o>t)return!1;if(a.startsWith(".")&&e.parentNode.classList.contains(a.substr(1,a.length-1)))return e.parentNode;if(e.parentNode&&e.parentNode.tagName&&e.parentNode.tagName.toUpperCase()===a.toUpperCase())return e.parentNode;e=e.parentNode,o++}return!1}handleCodeHover(e){debug("handleCodeHover",e);const a=e.currentTarget,t=e.type;let o=a.querySelector(".clearly-code-btn");"mouseenter"===t?(o||(o=document.createElement("i"),o.setAttribute("class","clearly-code-btn ri-clipboard-fill"),o.innerHTML="",o.addEventListener("click",(e=>{e.stopPropagation();const t=a.cloneNode(!0),o="CODE"===t.childNodes[0].tagName?t.childNodes[0]:null;o&&o.remove(),this.copy(t.innerText),this.alert("ok","Copied to clipboard")})),a.appendChild(o)),o.style.display=""):"mouseleave"===t&&o&&(o.style.display="none")}handleParagraphHover(e){if(!this.config.paragraphTranslate)return;debug("handleParagraphHover",e);const a=e.currentTarget,t=e.type;if("mouseenter"===t&&!a.querySelector("clearly-btn")){const e=document.createElement("clearly-btn");e.setAttribute("class","btn-ph-translate"),e.addEventListener("click",(e=>{debug("handleParagraphHover click",e),this.action("translateParagraph",e.currentTarget.parentNode),e.stopPropagation()}),!0),a.appendChild(e)}}openWindow(e){"upgradebtn"===e&&(e="https://clearlyreader.com/pricing?utm_source=clealy&utm_medium=upgradebtn"),window.open(e,"_blank")}openClearlyBtn(){const e=$("#clearly-btn").data("url");e&&window.open(e+"#clearly","_blank"),this.ga(["_trackEvent","CHROME_APP","CLICK_CLEARLY_BTN"])}handleClick(e){e.preventDefault();const a=e.target.getAttribute("href");a&&a.startsWith("http")&&(this.config.linkOpenNew?window.open(a,"_blank"):window.top.location=a)}getAndSaveSelection(){let e=window.getSelection(),a=e.toString();if(!a)return!1;let t=[];if(e.rangeCount)for(let a=0,o=e.rangeCount;a2)return void this.setConfig({zoom:2});this.setConfig({zoom:o});break;case"increseWidth":let l=(parseInt(this.config.width,10)||0)+1;l<5&&l>=0&&this.setConfig({width:l});break;case"decreseWidth":let r=(parseInt(this.config.width,10)||0)-1;r<5&&r>=0&&this.setConfig({width:r});break;case"exportDoc":if(!this.hasPermission("PRO"))return void this.showUpgrade();const s=["Export From Word","

    "+this.article.title+"

    ",document.getElementById("content").getElementsByTagName("article")[0].innerHTML,this.config.disableExportBrand?"":'

    [ Converted by Clearly Reader ]

    ',""].join(""),i=document.createElement("a");i.setAttribute("download",this.article.title+".doc"),i.setAttribute("href","data:application/vnd.ms-word;charset=utf-8,"+encodeURIComponent(s)),i.click();break;case"exportDocx":if(!this.hasPermission("PRO"))return void this.showUpgrade();const n=["Export From Clearly","

    "+this.article.title+"

    ",document.getElementById("content").getElementsByTagName("article")[0].innerHTML,this.config.disableExportBrand?"":'

    Converted by Clearly Reader

    ',""].join(""),c=document.createElement("a");c.setAttribute("download",this.article.title+".docx"),c.setAttribute("href",URL.createObjectURL(htmlDocx.asBlob(n))),c.click();break;case"exportMarkdown":if(!this.hasPermission("PRO"))return void this.showUpgrade();const m=document.createElement("a");m.setAttribute("download",this.article.title+".md"),m.setAttribute("href","data:plain/txt;charset=utf-8,p"+encodeURIComponent(this.covertMarkdown())),m.click();break;case"copyMarkdown":if(!this.hasPermission("PRO"))return this.showUpgrade();this.copy(this.covertMarkdown()),this.alert("ok","Markdown copied");break;case"copyHTML":if(!this.hasPermission("PRO"))return this.showUpgrade();const h=document.getElementById("content").innerHTML+(this.config.disableExportBrand?"":'

    [ Copied from Clearly Reader ]

    ');this.copy(h),this.alert("ok","HTML copied");break;case"copyClipUrl":this.copy(this.state.clipUrl),this.alert("ok","Link copied");break;case"copyTranslate":this.copy($("#poptranslate-explain").text()+(this.config.disableExportBrand?"":"\n[ Translated from Clearly Reader ]")),this.alert("ok","Translation copied");break;case"print":if((this.config.printWithOutline||this.config.printWithMark||this.config.printWithoutMeta)&&!this.hasPermission("PRO"))return this.showUpgrade();this.config.printWithOutline&&$("#container").addClass("print-outline"),this.config.printWithMark&&$("#container").addClass("print-mark"),this.config.printWithSummary&&$("#container").addClass("print-summary"),this.config.printWithoutMeta&&$("#container").addClass("print-nometa"),window.print(),this.config.printWithOutline&&$("#container").removeClass("print-outline"),this.config.printWithMark&&$("#container").removeClass("print-mark"),this.config.printWithSummary&&$("#container").removeClass("print-summary"),this.config.printWithoutMeta&&$("#container").removeClass("print-nometa");break;case"exportPDF":break;case"copyArticle":const d=document,u=d.getElementById("container");let N,p;d.body.createTextRange?(N=d.body.createTextRange(),N.moveToElement(u),N.select()):window.getSelection&&(p=window.getSelection(),N=d.createRange(),N.selectNodeContents(u),p.removeAllRanges(),p.addRange(N)),document.execCommand("copy"),window.getSelection().removeAllRanges(),this.alert("ok","Article copied");break;case"toggleFullscreenMode":this.setState({fullscreen:!this.state.fullscreen}),this.callParent({type:"fullscreen",fullscreen:this.state.fullscreen});break;case"report":window.open("https://clearlyreader.com/r/report?url="+encodeURIComponent(this.article.url));break;case"editShortcuts":this.callBus("showEditShortcuts");break;case"translateParagraph":if(!this.hasPermission("PRO"))return this.showUpgrade();const g=a;if(!a)return;const L=g.querySelector(".ph-translate");if(L)L.remove(),$(g).removeClass("ph-translated");else{const e=g.textContent.replace(/translate$/,"");this.translate(e).then((e=>{const a=e.sentences.map((e=>e.trans||"")).join(""),t=document.createElement("clearly-text");t.className="ph-translate",t.setAttribute("translate-lang",this.config.translateLang),t.innerText=a,g.appendChild(t),$(g).addClass("ph-translated")}))}break;case"login":case"logout":this[e](a);break;case"miniUI":$("#btn-mini-ui").hide(),$("#btn-max-ui").addClass("flex"),$("#audio-control-wrapper").addClass("mini");break;case"maxUI":$("#btn-max-ui").removeClass("flex"),$("#btn-mini-ui").show(),$("#audio-control-wrapper").removeClass("mini");break;case"updateSystemConfig":this.updateSystemConfig();break;case"reportBug":window.open(`https://clearlyreader.com/r/report?url=${encodeURIComponent(this.article.url)}`)}this.ga("send","event","Action",e)}updateSystemConfig(e=!1){this.callBus("updateClearlyConfig").then((a=>{a&&a.version&&a.version!==this.state.version?(this.setState({version:a.version}),!e&&this.alert("warn","Config updated, refresh page to enable new config")):!e&&this.alert("ok","Config is up to date")}))}translate(e,a){(a=a||this.config.translateLang).split("-").shift()===this.getMainLang()&&(a="en");const t=Math.random().toString().substr(2,7)+"."+Math.random().toString().substr(2,7);return fetch(`https://translate.googleapis.com/translate_a/single?dt=t&dt=bd&dt=qc&dt=rm&client=gtx&sl=auto&tl=${a}&q=${encodeURIComponent(e)}&hl=en-US&dj=1&tk=${t}`,{headers:{"Content-Type":"application/x-www-form-urlencoded"}}).then((e=>e.json()))}copy(e){const a=document.createElement("textarea");a.value=e,document.body.appendChild(a),a.select(),document.execCommand("Copy"),a.remove()}copyFromState(e){this.state[e]?(this.copy(this.state[e]),this.alert("ok","copied")):this.alert("warn","nothing to copy")}resetConfig(e){this.config.hasOwnProperty(e)&&this.setConfig({[e]:ClearlyApp.DEFAULT_READERCONFIG[e]})}covertMarkdown(){const e=new TurndownService;return e.remove("footer"),[e.turndown(document.getElementById("container")),this.config.disableExportBrand?"":"> Converted by [Clearly Reader](https://clearlyreader.com)"].join("\n")}alert(e,a,t,o){this.setState({alertMessage:a,alertBtnCallback:t,alertBtn:t?o||"Check":null}),$("#alert").attr("class",""),$("#alert").addClass("alert-"+e),$("#alert").addClass("show"),this.alertTipTimer&&clearTimeout(this.alertTipTimer),this.alertTipTimer=setTimeout((e=>{$("#alert").removeClass("show"),this.alertTipTimer=null,this.setState({alertMessage:null,alertBtnCallback:null,alertBtn:null})}),3e3)}alertBtnClick(){"function"==typeof this.state.alertBtnCallback&&this.state.alertBtnCallback()}handleState(e,a,t,o){if(a!==t||o)switch(debug("handleState",e,a,t),this.handleBind("state",e,a,t),e){case"speak":if(!this.article)return;if("RESTART"===a)return void this.setState({speakStartPos:0,speakPos:0,speak:"START",speakMark:!0},o);switch(this.ga("send","event","Speak",a),a){case"PAUSE":this.speakPause();break;case"START":this.speakStart();break;case"STOP":case null:this.speakStop();break;case"EXIT":$("#audio-player").removeClass("show"),this.setState({speak:"STOP"})}break;case"autoOpenMode":this.callBus("setAutoOpen",{url:this.article.url,mode:a}).then((e=>this.setState({autoOpen:e}))),this.ga("send","event","Set AutoOpen",a);break;case"autoOpen":a?(this.setState({autoOpenValue:a.value}),$("#autoopen-select").html(a.availableOptions.map((e=>`
  • ${e.value}
  • `)).join("")),$("#autoopen").attr("class","autoopen-mode-"+a.mode)):this.setState({autoOpenValue:null});break;case"fullscreen":a?($("#menu-fullscreen").addClass("menu-actived"),$("#menu-fullscreen-icon").addClass("ri-fullscreen-exit-fill"),$("#menu-fullscreen-icon").removeClass("ri-fullscreen-line")):($("#menu-fullscreen").removeClass("menu-actived"),$("#menu-fullscreen-icon").addClass("ri-fullscreen-line"),$("#menu-fullscreen-icon").removeClass("ri-fullscreen-exit-fill")),this.ga("send","event","Fullscreen",a);break;case"isSharing":switch($(".share-overlay").hide(),a){case"yes":$("#share-yes").show();break;case"no":$("#share-no").show();break;default:$("#share-default").show()}break;case"isReady":a?($("#loading").hide(),$("#tool").css("display","flex"),$("#container").show()):($("#loading").show(),$("#tool").css("display","none"),$("#container").hide());break;case"showDialog":$(".dialog").removeClass("dialog--open"),$(`#dialog-${a}`).addClass("dialog--open"),this.showDialog(a),this.ga("send","event","Show Dialog",a);break;case"fonts":$("#font-select-style").html(a.map((e=>{let a=e.name.toLowerCase().replace(/ /g,"");return`${e.name}`})).concat("extension"===this.state.clientApp?'Custom\n ':"").join(""));break;case"systemFonts":$("#font-custom").html(a.map((e=>``)));break;case"themes":$("#themes .themes-list").html(a.map((e=>`${e.theme}`)).concat('custom\n css').join("")),$("#themes-day .themes-list").html(a.filter((e=>"day"===e.autoTheme)).map((e=>`${e.theme}`)).join("")),$("#themes-night .themes-list").html(a.filter((e=>"night"===e.autoTheme)).map((e=>`${e.theme}`)).join(""));break;case"speakWordRange":this.maker.unmark(),this.maker.markRanges([a],{className:"mark-word",element:"span",exclude:["clearly-btn","clearly-text"],done:()=>{const e=document.querySelector("span.mark-word");e&&this.scrollTo(e,500)}});break;case"speakWord":if(this.maker.unmark(),a&&"START"===this.state.speak){const e=this.state.speakStartPos+a.charIndex;this.setState({speakPos:e}),debug("speak word",this.state.articleText.substr(e,a.charLength)),this.maker.markRanges([{start:e,length:a.charLength}],{className:"mark-word",element:"span",exclude:["clearly-btn","clearly-text"],done:()=>{const e=document.querySelector("span.mark-word");e&&this.scrollTo(e,500)}})}break;case"speakVoice":if("auto"!==a&&!this.hasPermission("PRO"))return this.setState({speakVoice:"auto"}),void this.showUpgrade();this.setState({speakVoiceName:"auto"===a?"Auto":this.getVoice().name}),$(`[click="speakVoice=${t}"]`).removeClass("selected"),$(`[click="speakVoice=${a}"]`).addClass("selected"),"START"===this.state.speak&&(this.setState({speak:"PAUSE"},o),this.setState({speak:"START"},o)),!o&&this.state&&this.state.speakVoiceMap[this.getMainLang()]!==a&&("object"!=typeof this.state.speakVoiceMap&&(this.state.speakVoiceMap={}),this.setState({speakVoiceMap:{...this.state.speakVoiceMap,[this.getMainLang()]:a}}));break;case"speechVoices":case"articleLang":this.buildVoices();break;case"speakVoiceMap":this.setState({speakVoice:a&&a[this.getMainLang()]?a[this.getMainLang()]:"auto"},o)}}async speakStart(){let e;if($("#menu-speak").addClass("menu-actived"),$("#menu-speak-icon").addClass("ri-volume-up-fill"),$("#menu-speak-icon").removeClass("ri-volume-down-line"),$("#audio-player").addClass("show"),e=this.state.speakStartPos?{text:this.state.articleText.substr(this.state.speakStartPos,this.state.articleText.length-this.state.speakStartPos),rate:this.config.speakRate,voiceName:this.state.speakVoice,pitch:this.config.speakPitch||1}:{text:this.state.articleText,rate:this.config.speakRate,voiceName:this.state.speakVoice,pitch:this.config.speakPitch||1},this.config.speechMSEngine){const a=await this.api("getSpeechConfig",e);if(!a)return void this.setState({speak:"STOP"});this.alert("ok",a.message||"Start speaking..."),this.speechMSWords=[];const t=this.speechMSPlayer=new SpeechSDK.SpeakerAudioDestination,o=SpeechSDK.AudioConfig.fromSpeakerOutput(t),l=SpeechSDK.SpeechConfig.fromAuthorizationToken(a.token,a.region);l.speechSynthesisVoiceName=await this.getVoiceConfig();let r=new SpeechSDK.SpeechSynthesizer(l,o);r.wordBoundary=(e,a)=>{console.log("(WordBoundary), Text: "+a.text+", Audio offset: "+a.audioOffset/1e4+"ms.",a.wordLength,a.textOffset),this.speechMSWords.push(a)},this.speechMSStatus=r.speakSsmlAsync(await this.buildSSML(e),(function(e){e.reason===SpeechSDK.ResultReason.SynthesizingAudioCompleted||(e.reason,SpeechSDK.ResultReason.Canceled),window.console.log(e),r.close(),r=void 0}),(function(e){window.console.log(e),r.close(),r=void 0})),this.startMSWordHighlight()}else{window.speechSynthesis.speaking&&window.speechSynthesis.cancel(),this.alert("ok","Start speaking...");const a=this.speechUtterance=new SpeechSynthesisUtterance(e.text);a.rate=.9*Number(e.rate||"1"),a.voice=await this.getVoiceConfig(),a.voice?(this.setState({speakMark:!0}),a.onboundary=e=>{const a=this.state.speakStartPos+e.charIndex;this.setState({speakPos:a,speakWordRange:{start:a,length:e.charLength}})}):this.setState({speakMark:"false"}),a.pitch=e.pitch,a.volume=1,a.onpause=()=>{this.setState({speak:"PAUSE"})},a.onstop=a.onerror=()=>{this.setState({speak:"STOP"})},window.speechSynthesis.speak(a)}}startMSWordHighlight(){let e=this.article.text,a=0;this.speechMSWordTimer&&(clearInterval(this.speechMSWordTimer),this.speechMSWordTimer=null),this.speechMSWordTimer=setInterval((()=>{const t=this.speechMSPlayer.currentTime,o=this.speechMSWords.find((e=>t>=e.audioOffset/1e7&&t<=(e.audioOffset+e.duration)/1e7));o&&o.text&&(a=e.indexOf(o.text,a),length=o.text.length,this.setState({speakPos:a,speakWordRange:{start:a,length:length}}))}),100)}async buildSSML({text:e,rate:a}){return`\n ${function(e){var a={"&":"&","<":"<",">":">",'"':""","'":"'"};return e.replace(/[&<>"']/g,(function(e){return a[e]}))}(e)}`}speakStop(){$("#menu-speak").removeClass("menu-actived"),$("#menu-speak-icon").addClass("ri-volume-down-line"),$("#menu-speak-icon").removeClass("ri-volume-mute-fill"),this.config.speechMSEngine?(this.speechMSPlayer&&this.speechMSPlayer.pause(),this.speechMSWords=[]):window.speechSynthesis.cancel(),this.setState({speakWord:null,speakStartPos:0,speakPos:0})}speakPause(){$("#menu-speak").addClass("menu-actived"),$("#menu-speak-icon").addClass("ri-volume-mute-fill"),$("#menu-speak-icon").removeClass("ri-volume-up-fill"),this.config.speechMSEngine?this.speechMSPlayer&&this.speechMSPlayer.pause():window.speechSynthesis.cancel(),this.setState({speakStartPos:this.state.speakPos,speakPos:0})}showDialog(e){switch(e){case"clip":this.clip("bookmark");break;case"account":this.callBus("refreshToken").then((e=>{e&&e.accountToken&&this.setConfig(e)}));break;case"setting":this.updateSystemConfig({silent:!0})}}retrySummary(){window.open("https://clearlyreader.com/app?utm_source=clearly","_blank")}async buildVoices(){const e=await this.getVoices();$("#menu-voices").html(""),$("#menu-voices").append('Auto'),e.forEach((e=>{$("#menu-voices").append(`${e.name}`)}))}async getVoices(){const e=this.getMainLang();return this.config.speechMSEngine?this.state.msTTSVoices.filter((a=>a.Locale.split("-").shift()===e)).map((e=>({name:e.LocalName,id:e.ShortName}))):(this.state.speechVoices||(this.state.speechVoices=await this.getSpeechVoices()),this.state.speechVoices.filter((a=>a.lang.split("-").shift()===e&&a.localService)).map((e=>({name:e.name,id:e.name}))))}async getVoice(){const e=await this.getVoices();let a=e.find((e=>e.id===this.state.speakVoice));return a||(a=e[0]),a}async getVoiceConfig(){const e=await this.getVoice();if(e)return this.config.speechMSEngine?e.id:this.state.speechVoices.find((a=>a.name===e.id))}getSpeechVoices(){return new Promise((function(e,a){let t,o=window.speechSynthesis;t=setInterval((()=>{0!==o.getVoices().length&&(e(o.getVoices()),clearInterval(t))}),10)}))}handleBind(e,a,t){debug("handleBind",e,a,t);const o="config"===e?"config.":"",l=`${o}${a}`;if($(`[show*="${l}"]`).each(((e,a)=>this.processBindEquation(a))),$(`[bind*="${l}"]`).each(((e,a)=>this.processBindValue("bind",a))),$(`[repeat="${l}"]`).each(((e,a)=>{const t=$(a).attr("repeat");this.repeatDoms[t]={elem:a,parent:a.parentNode,nodes:[]},a.remove()})),this.repeatDoms[l]&&t&&t.length>0){const{elem:e,parent:a,nodes:o}=this.repeatDoms[l];o.forEach((e=>e.remove())),this.repeatDoms[l].nodes=[],t.forEach((t=>{const o=e.cloneNode(!0);o.contextValue=t,o.querySelectorAll("[bind]").forEach((e=>this.processBindValue("bind",e))),o.querySelectorAll("[bind-href]").forEach((e=>this.processBindValue("bind-href",e))),o.querySelectorAll("[show]").forEach((e=>this.processBindEquation(e))),a.appendChild(o),this.repeatDoms[l].nodes.push(o)}))}$(`[bind-css*="${l}"]`).each(((e,l)=>{$(l).attr("bind-css").split(";").forEach((e=>{const[r,s]=e.split(":");String(s).trim()===o+a&&$(l).css(String(r).trim(),t)}))})),$("[disable]").each(((e,a)=>this.processBindEquation(a,"disable"))),$(`[bind-class*="${l}"]`).each(((e,t)=>{debug("handleBind",a,t);const l=$(t);l.attr("bind-class").split(";").forEach((e=>{let[t,r]=String(e).trim().split(":"),[s,i]=String(r).trim().split("=");t=String(t).trim();let n=!0;i?s.endsWith("!")&&(s=s.substring(0,s.length-1),n=!1):s.startsWith("!")?(s=s.substring(1),i=!1):i=!0;const c=s.startsWith("config.")?this.config[s.substring(7)]:this.state[s];if(debug("handleBind check",e,s,i,c),s===o+a){const o=i===c||"string"==typeof i&&i&&c&&i.split(",").includes(c)||"boolean"==typeof i&&i===!!c;debug("handleBind match",e,n,o),n&&o||!o&&!n?(debug("handleBind add",a,t),l.addClass(t)):l.hasClass(t)&&(debug("handleBind remove",a,t),l.removeClass(t))}}))}))}formatDate(e,a=""){return e?dayjs(e).format("YYYY-MM-DD"):a}formatTime(e,a=""){return e?dayjs(e).format("YYYY-MM-DD HH:mm:ss"):a}processBindEquation(e,a="show"){const t=$(e).attr(a);debug("processBindEquation",a,t);const o=t.split("&&").every((a=>{let t,[o,l]=String(a).trim().split("="),r=!0;if(l?o.endsWith("!")&&(o=o.substring(0,o.length-1),r=!1):o.startsWith("!")?(o=o.substring(1),l=!1):l=!0,o.startsWith(".")){const a=this.findContextElem(e);t=(a&&a.contextValue||{})[o.substring(1)]}else t=o.startsWith("config.")?this.config[o.substring(7)]:this.state[o];const s=t===l||"string"==typeof l&&l.split(",").map((e=>"!"===e?"":e)).includes(t||"")||(Array.isArray(t)?t.length>0:t)&&("*"===l||!0===l)||!1===l&&(Array.isArray(t)?0===t.length:!t);return r&&s||!r&&!s?(debug("processShow check ok",o,t,l,a),!0):(debug("processShow check fail",o,t,l,a),!1)}));switch(a){case"show":o?(debug("processShow ok",e),$(e).show()):(debug("processShow no",e),$(e).hide());break;case"disable":o?(debug("processDisable ok",e),$(e).attr("disabled","disabled")):(debug("processDisable no",e),$(e).removeAttr("disabled"))}}processBindValue(e,a){const t=a.getAttribute(e);let o,[l,r]=t.split("|");if(l=l.trim(),r=r&&r.trim(),l.startsWith("config."))o=this.config[l.substr(7)];else if(l.startsWith(".")){const e=this.findContextElem(a);o=(e&&e.contextValue||{})[l.substring(1)]}else o=this.state[l];r&&(o=this[r]?this[r](o):o),o=o||"","bind"===e?"INPUT"===a.nodeName||"SELECT"===a.nodeName||"TEXTAREA"===a.nodeName?a.value=o:$(a).text(o):"bind-href"===e&&a.setAttribute("href",o)}handleConfig(e,a,t,o){if((a!==t||o)&&("object"!=typeof a||JSON.stringify(a)!==JSON.stringify(t)||o)){switch(debug("handleConfig",e,a,t),this.handleBind("config",e,a,t),e){case"theme":case"themeDay":case"themeNight":const l=this.state.themes.find((e=>e.theme===a));if(["custom","css"].includes(a)||l&&l.pro){if(!this.hasPermission("PRO"))return this.setConfig({[e]:t===a?"default":t}),void this.showUpgrade();this.setState({showDialog:a})}case"themeAuto":case"lineHeight":case"letterSpacing":case"roundCorner":this.selectTheme(t);break;case"zoom":$("#value-zoom").text((100*a).toFixed(0)+"%"),t!==a&&$("html").removeClass("font-"+Math.floor(100*t)),$("html").addClass("font-"+Math.floor(100*a));break;case"width":$("#value-width").text(10*(10+parseInt(a)-2)+"%"),t!==a&&$("#root").removeClass("width-"+t),$("#root").addClass("width-"+a);break;case"speakRate":$(`[click="config.speakRate=${t}"]`).removeClass("selected"),$(`[click="config.speakRate=${a}"]`).addClass("selected"),"START"===this.state.speak&&(this.setState({speak:"PAUSE"},o),this.setState({speak:"START"},o));break;case"readUpdates":a!==this.initConfig.client.version?$("#btn-about").addClass("info"):$("#btn-about").removeClass("info");break;case"bgColor":case"mainColor":case"fontColor":case"codeBgColor":"custom"===this.config.theme&&this.selectTheme("custom");break;case"customCSS":"css"===this.config.theme&&this.selectTheme("css");break;case"font":if("custom"===a){if(!this.hasPermission("PRO"))return this.setConfig({[e]:"default"}),void(!o&&this.showUpgrade());this.getSystemFonts()}this.selectTheme();break;case"systemFont":this.selectTheme();break;case"syntax":case"latex":case"lang":!o&&this.alert("warn",`Change ${e} need to refresh page`,(e=>this.action("reload")),"Refresh");break;case"bookLayout":a?($("#root").addClass("book-layout"),this.initialView()):($("#root").removeClass("book-layout"),this.disableBookView());break;case"translateLang":$("#poptranslate").is(":visible")&&this.popmenu("translate");break;case"disableExportBrand":a?$("#print-copyright").css({visibility:"hidden"}):$("#print-copyright").css({visibility:"visible"});break;case"accountEmail":case"accountPlanId":case"accountPlanExpiredAt":this.resetAccount();break;case"speechMSEngine":this.buildVoices();break;case"showVideo":a?$("#root").removeClass("disable-video"):$("#root").addClass("disable-video");break;case"syncBookmark":a&&(delete this.config.syncBookmark,this.setConfig({autoClip:!0}));break;case"syncConfig":a&&this.syncConfig()}o||(this.ga("send","event","Update Config",e,String(a)),["syncConfig"].includes(e)||e.startsWith("account")||e.startsWith("sync")||(debug("syncConfig",e),this.syncConfig()),this.saveUserConfig())}}initialView(e){setTimeout((()=>{const a=document.getElementById("main"),t=document.getElementById("container"),o=a.offsetWidth,l=a.offsetHeight;if(this.setState({viewWidth:o,viewHeight:l}),this.config.bookLayout){const l=Number(getComputedStyle(a).paddingLeft.split("px").shift(),0),r=o-2*l;t.style.columnWidth=r+"px",t.style.columnGap=2*l+56+"px";const s=t.scrollWidth,i=Math.ceil(s/o)||1;this.setState({viewSize:s,bookPages:i}),this.scrollPage(e?this.state.bookPage:1)}else{const e=a.scrollHeight;this.setState({viewSize:e,bookPages:Math.ceil(e/l)||1})}}),1)}syncConfig(e){this.hasPermission("PRO")&&this.config.syncConfig&&this.api("syncConfig",{config:this.config,force:"local"===e}).then((a=>{a&&("CONFLICT"!==a.reason||e||this.alert("error",`Sync config failed: ${a.reason}`,(e=>this.setState({showDialog:"setting"}))),this.setState({syncConfigStatus:e||"OK"===a.reason?null:a.reason}),a.config&&(("online"===e||["OK","PULL"].includes(a.reason))&&this.setConfig(a.config),this.setState({syncAt:a.config.syncAt})))}))}resetAccount(){this.hasPermission("PREMIUM")?($(".icon-premium").hide(),$(".btn-premium").removeClass("btn-premium"),$(".icon-pro").hide(),$(".btn-pro").removeClass("btn-pro"),this.setState({tipUpgrade:!1})):this.hasPermission("PRO")?($(".icon-pro").hide(),$(".btn-pro").removeClass("btn-pro"),this.setState({tipUpgrade:!1})):($(".icon-pro").show(),$(".icon-premium").show(),this.setConfig({themeAuto:!1,disableExportBrand:!1,disableBrand:!1,bookLayout:!1,latex:!1,lineHeight:1.6,spacing:0,syncConfig:!1,speechMSEngine:!1,popmenuWiki:!0,popmenuSearch:!0,paragraphTranslate:!0}),["css","custom"].includes(this.config.theme)&&this.setConfig({theme:"default"}),"custom"===this.config.font&&this.setConfig({theme:"System"}))}disableBookView(){const e=document.getElementById("container");e.style.columnWidth="",e.style.columnGap="",this.setState({bookPages:1,bookPage:1})}scrollPage(e){if(this.config.bookLayout){"prev"===e?e=this.state.bookPage>1?this.state.bookPage-1:1:"next"===e?e=this.state.bookPagethis.state.bookPages&&(e=this.state.bookPages),this.setState({bookPage:e});const a=document.getElementById("container"),t=(e-1)*this.state.viewWidth;a.scroll(t,0)}else{let a=null;if("prev"===e?a=main.scrollTop-this.state.viewHeight:"next"===e?a=main.scrollTop+this.state.viewHeight:"home"===e?a=0:"last"===e&&(a=main.scrollHeight),null===a)return;a<0?a=0:a>this.state.viewSize&&(a=this.state.viewSize);document.getElementById("main").scroll(0,a)}}controlToggle(e){let a="state",t="setState";e.startsWith("config.")&&(e=e.substring(7),a="config",t="setConfig");const o=["speechMSEngine"].includes(e)?"PREMIUM":"PRO";this.hasPermission(o)?this[t]({[e]:!this[a][e]}):this.showUpgrade(o)}hasPermission(e){e||(e="PRO");return!(!("PRO"===e?["PRO","PREMIUM"]:["PREMIUM"]).includes(this.config.accountPlanId)||this.config.accountPlanExpiredAte.theme===t));e&&e!==t&&"custom"===t&&!this.config.bgColor?(o=this.state.themes.find((e=>"default"===e.theme)),this.setConfig({...o,theme:"custom"})):o||(o=this.config);let l=document.querySelector("style#theme-style");l||(l=document.createElement("style"),l.id="theme-style",l.type="text/css",document.body.appendChild(l)),l.innerHTML=`\n.icon-mask:before {\n background-color: ${o.fontColor};\n}\nhtml {\n background-image: ${o.bgImg?"url("+this.replaceExtensionUrl(o.bgImg)+")":"none"};\n background-color: ${o.bgColor};\n font-family: "${"custom"===this.config.font?this.config.systemFont:this.config.font}";\n color: ${o.fontColor};\n}\n#main {\n background-color: ${o.mainColor};\n background-image: ${o.mainImg?"url("+o.mainImg+")":"none"};\n ${this.config.roundCorner?"\n border-radius: 20px;\n margin-top: 10px;\n margin-bottom: 10px;\n padding-top: 54px;\n ":""}\n}\narticle * {\n letter-spacing: ${this.config.letterSpacing?this.config.letterSpacing+"em":"normal"};\n line-height: ${this.config.lineHeight||"1.6"}em;\n}\n#main a {\n color: ${o.linkColor};\n border-bottom: 1px dashed ${o.fontColor};\n}\n#main a:hover {\n border-bottom: 2px solid ${o.fontColor};\n}\n${"css"===t?o.customCSS:""}`,($("html").attr("class")||"").split(" ").forEach((e=>{e.startsWith("theme-")&&$("html").removeClass(e)})),$("html").addClass("theme-"+t)}replaceExtensionUrl(e){return String(e||"").replace("__MSG_@@extension_id__",this.runtime&&this.runtime.id?`//${this.runtime.id}`:"/webreader/file")}saveUserConfig(){if(this.config){if(debug("saveUserConfig",this.config),this.useBackground)return this.callBus("saveUserConfig",{config:this.config});window.localStorage.setItem("readerconfig",JSON.stringify({...this.initConfig,readerConfig:this.config}))}}getUserConfig(){try{if(this.useBackground)return this.callBus("getConfig",{url:this.initParams.url});{let e;return document.querySelector("#config")?e=JSON.parse($("#config").text()):window.localStorage&&(e=JSON.parse(window.localStorage.getItem("readerconfig"))),e}}catch(e){return null}}ga(...e){debug("ga",...e),window.ga&&window.ga(...e)}callParent(e){debug("sendParent",e),parent.postMessage({...e,parent:!0},"*")}callBus(e,a){return debug("callBus",e,a),this.useBackground?new Promise(((t,o)=>{this.runtime.getBackgroundPage((async l=>{const r=l.background;if("function"==typeof r[e])try{t(await r[e]({...a}))}catch(e){o(e)}else o(new Error(`No such method: ${e}`))}))})):new Promise(((t,o)=>{const l=String(Math.random());this.callbackWait(l,((e,a)=>{if(e)return o(e);t(a)})),parent.postMessage({...a||{},background:!0,type:e,callback:l},"*")})).catch((t=>{if("TimeoutError"!==t.name)throw t;console.warn("TimeoutError",e,a)}))}callbackWait(e,a){debug("callbackWait",e,a),this.callbacks[e]={fn:a,ts:Date.now()}}callbackReceive(e,a,t){debug("callbackReceive",e,t,a);const{fn:o}=this.callbacks[e]||{};o&&o(t,a)}callbackStart(){debug("callbackLoop"),this.callbacks||(this.callbacks={}),window.setInterval((e=>{const a=Date.now();Object.keys(this.callbacks).forEach((e=>{const{fn:t,ts:o}=this.callbacks[e];let l=null;a-o>1e4&&(delete this.callbacks[e],l=new Error(`call "${e}" timeout`),l.name="TimeoutError",t(l,null))}))}),1e3)}getSystemFonts(){this.callBus("getSystemFonts").then((e=>{this.setState({systemFonts:e})}))}scrollTo(e,a=0){const t=document.getElementById(this.config.bookLayout?"container":"main");if(!e)return void t.scroll(0,0);"number"==typeof e&&t.scroll(0,e);const o=e.getBoundingClientRect(),l=t.getBoundingClientRect();if(this.config.bookLayout){const e=t.scrollLeft+l.left+o.left,a=Math.floor(e/this.state.viewWidth);debug("scroll to",a,t.scrollLeft,l,o),this.scrollPage(a)}else{const e=t.scrollTop+o.top-a;debug("scroll to",e,t.scrollTop,o.top,a),t.scroll(0,e)}e&&e.tagName&&($(e).addClass("outline-clicked"),setTimeout((a=>$(e).removeClass("outline-clicked")),1e3))}handleClickOutline(e){e.preventDefault(),e.stopPropagation();let a=null,t=$(e.target).data("id"),o=t?"outline":"link";return t&&"#"===t?this.scrollTo():(a="outline"===o?document.querySelector(t):document.querySelector("#content").querySelector(`a[href="${e.target.getAttribute("href")}"]`),a?(this.scrollTo(a,"link"===o?300:0),void this.ga("send","event","Read","Click outline")):this.scrollTo())}clickMark(e){const a=document.querySelector(`[mark="${e.id}"]`);a&&(this.scrollTo(a,300),this.ga("send","event","Read","Click mark"))}bindEvents(){$("#root").on("click","#outline a",(e=>this.handleClickOutline(e))),$("#root").on("click","[click]",(e=>this.handleEvent(e))),$("#root").on("change","select[bind],input[bind],textarea[bind]",(e=>this.handleChange(e))),$("#btn-thumb-up").click((()=>this.action("feedback","yes"))),$("#btn-thumb-down").click((()=>this.action("feedback","no"))),$("#main").on("click dragend",(e=>{if(debug("#main handle event",e.type,e),window.getSelection().toString()){if($(e.target).parents("#content").length<=0)return;this.popmenuShowTimer&&(clearTimeout(this.popmenuShowTimer),this.popmenuShowTimer=null),this.popmenuShowTimer=setTimeout((a=>{this.getAndSaveSelection()&&(this.showPopmenu(e),e.stopPropagation()),this.popmenuShowTimer=null}),200)}else if("A"===e.target.nodeName){const a=e.target.getAttribute("href");if(a&&/^#[A-Za-z]+[\w\-:.]*$/.test(a)){debug("#main handle link",a),e.preventDefault(),e.stopPropagation();const t=document.querySelector(a);t&&this.scrollTo(t)}}})),$("#root").on("click","#btn-copy-translate",(e=>this.action("copyTranslate"))),$("#content").on("click",":not(pre) > code",(e=>{debug("copy code",e.target),this.copy(e.target.textContent),this.alert("ok","Code copied"),this.ga("send","event","Action","Copy Code")})),$("#content").on("mouseenter mouseleave","pre",(e=>this.handleCodeHover(e))),$("#content").on("mouseenter mouseleave","article p",(e=>this.handleParagraphHover(e))),$("#content").on("click","a",(e=>this.handleClick(e))),document.querySelector("#main").addEventListener("scroll",(e=>{this.handleOutlineFollow(e)})),document.querySelector("#container").addEventListener("scroll",(e=>{this.handleOutlineFollow(e)})),window.addEventListener("resize",(e=>{this.initialView(!0)})),document.addEventListener("keyup",(e=>{if(!(e.ctrlKey||e.metaKey||e.altKey||(debug("keyup",e),["TEXTAREA","INPUT","SELECT"].includes(e.target.nodeName))))if("ArrowLeft"===e.code||"KeyK"===e.code?this.scrollPage("prev"):"ArrowRight"!==e.code&&"KeyJ"!==e.code||this.scrollPage("next"),"KeyH"===e.code)this.scrollPage("home");else if("KeyL"===e.code)this.scrollPage("last");else if("Slash"===e.code&&e.shiftKey)this.setState({showDialog:"shortcut"});else if("KeyB"===e.code){if(!this.hasPermission("PRO"))return this.showUpgrade();this.setConfig({bookLayout:!this.config.bookLayout})}else"KeyP"===e.code?this.setState({showDialog:"print"}):"KeyS"===e.code?"START"!==this.state.speak?this.setState({speak:"START"}):this.setState({speak:"PAUSE"}):"KeyC"===e.code?this.setState({showDialog:"clip"}):"KeyE"===e.code?this.setState({showDialog:"export"}):"KeyT"===e.code?this.setState({showDialog:"style"}):"Escape"===e.code&&(this.state.showDialog?this.setState({showDialog:null}):this.action("close"))})),this.observeSize("#container",(e=>{this.initialView(!0)})),this.observeStyle("#container",{attributes:!0,characterData:!0,childList:!0,subtree:!0,attributeOldValue:!0,characterDataOldValue:!0},(e=>{this.initialView(!0)}))}observeSize(e,a){const t=document.querySelector(e),o=new ResizeObserver(a);for(var l=0;l[...e].forEach(t)));document.querySelectorAll(e).forEach((e=>o.observe(e,a)))}message(e,...a){return CLEARLY_MESSAGE.get(e,this.config.lang&&"auto"!==this.config.lang?this.config.lang:this.system&&this.system.lang||"en",...a)}translateUI(){const e=document.createTreeWalker(document.body,NodeFilter.SHOW_TEXT,null,!1);for(;e.nextNode();){const a=e.currentNode.nodeValue;a.includes("{{")&&a.includes("}}")&&(e.currentNode.nodeValue=a.replace(/{{([\w.]+)}}/gi,((e,a)=>(a.match(/\./g)||[]).length<2?a.startsWith("config.")?this.config[a.substring(7)]:this.state[a]:this.message(a))))}}renderLaTex(){const e=[/\\ce\{([a-z_A-Z0-9-.!@#$%\\^&*)(+={}[\]/",'<>~·`?:;|↓′×Δ∣−× ]+?)\}/g,/\$([a-z_A-Z0-9-.!@#$%\\^&*)(+={}[\]/",'<>~·`?:;|↓′×Δ∣−× ]+?)\$/g,/\\\(([a-z_A-Z0-9-.!@#$%\\^&*)(+={}[\]/",'<>~·`?:;|↓′×Δ∣−× ]+?)\\\)/g,/\\(underbar|acute|check|dot|ddot|grave|hat|widehat|tilde|widetilde|utilde|vec|overleftarrow|underleftarrow|overleftharpoon|overleftrightarrow|underleftrightarrow|overline|underline|widecheck|mathring|overgroup|undergroup|Overrightarrow|overrightarrow|underrightarrow|overrightharpoon|overbrace|underbrace|overlinesegment|underlinesegment||underbar)\{[\w]+\}/g,/\\(lvert|rvert|lang|rang|lparen|rparen|lbrack|rbrack|lbrace|rbrace|langle|rangle|vert|Vert|lVert|rVert|lt|gt|left|right|lceil|rceil|lfloor|rfloor|lmoustache|rmoustache|lgroup|rgroup|ulcorner|urcorner|llcorner||lrcorner|llbracket|rrbracket|uparrow|downarrow|updownarrow|Uparrow|Downarrow|Updownarrow|backslash|lBrace|rBrace|middle|big|Big|bigg|Bigg|bigl|Bigl|biggl|Biggl|bigm|Bigm|biggm|Biggm|bigr|Bigr|biggr|Biggr|includegraphics)/g,/\\(htmlId|htmlClass|htmlStyle|htmlData|href|url|includegraphics)\{[a-z_A-Z0-9-.!@#$%\\^&*)(+={}[\]/",'<>~·`?:;|↓′×Δ∣−× ]+\}/g,/\\(Alpha|Beta|Delta|Epsilon|Zeta|Theta|Iota|Kappa|Mu|Nu|Xi|Pi|Rho|Sigma|Upsilon|Phi|Chi|Omega|varGamma|varDelta|varLambda|varXi|varPi|varUpsilon|varPhi|varPsi|alpha|gamma|epsilon|eta|theta|iota|lambda|nu|omicron|rho|sigma|tau|phi|psi|varepsilon|vartheta|thetasym|varpi|varsigma|digamma)/g,/\\(imath|nabla|Im|Reals|text|jmath|partial|image|wp|aleph|Game|Bbbk|weierp|alef|Finv|N|Z|alefsym|cnums|natnums|beth|Complex|R|gimel|ell|Re|daleth|hbar|real|eth|hslash|reals)/g,/\\(cancel|bcancel|xcancel|sout|\$a|phase|overbrace|underbrace|boxed|angln|not|tag)/g,/\\(stackrel|overset|underset)\{[\w]+\}/g,/\\(mathllap|mathrlap|sqrt)/g,/\\(forall|complement|therefore|emptyset|exists|subset|because|empty|exist|supset|mapsto|varnothing|nexists|mid|to|implies|in|land|gets|impliedby|isin|lor|leftrightarrow|iff|notin|ni|notni|neg|Set|set)/g,/\\(def|gdef|edef|xdef|let|futurelet|global|newcommand|renewcommand|providecommand)/g,/\\(sum|prod|bigotimes|bigvee|int|coprod|bigoplus|bigwedge|iint|intop|bigodot|bigcap|iiint|smallint|biguplus|bigcup|oint|oiint|oiiint|bigsqcup)/g,/\\(cdot|gtrdot|pmod|cdotp|intercal|pod|centerdot|land|rhd|circ|leftthreetimes|rightthreetimes|amalg|circledast|ldotp|rtimes|And|circledcirc|lor|setminus|ast|circleddash|lessdot|smallsetminus|barwedge|Cup|lhd|sqcap|bigcirc|cup|ltimes|sqcup|bmod|curlyvee|mod|times|boxdot|curlywedge|mp|unlhd|boxminus|div|odot|unrhd|boxplus|divideontimes|ominus|uplus|boxtimes|dotplus|oplus|vee|bullet|doublebarwedge|otimes|veebar|Cap|doublecap|oslash|wedge|cap|doublecup|pm|wr)/g,/\\(frac|tfrac|genfrac|over|dfrac|above|cfrac|binom|choose|dbinom|tbinom|brace|brack)/g,/\\(arcsin|cosec|deg|sec|arccos|cosh|dim|sin|arctan|cot|exp|sinh|arctg|cotg|hom|sh|arcctg|coth|ker|tan|arg|csc|lg|tanh|ch|ctg|ln|tg|cos|cth|log|th|operatorname|argmax|injlim|min|varinjlim|argmin|lim|plim|varliminf|det|liminf|Pr|varlimsup|gcd|limsup|projlim|varprojlim|inf|max|sup|operatorname|operatornamewithlimits)/g,/\\(doteqdot|lessapprox|smile|eqcirc|lesseqgtr|sqsubset|eqcolon|minuscolon|lesseqqgtr|sqsubseteq|Eqcolon|minuscoloncolon|lessgtr|sqsupset|approx|eqqcolon|equalscolon|lesssim|sqsupseteq|approxcolon|Eqqcolon|equalscoloncolon|ll|Subset|approxcoloncolon|eqsim|lll|subset|approxeq|eqslantgtr|llless|subseteq|asymp|eqslantless|lt|subseteqq|backepsilon|equiv|mid|succ|backsim|fallingdotseq|models|succapprox|backsimeq|frown|multimap|succcurlyeq|between|ge|origof|succeq|bowtie|geq|owns|succsim|bumpeq|geqq|parallel|Supset|Bumpeq|geqslant|perp|supset|circeq|gg|pitchfork|supseteq|colonapprox|ggg|prec|supseteqq|Colonapprox|coloncolonapprox|gggtr|precapprox|thickapprox|coloneq|colonminus|gt|preccurlyeq|thicksim|Coloneq|coloncolonminus|gtrapprox|preceq|trianglelefteq|coloneqq|colonequals|gtreqless|precsim|triangleq|Coloneqq|coloncolonequals|gtreqqless|propto|trianglerighteq|colonsim|gtrless|risingdotseq|varpropto|Colonsim|coloncolonsim|gtrsim|shortmid|vartriangle|cong|imageof|shortparallel|vartriangleleft|curlyeqprec|in|sim|vartriangleright|curlyeqsucc|Join|simcolon|vcentcolon|ratio|dashv|le|simcoloncolon|vdash|dblcolon|coloncolon|leq|simeq|vDash|doteq|leqq|smallfrown|Vdash|Doteq|leqslant|smallsmile|Vvdash)/g,/\\(gnapprox|ngeqslant|nsubseteq|precneqq|gneq|ngtr|nsubseteqq|precnsim|gneqq|nleq|nsucc|subsetneq|gnsim|nleqq|nsucceq|subsetneqq|gvertneqq|nleqslant|nsupseteq|succnapprox|lnapprox|nless|nsupseteqq|succneqq|lneq|nmid|ntriangleleft|succnsim|lneqq|notin|ntrianglelefteq|supsetneq|lnsim|notni|ntriangleright|supsetneqq|lvertneqq|nparallel|ntrianglerighteq|varsubsetneq|ncong|nprec|nvdash|varsubsetneqq|ne|npreceq|nvDash|varsupsetneq|neq|nshortmid|nVDash|varsupsetneqq|ngeq|nshortparallel|nVdash|ngeqq|nsim|precnapprox)/g,/\\(circlearrowleft|leftharpoonup|rArr|circlearrowright|leftleftarrows|rarr|curvearrowleft|leftrightarrow|restriction|curvearrowright|Leftrightarrow|rightarrow|Darr|leftrightarrows|Rightarrow|dArr|leftrightharpoons|rightarrowtail|darr|leftrightsquigarrow|rightharpoondown|dashleftarrow|Lleftarrow|rightharpoonup|dashrightarrow|longleftarrow|rightleftarrows|downarrow|Longleftarrow|rightleftharpoons|Downarrow|longleftrightarrow|rightrightarrows|downdownarrows|Longleftrightarrow|rightsquigarrow|downharpoonleft|longmapsto|Rrightarrow|downharpoonright|longrightarrow|Rsh|gets|Longrightarrow|searrow|Harr|looparrowleft|swarrow|hArr|looparrowright|to|harr|Lrarr|twoheadleftarrow|hookleftarrow|lrArr|twoheadrightarrow|hookrightarrow|lrarr|Uarr|iff|Lsh|uArr|impliedby|mapsto|uarr|implies|nearrow|uparrow|Larr|nleftarrow|Uparrow|lArr|nLeftarrow|updownarrow|larr|nleftrightarrow|Updownarrow|leadsto|nLeftrightarrow|upharpoonleft|leftarrow|nrightarrow|upharpoonright|Leftarrow|nRightarrow|upuparrows|leftarrowtail|nwarrow|leftharpoondown|Rarr)/g,/\\(xleftarrow|xrightarrow|xLeftarrow|xRightarrow|xleftrightarrow|xLeftrightarrow|xhookleftarrow|xhookrightarrow|xtwoheadleftarrow|xtwoheadrightarrow|xleftharpoonup|xrightharpoonup|xleftharpoondown|xrightharpoondown|xleftrightharpoons|xrightleftharpoons|xtofrom|xmapsto|xlongequal)/g,/\\(mathrm|mathbf|mathit|mathnormal|textbf|textit|textrm|bf|it|rm|bold|textup|textnormal|boldsymbol|Bbb|text|bm|mathbb|mathsf|textmd|frak|textsf|mathtt|mathfrak|sf|texttt|mathcal|tt|cal|mathscr)/g,/\\(Huge|normalsize|huge|small|LARGE|footnotesize|Large|scriptsize|large|tiny)/g,/\\(displaystyle|textstyle|scriptstyle|scriptscriptstyle|lim|lim|verb)/g,/\\(dots|KaTeX|cdots|LaTeX|ddots|TeX|ldots|nabla|vdots|infty|text|dotsb|infin|text|dotsc|checkmark|text|dotsi|dag|text|dotsm|dagger|text|dotso|text|text|sdot|ddag|text|mathellipsis|ddagger|text|text|textquoteleft|Box|Dagger|lq|square|angle|text|blacksquare|measuredangle|rq|triangle|sphericalangle|text|triangledown|top|triangleleft|bot|text|triangleright|colon|bigtriangledown|text|backprime|bigtriangleup|pounds|prime|blacktriangle|mathsterling|text|blacktriangledown|text|text|blacktriangleleft|yen|text|blacktriangleright|surd|text|diamond|degree|text|Diamond|text|text|lozenge|mho||text|blacklozenge|diagdown|text|star|diagup|text|bigstar|flat|text|clubsuit|natural|copyright|clubs|sharp|circledR|diamondsuit|heartsuit|text|diamonds|hearts|circledS|spadesuit|spades|text|maltese|minuso)/g],a=[/\$\$([a-z_A-Z0-9-.!@#$%\\^&*)(+={}[\]/",'<>~·`?:;|↓′×Δ∣−× ]+?)\$\$/g,/\\\[([a-z_A-Z0-9-.!@#$%\\^&*)(+={}[\]/",'<>~·`?:;|↓′×Δ∣−× ]+?)\\\]/g,/\\begin\{[\w]+\}([a-z_A-Z0-9-.!@#$%\\^&*)(+={}[\]/",'<>~·`?:;|↓′×Δ∣−× ]+)\\end\{[\w]+\}/g],t=document.createTreeWalker(document.querySelector("#content"),NodeFilter.SHOW_TEXT,null,!1),o=[];for(;t.nextNode();){const l=t.currentNode.parentNode;if("CODE"===l.tagName||"PRE"===l.tagName)continue;if(this.getAncestorTag(l,"CODE")||this.getAncestorTag(l,"PRE"))continue;const r=String(t.currentNode.nodeValue||"").trim();if(r){for(const e of a)if(e.test(r)){if(debug("renderLaTex display check",e,r),o.some((e=>e.node===l)))break;o.push({text:r,node:l,displayMode:!0});break}for(const a of e)if(a.test(r)){if(debug("renderLaTex inline check",a,r),o.some((e=>e.node===l)))break;o.push({text:r,node:l});break}}}for(const{text:e,node:a,displayMode:t}of o){const o=a.innerHTML;try{katex.render(e,a,{throwOnError:!1,displayMode:t})}catch(t){debug("renderLaTex fail",e,t),t instanceof katex.ParseError&&(a.innerHTML=("Error in LaTeX '"+o+"': "+t.message).replace(/&/g,"&").replace(//g,">"))}}}renderTags(e){const a=document.createTreeWalker(document.querySelector("#content"),NodeFilter.SHOW_TEXT,null,!1);let t=0;const o=[];for(;a.nextNode();){const o=String(a.currentNode.nodeValue||"").replace(/\s/gi," ").trim();if(!o)continue;let r=e[t];if(!r)break;let s=0,i=o.substring(s,r.word.length);do{r.word===i&&["v","n","nn","a"].includes(r.tag)&&l(a.currentNode,s,s+r.word.length),s+=r.word.length,t++,r=e[t],i=r?o.substring(s,r.word.length+s):null}while(i)}for(const e of o.reverse())r(e);function l(e,a,t){const l=document.createRange();debug("wordtag add",e.nodeValue,a,t),l.setStart(e,a),l.setEnd(e,t),o.push(l)}function r(e){debug("wordtag range",e);const a=document.createElement("span");a.classList.add("tag"),e.surroundContents(a)}}saveMark(){const e=document.createTreeWalker(document.querySelector("#content"),NodeFilter.SHOW_TEXT,null,!1),a=window.getSelection().getRangeAt(0),t={id:this.uuidv4(),createdAt:Date.now(),text:window.getSelection().toString().trim()};let o=null,l=0,r=0,s="",i="";for(;e.nextNode();){const n=e.currentNode,c=n.nodeValue,m=String(c).replace(/\s/gi," ").trim();if(m){if(debug("savemark text",m),!o&&a.startContainer===n){const e=s+c.substring(0,a.startOffset);if(o="start",t.preText=e.substring(e.length-10),t.startPos=l+a.startOffset,debug("savemark start",m),a.startContainer!==a.endContainer){r+=n.nodeValue.substring(a.startOffset).replace(/\s/gi," ").trim().length,debug("savemark multiline",r)}}if("start"===o){if(3===a.endContainer.nodeType&&a.endContainer===n||a.startContainer===a.endContainer||r>=t.text.length||t.text.endsWith(m)){t.endPos=l+a.endOffset,i=m.substring(a.endOffset),o="end",debug("savemark done",i,a.endOffset);continue}r+=m.length}else if("end"===o){const e=i+m;t.postText=e.substring(0,10),o=null,i="",debug("savemark end",m)}l+=m.length,s=m}}debug("savemark save",t);const n=this.state.marks||[];let c=null;for(const e of n){if(t.endPos>=e.startPos&&t.startPose.endPos&&(e.text=e.text+t.text.substring(t.text.length-(t.endPos-e.endPos)),e.postText=t.postText,e.endPos=t.endPos,e.createdAt=t.createdAt,c=e),t.startPos>=e.startPos&&t.endPos<=e.endPos)return;if(c)break}c?(this.removeMark(c),this.showMark([c])):(n.push(t),this.showMark([t])),this.setState({marks:n}),this.clip("mark")}showMark(e){if(!e||0===e.length)return;const a=document.createTreeWalker(document.querySelector("#content"),NodeFilter.SHOW_TEXT,null,!1);e=e.sort(((e,a)=>e.startPos-a.startPos));let t=null,o=null,l="",r=0,s="",i=null;const n=[];for(;a.nextNode();){const n=a.currentNode.nodeValue,h=String(n||"").replace(/\s/gi," ").trim();if(!h)continue;const d=(n.match(/^\s+/)||[""])[0].length;if(l+=n,e.indexOf(i)!==r&&debug("showmark current",e[r]),i=e[r],!i)break;if(debug("showmark text",o&&"try",t&&"in",h,s),l===n&&(o=e.find((e=>!e.preText)),debug("showmark check try",h)),o)h===i.text||h.startsWith(i.text)?(debug("showmark try done",h),m(a.currentNode,0,i.text.length,i.id),o=null,r++):i.text.startsWith(h)&&(debug("showmark try continue",h),m(a.currentNode,0,h.length,i.id),t=i,s=i.text.substring(h.length)),o=null;else if(t)h===s||h.startsWith(s.trim())?(debug("showmark in done",h),m(a.currentNode,0,d+s.trim().length,i.id),t=null,r++):s.trim().startsWith(h)&&(debug("showmark in continue",h),m(a.currentNode,0,h.length,i.id),t=i,s=s.trim().substring(h.length));else if(!o&&!t){const e=c(i.preText,l);if(e.length>0)for(const c of e){const e=l.substring(c+i.preText.length),d=n.length-e.length;debug("showmark check",c,e,d),e&&i.text.startsWith(e.trim())?(m(a.currentNode,d,h.length,i.id),t=i,s=i.text.substring(e.trim().length),debug("showmark check continue",h)):e&&e.trim().startsWith(i.text)?(m(a.currentNode,d,d+i.text.length,i.id),r++,debug("showmark check done",h)):e||(o=i,debug("showmark check try",h))}}}for(const{range:e,id:a}of n)h(e,a);function c(e,a){const t=[];let o=-1;for(;(o=a.indexOf(e,o+1))>=0;)t.push(o);return t}function m(e,a,t,o){const l=document.createRange();debug("showmark add",e.nodeValue,a,t),l.setStart(e,a),l.setEnd(e,t),n.push({range:l,id:o})}function h(e,a){const t=document.createElement("span");t.classList.add("mark"),t.setAttribute("mark",a),e.surroundContents(t)}}removeMark(e,a){document.querySelectorAll(`span[mark="${e.id}"]`).forEach((e=>{e.replaceWith(e.textContent)})),this.setState({marks:(this.state.marks||[]).filter((a=>a.id!==e.id))}),a&&this.clip("mark")}removeAllMarks(){document.querySelectorAll("span.mark").forEach((e=>{e.replaceWith(e.textContent)})),this.setState({marks:[]})}handleOutlineFollow(){const e=document.querySelectorAll(".ros");let a=null,t=null;if(e.length){if(this.config.bookLayout){const t=document.getElementById("main").getBoundingClientRect(),o=t.left,l=t.width;for(let t=0;to){a=e[t];break}}}else for(let o=0;o0&&(l0&&e.stopPropagation(),a.split(";").forEach((a=>{if(a.includes("=")){let[e,t]=a.split("="),o="setState",l="state";e.startsWith("config.")&&(o="setConfig",e=e.substr(7,e.length),l="config");let r=t;if(t.includes("/"))if("0/1"===t)r=!this[l][e];else{const[a,o]=t.split("/");r=this[l][e]===a?o:a}this[o]({[e]:r})}else if(a.includes("(")){const t=a.match(/([\w]+)\((.*?)\)/);if(debug("handleEvent matched",t),t){const a=t[1];let o;const l=(t[2]?t[2].split(",").map((e=>String(e).trim())):[]).map((a=>"."===a?(o||(o=this.findContextElem(e.currentTarget)),o&&o.contextValue):a));this[a](...l)}}})))}findContextElem(e){let a,t=0;const o=e;for(e=e.parentNode;e&&!(t>5);){if(e.hasAttribute("repeat")){a=e;break}e=e.parentNode,t++}return a&&(o.contextElem=a),a}uuidv4(){return([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,(e=>(e^crypto.getRandomValues(new Uint8Array(1))[0]&15>>e/4).toString(16)))}handleParentMessage(e){if(e){if(e.callback)return this.callbackReceive(e.callback,e.result,e.error);switch(e.type){case"UPDATE":this.ready((a=>{this.setState({isReady:!0}),this.show(e.article,!0)}));break;case"setState":this.ready((a=>{this.setState(e.state)}));break;case"INIT":this.initConfig=e.config,e.api&&(this.apiUrl=e.api),this.bootstrap(),e.article&&(debug("load article when INIT"),this.ready((a=>{this.setState({isReady:!0}),this.show(e.article,!0)})))}}}setIcon(e){this.callBus("updateIcon",{status:e})}api(e,a,t={}){let o;return o=this.useBackground?this.callBus("callApi",{fn:e,data:a}):this.callApi(e,a),o.then((t=>{if(console.log("callApi",e,a,t),!t||t.code&&"OK"!==t.code||!t.data){const e=new Error(t.message);throw e.code=t.code||"ERR",e}return t.data})).catch((a=>{if("NEED_UPGRADE"===a.code)this.showUpgrade("PRO",a.message);else if("AUTH_REQUIRED"===a.code)return void this.alert("warn",this.message("app.account.loginrequired"),(e=>this.setState({showDialog:"account"})));if(t.error||t.silent)throw a;a.code?["NEED_PRO","NEED_PREMIUM"].includes(a.code)||this.alert("warn",`${a.message} (${a.code})`):(this.alert("warn","Api request failed: "+e),debug("api error",a))}))}async callApi(e,a){const t=this.apiUrl||"https://api.clearlyreader.com";return fetch(`${t}/api/${e}`,{method:"POST",body:JSON.stringify(a||{}),headers:{"content-type":"application/json","x-clearly-token":this.config&&this.config.accountToken||"","x-clearly-version":this.state.clientVersion,"x-clearly-app":this.state.clientApp}}).then((e=>e.json())).catch((e=>({code:"API_ERR",message:e.message})))}login(){this.api("login",{email:this.state.loginEmail,passcode:this.state.loginCode}).then((e=>{"NEED_CODE"===e.action?(this.setState({loginCodeNeed:!0}),this.alert("ok",this.message("app.account.codesent"))):e.token&&(this.setState({loginCodeNeed:!1}),this.setAccount(e),setTimeout((a=>{e.config&&e.config.syncAt&&this.setConfig({syncConfig:!0}),this.clip("get",{silent:!0}).then((e=>{this.showMark(this.state.marks)}))}),1e3))})).finally((e=>{this.setState({loginCode:null})}))}setAccount(e){this.setConfig({accountEmail:e?e.email:null,accountToken:e?e.token:null,accountPlanId:e?e.planId:null,accountPlanExpiredAt:e?e.planExpiredAt:0})}logout(){this.resetAccount(),this.setAccount(),this.setConfig({syncAt:null}),this.setState({clipId:null,rssUrl:null,podcastUrl:null}),this.removeAllMarks()}quickClip(){this.setState({showDialog:"clips"})}toggleClip(e){this.state[e]?this.clip(e,{value:!1}):this.clip(e)}removeClip(e){window.confirm("Are you sure you want to remove this clip?")&&e&&this.api("clipArticle",{id:e.id,url:e.url,title:e.title,lang:e.lang,[this.state.clipType]:!1}).then((e=>{debug("removeClip",e),this.alert("ok","clip archived")})).finally((e=>{this.listClips(!0)}))}async summarize(){this.ga("send","event","Clip","summarize"),this.alert("ok","Summarizing will run in the background and be displayed when finished."),this.setState({summaryStatus:"PENDING"}),this.clip("summary",{sync:!0})}exportClip(e){const a=`${e}Url`;if(!this.state[a])return this.clip(e);window.open(this.state[a],"_blank")}sendToKindle(){this.ga("send","event","Clip","sendToKindle"),this.clip("kindle",{data:{kindleEmailName:this.config.kindleEmailName}}).then((e=>{this.setState({showDialog:null})}))}async clip(e,a){return this.ga("send","event","Clip",e||"get"),a={value:!0,...a},this.api("clipArticle",{id:this.state.clipId,...this.article,marks:this.state.marks||[],config:this.config,...e?{[e]:a.value}:null,sync:a.sync,...a.data||{}},{...a,error:!e}).then((t=>{if(t)return t.shareUrl&&"share"===e?(this.copy(t.shareUrl),this.alert("ok","share url copied")):void(t.clipId&&(!e||a.silent||"get"===e||"bookmark"===e&&this.state.clipId||this.alert("ok","clip "+e+" success"+(["audio","podcast"].includes(e)?", the result will email to you when finished.":"")),this.setState(t)))})).catch((e=>{console.error("clip article",e)}))}setState(e,a){this.state||(this.state={});const t={};Object.keys(e).forEach((a=>{t[a]=this.state[a],this.state[a]=e[a]})),Object.keys(e).forEach((o=>{this.handleState(o,e[o],t[o],a)}))}setConfig(e,a){this.config||(this.config={});const t={};Object.keys(e).forEach((a=>{t[a]=this.config[a],this.config[a]=e[a]})),Object.keys(e).forEach((o=>{this.handleConfig(o,e[o],t[o],a)}))}getSelectionCharOffsets(){let e,a,t,o=0,l=0;const r=document.querySelector("#content");return void 0!==window.getSelection?(a=window.getSelection().getRangeAt(0),t=a.cloneRange(),t.selectNodeContents(r),t.setEnd(a.startContainer,a.startOffset),o=t.toString().length,l=o+a.toString().length):void 0!==document.selection&&"Control"!==(e=document.selection).type&&(a=e.createRange(),t=document.body.createTextRange(),t.moveToElementText(r),t.setEndPoint("EndToStart",a),o=t.text.length,l=o+a.text.length),{start:o,end:l,length:l-o}}async init(){let e;this.useBackground=this.runtime&&this.runtime.getBackgroundPage,this.useBackground||this.callbackStart(),window.addEventListener("message",(e=>{debug("Frame received message",e.data),this.handleParentMessage(e.data)}),!1),document.querySelectorAll("[show]").forEach((e=>e.style.display="none"));try{if(this.useBackground){const a=new URL(window.location.href);e=Object.fromEntries(a.searchParams.entries())}else e=JSON.parse($("#params").text())}catch(e){}this.initParams=e||{},this.initConfig=await this.getUserConfig(),this.initConfig&&this.bootstrap()}ready(e){if(e&&this.readyFns.push(e),this.boot)for(const e of this.readyFns)e.call(this)}async bootstrap(){if(!this.initConfig)return;const e=this.initConfig;if(this.state={...ClearlyApp.DEFAULT_STATE,clientApp:e.client.app,clientVersion:e.client.version,autoOpen:e.autoOpen,browser:this.getBrowser(),systemLang:window.navigator.language,...e.clearly,...this.initParams},this.config={...ClearlyApp.DEFAULT_READERCONFIG,...e.readerConfig},e.user){const a=e.user;Object.assign(this.config,{accountEmail:a?a.email:null,accountToken:a?a.token:null,accountPlanId:a?a.planId:null,accountPlanExpiredAt:a?a.planExpiredAt:0})}this.system=e.system,debug("state",this.state),debug("config",this.config),this.setConfig(this.config,"init"),this.setState(this.state,"init"),e.clearlyConfig.messages&&"object"==typeof e.clearlyConfig.messages&&Object.assign(CLEARLY_MESSAGE.messages,e.clearlyConfig.messages),this.boot=!0,this.bindEvents(),this.ready(),this.translateUI()}async shutdown(){window.speechSynthesis.cancel()}}ClearlyApp.DEFAULT_READERCONFIG={lang:"auto",zoom:1,outline:!0,links:!1,theme:"default",themeAuto:!1,themeDay:"default",themeNight:"gray",openTip:!1,letterSpacing:"0",lineHeight:"1.6",font:"System",systemFont:"Georgia",syntax:!0,latex:!1,width:2,bookLayout:!1,background:!0,disableExportBrand:!1,disableBrand:!1,paragraphTranslate:!0,syncConfig:!1,autoClip:!1,popmenuSearch:!0,popmenuWiki:!0,customCSS:"html {\nbackground-color: #f1f3f4;\ncolor: #191919;\n}\n#main {\nbackground-color: #ffffff;\n}\narticle * {\nletter-spacing: 0em;\nline-height: 1.6em;\n}\n#main a {\ncolor: #000000;\nborder-bottom: 1px dashed #191919;\n}\n#main a:hover {\nborder-bottom: 2px solid #191919;\n}\n",linkOpenNew:!0,speakRate:"1",roundCorner:!1,speakPitch:1,readUpdates:!1,speechMSEngine:!1,accountEmail:null,accountToken:null,accountPlanId:null,accountPlanExpiredAt:0,printWithOutline:!1,printWithMark:!1,printWithoutMeta:!1,showVideo:!1},ClearlyApp.DEFAULT_STATE={load:!1,speak:null,speakStartPos:0,speakPos:0,speakMark:!0,speakVoiceMap:{default:"auto"},fullscreen:!1,isReady:!1,isTranslate:!1,translateResult:null,isSharing:!1,clipId:null,summaryText:null,summaryStatus:null,audioStatus:null,loginEmail:null,loginCode:null,loginCodeNeed:!1,hasRenderTags:!1,bookPages:1,bookPage:1,viewWidth:0,viewHeight:0,viewSize:0,marks:[],bookmark:!1,clip:!1,clipArticlesLoading:!1,rssUrl:null,podcastUrl:null,audioUrl:null,epubUrl:null,kindle:!1,syncConfigStatus:null,syncConfigVersion:null,alertBtnCallback:null,showStyleTab:null,whitelist:["news.google.com/*","support.google.com/*","medium.com/*","www.jianshu.com/p/*"],blacklist:["www.youtube.com/*","www.google.*","chrome.google.com/*","accounts.google.com/*","myaccount.google.com/*","translate.google.com/*","mail.google.com/*","drive.google.com/*","docs.google.com/*","spreadsheet.google.com/*"],msTTSVoices:[{LocalName:"Adri",ShortName:"af-ZA-AdriNeural",DisplayName:"Adri",Gender:"Female",Locale:"af-ZA"},{LocalName:"Willem",ShortName:"af-ZA-WillemNeural",DisplayName:"Willem",Gender:"Male",Locale:"af-ZA"},{LocalName:"አምሀ",ShortName:"am-ET-AmehaNeural",DisplayName:"Ameha",Gender:"Male",Locale:"am-ET"},{LocalName:"መቅደስ",ShortName:"am-ET-MekdesNeural",DisplayName:"Mekdes",Gender:"Female",Locale:"am-ET"},{LocalName:"فاطمة",ShortName:"ar-AE-FatimaNeural",DisplayName:"Fatima",Gender:"Female",Locale:"ar-AE"},{LocalName:"حمدان",ShortName:"ar-AE-HamdanNeural",DisplayName:"Hamdan",Gender:"Male",Locale:"ar-AE"},{LocalName:"علي",ShortName:"ar-BH-AliNeural",DisplayName:"Ali",Gender:"Male",Locale:"ar-BH"},{LocalName:"ليلى",ShortName:"ar-BH-LailaNeural",DisplayName:"Laila",Gender:"Female",Locale:"ar-BH"},{LocalName:"أمينة",ShortName:"ar-DZ-AminaNeural",DisplayName:"Amina",Gender:"Female",Locale:"ar-DZ"},{LocalName:"إسماعيل",ShortName:"ar-DZ-IsmaelNeural",DisplayName:"Ismael",Gender:"Male",Locale:"ar-DZ"},{LocalName:"سلمى",ShortName:"ar-EG-SalmaNeural",DisplayName:"Salma",Gender:"Female",Locale:"ar-EG"},{LocalName:"شاكر",ShortName:"ar-EG-ShakirNeural",DisplayName:"Shakir",Gender:"Male",Locale:"ar-EG"},{LocalName:"باسل",ShortName:"ar-IQ-BasselNeural",DisplayName:"Bassel",Gender:"Male",Locale:"ar-IQ"},{LocalName:"رنا",ShortName:"ar-IQ-RanaNeural",DisplayName:"Rana",Gender:"Female",Locale:"ar-IQ"},{LocalName:"سناء",ShortName:"ar-JO-SanaNeural",DisplayName:"Sana",Gender:"Female",Locale:"ar-JO"},{LocalName:"تيم",ShortName:"ar-JO-TaimNeural",DisplayName:"Taim",Gender:"Male",Locale:"ar-JO"},{LocalName:"فهد",ShortName:"ar-KW-FahedNeural",DisplayName:"Fahed",Gender:"Male",Locale:"ar-KW"},{LocalName:"نورا",ShortName:"ar-KW-NouraNeural",DisplayName:"Noura",Gender:"Female",Locale:"ar-KW"},{LocalName:"ليلى",ShortName:"ar-LB-LaylaNeural",DisplayName:"Layla",Gender:"Female",Locale:"ar-LB"},{LocalName:"رامي",ShortName:"ar-LB-RamiNeural",DisplayName:"Rami",Gender:"Male",Locale:"ar-LB"},{LocalName:"إيمان",ShortName:"ar-LY-ImanNeural",DisplayName:"Iman",Gender:"Female",Locale:"ar-LY"},{LocalName:"أحمد",ShortName:"ar-LY-OmarNeural",DisplayName:"Omar",Gender:"Male",Locale:"ar-LY"},{LocalName:"جمال",ShortName:"ar-MA-JamalNeural",DisplayName:"Jamal",Gender:"Male",Locale:"ar-MA"},{LocalName:"منى",ShortName:"ar-MA-MounaNeural",DisplayName:"Mouna",Gender:"Female",Locale:"ar-MA"},{LocalName:"عبدالله",ShortName:"ar-OM-AbdullahNeural",DisplayName:"Abdullah",Gender:"Male",Locale:"ar-OM"},{LocalName:"عائشة",ShortName:"ar-OM-AyshaNeural",DisplayName:"Aysha",Gender:"Female",Locale:"ar-OM"},{LocalName:"أمل",ShortName:"ar-QA-AmalNeural",DisplayName:"Amal",Gender:"Female",Locale:"ar-QA"},{LocalName:"معاذ",ShortName:"ar-QA-MoazNeural",DisplayName:"Moaz",Gender:"Male",Locale:"ar-QA"},{LocalName:"حامد",ShortName:"ar-SA-HamedNeural",DisplayName:"Hamed",Gender:"Male",Locale:"ar-SA"},{LocalName:"زارية",ShortName:"ar-SA-ZariyahNeural",DisplayName:"Zariyah",Gender:"Female",Locale:"ar-SA"},{LocalName:"أماني",ShortName:"ar-SY-AmanyNeural",DisplayName:"Amany",Gender:"Female",Locale:"ar-SY"},{LocalName:"ليث",ShortName:"ar-SY-LaithNeural",DisplayName:"Laith",Gender:"Male",Locale:"ar-SY"},{LocalName:"هادي",ShortName:"ar-TN-HediNeural",DisplayName:"Hedi",Gender:"Male",Locale:"ar-TN"},{LocalName:"ريم",ShortName:"ar-TN-ReemNeural",DisplayName:"Reem",Gender:"Female",Locale:"ar-TN"},{LocalName:"مريم",ShortName:"ar-YE-MaryamNeural",DisplayName:"Maryam",Gender:"Female",Locale:"ar-YE"},{LocalName:"صالح",ShortName:"ar-YE-SalehNeural",DisplayName:"Saleh",Gender:"Male",Locale:"ar-YE"},{LocalName:"Babək",ShortName:"az-AZ-BabekNeural",DisplayName:"Babek",Gender:"Male",Locale:"az-AZ"},{LocalName:"Banu",ShortName:"az-AZ-BanuNeural",DisplayName:"Banu",Gender:"Female",Locale:"az-AZ"},{LocalName:"Борислав",ShortName:"bg-BG-BorislavNeural",DisplayName:"Borislav",Gender:"Male",Locale:"bg-BG"},{LocalName:"Калина",ShortName:"bg-BG-KalinaNeural",DisplayName:"Kalina",Gender:"Female",Locale:"bg-BG"},{LocalName:"নবনীতা",ShortName:"bn-BD-NabanitaNeural",DisplayName:"Nabanita",Gender:"Female",Locale:"bn-BD"},{LocalName:"প্রদ্বীপ",ShortName:"bn-BD-PradeepNeural",DisplayName:"Pradeep",Gender:"Male",Locale:"bn-BD"},{LocalName:"ভাস্কর",ShortName:"bn-IN-BashkarNeural",DisplayName:"Bashkar",Gender:"Male",Locale:"bn-IN"},{LocalName:"তানিশা",ShortName:"bn-IN-TanishaaNeural",DisplayName:"Tanishaa",Gender:"Female",Locale:"bn-IN"},{LocalName:"Goran",ShortName:"bs-BA-GoranNeural",DisplayName:"Goran",Gender:"Male",Locale:"bs-BA"},{LocalName:"Vesna",ShortName:"bs-BA-VesnaNeural",DisplayName:"Vesna",Gender:"Female",Locale:"bs-BA"},{LocalName:"Joana",ShortName:"ca-ES-JoanaNeural",DisplayName:"Joana",Gender:"Female",Locale:"ca-ES"},{LocalName:"Alba",ShortName:"ca-ES-AlbaNeural",DisplayName:"Alba",Gender:"Female",Locale:"ca-ES"},{LocalName:"Enric",ShortName:"ca-ES-EnricNeural",DisplayName:"Enric",Gender:"Male",Locale:"ca-ES"},{LocalName:"Antonín",ShortName:"cs-CZ-AntoninNeural",DisplayName:"Antonin",Gender:"Male",Locale:"cs-CZ"},{LocalName:"Vlasta",ShortName:"cs-CZ-VlastaNeural",DisplayName:"Vlasta",Gender:"Female",Locale:"cs-CZ"},{LocalName:"Aled",ShortName:"cy-GB-AledNeural",DisplayName:"Aled",Gender:"Male",Locale:"cy-GB"},{LocalName:"Nia",ShortName:"cy-GB-NiaNeural",DisplayName:"Nia",Gender:"Female",Locale:"cy-GB"},{LocalName:"Christel",ShortName:"da-DK-ChristelNeural",DisplayName:"Christel",Gender:"Female",Locale:"da-DK"},{LocalName:"Jeppe",ShortName:"da-DK-JeppeNeural",DisplayName:"Jeppe",Gender:"Male",Locale:"da-DK"},{LocalName:"Ingrid",ShortName:"de-AT-IngridNeural",DisplayName:"Ingrid",Gender:"Female",Locale:"de-AT"},{LocalName:"Jonas",ShortName:"de-AT-JonasNeural",DisplayName:"Jonas",Gender:"Male",Locale:"de-AT"},{LocalName:"Jan",ShortName:"de-CH-JanNeural",DisplayName:"Jan",Gender:"Male",Locale:"de-CH"},{LocalName:"Leni",ShortName:"de-CH-LeniNeural",DisplayName:"Leni",Gender:"Female",Locale:"de-CH"},{LocalName:"Katja",ShortName:"de-DE-KatjaNeural",DisplayName:"Katja",Gender:"Female",Locale:"de-DE"},{LocalName:"Amala",ShortName:"de-DE-AmalaNeural",DisplayName:"Amala",Gender:"Female",Locale:"de-DE"},{LocalName:"Bernd",ShortName:"de-DE-BerndNeural",DisplayName:"Bernd",Gender:"Male",Locale:"de-DE"},{LocalName:"Christoph",ShortName:"de-DE-ChristophNeural",DisplayName:"Christoph",Gender:"Male",Locale:"de-DE"},{LocalName:"Conrad",ShortName:"de-DE-ConradNeural",DisplayName:"Conrad",Gender:"Male",Locale:"de-DE"},{LocalName:"Elke",ShortName:"de-DE-ElkeNeural",DisplayName:"Elke",Gender:"Female",Locale:"de-DE"},{LocalName:"Gisela",ShortName:"de-DE-GiselaNeural",DisplayName:"Gisela",Gender:"Female",Locale:"de-DE"},{LocalName:"Kasper",ShortName:"de-DE-KasperNeural",DisplayName:"Kasper",Gender:"Male",Locale:"de-DE"},{LocalName:"Killian",ShortName:"de-DE-KillianNeural",DisplayName:"Killian",Gender:"Male",Locale:"de-DE"},{LocalName:"Klarissa",ShortName:"de-DE-KlarissaNeural",DisplayName:"Klarissa",Gender:"Female",Locale:"de-DE"},{LocalName:"Klaus",ShortName:"de-DE-KlausNeural",DisplayName:"Klaus",Gender:"Male",Locale:"de-DE"},{LocalName:"Louisa",ShortName:"de-DE-LouisaNeural",DisplayName:"Louisa",Gender:"Female",Locale:"de-DE"},{LocalName:"Maja",ShortName:"de-DE-MajaNeural",DisplayName:"Maja",Gender:"Female",Locale:"de-DE"},{LocalName:"Ralf",ShortName:"de-DE-RalfNeural",DisplayName:"Ralf",Gender:"Male",Locale:"de-DE"},{LocalName:"Tanja",ShortName:"de-DE-TanjaNeural",DisplayName:"Tanja",Gender:"Female",Locale:"de-DE"},{LocalName:"Αθηνά",ShortName:"el-GR-AthinaNeural",DisplayName:"Athina",Gender:"Female",Locale:"el-GR"},{LocalName:"Νέστορας",ShortName:"el-GR-NestorasNeural",DisplayName:"Nestoras",Gender:"Male",Locale:"el-GR"},{LocalName:"Natasha",ShortName:"en-AU-NatashaNeural",DisplayName:"Natasha",Gender:"Female",Locale:"en-AU"},{LocalName:"William",ShortName:"en-AU-WilliamNeural",DisplayName:"William",Gender:"Male",Locale:"en-AU"},{LocalName:"Clara",ShortName:"en-CA-ClaraNeural",DisplayName:"Clara",Gender:"Female",Locale:"en-CA"},{LocalName:"Liam",ShortName:"en-CA-LiamNeural",DisplayName:"Liam",Gender:"Male",Locale:"en-CA"},{LocalName:"Libby",ShortName:"en-GB-LibbyNeural",DisplayName:"Libby",Gender:"Female",Locale:"en-GB"},{LocalName:"Abbi",ShortName:"en-GB-AbbiNeural",DisplayName:"Abbi",Gender:"Female",Locale:"en-GB"},{LocalName:"Alfie",ShortName:"en-GB-AlfieNeural",DisplayName:"Alfie",Gender:"Male",Locale:"en-GB"},{LocalName:"Bella",ShortName:"en-GB-BellaNeural",DisplayName:"Bella",Gender:"Female",Locale:"en-GB"},{LocalName:"Elliot",ShortName:"en-GB-ElliotNeural",DisplayName:"Elliot",Gender:"Male",Locale:"en-GB"},{LocalName:"Ethan",ShortName:"en-GB-EthanNeural",DisplayName:"Ethan",Gender:"Male",Locale:"en-GB"},{LocalName:"Hollie",ShortName:"en-GB-HollieNeural",DisplayName:"Hollie",Gender:"Female",Locale:"en-GB"},{LocalName:"Maisie",ShortName:"en-GB-MaisieNeural",DisplayName:"Maisie",Gender:"Female",Locale:"en-GB"},{LocalName:"Noah",ShortName:"en-GB-NoahNeural",DisplayName:"Noah",Gender:"Male",Locale:"en-GB"},{LocalName:"Oliver",ShortName:"en-GB-OliverNeural",DisplayName:"Oliver",Gender:"Male",Locale:"en-GB"},{LocalName:"Olivia",ShortName:"en-GB-OliviaNeural",DisplayName:"Olivia",Gender:"Female",Locale:"en-GB"},{LocalName:"Ryan",ShortName:"en-GB-RyanNeural",DisplayName:"Ryan",Gender:"Male",Locale:"en-GB"},{LocalName:"Sonia",ShortName:"en-GB-SoniaNeural",DisplayName:"Sonia",Gender:"Female",Locale:"en-GB"},{LocalName:"Thomas",ShortName:"en-GB-ThomasNeural",DisplayName:"Thomas",Gender:"Male",Locale:"en-GB"},{LocalName:"Mia",ShortName:"en-GB-MiaNeural",DisplayName:"Mia",Gender:"Female",Locale:"en-GB"},{LocalName:"Sam",ShortName:"en-HK-SamNeural",DisplayName:"Sam",Gender:"Male",Locale:"en-HK"},{LocalName:"Yan",ShortName:"en-HK-YanNeural",DisplayName:"Yan",Gender:"Female",Locale:"en-HK"},{LocalName:"Connor",ShortName:"en-IE-ConnorNeural",DisplayName:"Connor",Gender:"Male",Locale:"en-IE"},{LocalName:"Emily",ShortName:"en-IE-EmilyNeural",DisplayName:"Emily",Gender:"Female",Locale:"en-IE"},{LocalName:"Neerja",ShortName:"en-IN-NeerjaNeural",DisplayName:"Neerja",Gender:"Female",Locale:"en-IN"},{LocalName:"Prabhat",ShortName:"en-IN-PrabhatNeural",DisplayName:"Prabhat",Gender:"Male",Locale:"en-IN"},{LocalName:"Asilia",ShortName:"en-KE-AsiliaNeural",DisplayName:"Asilia",Gender:"Female",Locale:"en-KE"},{LocalName:"Chilemba",ShortName:"en-KE-ChilembaNeural",DisplayName:"Chilemba",Gender:"Male",Locale:"en-KE"},{LocalName:"Abeo",ShortName:"en-NG-AbeoNeural",DisplayName:"Abeo",Gender:"Male",Locale:"en-NG"},{LocalName:"Ezinne",ShortName:"en-NG-EzinneNeural",DisplayName:"Ezinne",Gender:"Female",Locale:"en-NG"},{LocalName:"Mitchell",ShortName:"en-NZ-MitchellNeural",DisplayName:"Mitchell",Gender:"Male",Locale:"en-NZ"},{LocalName:"Molly",ShortName:"en-NZ-MollyNeural",DisplayName:"Molly",Gender:"Female",Locale:"en-NZ"},{LocalName:"James",ShortName:"en-PH-JamesNeural",DisplayName:"James",Gender:"Male",Locale:"en-PH"},{LocalName:"Rosa",ShortName:"en-PH-RosaNeural",DisplayName:"Rosa",Gender:"Female",Locale:"en-PH"},{LocalName:"Luna",ShortName:"en-SG-LunaNeural",DisplayName:"Luna",Gender:"Female",Locale:"en-SG"},{LocalName:"Wayne",ShortName:"en-SG-WayneNeural",DisplayName:"Wayne",Gender:"Male",Locale:"en-SG"},{LocalName:"Elimu",ShortName:"en-TZ-ElimuNeural",DisplayName:"Elimu",Gender:"Male",Locale:"en-TZ"},{LocalName:"Imani",ShortName:"en-TZ-ImaniNeural",DisplayName:"Imani",Gender:"Female",Locale:"en-TZ"},{LocalName:"Jenny",ShortName:"en-US-JennyNeural",DisplayName:"Jenny",Gender:"Female",Locale:"en-US"},{LocalName:"Jenny Multilingual",ShortName:"en-US-JennyMultilingualNeural",DisplayName:"Jenny Multilingual",Gender:"Female",Locale:"en-US"},{LocalName:"Guy",ShortName:"en-US-GuyNeural",DisplayName:"Guy",Gender:"Male",Locale:"en-US"},{LocalName:"Amber",ShortName:"en-US-AmberNeural",DisplayName:"Amber",Gender:"Female",Locale:"en-US"},{LocalName:"Ana",ShortName:"en-US-AnaNeural",DisplayName:"Ana",Gender:"Female",Locale:"en-US"},{LocalName:"Aria",ShortName:"en-US-AriaNeural",DisplayName:"Aria",Gender:"Female",Locale:"en-US"},{LocalName:"Ashley",ShortName:"en-US-AshleyNeural",DisplayName:"Ashley",Gender:"Female",Locale:"en-US"},{LocalName:"Brandon",ShortName:"en-US-BrandonNeural",DisplayName:"Brandon",Gender:"Male",Locale:"en-US"},{LocalName:"Christopher",ShortName:"en-US-ChristopherNeural",DisplayName:"Christopher",Gender:"Male",Locale:"en-US"},{LocalName:"Cora",ShortName:"en-US-CoraNeural",DisplayName:"Cora",Gender:"Female",Locale:"en-US"},{LocalName:"Davis",ShortName:"en-US-DavisNeural",DisplayName:"Davis",Gender:"Male",Locale:"en-US"},{LocalName:"Elizabeth",ShortName:"en-US-ElizabethNeural",DisplayName:"Elizabeth",Gender:"Female",Locale:"en-US"},{LocalName:"Eric",ShortName:"en-US-EricNeural",DisplayName:"Eric",Gender:"Male",Locale:"en-US"},{LocalName:"Jacob",ShortName:"en-US-JacobNeural",DisplayName:"Jacob",Gender:"Male",Locale:"en-US"},{LocalName:"Jane",ShortName:"en-US-JaneNeural",DisplayName:"Jane",Gender:"Female",Locale:"en-US"},{LocalName:"Jason",ShortName:"en-US-JasonNeural",DisplayName:"Jason",Gender:"Male",Locale:"en-US"},{LocalName:"Michelle",ShortName:"en-US-MichelleNeural",DisplayName:"Michelle",Gender:"Female",Locale:"en-US"},{LocalName:"Monica",ShortName:"en-US-MonicaNeural",DisplayName:"Monica",Gender:"Female",Locale:"en-US"},{LocalName:"Nancy",ShortName:"en-US-NancyNeural",DisplayName:"Nancy",Gender:"Female",Locale:"en-US"},{LocalName:"Sara",ShortName:"en-US-SaraNeural",DisplayName:"Sara",Gender:"Female",Locale:"en-US"},{LocalName:"Tony",ShortName:"en-US-TonyNeural",DisplayName:"Tony",Gender:"Male",Locale:"en-US"},{LocalName:"JennyEmotion",ShortName:"en-US-JennyEmotionNeural",DisplayName:"JennyEmotion",Gender:"Female",Locale:"en-US"},{LocalName:"Leah",ShortName:"en-ZA-LeahNeural",DisplayName:"Leah",Gender:"Female",Locale:"en-ZA"},{LocalName:"Luke",ShortName:"en-ZA-LukeNeural",DisplayName:"Luke",Gender:"Male",Locale:"en-ZA"},{LocalName:"Elena",ShortName:"es-AR-ElenaNeural",DisplayName:"Elena",Gender:"Female",Locale:"es-AR"},{LocalName:"Tomas",ShortName:"es-AR-TomasNeural",DisplayName:"Tomas",Gender:"Male",Locale:"es-AR"},{LocalName:"Marcelo",ShortName:"es-BO-MarceloNeural",DisplayName:"Marcelo",Gender:"Male",Locale:"es-BO"},{LocalName:"Sofia",ShortName:"es-BO-SofiaNeural",DisplayName:"Sofia",Gender:"Female",Locale:"es-BO"},{LocalName:"Catalina",ShortName:"es-CL-CatalinaNeural",DisplayName:"Catalina",Gender:"Female",Locale:"es-CL"},{LocalName:"Lorenzo",ShortName:"es-CL-LorenzoNeural",DisplayName:"Lorenzo",Gender:"Male",Locale:"es-CL"},{LocalName:"Gonzalo",ShortName:"es-CO-GonzaloNeural",DisplayName:"Gonzalo",Gender:"Male",Locale:"es-CO"},{LocalName:"Salome",ShortName:"es-CO-SalomeNeural",DisplayName:"Salome",Gender:"Female",Locale:"es-CO"},{LocalName:"Juan",ShortName:"es-CR-JuanNeural",DisplayName:"Juan",Gender:"Male",Locale:"es-CR"},{LocalName:"María",ShortName:"es-CR-MariaNeural",DisplayName:"Maria",Gender:"Female",Locale:"es-CR"},{LocalName:"Belkys",ShortName:"es-CU-BelkysNeural",DisplayName:"Belkys",Gender:"Female",Locale:"es-CU"},{LocalName:"Manuel",ShortName:"es-CU-ManuelNeural",DisplayName:"Manuel",Gender:"Male",Locale:"es-CU"},{LocalName:"Emilio",ShortName:"es-DO-EmilioNeural",DisplayName:"Emilio",Gender:"Male",Locale:"es-DO"},{LocalName:"Ramona",ShortName:"es-DO-RamonaNeural",DisplayName:"Ramona",Gender:"Female",Locale:"es-DO"},{LocalName:"Andrea",ShortName:"es-EC-AndreaNeural",DisplayName:"Andrea",Gender:"Female",Locale:"es-EC"},{LocalName:"Luis",ShortName:"es-EC-LuisNeural",DisplayName:"Luis",Gender:"Male",Locale:"es-EC"},{LocalName:"Álvaro",ShortName:"es-ES-AlvaroNeural",DisplayName:"Alvaro",Gender:"Male",Locale:"es-ES"},{LocalName:"Elvira",ShortName:"es-ES-ElviraNeural",DisplayName:"Elvira",Gender:"Female",Locale:"es-ES"},{LocalName:"Javier",ShortName:"es-GQ-JavierNeural",DisplayName:"Javier",Gender:"Male",Locale:"es-GQ"},{LocalName:"Teresa",ShortName:"es-GQ-TeresaNeural",DisplayName:"Teresa",Gender:"Female",Locale:"es-GQ"},{LocalName:"Andrés",ShortName:"es-GT-AndresNeural",DisplayName:"Andres",Gender:"Male",Locale:"es-GT"},{LocalName:"Marta",ShortName:"es-GT-MartaNeural",DisplayName:"Marta",Gender:"Female",Locale:"es-GT"},{LocalName:"Carlos",ShortName:"es-HN-CarlosNeural",DisplayName:"Carlos",Gender:"Male",Locale:"es-HN"},{LocalName:"Karla",ShortName:"es-HN-KarlaNeural",DisplayName:"Karla",Gender:"Female",Locale:"es-HN"},{LocalName:"Beatriz",ShortName:"es-MX-BeatrizNeural",DisplayName:"Beatriz",Gender:"Female",Locale:"es-MX"},{LocalName:"Candela",ShortName:"es-MX-CandelaNeural",DisplayName:"Candela",Gender:"Female",Locale:"es-MX"},{LocalName:"Carlota",ShortName:"es-MX-CarlotaNeural",DisplayName:"Carlota",Gender:"Female",Locale:"es-MX"},{LocalName:"Cecilio",ShortName:"es-MX-CecilioNeural",DisplayName:"Cecilio",Gender:"Male",Locale:"es-MX"},{LocalName:"Dalia",ShortName:"es-MX-DaliaNeural",DisplayName:"Dalia",Gender:"Female",Locale:"es-MX"},{LocalName:"Gerardo",ShortName:"es-MX-GerardoNeural",DisplayName:"Gerardo",Gender:"Male",Locale:"es-MX"},{LocalName:"Jorge",ShortName:"es-MX-JorgeNeural",DisplayName:"Jorge",Gender:"Male",Locale:"es-MX"},{LocalName:"Larissa",ShortName:"es-MX-LarissaNeural",DisplayName:"Larissa",Gender:"Female",Locale:"es-MX"},{LocalName:"Liberto",ShortName:"es-MX-LibertoNeural",DisplayName:"Liberto",Gender:"Male",Locale:"es-MX"},{LocalName:"Luciano",ShortName:"es-MX-LucianoNeural",DisplayName:"Luciano",Gender:"Male",Locale:"es-MX"},{LocalName:"Marina",ShortName:"es-MX-MarinaNeural",DisplayName:"Marina",Gender:"Female",Locale:"es-MX"},{LocalName:"Nuria",ShortName:"es-MX-NuriaNeural",DisplayName:"Nuria",Gender:"Female",Locale:"es-MX"},{LocalName:"Pelayo",ShortName:"es-MX-PelayoNeural",DisplayName:"Pelayo",Gender:"Male",Locale:"es-MX"},{LocalName:"Renata",ShortName:"es-MX-RenataNeural",DisplayName:"Renata",Gender:"Female",Locale:"es-MX"},{LocalName:"Yago",ShortName:"es-MX-YagoNeural",DisplayName:"Yago",Gender:"Male",Locale:"es-MX"},{LocalName:"Federico",ShortName:"es-NI-FedericoNeural",DisplayName:"Federico",Gender:"Male",Locale:"es-NI"},{LocalName:"Yolanda",ShortName:"es-NI-YolandaNeural",DisplayName:"Yolanda",Gender:"Female",Locale:"es-NI"},{LocalName:"Margarita",ShortName:"es-PA-MargaritaNeural",DisplayName:"Margarita",Gender:"Female",Locale:"es-PA"},{LocalName:"Roberto",ShortName:"es-PA-RobertoNeural",DisplayName:"Roberto",Gender:"Male",Locale:"es-PA"},{LocalName:"Alex",ShortName:"es-PE-AlexNeural",DisplayName:"Alex",Gender:"Male",Locale:"es-PE"},{LocalName:"Camila",ShortName:"es-PE-CamilaNeural",DisplayName:"Camila",Gender:"Female",Locale:"es-PE"},{LocalName:"Karina",ShortName:"es-PR-KarinaNeural",DisplayName:"Karina",Gender:"Female",Locale:"es-PR"},{LocalName:"Víctor",ShortName:"es-PR-VictorNeural",DisplayName:"Victor",Gender:"Male",Locale:"es-PR"},{LocalName:"Mario",ShortName:"es-PY-MarioNeural",DisplayName:"Mario",Gender:"Male",Locale:"es-PY"},{LocalName:"Tania",ShortName:"es-PY-TaniaNeural",DisplayName:"Tania",Gender:"Female",Locale:"es-PY"},{LocalName:"Lorena",ShortName:"es-SV-LorenaNeural",DisplayName:"Lorena",Gender:"Female",Locale:"es-SV"},{LocalName:"Rodrigo",ShortName:"es-SV-RodrigoNeural",DisplayName:"Rodrigo",Gender:"Male",Locale:"es-SV"},{LocalName:"Alonso",ShortName:"es-US-AlonsoNeural",DisplayName:"Alonso",Gender:"Male",Locale:"es-US"},{LocalName:"Paloma",ShortName:"es-US-PalomaNeural",DisplayName:"Paloma",Gender:"Female",Locale:"es-US"},{LocalName:"Mateo",ShortName:"es-UY-MateoNeural",DisplayName:"Mateo",Gender:"Male",Locale:"es-UY"},{LocalName:"Valentina",ShortName:"es-UY-ValentinaNeural",DisplayName:"Valentina",Gender:"Female",Locale:"es-UY"},{LocalName:"Paola",ShortName:"es-VE-PaolaNeural",DisplayName:"Paola",Gender:"Female",Locale:"es-VE"},{LocalName:"Sebastián",ShortName:"es-VE-SebastianNeural",DisplayName:"Sebastian",Gender:"Male",Locale:"es-VE"},{LocalName:"Anu",ShortName:"et-EE-AnuNeural",DisplayName:"Anu",Gender:"Female",Locale:"et-EE"},{LocalName:"Kert",ShortName:"et-EE-KertNeural",DisplayName:"Kert",Gender:"Male",Locale:"et-EE"},{LocalName:"Ainhoa",ShortName:"eu-ES-AinhoaNeural",DisplayName:"Ainhoa",Gender:"Female",Locale:"eu-ES"},{LocalName:"Ander",ShortName:"eu-ES-AnderNeural",DisplayName:"Ander",Gender:"Male",Locale:"eu-ES"},{LocalName:"دلارا",ShortName:"fa-IR-DilaraNeural",DisplayName:"Dilara",Gender:"Female",Locale:"fa-IR"},{LocalName:"فرید",ShortName:"fa-IR-FaridNeural",DisplayName:"Farid",Gender:"Male",Locale:"fa-IR"},{LocalName:"Selma",ShortName:"fi-FI-SelmaNeural",DisplayName:"Selma",Gender:"Female",Locale:"fi-FI"},{LocalName:"Harri",ShortName:"fi-FI-HarriNeural",DisplayName:"Harri",Gender:"Male",Locale:"fi-FI"},{LocalName:"Noora",ShortName:"fi-FI-NooraNeural",DisplayName:"Noora",Gender:"Female",Locale:"fi-FI"},{LocalName:"Angelo",ShortName:"fil-PH-AngeloNeural",DisplayName:"Angelo",Gender:"Male",Locale:"fil-PH"},{LocalName:"Blessica",ShortName:"fil-PH-BlessicaNeural",DisplayName:"Blessica",Gender:"Female",Locale:"fil-PH"},{LocalName:"Charline",ShortName:"fr-BE-CharlineNeural",DisplayName:"Charline",Gender:"Female",Locale:"fr-BE"},{LocalName:"Gerard",ShortName:"fr-BE-GerardNeural",DisplayName:"Gerard",Gender:"Male",Locale:"fr-BE"},{LocalName:"Sylvie",ShortName:"fr-CA-SylvieNeural",DisplayName:"Sylvie",Gender:"Female",Locale:"fr-CA"},{LocalName:"Antoine",ShortName:"fr-CA-AntoineNeural",DisplayName:"Antoine",Gender:"Male",Locale:"fr-CA"},{LocalName:"Jean",ShortName:"fr-CA-JeanNeural",DisplayName:"Jean",Gender:"Male",Locale:"fr-CA"},{LocalName:"Ariane",ShortName:"fr-CH-ArianeNeural",DisplayName:"Ariane",Gender:"Female",Locale:"fr-CH"},{LocalName:"Fabrice",ShortName:"fr-CH-FabriceNeural",DisplayName:"Fabrice",Gender:"Male",Locale:"fr-CH"},{LocalName:"Alain",ShortName:"fr-FR-AlainNeural",DisplayName:"Alain",Gender:"Male",Locale:"fr-FR"},{LocalName:"Brigitte",ShortName:"fr-FR-BrigitteNeural",DisplayName:"Brigitte",Gender:"Female",Locale:"fr-FR"},{LocalName:"Celeste",ShortName:"fr-FR-CelesteNeural",DisplayName:"Celeste",Gender:"Female",Locale:"fr-FR"},{LocalName:"Claude",ShortName:"fr-FR-ClaudeNeural",DisplayName:"Claude",Gender:"Male",Locale:"fr-FR"},{LocalName:"Coralie",ShortName:"fr-FR-CoralieNeural",DisplayName:"Coralie",Gender:"Female",Locale:"fr-FR"},{LocalName:"Denise",ShortName:"fr-FR-DeniseNeural",DisplayName:"Denise",Gender:"Female",Locale:"fr-FR"},{LocalName:"Eloise",ShortName:"fr-FR-EloiseNeural",DisplayName:"Eloise",Gender:"Female",Locale:"fr-FR"},{LocalName:"Henri",ShortName:"fr-FR-HenriNeural",DisplayName:"Henri",Gender:"Male",Locale:"fr-FR"},{LocalName:"Jacqueline",ShortName:"fr-FR-JacquelineNeural",DisplayName:"Jacqueline",Gender:"Female",Locale:"fr-FR"},{LocalName:"Jerome",ShortName:"fr-FR-JeromeNeural",DisplayName:"Jerome",Gender:"Male",Locale:"fr-FR"},{LocalName:"Josephine",ShortName:"fr-FR-JosephineNeural",DisplayName:"Josephine",Gender:"Female",Locale:"fr-FR"},{LocalName:"Maurice",ShortName:"fr-FR-MauriceNeural",DisplayName:"Maurice",Gender:"Male",Locale:"fr-FR"},{LocalName:"Yves",ShortName:"fr-FR-YvesNeural",DisplayName:"Yves",Gender:"Male",Locale:"fr-FR"},{LocalName:"Yvette",ShortName:"fr-FR-YvetteNeural",DisplayName:"Yvette",Gender:"Female",Locale:"fr-FR"},{LocalName:"Colm",ShortName:"ga-IE-ColmNeural",DisplayName:"Colm",Gender:"Male",Locale:"ga-IE"},{LocalName:"Orla",ShortName:"ga-IE-OrlaNeural",DisplayName:"Orla",Gender:"Female",Locale:"ga-IE"},{LocalName:"Roi",ShortName:"gl-ES-RoiNeural",DisplayName:"Roi",Gender:"Male",Locale:"gl-ES"},{LocalName:"Sabela",ShortName:"gl-ES-SabelaNeural",DisplayName:"Sabela",Gender:"Female",Locale:"gl-ES"},{LocalName:"ધ્વની",ShortName:"gu-IN-DhwaniNeural",DisplayName:"Dhwani",Gender:"Female",Locale:"gu-IN"},{LocalName:"નિરંજન",ShortName:"gu-IN-NiranjanNeural",DisplayName:"Niranjan",Gender:"Male",Locale:"gu-IN"},{LocalName:"אברי",ShortName:"he-IL-AvriNeural",DisplayName:"Avri",Gender:"Male",Locale:"he-IL"},{LocalName:"הילה",ShortName:"he-IL-HilaNeural",DisplayName:"Hila",Gender:"Female",Locale:"he-IL"},{LocalName:"मधुर",ShortName:"hi-IN-MadhurNeural",DisplayName:"Madhur",Gender:"Male",Locale:"hi-IN"},{LocalName:"स्वरा",ShortName:"hi-IN-SwaraNeural",DisplayName:"Swara",Gender:"Female",Locale:"hi-IN"},{LocalName:"Gabrijela",ShortName:"hr-HR-GabrijelaNeural",DisplayName:"Gabrijela",Gender:"Female",Locale:"hr-HR"},{LocalName:"Srećko",ShortName:"hr-HR-SreckoNeural",DisplayName:"Srecko",Gender:"Male",Locale:"hr-HR"},{LocalName:"Noémi",ShortName:"hu-HU-NoemiNeural",DisplayName:"Noemi",Gender:"Female",Locale:"hu-HU"},{LocalName:"Tamás",ShortName:"hu-HU-TamasNeural",DisplayName:"Tamas",Gender:"Male",Locale:"hu-HU"},{LocalName:"Անահիտ",ShortName:"hy-AM-AnahitNeural",DisplayName:"Anahit",Gender:"Female",Locale:"hy-AM"},{LocalName:"Հայկ",ShortName:"hy-AM-HaykNeural",DisplayName:"Hayk",Gender:"Male",Locale:"hy-AM"},{LocalName:"Ardi",ShortName:"id-ID-ArdiNeural",DisplayName:"Ardi",Gender:"Male",Locale:"id-ID"},{LocalName:"Gadis",ShortName:"id-ID-GadisNeural",DisplayName:"Gadis",Gender:"Female",Locale:"id-ID"},{LocalName:"Guðrún",ShortName:"is-IS-GudrunNeural",DisplayName:"Gudrun",Gender:"Female",Locale:"is-IS"},{LocalName:"Gunnar",ShortName:"is-IS-GunnarNeural",DisplayName:"Gunnar",Gender:"Male",Locale:"is-IS"},{LocalName:"Isabella",ShortName:"it-IT-IsabellaNeural",DisplayName:"Isabella",Gender:"Female",Locale:"it-IT"},{LocalName:"Benigno",ShortName:"it-IT-BenignoNeural",DisplayName:"Benigno",Gender:"Male",Locale:"it-IT"},{LocalName:"Calimero",ShortName:"it-IT-CalimeroNeural",DisplayName:"Calimero",Gender:"Male",Locale:"it-IT"},{LocalName:"Cataldo",ShortName:"it-IT-CataldoNeural",DisplayName:"Cataldo",Gender:"Male",Locale:"it-IT"},{LocalName:"Diego",ShortName:"it-IT-DiegoNeural",DisplayName:"Diego",Gender:"Male",Locale:"it-IT"},{LocalName:"Elsa",ShortName:"it-IT-ElsaNeural",DisplayName:"Elsa",Gender:"Female",Locale:"it-IT"},{LocalName:"Fabiola",ShortName:"it-IT-FabiolaNeural",DisplayName:"Fabiola",Gender:"Female",Locale:"it-IT"},{LocalName:"Fiamma",ShortName:"it-IT-FiammaNeural",DisplayName:"Fiamma",Gender:"Female",Locale:"it-IT"},{LocalName:"Gianni",ShortName:"it-IT-GianniNeural",DisplayName:"Gianni",Gender:"Male",Locale:"it-IT"},{LocalName:"Imelda",ShortName:"it-IT-ImeldaNeural",DisplayName:"Imelda",Gender:"Female",Locale:"it-IT"},{LocalName:"Irma",ShortName:"it-IT-IrmaNeural",DisplayName:"Irma",Gender:"Female",Locale:"it-IT"},{LocalName:"Lisandro",ShortName:"it-IT-LisandroNeural",DisplayName:"Lisandro",Gender:"Male",Locale:"it-IT"},{LocalName:"Palmira",ShortName:"it-IT-PalmiraNeural",DisplayName:"Palmira",Gender:"Female",Locale:"it-IT"},{LocalName:"Pierina",ShortName:"it-IT-PierinaNeural",DisplayName:"Pierina",Gender:"Female",Locale:"it-IT"},{LocalName:"Rinaldo",ShortName:"it-IT-RinaldoNeural",DisplayName:"Rinaldo",Gender:"Male",Locale:"it-IT"},{LocalName:"七海",ShortName:"ja-JP-NanamiNeural",DisplayName:"Nanami",Gender:"Female",Locale:"ja-JP"},{LocalName:"圭太",ShortName:"ja-JP-KeitaNeural",DisplayName:"Keita",Gender:"Male",Locale:"ja-JP"},{LocalName:"Dimas",ShortName:"jv-ID-DimasNeural",DisplayName:"Dimas",Gender:"Male",Locale:"jv-ID"},{LocalName:"Siti",ShortName:"jv-ID-SitiNeural",DisplayName:"Siti",Gender:"Female",Locale:"jv-ID"},{LocalName:"ეკა",ShortName:"ka-GE-EkaNeural",DisplayName:"Eka",Gender:"Female",Locale:"ka-GE"},{LocalName:"გიორგი",ShortName:"ka-GE-GiorgiNeural",DisplayName:"Giorgi",Gender:"Male",Locale:"ka-GE"},{LocalName:"Айгүл",ShortName:"kk-KZ-AigulNeural",DisplayName:"Aigul",Gender:"Female",Locale:"kk-KZ"},{LocalName:"Дәулет",ShortName:"kk-KZ-DauletNeural",DisplayName:"Daulet",Gender:"Male",Locale:"kk-KZ"},{LocalName:"ពិសិដ្ឋ",ShortName:"km-KH-PisethNeural",DisplayName:"Piseth",Gender:"Male",Locale:"km-KH"},{LocalName:"ស្រីមុំ",ShortName:"km-KH-SreymomNeural",DisplayName:"Sreymom",Gender:"Female",Locale:"km-KH"},{LocalName:"ಗಗನ್",ShortName:"kn-IN-GaganNeural",DisplayName:"Gagan",Gender:"Male",Locale:"kn-IN"},{LocalName:"ಸಪ್ನಾ",ShortName:"kn-IN-SapnaNeural",DisplayName:"Sapna",Gender:"Female",Locale:"kn-IN"},{LocalName:"선히",ShortName:"ko-KR-SunHiNeural",DisplayName:"Sun-Hi",Gender:"Female",Locale:"ko-KR"},{LocalName:"인준",ShortName:"ko-KR-InJoonNeural",DisplayName:"InJoon",Gender:"Male",Locale:"ko-KR"},{LocalName:"ຈັນທະວົງ",ShortName:"lo-LA-ChanthavongNeural",DisplayName:"Chanthavong",Gender:"Male",Locale:"lo-LA"},{LocalName:"ແກ້ວມະນີ",ShortName:"lo-LA-KeomanyNeural",DisplayName:"Keomany",Gender:"Female",Locale:"lo-LA"},{LocalName:"Leonas",ShortName:"lt-LT-LeonasNeural",DisplayName:"Leonas",Gender:"Male",Locale:"lt-LT"},{LocalName:"Ona",ShortName:"lt-LT-OnaNeural",DisplayName:"Ona",Gender:"Female",Locale:"lt-LT"},{LocalName:"Everita",ShortName:"lv-LV-EveritaNeural",DisplayName:"Everita",Gender:"Female",Locale:"lv-LV"},{LocalName:"Nils",ShortName:"lv-LV-NilsNeural",DisplayName:"Nils",Gender:"Male",Locale:"lv-LV"},{LocalName:"Александар",ShortName:"mk-MK-AleksandarNeural",DisplayName:"Aleksandar",Gender:"Male",Locale:"mk-MK"},{LocalName:"Марија",ShortName:"mk-MK-MarijaNeural",DisplayName:"Marija",Gender:"Female",Locale:"mk-MK"},{LocalName:"മിഥുൻ",ShortName:"ml-IN-MidhunNeural",DisplayName:"Midhun",Gender:"Male",Locale:"ml-IN"},{LocalName:"ശോഭന",ShortName:"ml-IN-SobhanaNeural",DisplayName:"Sobhana",Gender:"Female",Locale:"ml-IN"},{LocalName:"Батаа",ShortName:"mn-MN-BataaNeural",DisplayName:"Bataa",Gender:"Male",Locale:"mn-MN"},{LocalName:"Есүй",ShortName:"mn-MN-YesuiNeural",DisplayName:"Yesui",Gender:"Female",Locale:"mn-MN"},{LocalName:"आरोही",ShortName:"mr-IN-AarohiNeural",DisplayName:"Aarohi",Gender:"Female",Locale:"mr-IN"},{LocalName:"मनोहर",ShortName:"mr-IN-ManoharNeural",DisplayName:"Manohar",Gender:"Male",Locale:"mr-IN"},{LocalName:"Osman",ShortName:"ms-MY-OsmanNeural",DisplayName:"Osman",Gender:"Male",Locale:"ms-MY"},{LocalName:"Yasmin",ShortName:"ms-MY-YasminNeural",DisplayName:"Yasmin",Gender:"Female",Locale:"ms-MY"},{LocalName:"Grace",ShortName:"mt-MT-GraceNeural",DisplayName:"Grace",Gender:"Female",Locale:"mt-MT"},{LocalName:"Joseph",ShortName:"mt-MT-JosephNeural",DisplayName:"Joseph",Gender:"Male",Locale:"mt-MT"},{LocalName:"နီလာ",ShortName:"my-MM-NilarNeural",DisplayName:"Nilar",Gender:"Female",Locale:"my-MM"},{LocalName:"သီဟ",ShortName:"my-MM-ThihaNeural",DisplayName:"Thiha",Gender:"Male",Locale:"my-MM"},{LocalName:"Pernille",ShortName:"nb-NO-PernilleNeural",DisplayName:"Pernille",Gender:"Female",Locale:"nb-NO"},{LocalName:"Finn",ShortName:"nb-NO-FinnNeural",DisplayName:"Finn",Gender:"Male",Locale:"nb-NO"},{LocalName:"Iselin",ShortName:"nb-NO-IselinNeural",DisplayName:"Iselin",Gender:"Female",Locale:"nb-NO"},{LocalName:"हेमकला",ShortName:"ne-NP-HemkalaNeural",DisplayName:"Hemkala",Gender:"Female",Locale:"ne-NP"},{LocalName:"सागर",ShortName:"ne-NP-SagarNeural",DisplayName:"Sagar",Gender:"Male",Locale:"ne-NP"},{LocalName:"Arnaud",ShortName:"nl-BE-ArnaudNeural",DisplayName:"Arnaud",Gender:"Male",Locale:"nl-BE"},{LocalName:"Dena",ShortName:"nl-BE-DenaNeural",DisplayName:"Dena",Gender:"Female",Locale:"nl-BE"},{LocalName:"Colette",ShortName:"nl-NL-ColetteNeural",DisplayName:"Colette",Gender:"Female",Locale:"nl-NL"},{LocalName:"Fenna",ShortName:"nl-NL-FennaNeural",DisplayName:"Fenna",Gender:"Female",Locale:"nl-NL"},{LocalName:"Maarten",ShortName:"nl-NL-MaartenNeural",DisplayName:"Maarten",Gender:"Male",Locale:"nl-NL"},{LocalName:"Agnieszka",ShortName:"pl-PL-AgnieszkaNeural",DisplayName:"Agnieszka",Gender:"Female",Locale:"pl-PL"},{LocalName:"Marek",ShortName:"pl-PL-MarekNeural",DisplayName:"Marek",Gender:"Male",Locale:"pl-PL"},{LocalName:"Zofia",ShortName:"pl-PL-ZofiaNeural",DisplayName:"Zofia",Gender:"Female",Locale:"pl-PL"},{LocalName:" ګل نواز",ShortName:"ps-AF-GulNawazNeural",DisplayName:"Gul Nawaz",Gender:"Male",Locale:"ps-AF"},{LocalName:"لطيفه",ShortName:"ps-AF-LatifaNeural",DisplayName:"Latifa",Gender:"Female",Locale:"ps-AF"},{LocalName:"Francisca",ShortName:"pt-BR-FranciscaNeural",DisplayName:"Francisca",Gender:"Female",Locale:"pt-BR"},{LocalName:"Brenda",ShortName:"pt-BR-BrendaNeural",DisplayName:"Brenda",Gender:"Female",Locale:"pt-BR"},{LocalName:"Donato",ShortName:"pt-BR-DonatoNeural",DisplayName:"Donato",Gender:"Male",Locale:"pt-BR"},{LocalName:"Elza",ShortName:"pt-BR-ElzaNeural",DisplayName:"Elza",Gender:"Female",Locale:"pt-BR"},{LocalName:"Fabio",ShortName:"pt-BR-FabioNeural",DisplayName:"Fabio",Gender:"Male",Locale:"pt-BR"},{LocalName:"Giovanna",ShortName:"pt-BR-GiovannaNeural",DisplayName:"Giovanna",Gender:"Female",Locale:"pt-BR"},{LocalName:"Humberto",ShortName:"pt-BR-HumbertoNeural",DisplayName:"Humberto",Gender:"Male",Locale:"pt-BR"},{LocalName:"Julio",ShortName:"pt-BR-JulioNeural",DisplayName:"Julio",Gender:"Male",Locale:"pt-BR"},{LocalName:"Leila",ShortName:"pt-BR-LeilaNeural",DisplayName:"Leila",Gender:"Female",Locale:"pt-BR"},{LocalName:"Leticia",ShortName:"pt-BR-LeticiaNeural",DisplayName:"Leticia",Gender:"Female",Locale:"pt-BR"},{LocalName:"Manuela",ShortName:"pt-BR-ManuelaNeural",DisplayName:"Manuela",Gender:"Female",Locale:"pt-BR"},{LocalName:"Nicolau",ShortName:"pt-BR-NicolauNeural",DisplayName:"Nicolau",Gender:"Male",Locale:"pt-BR"},{LocalName:"Valerio",ShortName:"pt-BR-ValerioNeural",DisplayName:"Valerio",Gender:"Male",Locale:"pt-BR"},{LocalName:"Yara",ShortName:"pt-BR-YaraNeural",DisplayName:"Yara",Gender:"Female",Locale:"pt-BR"},{LocalName:"Antônio",ShortName:"pt-BR-AntonioNeural",DisplayName:"Antonio",Gender:"Male",Locale:"pt-BR"},{LocalName:"Duarte",ShortName:"pt-PT-DuarteNeural",DisplayName:"Duarte",Gender:"Male",Locale:"pt-PT"},{LocalName:"Fernanda",ShortName:"pt-PT-FernandaNeural",DisplayName:"Fernanda",Gender:"Female",Locale:"pt-PT"},{LocalName:"Raquel",ShortName:"pt-PT-RaquelNeural",DisplayName:"Raquel",Gender:"Female",Locale:"pt-PT"},{LocalName:"Alina",ShortName:"ro-RO-AlinaNeural",DisplayName:"Alina",Gender:"Female",Locale:"ro-RO"},{LocalName:"Emil",ShortName:"ro-RO-EmilNeural",DisplayName:"Emil",Gender:"Male",Locale:"ro-RO"},{LocalName:"Светлана",ShortName:"ru-RU-SvetlanaNeural",DisplayName:"Svetlana",Gender:"Female",Locale:"ru-RU"},{LocalName:"Дария",ShortName:"ru-RU-DariyaNeural",DisplayName:"Dariya",Gender:"Female",Locale:"ru-RU"},{LocalName:"Дмитрий",ShortName:"ru-RU-DmitryNeural",DisplayName:"Dmitry",Gender:"Male",Locale:"ru-RU"},{LocalName:"සමීර",ShortName:"si-LK-SameeraNeural",DisplayName:"Sameera",Gender:"Male",Locale:"si-LK"},{LocalName:"තිළිණි",ShortName:"si-LK-ThiliniNeural",DisplayName:"Thilini",Gender:"Female",Locale:"si-LK"},{LocalName:"Lukáš",ShortName:"sk-SK-LukasNeural",DisplayName:"Lukas",Gender:"Male",Locale:"sk-SK"},{LocalName:"Viktória",ShortName:"sk-SK-ViktoriaNeural",DisplayName:"Viktoria",Gender:"Female",Locale:"sk-SK"},{LocalName:"Petra",ShortName:"sl-SI-PetraNeural",DisplayName:"Petra",Gender:"Female",Locale:"sl-SI"},{LocalName:"Rok",ShortName:"sl-SI-RokNeural",DisplayName:"Rok",Gender:"Male",Locale:"sl-SI"},{LocalName:"Muuse",ShortName:"so-SO-MuuseNeural",DisplayName:"Muuse",Gender:"Male",Locale:"so-SO"},{LocalName:"Ubax",ShortName:"so-SO-UbaxNeural",DisplayName:"Ubax",Gender:"Female",Locale:"so-SO"},{LocalName:"Anila",ShortName:"sq-AL-AnilaNeural",DisplayName:"Anila",Gender:"Female",Locale:"sq-AL"},{LocalName:"Ilir",ShortName:"sq-AL-IlirNeural",DisplayName:"Ilir",Gender:"Male",Locale:"sq-AL"},{LocalName:"Никола",ShortName:"sr-RS-NicholasNeural",DisplayName:"Nicholas",Gender:"Male",Locale:"sr-RS"},{LocalName:"Софија",ShortName:"sr-RS-SophieNeural",DisplayName:"Sophie",Gender:"Female",Locale:"sr-RS"},{LocalName:"Jajang",ShortName:"su-ID-JajangNeural",DisplayName:"Jajang",Gender:"Male",Locale:"su-ID"},{LocalName:"Tuti",ShortName:"su-ID-TutiNeural",DisplayName:"Tuti",Gender:"Female",Locale:"su-ID"},{LocalName:"Sofie",ShortName:"sv-SE-SofieNeural",DisplayName:"Sofie",Gender:"Female",Locale:"sv-SE"},{LocalName:"Hillevi",ShortName:"sv-SE-HilleviNeural",DisplayName:"Hillevi",Gender:"Female",Locale:"sv-SE"},{LocalName:"Mattias",ShortName:"sv-SE-MattiasNeural",DisplayName:"Mattias",Gender:"Male",Locale:"sv-SE"},{LocalName:"Rafiki",ShortName:"sw-KE-RafikiNeural",DisplayName:"Rafiki",Gender:"Male",Locale:"sw-KE"},{LocalName:"Zuri",ShortName:"sw-KE-ZuriNeural",DisplayName:"Zuri",Gender:"Female",Locale:"sw-KE"},{LocalName:"Daudi",ShortName:"sw-TZ-DaudiNeural",DisplayName:"Daudi",Gender:"Male",Locale:"sw-TZ"},{LocalName:"Rehema",ShortName:"sw-TZ-RehemaNeural",DisplayName:"Rehema",Gender:"Female",Locale:"sw-TZ"},{LocalName:"பல்லவி",ShortName:"ta-IN-PallaviNeural",DisplayName:"Pallavi",Gender:"Female",Locale:"ta-IN"},{LocalName:"வள்ளுவர்",ShortName:"ta-IN-ValluvarNeural",DisplayName:"Valluvar",Gender:"Male",Locale:"ta-IN"},{LocalName:"குமார்",ShortName:"ta-LK-KumarNeural",DisplayName:"Kumar",Gender:"Male",Locale:"ta-LK"},{LocalName:"சரண்யா",ShortName:"ta-LK-SaranyaNeural",DisplayName:"Saranya",Gender:"Female",Locale:"ta-LK"},{LocalName:"கனி",ShortName:"ta-MY-KaniNeural",DisplayName:"Kani",Gender:"Female",Locale:"ta-MY"},{LocalName:"சூர்யா",ShortName:"ta-MY-SuryaNeural",DisplayName:"Surya",Gender:"Male",Locale:"ta-MY"},{LocalName:"அன்பு",ShortName:"ta-SG-AnbuNeural",DisplayName:"Anbu",Gender:"Male",Locale:"ta-SG"},{LocalName:"வெண்பா",ShortName:"ta-SG-VenbaNeural",DisplayName:"Venba",Gender:"Female",Locale:"ta-SG"},{LocalName:"మోహన్",ShortName:"te-IN-MohanNeural",DisplayName:"Mohan",Gender:"Male",Locale:"te-IN"},{LocalName:"శ్రుతి",ShortName:"te-IN-ShrutiNeural",DisplayName:"Shruti",Gender:"Female",Locale:"te-IN"},{LocalName:"เปรมวดี",ShortName:"th-TH-PremwadeeNeural",DisplayName:"Premwadee",Gender:"Female",Locale:"th-TH"},{LocalName:"อัจฉรา",ShortName:"th-TH-AcharaNeural",DisplayName:"Achara",Gender:"Female",Locale:"th-TH"},{LocalName:"นิวัฒน์",ShortName:"th-TH-NiwatNeural",DisplayName:"Niwat",Gender:"Male",Locale:"th-TH"},{LocalName:"Ahmet",ShortName:"tr-TR-AhmetNeural",DisplayName:"Ahmet",Gender:"Male",Locale:"tr-TR"},{LocalName:"Emel",ShortName:"tr-TR-EmelNeural",DisplayName:"Emel",Gender:"Female",Locale:"tr-TR"},{LocalName:"Остап",ShortName:"uk-UA-OstapNeural",DisplayName:"Ostap",Gender:"Male",Locale:"uk-UA"},{LocalName:"Поліна",ShortName:"uk-UA-PolinaNeural",DisplayName:"Polina",Gender:"Female",Locale:"uk-UA"},{LocalName:"گل",ShortName:"ur-IN-GulNeural",DisplayName:"Gul",Gender:"Female",Locale:"ur-IN"},{LocalName:"سلمان",ShortName:"ur-IN-SalmanNeural",DisplayName:"Salman",Gender:"Male",Locale:"ur-IN"},{LocalName:"اسد",ShortName:"ur-PK-AsadNeural",DisplayName:"Asad",Gender:"Male",Locale:"ur-PK"},{LocalName:"عظمیٰ",ShortName:"ur-PK-UzmaNeural",DisplayName:"Uzma",Gender:"Female",Locale:"ur-PK"},{LocalName:"Madina",ShortName:"uz-UZ-MadinaNeural",DisplayName:"Madina",Gender:"Female",Locale:"uz-UZ"},{LocalName:"Sardor",ShortName:"uz-UZ-SardorNeural",DisplayName:"Sardor",Gender:"Male",Locale:"uz-UZ"},{LocalName:"Hoài My",ShortName:"vi-VN-HoaiMyNeural",DisplayName:"HoaiMy",Gender:"Female",Locale:"vi-VN"},{LocalName:"Nam Minh",ShortName:"vi-VN-NamMinhNeural",DisplayName:"NamMinh",Gender:"Male",Locale:"vi-VN"},{LocalName:"晓彤",ShortName:"wuu-CN-XiaotongNeural",DisplayName:"Xiaotong",Gender:"Female",Locale:"wuu-CN"},{LocalName:"云哲",ShortName:"wuu-CN-YunzheNeural",DisplayName:"Yunzhe",Gender:"Male",Locale:"wuu-CN"},{LocalName:"晓敏",ShortName:"yue-CN-XiaoMinNeural",DisplayName:"XiaoMin",Gender:"Female",Locale:"yue-CN"},{LocalName:"云松",ShortName:"yue-CN-YunSongNeural",DisplayName:"YunSong",Gender:"Male",Locale:"yue-CN"},{LocalName:"晓晓",ShortName:"zh-CN-XiaoxiaoNeural",DisplayName:"Xiaoxiao",Gender:"Female",Locale:"zh-CN"},{LocalName:"云扬",ShortName:"zh-CN-YunyangNeural",DisplayName:"Yunyang",Gender:"Male",Locale:"zh-CN"},{LocalName:"晓辰",ShortName:"zh-CN-XiaochenNeural",DisplayName:"Xiaochen",Gender:"Female",Locale:"zh-CN"},{LocalName:"晓涵",ShortName:"zh-CN-XiaohanNeural",DisplayName:"Xiaohan",Gender:"Female",Locale:"zh-CN"},{LocalName:"晓墨",ShortName:"zh-CN-XiaomoNeural",DisplayName:"Xiaomo",Gender:"Female",Locale:"zh-CN"},{LocalName:"晓秋",ShortName:"zh-CN-XiaoqiuNeural",DisplayName:"Xiaoqiu",Gender:"Female",Locale:"zh-CN"},{LocalName:"晓睿",ShortName:"zh-CN-XiaoruiNeural",DisplayName:"Xiaorui",Gender:"Female",Locale:"zh-CN"},{LocalName:"晓双",ShortName:"zh-CN-XiaoshuangNeural",DisplayName:"Xiaoshuang",Gender:"Female",Locale:"zh-CN"},{LocalName:"晓萱",ShortName:"zh-CN-XiaoxuanNeural",DisplayName:"Xiaoxuan",Gender:"Female",Locale:"zh-CN"},{LocalName:"晓颜",ShortName:"zh-CN-XiaoyanNeural",DisplayName:"Xiaoyan",Gender:"Female",Locale:"zh-CN"},{LocalName:"晓悠",ShortName:"zh-CN-XiaoyouNeural",DisplayName:"Xiaoyou",Gender:"Female",Locale:"zh-CN"},{LocalName:"云希",ShortName:"zh-CN-YunxiNeural",DisplayName:"Yunxi",Gender:"Male",Locale:"zh-CN"},{LocalName:"云野",ShortName:"zh-CN-YunyeNeural",DisplayName:"Yunye",Gender:"Male",Locale:"zh-CN"},{LocalName:"曉曼",ShortName:"zh-HK-HiuMaanNeural",DisplayName:"HiuMaan",Gender:"Female",Locale:"zh-HK"},{LocalName:"曉佳",ShortName:"zh-HK-HiuGaaiNeural",DisplayName:"HiuGaai",Gender:"Female",Locale:"zh-HK"},{LocalName:"雲龍",ShortName:"zh-HK-WanLungNeural",DisplayName:"WanLung",Gender:"Male",Locale:"zh-HK"},{LocalName:"曉臻",ShortName:"zh-TW-HsiaoChenNeural",DisplayName:"HsiaoChen",Gender:"Female",Locale:"zh-TW"},{LocalName:"曉雨",ShortName:"zh-TW-HsiaoYuNeural",DisplayName:"HsiaoYu",Gender:"Female",Locale:"zh-TW"},{LocalName:"雲哲",ShortName:"zh-TW-YunJheNeural",DisplayName:"YunJhe",Gender:"Male",Locale:"zh-TW"},{LocalName:"Thando",ShortName:"zu-ZA-ThandoNeural",DisplayName:"Thando",Gender:"Female",Locale:"zu-ZA"},{LocalName:"Themba",ShortName:"zu-ZA-ThembaNeural",DisplayName:"Themba",Gender:"Male",Locale:"zu-ZA"}],fonts:[{name:"System",system:["win","mac"]},{name:"Lora",system:["win","mac"]},{name:"NotoSerif",system:["win","mac"]},{name:"Crimson",system:["win","mac"]},{name:"Georgia",system:["win","mac"]},{name:"Roboto",system:["win","mac"]},{name:"STKaiti",system:["win","mac"]},{name:"STSong",system:["win","mac"]}],themes:[{theme:"default",autoTheme:"day",mainColor:"#ffffff",bgColor:"#f6f6f6",fontColor:"#111111",linkColor:"#000000"},{theme:"yellow",autoTheme:"day",mainColor:"#ffeecd",bgColor:"#f7e7c7",fontColor:"#4f321c",linkColor:"#3f2816"},{theme:"green",autoTheme:"day",mainColor:"#CEE0D5",bgColor:"#C2D3C9",fontColor:"#333333",linkColor:"#333333"},{theme:"gray",autoTheme:"night",mainColor:"#3c3c3c",bgColor:"#323233",fontColor:"#eeeeee",linkColor:"#ffffff"},{theme:"black",autoTheme:"night",mainColor:"#151515",bgColor:"#111111",fontColor:"#eeeeee",linkColor:"#ffffff"},{theme:"aged",mainColor:"#ffe8bc69",bgColor:"#efe4ce",bgImg:"__MSG_@@extension_id__/assets/img/aged.jpg",fontColor:"#4f321c",linkColor:"#3f2816"},{theme:" texture",autoTheme:"day",mainColor:"#ffffff99",bgColor:"#f6f6f6",bgImg:"__MSG_@@extension_id__/assets/img/texture.jpg",fontColor:"#111111",linkColor:"#000000"},{theme:"winter",autoTheme:"day",mainColor:"#ffffff99",bgColor:"#f6f6f6",bgImg:"__MSG_@@extension_id__/assets/img/snowmoutain.jpg",fontColor:"#111111",linkColor:"#000000"}]};const ClearlyEnv=window.ClearlyEnv||{};function debug(){if(!ClearlyEnv.debug)return;const e=Array.prototype.slice.call(arguments,0);console.debug.apply(null,["CLEARY* |"].concat(e))}(ClearlyEnv.debug?window:{}).clearlyApp=new ClearlyApp(ClearlyEnv),Sentry.init({dsn:"https://3aebb481a638417da34abd41a070f02b@o83346.ingest.sentry.io/4504461258915840",release:ClearlyEnv.version||"development",integrations:[new Sentry.BrowserTracing],tracesSampleRate:1});