jsQR.js 251 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102
  1. (function webpackUniversalModuleDefinition(root, factory) {
  2. if(typeof exports === 'object' && typeof module === 'object')
  3. module.exports = factory();
  4. else if(typeof define === 'function' && define.amd)
  5. define([], factory);
  6. else if(typeof exports === 'object')
  7. exports["jsQR"] = factory();
  8. else
  9. root["jsQR"] = factory();
  10. })(typeof self !== 'undefined' ? self : this, function() {
  11. return /******/ (function(modules) { // webpackBootstrap
  12. /******/ // The module cache
  13. /******/ var installedModules = {};
  14. /******/
  15. /******/ // The require function
  16. /******/ function __webpack_require__(moduleId) {
  17. /******/
  18. /******/ // Check if module is in cache
  19. /******/ if(installedModules[moduleId]) {
  20. /******/ return installedModules[moduleId].exports;
  21. /******/ }
  22. /******/ // Create a new module (and put it into the cache)
  23. /******/ var module = installedModules[moduleId] = {
  24. /******/ i: moduleId,
  25. /******/ l: false,
  26. /******/ exports: {}
  27. /******/ };
  28. /******/
  29. /******/ // Execute the module function
  30. /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
  31. /******/
  32. /******/ // Flag the module as loaded
  33. /******/ module.l = true;
  34. /******/
  35. /******/ // Return the exports of the module
  36. /******/ return module.exports;
  37. /******/ }
  38. /******/
  39. /******/
  40. /******/ // expose the modules object (__webpack_modules__)
  41. /******/ __webpack_require__.m = modules;
  42. /******/
  43. /******/ // expose the module cache
  44. /******/ __webpack_require__.c = installedModules;
  45. /******/
  46. /******/ // define getter function for harmony exports
  47. /******/ __webpack_require__.d = function(exports, name, getter) {
  48. /******/ if(!__webpack_require__.o(exports, name)) {
  49. /******/ Object.defineProperty(exports, name, {
  50. /******/ configurable: false,
  51. /******/ enumerable: true,
  52. /******/ get: getter
  53. /******/ });
  54. /******/ }
  55. /******/ };
  56. /******/
  57. /******/ // getDefaultExport function for compatibility with non-harmony modules
  58. /******/ __webpack_require__.n = function(module) {
  59. /******/ var getter = module && module.__esModule ?
  60. /******/ function getDefault() { return module['default']; } :
  61. /******/ function getModuleExports() { return module; };
  62. /******/ __webpack_require__.d(getter, 'a', getter);
  63. /******/ return getter;
  64. /******/ };
  65. /******/
  66. /******/ // Object.prototype.hasOwnProperty.call
  67. /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
  68. /******/
  69. /******/ // __webpack_public_path__
  70. /******/ __webpack_require__.p = "";
  71. /******/
  72. /******/ // Load entry module and return exports
  73. /******/ return __webpack_require__(__webpack_require__.s = 3);
  74. /******/ })
  75. /************************************************************************/
  76. /******/ ([
  77. /* 0 */
  78. /***/ (function(module, exports, __webpack_require__) {
  79. "use strict";
  80. Object.defineProperty(exports, "__esModule", { value: true });
  81. var BitMatrix = /** @class */ (function () {
  82. function BitMatrix(data, width) {
  83. this.width = width;
  84. this.height = data.length / width;
  85. this.data = data;
  86. }
  87. BitMatrix.createEmpty = function (width, height) {
  88. return new BitMatrix(new Uint8ClampedArray(width * height), width);
  89. };
  90. BitMatrix.prototype.get = function (x, y) {
  91. if (x < 0 || x >= this.width || y < 0 || y >= this.height) {
  92. return false;
  93. }
  94. return !!this.data[y * this.width + x];
  95. };
  96. BitMatrix.prototype.set = function (x, y, v) {
  97. this.data[y * this.width + x] = v ? 1 : 0;
  98. };
  99. BitMatrix.prototype.setRegion = function (left, top, width, height, v) {
  100. for (var y = top; y < top + height; y++) {
  101. for (var x = left; x < left + width; x++) {
  102. this.set(x, y, !!v);
  103. }
  104. }
  105. };
  106. return BitMatrix;
  107. }());
  108. exports.BitMatrix = BitMatrix;
  109. /***/ }),
  110. /* 1 */
  111. /***/ (function(module, exports, __webpack_require__) {
  112. "use strict";
  113. Object.defineProperty(exports, "__esModule", { value: true });
  114. var GenericGFPoly_1 = __webpack_require__(2);
  115. function addOrSubtractGF(a, b) {
  116. return a ^ b; // tslint:disable-line:no-bitwise
  117. }
  118. exports.addOrSubtractGF = addOrSubtractGF;
  119. var GenericGF = /** @class */ (function () {
  120. function GenericGF(primitive, size, genBase) {
  121. this.primitive = primitive;
  122. this.size = size;
  123. this.generatorBase = genBase;
  124. this.expTable = new Array(this.size);
  125. this.logTable = new Array(this.size);
  126. var x = 1;
  127. for (var i = 0; i < this.size; i++) {
  128. this.expTable[i] = x;
  129. x = x * 2;
  130. if (x >= this.size) {
  131. x = (x ^ this.primitive) & (this.size - 1); // tslint:disable-line:no-bitwise
  132. }
  133. }
  134. for (var i = 0; i < this.size - 1; i++) {
  135. this.logTable[this.expTable[i]] = i;
  136. }
  137. this.zero = new GenericGFPoly_1.default(this, Uint8ClampedArray.from([0]));
  138. this.one = new GenericGFPoly_1.default(this, Uint8ClampedArray.from([1]));
  139. }
  140. GenericGF.prototype.multiply = function (a, b) {
  141. if (a === 0 || b === 0) {
  142. return 0;
  143. }
  144. return this.expTable[(this.logTable[a] + this.logTable[b]) % (this.size - 1)];
  145. };
  146. GenericGF.prototype.inverse = function (a) {
  147. if (a === 0) {
  148. throw new Error("Can't invert 0");
  149. }
  150. return this.expTable[this.size - this.logTable[a] - 1];
  151. };
  152. GenericGF.prototype.buildMonomial = function (degree, coefficient) {
  153. if (degree < 0) {
  154. throw new Error("Invalid monomial degree less than 0");
  155. }
  156. if (coefficient === 0) {
  157. return this.zero;
  158. }
  159. var coefficients = new Uint8ClampedArray(degree + 1);
  160. coefficients[0] = coefficient;
  161. return new GenericGFPoly_1.default(this, coefficients);
  162. };
  163. GenericGF.prototype.log = function (a) {
  164. if (a === 0) {
  165. throw new Error("Can't take log(0)");
  166. }
  167. return this.logTable[a];
  168. };
  169. GenericGF.prototype.exp = function (a) {
  170. return this.expTable[a];
  171. };
  172. return GenericGF;
  173. }());
  174. exports.default = GenericGF;
  175. /***/ }),
  176. /* 2 */
  177. /***/ (function(module, exports, __webpack_require__) {
  178. "use strict";
  179. Object.defineProperty(exports, "__esModule", { value: true });
  180. var GenericGF_1 = __webpack_require__(1);
  181. var GenericGFPoly = /** @class */ (function () {
  182. function GenericGFPoly(field, coefficients) {
  183. if (coefficients.length === 0) {
  184. throw new Error("No coefficients.");
  185. }
  186. this.field = field;
  187. var coefficientsLength = coefficients.length;
  188. if (coefficientsLength > 1 && coefficients[0] === 0) {
  189. // Leading term must be non-zero for anything except the constant polynomial "0"
  190. var firstNonZero = 1;
  191. while (firstNonZero < coefficientsLength && coefficients[firstNonZero] === 0) {
  192. firstNonZero++;
  193. }
  194. if (firstNonZero === coefficientsLength) {
  195. this.coefficients = field.zero.coefficients;
  196. }
  197. else {
  198. this.coefficients = new Uint8ClampedArray(coefficientsLength - firstNonZero);
  199. for (var i = 0; i < this.coefficients.length; i++) {
  200. this.coefficients[i] = coefficients[firstNonZero + i];
  201. }
  202. }
  203. }
  204. else {
  205. this.coefficients = coefficients;
  206. }
  207. }
  208. GenericGFPoly.prototype.degree = function () {
  209. return this.coefficients.length - 1;
  210. };
  211. GenericGFPoly.prototype.isZero = function () {
  212. return this.coefficients[0] === 0;
  213. };
  214. GenericGFPoly.prototype.getCoefficient = function (degree) {
  215. return this.coefficients[this.coefficients.length - 1 - degree];
  216. };
  217. GenericGFPoly.prototype.addOrSubtract = function (other) {
  218. var _a;
  219. if (this.isZero()) {
  220. return other;
  221. }
  222. if (other.isZero()) {
  223. return this;
  224. }
  225. var smallerCoefficients = this.coefficients;
  226. var largerCoefficients = other.coefficients;
  227. if (smallerCoefficients.length > largerCoefficients.length) {
  228. _a = [largerCoefficients, smallerCoefficients], smallerCoefficients = _a[0], largerCoefficients = _a[1];
  229. }
  230. var sumDiff = new Uint8ClampedArray(largerCoefficients.length);
  231. var lengthDiff = largerCoefficients.length - smallerCoefficients.length;
  232. for (var i = 0; i < lengthDiff; i++) {
  233. sumDiff[i] = largerCoefficients[i];
  234. }
  235. for (var i = lengthDiff; i < largerCoefficients.length; i++) {
  236. sumDiff[i] = GenericGF_1.addOrSubtractGF(smallerCoefficients[i - lengthDiff], largerCoefficients[i]);
  237. }
  238. return new GenericGFPoly(this.field, sumDiff);
  239. };
  240. GenericGFPoly.prototype.multiply = function (scalar) {
  241. if (scalar === 0) {
  242. return this.field.zero;
  243. }
  244. if (scalar === 1) {
  245. return this;
  246. }
  247. var size = this.coefficients.length;
  248. var product = new Uint8ClampedArray(size);
  249. for (var i = 0; i < size; i++) {
  250. product[i] = this.field.multiply(this.coefficients[i], scalar);
  251. }
  252. return new GenericGFPoly(this.field, product);
  253. };
  254. GenericGFPoly.prototype.multiplyPoly = function (other) {
  255. if (this.isZero() || other.isZero()) {
  256. return this.field.zero;
  257. }
  258. var aCoefficients = this.coefficients;
  259. var aLength = aCoefficients.length;
  260. var bCoefficients = other.coefficients;
  261. var bLength = bCoefficients.length;
  262. var product = new Uint8ClampedArray(aLength + bLength - 1);
  263. for (var i = 0; i < aLength; i++) {
  264. var aCoeff = aCoefficients[i];
  265. for (var j = 0; j < bLength; j++) {
  266. product[i + j] = GenericGF_1.addOrSubtractGF(product[i + j], this.field.multiply(aCoeff, bCoefficients[j]));
  267. }
  268. }
  269. return new GenericGFPoly(this.field, product);
  270. };
  271. GenericGFPoly.prototype.multiplyByMonomial = function (degree, coefficient) {
  272. if (degree < 0) {
  273. throw new Error("Invalid degree less than 0");
  274. }
  275. if (coefficient === 0) {
  276. return this.field.zero;
  277. }
  278. var size = this.coefficients.length;
  279. var product = new Uint8ClampedArray(size + degree);
  280. for (var i = 0; i < size; i++) {
  281. product[i] = this.field.multiply(this.coefficients[i], coefficient);
  282. }
  283. return new GenericGFPoly(this.field, product);
  284. };
  285. GenericGFPoly.prototype.evaluateAt = function (a) {
  286. var result = 0;
  287. if (a === 0) {
  288. // Just return the x^0 coefficient
  289. return this.getCoefficient(0);
  290. }
  291. var size = this.coefficients.length;
  292. if (a === 1) {
  293. // Just the sum of the coefficients
  294. this.coefficients.forEach(function (coefficient) {
  295. result = GenericGF_1.addOrSubtractGF(result, coefficient);
  296. });
  297. return result;
  298. }
  299. result = this.coefficients[0];
  300. for (var i = 1; i < size; i++) {
  301. result = GenericGF_1.addOrSubtractGF(this.field.multiply(a, result), this.coefficients[i]);
  302. }
  303. return result;
  304. };
  305. return GenericGFPoly;
  306. }());
  307. exports.default = GenericGFPoly;
  308. /***/ }),
  309. /* 3 */
  310. /***/ (function(module, exports, __webpack_require__) {
  311. "use strict";
  312. Object.defineProperty(exports, "__esModule", { value: true });
  313. var binarizer_1 = __webpack_require__(4);
  314. var decoder_1 = __webpack_require__(5);
  315. var extractor_1 = __webpack_require__(11);
  316. var locator_1 = __webpack_require__(12);
  317. function scan(matrix) {
  318. var locations = locator_1.locate(matrix);
  319. if (!locations) {
  320. return null;
  321. }
  322. for (var _i = 0, locations_1 = locations; _i < locations_1.length; _i++) {
  323. var location_1 = locations_1[_i];
  324. var extracted = extractor_1.extract(matrix, location_1);
  325. var decoded = decoder_1.decode(extracted.matrix);
  326. if (decoded) {
  327. return {
  328. binaryData: decoded.bytes,
  329. data: decoded.text,
  330. chunks: decoded.chunks,
  331. version: decoded.version,
  332. location: {
  333. topRightCorner: extracted.mappingFunction(location_1.dimension, 0),
  334. topLeftCorner: extracted.mappingFunction(0, 0),
  335. bottomRightCorner: extracted.mappingFunction(location_1.dimension, location_1.dimension),
  336. bottomLeftCorner: extracted.mappingFunction(0, location_1.dimension),
  337. topRightFinderPattern: location_1.topRight,
  338. topLeftFinderPattern: location_1.topLeft,
  339. bottomLeftFinderPattern: location_1.bottomLeft,
  340. bottomRightAlignmentPattern: location_1.alignmentPattern,
  341. },
  342. };
  343. }
  344. }
  345. return null;
  346. }
  347. var defaultOptions = {
  348. inversionAttempts: "attemptBoth",
  349. };
  350. function jsQR(data, width, height, providedOptions) {
  351. if (providedOptions === void 0) { providedOptions = {}; }
  352. var options = defaultOptions;
  353. Object.keys(options || {}).forEach(function (opt) {
  354. options[opt] = providedOptions[opt] || options[opt];
  355. });
  356. var shouldInvert = options.inversionAttempts === "attemptBoth" || options.inversionAttempts === "invertFirst";
  357. var tryInvertedFirst = options.inversionAttempts === "onlyInvert" || options.inversionAttempts === "invertFirst";
  358. var _a = binarizer_1.binarize(data, width, height, shouldInvert), binarized = _a.binarized, inverted = _a.inverted;
  359. var result = scan(tryInvertedFirst ? inverted : binarized);
  360. if (!result && (options.inversionAttempts === "attemptBoth" || options.inversionAttempts === "invertFirst")) {
  361. result = scan(tryInvertedFirst ? binarized : inverted);
  362. }
  363. return result;
  364. }
  365. jsQR.default = jsQR;
  366. exports.default = jsQR;
  367. /***/ }),
  368. /* 4 */
  369. /***/ (function(module, exports, __webpack_require__) {
  370. "use strict";
  371. Object.defineProperty(exports, "__esModule", { value: true });
  372. var BitMatrix_1 = __webpack_require__(0);
  373. var REGION_SIZE = 8;
  374. var MIN_DYNAMIC_RANGE = 24;
  375. function numBetween(value, min, max) {
  376. return value < min ? min : value > max ? max : value;
  377. }
  378. // Like BitMatrix but accepts arbitry Uint8 values
  379. var Matrix = /** @class */ (function () {
  380. function Matrix(width, height) {
  381. this.width = width;
  382. this.data = new Uint8ClampedArray(width * height);
  383. }
  384. Matrix.prototype.get = function (x, y) {
  385. return this.data[y * this.width + x];
  386. };
  387. Matrix.prototype.set = function (x, y, value) {
  388. this.data[y * this.width + x] = value;
  389. };
  390. return Matrix;
  391. }());
  392. function binarize(data, width, height, returnInverted) {
  393. if (data.length !== width * height * 4) {
  394. throw new Error("Malformed data passed to binarizer.");
  395. }
  396. // Convert image to greyscale
  397. var greyscalePixels = new Matrix(width, height);
  398. for (var x = 0; x < width; x++) {
  399. for (var y = 0; y < height; y++) {
  400. var r = data[((y * width + x) * 4) + 0];
  401. var g = data[((y * width + x) * 4) + 1];
  402. var b = data[((y * width + x) * 4) + 2];
  403. greyscalePixels.set(x, y, 0.2126 * r + 0.7152 * g + 0.0722 * b);
  404. }
  405. }
  406. var horizontalRegionCount = Math.ceil(width / REGION_SIZE);
  407. var verticalRegionCount = Math.ceil(height / REGION_SIZE);
  408. var blackPoints = new Matrix(horizontalRegionCount, verticalRegionCount);
  409. for (var verticalRegion = 0; verticalRegion < verticalRegionCount; verticalRegion++) {
  410. for (var hortizontalRegion = 0; hortizontalRegion < horizontalRegionCount; hortizontalRegion++) {
  411. var sum = 0;
  412. var min = Infinity;
  413. var max = 0;
  414. for (var y = 0; y < REGION_SIZE; y++) {
  415. for (var x = 0; x < REGION_SIZE; x++) {
  416. var pixelLumosity = greyscalePixels.get(hortizontalRegion * REGION_SIZE + x, verticalRegion * REGION_SIZE + y);
  417. sum += pixelLumosity;
  418. min = Math.min(min, pixelLumosity);
  419. max = Math.max(max, pixelLumosity);
  420. }
  421. }
  422. var average = sum / (Math.pow(REGION_SIZE, 2));
  423. if (max - min <= MIN_DYNAMIC_RANGE) {
  424. // If variation within the block is low, assume this is a block with only light or only
  425. // dark pixels. In that case we do not want to use the average, as it would divide this
  426. // low contrast area into black and white pixels, essentially creating data out of noise.
  427. //
  428. // Default the blackpoint for these blocks to be half the min - effectively white them out
  429. average = min / 2;
  430. if (verticalRegion > 0 && hortizontalRegion > 0) {
  431. // Correct the "white background" assumption for blocks that have neighbors by comparing
  432. // the pixels in this block to the previously calculated black points. This is based on
  433. // the fact that dark barcode symbology is always surrounded by some amount of light
  434. // background for which reasonable black point estimates were made. The bp estimated at
  435. // the boundaries is used for the interior.
  436. // The (min < bp) is arbitrary but works better than other heuristics that were tried.
  437. var averageNeighborBlackPoint = (blackPoints.get(hortizontalRegion, verticalRegion - 1) +
  438. (2 * blackPoints.get(hortizontalRegion - 1, verticalRegion)) +
  439. blackPoints.get(hortizontalRegion - 1, verticalRegion - 1)) / 4;
  440. if (min < averageNeighborBlackPoint) {
  441. average = averageNeighborBlackPoint;
  442. }
  443. }
  444. }
  445. blackPoints.set(hortizontalRegion, verticalRegion, average);
  446. }
  447. }
  448. var binarized = BitMatrix_1.BitMatrix.createEmpty(width, height);
  449. var inverted = null;
  450. if (returnInverted) {
  451. inverted = BitMatrix_1.BitMatrix.createEmpty(width, height);
  452. }
  453. for (var verticalRegion = 0; verticalRegion < verticalRegionCount; verticalRegion++) {
  454. for (var hortizontalRegion = 0; hortizontalRegion < horizontalRegionCount; hortizontalRegion++) {
  455. var left = numBetween(hortizontalRegion, 2, horizontalRegionCount - 3);
  456. var top_1 = numBetween(verticalRegion, 2, verticalRegionCount - 3);
  457. var sum = 0;
  458. for (var xRegion = -2; xRegion <= 2; xRegion++) {
  459. for (var yRegion = -2; yRegion <= 2; yRegion++) {
  460. sum += blackPoints.get(left + xRegion, top_1 + yRegion);
  461. }
  462. }
  463. var threshold = sum / 25;
  464. for (var xRegion = 0; xRegion < REGION_SIZE; xRegion++) {
  465. for (var yRegion = 0; yRegion < REGION_SIZE; yRegion++) {
  466. var x = hortizontalRegion * REGION_SIZE + xRegion;
  467. var y = verticalRegion * REGION_SIZE + yRegion;
  468. var lum = greyscalePixels.get(x, y);
  469. binarized.set(x, y, lum <= threshold);
  470. if (returnInverted) {
  471. inverted.set(x, y, !(lum <= threshold));
  472. }
  473. }
  474. }
  475. }
  476. }
  477. if (returnInverted) {
  478. return { binarized: binarized, inverted: inverted };
  479. }
  480. return { binarized: binarized };
  481. }
  482. exports.binarize = binarize;
  483. /***/ }),
  484. /* 5 */
  485. /***/ (function(module, exports, __webpack_require__) {
  486. "use strict";
  487. Object.defineProperty(exports, "__esModule", { value: true });
  488. var BitMatrix_1 = __webpack_require__(0);
  489. var decodeData_1 = __webpack_require__(6);
  490. var reedsolomon_1 = __webpack_require__(9);
  491. var version_1 = __webpack_require__(10);
  492. // tslint:disable:no-bitwise
  493. function numBitsDiffering(x, y) {
  494. var z = x ^ y;
  495. var bitCount = 0;
  496. while (z) {
  497. bitCount++;
  498. z &= z - 1;
  499. }
  500. return bitCount;
  501. }
  502. function pushBit(bit, byte) {
  503. return (byte << 1) | bit;
  504. }
  505. // tslint:enable:no-bitwise
  506. var FORMAT_INFO_TABLE = [
  507. { bits: 0x5412, formatInfo: { errorCorrectionLevel: 1, dataMask: 0 } },
  508. { bits: 0x5125, formatInfo: { errorCorrectionLevel: 1, dataMask: 1 } },
  509. { bits: 0x5E7C, formatInfo: { errorCorrectionLevel: 1, dataMask: 2 } },
  510. { bits: 0x5B4B, formatInfo: { errorCorrectionLevel: 1, dataMask: 3 } },
  511. { bits: 0x45F9, formatInfo: { errorCorrectionLevel: 1, dataMask: 4 } },
  512. { bits: 0x40CE, formatInfo: { errorCorrectionLevel: 1, dataMask: 5 } },
  513. { bits: 0x4F97, formatInfo: { errorCorrectionLevel: 1, dataMask: 6 } },
  514. { bits: 0x4AA0, formatInfo: { errorCorrectionLevel: 1, dataMask: 7 } },
  515. { bits: 0x77C4, formatInfo: { errorCorrectionLevel: 0, dataMask: 0 } },
  516. { bits: 0x72F3, formatInfo: { errorCorrectionLevel: 0, dataMask: 1 } },
  517. { bits: 0x7DAA, formatInfo: { errorCorrectionLevel: 0, dataMask: 2 } },
  518. { bits: 0x789D, formatInfo: { errorCorrectionLevel: 0, dataMask: 3 } },
  519. { bits: 0x662F, formatInfo: { errorCorrectionLevel: 0, dataMask: 4 } },
  520. { bits: 0x6318, formatInfo: { errorCorrectionLevel: 0, dataMask: 5 } },
  521. { bits: 0x6C41, formatInfo: { errorCorrectionLevel: 0, dataMask: 6 } },
  522. { bits: 0x6976, formatInfo: { errorCorrectionLevel: 0, dataMask: 7 } },
  523. { bits: 0x1689, formatInfo: { errorCorrectionLevel: 3, dataMask: 0 } },
  524. { bits: 0x13BE, formatInfo: { errorCorrectionLevel: 3, dataMask: 1 } },
  525. { bits: 0x1CE7, formatInfo: { errorCorrectionLevel: 3, dataMask: 2 } },
  526. { bits: 0x19D0, formatInfo: { errorCorrectionLevel: 3, dataMask: 3 } },
  527. { bits: 0x0762, formatInfo: { errorCorrectionLevel: 3, dataMask: 4 } },
  528. { bits: 0x0255, formatInfo: { errorCorrectionLevel: 3, dataMask: 5 } },
  529. { bits: 0x0D0C, formatInfo: { errorCorrectionLevel: 3, dataMask: 6 } },
  530. { bits: 0x083B, formatInfo: { errorCorrectionLevel: 3, dataMask: 7 } },
  531. { bits: 0x355F, formatInfo: { errorCorrectionLevel: 2, dataMask: 0 } },
  532. { bits: 0x3068, formatInfo: { errorCorrectionLevel: 2, dataMask: 1 } },
  533. { bits: 0x3F31, formatInfo: { errorCorrectionLevel: 2, dataMask: 2 } },
  534. { bits: 0x3A06, formatInfo: { errorCorrectionLevel: 2, dataMask: 3 } },
  535. { bits: 0x24B4, formatInfo: { errorCorrectionLevel: 2, dataMask: 4 } },
  536. { bits: 0x2183, formatInfo: { errorCorrectionLevel: 2, dataMask: 5 } },
  537. { bits: 0x2EDA, formatInfo: { errorCorrectionLevel: 2, dataMask: 6 } },
  538. { bits: 0x2BED, formatInfo: { errorCorrectionLevel: 2, dataMask: 7 } },
  539. ];
  540. var DATA_MASKS = [
  541. function (p) { return ((p.y + p.x) % 2) === 0; },
  542. function (p) { return (p.y % 2) === 0; },
  543. function (p) { return p.x % 3 === 0; },
  544. function (p) { return (p.y + p.x) % 3 === 0; },
  545. function (p) { return (Math.floor(p.y / 2) + Math.floor(p.x / 3)) % 2 === 0; },
  546. function (p) { return ((p.x * p.y) % 2) + ((p.x * p.y) % 3) === 0; },
  547. function (p) { return ((((p.y * p.x) % 2) + (p.y * p.x) % 3) % 2) === 0; },
  548. function (p) { return ((((p.y + p.x) % 2) + (p.y * p.x) % 3) % 2) === 0; },
  549. ];
  550. function buildFunctionPatternMask(version) {
  551. var dimension = 17 + 4 * version.versionNumber;
  552. var matrix = BitMatrix_1.BitMatrix.createEmpty(dimension, dimension);
  553. matrix.setRegion(0, 0, 9, 9, true); // Top left finder pattern + separator + format
  554. matrix.setRegion(dimension - 8, 0, 8, 9, true); // Top right finder pattern + separator + format
  555. matrix.setRegion(0, dimension - 8, 9, 8, true); // Bottom left finder pattern + separator + format
  556. // Alignment patterns
  557. for (var _i = 0, _a = version.alignmentPatternCenters; _i < _a.length; _i++) {
  558. var x = _a[_i];
  559. for (var _b = 0, _c = version.alignmentPatternCenters; _b < _c.length; _b++) {
  560. var y = _c[_b];
  561. if (!(x === 6 && y === 6 || x === 6 && y === dimension - 7 || x === dimension - 7 && y === 6)) {
  562. matrix.setRegion(x - 2, y - 2, 5, 5, true);
  563. }
  564. }
  565. }
  566. matrix.setRegion(6, 9, 1, dimension - 17, true); // Vertical timing pattern
  567. matrix.setRegion(9, 6, dimension - 17, 1, true); // Horizontal timing pattern
  568. if (version.versionNumber > 6) {
  569. matrix.setRegion(dimension - 11, 0, 3, 6, true); // Version info, top right
  570. matrix.setRegion(0, dimension - 11, 6, 3, true); // Version info, bottom left
  571. }
  572. return matrix;
  573. }
  574. function readCodewords(matrix, version, formatInfo) {
  575. var dataMask = DATA_MASKS[formatInfo.dataMask];
  576. var dimension = matrix.height;
  577. var functionPatternMask = buildFunctionPatternMask(version);
  578. var codewords = [];
  579. var currentByte = 0;
  580. var bitsRead = 0;
  581. // Read columns in pairs, from right to left
  582. var readingUp = true;
  583. for (var columnIndex = dimension - 1; columnIndex > 0; columnIndex -= 2) {
  584. if (columnIndex === 6) { // Skip whole column with vertical alignment pattern;
  585. columnIndex--;
  586. }
  587. for (var i = 0; i < dimension; i++) {
  588. var y = readingUp ? dimension - 1 - i : i;
  589. for (var columnOffset = 0; columnOffset < 2; columnOffset++) {
  590. var x = columnIndex - columnOffset;
  591. if (!functionPatternMask.get(x, y)) {
  592. bitsRead++;
  593. var bit = matrix.get(x, y);
  594. if (dataMask({ y: y, x: x })) {
  595. bit = !bit;
  596. }
  597. currentByte = pushBit(bit, currentByte);
  598. if (bitsRead === 8) { // Whole bytes
  599. codewords.push(currentByte);
  600. bitsRead = 0;
  601. currentByte = 0;
  602. }
  603. }
  604. }
  605. }
  606. readingUp = !readingUp;
  607. }
  608. return codewords;
  609. }
  610. function readVersion(matrix) {
  611. var dimension = matrix.height;
  612. var provisionalVersion = Math.floor((dimension - 17) / 4);
  613. if (provisionalVersion <= 6) { // 6 and under dont have version info in the QR code
  614. return version_1.VERSIONS[provisionalVersion - 1];
  615. }
  616. var topRightVersionBits = 0;
  617. for (var y = 5; y >= 0; y--) {
  618. for (var x = dimension - 9; x >= dimension - 11; x--) {
  619. topRightVersionBits = pushBit(matrix.get(x, y), topRightVersionBits);
  620. }
  621. }
  622. var bottomLeftVersionBits = 0;
  623. for (var x = 5; x >= 0; x--) {
  624. for (var y = dimension - 9; y >= dimension - 11; y--) {
  625. bottomLeftVersionBits = pushBit(matrix.get(x, y), bottomLeftVersionBits);
  626. }
  627. }
  628. var bestDifference = Infinity;
  629. var bestVersion;
  630. for (var _i = 0, VERSIONS_1 = version_1.VERSIONS; _i < VERSIONS_1.length; _i++) {
  631. var version = VERSIONS_1[_i];
  632. if (version.infoBits === topRightVersionBits || version.infoBits === bottomLeftVersionBits) {
  633. return version;
  634. }
  635. var difference = numBitsDiffering(topRightVersionBits, version.infoBits);
  636. if (difference < bestDifference) {
  637. bestVersion = version;
  638. bestDifference = difference;
  639. }
  640. difference = numBitsDiffering(bottomLeftVersionBits, version.infoBits);
  641. if (difference < bestDifference) {
  642. bestVersion = version;
  643. bestDifference = difference;
  644. }
  645. }
  646. // We can tolerate up to 3 bits of error since no two version info codewords will
  647. // differ in less than 8 bits.
  648. if (bestDifference <= 3) {
  649. return bestVersion;
  650. }
  651. }
  652. function readFormatInformation(matrix) {
  653. var topLeftFormatInfoBits = 0;
  654. for (var x = 0; x <= 8; x++) {
  655. if (x !== 6) { // Skip timing pattern bit
  656. topLeftFormatInfoBits = pushBit(matrix.get(x, 8), topLeftFormatInfoBits);
  657. }
  658. }
  659. for (var y = 7; y >= 0; y--) {
  660. if (y !== 6) { // Skip timing pattern bit
  661. topLeftFormatInfoBits = pushBit(matrix.get(8, y), topLeftFormatInfoBits);
  662. }
  663. }
  664. var dimension = matrix.height;
  665. var topRightBottomRightFormatInfoBits = 0;
  666. for (var y = dimension - 1; y >= dimension - 7; y--) { // bottom left
  667. topRightBottomRightFormatInfoBits = pushBit(matrix.get(8, y), topRightBottomRightFormatInfoBits);
  668. }
  669. for (var x = dimension - 8; x < dimension; x++) { // top right
  670. topRightBottomRightFormatInfoBits = pushBit(matrix.get(x, 8), topRightBottomRightFormatInfoBits);
  671. }
  672. var bestDifference = Infinity;
  673. var bestFormatInfo = null;
  674. for (var _i = 0, FORMAT_INFO_TABLE_1 = FORMAT_INFO_TABLE; _i < FORMAT_INFO_TABLE_1.length; _i++) {
  675. var _a = FORMAT_INFO_TABLE_1[_i], bits = _a.bits, formatInfo = _a.formatInfo;
  676. if (bits === topLeftFormatInfoBits || bits === topRightBottomRightFormatInfoBits) {
  677. return formatInfo;
  678. }
  679. var difference = numBitsDiffering(topLeftFormatInfoBits, bits);
  680. if (difference < bestDifference) {
  681. bestFormatInfo = formatInfo;
  682. bestDifference = difference;
  683. }
  684. if (topLeftFormatInfoBits !== topRightBottomRightFormatInfoBits) { // also try the other option
  685. difference = numBitsDiffering(topRightBottomRightFormatInfoBits, bits);
  686. if (difference < bestDifference) {
  687. bestFormatInfo = formatInfo;
  688. bestDifference = difference;
  689. }
  690. }
  691. }
  692. // Hamming distance of the 32 masked codes is 7, by construction, so <= 3 bits differing means we found a match
  693. if (bestDifference <= 3) {
  694. return bestFormatInfo;
  695. }
  696. return null;
  697. }
  698. function getDataBlocks(codewords, version, ecLevel) {
  699. var ecInfo = version.errorCorrectionLevels[ecLevel];
  700. var dataBlocks = [];
  701. var totalCodewords = 0;
  702. ecInfo.ecBlocks.forEach(function (block) {
  703. for (var i = 0; i < block.numBlocks; i++) {
  704. dataBlocks.push({ numDataCodewords: block.dataCodewordsPerBlock, codewords: [] });
  705. totalCodewords += block.dataCodewordsPerBlock + ecInfo.ecCodewordsPerBlock;
  706. }
  707. });
  708. // In some cases the QR code will be malformed enough that we pull off more or less than we should.
  709. // If we pull off less there's nothing we can do.
  710. // If we pull off more we can safely truncate
  711. if (codewords.length < totalCodewords) {
  712. return null;
  713. }
  714. codewords = codewords.slice(0, totalCodewords);
  715. var shortBlockSize = ecInfo.ecBlocks[0].dataCodewordsPerBlock;
  716. // Pull codewords to fill the blocks up to the minimum size
  717. for (var i = 0; i < shortBlockSize; i++) {
  718. for (var _i = 0, dataBlocks_1 = dataBlocks; _i < dataBlocks_1.length; _i++) {
  719. var dataBlock = dataBlocks_1[_i];
  720. dataBlock.codewords.push(codewords.shift());
  721. }
  722. }
  723. // If there are any large blocks, pull codewords to fill the last element of those
  724. if (ecInfo.ecBlocks.length > 1) {
  725. var smallBlockCount = ecInfo.ecBlocks[0].numBlocks;
  726. var largeBlockCount = ecInfo.ecBlocks[1].numBlocks;
  727. for (var i = 0; i < largeBlockCount; i++) {
  728. dataBlocks[smallBlockCount + i].codewords.push(codewords.shift());
  729. }
  730. }
  731. // Add the rest of the codewords to the blocks. These are the error correction codewords.
  732. while (codewords.length > 0) {
  733. for (var _a = 0, dataBlocks_2 = dataBlocks; _a < dataBlocks_2.length; _a++) {
  734. var dataBlock = dataBlocks_2[_a];
  735. dataBlock.codewords.push(codewords.shift());
  736. }
  737. }
  738. return dataBlocks;
  739. }
  740. function decodeMatrix(matrix) {
  741. var version = readVersion(matrix);
  742. if (!version) {
  743. return null;
  744. }
  745. var formatInfo = readFormatInformation(matrix);
  746. if (!formatInfo) {
  747. return null;
  748. }
  749. var codewords = readCodewords(matrix, version, formatInfo);
  750. var dataBlocks = getDataBlocks(codewords, version, formatInfo.errorCorrectionLevel);
  751. if (!dataBlocks) {
  752. return null;
  753. }
  754. // Count total number of data bytes
  755. var totalBytes = dataBlocks.reduce(function (a, b) { return a + b.numDataCodewords; }, 0);
  756. var resultBytes = new Uint8ClampedArray(totalBytes);
  757. var resultIndex = 0;
  758. for (var _i = 0, dataBlocks_3 = dataBlocks; _i < dataBlocks_3.length; _i++) {
  759. var dataBlock = dataBlocks_3[_i];
  760. var correctedBytes = reedsolomon_1.decode(dataBlock.codewords, dataBlock.codewords.length - dataBlock.numDataCodewords);
  761. if (!correctedBytes) {
  762. return null;
  763. }
  764. for (var i = 0; i < dataBlock.numDataCodewords; i++) {
  765. resultBytes[resultIndex++] = correctedBytes[i];
  766. }
  767. }
  768. try {
  769. return decodeData_1.decode(resultBytes, version.versionNumber);
  770. }
  771. catch (_a) {
  772. return null;
  773. }
  774. }
  775. function decode(matrix) {
  776. if (matrix == null) {
  777. return null;
  778. }
  779. var result = decodeMatrix(matrix);
  780. if (result) {
  781. return result;
  782. }
  783. // Decoding didn't work, try mirroring the QR across the topLeft -> bottomRight line.
  784. for (var x = 0; x < matrix.width; x++) {
  785. for (var y = x + 1; y < matrix.height; y++) {
  786. if (matrix.get(x, y) !== matrix.get(y, x)) {
  787. matrix.set(x, y, !matrix.get(x, y));
  788. matrix.set(y, x, !matrix.get(y, x));
  789. }
  790. }
  791. }
  792. return decodeMatrix(matrix);
  793. }
  794. exports.decode = decode;
  795. /***/ }),
  796. /* 6 */
  797. /***/ (function(module, exports, __webpack_require__) {
  798. "use strict";
  799. Object.defineProperty(exports, "__esModule", { value: true });
  800. // tslint:disable:no-bitwise
  801. var BitStream_1 = __webpack_require__(7);
  802. var shiftJISTable_1 = __webpack_require__(8);
  803. var Mode;
  804. (function (Mode) {
  805. Mode["Numeric"] = "numeric";
  806. Mode["Alphanumeric"] = "alphanumeric";
  807. Mode["Byte"] = "byte";
  808. Mode["Kanji"] = "kanji";
  809. Mode["ECI"] = "eci";
  810. })(Mode = exports.Mode || (exports.Mode = {}));
  811. var ModeByte;
  812. (function (ModeByte) {
  813. ModeByte[ModeByte["Terminator"] = 0] = "Terminator";
  814. ModeByte[ModeByte["Numeric"] = 1] = "Numeric";
  815. ModeByte[ModeByte["Alphanumeric"] = 2] = "Alphanumeric";
  816. ModeByte[ModeByte["Byte"] = 4] = "Byte";
  817. ModeByte[ModeByte["Kanji"] = 8] = "Kanji";
  818. ModeByte[ModeByte["ECI"] = 7] = "ECI";
  819. // StructuredAppend = 0x3,
  820. // FNC1FirstPosition = 0x5,
  821. // FNC1SecondPosition = 0x9,
  822. })(ModeByte || (ModeByte = {}));
  823. function decodeNumeric(stream, size) {
  824. var bytes = [];
  825. var text = "";
  826. var characterCountSize = [10, 12, 14][size];
  827. var length = stream.readBits(characterCountSize);
  828. // Read digits in groups of 3
  829. while (length >= 3) {
  830. var num = stream.readBits(10);
  831. if (num >= 1000) {
  832. throw new Error("Invalid numeric value above 999");
  833. }
  834. var a = Math.floor(num / 100);
  835. var b = Math.floor(num / 10) % 10;
  836. var c = num % 10;
  837. bytes.push(48 + a, 48 + b, 48 + c);
  838. text += a.toString() + b.toString() + c.toString();
  839. length -= 3;
  840. }
  841. // If the number of digits aren't a multiple of 3, the remaining digits are special cased.
  842. if (length === 2) {
  843. var num = stream.readBits(7);
  844. if (num >= 100) {
  845. throw new Error("Invalid numeric value above 99");
  846. }
  847. var a = Math.floor(num / 10);
  848. var b = num % 10;
  849. bytes.push(48 + a, 48 + b);
  850. text += a.toString() + b.toString();
  851. }
  852. else if (length === 1) {
  853. var num = stream.readBits(4);
  854. if (num >= 10) {
  855. throw new Error("Invalid numeric value above 9");
  856. }
  857. bytes.push(48 + num);
  858. text += num.toString();
  859. }
  860. return { bytes: bytes, text: text };
  861. }
  862. var AlphanumericCharacterCodes = [
  863. "0", "1", "2", "3", "4", "5", "6", "7", "8",
  864. "9", "A", "B", "C", "D", "E", "F", "G", "H",
  865. "I", "J", "K", "L", "M", "N", "O", "P", "Q",
  866. "R", "S", "T", "U", "V", "W", "X", "Y", "Z",
  867. " ", "$", "%", "*", "+", "-", ".", "/", ":",
  868. ];
  869. function decodeAlphanumeric(stream, size) {
  870. var bytes = [];
  871. var text = "";
  872. var characterCountSize = [9, 11, 13][size];
  873. var length = stream.readBits(characterCountSize);
  874. while (length >= 2) {
  875. var v = stream.readBits(11);
  876. var a = Math.floor(v / 45);
  877. var b = v % 45;
  878. bytes.push(AlphanumericCharacterCodes[a].charCodeAt(0), AlphanumericCharacterCodes[b].charCodeAt(0));
  879. text += AlphanumericCharacterCodes[a] + AlphanumericCharacterCodes[b];
  880. length -= 2;
  881. }
  882. if (length === 1) {
  883. var a = stream.readBits(6);
  884. bytes.push(AlphanumericCharacterCodes[a].charCodeAt(0));
  885. text += AlphanumericCharacterCodes[a];
  886. }
  887. return { bytes: bytes, text: text };
  888. }
  889. function decodeByte(stream, size) {
  890. var bytes = [];
  891. var text = "";
  892. var characterCountSize = [8, 16, 16][size];
  893. var length = stream.readBits(characterCountSize);
  894. for (var i = 0; i < length; i++) {
  895. var b = stream.readBits(8);
  896. bytes.push(b);
  897. }
  898. try {
  899. text += decodeURIComponent(bytes.map(function (b) { return "%" + ("0" + b.toString(16)).substr(-2); }).join(""));
  900. }
  901. catch (_a) {
  902. // failed to decode
  903. }
  904. return { bytes: bytes, text: text };
  905. }
  906. function decodeKanji(stream, size) {
  907. var bytes = [];
  908. var text = "";
  909. var characterCountSize = [8, 10, 12][size];
  910. var length = stream.readBits(characterCountSize);
  911. for (var i = 0; i < length; i++) {
  912. var k = stream.readBits(13);
  913. var c = (Math.floor(k / 0xC0) << 8) | (k % 0xC0);
  914. if (c < 0x1F00) {
  915. c += 0x8140;
  916. }
  917. else {
  918. c += 0xC140;
  919. }
  920. bytes.push(c >> 8, c & 0xFF);
  921. text += String.fromCharCode(shiftJISTable_1.shiftJISTable[c]);
  922. }
  923. return { bytes: bytes, text: text };
  924. }
  925. function decode(data, version) {
  926. var _a, _b, _c, _d;
  927. var stream = new BitStream_1.BitStream(data);
  928. // There are 3 'sizes' based on the version. 1-9 is small (0), 10-26 is medium (1) and 27-40 is large (2).
  929. var size = version <= 9 ? 0 : version <= 26 ? 1 : 2;
  930. var result = {
  931. text: "",
  932. bytes: [],
  933. chunks: [],
  934. version: version,
  935. };
  936. while (stream.available() >= 4) {
  937. var mode = stream.readBits(4);
  938. if (mode === ModeByte.Terminator) {
  939. return result;
  940. }
  941. else if (mode === ModeByte.ECI) {
  942. if (stream.readBits(1) === 0) {
  943. result.chunks.push({
  944. type: Mode.ECI,
  945. assignmentNumber: stream.readBits(7),
  946. });
  947. }
  948. else if (stream.readBits(1) === 0) {
  949. result.chunks.push({
  950. type: Mode.ECI,
  951. assignmentNumber: stream.readBits(14),
  952. });
  953. }
  954. else if (stream.readBits(1) === 0) {
  955. result.chunks.push({
  956. type: Mode.ECI,
  957. assignmentNumber: stream.readBits(21),
  958. });
  959. }
  960. else {
  961. // ECI data seems corrupted
  962. result.chunks.push({
  963. type: Mode.ECI,
  964. assignmentNumber: -1,
  965. });
  966. }
  967. }
  968. else if (mode === ModeByte.Numeric) {
  969. var numericResult = decodeNumeric(stream, size);
  970. result.text += numericResult.text;
  971. (_a = result.bytes).push.apply(_a, numericResult.bytes);
  972. result.chunks.push({
  973. type: Mode.Numeric,
  974. text: numericResult.text,
  975. });
  976. }
  977. else if (mode === ModeByte.Alphanumeric) {
  978. var alphanumericResult = decodeAlphanumeric(stream, size);
  979. result.text += alphanumericResult.text;
  980. (_b = result.bytes).push.apply(_b, alphanumericResult.bytes);
  981. result.chunks.push({
  982. type: Mode.Alphanumeric,
  983. text: alphanumericResult.text,
  984. });
  985. }
  986. else if (mode === ModeByte.Byte) {
  987. var byteResult = decodeByte(stream, size);
  988. result.text += byteResult.text;
  989. (_c = result.bytes).push.apply(_c, byteResult.bytes);
  990. result.chunks.push({
  991. type: Mode.Byte,
  992. bytes: byteResult.bytes,
  993. text: byteResult.text,
  994. });
  995. }
  996. else if (mode === ModeByte.Kanji) {
  997. var kanjiResult = decodeKanji(stream, size);
  998. result.text += kanjiResult.text;
  999. (_d = result.bytes).push.apply(_d, kanjiResult.bytes);
  1000. result.chunks.push({
  1001. type: Mode.Kanji,
  1002. bytes: kanjiResult.bytes,
  1003. text: kanjiResult.text,
  1004. });
  1005. }
  1006. }
  1007. // If there is no data left, or the remaining bits are all 0, then that counts as a termination marker
  1008. if (stream.available() === 0 || stream.readBits(stream.available()) === 0) {
  1009. return result;
  1010. }
  1011. }
  1012. exports.decode = decode;
  1013. /***/ }),
  1014. /* 7 */
  1015. /***/ (function(module, exports, __webpack_require__) {
  1016. "use strict";
  1017. // tslint:disable:no-bitwise
  1018. Object.defineProperty(exports, "__esModule", { value: true });
  1019. var BitStream = /** @class */ (function () {
  1020. function BitStream(bytes) {
  1021. this.byteOffset = 0;
  1022. this.bitOffset = 0;
  1023. this.bytes = bytes;
  1024. }
  1025. BitStream.prototype.readBits = function (numBits) {
  1026. if (numBits < 1 || numBits > 32 || numBits > this.available()) {
  1027. throw new Error("Cannot read " + numBits.toString() + " bits");
  1028. }
  1029. var result = 0;
  1030. // First, read remainder from current byte
  1031. if (this.bitOffset > 0) {
  1032. var bitsLeft = 8 - this.bitOffset;
  1033. var toRead = numBits < bitsLeft ? numBits : bitsLeft;
  1034. var bitsToNotRead = bitsLeft - toRead;
  1035. var mask = (0xFF >> (8 - toRead)) << bitsToNotRead;
  1036. result = (this.bytes[this.byteOffset] & mask) >> bitsToNotRead;
  1037. numBits -= toRead;
  1038. this.bitOffset += toRead;
  1039. if (this.bitOffset === 8) {
  1040. this.bitOffset = 0;
  1041. this.byteOffset++;
  1042. }
  1043. }
  1044. // Next read whole bytes
  1045. if (numBits > 0) {
  1046. while (numBits >= 8) {
  1047. result = (result << 8) | (this.bytes[this.byteOffset] & 0xFF);
  1048. this.byteOffset++;
  1049. numBits -= 8;
  1050. }
  1051. // Finally read a partial byte
  1052. if (numBits > 0) {
  1053. var bitsToNotRead = 8 - numBits;
  1054. var mask = (0xFF >> bitsToNotRead) << bitsToNotRead;
  1055. result = (result << numBits) | ((this.bytes[this.byteOffset] & mask) >> bitsToNotRead);
  1056. this.bitOffset += numBits;
  1057. }
  1058. }
  1059. return result;
  1060. };
  1061. BitStream.prototype.available = function () {
  1062. return 8 * (this.bytes.length - this.byteOffset) - this.bitOffset;
  1063. };
  1064. return BitStream;
  1065. }());
  1066. exports.BitStream = BitStream;
  1067. /***/ }),
  1068. /* 8 */
  1069. /***/ (function(module, exports, __webpack_require__) {
  1070. "use strict";
  1071. Object.defineProperty(exports, "__esModule", { value: true });
  1072. exports.shiftJISTable = {
  1073. 0x20: 0x0020,
  1074. 0x21: 0x0021,
  1075. 0x22: 0x0022,
  1076. 0x23: 0x0023,
  1077. 0x24: 0x0024,
  1078. 0x25: 0x0025,
  1079. 0x26: 0x0026,
  1080. 0x27: 0x0027,
  1081. 0x28: 0x0028,
  1082. 0x29: 0x0029,
  1083. 0x2A: 0x002A,
  1084. 0x2B: 0x002B,
  1085. 0x2C: 0x002C,
  1086. 0x2D: 0x002D,
  1087. 0x2E: 0x002E,
  1088. 0x2F: 0x002F,
  1089. 0x30: 0x0030,
  1090. 0x31: 0x0031,
  1091. 0x32: 0x0032,
  1092. 0x33: 0x0033,
  1093. 0x34: 0x0034,
  1094. 0x35: 0x0035,
  1095. 0x36: 0x0036,
  1096. 0x37: 0x0037,
  1097. 0x38: 0x0038,
  1098. 0x39: 0x0039,
  1099. 0x3A: 0x003A,
  1100. 0x3B: 0x003B,
  1101. 0x3C: 0x003C,
  1102. 0x3D: 0x003D,
  1103. 0x3E: 0x003E,
  1104. 0x3F: 0x003F,
  1105. 0x40: 0x0040,
  1106. 0x41: 0x0041,
  1107. 0x42: 0x0042,
  1108. 0x43: 0x0043,
  1109. 0x44: 0x0044,
  1110. 0x45: 0x0045,
  1111. 0x46: 0x0046,
  1112. 0x47: 0x0047,
  1113. 0x48: 0x0048,
  1114. 0x49: 0x0049,
  1115. 0x4A: 0x004A,
  1116. 0x4B: 0x004B,
  1117. 0x4C: 0x004C,
  1118. 0x4D: 0x004D,
  1119. 0x4E: 0x004E,
  1120. 0x4F: 0x004F,
  1121. 0x50: 0x0050,
  1122. 0x51: 0x0051,
  1123. 0x52: 0x0052,
  1124. 0x53: 0x0053,
  1125. 0x54: 0x0054,
  1126. 0x55: 0x0055,
  1127. 0x56: 0x0056,
  1128. 0x57: 0x0057,
  1129. 0x58: 0x0058,
  1130. 0x59: 0x0059,
  1131. 0x5A: 0x005A,
  1132. 0x5B: 0x005B,
  1133. 0x5C: 0x00A5,
  1134. 0x5D: 0x005D,
  1135. 0x5E: 0x005E,
  1136. 0x5F: 0x005F,
  1137. 0x60: 0x0060,
  1138. 0x61: 0x0061,
  1139. 0x62: 0x0062,
  1140. 0x63: 0x0063,
  1141. 0x64: 0x0064,
  1142. 0x65: 0x0065,
  1143. 0x66: 0x0066,
  1144. 0x67: 0x0067,
  1145. 0x68: 0x0068,
  1146. 0x69: 0x0069,
  1147. 0x6A: 0x006A,
  1148. 0x6B: 0x006B,
  1149. 0x6C: 0x006C,
  1150. 0x6D: 0x006D,
  1151. 0x6E: 0x006E,
  1152. 0x6F: 0x006F,
  1153. 0x70: 0x0070,
  1154. 0x71: 0x0071,
  1155. 0x72: 0x0072,
  1156. 0x73: 0x0073,
  1157. 0x74: 0x0074,
  1158. 0x75: 0x0075,
  1159. 0x76: 0x0076,
  1160. 0x77: 0x0077,
  1161. 0x78: 0x0078,
  1162. 0x79: 0x0079,
  1163. 0x7A: 0x007A,
  1164. 0x7B: 0x007B,
  1165. 0x7C: 0x007C,
  1166. 0x7D: 0x007D,
  1167. 0x7E: 0x203E,
  1168. 0x8140: 0x3000,
  1169. 0x8141: 0x3001,
  1170. 0x8142: 0x3002,
  1171. 0x8143: 0xFF0C,
  1172. 0x8144: 0xFF0E,
  1173. 0x8145: 0x30FB,
  1174. 0x8146: 0xFF1A,
  1175. 0x8147: 0xFF1B,
  1176. 0x8148: 0xFF1F,
  1177. 0x8149: 0xFF01,
  1178. 0x814A: 0x309B,
  1179. 0x814B: 0x309C,
  1180. 0x814C: 0x00B4,
  1181. 0x814D: 0xFF40,
  1182. 0x814E: 0x00A8,
  1183. 0x814F: 0xFF3E,
  1184. 0x8150: 0xFFE3,
  1185. 0x8151: 0xFF3F,
  1186. 0x8152: 0x30FD,
  1187. 0x8153: 0x30FE,
  1188. 0x8154: 0x309D,
  1189. 0x8155: 0x309E,
  1190. 0x8156: 0x3003,
  1191. 0x8157: 0x4EDD,
  1192. 0x8158: 0x3005,
  1193. 0x8159: 0x3006,
  1194. 0x815A: 0x3007,
  1195. 0x815B: 0x30FC,
  1196. 0x815C: 0x2015,
  1197. 0x815D: 0x2010,
  1198. 0x815E: 0xFF0F,
  1199. 0x815F: 0x005C,
  1200. 0x8160: 0x301C,
  1201. 0x8161: 0x2016,
  1202. 0x8162: 0xFF5C,
  1203. 0x8163: 0x2026,
  1204. 0x8164: 0x2025,
  1205. 0x8165: 0x2018,
  1206. 0x8166: 0x2019,
  1207. 0x8167: 0x201C,
  1208. 0x8168: 0x201D,
  1209. 0x8169: 0xFF08,
  1210. 0x816A: 0xFF09,
  1211. 0x816B: 0x3014,
  1212. 0x816C: 0x3015,
  1213. 0x816D: 0xFF3B,
  1214. 0x816E: 0xFF3D,
  1215. 0x816F: 0xFF5B,
  1216. 0x8170: 0xFF5D,
  1217. 0x8171: 0x3008,
  1218. 0x8172: 0x3009,
  1219. 0x8173: 0x300A,
  1220. 0x8174: 0x300B,
  1221. 0x8175: 0x300C,
  1222. 0x8176: 0x300D,
  1223. 0x8177: 0x300E,
  1224. 0x8178: 0x300F,
  1225. 0x8179: 0x3010,
  1226. 0x817A: 0x3011,
  1227. 0x817B: 0xFF0B,
  1228. 0x817C: 0x2212,
  1229. 0x817D: 0x00B1,
  1230. 0x817E: 0x00D7,
  1231. 0x8180: 0x00F7,
  1232. 0x8181: 0xFF1D,
  1233. 0x8182: 0x2260,
  1234. 0x8183: 0xFF1C,
  1235. 0x8184: 0xFF1E,
  1236. 0x8185: 0x2266,
  1237. 0x8186: 0x2267,
  1238. 0x8187: 0x221E,
  1239. 0x8188: 0x2234,
  1240. 0x8189: 0x2642,
  1241. 0x818A: 0x2640,
  1242. 0x818B: 0x00B0,
  1243. 0x818C: 0x2032,
  1244. 0x818D: 0x2033,
  1245. 0x818E: 0x2103,
  1246. 0x818F: 0xFFE5,
  1247. 0x8190: 0xFF04,
  1248. 0x8191: 0x00A2,
  1249. 0x8192: 0x00A3,
  1250. 0x8193: 0xFF05,
  1251. 0x8194: 0xFF03,
  1252. 0x8195: 0xFF06,
  1253. 0x8196: 0xFF0A,
  1254. 0x8197: 0xFF20,
  1255. 0x8198: 0x00A7,
  1256. 0x8199: 0x2606,
  1257. 0x819A: 0x2605,
  1258. 0x819B: 0x25CB,
  1259. 0x819C: 0x25CF,
  1260. 0x819D: 0x25CE,
  1261. 0x819E: 0x25C7,
  1262. 0x819F: 0x25C6,
  1263. 0x81A0: 0x25A1,
  1264. 0x81A1: 0x25A0,
  1265. 0x81A2: 0x25B3,
  1266. 0x81A3: 0x25B2,
  1267. 0x81A4: 0x25BD,
  1268. 0x81A5: 0x25BC,
  1269. 0x81A6: 0x203B,
  1270. 0x81A7: 0x3012,
  1271. 0x81A8: 0x2192,
  1272. 0x81A9: 0x2190,
  1273. 0x81AA: 0x2191,
  1274. 0x81AB: 0x2193,
  1275. 0x81AC: 0x3013,
  1276. 0x81B8: 0x2208,
  1277. 0x81B9: 0x220B,
  1278. 0x81BA: 0x2286,
  1279. 0x81BB: 0x2287,
  1280. 0x81BC: 0x2282,
  1281. 0x81BD: 0x2283,
  1282. 0x81BE: 0x222A,
  1283. 0x81BF: 0x2229,
  1284. 0x81C8: 0x2227,
  1285. 0x81C9: 0x2228,
  1286. 0x81CA: 0x00AC,
  1287. 0x81CB: 0x21D2,
  1288. 0x81CC: 0x21D4,
  1289. 0x81CD: 0x2200,
  1290. 0x81CE: 0x2203,
  1291. 0x81DA: 0x2220,
  1292. 0x81DB: 0x22A5,
  1293. 0x81DC: 0x2312,
  1294. 0x81DD: 0x2202,
  1295. 0x81DE: 0x2207,
  1296. 0x81DF: 0x2261,
  1297. 0x81E0: 0x2252,
  1298. 0x81E1: 0x226A,
  1299. 0x81E2: 0x226B,
  1300. 0x81E3: 0x221A,
  1301. 0x81E4: 0x223D,
  1302. 0x81E5: 0x221D,
  1303. 0x81E6: 0x2235,
  1304. 0x81E7: 0x222B,
  1305. 0x81E8: 0x222C,
  1306. 0x81F0: 0x212B,
  1307. 0x81F1: 0x2030,
  1308. 0x81F2: 0x266F,
  1309. 0x81F3: 0x266D,
  1310. 0x81F4: 0x266A,
  1311. 0x81F5: 0x2020,
  1312. 0x81F6: 0x2021,
  1313. 0x81F7: 0x00B6,
  1314. 0x81FC: 0x25EF,
  1315. 0x824F: 0xFF10,
  1316. 0x8250: 0xFF11,
  1317. 0x8251: 0xFF12,
  1318. 0x8252: 0xFF13,
  1319. 0x8253: 0xFF14,
  1320. 0x8254: 0xFF15,
  1321. 0x8255: 0xFF16,
  1322. 0x8256: 0xFF17,
  1323. 0x8257: 0xFF18,
  1324. 0x8258: 0xFF19,
  1325. 0x8260: 0xFF21,
  1326. 0x8261: 0xFF22,
  1327. 0x8262: 0xFF23,
  1328. 0x8263: 0xFF24,
  1329. 0x8264: 0xFF25,
  1330. 0x8265: 0xFF26,
  1331. 0x8266: 0xFF27,
  1332. 0x8267: 0xFF28,
  1333. 0x8268: 0xFF29,
  1334. 0x8269: 0xFF2A,
  1335. 0x826A: 0xFF2B,
  1336. 0x826B: 0xFF2C,
  1337. 0x826C: 0xFF2D,
  1338. 0x826D: 0xFF2E,
  1339. 0x826E: 0xFF2F,
  1340. 0x826F: 0xFF30,
  1341. 0x8270: 0xFF31,
  1342. 0x8271: 0xFF32,
  1343. 0x8272: 0xFF33,
  1344. 0x8273: 0xFF34,
  1345. 0x8274: 0xFF35,
  1346. 0x8275: 0xFF36,
  1347. 0x8276: 0xFF37,
  1348. 0x8277: 0xFF38,
  1349. 0x8278: 0xFF39,
  1350. 0x8279: 0xFF3A,
  1351. 0x8281: 0xFF41,
  1352. 0x8282: 0xFF42,
  1353. 0x8283: 0xFF43,
  1354. 0x8284: 0xFF44,
  1355. 0x8285: 0xFF45,
  1356. 0x8286: 0xFF46,
  1357. 0x8287: 0xFF47,
  1358. 0x8288: 0xFF48,
  1359. 0x8289: 0xFF49,
  1360. 0x828A: 0xFF4A,
  1361. 0x828B: 0xFF4B,
  1362. 0x828C: 0xFF4C,
  1363. 0x828D: 0xFF4D,
  1364. 0x828E: 0xFF4E,
  1365. 0x828F: 0xFF4F,
  1366. 0x8290: 0xFF50,
  1367. 0x8291: 0xFF51,
  1368. 0x8292: 0xFF52,
  1369. 0x8293: 0xFF53,
  1370. 0x8294: 0xFF54,
  1371. 0x8295: 0xFF55,
  1372. 0x8296: 0xFF56,
  1373. 0x8297: 0xFF57,
  1374. 0x8298: 0xFF58,
  1375. 0x8299: 0xFF59,
  1376. 0x829A: 0xFF5A,
  1377. 0x829F: 0x3041,
  1378. 0x82A0: 0x3042,
  1379. 0x82A1: 0x3043,
  1380. 0x82A2: 0x3044,
  1381. 0x82A3: 0x3045,
  1382. 0x82A4: 0x3046,
  1383. 0x82A5: 0x3047,
  1384. 0x82A6: 0x3048,
  1385. 0x82A7: 0x3049,
  1386. 0x82A8: 0x304A,
  1387. 0x82A9: 0x304B,
  1388. 0x82AA: 0x304C,
  1389. 0x82AB: 0x304D,
  1390. 0x82AC: 0x304E,
  1391. 0x82AD: 0x304F,
  1392. 0x82AE: 0x3050,
  1393. 0x82AF: 0x3051,
  1394. 0x82B0: 0x3052,
  1395. 0x82B1: 0x3053,
  1396. 0x82B2: 0x3054,
  1397. 0x82B3: 0x3055,
  1398. 0x82B4: 0x3056,
  1399. 0x82B5: 0x3057,
  1400. 0x82B6: 0x3058,
  1401. 0x82B7: 0x3059,
  1402. 0x82B8: 0x305A,
  1403. 0x82B9: 0x305B,
  1404. 0x82BA: 0x305C,
  1405. 0x82BB: 0x305D,
  1406. 0x82BC: 0x305E,
  1407. 0x82BD: 0x305F,
  1408. 0x82BE: 0x3060,
  1409. 0x82BF: 0x3061,
  1410. 0x82C0: 0x3062,
  1411. 0x82C1: 0x3063,
  1412. 0x82C2: 0x3064,
  1413. 0x82C3: 0x3065,
  1414. 0x82C4: 0x3066,
  1415. 0x82C5: 0x3067,
  1416. 0x82C6: 0x3068,
  1417. 0x82C7: 0x3069,
  1418. 0x82C8: 0x306A,
  1419. 0x82C9: 0x306B,
  1420. 0x82CA: 0x306C,
  1421. 0x82CB: 0x306D,
  1422. 0x82CC: 0x306E,
  1423. 0x82CD: 0x306F,
  1424. 0x82CE: 0x3070,
  1425. 0x82CF: 0x3071,
  1426. 0x82D0: 0x3072,
  1427. 0x82D1: 0x3073,
  1428. 0x82D2: 0x3074,
  1429. 0x82D3: 0x3075,
  1430. 0x82D4: 0x3076,
  1431. 0x82D5: 0x3077,
  1432. 0x82D6: 0x3078,
  1433. 0x82D7: 0x3079,
  1434. 0x82D8: 0x307A,
  1435. 0x82D9: 0x307B,
  1436. 0x82DA: 0x307C,
  1437. 0x82DB: 0x307D,
  1438. 0x82DC: 0x307E,
  1439. 0x82DD: 0x307F,
  1440. 0x82DE: 0x3080,
  1441. 0x82DF: 0x3081,
  1442. 0x82E0: 0x3082,
  1443. 0x82E1: 0x3083,
  1444. 0x82E2: 0x3084,
  1445. 0x82E3: 0x3085,
  1446. 0x82E4: 0x3086,
  1447. 0x82E5: 0x3087,
  1448. 0x82E6: 0x3088,
  1449. 0x82E7: 0x3089,
  1450. 0x82E8: 0x308A,
  1451. 0x82E9: 0x308B,
  1452. 0x82EA: 0x308C,
  1453. 0x82EB: 0x308D,
  1454. 0x82EC: 0x308E,
  1455. 0x82ED: 0x308F,
  1456. 0x82EE: 0x3090,
  1457. 0x82EF: 0x3091,
  1458. 0x82F0: 0x3092,
  1459. 0x82F1: 0x3093,
  1460. 0x8340: 0x30A1,
  1461. 0x8341: 0x30A2,
  1462. 0x8342: 0x30A3,
  1463. 0x8343: 0x30A4,
  1464. 0x8344: 0x30A5,
  1465. 0x8345: 0x30A6,
  1466. 0x8346: 0x30A7,
  1467. 0x8347: 0x30A8,
  1468. 0x8348: 0x30A9,
  1469. 0x8349: 0x30AA,
  1470. 0x834A: 0x30AB,
  1471. 0x834B: 0x30AC,
  1472. 0x834C: 0x30AD,
  1473. 0x834D: 0x30AE,
  1474. 0x834E: 0x30AF,
  1475. 0x834F: 0x30B0,
  1476. 0x8350: 0x30B1,
  1477. 0x8351: 0x30B2,
  1478. 0x8352: 0x30B3,
  1479. 0x8353: 0x30B4,
  1480. 0x8354: 0x30B5,
  1481. 0x8355: 0x30B6,
  1482. 0x8356: 0x30B7,
  1483. 0x8357: 0x30B8,
  1484. 0x8358: 0x30B9,
  1485. 0x8359: 0x30BA,
  1486. 0x835A: 0x30BB,
  1487. 0x835B: 0x30BC,
  1488. 0x835C: 0x30BD,
  1489. 0x835D: 0x30BE,
  1490. 0x835E: 0x30BF,
  1491. 0x835F: 0x30C0,
  1492. 0x8360: 0x30C1,
  1493. 0x8361: 0x30C2,
  1494. 0x8362: 0x30C3,
  1495. 0x8363: 0x30C4,
  1496. 0x8364: 0x30C5,
  1497. 0x8365: 0x30C6,
  1498. 0x8366: 0x30C7,
  1499. 0x8367: 0x30C8,
  1500. 0x8368: 0x30C9,
  1501. 0x8369: 0x30CA,
  1502. 0x836A: 0x30CB,
  1503. 0x836B: 0x30CC,
  1504. 0x836C: 0x30CD,
  1505. 0x836D: 0x30CE,
  1506. 0x836E: 0x30CF,
  1507. 0x836F: 0x30D0,
  1508. 0x8370: 0x30D1,
  1509. 0x8371: 0x30D2,
  1510. 0x8372: 0x30D3,
  1511. 0x8373: 0x30D4,
  1512. 0x8374: 0x30D5,
  1513. 0x8375: 0x30D6,
  1514. 0x8376: 0x30D7,
  1515. 0x8377: 0x30D8,
  1516. 0x8378: 0x30D9,
  1517. 0x8379: 0x30DA,
  1518. 0x837A: 0x30DB,
  1519. 0x837B: 0x30DC,
  1520. 0x837C: 0x30DD,
  1521. 0x837D: 0x30DE,
  1522. 0x837E: 0x30DF,
  1523. 0x8380: 0x30E0,
  1524. 0x8381: 0x30E1,
  1525. 0x8382: 0x30E2,
  1526. 0x8383: 0x30E3,
  1527. 0x8384: 0x30E4,
  1528. 0x8385: 0x30E5,
  1529. 0x8386: 0x30E6,
  1530. 0x8387: 0x30E7,
  1531. 0x8388: 0x30E8,
  1532. 0x8389: 0x30E9,
  1533. 0x838A: 0x30EA,
  1534. 0x838B: 0x30EB,
  1535. 0x838C: 0x30EC,
  1536. 0x838D: 0x30ED,
  1537. 0x838E: 0x30EE,
  1538. 0x838F: 0x30EF,
  1539. 0x8390: 0x30F0,
  1540. 0x8391: 0x30F1,
  1541. 0x8392: 0x30F2,
  1542. 0x8393: 0x30F3,
  1543. 0x8394: 0x30F4,
  1544. 0x8395: 0x30F5,
  1545. 0x8396: 0x30F6,
  1546. 0x839F: 0x0391,
  1547. 0x83A0: 0x0392,
  1548. 0x83A1: 0x0393,
  1549. 0x83A2: 0x0394,
  1550. 0x83A3: 0x0395,
  1551. 0x83A4: 0x0396,
  1552. 0x83A5: 0x0397,
  1553. 0x83A6: 0x0398,
  1554. 0x83A7: 0x0399,
  1555. 0x83A8: 0x039A,
  1556. 0x83A9: 0x039B,
  1557. 0x83AA: 0x039C,
  1558. 0x83AB: 0x039D,
  1559. 0x83AC: 0x039E,
  1560. 0x83AD: 0x039F,
  1561. 0x83AE: 0x03A0,
  1562. 0x83AF: 0x03A1,
  1563. 0x83B0: 0x03A3,
  1564. 0x83B1: 0x03A4,
  1565. 0x83B2: 0x03A5,
  1566. 0x83B3: 0x03A6,
  1567. 0x83B4: 0x03A7,
  1568. 0x83B5: 0x03A8,
  1569. 0x83B6: 0x03A9,
  1570. 0x83BF: 0x03B1,
  1571. 0x83C0: 0x03B2,
  1572. 0x83C1: 0x03B3,
  1573. 0x83C2: 0x03B4,
  1574. 0x83C3: 0x03B5,
  1575. 0x83C4: 0x03B6,
  1576. 0x83C5: 0x03B7,
  1577. 0x83C6: 0x03B8,
  1578. 0x83C7: 0x03B9,
  1579. 0x83C8: 0x03BA,
  1580. 0x83C9: 0x03BB,
  1581. 0x83CA: 0x03BC,
  1582. 0x83CB: 0x03BD,
  1583. 0x83CC: 0x03BE,
  1584. 0x83CD: 0x03BF,
  1585. 0x83CE: 0x03C0,
  1586. 0x83CF: 0x03C1,
  1587. 0x83D0: 0x03C3,
  1588. 0x83D1: 0x03C4,
  1589. 0x83D2: 0x03C5,
  1590. 0x83D3: 0x03C6,
  1591. 0x83D4: 0x03C7,
  1592. 0x83D5: 0x03C8,
  1593. 0x83D6: 0x03C9,
  1594. 0x8440: 0x0410,
  1595. 0x8441: 0x0411,
  1596. 0x8442: 0x0412,
  1597. 0x8443: 0x0413,
  1598. 0x8444: 0x0414,
  1599. 0x8445: 0x0415,
  1600. 0x8446: 0x0401,
  1601. 0x8447: 0x0416,
  1602. 0x8448: 0x0417,
  1603. 0x8449: 0x0418,
  1604. 0x844A: 0x0419,
  1605. 0x844B: 0x041A,
  1606. 0x844C: 0x041B,
  1607. 0x844D: 0x041C,
  1608. 0x844E: 0x041D,
  1609. 0x844F: 0x041E,
  1610. 0x8450: 0x041F,
  1611. 0x8451: 0x0420,
  1612. 0x8452: 0x0421,
  1613. 0x8453: 0x0422,
  1614. 0x8454: 0x0423,
  1615. 0x8455: 0x0424,
  1616. 0x8456: 0x0425,
  1617. 0x8457: 0x0426,
  1618. 0x8458: 0x0427,
  1619. 0x8459: 0x0428,
  1620. 0x845A: 0x0429,
  1621. 0x845B: 0x042A,
  1622. 0x845C: 0x042B,
  1623. 0x845D: 0x042C,
  1624. 0x845E: 0x042D,
  1625. 0x845F: 0x042E,
  1626. 0x8460: 0x042F,
  1627. 0x8470: 0x0430,
  1628. 0x8471: 0x0431,
  1629. 0x8472: 0x0432,
  1630. 0x8473: 0x0433,
  1631. 0x8474: 0x0434,
  1632. 0x8475: 0x0435,
  1633. 0x8476: 0x0451,
  1634. 0x8477: 0x0436,
  1635. 0x8478: 0x0437,
  1636. 0x8479: 0x0438,
  1637. 0x847A: 0x0439,
  1638. 0x847B: 0x043A,
  1639. 0x847C: 0x043B,
  1640. 0x847D: 0x043C,
  1641. 0x847E: 0x043D,
  1642. 0x8480: 0x043E,
  1643. 0x8481: 0x043F,
  1644. 0x8482: 0x0440,
  1645. 0x8483: 0x0441,
  1646. 0x8484: 0x0442,
  1647. 0x8485: 0x0443,
  1648. 0x8486: 0x0444,
  1649. 0x8487: 0x0445,
  1650. 0x8488: 0x0446,
  1651. 0x8489: 0x0447,
  1652. 0x848A: 0x0448,
  1653. 0x848B: 0x0449,
  1654. 0x848C: 0x044A,
  1655. 0x848D: 0x044B,
  1656. 0x848E: 0x044C,
  1657. 0x848F: 0x044D,
  1658. 0x8490: 0x044E,
  1659. 0x8491: 0x044F,
  1660. 0x849F: 0x2500,
  1661. 0x84A0: 0x2502,
  1662. 0x84A1: 0x250C,
  1663. 0x84A2: 0x2510,
  1664. 0x84A3: 0x2518,
  1665. 0x84A4: 0x2514,
  1666. 0x84A5: 0x251C,
  1667. 0x84A6: 0x252C,
  1668. 0x84A7: 0x2524,
  1669. 0x84A8: 0x2534,
  1670. 0x84A9: 0x253C,
  1671. 0x84AA: 0x2501,
  1672. 0x84AB: 0x2503,
  1673. 0x84AC: 0x250F,
  1674. 0x84AD: 0x2513,
  1675. 0x84AE: 0x251B,
  1676. 0x84AF: 0x2517,
  1677. 0x84B0: 0x2523,
  1678. 0x84B1: 0x2533,
  1679. 0x84B2: 0x252B,
  1680. 0x84B3: 0x253B,
  1681. 0x84B4: 0x254B,
  1682. 0x84B5: 0x2520,
  1683. 0x84B6: 0x252F,
  1684. 0x84B7: 0x2528,
  1685. 0x84B8: 0x2537,
  1686. 0x84B9: 0x253F,
  1687. 0x84BA: 0x251D,
  1688. 0x84BB: 0x2530,
  1689. 0x84BC: 0x2525,
  1690. 0x84BD: 0x2538,
  1691. 0x84BE: 0x2542,
  1692. 0x889F: 0x4E9C,
  1693. 0x88A0: 0x5516,
  1694. 0x88A1: 0x5A03,
  1695. 0x88A2: 0x963F,
  1696. 0x88A3: 0x54C0,
  1697. 0x88A4: 0x611B,
  1698. 0x88A5: 0x6328,
  1699. 0x88A6: 0x59F6,
  1700. 0x88A7: 0x9022,
  1701. 0x88A8: 0x8475,
  1702. 0x88A9: 0x831C,
  1703. 0x88AA: 0x7A50,
  1704. 0x88AB: 0x60AA,
  1705. 0x88AC: 0x63E1,
  1706. 0x88AD: 0x6E25,
  1707. 0x88AE: 0x65ED,
  1708. 0x88AF: 0x8466,
  1709. 0x88B0: 0x82A6,
  1710. 0x88B1: 0x9BF5,
  1711. 0x88B2: 0x6893,
  1712. 0x88B3: 0x5727,
  1713. 0x88B4: 0x65A1,
  1714. 0x88B5: 0x6271,
  1715. 0x88B6: 0x5B9B,
  1716. 0x88B7: 0x59D0,
  1717. 0x88B8: 0x867B,
  1718. 0x88B9: 0x98F4,
  1719. 0x88BA: 0x7D62,
  1720. 0x88BB: 0x7DBE,
  1721. 0x88BC: 0x9B8E,
  1722. 0x88BD: 0x6216,
  1723. 0x88BE: 0x7C9F,
  1724. 0x88BF: 0x88B7,
  1725. 0x88C0: 0x5B89,
  1726. 0x88C1: 0x5EB5,
  1727. 0x88C2: 0x6309,
  1728. 0x88C3: 0x6697,
  1729. 0x88C4: 0x6848,
  1730. 0x88C5: 0x95C7,
  1731. 0x88C6: 0x978D,
  1732. 0x88C7: 0x674F,
  1733. 0x88C8: 0x4EE5,
  1734. 0x88C9: 0x4F0A,
  1735. 0x88CA: 0x4F4D,
  1736. 0x88CB: 0x4F9D,
  1737. 0x88CC: 0x5049,
  1738. 0x88CD: 0x56F2,
  1739. 0x88CE: 0x5937,
  1740. 0x88CF: 0x59D4,
  1741. 0x88D0: 0x5A01,
  1742. 0x88D1: 0x5C09,
  1743. 0x88D2: 0x60DF,
  1744. 0x88D3: 0x610F,
  1745. 0x88D4: 0x6170,
  1746. 0x88D5: 0x6613,
  1747. 0x88D6: 0x6905,
  1748. 0x88D7: 0x70BA,
  1749. 0x88D8: 0x754F,
  1750. 0x88D9: 0x7570,
  1751. 0x88DA: 0x79FB,
  1752. 0x88DB: 0x7DAD,
  1753. 0x88DC: 0x7DEF,
  1754. 0x88DD: 0x80C3,
  1755. 0x88DE: 0x840E,
  1756. 0x88DF: 0x8863,
  1757. 0x88E0: 0x8B02,
  1758. 0x88E1: 0x9055,
  1759. 0x88E2: 0x907A,
  1760. 0x88E3: 0x533B,
  1761. 0x88E4: 0x4E95,
  1762. 0x88E5: 0x4EA5,
  1763. 0x88E6: 0x57DF,
  1764. 0x88E7: 0x80B2,
  1765. 0x88E8: 0x90C1,
  1766. 0x88E9: 0x78EF,
  1767. 0x88EA: 0x4E00,
  1768. 0x88EB: 0x58F1,
  1769. 0x88EC: 0x6EA2,
  1770. 0x88ED: 0x9038,
  1771. 0x88EE: 0x7A32,
  1772. 0x88EF: 0x8328,
  1773. 0x88F0: 0x828B,
  1774. 0x88F1: 0x9C2F,
  1775. 0x88F2: 0x5141,
  1776. 0x88F3: 0x5370,
  1777. 0x88F4: 0x54BD,
  1778. 0x88F5: 0x54E1,
  1779. 0x88F6: 0x56E0,
  1780. 0x88F7: 0x59FB,
  1781. 0x88F8: 0x5F15,
  1782. 0x88F9: 0x98F2,
  1783. 0x88FA: 0x6DEB,
  1784. 0x88FB: 0x80E4,
  1785. 0x88FC: 0x852D,
  1786. 0x8940: 0x9662,
  1787. 0x8941: 0x9670,
  1788. 0x8942: 0x96A0,
  1789. 0x8943: 0x97FB,
  1790. 0x8944: 0x540B,
  1791. 0x8945: 0x53F3,
  1792. 0x8946: 0x5B87,
  1793. 0x8947: 0x70CF,
  1794. 0x8948: 0x7FBD,
  1795. 0x8949: 0x8FC2,
  1796. 0x894A: 0x96E8,
  1797. 0x894B: 0x536F,
  1798. 0x894C: 0x9D5C,
  1799. 0x894D: 0x7ABA,
  1800. 0x894E: 0x4E11,
  1801. 0x894F: 0x7893,
  1802. 0x8950: 0x81FC,
  1803. 0x8951: 0x6E26,
  1804. 0x8952: 0x5618,
  1805. 0x8953: 0x5504,
  1806. 0x8954: 0x6B1D,
  1807. 0x8955: 0x851A,
  1808. 0x8956: 0x9C3B,
  1809. 0x8957: 0x59E5,
  1810. 0x8958: 0x53A9,
  1811. 0x8959: 0x6D66,
  1812. 0x895A: 0x74DC,
  1813. 0x895B: 0x958F,
  1814. 0x895C: 0x5642,
  1815. 0x895D: 0x4E91,
  1816. 0x895E: 0x904B,
  1817. 0x895F: 0x96F2,
  1818. 0x8960: 0x834F,
  1819. 0x8961: 0x990C,
  1820. 0x8962: 0x53E1,
  1821. 0x8963: 0x55B6,
  1822. 0x8964: 0x5B30,
  1823. 0x8965: 0x5F71,
  1824. 0x8966: 0x6620,
  1825. 0x8967: 0x66F3,
  1826. 0x8968: 0x6804,
  1827. 0x8969: 0x6C38,
  1828. 0x896A: 0x6CF3,
  1829. 0x896B: 0x6D29,
  1830. 0x896C: 0x745B,
  1831. 0x896D: 0x76C8,
  1832. 0x896E: 0x7A4E,
  1833. 0x896F: 0x9834,
  1834. 0x8970: 0x82F1,
  1835. 0x8971: 0x885B,
  1836. 0x8972: 0x8A60,
  1837. 0x8973: 0x92ED,
  1838. 0x8974: 0x6DB2,
  1839. 0x8975: 0x75AB,
  1840. 0x8976: 0x76CA,
  1841. 0x8977: 0x99C5,
  1842. 0x8978: 0x60A6,
  1843. 0x8979: 0x8B01,
  1844. 0x897A: 0x8D8A,
  1845. 0x897B: 0x95B2,
  1846. 0x897C: 0x698E,
  1847. 0x897D: 0x53AD,
  1848. 0x897E: 0x5186,
  1849. 0x8980: 0x5712,
  1850. 0x8981: 0x5830,
  1851. 0x8982: 0x5944,
  1852. 0x8983: 0x5BB4,
  1853. 0x8984: 0x5EF6,
  1854. 0x8985: 0x6028,
  1855. 0x8986: 0x63A9,
  1856. 0x8987: 0x63F4,
  1857. 0x8988: 0x6CBF,
  1858. 0x8989: 0x6F14,
  1859. 0x898A: 0x708E,
  1860. 0x898B: 0x7114,
  1861. 0x898C: 0x7159,
  1862. 0x898D: 0x71D5,
  1863. 0x898E: 0x733F,
  1864. 0x898F: 0x7E01,
  1865. 0x8990: 0x8276,
  1866. 0x8991: 0x82D1,
  1867. 0x8992: 0x8597,
  1868. 0x8993: 0x9060,
  1869. 0x8994: 0x925B,
  1870. 0x8995: 0x9D1B,
  1871. 0x8996: 0x5869,
  1872. 0x8997: 0x65BC,
  1873. 0x8998: 0x6C5A,
  1874. 0x8999: 0x7525,
  1875. 0x899A: 0x51F9,
  1876. 0x899B: 0x592E,
  1877. 0x899C: 0x5965,
  1878. 0x899D: 0x5F80,
  1879. 0x899E: 0x5FDC,
  1880. 0x899F: 0x62BC,
  1881. 0x89A0: 0x65FA,
  1882. 0x89A1: 0x6A2A,
  1883. 0x89A2: 0x6B27,
  1884. 0x89A3: 0x6BB4,
  1885. 0x89A4: 0x738B,
  1886. 0x89A5: 0x7FC1,
  1887. 0x89A6: 0x8956,
  1888. 0x89A7: 0x9D2C,
  1889. 0x89A8: 0x9D0E,
  1890. 0x89A9: 0x9EC4,
  1891. 0x89AA: 0x5CA1,
  1892. 0x89AB: 0x6C96,
  1893. 0x89AC: 0x837B,
  1894. 0x89AD: 0x5104,
  1895. 0x89AE: 0x5C4B,
  1896. 0x89AF: 0x61B6,
  1897. 0x89B0: 0x81C6,
  1898. 0x89B1: 0x6876,
  1899. 0x89B2: 0x7261,
  1900. 0x89B3: 0x4E59,
  1901. 0x89B4: 0x4FFA,
  1902. 0x89B5: 0x5378,
  1903. 0x89B6: 0x6069,
  1904. 0x89B7: 0x6E29,
  1905. 0x89B8: 0x7A4F,
  1906. 0x89B9: 0x97F3,
  1907. 0x89BA: 0x4E0B,
  1908. 0x89BB: 0x5316,
  1909. 0x89BC: 0x4EEE,
  1910. 0x89BD: 0x4F55,
  1911. 0x89BE: 0x4F3D,
  1912. 0x89BF: 0x4FA1,
  1913. 0x89C0: 0x4F73,
  1914. 0x89C1: 0x52A0,
  1915. 0x89C2: 0x53EF,
  1916. 0x89C3: 0x5609,
  1917. 0x89C4: 0x590F,
  1918. 0x89C5: 0x5AC1,
  1919. 0x89C6: 0x5BB6,
  1920. 0x89C7: 0x5BE1,
  1921. 0x89C8: 0x79D1,
  1922. 0x89C9: 0x6687,
  1923. 0x89CA: 0x679C,
  1924. 0x89CB: 0x67B6,
  1925. 0x89CC: 0x6B4C,
  1926. 0x89CD: 0x6CB3,
  1927. 0x89CE: 0x706B,
  1928. 0x89CF: 0x73C2,
  1929. 0x89D0: 0x798D,
  1930. 0x89D1: 0x79BE,
  1931. 0x89D2: 0x7A3C,
  1932. 0x89D3: 0x7B87,
  1933. 0x89D4: 0x82B1,
  1934. 0x89D5: 0x82DB,
  1935. 0x89D6: 0x8304,
  1936. 0x89D7: 0x8377,
  1937. 0x89D8: 0x83EF,
  1938. 0x89D9: 0x83D3,
  1939. 0x89DA: 0x8766,
  1940. 0x89DB: 0x8AB2,
  1941. 0x89DC: 0x5629,
  1942. 0x89DD: 0x8CA8,
  1943. 0x89DE: 0x8FE6,
  1944. 0x89DF: 0x904E,
  1945. 0x89E0: 0x971E,
  1946. 0x89E1: 0x868A,
  1947. 0x89E2: 0x4FC4,
  1948. 0x89E3: 0x5CE8,
  1949. 0x89E4: 0x6211,
  1950. 0x89E5: 0x7259,
  1951. 0x89E6: 0x753B,
  1952. 0x89E7: 0x81E5,
  1953. 0x89E8: 0x82BD,
  1954. 0x89E9: 0x86FE,
  1955. 0x89EA: 0x8CC0,
  1956. 0x89EB: 0x96C5,
  1957. 0x89EC: 0x9913,
  1958. 0x89ED: 0x99D5,
  1959. 0x89EE: 0x4ECB,
  1960. 0x89EF: 0x4F1A,
  1961. 0x89F0: 0x89E3,
  1962. 0x89F1: 0x56DE,
  1963. 0x89F2: 0x584A,
  1964. 0x89F3: 0x58CA,
  1965. 0x89F4: 0x5EFB,
  1966. 0x89F5: 0x5FEB,
  1967. 0x89F6: 0x602A,
  1968. 0x89F7: 0x6094,
  1969. 0x89F8: 0x6062,
  1970. 0x89F9: 0x61D0,
  1971. 0x89FA: 0x6212,
  1972. 0x89FB: 0x62D0,
  1973. 0x89FC: 0x6539,
  1974. 0x8A40: 0x9B41,
  1975. 0x8A41: 0x6666,
  1976. 0x8A42: 0x68B0,
  1977. 0x8A43: 0x6D77,
  1978. 0x8A44: 0x7070,
  1979. 0x8A45: 0x754C,
  1980. 0x8A46: 0x7686,
  1981. 0x8A47: 0x7D75,
  1982. 0x8A48: 0x82A5,
  1983. 0x8A49: 0x87F9,
  1984. 0x8A4A: 0x958B,
  1985. 0x8A4B: 0x968E,
  1986. 0x8A4C: 0x8C9D,
  1987. 0x8A4D: 0x51F1,
  1988. 0x8A4E: 0x52BE,
  1989. 0x8A4F: 0x5916,
  1990. 0x8A50: 0x54B3,
  1991. 0x8A51: 0x5BB3,
  1992. 0x8A52: 0x5D16,
  1993. 0x8A53: 0x6168,
  1994. 0x8A54: 0x6982,
  1995. 0x8A55: 0x6DAF,
  1996. 0x8A56: 0x788D,
  1997. 0x8A57: 0x84CB,
  1998. 0x8A58: 0x8857,
  1999. 0x8A59: 0x8A72,
  2000. 0x8A5A: 0x93A7,
  2001. 0x8A5B: 0x9AB8,
  2002. 0x8A5C: 0x6D6C,
  2003. 0x8A5D: 0x99A8,
  2004. 0x8A5E: 0x86D9,
  2005. 0x8A5F: 0x57A3,
  2006. 0x8A60: 0x67FF,
  2007. 0x8A61: 0x86CE,
  2008. 0x8A62: 0x920E,
  2009. 0x8A63: 0x5283,
  2010. 0x8A64: 0x5687,
  2011. 0x8A65: 0x5404,
  2012. 0x8A66: 0x5ED3,
  2013. 0x8A67: 0x62E1,
  2014. 0x8A68: 0x64B9,
  2015. 0x8A69: 0x683C,
  2016. 0x8A6A: 0x6838,
  2017. 0x8A6B: 0x6BBB,
  2018. 0x8A6C: 0x7372,
  2019. 0x8A6D: 0x78BA,
  2020. 0x8A6E: 0x7A6B,
  2021. 0x8A6F: 0x899A,
  2022. 0x8A70: 0x89D2,
  2023. 0x8A71: 0x8D6B,
  2024. 0x8A72: 0x8F03,
  2025. 0x8A73: 0x90ED,
  2026. 0x8A74: 0x95A3,
  2027. 0x8A75: 0x9694,
  2028. 0x8A76: 0x9769,
  2029. 0x8A77: 0x5B66,
  2030. 0x8A78: 0x5CB3,
  2031. 0x8A79: 0x697D,
  2032. 0x8A7A: 0x984D,
  2033. 0x8A7B: 0x984E,
  2034. 0x8A7C: 0x639B,
  2035. 0x8A7D: 0x7B20,
  2036. 0x8A7E: 0x6A2B,
  2037. 0x8A80: 0x6A7F,
  2038. 0x8A81: 0x68B6,
  2039. 0x8A82: 0x9C0D,
  2040. 0x8A83: 0x6F5F,
  2041. 0x8A84: 0x5272,
  2042. 0x8A85: 0x559D,
  2043. 0x8A86: 0x6070,
  2044. 0x8A87: 0x62EC,
  2045. 0x8A88: 0x6D3B,
  2046. 0x8A89: 0x6E07,
  2047. 0x8A8A: 0x6ED1,
  2048. 0x8A8B: 0x845B,
  2049. 0x8A8C: 0x8910,
  2050. 0x8A8D: 0x8F44,
  2051. 0x8A8E: 0x4E14,
  2052. 0x8A8F: 0x9C39,
  2053. 0x8A90: 0x53F6,
  2054. 0x8A91: 0x691B,
  2055. 0x8A92: 0x6A3A,
  2056. 0x8A93: 0x9784,
  2057. 0x8A94: 0x682A,
  2058. 0x8A95: 0x515C,
  2059. 0x8A96: 0x7AC3,
  2060. 0x8A97: 0x84B2,
  2061. 0x8A98: 0x91DC,
  2062. 0x8A99: 0x938C,
  2063. 0x8A9A: 0x565B,
  2064. 0x8A9B: 0x9D28,
  2065. 0x8A9C: 0x6822,
  2066. 0x8A9D: 0x8305,
  2067. 0x8A9E: 0x8431,
  2068. 0x8A9F: 0x7CA5,
  2069. 0x8AA0: 0x5208,
  2070. 0x8AA1: 0x82C5,
  2071. 0x8AA2: 0x74E6,
  2072. 0x8AA3: 0x4E7E,
  2073. 0x8AA4: 0x4F83,
  2074. 0x8AA5: 0x51A0,
  2075. 0x8AA6: 0x5BD2,
  2076. 0x8AA7: 0x520A,
  2077. 0x8AA8: 0x52D8,
  2078. 0x8AA9: 0x52E7,
  2079. 0x8AAA: 0x5DFB,
  2080. 0x8AAB: 0x559A,
  2081. 0x8AAC: 0x582A,
  2082. 0x8AAD: 0x59E6,
  2083. 0x8AAE: 0x5B8C,
  2084. 0x8AAF: 0x5B98,
  2085. 0x8AB0: 0x5BDB,
  2086. 0x8AB1: 0x5E72,
  2087. 0x8AB2: 0x5E79,
  2088. 0x8AB3: 0x60A3,
  2089. 0x8AB4: 0x611F,
  2090. 0x8AB5: 0x6163,
  2091. 0x8AB6: 0x61BE,
  2092. 0x8AB7: 0x63DB,
  2093. 0x8AB8: 0x6562,
  2094. 0x8AB9: 0x67D1,
  2095. 0x8ABA: 0x6853,
  2096. 0x8ABB: 0x68FA,
  2097. 0x8ABC: 0x6B3E,
  2098. 0x8ABD: 0x6B53,
  2099. 0x8ABE: 0x6C57,
  2100. 0x8ABF: 0x6F22,
  2101. 0x8AC0: 0x6F97,
  2102. 0x8AC1: 0x6F45,
  2103. 0x8AC2: 0x74B0,
  2104. 0x8AC3: 0x7518,
  2105. 0x8AC4: 0x76E3,
  2106. 0x8AC5: 0x770B,
  2107. 0x8AC6: 0x7AFF,
  2108. 0x8AC7: 0x7BA1,
  2109. 0x8AC8: 0x7C21,
  2110. 0x8AC9: 0x7DE9,
  2111. 0x8ACA: 0x7F36,
  2112. 0x8ACB: 0x7FF0,
  2113. 0x8ACC: 0x809D,
  2114. 0x8ACD: 0x8266,
  2115. 0x8ACE: 0x839E,
  2116. 0x8ACF: 0x89B3,
  2117. 0x8AD0: 0x8ACC,
  2118. 0x8AD1: 0x8CAB,
  2119. 0x8AD2: 0x9084,
  2120. 0x8AD3: 0x9451,
  2121. 0x8AD4: 0x9593,
  2122. 0x8AD5: 0x9591,
  2123. 0x8AD6: 0x95A2,
  2124. 0x8AD7: 0x9665,
  2125. 0x8AD8: 0x97D3,
  2126. 0x8AD9: 0x9928,
  2127. 0x8ADA: 0x8218,
  2128. 0x8ADB: 0x4E38,
  2129. 0x8ADC: 0x542B,
  2130. 0x8ADD: 0x5CB8,
  2131. 0x8ADE: 0x5DCC,
  2132. 0x8ADF: 0x73A9,
  2133. 0x8AE0: 0x764C,
  2134. 0x8AE1: 0x773C,
  2135. 0x8AE2: 0x5CA9,
  2136. 0x8AE3: 0x7FEB,
  2137. 0x8AE4: 0x8D0B,
  2138. 0x8AE5: 0x96C1,
  2139. 0x8AE6: 0x9811,
  2140. 0x8AE7: 0x9854,
  2141. 0x8AE8: 0x9858,
  2142. 0x8AE9: 0x4F01,
  2143. 0x8AEA: 0x4F0E,
  2144. 0x8AEB: 0x5371,
  2145. 0x8AEC: 0x559C,
  2146. 0x8AED: 0x5668,
  2147. 0x8AEE: 0x57FA,
  2148. 0x8AEF: 0x5947,
  2149. 0x8AF0: 0x5B09,
  2150. 0x8AF1: 0x5BC4,
  2151. 0x8AF2: 0x5C90,
  2152. 0x8AF3: 0x5E0C,
  2153. 0x8AF4: 0x5E7E,
  2154. 0x8AF5: 0x5FCC,
  2155. 0x8AF6: 0x63EE,
  2156. 0x8AF7: 0x673A,
  2157. 0x8AF8: 0x65D7,
  2158. 0x8AF9: 0x65E2,
  2159. 0x8AFA: 0x671F,
  2160. 0x8AFB: 0x68CB,
  2161. 0x8AFC: 0x68C4,
  2162. 0x8B40: 0x6A5F,
  2163. 0x8B41: 0x5E30,
  2164. 0x8B42: 0x6BC5,
  2165. 0x8B43: 0x6C17,
  2166. 0x8B44: 0x6C7D,
  2167. 0x8B45: 0x757F,
  2168. 0x8B46: 0x7948,
  2169. 0x8B47: 0x5B63,
  2170. 0x8B48: 0x7A00,
  2171. 0x8B49: 0x7D00,
  2172. 0x8B4A: 0x5FBD,
  2173. 0x8B4B: 0x898F,
  2174. 0x8B4C: 0x8A18,
  2175. 0x8B4D: 0x8CB4,
  2176. 0x8B4E: 0x8D77,
  2177. 0x8B4F: 0x8ECC,
  2178. 0x8B50: 0x8F1D,
  2179. 0x8B51: 0x98E2,
  2180. 0x8B52: 0x9A0E,
  2181. 0x8B53: 0x9B3C,
  2182. 0x8B54: 0x4E80,
  2183. 0x8B55: 0x507D,
  2184. 0x8B56: 0x5100,
  2185. 0x8B57: 0x5993,
  2186. 0x8B58: 0x5B9C,
  2187. 0x8B59: 0x622F,
  2188. 0x8B5A: 0x6280,
  2189. 0x8B5B: 0x64EC,
  2190. 0x8B5C: 0x6B3A,
  2191. 0x8B5D: 0x72A0,
  2192. 0x8B5E: 0x7591,
  2193. 0x8B5F: 0x7947,
  2194. 0x8B60: 0x7FA9,
  2195. 0x8B61: 0x87FB,
  2196. 0x8B62: 0x8ABC,
  2197. 0x8B63: 0x8B70,
  2198. 0x8B64: 0x63AC,
  2199. 0x8B65: 0x83CA,
  2200. 0x8B66: 0x97A0,
  2201. 0x8B67: 0x5409,
  2202. 0x8B68: 0x5403,
  2203. 0x8B69: 0x55AB,
  2204. 0x8B6A: 0x6854,
  2205. 0x8B6B: 0x6A58,
  2206. 0x8B6C: 0x8A70,
  2207. 0x8B6D: 0x7827,
  2208. 0x8B6E: 0x6775,
  2209. 0x8B6F: 0x9ECD,
  2210. 0x8B70: 0x5374,
  2211. 0x8B71: 0x5BA2,
  2212. 0x8B72: 0x811A,
  2213. 0x8B73: 0x8650,
  2214. 0x8B74: 0x9006,
  2215. 0x8B75: 0x4E18,
  2216. 0x8B76: 0x4E45,
  2217. 0x8B77: 0x4EC7,
  2218. 0x8B78: 0x4F11,
  2219. 0x8B79: 0x53CA,
  2220. 0x8B7A: 0x5438,
  2221. 0x8B7B: 0x5BAE,
  2222. 0x8B7C: 0x5F13,
  2223. 0x8B7D: 0x6025,
  2224. 0x8B7E: 0x6551,
  2225. 0x8B80: 0x673D,
  2226. 0x8B81: 0x6C42,
  2227. 0x8B82: 0x6C72,
  2228. 0x8B83: 0x6CE3,
  2229. 0x8B84: 0x7078,
  2230. 0x8B85: 0x7403,
  2231. 0x8B86: 0x7A76,
  2232. 0x8B87: 0x7AAE,
  2233. 0x8B88: 0x7B08,
  2234. 0x8B89: 0x7D1A,
  2235. 0x8B8A: 0x7CFE,
  2236. 0x8B8B: 0x7D66,
  2237. 0x8B8C: 0x65E7,
  2238. 0x8B8D: 0x725B,
  2239. 0x8B8E: 0x53BB,
  2240. 0x8B8F: 0x5C45,
  2241. 0x8B90: 0x5DE8,
  2242. 0x8B91: 0x62D2,
  2243. 0x8B92: 0x62E0,
  2244. 0x8B93: 0x6319,
  2245. 0x8B94: 0x6E20,
  2246. 0x8B95: 0x865A,
  2247. 0x8B96: 0x8A31,
  2248. 0x8B97: 0x8DDD,
  2249. 0x8B98: 0x92F8,
  2250. 0x8B99: 0x6F01,
  2251. 0x8B9A: 0x79A6,
  2252. 0x8B9B: 0x9B5A,
  2253. 0x8B9C: 0x4EA8,
  2254. 0x8B9D: 0x4EAB,
  2255. 0x8B9E: 0x4EAC,
  2256. 0x8B9F: 0x4F9B,
  2257. 0x8BA0: 0x4FA0,
  2258. 0x8BA1: 0x50D1,
  2259. 0x8BA2: 0x5147,
  2260. 0x8BA3: 0x7AF6,
  2261. 0x8BA4: 0x5171,
  2262. 0x8BA5: 0x51F6,
  2263. 0x8BA6: 0x5354,
  2264. 0x8BA7: 0x5321,
  2265. 0x8BA8: 0x537F,
  2266. 0x8BA9: 0x53EB,
  2267. 0x8BAA: 0x55AC,
  2268. 0x8BAB: 0x5883,
  2269. 0x8BAC: 0x5CE1,
  2270. 0x8BAD: 0x5F37,
  2271. 0x8BAE: 0x5F4A,
  2272. 0x8BAF: 0x602F,
  2273. 0x8BB0: 0x6050,
  2274. 0x8BB1: 0x606D,
  2275. 0x8BB2: 0x631F,
  2276. 0x8BB3: 0x6559,
  2277. 0x8BB4: 0x6A4B,
  2278. 0x8BB5: 0x6CC1,
  2279. 0x8BB6: 0x72C2,
  2280. 0x8BB7: 0x72ED,
  2281. 0x8BB8: 0x77EF,
  2282. 0x8BB9: 0x80F8,
  2283. 0x8BBA: 0x8105,
  2284. 0x8BBB: 0x8208,
  2285. 0x8BBC: 0x854E,
  2286. 0x8BBD: 0x90F7,
  2287. 0x8BBE: 0x93E1,
  2288. 0x8BBF: 0x97FF,
  2289. 0x8BC0: 0x9957,
  2290. 0x8BC1: 0x9A5A,
  2291. 0x8BC2: 0x4EF0,
  2292. 0x8BC3: 0x51DD,
  2293. 0x8BC4: 0x5C2D,
  2294. 0x8BC5: 0x6681,
  2295. 0x8BC6: 0x696D,
  2296. 0x8BC7: 0x5C40,
  2297. 0x8BC8: 0x66F2,
  2298. 0x8BC9: 0x6975,
  2299. 0x8BCA: 0x7389,
  2300. 0x8BCB: 0x6850,
  2301. 0x8BCC: 0x7C81,
  2302. 0x8BCD: 0x50C5,
  2303. 0x8BCE: 0x52E4,
  2304. 0x8BCF: 0x5747,
  2305. 0x8BD0: 0x5DFE,
  2306. 0x8BD1: 0x9326,
  2307. 0x8BD2: 0x65A4,
  2308. 0x8BD3: 0x6B23,
  2309. 0x8BD4: 0x6B3D,
  2310. 0x8BD5: 0x7434,
  2311. 0x8BD6: 0x7981,
  2312. 0x8BD7: 0x79BD,
  2313. 0x8BD8: 0x7B4B,
  2314. 0x8BD9: 0x7DCA,
  2315. 0x8BDA: 0x82B9,
  2316. 0x8BDB: 0x83CC,
  2317. 0x8BDC: 0x887F,
  2318. 0x8BDD: 0x895F,
  2319. 0x8BDE: 0x8B39,
  2320. 0x8BDF: 0x8FD1,
  2321. 0x8BE0: 0x91D1,
  2322. 0x8BE1: 0x541F,
  2323. 0x8BE2: 0x9280,
  2324. 0x8BE3: 0x4E5D,
  2325. 0x8BE4: 0x5036,
  2326. 0x8BE5: 0x53E5,
  2327. 0x8BE6: 0x533A,
  2328. 0x8BE7: 0x72D7,
  2329. 0x8BE8: 0x7396,
  2330. 0x8BE9: 0x77E9,
  2331. 0x8BEA: 0x82E6,
  2332. 0x8BEB: 0x8EAF,
  2333. 0x8BEC: 0x99C6,
  2334. 0x8BED: 0x99C8,
  2335. 0x8BEE: 0x99D2,
  2336. 0x8BEF: 0x5177,
  2337. 0x8BF0: 0x611A,
  2338. 0x8BF1: 0x865E,
  2339. 0x8BF2: 0x55B0,
  2340. 0x8BF3: 0x7A7A,
  2341. 0x8BF4: 0x5076,
  2342. 0x8BF5: 0x5BD3,
  2343. 0x8BF6: 0x9047,
  2344. 0x8BF7: 0x9685,
  2345. 0x8BF8: 0x4E32,
  2346. 0x8BF9: 0x6ADB,
  2347. 0x8BFA: 0x91E7,
  2348. 0x8BFB: 0x5C51,
  2349. 0x8BFC: 0x5C48,
  2350. 0x8C40: 0x6398,
  2351. 0x8C41: 0x7A9F,
  2352. 0x8C42: 0x6C93,
  2353. 0x8C43: 0x9774,
  2354. 0x8C44: 0x8F61,
  2355. 0x8C45: 0x7AAA,
  2356. 0x8C46: 0x718A,
  2357. 0x8C47: 0x9688,
  2358. 0x8C48: 0x7C82,
  2359. 0x8C49: 0x6817,
  2360. 0x8C4A: 0x7E70,
  2361. 0x8C4B: 0x6851,
  2362. 0x8C4C: 0x936C,
  2363. 0x8C4D: 0x52F2,
  2364. 0x8C4E: 0x541B,
  2365. 0x8C4F: 0x85AB,
  2366. 0x8C50: 0x8A13,
  2367. 0x8C51: 0x7FA4,
  2368. 0x8C52: 0x8ECD,
  2369. 0x8C53: 0x90E1,
  2370. 0x8C54: 0x5366,
  2371. 0x8C55: 0x8888,
  2372. 0x8C56: 0x7941,
  2373. 0x8C57: 0x4FC2,
  2374. 0x8C58: 0x50BE,
  2375. 0x8C59: 0x5211,
  2376. 0x8C5A: 0x5144,
  2377. 0x8C5B: 0x5553,
  2378. 0x8C5C: 0x572D,
  2379. 0x8C5D: 0x73EA,
  2380. 0x8C5E: 0x578B,
  2381. 0x8C5F: 0x5951,
  2382. 0x8C60: 0x5F62,
  2383. 0x8C61: 0x5F84,
  2384. 0x8C62: 0x6075,
  2385. 0x8C63: 0x6176,
  2386. 0x8C64: 0x6167,
  2387. 0x8C65: 0x61A9,
  2388. 0x8C66: 0x63B2,
  2389. 0x8C67: 0x643A,
  2390. 0x8C68: 0x656C,
  2391. 0x8C69: 0x666F,
  2392. 0x8C6A: 0x6842,
  2393. 0x8C6B: 0x6E13,
  2394. 0x8C6C: 0x7566,
  2395. 0x8C6D: 0x7A3D,
  2396. 0x8C6E: 0x7CFB,
  2397. 0x8C6F: 0x7D4C,
  2398. 0x8C70: 0x7D99,
  2399. 0x8C71: 0x7E4B,
  2400. 0x8C72: 0x7F6B,
  2401. 0x8C73: 0x830E,
  2402. 0x8C74: 0x834A,
  2403. 0x8C75: 0x86CD,
  2404. 0x8C76: 0x8A08,
  2405. 0x8C77: 0x8A63,
  2406. 0x8C78: 0x8B66,
  2407. 0x8C79: 0x8EFD,
  2408. 0x8C7A: 0x981A,
  2409. 0x8C7B: 0x9D8F,
  2410. 0x8C7C: 0x82B8,
  2411. 0x8C7D: 0x8FCE,
  2412. 0x8C7E: 0x9BE8,
  2413. 0x8C80: 0x5287,
  2414. 0x8C81: 0x621F,
  2415. 0x8C82: 0x6483,
  2416. 0x8C83: 0x6FC0,
  2417. 0x8C84: 0x9699,
  2418. 0x8C85: 0x6841,
  2419. 0x8C86: 0x5091,
  2420. 0x8C87: 0x6B20,
  2421. 0x8C88: 0x6C7A,
  2422. 0x8C89: 0x6F54,
  2423. 0x8C8A: 0x7A74,
  2424. 0x8C8B: 0x7D50,
  2425. 0x8C8C: 0x8840,
  2426. 0x8C8D: 0x8A23,
  2427. 0x8C8E: 0x6708,
  2428. 0x8C8F: 0x4EF6,
  2429. 0x8C90: 0x5039,
  2430. 0x8C91: 0x5026,
  2431. 0x8C92: 0x5065,
  2432. 0x8C93: 0x517C,
  2433. 0x8C94: 0x5238,
  2434. 0x8C95: 0x5263,
  2435. 0x8C96: 0x55A7,
  2436. 0x8C97: 0x570F,
  2437. 0x8C98: 0x5805,
  2438. 0x8C99: 0x5ACC,
  2439. 0x8C9A: 0x5EFA,
  2440. 0x8C9B: 0x61B2,
  2441. 0x8C9C: 0x61F8,
  2442. 0x8C9D: 0x62F3,
  2443. 0x8C9E: 0x6372,
  2444. 0x8C9F: 0x691C,
  2445. 0x8CA0: 0x6A29,
  2446. 0x8CA1: 0x727D,
  2447. 0x8CA2: 0x72AC,
  2448. 0x8CA3: 0x732E,
  2449. 0x8CA4: 0x7814,
  2450. 0x8CA5: 0x786F,
  2451. 0x8CA6: 0x7D79,
  2452. 0x8CA7: 0x770C,
  2453. 0x8CA8: 0x80A9,
  2454. 0x8CA9: 0x898B,
  2455. 0x8CAA: 0x8B19,
  2456. 0x8CAB: 0x8CE2,
  2457. 0x8CAC: 0x8ED2,
  2458. 0x8CAD: 0x9063,
  2459. 0x8CAE: 0x9375,
  2460. 0x8CAF: 0x967A,
  2461. 0x8CB0: 0x9855,
  2462. 0x8CB1: 0x9A13,
  2463. 0x8CB2: 0x9E78,
  2464. 0x8CB3: 0x5143,
  2465. 0x8CB4: 0x539F,
  2466. 0x8CB5: 0x53B3,
  2467. 0x8CB6: 0x5E7B,
  2468. 0x8CB7: 0x5F26,
  2469. 0x8CB8: 0x6E1B,
  2470. 0x8CB9: 0x6E90,
  2471. 0x8CBA: 0x7384,
  2472. 0x8CBB: 0x73FE,
  2473. 0x8CBC: 0x7D43,
  2474. 0x8CBD: 0x8237,
  2475. 0x8CBE: 0x8A00,
  2476. 0x8CBF: 0x8AFA,
  2477. 0x8CC0: 0x9650,
  2478. 0x8CC1: 0x4E4E,
  2479. 0x8CC2: 0x500B,
  2480. 0x8CC3: 0x53E4,
  2481. 0x8CC4: 0x547C,
  2482. 0x8CC5: 0x56FA,
  2483. 0x8CC6: 0x59D1,
  2484. 0x8CC7: 0x5B64,
  2485. 0x8CC8: 0x5DF1,
  2486. 0x8CC9: 0x5EAB,
  2487. 0x8CCA: 0x5F27,
  2488. 0x8CCB: 0x6238,
  2489. 0x8CCC: 0x6545,
  2490. 0x8CCD: 0x67AF,
  2491. 0x8CCE: 0x6E56,
  2492. 0x8CCF: 0x72D0,
  2493. 0x8CD0: 0x7CCA,
  2494. 0x8CD1: 0x88B4,
  2495. 0x8CD2: 0x80A1,
  2496. 0x8CD3: 0x80E1,
  2497. 0x8CD4: 0x83F0,
  2498. 0x8CD5: 0x864E,
  2499. 0x8CD6: 0x8A87,
  2500. 0x8CD7: 0x8DE8,
  2501. 0x8CD8: 0x9237,
  2502. 0x8CD9: 0x96C7,
  2503. 0x8CDA: 0x9867,
  2504. 0x8CDB: 0x9F13,
  2505. 0x8CDC: 0x4E94,
  2506. 0x8CDD: 0x4E92,
  2507. 0x8CDE: 0x4F0D,
  2508. 0x8CDF: 0x5348,
  2509. 0x8CE0: 0x5449,
  2510. 0x8CE1: 0x543E,
  2511. 0x8CE2: 0x5A2F,
  2512. 0x8CE3: 0x5F8C,
  2513. 0x8CE4: 0x5FA1,
  2514. 0x8CE5: 0x609F,
  2515. 0x8CE6: 0x68A7,
  2516. 0x8CE7: 0x6A8E,
  2517. 0x8CE8: 0x745A,
  2518. 0x8CE9: 0x7881,
  2519. 0x8CEA: 0x8A9E,
  2520. 0x8CEB: 0x8AA4,
  2521. 0x8CEC: 0x8B77,
  2522. 0x8CED: 0x9190,
  2523. 0x8CEE: 0x4E5E,
  2524. 0x8CEF: 0x9BC9,
  2525. 0x8CF0: 0x4EA4,
  2526. 0x8CF1: 0x4F7C,
  2527. 0x8CF2: 0x4FAF,
  2528. 0x8CF3: 0x5019,
  2529. 0x8CF4: 0x5016,
  2530. 0x8CF5: 0x5149,
  2531. 0x8CF6: 0x516C,
  2532. 0x8CF7: 0x529F,
  2533. 0x8CF8: 0x52B9,
  2534. 0x8CF9: 0x52FE,
  2535. 0x8CFA: 0x539A,
  2536. 0x8CFB: 0x53E3,
  2537. 0x8CFC: 0x5411,
  2538. 0x8D40: 0x540E,
  2539. 0x8D41: 0x5589,
  2540. 0x8D42: 0x5751,
  2541. 0x8D43: 0x57A2,
  2542. 0x8D44: 0x597D,
  2543. 0x8D45: 0x5B54,
  2544. 0x8D46: 0x5B5D,
  2545. 0x8D47: 0x5B8F,
  2546. 0x8D48: 0x5DE5,
  2547. 0x8D49: 0x5DE7,
  2548. 0x8D4A: 0x5DF7,
  2549. 0x8D4B: 0x5E78,
  2550. 0x8D4C: 0x5E83,
  2551. 0x8D4D: 0x5E9A,
  2552. 0x8D4E: 0x5EB7,
  2553. 0x8D4F: 0x5F18,
  2554. 0x8D50: 0x6052,
  2555. 0x8D51: 0x614C,
  2556. 0x8D52: 0x6297,
  2557. 0x8D53: 0x62D8,
  2558. 0x8D54: 0x63A7,
  2559. 0x8D55: 0x653B,
  2560. 0x8D56: 0x6602,
  2561. 0x8D57: 0x6643,
  2562. 0x8D58: 0x66F4,
  2563. 0x8D59: 0x676D,
  2564. 0x8D5A: 0x6821,
  2565. 0x8D5B: 0x6897,
  2566. 0x8D5C: 0x69CB,
  2567. 0x8D5D: 0x6C5F,
  2568. 0x8D5E: 0x6D2A,
  2569. 0x8D5F: 0x6D69,
  2570. 0x8D60: 0x6E2F,
  2571. 0x8D61: 0x6E9D,
  2572. 0x8D62: 0x7532,
  2573. 0x8D63: 0x7687,
  2574. 0x8D64: 0x786C,
  2575. 0x8D65: 0x7A3F,
  2576. 0x8D66: 0x7CE0,
  2577. 0x8D67: 0x7D05,
  2578. 0x8D68: 0x7D18,
  2579. 0x8D69: 0x7D5E,
  2580. 0x8D6A: 0x7DB1,
  2581. 0x8D6B: 0x8015,
  2582. 0x8D6C: 0x8003,
  2583. 0x8D6D: 0x80AF,
  2584. 0x8D6E: 0x80B1,
  2585. 0x8D6F: 0x8154,
  2586. 0x8D70: 0x818F,
  2587. 0x8D71: 0x822A,
  2588. 0x8D72: 0x8352,
  2589. 0x8D73: 0x884C,
  2590. 0x8D74: 0x8861,
  2591. 0x8D75: 0x8B1B,
  2592. 0x8D76: 0x8CA2,
  2593. 0x8D77: 0x8CFC,
  2594. 0x8D78: 0x90CA,
  2595. 0x8D79: 0x9175,
  2596. 0x8D7A: 0x9271,
  2597. 0x8D7B: 0x783F,
  2598. 0x8D7C: 0x92FC,
  2599. 0x8D7D: 0x95A4,
  2600. 0x8D7E: 0x964D,
  2601. 0x8D80: 0x9805,
  2602. 0x8D81: 0x9999,
  2603. 0x8D82: 0x9AD8,
  2604. 0x8D83: 0x9D3B,
  2605. 0x8D84: 0x525B,
  2606. 0x8D85: 0x52AB,
  2607. 0x8D86: 0x53F7,
  2608. 0x8D87: 0x5408,
  2609. 0x8D88: 0x58D5,
  2610. 0x8D89: 0x62F7,
  2611. 0x8D8A: 0x6FE0,
  2612. 0x8D8B: 0x8C6A,
  2613. 0x8D8C: 0x8F5F,
  2614. 0x8D8D: 0x9EB9,
  2615. 0x8D8E: 0x514B,
  2616. 0x8D8F: 0x523B,
  2617. 0x8D90: 0x544A,
  2618. 0x8D91: 0x56FD,
  2619. 0x8D92: 0x7A40,
  2620. 0x8D93: 0x9177,
  2621. 0x8D94: 0x9D60,
  2622. 0x8D95: 0x9ED2,
  2623. 0x8D96: 0x7344,
  2624. 0x8D97: 0x6F09,
  2625. 0x8D98: 0x8170,
  2626. 0x8D99: 0x7511,
  2627. 0x8D9A: 0x5FFD,
  2628. 0x8D9B: 0x60DA,
  2629. 0x8D9C: 0x9AA8,
  2630. 0x8D9D: 0x72DB,
  2631. 0x8D9E: 0x8FBC,
  2632. 0x8D9F: 0x6B64,
  2633. 0x8DA0: 0x9803,
  2634. 0x8DA1: 0x4ECA,
  2635. 0x8DA2: 0x56F0,
  2636. 0x8DA3: 0x5764,
  2637. 0x8DA4: 0x58BE,
  2638. 0x8DA5: 0x5A5A,
  2639. 0x8DA6: 0x6068,
  2640. 0x8DA7: 0x61C7,
  2641. 0x8DA8: 0x660F,
  2642. 0x8DA9: 0x6606,
  2643. 0x8DAA: 0x6839,
  2644. 0x8DAB: 0x68B1,
  2645. 0x8DAC: 0x6DF7,
  2646. 0x8DAD: 0x75D5,
  2647. 0x8DAE: 0x7D3A,
  2648. 0x8DAF: 0x826E,
  2649. 0x8DB0: 0x9B42,
  2650. 0x8DB1: 0x4E9B,
  2651. 0x8DB2: 0x4F50,
  2652. 0x8DB3: 0x53C9,
  2653. 0x8DB4: 0x5506,
  2654. 0x8DB5: 0x5D6F,
  2655. 0x8DB6: 0x5DE6,
  2656. 0x8DB7: 0x5DEE,
  2657. 0x8DB8: 0x67FB,
  2658. 0x8DB9: 0x6C99,
  2659. 0x8DBA: 0x7473,
  2660. 0x8DBB: 0x7802,
  2661. 0x8DBC: 0x8A50,
  2662. 0x8DBD: 0x9396,
  2663. 0x8DBE: 0x88DF,
  2664. 0x8DBF: 0x5750,
  2665. 0x8DC0: 0x5EA7,
  2666. 0x8DC1: 0x632B,
  2667. 0x8DC2: 0x50B5,
  2668. 0x8DC3: 0x50AC,
  2669. 0x8DC4: 0x518D,
  2670. 0x8DC5: 0x6700,
  2671. 0x8DC6: 0x54C9,
  2672. 0x8DC7: 0x585E,
  2673. 0x8DC8: 0x59BB,
  2674. 0x8DC9: 0x5BB0,
  2675. 0x8DCA: 0x5F69,
  2676. 0x8DCB: 0x624D,
  2677. 0x8DCC: 0x63A1,
  2678. 0x8DCD: 0x683D,
  2679. 0x8DCE: 0x6B73,
  2680. 0x8DCF: 0x6E08,
  2681. 0x8DD0: 0x707D,
  2682. 0x8DD1: 0x91C7,
  2683. 0x8DD2: 0x7280,
  2684. 0x8DD3: 0x7815,
  2685. 0x8DD4: 0x7826,
  2686. 0x8DD5: 0x796D,
  2687. 0x8DD6: 0x658E,
  2688. 0x8DD7: 0x7D30,
  2689. 0x8DD8: 0x83DC,
  2690. 0x8DD9: 0x88C1,
  2691. 0x8DDA: 0x8F09,
  2692. 0x8DDB: 0x969B,
  2693. 0x8DDC: 0x5264,
  2694. 0x8DDD: 0x5728,
  2695. 0x8DDE: 0x6750,
  2696. 0x8DDF: 0x7F6A,
  2697. 0x8DE0: 0x8CA1,
  2698. 0x8DE1: 0x51B4,
  2699. 0x8DE2: 0x5742,
  2700. 0x8DE3: 0x962A,
  2701. 0x8DE4: 0x583A,
  2702. 0x8DE5: 0x698A,
  2703. 0x8DE6: 0x80B4,
  2704. 0x8DE7: 0x54B2,
  2705. 0x8DE8: 0x5D0E,
  2706. 0x8DE9: 0x57FC,
  2707. 0x8DEA: 0x7895,
  2708. 0x8DEB: 0x9DFA,
  2709. 0x8DEC: 0x4F5C,
  2710. 0x8DED: 0x524A,
  2711. 0x8DEE: 0x548B,
  2712. 0x8DEF: 0x643E,
  2713. 0x8DF0: 0x6628,
  2714. 0x8DF1: 0x6714,
  2715. 0x8DF2: 0x67F5,
  2716. 0x8DF3: 0x7A84,
  2717. 0x8DF4: 0x7B56,
  2718. 0x8DF5: 0x7D22,
  2719. 0x8DF6: 0x932F,
  2720. 0x8DF7: 0x685C,
  2721. 0x8DF8: 0x9BAD,
  2722. 0x8DF9: 0x7B39,
  2723. 0x8DFA: 0x5319,
  2724. 0x8DFB: 0x518A,
  2725. 0x8DFC: 0x5237,
  2726. 0x8E40: 0x5BDF,
  2727. 0x8E41: 0x62F6,
  2728. 0x8E42: 0x64AE,
  2729. 0x8E43: 0x64E6,
  2730. 0x8E44: 0x672D,
  2731. 0x8E45: 0x6BBA,
  2732. 0x8E46: 0x85A9,
  2733. 0x8E47: 0x96D1,
  2734. 0x8E48: 0x7690,
  2735. 0x8E49: 0x9BD6,
  2736. 0x8E4A: 0x634C,
  2737. 0x8E4B: 0x9306,
  2738. 0x8E4C: 0x9BAB,
  2739. 0x8E4D: 0x76BF,
  2740. 0x8E4E: 0x6652,
  2741. 0x8E4F: 0x4E09,
  2742. 0x8E50: 0x5098,
  2743. 0x8E51: 0x53C2,
  2744. 0x8E52: 0x5C71,
  2745. 0x8E53: 0x60E8,
  2746. 0x8E54: 0x6492,
  2747. 0x8E55: 0x6563,
  2748. 0x8E56: 0x685F,
  2749. 0x8E57: 0x71E6,
  2750. 0x8E58: 0x73CA,
  2751. 0x8E59: 0x7523,
  2752. 0x8E5A: 0x7B97,
  2753. 0x8E5B: 0x7E82,
  2754. 0x8E5C: 0x8695,
  2755. 0x8E5D: 0x8B83,
  2756. 0x8E5E: 0x8CDB,
  2757. 0x8E5F: 0x9178,
  2758. 0x8E60: 0x9910,
  2759. 0x8E61: 0x65AC,
  2760. 0x8E62: 0x66AB,
  2761. 0x8E63: 0x6B8B,
  2762. 0x8E64: 0x4ED5,
  2763. 0x8E65: 0x4ED4,
  2764. 0x8E66: 0x4F3A,
  2765. 0x8E67: 0x4F7F,
  2766. 0x8E68: 0x523A,
  2767. 0x8E69: 0x53F8,
  2768. 0x8E6A: 0x53F2,
  2769. 0x8E6B: 0x55E3,
  2770. 0x8E6C: 0x56DB,
  2771. 0x8E6D: 0x58EB,
  2772. 0x8E6E: 0x59CB,
  2773. 0x8E6F: 0x59C9,
  2774. 0x8E70: 0x59FF,
  2775. 0x8E71: 0x5B50,
  2776. 0x8E72: 0x5C4D,
  2777. 0x8E73: 0x5E02,
  2778. 0x8E74: 0x5E2B,
  2779. 0x8E75: 0x5FD7,
  2780. 0x8E76: 0x601D,
  2781. 0x8E77: 0x6307,
  2782. 0x8E78: 0x652F,
  2783. 0x8E79: 0x5B5C,
  2784. 0x8E7A: 0x65AF,
  2785. 0x8E7B: 0x65BD,
  2786. 0x8E7C: 0x65E8,
  2787. 0x8E7D: 0x679D,
  2788. 0x8E7E: 0x6B62,
  2789. 0x8E80: 0x6B7B,
  2790. 0x8E81: 0x6C0F,
  2791. 0x8E82: 0x7345,
  2792. 0x8E83: 0x7949,
  2793. 0x8E84: 0x79C1,
  2794. 0x8E85: 0x7CF8,
  2795. 0x8E86: 0x7D19,
  2796. 0x8E87: 0x7D2B,
  2797. 0x8E88: 0x80A2,
  2798. 0x8E89: 0x8102,
  2799. 0x8E8A: 0x81F3,
  2800. 0x8E8B: 0x8996,
  2801. 0x8E8C: 0x8A5E,
  2802. 0x8E8D: 0x8A69,
  2803. 0x8E8E: 0x8A66,
  2804. 0x8E8F: 0x8A8C,
  2805. 0x8E90: 0x8AEE,
  2806. 0x8E91: 0x8CC7,
  2807. 0x8E92: 0x8CDC,
  2808. 0x8E93: 0x96CC,
  2809. 0x8E94: 0x98FC,
  2810. 0x8E95: 0x6B6F,
  2811. 0x8E96: 0x4E8B,
  2812. 0x8E97: 0x4F3C,
  2813. 0x8E98: 0x4F8D,
  2814. 0x8E99: 0x5150,
  2815. 0x8E9A: 0x5B57,
  2816. 0x8E9B: 0x5BFA,
  2817. 0x8E9C: 0x6148,
  2818. 0x8E9D: 0x6301,
  2819. 0x8E9E: 0x6642,
  2820. 0x8E9F: 0x6B21,
  2821. 0x8EA0: 0x6ECB,
  2822. 0x8EA1: 0x6CBB,
  2823. 0x8EA2: 0x723E,
  2824. 0x8EA3: 0x74BD,
  2825. 0x8EA4: 0x75D4,
  2826. 0x8EA5: 0x78C1,
  2827. 0x8EA6: 0x793A,
  2828. 0x8EA7: 0x800C,
  2829. 0x8EA8: 0x8033,
  2830. 0x8EA9: 0x81EA,
  2831. 0x8EAA: 0x8494,
  2832. 0x8EAB: 0x8F9E,
  2833. 0x8EAC: 0x6C50,
  2834. 0x8EAD: 0x9E7F,
  2835. 0x8EAE: 0x5F0F,
  2836. 0x8EAF: 0x8B58,
  2837. 0x8EB0: 0x9D2B,
  2838. 0x8EB1: 0x7AFA,
  2839. 0x8EB2: 0x8EF8,
  2840. 0x8EB3: 0x5B8D,
  2841. 0x8EB4: 0x96EB,
  2842. 0x8EB5: 0x4E03,
  2843. 0x8EB6: 0x53F1,
  2844. 0x8EB7: 0x57F7,
  2845. 0x8EB8: 0x5931,
  2846. 0x8EB9: 0x5AC9,
  2847. 0x8EBA: 0x5BA4,
  2848. 0x8EBB: 0x6089,
  2849. 0x8EBC: 0x6E7F,
  2850. 0x8EBD: 0x6F06,
  2851. 0x8EBE: 0x75BE,
  2852. 0x8EBF: 0x8CEA,
  2853. 0x8EC0: 0x5B9F,
  2854. 0x8EC1: 0x8500,
  2855. 0x8EC2: 0x7BE0,
  2856. 0x8EC3: 0x5072,
  2857. 0x8EC4: 0x67F4,
  2858. 0x8EC5: 0x829D,
  2859. 0x8EC6: 0x5C61,
  2860. 0x8EC7: 0x854A,
  2861. 0x8EC8: 0x7E1E,
  2862. 0x8EC9: 0x820E,
  2863. 0x8ECA: 0x5199,
  2864. 0x8ECB: 0x5C04,
  2865. 0x8ECC: 0x6368,
  2866. 0x8ECD: 0x8D66,
  2867. 0x8ECE: 0x659C,
  2868. 0x8ECF: 0x716E,
  2869. 0x8ED0: 0x793E,
  2870. 0x8ED1: 0x7D17,
  2871. 0x8ED2: 0x8005,
  2872. 0x8ED3: 0x8B1D,
  2873. 0x8ED4: 0x8ECA,
  2874. 0x8ED5: 0x906E,
  2875. 0x8ED6: 0x86C7,
  2876. 0x8ED7: 0x90AA,
  2877. 0x8ED8: 0x501F,
  2878. 0x8ED9: 0x52FA,
  2879. 0x8EDA: 0x5C3A,
  2880. 0x8EDB: 0x6753,
  2881. 0x8EDC: 0x707C,
  2882. 0x8EDD: 0x7235,
  2883. 0x8EDE: 0x914C,
  2884. 0x8EDF: 0x91C8,
  2885. 0x8EE0: 0x932B,
  2886. 0x8EE1: 0x82E5,
  2887. 0x8EE2: 0x5BC2,
  2888. 0x8EE3: 0x5F31,
  2889. 0x8EE4: 0x60F9,
  2890. 0x8EE5: 0x4E3B,
  2891. 0x8EE6: 0x53D6,
  2892. 0x8EE7: 0x5B88,
  2893. 0x8EE8: 0x624B,
  2894. 0x8EE9: 0x6731,
  2895. 0x8EEA: 0x6B8A,
  2896. 0x8EEB: 0x72E9,
  2897. 0x8EEC: 0x73E0,
  2898. 0x8EED: 0x7A2E,
  2899. 0x8EEE: 0x816B,
  2900. 0x8EEF: 0x8DA3,
  2901. 0x8EF0: 0x9152,
  2902. 0x8EF1: 0x9996,
  2903. 0x8EF2: 0x5112,
  2904. 0x8EF3: 0x53D7,
  2905. 0x8EF4: 0x546A,
  2906. 0x8EF5: 0x5BFF,
  2907. 0x8EF6: 0x6388,
  2908. 0x8EF7: 0x6A39,
  2909. 0x8EF8: 0x7DAC,
  2910. 0x8EF9: 0x9700,
  2911. 0x8EFA: 0x56DA,
  2912. 0x8EFB: 0x53CE,
  2913. 0x8EFC: 0x5468,
  2914. 0x8F40: 0x5B97,
  2915. 0x8F41: 0x5C31,
  2916. 0x8F42: 0x5DDE,
  2917. 0x8F43: 0x4FEE,
  2918. 0x8F44: 0x6101,
  2919. 0x8F45: 0x62FE,
  2920. 0x8F46: 0x6D32,
  2921. 0x8F47: 0x79C0,
  2922. 0x8F48: 0x79CB,
  2923. 0x8F49: 0x7D42,
  2924. 0x8F4A: 0x7E4D,
  2925. 0x8F4B: 0x7FD2,
  2926. 0x8F4C: 0x81ED,
  2927. 0x8F4D: 0x821F,
  2928. 0x8F4E: 0x8490,
  2929. 0x8F4F: 0x8846,
  2930. 0x8F50: 0x8972,
  2931. 0x8F51: 0x8B90,
  2932. 0x8F52: 0x8E74,
  2933. 0x8F53: 0x8F2F,
  2934. 0x8F54: 0x9031,
  2935. 0x8F55: 0x914B,
  2936. 0x8F56: 0x916C,
  2937. 0x8F57: 0x96C6,
  2938. 0x8F58: 0x919C,
  2939. 0x8F59: 0x4EC0,
  2940. 0x8F5A: 0x4F4F,
  2941. 0x8F5B: 0x5145,
  2942. 0x8F5C: 0x5341,
  2943. 0x8F5D: 0x5F93,
  2944. 0x8F5E: 0x620E,
  2945. 0x8F5F: 0x67D4,
  2946. 0x8F60: 0x6C41,
  2947. 0x8F61: 0x6E0B,
  2948. 0x8F62: 0x7363,
  2949. 0x8F63: 0x7E26,
  2950. 0x8F64: 0x91CD,
  2951. 0x8F65: 0x9283,
  2952. 0x8F66: 0x53D4,
  2953. 0x8F67: 0x5919,
  2954. 0x8F68: 0x5BBF,
  2955. 0x8F69: 0x6DD1,
  2956. 0x8F6A: 0x795D,
  2957. 0x8F6B: 0x7E2E,
  2958. 0x8F6C: 0x7C9B,
  2959. 0x8F6D: 0x587E,
  2960. 0x8F6E: 0x719F,
  2961. 0x8F6F: 0x51FA,
  2962. 0x8F70: 0x8853,
  2963. 0x8F71: 0x8FF0,
  2964. 0x8F72: 0x4FCA,
  2965. 0x8F73: 0x5CFB,
  2966. 0x8F74: 0x6625,
  2967. 0x8F75: 0x77AC,
  2968. 0x8F76: 0x7AE3,
  2969. 0x8F77: 0x821C,
  2970. 0x8F78: 0x99FF,
  2971. 0x8F79: 0x51C6,
  2972. 0x8F7A: 0x5FAA,
  2973. 0x8F7B: 0x65EC,
  2974. 0x8F7C: 0x696F,
  2975. 0x8F7D: 0x6B89,
  2976. 0x8F7E: 0x6DF3,
  2977. 0x8F80: 0x6E96,
  2978. 0x8F81: 0x6F64,
  2979. 0x8F82: 0x76FE,
  2980. 0x8F83: 0x7D14,
  2981. 0x8F84: 0x5DE1,
  2982. 0x8F85: 0x9075,
  2983. 0x8F86: 0x9187,
  2984. 0x8F87: 0x9806,
  2985. 0x8F88: 0x51E6,
  2986. 0x8F89: 0x521D,
  2987. 0x8F8A: 0x6240,
  2988. 0x8F8B: 0x6691,
  2989. 0x8F8C: 0x66D9,
  2990. 0x8F8D: 0x6E1A,
  2991. 0x8F8E: 0x5EB6,
  2992. 0x8F8F: 0x7DD2,
  2993. 0x8F90: 0x7F72,
  2994. 0x8F91: 0x66F8,
  2995. 0x8F92: 0x85AF,
  2996. 0x8F93: 0x85F7,
  2997. 0x8F94: 0x8AF8,
  2998. 0x8F95: 0x52A9,
  2999. 0x8F96: 0x53D9,
  3000. 0x8F97: 0x5973,
  3001. 0x8F98: 0x5E8F,
  3002. 0x8F99: 0x5F90,
  3003. 0x8F9A: 0x6055,
  3004. 0x8F9B: 0x92E4,
  3005. 0x8F9C: 0x9664,
  3006. 0x8F9D: 0x50B7,
  3007. 0x8F9E: 0x511F,
  3008. 0x8F9F: 0x52DD,
  3009. 0x8FA0: 0x5320,
  3010. 0x8FA1: 0x5347,
  3011. 0x8FA2: 0x53EC,
  3012. 0x8FA3: 0x54E8,
  3013. 0x8FA4: 0x5546,
  3014. 0x8FA5: 0x5531,
  3015. 0x8FA6: 0x5617,
  3016. 0x8FA7: 0x5968,
  3017. 0x8FA8: 0x59BE,
  3018. 0x8FA9: 0x5A3C,
  3019. 0x8FAA: 0x5BB5,
  3020. 0x8FAB: 0x5C06,
  3021. 0x8FAC: 0x5C0F,
  3022. 0x8FAD: 0x5C11,
  3023. 0x8FAE: 0x5C1A,
  3024. 0x8FAF: 0x5E84,
  3025. 0x8FB0: 0x5E8A,
  3026. 0x8FB1: 0x5EE0,
  3027. 0x8FB2: 0x5F70,
  3028. 0x8FB3: 0x627F,
  3029. 0x8FB4: 0x6284,
  3030. 0x8FB5: 0x62DB,
  3031. 0x8FB6: 0x638C,
  3032. 0x8FB7: 0x6377,
  3033. 0x8FB8: 0x6607,
  3034. 0x8FB9: 0x660C,
  3035. 0x8FBA: 0x662D,
  3036. 0x8FBB: 0x6676,
  3037. 0x8FBC: 0x677E,
  3038. 0x8FBD: 0x68A2,
  3039. 0x8FBE: 0x6A1F,
  3040. 0x8FBF: 0x6A35,
  3041. 0x8FC0: 0x6CBC,
  3042. 0x8FC1: 0x6D88,
  3043. 0x8FC2: 0x6E09,
  3044. 0x8FC3: 0x6E58,
  3045. 0x8FC4: 0x713C,
  3046. 0x8FC5: 0x7126,
  3047. 0x8FC6: 0x7167,
  3048. 0x8FC7: 0x75C7,
  3049. 0x8FC8: 0x7701,
  3050. 0x8FC9: 0x785D,
  3051. 0x8FCA: 0x7901,
  3052. 0x8FCB: 0x7965,
  3053. 0x8FCC: 0x79F0,
  3054. 0x8FCD: 0x7AE0,
  3055. 0x8FCE: 0x7B11,
  3056. 0x8FCF: 0x7CA7,
  3057. 0x8FD0: 0x7D39,
  3058. 0x8FD1: 0x8096,
  3059. 0x8FD2: 0x83D6,
  3060. 0x8FD3: 0x848B,
  3061. 0x8FD4: 0x8549,
  3062. 0x8FD5: 0x885D,
  3063. 0x8FD6: 0x88F3,
  3064. 0x8FD7: 0x8A1F,
  3065. 0x8FD8: 0x8A3C,
  3066. 0x8FD9: 0x8A54,
  3067. 0x8FDA: 0x8A73,
  3068. 0x8FDB: 0x8C61,
  3069. 0x8FDC: 0x8CDE,
  3070. 0x8FDD: 0x91A4,
  3071. 0x8FDE: 0x9266,
  3072. 0x8FDF: 0x937E,
  3073. 0x8FE0: 0x9418,
  3074. 0x8FE1: 0x969C,
  3075. 0x8FE2: 0x9798,
  3076. 0x8FE3: 0x4E0A,
  3077. 0x8FE4: 0x4E08,
  3078. 0x8FE5: 0x4E1E,
  3079. 0x8FE6: 0x4E57,
  3080. 0x8FE7: 0x5197,
  3081. 0x8FE8: 0x5270,
  3082. 0x8FE9: 0x57CE,
  3083. 0x8FEA: 0x5834,
  3084. 0x8FEB: 0x58CC,
  3085. 0x8FEC: 0x5B22,
  3086. 0x8FED: 0x5E38,
  3087. 0x8FEE: 0x60C5,
  3088. 0x8FEF: 0x64FE,
  3089. 0x8FF0: 0x6761,
  3090. 0x8FF1: 0x6756,
  3091. 0x8FF2: 0x6D44,
  3092. 0x8FF3: 0x72B6,
  3093. 0x8FF4: 0x7573,
  3094. 0x8FF5: 0x7A63,
  3095. 0x8FF6: 0x84B8,
  3096. 0x8FF7: 0x8B72,
  3097. 0x8FF8: 0x91B8,
  3098. 0x8FF9: 0x9320,
  3099. 0x8FFA: 0x5631,
  3100. 0x8FFB: 0x57F4,
  3101. 0x8FFC: 0x98FE,
  3102. 0x9040: 0x62ED,
  3103. 0x9041: 0x690D,
  3104. 0x9042: 0x6B96,
  3105. 0x9043: 0x71ED,
  3106. 0x9044: 0x7E54,
  3107. 0x9045: 0x8077,
  3108. 0x9046: 0x8272,
  3109. 0x9047: 0x89E6,
  3110. 0x9048: 0x98DF,
  3111. 0x9049: 0x8755,
  3112. 0x904A: 0x8FB1,
  3113. 0x904B: 0x5C3B,
  3114. 0x904C: 0x4F38,
  3115. 0x904D: 0x4FE1,
  3116. 0x904E: 0x4FB5,
  3117. 0x904F: 0x5507,
  3118. 0x9050: 0x5A20,
  3119. 0x9051: 0x5BDD,
  3120. 0x9052: 0x5BE9,
  3121. 0x9053: 0x5FC3,
  3122. 0x9054: 0x614E,
  3123. 0x9055: 0x632F,
  3124. 0x9056: 0x65B0,
  3125. 0x9057: 0x664B,
  3126. 0x9058: 0x68EE,
  3127. 0x9059: 0x699B,
  3128. 0x905A: 0x6D78,
  3129. 0x905B: 0x6DF1,
  3130. 0x905C: 0x7533,
  3131. 0x905D: 0x75B9,
  3132. 0x905E: 0x771F,
  3133. 0x905F: 0x795E,
  3134. 0x9060: 0x79E6,
  3135. 0x9061: 0x7D33,
  3136. 0x9062: 0x81E3,
  3137. 0x9063: 0x82AF,
  3138. 0x9064: 0x85AA,
  3139. 0x9065: 0x89AA,
  3140. 0x9066: 0x8A3A,
  3141. 0x9067: 0x8EAB,
  3142. 0x9068: 0x8F9B,
  3143. 0x9069: 0x9032,
  3144. 0x906A: 0x91DD,
  3145. 0x906B: 0x9707,
  3146. 0x906C: 0x4EBA,
  3147. 0x906D: 0x4EC1,
  3148. 0x906E: 0x5203,
  3149. 0x906F: 0x5875,
  3150. 0x9070: 0x58EC,
  3151. 0x9071: 0x5C0B,
  3152. 0x9072: 0x751A,
  3153. 0x9073: 0x5C3D,
  3154. 0x9074: 0x814E,
  3155. 0x9075: 0x8A0A,
  3156. 0x9076: 0x8FC5,
  3157. 0x9077: 0x9663,
  3158. 0x9078: 0x976D,
  3159. 0x9079: 0x7B25,
  3160. 0x907A: 0x8ACF,
  3161. 0x907B: 0x9808,
  3162. 0x907C: 0x9162,
  3163. 0x907D: 0x56F3,
  3164. 0x907E: 0x53A8,
  3165. 0x9080: 0x9017,
  3166. 0x9081: 0x5439,
  3167. 0x9082: 0x5782,
  3168. 0x9083: 0x5E25,
  3169. 0x9084: 0x63A8,
  3170. 0x9085: 0x6C34,
  3171. 0x9086: 0x708A,
  3172. 0x9087: 0x7761,
  3173. 0x9088: 0x7C8B,
  3174. 0x9089: 0x7FE0,
  3175. 0x908A: 0x8870,
  3176. 0x908B: 0x9042,
  3177. 0x908C: 0x9154,
  3178. 0x908D: 0x9310,
  3179. 0x908E: 0x9318,
  3180. 0x908F: 0x968F,
  3181. 0x9090: 0x745E,
  3182. 0x9091: 0x9AC4,
  3183. 0x9092: 0x5D07,
  3184. 0x9093: 0x5D69,
  3185. 0x9094: 0x6570,
  3186. 0x9095: 0x67A2,
  3187. 0x9096: 0x8DA8,
  3188. 0x9097: 0x96DB,
  3189. 0x9098: 0x636E,
  3190. 0x9099: 0x6749,
  3191. 0x909A: 0x6919,
  3192. 0x909B: 0x83C5,
  3193. 0x909C: 0x9817,
  3194. 0x909D: 0x96C0,
  3195. 0x909E: 0x88FE,
  3196. 0x909F: 0x6F84,
  3197. 0x90A0: 0x647A,
  3198. 0x90A1: 0x5BF8,
  3199. 0x90A2: 0x4E16,
  3200. 0x90A3: 0x702C,
  3201. 0x90A4: 0x755D,
  3202. 0x90A5: 0x662F,
  3203. 0x90A6: 0x51C4,
  3204. 0x90A7: 0x5236,
  3205. 0x90A8: 0x52E2,
  3206. 0x90A9: 0x59D3,
  3207. 0x90AA: 0x5F81,
  3208. 0x90AB: 0x6027,
  3209. 0x90AC: 0x6210,
  3210. 0x90AD: 0x653F,
  3211. 0x90AE: 0x6574,
  3212. 0x90AF: 0x661F,
  3213. 0x90B0: 0x6674,
  3214. 0x90B1: 0x68F2,
  3215. 0x90B2: 0x6816,
  3216. 0x90B3: 0x6B63,
  3217. 0x90B4: 0x6E05,
  3218. 0x90B5: 0x7272,
  3219. 0x90B6: 0x751F,
  3220. 0x90B7: 0x76DB,
  3221. 0x90B8: 0x7CBE,
  3222. 0x90B9: 0x8056,
  3223. 0x90BA: 0x58F0,
  3224. 0x90BB: 0x88FD,
  3225. 0x90BC: 0x897F,
  3226. 0x90BD: 0x8AA0,
  3227. 0x90BE: 0x8A93,
  3228. 0x90BF: 0x8ACB,
  3229. 0x90C0: 0x901D,
  3230. 0x90C1: 0x9192,
  3231. 0x90C2: 0x9752,
  3232. 0x90C3: 0x9759,
  3233. 0x90C4: 0x6589,
  3234. 0x90C5: 0x7A0E,
  3235. 0x90C6: 0x8106,
  3236. 0x90C7: 0x96BB,
  3237. 0x90C8: 0x5E2D,
  3238. 0x90C9: 0x60DC,
  3239. 0x90CA: 0x621A,
  3240. 0x90CB: 0x65A5,
  3241. 0x90CC: 0x6614,
  3242. 0x90CD: 0x6790,
  3243. 0x90CE: 0x77F3,
  3244. 0x90CF: 0x7A4D,
  3245. 0x90D0: 0x7C4D,
  3246. 0x90D1: 0x7E3E,
  3247. 0x90D2: 0x810A,
  3248. 0x90D3: 0x8CAC,
  3249. 0x90D4: 0x8D64,
  3250. 0x90D5: 0x8DE1,
  3251. 0x90D6: 0x8E5F,
  3252. 0x90D7: 0x78A9,
  3253. 0x90D8: 0x5207,
  3254. 0x90D9: 0x62D9,
  3255. 0x90DA: 0x63A5,
  3256. 0x90DB: 0x6442,
  3257. 0x90DC: 0x6298,
  3258. 0x90DD: 0x8A2D,
  3259. 0x90DE: 0x7A83,
  3260. 0x90DF: 0x7BC0,
  3261. 0x90E0: 0x8AAC,
  3262. 0x90E1: 0x96EA,
  3263. 0x90E2: 0x7D76,
  3264. 0x90E3: 0x820C,
  3265. 0x90E4: 0x8749,
  3266. 0x90E5: 0x4ED9,
  3267. 0x90E6: 0x5148,
  3268. 0x90E7: 0x5343,
  3269. 0x90E8: 0x5360,
  3270. 0x90E9: 0x5BA3,
  3271. 0x90EA: 0x5C02,
  3272. 0x90EB: 0x5C16,
  3273. 0x90EC: 0x5DDD,
  3274. 0x90ED: 0x6226,
  3275. 0x90EE: 0x6247,
  3276. 0x90EF: 0x64B0,
  3277. 0x90F0: 0x6813,
  3278. 0x90F1: 0x6834,
  3279. 0x90F2: 0x6CC9,
  3280. 0x90F3: 0x6D45,
  3281. 0x90F4: 0x6D17,
  3282. 0x90F5: 0x67D3,
  3283. 0x90F6: 0x6F5C,
  3284. 0x90F7: 0x714E,
  3285. 0x90F8: 0x717D,
  3286. 0x90F9: 0x65CB,
  3287. 0x90FA: 0x7A7F,
  3288. 0x90FB: 0x7BAD,
  3289. 0x90FC: 0x7DDA,
  3290. 0x9140: 0x7E4A,
  3291. 0x9141: 0x7FA8,
  3292. 0x9142: 0x817A,
  3293. 0x9143: 0x821B,
  3294. 0x9144: 0x8239,
  3295. 0x9145: 0x85A6,
  3296. 0x9146: 0x8A6E,
  3297. 0x9147: 0x8CCE,
  3298. 0x9148: 0x8DF5,
  3299. 0x9149: 0x9078,
  3300. 0x914A: 0x9077,
  3301. 0x914B: 0x92AD,
  3302. 0x914C: 0x9291,
  3303. 0x914D: 0x9583,
  3304. 0x914E: 0x9BAE,
  3305. 0x914F: 0x524D,
  3306. 0x9150: 0x5584,
  3307. 0x9151: 0x6F38,
  3308. 0x9152: 0x7136,
  3309. 0x9153: 0x5168,
  3310. 0x9154: 0x7985,
  3311. 0x9155: 0x7E55,
  3312. 0x9156: 0x81B3,
  3313. 0x9157: 0x7CCE,
  3314. 0x9158: 0x564C,
  3315. 0x9159: 0x5851,
  3316. 0x915A: 0x5CA8,
  3317. 0x915B: 0x63AA,
  3318. 0x915C: 0x66FE,
  3319. 0x915D: 0x66FD,
  3320. 0x915E: 0x695A,
  3321. 0x915F: 0x72D9,
  3322. 0x9160: 0x758F,
  3323. 0x9161: 0x758E,
  3324. 0x9162: 0x790E,
  3325. 0x9163: 0x7956,
  3326. 0x9164: 0x79DF,
  3327. 0x9165: 0x7C97,
  3328. 0x9166: 0x7D20,
  3329. 0x9167: 0x7D44,
  3330. 0x9168: 0x8607,
  3331. 0x9169: 0x8A34,
  3332. 0x916A: 0x963B,
  3333. 0x916B: 0x9061,
  3334. 0x916C: 0x9F20,
  3335. 0x916D: 0x50E7,
  3336. 0x916E: 0x5275,
  3337. 0x916F: 0x53CC,
  3338. 0x9170: 0x53E2,
  3339. 0x9171: 0x5009,
  3340. 0x9172: 0x55AA,
  3341. 0x9173: 0x58EE,
  3342. 0x9174: 0x594F,
  3343. 0x9175: 0x723D,
  3344. 0x9176: 0x5B8B,
  3345. 0x9177: 0x5C64,
  3346. 0x9178: 0x531D,
  3347. 0x9179: 0x60E3,
  3348. 0x917A: 0x60F3,
  3349. 0x917B: 0x635C,
  3350. 0x917C: 0x6383,
  3351. 0x917D: 0x633F,
  3352. 0x917E: 0x63BB,
  3353. 0x9180: 0x64CD,
  3354. 0x9181: 0x65E9,
  3355. 0x9182: 0x66F9,
  3356. 0x9183: 0x5DE3,
  3357. 0x9184: 0x69CD,
  3358. 0x9185: 0x69FD,
  3359. 0x9186: 0x6F15,
  3360. 0x9187: 0x71E5,
  3361. 0x9188: 0x4E89,
  3362. 0x9189: 0x75E9,
  3363. 0x918A: 0x76F8,
  3364. 0x918B: 0x7A93,
  3365. 0x918C: 0x7CDF,
  3366. 0x918D: 0x7DCF,
  3367. 0x918E: 0x7D9C,
  3368. 0x918F: 0x8061,
  3369. 0x9190: 0x8349,
  3370. 0x9191: 0x8358,
  3371. 0x9192: 0x846C,
  3372. 0x9193: 0x84BC,
  3373. 0x9194: 0x85FB,
  3374. 0x9195: 0x88C5,
  3375. 0x9196: 0x8D70,
  3376. 0x9197: 0x9001,
  3377. 0x9198: 0x906D,
  3378. 0x9199: 0x9397,
  3379. 0x919A: 0x971C,
  3380. 0x919B: 0x9A12,
  3381. 0x919C: 0x50CF,
  3382. 0x919D: 0x5897,
  3383. 0x919E: 0x618E,
  3384. 0x919F: 0x81D3,
  3385. 0x91A0: 0x8535,
  3386. 0x91A1: 0x8D08,
  3387. 0x91A2: 0x9020,
  3388. 0x91A3: 0x4FC3,
  3389. 0x91A4: 0x5074,
  3390. 0x91A5: 0x5247,
  3391. 0x91A6: 0x5373,
  3392. 0x91A7: 0x606F,
  3393. 0x91A8: 0x6349,
  3394. 0x91A9: 0x675F,
  3395. 0x91AA: 0x6E2C,
  3396. 0x91AB: 0x8DB3,
  3397. 0x91AC: 0x901F,
  3398. 0x91AD: 0x4FD7,
  3399. 0x91AE: 0x5C5E,
  3400. 0x91AF: 0x8CCA,
  3401. 0x91B0: 0x65CF,
  3402. 0x91B1: 0x7D9A,
  3403. 0x91B2: 0x5352,
  3404. 0x91B3: 0x8896,
  3405. 0x91B4: 0x5176,
  3406. 0x91B5: 0x63C3,
  3407. 0x91B6: 0x5B58,
  3408. 0x91B7: 0x5B6B,
  3409. 0x91B8: 0x5C0A,
  3410. 0x91B9: 0x640D,
  3411. 0x91BA: 0x6751,
  3412. 0x91BB: 0x905C,
  3413. 0x91BC: 0x4ED6,
  3414. 0x91BD: 0x591A,
  3415. 0x91BE: 0x592A,
  3416. 0x91BF: 0x6C70,
  3417. 0x91C0: 0x8A51,
  3418. 0x91C1: 0x553E,
  3419. 0x91C2: 0x5815,
  3420. 0x91C3: 0x59A5,
  3421. 0x91C4: 0x60F0,
  3422. 0x91C5: 0x6253,
  3423. 0x91C6: 0x67C1,
  3424. 0x91C7: 0x8235,
  3425. 0x91C8: 0x6955,
  3426. 0x91C9: 0x9640,
  3427. 0x91CA: 0x99C4,
  3428. 0x91CB: 0x9A28,
  3429. 0x91CC: 0x4F53,
  3430. 0x91CD: 0x5806,
  3431. 0x91CE: 0x5BFE,
  3432. 0x91CF: 0x8010,
  3433. 0x91D0: 0x5CB1,
  3434. 0x91D1: 0x5E2F,
  3435. 0x91D2: 0x5F85,
  3436. 0x91D3: 0x6020,
  3437. 0x91D4: 0x614B,
  3438. 0x91D5: 0x6234,
  3439. 0x91D6: 0x66FF,
  3440. 0x91D7: 0x6CF0,
  3441. 0x91D8: 0x6EDE,
  3442. 0x91D9: 0x80CE,
  3443. 0x91DA: 0x817F,
  3444. 0x91DB: 0x82D4,
  3445. 0x91DC: 0x888B,
  3446. 0x91DD: 0x8CB8,
  3447. 0x91DE: 0x9000,
  3448. 0x91DF: 0x902E,
  3449. 0x91E0: 0x968A,
  3450. 0x91E1: 0x9EDB,
  3451. 0x91E2: 0x9BDB,
  3452. 0x91E3: 0x4EE3,
  3453. 0x91E4: 0x53F0,
  3454. 0x91E5: 0x5927,
  3455. 0x91E6: 0x7B2C,
  3456. 0x91E7: 0x918D,
  3457. 0x91E8: 0x984C,
  3458. 0x91E9: 0x9DF9,
  3459. 0x91EA: 0x6EDD,
  3460. 0x91EB: 0x7027,
  3461. 0x91EC: 0x5353,
  3462. 0x91ED: 0x5544,
  3463. 0x91EE: 0x5B85,
  3464. 0x91EF: 0x6258,
  3465. 0x91F0: 0x629E,
  3466. 0x91F1: 0x62D3,
  3467. 0x91F2: 0x6CA2,
  3468. 0x91F3: 0x6FEF,
  3469. 0x91F4: 0x7422,
  3470. 0x91F5: 0x8A17,
  3471. 0x91F6: 0x9438,
  3472. 0x91F7: 0x6FC1,
  3473. 0x91F8: 0x8AFE,
  3474. 0x91F9: 0x8338,
  3475. 0x91FA: 0x51E7,
  3476. 0x91FB: 0x86F8,
  3477. 0x91FC: 0x53EA,
  3478. 0x9240: 0x53E9,
  3479. 0x9241: 0x4F46,
  3480. 0x9242: 0x9054,
  3481. 0x9243: 0x8FB0,
  3482. 0x9244: 0x596A,
  3483. 0x9245: 0x8131,
  3484. 0x9246: 0x5DFD,
  3485. 0x9247: 0x7AEA,
  3486. 0x9248: 0x8FBF,
  3487. 0x9249: 0x68DA,
  3488. 0x924A: 0x8C37,
  3489. 0x924B: 0x72F8,
  3490. 0x924C: 0x9C48,
  3491. 0x924D: 0x6A3D,
  3492. 0x924E: 0x8AB0,
  3493. 0x924F: 0x4E39,
  3494. 0x9250: 0x5358,
  3495. 0x9251: 0x5606,
  3496. 0x9252: 0x5766,
  3497. 0x9253: 0x62C5,
  3498. 0x9254: 0x63A2,
  3499. 0x9255: 0x65E6,
  3500. 0x9256: 0x6B4E,
  3501. 0x9257: 0x6DE1,
  3502. 0x9258: 0x6E5B,
  3503. 0x9259: 0x70AD,
  3504. 0x925A: 0x77ED,
  3505. 0x925B: 0x7AEF,
  3506. 0x925C: 0x7BAA,
  3507. 0x925D: 0x7DBB,
  3508. 0x925E: 0x803D,
  3509. 0x925F: 0x80C6,
  3510. 0x9260: 0x86CB,
  3511. 0x9261: 0x8A95,
  3512. 0x9262: 0x935B,
  3513. 0x9263: 0x56E3,
  3514. 0x9264: 0x58C7,
  3515. 0x9265: 0x5F3E,
  3516. 0x9266: 0x65AD,
  3517. 0x9267: 0x6696,
  3518. 0x9268: 0x6A80,
  3519. 0x9269: 0x6BB5,
  3520. 0x926A: 0x7537,
  3521. 0x926B: 0x8AC7,
  3522. 0x926C: 0x5024,
  3523. 0x926D: 0x77E5,
  3524. 0x926E: 0x5730,
  3525. 0x926F: 0x5F1B,
  3526. 0x9270: 0x6065,
  3527. 0x9271: 0x667A,
  3528. 0x9272: 0x6C60,
  3529. 0x9273: 0x75F4,
  3530. 0x9274: 0x7A1A,
  3531. 0x9275: 0x7F6E,
  3532. 0x9276: 0x81F4,
  3533. 0x9277: 0x8718,
  3534. 0x9278: 0x9045,
  3535. 0x9279: 0x99B3,
  3536. 0x927A: 0x7BC9,
  3537. 0x927B: 0x755C,
  3538. 0x927C: 0x7AF9,
  3539. 0x927D: 0x7B51,
  3540. 0x927E: 0x84C4,
  3541. 0x9280: 0x9010,
  3542. 0x9281: 0x79E9,
  3543. 0x9282: 0x7A92,
  3544. 0x9283: 0x8336,
  3545. 0x9284: 0x5AE1,
  3546. 0x9285: 0x7740,
  3547. 0x9286: 0x4E2D,
  3548. 0x9287: 0x4EF2,
  3549. 0x9288: 0x5B99,
  3550. 0x9289: 0x5FE0,
  3551. 0x928A: 0x62BD,
  3552. 0x928B: 0x663C,
  3553. 0x928C: 0x67F1,
  3554. 0x928D: 0x6CE8,
  3555. 0x928E: 0x866B,
  3556. 0x928F: 0x8877,
  3557. 0x9290: 0x8A3B,
  3558. 0x9291: 0x914E,
  3559. 0x9292: 0x92F3,
  3560. 0x9293: 0x99D0,
  3561. 0x9294: 0x6A17,
  3562. 0x9295: 0x7026,
  3563. 0x9296: 0x732A,
  3564. 0x9297: 0x82E7,
  3565. 0x9298: 0x8457,
  3566. 0x9299: 0x8CAF,
  3567. 0x929A: 0x4E01,
  3568. 0x929B: 0x5146,
  3569. 0x929C: 0x51CB,
  3570. 0x929D: 0x558B,
  3571. 0x929E: 0x5BF5,
  3572. 0x929F: 0x5E16,
  3573. 0x92A0: 0x5E33,
  3574. 0x92A1: 0x5E81,
  3575. 0x92A2: 0x5F14,
  3576. 0x92A3: 0x5F35,
  3577. 0x92A4: 0x5F6B,
  3578. 0x92A5: 0x5FB4,
  3579. 0x92A6: 0x61F2,
  3580. 0x92A7: 0x6311,
  3581. 0x92A8: 0x66A2,
  3582. 0x92A9: 0x671D,
  3583. 0x92AA: 0x6F6E,
  3584. 0x92AB: 0x7252,
  3585. 0x92AC: 0x753A,
  3586. 0x92AD: 0x773A,
  3587. 0x92AE: 0x8074,
  3588. 0x92AF: 0x8139,
  3589. 0x92B0: 0x8178,
  3590. 0x92B1: 0x8776,
  3591. 0x92B2: 0x8ABF,
  3592. 0x92B3: 0x8ADC,
  3593. 0x92B4: 0x8D85,
  3594. 0x92B5: 0x8DF3,
  3595. 0x92B6: 0x929A,
  3596. 0x92B7: 0x9577,
  3597. 0x92B8: 0x9802,
  3598. 0x92B9: 0x9CE5,
  3599. 0x92BA: 0x52C5,
  3600. 0x92BB: 0x6357,
  3601. 0x92BC: 0x76F4,
  3602. 0x92BD: 0x6715,
  3603. 0x92BE: 0x6C88,
  3604. 0x92BF: 0x73CD,
  3605. 0x92C0: 0x8CC3,
  3606. 0x92C1: 0x93AE,
  3607. 0x92C2: 0x9673,
  3608. 0x92C3: 0x6D25,
  3609. 0x92C4: 0x589C,
  3610. 0x92C5: 0x690E,
  3611. 0x92C6: 0x69CC,
  3612. 0x92C7: 0x8FFD,
  3613. 0x92C8: 0x939A,
  3614. 0x92C9: 0x75DB,
  3615. 0x92CA: 0x901A,
  3616. 0x92CB: 0x585A,
  3617. 0x92CC: 0x6802,
  3618. 0x92CD: 0x63B4,
  3619. 0x92CE: 0x69FB,
  3620. 0x92CF: 0x4F43,
  3621. 0x92D0: 0x6F2C,
  3622. 0x92D1: 0x67D8,
  3623. 0x92D2: 0x8FBB,
  3624. 0x92D3: 0x8526,
  3625. 0x92D4: 0x7DB4,
  3626. 0x92D5: 0x9354,
  3627. 0x92D6: 0x693F,
  3628. 0x92D7: 0x6F70,
  3629. 0x92D8: 0x576A,
  3630. 0x92D9: 0x58F7,
  3631. 0x92DA: 0x5B2C,
  3632. 0x92DB: 0x7D2C,
  3633. 0x92DC: 0x722A,
  3634. 0x92DD: 0x540A,
  3635. 0x92DE: 0x91E3,
  3636. 0x92DF: 0x9DB4,
  3637. 0x92E0: 0x4EAD,
  3638. 0x92E1: 0x4F4E,
  3639. 0x92E2: 0x505C,
  3640. 0x92E3: 0x5075,
  3641. 0x92E4: 0x5243,
  3642. 0x92E5: 0x8C9E,
  3643. 0x92E6: 0x5448,
  3644. 0x92E7: 0x5824,
  3645. 0x92E8: 0x5B9A,
  3646. 0x92E9: 0x5E1D,
  3647. 0x92EA: 0x5E95,
  3648. 0x92EB: 0x5EAD,
  3649. 0x92EC: 0x5EF7,
  3650. 0x92ED: 0x5F1F,
  3651. 0x92EE: 0x608C,
  3652. 0x92EF: 0x62B5,
  3653. 0x92F0: 0x633A,
  3654. 0x92F1: 0x63D0,
  3655. 0x92F2: 0x68AF,
  3656. 0x92F3: 0x6C40,
  3657. 0x92F4: 0x7887,
  3658. 0x92F5: 0x798E,
  3659. 0x92F6: 0x7A0B,
  3660. 0x92F7: 0x7DE0,
  3661. 0x92F8: 0x8247,
  3662. 0x92F9: 0x8A02,
  3663. 0x92FA: 0x8AE6,
  3664. 0x92FB: 0x8E44,
  3665. 0x92FC: 0x9013,
  3666. 0x9340: 0x90B8,
  3667. 0x9341: 0x912D,
  3668. 0x9342: 0x91D8,
  3669. 0x9343: 0x9F0E,
  3670. 0x9344: 0x6CE5,
  3671. 0x9345: 0x6458,
  3672. 0x9346: 0x64E2,
  3673. 0x9347: 0x6575,
  3674. 0x9348: 0x6EF4,
  3675. 0x9349: 0x7684,
  3676. 0x934A: 0x7B1B,
  3677. 0x934B: 0x9069,
  3678. 0x934C: 0x93D1,
  3679. 0x934D: 0x6EBA,
  3680. 0x934E: 0x54F2,
  3681. 0x934F: 0x5FB9,
  3682. 0x9350: 0x64A4,
  3683. 0x9351: 0x8F4D,
  3684. 0x9352: 0x8FED,
  3685. 0x9353: 0x9244,
  3686. 0x9354: 0x5178,
  3687. 0x9355: 0x586B,
  3688. 0x9356: 0x5929,
  3689. 0x9357: 0x5C55,
  3690. 0x9358: 0x5E97,
  3691. 0x9359: 0x6DFB,
  3692. 0x935A: 0x7E8F,
  3693. 0x935B: 0x751C,
  3694. 0x935C: 0x8CBC,
  3695. 0x935D: 0x8EE2,
  3696. 0x935E: 0x985B,
  3697. 0x935F: 0x70B9,
  3698. 0x9360: 0x4F1D,
  3699. 0x9361: 0x6BBF,
  3700. 0x9362: 0x6FB1,
  3701. 0x9363: 0x7530,
  3702. 0x9364: 0x96FB,
  3703. 0x9365: 0x514E,
  3704. 0x9366: 0x5410,
  3705. 0x9367: 0x5835,
  3706. 0x9368: 0x5857,
  3707. 0x9369: 0x59AC,
  3708. 0x936A: 0x5C60,
  3709. 0x936B: 0x5F92,
  3710. 0x936C: 0x6597,
  3711. 0x936D: 0x675C,
  3712. 0x936E: 0x6E21,
  3713. 0x936F: 0x767B,
  3714. 0x9370: 0x83DF,
  3715. 0x9371: 0x8CED,
  3716. 0x9372: 0x9014,
  3717. 0x9373: 0x90FD,
  3718. 0x9374: 0x934D,
  3719. 0x9375: 0x7825,
  3720. 0x9376: 0x783A,
  3721. 0x9377: 0x52AA,
  3722. 0x9378: 0x5EA6,
  3723. 0x9379: 0x571F,
  3724. 0x937A: 0x5974,
  3725. 0x937B: 0x6012,
  3726. 0x937C: 0x5012,
  3727. 0x937D: 0x515A,
  3728. 0x937E: 0x51AC,
  3729. 0x9380: 0x51CD,
  3730. 0x9381: 0x5200,
  3731. 0x9382: 0x5510,
  3732. 0x9383: 0x5854,
  3733. 0x9384: 0x5858,
  3734. 0x9385: 0x5957,
  3735. 0x9386: 0x5B95,
  3736. 0x9387: 0x5CF6,
  3737. 0x9388: 0x5D8B,
  3738. 0x9389: 0x60BC,
  3739. 0x938A: 0x6295,
  3740. 0x938B: 0x642D,
  3741. 0x938C: 0x6771,
  3742. 0x938D: 0x6843,
  3743. 0x938E: 0x68BC,
  3744. 0x938F: 0x68DF,
  3745. 0x9390: 0x76D7,
  3746. 0x9391: 0x6DD8,
  3747. 0x9392: 0x6E6F,
  3748. 0x9393: 0x6D9B,
  3749. 0x9394: 0x706F,
  3750. 0x9395: 0x71C8,
  3751. 0x9396: 0x5F53,
  3752. 0x9397: 0x75D8,
  3753. 0x9398: 0x7977,
  3754. 0x9399: 0x7B49,
  3755. 0x939A: 0x7B54,
  3756. 0x939B: 0x7B52,
  3757. 0x939C: 0x7CD6,
  3758. 0x939D: 0x7D71,
  3759. 0x939E: 0x5230,
  3760. 0x939F: 0x8463,
  3761. 0x93A0: 0x8569,
  3762. 0x93A1: 0x85E4,
  3763. 0x93A2: 0x8A0E,
  3764. 0x93A3: 0x8B04,
  3765. 0x93A4: 0x8C46,
  3766. 0x93A5: 0x8E0F,
  3767. 0x93A6: 0x9003,
  3768. 0x93A7: 0x900F,
  3769. 0x93A8: 0x9419,
  3770. 0x93A9: 0x9676,
  3771. 0x93AA: 0x982D,
  3772. 0x93AB: 0x9A30,
  3773. 0x93AC: 0x95D8,
  3774. 0x93AD: 0x50CD,
  3775. 0x93AE: 0x52D5,
  3776. 0x93AF: 0x540C,
  3777. 0x93B0: 0x5802,
  3778. 0x93B1: 0x5C0E,
  3779. 0x93B2: 0x61A7,
  3780. 0x93B3: 0x649E,
  3781. 0x93B4: 0x6D1E,
  3782. 0x93B5: 0x77B3,
  3783. 0x93B6: 0x7AE5,
  3784. 0x93B7: 0x80F4,
  3785. 0x93B8: 0x8404,
  3786. 0x93B9: 0x9053,
  3787. 0x93BA: 0x9285,
  3788. 0x93BB: 0x5CE0,
  3789. 0x93BC: 0x9D07,
  3790. 0x93BD: 0x533F,
  3791. 0x93BE: 0x5F97,
  3792. 0x93BF: 0x5FB3,
  3793. 0x93C0: 0x6D9C,
  3794. 0x93C1: 0x7279,
  3795. 0x93C2: 0x7763,
  3796. 0x93C3: 0x79BF,
  3797. 0x93C4: 0x7BE4,
  3798. 0x93C5: 0x6BD2,
  3799. 0x93C6: 0x72EC,
  3800. 0x93C7: 0x8AAD,
  3801. 0x93C8: 0x6803,
  3802. 0x93C9: 0x6A61,
  3803. 0x93CA: 0x51F8,
  3804. 0x93CB: 0x7A81,
  3805. 0x93CC: 0x6934,
  3806. 0x93CD: 0x5C4A,
  3807. 0x93CE: 0x9CF6,
  3808. 0x93CF: 0x82EB,
  3809. 0x93D0: 0x5BC5,
  3810. 0x93D1: 0x9149,
  3811. 0x93D2: 0x701E,
  3812. 0x93D3: 0x5678,
  3813. 0x93D4: 0x5C6F,
  3814. 0x93D5: 0x60C7,
  3815. 0x93D6: 0x6566,
  3816. 0x93D7: 0x6C8C,
  3817. 0x93D8: 0x8C5A,
  3818. 0x93D9: 0x9041,
  3819. 0x93DA: 0x9813,
  3820. 0x93DB: 0x5451,
  3821. 0x93DC: 0x66C7,
  3822. 0x93DD: 0x920D,
  3823. 0x93DE: 0x5948,
  3824. 0x93DF: 0x90A3,
  3825. 0x93E0: 0x5185,
  3826. 0x93E1: 0x4E4D,
  3827. 0x93E2: 0x51EA,
  3828. 0x93E3: 0x8599,
  3829. 0x93E4: 0x8B0E,
  3830. 0x93E5: 0x7058,
  3831. 0x93E6: 0x637A,
  3832. 0x93E7: 0x934B,
  3833. 0x93E8: 0x6962,
  3834. 0x93E9: 0x99B4,
  3835. 0x93EA: 0x7E04,
  3836. 0x93EB: 0x7577,
  3837. 0x93EC: 0x5357,
  3838. 0x93ED: 0x6960,
  3839. 0x93EE: 0x8EDF,
  3840. 0x93EF: 0x96E3,
  3841. 0x93F0: 0x6C5D,
  3842. 0x93F1: 0x4E8C,
  3843. 0x93F2: 0x5C3C,
  3844. 0x93F3: 0x5F10,
  3845. 0x93F4: 0x8FE9,
  3846. 0x93F5: 0x5302,
  3847. 0x93F6: 0x8CD1,
  3848. 0x93F7: 0x8089,
  3849. 0x93F8: 0x8679,
  3850. 0x93F9: 0x5EFF,
  3851. 0x93FA: 0x65E5,
  3852. 0x93FB: 0x4E73,
  3853. 0x93FC: 0x5165,
  3854. 0x9440: 0x5982,
  3855. 0x9441: 0x5C3F,
  3856. 0x9442: 0x97EE,
  3857. 0x9443: 0x4EFB,
  3858. 0x9444: 0x598A,
  3859. 0x9445: 0x5FCD,
  3860. 0x9446: 0x8A8D,
  3861. 0x9447: 0x6FE1,
  3862. 0x9448: 0x79B0,
  3863. 0x9449: 0x7962,
  3864. 0x944A: 0x5BE7,
  3865. 0x944B: 0x8471,
  3866. 0x944C: 0x732B,
  3867. 0x944D: 0x71B1,
  3868. 0x944E: 0x5E74,
  3869. 0x944F: 0x5FF5,
  3870. 0x9450: 0x637B,
  3871. 0x9451: 0x649A,
  3872. 0x9452: 0x71C3,
  3873. 0x9453: 0x7C98,
  3874. 0x9454: 0x4E43,
  3875. 0x9455: 0x5EFC,
  3876. 0x9456: 0x4E4B,
  3877. 0x9457: 0x57DC,
  3878. 0x9458: 0x56A2,
  3879. 0x9459: 0x60A9,
  3880. 0x945A: 0x6FC3,
  3881. 0x945B: 0x7D0D,
  3882. 0x945C: 0x80FD,
  3883. 0x945D: 0x8133,
  3884. 0x945E: 0x81BF,
  3885. 0x945F: 0x8FB2,
  3886. 0x9460: 0x8997,
  3887. 0x9461: 0x86A4,
  3888. 0x9462: 0x5DF4,
  3889. 0x9463: 0x628A,
  3890. 0x9464: 0x64AD,
  3891. 0x9465: 0x8987,
  3892. 0x9466: 0x6777,
  3893. 0x9467: 0x6CE2,
  3894. 0x9468: 0x6D3E,
  3895. 0x9469: 0x7436,
  3896. 0x946A: 0x7834,
  3897. 0x946B: 0x5A46,
  3898. 0x946C: 0x7F75,
  3899. 0x946D: 0x82AD,
  3900. 0x946E: 0x99AC,
  3901. 0x946F: 0x4FF3,
  3902. 0x9470: 0x5EC3,
  3903. 0x9471: 0x62DD,
  3904. 0x9472: 0x6392,
  3905. 0x9473: 0x6557,
  3906. 0x9474: 0x676F,
  3907. 0x9475: 0x76C3,
  3908. 0x9476: 0x724C,
  3909. 0x9477: 0x80CC,
  3910. 0x9478: 0x80BA,
  3911. 0x9479: 0x8F29,
  3912. 0x947A: 0x914D,
  3913. 0x947B: 0x500D,
  3914. 0x947C: 0x57F9,
  3915. 0x947D: 0x5A92,
  3916. 0x947E: 0x6885,
  3917. 0x9480: 0x6973,
  3918. 0x9481: 0x7164,
  3919. 0x9482: 0x72FD,
  3920. 0x9483: 0x8CB7,
  3921. 0x9484: 0x58F2,
  3922. 0x9485: 0x8CE0,
  3923. 0x9486: 0x966A,
  3924. 0x9487: 0x9019,
  3925. 0x9488: 0x877F,
  3926. 0x9489: 0x79E4,
  3927. 0x948A: 0x77E7,
  3928. 0x948B: 0x8429,
  3929. 0x948C: 0x4F2F,
  3930. 0x948D: 0x5265,
  3931. 0x948E: 0x535A,
  3932. 0x948F: 0x62CD,
  3933. 0x9490: 0x67CF,
  3934. 0x9491: 0x6CCA,
  3935. 0x9492: 0x767D,
  3936. 0x9493: 0x7B94,
  3937. 0x9494: 0x7C95,
  3938. 0x9495: 0x8236,
  3939. 0x9496: 0x8584,
  3940. 0x9497: 0x8FEB,
  3941. 0x9498: 0x66DD,
  3942. 0x9499: 0x6F20,
  3943. 0x949A: 0x7206,
  3944. 0x949B: 0x7E1B,
  3945. 0x949C: 0x83AB,
  3946. 0x949D: 0x99C1,
  3947. 0x949E: 0x9EA6,
  3948. 0x949F: 0x51FD,
  3949. 0x94A0: 0x7BB1,
  3950. 0x94A1: 0x7872,
  3951. 0x94A2: 0x7BB8,
  3952. 0x94A3: 0x8087,
  3953. 0x94A4: 0x7B48,
  3954. 0x94A5: 0x6AE8,
  3955. 0x94A6: 0x5E61,
  3956. 0x94A7: 0x808C,
  3957. 0x94A8: 0x7551,
  3958. 0x94A9: 0x7560,
  3959. 0x94AA: 0x516B,
  3960. 0x94AB: 0x9262,
  3961. 0x94AC: 0x6E8C,
  3962. 0x94AD: 0x767A,
  3963. 0x94AE: 0x9197,
  3964. 0x94AF: 0x9AEA,
  3965. 0x94B0: 0x4F10,
  3966. 0x94B1: 0x7F70,
  3967. 0x94B2: 0x629C,
  3968. 0x94B3: 0x7B4F,
  3969. 0x94B4: 0x95A5,
  3970. 0x94B5: 0x9CE9,
  3971. 0x94B6: 0x567A,
  3972. 0x94B7: 0x5859,
  3973. 0x94B8: 0x86E4,
  3974. 0x94B9: 0x96BC,
  3975. 0x94BA: 0x4F34,
  3976. 0x94BB: 0x5224,
  3977. 0x94BC: 0x534A,
  3978. 0x94BD: 0x53CD,
  3979. 0x94BE: 0x53DB,
  3980. 0x94BF: 0x5E06,
  3981. 0x94C0: 0x642C,
  3982. 0x94C1: 0x6591,
  3983. 0x94C2: 0x677F,
  3984. 0x94C3: 0x6C3E,
  3985. 0x94C4: 0x6C4E,
  3986. 0x94C5: 0x7248,
  3987. 0x94C6: 0x72AF,
  3988. 0x94C7: 0x73ED,
  3989. 0x94C8: 0x7554,
  3990. 0x94C9: 0x7E41,
  3991. 0x94CA: 0x822C,
  3992. 0x94CB: 0x85E9,
  3993. 0x94CC: 0x8CA9,
  3994. 0x94CD: 0x7BC4,
  3995. 0x94CE: 0x91C6,
  3996. 0x94CF: 0x7169,
  3997. 0x94D0: 0x9812,
  3998. 0x94D1: 0x98EF,
  3999. 0x94D2: 0x633D,
  4000. 0x94D3: 0x6669,
  4001. 0x94D4: 0x756A,
  4002. 0x94D5: 0x76E4,
  4003. 0x94D6: 0x78D0,
  4004. 0x94D7: 0x8543,
  4005. 0x94D8: 0x86EE,
  4006. 0x94D9: 0x532A,
  4007. 0x94DA: 0x5351,
  4008. 0x94DB: 0x5426,
  4009. 0x94DC: 0x5983,
  4010. 0x94DD: 0x5E87,
  4011. 0x94DE: 0x5F7C,
  4012. 0x94DF: 0x60B2,
  4013. 0x94E0: 0x6249,
  4014. 0x94E1: 0x6279,
  4015. 0x94E2: 0x62AB,
  4016. 0x94E3: 0x6590,
  4017. 0x94E4: 0x6BD4,
  4018. 0x94E5: 0x6CCC,
  4019. 0x94E6: 0x75B2,
  4020. 0x94E7: 0x76AE,
  4021. 0x94E8: 0x7891,
  4022. 0x94E9: 0x79D8,
  4023. 0x94EA: 0x7DCB,
  4024. 0x94EB: 0x7F77,
  4025. 0x94EC: 0x80A5,
  4026. 0x94ED: 0x88AB,
  4027. 0x94EE: 0x8AB9,
  4028. 0x94EF: 0x8CBB,
  4029. 0x94F0: 0x907F,
  4030. 0x94F1: 0x975E,
  4031. 0x94F2: 0x98DB,
  4032. 0x94F3: 0x6A0B,
  4033. 0x94F4: 0x7C38,
  4034. 0x94F5: 0x5099,
  4035. 0x94F6: 0x5C3E,
  4036. 0x94F7: 0x5FAE,
  4037. 0x94F8: 0x6787,
  4038. 0x94F9: 0x6BD8,
  4039. 0x94FA: 0x7435,
  4040. 0x94FB: 0x7709,
  4041. 0x94FC: 0x7F8E,
  4042. 0x9540: 0x9F3B,
  4043. 0x9541: 0x67CA,
  4044. 0x9542: 0x7A17,
  4045. 0x9543: 0x5339,
  4046. 0x9544: 0x758B,
  4047. 0x9545: 0x9AED,
  4048. 0x9546: 0x5F66,
  4049. 0x9547: 0x819D,
  4050. 0x9548: 0x83F1,
  4051. 0x9549: 0x8098,
  4052. 0x954A: 0x5F3C,
  4053. 0x954B: 0x5FC5,
  4054. 0x954C: 0x7562,
  4055. 0x954D: 0x7B46,
  4056. 0x954E: 0x903C,
  4057. 0x954F: 0x6867,
  4058. 0x9550: 0x59EB,
  4059. 0x9551: 0x5A9B,
  4060. 0x9552: 0x7D10,
  4061. 0x9553: 0x767E,
  4062. 0x9554: 0x8B2C,
  4063. 0x9555: 0x4FF5,
  4064. 0x9556: 0x5F6A,
  4065. 0x9557: 0x6A19,
  4066. 0x9558: 0x6C37,
  4067. 0x9559: 0x6F02,
  4068. 0x955A: 0x74E2,
  4069. 0x955B: 0x7968,
  4070. 0x955C: 0x8868,
  4071. 0x955D: 0x8A55,
  4072. 0x955E: 0x8C79,
  4073. 0x955F: 0x5EDF,
  4074. 0x9560: 0x63CF,
  4075. 0x9561: 0x75C5,
  4076. 0x9562: 0x79D2,
  4077. 0x9563: 0x82D7,
  4078. 0x9564: 0x9328,
  4079. 0x9565: 0x92F2,
  4080. 0x9566: 0x849C,
  4081. 0x9567: 0x86ED,
  4082. 0x9568: 0x9C2D,
  4083. 0x9569: 0x54C1,
  4084. 0x956A: 0x5F6C,
  4085. 0x956B: 0x658C,
  4086. 0x956C: 0x6D5C,
  4087. 0x956D: 0x7015,
  4088. 0x956E: 0x8CA7,
  4089. 0x956F: 0x8CD3,
  4090. 0x9570: 0x983B,
  4091. 0x9571: 0x654F,
  4092. 0x9572: 0x74F6,
  4093. 0x9573: 0x4E0D,
  4094. 0x9574: 0x4ED8,
  4095. 0x9575: 0x57E0,
  4096. 0x9576: 0x592B,
  4097. 0x9577: 0x5A66,
  4098. 0x9578: 0x5BCC,
  4099. 0x9579: 0x51A8,
  4100. 0x957A: 0x5E03,
  4101. 0x957B: 0x5E9C,
  4102. 0x957C: 0x6016,
  4103. 0x957D: 0x6276,
  4104. 0x957E: 0x6577,
  4105. 0x9580: 0x65A7,
  4106. 0x9581: 0x666E,
  4107. 0x9582: 0x6D6E,
  4108. 0x9583: 0x7236,
  4109. 0x9584: 0x7B26,
  4110. 0x9585: 0x8150,
  4111. 0x9586: 0x819A,
  4112. 0x9587: 0x8299,
  4113. 0x9588: 0x8B5C,
  4114. 0x9589: 0x8CA0,
  4115. 0x958A: 0x8CE6,
  4116. 0x958B: 0x8D74,
  4117. 0x958C: 0x961C,
  4118. 0x958D: 0x9644,
  4119. 0x958E: 0x4FAE,
  4120. 0x958F: 0x64AB,
  4121. 0x9590: 0x6B66,
  4122. 0x9591: 0x821E,
  4123. 0x9592: 0x8461,
  4124. 0x9593: 0x856A,
  4125. 0x9594: 0x90E8,
  4126. 0x9595: 0x5C01,
  4127. 0x9596: 0x6953,
  4128. 0x9597: 0x98A8,
  4129. 0x9598: 0x847A,
  4130. 0x9599: 0x8557,
  4131. 0x959A: 0x4F0F,
  4132. 0x959B: 0x526F,
  4133. 0x959C: 0x5FA9,
  4134. 0x959D: 0x5E45,
  4135. 0x959E: 0x670D,
  4136. 0x959F: 0x798F,
  4137. 0x95A0: 0x8179,
  4138. 0x95A1: 0x8907,
  4139. 0x95A2: 0x8986,
  4140. 0x95A3: 0x6DF5,
  4141. 0x95A4: 0x5F17,
  4142. 0x95A5: 0x6255,
  4143. 0x95A6: 0x6CB8,
  4144. 0x95A7: 0x4ECF,
  4145. 0x95A8: 0x7269,
  4146. 0x95A9: 0x9B92,
  4147. 0x95AA: 0x5206,
  4148. 0x95AB: 0x543B,
  4149. 0x95AC: 0x5674,
  4150. 0x95AD: 0x58B3,
  4151. 0x95AE: 0x61A4,
  4152. 0x95AF: 0x626E,
  4153. 0x95B0: 0x711A,
  4154. 0x95B1: 0x596E,
  4155. 0x95B2: 0x7C89,
  4156. 0x95B3: 0x7CDE,
  4157. 0x95B4: 0x7D1B,
  4158. 0x95B5: 0x96F0,
  4159. 0x95B6: 0x6587,
  4160. 0x95B7: 0x805E,
  4161. 0x95B8: 0x4E19,
  4162. 0x95B9: 0x4F75,
  4163. 0x95BA: 0x5175,
  4164. 0x95BB: 0x5840,
  4165. 0x95BC: 0x5E63,
  4166. 0x95BD: 0x5E73,
  4167. 0x95BE: 0x5F0A,
  4168. 0x95BF: 0x67C4,
  4169. 0x95C0: 0x4E26,
  4170. 0x95C1: 0x853D,
  4171. 0x95C2: 0x9589,
  4172. 0x95C3: 0x965B,
  4173. 0x95C4: 0x7C73,
  4174. 0x95C5: 0x9801,
  4175. 0x95C6: 0x50FB,
  4176. 0x95C7: 0x58C1,
  4177. 0x95C8: 0x7656,
  4178. 0x95C9: 0x78A7,
  4179. 0x95CA: 0x5225,
  4180. 0x95CB: 0x77A5,
  4181. 0x95CC: 0x8511,
  4182. 0x95CD: 0x7B86,
  4183. 0x95CE: 0x504F,
  4184. 0x95CF: 0x5909,
  4185. 0x95D0: 0x7247,
  4186. 0x95D1: 0x7BC7,
  4187. 0x95D2: 0x7DE8,
  4188. 0x95D3: 0x8FBA,
  4189. 0x95D4: 0x8FD4,
  4190. 0x95D5: 0x904D,
  4191. 0x95D6: 0x4FBF,
  4192. 0x95D7: 0x52C9,
  4193. 0x95D8: 0x5A29,
  4194. 0x95D9: 0x5F01,
  4195. 0x95DA: 0x97AD,
  4196. 0x95DB: 0x4FDD,
  4197. 0x95DC: 0x8217,
  4198. 0x95DD: 0x92EA,
  4199. 0x95DE: 0x5703,
  4200. 0x95DF: 0x6355,
  4201. 0x95E0: 0x6B69,
  4202. 0x95E1: 0x752B,
  4203. 0x95E2: 0x88DC,
  4204. 0x95E3: 0x8F14,
  4205. 0x95E4: 0x7A42,
  4206. 0x95E5: 0x52DF,
  4207. 0x95E6: 0x5893,
  4208. 0x95E7: 0x6155,
  4209. 0x95E8: 0x620A,
  4210. 0x95E9: 0x66AE,
  4211. 0x95EA: 0x6BCD,
  4212. 0x95EB: 0x7C3F,
  4213. 0x95EC: 0x83E9,
  4214. 0x95ED: 0x5023,
  4215. 0x95EE: 0x4FF8,
  4216. 0x95EF: 0x5305,
  4217. 0x95F0: 0x5446,
  4218. 0x95F1: 0x5831,
  4219. 0x95F2: 0x5949,
  4220. 0x95F3: 0x5B9D,
  4221. 0x95F4: 0x5CF0,
  4222. 0x95F5: 0x5CEF,
  4223. 0x95F6: 0x5D29,
  4224. 0x95F7: 0x5E96,
  4225. 0x95F8: 0x62B1,
  4226. 0x95F9: 0x6367,
  4227. 0x95FA: 0x653E,
  4228. 0x95FB: 0x65B9,
  4229. 0x95FC: 0x670B,
  4230. 0x9640: 0x6CD5,
  4231. 0x9641: 0x6CE1,
  4232. 0x9642: 0x70F9,
  4233. 0x9643: 0x7832,
  4234. 0x9644: 0x7E2B,
  4235. 0x9645: 0x80DE,
  4236. 0x9646: 0x82B3,
  4237. 0x9647: 0x840C,
  4238. 0x9648: 0x84EC,
  4239. 0x9649: 0x8702,
  4240. 0x964A: 0x8912,
  4241. 0x964B: 0x8A2A,
  4242. 0x964C: 0x8C4A,
  4243. 0x964D: 0x90A6,
  4244. 0x964E: 0x92D2,
  4245. 0x964F: 0x98FD,
  4246. 0x9650: 0x9CF3,
  4247. 0x9651: 0x9D6C,
  4248. 0x9652: 0x4E4F,
  4249. 0x9653: 0x4EA1,
  4250. 0x9654: 0x508D,
  4251. 0x9655: 0x5256,
  4252. 0x9656: 0x574A,
  4253. 0x9657: 0x59A8,
  4254. 0x9658: 0x5E3D,
  4255. 0x9659: 0x5FD8,
  4256. 0x965A: 0x5FD9,
  4257. 0x965B: 0x623F,
  4258. 0x965C: 0x66B4,
  4259. 0x965D: 0x671B,
  4260. 0x965E: 0x67D0,
  4261. 0x965F: 0x68D2,
  4262. 0x9660: 0x5192,
  4263. 0x9661: 0x7D21,
  4264. 0x9662: 0x80AA,
  4265. 0x9663: 0x81A8,
  4266. 0x9664: 0x8B00,
  4267. 0x9665: 0x8C8C,
  4268. 0x9666: 0x8CBF,
  4269. 0x9667: 0x927E,
  4270. 0x9668: 0x9632,
  4271. 0x9669: 0x5420,
  4272. 0x966A: 0x982C,
  4273. 0x966B: 0x5317,
  4274. 0x966C: 0x50D5,
  4275. 0x966D: 0x535C,
  4276. 0x966E: 0x58A8,
  4277. 0x966F: 0x64B2,
  4278. 0x9670: 0x6734,
  4279. 0x9671: 0x7267,
  4280. 0x9672: 0x7766,
  4281. 0x9673: 0x7A46,
  4282. 0x9674: 0x91E6,
  4283. 0x9675: 0x52C3,
  4284. 0x9676: 0x6CA1,
  4285. 0x9677: 0x6B86,
  4286. 0x9678: 0x5800,
  4287. 0x9679: 0x5E4C,
  4288. 0x967A: 0x5954,
  4289. 0x967B: 0x672C,
  4290. 0x967C: 0x7FFB,
  4291. 0x967D: 0x51E1,
  4292. 0x967E: 0x76C6,
  4293. 0x9680: 0x6469,
  4294. 0x9681: 0x78E8,
  4295. 0x9682: 0x9B54,
  4296. 0x9683: 0x9EBB,
  4297. 0x9684: 0x57CB,
  4298. 0x9685: 0x59B9,
  4299. 0x9686: 0x6627,
  4300. 0x9687: 0x679A,
  4301. 0x9688: 0x6BCE,
  4302. 0x9689: 0x54E9,
  4303. 0x968A: 0x69D9,
  4304. 0x968B: 0x5E55,
  4305. 0x968C: 0x819C,
  4306. 0x968D: 0x6795,
  4307. 0x968E: 0x9BAA,
  4308. 0x968F: 0x67FE,
  4309. 0x9690: 0x9C52,
  4310. 0x9691: 0x685D,
  4311. 0x9692: 0x4EA6,
  4312. 0x9693: 0x4FE3,
  4313. 0x9694: 0x53C8,
  4314. 0x9695: 0x62B9,
  4315. 0x9696: 0x672B,
  4316. 0x9697: 0x6CAB,
  4317. 0x9698: 0x8FC4,
  4318. 0x9699: 0x4FAD,
  4319. 0x969A: 0x7E6D,
  4320. 0x969B: 0x9EBF,
  4321. 0x969C: 0x4E07,
  4322. 0x969D: 0x6162,
  4323. 0x969E: 0x6E80,
  4324. 0x969F: 0x6F2B,
  4325. 0x96A0: 0x8513,
  4326. 0x96A1: 0x5473,
  4327. 0x96A2: 0x672A,
  4328. 0x96A3: 0x9B45,
  4329. 0x96A4: 0x5DF3,
  4330. 0x96A5: 0x7B95,
  4331. 0x96A6: 0x5CAC,
  4332. 0x96A7: 0x5BC6,
  4333. 0x96A8: 0x871C,
  4334. 0x96A9: 0x6E4A,
  4335. 0x96AA: 0x84D1,
  4336. 0x96AB: 0x7A14,
  4337. 0x96AC: 0x8108,
  4338. 0x96AD: 0x5999,
  4339. 0x96AE: 0x7C8D,
  4340. 0x96AF: 0x6C11,
  4341. 0x96B0: 0x7720,
  4342. 0x96B1: 0x52D9,
  4343. 0x96B2: 0x5922,
  4344. 0x96B3: 0x7121,
  4345. 0x96B4: 0x725F,
  4346. 0x96B5: 0x77DB,
  4347. 0x96B6: 0x9727,
  4348. 0x96B7: 0x9D61,
  4349. 0x96B8: 0x690B,
  4350. 0x96B9: 0x5A7F,
  4351. 0x96BA: 0x5A18,
  4352. 0x96BB: 0x51A5,
  4353. 0x96BC: 0x540D,
  4354. 0x96BD: 0x547D,
  4355. 0x96BE: 0x660E,
  4356. 0x96BF: 0x76DF,
  4357. 0x96C0: 0x8FF7,
  4358. 0x96C1: 0x9298,
  4359. 0x96C2: 0x9CF4,
  4360. 0x96C3: 0x59EA,
  4361. 0x96C4: 0x725D,
  4362. 0x96C5: 0x6EC5,
  4363. 0x96C6: 0x514D,
  4364. 0x96C7: 0x68C9,
  4365. 0x96C8: 0x7DBF,
  4366. 0x96C9: 0x7DEC,
  4367. 0x96CA: 0x9762,
  4368. 0x96CB: 0x9EBA,
  4369. 0x96CC: 0x6478,
  4370. 0x96CD: 0x6A21,
  4371. 0x96CE: 0x8302,
  4372. 0x96CF: 0x5984,
  4373. 0x96D0: 0x5B5F,
  4374. 0x96D1: 0x6BDB,
  4375. 0x96D2: 0x731B,
  4376. 0x96D3: 0x76F2,
  4377. 0x96D4: 0x7DB2,
  4378. 0x96D5: 0x8017,
  4379. 0x96D6: 0x8499,
  4380. 0x96D7: 0x5132,
  4381. 0x96D8: 0x6728,
  4382. 0x96D9: 0x9ED9,
  4383. 0x96DA: 0x76EE,
  4384. 0x96DB: 0x6762,
  4385. 0x96DC: 0x52FF,
  4386. 0x96DD: 0x9905,
  4387. 0x96DE: 0x5C24,
  4388. 0x96DF: 0x623B,
  4389. 0x96E0: 0x7C7E,
  4390. 0x96E1: 0x8CB0,
  4391. 0x96E2: 0x554F,
  4392. 0x96E3: 0x60B6,
  4393. 0x96E4: 0x7D0B,
  4394. 0x96E5: 0x9580,
  4395. 0x96E6: 0x5301,
  4396. 0x96E7: 0x4E5F,
  4397. 0x96E8: 0x51B6,
  4398. 0x96E9: 0x591C,
  4399. 0x96EA: 0x723A,
  4400. 0x96EB: 0x8036,
  4401. 0x96EC: 0x91CE,
  4402. 0x96ED: 0x5F25,
  4403. 0x96EE: 0x77E2,
  4404. 0x96EF: 0x5384,
  4405. 0x96F0: 0x5F79,
  4406. 0x96F1: 0x7D04,
  4407. 0x96F2: 0x85AC,
  4408. 0x96F3: 0x8A33,
  4409. 0x96F4: 0x8E8D,
  4410. 0x96F5: 0x9756,
  4411. 0x96F6: 0x67F3,
  4412. 0x96F7: 0x85AE,
  4413. 0x96F8: 0x9453,
  4414. 0x96F9: 0x6109,
  4415. 0x96FA: 0x6108,
  4416. 0x96FB: 0x6CB9,
  4417. 0x96FC: 0x7652,
  4418. 0x9740: 0x8AED,
  4419. 0x9741: 0x8F38,
  4420. 0x9742: 0x552F,
  4421. 0x9743: 0x4F51,
  4422. 0x9744: 0x512A,
  4423. 0x9745: 0x52C7,
  4424. 0x9746: 0x53CB,
  4425. 0x9747: 0x5BA5,
  4426. 0x9748: 0x5E7D,
  4427. 0x9749: 0x60A0,
  4428. 0x974A: 0x6182,
  4429. 0x974B: 0x63D6,
  4430. 0x974C: 0x6709,
  4431. 0x974D: 0x67DA,
  4432. 0x974E: 0x6E67,
  4433. 0x974F: 0x6D8C,
  4434. 0x9750: 0x7336,
  4435. 0x9751: 0x7337,
  4436. 0x9752: 0x7531,
  4437. 0x9753: 0x7950,
  4438. 0x9754: 0x88D5,
  4439. 0x9755: 0x8A98,
  4440. 0x9756: 0x904A,
  4441. 0x9757: 0x9091,
  4442. 0x9758: 0x90F5,
  4443. 0x9759: 0x96C4,
  4444. 0x975A: 0x878D,
  4445. 0x975B: 0x5915,
  4446. 0x975C: 0x4E88,
  4447. 0x975D: 0x4F59,
  4448. 0x975E: 0x4E0E,
  4449. 0x975F: 0x8A89,
  4450. 0x9760: 0x8F3F,
  4451. 0x9761: 0x9810,
  4452. 0x9762: 0x50AD,
  4453. 0x9763: 0x5E7C,
  4454. 0x9764: 0x5996,
  4455. 0x9765: 0x5BB9,
  4456. 0x9766: 0x5EB8,
  4457. 0x9767: 0x63DA,
  4458. 0x9768: 0x63FA,
  4459. 0x9769: 0x64C1,
  4460. 0x976A: 0x66DC,
  4461. 0x976B: 0x694A,
  4462. 0x976C: 0x69D8,
  4463. 0x976D: 0x6D0B,
  4464. 0x976E: 0x6EB6,
  4465. 0x976F: 0x7194,
  4466. 0x9770: 0x7528,
  4467. 0x9771: 0x7AAF,
  4468. 0x9772: 0x7F8A,
  4469. 0x9773: 0x8000,
  4470. 0x9774: 0x8449,
  4471. 0x9775: 0x84C9,
  4472. 0x9776: 0x8981,
  4473. 0x9777: 0x8B21,
  4474. 0x9778: 0x8E0A,
  4475. 0x9779: 0x9065,
  4476. 0x977A: 0x967D,
  4477. 0x977B: 0x990A,
  4478. 0x977C: 0x617E,
  4479. 0x977D: 0x6291,
  4480. 0x977E: 0x6B32,
  4481. 0x9780: 0x6C83,
  4482. 0x9781: 0x6D74,
  4483. 0x9782: 0x7FCC,
  4484. 0x9783: 0x7FFC,
  4485. 0x9784: 0x6DC0,
  4486. 0x9785: 0x7F85,
  4487. 0x9786: 0x87BA,
  4488. 0x9787: 0x88F8,
  4489. 0x9788: 0x6765,
  4490. 0x9789: 0x83B1,
  4491. 0x978A: 0x983C,
  4492. 0x978B: 0x96F7,
  4493. 0x978C: 0x6D1B,
  4494. 0x978D: 0x7D61,
  4495. 0x978E: 0x843D,
  4496. 0x978F: 0x916A,
  4497. 0x9790: 0x4E71,
  4498. 0x9791: 0x5375,
  4499. 0x9792: 0x5D50,
  4500. 0x9793: 0x6B04,
  4501. 0x9794: 0x6FEB,
  4502. 0x9795: 0x85CD,
  4503. 0x9796: 0x862D,
  4504. 0x9797: 0x89A7,
  4505. 0x9798: 0x5229,
  4506. 0x9799: 0x540F,
  4507. 0x979A: 0x5C65,
  4508. 0x979B: 0x674E,
  4509. 0x979C: 0x68A8,
  4510. 0x979D: 0x7406,
  4511. 0x979E: 0x7483,
  4512. 0x979F: 0x75E2,
  4513. 0x97A0: 0x88CF,
  4514. 0x97A1: 0x88E1,
  4515. 0x97A2: 0x91CC,
  4516. 0x97A3: 0x96E2,
  4517. 0x97A4: 0x9678,
  4518. 0x97A5: 0x5F8B,
  4519. 0x97A6: 0x7387,
  4520. 0x97A7: 0x7ACB,
  4521. 0x97A8: 0x844E,
  4522. 0x97A9: 0x63A0,
  4523. 0x97AA: 0x7565,
  4524. 0x97AB: 0x5289,
  4525. 0x97AC: 0x6D41,
  4526. 0x97AD: 0x6E9C,
  4527. 0x97AE: 0x7409,
  4528. 0x97AF: 0x7559,
  4529. 0x97B0: 0x786B,
  4530. 0x97B1: 0x7C92,
  4531. 0x97B2: 0x9686,
  4532. 0x97B3: 0x7ADC,
  4533. 0x97B4: 0x9F8D,
  4534. 0x97B5: 0x4FB6,
  4535. 0x97B6: 0x616E,
  4536. 0x97B7: 0x65C5,
  4537. 0x97B8: 0x865C,
  4538. 0x97B9: 0x4E86,
  4539. 0x97BA: 0x4EAE,
  4540. 0x97BB: 0x50DA,
  4541. 0x97BC: 0x4E21,
  4542. 0x97BD: 0x51CC,
  4543. 0x97BE: 0x5BEE,
  4544. 0x97BF: 0x6599,
  4545. 0x97C0: 0x6881,
  4546. 0x97C1: 0x6DBC,
  4547. 0x97C2: 0x731F,
  4548. 0x97C3: 0x7642,
  4549. 0x97C4: 0x77AD,
  4550. 0x97C5: 0x7A1C,
  4551. 0x97C6: 0x7CE7,
  4552. 0x97C7: 0x826F,
  4553. 0x97C8: 0x8AD2,
  4554. 0x97C9: 0x907C,
  4555. 0x97CA: 0x91CF,
  4556. 0x97CB: 0x9675,
  4557. 0x97CC: 0x9818,
  4558. 0x97CD: 0x529B,
  4559. 0x97CE: 0x7DD1,
  4560. 0x97CF: 0x502B,
  4561. 0x97D0: 0x5398,
  4562. 0x97D1: 0x6797,
  4563. 0x97D2: 0x6DCB,
  4564. 0x97D3: 0x71D0,
  4565. 0x97D4: 0x7433,
  4566. 0x97D5: 0x81E8,
  4567. 0x97D6: 0x8F2A,
  4568. 0x97D7: 0x96A3,
  4569. 0x97D8: 0x9C57,
  4570. 0x97D9: 0x9E9F,
  4571. 0x97DA: 0x7460,
  4572. 0x97DB: 0x5841,
  4573. 0x97DC: 0x6D99,
  4574. 0x97DD: 0x7D2F,
  4575. 0x97DE: 0x985E,
  4576. 0x97DF: 0x4EE4,
  4577. 0x97E0: 0x4F36,
  4578. 0x97E1: 0x4F8B,
  4579. 0x97E2: 0x51B7,
  4580. 0x97E3: 0x52B1,
  4581. 0x97E4: 0x5DBA,
  4582. 0x97E5: 0x601C,
  4583. 0x97E6: 0x73B2,
  4584. 0x97E7: 0x793C,
  4585. 0x97E8: 0x82D3,
  4586. 0x97E9: 0x9234,
  4587. 0x97EA: 0x96B7,
  4588. 0x97EB: 0x96F6,
  4589. 0x97EC: 0x970A,
  4590. 0x97ED: 0x9E97,
  4591. 0x97EE: 0x9F62,
  4592. 0x97EF: 0x66A6,
  4593. 0x97F0: 0x6B74,
  4594. 0x97F1: 0x5217,
  4595. 0x97F2: 0x52A3,
  4596. 0x97F3: 0x70C8,
  4597. 0x97F4: 0x88C2,
  4598. 0x97F5: 0x5EC9,
  4599. 0x97F6: 0x604B,
  4600. 0x97F7: 0x6190,
  4601. 0x97F8: 0x6F23,
  4602. 0x97F9: 0x7149,
  4603. 0x97FA: 0x7C3E,
  4604. 0x97FB: 0x7DF4,
  4605. 0x97FC: 0x806F,
  4606. 0x9840: 0x84EE,
  4607. 0x9841: 0x9023,
  4608. 0x9842: 0x932C,
  4609. 0x9843: 0x5442,
  4610. 0x9844: 0x9B6F,
  4611. 0x9845: 0x6AD3,
  4612. 0x9846: 0x7089,
  4613. 0x9847: 0x8CC2,
  4614. 0x9848: 0x8DEF,
  4615. 0x9849: 0x9732,
  4616. 0x984A: 0x52B4,
  4617. 0x984B: 0x5A41,
  4618. 0x984C: 0x5ECA,
  4619. 0x984D: 0x5F04,
  4620. 0x984E: 0x6717,
  4621. 0x984F: 0x697C,
  4622. 0x9850: 0x6994,
  4623. 0x9851: 0x6D6A,
  4624. 0x9852: 0x6F0F,
  4625. 0x9853: 0x7262,
  4626. 0x9854: 0x72FC,
  4627. 0x9855: 0x7BED,
  4628. 0x9856: 0x8001,
  4629. 0x9857: 0x807E,
  4630. 0x9858: 0x874B,
  4631. 0x9859: 0x90CE,
  4632. 0x985A: 0x516D,
  4633. 0x985B: 0x9E93,
  4634. 0x985C: 0x7984,
  4635. 0x985D: 0x808B,
  4636. 0x985E: 0x9332,
  4637. 0x985F: 0x8AD6,
  4638. 0x9860: 0x502D,
  4639. 0x9861: 0x548C,
  4640. 0x9862: 0x8A71,
  4641. 0x9863: 0x6B6A,
  4642. 0x9864: 0x8CC4,
  4643. 0x9865: 0x8107,
  4644. 0x9866: 0x60D1,
  4645. 0x9867: 0x67A0,
  4646. 0x9868: 0x9DF2,
  4647. 0x9869: 0x4E99,
  4648. 0x986A: 0x4E98,
  4649. 0x986B: 0x9C10,
  4650. 0x986C: 0x8A6B,
  4651. 0x986D: 0x85C1,
  4652. 0x986E: 0x8568,
  4653. 0x986F: 0x6900,
  4654. 0x9870: 0x6E7E,
  4655. 0x9871: 0x7897,
  4656. 0x9872: 0x8155,
  4657. 0x989F: 0x5F0C,
  4658. 0x98A0: 0x4E10,
  4659. 0x98A1: 0x4E15,
  4660. 0x98A2: 0x4E2A,
  4661. 0x98A3: 0x4E31,
  4662. 0x98A4: 0x4E36,
  4663. 0x98A5: 0x4E3C,
  4664. 0x98A6: 0x4E3F,
  4665. 0x98A7: 0x4E42,
  4666. 0x98A8: 0x4E56,
  4667. 0x98A9: 0x4E58,
  4668. 0x98AA: 0x4E82,
  4669. 0x98AB: 0x4E85,
  4670. 0x98AC: 0x8C6B,
  4671. 0x98AD: 0x4E8A,
  4672. 0x98AE: 0x8212,
  4673. 0x98AF: 0x5F0D,
  4674. 0x98B0: 0x4E8E,
  4675. 0x98B1: 0x4E9E,
  4676. 0x98B2: 0x4E9F,
  4677. 0x98B3: 0x4EA0,
  4678. 0x98B4: 0x4EA2,
  4679. 0x98B5: 0x4EB0,
  4680. 0x98B6: 0x4EB3,
  4681. 0x98B7: 0x4EB6,
  4682. 0x98B8: 0x4ECE,
  4683. 0x98B9: 0x4ECD,
  4684. 0x98BA: 0x4EC4,
  4685. 0x98BB: 0x4EC6,
  4686. 0x98BC: 0x4EC2,
  4687. 0x98BD: 0x4ED7,
  4688. 0x98BE: 0x4EDE,
  4689. 0x98BF: 0x4EED,
  4690. 0x98C0: 0x4EDF,
  4691. 0x98C1: 0x4EF7,
  4692. 0x98C2: 0x4F09,
  4693. 0x98C3: 0x4F5A,
  4694. 0x98C4: 0x4F30,
  4695. 0x98C5: 0x4F5B,
  4696. 0x98C6: 0x4F5D,
  4697. 0x98C7: 0x4F57,
  4698. 0x98C8: 0x4F47,
  4699. 0x98C9: 0x4F76,
  4700. 0x98CA: 0x4F88,
  4701. 0x98CB: 0x4F8F,
  4702. 0x98CC: 0x4F98,
  4703. 0x98CD: 0x4F7B,
  4704. 0x98CE: 0x4F69,
  4705. 0x98CF: 0x4F70,
  4706. 0x98D0: 0x4F91,
  4707. 0x98D1: 0x4F6F,
  4708. 0x98D2: 0x4F86,
  4709. 0x98D3: 0x4F96,
  4710. 0x98D4: 0x5118,
  4711. 0x98D5: 0x4FD4,
  4712. 0x98D6: 0x4FDF,
  4713. 0x98D7: 0x4FCE,
  4714. 0x98D8: 0x4FD8,
  4715. 0x98D9: 0x4FDB,
  4716. 0x98DA: 0x4FD1,
  4717. 0x98DB: 0x4FDA,
  4718. 0x98DC: 0x4FD0,
  4719. 0x98DD: 0x4FE4,
  4720. 0x98DE: 0x4FE5,
  4721. 0x98DF: 0x501A,
  4722. 0x98E0: 0x5028,
  4723. 0x98E1: 0x5014,
  4724. 0x98E2: 0x502A,
  4725. 0x98E3: 0x5025,
  4726. 0x98E4: 0x5005,
  4727. 0x98E5: 0x4F1C,
  4728. 0x98E6: 0x4FF6,
  4729. 0x98E7: 0x5021,
  4730. 0x98E8: 0x5029,
  4731. 0x98E9: 0x502C,
  4732. 0x98EA: 0x4FFE,
  4733. 0x98EB: 0x4FEF,
  4734. 0x98EC: 0x5011,
  4735. 0x98ED: 0x5006,
  4736. 0x98EE: 0x5043,
  4737. 0x98EF: 0x5047,
  4738. 0x98F0: 0x6703,
  4739. 0x98F1: 0x5055,
  4740. 0x98F2: 0x5050,
  4741. 0x98F3: 0x5048,
  4742. 0x98F4: 0x505A,
  4743. 0x98F5: 0x5056,
  4744. 0x98F6: 0x506C,
  4745. 0x98F7: 0x5078,
  4746. 0x98F8: 0x5080,
  4747. 0x98F9: 0x509A,
  4748. 0x98FA: 0x5085,
  4749. 0x98FB: 0x50B4,
  4750. 0x98FC: 0x50B2,
  4751. 0x9940: 0x50C9,
  4752. 0x9941: 0x50CA,
  4753. 0x9942: 0x50B3,
  4754. 0x9943: 0x50C2,
  4755. 0x9944: 0x50D6,
  4756. 0x9945: 0x50DE,
  4757. 0x9946: 0x50E5,
  4758. 0x9947: 0x50ED,
  4759. 0x9948: 0x50E3,
  4760. 0x9949: 0x50EE,
  4761. 0x994A: 0x50F9,
  4762. 0x994B: 0x50F5,
  4763. 0x994C: 0x5109,
  4764. 0x994D: 0x5101,
  4765. 0x994E: 0x5102,
  4766. 0x994F: 0x5116,
  4767. 0x9950: 0x5115,
  4768. 0x9951: 0x5114,
  4769. 0x9952: 0x511A,
  4770. 0x9953: 0x5121,
  4771. 0x9954: 0x513A,
  4772. 0x9955: 0x5137,
  4773. 0x9956: 0x513C,
  4774. 0x9957: 0x513B,
  4775. 0x9958: 0x513F,
  4776. 0x9959: 0x5140,
  4777. 0x995A: 0x5152,
  4778. 0x995B: 0x514C,
  4779. 0x995C: 0x5154,
  4780. 0x995D: 0x5162,
  4781. 0x995E: 0x7AF8,
  4782. 0x995F: 0x5169,
  4783. 0x9960: 0x516A,
  4784. 0x9961: 0x516E,
  4785. 0x9962: 0x5180,
  4786. 0x9963: 0x5182,
  4787. 0x9964: 0x56D8,
  4788. 0x9965: 0x518C,
  4789. 0x9966: 0x5189,
  4790. 0x9967: 0x518F,
  4791. 0x9968: 0x5191,
  4792. 0x9969: 0x5193,
  4793. 0x996A: 0x5195,
  4794. 0x996B: 0x5196,
  4795. 0x996C: 0x51A4,
  4796. 0x996D: 0x51A6,
  4797. 0x996E: 0x51A2,
  4798. 0x996F: 0x51A9,
  4799. 0x9970: 0x51AA,
  4800. 0x9971: 0x51AB,
  4801. 0x9972: 0x51B3,
  4802. 0x9973: 0x51B1,
  4803. 0x9974: 0x51B2,
  4804. 0x9975: 0x51B0,
  4805. 0x9976: 0x51B5,
  4806. 0x9977: 0x51BD,
  4807. 0x9978: 0x51C5,
  4808. 0x9979: 0x51C9,
  4809. 0x997A: 0x51DB,
  4810. 0x997B: 0x51E0,
  4811. 0x997C: 0x8655,
  4812. 0x997D: 0x51E9,
  4813. 0x997E: 0x51ED,
  4814. 0x9980: 0x51F0,
  4815. 0x9981: 0x51F5,
  4816. 0x9982: 0x51FE,
  4817. 0x9983: 0x5204,
  4818. 0x9984: 0x520B,
  4819. 0x9985: 0x5214,
  4820. 0x9986: 0x520E,
  4821. 0x9987: 0x5227,
  4822. 0x9988: 0x522A,
  4823. 0x9989: 0x522E,
  4824. 0x998A: 0x5233,
  4825. 0x998B: 0x5239,
  4826. 0x998C: 0x524F,
  4827. 0x998D: 0x5244,
  4828. 0x998E: 0x524B,
  4829. 0x998F: 0x524C,
  4830. 0x9990: 0x525E,
  4831. 0x9991: 0x5254,
  4832. 0x9992: 0x526A,
  4833. 0x9993: 0x5274,
  4834. 0x9994: 0x5269,
  4835. 0x9995: 0x5273,
  4836. 0x9996: 0x527F,
  4837. 0x9997: 0x527D,
  4838. 0x9998: 0x528D,
  4839. 0x9999: 0x5294,
  4840. 0x999A: 0x5292,
  4841. 0x999B: 0x5271,
  4842. 0x999C: 0x5288,
  4843. 0x999D: 0x5291,
  4844. 0x999E: 0x8FA8,
  4845. 0x999F: 0x8FA7,
  4846. 0x99A0: 0x52AC,
  4847. 0x99A1: 0x52AD,
  4848. 0x99A2: 0x52BC,
  4849. 0x99A3: 0x52B5,
  4850. 0x99A4: 0x52C1,
  4851. 0x99A5: 0x52CD,
  4852. 0x99A6: 0x52D7,
  4853. 0x99A7: 0x52DE,
  4854. 0x99A8: 0x52E3,
  4855. 0x99A9: 0x52E6,
  4856. 0x99AA: 0x98ED,
  4857. 0x99AB: 0x52E0,
  4858. 0x99AC: 0x52F3,
  4859. 0x99AD: 0x52F5,
  4860. 0x99AE: 0x52F8,
  4861. 0x99AF: 0x52F9,
  4862. 0x99B0: 0x5306,
  4863. 0x99B1: 0x5308,
  4864. 0x99B2: 0x7538,
  4865. 0x99B3: 0x530D,
  4866. 0x99B4: 0x5310,
  4867. 0x99B5: 0x530F,
  4868. 0x99B6: 0x5315,
  4869. 0x99B7: 0x531A,
  4870. 0x99B8: 0x5323,
  4871. 0x99B9: 0x532F,
  4872. 0x99BA: 0x5331,
  4873. 0x99BB: 0x5333,
  4874. 0x99BC: 0x5338,
  4875. 0x99BD: 0x5340,
  4876. 0x99BE: 0x5346,
  4877. 0x99BF: 0x5345,
  4878. 0x99C0: 0x4E17,
  4879. 0x99C1: 0x5349,
  4880. 0x99C2: 0x534D,
  4881. 0x99C3: 0x51D6,
  4882. 0x99C4: 0x535E,
  4883. 0x99C5: 0x5369,
  4884. 0x99C6: 0x536E,
  4885. 0x99C7: 0x5918,
  4886. 0x99C8: 0x537B,
  4887. 0x99C9: 0x5377,
  4888. 0x99CA: 0x5382,
  4889. 0x99CB: 0x5396,
  4890. 0x99CC: 0x53A0,
  4891. 0x99CD: 0x53A6,
  4892. 0x99CE: 0x53A5,
  4893. 0x99CF: 0x53AE,
  4894. 0x99D0: 0x53B0,
  4895. 0x99D1: 0x53B6,
  4896. 0x99D2: 0x53C3,
  4897. 0x99D3: 0x7C12,
  4898. 0x99D4: 0x96D9,
  4899. 0x99D5: 0x53DF,
  4900. 0x99D6: 0x66FC,
  4901. 0x99D7: 0x71EE,
  4902. 0x99D8: 0x53EE,
  4903. 0x99D9: 0x53E8,
  4904. 0x99DA: 0x53ED,
  4905. 0x99DB: 0x53FA,
  4906. 0x99DC: 0x5401,
  4907. 0x99DD: 0x543D,
  4908. 0x99DE: 0x5440,
  4909. 0x99DF: 0x542C,
  4910. 0x99E0: 0x542D,
  4911. 0x99E1: 0x543C,
  4912. 0x99E2: 0x542E,
  4913. 0x99E3: 0x5436,
  4914. 0x99E4: 0x5429,
  4915. 0x99E5: 0x541D,
  4916. 0x99E6: 0x544E,
  4917. 0x99E7: 0x548F,
  4918. 0x99E8: 0x5475,
  4919. 0x99E9: 0x548E,
  4920. 0x99EA: 0x545F,
  4921. 0x99EB: 0x5471,
  4922. 0x99EC: 0x5477,
  4923. 0x99ED: 0x5470,
  4924. 0x99EE: 0x5492,
  4925. 0x99EF: 0x547B,
  4926. 0x99F0: 0x5480,
  4927. 0x99F1: 0x5476,
  4928. 0x99F2: 0x5484,
  4929. 0x99F3: 0x5490,
  4930. 0x99F4: 0x5486,
  4931. 0x99F5: 0x54C7,
  4932. 0x99F6: 0x54A2,
  4933. 0x99F7: 0x54B8,
  4934. 0x99F8: 0x54A5,
  4935. 0x99F9: 0x54AC,
  4936. 0x99FA: 0x54C4,
  4937. 0x99FB: 0x54C8,
  4938. 0x99FC: 0x54A8,
  4939. 0x9A40: 0x54AB,
  4940. 0x9A41: 0x54C2,
  4941. 0x9A42: 0x54A4,
  4942. 0x9A43: 0x54BE,
  4943. 0x9A44: 0x54BC,
  4944. 0x9A45: 0x54D8,
  4945. 0x9A46: 0x54E5,
  4946. 0x9A47: 0x54E6,
  4947. 0x9A48: 0x550F,
  4948. 0x9A49: 0x5514,
  4949. 0x9A4A: 0x54FD,
  4950. 0x9A4B: 0x54EE,
  4951. 0x9A4C: 0x54ED,
  4952. 0x9A4D: 0x54FA,
  4953. 0x9A4E: 0x54E2,
  4954. 0x9A4F: 0x5539,
  4955. 0x9A50: 0x5540,
  4956. 0x9A51: 0x5563,
  4957. 0x9A52: 0x554C,
  4958. 0x9A53: 0x552E,
  4959. 0x9A54: 0x555C,
  4960. 0x9A55: 0x5545,
  4961. 0x9A56: 0x5556,
  4962. 0x9A57: 0x5557,
  4963. 0x9A58: 0x5538,
  4964. 0x9A59: 0x5533,
  4965. 0x9A5A: 0x555D,
  4966. 0x9A5B: 0x5599,
  4967. 0x9A5C: 0x5580,
  4968. 0x9A5D: 0x54AF,
  4969. 0x9A5E: 0x558A,
  4970. 0x9A5F: 0x559F,
  4971. 0x9A60: 0x557B,
  4972. 0x9A61: 0x557E,
  4973. 0x9A62: 0x5598,
  4974. 0x9A63: 0x559E,
  4975. 0x9A64: 0x55AE,
  4976. 0x9A65: 0x557C,
  4977. 0x9A66: 0x5583,
  4978. 0x9A67: 0x55A9,
  4979. 0x9A68: 0x5587,
  4980. 0x9A69: 0x55A8,
  4981. 0x9A6A: 0x55DA,
  4982. 0x9A6B: 0x55C5,
  4983. 0x9A6C: 0x55DF,
  4984. 0x9A6D: 0x55C4,
  4985. 0x9A6E: 0x55DC,
  4986. 0x9A6F: 0x55E4,
  4987. 0x9A70: 0x55D4,
  4988. 0x9A71: 0x5614,
  4989. 0x9A72: 0x55F7,
  4990. 0x9A73: 0x5616,
  4991. 0x9A74: 0x55FE,
  4992. 0x9A75: 0x55FD,
  4993. 0x9A76: 0x561B,
  4994. 0x9A77: 0x55F9,
  4995. 0x9A78: 0x564E,
  4996. 0x9A79: 0x5650,
  4997. 0x9A7A: 0x71DF,
  4998. 0x9A7B: 0x5634,
  4999. 0x9A7C: 0x5636,
  5000. 0x9A7D: 0x5632,
  5001. 0x9A7E: 0x5638,
  5002. 0x9A80: 0x566B,
  5003. 0x9A81: 0x5664,
  5004. 0x9A82: 0x562F,
  5005. 0x9A83: 0x566C,
  5006. 0x9A84: 0x566A,
  5007. 0x9A85: 0x5686,
  5008. 0x9A86: 0x5680,
  5009. 0x9A87: 0x568A,
  5010. 0x9A88: 0x56A0,
  5011. 0x9A89: 0x5694,
  5012. 0x9A8A: 0x568F,
  5013. 0x9A8B: 0x56A5,
  5014. 0x9A8C: 0x56AE,
  5015. 0x9A8D: 0x56B6,
  5016. 0x9A8E: 0x56B4,
  5017. 0x9A8F: 0x56C2,
  5018. 0x9A90: 0x56BC,
  5019. 0x9A91: 0x56C1,
  5020. 0x9A92: 0x56C3,
  5021. 0x9A93: 0x56C0,
  5022. 0x9A94: 0x56C8,
  5023. 0x9A95: 0x56CE,
  5024. 0x9A96: 0x56D1,
  5025. 0x9A97: 0x56D3,
  5026. 0x9A98: 0x56D7,
  5027. 0x9A99: 0x56EE,
  5028. 0x9A9A: 0x56F9,
  5029. 0x9A9B: 0x5700,
  5030. 0x9A9C: 0x56FF,
  5031. 0x9A9D: 0x5704,
  5032. 0x9A9E: 0x5709,
  5033. 0x9A9F: 0x5708,
  5034. 0x9AA0: 0x570B,
  5035. 0x9AA1: 0x570D,
  5036. 0x9AA2: 0x5713,
  5037. 0x9AA3: 0x5718,
  5038. 0x9AA4: 0x5716,
  5039. 0x9AA5: 0x55C7,
  5040. 0x9AA6: 0x571C,
  5041. 0x9AA7: 0x5726,
  5042. 0x9AA8: 0x5737,
  5043. 0x9AA9: 0x5738,
  5044. 0x9AAA: 0x574E,
  5045. 0x9AAB: 0x573B,
  5046. 0x9AAC: 0x5740,
  5047. 0x9AAD: 0x574F,
  5048. 0x9AAE: 0x5769,
  5049. 0x9AAF: 0x57C0,
  5050. 0x9AB0: 0x5788,
  5051. 0x9AB1: 0x5761,
  5052. 0x9AB2: 0x577F,
  5053. 0x9AB3: 0x5789,
  5054. 0x9AB4: 0x5793,
  5055. 0x9AB5: 0x57A0,
  5056. 0x9AB6: 0x57B3,
  5057. 0x9AB7: 0x57A4,
  5058. 0x9AB8: 0x57AA,
  5059. 0x9AB9: 0x57B0,
  5060. 0x9ABA: 0x57C3,
  5061. 0x9ABB: 0x57C6,
  5062. 0x9ABC: 0x57D4,
  5063. 0x9ABD: 0x57D2,
  5064. 0x9ABE: 0x57D3,
  5065. 0x9ABF: 0x580A,
  5066. 0x9AC0: 0x57D6,
  5067. 0x9AC1: 0x57E3,
  5068. 0x9AC2: 0x580B,
  5069. 0x9AC3: 0x5819,
  5070. 0x9AC4: 0x581D,
  5071. 0x9AC5: 0x5872,
  5072. 0x9AC6: 0x5821,
  5073. 0x9AC7: 0x5862,
  5074. 0x9AC8: 0x584B,
  5075. 0x9AC9: 0x5870,
  5076. 0x9ACA: 0x6BC0,
  5077. 0x9ACB: 0x5852,
  5078. 0x9ACC: 0x583D,
  5079. 0x9ACD: 0x5879,
  5080. 0x9ACE: 0x5885,
  5081. 0x9ACF: 0x58B9,
  5082. 0x9AD0: 0x589F,
  5083. 0x9AD1: 0x58AB,
  5084. 0x9AD2: 0x58BA,
  5085. 0x9AD3: 0x58DE,
  5086. 0x9AD4: 0x58BB,
  5087. 0x9AD5: 0x58B8,
  5088. 0x9AD6: 0x58AE,
  5089. 0x9AD7: 0x58C5,
  5090. 0x9AD8: 0x58D3,
  5091. 0x9AD9: 0x58D1,
  5092. 0x9ADA: 0x58D7,
  5093. 0x9ADB: 0x58D9,
  5094. 0x9ADC: 0x58D8,
  5095. 0x9ADD: 0x58E5,
  5096. 0x9ADE: 0x58DC,
  5097. 0x9ADF: 0x58E4,
  5098. 0x9AE0: 0x58DF,
  5099. 0x9AE1: 0x58EF,
  5100. 0x9AE2: 0x58FA,
  5101. 0x9AE3: 0x58F9,
  5102. 0x9AE4: 0x58FB,
  5103. 0x9AE5: 0x58FC,
  5104. 0x9AE6: 0x58FD,
  5105. 0x9AE7: 0x5902,
  5106. 0x9AE8: 0x590A,
  5107. 0x9AE9: 0x5910,
  5108. 0x9AEA: 0x591B,
  5109. 0x9AEB: 0x68A6,
  5110. 0x9AEC: 0x5925,
  5111. 0x9AED: 0x592C,
  5112. 0x9AEE: 0x592D,
  5113. 0x9AEF: 0x5932,
  5114. 0x9AF0: 0x5938,
  5115. 0x9AF1: 0x593E,
  5116. 0x9AF2: 0x7AD2,
  5117. 0x9AF3: 0x5955,
  5118. 0x9AF4: 0x5950,
  5119. 0x9AF5: 0x594E,
  5120. 0x9AF6: 0x595A,
  5121. 0x9AF7: 0x5958,
  5122. 0x9AF8: 0x5962,
  5123. 0x9AF9: 0x5960,
  5124. 0x9AFA: 0x5967,
  5125. 0x9AFB: 0x596C,
  5126. 0x9AFC: 0x5969,
  5127. 0x9B40: 0x5978,
  5128. 0x9B41: 0x5981,
  5129. 0x9B42: 0x599D,
  5130. 0x9B43: 0x4F5E,
  5131. 0x9B44: 0x4FAB,
  5132. 0x9B45: 0x59A3,
  5133. 0x9B46: 0x59B2,
  5134. 0x9B47: 0x59C6,
  5135. 0x9B48: 0x59E8,
  5136. 0x9B49: 0x59DC,
  5137. 0x9B4A: 0x598D,
  5138. 0x9B4B: 0x59D9,
  5139. 0x9B4C: 0x59DA,
  5140. 0x9B4D: 0x5A25,
  5141. 0x9B4E: 0x5A1F,
  5142. 0x9B4F: 0x5A11,
  5143. 0x9B50: 0x5A1C,
  5144. 0x9B51: 0x5A09,
  5145. 0x9B52: 0x5A1A,
  5146. 0x9B53: 0x5A40,
  5147. 0x9B54: 0x5A6C,
  5148. 0x9B55: 0x5A49,
  5149. 0x9B56: 0x5A35,
  5150. 0x9B57: 0x5A36,
  5151. 0x9B58: 0x5A62,
  5152. 0x9B59: 0x5A6A,
  5153. 0x9B5A: 0x5A9A,
  5154. 0x9B5B: 0x5ABC,
  5155. 0x9B5C: 0x5ABE,
  5156. 0x9B5D: 0x5ACB,
  5157. 0x9B5E: 0x5AC2,
  5158. 0x9B5F: 0x5ABD,
  5159. 0x9B60: 0x5AE3,
  5160. 0x9B61: 0x5AD7,
  5161. 0x9B62: 0x5AE6,
  5162. 0x9B63: 0x5AE9,
  5163. 0x9B64: 0x5AD6,
  5164. 0x9B65: 0x5AFA,
  5165. 0x9B66: 0x5AFB,
  5166. 0x9B67: 0x5B0C,
  5167. 0x9B68: 0x5B0B,
  5168. 0x9B69: 0x5B16,
  5169. 0x9B6A: 0x5B32,
  5170. 0x9B6B: 0x5AD0,
  5171. 0x9B6C: 0x5B2A,
  5172. 0x9B6D: 0x5B36,
  5173. 0x9B6E: 0x5B3E,
  5174. 0x9B6F: 0x5B43,
  5175. 0x9B70: 0x5B45,
  5176. 0x9B71: 0x5B40,
  5177. 0x9B72: 0x5B51,
  5178. 0x9B73: 0x5B55,
  5179. 0x9B74: 0x5B5A,
  5180. 0x9B75: 0x5B5B,
  5181. 0x9B76: 0x5B65,
  5182. 0x9B77: 0x5B69,
  5183. 0x9B78: 0x5B70,
  5184. 0x9B79: 0x5B73,
  5185. 0x9B7A: 0x5B75,
  5186. 0x9B7B: 0x5B78,
  5187. 0x9B7C: 0x6588,
  5188. 0x9B7D: 0x5B7A,
  5189. 0x9B7E: 0x5B80,
  5190. 0x9B80: 0x5B83,
  5191. 0x9B81: 0x5BA6,
  5192. 0x9B82: 0x5BB8,
  5193. 0x9B83: 0x5BC3,
  5194. 0x9B84: 0x5BC7,
  5195. 0x9B85: 0x5BC9,
  5196. 0x9B86: 0x5BD4,
  5197. 0x9B87: 0x5BD0,
  5198. 0x9B88: 0x5BE4,
  5199. 0x9B89: 0x5BE6,
  5200. 0x9B8A: 0x5BE2,
  5201. 0x9B8B: 0x5BDE,
  5202. 0x9B8C: 0x5BE5,
  5203. 0x9B8D: 0x5BEB,
  5204. 0x9B8E: 0x5BF0,
  5205. 0x9B8F: 0x5BF6,
  5206. 0x9B90: 0x5BF3,
  5207. 0x9B91: 0x5C05,
  5208. 0x9B92: 0x5C07,
  5209. 0x9B93: 0x5C08,
  5210. 0x9B94: 0x5C0D,
  5211. 0x9B95: 0x5C13,
  5212. 0x9B96: 0x5C20,
  5213. 0x9B97: 0x5C22,
  5214. 0x9B98: 0x5C28,
  5215. 0x9B99: 0x5C38,
  5216. 0x9B9A: 0x5C39,
  5217. 0x9B9B: 0x5C41,
  5218. 0x9B9C: 0x5C46,
  5219. 0x9B9D: 0x5C4E,
  5220. 0x9B9E: 0x5C53,
  5221. 0x9B9F: 0x5C50,
  5222. 0x9BA0: 0x5C4F,
  5223. 0x9BA1: 0x5B71,
  5224. 0x9BA2: 0x5C6C,
  5225. 0x9BA3: 0x5C6E,
  5226. 0x9BA4: 0x4E62,
  5227. 0x9BA5: 0x5C76,
  5228. 0x9BA6: 0x5C79,
  5229. 0x9BA7: 0x5C8C,
  5230. 0x9BA8: 0x5C91,
  5231. 0x9BA9: 0x5C94,
  5232. 0x9BAA: 0x599B,
  5233. 0x9BAB: 0x5CAB,
  5234. 0x9BAC: 0x5CBB,
  5235. 0x9BAD: 0x5CB6,
  5236. 0x9BAE: 0x5CBC,
  5237. 0x9BAF: 0x5CB7,
  5238. 0x9BB0: 0x5CC5,
  5239. 0x9BB1: 0x5CBE,
  5240. 0x9BB2: 0x5CC7,
  5241. 0x9BB3: 0x5CD9,
  5242. 0x9BB4: 0x5CE9,
  5243. 0x9BB5: 0x5CFD,
  5244. 0x9BB6: 0x5CFA,
  5245. 0x9BB7: 0x5CED,
  5246. 0x9BB8: 0x5D8C,
  5247. 0x9BB9: 0x5CEA,
  5248. 0x9BBA: 0x5D0B,
  5249. 0x9BBB: 0x5D15,
  5250. 0x9BBC: 0x5D17,
  5251. 0x9BBD: 0x5D5C,
  5252. 0x9BBE: 0x5D1F,
  5253. 0x9BBF: 0x5D1B,
  5254. 0x9BC0: 0x5D11,
  5255. 0x9BC1: 0x5D14,
  5256. 0x9BC2: 0x5D22,
  5257. 0x9BC3: 0x5D1A,
  5258. 0x9BC4: 0x5D19,
  5259. 0x9BC5: 0x5D18,
  5260. 0x9BC6: 0x5D4C,
  5261. 0x9BC7: 0x5D52,
  5262. 0x9BC8: 0x5D4E,
  5263. 0x9BC9: 0x5D4B,
  5264. 0x9BCA: 0x5D6C,
  5265. 0x9BCB: 0x5D73,
  5266. 0x9BCC: 0x5D76,
  5267. 0x9BCD: 0x5D87,
  5268. 0x9BCE: 0x5D84,
  5269. 0x9BCF: 0x5D82,
  5270. 0x9BD0: 0x5DA2,
  5271. 0x9BD1: 0x5D9D,
  5272. 0x9BD2: 0x5DAC,
  5273. 0x9BD3: 0x5DAE,
  5274. 0x9BD4: 0x5DBD,
  5275. 0x9BD5: 0x5D90,
  5276. 0x9BD6: 0x5DB7,
  5277. 0x9BD7: 0x5DBC,
  5278. 0x9BD8: 0x5DC9,
  5279. 0x9BD9: 0x5DCD,
  5280. 0x9BDA: 0x5DD3,
  5281. 0x9BDB: 0x5DD2,
  5282. 0x9BDC: 0x5DD6,
  5283. 0x9BDD: 0x5DDB,
  5284. 0x9BDE: 0x5DEB,
  5285. 0x9BDF: 0x5DF2,
  5286. 0x9BE0: 0x5DF5,
  5287. 0x9BE1: 0x5E0B,
  5288. 0x9BE2: 0x5E1A,
  5289. 0x9BE3: 0x5E19,
  5290. 0x9BE4: 0x5E11,
  5291. 0x9BE5: 0x5E1B,
  5292. 0x9BE6: 0x5E36,
  5293. 0x9BE7: 0x5E37,
  5294. 0x9BE8: 0x5E44,
  5295. 0x9BE9: 0x5E43,
  5296. 0x9BEA: 0x5E40,
  5297. 0x9BEB: 0x5E4E,
  5298. 0x9BEC: 0x5E57,
  5299. 0x9BED: 0x5E54,
  5300. 0x9BEE: 0x5E5F,
  5301. 0x9BEF: 0x5E62,
  5302. 0x9BF0: 0x5E64,
  5303. 0x9BF1: 0x5E47,
  5304. 0x9BF2: 0x5E75,
  5305. 0x9BF3: 0x5E76,
  5306. 0x9BF4: 0x5E7A,
  5307. 0x9BF5: 0x9EBC,
  5308. 0x9BF6: 0x5E7F,
  5309. 0x9BF7: 0x5EA0,
  5310. 0x9BF8: 0x5EC1,
  5311. 0x9BF9: 0x5EC2,
  5312. 0x9BFA: 0x5EC8,
  5313. 0x9BFB: 0x5ED0,
  5314. 0x9BFC: 0x5ECF,
  5315. 0x9C40: 0x5ED6,
  5316. 0x9C41: 0x5EE3,
  5317. 0x9C42: 0x5EDD,
  5318. 0x9C43: 0x5EDA,
  5319. 0x9C44: 0x5EDB,
  5320. 0x9C45: 0x5EE2,
  5321. 0x9C46: 0x5EE1,
  5322. 0x9C47: 0x5EE8,
  5323. 0x9C48: 0x5EE9,
  5324. 0x9C49: 0x5EEC,
  5325. 0x9C4A: 0x5EF1,
  5326. 0x9C4B: 0x5EF3,
  5327. 0x9C4C: 0x5EF0,
  5328. 0x9C4D: 0x5EF4,
  5329. 0x9C4E: 0x5EF8,
  5330. 0x9C4F: 0x5EFE,
  5331. 0x9C50: 0x5F03,
  5332. 0x9C51: 0x5F09,
  5333. 0x9C52: 0x5F5D,
  5334. 0x9C53: 0x5F5C,
  5335. 0x9C54: 0x5F0B,
  5336. 0x9C55: 0x5F11,
  5337. 0x9C56: 0x5F16,
  5338. 0x9C57: 0x5F29,
  5339. 0x9C58: 0x5F2D,
  5340. 0x9C59: 0x5F38,
  5341. 0x9C5A: 0x5F41,
  5342. 0x9C5B: 0x5F48,
  5343. 0x9C5C: 0x5F4C,
  5344. 0x9C5D: 0x5F4E,
  5345. 0x9C5E: 0x5F2F,
  5346. 0x9C5F: 0x5F51,
  5347. 0x9C60: 0x5F56,
  5348. 0x9C61: 0x5F57,
  5349. 0x9C62: 0x5F59,
  5350. 0x9C63: 0x5F61,
  5351. 0x9C64: 0x5F6D,
  5352. 0x9C65: 0x5F73,
  5353. 0x9C66: 0x5F77,
  5354. 0x9C67: 0x5F83,
  5355. 0x9C68: 0x5F82,
  5356. 0x9C69: 0x5F7F,
  5357. 0x9C6A: 0x5F8A,
  5358. 0x9C6B: 0x5F88,
  5359. 0x9C6C: 0x5F91,
  5360. 0x9C6D: 0x5F87,
  5361. 0x9C6E: 0x5F9E,
  5362. 0x9C6F: 0x5F99,
  5363. 0x9C70: 0x5F98,
  5364. 0x9C71: 0x5FA0,
  5365. 0x9C72: 0x5FA8,
  5366. 0x9C73: 0x5FAD,
  5367. 0x9C74: 0x5FBC,
  5368. 0x9C75: 0x5FD6,
  5369. 0x9C76: 0x5FFB,
  5370. 0x9C77: 0x5FE4,
  5371. 0x9C78: 0x5FF8,
  5372. 0x9C79: 0x5FF1,
  5373. 0x9C7A: 0x5FDD,
  5374. 0x9C7B: 0x60B3,
  5375. 0x9C7C: 0x5FFF,
  5376. 0x9C7D: 0x6021,
  5377. 0x9C7E: 0x6060,
  5378. 0x9C80: 0x6019,
  5379. 0x9C81: 0x6010,
  5380. 0x9C82: 0x6029,
  5381. 0x9C83: 0x600E,
  5382. 0x9C84: 0x6031,
  5383. 0x9C85: 0x601B,
  5384. 0x9C86: 0x6015,
  5385. 0x9C87: 0x602B,
  5386. 0x9C88: 0x6026,
  5387. 0x9C89: 0x600F,
  5388. 0x9C8A: 0x603A,
  5389. 0x9C8B: 0x605A,
  5390. 0x9C8C: 0x6041,
  5391. 0x9C8D: 0x606A,
  5392. 0x9C8E: 0x6077,
  5393. 0x9C8F: 0x605F,
  5394. 0x9C90: 0x604A,
  5395. 0x9C91: 0x6046,
  5396. 0x9C92: 0x604D,
  5397. 0x9C93: 0x6063,
  5398. 0x9C94: 0x6043,
  5399. 0x9C95: 0x6064,
  5400. 0x9C96: 0x6042,
  5401. 0x9C97: 0x606C,
  5402. 0x9C98: 0x606B,
  5403. 0x9C99: 0x6059,
  5404. 0x9C9A: 0x6081,
  5405. 0x9C9B: 0x608D,
  5406. 0x9C9C: 0x60E7,
  5407. 0x9C9D: 0x6083,
  5408. 0x9C9E: 0x609A,
  5409. 0x9C9F: 0x6084,
  5410. 0x9CA0: 0x609B,
  5411. 0x9CA1: 0x6096,
  5412. 0x9CA2: 0x6097,
  5413. 0x9CA3: 0x6092,
  5414. 0x9CA4: 0x60A7,
  5415. 0x9CA5: 0x608B,
  5416. 0x9CA6: 0x60E1,
  5417. 0x9CA7: 0x60B8,
  5418. 0x9CA8: 0x60E0,
  5419. 0x9CA9: 0x60D3,
  5420. 0x9CAA: 0x60B4,
  5421. 0x9CAB: 0x5FF0,
  5422. 0x9CAC: 0x60BD,
  5423. 0x9CAD: 0x60C6,
  5424. 0x9CAE: 0x60B5,
  5425. 0x9CAF: 0x60D8,
  5426. 0x9CB0: 0x614D,
  5427. 0x9CB1: 0x6115,
  5428. 0x9CB2: 0x6106,
  5429. 0x9CB3: 0x60F6,
  5430. 0x9CB4: 0x60F7,
  5431. 0x9CB5: 0x6100,
  5432. 0x9CB6: 0x60F4,
  5433. 0x9CB7: 0x60FA,
  5434. 0x9CB8: 0x6103,
  5435. 0x9CB9: 0x6121,
  5436. 0x9CBA: 0x60FB,
  5437. 0x9CBB: 0x60F1,
  5438. 0x9CBC: 0x610D,
  5439. 0x9CBD: 0x610E,
  5440. 0x9CBE: 0x6147,
  5441. 0x9CBF: 0x613E,
  5442. 0x9CC0: 0x6128,
  5443. 0x9CC1: 0x6127,
  5444. 0x9CC2: 0x614A,
  5445. 0x9CC3: 0x613F,
  5446. 0x9CC4: 0x613C,
  5447. 0x9CC5: 0x612C,
  5448. 0x9CC6: 0x6134,
  5449. 0x9CC7: 0x613D,
  5450. 0x9CC8: 0x6142,
  5451. 0x9CC9: 0x6144,
  5452. 0x9CCA: 0x6173,
  5453. 0x9CCB: 0x6177,
  5454. 0x9CCC: 0x6158,
  5455. 0x9CCD: 0x6159,
  5456. 0x9CCE: 0x615A,
  5457. 0x9CCF: 0x616B,
  5458. 0x9CD0: 0x6174,
  5459. 0x9CD1: 0x616F,
  5460. 0x9CD2: 0x6165,
  5461. 0x9CD3: 0x6171,
  5462. 0x9CD4: 0x615F,
  5463. 0x9CD5: 0x615D,
  5464. 0x9CD6: 0x6153,
  5465. 0x9CD7: 0x6175,
  5466. 0x9CD8: 0x6199,
  5467. 0x9CD9: 0x6196,
  5468. 0x9CDA: 0x6187,
  5469. 0x9CDB: 0x61AC,
  5470. 0x9CDC: 0x6194,
  5471. 0x9CDD: 0x619A,
  5472. 0x9CDE: 0x618A,
  5473. 0x9CDF: 0x6191,
  5474. 0x9CE0: 0x61AB,
  5475. 0x9CE1: 0x61AE,
  5476. 0x9CE2: 0x61CC,
  5477. 0x9CE3: 0x61CA,
  5478. 0x9CE4: 0x61C9,
  5479. 0x9CE5: 0x61F7,
  5480. 0x9CE6: 0x61C8,
  5481. 0x9CE7: 0x61C3,
  5482. 0x9CE8: 0x61C6,
  5483. 0x9CE9: 0x61BA,
  5484. 0x9CEA: 0x61CB,
  5485. 0x9CEB: 0x7F79,
  5486. 0x9CEC: 0x61CD,
  5487. 0x9CED: 0x61E6,
  5488. 0x9CEE: 0x61E3,
  5489. 0x9CEF: 0x61F6,
  5490. 0x9CF0: 0x61FA,
  5491. 0x9CF1: 0x61F4,
  5492. 0x9CF2: 0x61FF,
  5493. 0x9CF3: 0x61FD,
  5494. 0x9CF4: 0x61FC,
  5495. 0x9CF5: 0x61FE,
  5496. 0x9CF6: 0x6200,
  5497. 0x9CF7: 0x6208,
  5498. 0x9CF8: 0x6209,
  5499. 0x9CF9: 0x620D,
  5500. 0x9CFA: 0x620C,
  5501. 0x9CFB: 0x6214,
  5502. 0x9CFC: 0x621B,
  5503. 0x9D40: 0x621E,
  5504. 0x9D41: 0x6221,
  5505. 0x9D42: 0x622A,
  5506. 0x9D43: 0x622E,
  5507. 0x9D44: 0x6230,
  5508. 0x9D45: 0x6232,
  5509. 0x9D46: 0x6233,
  5510. 0x9D47: 0x6241,
  5511. 0x9D48: 0x624E,
  5512. 0x9D49: 0x625E,
  5513. 0x9D4A: 0x6263,
  5514. 0x9D4B: 0x625B,
  5515. 0x9D4C: 0x6260,
  5516. 0x9D4D: 0x6268,
  5517. 0x9D4E: 0x627C,
  5518. 0x9D4F: 0x6282,
  5519. 0x9D50: 0x6289,
  5520. 0x9D51: 0x627E,
  5521. 0x9D52: 0x6292,
  5522. 0x9D53: 0x6293,
  5523. 0x9D54: 0x6296,
  5524. 0x9D55: 0x62D4,
  5525. 0x9D56: 0x6283,
  5526. 0x9D57: 0x6294,
  5527. 0x9D58: 0x62D7,
  5528. 0x9D59: 0x62D1,
  5529. 0x9D5A: 0x62BB,
  5530. 0x9D5B: 0x62CF,
  5531. 0x9D5C: 0x62FF,
  5532. 0x9D5D: 0x62C6,
  5533. 0x9D5E: 0x64D4,
  5534. 0x9D5F: 0x62C8,
  5535. 0x9D60: 0x62DC,
  5536. 0x9D61: 0x62CC,
  5537. 0x9D62: 0x62CA,
  5538. 0x9D63: 0x62C2,
  5539. 0x9D64: 0x62C7,
  5540. 0x9D65: 0x629B,
  5541. 0x9D66: 0x62C9,
  5542. 0x9D67: 0x630C,
  5543. 0x9D68: 0x62EE,
  5544. 0x9D69: 0x62F1,
  5545. 0x9D6A: 0x6327,
  5546. 0x9D6B: 0x6302,
  5547. 0x9D6C: 0x6308,
  5548. 0x9D6D: 0x62EF,
  5549. 0x9D6E: 0x62F5,
  5550. 0x9D6F: 0x6350,
  5551. 0x9D70: 0x633E,
  5552. 0x9D71: 0x634D,
  5553. 0x9D72: 0x641C,
  5554. 0x9D73: 0x634F,
  5555. 0x9D74: 0x6396,
  5556. 0x9D75: 0x638E,
  5557. 0x9D76: 0x6380,
  5558. 0x9D77: 0x63AB,
  5559. 0x9D78: 0x6376,
  5560. 0x9D79: 0x63A3,
  5561. 0x9D7A: 0x638F,
  5562. 0x9D7B: 0x6389,
  5563. 0x9D7C: 0x639F,
  5564. 0x9D7D: 0x63B5,
  5565. 0x9D7E: 0x636B,
  5566. 0x9D80: 0x6369,
  5567. 0x9D81: 0x63BE,
  5568. 0x9D82: 0x63E9,
  5569. 0x9D83: 0x63C0,
  5570. 0x9D84: 0x63C6,
  5571. 0x9D85: 0x63E3,
  5572. 0x9D86: 0x63C9,
  5573. 0x9D87: 0x63D2,
  5574. 0x9D88: 0x63F6,
  5575. 0x9D89: 0x63C4,
  5576. 0x9D8A: 0x6416,
  5577. 0x9D8B: 0x6434,
  5578. 0x9D8C: 0x6406,
  5579. 0x9D8D: 0x6413,
  5580. 0x9D8E: 0x6426,
  5581. 0x9D8F: 0x6436,
  5582. 0x9D90: 0x651D,
  5583. 0x9D91: 0x6417,
  5584. 0x9D92: 0x6428,
  5585. 0x9D93: 0x640F,
  5586. 0x9D94: 0x6467,
  5587. 0x9D95: 0x646F,
  5588. 0x9D96: 0x6476,
  5589. 0x9D97: 0x644E,
  5590. 0x9D98: 0x652A,
  5591. 0x9D99: 0x6495,
  5592. 0x9D9A: 0x6493,
  5593. 0x9D9B: 0x64A5,
  5594. 0x9D9C: 0x64A9,
  5595. 0x9D9D: 0x6488,
  5596. 0x9D9E: 0x64BC,
  5597. 0x9D9F: 0x64DA,
  5598. 0x9DA0: 0x64D2,
  5599. 0x9DA1: 0x64C5,
  5600. 0x9DA2: 0x64C7,
  5601. 0x9DA3: 0x64BB,
  5602. 0x9DA4: 0x64D8,
  5603. 0x9DA5: 0x64C2,
  5604. 0x9DA6: 0x64F1,
  5605. 0x9DA7: 0x64E7,
  5606. 0x9DA8: 0x8209,
  5607. 0x9DA9: 0x64E0,
  5608. 0x9DAA: 0x64E1,
  5609. 0x9DAB: 0x62AC,
  5610. 0x9DAC: 0x64E3,
  5611. 0x9DAD: 0x64EF,
  5612. 0x9DAE: 0x652C,
  5613. 0x9DAF: 0x64F6,
  5614. 0x9DB0: 0x64F4,
  5615. 0x9DB1: 0x64F2,
  5616. 0x9DB2: 0x64FA,
  5617. 0x9DB3: 0x6500,
  5618. 0x9DB4: 0x64FD,
  5619. 0x9DB5: 0x6518,
  5620. 0x9DB6: 0x651C,
  5621. 0x9DB7: 0x6505,
  5622. 0x9DB8: 0x6524,
  5623. 0x9DB9: 0x6523,
  5624. 0x9DBA: 0x652B,
  5625. 0x9DBB: 0x6534,
  5626. 0x9DBC: 0x6535,
  5627. 0x9DBD: 0x6537,
  5628. 0x9DBE: 0x6536,
  5629. 0x9DBF: 0x6538,
  5630. 0x9DC0: 0x754B,
  5631. 0x9DC1: 0x6548,
  5632. 0x9DC2: 0x6556,
  5633. 0x9DC3: 0x6555,
  5634. 0x9DC4: 0x654D,
  5635. 0x9DC5: 0x6558,
  5636. 0x9DC6: 0x655E,
  5637. 0x9DC7: 0x655D,
  5638. 0x9DC8: 0x6572,
  5639. 0x9DC9: 0x6578,
  5640. 0x9DCA: 0x6582,
  5641. 0x9DCB: 0x6583,
  5642. 0x9DCC: 0x8B8A,
  5643. 0x9DCD: 0x659B,
  5644. 0x9DCE: 0x659F,
  5645. 0x9DCF: 0x65AB,
  5646. 0x9DD0: 0x65B7,
  5647. 0x9DD1: 0x65C3,
  5648. 0x9DD2: 0x65C6,
  5649. 0x9DD3: 0x65C1,
  5650. 0x9DD4: 0x65C4,
  5651. 0x9DD5: 0x65CC,
  5652. 0x9DD6: 0x65D2,
  5653. 0x9DD7: 0x65DB,
  5654. 0x9DD8: 0x65D9,
  5655. 0x9DD9: 0x65E0,
  5656. 0x9DDA: 0x65E1,
  5657. 0x9DDB: 0x65F1,
  5658. 0x9DDC: 0x6772,
  5659. 0x9DDD: 0x660A,
  5660. 0x9DDE: 0x6603,
  5661. 0x9DDF: 0x65FB,
  5662. 0x9DE0: 0x6773,
  5663. 0x9DE1: 0x6635,
  5664. 0x9DE2: 0x6636,
  5665. 0x9DE3: 0x6634,
  5666. 0x9DE4: 0x661C,
  5667. 0x9DE5: 0x664F,
  5668. 0x9DE6: 0x6644,
  5669. 0x9DE7: 0x6649,
  5670. 0x9DE8: 0x6641,
  5671. 0x9DE9: 0x665E,
  5672. 0x9DEA: 0x665D,
  5673. 0x9DEB: 0x6664,
  5674. 0x9DEC: 0x6667,
  5675. 0x9DED: 0x6668,
  5676. 0x9DEE: 0x665F,
  5677. 0x9DEF: 0x6662,
  5678. 0x9DF0: 0x6670,
  5679. 0x9DF1: 0x6683,
  5680. 0x9DF2: 0x6688,
  5681. 0x9DF3: 0x668E,
  5682. 0x9DF4: 0x6689,
  5683. 0x9DF5: 0x6684,
  5684. 0x9DF6: 0x6698,
  5685. 0x9DF7: 0x669D,
  5686. 0x9DF8: 0x66C1,
  5687. 0x9DF9: 0x66B9,
  5688. 0x9DFA: 0x66C9,
  5689. 0x9DFB: 0x66BE,
  5690. 0x9DFC: 0x66BC,
  5691. 0x9E40: 0x66C4,
  5692. 0x9E41: 0x66B8,
  5693. 0x9E42: 0x66D6,
  5694. 0x9E43: 0x66DA,
  5695. 0x9E44: 0x66E0,
  5696. 0x9E45: 0x663F,
  5697. 0x9E46: 0x66E6,
  5698. 0x9E47: 0x66E9,
  5699. 0x9E48: 0x66F0,
  5700. 0x9E49: 0x66F5,
  5701. 0x9E4A: 0x66F7,
  5702. 0x9E4B: 0x670F,
  5703. 0x9E4C: 0x6716,
  5704. 0x9E4D: 0x671E,
  5705. 0x9E4E: 0x6726,
  5706. 0x9E4F: 0x6727,
  5707. 0x9E50: 0x9738,
  5708. 0x9E51: 0x672E,
  5709. 0x9E52: 0x673F,
  5710. 0x9E53: 0x6736,
  5711. 0x9E54: 0x6741,
  5712. 0x9E55: 0x6738,
  5713. 0x9E56: 0x6737,
  5714. 0x9E57: 0x6746,
  5715. 0x9E58: 0x675E,
  5716. 0x9E59: 0x6760,
  5717. 0x9E5A: 0x6759,
  5718. 0x9E5B: 0x6763,
  5719. 0x9E5C: 0x6764,
  5720. 0x9E5D: 0x6789,
  5721. 0x9E5E: 0x6770,
  5722. 0x9E5F: 0x67A9,
  5723. 0x9E60: 0x677C,
  5724. 0x9E61: 0x676A,
  5725. 0x9E62: 0x678C,
  5726. 0x9E63: 0x678B,
  5727. 0x9E64: 0x67A6,
  5728. 0x9E65: 0x67A1,
  5729. 0x9E66: 0x6785,
  5730. 0x9E67: 0x67B7,
  5731. 0x9E68: 0x67EF,
  5732. 0x9E69: 0x67B4,
  5733. 0x9E6A: 0x67EC,
  5734. 0x9E6B: 0x67B3,
  5735. 0x9E6C: 0x67E9,
  5736. 0x9E6D: 0x67B8,
  5737. 0x9E6E: 0x67E4,
  5738. 0x9E6F: 0x67DE,
  5739. 0x9E70: 0x67DD,
  5740. 0x9E71: 0x67E2,
  5741. 0x9E72: 0x67EE,
  5742. 0x9E73: 0x67B9,
  5743. 0x9E74: 0x67CE,
  5744. 0x9E75: 0x67C6,
  5745. 0x9E76: 0x67E7,
  5746. 0x9E77: 0x6A9C,
  5747. 0x9E78: 0x681E,
  5748. 0x9E79: 0x6846,
  5749. 0x9E7A: 0x6829,
  5750. 0x9E7B: 0x6840,
  5751. 0x9E7C: 0x684D,
  5752. 0x9E7D: 0x6832,
  5753. 0x9E7E: 0x684E,
  5754. 0x9E80: 0x68B3,
  5755. 0x9E81: 0x682B,
  5756. 0x9E82: 0x6859,
  5757. 0x9E83: 0x6863,
  5758. 0x9E84: 0x6877,
  5759. 0x9E85: 0x687F,
  5760. 0x9E86: 0x689F,
  5761. 0x9E87: 0x688F,
  5762. 0x9E88: 0x68AD,
  5763. 0x9E89: 0x6894,
  5764. 0x9E8A: 0x689D,
  5765. 0x9E8B: 0x689B,
  5766. 0x9E8C: 0x6883,
  5767. 0x9E8D: 0x6AAE,
  5768. 0x9E8E: 0x68B9,
  5769. 0x9E8F: 0x6874,
  5770. 0x9E90: 0x68B5,
  5771. 0x9E91: 0x68A0,
  5772. 0x9E92: 0x68BA,
  5773. 0x9E93: 0x690F,
  5774. 0x9E94: 0x688D,
  5775. 0x9E95: 0x687E,
  5776. 0x9E96: 0x6901,
  5777. 0x9E97: 0x68CA,
  5778. 0x9E98: 0x6908,
  5779. 0x9E99: 0x68D8,
  5780. 0x9E9A: 0x6922,
  5781. 0x9E9B: 0x6926,
  5782. 0x9E9C: 0x68E1,
  5783. 0x9E9D: 0x690C,
  5784. 0x9E9E: 0x68CD,
  5785. 0x9E9F: 0x68D4,
  5786. 0x9EA0: 0x68E7,
  5787. 0x9EA1: 0x68D5,
  5788. 0x9EA2: 0x6936,
  5789. 0x9EA3: 0x6912,
  5790. 0x9EA4: 0x6904,
  5791. 0x9EA5: 0x68D7,
  5792. 0x9EA6: 0x68E3,
  5793. 0x9EA7: 0x6925,
  5794. 0x9EA8: 0x68F9,
  5795. 0x9EA9: 0x68E0,
  5796. 0x9EAA: 0x68EF,
  5797. 0x9EAB: 0x6928,
  5798. 0x9EAC: 0x692A,
  5799. 0x9EAD: 0x691A,
  5800. 0x9EAE: 0x6923,
  5801. 0x9EAF: 0x6921,
  5802. 0x9EB0: 0x68C6,
  5803. 0x9EB1: 0x6979,
  5804. 0x9EB2: 0x6977,
  5805. 0x9EB3: 0x695C,
  5806. 0x9EB4: 0x6978,
  5807. 0x9EB5: 0x696B,
  5808. 0x9EB6: 0x6954,
  5809. 0x9EB7: 0x697E,
  5810. 0x9EB8: 0x696E,
  5811. 0x9EB9: 0x6939,
  5812. 0x9EBA: 0x6974,
  5813. 0x9EBB: 0x693D,
  5814. 0x9EBC: 0x6959,
  5815. 0x9EBD: 0x6930,
  5816. 0x9EBE: 0x6961,
  5817. 0x9EBF: 0x695E,
  5818. 0x9EC0: 0x695D,
  5819. 0x9EC1: 0x6981,
  5820. 0x9EC2: 0x696A,
  5821. 0x9EC3: 0x69B2,
  5822. 0x9EC4: 0x69AE,
  5823. 0x9EC5: 0x69D0,
  5824. 0x9EC6: 0x69BF,
  5825. 0x9EC7: 0x69C1,
  5826. 0x9EC8: 0x69D3,
  5827. 0x9EC9: 0x69BE,
  5828. 0x9ECA: 0x69CE,
  5829. 0x9ECB: 0x5BE8,
  5830. 0x9ECC: 0x69CA,
  5831. 0x9ECD: 0x69DD,
  5832. 0x9ECE: 0x69BB,
  5833. 0x9ECF: 0x69C3,
  5834. 0x9ED0: 0x69A7,
  5835. 0x9ED1: 0x6A2E,
  5836. 0x9ED2: 0x6991,
  5837. 0x9ED3: 0x69A0,
  5838. 0x9ED4: 0x699C,
  5839. 0x9ED5: 0x6995,
  5840. 0x9ED6: 0x69B4,
  5841. 0x9ED7: 0x69DE,
  5842. 0x9ED8: 0x69E8,
  5843. 0x9ED9: 0x6A02,
  5844. 0x9EDA: 0x6A1B,
  5845. 0x9EDB: 0x69FF,
  5846. 0x9EDC: 0x6B0A,
  5847. 0x9EDD: 0x69F9,
  5848. 0x9EDE: 0x69F2,
  5849. 0x9EDF: 0x69E7,
  5850. 0x9EE0: 0x6A05,
  5851. 0x9EE1: 0x69B1,
  5852. 0x9EE2: 0x6A1E,
  5853. 0x9EE3: 0x69ED,
  5854. 0x9EE4: 0x6A14,
  5855. 0x9EE5: 0x69EB,
  5856. 0x9EE6: 0x6A0A,
  5857. 0x9EE7: 0x6A12,
  5858. 0x9EE8: 0x6AC1,
  5859. 0x9EE9: 0x6A23,
  5860. 0x9EEA: 0x6A13,
  5861. 0x9EEB: 0x6A44,
  5862. 0x9EEC: 0x6A0C,
  5863. 0x9EED: 0x6A72,
  5864. 0x9EEE: 0x6A36,
  5865. 0x9EEF: 0x6A78,
  5866. 0x9EF0: 0x6A47,
  5867. 0x9EF1: 0x6A62,
  5868. 0x9EF2: 0x6A59,
  5869. 0x9EF3: 0x6A66,
  5870. 0x9EF4: 0x6A48,
  5871. 0x9EF5: 0x6A38,
  5872. 0x9EF6: 0x6A22,
  5873. 0x9EF7: 0x6A90,
  5874. 0x9EF8: 0x6A8D,
  5875. 0x9EF9: 0x6AA0,
  5876. 0x9EFA: 0x6A84,
  5877. 0x9EFB: 0x6AA2,
  5878. 0x9EFC: 0x6AA3,
  5879. 0x9F40: 0x6A97,
  5880. 0x9F41: 0x8617,
  5881. 0x9F42: 0x6ABB,
  5882. 0x9F43: 0x6AC3,
  5883. 0x9F44: 0x6AC2,
  5884. 0x9F45: 0x6AB8,
  5885. 0x9F46: 0x6AB3,
  5886. 0x9F47: 0x6AAC,
  5887. 0x9F48: 0x6ADE,
  5888. 0x9F49: 0x6AD1,
  5889. 0x9F4A: 0x6ADF,
  5890. 0x9F4B: 0x6AAA,
  5891. 0x9F4C: 0x6ADA,
  5892. 0x9F4D: 0x6AEA,
  5893. 0x9F4E: 0x6AFB,
  5894. 0x9F4F: 0x6B05,
  5895. 0x9F50: 0x8616,
  5896. 0x9F51: 0x6AFA,
  5897. 0x9F52: 0x6B12,
  5898. 0x9F53: 0x6B16,
  5899. 0x9F54: 0x9B31,
  5900. 0x9F55: 0x6B1F,
  5901. 0x9F56: 0x6B38,
  5902. 0x9F57: 0x6B37,
  5903. 0x9F58: 0x76DC,
  5904. 0x9F59: 0x6B39,
  5905. 0x9F5A: 0x98EE,
  5906. 0x9F5B: 0x6B47,
  5907. 0x9F5C: 0x6B43,
  5908. 0x9F5D: 0x6B49,
  5909. 0x9F5E: 0x6B50,
  5910. 0x9F5F: 0x6B59,
  5911. 0x9F60: 0x6B54,
  5912. 0x9F61: 0x6B5B,
  5913. 0x9F62: 0x6B5F,
  5914. 0x9F63: 0x6B61,
  5915. 0x9F64: 0x6B78,
  5916. 0x9F65: 0x6B79,
  5917. 0x9F66: 0x6B7F,
  5918. 0x9F67: 0x6B80,
  5919. 0x9F68: 0x6B84,
  5920. 0x9F69: 0x6B83,
  5921. 0x9F6A: 0x6B8D,
  5922. 0x9F6B: 0x6B98,
  5923. 0x9F6C: 0x6B95,
  5924. 0x9F6D: 0x6B9E,
  5925. 0x9F6E: 0x6BA4,
  5926. 0x9F6F: 0x6BAA,
  5927. 0x9F70: 0x6BAB,
  5928. 0x9F71: 0x6BAF,
  5929. 0x9F72: 0x6BB2,
  5930. 0x9F73: 0x6BB1,
  5931. 0x9F74: 0x6BB3,
  5932. 0x9F75: 0x6BB7,
  5933. 0x9F76: 0x6BBC,
  5934. 0x9F77: 0x6BC6,
  5935. 0x9F78: 0x6BCB,
  5936. 0x9F79: 0x6BD3,
  5937. 0x9F7A: 0x6BDF,
  5938. 0x9F7B: 0x6BEC,
  5939. 0x9F7C: 0x6BEB,
  5940. 0x9F7D: 0x6BF3,
  5941. 0x9F7E: 0x6BEF,
  5942. 0x9F80: 0x9EBE,
  5943. 0x9F81: 0x6C08,
  5944. 0x9F82: 0x6C13,
  5945. 0x9F83: 0x6C14,
  5946. 0x9F84: 0x6C1B,
  5947. 0x9F85: 0x6C24,
  5948. 0x9F86: 0x6C23,
  5949. 0x9F87: 0x6C5E,
  5950. 0x9F88: 0x6C55,
  5951. 0x9F89: 0x6C62,
  5952. 0x9F8A: 0x6C6A,
  5953. 0x9F8B: 0x6C82,
  5954. 0x9F8C: 0x6C8D,
  5955. 0x9F8D: 0x6C9A,
  5956. 0x9F8E: 0x6C81,
  5957. 0x9F8F: 0x6C9B,
  5958. 0x9F90: 0x6C7E,
  5959. 0x9F91: 0x6C68,
  5960. 0x9F92: 0x6C73,
  5961. 0x9F93: 0x6C92,
  5962. 0x9F94: 0x6C90,
  5963. 0x9F95: 0x6CC4,
  5964. 0x9F96: 0x6CF1,
  5965. 0x9F97: 0x6CD3,
  5966. 0x9F98: 0x6CBD,
  5967. 0x9F99: 0x6CD7,
  5968. 0x9F9A: 0x6CC5,
  5969. 0x9F9B: 0x6CDD,
  5970. 0x9F9C: 0x6CAE,
  5971. 0x9F9D: 0x6CB1,
  5972. 0x9F9E: 0x6CBE,
  5973. 0x9F9F: 0x6CBA,
  5974. 0x9FA0: 0x6CDB,
  5975. 0x9FA1: 0x6CEF,
  5976. 0x9FA2: 0x6CD9,
  5977. 0x9FA3: 0x6CEA,
  5978. 0x9FA4: 0x6D1F,
  5979. 0x9FA5: 0x884D,
  5980. 0x9FA6: 0x6D36,
  5981. 0x9FA7: 0x6D2B,
  5982. 0x9FA8: 0x6D3D,
  5983. 0x9FA9: 0x6D38,
  5984. 0x9FAA: 0x6D19,
  5985. 0x9FAB: 0x6D35,
  5986. 0x9FAC: 0x6D33,
  5987. 0x9FAD: 0x6D12,
  5988. 0x9FAE: 0x6D0C,
  5989. 0x9FAF: 0x6D63,
  5990. 0x9FB0: 0x6D93,
  5991. 0x9FB1: 0x6D64,
  5992. 0x9FB2: 0x6D5A,
  5993. 0x9FB3: 0x6D79,
  5994. 0x9FB4: 0x6D59,
  5995. 0x9FB5: 0x6D8E,
  5996. 0x9FB6: 0x6D95,
  5997. 0x9FB7: 0x6FE4,
  5998. 0x9FB8: 0x6D85,
  5999. 0x9FB9: 0x6DF9,
  6000. 0x9FBA: 0x6E15,
  6001. 0x9FBB: 0x6E0A,
  6002. 0x9FBC: 0x6DB5,
  6003. 0x9FBD: 0x6DC7,
  6004. 0x9FBE: 0x6DE6,
  6005. 0x9FBF: 0x6DB8,
  6006. 0x9FC0: 0x6DC6,
  6007. 0x9FC1: 0x6DEC,
  6008. 0x9FC2: 0x6DDE,
  6009. 0x9FC3: 0x6DCC,
  6010. 0x9FC4: 0x6DE8,
  6011. 0x9FC5: 0x6DD2,
  6012. 0x9FC6: 0x6DC5,
  6013. 0x9FC7: 0x6DFA,
  6014. 0x9FC8: 0x6DD9,
  6015. 0x9FC9: 0x6DE4,
  6016. 0x9FCA: 0x6DD5,
  6017. 0x9FCB: 0x6DEA,
  6018. 0x9FCC: 0x6DEE,
  6019. 0x9FCD: 0x6E2D,
  6020. 0x9FCE: 0x6E6E,
  6021. 0x9FCF: 0x6E2E,
  6022. 0x9FD0: 0x6E19,
  6023. 0x9FD1: 0x6E72,
  6024. 0x9FD2: 0x6E5F,
  6025. 0x9FD3: 0x6E3E,
  6026. 0x9FD4: 0x6E23,
  6027. 0x9FD5: 0x6E6B,
  6028. 0x9FD6: 0x6E2B,
  6029. 0x9FD7: 0x6E76,
  6030. 0x9FD8: 0x6E4D,
  6031. 0x9FD9: 0x6E1F,
  6032. 0x9FDA: 0x6E43,
  6033. 0x9FDB: 0x6E3A,
  6034. 0x9FDC: 0x6E4E,
  6035. 0x9FDD: 0x6E24,
  6036. 0x9FDE: 0x6EFF,
  6037. 0x9FDF: 0x6E1D,
  6038. 0x9FE0: 0x6E38,
  6039. 0x9FE1: 0x6E82,
  6040. 0x9FE2: 0x6EAA,
  6041. 0x9FE3: 0x6E98,
  6042. 0x9FE4: 0x6EC9,
  6043. 0x9FE5: 0x6EB7,
  6044. 0x9FE6: 0x6ED3,
  6045. 0x9FE7: 0x6EBD,
  6046. 0x9FE8: 0x6EAF,
  6047. 0x9FE9: 0x6EC4,
  6048. 0x9FEA: 0x6EB2,
  6049. 0x9FEB: 0x6ED4,
  6050. 0x9FEC: 0x6ED5,
  6051. 0x9FED: 0x6E8F,
  6052. 0x9FEE: 0x6EA5,
  6053. 0x9FEF: 0x6EC2,
  6054. 0x9FF0: 0x6E9F,
  6055. 0x9FF1: 0x6F41,
  6056. 0x9FF2: 0x6F11,
  6057. 0x9FF3: 0x704C,
  6058. 0x9FF4: 0x6EEC,
  6059. 0x9FF5: 0x6EF8,
  6060. 0x9FF6: 0x6EFE,
  6061. 0x9FF7: 0x6F3F,
  6062. 0x9FF8: 0x6EF2,
  6063. 0x9FF9: 0x6F31,
  6064. 0x9FFA: 0x6EEF,
  6065. 0x9FFB: 0x6F32,
  6066. 0x9FFC: 0x6ECC,
  6067. 0xA1: 0xFF61,
  6068. 0xA2: 0xFF62,
  6069. 0xA3: 0xFF63,
  6070. 0xA4: 0xFF64,
  6071. 0xA5: 0xFF65,
  6072. 0xA6: 0xFF66,
  6073. 0xA7: 0xFF67,
  6074. 0xA8: 0xFF68,
  6075. 0xA9: 0xFF69,
  6076. 0xAA: 0xFF6A,
  6077. 0xAB: 0xFF6B,
  6078. 0xAC: 0xFF6C,
  6079. 0xAD: 0xFF6D,
  6080. 0xAE: 0xFF6E,
  6081. 0xAF: 0xFF6F,
  6082. 0xB0: 0xFF70,
  6083. 0xB1: 0xFF71,
  6084. 0xB2: 0xFF72,
  6085. 0xB3: 0xFF73,
  6086. 0xB4: 0xFF74,
  6087. 0xB5: 0xFF75,
  6088. 0xB6: 0xFF76,
  6089. 0xB7: 0xFF77,
  6090. 0xB8: 0xFF78,
  6091. 0xB9: 0xFF79,
  6092. 0xBA: 0xFF7A,
  6093. 0xBB: 0xFF7B,
  6094. 0xBC: 0xFF7C,
  6095. 0xBD: 0xFF7D,
  6096. 0xBE: 0xFF7E,
  6097. 0xBF: 0xFF7F,
  6098. 0xC0: 0xFF80,
  6099. 0xC1: 0xFF81,
  6100. 0xC2: 0xFF82,
  6101. 0xC3: 0xFF83,
  6102. 0xC4: 0xFF84,
  6103. 0xC5: 0xFF85,
  6104. 0xC6: 0xFF86,
  6105. 0xC7: 0xFF87,
  6106. 0xC8: 0xFF88,
  6107. 0xC9: 0xFF89,
  6108. 0xCA: 0xFF8A,
  6109. 0xCB: 0xFF8B,
  6110. 0xCC: 0xFF8C,
  6111. 0xCD: 0xFF8D,
  6112. 0xCE: 0xFF8E,
  6113. 0xCF: 0xFF8F,
  6114. 0xD0: 0xFF90,
  6115. 0xD1: 0xFF91,
  6116. 0xD2: 0xFF92,
  6117. 0xD3: 0xFF93,
  6118. 0xD4: 0xFF94,
  6119. 0xD5: 0xFF95,
  6120. 0xD6: 0xFF96,
  6121. 0xD7: 0xFF97,
  6122. 0xD8: 0xFF98,
  6123. 0xD9: 0xFF99,
  6124. 0xDA: 0xFF9A,
  6125. 0xDB: 0xFF9B,
  6126. 0xDC: 0xFF9C,
  6127. 0xDD: 0xFF9D,
  6128. 0xDE: 0xFF9E,
  6129. 0xDF: 0xFF9F,
  6130. 0xE040: 0x6F3E,
  6131. 0xE041: 0x6F13,
  6132. 0xE042: 0x6EF7,
  6133. 0xE043: 0x6F86,
  6134. 0xE044: 0x6F7A,
  6135. 0xE045: 0x6F78,
  6136. 0xE046: 0x6F81,
  6137. 0xE047: 0x6F80,
  6138. 0xE048: 0x6F6F,
  6139. 0xE049: 0x6F5B,
  6140. 0xE04A: 0x6FF3,
  6141. 0xE04B: 0x6F6D,
  6142. 0xE04C: 0x6F82,
  6143. 0xE04D: 0x6F7C,
  6144. 0xE04E: 0x6F58,
  6145. 0xE04F: 0x6F8E,
  6146. 0xE050: 0x6F91,
  6147. 0xE051: 0x6FC2,
  6148. 0xE052: 0x6F66,
  6149. 0xE053: 0x6FB3,
  6150. 0xE054: 0x6FA3,
  6151. 0xE055: 0x6FA1,
  6152. 0xE056: 0x6FA4,
  6153. 0xE057: 0x6FB9,
  6154. 0xE058: 0x6FC6,
  6155. 0xE059: 0x6FAA,
  6156. 0xE05A: 0x6FDF,
  6157. 0xE05B: 0x6FD5,
  6158. 0xE05C: 0x6FEC,
  6159. 0xE05D: 0x6FD4,
  6160. 0xE05E: 0x6FD8,
  6161. 0xE05F: 0x6FF1,
  6162. 0xE060: 0x6FEE,
  6163. 0xE061: 0x6FDB,
  6164. 0xE062: 0x7009,
  6165. 0xE063: 0x700B,
  6166. 0xE064: 0x6FFA,
  6167. 0xE065: 0x7011,
  6168. 0xE066: 0x7001,
  6169. 0xE067: 0x700F,
  6170. 0xE068: 0x6FFE,
  6171. 0xE069: 0x701B,
  6172. 0xE06A: 0x701A,
  6173. 0xE06B: 0x6F74,
  6174. 0xE06C: 0x701D,
  6175. 0xE06D: 0x7018,
  6176. 0xE06E: 0x701F,
  6177. 0xE06F: 0x7030,
  6178. 0xE070: 0x703E,
  6179. 0xE071: 0x7032,
  6180. 0xE072: 0x7051,
  6181. 0xE073: 0x7063,
  6182. 0xE074: 0x7099,
  6183. 0xE075: 0x7092,
  6184. 0xE076: 0x70AF,
  6185. 0xE077: 0x70F1,
  6186. 0xE078: 0x70AC,
  6187. 0xE079: 0x70B8,
  6188. 0xE07A: 0x70B3,
  6189. 0xE07B: 0x70AE,
  6190. 0xE07C: 0x70DF,
  6191. 0xE07D: 0x70CB,
  6192. 0xE07E: 0x70DD,
  6193. 0xE080: 0x70D9,
  6194. 0xE081: 0x7109,
  6195. 0xE082: 0x70FD,
  6196. 0xE083: 0x711C,
  6197. 0xE084: 0x7119,
  6198. 0xE085: 0x7165,
  6199. 0xE086: 0x7155,
  6200. 0xE087: 0x7188,
  6201. 0xE088: 0x7166,
  6202. 0xE089: 0x7162,
  6203. 0xE08A: 0x714C,
  6204. 0xE08B: 0x7156,
  6205. 0xE08C: 0x716C,
  6206. 0xE08D: 0x718F,
  6207. 0xE08E: 0x71FB,
  6208. 0xE08F: 0x7184,
  6209. 0xE090: 0x7195,
  6210. 0xE091: 0x71A8,
  6211. 0xE092: 0x71AC,
  6212. 0xE093: 0x71D7,
  6213. 0xE094: 0x71B9,
  6214. 0xE095: 0x71BE,
  6215. 0xE096: 0x71D2,
  6216. 0xE097: 0x71C9,
  6217. 0xE098: 0x71D4,
  6218. 0xE099: 0x71CE,
  6219. 0xE09A: 0x71E0,
  6220. 0xE09B: 0x71EC,
  6221. 0xE09C: 0x71E7,
  6222. 0xE09D: 0x71F5,
  6223. 0xE09E: 0x71FC,
  6224. 0xE09F: 0x71F9,
  6225. 0xE0A0: 0x71FF,
  6226. 0xE0A1: 0x720D,
  6227. 0xE0A2: 0x7210,
  6228. 0xE0A3: 0x721B,
  6229. 0xE0A4: 0x7228,
  6230. 0xE0A5: 0x722D,
  6231. 0xE0A6: 0x722C,
  6232. 0xE0A7: 0x7230,
  6233. 0xE0A8: 0x7232,
  6234. 0xE0A9: 0x723B,
  6235. 0xE0AA: 0x723C,
  6236. 0xE0AB: 0x723F,
  6237. 0xE0AC: 0x7240,
  6238. 0xE0AD: 0x7246,
  6239. 0xE0AE: 0x724B,
  6240. 0xE0AF: 0x7258,
  6241. 0xE0B0: 0x7274,
  6242. 0xE0B1: 0x727E,
  6243. 0xE0B2: 0x7282,
  6244. 0xE0B3: 0x7281,
  6245. 0xE0B4: 0x7287,
  6246. 0xE0B5: 0x7292,
  6247. 0xE0B6: 0x7296,
  6248. 0xE0B7: 0x72A2,
  6249. 0xE0B8: 0x72A7,
  6250. 0xE0B9: 0x72B9,
  6251. 0xE0BA: 0x72B2,
  6252. 0xE0BB: 0x72C3,
  6253. 0xE0BC: 0x72C6,
  6254. 0xE0BD: 0x72C4,
  6255. 0xE0BE: 0x72CE,
  6256. 0xE0BF: 0x72D2,
  6257. 0xE0C0: 0x72E2,
  6258. 0xE0C1: 0x72E0,
  6259. 0xE0C2: 0x72E1,
  6260. 0xE0C3: 0x72F9,
  6261. 0xE0C4: 0x72F7,
  6262. 0xE0C5: 0x500F,
  6263. 0xE0C6: 0x7317,
  6264. 0xE0C7: 0x730A,
  6265. 0xE0C8: 0x731C,
  6266. 0xE0C9: 0x7316,
  6267. 0xE0CA: 0x731D,
  6268. 0xE0CB: 0x7334,
  6269. 0xE0CC: 0x732F,
  6270. 0xE0CD: 0x7329,
  6271. 0xE0CE: 0x7325,
  6272. 0xE0CF: 0x733E,
  6273. 0xE0D0: 0x734E,
  6274. 0xE0D1: 0x734F,
  6275. 0xE0D2: 0x9ED8,
  6276. 0xE0D3: 0x7357,
  6277. 0xE0D4: 0x736A,
  6278. 0xE0D5: 0x7368,
  6279. 0xE0D6: 0x7370,
  6280. 0xE0D7: 0x7378,
  6281. 0xE0D8: 0x7375,
  6282. 0xE0D9: 0x737B,
  6283. 0xE0DA: 0x737A,
  6284. 0xE0DB: 0x73C8,
  6285. 0xE0DC: 0x73B3,
  6286. 0xE0DD: 0x73CE,
  6287. 0xE0DE: 0x73BB,
  6288. 0xE0DF: 0x73C0,
  6289. 0xE0E0: 0x73E5,
  6290. 0xE0E1: 0x73EE,
  6291. 0xE0E2: 0x73DE,
  6292. 0xE0E3: 0x74A2,
  6293. 0xE0E4: 0x7405,
  6294. 0xE0E5: 0x746F,
  6295. 0xE0E6: 0x7425,
  6296. 0xE0E7: 0x73F8,
  6297. 0xE0E8: 0x7432,
  6298. 0xE0E9: 0x743A,
  6299. 0xE0EA: 0x7455,
  6300. 0xE0EB: 0x743F,
  6301. 0xE0EC: 0x745F,
  6302. 0xE0ED: 0x7459,
  6303. 0xE0EE: 0x7441,
  6304. 0xE0EF: 0x745C,
  6305. 0xE0F0: 0x7469,
  6306. 0xE0F1: 0x7470,
  6307. 0xE0F2: 0x7463,
  6308. 0xE0F3: 0x746A,
  6309. 0xE0F4: 0x7476,
  6310. 0xE0F5: 0x747E,
  6311. 0xE0F6: 0x748B,
  6312. 0xE0F7: 0x749E,
  6313. 0xE0F8: 0x74A7,
  6314. 0xE0F9: 0x74CA,
  6315. 0xE0FA: 0x74CF,
  6316. 0xE0FB: 0x74D4,
  6317. 0xE0FC: 0x73F1,
  6318. 0xE140: 0x74E0,
  6319. 0xE141: 0x74E3,
  6320. 0xE142: 0x74E7,
  6321. 0xE143: 0x74E9,
  6322. 0xE144: 0x74EE,
  6323. 0xE145: 0x74F2,
  6324. 0xE146: 0x74F0,
  6325. 0xE147: 0x74F1,
  6326. 0xE148: 0x74F8,
  6327. 0xE149: 0x74F7,
  6328. 0xE14A: 0x7504,
  6329. 0xE14B: 0x7503,
  6330. 0xE14C: 0x7505,
  6331. 0xE14D: 0x750C,
  6332. 0xE14E: 0x750E,
  6333. 0xE14F: 0x750D,
  6334. 0xE150: 0x7515,
  6335. 0xE151: 0x7513,
  6336. 0xE152: 0x751E,
  6337. 0xE153: 0x7526,
  6338. 0xE154: 0x752C,
  6339. 0xE155: 0x753C,
  6340. 0xE156: 0x7544,
  6341. 0xE157: 0x754D,
  6342. 0xE158: 0x754A,
  6343. 0xE159: 0x7549,
  6344. 0xE15A: 0x755B,
  6345. 0xE15B: 0x7546,
  6346. 0xE15C: 0x755A,
  6347. 0xE15D: 0x7569,
  6348. 0xE15E: 0x7564,
  6349. 0xE15F: 0x7567,
  6350. 0xE160: 0x756B,
  6351. 0xE161: 0x756D,
  6352. 0xE162: 0x7578,
  6353. 0xE163: 0x7576,
  6354. 0xE164: 0x7586,
  6355. 0xE165: 0x7587,
  6356. 0xE166: 0x7574,
  6357. 0xE167: 0x758A,
  6358. 0xE168: 0x7589,
  6359. 0xE169: 0x7582,
  6360. 0xE16A: 0x7594,
  6361. 0xE16B: 0x759A,
  6362. 0xE16C: 0x759D,
  6363. 0xE16D: 0x75A5,
  6364. 0xE16E: 0x75A3,
  6365. 0xE16F: 0x75C2,
  6366. 0xE170: 0x75B3,
  6367. 0xE171: 0x75C3,
  6368. 0xE172: 0x75B5,
  6369. 0xE173: 0x75BD,
  6370. 0xE174: 0x75B8,
  6371. 0xE175: 0x75BC,
  6372. 0xE176: 0x75B1,
  6373. 0xE177: 0x75CD,
  6374. 0xE178: 0x75CA,
  6375. 0xE179: 0x75D2,
  6376. 0xE17A: 0x75D9,
  6377. 0xE17B: 0x75E3,
  6378. 0xE17C: 0x75DE,
  6379. 0xE17D: 0x75FE,
  6380. 0xE17E: 0x75FF,
  6381. 0xE180: 0x75FC,
  6382. 0xE181: 0x7601,
  6383. 0xE182: 0x75F0,
  6384. 0xE183: 0x75FA,
  6385. 0xE184: 0x75F2,
  6386. 0xE185: 0x75F3,
  6387. 0xE186: 0x760B,
  6388. 0xE187: 0x760D,
  6389. 0xE188: 0x7609,
  6390. 0xE189: 0x761F,
  6391. 0xE18A: 0x7627,
  6392. 0xE18B: 0x7620,
  6393. 0xE18C: 0x7621,
  6394. 0xE18D: 0x7622,
  6395. 0xE18E: 0x7624,
  6396. 0xE18F: 0x7634,
  6397. 0xE190: 0x7630,
  6398. 0xE191: 0x763B,
  6399. 0xE192: 0x7647,
  6400. 0xE193: 0x7648,
  6401. 0xE194: 0x7646,
  6402. 0xE195: 0x765C,
  6403. 0xE196: 0x7658,
  6404. 0xE197: 0x7661,
  6405. 0xE198: 0x7662,
  6406. 0xE199: 0x7668,
  6407. 0xE19A: 0x7669,
  6408. 0xE19B: 0x766A,
  6409. 0xE19C: 0x7667,
  6410. 0xE19D: 0x766C,
  6411. 0xE19E: 0x7670,
  6412. 0xE19F: 0x7672,
  6413. 0xE1A0: 0x7676,
  6414. 0xE1A1: 0x7678,
  6415. 0xE1A2: 0x767C,
  6416. 0xE1A3: 0x7680,
  6417. 0xE1A4: 0x7683,
  6418. 0xE1A5: 0x7688,
  6419. 0xE1A6: 0x768B,
  6420. 0xE1A7: 0x768E,
  6421. 0xE1A8: 0x7696,
  6422. 0xE1A9: 0x7693,
  6423. 0xE1AA: 0x7699,
  6424. 0xE1AB: 0x769A,
  6425. 0xE1AC: 0x76B0,
  6426. 0xE1AD: 0x76B4,
  6427. 0xE1AE: 0x76B8,
  6428. 0xE1AF: 0x76B9,
  6429. 0xE1B0: 0x76BA,
  6430. 0xE1B1: 0x76C2,
  6431. 0xE1B2: 0x76CD,
  6432. 0xE1B3: 0x76D6,
  6433. 0xE1B4: 0x76D2,
  6434. 0xE1B5: 0x76DE,
  6435. 0xE1B6: 0x76E1,
  6436. 0xE1B7: 0x76E5,
  6437. 0xE1B8: 0x76E7,
  6438. 0xE1B9: 0x76EA,
  6439. 0xE1BA: 0x862F,
  6440. 0xE1BB: 0x76FB,
  6441. 0xE1BC: 0x7708,
  6442. 0xE1BD: 0x7707,
  6443. 0xE1BE: 0x7704,
  6444. 0xE1BF: 0x7729,
  6445. 0xE1C0: 0x7724,
  6446. 0xE1C1: 0x771E,
  6447. 0xE1C2: 0x7725,
  6448. 0xE1C3: 0x7726,
  6449. 0xE1C4: 0x771B,
  6450. 0xE1C5: 0x7737,
  6451. 0xE1C6: 0x7738,
  6452. 0xE1C7: 0x7747,
  6453. 0xE1C8: 0x775A,
  6454. 0xE1C9: 0x7768,
  6455. 0xE1CA: 0x776B,
  6456. 0xE1CB: 0x775B,
  6457. 0xE1CC: 0x7765,
  6458. 0xE1CD: 0x777F,
  6459. 0xE1CE: 0x777E,
  6460. 0xE1CF: 0x7779,
  6461. 0xE1D0: 0x778E,
  6462. 0xE1D1: 0x778B,
  6463. 0xE1D2: 0x7791,
  6464. 0xE1D3: 0x77A0,
  6465. 0xE1D4: 0x779E,
  6466. 0xE1D5: 0x77B0,
  6467. 0xE1D6: 0x77B6,
  6468. 0xE1D7: 0x77B9,
  6469. 0xE1D8: 0x77BF,
  6470. 0xE1D9: 0x77BC,
  6471. 0xE1DA: 0x77BD,
  6472. 0xE1DB: 0x77BB,
  6473. 0xE1DC: 0x77C7,
  6474. 0xE1DD: 0x77CD,
  6475. 0xE1DE: 0x77D7,
  6476. 0xE1DF: 0x77DA,
  6477. 0xE1E0: 0x77DC,
  6478. 0xE1E1: 0x77E3,
  6479. 0xE1E2: 0x77EE,
  6480. 0xE1E3: 0x77FC,
  6481. 0xE1E4: 0x780C,
  6482. 0xE1E5: 0x7812,
  6483. 0xE1E6: 0x7926,
  6484. 0xE1E7: 0x7820,
  6485. 0xE1E8: 0x792A,
  6486. 0xE1E9: 0x7845,
  6487. 0xE1EA: 0x788E,
  6488. 0xE1EB: 0x7874,
  6489. 0xE1EC: 0x7886,
  6490. 0xE1ED: 0x787C,
  6491. 0xE1EE: 0x789A,
  6492. 0xE1EF: 0x788C,
  6493. 0xE1F0: 0x78A3,
  6494. 0xE1F1: 0x78B5,
  6495. 0xE1F2: 0x78AA,
  6496. 0xE1F3: 0x78AF,
  6497. 0xE1F4: 0x78D1,
  6498. 0xE1F5: 0x78C6,
  6499. 0xE1F6: 0x78CB,
  6500. 0xE1F7: 0x78D4,
  6501. 0xE1F8: 0x78BE,
  6502. 0xE1F9: 0x78BC,
  6503. 0xE1FA: 0x78C5,
  6504. 0xE1FB: 0x78CA,
  6505. 0xE1FC: 0x78EC,
  6506. 0xE240: 0x78E7,
  6507. 0xE241: 0x78DA,
  6508. 0xE242: 0x78FD,
  6509. 0xE243: 0x78F4,
  6510. 0xE244: 0x7907,
  6511. 0xE245: 0x7912,
  6512. 0xE246: 0x7911,
  6513. 0xE247: 0x7919,
  6514. 0xE248: 0x792C,
  6515. 0xE249: 0x792B,
  6516. 0xE24A: 0x7940,
  6517. 0xE24B: 0x7960,
  6518. 0xE24C: 0x7957,
  6519. 0xE24D: 0x795F,
  6520. 0xE24E: 0x795A,
  6521. 0xE24F: 0x7955,
  6522. 0xE250: 0x7953,
  6523. 0xE251: 0x797A,
  6524. 0xE252: 0x797F,
  6525. 0xE253: 0x798A,
  6526. 0xE254: 0x799D,
  6527. 0xE255: 0x79A7,
  6528. 0xE256: 0x9F4B,
  6529. 0xE257: 0x79AA,
  6530. 0xE258: 0x79AE,
  6531. 0xE259: 0x79B3,
  6532. 0xE25A: 0x79B9,
  6533. 0xE25B: 0x79BA,
  6534. 0xE25C: 0x79C9,
  6535. 0xE25D: 0x79D5,
  6536. 0xE25E: 0x79E7,
  6537. 0xE25F: 0x79EC,
  6538. 0xE260: 0x79E1,
  6539. 0xE261: 0x79E3,
  6540. 0xE262: 0x7A08,
  6541. 0xE263: 0x7A0D,
  6542. 0xE264: 0x7A18,
  6543. 0xE265: 0x7A19,
  6544. 0xE266: 0x7A20,
  6545. 0xE267: 0x7A1F,
  6546. 0xE268: 0x7980,
  6547. 0xE269: 0x7A31,
  6548. 0xE26A: 0x7A3B,
  6549. 0xE26B: 0x7A3E,
  6550. 0xE26C: 0x7A37,
  6551. 0xE26D: 0x7A43,
  6552. 0xE26E: 0x7A57,
  6553. 0xE26F: 0x7A49,
  6554. 0xE270: 0x7A61,
  6555. 0xE271: 0x7A62,
  6556. 0xE272: 0x7A69,
  6557. 0xE273: 0x9F9D,
  6558. 0xE274: 0x7A70,
  6559. 0xE275: 0x7A79,
  6560. 0xE276: 0x7A7D,
  6561. 0xE277: 0x7A88,
  6562. 0xE278: 0x7A97,
  6563. 0xE279: 0x7A95,
  6564. 0xE27A: 0x7A98,
  6565. 0xE27B: 0x7A96,
  6566. 0xE27C: 0x7AA9,
  6567. 0xE27D: 0x7AC8,
  6568. 0xE27E: 0x7AB0,
  6569. 0xE280: 0x7AB6,
  6570. 0xE281: 0x7AC5,
  6571. 0xE282: 0x7AC4,
  6572. 0xE283: 0x7ABF,
  6573. 0xE284: 0x9083,
  6574. 0xE285: 0x7AC7,
  6575. 0xE286: 0x7ACA,
  6576. 0xE287: 0x7ACD,
  6577. 0xE288: 0x7ACF,
  6578. 0xE289: 0x7AD5,
  6579. 0xE28A: 0x7AD3,
  6580. 0xE28B: 0x7AD9,
  6581. 0xE28C: 0x7ADA,
  6582. 0xE28D: 0x7ADD,
  6583. 0xE28E: 0x7AE1,
  6584. 0xE28F: 0x7AE2,
  6585. 0xE290: 0x7AE6,
  6586. 0xE291: 0x7AED,
  6587. 0xE292: 0x7AF0,
  6588. 0xE293: 0x7B02,
  6589. 0xE294: 0x7B0F,
  6590. 0xE295: 0x7B0A,
  6591. 0xE296: 0x7B06,
  6592. 0xE297: 0x7B33,
  6593. 0xE298: 0x7B18,
  6594. 0xE299: 0x7B19,
  6595. 0xE29A: 0x7B1E,
  6596. 0xE29B: 0x7B35,
  6597. 0xE29C: 0x7B28,
  6598. 0xE29D: 0x7B36,
  6599. 0xE29E: 0x7B50,
  6600. 0xE29F: 0x7B7A,
  6601. 0xE2A0: 0x7B04,
  6602. 0xE2A1: 0x7B4D,
  6603. 0xE2A2: 0x7B0B,
  6604. 0xE2A3: 0x7B4C,
  6605. 0xE2A4: 0x7B45,
  6606. 0xE2A5: 0x7B75,
  6607. 0xE2A6: 0x7B65,
  6608. 0xE2A7: 0x7B74,
  6609. 0xE2A8: 0x7B67,
  6610. 0xE2A9: 0x7B70,
  6611. 0xE2AA: 0x7B71,
  6612. 0xE2AB: 0x7B6C,
  6613. 0xE2AC: 0x7B6E,
  6614. 0xE2AD: 0x7B9D,
  6615. 0xE2AE: 0x7B98,
  6616. 0xE2AF: 0x7B9F,
  6617. 0xE2B0: 0x7B8D,
  6618. 0xE2B1: 0x7B9C,
  6619. 0xE2B2: 0x7B9A,
  6620. 0xE2B3: 0x7B8B,
  6621. 0xE2B4: 0x7B92,
  6622. 0xE2B5: 0x7B8F,
  6623. 0xE2B6: 0x7B5D,
  6624. 0xE2B7: 0x7B99,
  6625. 0xE2B8: 0x7BCB,
  6626. 0xE2B9: 0x7BC1,
  6627. 0xE2BA: 0x7BCC,
  6628. 0xE2BB: 0x7BCF,
  6629. 0xE2BC: 0x7BB4,
  6630. 0xE2BD: 0x7BC6,
  6631. 0xE2BE: 0x7BDD,
  6632. 0xE2BF: 0x7BE9,
  6633. 0xE2C0: 0x7C11,
  6634. 0xE2C1: 0x7C14,
  6635. 0xE2C2: 0x7BE6,
  6636. 0xE2C3: 0x7BE5,
  6637. 0xE2C4: 0x7C60,
  6638. 0xE2C5: 0x7C00,
  6639. 0xE2C6: 0x7C07,
  6640. 0xE2C7: 0x7C13,
  6641. 0xE2C8: 0x7BF3,
  6642. 0xE2C9: 0x7BF7,
  6643. 0xE2CA: 0x7C17,
  6644. 0xE2CB: 0x7C0D,
  6645. 0xE2CC: 0x7BF6,
  6646. 0xE2CD: 0x7C23,
  6647. 0xE2CE: 0x7C27,
  6648. 0xE2CF: 0x7C2A,
  6649. 0xE2D0: 0x7C1F,
  6650. 0xE2D1: 0x7C37,
  6651. 0xE2D2: 0x7C2B,
  6652. 0xE2D3: 0x7C3D,
  6653. 0xE2D4: 0x7C4C,
  6654. 0xE2D5: 0x7C43,
  6655. 0xE2D6: 0x7C54,
  6656. 0xE2D7: 0x7C4F,
  6657. 0xE2D8: 0x7C40,
  6658. 0xE2D9: 0x7C50,
  6659. 0xE2DA: 0x7C58,
  6660. 0xE2DB: 0x7C5F,
  6661. 0xE2DC: 0x7C64,
  6662. 0xE2DD: 0x7C56,
  6663. 0xE2DE: 0x7C65,
  6664. 0xE2DF: 0x7C6C,
  6665. 0xE2E0: 0x7C75,
  6666. 0xE2E1: 0x7C83,
  6667. 0xE2E2: 0x7C90,
  6668. 0xE2E3: 0x7CA4,
  6669. 0xE2E4: 0x7CAD,
  6670. 0xE2E5: 0x7CA2,
  6671. 0xE2E6: 0x7CAB,
  6672. 0xE2E7: 0x7CA1,
  6673. 0xE2E8: 0x7CA8,
  6674. 0xE2E9: 0x7CB3,
  6675. 0xE2EA: 0x7CB2,
  6676. 0xE2EB: 0x7CB1,
  6677. 0xE2EC: 0x7CAE,
  6678. 0xE2ED: 0x7CB9,
  6679. 0xE2EE: 0x7CBD,
  6680. 0xE2EF: 0x7CC0,
  6681. 0xE2F0: 0x7CC5,
  6682. 0xE2F1: 0x7CC2,
  6683. 0xE2F2: 0x7CD8,
  6684. 0xE2F3: 0x7CD2,
  6685. 0xE2F4: 0x7CDC,
  6686. 0xE2F5: 0x7CE2,
  6687. 0xE2F6: 0x9B3B,
  6688. 0xE2F7: 0x7CEF,
  6689. 0xE2F8: 0x7CF2,
  6690. 0xE2F9: 0x7CF4,
  6691. 0xE2FA: 0x7CF6,
  6692. 0xE2FB: 0x7CFA,
  6693. 0xE2FC: 0x7D06,
  6694. 0xE340: 0x7D02,
  6695. 0xE341: 0x7D1C,
  6696. 0xE342: 0x7D15,
  6697. 0xE343: 0x7D0A,
  6698. 0xE344: 0x7D45,
  6699. 0xE345: 0x7D4B,
  6700. 0xE346: 0x7D2E,
  6701. 0xE347: 0x7D32,
  6702. 0xE348: 0x7D3F,
  6703. 0xE349: 0x7D35,
  6704. 0xE34A: 0x7D46,
  6705. 0xE34B: 0x7D73,
  6706. 0xE34C: 0x7D56,
  6707. 0xE34D: 0x7D4E,
  6708. 0xE34E: 0x7D72,
  6709. 0xE34F: 0x7D68,
  6710. 0xE350: 0x7D6E,
  6711. 0xE351: 0x7D4F,
  6712. 0xE352: 0x7D63,
  6713. 0xE353: 0x7D93,
  6714. 0xE354: 0x7D89,
  6715. 0xE355: 0x7D5B,
  6716. 0xE356: 0x7D8F,
  6717. 0xE357: 0x7D7D,
  6718. 0xE358: 0x7D9B,
  6719. 0xE359: 0x7DBA,
  6720. 0xE35A: 0x7DAE,
  6721. 0xE35B: 0x7DA3,
  6722. 0xE35C: 0x7DB5,
  6723. 0xE35D: 0x7DC7,
  6724. 0xE35E: 0x7DBD,
  6725. 0xE35F: 0x7DAB,
  6726. 0xE360: 0x7E3D,
  6727. 0xE361: 0x7DA2,
  6728. 0xE362: 0x7DAF,
  6729. 0xE363: 0x7DDC,
  6730. 0xE364: 0x7DB8,
  6731. 0xE365: 0x7D9F,
  6732. 0xE366: 0x7DB0,
  6733. 0xE367: 0x7DD8,
  6734. 0xE368: 0x7DDD,
  6735. 0xE369: 0x7DE4,
  6736. 0xE36A: 0x7DDE,
  6737. 0xE36B: 0x7DFB,
  6738. 0xE36C: 0x7DF2,
  6739. 0xE36D: 0x7DE1,
  6740. 0xE36E: 0x7E05,
  6741. 0xE36F: 0x7E0A,
  6742. 0xE370: 0x7E23,
  6743. 0xE371: 0x7E21,
  6744. 0xE372: 0x7E12,
  6745. 0xE373: 0x7E31,
  6746. 0xE374: 0x7E1F,
  6747. 0xE375: 0x7E09,
  6748. 0xE376: 0x7E0B,
  6749. 0xE377: 0x7E22,
  6750. 0xE378: 0x7E46,
  6751. 0xE379: 0x7E66,
  6752. 0xE37A: 0x7E3B,
  6753. 0xE37B: 0x7E35,
  6754. 0xE37C: 0x7E39,
  6755. 0xE37D: 0x7E43,
  6756. 0xE37E: 0x7E37,
  6757. 0xE380: 0x7E32,
  6758. 0xE381: 0x7E3A,
  6759. 0xE382: 0x7E67,
  6760. 0xE383: 0x7E5D,
  6761. 0xE384: 0x7E56,
  6762. 0xE385: 0x7E5E,
  6763. 0xE386: 0x7E59,
  6764. 0xE387: 0x7E5A,
  6765. 0xE388: 0x7E79,
  6766. 0xE389: 0x7E6A,
  6767. 0xE38A: 0x7E69,
  6768. 0xE38B: 0x7E7C,
  6769. 0xE38C: 0x7E7B,
  6770. 0xE38D: 0x7E83,
  6771. 0xE38E: 0x7DD5,
  6772. 0xE38F: 0x7E7D,
  6773. 0xE390: 0x8FAE,
  6774. 0xE391: 0x7E7F,
  6775. 0xE392: 0x7E88,
  6776. 0xE393: 0x7E89,
  6777. 0xE394: 0x7E8C,
  6778. 0xE395: 0x7E92,
  6779. 0xE396: 0x7E90,
  6780. 0xE397: 0x7E93,
  6781. 0xE398: 0x7E94,
  6782. 0xE399: 0x7E96,
  6783. 0xE39A: 0x7E8E,
  6784. 0xE39B: 0x7E9B,
  6785. 0xE39C: 0x7E9C,
  6786. 0xE39D: 0x7F38,
  6787. 0xE39E: 0x7F3A,
  6788. 0xE39F: 0x7F45,
  6789. 0xE3A0: 0x7F4C,
  6790. 0xE3A1: 0x7F4D,
  6791. 0xE3A2: 0x7F4E,
  6792. 0xE3A3: 0x7F50,
  6793. 0xE3A4: 0x7F51,
  6794. 0xE3A5: 0x7F55,
  6795. 0xE3A6: 0x7F54,
  6796. 0xE3A7: 0x7F58,
  6797. 0xE3A8: 0x7F5F,
  6798. 0xE3A9: 0x7F60,
  6799. 0xE3AA: 0x7F68,
  6800. 0xE3AB: 0x7F69,
  6801. 0xE3AC: 0x7F67,
  6802. 0xE3AD: 0x7F78,
  6803. 0xE3AE: 0x7F82,
  6804. 0xE3AF: 0x7F86,
  6805. 0xE3B0: 0x7F83,
  6806. 0xE3B1: 0x7F88,
  6807. 0xE3B2: 0x7F87,
  6808. 0xE3B3: 0x7F8C,
  6809. 0xE3B4: 0x7F94,
  6810. 0xE3B5: 0x7F9E,
  6811. 0xE3B6: 0x7F9D,
  6812. 0xE3B7: 0x7F9A,
  6813. 0xE3B8: 0x7FA3,
  6814. 0xE3B9: 0x7FAF,
  6815. 0xE3BA: 0x7FB2,
  6816. 0xE3BB: 0x7FB9,
  6817. 0xE3BC: 0x7FAE,
  6818. 0xE3BD: 0x7FB6,
  6819. 0xE3BE: 0x7FB8,
  6820. 0xE3BF: 0x8B71,
  6821. 0xE3C0: 0x7FC5,
  6822. 0xE3C1: 0x7FC6,
  6823. 0xE3C2: 0x7FCA,
  6824. 0xE3C3: 0x7FD5,
  6825. 0xE3C4: 0x7FD4,
  6826. 0xE3C5: 0x7FE1,
  6827. 0xE3C6: 0x7FE6,
  6828. 0xE3C7: 0x7FE9,
  6829. 0xE3C8: 0x7FF3,
  6830. 0xE3C9: 0x7FF9,
  6831. 0xE3CA: 0x98DC,
  6832. 0xE3CB: 0x8006,
  6833. 0xE3CC: 0x8004,
  6834. 0xE3CD: 0x800B,
  6835. 0xE3CE: 0x8012,
  6836. 0xE3CF: 0x8018,
  6837. 0xE3D0: 0x8019,
  6838. 0xE3D1: 0x801C,
  6839. 0xE3D2: 0x8021,
  6840. 0xE3D3: 0x8028,
  6841. 0xE3D4: 0x803F,
  6842. 0xE3D5: 0x803B,
  6843. 0xE3D6: 0x804A,
  6844. 0xE3D7: 0x8046,
  6845. 0xE3D8: 0x8052,
  6846. 0xE3D9: 0x8058,
  6847. 0xE3DA: 0x805A,
  6848. 0xE3DB: 0x805F,
  6849. 0xE3DC: 0x8062,
  6850. 0xE3DD: 0x8068,
  6851. 0xE3DE: 0x8073,
  6852. 0xE3DF: 0x8072,
  6853. 0xE3E0: 0x8070,
  6854. 0xE3E1: 0x8076,
  6855. 0xE3E2: 0x8079,
  6856. 0xE3E3: 0x807D,
  6857. 0xE3E4: 0x807F,
  6858. 0xE3E5: 0x8084,
  6859. 0xE3E6: 0x8086,
  6860. 0xE3E7: 0x8085,
  6861. 0xE3E8: 0x809B,
  6862. 0xE3E9: 0x8093,
  6863. 0xE3EA: 0x809A,
  6864. 0xE3EB: 0x80AD,
  6865. 0xE3EC: 0x5190,
  6866. 0xE3ED: 0x80AC,
  6867. 0xE3EE: 0x80DB,
  6868. 0xE3EF: 0x80E5,
  6869. 0xE3F0: 0x80D9,
  6870. 0xE3F1: 0x80DD,
  6871. 0xE3F2: 0x80C4,
  6872. 0xE3F3: 0x80DA,
  6873. 0xE3F4: 0x80D6,
  6874. 0xE3F5: 0x8109,
  6875. 0xE3F6: 0x80EF,
  6876. 0xE3F7: 0x80F1,
  6877. 0xE3F8: 0x811B,
  6878. 0xE3F9: 0x8129,
  6879. 0xE3FA: 0x8123,
  6880. 0xE3FB: 0x812F,
  6881. 0xE3FC: 0x814B,
  6882. 0xE440: 0x968B,
  6883. 0xE441: 0x8146,
  6884. 0xE442: 0x813E,
  6885. 0xE443: 0x8153,
  6886. 0xE444: 0x8151,
  6887. 0xE445: 0x80FC,
  6888. 0xE446: 0x8171,
  6889. 0xE447: 0x816E,
  6890. 0xE448: 0x8165,
  6891. 0xE449: 0x8166,
  6892. 0xE44A: 0x8174,
  6893. 0xE44B: 0x8183,
  6894. 0xE44C: 0x8188,
  6895. 0xE44D: 0x818A,
  6896. 0xE44E: 0x8180,
  6897. 0xE44F: 0x8182,
  6898. 0xE450: 0x81A0,
  6899. 0xE451: 0x8195,
  6900. 0xE452: 0x81A4,
  6901. 0xE453: 0x81A3,
  6902. 0xE454: 0x815F,
  6903. 0xE455: 0x8193,
  6904. 0xE456: 0x81A9,
  6905. 0xE457: 0x81B0,
  6906. 0xE458: 0x81B5,
  6907. 0xE459: 0x81BE,
  6908. 0xE45A: 0x81B8,
  6909. 0xE45B: 0x81BD,
  6910. 0xE45C: 0x81C0,
  6911. 0xE45D: 0x81C2,
  6912. 0xE45E: 0x81BA,
  6913. 0xE45F: 0x81C9,
  6914. 0xE460: 0x81CD,
  6915. 0xE461: 0x81D1,
  6916. 0xE462: 0x81D9,
  6917. 0xE463: 0x81D8,
  6918. 0xE464: 0x81C8,
  6919. 0xE465: 0x81DA,
  6920. 0xE466: 0x81DF,
  6921. 0xE467: 0x81E0,
  6922. 0xE468: 0x81E7,
  6923. 0xE469: 0x81FA,
  6924. 0xE46A: 0x81FB,
  6925. 0xE46B: 0x81FE,
  6926. 0xE46C: 0x8201,
  6927. 0xE46D: 0x8202,
  6928. 0xE46E: 0x8205,
  6929. 0xE46F: 0x8207,
  6930. 0xE470: 0x820A,
  6931. 0xE471: 0x820D,
  6932. 0xE472: 0x8210,
  6933. 0xE473: 0x8216,
  6934. 0xE474: 0x8229,
  6935. 0xE475: 0x822B,
  6936. 0xE476: 0x8238,
  6937. 0xE477: 0x8233,
  6938. 0xE478: 0x8240,
  6939. 0xE479: 0x8259,
  6940. 0xE47A: 0x8258,
  6941. 0xE47B: 0x825D,
  6942. 0xE47C: 0x825A,
  6943. 0xE47D: 0x825F,
  6944. 0xE47E: 0x8264,
  6945. 0xE480: 0x8262,
  6946. 0xE481: 0x8268,
  6947. 0xE482: 0x826A,
  6948. 0xE483: 0x826B,
  6949. 0xE484: 0x822E,
  6950. 0xE485: 0x8271,
  6951. 0xE486: 0x8277,
  6952. 0xE487: 0x8278,
  6953. 0xE488: 0x827E,
  6954. 0xE489: 0x828D,
  6955. 0xE48A: 0x8292,
  6956. 0xE48B: 0x82AB,
  6957. 0xE48C: 0x829F,
  6958. 0xE48D: 0x82BB,
  6959. 0xE48E: 0x82AC,
  6960. 0xE48F: 0x82E1,
  6961. 0xE490: 0x82E3,
  6962. 0xE491: 0x82DF,
  6963. 0xE492: 0x82D2,
  6964. 0xE493: 0x82F4,
  6965. 0xE494: 0x82F3,
  6966. 0xE495: 0x82FA,
  6967. 0xE496: 0x8393,
  6968. 0xE497: 0x8303,
  6969. 0xE498: 0x82FB,
  6970. 0xE499: 0x82F9,
  6971. 0xE49A: 0x82DE,
  6972. 0xE49B: 0x8306,
  6973. 0xE49C: 0x82DC,
  6974. 0xE49D: 0x8309,
  6975. 0xE49E: 0x82D9,
  6976. 0xE49F: 0x8335,
  6977. 0xE4A0: 0x8334,
  6978. 0xE4A1: 0x8316,
  6979. 0xE4A2: 0x8332,
  6980. 0xE4A3: 0x8331,
  6981. 0xE4A4: 0x8340,
  6982. 0xE4A5: 0x8339,
  6983. 0xE4A6: 0x8350,
  6984. 0xE4A7: 0x8345,
  6985. 0xE4A8: 0x832F,
  6986. 0xE4A9: 0x832B,
  6987. 0xE4AA: 0x8317,
  6988. 0xE4AB: 0x8318,
  6989. 0xE4AC: 0x8385,
  6990. 0xE4AD: 0x839A,
  6991. 0xE4AE: 0x83AA,
  6992. 0xE4AF: 0x839F,
  6993. 0xE4B0: 0x83A2,
  6994. 0xE4B1: 0x8396,
  6995. 0xE4B2: 0x8323,
  6996. 0xE4B3: 0x838E,
  6997. 0xE4B4: 0x8387,
  6998. 0xE4B5: 0x838A,
  6999. 0xE4B6: 0x837C,
  7000. 0xE4B7: 0x83B5,
  7001. 0xE4B8: 0x8373,
  7002. 0xE4B9: 0x8375,
  7003. 0xE4BA: 0x83A0,
  7004. 0xE4BB: 0x8389,
  7005. 0xE4BC: 0x83A8,
  7006. 0xE4BD: 0x83F4,
  7007. 0xE4BE: 0x8413,
  7008. 0xE4BF: 0x83EB,
  7009. 0xE4C0: 0x83CE,
  7010. 0xE4C1: 0x83FD,
  7011. 0xE4C2: 0x8403,
  7012. 0xE4C3: 0x83D8,
  7013. 0xE4C4: 0x840B,
  7014. 0xE4C5: 0x83C1,
  7015. 0xE4C6: 0x83F7,
  7016. 0xE4C7: 0x8407,
  7017. 0xE4C8: 0x83E0,
  7018. 0xE4C9: 0x83F2,
  7019. 0xE4CA: 0x840D,
  7020. 0xE4CB: 0x8422,
  7021. 0xE4CC: 0x8420,
  7022. 0xE4CD: 0x83BD,
  7023. 0xE4CE: 0x8438,
  7024. 0xE4CF: 0x8506,
  7025. 0xE4D0: 0x83FB,
  7026. 0xE4D1: 0x846D,
  7027. 0xE4D2: 0x842A,
  7028. 0xE4D3: 0x843C,
  7029. 0xE4D4: 0x855A,
  7030. 0xE4D5: 0x8484,
  7031. 0xE4D6: 0x8477,
  7032. 0xE4D7: 0x846B,
  7033. 0xE4D8: 0x84AD,
  7034. 0xE4D9: 0x846E,
  7035. 0xE4DA: 0x8482,
  7036. 0xE4DB: 0x8469,
  7037. 0xE4DC: 0x8446,
  7038. 0xE4DD: 0x842C,
  7039. 0xE4DE: 0x846F,
  7040. 0xE4DF: 0x8479,
  7041. 0xE4E0: 0x8435,
  7042. 0xE4E1: 0x84CA,
  7043. 0xE4E2: 0x8462,
  7044. 0xE4E3: 0x84B9,
  7045. 0xE4E4: 0x84BF,
  7046. 0xE4E5: 0x849F,
  7047. 0xE4E6: 0x84D9,
  7048. 0xE4E7: 0x84CD,
  7049. 0xE4E8: 0x84BB,
  7050. 0xE4E9: 0x84DA,
  7051. 0xE4EA: 0x84D0,
  7052. 0xE4EB: 0x84C1,
  7053. 0xE4EC: 0x84C6,
  7054. 0xE4ED: 0x84D6,
  7055. 0xE4EE: 0x84A1,
  7056. 0xE4EF: 0x8521,
  7057. 0xE4F0: 0x84FF,
  7058. 0xE4F1: 0x84F4,
  7059. 0xE4F2: 0x8517,
  7060. 0xE4F3: 0x8518,
  7061. 0xE4F4: 0x852C,
  7062. 0xE4F5: 0x851F,
  7063. 0xE4F6: 0x8515,
  7064. 0xE4F7: 0x8514,
  7065. 0xE4F8: 0x84FC,
  7066. 0xE4F9: 0x8540,
  7067. 0xE4FA: 0x8563,
  7068. 0xE4FB: 0x8558,
  7069. 0xE4FC: 0x8548,
  7070. 0xE540: 0x8541,
  7071. 0xE541: 0x8602,
  7072. 0xE542: 0x854B,
  7073. 0xE543: 0x8555,
  7074. 0xE544: 0x8580,
  7075. 0xE545: 0x85A4,
  7076. 0xE546: 0x8588,
  7077. 0xE547: 0x8591,
  7078. 0xE548: 0x858A,
  7079. 0xE549: 0x85A8,
  7080. 0xE54A: 0x856D,
  7081. 0xE54B: 0x8594,
  7082. 0xE54C: 0x859B,
  7083. 0xE54D: 0x85EA,
  7084. 0xE54E: 0x8587,
  7085. 0xE54F: 0x859C,
  7086. 0xE550: 0x8577,
  7087. 0xE551: 0x857E,
  7088. 0xE552: 0x8590,
  7089. 0xE553: 0x85C9,
  7090. 0xE554: 0x85BA,
  7091. 0xE555: 0x85CF,
  7092. 0xE556: 0x85B9,
  7093. 0xE557: 0x85D0,
  7094. 0xE558: 0x85D5,
  7095. 0xE559: 0x85DD,
  7096. 0xE55A: 0x85E5,
  7097. 0xE55B: 0x85DC,
  7098. 0xE55C: 0x85F9,
  7099. 0xE55D: 0x860A,
  7100. 0xE55E: 0x8613,
  7101. 0xE55F: 0x860B,
  7102. 0xE560: 0x85FE,
  7103. 0xE561: 0x85FA,
  7104. 0xE562: 0x8606,
  7105. 0xE563: 0x8622,
  7106. 0xE564: 0x861A,
  7107. 0xE565: 0x8630,
  7108. 0xE566: 0x863F,
  7109. 0xE567: 0x864D,
  7110. 0xE568: 0x4E55,
  7111. 0xE569: 0x8654,
  7112. 0xE56A: 0x865F,
  7113. 0xE56B: 0x8667,
  7114. 0xE56C: 0x8671,
  7115. 0xE56D: 0x8693,
  7116. 0xE56E: 0x86A3,
  7117. 0xE56F: 0x86A9,
  7118. 0xE570: 0x86AA,
  7119. 0xE571: 0x868B,
  7120. 0xE572: 0x868C,
  7121. 0xE573: 0x86B6,
  7122. 0xE574: 0x86AF,
  7123. 0xE575: 0x86C4,
  7124. 0xE576: 0x86C6,
  7125. 0xE577: 0x86B0,
  7126. 0xE578: 0x86C9,
  7127. 0xE579: 0x8823,
  7128. 0xE57A: 0x86AB,
  7129. 0xE57B: 0x86D4,
  7130. 0xE57C: 0x86DE,
  7131. 0xE57D: 0x86E9,
  7132. 0xE57E: 0x86EC,
  7133. 0xE580: 0x86DF,
  7134. 0xE581: 0x86DB,
  7135. 0xE582: 0x86EF,
  7136. 0xE583: 0x8712,
  7137. 0xE584: 0x8706,
  7138. 0xE585: 0x8708,
  7139. 0xE586: 0x8700,
  7140. 0xE587: 0x8703,
  7141. 0xE588: 0x86FB,
  7142. 0xE589: 0x8711,
  7143. 0xE58A: 0x8709,
  7144. 0xE58B: 0x870D,
  7145. 0xE58C: 0x86F9,
  7146. 0xE58D: 0x870A,
  7147. 0xE58E: 0x8734,
  7148. 0xE58F: 0x873F,
  7149. 0xE590: 0x8737,
  7150. 0xE591: 0x873B,
  7151. 0xE592: 0x8725,
  7152. 0xE593: 0x8729,
  7153. 0xE594: 0x871A,
  7154. 0xE595: 0x8760,
  7155. 0xE596: 0x875F,
  7156. 0xE597: 0x8778,
  7157. 0xE598: 0x874C,
  7158. 0xE599: 0x874E,
  7159. 0xE59A: 0x8774,
  7160. 0xE59B: 0x8757,
  7161. 0xE59C: 0x8768,
  7162. 0xE59D: 0x876E,
  7163. 0xE59E: 0x8759,
  7164. 0xE59F: 0x8753,
  7165. 0xE5A0: 0x8763,
  7166. 0xE5A1: 0x876A,
  7167. 0xE5A2: 0x8805,
  7168. 0xE5A3: 0x87A2,
  7169. 0xE5A4: 0x879F,
  7170. 0xE5A5: 0x8782,
  7171. 0xE5A6: 0x87AF,
  7172. 0xE5A7: 0x87CB,
  7173. 0xE5A8: 0x87BD,
  7174. 0xE5A9: 0x87C0,
  7175. 0xE5AA: 0x87D0,
  7176. 0xE5AB: 0x96D6,
  7177. 0xE5AC: 0x87AB,
  7178. 0xE5AD: 0x87C4,
  7179. 0xE5AE: 0x87B3,
  7180. 0xE5AF: 0x87C7,
  7181. 0xE5B0: 0x87C6,
  7182. 0xE5B1: 0x87BB,
  7183. 0xE5B2: 0x87EF,
  7184. 0xE5B3: 0x87F2,
  7185. 0xE5B4: 0x87E0,
  7186. 0xE5B5: 0x880F,
  7187. 0xE5B6: 0x880D,
  7188. 0xE5B7: 0x87FE,
  7189. 0xE5B8: 0x87F6,
  7190. 0xE5B9: 0x87F7,
  7191. 0xE5BA: 0x880E,
  7192. 0xE5BB: 0x87D2,
  7193. 0xE5BC: 0x8811,
  7194. 0xE5BD: 0x8816,
  7195. 0xE5BE: 0x8815,
  7196. 0xE5BF: 0x8822,
  7197. 0xE5C0: 0x8821,
  7198. 0xE5C1: 0x8831,
  7199. 0xE5C2: 0x8836,
  7200. 0xE5C3: 0x8839,
  7201. 0xE5C4: 0x8827,
  7202. 0xE5C5: 0x883B,
  7203. 0xE5C6: 0x8844,
  7204. 0xE5C7: 0x8842,
  7205. 0xE5C8: 0x8852,
  7206. 0xE5C9: 0x8859,
  7207. 0xE5CA: 0x885E,
  7208. 0xE5CB: 0x8862,
  7209. 0xE5CC: 0x886B,
  7210. 0xE5CD: 0x8881,
  7211. 0xE5CE: 0x887E,
  7212. 0xE5CF: 0x889E,
  7213. 0xE5D0: 0x8875,
  7214. 0xE5D1: 0x887D,
  7215. 0xE5D2: 0x88B5,
  7216. 0xE5D3: 0x8872,
  7217. 0xE5D4: 0x8882,
  7218. 0xE5D5: 0x8897,
  7219. 0xE5D6: 0x8892,
  7220. 0xE5D7: 0x88AE,
  7221. 0xE5D8: 0x8899,
  7222. 0xE5D9: 0x88A2,
  7223. 0xE5DA: 0x888D,
  7224. 0xE5DB: 0x88A4,
  7225. 0xE5DC: 0x88B0,
  7226. 0xE5DD: 0x88BF,
  7227. 0xE5DE: 0x88B1,
  7228. 0xE5DF: 0x88C3,
  7229. 0xE5E0: 0x88C4,
  7230. 0xE5E1: 0x88D4,
  7231. 0xE5E2: 0x88D8,
  7232. 0xE5E3: 0x88D9,
  7233. 0xE5E4: 0x88DD,
  7234. 0xE5E5: 0x88F9,
  7235. 0xE5E6: 0x8902,
  7236. 0xE5E7: 0x88FC,
  7237. 0xE5E8: 0x88F4,
  7238. 0xE5E9: 0x88E8,
  7239. 0xE5EA: 0x88F2,
  7240. 0xE5EB: 0x8904,
  7241. 0xE5EC: 0x890C,
  7242. 0xE5ED: 0x890A,
  7243. 0xE5EE: 0x8913,
  7244. 0xE5EF: 0x8943,
  7245. 0xE5F0: 0x891E,
  7246. 0xE5F1: 0x8925,
  7247. 0xE5F2: 0x892A,
  7248. 0xE5F3: 0x892B,
  7249. 0xE5F4: 0x8941,
  7250. 0xE5F5: 0x8944,
  7251. 0xE5F6: 0x893B,
  7252. 0xE5F7: 0x8936,
  7253. 0xE5F8: 0x8938,
  7254. 0xE5F9: 0x894C,
  7255. 0xE5FA: 0x891D,
  7256. 0xE5FB: 0x8960,
  7257. 0xE5FC: 0x895E,
  7258. 0xE640: 0x8966,
  7259. 0xE641: 0x8964,
  7260. 0xE642: 0x896D,
  7261. 0xE643: 0x896A,
  7262. 0xE644: 0x896F,
  7263. 0xE645: 0x8974,
  7264. 0xE646: 0x8977,
  7265. 0xE647: 0x897E,
  7266. 0xE648: 0x8983,
  7267. 0xE649: 0x8988,
  7268. 0xE64A: 0x898A,
  7269. 0xE64B: 0x8993,
  7270. 0xE64C: 0x8998,
  7271. 0xE64D: 0x89A1,
  7272. 0xE64E: 0x89A9,
  7273. 0xE64F: 0x89A6,
  7274. 0xE650: 0x89AC,
  7275. 0xE651: 0x89AF,
  7276. 0xE652: 0x89B2,
  7277. 0xE653: 0x89BA,
  7278. 0xE654: 0x89BD,
  7279. 0xE655: 0x89BF,
  7280. 0xE656: 0x89C0,
  7281. 0xE657: 0x89DA,
  7282. 0xE658: 0x89DC,
  7283. 0xE659: 0x89DD,
  7284. 0xE65A: 0x89E7,
  7285. 0xE65B: 0x89F4,
  7286. 0xE65C: 0x89F8,
  7287. 0xE65D: 0x8A03,
  7288. 0xE65E: 0x8A16,
  7289. 0xE65F: 0x8A10,
  7290. 0xE660: 0x8A0C,
  7291. 0xE661: 0x8A1B,
  7292. 0xE662: 0x8A1D,
  7293. 0xE663: 0x8A25,
  7294. 0xE664: 0x8A36,
  7295. 0xE665: 0x8A41,
  7296. 0xE666: 0x8A5B,
  7297. 0xE667: 0x8A52,
  7298. 0xE668: 0x8A46,
  7299. 0xE669: 0x8A48,
  7300. 0xE66A: 0x8A7C,
  7301. 0xE66B: 0x8A6D,
  7302. 0xE66C: 0x8A6C,
  7303. 0xE66D: 0x8A62,
  7304. 0xE66E: 0x8A85,
  7305. 0xE66F: 0x8A82,
  7306. 0xE670: 0x8A84,
  7307. 0xE671: 0x8AA8,
  7308. 0xE672: 0x8AA1,
  7309. 0xE673: 0x8A91,
  7310. 0xE674: 0x8AA5,
  7311. 0xE675: 0x8AA6,
  7312. 0xE676: 0x8A9A,
  7313. 0xE677: 0x8AA3,
  7314. 0xE678: 0x8AC4,
  7315. 0xE679: 0x8ACD,
  7316. 0xE67A: 0x8AC2,
  7317. 0xE67B: 0x8ADA,
  7318. 0xE67C: 0x8AEB,
  7319. 0xE67D: 0x8AF3,
  7320. 0xE67E: 0x8AE7,
  7321. 0xE680: 0x8AE4,
  7322. 0xE681: 0x8AF1,
  7323. 0xE682: 0x8B14,
  7324. 0xE683: 0x8AE0,
  7325. 0xE684: 0x8AE2,
  7326. 0xE685: 0x8AF7,
  7327. 0xE686: 0x8ADE,
  7328. 0xE687: 0x8ADB,
  7329. 0xE688: 0x8B0C,
  7330. 0xE689: 0x8B07,
  7331. 0xE68A: 0x8B1A,
  7332. 0xE68B: 0x8AE1,
  7333. 0xE68C: 0x8B16,
  7334. 0xE68D: 0x8B10,
  7335. 0xE68E: 0x8B17,
  7336. 0xE68F: 0x8B20,
  7337. 0xE690: 0x8B33,
  7338. 0xE691: 0x97AB,
  7339. 0xE692: 0x8B26,
  7340. 0xE693: 0x8B2B,
  7341. 0xE694: 0x8B3E,
  7342. 0xE695: 0x8B28,
  7343. 0xE696: 0x8B41,
  7344. 0xE697: 0x8B4C,
  7345. 0xE698: 0x8B4F,
  7346. 0xE699: 0x8B4E,
  7347. 0xE69A: 0x8B49,
  7348. 0xE69B: 0x8B56,
  7349. 0xE69C: 0x8B5B,
  7350. 0xE69D: 0x8B5A,
  7351. 0xE69E: 0x8B6B,
  7352. 0xE69F: 0x8B5F,
  7353. 0xE6A0: 0x8B6C,
  7354. 0xE6A1: 0x8B6F,
  7355. 0xE6A2: 0x8B74,
  7356. 0xE6A3: 0x8B7D,
  7357. 0xE6A4: 0x8B80,
  7358. 0xE6A5: 0x8B8C,
  7359. 0xE6A6: 0x8B8E,
  7360. 0xE6A7: 0x8B92,
  7361. 0xE6A8: 0x8B93,
  7362. 0xE6A9: 0x8B96,
  7363. 0xE6AA: 0x8B99,
  7364. 0xE6AB: 0x8B9A,
  7365. 0xE6AC: 0x8C3A,
  7366. 0xE6AD: 0x8C41,
  7367. 0xE6AE: 0x8C3F,
  7368. 0xE6AF: 0x8C48,
  7369. 0xE6B0: 0x8C4C,
  7370. 0xE6B1: 0x8C4E,
  7371. 0xE6B2: 0x8C50,
  7372. 0xE6B3: 0x8C55,
  7373. 0xE6B4: 0x8C62,
  7374. 0xE6B5: 0x8C6C,
  7375. 0xE6B6: 0x8C78,
  7376. 0xE6B7: 0x8C7A,
  7377. 0xE6B8: 0x8C82,
  7378. 0xE6B9: 0x8C89,
  7379. 0xE6BA: 0x8C85,
  7380. 0xE6BB: 0x8C8A,
  7381. 0xE6BC: 0x8C8D,
  7382. 0xE6BD: 0x8C8E,
  7383. 0xE6BE: 0x8C94,
  7384. 0xE6BF: 0x8C7C,
  7385. 0xE6C0: 0x8C98,
  7386. 0xE6C1: 0x621D,
  7387. 0xE6C2: 0x8CAD,
  7388. 0xE6C3: 0x8CAA,
  7389. 0xE6C4: 0x8CBD,
  7390. 0xE6C5: 0x8CB2,
  7391. 0xE6C6: 0x8CB3,
  7392. 0xE6C7: 0x8CAE,
  7393. 0xE6C8: 0x8CB6,
  7394. 0xE6C9: 0x8CC8,
  7395. 0xE6CA: 0x8CC1,
  7396. 0xE6CB: 0x8CE4,
  7397. 0xE6CC: 0x8CE3,
  7398. 0xE6CD: 0x8CDA,
  7399. 0xE6CE: 0x8CFD,
  7400. 0xE6CF: 0x8CFA,
  7401. 0xE6D0: 0x8CFB,
  7402. 0xE6D1: 0x8D04,
  7403. 0xE6D2: 0x8D05,
  7404. 0xE6D3: 0x8D0A,
  7405. 0xE6D4: 0x8D07,
  7406. 0xE6D5: 0x8D0F,
  7407. 0xE6D6: 0x8D0D,
  7408. 0xE6D7: 0x8D10,
  7409. 0xE6D8: 0x9F4E,
  7410. 0xE6D9: 0x8D13,
  7411. 0xE6DA: 0x8CCD,
  7412. 0xE6DB: 0x8D14,
  7413. 0xE6DC: 0x8D16,
  7414. 0xE6DD: 0x8D67,
  7415. 0xE6DE: 0x8D6D,
  7416. 0xE6DF: 0x8D71,
  7417. 0xE6E0: 0x8D73,
  7418. 0xE6E1: 0x8D81,
  7419. 0xE6E2: 0x8D99,
  7420. 0xE6E3: 0x8DC2,
  7421. 0xE6E4: 0x8DBE,
  7422. 0xE6E5: 0x8DBA,
  7423. 0xE6E6: 0x8DCF,
  7424. 0xE6E7: 0x8DDA,
  7425. 0xE6E8: 0x8DD6,
  7426. 0xE6E9: 0x8DCC,
  7427. 0xE6EA: 0x8DDB,
  7428. 0xE6EB: 0x8DCB,
  7429. 0xE6EC: 0x8DEA,
  7430. 0xE6ED: 0x8DEB,
  7431. 0xE6EE: 0x8DDF,
  7432. 0xE6EF: 0x8DE3,
  7433. 0xE6F0: 0x8DFC,
  7434. 0xE6F1: 0x8E08,
  7435. 0xE6F2: 0x8E09,
  7436. 0xE6F3: 0x8DFF,
  7437. 0xE6F4: 0x8E1D,
  7438. 0xE6F5: 0x8E1E,
  7439. 0xE6F6: 0x8E10,
  7440. 0xE6F7: 0x8E1F,
  7441. 0xE6F8: 0x8E42,
  7442. 0xE6F9: 0x8E35,
  7443. 0xE6FA: 0x8E30,
  7444. 0xE6FB: 0x8E34,
  7445. 0xE6FC: 0x8E4A,
  7446. 0xE740: 0x8E47,
  7447. 0xE741: 0x8E49,
  7448. 0xE742: 0x8E4C,
  7449. 0xE743: 0x8E50,
  7450. 0xE744: 0x8E48,
  7451. 0xE745: 0x8E59,
  7452. 0xE746: 0x8E64,
  7453. 0xE747: 0x8E60,
  7454. 0xE748: 0x8E2A,
  7455. 0xE749: 0x8E63,
  7456. 0xE74A: 0x8E55,
  7457. 0xE74B: 0x8E76,
  7458. 0xE74C: 0x8E72,
  7459. 0xE74D: 0x8E7C,
  7460. 0xE74E: 0x8E81,
  7461. 0xE74F: 0x8E87,
  7462. 0xE750: 0x8E85,
  7463. 0xE751: 0x8E84,
  7464. 0xE752: 0x8E8B,
  7465. 0xE753: 0x8E8A,
  7466. 0xE754: 0x8E93,
  7467. 0xE755: 0x8E91,
  7468. 0xE756: 0x8E94,
  7469. 0xE757: 0x8E99,
  7470. 0xE758: 0x8EAA,
  7471. 0xE759: 0x8EA1,
  7472. 0xE75A: 0x8EAC,
  7473. 0xE75B: 0x8EB0,
  7474. 0xE75C: 0x8EC6,
  7475. 0xE75D: 0x8EB1,
  7476. 0xE75E: 0x8EBE,
  7477. 0xE75F: 0x8EC5,
  7478. 0xE760: 0x8EC8,
  7479. 0xE761: 0x8ECB,
  7480. 0xE762: 0x8EDB,
  7481. 0xE763: 0x8EE3,
  7482. 0xE764: 0x8EFC,
  7483. 0xE765: 0x8EFB,
  7484. 0xE766: 0x8EEB,
  7485. 0xE767: 0x8EFE,
  7486. 0xE768: 0x8F0A,
  7487. 0xE769: 0x8F05,
  7488. 0xE76A: 0x8F15,
  7489. 0xE76B: 0x8F12,
  7490. 0xE76C: 0x8F19,
  7491. 0xE76D: 0x8F13,
  7492. 0xE76E: 0x8F1C,
  7493. 0xE76F: 0x8F1F,
  7494. 0xE770: 0x8F1B,
  7495. 0xE771: 0x8F0C,
  7496. 0xE772: 0x8F26,
  7497. 0xE773: 0x8F33,
  7498. 0xE774: 0x8F3B,
  7499. 0xE775: 0x8F39,
  7500. 0xE776: 0x8F45,
  7501. 0xE777: 0x8F42,
  7502. 0xE778: 0x8F3E,
  7503. 0xE779: 0x8F4C,
  7504. 0xE77A: 0x8F49,
  7505. 0xE77B: 0x8F46,
  7506. 0xE77C: 0x8F4E,
  7507. 0xE77D: 0x8F57,
  7508. 0xE77E: 0x8F5C,
  7509. 0xE780: 0x8F62,
  7510. 0xE781: 0x8F63,
  7511. 0xE782: 0x8F64,
  7512. 0xE783: 0x8F9C,
  7513. 0xE784: 0x8F9F,
  7514. 0xE785: 0x8FA3,
  7515. 0xE786: 0x8FAD,
  7516. 0xE787: 0x8FAF,
  7517. 0xE788: 0x8FB7,
  7518. 0xE789: 0x8FDA,
  7519. 0xE78A: 0x8FE5,
  7520. 0xE78B: 0x8FE2,
  7521. 0xE78C: 0x8FEA,
  7522. 0xE78D: 0x8FEF,
  7523. 0xE78E: 0x9087,
  7524. 0xE78F: 0x8FF4,
  7525. 0xE790: 0x9005,
  7526. 0xE791: 0x8FF9,
  7527. 0xE792: 0x8FFA,
  7528. 0xE793: 0x9011,
  7529. 0xE794: 0x9015,
  7530. 0xE795: 0x9021,
  7531. 0xE796: 0x900D,
  7532. 0xE797: 0x901E,
  7533. 0xE798: 0x9016,
  7534. 0xE799: 0x900B,
  7535. 0xE79A: 0x9027,
  7536. 0xE79B: 0x9036,
  7537. 0xE79C: 0x9035,
  7538. 0xE79D: 0x9039,
  7539. 0xE79E: 0x8FF8,
  7540. 0xE79F: 0x904F,
  7541. 0xE7A0: 0x9050,
  7542. 0xE7A1: 0x9051,
  7543. 0xE7A2: 0x9052,
  7544. 0xE7A3: 0x900E,
  7545. 0xE7A4: 0x9049,
  7546. 0xE7A5: 0x903E,
  7547. 0xE7A6: 0x9056,
  7548. 0xE7A7: 0x9058,
  7549. 0xE7A8: 0x905E,
  7550. 0xE7A9: 0x9068,
  7551. 0xE7AA: 0x906F,
  7552. 0xE7AB: 0x9076,
  7553. 0xE7AC: 0x96A8,
  7554. 0xE7AD: 0x9072,
  7555. 0xE7AE: 0x9082,
  7556. 0xE7AF: 0x907D,
  7557. 0xE7B0: 0x9081,
  7558. 0xE7B1: 0x9080,
  7559. 0xE7B2: 0x908A,
  7560. 0xE7B3: 0x9089,
  7561. 0xE7B4: 0x908F,
  7562. 0xE7B5: 0x90A8,
  7563. 0xE7B6: 0x90AF,
  7564. 0xE7B7: 0x90B1,
  7565. 0xE7B8: 0x90B5,
  7566. 0xE7B9: 0x90E2,
  7567. 0xE7BA: 0x90E4,
  7568. 0xE7BB: 0x6248,
  7569. 0xE7BC: 0x90DB,
  7570. 0xE7BD: 0x9102,
  7571. 0xE7BE: 0x9112,
  7572. 0xE7BF: 0x9119,
  7573. 0xE7C0: 0x9132,
  7574. 0xE7C1: 0x9130,
  7575. 0xE7C2: 0x914A,
  7576. 0xE7C3: 0x9156,
  7577. 0xE7C4: 0x9158,
  7578. 0xE7C5: 0x9163,
  7579. 0xE7C6: 0x9165,
  7580. 0xE7C7: 0x9169,
  7581. 0xE7C8: 0x9173,
  7582. 0xE7C9: 0x9172,
  7583. 0xE7CA: 0x918B,
  7584. 0xE7CB: 0x9189,
  7585. 0xE7CC: 0x9182,
  7586. 0xE7CD: 0x91A2,
  7587. 0xE7CE: 0x91AB,
  7588. 0xE7CF: 0x91AF,
  7589. 0xE7D0: 0x91AA,
  7590. 0xE7D1: 0x91B5,
  7591. 0xE7D2: 0x91B4,
  7592. 0xE7D3: 0x91BA,
  7593. 0xE7D4: 0x91C0,
  7594. 0xE7D5: 0x91C1,
  7595. 0xE7D6: 0x91C9,
  7596. 0xE7D7: 0x91CB,
  7597. 0xE7D8: 0x91D0,
  7598. 0xE7D9: 0x91D6,
  7599. 0xE7DA: 0x91DF,
  7600. 0xE7DB: 0x91E1,
  7601. 0xE7DC: 0x91DB,
  7602. 0xE7DD: 0x91FC,
  7603. 0xE7DE: 0x91F5,
  7604. 0xE7DF: 0x91F6,
  7605. 0xE7E0: 0x921E,
  7606. 0xE7E1: 0x91FF,
  7607. 0xE7E2: 0x9214,
  7608. 0xE7E3: 0x922C,
  7609. 0xE7E4: 0x9215,
  7610. 0xE7E5: 0x9211,
  7611. 0xE7E6: 0x925E,
  7612. 0xE7E7: 0x9257,
  7613. 0xE7E8: 0x9245,
  7614. 0xE7E9: 0x9249,
  7615. 0xE7EA: 0x9264,
  7616. 0xE7EB: 0x9248,
  7617. 0xE7EC: 0x9295,
  7618. 0xE7ED: 0x923F,
  7619. 0xE7EE: 0x924B,
  7620. 0xE7EF: 0x9250,
  7621. 0xE7F0: 0x929C,
  7622. 0xE7F1: 0x9296,
  7623. 0xE7F2: 0x9293,
  7624. 0xE7F3: 0x929B,
  7625. 0xE7F4: 0x925A,
  7626. 0xE7F5: 0x92CF,
  7627. 0xE7F6: 0x92B9,
  7628. 0xE7F7: 0x92B7,
  7629. 0xE7F8: 0x92E9,
  7630. 0xE7F9: 0x930F,
  7631. 0xE7FA: 0x92FA,
  7632. 0xE7FB: 0x9344,
  7633. 0xE7FC: 0x932E,
  7634. 0xE840: 0x9319,
  7635. 0xE841: 0x9322,
  7636. 0xE842: 0x931A,
  7637. 0xE843: 0x9323,
  7638. 0xE844: 0x933A,
  7639. 0xE845: 0x9335,
  7640. 0xE846: 0x933B,
  7641. 0xE847: 0x935C,
  7642. 0xE848: 0x9360,
  7643. 0xE849: 0x937C,
  7644. 0xE84A: 0x936E,
  7645. 0xE84B: 0x9356,
  7646. 0xE84C: 0x93B0,
  7647. 0xE84D: 0x93AC,
  7648. 0xE84E: 0x93AD,
  7649. 0xE84F: 0x9394,
  7650. 0xE850: 0x93B9,
  7651. 0xE851: 0x93D6,
  7652. 0xE852: 0x93D7,
  7653. 0xE853: 0x93E8,
  7654. 0xE854: 0x93E5,
  7655. 0xE855: 0x93D8,
  7656. 0xE856: 0x93C3,
  7657. 0xE857: 0x93DD,
  7658. 0xE858: 0x93D0,
  7659. 0xE859: 0x93C8,
  7660. 0xE85A: 0x93E4,
  7661. 0xE85B: 0x941A,
  7662. 0xE85C: 0x9414,
  7663. 0xE85D: 0x9413,
  7664. 0xE85E: 0x9403,
  7665. 0xE85F: 0x9407,
  7666. 0xE860: 0x9410,
  7667. 0xE861: 0x9436,
  7668. 0xE862: 0x942B,
  7669. 0xE863: 0x9435,
  7670. 0xE864: 0x9421,
  7671. 0xE865: 0x943A,
  7672. 0xE866: 0x9441,
  7673. 0xE867: 0x9452,
  7674. 0xE868: 0x9444,
  7675. 0xE869: 0x945B,
  7676. 0xE86A: 0x9460,
  7677. 0xE86B: 0x9462,
  7678. 0xE86C: 0x945E,
  7679. 0xE86D: 0x946A,
  7680. 0xE86E: 0x9229,
  7681. 0xE86F: 0x9470,
  7682. 0xE870: 0x9475,
  7683. 0xE871: 0x9477,
  7684. 0xE872: 0x947D,
  7685. 0xE873: 0x945A,
  7686. 0xE874: 0x947C,
  7687. 0xE875: 0x947E,
  7688. 0xE876: 0x9481,
  7689. 0xE877: 0x947F,
  7690. 0xE878: 0x9582,
  7691. 0xE879: 0x9587,
  7692. 0xE87A: 0x958A,
  7693. 0xE87B: 0x9594,
  7694. 0xE87C: 0x9596,
  7695. 0xE87D: 0x9598,
  7696. 0xE87E: 0x9599,
  7697. 0xE880: 0x95A0,
  7698. 0xE881: 0x95A8,
  7699. 0xE882: 0x95A7,
  7700. 0xE883: 0x95AD,
  7701. 0xE884: 0x95BC,
  7702. 0xE885: 0x95BB,
  7703. 0xE886: 0x95B9,
  7704. 0xE887: 0x95BE,
  7705. 0xE888: 0x95CA,
  7706. 0xE889: 0x6FF6,
  7707. 0xE88A: 0x95C3,
  7708. 0xE88B: 0x95CD,
  7709. 0xE88C: 0x95CC,
  7710. 0xE88D: 0x95D5,
  7711. 0xE88E: 0x95D4,
  7712. 0xE88F: 0x95D6,
  7713. 0xE890: 0x95DC,
  7714. 0xE891: 0x95E1,
  7715. 0xE892: 0x95E5,
  7716. 0xE893: 0x95E2,
  7717. 0xE894: 0x9621,
  7718. 0xE895: 0x9628,
  7719. 0xE896: 0x962E,
  7720. 0xE897: 0x962F,
  7721. 0xE898: 0x9642,
  7722. 0xE899: 0x964C,
  7723. 0xE89A: 0x964F,
  7724. 0xE89B: 0x964B,
  7725. 0xE89C: 0x9677,
  7726. 0xE89D: 0x965C,
  7727. 0xE89E: 0x965E,
  7728. 0xE89F: 0x965D,
  7729. 0xE8A0: 0x965F,
  7730. 0xE8A1: 0x9666,
  7731. 0xE8A2: 0x9672,
  7732. 0xE8A3: 0x966C,
  7733. 0xE8A4: 0x968D,
  7734. 0xE8A5: 0x9698,
  7735. 0xE8A6: 0x9695,
  7736. 0xE8A7: 0x9697,
  7737. 0xE8A8: 0x96AA,
  7738. 0xE8A9: 0x96A7,
  7739. 0xE8AA: 0x96B1,
  7740. 0xE8AB: 0x96B2,
  7741. 0xE8AC: 0x96B0,
  7742. 0xE8AD: 0x96B4,
  7743. 0xE8AE: 0x96B6,
  7744. 0xE8AF: 0x96B8,
  7745. 0xE8B0: 0x96B9,
  7746. 0xE8B1: 0x96CE,
  7747. 0xE8B2: 0x96CB,
  7748. 0xE8B3: 0x96C9,
  7749. 0xE8B4: 0x96CD,
  7750. 0xE8B5: 0x894D,
  7751. 0xE8B6: 0x96DC,
  7752. 0xE8B7: 0x970D,
  7753. 0xE8B8: 0x96D5,
  7754. 0xE8B9: 0x96F9,
  7755. 0xE8BA: 0x9704,
  7756. 0xE8BB: 0x9706,
  7757. 0xE8BC: 0x9708,
  7758. 0xE8BD: 0x9713,
  7759. 0xE8BE: 0x970E,
  7760. 0xE8BF: 0x9711,
  7761. 0xE8C0: 0x970F,
  7762. 0xE8C1: 0x9716,
  7763. 0xE8C2: 0x9719,
  7764. 0xE8C3: 0x9724,
  7765. 0xE8C4: 0x972A,
  7766. 0xE8C5: 0x9730,
  7767. 0xE8C6: 0x9739,
  7768. 0xE8C7: 0x973D,
  7769. 0xE8C8: 0x973E,
  7770. 0xE8C9: 0x9744,
  7771. 0xE8CA: 0x9746,
  7772. 0xE8CB: 0x9748,
  7773. 0xE8CC: 0x9742,
  7774. 0xE8CD: 0x9749,
  7775. 0xE8CE: 0x975C,
  7776. 0xE8CF: 0x9760,
  7777. 0xE8D0: 0x9764,
  7778. 0xE8D1: 0x9766,
  7779. 0xE8D2: 0x9768,
  7780. 0xE8D3: 0x52D2,
  7781. 0xE8D4: 0x976B,
  7782. 0xE8D5: 0x9771,
  7783. 0xE8D6: 0x9779,
  7784. 0xE8D7: 0x9785,
  7785. 0xE8D8: 0x977C,
  7786. 0xE8D9: 0x9781,
  7787. 0xE8DA: 0x977A,
  7788. 0xE8DB: 0x9786,
  7789. 0xE8DC: 0x978B,
  7790. 0xE8DD: 0x978F,
  7791. 0xE8DE: 0x9790,
  7792. 0xE8DF: 0x979C,
  7793. 0xE8E0: 0x97A8,
  7794. 0xE8E1: 0x97A6,
  7795. 0xE8E2: 0x97A3,
  7796. 0xE8E3: 0x97B3,
  7797. 0xE8E4: 0x97B4,
  7798. 0xE8E5: 0x97C3,
  7799. 0xE8E6: 0x97C6,
  7800. 0xE8E7: 0x97C8,
  7801. 0xE8E8: 0x97CB,
  7802. 0xE8E9: 0x97DC,
  7803. 0xE8EA: 0x97ED,
  7804. 0xE8EB: 0x9F4F,
  7805. 0xE8EC: 0x97F2,
  7806. 0xE8ED: 0x7ADF,
  7807. 0xE8EE: 0x97F6,
  7808. 0xE8EF: 0x97F5,
  7809. 0xE8F0: 0x980F,
  7810. 0xE8F1: 0x980C,
  7811. 0xE8F2: 0x9838,
  7812. 0xE8F3: 0x9824,
  7813. 0xE8F4: 0x9821,
  7814. 0xE8F5: 0x9837,
  7815. 0xE8F6: 0x983D,
  7816. 0xE8F7: 0x9846,
  7817. 0xE8F8: 0x984F,
  7818. 0xE8F9: 0x984B,
  7819. 0xE8FA: 0x986B,
  7820. 0xE8FB: 0x986F,
  7821. 0xE8FC: 0x9870,
  7822. 0xE940: 0x9871,
  7823. 0xE941: 0x9874,
  7824. 0xE942: 0x9873,
  7825. 0xE943: 0x98AA,
  7826. 0xE944: 0x98AF,
  7827. 0xE945: 0x98B1,
  7828. 0xE946: 0x98B6,
  7829. 0xE947: 0x98C4,
  7830. 0xE948: 0x98C3,
  7831. 0xE949: 0x98C6,
  7832. 0xE94A: 0x98E9,
  7833. 0xE94B: 0x98EB,
  7834. 0xE94C: 0x9903,
  7835. 0xE94D: 0x9909,
  7836. 0xE94E: 0x9912,
  7837. 0xE94F: 0x9914,
  7838. 0xE950: 0x9918,
  7839. 0xE951: 0x9921,
  7840. 0xE952: 0x991D,
  7841. 0xE953: 0x991E,
  7842. 0xE954: 0x9924,
  7843. 0xE955: 0x9920,
  7844. 0xE956: 0x992C,
  7845. 0xE957: 0x992E,
  7846. 0xE958: 0x993D,
  7847. 0xE959: 0x993E,
  7848. 0xE95A: 0x9942,
  7849. 0xE95B: 0x9949,
  7850. 0xE95C: 0x9945,
  7851. 0xE95D: 0x9950,
  7852. 0xE95E: 0x994B,
  7853. 0xE95F: 0x9951,
  7854. 0xE960: 0x9952,
  7855. 0xE961: 0x994C,
  7856. 0xE962: 0x9955,
  7857. 0xE963: 0x9997,
  7858. 0xE964: 0x9998,
  7859. 0xE965: 0x99A5,
  7860. 0xE966: 0x99AD,
  7861. 0xE967: 0x99AE,
  7862. 0xE968: 0x99BC,
  7863. 0xE969: 0x99DF,
  7864. 0xE96A: 0x99DB,
  7865. 0xE96B: 0x99DD,
  7866. 0xE96C: 0x99D8,
  7867. 0xE96D: 0x99D1,
  7868. 0xE96E: 0x99ED,
  7869. 0xE96F: 0x99EE,
  7870. 0xE970: 0x99F1,
  7871. 0xE971: 0x99F2,
  7872. 0xE972: 0x99FB,
  7873. 0xE973: 0x99F8,
  7874. 0xE974: 0x9A01,
  7875. 0xE975: 0x9A0F,
  7876. 0xE976: 0x9A05,
  7877. 0xE977: 0x99E2,
  7878. 0xE978: 0x9A19,
  7879. 0xE979: 0x9A2B,
  7880. 0xE97A: 0x9A37,
  7881. 0xE97B: 0x9A45,
  7882. 0xE97C: 0x9A42,
  7883. 0xE97D: 0x9A40,
  7884. 0xE97E: 0x9A43,
  7885. 0xE980: 0x9A3E,
  7886. 0xE981: 0x9A55,
  7887. 0xE982: 0x9A4D,
  7888. 0xE983: 0x9A5B,
  7889. 0xE984: 0x9A57,
  7890. 0xE985: 0x9A5F,
  7891. 0xE986: 0x9A62,
  7892. 0xE987: 0x9A65,
  7893. 0xE988: 0x9A64,
  7894. 0xE989: 0x9A69,
  7895. 0xE98A: 0x9A6B,
  7896. 0xE98B: 0x9A6A,
  7897. 0xE98C: 0x9AAD,
  7898. 0xE98D: 0x9AB0,
  7899. 0xE98E: 0x9ABC,
  7900. 0xE98F: 0x9AC0,
  7901. 0xE990: 0x9ACF,
  7902. 0xE991: 0x9AD1,
  7903. 0xE992: 0x9AD3,
  7904. 0xE993: 0x9AD4,
  7905. 0xE994: 0x9ADE,
  7906. 0xE995: 0x9ADF,
  7907. 0xE996: 0x9AE2,
  7908. 0xE997: 0x9AE3,
  7909. 0xE998: 0x9AE6,
  7910. 0xE999: 0x9AEF,
  7911. 0xE99A: 0x9AEB,
  7912. 0xE99B: 0x9AEE,
  7913. 0xE99C: 0x9AF4,
  7914. 0xE99D: 0x9AF1,
  7915. 0xE99E: 0x9AF7,
  7916. 0xE99F: 0x9AFB,
  7917. 0xE9A0: 0x9B06,
  7918. 0xE9A1: 0x9B18,
  7919. 0xE9A2: 0x9B1A,
  7920. 0xE9A3: 0x9B1F,
  7921. 0xE9A4: 0x9B22,
  7922. 0xE9A5: 0x9B23,
  7923. 0xE9A6: 0x9B25,
  7924. 0xE9A7: 0x9B27,
  7925. 0xE9A8: 0x9B28,
  7926. 0xE9A9: 0x9B29,
  7927. 0xE9AA: 0x9B2A,
  7928. 0xE9AB: 0x9B2E,
  7929. 0xE9AC: 0x9B2F,
  7930. 0xE9AD: 0x9B32,
  7931. 0xE9AE: 0x9B44,
  7932. 0xE9AF: 0x9B43,
  7933. 0xE9B0: 0x9B4F,
  7934. 0xE9B1: 0x9B4D,
  7935. 0xE9B2: 0x9B4E,
  7936. 0xE9B3: 0x9B51,
  7937. 0xE9B4: 0x9B58,
  7938. 0xE9B5: 0x9B74,
  7939. 0xE9B6: 0x9B93,
  7940. 0xE9B7: 0x9B83,
  7941. 0xE9B8: 0x9B91,
  7942. 0xE9B9: 0x9B96,
  7943. 0xE9BA: 0x9B97,
  7944. 0xE9BB: 0x9B9F,
  7945. 0xE9BC: 0x9BA0,
  7946. 0xE9BD: 0x9BA8,
  7947. 0xE9BE: 0x9BB4,
  7948. 0xE9BF: 0x9BC0,
  7949. 0xE9C0: 0x9BCA,
  7950. 0xE9C1: 0x9BB9,
  7951. 0xE9C2: 0x9BC6,
  7952. 0xE9C3: 0x9BCF,
  7953. 0xE9C4: 0x9BD1,
  7954. 0xE9C5: 0x9BD2,
  7955. 0xE9C6: 0x9BE3,
  7956. 0xE9C7: 0x9BE2,
  7957. 0xE9C8: 0x9BE4,
  7958. 0xE9C9: 0x9BD4,
  7959. 0xE9CA: 0x9BE1,
  7960. 0xE9CB: 0x9C3A,
  7961. 0xE9CC: 0x9BF2,
  7962. 0xE9CD: 0x9BF1,
  7963. 0xE9CE: 0x9BF0,
  7964. 0xE9CF: 0x9C15,
  7965. 0xE9D0: 0x9C14,
  7966. 0xE9D1: 0x9C09,
  7967. 0xE9D2: 0x9C13,
  7968. 0xE9D3: 0x9C0C,
  7969. 0xE9D4: 0x9C06,
  7970. 0xE9D5: 0x9C08,
  7971. 0xE9D6: 0x9C12,
  7972. 0xE9D7: 0x9C0A,
  7973. 0xE9D8: 0x9C04,
  7974. 0xE9D9: 0x9C2E,
  7975. 0xE9DA: 0x9C1B,
  7976. 0xE9DB: 0x9C25,
  7977. 0xE9DC: 0x9C24,
  7978. 0xE9DD: 0x9C21,
  7979. 0xE9DE: 0x9C30,
  7980. 0xE9DF: 0x9C47,
  7981. 0xE9E0: 0x9C32,
  7982. 0xE9E1: 0x9C46,
  7983. 0xE9E2: 0x9C3E,
  7984. 0xE9E3: 0x9C5A,
  7985. 0xE9E4: 0x9C60,
  7986. 0xE9E5: 0x9C67,
  7987. 0xE9E6: 0x9C76,
  7988. 0xE9E7: 0x9C78,
  7989. 0xE9E8: 0x9CE7,
  7990. 0xE9E9: 0x9CEC,
  7991. 0xE9EA: 0x9CF0,
  7992. 0xE9EB: 0x9D09,
  7993. 0xE9EC: 0x9D08,
  7994. 0xE9ED: 0x9CEB,
  7995. 0xE9EE: 0x9D03,
  7996. 0xE9EF: 0x9D06,
  7997. 0xE9F0: 0x9D2A,
  7998. 0xE9F1: 0x9D26,
  7999. 0xE9F2: 0x9DAF,
  8000. 0xE9F3: 0x9D23,
  8001. 0xE9F4: 0x9D1F,
  8002. 0xE9F5: 0x9D44,
  8003. 0xE9F6: 0x9D15,
  8004. 0xE9F7: 0x9D12,
  8005. 0xE9F8: 0x9D41,
  8006. 0xE9F9: 0x9D3F,
  8007. 0xE9FA: 0x9D3E,
  8008. 0xE9FB: 0x9D46,
  8009. 0xE9FC: 0x9D48,
  8010. 0xEA40: 0x9D5D,
  8011. 0xEA41: 0x9D5E,
  8012. 0xEA42: 0x9D64,
  8013. 0xEA43: 0x9D51,
  8014. 0xEA44: 0x9D50,
  8015. 0xEA45: 0x9D59,
  8016. 0xEA46: 0x9D72,
  8017. 0xEA47: 0x9D89,
  8018. 0xEA48: 0x9D87,
  8019. 0xEA49: 0x9DAB,
  8020. 0xEA4A: 0x9D6F,
  8021. 0xEA4B: 0x9D7A,
  8022. 0xEA4C: 0x9D9A,
  8023. 0xEA4D: 0x9DA4,
  8024. 0xEA4E: 0x9DA9,
  8025. 0xEA4F: 0x9DB2,
  8026. 0xEA50: 0x9DC4,
  8027. 0xEA51: 0x9DC1,
  8028. 0xEA52: 0x9DBB,
  8029. 0xEA53: 0x9DB8,
  8030. 0xEA54: 0x9DBA,
  8031. 0xEA55: 0x9DC6,
  8032. 0xEA56: 0x9DCF,
  8033. 0xEA57: 0x9DC2,
  8034. 0xEA58: 0x9DD9,
  8035. 0xEA59: 0x9DD3,
  8036. 0xEA5A: 0x9DF8,
  8037. 0xEA5B: 0x9DE6,
  8038. 0xEA5C: 0x9DED,
  8039. 0xEA5D: 0x9DEF,
  8040. 0xEA5E: 0x9DFD,
  8041. 0xEA5F: 0x9E1A,
  8042. 0xEA60: 0x9E1B,
  8043. 0xEA61: 0x9E1E,
  8044. 0xEA62: 0x9E75,
  8045. 0xEA63: 0x9E79,
  8046. 0xEA64: 0x9E7D,
  8047. 0xEA65: 0x9E81,
  8048. 0xEA66: 0x9E88,
  8049. 0xEA67: 0x9E8B,
  8050. 0xEA68: 0x9E8C,
  8051. 0xEA69: 0x9E92,
  8052. 0xEA6A: 0x9E95,
  8053. 0xEA6B: 0x9E91,
  8054. 0xEA6C: 0x9E9D,
  8055. 0xEA6D: 0x9EA5,
  8056. 0xEA6E: 0x9EA9,
  8057. 0xEA6F: 0x9EB8,
  8058. 0xEA70: 0x9EAA,
  8059. 0xEA71: 0x9EAD,
  8060. 0xEA72: 0x9761,
  8061. 0xEA73: 0x9ECC,
  8062. 0xEA74: 0x9ECE,
  8063. 0xEA75: 0x9ECF,
  8064. 0xEA76: 0x9ED0,
  8065. 0xEA77: 0x9ED4,
  8066. 0xEA78: 0x9EDC,
  8067. 0xEA79: 0x9EDE,
  8068. 0xEA7A: 0x9EDD,
  8069. 0xEA7B: 0x9EE0,
  8070. 0xEA7C: 0x9EE5,
  8071. 0xEA7D: 0x9EE8,
  8072. 0xEA7E: 0x9EEF,
  8073. 0xEA80: 0x9EF4,
  8074. 0xEA81: 0x9EF6,
  8075. 0xEA82: 0x9EF7,
  8076. 0xEA83: 0x9EF9,
  8077. 0xEA84: 0x9EFB,
  8078. 0xEA85: 0x9EFC,
  8079. 0xEA86: 0x9EFD,
  8080. 0xEA87: 0x9F07,
  8081. 0xEA88: 0x9F08,
  8082. 0xEA89: 0x76B7,
  8083. 0xEA8A: 0x9F15,
  8084. 0xEA8B: 0x9F21,
  8085. 0xEA8C: 0x9F2C,
  8086. 0xEA8D: 0x9F3E,
  8087. 0xEA8E: 0x9F4A,
  8088. 0xEA8F: 0x9F52,
  8089. 0xEA90: 0x9F54,
  8090. 0xEA91: 0x9F63,
  8091. 0xEA92: 0x9F5F,
  8092. 0xEA93: 0x9F60,
  8093. 0xEA94: 0x9F61,
  8094. 0xEA95: 0x9F66,
  8095. 0xEA96: 0x9F67,
  8096. 0xEA97: 0x9F6C,
  8097. 0xEA98: 0x9F6A,
  8098. 0xEA99: 0x9F77,
  8099. 0xEA9A: 0x9F72,
  8100. 0xEA9B: 0x9F76,
  8101. 0xEA9C: 0x9F95,
  8102. 0xEA9D: 0x9F9C,
  8103. 0xEA9E: 0x9FA0,
  8104. 0xEA9F: 0x582F,
  8105. 0xEAA0: 0x69C7,
  8106. 0xEAA1: 0x9059,
  8107. 0xEAA2: 0x7464,
  8108. 0xEAA3: 0x51DC,
  8109. 0xEAA4: 0x7199,
  8110. };
  8111. /***/ }),
  8112. /* 9 */
  8113. /***/ (function(module, exports, __webpack_require__) {
  8114. "use strict";
  8115. Object.defineProperty(exports, "__esModule", { value: true });
  8116. var GenericGF_1 = __webpack_require__(1);
  8117. var GenericGFPoly_1 = __webpack_require__(2);
  8118. function runEuclideanAlgorithm(field, a, b, R) {
  8119. var _a;
  8120. // Assume a's degree is >= b's
  8121. if (a.degree() < b.degree()) {
  8122. _a = [b, a], a = _a[0], b = _a[1];
  8123. }
  8124. var rLast = a;
  8125. var r = b;
  8126. var tLast = field.zero;
  8127. var t = field.one;
  8128. // Run Euclidean algorithm until r's degree is less than R/2
  8129. while (r.degree() >= R / 2) {
  8130. var rLastLast = rLast;
  8131. var tLastLast = tLast;
  8132. rLast = r;
  8133. tLast = t;
  8134. // Divide rLastLast by rLast, with quotient in q and remainder in r
  8135. if (rLast.isZero()) {
  8136. // Euclidean algorithm already terminated?
  8137. return null;
  8138. }
  8139. r = rLastLast;
  8140. var q = field.zero;
  8141. var denominatorLeadingTerm = rLast.getCoefficient(rLast.degree());
  8142. var dltInverse = field.inverse(denominatorLeadingTerm);
  8143. while (r.degree() >= rLast.degree() && !r.isZero()) {
  8144. var degreeDiff = r.degree() - rLast.degree();
  8145. var scale = field.multiply(r.getCoefficient(r.degree()), dltInverse);
  8146. q = q.addOrSubtract(field.buildMonomial(degreeDiff, scale));
  8147. r = r.addOrSubtract(rLast.multiplyByMonomial(degreeDiff, scale));
  8148. }
  8149. t = q.multiplyPoly(tLast).addOrSubtract(tLastLast);
  8150. if (r.degree() >= rLast.degree()) {
  8151. return null;
  8152. }
  8153. }
  8154. var sigmaTildeAtZero = t.getCoefficient(0);
  8155. if (sigmaTildeAtZero === 0) {
  8156. return null;
  8157. }
  8158. var inverse = field.inverse(sigmaTildeAtZero);
  8159. return [t.multiply(inverse), r.multiply(inverse)];
  8160. }
  8161. function findErrorLocations(field, errorLocator) {
  8162. // This is a direct application of Chien's search
  8163. var numErrors = errorLocator.degree();
  8164. if (numErrors === 1) {
  8165. return [errorLocator.getCoefficient(1)];
  8166. }
  8167. var result = new Array(numErrors);
  8168. var errorCount = 0;
  8169. for (var i = 1; i < field.size && errorCount < numErrors; i++) {
  8170. if (errorLocator.evaluateAt(i) === 0) {
  8171. result[errorCount] = field.inverse(i);
  8172. errorCount++;
  8173. }
  8174. }
  8175. if (errorCount !== numErrors) {
  8176. return null;
  8177. }
  8178. return result;
  8179. }
  8180. function findErrorMagnitudes(field, errorEvaluator, errorLocations) {
  8181. // This is directly applying Forney's Formula
  8182. var s = errorLocations.length;
  8183. var result = new Array(s);
  8184. for (var i = 0; i < s; i++) {
  8185. var xiInverse = field.inverse(errorLocations[i]);
  8186. var denominator = 1;
  8187. for (var j = 0; j < s; j++) {
  8188. if (i !== j) {
  8189. denominator = field.multiply(denominator, GenericGF_1.addOrSubtractGF(1, field.multiply(errorLocations[j], xiInverse)));
  8190. }
  8191. }
  8192. result[i] = field.multiply(errorEvaluator.evaluateAt(xiInverse), field.inverse(denominator));
  8193. if (field.generatorBase !== 0) {
  8194. result[i] = field.multiply(result[i], xiInverse);
  8195. }
  8196. }
  8197. return result;
  8198. }
  8199. function decode(bytes, twoS) {
  8200. var outputBytes = new Uint8ClampedArray(bytes.length);
  8201. outputBytes.set(bytes);
  8202. var field = new GenericGF_1.default(0x011D, 256, 0); // x^8 + x^4 + x^3 + x^2 + 1
  8203. var poly = new GenericGFPoly_1.default(field, outputBytes);
  8204. var syndromeCoefficients = new Uint8ClampedArray(twoS);
  8205. var error = false;
  8206. for (var s = 0; s < twoS; s++) {
  8207. var evaluation = poly.evaluateAt(field.exp(s + field.generatorBase));
  8208. syndromeCoefficients[syndromeCoefficients.length - 1 - s] = evaluation;
  8209. if (evaluation !== 0) {
  8210. error = true;
  8211. }
  8212. }
  8213. if (!error) {
  8214. return outputBytes;
  8215. }
  8216. var syndrome = new GenericGFPoly_1.default(field, syndromeCoefficients);
  8217. var sigmaOmega = runEuclideanAlgorithm(field, field.buildMonomial(twoS, 1), syndrome, twoS);
  8218. if (sigmaOmega === null) {
  8219. return null;
  8220. }
  8221. var errorLocations = findErrorLocations(field, sigmaOmega[0]);
  8222. if (errorLocations == null) {
  8223. return null;
  8224. }
  8225. var errorMagnitudes = findErrorMagnitudes(field, sigmaOmega[1], errorLocations);
  8226. for (var i = 0; i < errorLocations.length; i++) {
  8227. var position = outputBytes.length - 1 - field.log(errorLocations[i]);
  8228. if (position < 0) {
  8229. return null;
  8230. }
  8231. outputBytes[position] = GenericGF_1.addOrSubtractGF(outputBytes[position], errorMagnitudes[i]);
  8232. }
  8233. return outputBytes;
  8234. }
  8235. exports.decode = decode;
  8236. /***/ }),
  8237. /* 10 */
  8238. /***/ (function(module, exports, __webpack_require__) {
  8239. "use strict";
  8240. Object.defineProperty(exports, "__esModule", { value: true });
  8241. exports.VERSIONS = [
  8242. {
  8243. infoBits: null,
  8244. versionNumber: 1,
  8245. alignmentPatternCenters: [],
  8246. errorCorrectionLevels: [
  8247. {
  8248. ecCodewordsPerBlock: 7,
  8249. ecBlocks: [{ numBlocks: 1, dataCodewordsPerBlock: 19 }],
  8250. },
  8251. {
  8252. ecCodewordsPerBlock: 10,
  8253. ecBlocks: [{ numBlocks: 1, dataCodewordsPerBlock: 16 }],
  8254. },
  8255. {
  8256. ecCodewordsPerBlock: 13,
  8257. ecBlocks: [{ numBlocks: 1, dataCodewordsPerBlock: 13 }],
  8258. },
  8259. {
  8260. ecCodewordsPerBlock: 17,
  8261. ecBlocks: [{ numBlocks: 1, dataCodewordsPerBlock: 9 }],
  8262. },
  8263. ],
  8264. },
  8265. {
  8266. infoBits: null,
  8267. versionNumber: 2,
  8268. alignmentPatternCenters: [6, 18],
  8269. errorCorrectionLevels: [
  8270. {
  8271. ecCodewordsPerBlock: 10,
  8272. ecBlocks: [{ numBlocks: 1, dataCodewordsPerBlock: 34 }],
  8273. },
  8274. {
  8275. ecCodewordsPerBlock: 16,
  8276. ecBlocks: [{ numBlocks: 1, dataCodewordsPerBlock: 28 }],
  8277. },
  8278. {
  8279. ecCodewordsPerBlock: 22,
  8280. ecBlocks: [{ numBlocks: 1, dataCodewordsPerBlock: 22 }],
  8281. },
  8282. {
  8283. ecCodewordsPerBlock: 28,
  8284. ecBlocks: [{ numBlocks: 1, dataCodewordsPerBlock: 16 }],
  8285. },
  8286. ],
  8287. },
  8288. {
  8289. infoBits: null,
  8290. versionNumber: 3,
  8291. alignmentPatternCenters: [6, 22],
  8292. errorCorrectionLevels: [
  8293. {
  8294. ecCodewordsPerBlock: 15,
  8295. ecBlocks: [{ numBlocks: 1, dataCodewordsPerBlock: 55 }],
  8296. },
  8297. {
  8298. ecCodewordsPerBlock: 26,
  8299. ecBlocks: [{ numBlocks: 1, dataCodewordsPerBlock: 44 }],
  8300. },
  8301. {
  8302. ecCodewordsPerBlock: 18,
  8303. ecBlocks: [{ numBlocks: 2, dataCodewordsPerBlock: 17 }],
  8304. },
  8305. {
  8306. ecCodewordsPerBlock: 22,
  8307. ecBlocks: [{ numBlocks: 2, dataCodewordsPerBlock: 13 }],
  8308. },
  8309. ],
  8310. },
  8311. {
  8312. infoBits: null,
  8313. versionNumber: 4,
  8314. alignmentPatternCenters: [6, 26],
  8315. errorCorrectionLevels: [
  8316. {
  8317. ecCodewordsPerBlock: 20,
  8318. ecBlocks: [{ numBlocks: 1, dataCodewordsPerBlock: 80 }],
  8319. },
  8320. {
  8321. ecCodewordsPerBlock: 18,
  8322. ecBlocks: [{ numBlocks: 2, dataCodewordsPerBlock: 32 }],
  8323. },
  8324. {
  8325. ecCodewordsPerBlock: 26,
  8326. ecBlocks: [{ numBlocks: 2, dataCodewordsPerBlock: 24 }],
  8327. },
  8328. {
  8329. ecCodewordsPerBlock: 16,
  8330. ecBlocks: [{ numBlocks: 4, dataCodewordsPerBlock: 9 }],
  8331. },
  8332. ],
  8333. },
  8334. {
  8335. infoBits: null,
  8336. versionNumber: 5,
  8337. alignmentPatternCenters: [6, 30],
  8338. errorCorrectionLevels: [
  8339. {
  8340. ecCodewordsPerBlock: 26,
  8341. ecBlocks: [{ numBlocks: 1, dataCodewordsPerBlock: 108 }],
  8342. },
  8343. {
  8344. ecCodewordsPerBlock: 24,
  8345. ecBlocks: [{ numBlocks: 2, dataCodewordsPerBlock: 43 }],
  8346. },
  8347. {
  8348. ecCodewordsPerBlock: 18,
  8349. ecBlocks: [
  8350. { numBlocks: 2, dataCodewordsPerBlock: 15 },
  8351. { numBlocks: 2, dataCodewordsPerBlock: 16 },
  8352. ],
  8353. },
  8354. {
  8355. ecCodewordsPerBlock: 22,
  8356. ecBlocks: [
  8357. { numBlocks: 2, dataCodewordsPerBlock: 11 },
  8358. { numBlocks: 2, dataCodewordsPerBlock: 12 },
  8359. ],
  8360. },
  8361. ],
  8362. },
  8363. {
  8364. infoBits: null,
  8365. versionNumber: 6,
  8366. alignmentPatternCenters: [6, 34],
  8367. errorCorrectionLevels: [
  8368. {
  8369. ecCodewordsPerBlock: 18,
  8370. ecBlocks: [{ numBlocks: 2, dataCodewordsPerBlock: 68 }],
  8371. },
  8372. {
  8373. ecCodewordsPerBlock: 16,
  8374. ecBlocks: [{ numBlocks: 4, dataCodewordsPerBlock: 27 }],
  8375. },
  8376. {
  8377. ecCodewordsPerBlock: 24,
  8378. ecBlocks: [{ numBlocks: 4, dataCodewordsPerBlock: 19 }],
  8379. },
  8380. {
  8381. ecCodewordsPerBlock: 28,
  8382. ecBlocks: [{ numBlocks: 4, dataCodewordsPerBlock: 15 }],
  8383. },
  8384. ],
  8385. },
  8386. {
  8387. infoBits: 0x07C94,
  8388. versionNumber: 7,
  8389. alignmentPatternCenters: [6, 22, 38],
  8390. errorCorrectionLevels: [
  8391. {
  8392. ecCodewordsPerBlock: 20,
  8393. ecBlocks: [{ numBlocks: 2, dataCodewordsPerBlock: 78 }],
  8394. },
  8395. {
  8396. ecCodewordsPerBlock: 18,
  8397. ecBlocks: [{ numBlocks: 4, dataCodewordsPerBlock: 31 }],
  8398. },
  8399. {
  8400. ecCodewordsPerBlock: 18,
  8401. ecBlocks: [
  8402. { numBlocks: 2, dataCodewordsPerBlock: 14 },
  8403. { numBlocks: 4, dataCodewordsPerBlock: 15 },
  8404. ],
  8405. },
  8406. {
  8407. ecCodewordsPerBlock: 26,
  8408. ecBlocks: [
  8409. { numBlocks: 4, dataCodewordsPerBlock: 13 },
  8410. { numBlocks: 1, dataCodewordsPerBlock: 14 },
  8411. ],
  8412. },
  8413. ],
  8414. },
  8415. {
  8416. infoBits: 0x085BC,
  8417. versionNumber: 8,
  8418. alignmentPatternCenters: [6, 24, 42],
  8419. errorCorrectionLevels: [
  8420. {
  8421. ecCodewordsPerBlock: 24,
  8422. ecBlocks: [{ numBlocks: 2, dataCodewordsPerBlock: 97 }],
  8423. },
  8424. {
  8425. ecCodewordsPerBlock: 22,
  8426. ecBlocks: [
  8427. { numBlocks: 2, dataCodewordsPerBlock: 38 },
  8428. { numBlocks: 2, dataCodewordsPerBlock: 39 },
  8429. ],
  8430. },
  8431. {
  8432. ecCodewordsPerBlock: 22,
  8433. ecBlocks: [
  8434. { numBlocks: 4, dataCodewordsPerBlock: 18 },
  8435. { numBlocks: 2, dataCodewordsPerBlock: 19 },
  8436. ],
  8437. },
  8438. {
  8439. ecCodewordsPerBlock: 26,
  8440. ecBlocks: [
  8441. { numBlocks: 4, dataCodewordsPerBlock: 14 },
  8442. { numBlocks: 2, dataCodewordsPerBlock: 15 },
  8443. ],
  8444. },
  8445. ],
  8446. },
  8447. {
  8448. infoBits: 0x09A99,
  8449. versionNumber: 9,
  8450. alignmentPatternCenters: [6, 26, 46],
  8451. errorCorrectionLevels: [
  8452. {
  8453. ecCodewordsPerBlock: 30,
  8454. ecBlocks: [{ numBlocks: 2, dataCodewordsPerBlock: 116 }],
  8455. },
  8456. {
  8457. ecCodewordsPerBlock: 22,
  8458. ecBlocks: [
  8459. { numBlocks: 3, dataCodewordsPerBlock: 36 },
  8460. { numBlocks: 2, dataCodewordsPerBlock: 37 },
  8461. ],
  8462. },
  8463. {
  8464. ecCodewordsPerBlock: 20,
  8465. ecBlocks: [
  8466. { numBlocks: 4, dataCodewordsPerBlock: 16 },
  8467. { numBlocks: 4, dataCodewordsPerBlock: 17 },
  8468. ],
  8469. },
  8470. {
  8471. ecCodewordsPerBlock: 24,
  8472. ecBlocks: [
  8473. { numBlocks: 4, dataCodewordsPerBlock: 12 },
  8474. { numBlocks: 4, dataCodewordsPerBlock: 13 },
  8475. ],
  8476. },
  8477. ],
  8478. },
  8479. {
  8480. infoBits: 0x0A4D3,
  8481. versionNumber: 10,
  8482. alignmentPatternCenters: [6, 28, 50],
  8483. errorCorrectionLevels: [
  8484. {
  8485. ecCodewordsPerBlock: 18,
  8486. ecBlocks: [
  8487. { numBlocks: 2, dataCodewordsPerBlock: 68 },
  8488. { numBlocks: 2, dataCodewordsPerBlock: 69 },
  8489. ],
  8490. },
  8491. {
  8492. ecCodewordsPerBlock: 26,
  8493. ecBlocks: [
  8494. { numBlocks: 4, dataCodewordsPerBlock: 43 },
  8495. { numBlocks: 1, dataCodewordsPerBlock: 44 },
  8496. ],
  8497. },
  8498. {
  8499. ecCodewordsPerBlock: 24,
  8500. ecBlocks: [
  8501. { numBlocks: 6, dataCodewordsPerBlock: 19 },
  8502. { numBlocks: 2, dataCodewordsPerBlock: 20 },
  8503. ],
  8504. },
  8505. {
  8506. ecCodewordsPerBlock: 28,
  8507. ecBlocks: [
  8508. { numBlocks: 6, dataCodewordsPerBlock: 15 },
  8509. { numBlocks: 2, dataCodewordsPerBlock: 16 },
  8510. ],
  8511. },
  8512. ],
  8513. },
  8514. {
  8515. infoBits: 0x0BBF6,
  8516. versionNumber: 11,
  8517. alignmentPatternCenters: [6, 30, 54],
  8518. errorCorrectionLevels: [
  8519. {
  8520. ecCodewordsPerBlock: 20,
  8521. ecBlocks: [{ numBlocks: 4, dataCodewordsPerBlock: 81 }],
  8522. },
  8523. {
  8524. ecCodewordsPerBlock: 30,
  8525. ecBlocks: [
  8526. { numBlocks: 1, dataCodewordsPerBlock: 50 },
  8527. { numBlocks: 4, dataCodewordsPerBlock: 51 },
  8528. ],
  8529. },
  8530. {
  8531. ecCodewordsPerBlock: 28,
  8532. ecBlocks: [
  8533. { numBlocks: 4, dataCodewordsPerBlock: 22 },
  8534. { numBlocks: 4, dataCodewordsPerBlock: 23 },
  8535. ],
  8536. },
  8537. {
  8538. ecCodewordsPerBlock: 24,
  8539. ecBlocks: [
  8540. { numBlocks: 3, dataCodewordsPerBlock: 12 },
  8541. { numBlocks: 8, dataCodewordsPerBlock: 13 },
  8542. ],
  8543. },
  8544. ],
  8545. },
  8546. {
  8547. infoBits: 0x0C762,
  8548. versionNumber: 12,
  8549. alignmentPatternCenters: [6, 32, 58],
  8550. errorCorrectionLevels: [
  8551. {
  8552. ecCodewordsPerBlock: 24,
  8553. ecBlocks: [
  8554. { numBlocks: 2, dataCodewordsPerBlock: 92 },
  8555. { numBlocks: 2, dataCodewordsPerBlock: 93 },
  8556. ],
  8557. },
  8558. {
  8559. ecCodewordsPerBlock: 22,
  8560. ecBlocks: [
  8561. { numBlocks: 6, dataCodewordsPerBlock: 36 },
  8562. { numBlocks: 2, dataCodewordsPerBlock: 37 },
  8563. ],
  8564. },
  8565. {
  8566. ecCodewordsPerBlock: 26,
  8567. ecBlocks: [
  8568. { numBlocks: 4, dataCodewordsPerBlock: 20 },
  8569. { numBlocks: 6, dataCodewordsPerBlock: 21 },
  8570. ],
  8571. },
  8572. {
  8573. ecCodewordsPerBlock: 28,
  8574. ecBlocks: [
  8575. { numBlocks: 7, dataCodewordsPerBlock: 14 },
  8576. { numBlocks: 4, dataCodewordsPerBlock: 15 },
  8577. ],
  8578. },
  8579. ],
  8580. },
  8581. {
  8582. infoBits: 0x0D847,
  8583. versionNumber: 13,
  8584. alignmentPatternCenters: [6, 34, 62],
  8585. errorCorrectionLevels: [
  8586. {
  8587. ecCodewordsPerBlock: 26,
  8588. ecBlocks: [{ numBlocks: 4, dataCodewordsPerBlock: 107 }],
  8589. },
  8590. {
  8591. ecCodewordsPerBlock: 22,
  8592. ecBlocks: [
  8593. { numBlocks: 8, dataCodewordsPerBlock: 37 },
  8594. { numBlocks: 1, dataCodewordsPerBlock: 38 },
  8595. ],
  8596. },
  8597. {
  8598. ecCodewordsPerBlock: 24,
  8599. ecBlocks: [
  8600. { numBlocks: 8, dataCodewordsPerBlock: 20 },
  8601. { numBlocks: 4, dataCodewordsPerBlock: 21 },
  8602. ],
  8603. },
  8604. {
  8605. ecCodewordsPerBlock: 22,
  8606. ecBlocks: [
  8607. { numBlocks: 12, dataCodewordsPerBlock: 11 },
  8608. { numBlocks: 4, dataCodewordsPerBlock: 12 },
  8609. ],
  8610. },
  8611. ],
  8612. },
  8613. {
  8614. infoBits: 0x0E60D,
  8615. versionNumber: 14,
  8616. alignmentPatternCenters: [6, 26, 46, 66],
  8617. errorCorrectionLevels: [
  8618. {
  8619. ecCodewordsPerBlock: 30,
  8620. ecBlocks: [
  8621. { numBlocks: 3, dataCodewordsPerBlock: 115 },
  8622. { numBlocks: 1, dataCodewordsPerBlock: 116 },
  8623. ],
  8624. },
  8625. {
  8626. ecCodewordsPerBlock: 24,
  8627. ecBlocks: [
  8628. { numBlocks: 4, dataCodewordsPerBlock: 40 },
  8629. { numBlocks: 5, dataCodewordsPerBlock: 41 },
  8630. ],
  8631. },
  8632. {
  8633. ecCodewordsPerBlock: 20,
  8634. ecBlocks: [
  8635. { numBlocks: 11, dataCodewordsPerBlock: 16 },
  8636. { numBlocks: 5, dataCodewordsPerBlock: 17 },
  8637. ],
  8638. },
  8639. {
  8640. ecCodewordsPerBlock: 24,
  8641. ecBlocks: [
  8642. { numBlocks: 11, dataCodewordsPerBlock: 12 },
  8643. { numBlocks: 5, dataCodewordsPerBlock: 13 },
  8644. ],
  8645. },
  8646. ],
  8647. },
  8648. {
  8649. infoBits: 0x0F928,
  8650. versionNumber: 15,
  8651. alignmentPatternCenters: [6, 26, 48, 70],
  8652. errorCorrectionLevels: [
  8653. {
  8654. ecCodewordsPerBlock: 22,
  8655. ecBlocks: [
  8656. { numBlocks: 5, dataCodewordsPerBlock: 87 },
  8657. { numBlocks: 1, dataCodewordsPerBlock: 88 },
  8658. ],
  8659. },
  8660. {
  8661. ecCodewordsPerBlock: 24,
  8662. ecBlocks: [
  8663. { numBlocks: 5, dataCodewordsPerBlock: 41 },
  8664. { numBlocks: 5, dataCodewordsPerBlock: 42 },
  8665. ],
  8666. },
  8667. {
  8668. ecCodewordsPerBlock: 30,
  8669. ecBlocks: [
  8670. { numBlocks: 5, dataCodewordsPerBlock: 24 },
  8671. { numBlocks: 7, dataCodewordsPerBlock: 25 },
  8672. ],
  8673. },
  8674. {
  8675. ecCodewordsPerBlock: 24,
  8676. ecBlocks: [
  8677. { numBlocks: 11, dataCodewordsPerBlock: 12 },
  8678. { numBlocks: 7, dataCodewordsPerBlock: 13 },
  8679. ],
  8680. },
  8681. ],
  8682. },
  8683. {
  8684. infoBits: 0x10B78,
  8685. versionNumber: 16,
  8686. alignmentPatternCenters: [6, 26, 50, 74],
  8687. errorCorrectionLevels: [
  8688. {
  8689. ecCodewordsPerBlock: 24,
  8690. ecBlocks: [
  8691. { numBlocks: 5, dataCodewordsPerBlock: 98 },
  8692. { numBlocks: 1, dataCodewordsPerBlock: 99 },
  8693. ],
  8694. },
  8695. {
  8696. ecCodewordsPerBlock: 28,
  8697. ecBlocks: [
  8698. { numBlocks: 7, dataCodewordsPerBlock: 45 },
  8699. { numBlocks: 3, dataCodewordsPerBlock: 46 },
  8700. ],
  8701. },
  8702. {
  8703. ecCodewordsPerBlock: 24,
  8704. ecBlocks: [
  8705. { numBlocks: 15, dataCodewordsPerBlock: 19 },
  8706. { numBlocks: 2, dataCodewordsPerBlock: 20 },
  8707. ],
  8708. },
  8709. {
  8710. ecCodewordsPerBlock: 30,
  8711. ecBlocks: [
  8712. { numBlocks: 3, dataCodewordsPerBlock: 15 },
  8713. { numBlocks: 13, dataCodewordsPerBlock: 16 },
  8714. ],
  8715. },
  8716. ],
  8717. },
  8718. {
  8719. infoBits: 0x1145D,
  8720. versionNumber: 17,
  8721. alignmentPatternCenters: [6, 30, 54, 78],
  8722. errorCorrectionLevels: [
  8723. {
  8724. ecCodewordsPerBlock: 28,
  8725. ecBlocks: [
  8726. { numBlocks: 1, dataCodewordsPerBlock: 107 },
  8727. { numBlocks: 5, dataCodewordsPerBlock: 108 },
  8728. ],
  8729. },
  8730. {
  8731. ecCodewordsPerBlock: 28,
  8732. ecBlocks: [
  8733. { numBlocks: 10, dataCodewordsPerBlock: 46 },
  8734. { numBlocks: 1, dataCodewordsPerBlock: 47 },
  8735. ],
  8736. },
  8737. {
  8738. ecCodewordsPerBlock: 28,
  8739. ecBlocks: [
  8740. { numBlocks: 1, dataCodewordsPerBlock: 22 },
  8741. { numBlocks: 15, dataCodewordsPerBlock: 23 },
  8742. ],
  8743. },
  8744. {
  8745. ecCodewordsPerBlock: 28,
  8746. ecBlocks: [
  8747. { numBlocks: 2, dataCodewordsPerBlock: 14 },
  8748. { numBlocks: 17, dataCodewordsPerBlock: 15 },
  8749. ],
  8750. },
  8751. ],
  8752. },
  8753. {
  8754. infoBits: 0x12A17,
  8755. versionNumber: 18,
  8756. alignmentPatternCenters: [6, 30, 56, 82],
  8757. errorCorrectionLevels: [
  8758. {
  8759. ecCodewordsPerBlock: 30,
  8760. ecBlocks: [
  8761. { numBlocks: 5, dataCodewordsPerBlock: 120 },
  8762. { numBlocks: 1, dataCodewordsPerBlock: 121 },
  8763. ],
  8764. },
  8765. {
  8766. ecCodewordsPerBlock: 26,
  8767. ecBlocks: [
  8768. { numBlocks: 9, dataCodewordsPerBlock: 43 },
  8769. { numBlocks: 4, dataCodewordsPerBlock: 44 },
  8770. ],
  8771. },
  8772. {
  8773. ecCodewordsPerBlock: 28,
  8774. ecBlocks: [
  8775. { numBlocks: 17, dataCodewordsPerBlock: 22 },
  8776. { numBlocks: 1, dataCodewordsPerBlock: 23 },
  8777. ],
  8778. },
  8779. {
  8780. ecCodewordsPerBlock: 28,
  8781. ecBlocks: [
  8782. { numBlocks: 2, dataCodewordsPerBlock: 14 },
  8783. { numBlocks: 19, dataCodewordsPerBlock: 15 },
  8784. ],
  8785. },
  8786. ],
  8787. },
  8788. {
  8789. infoBits: 0x13532,
  8790. versionNumber: 19,
  8791. alignmentPatternCenters: [6, 30, 58, 86],
  8792. errorCorrectionLevels: [
  8793. {
  8794. ecCodewordsPerBlock: 28,
  8795. ecBlocks: [
  8796. { numBlocks: 3, dataCodewordsPerBlock: 113 },
  8797. { numBlocks: 4, dataCodewordsPerBlock: 114 },
  8798. ],
  8799. },
  8800. {
  8801. ecCodewordsPerBlock: 26,
  8802. ecBlocks: [
  8803. { numBlocks: 3, dataCodewordsPerBlock: 44 },
  8804. { numBlocks: 11, dataCodewordsPerBlock: 45 },
  8805. ],
  8806. },
  8807. {
  8808. ecCodewordsPerBlock: 26,
  8809. ecBlocks: [
  8810. { numBlocks: 17, dataCodewordsPerBlock: 21 },
  8811. { numBlocks: 4, dataCodewordsPerBlock: 22 },
  8812. ],
  8813. },
  8814. {
  8815. ecCodewordsPerBlock: 26,
  8816. ecBlocks: [
  8817. { numBlocks: 9, dataCodewordsPerBlock: 13 },
  8818. { numBlocks: 16, dataCodewordsPerBlock: 14 },
  8819. ],
  8820. },
  8821. ],
  8822. },
  8823. {
  8824. infoBits: 0x149A6,
  8825. versionNumber: 20,
  8826. alignmentPatternCenters: [6, 34, 62, 90],
  8827. errorCorrectionLevels: [
  8828. {
  8829. ecCodewordsPerBlock: 28,
  8830. ecBlocks: [
  8831. { numBlocks: 3, dataCodewordsPerBlock: 107 },
  8832. { numBlocks: 5, dataCodewordsPerBlock: 108 },
  8833. ],
  8834. },
  8835. {
  8836. ecCodewordsPerBlock: 26,
  8837. ecBlocks: [
  8838. { numBlocks: 3, dataCodewordsPerBlock: 41 },
  8839. { numBlocks: 13, dataCodewordsPerBlock: 42 },
  8840. ],
  8841. },
  8842. {
  8843. ecCodewordsPerBlock: 30,
  8844. ecBlocks: [
  8845. { numBlocks: 15, dataCodewordsPerBlock: 24 },
  8846. { numBlocks: 5, dataCodewordsPerBlock: 25 },
  8847. ],
  8848. },
  8849. {
  8850. ecCodewordsPerBlock: 28,
  8851. ecBlocks: [
  8852. { numBlocks: 15, dataCodewordsPerBlock: 15 },
  8853. { numBlocks: 10, dataCodewordsPerBlock: 16 },
  8854. ],
  8855. },
  8856. ],
  8857. },
  8858. {
  8859. infoBits: 0x15683,
  8860. versionNumber: 21,
  8861. alignmentPatternCenters: [6, 28, 50, 72, 94],
  8862. errorCorrectionLevels: [
  8863. {
  8864. ecCodewordsPerBlock: 28,
  8865. ecBlocks: [
  8866. { numBlocks: 4, dataCodewordsPerBlock: 116 },
  8867. { numBlocks: 4, dataCodewordsPerBlock: 117 },
  8868. ],
  8869. },
  8870. {
  8871. ecCodewordsPerBlock: 26,
  8872. ecBlocks: [{ numBlocks: 17, dataCodewordsPerBlock: 42 }],
  8873. },
  8874. {
  8875. ecCodewordsPerBlock: 28,
  8876. ecBlocks: [
  8877. { numBlocks: 17, dataCodewordsPerBlock: 22 },
  8878. { numBlocks: 6, dataCodewordsPerBlock: 23 },
  8879. ],
  8880. },
  8881. {
  8882. ecCodewordsPerBlock: 30,
  8883. ecBlocks: [
  8884. { numBlocks: 19, dataCodewordsPerBlock: 16 },
  8885. { numBlocks: 6, dataCodewordsPerBlock: 17 },
  8886. ],
  8887. },
  8888. ],
  8889. },
  8890. {
  8891. infoBits: 0x168C9,
  8892. versionNumber: 22,
  8893. alignmentPatternCenters: [6, 26, 50, 74, 98],
  8894. errorCorrectionLevels: [
  8895. {
  8896. ecCodewordsPerBlock: 28,
  8897. ecBlocks: [
  8898. { numBlocks: 2, dataCodewordsPerBlock: 111 },
  8899. { numBlocks: 7, dataCodewordsPerBlock: 112 },
  8900. ],
  8901. },
  8902. {
  8903. ecCodewordsPerBlock: 28,
  8904. ecBlocks: [{ numBlocks: 17, dataCodewordsPerBlock: 46 }],
  8905. },
  8906. {
  8907. ecCodewordsPerBlock: 30,
  8908. ecBlocks: [
  8909. { numBlocks: 7, dataCodewordsPerBlock: 24 },
  8910. { numBlocks: 16, dataCodewordsPerBlock: 25 },
  8911. ],
  8912. },
  8913. {
  8914. ecCodewordsPerBlock: 24,
  8915. ecBlocks: [{ numBlocks: 34, dataCodewordsPerBlock: 13 }],
  8916. },
  8917. ],
  8918. },
  8919. {
  8920. infoBits: 0x177EC,
  8921. versionNumber: 23,
  8922. alignmentPatternCenters: [6, 30, 54, 74, 102],
  8923. errorCorrectionLevels: [
  8924. {
  8925. ecCodewordsPerBlock: 30,
  8926. ecBlocks: [
  8927. { numBlocks: 4, dataCodewordsPerBlock: 121 },
  8928. { numBlocks: 5, dataCodewordsPerBlock: 122 },
  8929. ],
  8930. },
  8931. {
  8932. ecCodewordsPerBlock: 28,
  8933. ecBlocks: [
  8934. { numBlocks: 4, dataCodewordsPerBlock: 47 },
  8935. { numBlocks: 14, dataCodewordsPerBlock: 48 },
  8936. ],
  8937. },
  8938. {
  8939. ecCodewordsPerBlock: 30,
  8940. ecBlocks: [
  8941. { numBlocks: 11, dataCodewordsPerBlock: 24 },
  8942. { numBlocks: 14, dataCodewordsPerBlock: 25 },
  8943. ],
  8944. },
  8945. {
  8946. ecCodewordsPerBlock: 30,
  8947. ecBlocks: [
  8948. { numBlocks: 16, dataCodewordsPerBlock: 15 },
  8949. { numBlocks: 14, dataCodewordsPerBlock: 16 },
  8950. ],
  8951. },
  8952. ],
  8953. },
  8954. {
  8955. infoBits: 0x18EC4,
  8956. versionNumber: 24,
  8957. alignmentPatternCenters: [6, 28, 54, 80, 106],
  8958. errorCorrectionLevels: [
  8959. {
  8960. ecCodewordsPerBlock: 30,
  8961. ecBlocks: [
  8962. { numBlocks: 6, dataCodewordsPerBlock: 117 },
  8963. { numBlocks: 4, dataCodewordsPerBlock: 118 },
  8964. ],
  8965. },
  8966. {
  8967. ecCodewordsPerBlock: 28,
  8968. ecBlocks: [
  8969. { numBlocks: 6, dataCodewordsPerBlock: 45 },
  8970. { numBlocks: 14, dataCodewordsPerBlock: 46 },
  8971. ],
  8972. },
  8973. {
  8974. ecCodewordsPerBlock: 30,
  8975. ecBlocks: [
  8976. { numBlocks: 11, dataCodewordsPerBlock: 24 },
  8977. { numBlocks: 16, dataCodewordsPerBlock: 25 },
  8978. ],
  8979. },
  8980. {
  8981. ecCodewordsPerBlock: 30,
  8982. ecBlocks: [
  8983. { numBlocks: 30, dataCodewordsPerBlock: 16 },
  8984. { numBlocks: 2, dataCodewordsPerBlock: 17 },
  8985. ],
  8986. },
  8987. ],
  8988. },
  8989. {
  8990. infoBits: 0x191E1,
  8991. versionNumber: 25,
  8992. alignmentPatternCenters: [6, 32, 58, 84, 110],
  8993. errorCorrectionLevels: [
  8994. {
  8995. ecCodewordsPerBlock: 26,
  8996. ecBlocks: [
  8997. { numBlocks: 8, dataCodewordsPerBlock: 106 },
  8998. { numBlocks: 4, dataCodewordsPerBlock: 107 },
  8999. ],
  9000. },
  9001. {
  9002. ecCodewordsPerBlock: 28,
  9003. ecBlocks: [
  9004. { numBlocks: 8, dataCodewordsPerBlock: 47 },
  9005. { numBlocks: 13, dataCodewordsPerBlock: 48 },
  9006. ],
  9007. },
  9008. {
  9009. ecCodewordsPerBlock: 30,
  9010. ecBlocks: [
  9011. { numBlocks: 7, dataCodewordsPerBlock: 24 },
  9012. { numBlocks: 22, dataCodewordsPerBlock: 25 },
  9013. ],
  9014. },
  9015. {
  9016. ecCodewordsPerBlock: 30,
  9017. ecBlocks: [
  9018. { numBlocks: 22, dataCodewordsPerBlock: 15 },
  9019. { numBlocks: 13, dataCodewordsPerBlock: 16 },
  9020. ],
  9021. },
  9022. ],
  9023. },
  9024. {
  9025. infoBits: 0x1AFAB,
  9026. versionNumber: 26,
  9027. alignmentPatternCenters: [6, 30, 58, 86, 114],
  9028. errorCorrectionLevels: [
  9029. {
  9030. ecCodewordsPerBlock: 28,
  9031. ecBlocks: [
  9032. { numBlocks: 10, dataCodewordsPerBlock: 114 },
  9033. { numBlocks: 2, dataCodewordsPerBlock: 115 },
  9034. ],
  9035. },
  9036. {
  9037. ecCodewordsPerBlock: 28,
  9038. ecBlocks: [
  9039. { numBlocks: 19, dataCodewordsPerBlock: 46 },
  9040. { numBlocks: 4, dataCodewordsPerBlock: 47 },
  9041. ],
  9042. },
  9043. {
  9044. ecCodewordsPerBlock: 28,
  9045. ecBlocks: [
  9046. { numBlocks: 28, dataCodewordsPerBlock: 22 },
  9047. { numBlocks: 6, dataCodewordsPerBlock: 23 },
  9048. ],
  9049. },
  9050. {
  9051. ecCodewordsPerBlock: 30,
  9052. ecBlocks: [
  9053. { numBlocks: 33, dataCodewordsPerBlock: 16 },
  9054. { numBlocks: 4, dataCodewordsPerBlock: 17 },
  9055. ],
  9056. },
  9057. ],
  9058. },
  9059. {
  9060. infoBits: 0x1B08E,
  9061. versionNumber: 27,
  9062. alignmentPatternCenters: [6, 34, 62, 90, 118],
  9063. errorCorrectionLevels: [
  9064. {
  9065. ecCodewordsPerBlock: 30,
  9066. ecBlocks: [
  9067. { numBlocks: 8, dataCodewordsPerBlock: 122 },
  9068. { numBlocks: 4, dataCodewordsPerBlock: 123 },
  9069. ],
  9070. },
  9071. {
  9072. ecCodewordsPerBlock: 28,
  9073. ecBlocks: [
  9074. { numBlocks: 22, dataCodewordsPerBlock: 45 },
  9075. { numBlocks: 3, dataCodewordsPerBlock: 46 },
  9076. ],
  9077. },
  9078. {
  9079. ecCodewordsPerBlock: 30,
  9080. ecBlocks: [
  9081. { numBlocks: 8, dataCodewordsPerBlock: 23 },
  9082. { numBlocks: 26, dataCodewordsPerBlock: 24 },
  9083. ],
  9084. },
  9085. {
  9086. ecCodewordsPerBlock: 30,
  9087. ecBlocks: [
  9088. { numBlocks: 12, dataCodewordsPerBlock: 15 },
  9089. { numBlocks: 28, dataCodewordsPerBlock: 16 },
  9090. ],
  9091. },
  9092. ],
  9093. },
  9094. {
  9095. infoBits: 0x1CC1A,
  9096. versionNumber: 28,
  9097. alignmentPatternCenters: [6, 26, 50, 74, 98, 122],
  9098. errorCorrectionLevels: [
  9099. {
  9100. ecCodewordsPerBlock: 30,
  9101. ecBlocks: [
  9102. { numBlocks: 3, dataCodewordsPerBlock: 117 },
  9103. { numBlocks: 10, dataCodewordsPerBlock: 118 },
  9104. ],
  9105. },
  9106. {
  9107. ecCodewordsPerBlock: 28,
  9108. ecBlocks: [
  9109. { numBlocks: 3, dataCodewordsPerBlock: 45 },
  9110. { numBlocks: 23, dataCodewordsPerBlock: 46 },
  9111. ],
  9112. },
  9113. {
  9114. ecCodewordsPerBlock: 30,
  9115. ecBlocks: [
  9116. { numBlocks: 4, dataCodewordsPerBlock: 24 },
  9117. { numBlocks: 31, dataCodewordsPerBlock: 25 },
  9118. ],
  9119. },
  9120. {
  9121. ecCodewordsPerBlock: 30,
  9122. ecBlocks: [
  9123. { numBlocks: 11, dataCodewordsPerBlock: 15 },
  9124. { numBlocks: 31, dataCodewordsPerBlock: 16 },
  9125. ],
  9126. },
  9127. ],
  9128. },
  9129. {
  9130. infoBits: 0x1D33F,
  9131. versionNumber: 29,
  9132. alignmentPatternCenters: [6, 30, 54, 78, 102, 126],
  9133. errorCorrectionLevels: [
  9134. {
  9135. ecCodewordsPerBlock: 30,
  9136. ecBlocks: [
  9137. { numBlocks: 7, dataCodewordsPerBlock: 116 },
  9138. { numBlocks: 7, dataCodewordsPerBlock: 117 },
  9139. ],
  9140. },
  9141. {
  9142. ecCodewordsPerBlock: 28,
  9143. ecBlocks: [
  9144. { numBlocks: 21, dataCodewordsPerBlock: 45 },
  9145. { numBlocks: 7, dataCodewordsPerBlock: 46 },
  9146. ],
  9147. },
  9148. {
  9149. ecCodewordsPerBlock: 30,
  9150. ecBlocks: [
  9151. { numBlocks: 1, dataCodewordsPerBlock: 23 },
  9152. { numBlocks: 37, dataCodewordsPerBlock: 24 },
  9153. ],
  9154. },
  9155. {
  9156. ecCodewordsPerBlock: 30,
  9157. ecBlocks: [
  9158. { numBlocks: 19, dataCodewordsPerBlock: 15 },
  9159. { numBlocks: 26, dataCodewordsPerBlock: 16 },
  9160. ],
  9161. },
  9162. ],
  9163. },
  9164. {
  9165. infoBits: 0x1ED75,
  9166. versionNumber: 30,
  9167. alignmentPatternCenters: [6, 26, 52, 78, 104, 130],
  9168. errorCorrectionLevels: [
  9169. {
  9170. ecCodewordsPerBlock: 30,
  9171. ecBlocks: [
  9172. { numBlocks: 5, dataCodewordsPerBlock: 115 },
  9173. { numBlocks: 10, dataCodewordsPerBlock: 116 },
  9174. ],
  9175. },
  9176. {
  9177. ecCodewordsPerBlock: 28,
  9178. ecBlocks: [
  9179. { numBlocks: 19, dataCodewordsPerBlock: 47 },
  9180. { numBlocks: 10, dataCodewordsPerBlock: 48 },
  9181. ],
  9182. },
  9183. {
  9184. ecCodewordsPerBlock: 30,
  9185. ecBlocks: [
  9186. { numBlocks: 15, dataCodewordsPerBlock: 24 },
  9187. { numBlocks: 25, dataCodewordsPerBlock: 25 },
  9188. ],
  9189. },
  9190. {
  9191. ecCodewordsPerBlock: 30,
  9192. ecBlocks: [
  9193. { numBlocks: 23, dataCodewordsPerBlock: 15 },
  9194. { numBlocks: 25, dataCodewordsPerBlock: 16 },
  9195. ],
  9196. },
  9197. ],
  9198. },
  9199. {
  9200. infoBits: 0x1F250,
  9201. versionNumber: 31,
  9202. alignmentPatternCenters: [6, 30, 56, 82, 108, 134],
  9203. errorCorrectionLevels: [
  9204. {
  9205. ecCodewordsPerBlock: 30,
  9206. ecBlocks: [
  9207. { numBlocks: 13, dataCodewordsPerBlock: 115 },
  9208. { numBlocks: 3, dataCodewordsPerBlock: 116 },
  9209. ],
  9210. },
  9211. {
  9212. ecCodewordsPerBlock: 28,
  9213. ecBlocks: [
  9214. { numBlocks: 2, dataCodewordsPerBlock: 46 },
  9215. { numBlocks: 29, dataCodewordsPerBlock: 47 },
  9216. ],
  9217. },
  9218. {
  9219. ecCodewordsPerBlock: 30,
  9220. ecBlocks: [
  9221. { numBlocks: 42, dataCodewordsPerBlock: 24 },
  9222. { numBlocks: 1, dataCodewordsPerBlock: 25 },
  9223. ],
  9224. },
  9225. {
  9226. ecCodewordsPerBlock: 30,
  9227. ecBlocks: [
  9228. { numBlocks: 23, dataCodewordsPerBlock: 15 },
  9229. { numBlocks: 28, dataCodewordsPerBlock: 16 },
  9230. ],
  9231. },
  9232. ],
  9233. },
  9234. {
  9235. infoBits: 0x209D5,
  9236. versionNumber: 32,
  9237. alignmentPatternCenters: [6, 34, 60, 86, 112, 138],
  9238. errorCorrectionLevels: [
  9239. {
  9240. ecCodewordsPerBlock: 30,
  9241. ecBlocks: [{ numBlocks: 17, dataCodewordsPerBlock: 115 }],
  9242. },
  9243. {
  9244. ecCodewordsPerBlock: 28,
  9245. ecBlocks: [
  9246. { numBlocks: 10, dataCodewordsPerBlock: 46 },
  9247. { numBlocks: 23, dataCodewordsPerBlock: 47 },
  9248. ],
  9249. },
  9250. {
  9251. ecCodewordsPerBlock: 30,
  9252. ecBlocks: [
  9253. { numBlocks: 10, dataCodewordsPerBlock: 24 },
  9254. { numBlocks: 35, dataCodewordsPerBlock: 25 },
  9255. ],
  9256. },
  9257. {
  9258. ecCodewordsPerBlock: 30,
  9259. ecBlocks: [
  9260. { numBlocks: 19, dataCodewordsPerBlock: 15 },
  9261. { numBlocks: 35, dataCodewordsPerBlock: 16 },
  9262. ],
  9263. },
  9264. ],
  9265. },
  9266. {
  9267. infoBits: 0x216F0,
  9268. versionNumber: 33,
  9269. alignmentPatternCenters: [6, 30, 58, 86, 114, 142],
  9270. errorCorrectionLevels: [
  9271. {
  9272. ecCodewordsPerBlock: 30,
  9273. ecBlocks: [
  9274. { numBlocks: 17, dataCodewordsPerBlock: 115 },
  9275. { numBlocks: 1, dataCodewordsPerBlock: 116 },
  9276. ],
  9277. },
  9278. {
  9279. ecCodewordsPerBlock: 28,
  9280. ecBlocks: [
  9281. { numBlocks: 14, dataCodewordsPerBlock: 46 },
  9282. { numBlocks: 21, dataCodewordsPerBlock: 47 },
  9283. ],
  9284. },
  9285. {
  9286. ecCodewordsPerBlock: 30,
  9287. ecBlocks: [
  9288. { numBlocks: 29, dataCodewordsPerBlock: 24 },
  9289. { numBlocks: 19, dataCodewordsPerBlock: 25 },
  9290. ],
  9291. },
  9292. {
  9293. ecCodewordsPerBlock: 30,
  9294. ecBlocks: [
  9295. { numBlocks: 11, dataCodewordsPerBlock: 15 },
  9296. { numBlocks: 46, dataCodewordsPerBlock: 16 },
  9297. ],
  9298. },
  9299. ],
  9300. },
  9301. {
  9302. infoBits: 0x228BA,
  9303. versionNumber: 34,
  9304. alignmentPatternCenters: [6, 34, 62, 90, 118, 146],
  9305. errorCorrectionLevels: [
  9306. {
  9307. ecCodewordsPerBlock: 30,
  9308. ecBlocks: [
  9309. { numBlocks: 13, dataCodewordsPerBlock: 115 },
  9310. { numBlocks: 6, dataCodewordsPerBlock: 116 },
  9311. ],
  9312. },
  9313. {
  9314. ecCodewordsPerBlock: 28,
  9315. ecBlocks: [
  9316. { numBlocks: 14, dataCodewordsPerBlock: 46 },
  9317. { numBlocks: 23, dataCodewordsPerBlock: 47 },
  9318. ],
  9319. },
  9320. {
  9321. ecCodewordsPerBlock: 30,
  9322. ecBlocks: [
  9323. { numBlocks: 44, dataCodewordsPerBlock: 24 },
  9324. { numBlocks: 7, dataCodewordsPerBlock: 25 },
  9325. ],
  9326. },
  9327. {
  9328. ecCodewordsPerBlock: 30,
  9329. ecBlocks: [
  9330. { numBlocks: 59, dataCodewordsPerBlock: 16 },
  9331. { numBlocks: 1, dataCodewordsPerBlock: 17 },
  9332. ],
  9333. },
  9334. ],
  9335. },
  9336. {
  9337. infoBits: 0x2379F,
  9338. versionNumber: 35,
  9339. alignmentPatternCenters: [6, 30, 54, 78, 102, 126, 150],
  9340. errorCorrectionLevels: [
  9341. {
  9342. ecCodewordsPerBlock: 30,
  9343. ecBlocks: [
  9344. { numBlocks: 12, dataCodewordsPerBlock: 121 },
  9345. { numBlocks: 7, dataCodewordsPerBlock: 122 },
  9346. ],
  9347. },
  9348. {
  9349. ecCodewordsPerBlock: 28,
  9350. ecBlocks: [
  9351. { numBlocks: 12, dataCodewordsPerBlock: 47 },
  9352. { numBlocks: 26, dataCodewordsPerBlock: 48 },
  9353. ],
  9354. },
  9355. {
  9356. ecCodewordsPerBlock: 30,
  9357. ecBlocks: [
  9358. { numBlocks: 39, dataCodewordsPerBlock: 24 },
  9359. { numBlocks: 14, dataCodewordsPerBlock: 25 },
  9360. ],
  9361. },
  9362. {
  9363. ecCodewordsPerBlock: 30,
  9364. ecBlocks: [
  9365. { numBlocks: 22, dataCodewordsPerBlock: 15 },
  9366. { numBlocks: 41, dataCodewordsPerBlock: 16 },
  9367. ],
  9368. },
  9369. ],
  9370. },
  9371. {
  9372. infoBits: 0x24B0B,
  9373. versionNumber: 36,
  9374. alignmentPatternCenters: [6, 24, 50, 76, 102, 128, 154],
  9375. errorCorrectionLevels: [
  9376. {
  9377. ecCodewordsPerBlock: 30,
  9378. ecBlocks: [
  9379. { numBlocks: 6, dataCodewordsPerBlock: 121 },
  9380. { numBlocks: 14, dataCodewordsPerBlock: 122 },
  9381. ],
  9382. },
  9383. {
  9384. ecCodewordsPerBlock: 28,
  9385. ecBlocks: [
  9386. { numBlocks: 6, dataCodewordsPerBlock: 47 },
  9387. { numBlocks: 34, dataCodewordsPerBlock: 48 },
  9388. ],
  9389. },
  9390. {
  9391. ecCodewordsPerBlock: 30,
  9392. ecBlocks: [
  9393. { numBlocks: 46, dataCodewordsPerBlock: 24 },
  9394. { numBlocks: 10, dataCodewordsPerBlock: 25 },
  9395. ],
  9396. },
  9397. {
  9398. ecCodewordsPerBlock: 30,
  9399. ecBlocks: [
  9400. { numBlocks: 2, dataCodewordsPerBlock: 15 },
  9401. { numBlocks: 64, dataCodewordsPerBlock: 16 },
  9402. ],
  9403. },
  9404. ],
  9405. },
  9406. {
  9407. infoBits: 0x2542E,
  9408. versionNumber: 37,
  9409. alignmentPatternCenters: [6, 28, 54, 80, 106, 132, 158],
  9410. errorCorrectionLevels: [
  9411. {
  9412. ecCodewordsPerBlock: 30,
  9413. ecBlocks: [
  9414. { numBlocks: 17, dataCodewordsPerBlock: 122 },
  9415. { numBlocks: 4, dataCodewordsPerBlock: 123 },
  9416. ],
  9417. },
  9418. {
  9419. ecCodewordsPerBlock: 28,
  9420. ecBlocks: [
  9421. { numBlocks: 29, dataCodewordsPerBlock: 46 },
  9422. { numBlocks: 14, dataCodewordsPerBlock: 47 },
  9423. ],
  9424. },
  9425. {
  9426. ecCodewordsPerBlock: 30,
  9427. ecBlocks: [
  9428. { numBlocks: 49, dataCodewordsPerBlock: 24 },
  9429. { numBlocks: 10, dataCodewordsPerBlock: 25 },
  9430. ],
  9431. },
  9432. {
  9433. ecCodewordsPerBlock: 30,
  9434. ecBlocks: [
  9435. { numBlocks: 24, dataCodewordsPerBlock: 15 },
  9436. { numBlocks: 46, dataCodewordsPerBlock: 16 },
  9437. ],
  9438. },
  9439. ],
  9440. },
  9441. {
  9442. infoBits: 0x26A64,
  9443. versionNumber: 38,
  9444. alignmentPatternCenters: [6, 32, 58, 84, 110, 136, 162],
  9445. errorCorrectionLevels: [
  9446. {
  9447. ecCodewordsPerBlock: 30,
  9448. ecBlocks: [
  9449. { numBlocks: 4, dataCodewordsPerBlock: 122 },
  9450. { numBlocks: 18, dataCodewordsPerBlock: 123 },
  9451. ],
  9452. },
  9453. {
  9454. ecCodewordsPerBlock: 28,
  9455. ecBlocks: [
  9456. { numBlocks: 13, dataCodewordsPerBlock: 46 },
  9457. { numBlocks: 32, dataCodewordsPerBlock: 47 },
  9458. ],
  9459. },
  9460. {
  9461. ecCodewordsPerBlock: 30,
  9462. ecBlocks: [
  9463. { numBlocks: 48, dataCodewordsPerBlock: 24 },
  9464. { numBlocks: 14, dataCodewordsPerBlock: 25 },
  9465. ],
  9466. },
  9467. {
  9468. ecCodewordsPerBlock: 30,
  9469. ecBlocks: [
  9470. { numBlocks: 42, dataCodewordsPerBlock: 15 },
  9471. { numBlocks: 32, dataCodewordsPerBlock: 16 },
  9472. ],
  9473. },
  9474. ],
  9475. },
  9476. {
  9477. infoBits: 0x27541,
  9478. versionNumber: 39,
  9479. alignmentPatternCenters: [6, 26, 54, 82, 110, 138, 166],
  9480. errorCorrectionLevels: [
  9481. {
  9482. ecCodewordsPerBlock: 30,
  9483. ecBlocks: [
  9484. { numBlocks: 20, dataCodewordsPerBlock: 117 },
  9485. { numBlocks: 4, dataCodewordsPerBlock: 118 },
  9486. ],
  9487. },
  9488. {
  9489. ecCodewordsPerBlock: 28,
  9490. ecBlocks: [
  9491. { numBlocks: 40, dataCodewordsPerBlock: 47 },
  9492. { numBlocks: 7, dataCodewordsPerBlock: 48 },
  9493. ],
  9494. },
  9495. {
  9496. ecCodewordsPerBlock: 30,
  9497. ecBlocks: [
  9498. { numBlocks: 43, dataCodewordsPerBlock: 24 },
  9499. { numBlocks: 22, dataCodewordsPerBlock: 25 },
  9500. ],
  9501. },
  9502. {
  9503. ecCodewordsPerBlock: 30,
  9504. ecBlocks: [
  9505. { numBlocks: 10, dataCodewordsPerBlock: 15 },
  9506. { numBlocks: 67, dataCodewordsPerBlock: 16 },
  9507. ],
  9508. },
  9509. ],
  9510. },
  9511. {
  9512. infoBits: 0x28C69,
  9513. versionNumber: 40,
  9514. alignmentPatternCenters: [6, 30, 58, 86, 114, 142, 170],
  9515. errorCorrectionLevels: [
  9516. {
  9517. ecCodewordsPerBlock: 30,
  9518. ecBlocks: [
  9519. { numBlocks: 19, dataCodewordsPerBlock: 118 },
  9520. { numBlocks: 6, dataCodewordsPerBlock: 119 },
  9521. ],
  9522. },
  9523. {
  9524. ecCodewordsPerBlock: 28,
  9525. ecBlocks: [
  9526. { numBlocks: 18, dataCodewordsPerBlock: 47 },
  9527. { numBlocks: 31, dataCodewordsPerBlock: 48 },
  9528. ],
  9529. },
  9530. {
  9531. ecCodewordsPerBlock: 30,
  9532. ecBlocks: [
  9533. { numBlocks: 34, dataCodewordsPerBlock: 24 },
  9534. { numBlocks: 34, dataCodewordsPerBlock: 25 },
  9535. ],
  9536. },
  9537. {
  9538. ecCodewordsPerBlock: 30,
  9539. ecBlocks: [
  9540. { numBlocks: 20, dataCodewordsPerBlock: 15 },
  9541. { numBlocks: 61, dataCodewordsPerBlock: 16 },
  9542. ],
  9543. },
  9544. ],
  9545. },
  9546. ];
  9547. /***/ }),
  9548. /* 11 */
  9549. /***/ (function(module, exports, __webpack_require__) {
  9550. "use strict";
  9551. Object.defineProperty(exports, "__esModule", { value: true });
  9552. var BitMatrix_1 = __webpack_require__(0);
  9553. function squareToQuadrilateral(p1, p2, p3, p4) {
  9554. var dx3 = p1.x - p2.x + p3.x - p4.x;
  9555. var dy3 = p1.y - p2.y + p3.y - p4.y;
  9556. if (dx3 === 0 && dy3 === 0) { // Affine
  9557. return {
  9558. a11: p2.x - p1.x,
  9559. a12: p2.y - p1.y,
  9560. a13: 0,
  9561. a21: p3.x - p2.x,
  9562. a22: p3.y - p2.y,
  9563. a23: 0,
  9564. a31: p1.x,
  9565. a32: p1.y,
  9566. a33: 1,
  9567. };
  9568. }
  9569. else {
  9570. var dx1 = p2.x - p3.x;
  9571. var dx2 = p4.x - p3.x;
  9572. var dy1 = p2.y - p3.y;
  9573. var dy2 = p4.y - p3.y;
  9574. var denominator = dx1 * dy2 - dx2 * dy1;
  9575. var a13 = (dx3 * dy2 - dx2 * dy3) / denominator;
  9576. var a23 = (dx1 * dy3 - dx3 * dy1) / denominator;
  9577. return {
  9578. a11: p2.x - p1.x + a13 * p2.x,
  9579. a12: p2.y - p1.y + a13 * p2.y,
  9580. a13: a13,
  9581. a21: p4.x - p1.x + a23 * p4.x,
  9582. a22: p4.y - p1.y + a23 * p4.y,
  9583. a23: a23,
  9584. a31: p1.x,
  9585. a32: p1.y,
  9586. a33: 1,
  9587. };
  9588. }
  9589. }
  9590. function quadrilateralToSquare(p1, p2, p3, p4) {
  9591. // Here, the adjoint serves as the inverse:
  9592. var sToQ = squareToQuadrilateral(p1, p2, p3, p4);
  9593. return {
  9594. a11: sToQ.a22 * sToQ.a33 - sToQ.a23 * sToQ.a32,
  9595. a12: sToQ.a13 * sToQ.a32 - sToQ.a12 * sToQ.a33,
  9596. a13: sToQ.a12 * sToQ.a23 - sToQ.a13 * sToQ.a22,
  9597. a21: sToQ.a23 * sToQ.a31 - sToQ.a21 * sToQ.a33,
  9598. a22: sToQ.a11 * sToQ.a33 - sToQ.a13 * sToQ.a31,
  9599. a23: sToQ.a13 * sToQ.a21 - sToQ.a11 * sToQ.a23,
  9600. a31: sToQ.a21 * sToQ.a32 - sToQ.a22 * sToQ.a31,
  9601. a32: sToQ.a12 * sToQ.a31 - sToQ.a11 * sToQ.a32,
  9602. a33: sToQ.a11 * sToQ.a22 - sToQ.a12 * sToQ.a21,
  9603. };
  9604. }
  9605. function times(a, b) {
  9606. return {
  9607. a11: a.a11 * b.a11 + a.a21 * b.a12 + a.a31 * b.a13,
  9608. a12: a.a12 * b.a11 + a.a22 * b.a12 + a.a32 * b.a13,
  9609. a13: a.a13 * b.a11 + a.a23 * b.a12 + a.a33 * b.a13,
  9610. a21: a.a11 * b.a21 + a.a21 * b.a22 + a.a31 * b.a23,
  9611. a22: a.a12 * b.a21 + a.a22 * b.a22 + a.a32 * b.a23,
  9612. a23: a.a13 * b.a21 + a.a23 * b.a22 + a.a33 * b.a23,
  9613. a31: a.a11 * b.a31 + a.a21 * b.a32 + a.a31 * b.a33,
  9614. a32: a.a12 * b.a31 + a.a22 * b.a32 + a.a32 * b.a33,
  9615. a33: a.a13 * b.a31 + a.a23 * b.a32 + a.a33 * b.a33,
  9616. };
  9617. }
  9618. function extract(image, location) {
  9619. var qToS = quadrilateralToSquare({ x: 3.5, y: 3.5 }, { x: location.dimension - 3.5, y: 3.5 }, { x: location.dimension - 6.5, y: location.dimension - 6.5 }, { x: 3.5, y: location.dimension - 3.5 });
  9620. var sToQ = squareToQuadrilateral(location.topLeft, location.topRight, location.alignmentPattern, location.bottomLeft);
  9621. var transform = times(sToQ, qToS);
  9622. var matrix = BitMatrix_1.BitMatrix.createEmpty(location.dimension, location.dimension);
  9623. var mappingFunction = function (x, y) {
  9624. var denominator = transform.a13 * x + transform.a23 * y + transform.a33;
  9625. return {
  9626. x: (transform.a11 * x + transform.a21 * y + transform.a31) / denominator,
  9627. y: (transform.a12 * x + transform.a22 * y + transform.a32) / denominator,
  9628. };
  9629. };
  9630. for (var y = 0; y < location.dimension; y++) {
  9631. for (var x = 0; x < location.dimension; x++) {
  9632. var xValue = x + 0.5;
  9633. var yValue = y + 0.5;
  9634. var sourcePixel = mappingFunction(xValue, yValue);
  9635. matrix.set(x, y, image.get(Math.floor(sourcePixel.x), Math.floor(sourcePixel.y)));
  9636. }
  9637. }
  9638. return {
  9639. matrix: matrix,
  9640. mappingFunction: mappingFunction,
  9641. };
  9642. }
  9643. exports.extract = extract;
  9644. /***/ }),
  9645. /* 12 */
  9646. /***/ (function(module, exports, __webpack_require__) {
  9647. "use strict";
  9648. Object.defineProperty(exports, "__esModule", { value: true });
  9649. var MAX_FINDERPATTERNS_TO_SEARCH = 4;
  9650. var MIN_QUAD_RATIO = 0.5;
  9651. var MAX_QUAD_RATIO = 1.5;
  9652. var distance = function (a, b) { return Math.sqrt(Math.pow((b.x - a.x), 2) + Math.pow((b.y - a.y), 2)); };
  9653. function sum(values) {
  9654. return values.reduce(function (a, b) { return a + b; });
  9655. }
  9656. // Takes three finder patterns and organizes them into topLeft, topRight, etc
  9657. function reorderFinderPatterns(pattern1, pattern2, pattern3) {
  9658. var _a, _b, _c, _d;
  9659. // Find distances between pattern centers
  9660. var oneTwoDistance = distance(pattern1, pattern2);
  9661. var twoThreeDistance = distance(pattern2, pattern3);
  9662. var oneThreeDistance = distance(pattern1, pattern3);
  9663. var bottomLeft;
  9664. var topLeft;
  9665. var topRight;
  9666. // Assume one closest to other two is B; A and C will just be guesses at first
  9667. if (twoThreeDistance >= oneTwoDistance && twoThreeDistance >= oneThreeDistance) {
  9668. _a = [pattern2, pattern1, pattern3], bottomLeft = _a[0], topLeft = _a[1], topRight = _a[2];
  9669. }
  9670. else if (oneThreeDistance >= twoThreeDistance && oneThreeDistance >= oneTwoDistance) {
  9671. _b = [pattern1, pattern2, pattern3], bottomLeft = _b[0], topLeft = _b[1], topRight = _b[2];
  9672. }
  9673. else {
  9674. _c = [pattern1, pattern3, pattern2], bottomLeft = _c[0], topLeft = _c[1], topRight = _c[2];
  9675. }
  9676. // Use cross product to figure out whether bottomLeft (A) and topRight (C) are correct or flipped in relation to topLeft (B)
  9677. // This asks whether BC x BA has a positive z component, which is the arrangement we want. If it's negative, then
  9678. // we've got it flipped around and should swap topRight and bottomLeft.
  9679. if (((topRight.x - topLeft.x) * (bottomLeft.y - topLeft.y)) - ((topRight.y - topLeft.y) * (bottomLeft.x - topLeft.x)) < 0) {
  9680. _d = [topRight, bottomLeft], bottomLeft = _d[0], topRight = _d[1];
  9681. }
  9682. return { bottomLeft: bottomLeft, topLeft: topLeft, topRight: topRight };
  9683. }
  9684. // Computes the dimension (number of modules on a side) of the QR Code based on the position of the finder patterns
  9685. function computeDimension(topLeft, topRight, bottomLeft, matrix) {
  9686. var moduleSize = (sum(countBlackWhiteRun(topLeft, bottomLeft, matrix, 5)) / 7 + // Divide by 7 since the ratio is 1:1:3:1:1
  9687. sum(countBlackWhiteRun(topLeft, topRight, matrix, 5)) / 7 +
  9688. sum(countBlackWhiteRun(bottomLeft, topLeft, matrix, 5)) / 7 +
  9689. sum(countBlackWhiteRun(topRight, topLeft, matrix, 5)) / 7) / 4;
  9690. if (moduleSize < 1) {
  9691. throw new Error("Invalid module size");
  9692. }
  9693. var topDimension = Math.round(distance(topLeft, topRight) / moduleSize);
  9694. var sideDimension = Math.round(distance(topLeft, bottomLeft) / moduleSize);
  9695. var dimension = Math.floor((topDimension + sideDimension) / 2) + 7;
  9696. switch (dimension % 4) {
  9697. case 0:
  9698. dimension++;
  9699. break;
  9700. case 2:
  9701. dimension--;
  9702. break;
  9703. }
  9704. return { dimension: dimension, moduleSize: moduleSize };
  9705. }
  9706. // Takes an origin point and an end point and counts the sizes of the black white run from the origin towards the end point.
  9707. // Returns an array of elements, representing the pixel size of the black white run.
  9708. // Uses a variant of http://en.wikipedia.org/wiki/Bresenham's_line_algorithm
  9709. function countBlackWhiteRunTowardsPoint(origin, end, matrix, length) {
  9710. var switchPoints = [{ x: Math.floor(origin.x), y: Math.floor(origin.y) }];
  9711. var steep = Math.abs(end.y - origin.y) > Math.abs(end.x - origin.x);
  9712. var fromX;
  9713. var fromY;
  9714. var toX;
  9715. var toY;
  9716. if (steep) {
  9717. fromX = Math.floor(origin.y);
  9718. fromY = Math.floor(origin.x);
  9719. toX = Math.floor(end.y);
  9720. toY = Math.floor(end.x);
  9721. }
  9722. else {
  9723. fromX = Math.floor(origin.x);
  9724. fromY = Math.floor(origin.y);
  9725. toX = Math.floor(end.x);
  9726. toY = Math.floor(end.y);
  9727. }
  9728. var dx = Math.abs(toX - fromX);
  9729. var dy = Math.abs(toY - fromY);
  9730. var error = Math.floor(-dx / 2);
  9731. var xStep = fromX < toX ? 1 : -1;
  9732. var yStep = fromY < toY ? 1 : -1;
  9733. var currentPixel = true;
  9734. // Loop up until x == toX, but not beyond
  9735. for (var x = fromX, y = fromY; x !== toX + xStep; x += xStep) {
  9736. // Does current pixel mean we have moved white to black or vice versa?
  9737. // Scanning black in state 0,2 and white in state 1, so if we find the wrong
  9738. // color, advance to next state or end if we are in state 2 already
  9739. var realX = steep ? y : x;
  9740. var realY = steep ? x : y;
  9741. if (matrix.get(realX, realY) !== currentPixel) {
  9742. currentPixel = !currentPixel;
  9743. switchPoints.push({ x: realX, y: realY });
  9744. if (switchPoints.length === length + 1) {
  9745. break;
  9746. }
  9747. }
  9748. error += dy;
  9749. if (error > 0) {
  9750. if (y === toY) {
  9751. break;
  9752. }
  9753. y += yStep;
  9754. error -= dx;
  9755. }
  9756. }
  9757. var distances = [];
  9758. for (var i = 0; i < length; i++) {
  9759. if (switchPoints[i] && switchPoints[i + 1]) {
  9760. distances.push(distance(switchPoints[i], switchPoints[i + 1]));
  9761. }
  9762. else {
  9763. distances.push(0);
  9764. }
  9765. }
  9766. return distances;
  9767. }
  9768. // Takes an origin point and an end point and counts the sizes of the black white run in the origin point
  9769. // along the line that intersects with the end point. Returns an array of elements, representing the pixel sizes
  9770. // of the black white run. Takes a length which represents the number of switches from black to white to look for.
  9771. function countBlackWhiteRun(origin, end, matrix, length) {
  9772. var _a;
  9773. var rise = end.y - origin.y;
  9774. var run = end.x - origin.x;
  9775. var towardsEnd = countBlackWhiteRunTowardsPoint(origin, end, matrix, Math.ceil(length / 2));
  9776. var awayFromEnd = countBlackWhiteRunTowardsPoint(origin, { x: origin.x - run, y: origin.y - rise }, matrix, Math.ceil(length / 2));
  9777. var middleValue = towardsEnd.shift() + awayFromEnd.shift() - 1; // Substract one so we don't double count a pixel
  9778. return (_a = awayFromEnd.concat(middleValue)).concat.apply(_a, towardsEnd);
  9779. }
  9780. // Takes in a black white run and an array of expected ratios. Returns the average size of the run as well as the "error" -
  9781. // that is the amount the run diverges from the expected ratio
  9782. function scoreBlackWhiteRun(sequence, ratios) {
  9783. var averageSize = sum(sequence) / sum(ratios);
  9784. var error = 0;
  9785. ratios.forEach(function (ratio, i) {
  9786. error += Math.pow((sequence[i] - ratio * averageSize), 2);
  9787. });
  9788. return { averageSize: averageSize, error: error };
  9789. }
  9790. // Takes an X,Y point and an array of sizes and scores the point against those ratios.
  9791. // For example for a finder pattern takes the ratio list of 1:1:3:1:1 and checks horizontal, vertical and diagonal ratios
  9792. // against that.
  9793. function scorePattern(point, ratios, matrix) {
  9794. try {
  9795. var horizontalRun = countBlackWhiteRun(point, { x: -1, y: point.y }, matrix, ratios.length);
  9796. var verticalRun = countBlackWhiteRun(point, { x: point.x, y: -1 }, matrix, ratios.length);
  9797. var topLeftPoint = {
  9798. x: Math.max(0, point.x - point.y) - 1,
  9799. y: Math.max(0, point.y - point.x) - 1,
  9800. };
  9801. var topLeftBottomRightRun = countBlackWhiteRun(point, topLeftPoint, matrix, ratios.length);
  9802. var bottomLeftPoint = {
  9803. x: Math.min(matrix.width, point.x + point.y) + 1,
  9804. y: Math.min(matrix.height, point.y + point.x) + 1,
  9805. };
  9806. var bottomLeftTopRightRun = countBlackWhiteRun(point, bottomLeftPoint, matrix, ratios.length);
  9807. var horzError = scoreBlackWhiteRun(horizontalRun, ratios);
  9808. var vertError = scoreBlackWhiteRun(verticalRun, ratios);
  9809. var diagDownError = scoreBlackWhiteRun(topLeftBottomRightRun, ratios);
  9810. var diagUpError = scoreBlackWhiteRun(bottomLeftTopRightRun, ratios);
  9811. var ratioError = Math.sqrt(horzError.error * horzError.error +
  9812. vertError.error * vertError.error +
  9813. diagDownError.error * diagDownError.error +
  9814. diagUpError.error * diagUpError.error);
  9815. var avgSize = (horzError.averageSize + vertError.averageSize + diagDownError.averageSize + diagUpError.averageSize) / 4;
  9816. var sizeError = (Math.pow((horzError.averageSize - avgSize), 2) +
  9817. Math.pow((vertError.averageSize - avgSize), 2) +
  9818. Math.pow((diagDownError.averageSize - avgSize), 2) +
  9819. Math.pow((diagUpError.averageSize - avgSize), 2)) / avgSize;
  9820. return ratioError + sizeError;
  9821. }
  9822. catch (_a) {
  9823. return Infinity;
  9824. }
  9825. }
  9826. function recenterLocation(matrix, p) {
  9827. var leftX = Math.round(p.x);
  9828. while (matrix.get(leftX, Math.round(p.y))) {
  9829. leftX--;
  9830. }
  9831. var rightX = Math.round(p.x);
  9832. while (matrix.get(rightX, Math.round(p.y))) {
  9833. rightX++;
  9834. }
  9835. var x = (leftX + rightX) / 2;
  9836. var topY = Math.round(p.y);
  9837. while (matrix.get(Math.round(x), topY)) {
  9838. topY--;
  9839. }
  9840. var bottomY = Math.round(p.y);
  9841. while (matrix.get(Math.round(x), bottomY)) {
  9842. bottomY++;
  9843. }
  9844. var y = (topY + bottomY) / 2;
  9845. return { x: x, y: y };
  9846. }
  9847. function locate(matrix) {
  9848. var finderPatternQuads = [];
  9849. var activeFinderPatternQuads = [];
  9850. var alignmentPatternQuads = [];
  9851. var activeAlignmentPatternQuads = [];
  9852. var _loop_1 = function (y) {
  9853. var length_1 = 0;
  9854. var lastBit = false;
  9855. var scans = [0, 0, 0, 0, 0];
  9856. var _loop_2 = function (x) {
  9857. var v = matrix.get(x, y);
  9858. if (v === lastBit) {
  9859. length_1++;
  9860. }
  9861. else {
  9862. scans = [scans[1], scans[2], scans[3], scans[4], length_1];
  9863. length_1 = 1;
  9864. lastBit = v;
  9865. // Do the last 5 color changes ~ match the expected ratio for a finder pattern? 1:1:3:1:1 of b:w:b:w:b
  9866. var averageFinderPatternBlocksize = sum(scans) / 7;
  9867. var validFinderPattern = Math.abs(scans[0] - averageFinderPatternBlocksize) < averageFinderPatternBlocksize &&
  9868. Math.abs(scans[1] - averageFinderPatternBlocksize) < averageFinderPatternBlocksize &&
  9869. Math.abs(scans[2] - 3 * averageFinderPatternBlocksize) < 3 * averageFinderPatternBlocksize &&
  9870. Math.abs(scans[3] - averageFinderPatternBlocksize) < averageFinderPatternBlocksize &&
  9871. Math.abs(scans[4] - averageFinderPatternBlocksize) < averageFinderPatternBlocksize &&
  9872. !v; // And make sure the current pixel is white since finder patterns are bordered in white
  9873. // Do the last 3 color changes ~ match the expected ratio for an alignment pattern? 1:1:1 of w:b:w
  9874. var averageAlignmentPatternBlocksize = sum(scans.slice(-3)) / 3;
  9875. var validAlignmentPattern = Math.abs(scans[2] - averageAlignmentPatternBlocksize) < averageAlignmentPatternBlocksize &&
  9876. Math.abs(scans[3] - averageAlignmentPatternBlocksize) < averageAlignmentPatternBlocksize &&
  9877. Math.abs(scans[4] - averageAlignmentPatternBlocksize) < averageAlignmentPatternBlocksize &&
  9878. v; // Is the current pixel black since alignment patterns are bordered in black
  9879. if (validFinderPattern) {
  9880. // Compute the start and end x values of the large center black square
  9881. var endX_1 = x - scans[3] - scans[4];
  9882. var startX_1 = endX_1 - scans[2];
  9883. var line = { startX: startX_1, endX: endX_1, y: y };
  9884. // Is there a quad directly above the current spot? If so, extend it with the new line. Otherwise, create a new quad with
  9885. // that line as the starting point.
  9886. var matchingQuads = activeFinderPatternQuads.filter(function (q) {
  9887. return (startX_1 >= q.bottom.startX && startX_1 <= q.bottom.endX) ||
  9888. (endX_1 >= q.bottom.startX && startX_1 <= q.bottom.endX) ||
  9889. (startX_1 <= q.bottom.startX && endX_1 >= q.bottom.endX && ((scans[2] / (q.bottom.endX - q.bottom.startX)) < MAX_QUAD_RATIO &&
  9890. (scans[2] / (q.bottom.endX - q.bottom.startX)) > MIN_QUAD_RATIO));
  9891. });
  9892. if (matchingQuads.length > 0) {
  9893. matchingQuads[0].bottom = line;
  9894. }
  9895. else {
  9896. activeFinderPatternQuads.push({ top: line, bottom: line });
  9897. }
  9898. }
  9899. if (validAlignmentPattern) {
  9900. // Compute the start and end x values of the center black square
  9901. var endX_2 = x - scans[4];
  9902. var startX_2 = endX_2 - scans[3];
  9903. var line = { startX: startX_2, y: y, endX: endX_2 };
  9904. // Is there a quad directly above the current spot? If so, extend it with the new line. Otherwise, create a new quad with
  9905. // that line as the starting point.
  9906. var matchingQuads = activeAlignmentPatternQuads.filter(function (q) {
  9907. return (startX_2 >= q.bottom.startX && startX_2 <= q.bottom.endX) ||
  9908. (endX_2 >= q.bottom.startX && startX_2 <= q.bottom.endX) ||
  9909. (startX_2 <= q.bottom.startX && endX_2 >= q.bottom.endX && ((scans[2] / (q.bottom.endX - q.bottom.startX)) < MAX_QUAD_RATIO &&
  9910. (scans[2] / (q.bottom.endX - q.bottom.startX)) > MIN_QUAD_RATIO));
  9911. });
  9912. if (matchingQuads.length > 0) {
  9913. matchingQuads[0].bottom = line;
  9914. }
  9915. else {
  9916. activeAlignmentPatternQuads.push({ top: line, bottom: line });
  9917. }
  9918. }
  9919. }
  9920. };
  9921. for (var x = -1; x <= matrix.width; x++) {
  9922. _loop_2(x);
  9923. }
  9924. finderPatternQuads.push.apply(finderPatternQuads, activeFinderPatternQuads.filter(function (q) { return q.bottom.y !== y && q.bottom.y - q.top.y >= 2; }));
  9925. activeFinderPatternQuads = activeFinderPatternQuads.filter(function (q) { return q.bottom.y === y; });
  9926. alignmentPatternQuads.push.apply(alignmentPatternQuads, activeAlignmentPatternQuads.filter(function (q) { return q.bottom.y !== y; }));
  9927. activeAlignmentPatternQuads = activeAlignmentPatternQuads.filter(function (q) { return q.bottom.y === y; });
  9928. };
  9929. for (var y = 0; y <= matrix.height; y++) {
  9930. _loop_1(y);
  9931. }
  9932. finderPatternQuads.push.apply(finderPatternQuads, activeFinderPatternQuads.filter(function (q) { return q.bottom.y - q.top.y >= 2; }));
  9933. alignmentPatternQuads.push.apply(alignmentPatternQuads, activeAlignmentPatternQuads);
  9934. var finderPatternGroups = finderPatternQuads
  9935. .filter(function (q) { return q.bottom.y - q.top.y >= 2; }) // All quads must be at least 2px tall since the center square is larger than a block
  9936. .map(function (q) {
  9937. var x = (q.top.startX + q.top.endX + q.bottom.startX + q.bottom.endX) / 4;
  9938. var y = (q.top.y + q.bottom.y + 1) / 2;
  9939. if (!matrix.get(Math.round(x), Math.round(y))) {
  9940. return;
  9941. }
  9942. var lengths = [q.top.endX - q.top.startX, q.bottom.endX - q.bottom.startX, q.bottom.y - q.top.y + 1];
  9943. var size = sum(lengths) / lengths.length;
  9944. var score = scorePattern({ x: Math.round(x), y: Math.round(y) }, [1, 1, 3, 1, 1], matrix);
  9945. return { score: score, x: x, y: y, size: size };
  9946. })
  9947. .filter(function (q) { return !!q; }) // Filter out any rejected quads from above
  9948. .sort(function (a, b) { return a.score - b.score; })
  9949. // Now take the top finder pattern options and try to find 2 other options with a similar size.
  9950. .map(function (point, i, finderPatterns) {
  9951. if (i > MAX_FINDERPATTERNS_TO_SEARCH) {
  9952. return null;
  9953. }
  9954. var otherPoints = finderPatterns
  9955. .filter(function (p, ii) { return i !== ii; })
  9956. .map(function (p) { return ({ x: p.x, y: p.y, score: p.score + (Math.pow((p.size - point.size), 2)) / point.size, size: p.size }); })
  9957. .sort(function (a, b) { return a.score - b.score; });
  9958. if (otherPoints.length < 2) {
  9959. return null;
  9960. }
  9961. var score = point.score + otherPoints[0].score + otherPoints[1].score;
  9962. return { points: [point].concat(otherPoints.slice(0, 2)), score: score };
  9963. })
  9964. .filter(function (q) { return !!q; }) // Filter out any rejected finder patterns from above
  9965. .sort(function (a, b) { return a.score - b.score; });
  9966. if (finderPatternGroups.length === 0) {
  9967. return null;
  9968. }
  9969. var _a = reorderFinderPatterns(finderPatternGroups[0].points[0], finderPatternGroups[0].points[1], finderPatternGroups[0].points[2]), topRight = _a.topRight, topLeft = _a.topLeft, bottomLeft = _a.bottomLeft;
  9970. var alignment = findAlignmentPattern(matrix, alignmentPatternQuads, topRight, topLeft, bottomLeft);
  9971. var result = [];
  9972. if (alignment) {
  9973. result.push({
  9974. alignmentPattern: { x: alignment.alignmentPattern.x, y: alignment.alignmentPattern.y },
  9975. bottomLeft: { x: bottomLeft.x, y: bottomLeft.y },
  9976. dimension: alignment.dimension,
  9977. topLeft: { x: topLeft.x, y: topLeft.y },
  9978. topRight: { x: topRight.x, y: topRight.y },
  9979. });
  9980. }
  9981. // We normally use the center of the quads as the location of the tracking points, which is optimal for most cases and will account
  9982. // for a skew in the image. However, In some cases, a slight skew might not be real and instead be caused by image compression
  9983. // errors and/or low resolution. For those cases, we'd be better off centering the point exactly in the middle of the black area. We
  9984. // compute and return the location data for the naively centered points as it is little additional work and allows for multiple
  9985. // attempts at decoding harder images.
  9986. var midTopRight = recenterLocation(matrix, topRight);
  9987. var midTopLeft = recenterLocation(matrix, topLeft);
  9988. var midBottomLeft = recenterLocation(matrix, bottomLeft);
  9989. var centeredAlignment = findAlignmentPattern(matrix, alignmentPatternQuads, midTopRight, midTopLeft, midBottomLeft);
  9990. if (centeredAlignment) {
  9991. result.push({
  9992. alignmentPattern: { x: centeredAlignment.alignmentPattern.x, y: centeredAlignment.alignmentPattern.y },
  9993. bottomLeft: { x: midBottomLeft.x, y: midBottomLeft.y },
  9994. topLeft: { x: midTopLeft.x, y: midTopLeft.y },
  9995. topRight: { x: midTopRight.x, y: midTopRight.y },
  9996. dimension: centeredAlignment.dimension,
  9997. });
  9998. }
  9999. if (result.length === 0) {
  10000. return null;
  10001. }
  10002. return result;
  10003. }
  10004. exports.locate = locate;
  10005. function findAlignmentPattern(matrix, alignmentPatternQuads, topRight, topLeft, bottomLeft) {
  10006. var _a;
  10007. // Now that we've found the three finder patterns we can determine the blockSize and the size of the QR code.
  10008. // We'll use these to help find the alignment pattern but also later when we do the extraction.
  10009. var dimension;
  10010. var moduleSize;
  10011. try {
  10012. (_a = computeDimension(topLeft, topRight, bottomLeft, matrix), dimension = _a.dimension, moduleSize = _a.moduleSize);
  10013. }
  10014. catch (e) {
  10015. return null;
  10016. }
  10017. // Now find the alignment pattern
  10018. var bottomRightFinderPattern = {
  10019. x: topRight.x - topLeft.x + bottomLeft.x,
  10020. y: topRight.y - topLeft.y + bottomLeft.y,
  10021. };
  10022. var modulesBetweenFinderPatterns = ((distance(topLeft, bottomLeft) + distance(topLeft, topRight)) / 2 / moduleSize);
  10023. var correctionToTopLeft = 1 - (3 / modulesBetweenFinderPatterns);
  10024. var expectedAlignmentPattern = {
  10025. x: topLeft.x + correctionToTopLeft * (bottomRightFinderPattern.x - topLeft.x),
  10026. y: topLeft.y + correctionToTopLeft * (bottomRightFinderPattern.y - topLeft.y),
  10027. };
  10028. var alignmentPatterns = alignmentPatternQuads
  10029. .map(function (q) {
  10030. var x = (q.top.startX + q.top.endX + q.bottom.startX + q.bottom.endX) / 4;
  10031. var y = (q.top.y + q.bottom.y + 1) / 2;
  10032. if (!matrix.get(Math.floor(x), Math.floor(y))) {
  10033. return;
  10034. }
  10035. var lengths = [q.top.endX - q.top.startX, q.bottom.endX - q.bottom.startX, (q.bottom.y - q.top.y + 1)];
  10036. var size = sum(lengths) / lengths.length;
  10037. var sizeScore = scorePattern({ x: Math.floor(x), y: Math.floor(y) }, [1, 1, 1], matrix);
  10038. var score = sizeScore + distance({ x: x, y: y }, expectedAlignmentPattern);
  10039. return { x: x, y: y, score: score };
  10040. })
  10041. .filter(function (v) { return !!v; })
  10042. .sort(function (a, b) { return a.score - b.score; });
  10043. // If there are less than 15 modules between finder patterns it's a version 1 QR code and as such has no alignmemnt pattern
  10044. // so we can only use our best guess.
  10045. var alignmentPattern = modulesBetweenFinderPatterns >= 15 && alignmentPatterns.length ? alignmentPatterns[0] : expectedAlignmentPattern;
  10046. return { alignmentPattern: alignmentPattern, dimension: dimension };
  10047. }
  10048. /***/ })
  10049. /******/ ])["default"];
  10050. });