From 6f84980f17e86b6b960c19e7dcc831735d49351a Mon Sep 17 00:00:00 2001 From: troyeguo <13820674+troyeguo@users.noreply.github.com> Date: Mon, 31 Aug 2026 10:53:03 +0800 Subject: [PATCH] fix bug --- src/assets/lib/kookit.min.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/assets/lib/kookit.min.js b/src/assets/lib/kookit.min.js index 58a1b280..1f8b8746 100644 --- a/src/assets/lib/kookit.min.js +++ b/src/assets/lib/kookit.min.js @@ -1 +1 @@ -import e from"underscore";import t from"rangy/lib/rangy-core.js";import"rangy/lib/rangy-textrange";import i from"jszip";import*as n from"fflate";import{unzlibSync as o}from"fflate";import r from"chardet";import s from"js-untar";import a from"mammoth";import{marked as l}from"marked";import c from"mhtml2html";function d(e,t,i,n){return new(i||(i=Promise))(function(o,r){function s(e){try{l(n.next(e))}catch(e){r(e)}}function a(e){try{l(n.throw(e))}catch(e){r(e)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i(function(e){e(t)})).then(s,a)}l((n=n.apply(e,t||[])).next())})}const g={"㐷":"傌","㐹":"㑶","㐽":"偑","㑇":"㑳","㑈":"倲","㑔":"㑯","㑩":"儸","㓆":"𠗣","㓥":"劏","㓰":"劃","㔉":"劚","㖊":"噚","㖞":"喎","㘎":"㘚","㚯":"㜄","㛀":"媰","㛟":"𡞵","㛠":"𡢃","㛣":"㜏","㛤":"孋","㛿":"𡠹","㟆":"㠏","㟜":"𡾱","㟥":"嵾","㡎":"幓","㤘":"㥮","㤽":"懤","㥪":"慺","㧏":"掆","㧐":"㩳","㧑":"撝","㧟":"擓","㧰":"擽","㨫":"㩜","㭎":"棡","㭏":"椲","㭣":"𣙎","㭤":"樢","㭴":"樫","㱩":"殰","㱮":"殨","㲿":"瀇","㳔":"濧","㳕":"灡","㳠":"澾","㳡":"濄","㳢":"𣾷","㳽":"瀰","㴋":"潚","㶉":"鸂","㶶":"燶","㶽":"煱","㺍":"獱","㻅":"璯","㻏":"𤫩","㻘":"𤪺","䀥":"䁻","䁖":"瞜","䂵":"碽","䃅":"磾","䅉":"稏","䅟":"穇","䅪":"𥢢","䇲":"筴","䉤":"籔","䌶":"䊷","䌷":"紬","䌸":"縳","䌹":"絅","䌺":"䋙","䌻":"䋚","䌼":"綐","䌽":"綵","䌾":"䋻","䌿":"䋹","䍀":"繿","䍁":"繸","䍠":"䍦","䎬":"䎱","䏝":"膞","䑽":"𦪙","䓓":"薵","䓕":"薳","䓖":"藭","䓨":"罃","䗖":"螮","䘛":"𧝞","䘞":"𧜗","䙊":"𧜵","䙌":"䙡","䙓":"襬","䜣":"訢","䜤":"鿁","䜥":"𧩙","䜧":"䜀","䜩":"讌","䝙":"貙","䞌":"𧵳","䞍":"䝼","䞎":"𧶧","䞐":"賰","䟢":"躎","䢀":"𨊰","䢁":"𨊸","䢂":"𨋢","䥺":"釾","䥽":"鏺","䥾":"䥱","䥿":"𨯅","䦀":"𨦫","䦁":"𨧜","䦂":"䥇","䦃":"鐯","䦅":"鐥","䦆":"钁","䦶":"䦛","䦷":"䦟","䩄":"靦","䭪":"𩞯","䯃":"𩣑","䯄":"騧","䯅":"䯀","䲝":"䱽","䲞":"𩶘","䲟":"鮣","䲠":"鰆","䲡":"鰌","䲢":"鰧","䲣":"䱷","䴓":"鳾","䴔":"鵁","䴕":"鴷","䴖":"鶄","䴗":"鶪","䴘":"鷉","䴙":"鸊","䶮":"龑","万":"萬","与":"與","丑":"醜","专":"專","业":"業","丛":"叢","东":"東","丝":"絲","丢":"丟","两":"兩","严":"嚴","丧":"喪","个":"個","丰":"豐","临":"臨","为":"爲","丽":"麗","举":"舉","么":"麼","义":"義","乌":"烏","乐":"樂","乔":"喬","习":"習","乡":"鄉","书":"書","买":"買","乱":"亂","了":"了","争":"爭","于":"於","亏":"虧","云":"雲","亘":"亙","亚":"亞","产":"產","亩":"畝","亲":"親","亵":"褻","亸":"嚲","亿":"億","仅":"僅","仆":"僕","仇":"仇","从":"從","仑":"侖","仓":"倉","仪":"儀","们":"們","价":"價","仿":"仿","众":"衆","优":"優","伙":"夥","会":"會","伛":"傴","伞":"傘","伟":"偉","传":"傳","伡":"俥","伣":"俔","伤":"傷","伥":"倀","伦":"倫","伧":"傖","伪":"僞","伫":"佇","体":"體","余":"餘","佛":"佛","佣":"傭","佥":"僉","侠":"俠","侣":"侶","侥":"僥","侦":"偵","侧":"側","侨":"僑","侩":"儈","侪":"儕","侬":"儂","侭":"儘","俊":"俊","俣":"俁","俦":"儔","俨":"儼","俩":"倆","俪":"儷","俫":"倈","俭":"儉","修":"修","借":"借","债":"債","倾":"傾","偬":"傯","偻":"僂","偾":"僨","偿":"償","傤":"儎","傥":"儻","傧":"儐","储":"儲","傩":"儺","僵":"僵","儿":"兒","克":"克","兑":"兌","兖":"兗","党":"黨","兰":"蘭","关":"關","兴":"興","兹":"茲","养":"養","兽":"獸","冁":"囅","内":"內","冈":"岡","册":"冊","写":"寫","军":"軍","农":"農","冬":"冬","冯":"馮","冲":"衝","决":"決","况":"況","冻":"凍","净":"淨","凄":"悽","准":"準","凉":"涼","凌":"凌","减":"減","凑":"湊","凛":"凜","几":"幾","凤":"鳳","凫":"鳧","凭":"憑","凯":"凱","凶":"兇","出":"出","击":"擊","凿":"鑿","刍":"芻","划":"劃","刘":"劉","则":"則","刚":"剛","创":"創","删":"刪","别":"別","刬":"剗","刭":"剄","刮":"刮","制":"制","刹":"剎","刽":"劊","刾":"㓨","刿":"劌","剀":"剴","剂":"劑","剐":"剮","剑":"劍","剥":"剝","剧":"劇","劝":"勸","办":"辦","务":"務","劢":"勱","动":"動","励":"勵","劲":"勁","劳":"勞","势":"勢","勋":"勳","勚":"勩","匀":"勻","匦":"匭","匮":"匱","区":"區","医":"醫","千":"千","升":"升","华":"華","协":"協","单":"單","卖":"賣","卜":"卜","占":"佔","卢":"盧","卤":"滷","卧":"臥","卫":"衛","却":"卻","卷":"卷","卺":"巹","厂":"廠","厅":"廳","历":"歷","厉":"厲","压":"壓","厌":"厭","厍":"厙","厐":"龎","厕":"廁","厘":"釐","厢":"廂","厣":"厴","厦":"廈","厨":"廚","厩":"廄","厮":"廝","县":"縣","叁":"叄","参":"參","叆":"靉","叇":"靆","双":"雙","发":"發","变":"變","叙":"敘","叠":"疊","只":"只","台":"臺","叶":"葉","号":"號","叹":"嘆","叽":"嘰","吁":"籲","吃":"喫","合":"合","吊":"吊","同":"同","后":"後","向":"向","吓":"嚇","吕":"呂","吗":"嗎","吨":"噸","听":"聽","启":"啓","吴":"吳","呐":"吶","呒":"嘸","呓":"囈","呕":"嘔","呖":"嚦","呗":"唄","员":"員","呙":"咼","呛":"嗆","呜":"嗚","周":"周","咏":"詠","咙":"嚨","咛":"嚀","咝":"噝","咤":"吒","咨":"諮","咸":"鹹","咽":"咽","哄":"哄","响":"響","哑":"啞","哒":"噠","哓":"嘵","哔":"嗶","哕":"噦","哗":"譁","哙":"噲","哜":"嚌","哝":"噥","哟":"喲","唇":"脣","唛":"嘜","唝":"嗊","唠":"嘮","唡":"啢","唢":"嗩","唤":"喚","啧":"嘖","啬":"嗇","啭":"囀","啮":"齧","啯":"嘓","啰":"囉","啴":"嘽","啸":"嘯","喂":"喂","喷":"噴","喽":"嘍","喾":"嚳","嗫":"囁","嗳":"噯","嘘":"噓","嘤":"嚶","嘱":"囑","噜":"嚕","噪":"噪","嚣":"囂","回":"回","团":"團","园":"園","困":"困","囱":"囪","围":"圍","囵":"圇","国":"國","图":"圖","圆":"圓","圣":"聖","圹":"壙","场":"場","坏":"壞","块":"塊","坚":"堅","坛":"壇","坜":"壢","坝":"壩","坞":"塢","坟":"墳","坠":"墜","垄":"壟","垅":"壠","垆":"壚","垒":"壘","垦":"墾","垩":"堊","垫":"墊","垭":"埡","垯":"墶","垱":"壋","垲":"塏","垴":"堖","埘":"塒","埙":"壎","埚":"堝","堑":"塹","堕":"墮","塆":"壪","墙":"牆","壮":"壯","声":"聲","壳":"殼","壶":"壺","壸":"壼","处":"處","备":"備","复":"復","够":"夠","夫":"夫","头":"頭","夸":"誇","夹":"夾","夺":"奪","奁":"奩","奂":"奐","奋":"奮","奖":"獎","奥":"奧","奸":"奸","妆":"妝","妇":"婦","妈":"媽","妩":"嫵","妪":"嫗","妫":"嬀","姗":"姍","姜":"姜","姹":"奼","娄":"婁","娅":"婭","娆":"嬈","娇":"嬌","娈":"孌","娘":"娘","娱":"娛","娲":"媧","娴":"嫺","婳":"嫿","婴":"嬰","婵":"嬋","婶":"嬸","媪":"媼","媭":"嬃","嫒":"嬡","嫔":"嬪","嫱":"嬙","嬷":"嬤","孙":"孫","学":"學","孪":"孿","宁":"寧","它":"它","宝":"寶","实":"實","宠":"寵","审":"審","宪":"憲","宫":"宮","家":"家","宽":"寬","宾":"賓","寝":"寢","对":"對","寻":"尋","导":"導","寿":"壽","将":"將","尔":"爾","尘":"塵","尝":"嘗","尧":"堯","尴":"尷","尸":"屍","尽":"盡","局":"局","层":"層","屃":"屓","屉":"屜","届":"屆","属":"屬","屡":"屢","屦":"屨","屿":"嶼","岁":"歲","岂":"豈","岖":"嶇","岗":"崗","岘":"峴","岚":"嵐","岛":"島","岩":"巖","岭":"嶺","岳":"嶽","岽":"崬","岿":"巋","峃":"嶨","峄":"嶧","峡":"峽","峣":"嶢","峤":"嶠","峥":"崢","峦":"巒","峰":"峯","崂":"嶗","崃":"崍","崄":"嶮","崭":"嶄","嵘":"嶸","嵚":"嶔","嵝":"嶁","巅":"巔","巨":"巨","巩":"鞏","巯":"巰","币":"幣","布":"布","帅":"帥","师":"師","帏":"幃","帐":"帳","帘":"簾","帜":"幟","带":"帶","帧":"幀","席":"席","帮":"幫","帱":"幬","帻":"幘","帼":"幗","幂":"冪","干":"幹","并":"並","幸":"幸","广":"廣","庄":"莊","庆":"慶","床":"牀","庐":"廬","庑":"廡","库":"庫","应":"應","庙":"廟","庞":"龐","废":"廢","庵":"庵","庼":"廎","廪":"廩","开":"開","异":"異","弃":"棄","弑":"弒","张":"張","弥":"彌","弦":"弦","弪":"弳","弯":"彎","弹":"彈","强":"強","归":"歸","当":"當","录":"錄","彟":"彠","彦":"彥","彨":"彲","彩":"彩","彻":"徹","征":"徵","径":"徑","徕":"徠","御":"御","忆":"憶","忏":"懺","志":"志","忧":"憂","念":"念","忾":"愾","怀":"懷","态":"態","怂":"慫","怃":"憮","怄":"慪","怅":"悵","怆":"愴","怜":"憐","总":"總","怼":"懟","怿":"懌","恋":"戀","恒":"恆","恤":"恤","恳":"懇","恶":"惡","恸":"慟","恹":"懨","恺":"愷","恻":"惻","恼":"惱","恽":"惲","悦":"悅","悫":"愨","悬":"懸","悭":"慳","悮":"悞","悯":"憫","惊":"驚","惧":"懼","惨":"慘","惩":"懲","惫":"憊","惬":"愜","惭":"慚","惮":"憚","惯":"慣","愈":"愈","愠":"慍","愤":"憤","愦":"憒","愿":"願","慑":"懾","慭":"憖","懑":"懣","懒":"懶","懔":"懍","戆":"戇","戋":"戔","戏":"戲","戗":"戧","战":"戰","戚":"戚","戬":"戩","戯":"戱","户":"戶","才":"才","扎":"扎","扑":"撲","托":"託","扣":"扣","执":"執","扩":"擴","扪":"捫","扫":"掃","扬":"揚","扰":"擾","折":"折","抚":"撫","抛":"拋","抟":"摶","抠":"摳","抡":"掄","抢":"搶","护":"護","报":"報","抵":"抵","担":"擔","拐":"拐","拟":"擬","拢":"攏","拣":"揀","拥":"擁","拦":"攔","拧":"擰","拨":"撥","择":"擇","挂":"掛","挚":"摯","挛":"攣","挜":"掗","挝":"撾","挞":"撻","挟":"挾","挠":"撓","挡":"擋","挢":"撟","挣":"掙","挤":"擠","挥":"揮","挦":"撏","挨":"挨","挽":"挽","捝":"挩","捞":"撈","损":"損","捡":"撿","换":"換","捣":"搗","据":"據","掳":"擄","掴":"摑","掷":"擲","掸":"撣","掺":"摻","掼":"摜","揽":"攬","揾":"搵","揿":"撳","搀":"攙","搁":"擱","搂":"摟","搄":"揯","搅":"攪","搜":"搜","携":"攜","摄":"攝","摅":"攄","摆":"擺","摇":"搖","摈":"擯","摊":"攤","撄":"攖","撑":"撐","撵":"攆","撷":"擷","撸":"擼","撺":"攛","擜":"㩵","擞":"擻","攒":"攢","敌":"敵","敚":"敓","敛":"斂","敩":"斆","数":"數","斋":"齋","斓":"斕","斗":"鬥","斩":"斬","断":"斷","旋":"旋","无":"無","旧":"舊","时":"時","旷":"曠","旸":"暘","昆":"昆","昙":"曇","昵":"暱","昼":"晝","昽":"曨","显":"顯","晋":"晉","晒":"曬","晓":"曉","晔":"曄","晕":"暈","晖":"暉","暂":"暫","暅":"𣈶","暗":"暗","暧":"曖","曲":"曲","术":"術","朱":"朱","朴":"樸","机":"機","杀":"殺","杂":"雜","权":"權","杆":"杆","杠":"槓","条":"條","来":"來","杨":"楊","杩":"榪","杯":"杯","杰":"傑","松":"松","板":"板","极":"極","构":"構","枞":"樅","枢":"樞","枣":"棗","枥":"櫪","枧":"梘","枨":"棖","枪":"槍","枫":"楓","枭":"梟","柜":"櫃","柠":"檸","柽":"檉","栀":"梔","栅":"柵","标":"標","栈":"棧","栉":"櫛","栊":"櫳","栋":"棟","栌":"櫨","栎":"櫟","栏":"欄","树":"樹","栖":"棲","栗":"栗","样":"樣","核":"核","栾":"欒","桠":"椏","桡":"橈","桢":"楨","档":"檔","桤":"榿","桥":"橋","桦":"樺","桧":"檜","桨":"槳","桩":"樁","桪":"樳","梁":"梁","梦":"夢","梼":"檮","梾":"棶","梿":"槤","检":"檢","棁":"梲","棂":"欞","椁":"槨","椝":"槼","椟":"櫝","椠":"槧","椢":"槶","椤":"欏","椫":"樿","椭":"橢","椮":"槮","楼":"樓","榄":"欖","榅":"榲","榇":"櫬","榈":"櫚","榉":"櫸","榝":"樧","槚":"檟","槛":"檻","槟":"檳","槠":"櫧","横":"橫","樯":"檣","樱":"櫻","橥":"櫫","橱":"櫥","橹":"櫓","橼":"櫞","檩":"檁","欢":"歡","欤":"歟","欧":"歐","欲":"欲","歼":"殲","殁":"歿","殇":"殤","残":"殘","殒":"殞","殓":"殮","殚":"殫","殡":"殯","殴":"毆","毁":"毀","毂":"轂","毕":"畢","毙":"斃","毡":"氈","毵":"毿","毶":"𣯶","氇":"氌","气":"氣","氢":"氫","氩":"氬","氲":"氳","汇":"匯","汉":"漢","汤":"湯","汹":"洶","沄":"澐","沈":"沈","沟":"溝","没":"沒","沣":"灃","沤":"漚","沥":"瀝","沦":"淪","沧":"滄","沨":"渢","沩":"潙","沪":"滬","沾":"沾","泛":"泛","泞":"濘","注":"注","泪":"淚","泶":"澩","泷":"瀧","泸":"瀘","泺":"濼","泻":"瀉","泼":"潑","泽":"澤","泾":"涇","洁":"潔","洒":"灑","洼":"窪","浃":"浹","浅":"淺","浆":"漿","浇":"澆","浈":"湞","浉":"溮","浊":"濁","测":"測","浍":"澮","济":"濟","浏":"瀏","浐":"滻","浑":"渾","浒":"滸","浓":"濃","浔":"潯","浕":"濜","涂":"塗","涌":"湧","涚":"涗","涛":"濤","涝":"澇","涞":"淶","涟":"漣","涠":"潿","涡":"渦","涢":"溳","涣":"渙","涤":"滌","润":"潤","涧":"澗","涨":"漲","涩":"澀","淀":"澱","渊":"淵","渌":"淥","渍":"漬","渎":"瀆","渐":"漸","渑":"澠","渔":"漁","渖":"瀋","渗":"滲","温":"溫","游":"遊","湾":"灣","湿":"溼","溁":"濚","溃":"潰","溅":"濺","溆":"漵","溇":"漊","滗":"潷","滚":"滾","滞":"滯","滟":"灩","滠":"灄","满":"滿","滢":"瀅","滤":"濾","滥":"濫","滦":"灤","滨":"濱","滩":"灘","滪":"澦","漓":"漓","潆":"瀠","潇":"瀟","潋":"瀲","潍":"濰","潜":"潛","潴":"瀦","澛":"瀂","澜":"瀾","濑":"瀨","濒":"瀕","灏":"灝","灭":"滅","灯":"燈","灵":"靈","灶":"竈","灾":"災","灿":"燦","炀":"煬","炉":"爐","炖":"燉","炜":"煒","炝":"熗","点":"點","炼":"煉","炽":"熾","烁":"爍","烂":"爛","烃":"烴","烛":"燭","烟":"煙","烦":"煩","烧":"燒","烨":"燁","烩":"燴","烫":"燙","烬":"燼","热":"熱","焕":"煥","焖":"燜","焘":"燾","煴":"熅","熏":"燻","爱":"愛","爷":"爺","牍":"牘","牦":"犛","牵":"牽","牺":"犧","犊":"犢","状":"狀","犷":"獷","犸":"獁","犹":"猶","狈":"狽","狝":"獮","狞":"獰","独":"獨","狭":"狹","狮":"獅","狯":"獪","狰":"猙","狱":"獄","狲":"猻","猃":"獫","猎":"獵","猕":"獼","猡":"玀","猪":"豬","猫":"貓","猬":"蝟","献":"獻","獭":"獺","玑":"璣","玙":"璵","玚":"瑒","玛":"瑪","玩":"玩","玮":"瑋","环":"環","现":"現","玱":"瑲","玺":"璽","珐":"琺","珑":"瓏","珰":"璫","珲":"琿","琎":"璡","琏":"璉","琐":"瑣","琼":"瓊","瑶":"瑤","瑷":"璦","瑸":"璸","璇":"璇","璎":"瓔","瓒":"瓚","瓮":"甕","瓯":"甌","电":"電","画":"畫","畅":"暢","畴":"疇","疖":"癤","疗":"療","疟":"瘧","疠":"癘","疡":"瘍","疬":"癧","疭":"瘲","疮":"瘡","疯":"瘋","疱":"皰","疴":"痾","症":"症","痈":"癰","痉":"痙","痒":"癢","痖":"瘂","痨":"癆","痪":"瘓","痫":"癇","痴":"癡","瘅":"癉","瘆":"瘮","瘗":"瘞","瘘":"瘻","瘪":"癟","瘫":"癱","瘾":"癮","瘿":"癭","癞":"癩","癣":"癬","癫":"癲","皂":"皁","皑":"皚","皱":"皺","皲":"皸","盏":"盞","盐":"鹽","监":"監","盖":"蓋","盗":"盜","盘":"盤","眍":"瞘","眦":"眥","眬":"矓","睁":"睜","睐":"睞","睑":"瞼","瞆":"瞶","瞒":"瞞","瞩":"矚","矩":"矩","矫":"矯","矶":"磯","矾":"礬","矿":"礦","砀":"碭","码":"碼","砖":"磚","砗":"硨","砚":"硯","砜":"碸","砺":"礪","砻":"礱","砾":"礫","础":"礎","硁":"硜","硕":"碩","硖":"硤","硗":"磽","硙":"磑","硚":"礄","确":"確","硵":"磠","硷":"礆","碍":"礙","碛":"磧","碜":"磣","碱":"鹼","礼":"禮","祃":"禡","祎":"禕","祢":"禰","祯":"禎","祷":"禱","祸":"禍","禀":"稟","禄":"祿","禅":"禪","离":"離","私":"私","秃":"禿","秆":"稈","秋":"秋","种":"種","秘":"祕","积":"積","称":"稱","秽":"穢","秾":"穠","稆":"穭","税":"稅","稣":"穌","稳":"穩","穑":"穡","穞":"穭","穷":"窮","窃":"竊","窍":"竅","窎":"窵","窑":"窯","窜":"竄","窝":"窩","窥":"窺","窦":"竇","窭":"窶","竖":"豎","竞":"競","笃":"篤","笋":"筍","笔":"筆","笕":"筧","笺":"箋","笼":"籠","笾":"籩","筑":"築","筚":"篳","筛":"篩","筜":"簹","筝":"箏","筹":"籌","筼":"篔","签":"籤","筿":"篠","简":"簡","箓":"籙","箦":"簀","箧":"篋","箨":"籜","箩":"籮","箪":"簞","箫":"簫","篑":"簣","篓":"簍","篮":"籃","篯":"籛","篱":"籬","簖":"籪","籁":"籟","籴":"糴","类":"類","籼":"秈","粜":"糶","粝":"糲","粤":"粵","粪":"糞","粮":"糧","粽":"糉","糁":"糝","糇":"餱","糍":"餈","系":"系","紧":"緊","絷":"縶","緼":"縕","縆":"緪","纟":"糹","纠":"糾","纡":"紆","红":"紅","纣":"紂","纤":"纖","纥":"紇","约":"約","级":"級","纨":"紈","纩":"纊","纪":"紀","纫":"紉","纬":"緯","纭":"紜","纮":"紘","纯":"純","纰":"紕","纱":"紗","纲":"綱","纳":"納","纴":"紝","纵":"縱","纶":"綸","纷":"紛","纸":"紙","纹":"紋","纺":"紡","纻":"紵","纼":"紖","纽":"紐","纾":"紓","线":"線","绀":"紺","绁":"紲","绂":"紱","练":"練","组":"組","绅":"紳","细":"細","织":"織","终":"終","绉":"縐","绊":"絆","绋":"紼","绌":"絀","绍":"紹","绎":"繹","经":"經","绐":"紿","绑":"綁","绒":"絨","结":"結","绔":"絝","绕":"繞","绖":"絰","绗":"絎","绘":"繪","给":"給","绚":"絢","绛":"絳","络":"絡","绝":"絕","绞":"絞","统":"統","绠":"綆","绡":"綃","绢":"絹","绣":"繡","绤":"綌","绥":"綏","绦":"絛","继":"繼","绨":"綈","绩":"績","绪":"緒","绫":"綾","绬":"緓","续":"續","绮":"綺","绯":"緋","绰":"綽","绱":"鞝","绲":"緄","绳":"繩","维":"維","绵":"綿","绶":"綬","绷":"繃","绸":"綢","绹":"綯","绺":"綹","绻":"綣","综":"綜","绽":"綻","绾":"綰","绿":"綠","缀":"綴","缁":"緇","缂":"緙","缃":"緗","缄":"緘","缅":"緬","缆":"纜","缇":"緹","缈":"緲","缉":"緝","缊":"縕","缋":"繢","缌":"緦","缍":"綞","缎":"緞","缏":"緶","缐":"線","缑":"緱","缒":"縋","缓":"緩","缔":"締","缕":"縷","编":"編","缗":"緡","缘":"緣","缙":"縉","缚":"縛","缛":"縟","缜":"縝","缝":"縫","缞":"縗","缟":"縞","缠":"纏","缡":"縭","缢":"縊","缣":"縑","缤":"繽","缥":"縹","缦":"縵","缧":"縲","缨":"纓","缩":"縮","缪":"繆","缫":"繅","缬":"纈","缭":"繚","缮":"繕","缯":"繒","缰":"繮","缱":"繾","缲":"繰","缳":"繯","缴":"繳","缵":"纘","罂":"罌","网":"網","罗":"羅","罚":"罰","罢":"罷","罴":"羆","羁":"羈","羟":"羥","羡":"羨","群":"羣","翘":"翹","翙":"翽","翚":"翬","耢":"耮","耧":"耬","耸":"聳","耻":"恥","聂":"聶","聋":"聾","职":"職","聍":"聹","联":"聯","聩":"聵","聪":"聰","肃":"肅","肠":"腸","肤":"膚","肮":"骯","肴":"餚","肾":"腎","肿":"腫","胀":"脹","胁":"脅","胄":"胄","胆":"膽","背":"背","胜":"勝","胡":"胡","胧":"朧","胨":"腖","胪":"臚","胫":"脛","胶":"膠","脉":"脈","脍":"膾","脏":"髒","脐":"臍","脑":"腦","脓":"膿","脔":"臠","脚":"腳","脱":"脫","脶":"腡","脸":"臉","腊":"臘","腌":"醃","腘":"膕","腭":"齶","腻":"膩","腼":"靦","腽":"膃","腾":"騰","膑":"臏","膻":"羶","臜":"臢","致":"致","舆":"輿","舍":"舍","舣":"艤","舰":"艦","舱":"艙","舻":"艫","艰":"艱","艳":"豔","艺":"藝","节":"節","芈":"羋","芗":"薌","芜":"蕪","芦":"蘆","芸":"芸","苁":"蓯","苇":"葦","苈":"藶","苋":"莧","苌":"萇","苍":"蒼","苎":"苧","苏":"蘇","苔":"苔","苧":"薴","苹":"蘋","范":"範","茎":"莖","茏":"蘢","茑":"蔦","茔":"塋","茕":"煢","茧":"繭","荆":"荊","荐":"薦","荙":"薘","荚":"莢","荛":"蕘","荜":"蓽","荝":"萴","荞":"蕎","荟":"薈","荠":"薺","荡":"蕩","荣":"榮","荤":"葷","荥":"滎","荦":"犖","荧":"熒","荨":"蕁","荩":"藎","荪":"蓀","荫":"蔭","荬":"蕒","荭":"葒","荮":"葤","药":"藥","莅":"蒞","莱":"萊","莲":"蓮","莳":"蒔","莴":"萵","莶":"薟","获":"獲","莸":"蕕","莹":"瑩","莺":"鶯","莼":"蓴","萚":"蘀","萝":"蘿","萤":"螢","营":"營","萦":"縈","萧":"蕭","萨":"薩","葱":"蔥","蒀":"蒕","蒇":"蕆","蒉":"蕢","蒋":"蔣","蒌":"蔞","蒏":"醟","蒙":"蒙","蓝":"藍","蓟":"薊","蓠":"蘺","蓣":"蕷","蓥":"鎣","蓦":"驀","蔂":"虆","蔑":"蔑","蔷":"薔","蔹":"蘞","蔺":"藺","蔼":"藹","蕰":"薀","蕲":"蘄","蕴":"蘊","薮":"藪","藓":"蘚","藴":"蘊","蘖":"櫱","虏":"虜","虑":"慮","虚":"虛","虫":"蟲","虬":"虯","虮":"蟣","虱":"蝨","虽":"雖","虾":"蝦","虿":"蠆","蚀":"蝕","蚁":"蟻","蚂":"螞","蚃":"蠁","蚕":"蠶","蚝":"蠔","蚬":"蜆","蛊":"蠱","蛎":"蠣","蛏":"蟶","蛮":"蠻","蛰":"蟄","蛱":"蛺","蛲":"蟯","蛳":"螄","蛴":"蠐","蜕":"蛻","蜗":"蝸","蜡":"蠟","蝇":"蠅","蝈":"蟈","蝉":"蟬","蝎":"蠍","蝼":"螻","蝾":"蠑","螀":"螿","螨":"蟎","蟏":"蠨","衅":"釁","衔":"銜","补":"補","表":"表","衬":"襯","衮":"袞","袄":"襖","袅":"嫋","袆":"褘","袜":"襪","袭":"襲","袯":"襏","装":"裝","裆":"襠","裈":"褌","裢":"褳","裣":"襝","裤":"褲","裥":"襉","褛":"褸","褴":"襤","襕":"襴","见":"見","观":"觀","觃":"覎","规":"規","觅":"覓","视":"視","觇":"覘","览":"覽","觉":"覺","觊":"覬","觋":"覡","觌":"觿","觍":"覥","觎":"覦","觏":"覯","觐":"覲","觑":"覷","觞":"觴","触":"觸","觯":"觶","訚":"誾","詟":"讋","誉":"譽","誊":"謄","讠":"訁","计":"計","订":"訂","讣":"訃","认":"認","讥":"譏","讦":"訐","讧":"訌","讨":"討","让":"讓","讪":"訕","讫":"訖","讬":"託","训":"訓","议":"議","讯":"訊","记":"記","讱":"訒","讲":"講","讳":"諱","讴":"謳","讵":"詎","讶":"訝","讷":"訥","许":"許","讹":"訛","论":"論","讻":"訩","讼":"訟","讽":"諷","设":"設","访":"訪","诀":"訣","证":"證","诂":"詁","诃":"訶","评":"評","诅":"詛","识":"識","诇":"詗","诈":"詐","诉":"訴","诊":"診","诋":"詆","诌":"謅","词":"詞","诎":"詘","诏":"詔","诐":"詖","译":"譯","诒":"詒","诓":"誆","诔":"誄","试":"試","诖":"詿","诗":"詩","诘":"詰","诙":"詼","诚":"誠","诛":"誅","诜":"詵","话":"話","诞":"誕","诟":"詬","诠":"詮","诡":"詭","询":"詢","诣":"詣","诤":"諍","该":"該","详":"詳","诧":"詫","诨":"諢","诩":"詡","诪":"譸","诫":"誡","诬":"誣","语":"語","诮":"誚","误":"誤","诰":"誥","诱":"誘","诲":"誨","诳":"誑","说":"說","诵":"誦","诶":"誒","请":"請","诸":"諸","诹":"諏","诺":"諾","读":"讀","诼":"諑","诽":"誹","课":"課","诿":"諉","谀":"諛","谁":"誰","谂":"諗","调":"調","谄":"諂","谅":"諒","谆":"諄","谇":"誶","谈":"談","谉":"讅","谊":"誼","谋":"謀","谌":"諶","谍":"諜","谎":"謊","谏":"諫","谐":"諧","谑":"謔","谒":"謁","谓":"謂","谔":"諤","谕":"諭","谖":"諼","谗":"讒","谘":"諮","谙":"諳","谚":"諺","谛":"諦","谜":"謎","谝":"諞","谞":"諝","谟":"謨","谠":"讜","谡":"謖","谢":"謝","谣":"謠","谤":"謗","谥":"諡","谦":"謙","谧":"謐","谨":"謹","谩":"謾","谪":"謫","谫":"譾","谬":"謬","谭":"譚","谮":"譖","谯":"譙","谰":"讕","谱":"譜","谲":"譎","谳":"讞","谴":"譴","谵":"譫","谶":"讖","谷":"谷","豮":"豶","贝":"貝","贞":"貞","负":"負","贠":"貟","贡":"貢","财":"財","责":"責","贤":"賢","败":"敗","账":"賬","货":"貨","质":"質","贩":"販","贪":"貪","贫":"貧","贬":"貶","购":"購","贮":"貯","贯":"貫","贰":"貳","贱":"賤","贲":"賁","贳":"貰","贴":"貼","贵":"貴","贶":"貺","贷":"貸","贸":"貿","费":"費","贺":"賀","贻":"貽","贼":"賊","贽":"贄","贾":"賈","贿":"賄","赀":"貲","赁":"賃","赂":"賂","赃":"贓","资":"資","赅":"賅","赆":"贐","赇":"賕","赈":"賑","赉":"賚","赊":"賒","赋":"賦","赌":"賭","赍":"齎","赎":"贖","赏":"賞","赐":"賜","赑":"贔","赒":"賙","赓":"賡","赔":"賠","赕":"賧","赖":"賴","赗":"賵","赘":"贅","赙":"賻","赚":"賺","赛":"賽","赜":"賾","赝":"贗","赞":"贊","赟":"贇","赠":"贈","赡":"贍","赢":"贏","赣":"贛","赪":"赬","赵":"趙","赶":"趕","趋":"趨","趱":"趲","趸":"躉","跃":"躍","跄":"蹌","跖":"蹠","跞":"躒","践":"踐","跶":"躂","跷":"蹺","跸":"蹕","跹":"躚","跻":"躋","踌":"躊","踪":"蹤","踬":"躓","踯":"躑","蹑":"躡","蹒":"蹣","蹰":"躕","蹿":"躥","躏":"躪","躜":"躦","躯":"軀","輼":"轀","车":"車","轧":"軋","轨":"軌","轩":"軒","轪":"軑","轫":"軔","转":"轉","轭":"軛","轮":"輪","软":"軟","轰":"轟","轱":"軲","轲":"軻","轳":"轤","轴":"軸","轵":"軹","轶":"軼","轷":"軤","轸":"軫","轹":"轢","轺":"軺","轻":"輕","轼":"軾","载":"載","轾":"輊","轿":"轎","辀":"輈","辁":"輇","辂":"輅","较":"較","辄":"輒","辅":"輔","辆":"輛","辇":"輦","辈":"輩","辉":"輝","辊":"輥","辋":"輞","辌":"輬","辍":"輟","辎":"輜","辏":"輳","辐":"輻","辑":"輯","辒":"轀","输":"輸","辔":"轡","辕":"轅","辖":"轄","辗":"輾","辘":"轆","辙":"轍","辚":"轔","辞":"辭","辟":"闢","辩":"辯","辫":"辮","边":"邊","辽":"遼","达":"達","迁":"遷","过":"過","迈":"邁","运":"運","还":"還","这":"這","进":"進","远":"遠","违":"違","连":"連","迟":"遲","迩":"邇","迳":"逕","迹":"跡","适":"適","选":"選","逊":"遜","递":"遞","逦":"邐","逻":"邏","遗":"遺","遥":"遙","邓":"鄧","邝":"鄺","邬":"鄔","邮":"郵","邹":"鄒","邺":"鄴","邻":"鄰","郁":"鬱","郏":"郟","郐":"鄶","郑":"鄭","郓":"鄆","郦":"酈","郧":"鄖","郸":"鄲","酂":"酇","酝":"醞","酦":"醱","酱":"醬","酸":"酸","酽":"釅","酾":"釃","酿":"釀","醖":"醞","采":"採","释":"釋","里":"裏","鉴":"鑑","銮":"鑾","錾":"鏨","钅":"釒","钆":"釓","钇":"釔","针":"針","钉":"釘","钊":"釗","钋":"釙","钌":"釕","钍":"釷","钎":"釺","钏":"釧","钐":"釤","钑":"鈒","钒":"釩","钓":"釣","钔":"鍆","钕":"釹","钖":"鍚","钗":"釵","钘":"鈃","钙":"鈣","钚":"鈈","钛":"鈦","钜":"鉅","钝":"鈍","钞":"鈔","钟":"鍾","钠":"鈉","钡":"鋇","钢":"鋼","钣":"鈑","钤":"鈐","钥":"鑰","钦":"欽","钧":"鈞","钨":"鎢","钩":"鉤","钪":"鈧","钫":"鈁","钬":"鈥","钭":"鈄","钮":"鈕","钯":"鈀","钰":"鈺","钱":"錢","钲":"鉦","钳":"鉗","钴":"鈷","钵":"鉢","钶":"鈳","钷":"鉕","钸":"鈽","钹":"鈸","钺":"鉞","钻":"鑽","钼":"鉬","钽":"鉭","钾":"鉀","钿":"鈿","铀":"鈾","铁":"鐵","铂":"鉑","铃":"鈴","铄":"鑠","铅":"鉛","铆":"鉚","铇":"鉋","铈":"鈰","铉":"鉉","铊":"鉈","铋":"鉍","铌":"鈮","铍":"鈹","铎":"鐸","铏":"鉶","铐":"銬","铑":"銠","铒":"鉺","铓":"鋩","铔":"錏","铕":"銪","铖":"鋮","铗":"鋏","铘":"鋣","铙":"鐃","铚":"銍","铛":"鐺","铜":"銅","铝":"鋁","铞":"銱","铟":"銦","铠":"鎧","铡":"鍘","铢":"銖","铣":"銑","铤":"鋌","铥":"銩","铦":"銛","铧":"鏵","铨":"銓","铩":"鎩","铪":"鉿","铫":"銚","铬":"鉻","铭":"銘","铮":"錚","铯":"銫","铰":"鉸","铱":"銥","铲":"鏟","铳":"銃","铴":"鐋","铵":"銨","银":"銀","铷":"銣","铸":"鑄","铹":"鐒","铺":"鋪","铻":"鋙","铼":"錸","铽":"鋱","链":"鏈","铿":"鏗","销":"銷","锁":"鎖","锂":"鋰","锃":"鋥","锄":"鋤","锅":"鍋","锆":"鋯","锇":"鋨","锈":"鏽","锉":"銼","锊":"鋝","锋":"鋒","锌":"鋅","锍":"鋶","锎":"鐦","锏":"鐧","锐":"銳","锑":"銻","锒":"鋃","锓":"鋟","锔":"鋦","锕":"錒","锖":"錆","锗":"鍺","锘":"鍩","错":"錯","锚":"錨","锛":"錛","锜":"錡","锝":"鍀","锞":"錁","锟":"錕","锠":"錩","锡":"錫","锢":"錮","锣":"鑼","锤":"錘","锥":"錐","锦":"錦","锧":"鑕","锨":"鍁","锩":"錈","锪":"鍃","锫":"錇","锬":"錟","锭":"錠","键":"鍵","锯":"鋸","锰":"錳","锱":"錙","锲":"鍥","锳":"鍈","锴":"鍇","锵":"鏘","锶":"鍶","锷":"鍔","锸":"鍤","锹":"鍬","锺":"鍾","锻":"鍛","锼":"鎪","锽":"鍠","锾":"鍰","锿":"鎄","镀":"鍍","镁":"鎂","镂":"鏤","镃":"鎡","镄":"鐨","镅":"鎇","镆":"鏌","镇":"鎮","镈":"鎛","镉":"鎘","镊":"鑷","镋":"钂","镌":"鐫","镍":"鎳","镎":"鎿","镏":"鎦","镐":"鎬","镑":"鎊","镒":"鎰","镓":"鎵","镔":"鑌","镕":"鎔","镖":"鏢","镗":"鏜","镘":"鏝","镙":"鏍","镚":"鏰","镛":"鏞","镜":"鏡","镝":"鏑","镞":"鏃","镟":"鏇","镠":"鏐","镡":"鐔","镢":"钁","镣":"鐐","镤":"鏷","镥":"鑥","镦":"鐓","镧":"鑭","镨":"鐠","镩":"鑹","镪":"鏹","镫":"鐙","镬":"鑊","镭":"鐳","镮":"鐶","镯":"鐲","镰":"鐮","镱":"鐿","镲":"鑔","镳":"鑣","镴":"鑞","镵":"鑱","镶":"鑲","长":"長","门":"門","闩":"閂","闪":"閃","闫":"閆","闬":"閈","闭":"閉","问":"問","闯":"闖","闰":"閏","闱":"闈","闲":"閒","闳":"閎","间":"間","闵":"閔","闶":"閌","闷":"悶","闸":"閘","闹":"鬧","闺":"閨","闻":"聞","闼":"闥","闽":"閩","闾":"閭","闿":"闓","阀":"閥","阁":"閣","阂":"閡","阃":"閫","阄":"鬮","阅":"閱","阆":"閬","阇":"闍","阈":"閾","阉":"閹","阊":"閶","阋":"鬩","阌":"閿","阍":"閽","阎":"閻","阏":"閼","阐":"闡","阑":"闌","阒":"闃","阓":"闠","阔":"闊","阕":"闋","阖":"闔","阗":"闐","阘":"闒","阙":"闕","阚":"闞","阛":"闤","队":"隊","阳":"陽","阴":"陰","阵":"陣","阶":"階","际":"際","陆":"陸","陇":"隴","陈":"陳","陉":"陘","陕":"陝","陦":"隯","陧":"隉","陨":"隕","险":"險","随":"隨","隐":"隱","隶":"隸","隽":"雋","难":"難","雇":"僱","雏":"雛","雕":"雕","雠":"讎","雳":"靂","雾":"霧","霁":"霽","霉":"黴","霡":"霢","霭":"靄","靓":"靚","靔":"靝","静":"靜","面":"面","靥":"靨","鞑":"韃","鞒":"鞽","鞯":"韉","鞲":"韝","韦":"韋","韧":"韌","韨":"韍","韩":"韓","韪":"韙","韫":"韞","韬":"韜","韵":"韻","页":"頁","顶":"頂","顷":"頃","顸":"頇","项":"項","顺":"順","须":"須","顼":"頊","顽":"頑","顾":"顧","顿":"頓","颀":"頎","颁":"頒","颂":"頌","颃":"頏","预":"預","颅":"顱","领":"領","颇":"頗","颈":"頸","颉":"頡","颊":"頰","颋":"頲","颌":"頜","颍":"潁","颎":"熲","颏":"頦","颐":"頤","频":"頻","颒":"頮","颓":"頹","颔":"頷","颕":"頴","颖":"穎","颗":"顆","题":"題","颙":"顒","颚":"顎","颛":"顓","颜":"顏","额":"額","颞":"顳","颟":"顢","颠":"顛","颡":"顙","颢":"顥","颣":"纇","颤":"顫","颥":"顬","颦":"顰","颧":"顴","风":"風","飏":"颺","飐":"颭","飑":"颮","飒":"颯","飓":"颶","飔":"颸","飕":"颼","飖":"颻","飗":"飀","飘":"飄","飙":"飆","飚":"飈","飞":"飛","飨":"饗","餍":"饜","饣":"飠","饤":"飣","饥":"飢","饦":"飥","饧":"餳","饨":"飩","饩":"餼","饪":"飪","饫":"飫","饬":"飭","饭":"飯","饮":"飲","饯":"餞","饰":"飾","饱":"飽","饲":"飼","饳":"飿","饴":"飴","饵":"餌","饶":"饒","饷":"餉","饸":"餄","饹":"餎","饺":"餃","饻":"餏","饼":"餅","饽":"餑","饾":"餖","饿":"餓","馀":"餘","馁":"餒","馂":"餕","馃":"餜","馄":"餛","馅":"餡","馆":"館","馇":"餷","馈":"饋","馉":"餶","馊":"餿","馋":"饞","馌":"饁","馍":"饃","馎":"餺","馏":"餾","馐":"饈","馑":"饉","馒":"饅","馓":"饊","馔":"饌","馕":"饢","马":"馬","驭":"馭","驮":"馱","驯":"馴","驰":"馳","驱":"驅","驲":"馹","驳":"駁","驴":"驢","驵":"駔","驶":"駛","驷":"駟","驸":"駙","驹":"駒","驺":"騶","驻":"駐","驼":"駝","驽":"駑","驾":"駕","驿":"驛","骀":"駘","骁":"驍","骂":"罵","骃":"駰","骄":"驕","骅":"驊","骆":"駱","骇":"駭","骈":"駢","骉":"驫","骊":"驪","骋":"騁","验":"驗","骍":"騂","骎":"駸","骏":"駿","骐":"騏","骑":"騎","骒":"騍","骓":"騅","骔":"騌","骕":"驌","骖":"驂","骗":"騙","骘":"騭","骙":"騤","骚":"騷","骛":"騖","骜":"驁","骝":"騮","骞":"騫","骟":"騸","骠":"驃","骡":"騾","骢":"驄","骣":"驏","骤":"驟","骥":"驥","骦":"驦","骧":"驤","髅":"髏","髋":"髖","髌":"髕","鬓":"鬢","鬶":"鬹","魇":"魘","魉":"魎","鱼":"魚","鱽":"魛","鱾":"魢","鱿":"魷","鲀":"魨","鲁":"魯","鲂":"魴","鲃":"䰾","鲄":"魺","鲅":"鮁","鲆":"鮃","鲇":"鮎","鲈":"鱸","鲉":"鮋","鲊":"鮓","鲋":"鮒","鲌":"鮊","鲍":"鮑","鲎":"鱟","鲏":"鮍","鲐":"鮐","鲑":"鮭","鲒":"鮚","鲓":"鮳","鲔":"鮪","鲕":"鮞","鲖":"鮦","鲗":"鰂","鲘":"鮜","鲙":"鱠","鲚":"鱭","鲛":"鮫","鲜":"鮮","鲝":"鮺","鲞":"鯗","鲟":"鱘","鲠":"鯁","鲡":"鱺","鲢":"鰱","鲣":"鰹","鲤":"鯉","鲥":"鰣","鲦":"鰷","鲧":"鯀","鲨":"鯊","鲩":"鯇","鲪":"鮶","鲫":"鯽","鲬":"鯒","鲭":"鯖","鲮":"鯪","鲯":"鯕","鲰":"鯫","鲱":"鯡","鲲":"鯤","鲳":"鯧","鲴":"鯝","鲵":"鯢","鲶":"鯰","鲷":"鯛","鲸":"鯨","鲹":"鰺","鲺":"鯴","鲻":"鯔","鲼":"鱝","鲽":"鰈","鲾":"鰏","鲿":"鱨","鳀":"鯷","鳁":"鰮","鳂":"鰃","鳃":"鰓","鳄":"鱷","鳅":"鰍","鳆":"鰒","鳇":"鰉","鳈":"鰁","鳉":"鱂","鳊":"鯿","鳋":"鰠","鳌":"鰲","鳍":"鰭","鳎":"鰨","鳏":"鰥","鳐":"鰩","鳑":"鰟","鳒":"鰜","鳓":"鰳","鳔":"鰾","鳕":"鱈","鳖":"鱉","鳗":"鰻","鳘":"鰵","鳙":"鱅","鳚":"䲁","鳛":"鰼","鳜":"鱖","鳝":"鱔","鳞":"鱗","鳟":"鱒","鳠":"鱯","鳡":"鱤","鳢":"鱧","鳣":"鱣","鳤":"䲘","鸟":"鳥","鸠":"鳩","鸡":"雞","鸢":"鳶","鸣":"鳴","鸤":"鳲","鸥":"鷗","鸦":"鴉","鸧":"鶬","鸨":"鴇","鸩":"鴆","鸪":"鴣","鸫":"鶇","鸬":"鸕","鸭":"鴨","鸮":"鴞","鸯":"鴦","鸰":"鴒","鸱":"鴟","鸲":"鴝","鸳":"鴛","鸴":"鷽","鸵":"鴕","鸶":"鷥","鸷":"鷙","鸸":"鴯","鸹":"鴰","鸺":"鵂","鸻":"鴴","鸼":"鵃","鸽":"鴿","鸾":"鸞","鸿":"鴻","鹀":"鵐","鹁":"鵓","鹂":"鸝","鹃":"鵑","鹄":"鵠","鹅":"鵝","鹆":"鵒","鹇":"鷳","鹈":"鵜","鹉":"鵡","鹊":"鵲","鹋":"鶓","鹌":"鵪","鹍":"鵾","鹎":"鵯","鹏":"鵬","鹐":"鵮","鹑":"鶉","鹒":"鶊","鹓":"鵷","鹔":"鷫","鹕":"鶘","鹖":"鶡","鹗":"鶚","鹘":"鶻","鹙":"鶖","鹚":"鷀","鹛":"鶥","鹜":"鶩","鹝":"鷊","鹞":"鷂","鹟":"鶲","鹠":"鶹","鹡":"鶺","鹢":"鷁","鹣":"鶼","鹤":"鶴","鹥":"鷖","鹦":"鸚","鹧":"鷓","鹨":"鷚","鹩":"鷯","鹪":"鷦","鹫":"鷲","鹬":"鷸","鹭":"鷺","鹮":"䴉","鹯":"鸇","鹰":"鷹","鹱":"鸌","鹲":"鸏","鹳":"鸛","鹴":"鸘","鹾":"鹺","麦":"麥","麸":"麩","麹":"麴","麺":"麪","麽":"麼","黄":"黃","黉":"黌","黡":"黶","黩":"黷","黪":"黲","黾":"黽","鼋":"黿","鼌":"鼂","鼍":"鼉","鼹":"鼴","齐":"齊","齑":"齏","齿":"齒","龀":"齔","龁":"齕","龂":"齗","龃":"齟","龄":"齡","龅":"齙","龆":"齠","龇":"齜","龈":"齦","龉":"齬","龊":"齪","龋":"齲","龌":"齷","龙":"龍","龚":"龔","龛":"龕","龟":"龜","鿎":"䃮","鿏":"䥑","鿒":"鿓","鿔":"鎶","𠀾":"𠁞","𠆲":"儣","𠆿":"𠌥","𠇹":"俓","𠉂":"㒓","𠉗":"𠏢","𠋆":"儭","𠚳":"𠠎","𠛅":"剾","𠛆":"𠞆","𠛾":"𪟖","𠡠":"勑","𠮶":"嗰","𠯟":"哯","𠯠":"噅","𠰱":"㘉","𠰷":"嚧","𠱞":"囃","𠲥":"𡅏","𠴛":"𡃕","𠴢":"𡄔","𠵸":"𡄣","𠵾":"㗲","𡋀":"𡓾","𡋗":"𡑭","𡋤":"壗","𡍣":"𡔖","𡒄":"壈","𡝠":"㜷","𡞋":"㜗","𡞱":"㜢","𡠟":"孎","𡥧":"孻","𡭜":"𡮉","𡭬":"𡮣","𡳃":"𡳳","𡳒":"𦘧","𡶴":"嵼","𡸃":"𡽗","𡺃":"嶈","𡺄":"嶘","𢋈":"㢝","𢗓":"㦛","𢘙":"𢤱","𢘝":"𢣚","𢘞":"𢣭","𢙏":"愻","𢙐":"憹","𢙑":"𢠼","𢙒":"憢","𢙓":"懀","𢛯":"㦎","𢠁":"懎","𢢐":"𤢻","𢧐":"戰","𢫊":"𢷮","𢫞":"𢶫","𢫬":"摋","𢬍":"擫","𢬦":"𢹿","𢭏":"擣","𢽾":"斅","𣃁":"斸","𣆐":"曥","𣈣":"𣋋","𣍨":"𦢈","𣍯":"腪","𣍰":"脥","𣎑":"臗","𣏢":"槫","𣐕":"桱","𣐤":"欍","𣑶":"𣠲","𣒌":"楇","𣓿":"橯","𣔌":"樤","𣗊":"樠","𣗋":"欓","𣗙":"㰙","𣘐":"㯤","𣘓":"𣞻","𣘴":"檭","𣘷":"𣝕","𣚚":"欘","𣞎":"𣠩","𣨼":"殢","𣭤":"𣯴","𣯣":"𣯩","𣱝":"氭","𣲗":"湋","𣲘":"潕","𣳆":"㵗","𣶩":"澅","𣶫":"𣿉","𣶭":"𪷓","𣷷":"𤅶","𣸣":"濆","𣺼":"灙","𣺽":"𤁣","𣽷":"瀃","𤆡":"熓","𤆢":"㷍","𤇃":"爄","𤇄":"熌","𤇭":"爖","𤇹":"熚","𤈶":"熉","𤈷":"㷿","𤊀":"𤒎","𤊰":"𤓩","𤋏":"熡","𤎺":"𤓎","𤎻":"𤑳","𤙯":"𤛮","𤝢":"𤢟","𤞃":"獩","𤞤":"玁","𤠋":"㺏","𤦀":"瓕","𤩽":"瓛","𤳄":"𤳸","𤶊":"癐","𤶧":"𤸫","𤻊":"㿗","𤽯":"㿧","𤾀":"皟","𤿲":"麬","𥁢":"䀉","𥅘":"𥌃","𥅴":"䀹","𥅿":"𥊝","𥆧":"瞤","𥇢":"䁪","𥎝":"䂎","𥐟":"礒","𥐯":"𥖅","𥐰":"𥕥","𥐻":"碙","𥞦":"𥞵","𥧂":"𥨐","𥩟":"竚","𥩺":"𥪂","𥫣":"籅","𥬀":"䉙","𥬞":"籋","𥬠":"篘","𥭉":"𥵊","𥮋":"𥸠","𥮜":"䉲","𥮾":"篸","𥱔":"𥵃","𥹥":"𥼽","𥺅":"䊭","𥺇":"𥽖","𦈈":"𥿊","𦈉":"緷","𦈋":"綇","𦈌":"綀","𦈎":"繟","𦈏":"緍","𦈐":"縺","𦈑":"緸","𦈒":"𦂅","𦈓":"䋿","𦈔":"縎","𦈕":"緰","𦈖":"䌈","𦈗":"𦃄","𦈘":"䌋","𦈙":"䌰","𦈚":"縬","𦈛":"繓","𦈜":"䌖","𦈝":"繏","𦈞":"䌟","𦈟":"䌝","𦈠":"䌥","𦈡":"繻","𦍠":"䍽","𦛨":"朥","𦝼":"膢","𦟗":"𦣎","𦨩":"𦪽","𦰏":"蓧","𦰴":"䕳","𦶟":"爇","𦶻":"𦾟","𦻕":"蘟","𧉐":"𧕟","𧉞":"䗿","𧌥":"𧎈","𧏖":"蠙","𧏗":"蠀","𧑏":"蠾","𧒭":"𧔥","𧜭":"䙱","𧝝":"襰","𧝧":"𧟀","𧮪":"詀","𧳕":"𧳟","𧹑":"䞈","𧹒":"買","𧹓":"𧶔","𧹔":"賬","𧹕":"𝻻","𧹖":"賟","𧹗":"贃","𧿈":"𨇁","𨀁":"躘","𨀱":"𨄣","𨁴":"𨅍","𨂺":"𨈊","𨄄":"𨈌","𨅛":"䠱","𨅫":"𨇞","𨅬":"躝","𨉗":"軉","𨐅":"軗","𨐆":"𨊻","𨐇":"𨏠","𨐈":"輄","𨐉":"𨎮","𨐊":"𨏥","𨑹":"䢨","𨟳":"𨣞","𨠨":"𨣧","𨡙":"𨢿","𨡺":"𨣈","𨤰":"𨤻","𨰾":"鎷","𨰿":"釳","𨱀":"𨥛","𨱁":"鈠","𨱂":"鈋","𨱃":"鈲","𨱄":"鈯","𨱅":"鉁","𨱆":"龯","𨱇":"銶","𨱈":"鋉","𨱉":"鍄","𨱊":"𨧱","𨱋":"錂","𨱌":"鏆","𨱍":"鎯","𨱎":"鍮","𨱏":"鎝","𨱐":"𨫒","𨱑":"鐄","𨱒":"鏉","𨱓":"鐎","𨱔":"鐏","𨱕":"𨮂","𨱖":"䥩","𨷿":"䦳","𨸀":"𨳕","𨸁":"𨳑","𨸂":"閍","𨸃":"閐","𨸄":"䦘","𨸅":"𨴗","𨸆":"𨵩","𨸇":"𨵸","𨸉":"𨶀","𨸊":"𨶏","𨸋":"𨶲","𨸌":"𨶮","𨸎":"𨷲","𨸘":"𨽏","𨸟":"䧢","𩏼":"䪏","𩏽":"𩏪","𩏾":"𩎢","𩏿":"䪘","𩐀":"䪗","𩓋":"顂","𩖕":"𩓣","𩖖":"顃","𩖗":"䫴","𩙥":"颰","𩙦":"𩗀","𩙧":"䬞","𩙨":"𩘹","𩙩":"𩘀","𩙪":"颷","𩙫":"颾","𩙬":"𩘺","𩙭":"𩘝","𩙮":"䬘","𩙯":"䬝","𩙰":"𩙈","𩟿":"𩚛","𩠀":"𩚥","𩠁":"𩚵","𩠂":"𩛆","𩠃":"𩛩","𩠅":"𩟐","𩠆":"𩜦","𩠇":"䭀","𩠈":"䭃","𩠉":"𩜇","𩠊":"𩜵","𩠋":"𩝔","𩠌":"餸","𩠎":"𩞄","𩠏":"𩞦","𩠠":"𩠴","𩡖":"𩡣","𩧦":"𩡺","𩧨":"駎","𩧩":"𩤊","𩧪":"䮾","𩧫":"駚","𩧬":"𩢡","𩧭":"䭿","𩧮":"𩢾","𩧯":"驋","𩧰":"䮝","𩧱":"𩥉","𩧲":"駧","𩧳":"𩢸","𩧴":"駩","𩧵":"𩢴","𩧶":"𩣏","𩧸":"𩣫","𩧺":"駶","𩧻":"𩣵","𩧼":"𩣺","𩧿":"䮠","𩨀":"騔","𩨁":"䮞","𩨂":"驄","𩨃":"騝","𩨄":"騪","𩨅":"𩤸","𩨆":"𩤙","𩨇":"䮫","𩨈":"騟","𩨉":"𩤲","𩨊":"騚","𩨋":"𩥄","𩨌":"𩥑","𩨍":"𩥇","𩨎":"龭","𩨏":"䮳","𩨐":"𩧆","𩩈":"䯤","𩬣":"𩭙","𩬤":"𩰀","𩭹":"鬖","𩯒":"𩯳","𩰰":"𩰹","𩲒":"𩳤","𩴌":"𩴵","𩽹":"魥","𩽺":"𩵩","𩽻":"𩵹","𩽼":"鯶","𩽽":"𩶱","𩽾":"鮟","𩽿":"𩶰","𩾁":"鯄","𩾂":"䲖","𩾃":"鮸","𩾄":"𩷰","𩾅":"𩸃","𩾆":"𩸦","𩾇":"鯱","𩾈":"䱙","𩾊":"䱬","𩾋":"䱰","𩾌":"鱇","𩾎":"𩽇","𪉂":"䲰","𪉃":"鳼","𪉄":"𩿪","𪉅":"𪀦","𪉆":"鴲","𪉈":"鴜","𪉉":"𪁈","𪉊":"鷨","𪉋":"𪀾","𪉌":"𪁖","𪉍":"鵚","𪉎":"𪂆","𪉏":"𪃏","𪉐":"𪃍","𪉑":"鷔","𪉒":"𪄕","𪉔":"𪄆","𪉕":"𪇳","𪎈":"䴬","𪎉":"麲","𪎊":"麨","𪎋":"䴴","𪎌":"麳","𪑅":"䵳","𪔭":"𪔵","𪚏":"𪘀","𪚐":"𪘯","𪜎":"𠿕","𪞝":"凙","𪟎":"㔋","𪟝":"勣","𪠀":"𧷎","𪠟":"㓄","𪠡":"𠬙","𪠳":"唓","𪠵":"㖮","𪠸":"嚛","𪠺":"𠽃","𪠽":"噹","𪡀":"嘺","𪡃":"嘪","𪡋":"噞","𪡏":"嗹","𪡛":"㗿","𪡞":"嘳","𪡺":"𡃄","𪢌":"㘓","𪢐":"𡃤","𪢒":"𡂡","𪢕":"嚽","𪢖":"𡅯","𪢠":"囒","𪢮":"圞","𪢸":"墲","𪣆":"埬","𪣒":"堚","𪣻":"塿","𪤄":"𡓁","𪤚":"壣","𪥠":"𧹈","𪥫":"孇","𪥰":"嬣","𪥿":"嬻","𪧀":"孾","𪧘":"寠","𪨊":"㞞","𪨗":"屩","𪨧":"崙","𪨩":"𡸗","𪨶":"輋","𪨷":"巗","𪨹":"𡹬","𪩇":"㟺","𪩎":"巊","𪩘":"巘","𪩛":"𡿖","𪩷":"幝","𪩸":"幩","𪪏":"廬","𪪑":"㢗","𪪞":"廧","𪪴":"𢍰","𪪼":"彃","𪫌":"徿","𪫡":"𢤩","𪫷":"㦞","𪫺":"憸","𪬚":"𢣐","𪬯":"𢤿","𪭝":"𢯷","𪭢":"摐","𪭧":"擟","𪭯":"𢶒","𪭵":"掚","𪭾":"撊","𪮃":"㨻","𪮋":"㩋","𪮖":"撧","𪮳":"𢺳","𪮶":"攋","𪯋":"㪎","𪰶":"曊","𪱥":"膹","𪱷":"梖","𪲎":"櫅","𪲔":"欐","𪲛":"檵","𪲮":"櫠","𪳍":"欇","𪳗":"𣜬","𪴙":"欑","𪵑":"毊","𪵣":"霼","𪵱":"濿","𪶄":"溡","𪶒":"𤄷","𪶮":"𣽏","𪷍":"㵾","𪷽":"灒","𪸕":"熂","𪸩":"煇","𪹀":"𤑹","𪹠":"𤓌","𪹳":"爥","𪹹":"𤒻","𪺣":"𤘀","𪺪":"𤜆","𪺭":"犞","𪺷":"獊","𪺸":"𤠮","𪺻":"㺜","𪺽":"猌","𪻐":"瑽","𪻨":"瓄","𪻲":"瑻","𪻺":"璝","𪼋":"㻶","𪼴":"𤬅","𪽈":"畼","𪽝":"𤳷","𪽪":"痮","𪽭":"𤷃","𪽮":"㿖","𪽴":"𤺔","𪽷":"瘱","𪾔":"盨","𪾢":"睍","𪾣":"眝","𪾦":"矑","𪾸":"矉","𪿊":"𥏝","𪿞":"𥖲","𪿫":"礮","𪿵":"𥗇","𫀌":"𥜰","𫀓":"𥜐","𫀨":"䅐","𫀬":"䅳","𫀮":"𥢷","𫁂":"䆉","𫁟":"竱","𫁡":"鴗","𫁱":"𥶽","𫁲":"䉑","𫁳":"𥯤","𫁷":"䉶","𫁺":"𥴼","𫂃":"簢","𫂆":"簂","𫂈":"䉬","𫂖":"𥴨","𫂿":"𥻦","𫃗":"𩏷","𫄙":"糺","𫄚":"䊺","𫄛":"紟","𫄜":"䋃","𫄝":"𥾯","𫄞":"䋔","𫄟":"絁","𫄠":"絙","𫄡":"絧","𫄢":"絥","𫄣":"繷","𫄤":"繨","𫄥":"纚","𫄦":"𦀖","𫄧":"綖","𫄨":"絺","𫄩":"䋦","𫄪":"𦅇","𫄫":"綟","𫄬":"緤","𫄭":"緮","𫄮":"䋼","𫄯":"𦃩","𫄰":"縍","𫄱":"繬","𫄲":"縸","𫄳":"縰","𫄴":"繂","𫄵":"𦅈","𫄶":"繈","𫄷":"繶","𫄸":"纁","𫄹":"纗","𫅅":"䍤","𫅗":"羵","𫅥":"𦒀","𫅭":"䎙","𫅼":"𦔖","𫆏":"聻","𫆝":"𦟼","𫆫":"𦡝","𫇘":"𦧺","𫇛":"艣","𫇪":"𦱌","𫇭":"蔿","𫇴":"蒭","𫇽":"蕽","𫈉":"蕳","𫈎":"葝","𫈟":"蔯","𫈵":"蕝","𫉁":"薆","𫉄":"藷","𫊪":"䗅","𫊮":"蠦","𫊸":"蟜","𫊹":"𧒯","𫊻":"蟳","𫋇":"蟂","𫋌":"蟘","𫋲":"䙔","𫋷":"襗","𫋹":"襓","𫋻":"襘","𫌀":"襀","𫌇":"襵","𫌋":"𧞫","𫌨":"覼","𫌪":"覛","𫌫":"𧡴","𫌬":"𧢄","𫌭":"覹","𫌯":"䚩","𫍐":"𧭹","𫍙":"訑","𫍚":"訞","𫍛":"訜","𫍜":"詓","𫍝":"諫","𫍞":"𧦝","𫍟":"𧦧","𫍠":"䛄","𫍡":"詑","𫍢":"譊","𫍣":"詷","𫍤":"譑","𫍥":"誂","𫍦":"譨","𫍧":"誺","𫍨":"誫","𫍩":"諣","𫍪":"誋","𫍫":"䛳","𫍬":"誷","𫍭":"𧩕","𫍮":"誳","𫍯":"諴","𫍰":"諰","𫍱":"諯","𫍲":"謏","𫍳":"諥","𫍴":"謱","𫍵":"謸","𫍶":"𧩼","𫍷":"謉","𫍸":"謆","𫍹":"謯","𫍺":"𧫝","𫍻":"譆","𫍼":"𧬤","𫍽":"譞","𫍾":"𧭈","𫍿":"譾","𫎆":"豵","𫎌":"貗","𫎦":"贚","𫎧":"䝭","𫎨":"𧸘","𫎩":"賝","𫎪":"䞋","𫎫":"贉","𫎬":"贑","𫎭":"䞓","𫎱":"䟐","𫎳":"䟆","𫎸":"𧽯","𫎺":"䟃","𫏃":"䠆","𫏆":"蹳","𫏋":"蹻","𫏌":"𨂐","𫏐":"蹔","𫏑":"𨇽","𫏕":"𨆪","𫏞":"𨇰","𫏨":"𨇤","𫐄":"軏","𫐅":"軕","𫐆":"轣","𫐇":"軜","𫐈":"軷","𫐉":"軨","𫐊":"軬","𫐋":"𨎌","𫐌":"軿","𫐍":"𨌈","𫐎":"輢","𫐏":"輖","𫐐":"輗","𫐑":"輨","𫐒":"輷","𫐓":"輮","𫐔":"𨍰","𫐕":"轊","𫐖":"轇","𫐗":"轐","𫐘":"轗","𫐙":"轠","𫐷":"遱","𫑘":"鄟","𫑡":"鄳","𫑷":"醶","𫓥":"釟","𫓦":"釨","𫓧":"鈇","𫓨":"鈛","𫓩":"鏦","𫓪":"鈆","𫓫":"𨥟","𫓬":"鉔","𫓭":"鉠","𫓮":"𨪕","𫓯":"銈","𫓰":"銊","𫓱":"鐈","𫓲":"銁","𫓳":"𨰋","𫓴":"鉾","𫓵":"鋠","𫓶":"鋗","𫓷":"𫒡","𫓸":"錽","𫓹":"錤","𫓺":"鐪","𫓻":"錜","𫓼":"𨨛","𫓽":"錝","𫓾":"錥","𫓿":"𨨢","𫔀":"鍊","𫔁":"鐼","𫔂":"鍉","𫔃":"𨰲","𫔄":"鍒","𫔅":"鎍","𫔆":"䥯","𫔇":"鎞","𫔈":"鎙","𫔉":"𨰃","𫔊":"鏥","𫔋":"䥗","𫔌":"鏾","𫔍":"鐇","𫔎":"鐍","𫔏":"𨬖","𫔐":"𨭸","𫔑":"𨭖","𫔒":"𨮳","𫔓":"𨯟","𫔔":"鑴","𫔕":"𨰥","𫔖":"𨲳","𫔭":"開","𫔮":"閒","𫔯":"閗","𫔰":"閞","𫔲":"𨴹","𫔴":"閵","𫔵":"䦯","𫔶":"闑","𫔽":"𨼳","𫕚":"𩀨","𫕥":"霣","𫕨":"𩅙","𫖃":"靧","𫖅":"䪊","𫖇":"鞾","𫖑":"𩎖","𫖒":"韠","𫖓":"𩏂","𫖔":"韛","𫖕":"韝","𫖖":"𩏠","𫖪":"𩑔","𫖫":"䪴","𫖬":"䪾","𫖭":"𩒎","𫖮":"顗","𫖯":"頫","𫖰":"䫂","𫖱":"䫀","𫖲":"䫟","𫖳":"頵","𫖴":"𩔳","𫖵":"𩓥","𫖶":"顅","𫖷":"𩔑","𫖸":"願","𫖹":"顣","𫖺":"䫶","𫗇":"䫻","𫗈":"𩗓","𫗉":"𩗴","𫗊":"䬓","𫗋":"飋","𫗚":"𩟗","𫗞":"飦","𫗟":"䬧","𫗠":"餦","𫗡":"𩚩","𫗢":"飵","𫗣":"飶","𫗤":"𩛌","𫗥":"餫","𫗦":"餔","𫗧":"餗","𫗨":"𩛡","𫗩":"饠","𫗪":"餧","𫗫":"餬","𫗬":"餪","𫗭":"餵","𫗮":"餭","𫗯":"餱","𫗰":"䭔","𫗱":"䭑","𫗳":"𩝽","𫗴":"饘","𫗵":"饟","𫘛":"馯","𫘜":"馼","𫘝":"駃","𫘞":"駞","𫘟":"駊","𫘠":"駤","𫘡":"駫","𫘣":"駻","𫘤":"騃","𫘥":"騉","𫘦":"騊","𫘧":"騄","𫘨":"騠","𫘩":"騜","𫘪":"騵","𫘫":"騴","𫘬":"騱","𫘭":"騻","𫘮":"䮰","𫘯":"驓","𫘰":"驙","𫘱":"驨","𫘽":"鬠","𫙂":"𩯁","𫚈":"鱮","𫚉":"魟","𫚊":"鰑","𫚋":"鱄","𫚌":"魦","𫚍":"魵","𫚎":"𩶁","𫚏":"䱁","𫚐":"䱀","𫚑":"鮅","𫚒":"鮄","𫚓":"鮤","𫚔":"鮰","𫚕":"鰤","𫚖":"鮆","𫚗":"鮯","𫚘":"𩻮","𫚙":"鯆","𫚚":"鮿","𫚛":"鮵","𫚜":"䲅","𫚝":"𩸄","𫚞":"鯬","𫚟":"𩸡","𫚠":"䱧","𫚡":"鯞","𫚢":"鰋","𫚣":"鯾","𫚤":"鰦","𫚥":"鰕","𫚦":"鰫","𫚧":"鰽","𫚨":"𩻗","𫚩":"𩻬","𫚪":"鱊","𫚫":"鱢","𫚬":"𩼶","𫚭":"鱲","𫛚":"鳽","𫛛":"鳷","𫛜":"鴀","𫛝":"鴅","𫛞":"鴃","𫛟":"鸗","𫛠":"𩿤","𫛡":"鴔","𫛢":"鸋","𫛣":"鴥","𫛤":"鴐","𫛥":"鵊","𫛦":"鴮","𫛧":"𪀖","𫛨":"鵧","𫛩":"鴳","𫛪":"鴽","𫛫":"鶰","𫛬":"䳜","𫛭":"鵟","𫛮":"䳤","𫛯":"鶭","𫛰":"䳢","𫛱":"鵫","𫛲":"鵰","𫛳":"鵩","𫛴":"鷤","𫛵":"鶌","𫛶":"鶒","𫛷":"鶦","𫛸":"鶗","𫛹":"𪃧","𫛺":"䳧","𫛻":"𪃒","𫛼":"䳫","𫛽":"鷅","𫛾":"𪆷","𫜀":"鷐","𫜁":"鷩","𫜂":"𪅂","𫜃":"鷣","𫜄":"鷷","𫜅":"䴋","𫜊":"𪉸","𫜑":"麷","𫜒":"䴱","𫜓":"𪌭","𫜔":"䴽","𫜕":"𪍠","𫜙":"䵴","𫜟":"𪓰","𫜨":"𪶕","𫜩":"齧","𫜪":"齩","𫜫":"𫜦","𫜬":"齰","𫜭":"齭","𫜮":"齴","𫜯":"𪙏","𫜰":"齾","𫜲":"龓","𫜳":"䶲","𫝈":"㑮","𫝋":"𠐊","𫝦":"㛝","𫝧":"㜐","𫝨":"媈","𫝩":"嬦","𫝪":"𡟫","𫝫":"婡","𫝬":"嬇","𫝭":"孆","𫝮":"孄","𫝵":"嶹","𫞅":"𦠅","𫞗":"潣","𫞚":"澬","𫞛":"㶆","𫞝":"灍","𫞠":"爧","𫞡":"爃","𫞢":"𤛱","𫞣":"㹽","𫞥":"珼","𫞦":"璾","𫞧":"𤩂","𫞨":"璼","𫞩":"璊","𫞷":"𥢶","𫟃":"絍","𫟄":"綋","𫟅":"綡","𫟆":"緟","𫟇":"𦆲","𫟑":"䖅","𫟕":"䕤","𫟞":"訨","𫟟":"詊","𫟠":"譂","𫟡":"誴","𫟢":"䜖","𫟤":"䡐","𫟥":"䡩","𫟦":"䡵","𫟫":"𨞺","𫟬":"𨟊","𫟲":"釚","𫟳":"釲","𫟴":"鈖","𫟵":"鈗","𫟶":"銏","𫟷":"鉝","𫟸":"鉽","𫟹":"鉷","𫟺":"䤤","𫟻":"銂","𫟼":"鐽","𫟽":"𨧰","𫟾":"𨩰","𫟿":"鎈","𫠀":"䥄","𫠁":"鑉","𫠂":"閝","𫠅":"韚","𫠆":"頍","𫠇":"𩖰","𫠈":"䫾","𫠊":"䮄","𫠋":"騼","𫠌":"𩦠","𫠏":"𩵦","𫠐":"魽","𫠑":"䱸","𫠒":"鱆","𫠖":"𩿅","𫠜":"齯","𫢸":"僤","𫧃":"𣍐","𫧮":"𪋿","𫫇":"噁","𫬐":"㘔","𫭟":"塸","𫭢":"埨","𫭼":"𡑍","𫮃":"墠","𫰛":"娙","𫵷":"㠣","𫶇":"嵽","𫷷":"廞","𫸩":"彄","𬀩":"暐","𬀪":"晛","𬂩":"梜","𬃊":"櫍","𬇕":"澫","𬇙":"浿","𬇹":"漍","𬉼":"熰","𬊈":"燖","𬊤":"燀","𬍛":"瓅","𬍡":"璗","𬍤":"璕","𬒈":"礐","𬒗":"𥗽","𬕂":"篢","𬘓":"紃","𬘘":"紞","𬘡":"絪","𬘩":"綎","𬘫":"綄","𬘬":"綪","𬘭":"綝","𬘯":"綧","𬙂":"縯","𬙊":"纆","𬙋":"纕","𬜬":"蔄","𬜯":"䓣","𬞟":"蘋","𬟁":"虉","𬟽":"蝀","𬣙":"訏","𬣞":"詝","𬣡":"諓","𬣳":"詪","𬤇":"諲","𬤊":"諟","𬤝":"譓","𬨂":"軝","𬨎":"輶","𬩽":"鄩","𬪩":"醲","𬬩":"釴","𬬭":"錀","𬬮":"鋹","𬬱":"釿","𬬸":"鉥","𬬹":"鉮","𬬻":"鑪","𬬿":"鉊","𬭁":"鉧","𬭊":"𨧀","𬭎":"鋐","𬭚":"錞","𬭛":"𨨏","𬭤":"鍭","𬭩":"鎓","𬭬":"鏏","𬭭":"鏚","𬭯":"䥕","𬭳":"𨭎","𬭶":"𨭆","𬭸":"鏻","𬭼":"鐩","𬮱":"闉","𬮿":"隑","𬯀":"隮","𬯎":"隤","𬱖":"頔","𬱟":"頠","𬳵":"駓","𬳶":"駉","𬳽":"駪","𬳿":"駼","𬴂":"騑","𬴃":"騞","𬴊":"驎","𬶋":"鮈","𬶍":"鮀","𬶏":"鮠","𬶐":"鮡","𬶟":"鯻","𬶠":"鰊","𬶨":"鱀","𬶭":"鰶","𬶮":"鱚","𬷕":"鵏","𬸘":"鶠","𬸚":"鸑","𬸣":"鶱","𬸦":"鷟","𬸪":"鷭","𬸯":"鷿","𬹼":"齘","𬺈":"齮","𬺓":"齼","𰬸":"繐","𰰨":"菕","𰶎":"譅","𰾄":"鋂","𰾭":"鑀","𱊜":"𪈼"},h={"㑮":"𫝈","㑯":"㑔","㑳":"㑇","㑶":"㐹","㒓":"𠉂","㓄":"𪠟","㓨":"刾","㔋":"𪟎","㖮":"𪠵","㗲":"𠵾","㗿":"𪡛","㘉":"𠰱","㘓":"𪢌","㘔":"𫬐","㘚":"㘎","㛝":"𫝦","㜄":"㚯","㜏":"㛣","㜐":"𫝧","㜗":"𡞋","㜢":"𡞱","㜷":"𡝠","㞞":"𪨊","㟺":"𪩇","㠏":"㟆","㠣":"𫵷","㢗":"𪪑","㢝":"𢋈","㥮":"㤘","㦎":"𢛯","㦛":"𢗓","㦞":"𪫷","㨻":"𪮃","㩋":"𪮋","㩜":"㨫","㩳":"㧐","㩵":"擜","㪎":"𪯋","㯤":"𣘐","㰙":"𣗙","㵗":"𣳆","㵾":"𪷍","㶆":"𫞛","㷍":"𤆢","㷿":"𤈷","㸇":"𤎺","㹽":"𫞣","㺏":"𤠋","㺜":"𪺻","㻶":"𪼋","㿖":"𪽮","㿗":"𤻊","㿧":"𤽯","䀉":"𥁢","䀹":"𥅴","䁪":"𥇢","䁻":"䀥","䂎":"𥎝","䃮":"鿎","䅐":"𫀨","䅳":"𫀬","䆉":"𫁂","䉑":"𫁲","䉙":"𥬀","䉬":"𫂈","䉲":"𥮜","䉶":"𫁷","䊭":"𥺅","䊷":"䌶","䊺":"𫄚","䋃":"𫄜","䋔":"𫄞","䋙":"䌺","䋚":"䌻","䋦":"𫄩","䋹":"䌿","䋻":"䌾","䋼":"𫄮","䋿":"𦈓","䌈":"𦈖","䌋":"𦈘","䌖":"𦈜","䌝":"𦈟","䌟":"𦈞","䌥":"𦈠","䌰":"𦈙","䍤":"𫅅","䍦":"䍠","䍽":"𦍠","䎙":"𫅭","䎱":"䎬","䓣":"𬜯","䕤":"𫟕","䕳":"𦰴","䖅":"𫟑","䗅":"𫊪","䗿":"𧉞","䙔":"𫋲","䙡":"䙌","䙱":"𧜭","䚩":"𫌯","䛄":"𫍠","䛳":"𫍫","䜀":"䜧","䜖":"𫟢","䝭":"𫎧","䝻":"𧹕","䝼":"䞍","䞈":"𧹑","䞋":"𫎪","䞓":"𫎭","䟃":"𫎺","䟆":"𫎳","䟐":"𫎱","䠆":"𫏃","䠱":"𨅛","䡐":"𫟤","䡩":"𫟥","䡵":"𫟦","䢨":"𨑹","䤤":"𫟺","䥄":"𫠀","䥇":"䦂","䥑":"鿏","䥕":"𬭯","䥗":"𫔋","䥩":"𨱖","䥯":"𫔆","䥱":"䥾","䦘":"𨸄","䦛":"䦶","䦟":"䦷","䦯":"𫔵","䦳":"𨷿","䧢":"𨸟","䪊":"𫖅","䪏":"𩏼","䪗":"𩐀","䪘":"𩏿","䪴":"𫖫","䪾":"𫖬","䫀":"𫖱","䫂":"𫖰","䫟":"𫖲","䫴":"𩖗","䫶":"𫖺","䫻":"𫗇","䫾":"𫠈","䬓":"𫗊","䬘":"𩙮","䬝":"𩙯","䬞":"𩙧","䬧":"𫗟","䭀":"𩠇","䭃":"𩠈","䭑":"𫗱","䭔":"𫗰","䭿":"𩧭","䮄":"𫠊","䮝":"𩧰","䮞":"𩨁","䮠":"𩧿","䮫":"𩨇","䮰":"𫘮","䮳":"𩨏","䮾":"𩧪","䯀":"䯅","䯤":"𩩈","䰾":"鲃","䱀":"𫚐","䱁":"𫚏","䱙":"𩾈","䱧":"𫚠","䱬":"𩾊","䱰":"𩾋","䱷":"䲣","䱸":"𫠑","䱽":"䲝","䲁":"鳚","䲅":"𫚜","䲖":"𩾂","䲘":"鳤","䲰":"𪉂","䳜":"𫛬","䳢":"𫛰","䳤":"𫛮","䳧":"𫛺","䳫":"𫛼","䴉":"鹮","䴋":"𫜅","䴬":"𪎈","䴱":"𫜒","䴴":"𪎋","䴽":"𫜔","䵳":"𪑅","䵴":"𫜙","䶕":"𫜨","䶲":"𫜳","丟":"丢","並":"并","乾":"干","亂":"乱","亙":"亘","亞":"亚","佇":"伫","佈":"布","佔":"占","併":"并","來":"来","侖":"仑","侶":"侣","侷":"局","俁":"俣","係":"系","俓":"𠇹","俔":"伣","俠":"侠","俥":"伡","俬":"私","倀":"伥","倆":"俩","倈":"俫","倉":"仓","個":"个","們":"们","倖":"幸","倫":"伦","倲":"㑈","偉":"伟","偑":"㐽","側":"侧","偵":"侦","偽":"伪","傌":"㐷","傑":"杰","傖":"伧","傘":"伞","備":"备","傢":"家","傭":"佣","傯":"偬","傳":"传","傴":"伛","債":"债","傷":"伤","傾":"倾","僂":"偻","僅":"仅","僉":"佥","僑":"侨","僕":"仆","僞":"伪","僤":"𫢸","僥":"侥","僨":"偾","僱":"雇","價":"价","儀":"仪","儁":"俊","儂":"侬","億":"亿","儈":"侩","儉":"俭","儎":"","儐":"","儔":"俦","儕":"侪","儘":"尽","償":"偿","儣":"𠆲","優":"优","儭":"𠋆","儲":"储","儷":"俪","儸":"㑩","儺":"傩","儻":"傥","儼":"俨","兇":"凶","兌":"兑","兒":"儿","兗":"兖","內":"内","兩":"两","冊":"册","冑":"胄","冪":"幂","凈":"净","凍":"冻","凙":"𪞝","凜":"凛","凱":"凯","別":"别","刪":"删","剄":"刭","則":"则","剋":"克","剎":"刹","剗":"刬","剛":"刚","剝":"剥","剮":"剐","剴":"剀","創":"创","剷":"铲","剾":"𠛅","劃":"划","劇":"剧","劉":"刘","劊":"刽","劌":"刿","劍":"剑","劏":"㓥","劑":"剂","劚":"㔉","勁":"劲","勑":"𠡠","動":"动","務":"务","勛":"勋","勝":"胜","勞":"劳","勢":"势","勣":"𪟝","勩":"勚","勱":"劢","勳":"勋","勵":"励","勸":"劝","勻":"匀","匭":"匦","匯":"汇","匱":"匮","區":"区","協":"协","卹":"恤","卻":"却","卽":"即","厙":"厍","厠":"厕","厤":"历","厭":"厌","厲":"厉","厴":"厣","參":"参","叄":"叁","叢":"丛","吒":"咤","吳":"吴","吶":"呐","呂":"吕","咼":"呙","員":"员","哯":"𠯟","唄":"呗","唓":"𪠳","唸":"念","問":"问","啓":"启","啞":"哑","啟":"启","啢":"唡","喎":"㖞","喚":"唤","喪":"丧","喫":"吃","喬":"乔","單":"单","喲":"哟","嗆":"呛","嗇":"啬","嗊":"唝","嗎":"吗","嗚":"呜","嗩":"唢","嗰":"𠮶","嗶":"哔","嗹":"𪡏","嘆":"叹","嘍":"喽","嘓":"啯","嘔":"呕","嘖":"啧","嘗":"尝","嘜":"唛","嘩":"哗","嘪":"𪡃","嘮":"唠","嘯":"啸","嘰":"叽","嘳":"𪡞","嘵":"哓","嘸":"呒","嘺":"𪡀","嘽":"啴","噁":"恶","噅":"𠯠","噓":"嘘","噚":"㖊","噝":"咝","噞":"𪡋","噠":"哒","噥":"哝","噦":"哕","噯":"嗳","噲":"哙","噴":"喷","噸":"吨","噹":"当","嚀":"咛","嚇":"吓","嚌":"哜","嚐":"尝","嚕":"噜","嚙":"啮","嚛":"𪠸","嚥":"咽","嚦":"呖","嚧":"𠰷","嚨":"咙","嚮":"向","嚲":"亸","嚳":"喾","嚴":"严","嚶":"嘤","嚽":"𪢕","囀":"啭","囁":"嗫","囂":"嚣","囃":"𠱞","囅":"冁","囈":"呓","囉":"啰","囌":"苏","囑":"嘱","囒":"𪢠","囪":"囱","圇":"囵","國":"国","圍":"围","園":"园","圓":"圆","圖":"图","團":"团","圞":"𪢮","垻":"坝","埡":"垭","埨":"𫭢","埬":"𪣆","埰":"采","執":"执","堅":"坚","堊":"垩","堖":"垴","堚":"𪣒","堝":"埚","堯":"尧","報":"报","場":"场","塊":"块","塋":"茔","塏":"垲","塒":"埘","塗":"涂","塚":"冢","塢":"坞","塤":"埙","塵":"尘","塸":"𫭟","塹":"堑","塿":"𪣻","墊":"垫","墜":"坠","墠":"𫮃","墮":"堕","墰":"坛","墲":"𪢸","墳":"坟","墶":"垯","墻":"墙","墾":"垦","壇":"坛","壈":"𡒄","壋":"垱","壎":"埙","壓":"压","壗":"𡋤","壘":"垒","壙":"圹","壚":"垆","壜":"坛","壞":"坏","壟":"垄","壠":"垅","壢":"坜","壣":"𪤚","壩":"坝","壪":"塆","壯":"壮","壺":"壶","壼":"壸","壽":"寿","夠":"够","夢":"梦","夥":"伙","夾":"夹","奐":"奂","奧":"奥","奩":"奁","奪":"夺","奬":"奖","奮":"奋","奼":"姹","妝":"妆","姍":"姗","姦":"奸","娙":"𫰛","娛":"娱","婁":"娄","婡":"𫝫","婦":"妇","婭":"娅","媈":"𫝨","媧":"娲","媯":"妫","媰":"㛀","媼":"媪","媽":"妈","嫋":"袅","嫗":"妪","嫵":"妩","嫺":"娴","嫻":"娴","嫿":"婳","嬀":"妫","嬃":"媭","嬇":"𫝬","嬈":"娆","嬋":"婵","嬌":"娇","嬙":"嫱","嬡":"嫒","嬣":"𪥰","嬤":"嬷","嬦":"𫝩","嬪":"嫔","嬰":"婴","嬸":"婶","嬻":"𪥿","孃":"娘","孄":"𫝮","孆":"𫝭","孇":"𪥫","孋":"㛤","孌":"娈","孎":"𡠟","孫":"孙","學":"学","孻":"𡥧","孾":"𪧀","孿":"孪","宮":"宫","寀":"采","寠":"𪧘","寢":"寝","實":"实","寧":"宁","審":"审","寫":"写","寬":"宽","寵":"宠","寶":"宝","將":"将","專":"专","尋":"寻","對":"对","導":"导","尷":"尴","屆":"届","屍":"尸","屓":"屃","屜":"屉","屢":"屡","層":"层","屨":"屦","屩":"𪨗","屬":"属","岡":"冈","峯":"峰","峴":"岘","島":"岛","峽":"峡","崍":"崃","崑":"昆","崗":"岗","崙":"仑","崢":"峥","崬":"岽","嵐":"岚","嵗":"岁","嵼":"𡶴","嵽":"𫶇","嵾":"㟥","嶁":"嵝","嶄":"崭","嶇":"岖","嶈":"𡺃","嶔":"嵚","嶗":"崂","嶘":"𡺄","嶠":"峤","嶢":"峣","嶧":"峄","嶨":"峃","嶮":"崄","嶸":"嵘","嶹":"𫝵","嶺":"岭","嶼":"屿","嶽":"岳","巊":"𪩎","巋":"岿","巒":"峦","巔":"巅","巖":"岩","巗":"𪨷","巘":"𪩘","巰":"巯","巹":"卺","帥":"帅","師":"师","帳":"帐","帶":"带","幀":"帧","幃":"帏","幓":"㡎","幗":"帼","幘":"帻","幝":"𪩷","幟":"帜","幣":"币","幩":"𪩸","幫":"帮","幬":"帱","幹":"干","幾":"几","庫":"库","廁":"厕","廂":"厢","廄":"厩","廈":"厦","廎":"庼","廕":"荫","廚":"厨","廝":"厮","廞":"𫷷","廟":"庙","廠":"厂","廡":"庑","廢":"废","廣":"广","廧":"𪪞","廩":"廪","廬":"庐","廳":"厅","弒":"弑","弔":"吊","弳":"弪","張":"张","強":"强","彃":"𪪼","彄":"𫸩","彆":"别","彈":"弹","彌":"弥","彎":"弯","彔":"录","彙":"汇","彠":"彟","彥":"彦","彫":"雕","彲":"彨","彷":"彷","彿":"佛","後":"后","徑":"径","從":"从","徠":"徕","復":"复","徵":"征","徹":"彻","徿":"𪫌","恆":"恒","恥":"耻","悅":"悦","悞":"悮","悵":"怅","悶":"闷","悽":"凄","惡":"恶","惱":"恼","惲":"恽","惻":"恻","愛":"爱","愜":"惬","愨":"悫","愴":"怆","愷":"恺","愻":"𢙏","愾":"忾","慄":"栗","態":"态","慍":"愠","慘":"惨","慚":"惭","慟":"恸","慣":"惯","慤":"悫","慪":"怄","慫":"怂","慮":"虑","慳":"悭","慶":"庆","慺":"㥪","慼":"戚","慾":"欲","憂":"忧","憊":"惫","憐":"怜","憑":"凭","憒":"愦","憖":"慭","憚":"惮","憢":"𢙒","憤":"愤","憫":"悯","憮":"怃","憲":"宪","憶":"忆","憸":"𪫺","憹":"𢙐","懀":"𢙓","懇":"恳","應":"应","懌":"怿","懍":"懔","懎":"𢠁","懞":"蒙","懟":"怼","懣":"懑","懤":"㤽","懨":"恹","懲":"惩","懶":"懒","懷":"怀","懸":"悬","懺":"忏","懼":"惧","懾":"慑","戀":"恋","戇":"戆","戔":"戋","戧":"戗","戩":"戬","戰":"战","戱":"戯","戲":"戏","戶":"户","拋":"抛","挩":"捝","挱":"挲","挾":"挟","捨":"舍","捫":"扪","捱":"挨","捲":"卷","掃":"扫","掄":"抡","掆":"㧏","掗":"挜","掙":"挣","掚":"𪭵","掛":"挂","採":"采","揀":"拣","揚":"扬","換":"换","揮":"挥","揯":"搄","損":"损","搖":"摇","搗":"捣","搵":"揾","搶":"抢","摋":"𢫬","摐":"𪭢","摑":"掴","摜":"掼","摟":"搂","摯":"挚","摳":"抠","摶":"抟","摺":"折","摻":"掺","撈":"捞","撊":"𪭾","撏":"挦","撐":"撑","撓":"挠","撝":"㧑","撟":"挢","撣":"掸","撥":"拨","撧":"𪮖","撫":"抚","撲":"扑","撳":"揿","撻":"挞","撾":"挝","撿":"捡","擁":"拥","擄":"掳","擇":"择","擊":"击","擋":"挡","擓":"㧟","擔":"担","據":"据","擟":"𪭧","擠":"挤","擣":"捣","擫":"𢬍","擬":"拟","擯":"摈","擰":"拧","擱":"搁","擲":"掷","擴":"扩","擷":"撷","擺":"摆","擻":"擞","擼":"撸","擽":"㧰","擾":"扰","攄":"摅","攆":"撵","攋":"𪮶","攏":"拢","攔":"拦","攖":"撄","攙":"搀","攛":"撺","攜":"携","攝":"摄","攢":"攒","攣":"挛","攤":"摊","攪":"搅","攬":"揽","敎":"教","敓":"敚","敗":"败","敘":"叙","敵":"敌","數":"数","斂":"敛","斃":"毙","斅":"𢽾","斆":"敩","斕":"斓","斬":"斩","斷":"断","斸":"𣃁","於":"于","旂":"旗","旣":"既","昇":"升","時":"时","晉":"晋","晛":"𬀪","晝":"昼","暈":"晕","暉":"晖","暐":"𬀩","暘":"旸","暢":"畅","暫":"暂","曄":"晔","曆":"历","曇":"昙","曉":"晓","曊":"𪰶","曏":"向","曖":"暧","曠":"旷","曥":"𣆐","曨":"昽","曬":"晒","書":"书","會":"会","朥":"𦛨","朧":"胧","朮":"术","東":"东","枴":"拐","柵":"栅","柺":"拐","査":"查","桱":"𣐕","桿":"杆","梔":"栀","梖":"𪱷","梘":"枧","梜":"𬂩","條":"条","梟":"枭","梲":"棁","棄":"弃","棊":"棋","棖":"枨","棗":"枣","棟":"栋","棡":"㭎","棧":"栈","棲":"栖","棶":"梾","椏":"桠","椲":"㭏","楇":"𣒌","楊":"杨","楓":"枫","楨":"桢","業":"业","極":"极","榘":"矩","榦":"干","榪":"杩","榮":"荣","榲":"榅","榿":"桤","構":"构","槍":"枪","槓":"杠","槤":"梿","槧":"椠","槨":"椁","槫":"𣏢","槮":"椮","槳":"桨","槶":"椢","槼":"椝","樁":"桩","樂":"乐","樅":"枞","樑":"梁","樓":"楼","標":"标","樞":"枢","樠":"𣗊","樢":"㭤","樣":"样","樤":"𣔌","樧":"榝","樫":"㭴","樳":"桪","樸":"朴","樹":"树","樺":"桦","樿":"椫","橈":"桡","橋":"桥","機":"机","橢":"椭","橫":"横","橯":"𣓿","檁":"檩","檉":"柽","檔":"档","檜":"桧","檟":"槚","檢":"检","檣":"樯","檭":"𣘴","檮":"梼","檯":"台","檳":"槟","檵":"𪲛","檸":"柠","檻":"槛","櫃":"柜","櫅":"𪲎","櫍":"𬃊","櫓":"橹","櫚":"榈","櫛":"栉","櫝":"椟","櫞":"橼","櫟":"栎","櫠":"𪲮","櫥":"橱","櫧":"槠","櫨":"栌","櫪":"枥","櫫":"橥","櫬":"榇","櫱":"蘖","櫳":"栊","櫸":"榉","櫻":"樱","欄":"栏","欅":"榉","欇":"𪳍","權":"权","欍":"𣐤","欏":"椤","欐":"𪲔","欑":"𪴙","欒":"栾","欓":"𣗋","欖":"榄","欘":"𣚚","欞":"棂","欽":"钦","歎":"叹","歐":"欧","歟":"欤","歡":"欢","歲":"岁","歷":"历","歸":"归","歿":"殁","殘":"残","殞":"殒","殢":"𣨼","殤":"殇","殨":"㱮","殫":"殚","殭":"僵","殮":"殓","殯":"殡","殰":"㱩","殲":"歼","殺":"杀","殻":"壳","殼":"壳","毀":"毁","毆":"殴","毊":"𪵑","毿":"毵","氂":"牦","氈":"毡","氌":"氇","氣":"气","氫":"氢","氬":"氩","氭":"𣱝","氳":"氲","氾":"泛","汎":"泛","汙":"污","決":"决","沒":"没","沖":"冲","況":"况","泝":"溯","洩":"泄","洶":"汹","浹":"浃","浿":"𬇙","涇":"泾","涗":"涚","涼":"凉","淒":"凄","淚":"泪","淥":"渌","淨":"净","淩":"凌","淪":"沦","淵":"渊","淶":"涞","淺":"浅","渙":"涣","減":"减","渢":"沨","渦":"涡","測":"测","渾":"浑","湊":"凑","湋":"𣲗","湞":"浈","湧":"涌","湯":"汤","溈":"沩","準":"准","溝":"沟","溡":"𪶄","溫":"温","溮":"浉","溳":"涢","溼":"湿","滄":"沧","滅":"灭","滌":"涤","滎":"荥","滙":"汇","滬":"沪","滯":"滞","滲":"渗","滷":"卤","滸":"浒","滻":"浐","滾":"滚","滿":"满","漁":"渔","漊":"溇","漍":"𬇹","漚":"沤","漢":"汉","漣":"涟","漬":"渍","漲":"涨","漵":"溆","漸":"渐","漿":"浆","潁":"颍","潑":"泼","潔":"洁","潕":"𣲘","潙":"沩","潚":"㴋","潛":"潜","潣":"𫞗","潤":"润","潯":"浔","潰":"溃","潷":"滗","潿":"涠","澀":"涩","澅":"𣶩","澆":"浇","澇":"涝","澐":"沄","澗":"涧","澠":"渑","澤":"泽","澦":"滪","澩":"泶","澫":"𬇕","澬":"𫞚","澮":"浍","澱":"淀","澾":"㳠","濁":"浊","濃":"浓","濄":"㳡","濆":"𣸣","濕":"湿","濘":"泞","濚":"溁","濛":"蒙","濜":"浕","濟":"济","濤":"涛","濧":"㳔","濫":"滥","濰":"潍","濱":"滨","濺":"溅","濼":"泺","濾":"滤","濿":"𪵱","瀂":"澛","瀃":"𣽷","瀅":"滢","瀆":"渎","瀇":"㲿","瀉":"泻","瀋":"沈","瀏":"浏","瀕":"濒","瀘":"泸","瀝":"沥","瀟":"潇","瀠":"潆","瀦":"潴","瀧":"泷","瀨":"濑","瀰":"弥","瀲":"潋","瀾":"澜","灃":"沣","灄":"滠","灍":"𫞝","灑":"洒","灒":"𪷽","灕":"漓","灘":"滩","灙":"𣺼","灝":"灏","灡":"㳕","灣":"湾","灤":"滦","灧":"滟","灩":"滟","災":"灾","為":"为","烏":"乌","烴":"烃","無":"无","煇":"𪸩","煉":"炼","煒":"炜","煙":"烟","煢":"茕","煥":"焕","煩":"烦","煬":"炀","煱":"㶽","熂":"𪸕","熅":"煴","熉":"𤈶","熌":"𤇄","熒":"荧","熓":"𤆡","熗":"炝","熚":"𤇹","熡":"𤋏","熰":"𬉼","熱":"热","熲":"颎","熾":"炽","燀":"𬊤","燁":"烨","燈":"灯","燉":"炖","燒":"烧","燖":"𬊈","燙":"烫","燜":"焖","營":"营","燦":"灿","燬":"毁","燭":"烛","燴":"烩","燶":"㶶","燻":"熏","燼":"烬","燾":"焘","爃":"𫞡","爄":"𤇃","爇":"𦶟","爍":"烁","爐":"炉","爖":"𤇭","爛":"烂","爥":"𪹳","爧":"𫞠","爭":"争","爲":"为","爺":"爷","爾":"尔","牀":"床","牆":"墙","牘":"牍","牴":"牴","牽":"牵","犖":"荦","犛":"牦","犞":"𪺭","犢":"犊","犧":"牺","狀":"状","狹":"狭","狽":"狈","猌":"𪺽","猙":"狰","猶":"犹","猻":"狲","獁":"犸","獃":"呆","獄":"狱","獅":"狮","獊":"𪺷","獎":"奖","獨":"独","獩":"𤞃","獪":"狯","獫":"猃","獮":"狝","獰":"狞","獱":"㺍","獲":"获","獵":"猎","獷":"犷","獸":"兽","獺":"獭","獻":"献","獼":"猕","玀":"猡","玁":"𤞤","珼":"𫞥","現":"现","琱":"雕","琺":"珐","琿":"珲","瑋":"玮","瑒":"玚","瑣":"琐","瑤":"瑶","瑩":"莹","瑪":"玛","瑲":"玱","瑻":"𪻲","瑽":"𪻐","璉":"琏","璊":"𫞩","璕":"𬍤","璗":"𬍡","璝":"𪻺","璡":"琎","璣":"玑","璦":"瑷","璫":"珰","璯":"㻅","環":"环","璵":"玙","璸":"瑸","璼":"𫞨","璽":"玺","璾":"𫞦","璿":"璇","瓄":"𪻨","瓅":"𬍛","瓊":"琼","瓏":"珑","瓔":"璎","瓕":"𤦀","瓚":"瓒","瓛":"𤩽","甌":"瓯","甕":"瓮","產":"产","産":"产","甦":"苏","甯":"宁","畝":"亩","畢":"毕","畫":"画","異":"异","畵":"画","當":"当","畼":"𪽈","疇":"畴","疊":"叠","痙":"痉","痠":"酸","痮":"𪽪","痾":"疴","瘂":"痖","瘋":"疯","瘍":"疡","瘓":"痪","瘞":"瘗","瘡":"疮","瘧":"疟","瘮":"瘆","瘱":"𪽷","瘲":"疭","瘺":"瘘","瘻":"瘘","療":"疗","癆":"痨","癇":"痫","癉":"瘅","癐":"𤶊","癒":"愈","癘":"疠","癟":"瘪","癡":"痴","癢":"痒","癤":"疖","癥":"症","癧":"疬","癩":"癞","癬":"癣","癭":"瘿","癮":"瘾","癰":"痈","癱":"瘫","癲":"癫","發":"发","皁":"皂","皚":"皑","皟":"𤾀","皰":"疱","皸":"皲","皺":"皱","盃":"杯","盜":"盗","盞":"盏","盡":"尽","監":"监","盤":"盘","盧":"卢","盨":"𪾔","盪":"荡","眝":"𪾣","眞":"真","眥":"眦","眾":"众","睍":"𪾢","睏":"困","睜":"睁","睞":"睐","瞘":"眍","瞜":"䁖","瞞":"瞒","瞤":"𥆧","瞭":"瞭","瞶":"瞆","瞼":"睑","矇":"蒙","矉":"𪾸","矑":"𪾦","矓":"眬","矚":"瞩","矯":"矫","硃":"朱","硜":"硁","硤":"硖","硨":"砗","硯":"砚","碕":"埼","碙":"𥐻","碩":"硕","碭":"砀","碸":"砜","確":"确","碼":"码","碽":"䂵","磑":"硙","磚":"砖","磠":"硵","磣":"碜","磧":"碛","磯":"矶","磽":"硗","磾":"䃅","礄":"硚","礆":"硷","礎":"础","礐":"𬒈","礒":"𥐟","礙":"碍","礦":"矿","礪":"砺","礫":"砾","礬":"矾","礮":"𪿫","礱":"砻","祇":"祇","祕":"秘","祿":"禄","禍":"祸","禎":"祯","禕":"祎","禡":"祃","禦":"御","禪":"禅","禮":"礼","禰":"祢","禱":"祷","禿":"秃","秈":"籼","稅":"税","稈":"秆","稏":"䅉","稜":"棱","稟":"禀","種":"种","稱":"称","穀":"谷","穇":"䅟","穌":"稣","積":"积","穎":"颖","穠":"秾","穡":"穑","穢":"秽","穩":"稳","穫":"获","穭":"穞","窩":"窝","窪":"洼","窮":"穷","窯":"窑","窵":"窎","窶":"窭","窺":"窥","竄":"窜","竅":"窍","竇":"窦","竈":"灶","竊":"窃","竚":"𥩟","竪":"竖","竱":"𫁟","競":"竞","筆":"笔","筍":"笋","筧":"笕","筴":"䇲","箇":"个","箋":"笺","箏":"筝","節":"节","範":"范","築":"筑","篋":"箧","篔":"筼","篘":"𥬠","篠":"筿","篢":"𬕂","篤":"笃","篩":"筛","篳":"筚","篸":"𥮾","簀":"箦","簂":"𫂆","簍":"篓","簑":"蓑","簞":"箪","簡":"简","簢":"𫂃","簣":"篑","簫":"箫","簹":"筜","簽":"签","簾":"帘","籃":"篮","籅":"𥫣","籋":"𥬞","籌":"筹","籔":"䉤","籙":"箓","籛":"篯","籜":"箨","籟":"籁","籠":"笼","籤":"签","籩":"笾","籪":"簖","籬":"篱","籮":"箩","籲":"吁","粵":"粤","糉":"粽","糝":"糁","糞":"粪","糧":"粮","糰":"团","糲":"粝","糴":"籴","糶":"粜","糹":"纟","糺":"𫄙","糾":"纠","紀":"纪","紂":"纣","紃":"𬘓","約":"约","紅":"红","紆":"纡","紇":"纥","紈":"纨","紉":"纫","紋":"纹","納":"纳","紐":"纽","紓":"纾","純":"纯","紕":"纰","紖":"纼","紗":"纱","紘":"纮","紙":"纸","級":"级","紛":"纷","紜":"纭","紝":"纴","紞":"𬘘","紟":"𫄛","紡":"纺","紬":"䌷","紮":"扎","細":"细","紱":"绂","紲":"绁","紳":"绅","紵":"纻","紹":"绍","紺":"绀","紼":"绋","紿":"绐","絀":"绌","絁":"𫄟","終":"终","絃":"弦","組":"组","絅":"䌹","絆":"绊","絍":"𫟃","絎":"绗","結":"结","絕":"绝","絙":"𫄠","絛":"绦","絝":"绔","絞":"绞","絡":"络","絢":"绚","絥":"𫄢","給":"给","絧":"𫄡","絨":"绒","絪":"𬘡","絰":"绖","統":"统","絲":"丝","絳":"绛","絶":"绝","絹":"绢","絺":"𫄨","綀":"𦈌","綁":"绑","綃":"绡","綄":"𬘫","綆":"绠","綇":"𦈋","綈":"绨","綉":"绣","綋":"𫟄","綌":"绤","綎":"𬘩","綏":"绥","綐":"䌼","綑":"捆","經":"经","綖":"𫄧","綜":"综","綝":"𬘭","綞":"缍","綟":"𫄫","綠":"绿","綡":"𫟅","綢":"绸","綣":"绻","綧":"𬘯","綪":"𬘬","綫":"线","綬":"绶","維":"维","綯":"绹","綰":"绾","綱":"纲","網":"网","綳":"绷","綴":"缀","綵":"彩","綸":"纶","綹":"绺","綺":"绮","綻":"绽","綽":"绰","綾":"绫","綿":"绵","緄":"绲","緇":"缁","緊":"紧","緋":"绯","緍":"𦈏","緑":"绿","緒":"绪","緓":"绬","緔":"绱","緗":"缃","緘":"缄","緙":"缂","線":"线","緝":"缉","緞":"缎","緟":"𫟆","締":"缔","緡":"缗","緣":"缘","緤":"𫄬","緦":"缌","編":"编","緩":"缓","緬":"缅","緮":"𫄭","緯":"纬","緰":"𦈕","緱":"缑","緲":"缈","練":"练","緶":"缏","緷":"𦈉","緸":"𦈑","緹":"缇","緻":"致","緼":"缊","縈":"萦","縉":"缙","縊":"缢","縋":"缒","縍":"𫄰","縎":"𦈔","縐":"绉","縑":"缣","縕":"缊","縗":"缞","縛":"缚","縝":"缜","縞":"缟","縟":"缛","縣":"县","縧":"绦","縫":"缝","縬":"𦈚","縭":"缡","縮":"缩","縯":"𬙂","縰":"𫄳","縱":"纵","縲":"缧","縳":"䌸","縴":"纤","縵":"缦","縶":"絷","縷":"缕","縸":"𫄲","縹":"缥","縺":"𦈐","總":"总","績":"绩","繂":"𫄴","繃":"绷","繅":"缫","繆":"缪","繈":"𫄶","繏":"𦈝","繐":"𰬸","繒":"缯","繓":"𦈛","織":"织","繕":"缮","繚":"缭","繞":"绕","繟":"𦈎","繡":"绣","繢":"缋","繨":"𫄤","繩":"绳","繪":"绘","繫":"系","繬":"𫄱","繭":"茧","繮":"缰","繯":"缳","繰":"缲","繳":"缴","繶":"𫄷","繷":"𫄣","繸":"䍁","繹":"绎","繻":"𦈡","繼":"继","繽":"缤","繾":"缱","繿":"䍀","纁":"𫄸","纆":"𬙊","纇":"颣","纈":"缬","纊":"纩","續":"续","纍":"累","纏":"缠","纓":"缨","纔":"才","纕":"𬙋","纖":"纤","纗":"𫄹","纘":"缵","纚":"𫄥","纜":"缆","缽":"钵","罃":"䓨","罈":"坛","罌":"罂","罎":"坛","罰":"罚","罵":"骂","罷":"罢","羅":"罗","羆":"罴","羈":"羁","羋":"芈","羣":"群","羥":"羟","羨":"羡","義":"义","羵":"𫅗","羶":"膻","習":"习","翫":"玩","翬":"翚","翹":"翘","翽":"翙","耬":"耧","耮":"耢","聖":"圣","聞":"闻","聯":"联","聰":"聪","聲":"声","聳":"耸","聵":"聩","聶":"聂","職":"职","聹":"聍","聻":"𫆏","聽":"听","聾":"聋","肅":"肃","脅":"胁","脈":"脉","脛":"胫","脣":"唇","脥":"𣍰","脩":"修","脫":"脱","脹":"胀","腎":"肾","腖":"胨","腡":"脶","腦":"脑","腪":"𣍯","腫":"肿","腳":"脚","腸":"肠","膃":"腽","膕":"腘","膚":"肤","膞":"䏝","膠":"胶","膢":"𦝼","膩":"腻","膹":"𪱥","膽":"胆","膾":"脍","膿":"脓","臉":"脸","臍":"脐","臏":"膑","臗":"𣎑","臘":"腊","臚":"胪","臟":"脏","臠":"脔","臢":"臜","臥":"卧","臨":"临","臺":"台","與":"与","興":"兴","舉":"举","舊":"旧","舘":"馆","艙":"舱","艣":"𫇛","艤":"舣","艦":"舰","艫":"舻","艱":"艰","艷":"艳","芻":"刍","苧":"苎","茲":"兹","荊":"荆","莊":"庄","莖":"茎","莢":"荚","莧":"苋","菕":"𰰨","華":"华","菴":"庵","菸":"烟","萇":"苌","萊":"莱","萬":"万","萴":"荝","萵":"莴","葉":"叶","葒":"荭","葝":"𫈎","葤":"荮","葦":"苇","葯":"药","葷":"荤","蒍":"𫇭","蒐":"搜","蒓":"莼","蒔":"莳","蒕":"蒀","蒞":"莅","蒭":"𫇴","蒼":"苍","蓀":"荪","蓆":"席","蓋":"盖","蓧":"𦰏","蓮":"莲","蓯":"苁","蓴":"莼","蓽":"荜","蔄":"𬜬","蔔":"卜","蔘":"参","蔞":"蒌","蔣":"蒋","蔥":"葱","蔦":"茑","蔭":"荫","蔯":"𫈟","蔿":"𫇭","蕁":"荨","蕆":"蒇","蕎":"荞","蕒":"荬","蕓":"芸","蕕":"莸","蕘":"荛","蕝":"𫈵","蕢":"蒉","蕩":"荡","蕪":"芜","蕭":"萧","蕳":"𫈉","蕷":"蓣","蕽":"𫇽","薀":"蕰","薆":"𫉁","薈":"荟","薊":"蓟","薌":"芗","薑":"姜","薔":"蔷","薘":"荙","薟":"莶","薦":"荐","薩":"萨","薳":"䓕","薴":"苧","薵":"䓓","薹":"苔","薺":"荠","藉":"藉","藍":"蓝","藎":"荩","藝":"艺","藥":"药","藪":"薮","藭":"䓖","藴":"蕴","藶":"苈","藷":"𫉄","藹":"蔼","藺":"蔺","蘀":"萚","蘄":"蕲","蘆":"芦","蘇":"苏","蘊":"蕴","蘋":"苹","蘚":"藓","蘞":"蔹","蘟":"𦻕","蘢":"茏","蘭":"兰","蘺":"蓠","蘿":"萝","虆":"蔂","虉":"𬟁","處":"处","虛":"虚","虜":"虏","號":"号","虧":"亏","虯":"虬","蛺":"蛱","蛻":"蜕","蜆":"蚬","蝀":"𬟽","蝕":"蚀","蝟":"猬","蝦":"虾","蝨":"虱","蝸":"蜗","螄":"蛳","螞":"蚂","螢":"萤","螮":"䗖","螻":"蝼","螿":"螀","蟂":"𫋇","蟄":"蛰","蟈":"蝈","蟎":"螨","蟘":"𫋌","蟜":"𫊸","蟣":"虮","蟬":"蝉","蟯":"蛲","蟲":"虫","蟳":"𫊻","蟶":"蛏","蟻":"蚁","蠀":"𧏗","蠁":"蚃","蠅":"蝇","蠆":"虿","蠍":"蝎","蠐":"蛴","蠑":"蝾","蠔":"蚝","蠙":"𧏖","蠟":"蜡","蠣":"蛎","蠦":"𫊮","蠨":"蟏","蠱":"蛊","蠶":"蚕","蠻":"蛮","蠾":"𧑏","衆":"众","衊":"蔑","術":"术","衕":"同","衚":"胡","衛":"卫","衝":"冲","衹":"衹","袞":"衮","裊":"袅","裏":"里","補":"补","裝":"装","裡":"里","製":"制","複":"复","褌":"裈","褘":"袆","褲":"裤","褳":"裢","褸":"褛","褻":"亵","襀":"𫌀","襇":"裥","襉":"裥","襏":"袯","襓":"𫋹","襖":"袄","襗":"𫋷","襘":"𫋻","襝":"裣","襠":"裆","襤":"褴","襪":"袜","襬":"摆","襯":"衬","襰":"𧝝","襲":"袭","襴":"襕","襵":"𫌇","覆":"覆","覈":"核","見":"见","覎":"觃","規":"规","覓":"觅","視":"视","覘":"觇","覛":"𫌪","覡":"觋","覥":"觍","覦":"觎","親":"亲","覬":"觊","覯":"觏","覲":"觐","覷":"觑","覹":"𫌭","覺":"觉","覼":"𫌨","覽":"览","覿":"觌","觀":"观","觴":"觞","觶":"觯","觸":"触","訁":"讠","訂":"订","訃":"讣","計":"计","訊":"讯","訌":"讧","討":"讨","訏":"𬣙","訐":"讦","訑":"𫍙","訒":"讱","訓":"训","訕":"讪","訖":"讫","託":"托","記":"记","訛":"讹","訜":"𫍛","訝":"讶","訞":"𫍚","訟":"讼","訢":"䜣","訣":"诀","訥":"讷","訨":"𫟞","訩":"讻","訪":"访","設":"设","許":"许","訴":"诉","訶":"诃","診":"诊","註":"注","証":"证","詀":"𧮪","詁":"诂","詆":"诋","詊":"𫟟","詎":"讵","詐":"诈","詑":"𫍡","詒":"诒","詓":"𫍜","詔":"诏","評":"评","詖":"诐","詗":"诇","詘":"诎","詛":"诅","詝":"𬣞","詞":"词","詠":"咏","詡":"诩","詢":"询","詣":"诣","試":"试","詩":"诗","詪":"𬣳","詫":"诧","詬":"诟","詭":"诡","詮":"诠","詰":"诘","話":"话","該":"该","詳":"详","詵":"诜","詷":"𫍣","詼":"诙","詿":"诖","誂":"𫍥","誄":"诔","誅":"诛","誆":"诓","誇":"夸","誋":"𫍪","誌":"志","認":"认","誑":"诳","誒":"诶","誕":"诞","誘":"诱","誚":"诮","語":"语","誠":"诚","誡":"诫","誣":"诬","誤":"误","誥":"诰","誦":"诵","誨":"诲","說":"说","誫":"𫍨","説":"说","誰":"谁","課":"课","誳":"𫍮","誴":"𫟡","誶":"谇","誷":"𫍬","誹":"诽","誺":"𫍧","誼":"谊","誾":"訚","調":"调","諂":"谄","諄":"谆","談":"谈","諉":"诿","請":"请","諍":"诤","諏":"诹","諑":"诼","諒":"谅","諓":"𬣡","論":"论","諗":"谂","諛":"谀","諜":"谍","諝":"谞","諞":"谝","諟":"𬤊","諡":"谥","諢":"诨","諣":"𫍩","諤":"谔","諥":"𫍳","諦":"谛","諧":"谐","諫":"谏","諭":"谕","諮":"咨","諯":"𫍱","諰":"𫍰","諱":"讳","諲":"𬤇","諳":"谙","諴":"𫍯","諶":"谌","諷":"讽","諸":"诸","諺":"谚","諼":"谖","諾":"诺","謀":"谋","謁":"谒","謂":"谓","謄":"誊","謅":"诌","謆":"𫍸","謉":"𫍷","謊":"谎","謎":"谜","謏":"𫍲","謐":"谧","謔":"谑","謖":"谡","謗":"谤","謙":"谦","謚":"谥","講":"讲","謝":"谢","謠":"谣","謡":"谣","謨":"谟","謫":"谪","謬":"谬","謭":"谫","謯":"𫍹","謱":"𫍴","謳":"讴","謸":"𫍵","謹":"谨","謾":"谩","譁":"哗","譂":"𫟠","譅":"𰶎","譆":"𫍻","證":"证","譊":"𫍢","譎":"谲","譏":"讥","譑":"𫍤","譓":"𬤝","譖":"谮","識":"识","譙":"谯","譚":"谭","譜":"谱","譞":"𫍽","譟":"噪","譨":"𫍦","譫":"谵","譭":"毁","譯":"译","議":"议","譴":"谴","護":"护","譸":"诪","譽":"誉","譾":"谫","讀":"读","讅":"谉","變":"变","讋":"詟","讌":"䜩","讎":"雠","讒":"谗","讓":"让","讕":"谰","讖":"谶","讚":"赞","讜":"谠","讞":"谳","豈":"岂","豎":"竖","豐":"丰","豔":"艳","豬":"猪","豵":"𫎆","豶":"豮","貓":"猫","貗":"𫎌","貙":"䝙","貝":"贝","貞":"贞","貟":"贠","負":"负","財":"财","貢":"贡","貧":"贫","貨":"货","販":"贩","貪":"贪","貫":"贯","責":"责","貯":"贮","貰":"贳","貲":"赀","貳":"贰","貴":"贵","貶":"贬","買":"买","貸":"贷","貺":"贶","費":"费","貼":"贴","貽":"贻","貿":"贸","賀":"贺","賁":"贲","賂":"赂","賃":"赁","賄":"贿","賅":"赅","資":"资","賈":"贾","賊":"贼","賑":"赈","賒":"赊","賓":"宾","賕":"赇","賙":"赒","賚":"赉","賜":"赐","賝":"𫎩","賞":"赏","賟":"𧹖","賠":"赔","賡":"赓","賢":"贤","賣":"卖","賤":"贱","賦":"赋","賧":"赕","質":"质","賫":"赍","賬":"账","賭":"赌","賰":"䞐","賴":"赖","賵":"赗","賺":"赚","賻":"赙","購":"购","賽":"赛","賾":"赜","贃":"𧹗","贄":"贽","贅":"赘","贇":"赟","贈":"赠","贉":"𫎫","贊":"赞","贋":"赝","贍":"赡","贏":"赢","贐":"赆","贑":"𫎬","贓":"赃","贔":"赑","贖":"赎","贗":"赝","贚":"𫎦","贛":"赣","贜":"赃","赬":"赪","趕":"赶","趙":"赵","趨":"趋","趲":"趱","跡":"迹","踐":"践","踰":"逾","踴":"踊","蹌":"跄","蹔":"𫏐","蹕":"跸","蹟":"迹","蹠":"跖","蹣":"蹒","蹤":"踪","蹳":"𫏆","蹺":"跷","蹻":"𫏋","躂":"跶","躉":"趸","躊":"踌","躋":"跻","躍":"跃","躎":"䟢","躑":"踯","躒":"跞","躓":"踬","躕":"蹰","躘":"𨀁","躚":"跹","躝":"𨅬","躡":"蹑","躥":"蹿","躦":"躜","躪":"躏","軀":"躯","軉":"𨉗","車":"车","軋":"轧","軌":"轨","軍":"军","軏":"𫐄","軑":"轪","軒":"轩","軔":"轫","軕":"𫐅","軗":"𨐅","軛":"轭","軜":"𫐇","軝":"𬨂","軟":"软","軤":"轷","軨":"𫐉","軫":"轸","軬":"𫐊","軲":"轱","軷":"𫐈","軸":"轴","軹":"轵","軺":"轺","軻":"轲","軼":"轶","軾":"轼","軿":"𫐌","較":"较","輄":"𨐈","輅":"辂","輇":"辁","輈":"辀","載":"载","輊":"轾","輋":"𪨶","輒":"辄","輓":"挽","輔":"辅","輕":"轻","輖":"𫐏","輗":"𫐐","輛":"辆","輜":"辎","輝":"辉","輞":"辋","輟":"辍","輢":"𫐎","輥":"辊","輦":"辇","輨":"𫐑","輩":"辈","輪":"轮","輬":"辌","輮":"𫐓","輯":"辑","輳":"辏","輶":"𬨎","輷":"𫐒","輸":"输","輻":"辐","輼":"辒","輾":"辗","輿":"舆","轀":"辒","轂":"毂","轄":"辖","轅":"辕","轆":"辘","轇":"𫐖","轉":"转","轊":"𫐕","轍":"辙","轎":"轿","轐":"𫐗","轔":"辚","轗":"𫐘","轟":"轰","轠":"𫐙","轡":"辔","轢":"轹","轣":"𫐆","轤":"轳","辦":"办","辭":"辞","辮":"辫","辯":"辩","農":"农","迴":"回","逕":"迳","這":"这","連":"连","週":"周","進":"进","遊":"游","運":"运","過":"过","達":"达","違":"违","遙":"遥","遜":"逊","遞":"递","遠":"远","遡":"溯","適":"适","遱":"𫐷","遲":"迟","遷":"迁","選":"选","遺":"遗","遼":"辽","邁":"迈","還":"还","邇":"迩","邊":"边","邏":"逻","邐":"逦","郟":"郏","郵":"邮","鄆":"郓","鄉":"乡","鄒":"邹","鄔":"邬","鄖":"郧","鄟":"𫑘","鄧":"邓","鄩":"𬩽","鄭":"郑","鄰":"邻","鄲":"郸","鄳":"𫑡","鄴":"邺","鄶":"郐","鄺":"邝","酇":"酂","酈":"郦","醃":"腌","醖":"酝","醜":"丑","醞":"酝","醟":"蒏","醣":"糖","醫":"医","醬":"酱","醱":"酦","醲":"𬪩","醶":"𫑷","釀":"酿","釁":"衅","釃":"酾","釅":"酽","釋":"释","釐":"厘","釒":"钅","釓":"钆","釔":"钇","釕":"钌","釗":"钊","釘":"钉","釙":"钋","釚":"𫟲","針":"针","釟":"𫓥","釣":"钓","釤":"钐","釦":"扣","釧":"钏","釨":"𫓦","釩":"钒","釲":"𫟳","釳":"𨰿","釴":"𬬩","釵":"钗","釷":"钍","釹":"钕","釺":"钎","釾":"䥺","釿":"𬬱","鈀":"钯","鈁":"钫","鈃":"钘","鈄":"钭","鈅":"钥","鈆":"𫓪","鈇":"𫓧","鈈":"钚","鈉":"钠","鈋":"𨱂","鈍":"钝","鈎":"钩","鈐":"钤","鈑":"钣","鈒":"钑","鈔":"钞","鈕":"钮","鈖":"𫟴","鈗":"𫟵","鈛":"𫓨","鈞":"钧","鈠":"𨱁","鈡":"钟","鈣":"钙","鈥":"钬","鈦":"钛","鈧":"钪","鈮":"铌","鈯":"𨱄","鈰":"铈","鈲":"𨱃","鈳":"钶","鈴":"铃","鈷":"钴","鈸":"钹","鈹":"铍","鈺":"钰","鈽":"钸","鈾":"铀","鈿":"钿","鉀":"钾","鉁":"𨱅","鉅":"巨","鉆":"钻","鉈":"铊","鉉":"铉","鉊":"𬬿","鉋":"铇","鉍":"铋","鉑":"铂","鉔":"𫓬","鉕":"钷","鉗":"钳","鉚":"铆","鉛":"铅","鉝":"𫟷","鉞":"钺","鉠":"𫓭","鉢":"钵","鉤":"钩","鉥":"𬬸","鉦":"钲","鉧":"𬭁","鉬":"钼","鉭":"钽","鉮":"𬬹","鉳":"锫","鉶":"铏","鉷":"𫟹","鉸":"铰","鉺":"铒","鉻":"铬","鉽":"𫟸","鉾":"𫓴","鉿":"铪","銀":"银","銁":"𫓲","銂":"𫟻","銃":"铳","銅":"铜","銈":"𫓯","銊":"𫓰","銍":"铚","銏":"𫟶","銑":"铣","銓":"铨","銖":"铢","銘":"铭","銚":"铫","銛":"铦","銜":"衔","銠":"铑","銣":"铷","銥":"铱","銦":"铟","銨":"铵","銩":"铥","銪":"铕","銫":"铯","銬":"铐","銱":"铞","銳":"锐","銶":"𨱇","銷":"销","銹":"锈","銻":"锑","銼":"锉","鋁":"铝","鋂":"𰾄","鋃":"锒","鋅":"锌","鋇":"钡","鋉":"𨱈","鋌":"铤","鋏":"铗","鋐":"𬭎","鋒":"锋","鋗":"𫓶","鋙":"铻","鋝":"锊","鋟":"锓","鋠":"𫓵","鋣":"铘","鋤":"锄","鋥":"锃","鋦":"锔","鋨":"锇","鋩":"铓","鋪":"铺","鋭":"锐","鋮":"铖","鋯":"锆","鋰":"锂","鋱":"铽","鋶":"锍","鋸":"锯","鋹":"𬬮","鋼":"钢","錀":"𬬭","錁":"锞","錂":"𨱋","錄":"录","錆":"锖","錇":"锫","錈":"锩","錏":"铔","錐":"锥","錒":"锕","錕":"锟","錘":"锤","錙":"锱","錚":"铮","錛":"锛","錜":"𫓻","錝":"𫓽","錞":"𬭚","錟":"锬","錠":"锭","錡":"锜","錢":"钱","錤":"𫓹","錥":"𫓾","錦":"锦","錨":"锚","錩":"锠","錫":"锡","錮":"锢","錯":"错","録":"录","錳":"锰","錶":"表","錸":"铼","錼":"镎","錽":"𫓸","鍀":"锝","鍁":"锨","鍃":"锪","鍄":"𨱉","鍅":"钫","鍆":"钔","鍇":"锴","鍈":"锳","鍉":"𫔂","鍊":"炼","鍋":"锅","鍍":"镀","鍒":"𫔄","鍔":"锷","鍘":"铡","鍚":"钖","鍛":"锻","鍠":"锽","鍤":"锸","鍥":"锲","鍩":"锘","鍬":"锹","鍭":"𬭤","鍮":"𨱎","鍰":"锾","鍵":"键","鍶":"锶","鍺":"锗","鍼":"针","鍾":"钟","鎂":"镁","鎄":"锿","鎇":"镅","鎈":"𫟿","鎊":"镑","鎌":"镰","鎍":"𫔅","鎓":"𬭩","鎔":"镕","鎖":"锁","鎘":"镉","鎙":"𫔈","鎚":"锤","鎛":"镈","鎝":"𨱏","鎞":"𫔇","鎡":"镃","鎢":"钨","鎣":"蓥","鎦":"镏","鎧":"铠","鎩":"铩","鎪":"锼","鎬":"镐","鎭":"镇","鎮":"镇","鎯":"𨱍","鎰":"镒","鎲":"镋","鎳":"镍","鎵":"镓","鎶":"鿔","鎷":"𨰾","鎸":"镌","鎿":"镎","鏃":"镞","鏆":"𨱌","鏇":"旋","鏈":"链","鏉":"𨱒","鏌":"镆","鏍":"镙","鏏":"𬭬","鏐":"镠","鏑":"镝","鏗":"铿","鏘":"锵","鏚":"𬭭","鏜":"镗","鏝":"镘","鏞":"镛","鏟":"铲","鏡":"镜","鏢":"镖","鏤":"镂","鏥":"𫔊","鏦":"𫓩","鏨":"錾","鏰":"镚","鏵":"铧","鏷":"镤","鏹":"镪","鏺":"䥽","鏻":"𬭸","鏽":"锈","鏾":"𫔌","鐃":"铙","鐄":"𨱑","鐇":"𫔍","鐈":"𫓱","鐋":"铴","鐍":"𫔎","鐎":"𨱓","鐏":"𨱔","鐐":"镣","鐒":"铹","鐓":"镦","鐔":"镡","鐘":"钟","鐙":"镫","鐝":"镢","鐠":"镨","鐥":"䦅","鐦":"锎","鐧":"锏","鐨":"镄","鐩":"𬭼","鐪":"𫓺","鐫":"镌","鐮":"镰","鐯":"䦃","鐲":"镯","鐳":"镭","鐵":"铁","鐶":"镮","鐸":"铎","鐺":"铛","鐼":"𫔁","鐽":"𫟼","鐿":"镱","鑀":"𰾭","鑄":"铸","鑉":"𫠁","鑊":"镬","鑌":"镔","鑑":"鉴","鑒":"鉴","鑔":"镲","鑕":"锧","鑞":"镴","鑠":"铄","鑣":"镳","鑥":"镥","鑪":"𬬻","鑭":"镧","鑰":"钥","鑱":"镵","鑲":"镶","鑴":"𫔔","鑷":"镊","鑹":"镩","鑼":"锣","鑽":"钻","鑾":"銮","鑿":"凿","钁":"镢","钂":"镋","長":"长","門":"门","閂":"闩","閃":"闪","閆":"闫","閈":"闬","閉":"闭","開":"开","閌":"闶","閍":"𨸂","閎":"闳","閏":"闰","閐":"𨸃","閑":"闲","閒":"闲","間":"间","閔":"闵","閗":"𫔯","閘":"闸","閝":"𫠂","閞":"𫔰","閡":"阂","閣":"阁","閤":"合","閥":"阀","閨":"闺","閩":"闽","閫":"阃","閬":"阆","閭":"闾","閱":"阅","閲":"阅","閵":"𫔴","閶":"阊","閹":"阉","閻":"阎","閼":"阏","閽":"阍","閾":"阈","閿":"阌","闃":"阒","闆":"板","闇":"暗","闈":"闱","闉":"𬮱","闊":"阔","闋":"阕","闌":"阑","闍":"阇","闐":"阗","闑":"𫔶","闒":"阘","闓":"闿","闔":"阖","闕":"阙","闖":"闯","關":"关","闞":"阚","闠":"阓","闡":"阐","闢":"辟","闤":"阛","闥":"闼","阪":"阪","陘":"陉","陝":"陕","陞":"升","陣":"阵","陰":"阴","陳":"陈","陸":"陆","陽":"阳","隉":"陧","隊":"队","階":"阶","隑":"𬮿","隕":"陨","際":"际","隤":"𬯎","隨":"随","險":"险","隮":"𬯀","隯":"陦","隱":"隐","隴":"陇","隸":"隶","隻":"只","雋":"隽","雖":"虽","雙":"双","雛":"雏","雜":"杂","雞":"鸡","離":"离","難":"难","雲":"云","電":"电","霑":"沾","霢":"霡","霣":"𫕥","霧":"雾","霼":"𪵣","霽":"霁","靂":"雳","靄":"霭","靆":"叇","靈":"灵","靉":"叆","靚":"靓","靜":"静","靝":"靔","靦":"腼","靧":"𫖃","靨":"靥","鞏":"巩","鞝":"绱","鞦":"秋","鞽":"鞒","鞾":"𫖇","韁":"缰","韃":"鞑","韆":"千","韉":"鞯","韋":"韦","韌":"韧","韍":"韨","韓":"韩","韙":"韪","韚":"𫠅","韛":"𫖔","韜":"韬","韝":"鞲","韞":"韫","韠":"𫖒","韻":"韵","響":"响","頁":"页","頂":"顶","頃":"顷","項":"项","順":"顺","頇":"顸","須":"须","頊":"顼","頌":"颂","頍":"𫠆","頎":"颀","頏":"颃","預":"预","頑":"顽","頒":"颁","頓":"顿","頔":"𬱖","頗":"颇","領":"领","頜":"颌","頠":"𬱟","頡":"颉","頤":"颐","頦":"颏","頫":"𫖯","頭":"头","頮":"颒","頰":"颊","頲":"颋","頴":"颕","頵":"𫖳","頷":"颔","頸":"颈","頹":"颓","頻":"频","頽":"颓","顂":"𩓋","顃":"𩖖","顅":"𫖶","顆":"颗","題":"题","額":"额","顎":"颚","顏":"颜","顒":"颙","顓":"颛","顔":"颜","顗":"𫖮","願":"愿","顙":"颡","顛":"颠","類":"类","顢":"颟","顣":"𫖹","顥":"颢","顧":"顾","顫":"颤","顬":"颥","顯":"显","顰":"颦","顱":"颅","顳":"颞","顴":"颧","風":"风","颭":"飐","颮":"飑","颯":"飒","颰":"𩙥","颱":"台","颳":"刮","颶":"飓","颷":"𩙪","颸":"飔","颺":"飏","颻":"飖","颼":"飕","颾":"𩙫","飀":"飗","飄":"飘","飆":"飙","飈":"飚","飋":"𫗋","飛":"飞","飠":"饣","飢":"饥","飣":"饤","飥":"饦","飦":"𫗞","飩":"饨","飪":"饪","飫":"饫","飭":"饬","飯":"饭","飱":"飧","飲":"饮","飴":"饴","飵":"𫗢","飶":"𫗣","飼":"饲","飽":"饱","飾":"饰","飿":"饳","餃":"饺","餄":"饸","餅":"饼","餈":"糍","餉":"饷","養":"养","餌":"饵","餎":"饹","餏":"饻","餑":"饽","餒":"馁","餓":"饿","餔":"𫗦","餕":"馂","餖":"饾","餗":"𫗧","餘":"余","餚":"肴","餛":"馄","餜":"馃","餞":"饯","餡":"馅","餦":"𫗠","餧":"𫗪","館":"馆","餪":"𫗬","餫":"𫗥","餬":"糊","餭":"𫗮","餱":"糇","餳":"饧","餵":"喂","餶":"馉","餷":"馇","餸":"𩠌","餺":"馎","餼":"饩","餾":"馏","餿":"馊","饁":"馌","饃":"馍","饅":"馒","饈":"馐","饉":"馑","饊":"馓","饋":"馈","饌":"馔","饑":"饥","饒":"饶","饗":"飨","饘":"𫗴","饜":"餍","饞":"馋","饟":"𫗵","饠":"𫗩","饢":"馕","馬":"马","馭":"驭","馮":"冯","馯":"𫘛","馱":"驮","馳":"驰","馴":"驯","馹":"驲","馼":"𫘜","駁":"驳","駃":"𫘝","駉":"𬳶","駊":"𫘟","駎":"𩧨","駐":"驻","駑":"驽","駒":"驹","駓":"𬳵","駔":"驵","駕":"驾","駘":"骀","駙":"驸","駚":"𩧫","駛":"驶","駝":"驼","駞":"𫘞","駟":"驷","駡":"骂","駢":"骈","駤":"𫘠","駧":"𩧲","駩":"𩧴","駪":"𬳽","駫":"𫘡","駭":"骇","駰":"骃","駱":"骆","駶":"𩧺","駸":"骎","駻":"𫘣","駼":"𬳿","駿":"骏","騁":"骋","騂":"骍","騃":"𫘤","騄":"𫘧","騅":"骓","騉":"𫘥","騊":"𫘦","騌":"骔","騍":"骒","騎":"骑","騏":"骐","騑":"𬴂","騔":"𩨀","騖":"骛","騙":"骗","騚":"𩨊","騜":"𫘩","騝":"𩨃","騞":"𬴃","騟":"𩨈","騠":"𫘨","騤":"骙","騧":"䯄","騪":"𩨄","騫":"骞","騭":"骘","騮":"骝","騰":"腾","騱":"𫘬","騴":"𫘫","騵":"𫘪","騶":"驺","騷":"骚","騸":"骟","騻":"𫘭","騼":"𫠋","騾":"骡","驀":"蓦","驁":"骜","驂":"骖","驃":"骠","驄":"骢","驅":"驱","驊":"骅","驋":"𩧯","驌":"骕","驍":"骁","驎":"𬴊","驏":"骣","驓":"𫘯","驕":"骄","驗":"验","驙":"𫘰","驚":"惊","驛":"驿","驟":"骤","驢":"驴","驤":"骧","驥":"骥","驦":"骦","驨":"𫘱","驪":"骊","驫":"骉","骯":"肮","髏":"髅","髒":"脏","體":"体","髕":"髌","髖":"髋","髮":"发","鬆":"松","鬍":"胡","鬖":"𩭹","鬚":"须","鬠":"𫘽","鬢":"鬓","鬥":"斗","鬧":"闹","鬨":"哄","鬩":"阋","鬮":"阄","鬱":"郁","鬹":"鬶","魎":"魉","魘":"魇","魚":"鱼","魛":"鱽","魟":"𫚉","魢":"鱾","魥":"𩽹","魦":"𫚌","魨":"鲀","魯":"鲁","魴":"鲂","魵":"𫚍","魷":"鱿","魺":"鲄","魽":"𫠐","鮀":"𬶍","鮁":"鲅","鮃":"鲆","鮄":"𫚒","鮅":"𫚑","鮆":"𫚖","鮈":"𬶋","鮊":"鲌","鮋":"鲉","鮍":"鲏","鮎":"鲇","鮐":"鲐","鮑":"鲍","鮒":"鲋","鮓":"鲊","鮚":"鲒","鮜":"鲘","鮝":"鲞","鮞":"鲕","鮟":"𩽾","鮠":"𬶏","鮡":"𬶐","鮣":"䲟","鮤":"𫚓","鮦":"鲖","鮪":"鲔","鮫":"鲛","鮭":"鲑","鮮":"鲜","鮯":"𫚗","鮰":"𫚔","鮳":"鲓","鮵":"𫚛","鮶":"鲪","鮸":"3","鮺":"鲝","鮿":"𫚚","鯀":"鲧","鯁":"鲠","鯄":"𩾁","鯆":"𫚙","鯇":"鲩","鯉":"鲤","鯊":"鲨","鯒":"鲬","鯔":"鲻","鯕":"鲯","鯖":"鲭","鯗":"鲞","鯛":"鲷","鯝":"鲴","鯞":"𫚡","鯡":"鲱","鯢":"鲵","鯤":"鲲","鯧":"鲳","鯨":"鲸","鯪":"鲮","鯫":"鲰","鯬":"𫚞","鯰":"鲶","鯱":"𩾇","鯴":"鲺","鯶":"𩽼","鯷":"鳀","鯻":"𬶟","鯽":"鲫","鯾":"𫚣","鯿":"鳊","鰁":"鳈","鰂":"鲗","鰃":"鳂","鰆":"䲠","鰈":"鲽","鰉":"鳇","鰊":"𬶠","鰋":"𫚢","鰌":"䲡","鰍":"鳅","鰏":"鲾","鰐":"鳄","鰑":"𫚊","鰒":"鳆","鰓":"鳃","鰕":"𫚥","鰛":"鳁","鰜":"鳒","鰟":"鳑","鰠":"鳋","鰣":"鲥","鰤":"𫚕","鰥":"鳏","鰦":"𫚤","鰧":"䲢","鰨":"鳎","鰩":"鳐","鰫":"𫚦","鰭":"鳍","鰮":"鳁","鰱":"鲢","鰲":"鳌","鰳":"鳓","鰵":"鳘","鰶":"𬶭","鰷":"鲦","鰹":"鲣","鰺":"鲹","鰻":"鳗","鰼":"鳛","鰽":"𫚧","鰾":"鳔","鱀":"𬶨","鱂":"鳉","鱄":"𫚋","鱅":"鳙","鱆":"𫠒","鱇":"𩾌","鱈":"鳕","鱉":"鳖","鱊":"𫚪","鱒":"鳟","鱔":"鳝","鱖":"鳜","鱗":"鳞","鱘":"鲟","鱚":"𬶮","鱝":"鲼","鱟":"鲎","鱠":"鲙","鱢":"𫚫","鱣":"鳣","鱤":"鳡","鱧":"鳢","鱨":"鲿","鱭":"鲚","鱮":"𫚈","鱯":"鳠","鱲":"𫚭","鱷":"鳄","鱸":"鲈","鱺":"鲡","鳥":"鸟","鳧":"凫","鳩":"鸠","鳬":"凫","鳲":"鸤","鳳":"凤","鳴":"鸣","鳶":"鸢","鳷":"𫛛","鳼":"𪉃","鳽":"𫛚","鳾":"䴓","鴀":"𫛜","鴃":"𫛞","鴅":"𫛝","鴆":"鸩","鴇":"鸨","鴉":"鸦","鴐":"𫛤","鴒":"鸰","鴔":"𫛡","鴕":"鸵","鴗":"𫁡","鴛":"鸳","鴜":"𪉈","鴝":"鸲","鴞":"鸮","鴟":"鸱","鴣":"鸪","鴥":"𫛣","鴦":"鸯","鴨":"鸭","鴮":"𫛦","鴯":"鸸","鴰":"鸹","鴲":"𪉆","鴳":"𫛩","鴴":"鸻","鴷":"䴕","鴻":"鸿","鴽":"𫛪","鴿":"鸽","鵁":"䴔","鵂":"鸺","鵃":"鸼","鵊":"𫛥","鵏":"𬷕","鵐":"鹀","鵑":"鹃","鵒":"鹆","鵓":"鹁","鵚":"𪉍","鵜":"鹈","鵝":"鹅","鵟":"𫛭","鵠":"鹄","鵡":"鹉","鵧":"𫛨","鵩":"𫛳","鵪":"鹌","鵫":"𫛱","鵬":"鹏","鵮":"鹐","鵯":"鹎","鵰":"雕","鵲":"鹊","鵷":"鹓","鵾":"鹍","鶄":"䴖","鶇":"鸫","鶉":"鹑","鶊":"鹒","鶌":"𫛵","鶒":"𫛶","鶓":"鹋","鶖":"鹙","鶗":"𫛸","鶘":"鹕","鶚":"鹗","鶠":"𬸘","鶡":"鹖","鶥":"鹛","鶦":"𫛷","鶩":"鹜","鶪":"䴗","鶬":"鸧","鶭":"𫛯","鶯":"莺","鶰":"𫛫","鶱":"𬸣","鶲":"鹟","鶴":"鹤","鶹":"鹠","鶺":"鹡","鶻":"鹘","鶼":"鹣","鶿":"鹚","鷀":"鹚","鷁":"鹢","鷂":"鹞","鷄":"鸡","鷅":"𫛽","鷉":"䴘","鷊":"鹝","鷐":"𫜀","鷓":"鹧","鷔":"𪉑","鷖":"鹥","鷗":"鸥","鷙":"鸷","鷚":"鹨","鷟":"𬸦","鷣":"𫜃","鷤":"𫛴","鷥":"鸶","鷦":"鹪","鷨":"𪉊","鷩":"𫜁","鷫":"鹔","鷭":"𬸪","鷯":"鹩","鷲":"鹫","鷳":"鹇","鷴":"鹇","鷷":"𫜄","鷸":"鹬","鷹":"鹰","鷺":"鹭","鷽":"鸴","鷿":"𬸯","鸂":"㶉","鸇":"鹯","鸊":"䴙","鸋":"𫛢","鸌":"鹱","鸏":"鹲","鸑":"𬸚","鸕":"鸬","鸗":"𫛟","鸘":"鹴","鸚":"鹦","鸛":"鹳","鸝":"鹂","鸞":"鸾","鹵":"卤","鹹":"咸","鹺":"鹾","鹼":"碱","鹽":"盐","麗":"丽","麥":"麦","麨":"𪎊","麩":"麸","麪":"面","麫":"面","麬":"𤿲","麯":"曲","麲":"𪎉","麳":"𪎌","麴":"曲","麵":"面","麷":"𫜑","麼":"么","麽":"么","黃":"黄","黌":"黉","點":"点","黨":"党","黲":"黪","黴":"霉","黶":"黡","黷":"黩","黽":"黾","黿":"鼋","鼂":"鼌","鼉":"鼍","鼕":"冬","鼴":"鼹","齊":"齐","齋":"斋","齎":"赍","齏":"齑","齒":"齿","齔":"龀","齕":"龁","齗":"龂","齘":"𬹼","齙":"龅","齜":"龇","齟":"龃","齠":"龆","齡":"龄","齣":"出","齦":"龈","齧":"啮","齩":"𫜪","齪":"龊","齬":"龉","齭":"𫜭","齮":"𬺈","齯":"𫠜","齰":"𫜬","齲":"龋","齴":"𫜮","齶":"腭","齷":"龌","齼":"𬺓","齾":"𫜰","龍":"龙","龎":"厐","龐":"庞","龑":"䶮","龓":"𫜲","龔":"龚","龕":"龛","龜":"龟","龭":"𩨎","龯":"𨱆","鿁":"䜤","鿓":"鿒","𠁞":"𠀾","𠌥":"𠆿","𠏢":"𠉗","𠐊":"𫝋","𠗣":"㓆","𠞆":"𠛆","𠠎":"𠚳","𠬙":"𪠡","𠽃":"𪠺","𠿕":"𪜎","𡂡":"𪢒","𡃄":"𪡺","𡃕":"𠴛","𡃤":"𪢐","𡄔":"𠴢","𡄣":"𠵸","𡅏":"𠲥","𡅯":"𪢖","𡑍":"𫭼","𡑭":"𡋗","𡓁":"𪤄","𡓾":"𡋀","𡔖":"𡍣","𡞵":"㛟","𡟫":"𫝪","𡠹":"㛿","𡢃":"㛠","𡮉":"𡭜","𡮣":"𡭬","𡳳":"𡳃","𡸗":"𪨩","𡹬":"𪨹","𡻕":"岁","𡽗":"𡸃","𡾱":"㟜","𡿖":"𪩛","𢍰":"𪪴","𢠼":"𢙑","𢣐":"𪬚","𢣚":"𢘝","𢣭":"𢘞","𢤩":"𪫡","𢤱":"𢘙","𢤿":"𪬯","𢯷":"𪭝","𢶒":"𪭯","𢶫":"𢫞","𢷮":"𢫊","𢹿":"𢬦","𢺳":"𪮳","𣈶":"暅","𣋋":"𣈣","𣍐":"𫧃","𣙎":"㭣","𣜬":"𪳗","𣝕":"𣘷","𣞻":"𣘓","𣠩":"𣞎","𣠲":"𣑶","𣯩":"𣯣","𣯴":"𣭤","𣯶":"毶","𣽏":"𪶮","𣾷":"㳢","𣿉":"𣶫","𤁣":"𣺽","𤄷":"𪶒","𤅶":"𣷷","𤑳":"𤎻","𤑹":"𪹀","𤒎":"𤊀","𤒻":"𪹹","𤓌":"𪹠","𤓎":"𤎺","𤓩":"𤊰","𤘀":"𪺣","𤛮":"𤙯","𤛱":"𫞢","𤜆":"𪺪","𤠮":"𪺸","𤢟":"𤝢","𤢻":"𢢐","𤩂":"𫞧","𤪺":"㻘","𤫩":"㻏","𤬅":"𪼴","𤳷":"𪽝","𤳸":"𤳄","𤷃":"𪽭","𤸫":"𤶧","𤺔":"𪽴","𥊝":"𥅿","𥌃":"𥅘","𥏝":"𪿊","𥕥":"𥐰","𥖅":"𥐯","𥖲":"𪿞","𥗇":"𪿵","𥗽":"𬒗","𥜐":"𫀓","𥜰":"𫀌","𥞵":"𥞦","𥢢":"䅪","𥢶":"𫞷","𥢷":"𫀮","𥨐":"𥧂","𥪂":"𥩺","𥯤":"𫁳","𥴨":"𫂖","𥴼":"𫁺","𥵃":"𥱔","𥵊":"𥭉","𥶽":"𫁱","𥸠":"𥮋","𥻦":"𫂿","𥼽":"𥹥","𥽖":"𥺇","𥾯":"𫄝","𥿊":"𦈈","𦀖":"𫄦","𦂅":"𦈒","𦃄":"𦈗","𦃩":"𫄯","𦅇":"𫄪","𦅈":"𫄵","𦆲":"𫟇","𦒀":"𫅥","𦔖":"𫅼","𦘧":"𡳒","𦟼":"𫆝","𦠅":"𫞅","𦡝":"𫆫","𦢈":"𣍨","𦣎":"𦟗","𦧺":"𫇘","𦪙":"䑽","𦪽":"𦨩","𦱌":"𫇪","𦾟":"𦶻","𧎈":"𧌥","𧒯":"𫊹","𧔥":"𧒭","𧕟":"𧉐","𧜗":"䘞","𧜵":"䙊","𧝞":"䘛","𧞫":"𫌋","𧟀":"𧝧","𧡴":"𫌫","𧢄":"𫌬","𧦝":"𫍞","𧦧":"𫍟","𧩕":"𫍭","𧩙":"𬣥","𧩼":"𫍶","𧫝":"𫍺","𧬤":"𫍼","𧭈":"𫍾","𧭹":"𫍐","𧳟":"𧳕","𧵳":"䞌","𧶔":"𧹓","𧶧":"䞎","𧷎":"𪠀","𧸘":"𫎨","𧹈":"𪥠","𧽯":"𫎸","𨂐":"𫏌","𨄣":"𨀱","𨅍":"𨁴","𨆪":"𫏕","𨇁":"𧿈","𨇞":"𨅫","𨇤":"𫏨","𨇰":"𫏞","𨇽":"𫏑","𨈊":"𨂺","𨈌":"𨄄","𨊰":"䢀","𨊸":"䢁","𨊻":"𨐆","𨋢":"䢂","𨌈":"𫐍","𨍰":"𫐔","𨎌":"𫐋","𨎮":"𨐉","𨏠":"𨐇","𨏥":"𨐊","𨞺":"𫟫","𨟊":"𫟬","𨢿":"𨡙","𨣈":"𨡺","𨣞":"𨟳","𨣧":"𨠨","𨤻":"𨤰","𨥛":"𨱀","𨥟":"𫓫","𨦫":"䦀","𨧀":"𬭊","𨧜":"䦁","𨧰":"𫟽","𨧱":"𨱊","𨨏":"𬭛","𨨛":"𫓼","𨨢":"𫓽","𨩰":"𫟾","𨪕":"𫓮","𨫒":"𨱐","𨬖":"𫔏","𨭆":"𬭶","𨭎":"𬭳","𨭖":"𫔑","𨭸":"𫔐","𨮂":"𨱕","𨮳":"𫔒","𨯅":"䥿","𨯟":"𫔓","𨰃":"𫔉","𨰋":"𫓳","𨰥":"𫔕","𨰲":"𫔃","𨲳":"𫔖","𨳑":"𨸁","𨳕":"𨸀","𨴗":"𨸅","𨴹":"𫔲","𨵩":"𨸆","𨵸":"𨸇","𨶀":"𨸉","𨶏":"𨸊","𨶮":"𨸌","𨶲":"𨸋","𨷲":"𨸎","𨼳":"𫔽","𨽏":"𨸘","𩀨":"𫕚","𩅙":"𫕨","𩎖":"𫖑","𩎢":"𩏾","𩏂":"𫖓","𩏠":"𫖖","𩏪":"𩏽","𩏷":"𫃗","𩑔":"𫖪","𩒎":"𫖭","𩓣":"𩖕","𩓥":"𫖵","𩔑":"𫖷","𩔳":"𫖴","𩖰":"𫠇","𩗀":"𩙦","𩗓":"𫗈","𩗴":"𫗉","𩘀":"𩙩","𩘝":"𩙭","𩘹":"𩙨","𩘺":"𩙬","𩙈":"𩙰","𩚛":"𩟿","𩚥":"𩠀","𩚩":"𫗡","𩚵":"𩠁","𩛆":"𩠂","𩛌":"𫗤","𩛡":"𫗨","𩛩":"𩠃","𩜇":"𩠉","𩜦":"𩠆","𩜵":"𩠊","𩝔":"𩠋","𩝽":"𫗳","𩞄":"𩠎","𩞦":"𩠏","𩞯":"䭪","𩟐":"𩠅","𩟗":"𫗚","𩠴":"𩠠","𩡣":"𩡖","𩡺":"𩧦","𩢡":"𩧬","𩢴":"𩧵","𩢸":"𩧳","𩢾":"𩧮","𩣏":"𩧶","𩣑":"䯃","𩣫":"𩧸","𩣵":"𩧻","𩣺":"𩧼","𩤊":"𩧩","𩤙":"𩨆","𩤲":"𩨉","𩤸":"𩨅","𩥄":"𩨋","𩥇":"𩨍","𩥉":"𩧱","𩥑":"𩨌","𩦠":"𫠌","𩧆":"𩨐","𩭙":"𩬣","𩯁":"𫙂","𩯳":"𩯒","𩰀":"𩬤","𩰹":"𩰰","𩳤":"𩲒","𩴵":"𩴌","𩵦":"𫠏","𩵩":"𩽺","𩵹":"𩽻","𩶁":"𫚎","𩶘":"䲞","𩶰":"𩽿","𩶱":"𩽽","𩷰":"𩾄","𩸃":"𩾅","𩸄":"𫚝","𩸡":"𫚟","𩸦":"𩾆","𩻗":"𫚨","𩻬":"𫚩","𩻮":"𫚘","𩼶":"𫚬","𩽇":"𩾎","𩿅":"𫠖","𩿤":"𫛠","𩿪":"𪉄","𪀖":"𫛧","𪀦":"𪉅","𪀾":"𪉋","𪁈":"𪉉","𪁖":"𪉌","𪂆":"𪉎","𪃍":"𪉐","𪃏":"𪉏","𪃒":"𫛻","𪃧":"𫛹","𪄆":"𪉔","𪄕":"𪉒","𪅂":"𫜂","𪆷":"𫛾","𪇳":"𪉕","𪈼":"𱊜","𪉸":"𫜊","𪋿":"𫧮","𪌭":"𫜓","𪍠":"𫜕","𪓰":"𫜟","𪔵":"𪔭","𪘀":"𪚏","𪘯":"𪚐","𪙏":"𫜯","𪟖":"𠛾","𪷓":"𣶭","𫒡":"𫓷","𫜦":"𫜫"};function A(e,t){var i,n,o,r,s="";if(r=t?g:h,"string"!=typeof e)return e;for(i=0;i13312&&o<40899||o>63744&&o<64106)){s+=n;continue}let t=r[n];s+=t||n}return s}var u=function(e){return A(e,!0)},p=function(e){return A(e,!1)};const f=(e,t)=>{void 0!==t.nextSibling?t.parentNode.insertBefore(e,t.nextSibling):t.parentNode.appendChild(e)},m=e=>{for(var t=0;void 0!==e.childNodes[t];t++)if("#text"===e.childNodes[t].nodeName&&0!==e.childNodes[t].textContent.trim().length){var i=e.childNodes[t],n=0;e.childNodes[t].textContent.split(/(\s+|\S+)/).forEach(e=>{if(0===e.length)return;var t=e.trim().length;if(0===t){let t=document.createTextNode(e);return f(t,i),n++,void(i=t)}var o=Math.floor(t/2);0===o&&(o=1);const r=document.createElement("b");if(r.textContent=e.slice(0,o),f(r,i),n++,i=r,1===e.length)return;let s=document.createTextNode(e.slice(o));f(s,i),n++,i=s}),e.removeChild(e.childNodes[t]),t+=n-1}};var w={B:!0,META:!0,LINK:!0,SCRIPT:!0,STYLE:!0};const B=e=>{if(null!==e&&void 0!==e.body)for(var t=e.body.getElementsByTagName("*"),i=0;void 0!==t[i];i++)if(!w[t[i].nodeName]&&1===t[i].nodeType)if("IFRAME"===t[i].nodeName)B(t[i].contentDocument);else{if(0===t[i].childNodes.length)continue;m(t[i])}},y=["color-0","color-1","color-2","color-3","line-0","line-1","line-2","line-3"],b=["#FEF3CD","#FBFACC","#CEFACD","#CDE9FA"],C=["#FF0000","#000080","#0000FF","#2EFF2E"],v=(e,t,i)=>{let n="background",o="#FEF3CD";if("number"==typeof e){if(e>=0&&e-1,i=parseInt(y[e].split("-")[1]);n=t?"background":"underline",o=t?b[i]:C[i]}}else n=e.split("-")[0],o=e.split("-")[1];const r="background"===n?E(o,.8):o;switch(n){case"background":return t?`background: ${r}; mix-blend-mode: multiply;`:`background: ${r};`;case"underline":return t?i?`border-right: 2px solid ${r};`:`border-bottom: 2px solid ${r};`:`text-decoration: underline; text-decoration-color: ${r}; text-decoration-thickness: 2px; text-decoration-skip-ink: none;`;case"strikethrough":return t?`background: linear-gradient(transparent calc(50% - 1px), ${r} calc(50% - 1px), ${r} calc(50% + 1px), transparent calc(50% + 1px));`:i?`background: linear-gradient(to right, transparent calc(50% - 1px), ${r} calc(50% - 1px), ${r} calc(50% + 1px), transparent calc(50% + 1px));`:`text-decoration: line-through; text-decoration-color: ${r}; text-decoration-thickness: 2px; text-decoration-skip-ink: none;`;case"wavy":const e=o.replace("#","%23");if(t){return`background-image: ${`url("data:image/svg+xml,%3Csvg xmlns='http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg' width='6' height='3'%3E%3Cpath d='M0 2 Q1.5 0 3 2 Q4.5 4 6 2' fill='none' stroke='${e}' stroke-width='1.5'%2F%3E%3C%2Fsvg%3E")`}; background-repeat: repeat-x; background-position: bottom; background-size: 6px 3px;`}if(i){return`background-image: ${`url("data:image/svg+xml,%3Csvg xmlns='http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg' width='3' height='6'%3E%3Cpath d='M2 0 Q0 1.5 2 3 Q4 4.5 2 6' fill='none' stroke='${e}' stroke-width='1.5'%2F%3E%3C%2Fsvg%3E")`}; background-repeat: repeat-y; background-position: right; background-size: 3px 6px;`}return`text-decoration-line: underline; text-decoration-style: wavy; text-decoration-color: ${r}; text-decoration-thickness: 2px; text-decoration-skip-ink: none;`;default:return`background: ${r};`}},E=(e,t)=>{const i=e.replace("#",""),n=3===i.length?i.split("").map(e=>e+e).join(""):i;if(6!==n.length)return e;return`rgba(${parseInt(n.slice(0,2),16)}, ${parseInt(n.slice(2,4),16)}, ${parseInt(n.slice(4,6),16)}, ${t})`},x=()=>"undefined"!=typeof window&&"object"==typeof window.process&&"renderer"===window.process.type||(!("undefined"==typeof process||"object"!=typeof process.versions||!process.versions.electron)||"object"==typeof navigator&&"string"==typeof navigator.userAgent&&navigator.userAgent.indexOf("Electron")>=0),I=e=>Array.from(e.querySelectorAll("h1,h2,h3,h4,h5,h6,p,div,ul,dl,ol,li,dt,dd,pre,blockquote,address,kookitmarker")),D=e=>{var t=e.children;let i=!1;for(var n=/^(address|kookitmarker|section|blockquote|body|center|dir|div|dl|fieldset|form|h[1-6]|hr|isindex|menu|noframes|noscript|ol|p|pre|table|ul|dd|dt|frameset|li|tbody|td|tfoot|th|thead|tr|html)$/i,o=0;o(e||"").trim());return 0===t.length?"":t.map(([e,t])=>`${e}: ${t}`).join("; ")}(Object.assign(Object.assign({},i),n))}function S(e,t){if(!e||!t)return null;const i=Q(e)[t.toLowerCase()];if(!i)return null;const n=i.replace(/\s*!important\s*$/i,"").trim().match(/^(-?\d+(?:\.\d+)?)(?:px)?$/i);if(!n)return null;const o=parseFloat(n[1]);return Number.isFinite(o)&&o>0?o:null}const M=e=>{const t=(e.match(/[\u4e00-\u9fff\u3000-\u303f\uf900-\ufaff]/g)||[]).length,i=(e.match(/[\u3040-\u309f\u30a0-\u30ff]/g)||[]).length,n=(e.match(/[\uac00-\ud7af\u1100-\u11ff]/g)||[]).length;return(t+i+n)/e.length<=.3?"en":t>=i&&t>=n?"zh":i>=t&&i>=n?"ja":"ko"},F=["kookit-note","kookit-note-icon","kookit-word-def","kookit-note-tooltip","kookit-word-tooltip","kookit-text-rule-replace","kookit-text-rule-delete","kookit-text-rule-highlight","kookit-translation-host"],L=(e,t)=>e.replace(/\$(\$|\d+)/g,(e,i)=>{var n;if("$"===i)return"$";const o=parseInt(i,10);return null!==(n=t[o])&&void 0!==n?n:""}),T=(e,t)=>{const i=e.createTreeWalker(t,NodeFilter.SHOW_TEXT,{acceptNode:e=>(e=>{let t=e.parentElement;for(;t;){const e=t.tagName;if("SCRIPT"===e||"STYLE"===e||"RUBY"===e)return!0;for(let e=0;e{var o;const r=t.textContent||"";if(i.lastIndex=0,!i.test(r))return;i.lastIndex=0;const s=e.createDocumentFragment();let a,l=0;for(;null!==(a=i.exec(r));){const t=r.slice(l,a.index);t&&s.appendChild(e.createTextNode(t));const o=a[0],c=e.createElement("span");if("replace"===n.type){c.className="kookit-text-rule-replace";const e="regex"===n.matchType?L(n.replacement||"",a):n.replacement||"";c.setAttribute("data-kookit-replacement",e)}else if("delete"===n.type)c.className="kookit-text-rule-delete";else if("highlight"===n.type&&(c.className="kookit-text-rule-highlight",n.highlightStyle&&n.highlightColor)){const e=`${n.highlightStyle}-${n.highlightColor}`,t=v(e,!1,!1);c.setAttribute("style",t)}c.appendChild(e.createTextNode(o)),s.appendChild(c),l=a.index+o.length,0===o.length&&i.lastIndex++}if(0===l)return;const c=r.slice(l);c&&s.appendChild(e.createTextNode(c)),null===(o=t.parentNode)||void 0===o||o.replaceChild(s,t)},H=(e,t)=>{const i=e.querySelectorAll("h1,h2,h3,h4,h5,h6,p,div,ul,dl,ol,pre,li,dt,dd,blockquote,address,kookitmarker"),n="regex"===t.matchType?new RegExp(t.pattern,"g"):new RegExp(t.pattern.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"g");for(let o=0;o"vertical"===window.textOrientation,O=e=>e?parseFloat(e+""):0,G=e=>{if(e){return e.getBoundingClientRect().left}return 0},N=e=>{if(e){return e.getBoundingClientRect().top}return 0},U=(e,t)=>d(void 0,void 0,void 0,function*(){let i="";if(e&&e.load){let t=yield e.load(),n=yield fetch(t),o=yield n.blob();i=yield o.text()}return t||(i=yield z(i,e)),i}),W=e=>Array.from(e.querySelectorAll("img, image")),P=e=>e.getAttribute("src")||e.getAttribute("href")||e.getAttribute("xlink:href")||null,j=e=>{const t=[],i=e.querySelectorAll("img, svg, image");for(const e of i){const i=e.tagName.toLowerCase();if("img"===i){const i=P(e);i&&t.push(i)}else if("svg"===i)e.querySelectorAll("image").forEach(i=>{if(i.closest("svg")!==e)return;const n=P(i);n&&t.push(n)});else if("image"===i&&!e.closest("svg")){const i=P(e);i&&t.push(i)}}return t},z=(e,t)=>d(void 0,void 0,void 0,function*(){var i;let n=(new DOMParser).parseFromString(e,"text/html");if(t&&t.loadAsset){let e=t.loadAsset,i=W(n);for(let t=0;t!D(e));for(let t of e)if(t.textContent&&(null===(i=t.textContent)||void 0===i?void 0:i.trim())){let e=t.getAttribute("id")||"kookit-trans-"+Math.random().toString(36).substr(2,9);window.transMap[t.textContent]&&(e=window.transMap[t.textContent].id),t.setAttribute("id",e),t.classList.add("kookit-translation-host"),t.classList.add("kookit-translation-loading"),t.setAttribute("data-kookit-translation","");let i=t.textContent||"";window.transMap[i]={id:e}}}let o=W(n);if(o.length>0){for(let e=0;e{var n,o=document.createElement("iframe");o.style.width=i?100*(i-.4)+"%":"100%",o.style.margin="0",o.style.border="0",o.style.padding="0",o.style.minHeight="calc(100% - 2px)",o.style.fontSize="100%",o.style.font="inherit",o.scrolling="no",o.tabIndex=0,o.id="kookit-iframe",o.style.verticalAlign="baseline","yes"!==t&&o.setAttribute("sandbox","allow-same-origin"),e.innerHTML="",e.appendChild(o);const r=o.contentDocument||(null===(n=o.contentWindow)||void 0===n?void 0:n.document);r&&r.documentElement&&(r.documentElement.lang="en"),i&&(e.scrollLeft=e.scrollWidth/2-e.clientWidth/2)},q=(e,t,i)=>{if(Y()&&"scroll"!==e){let n=Math.floor(i.clientHeight/12),o=n%2==0?n:n-1;return{totalPage:"single"===e?Math.round(parseFloat(t.body.scrollHeight/(t.body.clientHeight+o)+"")):2*Math.round(parseFloat(t.body.scrollHeight/(t.body.clientHeight+o)+"")),currentPage:Math.round(parseFloat(O(t.body.scrollTop)/(t.body.clientHeight+o)+""))+1}}let n=Math.floor(i.clientWidth/12),o=n%2==0?n:n-1;return{totalPage:"scroll"===e?Math.floor(i.scrollHeight/(i.clientHeight-50)):"single"===e?Math.round(parseFloat(t.body.scrollWidth/(t.body.clientWidth+o)+"")):2*Math.round(parseFloat(t.body.scrollWidth/(t.body.clientWidth+o)+"")),currentPage:"scroll"===e?Math.floor(i.scrollTop/(i.clientHeight-50))+1:Math.round(parseFloat(O(t.body.scrollLeft)/(t.body.clientWidth+o)+""))+1}},J=e=>d(void 0,void 0,void 0,function*(){const t=`${x()?".":""}/lib/highlight-js/${e}`;return yield(yield fetch(t)).text()}),V=e=>{const t=document.createElement("script");t.textContent=e,document.head.appendChild(t)},X=(e,t)=>d(void 0,void 0,void 0,function*(){if(yield(e=>d(void 0,void 0,void 0,function*(){window.hljs||V(yield J("highlight.min.js")),window.kookitHljsLanguage!==e&&(V(yield J(`languages/${e}.min.js`)),window.kookitHljsLanguage=e)}))(t),!e.head.querySelector("#kookit-code-highlighter-style")){const t=document.createElement("style");t.id="kookit-code-highlighter-style",t.textContent=yield J("default.min.css"),e.head.appendChild(t)}const i="language-"+t;(e=>Array.from(e.querySelectorAll("code")))(e).forEach(e=>{e.classList.add(i),delete e.dataset.highlighted,window.hljs.highlightElement(e)})}),Z=e=>d(void 0,void 0,void 0,function*(){if(window.bookLayout){const t=()=>`${x()?".":""}/lib/${window.bookLayout}-css/${window.bookLayout}.min.css`,i=e=>d(void 0,void 0,void 0,function*(){return yield(yield fetch(e)).text()}),n=()=>d(void 0,void 0,void 0,function*(){return yield i(t())}),o=document.createElement("style");o.id="kookit-book-layout-style",o.textContent=yield n(),e.head.appendChild(o),e.body.classList.contains(window.bookLayout)||e.body.classList.add(window.bookLayout)}"Simplified To Traditional"===window.convertChinese?e.querySelectorAll("h1,h2,h3,h4,h5,h6,p,div,ul,dl,ol,pre,li,dt,dd,blockquote,address,kookitmarker").forEach(e=>{e.innerHTML=e.innerHTML.split("").map(e=>u(e)).join("")}):"Traditional To Simplified"===window.convertChinese&&e.querySelectorAll("h1,h2,h3,h4,h5,h6,p,div,ul,dl,ol,pre,li,dt,dd,blockquote,address,kookitmarker").forEach(e=>{e.innerHTML=e.innerHTML.split("").map(e=>p(e)).join("")}),"yes"===window.isIndent&&e.querySelectorAll("h1,h2,h3,h4,h5,h6,p,div,ul,dl,ol,pre,li,dt,dd,blockquote,address").forEach(e=>{for(let t of e.childNodes){if(t.nodeType===Node.TEXT_NODE){const i=(t.nodeValue||"").charAt(0);i&&""===i.trim()&&" "!==i&&"\n"!==i&&"\t"!==i&&e.setAttribute("style",(e.getAttribute("style")||"")+"text-indent: 0em !important;");break}if(t.nodeType===Node.ELEMENT_NODE&&"img"===t.tagName.toLowerCase()){e.setAttribute("style",(e.getAttribute("style")||"")+"text-indent: 0em !important;");break}}}),"yes"===window.isBionic&&B(e),window.codeHighlight&&(yield X(e,window.codeHighlight)),window.textRules&&window.textRules.length>0&&((e,t)=>{(e=>{const t=e.querySelectorAll(".kookit-text-rule-replace, .kookit-text-rule-delete, .kookit-text-rule-highlight");for(let e=0;ed(void 0,void 0,void 0,function*(){yield Z(e)}),_=(e,t,i,n)=>d(void 0,void 0,void 0,function*(){var o,r;let s=Math.floor(e.clientWidth/12),a=s%2==0?s:s-1,l="double"===t?2:1,c=(e.clientWidth-a)/l,g=Array.from(n.querySelectorAll("img, image"));yield Promise.all(g.map(e=>d(void 0,void 0,void 0,function*(){if("image"===e.tagName&&!e._naturalWidth){let i=yield(t=e.getAttribute("xlink:href"),d(void 0,void 0,void 0,function*(){const e=new Image;e.src=t;try{yield e.decode()}catch(e){console.error(e)}return e}));e._naturalWidth=i.naturalWidth,e._naturalHeight=i.naturalHeight}var t})));const h=e.clientWidth,A=e.clientHeight,u=n.body.clientHeight,p=e=>{if(!e)return 0;const t=getComputedStyle(e);return Math.min(e.clientWidth,c)-parseFloat(t.paddingLeft)-parseFloat(t.paddingRight)},f=e=>{if(!e)return 0;const t=getComputedStyle(e);return Math.min(e.clientHeight,A)-parseFloat(t.paddingTop)-parseFloat(t.paddingBottom)},m=g.map(e=>{const t=e.parentElement,i=null==t?void 0:t.parentElement;let n=e.getAttribute("width"),o=e.getAttribute("height");return!n&&e.getAttribute("style")&&(n=S(e.getAttribute("style"),"width")),!o&&e.getAttribute("style")&&(o=S(e.getAttribute("style"),"height")),n||(n="image"===e.tagName?e._naturalWidth:e.naturalWidth),o||(o="image"===e.tagName?e._naturalHeight:e.naturalHeight),{item:e,width:n||0,height:o||0,parentOffsetWidth:(null==t?void 0:t.offsetWidth)||0,parentClientWidth:p(t),parentClientHeight:f(t),grandClientWidth:p(i),grandClientHeight:f(i),grandTagName:(null==i?void 0:i.tagName)||"",existingStyle:e.getAttribute("style")||""}}).map(e=>{var n;const{item:o,width:r,height:s,parentOffsetWidth:a,parentClientWidth:l,parentClientHeight:d,grandClientWidth:g,grandClientHeight:p,grandTagName:f}=e;let m=0,w=0,B=!1,y=!1;if(i.startsWith("CB")&&"scroll"===t)w=a;else if(i.startsWith("CB")&&"single"===t)m=A,w=h;else if(l&&d&&r&&s){s/r>d/l?(m=d,w=parseInt(m*r/s+"")):(w=l,m=parseInt(w*s/r+"")),m>u&&"scroll"!==t&&(w=parseInt(w*(u/m)+""),m=u),B=!0}else l>0?(w=l,m=d,B=!0):"BODY"!==f&&g>0?(w=g,m=p,y=!0):(w=h,m=A);w=w?Math.min("scroll"===t||"single"===t?h:c,w):"scroll"===t||"single"===t?h:c,r&&s&&(r>s||m/w>s/r?m=w*(s/r):w=m*(r/s)),"scroll"!==t&&w&&m&&m>A&&(w*=A/m,m=A);const b=[];return(w||m)&&b.push(`max-width: ${w>0?w+"px":""};max-height:${m>0?m+"px":""}; margin: 0 auto; min-width: 0px; min-height: 0px;`),i.startsWith("CB")&&"scroll"===t&&b.push("margin-left: 0px; width: 100%;"),{item:o,styles:b,isSvgImage:"image"===o.tagName,maxWidth:w,maxHeight:m,parentItem:o.parentElement,grandItem:null===(n=o.parentElement)||void 0===n?void 0:n.parentElement,setParentIndent:B,setGrandIndent:y}});for(let e=0;e0&&e%20==0&&(yield new Promise(e=>setTimeout(e,0)));const n=m[e],{item:s,styles:a,isSvgImage:l,maxWidth:c,maxHeight:d}=n;if(n.setParentIndent&&n.parentItem&&(n.parentItem.style.textIndent="0px"),n.setGrandIndent&&n.grandItem&&(n.grandItem.style.textIndent="0px"),a.length>0){const e=s.getAttribute("style")||"";s.setAttribute("style",e+";"+a.join(";"))}if(l&&(null===(o=s.parentElement)||void 0===o||o.setAttribute("width",c),null===(r=s.parentElement)||void 0===r||r.setAttribute("height",d)),i.startsWith("CB")&&"scroll"!==t){const e=s.getBoundingClientRect().width,t=s.getAttribute("style")||"";s.setAttribute("style",t+`;margin-left: calc(50% - ${e/2}px);`)}}}),ee=(e,t,i)=>{let n=i.createElement("style");n.id="default-style",n.textContent="body{margin: 0px}",i.head.appendChild(n);const o=Y();if("scroll"===t)return;let r="double"===t?2:1;if(o){let t=Math.floor(e.clientHeight/12),n=t%2==0?t:t-1;i.documentElement.setAttribute("style",`writing-mode: vertical-rl; text-orientation: mixed; height: ${e.clientHeight+"px"};width: 100%;overflow-y: hidden;overflow-x: hidden;padding-left: 0px;padding-right: 0px;margin: 0px;box-sizing: border-box;touch-action:none; overscroll-behavior: none;max-width: inherit;column-fill: auto;column-gap: ${n}px; column-width: ${(e.clientHeight-n)/r}px;`),i.body.setAttribute("style","margin: 0px !important; padding: 0px !important;")}else{let t=Math.floor(e.clientWidth/12),n=t%2==0?t:t-1;i.documentElement.setAttribute("style",`width: ${e.clientWidth+"px"};height: 100%;overflow-y: hidden;overflow-X: hidden;padding-left: 0px;padding-right: 0px;margin: 0px;box-sizing: border-box;touch-action:none; overscroll-behavior: none;max-width: inherit;column-fill: auto;column-gap: ${n}px; column-width: ${(e.clientWidth-n)/r}px;`),i.body.setAttribute("style","margin: 0px !important; padding: 0px !important;")}};function te(e){const t=e.getSelection();if(!t)return null;if(t.rangeCount>0){return t.getRangeAt(0).startContainer.parentElement}return null}const ie=e=>{var t;if(!e||!e.body)return;const i=new Set(["CODE","PRE","SCRIPT","STYLE","KBD","SAMP","A"]);function n(e){const t=e.length,i=[];for(let e=2;e=3&&(e+1)%6==0&&i.push(e+1);return i}const o=/[A-Za-zÀ-ɏ]{9,}/g,r=e.createTreeWalker(e.body,NodeFilter.SHOW_TEXT,{acceptNode(e){var t,n;const o=e.parentElement;return o?i.has(null===(t=o.tagName)||void 0===t?void 0:t.toUpperCase())||(null===(n=o.classList)||void 0===n?void 0:n.contains("kookit-hyphen"))?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}}),s=[];let a;for(;a=r.nextNode();)s.push(a);for(const i of s){const r=i.textContent||"";if(o.lastIndex=0,!o.test(r))continue;o.lastIndex=0;const s=[];let a;for(;null!==(a=o.exec(r));){const e=n(a[0]);e.length&&s.push({start:a.index,end:a.index+a[0].length,breaks:e})}if(!s.length)continue;const l=i.parentNode;if(!l)continue;const c=[];for(const e of s)for(const t of e.breaks)c.push(e.start+t);c.sort((e,t)=>e-t);let d=i;for(const i of c){const n=(null===(t=d.textContent)||void 0===t?void 0:t.length)||0;if(i<=0||i>=n)continue;const o=d.splitText(i),r=e.createElement("span");r.className="kookit-hyphen",l.insertBefore(r,o),d=o}}},ne=e=>"string"==typeof e||e instanceof String;class oe{constructor(e){this.book=e,this.chapterList=[],this.flattenChapters=[],this.chapterDocList=[]}unescapeHtml(e){if(!e)return"";return(new DOMParser).parseFromString(e,"text/html").documentElement.textContent||""}getChapter(e){return d(this,void 0,void 0,function*(){return this.chapterList=e?yield Promise.all(e.map((e,t)=>d(this,void 0,void 0,function*(){let i=t;try{if(e.href){const t=yield this.book.resolveHrefIndex(e.href);t&&(i=t.index)}}catch(e){console.error(e)}return{label:this.unescapeHtml(e.label)?this.unescapeHtml(e.label):i+"",href:e.href?e.href:"title"+i,index:i,subitems:e.subitems?yield this.getChapter(e.subitems):[]}}))):yield Promise.all(this.book.sections.map((e,t)=>d(this,void 0,void 0,function*(){return{label:e&&e.label&&this.unescapeHtml(e.label)?this.unescapeHtml(e.label):t+"",href:e&&e.href?e.href:"title"+t,index:t,subitems:e&&e.subitems?yield this.getChapter(e.subitems):[]}}))),this.flattenChapters=this.flatChapter(this.chapterList),this.chapterList})}getChapterDoc(){return d(this,void 0,void 0,function*(){const e=this.flattenChapters.map(e=>e.index);return this.book.sections.map((t,i)=>e.indexOf(i)>-1?{label:this.unescapeHtml(this.flattenChapters[e.indexOf(i)].label),href:this.flattenChapters[e.indexOf(i)].href,text:t}:{label:"",href:"",text:t})})}flatChapter(e){let t=[];for(let i=0;i0?(t.push(e[i]),t=t.concat(this.flatChapter(e[i].subitems))):t.push(e[i]);return t}getMetadata(){return new Promise((e,t)=>d(this,void 0,void 0,function*(){const i=this.book.metadata;let n=i.author&&i.author[0]&&i.author[0].name&&ne(i.author[0].name)?i.author[0].name:i.author&&i.author[0]&&ne(i.author[0])?i.author[0]:i.author&&ne(i.author)?i.author:"";try{const t=yield this.book.getCover();var o=new FileReader;o.readAsDataURL(t),o.onloadend=()=>{e(Object.assign(Object.assign({},i),{name:i.title,author:n,description:i.description,publisher:i.publisher,cover:o.result}))}}catch(o){console.error(o);try{e(Object.assign(Object.assign({},i),{name:i.title,author:n,description:i.description,publisher:i.publisher,cover:""}))}catch(e){console.error(e),t(e)}}}))}}const re=(e,t)=>[-1,...t,e.length].reduce(({xs:t,a:i},n)=>({xs:t?.concat([e.slice(i+1,n)])??[],a:n}),{}).xs,se=/\d/,ae=/^epubcfi\((.*)\)$/,le=e=>e.replace(/[\^[\](),;=]/g,"^$&"),ce=(e,t)=>{return i=([e])=>e===t,e.map((e,t,n)=>i(e,t,n)?t:null).filter(e=>null!=e);var i},de=e=>{const t=[];let i;for(const[n,o]of e){if("/"===n)t.push({index:o});else{const e=t[t.length-1];if(":"===n)e.offset=o;else if("~"===n)e.temporal=o;else if("@"===n)e.spatial=(e.spatial??[]).concat(o);else if(";s"===n)e.side=o;else if("["===n){if("/"!==i||!o){e.text=(e.text??[]).concat(o);continue}e.id=o}}i=n}return t},ge=e=>re(e,ce(e,"!")).map(de),he=e=>{const t=(e=>{const t=[];let i,n,o="";const r=e=>(t.push(e),i=null,o=""),s=e=>(o+=e,n=!1);for(const t of Array.from(e.trim()).concat(""))if("^"!==t||n){if("!"===i)r(["!"]);else if(","===i)r([","]);else if("/"===i||":"===i){if(se.test(t)){s(t);continue}r([i,parseInt(o)])}else if("~"===i){if(se.test(t)||"."===t){s(t);continue}r(["~",parseFloat(o)])}else if("@"===i){if(":"===t){r(["@",parseFloat(o)]),i="@";continue}if(se.test(t)||"."===t){s(t);continue}r(["@",parseFloat(o)])}else{if("["===i){";"!==t||n?","!==t||n?"]"!==t||n?s(t):r(["[",o]):(r(["[",o]),i="["):(r(["[",o]),i=";");continue}if(i?.startsWith(";")){"="!==t||n?";"!==t||n?"]"!==t||n?s(t):r([i,o]):(r([i,o]),i=";"):(i=`;${o}`,o="");continue}}"/"!==t&&":"!==t&&"~"!==t&&"@"!==t&&"["!==t&&"!"!==t&&","!==t||(i=t)}else n=!0;return t})((i=e,i.match(ae)?.[1]??i));var i;const n=ce(t,",");if(!n.length)return ge(t);const[o,r,s]=re(t,n).map(ge);return{parent:o,start:r,end:s}},Ae=({index:e,id:t,offset:i,temporal:n,spatial:o,text:r,side:s})=>{const a=s?`;s=${s}`:"";return`/${e}`+(t?`[${le(t)}${a}]`:"")+(null!=i&&e%2?`:${i}`:"")+(n?`~${n}`:"")+(o?`@${o.join(":")}`:"")+(r||!t&&s?"["+(r?.map(le)?.join(",")??"")+a+"]":"")},ue=e=>e.parent?[e.parent,e.start,e.end].map(ue).join(","):e.map(e=>e.map(Ae).join("")).join("!"),pe=e=>{return t=ue(e),ae.test(t)?t:`epubcfi(${t})`;var t},fe=(e,t)=>{return"string"==typeof e?pe(fe(he(e),t)):e.parent?(i=e.parent,n=e[t?"end":"start"],i.slice(0,-1).concat([i[i.length-1].concat(n[0])]).concat(n.slice(1))):e;var i,n},me=({nodeType:e})=>3===e||4===e,we=({nodeType:e})=>1===e,Be=e=>{const t=Array.from(e.childNodes).filter(e=>me(e)||we(e)).reduce((e,t)=>{let i=e[e.length-1];return i?me(t)?Array.isArray(i)?i.push(t):me(i)?e[e.length-1]=[i,t]:e.push(t):we(i)?e.push(null,t):e.push(t):e.push(t),e},[]);return we(t[0])&&t.unshift("first"),we(t[t.length-1])&&t.push("last"),t.unshift("before"),t.push("after"),t},ye=(e,t)=>e?Be(e)[t]:null,be=(e,t)=>{const{id:i}=t[t.length-1];if(i){const t=e.ownerDocument.getElementById(i);if(t)return{node:t,offset:0}}for(const{index:i}of t){const t=ye(e,i);if("first"===t)return{node:e.firstChild??e};if("last"===t)return{node:e.lastChild??e};if("before"===t)return{node:e,before:!0};if("after"===t)return{node:e,after:!0};e=t}const{offset:n}=t[t.length-1];if(!Array.isArray(e))return{node:e,offset:n};let o=0;for(const t of e){const{length:e}=t.nodeValue;if(o+e>=n)return{node:t,offset:n-o};o+=e}},Ce=(e,t)=>{const{parentNode:i,id:n}=e,o=Be(i),r=o.findIndex(t=>Array.isArray(t)?t.some(t=>t===e):t===e),s=o[r];if(Array.isArray(s)){let i=0;for(const n of s){if(n===e){i+=t;break}i+=n.nodeValue.length}t=i}const a={id:n,index:r,offset:t};return i!==e.ownerDocument.documentElement?Ce(i).concat(a):[a]},ve=(e,t)=>be(e.documentElement,fe(t)).node,Ee="urn:oasis:names:tc:opendocument:xmlns:container",xe="http://www.w3.org/1999/xhtml",Ie="http://www.idpf.org/2007/opf",De="http://www.idpf.org/2007/ops",Qe="http://purl.org/dc/elements/1.1/",ke="http://www.w3.org/2001/04/xmlenc#",Se="http://www.daisy.org/z3986/2005/ncx/",Me="http://www.w3.org/1999/xlink",Fe="http://www.w3.org/ns/SMIL",Le={XML:"application/xml",NCX:"application/x-dtbncx+xml",XHTML:"application/xhtml+xml",HTML:"text/html",CSS:"text/css",SVG:"image/svg+xml",JS:/\/(x-)?(javascript|ecmascript)/},Te=e=>e.toLowerCase().replace(/[-:](.)/g,(e,t)=>t.toUpperCase()),Re=(e,t,i)=>i?i=>i.getAttribute(e)?.split(/\s/)?.includes(t):"function"==typeof t?i=>t(i.getAttribute(e)):i=>i.getAttribute(e)===t,He=(...e)=>t=>t?Object.fromEntries(e.map(e=>[Te(e),t.getAttribute(e)])):null,Ye=e=>{return t=e?.textContent,t?t.trim().replace(/\s{2,}/g," "):"";var t},Oe=(e,t)=>{const i=e.lookupNamespaceURI(null)===t||e.lookupPrefix(t),n=i?(e,i)=>e=>e.namespaceURI===t&&e.localName===i:(e,t)=>e=>e.localName===t;return{$:(e,t)=>[...e.children].find(n(e,t)),$$:(e,t)=>[...e.children].filter(n(e,t)),$$$:i?(e,i)=>[...e.getElementsByTagNameNS(t,i)]:(e,i)=>[...e.getElementsByTagName(t,i)]}},Ge=(e,t)=>{try{e=e.replace(/%2c/gi,",").replace(/%3a/gi,":");const i="whatever://whatever/";return decodeURI(new URL(e,i+t).href.replace(i,""))}catch(t){return console.warn(t),e}},Ne=e=>/^(?!blob)\w+:/i.test(e),Ue=async(e,t,i)=>{const n=[];e.replace(t,(...e)=>(n.push(e),null));const o=[];for(const e of n)o.push(await i(...e));return e.replace(t,()=>o.shift())},We=e=>e.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),Pe={attrs:["dir","xml:lang"]},je={name:"alternate-script",many:!0,...Pe,props:["file-as"]},ze={many:!0,...Pe,props:[{name:"role",many:!0,attrs:["scheme"]},"file-as",je]},Ke=[{name:"title",many:!0,...Pe,props:["title-type","display-seq","file-as",je]},{name:"identifier",many:!0,props:[{name:"identifier-type",attrs:["scheme"]}]},{name:"language",many:!0},{name:"creator",...ze},{name:"contributor",...ze},{name:"publisher",...Pe,props:["file-as",je]},{name:"description",...Pe,props:[je]},{name:"rights",...Pe,props:[je]},{name:"date"},{name:"dcterms:modified",type:"meta"},{name:"subject",many:!0,...Pe,props:["term","authority",je]},{name:"belongs-to-collection",type:"meta",many:!0,...Pe,props:["collection-type","group-position","dcterms:identifier","file-as",je,{name:"belongs-to-collection",recursive:!0}]}],qe=(e,t=e=>e)=>{const{$:i,$$:n,$$$:o}=Oe(e,xe),r=e=>n=>{const o=i(n,"a")??i(n,"span"),r=i(n,"ol"),a=(e=>e?decodeURI(t(e)):null)(o?.getAttribute("href")),l={label:Ye(o)||o?.getAttribute("title"),href:a,subitems:s(r)};return e&&(l.type=o?.getAttributeNS(De,"type")?.split(/\s/)),l},s=(e,t)=>e?n(e,"li").map(r(t)):null,a=(e,t)=>s(i(e,"ol"),t),l=o(e,"nav");let c=null,d=null,g=null,h=[];for(const e of l){const t=e.getAttributeNS(De,"type")?.split(/\s/)??[];t.includes("toc")?c??=a(e):t.includes("page-list")?d??=a(e):t.includes("landmarks")?g??=a(e,!0):h.push({label:Ye(e.firstElementChild),type:t,list:a(e)})}return{toc:c,pageList:d,landmarks:g,others:h}},Je=(e,t=e=>e)=>{const{$:i,$$:n}=Oe(e,Se),o=e=>{const r=i(e,"navLabel"),s=i(e,"content"),a=Ye(r),l=(e=>e?decodeURI(t(e)):null)(s.getAttribute("src"));if("navPoint"===e.localName){const t=n(e,"navPoint");return{label:a,href:l,subitems:t.length?t.map(o):null}}return{label:a,href:l}},r=(e,t)=>n(e,t).map(o),s=(t,n)=>{const o=i(e.documentElement,t);return o?r(o,n):null};return{toc:s("navMap","navPoint"),pageList:s("pageList","pageTarget"),others:n(e.documentElement,"navList").map(e=>({label:Ye(i(e,"navLabel")),list:r(e,"navTarget")}))}},Ve=e=>{if(!e)return;const t=e.split(":").map(e=>parseFloat(e));if(3===t.length){const[e,i,n]=t;return 60*e*60+60*i+n}if(2===t.length){const[e,i]=t;return 60*e+i}const[i,n]=e.split(/(?=[^\d.])/);return parseFloat(i)*("h"===n?3600:"min"===n?60:"ms"===n?.001:1)},Xe=/([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})/,Ze=e=>Ye(e.getElementById(e.documentElement.getAttribute("unique-identifier"))??e.getElementsByTagNameNS(Qe,"identifier")[0]),$e=async(e,t,i)=>{const n=new Uint8Array(await i.slice(0,t).arrayBuffer());t=Math.min(t,n.length);for(var o=0;o{const t=(new TextEncoder).encode(e),i=await globalThis.crypto.subtle.digest("SHA-1",t);return new Uint8Array(i)},et=(e=_e)=>({"http://www.idpf.org/2008/embedding":{key:t=>e(Ze(t).replaceAll(/[\u0020\u0009\u000d\u000a]/g,"")),decode:(e,t)=>$e(e,1040,t)},"http://ns.adobe.com/pdf/enc#RC":{key:e=>{const t=(e=>{for(const t of e.getElementsByTagNameNS(Qe,"identifier")){const[e]=Ye(t).split(":").slice(-1);if(Xe.test(e))return e}return""})(e).replaceAll("-","");return Uint8Array.from({length:16},(e,i)=>parseInt(t.slice(2*i,2*i+2),16))},decode:(e,t)=>$e(e,1024,t)}});class tt{#e=new Map;#t=new Map;#i;constructor(e){this.#i=e}async init(e,t){if(!e)return;const i=Array.from(e.getElementsByTagNameNS(ke,"EncryptedData"),e=>({algorithm:e.getElementsByTagNameNS(ke,"EncryptionMethod")[0]?.getAttribute("Algorithm"),uri:e.getElementsByTagNameNS(ke,"CipherReference")[0]?.getAttribute("URI")}));for(const{algorithm:e,uri:n}of i){if(!this.#t.has(e)){const i=this.#i[e];if(!i){console.warn("Unknown encryption algorithm");continue}const n=await i.key(t);this.#t.set(e,e=>i.decode(n,e))}this.#e.set(n,e)}}getDecoder(e){return this.#t.get(this.#e.get(e))??(e=>e)}}class it{constructor({opf:e,resolveHref:t}){this.opf=e;const{$:i,$$:n,$$$:o}=Oe(e,Ie),r=i(e.documentElement,"manifest"),s=i(e.documentElement,"spine"),a=n(s,"itemref");this.manifest=n(r,"item").map(He("href","id","media-type","properties","media-overlay")).map(e=>(e.href=t(e.href),e.properties=e.properties?.split(/\s/),e)),0===this.manifest.length&&(this.manifest=Array.from(r.children).map(e=>{const i=He("href","id","media-type","properties","media-overlay")(e);return i.href=t(i.href),i.properties=i.properties?.split(/\s/),i})),this.spine=a.map(He("idref","id","linear","properties")).map(e=>(e.properties=e.properties?.split(/\s/),e)),this.pageProgressionDirection=s.getAttribute("page-progression-direction"),this.navPath=this.getItemByProperty("nav")?.href,this.ncxPath=(this.getItemByID(s.getAttribute("toc"))??this.manifest.find(e=>e.mediaType===Le.NCX))?.href;const l=i(e.documentElement,"guide");l&&(this.guide=n(l,"reference").map(He("type","title","href")).map(({type:e,title:i,href:n})=>({label:i,type:e.split(/\s/),href:t(n)}))),this.cover=this.getItemByProperty("cover-image")??this.getItemByID("cover-image")??this.getItemByID(o(e,"meta").find(Re("name","cover"))?.getAttribute("content"))??this.getItemByHref(o(e,"meta").find(Re("name","cover"))?.getAttribute("content"))??this.getItemByID("cover.jpg")??this.getItemByID("cover.png")??this.getItemByID("cover.jpeg")??this.getItemByHref(this.guide?.find(e=>e.type.includes("cover")&&!e.href.includes("html")&&!e.href.includes("xhtml")&&!e.href.includes("xml"))?.href)??this.getItemByID("cover"),this.cover&&this.cover.href&&(this.cover.href.includes("xml")||this.cover.href.includes("xhtml")||this.cover.href.includes("html"))&&(this.cover=this.manifest.find(e=>e.href.toLowerCase().includes("cover")&&(e.href.includes("png")||e.href.includes("jpg")||e.href.includes("jpeg")))),this.cover||(this.cover=this.manifest.find(e=>e.href.toLowerCase().includes("cover")&&(e.mediaType?.startsWith("image/")||e.href.toLowerCase().includes("png")||e.href.toLowerCase().includes("jpg")||e.href.toLowerCase().includes("svg")||e.href.toLowerCase().includes("jpeg")))),this.cover||(this.cover=this.manifest.find(e=>e.mediaType?.startsWith("image/")||e.href.toLowerCase().includes("png")||e.href.toLowerCase().includes("jpg")||e.href.toLowerCase().includes("svg")||e.href.toLowerCase().includes("jpeg"))),this.cfis=(e=>{const t=[],{parentNode:i}=e[0],n=Ce(i);for(const[o,r]of Be(i).entries()){const i=e[t.length];r===i&&t.push(pe([n.concat({id:i.id,index:o})]))}return t})(a)}getItemByID(e){return this.manifest.find(t=>t.id===e)}getItemByHref(e){return this.manifest.find(t=>t.href===e)}getItemByProperty(e){return this.manifest.find(t=>t.properties?.includes(e))}resolveCFI(e){const t=he(e),i=(t.parent??t).shift();let n=ve(this.opf,i);n&&"idref"!==n.nodeName&&(i.at(-1).id=null,n=ve(this.opf,i));const o=n?.getAttribute("idref");return{index:this.spine.findIndex(e=>e.idref===o),anchor:e=>((e,t)=>{const i=fe(t),n=fe(t,!0),o=e.documentElement,r=be(o,i[0]),s=be(o,n[0]),a=e.createRange();return r.before?a.setStartBefore(r.node):r.after?a.setStartAfter(r.node):a.setStart(r.node,r.offset),s.before?a.setEndBefore(s.node):s.after?a.setEndAfter(s.node):a.setEnd(s.node,s.offset),a})(e,t)}}}class nt{#n=new Map;#o=new Map;#r=new Map;allowScript=!1;constructor({loadText:e,loadBlob:t,resources:i}){this.loadText=e,this.loadBlob=t,this.manifest=i.manifest,this.assets=i.manifest}createURL(e,t,i,n){if(!t)return"";const o=URL.createObjectURL(new Blob([t],{type:i}));if(this.#n.set(e,o),this.#r.set(e,1),n){const t=this.#o.get(n);t?t.push(e):this.#o.set(n,[e])}return o}ref(e,t){const i=this.#o.get(t);return i?.includes(e)||(this.#r.set(e,this.#r.get(e)+1),i?i.push(e):this.#o.set(t,[e])),this.#n.get(e)}unref(e){if(!this.#r.has(e))return;const t=this.#r.get(e)-1;if(t<1){URL.revokeObjectURL(this.#n.get(e)),this.#n.delete(e),this.#r.delete(e);const t=this.#o.get(e);if(t)for(;t.length;)this.unref(t.pop());this.#o.delete(e)}else this.#r.set(e,t)}async loadItem(e,t=[]){if(!e)return null;const{href:i,mediaType:n}=e,o=Le.JS.test(e.mediaType);if(o&&!this.allowScript)return null;const r=t.at(-1);if(this.#n.has(i))return this.ref(i,r);return(o||[Le.XHTML,Le.HTML,Le.CSS,Le.SVG].includes(n))&&t.every(e=>e!==i)?this.loadReplaced(e,t):this.createURL(i,await this.loadBlob(i),n,r)}async loadHref(e,t,i=[]){if(Ne(e))return e;const n=Ge(e,t);let o=this.manifest.find(e=>e.href===n);return o||(o={href:n,mediaType:""}),this.loadItem(o,i.concat(t))}async loadReplaced(e,t=[]){const{href:i,mediaType:n}=e,o=t.at(-1),r=await this.loadText(i);if(!r)return null;if([Le.XHTML,Le.HTML,Le.SVG].includes(n)){let s=(new DOMParser).parseFromString(r.trim(),n);if(n===Le.XHTML&&s.querySelector("parsererror")&&(console.warn(s.querySelector("parsererror").innerText),e.mediaType=Le.HTML,s=(new DOMParser).parseFromString(r.trim(),e.mediaType)),[Le.XHTML,Le.SVG].includes(e.mediaType)){let e=s.firstChild;for(;e instanceof ProcessingInstruction;){if(e.data){const n=await Ue(e.data,/(?:^|\s*)(href\s*=\s*['"])([^'"]*)(['"])/i,(e,n,o,r)=>this.loadHref(o,i,t).then(e=>`${n}${e}${r}`));e.replaceWith(s.createProcessingInstruction(e.target,n))}e=e.nextSibling}}const a=async(e,n)=>e.setAttribute(n,await this.loadHref(e.getAttribute(n),i,t));for(const e of s.querySelectorAll("link[href]"))await a(e,"href");for(const e of s.querySelectorAll("[src]"))await a(e,"src");for(const e of s.querySelectorAll("[poster]"))await a(e,"poster");for(const e of s.querySelectorAll("object[data]"))await a(e,"data");for(const e of s.querySelectorAll("[*|href]:not([href]"))e.setAttributeNS(Me,"href",await this.loadHref(e.getAttributeNS(Me,"href"),i,t));for(const e of s.querySelectorAll("style"))e.textContent&&(e.textContent=await this.replaceCSS(e.textContent,i,t));for(const e of s.querySelectorAll("[style]"))e.setAttribute("style",await this.replaceCSS(e.getAttribute("style"),i,t));const l=(new XMLSerializer).serializeToString(s);return this.createURL(i,l,e.mediaType,o)}const s=n===Le.CSS?await this.replaceCSS(r,i,t):await this.replaceString(r,i,t);return this.createURL(i,s,n,o)}async replaceCSS(e,t,i=[]){const n=await Ue(e,/url\(\s*["']?([^'"\n]*?)\s*["']?\s*\)/gi,(e,n)=>this.loadHref(n,t,i).then(e=>`url("${e}")`)),o=await Ue(n,/@import\s*["']([^"'\n]*?)["']/gi,(e,n)=>this.loadHref(n,t,i).then(e=>`@import "${e}"`)),r=window?.innerWidth??800,s=window?.innerHeight??600;return o.replace(/-epub-/gi,"").replace(/(\d*\.?\d+)vw/gi,(e,t)=>parseFloat(t)*r/100+"px").replace(/(\d*\.?\d+)vh/gi,(e,t)=>parseFloat(t)*s/100+"px").replace(/page-break-(after|before|inside)/gi,(e,t)=>`-webkit-column-break-${t}`)}replaceString(e,t,i=[]){const n=new Map,o=this.assets.map(e=>{if(e.href===t)return;const i=((e,t)=>{if(!e)return t;const i=e.replace(/\/$/,"").split("/"),n=t.replace(/\/$/,"").split("/"),o=(i.length>n.length?i:n).findIndex((e,t)=>i[t]!==n[t]);return o<0?"":Array(i.length-o).fill("..").concat(n.slice(o)).join("/")})((e=>e.slice(0,e.lastIndexOf("/")+1))(t),e.href),o=encodeURI(i),r="/"+e.href,s=encodeURI(r),a=new Set([i,o,r,s]);for(const t of a)n.set(t,e);return Array.from(a)}).flat().filter(e=>e);if(!o.length)return e;const r=new RegExp(o.map(We).join("|"),"g");return Ue(e,r,async e=>this.loadItem(n.get(e.replace(/^\//,"")),i.concat(t)))}unloadItem(e){this.unref(e?.href)}}const ot=e=>{for(const t of e){if("page-spread-left"===t||"rendition:page-spread-left"===t)return"left";if("page-spread-right"===t||"rendition:page-spread-right"===t)return"right";if("rendition:page-spread-center"===t)return"center"}};class rt{parser=new DOMParser;#s;constructor({loadText:e,loadBlob:t,getSize:i,sha1:n}){this.loadText=e,this.loadBlob=t,this.getSize=i,this.#s=new tt(et(n))}#a(e){return e&&e.includes("opf:scheme")&&(e=e.replaceAll("opf:scheme","scheme")),e&&(e=e.replace(/^\uFEFF/,"").replace(//g,(e,t)=>`\x3c!--${t.replace(/--/g,"- -")}--\x3e`).replace(/&(?!(?:amp|lt|gt|quot|apos|#\d+|#x[\da-fA-F]+);)/g,"&").replace(/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]/g,"")),e?this.parser.parseFromString(e.trim(),Le.XML):null}async#l(e){return this.#a(await this.loadText(e))}async init(){const e=await this.#l("META-INF/container.xml");if(!e)throw new Error("Failed to load container file");const t=Array.from(e.getElementsByTagNameNS(Ee,"rootfile"),He("full-path","media-type")).filter(e=>"application/oebps-package+xml"===e.mediaType);if(!t.length)throw new Error("No package document defined in container");const i=t[0].fullPath,n=await this.#l(i);if(!n)throw new Error("Failed to load package document");if(n.querySelector("parsererror"))throw new Error("Package document is not a valid XML");const o=await this.#l("META-INF/encryption.xml");await this.#s.init(o,n),this.resources=new it({opf:n,resolveHref:e=>Ge(e,i)});const r=new nt({loadText:this.loadText,loadBlob:e=>Promise.resolve(this.loadBlob(e)).then(this.#s.getDecoder(e)),resources:this.resources});this.sections=this.resources.spine.map((e,t)=>{const{idref:i,linear:n,properties:o=[]}=e,s=this.resources.getItemByID(i);return s?{id:this.resources.getItemByID(i)?.href,load:()=>r.loadItem(s),unload:()=>r.unloadItem(s),createDocument:()=>this.loadDocument(s),size:this.getSize(s.href),cfi:this.resources.cfis[t],linear:n,pageSpread:ot(o),resolveHref:e=>Ge(e,s.href),loadMediaOverlay:()=>this.loadMediaOverlay(s)}:(console.warn(`Could not find item with ID "${i}" in manifest`),null)});const{navPath:s,ncxPath:a}=this.resources;if(s)try{const e=e=>Ge(e,s),t=qe(await this.#l(s),e);this.toc=t.toc,this.pageList=t.pageList,this.landmarks=t.landmarks}catch(e){console.warn(e)}if((!this.toc||0===this.toc.length)&&a)try{const e=e=>Ge(e,a),t=Je(await this.#l(a),e);this.toc=t.toc,this.pageList=t.pageList}catch(e){console.warn(e)}this.landmarks??=this.resources.guide;const{metadata:l,rendition:c,media:d}=(e=>{const{$:t,$$:i}=Oe(e,Ie),n=t(e.documentElement,"metadata"),o=Array.from(n.children),r=(e,t)=>{if(!t)return null;const{props:i=[],attrs:n=[]}=e,s=Ye(t);if(!i.length&&!n.length)return s;const a=t.getAttribute("id"),l=a?o.filter(Re("refines","#"+a)):[];return Object.fromEntries([["value",s]].concat(i.map(t=>{const{many:i,recursive:n}=t,o="string"==typeof t?t:t.name,s=Re("property",o),a=n?e:t;return[Te(o),i?l.filter(s).map(e=>r(a,e)):r(a,l.find(s))]})).concat(n.map(e=>[Te(e),t.getAttribute(e)])))},s=o.filter(Re("refines",null)),a=e=>Object.fromEntries(i(n,"meta").filter(Re("property",t=>t?.startsWith(e))).map(t=>[t.getAttribute("property").replace(e,""),Ye(t)]));return{metadata:Object.fromEntries(Ke.map(e=>{const{type:t,name:i,many:n}=e,o="meta"===t?e=>e.namespaceURI===Ie&&e.getAttribute("property")===i:e=>e.namespaceURI===Qe&&e.localName===i;return[Te(i),n?s.filter(o).map(t=>r(e,t)):r(e,s.find(o))]})),rendition:a("rendition:"),media:a("media:")}})(n);this.rendition=c,this.media=d,d.duration=Ve(d.duration),this.dir=this.resources.pageProgressionDirection,this.rawMetadata=l;const g=l?.title?.[0];this.metadata={title:g?.value,sortAs:g?.fileAs,language:l?.language,identifier:Ze(n),description:l?.description?.value,publisher:l?.publisher?.value,published:l?.date,modified:l?.dctermsModified,subject:l?.subject?.filter(({value:e,code:t})=>e||t)?.map(({value:e,code:t,scheme:i})=>({name:e,code:t,scheme:i})),rights:l?.rights?.value};const h={art:"artist",aut:"author",bkp:"producer",clr:"colorist",edt:"editor",ill:"illustrator",trl:"translator",pbl:"publisher"},A=e=>t=>{const i=[...new Set(t.role?.map(({value:t,scheme:i})=>(i&&"marc:relators"!==i?null:h[t])??e))],n={name:t.value,sortAs:t.fileAs};return[i?.length?i:[e],n]};return l?.creator?.map(A("author"))?.concat(l?.contributor?.map?.(A("contributor")))?.forEach(([e,t])=>e.forEach(e=>{this.metadata[e]?this.metadata[e].push(t):this.metadata[e]=[t]})),this}async loadDocument(e){const t=await this.loadText(e.href);return this.parser.parseFromString(t.trim(),e.mediaType)}async loadMediaOverlay(e){const t=e.mediaOverlay;if(!t)return null;const i=this.resources.getItemByID(t),n=((e,t=e=>e)=>{const{$:i,$$$:n}=Oe(e,Fe);return n(e,"par").map(e=>{const n=i(e,"text")?.getAttribute("src")?.split("#")?.[1],o=i(e,"audio");return o?{id:n,audio:{src:(r=o.getAttribute("src"),r?decodeURI(t(r)):null),clipBegin:Ve(o.getAttribute("clipBegin")),clipEnd:Ve(o.getAttribute("clipEnd"))}}:{id:n};var r})})(await this.#l(i.href),e=>Ge(e,i.href));return n}resolveCFI(e){return this.resources.resolveCFI(e)}resolveHref(e){const[t,i]=e.split("#"),n=this.resources.getItemByHref(decodeURI(t));if(!n)return null;return{index:this.resources.spine.findIndex(({idref:e})=>e===n.id),anchor:i?e=>((e,t)=>e.getElementById(t)??e.querySelector(`[name="${CSS.escape(t)}"]`))(e,i):()=>0}}resolveHrefIndex(e){const[t,i]=e.split("#"),n=this.resources.getItemByHref(decodeURI(t));if(!n)return null;return{index:this.resources.spine.findIndex(({idref:e})=>e===n.id)}}splitTOCHref(e){return e?.split("#")??[]}getTOCFragment(e,t){return e.getElementById(t)??e.querySelector(`[name="${CSS.escape(t)}"]`)}isExternal(e){return Ne(e)}async getCover(){const e=this.resources?.cover,t=e?.href?await this.loadBlob(e.href):null;return e?.href&&t&&t.size>0?new Blob([t],{type:e.mediaType}):null}async getCalibreBookmarks(){const e=await this.loadText("META-INF/calibre_bookmarks.txt"),t="encoding=json+base64:";if(e?.startsWith(t)){const t=atob(e.slice(21));return JSON.parse(t)}}}let st=["章","节","回","節","卷","部","輯","辑","話","集","话","篇"," "," "],at=[],lt=["CHAPTER","Chapter","序章","前言","声明","写在前面的话","后记","楔子","后序","章节目录","尾声","聲明","寫在前面的話","後記","後序","章節目錄","尾聲"];const ct=(e,t,i)=>{let n=e.split("\n");1===n.length&&(n=e.split("\r"));const o=[];let r=!1,s=!1;if(i&&i.refresh&&(r=!0),i&&i.noTitle&&(s=!0),s){let e=0;for(let t=0;tChapter ${e}`),i.forEach(e=>{""===e.trim()?o.push(`

${e}

`):o.push(`

${e}

`)}),e++}}else if(n.length>1e4&&!r){i&&i.chapterTitle||(i={text:n[0],chapterTitle:"",chapterDocIndex:0}),i.text||(i.text=i.chapterTitle||"");let r=n.findIndex(e=>dt(e)===dt(i.text));-1===r&&(r=0);const s=Math.max(r-3e3,0),a=Math.min(r+3e3,n.length),l=n.slice(s,a),c=l.filter(e=>e&>(e,t));if(c.length<=1)return ct(e,t,{noTitle:!0});const d=new Set(c.map(e=>dt(e)));let g=((e,t)=>{for(let i=e.length-1;i>=0;i--)if(t(e[i]))return i;return-1})(c,e=>dt(e)===dt(i.chapterTitle));if(-1===g&&(g=0),g0)for(let t=0;tPrepend ${t}`),o.push(`

Text ${t}

`)}for(const e of l){const t=dt(e);if(t&&d.has(t))o.push(`

${t}

`);else{if(""===e.trim()){o.push(`

${e}

`);continue}o.push(`

${e}

`)}}}else for(const e of n)if(e&>(e,t))o.push(`

${e}

`);else{if(""===e.trim()){o.push(`

${e}

`);continue}o.push(`

${e}

`)}const a=o.join("");return a&&a.includes("e.trim().replace(/(\r\n|\n|\r|\t)/gm,"").substring(0,100).split("").filter(e=>"="!==e&&"-"!==e&&"_"!==e&&"+"!==e).join(""),gt=(e,t="")=>t?new RegExp(t).test(e):(e=dt(e))&&e.length<40&&!ht(e)&&(At(e)||e.startsWith("第")&&ut(e)||e.startsWith("卷")&&pt(e)||e.indexOf("第")>-1&&e.lastIndexOf("第")<7&&ut(e.substr(e.indexOf("第")))),ht=e=>at.filter(t=>e.indexOf(t)>-1).length>0,At=e=>lt.filter(t=>e.startsWith(t)).length>0,ut=e=>{let t=!1;for(let i=0;i{let t=/^[\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d\u5341\u767e\u5343\u4e07\u842c\u96f6]+$/;return!(!t.test(e.substring(1,e.indexOf(" ")))&&!/^\d+$/.test(e.substring(1,e.indexOf(" "))))||(!(!t.test(e.substring(1,e.indexOf(" ")))&&!/^\d+$/.test(e.substring(1,e.indexOf(" "))))||(!(!t.test(e.substring(1,e.indexOf("·")))&&!/^\d+$/.test(e.substring(1,e.indexOf("·"))))||!(!t.test(e.substring(1))&&!/^\d+$/.test(e.substring(1)))))};let ft=!1;const mt=(e,t,i,n,o)=>{if("mimical"!==e||"yes"===t)return!1;const r=document.getElementById("book");return!!r&&(r.style.display="block",i>0?o():i<0&&n(),setTimeout(()=>{r.style.display="none"},1e3),!0)},wt=(e,t,i,n,o,r,s)=>d(void 0,void 0,void 0,function*(){const a=Y();if(mt(t,s,i,o,r),a){let o=Math.floor(e.clientHeight/12),r=o%2==0?o:o-1;const a=e.clientHeight,l=n.body.scrollTop,c=a+r;if(i>0){const e=Math.round(l/c),i=Math.max(0,e-1)*c;n.body.scrollTo({left:0,top:i,behavior:"sliding"===t&&"yes"!==s?"smooth":"auto"})}else if(i<0){const e=(Math.round(l/c)+1)*c;n.body.scrollTo({left:0,top:e,behavior:"sliding"===t&&"yes"!==s?"smooth":"auto"})}}else{let o=Math.floor(e.clientWidth/12),r=o%2==0?o:o-1;const a=e.clientWidth,l=n.body.scrollLeft,c=a+r;if(i>0){const e=Math.round(l/c),i=Math.max(0,e-1)*c;n.body.scrollTo({top:0,left:i,behavior:"sliding"===t&&"yes"!==s?"smooth":"auto"})}else if(i<0){const e=(Math.round(l/c)+1)*c;n.body.scrollTo({top:0,left:e,behavior:"sliding"===t&&"yes"!==s?"smooth":"auto"})}}}),Bt=(t,i,n,o)=>{let r=e.findLastIndex(n,e=>e.href===i||e.href&&e.href.includes("#")&&e.href.includes(i));return i&&e.findLastIndex(n,e=>e.href===i||e.href&&e.href.includes("#")&&e.href.includes(i))>-1||(r=t),"prev"===o?Object.assign(Object.assign({},n[r-1]),{index:r-1}):Object.assign(Object.assign({},n[r+1]),{index:r+1})},yt=(e,t,i,n,o,r,s,a)=>d(void 0,void 0,void 0,function*(){let t=parseInt(r.chapterDocIndex||"0"),l=r.chapterHref||"";if(0===t)return;let c=Bt(t,l,i,"prev");c&&(r.text="prevChapter",r.page="",yield Et(c.index,c.label,c.href,i,e,n,o,r,s,a))}),bt=e=>{if(!e)return!1;if("IMG"===e.tagName)return!0;if(e.textContent){let t=e.textContent.trim();return Ct(t)}return!1},Ct=e=>{if(!e)return!1;let t=e.trim();return!!/^(\[|\(|〔|【|〈|《|〚)([a-zA-Z0-9零一二三四五六七八九十百千万]+)(\]|\)|〕|】|〉|》|〛)$|^\d+$|^(M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3}))$|^[①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳㉑㉒㉓㉔㉕㉖㉗㉘㉙㉚㉛㉜㉝㉞㉟㊱㊲㊳㊴㊵㊶㊷㊸㊹㊺㊻㊼㊽㊾㊿]$/i.test(t)||(t.toLowerCase().indexOf("footnote")>-1||t.toLowerCase().indexOf("脚注")>-1||t.toLowerCase().indexOf("注释")>-1||t.toLowerCase().indexOf("注")>-1||t.toLowerCase().indexOf("fn")>-1||("*"===t||"†"===t||"‡"===t||"※"===t||"§"===t))},vt=e=>d(void 0,void 0,void 0,function*(){const t=yield fetch(e),i=yield t.blob();return new Promise((e,t)=>{const n=new FileReader;n.onloadend=()=>e(n.result),n.onerror=t,n.readAsDataURL(i)})}),Et=(t,i,n,o,r,s,a,l,c,g)=>d(void 0,void 0,void 0,function*(){if(c.body.innerHTML="",g.height="0px",c.body.scrollTo(0,0),i&&!t||o[t]&&o[t].label&&i&&i!==o[t].label&&-1===n.indexOf("#")){let n=e.findLastIndex(o,{label:i});-1!==n&&(t=n)}if(-1===t&&n.indexOf("#")>-1){let i=n.split("#")[0],r=e.findLastIndex(o,e=>e.href===i||e.href&&e.href.includes("#")&&e.href.includes(i));-1!==r&&(t=r)}(-1===t||t>o.length-1)&&(t=0);let h=yield U(o[t].text,!1),A=function(e){const t=e.match(/]*)>/i);if(!t)return{};const i=t[1],n={},o=/([\w-]+)\s*=\s*(?:"([^"]*)"|'([^']*)'|([^>\s]+))/g;let r;for(;null!==(r=o.exec(i));){const e=r[2]||r[3]||r[4]||"";n[r[1]]=e}return n}(h);const u=function(e){if(!e)return null;const t=e.match(/]*name\s*=\s*["']viewport["'][^>]*content\s*=\s*["']([^"']+)["'][^>]*>/i);if(!t)return null;const i=t[1]||"",n=i.match(/\bwidth\s*=\s*(\d+(?:\.\d+)?)\b/i),o=i.match(/\bheight\s*=\s*(\d+(?:\.\d+)?)\b/i),r=n?parseFloat(n[1]):void 0,s=o?parseFloat(o[1]):void 0;return r||s?{width:r,height:s}:null}(h);c.body.innerHTML=h,A.class?c.body.setAttribute("class",A.class):c.body.removeAttribute("class"),A.id?c.body.setAttribute("id",A.id):c.body.removeAttribute("id");let p=c.body.getAttribute("style")||"";p&&(p=p.split(";").map(e=>e.trim()).filter(e=>e&&!/^transform(-origin)?\s*:/i.test(e)).join("; "),p&&(p+=";"));const f=A.style||"",m=k(p,f),w=(null==u?void 0:u.width)||S(f,"width"),B=(null==u?void 0:u.height)||S(f,"height");if(w&&B){const e=function(e,t){if(!e)return 0;const i=Math.floor(e.clientWidth/12),n=i%2==0?i:i-1,o="double"===t?2:1;return(e.clientWidth-n)/o}(r,s),t=null==g?void 0:g.getBoundingClientRect().height,i=t>0?t:r.clientHeight;if(e>0&&i>0&&S(m,"width")&&S(m,"width")!==r.clientWidth){const t=e/w,n=i/B,o=k(m,`transform: scale(${Math.min(1,t,n)}); transform-origin: left top;`);c.body.setAttribute("style",o),c.body.setAttribute("data-kookit-fixed-scale","true")}else c.body.setAttribute("style",m),c.body.removeAttribute("data-kookit-fixed-scale")}else m?(c.body.setAttribute("style",m),c.body.removeAttribute("data-kookit-fixed-scale")):(c.body.removeAttribute("style"),c.body.removeAttribute("data-kookit-fixed-scale"));if(yield xt(c),yield It(c),!i){let e=t;for(;e>=0;){if(o[e].label){i=o[e].label;break}e--}}l.chapterTitle=i,l.chapterHref=n,l.chapterDocIndex=t+"",l.percentage=o.slice(0,t).map(e=>e.text&&e.text.size||1).reduce((e,t)=>e+t,0)/o.map(e=>e.text&&e.text.size||1).reduce((e,t)=>e+t,0)+"",l.text="",l.xpath=`/body/DocFragment[${t+1}]`,l.timestamp=parseInt((new Date).getTime()/1e3+""),yield((e,t,i,n,o)=>d(void 0,void 0,void 0,function*(){if(yield Promise.race([Promise.all(Array.from([...o.images,...o.querySelectorAll("image")]).map(e=>e.complete?Promise.resolve(0!==e.naturalHeight):new Promise(t=>{e.addEventListener("load",()=>t(!0)),e.addEventListener("error",()=>t(!1))}))),new Promise((e,t)=>{setTimeout(()=>{e("image load timeout")},10)})]),o.body.getAttribute("data-kookit-fixed-scale")||(yield _(e,t,i,o)),yield $(o),"scroll"!==t){if(n.height=e.clientHeight+"px","double"===t)if(Y());else{let t=Math.floor(e.clientWidth/12),i=t%2==0?t:t-1,n=(e.clientWidth+i)/2;if((o.body.scrollWidth-o.body.clientWidth)/n%2==1){let e=document.createElement("div");e.setAttribute("style","height: "+o.body.clientHeight+"px; display: inline-block; width: "+(n-i)+"px"),o.body.appendChild(e)}}}else n.height=o.body.scrollHeight+"px",n.height=o.body.scrollHeight+300+"px"}))(r,s,a,g,c),yield Dt(r,s,"","","","",c)});const xt=e=>d(void 0,void 0,void 0,function*(){let t=Array.from(e.getElementsByTagName("link"));if(0===t.length)return;let i=[];for(let e=0;e{n.addEventListener("load",e)}))}try{yield Promise.race([Promise.all(i),new Promise((e,t)=>{setTimeout(()=>{e("css load timeout")},10)})])}catch(e){console.error(e)}}),It=e=>d(void 0,void 0,void 0,function*(){var t;let i=Array.from(e.body.childNodes);for(let n=0;nd(void 0,void 0,void 0,function*(){let a=0,l=0,c=s.body;const d=Y()&&"scroll"!==t;if(r&&"scroll"!==t)if(d){let t=Math.floor(e.clientHeight/12),i=t%2==0?t:t-1;l=(e.clientHeight+i)*(parseInt(r)-1)}else{let t=Math.floor(e.clientWidth/12),i=t%2==0?t:t-1;a=((g=getComputedStyle(e).width,parseFloat(g.substring(0,g.length-2)))+i)*(parseInt(r)-1)}else if(i){let o=I(s.body).filter((e,t)=>dt(e.textContent)&&(dt(e.textContent).includes(dt(i))||dt(e.textContent).includes(p(dt(i)))||dt(e.textContent).includes(u(dt(i))))&&(Math.abs(t-parseInt(n))<("both"===window.fullTranslationMode||"target"===window.fullTranslationMode?1:2)||"search"===n||"ignore"===n||"next"===n));if(0===o.length)return;c=Qt(o[0],e,t),d?l=c?N(c)-O(c.marginTop||parseFloat(getComputedStyle(c).marginTop)):"prevChapter"===i?s.body.scrollHeight:0:a=c?G(c)-O(c.marginLeft||parseFloat(getComputedStyle(c).marginLeft)):"prevChapter"===i?s.body.scrollWidth:0}else if(o&&o.indexOf("#")>-1){let i=CSS.escape(o.split("#").reverse()[0]);if(!s.body.querySelector("#"+CSS.escape(i)))return;c=Qt(s.body.querySelector("#"+CSS.escape(i))||s.body,e,t),d?l=c?N(c)-O(c.marginTop||parseFloat(getComputedStyle(c).marginTop)):0:a=c?G(c)-O(c.marginLeft||parseFloat(getComputedStyle(c).marginLeft)):0}var g;"scroll"!==t?d?s.body.scrollTo(0,l):s.body.scrollTo(a,0):c.scrollIntoView()}),Qt=(e,t,i)=>{const n=Y()&&"scroll"!==i;if("scroll"===i)return e;if(n){let n=Math.floor(t.clientHeight/12),o=n%2==0?n:n-1,r=N(e)-O(e.marginTop||parseFloat(getComputedStyle(e).marginTop));return kt(parseInt(r+""),(t.clientHeight+o)/2)?e:e.parentElement?Qt(e.parentElement,t,i):e}{let n=Math.floor(t.clientWidth/12),o=n%2==0?n:n-1,r=G(e)-O(e.marginLeft||parseFloat(getComputedStyle(e).marginLeft));return kt(parseInt(r+""),(t.clientWidth+o)/2)?e:e.parentElement?Qt(e.parentElement,t,i):e}},kt=(e,t)=>{for(let i=e-10;i<=e+10;i++)if(i%t===0)return!0;return!1},St=(e,t,i,n,o,r,s)=>d(void 0,void 0,void 0,function*(){var a,l;if(ft)return;let c=I(r.body),d=c.filter(i=>Pt(e,i,t)&&(i.textContent||"").trim()),g=d[0];s&&(g=s);let h=0;for(let i=0;i{if(!e||!t||!t.body)return"";const i=[];let n=e;for(;n&&n!==t.body&&n!==t;){const e=n.parentNode;if(!e)break;if(n.nodeType===Node.TEXT_NODE){n=e;continue}const t=n,o=t.tagName.toLowerCase(),r=Array.from(e.childNodes).filter(e=>e.nodeType===Node.ELEMENT_NODE&&e.tagName.toLowerCase()===o),s=r.indexOf(t)+1;i.unshift(r.length>1?`${o}[${s}]`:o),n=e}return"/body/"+i.join("/")})(g,r),o.timestamp=parseInt((new Date).getTime()/1e3+"");let e=n.map(e=>e.text&&e.text.size||1).reduce((e,t)=>e+t,0);o.percentage=n.slice(0,parseInt(o.chapterDocIndex)).map(e=>e.text&&e.text.size||1).reduce((e,t)=>e+t,0)/e+((null===(a=n.find((e,t)=>t===parseInt(o.chapterDocIndex)))||void 0===a?void 0:a.text.size)||0)/e*(h/c.length)+""}else o.page=(null===(l=yield q(t,r,e))||void 0===l?void 0:l.currentPage)+"";ft=!0,setTimeout(()=>{ft=!1},100)}),Mt=(e,t,i)=>{if(Y()&&"scroll"!==i){let n=Math.floor(t.clientHeight/12),o=n%2==0?n:n-1;return Math.abs(N(e)-N(Qt(e,t,i)))>(t.clientHeight+o)/2}{let n=Math.floor(t.clientWidth/12),o=n%2==0?n:n-1;return Math.abs(G(e)-G(Qt(e,t,i)))>(t.clientWidth+o)/2}},Ft=(t,i,n)=>{let o=n.chapterHref||"",r=o.lastIndexOf("#"),s="";s=-1===r?o:o.substring(0,r);for(let o=0;o-1&&(n.chapterHref=t,n.chapterTitle=i[o].label)}}},Lt=(e,t,i,n,o,r,s,a)=>d(void 0,void 0,void 0,function*(){let t=parseInt(r.chapterDocIndex||"0"),l=r.chapterHref||"";if(t>=i.length-1)return void(r.percentage="1");let c=Bt(t,l,i,"next");c&&(r.page="",yield Et(c.index,c.label,c.href,i,e,n,o,r,s,a))}),Tt=(e,t,i,n)=>{let o=I(i.body).filter(e=>!D(e)),r=o.filter(e=>{if(!(e.textContent||"").trim())return!1;let t=e.parentElement;for(;t&&t!==i.body;){if(o.includes(t))return!1;t=t.parentElement}return!0}).filter(e=>{var t;return"img"!==e.textContent&&!(null===(t=e.textContent)||void 0===t?void 0:t.startsWith("img"))}).map(e=>e.textContent);if(n)return r.filter(e=>e);let s=0,a=Ut(e,t,i);if(console.log("visibleText",a),a&&a.length>0){let e=a.map(e=>e.trim());s=r.findIndex(t=>t&&e.includes(t.trim()))}return r.slice(s).filter(e=>e)},Rt=/["'\u201d\u2019」』]/,Ht=(e,t,i)=>{const n=((e,t)=>{if(void 0===Intl.Segmenter)return[{start:0,end:e.length}];const i=new Intl.Segmenter(t,{granularity:"sentence"}).segment(e);return Array.from(i).map(e=>({start:e.index,end:e.index+e.segment.length})).filter(t=>""!==e.slice(t.start,t.end).trim())})(e,Gt(e));if(0===n.length)return{start:t,end:i};const o=n.filter(e=>e.end>t&&e.start{if("scroll"===i){const i=t.scrollTop;return e.width>0&&e.height>0&&e.bottom>i&&e.top0&&e.left0&&e.height>0&&e.bottom>0&&e.top0&&e.left{const n=getComputedStyle(t);if("none"===n.display||"hidden"===n.visibility||"0"===n.opacity)return!1;const o=t.getBoundingClientRect();return Yt(o,e,i)},Gt=e=>{const t=(e.match(/[\u4e00-\u9fff\u3000-\u303f\uf900-\ufaff]/g)||[]).length,i=(e.match(/[\u3040-\u309f\u30a0-\u30ff]/g)||[]).length,n=(e.match(/[\uac00-\ud7af\u1100-\u11ff]/g)||[]).length;return(t+i+n)/e.length<=.3?"en":t>=i&&t>=n?"zh":i>=t&&i>=n?"ja":"ko"},Nt=(e,t,i)=>{const n=t.textContent||"";if(!n.trim())return n;if(!((e,t,i)=>{if(!Ot(e,t,i))return!1;const n=t.getBoundingClientRect();if("scroll"===i){const t=e.scrollTop;return n.topt+e.clientHeight||n.right>e.clientWidth}return n.top<0||n.left<0||n.bottom>e.clientHeight||n.right>e.clientWidth})(e,t,i))return n;const o=((e,t,i)=>{const n=t.textContent||"";if(!n.trim())return null;const o=document.createTreeWalker(t,NodeFilter.SHOW_TEXT);let r=o.nextNode(),s=0,a=-1,l=-1;for(;r;){const t=r.textContent||"";if(t.length>0){const n=document.createRange();if(n.selectNodeContents(r),Array.from(n.getClientRects()).some(t=>Yt(t,e,i))){let n=!1;for(let o=0;oYt(t,e,i));!d&&n&&Rt.test(t[o])&&(d=!0),d&&(-1===a&&(a=s+o),l=s+o+1),n=d}}}s+=t.length,r=o.nextNode()}return-1===a||-1===l?null:{start:a,end:l,text:n}})(e,t,i);if(!o)return n;const{start:r,end:s}=Ht(n,o.start,o.end);return s<=r?n.substring(o.start,o.end):n.substring(r,s)},Ut=(e,t,i)=>{let n=I(i.body).filter(e=>!D(e)),o=n.filter(i=>Ot(e,i,t)&&(i.textContent||"").trim());return o=o.filter(e=>{if(!(e.textContent||"").trim())return!1;let t=e.parentElement;for(;t&&t!==i.body;){if(n.includes(t))return!1;t=t.parentElement}return!0}),o.filter(e=>{var t;return"img"!==e.textContent&&!(null===(t=e.textContent)||void 0===t?void 0:t.startsWith("img"))}).map(i=>Nt(e,i,t)).filter(e=>e)},Wt=(e,t,i)=>{if(i.querySelectorAll('span[data-highlight="true"]').forEach(e=>{const t=e.parentNode;t&&t.replaceChild(i.createTextNode(e.textContent||""),e)}),!e.trim())return;Array.from(i.body.querySelectorAll("span, p, div, h1, h2, h3, h4, h5, h6 ")).filter(t=>{const i=t.textContent||"";return i.trim()&&i.toLowerCase().indexOf(e.toLowerCase())>-1}).forEach(n=>{const o=n=>{let r=(n=>{var o;if(n.nodeType===Node.TEXT_NODE){const r=n.textContent||"";let s=r.toLowerCase(),a=e.toLowerCase(),l=[],c=s.indexOf(a);for(;c>-1;)l.push({start:c,end:c+e.length,originalText:r.substring(c,c+e.length)}),c=s.indexOf(a,c+1);if(l.length>0){const e=i.createDocumentFragment();let s=0;return l.forEach(n=>{n.start>s&&e.appendChild(i.createTextNode(r.substring(s,n.start)));const o=i.createElement("span");o.setAttribute("style",t),o.setAttribute("data-highlight","true"),o.setAttribute("class","kookit-highlight-text"),o.textContent=n.originalText,e.appendChild(o),s=n.end}),s{var n=!1;const o=getComputedStyle(t);if("none"===o.display||"hidden"===o.visibility||"0"===o.opacity)return!1;var r=t.getBoundingClientRect();const s=Y()&&"scroll"!==i;if(s&&t.textContent&&t.textContent.trim()){let t=r.top;n=t>-10&&t<=e.clientHeight}else if("scroll"!==i&&!s&&t.textContent&&t.textContent.trim()){let t=r.left;n=t>-10&&t<=e.clientWidth}else if("scroll"===i&&t.textContent&&t.textContent.trim()){let t=r.top;n=t>=e.scrollTop&&t<=e.scrollTop+e.clientHeight}else if("scroll"===i||s){if(s){let t=r.top;n=t>=0&&t<=e.clientHeight}}else{let t=r.left;n=t>=0&&t<=e.clientWidth}return n};class jt{constructor(){this.callbacks={},this.callbacks.base={}}on(e,t){const i=this;if(void 0===e||""===e)return console.warn("wrong names"),!1;if(void 0===t)return console.warn("wrong callback"),!1;return this.resolveNames(e).forEach(function(e){const n=i.resolveName(e);i.callbacks[n.namespace]instanceof Object||(i.callbacks[n.namespace]={}),i.callbacks[n.namespace][n.value]instanceof Array||(i.callbacks[n.namespace][n.value]=[]),i.callbacks[n.namespace][n.value].push(t)}),this}off(e){const t=this;if(void 0===e||""===e)return console.warn("wrong name"),!1;return this.resolveNames(e).forEach(function(e){const i=t.resolveName(e);if("base"!==i.namespace&&""===i.value)delete t.callbacks[i.namespace];else if("base"===i.namespace)for(const e in t.callbacks)t.callbacks[e]instanceof Object&&t.callbacks[e][i.value]instanceof Array&&(delete t.callbacks[e][i.value],0===Object.keys(t.callbacks[e]).length&&delete t.callbacks[e]);else t.callbacks[i.namespace]instanceof Object&&t.callbacks[i.namespace][i.value]instanceof Array&&(delete t.callbacks[i.namespace][i.value],0===Object.keys(t.callbacks[i.namespace]).length&&delete t.callbacks[i.namespace])}),this}trigger(e,t=[]){if(void 0===e||""===e)return console.warn("wrong name"),!1;const i=this;const n=t instanceof Array?t:[];let o=this.resolveNames(e);o=this.resolveName(o[0]),setTimeout(()=>{if("base"===o.namespace)for(const e in i.callbacks){if(i.callbacks[e]instanceof Object&&i.callbacks[e][o.value]instanceof Array&&i.callbacks[e][o.value])i.callbacks[e][o.value].forEach(function(e){e.apply(i,n)});else if(this.callbacks[o.namespace]instanceof Object&&i.callbacks[o.namespace][o.value]){if(""===o.value)return console.warn("wrong name"),this;i.callbacks[o.namespace][o.value].forEach(function(e){e.apply(i,n)})}return null}},100)}resolveNames(e){let t=e;return t=t.replace(/[^a-zA-Z0-9 ,/.]/g,""),t=t.replace(/[,/]+/g," "),t=t.split(" "),t}resolveName(e){const t={},i=e.split(".");return t.original=e,t.value=i[0],t.namespace="base",i.length>1&&""!==i[1]&&(t.namespace=i[1]),t}}const zt=Node.ELEMENT_NODE,Kt=Node.TEXT_NODE,qt=Node.CDATA_SECTION_NODE;function Jt(e){return e.replace(/[\[\]\^,();]/g,"^$&")}function Vt(e,t,i){let n,o,r,s=0,a=0,l=!0;for(o=0;othis.compare(e,t))}static compare(e,t){let i=e.get(),n=t.get();if(e.isRange||t.isRange){if(e.isRange&&t.isRange){const e=this.comparePath(i.from,n.from);return e||this.comparePath(i.to,n.to)}return e.isRange&&(i=i.from),t.isRange&&(n=n.from),this.comparePath(i,n)}return this.comparePath(i,n)}static compareParts(e,t){const i=Math.max(e.length,t.length);let n,o,r,s;for(n=0;n=i)return"img"===a.tagName.toLowerCase()&&n?{node:a,offset:n}:{node:a,offset:0}}else{if(l+=1,l===i)return"img"===a.tagName.toLowerCase()&&n?{node:a,offset:n}:{node:a,offset:0};if(l>i)return r?{node:r,offset:this.trueLength(e,r.textContent)}:{node:t,offset:0}}r=a;break;case Kt:case qt:if(0!==l&&l%2!=0||(l+=1),l===i){const t=this.trueLength(e,a.textContent);if(!(n>=t))return{node:a,offset:n};n-=t}r=a;break;default:continue}if(i>l){const i={relativeToNode:"after",offset:0};return i.node=r||t,this.isTextNode(i.node)&&(i.offset=this.trueLength(e,i.node.textContent.length)),i}}isTextNode(e){return!!e&&(e.nodeType===Kt||e.nodeType===qt)}correctOffset(e,t,i,n){let o,r=t;if("string"==typeof n?o=this.decodeEntities(e,n):(n.pre=this.decodeEntities(e,n.pre),n.post=this.decodeEntities(e,n.post),o=n.pre+"."+n.post),!this.isTextNode(t))return{node:t,offset:0};for(;this.isTextNode(r.previousSibling);)r=r.previousSibling;const s=r;let a;const l=[];let c="",d=0;for(;this.isTextNode(r)&&(a=this.decodeEntities(e,r.textContent),l[d]=a.length,c+=a,r.nextSibling);)r=r.nextSibling,d++;const g=n.pre?n.pre.length:0,h=function(e,t,i){i=i||0;const n=[];let o,r=0;do{if(o=e.match(t),!o)break;n.push(o.index+i),r+=o.index+o.length,e=e.slice(o.index+o.length)}while(r=l[d];){if(A-=l[d],A<0)return{node:t,offset:i};const e=[];if(!r.nextSibling||d+1>=e.length)return{node:t,offset:i};d++,r=r.nextSibling}return{node:r,offset:A}}resolveNode(e,t,i,n){if(n=Object.assign({},n||{}),!i)throw new Error("Missing DOM argument");let o;if(0===e&&(o=i.querySelector("package")),!o)for(const e of i.childNodes)if(e.nodeType===zt){o=e;break}if(o=i,!o)throw new Error("Document incompatible with CFIs");let r,s,a=o,l=0;for(r=t.length-1;r>=0;r--)if(s=t[r],!n.ignoreIDs&&s.nodeID&&(a=i.getElementById(s.nodeID))){l=r+1;break}a||(a=o);let c={node:a,offset:0};for(r=l;rthis.parts.length-2)throw new Error("index is out of bounds");const n=this.parts[e];if(!n)throw new Error("Missing CFI part for index: "+e);let o=this.resolveNode(e,n,t,i).node;const r=o.tagName.toLowerCase();if("itemref"===r&&"spine"===o.parentNode.tagName.toLowerCase()){const e=o.getAttribute("idref");if(!e)throw new Error("Referenced node had not 'idref' attribute");if(o=t.getElementById(e),!o)throw new Error("Specified node is missing from manifest");const i=o.getAttribute("href");if(!i)throw new Error("Manifest item is missing href attribute");return i}if("iframe"===r||"embed"===r){const e=o.getAttribute("src");if(!e)throw new Error(r+" element is missing 'src' attribute");return e}if("object"===r){const e=o.getAttribute("data");if(!e)throw new Error(r+" element is missing 'data' attribute");return e}if("image"===r||"use"===r){const e=o.getAttribute("xlink:href");if(!e)throw new Error(r+" element is missing 'xlink:href' attribute");return e}throw new Error("No URI found")}deepClone(e){return JSON.parse(JSON.stringify(e))}resolveLocation(e,t){const i=t.length-1,n=t[i];if(!n)throw new Error("Missing CFI part for index: "+i);const o=this.resolveNode(i,n,e),r=this.deepClone(n[n.length-1]);return delete r.nodeIndex,r.offset||delete o.offset,Object.assign(Object.assign({},r),o)}resolveLast(e,t){if(t=Object.assign({range:!1},t||{}),!this.isRange)return this.resolveLocation(e,this.parts);if(t.range){const t=e.createRange(),i=this.getFrom();"before"===i.relativeToNode?t.setStartBefore(i.node,i.offset):"after"===i.relativeToNode?t.setStartAfter(i.node,i.offset):t.setStart(i.node,i.offset);const n=this.getTo();return"before"===n.relativeToNode?t.setEndBefore(n.node,n.offset):"after"===n.relativeToNode?t.setEndAfter(n.node,n.offset):t.setEnd(n.node,n.offset),t}return{from:this.resolveLocation(e,this.getFrom()),to:this.resolveLocation(e,this.getTo()),isRange:!0}}resolve(e,t){return this.resolveLast(e,t)}}const _t="kookit-note-tooltip",ei=e=>{const t=e.getBoundingClientRect();return{left:t.left,top:t.top,right:t.right,bottom:t.bottom,width:t.width,height:t.height}},ti=(e,t,i,n)=>{e.style.left="0px",e.style.top="0px",requestAnimationFrame(()=>{const o=i.documentElement.clientWidth||window.innerWidth,r=i.documentElement.clientHeight||window.innerHeight,s=e.offsetWidth,a=e.offsetHeight;let l=t.left+t.width/2-s/2,c=t.top-a-n;l<0&&(l=0),l+s>o&&(l=Math.max(0,o-s)),c<0&&(c=t.bottom+n,c+a>r&&(c=Math.max(0,r-a))),e.style.left=l+"px",e.style.top=c+"px"})},ii=(e,t)=>{const i=e.getAttribute("data-key");if(!i)return ei(e);return(e=>{if(0===e.length)return null;const t=e.map(e=>ei(e)).filter(e=>e.width>0||e.height>0);if(0===t.length)return null;const i=Math.min(...t.map(e=>e.left)),n=Math.min(...t.map(e=>e.top)),o=Math.max(...t.map(e=>e.right)),r=Math.max(...t.map(e=>e.bottom));return{left:i,top:n,right:o,bottom:r,width:o-i,height:r-n}})(Array.from(t.querySelectorAll(".kookit-note[data-key], .kookit-note-icon[data-key]")).filter(e=>e.getAttribute("data-key")===i))||ei(e)},ni=(e,t,i)=>{let n=i.getElementById(_t);n||(n=i.createElement("span"),n.setAttribute("id",_t),n.setAttribute("class","kookit-note-tooltip"),n.setAttribute("style","position: fixed; z-index: 9999; max-width: 280px; padding: 6px 10px; background: #383838; color: #fff; font-size: 15px !important; border-radius: 6px; pointer-events: none; word-break: break-word; white-space: pre-wrap; line-height: 1.5;"),i.body.appendChild(n)),n.textContent=e,n.style.display="block",ti(n,ii(t,i),i,10)},oi=e=>{const t=e.getElementById(_t);null==t||t.remove()},ri=(e,t,i,n,o,r,s,a,l,c="")=>{let d=s.querySelector(".noteLayer"),g=s.querySelector("#koodoPDFLayer");var h=o.getViewport({scale:r});let A=[];for(let t=0;t{e.heighte.width-t.width),m=[];for(let e=0;e{if(o===e)return!1;const r=n.bottom;return Math.abs(i-r)

=t.right||n.left<=t.left&&Math.abs(n.right-t.right)<5||Math.abs(n.left-t.left)<5&&n.right>=t.right)})||m.push(t)}m.reduce((e,t)=>e?t.top{a&&c&&ni(c,e.currentTarget,s)}),null==w||w.addEventListener("mouseleave",()=>{oi(s)}),null==w||w.addEventListener("click",e=>{e&&e.target&&e.target.dataset&&e.target.dataset.key&&n(e)}),w.ontouchend=e=>{var t;if(!window.isSwiping){if(e&&e.target){let i="";s&&s.getSelection()&&(i=(null===(t=s.getSelection())||void 0===t?void 0:t.toString().trim())||""),e.target.dataset&&e.target.dataset.key&&!i&&n(e)}e.preventDefault(),e.stopPropagation()}},d.appendChild(w))}},si=e=>{var t;const i=e.querySelectorAll(".kookit-note-icon");for(let e=0;e0;){const t=n[0],i=t.parentNode;if(i){if("SPAN"===t.tagName&&t.childNodes.length>0){for(;t.firstChild;)i.insertBefore(t.firstChild,t);i.removeChild(t),i.normalize()}else i.removeChild(t);n=e.querySelectorAll(".kookit-note")}else n=e.querySelectorAll(".kookit-note")}},ai=(e,t,i,n,o,r=!1,s=!1,a="")=>{var l,c,d,g,h;if(s&&window.isSwiping){const l=()=>{window.isSwiping?requestAnimationFrame(l):ai(e,t,i,n,o,r,s,a)};return void requestAnimationFrame(l)}const A=e.nativeRange,u=[],p=o.createTreeWalker(A.commonAncestorContainer,NodeFilter.SHOW_TEXT,{acceptNode:e=>{const t=o.createRange();return t.selectNodeContents(e),A.compareBoundaryPoints(Range.END_TO_START,t)<0&&A.compareBoundaryPoints(Range.START_TO_END,t)>0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}});for(;p.nextNode();)u.push(p.currentNode);0===u.length&&A.commonAncestorContainer.nodeType===Node.TEXT_NODE&&u.push(A.commonAncestorContainer);const f=[],m=new Set;for(let e=0;e=0;if(n&&l){if(m.has(s))continue;m.add(s);const e=null===(g=null===(d=s.parentElement)||void 0===d?void 0:d.closest)||void 0===g?void 0:g.call(d,`.kookit-note[data-key="${i}"]`);if(e){f.push(e);continue}const n=o.createElement("span");n.setAttribute("style",v(t,!1,Y())),n.setAttribute("class","kookit-note"),n.setAttribute("data-key",i),r&&a&&n.setAttribute("data-note-content",a),s.parentNode.insertBefore(n,s),n.appendChild(s),f.push(n);continue}}let h=0,p=n.textContent.length;n===A.startContainer&&(h=A.startOffset),n===A.endContainer&&(p=A.endOffset);let w=n;h>0&&(w=n.splitText(h),p-=h),p{var t,i;const n=null===(i=null===(t=e.target)||void 0===t?void 0:t.closest)||void 0===i?void 0:i.call(t,".kookit-note[data-key]");if(n){o.body.style.cursor="pointer";const e=n.getAttribute("data-note-content")||"";e?ni(e,n,o):oi(o)}else o.body.style.cursor="",oi(o)},!0),o.body.addEventListener("mousedown",i=>{e=i.clientX,t=i.clientY},!0),o.body.addEventListener("click",i=>{var o,r;if(Math.abs(i.clientX-e)>5||Math.abs(i.clientY-t)>5)return;const s=null===(r=null===(o=i.target)||void 0===o?void 0:o.closest)||void 0===r?void 0:r.call(o,".kookit-note[data-key]");s&&n({target:s})},!0),o.body.addEventListener("touchend",e=>{var t,i,r;if(window.isSwiping)return;const s=e.changedTouches[0];if(!s)return;const a=null===(i=null===(t=o.elementFromPoint(s.clientX,s.clientY))||void 0===t?void 0:t.closest)||void 0===i?void 0:i.call(t,".kookit-note[data-key]");let l="";o&&o.getSelection()&&(l=(null===(r=o.getSelection())||void 0===r?void 0:r.toString().trim())||""),a&&!l&&(n({target:a}),e.preventDefault(),e.stopPropagation())},!0)}if(r&&f.length>0){const e=f[0],t=o.createElement("span");t.setAttribute("class","kookit-note-icon"),t.setAttribute("data-key",i),t.setAttribute("style","position: relative; z-index: 2; font-size: 14px; line-height: 1; cursor: pointer; pointer-events: auto;"),null===(h=e.parentNode)||void 0===h||h.insertBefore(t,e)}},li="kookit-word-tooltip",ci=(e,t,i)=>{let n=i.getElementById(li);n||(n=i.createElement("span"),n.setAttribute("id",li),n.setAttribute("class",li),n.setAttribute("style","position: fixed; z-index: 9999; max-width: 280px; padding: 6px 10px; background: #383838; color: #fff; font-size: 15px !important; border-radius: 6px; pointer-events: none; word-break: break-word; white-space: pre-wrap; line-height: 1.5;"),i.body.appendChild(n)),n.textContent=e,n.style.display="block",ti(n,ei(t),i,6)},di=e=>{const t=e.getElementById(li);null==t||t.remove()},gi=e=>{const t=e.querySelectorAll(".kookit-word-def");for(let e=0;e{var r;const s=Object.keys(e);if(0===s.length)return;const a="zh"===i||"ja"===i,l=(a?[...s].sort((e,t)=>t.length-e.length):s).map(e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")),c=a?new RegExp("("+l.join("|")+")","g"):new RegExp("\\b("+l.join("|")+")\\b","gi"),d=t.createTreeWalker(o||t.body,NodeFilter.SHOW_TEXT,{acceptNode:e=>{let t=e.parentElement;for(;t;){const e=t.tagName;if("SCRIPT"===e||"STYLE"===e||"RUBY"===e||t.classList.contains("kookit-note")||t.classList.contains("kookit-word-def")||t.classList.contains("kookit-text-rule-replace")||t.classList.contains("kookit-text-rule-delete")||t.classList.contains("kookit-note-tooltip")||t.classList.contains("kookit-word-tooltip"))return NodeFilter.FILTER_REJECT;t=t.parentElement}return NodeFilter.FILTER_ACCEPT}}),g=[];for(;d.nextNode();)g.push(d.currentNode);for(const o of g){const s=o.textContent||"";if(c.lastIndex=0,!c.test(s))continue;c.lastIndex=0;const a=t.createDocumentFragment();let l,d=0;for(;null!==(l=c.exec(s));){const o=s.slice(d,l.index);o&&a.appendChild(t.createTextNode(o));const r=l[0],c=e[r.toLowerCase()]||e[r],g=t.createElement("span");g.className="kookit-word-def";let h,A=c.meaning||"";if("zhCN"===n&&c.cn_meaning&&(A=c.cn_meaning),g.setAttribute("data-meaning",A||""),"zh"===i)h=["["+c.pinyin+"]"||"",A||"",c.level?"[HSK"+c.level+"]":""].filter(Boolean).join(" ");else if("ja"===i){h=[[c.furigana||"",c.romaji?"("+c.romaji+")":""].filter(Boolean).join(""),A||"",c.level?"[N"+c.level+"]":""].filter(Boolean).join(" ")}else h=[c.pronunciation||"",A||"",c.level?"["+c.level+"]":""].filter(Boolean).join(" ");g.setAttribute("data-def-full",h),g.appendChild(t.createTextNode(r)),a.appendChild(g),d=l.index+r.length}if(0===d)continue;const g=s.slice(d);g&&a.appendChild(t.createTextNode(g)),null===(r=o.parentNode)||void 0===r||r.replaceChild(a,o)}t.body.__kookitWordDefDelegated||(t.body.__kookitWordDefDelegated=!0,t.body.addEventListener("mousemove",e=>{var i,n;const o=null===(n=null===(i=e.target)||void 0===i?void 0:i.closest)||void 0===n?void 0:n.call(i,".kookit-word-def");if(o){const e=o.getAttribute("data-def-full")||"";ci(e,o,t)}else di(t)},!0),t.body.addEventListener("mouseleave",()=>{di(t)},!0),t.body.addEventListener("touchend",e=>{var i,n;const o=null===(n=null===(i=e.target)||void 0===i?void 0:i.closest)||void 0===n?void 0:n.call(i,".kookit-word-def");if(o){const i=o.getAttribute("data-def-full")||"";ci(i,o,t),null==e||e.preventDefault(),null==e||e.stopPropagation()}else{t.getElementById(li)&&(di(t),null==e||e.preventDefault(),null==e||e.stopPropagation())}},!0))};let Ai=null,ui=!1;const pi=(e,t,i,n=0)=>{Ai&&(cancelAnimationFrame(Ai),Ai=null),ui=!1,function(e){let t=document.getElementById("book");t&&t.remove();const i=document.createElement("div");i.id="book";const n=document.createElement("canvas");n.id="pageflip-canvas";const o=document.createElement("div");o.id="pages";for(let t=0;t{!w.length||u>=w.length||u+1{!w.length||u<=0||u-1>=0&&w[u-1]&&(w[u-1].target=1,u=Math.max(u-1,0))},setPageNum:e=>{w.length&&(u=Math.max(0,Math.min(e,w.length-1)),D())},resetFlips:D,cleanup:()=>{ui=!1,Ai&&(cancelAnimationFrame(Ai),Ai=null);const e=document.getElementById("pageflip-canvas");e&&(e.style.willChange="",e.style.transform="")},mouseDownHandler:E,mouseUpHandler:x,mouseMoveHandler:v}}}function v(e){var t;if(!B||!(null===(t=e.touches)||void 0===t?void 0:t[0]))return;const i=e.touches[0],n=B.getBoundingClientRect();m.x=i.screenX-n.left-s/2,m.y=i.screenY-n.top}function E(e){var t;const i=null===(t=e.touches)||void 0===t?void 0:t[0];i&&(d=i.screenX,i.screenX=0?w[u-1].dragging=!0:i.screenX>window.screen.width/2&&u+1l/4*1&&g-d>0?(w[n].target=1,u=Math.max(u-1,0)):n===u?w[n].target=1:n===u-1&&(w[n].target=-1)),w[n].dragging=!1}}function I(e){var n=1-Math.abs(e.progress),o=.5*l*(1-e.progress),r=l*e.progress+o,a=20*n,d=.5*l*Math.max(Math.min(1-e.progress,.5),0),g=.5*l*Math.max(Math.min(n,.5),0),h=.5*l*Math.max(Math.min(n,.5),0);e.page.style.width=Math.max(r,0)+"px",f.save(),f.translate(0+s/2,A+0),f.strokeStyle=("no"===t?"rgba(0,0,0,":"rgba(255,255,255,")+.05*n+")",f.lineWidth=30*n,f.beginPath(),f.moveTo(r-o,.5*-a),f.lineTo(r-o,c+.5*a),f.stroke();var u=f.createLinearGradient(r,0,r+g,0);u.addColorStop(0,("no"===t?"rgba(0,0,0,":"rgba(255,255,255,")+.2*n+")"),u.addColorStop(.8,("no"===t?"rgba(0,0,0,":"rgba(255,255,255,")+"0.0)"),f.fillStyle=u,f.beginPath(),f.moveTo(r,0),f.lineTo(r+g,0),f.lineTo(r+g,c),f.lineTo(r,c),f.fill();var p=f.createLinearGradient(r-o-h,0,r-o,0);p.addColorStop(0,("no"===t?"rgba(0,0,0,":"rgba(255,255,255,")+"0.0)"),p.addColorStop(1,("no"===t?"rgba(0,0,0,":"rgba(255,255,255,")+.15*+n+")"),f.fillStyle=p,f.beginPath(),f.moveTo(r-o-h,0),f.lineTo(r-o,0),f.lineTo(r-o,c),f.lineTo(r-o-h,c),f.fill();var m=f.createLinearGradient(r-d,0,r,0);i?(m.addColorStop(.35,i),m.addColorStop(.73,i),m.addColorStop(.9,i),m.addColorStop(1,i)):"no"===t?(m.addColorStop(.35,"#fafafa"),m.addColorStop(.73,"#eeeeee"),m.addColorStop(.9,"#fafafa"),m.addColorStop(1,"#e2e2e2")):(m.addColorStop(.35,"#333"),m.addColorStop(.73,"#444"),m.addColorStop(.9,"#333"),m.addColorStop(1,"#444")),f.fillStyle=m,f.strokeStyle=("no"===t?"rgba(0,0,0,":"rgba(255,255,255,")+"0.06)",f.lineWidth=.5,f.beginPath(),f.moveTo(r,0),f.lineTo(r,c),f.quadraticCurveTo(r,c+2*a,r-o,c+a),f.lineTo(r-o,-a),f.quadraticCurveTo(r,2*-a,r,0),f.fill(),f.stroke(),f.restore()}function D(){for(var e=0;e{var i;const n=t.getElementById("pdf-container-"+e);if(!n)return;let o=document.createElement("iframe");o.style.position="absolute",o.style.top="0",o.style.left="0",o.style.width="100%",o.style.height="100%",o.style.border="0",o.style.margin="0",o.style.padding="0",o.style.fontSize="100%",o.style.font="inherit",o.scrolling="no",o.tabIndex=0,o.id="pdf-iframe-"+e;let r=document.createElement("style");return r.id="default-style",r.textContent="body{margin: 0px}",n.appendChild(o),null===(i=o.contentDocument)||void 0===i||i.head.appendChild(r),o},mi=(e,t,i)=>d(void 0,void 0,void 0,function*(){let n=i.getElementById("pdf-container-"+e);if(n)if("scroll"!==t){let e=n?G(n)-O(n.marginLeft||parseFloat(getComputedStyle(n).marginLeft)):0;i.body.scrollTo(e,0)}else n.scrollIntoView()}),wi=(e,t,i,n)=>{var o=!1,r=t.getBoundingClientRect();if("scroll"!==i){let e=r.left;o=e>-10&&e<=n.body.clientWidth}else{let t=r.top,i=r.bottom;o=t-10>=e.scrollTop&&t+10<=e.scrollTop+e.clientHeight||i-10>=e.scrollTop&&i+10<=e.scrollTop+e.clientHeight||t+10<=e.scrollTop&&i-10>=e.scrollTop+e.clientHeight}return o},Bi=(e,t,i)=>{if(i.querySelectorAll('span[data-highlight="true"]').forEach(e=>{const t=(e.getAttribute("style")||"").replace(/background(?:-image|-repeat|-position|-size|-color)?\s*:[^;]+;?/gi,"").replace(/mix-blend-mode\s*:[^;]+;?/gi,"").replace(/border-(?:bottom|right)\s*:[^;]+;?/gi,"").replace(/text-decoration(?:-line|-style|-color|-thickness|-skip-ink)?\s*:[^;]+;?/gi,"").trim();t?e.setAttribute("style",t):e.removeAttribute("style"),e.removeAttribute("data-highlight")}),!e.trim())return;let n=((e,t)=>{const i=Array.from(e);if(!t||0===i.length)return[];const n=e=>e.replace(/\s+/g," ").trim(),o=n(t),r=i.map(e=>n(e.textContent||""));let s="";const a=[],l=M(o),c="zh"===l||"ja"===l||"ko"===l;for(let e=0;e0&&" "!==s[s.length-1]&&" "!==t[0]&&(s+=" ");const i=s.length;s+=t,a.push({start:i,end:s.length})}const d=s.indexOf(o);if(-1===d)return[];const g=d+o.length;let h=-1,A=-1;for(let e=0;ed&&t0)for(let e=0;ed(void 0,void 0,void 0,function*(){let e=Math.floor(n.body.clientWidth/12),c=e%2==0?e:e-1;const d=n.body.clientWidth;if(mt(t,s,i,o,r),i>0)if("single"===l){let e=n.querySelector("#pdf-container-"+(a-1));e&&e.scrollIntoView()}else n.body.scrollBy(-(d+c)/2,0);else if(i<0)if("single"===l){let e=n.querySelector("#pdf-container-"+(a+1));e&&e.scrollIntoView()}else n.body.scrollBy((d+c)/2,0)}),bi=e=>d(void 0,void 0,void 0,function*(){const t=e.getViewport({scale:1}),i=document.createElement("canvas"),n=i.getContext("2d");i.width=800,i.height=800/t.width*t.height;const o={canvasContext:n,viewport:e.getViewport({scale:800/t.width})};yield e.render(o).promise;const r=i.toDataURL("image/jpeg",.8),s=function(e){const t=e.length-23;return Math.ceil(.75*t)}(r);return{imageURL:r,size:s}});const Ci=e=>{let t=document.getElementById("ocr-progress-bar");t||(t=document.createElement("progress"),t.id="ocr-progress-bar",t.max=1,t.value=0,t.style.position="fixed",t.style.top="10px",t.style.left="50%",t.style.transform="translateX(-50%)",t.style.width="300px",t.style.zIndex="9999",document.body.appendChild(t)),t.value=e,e>=1&&setTimeout(()=>{t.remove()},1e3)},vi=(e,t=1.2,i=1.5)=>d(void 0,void 0,void 0,function*(){let n=yield e.text.getTextContent(),o=[];if("string"==typeof n)o=n.split("\n").filter(e=>""!==e.trim()).map(e=>({text:e,isBold:!1}));else if(n&&n.items&&Array.isArray(n.items)){const e=n.items.filter(e=>e.str&&e.transform).map(e=>e.transform[3]);let r=10;if(e.length>0){const t=e.reduce((e,t)=>(e[t]=(e[t]||0)+1,e),{});r=Object.keys(t).map(Number).reduce((e,i)=>t[e]>t[i]?e:i)}let s={text:"",styles:new Set,y:0,tag:"p"},a=0;n.items.forEach(e=>{if(e.str){const n=Math.abs(e.transform[5]-a);let l="p",c=e.transform[3]>Number(r)*t;n>e.height*i&&s.text.trim()?(o.push(s),s={text:"",styles:new Set,y:e.transform[5],tag:l,isBold:c}):s.hasOwnProperty("isBold")||(s.isBold=c);const d=e.str;if(e.hasEOL)if(d.endsWith("-"))s.text+=d.slice(0,-1);else{const e=M(d+s.text);s.text+="zh"===e||"ja"===e||"ko"===e?d:d+" "}else s.text+=d;a=e.transform[5]}}),s.text.trim()&&o.push(s)}return o}),Ei=(e,t,i,n)=>i<=0||n<=0||e<0||e>i||t<0||t>n?null:((e,t,i,n)=>{if(i<=0||n<=0)return null;const o=(e,t)=>Math.pow(e/50,2)+Math.pow(t/50,2)<=1;return o(i-e,n-t)?"br":o(e,t)?"tl":null})(e,t,i,n),xi=e=>!!(e&&e.toString().trim().length>0&&e.rangeCount>0),Ii=e=>{const{iframe:t,doc:i,render:n,readerMode:o,format:r,enableScrollPin:s=!1}=e;if("scroll"===o||"PDF"===r)return null;let a=null,l=null,c=!1,d=null,g=null,h=null,A=!1,u=null,p=!1;const f=()=>({w:i.documentElement.clientWidth||i.body.clientWidth||t.clientWidth,h:i.documentElement.clientHeight||i.body.clientHeight||t.clientHeight}),m=(e,i)=>{const n=t.getBoundingClientRect();return{x:e-n.left,y:i-n.top}},w=()=>{const e=h;if(!e)return null;const{w:t,h:i}=f();return Ei(e.x,e.y,t,i)},B=()=>{const e=i.getSelection();if(!e||!xi(e))return null;const t=((e,t)=>{var i;const n=t.focusNode;if(!n)return null;let o;try{const r=e.createRange(),s=n.nodeType===Node.TEXT_NODE?Math.min(t.focusOffset,(null!==(i=n.textContent)&&void 0!==i?i:"").length):t.focusOffset;r.setStart(n,s),r.collapse(!0),o=r.getBoundingClientRect()}catch(e){return null}return 0===o.width&&0===o.height&&0===o.left&&0===o.top?null:{x:(o.left+o.right)/2,y:(o.top+o.bottom)/2}})(i,e);if(!t)return null;const{w:n,h:o}=f();return Ei(t.x,t.y,n,o)},y=e=>(w()||(p?null:B()))===e,b=()=>{l=null,a&&(clearTimeout(a),a=null)},C=()=>{null==u||u(),u=null},v=()=>{var e;C();const n=null===(e=t.ownerDocument)||void 0===e?void 0:e.defaultView,o=i.defaultView;if(!n&&!o)return;const r=e=>{if(!A)return;const t=e.touches[0];t&&(h={x:t.clientX,y:t.clientY},E(w()))},s=e=>{if(!A)return;const t=e.touches[0];if(!t)return;const i=m(t.clientX,t.clientY);h=i,E(w())},a=e=>{if(!A)return;const t=e.view===o?{x:e.clientX,y:e.clientY}:m(e.clientX,e.clientY);h=t,E(w())};null==o||o.addEventListener("touchmove",r,{capture:!0,passive:!0}),null==o||o.addEventListener("pointermove",a,{capture:!0,passive:!0}),null==n||n.addEventListener("touchmove",s,{capture:!0,passive:!0}),n&&n!==o&&n.addEventListener("pointermove",a,{capture:!0,passive:!0}),u=()=>{null==o||o.removeEventListener("touchmove",r,{capture:!0}),null==o||o.removeEventListener("pointermove",a,{capture:!0}),null==n||n.removeEventListener("touchmove",s,{capture:!0}),n&&n!==o&&n.removeEventListener("pointermove",a,{capture:!0})}},E=e=>{c||(e?l!==e&&(l=e,(e=>{a||(a=setTimeout(()=>{a=null;const t=i.getSelection();if(c||!t||!xi(t)||!y(e))return;c=!0;const o="br"===e?n.next():n.prev();Promise.resolve(o).finally(()=>{d=i.body.scrollLeft,g=i.body.scrollTop,c=!1,l=e,p=!0})},500))})(e)):l&&!y(l)&&(l=null,a&&(clearTimeout(a),a=null)))},x=()=>{A=!1,p=!1,b(),C(),d=null,g=null,h=null};return{onSelectStart:()=>{d=i.body.scrollLeft,g=i.body.scrollTop,h=null,A=!1,p=!1,b(),v()},onSelectionChange:()=>{const e=i.getSelection();xi(e)?(A=!0,null===d&&(d=i.body.scrollLeft,g=i.body.scrollTop),u||v(),p||E(B())):x()},onTouchMove:(e,t)=>{h={x:e,y:t},E(w())},onSelectionCleared:x,cancelAutoTurn:b,applyScrollPin:()=>{s&&A&&!c&&null!==d&&(i.body.scrollLeft!==d&&(i.body.scrollLeft=d),null!==g&&g>0&&i.body.scrollTop!==g&&(i.body.scrollTop=g))},hasActiveSelection:()=>A}};let Di=!1,Qi=0,ki=!1;const Si=(e,t,i,n,o,r,s)=>{let a=o.clientWidth+s,l="PDF"===t?n:i;if(Di=!1,window.scrollAnimationId&&(cancelAnimationFrame(window.scrollAnimationId),window.scrollAnimationId=null),Math.abs(l.body.scrollWidth-l.body.scrollLeft-o.clientWidth)<10&&"right"===e)return void r.next();if(0===l.body.scrollLeft&&"left"===e)return void r.prev();let c,d=l.body.scrollLeft;const g=Math.round(d/a);c="left"===e?(g-1)*a:"right"===e?(g+1)*a:g*a;const h=l.body.scrollWidth-o.clientWidth;(c>=h||l.body.scrollWidth-c{m||(m=!0,f.style.willChange="",f.style.transform="",f.style.transition="",p.scrollLeft=c,Math.abs(p.scrollLeft-c)>.5?requestAnimationFrame(()=>{p.scrollLeft=c,r.record(),Di=!1,window.isSwiping=!1}):(r.record(),Di=!1,window.isSwiping=!1))},B=e=>{e.target===f&&"transform"===e.propertyName&&(f.removeEventListener("transitionend",B),w())};f.addEventListener("transitionend",B),window.scrollAnimationId=setTimeout(w,300)};function Mi(e){return d(this,void 0,void 0,function*(){try{const t=yield fetch(e),i=yield t.blob();return yield new Promise((e,t)=>{const n=new FileReader;n.onloadend=()=>e(n.result),n.onerror=t,n.readAsDataURL(i)})}catch(e){throw console.error("转换失败:",e),e}})}function Fi(){return window.visualViewport?window.visualViewport.offsetLeft:window.pageXOffset||document.documentElement.scrollLeft||0}function Li(){return window.visualViewport?window.visualViewport.offsetTop:window.pageYOffset||document.documentElement.scrollTop||0}const Ti=(e,t,i)=>d(void 0,void 0,void 0,function*(){if(!e.target)return;e.preventDefault(),e.stopPropagation();let t=i.getTargetHref(e),n=yield i.handleLinkJump(t,e);if(!n.handled)return!1;if(n.external)return window.ReactNativeWebView.postMessage(JSON.stringify(Object.assign({event:"link-clicked",href:t,footnote:""},n))),!0;let o=yield i.getFootnoteContent(n.node);return window.ReactNativeWebView.postMessage(JSON.stringify(Object.assign({event:"link-clicked",href:t,footnote:o.handled?o.content:"",rect:e.target.getBoundingClientRect()},n))),!0});function Ri(e){if("A"===e.tagName)return e;let t=e;for(;t&&"BODY"!==t.tagName;){if("A"===t.tagName)return t;t=t.parentElement}return null}function Hi(e,t,i){const n=3*t+e+1;return i.layout.A.area.includes(n)?i.touchControlA:i.layout.B.area.includes(n)?i.touchControlB:i.layout.C.area.includes(n)?i.touchControlC:"right"}const Yi=e=>{var t,i,n;let o=e.getSelection();if(!o||!o.toString().trim())return"";try{let e=o.getRangeAt(0).commonAncestorContainer,r=(null===(t=e.nodeType===Node.TEXT_NODE?e.parentElement:e)||void 0===t?void 0:t.textContent)||"",s=o.toString().trim(),a=null!==(n=null===(i=r.match(/[^.!?。!?]*[.!?。!?]?/g))||void 0===i?void 0:i.filter(e=>e.length>0))&&void 0!==n?n:[];for(let e of a)if(e.includes(s))return e.trim();return r.trim().substring(0,200)}catch(e){}return""},Oi=(e,i,n,o,r,s,a,l)=>{var c;let g=i.contentWindow||(null===(c=i.contentDocument)||void 0===c?void 0:c.defaultView),h=l.getDocument(),A=0,u=0,p=0,f=0;const m=30;let w=Math.floor(n.clientWidth/12),B=w%2==0?w:w-1;n.clientWidth;const y=Ii({element:n,iframe:i,doc:e,render:l,readerMode:o,format:s,enableScrollPin:!0});let b=0;e.addEventListener("touchend",function(t){window.isSwiping=!1;let i=(new Date).getTime();if(i-f<=300)return void t.preventDefault();f=i,function(e,t,i){var n;if(!ki)return;if(ki=!1,"PDF"!==i)return;if(window.visualViewport.scale<=1.01)return;let o=Date.now();if(o-Qi<1e3)return;Qi=o;let r=e.target.ownerDocument,s=null===(n=null==r?void 0:r.defaultView)||void 0===n?void 0:n.frameElement,a=(null==s?void 0:s.getAttribute("id"))||"",l=a?parseInt(a.split("-").reverse()[0]):0;window.ReactNativeWebView.postMessage(JSON.stringify({event:"pinch-zoom",chapterDocIndex:l,scale:window.visualViewport.scale})),t.handleRenderPDFChapter(l,!0)}(t,l,s);const c=t.changedTouches[0],d=Date.now();let w=c.screenX,b=c.screenY;const C=d-A,v=w-u,E=b-p;if(Di&&("mimical"===r||"none"===r)&&"scroll"!==o)return Di=!1,l.mouseUpHandler(t),c.screenXwindow.innerWidth/4*1&&w-u>0&&(l.prev(),Di=!1),void setTimeout(()=>{let e=document.getElementById("book");e&&(e.style.display="none")},400);if(Di&&"sliding"===r&&"scroll"!==o){const t=Math.abs(v)/window.innerWidth,i=.1;return void Si(v>0&&t>i?"left":v<0&&t>i?"right":"stay",s,e,h,n,l,B)}var x=g.getSelection().toString(),I=Math.abs(v)>=m||Math.abs(E)>=m;if(!x||"PDF"===s&&("PDF"!==s||I)){if(x||null==y||y.onSelectionCleared(),C>500){const e=t.target;if(!e)return;if(Ri(e))return;if("IMG"===e.tagName||"image"===e.tagName){const t=e.src||e.getAttribute("xlink:href");return void(t.startsWith("blob:")&&Mi(t).then(e=>{window.ReactNativeWebView.postMessage(JSON.stringify({event:"view-image",imgSrc:e}))}))}}if(C<500&&Math.abs(v)=m||Math.abs(E)>=m)&&(window.ReactNativeWebView.postMessage(JSON.stringify({event:"swipe"})),"scroll"===o&&Math.abs(n.scrollHeight-n.scrollTop-n.clientHeight)<10&&window.ReactNativeWebView.postMessage(JSON.stringify({event:"scroll-bottom"})),"scroll"===o&&0===n.scrollTop&&window.ReactNativeWebView.postMessage(JSON.stringify({event:"scroll-top"})))}else window.ReactNativeWebView.postMessage(JSON.stringify({event:"select-text-after-touch",selectedText:x}))},!1),e.addEventListener("touchstart",function(e){A=Date.now();const t=e.target;if(!t)return;if(Ri(t))return;e.touches.length>1&&(e.preventDefault(),ki=!0);const i=e.touches[0];u=i.screenX,p=i.screenY},!1),e.addEventListener("touchmove",function(t){if(g.getSelection().toString().trim()){const e=t.touches[0];return void(null==y||y.onTouchMove(e.clientX,e.clientY))}if(!Di&&Math.abs(t.touches[0].screenX-u)<=10)return;if(t.preventDefault(),window.visualViewport.scale>1&&"PDF"===s)return void t.preventDefault();const i=t.touches[0],n=i.screenX,a=i.screenY,c=n-u,d=a-p;if((Math.abs(c)>10||Math.abs(d)>10)&&(window.isSwiping=!0),!Di&&Math.abs(c)>Math.abs(d)&&Math.abs(c)>10){if(Di=!0,b=n,e.body.style.transform="translateZ(0)","mimical"===r&&"scroll"!==o){let e=document.getElementById("book");e&&(e.style.display="block",l.mouseDownHandler(t))}}else if(Di&&"mimical"===r&&"scroll"!==o&&l.mouseMoveHandler(t),Di&&"sliding"===r&&"scroll"!==o){let t="PDF"===s?h:e;const i=n-b,o=t.body.scrollLeft;t.body.scrollLeft=o-i,b=n,requestAnimationFrame(()=>{})}},!1),e.addEventListener("pointermove",e=>{g.getSelection().toString().trim()&&(null==y||y.onTouchMove(e.clientX,e.clientY))},{passive:!0}),e.addEventListener("click",e=>{Ti(e,0,l)},!0);let C=0,v=0,E=i=>d(void 0,void 0,void 0,function*(){var o,r;const a=g.getSelection().toString().trim();if(a){var c=g.getSelection().getRangeAt(0);let A=l.getPageSize();var d=c.getBoundingClientRect();if("PDF"===s){let e=c.getClientRects();if(e.length>0){e=Array.from(e).filter(e=>Math.abs(e.height-A.sectionHeight)>10&&Math.abs(e.width-A.sectionWidth)>10&&e.height>0&&e.width>0);let t=1/0,i=1/0,n=-1/0,o=-1/0;for(let r=0;r{window.ReactNativeWebView.postMessage(JSON.stringify({event:"view-image",imgSrc:e}))}))}return Date.now()-C<100?setTimeout(()=>{1===v&&E(e)},600):E(e),e.preventDefault(),e.stopPropagation(),!1}};let x=0,I=0,D=0,Q=0;e.addEventListener("selectstart",t=>{v=0,C=Date.now(),D=Fi(),Q=Li(),"scroll"!==o&&(null==y||y.onSelectStart(),"PDF"===s&&(x=e.body.scrollLeft,I=e.body.scrollTop))},!1);let k=0;let S=null;e.addEventListener("selectionchange",t=>{"PDF"!==s&&(S&&clearTimeout(S),S=setTimeout(()=>{E(t),S=null},1e3));if(!g.getSelection().toString().trim())return void(null==y||y.onSelectionCleared());y?y.onSelectionChange():(x>0&&(e.body.scrollLeft=x),I>0&&(e.body.scrollTop=I)),v++;const i=Date.now();i-k>=3e3&&(k=i,window.ReactNativeWebView.postMessage(JSON.stringify({event:"selection-change"})))},!1),e.addEventListener("scroll",()=>{if("single"===o||"double"===o)if(y)y.applyScrollPin();else{const t=g.getSelection().toString().trim();t&&x>0&&(e.body.scrollLeft=x),t&&I>0&&(e.body.scrollTop=I)}})},Gi=(e,i,n,o,r,s,a,l)=>{var c;let g=i.contentWindow||(null===(c=i.contentDocument)||void 0===c?void 0:c.defaultView),h=l.getDocument(),A=0,u=0,p=0,f=0;let m=Math.floor(n.clientWidth/12),w=m%2==0?m:m-1;const B=Ii({element:n,iframe:i,doc:e,render:l,readerMode:o,format:s,enableScrollPin:!1});let y=0;e.addEventListener("touchend",function(i){var c,m;return d(this,void 0,void 0,function*(){window.isSwiping=!1;let d=(new Date).getTime();if(d-f<=300)return void i.preventDefault();f=d;const y=i.changedTouches[0],b=Date.now(),C=y.screenX,v=y.screenY,E=b-A,x=C-u,I=v-p;if(Di&&("mimical"===r||"none"===r)&&"scroll"!==o)return Di=!1,l.mouseUpHandler(i),Cwindow.innerWidth/4*1&&C-u>0&&(l.prev(),Di=!1),void setTimeout(()=>{let e=document.getElementById("book");e&&(e.style.display="none")},400);if(Di&&"sliding"===r&&"scroll"!==o){const t=Math.abs(x)/window.innerWidth,i=.1;return void Si(x>0&&t>i?"left":x<0&&t>i?"right":"stay",s,e,h,n,l,w)}const D=g.getSelection().toString().trim();if(D){var Q=g.getSelection().getRangeAt(0).getBoundingClientRect(),k=l.getPageSize(),S={top:Q.top-n.scrollTop,left:Q.left,width:Q.width,height:Q.height,screenWidth:window.innerWidth,screenHeight:window.innerHeight,sectionHeight:k.sectionHeight,sectionWidth:k.sectionWidth,gap:k.gap,scale:window.visualViewport.scale,offsetLeft:Fi(),offsetTop:Li()};t.init();let o=null;if("PDF"===s){let e=i.target.ownerDocument,t=null===(c=null==e?void 0:e.defaultView)||void 0===c?void 0:c.frameElement,n=(null==t?void 0:t.getAttribute("id"))||"",r=n?parseInt(n.split("-").reverse()[0]):0;S.chapterDocIndex=r+"",o=yield l.getHighlightCoords(r);let s=t.parentElement;s&&(S.top=S.top+parseFloat(s.getBoundingClientRect().top))}else o=yield l.getHighlightCoords();let r=Yi(e);return void window.ReactNativeWebView.postMessage(JSON.stringify({event:"select-text",selectedText:D,sentence:r,position:S,range:o}))}if(D||null==B||B.onSelectionCleared(),E>500){const e=i.target;if(!e)return;if(Ri(e))return;if("IMG"===e.tagName||"image"===e.tagName){const t=e.src||e.getAttribute("xlink:href");return void(t.startsWith("blob:")&&Mi(t).then(e=>{window.ReactNativeWebView.postMessage(JSON.stringify({event:"view-image",imgSrc:e}))}))}}if(E<500&&Math.abs(x)<30&&Math.abs(I)<30){const t=document.documentElement.clientWidth,c=document.documentElement.clientHeight;let d=Math.min(Math.max(C,0),t),g=Math.min(Math.max(v,0),c);if("PDF"===s&&"double"===o){let e=i.target.ownerDocument,n=null===(m=null==e?void 0:e.defaultView)||void 0===m?void 0:m.frameElement,o=(null==n?void 0:n.getAttribute("id"))||"";(o?parseInt(o.split("-").reverse()[0]):0)%2==1&&(d+=t/2)}const A=t/3,u=c/3;let p=Hi(Math.min(Math.floor(d/A),2),Math.min(Math.floor(g/u),2),a);if("sliding"===r&&"scroll"!==o){if("right"===p)return void Si("right",s,e,h,n,l,w);if("left"===p)return void Si("left",s,e,h,n,l,w)}window.ReactNativeWebView.postMessage(JSON.stringify({event:p}))}else(Math.abs(x)>=30||Math.abs(I)>=30)&&(window.ReactNativeWebView.postMessage(JSON.stringify({event:"swipe"})),"scroll"===o&&Math.abs(n.scrollHeight-n.scrollTop-n.clientHeight)<10&&window.ReactNativeWebView.postMessage(JSON.stringify({event:"scroll-bottom"})),"scroll"===o&&0===n.scrollTop&&window.ReactNativeWebView.postMessage(JSON.stringify({event:"scroll-top"})))})},{passive:!1}),e.addEventListener("touchstart",function(e){const t=e.target;if(!t)return;if(Ri(t))return;e.touches.length>1&&(ki=!0);const i=e.touches[0];A=Date.now(),u=i.screenX,p=i.screenY},{passive:!1}),e.addEventListener("touchmove",function(t){if(g.getSelection().toString().trim()){const e=t.touches[0];return void(null==B||B.onTouchMove(e.clientX,e.clientY))}if(!Di&&Math.abs(t.touches[0].screenX-u)<=10)return;if(window.visualViewport.scale>1&&"PDF"===s)return;"scroll"!==o&&t.preventDefault();const i=t.touches[0],n=i.screenX,a=i.screenY,c=n-u,d=a-p;if(!Di&&Math.abs(c)>Math.abs(d)&&Math.abs(c)>10){if(Di=!0,y=n,"mimical"===r&&"scroll"!==o){window.isSwiping=!0;let e=document.getElementById("book");e&&(e.style.display="block",l.mouseDownHandler(t))}}else if(Di&&"mimical"===r&&"scroll"!==o&&l.mouseMoveHandler(t),Di&&"sliding"===r&&"scroll"!==o){window.isSwiping=!0;let t="PDF"===s?h:e;const i=n-y,o=t.body.scrollLeft;t.body.scrollLeft=o-i,y=n,requestAnimationFrame(()=>{})}},{passive:!1}),e.addEventListener("pointermove",e=>{g.getSelection().toString().trim()&&(null==B||B.onTouchMove(e.clientX,e.clientY))},{passive:!0}),e.addEventListener("click",e=>{Ti(e,0,l)},!0),e.body.oncontextmenu=function(e){return e.preventDefault(),e.stopPropagation(),!1},e.addEventListener("selectstart",()=>{"scroll"!==o&&(null==B||B.onSelectStart())},!1);let b=0;e.addEventListener("selectionchange",e=>{if(!g.getSelection().toString().trim())return void(null==B||B.onSelectionCleared());null==B||B.onSelectionChange();const t=Date.now();t-b>=3e3&&(b=t,window.ReactNativeWebView.postMessage(JSON.stringify({event:"selection-change"})))},{passive:!1})};class Ni extends jt{constructor(e){super(),this.animation="none",this.isBionic="no",this.platform="web",this.isAllowScript="no",this.fullTranslationMode="no",this.addPageAnimation=e=>{if("mimical"!==this.animation)return;const t=this.getProgress();if(!(null==t?void 0:t.totalPage))return;const i=pi(t.totalPage,this.isDarkMode,e||this.backgroundColor,Math.max(0,Math.floor(t.currentPage||1)-1));i&&(this.flipToNextPage=i.flipToNextPage,this.flipToPrevPage=i.flipToPrevPage,this.mouseDownHandler=i.mouseDownHandler,this.mouseUpHandler=i.mouseUpHandler,this.mouseMoveHandler=i.mouseMoveHandler)},this.readerMode=e.readerMode,window.readerMode=e.readerMode,this.animation=e.animation||"none",this.format=e.format,this.convertChinese=e.convertChinese,window.convertChinese=e.convertChinese,this.isIndent=e.isIndent,window.isIndent=e.isIndent,this.isHyphenation=e.isHyphenation||"no",window.isHyphenation=this.isHyphenation,this.isDarkMode=e.isDarkMode,this.isMobile=e.isMobile,this.backgroundColor=e.backgroundColor||"",this.textOrientation=e.textOrientation,window.textOrientation=e.textOrientation,this.chapterList=[],this.chapterDocList=[],this.flattenChapters=[],this.book="",this.element="",this.tempLocation={},this.isBionic=e.isBionic||"no",this.platform=e.platform||"web",window.platform=this.platform,window.isBionic=this.isBionic,this.transMap={},window.transMap=this.transMap,this.fullTranslationMode=e.fullTranslationMode||"no",window.fullTranslationMode=this.fullTranslationMode,this.bookLayout=e.bookLayout||"",window.bookLayout=this.bookLayout,this.codeHighlight=e.codeHighlight||"",window.codeHighlight=this.codeHighlight,this.textRules=e.textRules||[],window.textRules=this.textRules,this.isAllowScript="PDF"===this.format||"yes"===this.isMobile?"yes":e.isAllowScript||"no",this.flipToNextPage=()=>{},this.flipToPrevPage=()=>{},this.mouseDownHandler=()=>{},this.mouseUpHandler=()=>{},this.mouseMoveHandler=e=>{},this.touchEventSet={},"yes"===this.isMobile&&(console.log=function(...e){window.ReactNativeWebView.postMessage(e.map(e=>String(e)).join(", "))},console.info=function(...e){window.ReactNativeWebView.postMessage(e.map(e=>String(e)).join(", "))},console.error=function(...e){window.ReactNativeWebView.postMessage(e.map(e=>String(e)).join(", "))})}isVertical(){return"vertical"===this.textOrientation&&"scroll"!==this.readerMode}getPageSize(){let e="double"===this.readerMode?2:1,t=this.getIframe();if(!t)return;let i=null==t?void 0:t.getBoundingClientRect().height;if(this.isVertical()){let t=Math.floor(this.element.clientHeight/12),i=t%2==0?t:t-1;return{width:this.element.clientWidth,height:this.element.clientHeight,left:G(this.element),top:N(this.element),scrollTop:this.element.scrollTop,scrollLeft:this.element.scrollWidth/2-this.element.clientWidth/2,sectionWidth:this.element.clientWidth,sectionHeight:(this.element.clientHeight-i)/e,gap:i}}let n=Math.floor(this.element.clientWidth/12),o=n%2==0?n:n-1;return{width:this.element.clientWidth,height:this.element.clientHeight,left:G(this.element),top:N(this.element),scrollTop:this.element.scrollTop,scrollLeft:this.element.scrollWidth/2-this.element.clientWidth/2,sectionWidth:(this.element.clientWidth-o)/e,sectionHeight:i,gap:o}}scrollToText(e){return d(this,void 0,void 0,function*(){let t=this.getDocument();if(!t)return;let i=I(t.body).filter(e=>!D(e)).filter(t=>(t.textContent||"").indexOf(e)>-1);if(i.length>0){let e=i[0],n=e?G(e)-O(e.marginLeft||parseFloat(getComputedStyle(e).marginLeft)):0,o=e?N(e)-O(e.marginTop||parseFloat(getComputedStyle(e).marginTop)):0;"scroll"!==this.readerMode?this.isVertical()?t.body.scrollTo(0,o):t.body.scrollTo(n,0):this.element.scrollTo(0,o)}"none"!==this.animation&&"yes"!==this.isMobile&&(yield new Promise(e=>setTimeout(e,1e3))),yield St(this.element,this.readerMode,this.flatChapter(this.chapterList),this.chapterDocList,this.tempLocation,t,null),this.trigger("scroll-text")})}goToPage(e){return d(this,void 0,void 0,function*(){if("scroll"===this.readerMode){e<0&&(e=1);let t=(e-1)*(this.element.clientHeight-50);this.element.scrollTo(0,t)}else{let t=this.getDocument();if(!t)return;if(this.isVertical()){let i=Math.floor(this.element.clientHeight/12),n=i%2==0?i:i-1;const o=this.element.clientHeight+n;"double"===this.readerMode?e=(e%2==0?e-2:e-1)/2:e-=1,e<0&&(e=0);const r=e*o;t.body.scrollTo({left:0,top:r,behavior:"sliding"===this.animation&&"yes"!==this.isMobile?"smooth":"auto"})}else{let i=Math.floor(this.element.clientWidth/12),n=i%2==0?i:i-1;const o=this.element.clientWidth+n;"double"===this.readerMode?e=(e%2==0?e-2:e-1)/2:e-=1,e<0&&(e=0);const r=e*o;t.body.scrollTo({top:0,left:r,behavior:"sliding"===this.animation&&"yes"!==this.isMobile?"smooth":"auto"})}}yield this.record()})}resolveChapter(e){let t=e;t=t.replace(/^#/,"").replace(/^\.\//,"").replace(/^\//,""),t.startsWith("../")&&(t=t.replace(/^\.\.\//,""));let i=-1;0===this.flattenChapters.length&&this.flatChapter(this.chapterList);for(let e=0;e-1){let t=this.flattenChapters[i];return e.startsWith("kindle")?this.chapterDocList[t.index].href===e?t:null:t}for(let e=0;e-1){let e=this.chapterDocList[i];return{label:e.label||"",href:e.href,index:i}}for(let e=0;e-1?{label:this.chapterDocList[i].label||"",href:this.chapterDocList[i].href,index:i}:null}flatChapter(e){let t=[];for(let i=0;i0?(t.push(e[i]),t=t.concat(this.flatChapter(e[i].subitems))):t.push(e[i]);return this.flattenChapters=t,t}getChapter(){return this.chapterList}getChapterDoc(){return this.chapterDocList}goToPercentage(e){return d(this,void 0,void 0,function*(){if(0===this.flattenChapters.length&&this.flatChapter(this.chapterList),this.flattenChapters.length>0){if(1===this.flattenChapters.length){let t=this.getProgress();if(!t)return;let i=Math.floor(t.totalPage*e);return void(yield this.goToPage(i))}let t=1===e?this.flattenChapters.length-1:Math.floor(this.flattenChapters.length*e);yield this.goToChapter(this.flattenChapters[t].index.toString(),this.flattenChapters[t].href,this.flattenChapters[t].label)}})}goToChapterIndex(e){return d(this,void 0,void 0,function*(){0===this.flattenChapters.length&&this.flatChapter(this.chapterList),this.flattenChapters.length>0&&(yield this.goToChapter(this.flattenChapters[e].index,this.flattenChapters[e].href,this.flattenChapters[e].label))})}goToChapterDocIndex(e){return d(this,void 0,void 0,function*(){this.chapterDocList.length>0&&(yield this.goToChapter(e,this.chapterDocList[e].href,this.chapterDocList[e].label))})}goToChapter(e,t,i){return d(this,void 0,void 0,function*(){let n=this.getDocument(),o=this.getIframe();if(n&&o){if(yield Et(parseInt(e),i,t,this.chapterDocList,this.element,this.readerMode,this.format,this.tempLocation,n,o),t&&t.startsWith("kindle")){let e=yield this.book.resolveHref(t);if(e.anchor){let t=e.anchor(n);t&&(yield this.goToNode(t))}}t&&t.indexOf("#")>-1&&(yield Dt(this.element,this.readerMode,"","",t,"",n)),yield this.record(),this.trigger("rendered"),this.addPageAnimation()}})}goToPosition(e){return d(this,void 0,void 0,function*(){let i=this.getDocument(),n=this.getIframe();if(!i||!n)return;let o=JSON.parse(e);this.tempLocation={text:o.text,chapterTitle:o.chapterTitle,chapterDocIndex:o.chapterDocIndex,chapterHref:o.chapterHref,count:o.count,page:o.page,percentage:o.percentage};let{text:r,chapterTitle:s,chapterDocIndex:a,chapterHref:l,count:c,page:d,cfi:g}=o;if(yield Et(parseInt(a),s,l,this.chapterDocList,this.element,this.readerMode,this.format,this.tempLocation,i,n),g){const e=new $t(g,{});let t=this.getDocument();if(!t)return;const{node:i,offset:n}=e.resolve(t,{});if(i){let e=null,t=i;for(;t;){const i=t;if(i.tagName&&"h1,h2,h3,h4,h5,h6,p,div,ul,dl,ol,pre,li,dt,dd,blockquote,address,kookitmarker".indexOf(i.tagName.toLowerCase())>-1){e=i;break}t=t.parentNode}e&&(c="ignore",r=e.textContent)}}yield Dt(this.element,this.readerMode,r,c,"",d,i),t.init(),yield this.record(),this.trigger("rendered"),this.addPageAnimation()})}getDocument(){let e=document.getElementById("page-area");if(!e)return null;let t=e.getElementsByTagName("iframe")[0];if(!t)return null;let i=t.contentDocument;return i||null}getIframe(){let e=document.getElementById("page-area");if(!e)return null;let t=e.getElementsByTagName("iframe")[0];return t||null}goToNode(e){return d(this,void 0,void 0,function*(){let t=this.getDocument();if(!t)return;if(!e)return;let i=Qt(e,this.element,this.readerMode),n=i?G(i)-O(i.marginLeft||parseFloat(getComputedStyle(i).marginLeft)):0,o=i?N(i)-O(i.marginTop||parseFloat(getComputedStyle(i).marginTop)):0;"scroll"!==this.readerMode?this.isVertical()?t.body.scrollTo(0,o):t.body.scrollTo(n,0):this.element.scrollTo(0,o),yield this.record(),this.trigger("rendered")})}goToXpath(e){return d(this,void 0,void 0,function*(){let i=this.getDocument();if(!i)return;let n=e.match(/\/body\/DocFragment\[(\d+)\]/),o=n?parseInt(n[1]||"1")-1:0,r=this.chapterDocList[o];if(yield Et(o,r.label||"",r.href,this.chapterDocList,this.element,this.readerMode,this.format,this.tempLocation,i,this.getIframe()),i=this.getDocument(),!i)return;let s=e.replace(/\/body\/DocFragment\[\d+\]/,"");s=s.split("/text()")[0];const a=((e,t)=>{if(!e||!t||!t.body)return null;try{let i=e;if(i.startsWith("/body/"))i=i.slice(6);else if(i.startsWith("/body"))return t.body;const n=i.split("/").filter(Boolean);let o=t.body;for(const e of n){const t=e.match(/^([a-zA-Z0-9]+)(?:\[(\d+)\])?$/);if(!t)return null;const i=t[1].toLowerCase(),n=t[2]?parseInt(t[2])-1:0,r=Array.from(o.children).filter(e=>e.tagName.toLowerCase()===i);if(!r[n])return null;o=r[n]}return o}catch(e){return null}})(s,i);yield this.goToNode(a),t.init(),yield this.record(),this.trigger("rendered")})}removeContent(){this.element.innerHTML=""}prev(){return d(this,void 0,void 0,function*(){let e=this.getDocument(),t=this.getIframe();if(e&&t){if("scroll"===this.readerMode&&0===O(this.element.scrollTop)||this.isVertical()&&0===O(e.body.scrollTop)||"scroll"!==this.readerMode&&!this.isVertical()&&0===O(e.body.scrollLeft)){if("0"===this.tempLocation.chapterDocIndex)return;yield yt(this.element,this.flatChapter(this.chapterList),this.chapterDocList,this.readerMode,this.format,this.tempLocation,e,t),parseInt(this.tempLocation.chapterDocIndex||"-1")>-1&&("scroll"===this.readerMode?this.element.scrollTo(0,e.body.scrollHeight):this.isVertical()?e.body.scrollTo(0,e.body.scrollHeight):e.body.scrollTo(e.body.scrollWidth,0)),this.trigger("rendered")}else"scroll"===this.readerMode?this.element.scrollBy({left:0,top:-(this.element.clientHeight-50),behavior:"smooth"}):yield wt(this.element,this.animation,1,e,this.flipToNextPage,this.flipToPrevPage,this.isMobile);yield this.record()}})}next(){return d(this,void 0,void 0,function*(){let e=this.getDocument(),t=this.getIframe();if(e&&t){if(this.isVertical()&&Math.abs(e.body.scrollHeight-O(e.body.scrollTop)-e.body.clientHeight)<50||Math.abs(e.body.scrollWidth-O(e.body.scrollLeft)-e.body.clientWidth)<50&&"scroll"!==this.readerMode&&!this.isVertical()||Math.abs(this.element.scrollHeight-O(this.element.scrollTop)-this.element.clientHeight)<20&&"scroll"===this.readerMode)return yield Lt(this.element,this.flatChapter(this.chapterList),this.chapterDocList,this.readerMode,this.format,this.tempLocation,e,t),void this.trigger("rendered");"scroll"===this.readerMode?Math.abs(this.element.scrollHeight-O(this.element.scrollTop)-this.element.clientHeight)-(this.element.clientHeight-50)<20&&Math.abs(this.element.scrollHeight-O(this.element.scrollTop)-this.element.clientHeight)>20?this.element.scrollTo({left:0,top:this.element.scrollHeight-20,behavior:"smooth"}):this.element.scrollBy({left:0,top:this.element.clientHeight-50,behavior:"smooth"}):yield wt(this.element,this.animation,-1,e,this.flipToNextPage,this.flipToPrevPage,this.isMobile),yield this.record()}})}slideTo(e){return d(this,void 0,void 0,function*(){let t=this.getDocument();if(!t)return;let i=Math.floor(this.element.clientWidth/12),n=i%2==0?i:i-1;Si(e,this.format,t,t,this.element,this,n)})}prevChapter(){return d(this,void 0,void 0,function*(){let e=this.getDocument(),t=this.getIframe();e&&t&&(yield yt(this.element,this.flatChapter(this.chapterList),this.chapterDocList,this.readerMode,this.format,this.tempLocation,e,t),yield this.record(),this.trigger("rendered"))})}nextChapter(){return d(this,void 0,void 0,function*(){let e=this.getDocument(),t=this.getIframe();e&&t&&(yield Lt(this.element,this.flatChapter(this.chapterList),this.chapterDocList,this.readerMode,this.format,this.tempLocation,e,t),yield this.record(),this.trigger("rendered"))})}visibleText(){return d(this,void 0,void 0,function*(){let e=this.getDocument();return e?Ut(this.element,this.readerMode,e):""})}audioText(){return d(this,void 0,void 0,function*(){let e=this.getDocument();return e?yield Tt(this.element,this.readerMode,e,!1):[]})}getRestAudioText(e){return d(this,void 0,void 0,function*(){const t=[],i=parseInt(this.tempLocation.chapterDocIndex||"0")+1,n=Math.min(i+e,this.chapterDocList.length);for(let e=i;e!!e)})}return t})}chapterText(){return d(this,void 0,void 0,function*(){let e=this.getDocument();return e&&e.body.textContent||""})}getImageList(e){return d(this,void 0,void 0,function*(){if("PDF"===this.format)return[];let t;if(null==e){const e=this.getDocument();if(!e)return[];t=j(e.body)}else{if(e<0||e>this.chapterDocList.length-1)return[];const i=yield U(this.chapterDocList[e].text,!1);if(!i)return[];const n=(new DOMParser).parseFromString(i,"text/html");t=j(n.body)}return"yes"!==this.isMobile?t:Promise.all(t.map(e=>d(this,void 0,void 0,function*(){if(!e.startsWith("blob:"))return e;try{return yield Mi(e)}catch(t){return e}})))})}autoScroll(e,t){if(!this.getDocument())return;if(this.scrollTimer&&(cancelAnimationFrame(this.scrollTimer),this.scrollTimer=null),this.recordTimer&&(clearInterval(this.recordTimer),this.recordTimer=null),"no"===t||"scroll"!==this.readerMode)return;let i=0,n=0;const o=()=>{if(i+=e,n++,Math.abs(e)<1){if((Math.abs(i)>=.5||n%Math.max(1,Math.floor(30/Math.abs(e)))===0)&&Math.abs(i)>=.1){const e=Math.round(10*i)/10;this.element.scrollBy({left:0,top:e,behavior:"auto"}),i=0,n=0}}else if(Math.abs(i)>=1){const e=Math.floor(i);this.element.scrollBy({left:0,top:e,behavior:"auto"}),i-=e}this.scrollTimer=requestAnimationFrame(o)};this.scrollTimer=requestAnimationFrame(o),this.recordTimer=setInterval(()=>{"scroll"===this.readerMode&&Math.abs(this.element.scrollHeight-this.element.scrollTop-this.element.clientHeight)<10&&this.nextChapter(),this.record()},3e3)}autoScrollIOS(e,t){let i=this.getDocument();if(!i)return;if(this.scrollTimer&&(clearInterval(this.scrollTimer),this.scrollTimer=null),this.recordTimer&&(clearInterval(this.recordTimer),this.recordTimer=null),"no"===t||"scroll"!==this.readerMode)return;let n=0,o=this.element.scrollTop;this.scrollTimer=setInterval(()=>{n+=e,i&&(i.body.style.transform=`translateY(-${n}px)`,Math.abs(n)>=50&&(i.body.style.transform="translateY(0px)",o+=n,this.element.scrollTo({left:0,top:o,behavior:"auto"}),n=0))},30),this.recordTimer=setInterval(()=>{"scroll"===this.readerMode&&Math.abs(this.element.scrollHeight-this.element.scrollTop-this.element.clientHeight)<10&&this.nextChapter(),this.record()},3e3)}highlightSearchNode(e,t){let i=this.getDocument();i&&Wt(e,t,i)}highlightAudioNode(e,t){let i=this.getDocument();i&&((e,t,i)=>{if(i.querySelectorAll('span[data-highlight="true"]').forEach(e=>{const t=e.parentNode;t&&t.replaceChild(i.createTextNode(e.textContent||""),e)}),!e.trim())return;let n=I(i.body).filter(t=>{const i=t.textContent||"";return i.trim()&&i.indexOf(e)>-1});if(n.length>0){const o=n=>{var o;if(n.nodeType===Node.TEXT_NODE){const r=n.textContent||"",s=r.indexOf(e);if(s>-1){const a=r.substring(0,s),l=r.substring(s+e.length),c=i.createElement("span");c.setAttribute("style",t),c.setAttribute("data-highlight","true"),c.textContent=e,c.setAttribute("class","kookit-highlight-text");const d=i.createDocumentFragment();return a&&d.appendChild(i.createTextNode(a)),d.appendChild(c),l&&d.appendChild(i.createTextNode(l)),null===(o=n.parentNode)||void 0===o||o.replaceChild(d,n),!0}}return!1},r=e=>{if(o(e))return!0;const t=Array.from(e.childNodes);for(const e of t)if(r(e))return!0;return!1};r(n[0])}})(e,t,i,this.element,this.readerMode)}doSearch(e){return d(this,void 0,void 0,function*(){return"PDF"===this.format?yield((e,t)=>d(void 0,void 0,void 0,function*(){let i=[];for(let n=0;n{const i=e.transform[5];let n=null;for(const[t,o]of r.entries()){const r=o[0].transform[5];if(Math.abs(i-r){o.sort((e,t)=>e.transform[4]-t.transform[4]);const s=o.map(e=>e.str).join("").toLowerCase();s.indexOf(e.toLowerCase())>-1&&i.push({excerpt:s,cfi:JSON.stringify({text:s+"#"+n+"#"+r,chapterTitle:t[n].label,chapterDocIndex:n,chapterHref:t[n].href,count:"search",percentage:n/t.length,keyword:e})})})}return i}))(e,this.chapterDocList):yield((e,t)=>d(void 0,void 0,void 0,function*(){var i,n;let o=[];for(let r=0;r!D(e));for(let s=0;s-1&&o.push({excerpt:(null===(n=a[s].textContent)||void 0===n?void 0:n.substring(l-100,l+100))||"",cfi:JSON.stringify({text:a[s].textContent,chapterTitle:t[r].label,chapterDocIndex:r,chapterHref:t[r].href,count:"search",percentage:r/t.length,keyword:e})})}}return o}))(e,this.chapterDocList)})}getProgress(){let e=this.getDocument();if(e)return Object.assign(Object.assign({},q(this.readerMode,e,this.element)),{percentage:this.tempLocation.percentage})}record(){return d(this,void 0,void 0,function*(){"none"!==this.animation&&"yes"!==this.isMobile&&(yield new Promise(e=>setTimeout(e,1e3)));let e=this.getDocument();e&&(yield St(this.element,this.readerMode,this.flatChapter(this.chapterList),this.chapterDocList,this.tempLocation,e,null),this.trigger("page-changed"))})}getPosition(){return this.tempLocation}getBatchTransTexts(){return d(this,void 0,void 0,function*(){let e=yield this.audioText();e=e.slice(0,200);let t=0;return e=e.filter(e=>(t+=e.length,t<=1e4)),e=e.filter(e=>!this.transMap[e]||!this.transMap[e].text),e.filter(e=>e.trim().length>0)})}getNotePosition(){return d(this,void 0,void 0,function*(){let e=this.getDocument();if(!e)return;let t=te(e);return t?(yield St(this.element,this.readerMode,this.flatChapter(this.chapterList),this.chapterDocList,this.tempLocation,e,t),this.tempLocation):void 0})}setStyle(e){let t=this.getDocument();if(!t)return;const i="kookit-default-style";let n=t.head.querySelector(`style#${i}`);if(n)n.innerHTML=e;else{var o=document.createElement("style");o.id=i,o.innerHTML=e,t.head.appendChild(o)}}getHighlightCoords(){return d(this,void 0,void 0,function*(){let e=this.getDocument(),i=this.getIframe();if(e&&i)return t.getSelection(i).saveCharacterRanges(e.body)[0]})}renderHighlighters(e,i){return d(this,void 0,void 0,function*(){e=e.reverse();let n=this.getDocument(),o=this.getIframe();if(!n||!o)return;si(n);const r=e.map(e=>({range:JSON.parse(e.range),colorCode:e.color,noteKey:e.key,isNote:""!==e.notes,noteContent:e.notes||""}));try{((e,i,n,o,r)=>{var s;let a=o.contentWindow||(null===(s=o.contentDocument)||void 0===s?void 0:s.defaultView),l=t.getSelection(o);const c=[];for(let t=0;t{var d,g;let h=s.contentWindow||(null===(d=s.contentDocument)||void 0===d?void 0:d.defaultView),A=e;A=[A];let u=t.getSelection(s);u.restoreCharacterRanges(r,A);let p=u.getRangeAt(0);ai(p,i,n,o,r,a,l,c),h&&h.getSelection()&&(null===(g=h.getSelection())||void 0===g||g.empty())})(JSON.parse(e.range),e.color,e.key,i,n,o,""!==e.notes,"yes"===this.isMobile,e.notes||"")})}displayFontBase64(e,t,i,n){return d(this,void 0,void 0,function*(){let o=this.getDocument();if(!o||0===t.length)return;const r=new FontFace(e,`url(data:font/${n};charset=utf-8;base64,${t})`);let s=yield r.load();document.fonts.add(s);const a="@font-face { font-family: '"+e+"'; src: url('data:font/"+n+";charset=utf-8;base64,"+t+"') format('"+i+"');}",l=document.createElement("style");l.type="text/css",l.appendChild(document.createTextNode(a)),o.head.appendChild(l)})}displayFontUrl(e,t){return d(this,void 0,void 0,function*(){let i=this.getDocument();if(!i||0===t.length)return;const n=new FontFace(e,`url(${t})`);let o=yield n.load();document.fonts.add(o);const r="@font-face { font-family: '"+e+"'; src: url('"+t+"') format('truetype');}",s=document.createElement("style");s.type="text/css",s.appendChild(document.createTextNode(r)),i.head.appendChild(s)})}getAllDocuments(){let e=this.getDocument();if(!e)return[];if("PDF"!==this.format)return[e];let t=e.querySelectorAll("iframe"),i=[];return t.forEach(e=>{let t=e.contentDocument;t&&i.push(t)}),[e,...i]}getAllIframes(){let e=this.getIframe();if(!e)return[];if("PDF"!==this.format)return[e];let t=this.getDocument();if(!t)return[];let i=t.querySelectorAll("iframe"),n=[];return i.forEach(e=>{let t=e;n.push(t)}),[e,...n]}addTouchEvent(e,t){let i=this.getAllDocuments(),n=this.getAllIframes();for(let o=0;o-1)){let n=this.resolveChapter(e);if(n)return yield this.goToChapter(n.index,n.href,n.label),{handled:!0};let o=yield this.book.resolveHref(e),r=this.tempLocation.chapterDocIndex;if(o.index===parseInt(r)){let e=o.anchor(i);if(!e)return{handled:!1};let t=e.getAttribute("id")||"";o=Object.assign(Object.assign({},o),{id:t})}if(!o.anchor)return{handled:!1};let s=this.getPosition();if(o.index!==parseInt(s.chapterDocIndex)){if(bt(t.target)){let e=yield fetch(yield this.chapterDocList[o.index].text.load()).then(e=>e.blob()),t=yield e.text(),i=o.anchor((new DOMParser).parseFromString(t,"text/html"));return i?{handled:!0,isShowMenu:!0,isJump:!1,href:"",node:i}:{handled:!1}}return{handled:!0}}{let t=o.anchor(i);t&&(e="#"+t.getAttribute("id"))}}if(e&&-1===e.indexOf("../")&&(0===e.indexOf("http")||0===e.indexOf("mailto"))&&-1===e.indexOf("OEBPF")&&-1===e.indexOf("OEBPS")&&-1===e.indexOf("footnote")&&-1===e.indexOf("blob")&&-1===e.indexOf("data:application"))return{handled:!0,href:e,external:!0};if(e&&this.resolveChapter(e)){let t=this.resolveChapter(e);return t?(yield this.goToChapter(t.index,t.href,t.label),{handled:!0}):{handled:!1}}if(e&&e.indexOf("#")>-1){let n=e.split("#").reverse()[0],o=i.body.querySelector("#"+CSS.escape(n));t.target.getBoundingClientRect();let r=!1;if(!o||t.target===o||o.contains(t.target)){if(0!==e.indexOf("#")){for(;e.startsWith(".");)e=e.substring(1);let i=this.resolveChapter(e.split("#")[0]);if(!i)return{handled:!1};if(bt(t.target)){let e=yield fetch(yield this.chapterDocList[i.index].text.load()).then(e=>e.blob()),t=yield e.text();return o=(new DOMParser).parseFromString(t,"text/html").body.querySelector("#"+CSS.escape(n)),o?{handled:!0,isShowMenu:!0,isJump:!1,href:"",node:o}:{handled:!1}}yield this.goToChapter(i.index,i.href,i.label)}if(o=i.body.querySelector("#"+CSS.escape(n)),!o)return{handled:!1};r=!0,yield this.goToNode(o)}return bt(t.target)?{handled:!0,isShowMenu:!0,isJump:r,href:e,node:o}:{handled:!0}}if(e&&this.book.resolveHref&&this.book.resolveHref(e)){let t=yield this.book.resolveHref(e);return t?(yield this.goToChapter(t.index,t.href,t.label),{handled:!0}):{handled:!1}}return{handled:!1}})}getFootnoteContent(e){return d(this,void 0,void 0,function*(){if(bt(e)||!e.textContent.trim()||"A"===e.tagName){let t=e.nextSibling,i=e.textContent;for(;t&&(t.tagName!==e.tagName||!i.trim());)i+=t.textContent,t=t.nextSibling;if(!i.trim()||Ct(i)){let t=e.parentNode;for(;t&&"BODY"!==t.tagName;){const e=t.textContent||"";if(e.trim()&&!Ct(e))break;t=t.parentNode}if(!t)return{handled:!1};e=t}else i.trim()&&i.trim().length<=3e3&&((e=document.createElement("div")).innerHTML=i)}let t=e.innerHTML;return e.textContent.trim()?e.textContent.trim()&&e.textContent.trim().length>3e3?{handled:!1}:(t=yield(i=t,d(void 0,void 0,void 0,function*(){const e=(new DOMParser).parseFromString(i,"text/html"),t=Array.from(e.getElementsByTagName("img"));for(const e of t)if(e.src&&e.src.startsWith("blob:"))try{const t=yield vt(e.src);e.src=t,e.style.maxWidth="100%"}catch(e){console.error("Error converting blob to data URL:",e)}return e.body.innerHTML})),{handled:!0,content:t}):{handled:!1};var i})}handleBatchTransResult(e,t){let i=this.getDocument(),n=this.getIframe();if(i&&n){for(let n=0;n{e.setAttribute("style",(e.getAttribute("style")||"")+";font-size:0px !important;")})}}}}"scroll"===this.readerMode&&(n.height=i.body.scrollHeight+"px",n.height=i.body.scrollHeight+300+"px")}}handleWordDefinitionResult(e,t,i){let n=this.getDocument(),o=this.getIframe();if(!n||!o)return;gi(n);const r=I(n.body).filter(e=>!D(e));for(const o of e){const{text:e,words:s}=o;if(!s||0===s.length)continue;const a=r.find(t=>t.textContent===e);if(!a)continue;const l={};for(const e of s)if("zh"===t){const t=e.simplified||"",i=e.traditional||"";t&&(l[t]=e),i&&i!==t&&(l[i]=e)}else{const t=(e.word||"").toLowerCase();t&&(l[t]=e)}hi(l,n,t,i,a)}"scroll"===this.readerMode&&(o.height=n.body.scrollHeight+"px",o.height=n.body.scrollHeight+300+"px")}clearWordDefinitionResult(){let e=this.getDocument();e&&gi(e)}}const Ui={svg:"image/svg+xml",png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",webp:"image/webp",zip:"application/zip",rar:"application/x-rar-compressed","7z":"application/x-7z-compressed",tar:"application/x-tar",html:"text/html",htm:"text/html",xml:"text/xml",xhtml:"application/xhtml+xml",css:"text/css"},Wi={"image/svg+xml":"svg","image/png":"png","image/jpeg":"jpg","image/gif":"gif","image/webp":"webp","application/zip":"zip","application/x-rar-compressed":"rar","application/x-7z-compressed":"7z","application/x-tar":"tar","text/html":"html","text/xml":"xml","application/xhtml+xml":"xhtml","text/css":"css"},Pi=t=>d(void 0,void 0,void 0,function*(){let n=yield i.loadAsync(t);var o=n.file("toc.json");let r=[];o&&(r=JSON.parse(yield o.async("string")));var s=n.file("sections.json");let a=[];s&&(a=JSON.parse(yield s.async("string")));const l={getCover:()=>""};return l.sections=a.map((e,t)=>({id:e.href,load:()=>(e=>d(void 0,void 0,void 0,function*(){var t=n.file("chapters/"+e+".html");let i="";return t&&(i=yield t.async("string")),URL.createObjectURL(new Blob([i],{type:"text/html"}))}))(t),unload:()=>{},loadAsset:e=>(e=>d(void 0,void 0,void 0,function*(){var t=n.file(e);let i;return t&&(i=yield t.async("arraybuffer")),URL.createObjectURL(new Blob([i],{type:Ui[e.split(".").reverse()[0]]}))}))(e)})),l.toc=r.map(e=>({label:e.label,href:e.href,subitems:e.subitems})),l.rendition={layout:"pre-paginated"},l.resolveHref=t=>({index:e.findLastIndex(a,{href:t})}),l.resolveHrefIndex=t=>({index:e.findLastIndex(a,{href:t})}),l.splitTOCHref=e=>[e,null],l.getTOCFragment=e=>e.documentElement,l}),ji=e=>new Promise((t,n)=>d(void 0,void 0,void 0,function*(){let n=new oe(e),o=yield n.getChapter(e.toc),r=yield n.getChapterDoc(),s=o,a=r.map(e=>({href:e.href,label:e.label})),l=yield Promise.all(r.map(e=>d(void 0,void 0,void 0,function*(){let t="";if(e.text&&e.text.load){let i=yield fetch(yield e.text.load()).then(e=>e.blob());t=yield i.text()}return t}))),c=new i;c.file("toc.json",JSON.stringify(s)),c.file("sections.json",JSON.stringify(a));let g=[];for(let e=0;ee.blob());n.file(t+"."+Wi[r.type],r);let s="imgs/"+e+"/"+t+"."+Wi[r.type];i[t].src=s,i[t].getAttribute("xlink:href")&&i[t].setAttribute("xlink:href",s)}catch(e){console.error(e)}}let n=Array.from(t.getElementsByTagName("link"));for(let t=0;te.blob());o.file(t+"."+Wi[n.type],n),i.href="css/"+e+"/"+t+"."+Wi[n.type]}catch(e){console.error(e)}}g.push(t.documentElement.innerHTML)}let h=c.folder("chapters");if(h){for(let e=0;ed(void 0,void 0,void 0,function*(){t(yield new Response(e).arrayBuffer())})).catch(e=>{t("err")})}})),zi=4294967295,Ki=65535,qi=134695760,Ji=qi,Vi=33639248,Xi=101075792,Zi=22,$i=16384,_i=void 0,en=1/0,tn="undefined",nn="function";let on=2;try{typeof navigator!=tn&&navigator.hardwareConcurrency&&(on=navigator.hardwareConcurrency)}catch{}const rn={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:65536,maxWorkers:on,terminateWorkerTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,CompressionStream:typeof CompressionStream!=tn&&CompressionStream,DecompressionStream:typeof DecompressionStream!=tn&&DecompressionStream},sn=Object.assign({},rn);function an(e){const{baseURI:t,chunkSize:i,maxWorkers:n,terminateWorkerTimeout:o,useCompressionStream:r,useWebWorkers:s,CompressionStream:a,DecompressionStream:l,CompressionStreamZlib:c,DecompressionStreamZlib:d,workerURI:g,wasmURI:h}=e;ln("baseURI",t),ln("wasmURI",h),ln("workerURI",g),ln("chunkSize",i),ln("maxWorkers",n),ln("terminateWorkerTimeout",o),ln("useCompressionStream",r),ln("useWebWorkers",s),ln("CompressionStream",a),ln("DecompressionStream",l),ln("CompressionStreamZlib",c),ln("DecompressionStreamZlib",d)}function ln(e,t){t!==_i&&(sn[e]=t)}const cn=[];for(let e=0;e<256;e++){let t=e;for(let e=0;e<8;e++)1&t?t=t>>>1^3988292384:t>>>=1;cn[e]=t}class dn{constructor(e){this.crc=e||-1}append(e){let t=0|this.crc;for(let i=0,n=0|e.length;i>>8^cn[255&(t^e[i])];this.crc=t}get(){return~this.crc}}class gn extends TransformStream{constructor(){let e;const t=new dn;super({transform(e,i){t.append(e),i.enqueue(e)},flush(){const i=new Uint8Array(4);new DataView(i.buffer).setUint32(0,t.get()),e.value=i}}),e=this}}const hn={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const i=e[e.length-1],n=hn.getPartial(i);return 32===n?e.concat(t):hn._shiftRight(t,n,0|i,e.slice(0,e.length-1))},bitLength(e){const t=e.length;if(0===t)return 0;const i=e[t-1];return 32*(t-1)+hn.getPartial(i)},clamp(e,t){if(32*e.length0&&t&&(e[i-1]=hn.partial(t,e[i-1]&2147483648>>t-1,1)),e},partial:(e,t,i)=>32===e?t:(i?0|t:t<<32-e)+1099511627776*e,getPartial:e=>Math.round(e/1099511627776)||32,_shiftRight(e,t,i,n){for(void 0===n&&(n=[]);t>=32;t-=32)n.push(i),i=0;if(0===t)return n.concat(e);for(let o=0;o>>t),i=e[o]<<32-t;const o=e.length?e[e.length-1]:0,r=hn.getPartial(o);return n.push(hn.partial(t+r&31,t+r>32?i:n.pop(),1)),n}},An={bytes:{fromBits(e){const t=hn.bitLength(e)/8,i=new Uint8Array(t);let n;for(let o=0;o>>24,n<<=8;return i},toBits(e){const t=[];let i,n=0;for(i=0;i9007199254740991)throw new Error("Cannot hash more than 2^53 - 1 bits");const r=new Uint32Array(i);let s=0;for(let e=t.blockSize+n-(t.blockSize+n&t.blockSize-1);e<=o;e+=t.blockSize)t._block(r.subarray(16*s,16*(s+1))),s+=1;return i.splice(0,16*s),t}finalize(){const e=this;let t=e._buffer;const i=e._h;t=hn.concat(t,[hn.partial(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(Math.floor(e._length/4294967296)),t.push(0|e._length);t.length;)e._block(t.splice(0,16));return e.reset(),i}_f(e,t,i,n){return e<=19?t&i|~t&n:e<=39?t^i^n:e<=59?t&i|t&n|i&n:e<=79?t^i^n:void 0}_S(e,t){return t<>>32-e}_block(e){const t=this,i=t._h,n=Array(80);for(let t=0;t<16;t++)n[t]=e[t];let o=i[0],r=i[1],s=i[2],a=i[3],l=i[4];for(let e=0;e<=79;e++){e>=16&&(n[e]=t._S(1,n[e-3]^n[e-8]^n[e-14]^n[e-16]));const i=t._S(5,o)+t._f(e,r,s,a)+l+n[e]+t._key[Math.floor(e/20)]|0;l=a,a=s,s=t._S(30,r),r=o,o=i}i[0]=i[0]+o|0,i[1]=i[1]+r|0,i[2]=i[2]+s|0,i[3]=i[3]+a|0,i[4]=i[4]+l|0}}},pn={aes:class{constructor(e){const t=this;t._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],t._tables[0][0][0]||t._precompute();const i=t._tables[0][4],n=t._tables[1],o=e.length;let r,s,a,l=1;if(4!==o&&6!==o&&8!==o)throw new Error("invalid aes key size");for(t._key=[s=e.slice(0),a=[]],r=o;r<4*o+28;r++){let e=s[r-1];(r%o===0||8===o&&r%o===4)&&(e=i[e>>>24]<<24^i[e>>16&255]<<16^i[e>>8&255]<<8^i[255&e],r%o===0&&(e=e<<8^e>>>24^l<<24,l=l<<1^283*(l>>7))),s[r]=s[r-o]^e}for(let e=0;r;e++,r--){const t=s[3&e?r:r-4];a[e]=r<=4||e<4?t:n[0][i[t>>>24]]^n[1][i[t>>16&255]]^n[2][i[t>>8&255]]^n[3][i[255&t]]}}encrypt(e){return this._crypt(e,0)}decrypt(e){return this._crypt(e,1)}_precompute(){const e=this._tables[0],t=this._tables[1],i=e[4],n=t[4],o=[],r=[];let s,a,l,c;for(let e=0;e<256;e++)r[(o[e]=e<<1^283*(e>>7))^e]=e;for(let d=s=0;!i[d];d^=a||1,s=r[s]||1){let r=s^s<<1^s<<2^s<<3^s<<4;r=r>>8^255&r^99,i[d]=r,n[r]=d,c=o[l=o[a=o[d]]];let g=16843009*c^65537*l^257*a^16843008*d,h=257*o[r]^16843008*r;for(let i=0;i<4;i++)e[i][d]=h=h<<24^h>>>8,t[i][r]=g=g<<24^g>>>8}for(let i=0;i<5;i++)e[i]=e[i].slice(0),t[i]=t[i].slice(0)}_crypt(e,t){if(4!==e.length)throw new Error("invalid aes block size");const i=this._key[t],n=i.length/4-2,o=[0,0,0,0],r=this._tables[t],s=r[0],a=r[1],l=r[2],c=r[3],d=r[4];let g,h,A,u=e[0]^i[0],p=e[t?3:1]^i[1],f=e[2]^i[2],m=e[t?1:3]^i[3],w=4;for(let e=0;e>>24]^a[p>>16&255]^l[f>>8&255]^c[255&m]^i[w],h=s[p>>>24]^a[f>>16&255]^l[m>>8&255]^c[255&u]^i[w+1],A=s[f>>>24]^a[m>>16&255]^l[u>>8&255]^c[255&p]^i[w+2],m=s[m>>>24]^a[u>>16&255]^l[p>>8&255]^c[255&f]^i[w+3],w+=4,u=g,p=h,f=A;for(let e=0;e<4;e++)o[t?3&-e:e]=d[u>>>24]<<24^d[p>>16&255]<<16^d[f>>8&255]<<8^d[255&m]^i[w++],g=u,u=p,p=f,f=m,m=g;return o}}},fn={getRandomValues(e){const t=new Uint32Array(e.buffer),i=e=>{let t=987654321;const i=4294967295;return function(){t=36969*(65535&t)+(t>>16)&i;return(((t<<16)+(e=18e3*(65535&e)+(e>>16)&i)&i)/4294967296+.5)*(Math.random()>.5?1:-1)}};for(let n,o=0;o>24))e+=1<<24;else{let t=e>>16&255,i=e>>8&255,n=255&e;255===t?(t=0,255===i?(i=0,255===n?n=0:++n):++i):++t,e=0,e+=t<<16,e+=i<<8,e+=n}return e}incCounter(e){0===(e[0]=this.incWord(e[0]))&&(e[1]=this.incWord(e[1]))}calculate(e,t,i){let n;if(!(n=t.length))return[];const o=hn.bitLength(t);for(let o=0;onew wn.hmacSha1(An.bytes.toBits(e)),pbkdf2(e,t,i,n){if(i=i||1e4,n<0||i<0)throw new Error("invalid params to pbkdf2");const o=1+(n>>5)<<2;let r,s,a,l,c;const d=new ArrayBuffer(o),g=new DataView(d);let h=0;const A=hn;for(t=An.bytes.toBits(t),c=1;h<(o||1);c++){for(r=s=e.encrypt(A.concat(t,[c])),a=1;ao&&(e=(new i).update(e).finalize());for(let t=0;tthis.resolveReady=e),password:Kn(e,t),signed:i,strength:n-1,pending:new Uint8Array})},async transform(e,t){const i=this,{password:n,strength:r,resolveReady:s,ready:a}=i;n?(await async function(e,t,i,n){const o=await zn(e,t,i,Jn(n,0,kn[t])),r=Jn(n,kn[t]);if(o[0]!=r[0]||o[1]!=r[1])throw new Error(yn)}(i,r,n,Jn(e,0,kn[r]+2)),e=Jn(e,kn[r]+2),o?t.error(new Error(Cn)):s()):await a;const l=new Uint8Array(e.length-Mn-(e.length-Mn)%En);t.enqueue(jn(i,e,l,0,Mn,!0))},async flush(e){const{signed:t,ctr:i,hmac:n,pending:o,ready:r}=this;if(n&&i){await r;const s=Jn(o,0,o.length-Mn),a=Jn(o,o.length-Mn);let l=new Uint8Array;if(s.length){const e=Xn(Hn,s);n.update(e);const t=i.update(e);l=Vn(Hn,t)}if(t){const e=Jn(Vn(Hn,n.digest()),0,Mn);for(let t=0;tthis.resolveReady=e),password:Kn(e,t),strength:i-1,pending:new Uint8Array})},async transform(e,t){const i=this,{password:n,strength:o,resolveReady:r,ready:s}=i;let a=new Uint8Array;n?(a=await async function(e,t,i){const n=vn(new Uint8Array(kn[t])),o=await zn(e,t,i,n);return qn(n,o)}(i,o,n),r()):await s;const l=new Uint8Array(a.length+e.length-e.length%En);l.set(a,0),t.enqueue(jn(i,e,l,a.length,0))},async flush(e){const{ctr:t,hmac:i,pending:o,ready:r}=this;if(i&&t){await r;let s=new Uint8Array;if(o.length){const e=t.update(Xn(Hn,o));i.update(e),s=Vn(Hn,e)}n.signature=Vn(Hn,i.digest()).slice(0,Mn),e.enqueue(qn(s,n.signature))}}}),n=this}}function jn(e,t,i,n,o,r){const{ctr:s,hmac:a,pending:l}=e,c=t.length-o;let d;for(l.length&&(t=qn(l,t),i=function(e,t){if(t&&t>e.length){const i=e;(e=new Uint8Array(t)).set(i,0)}return e}(i,c-c%En)),d=0;d<=c-En;d+=En){const e=Xn(Hn,Jn(t,d,d+En));r&&a.update(e);const o=s.update(e);r||a.update(o),i.set(Vn(Hn,o),d+n)}return e.pending=Jn(t,d),i}async function zn(e,t,i,n){e.password=null;const o=await async function(e,t,i,n,o){if(!Nn)return wn.importKey(t);try{return await Tn.importKey(e,t,i,n,o)}catch{return Nn=!1,wn.importKey(t)}}("raw",i,In,!1,Qn),r=await async function(e,t,i){if(!Un)return wn.pbkdf2(t,e.salt,Dn.iterations,i);try{return await Tn.deriveBits(e,t,i)}catch{return Un=!1,wn.pbkdf2(t,e.salt,Dn.iterations,i)}}(Object.assign({salt:n},Dn),o,8*(2*Sn[t]+2)),s=new Uint8Array(r),a=Xn(Hn,Jn(s,0,Sn[t])),l=Xn(Hn,Jn(s,Sn[t],2*Sn[t])),c=Jn(s,2*Sn[t]);return Object.assign(e,{keys:{key:a,authentication:l,passwordVerification:c},ctr:new On(new Yn(a),Array.from(Fn)),hmac:new Gn(l)}),c}function Kn(e,t){return t===_i?function(e){if(typeof TextEncoder==tn){e=unescape(encodeURIComponent(e));const t=new Uint8Array(e.length);for(let i=0;i>>24]),o=~e.crcKey2.get(),e.keys=[i,n,o]}function no(e){const t=2|e.keys[2];return oo(Math.imul(t,1^t)>>>8)}function oo(e){return 255&e}function ro(e){return 4294967295&e}const so="Invalid uncompressed size";class ao extends TransformStream{constructor(e,{chunkSize:t,CompressionStreamZlib:i,CompressionStream:n}){super({});const{compressed:o,encrypted:r,useCompressionStream:s,zipCrypto:a,signed:l,level:c}=e,d=this;let g,h,A=super.readable;r&&!a||!l||(g=new gn,A=ho(A,g)),o&&(A=go(A,s,{level:c,chunkSize:t},n,i,n)),r&&(a?A=ho(A,new $n(e)):(h=new Pn(e),A=ho(A,h))),co(d,A,()=>{let e;r&&!a&&(e=h.signature),r&&!a||!l||(e=new DataView(g.value.buffer).getUint32(0)),d.signature=e})}}class lo extends TransformStream{constructor(e,{chunkSize:t,DecompressionStreamZlib:i,DecompressionStream:n}){super({});const{zipCrypto:o,encrypted:r,signed:s,signature:a,compressed:l,useCompressionStream:c,deflate64:d}=e;let g,h,A=super.readable;r&&(o?A=ho(A,new Zn(e)):(h=new Wn(e),A=ho(A,h))),l&&(A=go(A,c,{chunkSize:t,deflate64:d},n,i,n)),r&&!o||!s||(g=new gn,A=ho(A,g)),co(this,A,()=>{if((!r||o)&&s){const e=new DataView(g.value.buffer);if(a!=e.getUint32(0,!1))throw new Error(bn)}})}}function co(e,t,i){t=ho(t,new TransformStream({flush:i})),Object.defineProperty(e,"readable",{get:()=>t})}function go(e,t,i,n,o,r){const s=t&&n?n:o||r,a=i.deflate64?"deflate64-raw":"deflate-raw";try{e=ho(e,new s(a,i))}catch(n){if(!t)throw n;if(o)e=ho(e,new o(a,i));else{if(!r)throw n;e=ho(e,new r(a,i))}}return e}function ho(e,t){return e.pipeThrough(t)}const Ao="start",uo="pull",po="data",fo="close",mo="inflate";class wo extends TransformStream{constructor(e,t){super({});const i=this,{codecType:n}=e;let o;n.startsWith("deflate")?o=ao:n.startsWith(mo)&&(o=lo),i.outputSize=0;let r=0;const s=new o(e,t),a=super.readable,l=new TransformStream({transform(e,t){e&&e.length&&(r+=e.length,t.enqueue(e))},flush(){Object.assign(i,{inputSize:r})}}),c=new TransformStream({transform(t,n){if(t&&t.length&&(n.enqueue(t),i.outputSize+=t.length,e.outputSize!==_i&&i.outputSize>e.outputSize))throw new Error(so)},flush(){const{signature:e}=s;Object.assign(i,{signature:e,inputSize:r})}});Object.defineProperty(i,"readable",{get:()=>a.pipeThrough(l).pipeThrough(s).pipeThrough(c)})}}class Bo extends TransformStream{constructor(e){let t;super({transform:function i(n,o){if(t){const e=new Uint8Array(t.length+n.length);e.set(t),e.set(n,t.length),n=e,t=null}n.length>e?(o.enqueue(n.slice(0,e)),i(n.slice(e),o)):t=n},flush(e){t&&t.length&&e.enqueue(t)}})}}const yo={type:"module"};let bo,Co,vo,Eo=!0;try{Eo=typeof structuredClone==nn&&structuredClone(new DOMException("","AbortError")).code!==_i}catch{}let xo=()=>{};class Io{constructor(e,{readable:t,writable:i},{options:n,config:o,streamOptions:r,useWebWorkers:s,transferStreams:a,workerURI:l},c){const{signal:d}=r;return Object.assign(e,{busy:!0,readable:t.pipeThrough(new Bo(o.chunkSize)).pipeThrough(new Do(r),{signal:d}),writable:i,options:Object.assign({},n),workerURI:l,transferStreams:a,terminate:()=>new Promise(t=>{const{worker:i,busy:n}=e;i?(n?e.resolveTerminated=t:(i.terminate(),t()),e.interface=null):t()}),onTaskFinished(){const{resolveTerminated:t}=e;t&&(e.resolveTerminated=null,e.terminated=!0,e.worker.terminate(),t()),e.busy=!1,c(e)}}),bo===_i&&(bo=typeof Worker!=tn),(s&&bo?So:ko)(e,o)}}class Do extends TransformStream{constructor({onstart:e,onprogress:t,size:i,onend:n}){let o=0;super({async start(){e&&await Qo(e,i)},async transform(e,n){o+=e.length,t&&await Qo(t,o,i),n.enqueue(e)},async flush(){n&&await Qo(n,o)}})}}async function Qo(e,...t){try{await e(...t)}catch{}}function ko(e,t){return{run:()=>async function({options:e,readable:t,writable:i,onTaskFinished:n},o){let r;try{if(!e.useCompressionStream)try{await xo(o)}catch{e.useCompressionStream=!0}r=new wo(e,o),await t.pipeThrough(r).pipeTo(i,{preventClose:!0,preventAbort:!0});const{signature:n,inputSize:s,outputSize:a}=r;return{signature:n,inputSize:s,outputSize:a}}catch(e){throw r&&(e.outputSize=r.outputSize),e}finally{n()}}(e,t)}}function So(e,t){const{baseURI:i,chunkSize:n}=t;let{wasmURI:o}=t;if(!e.interface){let r;typeof o==nn&&(o=o());try{r=Mo(e.workerURI,i,e)}catch{return bo=!1,ko(e,t)}Object.assign(e,{worker:r,interface:{run:()=>async function(e,t){let i,n;const o=new Promise((e,t)=>{i=e,n=t});Object.assign(e,{reader:null,writer:null,resolveResult:i,rejectResult:n,result:o});const{readable:r,options:s}=e,{writable:a,closed:l}=function(e){const{writable:t,readable:i}=new TransformStream,n=i.pipeTo(e,{preventClose:!0});return{writable:t,closed:n}}(e.writable),c=Fo({type:Ao,options:s,config:t,readable:r,writable:a},e);c||Object.assign(e,{reader:r.getReader(),writer:a.getWriter()});const d=await o;c||await a.getWriter().close();return await l,d}(e,{chunkSize:n,wasmURI:o,baseURI:i})}})}return e.interface}function Mo(e,t,i,n,o=!0){let r,s,a;if(Co===_i){const l=typeof e==nn;s=l?e(o):e;const c=s.startsWith("data:"),d=s.startsWith("blob:");if(c||d){n===_i&&(n=!1),n&&(a=yo);try{r=new Worker(s,a)}catch(o){if(d)try{URL.revokeObjectURL(s)}catch{}if(l&&d)return Mo(e,t,i,n,!1);if(n)throw o;return Mo(e,t,i,!0,!1)}}else{n===_i&&(n=!0),n&&(a=yo);try{s=new URL(s,t)}catch{}try{r=new Worker(s,a)}catch(r){if(n)throw r;return Mo(e,t,i,!1,o)}}Co=s,vo=a}else r=new Worker(Co,vo);return r.addEventListener("message",e=>async function({data:e},t){const{type:i,value:n,messageId:o,result:r,error:s}=e,{reader:a,writer:l,resolveResult:c,rejectResult:d,onTaskFinished:g}=t;try{if(s){const{message:e,stack:t,code:i,name:n,outputSize:o}=s,r=new Error(e);Object.assign(r,{stack:t,code:i,name:n,outputSize:o}),h(r)}else{if(i==uo){const{value:e,done:i}=await a.read();Fo({type:po,value:e,done:i,messageId:o},t)}i==po&&(await l.ready,await l.write(new Uint8Array(n)),Fo({type:"ack",messageId:o},t)),i==fo&&h(null,r)}}catch(s){Fo({type:fo,messageId:o},t),h(s)}function h(e,t){e?d(e):c(t),l&&l.releaseLock(),g()}}(e,i)),r}function Fo(e,{worker:t,writer:i,onTaskFinished:n,transferStreams:o}){try{const{value:i,readable:n,writable:r}=e,s=[];if(i&&(e.value=i,s.push(e.value.buffer)),o&&Eo?(n&&s.push(n),r&&s.push(r)):e.readable=e.writable=null,s.length)try{return t.postMessage(e,s),!0}catch{Eo=!1,e.readable=e.writable=null,t.postMessage(e)}else t.postMessage(e)}catch(e){throw i&&i.releaseLock(),n(),e}}let Lo=[];const To=[];let Ro=0;async function Ho(e,t){const{options:i,config:n}=t,{transferStreams:o,useWebWorkers:r,useCompressionStream:s,compressed:a,signed:l,encrypted:c}=i,{workerURI:d,maxWorkers:g}=n;t.transferStreams=o||o===_i;const h=!(a||l||c||t.transferStreams);return t.useWebWorkers=!h&&(r||r===_i&&n.useWebWorkers),t.workerURI=t.useWebWorkers&&d?d:_i,i.useCompressionStream=s||s===_i&&n.useCompressionStream,(await async function(){const i=Lo.find(e=>!e.busy);if(i)return Yo(i),new Io(i,e,t,A);if(Lo.lengthTo.push({resolve:i,stream:e,workerOptions:t}))}()).run();function A(e){if(To.length){const[{resolve:t,stream:i,workerOptions:n}]=To.splice(0,1);t(new Io(e,i,n,A))}else e.worker?(Yo(e),function(e,t){const{config:i}=t,{terminateWorkerTimeout:n}=i;Number.isFinite(n)&&n>=0&&(e.terminated?e.terminated=!1:e.terminateTimeout=setTimeout(async()=>{Lo=Lo.filter(t=>t!=e);try{await e.terminate()}catch{}},n))}(e,t)):Lo=Lo.filter(t=>t!=e)}}function Yo(e){const{terminateTimeout:t}=e;t&&(clearTimeout(t),e.terminateTimeout=null)}const Oo=65536,Go="writable";class No{constructor(){this.size=0}init(){this.initialized=!0}}class Uo extends No{get readable(){const e=this,{chunkSize:t=Oo}=e,i=new ReadableStream({start(){this.chunkOffset=0},async pull(n){const{offset:o=0,size:r,diskNumberStart:s}=i,{chunkOffset:a}=this,l=r===_i?t:Math.min(t,r-a),c=await Xo(e,o+a,l,s);n.enqueue(c),a+t>r||r===_i&&!c.length&&l?n.close():this.chunkOffset+=t}});return i}}class Wo extends Uo{constructor(e){super(),Object.assign(this,{blob:e,size:e.size})}async readUint8Array(e,t){const i=this,n=e+t,o=e||nt&&(r=r.slice(e,n)),new Uint8Array(r)}}class Po extends No{constructor(e){super();const t=new TransformStream,i=[];e&&i.push(["Content-Type",e]),Object.defineProperty(this,Go,{get:()=>t.writable}),this.blob=new Response(t.readable,{headers:i}).blob()}getData(){return this.blob}}class jo extends Po{constructor(e){super(e),Object.assign(this,{encoding:e,utf8:!e||"utf-8"==e.toLowerCase()})}async getData(){const{encoding:e,utf8:t}=this,i=await super.getData();if(i.text&&t)return i.text();{const t=new FileReader;return new Promise((n,o)=>{Object.assign(t,{onload:({target:e})=>n(e.result),onerror:()=>o(t.error)}),t.readAsText(i,e)})}}}class zo extends Uo{constructor(e){super(),this.readers=e}async init(){const e=this,{readers:t}=e;e.lastDiskNumber=0,e.lastDiskOffset=0,await Promise.all(t.map(async(i,n)=>{await i.init(),n!=t.length-1&&(e.lastDiskOffset+=i.size),e.size+=i.size})),super.init()}async readUint8Array(e,t,i=0){const n=this,{readers:o}=this;let r,s=i;-1==s&&(s=o.length-1);let a=e;for(;o[s]&&a>=o[s].size;)a-=o[s].size,s++;const l=o[s];if(l){const o=l.size;if(a+t<=o)r=await Xo(l,a,t);else{const s=o-a;r=new Uint8Array(t);const c=await Xo(l,a,s);r.set(c,0);const d=await n.readUint8Array(e+s,t-s,i);r.set(d,s),c.length+d.length=s?(await a(t.subarray(0,s)),await l(),i.diskOffset+=n.size,i.diskNumber++,r=null,await this.write(t.subarray(s))):await a(t);else{const{value:s,done:a}=await e.next();if(a&&!s)throw new Error("Writer iterator completed too soon");n=s,n.size=0,n.maxSize&&(i.maxSize=n.maxSize),i.availableSize=i.maxSize,await Vo(n),o=s.writable,r=o.getWriter(),await this.write(t)}},async close(){await r.ready,await l()}});async function a(e){const t=e.length;t&&(await r.ready,await r.write(e),n.size+=t,i.size+=t,i.availableSize-=t)}async function l(){await r.close()}Object.defineProperty(i,Go,{get:()=>s})}}class qo{constructor(e){return Array.isArray(e)&&(e=new zo(e)),e instanceof ReadableStream&&(e={readable:e}),e}}class Jo{constructor(e){return e.writable===_i&&typeof e.next==nn&&(e=new Ko(e)),e instanceof WritableStream&&(e={writable:e}),e.size===_i&&(e.size=0),e instanceof Ko||Object.assign(e,{diskNumber:0,diskOffset:0,availableSize:en,maxSize:en}),e}}async function Vo(e,t){if(!e.init||e.initialized)return Promise.resolve();await e.init(t)}function Xo(e,t,i,n){return e.readUint8Array(t,i,n)}const Zo="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split(""),$o=256==Zo.length;function _o(e,t){return t&&"cp437"==t.trim().toLowerCase()?function(e){if($o){let t="";for(let i=0;ithis[t]=e[t])}}const fr="File format is not recognized",mr="Zip64 extra field not found",wr="Compression method not supported",Br="Split zip file",yr="Overlapping entry found",br="utf-8",Cr="cp437",vr=[[or,zi],[rr,zi],[sr,zi],[ar,Ki]],Er={[Ki]:{getValue:Yr,bytes:4},[zi]:{getValue:Or,bytes:8}};class xr{constructor(e,t={}){Object.assign(this,{reader:new qo(e),options:t,config:sn,readRanges:[]})}async*getEntriesGenerator(e={}){const t=this;let{reader:i}=t;const{config:n}=t;if(await Vo(i),i.size!==_i&&i.readUint8Array||(i=new Wo(await new Response(i.readable).blob()),await Vo(i)),i.size=0;e--)if(s[e]==r[0]&&s[e+1]==r[1]&&s[e+2]==r[2]&&s[e+3]==r[3])return{offset:o+e,buffer:s.slice(e,e+n).buffer}}}(i,101010256,i.size,Zi,1048560);if(!o){throw Yr(Gr(await Xo(i,0,4)))==qi?new Error(Br):new Error("End of central directory not found")}const r=Gr(o);let s=Yr(r,12),a=Yr(r,16);const l=o.offset,c=Hr(r,20),d=l+Zi+c;let g=Hr(r,4);const h=i.lastDiskNumber||0;let A=Hr(r,6),u=Hr(r,8),p=0,f=0;if(a==zi||s==zi||u==Ki||A==Ki){const e=Gr(await Xo(i,o.offset-20,20));if(117853008==Yr(e,0)){a=Or(e,8);let t=await Xo(i,a,56,-1),n=Gr(t);const r=o.offset-20-56;if(Yr(n,0)!=Xi&&a!=r){const e=a;a=r,a>e&&(p=a-e),t=await Xo(i,a,56,-1),n=Gr(t)}if(Yr(n,0)!=Xi)throw new Error("End of Zip64 central directory locator not found");g==Ki&&(g=Yr(n,16)),A==Ki&&(A=Yr(n,20)),u==Ki&&(u=Or(n,32)),s==zi&&(s=Or(n,40)),a-=s}}if(a>=i.size&&(p=i.size-a-s-Zi,a=i.size-s-Zi),h!=g)throw new Error(Br);if(a<0)throw new Error(fr);let m=0,w=await Xo(i,a,s,A),B=Gr(w);if(s){const e=o.offset-s;if(Yr(B,m)!=Vi&&a!=e){const t=a;a=e,a>t&&(p+=a-t),w=await Xo(i,a,s,A),B=Gr(w)}}const y=o.offset-a-(i.lastDiskOffset||0);if(s!=y&&y>=0&&(s=y,w=await Xo(i,a,s,A),B=Gr(w)),a<0||a>=i.size)throw new Error(fr);const b=Fr(t,e,"filenameEncoding"),C=Fr(t,e,"commentEncoding");for(let o=0;o>8),h=d>>8==3,A=w.subarray(a,l),y=Hr(B,m+32),v=c+y,E=w.subarray(c,v),x=s,I=s,D=Yr(B,m+38),Q=255&D,k={readOnly:Boolean(1&Q),hidden:Boolean(2&Q),system:Boolean(4&Q),directory:Boolean(16&Q),archive:Boolean(32&Q)},S=Yr(B,m+42)+p,M=Fr(t,e,"decodeText")||_o,F=x?br:b||Cr,L=I?br:C||Cr;let T=M(A,F);T===_i&&(T=_o(A,F));let R=M(E,L);R===_i&&(R=_o(E,L)),Object.assign(r,{versionMadeBy:d,msDosCompatible:g,compressedSize:0,uncompressedSize:0,commentLength:y,offset:S,diskNumberStart:Hr(B,m+34),internalFileAttributes:Hr(B,m+36),externalFileAttributes:D,msdosAttributesRaw:Q,msdosAttributes:k,rawFilename:A,filenameUTF8:x,commentUTF8:I,rawExtraField:w.subarray(l,c),rawComment:E,filename:T,comment:R}),f=Math.max(S,f),Qr(r,r,B,m+6);const H=r.externalFileAttributes>>16&Ki;r.unixMode===_i&&16877&H&&(r.unixMode=H);const Y=Boolean(2048&r.unixMode),O=Boolean(1024&r.unixMode),G=Boolean(512&r.unixMode),N=r.unixMode!==_i?!!(73&r.unixMode):h&&!!(73&H),U=r.unixMode!==_i&&(61440&r.unixMode)==$i,W=(61440&H)==$i;Object.assign(r,{setuid:Y,setgid:O,sticky:G,unixExternalUpper:H,internalFileAttribute:r.internalFileAttributes,externalFileAttribute:r.externalFileAttributes,executable:N,directory:U||W||g&&k.directory||T.endsWith("/")&&!r.uncompressedSize,zipCrypto:r.encrypted&&!r.extraFieldAES});const P=new pr(r);P.getData=(e,i)=>r.getData(e,P,t.readRanges,i),P.arrayBuffer=async e=>{const i=new TransformStream,[n]=await Promise.all([new Response(i.readable).arrayBuffer(),r.getData(i,P,t.readRanges,e)]);return n},m=v;const{onprogress:j}=e;if(j)try{await j(o+1,u,new pr(r))}catch{}yield P}const v=Fr(t,e,"extractPrependedData"),E=Fr(t,e,"extractAppendedData");return v&&(t.prependedData=f>0?await Xo(i,0,f):new Uint8Array),t.comment=c?await Xo(i,l+Zi,c):new Uint8Array,E&&(t.appendedData=d>>8&255:A>>>24&255),outputSize:C?f:p,signature:A,compressed:0!=d&&!C,encrypted:o.encrypted&&!C,useWebWorkers:Fr(o,n,"useWebWorkers"),useCompressionStream:N,transferStreams:Fr(o,n,"transferStreams"),deflate64:G,checkPasswordOnly:L},config:g,streamOptions:{signal:F,size:S,onstart:H,onprogress:Y,onend:O}};let W;T&&await async function({reader:e,fileEntry:t,offset:i,diskNumberStart:n,signature:o,compressedSize:r,uncompressedSize:s,dataOffset:a,dataDescriptor:l,extraFieldZip64:c,readRanges:d}){let g=0;if(n)for(let t=0;t=e.start&&A.start>1,dataDescriptor:!(8&~n),languageEncodingFlag:!(2048&~n)},rawLastModDate:r,lastModDate:Lr(r),filenameLength:Hr(t,i+22),extraFieldLength:Hr(t,i+24)})}function Qr(e,t,i,n,o){const{rawExtraField:r}=t,s=t.extraField=new Map,a=Gr(new Uint8Array(r));let l=0;try{for(;lt[e]==i);for(let o=0,r=0;o=5&&(r.push(lr),s.push(cr));let a=1;r.forEach((i,o)=>{if(e.data.length>=a+4){const r=Yr(n,a);t[i]=e[i]=new Date(1e3*r);const l=s[o];e[l]=r}a+=4})}(f,t,o),t.extraFieldExtendedTimestamp=f);const m=s.get(6534);m&&(t.extraFieldUSDZ=m)}function kr(e,t,i,n,o){const r=Gr(e.data),s=new dn;s.append(o[i]);const a=Gr(new Uint8Array(4));a.setUint32(0,s.get(),!0);const l=Yr(r,1);Object.assign(e,{version:Rr(r,0),[t]:_o(e.data.subarray(5)),valid:!o.bitFlag.languageEncodingFlag&&l==Yr(a,0)}),e.valid&&(n[t]=e[t],n[t+"UTF8"]=!0)}function Sr(e,t,i){try{const n=Gr(new Uint8Array(e.data));let o=0;const r=Rr(n,o++),s=Rr(n,o++),a=e.data.subarray(o,o+s);o+=s;const l=Mr(a),c=Rr(n,o++),d=e.data.subarray(o,o+c);o+=c;const g=Mr(d);let h=_i;if(!i&&o+2<=e.data.length){const t=e.data;h=new DataView(t.buffer,t.byteOffset+o,2).getUint16(0,!0)}Object.assign(e,{version:r,uid:l,gid:g,unixMode:h}),l!==_i&&(t.uid=l),g!==_i&&(t.gid=g),h!==_i&&(t.unixMode=h)}catch{}}function Mr(e){const t=new Uint8Array(4);t.set(e,0);return new DataView(t.buffer,t.byteOffset,4).getUint32(0,!0)}function Fr(e,t,i){return t[i]===_i?e.options[i]:t[i]}function Lr(e){const t=(4294901760&e)>>16,i=e&Ki;try{return new Date(1980+((65024&t)>>9),((480&t)>>5)-1,31&t,(63488&i)>>11,(2016&i)>>5,2*(31&i),0)}catch{}}function Tr(e){return new Date(Number(e/BigInt(1e4)-BigInt(116444736e5)))}function Rr(e,t){return e.getUint8(t)}function Hr(e,t){return e.getUint16(t,!0)}function Yr(e,t){return e.getUint32(t,!0)}function Or(e,t){return Number(e.getBigUint64(t,!0))}function Gr(e){return new DataView(e.buffer)}try{an({baseURI:import.meta.url})}catch{}const Nr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";let Ur,Wr,Pr,jr;function zr(e,t,i={}){const n="number"==typeof i.level?i.level:-1,o="number"==typeof i.outBuffer?i.outBuffer:65536,r="number"==typeof i.inBufferSize?i.inBufferSize:65536;return new TransformStream({start(){let i;if(this.out=Wr(o),this.in=Wr(r),this.inBufferSize=r,this._scratch=new Uint8Array(o),e?(this._process=Ur.deflate_process,this._last_consumed=Ur.deflate_last_consumed,this._end=Ur.deflate_end,this.streamHandle=Ur.deflate_new(),i="gzip"===t?Ur.deflate_init_gzip(this.streamHandle,n):"deflate-raw"===t?Ur.deflate_init_raw(this.streamHandle,n):Ur.deflate_init(this.streamHandle,n)):"deflate64-raw"===t?(this._process=Ur.inflate9_process,this._last_consumed=Ur.inflate9_last_consumed,this._end=Ur.inflate9_end,this.streamHandle=Ur.inflate9_new(),i=Ur.inflate9_init_raw(this.streamHandle)):(this._process=Ur.inflate_process,this._last_consumed=Ur.inflate_last_consumed,this._end=Ur.inflate_end,this.streamHandle=Ur.inflate_new(),i="deflate-raw"===t?Ur.inflate_init_raw(this.streamHandle):"gzip"===t?Ur.inflate_init_gzip(this.streamHandle):Ur.inflate_init(this.streamHandle)),0!==i)throw new Error("init failed:"+i)},transform(t,i){try{const n=t,r=new Uint8Array(jr.buffer),s=this._process,a=this._last_consumed,l=this.out,c=this._scratch;let d=0;for(;d>24&255,t=128&e?e-256:e;if(t<0)throw new Error("process error:"+t)}const A=a(this.streamHandle);if(0===A)break;d+=A}}catch(e){this._end&&this.streamHandle&&this._end(this.streamHandle),this.in&&Pr&&Pr(this.in),this.out&&Pr&&Pr(this.out),i.error(e)}},flush(t){try{const i=new Uint8Array(jr.buffer),n=this._process,r=this.out,s=this._scratch;for(;;){const a=n(this.streamHandle,0,0,r,o,4),l=16777215&a,c=a>>24&255;if(!e){const e=128&c?c-256:c;if(e<0)throw new Error("process error:"+e)}if(l&&(s.set(i.subarray(r,r+l),0),t.enqueue(s.slice(0,l))),1===c||0===l)break}}catch(e){t.error(e)}finally{if(this._end&&this.streamHandle){const e=this._end(this.streamHandle);0!==e&&t.error(new Error("end error:"+e))}this.in&&Pr&&Pr(this.in),this.out&&Pr&&Pr(this.out)}}})}let Kr,qr=!1;async function Jr(e,{baseURI:t}){if(!qr){let i,n;try{try{n=new URL(e,t)}catch{}const o=await fetch(n);i=await o.arrayBuffer()}catch(t){if(!e.startsWith("data:application/wasm;base64,"))throw t;i=function(e){const t=e.split(",")[1],i=atob(t),n=i.length,o=new Uint8Array(n);for(let e=0;e(t||(t="data:application/wasm;base64,"+(e=>{e=(e=>{const t=(e=(e+"").replace(/[^A-Za-z0-9+/=]/g,"")).length,i=[];for(let n=0;t>n;n+=4){const t=Nr.indexOf(e[n])<<18|Nr.indexOf(e[n+1])<<12|(63&Nr.indexOf(e[n+2]))<<6|63&Nr.indexOf(e[n+3]);i.push(t>>16&255),"="!==e[n+2]&&i.push(t>>8&255),"="!==e[n+3]&&i.push(255&t)}return new Uint8Array(i)})(e);let t=new Uint8Array(1024),i=0;for(let o=0;oe;e++)t[i++]=t[l+e]}else{const s=r;n(i+s);for(let n=0;s>n&&o{let t="";const i=e.length;let n=0;for(;i>n+2;n+=3){const i=e[n]<<16|e[n+1]<<8|e[n+2];t+=Nr[i>>18&63]+Nr[i>>12&63]+Nr[i>>6&63]+Nr[63&i]}const o=i-n;if(1===o){const i=e[n]<<16;t+=Nr[i>>18&63]+Nr[i>>12&63]+"=="}else if(2===o){const i=e[n]<<16|e[n+1]<<8;t+=Nr[i>>18&63]+Nr[i>>12&63]+Nr[i>>6&63]+"="}return t})(new Uint8Array(t.buffer.slice(0,i)));function n(e){if(t.lengthn;)n*=2;const o=new Uint8Array(n);o.set(t.subarray(0,i)),t=o}}})("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BAGZgAAEAVmAAAQB2YAABAE5gAAEAbmAAAQBeYAABAH5gAAEAQWAAAQBhYAABAFFgAAEAcWAAAQBJYAABAGlgAAEAWWAAAQB5YAABAEVgAAEAZWAAAQBVYAABAHVgAAEATWAAAQBtYAABAF1gAAEAfWAAAQBDYAABAGNgAAEAU2AAAQBzYAABIARMwIArYAABAFtgAAEAe2AAAQBHYAABAGdgAAEAV2AAAQB3YAABAE9gAAEAb2AAAQBfYAABAH9gAAEAROAAMIFEwEJAJOAAAgBk4AACAFTgAAIAVOAAAgB04AACAHTgAAIATOAAAgBM4AACAGzgAAIAbOAAAgBc4AACAFzgAAIAfOAAAgB84AACAELgAAIgBDagAQCgAAEgAAIAUuAAAgBS4AACAHLgAAIAcuAAAgBK4AACAErgAAIAauAAAgBq4AACAFrgAAIAWuAAAgB64AACAHrgAAIARuAAAgBG4AACAGbgAAIAZuAAAgBW4AACAFbgAAIAduAAAgB24AACAE7gAAIATuAAAgBu4AACAG7gAAIAXuAAAgBe4AACAH7gAAIAfuAAAiBA7YBB4AACAGHgAAIAYeAAAgBR4AACAFHgAAIAceAAAgBx4AACAEngAAIASeAAAgBp4AACAGngAAIAWeAAAgBZ4AACAHngAAIAeeAAAgBF4AACAEXgAAIAZeAAAgBl4AACAFXgAAIAVeAAAgB14AACAHXgAAIATeAAAgBN4AACAG3gAAIAbeAAAgBd4AACAF3gAAIAfeAAAgB94AACAEPgAAIAQ+AAAgBj4AACAGPgAAIAU+AAAgBT4AACAHPgAAIAc+AAAgBL4AACAEvgAAIAa+AAAgBr4AACAFvgAAIAW+AAAgB74AACAHvgAAIAR+AAAgBH4AACAGfgAAIAZ+AAAgBX4AACAFfgAAIAd+AAAgB34AACAE/gAAIAT+AAAgBv4AACAG/gAAIAX+AAAgBf4AACAH/gAAIAf+AAAiBBAoBQIAABAEggAAEAWCAAAQBEIAABAFQgAAEATCAAAQBcIIFVgMHAEiAAAQBKIAABAFogAAEARiAAAQBWIAABAE4gAAEAXiAAAQBBIAABAFEgAAEASSAAAQBZIAABAEUgAAEAVSAAAQBNIAABAF0gAAEAQOAAEIBg4AABAFDgAAEAcOAAAQBI4AABAGjgAAEAWOAAAQB44AABIC+K4AAdIECxgEFgABcAQWCBUoBFIAABAEMgAAEARyAAASAvlaABEQBBYIGBAEaggXqAQWAA9QBBYADuAEFgAOcgE92gAAEARGAAAQBCYAABAEZgAAEgQACARWAAAQBDYAABAEdgAAEgL59gAKkgQZAAQWAAiyBBaYBBYABtAEFgD3fAxsLTYMfuYcABIC+rooABIEHUYkABAEEjAAEAQWKAAQEQbAcC4C9CosAS40AO4UALwEGhAAEgQWIgQAEgQEKgQAEgQGSgQAEgIS2ggAEAQuEAAQBDIQABIAF24FHeQTgHQsjhQBfhQXLAhARgAVtBgcJBgoFC4A6uAQNAg4BgAclBJQeC2mFAJCFAIiFAICFAHiBAGiBAFyBBh8BEIAABAEUgAAEARiAAAQBHIAABAEggAAEASiAAAQBMIAABAE4gAAEAUCAAAQBUIAABIEGvQFwgAAEAYCAAAQBoIAABAHAgAAEAeCAAG8DHwtyjQBvgQBrgQBngQBjgQBfgQBbgQBXgQBTgQBPgQBLgQBHgQBDgQE8AYCvAEGAUc0CC22BAMcBBIAAAgEIgAAEgQEzgQJLARCAAA6DAAyBnqyAqmuEACSBB3OBAE8BCIAACIEAGIUADIEIt4MADAEggQCUgDKEgQBrAYCBCC8BBIMADIA/SAoBABAMAEGRIQv/gCUfgMDAgIKxBQgJCQoKgEk3gAABAQ2AAAEBDoAAAQEPgAABARCEAAEBEYQAAQEShAABAROEAAEBFIwAAQEVjAABARaMAAEBF4wAAQEYnAABARmcAAEBGpwAAQEbmwABARyBffsEBAQFBYHB1QEHgAABAQiEAAGAXSqCAAEBCowAAYAnsooAAYEBMJkAAYEBTJkAAYEBaLkAAYEBpLkAAYIDdYABzoUBvI0BqJ0BkLwBgAIbHLwAAQEdvAABgA9PgH05A9AqAQ==")),t)})}(an),function({initModule:e}){xo=e}({initModule:e=>{if(!Kr){let{wasmURI:t}=e;typeof t==nn&&(t=t()),Kr=Jr(t,e)}return Kr}}),an({CompressionStreamZlib:class{constructor(e="deflate",t){return zr(!0,e,t)}},DecompressionStreamZlib:class{constructor(e="deflate",t){return zr(!1,e,t)}}});const Vr={application:{"andrew-inset":"ez",annodex:"anx","atom+xml":"atom","atomcat+xml":"atomcat","atomserv+xml":"atomsrv",bbolin:"lin","cu-seeme":"cu","davmount+xml":"davmount",dsptype:"tsp",ecmascript:["es","ecma"],futuresplash:"spl",hta:"hta","java-archive":"jar","java-serialized-object":"ser","java-vm":"class",m3g:"m3g","mac-binhex40":"hqx",mathematica:["nb","ma","mb"],msaccess:"mdb",msword:["doc","dot","wiz"],mxf:"mxf",oda:"oda",ogg:"ogx",pdf:"pdf","pgp-keys":"key","pgp-signature":["asc","sig"],"pics-rules":"prf",postscript:["ps","ai","eps","epsi","epsf","eps2","eps3"],rar:"rar","rdf+xml":"rdf","rss+xml":"rss",rtf:"rtf","xhtml+xml":["xhtml","xht"],xml:["xml","xsl","xsd","xpdl"],"xspf+xml":"xspf",zip:"zip","vnd.android.package-archive":"apk","vnd.cinderella":"cdy","vnd.google-earth.kml+xml":"kml","vnd.google-earth.kmz":"kmz","vnd.mozilla.xul+xml":"xul","vnd.ms-excel":["xls","xlb","xlt","xlm","xla","xlc","xlw"],"vnd.ms-pki.seccat":"cat","vnd.ms-pki.stl":"stl","vnd.ms-powerpoint":["ppt","pps","pot","ppa","pwz"],"vnd.oasis.opendocument.chart":"odc","vnd.oasis.opendocument.database":"odb","vnd.oasis.opendocument.formula":"odf","vnd.oasis.opendocument.graphics":"odg","vnd.oasis.opendocument.graphics-template":"otg","vnd.oasis.opendocument.image":"odi","vnd.oasis.opendocument.presentation":"odp","vnd.oasis.opendocument.presentation-template":"otp","vnd.oasis.opendocument.spreadsheet":"ods","vnd.oasis.opendocument.spreadsheet-template":"ots","vnd.oasis.opendocument.text":"odt","vnd.oasis.opendocument.text-master":["odm","otm"],"vnd.oasis.opendocument.text-template":"ott","vnd.oasis.opendocument.text-web":"oth","vnd.openxmlformats-officedocument.spreadsheetml.sheet":"xlsx","vnd.openxmlformats-officedocument.spreadsheetml.template":"xltx","vnd.openxmlformats-officedocument.presentationml.presentation":"pptx","vnd.openxmlformats-officedocument.presentationml.slideshow":"ppsx","vnd.openxmlformats-officedocument.presentationml.template":"potx","vnd.openxmlformats-officedocument.wordprocessingml.document":"docx","vnd.openxmlformats-officedocument.wordprocessingml.template":"dotx","vnd.smaf":"mmf","vnd.stardivision.calc":"sdc","vnd.stardivision.chart":"sds","vnd.stardivision.draw":"sda","vnd.stardivision.impress":"sdd","vnd.stardivision.math":["sdf","smf"],"vnd.stardivision.writer":["sdw","vor"],"vnd.stardivision.writer-global":"sgl","vnd.sun.xml.calc":"sxc","vnd.sun.xml.calc.template":"stc","vnd.sun.xml.draw":"sxd","vnd.sun.xml.draw.template":"std","vnd.sun.xml.impress":"sxi","vnd.sun.xml.impress.template":"sti","vnd.sun.xml.math":"sxm","vnd.sun.xml.writer":"sxw","vnd.sun.xml.writer.global":"sxg","vnd.sun.xml.writer.template":"stw","vnd.symbian.install":["sis","sisx"],"vnd.visio":["vsd","vst","vss","vsw","vsdx","vssx","vstx","vssm","vstm"],"vnd.wap.wbxml":"wbxml","vnd.wap.wmlc":"wmlc","vnd.wap.wmlscriptc":"wmlsc","vnd.wordperfect":"wpd","vnd.wordperfect5.1":"wp5","x-123":"wk","x-7z-compressed":"7z","x-abiword":"abw","x-apple-diskimage":"dmg","x-bcpio":"bcpio","x-bittorrent":"torrent","x-cbr":["cbr","cba","cbt","cb7"],"x-cbz":"cbz","x-cdf":["cdf","cda"],"x-cdlink":"vcd","x-chess-pgn":"pgn","x-cpio":"cpio","x-csh":"csh","x-director":["dir","dxr","cst","cct","cxt","w3d","fgd","swa"],"x-dms":"dms","x-doom":"wad","x-dvi":"dvi","x-httpd-eruby":"rhtml","x-font":"pcf.Z","x-freemind":"mm","x-gnumeric":"gnumeric","x-go-sgf":"sgf","x-graphing-calculator":"gcf","x-gtar":["gtar","taz"],"x-hdf":"hdf","x-httpd-php":["phtml","pht","php"],"x-httpd-php-source":"phps","x-httpd-php3":"php3","x-httpd-php3-preprocessed":"php3p","x-httpd-php4":"php4","x-httpd-php5":"php5","x-ica":"ica","x-info":"info","x-internet-signup":["ins","isp"],"x-iphone":"iii","x-iso9660-image":"iso","x-java-jnlp-file":"jnlp","x-jmol":"jmz","x-killustrator":"kil","x-latex":"latex","x-lyx":"lyx","x-lzx":"lzx","x-maker":["frm","fb","fbdoc"],"x-ms-wmd":"wmd","x-msdos-program":["com","exe","bat","dll"],"x-netcdf":["nc"],"x-ns-proxy-autoconfig":["pac","dat"],"x-nwc":"nwc","x-object":"o","x-oz-application":"oza","x-pkcs7-certreqresp":"p7r","x-python-code":["pyc","pyo"],"x-qgis":["qgs","shp","shx"],"x-quicktimeplayer":"qtl","x-redhat-package-manager":["rpm","rpa"],"x-ruby":"rb","x-sh":"sh","x-shar":"shar","x-shockwave-flash":["swf","swfl"],"x-silverlight":"scr","x-stuffit":"sit","x-sv4cpio":"sv4cpio","x-sv4crc":"sv4crc","x-tar":"tar","x-tex-gf":"gf","x-tex-pk":"pk","x-texinfo":["texinfo","texi"],"x-trash":["~","%","bak","old","sik"],"x-ustar":"ustar","x-wais-source":"src","x-wingz":"wz","x-x509-ca-cert":["crt","der","cer"],"x-xcf":"xcf","x-xfig":"fig","x-xpinstall":"xpi",applixware:"aw","atomsvc+xml":"atomsvc","ccxml+xml":"ccxml","cdmi-capability":"cdmia","cdmi-container":"cdmic","cdmi-domain":"cdmid","cdmi-object":"cdmio","cdmi-queue":"cdmiq","docbook+xml":"dbk","dssc+der":"dssc","dssc+xml":"xdssc","emma+xml":"emma","epub+zip":"epub",exi:"exi","font-tdpfr":"pfr","gml+xml":"gml","gpx+xml":"gpx",gxf:"gxf",hyperstudio:"stk","inkml+xml":["ink","inkml"],ipfix:"ipfix","jsonml+json":"jsonml","lost+xml":"lostxml","mads+xml":"mads",marc:"mrc","marcxml+xml":"mrcx","mathml+xml":["mathml","mml"],mbox:"mbox","mediaservercontrol+xml":"mscml","metalink+xml":"metalink","metalink4+xml":"meta4","mets+xml":"mets","mods+xml":"mods",mp21:["m21","mp21"],mp4:"mp4s","oebps-package+xml":"opf","omdoc+xml":"omdoc",onenote:["onetoc","onetoc2","onetmp","onepkg"],oxps:"oxps","patch-ops-error+xml":"xer","pgp-encrypted":"pgp",pkcs10:"p10","pkcs7-mime":["p7m","p7c"],"pkcs7-signature":"p7s",pkcs8:"p8","pkix-attr-cert":"ac","pkix-crl":"crl","pkix-pkipath":"pkipath",pkixcmp:"pki","pls+xml":"pls","prs.cww":"cww","pskc+xml":"pskcxml","reginfo+xml":"rif","relax-ng-compact-syntax":"rnc","resource-lists+xml":"rl","resource-lists-diff+xml":"rld","rls-services+xml":"rs","rpki-ghostbusters":"gbr","rpki-manifest":"mft","rpki-roa":"roa","rsd+xml":"rsd","sbml+xml":"sbml","scvp-cv-request":"scq","scvp-cv-response":"scs","scvp-vp-request":"spq","scvp-vp-response":"spp",sdp:"sdp","set-payment-initiation":"setpay","set-registration-initiation":"setreg","shf+xml":"shf","sparql-query":"rq","sparql-results+xml":"srx",srgs:"gram","srgs+xml":"grxml","sru+xml":"sru","ssdl+xml":"ssdl","ssml+xml":"ssml","tei+xml":["tei","teicorpus"],"thraud+xml":"tfi","timestamped-data":"tsd","vnd.3gpp.pic-bw-large":"plb","vnd.3gpp.pic-bw-small":"psb","vnd.3gpp.pic-bw-var":"pvb","vnd.3gpp2.tcap":"tcap","vnd.3m.post-it-notes":"pwn","vnd.accpac.simply.aso":"aso","vnd.accpac.simply.imp":"imp","vnd.acucobol":"acu","vnd.acucorp":["atc","acutc"],"vnd.adobe.air-application-installer-package+zip":"air","vnd.adobe.formscentral.fcdt":"fcdt","vnd.adobe.fxp":["fxp","fxpl"],"vnd.adobe.xdp+xml":"xdp","vnd.adobe.xfdf":"xfdf","vnd.ahead.space":"ahead","vnd.airzip.filesecure.azf":"azf","vnd.airzip.filesecure.azs":"azs","vnd.amazon.ebook":"azw","vnd.americandynamics.acc":"acc","vnd.amiga.ami":"ami","vnd.anser-web-certificate-issue-initiation":"cii","vnd.anser-web-funds-transfer-initiation":"fti","vnd.antix.game-component":"atx","vnd.apple.installer+xml":"mpkg","vnd.apple.mpegurl":"m3u8","vnd.aristanetworks.swi":"swi","vnd.astraea-software.iota":"iota","vnd.audiograph":"aep","vnd.blueice.multipass":"mpm","vnd.bmi":"bmi","vnd.businessobjects":"rep","vnd.chemdraw+xml":"cdxml","vnd.chipnuts.karaoke-mmd":"mmd","vnd.claymore":"cla","vnd.cloanto.rp9":"rp9","vnd.clonk.c4group":["c4g","c4d","c4f","c4p","c4u"],"vnd.cluetrust.cartomobile-config":"c11amc","vnd.cluetrust.cartomobile-config-pkg":"c11amz","vnd.commonspace":"csp","vnd.contact.cmsg":"cdbcmsg","vnd.cosmocaller":"cmc","vnd.crick.clicker":"clkx","vnd.crick.clicker.keyboard":"clkk","vnd.crick.clicker.palette":"clkp","vnd.crick.clicker.template":"clkt","vnd.crick.clicker.wordbank":"clkw","vnd.criticaltools.wbs+xml":"wbs","vnd.ctc-posml":"pml","vnd.cups-ppd":"ppd","vnd.curl.car":"car","vnd.curl.pcurl":"pcurl","vnd.dart":"dart","vnd.data-vision.rdz":"rdz","vnd.dece.data":["uvf","uvvf","uvd","uvvd"],"vnd.dece.ttml+xml":["uvt","uvvt"],"vnd.dece.unspecified":["uvx","uvvx"],"vnd.dece.zip":["uvz","uvvz"],"vnd.denovo.fcselayout-link":"fe_launch","vnd.dna":"dna","vnd.dolby.mlp":"mlp","vnd.dpgraph":"dpg","vnd.dreamfactory":"dfac","vnd.ds-keypoint":"kpxx","vnd.dvb.ait":"ait","vnd.dvb.service":"svc","vnd.dynageo":"geo","vnd.ecowin.chart":"mag","vnd.enliven":"nml","vnd.epson.esf":"esf","vnd.epson.msf":"msf","vnd.epson.quickanime":"qam","vnd.epson.salt":"slt","vnd.epson.ssf":"ssf","vnd.eszigno3+xml":["es3","et3"],"vnd.ezpix-album":"ez2","vnd.ezpix-package":"ez3","vnd.fdf":"fdf","vnd.fdsn.mseed":"mseed","vnd.fdsn.seed":["seed","dataless"],"vnd.flographit":"gph","vnd.fluxtime.clip":"ftc","vnd.framemaker":["fm","frame","maker","book"],"vnd.frogans.fnc":"fnc","vnd.frogans.ltf":"ltf","vnd.fsc.weblaunch":"fsc","vnd.fujitsu.oasys":"oas","vnd.fujitsu.oasys2":"oa2","vnd.fujitsu.oasys3":"oa3","vnd.fujitsu.oasysgp":"fg5","vnd.fujitsu.oasysprs":"bh2","vnd.fujixerox.ddd":"ddd","vnd.fujixerox.docuworks":"xdw","vnd.fujixerox.docuworks.binder":"xbd","vnd.fuzzysheet":"fzs","vnd.genomatix.tuxedo":"txd","vnd.geogebra.file":"ggb","vnd.geogebra.tool":"ggt","vnd.geometry-explorer":["gex","gre"],"vnd.geonext":"gxt","vnd.geoplan":"g2w","vnd.geospace":"g3w","vnd.gmx":"gmx","vnd.grafeq":["gqf","gqs"],"vnd.groove-account":"gac","vnd.groove-help":"ghf","vnd.groove-identity-message":"gim","vnd.groove-injector":"grv","vnd.groove-tool-message":"gtm","vnd.groove-tool-template":"tpl","vnd.groove-vcard":"vcg","vnd.hal+xml":"hal","vnd.handheld-entertainment+xml":"zmm","vnd.hbci":"hbci","vnd.hhe.lesson-player":"les","vnd.hp-hpgl":"hpgl","vnd.hp-hpid":"hpid","vnd.hp-hps":"hps","vnd.hp-jlyt":"jlt","vnd.hp-pcl":"pcl","vnd.hp-pclxl":"pclxl","vnd.hydrostatix.sof-data":"sfd-hdstx","vnd.ibm.minipay":"mpy","vnd.ibm.modcap":["afp","listafp","list3820"],"vnd.ibm.rights-management":"irm","vnd.ibm.secure-container":"sc","vnd.iccprofile":["icc","icm"],"vnd.igloader":"igl","vnd.immervision-ivp":"ivp","vnd.immervision-ivu":"ivu","vnd.insors.igm":"igm","vnd.intercon.formnet":["xpw","xpx"],"vnd.intergeo":"i2g","vnd.intu.qbo":"qbo","vnd.intu.qfx":"qfx","vnd.ipunplugged.rcprofile":"rcprofile","vnd.irepository.package+xml":"irp","vnd.is-xpr":"xpr","vnd.isac.fcs":"fcs","vnd.jam":"jam","vnd.jcp.javame.midlet-rms":"rms","vnd.jisp":"jisp","vnd.joost.joda-archive":"joda","vnd.kahootz":["ktz","ktr"],"vnd.kde.karbon":"karbon","vnd.kde.kchart":"chrt","vnd.kde.kformula":"kfo","vnd.kde.kivio":"flw","vnd.kde.kontour":"kon","vnd.kde.kpresenter":["kpr","kpt"],"vnd.kde.kspread":"ksp","vnd.kde.kword":["kwd","kwt"],"vnd.kenameaapp":"htke","vnd.kidspiration":"kia","vnd.kinar":["kne","knp"],"vnd.koan":["skp","skd","skt","skm"],"vnd.kodak-descriptor":"sse","vnd.las.las+xml":"lasxml","vnd.llamagraphics.life-balance.desktop":"lbd","vnd.llamagraphics.life-balance.exchange+xml":"lbe","vnd.lotus-1-2-3":"123","vnd.lotus-approach":"apr","vnd.lotus-freelance":"pre","vnd.lotus-notes":"nsf","vnd.lotus-organizer":"org","vnd.lotus-screencam":"scm","vnd.lotus-wordpro":"lwp","vnd.macports.portpkg":"portpkg","vnd.mcd":"mcd","vnd.medcalcdata":"mc1","vnd.mediastation.cdkey":"cdkey","vnd.mfer":"mwf","vnd.mfmp":"mfm","vnd.micrografx.flo":"flo","vnd.micrografx.igx":"igx","vnd.mif":"mif","vnd.mobius.daf":"daf","vnd.mobius.dis":"dis","vnd.mobius.mbk":"mbk","vnd.mobius.mqy":"mqy","vnd.mobius.msl":"msl","vnd.mobius.plc":"plc","vnd.mobius.txf":"txf","vnd.mophun.application":"mpn","vnd.mophun.certificate":"mpc","vnd.ms-artgalry":"cil","vnd.ms-cab-compressed":"cab","vnd.ms-excel.addin.macroenabled.12":"xlam","vnd.ms-excel.sheet.binary.macroenabled.12":"xlsb","vnd.ms-excel.sheet.macroenabled.12":"xlsm","vnd.ms-excel.template.macroenabled.12":"xltm","vnd.ms-fontobject":"eot","vnd.ms-htmlhelp":"chm","vnd.ms-ims":"ims","vnd.ms-lrm":"lrm","vnd.ms-officetheme":"thmx","vnd.ms-powerpoint.addin.macroenabled.12":"ppam","vnd.ms-powerpoint.presentation.macroenabled.12":"pptm","vnd.ms-powerpoint.slide.macroenabled.12":"sldm","vnd.ms-powerpoint.slideshow.macroenabled.12":"ppsm","vnd.ms-powerpoint.template.macroenabled.12":"potm","vnd.ms-project":["mpp","mpt"],"vnd.ms-word.document.macroenabled.12":"docm","vnd.ms-word.template.macroenabled.12":"dotm","vnd.ms-works":["wps","wks","wcm","wdb"],"vnd.ms-wpl":"wpl","vnd.ms-xpsdocument":"xps","vnd.mseq":"mseq","vnd.musician":"mus","vnd.muvee.style":"msty","vnd.mynfc":"taglet","vnd.neurolanguage.nlu":"nlu","vnd.nitf":["ntf","nitf"],"vnd.noblenet-directory":"nnd","vnd.noblenet-sealer":"nns","vnd.noblenet-web":"nnw","vnd.nokia.n-gage.data":"ngdat","vnd.nokia.n-gage.symbian.install":"n-gage","vnd.nokia.radio-preset":"rpst","vnd.nokia.radio-presets":"rpss","vnd.novadigm.edm":"edm","vnd.novadigm.edx":"edx","vnd.novadigm.ext":"ext","vnd.oasis.opendocument.chart-template":"otc","vnd.oasis.opendocument.formula-template":"odft","vnd.oasis.opendocument.image-template":"oti","vnd.olpc-sugar":"xo","vnd.oma.dd2+xml":"dd2","vnd.openofficeorg.extension":"oxt","vnd.openxmlformats-officedocument.presentationml.slide":"sldx","vnd.osgeo.mapguide.package":"mgp","vnd.osgi.dp":"dp","vnd.osgi.subsystem":"esa","vnd.palm":["pdb","pqa","oprc"],"vnd.pawaafile":"paw","vnd.pg.format":"str","vnd.pg.osasli":"ei6","vnd.picsel":"efif","vnd.pmi.widget":"wg","vnd.pocketlearn":"plf","vnd.powerbuilder6":"pbd","vnd.previewsystems.box":"box","vnd.proteus.magazine":"mgz","vnd.publishare-delta-tree":"qps","vnd.pvi.ptid1":"ptid","vnd.quark.quarkxpress":["qxd","qxt","qwd","qwt","qxl","qxb"],"vnd.realvnc.bed":"bed","vnd.recordare.musicxml":"mxl","vnd.recordare.musicxml+xml":"musicxml","vnd.rig.cryptonote":"cryptonote","vnd.rn-realmedia":"rm","vnd.rn-realmedia-vbr":"rmvb","vnd.route66.link66+xml":"link66","vnd.sailingtracker.track":"st","vnd.seemail":"see","vnd.sema":"sema","vnd.semd":"semd","vnd.semf":"semf","vnd.shana.informed.formdata":"ifm","vnd.shana.informed.formtemplate":"itp","vnd.shana.informed.interchange":"iif","vnd.shana.informed.package":"ipk","vnd.simtech-mindmapper":["twd","twds"],"vnd.smart.teacher":"teacher","vnd.solent.sdkm+xml":["sdkm","sdkd"],"vnd.spotfire.dxp":"dxp","vnd.spotfire.sfs":"sfs","vnd.stepmania.package":"smzip","vnd.stepmania.stepchart":"sm","vnd.sus-calendar":["sus","susp"],"vnd.svd":"svd","vnd.syncml+xml":"xsm","vnd.syncml.dm+wbxml":"bdm","vnd.syncml.dm+xml":"xdm","vnd.tao.intent-module-archive":"tao","vnd.tcpdump.pcap":["pcap","cap","dmp"],"vnd.tmobile-livetv":"tmo","vnd.trid.tpt":"tpt","vnd.triscape.mxs":"mxs","vnd.trueapp":"tra","vnd.ufdl":["ufd","ufdl"],"vnd.uiq.theme":"utz","vnd.umajin":"umj","vnd.unity":"unityweb","vnd.uoml+xml":"uoml","vnd.vcx":"vcx","vnd.visionary":"vis","vnd.vsf":"vsf","vnd.webturbo":"wtb","vnd.wolfram.player":"nbp","vnd.wqd":"wqd","vnd.wt.stf":"stf","vnd.xara":"xar","vnd.xfdl":"xfdl","vnd.yamaha.hv-dic":"hvd","vnd.yamaha.hv-script":"hvs","vnd.yamaha.hv-voice":"hvp","vnd.yamaha.openscoreformat":"osf","vnd.yamaha.openscoreformat.osfpvg+xml":"osfpvg","vnd.yamaha.smaf-audio":"saf","vnd.yamaha.smaf-phrase":"spf","vnd.yellowriver-custom-menu":"cmp","vnd.zul":["zir","zirz"],"vnd.zzazz.deck+xml":"zaz","voicexml+xml":"vxml",widget:"wgt",winhlp:"hlp","wsdl+xml":"wsdl","wspolicy+xml":"wspolicy","x-ace-compressed":"ace","x-authorware-bin":["aab","x32","u32","vox"],"x-authorware-map":"aam","x-authorware-seg":"aas","x-blorb":["blb","blorb"],"x-bzip":"bz","x-bzip2":["bz2","boz"],"x-cfs-compressed":"cfs","x-chat":"chat","x-conference":"nsc","x-dgc-compressed":"dgc","x-dtbncx+xml":"ncx","x-dtbook+xml":"dtb","x-dtbresource+xml":"res","x-eva":"eva","x-font-bdf":"bdf","x-font-ghostscript":"gsf","x-font-linux-psf":"psf","x-font-pcf":"pcf","x-font-snf":"snf","x-font-ttf":["ttf","ttc"],"x-font-type1":["pfa","pfb","pfm","afm"],"x-freearc":"arc","x-gca-compressed":"gca","x-glulx":"ulx","x-gramps-xml":"gramps","x-install-instructions":"install","x-lzh-compressed":["lzh","lha"],"x-mie":"mie","x-mobipocket-ebook":["prc","mobi"],"x-ms-application":"application","x-ms-shortcut":"lnk","x-ms-xbap":"xbap","x-msbinder":"obd","x-mscardfile":"crd","x-msclip":"clp","application/x-ms-installer":"msi","x-msmediaview":["mvb","m13","m14"],"x-msmetafile":["wmf","wmz","emf","emz"],"x-msmoney":"mny","x-mspublisher":"pub","x-msschedule":"scd","x-msterminal":"trm","x-mswrite":"wri","x-nzb":"nzb","x-pkcs12":["p12","pfx"],"x-pkcs7-certificates":["p7b","spc"],"x-research-info-systems":"ris","x-silverlight-app":"xap","x-sql":"sql","x-stuffitx":"sitx","x-subrip":"srt","x-t3vm-image":"t3","x-tex-tfm":"tfm","x-tgif":"obj","x-xliff+xml":"xlf","x-xz":"xz","x-zmachine":["z1","z2","z3","z4","z5","z6","z7","z8"],"xaml+xml":"xaml","xcap-diff+xml":"xdf","xenc+xml":"xenc","xml-dtd":"dtd","xop+xml":"xop","xproc+xml":"xpl","xslt+xml":"xslt","xv+xml":["mxml","xhvml","xvml","xvm"],yang:"yang","yin+xml":"yin",envoy:"evy",fractals:"fif","internet-property-stream":"acx",olescript:"axs","vnd.ms-outlook":"msg","vnd.ms-pkicertstore":"sst","x-compress":"z","x-perfmon":["pma","pmc","pmr","pmw"],"ynd.ms-pkipko":"pko",gzip:["gz","tgz"],"smil+xml":["smi","smil"],"vnd.debian.binary-package":["deb","udeb"],"vnd.hzn-3d-crossword":"x3d","vnd.sqlite3":["db","sqlite","sqlite3","db-wal","sqlite-wal","db-shm","sqlite-shm"],"vnd.wap.sic":"sic","vnd.wap.slc":"slc","x-krita":["kra","krz"],"x-perl":["pm","pl"],yaml:["yaml","yml"]},audio:{amr:"amr","amr-wb":"awb",annodex:"axa",basic:["au","snd"],flac:"flac",midi:["mid","midi","kar","rmi"],mpeg:["mpga","mpega","mp3","m4a","mp2a","m2a","m3a"],mpegurl:"m3u",ogg:["oga","ogg","spx"],"prs.sid":"sid","x-aiff":"aifc","x-gsm":"gsm","x-ms-wma":"wma","x-ms-wax":"wax","x-pn-realaudio":"ram","x-realaudio":"ra","x-sd2":"sd2",adpcm:"adp",mp4:"mp4a",s3m:"s3m",silk:"sil","vnd.dece.audio":["uva","uvva"],"vnd.digital-winds":"eol","vnd.dra":"dra","vnd.dts":"dts","vnd.dts.hd":"dtshd","vnd.lucent.voice":"lvp","vnd.ms-playready.media.pya":"pya","vnd.nuera.ecelp4800":"ecelp4800","vnd.nuera.ecelp7470":"ecelp7470","vnd.nuera.ecelp9600":"ecelp9600","vnd.rip":"rip",webm:"weba","x-caf":"caf","x-matroska":"mka","x-pn-realaudio-plugin":"rmp",xm:"xm",aac:"aac",aiff:["aiff","aif","aff"],opus:"opus",wav:"wav"},chemical:{"x-alchemy":"alc","x-cache":["cac","cache"],"x-cache-csf":"csf","x-cactvs-binary":["cbin","cascii","ctab"],"x-cdx":"cdx","x-chem3d":"c3d","x-cif":"cif","x-cmdf":"cmdf","x-cml":"cml","x-compass":"cpa","x-crossfire":"bsd","x-csml":["csml","csm"],"x-ctx":"ctx","x-cxf":["cxf","cef"],"x-embl-dl-nucleotide":["emb","embl"],"x-gamess-input":["inp","gam","gamin"],"x-gaussian-checkpoint":["fch","fchk"],"x-gaussian-cube":"cub","x-gaussian-input":["gau","gjc","gjf"],"x-gaussian-log":"gal","x-gcg8-sequence":"gcg","x-genbank":"gen","x-hin":"hin","x-isostar":["istr","ist"],"x-jcamp-dx":["jdx","dx"],"x-kinemage":"kin","x-macmolecule":"mcm","x-macromodel-input":"mmod","x-mdl-molfile":"mol","x-mdl-rdfile":"rd","x-mdl-rxnfile":"rxn","x-mdl-sdfile":"sd","x-mdl-tgf":"tgf","x-mmcif":"mcif","x-mol2":"mol2","x-molconn-Z":"b","x-mopac-graph":"gpt","x-mopac-input":["mop","mopcrt","zmt"],"x-mopac-out":"moo","x-ncbi-asn1":"asn","x-ncbi-asn1-ascii":["prt","ent"],"x-ncbi-asn1-binary":"val","x-rosdal":"ros","x-swissprot":"sw","x-vamas-iso14976":"vms","x-vmd":"vmd","x-xtel":"xtel","x-xyz":"xyz"},font:{otf:"otf",woff:"woff",woff2:"woff2"},image:{gif:"gif",ief:"ief",jpeg:["jpeg","jpg","jpe","jfif","jfif-tbnl","jif"],pcx:"pcx",png:"png","svg+xml":["svg","svgz"],tiff:["tiff","tif"],"vnd.djvu":["djvu","djv"],"vnd.wap.wbmp":"wbmp","x-canon-cr2":"cr2","x-canon-crw":"crw","x-cmu-raster":"ras","x-coreldraw":"cdr","x-coreldrawpattern":"pat","x-coreldrawtemplate":"cdt","x-corelphotopaint":"cpt","x-epson-erf":"erf","x-icon":"ico","x-jg":"art","x-jng":"jng","x-nikon-nef":"nef","x-olympus-orf":"orf","x-portable-anymap":"pnm","x-portable-bitmap":"pbm","x-portable-graymap":"pgm","x-portable-pixmap":"ppm","x-rgb":"rgb","x-xbitmap":"xbm","x-xpixmap":"xpm","x-xwindowdump":"xwd",bmp:"bmp",cgm:"cgm",g3fax:"g3",ktx:"ktx","prs.btif":"btif",sgi:"sgi","vnd.dece.graphic":["uvi","uvvi","uvg","uvvg"],"vnd.dwg":"dwg","vnd.dxf":"dxf","vnd.fastbidsheet":"fbs","vnd.fpx":"fpx","vnd.fst":"fst","vnd.fujixerox.edmics-mmr":"mmr","vnd.fujixerox.edmics-rlc":"rlc","vnd.ms-modi":"mdi","vnd.ms-photo":"wdp","vnd.net-fpx":"npx","vnd.xiff":"xif",webp:"webp","x-3ds":"3ds","x-cmx":"cmx","x-freehand":["fh","fhc","fh4","fh5","fh7"],"x-pict":["pic","pct"],"x-tga":"tga","cis-cod":"cod",avif:"avifs",heic:["heif","heic"],pjpeg:["pjpg"],"vnd.adobe.photoshop":"psd","x-adobe-dng":"dng","x-fuji-raf":"raf","x-icns":"icns","x-kodak-dcr":"dcr","x-kodak-k25":"k25","x-kodak-kdc":"kdc","x-minolta-mrw":"mrw","x-panasonic-raw":["raw","rw2","rwl"],"x-pentax-pef":["pef","ptx"],"x-sigma-x3f":"x3f","x-sony-arw":"arw","x-sony-sr2":"sr2","x-sony-srf":"srf"},message:{rfc822:["eml","mime","mht","mhtml","nws"]},model:{iges:["igs","iges"],mesh:["msh","mesh","silo"],vrml:["wrl","vrml"],"x3d+vrml":["x3dv","x3dvz"],"x3d+xml":"x3dz","x3d+binary":["x3db","x3dbz"],"vnd.collada+xml":"dae","vnd.dwf":"dwf","vnd.gdl":"gdl","vnd.gtw":"gtw","vnd.mts":"mts","vnd.usdz+zip":"usdz","vnd.vtu":"vtu"},text:{"cache-manifest":["manifest","appcache"],calendar:["ics","icz","ifb"],css:"css",csv:"csv",h323:"323",html:["html","htm","shtml","stm"],iuls:"uls",plain:["txt","text","brf","conf","def","list","log","in","bas","diff","ksh"],richtext:"rtx",scriptlet:["sct","wsc"],texmacs:"tm","tab-separated-values":"tsv","vnd.sun.j2me.app-descriptor":"jad","vnd.wap.wml":"wml","vnd.wap.wmlscript":"wmls","x-bibtex":"bib","x-boo":"boo","x-c++hdr":["h++","hpp","hxx","hh"],"x-c++src":["c++","cpp","cxx","cc"],"x-component":"htc","x-dsrc":"d","x-diff":"patch","x-haskell":"hs","x-java":"java","x-literate-haskell":"lhs","x-moc":"moc","x-pascal":["p","pas","pp","inc"],"x-pcs-gcd":"gcd","x-python":"py","x-scala":"scala","x-setext":"etx","x-tcl":["tcl","tk"],"x-tex":["tex","ltx","sty","cls"],"x-vcalendar":"vcs","x-vcard":"vcf",n3:"n3","prs.lines.tag":"dsc",sgml:["sgml","sgm"],troff:["t","tr","roff","man","me","ms"],turtle:"ttl","uri-list":["uri","uris","urls"],vcard:"vcard","vnd.curl":"curl","vnd.curl.dcurl":"dcurl","vnd.curl.scurl":"scurl","vnd.curl.mcurl":"mcurl","vnd.dvb.subtitle":"sub","vnd.fly":"fly","vnd.fmi.flexstor":"flx","vnd.graphviz":"gv","vnd.in3d.3dml":"3dml","vnd.in3d.spot":"spot","x-asm":["s","asm"],"x-c":["c","h","dic"],"x-fortran":["f","for","f77","f90"],"x-opml":"opml","x-nfo":"nfo","x-sfv":"sfv","x-uuencode":"uu",webviewhtml:"htt",javascript:"js",json:"json",markdown:["md","markdown","mdown","markdn"],"vnd.wap.si":"si","vnd.wap.sl":"sl"},video:{avif:"avif","3gpp":"3gp",annodex:"axv",dl:"dl",dv:["dif","dv"],fli:"fli",gl:"gl",mpeg:["mpeg","mpg","mpe","m1v","m2v","mp2","mpa","mpv2"],mp4:["mp4","mp4v","mpg4"],quicktime:["qt","mov"],ogg:"ogv","vnd.mpegurl":["mxu","m4u"],"x-flv":"flv","x-la-asf":["lsf","lsx"],"x-mng":"mng","x-ms-asf":["asf","asx","asr"],"x-ms-wm":"wm","x-ms-wmv":"wmv","x-ms-wmx":"wmx","x-ms-wvx":"wvx","x-msvideo":"avi","x-sgi-movie":"movie","x-matroska":["mpv","mkv","mk3d","mks"],"3gpp2":"3g2",h261:"h261",h263:"h263",h264:"h264",jpeg:"jpgv",jpm:["jpm","jpgm"],mj2:["mj2","mjp2"],"vnd.dece.hd":["uvh","uvvh"],"vnd.dece.mobile":["uvm","uvvm"],"vnd.dece.pd":["uvp","uvvp"],"vnd.dece.sd":["uvs","uvvs"],"vnd.dece.video":["uvv","uvvv"],"vnd.dvb.file":"dvb","vnd.fvt":"fvt","vnd.ms-playready.media.pyv":"pyv","vnd.uvvu.mp4":["uvu","uvvu"],"vnd.vivo":"viv",webm:"webm","x-f4v":"f4v","x-m4v":"m4v","x-ms-vob":"vob","x-smv":"smv",mp2t:"ts"},"x-conference":{"x-cooltalk":"ice"},"x-world":{"x-vrml":["vrm","flr","wrz","xaf","xof"]}};(()=>{const e={};for(const t of Object.keys(Vr))for(const i of Object.keys(Vr[t])){const n=Vr[t][i];if("string"==typeof n)e[n]=t+"/"+i;else for(let o=0;o{const i="text/javascript";if(e){const e=new Blob([t],{type:i});return URL.createObjectURL(e)}return"data:"+i+","+encodeURIComponent(t)}})}(an);class Xr extends Ni{constructor(e,t){super(Object.assign(Object.assign({},t),{format:"EPUB"})),this.epubBuffer=e}renderTo(e){return new Promise((t,i)=>d(this,void 0,void 0,function*(){this.element=e,this.book||(yield this.parse());let i=new oe(this.book);this.chapterList=yield i.getChapter(this.book.toc),this.chapterDocList=yield i.getChapterDoc(),K(e,this.isAllowScript);let n=this.getDocument();n&&(ee(e,this.readerMode,n),t())}))}parse(){return d(this,void 0,void 0,function*(){let e=new Blob([this.epubBuffer]),t=new File([e],"book",{lastModified:(new Date).getTime(),type:e.type});try{const e=yield this.makeZipLoader(t);this.book=yield new rt(e).init()}catch(e){console.error(e);try{const e=yield this.makeZipLoaderV3(t);this.book=yield new rt(e).init()}catch(e){console.error(e);try{const e=yield this.makeZipLoaderV2(t);this.book=yield new rt(e).init()}catch(e){throw console.error(e),e}}}})}preCache(){return d(this,void 0,void 0,function*(){try{return this.book||(yield this.parse()),yield ji(this.book)}catch(e){return""}})}makeZipLoader(e){return d(this,void 0,void 0,function*(){let t=yield i.loadAsync(e);const n=t.files;return{entries:Object.values(n).map(e=>({filename:e.name})),loadText:e=>d(this,void 0,void 0,function*(){let i=t.file(e);return i?i.async("string"):""}),loadBlob:e=>d(this,void 0,void 0,function*(){let i=t.file(e);if(i){let e=yield i.async("arraybuffer");return new Blob([e])}return new Blob([new ArrayBuffer(0)])}),getSize:e=>{let i=t.file(e);if(i)return i._data.uncompressedSize||0}}})}makeZipLoaderV2(e){return d(this,void 0,void 0,function*(){let t=function(e){const t=new n.Unzip,i={};t.onfile=e=>{if(e.name.endsWith("/")||0===e.originalSize)return;const t=[];e.ondata=(n,o,r)=>{if(n)console.warn(`Error in file "${e.name}": ${n.message}`);else if(t.push(o),r){const n=new Uint8Array(t.reduce((e,t)=>e+t.length,0));let o=0;t.forEach(e=>{n.set(e,o),o+=e.length}),i[e.name]=n}};try{e.start()}catch(t){console.warn(`Error starting file "${e.name}": ${t.message}`)}},t.register(n.UnzipInflate);try{t.push(new Uint8Array(e),!0)}catch(e){console.warn(`Error during unzip: ${e.message}, returning partial results`)}return i}(yield e.arrayBuffer());return{entries:Object.keys(t).map(e=>({filename:e})),loadText:e=>d(this,void 0,void 0,function*(){let i=t[e];if(i){return new TextDecoder("utf-8").decode(i)}return""}),loadBlob:e=>d(this,void 0,void 0,function*(){let i=t[e];return i?new Blob([i]):new Blob([new ArrayBuffer(0)])}),getSize:e=>{let i=t[e];if(i)return i.length||0}}})}makeZipLoaderV3(e){return d(this,void 0,void 0,function*(){let t=new xr(new Wo(e)),i=yield t.getEntries();return{entries:i.map(e=>({filename:e.filename})),loadText:e=>d(this,void 0,void 0,function*(){let t=i.find(t=>t.filename===e);return t?yield t.getData(new jo("utf-8")):""}),loadBlob:e=>d(this,void 0,void 0,function*(){let t=i.find(t=>t.filename===e);return t?yield t.getData(new Po):new Blob([new ArrayBuffer(0)])}),getSize:e=>{let t=i.find(t=>t.filename===e);if(t)return t.uncompressedSize||0}}})}getMetadata(){return d(this,void 0,void 0,function*(){try{this.book||(yield this.parse());let e=new oe(this.book);return yield e.getMetadata()}catch(e){throw console.error(e,"error"),e}})}}const Zr=e=>{if(!e)return"";const t=document.createElement("textarea");return t.innerHTML=e,t.value},$r={XML:"application/xml",XHTML:"application/xhtml+xml",HTML:"text/html",CSS:"text/css",SVG:"image/svg+xml"},_r={name:[0,32,"string"],type:[60,4,"string"],creator:[64,4,"string"],numRecords:[76,2,"uint"]},es={compression:[0,2,"uint"],numTextRecords:[8,2,"uint"],recordSize:[10,2,"uint"],encryption:[12,2,"uint"]},ts={magic:[16,4,"string"],length:[20,4,"uint"],type:[24,4,"uint"],encoding:[28,4,"uint"],uid:[32,4,"uint"],version:[36,4,"uint"],titleOffset:[84,4,"uint"],titleLength:[88,4,"uint"],localeRegion:[94,1,"uint"],localeLanguage:[95,1,"uint"],resourceStart:[108,4,"uint"],huffcdic:[112,4,"uint"],numHuffcdic:[116,4,"uint"],exthFlag:[128,4,"uint"],trailingFlags:[240,4,"uint"],indx:[244,4,"uint"]},is={resourceStart:[108,4,"uint"],fdst:[192,4,"uint"],numFdst:[196,4,"uint"],frag:[248,4,"uint"],skel:[252,4,"uint"],guide:[260,4,"uint"]},ns={magic:[0,4,"string"],length:[4,4,"uint"],count:[8,4,"uint"]},os={magic:[0,4,"string"],length:[4,4,"uint"],type:[8,4,"uint"],idxt:[20,4,"uint"],numRecords:[24,4,"uint"],encoding:[28,4,"uint"],language:[32,4,"uint"],total:[36,4,"uint"],ordt:[40,4,"uint"],ligt:[44,4,"uint"],numLigt:[48,4,"uint"],numCncx:[52,4,"uint"]},rs={magic:[0,4,"string"],length:[4,4,"uint"],numControlBytes:[8,4,"uint"]},ss={magic:[0,4,"string"],offset1:[8,4,"uint"],offset2:[12,4,"uint"]},as={magic:[0,4,"string"],length:[4,4,"uint"],numEntries:[8,4,"uint"],codeLength:[12,4,"uint"]},ls={magic:[0,4,"string"],numEntries:[8,4,"uint"]},cs={flags:[8,4,"uint"],dataStart:[12,4,"uint"],keyLength:[16,4,"uint"],keyStart:[20,4,"uint"]},ds={1252:"windows-1252",65001:"utf-8"},gs={100:["creator","string",!0],101:["publisher"],103:["description"],104:["isbn"],105:["subject","string",!0],106:["date"],108:["contributor","string",!0],109:["rights"],110:["subjectCode","string",!0],112:["source","string",!0],113:["asin"],121:["boundary","uint"],122:["fixedLayout"],125:["numResources","uint"],126:["originalResolution"],127:["zeroGutter"],128:["zeroMargin"],129:["coverURI"],132:["regionMagnification"],201:["coverOffset","uint"],202:["thumbnailOffset","uint"],503:["title"],524:["language","string",!0],527:["pageProgressionDirection"]},hs={1:["ar","ar-SA","ar-IQ","ar-EG","ar-LY","ar-DZ","ar-MA","ar-TN","ar-OM","ar-YE","ar-SY","ar-JO","ar-LB","ar-KW","ar-AE","ar-BH","ar-QA"],2:["bg"],3:["ca"],4:["zh","zh-TW","zh-CN","zh-HK","zh-SG"],5:["cs"],6:["da"],7:["de","de-DE","de-CH","de-AT","de-LU","de-LI"],8:["el"],9:["en","en-US","en-GB","en-AU","en-CA","en-NZ","en-IE","en-ZA","en-JM",null,"en-BZ","en-TT","en-ZW","en-PH"],10:["es","es-ES","es-MX",null,"es-GT","es-CR","es-PA","es-DO","es-VE","es-CO","es-PE","es-AR","es-EC","es-CL","es-UY","es-PY","es-BO","es-SV","es-HN","es-NI","es-PR"],11:["fi"],12:["fr","fr-FR","fr-BE","fr-CA","fr-CH","fr-LU","fr-MC"],13:["he"],14:["hu"],15:["is"],16:["it","it-IT","it-CH"],17:["ja"],18:["ko"],19:["nl","nl-NL","nl-BE"],20:["no","nb","nn"],21:["pl"],22:["pt","pt-BR","pt-PT"],23:["rm"],24:["ro"],25:["ru"],26:["hr",null,"sr"],27:["sk"],28:["sq"],29:["sv","sv-SE","sv-FI"],30:["th"],31:["tr"],32:["ur"],33:["id"],34:["uk"],35:["be"],36:["sl"],37:["et"],38:["lv"],39:["lt"],41:["fa"],42:["vi"],43:["hy"],44:["az"],45:["eu"],46:["hsb"],47:["mk"],48:["st"],49:["ts"],50:["tn"],52:["xh"],53:["zu"],54:["af"],55:["ka"],56:["fo"],57:["hi"],58:["mt"],59:["se"],62:["ms"],63:["kk"],65:["sw"],67:["uz",null,"uz-UZ"],68:["tt"],69:["bn"],70:["pa"],71:["gu"],72:["or"],73:["ta"],74:["te"],75:["kn"],76:["ml"],77:["as"],78:["mr"],79:["sa"],82:["cy","cy-GB"],83:["gl","gl-ES"],87:["kok"],97:["ne"],98:["fy"]},As=(e,t)=>{const i=new e.constructor(e.length+t.length);return i.set(e),i.set(t,e.length),i},us=(e,t,i)=>{const n=new e.constructor(e.length+t.length+i.length);return n.set(e),n.set(t,e.length),n.set(i,e.length+t.length),n},ps=new TextDecoder,fs=e=>ps.decode(e),ms=e=>{if(!e)return;const t=e.byteLength,i=4===t?"getUint32":2===t?"getUint16":"getUint8";return new DataView(e)[i](0)},ws=(e,t)=>Object.fromEntries(Array.from(Object.entries(e)).map(([e,[i,n,o]])=>[e,("string"===o?fs:ms)(t.slice(i,i+n))])),Bs=e=>new TextDecoder(ds[e]),ys=(e,t=0)=>{let i=0,n=0;for(const o of e.subarray(t,t+4))if(i=i<<7|(127&o)>>>0,n++,128&o)break;return{value:i,length:n}},bs=e=>{let t=0;for(const i of e.subarray(-4))128&i&&(t=0),t=t<<7|127&i;return t},Cs=e=>{let t=0;for(;e>0;e>>=1)1&~e||t++;return t},vs=e=>{let t=0;for(;!(1&e);)e>>=1,t++;return t},Es=e=>{let t=[];for(let i=0;i>>3,s=3+(7&o);for(let e=0;e{const i=t+32,n=i>>3;let o=0n;for(let i=t>>3;i<=n;i++)o=o<<8n|BigInt(e[i]??0);return o>>8n-BigInt(7&i)&0xffffffffn},Is=async(e,t)=>{const i=await t(e),n=ws(os,i);if("INDX"!==n.magic)throw new Error("Invalid INDX record");const o=Bs(n.encoding),r=i.slice(n.length),s=ws(rs,r);if("TAGX"!==s.magic)throw new Error("Invalid TAGX section");const a=(s.length-12)/4,l=Array.from({length:a},(e,t)=>new Uint8Array(r.slice(12+4*t,12+4*t+4))),c={};let d=0;for(let i=0;i1){const{value:i,length:n}=ys(o,u);d.push([e,null,i,t]),u+=n}else d.push([e,1,null,t]);else d.push([e,a>>vs(i),null,t])}const p={};for(const[e,t,i,n]of d){const r=[];if(null!=t)for(let e=0;ems(i.slice(8*t,8*t+4))).map((e,t,i)=>[e,i[t+1]])}loadRecord(e){const t=this.#d[e];if(!t)throw new RangeError("Record index out of bounds");return this.#c.slice(...t).arrayBuffer()}async loadMagic(e){const t=this.#d[e][0];return fs(await this.#c.slice(t,t+4).arrayBuffer())}}class Qs extends Ds{#g=0;#h;#A;#u;#p;#f;constructor({unzlib:e}){super(),this.unzlib=e}async open(e){await super.open(e),this.headers=this.#m(await super.loadRecord(0)),this.#h=this.headers.mobi.resourceStart;let t=this.headers.mobi.version>=8;if(!t){const e=this.headers.exth?.boundary;if(e<4294967295)try{this.headers=this.#m(await super.loadRecord(e)),this.#g=e,t=!0}catch(e){console.warn(e),console.warn("Failed to open KF8; falling back to MOBI")}}return await this.#w(),t?new Os(this).init():new Ms(this).init()}#m(e){const t=ws(es,e),i=ws(ts,e);if("MOBI"!==i.magic)throw new Error("Missing MOBI header");const{titleOffset:n,titleLength:o,localeLanguage:r,localeRegion:s}=i;i.title=e.slice(n,n+o);const a=hs[r];i.language=a?.[s>>2]??a?.[0];const l=64&i.exthFlag?((e,t)=>{const{magic:i,count:n}=ws(ns,e);if("EXTH"!==i)throw new Error("Invalid EXTH header");const o=Bs(t),r={};let s=12;for(let t=0;t=8?ws(is,e):null}}async#w(){const{palmdoc:e,mobi:t}=this.headers;this.#A=Bs(t.encoding),this.#u=new TextEncoder;const{compression:i}=e;if(this.#p=1===i?e=>e:2===i?Es:17480===i?await(async(e,t)=>{const i=await t(e.huffcdic),{magic:n,offset1:o,offset2:r}=ws(ss,i);if("HUFF"!==n)throw new Error("Invalid HUFF record");const s=Array.from({length:256},(e,t)=>o+4*t).map(e=>ms(i.slice(e,e+4))).map(e=>[128&e,31&e,e>>>8]),a=[null].concat(Array.from({length:32},(e,t)=>r+8*t).map(e=>[ms(i.slice(e,e+4)),ms(i.slice(e+4,e+8))])),l=[];for(let i=1;i{let t=new Uint8Array;const i=8*e.byteLength;for(let n=0;n>>24];if(!r){for(;o>>>32-di)break;const h=g-(o>>>32-d);let[A,u]=l[h];u||(A=c(A),l[h]=[A,!0]),t=As(t,A)}return t};return c})(t,this.loadRecord.bind(this)):null,!this.#p)throw new Error("Unknown compression type");const{trailingFlags:n}=t,o=1&n,r=Cs(n>>>1);this.#f=e=>{for(let t=0;tnew Uint8Array(e)).then(this.#f).then(this.#p)}async loadResource(e){const t=await super.loadRecord(this.#h+e),i=fs(t.slice(0,4));return"FONT"===i?(async(e,t)=>{const{flags:i,dataStart:n,keyLength:o,keyStart:r}=ws(cs,e),s=new Uint8Array(e.slice(n));if(2&i){const t=16===o?1024:1040,i=new Uint8Array(e.slice(r,r+o)),n=Math.min(t,s.length);for(var a=0;a{const{table:i,cncx:n}=await Is(e,t),o=i.map(({tagMap:e},t)=>({index:t,offset:e[1]?.[0],size:e[2]?.[0],label:n[e[3]]??"",headingLevel:e[4]?.[0],pos:e[6],parent:e[21]?.[0],firstChild:e[22]?.[0],lastChild:e[23]?.[0]})),r=e=>(null==e.firstChild||(e.children=o.filter(t=>t.parent===e.index).map(r)),e);return o.filter(e=>0===e.headingLevel).map(r)})(e,this.loadRecord.bind(this))}getMetadata(){const{mobi:e,exth:t}=this.headers;return{identifier:e.uid.toString(),title:Zr(t?.title||this.decode(e.title)),author:t?.creator?.map(Zr),publisher:Zr(t?.publisher),language:t?.language??e.language,published:t?.date,description:Zr(t?.description),subject:t?.subject?.map(Zr),rights:Zr(t?.rights)}}async getCover(){const{exth:e}=this.headers,t=e?.coverOffset<4294967295?e?.coverOffset:e?.thumbnailOffset<4294967295?e?.thumbnailOffset:null;if(null!=t){const e=await this.loadResource(t);return new Blob([e])}}}const ks=/<\s*(?:mbp:)?pagebreak[^>]*>/gi,Ss=/<[^<>]+filepos=['"]{0,1}(\d+)[^<>]*>/gi;class Ms{parser=new DOMParser;serializer=new XMLSerializer;#B=new Map;#y=new Map;#n=new Map;#b;#C=[];#v=$r.HTML;constructor(e){this.mobi=e}async init(){const e=[];for(let t=0;te+t.byteLength,0),i=new Uint8Array(t);e.reduce((e,t)=>(i.set(new Uint8Array(t),e),e+t.byteLength),0);const n=function(e){let t="";for(let i=0;ie.index)).map((e,t,n)=>{const o=n[t+1]??i.length;return{book:this,raw:i.subarray(e,o)}}).map((e,t,i)=>(e.start=i[t-1]?.end??0,e.end=e.start+e.raw.byteLength,e)),this.sections=this.#b.map((e,t)=>({id:t,load:()=>this.loadSection(e),createDocument:()=>this.createDocument(e),resolveHref:e=>this.resolveHref(e),size:e.end-e.start}));try{this.landmarks=await this.getGuide();const e=this.landmarks.find(({type:e})=>e?.includes("toc"))?.href;if(e){const{index:t}=this.resolveHref(e),i=await this.sections[t].createDocument();let n,o=0,r=0;const s=new Map,a=new Map;this.toc=Array.from(i.querySelectorAll("a[filepos]")).reduce((e,t)=>{const i=(e=>{let t=0;for(;e;){const i=e.parentElement;if(i){const e=i.tagName.toLowerCase();"p"===e?t+=1.5:"blockquote"===e&&(t+=2)}e=i}return t})(t),l={label:t.innerText?.trim()??"",href:`#filepos${t.getAttribute("filepos")}`},c=i>r?o+1:i===r?o:s.get(i)??Math.max(0,o-1);if(c>o)n?(n.subitems??=[],n.subitems.push(l),a.set(c,n)):e.push(l);else{const t=a.get(c);t?t.subitems.push(l):e.push(l)}return n=l,o=c,r=i,s.set(i,c),e},[])}}catch(e){console.warn(e)}return this.#C=[...new Set(Array.from(n.matchAll(Ss),e=>e[1]))].map(e=>({filepos:e,number:Number(e)})).sort((e,t)=>e.number-t.number),this.metadata=this.mobi.getMetadata(),this.getCover=this.mobi.getCover.bind(this.mobi),this}async getGuide(){const e=await this.createDocument(this.#b[0]);return Array.from(e.getElementsByTagName("reference"),e=>({label:e.getAttribute("title"),type:e.getAttribute("type")?.split(/\s/),href:`#filepos${e.getAttribute("filepos")}`}))}async loadResource(e){if(this.#B.has(e))return this.#B.get(e);const t=await this.mobi.loadResource(e),i=URL.createObjectURL(new Blob([t]));return this.#B.set(e,i),i}async loadRecindex(e){return this.loadResource(Number(e)-1)}async replaceResources(e){for(const t of e.querySelectorAll("img[recindex]")){const e=t.getAttribute("recindex");try{t.src=await this.loadRecindex(e)}catch(t){console.warn(`Failed to load image ${e}`)}}for(const t of e.querySelectorAll("[mediarecindex]")){const e=t.getAttribute("mediarecindex"),i=t.getAttribute("recindex");try{t.src=await this.loadRecindex(e),i&&(t.poster=await this.loadRecindex(i))}catch(t){console.warn(`Failed to load media ${e}`)}}for(const t of e.querySelectorAll("[filepos]")){const e=t.getAttribute("filepos");t.href=`#filepos${e}`}}async loadText(e){if(this.#y.has(e))return this.#y.get(e);const{raw:t}=e,i=this.#C.filter(({number:t})=>t>=e.start&&t({...t,offset:t.number-e.start}));let n=t;i.length&&(n=t.subarray(0,i[0].offset),i.forEach(({filepos:e,offset:o},r)=>{const s=i[r+1],a=this.mobi.encode(``);n=us(n,a,t.subarray(o,s?.offset))}));const o=this.mobi.decode(n).replaceAll(ks,"");return this.#y.set(e,o),o}async createDocument(e){const t=await this.loadText(e);return this.parser.parseFromString(t,this.#v)}async loadSection(e){if(this.#n.has(e))return this.#n.get(e);const t=await this.createDocument(e),i=t.createElement("style");t.head.append(i),i.append(t.createTextNode("blockquote {\n margin-block-start: 0;\n margin-block-end: 0;\n margin-inline-start: 1em;\n margin-inline-end: 0;\n }")),await this.replaceResources(t);const n=this.serializer.serializeToString(t),o=URL.createObjectURL(new Blob([n],{type:this.#v}));return this.#n.set(e,o),o}resolveHref(e){const t=e.match(/#filepos(.*)/)[1],i=Number(t);return{index:this.#b.findIndex(e=>e.end>i),anchor:e=>e.getElementById(`filepos${t}`)}}resolveHrefIndex(e){const t=e.match(/#filepos(.*)/)[1],i=Number(t);return{index:this.#b.findIndex(e=>e.end>i)}}splitTOCHref(e){const t=e.match(/#filepos(.*)/)[1],i=Number(t);return[this.#b.findIndex(e=>e.end>i),`filepos${t}`]}getTOCFragment(e,t){return e.getElementById(t)}isExternal(e){return/^(?!blob|filepos)\w+:/i.test(e)}destroy(){for(const e of this.#B.values())URL.revokeObjectURL(e);for(const e of this.#n.values())URL.revokeObjectURL(e)}}const Fs=/kindle:(flow|embed):(\w+)(?:\?mime=(\w+\/[-+.\w]+))?/,Ls=/kindle:pos:fid:(\w+):off:(\w+)/,Ts=e=>{const[t,i]=e.match(Ls).slice(1);return{fid:parseInt(t,32),off:parseInt(i,32)}},Rs=(e=0,t=0)=>`kindle:pos:fid:${e.toString(32).toUpperCase().padStart(4,"0")}:off:${t.toString(32).toUpperCase().padStart(10,"0")}`,Hs=e=>{const t=e.match(/\s(id|name|aid)\s*=\s*['"]([^'"]*)['"]/i);if(!t)return;const[,i,n]=t;return`[${i}="${CSS.escape(n)}"]`},Ys=e=>{for(const t of e){if("page-spread-left"===t||"rendition:page-spread-left"===t)return"left";if("page-spread-right"===t||"rendition:page-spread-right"===t)return"right";if("rendition:page-spread-center"===t)return"center"}};class Os{parser=new DOMParser;serializer=new XMLSerializer;#n=new Map;#E=new Map;#x=new Map;#I={};#b;#D;#Q=new Uint8Array;#k=new Uint8Array;#S=-1;#M=-1;#v=$r.XHTML;#F=new Map;constructor(e){this.mobi=e}async init(){const e=this.mobi.loadRecord.bind(this.mobi),{kf8:t}=this.mobi.headers;try{const i=await e(t.fdst),n=ws(ls,i);if("FDST"!==n.magic)throw new Error("Missing FDST record");const o=Array.from({length:n.numEntries},(e,t)=>12+8*t).map(e=>[ms(i.slice(e,e+4)),ms(i.slice(e+4,e+8))]);this.#I.fdstTable=o,this.#D=o[o.length-1][1]}catch{}const i=(await Is(t.skel,e)).table.map(({name:e,tagMap:t},i)=>({index:i,name:e,numFrag:t[1][0],offset:t[6][0],length:t[6][1]})),n=await Is(t.frag,e),o=n.table.map(({name:e,tagMap:t})=>({insertOffset:parseInt(e),selector:n.cncx[t[2][0]],index:t[4][0],offset:t[6][0],length:t[6][1]}));this.#I.skelTable=i,this.#I.fragTable=o,this.#b=i.reduce((e,t)=>{const i=e[e.length-1],n=i?.fragEnd??0,r=n+t.numFrag,s=o.slice(n,r),a=t.length+s.map(e=>e.length).reduce((e,t)=>e+t),l=(i?.totalLength??0)+a;return e.concat({skel:t,frags:s,fragEnd:r,length:a,totalLength:l})},[]);const r=await this.getResourcesByMagic(["RESC","PAGE"]),s=new Map;if(r.RESC){const e=await this.mobi.loadRecord(r.RESC),t=this.mobi.decode(e.slice(16)).replace(/\0/g,""),i=t.search(/\?>/),n=`${t.slice(i)}`,o=this.parser.parseFromString(n,$r.XML);for(const e of o.querySelectorAll("spine > itemref")){const t=parseInt(e.getAttribute("skelid"));s.set(t,Ys(e.getAttribute("properties")?.split(" ")??[]))}}this.sections=this.#b.map((e,t)=>e.frags.length?{id:t,load:()=>this.loadSection(e),createDocument:()=>this.createDocument(e),resolveHref:e=>this.resolveHref(e),size:e.length,pageSpread:s.get(t)}:{linear:"no"});try{const e=await this.mobi.getNCX(),t=({label:e,pos:i,children:n})=>{const[o,r]=i,s=Rs(o,r),a=this.#E.get(o);return a?a.push(r):this.#E.set(o,[r]),{label:Zr(e),href:s,subitems:n?.map(t)}};this.toc=e?.map(t),this.landmarks=await this.getGuide()}catch(e){console.warn(e)}const{exth:a}=this.mobi.headers;return this.dir=a.pageProgressionDirection,this.rendition={layout:"true"===a.fixedLayout?"pre-paginated":"reflowable",viewport:Object.fromEntries(a.originalResolution?.split("x")?.slice(0,2)?.map((e,t)=>[t?"height":"width",e])??[])},this.metadata=this.mobi.getMetadata(),this.getCover=this.mobi.getCover.bind(this.mobi),this}async getResourcesByMagic(e){const t={},i=this.mobi.headers.kf8.resourceStart,n=this.mobi.pdb.numRecords;for(let o=i;oe===i);n&&(t[n]=o)}catch{}return t}async getGuide(){const e=this.mobi.headers.kf8.guide;if(e<4294967295){const t=this.mobi.loadRecord.bind(this.mobi),{table:i,cncx:n}=await Is(e,t);return i.map(({name:e,tagMap:t})=>({label:n[t[1][0]]??"",type:e?.split(/\s/),href:Rs(t[6]?.[0]??t[3]?.[0])}))}}async loadResourceBlob(e){let{resourceType:t,id:i,type:n}=(e=>{const[t,i,n]=e.match(Fs).slice(1);return{resourceType:t,id:parseInt(i,32),type:n}})(e);"image/jpg"===n&&(n="image/jpeg");const o="flow"===t?await this.loadFlow(i):await this.mobi.loadResource(i-1),r=[$r.XHTML,$r.HTML,$r.CSS,$r.SVG].includes(n)?await this.replaceResources(this.mobi.decode(o)):o,s=n===$r.SVG?this.parser.parseFromString(r,n):null;return[new Blob([r],{type:n}),s?.getElementsByTagNameNS("http://www.w3.org/2000/svg","image")?.length?s.documentElement:null]}async loadResource(e){if(this.#n.has(e))return this.#n.get(e);const[t,i]=await this.loadResourceBlob(e),n=i?e:URL.createObjectURL(t);return i&&this.#F.set(n,i),this.#n.set(e,n),n}replaceResources(e){return(async(e,t,i)=>{const n=[];e.replace(t,(...e)=>(n.push(e),null));const o=[];for(const e of n)o.push(await i(...e));return e.replace(t,()=>o.shift())})(e,new RegExp(Fs,"g"),this.loadResource.bind(this))}async loadRaw(e,t){const i=t-this.#Q.length,n=null==this.#D?1/0:this.#D-this.#k.length-e;if(i<0||ie;){const e=this.mobi.headers.palmdoc.numTextRecords-1-++this.#M,t=await this.mobi.loadText(e);this.#k=As(t,this.#k)}const o=this.#D-this.#k.length;return this.#k.slice(e-o,t-o)}loadFlow(e){if(e<4294967295)return this.loadRaw(...this.#I.fdstTable[e])}async loadText(e){const{skel:t,frags:i,length:n}=e,o=await this.loadRaw(t.offset,t.offset+n);let r=o.slice(0,t.length);for(const e of i){const i=e.insertOffset-t.offset,n=t.length+e.offset,s=o.slice(n,n+e.length);r=us(r.slice(0,i),s,r.slice(i));const a=this.#E.get(e.index);if(a)for(const t of a){const i=this.mobi.decode(s.slice(t)),n=Hs(i);this.#L(e.index,t,n)}}return this.mobi.decode(r)}async createDocument(e){const t=await this.loadText(e);return this.parser.parseFromString(t,this.#v)}async loadSection(e){if(this.#n.has(e))return this.#n.get(e);const t=await this.loadText(e),i=await this.replaceResources(t);let n=this.parser.parseFromString(i,this.#v);n.querySelector("parsererror")&&(this.#v=$r.HTML,n=this.parser.parseFromString(i,this.#v));for(const[e,t]of this.#F)for(const i of n.querySelectorAll(`img[src="${e}"]`))i.replaceWith(t);const o=URL.createObjectURL(new Blob([this.serializer.serializeToString(n)],{type:this.#v}));return this.#n.set(e,o),o}getIndexByFID(e){return this.#b.findIndex(t=>t.frags.some(t=>t.index===e))}#L(e,t,i){const n=this.#x.get(e);if(n)n.set(t,i);else{const n=new Map;this.#x.set(e,n),n.set(t,i)}}async resolveHref(e){const{fid:t,off:i}=Ts(e),n=this.getIndexByFID(t);if(n<0)return;const o=this.#x.get(t)?.get(i);if(o)return{index:n,anchor:e=>e.querySelector(o)};const{skel:r,frags:s}=this.#b[n],a=s.find(e=>e.index===t),l=r.offset+r.length+a.offset,c=await this.loadRaw(l,l+a.length),d=this.mobi.decode(c.slice(i)),g=Hs(d);this.#L(t,i,g);return{index:n,anchor:e=>e.querySelector(g)}}async resolveHrefIndex(e){const{fid:t,off:i}=Ts(e),n=this.getIndexByFID(t);if(!(n<0))return{index:n}}splitTOCHref(e){const t=Ts(e);return[this.getIndexByFID(t.fid),t]}getTOCFragment(e,{fid:t,off:i}){const n=this.#x.get(t)?.get(i);return e.querySelector(n)}isExternal(e){return/^(?!blob|kindle)\w+:/i.test(e)}destroy(){for(const e of this.#n.values())URL.revokeObjectURL(e)}}class Gs extends Ni{constructor(e,t){super(Object.assign(Object.assign({},t),{format:"MOBI"})),this.mobiBuffer=e}renderTo(e){return new Promise((t,i)=>d(this,void 0,void 0,function*(){this.element=e,this.book||(yield this.parse());let i=new oe(this.book);this.chapterList=yield i.getChapter(this.book.toc),this.chapterDocList=yield i.getChapterDoc(),K(e,this.isAllowScript);let n=this.getDocument();n&&(ee(e,this.readerMode,n),t())}))}parse(){return d(this,void 0,void 0,function*(){try{let e=new Blob([this.mobiBuffer]),t=new File([e],"book",{lastModified:(new Date).getTime(),type:e.type});if(!(yield(async e=>"BOOKMOBI"===fs(await e.slice(60,68).arrayBuffer()))(t)))throw new Error("Not a valid MOBI file");this.book=yield new Qs({unzlib:o}).open(t)}catch(e){throw console.error(e),e}})}preCache(){return d(this,void 0,void 0,function*(){return this.book||(yield this.parse()),yield ji(this.book)})}getMetadata(){return d(this,void 0,void 0,function*(){try{this.book||(yield this.parse());let e=new oe(this.book);return yield e.getMetadata()}catch(e){throw console.error(e),e}})}}const Ns=e=>`${Ps()?".":""}/lib/pdfjs/${e}`,Us=window.pdfjsLib,Ws=async e=>await(await fetch(e)).text(),Ps=()=>"undefined"!=typeof window&&"object"==typeof window.process&&"renderer"===window.process.type||(!("undefined"==typeof process||"object"!=typeof process.versions||!process.versions.electron)||"object"==typeof navigator&&"string"==typeof navigator.userAgent&&navigator.userAgent.indexOf("Electron")>=0);function js(e,t="",i=""){return new Promise(n=>{vex.dialog.prompt({message:e,placeholder:t,value:i,callback:function(e){n(e)}})})}const zs=async()=>await Ws(Ns("text_layer_builder.css")),Ks=async()=>await Ws(Ns("annotation_layer_builder.css")),qs=async(e,t)=>{try{const i=e.getViewport({scale:1});if(t){const t=document.createElement("canvas");t.height=i.height,t.width=i.width;const n=t.getContext("2d");return await e.render({canvasContext:n,viewport:i}).promise,new Promise(e=>t.toBlob(e))}return URL.createObjectURL(new Blob([`\n \n \n \n \n \n

\n
\n
\n
\n \n
\n
\n`],{type:"text/html"}))}catch(e){console.error(e)}},Js=e=>({label:e.title,href:e.dest?JSON.stringify(e.dest):null,subitems:e.items.length?e.items.map(Js):null});function Vs(e="need"){return(navigator.language?.toLowerCase()||"en").startsWith("zh")?"need"===e?"请输入PDF密码:":"密码错误,请重新输入:":"need"===e?"Need password to open this PDF:":"Incorrect password, please try again:"}const Xs=async(e,t)=>{let i;for(;;){const n=new Us.PDFDataRangeTransport(e.size,[]);n.requestDataRange=(t,i)=>{e.slice(t,i).arrayBuffer().then(e=>{n.onDataRange(t,e)})};try{i=await Us.getDocument({range:n,cMapUrl:Ns("cmaps/"),standardFontDataUrl:Ns("standard_fonts/"),isEvalSupported:!1,password:t}).promise;break}catch(e){if("PasswordException"!==e.name)throw e;if(e.code===Us.PasswordResponses.NEED_PASSWORD?Ps()?(t=await js(Vs("need"),"",""),vex.closeAll()):t=prompt(Vs("need")):e.code===Us.PasswordResponses.INCORRECT_PASSWORD&&(Ps()?(t=await js(Vs("incorrect"),"",""),vex.closeAll()):t=prompt(Vs("incorrect"))),!t)throw new Error("PDF loading failed: no password provided")}}let n=!1,o=i.numPages>0?await i.getPage(Math.floor(i.numPages/2)+1):null;if(o){const e=await o.getTextContent();if(n=0===e.items.length,e.items.length>0){n=e.items.reduce((e,t)=>e+t.str.trim().length,0)<45}o.cleanup()}const r={rendition:{layout:"pre-paginated"}},{metadata:s,info:a}=await i.getMetadata()??{};r.metadata={title:s?.get("dc:title")??a?.Title,author:s?.get("dc:creator")??a?.Author,contributor:s?.get("dc:contributor"),description:s?.get("dc:description")??a?.Subject,language:s?.get("dc:language"),publisher:s?.get("dc:publisher"),subject:s?.get("dc:subject"),identifier:s?.get("dc:identifier"),source:s?.get("dc:source"),rights:s?.get("dc:rights")},r.metadata.description=(r.metadata.description?r.metadata.description:"")+(n?"\nscanned PDF":"")+(t?"\nprotected PDF: #"+t+"#":"");const l=await i.getOutline();r.toc=l?.map(Js);const c=new Map;return r.sections=Array.from({length:i.numPages}).map((e,t)=>({id:t,load:async()=>{const e=c.get(t);if(e)return e;const n=await qs(await i.getPage(t+1),!1);return c.set(t,n),n},unload:async()=>{(await i.getPage(t+1)).cleanup()},render:async(e,n,o,r,s)=>{await(async(e,t,i,n,o,r,s)=>{try{let a="ios"===window.platform?1:window.visualViewport?.scale||1,l=window.devicePixelRatio*a;if("ios"===window.platform){const t=l,i=2,o=3145728;l=Math.min(t,i);const r=e.getViewport({scale:n*l}),s=r.width*r.height;s>o&&(l*=Math.sqrt(o/s))}const c=n*l;let d=i.querySelector("#koodoPDFLayer");d.style.visibility="hidden",d.style.transform=`scale(${1/l})`,d.style.transformOrigin="top left",d.style.setProperty("--scale-factor",c);const g=e.getViewport({scale:c});d.style.width=`${g.width}px`,d.style.height=`${g.height}px`;const h=document.createElement("canvas");h.height=g.height,h.width=g.width;const A=h.getContext("2d");try{"yes"===s?await e.render({canvasContext:A,viewport:g}).promise:await e.render({canvasContext:A,viewport:g,background:"rgba(0,0,0,0)"}).promise}catch(e){console.error(e)}i.querySelector("#canvas").replaceChildren(i.adoptNode(h)),d.style.overflow="hidden";const u=i.querySelector("#textLayer");try{const t=new Us.TextLayer({textContentSource:await e.streamTextContent(),container:u,viewport:g});await t.render()}catch(e){console.error(e)}for(const e of document.querySelectorAll(".hiddenCanvasElement"))Object.assign(e.style,{position:"absolute",top:"0",left:"0",width:"0",height:"0",display:"none"});const p=document.createElement("div");p.className="endOfContent",u.append(p);let f=!1,m=null;u.onpointerdown=()=>{let e=i?.defaultView;if(e.getSelection().toString().trim().length>0)return u.classList.remove("selecting"),f=!1,p.remove(),void u.append(p);u.classList.add("selecting"),f=!0},"yes"!==o?(u.onpointerup=()=>{u.classList.remove("selecting"),f=!1,p.remove(),u.append(p)},u.onpointermove=e=>{if(!f)return;let t=e.target.closest(".textLayer > span");const i=null!==t;u.style.cursor=i?"text":"default",i&&(m=t),p.remove(),u.insertBefore(p,m)}):i.addEventListener("selectionchange",e=>{if(!f)return;let t=i?.defaultView;var n=t.getSelection().getRangeAt(0).endContainer;let o=n.nodeType===Node.TEXT_NODE?n.parentNode:n;o=o.closest(".textLayer > span");const r=null!==o;u.style.cursor=r?"text":"default",r&&(m=o),p.remove(),u.insertBefore(p,m.nextSibling?m.nextSibling:m)});const w=i.querySelector("#annotationLayer");try{await new Us.AnnotationLayer({page:e,viewport:g,div:w}).render({annotations:await e.getAnnotations(),linkService:{goToDestination:async e=>{try{const i="string"==typeof e?await t.getDestination(e):e;if(!i||!Array.isArray(i)||0===i.length)return void console.warn("Invalid destination:",e);const n=await t.getPageIndex(i[0]);r.goToChapterDocIndex(n)}catch(e){console.error("Error navigating to destination:",e)}},getDestinationHash:e=>JSON.stringify(e),addLinkAttributes:(e,t)=>e.href=t}})}catch(e){console.error(e)}}catch(e){console.error(e)}})(await i.getPage(t+1),i,e,n,o,r,s)},getTextContent:async()=>{const e=await i.getPage(t+1);return await e.getTextContent()},size:1e3,getDimension:async()=>{let e=(await i.getPage(t+1)).getViewport({scale:1});return{width:e.width,height:e.height}},getPage:async()=>await i.getPage(t+1)})),r.isExternal=e=>/^\w+:/i.test(e),r.resolveHref=async e=>{const t=JSON.parse(e),n="string"==typeof t?await i.getDestination(t):t;return{index:await i.getPageIndex(n[0])}},r.resolveHrefIndex=async e=>{const t=JSON.parse(e),n="string"==typeof t?await i.getDestination(t):t,o=await i.getPageIndex(n[0]);return{index:o||0}},r.splitTOCHref=async e=>{const t=JSON.parse(e),n="string"==typeof t?await i.getDestination(t):t;return[await i.getPageIndex(n[0]),null]},r.getTOCFragment=e=>e.documentElement,r.getCover=async()=>qs(await i.getPage(1),!0),r.destroy=()=>i.destroy(),r};class Zs extends Ni{constructor(e,t){super(Object.assign(Object.assign({},t),{convertChinese:"Default",format:"PDF"})),this.isStartFromEven="no",this.isKeepPDFBackground="no",this.pdfCrop={top:0,bottom:0,left:0,right:0},this.password="",this.pdfScale=0,this.scale=1,this.enablePDFSelectionOptimization="no",this.scrollPDFInterval=null,this.templateChapterDocIndex=0,this.pdfTextLineHeightRecord={},this.pdfTextLineHeightFixed=null,this.fabricCanvasMap=new Map,this.fabricHistoryMap=new Map,this.fabricHistoryLock=new Set,this.fabricSyncListenerMap=new Map,this.annotationStyle="brush",this.brushColor="#ff0000",this.brushWidth=2,this.highlighterColor="#ffff00",this.highlighterWidth=24,this.highlighterOpacity=.4,this.shapeType="rect",this.shapeColor="#ff0000",this.shapeWidth=2,this.textSize=24,this.textFont="sans-serif",this.textColor="#ff0000",this.isDrawing="no",this.getPdfScale=()=>d(this,void 0,void 0,function*(){if(this.pdfScale&&this.pdfScale>0)return this.pdfScale;let e=this.getDocument();if("scroll"===this.readerMode&&(e=this.getSubDocument(this.templateChapterDocIndex)),!e)return 1;let{width:t,height:i}=yield this.chapterDocList[this.templateChapterDocIndex].text.getDimension(),n=e.body.clientWidth,o=this.element.clientHeight;if("double"===this.readerMode){let e="double"===this.readerMode?2:1,t=Math.floor(this.element.clientWidth/12);n=(n-(t%2==0?t:t-1))/e}let r=Math.min(n/t,o/i);return"scroll"===this.readerMode&&(n-=10,r=n/t),this.pdfScale=r,r}),this.pdfBuffer=e,this.isStartFromEven=t.isStartFromEven||"no",this.pdfCrop=t.pdfCrop||{top:0,bottom:0,left:0,right:0},this.isKeepPDFBackground=t.isKeepPDFBackground||"no",this.password=t.password||"",this.scale=t.scale||1,this.backgroundColor=t.backgroundColor||"#ffffff",this.isScannedPDF=t.isScannedPDF||"no",this.platform=t.platform||"web",this.enablePDFSelectionOptimization=t.enablePDFSelectionOptimization||"no",this.brushColor=t.brushColor||"#ff0000",this.brushWidth=t.brushWidth||2,this.highlighterColor=t.highlighterColor||"#ffff00",this.highlighterWidth=t.highlighterWidth||24,this.highlighterOpacity=null!=t.highlighterOpacity?t.highlighterOpacity:.4,this.shapeType=t.shapeType||"rect",this.shapeColor=t.shapeColor||"#ff0000",this.shapeWidth=t.shapeWidth||2,this.textSize=null!=t.textSize?t.textSize:24,this.textFont=t.textFont||"sans-serif",this.textColor=t.textColor||"#ff0000",this.isDrawing=t.isDrawing||"no"}renderTo(e){return new Promise((t,i)=>d(this,void 0,void 0,function*(){this.element=e,this.book||(yield this.parse());let i,n=new oe(this.book);this.chapterList=yield n.getChapter(this.book.toc),this.chapterDocList=yield n.getChapterDoc(),"yes"===this.isStartFromEven&&"double"===this.readerMode&&(this.chapterDocList=[{label:"",text:{load:()=>d(this,void 0,void 0,function*(){return""}),render:()=>d(this,void 0,void 0,function*(){}),unload:()=>d(this,void 0,void 0,function*(){}),getPage:()=>d(this,void 0,void 0,function*(){return null}),getDimension:()=>d(this,void 0,void 0,function*(){return{width:0,height:0}}),getScale:()=>d(this,void 0,void 0,function*(){return 1}),getPageCount:()=>d(this,void 0,void 0,function*(){return 0})},href:""},...this.chapterDocList]),"single"===this.readerMode&&Math.abs(this.scale)>1.4&&(this.scale=1.4),document.body.clientWidth*Math.abs(this.scale)-.4*document.body.clientWidth>document.body.clientWidth&&"double"!==this.readerMode?K(e,this.isAllowScript,this.scale):K(e,this.isAllowScript);let o=0,r=yield this.getTemplateChapterDoc();i=r.dimension,o=r.index,this.templateChapterDocIndex=o;let s=this.getDocument();if(!s)return;yield((e,t,i,n,o)=>d(void 0,void 0,void 0,function*(){const r=document.createDocumentFragment();for(let s=0;s{a&&clearTimeout(a),a=setTimeout(()=>d(this,void 0,void 0,function*(){yield this.handlePDFScrollEvent(s),yield this.record()}),100)}):s.addEventListener("scroll",e=>{a&&clearTimeout(a),a=setTimeout(()=>d(this,void 0,void 0,function*(){yield this.handlePDFScrollEvent(s),yield this.record()}),200)}),((e,t,i)=>{if("scroll"===t)return;let n="double"===t?2:1,o=Math.floor(i.body.clientWidth/12),r=o%2==0?o:o-1;i.documentElement.setAttribute("style",`${"double"===t?"position: absolute;":""}height: 100%;overflow-y: hidden;overflow-X: hidden;padding-left: 0px;padding-right: 0px;margin: 0px;box-sizing: border-box;touch-action: manipulation; overscroll-behavior: none;max-width: inherit;column-fill: auto;column-gap: ${r}px; column-width: ${(i.body.clientWidth-r)/n}px;`),i.body.setAttribute("style",`margin: 0px !important; padding: 0px !important;column-fill: auto;column-gap: ${r}px; column-width: ${(i.body.clientWidth-r)/n}px;`)})(0,this.readerMode,s),t()}))}getTemplateChapterDoc(){return d(this,void 0,void 0,function*(){const e=this.chapterDocList.length;let t=[1,Math.floor(e/4),Math.floor(e/2),Math.floor(3*e/4),e-1].filter(t=>t>=0&&td(this,void 0,void 0,function*(){return{index:e,dimension:yield this.chapterDocList[e].text.getDimension()}})))).map(e=>({index:e.index,ratio:e.dimension.height/e.dimension.width,dimension:e.dimension})),n=new Map,o=new Map;i.forEach(e=>{const t=Math.round(1e3*e.ratio)/1e3;n.set(t,(n.get(t)||0)+1);const i=Math.round(e.dimension.width);o.set(i,(o.get(i)||0)+1)});let r=0;n.forEach(e=>{e>r&&(r=e)});let s=0;o.forEach(e=>{e>s&&(s=e)});const a=i.filter(e=>{const t=Math.round(1e3*e.ratio)/1e3,i=Math.round(e.dimension.width);return n.get(t)===r&&o.get(i)===s});let l={count:r,dimension:null,index:0,ratio:0};return a.forEach(e=>{e.ratio>l.ratio&&(l={count:r,dimension:e.dimension,index:e.index,ratio:e.ratio})}),l.dimension||i.forEach(e=>{const t=Math.round(1e3*e.ratio)/1e3;n.get(t)===r&&e.ratio>l.ratio&&(l={count:r,dimension:e.dimension,index:e.index,ratio:e.ratio})}),l})}autoScrollPDF(e){return d(this,void 0,void 0,function*(){let t=this.getDocument();this.scrollPDFInterval&&(clearInterval(this.scrollPDFInterval),this.scrollPDFInterval=null),"no"!==e&&"scroll"===this.readerMode&&(this.scrollPDFInterval=setInterval(()=>d(this,void 0,void 0,function*(){t&&(yield this.handlePDFScrollEvent(t))}),1e3))})}handlePDFScrollEvent(e){return d(this,void 0,void 0,function*(){let t=e.querySelectorAll(".pdf-container");for(let i=0;i0&&(yield this.goToChapter(e,this.chapterDocList[e].href,this.chapterDocList[e].label))})}getPageSize(e){let t=this.getDocument();if(!t)return;let i="double"===this.readerMode?2:1,n=Math.floor(t.body.clientWidth/12),o=n%2==0?n:n-1,r=t.querySelectorAll("iframe")[0],s=null==r?void 0:r.getBoundingClientRect().height,a=0;if(void 0!==e){let i=t.querySelector("#pdf-container-"+e);i&&(a=i.getBoundingClientRect().top)}return{width:t.body.clientWidth,height:this.element.clientHeight,left:G(this.element),top:N(this.element),offsetTop:a,scrollTop:this.element.scrollTop,scrollLeft:this.element.scrollWidth/2-this.element.clientWidth/2,sectionWidth:(t.body.clientWidth-o)/i,sectionHeight:s,gap:o}}goToChapter(e,t,i){return d(this,void 0,void 0,function*(){"double"===this.readerMode&&e%2==1&&e--;let t=this.getDocument(),i=this.getIframe();t&&i&&(yield this.renderPdfPage(e),yield mi(parseInt(e),this.readerMode,t),yield this.recordByChapter(e))})}getPositionByChapter(e){return{percentage:e/this.chapterDocList.length,chapterDocIndex:e+"",chapterHref:this.chapterDocList[e].href,chapterTitle:this.chapterDocList[e].label,text:""}}goToPercentage(e){return d(this,void 0,void 0,function*(){if(this.chapterDocList.length>0){let t=1===e?this.chapterDocList.length-1:Math.floor(this.chapterDocList.length*e);yield this.goToChapter(t,this.chapterDocList[t].href,this.chapterDocList[t].label)}})}goToPosition(e){return d(this,void 0,void 0,function*(){let i=this.getDocument(),n=this.getIframe();if(!i||!n)return;let o=JSON.parse(e);void 0===o.chapterDocIndex&&(o.chapterDocIndex=0),this.tempLocation={text:o.text,chapterTitle:o.chapterTitle,chapterDocIndex:o.chapterDocIndex,chapterHref:o.chapterHref,count:o.count,page:o.page,percentage:o.percentage};let{chapterTitle:r,chapterDocIndex:s,chapterHref:a}=o;"double"===this.readerMode&&s%2==1&&s--,yield this.renderPdfPage(parseInt(s)),"scroll"===this.readerMode&&(n.height=i.body.scrollHeight+"px",n.height=i.body.scrollHeight+300+"px"),yield mi(parseInt(s),this.readerMode,i),t.init(),yield this.recordByChapter(parseInt(s)),this.addPageAnimation(this.backgroundColor)})}prev(e){return d(this,void 0,void 0,function*(){let t=this.getDocument(),i=this.getIframe();t&&i&&("scroll"===this.readerMode?this.element.scrollBy({left:0,top:-(this.element.clientHeight-50),behavior:"smooth"}):("ios"===e?yield yi(this.element,this.animation,1,t,this.flipToNextPage,this.flipToPrevPage,this.isMobile,parseInt(this.tempLocation.chapterDocIndex||"0"),this.readerMode):yield wt(this.element,this.animation,1,t,this.flipToNextPage,this.flipToPrevPage,this.isMobile),yield this.renderPdfPage(parseInt(this.tempLocation.chapterDocIndex)-("double"===this.readerMode?2:1))),yield this.record())})}next(e){return d(this,void 0,void 0,function*(){let t=this.getDocument(),i=this.getIframe();t&&i&&("scroll"===this.readerMode?this.element.scrollBy({left:0,top:this.element.clientHeight-50,behavior:"smooth"}):("ios"===e?yield yi(this.element,this.animation,-1,t,this.flipToNextPage,this.flipToPrevPage,this.isMobile,parseInt(this.tempLocation.chapterDocIndex||"0"),this.readerMode):yield wt(this.element,this.animation,-1,t,this.flipToNextPage,this.flipToPrevPage,this.isMobile),yield this.renderPdfPage(parseInt(this.tempLocation.chapterDocIndex)+("double"===this.readerMode?2:1))),yield this.record())})}prevChapter(){return d(this,void 0,void 0,function*(){yield this.prev()})}nextChapter(){return d(this,void 0,void 0,function*(){yield this.next()})}goToPage(e){return d(this,void 0,void 0,function*(){let t=Math.floor(e-1);t>=this.chapterDocList.length&&(t=this.chapterDocList.length-1),t<0&&(t=0),yield this.goToChapter(t,this.chapterDocList[t].href,this.chapterDocList[t].label)})}visibleText(){return d(this,void 0,void 0,function*(){let e=parseInt(this.tempLocation.chapterDocIndex||"0"),t=this.chapterDocList[e],i=(yield vi(t)).map(e=>e.text.trim());if("double"===this.readerMode){let t=e+1;if(te.text.trim());i=i.concat(n)}}return i})}audioText(){return d(this,void 0,void 0,function*(){return yield this.visibleText()})}getRestAudioText(e){return d(this,void 0,void 0,function*(){const t=[],i=parseInt(this.tempLocation.chapterDocIndex||"0")+1,n=Math.min(i+e,this.chapterDocList.length);for(let e=i;ee.text.trim()).filter(e=>!!e);n.length>0&&t.push({chapterDocIndex:e,audioText:n})}return t})}chapterText(){return d(this,void 0,void 0,function*(){return(yield this.visibleText()).join(" ")})}record(){return d(this,void 0,void 0,function*(){"none"!==this.animation&&"yes"!==this.isMobile&&(yield new Promise(e=>setTimeout(e,1e3)));let e=this.getDocument();e&&(yield this.handlePDFRecord(e))})}recordByChapter(e){return d(this,void 0,void 0,function*(){if("none"!==this.animation&&"yes"!==this.isMobile&&(yield new Promise(e=>setTimeout(e,1e3))),e>=this.chapterDocList.length||e<0)return;this.tempLocation.chapterDocIndex=e+"",this.tempLocation.percentage=1===this.chapterDocList.length?"1":e/(this.chapterDocList.length-1)+"",this.tempLocation.chapterHref=this.chapterDocList[e].href;let t=this.chapterDocList[e].label;if(!t){let i=e;for(;i>=0;){if(this.chapterDocList[i].label){t=this.chapterDocList[i].label;break}i--}}this.tempLocation.chapterTitle=t,this.tempLocation.text="",this.trigger("page-changed")})}handlePDFRecord(e){return d(this,void 0,void 0,function*(){let t=e.querySelectorAll(".pdf-container");if(t.length>0&&wi(this.element,t[t.length-1],this.readerMode,e))this.handleRecord(t[t.length-1]);else for(let i=0;i=0;){if(this.chapterDocList[t].label){e=this.chapterDocList[t].label;break}t--}}this.tempLocation.chapterTitle=e,this.tempLocation.text="",this.trigger("page-changed")}}getMetadata(){return d(this,void 0,void 0,function*(){try{this.book||(yield this.parse());let e=new oe(this.book);return yield e.getMetadata()}catch(e){throw console.error(e),e}})}highlightAudioNode(e,t){let i=parseInt(this.tempLocation.chapterDocIndex),n=this.getSubDocument(i);if(n&&(Bi(e,t,n),"double"===this.readerMode)){let n=this.getSubDocument(i+1);if(!n)return;Bi(e,t,n)}}highlightSearchNode(e,t){let i=parseInt(this.tempLocation.chapterDocIndex),n=this.getSubDocument(i);n&&Wt(e,t,n)}getProgress(){return{totalPage:this.chapterDocList.length,currentPage:parseInt(this.tempLocation.chapterDocIndex||"0")+1}}getNotePosition(){var e;return d(this,void 0,void 0,function*(){let t=this.getDocument();if(!t)return;let i=te(t);if(!i)return;let n=i.ownerDocument,o=null===(e=null==n?void 0:n.defaultView)||void 0===e?void 0:e.frameElement,r=(null==o?void 0:o.getAttribute("id"))||"",s=r?parseInt(r.split("-").reverse()[0]):0;return Object.assign(Object.assign({},this.tempLocation),{chapterDocIndex:s})})}getSubDocument(e){let t=document.getElementById("page-area");if(!t)return null;let i=t.getElementsByTagName("iframe")[0];if(!i)return null;let n=i.contentDocument;if(!n)return null;let o=n.getElementById("pdf-iframe-"+e);return o||(fi(e||0,n),o=n.getElementById("pdf-iframe-"+e)),o.contentDocument}getSubIframe(e){let t=document.getElementById("page-area");if(!t)return null;let i=t.getElementsByTagName("iframe")[0];if(!i)return null;let n=i.contentDocument;return n?(i=n.getElementById("pdf-iframe-"+e),i||(fi(e||0,n),i=n.getElementById("pdf-iframe-"+e)),i):null}getHighlightCoords(e){return d(this,void 0,void 0,function*(){let t=void 0!==e?e:parseInt(this.tempLocation.chapterDocIndex),i=this.getSubDocument(e);if(!i)return;var n=i.getSelection().getRangeAt(0).getClientRects();let o=yield this.chapterDocList[t].text.getPage(),r=yield this.getPdfScale();var s=o.getViewport({scale:r});let a=i.querySelector("canvas");var l=null==a?void 0:a.getClientRects()[0];let c=[];for(let e=0;en[e].left&&(c[c.length-1].left=n[e].left),c[c.length-1].right{t&&("number"==typeof e.left&&t.set("left",e.left*a),"number"==typeof e.top&&t.set("top",e.top*l),"number"==typeof e.scaleX&&t.set("scaleX",e.scaleX*a),"number"==typeof e.scaleY&&t.set("scaleY",e.scaleY*l),t.setCoords&&t.setCoords(),t.isType&&t.isType("i-text")&&this.attachITextListeners(i,t))}:(e,t)=>{t&&t.isType&&t.isType("i-text")&&this.attachITextListeners(i,t)};try{yield new Promise(e=>{i.loadFromJSON(t,()=>{i.requestRenderAll(),e()},c)}),this.fabricHistoryMap.set(e,i.getObjects?i.getObjects().slice():[])}catch(e){console.warn(e)}finally{this.fabricHistoryLock.delete(e)}})}removeOneNote(e,t){let i=this.getSubDocument(void 0!==t?t:parseInt(this.tempLocation.chapterDocIndex));if(!i)return;const n=i.querySelectorAll(".kookit-note");for(let t=0;te.length?e.reduce((e,t)=>e+t,0)/e.length:0,n=(e,t,n)=>{if(e.length<3)return e;let o=i(e.map(t));if(!o)return e;let r=Math.max(o*n,1),s=e.filter(e=>Math.abs(t(e)-o)<=r);return s.length?s:e};let o=Array.from(t.querySelectorAll("span")).map(e=>{var t;let i=e.getBoundingClientRect();return{left:i.left,top:i.top,bottom:i.bottom,height:i.height,text:(null===(t=e.textContent)||void 0===t?void 0:t.trim())||""}}).filter(e=>e.text&&e.height>0);if(o.length<2)return;o.sort((e,t)=>Math.abs(e.top-t.top)<.5?e.left-t.left:e.top-t.top);let r=[];for(let e=0;ee.avgHeight,.3),a=i(s.map(e=>e.avgHeight).filter(e=>e>0));if(!a)return void t.style.removeProperty("--kookit-pdf-text-line-height");let l=[];for(let e=0;e0&&l.push(i)}let c=n(l,e=>e,.5),d=(i(c.filter(e=>e>=0))+a)/a;if(d<=1||d>2)return void t.style.removeProperty("--kookit-pdf-text-line-height");let g=e.getElementById("kookit-pdf-text-layer-style");g||(g=e.createElement("style"),g.id="kookit-pdf-text-layer-style",g.textContent="\n .textLayer span {\n line-height: var(--kookit-pdf-text-line-height, 1) !important;\n }\n ",(e.head||e.documentElement).appendChild(g));let h=d.toFixed(1),A=(this.pdfTextLineHeightRecord[h]||0)+1;this.pdfTextLineHeightRecord[h]=A,A>=3&&(this.pdfTextLineHeightFixed=d),t.style.setProperty("--kookit-pdf-text-line-height",h)}applyPdfCrop(e,t){if("scroll"===this.readerMode){t.body.style.overflow="hidden";const i=100/(100-this.pdfCrop.left-this.pdfCrop.right),n=1,o=(this.pdfCrop.right-this.pdfCrop.left)*(i/2)*n;e.style.transformOrigin="50% 50%",e.style.transform=`translateX(${o}%) scale(${i}) translateZ(0)`,this.pdfCrop.top>0&&(t.body.style.position="relative",t.body.style.bottom=this.pdfCrop.top+2+"%")}}applyAnnotationConfig(e){e.annotationStyle&&this.setAnnotationStyle(e.annotationStyle),e.brushColor&&this.setBrushColor(e.brushColor),e.brushWidth&&this.setBrushWidth(e.brushWidth),e.highlighterColor&&this.setHighlighterColor(e.highlighterColor),e.highlighterWidth&&this.setHighlighterWidth(e.highlighterWidth),null!=e.highlighterOpacity&&this.setHighlighterOpacity(e.highlighterOpacity),e.shapeType&&this.setShapeType(e.shapeType),e.shapeColor&&this.setShapeColor(e.shapeColor),e.shapeWidth&&this.setShapeWidth(e.shapeWidth),null!=e.textSize&&this.setTextSize(e.textSize),e.textFont&&this.setTextFont(e.textFont),e.textColor&&this.setTextColor(e.textColor),e.isDrawing&&this.setIsDrawing(e.isDrawing)}handleRenderPDFChapter(e,t=!1){return d(this,void 0,void 0,function*(){if(e>=this.chapterDocList.length||e<0)return;let i=this.getDocument();if(!i)return;let n=i.getElementById("pdf-iframe-"+e);n||(n=fi(e,i)),t&&(yield this.handleUnloadPDFChapter(e));let o=null==n?void 0:n.contentDocument;if(!o)return;if(o.body.innerHTML&&!t)return;o.body.innerHTML="";let r=yield fetch(yield this.chapterDocList[e].text.load()).then(e=>e.blob()),s=yield r.text();o.body.innerHTML=s;let a=yield this.getPdfScale();yield this.chapterDocList[e].text.render(o,a,this.isMobile,this,this.isKeepPDFBackground);let l=o.querySelector("#koodoPDFLayer");if(l){if("yes"===this.isDarkMode&&(l.style.filter="invert(1) hue-rotate(180deg) contrast(0.95)"),"rgba(233, 216, 188,1)"===this.backgroundColor&&"yes"===this.isScannedPDF&&(l.style.filter="sepia(100%) contrast(0.95) brightness(0.95)"),"rgba(197, 231, 207,1)"===this.backgroundColor&&"yes"===this.isScannedPDF&&(l.style.filter="sepia(30%) hue-rotate(60deg) saturate(120%) brightness(95%)"),(this.pdfCrop.top>0||this.pdfCrop.left>0||this.pdfCrop.right>0)&&this.applyPdfCrop(n,o),"single"===this.readerMode||"double"===this.readerMode){let e=this.element.clientHeight/2-l.getBoundingClientRect().height/2;l.style.marginTop=e+"px",n.style.height=l.getBoundingClientRect().height+e+"px";let t=o.querySelector(".noteLayer");t&&(t.style.position="relative")}if("scroll"!==this.readerMode&&(l.style.marginLeft=`calc(50% - ${l.getBoundingClientRect().width/2}px)`),l.style.visibility="visible","android"===this.platform&&"yes"===this.enablePDFSelectionOptimization&&this.applyPDFTextLayerLineHeight(o),"web"===this.platform&&"yes"===this.isScannedPDF){let t=o.querySelector("#fabric");if(t){t.style.display="block";const i=o.defaultView,n=window.fabric;i&&(n.document=o,n.window=i);const r=new n.Canvas(t,{isDrawingMode:"yes"===this.isDrawing,selection:!0,backgroundColor:"transparent"}),s=l.getBoundingClientRect();s.width>0&&s.height>0&&r.setDimensions({width:Math.round(s.width),height:Math.round(s.height)}),this.applyFabricBrush(r),this.fabricCanvasMap.set(e,r),this.fabricHistoryMap.set(e,[]),r.on("object:added",t=>{this.fabricHistoryLock.has(e)||(this.pushFabricHistory(e,t.target),this.trigger("annotation-changed",[e]))}),r.on("object:removed",()=>{this.fabricHistoryLock.has(e)||this.trigger("annotation-changed",[e])}),r.on("object:modified",()=>{this.fabricHistoryLock.has(e)||this.trigger("annotation-changed",[e])});const a=()=>{i&&n&&(n.document=o,n.window=i)};o.addEventListener("mousedown",a,!0),o.addEventListener("touchstart",a,!0),this.fabricSyncListenerMap.set(e,{doc:o,fn:a}),this.attachFabricKeyListeners(e,o),this.attachShapeDrawListeners(e,r),this.attachTextCreateListeners(e,r)}}this.trigger("rendered",[e])}})}applyFabricBrush(e){if(!e)return;const t="yes"===this.isDrawing,i="shape"===this.annotationStyle,n="text"===this.annotationStyle;!e.freeDrawingBrush||i||n||("highlighter"===this.annotationStyle?(e.freeDrawingBrush.color=this.toRgba(this.highlighterColor,this.highlighterOpacity),e.freeDrawingBrush.width=this.highlighterWidth,e.freeDrawingBrush.strokeLineCap="round",e.freeDrawingBrush.strokeLineJoin="round"):(e.freeDrawingBrush.color=this.brushColor,e.freeDrawingBrush.width=this.brushWidth)),e.isDrawingMode=t&&!i&&!n,t?n?(e.selection=!0,e.defaultCursor="text",e.hoverCursor="text"):(e.selection=!1,e.defaultCursor="crosshair",e.hoverCursor="crosshair"):(e.selection=!0,e.defaultCursor="default",e.hoverCursor="move")}createShapeObject(e,t,i,n){const o=window.fabric;if(!o)return null;const r=this.shapeColor,s=this.shapeWidth,a={stroke:r,strokeWidth:s,strokeLineCap:"round",strokeLineJoin:"round",fill:"transparent",selectable:!0},l=Math.min(e,i),c=Math.min(t,n),d=i-e,g=n-t,h=Math.abs(d),A=Math.abs(g);switch(this.shapeType){case"rect":return new o.Rect(Object.assign(Object.assign({},a),{left:l,top:c,width:h,height:A}));case"circle":{const i=Math.hypot(d,g)/2;return new o.Circle(Object.assign(Object.assign({},a),{left:e,top:t,radius:i,originX:"center",originY:"center"}))}case"ellipse":return new o.Ellipse(Object.assign(Object.assign({},a),{left:(e+i)/2,top:(t+n)/2,rx:h/2,ry:A/2,originX:"center",originY:"center"}));case"line":return new o.Line([e,t,i,n],{stroke:r,strokeWidth:s,strokeLineCap:"round",selectable:!0});case"arrow":return new o.Path(this.buildArrowPath(e,t,i,n,s),{stroke:r,strokeWidth:s,strokeLineCap:"round",strokeLineJoin:"round",fill:r,selectable:!0});default:return null}}buildArrowPath(e,t,i,n,o){const r=i-e,s=n-t,a=Math.hypot(r,s);if(a<1)return[["M",e,t],["L",i,n]];const l=r/a,c=s/a,d=Math.max(3*o,8),g=.5*d,h=-c,A=i-l*d,u=n-c*d;return[["M",e,t],["L",A,u],["M",A+h*g,u+l*g],["L",i,n],["L",A-h*g,u-l*g],["Z"]]}attachShapeDrawListeners(e,t){if(!t)return;let i=!1,n=0,o=0,r=0,s=0,a=null;t.on("mouse:down",l=>{if("shape"!==this.annotationStyle||"yes"!==this.isDrawing)return;i=!0;const c=t.getPointer(l.e);n=c.x,o=c.y,r=n,s=o,this.fabricHistoryLock.add(e),a=this.createShapeObject(n,o,n,o),a&&t.add(a)}),t.on("mouse:move",e=>{if(!i||!a)return;const l=t.getPointer(e.e);r=l.x,s=l.y;const c=this.createShapeObject(n,o,r,s);c&&(t.remove(a),a=c,t.add(a),t.requestRenderAll())}),t.on("mouse:up",()=>{if(!i)return;i=!1,this.fabricHistoryLock.delete(e);const l=Math.hypot(r-n,s-o)>=2;a&&l?(this.pushFabricHistory(e,a),this.trigger("annotation-changed",[e])):a&&(t.remove(a),t.requestRenderAll()),a=null})}attachTextCreateListeners(e,t){t&&t.on("mouse:down",e=>{var i,n;if("text"!==this.annotationStyle||"yes"!==this.isDrawing)return;const o=!0===t._kookitJustExitedText;t._kookitJustExitedText=!1;if(t.findTarget(e.e))return;if(o)return;const r=t.getActiveObject();if(r&&r.isEditing)return r.exitEditing(),void(t._kookitJustExitedText=!1);const s=t.getPointer(e.e),a=window.fabric;if(!a||!a.IText)return;const l=new a.IText("",{left:s.x,top:s.y,fontSize:this.textSize,fontFamily:this.textFont,fill:this.textColor,editable:!0,selectable:!0});t.add(l),t.setActiveObject(l),l.enterEditing(),null===(i=l.hiddenTextarea)||void 0===i||i.focus();const c=t.getElement&&t.getElement().ownerDocument?t.getElement().ownerDocument.defaultView:null;if(c&&document.activeElement!==l.hiddenTextarea){try{c.focus()}catch(e){}null===(n=l.hiddenTextarea)||void 0===n||n.focus()}this.attachITextListeners(t,l)})}attachITextListeners(e,t){if(!e||!t||t._kookitListenersAttached)return;t._kookitListenersAttached=!0;const i=()=>{try{t.setCoords()}catch(e){}e.requestRenderAll()};t.on("text:changed",i),t.on("editing:exited",()=>{e._kookitJustExitedText=!0,i()})}toRgba(e,t){if("string"!=typeof e||!e)return`rgba(255,255,0,${t})`;const i=e.trim(),n=i.match(/^rgba?\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)\s*(?:,\s*([\d.]+)\s*)?\)$/i);if(n){return`rgba(${Math.round(parseFloat(n[1]))},${Math.round(parseFloat(n[2]))},${Math.round(parseFloat(n[3]))},${t})`}const o=i.match(/^#?([0-9a-f]{3}|[0-9a-f]{6})$/i);if(o){let e=o[1];3===e.length&&(e=e.split("").map(e=>e+e).join(""));return`rgba(${parseInt(e.slice(0,2),16)},${parseInt(e.slice(2,4),16)},${parseInt(e.slice(4,6),16)},${t})`}return`rgba(255,255,0,${t})`}pushFabricHistory(e,t){if(!t)return;let i=this.fabricHistoryMap.get(e);i||(i=[],this.fabricHistoryMap.set(e,i)),i.push(t)}attachFabricKeyListeners(e,t){t.addEventListener("keydown",t=>{const i=this.fabricCanvasMap.get(e);if(i){if((t.ctrlKey||t.metaKey)&&("z"===t.key||"Z"===t.key))return t.preventDefault(),void this.undoFabric(e);if("Backspace"===t.key||"Delete"===t.key){const n=i.getActiveObject();if(n&&n.isEditing)return;const o=i.getActiveObjects();o&&o.length>0&&(t.preventDefault(),o.forEach(t=>{i.remove(t);const n=this.fabricHistoryMap.get(e);if(n){const e=n.lastIndexOf(t);e>=0&&n.splice(e,1)}}),i.discardActiveObject(),i.requestRenderAll())}}})}undoFabric(e){const t=this.fabricCanvasMap.get(e);if(!t)return;const i=this.fabricHistoryMap.get(e);if(!i||0===i.length)return;const n=i.pop();n&&(t.remove(n),t.discardActiveObject(),t.requestRenderAll())}setBrushColor(e){this.brushColor=e,this.fabricCanvasMap.forEach(e=>{this.applyFabricBrush(e),e.requestRenderAll()})}setHighlighterColor(e){this.highlighterColor=e,this.fabricCanvasMap.forEach(e=>{this.applyFabricBrush(e),e.requestRenderAll()})}setHighlighterOpacity(e){this.highlighterOpacity=e,this.fabricCanvasMap.forEach(e=>{this.applyFabricBrush(e),e.requestRenderAll()})}setAnnotationStyle(e){this.annotationStyle=e,this.fabricCanvasMap.forEach(e=>{this.applyFabricBrush(e),e.requestRenderAll()})}setBrushWidth(e){this.brushWidth=e,this.fabricCanvasMap.forEach(e=>{this.applyFabricBrush(e),e.requestRenderAll()})}setHighlighterWidth(e){this.highlighterWidth=e,this.fabricCanvasMap.forEach(e=>{this.applyFabricBrush(e),e.requestRenderAll()})}setShapeType(e){this.shapeType=e,this.fabricCanvasMap.forEach(e=>{this.applyFabricBrush(e),e.requestRenderAll()})}setShapeColor(e){this.shapeColor=e,this.fabricCanvasMap.forEach(e=>{this.applyFabricBrush(e),e.requestRenderAll()})}setShapeWidth(e){this.shapeWidth=e,this.fabricCanvasMap.forEach(e=>{this.applyFabricBrush(e),e.requestRenderAll()})}setTextSize(e){this.textSize=e,this.fabricCanvasMap.forEach(e=>{this.applyFabricBrush(e),e.requestRenderAll()})}setTextFont(e){this.textFont=e,this.fabricCanvasMap.forEach(e=>{this.applyFabricBrush(e),e.requestRenderAll()})}setTextColor(e){this.textColor=e,this.fabricCanvasMap.forEach(e=>{this.applyFabricBrush(e),e.requestRenderAll()})}setIsDrawing(e){this.isDrawing=e,this.fabricCanvasMap.forEach(e=>{this.applyFabricBrush(e),e.requestRenderAll()})}getAnnotationData(e){const t=this.fabricCanvasMap.get(e);if(!t||!t.toJSON)return null;const i=t.toJSON(["selectable","_kookitLogged"]);return i._canvasWidth=t.getWidth(),i._canvasHeight=t.getHeight(),i}handleUnloadPDFChapter(e){return d(this,void 0,void 0,function*(){if(e>=this.chapterDocList.length||e<0)return;let t=this.getSubDocument(e);if(!t)return;if(""===t.body.innerHTML)return;const i=this.fabricCanvasMap.get(e);if(i&&i.dispose)try{i.dispose()}catch(e){console.warn(e)}const n=this.fabricSyncListenerMap.get(e);if(n){try{n.doc.removeEventListener("mousedown",n.fn,!0),n.doc.removeEventListener("touchstart",n.fn,!0)}catch(e){console.warn(e)}this.fabricSyncListenerMap.delete(e)}yield this.chapterDocList[e].text.unload(),this.fabricCanvasMap.delete(e),this.fabricHistoryMap.delete(e),this.fabricHistoryLock.delete(e),t.body.innerHTML=""})}renderPdfPage(e){return d(this,void 0,void 0,function*(){e>=this.chapterDocList.length||e<0||(e>3&&(yield this.handleUnloadPDFChapter(e-4)),yield this.handleRenderPDFChapter(e),this.handleRenderPDFChapter(e+1),"ios"!==this.platform&&(this.handleRenderPDFChapter(e+2),this.handleRenderPDFChapter(e+3),this.activateFabricDocument(e)))})}activateFabricDocument(e){if("web"!==this.platform)return;const t=this.getSubDocument(e);if(!t)return;const i=t.defaultView,n=window.fabric;i&&n&&(n.document=t,n.window=i)}}const $s="resources";const _s=new class{constructor(){this.db=null}isRemoteUrl(e){return e.startsWith("http://")||e.startsWith("https://")}init(){return d(this,void 0,void 0,function*(){if(!this.db)return new Promise((e,t)=>{const i=indexedDB.open("OCRResourceCache",1);i.onerror=()=>t(i.error),i.onsuccess=()=>{this.db=i.result,e()},i.onupgradeneeded=e=>{const t=e.target.result;if(!t.objectStoreNames.contains($s)){t.createObjectStore($s,{keyPath:"url"}).createIndex("timestamp","timestamp",{unique:!1})}}})})}get(e){return d(this,void 0,void 0,function*(){return yield this.init(),this.db?new Promise((t,i)=>{const n=this.db.transaction([$s],"readonly").objectStore($s).get(e);n.onerror=()=>i(n.error),n.onsuccess=()=>t(n.result||null)}):null})}set(e,t,i){return d(this,void 0,void 0,function*(){if(yield this.init(),this.db)return new Promise((n,o)=>{const r=this.db.transaction([$s],"readwrite").objectStore($s),s={url:e,data:t,timestamp:Date.now(),type:i},a=r.put(s);a.onerror=()=>o(a.error),a.onsuccess=()=>n()})})}delete(e){return d(this,void 0,void 0,function*(){if(yield this.init(),this.db)return new Promise((t,i)=>{const n=this.db.transaction([$s],"readwrite").objectStore($s).delete(e);n.onerror=()=>i(n.error),n.onsuccess=()=>t()})})}clear(){return d(this,void 0,void 0,function*(){if(yield this.init(),this.db)return new Promise((e,t)=>{const i=this.db.transaction([$s],"readwrite").objectStore($s).clear();i.onerror=()=>t(i.error),i.onsuccess=()=>e()})})}getAllKeys(){return d(this,void 0,void 0,function*(){return yield this.init(),this.db?new Promise((e,t)=>{const i=this.db.transaction([$s],"readonly").objectStore($s).getAllKeys();i.onerror=()=>t(i.error),i.onsuccess=()=>e(i.result)}):[]})}fetchText(e){return d(this,void 0,void 0,function*(){try{if(!this.isRemoteUrl(e)){const t=yield fetch(e);return yield t.text()}const t=yield this.get(e);if(t&&"text"===t.type)return console.info(`从缓存加载: ${e}`),t.data;console.info(`从网络下载: ${e}`);const i=yield fetch(e),n=yield i.text();return this.set(e,n,"text").catch(t=>console.warn(`缓存保存失败 (${e}):`,t)),n}catch(t){throw console.error(`获取资源失败 (${e}):`,t),t}})}fetchArrayBuffer(e){return d(this,void 0,void 0,function*(){try{if(!this.isRemoteUrl(e)){const t=yield fetch(e);return yield t.arrayBuffer()}const t=yield this.get(e);if(t&&"arraybuffer"===t.type)return console.info(`从缓存加载: ${e}`),t.data;console.info(`从网络下载: ${e}`);const i=yield fetch(e),n=yield i.arrayBuffer();return this.set(e,n,"arraybuffer").catch(t=>console.warn(`缓存保存失败 (${e}):`,t)),n}catch(t){throw console.error(`获取资源失败 (${e}):`,t),t}})}fetchBlobURL(e,t){return d(this,void 0,void 0,function*(){try{if(!this.isRemoteUrl(e)){const i=yield fetch(e),n=yield i.arrayBuffer(),o=new Blob([n],{type:t||"application/javascript"});return URL.createObjectURL(o)}const i=yield this.get(e);if(i&&"blob"===i.type){console.info(`从缓存加载 Blob: ${e}`);const n=new Blob([i.data],{type:t||"application/javascript"});return URL.createObjectURL(n)}console.info(`从网络下载 Blob: ${e}`);const n=yield fetch(e),o=yield n.arrayBuffer();this.set(e,o,"blob").catch(t=>console.warn(`缓存保存失败 (${e}):`,t));const r=new Blob([o],{type:t||"application/javascript"});return URL.createObjectURL(r)}catch(t){throw console.error(`获取 Blob 资源失败 (${e}):`,t),t}})}getCacheStats(){return d(this,void 0,void 0,function*(){return yield this.init(),this.db?new Promise((e,t)=>{const i=this.db.transaction([$s],"readonly").objectStore($s).getAll();i.onerror=()=>t(i.error),i.onsuccess=()=>{const t=i.result,n=t.reduce((e,t)=>e+("string"==typeof t.data?t.data.length:t.data.byteLength),0);e({count:t.length,totalSize:n,keys:t.map(e=>e.url)})}}):{count:0,totalSize:0,keys:[]}})}createCachedFetch(){const e=fetch.bind(window),t=this;return function(i,n){return d(this,void 0,void 0,function*(){const o="string"==typeof i?i:i.toString();if(!(o.startsWith("http://")||o.startsWith("https://")))return e(i,n);if((null==n?void 0:n.method)&&"GET"!==n.method)return e(i,n);try{const r=yield t.get(o);if(r){let e;console.info(`从缓存加载资源: ${o}`);let t={};return"text"===r.type?(e=r.data,t={"Content-Type":"text/plain"}):(e=r.data,t={"Content-Type":"application/octet-stream"}),new Response(e,{status:200,statusText:"OK (from cache)",headers:new Headers(t)})}console.info(`从网络加载资源: ${o}`);const s=yield e(i,n),a=s.clone();return(()=>{d(this,void 0,void 0,function*(){try{const e=a.headers.get("Content-Type")||"";if(e.includes("text")||e.includes("json")||e.includes("javascript")||o.endsWith(".txt")||o.endsWith(".js")){const e=yield a.text();yield t.set(o,e,"text")}else{const e=yield a.arrayBuffer();yield t.set(o,e,"arraybuffer")}console.info(`缓存保存成功: ${o}`)}catch(e){console.warn(`缓存保存失败 (${o}):`,e)}})})(),s}catch(t){return console.warn(`缓存逻辑失败,使用原始 fetch (${o}):`,t),e(i,n)}})}}installGlobalFetchInterceptor(){"undefined"!=typeof window&&(window.fetch=this.createCachedFetch(),console.info("OCR 缓存拦截器已安装"))}createCachedWorkerBlob(e,t){return d(this,void 0,void 0,function*(){try{const t=yield fetch(e),i=`\n // 保存原始 importScripts\n const originalImportScripts = self.importScripts;\n\n // 创建支持缓存的 importScripts\n self.importScripts = function(...urls) {\n const cachedUrls = urls.map(url => {\n // 只处理远程 URL\n if (url.startsWith('http://') || url.startsWith('https://')) {\n // 同步获取缓存(在 Worker 中无法使用 IndexedDB,所以通过 postMessage 通信)\n // 这里暂时降级到原始行为,实际缓存在主线程的 fetch 拦截器中完成\n return url;\n }\n return url;\n });\n\n return originalImportScripts.apply(self, cachedUrls);\n };\n\n // 注入原始 worker 代码\n ${yield t.text()}\n `,n=new Blob([i],{type:"application/javascript"});return URL.createObjectURL(n)}catch(t){return console.error("创建缓存 Worker 失败:",t),e}})}setupTesseractCacheProxy(){return d(this,void 0,void 0,function*(){const e=this;return{getCachedUrl:t=>d(this,void 0,void 0,function*(){if(t.startsWith("http://")||t.startsWith("https://"))try{const i=yield e.get(t);if(i){console.info(`从缓存创建 Blob URL: ${t}`);const e=new Blob([i.data]);return URL.createObjectURL(e)}const n=yield fetch(t),o=yield n.arrayBuffer();yield e.set(t,o,"arraybuffer");const r=new Blob([o]);return URL.createObjectURL(r)}catch(e){return console.warn(`缓存处理失败,使用原始 URL (${t}):`,e),t}return t})}})}restoreOriginalFetch(){console.warn("fetch 恢复功能需要在安装时保存原始引用")}};class ea extends Ni{constructor(e,t){super(Object.assign(Object.assign({},t),{format:"PDFTEXT"})),this.password="",this.ocrLang="standard_v5_mobile",this.paraSpacingValue=1.5,this.titleSizeValue=1.2,this.isFinishOCR=!1,this.shouldShowProgress=!1,this.pdfPageCount=0,this.performBuiltInOCR=e=>d(this,void 0,void 0,function*(){try{if("tesseract"===this.ocrEngine){let t=(yield this.worker.recognize(e)).data.text||"";return"en"!==M(t)&&(t=t.split("\n").map(e=>{const t=e.split(" ").filter(e=>""!==e);let i="";for(let e=0;ee.text).join("\n")}if("system-ocr"===this.ocrEngine){return(yield this.worker.recognize(e))+"\n"}throw new Error(`Unsupported OCR engine: ${this.ocrEngine}`)}catch(e){throw console.error("OCR Error:",e),e}}),this.extractPages=e=>d(this,void 0,void 0,function*(){const t=this.pdfDoc,i=yield window.PDFLib.PDFDocument.create(),n=(Array.isArray(e)?e:[e]).map(e=>e-1).filter(e=>e>=0&&e{i.addPage(e)});const o=yield i.save();return new Blob([o],{type:"application/pdf"})}),this.pdfBuffer=e,this.password=t.password||"",this.isScannedPDF=t.isScannedPDF||"no",this.ocrLang=t.ocrLang||"standard_v5_mobile",this.paraSpacingValue=parseFloat(t.paraSpacingValue)||1.5,this.titleSizeValue=parseFloat(t.titleSizeValue)||1.2,this.cache={},this.serverRegion=t.serverRegion||"global",this.processingPromises=new Map,this.ocrEngine=t.ocrEngine||"paddle",this.externalWorker=t.externalWorker||null,this.pdfPageCount=t.pdfPageCount||0}renderTo(e){return new Promise((t,i)=>d(this,void 0,void 0,function*(){if(this.element=e,"yes"===this.isScannedPDF&&"external-engine"===this.ocrEngine)this.chapterDocList=Array.from({length:this.pdfPageCount},(e,t)=>({label:t+"",text:{load:()=>d(this,void 0,void 0,function*(){return""}),render:()=>d(this,void 0,void 0,function*(){}),unload:()=>d(this,void 0,void 0,function*(){}),getPage:()=>d(this,void 0,void 0,function*(){return null}),getDimension:()=>d(this,void 0,void 0,function*(){return{width:0,height:0}}),getScale:()=>d(this,void 0,void 0,function*(){return 1}),getPageCount:()=>d(this,void 0,void 0,function*(){return 0})},href:"title"+t})),this.chapterList=Array.from({length:this.pdfPageCount},(e,t)=>({label:t+"",href:"title"+t,index:t,subitems:[]})),this.worker=this.externalWorker;else{this.book||(yield this.parse());let e=new oe(this.book);this.chapterList=yield e.getChapter(this.book.toc),this.chapterDocList=yield e.getChapterDoc()}for(let e=0;ed(this,void 0,void 0,function*(){if(this.cache[e])return this.preProcessNextChapters(e),this.cache[e];let t="";return t=yield this.processCurrentChapter(e),this.preProcessNextChapters(e),t})}K(e,this.isAllowScript);let i=this.getDocument();if(i){if(ee(e,this.readerMode,i),"official-ai-ocr"===this.ocrEngine&&"accurate"===this.ocrLang){const e=yield window.PDFLib.PDFDocument.load(this.pdfBuffer);this.pdfDoc=e}t()}}))}processCurrentChapter(e){return d(this,void 0,void 0,function*(){if(this.cache[e])return this.cache[e];if(this.processingPromises.has(e))return yield this.processingPromises.get(e),this.cache[e];const t=this.chapterDocList[e];this.isFinishOCR=!1,this.shouldShowProgress=!0;const i=yield this.getTextByOCR(t,e);return this.shouldShowProgress=!1,this.cache[e]=i,i})}preProcessNextChapters(e){return d(this,void 0,void 0,function*(){const t=Math.min(e+5,this.chapterDocList.length-1);for(let i=e+1;i<=t;i++)if(!this.cache[i]&&!this.processingPromises.has(i)){const e=this.processChapterOCR(i).finally(()=>{this.processingPromises.delete(i)});this.processingPromises.set(i,e),"official-ai-ocr"!==this.ocrEngine&&"external-engine"!==this.ocrEngine&&(yield e)}})}processChapterOCR(e){return d(this,void 0,void 0,function*(){try{const t=this.chapterDocList[e],i=yield this.getTextByOCR(t,e);this.cache[e]=i}catch(t){console.error(`Failed to process OCR for chapter ${e}:`,t)}})}startFakeProgress(e=.85,t=3e4){const i=t/200;let n=0;const o=setInterval(()=>{n++;const t=10/i,o=e*(1-Math.exp(-t*n));Ci(Math.min(o,e))},200);return()=>clearInterval(o)}getTextByOCR(e,t){return d(this,void 0,void 0,function*(){let i="";if("system-ocr"===this.ocrEngine&&"yes"!==this.isScannedPDF)return yield this.getTextFromDoc(e);if("external-engine"===this.ocrEngine||"official-ai-ocr"===this.ocrEngine){let n=null;if(this.shouldShowProgress){let e=0;const t=100,i=.9/(5e3/t);n=setInterval(()=>{e+=i,e>=.9&&(e=.9,clearInterval(n)),Ci(e)},t)}try{let o;if("external-engine"===this.ocrEngine)i=yield this.worker.recognize(t,"");else if("official-ai-ocr"===this.ocrEngine&&"accurate"===this.ocrLang){let e=yield this.extractPages(t+1),n=new File([e],t+".pdf",{type:"application/pdf"});o=yield this.worker.recognize(n),i=o&&o.data&&o.data.text?o.data.text:""}else{let t=yield e.text.getPage(),{imageURL:n}=yield bi(t);o=yield this.worker.recognize(n),i=o&&o.data&&o.data.text?o.data.text:""}if(this.shouldShowProgress&&(n&&clearInterval(n),Ci(1),this.isFinishOCR=!0),"official-ai-ocr"===this.ocrEngine&&"accurate"===this.ocrLang){return URL.createObjectURL(new Blob([i],{type:"text/html"}))}}finally{this.shouldShowProgress&&n&&clearInterval(n)}}else{let t=yield e.text.getPage(),{imageURL:n}=yield bi(t);i=yield this.performBuiltInOCR(n)}let n=i.split("\n").filter(e=>""!==e.trim());return URL.createObjectURL(new Blob([`\n \n \n \n \n
${n.map(e=>`

${e}

`).join("")}
\n `],{type:"text/html"}))})}getTextFromDoc(e){return d(this,void 0,void 0,function*(){let t=yield vi(e,this.titleSizeValue,this.paraSpacingValue);return URL.createObjectURL(new Blob([`\n \n \n \n \n
${t.length>0?t.map(e=>`

${e.text.trim()}

`).join(""):"Empty"}
\n `],{type:"text/html"}))})}parse(){return d(this,void 0,void 0,function*(){try{_s.installGlobalFetchInterceptor();let t=new Blob([this.pdfBuffer]),i=new File([t],"book",{lastModified:(new Date).getTime(),type:t.type});if(this.book=yield Xs(i,this.password),"tesseract"===this.ocrEngine){let t=yield(e=(x()?".":"")+"/lib/tesseractjs/worker.min.js",d(void 0,void 0,void 0,function*(){return yield(yield fetch(e)).text()})),i=URL.createObjectURL(new Blob([t],{type:"application/javascript"}));const n=this.startFakeProgress(.85,3e4);try{const e=yield window.Tesseract.createWorker([this.ocrLang],1,{workerPath:i,corePath:"https://unpkg.com/tesseract.js-core@6.1.2",langPath:"https://tessdata.projectnaptha.com/4.0.0_best",logger:e=>{"recognizing text"!==e.status||"number"!=typeof e.progress||this.isFinishOCR||(Ci(e.progress),1===e.progress&&(this.isFinishOCR=!0))}});yield e.load(),this.worker=e}finally{n(),Ci(1)}}if("paddle"===this.ocrEngine){const e=this.startFakeProgress(.85,6e4);try{const e=`https://${"china"===this.serverRegion?"storage.koodoreader.cn":"storage.koodoreader.com"}/paddleocr/models/${this.ocrLang}/${this.ocrLang}_dict.txt`,t=yield fetch(e);let i=yield t.text();window.ort.env.wasm.wasmPaths="https://unpkg.com/onnxruntime-web@1.23.2/dist/",window.ort.env.wasm.proxy=!0;const n=yield window["esearch-ocr"].init({det:{input:`https://${"china"===this.serverRegion?"storage.koodoreader.cn":"storage.koodoreader.com"}/paddleocr/models/${this.ocrLang}/${this.ocrLang}_det.onnx`,ratio:.75},rec:{input:`https://${"china"===this.serverRegion?"storage.koodoreader.cn":"storage.koodoreader.com"}/paddleocr/models/${this.ocrLang}/${this.ocrLang}_rec.onnx`,decodeDic:i,on:(e,t,i)=>{if(this.shouldShowProgress&&i>0){const t=(e+1)/i;Ci(t),t>=1&&(this.isFinishOCR=!0)}}},ort:window.ort,ortOption:{executionProviders:[{name:"webgpu"},{name:"wasm"}]}});this.worker=n}finally{e(),Ci(1)}}"official-ai-ocr"!==this.ocrEngine&&"system-ocr"!==this.ocrEngine||(this.worker=this.externalWorker)}catch(e){throw console.error(e),e}var e})}preCache(){return d(this,void 0,void 0,function*(){return this.book||(yield this.parse()),yield ji(this.book)})}getMetadata(){return d(this,void 0,void 0,function*(){try{this.book||(yield this.parse());let e=new oe(this.book);return yield e.getMetadata()}catch(e){throw console.error(e),e}})}}const ta=(e,t=!1,i="",n)=>{const o=(new DOMParser).parseFromString(t?ct(e,i,n):e,"text/html");let r=ia(o);0===r.length&&(r=sa(o));for(let e=0;e""};return c.sections=l.map(e=>({id:e.index,load:()=>{return t=e.index,d(void 0,void 0,void 0,function*(){return URL.createObjectURL(new Blob([l[t].text],{type:"text/html"}))});var t},unload:()=>{e.index},size:l[e.index].text.length})),c.toc=l.map(e=>({label:e.label,href:"title"+e.index})).filter(e=>""!==e.label),c.rendition={layout:"pre-paginated"},c.resolveHref=e=>({index:parseInt(e.substring(5,e.length))}),c.resolveHrefIndex=e=>({index:parseInt(e.substring(5,e.length))}),c.splitTOCHref=e=>[e,null],c.getTOCFragment=e=>e.documentElement,c},ia=e=>Array.from(e.querySelectorAll("h1,title")),na=e=>{let t=[],i=e.split(" ").filter(e=>""!==e.trim()),n=i.map(e=>oa(e)||ra(e));return t=i.map((e,t)=>({index:t,label:n[t],text:e,href:"title"+t})),t},oa=e=>{var t;const i=(new DOMParser).parseFromString(e,"text/html").querySelector("h1");return i&&(null===(t=i.textContent)||void 0===t?void 0:t.trim())||""},ra=e=>{var t;const i=(new DOMParser).parseFromString(e,"text/html").querySelector("title");return i&&(null===(t=i.textContent)||void 0===t?void 0:t.trim())||""},sa=e=>{let t=e.getElementsByTagName("*"),i=Array.from(t).filter(e=>1===e.childNodes.length&&e.childNodes[0].nodeType===Node.TEXT_NODE&>(e.textContent)),n=[];for(let e=0;ed(this,void 0,void 0,function*(){this.element=e,this.book||(yield this.parse(t));let n=new oe(this.book);this.chapterList=yield n.getChapter(this.book.toc),this.chapterDocList=yield n.getChapterDoc(),K(e,this.isAllowScript);let o=this.getDocument();o&&(ee(e,this.readerMode,o),i())}))}parse(e){return d(this,void 0,void 0,function*(){try{const t=new TextDecoder(this.charset),i=new Uint8Array(this.txtBuffer);let n=t.decode(i);this.book=ta(n,!0,this.parserRegex,e)}catch(e){throw console.error(e),e}})}refreshContent(){return d(this,void 0,void 0,function*(){yield this.parse({refresh:!0});let e=new oe(this.book);return this.chapterList=yield e.getChapter(this.book.toc),this.chapterDocList=yield e.getChapterDoc(),yield this.record(),this.chapterList})}preCache(){return d(this,void 0,void 0,function*(){return this.book||(yield this.parse({refresh:!0})),yield ji(this.book)})}getMetadata(e){return d(this,void 0,void 0,function*(){try{const t=4096,i=e.byteLength,n=Math.min(i,t),o=new Uint8Array(e,0,n);const s=r.detect(o)||"utf8";return this.charset=s,{charset:s}}catch(e){return console.error("Error detecting charset:",e),this.charset="utf8",{charset:"utf8"}}})}}const la=({entries:e,loadBlob:t,getSize:i},n,o)=>{const r=new Map,s=new Map,a=async(e,i)=>{if(r.has(e))return r.get(e);if(i){const n=URL.createObjectURL(await t(e)),o=URL.createObjectURL(await t(i)),a=URL.createObjectURL(new Blob([`
`],{type:"text/html"}));return s.set(e,[n,a]),r.set(e,a),a}{const i=URL.createObjectURL(await t(e)),n=URL.createObjectURL(new Blob([`
`],{type:"text/html"}));return s.set(e,[i,n]),r.set(e,n),n}},l=[".jpg",".jpeg",".png",".gif",".bmp",".webp",".svg",".avif",".apng",".ico",".cur",".jfif",".pjpeg",".pjp"],c=e.map(e=>e.filename).filter(e=>l.some(t=>e.endsWith(t))).sort((e,t)=>e.localeCompare(t,void 0,{numeric:!0,sensitivity:"base"})),d={getCover:()=>t(c[0])};return d.metadata={title:n.name},d.sections=c.map((e,t)=>({id:e,load:()=>{if("double"===o){const i=c[t+1];return a(e,i)}return a(e)},unload:()=>(e=>{s.get(e)?.forEach?.(e=>URL.revokeObjectURL(e)),s.delete(e),r.delete(e)})(e),size:i(e)})).filter((e,t)=>"double"!==o||t%2==0),d.toc=c.map(e=>({label:e,href:e})).filter((e,t)=>"double"!==o||t%2==0),d.rendition={layout:"pre-paginated"},d.resolveHref=e=>({index:d.sections.findIndex(t=>t.id===e)}),d.resolveHrefIndex=e=>({index:d.sections.findIndex(t=>t.id===e)}),d.splitTOCHref=e=>[e,null],d.getTOCFragment=e=>e.documentElement,d};class ca extends Ni{constructor(e,t){super(t),this.comicBuffer=e,this.readerMode=t.readerMode,this.format=t.format,this.chapterList=[],this.chapterDocList=[],this.book="",this.element="",this.rpc}renderTo(e){return new Promise((t,i)=>d(this,void 0,void 0,function*(){if(this.element=e,K(e,this.isAllowScript),!this.book)try{yield this.parse()}catch(e){console.error(e),i(e)}let n=new oe(this.book);this.chapterList=yield n.getChapter(this.book.toc),this.chapterDocList=yield n.getChapterDoc();let o=this.getDocument();o&&(ee(e,this.readerMode,o),t())}))}parse(){return d(this,void 0,void 0,function*(){try{let e=new Blob([this.comicBuffer]),t=new File([e],"book."+this.format.toLocaleLowerCase(),{lastModified:(new Date).getTime(),type:e.type});const i=this.detectArchiveType();if("zip"===i||"cbz"===i){const e=yield this.makeZipLoader(t);this.book=la(e,t,this.readerMode)}else if("tar"===i||"cbt"===i){const e=yield this.makeTarLoader();this.book=la(e,t,this.readerMode)}else if("rar"===i||"cbr"===i){this.rpc=yield window.RPC.new("./lib/libunrar/worker.js",{loaded:function(){console.info("loaded")},progressShow:function(e,t,i){console.info(i)}}),yield new Promise(e=>setTimeout(e,200));const e=yield this.makeRarLoader();this.book=la(e,t,this.readerMode)}else if("7z"===i||"cb7"===i){const e=yield this.make7zLoader();this.book=la(e,t,this.readerMode)}}catch(e){throw console.error(e),e}})}detectArchiveType(){const e=new Uint8Array(this.comicBuffer);if(e.length<4)return this.format.toLocaleLowerCase();if(80===e[0]&&75===e[1]){const t=[e[2],e[3]];if(3===t[0]&&4===t[1]||5===t[0]&&6===t[1]||7===t[0]&&8===t[1])return"zip"}return 82===e[0]&&97===e[1]&&114===e[2]&&33===e[3]?"rar":55===e[0]&&122===e[1]&&188===e[2]&&175===e[3]?"7z":this.comicBuffer.byteLength>=265&&"ustar"===new TextDecoder("utf8").decode(new Uint8Array(this.comicBuffer,257,5))?"tar":this.format.toLocaleLowerCase()}preCache(){return d(this,void 0,void 0,function*(){return this.book||(yield this.parse()),yield ji(this.book)})}makeZipLoader(e){return d(this,void 0,void 0,function*(){let t=yield i.loadAsync(e);const n=t.files;return{entries:Object.values(n).map(e=>({filename:e.name})),loadText:e=>d(this,void 0,void 0,function*(){let i=t.file(e);return i?i.async("string"):""}),loadBlob:e=>d(this,void 0,void 0,function*(){let i=t.file(e);if(i){let e=yield i.async("arraybuffer");return new Blob([e])}return new Blob([new ArrayBuffer(0)])}),getSize:e=>{let i=t.file(e);if(i)return i._data.uncompressedSize||1}}})}makeTarLoader(){return d(this,void 0,void 0,function*(){const e=yield s(this.comicBuffer),t=new Map(e.map(e=>[e.name,e])),i=e=>(i,...n)=>t.has(i)?e(t.get(i),...n):null,n=i(e=>e.readAsString()),o=i((e,t)=>e.blob);return{entries:e.map(e=>({filename:e.name})),loadText:n,loadBlob:o,getSize:e=>{var i,n;return null!==(n=null===(i=t.get(e))||void 0===i?void 0:i.size)&&void 0!==n?n:1}}})}makeRarLoader(){return d(this,void 0,void 0,function*(){return new Promise((e,t)=>{var i=[this.comicBuffer],n=[{name:"book.rar",content:this.comicBuffer}];this.rpc.transferables=i,this.rpc.unrar(n,null,0).then(t=>{let i=this.getRarEntries(t.ls);const n=new Map(Object.values(i).map(e=>[e.fullFileName,e])),o=e=>(t,...i)=>n.has(t)?e(n.get(t),...i):null,r=o(e=>e.fullFileName),s=o((e,t)=>new Blob([e.fileContent]));e({entries:Object.values(i).map(e=>({filename:e.fullFileName})),loadText:r,loadBlob:s,getSize:e=>{var t,i;return null!==(i=null===(t=n.get(e))||void 0===t?void 0:t.fileSize)&&void 0!==i?i:1}})}).catch(e=>{console.error(e),t(e)})})})}make7zLoader(){return d(this,void 0,void 0,function*(){const e="./lib/7z-wasm/7zz.wasm";if(!window.wasmBinary){const t=yield fetch(e,{credentials:"same-origin"});if(!t.ok)throw"failed to load wasm binary file at '"+e+"'";window.wasmBinary=yield t.arrayBuffer()}const t=yield window.SevenZip({wasmBinary:window.wasmBinary}),i=new Uint8Array(this.comicBuffer),n="archive.cb7",o=t.FS.open(n,"w+");t.FS.write(o,i,0,i.length),t.FS.close(o),t.callMain(["x",n]);const r=t.FS,s=this.get7zEntries(r.lookupPath("/").node),a=new Map(s.map(e=>[e.name,e])),l=e=>(t,...i)=>a.has(t)?e(a.get(t),...i):null,c=l(e=>e.name),d=l((e,t)=>new Blob([e.buffer]));return{entries:s.map(e=>({filename:e.name})),loadText:c,loadBlob:d,getSize:e=>{var t,i;return null!==(i=null===(t=a.get(e))||void 0===t?void 0:t.size)&&void 0!==i?i:1}}})}getRarEntries(e){const t=Object.keys(e);let i=[];for(let n=0;n"archive.cb7"!=e&&"dev"!=e&&"home"!=e&&"proc"!=e&&"tmp"!=e);let n=[];for(let e=0;ed(this,void 0,void 0,function*(){try{this.book||(yield this.parse());const t=yield this.book.getCover();var i=new FileReader;i.readAsDataURL(t),i.onloadend=()=>{e({cover:i.result})}}catch(e){console.error(e),t(e)}}))})}}const da=e=>e?.trim()?.replace(/\s{2,}/g," "),ga=e=>da(e?.textContent),ha={XLINK:"http://www.w3.org/1999/xlink",EPUB:"http://www.idpf.org/2007/ops"},Aa="application/xml",ua="application/xhtml+xml",pa={strong:["strong","self"],emphasis:["em","self"],style:["span","self"],a:"anchor",strikethrough:["s","self"],sub:["sub","self"],sup:["sup","self"],code:["code","self"],image:"image"},fa={epigraph:["blockquote"],subtitle:["h2",pa],"text-author":["p",pa],date:["p",pa],stanza:"stanza"},ma={title:["header",{p:["h1",pa],"empty-line":["br"]}],epigraph:["blockquote","self"],image:"image",annotation:["aside"],section:["section","self"],p:["p",pa],poem:["blockquote",fa],subtitle:["h2",pa],cite:["blockquote","self"],"empty-line":["br"],table:["table",{tr:["tr",["align"]],th:["th",["colspan","rowspan","align","valign"]],td:["td",["colspan","rowspan","align","valign"]]}],"text-author":["p",pa]};fa.epigraph.push(ma);const wa={image:"image",title:["section",{p:["h1",pa],"empty-line":["br"]}],epigraph:["section",ma],section:["section",ma]},Ba=e=>{const t=e.getAttributeNS(ha.XLINK,"href"),[,i]=t.split("#"),n=e.getRootNode().getElementById(i);return n?`data:${n.getAttribute("content-type")};base64,${n.textContent}`:t};class ya{constructor(e){this.fb2=e,this.doc=document.implementation.createDocument(ha.XHTML,"html")}image(e){const t=this.doc.createElement("img");return t.alt=e.getAttribute("alt"),t.title=e.getAttribute("title"),t.setAttribute("src",Ba(e)),t}anchor(e){const t=this.convert(e,{a:["a",pa]});return t.setAttribute("href",e.getAttributeNS(ha.XLINK,"href")),"note"===e.getAttribute("type")&&t.setAttributeNS(ha.EPUB,"epub:type","noteref"),t}stanza(e){const t=this.convert(e,{stanza:["p",{title:["header",{p:["strong",pa],"empty-line":["br"]}],subtitle:["p",pa]}]});for(const i of e.children)"v"===i.nodeName&&(t.append(this.doc.createTextNode(i.textContent)),t.append(this.doc.createElement("br")));return t}convert(e,t){if(3===e.nodeType)return this.doc.createTextNode(e.textContent);if(4===e.nodeType)return this.doc.createCDATASection(e.textContent);if(8===e.nodeType)return this.doc.createComment(e.textContent);const i=t?.[e.nodeName];if(!i)return null;if("string"==typeof i)return this[i](e);const[n,o]=i,r=this.doc.createElement(n);if(e.id&&(r.id=e.id),r.classList.add(e.nodeName),Array.isArray(o))for(const t of o)r.setAttribute(t,e.getAttribute(t));const s="self"===o?t:Array.isArray(o)?null:o;let a=e.firstChild;for(;a;){const e=this.convert(a,s);e&&r.append(e),a=a.nextSibling}return r}}const ba=URL.createObjectURL(new Blob(['\n@namespace epub "http://www.idpf.org/2007/ops";\nbody > img, section > img {\n display: block;\n margin: auto;\n}\n.title {\n text-align: center;\n}\nbody > section > .title, body.notesBodyType > .title {\n margin: 3em 0;\n}\nbody.notesBodyType > section .title {\n text-align: left;\n margin: 1em 0;\n}\np {\n text-indent: 1em;\n margin: 0;\n}\n:not(p) + p, p:first-child {\n text-indent: 0;\n}\n.poem p {\n text-indent: 0;\n margin: 1em 0;\n}\n.text-author, .date {\n text-align: end;\n}\n.text-author:before {\n content: "—";\n}\ntable {\n border-collapse: collapse;\n}\ntd, th {\n padding: .25em;\n}\na[epub|type~="noteref"] {\n font-size: .75em;\n vertical-align: super;\n}\nbody:not(.notesBodyType) > .title, body:not(.notesBodyType) > .epigraph {\n margin: 3em 0;\n}\n'],{type:"text/css"})),Ca="data-foliate-id",va=async e=>{const t={},i=await(async e=>{const t=await e.arrayBuffer(),i=new TextDecoder("utf-8").decode(t),n=new DOMParser,o=n.parseFromString(i,Aa),r=o.xmlEncoding||i.match(/^<\?xml\s+version\s*=\s*["']1.\d+"\s+encoding\s*=\s*["']([A-Za-z0-9._-]*)["']/)?.[1];if(r&&"utf-8"!==r.toLowerCase()){const e=new TextDecoder(r).decode(t);return n.parseFromString(e,Aa)}return o})(e),n=new ya(i),o=e=>i.querySelector(e),r=e=>[...i.querySelectorAll(e)],s=e=>{const t=ga(e.querySelector("nickname"));if(t)return t;const i=ga(e.querySelector("first-name")),n=ga(e.querySelector("middle-name")),o=ga(e.querySelector("last-name"));return{name:[i,n,o].filter(e=>e).join(" "),sortAs:o?[o,[i,n].filter(e=>e).join(" ")].join(", "):null}},a=e=>e?.getAttribute("value")??ga(e),l=o("title-info annotation");t.metadata={title:ga(o("title-info book-title")),identifier:ga(o("document-info id")),language:ga(o("title-info lang")),author:r("title-info author").map(s),translator:r("title-info translator").map(s),producer:r("document-info author").map(s).concat(r("document-info program-used").map(ga)),publisher:ga(o("publish-info publisher")),published:a(o("title-info date")),modified:a(o("document-info date")),description:l?n.convert(l,{annotation:["div",ma]}).innerHTML:null,subject:r("title-info genre").map(ga)},t.getCover=()=>fetch(Ba(o("coverpage image"))).then(e=>e.blob());const c=Array.from(i.querySelectorAll("body"),e=>{const t=n.convert(e,{body:["body",wa]});return[Array.from(t.children,e=>{const t=[e,...e.querySelectorAll("[id]")].map(e=>e.id);return{el:e,ids:t}}),t]}),d=c[0][0].map(({el:e,ids:t})=>({ids:t,titles:Array.from(e.querySelectorAll(":scope > section > .title"),(e,t)=>(e.setAttribute(Ca,t),{title:ga(e),index:t})),el:e})).concat(c.slice(1).map(([e,t])=>{const i=e.map(e=>e.ids).flat();return t.classList.add("notesBodyType"),{ids:i,el:t,linear:"no"}})).map(({ids:e,titles:t,el:i,linear:n})=>{const o=(r=i.outerHTML,`\n\n \n ${r}\n`);var r;const s=new Blob([o],{type:ua}),a=URL.createObjectURL(s);return{ids:e,title:da(i.querySelector(".title, .subtitle, p")?.textContent??(i.classList.contains("title")?i.textContent:"")),titles:t,load:()=>a,createDocument:()=>(new DOMParser).parseFromString(o,ua),size:s.size-Array.from(i.querySelectorAll("[src]"),e=>e.getAttribute("src")?.length??0).reduce((e,t)=>e+t,0),linear:n}}),g=new Map;return t.sections=d.map((e,t)=>{const{ids:i,load:n,createDocument:o,size:r,linear:s}=e;for(const e of i)e&&g.set(e,t);return{id:t,load:n,createDocument:o,size:r,linear:s}}),t.toc=d.map(({title:e,titles:t},i)=>{const n=i.toString();return{label:e,href:n,subitems:t?.length?t.map(({title:e,index:t})=>({label:e,href:`${n}#${t}`})):null}}).filter(e=>e),t.resolveHref=e=>{const[t,i]=e.split("#");return t?{index:Number(t),anchor:e=>e.querySelector(`[${Ca}="${i}"]`)}:{index:g.get(i),anchor:e=>e.getElementById(i)}},t.resolveHrefIndex=e=>{const[t,i]=e.split("#");return t?{index:Number(t)}:{index:g.get(i)}},t.splitTOCHref=e=>e?.split("#")?.map(e=>Number(e))??[],t.getTOCFragment=(e,t)=>e.querySelector(`[${Ca}="${t}"]`),t};class Ea extends Ni{constructor(e,t){super(Object.assign(Object.assign({},t),{format:"FB2"})),this.fb2Buffer=e}renderTo(e){return new Promise((t,i)=>d(this,void 0,void 0,function*(){this.element=e,this.book||(yield this.parse());let i=new oe(this.book);this.chapterList=yield i.getChapter(this.book.toc),this.chapterDocList=yield i.getChapterDoc(),K(e,this.isAllowScript);let n=this.getDocument();n&&(ee(e,this.readerMode,n),t())}))}parse(){return d(this,void 0,void 0,function*(){try{let e=new Blob([this.fb2Buffer]);this.book=yield va(e)}catch(e){throw console.error(e),e}})}preCache(){return d(this,void 0,void 0,function*(){return this.book||(yield this.parse()),yield ji(this.book)})}getMetadata(){return d(this,void 0,void 0,function*(){try{this.book||(yield this.parse());let e=new oe(this.book);return yield e.getMetadata()}catch(e){throw console.error(e),e}})}}class xa extends Ni{constructor(e,t){super(Object.assign(Object.assign({},t),{format:"CACHE"})),this.cacheBuffer=e}renderTo(e){return new Promise((t,i)=>d(this,void 0,void 0,function*(){this.element=e,this.book=yield Pi(this.cacheBuffer);let i=new oe(this.book);this.chapterList=yield i.getChapter(this.book.toc),this.chapterDocList=yield i.getChapterDoc(),K(e,this.isAllowScript);let n=this.getDocument();n&&(ee(e,this.readerMode,n),t())}))}}class Ia extends Ni{constructor(e,t){super(Object.assign(Object.assign({},t),{format:"DOCX"})),this.docxBuffer=e}renderTo(e){return new Promise((t,i)=>d(this,void 0,void 0,function*(){this.element=e,this.book||(yield this.parse());let i=new oe(this.book);this.chapterList=yield i.getChapter(this.book.toc),this.chapterDocList=yield i.getChapterDoc(),K(e,this.isAllowScript);let n=this.getDocument();n&&(ee(e,this.readerMode,n),t())}))}parse(){return d(this,void 0,void 0,function*(){return new Promise((e,t)=>{try{a.convertToHtml({arrayBuffer:this.docxBuffer}).then(t=>d(this,void 0,void 0,function*(){this.book=ta(t.value,!1),e()}))}catch(e){console.error(e),t(e)}})})}preCache(){return d(this,void 0,void 0,function*(){return this.book||(yield this.parse()),yield ji(this.book)})}}class Da extends Ni{constructor(e,t){super(Object.assign(Object.assign({},t),{format:"MD"})),this.mdBuffer=e}renderTo(e){return new Promise((t,i)=>d(this,void 0,void 0,function*(){this.element=e,this.book||(yield this.parse());let i=new oe(this.book);this.chapterList=yield i.getChapter(this.book.toc),this.chapterDocList=yield i.getChapterDoc(),K(e,this.isAllowScript);let n=this.getDocument();n&&(ee(e,this.readerMode,n),t())}))}parse(){return d(this,void 0,void 0,function*(){return new Promise((e,t)=>{try{var i=new Blob([this.mdBuffer],{type:"text/plain"}),n=new FileReader;n.onload=t=>d(this,void 0,void 0,function*(){var i;let n=yield l(null===(i=t.target)||void 0===i?void 0:i.result);this.book=ta(n,!1),e()}),n.readAsText(i,"UTF-8")}catch(e){console.error(e),t(e)}})})}preCache(){return d(this,void 0,void 0,function*(){return this.book||(yield this.parse()),yield ji(this.book)})}}class Qa extends Ni{constructor(e,t){super(t),this.htmlBuffer=e}renderTo(e){return new Promise((t,i)=>d(this,void 0,void 0,function*(){this.element=e,this.book||(yield this.parse());let i=new oe(this.book);this.chapterList=yield i.getChapter(this.book.toc),this.chapterDocList=yield i.getChapterDoc(),K(e,this.isAllowScript);let n=this.getDocument();n&&(ee(e,this.readerMode,n),t())}))}parse(){return d(this,void 0,void 0,function*(){return new Promise((e,t)=>{try{var i=new Blob([this.htmlBuffer],{type:Ui[this.format.toLocaleLowerCase()]}),n=new FileReader;n.onload=t=>d(this,void 0,void 0,function*(){var i;let n=null===(i=t.target)||void 0===i?void 0:i.result;"MHTML"===this.format&&(n=c.convert(n).window.document.documentElement.innerHTML),this.book=ta(n,!1),e()}),n.readAsText(i,"UTF-8")}catch(e){console.error(e),t(e)}})})}preCache(){return d(this,void 0,void 0,function*(){return this.book||(yield this.parse()),yield ji(this.book)})}}class ka{constructor(e,t,i,n,o,r,s,a,l,c,d,g){this.key=e,this.name=t,this.author=i,this.description=n,this.md5=o,this.cover=r,this.format=s,this.publisher=a,this.size=l,this.page=c,this.path=d,this.charset=g}}var Sa;class Ma{static generateBook(e,t,i,n,o,r,s){return new Promise((a,l)=>d(this,void 0,void 0,function*(){try{let l,c,d,g,h,A,u,p,f="";switch([c,d,h,g,A,u]=[e,"","","","",0],t){case"pdf":case"epub":case"mobi":case"azw":case"azw3":case"fb2":p=yield s.getMetadata(),[c,d,h,g,f]=[p.name||e,p.author||"",p.description||"",p.publisher||"",p.cover||""];break;case"cbr":case"cbt":case"cbz":case"cb7":p=yield s.getMetadata(),f=p.cover;break;case"txt":p=yield s.getMetadata(r),A=p.charset}let m=t.toUpperCase();l=(new Date).getTime()+"",a(new ka(l,c,d,h,i,f,m,g,n,u,o,A))}catch(e){console.error(e),l(e)}}))}}Sa=Ma,Ma.getRendition=(e,t,i)=>{let n,o=t.format.toUpperCase();var r,s;return"CACHE"===o?n=new i.CacheRender(e,t):"MOBI"===o||"AZW3"===o||"AZW"===o?n=new i.MobiRender(e,t):"EPUB"===o?n=new i.EpubRender(e,t):"TXT"===o?n=new i.TxtRender(e,t):"MD"===o?n=new i.MdRender(e,t):"PDF"===o?"yes"===t.isConvertPDF?("yes"===t.isScannedPDF&&"external-engine"===t.ocrEngine&&(t.externalWorker={recognize:Sa.getPDFOcrResult}),n=new i.PdfTextRender(e,t)):n=new i.PdfRender(e,t):"FB2"===o?n=new i.Fb2Render(e,t):"DOCX"===o?n=new i.DocxRender(e,t):"HTML"===o||"XHTML"===o||"MHTML"===o||"HTM"===o||"XML"===o?n=new i.HtmlRender(e,t):"CBR"!==o&&"CBT"!==o&&"CBZ"!==o&&"CB7"!==o||(n=new i.ComicRender((r=e,s=new ArrayBuffer(r.byteLength),new Uint8Array(s).set(new Uint8Array(r)),s),t)),n},Ma.initMobileBook=(e,t)=>d(void 0,void 0,void 0,function*(){try{if(window.ReactNativeWebView.postMessage(JSON.stringify({event:"user-agent",userAgent:navigator.userAgent})),"yes"===t.isConvertPDF&&"yes"===t.isScannedPDF&&"PDF"===t.format.toUpperCase()&&"external-engine"===t.ocrEngine)window.file_content=new ArrayBuffer(0);else{const t=yield fetch(e);if(!t.ok)throw new Error(`Failed to download book: ${t.status} ${t.statusText}`);const i=yield t.arrayBuffer();window.ReactNativeWebView.postMessage(JSON.stringify({event:"finish-download"})),window.file_content=i}let i=Sa.getRendition(window.file_content,Object.assign(Object.assign({},t),{isMobile:"yes"}),window.Kookit);window.rendition=i;let n=document.getElementById("page-area");t.format&&"TXT"===t.format.toUpperCase()?yield window.rendition.renderTo(n,t.bookLocation):yield window.rendition.renderTo(n),window.rendition.on("rendered",e=>d(void 0,void 0,void 0,function*(){let i=Object.assign({},window.rendition.getPosition()),n=Object.assign({},yield window.rendition.getProgress());"PDF"===t.format&&"android"===t.platform&&(i.chapterDocIndex=e+""),window.ReactNativeWebView.postMessage(JSON.stringify({event:"content-loaded",bookLocation:i,progress:n}))}));const o=function(e,t){let i=0,n=null,o=null;return function(...r){const s=Date.now();s-i>=t?(i=s,e.apply(this,r)):(clearTimeout(n),o=r,n=setTimeout(()=>{i=Date.now(),e.apply(this,null!=o?o:[])},t-(s-i)))}}(()=>d(void 0,void 0,void 0,function*(){let e=Object.assign({},window.rendition.getPosition()),t=Object.assign({},yield window.rendition.getProgress());window.ReactNativeWebView.postMessage(JSON.stringify({event:"page-changed",bookLocation:e,progress:t}))}),3e3);window.rendition.on("page-changed",()=>{o()}),window.rendition.on("scroll-text",()=>d(void 0,void 0,void 0,function*(){setTimeout(()=>d(void 0,void 0,void 0,function*(){let e=Object.assign({},window.rendition.getPosition()),t=Object.assign({},yield window.rendition.getProgress());window.ReactNativeWebView.postMessage(JSON.stringify({event:"scroll-text",bookLocation:e,progress:t}))}),1e3)})),window.ReactNativeWebView.postMessage(JSON.stringify({event:"book-inited",chapterList:window.rendition.getChapter()}))}catch(e){window.ReactNativeWebView.postMessage(JSON.stringify({event:"error",message:"Parse book failed",error:String(e)?String(e):"Unknown error"}))}}),Ma.addMobileBook=(e,t,i,n,o,r,s="")=>d(void 0,void 0,void 0,function*(){var a;try{if(window.ReactNativeWebView.postMessage(JSON.stringify({event:"user-agent",userAgent:navigator.userAgent})),"PDF"===i.toUpperCase()&&o>314572800){t=t.replace(/\.[^/.]+$/,"");let e=i.toUpperCase(),s=(new Date).getTime()+"",a=new ka(s,t,"","",n,"",e,"",o,0,r,"");return void window.ReactNativeWebView.postMessage(JSON.stringify({event:"metadata",bookInfo:a}))}const l=yield fetch(e);if(!l.ok)throw new Error(`Failed to download book: ${l.status} ${l.statusText}`);const c=yield l.arrayBuffer();null===(a=window.ReactNativeWebView)||void 0===a||a.postMessage(JSON.stringify({event:"finish-download"})),window.file_content=c;let d=Sa.getRendition(c,{format:i.toUpperCase(),readerMode:"",charset:"",animation:"",convertChinese:"no",parserRegex:s||"",isDarkMode:"no",isMobile:"yes",password:"",isConvertPDF:"no",backgroundColor:"",isScannedPDF:"",ocrEngine:""},window.Kookit);window.rendition=d,t=t.replace(/\.[^/.]+$/,"");let g=yield Ma.generateBook(t,i,n,o,r,c,d);if(!g||!g.key)return;window.ReactNativeWebView.postMessage(JSON.stringify({event:"metadata",bookInfo:g}))}catch(e){window.ReactNativeWebView.postMessage(JSON.stringify({event:"error",message:"Parse book failed",error:String(e)?String(e):"Unknown error"}))}}),Ma.precacheMobileBook=(e,t)=>d(void 0,void 0,void 0,function*(){let i=yield window.rendition.preCache(window.file_content);if(""===i)window.ReactNativeWebView.postMessage(JSON.stringify({event:"cache",cacheBase64:"",key:t}));else if("err"!==i){try{const n=`${e}/dav/${"cache-"+t+".zip"}`,o=yield fetch(n,{method:"PUT",headers:{"Content-Type":"application/octet-stream",Overwrite:"T"},body:i});if(!o.ok)throw new Error(`上传失败: ${o.status}`);console.info("文件上传成功")}catch(e){console.error("操作失败:"+e)}window.ReactNativeWebView.postMessage(JSON.stringify({event:"cache",key:t}))}else window.ReactNativeWebView.postMessage(JSON.stringify({event:"error",message:"Parse book failed"}));window.file_content=null,window.rendition=null}),Ma.getPDFOcrResult=(e,t)=>new Promise((i,n)=>{try{window.ReactNativeWebView.postMessage(JSON.stringify({event:"get-ocr-result",index:e,imageUrl:t})),document.addEventListener("message",function t(o){try{const n=JSON.parse(o.data);if("ocr-result"===n.event&&n.index===e){document.removeEventListener("message",t);const e=n.text||"";i(e)}}catch(e){document.removeEventListener("message",t),n(e)}})}catch(e){n(e)}});class Fa{static getDefaultCss(e,t=""){const i=[];i.push("::selection{background:#f3a6a68c}"),i.push("::-moz-selection{background:#f3a6a68c}"),i.push(".kookit-note:hover{cursor:pointer;}"),i.push(".kookit-note{line-height:inherit;}"),i.push(".kookit-word-def{border-bottom:1px dashed currentColor;cursor:pointer;line-height:inherit;}"),i.push(".kookit-word-def::after{content:'(' attr(data-meaning) ')';font-size:0.7em;opacity:0.6;margin-left:2px;}");const n=e.getReaderConfig("fontSize")||18,o=e.getReaderConfig("lineHeight")||"1.25",r=e.getReaderConfig("letterSpacing");i.push(".kookit-text-rule-replace,.kookit-text-rule-delete{font-size:0 !important;line-height:0 !important;letter-spacing:0 !important;word-spacing:0 !important;display:inline;vertical-align:baseline;}"),i.push(".kookit-hyphen{display:inline;line-height:inherit;}.kookit-hyphen::after{content:'\\00AD';}"),i.push(".kookit-text-rule-highlight{line-height:inherit !important;}"),i.push(`.kookit-text-rule-replace::after{content:attr(data-kookit-replacement);font-size:${n}px !important;line-height:${o} !important;`+(r?`letter-spacing:${r}px !important;`:"")+"color:inherit;}"),i.push(".kookit-note-icon{line-height:1;font-size:14px;cursor:pointer;}"),i.push(".kookit-note-icon::before{content:'📋';}");let s=e.getAllListConfig("fullTranslationBooks").includes(t)&&e.getReaderConfig("fullTranslationMode")||"";if(i.push(`.kookit-translation-host::after{content: attr(data-kookit-translation);display:block;${"both"===s||"target"===s?this.getCustomCss(e):"display:none;"}${"target"===s?"font-size: "+(e.getReaderConfig("fontSize")||18)+"px !important; text-indent: 2rem !important;":""} }`),"both"!==s&&"target"!==s||(i.push('.kookit-translation-loading:after{content:"";display:block;width:16px;height:16px;margin:4px auto 0;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;opacity:0.4;animation:kookit-spin 0.8s linear infinite;}'),i.push("@keyframes kookit-spin{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}")),i.push("body,html,svg{margin: 0px !important; padding: 0px !important; font-size: 18px; background-color: transparent !important;background-size: contain !important; background-position: top left !important;}"),"vertical"!==e.getReaderConfig("textOrientation")&&i.push("body,html{writing-mode: horizontal-tb !important;}"),i.push(`a, article, cite, div, li, p, span:not(.kookit-note):not(.kookit-note-icon):not(.kookit-highlight-text):not(.kookit-note-tooltip):not(.kookit-word-def):not(.kookit-word-tooltip):not(.kookit-text-rule-replace):not(.kookit-text-rule-delete):not([class*="hljs"]), pre, dt, dd, table, bold, font, blockquote{${this.getCustomCss(e)}}`),i.push(`h1, h2, h3, h4, h5, h6, title{${this.getCustomCss(e,!0)}}`),i.push("code,pre{white-space:pre-wrap !important;word-wrap:break-word;word-break:break-word;overflow-wrap:anywhere;overflow:visible !important;overflow-x:visible !important;overflow-y:visible !important;max-height:none !important;break-inside:auto !important;page-break-inside:auto !important;-webkit-column-break-inside:auto !important;}"),i.push("table{width:100% !important;max-width:100% !important;table-layout:fixed !important;box-sizing:border-box;border-collapse:collapse;margin:20px 0;line-height:1.6;margin-left:0 !important;margin-right:0 !important;}"),i.push("td,th{word-break:break-word;overflow-wrap:anywhere;overflow:hidden;box-sizing:border-box;}"),i.push("thead th{font-weight:bold;padding:14px 12px;text-align:left;white-space:normal;border-bottom:2px solid #ccc;background-color:rgba(0,0,0,0.05);}"),i.push("td,th{padding:12px 14px;vertical-align:top;text-align:left;}"),i.push("rt span{font-size: unset !important;}"),i.push("rt{-webkit-user-select:none;user-select:none;}"),"yes"===e.getReaderConfig("isOverwriteLink")&&(i.push("a{color: #0066cc !important; text-decoration: underline !important; cursor: pointer !important;}"),i.push("a:hover{color: #004080 !important;}"),i.push("a:visited{color: #6600cc !important;}")),"yes"===e.getReaderConfig("isOverwriteBackground")&&i.push("body,html{background-color: transparent !important;}"),"yes"===e.getReaderConfig("isMergeWord")){const t=e.getReaderConfig("fontSize")||18;i.push(`h1{font-size: ${t}px !important;}`)}return i.push(this.getComicCss(e)),i.push('aside[epub\\:type="footnote"],aside[epub\\:type="note"],aside[epub\\:type="endnote"],aside[epub\\:type="rearnote"],.hide{font-size:0px !important;}'),i.push('aside[type="sidebar"],aside[epub\\:type="sidebar"]{ margin: 1.5em 0; padding: 1.2em 1.4em; background-color: #c7eafc; break-inside: avoid; page-break-inside: avoid; }'),i.join("")}static getCustomCss(e,t=!1){let i=[];if(!t&&e.getReaderConfig("fontSize")&&i.push(`font-size: ${e.getReaderConfig("fontSize")}px !important`),t)if(e.getReaderConfig("fontSize")){const t=Math.round(1.25*parseInt(e.getReaderConfig("fontSize")||"18"));i.push(`font-size: ${t}px`)}else i.push("font-size: 1.25em");const n=e.getReaderConfig("lineHeight");n&&i.push(`line-height: ${n} !important`);const o=e.getReaderConfig("fontFamily"),r=e.getReaderConfig("subFontFamily");if(o||r){i.push(`font-family: ${o||""} ${r?(o?", ":"")+r:""} !important`);const e={extralight:"200",light:"300",normal:"400",regular:"400",medium:"500",bold:"700",heavy:"900"},t=`${o||""} ${r||""}`.toLowerCase();for(const[n,o]of Object.entries(e))if(t.includes(n)){i.push(`font-weight: ${o} !important`);break}}const s=e.getReaderConfig("textColor"),a=e.getReaderConfig("backgroundColor"),l=e.getReaderConfig("appSkin"),c=e.getReaderConfig("isOSNight"),d=e.getReaderConfig("isOverwriteText"),g=e.getReaderConfig("isOverwriteBackground");let h="",A="";s?h=s:("rgba(44,47,49,1)"===a||"night"===l||"system"===l&&"yes"===c)&&(h="white"),("yes"===d||"rgba(44,47,49,1)"===a||"night"===l||"system"===l&&"yes"===c)&&(A="!important"),h&&i.push(`color: ${h} ${A}`.trim()),"yes"===g&&i.push("background-color: transparent !important");const u=e.getReaderConfig("letterSpacing");u&&i.push(`letter-spacing: ${u}px !important`);const p=e.getReaderConfig("textAlign");p&&i.push(`text-align: ${p} !important`),"yes"===e.getReaderConfig("isBold")&&i.push("font-weight: bold !important"),"vertical"!==e.getReaderConfig("textOrientation")&&i.push("writing-mode: horizontal-tb !important"),"yes"===e.getReaderConfig("isItalic")&&i.push("font-style: italic !important"),"yes"===e.getReaderConfig("isShadow")&&i.push("text-shadow: 2px 2px 2px #cccccc !important"),"yes"===e.getReaderConfig("isHyphenation")&&(i.push("hyphens: auto !important"),i.push("text-align: justify !important")),"yes"===e.getReaderConfig("isOrphanWidow")&&(i.push("orphans: 1 !important"),i.push("widows: 1 !important"));"yes"===e.getReaderConfig("isIndent")&&(t?i.push("text-indent: 0em !important"):i.push("text-indent: 2em !important")),"yes"===e.getReaderConfig("isUnderline")&&i.push("text-decoration: underline !important");const f=e.getReaderConfig("paraSpacing");return f&&(i.push(`margin-bottom: ${f}px !important`),i.push(`margin-top: ${f}px !important`)),i.push("word-wrap: break-word"),i.push("overflow: visible !important"),i.join("; ")+";"}static getComicCss(e){const t=[];t.push("div.fs{height:unset !important;width:100% !important;min-height:100% !important;position:relative;text-align:left;vertical-align:middle;}"),t.push("div.fs div{height:unset !important;min-height:100% !important;width:100% !important;margin:auto;text-align:center;vertical-align:middle;}"),t.push(".div_view{height:unset !important;width:100% !important;min-height:100% !important;margin:auto;text-align:center;vertical-align:middle;}");const i="scroll"===e.getReaderConfig("readerMode");let n=".singlePage{";i&&(n+="max-width: 100% !important;"),i&&(n+="max-height: unset !important;");return n+=`height:${i?"unset":"100%"}!important;`,n+="width:100%!important;position: unset !important;",n+="}",t.push(n),t.join("")}}export{Ma as BookHelper,xa as CacheRender,ca as ComicRender,Ia as DocxRender,Xr as EpubRender,Ea as Fb2Render,Qa as HtmlRender,Da as MdRender,Gs as MobiRender,Zs as PdfRender,ea as PdfTextRender,Fa as StyleHelper,aa as TxtRender}; +import e from"underscore";import t from"rangy/lib/rangy-core.js";import"rangy/lib/rangy-textrange";import i from"jszip";import*as n from"fflate";import{unzlibSync as o}from"fflate";import r from"chardet";import s from"js-untar";import a from"mammoth";import{marked as l}from"marked";import c from"mhtml2html";function d(e,t,i,n){return new(i||(i=Promise))(function(o,r){function s(e){try{l(n.next(e))}catch(e){r(e)}}function a(e){try{l(n.throw(e))}catch(e){r(e)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i(function(e){e(t)})).then(s,a)}l((n=n.apply(e,t||[])).next())})}const g={"㐷":"傌","㐹":"㑶","㐽":"偑","㑇":"㑳","㑈":"倲","㑔":"㑯","㑩":"儸","㓆":"𠗣","㓥":"劏","㓰":"劃","㔉":"劚","㖊":"噚","㖞":"喎","㘎":"㘚","㚯":"㜄","㛀":"媰","㛟":"𡞵","㛠":"𡢃","㛣":"㜏","㛤":"孋","㛿":"𡠹","㟆":"㠏","㟜":"𡾱","㟥":"嵾","㡎":"幓","㤘":"㥮","㤽":"懤","㥪":"慺","㧏":"掆","㧐":"㩳","㧑":"撝","㧟":"擓","㧰":"擽","㨫":"㩜","㭎":"棡","㭏":"椲","㭣":"𣙎","㭤":"樢","㭴":"樫","㱩":"殰","㱮":"殨","㲿":"瀇","㳔":"濧","㳕":"灡","㳠":"澾","㳡":"濄","㳢":"𣾷","㳽":"瀰","㴋":"潚","㶉":"鸂","㶶":"燶","㶽":"煱","㺍":"獱","㻅":"璯","㻏":"𤫩","㻘":"𤪺","䀥":"䁻","䁖":"瞜","䂵":"碽","䃅":"磾","䅉":"稏","䅟":"穇","䅪":"𥢢","䇲":"筴","䉤":"籔","䌶":"䊷","䌷":"紬","䌸":"縳","䌹":"絅","䌺":"䋙","䌻":"䋚","䌼":"綐","䌽":"綵","䌾":"䋻","䌿":"䋹","䍀":"繿","䍁":"繸","䍠":"䍦","䎬":"䎱","䏝":"膞","䑽":"𦪙","䓓":"薵","䓕":"薳","䓖":"藭","䓨":"罃","䗖":"螮","䘛":"𧝞","䘞":"𧜗","䙊":"𧜵","䙌":"䙡","䙓":"襬","䜣":"訢","䜤":"鿁","䜥":"𧩙","䜧":"䜀","䜩":"讌","䝙":"貙","䞌":"𧵳","䞍":"䝼","䞎":"𧶧","䞐":"賰","䟢":"躎","䢀":"𨊰","䢁":"𨊸","䢂":"𨋢","䥺":"釾","䥽":"鏺","䥾":"䥱","䥿":"𨯅","䦀":"𨦫","䦁":"𨧜","䦂":"䥇","䦃":"鐯","䦅":"鐥","䦆":"钁","䦶":"䦛","䦷":"䦟","䩄":"靦","䭪":"𩞯","䯃":"𩣑","䯄":"騧","䯅":"䯀","䲝":"䱽","䲞":"𩶘","䲟":"鮣","䲠":"鰆","䲡":"鰌","䲢":"鰧","䲣":"䱷","䴓":"鳾","䴔":"鵁","䴕":"鴷","䴖":"鶄","䴗":"鶪","䴘":"鷉","䴙":"鸊","䶮":"龑","万":"萬","与":"與","丑":"醜","专":"專","业":"業","丛":"叢","东":"東","丝":"絲","丢":"丟","两":"兩","严":"嚴","丧":"喪","个":"個","丰":"豐","临":"臨","为":"爲","丽":"麗","举":"舉","么":"麼","义":"義","乌":"烏","乐":"樂","乔":"喬","习":"習","乡":"鄉","书":"書","买":"買","乱":"亂","了":"了","争":"爭","于":"於","亏":"虧","云":"雲","亘":"亙","亚":"亞","产":"產","亩":"畝","亲":"親","亵":"褻","亸":"嚲","亿":"億","仅":"僅","仆":"僕","仇":"仇","从":"從","仑":"侖","仓":"倉","仪":"儀","们":"們","价":"價","仿":"仿","众":"衆","优":"優","伙":"夥","会":"會","伛":"傴","伞":"傘","伟":"偉","传":"傳","伡":"俥","伣":"俔","伤":"傷","伥":"倀","伦":"倫","伧":"傖","伪":"僞","伫":"佇","体":"體","余":"餘","佛":"佛","佣":"傭","佥":"僉","侠":"俠","侣":"侶","侥":"僥","侦":"偵","侧":"側","侨":"僑","侩":"儈","侪":"儕","侬":"儂","侭":"儘","俊":"俊","俣":"俁","俦":"儔","俨":"儼","俩":"倆","俪":"儷","俫":"倈","俭":"儉","修":"修","借":"借","债":"債","倾":"傾","偬":"傯","偻":"僂","偾":"僨","偿":"償","傤":"儎","傥":"儻","傧":"儐","储":"儲","傩":"儺","僵":"僵","儿":"兒","克":"克","兑":"兌","兖":"兗","党":"黨","兰":"蘭","关":"關","兴":"興","兹":"茲","养":"養","兽":"獸","冁":"囅","内":"內","冈":"岡","册":"冊","写":"寫","军":"軍","农":"農","冬":"冬","冯":"馮","冲":"衝","决":"決","况":"況","冻":"凍","净":"淨","凄":"悽","准":"準","凉":"涼","凌":"凌","减":"減","凑":"湊","凛":"凜","几":"幾","凤":"鳳","凫":"鳧","凭":"憑","凯":"凱","凶":"兇","出":"出","击":"擊","凿":"鑿","刍":"芻","划":"劃","刘":"劉","则":"則","刚":"剛","创":"創","删":"刪","别":"別","刬":"剗","刭":"剄","刮":"刮","制":"制","刹":"剎","刽":"劊","刾":"㓨","刿":"劌","剀":"剴","剂":"劑","剐":"剮","剑":"劍","剥":"剝","剧":"劇","劝":"勸","办":"辦","务":"務","劢":"勱","动":"動","励":"勵","劲":"勁","劳":"勞","势":"勢","勋":"勳","勚":"勩","匀":"勻","匦":"匭","匮":"匱","区":"區","医":"醫","千":"千","升":"升","华":"華","协":"協","单":"單","卖":"賣","卜":"卜","占":"佔","卢":"盧","卤":"滷","卧":"臥","卫":"衛","却":"卻","卷":"卷","卺":"巹","厂":"廠","厅":"廳","历":"歷","厉":"厲","压":"壓","厌":"厭","厍":"厙","厐":"龎","厕":"廁","厘":"釐","厢":"廂","厣":"厴","厦":"廈","厨":"廚","厩":"廄","厮":"廝","县":"縣","叁":"叄","参":"參","叆":"靉","叇":"靆","双":"雙","发":"發","变":"變","叙":"敘","叠":"疊","只":"只","台":"臺","叶":"葉","号":"號","叹":"嘆","叽":"嘰","吁":"籲","吃":"喫","合":"合","吊":"吊","同":"同","后":"後","向":"向","吓":"嚇","吕":"呂","吗":"嗎","吨":"噸","听":"聽","启":"啓","吴":"吳","呐":"吶","呒":"嘸","呓":"囈","呕":"嘔","呖":"嚦","呗":"唄","员":"員","呙":"咼","呛":"嗆","呜":"嗚","周":"周","咏":"詠","咙":"嚨","咛":"嚀","咝":"噝","咤":"吒","咨":"諮","咸":"鹹","咽":"咽","哄":"哄","响":"響","哑":"啞","哒":"噠","哓":"嘵","哔":"嗶","哕":"噦","哗":"譁","哙":"噲","哜":"嚌","哝":"噥","哟":"喲","唇":"脣","唛":"嘜","唝":"嗊","唠":"嘮","唡":"啢","唢":"嗩","唤":"喚","啧":"嘖","啬":"嗇","啭":"囀","啮":"齧","啯":"嘓","啰":"囉","啴":"嘽","啸":"嘯","喂":"喂","喷":"噴","喽":"嘍","喾":"嚳","嗫":"囁","嗳":"噯","嘘":"噓","嘤":"嚶","嘱":"囑","噜":"嚕","噪":"噪","嚣":"囂","回":"回","团":"團","园":"園","困":"困","囱":"囪","围":"圍","囵":"圇","国":"國","图":"圖","圆":"圓","圣":"聖","圹":"壙","场":"場","坏":"壞","块":"塊","坚":"堅","坛":"壇","坜":"壢","坝":"壩","坞":"塢","坟":"墳","坠":"墜","垄":"壟","垅":"壠","垆":"壚","垒":"壘","垦":"墾","垩":"堊","垫":"墊","垭":"埡","垯":"墶","垱":"壋","垲":"塏","垴":"堖","埘":"塒","埙":"壎","埚":"堝","堑":"塹","堕":"墮","塆":"壪","墙":"牆","壮":"壯","声":"聲","壳":"殼","壶":"壺","壸":"壼","处":"處","备":"備","复":"復","够":"夠","夫":"夫","头":"頭","夸":"誇","夹":"夾","夺":"奪","奁":"奩","奂":"奐","奋":"奮","奖":"獎","奥":"奧","奸":"奸","妆":"妝","妇":"婦","妈":"媽","妩":"嫵","妪":"嫗","妫":"嬀","姗":"姍","姜":"姜","姹":"奼","娄":"婁","娅":"婭","娆":"嬈","娇":"嬌","娈":"孌","娘":"娘","娱":"娛","娲":"媧","娴":"嫺","婳":"嫿","婴":"嬰","婵":"嬋","婶":"嬸","媪":"媼","媭":"嬃","嫒":"嬡","嫔":"嬪","嫱":"嬙","嬷":"嬤","孙":"孫","学":"學","孪":"孿","宁":"寧","它":"它","宝":"寶","实":"實","宠":"寵","审":"審","宪":"憲","宫":"宮","家":"家","宽":"寬","宾":"賓","寝":"寢","对":"對","寻":"尋","导":"導","寿":"壽","将":"將","尔":"爾","尘":"塵","尝":"嘗","尧":"堯","尴":"尷","尸":"屍","尽":"盡","局":"局","层":"層","屃":"屓","屉":"屜","届":"屆","属":"屬","屡":"屢","屦":"屨","屿":"嶼","岁":"歲","岂":"豈","岖":"嶇","岗":"崗","岘":"峴","岚":"嵐","岛":"島","岩":"巖","岭":"嶺","岳":"嶽","岽":"崬","岿":"巋","峃":"嶨","峄":"嶧","峡":"峽","峣":"嶢","峤":"嶠","峥":"崢","峦":"巒","峰":"峯","崂":"嶗","崃":"崍","崄":"嶮","崭":"嶄","嵘":"嶸","嵚":"嶔","嵝":"嶁","巅":"巔","巨":"巨","巩":"鞏","巯":"巰","币":"幣","布":"布","帅":"帥","师":"師","帏":"幃","帐":"帳","帘":"簾","帜":"幟","带":"帶","帧":"幀","席":"席","帮":"幫","帱":"幬","帻":"幘","帼":"幗","幂":"冪","干":"幹","并":"並","幸":"幸","广":"廣","庄":"莊","庆":"慶","床":"牀","庐":"廬","庑":"廡","库":"庫","应":"應","庙":"廟","庞":"龐","废":"廢","庵":"庵","庼":"廎","廪":"廩","开":"開","异":"異","弃":"棄","弑":"弒","张":"張","弥":"彌","弦":"弦","弪":"弳","弯":"彎","弹":"彈","强":"強","归":"歸","当":"當","录":"錄","彟":"彠","彦":"彥","彨":"彲","彩":"彩","彻":"徹","征":"徵","径":"徑","徕":"徠","御":"御","忆":"憶","忏":"懺","志":"志","忧":"憂","念":"念","忾":"愾","怀":"懷","态":"態","怂":"慫","怃":"憮","怄":"慪","怅":"悵","怆":"愴","怜":"憐","总":"總","怼":"懟","怿":"懌","恋":"戀","恒":"恆","恤":"恤","恳":"懇","恶":"惡","恸":"慟","恹":"懨","恺":"愷","恻":"惻","恼":"惱","恽":"惲","悦":"悅","悫":"愨","悬":"懸","悭":"慳","悮":"悞","悯":"憫","惊":"驚","惧":"懼","惨":"慘","惩":"懲","惫":"憊","惬":"愜","惭":"慚","惮":"憚","惯":"慣","愈":"愈","愠":"慍","愤":"憤","愦":"憒","愿":"願","慑":"懾","慭":"憖","懑":"懣","懒":"懶","懔":"懍","戆":"戇","戋":"戔","戏":"戲","戗":"戧","战":"戰","戚":"戚","戬":"戩","戯":"戱","户":"戶","才":"才","扎":"扎","扑":"撲","托":"託","扣":"扣","执":"執","扩":"擴","扪":"捫","扫":"掃","扬":"揚","扰":"擾","折":"折","抚":"撫","抛":"拋","抟":"摶","抠":"摳","抡":"掄","抢":"搶","护":"護","报":"報","抵":"抵","担":"擔","拐":"拐","拟":"擬","拢":"攏","拣":"揀","拥":"擁","拦":"攔","拧":"擰","拨":"撥","择":"擇","挂":"掛","挚":"摯","挛":"攣","挜":"掗","挝":"撾","挞":"撻","挟":"挾","挠":"撓","挡":"擋","挢":"撟","挣":"掙","挤":"擠","挥":"揮","挦":"撏","挨":"挨","挽":"挽","捝":"挩","捞":"撈","损":"損","捡":"撿","换":"換","捣":"搗","据":"據","掳":"擄","掴":"摑","掷":"擲","掸":"撣","掺":"摻","掼":"摜","揽":"攬","揾":"搵","揿":"撳","搀":"攙","搁":"擱","搂":"摟","搄":"揯","搅":"攪","搜":"搜","携":"攜","摄":"攝","摅":"攄","摆":"擺","摇":"搖","摈":"擯","摊":"攤","撄":"攖","撑":"撐","撵":"攆","撷":"擷","撸":"擼","撺":"攛","擜":"㩵","擞":"擻","攒":"攢","敌":"敵","敚":"敓","敛":"斂","敩":"斆","数":"數","斋":"齋","斓":"斕","斗":"鬥","斩":"斬","断":"斷","旋":"旋","无":"無","旧":"舊","时":"時","旷":"曠","旸":"暘","昆":"昆","昙":"曇","昵":"暱","昼":"晝","昽":"曨","显":"顯","晋":"晉","晒":"曬","晓":"曉","晔":"曄","晕":"暈","晖":"暉","暂":"暫","暅":"𣈶","暗":"暗","暧":"曖","曲":"曲","术":"術","朱":"朱","朴":"樸","机":"機","杀":"殺","杂":"雜","权":"權","杆":"杆","杠":"槓","条":"條","来":"來","杨":"楊","杩":"榪","杯":"杯","杰":"傑","松":"松","板":"板","极":"極","构":"構","枞":"樅","枢":"樞","枣":"棗","枥":"櫪","枧":"梘","枨":"棖","枪":"槍","枫":"楓","枭":"梟","柜":"櫃","柠":"檸","柽":"檉","栀":"梔","栅":"柵","标":"標","栈":"棧","栉":"櫛","栊":"櫳","栋":"棟","栌":"櫨","栎":"櫟","栏":"欄","树":"樹","栖":"棲","栗":"栗","样":"樣","核":"核","栾":"欒","桠":"椏","桡":"橈","桢":"楨","档":"檔","桤":"榿","桥":"橋","桦":"樺","桧":"檜","桨":"槳","桩":"樁","桪":"樳","梁":"梁","梦":"夢","梼":"檮","梾":"棶","梿":"槤","检":"檢","棁":"梲","棂":"欞","椁":"槨","椝":"槼","椟":"櫝","椠":"槧","椢":"槶","椤":"欏","椫":"樿","椭":"橢","椮":"槮","楼":"樓","榄":"欖","榅":"榲","榇":"櫬","榈":"櫚","榉":"櫸","榝":"樧","槚":"檟","槛":"檻","槟":"檳","槠":"櫧","横":"橫","樯":"檣","樱":"櫻","橥":"櫫","橱":"櫥","橹":"櫓","橼":"櫞","檩":"檁","欢":"歡","欤":"歟","欧":"歐","欲":"欲","歼":"殲","殁":"歿","殇":"殤","残":"殘","殒":"殞","殓":"殮","殚":"殫","殡":"殯","殴":"毆","毁":"毀","毂":"轂","毕":"畢","毙":"斃","毡":"氈","毵":"毿","毶":"𣯶","氇":"氌","气":"氣","氢":"氫","氩":"氬","氲":"氳","汇":"匯","汉":"漢","汤":"湯","汹":"洶","沄":"澐","沈":"沈","沟":"溝","没":"沒","沣":"灃","沤":"漚","沥":"瀝","沦":"淪","沧":"滄","沨":"渢","沩":"潙","沪":"滬","沾":"沾","泛":"泛","泞":"濘","注":"注","泪":"淚","泶":"澩","泷":"瀧","泸":"瀘","泺":"濼","泻":"瀉","泼":"潑","泽":"澤","泾":"涇","洁":"潔","洒":"灑","洼":"窪","浃":"浹","浅":"淺","浆":"漿","浇":"澆","浈":"湞","浉":"溮","浊":"濁","测":"測","浍":"澮","济":"濟","浏":"瀏","浐":"滻","浑":"渾","浒":"滸","浓":"濃","浔":"潯","浕":"濜","涂":"塗","涌":"湧","涚":"涗","涛":"濤","涝":"澇","涞":"淶","涟":"漣","涠":"潿","涡":"渦","涢":"溳","涣":"渙","涤":"滌","润":"潤","涧":"澗","涨":"漲","涩":"澀","淀":"澱","渊":"淵","渌":"淥","渍":"漬","渎":"瀆","渐":"漸","渑":"澠","渔":"漁","渖":"瀋","渗":"滲","温":"溫","游":"遊","湾":"灣","湿":"溼","溁":"濚","溃":"潰","溅":"濺","溆":"漵","溇":"漊","滗":"潷","滚":"滾","滞":"滯","滟":"灩","滠":"灄","满":"滿","滢":"瀅","滤":"濾","滥":"濫","滦":"灤","滨":"濱","滩":"灘","滪":"澦","漓":"漓","潆":"瀠","潇":"瀟","潋":"瀲","潍":"濰","潜":"潛","潴":"瀦","澛":"瀂","澜":"瀾","濑":"瀨","濒":"瀕","灏":"灝","灭":"滅","灯":"燈","灵":"靈","灶":"竈","灾":"災","灿":"燦","炀":"煬","炉":"爐","炖":"燉","炜":"煒","炝":"熗","点":"點","炼":"煉","炽":"熾","烁":"爍","烂":"爛","烃":"烴","烛":"燭","烟":"煙","烦":"煩","烧":"燒","烨":"燁","烩":"燴","烫":"燙","烬":"燼","热":"熱","焕":"煥","焖":"燜","焘":"燾","煴":"熅","熏":"燻","爱":"愛","爷":"爺","牍":"牘","牦":"犛","牵":"牽","牺":"犧","犊":"犢","状":"狀","犷":"獷","犸":"獁","犹":"猶","狈":"狽","狝":"獮","狞":"獰","独":"獨","狭":"狹","狮":"獅","狯":"獪","狰":"猙","狱":"獄","狲":"猻","猃":"獫","猎":"獵","猕":"獼","猡":"玀","猪":"豬","猫":"貓","猬":"蝟","献":"獻","獭":"獺","玑":"璣","玙":"璵","玚":"瑒","玛":"瑪","玩":"玩","玮":"瑋","环":"環","现":"現","玱":"瑲","玺":"璽","珐":"琺","珑":"瓏","珰":"璫","珲":"琿","琎":"璡","琏":"璉","琐":"瑣","琼":"瓊","瑶":"瑤","瑷":"璦","瑸":"璸","璇":"璇","璎":"瓔","瓒":"瓚","瓮":"甕","瓯":"甌","电":"電","画":"畫","畅":"暢","畴":"疇","疖":"癤","疗":"療","疟":"瘧","疠":"癘","疡":"瘍","疬":"癧","疭":"瘲","疮":"瘡","疯":"瘋","疱":"皰","疴":"痾","症":"症","痈":"癰","痉":"痙","痒":"癢","痖":"瘂","痨":"癆","痪":"瘓","痫":"癇","痴":"癡","瘅":"癉","瘆":"瘮","瘗":"瘞","瘘":"瘻","瘪":"癟","瘫":"癱","瘾":"癮","瘿":"癭","癞":"癩","癣":"癬","癫":"癲","皂":"皁","皑":"皚","皱":"皺","皲":"皸","盏":"盞","盐":"鹽","监":"監","盖":"蓋","盗":"盜","盘":"盤","眍":"瞘","眦":"眥","眬":"矓","睁":"睜","睐":"睞","睑":"瞼","瞆":"瞶","瞒":"瞞","瞩":"矚","矩":"矩","矫":"矯","矶":"磯","矾":"礬","矿":"礦","砀":"碭","码":"碼","砖":"磚","砗":"硨","砚":"硯","砜":"碸","砺":"礪","砻":"礱","砾":"礫","础":"礎","硁":"硜","硕":"碩","硖":"硤","硗":"磽","硙":"磑","硚":"礄","确":"確","硵":"磠","硷":"礆","碍":"礙","碛":"磧","碜":"磣","碱":"鹼","礼":"禮","祃":"禡","祎":"禕","祢":"禰","祯":"禎","祷":"禱","祸":"禍","禀":"稟","禄":"祿","禅":"禪","离":"離","私":"私","秃":"禿","秆":"稈","秋":"秋","种":"種","秘":"祕","积":"積","称":"稱","秽":"穢","秾":"穠","稆":"穭","税":"稅","稣":"穌","稳":"穩","穑":"穡","穞":"穭","穷":"窮","窃":"竊","窍":"竅","窎":"窵","窑":"窯","窜":"竄","窝":"窩","窥":"窺","窦":"竇","窭":"窶","竖":"豎","竞":"競","笃":"篤","笋":"筍","笔":"筆","笕":"筧","笺":"箋","笼":"籠","笾":"籩","筑":"築","筚":"篳","筛":"篩","筜":"簹","筝":"箏","筹":"籌","筼":"篔","签":"籤","筿":"篠","简":"簡","箓":"籙","箦":"簀","箧":"篋","箨":"籜","箩":"籮","箪":"簞","箫":"簫","篑":"簣","篓":"簍","篮":"籃","篯":"籛","篱":"籬","簖":"籪","籁":"籟","籴":"糴","类":"類","籼":"秈","粜":"糶","粝":"糲","粤":"粵","粪":"糞","粮":"糧","粽":"糉","糁":"糝","糇":"餱","糍":"餈","系":"系","紧":"緊","絷":"縶","緼":"縕","縆":"緪","纟":"糹","纠":"糾","纡":"紆","红":"紅","纣":"紂","纤":"纖","纥":"紇","约":"約","级":"級","纨":"紈","纩":"纊","纪":"紀","纫":"紉","纬":"緯","纭":"紜","纮":"紘","纯":"純","纰":"紕","纱":"紗","纲":"綱","纳":"納","纴":"紝","纵":"縱","纶":"綸","纷":"紛","纸":"紙","纹":"紋","纺":"紡","纻":"紵","纼":"紖","纽":"紐","纾":"紓","线":"線","绀":"紺","绁":"紲","绂":"紱","练":"練","组":"組","绅":"紳","细":"細","织":"織","终":"終","绉":"縐","绊":"絆","绋":"紼","绌":"絀","绍":"紹","绎":"繹","经":"經","绐":"紿","绑":"綁","绒":"絨","结":"結","绔":"絝","绕":"繞","绖":"絰","绗":"絎","绘":"繪","给":"給","绚":"絢","绛":"絳","络":"絡","绝":"絕","绞":"絞","统":"統","绠":"綆","绡":"綃","绢":"絹","绣":"繡","绤":"綌","绥":"綏","绦":"絛","继":"繼","绨":"綈","绩":"績","绪":"緒","绫":"綾","绬":"緓","续":"續","绮":"綺","绯":"緋","绰":"綽","绱":"鞝","绲":"緄","绳":"繩","维":"維","绵":"綿","绶":"綬","绷":"繃","绸":"綢","绹":"綯","绺":"綹","绻":"綣","综":"綜","绽":"綻","绾":"綰","绿":"綠","缀":"綴","缁":"緇","缂":"緙","缃":"緗","缄":"緘","缅":"緬","缆":"纜","缇":"緹","缈":"緲","缉":"緝","缊":"縕","缋":"繢","缌":"緦","缍":"綞","缎":"緞","缏":"緶","缐":"線","缑":"緱","缒":"縋","缓":"緩","缔":"締","缕":"縷","编":"編","缗":"緡","缘":"緣","缙":"縉","缚":"縛","缛":"縟","缜":"縝","缝":"縫","缞":"縗","缟":"縞","缠":"纏","缡":"縭","缢":"縊","缣":"縑","缤":"繽","缥":"縹","缦":"縵","缧":"縲","缨":"纓","缩":"縮","缪":"繆","缫":"繅","缬":"纈","缭":"繚","缮":"繕","缯":"繒","缰":"繮","缱":"繾","缲":"繰","缳":"繯","缴":"繳","缵":"纘","罂":"罌","网":"網","罗":"羅","罚":"罰","罢":"罷","罴":"羆","羁":"羈","羟":"羥","羡":"羨","群":"羣","翘":"翹","翙":"翽","翚":"翬","耢":"耮","耧":"耬","耸":"聳","耻":"恥","聂":"聶","聋":"聾","职":"職","聍":"聹","联":"聯","聩":"聵","聪":"聰","肃":"肅","肠":"腸","肤":"膚","肮":"骯","肴":"餚","肾":"腎","肿":"腫","胀":"脹","胁":"脅","胄":"胄","胆":"膽","背":"背","胜":"勝","胡":"胡","胧":"朧","胨":"腖","胪":"臚","胫":"脛","胶":"膠","脉":"脈","脍":"膾","脏":"髒","脐":"臍","脑":"腦","脓":"膿","脔":"臠","脚":"腳","脱":"脫","脶":"腡","脸":"臉","腊":"臘","腌":"醃","腘":"膕","腭":"齶","腻":"膩","腼":"靦","腽":"膃","腾":"騰","膑":"臏","膻":"羶","臜":"臢","致":"致","舆":"輿","舍":"舍","舣":"艤","舰":"艦","舱":"艙","舻":"艫","艰":"艱","艳":"豔","艺":"藝","节":"節","芈":"羋","芗":"薌","芜":"蕪","芦":"蘆","芸":"芸","苁":"蓯","苇":"葦","苈":"藶","苋":"莧","苌":"萇","苍":"蒼","苎":"苧","苏":"蘇","苔":"苔","苧":"薴","苹":"蘋","范":"範","茎":"莖","茏":"蘢","茑":"蔦","茔":"塋","茕":"煢","茧":"繭","荆":"荊","荐":"薦","荙":"薘","荚":"莢","荛":"蕘","荜":"蓽","荝":"萴","荞":"蕎","荟":"薈","荠":"薺","荡":"蕩","荣":"榮","荤":"葷","荥":"滎","荦":"犖","荧":"熒","荨":"蕁","荩":"藎","荪":"蓀","荫":"蔭","荬":"蕒","荭":"葒","荮":"葤","药":"藥","莅":"蒞","莱":"萊","莲":"蓮","莳":"蒔","莴":"萵","莶":"薟","获":"獲","莸":"蕕","莹":"瑩","莺":"鶯","莼":"蓴","萚":"蘀","萝":"蘿","萤":"螢","营":"營","萦":"縈","萧":"蕭","萨":"薩","葱":"蔥","蒀":"蒕","蒇":"蕆","蒉":"蕢","蒋":"蔣","蒌":"蔞","蒏":"醟","蒙":"蒙","蓝":"藍","蓟":"薊","蓠":"蘺","蓣":"蕷","蓥":"鎣","蓦":"驀","蔂":"虆","蔑":"蔑","蔷":"薔","蔹":"蘞","蔺":"藺","蔼":"藹","蕰":"薀","蕲":"蘄","蕴":"蘊","薮":"藪","藓":"蘚","藴":"蘊","蘖":"櫱","虏":"虜","虑":"慮","虚":"虛","虫":"蟲","虬":"虯","虮":"蟣","虱":"蝨","虽":"雖","虾":"蝦","虿":"蠆","蚀":"蝕","蚁":"蟻","蚂":"螞","蚃":"蠁","蚕":"蠶","蚝":"蠔","蚬":"蜆","蛊":"蠱","蛎":"蠣","蛏":"蟶","蛮":"蠻","蛰":"蟄","蛱":"蛺","蛲":"蟯","蛳":"螄","蛴":"蠐","蜕":"蛻","蜗":"蝸","蜡":"蠟","蝇":"蠅","蝈":"蟈","蝉":"蟬","蝎":"蠍","蝼":"螻","蝾":"蠑","螀":"螿","螨":"蟎","蟏":"蠨","衅":"釁","衔":"銜","补":"補","表":"表","衬":"襯","衮":"袞","袄":"襖","袅":"嫋","袆":"褘","袜":"襪","袭":"襲","袯":"襏","装":"裝","裆":"襠","裈":"褌","裢":"褳","裣":"襝","裤":"褲","裥":"襉","褛":"褸","褴":"襤","襕":"襴","见":"見","观":"觀","觃":"覎","规":"規","觅":"覓","视":"視","觇":"覘","览":"覽","觉":"覺","觊":"覬","觋":"覡","觌":"觿","觍":"覥","觎":"覦","觏":"覯","觐":"覲","觑":"覷","觞":"觴","触":"觸","觯":"觶","訚":"誾","詟":"讋","誉":"譽","誊":"謄","讠":"訁","计":"計","订":"訂","讣":"訃","认":"認","讥":"譏","讦":"訐","讧":"訌","讨":"討","让":"讓","讪":"訕","讫":"訖","讬":"託","训":"訓","议":"議","讯":"訊","记":"記","讱":"訒","讲":"講","讳":"諱","讴":"謳","讵":"詎","讶":"訝","讷":"訥","许":"許","讹":"訛","论":"論","讻":"訩","讼":"訟","讽":"諷","设":"設","访":"訪","诀":"訣","证":"證","诂":"詁","诃":"訶","评":"評","诅":"詛","识":"識","诇":"詗","诈":"詐","诉":"訴","诊":"診","诋":"詆","诌":"謅","词":"詞","诎":"詘","诏":"詔","诐":"詖","译":"譯","诒":"詒","诓":"誆","诔":"誄","试":"試","诖":"詿","诗":"詩","诘":"詰","诙":"詼","诚":"誠","诛":"誅","诜":"詵","话":"話","诞":"誕","诟":"詬","诠":"詮","诡":"詭","询":"詢","诣":"詣","诤":"諍","该":"該","详":"詳","诧":"詫","诨":"諢","诩":"詡","诪":"譸","诫":"誡","诬":"誣","语":"語","诮":"誚","误":"誤","诰":"誥","诱":"誘","诲":"誨","诳":"誑","说":"說","诵":"誦","诶":"誒","请":"請","诸":"諸","诹":"諏","诺":"諾","读":"讀","诼":"諑","诽":"誹","课":"課","诿":"諉","谀":"諛","谁":"誰","谂":"諗","调":"調","谄":"諂","谅":"諒","谆":"諄","谇":"誶","谈":"談","谉":"讅","谊":"誼","谋":"謀","谌":"諶","谍":"諜","谎":"謊","谏":"諫","谐":"諧","谑":"謔","谒":"謁","谓":"謂","谔":"諤","谕":"諭","谖":"諼","谗":"讒","谘":"諮","谙":"諳","谚":"諺","谛":"諦","谜":"謎","谝":"諞","谞":"諝","谟":"謨","谠":"讜","谡":"謖","谢":"謝","谣":"謠","谤":"謗","谥":"諡","谦":"謙","谧":"謐","谨":"謹","谩":"謾","谪":"謫","谫":"譾","谬":"謬","谭":"譚","谮":"譖","谯":"譙","谰":"讕","谱":"譜","谲":"譎","谳":"讞","谴":"譴","谵":"譫","谶":"讖","谷":"谷","豮":"豶","贝":"貝","贞":"貞","负":"負","贠":"貟","贡":"貢","财":"財","责":"責","贤":"賢","败":"敗","账":"賬","货":"貨","质":"質","贩":"販","贪":"貪","贫":"貧","贬":"貶","购":"購","贮":"貯","贯":"貫","贰":"貳","贱":"賤","贲":"賁","贳":"貰","贴":"貼","贵":"貴","贶":"貺","贷":"貸","贸":"貿","费":"費","贺":"賀","贻":"貽","贼":"賊","贽":"贄","贾":"賈","贿":"賄","赀":"貲","赁":"賃","赂":"賂","赃":"贓","资":"資","赅":"賅","赆":"贐","赇":"賕","赈":"賑","赉":"賚","赊":"賒","赋":"賦","赌":"賭","赍":"齎","赎":"贖","赏":"賞","赐":"賜","赑":"贔","赒":"賙","赓":"賡","赔":"賠","赕":"賧","赖":"賴","赗":"賵","赘":"贅","赙":"賻","赚":"賺","赛":"賽","赜":"賾","赝":"贗","赞":"贊","赟":"贇","赠":"贈","赡":"贍","赢":"贏","赣":"贛","赪":"赬","赵":"趙","赶":"趕","趋":"趨","趱":"趲","趸":"躉","跃":"躍","跄":"蹌","跖":"蹠","跞":"躒","践":"踐","跶":"躂","跷":"蹺","跸":"蹕","跹":"躚","跻":"躋","踌":"躊","踪":"蹤","踬":"躓","踯":"躑","蹑":"躡","蹒":"蹣","蹰":"躕","蹿":"躥","躏":"躪","躜":"躦","躯":"軀","輼":"轀","车":"車","轧":"軋","轨":"軌","轩":"軒","轪":"軑","轫":"軔","转":"轉","轭":"軛","轮":"輪","软":"軟","轰":"轟","轱":"軲","轲":"軻","轳":"轤","轴":"軸","轵":"軹","轶":"軼","轷":"軤","轸":"軫","轹":"轢","轺":"軺","轻":"輕","轼":"軾","载":"載","轾":"輊","轿":"轎","辀":"輈","辁":"輇","辂":"輅","较":"較","辄":"輒","辅":"輔","辆":"輛","辇":"輦","辈":"輩","辉":"輝","辊":"輥","辋":"輞","辌":"輬","辍":"輟","辎":"輜","辏":"輳","辐":"輻","辑":"輯","辒":"轀","输":"輸","辔":"轡","辕":"轅","辖":"轄","辗":"輾","辘":"轆","辙":"轍","辚":"轔","辞":"辭","辟":"闢","辩":"辯","辫":"辮","边":"邊","辽":"遼","达":"達","迁":"遷","过":"過","迈":"邁","运":"運","还":"還","这":"這","进":"進","远":"遠","违":"違","连":"連","迟":"遲","迩":"邇","迳":"逕","迹":"跡","适":"適","选":"選","逊":"遜","递":"遞","逦":"邐","逻":"邏","遗":"遺","遥":"遙","邓":"鄧","邝":"鄺","邬":"鄔","邮":"郵","邹":"鄒","邺":"鄴","邻":"鄰","郁":"鬱","郏":"郟","郐":"鄶","郑":"鄭","郓":"鄆","郦":"酈","郧":"鄖","郸":"鄲","酂":"酇","酝":"醞","酦":"醱","酱":"醬","酸":"酸","酽":"釅","酾":"釃","酿":"釀","醖":"醞","采":"採","释":"釋","里":"裏","鉴":"鑑","銮":"鑾","錾":"鏨","钅":"釒","钆":"釓","钇":"釔","针":"針","钉":"釘","钊":"釗","钋":"釙","钌":"釕","钍":"釷","钎":"釺","钏":"釧","钐":"釤","钑":"鈒","钒":"釩","钓":"釣","钔":"鍆","钕":"釹","钖":"鍚","钗":"釵","钘":"鈃","钙":"鈣","钚":"鈈","钛":"鈦","钜":"鉅","钝":"鈍","钞":"鈔","钟":"鍾","钠":"鈉","钡":"鋇","钢":"鋼","钣":"鈑","钤":"鈐","钥":"鑰","钦":"欽","钧":"鈞","钨":"鎢","钩":"鉤","钪":"鈧","钫":"鈁","钬":"鈥","钭":"鈄","钮":"鈕","钯":"鈀","钰":"鈺","钱":"錢","钲":"鉦","钳":"鉗","钴":"鈷","钵":"鉢","钶":"鈳","钷":"鉕","钸":"鈽","钹":"鈸","钺":"鉞","钻":"鑽","钼":"鉬","钽":"鉭","钾":"鉀","钿":"鈿","铀":"鈾","铁":"鐵","铂":"鉑","铃":"鈴","铄":"鑠","铅":"鉛","铆":"鉚","铇":"鉋","铈":"鈰","铉":"鉉","铊":"鉈","铋":"鉍","铌":"鈮","铍":"鈹","铎":"鐸","铏":"鉶","铐":"銬","铑":"銠","铒":"鉺","铓":"鋩","铔":"錏","铕":"銪","铖":"鋮","铗":"鋏","铘":"鋣","铙":"鐃","铚":"銍","铛":"鐺","铜":"銅","铝":"鋁","铞":"銱","铟":"銦","铠":"鎧","铡":"鍘","铢":"銖","铣":"銑","铤":"鋌","铥":"銩","铦":"銛","铧":"鏵","铨":"銓","铩":"鎩","铪":"鉿","铫":"銚","铬":"鉻","铭":"銘","铮":"錚","铯":"銫","铰":"鉸","铱":"銥","铲":"鏟","铳":"銃","铴":"鐋","铵":"銨","银":"銀","铷":"銣","铸":"鑄","铹":"鐒","铺":"鋪","铻":"鋙","铼":"錸","铽":"鋱","链":"鏈","铿":"鏗","销":"銷","锁":"鎖","锂":"鋰","锃":"鋥","锄":"鋤","锅":"鍋","锆":"鋯","锇":"鋨","锈":"鏽","锉":"銼","锊":"鋝","锋":"鋒","锌":"鋅","锍":"鋶","锎":"鐦","锏":"鐧","锐":"銳","锑":"銻","锒":"鋃","锓":"鋟","锔":"鋦","锕":"錒","锖":"錆","锗":"鍺","锘":"鍩","错":"錯","锚":"錨","锛":"錛","锜":"錡","锝":"鍀","锞":"錁","锟":"錕","锠":"錩","锡":"錫","锢":"錮","锣":"鑼","锤":"錘","锥":"錐","锦":"錦","锧":"鑕","锨":"鍁","锩":"錈","锪":"鍃","锫":"錇","锬":"錟","锭":"錠","键":"鍵","锯":"鋸","锰":"錳","锱":"錙","锲":"鍥","锳":"鍈","锴":"鍇","锵":"鏘","锶":"鍶","锷":"鍔","锸":"鍤","锹":"鍬","锺":"鍾","锻":"鍛","锼":"鎪","锽":"鍠","锾":"鍰","锿":"鎄","镀":"鍍","镁":"鎂","镂":"鏤","镃":"鎡","镄":"鐨","镅":"鎇","镆":"鏌","镇":"鎮","镈":"鎛","镉":"鎘","镊":"鑷","镋":"钂","镌":"鐫","镍":"鎳","镎":"鎿","镏":"鎦","镐":"鎬","镑":"鎊","镒":"鎰","镓":"鎵","镔":"鑌","镕":"鎔","镖":"鏢","镗":"鏜","镘":"鏝","镙":"鏍","镚":"鏰","镛":"鏞","镜":"鏡","镝":"鏑","镞":"鏃","镟":"鏇","镠":"鏐","镡":"鐔","镢":"钁","镣":"鐐","镤":"鏷","镥":"鑥","镦":"鐓","镧":"鑭","镨":"鐠","镩":"鑹","镪":"鏹","镫":"鐙","镬":"鑊","镭":"鐳","镮":"鐶","镯":"鐲","镰":"鐮","镱":"鐿","镲":"鑔","镳":"鑣","镴":"鑞","镵":"鑱","镶":"鑲","长":"長","门":"門","闩":"閂","闪":"閃","闫":"閆","闬":"閈","闭":"閉","问":"問","闯":"闖","闰":"閏","闱":"闈","闲":"閒","闳":"閎","间":"間","闵":"閔","闶":"閌","闷":"悶","闸":"閘","闹":"鬧","闺":"閨","闻":"聞","闼":"闥","闽":"閩","闾":"閭","闿":"闓","阀":"閥","阁":"閣","阂":"閡","阃":"閫","阄":"鬮","阅":"閱","阆":"閬","阇":"闍","阈":"閾","阉":"閹","阊":"閶","阋":"鬩","阌":"閿","阍":"閽","阎":"閻","阏":"閼","阐":"闡","阑":"闌","阒":"闃","阓":"闠","阔":"闊","阕":"闋","阖":"闔","阗":"闐","阘":"闒","阙":"闕","阚":"闞","阛":"闤","队":"隊","阳":"陽","阴":"陰","阵":"陣","阶":"階","际":"際","陆":"陸","陇":"隴","陈":"陳","陉":"陘","陕":"陝","陦":"隯","陧":"隉","陨":"隕","险":"險","随":"隨","隐":"隱","隶":"隸","隽":"雋","难":"難","雇":"僱","雏":"雛","雕":"雕","雠":"讎","雳":"靂","雾":"霧","霁":"霽","霉":"黴","霡":"霢","霭":"靄","靓":"靚","靔":"靝","静":"靜","面":"面","靥":"靨","鞑":"韃","鞒":"鞽","鞯":"韉","鞲":"韝","韦":"韋","韧":"韌","韨":"韍","韩":"韓","韪":"韙","韫":"韞","韬":"韜","韵":"韻","页":"頁","顶":"頂","顷":"頃","顸":"頇","项":"項","顺":"順","须":"須","顼":"頊","顽":"頑","顾":"顧","顿":"頓","颀":"頎","颁":"頒","颂":"頌","颃":"頏","预":"預","颅":"顱","领":"領","颇":"頗","颈":"頸","颉":"頡","颊":"頰","颋":"頲","颌":"頜","颍":"潁","颎":"熲","颏":"頦","颐":"頤","频":"頻","颒":"頮","颓":"頹","颔":"頷","颕":"頴","颖":"穎","颗":"顆","题":"題","颙":"顒","颚":"顎","颛":"顓","颜":"顏","额":"額","颞":"顳","颟":"顢","颠":"顛","颡":"顙","颢":"顥","颣":"纇","颤":"顫","颥":"顬","颦":"顰","颧":"顴","风":"風","飏":"颺","飐":"颭","飑":"颮","飒":"颯","飓":"颶","飔":"颸","飕":"颼","飖":"颻","飗":"飀","飘":"飄","飙":"飆","飚":"飈","飞":"飛","飨":"饗","餍":"饜","饣":"飠","饤":"飣","饥":"飢","饦":"飥","饧":"餳","饨":"飩","饩":"餼","饪":"飪","饫":"飫","饬":"飭","饭":"飯","饮":"飲","饯":"餞","饰":"飾","饱":"飽","饲":"飼","饳":"飿","饴":"飴","饵":"餌","饶":"饒","饷":"餉","饸":"餄","饹":"餎","饺":"餃","饻":"餏","饼":"餅","饽":"餑","饾":"餖","饿":"餓","馀":"餘","馁":"餒","馂":"餕","馃":"餜","馄":"餛","馅":"餡","馆":"館","馇":"餷","馈":"饋","馉":"餶","馊":"餿","馋":"饞","馌":"饁","馍":"饃","馎":"餺","馏":"餾","馐":"饈","馑":"饉","馒":"饅","馓":"饊","馔":"饌","馕":"饢","马":"馬","驭":"馭","驮":"馱","驯":"馴","驰":"馳","驱":"驅","驲":"馹","驳":"駁","驴":"驢","驵":"駔","驶":"駛","驷":"駟","驸":"駙","驹":"駒","驺":"騶","驻":"駐","驼":"駝","驽":"駑","驾":"駕","驿":"驛","骀":"駘","骁":"驍","骂":"罵","骃":"駰","骄":"驕","骅":"驊","骆":"駱","骇":"駭","骈":"駢","骉":"驫","骊":"驪","骋":"騁","验":"驗","骍":"騂","骎":"駸","骏":"駿","骐":"騏","骑":"騎","骒":"騍","骓":"騅","骔":"騌","骕":"驌","骖":"驂","骗":"騙","骘":"騭","骙":"騤","骚":"騷","骛":"騖","骜":"驁","骝":"騮","骞":"騫","骟":"騸","骠":"驃","骡":"騾","骢":"驄","骣":"驏","骤":"驟","骥":"驥","骦":"驦","骧":"驤","髅":"髏","髋":"髖","髌":"髕","鬓":"鬢","鬶":"鬹","魇":"魘","魉":"魎","鱼":"魚","鱽":"魛","鱾":"魢","鱿":"魷","鲀":"魨","鲁":"魯","鲂":"魴","鲃":"䰾","鲄":"魺","鲅":"鮁","鲆":"鮃","鲇":"鮎","鲈":"鱸","鲉":"鮋","鲊":"鮓","鲋":"鮒","鲌":"鮊","鲍":"鮑","鲎":"鱟","鲏":"鮍","鲐":"鮐","鲑":"鮭","鲒":"鮚","鲓":"鮳","鲔":"鮪","鲕":"鮞","鲖":"鮦","鲗":"鰂","鲘":"鮜","鲙":"鱠","鲚":"鱭","鲛":"鮫","鲜":"鮮","鲝":"鮺","鲞":"鯗","鲟":"鱘","鲠":"鯁","鲡":"鱺","鲢":"鰱","鲣":"鰹","鲤":"鯉","鲥":"鰣","鲦":"鰷","鲧":"鯀","鲨":"鯊","鲩":"鯇","鲪":"鮶","鲫":"鯽","鲬":"鯒","鲭":"鯖","鲮":"鯪","鲯":"鯕","鲰":"鯫","鲱":"鯡","鲲":"鯤","鲳":"鯧","鲴":"鯝","鲵":"鯢","鲶":"鯰","鲷":"鯛","鲸":"鯨","鲹":"鰺","鲺":"鯴","鲻":"鯔","鲼":"鱝","鲽":"鰈","鲾":"鰏","鲿":"鱨","鳀":"鯷","鳁":"鰮","鳂":"鰃","鳃":"鰓","鳄":"鱷","鳅":"鰍","鳆":"鰒","鳇":"鰉","鳈":"鰁","鳉":"鱂","鳊":"鯿","鳋":"鰠","鳌":"鰲","鳍":"鰭","鳎":"鰨","鳏":"鰥","鳐":"鰩","鳑":"鰟","鳒":"鰜","鳓":"鰳","鳔":"鰾","鳕":"鱈","鳖":"鱉","鳗":"鰻","鳘":"鰵","鳙":"鱅","鳚":"䲁","鳛":"鰼","鳜":"鱖","鳝":"鱔","鳞":"鱗","鳟":"鱒","鳠":"鱯","鳡":"鱤","鳢":"鱧","鳣":"鱣","鳤":"䲘","鸟":"鳥","鸠":"鳩","鸡":"雞","鸢":"鳶","鸣":"鳴","鸤":"鳲","鸥":"鷗","鸦":"鴉","鸧":"鶬","鸨":"鴇","鸩":"鴆","鸪":"鴣","鸫":"鶇","鸬":"鸕","鸭":"鴨","鸮":"鴞","鸯":"鴦","鸰":"鴒","鸱":"鴟","鸲":"鴝","鸳":"鴛","鸴":"鷽","鸵":"鴕","鸶":"鷥","鸷":"鷙","鸸":"鴯","鸹":"鴰","鸺":"鵂","鸻":"鴴","鸼":"鵃","鸽":"鴿","鸾":"鸞","鸿":"鴻","鹀":"鵐","鹁":"鵓","鹂":"鸝","鹃":"鵑","鹄":"鵠","鹅":"鵝","鹆":"鵒","鹇":"鷳","鹈":"鵜","鹉":"鵡","鹊":"鵲","鹋":"鶓","鹌":"鵪","鹍":"鵾","鹎":"鵯","鹏":"鵬","鹐":"鵮","鹑":"鶉","鹒":"鶊","鹓":"鵷","鹔":"鷫","鹕":"鶘","鹖":"鶡","鹗":"鶚","鹘":"鶻","鹙":"鶖","鹚":"鷀","鹛":"鶥","鹜":"鶩","鹝":"鷊","鹞":"鷂","鹟":"鶲","鹠":"鶹","鹡":"鶺","鹢":"鷁","鹣":"鶼","鹤":"鶴","鹥":"鷖","鹦":"鸚","鹧":"鷓","鹨":"鷚","鹩":"鷯","鹪":"鷦","鹫":"鷲","鹬":"鷸","鹭":"鷺","鹮":"䴉","鹯":"鸇","鹰":"鷹","鹱":"鸌","鹲":"鸏","鹳":"鸛","鹴":"鸘","鹾":"鹺","麦":"麥","麸":"麩","麹":"麴","麺":"麪","麽":"麼","黄":"黃","黉":"黌","黡":"黶","黩":"黷","黪":"黲","黾":"黽","鼋":"黿","鼌":"鼂","鼍":"鼉","鼹":"鼴","齐":"齊","齑":"齏","齿":"齒","龀":"齔","龁":"齕","龂":"齗","龃":"齟","龄":"齡","龅":"齙","龆":"齠","龇":"齜","龈":"齦","龉":"齬","龊":"齪","龋":"齲","龌":"齷","龙":"龍","龚":"龔","龛":"龕","龟":"龜","鿎":"䃮","鿏":"䥑","鿒":"鿓","鿔":"鎶","𠀾":"𠁞","𠆲":"儣","𠆿":"𠌥","𠇹":"俓","𠉂":"㒓","𠉗":"𠏢","𠋆":"儭","𠚳":"𠠎","𠛅":"剾","𠛆":"𠞆","𠛾":"𪟖","𠡠":"勑","𠮶":"嗰","𠯟":"哯","𠯠":"噅","𠰱":"㘉","𠰷":"嚧","𠱞":"囃","𠲥":"𡅏","𠴛":"𡃕","𠴢":"𡄔","𠵸":"𡄣","𠵾":"㗲","𡋀":"𡓾","𡋗":"𡑭","𡋤":"壗","𡍣":"𡔖","𡒄":"壈","𡝠":"㜷","𡞋":"㜗","𡞱":"㜢","𡠟":"孎","𡥧":"孻","𡭜":"𡮉","𡭬":"𡮣","𡳃":"𡳳","𡳒":"𦘧","𡶴":"嵼","𡸃":"𡽗","𡺃":"嶈","𡺄":"嶘","𢋈":"㢝","𢗓":"㦛","𢘙":"𢤱","𢘝":"𢣚","𢘞":"𢣭","𢙏":"愻","𢙐":"憹","𢙑":"𢠼","𢙒":"憢","𢙓":"懀","𢛯":"㦎","𢠁":"懎","𢢐":"𤢻","𢧐":"戰","𢫊":"𢷮","𢫞":"𢶫","𢫬":"摋","𢬍":"擫","𢬦":"𢹿","𢭏":"擣","𢽾":"斅","𣃁":"斸","𣆐":"曥","𣈣":"𣋋","𣍨":"𦢈","𣍯":"腪","𣍰":"脥","𣎑":"臗","𣏢":"槫","𣐕":"桱","𣐤":"欍","𣑶":"𣠲","𣒌":"楇","𣓿":"橯","𣔌":"樤","𣗊":"樠","𣗋":"欓","𣗙":"㰙","𣘐":"㯤","𣘓":"𣞻","𣘴":"檭","𣘷":"𣝕","𣚚":"欘","𣞎":"𣠩","𣨼":"殢","𣭤":"𣯴","𣯣":"𣯩","𣱝":"氭","𣲗":"湋","𣲘":"潕","𣳆":"㵗","𣶩":"澅","𣶫":"𣿉","𣶭":"𪷓","𣷷":"𤅶","𣸣":"濆","𣺼":"灙","𣺽":"𤁣","𣽷":"瀃","𤆡":"熓","𤆢":"㷍","𤇃":"爄","𤇄":"熌","𤇭":"爖","𤇹":"熚","𤈶":"熉","𤈷":"㷿","𤊀":"𤒎","𤊰":"𤓩","𤋏":"熡","𤎺":"𤓎","𤎻":"𤑳","𤙯":"𤛮","𤝢":"𤢟","𤞃":"獩","𤞤":"玁","𤠋":"㺏","𤦀":"瓕","𤩽":"瓛","𤳄":"𤳸","𤶊":"癐","𤶧":"𤸫","𤻊":"㿗","𤽯":"㿧","𤾀":"皟","𤿲":"麬","𥁢":"䀉","𥅘":"𥌃","𥅴":"䀹","𥅿":"𥊝","𥆧":"瞤","𥇢":"䁪","𥎝":"䂎","𥐟":"礒","𥐯":"𥖅","𥐰":"𥕥","𥐻":"碙","𥞦":"𥞵","𥧂":"𥨐","𥩟":"竚","𥩺":"𥪂","𥫣":"籅","𥬀":"䉙","𥬞":"籋","𥬠":"篘","𥭉":"𥵊","𥮋":"𥸠","𥮜":"䉲","𥮾":"篸","𥱔":"𥵃","𥹥":"𥼽","𥺅":"䊭","𥺇":"𥽖","𦈈":"𥿊","𦈉":"緷","𦈋":"綇","𦈌":"綀","𦈎":"繟","𦈏":"緍","𦈐":"縺","𦈑":"緸","𦈒":"𦂅","𦈓":"䋿","𦈔":"縎","𦈕":"緰","𦈖":"䌈","𦈗":"𦃄","𦈘":"䌋","𦈙":"䌰","𦈚":"縬","𦈛":"繓","𦈜":"䌖","𦈝":"繏","𦈞":"䌟","𦈟":"䌝","𦈠":"䌥","𦈡":"繻","𦍠":"䍽","𦛨":"朥","𦝼":"膢","𦟗":"𦣎","𦨩":"𦪽","𦰏":"蓧","𦰴":"䕳","𦶟":"爇","𦶻":"𦾟","𦻕":"蘟","𧉐":"𧕟","𧉞":"䗿","𧌥":"𧎈","𧏖":"蠙","𧏗":"蠀","𧑏":"蠾","𧒭":"𧔥","𧜭":"䙱","𧝝":"襰","𧝧":"𧟀","𧮪":"詀","𧳕":"𧳟","𧹑":"䞈","𧹒":"買","𧹓":"𧶔","𧹔":"賬","𧹕":"𝻻","𧹖":"賟","𧹗":"贃","𧿈":"𨇁","𨀁":"躘","𨀱":"𨄣","𨁴":"𨅍","𨂺":"𨈊","𨄄":"𨈌","𨅛":"䠱","𨅫":"𨇞","𨅬":"躝","𨉗":"軉","𨐅":"軗","𨐆":"𨊻","𨐇":"𨏠","𨐈":"輄","𨐉":"𨎮","𨐊":"𨏥","𨑹":"䢨","𨟳":"𨣞","𨠨":"𨣧","𨡙":"𨢿","𨡺":"𨣈","𨤰":"𨤻","𨰾":"鎷","𨰿":"釳","𨱀":"𨥛","𨱁":"鈠","𨱂":"鈋","𨱃":"鈲","𨱄":"鈯","𨱅":"鉁","𨱆":"龯","𨱇":"銶","𨱈":"鋉","𨱉":"鍄","𨱊":"𨧱","𨱋":"錂","𨱌":"鏆","𨱍":"鎯","𨱎":"鍮","𨱏":"鎝","𨱐":"𨫒","𨱑":"鐄","𨱒":"鏉","𨱓":"鐎","𨱔":"鐏","𨱕":"𨮂","𨱖":"䥩","𨷿":"䦳","𨸀":"𨳕","𨸁":"𨳑","𨸂":"閍","𨸃":"閐","𨸄":"䦘","𨸅":"𨴗","𨸆":"𨵩","𨸇":"𨵸","𨸉":"𨶀","𨸊":"𨶏","𨸋":"𨶲","𨸌":"𨶮","𨸎":"𨷲","𨸘":"𨽏","𨸟":"䧢","𩏼":"䪏","𩏽":"𩏪","𩏾":"𩎢","𩏿":"䪘","𩐀":"䪗","𩓋":"顂","𩖕":"𩓣","𩖖":"顃","𩖗":"䫴","𩙥":"颰","𩙦":"𩗀","𩙧":"䬞","𩙨":"𩘹","𩙩":"𩘀","𩙪":"颷","𩙫":"颾","𩙬":"𩘺","𩙭":"𩘝","𩙮":"䬘","𩙯":"䬝","𩙰":"𩙈","𩟿":"𩚛","𩠀":"𩚥","𩠁":"𩚵","𩠂":"𩛆","𩠃":"𩛩","𩠅":"𩟐","𩠆":"𩜦","𩠇":"䭀","𩠈":"䭃","𩠉":"𩜇","𩠊":"𩜵","𩠋":"𩝔","𩠌":"餸","𩠎":"𩞄","𩠏":"𩞦","𩠠":"𩠴","𩡖":"𩡣","𩧦":"𩡺","𩧨":"駎","𩧩":"𩤊","𩧪":"䮾","𩧫":"駚","𩧬":"𩢡","𩧭":"䭿","𩧮":"𩢾","𩧯":"驋","𩧰":"䮝","𩧱":"𩥉","𩧲":"駧","𩧳":"𩢸","𩧴":"駩","𩧵":"𩢴","𩧶":"𩣏","𩧸":"𩣫","𩧺":"駶","𩧻":"𩣵","𩧼":"𩣺","𩧿":"䮠","𩨀":"騔","𩨁":"䮞","𩨂":"驄","𩨃":"騝","𩨄":"騪","𩨅":"𩤸","𩨆":"𩤙","𩨇":"䮫","𩨈":"騟","𩨉":"𩤲","𩨊":"騚","𩨋":"𩥄","𩨌":"𩥑","𩨍":"𩥇","𩨎":"龭","𩨏":"䮳","𩨐":"𩧆","𩩈":"䯤","𩬣":"𩭙","𩬤":"𩰀","𩭹":"鬖","𩯒":"𩯳","𩰰":"𩰹","𩲒":"𩳤","𩴌":"𩴵","𩽹":"魥","𩽺":"𩵩","𩽻":"𩵹","𩽼":"鯶","𩽽":"𩶱","𩽾":"鮟","𩽿":"𩶰","𩾁":"鯄","𩾂":"䲖","𩾃":"鮸","𩾄":"𩷰","𩾅":"𩸃","𩾆":"𩸦","𩾇":"鯱","𩾈":"䱙","𩾊":"䱬","𩾋":"䱰","𩾌":"鱇","𩾎":"𩽇","𪉂":"䲰","𪉃":"鳼","𪉄":"𩿪","𪉅":"𪀦","𪉆":"鴲","𪉈":"鴜","𪉉":"𪁈","𪉊":"鷨","𪉋":"𪀾","𪉌":"𪁖","𪉍":"鵚","𪉎":"𪂆","𪉏":"𪃏","𪉐":"𪃍","𪉑":"鷔","𪉒":"𪄕","𪉔":"𪄆","𪉕":"𪇳","𪎈":"䴬","𪎉":"麲","𪎊":"麨","𪎋":"䴴","𪎌":"麳","𪑅":"䵳","𪔭":"𪔵","𪚏":"𪘀","𪚐":"𪘯","𪜎":"𠿕","𪞝":"凙","𪟎":"㔋","𪟝":"勣","𪠀":"𧷎","𪠟":"㓄","𪠡":"𠬙","𪠳":"唓","𪠵":"㖮","𪠸":"嚛","𪠺":"𠽃","𪠽":"噹","𪡀":"嘺","𪡃":"嘪","𪡋":"噞","𪡏":"嗹","𪡛":"㗿","𪡞":"嘳","𪡺":"𡃄","𪢌":"㘓","𪢐":"𡃤","𪢒":"𡂡","𪢕":"嚽","𪢖":"𡅯","𪢠":"囒","𪢮":"圞","𪢸":"墲","𪣆":"埬","𪣒":"堚","𪣻":"塿","𪤄":"𡓁","𪤚":"壣","𪥠":"𧹈","𪥫":"孇","𪥰":"嬣","𪥿":"嬻","𪧀":"孾","𪧘":"寠","𪨊":"㞞","𪨗":"屩","𪨧":"崙","𪨩":"𡸗","𪨶":"輋","𪨷":"巗","𪨹":"𡹬","𪩇":"㟺","𪩎":"巊","𪩘":"巘","𪩛":"𡿖","𪩷":"幝","𪩸":"幩","𪪏":"廬","𪪑":"㢗","𪪞":"廧","𪪴":"𢍰","𪪼":"彃","𪫌":"徿","𪫡":"𢤩","𪫷":"㦞","𪫺":"憸","𪬚":"𢣐","𪬯":"𢤿","𪭝":"𢯷","𪭢":"摐","𪭧":"擟","𪭯":"𢶒","𪭵":"掚","𪭾":"撊","𪮃":"㨻","𪮋":"㩋","𪮖":"撧","𪮳":"𢺳","𪮶":"攋","𪯋":"㪎","𪰶":"曊","𪱥":"膹","𪱷":"梖","𪲎":"櫅","𪲔":"欐","𪲛":"檵","𪲮":"櫠","𪳍":"欇","𪳗":"𣜬","𪴙":"欑","𪵑":"毊","𪵣":"霼","𪵱":"濿","𪶄":"溡","𪶒":"𤄷","𪶮":"𣽏","𪷍":"㵾","𪷽":"灒","𪸕":"熂","𪸩":"煇","𪹀":"𤑹","𪹠":"𤓌","𪹳":"爥","𪹹":"𤒻","𪺣":"𤘀","𪺪":"𤜆","𪺭":"犞","𪺷":"獊","𪺸":"𤠮","𪺻":"㺜","𪺽":"猌","𪻐":"瑽","𪻨":"瓄","𪻲":"瑻","𪻺":"璝","𪼋":"㻶","𪼴":"𤬅","𪽈":"畼","𪽝":"𤳷","𪽪":"痮","𪽭":"𤷃","𪽮":"㿖","𪽴":"𤺔","𪽷":"瘱","𪾔":"盨","𪾢":"睍","𪾣":"眝","𪾦":"矑","𪾸":"矉","𪿊":"𥏝","𪿞":"𥖲","𪿫":"礮","𪿵":"𥗇","𫀌":"𥜰","𫀓":"𥜐","𫀨":"䅐","𫀬":"䅳","𫀮":"𥢷","𫁂":"䆉","𫁟":"竱","𫁡":"鴗","𫁱":"𥶽","𫁲":"䉑","𫁳":"𥯤","𫁷":"䉶","𫁺":"𥴼","𫂃":"簢","𫂆":"簂","𫂈":"䉬","𫂖":"𥴨","𫂿":"𥻦","𫃗":"𩏷","𫄙":"糺","𫄚":"䊺","𫄛":"紟","𫄜":"䋃","𫄝":"𥾯","𫄞":"䋔","𫄟":"絁","𫄠":"絙","𫄡":"絧","𫄢":"絥","𫄣":"繷","𫄤":"繨","𫄥":"纚","𫄦":"𦀖","𫄧":"綖","𫄨":"絺","𫄩":"䋦","𫄪":"𦅇","𫄫":"綟","𫄬":"緤","𫄭":"緮","𫄮":"䋼","𫄯":"𦃩","𫄰":"縍","𫄱":"繬","𫄲":"縸","𫄳":"縰","𫄴":"繂","𫄵":"𦅈","𫄶":"繈","𫄷":"繶","𫄸":"纁","𫄹":"纗","𫅅":"䍤","𫅗":"羵","𫅥":"𦒀","𫅭":"䎙","𫅼":"𦔖","𫆏":"聻","𫆝":"𦟼","𫆫":"𦡝","𫇘":"𦧺","𫇛":"艣","𫇪":"𦱌","𫇭":"蔿","𫇴":"蒭","𫇽":"蕽","𫈉":"蕳","𫈎":"葝","𫈟":"蔯","𫈵":"蕝","𫉁":"薆","𫉄":"藷","𫊪":"䗅","𫊮":"蠦","𫊸":"蟜","𫊹":"𧒯","𫊻":"蟳","𫋇":"蟂","𫋌":"蟘","𫋲":"䙔","𫋷":"襗","𫋹":"襓","𫋻":"襘","𫌀":"襀","𫌇":"襵","𫌋":"𧞫","𫌨":"覼","𫌪":"覛","𫌫":"𧡴","𫌬":"𧢄","𫌭":"覹","𫌯":"䚩","𫍐":"𧭹","𫍙":"訑","𫍚":"訞","𫍛":"訜","𫍜":"詓","𫍝":"諫","𫍞":"𧦝","𫍟":"𧦧","𫍠":"䛄","𫍡":"詑","𫍢":"譊","𫍣":"詷","𫍤":"譑","𫍥":"誂","𫍦":"譨","𫍧":"誺","𫍨":"誫","𫍩":"諣","𫍪":"誋","𫍫":"䛳","𫍬":"誷","𫍭":"𧩕","𫍮":"誳","𫍯":"諴","𫍰":"諰","𫍱":"諯","𫍲":"謏","𫍳":"諥","𫍴":"謱","𫍵":"謸","𫍶":"𧩼","𫍷":"謉","𫍸":"謆","𫍹":"謯","𫍺":"𧫝","𫍻":"譆","𫍼":"𧬤","𫍽":"譞","𫍾":"𧭈","𫍿":"譾","𫎆":"豵","𫎌":"貗","𫎦":"贚","𫎧":"䝭","𫎨":"𧸘","𫎩":"賝","𫎪":"䞋","𫎫":"贉","𫎬":"贑","𫎭":"䞓","𫎱":"䟐","𫎳":"䟆","𫎸":"𧽯","𫎺":"䟃","𫏃":"䠆","𫏆":"蹳","𫏋":"蹻","𫏌":"𨂐","𫏐":"蹔","𫏑":"𨇽","𫏕":"𨆪","𫏞":"𨇰","𫏨":"𨇤","𫐄":"軏","𫐅":"軕","𫐆":"轣","𫐇":"軜","𫐈":"軷","𫐉":"軨","𫐊":"軬","𫐋":"𨎌","𫐌":"軿","𫐍":"𨌈","𫐎":"輢","𫐏":"輖","𫐐":"輗","𫐑":"輨","𫐒":"輷","𫐓":"輮","𫐔":"𨍰","𫐕":"轊","𫐖":"轇","𫐗":"轐","𫐘":"轗","𫐙":"轠","𫐷":"遱","𫑘":"鄟","𫑡":"鄳","𫑷":"醶","𫓥":"釟","𫓦":"釨","𫓧":"鈇","𫓨":"鈛","𫓩":"鏦","𫓪":"鈆","𫓫":"𨥟","𫓬":"鉔","𫓭":"鉠","𫓮":"𨪕","𫓯":"銈","𫓰":"銊","𫓱":"鐈","𫓲":"銁","𫓳":"𨰋","𫓴":"鉾","𫓵":"鋠","𫓶":"鋗","𫓷":"𫒡","𫓸":"錽","𫓹":"錤","𫓺":"鐪","𫓻":"錜","𫓼":"𨨛","𫓽":"錝","𫓾":"錥","𫓿":"𨨢","𫔀":"鍊","𫔁":"鐼","𫔂":"鍉","𫔃":"𨰲","𫔄":"鍒","𫔅":"鎍","𫔆":"䥯","𫔇":"鎞","𫔈":"鎙","𫔉":"𨰃","𫔊":"鏥","𫔋":"䥗","𫔌":"鏾","𫔍":"鐇","𫔎":"鐍","𫔏":"𨬖","𫔐":"𨭸","𫔑":"𨭖","𫔒":"𨮳","𫔓":"𨯟","𫔔":"鑴","𫔕":"𨰥","𫔖":"𨲳","𫔭":"開","𫔮":"閒","𫔯":"閗","𫔰":"閞","𫔲":"𨴹","𫔴":"閵","𫔵":"䦯","𫔶":"闑","𫔽":"𨼳","𫕚":"𩀨","𫕥":"霣","𫕨":"𩅙","𫖃":"靧","𫖅":"䪊","𫖇":"鞾","𫖑":"𩎖","𫖒":"韠","𫖓":"𩏂","𫖔":"韛","𫖕":"韝","𫖖":"𩏠","𫖪":"𩑔","𫖫":"䪴","𫖬":"䪾","𫖭":"𩒎","𫖮":"顗","𫖯":"頫","𫖰":"䫂","𫖱":"䫀","𫖲":"䫟","𫖳":"頵","𫖴":"𩔳","𫖵":"𩓥","𫖶":"顅","𫖷":"𩔑","𫖸":"願","𫖹":"顣","𫖺":"䫶","𫗇":"䫻","𫗈":"𩗓","𫗉":"𩗴","𫗊":"䬓","𫗋":"飋","𫗚":"𩟗","𫗞":"飦","𫗟":"䬧","𫗠":"餦","𫗡":"𩚩","𫗢":"飵","𫗣":"飶","𫗤":"𩛌","𫗥":"餫","𫗦":"餔","𫗧":"餗","𫗨":"𩛡","𫗩":"饠","𫗪":"餧","𫗫":"餬","𫗬":"餪","𫗭":"餵","𫗮":"餭","𫗯":"餱","𫗰":"䭔","𫗱":"䭑","𫗳":"𩝽","𫗴":"饘","𫗵":"饟","𫘛":"馯","𫘜":"馼","𫘝":"駃","𫘞":"駞","𫘟":"駊","𫘠":"駤","𫘡":"駫","𫘣":"駻","𫘤":"騃","𫘥":"騉","𫘦":"騊","𫘧":"騄","𫘨":"騠","𫘩":"騜","𫘪":"騵","𫘫":"騴","𫘬":"騱","𫘭":"騻","𫘮":"䮰","𫘯":"驓","𫘰":"驙","𫘱":"驨","𫘽":"鬠","𫙂":"𩯁","𫚈":"鱮","𫚉":"魟","𫚊":"鰑","𫚋":"鱄","𫚌":"魦","𫚍":"魵","𫚎":"𩶁","𫚏":"䱁","𫚐":"䱀","𫚑":"鮅","𫚒":"鮄","𫚓":"鮤","𫚔":"鮰","𫚕":"鰤","𫚖":"鮆","𫚗":"鮯","𫚘":"𩻮","𫚙":"鯆","𫚚":"鮿","𫚛":"鮵","𫚜":"䲅","𫚝":"𩸄","𫚞":"鯬","𫚟":"𩸡","𫚠":"䱧","𫚡":"鯞","𫚢":"鰋","𫚣":"鯾","𫚤":"鰦","𫚥":"鰕","𫚦":"鰫","𫚧":"鰽","𫚨":"𩻗","𫚩":"𩻬","𫚪":"鱊","𫚫":"鱢","𫚬":"𩼶","𫚭":"鱲","𫛚":"鳽","𫛛":"鳷","𫛜":"鴀","𫛝":"鴅","𫛞":"鴃","𫛟":"鸗","𫛠":"𩿤","𫛡":"鴔","𫛢":"鸋","𫛣":"鴥","𫛤":"鴐","𫛥":"鵊","𫛦":"鴮","𫛧":"𪀖","𫛨":"鵧","𫛩":"鴳","𫛪":"鴽","𫛫":"鶰","𫛬":"䳜","𫛭":"鵟","𫛮":"䳤","𫛯":"鶭","𫛰":"䳢","𫛱":"鵫","𫛲":"鵰","𫛳":"鵩","𫛴":"鷤","𫛵":"鶌","𫛶":"鶒","𫛷":"鶦","𫛸":"鶗","𫛹":"𪃧","𫛺":"䳧","𫛻":"𪃒","𫛼":"䳫","𫛽":"鷅","𫛾":"𪆷","𫜀":"鷐","𫜁":"鷩","𫜂":"𪅂","𫜃":"鷣","𫜄":"鷷","𫜅":"䴋","𫜊":"𪉸","𫜑":"麷","𫜒":"䴱","𫜓":"𪌭","𫜔":"䴽","𫜕":"𪍠","𫜙":"䵴","𫜟":"𪓰","𫜨":"𪶕","𫜩":"齧","𫜪":"齩","𫜫":"𫜦","𫜬":"齰","𫜭":"齭","𫜮":"齴","𫜯":"𪙏","𫜰":"齾","𫜲":"龓","𫜳":"䶲","𫝈":"㑮","𫝋":"𠐊","𫝦":"㛝","𫝧":"㜐","𫝨":"媈","𫝩":"嬦","𫝪":"𡟫","𫝫":"婡","𫝬":"嬇","𫝭":"孆","𫝮":"孄","𫝵":"嶹","𫞅":"𦠅","𫞗":"潣","𫞚":"澬","𫞛":"㶆","𫞝":"灍","𫞠":"爧","𫞡":"爃","𫞢":"𤛱","𫞣":"㹽","𫞥":"珼","𫞦":"璾","𫞧":"𤩂","𫞨":"璼","𫞩":"璊","𫞷":"𥢶","𫟃":"絍","𫟄":"綋","𫟅":"綡","𫟆":"緟","𫟇":"𦆲","𫟑":"䖅","𫟕":"䕤","𫟞":"訨","𫟟":"詊","𫟠":"譂","𫟡":"誴","𫟢":"䜖","𫟤":"䡐","𫟥":"䡩","𫟦":"䡵","𫟫":"𨞺","𫟬":"𨟊","𫟲":"釚","𫟳":"釲","𫟴":"鈖","𫟵":"鈗","𫟶":"銏","𫟷":"鉝","𫟸":"鉽","𫟹":"鉷","𫟺":"䤤","𫟻":"銂","𫟼":"鐽","𫟽":"𨧰","𫟾":"𨩰","𫟿":"鎈","𫠀":"䥄","𫠁":"鑉","𫠂":"閝","𫠅":"韚","𫠆":"頍","𫠇":"𩖰","𫠈":"䫾","𫠊":"䮄","𫠋":"騼","𫠌":"𩦠","𫠏":"𩵦","𫠐":"魽","𫠑":"䱸","𫠒":"鱆","𫠖":"𩿅","𫠜":"齯","𫢸":"僤","𫧃":"𣍐","𫧮":"𪋿","𫫇":"噁","𫬐":"㘔","𫭟":"塸","𫭢":"埨","𫭼":"𡑍","𫮃":"墠","𫰛":"娙","𫵷":"㠣","𫶇":"嵽","𫷷":"廞","𫸩":"彄","𬀩":"暐","𬀪":"晛","𬂩":"梜","𬃊":"櫍","𬇕":"澫","𬇙":"浿","𬇹":"漍","𬉼":"熰","𬊈":"燖","𬊤":"燀","𬍛":"瓅","𬍡":"璗","𬍤":"璕","𬒈":"礐","𬒗":"𥗽","𬕂":"篢","𬘓":"紃","𬘘":"紞","𬘡":"絪","𬘩":"綎","𬘫":"綄","𬘬":"綪","𬘭":"綝","𬘯":"綧","𬙂":"縯","𬙊":"纆","𬙋":"纕","𬜬":"蔄","𬜯":"䓣","𬞟":"蘋","𬟁":"虉","𬟽":"蝀","𬣙":"訏","𬣞":"詝","𬣡":"諓","𬣳":"詪","𬤇":"諲","𬤊":"諟","𬤝":"譓","𬨂":"軝","𬨎":"輶","𬩽":"鄩","𬪩":"醲","𬬩":"釴","𬬭":"錀","𬬮":"鋹","𬬱":"釿","𬬸":"鉥","𬬹":"鉮","𬬻":"鑪","𬬿":"鉊","𬭁":"鉧","𬭊":"𨧀","𬭎":"鋐","𬭚":"錞","𬭛":"𨨏","𬭤":"鍭","𬭩":"鎓","𬭬":"鏏","𬭭":"鏚","𬭯":"䥕","𬭳":"𨭎","𬭶":"𨭆","𬭸":"鏻","𬭼":"鐩","𬮱":"闉","𬮿":"隑","𬯀":"隮","𬯎":"隤","𬱖":"頔","𬱟":"頠","𬳵":"駓","𬳶":"駉","𬳽":"駪","𬳿":"駼","𬴂":"騑","𬴃":"騞","𬴊":"驎","𬶋":"鮈","𬶍":"鮀","𬶏":"鮠","𬶐":"鮡","𬶟":"鯻","𬶠":"鰊","𬶨":"鱀","𬶭":"鰶","𬶮":"鱚","𬷕":"鵏","𬸘":"鶠","𬸚":"鸑","𬸣":"鶱","𬸦":"鷟","𬸪":"鷭","𬸯":"鷿","𬹼":"齘","𬺈":"齮","𬺓":"齼","𰬸":"繐","𰰨":"菕","𰶎":"譅","𰾄":"鋂","𰾭":"鑀","𱊜":"𪈼"},h={"㑮":"𫝈","㑯":"㑔","㑳":"㑇","㑶":"㐹","㒓":"𠉂","㓄":"𪠟","㓨":"刾","㔋":"𪟎","㖮":"𪠵","㗲":"𠵾","㗿":"𪡛","㘉":"𠰱","㘓":"𪢌","㘔":"𫬐","㘚":"㘎","㛝":"𫝦","㜄":"㚯","㜏":"㛣","㜐":"𫝧","㜗":"𡞋","㜢":"𡞱","㜷":"𡝠","㞞":"𪨊","㟺":"𪩇","㠏":"㟆","㠣":"𫵷","㢗":"𪪑","㢝":"𢋈","㥮":"㤘","㦎":"𢛯","㦛":"𢗓","㦞":"𪫷","㨻":"𪮃","㩋":"𪮋","㩜":"㨫","㩳":"㧐","㩵":"擜","㪎":"𪯋","㯤":"𣘐","㰙":"𣗙","㵗":"𣳆","㵾":"𪷍","㶆":"𫞛","㷍":"𤆢","㷿":"𤈷","㸇":"𤎺","㹽":"𫞣","㺏":"𤠋","㺜":"𪺻","㻶":"𪼋","㿖":"𪽮","㿗":"𤻊","㿧":"𤽯","䀉":"𥁢","䀹":"𥅴","䁪":"𥇢","䁻":"䀥","䂎":"𥎝","䃮":"鿎","䅐":"𫀨","䅳":"𫀬","䆉":"𫁂","䉑":"𫁲","䉙":"𥬀","䉬":"𫂈","䉲":"𥮜","䉶":"𫁷","䊭":"𥺅","䊷":"䌶","䊺":"𫄚","䋃":"𫄜","䋔":"𫄞","䋙":"䌺","䋚":"䌻","䋦":"𫄩","䋹":"䌿","䋻":"䌾","䋼":"𫄮","䋿":"𦈓","䌈":"𦈖","䌋":"𦈘","䌖":"𦈜","䌝":"𦈟","䌟":"𦈞","䌥":"𦈠","䌰":"𦈙","䍤":"𫅅","䍦":"䍠","䍽":"𦍠","䎙":"𫅭","䎱":"䎬","䓣":"𬜯","䕤":"𫟕","䕳":"𦰴","䖅":"𫟑","䗅":"𫊪","䗿":"𧉞","䙔":"𫋲","䙡":"䙌","䙱":"𧜭","䚩":"𫌯","䛄":"𫍠","䛳":"𫍫","䜀":"䜧","䜖":"𫟢","䝭":"𫎧","䝻":"𧹕","䝼":"䞍","䞈":"𧹑","䞋":"𫎪","䞓":"𫎭","䟃":"𫎺","䟆":"𫎳","䟐":"𫎱","䠆":"𫏃","䠱":"𨅛","䡐":"𫟤","䡩":"𫟥","䡵":"𫟦","䢨":"𨑹","䤤":"𫟺","䥄":"𫠀","䥇":"䦂","䥑":"鿏","䥕":"𬭯","䥗":"𫔋","䥩":"𨱖","䥯":"𫔆","䥱":"䥾","䦘":"𨸄","䦛":"䦶","䦟":"䦷","䦯":"𫔵","䦳":"𨷿","䧢":"𨸟","䪊":"𫖅","䪏":"𩏼","䪗":"𩐀","䪘":"𩏿","䪴":"𫖫","䪾":"𫖬","䫀":"𫖱","䫂":"𫖰","䫟":"𫖲","䫴":"𩖗","䫶":"𫖺","䫻":"𫗇","䫾":"𫠈","䬓":"𫗊","䬘":"𩙮","䬝":"𩙯","䬞":"𩙧","䬧":"𫗟","䭀":"𩠇","䭃":"𩠈","䭑":"𫗱","䭔":"𫗰","䭿":"𩧭","䮄":"𫠊","䮝":"𩧰","䮞":"𩨁","䮠":"𩧿","䮫":"𩨇","䮰":"𫘮","䮳":"𩨏","䮾":"𩧪","䯀":"䯅","䯤":"𩩈","䰾":"鲃","䱀":"𫚐","䱁":"𫚏","䱙":"𩾈","䱧":"𫚠","䱬":"𩾊","䱰":"𩾋","䱷":"䲣","䱸":"𫠑","䱽":"䲝","䲁":"鳚","䲅":"𫚜","䲖":"𩾂","䲘":"鳤","䲰":"𪉂","䳜":"𫛬","䳢":"𫛰","䳤":"𫛮","䳧":"𫛺","䳫":"𫛼","䴉":"鹮","䴋":"𫜅","䴬":"𪎈","䴱":"𫜒","䴴":"𪎋","䴽":"𫜔","䵳":"𪑅","䵴":"𫜙","䶕":"𫜨","䶲":"𫜳","丟":"丢","並":"并","乾":"干","亂":"乱","亙":"亘","亞":"亚","佇":"伫","佈":"布","佔":"占","併":"并","來":"来","侖":"仑","侶":"侣","侷":"局","俁":"俣","係":"系","俓":"𠇹","俔":"伣","俠":"侠","俥":"伡","俬":"私","倀":"伥","倆":"俩","倈":"俫","倉":"仓","個":"个","們":"们","倖":"幸","倫":"伦","倲":"㑈","偉":"伟","偑":"㐽","側":"侧","偵":"侦","偽":"伪","傌":"㐷","傑":"杰","傖":"伧","傘":"伞","備":"备","傢":"家","傭":"佣","傯":"偬","傳":"传","傴":"伛","債":"债","傷":"伤","傾":"倾","僂":"偻","僅":"仅","僉":"佥","僑":"侨","僕":"仆","僞":"伪","僤":"𫢸","僥":"侥","僨":"偾","僱":"雇","價":"价","儀":"仪","儁":"俊","儂":"侬","億":"亿","儈":"侩","儉":"俭","儎":"","儐":"","儔":"俦","儕":"侪","儘":"尽","償":"偿","儣":"𠆲","優":"优","儭":"𠋆","儲":"储","儷":"俪","儸":"㑩","儺":"傩","儻":"傥","儼":"俨","兇":"凶","兌":"兑","兒":"儿","兗":"兖","內":"内","兩":"两","冊":"册","冑":"胄","冪":"幂","凈":"净","凍":"冻","凙":"𪞝","凜":"凛","凱":"凯","別":"别","刪":"删","剄":"刭","則":"则","剋":"克","剎":"刹","剗":"刬","剛":"刚","剝":"剥","剮":"剐","剴":"剀","創":"创","剷":"铲","剾":"𠛅","劃":"划","劇":"剧","劉":"刘","劊":"刽","劌":"刿","劍":"剑","劏":"㓥","劑":"剂","劚":"㔉","勁":"劲","勑":"𠡠","動":"动","務":"务","勛":"勋","勝":"胜","勞":"劳","勢":"势","勣":"𪟝","勩":"勚","勱":"劢","勳":"勋","勵":"励","勸":"劝","勻":"匀","匭":"匦","匯":"汇","匱":"匮","區":"区","協":"协","卹":"恤","卻":"却","卽":"即","厙":"厍","厠":"厕","厤":"历","厭":"厌","厲":"厉","厴":"厣","參":"参","叄":"叁","叢":"丛","吒":"咤","吳":"吴","吶":"呐","呂":"吕","咼":"呙","員":"员","哯":"𠯟","唄":"呗","唓":"𪠳","唸":"念","問":"问","啓":"启","啞":"哑","啟":"启","啢":"唡","喎":"㖞","喚":"唤","喪":"丧","喫":"吃","喬":"乔","單":"单","喲":"哟","嗆":"呛","嗇":"啬","嗊":"唝","嗎":"吗","嗚":"呜","嗩":"唢","嗰":"𠮶","嗶":"哔","嗹":"𪡏","嘆":"叹","嘍":"喽","嘓":"啯","嘔":"呕","嘖":"啧","嘗":"尝","嘜":"唛","嘩":"哗","嘪":"𪡃","嘮":"唠","嘯":"啸","嘰":"叽","嘳":"𪡞","嘵":"哓","嘸":"呒","嘺":"𪡀","嘽":"啴","噁":"恶","噅":"𠯠","噓":"嘘","噚":"㖊","噝":"咝","噞":"𪡋","噠":"哒","噥":"哝","噦":"哕","噯":"嗳","噲":"哙","噴":"喷","噸":"吨","噹":"当","嚀":"咛","嚇":"吓","嚌":"哜","嚐":"尝","嚕":"噜","嚙":"啮","嚛":"𪠸","嚥":"咽","嚦":"呖","嚧":"𠰷","嚨":"咙","嚮":"向","嚲":"亸","嚳":"喾","嚴":"严","嚶":"嘤","嚽":"𪢕","囀":"啭","囁":"嗫","囂":"嚣","囃":"𠱞","囅":"冁","囈":"呓","囉":"啰","囌":"苏","囑":"嘱","囒":"𪢠","囪":"囱","圇":"囵","國":"国","圍":"围","園":"园","圓":"圆","圖":"图","團":"团","圞":"𪢮","垻":"坝","埡":"垭","埨":"𫭢","埬":"𪣆","埰":"采","執":"执","堅":"坚","堊":"垩","堖":"垴","堚":"𪣒","堝":"埚","堯":"尧","報":"报","場":"场","塊":"块","塋":"茔","塏":"垲","塒":"埘","塗":"涂","塚":"冢","塢":"坞","塤":"埙","塵":"尘","塸":"𫭟","塹":"堑","塿":"𪣻","墊":"垫","墜":"坠","墠":"𫮃","墮":"堕","墰":"坛","墲":"𪢸","墳":"坟","墶":"垯","墻":"墙","墾":"垦","壇":"坛","壈":"𡒄","壋":"垱","壎":"埙","壓":"压","壗":"𡋤","壘":"垒","壙":"圹","壚":"垆","壜":"坛","壞":"坏","壟":"垄","壠":"垅","壢":"坜","壣":"𪤚","壩":"坝","壪":"塆","壯":"壮","壺":"壶","壼":"壸","壽":"寿","夠":"够","夢":"梦","夥":"伙","夾":"夹","奐":"奂","奧":"奥","奩":"奁","奪":"夺","奬":"奖","奮":"奋","奼":"姹","妝":"妆","姍":"姗","姦":"奸","娙":"𫰛","娛":"娱","婁":"娄","婡":"𫝫","婦":"妇","婭":"娅","媈":"𫝨","媧":"娲","媯":"妫","媰":"㛀","媼":"媪","媽":"妈","嫋":"袅","嫗":"妪","嫵":"妩","嫺":"娴","嫻":"娴","嫿":"婳","嬀":"妫","嬃":"媭","嬇":"𫝬","嬈":"娆","嬋":"婵","嬌":"娇","嬙":"嫱","嬡":"嫒","嬣":"𪥰","嬤":"嬷","嬦":"𫝩","嬪":"嫔","嬰":"婴","嬸":"婶","嬻":"𪥿","孃":"娘","孄":"𫝮","孆":"𫝭","孇":"𪥫","孋":"㛤","孌":"娈","孎":"𡠟","孫":"孙","學":"学","孻":"𡥧","孾":"𪧀","孿":"孪","宮":"宫","寀":"采","寠":"𪧘","寢":"寝","實":"实","寧":"宁","審":"审","寫":"写","寬":"宽","寵":"宠","寶":"宝","將":"将","專":"专","尋":"寻","對":"对","導":"导","尷":"尴","屆":"届","屍":"尸","屓":"屃","屜":"屉","屢":"屡","層":"层","屨":"屦","屩":"𪨗","屬":"属","岡":"冈","峯":"峰","峴":"岘","島":"岛","峽":"峡","崍":"崃","崑":"昆","崗":"岗","崙":"仑","崢":"峥","崬":"岽","嵐":"岚","嵗":"岁","嵼":"𡶴","嵽":"𫶇","嵾":"㟥","嶁":"嵝","嶄":"崭","嶇":"岖","嶈":"𡺃","嶔":"嵚","嶗":"崂","嶘":"𡺄","嶠":"峤","嶢":"峣","嶧":"峄","嶨":"峃","嶮":"崄","嶸":"嵘","嶹":"𫝵","嶺":"岭","嶼":"屿","嶽":"岳","巊":"𪩎","巋":"岿","巒":"峦","巔":"巅","巖":"岩","巗":"𪨷","巘":"𪩘","巰":"巯","巹":"卺","帥":"帅","師":"师","帳":"帐","帶":"带","幀":"帧","幃":"帏","幓":"㡎","幗":"帼","幘":"帻","幝":"𪩷","幟":"帜","幣":"币","幩":"𪩸","幫":"帮","幬":"帱","幹":"干","幾":"几","庫":"库","廁":"厕","廂":"厢","廄":"厩","廈":"厦","廎":"庼","廕":"荫","廚":"厨","廝":"厮","廞":"𫷷","廟":"庙","廠":"厂","廡":"庑","廢":"废","廣":"广","廧":"𪪞","廩":"廪","廬":"庐","廳":"厅","弒":"弑","弔":"吊","弳":"弪","張":"张","強":"强","彃":"𪪼","彄":"𫸩","彆":"别","彈":"弹","彌":"弥","彎":"弯","彔":"录","彙":"汇","彠":"彟","彥":"彦","彫":"雕","彲":"彨","彷":"彷","彿":"佛","後":"后","徑":"径","從":"从","徠":"徕","復":"复","徵":"征","徹":"彻","徿":"𪫌","恆":"恒","恥":"耻","悅":"悦","悞":"悮","悵":"怅","悶":"闷","悽":"凄","惡":"恶","惱":"恼","惲":"恽","惻":"恻","愛":"爱","愜":"惬","愨":"悫","愴":"怆","愷":"恺","愻":"𢙏","愾":"忾","慄":"栗","態":"态","慍":"愠","慘":"惨","慚":"惭","慟":"恸","慣":"惯","慤":"悫","慪":"怄","慫":"怂","慮":"虑","慳":"悭","慶":"庆","慺":"㥪","慼":"戚","慾":"欲","憂":"忧","憊":"惫","憐":"怜","憑":"凭","憒":"愦","憖":"慭","憚":"惮","憢":"𢙒","憤":"愤","憫":"悯","憮":"怃","憲":"宪","憶":"忆","憸":"𪫺","憹":"𢙐","懀":"𢙓","懇":"恳","應":"应","懌":"怿","懍":"懔","懎":"𢠁","懞":"蒙","懟":"怼","懣":"懑","懤":"㤽","懨":"恹","懲":"惩","懶":"懒","懷":"怀","懸":"悬","懺":"忏","懼":"惧","懾":"慑","戀":"恋","戇":"戆","戔":"戋","戧":"戗","戩":"戬","戰":"战","戱":"戯","戲":"戏","戶":"户","拋":"抛","挩":"捝","挱":"挲","挾":"挟","捨":"舍","捫":"扪","捱":"挨","捲":"卷","掃":"扫","掄":"抡","掆":"㧏","掗":"挜","掙":"挣","掚":"𪭵","掛":"挂","採":"采","揀":"拣","揚":"扬","換":"换","揮":"挥","揯":"搄","損":"损","搖":"摇","搗":"捣","搵":"揾","搶":"抢","摋":"𢫬","摐":"𪭢","摑":"掴","摜":"掼","摟":"搂","摯":"挚","摳":"抠","摶":"抟","摺":"折","摻":"掺","撈":"捞","撊":"𪭾","撏":"挦","撐":"撑","撓":"挠","撝":"㧑","撟":"挢","撣":"掸","撥":"拨","撧":"𪮖","撫":"抚","撲":"扑","撳":"揿","撻":"挞","撾":"挝","撿":"捡","擁":"拥","擄":"掳","擇":"择","擊":"击","擋":"挡","擓":"㧟","擔":"担","據":"据","擟":"𪭧","擠":"挤","擣":"捣","擫":"𢬍","擬":"拟","擯":"摈","擰":"拧","擱":"搁","擲":"掷","擴":"扩","擷":"撷","擺":"摆","擻":"擞","擼":"撸","擽":"㧰","擾":"扰","攄":"摅","攆":"撵","攋":"𪮶","攏":"拢","攔":"拦","攖":"撄","攙":"搀","攛":"撺","攜":"携","攝":"摄","攢":"攒","攣":"挛","攤":"摊","攪":"搅","攬":"揽","敎":"教","敓":"敚","敗":"败","敘":"叙","敵":"敌","數":"数","斂":"敛","斃":"毙","斅":"𢽾","斆":"敩","斕":"斓","斬":"斩","斷":"断","斸":"𣃁","於":"于","旂":"旗","旣":"既","昇":"升","時":"时","晉":"晋","晛":"𬀪","晝":"昼","暈":"晕","暉":"晖","暐":"𬀩","暘":"旸","暢":"畅","暫":"暂","曄":"晔","曆":"历","曇":"昙","曉":"晓","曊":"𪰶","曏":"向","曖":"暧","曠":"旷","曥":"𣆐","曨":"昽","曬":"晒","書":"书","會":"会","朥":"𦛨","朧":"胧","朮":"术","東":"东","枴":"拐","柵":"栅","柺":"拐","査":"查","桱":"𣐕","桿":"杆","梔":"栀","梖":"𪱷","梘":"枧","梜":"𬂩","條":"条","梟":"枭","梲":"棁","棄":"弃","棊":"棋","棖":"枨","棗":"枣","棟":"栋","棡":"㭎","棧":"栈","棲":"栖","棶":"梾","椏":"桠","椲":"㭏","楇":"𣒌","楊":"杨","楓":"枫","楨":"桢","業":"业","極":"极","榘":"矩","榦":"干","榪":"杩","榮":"荣","榲":"榅","榿":"桤","構":"构","槍":"枪","槓":"杠","槤":"梿","槧":"椠","槨":"椁","槫":"𣏢","槮":"椮","槳":"桨","槶":"椢","槼":"椝","樁":"桩","樂":"乐","樅":"枞","樑":"梁","樓":"楼","標":"标","樞":"枢","樠":"𣗊","樢":"㭤","樣":"样","樤":"𣔌","樧":"榝","樫":"㭴","樳":"桪","樸":"朴","樹":"树","樺":"桦","樿":"椫","橈":"桡","橋":"桥","機":"机","橢":"椭","橫":"横","橯":"𣓿","檁":"檩","檉":"柽","檔":"档","檜":"桧","檟":"槚","檢":"检","檣":"樯","檭":"𣘴","檮":"梼","檯":"台","檳":"槟","檵":"𪲛","檸":"柠","檻":"槛","櫃":"柜","櫅":"𪲎","櫍":"𬃊","櫓":"橹","櫚":"榈","櫛":"栉","櫝":"椟","櫞":"橼","櫟":"栎","櫠":"𪲮","櫥":"橱","櫧":"槠","櫨":"栌","櫪":"枥","櫫":"橥","櫬":"榇","櫱":"蘖","櫳":"栊","櫸":"榉","櫻":"樱","欄":"栏","欅":"榉","欇":"𪳍","權":"权","欍":"𣐤","欏":"椤","欐":"𪲔","欑":"𪴙","欒":"栾","欓":"𣗋","欖":"榄","欘":"𣚚","欞":"棂","欽":"钦","歎":"叹","歐":"欧","歟":"欤","歡":"欢","歲":"岁","歷":"历","歸":"归","歿":"殁","殘":"残","殞":"殒","殢":"𣨼","殤":"殇","殨":"㱮","殫":"殚","殭":"僵","殮":"殓","殯":"殡","殰":"㱩","殲":"歼","殺":"杀","殻":"壳","殼":"壳","毀":"毁","毆":"殴","毊":"𪵑","毿":"毵","氂":"牦","氈":"毡","氌":"氇","氣":"气","氫":"氢","氬":"氩","氭":"𣱝","氳":"氲","氾":"泛","汎":"泛","汙":"污","決":"决","沒":"没","沖":"冲","況":"况","泝":"溯","洩":"泄","洶":"汹","浹":"浃","浿":"𬇙","涇":"泾","涗":"涚","涼":"凉","淒":"凄","淚":"泪","淥":"渌","淨":"净","淩":"凌","淪":"沦","淵":"渊","淶":"涞","淺":"浅","渙":"涣","減":"减","渢":"沨","渦":"涡","測":"测","渾":"浑","湊":"凑","湋":"𣲗","湞":"浈","湧":"涌","湯":"汤","溈":"沩","準":"准","溝":"沟","溡":"𪶄","溫":"温","溮":"浉","溳":"涢","溼":"湿","滄":"沧","滅":"灭","滌":"涤","滎":"荥","滙":"汇","滬":"沪","滯":"滞","滲":"渗","滷":"卤","滸":"浒","滻":"浐","滾":"滚","滿":"满","漁":"渔","漊":"溇","漍":"𬇹","漚":"沤","漢":"汉","漣":"涟","漬":"渍","漲":"涨","漵":"溆","漸":"渐","漿":"浆","潁":"颍","潑":"泼","潔":"洁","潕":"𣲘","潙":"沩","潚":"㴋","潛":"潜","潣":"𫞗","潤":"润","潯":"浔","潰":"溃","潷":"滗","潿":"涠","澀":"涩","澅":"𣶩","澆":"浇","澇":"涝","澐":"沄","澗":"涧","澠":"渑","澤":"泽","澦":"滪","澩":"泶","澫":"𬇕","澬":"𫞚","澮":"浍","澱":"淀","澾":"㳠","濁":"浊","濃":"浓","濄":"㳡","濆":"𣸣","濕":"湿","濘":"泞","濚":"溁","濛":"蒙","濜":"浕","濟":"济","濤":"涛","濧":"㳔","濫":"滥","濰":"潍","濱":"滨","濺":"溅","濼":"泺","濾":"滤","濿":"𪵱","瀂":"澛","瀃":"𣽷","瀅":"滢","瀆":"渎","瀇":"㲿","瀉":"泻","瀋":"沈","瀏":"浏","瀕":"濒","瀘":"泸","瀝":"沥","瀟":"潇","瀠":"潆","瀦":"潴","瀧":"泷","瀨":"濑","瀰":"弥","瀲":"潋","瀾":"澜","灃":"沣","灄":"滠","灍":"𫞝","灑":"洒","灒":"𪷽","灕":"漓","灘":"滩","灙":"𣺼","灝":"灏","灡":"㳕","灣":"湾","灤":"滦","灧":"滟","灩":"滟","災":"灾","為":"为","烏":"乌","烴":"烃","無":"无","煇":"𪸩","煉":"炼","煒":"炜","煙":"烟","煢":"茕","煥":"焕","煩":"烦","煬":"炀","煱":"㶽","熂":"𪸕","熅":"煴","熉":"𤈶","熌":"𤇄","熒":"荧","熓":"𤆡","熗":"炝","熚":"𤇹","熡":"𤋏","熰":"𬉼","熱":"热","熲":"颎","熾":"炽","燀":"𬊤","燁":"烨","燈":"灯","燉":"炖","燒":"烧","燖":"𬊈","燙":"烫","燜":"焖","營":"营","燦":"灿","燬":"毁","燭":"烛","燴":"烩","燶":"㶶","燻":"熏","燼":"烬","燾":"焘","爃":"𫞡","爄":"𤇃","爇":"𦶟","爍":"烁","爐":"炉","爖":"𤇭","爛":"烂","爥":"𪹳","爧":"𫞠","爭":"争","爲":"为","爺":"爷","爾":"尔","牀":"床","牆":"墙","牘":"牍","牴":"牴","牽":"牵","犖":"荦","犛":"牦","犞":"𪺭","犢":"犊","犧":"牺","狀":"状","狹":"狭","狽":"狈","猌":"𪺽","猙":"狰","猶":"犹","猻":"狲","獁":"犸","獃":"呆","獄":"狱","獅":"狮","獊":"𪺷","獎":"奖","獨":"独","獩":"𤞃","獪":"狯","獫":"猃","獮":"狝","獰":"狞","獱":"㺍","獲":"获","獵":"猎","獷":"犷","獸":"兽","獺":"獭","獻":"献","獼":"猕","玀":"猡","玁":"𤞤","珼":"𫞥","現":"现","琱":"雕","琺":"珐","琿":"珲","瑋":"玮","瑒":"玚","瑣":"琐","瑤":"瑶","瑩":"莹","瑪":"玛","瑲":"玱","瑻":"𪻲","瑽":"𪻐","璉":"琏","璊":"𫞩","璕":"𬍤","璗":"𬍡","璝":"𪻺","璡":"琎","璣":"玑","璦":"瑷","璫":"珰","璯":"㻅","環":"环","璵":"玙","璸":"瑸","璼":"𫞨","璽":"玺","璾":"𫞦","璿":"璇","瓄":"𪻨","瓅":"𬍛","瓊":"琼","瓏":"珑","瓔":"璎","瓕":"𤦀","瓚":"瓒","瓛":"𤩽","甌":"瓯","甕":"瓮","產":"产","産":"产","甦":"苏","甯":"宁","畝":"亩","畢":"毕","畫":"画","異":"异","畵":"画","當":"当","畼":"𪽈","疇":"畴","疊":"叠","痙":"痉","痠":"酸","痮":"𪽪","痾":"疴","瘂":"痖","瘋":"疯","瘍":"疡","瘓":"痪","瘞":"瘗","瘡":"疮","瘧":"疟","瘮":"瘆","瘱":"𪽷","瘲":"疭","瘺":"瘘","瘻":"瘘","療":"疗","癆":"痨","癇":"痫","癉":"瘅","癐":"𤶊","癒":"愈","癘":"疠","癟":"瘪","癡":"痴","癢":"痒","癤":"疖","癥":"症","癧":"疬","癩":"癞","癬":"癣","癭":"瘿","癮":"瘾","癰":"痈","癱":"瘫","癲":"癫","發":"发","皁":"皂","皚":"皑","皟":"𤾀","皰":"疱","皸":"皲","皺":"皱","盃":"杯","盜":"盗","盞":"盏","盡":"尽","監":"监","盤":"盘","盧":"卢","盨":"𪾔","盪":"荡","眝":"𪾣","眞":"真","眥":"眦","眾":"众","睍":"𪾢","睏":"困","睜":"睁","睞":"睐","瞘":"眍","瞜":"䁖","瞞":"瞒","瞤":"𥆧","瞭":"瞭","瞶":"瞆","瞼":"睑","矇":"蒙","矉":"𪾸","矑":"𪾦","矓":"眬","矚":"瞩","矯":"矫","硃":"朱","硜":"硁","硤":"硖","硨":"砗","硯":"砚","碕":"埼","碙":"𥐻","碩":"硕","碭":"砀","碸":"砜","確":"确","碼":"码","碽":"䂵","磑":"硙","磚":"砖","磠":"硵","磣":"碜","磧":"碛","磯":"矶","磽":"硗","磾":"䃅","礄":"硚","礆":"硷","礎":"础","礐":"𬒈","礒":"𥐟","礙":"碍","礦":"矿","礪":"砺","礫":"砾","礬":"矾","礮":"𪿫","礱":"砻","祇":"祇","祕":"秘","祿":"禄","禍":"祸","禎":"祯","禕":"祎","禡":"祃","禦":"御","禪":"禅","禮":"礼","禰":"祢","禱":"祷","禿":"秃","秈":"籼","稅":"税","稈":"秆","稏":"䅉","稜":"棱","稟":"禀","種":"种","稱":"称","穀":"谷","穇":"䅟","穌":"稣","積":"积","穎":"颖","穠":"秾","穡":"穑","穢":"秽","穩":"稳","穫":"获","穭":"穞","窩":"窝","窪":"洼","窮":"穷","窯":"窑","窵":"窎","窶":"窭","窺":"窥","竄":"窜","竅":"窍","竇":"窦","竈":"灶","竊":"窃","竚":"𥩟","竪":"竖","竱":"𫁟","競":"竞","筆":"笔","筍":"笋","筧":"笕","筴":"䇲","箇":"个","箋":"笺","箏":"筝","節":"节","範":"范","築":"筑","篋":"箧","篔":"筼","篘":"𥬠","篠":"筿","篢":"𬕂","篤":"笃","篩":"筛","篳":"筚","篸":"𥮾","簀":"箦","簂":"𫂆","簍":"篓","簑":"蓑","簞":"箪","簡":"简","簢":"𫂃","簣":"篑","簫":"箫","簹":"筜","簽":"签","簾":"帘","籃":"篮","籅":"𥫣","籋":"𥬞","籌":"筹","籔":"䉤","籙":"箓","籛":"篯","籜":"箨","籟":"籁","籠":"笼","籤":"签","籩":"笾","籪":"簖","籬":"篱","籮":"箩","籲":"吁","粵":"粤","糉":"粽","糝":"糁","糞":"粪","糧":"粮","糰":"团","糲":"粝","糴":"籴","糶":"粜","糹":"纟","糺":"𫄙","糾":"纠","紀":"纪","紂":"纣","紃":"𬘓","約":"约","紅":"红","紆":"纡","紇":"纥","紈":"纨","紉":"纫","紋":"纹","納":"纳","紐":"纽","紓":"纾","純":"纯","紕":"纰","紖":"纼","紗":"纱","紘":"纮","紙":"纸","級":"级","紛":"纷","紜":"纭","紝":"纴","紞":"𬘘","紟":"𫄛","紡":"纺","紬":"䌷","紮":"扎","細":"细","紱":"绂","紲":"绁","紳":"绅","紵":"纻","紹":"绍","紺":"绀","紼":"绋","紿":"绐","絀":"绌","絁":"𫄟","終":"终","絃":"弦","組":"组","絅":"䌹","絆":"绊","絍":"𫟃","絎":"绗","結":"结","絕":"绝","絙":"𫄠","絛":"绦","絝":"绔","絞":"绞","絡":"络","絢":"绚","絥":"𫄢","給":"给","絧":"𫄡","絨":"绒","絪":"𬘡","絰":"绖","統":"统","絲":"丝","絳":"绛","絶":"绝","絹":"绢","絺":"𫄨","綀":"𦈌","綁":"绑","綃":"绡","綄":"𬘫","綆":"绠","綇":"𦈋","綈":"绨","綉":"绣","綋":"𫟄","綌":"绤","綎":"𬘩","綏":"绥","綐":"䌼","綑":"捆","經":"经","綖":"𫄧","綜":"综","綝":"𬘭","綞":"缍","綟":"𫄫","綠":"绿","綡":"𫟅","綢":"绸","綣":"绻","綧":"𬘯","綪":"𬘬","綫":"线","綬":"绶","維":"维","綯":"绹","綰":"绾","綱":"纲","網":"网","綳":"绷","綴":"缀","綵":"彩","綸":"纶","綹":"绺","綺":"绮","綻":"绽","綽":"绰","綾":"绫","綿":"绵","緄":"绲","緇":"缁","緊":"紧","緋":"绯","緍":"𦈏","緑":"绿","緒":"绪","緓":"绬","緔":"绱","緗":"缃","緘":"缄","緙":"缂","線":"线","緝":"缉","緞":"缎","緟":"𫟆","締":"缔","緡":"缗","緣":"缘","緤":"𫄬","緦":"缌","編":"编","緩":"缓","緬":"缅","緮":"𫄭","緯":"纬","緰":"𦈕","緱":"缑","緲":"缈","練":"练","緶":"缏","緷":"𦈉","緸":"𦈑","緹":"缇","緻":"致","緼":"缊","縈":"萦","縉":"缙","縊":"缢","縋":"缒","縍":"𫄰","縎":"𦈔","縐":"绉","縑":"缣","縕":"缊","縗":"缞","縛":"缚","縝":"缜","縞":"缟","縟":"缛","縣":"县","縧":"绦","縫":"缝","縬":"𦈚","縭":"缡","縮":"缩","縯":"𬙂","縰":"𫄳","縱":"纵","縲":"缧","縳":"䌸","縴":"纤","縵":"缦","縶":"絷","縷":"缕","縸":"𫄲","縹":"缥","縺":"𦈐","總":"总","績":"绩","繂":"𫄴","繃":"绷","繅":"缫","繆":"缪","繈":"𫄶","繏":"𦈝","繐":"𰬸","繒":"缯","繓":"𦈛","織":"织","繕":"缮","繚":"缭","繞":"绕","繟":"𦈎","繡":"绣","繢":"缋","繨":"𫄤","繩":"绳","繪":"绘","繫":"系","繬":"𫄱","繭":"茧","繮":"缰","繯":"缳","繰":"缲","繳":"缴","繶":"𫄷","繷":"𫄣","繸":"䍁","繹":"绎","繻":"𦈡","繼":"继","繽":"缤","繾":"缱","繿":"䍀","纁":"𫄸","纆":"𬙊","纇":"颣","纈":"缬","纊":"纩","續":"续","纍":"累","纏":"缠","纓":"缨","纔":"才","纕":"𬙋","纖":"纤","纗":"𫄹","纘":"缵","纚":"𫄥","纜":"缆","缽":"钵","罃":"䓨","罈":"坛","罌":"罂","罎":"坛","罰":"罚","罵":"骂","罷":"罢","羅":"罗","羆":"罴","羈":"羁","羋":"芈","羣":"群","羥":"羟","羨":"羡","義":"义","羵":"𫅗","羶":"膻","習":"习","翫":"玩","翬":"翚","翹":"翘","翽":"翙","耬":"耧","耮":"耢","聖":"圣","聞":"闻","聯":"联","聰":"聪","聲":"声","聳":"耸","聵":"聩","聶":"聂","職":"职","聹":"聍","聻":"𫆏","聽":"听","聾":"聋","肅":"肃","脅":"胁","脈":"脉","脛":"胫","脣":"唇","脥":"𣍰","脩":"修","脫":"脱","脹":"胀","腎":"肾","腖":"胨","腡":"脶","腦":"脑","腪":"𣍯","腫":"肿","腳":"脚","腸":"肠","膃":"腽","膕":"腘","膚":"肤","膞":"䏝","膠":"胶","膢":"𦝼","膩":"腻","膹":"𪱥","膽":"胆","膾":"脍","膿":"脓","臉":"脸","臍":"脐","臏":"膑","臗":"𣎑","臘":"腊","臚":"胪","臟":"脏","臠":"脔","臢":"臜","臥":"卧","臨":"临","臺":"台","與":"与","興":"兴","舉":"举","舊":"旧","舘":"馆","艙":"舱","艣":"𫇛","艤":"舣","艦":"舰","艫":"舻","艱":"艰","艷":"艳","芻":"刍","苧":"苎","茲":"兹","荊":"荆","莊":"庄","莖":"茎","莢":"荚","莧":"苋","菕":"𰰨","華":"华","菴":"庵","菸":"烟","萇":"苌","萊":"莱","萬":"万","萴":"荝","萵":"莴","葉":"叶","葒":"荭","葝":"𫈎","葤":"荮","葦":"苇","葯":"药","葷":"荤","蒍":"𫇭","蒐":"搜","蒓":"莼","蒔":"莳","蒕":"蒀","蒞":"莅","蒭":"𫇴","蒼":"苍","蓀":"荪","蓆":"席","蓋":"盖","蓧":"𦰏","蓮":"莲","蓯":"苁","蓴":"莼","蓽":"荜","蔄":"𬜬","蔔":"卜","蔘":"参","蔞":"蒌","蔣":"蒋","蔥":"葱","蔦":"茑","蔭":"荫","蔯":"𫈟","蔿":"𫇭","蕁":"荨","蕆":"蒇","蕎":"荞","蕒":"荬","蕓":"芸","蕕":"莸","蕘":"荛","蕝":"𫈵","蕢":"蒉","蕩":"荡","蕪":"芜","蕭":"萧","蕳":"𫈉","蕷":"蓣","蕽":"𫇽","薀":"蕰","薆":"𫉁","薈":"荟","薊":"蓟","薌":"芗","薑":"姜","薔":"蔷","薘":"荙","薟":"莶","薦":"荐","薩":"萨","薳":"䓕","薴":"苧","薵":"䓓","薹":"苔","薺":"荠","藉":"藉","藍":"蓝","藎":"荩","藝":"艺","藥":"药","藪":"薮","藭":"䓖","藴":"蕴","藶":"苈","藷":"𫉄","藹":"蔼","藺":"蔺","蘀":"萚","蘄":"蕲","蘆":"芦","蘇":"苏","蘊":"蕴","蘋":"苹","蘚":"藓","蘞":"蔹","蘟":"𦻕","蘢":"茏","蘭":"兰","蘺":"蓠","蘿":"萝","虆":"蔂","虉":"𬟁","處":"处","虛":"虚","虜":"虏","號":"号","虧":"亏","虯":"虬","蛺":"蛱","蛻":"蜕","蜆":"蚬","蝀":"𬟽","蝕":"蚀","蝟":"猬","蝦":"虾","蝨":"虱","蝸":"蜗","螄":"蛳","螞":"蚂","螢":"萤","螮":"䗖","螻":"蝼","螿":"螀","蟂":"𫋇","蟄":"蛰","蟈":"蝈","蟎":"螨","蟘":"𫋌","蟜":"𫊸","蟣":"虮","蟬":"蝉","蟯":"蛲","蟲":"虫","蟳":"𫊻","蟶":"蛏","蟻":"蚁","蠀":"𧏗","蠁":"蚃","蠅":"蝇","蠆":"虿","蠍":"蝎","蠐":"蛴","蠑":"蝾","蠔":"蚝","蠙":"𧏖","蠟":"蜡","蠣":"蛎","蠦":"𫊮","蠨":"蟏","蠱":"蛊","蠶":"蚕","蠻":"蛮","蠾":"𧑏","衆":"众","衊":"蔑","術":"术","衕":"同","衚":"胡","衛":"卫","衝":"冲","衹":"衹","袞":"衮","裊":"袅","裏":"里","補":"补","裝":"装","裡":"里","製":"制","複":"复","褌":"裈","褘":"袆","褲":"裤","褳":"裢","褸":"褛","褻":"亵","襀":"𫌀","襇":"裥","襉":"裥","襏":"袯","襓":"𫋹","襖":"袄","襗":"𫋷","襘":"𫋻","襝":"裣","襠":"裆","襤":"褴","襪":"袜","襬":"摆","襯":"衬","襰":"𧝝","襲":"袭","襴":"襕","襵":"𫌇","覆":"覆","覈":"核","見":"见","覎":"觃","規":"规","覓":"觅","視":"视","覘":"觇","覛":"𫌪","覡":"觋","覥":"觍","覦":"觎","親":"亲","覬":"觊","覯":"觏","覲":"觐","覷":"觑","覹":"𫌭","覺":"觉","覼":"𫌨","覽":"览","覿":"觌","觀":"观","觴":"觞","觶":"觯","觸":"触","訁":"讠","訂":"订","訃":"讣","計":"计","訊":"讯","訌":"讧","討":"讨","訏":"𬣙","訐":"讦","訑":"𫍙","訒":"讱","訓":"训","訕":"讪","訖":"讫","託":"托","記":"记","訛":"讹","訜":"𫍛","訝":"讶","訞":"𫍚","訟":"讼","訢":"䜣","訣":"诀","訥":"讷","訨":"𫟞","訩":"讻","訪":"访","設":"设","許":"许","訴":"诉","訶":"诃","診":"诊","註":"注","証":"证","詀":"𧮪","詁":"诂","詆":"诋","詊":"𫟟","詎":"讵","詐":"诈","詑":"𫍡","詒":"诒","詓":"𫍜","詔":"诏","評":"评","詖":"诐","詗":"诇","詘":"诎","詛":"诅","詝":"𬣞","詞":"词","詠":"咏","詡":"诩","詢":"询","詣":"诣","試":"试","詩":"诗","詪":"𬣳","詫":"诧","詬":"诟","詭":"诡","詮":"诠","詰":"诘","話":"话","該":"该","詳":"详","詵":"诜","詷":"𫍣","詼":"诙","詿":"诖","誂":"𫍥","誄":"诔","誅":"诛","誆":"诓","誇":"夸","誋":"𫍪","誌":"志","認":"认","誑":"诳","誒":"诶","誕":"诞","誘":"诱","誚":"诮","語":"语","誠":"诚","誡":"诫","誣":"诬","誤":"误","誥":"诰","誦":"诵","誨":"诲","說":"说","誫":"𫍨","説":"说","誰":"谁","課":"课","誳":"𫍮","誴":"𫟡","誶":"谇","誷":"𫍬","誹":"诽","誺":"𫍧","誼":"谊","誾":"訚","調":"调","諂":"谄","諄":"谆","談":"谈","諉":"诿","請":"请","諍":"诤","諏":"诹","諑":"诼","諒":"谅","諓":"𬣡","論":"论","諗":"谂","諛":"谀","諜":"谍","諝":"谞","諞":"谝","諟":"𬤊","諡":"谥","諢":"诨","諣":"𫍩","諤":"谔","諥":"𫍳","諦":"谛","諧":"谐","諫":"谏","諭":"谕","諮":"咨","諯":"𫍱","諰":"𫍰","諱":"讳","諲":"𬤇","諳":"谙","諴":"𫍯","諶":"谌","諷":"讽","諸":"诸","諺":"谚","諼":"谖","諾":"诺","謀":"谋","謁":"谒","謂":"谓","謄":"誊","謅":"诌","謆":"𫍸","謉":"𫍷","謊":"谎","謎":"谜","謏":"𫍲","謐":"谧","謔":"谑","謖":"谡","謗":"谤","謙":"谦","謚":"谥","講":"讲","謝":"谢","謠":"谣","謡":"谣","謨":"谟","謫":"谪","謬":"谬","謭":"谫","謯":"𫍹","謱":"𫍴","謳":"讴","謸":"𫍵","謹":"谨","謾":"谩","譁":"哗","譂":"𫟠","譅":"𰶎","譆":"𫍻","證":"证","譊":"𫍢","譎":"谲","譏":"讥","譑":"𫍤","譓":"𬤝","譖":"谮","識":"识","譙":"谯","譚":"谭","譜":"谱","譞":"𫍽","譟":"噪","譨":"𫍦","譫":"谵","譭":"毁","譯":"译","議":"议","譴":"谴","護":"护","譸":"诪","譽":"誉","譾":"谫","讀":"读","讅":"谉","變":"变","讋":"詟","讌":"䜩","讎":"雠","讒":"谗","讓":"让","讕":"谰","讖":"谶","讚":"赞","讜":"谠","讞":"谳","豈":"岂","豎":"竖","豐":"丰","豔":"艳","豬":"猪","豵":"𫎆","豶":"豮","貓":"猫","貗":"𫎌","貙":"䝙","貝":"贝","貞":"贞","貟":"贠","負":"负","財":"财","貢":"贡","貧":"贫","貨":"货","販":"贩","貪":"贪","貫":"贯","責":"责","貯":"贮","貰":"贳","貲":"赀","貳":"贰","貴":"贵","貶":"贬","買":"买","貸":"贷","貺":"贶","費":"费","貼":"贴","貽":"贻","貿":"贸","賀":"贺","賁":"贲","賂":"赂","賃":"赁","賄":"贿","賅":"赅","資":"资","賈":"贾","賊":"贼","賑":"赈","賒":"赊","賓":"宾","賕":"赇","賙":"赒","賚":"赉","賜":"赐","賝":"𫎩","賞":"赏","賟":"𧹖","賠":"赔","賡":"赓","賢":"贤","賣":"卖","賤":"贱","賦":"赋","賧":"赕","質":"质","賫":"赍","賬":"账","賭":"赌","賰":"䞐","賴":"赖","賵":"赗","賺":"赚","賻":"赙","購":"购","賽":"赛","賾":"赜","贃":"𧹗","贄":"贽","贅":"赘","贇":"赟","贈":"赠","贉":"𫎫","贊":"赞","贋":"赝","贍":"赡","贏":"赢","贐":"赆","贑":"𫎬","贓":"赃","贔":"赑","贖":"赎","贗":"赝","贚":"𫎦","贛":"赣","贜":"赃","赬":"赪","趕":"赶","趙":"赵","趨":"趋","趲":"趱","跡":"迹","踐":"践","踰":"逾","踴":"踊","蹌":"跄","蹔":"𫏐","蹕":"跸","蹟":"迹","蹠":"跖","蹣":"蹒","蹤":"踪","蹳":"𫏆","蹺":"跷","蹻":"𫏋","躂":"跶","躉":"趸","躊":"踌","躋":"跻","躍":"跃","躎":"䟢","躑":"踯","躒":"跞","躓":"踬","躕":"蹰","躘":"𨀁","躚":"跹","躝":"𨅬","躡":"蹑","躥":"蹿","躦":"躜","躪":"躏","軀":"躯","軉":"𨉗","車":"车","軋":"轧","軌":"轨","軍":"军","軏":"𫐄","軑":"轪","軒":"轩","軔":"轫","軕":"𫐅","軗":"𨐅","軛":"轭","軜":"𫐇","軝":"𬨂","軟":"软","軤":"轷","軨":"𫐉","軫":"轸","軬":"𫐊","軲":"轱","軷":"𫐈","軸":"轴","軹":"轵","軺":"轺","軻":"轲","軼":"轶","軾":"轼","軿":"𫐌","較":"较","輄":"𨐈","輅":"辂","輇":"辁","輈":"辀","載":"载","輊":"轾","輋":"𪨶","輒":"辄","輓":"挽","輔":"辅","輕":"轻","輖":"𫐏","輗":"𫐐","輛":"辆","輜":"辎","輝":"辉","輞":"辋","輟":"辍","輢":"𫐎","輥":"辊","輦":"辇","輨":"𫐑","輩":"辈","輪":"轮","輬":"辌","輮":"𫐓","輯":"辑","輳":"辏","輶":"𬨎","輷":"𫐒","輸":"输","輻":"辐","輼":"辒","輾":"辗","輿":"舆","轀":"辒","轂":"毂","轄":"辖","轅":"辕","轆":"辘","轇":"𫐖","轉":"转","轊":"𫐕","轍":"辙","轎":"轿","轐":"𫐗","轔":"辚","轗":"𫐘","轟":"轰","轠":"𫐙","轡":"辔","轢":"轹","轣":"𫐆","轤":"轳","辦":"办","辭":"辞","辮":"辫","辯":"辩","農":"农","迴":"回","逕":"迳","這":"这","連":"连","週":"周","進":"进","遊":"游","運":"运","過":"过","達":"达","違":"违","遙":"遥","遜":"逊","遞":"递","遠":"远","遡":"溯","適":"适","遱":"𫐷","遲":"迟","遷":"迁","選":"选","遺":"遗","遼":"辽","邁":"迈","還":"还","邇":"迩","邊":"边","邏":"逻","邐":"逦","郟":"郏","郵":"邮","鄆":"郓","鄉":"乡","鄒":"邹","鄔":"邬","鄖":"郧","鄟":"𫑘","鄧":"邓","鄩":"𬩽","鄭":"郑","鄰":"邻","鄲":"郸","鄳":"𫑡","鄴":"邺","鄶":"郐","鄺":"邝","酇":"酂","酈":"郦","醃":"腌","醖":"酝","醜":"丑","醞":"酝","醟":"蒏","醣":"糖","醫":"医","醬":"酱","醱":"酦","醲":"𬪩","醶":"𫑷","釀":"酿","釁":"衅","釃":"酾","釅":"酽","釋":"释","釐":"厘","釒":"钅","釓":"钆","釔":"钇","釕":"钌","釗":"钊","釘":"钉","釙":"钋","釚":"𫟲","針":"针","釟":"𫓥","釣":"钓","釤":"钐","釦":"扣","釧":"钏","釨":"𫓦","釩":"钒","釲":"𫟳","釳":"𨰿","釴":"𬬩","釵":"钗","釷":"钍","釹":"钕","釺":"钎","釾":"䥺","釿":"𬬱","鈀":"钯","鈁":"钫","鈃":"钘","鈄":"钭","鈅":"钥","鈆":"𫓪","鈇":"𫓧","鈈":"钚","鈉":"钠","鈋":"𨱂","鈍":"钝","鈎":"钩","鈐":"钤","鈑":"钣","鈒":"钑","鈔":"钞","鈕":"钮","鈖":"𫟴","鈗":"𫟵","鈛":"𫓨","鈞":"钧","鈠":"𨱁","鈡":"钟","鈣":"钙","鈥":"钬","鈦":"钛","鈧":"钪","鈮":"铌","鈯":"𨱄","鈰":"铈","鈲":"𨱃","鈳":"钶","鈴":"铃","鈷":"钴","鈸":"钹","鈹":"铍","鈺":"钰","鈽":"钸","鈾":"铀","鈿":"钿","鉀":"钾","鉁":"𨱅","鉅":"巨","鉆":"钻","鉈":"铊","鉉":"铉","鉊":"𬬿","鉋":"铇","鉍":"铋","鉑":"铂","鉔":"𫓬","鉕":"钷","鉗":"钳","鉚":"铆","鉛":"铅","鉝":"𫟷","鉞":"钺","鉠":"𫓭","鉢":"钵","鉤":"钩","鉥":"𬬸","鉦":"钲","鉧":"𬭁","鉬":"钼","鉭":"钽","鉮":"𬬹","鉳":"锫","鉶":"铏","鉷":"𫟹","鉸":"铰","鉺":"铒","鉻":"铬","鉽":"𫟸","鉾":"𫓴","鉿":"铪","銀":"银","銁":"𫓲","銂":"𫟻","銃":"铳","銅":"铜","銈":"𫓯","銊":"𫓰","銍":"铚","銏":"𫟶","銑":"铣","銓":"铨","銖":"铢","銘":"铭","銚":"铫","銛":"铦","銜":"衔","銠":"铑","銣":"铷","銥":"铱","銦":"铟","銨":"铵","銩":"铥","銪":"铕","銫":"铯","銬":"铐","銱":"铞","銳":"锐","銶":"𨱇","銷":"销","銹":"锈","銻":"锑","銼":"锉","鋁":"铝","鋂":"𰾄","鋃":"锒","鋅":"锌","鋇":"钡","鋉":"𨱈","鋌":"铤","鋏":"铗","鋐":"𬭎","鋒":"锋","鋗":"𫓶","鋙":"铻","鋝":"锊","鋟":"锓","鋠":"𫓵","鋣":"铘","鋤":"锄","鋥":"锃","鋦":"锔","鋨":"锇","鋩":"铓","鋪":"铺","鋭":"锐","鋮":"铖","鋯":"锆","鋰":"锂","鋱":"铽","鋶":"锍","鋸":"锯","鋹":"𬬮","鋼":"钢","錀":"𬬭","錁":"锞","錂":"𨱋","錄":"录","錆":"锖","錇":"锫","錈":"锩","錏":"铔","錐":"锥","錒":"锕","錕":"锟","錘":"锤","錙":"锱","錚":"铮","錛":"锛","錜":"𫓻","錝":"𫓽","錞":"𬭚","錟":"锬","錠":"锭","錡":"锜","錢":"钱","錤":"𫓹","錥":"𫓾","錦":"锦","錨":"锚","錩":"锠","錫":"锡","錮":"锢","錯":"错","録":"录","錳":"锰","錶":"表","錸":"铼","錼":"镎","錽":"𫓸","鍀":"锝","鍁":"锨","鍃":"锪","鍄":"𨱉","鍅":"钫","鍆":"钔","鍇":"锴","鍈":"锳","鍉":"𫔂","鍊":"炼","鍋":"锅","鍍":"镀","鍒":"𫔄","鍔":"锷","鍘":"铡","鍚":"钖","鍛":"锻","鍠":"锽","鍤":"锸","鍥":"锲","鍩":"锘","鍬":"锹","鍭":"𬭤","鍮":"𨱎","鍰":"锾","鍵":"键","鍶":"锶","鍺":"锗","鍼":"针","鍾":"钟","鎂":"镁","鎄":"锿","鎇":"镅","鎈":"𫟿","鎊":"镑","鎌":"镰","鎍":"𫔅","鎓":"𬭩","鎔":"镕","鎖":"锁","鎘":"镉","鎙":"𫔈","鎚":"锤","鎛":"镈","鎝":"𨱏","鎞":"𫔇","鎡":"镃","鎢":"钨","鎣":"蓥","鎦":"镏","鎧":"铠","鎩":"铩","鎪":"锼","鎬":"镐","鎭":"镇","鎮":"镇","鎯":"𨱍","鎰":"镒","鎲":"镋","鎳":"镍","鎵":"镓","鎶":"鿔","鎷":"𨰾","鎸":"镌","鎿":"镎","鏃":"镞","鏆":"𨱌","鏇":"旋","鏈":"链","鏉":"𨱒","鏌":"镆","鏍":"镙","鏏":"𬭬","鏐":"镠","鏑":"镝","鏗":"铿","鏘":"锵","鏚":"𬭭","鏜":"镗","鏝":"镘","鏞":"镛","鏟":"铲","鏡":"镜","鏢":"镖","鏤":"镂","鏥":"𫔊","鏦":"𫓩","鏨":"錾","鏰":"镚","鏵":"铧","鏷":"镤","鏹":"镪","鏺":"䥽","鏻":"𬭸","鏽":"锈","鏾":"𫔌","鐃":"铙","鐄":"𨱑","鐇":"𫔍","鐈":"𫓱","鐋":"铴","鐍":"𫔎","鐎":"𨱓","鐏":"𨱔","鐐":"镣","鐒":"铹","鐓":"镦","鐔":"镡","鐘":"钟","鐙":"镫","鐝":"镢","鐠":"镨","鐥":"䦅","鐦":"锎","鐧":"锏","鐨":"镄","鐩":"𬭼","鐪":"𫓺","鐫":"镌","鐮":"镰","鐯":"䦃","鐲":"镯","鐳":"镭","鐵":"铁","鐶":"镮","鐸":"铎","鐺":"铛","鐼":"𫔁","鐽":"𫟼","鐿":"镱","鑀":"𰾭","鑄":"铸","鑉":"𫠁","鑊":"镬","鑌":"镔","鑑":"鉴","鑒":"鉴","鑔":"镲","鑕":"锧","鑞":"镴","鑠":"铄","鑣":"镳","鑥":"镥","鑪":"𬬻","鑭":"镧","鑰":"钥","鑱":"镵","鑲":"镶","鑴":"𫔔","鑷":"镊","鑹":"镩","鑼":"锣","鑽":"钻","鑾":"銮","鑿":"凿","钁":"镢","钂":"镋","長":"长","門":"门","閂":"闩","閃":"闪","閆":"闫","閈":"闬","閉":"闭","開":"开","閌":"闶","閍":"𨸂","閎":"闳","閏":"闰","閐":"𨸃","閑":"闲","閒":"闲","間":"间","閔":"闵","閗":"𫔯","閘":"闸","閝":"𫠂","閞":"𫔰","閡":"阂","閣":"阁","閤":"合","閥":"阀","閨":"闺","閩":"闽","閫":"阃","閬":"阆","閭":"闾","閱":"阅","閲":"阅","閵":"𫔴","閶":"阊","閹":"阉","閻":"阎","閼":"阏","閽":"阍","閾":"阈","閿":"阌","闃":"阒","闆":"板","闇":"暗","闈":"闱","闉":"𬮱","闊":"阔","闋":"阕","闌":"阑","闍":"阇","闐":"阗","闑":"𫔶","闒":"阘","闓":"闿","闔":"阖","闕":"阙","闖":"闯","關":"关","闞":"阚","闠":"阓","闡":"阐","闢":"辟","闤":"阛","闥":"闼","阪":"阪","陘":"陉","陝":"陕","陞":"升","陣":"阵","陰":"阴","陳":"陈","陸":"陆","陽":"阳","隉":"陧","隊":"队","階":"阶","隑":"𬮿","隕":"陨","際":"际","隤":"𬯎","隨":"随","險":"险","隮":"𬯀","隯":"陦","隱":"隐","隴":"陇","隸":"隶","隻":"只","雋":"隽","雖":"虽","雙":"双","雛":"雏","雜":"杂","雞":"鸡","離":"离","難":"难","雲":"云","電":"电","霑":"沾","霢":"霡","霣":"𫕥","霧":"雾","霼":"𪵣","霽":"霁","靂":"雳","靄":"霭","靆":"叇","靈":"灵","靉":"叆","靚":"靓","靜":"静","靝":"靔","靦":"腼","靧":"𫖃","靨":"靥","鞏":"巩","鞝":"绱","鞦":"秋","鞽":"鞒","鞾":"𫖇","韁":"缰","韃":"鞑","韆":"千","韉":"鞯","韋":"韦","韌":"韧","韍":"韨","韓":"韩","韙":"韪","韚":"𫠅","韛":"𫖔","韜":"韬","韝":"鞲","韞":"韫","韠":"𫖒","韻":"韵","響":"响","頁":"页","頂":"顶","頃":"顷","項":"项","順":"顺","頇":"顸","須":"须","頊":"顼","頌":"颂","頍":"𫠆","頎":"颀","頏":"颃","預":"预","頑":"顽","頒":"颁","頓":"顿","頔":"𬱖","頗":"颇","領":"领","頜":"颌","頠":"𬱟","頡":"颉","頤":"颐","頦":"颏","頫":"𫖯","頭":"头","頮":"颒","頰":"颊","頲":"颋","頴":"颕","頵":"𫖳","頷":"颔","頸":"颈","頹":"颓","頻":"频","頽":"颓","顂":"𩓋","顃":"𩖖","顅":"𫖶","顆":"颗","題":"题","額":"额","顎":"颚","顏":"颜","顒":"颙","顓":"颛","顔":"颜","顗":"𫖮","願":"愿","顙":"颡","顛":"颠","類":"类","顢":"颟","顣":"𫖹","顥":"颢","顧":"顾","顫":"颤","顬":"颥","顯":"显","顰":"颦","顱":"颅","顳":"颞","顴":"颧","風":"风","颭":"飐","颮":"飑","颯":"飒","颰":"𩙥","颱":"台","颳":"刮","颶":"飓","颷":"𩙪","颸":"飔","颺":"飏","颻":"飖","颼":"飕","颾":"𩙫","飀":"飗","飄":"飘","飆":"飙","飈":"飚","飋":"𫗋","飛":"飞","飠":"饣","飢":"饥","飣":"饤","飥":"饦","飦":"𫗞","飩":"饨","飪":"饪","飫":"饫","飭":"饬","飯":"饭","飱":"飧","飲":"饮","飴":"饴","飵":"𫗢","飶":"𫗣","飼":"饲","飽":"饱","飾":"饰","飿":"饳","餃":"饺","餄":"饸","餅":"饼","餈":"糍","餉":"饷","養":"养","餌":"饵","餎":"饹","餏":"饻","餑":"饽","餒":"馁","餓":"饿","餔":"𫗦","餕":"馂","餖":"饾","餗":"𫗧","餘":"余","餚":"肴","餛":"馄","餜":"馃","餞":"饯","餡":"馅","餦":"𫗠","餧":"𫗪","館":"馆","餪":"𫗬","餫":"𫗥","餬":"糊","餭":"𫗮","餱":"糇","餳":"饧","餵":"喂","餶":"馉","餷":"馇","餸":"𩠌","餺":"馎","餼":"饩","餾":"馏","餿":"馊","饁":"馌","饃":"馍","饅":"馒","饈":"馐","饉":"馑","饊":"馓","饋":"馈","饌":"馔","饑":"饥","饒":"饶","饗":"飨","饘":"𫗴","饜":"餍","饞":"馋","饟":"𫗵","饠":"𫗩","饢":"馕","馬":"马","馭":"驭","馮":"冯","馯":"𫘛","馱":"驮","馳":"驰","馴":"驯","馹":"驲","馼":"𫘜","駁":"驳","駃":"𫘝","駉":"𬳶","駊":"𫘟","駎":"𩧨","駐":"驻","駑":"驽","駒":"驹","駓":"𬳵","駔":"驵","駕":"驾","駘":"骀","駙":"驸","駚":"𩧫","駛":"驶","駝":"驼","駞":"𫘞","駟":"驷","駡":"骂","駢":"骈","駤":"𫘠","駧":"𩧲","駩":"𩧴","駪":"𬳽","駫":"𫘡","駭":"骇","駰":"骃","駱":"骆","駶":"𩧺","駸":"骎","駻":"𫘣","駼":"𬳿","駿":"骏","騁":"骋","騂":"骍","騃":"𫘤","騄":"𫘧","騅":"骓","騉":"𫘥","騊":"𫘦","騌":"骔","騍":"骒","騎":"骑","騏":"骐","騑":"𬴂","騔":"𩨀","騖":"骛","騙":"骗","騚":"𩨊","騜":"𫘩","騝":"𩨃","騞":"𬴃","騟":"𩨈","騠":"𫘨","騤":"骙","騧":"䯄","騪":"𩨄","騫":"骞","騭":"骘","騮":"骝","騰":"腾","騱":"𫘬","騴":"𫘫","騵":"𫘪","騶":"驺","騷":"骚","騸":"骟","騻":"𫘭","騼":"𫠋","騾":"骡","驀":"蓦","驁":"骜","驂":"骖","驃":"骠","驄":"骢","驅":"驱","驊":"骅","驋":"𩧯","驌":"骕","驍":"骁","驎":"𬴊","驏":"骣","驓":"𫘯","驕":"骄","驗":"验","驙":"𫘰","驚":"惊","驛":"驿","驟":"骤","驢":"驴","驤":"骧","驥":"骥","驦":"骦","驨":"𫘱","驪":"骊","驫":"骉","骯":"肮","髏":"髅","髒":"脏","體":"体","髕":"髌","髖":"髋","髮":"发","鬆":"松","鬍":"胡","鬖":"𩭹","鬚":"须","鬠":"𫘽","鬢":"鬓","鬥":"斗","鬧":"闹","鬨":"哄","鬩":"阋","鬮":"阄","鬱":"郁","鬹":"鬶","魎":"魉","魘":"魇","魚":"鱼","魛":"鱽","魟":"𫚉","魢":"鱾","魥":"𩽹","魦":"𫚌","魨":"鲀","魯":"鲁","魴":"鲂","魵":"𫚍","魷":"鱿","魺":"鲄","魽":"𫠐","鮀":"𬶍","鮁":"鲅","鮃":"鲆","鮄":"𫚒","鮅":"𫚑","鮆":"𫚖","鮈":"𬶋","鮊":"鲌","鮋":"鲉","鮍":"鲏","鮎":"鲇","鮐":"鲐","鮑":"鲍","鮒":"鲋","鮓":"鲊","鮚":"鲒","鮜":"鲘","鮝":"鲞","鮞":"鲕","鮟":"𩽾","鮠":"𬶏","鮡":"𬶐","鮣":"䲟","鮤":"𫚓","鮦":"鲖","鮪":"鲔","鮫":"鲛","鮭":"鲑","鮮":"鲜","鮯":"𫚗","鮰":"𫚔","鮳":"鲓","鮵":"𫚛","鮶":"鲪","鮸":"3","鮺":"鲝","鮿":"𫚚","鯀":"鲧","鯁":"鲠","鯄":"𩾁","鯆":"𫚙","鯇":"鲩","鯉":"鲤","鯊":"鲨","鯒":"鲬","鯔":"鲻","鯕":"鲯","鯖":"鲭","鯗":"鲞","鯛":"鲷","鯝":"鲴","鯞":"𫚡","鯡":"鲱","鯢":"鲵","鯤":"鲲","鯧":"鲳","鯨":"鲸","鯪":"鲮","鯫":"鲰","鯬":"𫚞","鯰":"鲶","鯱":"𩾇","鯴":"鲺","鯶":"𩽼","鯷":"鳀","鯻":"𬶟","鯽":"鲫","鯾":"𫚣","鯿":"鳊","鰁":"鳈","鰂":"鲗","鰃":"鳂","鰆":"䲠","鰈":"鲽","鰉":"鳇","鰊":"𬶠","鰋":"𫚢","鰌":"䲡","鰍":"鳅","鰏":"鲾","鰐":"鳄","鰑":"𫚊","鰒":"鳆","鰓":"鳃","鰕":"𫚥","鰛":"鳁","鰜":"鳒","鰟":"鳑","鰠":"鳋","鰣":"鲥","鰤":"𫚕","鰥":"鳏","鰦":"𫚤","鰧":"䲢","鰨":"鳎","鰩":"鳐","鰫":"𫚦","鰭":"鳍","鰮":"鳁","鰱":"鲢","鰲":"鳌","鰳":"鳓","鰵":"鳘","鰶":"𬶭","鰷":"鲦","鰹":"鲣","鰺":"鲹","鰻":"鳗","鰼":"鳛","鰽":"𫚧","鰾":"鳔","鱀":"𬶨","鱂":"鳉","鱄":"𫚋","鱅":"鳙","鱆":"𫠒","鱇":"𩾌","鱈":"鳕","鱉":"鳖","鱊":"𫚪","鱒":"鳟","鱔":"鳝","鱖":"鳜","鱗":"鳞","鱘":"鲟","鱚":"𬶮","鱝":"鲼","鱟":"鲎","鱠":"鲙","鱢":"𫚫","鱣":"鳣","鱤":"鳡","鱧":"鳢","鱨":"鲿","鱭":"鲚","鱮":"𫚈","鱯":"鳠","鱲":"𫚭","鱷":"鳄","鱸":"鲈","鱺":"鲡","鳥":"鸟","鳧":"凫","鳩":"鸠","鳬":"凫","鳲":"鸤","鳳":"凤","鳴":"鸣","鳶":"鸢","鳷":"𫛛","鳼":"𪉃","鳽":"𫛚","鳾":"䴓","鴀":"𫛜","鴃":"𫛞","鴅":"𫛝","鴆":"鸩","鴇":"鸨","鴉":"鸦","鴐":"𫛤","鴒":"鸰","鴔":"𫛡","鴕":"鸵","鴗":"𫁡","鴛":"鸳","鴜":"𪉈","鴝":"鸲","鴞":"鸮","鴟":"鸱","鴣":"鸪","鴥":"𫛣","鴦":"鸯","鴨":"鸭","鴮":"𫛦","鴯":"鸸","鴰":"鸹","鴲":"𪉆","鴳":"𫛩","鴴":"鸻","鴷":"䴕","鴻":"鸿","鴽":"𫛪","鴿":"鸽","鵁":"䴔","鵂":"鸺","鵃":"鸼","鵊":"𫛥","鵏":"𬷕","鵐":"鹀","鵑":"鹃","鵒":"鹆","鵓":"鹁","鵚":"𪉍","鵜":"鹈","鵝":"鹅","鵟":"𫛭","鵠":"鹄","鵡":"鹉","鵧":"𫛨","鵩":"𫛳","鵪":"鹌","鵫":"𫛱","鵬":"鹏","鵮":"鹐","鵯":"鹎","鵰":"雕","鵲":"鹊","鵷":"鹓","鵾":"鹍","鶄":"䴖","鶇":"鸫","鶉":"鹑","鶊":"鹒","鶌":"𫛵","鶒":"𫛶","鶓":"鹋","鶖":"鹙","鶗":"𫛸","鶘":"鹕","鶚":"鹗","鶠":"𬸘","鶡":"鹖","鶥":"鹛","鶦":"𫛷","鶩":"鹜","鶪":"䴗","鶬":"鸧","鶭":"𫛯","鶯":"莺","鶰":"𫛫","鶱":"𬸣","鶲":"鹟","鶴":"鹤","鶹":"鹠","鶺":"鹡","鶻":"鹘","鶼":"鹣","鶿":"鹚","鷀":"鹚","鷁":"鹢","鷂":"鹞","鷄":"鸡","鷅":"𫛽","鷉":"䴘","鷊":"鹝","鷐":"𫜀","鷓":"鹧","鷔":"𪉑","鷖":"鹥","鷗":"鸥","鷙":"鸷","鷚":"鹨","鷟":"𬸦","鷣":"𫜃","鷤":"𫛴","鷥":"鸶","鷦":"鹪","鷨":"𪉊","鷩":"𫜁","鷫":"鹔","鷭":"𬸪","鷯":"鹩","鷲":"鹫","鷳":"鹇","鷴":"鹇","鷷":"𫜄","鷸":"鹬","鷹":"鹰","鷺":"鹭","鷽":"鸴","鷿":"𬸯","鸂":"㶉","鸇":"鹯","鸊":"䴙","鸋":"𫛢","鸌":"鹱","鸏":"鹲","鸑":"𬸚","鸕":"鸬","鸗":"𫛟","鸘":"鹴","鸚":"鹦","鸛":"鹳","鸝":"鹂","鸞":"鸾","鹵":"卤","鹹":"咸","鹺":"鹾","鹼":"碱","鹽":"盐","麗":"丽","麥":"麦","麨":"𪎊","麩":"麸","麪":"面","麫":"面","麬":"𤿲","麯":"曲","麲":"𪎉","麳":"𪎌","麴":"曲","麵":"面","麷":"𫜑","麼":"么","麽":"么","黃":"黄","黌":"黉","點":"点","黨":"党","黲":"黪","黴":"霉","黶":"黡","黷":"黩","黽":"黾","黿":"鼋","鼂":"鼌","鼉":"鼍","鼕":"冬","鼴":"鼹","齊":"齐","齋":"斋","齎":"赍","齏":"齑","齒":"齿","齔":"龀","齕":"龁","齗":"龂","齘":"𬹼","齙":"龅","齜":"龇","齟":"龃","齠":"龆","齡":"龄","齣":"出","齦":"龈","齧":"啮","齩":"𫜪","齪":"龊","齬":"龉","齭":"𫜭","齮":"𬺈","齯":"𫠜","齰":"𫜬","齲":"龋","齴":"𫜮","齶":"腭","齷":"龌","齼":"𬺓","齾":"𫜰","龍":"龙","龎":"厐","龐":"庞","龑":"䶮","龓":"𫜲","龔":"龚","龕":"龛","龜":"龟","龭":"𩨎","龯":"𨱆","鿁":"䜤","鿓":"鿒","𠁞":"𠀾","𠌥":"𠆿","𠏢":"𠉗","𠐊":"𫝋","𠗣":"㓆","𠞆":"𠛆","𠠎":"𠚳","𠬙":"𪠡","𠽃":"𪠺","𠿕":"𪜎","𡂡":"𪢒","𡃄":"𪡺","𡃕":"𠴛","𡃤":"𪢐","𡄔":"𠴢","𡄣":"𠵸","𡅏":"𠲥","𡅯":"𪢖","𡑍":"𫭼","𡑭":"𡋗","𡓁":"𪤄","𡓾":"𡋀","𡔖":"𡍣","𡞵":"㛟","𡟫":"𫝪","𡠹":"㛿","𡢃":"㛠","𡮉":"𡭜","𡮣":"𡭬","𡳳":"𡳃","𡸗":"𪨩","𡹬":"𪨹","𡻕":"岁","𡽗":"𡸃","𡾱":"㟜","𡿖":"𪩛","𢍰":"𪪴","𢠼":"𢙑","𢣐":"𪬚","𢣚":"𢘝","𢣭":"𢘞","𢤩":"𪫡","𢤱":"𢘙","𢤿":"𪬯","𢯷":"𪭝","𢶒":"𪭯","𢶫":"𢫞","𢷮":"𢫊","𢹿":"𢬦","𢺳":"𪮳","𣈶":"暅","𣋋":"𣈣","𣍐":"𫧃","𣙎":"㭣","𣜬":"𪳗","𣝕":"𣘷","𣞻":"𣘓","𣠩":"𣞎","𣠲":"𣑶","𣯩":"𣯣","𣯴":"𣭤","𣯶":"毶","𣽏":"𪶮","𣾷":"㳢","𣿉":"𣶫","𤁣":"𣺽","𤄷":"𪶒","𤅶":"𣷷","𤑳":"𤎻","𤑹":"𪹀","𤒎":"𤊀","𤒻":"𪹹","𤓌":"𪹠","𤓎":"𤎺","𤓩":"𤊰","𤘀":"𪺣","𤛮":"𤙯","𤛱":"𫞢","𤜆":"𪺪","𤠮":"𪺸","𤢟":"𤝢","𤢻":"𢢐","𤩂":"𫞧","𤪺":"㻘","𤫩":"㻏","𤬅":"𪼴","𤳷":"𪽝","𤳸":"𤳄","𤷃":"𪽭","𤸫":"𤶧","𤺔":"𪽴","𥊝":"𥅿","𥌃":"𥅘","𥏝":"𪿊","𥕥":"𥐰","𥖅":"𥐯","𥖲":"𪿞","𥗇":"𪿵","𥗽":"𬒗","𥜐":"𫀓","𥜰":"𫀌","𥞵":"𥞦","𥢢":"䅪","𥢶":"𫞷","𥢷":"𫀮","𥨐":"𥧂","𥪂":"𥩺","𥯤":"𫁳","𥴨":"𫂖","𥴼":"𫁺","𥵃":"𥱔","𥵊":"𥭉","𥶽":"𫁱","𥸠":"𥮋","𥻦":"𫂿","𥼽":"𥹥","𥽖":"𥺇","𥾯":"𫄝","𥿊":"𦈈","𦀖":"𫄦","𦂅":"𦈒","𦃄":"𦈗","𦃩":"𫄯","𦅇":"𫄪","𦅈":"𫄵","𦆲":"𫟇","𦒀":"𫅥","𦔖":"𫅼","𦘧":"𡳒","𦟼":"𫆝","𦠅":"𫞅","𦡝":"𫆫","𦢈":"𣍨","𦣎":"𦟗","𦧺":"𫇘","𦪙":"䑽","𦪽":"𦨩","𦱌":"𫇪","𦾟":"𦶻","𧎈":"𧌥","𧒯":"𫊹","𧔥":"𧒭","𧕟":"𧉐","𧜗":"䘞","𧜵":"䙊","𧝞":"䘛","𧞫":"𫌋","𧟀":"𧝧","𧡴":"𫌫","𧢄":"𫌬","𧦝":"𫍞","𧦧":"𫍟","𧩕":"𫍭","𧩙":"𬣥","𧩼":"𫍶","𧫝":"𫍺","𧬤":"𫍼","𧭈":"𫍾","𧭹":"𫍐","𧳟":"𧳕","𧵳":"䞌","𧶔":"𧹓","𧶧":"䞎","𧷎":"𪠀","𧸘":"𫎨","𧹈":"𪥠","𧽯":"𫎸","𨂐":"𫏌","𨄣":"𨀱","𨅍":"𨁴","𨆪":"𫏕","𨇁":"𧿈","𨇞":"𨅫","𨇤":"𫏨","𨇰":"𫏞","𨇽":"𫏑","𨈊":"𨂺","𨈌":"𨄄","𨊰":"䢀","𨊸":"䢁","𨊻":"𨐆","𨋢":"䢂","𨌈":"𫐍","𨍰":"𫐔","𨎌":"𫐋","𨎮":"𨐉","𨏠":"𨐇","𨏥":"𨐊","𨞺":"𫟫","𨟊":"𫟬","𨢿":"𨡙","𨣈":"𨡺","𨣞":"𨟳","𨣧":"𨠨","𨤻":"𨤰","𨥛":"𨱀","𨥟":"𫓫","𨦫":"䦀","𨧀":"𬭊","𨧜":"䦁","𨧰":"𫟽","𨧱":"𨱊","𨨏":"𬭛","𨨛":"𫓼","𨨢":"𫓽","𨩰":"𫟾","𨪕":"𫓮","𨫒":"𨱐","𨬖":"𫔏","𨭆":"𬭶","𨭎":"𬭳","𨭖":"𫔑","𨭸":"𫔐","𨮂":"𨱕","𨮳":"𫔒","𨯅":"䥿","𨯟":"𫔓","𨰃":"𫔉","𨰋":"𫓳","𨰥":"𫔕","𨰲":"𫔃","𨲳":"𫔖","𨳑":"𨸁","𨳕":"𨸀","𨴗":"𨸅","𨴹":"𫔲","𨵩":"𨸆","𨵸":"𨸇","𨶀":"𨸉","𨶏":"𨸊","𨶮":"𨸌","𨶲":"𨸋","𨷲":"𨸎","𨼳":"𫔽","𨽏":"𨸘","𩀨":"𫕚","𩅙":"𫕨","𩎖":"𫖑","𩎢":"𩏾","𩏂":"𫖓","𩏠":"𫖖","𩏪":"𩏽","𩏷":"𫃗","𩑔":"𫖪","𩒎":"𫖭","𩓣":"𩖕","𩓥":"𫖵","𩔑":"𫖷","𩔳":"𫖴","𩖰":"𫠇","𩗀":"𩙦","𩗓":"𫗈","𩗴":"𫗉","𩘀":"𩙩","𩘝":"𩙭","𩘹":"𩙨","𩘺":"𩙬","𩙈":"𩙰","𩚛":"𩟿","𩚥":"𩠀","𩚩":"𫗡","𩚵":"𩠁","𩛆":"𩠂","𩛌":"𫗤","𩛡":"𫗨","𩛩":"𩠃","𩜇":"𩠉","𩜦":"𩠆","𩜵":"𩠊","𩝔":"𩠋","𩝽":"𫗳","𩞄":"𩠎","𩞦":"𩠏","𩞯":"䭪","𩟐":"𩠅","𩟗":"𫗚","𩠴":"𩠠","𩡣":"𩡖","𩡺":"𩧦","𩢡":"𩧬","𩢴":"𩧵","𩢸":"𩧳","𩢾":"𩧮","𩣏":"𩧶","𩣑":"䯃","𩣫":"𩧸","𩣵":"𩧻","𩣺":"𩧼","𩤊":"𩧩","𩤙":"𩨆","𩤲":"𩨉","𩤸":"𩨅","𩥄":"𩨋","𩥇":"𩨍","𩥉":"𩧱","𩥑":"𩨌","𩦠":"𫠌","𩧆":"𩨐","𩭙":"𩬣","𩯁":"𫙂","𩯳":"𩯒","𩰀":"𩬤","𩰹":"𩰰","𩳤":"𩲒","𩴵":"𩴌","𩵦":"𫠏","𩵩":"𩽺","𩵹":"𩽻","𩶁":"𫚎","𩶘":"䲞","𩶰":"𩽿","𩶱":"𩽽","𩷰":"𩾄","𩸃":"𩾅","𩸄":"𫚝","𩸡":"𫚟","𩸦":"𩾆","𩻗":"𫚨","𩻬":"𫚩","𩻮":"𫚘","𩼶":"𫚬","𩽇":"𩾎","𩿅":"𫠖","𩿤":"𫛠","𩿪":"𪉄","𪀖":"𫛧","𪀦":"𪉅","𪀾":"𪉋","𪁈":"𪉉","𪁖":"𪉌","𪂆":"𪉎","𪃍":"𪉐","𪃏":"𪉏","𪃒":"𫛻","𪃧":"𫛹","𪄆":"𪉔","𪄕":"𪉒","𪅂":"𫜂","𪆷":"𫛾","𪇳":"𪉕","𪈼":"𱊜","𪉸":"𫜊","𪋿":"𫧮","𪌭":"𫜓","𪍠":"𫜕","𪓰":"𫜟","𪔵":"𪔭","𪘀":"𪚏","𪘯":"𪚐","𪙏":"𫜯","𪟖":"𠛾","𪷓":"𣶭","𫒡":"𫓷","𫜦":"𫜫"};function A(e,t){var i,n,o,r,s="";if(r=t?g:h,"string"!=typeof e)return e;for(i=0;i13312&&o<40899||o>63744&&o<64106)){s+=n;continue}let t=r[n];s+=t||n}return s}var u=function(e){return A(e,!0)},p=function(e){return A(e,!1)};const f=(e,t)=>{void 0!==t.nextSibling?t.parentNode.insertBefore(e,t.nextSibling):t.parentNode.appendChild(e)},m=e=>{for(var t=0;void 0!==e.childNodes[t];t++)if("#text"===e.childNodes[t].nodeName&&0!==e.childNodes[t].textContent.trim().length){var i=e.childNodes[t],n=0;e.childNodes[t].textContent.split(/(\s+|\S+)/).forEach(e=>{if(0===e.length)return;var t=e.trim().length;if(0===t){let t=document.createTextNode(e);return f(t,i),n++,void(i=t)}var o=Math.floor(t/2);0===o&&(o=1);const r=document.createElement("b");if(r.textContent=e.slice(0,o),f(r,i),n++,i=r,1===e.length)return;let s=document.createTextNode(e.slice(o));f(s,i),n++,i=s}),e.removeChild(e.childNodes[t]),t+=n-1}};var w={B:!0,META:!0,LINK:!0,SCRIPT:!0,STYLE:!0};const B=e=>{if(null!==e&&void 0!==e.body)for(var t=e.body.getElementsByTagName("*"),i=0;void 0!==t[i];i++)if(!w[t[i].nodeName]&&1===t[i].nodeType)if("IFRAME"===t[i].nodeName)B(t[i].contentDocument);else{if(0===t[i].childNodes.length)continue;m(t[i])}},y=["color-0","color-1","color-2","color-3","line-0","line-1","line-2","line-3"],b=["#FEF3CD","#FBFACC","#CEFACD","#CDE9FA"],C=["#FF0000","#000080","#0000FF","#2EFF2E"],v=(e,t,i)=>{let n="background",o="#FEF3CD";if("number"==typeof e){if(e>=0&&e-1,i=parseInt(y[e].split("-")[1]);n=t?"background":"underline",o=t?b[i]:C[i]}}else n=e.split("-")[0],o=e.split("-")[1];const r="background"===n?E(o,.8):o;switch(n){case"background":return t?`background: ${r}; mix-blend-mode: multiply;`:`background: ${r};`;case"underline":return t?i?`border-right: 2px solid ${r};`:`border-bottom: 2px solid ${r};`:`text-decoration: underline; text-decoration-color: ${r}; text-decoration-thickness: 2px; text-decoration-skip-ink: none;`;case"strikethrough":return t?`background: linear-gradient(transparent calc(50% - 1px), ${r} calc(50% - 1px), ${r} calc(50% + 1px), transparent calc(50% + 1px));`:i?`background: linear-gradient(to right, transparent calc(50% - 1px), ${r} calc(50% - 1px), ${r} calc(50% + 1px), transparent calc(50% + 1px));`:`text-decoration: line-through; text-decoration-color: ${r}; text-decoration-thickness: 2px; text-decoration-skip-ink: none;`;case"wavy":const e=o.replace("#","%23");if(t){return`background-image: ${`url("data:image/svg+xml,%3Csvg xmlns='http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg' width='6' height='3'%3E%3Cpath d='M0 2 Q1.5 0 3 2 Q4.5 4 6 2' fill='none' stroke='${e}' stroke-width='1.5'%2F%3E%3C%2Fsvg%3E")`}; background-repeat: repeat-x; background-position: bottom; background-size: 6px 3px;`}if(i){return`background-image: ${`url("data:image/svg+xml,%3Csvg xmlns='http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg' width='3' height='6'%3E%3Cpath d='M2 0 Q0 1.5 2 3 Q4 4.5 2 6' fill='none' stroke='${e}' stroke-width='1.5'%2F%3E%3C%2Fsvg%3E")`}; background-repeat: repeat-y; background-position: right; background-size: 3px 6px;`}return`text-decoration-line: underline; text-decoration-style: wavy; text-decoration-color: ${r}; text-decoration-thickness: 2px; text-decoration-skip-ink: none;`;default:return`background: ${r};`}},E=(e,t)=>{const i=e.replace("#",""),n=3===i.length?i.split("").map(e=>e+e).join(""):i;if(6!==n.length)return e;return`rgba(${parseInt(n.slice(0,2),16)}, ${parseInt(n.slice(2,4),16)}, ${parseInt(n.slice(4,6),16)}, ${t})`},x=()=>"undefined"!=typeof window&&"object"==typeof window.process&&"renderer"===window.process.type||(!("undefined"==typeof process||"object"!=typeof process.versions||!process.versions.electron)||"object"==typeof navigator&&"string"==typeof navigator.userAgent&&navigator.userAgent.indexOf("Electron")>=0),I=e=>Array.from(e.querySelectorAll("h1,h2,h3,h4,h5,h6,p,div,ul,dl,ol,li,dt,dd,pre,blockquote,address,kookitmarker")),D=e=>{var t=e.children;let i=!1;for(var n=/^(address|kookitmarker|section|blockquote|body|center|dir|div|dl|fieldset|form|h[1-6]|hr|isindex|menu|noframes|noscript|ol|p|pre|table|ul|dd|dt|frameset|li|tbody|td|tfoot|th|thead|tr|html)$/i,o=0;o(e||"").trim());return 0===t.length?"":t.map(([e,t])=>`${e}: ${t}`).join("; ")}(Object.assign(Object.assign({},i),n))}function S(e,t){if(!e||!t)return null;const i=Q(e)[t.toLowerCase()];if(!i)return null;const n=i.replace(/\s*!important\s*$/i,"").trim().match(/^(-?\d+(?:\.\d+)?)(?:px)?$/i);if(!n)return null;const o=parseFloat(n[1]);return Number.isFinite(o)&&o>0?o:null}const M=e=>{const t=(e.match(/[\u4e00-\u9fff\u3000-\u303f\uf900-\ufaff]/g)||[]).length,i=(e.match(/[\u3040-\u309f\u30a0-\u30ff]/g)||[]).length,n=(e.match(/[\uac00-\ud7af\u1100-\u11ff]/g)||[]).length;return(t+i+n)/e.length<=.3?"en":t>=i&&t>=n?"zh":i>=t&&i>=n?"ja":"ko"},F=["kookit-note","kookit-note-icon","kookit-word-def","kookit-note-tooltip","kookit-word-tooltip","kookit-text-rule-replace","kookit-text-rule-delete","kookit-text-rule-highlight","kookit-translation-host"],L=(e,t)=>e.replace(/\$(\$|\d+)/g,(e,i)=>{var n;if("$"===i)return"$";const o=parseInt(i,10);return null!==(n=t[o])&&void 0!==n?n:""}),T=(e,t)=>{const i=e.createTreeWalker(t,NodeFilter.SHOW_TEXT,{acceptNode:e=>(e=>{let t=e.parentElement;for(;t;){const e=t.tagName;if("SCRIPT"===e||"STYLE"===e||"RUBY"===e)return!0;for(let e=0;e{var o;const r=t.textContent||"";if(i.lastIndex=0,!i.test(r))return;i.lastIndex=0;const s=e.createDocumentFragment();let a,l=0;for(;null!==(a=i.exec(r));){const t=r.slice(l,a.index);t&&s.appendChild(e.createTextNode(t));const o=a[0],c=e.createElement("span");if("replace"===n.type){c.className="kookit-text-rule-replace";const e="regex"===n.matchType?L(n.replacement||"",a):n.replacement||"";c.setAttribute("data-kookit-replacement",e)}else if("delete"===n.type)c.className="kookit-text-rule-delete";else if("highlight"===n.type&&(c.className="kookit-text-rule-highlight",n.highlightStyle&&n.highlightColor)){const e=`${n.highlightStyle}-${n.highlightColor}`,t=v(e,!1,!1);c.setAttribute("style",t)}c.appendChild(e.createTextNode(o)),s.appendChild(c),l=a.index+o.length,0===o.length&&i.lastIndex++}if(0===l)return;const c=r.slice(l);c&&s.appendChild(e.createTextNode(c)),null===(o=t.parentNode)||void 0===o||o.replaceChild(s,t)},H=(e,t)=>{const i=e.querySelectorAll("h1,h2,h3,h4,h5,h6,p,div,ul,dl,ol,pre,li,dt,dd,blockquote,address,kookitmarker"),n="regex"===t.matchType?new RegExp(t.pattern,"g"):new RegExp(t.pattern.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"g");for(let o=0;o"vertical"===window.textOrientation,O=e=>e?parseFloat(e+""):0,G=e=>{var t;if(e){return e.getBoundingClientRect().left-((null===(t=e.offsetParent)||void 0===t?void 0:t.getBoundingClientRect().left)||0)}return 0},N=e=>{var t;if(e){return e.getBoundingClientRect().top-((null===(t=e.offsetParent)||void 0===t?void 0:t.getBoundingClientRect().top)||0)}return 0},U=(e,t)=>d(void 0,void 0,void 0,function*(){let i="";if(e&&e.load){let t=yield e.load(),n=yield fetch(t),o=yield n.blob();i=yield o.text()}return t||(i=yield z(i,e)),i}),W=e=>Array.from(e.querySelectorAll("img, image")),P=e=>e.getAttribute("src")||e.getAttribute("href")||e.getAttribute("xlink:href")||null,j=e=>{const t=[],i=e.querySelectorAll("img, svg, image");for(const e of i){const i=e.tagName.toLowerCase();if("img"===i){const i=P(e);i&&t.push(i)}else if("svg"===i)e.querySelectorAll("image").forEach(i=>{if(i.closest("svg")!==e)return;const n=P(i);n&&t.push(n)});else if("image"===i&&!e.closest("svg")){const i=P(e);i&&t.push(i)}}return t},z=(e,t)=>d(void 0,void 0,void 0,function*(){var i;let n=(new DOMParser).parseFromString(e,"text/html");if(t&&t.loadAsset){let e=t.loadAsset,i=W(n);for(let t=0;t!D(e));for(let t of e)if(t.textContent&&(null===(i=t.textContent)||void 0===i?void 0:i.trim())){let e=t.getAttribute("id")||"kookit-trans-"+Math.random().toString(36).substr(2,9);window.transMap[t.textContent]&&(e=window.transMap[t.textContent].id),t.setAttribute("id",e),t.classList.add("kookit-translation-host"),t.classList.add("kookit-translation-loading"),t.setAttribute("data-kookit-translation","");let i=t.textContent||"";window.transMap[i]={id:e}}}let o=W(n);if(o.length>0){for(let e=0;e{var n,o=document.createElement("iframe");o.style.width=i?100*(i-.4)+"%":"100%",o.style.margin="0",o.style.border="0",o.style.padding="0",o.style.minHeight="calc(100% - 2px)",o.style.fontSize="100%",o.style.font="inherit",o.scrolling="no",o.tabIndex=0,o.id="kookit-iframe",o.style.verticalAlign="baseline","yes"!==t&&o.setAttribute("sandbox","allow-same-origin"),e.innerHTML="",e.appendChild(o);const r=o.contentDocument||(null===(n=o.contentWindow)||void 0===n?void 0:n.document);r&&r.documentElement&&(r.documentElement.lang="en"),i&&(e.scrollLeft=e.scrollWidth/2-e.clientWidth/2)},q=(e,t,i)=>{if(Y()&&"scroll"!==e){let n=Math.floor(i.clientHeight/12),o=n%2==0?n:n-1;return{totalPage:"single"===e?Math.round(parseFloat(t.body.scrollHeight/(t.body.clientHeight+o)+"")):2*Math.round(parseFloat(t.body.scrollHeight/(t.body.clientHeight+o)+"")),currentPage:Math.round(parseFloat(O(t.body.scrollTop)/(t.body.clientHeight+o)+""))+1}}let n=Math.floor(i.clientWidth/12),o=n%2==0?n:n-1;return{totalPage:"scroll"===e?Math.floor(i.scrollHeight/(i.clientHeight-50)):"single"===e?Math.round(parseFloat(t.body.scrollWidth/(t.body.clientWidth+o)+"")):2*Math.round(parseFloat(t.body.scrollWidth/(t.body.clientWidth+o)+"")),currentPage:"scroll"===e?Math.floor(i.scrollTop/(i.clientHeight-50))+1:Math.round(parseFloat(O(t.body.scrollLeft)/(t.body.clientWidth+o)+""))+1}},J=e=>d(void 0,void 0,void 0,function*(){const t=`${x()?".":""}/lib/highlight-js/${e}`;return yield(yield fetch(t)).text()}),V=e=>{const t=document.createElement("script");t.textContent=e,document.head.appendChild(t)},X=(e,t)=>d(void 0,void 0,void 0,function*(){if(yield(e=>d(void 0,void 0,void 0,function*(){window.hljs||V(yield J("highlight.min.js")),window.kookitHljsLanguage!==e&&(V(yield J(`languages/${e}.min.js`)),window.kookitHljsLanguage=e)}))(t),!e.head.querySelector("#kookit-code-highlighter-style")){const t=document.createElement("style");t.id="kookit-code-highlighter-style",t.textContent=yield J("default.min.css"),e.head.appendChild(t)}const i="language-"+t;(e=>Array.from(e.querySelectorAll("code")))(e).forEach(e=>{e.classList.add(i),delete e.dataset.highlighted,window.hljs.highlightElement(e)})}),Z=e=>d(void 0,void 0,void 0,function*(){if(window.bookLayout){const t=()=>`${x()?".":""}/lib/${window.bookLayout}-css/${window.bookLayout}.min.css`,i=e=>d(void 0,void 0,void 0,function*(){return yield(yield fetch(e)).text()}),n=()=>d(void 0,void 0,void 0,function*(){return yield i(t())}),o=document.createElement("style");o.id="kookit-book-layout-style",o.textContent=yield n(),e.head.appendChild(o),e.body.classList.contains(window.bookLayout)||e.body.classList.add(window.bookLayout)}"Simplified To Traditional"===window.convertChinese?e.querySelectorAll("h1,h2,h3,h4,h5,h6,p,div,ul,dl,ol,pre,li,dt,dd,blockquote,address,kookitmarker").forEach(e=>{e.innerHTML=e.innerHTML.split("").map(e=>u(e)).join("")}):"Traditional To Simplified"===window.convertChinese&&e.querySelectorAll("h1,h2,h3,h4,h5,h6,p,div,ul,dl,ol,pre,li,dt,dd,blockquote,address,kookitmarker").forEach(e=>{e.innerHTML=e.innerHTML.split("").map(e=>p(e)).join("")}),"yes"===window.isIndent&&e.querySelectorAll("h1,h2,h3,h4,h5,h6,p,div,ul,dl,ol,pre,li,dt,dd,blockquote,address").forEach(e=>{for(let t of e.childNodes){if(t.nodeType===Node.TEXT_NODE){const i=(t.nodeValue||"").charAt(0);i&&""===i.trim()&&" "!==i&&"\n"!==i&&"\t"!==i&&e.setAttribute("style",(e.getAttribute("style")||"")+"text-indent: 0em !important;");break}if(t.nodeType===Node.ELEMENT_NODE&&"img"===t.tagName.toLowerCase()){e.setAttribute("style",(e.getAttribute("style")||"")+"text-indent: 0em !important;");break}}}),"yes"===window.isBionic&&B(e),window.codeHighlight&&(yield X(e,window.codeHighlight)),window.textRules&&window.textRules.length>0&&((e,t)=>{(e=>{const t=e.querySelectorAll(".kookit-text-rule-replace, .kookit-text-rule-delete, .kookit-text-rule-highlight");for(let e=0;ed(void 0,void 0,void 0,function*(){yield Z(e)}),_=(e,t,i,n)=>d(void 0,void 0,void 0,function*(){var o,r;let s=Math.floor(e.clientWidth/12),a=s%2==0?s:s-1,l="double"===t?2:1,c=(e.clientWidth-a)/l,g=Array.from(n.querySelectorAll("img, image"));yield Promise.all(g.map(e=>d(void 0,void 0,void 0,function*(){if("image"===e.tagName&&!e._naturalWidth){let i=yield(t=e.getAttribute("xlink:href"),d(void 0,void 0,void 0,function*(){const e=new Image;e.src=t;try{yield e.decode()}catch(e){console.error(e)}return e}));e._naturalWidth=i.naturalWidth,e._naturalHeight=i.naturalHeight}var t})));const h=e.clientWidth,A=e.clientHeight,u=n.body.clientHeight,p=e=>{if(!e)return 0;const t=getComputedStyle(e);return Math.min(e.clientWidth,c)-parseFloat(t.paddingLeft)-parseFloat(t.paddingRight)},f=e=>{if(!e)return 0;const t=getComputedStyle(e);return Math.min(e.clientHeight,A)-parseFloat(t.paddingTop)-parseFloat(t.paddingBottom)},m=g.map(e=>{const t=e.parentElement,i=null==t?void 0:t.parentElement;let n=e.getAttribute("width"),o=e.getAttribute("height");return!n&&e.getAttribute("style")&&(n=S(e.getAttribute("style"),"width")),!o&&e.getAttribute("style")&&(o=S(e.getAttribute("style"),"height")),n||(n="image"===e.tagName?e._naturalWidth:e.naturalWidth),o||(o="image"===e.tagName?e._naturalHeight:e.naturalHeight),{item:e,width:n||0,height:o||0,parentOffsetWidth:(null==t?void 0:t.offsetWidth)||0,parentClientWidth:p(t),parentClientHeight:f(t),grandClientWidth:p(i),grandClientHeight:f(i),grandTagName:(null==i?void 0:i.tagName)||"",existingStyle:e.getAttribute("style")||""}}).map(e=>{var n;const{item:o,width:r,height:s,parentOffsetWidth:a,parentClientWidth:l,parentClientHeight:d,grandClientWidth:g,grandClientHeight:p,grandTagName:f}=e;let m=0,w=0,B=!1,y=!1;if(i.startsWith("CB")&&"scroll"===t)w=a;else if(i.startsWith("CB")&&"single"===t)m=A,w=h;else if(l&&d&&r&&s){s/r>d/l?(m=d,w=parseInt(m*r/s+"")):(w=l,m=parseInt(w*s/r+"")),m>u&&"scroll"!==t&&(w=parseInt(w*(u/m)+""),m=u),B=!0}else l>0?(w=l,m=d,B=!0):"BODY"!==f&&g>0?(w=g,m=p,y=!0):(w=h,m=A);w=w?Math.min("scroll"===t||"single"===t?h:c,w):"scroll"===t||"single"===t?h:c,r&&s&&(r>s||m/w>s/r?m=w*(s/r):w=m*(r/s)),"scroll"!==t&&w&&m&&m>A&&(w*=A/m,m=A);const b=[];return(w||m)&&b.push(`max-width: ${w>0?w+"px":""};max-height:${m>0?m+"px":""}; margin: 0 auto; min-width: 0px; min-height: 0px;`),i.startsWith("CB")&&"scroll"===t&&b.push("margin-left: 0px; width: 100%;"),{item:o,styles:b,isSvgImage:"image"===o.tagName,maxWidth:w,maxHeight:m,parentItem:o.parentElement,grandItem:null===(n=o.parentElement)||void 0===n?void 0:n.parentElement,setParentIndent:B,setGrandIndent:y}});for(let e=0;e0&&e%20==0&&(yield new Promise(e=>setTimeout(e,0)));const n=m[e],{item:s,styles:a,isSvgImage:l,maxWidth:c,maxHeight:d}=n;if(n.setParentIndent&&n.parentItem&&(n.parentItem.style.textIndent="0px"),n.setGrandIndent&&n.grandItem&&(n.grandItem.style.textIndent="0px"),a.length>0){const e=s.getAttribute("style")||"";s.setAttribute("style",e+";"+a.join(";"))}if(l&&(null===(o=s.parentElement)||void 0===o||o.setAttribute("width",c),null===(r=s.parentElement)||void 0===r||r.setAttribute("height",d)),i.startsWith("CB")&&"scroll"!==t){const e=s.getBoundingClientRect().width,t=s.getAttribute("style")||"";s.setAttribute("style",t+`;margin-left: calc(50% - ${e/2}px);`)}}}),ee=(e,t,i)=>{let n=i.createElement("style");n.id="default-style",n.textContent="body{margin: 0px}",i.head.appendChild(n);const o=Y();if("scroll"===t)return;let r="double"===t?2:1;if(o){let t=Math.floor(e.clientHeight/12),n=t%2==0?t:t-1;i.documentElement.setAttribute("style",`writing-mode: vertical-rl; text-orientation: mixed; height: ${e.clientHeight+"px"};width: 100%;overflow-y: hidden;overflow-x: hidden;padding-left: 0px;padding-right: 0px;margin: 0px;box-sizing: border-box;touch-action:none; overscroll-behavior: none;max-width: inherit;column-fill: auto;column-gap: ${n}px; column-width: ${(e.clientHeight-n)/r}px;`),i.body.setAttribute("style","margin: 0px !important; padding: 0px !important;")}else{let t=Math.floor(e.clientWidth/12),n=t%2==0?t:t-1;i.documentElement.setAttribute("style",`width: ${e.clientWidth+"px"};height: 100%;overflow-y: hidden;overflow-X: hidden;padding-left: 0px;padding-right: 0px;margin: 0px;box-sizing: border-box;touch-action:none; overscroll-behavior: none;max-width: inherit;column-fill: auto;column-gap: ${n}px; column-width: ${(e.clientWidth-n)/r}px;`),i.body.setAttribute("style","margin: 0px !important; padding: 0px !important;")}};function te(e){const t=e.getSelection();if(!t)return null;if(t.rangeCount>0){return t.getRangeAt(0).startContainer.parentElement}return null}const ie=e=>{var t;if(!e||!e.body)return;const i=new Set(["CODE","PRE","SCRIPT","STYLE","KBD","SAMP","A"]);function n(e){const t=e.length,i=[];for(let e=2;e=3&&(e+1)%6==0&&i.push(e+1);return i}const o=/[A-Za-zÀ-ɏ]{9,}/g,r=e.createTreeWalker(e.body,NodeFilter.SHOW_TEXT,{acceptNode(e){var t,n;const o=e.parentElement;return o?i.has(null===(t=o.tagName)||void 0===t?void 0:t.toUpperCase())||(null===(n=o.classList)||void 0===n?void 0:n.contains("kookit-hyphen"))?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}}),s=[];let a;for(;a=r.nextNode();)s.push(a);for(const i of s){const r=i.textContent||"";if(o.lastIndex=0,!o.test(r))continue;o.lastIndex=0;const s=[];let a;for(;null!==(a=o.exec(r));){const e=n(a[0]);e.length&&s.push({start:a.index,end:a.index+a[0].length,breaks:e})}if(!s.length)continue;const l=i.parentNode;if(!l)continue;const c=[];for(const e of s)for(const t of e.breaks)c.push(e.start+t);c.sort((e,t)=>e-t);let d=i;for(const i of c){const n=(null===(t=d.textContent)||void 0===t?void 0:t.length)||0;if(i<=0||i>=n)continue;const o=d.splitText(i),r=e.createElement("span");r.className="kookit-hyphen",l.insertBefore(r,o),d=o}}},ne=e=>"string"==typeof e||e instanceof String;class oe{constructor(e){this.book=e,this.chapterList=[],this.flattenChapters=[],this.chapterDocList=[]}unescapeHtml(e){if(!e)return"";return(new DOMParser).parseFromString(e,"text/html").documentElement.textContent||""}getChapter(e){return d(this,void 0,void 0,function*(){return this.chapterList=e?yield Promise.all(e.map((e,t)=>d(this,void 0,void 0,function*(){let i=t;try{if(e.href){const t=yield this.book.resolveHrefIndex(e.href);t&&(i=t.index)}}catch(e){console.error(e)}return{label:this.unescapeHtml(e.label)?this.unescapeHtml(e.label):i+"",href:e.href?e.href:"title"+i,index:i,subitems:e.subitems?yield this.getChapter(e.subitems):[]}}))):yield Promise.all(this.book.sections.map((e,t)=>d(this,void 0,void 0,function*(){return{label:e&&e.label&&this.unescapeHtml(e.label)?this.unescapeHtml(e.label):t+"",href:e&&e.href?e.href:"title"+t,index:t,subitems:e&&e.subitems?yield this.getChapter(e.subitems):[]}}))),this.flattenChapters=this.flatChapter(this.chapterList),this.chapterList})}getChapterDoc(){return d(this,void 0,void 0,function*(){const e=this.flattenChapters.map(e=>e.index);return this.book.sections.map((t,i)=>e.indexOf(i)>-1?{label:this.unescapeHtml(this.flattenChapters[e.indexOf(i)].label),href:this.flattenChapters[e.indexOf(i)].href,text:t}:{label:"",href:"",text:t})})}flatChapter(e){let t=[];for(let i=0;i0?(t.push(e[i]),t=t.concat(this.flatChapter(e[i].subitems))):t.push(e[i]);return t}getMetadata(){return new Promise((e,t)=>d(this,void 0,void 0,function*(){const i=this.book.metadata;let n=i.author&&i.author[0]&&i.author[0].name&&ne(i.author[0].name)?i.author[0].name:i.author&&i.author[0]&&ne(i.author[0])?i.author[0]:i.author&&ne(i.author)?i.author:"";try{const t=yield this.book.getCover();var o=new FileReader;o.readAsDataURL(t),o.onloadend=()=>{e(Object.assign(Object.assign({},i),{name:i.title,author:n,description:i.description,publisher:i.publisher,cover:o.result}))}}catch(o){console.error(o);try{e(Object.assign(Object.assign({},i),{name:i.title,author:n,description:i.description,publisher:i.publisher,cover:""}))}catch(e){console.error(e),t(e)}}}))}}const re=(e,t)=>[-1,...t,e.length].reduce(({xs:t,a:i},n)=>({xs:t?.concat([e.slice(i+1,n)])??[],a:n}),{}).xs,se=/\d/,ae=/^epubcfi\((.*)\)$/,le=e=>e.replace(/[\^[\](),;=]/g,"^$&"),ce=(e,t)=>{return i=([e])=>e===t,e.map((e,t,n)=>i(e,t,n)?t:null).filter(e=>null!=e);var i},de=e=>{const t=[];let i;for(const[n,o]of e){if("/"===n)t.push({index:o});else{const e=t[t.length-1];if(":"===n)e.offset=o;else if("~"===n)e.temporal=o;else if("@"===n)e.spatial=(e.spatial??[]).concat(o);else if(";s"===n)e.side=o;else if("["===n){if("/"!==i||!o){e.text=(e.text??[]).concat(o);continue}e.id=o}}i=n}return t},ge=e=>re(e,ce(e,"!")).map(de),he=e=>{const t=(e=>{const t=[];let i,n,o="";const r=e=>(t.push(e),i=null,o=""),s=e=>(o+=e,n=!1);for(const t of Array.from(e.trim()).concat(""))if("^"!==t||n){if("!"===i)r(["!"]);else if(","===i)r([","]);else if("/"===i||":"===i){if(se.test(t)){s(t);continue}r([i,parseInt(o)])}else if("~"===i){if(se.test(t)||"."===t){s(t);continue}r(["~",parseFloat(o)])}else if("@"===i){if(":"===t){r(["@",parseFloat(o)]),i="@";continue}if(se.test(t)||"."===t){s(t);continue}r(["@",parseFloat(o)])}else{if("["===i){";"!==t||n?","!==t||n?"]"!==t||n?s(t):r(["[",o]):(r(["[",o]),i="["):(r(["[",o]),i=";");continue}if(i?.startsWith(";")){"="!==t||n?";"!==t||n?"]"!==t||n?s(t):r([i,o]):(r([i,o]),i=";"):(i=`;${o}`,o="");continue}}"/"!==t&&":"!==t&&"~"!==t&&"@"!==t&&"["!==t&&"!"!==t&&","!==t||(i=t)}else n=!0;return t})((i=e,i.match(ae)?.[1]??i));var i;const n=ce(t,",");if(!n.length)return ge(t);const[o,r,s]=re(t,n).map(ge);return{parent:o,start:r,end:s}},Ae=({index:e,id:t,offset:i,temporal:n,spatial:o,text:r,side:s})=>{const a=s?`;s=${s}`:"";return`/${e}`+(t?`[${le(t)}${a}]`:"")+(null!=i&&e%2?`:${i}`:"")+(n?`~${n}`:"")+(o?`@${o.join(":")}`:"")+(r||!t&&s?"["+(r?.map(le)?.join(",")??"")+a+"]":"")},ue=e=>e.parent?[e.parent,e.start,e.end].map(ue).join(","):e.map(e=>e.map(Ae).join("")).join("!"),pe=e=>{return t=ue(e),ae.test(t)?t:`epubcfi(${t})`;var t},fe=(e,t)=>{return"string"==typeof e?pe(fe(he(e),t)):e.parent?(i=e.parent,n=e[t?"end":"start"],i.slice(0,-1).concat([i[i.length-1].concat(n[0])]).concat(n.slice(1))):e;var i,n},me=({nodeType:e})=>3===e||4===e,we=({nodeType:e})=>1===e,Be=e=>{const t=Array.from(e.childNodes).filter(e=>me(e)||we(e)).reduce((e,t)=>{let i=e[e.length-1];return i?me(t)?Array.isArray(i)?i.push(t):me(i)?e[e.length-1]=[i,t]:e.push(t):we(i)?e.push(null,t):e.push(t):e.push(t),e},[]);return we(t[0])&&t.unshift("first"),we(t[t.length-1])&&t.push("last"),t.unshift("before"),t.push("after"),t},ye=(e,t)=>e?Be(e)[t]:null,be=(e,t)=>{const{id:i}=t[t.length-1];if(i){const t=e.ownerDocument.getElementById(i);if(t)return{node:t,offset:0}}for(const{index:i}of t){const t=ye(e,i);if("first"===t)return{node:e.firstChild??e};if("last"===t)return{node:e.lastChild??e};if("before"===t)return{node:e,before:!0};if("after"===t)return{node:e,after:!0};e=t}const{offset:n}=t[t.length-1];if(!Array.isArray(e))return{node:e,offset:n};let o=0;for(const t of e){const{length:e}=t.nodeValue;if(o+e>=n)return{node:t,offset:n-o};o+=e}},Ce=(e,t)=>{const{parentNode:i,id:n}=e,o=Be(i),r=o.findIndex(t=>Array.isArray(t)?t.some(t=>t===e):t===e),s=o[r];if(Array.isArray(s)){let i=0;for(const n of s){if(n===e){i+=t;break}i+=n.nodeValue.length}t=i}const a={id:n,index:r,offset:t};return i!==e.ownerDocument.documentElement?Ce(i).concat(a):[a]},ve=(e,t)=>be(e.documentElement,fe(t)).node,Ee="urn:oasis:names:tc:opendocument:xmlns:container",xe="http://www.w3.org/1999/xhtml",Ie="http://www.idpf.org/2007/opf",De="http://www.idpf.org/2007/ops",Qe="http://purl.org/dc/elements/1.1/",ke="http://www.w3.org/2001/04/xmlenc#",Se="http://www.daisy.org/z3986/2005/ncx/",Me="http://www.w3.org/1999/xlink",Fe="http://www.w3.org/ns/SMIL",Le={XML:"application/xml",NCX:"application/x-dtbncx+xml",XHTML:"application/xhtml+xml",HTML:"text/html",CSS:"text/css",SVG:"image/svg+xml",JS:/\/(x-)?(javascript|ecmascript)/},Te=e=>e.toLowerCase().replace(/[-:](.)/g,(e,t)=>t.toUpperCase()),Re=(e,t,i)=>i?i=>i.getAttribute(e)?.split(/\s/)?.includes(t):"function"==typeof t?i=>t(i.getAttribute(e)):i=>i.getAttribute(e)===t,He=(...e)=>t=>t?Object.fromEntries(e.map(e=>[Te(e),t.getAttribute(e)])):null,Ye=e=>{return t=e?.textContent,t?t.trim().replace(/\s{2,}/g," "):"";var t},Oe=(e,t)=>{const i=e.lookupNamespaceURI(null)===t||e.lookupPrefix(t),n=i?(e,i)=>e=>e.namespaceURI===t&&e.localName===i:(e,t)=>e=>e.localName===t;return{$:(e,t)=>[...e.children].find(n(e,t)),$$:(e,t)=>[...e.children].filter(n(e,t)),$$$:i?(e,i)=>[...e.getElementsByTagNameNS(t,i)]:(e,i)=>[...e.getElementsByTagName(t,i)]}},Ge=(e,t)=>{try{e=e.replace(/%2c/gi,",").replace(/%3a/gi,":");const i="whatever://whatever/";return decodeURI(new URL(e,i+t).href.replace(i,""))}catch(t){return console.warn(t),e}},Ne=e=>/^(?!blob)\w+:/i.test(e),Ue=async(e,t,i)=>{const n=[];e.replace(t,(...e)=>(n.push(e),null));const o=[];for(const e of n)o.push(await i(...e));return e.replace(t,()=>o.shift())},We=e=>e.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),Pe={attrs:["dir","xml:lang"]},je={name:"alternate-script",many:!0,...Pe,props:["file-as"]},ze={many:!0,...Pe,props:[{name:"role",many:!0,attrs:["scheme"]},"file-as",je]},Ke=[{name:"title",many:!0,...Pe,props:["title-type","display-seq","file-as",je]},{name:"identifier",many:!0,props:[{name:"identifier-type",attrs:["scheme"]}]},{name:"language",many:!0},{name:"creator",...ze},{name:"contributor",...ze},{name:"publisher",...Pe,props:["file-as",je]},{name:"description",...Pe,props:[je]},{name:"rights",...Pe,props:[je]},{name:"date"},{name:"dcterms:modified",type:"meta"},{name:"subject",many:!0,...Pe,props:["term","authority",je]},{name:"belongs-to-collection",type:"meta",many:!0,...Pe,props:["collection-type","group-position","dcterms:identifier","file-as",je,{name:"belongs-to-collection",recursive:!0}]}],qe=(e,t=e=>e)=>{const{$:i,$$:n,$$$:o}=Oe(e,xe),r=e=>n=>{const o=i(n,"a")??i(n,"span"),r=i(n,"ol"),a=(e=>e?decodeURI(t(e)):null)(o?.getAttribute("href")),l={label:Ye(o)||o?.getAttribute("title"),href:a,subitems:s(r)};return e&&(l.type=o?.getAttributeNS(De,"type")?.split(/\s/)),l},s=(e,t)=>e?n(e,"li").map(r(t)):null,a=(e,t)=>s(i(e,"ol"),t),l=o(e,"nav");let c=null,d=null,g=null,h=[];for(const e of l){const t=e.getAttributeNS(De,"type")?.split(/\s/)??[];t.includes("toc")?c??=a(e):t.includes("page-list")?d??=a(e):t.includes("landmarks")?g??=a(e,!0):h.push({label:Ye(e.firstElementChild),type:t,list:a(e)})}return{toc:c,pageList:d,landmarks:g,others:h}},Je=(e,t=e=>e)=>{const{$:i,$$:n}=Oe(e,Se),o=e=>{const r=i(e,"navLabel"),s=i(e,"content"),a=Ye(r),l=(e=>e?decodeURI(t(e)):null)(s.getAttribute("src"));if("navPoint"===e.localName){const t=n(e,"navPoint");return{label:a,href:l,subitems:t.length?t.map(o):null}}return{label:a,href:l}},r=(e,t)=>n(e,t).map(o),s=(t,n)=>{const o=i(e.documentElement,t);return o?r(o,n):null};return{toc:s("navMap","navPoint"),pageList:s("pageList","pageTarget"),others:n(e.documentElement,"navList").map(e=>({label:Ye(i(e,"navLabel")),list:r(e,"navTarget")}))}},Ve=e=>{if(!e)return;const t=e.split(":").map(e=>parseFloat(e));if(3===t.length){const[e,i,n]=t;return 60*e*60+60*i+n}if(2===t.length){const[e,i]=t;return 60*e+i}const[i,n]=e.split(/(?=[^\d.])/);return parseFloat(i)*("h"===n?3600:"min"===n?60:"ms"===n?.001:1)},Xe=/([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})/,Ze=e=>Ye(e.getElementById(e.documentElement.getAttribute("unique-identifier"))??e.getElementsByTagNameNS(Qe,"identifier")[0]),$e=async(e,t,i)=>{const n=new Uint8Array(await i.slice(0,t).arrayBuffer());t=Math.min(t,n.length);for(var o=0;o{const t=(new TextEncoder).encode(e),i=await globalThis.crypto.subtle.digest("SHA-1",t);return new Uint8Array(i)},et=(e=_e)=>({"http://www.idpf.org/2008/embedding":{key:t=>e(Ze(t).replaceAll(/[\u0020\u0009\u000d\u000a]/g,"")),decode:(e,t)=>$e(e,1040,t)},"http://ns.adobe.com/pdf/enc#RC":{key:e=>{const t=(e=>{for(const t of e.getElementsByTagNameNS(Qe,"identifier")){const[e]=Ye(t).split(":").slice(-1);if(Xe.test(e))return e}return""})(e).replaceAll("-","");return Uint8Array.from({length:16},(e,i)=>parseInt(t.slice(2*i,2*i+2),16))},decode:(e,t)=>$e(e,1024,t)}});class tt{#e=new Map;#t=new Map;#i;constructor(e){this.#i=e}async init(e,t){if(!e)return;const i=Array.from(e.getElementsByTagNameNS(ke,"EncryptedData"),e=>({algorithm:e.getElementsByTagNameNS(ke,"EncryptionMethod")[0]?.getAttribute("Algorithm"),uri:e.getElementsByTagNameNS(ke,"CipherReference")[0]?.getAttribute("URI")}));for(const{algorithm:e,uri:n}of i){if(!this.#t.has(e)){const i=this.#i[e];if(!i){console.warn("Unknown encryption algorithm");continue}const n=await i.key(t);this.#t.set(e,e=>i.decode(n,e))}this.#e.set(n,e)}}getDecoder(e){return this.#t.get(this.#e.get(e))??(e=>e)}}class it{constructor({opf:e,resolveHref:t}){this.opf=e;const{$:i,$$:n,$$$:o}=Oe(e,Ie),r=i(e.documentElement,"manifest"),s=i(e.documentElement,"spine"),a=n(s,"itemref");this.manifest=n(r,"item").map(He("href","id","media-type","properties","media-overlay")).map(e=>(e.href=t(e.href),e.properties=e.properties?.split(/\s/),e)),0===this.manifest.length&&(this.manifest=Array.from(r.children).map(e=>{const i=He("href","id","media-type","properties","media-overlay")(e);return i.href=t(i.href),i.properties=i.properties?.split(/\s/),i})),this.spine=a.map(He("idref","id","linear","properties")).map(e=>(e.properties=e.properties?.split(/\s/),e)),this.pageProgressionDirection=s.getAttribute("page-progression-direction"),this.navPath=this.getItemByProperty("nav")?.href,this.ncxPath=(this.getItemByID(s.getAttribute("toc"))??this.manifest.find(e=>e.mediaType===Le.NCX))?.href;const l=i(e.documentElement,"guide");l&&(this.guide=n(l,"reference").map(He("type","title","href")).map(({type:e,title:i,href:n})=>({label:i,type:e.split(/\s/),href:t(n)}))),this.cover=this.getItemByProperty("cover-image")??this.getItemByID("cover-image")??this.getItemByID(o(e,"meta").find(Re("name","cover"))?.getAttribute("content"))??this.getItemByHref(o(e,"meta").find(Re("name","cover"))?.getAttribute("content"))??this.getItemByID("cover.jpg")??this.getItemByID("cover.png")??this.getItemByID("cover.jpeg")??this.getItemByHref(this.guide?.find(e=>e.type.includes("cover")&&!e.href.includes("html")&&!e.href.includes("xhtml")&&!e.href.includes("xml"))?.href)??this.getItemByID("cover"),this.cover&&this.cover.href&&(this.cover.href.includes("xml")||this.cover.href.includes("xhtml")||this.cover.href.includes("html"))&&(this.cover=this.manifest.find(e=>e.href.toLowerCase().includes("cover")&&(e.href.includes("png")||e.href.includes("jpg")||e.href.includes("jpeg")))),this.cover||(this.cover=this.manifest.find(e=>e.href.toLowerCase().includes("cover")&&(e.mediaType?.startsWith("image/")||e.href.toLowerCase().includes("png")||e.href.toLowerCase().includes("jpg")||e.href.toLowerCase().includes("svg")||e.href.toLowerCase().includes("jpeg")))),this.cover||(this.cover=this.manifest.find(e=>e.mediaType?.startsWith("image/")||e.href.toLowerCase().includes("png")||e.href.toLowerCase().includes("jpg")||e.href.toLowerCase().includes("svg")||e.href.toLowerCase().includes("jpeg"))),this.cfis=(e=>{const t=[],{parentNode:i}=e[0],n=Ce(i);for(const[o,r]of Be(i).entries()){const i=e[t.length];r===i&&t.push(pe([n.concat({id:i.id,index:o})]))}return t})(a)}getItemByID(e){return this.manifest.find(t=>t.id===e)}getItemByHref(e){return this.manifest.find(t=>t.href===e)}getItemByProperty(e){return this.manifest.find(t=>t.properties?.includes(e))}resolveCFI(e){const t=he(e),i=(t.parent??t).shift();let n=ve(this.opf,i);n&&"idref"!==n.nodeName&&(i.at(-1).id=null,n=ve(this.opf,i));const o=n?.getAttribute("idref");return{index:this.spine.findIndex(e=>e.idref===o),anchor:e=>((e,t)=>{const i=fe(t),n=fe(t,!0),o=e.documentElement,r=be(o,i[0]),s=be(o,n[0]),a=e.createRange();return r.before?a.setStartBefore(r.node):r.after?a.setStartAfter(r.node):a.setStart(r.node,r.offset),s.before?a.setEndBefore(s.node):s.after?a.setEndAfter(s.node):a.setEnd(s.node,s.offset),a})(e,t)}}}class nt{#n=new Map;#o=new Map;#r=new Map;allowScript=!1;constructor({loadText:e,loadBlob:t,resources:i}){this.loadText=e,this.loadBlob=t,this.manifest=i.manifest,this.assets=i.manifest}createURL(e,t,i,n){if(!t)return"";const o=URL.createObjectURL(new Blob([t],{type:i}));if(this.#n.set(e,o),this.#r.set(e,1),n){const t=this.#o.get(n);t?t.push(e):this.#o.set(n,[e])}return o}ref(e,t){const i=this.#o.get(t);return i?.includes(e)||(this.#r.set(e,this.#r.get(e)+1),i?i.push(e):this.#o.set(t,[e])),this.#n.get(e)}unref(e){if(!this.#r.has(e))return;const t=this.#r.get(e)-1;if(t<1){URL.revokeObjectURL(this.#n.get(e)),this.#n.delete(e),this.#r.delete(e);const t=this.#o.get(e);if(t)for(;t.length;)this.unref(t.pop());this.#o.delete(e)}else this.#r.set(e,t)}async loadItem(e,t=[]){if(!e)return null;const{href:i,mediaType:n}=e,o=Le.JS.test(e.mediaType);if(o&&!this.allowScript)return null;const r=t.at(-1);if(this.#n.has(i))return this.ref(i,r);return(o||[Le.XHTML,Le.HTML,Le.CSS,Le.SVG].includes(n))&&t.every(e=>e!==i)?this.loadReplaced(e,t):this.createURL(i,await this.loadBlob(i),n,r)}async loadHref(e,t,i=[]){if(Ne(e))return e;const n=Ge(e,t);let o=this.manifest.find(e=>e.href===n);return o||(o={href:n,mediaType:""}),this.loadItem(o,i.concat(t))}async loadReplaced(e,t=[]){const{href:i,mediaType:n}=e,o=t.at(-1),r=await this.loadText(i);if(!r)return null;if([Le.XHTML,Le.HTML,Le.SVG].includes(n)){let s=(new DOMParser).parseFromString(r.trim(),n);if(n===Le.XHTML&&s.querySelector("parsererror")&&(console.warn(s.querySelector("parsererror").innerText),e.mediaType=Le.HTML,s=(new DOMParser).parseFromString(r.trim(),e.mediaType)),[Le.XHTML,Le.SVG].includes(e.mediaType)){let e=s.firstChild;for(;e instanceof ProcessingInstruction;){if(e.data){const n=await Ue(e.data,/(?:^|\s*)(href\s*=\s*['"])([^'"]*)(['"])/i,(e,n,o,r)=>this.loadHref(o,i,t).then(e=>`${n}${e}${r}`));e.replaceWith(s.createProcessingInstruction(e.target,n))}e=e.nextSibling}}const a=async(e,n)=>e.setAttribute(n,await this.loadHref(e.getAttribute(n),i,t));for(const e of s.querySelectorAll("link[href]"))await a(e,"href");for(const e of s.querySelectorAll("[src]"))await a(e,"src");for(const e of s.querySelectorAll("[poster]"))await a(e,"poster");for(const e of s.querySelectorAll("object[data]"))await a(e,"data");for(const e of s.querySelectorAll("[*|href]:not([href]"))e.setAttributeNS(Me,"href",await this.loadHref(e.getAttributeNS(Me,"href"),i,t));for(const e of s.querySelectorAll("style"))e.textContent&&(e.textContent=await this.replaceCSS(e.textContent,i,t));for(const e of s.querySelectorAll("[style]"))e.setAttribute("style",await this.replaceCSS(e.getAttribute("style"),i,t));const l=(new XMLSerializer).serializeToString(s);return this.createURL(i,l,e.mediaType,o)}const s=n===Le.CSS?await this.replaceCSS(r,i,t):await this.replaceString(r,i,t);return this.createURL(i,s,n,o)}async replaceCSS(e,t,i=[]){const n=await Ue(e,/url\(\s*["']?([^'"\n]*?)\s*["']?\s*\)/gi,(e,n)=>this.loadHref(n,t,i).then(e=>`url("${e}")`)),o=await Ue(n,/@import\s*["']([^"'\n]*?)["']/gi,(e,n)=>this.loadHref(n,t,i).then(e=>`@import "${e}"`)),r=window?.innerWidth??800,s=window?.innerHeight??600;return o.replace(/-epub-/gi,"").replace(/(\d*\.?\d+)vw/gi,(e,t)=>parseFloat(t)*r/100+"px").replace(/(\d*\.?\d+)vh/gi,(e,t)=>parseFloat(t)*s/100+"px").replace(/page-break-(after|before|inside)/gi,(e,t)=>`-webkit-column-break-${t}`)}replaceString(e,t,i=[]){const n=new Map,o=this.assets.map(e=>{if(e.href===t)return;const i=((e,t)=>{if(!e)return t;const i=e.replace(/\/$/,"").split("/"),n=t.replace(/\/$/,"").split("/"),o=(i.length>n.length?i:n).findIndex((e,t)=>i[t]!==n[t]);return o<0?"":Array(i.length-o).fill("..").concat(n.slice(o)).join("/")})((e=>e.slice(0,e.lastIndexOf("/")+1))(t),e.href),o=encodeURI(i),r="/"+e.href,s=encodeURI(r),a=new Set([i,o,r,s]);for(const t of a)n.set(t,e);return Array.from(a)}).flat().filter(e=>e);if(!o.length)return e;const r=new RegExp(o.map(We).join("|"),"g");return Ue(e,r,async e=>this.loadItem(n.get(e.replace(/^\//,"")),i.concat(t)))}unloadItem(e){this.unref(e?.href)}}const ot=e=>{for(const t of e){if("page-spread-left"===t||"rendition:page-spread-left"===t)return"left";if("page-spread-right"===t||"rendition:page-spread-right"===t)return"right";if("rendition:page-spread-center"===t)return"center"}};class rt{parser=new DOMParser;#s;constructor({loadText:e,loadBlob:t,getSize:i,sha1:n}){this.loadText=e,this.loadBlob=t,this.getSize=i,this.#s=new tt(et(n))}#a(e){return e&&e.includes("opf:scheme")&&(e=e.replaceAll("opf:scheme","scheme")),e&&(e=e.replace(/^\uFEFF/,"").replace(//g,(e,t)=>`\x3c!--${t.replace(/--/g,"- -")}--\x3e`).replace(/&(?!(?:amp|lt|gt|quot|apos|#\d+|#x[\da-fA-F]+);)/g,"&").replace(/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]/g,"")),e?this.parser.parseFromString(e.trim(),Le.XML):null}async#l(e){return this.#a(await this.loadText(e))}async init(){const e=await this.#l("META-INF/container.xml");if(!e)throw new Error("Failed to load container file");const t=Array.from(e.getElementsByTagNameNS(Ee,"rootfile"),He("full-path","media-type")).filter(e=>"application/oebps-package+xml"===e.mediaType);if(!t.length)throw new Error("No package document defined in container");const i=t[0].fullPath,n=await this.#l(i);if(!n)throw new Error("Failed to load package document");if(n.querySelector("parsererror"))throw new Error("Package document is not a valid XML");const o=await this.#l("META-INF/encryption.xml");await this.#s.init(o,n),this.resources=new it({opf:n,resolveHref:e=>Ge(e,i)});const r=new nt({loadText:this.loadText,loadBlob:e=>Promise.resolve(this.loadBlob(e)).then(this.#s.getDecoder(e)),resources:this.resources});this.sections=this.resources.spine.map((e,t)=>{const{idref:i,linear:n,properties:o=[]}=e,s=this.resources.getItemByID(i);return s?{id:this.resources.getItemByID(i)?.href,load:()=>r.loadItem(s),unload:()=>r.unloadItem(s),createDocument:()=>this.loadDocument(s),size:this.getSize(s.href),cfi:this.resources.cfis[t],linear:n,pageSpread:ot(o),resolveHref:e=>Ge(e,s.href),loadMediaOverlay:()=>this.loadMediaOverlay(s)}:(console.warn(`Could not find item with ID "${i}" in manifest`),null)});const{navPath:s,ncxPath:a}=this.resources;if(s)try{const e=e=>Ge(e,s),t=qe(await this.#l(s),e);this.toc=t.toc,this.pageList=t.pageList,this.landmarks=t.landmarks}catch(e){console.warn(e)}if((!this.toc||0===this.toc.length)&&a)try{const e=e=>Ge(e,a),t=Je(await this.#l(a),e);this.toc=t.toc,this.pageList=t.pageList}catch(e){console.warn(e)}this.landmarks??=this.resources.guide;const{metadata:l,rendition:c,media:d}=(e=>{const{$:t,$$:i}=Oe(e,Ie),n=t(e.documentElement,"metadata"),o=Array.from(n.children),r=(e,t)=>{if(!t)return null;const{props:i=[],attrs:n=[]}=e,s=Ye(t);if(!i.length&&!n.length)return s;const a=t.getAttribute("id"),l=a?o.filter(Re("refines","#"+a)):[];return Object.fromEntries([["value",s]].concat(i.map(t=>{const{many:i,recursive:n}=t,o="string"==typeof t?t:t.name,s=Re("property",o),a=n?e:t;return[Te(o),i?l.filter(s).map(e=>r(a,e)):r(a,l.find(s))]})).concat(n.map(e=>[Te(e),t.getAttribute(e)])))},s=o.filter(Re("refines",null)),a=e=>Object.fromEntries(i(n,"meta").filter(Re("property",t=>t?.startsWith(e))).map(t=>[t.getAttribute("property").replace(e,""),Ye(t)]));return{metadata:Object.fromEntries(Ke.map(e=>{const{type:t,name:i,many:n}=e,o="meta"===t?e=>e.namespaceURI===Ie&&e.getAttribute("property")===i:e=>e.namespaceURI===Qe&&e.localName===i;return[Te(i),n?s.filter(o).map(t=>r(e,t)):r(e,s.find(o))]})),rendition:a("rendition:"),media:a("media:")}})(n);this.rendition=c,this.media=d,d.duration=Ve(d.duration),this.dir=this.resources.pageProgressionDirection,this.rawMetadata=l;const g=l?.title?.[0];this.metadata={title:g?.value,sortAs:g?.fileAs,language:l?.language,identifier:Ze(n),description:l?.description?.value,publisher:l?.publisher?.value,published:l?.date,modified:l?.dctermsModified,subject:l?.subject?.filter(({value:e,code:t})=>e||t)?.map(({value:e,code:t,scheme:i})=>({name:e,code:t,scheme:i})),rights:l?.rights?.value};const h={art:"artist",aut:"author",bkp:"producer",clr:"colorist",edt:"editor",ill:"illustrator",trl:"translator",pbl:"publisher"},A=e=>t=>{const i=[...new Set(t.role?.map(({value:t,scheme:i})=>(i&&"marc:relators"!==i?null:h[t])??e))],n={name:t.value,sortAs:t.fileAs};return[i?.length?i:[e],n]};return l?.creator?.map(A("author"))?.concat(l?.contributor?.map?.(A("contributor")))?.forEach(([e,t])=>e.forEach(e=>{this.metadata[e]?this.metadata[e].push(t):this.metadata[e]=[t]})),this}async loadDocument(e){const t=await this.loadText(e.href);return this.parser.parseFromString(t.trim(),e.mediaType)}async loadMediaOverlay(e){const t=e.mediaOverlay;if(!t)return null;const i=this.resources.getItemByID(t),n=((e,t=e=>e)=>{const{$:i,$$$:n}=Oe(e,Fe);return n(e,"par").map(e=>{const n=i(e,"text")?.getAttribute("src")?.split("#")?.[1],o=i(e,"audio");return o?{id:n,audio:{src:(r=o.getAttribute("src"),r?decodeURI(t(r)):null),clipBegin:Ve(o.getAttribute("clipBegin")),clipEnd:Ve(o.getAttribute("clipEnd"))}}:{id:n};var r})})(await this.#l(i.href),e=>Ge(e,i.href));return n}resolveCFI(e){return this.resources.resolveCFI(e)}resolveHref(e){const[t,i]=e.split("#"),n=this.resources.getItemByHref(decodeURI(t));if(!n)return null;return{index:this.resources.spine.findIndex(({idref:e})=>e===n.id),anchor:i?e=>((e,t)=>e.getElementById(t)??e.querySelector(`[name="${CSS.escape(t)}"]`))(e,i):()=>0}}resolveHrefIndex(e){const[t,i]=e.split("#"),n=this.resources.getItemByHref(decodeURI(t));if(!n)return null;return{index:this.resources.spine.findIndex(({idref:e})=>e===n.id)}}splitTOCHref(e){return e?.split("#")??[]}getTOCFragment(e,t){return e.getElementById(t)??e.querySelector(`[name="${CSS.escape(t)}"]`)}isExternal(e){return Ne(e)}async getCover(){const e=this.resources?.cover,t=e?.href?await this.loadBlob(e.href):null;return e?.href&&t&&t.size>0?new Blob([t],{type:e.mediaType}):null}async getCalibreBookmarks(){const e=await this.loadText("META-INF/calibre_bookmarks.txt"),t="encoding=json+base64:";if(e?.startsWith(t)){const t=atob(e.slice(21));return JSON.parse(t)}}}let st=["章","节","回","節","卷","部","輯","辑","話","集","话","篇"," "," "],at=[],lt=["CHAPTER","Chapter","序章","前言","声明","写在前面的话","后记","楔子","后序","章节目录","尾声","聲明","寫在前面的話","後記","後序","章節目錄","尾聲"];const ct=(e,t,i)=>{let n=e.split("\n");1===n.length&&(n=e.split("\r"));const o=[];let r=!1,s=!1;if(i&&i.refresh&&(r=!0),i&&i.noTitle&&(s=!0),s){let e=0;for(let t=0;tChapter ${e}`),i.forEach(e=>{""===e.trim()?o.push(`

${e}

`):o.push(`

${e}

`)}),e++}}else if(n.length>1e4&&!r){i&&i.chapterTitle||(i={text:n[0],chapterTitle:"",chapterDocIndex:0}),i.text||(i.text=i.chapterTitle||"");let r=n.findIndex(e=>dt(e)===dt(i.text));-1===r&&(r=0);const s=Math.max(r-3e3,0),a=Math.min(r+3e3,n.length),l=n.slice(s,a),c=l.filter(e=>e&>(e,t));if(c.length<=1)return ct(e,t,{noTitle:!0});const d=new Set(c.map(e=>dt(e)));let g=((e,t)=>{for(let i=e.length-1;i>=0;i--)if(t(e[i]))return i;return-1})(c,e=>dt(e)===dt(i.chapterTitle));if(-1===g&&(g=0),g0)for(let t=0;tPrepend ${t}`),o.push(`

Text ${t}

`)}for(const e of l){const t=dt(e);if(t&&d.has(t))o.push(`

${t}

`);else{if(""===e.trim()){o.push(`

${e}

`);continue}o.push(`

${e}

`)}}}else for(const e of n)if(e&>(e,t))o.push(`

${e}

`);else{if(""===e.trim()){o.push(`

${e}

`);continue}o.push(`

${e}

`)}const a=o.join("");return a&&a.includes("e.trim().replace(/(\r\n|\n|\r|\t)/gm,"").substring(0,100).split("").filter(e=>"="!==e&&"-"!==e&&"_"!==e&&"+"!==e).join(""),gt=(e,t="")=>t?new RegExp(t).test(e):(e=dt(e))&&e.length<40&&!ht(e)&&(At(e)||e.startsWith("第")&&ut(e)||e.startsWith("卷")&&pt(e)||e.indexOf("第")>-1&&e.lastIndexOf("第")<7&&ut(e.substr(e.indexOf("第")))),ht=e=>at.filter(t=>e.indexOf(t)>-1).length>0,At=e=>lt.filter(t=>e.startsWith(t)).length>0,ut=e=>{let t=!1;for(let i=0;i{let t=/^[\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d\u5341\u767e\u5343\u4e07\u842c\u96f6]+$/;return!(!t.test(e.substring(1,e.indexOf(" ")))&&!/^\d+$/.test(e.substring(1,e.indexOf(" "))))||(!(!t.test(e.substring(1,e.indexOf(" ")))&&!/^\d+$/.test(e.substring(1,e.indexOf(" "))))||(!(!t.test(e.substring(1,e.indexOf("·")))&&!/^\d+$/.test(e.substring(1,e.indexOf("·"))))||!(!t.test(e.substring(1))&&!/^\d+$/.test(e.substring(1)))))};let ft=!1;const mt=(e,t,i,n,o)=>{if("mimical"!==e||"yes"===t)return!1;const r=document.getElementById("book");return!!r&&(r.style.display="block",i>0?o():i<0&&n(),setTimeout(()=>{r.style.display="none"},1e3),!0)},wt=(e,t,i,n,o,r,s)=>d(void 0,void 0,void 0,function*(){const a=Y();if(mt(t,s,i,o,r),a){let o=Math.floor(e.clientHeight/12),r=o%2==0?o:o-1;const a=e.clientHeight,l=n.body.scrollTop,c=a+r;if(i>0){const e=Math.round(l/c),i=Math.max(0,e-1)*c;n.body.scrollTo({left:0,top:i,behavior:"sliding"===t&&"yes"!==s?"smooth":"auto"})}else if(i<0){const e=(Math.round(l/c)+1)*c;n.body.scrollTo({left:0,top:e,behavior:"sliding"===t&&"yes"!==s?"smooth":"auto"})}}else{let o=Math.floor(e.clientWidth/12),r=o%2==0?o:o-1;const a=e.clientWidth,l=n.body.scrollLeft,c=a+r;if(i>0){const e=Math.round(l/c),i=Math.max(0,e-1)*c;n.body.scrollTo({top:0,left:i,behavior:"sliding"===t&&"yes"!==s?"smooth":"auto"})}else if(i<0){const e=(Math.round(l/c)+1)*c;n.body.scrollTo({top:0,left:e,behavior:"sliding"===t&&"yes"!==s?"smooth":"auto"})}}}),Bt=(t,i,n,o)=>{let r=e.findLastIndex(n,e=>e.href===i||e.href&&e.href.includes("#")&&e.href.includes(i));return i&&e.findLastIndex(n,e=>e.href===i||e.href&&e.href.includes("#")&&e.href.includes(i))>-1||(r=t),"prev"===o?Object.assign(Object.assign({},n[r-1]),{index:r-1}):Object.assign(Object.assign({},n[r+1]),{index:r+1})},yt=(e,t,i,n,o,r,s,a)=>d(void 0,void 0,void 0,function*(){let t=parseInt(r.chapterDocIndex||"0"),l=r.chapterHref||"";if(0===t)return;let c=Bt(t,l,i,"prev");c&&(r.text="prevChapter",r.page="",yield Et(c.index,c.label,c.href,i,e,n,o,r,s,a))}),bt=e=>{if(!e)return!1;if("IMG"===e.tagName)return!0;if(e.textContent){let t=e.textContent.trim();return Ct(t)}return!1},Ct=e=>{if(!e)return!1;let t=e.trim();return!!/^(\[|\(|〔|【|〈|《|〚)([a-zA-Z0-9零一二三四五六七八九十百千万]+)(\]|\)|〕|】|〉|》|〛)$|^\d+$|^(M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3}))$|^[①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳㉑㉒㉓㉔㉕㉖㉗㉘㉙㉚㉛㉜㉝㉞㉟㊱㊲㊳㊴㊵㊶㊷㊸㊹㊺㊻㊼㊽㊾㊿]$/i.test(t)||(t.toLowerCase().indexOf("footnote")>-1||t.toLowerCase().indexOf("脚注")>-1||t.toLowerCase().indexOf("注释")>-1||t.toLowerCase().indexOf("注")>-1||t.toLowerCase().indexOf("fn")>-1||("*"===t||"†"===t||"‡"===t||"※"===t||"§"===t))},vt=e=>d(void 0,void 0,void 0,function*(){const t=yield fetch(e),i=yield t.blob();return new Promise((e,t)=>{const n=new FileReader;n.onloadend=()=>e(n.result),n.onerror=t,n.readAsDataURL(i)})}),Et=(t,i,n,o,r,s,a,l,c,g)=>d(void 0,void 0,void 0,function*(){if(c.body.innerHTML="",g.height="0px",c.body.scrollTo(0,0),i&&!t||o[t]&&o[t].label&&i&&i!==o[t].label&&-1===n.indexOf("#")){let n=e.findLastIndex(o,{label:i});-1!==n&&(t=n)}if(-1===t&&n.indexOf("#")>-1){let i=n.split("#")[0],r=e.findLastIndex(o,e=>e.href===i||e.href&&e.href.includes("#")&&e.href.includes(i));-1!==r&&(t=r)}(-1===t||t>o.length-1)&&(t=0);let h=yield U(o[t].text,!1),A=function(e){const t=e.match(/]*)>/i);if(!t)return{};const i=t[1],n={},o=/([\w-]+)\s*=\s*(?:"([^"]*)"|'([^']*)'|([^>\s]+))/g;let r;for(;null!==(r=o.exec(i));){const e=r[2]||r[3]||r[4]||"";n[r[1]]=e}return n}(h);const u=function(e){if(!e)return null;const t=e.match(/]*name\s*=\s*["']viewport["'][^>]*content\s*=\s*["']([^"']+)["'][^>]*>/i);if(!t)return null;const i=t[1]||"",n=i.match(/\bwidth\s*=\s*(\d+(?:\.\d+)?)\b/i),o=i.match(/\bheight\s*=\s*(\d+(?:\.\d+)?)\b/i),r=n?parseFloat(n[1]):void 0,s=o?parseFloat(o[1]):void 0;return r||s?{width:r,height:s}:null}(h);c.body.innerHTML=h,A.class?c.body.setAttribute("class",A.class):c.body.removeAttribute("class"),A.id?c.body.setAttribute("id",A.id):c.body.removeAttribute("id");let p=c.body.getAttribute("style")||"";p&&(p=p.split(";").map(e=>e.trim()).filter(e=>e&&!/^transform(-origin)?\s*:/i.test(e)).join("; "),p&&(p+=";"));const f=A.style||"",m=k(p,f),w=(null==u?void 0:u.width)||S(f,"width"),B=(null==u?void 0:u.height)||S(f,"height");if(w&&B){const e=function(e,t){if(!e)return 0;const i=Math.floor(e.clientWidth/12),n=i%2==0?i:i-1,o="double"===t?2:1;return(e.clientWidth-n)/o}(r,s),t=null==g?void 0:g.getBoundingClientRect().height,i=t>0?t:r.clientHeight;if(e>0&&i>0&&S(m,"width")&&S(m,"width")!==r.clientWidth){const t=e/w,n=i/B,o=k(m,`transform: scale(${Math.min(1,t,n)}); transform-origin: left top;`);c.body.setAttribute("style",o),c.body.setAttribute("data-kookit-fixed-scale","true")}else c.body.setAttribute("style",m),c.body.removeAttribute("data-kookit-fixed-scale")}else m?(c.body.setAttribute("style",m),c.body.removeAttribute("data-kookit-fixed-scale")):(c.body.removeAttribute("style"),c.body.removeAttribute("data-kookit-fixed-scale"));if(yield xt(c),yield It(c),!i){let e=t;for(;e>=0;){if(o[e].label){i=o[e].label;break}e--}}l.chapterTitle=i,l.chapterHref=n,l.chapterDocIndex=t+"",l.percentage=o.slice(0,t).map(e=>e.text&&e.text.size||1).reduce((e,t)=>e+t,0)/o.map(e=>e.text&&e.text.size||1).reduce((e,t)=>e+t,0)+"",l.text="",l.xpath=`/body/DocFragment[${t+1}]`,l.timestamp=parseInt((new Date).getTime()/1e3+""),yield((e,t,i,n,o)=>d(void 0,void 0,void 0,function*(){if(yield Promise.race([Promise.all(Array.from([...o.images,...o.querySelectorAll("image")]).map(e=>e.complete?Promise.resolve(0!==e.naturalHeight):new Promise(t=>{e.addEventListener("load",()=>t(!0)),e.addEventListener("error",()=>t(!1))}))),new Promise((e,t)=>{setTimeout(()=>{e("image load timeout")},10)})]),o.body.getAttribute("data-kookit-fixed-scale")||(yield _(e,t,i,o)),yield $(o),"scroll"!==t){if(n.height=e.clientHeight+"px","double"===t)if(Y());else{let t=Math.floor(e.clientWidth/12),i=t%2==0?t:t-1,n=(e.clientWidth+i)/2;if((o.body.scrollWidth-o.body.clientWidth)/n%2==1){let e=document.createElement("div");e.setAttribute("style","height: "+o.body.clientHeight+"px; display: inline-block; width: "+(n-i)+"px"),o.body.appendChild(e)}}}else n.height=o.body.scrollHeight+"px",n.height=o.body.scrollHeight+300+"px"}))(r,s,a,g,c),yield Dt(r,s,"","","","",c)});const xt=e=>d(void 0,void 0,void 0,function*(){let t=Array.from(e.getElementsByTagName("link"));if(0===t.length)return;let i=[];for(let e=0;e{n.addEventListener("load",e)}))}try{yield Promise.race([Promise.all(i),new Promise((e,t)=>{setTimeout(()=>{e("css load timeout")},10)})])}catch(e){console.error(e)}}),It=e=>d(void 0,void 0,void 0,function*(){var t;let i=Array.from(e.body.childNodes);for(let n=0;nd(void 0,void 0,void 0,function*(){let a=0,l=0,c=s.body;const d=Y()&&"scroll"!==t;if(r&&"scroll"!==t)if(d){let t=Math.floor(e.clientHeight/12),i=t%2==0?t:t-1;l=(e.clientHeight+i)*(parseInt(r)-1)}else{let t=Math.floor(e.clientWidth/12),i=t%2==0?t:t-1;a=((g=getComputedStyle(e).width,parseFloat(g.substring(0,g.length-2)))+i)*(parseInt(r)-1)}else if(i){let o=I(s.body).filter((e,t)=>dt(e.textContent)&&(dt(e.textContent).includes(dt(i))||dt(e.textContent).includes(p(dt(i)))||dt(e.textContent).includes(u(dt(i))))&&(Math.abs(t-parseInt(n))<("both"===window.fullTranslationMode||"target"===window.fullTranslationMode?1:2)||"search"===n||"ignore"===n||"next"===n));if(0===o.length)return;c=Qt(o[0],e,t),d?l=c?N(c)-O(c.marginTop||parseFloat(getComputedStyle(c).marginTop)):"prevChapter"===i?s.body.scrollHeight:0:a=c?G(c)-O(c.marginLeft||parseFloat(getComputedStyle(c).marginLeft)):"prevChapter"===i?s.body.scrollWidth:0}else if(o&&o.indexOf("#")>-1){let i=CSS.escape(o.split("#").reverse()[0]);if(!s.body.querySelector("#"+CSS.escape(i)))return;c=Qt(s.body.querySelector("#"+CSS.escape(i))||s.body,e,t),d?l=c?N(c)-O(c.marginTop||parseFloat(getComputedStyle(c).marginTop)):0:a=c?G(c)-O(c.marginLeft||parseFloat(getComputedStyle(c).marginLeft)):0}var g;"scroll"!==t?d?s.body.scrollTo(0,l):s.body.scrollTo(a,0):c.scrollIntoView()}),Qt=(e,t,i)=>{const n=Y()&&"scroll"!==i;if("scroll"===i)return e;if(n){let n=Math.floor(t.clientHeight/12),o=n%2==0?n:n-1,r=N(e)-O(e.marginTop||parseFloat(getComputedStyle(e).marginTop));return kt(parseInt(r+""),(t.clientHeight+o)/2)?e:e.parentElement?Qt(e.parentElement,t,i):e}{let n=Math.floor(t.clientWidth/12),o=n%2==0?n:n-1,r=G(e)-O(e.marginLeft||parseFloat(getComputedStyle(e).marginLeft));return kt(parseInt(r+""),(t.clientWidth+o)/2)?e:e.parentElement?Qt(e.parentElement,t,i):e}},kt=(e,t)=>{for(let i=e-10;i<=e+10;i++)if(i%t===0)return!0;return!1},St=(e,t,i,n,o,r,s)=>d(void 0,void 0,void 0,function*(){var a,l;if(ft)return;let c=I(r.body),d=c.filter(i=>Pt(e,i,t)&&(i.textContent||"").trim()),g=d[0];s&&(g=s);let h=0;for(let i=0;i{if(!e||!t||!t.body)return"";const i=[];let n=e;for(;n&&n!==t.body&&n!==t;){const e=n.parentNode;if(!e)break;if(n.nodeType===Node.TEXT_NODE){n=e;continue}const t=n,o=t.tagName.toLowerCase(),r=Array.from(e.childNodes).filter(e=>e.nodeType===Node.ELEMENT_NODE&&e.tagName.toLowerCase()===o),s=r.indexOf(t)+1;i.unshift(r.length>1?`${o}[${s}]`:o),n=e}return"/body/"+i.join("/")})(g,r),o.timestamp=parseInt((new Date).getTime()/1e3+"");let e=n.map(e=>e.text&&e.text.size||1).reduce((e,t)=>e+t,0);o.percentage=n.slice(0,parseInt(o.chapterDocIndex)).map(e=>e.text&&e.text.size||1).reduce((e,t)=>e+t,0)/e+((null===(a=n.find((e,t)=>t===parseInt(o.chapterDocIndex)))||void 0===a?void 0:a.text.size)||0)/e*(h/c.length)+""}else o.page=(null===(l=yield q(t,r,e))||void 0===l?void 0:l.currentPage)+"";ft=!0,setTimeout(()=>{ft=!1},100)}),Mt=(e,t,i)=>{if(Y()&&"scroll"!==i){let n=Math.floor(t.clientHeight/12),o=n%2==0?n:n-1;return Math.abs(N(e)-N(Qt(e,t,i)))>(t.clientHeight+o)/2}{let n=Math.floor(t.clientWidth/12),o=n%2==0?n:n-1;return Math.abs(G(e)-G(Qt(e,t,i)))>(t.clientWidth+o)/2}},Ft=(t,i,n)=>{let o=n.chapterHref||"",r=o.lastIndexOf("#"),s="";s=-1===r?o:o.substring(0,r);for(let o=0;o-1&&(n.chapterHref=t,n.chapterTitle=i[o].label)}}},Lt=(e,t,i,n,o,r,s,a)=>d(void 0,void 0,void 0,function*(){let t=parseInt(r.chapterDocIndex||"0"),l=r.chapterHref||"";if(t>=i.length-1)return void(r.percentage="1");let c=Bt(t,l,i,"next");c&&(r.page="",yield Et(c.index,c.label,c.href,i,e,n,o,r,s,a))}),Tt=(e,t,i,n)=>{let o=I(i.body).filter(e=>!D(e)),r=o.filter(e=>{if(!(e.textContent||"").trim())return!1;let t=e.parentElement;for(;t&&t!==i.body;){if(o.includes(t))return!1;t=t.parentElement}return!0}).filter(e=>{var t;return"img"!==e.textContent&&!(null===(t=e.textContent)||void 0===t?void 0:t.startsWith("img"))}).map(e=>e.textContent);if(n)return r.filter(e=>e);let s=0,a=Ut(e,t,i);if(a&&a.length>0){let e=a.map(e=>e.trim());s=r.findIndex(t=>t&&e.includes(t.trim()))}return r.slice(s).filter(e=>e)},Rt=/["'\u201d\u2019」』]/,Ht=(e,t,i)=>{const n=((e,t)=>{if(void 0===Intl.Segmenter)return[{start:0,end:e.length}];const i=new Intl.Segmenter(t,{granularity:"sentence"}).segment(e);return Array.from(i).map(e=>({start:e.index,end:e.index+e.segment.length})).filter(t=>""!==e.slice(t.start,t.end).trim())})(e,Gt(e));if(0===n.length)return{start:t,end:i};const o=n.filter(e=>e.end>t&&e.start{if("scroll"===i){const i=t.scrollTop;return e.width>0&&e.height>0&&e.bottom>i&&e.top0&&e.left0&&e.height>0&&e.bottom>0&&e.top0&&e.left{const n=getComputedStyle(t);if("none"===n.display||"hidden"===n.visibility||"0"===n.opacity)return!1;const o=t.getBoundingClientRect();return Yt(o,e,i)},Gt=e=>{const t=(e.match(/[\u4e00-\u9fff\u3000-\u303f\uf900-\ufaff]/g)||[]).length,i=(e.match(/[\u3040-\u309f\u30a0-\u30ff]/g)||[]).length,n=(e.match(/[\uac00-\ud7af\u1100-\u11ff]/g)||[]).length;return(t+i+n)/e.length<=.3?"en":t>=i&&t>=n?"zh":i>=t&&i>=n?"ja":"ko"},Nt=(e,t,i)=>{const n=t.textContent||"";if(!n.trim())return n;if(!((e,t,i)=>{if(!Ot(e,t,i))return!1;const n=t.getBoundingClientRect();if("scroll"===i){const t=e.scrollTop;return n.topt+e.clientHeight||n.right>e.clientWidth}return n.top<0||n.left<0||n.bottom>e.clientHeight||n.right>e.clientWidth})(e,t,i))return n;const o=((e,t,i)=>{const n=t.textContent||"";if(!n.trim())return null;const o=document.createTreeWalker(t,NodeFilter.SHOW_TEXT);let r=o.nextNode(),s=0,a=-1,l=-1;for(;r;){const t=r.textContent||"";if(t.length>0){const n=document.createRange();if(n.selectNodeContents(r),Array.from(n.getClientRects()).some(t=>Yt(t,e,i))){let n=!1;for(let o=0;oYt(t,e,i));!d&&n&&Rt.test(t[o])&&(d=!0),d&&(-1===a&&(a=s+o),l=s+o+1),n=d}}}s+=t.length,r=o.nextNode()}return-1===a||-1===l?null:{start:a,end:l,text:n}})(e,t,i);if(!o)return n;const{start:r,end:s}=Ht(n,o.start,o.end);return s<=r?n.substring(o.start,o.end):n.substring(r,s)},Ut=(e,t,i)=>{let n=I(i.body).filter(e=>!D(e)),o=n.filter(i=>Ot(e,i,t)&&(i.textContent||"").trim());return o=o.filter(e=>{if(!(e.textContent||"").trim())return!1;let t=e.parentElement;for(;t&&t!==i.body;){if(n.includes(t))return!1;t=t.parentElement}return!0}),o.filter(e=>{var t;return"img"!==e.textContent&&!(null===(t=e.textContent)||void 0===t?void 0:t.startsWith("img"))}).map(i=>Nt(e,i,t)).filter(e=>e)},Wt=(e,t,i)=>{if(i.querySelectorAll('span[data-highlight="true"]').forEach(e=>{const t=e.parentNode;t&&t.replaceChild(i.createTextNode(e.textContent||""),e)}),!e.trim())return;Array.from(i.body.querySelectorAll("span, p, div, h1, h2, h3, h4, h5, h6 ")).filter(t=>{const i=t.textContent||"";return i.trim()&&i.toLowerCase().indexOf(e.toLowerCase())>-1}).forEach(n=>{const o=n=>{let r=(n=>{var o;if(n.nodeType===Node.TEXT_NODE){const r=n.textContent||"";let s=r.toLowerCase(),a=e.toLowerCase(),l=[],c=s.indexOf(a);for(;c>-1;)l.push({start:c,end:c+e.length,originalText:r.substring(c,c+e.length)}),c=s.indexOf(a,c+1);if(l.length>0){const e=i.createDocumentFragment();let s=0;return l.forEach(n=>{n.start>s&&e.appendChild(i.createTextNode(r.substring(s,n.start)));const o=i.createElement("span");o.setAttribute("style",t),o.setAttribute("data-highlight","true"),o.setAttribute("class","kookit-highlight-text"),o.textContent=n.originalText,e.appendChild(o),s=n.end}),s{var n=!1;const o=getComputedStyle(t);if("none"===o.display||"hidden"===o.visibility||"0"===o.opacity)return!1;var r=t.getBoundingClientRect();const s=Y()&&"scroll"!==i;if(s&&t.textContent&&t.textContent.trim()){let t=r.top;n=t>-10&&t<=e.clientHeight}else if("scroll"!==i&&!s&&t.textContent&&t.textContent.trim()){let t=r.left;n=t>-10&&t<=e.clientWidth}else if("scroll"===i&&t.textContent&&t.textContent.trim()){let t=r.top;n=t>=e.scrollTop&&t<=e.scrollTop+e.clientHeight}else if("scroll"===i||s){if(s){let t=r.top;n=t>=0&&t<=e.clientHeight}}else{let t=r.left;n=t>=0&&t<=e.clientWidth}return n};class jt{constructor(){this.callbacks={},this.callbacks.base={}}on(e,t){const i=this;if(void 0===e||""===e)return console.warn("wrong names"),!1;if(void 0===t)return console.warn("wrong callback"),!1;return this.resolveNames(e).forEach(function(e){const n=i.resolveName(e);i.callbacks[n.namespace]instanceof Object||(i.callbacks[n.namespace]={}),i.callbacks[n.namespace][n.value]instanceof Array||(i.callbacks[n.namespace][n.value]=[]),i.callbacks[n.namespace][n.value].push(t)}),this}off(e){const t=this;if(void 0===e||""===e)return console.warn("wrong name"),!1;return this.resolveNames(e).forEach(function(e){const i=t.resolveName(e);if("base"!==i.namespace&&""===i.value)delete t.callbacks[i.namespace];else if("base"===i.namespace)for(const e in t.callbacks)t.callbacks[e]instanceof Object&&t.callbacks[e][i.value]instanceof Array&&(delete t.callbacks[e][i.value],0===Object.keys(t.callbacks[e]).length&&delete t.callbacks[e]);else t.callbacks[i.namespace]instanceof Object&&t.callbacks[i.namespace][i.value]instanceof Array&&(delete t.callbacks[i.namespace][i.value],0===Object.keys(t.callbacks[i.namespace]).length&&delete t.callbacks[i.namespace])}),this}trigger(e,t=[]){if(void 0===e||""===e)return console.warn("wrong name"),!1;const i=this;const n=t instanceof Array?t:[];let o=this.resolveNames(e);o=this.resolveName(o[0]),setTimeout(()=>{if("base"===o.namespace)for(const e in i.callbacks){if(i.callbacks[e]instanceof Object&&i.callbacks[e][o.value]instanceof Array&&i.callbacks[e][o.value])i.callbacks[e][o.value].forEach(function(e){e.apply(i,n)});else if(this.callbacks[o.namespace]instanceof Object&&i.callbacks[o.namespace][o.value]){if(""===o.value)return console.warn("wrong name"),this;i.callbacks[o.namespace][o.value].forEach(function(e){e.apply(i,n)})}return null}},100)}resolveNames(e){let t=e;return t=t.replace(/[^a-zA-Z0-9 ,/.]/g,""),t=t.replace(/[,/]+/g," "),t=t.split(" "),t}resolveName(e){const t={},i=e.split(".");return t.original=e,t.value=i[0],t.namespace="base",i.length>1&&""!==i[1]&&(t.namespace=i[1]),t}}const zt=Node.ELEMENT_NODE,Kt=Node.TEXT_NODE,qt=Node.CDATA_SECTION_NODE;function Jt(e){return e.replace(/[\[\]\^,();]/g,"^$&")}function Vt(e,t,i){let n,o,r,s=0,a=0,l=!0;for(o=0;othis.compare(e,t))}static compare(e,t){let i=e.get(),n=t.get();if(e.isRange||t.isRange){if(e.isRange&&t.isRange){const e=this.comparePath(i.from,n.from);return e||this.comparePath(i.to,n.to)}return e.isRange&&(i=i.from),t.isRange&&(n=n.from),this.comparePath(i,n)}return this.comparePath(i,n)}static compareParts(e,t){const i=Math.max(e.length,t.length);let n,o,r,s;for(n=0;n=i)return"img"===a.tagName.toLowerCase()&&n?{node:a,offset:n}:{node:a,offset:0}}else{if(l+=1,l===i)return"img"===a.tagName.toLowerCase()&&n?{node:a,offset:n}:{node:a,offset:0};if(l>i)return r?{node:r,offset:this.trueLength(e,r.textContent)}:{node:t,offset:0}}r=a;break;case Kt:case qt:if(0!==l&&l%2!=0||(l+=1),l===i){const t=this.trueLength(e,a.textContent);if(!(n>=t))return{node:a,offset:n};n-=t}r=a;break;default:continue}if(i>l){const i={relativeToNode:"after",offset:0};return i.node=r||t,this.isTextNode(i.node)&&(i.offset=this.trueLength(e,i.node.textContent.length)),i}}isTextNode(e){return!!e&&(e.nodeType===Kt||e.nodeType===qt)}correctOffset(e,t,i,n){let o,r=t;if("string"==typeof n?o=this.decodeEntities(e,n):(n.pre=this.decodeEntities(e,n.pre),n.post=this.decodeEntities(e,n.post),o=n.pre+"."+n.post),!this.isTextNode(t))return{node:t,offset:0};for(;this.isTextNode(r.previousSibling);)r=r.previousSibling;const s=r;let a;const l=[];let c="",d=0;for(;this.isTextNode(r)&&(a=this.decodeEntities(e,r.textContent),l[d]=a.length,c+=a,r.nextSibling);)r=r.nextSibling,d++;const g=n.pre?n.pre.length:0,h=function(e,t,i){i=i||0;const n=[];let o,r=0;do{if(o=e.match(t),!o)break;n.push(o.index+i),r+=o.index+o.length,e=e.slice(o.index+o.length)}while(r=l[d];){if(A-=l[d],A<0)return{node:t,offset:i};const e=[];if(!r.nextSibling||d+1>=e.length)return{node:t,offset:i};d++,r=r.nextSibling}return{node:r,offset:A}}resolveNode(e,t,i,n){if(n=Object.assign({},n||{}),!i)throw new Error("Missing DOM argument");let o;if(0===e&&(o=i.querySelector("package")),!o)for(const e of i.childNodes)if(e.nodeType===zt){o=e;break}if(o=i,!o)throw new Error("Document incompatible with CFIs");let r,s,a=o,l=0;for(r=t.length-1;r>=0;r--)if(s=t[r],!n.ignoreIDs&&s.nodeID&&(a=i.getElementById(s.nodeID))){l=r+1;break}a||(a=o);let c={node:a,offset:0};for(r=l;rthis.parts.length-2)throw new Error("index is out of bounds");const n=this.parts[e];if(!n)throw new Error("Missing CFI part for index: "+e);let o=this.resolveNode(e,n,t,i).node;const r=o.tagName.toLowerCase();if("itemref"===r&&"spine"===o.parentNode.tagName.toLowerCase()){const e=o.getAttribute("idref");if(!e)throw new Error("Referenced node had not 'idref' attribute");if(o=t.getElementById(e),!o)throw new Error("Specified node is missing from manifest");const i=o.getAttribute("href");if(!i)throw new Error("Manifest item is missing href attribute");return i}if("iframe"===r||"embed"===r){const e=o.getAttribute("src");if(!e)throw new Error(r+" element is missing 'src' attribute");return e}if("object"===r){const e=o.getAttribute("data");if(!e)throw new Error(r+" element is missing 'data' attribute");return e}if("image"===r||"use"===r){const e=o.getAttribute("xlink:href");if(!e)throw new Error(r+" element is missing 'xlink:href' attribute");return e}throw new Error("No URI found")}deepClone(e){return JSON.parse(JSON.stringify(e))}resolveLocation(e,t){const i=t.length-1,n=t[i];if(!n)throw new Error("Missing CFI part for index: "+i);const o=this.resolveNode(i,n,e),r=this.deepClone(n[n.length-1]);return delete r.nodeIndex,r.offset||delete o.offset,Object.assign(Object.assign({},r),o)}resolveLast(e,t){if(t=Object.assign({range:!1},t||{}),!this.isRange)return this.resolveLocation(e,this.parts);if(t.range){const t=e.createRange(),i=this.getFrom();"before"===i.relativeToNode?t.setStartBefore(i.node,i.offset):"after"===i.relativeToNode?t.setStartAfter(i.node,i.offset):t.setStart(i.node,i.offset);const n=this.getTo();return"before"===n.relativeToNode?t.setEndBefore(n.node,n.offset):"after"===n.relativeToNode?t.setEndAfter(n.node,n.offset):t.setEnd(n.node,n.offset),t}return{from:this.resolveLocation(e,this.getFrom()),to:this.resolveLocation(e,this.getTo()),isRange:!0}}resolve(e,t){return this.resolveLast(e,t)}}const _t="kookit-note-tooltip",ei=e=>{const t=e.getBoundingClientRect();return{left:t.left,top:t.top,right:t.right,bottom:t.bottom,width:t.width,height:t.height}},ti=(e,t,i,n)=>{e.style.left="0px",e.style.top="0px",requestAnimationFrame(()=>{const o=i.documentElement.clientWidth||window.innerWidth,r=i.documentElement.clientHeight||window.innerHeight,s=e.offsetWidth,a=e.offsetHeight;let l=t.left+t.width/2-s/2,c=t.top-a-n;l<0&&(l=0),l+s>o&&(l=Math.max(0,o-s)),c<0&&(c=t.bottom+n,c+a>r&&(c=Math.max(0,r-a))),e.style.left=l+"px",e.style.top=c+"px"})},ii=(e,t)=>{const i=e.getAttribute("data-key");if(!i)return ei(e);return(e=>{if(0===e.length)return null;const t=e.map(e=>ei(e)).filter(e=>e.width>0||e.height>0);if(0===t.length)return null;const i=Math.min(...t.map(e=>e.left)),n=Math.min(...t.map(e=>e.top)),o=Math.max(...t.map(e=>e.right)),r=Math.max(...t.map(e=>e.bottom));return{left:i,top:n,right:o,bottom:r,width:o-i,height:r-n}})(Array.from(t.querySelectorAll(".kookit-note[data-key], .kookit-note-icon[data-key]")).filter(e=>e.getAttribute("data-key")===i))||ei(e)},ni=(e,t,i)=>{let n=i.getElementById(_t);n||(n=i.createElement("span"),n.setAttribute("id",_t),n.setAttribute("class","kookit-note-tooltip"),n.setAttribute("style","position: fixed; z-index: 9999; max-width: 280px; padding: 6px 10px; background: #383838; color: #fff; font-size: 15px !important; border-radius: 6px; pointer-events: none; word-break: break-word; white-space: pre-wrap; line-height: 1.5;"),i.body.appendChild(n)),n.textContent=e,n.style.display="block",ti(n,ii(t,i),i,10)},oi=e=>{const t=e.getElementById(_t);null==t||t.remove()},ri=(e,t,i,n,o,r,s,a,l,c="")=>{let d=s.querySelector(".noteLayer"),g=s.querySelector("#koodoPDFLayer");var h=o.getViewport({scale:r});let A=[];for(let t=0;t{e.heighte.width-t.width),m=[];for(let e=0;e{if(o===e)return!1;const r=n.bottom;return Math.abs(i-r)

=t.right||n.left<=t.left&&Math.abs(n.right-t.right)<5||Math.abs(n.left-t.left)<5&&n.right>=t.right)})||m.push(t)}m.reduce((e,t)=>e?t.top{a&&c&&ni(c,e.currentTarget,s)}),null==w||w.addEventListener("mouseleave",()=>{oi(s)}),null==w||w.addEventListener("click",e=>{e&&e.target&&e.target.dataset&&e.target.dataset.key&&n(e)}),w.ontouchend=e=>{var t;if(!window.isSwiping){if(e&&e.target){let i="";s&&s.getSelection()&&(i=(null===(t=s.getSelection())||void 0===t?void 0:t.toString().trim())||""),e.target.dataset&&e.target.dataset.key&&!i&&n(e)}e.preventDefault(),e.stopPropagation()}},d.appendChild(w))}},si=e=>{var t;const i=e.querySelectorAll(".kookit-note-icon");for(let e=0;e0;){const t=n[0],i=t.parentNode;if(i){if("SPAN"===t.tagName&&t.childNodes.length>0){for(;t.firstChild;)i.insertBefore(t.firstChild,t);i.removeChild(t),i.normalize()}else i.removeChild(t);n=e.querySelectorAll(".kookit-note")}else n=e.querySelectorAll(".kookit-note")}},ai=(e,t,i,n,o,r=!1,s=!1,a="")=>{var l,c,d,g,h;if(s&&window.isSwiping){const l=()=>{window.isSwiping?requestAnimationFrame(l):ai(e,t,i,n,o,r,s,a)};return void requestAnimationFrame(l)}const A=e.nativeRange,u=[],p=o.createTreeWalker(A.commonAncestorContainer,NodeFilter.SHOW_TEXT,{acceptNode:e=>{const t=o.createRange();return t.selectNodeContents(e),A.compareBoundaryPoints(Range.END_TO_START,t)<0&&A.compareBoundaryPoints(Range.START_TO_END,t)>0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}});for(;p.nextNode();)u.push(p.currentNode);0===u.length&&A.commonAncestorContainer.nodeType===Node.TEXT_NODE&&u.push(A.commonAncestorContainer);const f=[],m=new Set;for(let e=0;e=0;if(n&&l){if(m.has(s))continue;m.add(s);const e=null===(g=null===(d=s.parentElement)||void 0===d?void 0:d.closest)||void 0===g?void 0:g.call(d,`.kookit-note[data-key="${i}"]`);if(e){f.push(e);continue}const n=o.createElement("span");n.setAttribute("style",v(t,!1,Y())),n.setAttribute("class","kookit-note"),n.setAttribute("data-key",i),r&&a&&n.setAttribute("data-note-content",a),s.parentNode.insertBefore(n,s),n.appendChild(s),f.push(n);continue}}let h=0,p=n.textContent.length;n===A.startContainer&&(h=A.startOffset),n===A.endContainer&&(p=A.endOffset);let w=n;h>0&&(w=n.splitText(h),p-=h),p{var t,i;const n=null===(i=null===(t=e.target)||void 0===t?void 0:t.closest)||void 0===i?void 0:i.call(t,".kookit-note[data-key]");if(n){o.body.style.cursor="pointer";const e=n.getAttribute("data-note-content")||"";e?ni(e,n,o):oi(o)}else o.body.style.cursor="",oi(o)},!0),o.body.addEventListener("mousedown",i=>{e=i.clientX,t=i.clientY},!0),o.body.addEventListener("click",i=>{var o,r;if(Math.abs(i.clientX-e)>5||Math.abs(i.clientY-t)>5)return;const s=null===(r=null===(o=i.target)||void 0===o?void 0:o.closest)||void 0===r?void 0:r.call(o,".kookit-note[data-key]");s&&n({target:s})},!0),o.body.addEventListener("touchend",e=>{var t,i,r;if(window.isSwiping)return;const s=e.changedTouches[0];if(!s)return;const a=null===(i=null===(t=o.elementFromPoint(s.clientX,s.clientY))||void 0===t?void 0:t.closest)||void 0===i?void 0:i.call(t,".kookit-note[data-key]");let l="";o&&o.getSelection()&&(l=(null===(r=o.getSelection())||void 0===r?void 0:r.toString().trim())||""),a&&!l&&(n({target:a}),e.preventDefault(),e.stopPropagation())},!0)}if(r&&f.length>0){const e=f[0],t=o.createElement("span");t.setAttribute("class","kookit-note-icon"),t.setAttribute("data-key",i),t.setAttribute("style","position: relative; z-index: 2; font-size: 14px; line-height: 1; cursor: pointer; pointer-events: auto;"),null===(h=e.parentNode)||void 0===h||h.insertBefore(t,e)}},li="kookit-word-tooltip",ci=(e,t,i)=>{let n=i.getElementById(li);n||(n=i.createElement("span"),n.setAttribute("id",li),n.setAttribute("class",li),n.setAttribute("style","position: fixed; z-index: 9999; max-width: 280px; padding: 6px 10px; background: #383838; color: #fff; font-size: 15px !important; border-radius: 6px; pointer-events: none; word-break: break-word; white-space: pre-wrap; line-height: 1.5;"),i.body.appendChild(n)),n.textContent=e,n.style.display="block",ti(n,ei(t),i,6)},di=e=>{const t=e.getElementById(li);null==t||t.remove()},gi=e=>{const t=e.querySelectorAll(".kookit-word-def");for(let e=0;e{var r;const s=Object.keys(e);if(0===s.length)return;const a="zh"===i||"ja"===i,l=(a?[...s].sort((e,t)=>t.length-e.length):s).map(e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")),c=a?new RegExp("("+l.join("|")+")","g"):new RegExp("\\b("+l.join("|")+")\\b","gi"),d=t.createTreeWalker(o||t.body,NodeFilter.SHOW_TEXT,{acceptNode:e=>{let t=e.parentElement;for(;t;){const e=t.tagName;if("SCRIPT"===e||"STYLE"===e||"RUBY"===e||t.classList.contains("kookit-note")||t.classList.contains("kookit-word-def")||t.classList.contains("kookit-text-rule-replace")||t.classList.contains("kookit-text-rule-delete")||t.classList.contains("kookit-note-tooltip")||t.classList.contains("kookit-word-tooltip"))return NodeFilter.FILTER_REJECT;t=t.parentElement}return NodeFilter.FILTER_ACCEPT}}),g=[];for(;d.nextNode();)g.push(d.currentNode);for(const o of g){const s=o.textContent||"";if(c.lastIndex=0,!c.test(s))continue;c.lastIndex=0;const a=t.createDocumentFragment();let l,d=0;for(;null!==(l=c.exec(s));){const o=s.slice(d,l.index);o&&a.appendChild(t.createTextNode(o));const r=l[0],c=e[r.toLowerCase()]||e[r],g=t.createElement("span");g.className="kookit-word-def";let h,A=c.meaning||"";if("zhCN"===n&&c.cn_meaning&&(A=c.cn_meaning),g.setAttribute("data-meaning",A||""),"zh"===i)h=["["+c.pinyin+"]"||"",A||"",c.level?"[HSK"+c.level+"]":""].filter(Boolean).join(" ");else if("ja"===i){h=[[c.furigana||"",c.romaji?"("+c.romaji+")":""].filter(Boolean).join(""),A||"",c.level?"[N"+c.level+"]":""].filter(Boolean).join(" ")}else h=[c.pronunciation||"",A||"",c.level?"["+c.level+"]":""].filter(Boolean).join(" ");g.setAttribute("data-def-full",h),g.appendChild(t.createTextNode(r)),a.appendChild(g),d=l.index+r.length}if(0===d)continue;const g=s.slice(d);g&&a.appendChild(t.createTextNode(g)),null===(r=o.parentNode)||void 0===r||r.replaceChild(a,o)}t.body.__kookitWordDefDelegated||(t.body.__kookitWordDefDelegated=!0,t.body.addEventListener("mousemove",e=>{var i,n;const o=null===(n=null===(i=e.target)||void 0===i?void 0:i.closest)||void 0===n?void 0:n.call(i,".kookit-word-def");if(o){const e=o.getAttribute("data-def-full")||"";ci(e,o,t)}else di(t)},!0),t.body.addEventListener("mouseleave",()=>{di(t)},!0),t.body.addEventListener("touchend",e=>{var i,n;const o=null===(n=null===(i=e.target)||void 0===i?void 0:i.closest)||void 0===n?void 0:n.call(i,".kookit-word-def");if(o){const i=o.getAttribute("data-def-full")||"";ci(i,o,t),null==e||e.preventDefault(),null==e||e.stopPropagation()}else{t.getElementById(li)&&(di(t),null==e||e.preventDefault(),null==e||e.stopPropagation())}},!0))};let Ai=null,ui=!1;const pi=(e,t,i,n=0)=>{Ai&&(cancelAnimationFrame(Ai),Ai=null),ui=!1,function(e){let t=document.getElementById("book");t&&t.remove();const i=document.createElement("div");i.id="book";const n=document.createElement("canvas");n.id="pageflip-canvas";const o=document.createElement("div");o.id="pages";for(let t=0;t{!w.length||u>=w.length||u+1{!w.length||u<=0||u-1>=0&&w[u-1]&&(w[u-1].target=1,u=Math.max(u-1,0))},setPageNum:e=>{w.length&&(u=Math.max(0,Math.min(e,w.length-1)),D())},resetFlips:D,cleanup:()=>{ui=!1,Ai&&(cancelAnimationFrame(Ai),Ai=null);const e=document.getElementById("pageflip-canvas");e&&(e.style.willChange="",e.style.transform="")},mouseDownHandler:E,mouseUpHandler:x,mouseMoveHandler:v}}}function v(e){var t;if(!B||!(null===(t=e.touches)||void 0===t?void 0:t[0]))return;const i=e.touches[0],n=B.getBoundingClientRect();m.x=i.screenX-n.left-s/2,m.y=i.screenY-n.top}function E(e){var t;const i=null===(t=e.touches)||void 0===t?void 0:t[0];i&&(d=i.screenX,i.screenX=0?w[u-1].dragging=!0:i.screenX>window.screen.width/2&&u+1l/4*1&&g-d>0?(w[n].target=1,u=Math.max(u-1,0)):n===u?w[n].target=1:n===u-1&&(w[n].target=-1)),w[n].dragging=!1}}function I(e){var n=1-Math.abs(e.progress),o=.5*l*(1-e.progress),r=l*e.progress+o,a=20*n,d=.5*l*Math.max(Math.min(1-e.progress,.5),0),g=.5*l*Math.max(Math.min(n,.5),0),h=.5*l*Math.max(Math.min(n,.5),0);e.page.style.width=Math.max(r,0)+"px",f.save(),f.translate(0+s/2,A+0),f.strokeStyle=("no"===t?"rgba(0,0,0,":"rgba(255,255,255,")+.05*n+")",f.lineWidth=30*n,f.beginPath(),f.moveTo(r-o,.5*-a),f.lineTo(r-o,c+.5*a),f.stroke();var u=f.createLinearGradient(r,0,r+g,0);u.addColorStop(0,("no"===t?"rgba(0,0,0,":"rgba(255,255,255,")+.2*n+")"),u.addColorStop(.8,("no"===t?"rgba(0,0,0,":"rgba(255,255,255,")+"0.0)"),f.fillStyle=u,f.beginPath(),f.moveTo(r,0),f.lineTo(r+g,0),f.lineTo(r+g,c),f.lineTo(r,c),f.fill();var p=f.createLinearGradient(r-o-h,0,r-o,0);p.addColorStop(0,("no"===t?"rgba(0,0,0,":"rgba(255,255,255,")+"0.0)"),p.addColorStop(1,("no"===t?"rgba(0,0,0,":"rgba(255,255,255,")+.15*+n+")"),f.fillStyle=p,f.beginPath(),f.moveTo(r-o-h,0),f.lineTo(r-o,0),f.lineTo(r-o,c),f.lineTo(r-o-h,c),f.fill();var m=f.createLinearGradient(r-d,0,r,0);i?(m.addColorStop(.35,i),m.addColorStop(.73,i),m.addColorStop(.9,i),m.addColorStop(1,i)):"no"===t?(m.addColorStop(.35,"#fafafa"),m.addColorStop(.73,"#eeeeee"),m.addColorStop(.9,"#fafafa"),m.addColorStop(1,"#e2e2e2")):(m.addColorStop(.35,"#333"),m.addColorStop(.73,"#444"),m.addColorStop(.9,"#333"),m.addColorStop(1,"#444")),f.fillStyle=m,f.strokeStyle=("no"===t?"rgba(0,0,0,":"rgba(255,255,255,")+"0.06)",f.lineWidth=.5,f.beginPath(),f.moveTo(r,0),f.lineTo(r,c),f.quadraticCurveTo(r,c+2*a,r-o,c+a),f.lineTo(r-o,-a),f.quadraticCurveTo(r,2*-a,r,0),f.fill(),f.stroke(),f.restore()}function D(){for(var e=0;e{var i;const n=t.getElementById("pdf-container-"+e);if(!n)return;let o=document.createElement("iframe");o.style.position="absolute",o.style.top="0",o.style.left="0",o.style.width="100%",o.style.height="100%",o.style.border="0",o.style.margin="0",o.style.padding="0",o.style.fontSize="100%",o.style.font="inherit",o.scrolling="no",o.tabIndex=0,o.id="pdf-iframe-"+e;let r=document.createElement("style");return r.id="default-style",r.textContent="body{margin: 0px}",n.appendChild(o),null===(i=o.contentDocument)||void 0===i||i.head.appendChild(r),o},mi=(e,t,i)=>d(void 0,void 0,void 0,function*(){let n=i.getElementById("pdf-container-"+e);if(n)if("scroll"!==t){let e=n?G(n)-O(n.marginLeft||parseFloat(getComputedStyle(n).marginLeft)):0;i.body.scrollTo(e,0)}else n.scrollIntoView()}),wi=(e,t,i,n)=>{var o=!1,r=t.getBoundingClientRect();if("scroll"!==i){let e=r.left;o=e>-10&&e<=n.body.clientWidth}else{let t=r.top,i=r.bottom;o=t-10>=e.scrollTop&&t+10<=e.scrollTop+e.clientHeight||i-10>=e.scrollTop&&i+10<=e.scrollTop+e.clientHeight||t+10<=e.scrollTop&&i-10>=e.scrollTop+e.clientHeight}return o},Bi=(e,t,i)=>{if(i.querySelectorAll('span[data-highlight="true"]').forEach(e=>{const t=(e.getAttribute("style")||"").replace(/background(?:-image|-repeat|-position|-size|-color)?\s*:[^;]+;?/gi,"").replace(/mix-blend-mode\s*:[^;]+;?/gi,"").replace(/border-(?:bottom|right)\s*:[^;]+;?/gi,"").replace(/text-decoration(?:-line|-style|-color|-thickness|-skip-ink)?\s*:[^;]+;?/gi,"").trim();t?e.setAttribute("style",t):e.removeAttribute("style"),e.removeAttribute("data-highlight")}),!e.trim())return;let n=((e,t)=>{const i=Array.from(e);if(!t||0===i.length)return[];const n=t.replace(/\s+/g," ").trim().replace(/[,.;:!?] (?=\S)/g,e=>e[0]);if(!n)return[];const o=M(n),r="zh"===o||"ja"===o||"ko"===o,s=(e,t)=>{const i=e.getBoundingClientRect(),n=t.getBoundingClientRect(),o=Math.min(i.height,n.height);return!(o<=0)&&Math.abs(n.top-i.top)<=.6*o};let a="";const l=[];for(let e=0;e0&&!a.endsWith(" ")&&!t.startsWith(" ")&&!s(i[e-1],i[e])&&(a.endsWith("-")?(a=a.slice(0,-1),l[l.length-1].end-=1):r||(a+=" "));const n=a.length;a+=t,l.push({start:n,end:a.length})}let c="";const d=[];let g=!0;for(let e=0;e=d.length?d[d.length-1]+1:d[A];let f=-1,m=-1;for(let e=0;eu&&t0)for(let e=0;ed(void 0,void 0,void 0,function*(){let e=Math.floor(n.body.clientWidth/12),c=e%2==0?e:e-1;const d=n.body.clientWidth;if(mt(t,s,i,o,r),i>0)if("single"===l){let e=n.querySelector("#pdf-container-"+(a-1));e&&e.scrollIntoView()}else n.body.scrollBy(-(d+c)/2,0);else if(i<0)if("single"===l){let e=n.querySelector("#pdf-container-"+(a+1));e&&e.scrollIntoView()}else n.body.scrollBy((d+c)/2,0)}),bi=e=>d(void 0,void 0,void 0,function*(){const t=e.getViewport({scale:1}),i=document.createElement("canvas"),n=i.getContext("2d");i.width=800,i.height=800/t.width*t.height;const o={canvasContext:n,viewport:e.getViewport({scale:800/t.width})};yield e.render(o).promise;const r=i.toDataURL("image/jpeg",.8),s=function(e){const t=e.length-23;return Math.ceil(.75*t)}(r);return{imageURL:r,size:s}});const Ci=e=>{let t=document.getElementById("ocr-progress-bar");t||(t=document.createElement("progress"),t.id="ocr-progress-bar",t.max=1,t.value=0,t.style.position="fixed",t.style.top="10px",t.style.left="50%",t.style.transform="translateX(-50%)",t.style.width="300px",t.style.zIndex="9999",document.body.appendChild(t)),t.value=e,e>=1&&setTimeout(()=>{t.remove()},1e3)},vi=(e,t=1.2,i=1.5)=>d(void 0,void 0,void 0,function*(){let n=yield e.text.getTextContent(),o=[];if("string"==typeof n)o=n.split("\n").filter(e=>""!==e.trim()).map(e=>({text:e,isBold:!1}));else if(n&&n.items&&Array.isArray(n.items)){const e=n.items.filter(e=>e.str&&e.transform).map(e=>e.transform[3]);let r=10;if(e.length>0){const t=e.reduce((e,t)=>(e[t]=(e[t]||0)+1,e),{});r=Object.keys(t).map(Number).reduce((e,i)=>t[e]>t[i]?e:i)}let s={text:"",styles:new Set,y:0,tag:"p"},a=0;n.items.forEach(e=>{if(e.str){const n=Math.abs(e.transform[5]-a);let l="p",c=e.transform[3]>Number(r)*t;n>e.height*i&&s.text.trim()?(o.push(s),s={text:"",styles:new Set,y:e.transform[5],tag:l,isBold:c}):s.hasOwnProperty("isBold")||(s.isBold=c);const d=e.str;if(e.hasEOL)if(d.endsWith("-"))s.text+=d.slice(0,-1);else{const e=M(d+s.text);s.text+="zh"===e||"ja"===e||"ko"===e?d:d+" "}else s.text+=d;a=e.transform[5]}}),s.text.trim()&&o.push(s)}return o}),Ei=(e,t,i,n)=>i<=0||n<=0||e<0||e>i||t<0||t>n?null:((e,t,i,n)=>{if(i<=0||n<=0)return null;const o=(e,t)=>Math.pow(e/50,2)+Math.pow(t/50,2)<=1;return o(i-e,n-t)?"br":o(e,t)?"tl":null})(e,t,i,n),xi=e=>!!(e&&e.toString().trim().length>0&&e.rangeCount>0),Ii=e=>{const{iframe:t,doc:i,render:n,readerMode:o,format:r,enableScrollPin:s=!1}=e;if("scroll"===o||"PDF"===r)return null;let a=null,l=null,c=!1,d=null,g=null,h=null,A=!1,u=null,p=!1;const f=()=>({w:i.documentElement.clientWidth||i.body.clientWidth||t.clientWidth,h:i.documentElement.clientHeight||i.body.clientHeight||t.clientHeight}),m=(e,i)=>{const n=t.getBoundingClientRect();return{x:e-n.left,y:i-n.top}},w=()=>{const e=h;if(!e)return null;const{w:t,h:i}=f();return Ei(e.x,e.y,t,i)},B=()=>{const e=i.getSelection();if(!e||!xi(e))return null;const t=((e,t)=>{var i;const n=t.focusNode;if(!n)return null;let o;try{const r=e.createRange(),s=n.nodeType===Node.TEXT_NODE?Math.min(t.focusOffset,(null!==(i=n.textContent)&&void 0!==i?i:"").length):t.focusOffset;r.setStart(n,s),r.collapse(!0),o=r.getBoundingClientRect()}catch(e){return null}return 0===o.width&&0===o.height&&0===o.left&&0===o.top?null:{x:(o.left+o.right)/2,y:(o.top+o.bottom)/2}})(i,e);if(!t)return null;const{w:n,h:o}=f();return Ei(t.x,t.y,n,o)},y=e=>(w()||(p?null:B()))===e,b=()=>{l=null,a&&(clearTimeout(a),a=null)},C=()=>{null==u||u(),u=null},v=()=>{var e;C();const n=null===(e=t.ownerDocument)||void 0===e?void 0:e.defaultView,o=i.defaultView;if(!n&&!o)return;const r=e=>{if(!A)return;const t=e.touches[0];t&&(h={x:t.clientX,y:t.clientY},E(w()))},s=e=>{if(!A)return;const t=e.touches[0];if(!t)return;const i=m(t.clientX,t.clientY);h=i,E(w())},a=e=>{if(!A)return;const t=e.view===o?{x:e.clientX,y:e.clientY}:m(e.clientX,e.clientY);h=t,E(w())};null==o||o.addEventListener("touchmove",r,{capture:!0,passive:!0}),null==o||o.addEventListener("pointermove",a,{capture:!0,passive:!0}),null==n||n.addEventListener("touchmove",s,{capture:!0,passive:!0}),n&&n!==o&&n.addEventListener("pointermove",a,{capture:!0,passive:!0}),u=()=>{null==o||o.removeEventListener("touchmove",r,{capture:!0}),null==o||o.removeEventListener("pointermove",a,{capture:!0}),null==n||n.removeEventListener("touchmove",s,{capture:!0}),n&&n!==o&&n.removeEventListener("pointermove",a,{capture:!0})}},E=e=>{c||(e?l!==e&&(l=e,(e=>{a||(a=setTimeout(()=>{a=null;const t=i.getSelection();if(c||!t||!xi(t)||!y(e))return;c=!0;const o="br"===e?n.next():n.prev();Promise.resolve(o).finally(()=>{d=i.body.scrollLeft,g=i.body.scrollTop,c=!1,l=e,p=!0})},500))})(e)):l&&!y(l)&&(l=null,a&&(clearTimeout(a),a=null)))},x=()=>{A=!1,p=!1,b(),C(),d=null,g=null,h=null};return{onSelectStart:()=>{d=i.body.scrollLeft,g=i.body.scrollTop,h=null,A=!1,p=!1,b(),v()},onSelectionChange:()=>{const e=i.getSelection();xi(e)?(A=!0,null===d&&(d=i.body.scrollLeft,g=i.body.scrollTop),u||v(),p||E(B())):x()},onTouchMove:(e,t)=>{h={x:e,y:t},E(w())},onSelectionCleared:x,cancelAutoTurn:b,applyScrollPin:()=>{s&&A&&!c&&null!==d&&(i.body.scrollLeft!==d&&(i.body.scrollLeft=d),null!==g&&g>0&&i.body.scrollTop!==g&&(i.body.scrollTop=g))},hasActiveSelection:()=>A}};let Di=!1,Qi=0,ki=!1;const Si=(e,t,i,n,o,r,s)=>{let a=o.clientWidth+s,l="PDF"===t?n:i;if(Di=!1,window.scrollAnimationId&&(cancelAnimationFrame(window.scrollAnimationId),window.scrollAnimationId=null),Math.abs(l.body.scrollWidth-l.body.scrollLeft-o.clientWidth)<10&&"right"===e)return void r.next();if(0===l.body.scrollLeft&&"left"===e)return void r.prev();let c,d=l.body.scrollLeft;const g=Math.round(d/a);c="left"===e?(g-1)*a:"right"===e?(g+1)*a:g*a;const h=l.body.scrollWidth-o.clientWidth;(c>=h||l.body.scrollWidth-c{m||(m=!0,f.style.willChange="",f.style.transform="",f.style.transition="",p.scrollLeft=c,Math.abs(p.scrollLeft-c)>.5?requestAnimationFrame(()=>{p.scrollLeft=c,r.record(),Di=!1,window.isSwiping=!1}):(r.record(),Di=!1,window.isSwiping=!1))},B=e=>{e.target===f&&"transform"===e.propertyName&&(f.removeEventListener("transitionend",B),w())};f.addEventListener("transitionend",B),window.scrollAnimationId=setTimeout(w,300)};function Mi(e){return d(this,void 0,void 0,function*(){try{const t=yield fetch(e),i=yield t.blob();return yield new Promise((e,t)=>{const n=new FileReader;n.onloadend=()=>e(n.result),n.onerror=t,n.readAsDataURL(i)})}catch(e){throw console.error("转换失败:",e),e}})}function Fi(){return window.visualViewport?window.visualViewport.offsetLeft:window.pageXOffset||document.documentElement.scrollLeft||0}function Li(){return window.visualViewport?window.visualViewport.offsetTop:window.pageYOffset||document.documentElement.scrollTop||0}const Ti=(e,t,i)=>d(void 0,void 0,void 0,function*(){if(!e.target)return;e.preventDefault(),e.stopPropagation();let t=i.getTargetHref(e),n=yield i.handleLinkJump(t,e);if(!n.handled)return!1;if(n.external)return window.ReactNativeWebView.postMessage(JSON.stringify(Object.assign({event:"link-clicked",href:t,footnote:""},n))),!0;let o=yield i.getFootnoteContent(n.node);return window.ReactNativeWebView.postMessage(JSON.stringify(Object.assign({event:"link-clicked",href:t,footnote:o.handled?o.content:"",rect:e.target.getBoundingClientRect()},n))),!0});function Ri(e){if("A"===e.tagName)return e;let t=e;for(;t&&"BODY"!==t.tagName;){if("A"===t.tagName)return t;t=t.parentElement}return null}function Hi(e,t,i){const n=3*t+e+1;return i.layout.A.area.includes(n)?i.touchControlA:i.layout.B.area.includes(n)?i.touchControlB:i.layout.C.area.includes(n)?i.touchControlC:"right"}const Yi=e=>{var t,i,n;let o=e.getSelection();if(!o||!o.toString().trim())return"";try{let e=o.getRangeAt(0).commonAncestorContainer,r=(null===(t=e.nodeType===Node.TEXT_NODE?e.parentElement:e)||void 0===t?void 0:t.textContent)||"",s=o.toString().trim(),a=null!==(n=null===(i=r.match(/[^.!?。!?]*[.!?。!?]?/g))||void 0===i?void 0:i.filter(e=>e.length>0))&&void 0!==n?n:[];for(let e of a)if(e.includes(s))return e.trim();return r.trim().substring(0,200)}catch(e){}return""},Oi=(e,i,n,o,r,s,a,l)=>{var c;let g=i.contentWindow||(null===(c=i.contentDocument)||void 0===c?void 0:c.defaultView),h=l.getDocument(),A=0,u=0,p=0,f=0;const m=30;let w=Math.floor(n.clientWidth/12),B=w%2==0?w:w-1;n.clientWidth;const y=Ii({element:n,iframe:i,doc:e,render:l,readerMode:o,format:s,enableScrollPin:!0});let b=0;e.addEventListener("touchend",function(t){window.isSwiping=!1;let i=(new Date).getTime();if(i-f<=300)return void t.preventDefault();f=i,function(e,t,i){var n;if(!ki)return;if(ki=!1,"PDF"!==i)return;if(window.visualViewport.scale<=1.01)return;let o=Date.now();if(o-Qi<1e3)return;Qi=o;let r=e.target.ownerDocument,s=null===(n=null==r?void 0:r.defaultView)||void 0===n?void 0:n.frameElement,a=(null==s?void 0:s.getAttribute("id"))||"",l=a?parseInt(a.split("-").reverse()[0]):0;window.ReactNativeWebView.postMessage(JSON.stringify({event:"pinch-zoom",chapterDocIndex:l,scale:window.visualViewport.scale})),t.handleRenderPDFChapter(l,!0)}(t,l,s);const c=t.changedTouches[0],d=Date.now();let w=c.screenX,b=c.screenY;const C=d-A,v=w-u,E=b-p;if(Di&&("mimical"===r||"none"===r)&&"scroll"!==o)return Di=!1,l.mouseUpHandler(t),c.screenXwindow.innerWidth/4*1&&w-u>0&&(l.prev(),Di=!1),void setTimeout(()=>{let e=document.getElementById("book");e&&(e.style.display="none")},400);if(Di&&"sliding"===r&&"scroll"!==o){const t=Math.abs(v)/window.innerWidth,i=.1;return void Si(v>0&&t>i?"left":v<0&&t>i?"right":"stay",s,e,h,n,l,B)}var x=g.getSelection().toString(),I=Math.abs(v)>=m||Math.abs(E)>=m;if(!x||"PDF"===s&&("PDF"!==s||I)){if(x||null==y||y.onSelectionCleared(),C>500){const e=t.target;if(!e)return;if(Ri(e))return;if("IMG"===e.tagName||"image"===e.tagName){const t=e.src||e.getAttribute("xlink:href");return void(t.startsWith("blob:")&&Mi(t).then(e=>{window.ReactNativeWebView.postMessage(JSON.stringify({event:"view-image",imgSrc:e}))}))}}if(C<500&&Math.abs(v)=m||Math.abs(E)>=m)&&(window.ReactNativeWebView.postMessage(JSON.stringify({event:"swipe"})),"scroll"===o&&Math.abs(n.scrollHeight-n.scrollTop-n.clientHeight)<10&&window.ReactNativeWebView.postMessage(JSON.stringify({event:"scroll-bottom"})),"scroll"===o&&0===n.scrollTop&&window.ReactNativeWebView.postMessage(JSON.stringify({event:"scroll-top"})))}else window.ReactNativeWebView.postMessage(JSON.stringify({event:"select-text-after-touch",selectedText:x}))},!1),e.addEventListener("touchstart",function(e){A=Date.now();const t=e.target;if(!t)return;if(Ri(t))return;e.touches.length>1&&(e.preventDefault(),ki=!0);const i=e.touches[0];u=i.screenX,p=i.screenY},!1),e.addEventListener("touchmove",function(t){if(g.getSelection().toString().trim()){const e=t.touches[0];return void(null==y||y.onTouchMove(e.clientX,e.clientY))}if(!Di&&Math.abs(t.touches[0].screenX-u)<=10)return;if(t.preventDefault(),window.visualViewport.scale>1&&"PDF"===s)return void t.preventDefault();const i=t.touches[0],n=i.screenX,a=i.screenY,c=n-u,d=a-p;if((Math.abs(c)>10||Math.abs(d)>10)&&(window.isSwiping=!0),!Di&&Math.abs(c)>Math.abs(d)&&Math.abs(c)>10){if(Di=!0,b=n,e.body.style.transform="translateZ(0)","mimical"===r&&"scroll"!==o){let e=document.getElementById("book");e&&(e.style.display="block",l.mouseDownHandler(t))}}else if(Di&&"mimical"===r&&"scroll"!==o&&l.mouseMoveHandler(t),Di&&"sliding"===r&&"scroll"!==o){let t="PDF"===s?h:e;const i=n-b,o=t.body.scrollLeft;t.body.scrollLeft=o-i,b=n,requestAnimationFrame(()=>{})}},!1),e.addEventListener("pointermove",e=>{g.getSelection().toString().trim()&&(null==y||y.onTouchMove(e.clientX,e.clientY))},{passive:!0}),e.addEventListener("click",e=>{Ti(e,0,l)},!0);let C=0,v=0,E=i=>d(void 0,void 0,void 0,function*(){var o,r;const a=g.getSelection().toString().trim();if(a){var c=g.getSelection().getRangeAt(0);let A=l.getPageSize();var d=c.getBoundingClientRect();if("PDF"===s){let e=c.getClientRects();if(e.length>0){e=Array.from(e).filter(e=>Math.abs(e.height-A.sectionHeight)>10&&Math.abs(e.width-A.sectionWidth)>10&&e.height>0&&e.width>0);let t=1/0,i=1/0,n=-1/0,o=-1/0;for(let r=0;r{window.ReactNativeWebView.postMessage(JSON.stringify({event:"view-image",imgSrc:e}))}))}return Date.now()-C<100?setTimeout(()=>{1===v&&E(e)},600):E(e),e.preventDefault(),e.stopPropagation(),!1}};let x=0,I=0,D=0,Q=0;e.addEventListener("selectstart",t=>{v=0,C=Date.now(),D=Fi(),Q=Li(),"scroll"!==o&&(null==y||y.onSelectStart(),"PDF"===s&&(x=e.body.scrollLeft,I=e.body.scrollTop))},!1);let k=0;let S=null;e.addEventListener("selectionchange",t=>{"PDF"!==s&&(S&&clearTimeout(S),S=setTimeout(()=>{E(t),S=null},1e3));if(!g.getSelection().toString().trim())return void(null==y||y.onSelectionCleared());y?y.onSelectionChange():(x>0&&(e.body.scrollLeft=x),I>0&&(e.body.scrollTop=I)),v++;const i=Date.now();i-k>=3e3&&(k=i,window.ReactNativeWebView.postMessage(JSON.stringify({event:"selection-change"})))},!1),e.addEventListener("scroll",()=>{if("single"===o||"double"===o)if(y)y.applyScrollPin();else{const t=g.getSelection().toString().trim();t&&x>0&&(e.body.scrollLeft=x),t&&I>0&&(e.body.scrollTop=I)}})},Gi=(e,i,n,o,r,s,a,l)=>{var c;let g=i.contentWindow||(null===(c=i.contentDocument)||void 0===c?void 0:c.defaultView),h=l.getDocument(),A=0,u=0,p=0,f=0;let m=Math.floor(n.clientWidth/12),w=m%2==0?m:m-1;const B=Ii({element:n,iframe:i,doc:e,render:l,readerMode:o,format:s,enableScrollPin:!1});let y=0;e.addEventListener("touchend",function(i){var c,m;return d(this,void 0,void 0,function*(){window.isSwiping=!1;let d=(new Date).getTime();if(d-f<=300)return void i.preventDefault();f=d;const y=i.changedTouches[0],b=Date.now(),C=y.screenX,v=y.screenY,E=b-A,x=C-u,I=v-p;if(Di&&("mimical"===r||"none"===r)&&"scroll"!==o)return Di=!1,l.mouseUpHandler(i),Cwindow.innerWidth/4*1&&C-u>0&&(l.prev(),Di=!1),void setTimeout(()=>{let e=document.getElementById("book");e&&(e.style.display="none")},400);if(Di&&"sliding"===r&&"scroll"!==o){const t=Math.abs(x)/window.innerWidth,i=.1;return void Si(x>0&&t>i?"left":x<0&&t>i?"right":"stay",s,e,h,n,l,w)}const D=g.getSelection().toString().trim();if(D){var Q=g.getSelection().getRangeAt(0).getBoundingClientRect(),k=l.getPageSize(),S={top:Q.top-n.scrollTop,left:Q.left,width:Q.width,height:Q.height,screenWidth:window.innerWidth,screenHeight:window.innerHeight,sectionHeight:k.sectionHeight,sectionWidth:k.sectionWidth,gap:k.gap,scale:window.visualViewport.scale,offsetLeft:Fi(),offsetTop:Li()};t.init();let o=null;if("PDF"===s){let e=i.target.ownerDocument,t=null===(c=null==e?void 0:e.defaultView)||void 0===c?void 0:c.frameElement,n=(null==t?void 0:t.getAttribute("id"))||"",r=n?parseInt(n.split("-").reverse()[0]):0;S.chapterDocIndex=r+"",o=yield l.getHighlightCoords(r);let s=t.parentElement;s&&(S.top=S.top+parseFloat(s.getBoundingClientRect().top))}else o=yield l.getHighlightCoords();let r=Yi(e);return void window.ReactNativeWebView.postMessage(JSON.stringify({event:"select-text",selectedText:D,sentence:r,position:S,range:o}))}if(D||null==B||B.onSelectionCleared(),E>500){const e=i.target;if(!e)return;if(Ri(e))return;if("IMG"===e.tagName||"image"===e.tagName){const t=e.src||e.getAttribute("xlink:href");return void(t.startsWith("blob:")&&Mi(t).then(e=>{window.ReactNativeWebView.postMessage(JSON.stringify({event:"view-image",imgSrc:e}))}))}}if(E<500&&Math.abs(x)<30&&Math.abs(I)<30){const t=document.documentElement.clientWidth,c=document.documentElement.clientHeight;let d=Math.min(Math.max(C,0),t),g=Math.min(Math.max(v,0),c);if("PDF"===s&&"double"===o){let e=i.target.ownerDocument,n=null===(m=null==e?void 0:e.defaultView)||void 0===m?void 0:m.frameElement,o=(null==n?void 0:n.getAttribute("id"))||"";(o?parseInt(o.split("-").reverse()[0]):0)%2==1&&(d+=t/2)}const A=t/3,u=c/3;let p=Hi(Math.min(Math.floor(d/A),2),Math.min(Math.floor(g/u),2),a);if("sliding"===r&&"scroll"!==o){if("right"===p)return void Si("right",s,e,h,n,l,w);if("left"===p)return void Si("left",s,e,h,n,l,w)}window.ReactNativeWebView.postMessage(JSON.stringify({event:p}))}else(Math.abs(x)>=30||Math.abs(I)>=30)&&(window.ReactNativeWebView.postMessage(JSON.stringify({event:"swipe"})),"scroll"===o&&Math.abs(n.scrollHeight-n.scrollTop-n.clientHeight)<10&&window.ReactNativeWebView.postMessage(JSON.stringify({event:"scroll-bottom"})),"scroll"===o&&0===n.scrollTop&&window.ReactNativeWebView.postMessage(JSON.stringify({event:"scroll-top"})))})},{passive:!1}),e.addEventListener("touchstart",function(e){const t=e.target;if(!t)return;if(Ri(t))return;e.touches.length>1&&(ki=!0);const i=e.touches[0];A=Date.now(),u=i.screenX,p=i.screenY},{passive:!1}),e.addEventListener("touchmove",function(t){if(g.getSelection().toString().trim()){const e=t.touches[0];return void(null==B||B.onTouchMove(e.clientX,e.clientY))}if(!Di&&Math.abs(t.touches[0].screenX-u)<=10)return;if(window.visualViewport.scale>1&&"PDF"===s)return;"scroll"!==o&&t.preventDefault();const i=t.touches[0],n=i.screenX,a=i.screenY,c=n-u,d=a-p;if(!Di&&Math.abs(c)>Math.abs(d)&&Math.abs(c)>10){if(Di=!0,y=n,"mimical"===r&&"scroll"!==o){window.isSwiping=!0;let e=document.getElementById("book");e&&(e.style.display="block",l.mouseDownHandler(t))}}else if(Di&&"mimical"===r&&"scroll"!==o&&l.mouseMoveHandler(t),Di&&"sliding"===r&&"scroll"!==o){window.isSwiping=!0;let t="PDF"===s?h:e;const i=n-y,o=t.body.scrollLeft;t.body.scrollLeft=o-i,y=n,requestAnimationFrame(()=>{})}},{passive:!1}),e.addEventListener("pointermove",e=>{g.getSelection().toString().trim()&&(null==B||B.onTouchMove(e.clientX,e.clientY))},{passive:!0}),e.addEventListener("click",e=>{Ti(e,0,l)},!0),e.body.oncontextmenu=function(e){return e.preventDefault(),e.stopPropagation(),!1},e.addEventListener("selectstart",()=>{"scroll"!==o&&(null==B||B.onSelectStart())},!1);let b=0;e.addEventListener("selectionchange",e=>{if(!g.getSelection().toString().trim())return void(null==B||B.onSelectionCleared());null==B||B.onSelectionChange();const t=Date.now();t-b>=3e3&&(b=t,window.ReactNativeWebView.postMessage(JSON.stringify({event:"selection-change"})))},{passive:!1})};class Ni extends jt{constructor(e){super(),this.animation="none",this.isBionic="no",this.platform="web",this.isAllowScript="no",this.fullTranslationMode="no",this.addPageAnimation=e=>{if("mimical"!==this.animation)return;const t=this.getProgress();if(!(null==t?void 0:t.totalPage))return;const i=pi(t.totalPage,this.isDarkMode,e||this.backgroundColor,Math.max(0,Math.floor(t.currentPage||1)-1));i&&(this.flipToNextPage=i.flipToNextPage,this.flipToPrevPage=i.flipToPrevPage,this.mouseDownHandler=i.mouseDownHandler,this.mouseUpHandler=i.mouseUpHandler,this.mouseMoveHandler=i.mouseMoveHandler)},this.readerMode=e.readerMode,window.readerMode=e.readerMode,this.animation=e.animation||"none",this.format=e.format,this.convertChinese=e.convertChinese,window.convertChinese=e.convertChinese,this.isIndent=e.isIndent,window.isIndent=e.isIndent,this.isHyphenation=e.isHyphenation||"no",window.isHyphenation=this.isHyphenation,this.isDarkMode=e.isDarkMode,this.isMobile=e.isMobile,this.backgroundColor=e.backgroundColor||"",this.textOrientation=e.textOrientation,window.textOrientation=e.textOrientation,this.chapterList=[],this.chapterDocList=[],this.flattenChapters=[],this.book="",this.element="",this.tempLocation={},this.isBionic=e.isBionic||"no",this.platform=e.platform||"web",window.platform=this.platform,window.isBionic=this.isBionic,this.transMap={},window.transMap=this.transMap,this.fullTranslationMode=e.fullTranslationMode||"no",window.fullTranslationMode=this.fullTranslationMode,this.bookLayout=e.bookLayout||"",window.bookLayout=this.bookLayout,this.codeHighlight=e.codeHighlight||"",window.codeHighlight=this.codeHighlight,this.textRules=e.textRules||[],window.textRules=this.textRules,this.isAllowScript="PDF"===this.format||"yes"===this.isMobile?"yes":e.isAllowScript||"no",this.flipToNextPage=()=>{},this.flipToPrevPage=()=>{},this.mouseDownHandler=()=>{},this.mouseUpHandler=()=>{},this.mouseMoveHandler=e=>{},this.touchEventSet={},"yes"===this.isMobile&&(console.log=function(...e){window.ReactNativeWebView.postMessage(e.map(e=>String(e)).join(", "))},console.info=function(...e){window.ReactNativeWebView.postMessage(e.map(e=>String(e)).join(", "))},console.error=function(...e){window.ReactNativeWebView.postMessage(e.map(e=>String(e)).join(", "))})}isVertical(){return"vertical"===this.textOrientation&&"scroll"!==this.readerMode}getPageSize(){let e="double"===this.readerMode?2:1,t=this.getIframe();if(!t)return;let i=null==t?void 0:t.getBoundingClientRect().height;if(this.isVertical()){let t=Math.floor(this.element.clientHeight/12),i=t%2==0?t:t-1;return{width:this.element.clientWidth,height:this.element.clientHeight,left:G(this.element),top:N(this.element),scrollTop:this.element.scrollTop,scrollLeft:this.element.scrollWidth/2-this.element.clientWidth/2,sectionWidth:this.element.clientWidth,sectionHeight:(this.element.clientHeight-i)/e,gap:i}}let n=Math.floor(this.element.clientWidth/12),o=n%2==0?n:n-1;return{width:this.element.clientWidth,height:this.element.clientHeight,left:G(this.element),top:N(this.element),scrollTop:this.element.scrollTop,scrollLeft:this.element.scrollWidth/2-this.element.clientWidth/2,sectionWidth:(this.element.clientWidth-o)/e,sectionHeight:i,gap:o}}scrollToText(e){return d(this,void 0,void 0,function*(){let t=this.getDocument();if(!t)return;let i=I(t.body).filter(e=>!D(e)).filter(t=>(t.textContent||"").indexOf(e)>-1);if(i.length>0){let e=i[0],n=e?G(e)-O(e.marginLeft||parseFloat(getComputedStyle(e).marginLeft)):0,o=e?N(e)-O(e.marginTop||parseFloat(getComputedStyle(e).marginTop)):0;"scroll"!==this.readerMode?this.isVertical()?t.body.scrollTo(0,o):t.body.scrollTo(n,0):this.element.scrollTo(0,o)}"none"!==this.animation&&"yes"!==this.isMobile&&(yield new Promise(e=>setTimeout(e,1e3))),yield St(this.element,this.readerMode,this.flatChapter(this.chapterList),this.chapterDocList,this.tempLocation,t,null),this.trigger("scroll-text")})}goToPage(e){return d(this,void 0,void 0,function*(){if("scroll"===this.readerMode){e<0&&(e=1);let t=(e-1)*(this.element.clientHeight-50);this.element.scrollTo(0,t)}else{let t=this.getDocument();if(!t)return;if(this.isVertical()){let i=Math.floor(this.element.clientHeight/12),n=i%2==0?i:i-1;const o=this.element.clientHeight+n;"double"===this.readerMode?e=(e%2==0?e-2:e-1)/2:e-=1,e<0&&(e=0);const r=e*o;t.body.scrollTo({left:0,top:r,behavior:"sliding"===this.animation&&"yes"!==this.isMobile?"smooth":"auto"})}else{let i=Math.floor(this.element.clientWidth/12),n=i%2==0?i:i-1;const o=this.element.clientWidth+n;"double"===this.readerMode?e=(e%2==0?e-2:e-1)/2:e-=1,e<0&&(e=0);const r=e*o;t.body.scrollTo({top:0,left:r,behavior:"sliding"===this.animation&&"yes"!==this.isMobile?"smooth":"auto"})}}yield this.record()})}resolveChapter(e){let t=e;t=t.replace(/^#/,"").replace(/^\.\//,"").replace(/^\//,""),t.startsWith("../")&&(t=t.replace(/^\.\.\//,""));let i=-1;0===this.flattenChapters.length&&this.flatChapter(this.chapterList);for(let e=0;e-1){let t=this.flattenChapters[i];return e.startsWith("kindle")?this.chapterDocList[t.index].href===e?t:null:t}for(let e=0;e-1){let e=this.chapterDocList[i];return{label:e.label||"",href:e.href,index:i}}for(let e=0;e-1?{label:this.chapterDocList[i].label||"",href:this.chapterDocList[i].href,index:i}:null}flatChapter(e){let t=[];for(let i=0;i0?(t.push(e[i]),t=t.concat(this.flatChapter(e[i].subitems))):t.push(e[i]);return this.flattenChapters=t,t}getChapter(){return this.chapterList}getChapterDoc(){return this.chapterDocList}goToPercentage(e){return d(this,void 0,void 0,function*(){if(0===this.flattenChapters.length&&this.flatChapter(this.chapterList),this.flattenChapters.length>0){if(1===this.flattenChapters.length){let t=this.getProgress();if(!t)return;let i=Math.floor(t.totalPage*e);return void(yield this.goToPage(i))}let t=1===e?this.flattenChapters.length-1:Math.floor(this.flattenChapters.length*e);yield this.goToChapter(this.flattenChapters[t].index.toString(),this.flattenChapters[t].href,this.flattenChapters[t].label)}})}goToChapterIndex(e){return d(this,void 0,void 0,function*(){0===this.flattenChapters.length&&this.flatChapter(this.chapterList),this.flattenChapters.length>0&&(yield this.goToChapter(this.flattenChapters[e].index,this.flattenChapters[e].href,this.flattenChapters[e].label))})}goToChapterDocIndex(e){return d(this,void 0,void 0,function*(){this.chapterDocList.length>0&&(yield this.goToChapter(e,this.chapterDocList[e].href,this.chapterDocList[e].label))})}goToChapter(e,t,i){return d(this,void 0,void 0,function*(){let n=this.getDocument(),o=this.getIframe();if(n&&o){if(yield Et(parseInt(e),i,t,this.chapterDocList,this.element,this.readerMode,this.format,this.tempLocation,n,o),t&&t.startsWith("kindle")){let e=yield this.book.resolveHref(t);if(e.anchor){let t=e.anchor(n);t&&(yield this.goToNode(t))}}t&&t.indexOf("#")>-1&&(yield Dt(this.element,this.readerMode,"","",t,"",n)),yield this.record(),this.trigger("rendered"),this.addPageAnimation()}})}goToPosition(e){return d(this,void 0,void 0,function*(){let i=this.getDocument(),n=this.getIframe();if(!i||!n)return;let o=JSON.parse(e);this.tempLocation={text:o.text,chapterTitle:o.chapterTitle,chapterDocIndex:o.chapterDocIndex,chapterHref:o.chapterHref,count:o.count,page:o.page,percentage:o.percentage};let{text:r,chapterTitle:s,chapterDocIndex:a,chapterHref:l,count:c,page:d,cfi:g}=o;if(yield Et(parseInt(a),s,l,this.chapterDocList,this.element,this.readerMode,this.format,this.tempLocation,i,n),g){const e=new $t(g,{});let t=this.getDocument();if(!t)return;const{node:i,offset:n}=e.resolve(t,{});if(i){let e=null,t=i;for(;t;){const i=t;if(i.tagName&&"h1,h2,h3,h4,h5,h6,p,div,ul,dl,ol,pre,li,dt,dd,blockquote,address,kookitmarker".indexOf(i.tagName.toLowerCase())>-1){e=i;break}t=t.parentNode}e&&(c="ignore",r=e.textContent)}}yield Dt(this.element,this.readerMode,r,c,"",d,i),t.init(),yield this.record(),this.trigger("rendered"),this.addPageAnimation()})}getDocument(){let e=document.getElementById("page-area");if(!e)return null;let t=e.getElementsByTagName("iframe")[0];if(!t)return null;let i=t.contentDocument;return i||null}getIframe(){let e=document.getElementById("page-area");if(!e)return null;let t=e.getElementsByTagName("iframe")[0];return t||null}goToNode(e){return d(this,void 0,void 0,function*(){let t=this.getDocument();if(!t)return;if(!e)return;let i=Qt(e,this.element,this.readerMode),n=i?G(i)-O(i.marginLeft||parseFloat(getComputedStyle(i).marginLeft)):0,o=i?N(i)-O(i.marginTop||parseFloat(getComputedStyle(i).marginTop)):0;"scroll"!==this.readerMode?this.isVertical()?t.body.scrollTo(0,o):t.body.scrollTo(n,0):this.element.scrollTo(0,o),yield this.record(),this.trigger("rendered")})}goToXpath(e){return d(this,void 0,void 0,function*(){let i=this.getDocument();if(!i)return;let n=e.match(/\/body\/DocFragment\[(\d+)\]/),o=n?parseInt(n[1]||"1")-1:0,r=this.chapterDocList[o];if(yield Et(o,r.label||"",r.href,this.chapterDocList,this.element,this.readerMode,this.format,this.tempLocation,i,this.getIframe()),i=this.getDocument(),!i)return;let s=e.replace(/\/body\/DocFragment\[\d+\]/,"");s=s.split("/text()")[0];const a=((e,t)=>{if(!e||!t||!t.body)return null;try{let i=e;if(i.startsWith("/body/"))i=i.slice(6);else if(i.startsWith("/body"))return t.body;const n=i.split("/").filter(Boolean);let o=t.body;for(const e of n){const t=e.match(/^([a-zA-Z0-9]+)(?:\[(\d+)\])?$/);if(!t)return null;const i=t[1].toLowerCase(),n=t[2]?parseInt(t[2])-1:0,r=Array.from(o.children).filter(e=>e.tagName.toLowerCase()===i);if(!r[n])return null;o=r[n]}return o}catch(e){return null}})(s,i);yield this.goToNode(a),t.init(),yield this.record(),this.trigger("rendered")})}removeContent(){this.element.innerHTML=""}prev(){return d(this,void 0,void 0,function*(){let e=this.getDocument(),t=this.getIframe();if(e&&t){if("scroll"===this.readerMode&&0===O(this.element.scrollTop)||this.isVertical()&&0===O(e.body.scrollTop)||"scroll"!==this.readerMode&&!this.isVertical()&&0===O(e.body.scrollLeft)){if("0"===this.tempLocation.chapterDocIndex)return;yield yt(this.element,this.flatChapter(this.chapterList),this.chapterDocList,this.readerMode,this.format,this.tempLocation,e,t),parseInt(this.tempLocation.chapterDocIndex||"-1")>-1&&("scroll"===this.readerMode?this.element.scrollTo(0,e.body.scrollHeight):this.isVertical()?e.body.scrollTo(0,e.body.scrollHeight):e.body.scrollTo(e.body.scrollWidth,0)),this.trigger("rendered")}else"scroll"===this.readerMode?this.element.scrollBy({left:0,top:-(this.element.clientHeight-50),behavior:"smooth"}):yield wt(this.element,this.animation,1,e,this.flipToNextPage,this.flipToPrevPage,this.isMobile);yield this.record()}})}next(){return d(this,void 0,void 0,function*(){let e=this.getDocument(),t=this.getIframe();if(e&&t){if(this.isVertical()&&Math.abs(e.body.scrollHeight-O(e.body.scrollTop)-e.body.clientHeight)<50||Math.abs(e.body.scrollWidth-O(e.body.scrollLeft)-e.body.clientWidth)<50&&"scroll"!==this.readerMode&&!this.isVertical()||Math.abs(this.element.scrollHeight-O(this.element.scrollTop)-this.element.clientHeight)<20&&"scroll"===this.readerMode)return yield Lt(this.element,this.flatChapter(this.chapterList),this.chapterDocList,this.readerMode,this.format,this.tempLocation,e,t),void this.trigger("rendered");"scroll"===this.readerMode?Math.abs(this.element.scrollHeight-O(this.element.scrollTop)-this.element.clientHeight)-(this.element.clientHeight-50)<20&&Math.abs(this.element.scrollHeight-O(this.element.scrollTop)-this.element.clientHeight)>20?this.element.scrollTo({left:0,top:this.element.scrollHeight-20,behavior:"smooth"}):this.element.scrollBy({left:0,top:this.element.clientHeight-50,behavior:"smooth"}):yield wt(this.element,this.animation,-1,e,this.flipToNextPage,this.flipToPrevPage,this.isMobile),yield this.record()}})}slideTo(e){return d(this,void 0,void 0,function*(){let t=this.getDocument();if(!t)return;let i=Math.floor(this.element.clientWidth/12),n=i%2==0?i:i-1;Si(e,this.format,t,t,this.element,this,n)})}prevChapter(){return d(this,void 0,void 0,function*(){let e=this.getDocument(),t=this.getIframe();e&&t&&(yield yt(this.element,this.flatChapter(this.chapterList),this.chapterDocList,this.readerMode,this.format,this.tempLocation,e,t),yield this.record(),this.trigger("rendered"))})}nextChapter(){return d(this,void 0,void 0,function*(){let e=this.getDocument(),t=this.getIframe();e&&t&&(yield Lt(this.element,this.flatChapter(this.chapterList),this.chapterDocList,this.readerMode,this.format,this.tempLocation,e,t),yield this.record(),this.trigger("rendered"))})}visibleText(){return d(this,void 0,void 0,function*(){let e=this.getDocument();return e?Ut(this.element,this.readerMode,e):""})}audioText(){return d(this,void 0,void 0,function*(){let e=this.getDocument();return e?yield Tt(this.element,this.readerMode,e,!1):[]})}getRestAudioText(e){return d(this,void 0,void 0,function*(){const t=[],i=parseInt(this.tempLocation.chapterDocIndex||"0")+1,n=Math.min(i+e,this.chapterDocList.length);for(let e=i;e!!e)})}return t})}chapterText(){return d(this,void 0,void 0,function*(){let e=this.getDocument();return e&&e.body.textContent||""})}getImageList(e){return d(this,void 0,void 0,function*(){if("PDF"===this.format)return[];let t;if(null==e){const e=this.getDocument();if(!e)return[];t=j(e.body)}else{if(e<0||e>this.chapterDocList.length-1)return[];const i=yield U(this.chapterDocList[e].text,!1);if(!i)return[];const n=(new DOMParser).parseFromString(i,"text/html");t=j(n.body)}return"yes"!==this.isMobile?t:Promise.all(t.map(e=>d(this,void 0,void 0,function*(){if(!e.startsWith("blob:"))return e;try{return yield Mi(e)}catch(t){return e}})))})}autoScroll(e,t){if(!this.getDocument())return;if(this.scrollTimer&&(cancelAnimationFrame(this.scrollTimer),this.scrollTimer=null),this.recordTimer&&(clearInterval(this.recordTimer),this.recordTimer=null),"no"===t||"scroll"!==this.readerMode)return;let i=0,n=0;const o=()=>{if(i+=e,n++,Math.abs(e)<1){if((Math.abs(i)>=.5||n%Math.max(1,Math.floor(30/Math.abs(e)))===0)&&Math.abs(i)>=.1){const e=Math.round(10*i)/10;this.element.scrollBy({left:0,top:e,behavior:"auto"}),i=0,n=0}}else if(Math.abs(i)>=1){const e=Math.floor(i);this.element.scrollBy({left:0,top:e,behavior:"auto"}),i-=e}this.scrollTimer=requestAnimationFrame(o)};this.scrollTimer=requestAnimationFrame(o),this.recordTimer=setInterval(()=>{"scroll"===this.readerMode&&Math.abs(this.element.scrollHeight-this.element.scrollTop-this.element.clientHeight)<10&&this.nextChapter(),this.record()},3e3)}autoScrollIOS(e,t){let i=this.getDocument();if(!i)return;if(this.scrollTimer&&(clearInterval(this.scrollTimer),this.scrollTimer=null),this.recordTimer&&(clearInterval(this.recordTimer),this.recordTimer=null),"no"===t||"scroll"!==this.readerMode)return;let n=0,o=this.element.scrollTop;this.scrollTimer=setInterval(()=>{n+=e,i&&(i.body.style.transform=`translateY(-${n}px)`,Math.abs(n)>=50&&(i.body.style.transform="translateY(0px)",o+=n,this.element.scrollTo({left:0,top:o,behavior:"auto"}),n=0))},30),this.recordTimer=setInterval(()=>{"scroll"===this.readerMode&&Math.abs(this.element.scrollHeight-this.element.scrollTop-this.element.clientHeight)<10&&this.nextChapter(),this.record()},3e3)}highlightSearchNode(e,t){let i=this.getDocument();i&&Wt(e,t,i)}highlightAudioNode(e,t){let i=this.getDocument();i&&((e,t,i)=>{if(i.querySelectorAll('span[data-highlight="true"]').forEach(e=>{const t=e.parentNode;t&&t.replaceChild(i.createTextNode(e.textContent||""),e)}),!e.trim())return;let n=I(i.body).filter(t=>{const i=t.textContent||"";return i.trim()&&i.indexOf(e)>-1});if(n.length>0){const o=n=>{var o;if(n.nodeType===Node.TEXT_NODE){const r=n.textContent||"",s=r.indexOf(e);if(s>-1){const a=r.substring(0,s),l=r.substring(s+e.length),c=i.createElement("span");c.setAttribute("style",t),c.setAttribute("data-highlight","true"),c.textContent=e,c.setAttribute("class","kookit-highlight-text");const d=i.createDocumentFragment();return a&&d.appendChild(i.createTextNode(a)),d.appendChild(c),l&&d.appendChild(i.createTextNode(l)),null===(o=n.parentNode)||void 0===o||o.replaceChild(d,n),!0}}return!1},r=e=>{if(o(e))return!0;const t=Array.from(e.childNodes);for(const e of t)if(r(e))return!0;return!1};r(n[0])}})(e,t,i,this.element,this.readerMode)}doSearch(e){return d(this,void 0,void 0,function*(){return"PDF"===this.format?yield((e,t)=>d(void 0,void 0,void 0,function*(){let i=[];for(let n=0;n{const i=e.transform[5];let n=null;for(const[t,o]of r.entries()){const r=o[0].transform[5];if(Math.abs(i-r){o.sort((e,t)=>e.transform[4]-t.transform[4]);const s=o.map(e=>e.str).join("").toLowerCase();s.indexOf(e.toLowerCase())>-1&&i.push({excerpt:s,cfi:JSON.stringify({text:s+"#"+n+"#"+r,chapterTitle:t[n].label,chapterDocIndex:n,chapterHref:t[n].href,count:"search",percentage:n/t.length,keyword:e})})})}return i}))(e,this.chapterDocList):yield((e,t)=>d(void 0,void 0,void 0,function*(){var i,n;let o=[];for(let r=0;r!D(e));for(let s=0;s-1&&o.push({excerpt:(null===(n=a[s].textContent)||void 0===n?void 0:n.substring(l-100,l+100))||"",cfi:JSON.stringify({text:a[s].textContent,chapterTitle:t[r].label,chapterDocIndex:r,chapterHref:t[r].href,count:"search",percentage:r/t.length,keyword:e})})}}return o}))(e,this.chapterDocList)})}getProgress(){let e=this.getDocument();if(e)return Object.assign(Object.assign({},q(this.readerMode,e,this.element)),{percentage:this.tempLocation.percentage})}record(){return d(this,void 0,void 0,function*(){"none"!==this.animation&&"yes"!==this.isMobile&&(yield new Promise(e=>setTimeout(e,1e3)));let e=this.getDocument();e&&(yield St(this.element,this.readerMode,this.flatChapter(this.chapterList),this.chapterDocList,this.tempLocation,e,null),this.trigger("page-changed"))})}getPosition(){return this.tempLocation}getBatchTransTexts(){return d(this,void 0,void 0,function*(){let e=yield this.audioText();e=e.slice(0,200);let t=0;return e=e.filter(e=>(t+=e.length,t<=1e4)),e=e.filter(e=>!this.transMap[e]||!this.transMap[e].text),e.filter(e=>e.trim().length>0)})}getNotePosition(){return d(this,void 0,void 0,function*(){let e=this.getDocument();if(!e)return;let t=te(e);return t?(yield St(this.element,this.readerMode,this.flatChapter(this.chapterList),this.chapterDocList,this.tempLocation,e,t),this.tempLocation):void 0})}setStyle(e){let t=this.getDocument();if(!t)return;const i="kookit-default-style";let n=t.head.querySelector(`style#${i}`);if(n)n.innerHTML=e;else{var o=document.createElement("style");o.id=i,o.innerHTML=e,t.head.appendChild(o)}}getHighlightCoords(){return d(this,void 0,void 0,function*(){let e=this.getDocument(),i=this.getIframe();if(e&&i)return t.getSelection(i).saveCharacterRanges(e.body)[0]})}renderHighlighters(e,i){return d(this,void 0,void 0,function*(){e=e.reverse();let n=this.getDocument(),o=this.getIframe();if(!n||!o)return;si(n);const r=e.map(e=>({range:JSON.parse(e.range),colorCode:e.color,noteKey:e.key,isNote:""!==e.notes,noteContent:e.notes||""}));try{((e,i,n,o,r)=>{var s;let a=o.contentWindow||(null===(s=o.contentDocument)||void 0===s?void 0:s.defaultView),l=t.getSelection(o);const c=[];for(let t=0;t{var d,g;let h=s.contentWindow||(null===(d=s.contentDocument)||void 0===d?void 0:d.defaultView),A=e;A=[A];let u=t.getSelection(s);u.restoreCharacterRanges(r,A);let p=u.getRangeAt(0);ai(p,i,n,o,r,a,l,c),h&&h.getSelection()&&(null===(g=h.getSelection())||void 0===g||g.empty())})(JSON.parse(e.range),e.color,e.key,i,n,o,""!==e.notes,"yes"===this.isMobile,e.notes||"")})}displayFontBase64(e,t,i,n){return d(this,void 0,void 0,function*(){let o=this.getDocument();if(!o||0===t.length)return;const r=new FontFace(e,`url(data:font/${n};charset=utf-8;base64,${t})`);let s=yield r.load();document.fonts.add(s);const a="@font-face { font-family: '"+e+"'; src: url('data:font/"+n+";charset=utf-8;base64,"+t+"') format('"+i+"');}",l=document.createElement("style");l.type="text/css",l.appendChild(document.createTextNode(a)),o.head.appendChild(l)})}displayFontUrl(e,t){return d(this,void 0,void 0,function*(){let i=this.getDocument();if(!i||0===t.length)return;const n=new FontFace(e,`url(${t})`);let o=yield n.load();document.fonts.add(o);const r="@font-face { font-family: '"+e+"'; src: url('"+t+"') format('truetype');}",s=document.createElement("style");s.type="text/css",s.appendChild(document.createTextNode(r)),i.head.appendChild(s)})}getAllDocuments(){let e=this.getDocument();if(!e)return[];if("PDF"!==this.format)return[e];let t=e.querySelectorAll("iframe"),i=[];return t.forEach(e=>{let t=e.contentDocument;t&&i.push(t)}),[e,...i]}getAllIframes(){let e=this.getIframe();if(!e)return[];if("PDF"!==this.format)return[e];let t=this.getDocument();if(!t)return[];let i=t.querySelectorAll("iframe"),n=[];return i.forEach(e=>{let t=e;n.push(t)}),[e,...n]}addTouchEvent(e,t){let i=this.getAllDocuments(),n=this.getAllIframes();for(let o=0;o-1)){let n=this.resolveChapter(e);if(n)return yield this.goToChapter(n.index,n.href,n.label),{handled:!0};let o=yield this.book.resolveHref(e),r=this.tempLocation.chapterDocIndex;if(o.index===parseInt(r)){let e=o.anchor(i);if(!e)return{handled:!1};let t=e.getAttribute("id")||"";o=Object.assign(Object.assign({},o),{id:t})}if(!o.anchor)return{handled:!1};let s=this.getPosition();if(o.index!==parseInt(s.chapterDocIndex)){if(bt(t.target)){let e=yield fetch(yield this.chapterDocList[o.index].text.load()).then(e=>e.blob()),t=yield e.text(),i=o.anchor((new DOMParser).parseFromString(t,"text/html"));return i?{handled:!0,isShowMenu:!0,isJump:!1,href:"",node:i}:{handled:!1}}return{handled:!0}}{let t=o.anchor(i);t&&(e="#"+t.getAttribute("id"))}}if(e&&-1===e.indexOf("../")&&(0===e.indexOf("http")||0===e.indexOf("mailto"))&&-1===e.indexOf("OEBPF")&&-1===e.indexOf("OEBPS")&&-1===e.indexOf("footnote")&&-1===e.indexOf("blob")&&-1===e.indexOf("data:application"))return{handled:!0,href:e,external:!0};if(e&&this.resolveChapter(e)){let t=this.resolveChapter(e);return t?(yield this.goToChapter(t.index,t.href,t.label),{handled:!0}):{handled:!1}}if(e&&e.indexOf("#")>-1){let n=e.split("#").reverse()[0],o=i.body.querySelector("#"+CSS.escape(n));t.target.getBoundingClientRect();let r=!1;if(!o||t.target===o||o.contains(t.target)){if(0!==e.indexOf("#")){for(;e.startsWith(".");)e=e.substring(1);let i=this.resolveChapter(e.split("#")[0]);if(!i)return{handled:!1};if(bt(t.target)){let e=yield fetch(yield this.chapterDocList[i.index].text.load()).then(e=>e.blob()),t=yield e.text();return o=(new DOMParser).parseFromString(t,"text/html").body.querySelector("#"+CSS.escape(n)),o?{handled:!0,isShowMenu:!0,isJump:!1,href:"",node:o}:{handled:!1}}yield this.goToChapter(i.index,i.href,i.label)}if(o=i.body.querySelector("#"+CSS.escape(n)),!o)return{handled:!1};r=!0,yield this.goToNode(o)}return bt(t.target)?{handled:!0,isShowMenu:!0,isJump:r,href:e,node:o}:{handled:!0}}if(e&&this.book.resolveHref&&this.book.resolveHref(e)){let t=yield this.book.resolveHref(e);return t?(yield this.goToChapter(t.index,t.href,t.label),{handled:!0}):{handled:!1}}return{handled:!1}})}getFootnoteContent(e){return d(this,void 0,void 0,function*(){if(bt(e)||!e.textContent.trim()||"A"===e.tagName){let t=e.nextSibling,i=e.textContent;for(;t&&(t.tagName!==e.tagName||!i.trim());)i+=t.textContent,t=t.nextSibling;if(!i.trim()||Ct(i)){let t=e.parentNode;for(;t&&"BODY"!==t.tagName;){const e=t.textContent||"";if(e.trim()&&!Ct(e))break;t=t.parentNode}if(!t)return{handled:!1};e=t}else i.trim()&&i.trim().length<=3e3&&((e=document.createElement("div")).innerHTML=i)}let t=e.innerHTML;return e.textContent.trim()?e.textContent.trim()&&e.textContent.trim().length>3e3?{handled:!1}:(t=yield(i=t,d(void 0,void 0,void 0,function*(){const e=(new DOMParser).parseFromString(i,"text/html"),t=Array.from(e.getElementsByTagName("img"));for(const e of t)if(e.src&&e.src.startsWith("blob:"))try{const t=yield vt(e.src);e.src=t,e.style.maxWidth="100%"}catch(e){console.error("Error converting blob to data URL:",e)}return e.body.innerHTML})),{handled:!0,content:t}):{handled:!1};var i})}handleBatchTransResult(e,t){let i=this.getDocument(),n=this.getIframe();if(i&&n){for(let n=0;n{e.setAttribute("style",(e.getAttribute("style")||"")+";font-size:0px !important;")})}}}}"scroll"===this.readerMode&&(n.height=i.body.scrollHeight+"px",n.height=i.body.scrollHeight+300+"px")}}handleWordDefinitionResult(e,t,i){let n=this.getDocument(),o=this.getIframe();if(!n||!o)return;gi(n);const r=I(n.body).filter(e=>!D(e));for(const o of e){const{text:e,words:s}=o;if(!s||0===s.length)continue;const a=r.find(t=>t.textContent===e);if(!a)continue;const l={};for(const e of s)if("zh"===t){const t=e.simplified||"",i=e.traditional||"";t&&(l[t]=e),i&&i!==t&&(l[i]=e)}else{const t=(e.word||"").toLowerCase();t&&(l[t]=e)}hi(l,n,t,i,a)}"scroll"===this.readerMode&&(o.height=n.body.scrollHeight+"px",o.height=n.body.scrollHeight+300+"px")}clearWordDefinitionResult(){let e=this.getDocument();e&&gi(e)}}const Ui={svg:"image/svg+xml",png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",webp:"image/webp",zip:"application/zip",rar:"application/x-rar-compressed","7z":"application/x-7z-compressed",tar:"application/x-tar",html:"text/html",htm:"text/html",xml:"text/xml",xhtml:"application/xhtml+xml",css:"text/css"},Wi={"image/svg+xml":"svg","image/png":"png","image/jpeg":"jpg","image/gif":"gif","image/webp":"webp","application/zip":"zip","application/x-rar-compressed":"rar","application/x-7z-compressed":"7z","application/x-tar":"tar","text/html":"html","text/xml":"xml","application/xhtml+xml":"xhtml","text/css":"css"},Pi=t=>d(void 0,void 0,void 0,function*(){let n=yield i.loadAsync(t);var o=n.file("toc.json");let r=[];o&&(r=JSON.parse(yield o.async("string")));var s=n.file("sections.json");let a=[];s&&(a=JSON.parse(yield s.async("string")));const l={getCover:()=>""};return l.sections=a.map((e,t)=>({id:e.href,load:()=>(e=>d(void 0,void 0,void 0,function*(){var t=n.file("chapters/"+e+".html");let i="";return t&&(i=yield t.async("string")),URL.createObjectURL(new Blob([i],{type:"text/html"}))}))(t),unload:()=>{},loadAsset:e=>(e=>d(void 0,void 0,void 0,function*(){var t=n.file(e);let i;return t&&(i=yield t.async("arraybuffer")),URL.createObjectURL(new Blob([i],{type:Ui[e.split(".").reverse()[0]]}))}))(e)})),l.toc=r.map(e=>({label:e.label,href:e.href,subitems:e.subitems})),l.rendition={layout:"pre-paginated"},l.resolveHref=t=>({index:e.findLastIndex(a,{href:t})}),l.resolveHrefIndex=t=>({index:e.findLastIndex(a,{href:t})}),l.splitTOCHref=e=>[e,null],l.getTOCFragment=e=>e.documentElement,l}),ji=e=>new Promise((t,n)=>d(void 0,void 0,void 0,function*(){let n=new oe(e),o=yield n.getChapter(e.toc),r=yield n.getChapterDoc(),s=o,a=r.map(e=>({href:e.href,label:e.label})),l=yield Promise.all(r.map(e=>d(void 0,void 0,void 0,function*(){let t="";if(e.text&&e.text.load){let i=yield fetch(yield e.text.load()).then(e=>e.blob());t=yield i.text()}return t}))),c=new i;c.file("toc.json",JSON.stringify(s)),c.file("sections.json",JSON.stringify(a));let g=[];for(let e=0;ee.blob());n.file(t+"."+Wi[r.type],r);let s="imgs/"+e+"/"+t+"."+Wi[r.type];i[t].src=s,i[t].getAttribute("xlink:href")&&i[t].setAttribute("xlink:href",s)}catch(e){console.error(e)}}let n=Array.from(t.getElementsByTagName("link"));for(let t=0;te.blob());o.file(t+"."+Wi[n.type],n),i.href="css/"+e+"/"+t+"."+Wi[n.type]}catch(e){console.error(e)}}g.push(t.documentElement.innerHTML)}let h=c.folder("chapters");if(h){for(let e=0;ed(void 0,void 0,void 0,function*(){t(yield new Response(e).arrayBuffer())})).catch(e=>{t("err")})}})),zi=4294967295,Ki=65535,qi=134695760,Ji=qi,Vi=33639248,Xi=101075792,Zi=22,$i=16384,_i=void 0,en=1/0,tn="undefined",nn="function";let on=2;try{typeof navigator!=tn&&navigator.hardwareConcurrency&&(on=navigator.hardwareConcurrency)}catch{}const rn={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:65536,maxWorkers:on,terminateWorkerTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,CompressionStream:typeof CompressionStream!=tn&&CompressionStream,DecompressionStream:typeof DecompressionStream!=tn&&DecompressionStream},sn=Object.assign({},rn);function an(e){const{baseURI:t,chunkSize:i,maxWorkers:n,terminateWorkerTimeout:o,useCompressionStream:r,useWebWorkers:s,CompressionStream:a,DecompressionStream:l,CompressionStreamZlib:c,DecompressionStreamZlib:d,workerURI:g,wasmURI:h}=e;ln("baseURI",t),ln("wasmURI",h),ln("workerURI",g),ln("chunkSize",i),ln("maxWorkers",n),ln("terminateWorkerTimeout",o),ln("useCompressionStream",r),ln("useWebWorkers",s),ln("CompressionStream",a),ln("DecompressionStream",l),ln("CompressionStreamZlib",c),ln("DecompressionStreamZlib",d)}function ln(e,t){t!==_i&&(sn[e]=t)}const cn=[];for(let e=0;e<256;e++){let t=e;for(let e=0;e<8;e++)1&t?t=t>>>1^3988292384:t>>>=1;cn[e]=t}class dn{constructor(e){this.crc=e||-1}append(e){let t=0|this.crc;for(let i=0,n=0|e.length;i>>8^cn[255&(t^e[i])];this.crc=t}get(){return~this.crc}}class gn extends TransformStream{constructor(){let e;const t=new dn;super({transform(e,i){t.append(e),i.enqueue(e)},flush(){const i=new Uint8Array(4);new DataView(i.buffer).setUint32(0,t.get()),e.value=i}}),e=this}}const hn={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const i=e[e.length-1],n=hn.getPartial(i);return 32===n?e.concat(t):hn._shiftRight(t,n,0|i,e.slice(0,e.length-1))},bitLength(e){const t=e.length;if(0===t)return 0;const i=e[t-1];return 32*(t-1)+hn.getPartial(i)},clamp(e,t){if(32*e.length0&&t&&(e[i-1]=hn.partial(t,e[i-1]&2147483648>>t-1,1)),e},partial:(e,t,i)=>32===e?t:(i?0|t:t<<32-e)+1099511627776*e,getPartial:e=>Math.round(e/1099511627776)||32,_shiftRight(e,t,i,n){for(void 0===n&&(n=[]);t>=32;t-=32)n.push(i),i=0;if(0===t)return n.concat(e);for(let o=0;o>>t),i=e[o]<<32-t;const o=e.length?e[e.length-1]:0,r=hn.getPartial(o);return n.push(hn.partial(t+r&31,t+r>32?i:n.pop(),1)),n}},An={bytes:{fromBits(e){const t=hn.bitLength(e)/8,i=new Uint8Array(t);let n;for(let o=0;o>>24,n<<=8;return i},toBits(e){const t=[];let i,n=0;for(i=0;i9007199254740991)throw new Error("Cannot hash more than 2^53 - 1 bits");const r=new Uint32Array(i);let s=0;for(let e=t.blockSize+n-(t.blockSize+n&t.blockSize-1);e<=o;e+=t.blockSize)t._block(r.subarray(16*s,16*(s+1))),s+=1;return i.splice(0,16*s),t}finalize(){const e=this;let t=e._buffer;const i=e._h;t=hn.concat(t,[hn.partial(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(Math.floor(e._length/4294967296)),t.push(0|e._length);t.length;)e._block(t.splice(0,16));return e.reset(),i}_f(e,t,i,n){return e<=19?t&i|~t&n:e<=39?t^i^n:e<=59?t&i|t&n|i&n:e<=79?t^i^n:void 0}_S(e,t){return t<>>32-e}_block(e){const t=this,i=t._h,n=Array(80);for(let t=0;t<16;t++)n[t]=e[t];let o=i[0],r=i[1],s=i[2],a=i[3],l=i[4];for(let e=0;e<=79;e++){e>=16&&(n[e]=t._S(1,n[e-3]^n[e-8]^n[e-14]^n[e-16]));const i=t._S(5,o)+t._f(e,r,s,a)+l+n[e]+t._key[Math.floor(e/20)]|0;l=a,a=s,s=t._S(30,r),r=o,o=i}i[0]=i[0]+o|0,i[1]=i[1]+r|0,i[2]=i[2]+s|0,i[3]=i[3]+a|0,i[4]=i[4]+l|0}}},pn={aes:class{constructor(e){const t=this;t._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],t._tables[0][0][0]||t._precompute();const i=t._tables[0][4],n=t._tables[1],o=e.length;let r,s,a,l=1;if(4!==o&&6!==o&&8!==o)throw new Error("invalid aes key size");for(t._key=[s=e.slice(0),a=[]],r=o;r<4*o+28;r++){let e=s[r-1];(r%o===0||8===o&&r%o===4)&&(e=i[e>>>24]<<24^i[e>>16&255]<<16^i[e>>8&255]<<8^i[255&e],r%o===0&&(e=e<<8^e>>>24^l<<24,l=l<<1^283*(l>>7))),s[r]=s[r-o]^e}for(let e=0;r;e++,r--){const t=s[3&e?r:r-4];a[e]=r<=4||e<4?t:n[0][i[t>>>24]]^n[1][i[t>>16&255]]^n[2][i[t>>8&255]]^n[3][i[255&t]]}}encrypt(e){return this._crypt(e,0)}decrypt(e){return this._crypt(e,1)}_precompute(){const e=this._tables[0],t=this._tables[1],i=e[4],n=t[4],o=[],r=[];let s,a,l,c;for(let e=0;e<256;e++)r[(o[e]=e<<1^283*(e>>7))^e]=e;for(let d=s=0;!i[d];d^=a||1,s=r[s]||1){let r=s^s<<1^s<<2^s<<3^s<<4;r=r>>8^255&r^99,i[d]=r,n[r]=d,c=o[l=o[a=o[d]]];let g=16843009*c^65537*l^257*a^16843008*d,h=257*o[r]^16843008*r;for(let i=0;i<4;i++)e[i][d]=h=h<<24^h>>>8,t[i][r]=g=g<<24^g>>>8}for(let i=0;i<5;i++)e[i]=e[i].slice(0),t[i]=t[i].slice(0)}_crypt(e,t){if(4!==e.length)throw new Error("invalid aes block size");const i=this._key[t],n=i.length/4-2,o=[0,0,0,0],r=this._tables[t],s=r[0],a=r[1],l=r[2],c=r[3],d=r[4];let g,h,A,u=e[0]^i[0],p=e[t?3:1]^i[1],f=e[2]^i[2],m=e[t?1:3]^i[3],w=4;for(let e=0;e>>24]^a[p>>16&255]^l[f>>8&255]^c[255&m]^i[w],h=s[p>>>24]^a[f>>16&255]^l[m>>8&255]^c[255&u]^i[w+1],A=s[f>>>24]^a[m>>16&255]^l[u>>8&255]^c[255&p]^i[w+2],m=s[m>>>24]^a[u>>16&255]^l[p>>8&255]^c[255&f]^i[w+3],w+=4,u=g,p=h,f=A;for(let e=0;e<4;e++)o[t?3&-e:e]=d[u>>>24]<<24^d[p>>16&255]<<16^d[f>>8&255]<<8^d[255&m]^i[w++],g=u,u=p,p=f,f=m,m=g;return o}}},fn={getRandomValues(e){const t=new Uint32Array(e.buffer),i=e=>{let t=987654321;const i=4294967295;return function(){t=36969*(65535&t)+(t>>16)&i;return(((t<<16)+(e=18e3*(65535&e)+(e>>16)&i)&i)/4294967296+.5)*(Math.random()>.5?1:-1)}};for(let n,o=0;o>24))e+=1<<24;else{let t=e>>16&255,i=e>>8&255,n=255&e;255===t?(t=0,255===i?(i=0,255===n?n=0:++n):++i):++t,e=0,e+=t<<16,e+=i<<8,e+=n}return e}incCounter(e){0===(e[0]=this.incWord(e[0]))&&(e[1]=this.incWord(e[1]))}calculate(e,t,i){let n;if(!(n=t.length))return[];const o=hn.bitLength(t);for(let o=0;onew wn.hmacSha1(An.bytes.toBits(e)),pbkdf2(e,t,i,n){if(i=i||1e4,n<0||i<0)throw new Error("invalid params to pbkdf2");const o=1+(n>>5)<<2;let r,s,a,l,c;const d=new ArrayBuffer(o),g=new DataView(d);let h=0;const A=hn;for(t=An.bytes.toBits(t),c=1;h<(o||1);c++){for(r=s=e.encrypt(A.concat(t,[c])),a=1;ao&&(e=(new i).update(e).finalize());for(let t=0;tthis.resolveReady=e),password:Kn(e,t),signed:i,strength:n-1,pending:new Uint8Array})},async transform(e,t){const i=this,{password:n,strength:r,resolveReady:s,ready:a}=i;n?(await async function(e,t,i,n){const o=await zn(e,t,i,Jn(n,0,kn[t])),r=Jn(n,kn[t]);if(o[0]!=r[0]||o[1]!=r[1])throw new Error(yn)}(i,r,n,Jn(e,0,kn[r]+2)),e=Jn(e,kn[r]+2),o?t.error(new Error(Cn)):s()):await a;const l=new Uint8Array(e.length-Mn-(e.length-Mn)%En);t.enqueue(jn(i,e,l,0,Mn,!0))},async flush(e){const{signed:t,ctr:i,hmac:n,pending:o,ready:r}=this;if(n&&i){await r;const s=Jn(o,0,o.length-Mn),a=Jn(o,o.length-Mn);let l=new Uint8Array;if(s.length){const e=Xn(Hn,s);n.update(e);const t=i.update(e);l=Vn(Hn,t)}if(t){const e=Jn(Vn(Hn,n.digest()),0,Mn);for(let t=0;tthis.resolveReady=e),password:Kn(e,t),strength:i-1,pending:new Uint8Array})},async transform(e,t){const i=this,{password:n,strength:o,resolveReady:r,ready:s}=i;let a=new Uint8Array;n?(a=await async function(e,t,i){const n=vn(new Uint8Array(kn[t])),o=await zn(e,t,i,n);return qn(n,o)}(i,o,n),r()):await s;const l=new Uint8Array(a.length+e.length-e.length%En);l.set(a,0),t.enqueue(jn(i,e,l,a.length,0))},async flush(e){const{ctr:t,hmac:i,pending:o,ready:r}=this;if(i&&t){await r;let s=new Uint8Array;if(o.length){const e=t.update(Xn(Hn,o));i.update(e),s=Vn(Hn,e)}n.signature=Vn(Hn,i.digest()).slice(0,Mn),e.enqueue(qn(s,n.signature))}}}),n=this}}function jn(e,t,i,n,o,r){const{ctr:s,hmac:a,pending:l}=e,c=t.length-o;let d;for(l.length&&(t=qn(l,t),i=function(e,t){if(t&&t>e.length){const i=e;(e=new Uint8Array(t)).set(i,0)}return e}(i,c-c%En)),d=0;d<=c-En;d+=En){const e=Xn(Hn,Jn(t,d,d+En));r&&a.update(e);const o=s.update(e);r||a.update(o),i.set(Vn(Hn,o),d+n)}return e.pending=Jn(t,d),i}async function zn(e,t,i,n){e.password=null;const o=await async function(e,t,i,n,o){if(!Nn)return wn.importKey(t);try{return await Tn.importKey(e,t,i,n,o)}catch{return Nn=!1,wn.importKey(t)}}("raw",i,In,!1,Qn),r=await async function(e,t,i){if(!Un)return wn.pbkdf2(t,e.salt,Dn.iterations,i);try{return await Tn.deriveBits(e,t,i)}catch{return Un=!1,wn.pbkdf2(t,e.salt,Dn.iterations,i)}}(Object.assign({salt:n},Dn),o,8*(2*Sn[t]+2)),s=new Uint8Array(r),a=Xn(Hn,Jn(s,0,Sn[t])),l=Xn(Hn,Jn(s,Sn[t],2*Sn[t])),c=Jn(s,2*Sn[t]);return Object.assign(e,{keys:{key:a,authentication:l,passwordVerification:c},ctr:new On(new Yn(a),Array.from(Fn)),hmac:new Gn(l)}),c}function Kn(e,t){return t===_i?function(e){if(typeof TextEncoder==tn){e=unescape(encodeURIComponent(e));const t=new Uint8Array(e.length);for(let i=0;i>>24]),o=~e.crcKey2.get(),e.keys=[i,n,o]}function no(e){const t=2|e.keys[2];return oo(Math.imul(t,1^t)>>>8)}function oo(e){return 255&e}function ro(e){return 4294967295&e}const so="Invalid uncompressed size";class ao extends TransformStream{constructor(e,{chunkSize:t,CompressionStreamZlib:i,CompressionStream:n}){super({});const{compressed:o,encrypted:r,useCompressionStream:s,zipCrypto:a,signed:l,level:c}=e,d=this;let g,h,A=super.readable;r&&!a||!l||(g=new gn,A=ho(A,g)),o&&(A=go(A,s,{level:c,chunkSize:t},n,i,n)),r&&(a?A=ho(A,new $n(e)):(h=new Pn(e),A=ho(A,h))),co(d,A,()=>{let e;r&&!a&&(e=h.signature),r&&!a||!l||(e=new DataView(g.value.buffer).getUint32(0)),d.signature=e})}}class lo extends TransformStream{constructor(e,{chunkSize:t,DecompressionStreamZlib:i,DecompressionStream:n}){super({});const{zipCrypto:o,encrypted:r,signed:s,signature:a,compressed:l,useCompressionStream:c,deflate64:d}=e;let g,h,A=super.readable;r&&(o?A=ho(A,new Zn(e)):(h=new Wn(e),A=ho(A,h))),l&&(A=go(A,c,{chunkSize:t,deflate64:d},n,i,n)),r&&!o||!s||(g=new gn,A=ho(A,g)),co(this,A,()=>{if((!r||o)&&s){const e=new DataView(g.value.buffer);if(a!=e.getUint32(0,!1))throw new Error(bn)}})}}function co(e,t,i){t=ho(t,new TransformStream({flush:i})),Object.defineProperty(e,"readable",{get:()=>t})}function go(e,t,i,n,o,r){const s=t&&n?n:o||r,a=i.deflate64?"deflate64-raw":"deflate-raw";try{e=ho(e,new s(a,i))}catch(n){if(!t)throw n;if(o)e=ho(e,new o(a,i));else{if(!r)throw n;e=ho(e,new r(a,i))}}return e}function ho(e,t){return e.pipeThrough(t)}const Ao="start",uo="pull",po="data",fo="close",mo="inflate";class wo extends TransformStream{constructor(e,t){super({});const i=this,{codecType:n}=e;let o;n.startsWith("deflate")?o=ao:n.startsWith(mo)&&(o=lo),i.outputSize=0;let r=0;const s=new o(e,t),a=super.readable,l=new TransformStream({transform(e,t){e&&e.length&&(r+=e.length,t.enqueue(e))},flush(){Object.assign(i,{inputSize:r})}}),c=new TransformStream({transform(t,n){if(t&&t.length&&(n.enqueue(t),i.outputSize+=t.length,e.outputSize!==_i&&i.outputSize>e.outputSize))throw new Error(so)},flush(){const{signature:e}=s;Object.assign(i,{signature:e,inputSize:r})}});Object.defineProperty(i,"readable",{get:()=>a.pipeThrough(l).pipeThrough(s).pipeThrough(c)})}}class Bo extends TransformStream{constructor(e){let t;super({transform:function i(n,o){if(t){const e=new Uint8Array(t.length+n.length);e.set(t),e.set(n,t.length),n=e,t=null}n.length>e?(o.enqueue(n.slice(0,e)),i(n.slice(e),o)):t=n},flush(e){t&&t.length&&e.enqueue(t)}})}}const yo={type:"module"};let bo,Co,vo,Eo=!0;try{Eo=typeof structuredClone==nn&&structuredClone(new DOMException("","AbortError")).code!==_i}catch{}let xo=()=>{};class Io{constructor(e,{readable:t,writable:i},{options:n,config:o,streamOptions:r,useWebWorkers:s,transferStreams:a,workerURI:l},c){const{signal:d}=r;return Object.assign(e,{busy:!0,readable:t.pipeThrough(new Bo(o.chunkSize)).pipeThrough(new Do(r),{signal:d}),writable:i,options:Object.assign({},n),workerURI:l,transferStreams:a,terminate:()=>new Promise(t=>{const{worker:i,busy:n}=e;i?(n?e.resolveTerminated=t:(i.terminate(),t()),e.interface=null):t()}),onTaskFinished(){const{resolveTerminated:t}=e;t&&(e.resolveTerminated=null,e.terminated=!0,e.worker.terminate(),t()),e.busy=!1,c(e)}}),bo===_i&&(bo=typeof Worker!=tn),(s&&bo?So:ko)(e,o)}}class Do extends TransformStream{constructor({onstart:e,onprogress:t,size:i,onend:n}){let o=0;super({async start(){e&&await Qo(e,i)},async transform(e,n){o+=e.length,t&&await Qo(t,o,i),n.enqueue(e)},async flush(){n&&await Qo(n,o)}})}}async function Qo(e,...t){try{await e(...t)}catch{}}function ko(e,t){return{run:()=>async function({options:e,readable:t,writable:i,onTaskFinished:n},o){let r;try{if(!e.useCompressionStream)try{await xo(o)}catch{e.useCompressionStream=!0}r=new wo(e,o),await t.pipeThrough(r).pipeTo(i,{preventClose:!0,preventAbort:!0});const{signature:n,inputSize:s,outputSize:a}=r;return{signature:n,inputSize:s,outputSize:a}}catch(e){throw r&&(e.outputSize=r.outputSize),e}finally{n()}}(e,t)}}function So(e,t){const{baseURI:i,chunkSize:n}=t;let{wasmURI:o}=t;if(!e.interface){let r;typeof o==nn&&(o=o());try{r=Mo(e.workerURI,i,e)}catch{return bo=!1,ko(e,t)}Object.assign(e,{worker:r,interface:{run:()=>async function(e,t){let i,n;const o=new Promise((e,t)=>{i=e,n=t});Object.assign(e,{reader:null,writer:null,resolveResult:i,rejectResult:n,result:o});const{readable:r,options:s}=e,{writable:a,closed:l}=function(e){const{writable:t,readable:i}=new TransformStream,n=i.pipeTo(e,{preventClose:!0});return{writable:t,closed:n}}(e.writable),c=Fo({type:Ao,options:s,config:t,readable:r,writable:a},e);c||Object.assign(e,{reader:r.getReader(),writer:a.getWriter()});const d=await o;c||await a.getWriter().close();return await l,d}(e,{chunkSize:n,wasmURI:o,baseURI:i})}})}return e.interface}function Mo(e,t,i,n,o=!0){let r,s,a;if(Co===_i){const l=typeof e==nn;s=l?e(o):e;const c=s.startsWith("data:"),d=s.startsWith("blob:");if(c||d){n===_i&&(n=!1),n&&(a=yo);try{r=new Worker(s,a)}catch(o){if(d)try{URL.revokeObjectURL(s)}catch{}if(l&&d)return Mo(e,t,i,n,!1);if(n)throw o;return Mo(e,t,i,!0,!1)}}else{n===_i&&(n=!0),n&&(a=yo);try{s=new URL(s,t)}catch{}try{r=new Worker(s,a)}catch(r){if(n)throw r;return Mo(e,t,i,!1,o)}}Co=s,vo=a}else r=new Worker(Co,vo);return r.addEventListener("message",e=>async function({data:e},t){const{type:i,value:n,messageId:o,result:r,error:s}=e,{reader:a,writer:l,resolveResult:c,rejectResult:d,onTaskFinished:g}=t;try{if(s){const{message:e,stack:t,code:i,name:n,outputSize:o}=s,r=new Error(e);Object.assign(r,{stack:t,code:i,name:n,outputSize:o}),h(r)}else{if(i==uo){const{value:e,done:i}=await a.read();Fo({type:po,value:e,done:i,messageId:o},t)}i==po&&(await l.ready,await l.write(new Uint8Array(n)),Fo({type:"ack",messageId:o},t)),i==fo&&h(null,r)}}catch(s){Fo({type:fo,messageId:o},t),h(s)}function h(e,t){e?d(e):c(t),l&&l.releaseLock(),g()}}(e,i)),r}function Fo(e,{worker:t,writer:i,onTaskFinished:n,transferStreams:o}){try{const{value:i,readable:n,writable:r}=e,s=[];if(i&&(e.value=i,s.push(e.value.buffer)),o&&Eo?(n&&s.push(n),r&&s.push(r)):e.readable=e.writable=null,s.length)try{return t.postMessage(e,s),!0}catch{Eo=!1,e.readable=e.writable=null,t.postMessage(e)}else t.postMessage(e)}catch(e){throw i&&i.releaseLock(),n(),e}}let Lo=[];const To=[];let Ro=0;async function Ho(e,t){const{options:i,config:n}=t,{transferStreams:o,useWebWorkers:r,useCompressionStream:s,compressed:a,signed:l,encrypted:c}=i,{workerURI:d,maxWorkers:g}=n;t.transferStreams=o||o===_i;const h=!(a||l||c||t.transferStreams);return t.useWebWorkers=!h&&(r||r===_i&&n.useWebWorkers),t.workerURI=t.useWebWorkers&&d?d:_i,i.useCompressionStream=s||s===_i&&n.useCompressionStream,(await async function(){const i=Lo.find(e=>!e.busy);if(i)return Yo(i),new Io(i,e,t,A);if(Lo.lengthTo.push({resolve:i,stream:e,workerOptions:t}))}()).run();function A(e){if(To.length){const[{resolve:t,stream:i,workerOptions:n}]=To.splice(0,1);t(new Io(e,i,n,A))}else e.worker?(Yo(e),function(e,t){const{config:i}=t,{terminateWorkerTimeout:n}=i;Number.isFinite(n)&&n>=0&&(e.terminated?e.terminated=!1:e.terminateTimeout=setTimeout(async()=>{Lo=Lo.filter(t=>t!=e);try{await e.terminate()}catch{}},n))}(e,t)):Lo=Lo.filter(t=>t!=e)}}function Yo(e){const{terminateTimeout:t}=e;t&&(clearTimeout(t),e.terminateTimeout=null)}const Oo=65536,Go="writable";class No{constructor(){this.size=0}init(){this.initialized=!0}}class Uo extends No{get readable(){const e=this,{chunkSize:t=Oo}=e,i=new ReadableStream({start(){this.chunkOffset=0},async pull(n){const{offset:o=0,size:r,diskNumberStart:s}=i,{chunkOffset:a}=this,l=r===_i?t:Math.min(t,r-a),c=await Xo(e,o+a,l,s);n.enqueue(c),a+t>r||r===_i&&!c.length&&l?n.close():this.chunkOffset+=t}});return i}}class Wo extends Uo{constructor(e){super(),Object.assign(this,{blob:e,size:e.size})}async readUint8Array(e,t){const i=this,n=e+t,o=e||nt&&(r=r.slice(e,n)),new Uint8Array(r)}}class Po extends No{constructor(e){super();const t=new TransformStream,i=[];e&&i.push(["Content-Type",e]),Object.defineProperty(this,Go,{get:()=>t.writable}),this.blob=new Response(t.readable,{headers:i}).blob()}getData(){return this.blob}}class jo extends Po{constructor(e){super(e),Object.assign(this,{encoding:e,utf8:!e||"utf-8"==e.toLowerCase()})}async getData(){const{encoding:e,utf8:t}=this,i=await super.getData();if(i.text&&t)return i.text();{const t=new FileReader;return new Promise((n,o)=>{Object.assign(t,{onload:({target:e})=>n(e.result),onerror:()=>o(t.error)}),t.readAsText(i,e)})}}}class zo extends Uo{constructor(e){super(),this.readers=e}async init(){const e=this,{readers:t}=e;e.lastDiskNumber=0,e.lastDiskOffset=0,await Promise.all(t.map(async(i,n)=>{await i.init(),n!=t.length-1&&(e.lastDiskOffset+=i.size),e.size+=i.size})),super.init()}async readUint8Array(e,t,i=0){const n=this,{readers:o}=this;let r,s=i;-1==s&&(s=o.length-1);let a=e;for(;o[s]&&a>=o[s].size;)a-=o[s].size,s++;const l=o[s];if(l){const o=l.size;if(a+t<=o)r=await Xo(l,a,t);else{const s=o-a;r=new Uint8Array(t);const c=await Xo(l,a,s);r.set(c,0);const d=await n.readUint8Array(e+s,t-s,i);r.set(d,s),c.length+d.length=s?(await a(t.subarray(0,s)),await l(),i.diskOffset+=n.size,i.diskNumber++,r=null,await this.write(t.subarray(s))):await a(t);else{const{value:s,done:a}=await e.next();if(a&&!s)throw new Error("Writer iterator completed too soon");n=s,n.size=0,n.maxSize&&(i.maxSize=n.maxSize),i.availableSize=i.maxSize,await Vo(n),o=s.writable,r=o.getWriter(),await this.write(t)}},async close(){await r.ready,await l()}});async function a(e){const t=e.length;t&&(await r.ready,await r.write(e),n.size+=t,i.size+=t,i.availableSize-=t)}async function l(){await r.close()}Object.defineProperty(i,Go,{get:()=>s})}}class qo{constructor(e){return Array.isArray(e)&&(e=new zo(e)),e instanceof ReadableStream&&(e={readable:e}),e}}class Jo{constructor(e){return e.writable===_i&&typeof e.next==nn&&(e=new Ko(e)),e instanceof WritableStream&&(e={writable:e}),e.size===_i&&(e.size=0),e instanceof Ko||Object.assign(e,{diskNumber:0,diskOffset:0,availableSize:en,maxSize:en}),e}}async function Vo(e,t){if(!e.init||e.initialized)return Promise.resolve();await e.init(t)}function Xo(e,t,i,n){return e.readUint8Array(t,i,n)}const Zo="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split(""),$o=256==Zo.length;function _o(e,t){return t&&"cp437"==t.trim().toLowerCase()?function(e){if($o){let t="";for(let i=0;ithis[t]=e[t])}}const fr="File format is not recognized",mr="Zip64 extra field not found",wr="Compression method not supported",Br="Split zip file",yr="Overlapping entry found",br="utf-8",Cr="cp437",vr=[[or,zi],[rr,zi],[sr,zi],[ar,Ki]],Er={[Ki]:{getValue:Yr,bytes:4},[zi]:{getValue:Or,bytes:8}};class xr{constructor(e,t={}){Object.assign(this,{reader:new qo(e),options:t,config:sn,readRanges:[]})}async*getEntriesGenerator(e={}){const t=this;let{reader:i}=t;const{config:n}=t;if(await Vo(i),i.size!==_i&&i.readUint8Array||(i=new Wo(await new Response(i.readable).blob()),await Vo(i)),i.size=0;e--)if(s[e]==r[0]&&s[e+1]==r[1]&&s[e+2]==r[2]&&s[e+3]==r[3])return{offset:o+e,buffer:s.slice(e,e+n).buffer}}}(i,101010256,i.size,Zi,1048560);if(!o){throw Yr(Gr(await Xo(i,0,4)))==qi?new Error(Br):new Error("End of central directory not found")}const r=Gr(o);let s=Yr(r,12),a=Yr(r,16);const l=o.offset,c=Hr(r,20),d=l+Zi+c;let g=Hr(r,4);const h=i.lastDiskNumber||0;let A=Hr(r,6),u=Hr(r,8),p=0,f=0;if(a==zi||s==zi||u==Ki||A==Ki){const e=Gr(await Xo(i,o.offset-20,20));if(117853008==Yr(e,0)){a=Or(e,8);let t=await Xo(i,a,56,-1),n=Gr(t);const r=o.offset-20-56;if(Yr(n,0)!=Xi&&a!=r){const e=a;a=r,a>e&&(p=a-e),t=await Xo(i,a,56,-1),n=Gr(t)}if(Yr(n,0)!=Xi)throw new Error("End of Zip64 central directory locator not found");g==Ki&&(g=Yr(n,16)),A==Ki&&(A=Yr(n,20)),u==Ki&&(u=Or(n,32)),s==zi&&(s=Or(n,40)),a-=s}}if(a>=i.size&&(p=i.size-a-s-Zi,a=i.size-s-Zi),h!=g)throw new Error(Br);if(a<0)throw new Error(fr);let m=0,w=await Xo(i,a,s,A),B=Gr(w);if(s){const e=o.offset-s;if(Yr(B,m)!=Vi&&a!=e){const t=a;a=e,a>t&&(p+=a-t),w=await Xo(i,a,s,A),B=Gr(w)}}const y=o.offset-a-(i.lastDiskOffset||0);if(s!=y&&y>=0&&(s=y,w=await Xo(i,a,s,A),B=Gr(w)),a<0||a>=i.size)throw new Error(fr);const b=Fr(t,e,"filenameEncoding"),C=Fr(t,e,"commentEncoding");for(let o=0;o>8),h=d>>8==3,A=w.subarray(a,l),y=Hr(B,m+32),v=c+y,E=w.subarray(c,v),x=s,I=s,D=Yr(B,m+38),Q=255&D,k={readOnly:Boolean(1&Q),hidden:Boolean(2&Q),system:Boolean(4&Q),directory:Boolean(16&Q),archive:Boolean(32&Q)},S=Yr(B,m+42)+p,M=Fr(t,e,"decodeText")||_o,F=x?br:b||Cr,L=I?br:C||Cr;let T=M(A,F);T===_i&&(T=_o(A,F));let R=M(E,L);R===_i&&(R=_o(E,L)),Object.assign(r,{versionMadeBy:d,msDosCompatible:g,compressedSize:0,uncompressedSize:0,commentLength:y,offset:S,diskNumberStart:Hr(B,m+34),internalFileAttributes:Hr(B,m+36),externalFileAttributes:D,msdosAttributesRaw:Q,msdosAttributes:k,rawFilename:A,filenameUTF8:x,commentUTF8:I,rawExtraField:w.subarray(l,c),rawComment:E,filename:T,comment:R}),f=Math.max(S,f),Qr(r,r,B,m+6);const H=r.externalFileAttributes>>16&Ki;r.unixMode===_i&&16877&H&&(r.unixMode=H);const Y=Boolean(2048&r.unixMode),O=Boolean(1024&r.unixMode),G=Boolean(512&r.unixMode),N=r.unixMode!==_i?!!(73&r.unixMode):h&&!!(73&H),U=r.unixMode!==_i&&(61440&r.unixMode)==$i,W=(61440&H)==$i;Object.assign(r,{setuid:Y,setgid:O,sticky:G,unixExternalUpper:H,internalFileAttribute:r.internalFileAttributes,externalFileAttribute:r.externalFileAttributes,executable:N,directory:U||W||g&&k.directory||T.endsWith("/")&&!r.uncompressedSize,zipCrypto:r.encrypted&&!r.extraFieldAES});const P=new pr(r);P.getData=(e,i)=>r.getData(e,P,t.readRanges,i),P.arrayBuffer=async e=>{const i=new TransformStream,[n]=await Promise.all([new Response(i.readable).arrayBuffer(),r.getData(i,P,t.readRanges,e)]);return n},m=v;const{onprogress:j}=e;if(j)try{await j(o+1,u,new pr(r))}catch{}yield P}const v=Fr(t,e,"extractPrependedData"),E=Fr(t,e,"extractAppendedData");return v&&(t.prependedData=f>0?await Xo(i,0,f):new Uint8Array),t.comment=c?await Xo(i,l+Zi,c):new Uint8Array,E&&(t.appendedData=d>>8&255:A>>>24&255),outputSize:C?f:p,signature:A,compressed:0!=d&&!C,encrypted:o.encrypted&&!C,useWebWorkers:Fr(o,n,"useWebWorkers"),useCompressionStream:N,transferStreams:Fr(o,n,"transferStreams"),deflate64:G,checkPasswordOnly:L},config:g,streamOptions:{signal:F,size:S,onstart:H,onprogress:Y,onend:O}};let W;T&&await async function({reader:e,fileEntry:t,offset:i,diskNumberStart:n,signature:o,compressedSize:r,uncompressedSize:s,dataOffset:a,dataDescriptor:l,extraFieldZip64:c,readRanges:d}){let g=0;if(n)for(let t=0;t=e.start&&A.start>1,dataDescriptor:!(8&~n),languageEncodingFlag:!(2048&~n)},rawLastModDate:r,lastModDate:Lr(r),filenameLength:Hr(t,i+22),extraFieldLength:Hr(t,i+24)})}function Qr(e,t,i,n,o){const{rawExtraField:r}=t,s=t.extraField=new Map,a=Gr(new Uint8Array(r));let l=0;try{for(;lt[e]==i);for(let o=0,r=0;o=5&&(r.push(lr),s.push(cr));let a=1;r.forEach((i,o)=>{if(e.data.length>=a+4){const r=Yr(n,a);t[i]=e[i]=new Date(1e3*r);const l=s[o];e[l]=r}a+=4})}(f,t,o),t.extraFieldExtendedTimestamp=f);const m=s.get(6534);m&&(t.extraFieldUSDZ=m)}function kr(e,t,i,n,o){const r=Gr(e.data),s=new dn;s.append(o[i]);const a=Gr(new Uint8Array(4));a.setUint32(0,s.get(),!0);const l=Yr(r,1);Object.assign(e,{version:Rr(r,0),[t]:_o(e.data.subarray(5)),valid:!o.bitFlag.languageEncodingFlag&&l==Yr(a,0)}),e.valid&&(n[t]=e[t],n[t+"UTF8"]=!0)}function Sr(e,t,i){try{const n=Gr(new Uint8Array(e.data));let o=0;const r=Rr(n,o++),s=Rr(n,o++),a=e.data.subarray(o,o+s);o+=s;const l=Mr(a),c=Rr(n,o++),d=e.data.subarray(o,o+c);o+=c;const g=Mr(d);let h=_i;if(!i&&o+2<=e.data.length){const t=e.data;h=new DataView(t.buffer,t.byteOffset+o,2).getUint16(0,!0)}Object.assign(e,{version:r,uid:l,gid:g,unixMode:h}),l!==_i&&(t.uid=l),g!==_i&&(t.gid=g),h!==_i&&(t.unixMode=h)}catch{}}function Mr(e){const t=new Uint8Array(4);t.set(e,0);return new DataView(t.buffer,t.byteOffset,4).getUint32(0,!0)}function Fr(e,t,i){return t[i]===_i?e.options[i]:t[i]}function Lr(e){const t=(4294901760&e)>>16,i=e&Ki;try{return new Date(1980+((65024&t)>>9),((480&t)>>5)-1,31&t,(63488&i)>>11,(2016&i)>>5,2*(31&i),0)}catch{}}function Tr(e){return new Date(Number(e/BigInt(1e4)-BigInt(116444736e5)))}function Rr(e,t){return e.getUint8(t)}function Hr(e,t){return e.getUint16(t,!0)}function Yr(e,t){return e.getUint32(t,!0)}function Or(e,t){return Number(e.getBigUint64(t,!0))}function Gr(e){return new DataView(e.buffer)}try{an({baseURI:import.meta.url})}catch{}const Nr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";let Ur,Wr,Pr,jr;function zr(e,t,i={}){const n="number"==typeof i.level?i.level:-1,o="number"==typeof i.outBuffer?i.outBuffer:65536,r="number"==typeof i.inBufferSize?i.inBufferSize:65536;return new TransformStream({start(){let i;if(this.out=Wr(o),this.in=Wr(r),this.inBufferSize=r,this._scratch=new Uint8Array(o),e?(this._process=Ur.deflate_process,this._last_consumed=Ur.deflate_last_consumed,this._end=Ur.deflate_end,this.streamHandle=Ur.deflate_new(),i="gzip"===t?Ur.deflate_init_gzip(this.streamHandle,n):"deflate-raw"===t?Ur.deflate_init_raw(this.streamHandle,n):Ur.deflate_init(this.streamHandle,n)):"deflate64-raw"===t?(this._process=Ur.inflate9_process,this._last_consumed=Ur.inflate9_last_consumed,this._end=Ur.inflate9_end,this.streamHandle=Ur.inflate9_new(),i=Ur.inflate9_init_raw(this.streamHandle)):(this._process=Ur.inflate_process,this._last_consumed=Ur.inflate_last_consumed,this._end=Ur.inflate_end,this.streamHandle=Ur.inflate_new(),i="deflate-raw"===t?Ur.inflate_init_raw(this.streamHandle):"gzip"===t?Ur.inflate_init_gzip(this.streamHandle):Ur.inflate_init(this.streamHandle)),0!==i)throw new Error("init failed:"+i)},transform(t,i){try{const n=t,r=new Uint8Array(jr.buffer),s=this._process,a=this._last_consumed,l=this.out,c=this._scratch;let d=0;for(;d>24&255,t=128&e?e-256:e;if(t<0)throw new Error("process error:"+t)}const A=a(this.streamHandle);if(0===A)break;d+=A}}catch(e){this._end&&this.streamHandle&&this._end(this.streamHandle),this.in&&Pr&&Pr(this.in),this.out&&Pr&&Pr(this.out),i.error(e)}},flush(t){try{const i=new Uint8Array(jr.buffer),n=this._process,r=this.out,s=this._scratch;for(;;){const a=n(this.streamHandle,0,0,r,o,4),l=16777215&a,c=a>>24&255;if(!e){const e=128&c?c-256:c;if(e<0)throw new Error("process error:"+e)}if(l&&(s.set(i.subarray(r,r+l),0),t.enqueue(s.slice(0,l))),1===c||0===l)break}}catch(e){t.error(e)}finally{if(this._end&&this.streamHandle){const e=this._end(this.streamHandle);0!==e&&t.error(new Error("end error:"+e))}this.in&&Pr&&Pr(this.in),this.out&&Pr&&Pr(this.out)}}})}let Kr,qr=!1;async function Jr(e,{baseURI:t}){if(!qr){let i,n;try{try{n=new URL(e,t)}catch{}const o=await fetch(n);i=await o.arrayBuffer()}catch(t){if(!e.startsWith("data:application/wasm;base64,"))throw t;i=function(e){const t=e.split(",")[1],i=atob(t),n=i.length,o=new Uint8Array(n);for(let e=0;e(t||(t="data:application/wasm;base64,"+(e=>{e=(e=>{const t=(e=(e+"").replace(/[^A-Za-z0-9+/=]/g,"")).length,i=[];for(let n=0;t>n;n+=4){const t=Nr.indexOf(e[n])<<18|Nr.indexOf(e[n+1])<<12|(63&Nr.indexOf(e[n+2]))<<6|63&Nr.indexOf(e[n+3]);i.push(t>>16&255),"="!==e[n+2]&&i.push(t>>8&255),"="!==e[n+3]&&i.push(255&t)}return new Uint8Array(i)})(e);let t=new Uint8Array(1024),i=0;for(let o=0;oe;e++)t[i++]=t[l+e]}else{const s=r;n(i+s);for(let n=0;s>n&&o{let t="";const i=e.length;let n=0;for(;i>n+2;n+=3){const i=e[n]<<16|e[n+1]<<8|e[n+2];t+=Nr[i>>18&63]+Nr[i>>12&63]+Nr[i>>6&63]+Nr[63&i]}const o=i-n;if(1===o){const i=e[n]<<16;t+=Nr[i>>18&63]+Nr[i>>12&63]+"=="}else if(2===o){const i=e[n]<<16|e[n+1]<<8;t+=Nr[i>>18&63]+Nr[i>>12&63]+Nr[i>>6&63]+"="}return t})(new Uint8Array(t.buffer.slice(0,i)));function n(e){if(t.lengthn;)n*=2;const o=new Uint8Array(n);o.set(t.subarray(0,i)),t=o}}})("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BAGZgAAEAVmAAAQB2YAABAE5gAAEAbmAAAQBeYAABAH5gAAEAQWAAAQBhYAABAFFgAAEAcWAAAQBJYAABAGlgAAEAWWAAAQB5YAABAEVgAAEAZWAAAQBVYAABAHVgAAEATWAAAQBtYAABAF1gAAEAfWAAAQBDYAABAGNgAAEAU2AAAQBzYAABIARMwIArYAABAFtgAAEAe2AAAQBHYAABAGdgAAEAV2AAAQB3YAABAE9gAAEAb2AAAQBfYAABAH9gAAEAROAAMIFEwEJAJOAAAgBk4AACAFTgAAIAVOAAAgB04AACAHTgAAIATOAAAgBM4AACAGzgAAIAbOAAAgBc4AACAFzgAAIAfOAAAgB84AACAELgAAIgBDagAQCgAAEgAAIAUuAAAgBS4AACAHLgAAIAcuAAAgBK4AACAErgAAIAauAAAgBq4AACAFrgAAIAWuAAAgB64AACAHrgAAIARuAAAgBG4AACAGbgAAIAZuAAAgBW4AACAFbgAAIAduAAAgB24AACAE7gAAIATuAAAgBu4AACAG7gAAIAXuAAAgBe4AACAH7gAAIAfuAAAiBA7YBB4AACAGHgAAIAYeAAAgBR4AACAFHgAAIAceAAAgBx4AACAEngAAIASeAAAgBp4AACAGngAAIAWeAAAgBZ4AACAHngAAIAeeAAAgBF4AACAEXgAAIAZeAAAgBl4AACAFXgAAIAVeAAAgB14AACAHXgAAIATeAAAgBN4AACAG3gAAIAbeAAAgBd4AACAF3gAAIAfeAAAgB94AACAEPgAAIAQ+AAAgBj4AACAGPgAAIAU+AAAgBT4AACAHPgAAIAc+AAAgBL4AACAEvgAAIAa+AAAgBr4AACAFvgAAIAW+AAAgB74AACAHvgAAIAR+AAAgBH4AACAGfgAAIAZ+AAAgBX4AACAFfgAAIAd+AAAgB34AACAE/gAAIAT+AAAgBv4AACAG/gAAIAX+AAAgBf4AACAH/gAAIAf+AAAiBBAoBQIAABAEggAAEAWCAAAQBEIAABAFQgAAEATCAAAQBcIIFVgMHAEiAAAQBKIAABAFogAAEARiAAAQBWIAABAE4gAAEAXiAAAQBBIAABAFEgAAEASSAAAQBZIAABAEUgAAEAVSAAAQBNIAABAF0gAAEAQOAAEIBg4AABAFDgAAEAcOAAAQBI4AABAGjgAAEAWOAAAQB44AABIC+K4AAdIECxgEFgABcAQWCBUoBFIAABAEMgAAEARyAAASAvlaABEQBBYIGBAEaggXqAQWAA9QBBYADuAEFgAOcgE92gAAEARGAAAQBCYAABAEZgAAEgQACARWAAAQBDYAABAEdgAAEgL59gAKkgQZAAQWAAiyBBaYBBYABtAEFgD3fAxsLTYMfuYcABIC+rooABIEHUYkABAEEjAAEAQWKAAQEQbAcC4C9CosAS40AO4UALwEGhAAEgQWIgQAEgQEKgQAEgQGSgQAEgIS2ggAEAQuEAAQBDIQABIAF24FHeQTgHQsjhQBfhQXLAhARgAVtBgcJBgoFC4A6uAQNAg4BgAclBJQeC2mFAJCFAIiFAICFAHiBAGiBAFyBBh8BEIAABAEUgAAEARiAAAQBHIAABAEggAAEASiAAAQBMIAABAE4gAAEAUCAAAQBUIAABIEGvQFwgAAEAYCAAAQBoIAABAHAgAAEAeCAAG8DHwtyjQBvgQBrgQBngQBjgQBfgQBbgQBXgQBTgQBPgQBLgQBHgQBDgQE8AYCvAEGAUc0CC22BAMcBBIAAAgEIgAAEgQEzgQJLARCAAA6DAAyBnqyAqmuEACSBB3OBAE8BCIAACIEAGIUADIEIt4MADAEggQCUgDKEgQBrAYCBCC8BBIMADIA/SAoBABAMAEGRIQv/gCUfgMDAgIKxBQgJCQoKgEk3gAABAQ2AAAEBDoAAAQEPgAABARCEAAEBEYQAAQEShAABAROEAAEBFIwAAQEVjAABARaMAAEBF4wAAQEYnAABARmcAAEBGpwAAQEbmwABARyBffsEBAQFBYHB1QEHgAABAQiEAAGAXSqCAAEBCowAAYAnsooAAYEBMJkAAYEBTJkAAYEBaLkAAYEBpLkAAYIDdYABzoUBvI0BqJ0BkLwBgAIbHLwAAQEdvAABgA9PgH05A9AqAQ==")),t)})}(an),function({initModule:e}){xo=e}({initModule:e=>{if(!Kr){let{wasmURI:t}=e;typeof t==nn&&(t=t()),Kr=Jr(t,e)}return Kr}}),an({CompressionStreamZlib:class{constructor(e="deflate",t){return zr(!0,e,t)}},DecompressionStreamZlib:class{constructor(e="deflate",t){return zr(!1,e,t)}}});const Vr={application:{"andrew-inset":"ez",annodex:"anx","atom+xml":"atom","atomcat+xml":"atomcat","atomserv+xml":"atomsrv",bbolin:"lin","cu-seeme":"cu","davmount+xml":"davmount",dsptype:"tsp",ecmascript:["es","ecma"],futuresplash:"spl",hta:"hta","java-archive":"jar","java-serialized-object":"ser","java-vm":"class",m3g:"m3g","mac-binhex40":"hqx",mathematica:["nb","ma","mb"],msaccess:"mdb",msword:["doc","dot","wiz"],mxf:"mxf",oda:"oda",ogg:"ogx",pdf:"pdf","pgp-keys":"key","pgp-signature":["asc","sig"],"pics-rules":"prf",postscript:["ps","ai","eps","epsi","epsf","eps2","eps3"],rar:"rar","rdf+xml":"rdf","rss+xml":"rss",rtf:"rtf","xhtml+xml":["xhtml","xht"],xml:["xml","xsl","xsd","xpdl"],"xspf+xml":"xspf",zip:"zip","vnd.android.package-archive":"apk","vnd.cinderella":"cdy","vnd.google-earth.kml+xml":"kml","vnd.google-earth.kmz":"kmz","vnd.mozilla.xul+xml":"xul","vnd.ms-excel":["xls","xlb","xlt","xlm","xla","xlc","xlw"],"vnd.ms-pki.seccat":"cat","vnd.ms-pki.stl":"stl","vnd.ms-powerpoint":["ppt","pps","pot","ppa","pwz"],"vnd.oasis.opendocument.chart":"odc","vnd.oasis.opendocument.database":"odb","vnd.oasis.opendocument.formula":"odf","vnd.oasis.opendocument.graphics":"odg","vnd.oasis.opendocument.graphics-template":"otg","vnd.oasis.opendocument.image":"odi","vnd.oasis.opendocument.presentation":"odp","vnd.oasis.opendocument.presentation-template":"otp","vnd.oasis.opendocument.spreadsheet":"ods","vnd.oasis.opendocument.spreadsheet-template":"ots","vnd.oasis.opendocument.text":"odt","vnd.oasis.opendocument.text-master":["odm","otm"],"vnd.oasis.opendocument.text-template":"ott","vnd.oasis.opendocument.text-web":"oth","vnd.openxmlformats-officedocument.spreadsheetml.sheet":"xlsx","vnd.openxmlformats-officedocument.spreadsheetml.template":"xltx","vnd.openxmlformats-officedocument.presentationml.presentation":"pptx","vnd.openxmlformats-officedocument.presentationml.slideshow":"ppsx","vnd.openxmlformats-officedocument.presentationml.template":"potx","vnd.openxmlformats-officedocument.wordprocessingml.document":"docx","vnd.openxmlformats-officedocument.wordprocessingml.template":"dotx","vnd.smaf":"mmf","vnd.stardivision.calc":"sdc","vnd.stardivision.chart":"sds","vnd.stardivision.draw":"sda","vnd.stardivision.impress":"sdd","vnd.stardivision.math":["sdf","smf"],"vnd.stardivision.writer":["sdw","vor"],"vnd.stardivision.writer-global":"sgl","vnd.sun.xml.calc":"sxc","vnd.sun.xml.calc.template":"stc","vnd.sun.xml.draw":"sxd","vnd.sun.xml.draw.template":"std","vnd.sun.xml.impress":"sxi","vnd.sun.xml.impress.template":"sti","vnd.sun.xml.math":"sxm","vnd.sun.xml.writer":"sxw","vnd.sun.xml.writer.global":"sxg","vnd.sun.xml.writer.template":"stw","vnd.symbian.install":["sis","sisx"],"vnd.visio":["vsd","vst","vss","vsw","vsdx","vssx","vstx","vssm","vstm"],"vnd.wap.wbxml":"wbxml","vnd.wap.wmlc":"wmlc","vnd.wap.wmlscriptc":"wmlsc","vnd.wordperfect":"wpd","vnd.wordperfect5.1":"wp5","x-123":"wk","x-7z-compressed":"7z","x-abiword":"abw","x-apple-diskimage":"dmg","x-bcpio":"bcpio","x-bittorrent":"torrent","x-cbr":["cbr","cba","cbt","cb7"],"x-cbz":"cbz","x-cdf":["cdf","cda"],"x-cdlink":"vcd","x-chess-pgn":"pgn","x-cpio":"cpio","x-csh":"csh","x-director":["dir","dxr","cst","cct","cxt","w3d","fgd","swa"],"x-dms":"dms","x-doom":"wad","x-dvi":"dvi","x-httpd-eruby":"rhtml","x-font":"pcf.Z","x-freemind":"mm","x-gnumeric":"gnumeric","x-go-sgf":"sgf","x-graphing-calculator":"gcf","x-gtar":["gtar","taz"],"x-hdf":"hdf","x-httpd-php":["phtml","pht","php"],"x-httpd-php-source":"phps","x-httpd-php3":"php3","x-httpd-php3-preprocessed":"php3p","x-httpd-php4":"php4","x-httpd-php5":"php5","x-ica":"ica","x-info":"info","x-internet-signup":["ins","isp"],"x-iphone":"iii","x-iso9660-image":"iso","x-java-jnlp-file":"jnlp","x-jmol":"jmz","x-killustrator":"kil","x-latex":"latex","x-lyx":"lyx","x-lzx":"lzx","x-maker":["frm","fb","fbdoc"],"x-ms-wmd":"wmd","x-msdos-program":["com","exe","bat","dll"],"x-netcdf":["nc"],"x-ns-proxy-autoconfig":["pac","dat"],"x-nwc":"nwc","x-object":"o","x-oz-application":"oza","x-pkcs7-certreqresp":"p7r","x-python-code":["pyc","pyo"],"x-qgis":["qgs","shp","shx"],"x-quicktimeplayer":"qtl","x-redhat-package-manager":["rpm","rpa"],"x-ruby":"rb","x-sh":"sh","x-shar":"shar","x-shockwave-flash":["swf","swfl"],"x-silverlight":"scr","x-stuffit":"sit","x-sv4cpio":"sv4cpio","x-sv4crc":"sv4crc","x-tar":"tar","x-tex-gf":"gf","x-tex-pk":"pk","x-texinfo":["texinfo","texi"],"x-trash":["~","%","bak","old","sik"],"x-ustar":"ustar","x-wais-source":"src","x-wingz":"wz","x-x509-ca-cert":["crt","der","cer"],"x-xcf":"xcf","x-xfig":"fig","x-xpinstall":"xpi",applixware:"aw","atomsvc+xml":"atomsvc","ccxml+xml":"ccxml","cdmi-capability":"cdmia","cdmi-container":"cdmic","cdmi-domain":"cdmid","cdmi-object":"cdmio","cdmi-queue":"cdmiq","docbook+xml":"dbk","dssc+der":"dssc","dssc+xml":"xdssc","emma+xml":"emma","epub+zip":"epub",exi:"exi","font-tdpfr":"pfr","gml+xml":"gml","gpx+xml":"gpx",gxf:"gxf",hyperstudio:"stk","inkml+xml":["ink","inkml"],ipfix:"ipfix","jsonml+json":"jsonml","lost+xml":"lostxml","mads+xml":"mads",marc:"mrc","marcxml+xml":"mrcx","mathml+xml":["mathml","mml"],mbox:"mbox","mediaservercontrol+xml":"mscml","metalink+xml":"metalink","metalink4+xml":"meta4","mets+xml":"mets","mods+xml":"mods",mp21:["m21","mp21"],mp4:"mp4s","oebps-package+xml":"opf","omdoc+xml":"omdoc",onenote:["onetoc","onetoc2","onetmp","onepkg"],oxps:"oxps","patch-ops-error+xml":"xer","pgp-encrypted":"pgp",pkcs10:"p10","pkcs7-mime":["p7m","p7c"],"pkcs7-signature":"p7s",pkcs8:"p8","pkix-attr-cert":"ac","pkix-crl":"crl","pkix-pkipath":"pkipath",pkixcmp:"pki","pls+xml":"pls","prs.cww":"cww","pskc+xml":"pskcxml","reginfo+xml":"rif","relax-ng-compact-syntax":"rnc","resource-lists+xml":"rl","resource-lists-diff+xml":"rld","rls-services+xml":"rs","rpki-ghostbusters":"gbr","rpki-manifest":"mft","rpki-roa":"roa","rsd+xml":"rsd","sbml+xml":"sbml","scvp-cv-request":"scq","scvp-cv-response":"scs","scvp-vp-request":"spq","scvp-vp-response":"spp",sdp:"sdp","set-payment-initiation":"setpay","set-registration-initiation":"setreg","shf+xml":"shf","sparql-query":"rq","sparql-results+xml":"srx",srgs:"gram","srgs+xml":"grxml","sru+xml":"sru","ssdl+xml":"ssdl","ssml+xml":"ssml","tei+xml":["tei","teicorpus"],"thraud+xml":"tfi","timestamped-data":"tsd","vnd.3gpp.pic-bw-large":"plb","vnd.3gpp.pic-bw-small":"psb","vnd.3gpp.pic-bw-var":"pvb","vnd.3gpp2.tcap":"tcap","vnd.3m.post-it-notes":"pwn","vnd.accpac.simply.aso":"aso","vnd.accpac.simply.imp":"imp","vnd.acucobol":"acu","vnd.acucorp":["atc","acutc"],"vnd.adobe.air-application-installer-package+zip":"air","vnd.adobe.formscentral.fcdt":"fcdt","vnd.adobe.fxp":["fxp","fxpl"],"vnd.adobe.xdp+xml":"xdp","vnd.adobe.xfdf":"xfdf","vnd.ahead.space":"ahead","vnd.airzip.filesecure.azf":"azf","vnd.airzip.filesecure.azs":"azs","vnd.amazon.ebook":"azw","vnd.americandynamics.acc":"acc","vnd.amiga.ami":"ami","vnd.anser-web-certificate-issue-initiation":"cii","vnd.anser-web-funds-transfer-initiation":"fti","vnd.antix.game-component":"atx","vnd.apple.installer+xml":"mpkg","vnd.apple.mpegurl":"m3u8","vnd.aristanetworks.swi":"swi","vnd.astraea-software.iota":"iota","vnd.audiograph":"aep","vnd.blueice.multipass":"mpm","vnd.bmi":"bmi","vnd.businessobjects":"rep","vnd.chemdraw+xml":"cdxml","vnd.chipnuts.karaoke-mmd":"mmd","vnd.claymore":"cla","vnd.cloanto.rp9":"rp9","vnd.clonk.c4group":["c4g","c4d","c4f","c4p","c4u"],"vnd.cluetrust.cartomobile-config":"c11amc","vnd.cluetrust.cartomobile-config-pkg":"c11amz","vnd.commonspace":"csp","vnd.contact.cmsg":"cdbcmsg","vnd.cosmocaller":"cmc","vnd.crick.clicker":"clkx","vnd.crick.clicker.keyboard":"clkk","vnd.crick.clicker.palette":"clkp","vnd.crick.clicker.template":"clkt","vnd.crick.clicker.wordbank":"clkw","vnd.criticaltools.wbs+xml":"wbs","vnd.ctc-posml":"pml","vnd.cups-ppd":"ppd","vnd.curl.car":"car","vnd.curl.pcurl":"pcurl","vnd.dart":"dart","vnd.data-vision.rdz":"rdz","vnd.dece.data":["uvf","uvvf","uvd","uvvd"],"vnd.dece.ttml+xml":["uvt","uvvt"],"vnd.dece.unspecified":["uvx","uvvx"],"vnd.dece.zip":["uvz","uvvz"],"vnd.denovo.fcselayout-link":"fe_launch","vnd.dna":"dna","vnd.dolby.mlp":"mlp","vnd.dpgraph":"dpg","vnd.dreamfactory":"dfac","vnd.ds-keypoint":"kpxx","vnd.dvb.ait":"ait","vnd.dvb.service":"svc","vnd.dynageo":"geo","vnd.ecowin.chart":"mag","vnd.enliven":"nml","vnd.epson.esf":"esf","vnd.epson.msf":"msf","vnd.epson.quickanime":"qam","vnd.epson.salt":"slt","vnd.epson.ssf":"ssf","vnd.eszigno3+xml":["es3","et3"],"vnd.ezpix-album":"ez2","vnd.ezpix-package":"ez3","vnd.fdf":"fdf","vnd.fdsn.mseed":"mseed","vnd.fdsn.seed":["seed","dataless"],"vnd.flographit":"gph","vnd.fluxtime.clip":"ftc","vnd.framemaker":["fm","frame","maker","book"],"vnd.frogans.fnc":"fnc","vnd.frogans.ltf":"ltf","vnd.fsc.weblaunch":"fsc","vnd.fujitsu.oasys":"oas","vnd.fujitsu.oasys2":"oa2","vnd.fujitsu.oasys3":"oa3","vnd.fujitsu.oasysgp":"fg5","vnd.fujitsu.oasysprs":"bh2","vnd.fujixerox.ddd":"ddd","vnd.fujixerox.docuworks":"xdw","vnd.fujixerox.docuworks.binder":"xbd","vnd.fuzzysheet":"fzs","vnd.genomatix.tuxedo":"txd","vnd.geogebra.file":"ggb","vnd.geogebra.tool":"ggt","vnd.geometry-explorer":["gex","gre"],"vnd.geonext":"gxt","vnd.geoplan":"g2w","vnd.geospace":"g3w","vnd.gmx":"gmx","vnd.grafeq":["gqf","gqs"],"vnd.groove-account":"gac","vnd.groove-help":"ghf","vnd.groove-identity-message":"gim","vnd.groove-injector":"grv","vnd.groove-tool-message":"gtm","vnd.groove-tool-template":"tpl","vnd.groove-vcard":"vcg","vnd.hal+xml":"hal","vnd.handheld-entertainment+xml":"zmm","vnd.hbci":"hbci","vnd.hhe.lesson-player":"les","vnd.hp-hpgl":"hpgl","vnd.hp-hpid":"hpid","vnd.hp-hps":"hps","vnd.hp-jlyt":"jlt","vnd.hp-pcl":"pcl","vnd.hp-pclxl":"pclxl","vnd.hydrostatix.sof-data":"sfd-hdstx","vnd.ibm.minipay":"mpy","vnd.ibm.modcap":["afp","listafp","list3820"],"vnd.ibm.rights-management":"irm","vnd.ibm.secure-container":"sc","vnd.iccprofile":["icc","icm"],"vnd.igloader":"igl","vnd.immervision-ivp":"ivp","vnd.immervision-ivu":"ivu","vnd.insors.igm":"igm","vnd.intercon.formnet":["xpw","xpx"],"vnd.intergeo":"i2g","vnd.intu.qbo":"qbo","vnd.intu.qfx":"qfx","vnd.ipunplugged.rcprofile":"rcprofile","vnd.irepository.package+xml":"irp","vnd.is-xpr":"xpr","vnd.isac.fcs":"fcs","vnd.jam":"jam","vnd.jcp.javame.midlet-rms":"rms","vnd.jisp":"jisp","vnd.joost.joda-archive":"joda","vnd.kahootz":["ktz","ktr"],"vnd.kde.karbon":"karbon","vnd.kde.kchart":"chrt","vnd.kde.kformula":"kfo","vnd.kde.kivio":"flw","vnd.kde.kontour":"kon","vnd.kde.kpresenter":["kpr","kpt"],"vnd.kde.kspread":"ksp","vnd.kde.kword":["kwd","kwt"],"vnd.kenameaapp":"htke","vnd.kidspiration":"kia","vnd.kinar":["kne","knp"],"vnd.koan":["skp","skd","skt","skm"],"vnd.kodak-descriptor":"sse","vnd.las.las+xml":"lasxml","vnd.llamagraphics.life-balance.desktop":"lbd","vnd.llamagraphics.life-balance.exchange+xml":"lbe","vnd.lotus-1-2-3":"123","vnd.lotus-approach":"apr","vnd.lotus-freelance":"pre","vnd.lotus-notes":"nsf","vnd.lotus-organizer":"org","vnd.lotus-screencam":"scm","vnd.lotus-wordpro":"lwp","vnd.macports.portpkg":"portpkg","vnd.mcd":"mcd","vnd.medcalcdata":"mc1","vnd.mediastation.cdkey":"cdkey","vnd.mfer":"mwf","vnd.mfmp":"mfm","vnd.micrografx.flo":"flo","vnd.micrografx.igx":"igx","vnd.mif":"mif","vnd.mobius.daf":"daf","vnd.mobius.dis":"dis","vnd.mobius.mbk":"mbk","vnd.mobius.mqy":"mqy","vnd.mobius.msl":"msl","vnd.mobius.plc":"plc","vnd.mobius.txf":"txf","vnd.mophun.application":"mpn","vnd.mophun.certificate":"mpc","vnd.ms-artgalry":"cil","vnd.ms-cab-compressed":"cab","vnd.ms-excel.addin.macroenabled.12":"xlam","vnd.ms-excel.sheet.binary.macroenabled.12":"xlsb","vnd.ms-excel.sheet.macroenabled.12":"xlsm","vnd.ms-excel.template.macroenabled.12":"xltm","vnd.ms-fontobject":"eot","vnd.ms-htmlhelp":"chm","vnd.ms-ims":"ims","vnd.ms-lrm":"lrm","vnd.ms-officetheme":"thmx","vnd.ms-powerpoint.addin.macroenabled.12":"ppam","vnd.ms-powerpoint.presentation.macroenabled.12":"pptm","vnd.ms-powerpoint.slide.macroenabled.12":"sldm","vnd.ms-powerpoint.slideshow.macroenabled.12":"ppsm","vnd.ms-powerpoint.template.macroenabled.12":"potm","vnd.ms-project":["mpp","mpt"],"vnd.ms-word.document.macroenabled.12":"docm","vnd.ms-word.template.macroenabled.12":"dotm","vnd.ms-works":["wps","wks","wcm","wdb"],"vnd.ms-wpl":"wpl","vnd.ms-xpsdocument":"xps","vnd.mseq":"mseq","vnd.musician":"mus","vnd.muvee.style":"msty","vnd.mynfc":"taglet","vnd.neurolanguage.nlu":"nlu","vnd.nitf":["ntf","nitf"],"vnd.noblenet-directory":"nnd","vnd.noblenet-sealer":"nns","vnd.noblenet-web":"nnw","vnd.nokia.n-gage.data":"ngdat","vnd.nokia.n-gage.symbian.install":"n-gage","vnd.nokia.radio-preset":"rpst","vnd.nokia.radio-presets":"rpss","vnd.novadigm.edm":"edm","vnd.novadigm.edx":"edx","vnd.novadigm.ext":"ext","vnd.oasis.opendocument.chart-template":"otc","vnd.oasis.opendocument.formula-template":"odft","vnd.oasis.opendocument.image-template":"oti","vnd.olpc-sugar":"xo","vnd.oma.dd2+xml":"dd2","vnd.openofficeorg.extension":"oxt","vnd.openxmlformats-officedocument.presentationml.slide":"sldx","vnd.osgeo.mapguide.package":"mgp","vnd.osgi.dp":"dp","vnd.osgi.subsystem":"esa","vnd.palm":["pdb","pqa","oprc"],"vnd.pawaafile":"paw","vnd.pg.format":"str","vnd.pg.osasli":"ei6","vnd.picsel":"efif","vnd.pmi.widget":"wg","vnd.pocketlearn":"plf","vnd.powerbuilder6":"pbd","vnd.previewsystems.box":"box","vnd.proteus.magazine":"mgz","vnd.publishare-delta-tree":"qps","vnd.pvi.ptid1":"ptid","vnd.quark.quarkxpress":["qxd","qxt","qwd","qwt","qxl","qxb"],"vnd.realvnc.bed":"bed","vnd.recordare.musicxml":"mxl","vnd.recordare.musicxml+xml":"musicxml","vnd.rig.cryptonote":"cryptonote","vnd.rn-realmedia":"rm","vnd.rn-realmedia-vbr":"rmvb","vnd.route66.link66+xml":"link66","vnd.sailingtracker.track":"st","vnd.seemail":"see","vnd.sema":"sema","vnd.semd":"semd","vnd.semf":"semf","vnd.shana.informed.formdata":"ifm","vnd.shana.informed.formtemplate":"itp","vnd.shana.informed.interchange":"iif","vnd.shana.informed.package":"ipk","vnd.simtech-mindmapper":["twd","twds"],"vnd.smart.teacher":"teacher","vnd.solent.sdkm+xml":["sdkm","sdkd"],"vnd.spotfire.dxp":"dxp","vnd.spotfire.sfs":"sfs","vnd.stepmania.package":"smzip","vnd.stepmania.stepchart":"sm","vnd.sus-calendar":["sus","susp"],"vnd.svd":"svd","vnd.syncml+xml":"xsm","vnd.syncml.dm+wbxml":"bdm","vnd.syncml.dm+xml":"xdm","vnd.tao.intent-module-archive":"tao","vnd.tcpdump.pcap":["pcap","cap","dmp"],"vnd.tmobile-livetv":"tmo","vnd.trid.tpt":"tpt","vnd.triscape.mxs":"mxs","vnd.trueapp":"tra","vnd.ufdl":["ufd","ufdl"],"vnd.uiq.theme":"utz","vnd.umajin":"umj","vnd.unity":"unityweb","vnd.uoml+xml":"uoml","vnd.vcx":"vcx","vnd.visionary":"vis","vnd.vsf":"vsf","vnd.webturbo":"wtb","vnd.wolfram.player":"nbp","vnd.wqd":"wqd","vnd.wt.stf":"stf","vnd.xara":"xar","vnd.xfdl":"xfdl","vnd.yamaha.hv-dic":"hvd","vnd.yamaha.hv-script":"hvs","vnd.yamaha.hv-voice":"hvp","vnd.yamaha.openscoreformat":"osf","vnd.yamaha.openscoreformat.osfpvg+xml":"osfpvg","vnd.yamaha.smaf-audio":"saf","vnd.yamaha.smaf-phrase":"spf","vnd.yellowriver-custom-menu":"cmp","vnd.zul":["zir","zirz"],"vnd.zzazz.deck+xml":"zaz","voicexml+xml":"vxml",widget:"wgt",winhlp:"hlp","wsdl+xml":"wsdl","wspolicy+xml":"wspolicy","x-ace-compressed":"ace","x-authorware-bin":["aab","x32","u32","vox"],"x-authorware-map":"aam","x-authorware-seg":"aas","x-blorb":["blb","blorb"],"x-bzip":"bz","x-bzip2":["bz2","boz"],"x-cfs-compressed":"cfs","x-chat":"chat","x-conference":"nsc","x-dgc-compressed":"dgc","x-dtbncx+xml":"ncx","x-dtbook+xml":"dtb","x-dtbresource+xml":"res","x-eva":"eva","x-font-bdf":"bdf","x-font-ghostscript":"gsf","x-font-linux-psf":"psf","x-font-pcf":"pcf","x-font-snf":"snf","x-font-ttf":["ttf","ttc"],"x-font-type1":["pfa","pfb","pfm","afm"],"x-freearc":"arc","x-gca-compressed":"gca","x-glulx":"ulx","x-gramps-xml":"gramps","x-install-instructions":"install","x-lzh-compressed":["lzh","lha"],"x-mie":"mie","x-mobipocket-ebook":["prc","mobi"],"x-ms-application":"application","x-ms-shortcut":"lnk","x-ms-xbap":"xbap","x-msbinder":"obd","x-mscardfile":"crd","x-msclip":"clp","application/x-ms-installer":"msi","x-msmediaview":["mvb","m13","m14"],"x-msmetafile":["wmf","wmz","emf","emz"],"x-msmoney":"mny","x-mspublisher":"pub","x-msschedule":"scd","x-msterminal":"trm","x-mswrite":"wri","x-nzb":"nzb","x-pkcs12":["p12","pfx"],"x-pkcs7-certificates":["p7b","spc"],"x-research-info-systems":"ris","x-silverlight-app":"xap","x-sql":"sql","x-stuffitx":"sitx","x-subrip":"srt","x-t3vm-image":"t3","x-tex-tfm":"tfm","x-tgif":"obj","x-xliff+xml":"xlf","x-xz":"xz","x-zmachine":["z1","z2","z3","z4","z5","z6","z7","z8"],"xaml+xml":"xaml","xcap-diff+xml":"xdf","xenc+xml":"xenc","xml-dtd":"dtd","xop+xml":"xop","xproc+xml":"xpl","xslt+xml":"xslt","xv+xml":["mxml","xhvml","xvml","xvm"],yang:"yang","yin+xml":"yin",envoy:"evy",fractals:"fif","internet-property-stream":"acx",olescript:"axs","vnd.ms-outlook":"msg","vnd.ms-pkicertstore":"sst","x-compress":"z","x-perfmon":["pma","pmc","pmr","pmw"],"ynd.ms-pkipko":"pko",gzip:["gz","tgz"],"smil+xml":["smi","smil"],"vnd.debian.binary-package":["deb","udeb"],"vnd.hzn-3d-crossword":"x3d","vnd.sqlite3":["db","sqlite","sqlite3","db-wal","sqlite-wal","db-shm","sqlite-shm"],"vnd.wap.sic":"sic","vnd.wap.slc":"slc","x-krita":["kra","krz"],"x-perl":["pm","pl"],yaml:["yaml","yml"]},audio:{amr:"amr","amr-wb":"awb",annodex:"axa",basic:["au","snd"],flac:"flac",midi:["mid","midi","kar","rmi"],mpeg:["mpga","mpega","mp3","m4a","mp2a","m2a","m3a"],mpegurl:"m3u",ogg:["oga","ogg","spx"],"prs.sid":"sid","x-aiff":"aifc","x-gsm":"gsm","x-ms-wma":"wma","x-ms-wax":"wax","x-pn-realaudio":"ram","x-realaudio":"ra","x-sd2":"sd2",adpcm:"adp",mp4:"mp4a",s3m:"s3m",silk:"sil","vnd.dece.audio":["uva","uvva"],"vnd.digital-winds":"eol","vnd.dra":"dra","vnd.dts":"dts","vnd.dts.hd":"dtshd","vnd.lucent.voice":"lvp","vnd.ms-playready.media.pya":"pya","vnd.nuera.ecelp4800":"ecelp4800","vnd.nuera.ecelp7470":"ecelp7470","vnd.nuera.ecelp9600":"ecelp9600","vnd.rip":"rip",webm:"weba","x-caf":"caf","x-matroska":"mka","x-pn-realaudio-plugin":"rmp",xm:"xm",aac:"aac",aiff:["aiff","aif","aff"],opus:"opus",wav:"wav"},chemical:{"x-alchemy":"alc","x-cache":["cac","cache"],"x-cache-csf":"csf","x-cactvs-binary":["cbin","cascii","ctab"],"x-cdx":"cdx","x-chem3d":"c3d","x-cif":"cif","x-cmdf":"cmdf","x-cml":"cml","x-compass":"cpa","x-crossfire":"bsd","x-csml":["csml","csm"],"x-ctx":"ctx","x-cxf":["cxf","cef"],"x-embl-dl-nucleotide":["emb","embl"],"x-gamess-input":["inp","gam","gamin"],"x-gaussian-checkpoint":["fch","fchk"],"x-gaussian-cube":"cub","x-gaussian-input":["gau","gjc","gjf"],"x-gaussian-log":"gal","x-gcg8-sequence":"gcg","x-genbank":"gen","x-hin":"hin","x-isostar":["istr","ist"],"x-jcamp-dx":["jdx","dx"],"x-kinemage":"kin","x-macmolecule":"mcm","x-macromodel-input":"mmod","x-mdl-molfile":"mol","x-mdl-rdfile":"rd","x-mdl-rxnfile":"rxn","x-mdl-sdfile":"sd","x-mdl-tgf":"tgf","x-mmcif":"mcif","x-mol2":"mol2","x-molconn-Z":"b","x-mopac-graph":"gpt","x-mopac-input":["mop","mopcrt","zmt"],"x-mopac-out":"moo","x-ncbi-asn1":"asn","x-ncbi-asn1-ascii":["prt","ent"],"x-ncbi-asn1-binary":"val","x-rosdal":"ros","x-swissprot":"sw","x-vamas-iso14976":"vms","x-vmd":"vmd","x-xtel":"xtel","x-xyz":"xyz"},font:{otf:"otf",woff:"woff",woff2:"woff2"},image:{gif:"gif",ief:"ief",jpeg:["jpeg","jpg","jpe","jfif","jfif-tbnl","jif"],pcx:"pcx",png:"png","svg+xml":["svg","svgz"],tiff:["tiff","tif"],"vnd.djvu":["djvu","djv"],"vnd.wap.wbmp":"wbmp","x-canon-cr2":"cr2","x-canon-crw":"crw","x-cmu-raster":"ras","x-coreldraw":"cdr","x-coreldrawpattern":"pat","x-coreldrawtemplate":"cdt","x-corelphotopaint":"cpt","x-epson-erf":"erf","x-icon":"ico","x-jg":"art","x-jng":"jng","x-nikon-nef":"nef","x-olympus-orf":"orf","x-portable-anymap":"pnm","x-portable-bitmap":"pbm","x-portable-graymap":"pgm","x-portable-pixmap":"ppm","x-rgb":"rgb","x-xbitmap":"xbm","x-xpixmap":"xpm","x-xwindowdump":"xwd",bmp:"bmp",cgm:"cgm",g3fax:"g3",ktx:"ktx","prs.btif":"btif",sgi:"sgi","vnd.dece.graphic":["uvi","uvvi","uvg","uvvg"],"vnd.dwg":"dwg","vnd.dxf":"dxf","vnd.fastbidsheet":"fbs","vnd.fpx":"fpx","vnd.fst":"fst","vnd.fujixerox.edmics-mmr":"mmr","vnd.fujixerox.edmics-rlc":"rlc","vnd.ms-modi":"mdi","vnd.ms-photo":"wdp","vnd.net-fpx":"npx","vnd.xiff":"xif",webp:"webp","x-3ds":"3ds","x-cmx":"cmx","x-freehand":["fh","fhc","fh4","fh5","fh7"],"x-pict":["pic","pct"],"x-tga":"tga","cis-cod":"cod",avif:"avifs",heic:["heif","heic"],pjpeg:["pjpg"],"vnd.adobe.photoshop":"psd","x-adobe-dng":"dng","x-fuji-raf":"raf","x-icns":"icns","x-kodak-dcr":"dcr","x-kodak-k25":"k25","x-kodak-kdc":"kdc","x-minolta-mrw":"mrw","x-panasonic-raw":["raw","rw2","rwl"],"x-pentax-pef":["pef","ptx"],"x-sigma-x3f":"x3f","x-sony-arw":"arw","x-sony-sr2":"sr2","x-sony-srf":"srf"},message:{rfc822:["eml","mime","mht","mhtml","nws"]},model:{iges:["igs","iges"],mesh:["msh","mesh","silo"],vrml:["wrl","vrml"],"x3d+vrml":["x3dv","x3dvz"],"x3d+xml":"x3dz","x3d+binary":["x3db","x3dbz"],"vnd.collada+xml":"dae","vnd.dwf":"dwf","vnd.gdl":"gdl","vnd.gtw":"gtw","vnd.mts":"mts","vnd.usdz+zip":"usdz","vnd.vtu":"vtu"},text:{"cache-manifest":["manifest","appcache"],calendar:["ics","icz","ifb"],css:"css",csv:"csv",h323:"323",html:["html","htm","shtml","stm"],iuls:"uls",plain:["txt","text","brf","conf","def","list","log","in","bas","diff","ksh"],richtext:"rtx",scriptlet:["sct","wsc"],texmacs:"tm","tab-separated-values":"tsv","vnd.sun.j2me.app-descriptor":"jad","vnd.wap.wml":"wml","vnd.wap.wmlscript":"wmls","x-bibtex":"bib","x-boo":"boo","x-c++hdr":["h++","hpp","hxx","hh"],"x-c++src":["c++","cpp","cxx","cc"],"x-component":"htc","x-dsrc":"d","x-diff":"patch","x-haskell":"hs","x-java":"java","x-literate-haskell":"lhs","x-moc":"moc","x-pascal":["p","pas","pp","inc"],"x-pcs-gcd":"gcd","x-python":"py","x-scala":"scala","x-setext":"etx","x-tcl":["tcl","tk"],"x-tex":["tex","ltx","sty","cls"],"x-vcalendar":"vcs","x-vcard":"vcf",n3:"n3","prs.lines.tag":"dsc",sgml:["sgml","sgm"],troff:["t","tr","roff","man","me","ms"],turtle:"ttl","uri-list":["uri","uris","urls"],vcard:"vcard","vnd.curl":"curl","vnd.curl.dcurl":"dcurl","vnd.curl.scurl":"scurl","vnd.curl.mcurl":"mcurl","vnd.dvb.subtitle":"sub","vnd.fly":"fly","vnd.fmi.flexstor":"flx","vnd.graphviz":"gv","vnd.in3d.3dml":"3dml","vnd.in3d.spot":"spot","x-asm":["s","asm"],"x-c":["c","h","dic"],"x-fortran":["f","for","f77","f90"],"x-opml":"opml","x-nfo":"nfo","x-sfv":"sfv","x-uuencode":"uu",webviewhtml:"htt",javascript:"js",json:"json",markdown:["md","markdown","mdown","markdn"],"vnd.wap.si":"si","vnd.wap.sl":"sl"},video:{avif:"avif","3gpp":"3gp",annodex:"axv",dl:"dl",dv:["dif","dv"],fli:"fli",gl:"gl",mpeg:["mpeg","mpg","mpe","m1v","m2v","mp2","mpa","mpv2"],mp4:["mp4","mp4v","mpg4"],quicktime:["qt","mov"],ogg:"ogv","vnd.mpegurl":["mxu","m4u"],"x-flv":"flv","x-la-asf":["lsf","lsx"],"x-mng":"mng","x-ms-asf":["asf","asx","asr"],"x-ms-wm":"wm","x-ms-wmv":"wmv","x-ms-wmx":"wmx","x-ms-wvx":"wvx","x-msvideo":"avi","x-sgi-movie":"movie","x-matroska":["mpv","mkv","mk3d","mks"],"3gpp2":"3g2",h261:"h261",h263:"h263",h264:"h264",jpeg:"jpgv",jpm:["jpm","jpgm"],mj2:["mj2","mjp2"],"vnd.dece.hd":["uvh","uvvh"],"vnd.dece.mobile":["uvm","uvvm"],"vnd.dece.pd":["uvp","uvvp"],"vnd.dece.sd":["uvs","uvvs"],"vnd.dece.video":["uvv","uvvv"],"vnd.dvb.file":"dvb","vnd.fvt":"fvt","vnd.ms-playready.media.pyv":"pyv","vnd.uvvu.mp4":["uvu","uvvu"],"vnd.vivo":"viv",webm:"webm","x-f4v":"f4v","x-m4v":"m4v","x-ms-vob":"vob","x-smv":"smv",mp2t:"ts"},"x-conference":{"x-cooltalk":"ice"},"x-world":{"x-vrml":["vrm","flr","wrz","xaf","xof"]}};(()=>{const e={};for(const t of Object.keys(Vr))for(const i of Object.keys(Vr[t])){const n=Vr[t][i];if("string"==typeof n)e[n]=t+"/"+i;else for(let o=0;o{const i="text/javascript";if(e){const e=new Blob([t],{type:i});return URL.createObjectURL(e)}return"data:"+i+","+encodeURIComponent(t)}})}(an);class Xr extends Ni{constructor(e,t){super(Object.assign(Object.assign({},t),{format:"EPUB"})),this.epubBuffer=e}renderTo(e){return new Promise((t,i)=>d(this,void 0,void 0,function*(){this.element=e,this.book||(yield this.parse());let i=new oe(this.book);this.chapterList=yield i.getChapter(this.book.toc),this.chapterDocList=yield i.getChapterDoc(),K(e,this.isAllowScript);let n=this.getDocument();n&&(ee(e,this.readerMode,n),t())}))}parse(){return d(this,void 0,void 0,function*(){let e=new Blob([this.epubBuffer]),t=new File([e],"book",{lastModified:(new Date).getTime(),type:e.type});try{const e=yield this.makeZipLoader(t);this.book=yield new rt(e).init()}catch(e){console.error(e);try{const e=yield this.makeZipLoaderV3(t);this.book=yield new rt(e).init()}catch(e){console.error(e);try{const e=yield this.makeZipLoaderV2(t);this.book=yield new rt(e).init()}catch(e){throw console.error(e),e}}}})}preCache(){return d(this,void 0,void 0,function*(){try{return this.book||(yield this.parse()),yield ji(this.book)}catch(e){return""}})}makeZipLoader(e){return d(this,void 0,void 0,function*(){let t=yield i.loadAsync(e);const n=t.files;return{entries:Object.values(n).map(e=>({filename:e.name})),loadText:e=>d(this,void 0,void 0,function*(){let i=t.file(e);return i?i.async("string"):""}),loadBlob:e=>d(this,void 0,void 0,function*(){let i=t.file(e);if(i){let e=yield i.async("arraybuffer");return new Blob([e])}return new Blob([new ArrayBuffer(0)])}),getSize:e=>{let i=t.file(e);if(i)return i._data.uncompressedSize||0}}})}makeZipLoaderV2(e){return d(this,void 0,void 0,function*(){let t=function(e){const t=new n.Unzip,i={};t.onfile=e=>{if(e.name.endsWith("/")||0===e.originalSize)return;const t=[];e.ondata=(n,o,r)=>{if(n)console.warn(`Error in file "${e.name}": ${n.message}`);else if(t.push(o),r){const n=new Uint8Array(t.reduce((e,t)=>e+t.length,0));let o=0;t.forEach(e=>{n.set(e,o),o+=e.length}),i[e.name]=n}};try{e.start()}catch(t){console.warn(`Error starting file "${e.name}": ${t.message}`)}},t.register(n.UnzipInflate);try{t.push(new Uint8Array(e),!0)}catch(e){console.warn(`Error during unzip: ${e.message}, returning partial results`)}return i}(yield e.arrayBuffer());return{entries:Object.keys(t).map(e=>({filename:e})),loadText:e=>d(this,void 0,void 0,function*(){let i=t[e];if(i){return new TextDecoder("utf-8").decode(i)}return""}),loadBlob:e=>d(this,void 0,void 0,function*(){let i=t[e];return i?new Blob([i]):new Blob([new ArrayBuffer(0)])}),getSize:e=>{let i=t[e];if(i)return i.length||0}}})}makeZipLoaderV3(e){return d(this,void 0,void 0,function*(){let t=new xr(new Wo(e)),i=yield t.getEntries();return{entries:i.map(e=>({filename:e.filename})),loadText:e=>d(this,void 0,void 0,function*(){let t=i.find(t=>t.filename===e);return t?yield t.getData(new jo("utf-8")):""}),loadBlob:e=>d(this,void 0,void 0,function*(){let t=i.find(t=>t.filename===e);return t?yield t.getData(new Po):new Blob([new ArrayBuffer(0)])}),getSize:e=>{let t=i.find(t=>t.filename===e);if(t)return t.uncompressedSize||0}}})}getMetadata(){return d(this,void 0,void 0,function*(){try{this.book||(yield this.parse());let e=new oe(this.book);return yield e.getMetadata()}catch(e){throw console.error(e,"error"),e}})}}const Zr=e=>{if(!e)return"";const t=document.createElement("textarea");return t.innerHTML=e,t.value},$r={XML:"application/xml",XHTML:"application/xhtml+xml",HTML:"text/html",CSS:"text/css",SVG:"image/svg+xml"},_r={name:[0,32,"string"],type:[60,4,"string"],creator:[64,4,"string"],numRecords:[76,2,"uint"]},es={compression:[0,2,"uint"],numTextRecords:[8,2,"uint"],recordSize:[10,2,"uint"],encryption:[12,2,"uint"]},ts={magic:[16,4,"string"],length:[20,4,"uint"],type:[24,4,"uint"],encoding:[28,4,"uint"],uid:[32,4,"uint"],version:[36,4,"uint"],titleOffset:[84,4,"uint"],titleLength:[88,4,"uint"],localeRegion:[94,1,"uint"],localeLanguage:[95,1,"uint"],resourceStart:[108,4,"uint"],huffcdic:[112,4,"uint"],numHuffcdic:[116,4,"uint"],exthFlag:[128,4,"uint"],trailingFlags:[240,4,"uint"],indx:[244,4,"uint"]},is={resourceStart:[108,4,"uint"],fdst:[192,4,"uint"],numFdst:[196,4,"uint"],frag:[248,4,"uint"],skel:[252,4,"uint"],guide:[260,4,"uint"]},ns={magic:[0,4,"string"],length:[4,4,"uint"],count:[8,4,"uint"]},os={magic:[0,4,"string"],length:[4,4,"uint"],type:[8,4,"uint"],idxt:[20,4,"uint"],numRecords:[24,4,"uint"],encoding:[28,4,"uint"],language:[32,4,"uint"],total:[36,4,"uint"],ordt:[40,4,"uint"],ligt:[44,4,"uint"],numLigt:[48,4,"uint"],numCncx:[52,4,"uint"]},rs={magic:[0,4,"string"],length:[4,4,"uint"],numControlBytes:[8,4,"uint"]},ss={magic:[0,4,"string"],offset1:[8,4,"uint"],offset2:[12,4,"uint"]},as={magic:[0,4,"string"],length:[4,4,"uint"],numEntries:[8,4,"uint"],codeLength:[12,4,"uint"]},ls={magic:[0,4,"string"],numEntries:[8,4,"uint"]},cs={flags:[8,4,"uint"],dataStart:[12,4,"uint"],keyLength:[16,4,"uint"],keyStart:[20,4,"uint"]},ds={1252:"windows-1252",65001:"utf-8"},gs={100:["creator","string",!0],101:["publisher"],103:["description"],104:["isbn"],105:["subject","string",!0],106:["date"],108:["contributor","string",!0],109:["rights"],110:["subjectCode","string",!0],112:["source","string",!0],113:["asin"],121:["boundary","uint"],122:["fixedLayout"],125:["numResources","uint"],126:["originalResolution"],127:["zeroGutter"],128:["zeroMargin"],129:["coverURI"],132:["regionMagnification"],201:["coverOffset","uint"],202:["thumbnailOffset","uint"],503:["title"],524:["language","string",!0],527:["pageProgressionDirection"]},hs={1:["ar","ar-SA","ar-IQ","ar-EG","ar-LY","ar-DZ","ar-MA","ar-TN","ar-OM","ar-YE","ar-SY","ar-JO","ar-LB","ar-KW","ar-AE","ar-BH","ar-QA"],2:["bg"],3:["ca"],4:["zh","zh-TW","zh-CN","zh-HK","zh-SG"],5:["cs"],6:["da"],7:["de","de-DE","de-CH","de-AT","de-LU","de-LI"],8:["el"],9:["en","en-US","en-GB","en-AU","en-CA","en-NZ","en-IE","en-ZA","en-JM",null,"en-BZ","en-TT","en-ZW","en-PH"],10:["es","es-ES","es-MX",null,"es-GT","es-CR","es-PA","es-DO","es-VE","es-CO","es-PE","es-AR","es-EC","es-CL","es-UY","es-PY","es-BO","es-SV","es-HN","es-NI","es-PR"],11:["fi"],12:["fr","fr-FR","fr-BE","fr-CA","fr-CH","fr-LU","fr-MC"],13:["he"],14:["hu"],15:["is"],16:["it","it-IT","it-CH"],17:["ja"],18:["ko"],19:["nl","nl-NL","nl-BE"],20:["no","nb","nn"],21:["pl"],22:["pt","pt-BR","pt-PT"],23:["rm"],24:["ro"],25:["ru"],26:["hr",null,"sr"],27:["sk"],28:["sq"],29:["sv","sv-SE","sv-FI"],30:["th"],31:["tr"],32:["ur"],33:["id"],34:["uk"],35:["be"],36:["sl"],37:["et"],38:["lv"],39:["lt"],41:["fa"],42:["vi"],43:["hy"],44:["az"],45:["eu"],46:["hsb"],47:["mk"],48:["st"],49:["ts"],50:["tn"],52:["xh"],53:["zu"],54:["af"],55:["ka"],56:["fo"],57:["hi"],58:["mt"],59:["se"],62:["ms"],63:["kk"],65:["sw"],67:["uz",null,"uz-UZ"],68:["tt"],69:["bn"],70:["pa"],71:["gu"],72:["or"],73:["ta"],74:["te"],75:["kn"],76:["ml"],77:["as"],78:["mr"],79:["sa"],82:["cy","cy-GB"],83:["gl","gl-ES"],87:["kok"],97:["ne"],98:["fy"]},As=(e,t)=>{const i=new e.constructor(e.length+t.length);return i.set(e),i.set(t,e.length),i},us=(e,t,i)=>{const n=new e.constructor(e.length+t.length+i.length);return n.set(e),n.set(t,e.length),n.set(i,e.length+t.length),n},ps=new TextDecoder,fs=e=>ps.decode(e),ms=e=>{if(!e)return;const t=e.byteLength,i=4===t?"getUint32":2===t?"getUint16":"getUint8";return new DataView(e)[i](0)},ws=(e,t)=>Object.fromEntries(Array.from(Object.entries(e)).map(([e,[i,n,o]])=>[e,("string"===o?fs:ms)(t.slice(i,i+n))])),Bs=e=>new TextDecoder(ds[e]),ys=(e,t=0)=>{let i=0,n=0;for(const o of e.subarray(t,t+4))if(i=i<<7|(127&o)>>>0,n++,128&o)break;return{value:i,length:n}},bs=e=>{let t=0;for(const i of e.subarray(-4))128&i&&(t=0),t=t<<7|127&i;return t},Cs=e=>{let t=0;for(;e>0;e>>=1)1&~e||t++;return t},vs=e=>{let t=0;for(;!(1&e);)e>>=1,t++;return t},Es=e=>{let t=[];for(let i=0;i>>3,s=3+(7&o);for(let e=0;e{const i=t+32,n=i>>3;let o=0n;for(let i=t>>3;i<=n;i++)o=o<<8n|BigInt(e[i]??0);return o>>8n-BigInt(7&i)&0xffffffffn},Is=async(e,t)=>{const i=await t(e),n=ws(os,i);if("INDX"!==n.magic)throw new Error("Invalid INDX record");const o=Bs(n.encoding),r=i.slice(n.length),s=ws(rs,r);if("TAGX"!==s.magic)throw new Error("Invalid TAGX section");const a=(s.length-12)/4,l=Array.from({length:a},(e,t)=>new Uint8Array(r.slice(12+4*t,12+4*t+4))),c={};let d=0;for(let i=0;i1){const{value:i,length:n}=ys(o,u);d.push([e,null,i,t]),u+=n}else d.push([e,1,null,t]);else d.push([e,a>>vs(i),null,t])}const p={};for(const[e,t,i,n]of d){const r=[];if(null!=t)for(let e=0;ems(i.slice(8*t,8*t+4))).map((e,t,i)=>[e,i[t+1]])}loadRecord(e){const t=this.#d[e];if(!t)throw new RangeError("Record index out of bounds");return this.#c.slice(...t).arrayBuffer()}async loadMagic(e){const t=this.#d[e][0];return fs(await this.#c.slice(t,t+4).arrayBuffer())}}class Qs extends Ds{#g=0;#h;#A;#u;#p;#f;constructor({unzlib:e}){super(),this.unzlib=e}async open(e){await super.open(e),this.headers=this.#m(await super.loadRecord(0)),this.#h=this.headers.mobi.resourceStart;let t=this.headers.mobi.version>=8;if(!t){const e=this.headers.exth?.boundary;if(e<4294967295)try{this.headers=this.#m(await super.loadRecord(e)),this.#g=e,t=!0}catch(e){console.warn(e),console.warn("Failed to open KF8; falling back to MOBI")}}return await this.#w(),t?new Os(this).init():new Ms(this).init()}#m(e){const t=ws(es,e),i=ws(ts,e);if("MOBI"!==i.magic)throw new Error("Missing MOBI header");const{titleOffset:n,titleLength:o,localeLanguage:r,localeRegion:s}=i;i.title=e.slice(n,n+o);const a=hs[r];i.language=a?.[s>>2]??a?.[0];const l=64&i.exthFlag?((e,t)=>{const{magic:i,count:n}=ws(ns,e);if("EXTH"!==i)throw new Error("Invalid EXTH header");const o=Bs(t),r={};let s=12;for(let t=0;t=8?ws(is,e):null}}async#w(){const{palmdoc:e,mobi:t}=this.headers;this.#A=Bs(t.encoding),this.#u=new TextEncoder;const{compression:i}=e;if(this.#p=1===i?e=>e:2===i?Es:17480===i?await(async(e,t)=>{const i=await t(e.huffcdic),{magic:n,offset1:o,offset2:r}=ws(ss,i);if("HUFF"!==n)throw new Error("Invalid HUFF record");const s=Array.from({length:256},(e,t)=>o+4*t).map(e=>ms(i.slice(e,e+4))).map(e=>[128&e,31&e,e>>>8]),a=[null].concat(Array.from({length:32},(e,t)=>r+8*t).map(e=>[ms(i.slice(e,e+4)),ms(i.slice(e+4,e+8))])),l=[];for(let i=1;i{let t=new Uint8Array;const i=8*e.byteLength;for(let n=0;n>>24];if(!r){for(;o>>>32-di)break;const h=g-(o>>>32-d);let[A,u]=l[h];u||(A=c(A),l[h]=[A,!0]),t=As(t,A)}return t};return c})(t,this.loadRecord.bind(this)):null,!this.#p)throw new Error("Unknown compression type");const{trailingFlags:n}=t,o=1&n,r=Cs(n>>>1);this.#f=e=>{for(let t=0;tnew Uint8Array(e)).then(this.#f).then(this.#p)}async loadResource(e){const t=await super.loadRecord(this.#h+e),i=fs(t.slice(0,4));return"FONT"===i?(async(e,t)=>{const{flags:i,dataStart:n,keyLength:o,keyStart:r}=ws(cs,e),s=new Uint8Array(e.slice(n));if(2&i){const t=16===o?1024:1040,i=new Uint8Array(e.slice(r,r+o)),n=Math.min(t,s.length);for(var a=0;a{const{table:i,cncx:n}=await Is(e,t),o=i.map(({tagMap:e},t)=>({index:t,offset:e[1]?.[0],size:e[2]?.[0],label:n[e[3]]??"",headingLevel:e[4]?.[0],pos:e[6],parent:e[21]?.[0],firstChild:e[22]?.[0],lastChild:e[23]?.[0]})),r=e=>(null==e.firstChild||(e.children=o.filter(t=>t.parent===e.index).map(r)),e);return o.filter(e=>0===e.headingLevel).map(r)})(e,this.loadRecord.bind(this))}getMetadata(){const{mobi:e,exth:t}=this.headers;return{identifier:e.uid.toString(),title:Zr(t?.title||this.decode(e.title)),author:t?.creator?.map(Zr),publisher:Zr(t?.publisher),language:t?.language??e.language,published:t?.date,description:Zr(t?.description),subject:t?.subject?.map(Zr),rights:Zr(t?.rights)}}async getCover(){const{exth:e}=this.headers,t=e?.coverOffset<4294967295?e?.coverOffset:e?.thumbnailOffset<4294967295?e?.thumbnailOffset:null;if(null!=t){const e=await this.loadResource(t);return new Blob([e])}}}const ks=/<\s*(?:mbp:)?pagebreak[^>]*>/gi,Ss=/<[^<>]+filepos=['"]{0,1}(\d+)[^<>]*>/gi;class Ms{parser=new DOMParser;serializer=new XMLSerializer;#B=new Map;#y=new Map;#n=new Map;#b;#C=[];#v=$r.HTML;constructor(e){this.mobi=e}async init(){const e=[];for(let t=0;te+t.byteLength,0),i=new Uint8Array(t);e.reduce((e,t)=>(i.set(new Uint8Array(t),e),e+t.byteLength),0);const n=function(e){let t="";for(let i=0;ie.index)).map((e,t,n)=>{const o=n[t+1]??i.length;return{book:this,raw:i.subarray(e,o)}}).map((e,t,i)=>(e.start=i[t-1]?.end??0,e.end=e.start+e.raw.byteLength,e)),this.sections=this.#b.map((e,t)=>({id:t,load:()=>this.loadSection(e),createDocument:()=>this.createDocument(e),resolveHref:e=>this.resolveHref(e),size:e.end-e.start}));try{this.landmarks=await this.getGuide();const e=this.landmarks.find(({type:e})=>e?.includes("toc"))?.href;if(e){const{index:t}=this.resolveHref(e),i=await this.sections[t].createDocument();let n,o=0,r=0;const s=new Map,a=new Map;this.toc=Array.from(i.querySelectorAll("a[filepos]")).reduce((e,t)=>{const i=(e=>{let t=0;for(;e;){const i=e.parentElement;if(i){const e=i.tagName.toLowerCase();"p"===e?t+=1.5:"blockquote"===e&&(t+=2)}e=i}return t})(t),l={label:t.innerText?.trim()??"",href:`#filepos${t.getAttribute("filepos")}`},c=i>r?o+1:i===r?o:s.get(i)??Math.max(0,o-1);if(c>o)n?(n.subitems??=[],n.subitems.push(l),a.set(c,n)):e.push(l);else{const t=a.get(c);t?t.subitems.push(l):e.push(l)}return n=l,o=c,r=i,s.set(i,c),e},[])}}catch(e){console.warn(e)}return this.#C=[...new Set(Array.from(n.matchAll(Ss),e=>e[1]))].map(e=>({filepos:e,number:Number(e)})).sort((e,t)=>e.number-t.number),this.metadata=this.mobi.getMetadata(),this.getCover=this.mobi.getCover.bind(this.mobi),this}async getGuide(){const e=await this.createDocument(this.#b[0]);return Array.from(e.getElementsByTagName("reference"),e=>({label:e.getAttribute("title"),type:e.getAttribute("type")?.split(/\s/),href:`#filepos${e.getAttribute("filepos")}`}))}async loadResource(e){if(this.#B.has(e))return this.#B.get(e);const t=await this.mobi.loadResource(e),i=URL.createObjectURL(new Blob([t]));return this.#B.set(e,i),i}async loadRecindex(e){return this.loadResource(Number(e)-1)}async replaceResources(e){for(const t of e.querySelectorAll("img[recindex]")){const e=t.getAttribute("recindex");try{t.src=await this.loadRecindex(e)}catch(t){console.warn(`Failed to load image ${e}`)}}for(const t of e.querySelectorAll("[mediarecindex]")){const e=t.getAttribute("mediarecindex"),i=t.getAttribute("recindex");try{t.src=await this.loadRecindex(e),i&&(t.poster=await this.loadRecindex(i))}catch(t){console.warn(`Failed to load media ${e}`)}}for(const t of e.querySelectorAll("[filepos]")){const e=t.getAttribute("filepos");t.href=`#filepos${e}`}}async loadText(e){if(this.#y.has(e))return this.#y.get(e);const{raw:t}=e,i=this.#C.filter(({number:t})=>t>=e.start&&t({...t,offset:t.number-e.start}));let n=t;i.length&&(n=t.subarray(0,i[0].offset),i.forEach(({filepos:e,offset:o},r)=>{const s=i[r+1],a=this.mobi.encode(``);n=us(n,a,t.subarray(o,s?.offset))}));const o=this.mobi.decode(n).replaceAll(ks,"");return this.#y.set(e,o),o}async createDocument(e){const t=await this.loadText(e);return this.parser.parseFromString(t,this.#v)}async loadSection(e){if(this.#n.has(e))return this.#n.get(e);const t=await this.createDocument(e),i=t.createElement("style");t.head.append(i),i.append(t.createTextNode("blockquote {\n margin-block-start: 0;\n margin-block-end: 0;\n margin-inline-start: 1em;\n margin-inline-end: 0;\n }")),await this.replaceResources(t);const n=this.serializer.serializeToString(t),o=URL.createObjectURL(new Blob([n],{type:this.#v}));return this.#n.set(e,o),o}resolveHref(e){const t=e.match(/#filepos(.*)/)[1],i=Number(t);return{index:this.#b.findIndex(e=>e.end>i),anchor:e=>e.getElementById(`filepos${t}`)}}resolveHrefIndex(e){const t=e.match(/#filepos(.*)/)[1],i=Number(t);return{index:this.#b.findIndex(e=>e.end>i)}}splitTOCHref(e){const t=e.match(/#filepos(.*)/)[1],i=Number(t);return[this.#b.findIndex(e=>e.end>i),`filepos${t}`]}getTOCFragment(e,t){return e.getElementById(t)}isExternal(e){return/^(?!blob|filepos)\w+:/i.test(e)}destroy(){for(const e of this.#B.values())URL.revokeObjectURL(e);for(const e of this.#n.values())URL.revokeObjectURL(e)}}const Fs=/kindle:(flow|embed):(\w+)(?:\?mime=(\w+\/[-+.\w]+))?/,Ls=/kindle:pos:fid:(\w+):off:(\w+)/,Ts=e=>{const[t,i]=e.match(Ls).slice(1);return{fid:parseInt(t,32),off:parseInt(i,32)}},Rs=(e=0,t=0)=>`kindle:pos:fid:${e.toString(32).toUpperCase().padStart(4,"0")}:off:${t.toString(32).toUpperCase().padStart(10,"0")}`,Hs=e=>{const t=e.match(/\s(id|name|aid)\s*=\s*['"]([^'"]*)['"]/i);if(!t)return;const[,i,n]=t;return`[${i}="${CSS.escape(n)}"]`},Ys=e=>{for(const t of e){if("page-spread-left"===t||"rendition:page-spread-left"===t)return"left";if("page-spread-right"===t||"rendition:page-spread-right"===t)return"right";if("rendition:page-spread-center"===t)return"center"}};class Os{parser=new DOMParser;serializer=new XMLSerializer;#n=new Map;#E=new Map;#x=new Map;#I={};#b;#D;#Q=new Uint8Array;#k=new Uint8Array;#S=-1;#M=-1;#v=$r.XHTML;#F=new Map;constructor(e){this.mobi=e}async init(){const e=this.mobi.loadRecord.bind(this.mobi),{kf8:t}=this.mobi.headers;try{const i=await e(t.fdst),n=ws(ls,i);if("FDST"!==n.magic)throw new Error("Missing FDST record");const o=Array.from({length:n.numEntries},(e,t)=>12+8*t).map(e=>[ms(i.slice(e,e+4)),ms(i.slice(e+4,e+8))]);this.#I.fdstTable=o,this.#D=o[o.length-1][1]}catch{}const i=(await Is(t.skel,e)).table.map(({name:e,tagMap:t},i)=>({index:i,name:e,numFrag:t[1][0],offset:t[6][0],length:t[6][1]})),n=await Is(t.frag,e),o=n.table.map(({name:e,tagMap:t})=>({insertOffset:parseInt(e),selector:n.cncx[t[2][0]],index:t[4][0],offset:t[6][0],length:t[6][1]}));this.#I.skelTable=i,this.#I.fragTable=o,this.#b=i.reduce((e,t)=>{const i=e[e.length-1],n=i?.fragEnd??0,r=n+t.numFrag,s=o.slice(n,r),a=t.length+s.map(e=>e.length).reduce((e,t)=>e+t),l=(i?.totalLength??0)+a;return e.concat({skel:t,frags:s,fragEnd:r,length:a,totalLength:l})},[]);const r=await this.getResourcesByMagic(["RESC","PAGE"]),s=new Map;if(r.RESC){const e=await this.mobi.loadRecord(r.RESC),t=this.mobi.decode(e.slice(16)).replace(/\0/g,""),i=t.search(/\?>/),n=`${t.slice(i)}`,o=this.parser.parseFromString(n,$r.XML);for(const e of o.querySelectorAll("spine > itemref")){const t=parseInt(e.getAttribute("skelid"));s.set(t,Ys(e.getAttribute("properties")?.split(" ")??[]))}}this.sections=this.#b.map((e,t)=>e.frags.length?{id:t,load:()=>this.loadSection(e),createDocument:()=>this.createDocument(e),resolveHref:e=>this.resolveHref(e),size:e.length,pageSpread:s.get(t)}:{linear:"no"});try{const e=await this.mobi.getNCX(),t=({label:e,pos:i,children:n})=>{const[o,r]=i,s=Rs(o,r),a=this.#E.get(o);return a?a.push(r):this.#E.set(o,[r]),{label:Zr(e),href:s,subitems:n?.map(t)}};this.toc=e?.map(t),this.landmarks=await this.getGuide()}catch(e){console.warn(e)}const{exth:a}=this.mobi.headers;return this.dir=a.pageProgressionDirection,this.rendition={layout:"true"===a.fixedLayout?"pre-paginated":"reflowable",viewport:Object.fromEntries(a.originalResolution?.split("x")?.slice(0,2)?.map((e,t)=>[t?"height":"width",e])??[])},this.metadata=this.mobi.getMetadata(),this.getCover=this.mobi.getCover.bind(this.mobi),this}async getResourcesByMagic(e){const t={},i=this.mobi.headers.kf8.resourceStart,n=this.mobi.pdb.numRecords;for(let o=i;oe===i);n&&(t[n]=o)}catch{}return t}async getGuide(){const e=this.mobi.headers.kf8.guide;if(e<4294967295){const t=this.mobi.loadRecord.bind(this.mobi),{table:i,cncx:n}=await Is(e,t);return i.map(({name:e,tagMap:t})=>({label:n[t[1][0]]??"",type:e?.split(/\s/),href:Rs(t[6]?.[0]??t[3]?.[0])}))}}async loadResourceBlob(e){let{resourceType:t,id:i,type:n}=(e=>{const[t,i,n]=e.match(Fs).slice(1);return{resourceType:t,id:parseInt(i,32),type:n}})(e);"image/jpg"===n&&(n="image/jpeg");const o="flow"===t?await this.loadFlow(i):await this.mobi.loadResource(i-1),r=[$r.XHTML,$r.HTML,$r.CSS,$r.SVG].includes(n)?await this.replaceResources(this.mobi.decode(o)):o,s=n===$r.SVG?this.parser.parseFromString(r,n):null;return[new Blob([r],{type:n}),s?.getElementsByTagNameNS("http://www.w3.org/2000/svg","image")?.length?s.documentElement:null]}async loadResource(e){if(this.#n.has(e))return this.#n.get(e);const[t,i]=await this.loadResourceBlob(e),n=i?e:URL.createObjectURL(t);return i&&this.#F.set(n,i),this.#n.set(e,n),n}replaceResources(e){return(async(e,t,i)=>{const n=[];e.replace(t,(...e)=>(n.push(e),null));const o=[];for(const e of n)o.push(await i(...e));return e.replace(t,()=>o.shift())})(e,new RegExp(Fs,"g"),this.loadResource.bind(this))}async loadRaw(e,t){const i=t-this.#Q.length,n=null==this.#D?1/0:this.#D-this.#k.length-e;if(i<0||ie;){const e=this.mobi.headers.palmdoc.numTextRecords-1-++this.#M,t=await this.mobi.loadText(e);this.#k=As(t,this.#k)}const o=this.#D-this.#k.length;return this.#k.slice(e-o,t-o)}loadFlow(e){if(e<4294967295)return this.loadRaw(...this.#I.fdstTable[e])}async loadText(e){const{skel:t,frags:i,length:n}=e,o=await this.loadRaw(t.offset,t.offset+n);let r=o.slice(0,t.length);for(const e of i){const i=e.insertOffset-t.offset,n=t.length+e.offset,s=o.slice(n,n+e.length);r=us(r.slice(0,i),s,r.slice(i));const a=this.#E.get(e.index);if(a)for(const t of a){const i=this.mobi.decode(s.slice(t)),n=Hs(i);this.#L(e.index,t,n)}}return this.mobi.decode(r)}async createDocument(e){const t=await this.loadText(e);return this.parser.parseFromString(t,this.#v)}async loadSection(e){if(this.#n.has(e))return this.#n.get(e);const t=await this.loadText(e),i=await this.replaceResources(t);let n=this.parser.parseFromString(i,this.#v);n.querySelector("parsererror")&&(this.#v=$r.HTML,n=this.parser.parseFromString(i,this.#v));for(const[e,t]of this.#F)for(const i of n.querySelectorAll(`img[src="${e}"]`))i.replaceWith(t);const o=URL.createObjectURL(new Blob([this.serializer.serializeToString(n)],{type:this.#v}));return this.#n.set(e,o),o}getIndexByFID(e){return this.#b.findIndex(t=>t.frags.some(t=>t.index===e))}#L(e,t,i){const n=this.#x.get(e);if(n)n.set(t,i);else{const n=new Map;this.#x.set(e,n),n.set(t,i)}}async resolveHref(e){const{fid:t,off:i}=Ts(e),n=this.getIndexByFID(t);if(n<0)return;const o=this.#x.get(t)?.get(i);if(o)return{index:n,anchor:e=>e.querySelector(o)};const{skel:r,frags:s}=this.#b[n],a=s.find(e=>e.index===t),l=r.offset+r.length+a.offset,c=await this.loadRaw(l,l+a.length),d=this.mobi.decode(c.slice(i)),g=Hs(d);this.#L(t,i,g);return{index:n,anchor:e=>e.querySelector(g)}}async resolveHrefIndex(e){const{fid:t,off:i}=Ts(e),n=this.getIndexByFID(t);if(!(n<0))return{index:n}}splitTOCHref(e){const t=Ts(e);return[this.getIndexByFID(t.fid),t]}getTOCFragment(e,{fid:t,off:i}){const n=this.#x.get(t)?.get(i);return e.querySelector(n)}isExternal(e){return/^(?!blob|kindle)\w+:/i.test(e)}destroy(){for(const e of this.#n.values())URL.revokeObjectURL(e)}}class Gs extends Ni{constructor(e,t){super(Object.assign(Object.assign({},t),{format:"MOBI"})),this.mobiBuffer=e}renderTo(e){return new Promise((t,i)=>d(this,void 0,void 0,function*(){this.element=e,this.book||(yield this.parse());let i=new oe(this.book);this.chapterList=yield i.getChapter(this.book.toc),this.chapterDocList=yield i.getChapterDoc(),K(e,this.isAllowScript);let n=this.getDocument();n&&(ee(e,this.readerMode,n),t())}))}parse(){return d(this,void 0,void 0,function*(){try{let e=new Blob([this.mobiBuffer]),t=new File([e],"book",{lastModified:(new Date).getTime(),type:e.type});if(!(yield(async e=>"BOOKMOBI"===fs(await e.slice(60,68).arrayBuffer()))(t)))throw new Error("Not a valid MOBI file");this.book=yield new Qs({unzlib:o}).open(t)}catch(e){throw console.error(e),e}})}preCache(){return d(this,void 0,void 0,function*(){return this.book||(yield this.parse()),yield ji(this.book)})}getMetadata(){return d(this,void 0,void 0,function*(){try{this.book||(yield this.parse());let e=new oe(this.book);return yield e.getMetadata()}catch(e){throw console.error(e),e}})}}const Ns=e=>`${Ps()?".":""}/lib/pdfjs/${e}`,Us=window.pdfjsLib,Ws=async e=>await(await fetch(e)).text(),Ps=()=>"undefined"!=typeof window&&"object"==typeof window.process&&"renderer"===window.process.type||(!("undefined"==typeof process||"object"!=typeof process.versions||!process.versions.electron)||"object"==typeof navigator&&"string"==typeof navigator.userAgent&&navigator.userAgent.indexOf("Electron")>=0);function js(e,t="",i=""){return new Promise(n=>{vex.dialog.prompt({message:e,placeholder:t,value:i,callback:function(e){n(e)}})})}const zs=async()=>await Ws(Ns("text_layer_builder.css")),Ks=async()=>await Ws(Ns("annotation_layer_builder.css")),qs=async(e,t)=>{try{const i=e.getViewport({scale:1});if(t){const t=document.createElement("canvas");t.height=i.height,t.width=i.width;const n=t.getContext("2d");return await e.render({canvasContext:n,viewport:i}).promise,new Promise(e=>t.toBlob(e))}return URL.createObjectURL(new Blob([`\n \n \n \n \n \n

\n
\n
\n
\n \n
\n
\n`],{type:"text/html"}))}catch(e){console.error(e)}},Js=e=>({label:e.title,href:e.dest?JSON.stringify(e.dest):null,subitems:e.items.length?e.items.map(Js):null});function Vs(e="need"){return(navigator.language?.toLowerCase()||"en").startsWith("zh")?"need"===e?"请输入PDF密码:":"密码错误,请重新输入:":"need"===e?"Need password to open this PDF:":"Incorrect password, please try again:"}const Xs=async(e,t)=>{let i;for(;;){const n=new Us.PDFDataRangeTransport(e.size,[]);n.requestDataRange=(t,i)=>{e.slice(t,i).arrayBuffer().then(e=>{n.onDataRange(t,e)})};try{i=await Us.getDocument({range:n,cMapUrl:Ns("cmaps/"),standardFontDataUrl:Ns("standard_fonts/"),isEvalSupported:!1,password:t}).promise;break}catch(e){if("PasswordException"!==e.name)throw e;if(e.code===Us.PasswordResponses.NEED_PASSWORD?Ps()?(t=await js(Vs("need"),"",""),vex.closeAll()):t=prompt(Vs("need")):e.code===Us.PasswordResponses.INCORRECT_PASSWORD&&(Ps()?(t=await js(Vs("incorrect"),"",""),vex.closeAll()):t=prompt(Vs("incorrect"))),!t)throw new Error("PDF loading failed: no password provided")}}let n=!1,o=i.numPages>0?await i.getPage(Math.floor(i.numPages/2)+1):null;if(o){const e=await o.getTextContent();if(n=0===e.items.length,e.items.length>0){n=e.items.reduce((e,t)=>e+t.str.trim().length,0)<45}o.cleanup()}const r={rendition:{layout:"pre-paginated"}},{metadata:s,info:a}=await i.getMetadata()??{};r.metadata={title:s?.get("dc:title")??a?.Title,author:s?.get("dc:creator")??a?.Author,contributor:s?.get("dc:contributor"),description:s?.get("dc:description")??a?.Subject,language:s?.get("dc:language"),publisher:s?.get("dc:publisher"),subject:s?.get("dc:subject"),identifier:s?.get("dc:identifier"),source:s?.get("dc:source"),rights:s?.get("dc:rights")},r.metadata.description=(r.metadata.description?r.metadata.description:"")+(n?"\nscanned PDF":"")+(t?"\nprotected PDF: #"+t+"#":"");const l=await i.getOutline();r.toc=l?.map(Js);const c=new Map;return r.sections=Array.from({length:i.numPages}).map((e,t)=>({id:t,load:async()=>{const e=c.get(t);if(e)return e;const n=await qs(await i.getPage(t+1),!1);return c.set(t,n),n},unload:async()=>{(await i.getPage(t+1)).cleanup()},render:async(e,n,o,r,s)=>{await(async(e,t,i,n,o,r,s)=>{try{let a="ios"===window.platform?1:window.visualViewport?.scale||1,l=window.devicePixelRatio*a;if("ios"===window.platform){const t=l,i=2,o=3145728;l=Math.min(t,i);const r=e.getViewport({scale:n*l}),s=r.width*r.height;s>o&&(l*=Math.sqrt(o/s))}const c=n*l;let d=i.querySelector("#koodoPDFLayer");d.style.visibility="hidden",d.style.transform=`scale(${1/l})`,d.style.transformOrigin="top left",d.style.setProperty("--scale-factor",c);const g=e.getViewport({scale:c});d.style.width=`${g.width}px`,d.style.height=`${g.height}px`;const h=document.createElement("canvas");h.height=g.height,h.width=g.width;const A=h.getContext("2d");try{"yes"===s?await e.render({canvasContext:A,viewport:g}).promise:await e.render({canvasContext:A,viewport:g,background:"rgba(0,0,0,0)"}).promise}catch(e){console.error(e)}i.querySelector("#canvas").replaceChildren(i.adoptNode(h)),d.style.overflow="hidden";const u=i.querySelector("#textLayer");try{const t=new Us.TextLayer({textContentSource:await e.streamTextContent(),container:u,viewport:g});await t.render()}catch(e){console.error(e)}for(const e of document.querySelectorAll(".hiddenCanvasElement"))Object.assign(e.style,{position:"absolute",top:"0",left:"0",width:"0",height:"0",display:"none"});const p=document.createElement("div");p.className="endOfContent",u.append(p);let f=!1,m=null;u.onpointerdown=()=>{let e=i?.defaultView;if(e.getSelection().toString().trim().length>0)return u.classList.remove("selecting"),f=!1,p.remove(),void u.append(p);u.classList.add("selecting"),f=!0},"yes"!==o?(u.onpointerup=()=>{u.classList.remove("selecting"),f=!1,p.remove(),u.append(p)},u.onpointermove=e=>{if(!f)return;let t=e.target.closest(".textLayer > span");const i=null!==t;u.style.cursor=i?"text":"default",i&&(m=t),p.remove(),u.insertBefore(p,m)}):i.addEventListener("selectionchange",e=>{if(!f)return;let t=i?.defaultView;var n=t.getSelection().getRangeAt(0).endContainer;let o=n.nodeType===Node.TEXT_NODE?n.parentNode:n;o=o.closest(".textLayer > span");const r=null!==o;u.style.cursor=r?"text":"default",r&&(m=o),p.remove(),u.insertBefore(p,m.nextSibling?m.nextSibling:m)});const w=i.querySelector("#annotationLayer");try{await new Us.AnnotationLayer({page:e,viewport:g,div:w}).render({annotations:await e.getAnnotations(),linkService:{goToDestination:async e=>{try{const i="string"==typeof e?await t.getDestination(e):e;if(!i||!Array.isArray(i)||0===i.length)return void console.warn("Invalid destination:",e);const n=await t.getPageIndex(i[0]);r.goToChapterDocIndex(n)}catch(e){console.error("Error navigating to destination:",e)}},getDestinationHash:e=>JSON.stringify(e),addLinkAttributes:(e,t)=>e.href=t}})}catch(e){console.error(e)}}catch(e){console.error(e)}})(await i.getPage(t+1),i,e,n,o,r,s)},getTextContent:async()=>{const e=await i.getPage(t+1);return await e.getTextContent()},size:1e3,getDimension:async()=>{let e=(await i.getPage(t+1)).getViewport({scale:1});return{width:e.width,height:e.height}},getPage:async()=>await i.getPage(t+1)})),r.isExternal=e=>/^\w+:/i.test(e),r.resolveHref=async e=>{const t=JSON.parse(e),n="string"==typeof t?await i.getDestination(t):t;return{index:await i.getPageIndex(n[0])}},r.resolveHrefIndex=async e=>{const t=JSON.parse(e),n="string"==typeof t?await i.getDestination(t):t,o=await i.getPageIndex(n[0]);return{index:o||0}},r.splitTOCHref=async e=>{const t=JSON.parse(e),n="string"==typeof t?await i.getDestination(t):t;return[await i.getPageIndex(n[0]),null]},r.getTOCFragment=e=>e.documentElement,r.getCover=async()=>qs(await i.getPage(1),!0),r.destroy=()=>i.destroy(),r};class Zs extends Ni{constructor(e,t){super(Object.assign(Object.assign({},t),{convertChinese:"Default",format:"PDF"})),this.isStartFromEven="no",this.isKeepPDFBackground="no",this.pdfCrop={top:0,bottom:0,left:0,right:0},this.password="",this.pdfScale=0,this.scale=1,this.enablePDFSelectionOptimization="no",this.scrollPDFInterval=null,this.templateChapterDocIndex=0,this.pdfTextLineHeightRecord={},this.pdfTextLineHeightFixed=null,this.fabricCanvasMap=new Map,this.fabricHistoryMap=new Map,this.fabricHistoryLock=new Set,this.fabricSyncListenerMap=new Map,this.annotationStyle="brush",this.brushColor="#ff0000",this.brushWidth=2,this.highlighterColor="#ffff00",this.highlighterWidth=24,this.highlighterOpacity=.4,this.shapeType="rect",this.shapeColor="#ff0000",this.shapeWidth=2,this.textSize=24,this.textFont="sans-serif",this.textColor="#ff0000",this.isDrawing="no",this.getPdfScale=()=>d(this,void 0,void 0,function*(){if(this.pdfScale&&this.pdfScale>0)return this.pdfScale;let e=this.getDocument();if("scroll"===this.readerMode&&(e=this.getSubDocument(this.templateChapterDocIndex)),!e)return 1;let{width:t,height:i}=yield this.chapterDocList[this.templateChapterDocIndex].text.getDimension(),n=e.body.clientWidth,o=this.element.clientHeight;if("double"===this.readerMode){let e="double"===this.readerMode?2:1,t=Math.floor(this.element.clientWidth/12);n=(n-(t%2==0?t:t-1))/e}let r=Math.min(n/t,o/i);return"scroll"===this.readerMode&&(n-=10,r=n/t),this.pdfScale=r,r}),this.pdfBuffer=e,this.isStartFromEven=t.isStartFromEven||"no",this.pdfCrop=t.pdfCrop||{top:0,bottom:0,left:0,right:0},this.isKeepPDFBackground=t.isKeepPDFBackground||"no",this.password=t.password||"",this.scale=t.scale||1,this.backgroundColor=t.backgroundColor||"#ffffff",this.isScannedPDF=t.isScannedPDF||"no",this.platform=t.platform||"web",this.enablePDFSelectionOptimization=t.enablePDFSelectionOptimization||"no",this.brushColor=t.brushColor||"#ff0000",this.brushWidth=t.brushWidth||2,this.highlighterColor=t.highlighterColor||"#ffff00",this.highlighterWidth=t.highlighterWidth||24,this.highlighterOpacity=null!=t.highlighterOpacity?t.highlighterOpacity:.4,this.shapeType=t.shapeType||"rect",this.shapeColor=t.shapeColor||"#ff0000",this.shapeWidth=t.shapeWidth||2,this.textSize=null!=t.textSize?t.textSize:24,this.textFont=t.textFont||"sans-serif",this.textColor=t.textColor||"#ff0000",this.isDrawing=t.isDrawing||"no"}renderTo(e){return new Promise((t,i)=>d(this,void 0,void 0,function*(){this.element=e,this.book||(yield this.parse());let i,n=new oe(this.book);this.chapterList=yield n.getChapter(this.book.toc),this.chapterDocList=yield n.getChapterDoc(),"yes"===this.isStartFromEven&&"double"===this.readerMode&&(this.chapterDocList=[{label:"",text:{load:()=>d(this,void 0,void 0,function*(){return""}),render:()=>d(this,void 0,void 0,function*(){}),unload:()=>d(this,void 0,void 0,function*(){}),getPage:()=>d(this,void 0,void 0,function*(){return null}),getDimension:()=>d(this,void 0,void 0,function*(){return{width:0,height:0}}),getScale:()=>d(this,void 0,void 0,function*(){return 1}),getPageCount:()=>d(this,void 0,void 0,function*(){return 0})},href:""},...this.chapterDocList]),"single"===this.readerMode&&Math.abs(this.scale)>1.4&&(this.scale=1.4),document.body.clientWidth*Math.abs(this.scale)-.4*document.body.clientWidth>document.body.clientWidth&&"double"!==this.readerMode?K(e,this.isAllowScript,this.scale):K(e,this.isAllowScript);let o=0,r=yield this.getTemplateChapterDoc();i=r.dimension,o=r.index,this.templateChapterDocIndex=o;let s=this.getDocument();if(!s)return;yield((e,t,i,n,o)=>d(void 0,void 0,void 0,function*(){const r=document.createDocumentFragment();for(let s=0;s{a&&clearTimeout(a),a=setTimeout(()=>d(this,void 0,void 0,function*(){yield this.handlePDFScrollEvent(s),yield this.record()}),100)}):s.addEventListener("scroll",e=>{a&&clearTimeout(a),a=setTimeout(()=>d(this,void 0,void 0,function*(){yield this.handlePDFScrollEvent(s),yield this.record()}),200)}),((e,t,i)=>{if("scroll"===t)return;let n="double"===t?2:1,o=Math.floor(i.body.clientWidth/12),r=o%2==0?o:o-1;i.documentElement.setAttribute("style",`${"double"===t?"position: absolute;":""}height: 100%;overflow-y: hidden;overflow-X: hidden;padding-left: 0px;padding-right: 0px;margin: 0px;box-sizing: border-box;touch-action: manipulation; overscroll-behavior: none;max-width: inherit;column-fill: auto;column-gap: ${r}px; column-width: ${(i.body.clientWidth-r)/n}px;`),i.body.setAttribute("style",`margin: 0px !important; padding: 0px !important;column-fill: auto;column-gap: ${r}px; column-width: ${(i.body.clientWidth-r)/n}px;`)})(0,this.readerMode,s),t()}))}getTemplateChapterDoc(){return d(this,void 0,void 0,function*(){const e=this.chapterDocList.length;let t=[1,Math.floor(e/4),Math.floor(e/2),Math.floor(3*e/4),e-1].filter(t=>t>=0&&td(this,void 0,void 0,function*(){return{index:e,dimension:yield this.chapterDocList[e].text.getDimension()}})))).map(e=>({index:e.index,ratio:e.dimension.height/e.dimension.width,dimension:e.dimension})),n=new Map,o=new Map;i.forEach(e=>{const t=Math.round(1e3*e.ratio)/1e3;n.set(t,(n.get(t)||0)+1);const i=Math.round(e.dimension.width);o.set(i,(o.get(i)||0)+1)});let r=0;n.forEach(e=>{e>r&&(r=e)});let s=0;o.forEach(e=>{e>s&&(s=e)});const a=i.filter(e=>{const t=Math.round(1e3*e.ratio)/1e3,i=Math.round(e.dimension.width);return n.get(t)===r&&o.get(i)===s});let l={count:r,dimension:null,index:0,ratio:0};return a.forEach(e=>{e.ratio>l.ratio&&(l={count:r,dimension:e.dimension,index:e.index,ratio:e.ratio})}),l.dimension||i.forEach(e=>{const t=Math.round(1e3*e.ratio)/1e3;n.get(t)===r&&e.ratio>l.ratio&&(l={count:r,dimension:e.dimension,index:e.index,ratio:e.ratio})}),l})}autoScrollPDF(e){return d(this,void 0,void 0,function*(){let t=this.getDocument();this.scrollPDFInterval&&(clearInterval(this.scrollPDFInterval),this.scrollPDFInterval=null),"no"!==e&&"scroll"===this.readerMode&&(this.scrollPDFInterval=setInterval(()=>d(this,void 0,void 0,function*(){t&&(yield this.handlePDFScrollEvent(t))}),1e3))})}handlePDFScrollEvent(e){return d(this,void 0,void 0,function*(){let t=e.querySelectorAll(".pdf-container");for(let i=0;i0&&(yield this.goToChapter(e,this.chapterDocList[e].href,this.chapterDocList[e].label))})}getPageSize(e){let t=this.getDocument();if(!t)return;let i="double"===this.readerMode?2:1,n=Math.floor(t.body.clientWidth/12),o=n%2==0?n:n-1,r=t.querySelectorAll("iframe")[0],s=null==r?void 0:r.getBoundingClientRect().height,a=0;if(void 0!==e){let i=t.querySelector("#pdf-container-"+e);i&&(a=i.getBoundingClientRect().top)}return{width:t.body.clientWidth,height:this.element.clientHeight,left:G(this.element),top:N(this.element),offsetTop:a,scrollTop:this.element.scrollTop,scrollLeft:this.element.scrollWidth/2-this.element.clientWidth/2,sectionWidth:(t.body.clientWidth-o)/i,sectionHeight:s,gap:o}}goToChapter(e,t,i){return d(this,void 0,void 0,function*(){"double"===this.readerMode&&e%2==1&&e--;let t=this.getDocument(),i=this.getIframe();t&&i&&(yield this.renderPdfPage(e),yield mi(parseInt(e),this.readerMode,t),yield this.recordByChapter(e))})}getPositionByChapter(e){return{percentage:e/this.chapterDocList.length,chapterDocIndex:e+"",chapterHref:this.chapterDocList[e].href,chapterTitle:this.chapterDocList[e].label,text:""}}goToPercentage(e){return d(this,void 0,void 0,function*(){if(this.chapterDocList.length>0){let t=1===e?this.chapterDocList.length-1:Math.floor(this.chapterDocList.length*e);yield this.goToChapter(t,this.chapterDocList[t].href,this.chapterDocList[t].label)}})}goToPosition(e){return d(this,void 0,void 0,function*(){let i=this.getDocument(),n=this.getIframe();if(!i||!n)return;let o=JSON.parse(e);void 0===o.chapterDocIndex&&(o.chapterDocIndex=0),this.tempLocation={text:o.text,chapterTitle:o.chapterTitle,chapterDocIndex:o.chapterDocIndex,chapterHref:o.chapterHref,count:o.count,page:o.page,percentage:o.percentage};let{chapterTitle:r,chapterDocIndex:s,chapterHref:a}=o;"double"===this.readerMode&&s%2==1&&s--,yield this.renderPdfPage(parseInt(s)),"scroll"===this.readerMode&&(n.height=i.body.scrollHeight+"px",n.height=i.body.scrollHeight+300+"px"),yield mi(parseInt(s),this.readerMode,i),t.init(),yield this.recordByChapter(parseInt(s)),this.addPageAnimation(this.backgroundColor)})}prev(e){return d(this,void 0,void 0,function*(){let t=this.getDocument(),i=this.getIframe();t&&i&&("scroll"===this.readerMode?this.element.scrollBy({left:0,top:-(this.element.clientHeight-50),behavior:"smooth"}):("ios"===e?yield yi(this.element,this.animation,1,t,this.flipToNextPage,this.flipToPrevPage,this.isMobile,parseInt(this.tempLocation.chapterDocIndex||"0"),this.readerMode):yield wt(this.element,this.animation,1,t,this.flipToNextPage,this.flipToPrevPage,this.isMobile),yield this.renderPdfPage(parseInt(this.tempLocation.chapterDocIndex)-("double"===this.readerMode?2:1))),yield this.record())})}next(e){return d(this,void 0,void 0,function*(){let t=this.getDocument(),i=this.getIframe();t&&i&&("scroll"===this.readerMode?this.element.scrollBy({left:0,top:this.element.clientHeight-50,behavior:"smooth"}):("ios"===e?yield yi(this.element,this.animation,-1,t,this.flipToNextPage,this.flipToPrevPage,this.isMobile,parseInt(this.tempLocation.chapterDocIndex||"0"),this.readerMode):yield wt(this.element,this.animation,-1,t,this.flipToNextPage,this.flipToPrevPage,this.isMobile),yield this.renderPdfPage(parseInt(this.tempLocation.chapterDocIndex)+("double"===this.readerMode?2:1))),yield this.record())})}prevChapter(){return d(this,void 0,void 0,function*(){yield this.prev()})}nextChapter(){return d(this,void 0,void 0,function*(){yield this.next()})}goToPage(e){return d(this,void 0,void 0,function*(){let t=Math.floor(e-1);t>=this.chapterDocList.length&&(t=this.chapterDocList.length-1),t<0&&(t=0),yield this.goToChapter(t,this.chapterDocList[t].href,this.chapterDocList[t].label)})}visibleText(){return d(this,void 0,void 0,function*(){let e=parseInt(this.tempLocation.chapterDocIndex||"0"),t=this.chapterDocList[e],i=(yield vi(t)).map(e=>e.text.trim());if("double"===this.readerMode){let t=e+1;if(te.text.trim());i=i.concat(n)}}return i})}audioText(){return d(this,void 0,void 0,function*(){return yield this.visibleText()})}getRestAudioText(e){return d(this,void 0,void 0,function*(){const t=[],i=parseInt(this.tempLocation.chapterDocIndex||"0")+1,n=Math.min(i+e,this.chapterDocList.length);for(let e=i;ee.text.trim()).filter(e=>!!e);n.length>0&&t.push({chapterDocIndex:e,audioText:n})}return t})}chapterText(){return d(this,void 0,void 0,function*(){return(yield this.visibleText()).join(" ")})}record(){return d(this,void 0,void 0,function*(){"none"!==this.animation&&"yes"!==this.isMobile&&(yield new Promise(e=>setTimeout(e,1e3)));let e=this.getDocument();e&&(yield this.handlePDFRecord(e))})}recordByChapter(e){return d(this,void 0,void 0,function*(){if("none"!==this.animation&&"yes"!==this.isMobile&&(yield new Promise(e=>setTimeout(e,1e3))),e>=this.chapterDocList.length||e<0)return;this.tempLocation.chapterDocIndex=e+"",this.tempLocation.percentage=1===this.chapterDocList.length?"1":e/(this.chapterDocList.length-1)+"",this.tempLocation.chapterHref=this.chapterDocList[e].href;let t=this.chapterDocList[e].label;if(!t){let i=e;for(;i>=0;){if(this.chapterDocList[i].label){t=this.chapterDocList[i].label;break}i--}}this.tempLocation.chapterTitle=t,this.tempLocation.text="",this.trigger("page-changed")})}handlePDFRecord(e){return d(this,void 0,void 0,function*(){let t=e.querySelectorAll(".pdf-container");if(t.length>0&&wi(this.element,t[t.length-1],this.readerMode,e))this.handleRecord(t[t.length-1]);else for(let i=0;i=0;){if(this.chapterDocList[t].label){e=this.chapterDocList[t].label;break}t--}}this.tempLocation.chapterTitle=e,this.tempLocation.text="",this.trigger("page-changed")}}getMetadata(){return d(this,void 0,void 0,function*(){try{this.book||(yield this.parse());let e=new oe(this.book);return yield e.getMetadata()}catch(e){throw console.error(e),e}})}highlightAudioNode(e,t){let i=parseInt(this.tempLocation.chapterDocIndex),n=this.getSubDocument(i);if(n&&(Bi(e,t,n),"double"===this.readerMode)){let n=this.getSubDocument(i+1);if(!n)return;Bi(e,t,n)}}highlightSearchNode(e,t){let i=parseInt(this.tempLocation.chapterDocIndex),n=this.getSubDocument(i);n&&Wt(e,t,n)}getProgress(){return{totalPage:this.chapterDocList.length,currentPage:parseInt(this.tempLocation.chapterDocIndex||"0")+1}}getNotePosition(){var e;return d(this,void 0,void 0,function*(){let t=this.getDocument();if(!t)return;let i=te(t);if(!i)return;let n=i.ownerDocument,o=null===(e=null==n?void 0:n.defaultView)||void 0===e?void 0:e.frameElement,r=(null==o?void 0:o.getAttribute("id"))||"",s=r?parseInt(r.split("-").reverse()[0]):0;return Object.assign(Object.assign({},this.tempLocation),{chapterDocIndex:s})})}getSubDocument(e){let t=document.getElementById("page-area");if(!t)return null;let i=t.getElementsByTagName("iframe")[0];if(!i)return null;let n=i.contentDocument;if(!n)return null;let o=n.getElementById("pdf-iframe-"+e);return o||(fi(e||0,n),o=n.getElementById("pdf-iframe-"+e)),o.contentDocument}getSubIframe(e){let t=document.getElementById("page-area");if(!t)return null;let i=t.getElementsByTagName("iframe")[0];if(!i)return null;let n=i.contentDocument;return n?(i=n.getElementById("pdf-iframe-"+e),i||(fi(e||0,n),i=n.getElementById("pdf-iframe-"+e)),i):null}getHighlightCoords(e){return d(this,void 0,void 0,function*(){let t=void 0!==e?e:parseInt(this.tempLocation.chapterDocIndex),i=this.getSubDocument(e);if(!i)return;var n=i.getSelection().getRangeAt(0).getClientRects();let o=yield this.chapterDocList[t].text.getPage(),r=yield this.getPdfScale();var s=o.getViewport({scale:r});let a=i.querySelector("canvas");var l=null==a?void 0:a.getClientRects()[0];let c=[];for(let e=0;en[e].left&&(c[c.length-1].left=n[e].left),c[c.length-1].right{t&&("number"==typeof e.left&&t.set("left",e.left*a),"number"==typeof e.top&&t.set("top",e.top*l),"number"==typeof e.scaleX&&t.set("scaleX",e.scaleX*a),"number"==typeof e.scaleY&&t.set("scaleY",e.scaleY*l),t.setCoords&&t.setCoords(),t.isType&&t.isType("i-text")&&this.attachITextListeners(i,t))}:(e,t)=>{t&&t.isType&&t.isType("i-text")&&this.attachITextListeners(i,t)};try{yield new Promise(e=>{i.loadFromJSON(t,()=>{i.requestRenderAll(),e()},c)}),this.fabricHistoryMap.set(e,i.getObjects?i.getObjects().slice():[])}catch(e){console.warn(e)}finally{this.fabricHistoryLock.delete(e)}})}removeOneNote(e,t){let i=this.getSubDocument(void 0!==t?t:parseInt(this.tempLocation.chapterDocIndex));if(!i)return;const n=i.querySelectorAll(".kookit-note");for(let t=0;te.length?e.reduce((e,t)=>e+t,0)/e.length:0,n=(e,t,n)=>{if(e.length<3)return e;let o=i(e.map(t));if(!o)return e;let r=Math.max(o*n,1),s=e.filter(e=>Math.abs(t(e)-o)<=r);return s.length?s:e};let o=Array.from(t.querySelectorAll("span")).map(e=>{var t;let i=e.getBoundingClientRect();return{left:i.left,top:i.top,bottom:i.bottom,height:i.height,text:(null===(t=e.textContent)||void 0===t?void 0:t.trim())||""}}).filter(e=>e.text&&e.height>0);if(o.length<2)return;o.sort((e,t)=>Math.abs(e.top-t.top)<.5?e.left-t.left:e.top-t.top);let r=[];for(let e=0;ee.avgHeight,.3),a=i(s.map(e=>e.avgHeight).filter(e=>e>0));if(!a)return void t.style.removeProperty("--kookit-pdf-text-line-height");let l=[];for(let e=0;e0&&l.push(i)}let c=n(l,e=>e,.5),d=(i(c.filter(e=>e>=0))+a)/a;if(d<=1||d>2)return void t.style.removeProperty("--kookit-pdf-text-line-height");let g=e.getElementById("kookit-pdf-text-layer-style");g||(g=e.createElement("style"),g.id="kookit-pdf-text-layer-style",g.textContent="\n .textLayer span {\n line-height: var(--kookit-pdf-text-line-height, 1) !important;\n }\n ",(e.head||e.documentElement).appendChild(g));let h=d.toFixed(1),A=(this.pdfTextLineHeightRecord[h]||0)+1;this.pdfTextLineHeightRecord[h]=A,A>=3&&(this.pdfTextLineHeightFixed=d),t.style.setProperty("--kookit-pdf-text-line-height",h)}applyPdfCrop(e,t){if("scroll"===this.readerMode){t.body.style.overflow="hidden";const i=100/(100-this.pdfCrop.left-this.pdfCrop.right),n=1,o=(this.pdfCrop.right-this.pdfCrop.left)*(i/2)*n;e.style.transformOrigin="50% 50%",e.style.transform=`translateX(${o}%) scale(${i}) translateZ(0)`,this.pdfCrop.top>0&&(t.body.style.position="relative",t.body.style.bottom=this.pdfCrop.top+2+"%")}}applyAnnotationConfig(e){e.annotationStyle&&this.setAnnotationStyle(e.annotationStyle),e.brushColor&&this.setBrushColor(e.brushColor),e.brushWidth&&this.setBrushWidth(e.brushWidth),e.highlighterColor&&this.setHighlighterColor(e.highlighterColor),e.highlighterWidth&&this.setHighlighterWidth(e.highlighterWidth),null!=e.highlighterOpacity&&this.setHighlighterOpacity(e.highlighterOpacity),e.shapeType&&this.setShapeType(e.shapeType),e.shapeColor&&this.setShapeColor(e.shapeColor),e.shapeWidth&&this.setShapeWidth(e.shapeWidth),null!=e.textSize&&this.setTextSize(e.textSize),e.textFont&&this.setTextFont(e.textFont),e.textColor&&this.setTextColor(e.textColor),e.isDrawing&&this.setIsDrawing(e.isDrawing)}handleRenderPDFChapter(e,t=!1){return d(this,void 0,void 0,function*(){if(e>=this.chapterDocList.length||e<0)return;let i=this.getDocument();if(!i)return;let n=i.getElementById("pdf-iframe-"+e);n||(n=fi(e,i)),t&&(yield this.handleUnloadPDFChapter(e));let o=null==n?void 0:n.contentDocument;if(!o)return;if(o.body.innerHTML&&!t)return;o.body.innerHTML="";let r=yield fetch(yield this.chapterDocList[e].text.load()).then(e=>e.blob()),s=yield r.text();o.body.innerHTML=s;let a=yield this.getPdfScale();yield this.chapterDocList[e].text.render(o,a,this.isMobile,this,this.isKeepPDFBackground);let l=o.querySelector("#koodoPDFLayer");if(l){if("yes"===this.isDarkMode&&(l.style.filter="invert(1) hue-rotate(180deg) contrast(0.95)"),"rgba(233, 216, 188,1)"===this.backgroundColor&&"yes"===this.isScannedPDF&&(l.style.filter="sepia(100%) contrast(0.95) brightness(0.95)"),"rgba(197, 231, 207,1)"===this.backgroundColor&&"yes"===this.isScannedPDF&&(l.style.filter="sepia(30%) hue-rotate(60deg) saturate(120%) brightness(95%)"),(this.pdfCrop.top>0||this.pdfCrop.left>0||this.pdfCrop.right>0)&&this.applyPdfCrop(n,o),"single"===this.readerMode||"double"===this.readerMode){let e=this.element.clientHeight/2-l.getBoundingClientRect().height/2;l.style.marginTop=e+"px",n.style.height=l.getBoundingClientRect().height+e+"px";let t=o.querySelector(".noteLayer");t&&(t.style.position="relative")}if("scroll"!==this.readerMode&&(l.style.marginLeft=`calc(50% - ${l.getBoundingClientRect().width/2}px)`),l.style.visibility="visible","android"===this.platform&&"yes"===this.enablePDFSelectionOptimization&&this.applyPDFTextLayerLineHeight(o),"web"===this.platform&&"yes"===this.isScannedPDF){let t=o.querySelector("#fabric");if(t){t.style.display="block";const i=o.defaultView,n=window.fabric;i&&(n.document=o,n.window=i);const r=new n.Canvas(t,{isDrawingMode:"yes"===this.isDrawing,selection:!0,backgroundColor:"transparent"}),s=l.getBoundingClientRect();s.width>0&&s.height>0&&r.setDimensions({width:Math.round(s.width),height:Math.round(s.height)}),this.applyFabricBrush(r),this.fabricCanvasMap.set(e,r),this.fabricHistoryMap.set(e,[]),r.on("object:added",t=>{this.fabricHistoryLock.has(e)||(this.pushFabricHistory(e,t.target),this.trigger("annotation-changed",[e]))}),r.on("object:removed",()=>{this.fabricHistoryLock.has(e)||this.trigger("annotation-changed",[e])}),r.on("object:modified",()=>{this.fabricHistoryLock.has(e)||this.trigger("annotation-changed",[e])});const a=()=>{i&&n&&(n.document=o,n.window=i)};o.addEventListener("mousedown",a,!0),o.addEventListener("touchstart",a,!0),this.fabricSyncListenerMap.set(e,{doc:o,fn:a}),this.attachFabricKeyListeners(e,o),this.attachShapeDrawListeners(e,r),this.attachTextCreateListeners(e,r)}}this.trigger("rendered",[e])}})}applyFabricBrush(e){if(!e)return;const t="yes"===this.isDrawing,i="shape"===this.annotationStyle,n="text"===this.annotationStyle;!e.freeDrawingBrush||i||n||("highlighter"===this.annotationStyle?(e.freeDrawingBrush.color=this.toRgba(this.highlighterColor,this.highlighterOpacity),e.freeDrawingBrush.width=this.highlighterWidth,e.freeDrawingBrush.strokeLineCap="round",e.freeDrawingBrush.strokeLineJoin="round"):(e.freeDrawingBrush.color=this.brushColor,e.freeDrawingBrush.width=this.brushWidth)),e.isDrawingMode=t&&!i&&!n,t?n?(e.selection=!0,e.defaultCursor="text",e.hoverCursor="text"):(e.selection=!1,e.defaultCursor="crosshair",e.hoverCursor="crosshair"):(e.selection=!0,e.defaultCursor="default",e.hoverCursor="move")}createShapeObject(e,t,i,n){const o=window.fabric;if(!o)return null;const r=this.shapeColor,s=this.shapeWidth,a={stroke:r,strokeWidth:s,strokeLineCap:"round",strokeLineJoin:"round",fill:"transparent",selectable:!0},l=Math.min(e,i),c=Math.min(t,n),d=i-e,g=n-t,h=Math.abs(d),A=Math.abs(g);switch(this.shapeType){case"rect":return new o.Rect(Object.assign(Object.assign({},a),{left:l,top:c,width:h,height:A}));case"circle":{const i=Math.hypot(d,g)/2;return new o.Circle(Object.assign(Object.assign({},a),{left:e,top:t,radius:i,originX:"center",originY:"center"}))}case"ellipse":return new o.Ellipse(Object.assign(Object.assign({},a),{left:(e+i)/2,top:(t+n)/2,rx:h/2,ry:A/2,originX:"center",originY:"center"}));case"line":return new o.Line([e,t,i,n],{stroke:r,strokeWidth:s,strokeLineCap:"round",selectable:!0});case"arrow":return new o.Path(this.buildArrowPath(e,t,i,n,s),{stroke:r,strokeWidth:s,strokeLineCap:"round",strokeLineJoin:"round",fill:r,selectable:!0});default:return null}}buildArrowPath(e,t,i,n,o){const r=i-e,s=n-t,a=Math.hypot(r,s);if(a<1)return[["M",e,t],["L",i,n]];const l=r/a,c=s/a,d=Math.max(3*o,8),g=.5*d,h=-c,A=i-l*d,u=n-c*d;return[["M",e,t],["L",A,u],["M",A+h*g,u+l*g],["L",i,n],["L",A-h*g,u-l*g],["Z"]]}attachShapeDrawListeners(e,t){if(!t)return;let i=!1,n=0,o=0,r=0,s=0,a=null;t.on("mouse:down",l=>{if("shape"!==this.annotationStyle||"yes"!==this.isDrawing)return;i=!0;const c=t.getPointer(l.e);n=c.x,o=c.y,r=n,s=o,this.fabricHistoryLock.add(e),a=this.createShapeObject(n,o,n,o),a&&t.add(a)}),t.on("mouse:move",e=>{if(!i||!a)return;const l=t.getPointer(e.e);r=l.x,s=l.y;const c=this.createShapeObject(n,o,r,s);c&&(t.remove(a),a=c,t.add(a),t.requestRenderAll())}),t.on("mouse:up",()=>{if(!i)return;i=!1,this.fabricHistoryLock.delete(e);const l=Math.hypot(r-n,s-o)>=2;a&&l?(this.pushFabricHistory(e,a),this.trigger("annotation-changed",[e])):a&&(t.remove(a),t.requestRenderAll()),a=null})}attachTextCreateListeners(e,t){t&&t.on("mouse:down",e=>{var i,n;if("text"!==this.annotationStyle||"yes"!==this.isDrawing)return;const o=!0===t._kookitJustExitedText;t._kookitJustExitedText=!1;if(t.findTarget(e.e))return;if(o)return;const r=t.getActiveObject();if(r&&r.isEditing)return r.exitEditing(),void(t._kookitJustExitedText=!1);const s=t.getPointer(e.e),a=window.fabric;if(!a||!a.IText)return;const l=new a.IText("",{left:s.x,top:s.y,fontSize:this.textSize,fontFamily:this.textFont,fill:this.textColor,editable:!0,selectable:!0});t.add(l),t.setActiveObject(l),l.enterEditing(),null===(i=l.hiddenTextarea)||void 0===i||i.focus();const c=t.getElement&&t.getElement().ownerDocument?t.getElement().ownerDocument.defaultView:null;if(c&&document.activeElement!==l.hiddenTextarea){try{c.focus()}catch(e){}null===(n=l.hiddenTextarea)||void 0===n||n.focus()}this.attachITextListeners(t,l)})}attachITextListeners(e,t){if(!e||!t||t._kookitListenersAttached)return;t._kookitListenersAttached=!0;const i=()=>{try{t.setCoords()}catch(e){}e.requestRenderAll()};t.on("text:changed",i),t.on("editing:exited",()=>{e._kookitJustExitedText=!0,i()})}toRgba(e,t){if("string"!=typeof e||!e)return`rgba(255,255,0,${t})`;const i=e.trim(),n=i.match(/^rgba?\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)\s*(?:,\s*([\d.]+)\s*)?\)$/i);if(n){return`rgba(${Math.round(parseFloat(n[1]))},${Math.round(parseFloat(n[2]))},${Math.round(parseFloat(n[3]))},${t})`}const o=i.match(/^#?([0-9a-f]{3}|[0-9a-f]{6})$/i);if(o){let e=o[1];3===e.length&&(e=e.split("").map(e=>e+e).join(""));return`rgba(${parseInt(e.slice(0,2),16)},${parseInt(e.slice(2,4),16)},${parseInt(e.slice(4,6),16)},${t})`}return`rgba(255,255,0,${t})`}pushFabricHistory(e,t){if(!t)return;let i=this.fabricHistoryMap.get(e);i||(i=[],this.fabricHistoryMap.set(e,i)),i.push(t)}attachFabricKeyListeners(e,t){t.addEventListener("keydown",t=>{const i=this.fabricCanvasMap.get(e);if(i){if((t.ctrlKey||t.metaKey)&&("z"===t.key||"Z"===t.key))return t.preventDefault(),void this.undoFabric(e);if("Backspace"===t.key||"Delete"===t.key){const n=i.getActiveObject();if(n&&n.isEditing)return;const o=i.getActiveObjects();o&&o.length>0&&(t.preventDefault(),o.forEach(t=>{i.remove(t);const n=this.fabricHistoryMap.get(e);if(n){const e=n.lastIndexOf(t);e>=0&&n.splice(e,1)}}),i.discardActiveObject(),i.requestRenderAll())}}})}undoFabric(e){const t=this.fabricCanvasMap.get(e);if(!t)return;const i=this.fabricHistoryMap.get(e);if(!i||0===i.length)return;const n=i.pop();n&&(t.remove(n),t.discardActiveObject(),t.requestRenderAll())}setBrushColor(e){this.brushColor=e,this.fabricCanvasMap.forEach(e=>{this.applyFabricBrush(e),e.requestRenderAll()})}setHighlighterColor(e){this.highlighterColor=e,this.fabricCanvasMap.forEach(e=>{this.applyFabricBrush(e),e.requestRenderAll()})}setHighlighterOpacity(e){this.highlighterOpacity=e,this.fabricCanvasMap.forEach(e=>{this.applyFabricBrush(e),e.requestRenderAll()})}setAnnotationStyle(e){this.annotationStyle=e,this.fabricCanvasMap.forEach(e=>{this.applyFabricBrush(e),e.requestRenderAll()})}setBrushWidth(e){this.brushWidth=e,this.fabricCanvasMap.forEach(e=>{this.applyFabricBrush(e),e.requestRenderAll()})}setHighlighterWidth(e){this.highlighterWidth=e,this.fabricCanvasMap.forEach(e=>{this.applyFabricBrush(e),e.requestRenderAll()})}setShapeType(e){this.shapeType=e,this.fabricCanvasMap.forEach(e=>{this.applyFabricBrush(e),e.requestRenderAll()})}setShapeColor(e){this.shapeColor=e,this.fabricCanvasMap.forEach(e=>{this.applyFabricBrush(e),e.requestRenderAll()})}setShapeWidth(e){this.shapeWidth=e,this.fabricCanvasMap.forEach(e=>{this.applyFabricBrush(e),e.requestRenderAll()})}setTextSize(e){this.textSize=e,this.fabricCanvasMap.forEach(e=>{this.applyFabricBrush(e),e.requestRenderAll()})}setTextFont(e){this.textFont=e,this.fabricCanvasMap.forEach(e=>{this.applyFabricBrush(e),e.requestRenderAll()})}setTextColor(e){this.textColor=e,this.fabricCanvasMap.forEach(e=>{this.applyFabricBrush(e),e.requestRenderAll()})}setIsDrawing(e){this.isDrawing=e,this.fabricCanvasMap.forEach(e=>{this.applyFabricBrush(e),e.requestRenderAll()})}getAnnotationData(e){const t=this.fabricCanvasMap.get(e);if(!t||!t.toJSON)return null;const i=t.toJSON(["selectable","_kookitLogged"]);return i._canvasWidth=t.getWidth(),i._canvasHeight=t.getHeight(),i}handleUnloadPDFChapter(e){return d(this,void 0,void 0,function*(){if(e>=this.chapterDocList.length||e<0)return;let t=this.getSubDocument(e);if(!t)return;if(""===t.body.innerHTML)return;const i=this.fabricCanvasMap.get(e);if(i&&i.dispose)try{i.dispose()}catch(e){console.warn(e)}const n=this.fabricSyncListenerMap.get(e);if(n){try{n.doc.removeEventListener("mousedown",n.fn,!0),n.doc.removeEventListener("touchstart",n.fn,!0)}catch(e){console.warn(e)}this.fabricSyncListenerMap.delete(e)}yield this.chapterDocList[e].text.unload(),this.fabricCanvasMap.delete(e),this.fabricHistoryMap.delete(e),this.fabricHistoryLock.delete(e),t.body.innerHTML=""})}renderPdfPage(e){return d(this,void 0,void 0,function*(){e>=this.chapterDocList.length||e<0||(e>3&&(yield this.handleUnloadPDFChapter(e-4)),yield this.handleRenderPDFChapter(e),this.handleRenderPDFChapter(e+1),"ios"!==this.platform&&(this.handleRenderPDFChapter(e+2),this.handleRenderPDFChapter(e+3),this.activateFabricDocument(e)))})}activateFabricDocument(e){if("web"!==this.platform)return;const t=this.getSubDocument(e);if(!t)return;const i=t.defaultView,n=window.fabric;i&&n&&(n.document=t,n.window=i)}}const $s="resources";const _s=new class{constructor(){this.db=null}isRemoteUrl(e){return e.startsWith("http://")||e.startsWith("https://")}init(){return d(this,void 0,void 0,function*(){if(!this.db)return new Promise((e,t)=>{const i=indexedDB.open("OCRResourceCache",1);i.onerror=()=>t(i.error),i.onsuccess=()=>{this.db=i.result,e()},i.onupgradeneeded=e=>{const t=e.target.result;if(!t.objectStoreNames.contains($s)){t.createObjectStore($s,{keyPath:"url"}).createIndex("timestamp","timestamp",{unique:!1})}}})})}get(e){return d(this,void 0,void 0,function*(){return yield this.init(),this.db?new Promise((t,i)=>{const n=this.db.transaction([$s],"readonly").objectStore($s).get(e);n.onerror=()=>i(n.error),n.onsuccess=()=>t(n.result||null)}):null})}set(e,t,i){return d(this,void 0,void 0,function*(){if(yield this.init(),this.db)return new Promise((n,o)=>{const r=this.db.transaction([$s],"readwrite").objectStore($s),s={url:e,data:t,timestamp:Date.now(),type:i},a=r.put(s);a.onerror=()=>o(a.error),a.onsuccess=()=>n()})})}delete(e){return d(this,void 0,void 0,function*(){if(yield this.init(),this.db)return new Promise((t,i)=>{const n=this.db.transaction([$s],"readwrite").objectStore($s).delete(e);n.onerror=()=>i(n.error),n.onsuccess=()=>t()})})}clear(){return d(this,void 0,void 0,function*(){if(yield this.init(),this.db)return new Promise((e,t)=>{const i=this.db.transaction([$s],"readwrite").objectStore($s).clear();i.onerror=()=>t(i.error),i.onsuccess=()=>e()})})}getAllKeys(){return d(this,void 0,void 0,function*(){return yield this.init(),this.db?new Promise((e,t)=>{const i=this.db.transaction([$s],"readonly").objectStore($s).getAllKeys();i.onerror=()=>t(i.error),i.onsuccess=()=>e(i.result)}):[]})}fetchText(e){return d(this,void 0,void 0,function*(){try{if(!this.isRemoteUrl(e)){const t=yield fetch(e);return yield t.text()}const t=yield this.get(e);if(t&&"text"===t.type)return console.info(`从缓存加载: ${e}`),t.data;console.info(`从网络下载: ${e}`);const i=yield fetch(e),n=yield i.text();return this.set(e,n,"text").catch(t=>console.warn(`缓存保存失败 (${e}):`,t)),n}catch(t){throw console.error(`获取资源失败 (${e}):`,t),t}})}fetchArrayBuffer(e){return d(this,void 0,void 0,function*(){try{if(!this.isRemoteUrl(e)){const t=yield fetch(e);return yield t.arrayBuffer()}const t=yield this.get(e);if(t&&"arraybuffer"===t.type)return console.info(`从缓存加载: ${e}`),t.data;console.info(`从网络下载: ${e}`);const i=yield fetch(e),n=yield i.arrayBuffer();return this.set(e,n,"arraybuffer").catch(t=>console.warn(`缓存保存失败 (${e}):`,t)),n}catch(t){throw console.error(`获取资源失败 (${e}):`,t),t}})}fetchBlobURL(e,t){return d(this,void 0,void 0,function*(){try{if(!this.isRemoteUrl(e)){const i=yield fetch(e),n=yield i.arrayBuffer(),o=new Blob([n],{type:t||"application/javascript"});return URL.createObjectURL(o)}const i=yield this.get(e);if(i&&"blob"===i.type){console.info(`从缓存加载 Blob: ${e}`);const n=new Blob([i.data],{type:t||"application/javascript"});return URL.createObjectURL(n)}console.info(`从网络下载 Blob: ${e}`);const n=yield fetch(e),o=yield n.arrayBuffer();this.set(e,o,"blob").catch(t=>console.warn(`缓存保存失败 (${e}):`,t));const r=new Blob([o],{type:t||"application/javascript"});return URL.createObjectURL(r)}catch(t){throw console.error(`获取 Blob 资源失败 (${e}):`,t),t}})}getCacheStats(){return d(this,void 0,void 0,function*(){return yield this.init(),this.db?new Promise((e,t)=>{const i=this.db.transaction([$s],"readonly").objectStore($s).getAll();i.onerror=()=>t(i.error),i.onsuccess=()=>{const t=i.result,n=t.reduce((e,t)=>e+("string"==typeof t.data?t.data.length:t.data.byteLength),0);e({count:t.length,totalSize:n,keys:t.map(e=>e.url)})}}):{count:0,totalSize:0,keys:[]}})}createCachedFetch(){const e=fetch.bind(window),t=this;return function(i,n){return d(this,void 0,void 0,function*(){const o="string"==typeof i?i:i.toString();if(!(o.startsWith("http://")||o.startsWith("https://")))return e(i,n);if((null==n?void 0:n.method)&&"GET"!==n.method)return e(i,n);try{const r=yield t.get(o);if(r){let e;console.info(`从缓存加载资源: ${o}`);let t={};return"text"===r.type?(e=r.data,t={"Content-Type":"text/plain"}):(e=r.data,t={"Content-Type":"application/octet-stream"}),new Response(e,{status:200,statusText:"OK (from cache)",headers:new Headers(t)})}console.info(`从网络加载资源: ${o}`);const s=yield e(i,n),a=s.clone();return(()=>{d(this,void 0,void 0,function*(){try{const e=a.headers.get("Content-Type")||"";if(e.includes("text")||e.includes("json")||e.includes("javascript")||o.endsWith(".txt")||o.endsWith(".js")){const e=yield a.text();yield t.set(o,e,"text")}else{const e=yield a.arrayBuffer();yield t.set(o,e,"arraybuffer")}console.info(`缓存保存成功: ${o}`)}catch(e){console.warn(`缓存保存失败 (${o}):`,e)}})})(),s}catch(t){return console.warn(`缓存逻辑失败,使用原始 fetch (${o}):`,t),e(i,n)}})}}installGlobalFetchInterceptor(){"undefined"!=typeof window&&(window.fetch=this.createCachedFetch(),console.info("OCR 缓存拦截器已安装"))}createCachedWorkerBlob(e,t){return d(this,void 0,void 0,function*(){try{const t=yield fetch(e),i=`\n // 保存原始 importScripts\n const originalImportScripts = self.importScripts;\n\n // 创建支持缓存的 importScripts\n self.importScripts = function(...urls) {\n const cachedUrls = urls.map(url => {\n // 只处理远程 URL\n if (url.startsWith('http://') || url.startsWith('https://')) {\n // 同步获取缓存(在 Worker 中无法使用 IndexedDB,所以通过 postMessage 通信)\n // 这里暂时降级到原始行为,实际缓存在主线程的 fetch 拦截器中完成\n return url;\n }\n return url;\n });\n\n return originalImportScripts.apply(self, cachedUrls);\n };\n\n // 注入原始 worker 代码\n ${yield t.text()}\n `,n=new Blob([i],{type:"application/javascript"});return URL.createObjectURL(n)}catch(t){return console.error("创建缓存 Worker 失败:",t),e}})}setupTesseractCacheProxy(){return d(this,void 0,void 0,function*(){const e=this;return{getCachedUrl:t=>d(this,void 0,void 0,function*(){if(t.startsWith("http://")||t.startsWith("https://"))try{const i=yield e.get(t);if(i){console.info(`从缓存创建 Blob URL: ${t}`);const e=new Blob([i.data]);return URL.createObjectURL(e)}const n=yield fetch(t),o=yield n.arrayBuffer();yield e.set(t,o,"arraybuffer");const r=new Blob([o]);return URL.createObjectURL(r)}catch(e){return console.warn(`缓存处理失败,使用原始 URL (${t}):`,e),t}return t})}})}restoreOriginalFetch(){console.warn("fetch 恢复功能需要在安装时保存原始引用")}};class ea extends Ni{constructor(e,t){super(Object.assign(Object.assign({},t),{format:"PDFTEXT"})),this.password="",this.ocrLang="standard_v5_mobile",this.paraSpacingValue=1.5,this.titleSizeValue=1.2,this.isFinishOCR=!1,this.shouldShowProgress=!1,this.pdfPageCount=0,this.performBuiltInOCR=e=>d(this,void 0,void 0,function*(){try{if("tesseract"===this.ocrEngine){let t=(yield this.worker.recognize(e)).data.text||"";return"en"!==M(t)&&(t=t.split("\n").map(e=>{const t=e.split(" ").filter(e=>""!==e);let i="";for(let e=0;ee.text).join("\n")}if("system-ocr"===this.ocrEngine){return(yield this.worker.recognize(e))+"\n"}throw new Error(`Unsupported OCR engine: ${this.ocrEngine}`)}catch(e){throw console.error("OCR Error:",e),e}}),this.extractPages=e=>d(this,void 0,void 0,function*(){const t=this.pdfDoc,i=yield window.PDFLib.PDFDocument.create(),n=(Array.isArray(e)?e:[e]).map(e=>e-1).filter(e=>e>=0&&e{i.addPage(e)});const o=yield i.save();return new Blob([o],{type:"application/pdf"})}),this.pdfBuffer=e,this.password=t.password||"",this.isScannedPDF=t.isScannedPDF||"no",this.ocrLang=t.ocrLang||"standard_v5_mobile",this.paraSpacingValue=parseFloat(t.paraSpacingValue)||1.5,this.titleSizeValue=parseFloat(t.titleSizeValue)||1.2,this.cache={},this.serverRegion=t.serverRegion||"global",this.processingPromises=new Map,this.ocrEngine=t.ocrEngine||"paddle",this.externalWorker=t.externalWorker||null,this.pdfPageCount=t.pdfPageCount||0}renderTo(e){return new Promise((t,i)=>d(this,void 0,void 0,function*(){if(this.element=e,"yes"===this.isScannedPDF&&"external-engine"===this.ocrEngine)this.chapterDocList=Array.from({length:this.pdfPageCount},(e,t)=>({label:t+"",text:{load:()=>d(this,void 0,void 0,function*(){return""}),render:()=>d(this,void 0,void 0,function*(){}),unload:()=>d(this,void 0,void 0,function*(){}),getPage:()=>d(this,void 0,void 0,function*(){return null}),getDimension:()=>d(this,void 0,void 0,function*(){return{width:0,height:0}}),getScale:()=>d(this,void 0,void 0,function*(){return 1}),getPageCount:()=>d(this,void 0,void 0,function*(){return 0})},href:"title"+t})),this.chapterList=Array.from({length:this.pdfPageCount},(e,t)=>({label:t+"",href:"title"+t,index:t,subitems:[]})),this.worker=this.externalWorker;else{this.book||(yield this.parse());let e=new oe(this.book);this.chapterList=yield e.getChapter(this.book.toc),this.chapterDocList=yield e.getChapterDoc()}for(let e=0;ed(this,void 0,void 0,function*(){if(this.cache[e])return this.preProcessNextChapters(e),this.cache[e];let t="";return t=yield this.processCurrentChapter(e),this.preProcessNextChapters(e),t})}K(e,this.isAllowScript);let i=this.getDocument();if(i){if(ee(e,this.readerMode,i),"official-ai-ocr"===this.ocrEngine&&"accurate"===this.ocrLang){const e=yield window.PDFLib.PDFDocument.load(this.pdfBuffer);this.pdfDoc=e}t()}}))}processCurrentChapter(e){return d(this,void 0,void 0,function*(){if(this.cache[e])return this.cache[e];if(this.processingPromises.has(e))return yield this.processingPromises.get(e),this.cache[e];const t=this.chapterDocList[e];this.isFinishOCR=!1,this.shouldShowProgress=!0;const i=yield this.getTextByOCR(t,e);return this.shouldShowProgress=!1,this.cache[e]=i,i})}preProcessNextChapters(e){return d(this,void 0,void 0,function*(){const t=Math.min(e+5,this.chapterDocList.length-1);for(let i=e+1;i<=t;i++)if(!this.cache[i]&&!this.processingPromises.has(i)){const e=this.processChapterOCR(i).finally(()=>{this.processingPromises.delete(i)});this.processingPromises.set(i,e),"official-ai-ocr"!==this.ocrEngine&&"external-engine"!==this.ocrEngine&&(yield e)}})}processChapterOCR(e){return d(this,void 0,void 0,function*(){try{const t=this.chapterDocList[e],i=yield this.getTextByOCR(t,e);this.cache[e]=i}catch(t){console.error(`Failed to process OCR for chapter ${e}:`,t)}})}startFakeProgress(e=.85,t=3e4){const i=t/200;let n=0;const o=setInterval(()=>{n++;const t=10/i,o=e*(1-Math.exp(-t*n));Ci(Math.min(o,e))},200);return()=>clearInterval(o)}getTextByOCR(e,t){return d(this,void 0,void 0,function*(){let i="";if("system-ocr"===this.ocrEngine&&"yes"!==this.isScannedPDF)return yield this.getTextFromDoc(e);if("external-engine"===this.ocrEngine||"official-ai-ocr"===this.ocrEngine){let n=null;if(this.shouldShowProgress){let e=0;const t=100,i=.9/(5e3/t);n=setInterval(()=>{e+=i,e>=.9&&(e=.9,clearInterval(n)),Ci(e)},t)}try{let o;if("external-engine"===this.ocrEngine)i=yield this.worker.recognize(t,"");else if("official-ai-ocr"===this.ocrEngine&&"accurate"===this.ocrLang){let e=yield this.extractPages(t+1),n=new File([e],t+".pdf",{type:"application/pdf"});o=yield this.worker.recognize(n),i=o&&o.data&&o.data.text?o.data.text:""}else{let t=yield e.text.getPage(),{imageURL:n}=yield bi(t);o=yield this.worker.recognize(n),i=o&&o.data&&o.data.text?o.data.text:""}if(this.shouldShowProgress&&(n&&clearInterval(n),Ci(1),this.isFinishOCR=!0),"official-ai-ocr"===this.ocrEngine&&"accurate"===this.ocrLang){return URL.createObjectURL(new Blob([i],{type:"text/html"}))}}finally{this.shouldShowProgress&&n&&clearInterval(n)}}else{let t=yield e.text.getPage(),{imageURL:n}=yield bi(t);i=yield this.performBuiltInOCR(n)}let n=i.split("\n").filter(e=>""!==e.trim());return URL.createObjectURL(new Blob([`\n \n \n \n \n
${n.map(e=>`

${e}

`).join("")}
\n `],{type:"text/html"}))})}getTextFromDoc(e){return d(this,void 0,void 0,function*(){let t=yield vi(e,this.titleSizeValue,this.paraSpacingValue);return URL.createObjectURL(new Blob([`\n \n \n \n \n
${t.length>0?t.map(e=>`

${e.text.trim()}

`).join(""):"Empty"}
\n `],{type:"text/html"}))})}parse(){return d(this,void 0,void 0,function*(){try{_s.installGlobalFetchInterceptor();let t=new Blob([this.pdfBuffer]),i=new File([t],"book",{lastModified:(new Date).getTime(),type:t.type});if(this.book=yield Xs(i,this.password),"tesseract"===this.ocrEngine){let t=yield(e=(x()?".":"")+"/lib/tesseractjs/worker.min.js",d(void 0,void 0,void 0,function*(){return yield(yield fetch(e)).text()})),i=URL.createObjectURL(new Blob([t],{type:"application/javascript"}));const n=this.startFakeProgress(.85,3e4);try{const e=yield window.Tesseract.createWorker([this.ocrLang],1,{workerPath:i,corePath:"https://unpkg.com/tesseract.js-core@6.1.2",langPath:"https://tessdata.projectnaptha.com/4.0.0_best",logger:e=>{"recognizing text"!==e.status||"number"!=typeof e.progress||this.isFinishOCR||(Ci(e.progress),1===e.progress&&(this.isFinishOCR=!0))}});yield e.load(),this.worker=e}finally{n(),Ci(1)}}if("paddle"===this.ocrEngine){const e=this.startFakeProgress(.85,6e4);try{const e=`https://${"china"===this.serverRegion?"storage.koodoreader.cn":"storage.koodoreader.com"}/paddleocr/models/${this.ocrLang}/${this.ocrLang}_dict.txt`,t=yield fetch(e);let i=yield t.text();window.ort.env.wasm.wasmPaths="https://unpkg.com/onnxruntime-web@1.23.2/dist/",window.ort.env.wasm.proxy=!0;const n=yield window["esearch-ocr"].init({det:{input:`https://${"china"===this.serverRegion?"storage.koodoreader.cn":"storage.koodoreader.com"}/paddleocr/models/${this.ocrLang}/${this.ocrLang}_det.onnx`,ratio:.75},rec:{input:`https://${"china"===this.serverRegion?"storage.koodoreader.cn":"storage.koodoreader.com"}/paddleocr/models/${this.ocrLang}/${this.ocrLang}_rec.onnx`,decodeDic:i,on:(e,t,i)=>{if(this.shouldShowProgress&&i>0){const t=(e+1)/i;Ci(t),t>=1&&(this.isFinishOCR=!0)}}},ort:window.ort,ortOption:{executionProviders:[{name:"webgpu"},{name:"wasm"}]}});this.worker=n}finally{e(),Ci(1)}}"official-ai-ocr"!==this.ocrEngine&&"system-ocr"!==this.ocrEngine||(this.worker=this.externalWorker)}catch(e){throw console.error(e),e}var e})}preCache(){return d(this,void 0,void 0,function*(){return this.book||(yield this.parse()),yield ji(this.book)})}getMetadata(){return d(this,void 0,void 0,function*(){try{this.book||(yield this.parse());let e=new oe(this.book);return yield e.getMetadata()}catch(e){throw console.error(e),e}})}}const ta=(e,t=!1,i="",n)=>{const o=(new DOMParser).parseFromString(t?ct(e,i,n):e,"text/html");let r=ia(o);0===r.length&&(r=sa(o));for(let e=0;e""};return c.sections=l.map(e=>({id:e.index,load:()=>{return t=e.index,d(void 0,void 0,void 0,function*(){return URL.createObjectURL(new Blob([l[t].text],{type:"text/html"}))});var t},unload:()=>{e.index},size:l[e.index].text.length})),c.toc=l.map(e=>({label:e.label,href:"title"+e.index})).filter(e=>""!==e.label),c.rendition={layout:"pre-paginated"},c.resolveHref=e=>({index:parseInt(e.substring(5,e.length))}),c.resolveHrefIndex=e=>({index:parseInt(e.substring(5,e.length))}),c.splitTOCHref=e=>[e,null],c.getTOCFragment=e=>e.documentElement,c},ia=e=>Array.from(e.querySelectorAll("h1,title")),na=e=>{let t=[],i=e.split(" ").filter(e=>""!==e.trim()),n=i.map(e=>oa(e)||ra(e));return t=i.map((e,t)=>({index:t,label:n[t],text:e,href:"title"+t})),t},oa=e=>{var t;const i=(new DOMParser).parseFromString(e,"text/html").querySelector("h1");return i&&(null===(t=i.textContent)||void 0===t?void 0:t.trim())||""},ra=e=>{var t;const i=(new DOMParser).parseFromString(e,"text/html").querySelector("title");return i&&(null===(t=i.textContent)||void 0===t?void 0:t.trim())||""},sa=e=>{let t=e.getElementsByTagName("*"),i=Array.from(t).filter(e=>1===e.childNodes.length&&e.childNodes[0].nodeType===Node.TEXT_NODE&>(e.textContent)),n=[];for(let e=0;ed(this,void 0,void 0,function*(){this.element=e,this.book||(yield this.parse(t));let n=new oe(this.book);this.chapterList=yield n.getChapter(this.book.toc),this.chapterDocList=yield n.getChapterDoc(),K(e,this.isAllowScript);let o=this.getDocument();o&&(ee(e,this.readerMode,o),i())}))}parse(e){return d(this,void 0,void 0,function*(){try{const t=new TextDecoder(this.charset),i=new Uint8Array(this.txtBuffer);let n=t.decode(i);this.book=ta(n,!0,this.parserRegex,e)}catch(e){throw console.error(e),e}})}refreshContent(){return d(this,void 0,void 0,function*(){yield this.parse({refresh:!0});let e=new oe(this.book);return this.chapterList=yield e.getChapter(this.book.toc),this.chapterDocList=yield e.getChapterDoc(),yield this.record(),this.chapterList})}preCache(){return d(this,void 0,void 0,function*(){return this.book||(yield this.parse({refresh:!0})),yield ji(this.book)})}getMetadata(e){return d(this,void 0,void 0,function*(){try{const t=4096,i=e.byteLength,n=Math.min(i,t),o=new Uint8Array(e,0,n);const s=r.detect(o)||"utf8";return this.charset=s,{charset:s}}catch(e){return console.error("Error detecting charset:",e),this.charset="utf8",{charset:"utf8"}}})}}const la=({entries:e,loadBlob:t,getSize:i},n,o)=>{const r=new Map,s=new Map,a=async(e,i)=>{if(r.has(e))return r.get(e);if(i){const n=URL.createObjectURL(await t(e)),o=URL.createObjectURL(await t(i)),a=URL.createObjectURL(new Blob([`
`],{type:"text/html"}));return s.set(e,[n,a]),r.set(e,a),a}{const i=URL.createObjectURL(await t(e)),n=URL.createObjectURL(new Blob([`
`],{type:"text/html"}));return s.set(e,[i,n]),r.set(e,n),n}},l=[".jpg",".jpeg",".png",".gif",".bmp",".webp",".svg",".avif",".apng",".ico",".cur",".jfif",".pjpeg",".pjp"],c=e.map(e=>e.filename).filter(e=>l.some(t=>e.endsWith(t))).sort((e,t)=>e.localeCompare(t,void 0,{numeric:!0,sensitivity:"base"})),d={getCover:()=>t(c[0])};return d.metadata={title:n.name},d.sections=c.map((e,t)=>({id:e,load:()=>{if("double"===o){const i=c[t+1];return a(e,i)}return a(e)},unload:()=>(e=>{s.get(e)?.forEach?.(e=>URL.revokeObjectURL(e)),s.delete(e),r.delete(e)})(e),size:i(e)})).filter((e,t)=>"double"!==o||t%2==0),d.toc=c.map(e=>({label:e,href:e})).filter((e,t)=>"double"!==o||t%2==0),d.rendition={layout:"pre-paginated"},d.resolveHref=e=>({index:d.sections.findIndex(t=>t.id===e)}),d.resolveHrefIndex=e=>({index:d.sections.findIndex(t=>t.id===e)}),d.splitTOCHref=e=>[e,null],d.getTOCFragment=e=>e.documentElement,d};class ca extends Ni{constructor(e,t){super(t),this.comicBuffer=e,this.readerMode=t.readerMode,this.format=t.format,this.chapterList=[],this.chapterDocList=[],this.book="",this.element="",this.rpc}renderTo(e){return new Promise((t,i)=>d(this,void 0,void 0,function*(){if(this.element=e,K(e,this.isAllowScript),!this.book)try{yield this.parse()}catch(e){console.error(e),i(e)}let n=new oe(this.book);this.chapterList=yield n.getChapter(this.book.toc),this.chapterDocList=yield n.getChapterDoc();let o=this.getDocument();o&&(ee(e,this.readerMode,o),t())}))}parse(){return d(this,void 0,void 0,function*(){try{let e=new Blob([this.comicBuffer]),t=new File([e],"book."+this.format.toLocaleLowerCase(),{lastModified:(new Date).getTime(),type:e.type});const i=this.detectArchiveType();if("zip"===i||"cbz"===i){const e=yield this.makeZipLoader(t);this.book=la(e,t,this.readerMode)}else if("tar"===i||"cbt"===i){const e=yield this.makeTarLoader();this.book=la(e,t,this.readerMode)}else if("rar"===i||"cbr"===i){this.rpc=yield window.RPC.new("./lib/libunrar/worker.js",{loaded:function(){console.info("loaded")},progressShow:function(e,t,i){console.info(i)}}),yield new Promise(e=>setTimeout(e,200));const e=yield this.makeRarLoader();this.book=la(e,t,this.readerMode)}else if("7z"===i||"cb7"===i){const e=yield this.make7zLoader();this.book=la(e,t,this.readerMode)}}catch(e){throw console.error(e),e}})}detectArchiveType(){const e=new Uint8Array(this.comicBuffer);if(e.length<4)return this.format.toLocaleLowerCase();if(80===e[0]&&75===e[1]){const t=[e[2],e[3]];if(3===t[0]&&4===t[1]||5===t[0]&&6===t[1]||7===t[0]&&8===t[1])return"zip"}return 82===e[0]&&97===e[1]&&114===e[2]&&33===e[3]?"rar":55===e[0]&&122===e[1]&&188===e[2]&&175===e[3]?"7z":this.comicBuffer.byteLength>=265&&"ustar"===new TextDecoder("utf8").decode(new Uint8Array(this.comicBuffer,257,5))?"tar":this.format.toLocaleLowerCase()}preCache(){return d(this,void 0,void 0,function*(){return this.book||(yield this.parse()),yield ji(this.book)})}makeZipLoader(e){return d(this,void 0,void 0,function*(){let t=yield i.loadAsync(e);const n=t.files;return{entries:Object.values(n).map(e=>({filename:e.name})),loadText:e=>d(this,void 0,void 0,function*(){let i=t.file(e);return i?i.async("string"):""}),loadBlob:e=>d(this,void 0,void 0,function*(){let i=t.file(e);if(i){let e=yield i.async("arraybuffer");return new Blob([e])}return new Blob([new ArrayBuffer(0)])}),getSize:e=>{let i=t.file(e);if(i)return i._data.uncompressedSize||1}}})}makeTarLoader(){return d(this,void 0,void 0,function*(){const e=yield s(this.comicBuffer),t=new Map(e.map(e=>[e.name,e])),i=e=>(i,...n)=>t.has(i)?e(t.get(i),...n):null,n=i(e=>e.readAsString()),o=i((e,t)=>e.blob);return{entries:e.map(e=>({filename:e.name})),loadText:n,loadBlob:o,getSize:e=>{var i,n;return null!==(n=null===(i=t.get(e))||void 0===i?void 0:i.size)&&void 0!==n?n:1}}})}makeRarLoader(){return d(this,void 0,void 0,function*(){return new Promise((e,t)=>{var i=[this.comicBuffer],n=[{name:"book.rar",content:this.comicBuffer}];this.rpc.transferables=i,this.rpc.unrar(n,null,0).then(t=>{let i=this.getRarEntries(t.ls);const n=new Map(Object.values(i).map(e=>[e.fullFileName,e])),o=e=>(t,...i)=>n.has(t)?e(n.get(t),...i):null,r=o(e=>e.fullFileName),s=o((e,t)=>new Blob([e.fileContent]));e({entries:Object.values(i).map(e=>({filename:e.fullFileName})),loadText:r,loadBlob:s,getSize:e=>{var t,i;return null!==(i=null===(t=n.get(e))||void 0===t?void 0:t.fileSize)&&void 0!==i?i:1}})}).catch(e=>{console.error(e),t(e)})})})}make7zLoader(){return d(this,void 0,void 0,function*(){const e="./lib/7z-wasm/7zz.wasm";if(!window.wasmBinary){const t=yield fetch(e,{credentials:"same-origin"});if(!t.ok)throw"failed to load wasm binary file at '"+e+"'";window.wasmBinary=yield t.arrayBuffer()}const t=yield window.SevenZip({wasmBinary:window.wasmBinary}),i=new Uint8Array(this.comicBuffer),n="archive.cb7",o=t.FS.open(n,"w+");t.FS.write(o,i,0,i.length),t.FS.close(o),t.callMain(["x",n]);const r=t.FS,s=this.get7zEntries(r.lookupPath("/").node),a=new Map(s.map(e=>[e.name,e])),l=e=>(t,...i)=>a.has(t)?e(a.get(t),...i):null,c=l(e=>e.name),d=l((e,t)=>new Blob([e.buffer]));return{entries:s.map(e=>({filename:e.name})),loadText:c,loadBlob:d,getSize:e=>{var t,i;return null!==(i=null===(t=a.get(e))||void 0===t?void 0:t.size)&&void 0!==i?i:1}}})}getRarEntries(e){const t=Object.keys(e);let i=[];for(let n=0;n"archive.cb7"!=e&&"dev"!=e&&"home"!=e&&"proc"!=e&&"tmp"!=e);let n=[];for(let e=0;ed(this,void 0,void 0,function*(){try{this.book||(yield this.parse());const t=yield this.book.getCover();var i=new FileReader;i.readAsDataURL(t),i.onloadend=()=>{e({cover:i.result})}}catch(e){console.error(e),t(e)}}))})}}const da=e=>e?.trim()?.replace(/\s{2,}/g," "),ga=e=>da(e?.textContent),ha={XLINK:"http://www.w3.org/1999/xlink",EPUB:"http://www.idpf.org/2007/ops"},Aa="application/xml",ua="application/xhtml+xml",pa={strong:["strong","self"],emphasis:["em","self"],style:["span","self"],a:"anchor",strikethrough:["s","self"],sub:["sub","self"],sup:["sup","self"],code:["code","self"],image:"image"},fa={epigraph:["blockquote"],subtitle:["h2",pa],"text-author":["p",pa],date:["p",pa],stanza:"stanza"},ma={title:["header",{p:["h1",pa],"empty-line":["br"]}],epigraph:["blockquote","self"],image:"image",annotation:["aside"],section:["section","self"],p:["p",pa],poem:["blockquote",fa],subtitle:["h2",pa],cite:["blockquote","self"],"empty-line":["br"],table:["table",{tr:["tr",["align"]],th:["th",["colspan","rowspan","align","valign"]],td:["td",["colspan","rowspan","align","valign"]]}],"text-author":["p",pa]};fa.epigraph.push(ma);const wa={image:"image",title:["section",{p:["h1",pa],"empty-line":["br"]}],epigraph:["section",ma],section:["section",ma]},Ba=e=>{const t=e.getAttributeNS(ha.XLINK,"href"),[,i]=t.split("#"),n=e.getRootNode().getElementById(i);return n?`data:${n.getAttribute("content-type")};base64,${n.textContent}`:t};class ya{constructor(e){this.fb2=e,this.doc=document.implementation.createDocument(ha.XHTML,"html")}image(e){const t=this.doc.createElement("img");return t.alt=e.getAttribute("alt"),t.title=e.getAttribute("title"),t.setAttribute("src",Ba(e)),t}anchor(e){const t=this.convert(e,{a:["a",pa]});return t.setAttribute("href",e.getAttributeNS(ha.XLINK,"href")),"note"===e.getAttribute("type")&&t.setAttributeNS(ha.EPUB,"epub:type","noteref"),t}stanza(e){const t=this.convert(e,{stanza:["p",{title:["header",{p:["strong",pa],"empty-line":["br"]}],subtitle:["p",pa]}]});for(const i of e.children)"v"===i.nodeName&&(t.append(this.doc.createTextNode(i.textContent)),t.append(this.doc.createElement("br")));return t}convert(e,t){if(3===e.nodeType)return this.doc.createTextNode(e.textContent);if(4===e.nodeType)return this.doc.createCDATASection(e.textContent);if(8===e.nodeType)return this.doc.createComment(e.textContent);const i=t?.[e.nodeName];if(!i)return null;if("string"==typeof i)return this[i](e);const[n,o]=i,r=this.doc.createElement(n);if(e.id&&(r.id=e.id),r.classList.add(e.nodeName),Array.isArray(o))for(const t of o)r.setAttribute(t,e.getAttribute(t));const s="self"===o?t:Array.isArray(o)?null:o;let a=e.firstChild;for(;a;){const e=this.convert(a,s);e&&r.append(e),a=a.nextSibling}return r}}const ba=URL.createObjectURL(new Blob(['\n@namespace epub "http://www.idpf.org/2007/ops";\nbody > img, section > img {\n display: block;\n margin: auto;\n}\n.title {\n text-align: center;\n}\nbody > section > .title, body.notesBodyType > .title {\n margin: 3em 0;\n}\nbody.notesBodyType > section .title {\n text-align: left;\n margin: 1em 0;\n}\np {\n text-indent: 1em;\n margin: 0;\n}\n:not(p) + p, p:first-child {\n text-indent: 0;\n}\n.poem p {\n text-indent: 0;\n margin: 1em 0;\n}\n.text-author, .date {\n text-align: end;\n}\n.text-author:before {\n content: "—";\n}\ntable {\n border-collapse: collapse;\n}\ntd, th {\n padding: .25em;\n}\na[epub|type~="noteref"] {\n font-size: .75em;\n vertical-align: super;\n}\nbody:not(.notesBodyType) > .title, body:not(.notesBodyType) > .epigraph {\n margin: 3em 0;\n}\n'],{type:"text/css"})),Ca="data-foliate-id",va=async e=>{const t={},i=await(async e=>{const t=await e.arrayBuffer(),i=new TextDecoder("utf-8").decode(t),n=new DOMParser,o=n.parseFromString(i,Aa),r=o.xmlEncoding||i.match(/^<\?xml\s+version\s*=\s*["']1.\d+"\s+encoding\s*=\s*["']([A-Za-z0-9._-]*)["']/)?.[1];if(r&&"utf-8"!==r.toLowerCase()){const e=new TextDecoder(r).decode(t);return n.parseFromString(e,Aa)}return o})(e),n=new ya(i),o=e=>i.querySelector(e),r=e=>[...i.querySelectorAll(e)],s=e=>{const t=ga(e.querySelector("nickname"));if(t)return t;const i=ga(e.querySelector("first-name")),n=ga(e.querySelector("middle-name")),o=ga(e.querySelector("last-name"));return{name:[i,n,o].filter(e=>e).join(" "),sortAs:o?[o,[i,n].filter(e=>e).join(" ")].join(", "):null}},a=e=>e?.getAttribute("value")??ga(e),l=o("title-info annotation");t.metadata={title:ga(o("title-info book-title")),identifier:ga(o("document-info id")),language:ga(o("title-info lang")),author:r("title-info author").map(s),translator:r("title-info translator").map(s),producer:r("document-info author").map(s).concat(r("document-info program-used").map(ga)),publisher:ga(o("publish-info publisher")),published:a(o("title-info date")),modified:a(o("document-info date")),description:l?n.convert(l,{annotation:["div",ma]}).innerHTML:null,subject:r("title-info genre").map(ga)},t.getCover=()=>fetch(Ba(o("coverpage image"))).then(e=>e.blob());const c=Array.from(i.querySelectorAll("body"),e=>{const t=n.convert(e,{body:["body",wa]});return[Array.from(t.children,e=>{const t=[e,...e.querySelectorAll("[id]")].map(e=>e.id);return{el:e,ids:t}}),t]}),d=c[0][0].map(({el:e,ids:t})=>({ids:t,titles:Array.from(e.querySelectorAll(":scope > section > .title"),(e,t)=>(e.setAttribute(Ca,t),{title:ga(e),index:t})),el:e})).concat(c.slice(1).map(([e,t])=>{const i=e.map(e=>e.ids).flat();return t.classList.add("notesBodyType"),{ids:i,el:t,linear:"no"}})).map(({ids:e,titles:t,el:i,linear:n})=>{const o=(r=i.outerHTML,`\n\n \n ${r}\n`);var r;const s=new Blob([o],{type:ua}),a=URL.createObjectURL(s);return{ids:e,title:da(i.querySelector(".title, .subtitle, p")?.textContent??(i.classList.contains("title")?i.textContent:"")),titles:t,load:()=>a,createDocument:()=>(new DOMParser).parseFromString(o,ua),size:s.size-Array.from(i.querySelectorAll("[src]"),e=>e.getAttribute("src")?.length??0).reduce((e,t)=>e+t,0),linear:n}}),g=new Map;return t.sections=d.map((e,t)=>{const{ids:i,load:n,createDocument:o,size:r,linear:s}=e;for(const e of i)e&&g.set(e,t);return{id:t,load:n,createDocument:o,size:r,linear:s}}),t.toc=d.map(({title:e,titles:t},i)=>{const n=i.toString();return{label:e,href:n,subitems:t?.length?t.map(({title:e,index:t})=>({label:e,href:`${n}#${t}`})):null}}).filter(e=>e),t.resolveHref=e=>{const[t,i]=e.split("#");return t?{index:Number(t),anchor:e=>e.querySelector(`[${Ca}="${i}"]`)}:{index:g.get(i),anchor:e=>e.getElementById(i)}},t.resolveHrefIndex=e=>{const[t,i]=e.split("#");return t?{index:Number(t)}:{index:g.get(i)}},t.splitTOCHref=e=>e?.split("#")?.map(e=>Number(e))??[],t.getTOCFragment=(e,t)=>e.querySelector(`[${Ca}="${t}"]`),t};class Ea extends Ni{constructor(e,t){super(Object.assign(Object.assign({},t),{format:"FB2"})),this.fb2Buffer=e}renderTo(e){return new Promise((t,i)=>d(this,void 0,void 0,function*(){this.element=e,this.book||(yield this.parse());let i=new oe(this.book);this.chapterList=yield i.getChapter(this.book.toc),this.chapterDocList=yield i.getChapterDoc(),K(e,this.isAllowScript);let n=this.getDocument();n&&(ee(e,this.readerMode,n),t())}))}parse(){return d(this,void 0,void 0,function*(){try{let e=new Blob([this.fb2Buffer]);this.book=yield va(e)}catch(e){throw console.error(e),e}})}preCache(){return d(this,void 0,void 0,function*(){return this.book||(yield this.parse()),yield ji(this.book)})}getMetadata(){return d(this,void 0,void 0,function*(){try{this.book||(yield this.parse());let e=new oe(this.book);return yield e.getMetadata()}catch(e){throw console.error(e),e}})}}class xa extends Ni{constructor(e,t){super(Object.assign(Object.assign({},t),{format:"CACHE"})),this.cacheBuffer=e}renderTo(e){return new Promise((t,i)=>d(this,void 0,void 0,function*(){this.element=e,this.book=yield Pi(this.cacheBuffer);let i=new oe(this.book);this.chapterList=yield i.getChapter(this.book.toc),this.chapterDocList=yield i.getChapterDoc(),K(e,this.isAllowScript);let n=this.getDocument();n&&(ee(e,this.readerMode,n),t())}))}}class Ia extends Ni{constructor(e,t){super(Object.assign(Object.assign({},t),{format:"DOCX"})),this.docxBuffer=e}renderTo(e){return new Promise((t,i)=>d(this,void 0,void 0,function*(){this.element=e,this.book||(yield this.parse());let i=new oe(this.book);this.chapterList=yield i.getChapter(this.book.toc),this.chapterDocList=yield i.getChapterDoc(),K(e,this.isAllowScript);let n=this.getDocument();n&&(ee(e,this.readerMode,n),t())}))}parse(){return d(this,void 0,void 0,function*(){return new Promise((e,t)=>{try{a.convertToHtml({arrayBuffer:this.docxBuffer}).then(t=>d(this,void 0,void 0,function*(){this.book=ta(t.value,!1),e()}))}catch(e){console.error(e),t(e)}})})}preCache(){return d(this,void 0,void 0,function*(){return this.book||(yield this.parse()),yield ji(this.book)})}}class Da extends Ni{constructor(e,t){super(Object.assign(Object.assign({},t),{format:"MD"})),this.mdBuffer=e}renderTo(e){return new Promise((t,i)=>d(this,void 0,void 0,function*(){this.element=e,this.book||(yield this.parse());let i=new oe(this.book);this.chapterList=yield i.getChapter(this.book.toc),this.chapterDocList=yield i.getChapterDoc(),K(e,this.isAllowScript);let n=this.getDocument();n&&(ee(e,this.readerMode,n),t())}))}parse(){return d(this,void 0,void 0,function*(){return new Promise((e,t)=>{try{var i=new Blob([this.mdBuffer],{type:"text/plain"}),n=new FileReader;n.onload=t=>d(this,void 0,void 0,function*(){var i;let n=yield l(null===(i=t.target)||void 0===i?void 0:i.result);this.book=ta(n,!1),e()}),n.readAsText(i,"UTF-8")}catch(e){console.error(e),t(e)}})})}preCache(){return d(this,void 0,void 0,function*(){return this.book||(yield this.parse()),yield ji(this.book)})}}class Qa extends Ni{constructor(e,t){super(t),this.htmlBuffer=e}renderTo(e){return new Promise((t,i)=>d(this,void 0,void 0,function*(){this.element=e,this.book||(yield this.parse());let i=new oe(this.book);this.chapterList=yield i.getChapter(this.book.toc),this.chapterDocList=yield i.getChapterDoc(),K(e,this.isAllowScript);let n=this.getDocument();n&&(ee(e,this.readerMode,n),t())}))}parse(){return d(this,void 0,void 0,function*(){return new Promise((e,t)=>{try{var i=new Blob([this.htmlBuffer],{type:Ui[this.format.toLocaleLowerCase()]}),n=new FileReader;n.onload=t=>d(this,void 0,void 0,function*(){var i;let n=null===(i=t.target)||void 0===i?void 0:i.result;"MHTML"===this.format&&(n=c.convert(n).window.document.documentElement.innerHTML),this.book=ta(n,!1),e()}),n.readAsText(i,"UTF-8")}catch(e){console.error(e),t(e)}})})}preCache(){return d(this,void 0,void 0,function*(){return this.book||(yield this.parse()),yield ji(this.book)})}}class ka{constructor(e,t,i,n,o,r,s,a,l,c,d,g){this.key=e,this.name=t,this.author=i,this.description=n,this.md5=o,this.cover=r,this.format=s,this.publisher=a,this.size=l,this.page=c,this.path=d,this.charset=g}}var Sa;class Ma{static generateBook(e,t,i,n,o,r,s){return new Promise((a,l)=>d(this,void 0,void 0,function*(){try{let l,c,d,g,h,A,u,p,f="";switch([c,d,h,g,A,u]=[e,"","","","",0],t){case"pdf":case"epub":case"mobi":case"azw":case"azw3":case"fb2":p=yield s.getMetadata(),[c,d,h,g,f]=[p.name||e,p.author||"",p.description||"",p.publisher||"",p.cover||""];break;case"cbr":case"cbt":case"cbz":case"cb7":p=yield s.getMetadata(),f=p.cover;break;case"txt":p=yield s.getMetadata(r),A=p.charset}let m=t.toUpperCase();l=(new Date).getTime()+"",a(new ka(l,c,d,h,i,f,m,g,n,u,o,A))}catch(e){console.error(e),l(e)}}))}}Sa=Ma,Ma.getRendition=(e,t,i)=>{let n,o=t.format.toUpperCase();var r,s;return"CACHE"===o?n=new i.CacheRender(e,t):"MOBI"===o||"AZW3"===o||"AZW"===o?n=new i.MobiRender(e,t):"EPUB"===o?n=new i.EpubRender(e,t):"TXT"===o?n=new i.TxtRender(e,t):"MD"===o?n=new i.MdRender(e,t):"PDF"===o?"yes"===t.isConvertPDF?("yes"===t.isScannedPDF&&"external-engine"===t.ocrEngine&&(t.externalWorker={recognize:Sa.getPDFOcrResult}),n=new i.PdfTextRender(e,t)):n=new i.PdfRender(e,t):"FB2"===o?n=new i.Fb2Render(e,t):"DOCX"===o?n=new i.DocxRender(e,t):"HTML"===o||"XHTML"===o||"MHTML"===o||"HTM"===o||"XML"===o?n=new i.HtmlRender(e,t):"CBR"!==o&&"CBT"!==o&&"CBZ"!==o&&"CB7"!==o||(n=new i.ComicRender((r=e,s=new ArrayBuffer(r.byteLength),new Uint8Array(s).set(new Uint8Array(r)),s),t)),n},Ma.initMobileBook=(e,t)=>d(void 0,void 0,void 0,function*(){try{if(window.ReactNativeWebView.postMessage(JSON.stringify({event:"user-agent",userAgent:navigator.userAgent})),"yes"===t.isConvertPDF&&"yes"===t.isScannedPDF&&"PDF"===t.format.toUpperCase()&&"external-engine"===t.ocrEngine)window.file_content=new ArrayBuffer(0);else{const t=yield fetch(e);if(!t.ok)throw new Error(`Failed to download book: ${t.status} ${t.statusText}`);const i=yield t.arrayBuffer();window.ReactNativeWebView.postMessage(JSON.stringify({event:"finish-download"})),window.file_content=i}let i=Sa.getRendition(window.file_content,Object.assign(Object.assign({},t),{isMobile:"yes"}),window.Kookit);window.rendition=i;let n=document.getElementById("page-area");t.format&&"TXT"===t.format.toUpperCase()?yield window.rendition.renderTo(n,t.bookLocation):yield window.rendition.renderTo(n),window.rendition.on("rendered",e=>d(void 0,void 0,void 0,function*(){let i=Object.assign({},window.rendition.getPosition()),n=Object.assign({},yield window.rendition.getProgress());"PDF"===t.format&&e&&(i.chapterDocIndex=e+""),window.ReactNativeWebView.postMessage(JSON.stringify({event:"content-loaded",bookLocation:i,progress:n}))}));const o=function(e,t){let i=0,n=null,o=null;return function(...r){const s=Date.now();s-i>=t?(i=s,e.apply(this,r)):(clearTimeout(n),o=r,n=setTimeout(()=>{i=Date.now(),e.apply(this,null!=o?o:[])},t-(s-i)))}}(()=>d(void 0,void 0,void 0,function*(){let e=Object.assign({},window.rendition.getPosition()),t=Object.assign({},yield window.rendition.getProgress());window.ReactNativeWebView.postMessage(JSON.stringify({event:"page-changed",bookLocation:e,progress:t}))}),3e3);window.rendition.on("page-changed",()=>{o()}),window.rendition.on("scroll-text",()=>d(void 0,void 0,void 0,function*(){setTimeout(()=>d(void 0,void 0,void 0,function*(){let e=Object.assign({},window.rendition.getPosition()),t=Object.assign({},yield window.rendition.getProgress());window.ReactNativeWebView.postMessage(JSON.stringify({event:"scroll-text",bookLocation:e,progress:t}))}),1e3)})),window.ReactNativeWebView.postMessage(JSON.stringify({event:"book-inited",chapterList:window.rendition.getChapter()}))}catch(e){window.ReactNativeWebView.postMessage(JSON.stringify({event:"error",message:"Parse book failed",error:String(e)?String(e):"Unknown error"}))}}),Ma.addMobileBook=(e,t,i,n,o,r,s="")=>d(void 0,void 0,void 0,function*(){var a;try{if(window.ReactNativeWebView.postMessage(JSON.stringify({event:"user-agent",userAgent:navigator.userAgent})),"PDF"===i.toUpperCase()&&o>314572800){t=t.replace(/\.[^/.]+$/,"");let e=i.toUpperCase(),s=(new Date).getTime()+"",a=new ka(s,t,"","",n,"",e,"",o,0,r,"");return void window.ReactNativeWebView.postMessage(JSON.stringify({event:"metadata",bookInfo:a}))}const l=yield fetch(e);if(!l.ok)throw new Error(`Failed to download book: ${l.status} ${l.statusText}`);const c=yield l.arrayBuffer();null===(a=window.ReactNativeWebView)||void 0===a||a.postMessage(JSON.stringify({event:"finish-download"})),window.file_content=c;let d=Sa.getRendition(c,{format:i.toUpperCase(),readerMode:"",charset:"",animation:"",convertChinese:"no",parserRegex:s||"",isDarkMode:"no",isMobile:"yes",password:"",isConvertPDF:"no",backgroundColor:"",isScannedPDF:"",ocrEngine:""},window.Kookit);window.rendition=d,t=t.replace(/\.[^/.]+$/,"");let g=yield Ma.generateBook(t,i,n,o,r,c,d);if(!g||!g.key)return;window.ReactNativeWebView.postMessage(JSON.stringify({event:"metadata",bookInfo:g}))}catch(e){window.ReactNativeWebView.postMessage(JSON.stringify({event:"error",message:"Parse book failed",error:String(e)?String(e):"Unknown error"}))}}),Ma.precacheMobileBook=(e,t)=>d(void 0,void 0,void 0,function*(){let i=yield window.rendition.preCache(window.file_content);if(""===i)window.ReactNativeWebView.postMessage(JSON.stringify({event:"cache",cacheBase64:"",key:t}));else if("err"!==i){try{const n=`${e}/dav/${"cache-"+t+".zip"}`,o=yield fetch(n,{method:"PUT",headers:{"Content-Type":"application/octet-stream",Overwrite:"T"},body:i});if(!o.ok)throw new Error(`上传失败: ${o.status}`);console.info("文件上传成功")}catch(e){console.error("操作失败:"+e)}window.ReactNativeWebView.postMessage(JSON.stringify({event:"cache",key:t}))}else window.ReactNativeWebView.postMessage(JSON.stringify({event:"error",message:"Parse book failed"}));window.file_content=null,window.rendition=null}),Ma.getPDFOcrResult=(e,t)=>new Promise((i,n)=>{try{window.ReactNativeWebView.postMessage(JSON.stringify({event:"get-ocr-result",index:e,imageUrl:t})),document.addEventListener("message",function t(o){try{const n=JSON.parse(o.data);if("ocr-result"===n.event&&n.index===e){document.removeEventListener("message",t);const e=n.text||"";i(e)}}catch(e){document.removeEventListener("message",t),n(e)}})}catch(e){n(e)}});class Fa{static getDefaultCss(e,t=""){const i=[];i.push("::selection{background:#f3a6a68c}"),i.push("::-moz-selection{background:#f3a6a68c}"),i.push(".kookit-note:hover{cursor:pointer;}"),i.push(".kookit-note{line-height:inherit;}"),i.push(".kookit-word-def{border-bottom:1px dashed currentColor;cursor:pointer;line-height:inherit;}"),i.push(".kookit-word-def::after{content:'(' attr(data-meaning) ')';font-size:0.7em;opacity:0.6;margin-left:2px;}");const n=e.getReaderConfig("fontSize")||18,o=e.getReaderConfig("lineHeight")||"1.25",r=e.getReaderConfig("letterSpacing");i.push(".kookit-text-rule-replace,.kookit-text-rule-delete{font-size:0 !important;line-height:0 !important;letter-spacing:0 !important;word-spacing:0 !important;display:inline;vertical-align:baseline;}"),i.push(".kookit-hyphen{display:inline;line-height:inherit;}.kookit-hyphen::after{content:'\\00AD';}"),i.push(".kookit-text-rule-highlight{line-height:inherit !important;}"),i.push(`.kookit-text-rule-replace::after{content:attr(data-kookit-replacement);font-size:${n}px !important;line-height:${o} !important;`+(r?`letter-spacing:${r}px !important;`:"")+"color:inherit;}"),i.push(".kookit-note-icon{line-height:1;font-size:14px;cursor:pointer;}"),i.push(".kookit-note-icon::before{content:'📋';}");let s=e.getAllListConfig("fullTranslationBooks").includes(t)&&e.getReaderConfig("fullTranslationMode")||"";if(i.push(`.kookit-translation-host::after{content: attr(data-kookit-translation);display:block;${"both"===s||"target"===s?this.getCustomCss(e):"display:none;"}${"target"===s?"font-size: "+(e.getReaderConfig("fontSize")||18)+"px !important; text-indent: 2rem !important;":""} }`),"both"!==s&&"target"!==s||(i.push('.kookit-translation-loading:after{content:"";display:block;width:16px;height:16px;margin:4px auto 0;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;opacity:0.4;animation:kookit-spin 0.8s linear infinite;}'),i.push("@keyframes kookit-spin{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}")),i.push("body,html,svg{margin: 0px !important; padding: 0px !important; font-size: 18px; background-color: transparent !important;background-size: contain !important; background-position: top left !important;}"),"vertical"!==e.getReaderConfig("textOrientation")&&i.push("body,html{writing-mode: horizontal-tb !important;}"),i.push(`a, article, cite, div, li, p, span:not(.kookit-note):not(.kookit-note-icon):not(.kookit-highlight-text):not(.kookit-note-tooltip):not(.kookit-word-def):not(.kookit-word-tooltip):not(.kookit-text-rule-replace):not(.kookit-text-rule-delete):not([class*="hljs"]), pre, dt, dd, table, bold, font, blockquote{${this.getCustomCss(e)}}`),i.push(`h1, h2, h3, h4, h5, h6, title{${this.getCustomCss(e,!0)}}`),i.push("code,pre{white-space:pre-wrap !important;word-wrap:break-word;word-break:break-word;overflow-wrap:anywhere;overflow:visible !important;overflow-x:visible !important;overflow-y:visible !important;max-height:none !important;break-inside:auto !important;page-break-inside:auto !important;-webkit-column-break-inside:auto !important;}"),i.push("table{width:100% !important;max-width:100% !important;table-layout:fixed !important;box-sizing:border-box;border-collapse:collapse;margin:20px 0;line-height:1.6;margin-left:0 !important;margin-right:0 !important;}"),i.push("td,th{word-break:break-word;overflow-wrap:anywhere;overflow:hidden;box-sizing:border-box;}"),i.push("thead th{font-weight:bold;padding:14px 12px;text-align:left;white-space:normal;border-bottom:2px solid #ccc;background-color:rgba(0,0,0,0.05);}"),i.push("td,th{padding:12px 14px;vertical-align:top;text-align:left;}"),i.push("rt span{font-size: unset !important;}"),i.push("rt{-webkit-user-select:none;user-select:none;}"),"yes"===e.getReaderConfig("isOverwriteLink")&&(i.push("a{color: #0066cc !important; text-decoration: underline !important; cursor: pointer !important;}"),i.push("a:hover{color: #004080 !important;}"),i.push("a:visited{color: #6600cc !important;}")),"yes"===e.getReaderConfig("isOverwriteBackground")&&i.push("body,html{background-color: transparent !important;}"),"yes"===e.getReaderConfig("isMergeWord")){const t=e.getReaderConfig("fontSize")||18;i.push(`h1{font-size: ${t}px !important;}`)}return i.push(this.getComicCss(e)),i.push('aside[epub\\:type="footnote"],aside[epub\\:type="note"],aside[epub\\:type="endnote"],aside[epub\\:type="rearnote"],.hide{font-size:0px !important;}'),i.push('aside[type="sidebar"],aside[epub\\:type="sidebar"]{ margin: 1.5em 0; padding: 1.2em 1.4em; background-color: #c7eafc; break-inside: avoid; page-break-inside: avoid; }'),i.join("")}static getCustomCss(e,t=!1){let i=[];if(!t&&e.getReaderConfig("fontSize")&&i.push(`font-size: ${e.getReaderConfig("fontSize")}px !important`),t)if(e.getReaderConfig("fontSize")){const t=Math.round(1.25*parseInt(e.getReaderConfig("fontSize")||"18"));i.push(`font-size: ${t}px`)}else i.push("font-size: 1.25em");const n=e.getReaderConfig("lineHeight");n&&i.push(`line-height: ${n} !important`);const o=e.getReaderConfig("fontFamily"),r=e.getReaderConfig("subFontFamily");if(o||r){i.push(`font-family: ${o||""} ${r?(o?", ":"")+r:""} !important`);const e={extralight:"200",light:"300",normal:"400",regular:"400",medium:"500",bold:"700",heavy:"900"},t=`${o||""} ${r||""}`.toLowerCase();for(const[n,o]of Object.entries(e))if(t.includes(n)){i.push(`font-weight: ${o} !important`);break}}const s=e.getReaderConfig("textColor"),a=e.getReaderConfig("backgroundColor"),l=e.getReaderConfig("appSkin"),c=e.getReaderConfig("isOSNight"),d=e.getReaderConfig("isOverwriteText"),g=e.getReaderConfig("isOverwriteBackground");let h="",A="";s?h=s:("rgba(44,47,49,1)"===a||"night"===l||"system"===l&&"yes"===c)&&(h="white"),("yes"===d||"rgba(44,47,49,1)"===a||"night"===l||"system"===l&&"yes"===c)&&(A="!important"),h&&i.push(`color: ${h} ${A}`.trim()),"yes"===g&&i.push("background-color: transparent !important");const u=e.getReaderConfig("letterSpacing");u&&i.push(`letter-spacing: ${u}px !important`);const p=e.getReaderConfig("textAlign");p&&i.push(`text-align: ${p} !important`),"yes"===e.getReaderConfig("isBold")&&i.push("font-weight: bold !important"),"vertical"!==e.getReaderConfig("textOrientation")&&i.push("writing-mode: horizontal-tb !important"),"yes"===e.getReaderConfig("isItalic")&&i.push("font-style: italic !important"),"yes"===e.getReaderConfig("isShadow")&&i.push("text-shadow: 2px 2px 2px #cccccc !important"),"yes"===e.getReaderConfig("isHyphenation")&&(i.push("hyphens: auto !important"),i.push("text-align: justify !important")),"yes"===e.getReaderConfig("isOrphanWidow")&&(i.push("orphans: 1 !important"),i.push("widows: 1 !important"));"yes"===e.getReaderConfig("isIndent")&&(t?i.push("text-indent: 0em !important"):i.push("text-indent: 2em !important")),"yes"===e.getReaderConfig("isUnderline")&&i.push("text-decoration: underline !important");const f=e.getReaderConfig("paraSpacing");return f&&(i.push(`margin-bottom: ${f}px !important`),i.push(`margin-top: ${f}px !important`)),i.push("word-wrap: break-word"),i.push("overflow: visible !important"),i.join("; ")+";"}static getComicCss(e){const t=[];t.push("div.fs{height:unset !important;width:100% !important;min-height:100% !important;position:relative;text-align:left;vertical-align:middle;}"),t.push("div.fs div{height:unset !important;min-height:100% !important;width:100% !important;margin:auto;text-align:center;vertical-align:middle;}"),t.push(".div_view{height:unset !important;width:100% !important;min-height:100% !important;margin:auto;text-align:center;vertical-align:middle;}");const i="scroll"===e.getReaderConfig("readerMode");let n=".singlePage{";i&&(n+="max-width: 100% !important;"),i&&(n+="max-height: unset !important;");return n+=`height:${i?"unset":"100%"}!important;`,n+="width:100%!important;position: unset !important;",n+="}",t.push(n),t.join("")}}export{Ma as BookHelper,xa as CacheRender,ca as ComicRender,Ia as DocxRender,Xr as EpubRender,Ea as Fb2Render,Qa as HtmlRender,Da as MdRender,Gs as MobiRender,Zs as PdfRender,ea as PdfTextRender,Fa as StyleHelper,aa as TxtRender};