123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483124841248512486124871248812489124901249112492124931249412495124961249712498124991250012501125021250312504125051250612507125081250912510125111251212513125141251512516125171251812519125201252112522125231252412525125261252712528125291253012531125321253312534125351253612537125381253912540125411254212543125441254512546125471254812549125501255112552125531255412555125561255712558125591256012561125621256312564125651256612567125681256912570125711257212573125741257512576125771257812579125801258112582125831258412585125861258712588125891259012591125921259312594125951259612597125981259912600126011260212603126041260512606126071260812609126101261112612126131261412615126161261712618126191262012621126221262312624126251262612627126281262912630126311263212633126341263512636126371263812639126401264112642126431264412645126461264712648126491265012651126521265312654126551265612657126581265912660126611266212663126641266512666126671266812669126701267112672126731267412675126761267712678126791268012681126821268312684126851268612687126881268912690126911269212693126941269512696126971269812699127001270112702127031270412705127061270712708127091271012711127121271312714127151271612717127181271912720127211272212723127241272512726127271272812729127301273112732127331273412735127361273712738127391274012741127421274312744127451274612747127481274912750127511275212753127541275512756127571275812759127601276112762127631276412765127661276712768127691277012771127721277312774127751277612777127781277912780127811278212783127841278512786127871278812789127901279112792127931279412795127961279712798127991280012801128021280312804128051280612807128081280912810128111281212813128141281512816128171281812819128201282112822128231282412825128261282712828128291283012831128321283312834128351283612837128381283912840128411284212843128441284512846128471284812849128501285112852128531285412855128561285712858128591286012861128621286312864128651286612867128681286912870128711287212873128741287512876128771287812879128801288112882128831288412885128861288712888128891289012891128921289312894128951289612897128981289912900129011290212903129041290512906129071290812909129101291112912129131291412915129161291712918129191292012921129221292312924129251292612927129281292912930129311293212933129341293512936129371293812939129401294112942129431294412945129461294712948129491295012951129521295312954129551295612957129581295912960129611296212963129641296512966129671296812969129701297112972129731297412975129761297712978129791298012981129821298312984129851298612987129881298912990129911299212993129941299512996129971299812999130001300113002130031300413005130061300713008130091301013011130121301313014130151301613017130181301913020130211302213023130241302513026130271302813029130301303113032130331303413035130361303713038130391304013041130421304313044130451304613047130481304913050130511305213053130541305513056130571305813059130601306113062130631306413065130661306713068130691307013071130721307313074130751307613077130781307913080130811308213083130841308513086130871308813089130901309113092130931309413095130961309713098130991310013101131021310313104131051310613107131081310913110131111311213113131141311513116131171311813119131201312113122131231312413125131261312713128131291313013131131321313313134131351313613137131381313913140131411314213143131441314513146131471314813149131501315113152131531315413155131561315713158131591316013161131621316313164131651316613167131681316913170131711317213173131741317513176131771317813179131801318113182131831318413185131861318713188131891319013191131921319313194131951319613197131981319913200132011320213203132041320513206132071320813209132101321113212132131321413215132161321713218132191322013221132221322313224132251322613227132281322913230132311323213233132341323513236132371323813239132401324113242132431324413245132461324713248132491325013251132521325313254132551325613257132581325913260132611326213263132641326513266132671326813269132701327113272132731327413275132761327713278132791328013281132821328313284132851328613287132881328913290132911329213293132941329513296132971329813299133001330113302133031330413305133061330713308133091331013311133121331313314133151331613317133181331913320133211332213323133241332513326133271332813329133301333113332133331333413335133361333713338133391334013341133421334313344133451334613347133481334913350133511335213353133541335513356133571335813359133601336113362133631336413365133661336713368133691337013371133721337313374133751337613377133781337913380133811338213383133841338513386133871338813389133901339113392133931339413395133961339713398133991340013401134021340313404134051340613407134081340913410134111341213413134141341513416134171341813419134201342113422134231342413425134261342713428134291343013431134321343313434134351343613437134381343913440134411344213443134441344513446134471344813449134501345113452134531345413455134561345713458134591346013461134621346313464134651346613467134681346913470134711347213473134741347513476134771347813479134801348113482134831348413485134861348713488134891349013491134921349313494134951349613497134981349913500135011350213503135041350513506135071350813509135101351113512135131351413515135161351713518135191352013521135221352313524135251352613527135281352913530135311353213533135341353513536135371353813539135401354113542135431354413545135461354713548135491355013551135521355313554135551355613557135581355913560135611356213563135641356513566135671356813569135701357113572135731357413575135761357713578135791358013581135821358313584135851358613587135881358913590135911359213593135941359513596135971359813599136001360113602136031360413605136061360713608136091361013611136121361313614136151361613617136181361913620136211362213623136241362513626136271362813629136301363113632136331363413635136361363713638136391364013641136421364313644136451364613647136481364913650136511365213653136541365513656136571365813659136601366113662136631366413665136661366713668136691367013671136721367313674136751367613677136781367913680136811368213683136841368513686136871368813689136901369113692136931369413695136961369713698136991370013701137021370313704137051370613707137081370913710137111371213713137141371513716137171371813719137201372113722137231372413725137261372713728137291373013731137321373313734137351373613737137381373913740137411374213743137441374513746137471374813749137501375113752137531375413755137561375713758137591376013761137621376313764137651376613767137681376913770137711377213773137741377513776137771377813779137801378113782137831378413785137861378713788137891379013791137921379313794137951379613797137981379913800138011380213803138041380513806138071380813809138101381113812138131381413815138161381713818138191382013821138221382313824138251382613827138281382913830138311383213833138341383513836138371383813839138401384113842138431384413845138461384713848138491385013851138521385313854138551385613857138581385913860138611386213863138641386513866138671386813869138701387113872138731387413875138761387713878138791388013881138821388313884138851388613887138881388913890138911389213893138941389513896138971389813899139001390113902139031390413905139061390713908139091391013911139121391313914139151391613917139181391913920139211392213923139241392513926139271392813929139301393113932139331393413935139361393713938139391394013941139421394313944139451394613947139481394913950139511395213953139541395513956139571395813959139601396113962139631396413965139661396713968139691397013971139721397313974139751397613977139781397913980139811398213983139841398513986139871398813989139901399113992139931399413995139961399713998139991400014001140021400314004140051400614007140081400914010140111401214013140141401514016140171401814019140201402114022140231402414025140261402714028140291403014031140321403314034140351403614037140381403914040140411404214043140441404514046140471404814049140501405114052140531405414055140561405714058140591406014061140621406314064140651406614067140681406914070140711407214073140741407514076140771407814079140801408114082140831408414085140861408714088140891409014091140921409314094140951409614097140981409914100141011410214103141041410514106141071410814109141101411114112141131411414115141161411714118141191412014121141221412314124141251412614127141281412914130141311413214133141341413514136141371413814139141401414114142141431414414145141461414714148141491415014151141521415314154141551415614157141581415914160141611416214163141641416514166141671416814169141701417114172141731417414175141761417714178141791418014181141821418314184141851418614187141881418914190141911419214193141941419514196141971419814199142001420114202142031420414205142061420714208142091421014211142121421314214142151421614217142181421914220142211422214223142241422514226142271422814229142301423114232142331423414235142361423714238142391424014241142421424314244142451424614247142481424914250142511425214253142541425514256142571425814259142601426114262142631426414265142661426714268142691427014271142721427314274142751427614277142781427914280142811428214283142841428514286142871428814289142901429114292142931429414295142961429714298142991430014301143021430314304143051430614307143081430914310143111431214313143141431514316143171431814319143201432114322143231432414325143261432714328143291433014331143321433314334143351433614337143381433914340143411434214343143441434514346143471434814349143501435114352143531435414355143561435714358143591436014361143621436314364143651436614367143681436914370143711437214373143741437514376143771437814379143801438114382143831438414385143861438714388143891439014391143921439314394143951439614397143981439914400144011440214403144041440514406144071440814409144101441114412144131441414415144161441714418144191442014421144221442314424144251442614427144281442914430144311443214433144341443514436144371443814439144401444114442144431444414445144461444714448144491445014451144521445314454144551445614457144581445914460144611446214463144641446514466144671446814469144701447114472144731447414475144761447714478144791448014481144821448314484144851448614487144881448914490144911449214493144941449514496144971449814499145001450114502145031450414505145061450714508145091451014511145121451314514145151451614517145181451914520145211452214523145241452514526145271452814529145301453114532145331453414535145361453714538145391454014541145421454314544145451454614547145481454914550145511455214553145541455514556145571455814559145601456114562145631456414565145661456714568145691457014571145721457314574145751457614577145781457914580145811458214583145841458514586145871458814589145901459114592145931459414595145961459714598145991460014601146021460314604146051460614607146081460914610146111461214613146141461514616146171461814619146201462114622146231462414625146261462714628146291463014631146321463314634146351463614637146381463914640146411464214643146441464514646146471464814649146501465114652146531465414655146561465714658146591466014661146621466314664146651466614667146681466914670146711467214673146741467514676146771467814679146801468114682146831468414685146861468714688146891469014691146921469314694146951469614697146981469914700147011470214703147041470514706147071470814709147101471114712147131471414715147161471714718147191472014721147221472314724147251472614727147281472914730147311473214733147341473514736147371473814739147401474114742147431474414745147461474714748147491475014751147521475314754147551475614757147581475914760147611476214763147641476514766147671476814769147701477114772147731477414775147761477714778147791478014781147821478314784147851478614787147881478914790147911479214793147941479514796147971479814799148001480114802148031480414805148061480714808148091481014811148121481314814148151481614817148181481914820148211482214823148241482514826148271482814829148301483114832148331483414835148361483714838148391484014841148421484314844148451484614847148481484914850148511485214853148541485514856148571485814859148601486114862148631486414865148661486714868148691487014871148721487314874148751487614877148781487914880148811488214883148841488514886148871488814889148901489114892148931489414895148961489714898148991490014901149021490314904149051490614907149081490914910149111491214913149141491514916149171491814919149201492114922149231492414925149261492714928149291493014931149321493314934149351493614937149381493914940149411494214943149441494514946149471494814949149501495114952149531495414955149561495714958149591496014961149621496314964149651496614967149681496914970149711497214973149741497514976149771497814979149801498114982149831498414985149861498714988149891499014991149921499314994149951499614997149981499915000150011500215003150041500515006150071500815009150101501115012150131501415015150161501715018150191502015021150221502315024150251502615027150281502915030150311503215033150341503515036150371503815039150401504115042150431504415045150461504715048150491505015051150521505315054150551505615057150581505915060150611506215063150641506515066150671506815069150701507115072150731507415075150761507715078150791508015081150821508315084150851508615087150881508915090150911509215093150941509515096150971509815099151001510115102151031510415105151061510715108151091511015111151121511315114151151511615117151181511915120151211512215123151241512515126151271512815129151301513115132151331513415135151361513715138151391514015141151421514315144151451514615147151481514915150151511515215153151541515515156151571515815159151601516115162151631516415165151661516715168151691517015171151721517315174151751517615177151781517915180151811518215183151841518515186151871518815189151901519115192151931519415195151961519715198151991520015201152021520315204152051520615207152081520915210152111521215213152141521515216152171521815219152201522115222152231522415225152261522715228152291523015231152321523315234152351523615237152381523915240152411524215243152441524515246152471524815249152501525115252152531525415255152561525715258152591526015261152621526315264152651526615267152681526915270152711527215273152741527515276152771527815279152801528115282152831528415285152861528715288152891529015291152921529315294152951529615297152981529915300153011530215303153041530515306153071530815309153101531115312153131531415315153161531715318153191532015321153221532315324153251532615327153281532915330153311533215333153341533515336153371533815339153401534115342153431534415345153461534715348153491535015351153521535315354153551535615357153581535915360153611536215363153641536515366153671536815369153701537115372153731537415375153761537715378153791538015381153821538315384153851538615387153881538915390153911539215393153941539515396153971539815399154001540115402154031540415405154061540715408154091541015411154121541315414154151541615417154181541915420154211542215423154241542515426154271542815429154301543115432154331543415435154361543715438154391544015441154421544315444154451544615447154481544915450154511545215453154541545515456154571545815459154601546115462154631546415465154661546715468154691547015471154721547315474154751547615477154781547915480154811548215483154841548515486154871548815489154901549115492154931549415495154961549715498154991550015501155021550315504155051550615507155081550915510155111551215513155141551515516155171551815519155201552115522155231552415525155261552715528155291553015531155321553315534155351553615537155381553915540155411554215543155441554515546155471554815549155501555115552155531555415555155561555715558155591556015561155621556315564155651556615567155681556915570155711557215573155741557515576155771557815579155801558115582155831558415585155861558715588155891559015591155921559315594155951559615597155981559915600156011560215603156041560515606156071560815609156101561115612156131561415615156161561715618156191562015621156221562315624156251562615627156281562915630156311563215633156341563515636156371563815639156401564115642156431564415645156461564715648156491565015651156521565315654156551565615657156581565915660156611566215663156641566515666156671566815669156701567115672156731567415675156761567715678156791568015681156821568315684156851568615687156881568915690156911569215693156941569515696156971569815699157001570115702157031570415705157061570715708157091571015711157121571315714157151571615717157181571915720157211572215723157241572515726157271572815729157301573115732157331573415735157361573715738157391574015741157421574315744157451574615747157481574915750157511575215753157541575515756157571575815759157601576115762157631576415765157661576715768157691577015771157721577315774157751577615777157781577915780157811578215783157841578515786157871578815789157901579115792157931579415795157961579715798157991580015801158021580315804158051580615807158081580915810158111581215813158141581515816158171581815819158201582115822158231582415825158261582715828158291583015831158321583315834158351583615837158381583915840158411584215843158441584515846158471584815849158501585115852158531585415855158561585715858158591586015861158621586315864158651586615867158681586915870158711587215873158741587515876158771587815879158801588115882158831588415885158861588715888158891589015891158921589315894158951589615897158981589915900159011590215903159041590515906159071590815909159101591115912159131591415915159161591715918159191592015921159221592315924159251592615927159281592915930159311593215933159341593515936159371593815939159401594115942159431594415945159461594715948159491595015951159521595315954159551595615957159581595915960159611596215963159641596515966159671596815969159701597115972159731597415975159761597715978159791598015981159821598315984159851598615987159881598915990159911599215993159941599515996159971599815999160001600116002160031600416005160061600716008160091601016011160121601316014160151601616017160181601916020160211602216023160241602516026160271602816029160301603116032160331603416035160361603716038160391604016041160421604316044160451604616047160481604916050160511605216053160541605516056160571605816059160601606116062160631606416065160661606716068160691607016071160721607316074160751607616077160781607916080160811608216083160841608516086160871608816089160901609116092160931609416095160961609716098160991610016101161021610316104161051610616107161081610916110161111611216113161141611516116161171611816119161201612116122161231612416125161261612716128161291613016131161321613316134161351613616137161381613916140161411614216143161441614516146161471614816149161501615116152161531615416155161561615716158161591616016161161621616316164161651616616167161681616916170161711617216173161741617516176161771617816179161801618116182161831618416185161861618716188161891619016191161921619316194161951619616197161981619916200162011620216203162041620516206162071620816209162101621116212162131621416215162161621716218162191622016221162221622316224162251622616227162281622916230162311623216233162341623516236162371623816239162401624116242162431624416245162461624716248162491625016251162521625316254162551625616257162581625916260162611626216263162641626516266162671626816269162701627116272162731627416275162761627716278162791628016281162821628316284162851628616287162881628916290162911629216293162941629516296162971629816299163001630116302163031630416305163061630716308163091631016311163121631316314163151631616317163181631916320163211632216323163241632516326163271632816329163301633116332163331633416335163361633716338163391634016341163421634316344163451634616347163481634916350163511635216353163541635516356163571635816359163601636116362163631636416365163661636716368163691637016371163721637316374163751637616377163781637916380163811638216383163841638516386163871638816389163901639116392163931639416395163961639716398163991640016401164021640316404164051640616407164081640916410164111641216413164141641516416164171641816419164201642116422164231642416425164261642716428164291643016431164321643316434164351643616437164381643916440164411644216443164441644516446164471644816449164501645116452164531645416455164561645716458164591646016461164621646316464164651646616467164681646916470164711647216473164741647516476164771647816479164801648116482164831648416485164861648716488164891649016491164921649316494164951649616497164981649916500165011650216503165041650516506165071650816509165101651116512165131651416515165161651716518165191652016521165221652316524165251652616527165281652916530165311653216533165341653516536165371653816539165401654116542165431654416545165461654716548165491655016551165521655316554165551655616557165581655916560165611656216563165641656516566165671656816569165701657116572165731657416575165761657716578165791658016581165821658316584165851658616587165881658916590165911659216593165941659516596165971659816599166001660116602166031660416605166061660716608166091661016611166121661316614166151661616617166181661916620166211662216623166241662516626166271662816629166301663116632166331663416635166361663716638166391664016641166421664316644166451664616647166481664916650166511665216653166541665516656166571665816659166601666116662166631666416665166661666716668166691667016671166721667316674166751667616677166781667916680166811668216683166841668516686166871668816689166901669116692166931669416695166961669716698166991670016701167021670316704167051670616707167081670916710167111671216713167141671516716167171671816719167201672116722167231672416725167261672716728167291673016731167321673316734167351673616737167381673916740167411674216743167441674516746167471674816749167501675116752167531675416755167561675716758167591676016761167621676316764167651676616767167681676916770167711677216773167741677516776167771677816779167801678116782167831678416785167861678716788167891679016791167921679316794167951679616797167981679916800168011680216803168041680516806168071680816809168101681116812168131681416815168161681716818168191682016821168221682316824168251682616827168281682916830168311683216833168341683516836168371683816839168401684116842168431684416845168461684716848168491685016851168521685316854168551685616857168581685916860168611686216863168641686516866168671686816869168701687116872168731687416875168761687716878168791688016881168821688316884168851688616887168881688916890168911689216893168941689516896168971689816899169001690116902169031690416905169061690716908169091691016911169121691316914169151691616917169181691916920169211692216923169241692516926169271692816929169301693116932169331693416935169361693716938169391694016941169421694316944169451694616947169481694916950169511695216953169541695516956169571695816959169601696116962169631696416965169661696716968169691697016971169721697316974169751697616977169781697916980169811698216983169841698516986169871698816989169901699116992169931699416995169961699716998169991700017001170021700317004170051700617007170081700917010170111701217013170141701517016170171701817019170201702117022170231702417025170261702717028170291703017031170321703317034170351703617037170381703917040170411704217043170441704517046170471704817049170501705117052170531705417055170561705717058170591706017061170621706317064170651706617067170681706917070170711707217073170741707517076170771707817079170801708117082170831708417085170861708717088170891709017091170921709317094170951709617097170981709917100171011710217103171041710517106171071710817109171101711117112171131711417115171161711717118171191712017121171221712317124171251712617127171281712917130171311713217133171341713517136171371713817139171401714117142171431714417145171461714717148171491715017151171521715317154171551715617157171581715917160171611716217163171641716517166171671716817169171701717117172171731717417175171761717717178171791718017181171821718317184171851718617187171881718917190171911719217193171941719517196171971719817199172001720117202172031720417205172061720717208172091721017211172121721317214172151721617217172181721917220172211722217223172241722517226172271722817229172301723117232172331723417235172361723717238172391724017241172421724317244172451724617247172481724917250172511725217253172541725517256172571725817259172601726117262172631726417265172661726717268172691727017271172721727317274172751727617277172781727917280172811728217283172841728517286172871728817289172901729117292172931729417295172961729717298172991730017301173021730317304173051730617307173081730917310173111731217313173141731517316173171731817319173201732117322173231732417325173261732717328173291733017331173321733317334173351733617337173381733917340173411734217343173441734517346173471734817349173501735117352173531735417355173561735717358173591736017361173621736317364173651736617367173681736917370173711737217373173741737517376173771737817379173801738117382173831738417385173861738717388173891739017391173921739317394173951739617397173981739917400174011740217403174041740517406174071740817409174101741117412174131741417415174161741717418174191742017421174221742317424174251742617427174281742917430174311743217433174341743517436174371743817439174401744117442174431744417445174461744717448174491745017451174521745317454174551745617457174581745917460174611746217463174641746517466174671746817469174701747117472174731747417475174761747717478174791748017481174821748317484174851748617487174881748917490174911749217493174941749517496174971749817499175001750117502175031750417505175061750717508175091751017511175121751317514175151751617517175181751917520175211752217523175241752517526175271752817529175301753117532175331753417535175361753717538175391754017541175421754317544175451754617547175481754917550175511755217553175541755517556175571755817559175601756117562175631756417565175661756717568175691757017571175721757317574175751757617577175781757917580175811758217583175841758517586175871758817589175901759117592175931759417595175961759717598175991760017601176021760317604176051760617607176081760917610176111761217613176141761517616176171761817619176201762117622176231762417625176261762717628176291763017631176321763317634176351763617637176381763917640176411764217643176441764517646176471764817649176501765117652176531765417655176561765717658176591766017661176621766317664176651766617667176681766917670176711767217673176741767517676176771767817679176801768117682176831768417685176861768717688176891769017691176921769317694176951769617697176981769917700177011770217703177041770517706177071770817709177101771117712177131771417715177161771717718177191772017721177221772317724177251772617727177281772917730177311773217733177341773517736177371773817739177401774117742177431774417745177461774717748177491775017751177521775317754177551775617757177581775917760177611776217763177641776517766177671776817769177701777117772177731777417775177761777717778177791778017781177821778317784177851778617787177881778917790177911779217793177941779517796177971779817799178001780117802178031780417805178061780717808178091781017811178121781317814178151781617817178181781917820178211782217823178241782517826178271782817829178301783117832178331783417835178361783717838178391784017841178421784317844178451784617847178481784917850178511785217853178541785517856178571785817859178601786117862178631786417865178661786717868178691787017871178721787317874178751787617877178781787917880178811788217883178841788517886178871788817889178901789117892178931789417895178961789717898178991790017901179021790317904179051790617907179081790917910179111791217913179141791517916179171791817919179201792117922179231792417925179261792717928179291793017931179321793317934179351793617937179381793917940179411794217943179441794517946179471794817949179501795117952179531795417955179561795717958179591796017961179621796317964179651796617967179681796917970179711797217973179741797517976179771797817979179801798117982179831798417985179861798717988179891799017991179921799317994179951799617997179981799918000180011800218003180041800518006180071800818009180101801118012180131801418015180161801718018180191802018021180221802318024180251802618027180281802918030180311803218033180341803518036180371803818039180401804118042180431804418045180461804718048180491805018051180521805318054180551805618057180581805918060180611806218063180641806518066180671806818069180701807118072180731807418075180761807718078180791808018081180821808318084180851808618087180881808918090180911809218093180941809518096180971809818099181001810118102181031810418105181061810718108181091811018111181121811318114181151811618117181181811918120181211812218123181241812518126181271812818129181301813118132181331813418135181361813718138181391814018141181421814318144181451814618147181481814918150181511815218153181541815518156181571815818159181601816118162181631816418165181661816718168181691817018171181721817318174181751817618177181781817918180181811818218183181841818518186181871818818189181901819118192181931819418195181961819718198181991820018201182021820318204182051820618207182081820918210182111821218213182141821518216182171821818219182201822118222182231822418225182261822718228182291823018231182321823318234182351823618237182381823918240182411824218243182441824518246182471824818249182501825118252182531825418255182561825718258182591826018261182621826318264182651826618267182681826918270182711827218273182741827518276182771827818279182801828118282182831828418285182861828718288182891829018291182921829318294182951829618297182981829918300183011830218303183041830518306183071830818309183101831118312183131831418315183161831718318183191832018321183221832318324183251832618327183281832918330183311833218333183341833518336183371833818339183401834118342183431834418345183461834718348183491835018351183521835318354183551835618357183581835918360183611836218363183641836518366183671836818369183701837118372183731837418375183761837718378183791838018381183821838318384183851838618387183881838918390183911839218393183941839518396183971839818399184001840118402184031840418405184061840718408184091841018411184121841318414184151841618417184181841918420184211842218423184241842518426184271842818429184301843118432184331843418435184361843718438184391844018441184421844318444184451844618447184481844918450184511845218453184541845518456184571845818459184601846118462184631846418465184661846718468184691847018471184721847318474184751847618477184781847918480184811848218483184841848518486184871848818489184901849118492184931849418495184961849718498184991850018501185021850318504185051850618507185081850918510185111851218513185141851518516185171851818519185201852118522185231852418525185261852718528185291853018531185321853318534185351853618537185381853918540185411854218543185441854518546185471854818549185501855118552185531855418555185561855718558185591856018561185621856318564185651856618567185681856918570185711857218573185741857518576185771857818579185801858118582185831858418585185861858718588185891859018591185921859318594185951859618597185981859918600186011860218603186041860518606186071860818609186101861118612186131861418615186161861718618186191862018621186221862318624186251862618627186281862918630186311863218633186341863518636186371863818639186401864118642186431864418645186461864718648186491865018651186521865318654186551865618657186581865918660186611866218663186641866518666186671866818669186701867118672186731867418675186761867718678186791868018681186821868318684186851868618687186881868918690186911869218693186941869518696186971869818699187001870118702187031870418705187061870718708187091871018711187121871318714187151871618717187181871918720187211872218723187241872518726187271872818729187301873118732187331873418735187361873718738187391874018741187421874318744187451874618747187481874918750187511875218753187541875518756187571875818759187601876118762187631876418765187661876718768187691877018771187721877318774187751877618777187781877918780187811878218783187841878518786187871878818789187901879118792187931879418795187961879718798187991880018801188021880318804188051880618807188081880918810188111881218813188141881518816188171881818819188201882118822188231882418825188261882718828188291883018831188321883318834188351883618837188381883918840188411884218843188441884518846188471884818849188501885118852188531885418855188561885718858188591886018861188621886318864188651886618867188681886918870188711887218873188741887518876188771887818879188801888118882188831888418885188861888718888188891889018891188921889318894188951889618897188981889918900189011890218903189041890518906189071890818909189101891118912189131891418915189161891718918189191892018921189221892318924189251892618927189281892918930189311893218933189341893518936189371893818939189401894118942189431894418945189461894718948189491895018951189521895318954189551895618957189581895918960189611896218963189641896518966189671896818969189701897118972189731897418975189761897718978189791898018981189821898318984189851898618987189881898918990189911899218993189941899518996189971899818999190001900119002190031900419005190061900719008190091901019011190121901319014190151901619017190181901919020190211902219023190241902519026190271902819029190301903119032190331903419035190361903719038190391904019041190421904319044190451904619047190481904919050190511905219053190541905519056190571905819059190601906119062190631906419065190661906719068190691907019071190721907319074190751907619077190781907919080190811908219083190841908519086190871908819089190901909119092190931909419095190961909719098190991910019101191021910319104191051910619107191081910919110191111911219113191141911519116191171911819119191201912119122191231912419125191261912719128191291913019131191321913319134191351913619137191381913919140191411914219143191441914519146191471914819149191501915119152191531915419155191561915719158191591916019161191621916319164191651916619167191681916919170191711917219173191741917519176191771917819179191801918119182191831918419185191861918719188191891919019191191921919319194191951919619197191981919919200192011920219203192041920519206192071920819209192101921119212192131921419215192161921719218192191922019221192221922319224192251922619227192281922919230192311923219233192341923519236192371923819239192401924119242192431924419245192461924719248192491925019251192521925319254192551925619257192581925919260192611926219263192641926519266192671926819269192701927119272192731927419275192761927719278192791928019281192821928319284192851928619287192881928919290192911929219293192941929519296192971929819299193001930119302193031930419305193061930719308193091931019311193121931319314193151931619317193181931919320193211932219323193241932519326193271932819329193301933119332193331933419335193361933719338193391934019341193421934319344193451934619347193481934919350193511935219353193541935519356193571935819359193601936119362193631936419365 |
- /*! For license information please see html5-qrcode.min.js.LICENSE.txt */
- var __Html5QrcodeLibrary__
- ;(() => {
- var t = {
- 449: function(t, e, r) {
- !(function(t) {
- 'use strict'
- var e =
- Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array &&
- function(t, e) {
- t.__proto__ = e
- }) ||
- function(t, e) {
- for (var r in e) e.hasOwnProperty(r) && (t[r] = e[r])
- }
- var n,
- i = (function(t) {
- function r(e) {
- var r,
- n,
- i,
- o = this.constructor,
- s = t.call(this, e) || this
- return (
- Object.defineProperty(s, 'name', { value: o.name, enumerable: !1 }),
- (r = s),
- (n = o.prototype),
- (i = Object.setPrototypeOf) ? i(r, n) : (r.__proto__ = n),
- (function(t, e) {
- void 0 === e && (e = t.constructor)
- var r = Error.captureStackTrace
- r && r(t, e)
- })(s),
- s
- )
- }
- return (
- (function(t, r) {
- function n() {
- this.constructor = t
- }
- e(t, r), (t.prototype = null === r ? Object.create(r) : ((n.prototype = r.prototype), new n()))
- })(r, t),
- r
- )
- })(Error)
- class o extends i {
- constructor(t) {
- super(t), (this.message = t)
- }
- getKind() {
- return this.constructor.kind
- }
- }
- o.kind = 'Exception'
- class s extends o {}
- s.kind = 'ArgumentException'
- class a extends o {}
- a.kind = 'IllegalArgumentException'
- class l {
- constructor(t) {
- if (((this.binarizer = t), null === t)) throw new a('Binarizer must be non-null.')
- }
- getWidth() {
- return this.binarizer.getWidth()
- }
- getHeight() {
- return this.binarizer.getHeight()
- }
- getBlackRow(t, e) {
- return this.binarizer.getBlackRow(t, e)
- }
- getBlackMatrix() {
- return (null !== this.matrix && void 0 !== this.matrix) || (this.matrix = this.binarizer.getBlackMatrix()), this.matrix
- }
- isCropSupported() {
- return this.binarizer.getLuminanceSource().isCropSupported()
- }
- crop(t, e, r, n) {
- const i = this.binarizer.getLuminanceSource().crop(t, e, r, n)
- return new l(this.binarizer.createBinarizer(i))
- }
- isRotateSupported() {
- return this.binarizer.getLuminanceSource().isRotateSupported()
- }
- rotateCounterClockwise() {
- const t = this.binarizer.getLuminanceSource().rotateCounterClockwise()
- return new l(this.binarizer.createBinarizer(t))
- }
- rotateCounterClockwise45() {
- const t = this.binarizer.getLuminanceSource().rotateCounterClockwise45()
- return new l(this.binarizer.createBinarizer(t))
- }
- toString() {
- try {
- return this.getBlackMatrix().toString()
- } catch (t) {
- return ''
- }
- }
- }
- class c extends o {
- static getChecksumInstance() {
- return new c()
- }
- }
- c.kind = 'ChecksumException'
- class h {
- constructor(t) {
- this.source = t
- }
- getLuminanceSource() {
- return this.source
- }
- getWidth() {
- return this.source.getWidth()
- }
- getHeight() {
- return this.source.getHeight()
- }
- }
- class u {
- static arraycopy(t, e, r, n, i) {
- for (; i--; ) r[n++] = t[e++]
- }
- static currentTimeMillis() {
- return Date.now()
- }
- }
- class d extends o {}
- d.kind = 'IndexOutOfBoundsException'
- class g extends d {
- constructor(t, e) {
- super(e), (this.index = t), (this.message = e)
- }
- }
- g.kind = 'ArrayIndexOutOfBoundsException'
- class f {
- static fill(t, e) {
- for (let r = 0, n = t.length; r < n; r++) t[r] = e
- }
- static fillWithin(t, e, r, n) {
- f.rangeCheck(t.length, e, r)
- for (let i = e; i < r; i++) t[i] = n
- }
- static rangeCheck(t, e, r) {
- if (e > r) throw new a('fromIndex(' + e + ') > toIndex(' + r + ')')
- if (e < 0) throw new g(e)
- if (r > t) throw new g(r)
- }
- static asList(...t) {
- return t
- }
- static create(t, e, r) {
- return Array.from({ length: t }).map(t => Array.from({ length: e }).fill(r))
- }
- static createInt32Array(t, e, r) {
- return Array.from({ length: t }).map(t => Int32Array.from({ length: e }).fill(r))
- }
- static equals(t, e) {
- if (!t) return !1
- if (!e) return !1
- if (!t.length) return !1
- if (!e.length) return !1
- if (t.length !== e.length) return !1
- for (let r = 0, n = t.length; r < n; r++) if (t[r] !== e[r]) return !1
- return !0
- }
- static hashCode(t) {
- if (null === t) return 0
- let e = 1
- for (const r of t) e = 31 * e + r
- return e
- }
- static fillUint8Array(t, e) {
- for (let r = 0; r !== t.length; r++) t[r] = e
- }
- static copyOf(t, e) {
- return t.slice(0, e)
- }
- static copyOfUint8Array(t, e) {
- if (t.length <= e) {
- const r = new Uint8Array(e)
- return r.set(t), r
- }
- return t.slice(0, e)
- }
- static copyOfRange(t, e, r) {
- const n = r - e,
- i = new Int32Array(n)
- return u.arraycopy(t, e, i, 0, n), i
- }
- static binarySearch(t, e, r) {
- void 0 === r && (r = f.numberComparator)
- let n = 0,
- i = t.length - 1
- for (; n <= i; ) {
- const o = (i + n) >> 1,
- s = r(e, t[o])
- if (s > 0) n = o + 1
- else {
- if (!(s < 0)) return o
- i = o - 1
- }
- }
- return -n - 1
- }
- static numberComparator(t, e) {
- return t - e
- }
- }
- class w {
- static numberOfTrailingZeros(t) {
- let e
- if (0 === t) return 32
- let r = 31
- return (
- (e = t << 16),
- 0 !== e && ((r -= 16), (t = e)),
- (e = t << 8),
- 0 !== e && ((r -= 8), (t = e)),
- (e = t << 4),
- 0 !== e && ((r -= 4), (t = e)),
- (e = t << 2),
- 0 !== e && ((r -= 2), (t = e)),
- r - ((t << 1) >>> 31)
- )
- }
- static numberOfLeadingZeros(t) {
- if (0 === t) return 32
- let e = 1
- return (
- t >>> 16 == 0 && ((e += 16), (t <<= 16)),
- t >>> 24 == 0 && ((e += 8), (t <<= 8)),
- t >>> 28 == 0 && ((e += 4), (t <<= 4)),
- t >>> 30 == 0 && ((e += 2), (t <<= 2)),
- (e -= t >>> 31),
- e
- )
- }
- static toHexString(t) {
- return t.toString(16)
- }
- static toBinaryString(t) {
- return String(parseInt(String(t), 2))
- }
- static bitCount(t) {
- return (t = ((t = (858993459 & (t -= (t >>> 1) & 1431655765)) + ((t >>> 2) & 858993459)) + (t >>> 4)) & 252645135), 63 & ((t += t >>> 8) + (t >>> 16))
- }
- static truncDivision(t, e) {
- return Math.trunc(t / e)
- }
- static parseInt(t, e) {
- return parseInt(t, e)
- }
- }
- ;(w.MIN_VALUE_32_BITS = -2147483648), (w.MAX_VALUE = Number.MAX_SAFE_INTEGER)
- class A {
- constructor(t, e) {
- void 0 === t ? ((this.size = 0), (this.bits = new Int32Array(1))) : ((this.size = t), (this.bits = null == e ? A.makeArray(t) : e))
- }
- getSize() {
- return this.size
- }
- getSizeInBytes() {
- return Math.floor((this.size + 7) / 8)
- }
- ensureCapacity(t) {
- if (t > 32 * this.bits.length) {
- const e = A.makeArray(t)
- u.arraycopy(this.bits, 0, e, 0, this.bits.length), (this.bits = e)
- }
- }
- get(t) {
- return 0 != (this.bits[Math.floor(t / 32)] & (1 << (31 & t)))
- }
- set(t) {
- this.bits[Math.floor(t / 32)] |= 1 << (31 & t)
- }
- flip(t) {
- this.bits[Math.floor(t / 32)] ^= 1 << (31 & t)
- }
- getNextSet(t) {
- const e = this.size
- if (t >= e) return e
- const r = this.bits
- let n = Math.floor(t / 32),
- i = r[n]
- i &= ~((1 << (31 & t)) - 1)
- const o = r.length
- for (; 0 === i; ) {
- if (++n === o) return e
- i = r[n]
- }
- const s = 32 * n + w.numberOfTrailingZeros(i)
- return s > e ? e : s
- }
- getNextUnset(t) {
- const e = this.size
- if (t >= e) return e
- const r = this.bits
- let n = Math.floor(t / 32),
- i = ~r[n]
- i &= ~((1 << (31 & t)) - 1)
- const o = r.length
- for (; 0 === i; ) {
- if (++n === o) return e
- i = ~r[n]
- }
- const s = 32 * n + w.numberOfTrailingZeros(i)
- return s > e ? e : s
- }
- setBulk(t, e) {
- this.bits[Math.floor(t / 32)] = e
- }
- setRange(t, e) {
- if (e < t || t < 0 || e > this.size) throw new a()
- if (e === t) return
- e--
- const r = Math.floor(t / 32),
- n = Math.floor(e / 32),
- i = this.bits
- for (let o = r; o <= n; o++) {
- const s = (2 << (o < n ? 31 : 31 & e)) - (1 << (o > r ? 0 : 31 & t))
- i[o] |= s
- }
- }
- clear() {
- const t = this.bits.length,
- e = this.bits
- for (let r = 0; r < t; r++) e[r] = 0
- }
- isRange(t, e, r) {
- if (e < t || t < 0 || e > this.size) throw new a()
- if (e === t) return !0
- e--
- const n = Math.floor(t / 32),
- i = Math.floor(e / 32),
- o = this.bits
- for (let s = n; s <= i; s++) {
- const a = ((2 << (s < i ? 31 : 31 & e)) - (1 << (s > n ? 0 : 31 & t))) & 4294967295
- if ((o[s] & a) !== (r ? a : 0)) return !1
- }
- return !0
- }
- appendBit(t) {
- this.ensureCapacity(this.size + 1), t && (this.bits[Math.floor(this.size / 32)] |= 1 << (31 & this.size)), this.size++
- }
- appendBits(t, e) {
- if (e < 0 || e > 32) throw new a('Num bits must be between 0 and 32')
- this.ensureCapacity(this.size + e)
- for (let r = e; r > 0; r--) this.appendBit(1 == ((t >> (r - 1)) & 1))
- }
- appendBitArray(t) {
- const e = t.size
- this.ensureCapacity(this.size + e)
- for (let r = 0; r < e; r++) this.appendBit(t.get(r))
- }
- xor(t) {
- if (this.size !== t.size) throw new a("Sizes don't match")
- const e = this.bits
- for (let r = 0, n = e.length; r < n; r++) e[r] ^= t.bits[r]
- }
- toBytes(t, e, r, n) {
- for (let i = 0; i < n; i++) {
- let n = 0
- for (let e = 0; e < 8; e++) this.get(t) && (n |= 1 << (7 - e)), t++
- e[r + i] = n
- }
- }
- getBitArray() {
- return this.bits
- }
- reverse() {
- const t = new Int32Array(this.bits.length),
- e = Math.floor((this.size - 1) / 32),
- r = e + 1,
- n = this.bits
- for (let i = 0; i < r; i++) {
- let r = n[i]
- ;(r = ((r >> 1) & 1431655765) | ((1431655765 & r) << 1)),
- (r = ((r >> 2) & 858993459) | ((858993459 & r) << 2)),
- (r = ((r >> 4) & 252645135) | ((252645135 & r) << 4)),
- (r = ((r >> 8) & 16711935) | ((16711935 & r) << 8)),
- (r = ((r >> 16) & 65535) | ((65535 & r) << 16)),
- (t[e - i] = r)
- }
- if (this.size !== 32 * r) {
- const e = 32 * r - this.size
- let n = t[0] >>> e
- for (let i = 1; i < r; i++) {
- const r = t[i]
- ;(n |= r << (32 - e)), (t[i - 1] = n), (n = r >>> e)
- }
- t[r - 1] = n
- }
- this.bits = t
- }
- static makeArray(t) {
- return new Int32Array(Math.floor((t + 31) / 32))
- }
- equals(t) {
- if (!(t instanceof A)) return !1
- const e = t
- return this.size === e.size && f.equals(this.bits, e.bits)
- }
- hashCode() {
- return 31 * this.size + f.hashCode(this.bits)
- }
- toString() {
- let t = ''
- for (let e = 0, r = this.size; e < r; e++) 0 == (7 & e) && (t += ' '), (t += this.get(e) ? 'X' : '.')
- return t
- }
- clone() {
- return new A(this.size, this.bits.slice())
- }
- }
- !(function(t) {
- ;(t[(t.OTHER = 0)] = 'OTHER'),
- (t[(t.PURE_BARCODE = 1)] = 'PURE_BARCODE'),
- (t[(t.POSSIBLE_FORMATS = 2)] = 'POSSIBLE_FORMATS'),
- (t[(t.TRY_HARDER = 3)] = 'TRY_HARDER'),
- (t[(t.CHARACTER_SET = 4)] = 'CHARACTER_SET'),
- (t[(t.ALLOWED_LENGTHS = 5)] = 'ALLOWED_LENGTHS'),
- (t[(t.ASSUME_CODE_39_CHECK_DIGIT = 6)] = 'ASSUME_CODE_39_CHECK_DIGIT'),
- (t[(t.ASSUME_GS1 = 7)] = 'ASSUME_GS1'),
- (t[(t.RETURN_CODABAR_START_END = 8)] = 'RETURN_CODABAR_START_END'),
- (t[(t.NEED_RESULT_POINT_CALLBACK = 9)] = 'NEED_RESULT_POINT_CALLBACK'),
- (t[(t.ALLOWED_EAN_EXTENSIONS = 10)] = 'ALLOWED_EAN_EXTENSIONS')
- })(n || (n = {}))
- var m,
- E = n
- class C extends o {
- static getFormatInstance() {
- return new C()
- }
- }
- ;(C.kind = 'FormatException'),
- (function(t) {
- ;(t[(t.Cp437 = 0)] = 'Cp437'),
- (t[(t.ISO8859_1 = 1)] = 'ISO8859_1'),
- (t[(t.ISO8859_2 = 2)] = 'ISO8859_2'),
- (t[(t.ISO8859_3 = 3)] = 'ISO8859_3'),
- (t[(t.ISO8859_4 = 4)] = 'ISO8859_4'),
- (t[(t.ISO8859_5 = 5)] = 'ISO8859_5'),
- (t[(t.ISO8859_6 = 6)] = 'ISO8859_6'),
- (t[(t.ISO8859_7 = 7)] = 'ISO8859_7'),
- (t[(t.ISO8859_8 = 8)] = 'ISO8859_8'),
- (t[(t.ISO8859_9 = 9)] = 'ISO8859_9'),
- (t[(t.ISO8859_10 = 10)] = 'ISO8859_10'),
- (t[(t.ISO8859_11 = 11)] = 'ISO8859_11'),
- (t[(t.ISO8859_13 = 12)] = 'ISO8859_13'),
- (t[(t.ISO8859_14 = 13)] = 'ISO8859_14'),
- (t[(t.ISO8859_15 = 14)] = 'ISO8859_15'),
- (t[(t.ISO8859_16 = 15)] = 'ISO8859_16'),
- (t[(t.SJIS = 16)] = 'SJIS'),
- (t[(t.Cp1250 = 17)] = 'Cp1250'),
- (t[(t.Cp1251 = 18)] = 'Cp1251'),
- (t[(t.Cp1252 = 19)] = 'Cp1252'),
- (t[(t.Cp1256 = 20)] = 'Cp1256'),
- (t[(t.UnicodeBigUnmarked = 21)] = 'UnicodeBigUnmarked'),
- (t[(t.UTF8 = 22)] = 'UTF8'),
- (t[(t.ASCII = 23)] = 'ASCII'),
- (t[(t.Big5 = 24)] = 'Big5'),
- (t[(t.GB18030 = 25)] = 'GB18030'),
- (t[(t.EUC_KR = 26)] = 'EUC_KR')
- })(m || (m = {}))
- class I {
- constructor(t, e, r, ...n) {
- ;(this.valueIdentifier = t),
- (this.name = r),
- (this.values = 'number' == typeof e ? Int32Array.from([e]) : e),
- (this.otherEncodingNames = n),
- I.VALUE_IDENTIFIER_TO_ECI.set(t, this),
- I.NAME_TO_ECI.set(r, this)
- const i = this.values
- for (let t = 0, e = i.length; t !== e; t++) {
- const e = i[t]
- I.VALUES_TO_ECI.set(e, this)
- }
- for (const t of n) I.NAME_TO_ECI.set(t, this)
- }
- getValueIdentifier() {
- return this.valueIdentifier
- }
- getName() {
- return this.name
- }
- getValue() {
- return this.values[0]
- }
- static getCharacterSetECIByValue(t) {
- if (t < 0 || t >= 900) throw new C('incorect value')
- const e = I.VALUES_TO_ECI.get(t)
- if (void 0 === e) throw new C('incorect value')
- return e
- }
- static getCharacterSetECIByName(t) {
- const e = I.NAME_TO_ECI.get(t)
- if (void 0 === e) throw new C('incorect value')
- return e
- }
- equals(t) {
- if (!(t instanceof I)) return !1
- const e = t
- return this.getName() === e.getName()
- }
- }
- ;(I.VALUE_IDENTIFIER_TO_ECI = new Map()),
- (I.VALUES_TO_ECI = new Map()),
- (I.NAME_TO_ECI = new Map()),
- (I.Cp437 = new I(m.Cp437, Int32Array.from([0, 2]), 'Cp437')),
- (I.ISO8859_1 = new I(m.ISO8859_1, Int32Array.from([1, 3]), 'ISO-8859-1', 'ISO88591', 'ISO8859_1')),
- (I.ISO8859_2 = new I(m.ISO8859_2, 4, 'ISO-8859-2', 'ISO88592', 'ISO8859_2')),
- (I.ISO8859_3 = new I(m.ISO8859_3, 5, 'ISO-8859-3', 'ISO88593', 'ISO8859_3')),
- (I.ISO8859_4 = new I(m.ISO8859_4, 6, 'ISO-8859-4', 'ISO88594', 'ISO8859_4')),
- (I.ISO8859_5 = new I(m.ISO8859_5, 7, 'ISO-8859-5', 'ISO88595', 'ISO8859_5')),
- (I.ISO8859_6 = new I(m.ISO8859_6, 8, 'ISO-8859-6', 'ISO88596', 'ISO8859_6')),
- (I.ISO8859_7 = new I(m.ISO8859_7, 9, 'ISO-8859-7', 'ISO88597', 'ISO8859_7')),
- (I.ISO8859_8 = new I(m.ISO8859_8, 10, 'ISO-8859-8', 'ISO88598', 'ISO8859_8')),
- (I.ISO8859_9 = new I(m.ISO8859_9, 11, 'ISO-8859-9', 'ISO88599', 'ISO8859_9')),
- (I.ISO8859_10 = new I(m.ISO8859_10, 12, 'ISO-8859-10', 'ISO885910', 'ISO8859_10')),
- (I.ISO8859_11 = new I(m.ISO8859_11, 13, 'ISO-8859-11', 'ISO885911', 'ISO8859_11')),
- (I.ISO8859_13 = new I(m.ISO8859_13, 15, 'ISO-8859-13', 'ISO885913', 'ISO8859_13')),
- (I.ISO8859_14 = new I(m.ISO8859_14, 16, 'ISO-8859-14', 'ISO885914', 'ISO8859_14')),
- (I.ISO8859_15 = new I(m.ISO8859_15, 17, 'ISO-8859-15', 'ISO885915', 'ISO8859_15')),
- (I.ISO8859_16 = new I(m.ISO8859_16, 18, 'ISO-8859-16', 'ISO885916', 'ISO8859_16')),
- (I.SJIS = new I(m.SJIS, 20, 'SJIS', 'Shift_JIS')),
- (I.Cp1250 = new I(m.Cp1250, 21, 'Cp1250', 'windows-1250')),
- (I.Cp1251 = new I(m.Cp1251, 22, 'Cp1251', 'windows-1251')),
- (I.Cp1252 = new I(m.Cp1252, 23, 'Cp1252', 'windows-1252')),
- (I.Cp1256 = new I(m.Cp1256, 24, 'Cp1256', 'windows-1256')),
- (I.UnicodeBigUnmarked = new I(m.UnicodeBigUnmarked, 25, 'UnicodeBigUnmarked', 'UTF-16BE', 'UnicodeBig')),
- (I.UTF8 = new I(m.UTF8, 26, 'UTF8', 'UTF-8')),
- (I.ASCII = new I(m.ASCII, Int32Array.from([27, 170]), 'ASCII', 'US-ASCII')),
- (I.Big5 = new I(m.Big5, 28, 'Big5')),
- (I.GB18030 = new I(m.GB18030, 29, 'GB18030', 'GB2312', 'EUC_CN', 'GBK')),
- (I.EUC_KR = new I(m.EUC_KR, 30, 'EUC_KR', 'EUC-KR'))
- class p extends o {}
- p.kind = 'UnsupportedOperationException'
- class S {
- static decode(t, e) {
- const r = this.encodingName(e)
- return this.customDecoder
- ? this.customDecoder(t, r)
- : 'undefined' == typeof TextDecoder || this.shouldDecodeOnFallback(r)
- ? this.decodeFallback(t, r)
- : new TextDecoder(r).decode(t)
- }
- static shouldDecodeOnFallback(t) {
- return !S.isBrowser() && 'ISO-8859-1' === t
- }
- static encode(t, e) {
- const r = this.encodingName(e)
- return this.customEncoder ? this.customEncoder(t, r) : 'undefined' == typeof TextEncoder ? this.encodeFallback(t) : new TextEncoder().encode(t)
- }
- static isBrowser() {
- return 'undefined' != typeof window && '[object Window]' === {}.toString.call(window)
- }
- static encodingName(t) {
- return 'string' == typeof t ? t : t.getName()
- }
- static encodingCharacterSet(t) {
- return t instanceof I ? t : I.getCharacterSetECIByName(t)
- }
- static decodeFallback(t, e) {
- const r = this.encodingCharacterSet(e)
- if (S.isDecodeFallbackSupported(r)) {
- let e = ''
- for (let r = 0, n = t.length; r < n; r++) {
- let n = t[r].toString(16)
- n.length < 2 && (n = '0' + n), (e += '%' + n)
- }
- return decodeURIComponent(e)
- }
- if (r.equals(I.UnicodeBigUnmarked)) return String.fromCharCode.apply(null, new Uint16Array(t.buffer))
- throw new p(`Encoding ${this.encodingName(e)} not supported by fallback.`)
- }
- static isDecodeFallbackSupported(t) {
- return t.equals(I.UTF8) || t.equals(I.ISO8859_1) || t.equals(I.ASCII)
- }
- static encodeFallback(t) {
- const e = btoa(unescape(encodeURIComponent(t))).split(''),
- r = []
- for (let t = 0; t < e.length; t++) r.push(e[t].charCodeAt(0))
- return new Uint8Array(r)
- }
- }
- class _ {
- static castAsNonUtf8Char(t, e = null) {
- const r = e ? e.getName() : this.ISO88591
- return S.decode(new Uint8Array([t]), r)
- }
- static guessEncoding(t, e) {
- if (null != e && void 0 !== e.get(E.CHARACTER_SET)) return e.get(E.CHARACTER_SET).toString()
- const r = t.length
- let n = !0,
- i = !0,
- o = !0,
- s = 0,
- a = 0,
- l = 0,
- c = 0,
- h = 0,
- u = 0,
- d = 0,
- g = 0,
- f = 0,
- w = 0,
- A = 0
- const m = t.length > 3 && 239 === t[0] && 187 === t[1] && 191 === t[2]
- for (let e = 0; e < r && (n || i || o); e++) {
- const r = 255 & t[e]
- o &&
- (s > 0
- ? 0 == (128 & r)
- ? (o = !1)
- : s--
- : 0 != (128 & r) && (0 == (64 & r) ? (o = !1) : (s++, 0 == (32 & r) ? a++ : (s++, 0 == (16 & r) ? l++ : (s++, 0 == (8 & r) ? c++ : (o = !1)))))),
- n && (r > 127 && r < 160 ? (n = !1) : r > 159 && (r < 192 || 215 === r || 247 === r) && A++),
- i &&
- (h > 0
- ? r < 64 || 127 === r || r > 252
- ? (i = !1)
- : h--
- : 128 === r || 160 === r || r > 239
- ? (i = !1)
- : r > 160 && r < 224
- ? (u++, (g = 0), d++, d > f && (f = d))
- : r > 127
- ? (h++, (d = 0), g++, g > w && (w = g))
- : ((d = 0), (g = 0)))
- }
- return (
- o && s > 0 && (o = !1),
- i && h > 0 && (i = !1),
- o && (m || a + l + c > 0)
- ? _.UTF8
- : i && (_.ASSUME_SHIFT_JIS || f >= 3 || w >= 3)
- ? _.SHIFT_JIS
- : n && i
- ? (2 === f && 2 === u) || 10 * A >= r
- ? _.SHIFT_JIS
- : _.ISO88591
- : n
- ? _.ISO88591
- : i
- ? _.SHIFT_JIS
- : o
- ? _.UTF8
- : _.PLATFORM_DEFAULT_ENCODING
- )
- }
- static format(t, ...e) {
- let r = -1
- return t.replace(/%(-)?(0?[0-9]+)?([.][0-9]+)?([#][0-9]+)?([scfpexd%])/g, function(t, n, i, o, s, a) {
- if ('%%' === t) return '%'
- if (void 0 === e[++r]) return
- t = o ? parseInt(o.substr(1)) : void 0
- let l,
- c = s ? parseInt(s.substr(1)) : void 0
- switch (a) {
- case 's':
- l = e[r]
- break
- case 'c':
- l = e[r][0]
- break
- case 'f':
- l = parseFloat(e[r]).toFixed(t)
- break
- case 'p':
- l = parseFloat(e[r]).toPrecision(t)
- break
- case 'e':
- l = parseFloat(e[r]).toExponential(t)
- break
- case 'x':
- l = parseInt(e[r]).toString(c || 16)
- break
- case 'd':
- l = parseFloat(parseInt(e[r], c || 10).toPrecision(t)).toFixed(0)
- }
- l = 'object' == typeof l ? JSON.stringify(l) : (+l).toString(c)
- let h = parseInt(i),
- u = i && i[0] + '' == '0' ? '0' : ' '
- for (; l.length < h; ) l = void 0 !== n ? l + u : u + l
- return l
- })
- }
- static getBytes(t, e) {
- return S.encode(t, e)
- }
- static getCharCode(t, e = 0) {
- return t.charCodeAt(e)
- }
- static getCharAt(t) {
- return String.fromCharCode(t)
- }
- }
- ;(_.SHIFT_JIS = I.SJIS.getName()),
- (_.GB2312 = 'GB2312'),
- (_.ISO88591 = I.ISO8859_1.getName()),
- (_.EUC_JP = 'EUC_JP'),
- (_.UTF8 = I.UTF8.getName()),
- (_.PLATFORM_DEFAULT_ENCODING = _.UTF8),
- (_.ASSUME_SHIFT_JIS = !1)
- class T {
- constructor(t = '') {
- this.value = t
- }
- enableDecoding(t) {
- return (this.encoding = t), this
- }
- append(t) {
- return (
- 'string' == typeof t ? (this.value += t.toString()) : this.encoding ? (this.value += _.castAsNonUtf8Char(t, this.encoding)) : (this.value += String.fromCharCode(t)),
- this
- )
- }
- appendChars(t, e, r) {
- for (let n = e; e < e + r; n++) this.append(t[n])
- return this
- }
- length() {
- return this.value.length
- }
- charAt(t) {
- return this.value.charAt(t)
- }
- deleteCharAt(t) {
- this.value = this.value.substr(0, t) + this.value.substring(t + 1)
- }
- setCharAt(t, e) {
- this.value = this.value.substr(0, t) + e + this.value.substr(t + 1)
- }
- substring(t, e) {
- return this.value.substring(t, e)
- }
- setLengthToZero() {
- this.value = ''
- }
- toString() {
- return this.value
- }
- insert(t, e) {
- this.value = this.value.substr(0, t) + e + this.value.substr(t + e.length)
- }
- }
- class y {
- constructor(t, e, r, n) {
- if (((this.width = t), (this.height = e), (this.rowSize = r), (this.bits = n), null == e && (e = t), (this.height = e), t < 1 || e < 1))
- throw new a('Both dimensions must be greater than 0')
- null == r && (r = Math.floor((t + 31) / 32)), (this.rowSize = r), null == n && (this.bits = new Int32Array(this.rowSize * this.height))
- }
- static parseFromBooleanArray(t) {
- const e = t.length,
- r = t[0].length,
- n = new y(r, e)
- for (let i = 0; i < e; i++) {
- const e = t[i]
- for (let t = 0; t < r; t++) e[t] && n.set(t, i)
- }
- return n
- }
- static parseFromString(t, e, r) {
- if (null === t) throw new a('stringRepresentation cannot be null')
- const n = new Array(t.length)
- let i = 0,
- o = 0,
- s = -1,
- l = 0,
- c = 0
- for (; c < t.length; )
- if ('\n' === t.charAt(c) || '\r' === t.charAt(c)) {
- if (i > o) {
- if (-1 === s) s = i - o
- else if (i - o !== s) throw new a('row lengths do not match')
- ;(o = i), l++
- }
- c++
- } else if (t.substring(c, c + e.length) === e) (c += e.length), (n[i] = !0), i++
- else {
- if (t.substring(c, c + r.length) !== r) throw new a('illegal character encountered: ' + t.substring(c))
- ;(c += r.length), (n[i] = !1), i++
- }
- if (i > o) {
- if (-1 === s) s = i - o
- else if (i - o !== s) throw new a('row lengths do not match')
- l++
- }
- const h = new y(s, l)
- for (let t = 0; t < i; t++) n[t] && h.set(Math.floor(t % s), Math.floor(t / s))
- return h
- }
- get(t, e) {
- const r = e * this.rowSize + Math.floor(t / 32)
- return 0 != ((this.bits[r] >>> (31 & t)) & 1)
- }
- set(t, e) {
- const r = e * this.rowSize + Math.floor(t / 32)
- this.bits[r] |= (1 << (31 & t)) & 4294967295
- }
- unset(t, e) {
- const r = e * this.rowSize + Math.floor(t / 32)
- this.bits[r] &= ~((1 << (31 & t)) & 4294967295)
- }
- flip(t, e) {
- const r = e * this.rowSize + Math.floor(t / 32)
- this.bits[r] ^= (1 << (31 & t)) & 4294967295
- }
- xor(t) {
- if (this.width !== t.getWidth() || this.height !== t.getHeight() || this.rowSize !== t.getRowSize()) throw new a('input matrix dimensions do not match')
- const e = new A(Math.floor(this.width / 32) + 1),
- r = this.rowSize,
- n = this.bits
- for (let i = 0, o = this.height; i < o; i++) {
- const o = i * r,
- s = t.getRow(i, e).getBitArray()
- for (let t = 0; t < r; t++) n[o + t] ^= s[t]
- }
- }
- clear() {
- const t = this.bits,
- e = t.length
- for (let r = 0; r < e; r++) t[r] = 0
- }
- setRegion(t, e, r, n) {
- if (e < 0 || t < 0) throw new a('Left and top must be nonnegative')
- if (n < 1 || r < 1) throw new a('Height and width must be at least 1')
- const i = t + r,
- o = e + n
- if (o > this.height || i > this.width) throw new a('The region must fit inside the matrix')
- const s = this.rowSize,
- l = this.bits
- for (let r = e; r < o; r++) {
- const e = r * s
- for (let r = t; r < i; r++) l[e + Math.floor(r / 32)] |= (1 << (31 & r)) & 4294967295
- }
- }
- getRow(t, e) {
- null == e || e.getSize() < this.width ? (e = new A(this.width)) : e.clear()
- const r = this.rowSize,
- n = this.bits,
- i = t * r
- for (let t = 0; t < r; t++) e.setBulk(32 * t, n[i + t])
- return e
- }
- setRow(t, e) {
- u.arraycopy(e.getBitArray(), 0, this.bits, t * this.rowSize, this.rowSize)
- }
- rotate180() {
- const t = this.getWidth(),
- e = this.getHeight()
- let r = new A(t),
- n = new A(t)
- for (let t = 0, i = Math.floor((e + 1) / 2); t < i; t++)
- (r = this.getRow(t, r)), (n = this.getRow(e - 1 - t, n)), r.reverse(), n.reverse(), this.setRow(t, n), this.setRow(e - 1 - t, r)
- }
- getEnclosingRectangle() {
- const t = this.width,
- e = this.height,
- r = this.rowSize,
- n = this.bits
- let i = t,
- o = e,
- s = -1,
- a = -1
- for (let t = 0; t < e; t++)
- for (let e = 0; e < r; e++) {
- const l = n[t * r + e]
- if (0 !== l) {
- if ((t < o && (o = t), t > a && (a = t), 32 * e < i)) {
- let t = 0
- for (; 0 == ((l << (31 - t)) & 4294967295); ) t++
- 32 * e + t < i && (i = 32 * e + t)
- }
- if (32 * e + 31 > s) {
- let t = 31
- for (; l >>> t == 0; ) t--
- 32 * e + t > s && (s = 32 * e + t)
- }
- }
- }
- return s < i || a < o ? null : Int32Array.from([i, o, s - i + 1, a - o + 1])
- }
- getTopLeftOnBit() {
- const t = this.rowSize,
- e = this.bits
- let r = 0
- for (; r < e.length && 0 === e[r]; ) r++
- if (r === e.length) return null
- const n = r / t
- let i = (r % t) * 32
- const o = e[r]
- let s = 0
- for (; 0 == ((o << (31 - s)) & 4294967295); ) s++
- return (i += s), Int32Array.from([i, n])
- }
- getBottomRightOnBit() {
- const t = this.rowSize,
- e = this.bits
- let r = e.length - 1
- for (; r >= 0 && 0 === e[r]; ) r--
- if (r < 0) return null
- const n = Math.floor(r / t)
- let i = 32 * Math.floor(r % t)
- const o = e[r]
- let s = 31
- for (; o >>> s == 0; ) s--
- return (i += s), Int32Array.from([i, n])
- }
- getWidth() {
- return this.width
- }
- getHeight() {
- return this.height
- }
- getRowSize() {
- return this.rowSize
- }
- equals(t) {
- if (!(t instanceof y)) return !1
- const e = t
- return this.width === e.width && this.height === e.height && this.rowSize === e.rowSize && f.equals(this.bits, e.bits)
- }
- hashCode() {
- let t = this.width
- return (t = 31 * t + this.width), (t = 31 * t + this.height), (t = 31 * t + this.rowSize), (t = 31 * t + f.hashCode(this.bits)), t
- }
- toString(t = 'X ', e = ' ', r = '\n') {
- return this.buildToString(t, e, r)
- }
- buildToString(t, e, r) {
- let n = new T()
- for (let i = 0, o = this.height; i < o; i++) {
- for (let r = 0, o = this.width; r < o; r++) n.append(this.get(r, i) ? t : e)
- n.append(r)
- }
- return n.toString()
- }
- clone() {
- return new y(this.width, this.height, this.rowSize, this.bits.slice())
- }
- }
- class N extends o {
- static getNotFoundInstance() {
- return new N()
- }
- }
- N.kind = 'NotFoundException'
- class M extends h {
- constructor(t) {
- super(t), (this.luminances = M.EMPTY), (this.buckets = new Int32Array(M.LUMINANCE_BUCKETS))
- }
- getBlackRow(t, e) {
- const r = this.getLuminanceSource(),
- n = r.getWidth()
- null == e || e.getSize() < n ? (e = new A(n)) : e.clear(), this.initArrays(n)
- const i = r.getRow(t, this.luminances),
- o = this.buckets
- for (let t = 0; t < n; t++) o[(255 & i[t]) >> M.LUMINANCE_SHIFT]++
- const s = M.estimateBlackPoint(o)
- if (n < 3) for (let t = 0; t < n; t++) (255 & i[t]) < s && e.set(t)
- else {
- let t = 255 & i[0],
- r = 255 & i[1]
- for (let o = 1; o < n - 1; o++) {
- const n = 255 & i[o + 1]
- ;(4 * r - t - n) / 2 < s && e.set(o), (t = r), (r = n)
- }
- }
- return e
- }
- getBlackMatrix() {
- const t = this.getLuminanceSource(),
- e = t.getWidth(),
- r = t.getHeight(),
- n = new y(e, r)
- this.initArrays(e)
- const i = this.buckets
- for (let n = 1; n < 5; n++) {
- const o = Math.floor((r * n) / 5),
- s = t.getRow(o, this.luminances),
- a = Math.floor((4 * e) / 5)
- for (let t = Math.floor(e / 5); t < a; t++) i[(255 & s[t]) >> M.LUMINANCE_SHIFT]++
- }
- const o = M.estimateBlackPoint(i),
- s = t.getMatrix()
- for (let t = 0; t < r; t++) {
- const r = t * e
- for (let i = 0; i < e; i++) (255 & s[r + i]) < o && n.set(i, t)
- }
- return n
- }
- createBinarizer(t) {
- return new M(t)
- }
- initArrays(t) {
- this.luminances.length < t && (this.luminances = new Uint8ClampedArray(t))
- const e = this.buckets
- for (let t = 0; t < M.LUMINANCE_BUCKETS; t++) e[t] = 0
- }
- static estimateBlackPoint(t) {
- const e = t.length
- let r = 0,
- n = 0,
- i = 0
- for (let o = 0; o < e; o++) t[o] > i && ((n = o), (i = t[o])), t[o] > r && (r = t[o])
- let o = 0,
- s = 0
- for (let r = 0; r < e; r++) {
- const e = r - n,
- i = t[r] * e * e
- i > s && ((o = r), (s = i))
- }
- if (n > o) {
- const t = n
- ;(n = o), (o = t)
- }
- if (o - n <= e / 16) throw new N()
- let a = o - 1,
- l = -1
- for (let e = o - 1; e > n; e--) {
- const i = e - n,
- s = i * i * (o - e) * (r - t[e])
- s > l && ((a = e), (l = s))
- }
- return a << M.LUMINANCE_SHIFT
- }
- }
- ;(M.LUMINANCE_BITS = 5), (M.LUMINANCE_SHIFT = 8 - M.LUMINANCE_BITS), (M.LUMINANCE_BUCKETS = 1 << M.LUMINANCE_BITS), (M.EMPTY = Uint8ClampedArray.from([0]))
- class D extends M {
- constructor(t) {
- super(t), (this.matrix = null)
- }
- getBlackMatrix() {
- if (null !== this.matrix) return this.matrix
- const t = this.getLuminanceSource(),
- e = t.getWidth(),
- r = t.getHeight()
- if (e >= D.MINIMUM_DIMENSION && r >= D.MINIMUM_DIMENSION) {
- const n = t.getMatrix()
- let i = e >> D.BLOCK_SIZE_POWER
- 0 != (e & D.BLOCK_SIZE_MASK) && i++
- let o = r >> D.BLOCK_SIZE_POWER
- 0 != (r & D.BLOCK_SIZE_MASK) && o++
- const s = D.calculateBlackPoints(n, i, o, e, r),
- a = new y(e, r)
- D.calculateThresholdForBlock(n, i, o, e, r, s, a), (this.matrix = a)
- } else this.matrix = super.getBlackMatrix()
- return this.matrix
- }
- createBinarizer(t) {
- return new D(t)
- }
- static calculateThresholdForBlock(t, e, r, n, i, o, s) {
- const a = i - D.BLOCK_SIZE,
- l = n - D.BLOCK_SIZE
- for (let i = 0; i < r; i++) {
- let c = i << D.BLOCK_SIZE_POWER
- c > a && (c = a)
- const h = D.cap(i, 2, r - 3)
- for (let r = 0; r < e; r++) {
- let i = r << D.BLOCK_SIZE_POWER
- i > l && (i = l)
- const a = D.cap(r, 2, e - 3)
- let u = 0
- for (let t = -2; t <= 2; t++) {
- const e = o[h + t]
- u += e[a - 2] + e[a - 1] + e[a] + e[a + 1] + e[a + 2]
- }
- const d = u / 25
- D.thresholdBlock(t, i, c, d, n, s)
- }
- }
- }
- static cap(t, e, r) {
- return t < e ? e : t > r ? r : t
- }
- static thresholdBlock(t, e, r, n, i, o) {
- for (let s = 0, a = r * i + e; s < D.BLOCK_SIZE; s++, a += i) for (let i = 0; i < D.BLOCK_SIZE; i++) (255 & t[a + i]) <= n && o.set(e + i, r + s)
- }
- static calculateBlackPoints(t, e, r, n, i) {
- const o = i - D.BLOCK_SIZE,
- s = n - D.BLOCK_SIZE,
- a = new Array(r)
- for (let i = 0; i < r; i++) {
- a[i] = new Int32Array(e)
- let r = i << D.BLOCK_SIZE_POWER
- r > o && (r = o)
- for (let o = 0; o < e; o++) {
- let e = o << D.BLOCK_SIZE_POWER
- e > s && (e = s)
- let l = 0,
- c = 255,
- h = 0
- for (let i = 0, o = r * n + e; i < D.BLOCK_SIZE; i++, o += n) {
- for (let e = 0; e < D.BLOCK_SIZE; e++) {
- const r = 255 & t[o + e]
- ;(l += r), r < c && (c = r), r > h && (h = r)
- }
- if (h - c > D.MIN_DYNAMIC_RANGE) for (i++, o += n; i < D.BLOCK_SIZE; i++, o += n) for (let e = 0; e < D.BLOCK_SIZE; e++) l += 255 & t[o + e]
- }
- let u = l >> (2 * D.BLOCK_SIZE_POWER)
- if (h - c <= D.MIN_DYNAMIC_RANGE && ((u = c / 2), i > 0 && o > 0)) {
- const t = (a[i - 1][o] + 2 * a[i][o - 1] + a[i - 1][o - 1]) / 4
- c < t && (u = t)
- }
- a[i][o] = u
- }
- }
- return a
- }
- }
- ;(D.BLOCK_SIZE_POWER = 3), (D.BLOCK_SIZE = 1 << D.BLOCK_SIZE_POWER), (D.BLOCK_SIZE_MASK = D.BLOCK_SIZE - 1), (D.MINIMUM_DIMENSION = 5 * D.BLOCK_SIZE), (D.MIN_DYNAMIC_RANGE = 24)
- class R {
- constructor(t, e) {
- ;(this.width = t), (this.height = e)
- }
- getWidth() {
- return this.width
- }
- getHeight() {
- return this.height
- }
- isCropSupported() {
- return !1
- }
- crop(t, e, r, n) {
- throw new p('This luminance source does not support cropping.')
- }
- isRotateSupported() {
- return !1
- }
- rotateCounterClockwise() {
- throw new p('This luminance source does not support rotation by 90 degrees.')
- }
- rotateCounterClockwise45() {
- throw new p('This luminance source does not support rotation by 45 degrees.')
- }
- toString() {
- const t = new Uint8ClampedArray(this.width)
- let e = new T()
- for (let r = 0; r < this.height; r++) {
- const n = this.getRow(r, t)
- for (let t = 0; t < this.width; t++) {
- const r = 255 & n[t]
- let i
- ;(i = r < 64 ? '#' : r < 128 ? '+' : r < 192 ? '.' : ' '), e.append(i)
- }
- e.append('\n')
- }
- return e.toString()
- }
- }
- class O extends R {
- constructor(t) {
- super(t.getWidth(), t.getHeight()), (this.delegate = t)
- }
- getRow(t, e) {
- const r = this.delegate.getRow(t, e),
- n = this.getWidth()
- for (let t = 0; t < n; t++) r[t] = 255 - (255 & r[t])
- return r
- }
- getMatrix() {
- const t = this.delegate.getMatrix(),
- e = this.getWidth() * this.getHeight(),
- r = new Uint8ClampedArray(e)
- for (let n = 0; n < e; n++) r[n] = 255 - (255 & t[n])
- return r
- }
- isCropSupported() {
- return this.delegate.isCropSupported()
- }
- crop(t, e, r, n) {
- return new O(this.delegate.crop(t, e, r, n))
- }
- isRotateSupported() {
- return this.delegate.isRotateSupported()
- }
- invert() {
- return this.delegate
- }
- rotateCounterClockwise() {
- return new O(this.delegate.rotateCounterClockwise())
- }
- rotateCounterClockwise45() {
- return new O(this.delegate.rotateCounterClockwise45())
- }
- }
- class b extends R {
- constructor(t) {
- super(t.width, t.height), (this.canvas = t), (this.tempCanvasElement = null), (this.buffer = b.makeBufferFromCanvasImageData(t))
- }
- static makeBufferFromCanvasImageData(t) {
- const e = t.getContext('2d').getImageData(0, 0, t.width, t.height)
- return b.toGrayscaleBuffer(e.data, t.width, t.height)
- }
- static toGrayscaleBuffer(t, e, r) {
- const n = new Uint8ClampedArray(e * r)
- for (let e = 0, r = 0, i = t.length; e < i; e += 4, r++) {
- let i
- ;(i = 0 === t[e + 3] ? 255 : (306 * t[e] + 601 * t[e + 1] + 117 * t[e + 2] + 512) >> 10), (n[r] = i)
- }
- return n
- }
- getRow(t, e) {
- if (t < 0 || t >= this.getHeight()) throw new a('Requested row is outside the image: ' + t)
- const r = this.getWidth(),
- n = t * r
- return null === e ? (e = this.buffer.slice(n, n + r)) : (e.length < r && (e = new Uint8ClampedArray(r)), e.set(this.buffer.slice(n, n + r))), e
- }
- getMatrix() {
- return this.buffer
- }
- isCropSupported() {
- return !0
- }
- crop(t, e, r, n) {
- return super.crop(t, e, r, n), this
- }
- isRotateSupported() {
- return !0
- }
- rotateCounterClockwise() {
- return this.rotate(-90), this
- }
- rotateCounterClockwise45() {
- return this.rotate(-45), this
- }
- getTempCanvasElement() {
- if (null === this.tempCanvasElement) {
- const t = this.canvas.ownerDocument.createElement('canvas')
- ;(t.width = this.canvas.width), (t.height = this.canvas.height), (this.tempCanvasElement = t)
- }
- return this.tempCanvasElement
- }
- rotate(t) {
- const e = this.getTempCanvasElement(),
- r = e.getContext('2d'),
- n = t * b.DEGREE_TO_RADIANS,
- i = this.canvas.width,
- o = this.canvas.height,
- s = Math.ceil(Math.abs(Math.cos(n)) * i + Math.abs(Math.sin(n)) * o),
- a = Math.ceil(Math.abs(Math.sin(n)) * i + Math.abs(Math.cos(n)) * o)
- return (
- (e.width = s),
- (e.height = a),
- r.translate(s / 2, a / 2),
- r.rotate(n),
- r.drawImage(this.canvas, i / -2, o / -2),
- (this.buffer = b.makeBufferFromCanvasImageData(e)),
- this
- )
- }
- invert() {
- return new O(this)
- }
- }
- b.DEGREE_TO_RADIANS = Math.PI / 180
- class L {
- constructor(t, e, r) {
- ;(this.deviceId = t), (this.label = e), (this.kind = 'videoinput'), (this.groupId = r || void 0)
- }
- toJSON() {
- return { kind: this.kind, groupId: this.groupId, deviceId: this.deviceId, label: this.label }
- }
- }
- var B,
- P =
- (globalThis || r.g || self || window ? (globalThis || r.g || self || window || void 0).__awaiter : void 0) ||
- function(t, e, r, n) {
- return new (r || (r = Promise))(function(i, o) {
- function s(t) {
- try {
- l(n.next(t))
- } catch (t) {
- o(t)
- }
- }
- function a(t) {
- try {
- l(n.throw(t))
- } catch (t) {
- o(t)
- }
- }
- function l(t) {
- var e
- t.done
- ? i(t.value)
- : ((e = t.value),
- e instanceof r
- ? e
- : new r(function(t) {
- t(e)
- })).then(s, a)
- }
- l((n = n.apply(t, e || [])).next())
- })
- }
- class v {
- constructor(t, e = 500, r) {
- ;(this.reader = t),
- (this.timeBetweenScansMillis = e),
- (this._hints = r),
- (this._stopContinuousDecode = !1),
- (this._stopAsyncDecode = !1),
- (this._timeBetweenDecodingAttempts = 0)
- }
- get hasNavigator() {
- return 'undefined' != typeof navigator
- }
- get isMediaDevicesSuported() {
- return this.hasNavigator && !!navigator.mediaDevices
- }
- get canEnumerateDevices() {
- return !(!this.isMediaDevicesSuported || !navigator.mediaDevices.enumerateDevices)
- }
- get timeBetweenDecodingAttempts() {
- return this._timeBetweenDecodingAttempts
- }
- set timeBetweenDecodingAttempts(t) {
- this._timeBetweenDecodingAttempts = t < 0 ? 0 : t
- }
- set hints(t) {
- this._hints = t || null
- }
- get hints() {
- return this._hints
- }
- listVideoInputDevices() {
- return P(this, void 0, void 0, function*() {
- if (!this.hasNavigator) throw new Error("Can't enumerate devices, navigator is not present.")
- if (!this.canEnumerateDevices) throw new Error("Can't enumerate devices, method not supported.")
- const t = yield navigator.mediaDevices.enumerateDevices(),
- e = []
- for (const r of t) {
- const t = 'video' === r.kind ? 'videoinput' : r.kind
- if ('videoinput' !== t) continue
- const n = { deviceId: r.deviceId || r.id, label: r.label || `Video device ${e.length + 1}`, kind: t, groupId: r.groupId }
- e.push(n)
- }
- return e
- })
- }
- getVideoInputDevices() {
- return P(this, void 0, void 0, function*() {
- return (yield this.listVideoInputDevices()).map(t => new L(t.deviceId, t.label))
- })
- }
- findDeviceById(t) {
- return P(this, void 0, void 0, function*() {
- const e = yield this.listVideoInputDevices()
- return e ? e.find(e => e.deviceId === t) : null
- })
- }
- decodeFromInputVideoDevice(t, e) {
- return P(this, void 0, void 0, function*() {
- return yield this.decodeOnceFromVideoDevice(t, e)
- })
- }
- decodeOnceFromVideoDevice(t, e) {
- return P(this, void 0, void 0, function*() {
- let r
- this.reset(), (r = t ? { deviceId: { exact: t } } : { facingMode: 'environment' })
- const n = { video: r }
- return yield this.decodeOnceFromConstraints(n, e)
- })
- }
- decodeOnceFromConstraints(t, e) {
- return P(this, void 0, void 0, function*() {
- const r = yield navigator.mediaDevices.getUserMedia(t)
- return yield this.decodeOnceFromStream(r, e)
- })
- }
- decodeOnceFromStream(t, e) {
- return P(this, void 0, void 0, function*() {
- this.reset()
- const r = yield this.attachStreamToVideo(t, e)
- return yield this.decodeOnce(r)
- })
- }
- decodeFromInputVideoDeviceContinuously(t, e, r) {
- return P(this, void 0, void 0, function*() {
- return yield this.decodeFromVideoDevice(t, e, r)
- })
- }
- decodeFromVideoDevice(t, e, r) {
- return P(this, void 0, void 0, function*() {
- let n
- n = t ? { deviceId: { exact: t } } : { facingMode: 'environment' }
- const i = { video: n }
- return yield this.decodeFromConstraints(i, e, r)
- })
- }
- decodeFromConstraints(t, e, r) {
- return P(this, void 0, void 0, function*() {
- const n = yield navigator.mediaDevices.getUserMedia(t)
- return yield this.decodeFromStream(n, e, r)
- })
- }
- decodeFromStream(t, e, r) {
- return P(this, void 0, void 0, function*() {
- this.reset()
- const n = yield this.attachStreamToVideo(t, e)
- return yield this.decodeContinuously(n, r)
- })
- }
- stopAsyncDecode() {
- this._stopAsyncDecode = !0
- }
- stopContinuousDecode() {
- this._stopContinuousDecode = !0
- }
- attachStreamToVideo(t, e) {
- return P(this, void 0, void 0, function*() {
- const r = this.prepareVideoElement(e)
- return this.addVideoSource(r, t), (this.videoElement = r), (this.stream = t), yield this.playVideoOnLoadAsync(r), r
- })
- }
- playVideoOnLoadAsync(t) {
- return new Promise((e, r) => this.playVideoOnLoad(t, () => e()))
- }
- playVideoOnLoad(t, e) {
- ;(this.videoEndedListener = () => this.stopStreams()),
- (this.videoCanPlayListener = () => this.tryPlayVideo(t)),
- t.addEventListener('ended', this.videoEndedListener),
- t.addEventListener('canplay', this.videoCanPlayListener),
- t.addEventListener('playing', e),
- this.tryPlayVideo(t)
- }
- isVideoPlaying(t) {
- return t.currentTime > 0 && !t.paused && !t.ended && t.readyState > 2
- }
- tryPlayVideo(t) {
- return P(this, void 0, void 0, function*() {
- if (this.isVideoPlaying(t)) console.warn('Trying to play video that is already playing.')
- else
- try {
- yield t.play()
- } catch (t) {
- console.warn('It was not possible to play the video.')
- }
- })
- }
- getMediaElement(t, e) {
- const r = document.getElementById(t)
- if (!r) throw new s(`element with id '${t}' not found`)
- if (r.nodeName.toLowerCase() !== e.toLowerCase()) throw new s(`element with id '${t}' must be an ${e} element`)
- return r
- }
- decodeFromImage(t, e) {
- if (!t && !e) throw new s('either imageElement with a src set or an url must be provided')
- return e && !t ? this.decodeFromImageUrl(e) : this.decodeFromImageElement(t)
- }
- decodeFromVideo(t, e) {
- if (!t && !e) throw new s('Either an element with a src set or an URL must be provided')
- return e && !t ? this.decodeFromVideoUrl(e) : this.decodeFromVideoElement(t)
- }
- decodeFromVideoContinuously(t, e, r) {
- if (void 0 === t && void 0 === e) throw new s('Either an element with a src set or an URL must be provided')
- return e && !t ? this.decodeFromVideoUrlContinuously(e, r) : this.decodeFromVideoElementContinuously(t, r)
- }
- decodeFromImageElement(t) {
- if (!t) throw new s('An image element must be provided.')
- this.reset()
- const e = this.prepareImageElement(t)
- let r
- return (this.imageElement = e), (r = this.isImageLoaded(e) ? this.decodeOnce(e, !1, !0) : this._decodeOnLoadImage(e)), r
- }
- decodeFromVideoElement(t) {
- const e = this._decodeFromVideoElementSetup(t)
- return this._decodeOnLoadVideo(e)
- }
- decodeFromVideoElementContinuously(t, e) {
- const r = this._decodeFromVideoElementSetup(t)
- return this._decodeOnLoadVideoContinuously(r, e)
- }
- _decodeFromVideoElementSetup(t) {
- if (!t) throw new s('A video element must be provided.')
- this.reset()
- const e = this.prepareVideoElement(t)
- return (this.videoElement = e), e
- }
- decodeFromImageUrl(t) {
- if (!t) throw new s('An URL must be provided.')
- this.reset()
- const e = this.prepareImageElement()
- this.imageElement = e
- const r = this._decodeOnLoadImage(e)
- return (e.src = t), r
- }
- decodeFromVideoUrl(t) {
- if (!t) throw new s('An URL must be provided.')
- this.reset()
- const e = this.prepareVideoElement(),
- r = this.decodeFromVideoElement(e)
- return (e.src = t), r
- }
- decodeFromVideoUrlContinuously(t, e) {
- if (!t) throw new s('An URL must be provided.')
- this.reset()
- const r = this.prepareVideoElement(),
- n = this.decodeFromVideoElementContinuously(r, e)
- return (r.src = t), n
- }
- _decodeOnLoadImage(t) {
- return new Promise((e, r) => {
- ;(this.imageLoadedListener = () => this.decodeOnce(t, !1, !0).then(e, r)), t.addEventListener('load', this.imageLoadedListener)
- })
- }
- _decodeOnLoadVideo(t) {
- return P(this, void 0, void 0, function*() {
- return yield this.playVideoOnLoadAsync(t), yield this.decodeOnce(t)
- })
- }
- _decodeOnLoadVideoContinuously(t, e) {
- return P(this, void 0, void 0, function*() {
- yield this.playVideoOnLoadAsync(t), this.decodeContinuously(t, e)
- })
- }
- isImageLoaded(t) {
- return !!t.complete && 0 !== t.naturalWidth
- }
- prepareImageElement(t) {
- let e
- return (
- void 0 === t && ((e = document.createElement('img')), (e.width = 200), (e.height = 200)),
- 'string' == typeof t && (e = this.getMediaElement(t, 'img')),
- t instanceof HTMLImageElement && (e = t),
- e
- )
- }
- prepareVideoElement(t) {
- let e
- return (
- t || 'undefined' == typeof document || ((e = document.createElement('video')), (e.width = 200), (e.height = 200)),
- 'string' == typeof t && (e = this.getMediaElement(t, 'video')),
- t instanceof HTMLVideoElement && (e = t),
- e.setAttribute('autoplay', 'true'),
- e.setAttribute('muted', 'true'),
- e.setAttribute('playsinline', 'true'),
- e
- )
- }
- decodeOnce(t, e = !0, r = !0) {
- this._stopAsyncDecode = !1
- const n = (i, o) => {
- if (this._stopAsyncDecode) return o(new N('Video stream has ended before any code could be detected.')), void (this._stopAsyncDecode = void 0)
- try {
- i(this.decode(t))
- } catch (t) {
- const s = (t instanceof c || t instanceof C) && r
- if ((e && t instanceof N) || s) return setTimeout(n, this._timeBetweenDecodingAttempts, i, o)
- o(t)
- }
- }
- return new Promise((t, e) => n(t, e))
- }
- decodeContinuously(t, e) {
- this._stopContinuousDecode = !1
- const r = () => {
- if (this._stopContinuousDecode) this._stopContinuousDecode = void 0
- else
- try {
- const n = this.decode(t)
- e(n, null), setTimeout(r, this.timeBetweenScansMillis)
- } catch (t) {
- e(null, t)
- const n = t instanceof N
- ;(t instanceof c || t instanceof C || n) && setTimeout(r, this._timeBetweenDecodingAttempts)
- }
- }
- r()
- }
- decode(t) {
- const e = this.createBinaryBitmap(t)
- return this.decodeBitmap(e)
- }
- createBinaryBitmap(t) {
- const e = this.getCaptureCanvasContext(t)
- this.drawImageOnCanvas(e, t)
- const r = this.getCaptureCanvas(t),
- n = new b(r),
- i = new D(n)
- return new l(i)
- }
- getCaptureCanvasContext(t) {
- if (!this.captureCanvasContext) {
- const e = this.getCaptureCanvas(t).getContext('2d')
- this.captureCanvasContext = e
- }
- return this.captureCanvasContext
- }
- getCaptureCanvas(t) {
- if (!this.captureCanvas) {
- const e = this.createCaptureCanvas(t)
- this.captureCanvas = e
- }
- return this.captureCanvas
- }
- drawImageOnCanvas(t, e) {
- t.drawImage(e, 0, 0)
- }
- decodeBitmap(t) {
- return this.reader.decode(t, this._hints)
- }
- createCaptureCanvas(t) {
- if ('undefined' == typeof document) return this._destroyCaptureCanvas(), null
- const e = document.createElement('canvas')
- let r, n
- return (
- void 0 !== t &&
- (t instanceof HTMLVideoElement
- ? ((r = t.videoWidth), (n = t.videoHeight))
- : t instanceof HTMLImageElement && ((r = t.naturalWidth || t.width), (n = t.naturalHeight || t.height))),
- (e.style.width = r + 'px'),
- (e.style.height = n + 'px'),
- (e.width = r),
- (e.height = n),
- e
- )
- }
- stopStreams() {
- this.stream && (this.stream.getVideoTracks().forEach(t => t.stop()), (this.stream = void 0)),
- !1 === this._stopAsyncDecode && this.stopAsyncDecode(),
- !1 === this._stopContinuousDecode && this.stopContinuousDecode()
- }
- reset() {
- this.stopStreams(), this._destroyVideoElement(), this._destroyImageElement(), this._destroyCaptureCanvas()
- }
- _destroyVideoElement() {
- this.videoElement &&
- (void 0 !== this.videoEndedListener && this.videoElement.removeEventListener('ended', this.videoEndedListener),
- void 0 !== this.videoPlayingEventListener && this.videoElement.removeEventListener('playing', this.videoPlayingEventListener),
- void 0 !== this.videoCanPlayListener && this.videoElement.removeEventListener('loadedmetadata', this.videoCanPlayListener),
- this.cleanVideoSource(this.videoElement),
- (this.videoElement = void 0))
- }
- _destroyImageElement() {
- this.imageElement &&
- (void 0 !== this.imageLoadedListener && this.imageElement.removeEventListener('load', this.imageLoadedListener),
- (this.imageElement.src = void 0),
- this.imageElement.removeAttribute('src'),
- (this.imageElement = void 0))
- }
- _destroyCaptureCanvas() {
- ;(this.captureCanvasContext = void 0), (this.captureCanvas = void 0)
- }
- addVideoSource(t, e) {
- try {
- t.srcObject = e
- } catch (r) {
- t.src = URL.createObjectURL(e)
- }
- }
- cleanVideoSource(t) {
- try {
- t.srcObject = null
- } catch (e) {
- t.src = ''
- }
- this.videoElement.removeAttribute('src')
- }
- }
- class F {
- constructor(t, e, r = null == e ? 0 : 8 * e.length, n, i, o = u.currentTimeMillis()) {
- ;(this.text = t),
- (this.rawBytes = e),
- (this.numBits = r),
- (this.resultPoints = n),
- (this.format = i),
- (this.timestamp = o),
- (this.text = t),
- (this.rawBytes = e),
- (this.numBits = null == r ? (null == e ? 0 : 8 * e.length) : r),
- (this.resultPoints = n),
- (this.format = i),
- (this.resultMetadata = null),
- (this.timestamp = null == o ? u.currentTimeMillis() : o)
- }
- getText() {
- return this.text
- }
- getRawBytes() {
- return this.rawBytes
- }
- getNumBits() {
- return this.numBits
- }
- getResultPoints() {
- return this.resultPoints
- }
- getBarcodeFormat() {
- return this.format
- }
- getResultMetadata() {
- return this.resultMetadata
- }
- putMetadata(t, e) {
- null === this.resultMetadata && (this.resultMetadata = new Map()), this.resultMetadata.set(t, e)
- }
- putAllMetadata(t) {
- null !== t && (null === this.resultMetadata ? (this.resultMetadata = t) : (this.resultMetadata = new Map(t)))
- }
- addResultPoints(t) {
- const e = this.resultPoints
- if (null === e) this.resultPoints = t
- else if (null !== t && t.length > 0) {
- const r = new Array(e.length + t.length)
- u.arraycopy(e, 0, r, 0, e.length), u.arraycopy(t, 0, r, e.length, t.length), (this.resultPoints = r)
- }
- }
- getTimestamp() {
- return this.timestamp
- }
- toString() {
- return this.text
- }
- }
- !(function(t) {
- ;(t[(t.AZTEC = 0)] = 'AZTEC'),
- (t[(t.CODABAR = 1)] = 'CODABAR'),
- (t[(t.CODE_39 = 2)] = 'CODE_39'),
- (t[(t.CODE_93 = 3)] = 'CODE_93'),
- (t[(t.CODE_128 = 4)] = 'CODE_128'),
- (t[(t.DATA_MATRIX = 5)] = 'DATA_MATRIX'),
- (t[(t.EAN_8 = 6)] = 'EAN_8'),
- (t[(t.EAN_13 = 7)] = 'EAN_13'),
- (t[(t.ITF = 8)] = 'ITF'),
- (t[(t.MAXICODE = 9)] = 'MAXICODE'),
- (t[(t.PDF_417 = 10)] = 'PDF_417'),
- (t[(t.QR_CODE = 11)] = 'QR_CODE'),
- (t[(t.RSS_14 = 12)] = 'RSS_14'),
- (t[(t.RSS_EXPANDED = 13)] = 'RSS_EXPANDED'),
- (t[(t.UPC_A = 14)] = 'UPC_A'),
- (t[(t.UPC_E = 15)] = 'UPC_E'),
- (t[(t.UPC_EAN_EXTENSION = 16)] = 'UPC_EAN_EXTENSION')
- })(B || (B = {}))
- var x,
- k = B
- !(function(t) {
- ;(t[(t.OTHER = 0)] = 'OTHER'),
- (t[(t.ORIENTATION = 1)] = 'ORIENTATION'),
- (t[(t.BYTE_SEGMENTS = 2)] = 'BYTE_SEGMENTS'),
- (t[(t.ERROR_CORRECTION_LEVEL = 3)] = 'ERROR_CORRECTION_LEVEL'),
- (t[(t.ISSUE_NUMBER = 4)] = 'ISSUE_NUMBER'),
- (t[(t.SUGGESTED_PRICE = 5)] = 'SUGGESTED_PRICE'),
- (t[(t.POSSIBLE_COUNTRY = 6)] = 'POSSIBLE_COUNTRY'),
- (t[(t.UPC_EAN_EXTENSION = 7)] = 'UPC_EAN_EXTENSION'),
- (t[(t.PDF417_EXTRA_METADATA = 8)] = 'PDF417_EXTRA_METADATA'),
- (t[(t.STRUCTURED_APPEND_SEQUENCE = 9)] = 'STRUCTURED_APPEND_SEQUENCE'),
- (t[(t.STRUCTURED_APPEND_PARITY = 10)] = 'STRUCTURED_APPEND_PARITY')
- })(x || (x = {}))
- var U,
- H,
- V,
- z,
- G,
- Y,
- X = x
- class W {
- constructor(t, e, r, n, i = -1, o = -1) {
- ;(this.rawBytes = t),
- (this.text = e),
- (this.byteSegments = r),
- (this.ecLevel = n),
- (this.structuredAppendSequenceNumber = i),
- (this.structuredAppendParity = o),
- (this.numBits = null == t ? 0 : 8 * t.length)
- }
- getRawBytes() {
- return this.rawBytes
- }
- getNumBits() {
- return this.numBits
- }
- setNumBits(t) {
- this.numBits = t
- }
- getText() {
- return this.text
- }
- getByteSegments() {
- return this.byteSegments
- }
- getECLevel() {
- return this.ecLevel
- }
- getErrorsCorrected() {
- return this.errorsCorrected
- }
- setErrorsCorrected(t) {
- this.errorsCorrected = t
- }
- getErasures() {
- return this.erasures
- }
- setErasures(t) {
- this.erasures = t
- }
- getOther() {
- return this.other
- }
- setOther(t) {
- this.other = t
- }
- hasStructuredAppend() {
- return this.structuredAppendParity >= 0 && this.structuredAppendSequenceNumber >= 0
- }
- getStructuredAppendParity() {
- return this.structuredAppendParity
- }
- getStructuredAppendSequenceNumber() {
- return this.structuredAppendSequenceNumber
- }
- }
- class j {
- exp(t) {
- return this.expTable[t]
- }
- log(t) {
- if (0 === t) throw new a()
- return this.logTable[t]
- }
- static addOrSubtract(t, e) {
- return t ^ e
- }
- }
- class Z {
- constructor(t, e) {
- if (0 === e.length) throw new a()
- this.field = t
- const r = e.length
- if (r > 1 && 0 === e[0]) {
- let t = 1
- for (; t < r && 0 === e[t]; ) t++
- t === r ? (this.coefficients = Int32Array.from([0])) : ((this.coefficients = new Int32Array(r - t)), u.arraycopy(e, t, this.coefficients, 0, this.coefficients.length))
- } else this.coefficients = e
- }
- getCoefficients() {
- return this.coefficients
- }
- getDegree() {
- return this.coefficients.length - 1
- }
- isZero() {
- return 0 === this.coefficients[0]
- }
- getCoefficient(t) {
- return this.coefficients[this.coefficients.length - 1 - t]
- }
- evaluateAt(t) {
- if (0 === t) return this.getCoefficient(0)
- const e = this.coefficients
- let r
- if (1 === t) {
- r = 0
- for (let t = 0, n = e.length; t !== n; t++) {
- const n = e[t]
- r = j.addOrSubtract(r, n)
- }
- return r
- }
- r = e[0]
- const n = e.length,
- i = this.field
- for (let o = 1; o < n; o++) r = j.addOrSubtract(i.multiply(t, r), e[o])
- return r
- }
- addOrSubtract(t) {
- if (!this.field.equals(t.field)) throw new a('GenericGFPolys do not have same GenericGF field')
- if (this.isZero()) return t
- if (t.isZero()) return this
- let e = this.coefficients,
- r = t.coefficients
- if (e.length > r.length) {
- const t = e
- ;(e = r), (r = t)
- }
- let n = new Int32Array(r.length)
- const i = r.length - e.length
- u.arraycopy(r, 0, n, 0, i)
- for (let t = i; t < r.length; t++) n[t] = j.addOrSubtract(e[t - i], r[t])
- return new Z(this.field, n)
- }
- multiply(t) {
- if (!this.field.equals(t.field)) throw new a('GenericGFPolys do not have same GenericGF field')
- if (this.isZero() || t.isZero()) return this.field.getZero()
- const e = this.coefficients,
- r = e.length,
- n = t.coefficients,
- i = n.length,
- o = new Int32Array(r + i - 1),
- s = this.field
- for (let t = 0; t < r; t++) {
- const r = e[t]
- for (let e = 0; e < i; e++) o[t + e] = j.addOrSubtract(o[t + e], s.multiply(r, n[e]))
- }
- return new Z(s, o)
- }
- multiplyScalar(t) {
- if (0 === t) return this.field.getZero()
- if (1 === t) return this
- const e = this.coefficients.length,
- r = this.field,
- n = new Int32Array(e),
- i = this.coefficients
- for (let o = 0; o < e; o++) n[o] = r.multiply(i[o], t)
- return new Z(r, n)
- }
- multiplyByMonomial(t, e) {
- if (t < 0) throw new a()
- if (0 === e) return this.field.getZero()
- const r = this.coefficients,
- n = r.length,
- i = new Int32Array(n + t),
- o = this.field
- for (let t = 0; t < n; t++) i[t] = o.multiply(r[t], e)
- return new Z(o, i)
- }
- divide(t) {
- if (!this.field.equals(t.field)) throw new a('GenericGFPolys do not have same GenericGF field')
- if (t.isZero()) throw new a('Divide by 0')
- const e = this.field
- let r = e.getZero(),
- n = this
- const i = t.getCoefficient(t.getDegree()),
- o = e.inverse(i)
- for (; n.getDegree() >= t.getDegree() && !n.isZero(); ) {
- const i = n.getDegree() - t.getDegree(),
- s = e.multiply(n.getCoefficient(n.getDegree()), o),
- a = t.multiplyByMonomial(i, s),
- l = e.buildMonomial(i, s)
- ;(r = r.addOrSubtract(l)), (n = n.addOrSubtract(a))
- }
- return [r, n]
- }
- toString() {
- let t = ''
- for (let e = this.getDegree(); e >= 0; e--) {
- let r = this.getCoefficient(e)
- if (0 !== r) {
- if ((r < 0 ? ((t += ' - '), (r = -r)) : t.length > 0 && (t += ' + '), 0 === e || 1 !== r)) {
- const e = this.field.log(r)
- 0 === e ? (t += '1') : 1 === e ? (t += 'a') : ((t += 'a^'), (t += e))
- }
- 0 !== e && (1 === e ? (t += 'x') : ((t += 'x^'), (t += e)))
- }
- }
- return t
- }
- }
- class Q extends o {}
- Q.kind = 'ArithmeticException'
- class K extends j {
- constructor(t, e, r) {
- super(), (this.primitive = t), (this.size = e), (this.generatorBase = r)
- const n = new Int32Array(e)
- let i = 1
- for (let r = 0; r < e; r++) (n[r] = i), (i *= 2), i >= e && ((i ^= t), (i &= e - 1))
- this.expTable = n
- const o = new Int32Array(e)
- for (let t = 0; t < e - 1; t++) o[n[t]] = t
- ;(this.logTable = o), (this.zero = new Z(this, Int32Array.from([0]))), (this.one = new Z(this, Int32Array.from([1])))
- }
- getZero() {
- return this.zero
- }
- getOne() {
- return this.one
- }
- buildMonomial(t, e) {
- if (t < 0) throw new a()
- if (0 === e) return this.zero
- const r = new Int32Array(t + 1)
- return (r[0] = e), new Z(this, r)
- }
- inverse(t) {
- if (0 === t) throw new Q()
- return this.expTable[this.size - this.logTable[t] - 1]
- }
- multiply(t, e) {
- return 0 === t || 0 === e ? 0 : this.expTable[(this.logTable[t] + this.logTable[e]) % (this.size - 1)]
- }
- getSize() {
- return this.size
- }
- getGeneratorBase() {
- return this.generatorBase
- }
- toString() {
- return 'GF(0x' + w.toHexString(this.primitive) + ',' + this.size + ')'
- }
- equals(t) {
- return t === this
- }
- }
- ;(K.AZTEC_DATA_12 = new K(4201, 4096, 1)),
- (K.AZTEC_DATA_10 = new K(1033, 1024, 1)),
- (K.AZTEC_DATA_6 = new K(67, 64, 1)),
- (K.AZTEC_PARAM = new K(19, 16, 1)),
- (K.QR_CODE_FIELD_256 = new K(285, 256, 0)),
- (K.DATA_MATRIX_FIELD_256 = new K(301, 256, 1)),
- (K.AZTEC_DATA_8 = K.DATA_MATRIX_FIELD_256),
- (K.MAXICODE_FIELD_64 = K.AZTEC_DATA_6)
- class q extends o {}
- q.kind = 'ReedSolomonException'
- class J extends o {}
- J.kind = 'IllegalStateException'
- class $ {
- constructor(t) {
- this.field = t
- }
- decode(t, e) {
- const r = this.field,
- n = new Z(r, t),
- i = new Int32Array(e)
- let o = !0
- for (let t = 0; t < e; t++) {
- const e = n.evaluateAt(r.exp(t + r.getGeneratorBase()))
- ;(i[i.length - 1 - t] = e), 0 !== e && (o = !1)
- }
- if (o) return
- const s = new Z(r, i),
- a = this.runEuclideanAlgorithm(r.buildMonomial(e, 1), s, e),
- l = a[0],
- c = a[1],
- h = this.findErrorLocations(l),
- u = this.findErrorMagnitudes(c, h)
- for (let e = 0; e < h.length; e++) {
- const n = t.length - 1 - r.log(h[e])
- if (n < 0) throw new q('Bad error location')
- t[n] = K.addOrSubtract(t[n], u[e])
- }
- }
- runEuclideanAlgorithm(t, e, r) {
- if (t.getDegree() < e.getDegree()) {
- const r = t
- ;(t = e), (e = r)
- }
- const n = this.field
- let i = t,
- o = e,
- s = n.getZero(),
- a = n.getOne()
- for (; o.getDegree() >= ((r / 2) | 0); ) {
- let t = i,
- e = s
- if (((i = o), (s = a), i.isZero())) throw new q('r_{i-1} was zero')
- o = t
- let r = n.getZero()
- const l = i.getCoefficient(i.getDegree()),
- c = n.inverse(l)
- for (; o.getDegree() >= i.getDegree() && !o.isZero(); ) {
- const t = o.getDegree() - i.getDegree(),
- e = n.multiply(o.getCoefficient(o.getDegree()), c)
- ;(r = r.addOrSubtract(n.buildMonomial(t, e))), (o = o.addOrSubtract(i.multiplyByMonomial(t, e)))
- }
- if (((a = r.multiply(s).addOrSubtract(e)), o.getDegree() >= i.getDegree())) throw new J('Division algorithm failed to reduce polynomial?')
- }
- const l = a.getCoefficient(0)
- if (0 === l) throw new q('sigmaTilde(0) was zero')
- const c = n.inverse(l)
- return [a.multiplyScalar(c), o.multiplyScalar(c)]
- }
- findErrorLocations(t) {
- const e = t.getDegree()
- if (1 === e) return Int32Array.from([t.getCoefficient(1)])
- const r = new Int32Array(e)
- let n = 0
- const i = this.field
- for (let o = 1; o < i.getSize() && n < e; o++) 0 === t.evaluateAt(o) && ((r[n] = i.inverse(o)), n++)
- if (n !== e) throw new q('Error locator degree does not match number of roots')
- return r
- }
- findErrorMagnitudes(t, e) {
- const r = e.length,
- n = new Int32Array(r),
- i = this.field
- for (let o = 0; o < r; o++) {
- const s = i.inverse(e[o])
- let a = 1
- for (let t = 0; t < r; t++)
- if (o !== t) {
- const r = i.multiply(e[t], s),
- n = 0 == (1 & r) ? 1 | r : -2 & r
- a = i.multiply(a, n)
- }
- ;(n[o] = i.multiply(t.evaluateAt(s), i.inverse(a))), 0 !== i.getGeneratorBase() && (n[o] = i.multiply(n[o], s))
- }
- return n
- }
- }
- !(function(t) {
- ;(t[(t.UPPER = 0)] = 'UPPER'),
- (t[(t.LOWER = 1)] = 'LOWER'),
- (t[(t.MIXED = 2)] = 'MIXED'),
- (t[(t.DIGIT = 3)] = 'DIGIT'),
- (t[(t.PUNCT = 4)] = 'PUNCT'),
- (t[(t.BINARY = 5)] = 'BINARY')
- })(U || (U = {}))
- class tt {
- decode(t) {
- this.ddata = t
- let e = t.getBits(),
- r = this.extractBits(e),
- n = this.correctBits(r),
- i = tt.convertBoolArrayToByteArray(n),
- o = tt.getEncodedData(n),
- s = new W(i, o, null, null)
- return s.setNumBits(n.length), s
- }
- static highLevelDecode(t) {
- return this.getEncodedData(t)
- }
- static getEncodedData(t) {
- let e = t.length,
- r = U.UPPER,
- n = U.UPPER,
- i = '',
- o = 0
- for (; o < e; )
- if (n === U.BINARY) {
- if (e - o < 5) break
- let s = tt.readCode(t, o, 5)
- if (((o += 5), 0 === s)) {
- if (e - o < 11) break
- ;(s = tt.readCode(t, o, 11) + 31), (o += 11)
- }
- for (let r = 0; r < s; r++) {
- if (e - o < 8) {
- o = e
- break
- }
- const r = tt.readCode(t, o, 8)
- ;(i += _.castAsNonUtf8Char(r)), (o += 8)
- }
- n = r
- } else {
- let s = n === U.DIGIT ? 4 : 5
- if (e - o < s) break
- let a = tt.readCode(t, o, s)
- o += s
- let l = tt.getCharacter(n, a)
- l.startsWith('CTRL_') ? ((r = n), (n = tt.getTable(l.charAt(5))), 'L' === l.charAt(6) && (r = n)) : ((i += l), (n = r))
- }
- return i
- }
- static getTable(t) {
- switch (t) {
- case 'L':
- return U.LOWER
- case 'P':
- return U.PUNCT
- case 'M':
- return U.MIXED
- case 'D':
- return U.DIGIT
- case 'B':
- return U.BINARY
- case 'U':
- default:
- return U.UPPER
- }
- }
- static getCharacter(t, e) {
- switch (t) {
- case U.UPPER:
- return tt.UPPER_TABLE[e]
- case U.LOWER:
- return tt.LOWER_TABLE[e]
- case U.MIXED:
- return tt.MIXED_TABLE[e]
- case U.PUNCT:
- return tt.PUNCT_TABLE[e]
- case U.DIGIT:
- return tt.DIGIT_TABLE[e]
- default:
- throw new J('Bad table')
- }
- }
- correctBits(t) {
- let e, r
- this.ddata.getNbLayers() <= 2
- ? ((r = 6), (e = K.AZTEC_DATA_6))
- : this.ddata.getNbLayers() <= 8
- ? ((r = 8), (e = K.AZTEC_DATA_8))
- : this.ddata.getNbLayers() <= 22
- ? ((r = 10), (e = K.AZTEC_DATA_10))
- : ((r = 12), (e = K.AZTEC_DATA_12))
- let n = this.ddata.getNbDatablocks(),
- i = t.length / r
- if (i < n) throw new C()
- let o = t.length % r,
- s = new Int32Array(i)
- for (let e = 0; e < i; e++, o += r) s[e] = tt.readCode(t, o, r)
- try {
- new $(e).decode(s, i - n)
- } catch (t) {
- throw new C(t)
- }
- let a = (1 << r) - 1,
- l = 0
- for (let t = 0; t < n; t++) {
- let e = s[t]
- if (0 === e || e === a) throw new C()
- ;(1 !== e && e !== a - 1) || l++
- }
- let c = new Array(n * r - l),
- h = 0
- for (let t = 0; t < n; t++) {
- let e = s[t]
- if (1 === e || e === a - 1) c.fill(e > 1, h, h + r - 1), (h += r - 1)
- else for (let t = r - 1; t >= 0; --t) c[h++] = 0 != (e & (1 << t))
- }
- return c
- }
- extractBits(t) {
- let e = this.ddata.isCompact(),
- r = this.ddata.getNbLayers(),
- n = (e ? 11 : 14) + 4 * r,
- i = new Int32Array(n),
- o = new Array(this.totalBitsInLayer(r, e))
- if (e) for (let t = 0; t < i.length; t++) i[t] = t
- else {
- let t = n + 1 + 2 * w.truncDivision(w.truncDivision(n, 2) - 1, 15),
- e = n / 2,
- r = w.truncDivision(t, 2)
- for (let t = 0; t < e; t++) {
- let n = t + w.truncDivision(t, 15)
- ;(i[e - t - 1] = r - n - 1), (i[e + t] = r + n + 1)
- }
- }
- for (let s = 0, a = 0; s < r; s++) {
- let l = 4 * (r - s) + (e ? 9 : 12),
- c = 2 * s,
- h = n - 1 - c
- for (let e = 0; e < l; e++) {
- let r = 2 * e
- for (let n = 0; n < 2; n++)
- (o[a + r + n] = t.get(i[c + n], i[c + e])),
- (o[a + 2 * l + r + n] = t.get(i[c + e], i[h - n])),
- (o[a + 4 * l + r + n] = t.get(i[h - n], i[h - e])),
- (o[a + 6 * l + r + n] = t.get(i[h - e], i[c + n]))
- }
- a += 8 * l
- }
- return o
- }
- static readCode(t, e, r) {
- let n = 0
- for (let i = e; i < e + r; i++) (n <<= 1), t[i] && (n |= 1)
- return n
- }
- static readByte(t, e) {
- let r = t.length - e
- return r >= 8 ? tt.readCode(t, e, 8) : tt.readCode(t, e, r) << (8 - r)
- }
- static convertBoolArrayToByteArray(t) {
- let e = new Uint8Array((t.length + 7) / 8)
- for (let r = 0; r < e.length; r++) e[r] = tt.readByte(t, 8 * r)
- return e
- }
- totalBitsInLayer(t, e) {
- return ((e ? 88 : 112) + 16 * t) * t
- }
- }
- ;(tt.UPPER_TABLE = [
- 'CTRL_PS',
- ' ',
- 'A',
- 'B',
- 'C',
- 'D',
- 'E',
- 'F',
- 'G',
- 'H',
- 'I',
- 'J',
- 'K',
- 'L',
- 'M',
- 'N',
- 'O',
- 'P',
- 'Q',
- 'R',
- 'S',
- 'T',
- 'U',
- 'V',
- 'W',
- 'X',
- 'Y',
- 'Z',
- 'CTRL_LL',
- 'CTRL_ML',
- 'CTRL_DL',
- 'CTRL_BS'
- ]),
- (tt.LOWER_TABLE = [
- 'CTRL_PS',
- ' ',
- 'a',
- 'b',
- 'c',
- 'd',
- 'e',
- 'f',
- 'g',
- 'h',
- 'i',
- 'j',
- 'k',
- 'l',
- 'm',
- 'n',
- 'o',
- 'p',
- 'q',
- 'r',
- 's',
- 't',
- 'u',
- 'v',
- 'w',
- 'x',
- 'y',
- 'z',
- 'CTRL_US',
- 'CTRL_ML',
- 'CTRL_DL',
- 'CTRL_BS'
- ]),
- (tt.MIXED_TABLE = [
- 'CTRL_PS',
- ' ',
- '\\1',
- '\\2',
- '\\3',
- '\\4',
- '\\5',
- '\\6',
- '\\7',
- '\b',
- '\t',
- '\n',
- '\\13',
- '\f',
- '\r',
- '\\33',
- '\\34',
- '\\35',
- '\\36',
- '\\37',
- '@',
- '\\',
- '^',
- '_',
- '`',
- '|',
- '~',
- '\\177',
- 'CTRL_LL',
- 'CTRL_UL',
- 'CTRL_PL',
- 'CTRL_BS'
- ]),
- (tt.PUNCT_TABLE = [
- '',
- '\r',
- '\r\n',
- '. ',
- ', ',
- ': ',
- '!',
- '"',
- '#',
- '$',
- '%',
- '&',
- "'",
- '(',
- ')',
- '*',
- '+',
- ',',
- '-',
- '.',
- '/',
- ':',
- ';',
- '<',
- '=',
- '>',
- '?',
- '[',
- ']',
- '{',
- '}',
- 'CTRL_UL'
- ]),
- (tt.DIGIT_TABLE = ['CTRL_PS', ' ', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ',', '.', 'CTRL_UL', 'CTRL_US'])
- class et {
- constructor() {}
- static round(t) {
- return NaN === t ? 0 : t <= Number.MIN_SAFE_INTEGER ? Number.MIN_SAFE_INTEGER : t >= Number.MAX_SAFE_INTEGER ? Number.MAX_SAFE_INTEGER : (t + (t < 0 ? -0.5 : 0.5)) | 0
- }
- static distance(t, e, r, n) {
- const i = t - r,
- o = e - n
- return Math.sqrt(i * i + o * o)
- }
- static sum(t) {
- let e = 0
- for (let r = 0, n = t.length; r !== n; r++) e += t[r]
- return e
- }
- }
- class rt {
- static floatToIntBits(t) {
- return t
- }
- }
- rt.MAX_VALUE = Number.MAX_SAFE_INTEGER
- class nt {
- constructor(t, e) {
- ;(this.x = t), (this.y = e)
- }
- getX() {
- return this.x
- }
- getY() {
- return this.y
- }
- equals(t) {
- if (t instanceof nt) {
- const e = t
- return this.x === e.x && this.y === e.y
- }
- return !1
- }
- hashCode() {
- return 31 * rt.floatToIntBits(this.x) + rt.floatToIntBits(this.y)
- }
- toString() {
- return '(' + this.x + ',' + this.y + ')'
- }
- static orderBestPatterns(t) {
- const e = this.distance(t[0], t[1]),
- r = this.distance(t[1], t[2]),
- n = this.distance(t[0], t[2])
- let i, o, s
- if (
- (r >= e && r >= n ? ((o = t[0]), (i = t[1]), (s = t[2])) : n >= r && n >= e ? ((o = t[1]), (i = t[0]), (s = t[2])) : ((o = t[2]), (i = t[0]), (s = t[1])),
- this.crossProductZ(i, o, s) < 0)
- ) {
- const t = i
- ;(i = s), (s = t)
- }
- ;(t[0] = i), (t[1] = o), (t[2] = s)
- }
- static distance(t, e) {
- return et.distance(t.x, t.y, e.x, e.y)
- }
- static crossProductZ(t, e, r) {
- const n = e.x,
- i = e.y
- return (r.x - n) * (t.y - i) - (r.y - i) * (t.x - n)
- }
- }
- class it {
- constructor(t, e) {
- ;(this.bits = t), (this.points = e)
- }
- getBits() {
- return this.bits
- }
- getPoints() {
- return this.points
- }
- }
- class ot extends it {
- constructor(t, e, r, n, i) {
- super(t, e), (this.compact = r), (this.nbDatablocks = n), (this.nbLayers = i)
- }
- getNbLayers() {
- return this.nbLayers
- }
- getNbDatablocks() {
- return this.nbDatablocks
- }
- isCompact() {
- return this.compact
- }
- }
- class st {
- constructor(t, e, r, n) {
- ;(this.image = t),
- (this.height = t.getHeight()),
- (this.width = t.getWidth()),
- null == e && (e = st.INIT_SIZE),
- null == r && (r = (t.getWidth() / 2) | 0),
- null == n && (n = (t.getHeight() / 2) | 0)
- const i = (e / 2) | 0
- if (
- ((this.leftInit = r - i),
- (this.rightInit = r + i),
- (this.upInit = n - i),
- (this.downInit = n + i),
- this.upInit < 0 || this.leftInit < 0 || this.downInit >= this.height || this.rightInit >= this.width)
- )
- throw new N()
- }
- detect() {
- let t = this.leftInit,
- e = this.rightInit,
- r = this.upInit,
- n = this.downInit,
- i = !1,
- o = !0,
- s = !1,
- a = !1,
- l = !1,
- c = !1,
- h = !1
- const u = this.width,
- d = this.height
- for (; o; ) {
- o = !1
- let g = !0
- for (; (g || !a) && e < u; ) (g = this.containsBlackPoint(r, n, e, !1)), g ? (e++, (o = !0), (a = !0)) : a || e++
- if (e >= u) {
- i = !0
- break
- }
- let f = !0
- for (; (f || !l) && n < d; ) (f = this.containsBlackPoint(t, e, n, !0)), f ? (n++, (o = !0), (l = !0)) : l || n++
- if (n >= d) {
- i = !0
- break
- }
- let w = !0
- for (; (w || !c) && t >= 0; ) (w = this.containsBlackPoint(r, n, t, !1)), w ? (t--, (o = !0), (c = !0)) : c || t--
- if (t < 0) {
- i = !0
- break
- }
- let A = !0
- for (; (A || !h) && r >= 0; ) (A = this.containsBlackPoint(t, e, r, !0)), A ? (r--, (o = !0), (h = !0)) : h || r--
- if (r < 0) {
- i = !0
- break
- }
- o && (s = !0)
- }
- if (!i && s) {
- const i = e - t
- let o = null
- for (let e = 1; null === o && e < i; e++) o = this.getBlackPointOnSegment(t, n - e, t + e, n)
- if (null == o) throw new N()
- let s = null
- for (let e = 1; null === s && e < i; e++) s = this.getBlackPointOnSegment(t, r + e, t + e, r)
- if (null == s) throw new N()
- let a = null
- for (let t = 1; null === a && t < i; t++) a = this.getBlackPointOnSegment(e, r + t, e - t, r)
- if (null == a) throw new N()
- let l = null
- for (let t = 1; null === l && t < i; t++) l = this.getBlackPointOnSegment(e, n - t, e - t, n)
- if (null == l) throw new N()
- return this.centerEdges(l, o, a, s)
- }
- throw new N()
- }
- getBlackPointOnSegment(t, e, r, n) {
- const i = et.round(et.distance(t, e, r, n)),
- o = (r - t) / i,
- s = (n - e) / i,
- a = this.image
- for (let r = 0; r < i; r++) {
- const n = et.round(t + r * o),
- i = et.round(e + r * s)
- if (a.get(n, i)) return new nt(n, i)
- }
- return null
- }
- centerEdges(t, e, r, n) {
- const i = t.getX(),
- o = t.getY(),
- s = e.getX(),
- a = e.getY(),
- l = r.getX(),
- c = r.getY(),
- h = n.getX(),
- u = n.getY(),
- d = st.CORR
- return i < this.width / 2
- ? [new nt(h - d, u + d), new nt(s + d, a + d), new nt(l - d, c - d), new nt(i + d, o - d)]
- : [new nt(h + d, u + d), new nt(s + d, a - d), new nt(l - d, c + d), new nt(i - d, o - d)]
- }
- containsBlackPoint(t, e, r, n) {
- const i = this.image
- if (n) {
- for (let n = t; n <= e; n++) if (i.get(n, r)) return !0
- } else for (let n = t; n <= e; n++) if (i.get(r, n)) return !0
- return !1
- }
- }
- ;(st.INIT_SIZE = 10), (st.CORR = 1)
- class at {
- static checkAndNudgePoints(t, e) {
- const r = t.getWidth(),
- n = t.getHeight()
- let i = !0
- for (let t = 0; t < e.length && i; t += 2) {
- const o = Math.floor(e[t]),
- s = Math.floor(e[t + 1])
- if (o < -1 || o > r || s < -1 || s > n) throw new N()
- ;(i = !1), -1 === o ? ((e[t] = 0), (i = !0)) : o === r && ((e[t] = r - 1), (i = !0)), -1 === s ? ((e[t + 1] = 0), (i = !0)) : s === n && ((e[t + 1] = n - 1), (i = !0))
- }
- i = !0
- for (let t = e.length - 2; t >= 0 && i; t -= 2) {
- const o = Math.floor(e[t]),
- s = Math.floor(e[t + 1])
- if (o < -1 || o > r || s < -1 || s > n) throw new N()
- ;(i = !1), -1 === o ? ((e[t] = 0), (i = !0)) : o === r && ((e[t] = r - 1), (i = !0)), -1 === s ? ((e[t + 1] = 0), (i = !0)) : s === n && ((e[t + 1] = n - 1), (i = !0))
- }
- }
- }
- class lt {
- constructor(t, e, r, n, i, o, s, a, l) {
- ;(this.a11 = t), (this.a21 = e), (this.a31 = r), (this.a12 = n), (this.a22 = i), (this.a32 = o), (this.a13 = s), (this.a23 = a), (this.a33 = l)
- }
- static quadrilateralToQuadrilateral(t, e, r, n, i, o, s, a, l, c, h, u, d, g, f, w) {
- const A = lt.quadrilateralToSquare(t, e, r, n, i, o, s, a)
- return lt.squareToQuadrilateral(l, c, h, u, d, g, f, w).times(A)
- }
- transformPoints(t) {
- const e = t.length,
- r = this.a11,
- n = this.a12,
- i = this.a13,
- o = this.a21,
- s = this.a22,
- a = this.a23,
- l = this.a31,
- c = this.a32,
- h = this.a33
- for (let u = 0; u < e; u += 2) {
- const e = t[u],
- d = t[u + 1],
- g = i * e + a * d + h
- ;(t[u] = (r * e + o * d + l) / g), (t[u + 1] = (n * e + s * d + c) / g)
- }
- }
- transformPointsWithValues(t, e) {
- const r = this.a11,
- n = this.a12,
- i = this.a13,
- o = this.a21,
- s = this.a22,
- a = this.a23,
- l = this.a31,
- c = this.a32,
- h = this.a33,
- u = t.length
- for (let d = 0; d < u; d++) {
- const u = t[d],
- g = e[d],
- f = i * u + a * g + h
- ;(t[d] = (r * u + o * g + l) / f), (e[d] = (n * u + s * g + c) / f)
- }
- }
- static squareToQuadrilateral(t, e, r, n, i, o, s, a) {
- const l = t - r + i - s,
- c = e - n + o - a
- if (0 === l && 0 === c) return new lt(r - t, i - r, t, n - e, o - n, e, 0, 0, 1)
- {
- const h = r - i,
- u = s - i,
- d = n - o,
- g = a - o,
- f = h * g - u * d,
- w = (l * g - u * c) / f,
- A = (h * c - l * d) / f
- return new lt(r - t + w * r, s - t + A * s, t, n - e + w * n, a - e + A * a, e, w, A, 1)
- }
- }
- static quadrilateralToSquare(t, e, r, n, i, o, s, a) {
- return lt.squareToQuadrilateral(t, e, r, n, i, o, s, a).buildAdjoint()
- }
- buildAdjoint() {
- return new lt(
- this.a22 * this.a33 - this.a23 * this.a32,
- this.a23 * this.a31 - this.a21 * this.a33,
- this.a21 * this.a32 - this.a22 * this.a31,
- this.a13 * this.a32 - this.a12 * this.a33,
- this.a11 * this.a33 - this.a13 * this.a31,
- this.a12 * this.a31 - this.a11 * this.a32,
- this.a12 * this.a23 - this.a13 * this.a22,
- this.a13 * this.a21 - this.a11 * this.a23,
- this.a11 * this.a22 - this.a12 * this.a21
- )
- }
- times(t) {
- return new lt(
- this.a11 * t.a11 + this.a21 * t.a12 + this.a31 * t.a13,
- this.a11 * t.a21 + this.a21 * t.a22 + this.a31 * t.a23,
- this.a11 * t.a31 + this.a21 * t.a32 + this.a31 * t.a33,
- this.a12 * t.a11 + this.a22 * t.a12 + this.a32 * t.a13,
- this.a12 * t.a21 + this.a22 * t.a22 + this.a32 * t.a23,
- this.a12 * t.a31 + this.a22 * t.a32 + this.a32 * t.a33,
- this.a13 * t.a11 + this.a23 * t.a12 + this.a33 * t.a13,
- this.a13 * t.a21 + this.a23 * t.a22 + this.a33 * t.a23,
- this.a13 * t.a31 + this.a23 * t.a32 + this.a33 * t.a33
- )
- }
- }
- class ct extends at {
- sampleGrid(t, e, r, n, i, o, s, a, l, c, h, u, d, g, f, w, A, m, E) {
- const C = lt.quadrilateralToQuadrilateral(n, i, o, s, a, l, c, h, u, d, g, f, w, A, m, E)
- return this.sampleGridWithTransform(t, e, r, C)
- }
- sampleGridWithTransform(t, e, r, n) {
- if (e <= 0 || r <= 0) throw new N()
- const i = new y(e, r),
- o = new Float32Array(2 * e)
- for (let e = 0; e < r; e++) {
- const r = o.length,
- s = e + 0.5
- for (let t = 0; t < r; t += 2) (o[t] = t / 2 + 0.5), (o[t + 1] = s)
- n.transformPoints(o), at.checkAndNudgePoints(t, o)
- try {
- for (let n = 0; n < r; n += 2) t.get(Math.floor(o[n]), Math.floor(o[n + 1])) && i.set(n / 2, e)
- } catch (t) {
- throw new N()
- }
- }
- return i
- }
- }
- class ht {
- static setGridSampler(t) {
- ht.gridSampler = t
- }
- static getInstance() {
- return ht.gridSampler
- }
- }
- ht.gridSampler = new ct()
- class ut {
- constructor(t, e) {
- ;(this.x = t), (this.y = e)
- }
- toResultPoint() {
- return new nt(this.getX(), this.getY())
- }
- getX() {
- return this.x
- }
- getY() {
- return this.y
- }
- }
- class dt {
- constructor(t) {
- ;(this.EXPECTED_CORNER_BITS = new Int32Array([3808, 476, 2107, 1799])), (this.image = t)
- }
- detect() {
- return this.detectMirror(!1)
- }
- detectMirror(t) {
- let e = this.getMatrixCenter(),
- r = this.getBullsEyeCorners(e)
- if (t) {
- let t = r[0]
- ;(r[0] = r[2]), (r[2] = t)
- }
- this.extractParameters(r)
- let n = this.sampleGrid(this.image, r[this.shift % 4], r[(this.shift + 1) % 4], r[(this.shift + 2) % 4], r[(this.shift + 3) % 4]),
- i = this.getMatrixCornerPoints(r)
- return new ot(n, i, this.compact, this.nbDataBlocks, this.nbLayers)
- }
- extractParameters(t) {
- if (!(this.isValidPoint(t[0]) && this.isValidPoint(t[1]) && this.isValidPoint(t[2]) && this.isValidPoint(t[3]))) throw new N()
- let e = 2 * this.nbCenterLayers,
- r = new Int32Array([this.sampleLine(t[0], t[1], e), this.sampleLine(t[1], t[2], e), this.sampleLine(t[2], t[3], e), this.sampleLine(t[3], t[0], e)])
- this.shift = this.getRotation(r, e)
- let n = 0
- for (let t = 0; t < 4; t++) {
- let e = r[(this.shift + t) % 4]
- this.compact ? ((n <<= 7), (n += (e >> 1) & 127)) : ((n <<= 10), (n += ((e >> 2) & 992) + ((e >> 1) & 31)))
- }
- let i = this.getCorrectedParameterData(n, this.compact)
- this.compact ? ((this.nbLayers = 1 + (i >> 6)), (this.nbDataBlocks = 1 + (63 & i))) : ((this.nbLayers = 1 + (i >> 11)), (this.nbDataBlocks = 1 + (2047 & i)))
- }
- getRotation(t, e) {
- let r = 0
- t.forEach((t, n, i) => {
- r = ((t >> (e - 2)) << 1) + (1 & t) + (r << 3)
- }),
- (r = ((1 & r) << 11) + (r >> 1))
- for (let t = 0; t < 4; t++) if (w.bitCount(r ^ this.EXPECTED_CORNER_BITS[t]) <= 2) return t
- throw new N()
- }
- getCorrectedParameterData(t, e) {
- let r, n
- e ? ((r = 7), (n = 2)) : ((r = 10), (n = 4))
- let i = r - n,
- o = new Int32Array(r)
- for (let e = r - 1; e >= 0; --e) (o[e] = 15 & t), (t >>= 4)
- try {
- new $(K.AZTEC_PARAM).decode(o, i)
- } catch (t) {
- throw new N()
- }
- let s = 0
- for (let t = 0; t < n; t++) s = (s << 4) + o[t]
- return s
- }
- getBullsEyeCorners(t) {
- let e = t,
- r = t,
- n = t,
- i = t,
- o = !0
- for (this.nbCenterLayers = 1; this.nbCenterLayers < 9; this.nbCenterLayers++) {
- let t = this.getFirstDifferent(e, o, 1, -1),
- s = this.getFirstDifferent(r, o, 1, 1),
- a = this.getFirstDifferent(n, o, -1, 1),
- l = this.getFirstDifferent(i, o, -1, -1)
- if (this.nbCenterLayers > 2) {
- let r = (this.distancePoint(l, t) * this.nbCenterLayers) / (this.distancePoint(i, e) * (this.nbCenterLayers + 2))
- if (r < 0.75 || r > 1.25 || !this.isWhiteOrBlackRectangle(t, s, a, l)) break
- }
- ;(e = t), (r = s), (n = a), (i = l), (o = !o)
- }
- if (5 !== this.nbCenterLayers && 7 !== this.nbCenterLayers) throw new N()
- this.compact = 5 === this.nbCenterLayers
- let s = new nt(e.getX() + 0.5, e.getY() - 0.5),
- a = new nt(r.getX() + 0.5, r.getY() + 0.5),
- l = new nt(n.getX() - 0.5, n.getY() + 0.5),
- c = new nt(i.getX() - 0.5, i.getY() - 0.5)
- return this.expandSquare([s, a, l, c], 2 * this.nbCenterLayers - 3, 2 * this.nbCenterLayers)
- }
- getMatrixCenter() {
- let t, e, r, n
- try {
- let i = new st(this.image).detect()
- ;(t = i[0]), (e = i[1]), (r = i[2]), (n = i[3])
- } catch (i) {
- let o = this.image.getWidth() / 2,
- s = this.image.getHeight() / 2
- ;(t = this.getFirstDifferent(new ut(o + 7, s - 7), !1, 1, -1).toResultPoint()),
- (e = this.getFirstDifferent(new ut(o + 7, s + 7), !1, 1, 1).toResultPoint()),
- (r = this.getFirstDifferent(new ut(o - 7, s + 7), !1, -1, 1).toResultPoint()),
- (n = this.getFirstDifferent(new ut(o - 7, s - 7), !1, -1, -1).toResultPoint())
- }
- let i = et.round((t.getX() + n.getX() + e.getX() + r.getX()) / 4),
- o = et.round((t.getY() + n.getY() + e.getY() + r.getY()) / 4)
- try {
- let s = new st(this.image, 15, i, o).detect()
- ;(t = s[0]), (e = s[1]), (r = s[2]), (n = s[3])
- } catch (s) {
- ;(t = this.getFirstDifferent(new ut(i + 7, o - 7), !1, 1, -1).toResultPoint()),
- (e = this.getFirstDifferent(new ut(i + 7, o + 7), !1, 1, 1).toResultPoint()),
- (r = this.getFirstDifferent(new ut(i - 7, o + 7), !1, -1, 1).toResultPoint()),
- (n = this.getFirstDifferent(new ut(i - 7, o - 7), !1, -1, -1).toResultPoint())
- }
- return (i = et.round((t.getX() + n.getX() + e.getX() + r.getX()) / 4)), (o = et.round((t.getY() + n.getY() + e.getY() + r.getY()) / 4)), new ut(i, o)
- }
- getMatrixCornerPoints(t) {
- return this.expandSquare(t, 2 * this.nbCenterLayers, this.getDimension())
- }
- sampleGrid(t, e, r, n, i) {
- let o = ht.getInstance(),
- s = this.getDimension(),
- a = s / 2 - this.nbCenterLayers,
- l = s / 2 + this.nbCenterLayers
- return o.sampleGrid(t, s, s, a, a, l, a, l, l, a, l, e.getX(), e.getY(), r.getX(), r.getY(), n.getX(), n.getY(), i.getX(), i.getY())
- }
- sampleLine(t, e, r) {
- let n = 0,
- i = this.distanceResultPoint(t, e),
- o = i / r,
- s = t.getX(),
- a = t.getY(),
- l = (o * (e.getX() - t.getX())) / i,
- c = (o * (e.getY() - t.getY())) / i
- for (let t = 0; t < r; t++) this.image.get(et.round(s + t * l), et.round(a + t * c)) && (n |= 1 << (r - t - 1))
- return n
- }
- isWhiteOrBlackRectangle(t, e, r, n) {
- ;(t = new ut(t.getX() - 3, t.getY() + 3)), (e = new ut(e.getX() - 3, e.getY() - 3)), (r = new ut(r.getX() + 3, r.getY() - 3)), (n = new ut(n.getX() + 3, n.getY() + 3))
- let i = this.getColor(n, t)
- if (0 === i) return !1
- let o = this.getColor(t, e)
- return o === i && ((o = this.getColor(e, r)), o === i && ((o = this.getColor(r, n)), o === i))
- }
- getColor(t, e) {
- let r = this.distancePoint(t, e),
- n = (e.getX() - t.getX()) / r,
- i = (e.getY() - t.getY()) / r,
- o = 0,
- s = t.getX(),
- a = t.getY(),
- l = this.image.get(t.getX(), t.getY()),
- c = Math.ceil(r)
- for (let t = 0; t < c; t++) (s += n), (a += i), this.image.get(et.round(s), et.round(a)) !== l && o++
- let h = o / r
- return h > 0.1 && h < 0.9 ? 0 : h <= 0.1 === l ? 1 : -1
- }
- getFirstDifferent(t, e, r, n) {
- let i = t.getX() + r,
- o = t.getY() + n
- for (; this.isValid(i, o) && this.image.get(i, o) === e; ) (i += r), (o += n)
- for (i -= r, o -= n; this.isValid(i, o) && this.image.get(i, o) === e; ) i += r
- for (i -= r; this.isValid(i, o) && this.image.get(i, o) === e; ) o += n
- return (o -= n), new ut(i, o)
- }
- expandSquare(t, e, r) {
- let n = r / (2 * e),
- i = t[0].getX() - t[2].getX(),
- o = t[0].getY() - t[2].getY(),
- s = (t[0].getX() + t[2].getX()) / 2,
- a = (t[0].getY() + t[2].getY()) / 2,
- l = new nt(s + n * i, a + n * o),
- c = new nt(s - n * i, a - n * o)
- return (
- (i = t[1].getX() - t[3].getX()),
- (o = t[1].getY() - t[3].getY()),
- (s = (t[1].getX() + t[3].getX()) / 2),
- (a = (t[1].getY() + t[3].getY()) / 2),
- [l, new nt(s + n * i, a + n * o), c, new nt(s - n * i, a - n * o)]
- )
- }
- isValid(t, e) {
- return t >= 0 && t < this.image.getWidth() && e > 0 && e < this.image.getHeight()
- }
- isValidPoint(t) {
- let e = et.round(t.getX()),
- r = et.round(t.getY())
- return this.isValid(e, r)
- }
- distancePoint(t, e) {
- return et.distance(t.getX(), t.getY(), e.getX(), e.getY())
- }
- distanceResultPoint(t, e) {
- return et.distance(t.getX(), t.getY(), e.getX(), e.getY())
- }
- getDimension() {
- return this.compact ? 4 * this.nbLayers + 11 : this.nbLayers <= 4 ? 4 * this.nbLayers + 15 : 4 * this.nbLayers + 2 * (w.truncDivision(this.nbLayers - 4, 8) + 1) + 15
- }
- }
- class gt {
- decode(t, e = null) {
- let r = null,
- n = new dt(t.getBlackMatrix()),
- i = null,
- o = null
- try {
- let t = n.detectMirror(!1)
- ;(i = t.getPoints()), this.reportFoundResultPoints(e, i), (o = new tt().decode(t))
- } catch (t) {
- r = t
- }
- if (null == o)
- try {
- let t = n.detectMirror(!0)
- ;(i = t.getPoints()), this.reportFoundResultPoints(e, i), (o = new tt().decode(t))
- } catch (t) {
- if (null != r) throw r
- throw t
- }
- let s = new F(o.getText(), o.getRawBytes(), o.getNumBits(), i, k.AZTEC, u.currentTimeMillis()),
- a = o.getByteSegments()
- null != a && s.putMetadata(X.BYTE_SEGMENTS, a)
- let l = o.getECLevel()
- return null != l && s.putMetadata(X.ERROR_CORRECTION_LEVEL, l), s
- }
- reportFoundResultPoints(t, e) {
- if (null != t) {
- let r = t.get(E.NEED_RESULT_POINT_CALLBACK)
- null != r &&
- e.forEach((t, e, n) => {
- r.foundPossibleResultPoint(t)
- })
- }
- }
- reset() {}
- }
- class ft {
- decode(t, e) {
- try {
- return this.doDecode(t, e)
- } catch (r) {
- if (e && !0 === e.get(E.TRY_HARDER) && t.isRotateSupported()) {
- const r = t.rotateCounterClockwise(),
- n = this.doDecode(r, e),
- i = n.getResultMetadata()
- let o = 270
- null !== i && !0 === i.get(X.ORIENTATION) && (o += i.get(X.ORIENTATION) % 360), n.putMetadata(X.ORIENTATION, o)
- const s = n.getResultPoints()
- if (null !== s) {
- const t = r.getHeight()
- for (let e = 0; e < s.length; e++) s[e] = new nt(t - s[e].getY() - 1, s[e].getX())
- }
- return n
- }
- throw new N()
- }
- }
- reset() {}
- doDecode(t, e) {
- const r = t.getWidth(),
- n = t.getHeight()
- let i = new A(r)
- const o = e && !0 === e.get(E.TRY_HARDER),
- s = Math.max(1, n >> (o ? 8 : 5))
- let a
- a = o ? n : 15
- const l = Math.trunc(n / 2)
- for (let o = 0; o < a; o++) {
- const a = Math.trunc((o + 1) / 2),
- c = l + s * (0 == (1 & o) ? a : -a)
- if (c < 0 || c >= n) break
- try {
- i = t.getBlackRow(c, i)
- } catch (t) {
- continue
- }
- for (let t = 0; t < 2; t++) {
- if (1 === t && (i.reverse(), e && !0 === e.get(E.NEED_RESULT_POINT_CALLBACK))) {
- const t = new Map()
- e.forEach((e, r) => t.set(r, e)), t.delete(E.NEED_RESULT_POINT_CALLBACK), (e = t)
- }
- try {
- const n = this.decodeRow(c, i, e)
- if (1 === t) {
- n.putMetadata(X.ORIENTATION, 180)
- const t = n.getResultPoints()
- null !== t && ((t[0] = new nt(r - t[0].getX() - 1, t[0].getY())), (t[1] = new nt(r - t[1].getX() - 1, t[1].getY())))
- }
- return n
- } catch (t) {}
- }
- }
- throw new N()
- }
- static recordPattern(t, e, r) {
- const n = r.length
- for (let t = 0; t < n; t++) r[t] = 0
- const i = t.getSize()
- if (e >= i) throw new N()
- let o = !t.get(e),
- s = 0,
- a = e
- for (; a < i; ) {
- if (t.get(a) !== o) r[s]++
- else {
- if (++s === n) break
- ;(r[s] = 1), (o = !o)
- }
- a++
- }
- if (s !== n && (s !== n - 1 || a !== i)) throw new N()
- }
- static recordPatternInReverse(t, e, r) {
- let n = r.length,
- i = t.get(e)
- for (; e > 0 && n >= 0; ) t.get(--e) !== i && (n--, (i = !i))
- if (n >= 0) throw new N()
- ft.recordPattern(t, e + 1, r)
- }
- static patternMatchVariance(t, e, r) {
- const n = t.length
- let i = 0,
- o = 0
- for (let r = 0; r < n; r++) (i += t[r]), (o += e[r])
- if (i < o) return Number.POSITIVE_INFINITY
- const s = i / o
- r *= s
- let a = 0
- for (let i = 0; i < n; i++) {
- const n = t[i],
- o = e[i] * s,
- l = n > o ? n - o : o - n
- if (l > r) return Number.POSITIVE_INFINITY
- a += l
- }
- return a / i
- }
- }
- class wt extends ft {
- static findStartPattern(t) {
- const e = t.getSize(),
- r = t.getNextSet(0)
- let n = 0,
- i = Int32Array.from([0, 0, 0, 0, 0, 0]),
- o = r,
- s = !1
- for (let a = r; a < e; a++)
- if (t.get(a) !== s) i[n]++
- else {
- if (5 === n) {
- let e = wt.MAX_AVG_VARIANCE,
- r = -1
- for (let t = wt.CODE_START_A; t <= wt.CODE_START_C; t++) {
- const n = ft.patternMatchVariance(i, wt.CODE_PATTERNS[t], wt.MAX_INDIVIDUAL_VARIANCE)
- n < e && ((e = n), (r = t))
- }
- if (r >= 0 && t.isRange(Math.max(0, o - (a - o) / 2), o, !1)) return Int32Array.from([o, a, r])
- ;(o += i[0] + i[1]), (i = i.slice(2, i.length - 1)), (i[n - 1] = 0), (i[n] = 0), n--
- } else n++
- ;(i[n] = 1), (s = !s)
- }
- throw new N()
- }
- static decodeCode(t, e, r) {
- ft.recordPattern(t, r, e)
- let n = wt.MAX_AVG_VARIANCE,
- i = -1
- for (let t = 0; t < wt.CODE_PATTERNS.length; t++) {
- const r = wt.CODE_PATTERNS[t],
- o = this.patternMatchVariance(e, r, wt.MAX_INDIVIDUAL_VARIANCE)
- o < n && ((n = o), (i = t))
- }
- if (i >= 0) return i
- throw new N()
- }
- decodeRow(t, e, r) {
- const n = r && !0 === r.get(E.ASSUME_GS1),
- i = wt.findStartPattern(e),
- o = i[2]
- let s = 0
- const a = new Uint8Array(20)
- let l
- switch (((a[s++] = o), o)) {
- case wt.CODE_START_A:
- l = wt.CODE_CODE_A
- break
- case wt.CODE_START_B:
- l = wt.CODE_CODE_B
- break
- case wt.CODE_START_C:
- l = wt.CODE_CODE_C
- break
- default:
- throw new C()
- }
- let h = !1,
- u = !1,
- d = '',
- g = i[0],
- f = i[1]
- const w = Int32Array.from([0, 0, 0, 0, 0, 0])
- let A = 0,
- m = 0,
- I = o,
- p = 0,
- S = !0,
- _ = !1,
- T = !1
- for (; !h; ) {
- const t = u
- switch (
- ((u = !1),
- (A = m),
- (m = wt.decodeCode(e, w, f)),
- (a[s++] = m),
- m !== wt.CODE_STOP && (S = !0),
- m !== wt.CODE_STOP && (p++, (I += p * m)),
- (g = f),
- (f += w.reduce((t, e) => t + e, 0)),
- m)
- ) {
- case wt.CODE_START_A:
- case wt.CODE_START_B:
- case wt.CODE_START_C:
- throw new C()
- }
- switch (l) {
- case wt.CODE_CODE_A:
- if (m < 64) (d += T === _ ? String.fromCharCode(' '.charCodeAt(0) + m) : String.fromCharCode(' '.charCodeAt(0) + m + 128)), (T = !1)
- else if (m < 96) (d += T === _ ? String.fromCharCode(m - 64) : String.fromCharCode(m + 64)), (T = !1)
- else
- switch ((m !== wt.CODE_STOP && (S = !1), m)) {
- case wt.CODE_FNC_1:
- n && (0 === d.length ? (d += ']C1') : (d += String.fromCharCode(29)))
- break
- case wt.CODE_FNC_2:
- case wt.CODE_FNC_3:
- break
- case wt.CODE_FNC_4_A:
- !_ && T ? ((_ = !0), (T = !1)) : _ && T ? ((_ = !1), (T = !1)) : (T = !0)
- break
- case wt.CODE_SHIFT:
- ;(u = !0), (l = wt.CODE_CODE_B)
- break
- case wt.CODE_CODE_B:
- l = wt.CODE_CODE_B
- break
- case wt.CODE_CODE_C:
- l = wt.CODE_CODE_C
- break
- case wt.CODE_STOP:
- h = !0
- }
- break
- case wt.CODE_CODE_B:
- if (m < 96) (d += T === _ ? String.fromCharCode(' '.charCodeAt(0) + m) : String.fromCharCode(' '.charCodeAt(0) + m + 128)), (T = !1)
- else
- switch ((m !== wt.CODE_STOP && (S = !1), m)) {
- case wt.CODE_FNC_1:
- n && (0 === d.length ? (d += ']C1') : (d += String.fromCharCode(29)))
- break
- case wt.CODE_FNC_2:
- case wt.CODE_FNC_3:
- break
- case wt.CODE_FNC_4_B:
- !_ && T ? ((_ = !0), (T = !1)) : _ && T ? ((_ = !1), (T = !1)) : (T = !0)
- break
- case wt.CODE_SHIFT:
- ;(u = !0), (l = wt.CODE_CODE_A)
- break
- case wt.CODE_CODE_A:
- l = wt.CODE_CODE_A
- break
- case wt.CODE_CODE_C:
- l = wt.CODE_CODE_C
- break
- case wt.CODE_STOP:
- h = !0
- }
- break
- case wt.CODE_CODE_C:
- if (m < 100) m < 10 && (d += '0'), (d += m)
- else
- switch ((m !== wt.CODE_STOP && (S = !1), m)) {
- case wt.CODE_FNC_1:
- n && (0 === d.length ? (d += ']C1') : (d += String.fromCharCode(29)))
- break
- case wt.CODE_CODE_A:
- l = wt.CODE_CODE_A
- break
- case wt.CODE_CODE_B:
- l = wt.CODE_CODE_B
- break
- case wt.CODE_STOP:
- h = !0
- }
- }
- t && (l = l === wt.CODE_CODE_A ? wt.CODE_CODE_B : wt.CODE_CODE_A)
- }
- const y = f - g
- if (((f = e.getNextUnset(f)), !e.isRange(f, Math.min(e.getSize(), f + (f - g) / 2), !1))) throw new N()
- if (((I -= p * A), I % 103 !== A)) throw new c()
- const M = d.length
- if (0 === M) throw new N()
- M > 0 && S && (d = l === wt.CODE_CODE_C ? d.substring(0, M - 2) : d.substring(0, M - 1))
- const D = (i[1] + i[0]) / 2,
- R = g + y / 2,
- O = a.length,
- b = new Uint8Array(O)
- for (let t = 0; t < O; t++) b[t] = a[t]
- const L = [new nt(D, t), new nt(R, t)]
- return new F(d, b, 0, L, k.CODE_128, new Date().getTime())
- }
- }
- ;(wt.CODE_PATTERNS = [
- Int32Array.from([2, 1, 2, 2, 2, 2]),
- Int32Array.from([2, 2, 2, 1, 2, 2]),
- Int32Array.from([2, 2, 2, 2, 2, 1]),
- Int32Array.from([1, 2, 1, 2, 2, 3]),
- Int32Array.from([1, 2, 1, 3, 2, 2]),
- Int32Array.from([1, 3, 1, 2, 2, 2]),
- Int32Array.from([1, 2, 2, 2, 1, 3]),
- Int32Array.from([1, 2, 2, 3, 1, 2]),
- Int32Array.from([1, 3, 2, 2, 1, 2]),
- Int32Array.from([2, 2, 1, 2, 1, 3]),
- Int32Array.from([2, 2, 1, 3, 1, 2]),
- Int32Array.from([2, 3, 1, 2, 1, 2]),
- Int32Array.from([1, 1, 2, 2, 3, 2]),
- Int32Array.from([1, 2, 2, 1, 3, 2]),
- Int32Array.from([1, 2, 2, 2, 3, 1]),
- Int32Array.from([1, 1, 3, 2, 2, 2]),
- Int32Array.from([1, 2, 3, 1, 2, 2]),
- Int32Array.from([1, 2, 3, 2, 2, 1]),
- Int32Array.from([2, 2, 3, 2, 1, 1]),
- Int32Array.from([2, 2, 1, 1, 3, 2]),
- Int32Array.from([2, 2, 1, 2, 3, 1]),
- Int32Array.from([2, 1, 3, 2, 1, 2]),
- Int32Array.from([2, 2, 3, 1, 1, 2]),
- Int32Array.from([3, 1, 2, 1, 3, 1]),
- Int32Array.from([3, 1, 1, 2, 2, 2]),
- Int32Array.from([3, 2, 1, 1, 2, 2]),
- Int32Array.from([3, 2, 1, 2, 2, 1]),
- Int32Array.from([3, 1, 2, 2, 1, 2]),
- Int32Array.from([3, 2, 2, 1, 1, 2]),
- Int32Array.from([3, 2, 2, 2, 1, 1]),
- Int32Array.from([2, 1, 2, 1, 2, 3]),
- Int32Array.from([2, 1, 2, 3, 2, 1]),
- Int32Array.from([2, 3, 2, 1, 2, 1]),
- Int32Array.from([1, 1, 1, 3, 2, 3]),
- Int32Array.from([1, 3, 1, 1, 2, 3]),
- Int32Array.from([1, 3, 1, 3, 2, 1]),
- Int32Array.from([1, 1, 2, 3, 1, 3]),
- Int32Array.from([1, 3, 2, 1, 1, 3]),
- Int32Array.from([1, 3, 2, 3, 1, 1]),
- Int32Array.from([2, 1, 1, 3, 1, 3]),
- Int32Array.from([2, 3, 1, 1, 1, 3]),
- Int32Array.from([2, 3, 1, 3, 1, 1]),
- Int32Array.from([1, 1, 2, 1, 3, 3]),
- Int32Array.from([1, 1, 2, 3, 3, 1]),
- Int32Array.from([1, 3, 2, 1, 3, 1]),
- Int32Array.from([1, 1, 3, 1, 2, 3]),
- Int32Array.from([1, 1, 3, 3, 2, 1]),
- Int32Array.from([1, 3, 3, 1, 2, 1]),
- Int32Array.from([3, 1, 3, 1, 2, 1]),
- Int32Array.from([2, 1, 1, 3, 3, 1]),
- Int32Array.from([2, 3, 1, 1, 3, 1]),
- Int32Array.from([2, 1, 3, 1, 1, 3]),
- Int32Array.from([2, 1, 3, 3, 1, 1]),
- Int32Array.from([2, 1, 3, 1, 3, 1]),
- Int32Array.from([3, 1, 1, 1, 2, 3]),
- Int32Array.from([3, 1, 1, 3, 2, 1]),
- Int32Array.from([3, 3, 1, 1, 2, 1]),
- Int32Array.from([3, 1, 2, 1, 1, 3]),
- Int32Array.from([3, 1, 2, 3, 1, 1]),
- Int32Array.from([3, 3, 2, 1, 1, 1]),
- Int32Array.from([3, 1, 4, 1, 1, 1]),
- Int32Array.from([2, 2, 1, 4, 1, 1]),
- Int32Array.from([4, 3, 1, 1, 1, 1]),
- Int32Array.from([1, 1, 1, 2, 2, 4]),
- Int32Array.from([1, 1, 1, 4, 2, 2]),
- Int32Array.from([1, 2, 1, 1, 2, 4]),
- Int32Array.from([1, 2, 1, 4, 2, 1]),
- Int32Array.from([1, 4, 1, 1, 2, 2]),
- Int32Array.from([1, 4, 1, 2, 2, 1]),
- Int32Array.from([1, 1, 2, 2, 1, 4]),
- Int32Array.from([1, 1, 2, 4, 1, 2]),
- Int32Array.from([1, 2, 2, 1, 1, 4]),
- Int32Array.from([1, 2, 2, 4, 1, 1]),
- Int32Array.from([1, 4, 2, 1, 1, 2]),
- Int32Array.from([1, 4, 2, 2, 1, 1]),
- Int32Array.from([2, 4, 1, 2, 1, 1]),
- Int32Array.from([2, 2, 1, 1, 1, 4]),
- Int32Array.from([4, 1, 3, 1, 1, 1]),
- Int32Array.from([2, 4, 1, 1, 1, 2]),
- Int32Array.from([1, 3, 4, 1, 1, 1]),
- Int32Array.from([1, 1, 1, 2, 4, 2]),
- Int32Array.from([1, 2, 1, 1, 4, 2]),
- Int32Array.from([1, 2, 1, 2, 4, 1]),
- Int32Array.from([1, 1, 4, 2, 1, 2]),
- Int32Array.from([1, 2, 4, 1, 1, 2]),
- Int32Array.from([1, 2, 4, 2, 1, 1]),
- Int32Array.from([4, 1, 1, 2, 1, 2]),
- Int32Array.from([4, 2, 1, 1, 1, 2]),
- Int32Array.from([4, 2, 1, 2, 1, 1]),
- Int32Array.from([2, 1, 2, 1, 4, 1]),
- Int32Array.from([2, 1, 4, 1, 2, 1]),
- Int32Array.from([4, 1, 2, 1, 2, 1]),
- Int32Array.from([1, 1, 1, 1, 4, 3]),
- Int32Array.from([1, 1, 1, 3, 4, 1]),
- Int32Array.from([1, 3, 1, 1, 4, 1]),
- Int32Array.from([1, 1, 4, 1, 1, 3]),
- Int32Array.from([1, 1, 4, 3, 1, 1]),
- Int32Array.from([4, 1, 1, 1, 1, 3]),
- Int32Array.from([4, 1, 1, 3, 1, 1]),
- Int32Array.from([1, 1, 3, 1, 4, 1]),
- Int32Array.from([1, 1, 4, 1, 3, 1]),
- Int32Array.from([3, 1, 1, 1, 4, 1]),
- Int32Array.from([4, 1, 1, 1, 3, 1]),
- Int32Array.from([2, 1, 1, 4, 1, 2]),
- Int32Array.from([2, 1, 1, 2, 1, 4]),
- Int32Array.from([2, 1, 1, 2, 3, 2]),
- Int32Array.from([2, 3, 3, 1, 1, 1, 2])
- ]),
- (wt.MAX_AVG_VARIANCE = 0.25),
- (wt.MAX_INDIVIDUAL_VARIANCE = 0.7),
- (wt.CODE_SHIFT = 98),
- (wt.CODE_CODE_C = 99),
- (wt.CODE_CODE_B = 100),
- (wt.CODE_CODE_A = 101),
- (wt.CODE_FNC_1 = 102),
- (wt.CODE_FNC_2 = 97),
- (wt.CODE_FNC_3 = 96),
- (wt.CODE_FNC_4_A = 101),
- (wt.CODE_FNC_4_B = 100),
- (wt.CODE_START_A = 103),
- (wt.CODE_START_B = 104),
- (wt.CODE_START_C = 105),
- (wt.CODE_STOP = 106)
- class At extends ft {
- constructor(t = !1, e = !1) {
- super(), (this.usingCheckDigit = t), (this.extendedMode = e), (this.decodeRowResult = ''), (this.counters = new Int32Array(9))
- }
- decodeRow(t, e, r) {
- let n = this.counters
- n.fill(0), (this.decodeRowResult = '')
- let i,
- o,
- s = At.findAsteriskPattern(e, n),
- a = e.getNextSet(s[1]),
- l = e.getSize()
- do {
- At.recordPattern(e, a, n)
- let t = At.toNarrowWidePattern(n)
- if (t < 0) throw new N()
- ;(i = At.patternToChar(t)), (this.decodeRowResult += i), (o = a)
- for (let t of n) a += t
- a = e.getNextSet(a)
- } while ('*' !== i)
- this.decodeRowResult = this.decodeRowResult.substring(0, this.decodeRowResult.length - 1)
- let h,
- u = 0
- for (let t of n) u += t
- if (a !== l && 2 * (a - o - u) < u) throw new N()
- if (this.usingCheckDigit) {
- let t = this.decodeRowResult.length - 1,
- e = 0
- for (let r = 0; r < t; r++) e += At.ALPHABET_STRING.indexOf(this.decodeRowResult.charAt(r))
- if (this.decodeRowResult.charAt(t) !== At.ALPHABET_STRING.charAt(e % 43)) throw new c()
- this.decodeRowResult = this.decodeRowResult.substring(0, t)
- }
- if (0 === this.decodeRowResult.length) throw new N()
- h = this.extendedMode ? At.decodeExtended(this.decodeRowResult) : this.decodeRowResult
- let d = (s[1] + s[0]) / 2,
- g = o + u / 2
- return new F(h, null, 0, [new nt(d, t), new nt(g, t)], k.CODE_39, new Date().getTime())
- }
- static findAsteriskPattern(t, e) {
- let r = t.getSize(),
- n = t.getNextSet(0),
- i = 0,
- o = n,
- s = !1,
- a = e.length
- for (let l = n; l < r; l++)
- if (t.get(l) !== s) e[i]++
- else {
- if (i === a - 1) {
- if (this.toNarrowWidePattern(e) === At.ASTERISK_ENCODING && t.isRange(Math.max(0, o - Math.floor((l - o) / 2)), o, !1)) return [o, l]
- ;(o += e[0] + e[1]), e.copyWithin(0, 2, 2 + i - 1), (e[i - 1] = 0), (e[i] = 0), i--
- } else i++
- ;(e[i] = 1), (s = !s)
- }
- throw new N()
- }
- static toNarrowWidePattern(t) {
- let e,
- r = t.length,
- n = 0
- do {
- let i = 2147483647
- for (let e of t) e < i && e > n && (i = e)
- ;(n = i), (e = 0)
- let o = 0,
- s = 0
- for (let i = 0; i < r; i++) {
- let a = t[i]
- a > n && ((s |= 1 << (r - 1 - i)), e++, (o += a))
- }
- if (3 === e) {
- for (let i = 0; i < r && e > 0; i++) {
- let r = t[i]
- if (r > n && (e--, 2 * r >= o)) return -1
- }
- return s
- }
- } while (e > 3)
- return -1
- }
- static patternToChar(t) {
- for (let e = 0; e < At.CHARACTER_ENCODINGS.length; e++) if (At.CHARACTER_ENCODINGS[e] === t) return At.ALPHABET_STRING.charAt(e)
- if (t === At.ASTERISK_ENCODING) return '*'
- throw new N()
- }
- static decodeExtended(t) {
- let e = t.length,
- r = ''
- for (let n = 0; n < e; n++) {
- let e = t.charAt(n)
- if ('+' === e || '$' === e || '%' === e || '/' === e) {
- let i = t.charAt(n + 1),
- o = '\0'
- switch (e) {
- case '+':
- if (!(i >= 'A' && i <= 'Z')) throw new C()
- o = String.fromCharCode(i.charCodeAt(0) + 32)
- break
- case '$':
- if (!(i >= 'A' && i <= 'Z')) throw new C()
- o = String.fromCharCode(i.charCodeAt(0) - 64)
- break
- case '%':
- if (i >= 'A' && i <= 'E') o = String.fromCharCode(i.charCodeAt(0) - 38)
- else if (i >= 'F' && i <= 'J') o = String.fromCharCode(i.charCodeAt(0) - 11)
- else if (i >= 'K' && i <= 'O') o = String.fromCharCode(i.charCodeAt(0) + 16)
- else if (i >= 'P' && i <= 'T') o = String.fromCharCode(i.charCodeAt(0) + 43)
- else if ('U' === i) o = '\0'
- else if ('V' === i) o = '@'
- else if ('W' === i) o = '`'
- else {
- if ('X' !== i && 'Y' !== i && 'Z' !== i) throw new C()
- o = ''
- }
- break
- case '/':
- if (i >= 'A' && i <= 'O') o = String.fromCharCode(i.charCodeAt(0) - 32)
- else {
- if ('Z' !== i) throw new C()
- o = ':'
- }
- }
- ;(r += o), n++
- } else r += e
- }
- return r
- }
- }
- ;(At.ALPHABET_STRING = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%'),
- (At.CHARACTER_ENCODINGS = [
- 52,
- 289,
- 97,
- 352,
- 49,
- 304,
- 112,
- 37,
- 292,
- 100,
- 265,
- 73,
- 328,
- 25,
- 280,
- 88,
- 13,
- 268,
- 76,
- 28,
- 259,
- 67,
- 322,
- 19,
- 274,
- 82,
- 7,
- 262,
- 70,
- 22,
- 385,
- 193,
- 448,
- 145,
- 400,
- 208,
- 133,
- 388,
- 196,
- 168,
- 162,
- 138,
- 42
- ]),
- (At.ASTERISK_ENCODING = 148)
- class mt extends ft {
- constructor() {
- super(...arguments), (this.narrowLineWidth = -1)
- }
- decodeRow(t, e, r) {
- let n = this.decodeStart(e),
- i = this.decodeEnd(e),
- o = new T()
- mt.decodeMiddle(e, n[1], i[0], o)
- let s = o.toString(),
- a = null
- null != r && (a = r.get(E.ALLOWED_LENGTHS)), null == a && (a = mt.DEFAULT_ALLOWED_LENGTHS)
- let l = s.length,
- c = !1,
- h = 0
- for (let t of a) {
- if (l === t) {
- c = !0
- break
- }
- t > h && (h = t)
- }
- if ((!c && l > h && (c = !0), !c)) throw new C()
- const u = [new nt(n[1], t), new nt(i[0], t)]
- return new F(s, null, 0, u, k.ITF, new Date().getTime())
- }
- static decodeMiddle(t, e, r, n) {
- let i = new Int32Array(10),
- o = new Int32Array(5),
- s = new Int32Array(5)
- for (i.fill(0), o.fill(0), s.fill(0); e < r; ) {
- ft.recordPattern(t, e, i)
- for (let t = 0; t < 5; t++) {
- let e = 2 * t
- ;(o[t] = i[e]), (s[t] = i[e + 1])
- }
- let r = mt.decodeDigit(o)
- n.append(r.toString()),
- (r = this.decodeDigit(s)),
- n.append(r.toString()),
- i.forEach(function(t) {
- e += t
- })
- }
- }
- decodeStart(t) {
- let e = mt.skipWhiteSpace(t),
- r = mt.findGuardPattern(t, e, mt.START_PATTERN)
- return (this.narrowLineWidth = (r[1] - r[0]) / 4), this.validateQuietZone(t, r[0]), r
- }
- validateQuietZone(t, e) {
- let r = 10 * this.narrowLineWidth
- r = r < e ? r : e
- for (let n = e - 1; r > 0 && n >= 0 && !t.get(n); n--) r--
- if (0 !== r) throw new N()
- }
- static skipWhiteSpace(t) {
- const e = t.getSize(),
- r = t.getNextSet(0)
- if (r === e) throw new N()
- return r
- }
- decodeEnd(t) {
- t.reverse()
- try {
- let e,
- r = mt.skipWhiteSpace(t)
- try {
- e = mt.findGuardPattern(t, r, mt.END_PATTERN_REVERSED[0])
- } catch (n) {
- n instanceof N && (e = mt.findGuardPattern(t, r, mt.END_PATTERN_REVERSED[1]))
- }
- this.validateQuietZone(t, e[0])
- let n = e[0]
- return (e[0] = t.getSize() - e[1]), (e[1] = t.getSize() - n), e
- } finally {
- t.reverse()
- }
- }
- static findGuardPattern(t, e, r) {
- let n = r.length,
- i = new Int32Array(n),
- o = t.getSize(),
- s = !1,
- a = 0,
- l = e
- i.fill(0)
- for (let c = e; c < o; c++)
- if (t.get(c) !== s) i[a]++
- else {
- if (a === n - 1) {
- if (ft.patternMatchVariance(i, r, mt.MAX_INDIVIDUAL_VARIANCE) < mt.MAX_AVG_VARIANCE) return [l, c]
- ;(l += i[0] + i[1]), u.arraycopy(i, 2, i, 0, a - 1), (i[a - 1] = 0), (i[a] = 0), a--
- } else a++
- ;(i[a] = 1), (s = !s)
- }
- throw new N()
- }
- static decodeDigit(t) {
- let e = mt.MAX_AVG_VARIANCE,
- r = -1,
- n = mt.PATTERNS.length
- for (let i = 0; i < n; i++) {
- let n = mt.PATTERNS[i],
- o = ft.patternMatchVariance(t, n, mt.MAX_INDIVIDUAL_VARIANCE)
- o < e ? ((e = o), (r = i)) : o === e && (r = -1)
- }
- if (r >= 0) return r % 10
- throw new N()
- }
- }
- ;(mt.PATTERNS = [
- Int32Array.from([1, 1, 2, 2, 1]),
- Int32Array.from([2, 1, 1, 1, 2]),
- Int32Array.from([1, 2, 1, 1, 2]),
- Int32Array.from([2, 2, 1, 1, 1]),
- Int32Array.from([1, 1, 2, 1, 2]),
- Int32Array.from([2, 1, 2, 1, 1]),
- Int32Array.from([1, 2, 2, 1, 1]),
- Int32Array.from([1, 1, 1, 2, 2]),
- Int32Array.from([2, 1, 1, 2, 1]),
- Int32Array.from([1, 2, 1, 2, 1]),
- Int32Array.from([1, 1, 3, 3, 1]),
- Int32Array.from([3, 1, 1, 1, 3]),
- Int32Array.from([1, 3, 1, 1, 3]),
- Int32Array.from([3, 3, 1, 1, 1]),
- Int32Array.from([1, 1, 3, 1, 3]),
- Int32Array.from([3, 1, 3, 1, 1]),
- Int32Array.from([1, 3, 3, 1, 1]),
- Int32Array.from([1, 1, 1, 3, 3]),
- Int32Array.from([3, 1, 1, 3, 1]),
- Int32Array.from([1, 3, 1, 3, 1])
- ]),
- (mt.MAX_AVG_VARIANCE = 0.38),
- (mt.MAX_INDIVIDUAL_VARIANCE = 0.5),
- (mt.DEFAULT_ALLOWED_LENGTHS = [6, 8, 10, 12, 14]),
- (mt.START_PATTERN = Int32Array.from([1, 1, 1, 1])),
- (mt.END_PATTERN_REVERSED = [Int32Array.from([1, 1, 2]), Int32Array.from([1, 1, 3])])
- class Et extends ft {
- constructor() {
- super(...arguments), (this.decodeRowStringBuffer = '')
- }
- static findStartGuardPattern(t) {
- let e,
- r = !1,
- n = 0,
- i = Int32Array.from([0, 0, 0])
- for (; !r; ) {
- ;(i = Int32Array.from([0, 0, 0])), (e = Et.findGuardPattern(t, n, !1, this.START_END_PATTERN, i))
- let o = e[0]
- n = e[1]
- let s = o - (n - o)
- s >= 0 && (r = t.isRange(s, o, !1))
- }
- return e
- }
- static checkChecksum(t) {
- return Et.checkStandardUPCEANChecksum(t)
- }
- static checkStandardUPCEANChecksum(t) {
- let e = t.length
- if (0 === e) return !1
- let r = parseInt(t.charAt(e - 1), 10)
- return Et.getStandardUPCEANChecksum(t.substring(0, e - 1)) === r
- }
- static getStandardUPCEANChecksum(t) {
- let e = t.length,
- r = 0
- for (let n = e - 1; n >= 0; n -= 2) {
- let e = t.charAt(n).charCodeAt(0) - '0'.charCodeAt(0)
- if (e < 0 || e > 9) throw new C()
- r += e
- }
- r *= 3
- for (let n = e - 2; n >= 0; n -= 2) {
- let e = t.charAt(n).charCodeAt(0) - '0'.charCodeAt(0)
- if (e < 0 || e > 9) throw new C()
- r += e
- }
- return (1e3 - r) % 10
- }
- static decodeEnd(t, e) {
- return Et.findGuardPattern(t, e, !1, Et.START_END_PATTERN, new Int32Array(Et.START_END_PATTERN.length).fill(0))
- }
- static findGuardPatternWithoutCounters(t, e, r, n) {
- return this.findGuardPattern(t, e, r, n, new Int32Array(n.length))
- }
- static findGuardPattern(t, e, r, n, i) {
- let o = t.getSize(),
- s = 0,
- a = (e = r ? t.getNextUnset(e) : t.getNextSet(e)),
- l = n.length,
- c = r
- for (let r = e; r < o; r++)
- if (t.get(r) !== c) i[s]++
- else {
- if (s === l - 1) {
- if (ft.patternMatchVariance(i, n, Et.MAX_INDIVIDUAL_VARIANCE) < Et.MAX_AVG_VARIANCE) return Int32Array.from([a, r])
- a += i[0] + i[1]
- let t = i.slice(2, i.length - 1)
- for (let e = 0; e < s - 1; e++) i[e] = t[e]
- ;(i[s - 1] = 0), (i[s] = 0), s--
- } else s++
- ;(i[s] = 1), (c = !c)
- }
- throw new N()
- }
- static decodeDigit(t, e, r, n) {
- this.recordPattern(t, r, e)
- let i = this.MAX_AVG_VARIANCE,
- o = -1,
- s = n.length
- for (let t = 0; t < s; t++) {
- let r = n[t],
- s = ft.patternMatchVariance(e, r, Et.MAX_INDIVIDUAL_VARIANCE)
- s < i && ((i = s), (o = t))
- }
- if (o >= 0) return o
- throw new N()
- }
- }
- ;(Et.MAX_AVG_VARIANCE = 0.48),
- (Et.MAX_INDIVIDUAL_VARIANCE = 0.7),
- (Et.START_END_PATTERN = Int32Array.from([1, 1, 1])),
- (Et.MIDDLE_PATTERN = Int32Array.from([1, 1, 1, 1, 1])),
- (Et.END_PATTERN = Int32Array.from([1, 1, 1, 1, 1, 1])),
- (Et.L_PATTERNS = [
- Int32Array.from([3, 2, 1, 1]),
- Int32Array.from([2, 2, 2, 1]),
- Int32Array.from([2, 1, 2, 2]),
- Int32Array.from([1, 4, 1, 1]),
- Int32Array.from([1, 1, 3, 2]),
- Int32Array.from([1, 2, 3, 1]),
- Int32Array.from([1, 1, 1, 4]),
- Int32Array.from([1, 3, 1, 2]),
- Int32Array.from([1, 2, 1, 3]),
- Int32Array.from([3, 1, 1, 2])
- ])
- class Ct {
- constructor() {
- ;(this.CHECK_DIGIT_ENCODINGS = [24, 20, 18, 17, 12, 6, 3, 10, 9, 5]), (this.decodeMiddleCounters = Int32Array.from([0, 0, 0, 0])), (this.decodeRowStringBuffer = '')
- }
- decodeRow(t, e, r) {
- let n = this.decodeRowStringBuffer,
- i = this.decodeMiddle(e, r, n),
- o = n.toString(),
- s = Ct.parseExtensionString(o),
- a = [new nt((r[0] + r[1]) / 2, t), new nt(i, t)],
- l = new F(o, null, 0, a, k.UPC_EAN_EXTENSION, new Date().getTime())
- return null != s && l.putAllMetadata(s), l
- }
- decodeMiddle(t, e, r) {
- let n = this.decodeMiddleCounters
- ;(n[0] = 0), (n[1] = 0), (n[2] = 0), (n[3] = 0)
- let i = t.getSize(),
- o = e[1],
- s = 0
- for (let e = 0; e < 5 && o < i; e++) {
- let i = Et.decodeDigit(t, n, o, Et.L_AND_G_PATTERNS)
- r += String.fromCharCode('0'.charCodeAt(0) + (i % 10))
- for (let t of n) o += t
- i >= 10 && (s |= 1 << (4 - e)), 4 !== e && ((o = t.getNextSet(o)), (o = t.getNextUnset(o)))
- }
- if (5 !== r.length) throw new N()
- let a = this.determineCheckDigit(s)
- if (Ct.extensionChecksum(r.toString()) !== a) throw new N()
- return o
- }
- static extensionChecksum(t) {
- let e = t.length,
- r = 0
- for (let n = e - 2; n >= 0; n -= 2) r += t.charAt(n).charCodeAt(0) - '0'.charCodeAt(0)
- r *= 3
- for (let n = e - 1; n >= 0; n -= 2) r += t.charAt(n).charCodeAt(0) - '0'.charCodeAt(0)
- return (r *= 3), r % 10
- }
- determineCheckDigit(t) {
- for (let e = 0; e < 10; e++) if (t === this.CHECK_DIGIT_ENCODINGS[e]) return e
- throw new N()
- }
- static parseExtensionString(t) {
- if (5 !== t.length) return null
- let e = Ct.parseExtension5String(t)
- return null == e ? null : new Map([[X.SUGGESTED_PRICE, e]])
- }
- static parseExtension5String(t) {
- let e
- switch (t.charAt(0)) {
- case '0':
- e = '£'
- break
- case '5':
- e = '$'
- break
- case '9':
- switch (t) {
- case '90000':
- return null
- case '99991':
- return '0.00'
- case '99990':
- return 'Used'
- }
- e = ''
- break
- default:
- e = ''
- }
- let r = parseInt(t.substring(1)),
- n = r % 100
- return e + (r / 100).toString() + '.' + (n < 10 ? '0' + n : n.toString())
- }
- }
- class It {
- constructor() {
- ;(this.decodeMiddleCounters = Int32Array.from([0, 0, 0, 0])), (this.decodeRowStringBuffer = '')
- }
- decodeRow(t, e, r) {
- let n = this.decodeRowStringBuffer,
- i = this.decodeMiddle(e, r, n),
- o = n.toString(),
- s = It.parseExtensionString(o),
- a = [new nt((r[0] + r[1]) / 2, t), new nt(i, t)],
- l = new F(o, null, 0, a, k.UPC_EAN_EXTENSION, new Date().getTime())
- return null != s && l.putAllMetadata(s), l
- }
- decodeMiddle(t, e, r) {
- let n = this.decodeMiddleCounters
- ;(n[0] = 0), (n[1] = 0), (n[2] = 0), (n[3] = 0)
- let i = t.getSize(),
- o = e[1],
- s = 0
- for (let e = 0; e < 2 && o < i; e++) {
- let i = Et.decodeDigit(t, n, o, Et.L_AND_G_PATTERNS)
- r += String.fromCharCode('0'.charCodeAt(0) + (i % 10))
- for (let t of n) o += t
- i >= 10 && (s |= 1 << (1 - e)), 1 !== e && ((o = t.getNextSet(o)), (o = t.getNextUnset(o)))
- }
- if (2 !== r.length) throw new N()
- if (parseInt(r.toString()) % 4 !== s) throw new N()
- return o
- }
- static parseExtensionString(t) {
- return 2 !== t.length ? null : new Map([[X.ISSUE_NUMBER, parseInt(t)]])
- }
- }
- class pt {
- static decodeRow(t, e, r) {
- let n = Et.findGuardPattern(e, r, !1, this.EXTENSION_START_PATTERN, new Int32Array(this.EXTENSION_START_PATTERN.length).fill(0))
- try {
- return new Ct().decodeRow(t, e, n)
- } catch (r) {
- return new It().decodeRow(t, e, n)
- }
- }
- }
- pt.EXTENSION_START_PATTERN = Int32Array.from([1, 1, 2])
- class St extends Et {
- constructor() {
- super(), (this.decodeRowStringBuffer = ''), (St.L_AND_G_PATTERNS = St.L_PATTERNS.map(t => Int32Array.from(t)))
- for (let t = 10; t < 20; t++) {
- let e = St.L_PATTERNS[t - 10],
- r = new Int32Array(e.length)
- for (let t = 0; t < e.length; t++) r[t] = e[e.length - t - 1]
- St.L_AND_G_PATTERNS[t] = r
- }
- }
- decodeRow(t, e, r) {
- let n = St.findStartGuardPattern(e),
- i = null == r ? null : r.get(E.NEED_RESULT_POINT_CALLBACK)
- if (null != i) {
- const e = new nt((n[0] + n[1]) / 2, t)
- i.foundPossibleResultPoint(e)
- }
- let o = this.decodeMiddle(e, n, this.decodeRowStringBuffer),
- s = o.rowOffset,
- a = o.resultString
- if (null != i) {
- const e = new nt(s, t)
- i.foundPossibleResultPoint(e)
- }
- let l = St.decodeEnd(e, s)
- if (null != i) {
- const e = new nt((l[0] + l[1]) / 2, t)
- i.foundPossibleResultPoint(e)
- }
- let h = l[1],
- u = h + (h - l[0])
- if (u >= e.getSize() || !e.isRange(h, u, !1)) throw new N()
- let d = a.toString()
- if (d.length < 8) throw new C()
- if (!St.checkChecksum(d)) throw new c()
- let g = (n[1] + n[0]) / 2,
- f = (l[1] + l[0]) / 2,
- w = this.getBarcodeFormat(),
- A = [new nt(g, t), new nt(f, t)],
- m = new F(d, null, 0, A, w, new Date().getTime()),
- I = 0
- try {
- let r = pt.decodeRow(t, e, l[1])
- m.putMetadata(X.UPC_EAN_EXTENSION, r.getText()), m.putAllMetadata(r.getResultMetadata()), m.addResultPoints(r.getResultPoints()), (I = r.getText().length)
- } catch (t) {}
- let p = null == r ? null : r.get(E.ALLOWED_EAN_EXTENSIONS)
- if (null != p) {
- let t = !1
- for (let e in p)
- if (I.toString() === e) {
- t = !0
- break
- }
- if (!t) throw new N()
- }
- return w === k.EAN_13 || k.UPC_A, m
- }
- static checkChecksum(t) {
- return St.checkStandardUPCEANChecksum(t)
- }
- static checkStandardUPCEANChecksum(t) {
- let e = t.length
- if (0 === e) return !1
- let r = parseInt(t.charAt(e - 1), 10)
- return St.getStandardUPCEANChecksum(t.substring(0, e - 1)) === r
- }
- static getStandardUPCEANChecksum(t) {
- let e = t.length,
- r = 0
- for (let n = e - 1; n >= 0; n -= 2) {
- let e = t.charAt(n).charCodeAt(0) - '0'.charCodeAt(0)
- if (e < 0 || e > 9) throw new C()
- r += e
- }
- r *= 3
- for (let n = e - 2; n >= 0; n -= 2) {
- let e = t.charAt(n).charCodeAt(0) - '0'.charCodeAt(0)
- if (e < 0 || e > 9) throw new C()
- r += e
- }
- return (1e3 - r) % 10
- }
- static decodeEnd(t, e) {
- return St.findGuardPattern(t, e, !1, St.START_END_PATTERN, new Int32Array(St.START_END_PATTERN.length).fill(0))
- }
- }
- class _t extends St {
- constructor() {
- super(), (this.decodeMiddleCounters = Int32Array.from([0, 0, 0, 0]))
- }
- decodeMiddle(t, e, r) {
- let n = this.decodeMiddleCounters
- ;(n[0] = 0), (n[1] = 0), (n[2] = 0), (n[3] = 0)
- let i = t.getSize(),
- o = e[1],
- s = 0
- for (let e = 0; e < 6 && o < i; e++) {
- let i = St.decodeDigit(t, n, o, St.L_AND_G_PATTERNS)
- r += String.fromCharCode('0'.charCodeAt(0) + (i % 10))
- for (let t of n) o += t
- i >= 10 && (s |= 1 << (5 - e))
- }
- ;(r = _t.determineFirstDigit(r, s)), (o = St.findGuardPattern(t, o, !0, St.MIDDLE_PATTERN, new Int32Array(St.MIDDLE_PATTERN.length).fill(0))[1])
- for (let e = 0; e < 6 && o < i; e++) {
- let e = St.decodeDigit(t, n, o, St.L_PATTERNS)
- r += String.fromCharCode('0'.charCodeAt(0) + e)
- for (let t of n) o += t
- }
- return { rowOffset: o, resultString: r }
- }
- getBarcodeFormat() {
- return k.EAN_13
- }
- static determineFirstDigit(t, e) {
- for (let r = 0; r < 10; r++) if (e === this.FIRST_DIGIT_ENCODINGS[r]) return String.fromCharCode('0'.charCodeAt(0) + r) + t
- throw new N()
- }
- }
- _t.FIRST_DIGIT_ENCODINGS = [0, 11, 13, 14, 19, 25, 28, 21, 22, 26]
- class Tt extends St {
- constructor() {
- super(), (this.decodeMiddleCounters = Int32Array.from([0, 0, 0, 0]))
- }
- decodeMiddle(t, e, r) {
- const n = this.decodeMiddleCounters
- ;(n[0] = 0), (n[1] = 0), (n[2] = 0), (n[3] = 0)
- let i = t.getSize(),
- o = e[1]
- for (let e = 0; e < 4 && o < i; e++) {
- let e = St.decodeDigit(t, n, o, St.L_PATTERNS)
- r += String.fromCharCode('0'.charCodeAt(0) + e)
- for (let t of n) o += t
- }
- o = St.findGuardPattern(t, o, !0, St.MIDDLE_PATTERN, new Int32Array(St.MIDDLE_PATTERN.length).fill(0))[1]
- for (let e = 0; e < 4 && o < i; e++) {
- let e = St.decodeDigit(t, n, o, St.L_PATTERNS)
- r += String.fromCharCode('0'.charCodeAt(0) + e)
- for (let t of n) o += t
- }
- return { rowOffset: o, resultString: r }
- }
- getBarcodeFormat() {
- return k.EAN_8
- }
- }
- class yt extends St {
- constructor() {
- super(...arguments), (this.ean13Reader = new _t())
- }
- getBarcodeFormat() {
- return k.UPC_A
- }
- decode(t, e) {
- return this.maybeReturnResult(this.ean13Reader.decode(t))
- }
- decodeRow(t, e, r) {
- return this.maybeReturnResult(this.ean13Reader.decodeRow(t, e, r))
- }
- decodeMiddle(t, e, r) {
- return this.ean13Reader.decodeMiddle(t, e, r)
- }
- maybeReturnResult(t) {
- let e = t.getText()
- if ('0' === e.charAt(0)) {
- let r = new F(e.substring(1), null, null, t.getResultPoints(), k.UPC_A)
- return null != t.getResultMetadata() && r.putAllMetadata(t.getResultMetadata()), r
- }
- throw new N()
- }
- reset() {
- this.ean13Reader.reset()
- }
- }
- class Nt extends St {
- constructor() {
- super(), (this.decodeMiddleCounters = new Int32Array(4))
- }
- decodeMiddle(t, e, r) {
- const n = this.decodeMiddleCounters.map(t => t)
- ;(n[0] = 0), (n[1] = 0), (n[2] = 0), (n[3] = 0)
- const i = t.getSize()
- let o = e[1],
- s = 0
- for (let e = 0; e < 6 && o < i; e++) {
- const i = Nt.decodeDigit(t, n, o, Nt.L_AND_G_PATTERNS)
- r += String.fromCharCode('0'.charCodeAt(0) + (i % 10))
- for (let t of n) o += t
- i >= 10 && (s |= 1 << (5 - e))
- }
- return Nt.determineNumSysAndCheckDigit(new T(r), s), o
- }
- decodeEnd(t, e) {
- return Nt.findGuardPatternWithoutCounters(t, e, !0, Nt.MIDDLE_END_PATTERN)
- }
- checkChecksum(t) {
- return St.checkChecksum(Nt.convertUPCEtoUPCA(t))
- }
- static determineNumSysAndCheckDigit(t, e) {
- for (let r = 0; r <= 1; r++) for (let n = 0; n < 10; n++) if (e === this.NUMSYS_AND_CHECK_DIGIT_PATTERNS[r][n]) return t.insert(0, '0' + r), void t.append('0' + n)
- throw N.getNotFoundInstance()
- }
- getBarcodeFormat() {
- return k.UPC_E
- }
- static convertUPCEtoUPCA(t) {
- const e = t
- .slice(1, 7)
- .split('')
- .map(t => t.charCodeAt(0)),
- r = new T()
- r.append(t.charAt(0))
- let n = e[5]
- switch (n) {
- case 0:
- case 1:
- case 2:
- r.appendChars(e, 0, 2), r.append(n), r.append('0000'), r.appendChars(e, 2, 3)
- break
- case 3:
- r.appendChars(e, 0, 3), r.append('00000'), r.appendChars(e, 3, 2)
- break
- case 4:
- r.appendChars(e, 0, 4), r.append('00000'), r.append(e[4])
- break
- default:
- r.appendChars(e, 0, 5), r.append('0000'), r.append(n)
- }
- return t.length >= 8 && r.append(t.charAt(7)), r.toString()
- }
- }
- ;(Nt.MIDDLE_END_PATTERN = Int32Array.from([1, 1, 1, 1, 1, 1])),
- (Nt.NUMSYS_AND_CHECK_DIGIT_PATTERNS = [Int32Array.from([56, 52, 50, 49, 44, 38, 35, 42, 41, 37]), Int32Array.from([7, 11, 13, 14, 19, 25, 28, 21, 22, 1])])
- class Mt extends ft {
- constructor(t) {
- super()
- let e = null == t ? null : t.get(E.POSSIBLE_FORMATS),
- r = []
- null != e &&
- (e.indexOf(k.EAN_13) > -1 ? r.push(new _t()) : e.indexOf(k.UPC_A) > -1 && r.push(new yt()),
- e.indexOf(k.EAN_8) > -1 && r.push(new Tt()),
- e.indexOf(k.UPC_E) > -1 && r.push(new Nt())),
- 0 === r.length && (r.push(new _t()), r.push(new Tt()), r.push(new Nt())),
- (this.readers = r)
- }
- decodeRow(t, e, r) {
- for (let n of this.readers)
- try {
- const i = n.decodeRow(t, e, r),
- o = i.getBarcodeFormat() === k.EAN_13 && '0' === i.getText().charAt(0),
- s = null == r ? null : r.get(E.POSSIBLE_FORMATS),
- a = null == s || s.includes(k.UPC_A)
- if (o && a) {
- const t = i.getRawBytes(),
- e = new F(i.getText().substring(1), t, t.length, i.getResultPoints(), k.UPC_A)
- return e.putAllMetadata(i.getResultMetadata()), e
- }
- return i
- } catch (t) {}
- throw new N()
- }
- reset() {
- for (let t of this.readers) t.reset()
- }
- }
- class Dt extends ft {
- constructor() {
- super(),
- (this.decodeFinderCounters = new Int32Array(4)),
- (this.dataCharacterCounters = new Int32Array(8)),
- (this.oddRoundingErrors = new Array(4)),
- (this.evenRoundingErrors = new Array(4)),
- (this.oddCounts = new Array(this.dataCharacterCounters.length / 2)),
- (this.evenCounts = new Array(this.dataCharacterCounters.length / 2))
- }
- getDecodeFinderCounters() {
- return this.decodeFinderCounters
- }
- getDataCharacterCounters() {
- return this.dataCharacterCounters
- }
- getOddRoundingErrors() {
- return this.oddRoundingErrors
- }
- getEvenRoundingErrors() {
- return this.evenRoundingErrors
- }
- getOddCounts() {
- return this.oddCounts
- }
- getEvenCounts() {
- return this.evenCounts
- }
- parseFinderValue(t, e) {
- for (let r = 0; r < e.length; r++) if (ft.patternMatchVariance(t, e[r], Dt.MAX_INDIVIDUAL_VARIANCE) < Dt.MAX_AVG_VARIANCE) return r
- throw new N()
- }
- static count(t) {
- return et.sum(new Int32Array(t))
- }
- static increment(t, e) {
- let r = 0,
- n = e[0]
- for (let i = 1; i < t.length; i++) e[i] > n && ((n = e[i]), (r = i))
- t[r]++
- }
- static decrement(t, e) {
- let r = 0,
- n = e[0]
- for (let i = 1; i < t.length; i++) e[i] < n && ((n = e[i]), (r = i))
- t[r]--
- }
- static isFinderPattern(t) {
- let e = t[0] + t[1],
- r = e / (e + t[2] + t[3])
- if (r >= Dt.MIN_FINDER_PATTERN_RATIO && r <= Dt.MAX_FINDER_PATTERN_RATIO) {
- let e = Number.MAX_SAFE_INTEGER,
- r = Number.MIN_SAFE_INTEGER
- for (let n of t) n > r && (r = n), n < e && (e = n)
- return r < 10 * e
- }
- return !1
- }
- }
- ;(Dt.MAX_AVG_VARIANCE = 0.2), (Dt.MAX_INDIVIDUAL_VARIANCE = 0.45), (Dt.MIN_FINDER_PATTERN_RATIO = 9.5 / 12), (Dt.MAX_FINDER_PATTERN_RATIO = 12.5 / 14)
- class Rt {
- constructor(t, e) {
- ;(this.value = t), (this.checksumPortion = e)
- }
- getValue() {
- return this.value
- }
- getChecksumPortion() {
- return this.checksumPortion
- }
- toString() {
- return this.value + '(' + this.checksumPortion + ')'
- }
- equals(t) {
- if (!(t instanceof Rt)) return !1
- const e = t
- return this.value === e.value && this.checksumPortion === e.checksumPortion
- }
- hashCode() {
- return this.value ^ this.checksumPortion
- }
- }
- class Ot {
- constructor(t, e, r, n, i) {
- ;(this.value = t),
- (this.startEnd = e),
- (this.value = t),
- (this.startEnd = e),
- (this.resultPoints = new Array()),
- this.resultPoints.push(new nt(r, i)),
- this.resultPoints.push(new nt(n, i))
- }
- getValue() {
- return this.value
- }
- getStartEnd() {
- return this.startEnd
- }
- getResultPoints() {
- return this.resultPoints
- }
- equals(t) {
- if (!(t instanceof Ot)) return !1
- const e = t
- return this.value === e.value
- }
- hashCode() {
- return this.value
- }
- }
- class bt {
- constructor() {}
- static getRSSvalue(t, e, r) {
- let n = 0
- for (let e of t) n += e
- let i = 0,
- o = 0,
- s = t.length
- for (let a = 0; a < s - 1; a++) {
- let l
- for (l = 1, o |= 1 << a; l < t[a]; l++, o &= ~(1 << a)) {
- let t = bt.combins(n - l - 1, s - a - 2)
- if ((r && 0 === o && n - l - (s - a - 1) >= s - a - 1 && (t -= bt.combins(n - l - (s - a), s - a - 2)), s - a - 1 > 1)) {
- let r = 0
- for (let t = n - l - (s - a - 2); t > e; t--) r += bt.combins(n - l - t - 1, s - a - 3)
- t -= r * (s - 1 - a)
- } else n - l > e && t--
- i += t
- }
- n -= l
- }
- return i
- }
- static combins(t, e) {
- let r, n
- t - e > e ? ((n = e), (r = t - e)) : ((n = t - e), (r = e))
- let i = 1,
- o = 1
- for (let e = t; e > r; e--) (i *= e), o <= n && ((i /= o), o++)
- for (; o <= n; ) (i /= o), o++
- return i
- }
- }
- class Lt {
- constructor(t, e) {
- e ? (this.decodedInformation = null) : ((this.finished = t), (this.decodedInformation = e))
- }
- getDecodedInformation() {
- return this.decodedInformation
- }
- isFinished() {
- return this.finished
- }
- }
- class Bt {
- constructor(t) {
- this.newPosition = t
- }
- getNewPosition() {
- return this.newPosition
- }
- }
- class Pt extends Bt {
- constructor(t, e) {
- super(t), (this.value = e)
- }
- getValue() {
- return this.value
- }
- isFNC1() {
- return this.value === Pt.FNC1
- }
- }
- Pt.FNC1 = '$'
- class vt extends Bt {
- constructor(t, e, r) {
- super(t), r ? ((this.remaining = !0), (this.remainingValue = this.remainingValue)) : ((this.remaining = !1), (this.remainingValue = 0)), (this.newString = e)
- }
- getNewString() {
- return this.newString
- }
- isRemaining() {
- return this.remaining
- }
- getRemainingValue() {
- return this.remainingValue
- }
- }
- class Ft extends Bt {
- constructor(t, e, r) {
- if ((super(t), e < 0 || e > 10 || r < 0 || r > 10)) throw new C()
- ;(this.firstDigit = e), (this.secondDigit = r)
- }
- getFirstDigit() {
- return this.firstDigit
- }
- getSecondDigit() {
- return this.secondDigit
- }
- getValue() {
- return 10 * this.firstDigit + this.secondDigit
- }
- isFirstDigitFNC1() {
- return this.firstDigit === Ft.FNC1
- }
- isSecondDigitFNC1() {
- return this.secondDigit === Ft.FNC1
- }
- isAnyFNC1() {
- return this.firstDigit === Ft.FNC1 || this.secondDigit === Ft.FNC1
- }
- }
- Ft.FNC1 = 10
- class xt {
- constructor() {}
- static parseFieldsInGeneralPurpose(t) {
- if (!t) return null
- if (t.length < 2) throw new N()
- let e = t.substring(0, 2)
- for (let r of xt.TWO_DIGIT_DATA_LENGTH) if (r[0] === e) return r[1] === xt.VARIABLE_LENGTH ? xt.processVariableAI(2, r[2], t) : xt.processFixedAI(2, r[1], t)
- if (t.length < 3) throw new N()
- let r = t.substring(0, 3)
- for (let e of xt.THREE_DIGIT_DATA_LENGTH) if (e[0] === r) return e[1] === xt.VARIABLE_LENGTH ? xt.processVariableAI(3, e[2], t) : xt.processFixedAI(3, e[1], t)
- for (let e of xt.THREE_DIGIT_PLUS_DIGIT_DATA_LENGTH) if (e[0] === r) return e[1] === xt.VARIABLE_LENGTH ? xt.processVariableAI(4, e[2], t) : xt.processFixedAI(4, e[1], t)
- if (t.length < 4) throw new N()
- let n = t.substring(0, 4)
- for (let e of xt.FOUR_DIGIT_DATA_LENGTH) if (e[0] === n) return e[1] === xt.VARIABLE_LENGTH ? xt.processVariableAI(4, e[2], t) : xt.processFixedAI(4, e[1], t)
- throw new N()
- }
- static processFixedAI(t, e, r) {
- if (r.length < t) throw new N()
- let n = r.substring(0, t)
- if (r.length < t + e) throw new N()
- let i = r.substring(t, t + e),
- o = r.substring(t + e),
- s = '(' + n + ')' + i,
- a = xt.parseFieldsInGeneralPurpose(o)
- return null == a ? s : s + a
- }
- static processVariableAI(t, e, r) {
- let n,
- i = r.substring(0, t)
- n = r.length < t + e ? r.length : t + e
- let o = r.substring(t, n),
- s = r.substring(n),
- a = '(' + i + ')' + o,
- l = xt.parseFieldsInGeneralPurpose(s)
- return null == l ? a : a + l
- }
- }
- ;(xt.VARIABLE_LENGTH = []),
- (xt.TWO_DIGIT_DATA_LENGTH = [
- ['00', 18],
- ['01', 14],
- ['02', 14],
- ['10', xt.VARIABLE_LENGTH, 20],
- ['11', 6],
- ['12', 6],
- ['13', 6],
- ['15', 6],
- ['17', 6],
- ['20', 2],
- ['21', xt.VARIABLE_LENGTH, 20],
- ['22', xt.VARIABLE_LENGTH, 29],
- ['30', xt.VARIABLE_LENGTH, 8],
- ['37', xt.VARIABLE_LENGTH, 8],
- ['90', xt.VARIABLE_LENGTH, 30],
- ['91', xt.VARIABLE_LENGTH, 30],
- ['92', xt.VARIABLE_LENGTH, 30],
- ['93', xt.VARIABLE_LENGTH, 30],
- ['94', xt.VARIABLE_LENGTH, 30],
- ['95', xt.VARIABLE_LENGTH, 30],
- ['96', xt.VARIABLE_LENGTH, 30],
- ['97', xt.VARIABLE_LENGTH, 3],
- ['98', xt.VARIABLE_LENGTH, 30],
- ['99', xt.VARIABLE_LENGTH, 30]
- ]),
- (xt.THREE_DIGIT_DATA_LENGTH = [
- ['240', xt.VARIABLE_LENGTH, 30],
- ['241', xt.VARIABLE_LENGTH, 30],
- ['242', xt.VARIABLE_LENGTH, 6],
- ['250', xt.VARIABLE_LENGTH, 30],
- ['251', xt.VARIABLE_LENGTH, 30],
- ['253', xt.VARIABLE_LENGTH, 17],
- ['254', xt.VARIABLE_LENGTH, 20],
- ['400', xt.VARIABLE_LENGTH, 30],
- ['401', xt.VARIABLE_LENGTH, 30],
- ['402', 17],
- ['403', xt.VARIABLE_LENGTH, 30],
- ['410', 13],
- ['411', 13],
- ['412', 13],
- ['413', 13],
- ['414', 13],
- ['420', xt.VARIABLE_LENGTH, 20],
- ['421', xt.VARIABLE_LENGTH, 15],
- ['422', 3],
- ['423', xt.VARIABLE_LENGTH, 15],
- ['424', 3],
- ['425', 3],
- ['426', 3]
- ]),
- (xt.THREE_DIGIT_PLUS_DIGIT_DATA_LENGTH = [
- ['310', 6],
- ['311', 6],
- ['312', 6],
- ['313', 6],
- ['314', 6],
- ['315', 6],
- ['316', 6],
- ['320', 6],
- ['321', 6],
- ['322', 6],
- ['323', 6],
- ['324', 6],
- ['325', 6],
- ['326', 6],
- ['327', 6],
- ['328', 6],
- ['329', 6],
- ['330', 6],
- ['331', 6],
- ['332', 6],
- ['333', 6],
- ['334', 6],
- ['335', 6],
- ['336', 6],
- ['340', 6],
- ['341', 6],
- ['342', 6],
- ['343', 6],
- ['344', 6],
- ['345', 6],
- ['346', 6],
- ['347', 6],
- ['348', 6],
- ['349', 6],
- ['350', 6],
- ['351', 6],
- ['352', 6],
- ['353', 6],
- ['354', 6],
- ['355', 6],
- ['356', 6],
- ['357', 6],
- ['360', 6],
- ['361', 6],
- ['362', 6],
- ['363', 6],
- ['364', 6],
- ['365', 6],
- ['366', 6],
- ['367', 6],
- ['368', 6],
- ['369', 6],
- ['390', xt.VARIABLE_LENGTH, 15],
- ['391', xt.VARIABLE_LENGTH, 18],
- ['392', xt.VARIABLE_LENGTH, 15],
- ['393', xt.VARIABLE_LENGTH, 18],
- ['703', xt.VARIABLE_LENGTH, 30]
- ]),
- (xt.FOUR_DIGIT_DATA_LENGTH = [
- ['7001', 13],
- ['7002', xt.VARIABLE_LENGTH, 30],
- ['7003', 10],
- ['8001', 14],
- ['8002', xt.VARIABLE_LENGTH, 20],
- ['8003', xt.VARIABLE_LENGTH, 30],
- ['8004', xt.VARIABLE_LENGTH, 30],
- ['8005', 6],
- ['8006', 18],
- ['8007', xt.VARIABLE_LENGTH, 30],
- ['8008', xt.VARIABLE_LENGTH, 12],
- ['8018', 18],
- ['8020', xt.VARIABLE_LENGTH, 25],
- ['8100', 6],
- ['8101', 10],
- ['8102', 2],
- ['8110', xt.VARIABLE_LENGTH, 70],
- ['8200', xt.VARIABLE_LENGTH, 70]
- ])
- class kt {
- constructor(t) {
- ;(this.buffer = new T()), (this.information = t)
- }
- decodeAllCodes(t, e) {
- let r = e,
- n = null
- for (;;) {
- let e = this.decodeGeneralPurposeField(r, n),
- i = xt.parseFieldsInGeneralPurpose(e.getNewString())
- if ((null != i && t.append(i), (n = e.isRemaining() ? '' + e.getRemainingValue() : null), r === e.getNewPosition())) break
- r = e.getNewPosition()
- }
- return t.toString()
- }
- isStillNumeric(t) {
- if (t + 7 > this.information.getSize()) return t + 4 <= this.information.getSize()
- for (let e = t; e < t + 3; ++e) if (this.information.get(e)) return !0
- return this.information.get(t + 3)
- }
- decodeNumeric(t) {
- if (t + 7 > this.information.getSize()) {
- let e = this.extractNumericValueFromBitArray(t, 4)
- return new Ft(this.information.getSize(), 0 === e ? Ft.FNC1 : e - 1, Ft.FNC1)
- }
- let e = this.extractNumericValueFromBitArray(t, 7)
- return new Ft(t + 7, (e - 8) / 11, (e - 8) % 11)
- }
- extractNumericValueFromBitArray(t, e) {
- return kt.extractNumericValueFromBitArray(this.information, t, e)
- }
- static extractNumericValueFromBitArray(t, e, r) {
- let n = 0
- for (let i = 0; i < r; ++i) t.get(e + i) && (n |= 1 << (r - i - 1))
- return n
- }
- decodeGeneralPurposeField(t, e) {
- this.buffer.setLengthToZero(), null != e && this.buffer.append(e), this.current.setPosition(t)
- let r = this.parseBlocks()
- return null != r && r.isRemaining()
- ? new vt(this.current.getPosition(), this.buffer.toString(), r.getRemainingValue())
- : new vt(this.current.getPosition(), this.buffer.toString())
- }
- parseBlocks() {
- let t, e
- do {
- let r = this.current.getPosition()
- if (
- (this.current.isAlpha()
- ? ((e = this.parseAlphaBlock()), (t = e.isFinished()))
- : this.current.isIsoIec646()
- ? ((e = this.parseIsoIec646Block()), (t = e.isFinished()))
- : ((e = this.parseNumericBlock()), (t = e.isFinished())),
- r === this.current.getPosition() && !t)
- )
- break
- } while (!t)
- return e.getDecodedInformation()
- }
- parseNumericBlock() {
- for (; this.isStillNumeric(this.current.getPosition()); ) {
- let t = this.decodeNumeric(this.current.getPosition())
- if ((this.current.setPosition(t.getNewPosition()), t.isFirstDigitFNC1())) {
- let e
- return (
- (e = t.isSecondDigitFNC1()
- ? new vt(this.current.getPosition(), this.buffer.toString())
- : new vt(this.current.getPosition(), this.buffer.toString(), t.getSecondDigit())),
- new Lt(!0, e)
- )
- }
- if ((this.buffer.append(t.getFirstDigit()), t.isSecondDigitFNC1())) {
- let t = new vt(this.current.getPosition(), this.buffer.toString())
- return new Lt(!0, t)
- }
- this.buffer.append(t.getSecondDigit())
- }
- return this.isNumericToAlphaNumericLatch(this.current.getPosition()) && (this.current.setAlpha(), this.current.incrementPosition(4)), new Lt(!1)
- }
- parseIsoIec646Block() {
- for (; this.isStillIsoIec646(this.current.getPosition()); ) {
- let t = this.decodeIsoIec646(this.current.getPosition())
- if ((this.current.setPosition(t.getNewPosition()), t.isFNC1())) {
- let t = new vt(this.current.getPosition(), this.buffer.toString())
- return new Lt(!0, t)
- }
- this.buffer.append(t.getValue())
- }
- return (
- this.isAlphaOr646ToNumericLatch(this.current.getPosition())
- ? (this.current.incrementPosition(3), this.current.setNumeric())
- : this.isAlphaTo646ToAlphaLatch(this.current.getPosition()) &&
- (this.current.getPosition() + 5 < this.information.getSize() ? this.current.incrementPosition(5) : this.current.setPosition(this.information.getSize()),
- this.current.setAlpha()),
- new Lt(!1)
- )
- }
- parseAlphaBlock() {
- for (; this.isStillAlpha(this.current.getPosition()); ) {
- let t = this.decodeAlphanumeric(this.current.getPosition())
- if ((this.current.setPosition(t.getNewPosition()), t.isFNC1())) {
- let t = new vt(this.current.getPosition(), this.buffer.toString())
- return new Lt(!0, t)
- }
- this.buffer.append(t.getValue())
- }
- return (
- this.isAlphaOr646ToNumericLatch(this.current.getPosition())
- ? (this.current.incrementPosition(3), this.current.setNumeric())
- : this.isAlphaTo646ToAlphaLatch(this.current.getPosition()) &&
- (this.current.getPosition() + 5 < this.information.getSize() ? this.current.incrementPosition(5) : this.current.setPosition(this.information.getSize()),
- this.current.setIsoIec646()),
- new Lt(!1)
- )
- }
- isStillIsoIec646(t) {
- if (t + 5 > this.information.getSize()) return !1
- let e = this.extractNumericValueFromBitArray(t, 5)
- if (e >= 5 && e < 16) return !0
- if (t + 7 > this.information.getSize()) return !1
- let r = this.extractNumericValueFromBitArray(t, 7)
- if (r >= 64 && r < 116) return !0
- if (t + 8 > this.information.getSize()) return !1
- let n = this.extractNumericValueFromBitArray(t, 8)
- return n >= 232 && n < 253
- }
- decodeIsoIec646(t) {
- let e = this.extractNumericValueFromBitArray(t, 5)
- if (15 === e) return new Pt(t + 5, Pt.FNC1)
- if (e >= 5 && e < 15) return new Pt(t + 5, '0' + (e - 5))
- let r,
- n = this.extractNumericValueFromBitArray(t, 7)
- if (n >= 64 && n < 90) return new Pt(t + 7, '' + (n + 1))
- if (n >= 90 && n < 116) return new Pt(t + 7, '' + (n + 7))
- switch (this.extractNumericValueFromBitArray(t, 8)) {
- case 232:
- r = '!'
- break
- case 233:
- r = '"'
- break
- case 234:
- r = '%'
- break
- case 235:
- r = '&'
- break
- case 236:
- r = "'"
- break
- case 237:
- r = '('
- break
- case 238:
- r = ')'
- break
- case 239:
- r = '*'
- break
- case 240:
- r = '+'
- break
- case 241:
- r = ','
- break
- case 242:
- r = '-'
- break
- case 243:
- r = '.'
- break
- case 244:
- r = '/'
- break
- case 245:
- r = ':'
- break
- case 246:
- r = ';'
- break
- case 247:
- r = '<'
- break
- case 248:
- r = '='
- break
- case 249:
- r = '>'
- break
- case 250:
- r = '?'
- break
- case 251:
- r = '_'
- break
- case 252:
- r = ' '
- break
- default:
- throw new C()
- }
- return new Pt(t + 8, r)
- }
- isStillAlpha(t) {
- if (t + 5 > this.information.getSize()) return !1
- let e = this.extractNumericValueFromBitArray(t, 5)
- if (e >= 5 && e < 16) return !0
- if (t + 6 > this.information.getSize()) return !1
- let r = this.extractNumericValueFromBitArray(t, 6)
- return r >= 16 && r < 63
- }
- decodeAlphanumeric(t) {
- let e = this.extractNumericValueFromBitArray(t, 5)
- if (15 === e) return new Pt(t + 5, Pt.FNC1)
- if (e >= 5 && e < 15) return new Pt(t + 5, '0' + (e - 5))
- let r,
- n = this.extractNumericValueFromBitArray(t, 6)
- if (n >= 32 && n < 58) return new Pt(t + 6, '' + (n + 33))
- switch (n) {
- case 58:
- r = '*'
- break
- case 59:
- r = ','
- break
- case 60:
- r = '-'
- break
- case 61:
- r = '.'
- break
- case 62:
- r = '/'
- break
- default:
- throw new J('Decoding invalid alphanumeric value: ' + n)
- }
- return new Pt(t + 6, r)
- }
- isAlphaTo646ToAlphaLatch(t) {
- if (t + 1 > this.information.getSize()) return !1
- for (let e = 0; e < 5 && e + t < this.information.getSize(); ++e)
- if (2 === e) {
- if (!this.information.get(t + 2)) return !1
- } else if (this.information.get(t + e)) return !1
- return !0
- }
- isAlphaOr646ToNumericLatch(t) {
- if (t + 3 > this.information.getSize()) return !1
- for (let e = t; e < t + 3; ++e) if (this.information.get(e)) return !1
- return !0
- }
- isNumericToAlphaNumericLatch(t) {
- if (t + 1 > this.information.getSize()) return !1
- for (let e = 0; e < 4 && e + t < this.information.getSize(); ++e) if (this.information.get(t + e)) return !1
- return !0
- }
- }
- class Ut {
- constructor(t) {
- ;(this.information = t), (this.generalDecoder = new kt(t))
- }
- getInformation() {
- return this.information
- }
- getGeneralDecoder() {
- return this.generalDecoder
- }
- }
- class Ht extends Ut {
- constructor(t) {
- super(t)
- }
- encodeCompressedGtin(t, e) {
- t.append('(01)')
- let r = t.length()
- t.append('9'), this.encodeCompressedGtinWithoutAI(t, e, r)
- }
- encodeCompressedGtinWithoutAI(t, e, r) {
- for (let r = 0; r < 4; ++r) {
- let n = this.getGeneralDecoder().extractNumericValueFromBitArray(e + 10 * r, 10)
- n / 100 == 0 && t.append('0'), n / 10 == 0 && t.append('0'), t.append(n)
- }
- Ht.appendCheckDigit(t, r)
- }
- static appendCheckDigit(t, e) {
- let r = 0
- for (let n = 0; n < 13; n++) {
- let i = t.charAt(n + e).charCodeAt(0) - '0'.charCodeAt(0)
- r += 0 == (1 & n) ? 3 * i : i
- }
- ;(r = 10 - (r % 10)), 10 === r && (r = 0), t.append(r)
- }
- }
- Ht.GTIN_SIZE = 40
- class Vt extends Ht {
- constructor(t) {
- super(t)
- }
- parseInformation() {
- let t = new T()
- t.append('(01)')
- let e = t.length(),
- r = this.getGeneralDecoder().extractNumericValueFromBitArray(Vt.HEADER_SIZE, 4)
- return t.append(r), this.encodeCompressedGtinWithoutAI(t, Vt.HEADER_SIZE + 4, e), this.getGeneralDecoder().decodeAllCodes(t, Vt.HEADER_SIZE + 44)
- }
- }
- Vt.HEADER_SIZE = 4
- class zt extends Ut {
- constructor(t) {
- super(t)
- }
- parseInformation() {
- let t = new T()
- return this.getGeneralDecoder().decodeAllCodes(t, zt.HEADER_SIZE)
- }
- }
- zt.HEADER_SIZE = 5
- class Gt extends Ht {
- constructor(t) {
- super(t)
- }
- encodeCompressedWeight(t, e, r) {
- let n = this.getGeneralDecoder().extractNumericValueFromBitArray(e, r)
- this.addWeightCode(t, n)
- let i = this.checkWeight(n),
- o = 1e5
- for (let e = 0; e < 5; ++e) i / o == 0 && t.append('0'), (o /= 10)
- t.append(i)
- }
- }
- class Yt extends Gt {
- constructor(t) {
- super(t)
- }
- parseInformation() {
- if (this.getInformation().getSize() != Yt.HEADER_SIZE + Gt.GTIN_SIZE + Yt.WEIGHT_SIZE) throw new N()
- let t = new T()
- return this.encodeCompressedGtin(t, Yt.HEADER_SIZE), this.encodeCompressedWeight(t, Yt.HEADER_SIZE + Gt.GTIN_SIZE, Yt.WEIGHT_SIZE), t.toString()
- }
- }
- ;(Yt.HEADER_SIZE = 5), (Yt.WEIGHT_SIZE = 15)
- class Xt extends Yt {
- constructor(t) {
- super(t)
- }
- addWeightCode(t, e) {
- t.append('(3103)')
- }
- checkWeight(t) {
- return t
- }
- }
- class Wt extends Yt {
- constructor(t) {
- super(t)
- }
- addWeightCode(t, e) {
- e < 1e4 ? t.append('(3202)') : t.append('(3203)')
- }
- checkWeight(t) {
- return t < 1e4 ? t : t - 1e4
- }
- }
- class jt extends Ht {
- constructor(t) {
- super(t)
- }
- parseInformation() {
- if (this.getInformation().getSize() < jt.HEADER_SIZE + Ht.GTIN_SIZE) throw new N()
- let t = new T()
- this.encodeCompressedGtin(t, jt.HEADER_SIZE)
- let e = this.getGeneralDecoder().extractNumericValueFromBitArray(jt.HEADER_SIZE + Ht.GTIN_SIZE, jt.LAST_DIGIT_SIZE)
- t.append('(392'), t.append(e), t.append(')')
- let r = this.getGeneralDecoder().decodeGeneralPurposeField(jt.HEADER_SIZE + Ht.GTIN_SIZE + jt.LAST_DIGIT_SIZE, null)
- return t.append(r.getNewString()), t.toString()
- }
- }
- ;(jt.HEADER_SIZE = 8), (jt.LAST_DIGIT_SIZE = 2)
- class Zt extends Ht {
- constructor(t) {
- super(t)
- }
- parseInformation() {
- if (this.getInformation().getSize() < Zt.HEADER_SIZE + Ht.GTIN_SIZE) throw new N()
- let t = new T()
- this.encodeCompressedGtin(t, Zt.HEADER_SIZE)
- let e = this.getGeneralDecoder().extractNumericValueFromBitArray(Zt.HEADER_SIZE + Ht.GTIN_SIZE, Zt.LAST_DIGIT_SIZE)
- t.append('(393'), t.append(e), t.append(')')
- let r = this.getGeneralDecoder().extractNumericValueFromBitArray(Zt.HEADER_SIZE + Ht.GTIN_SIZE + Zt.LAST_DIGIT_SIZE, Zt.FIRST_THREE_DIGITS_SIZE)
- r / 100 == 0 && t.append('0'), r / 10 == 0 && t.append('0'), t.append(r)
- let n = this.getGeneralDecoder().decodeGeneralPurposeField(Zt.HEADER_SIZE + Ht.GTIN_SIZE + Zt.LAST_DIGIT_SIZE + Zt.FIRST_THREE_DIGITS_SIZE, null)
- return t.append(n.getNewString()), t.toString()
- }
- }
- ;(Zt.HEADER_SIZE = 8), (Zt.LAST_DIGIT_SIZE = 2), (Zt.FIRST_THREE_DIGITS_SIZE = 10)
- class Qt extends Gt {
- constructor(t, e, r) {
- super(t), (this.dateCode = r), (this.firstAIdigits = e)
- }
- parseInformation() {
- if (this.getInformation().getSize() != Qt.HEADER_SIZE + Qt.GTIN_SIZE + Qt.WEIGHT_SIZE + Qt.DATE_SIZE) throw new N()
- let t = new T()
- return (
- this.encodeCompressedGtin(t, Qt.HEADER_SIZE),
- this.encodeCompressedWeight(t, Qt.HEADER_SIZE + Qt.GTIN_SIZE, Qt.WEIGHT_SIZE),
- this.encodeCompressedDate(t, Qt.HEADER_SIZE + Qt.GTIN_SIZE + Qt.WEIGHT_SIZE),
- t.toString()
- )
- }
- encodeCompressedDate(t, e) {
- let r = this.getGeneralDecoder().extractNumericValueFromBitArray(e, Qt.DATE_SIZE)
- if (38400 == r) return
- t.append('('), t.append(this.dateCode), t.append(')')
- let n = r % 32
- r /= 32
- let i = (r % 12) + 1
- r /= 12
- let o = r
- o / 10 == 0 && t.append('0'), t.append(o), i / 10 == 0 && t.append('0'), t.append(i), n / 10 == 0 && t.append('0'), t.append(n)
- }
- addWeightCode(t, e) {
- t.append('('), t.append(this.firstAIdigits), t.append(e / 1e5), t.append(')')
- }
- checkWeight(t) {
- return t % 1e5
- }
- }
- ;(Qt.HEADER_SIZE = 8), (Qt.WEIGHT_SIZE = 20), (Qt.DATE_SIZE = 16)
- class Kt {
- constructor(t, e, r, n) {
- ;(this.leftchar = t), (this.rightchar = e), (this.finderpattern = r), (this.maybeLast = n)
- }
- mayBeLast() {
- return this.maybeLast
- }
- getLeftChar() {
- return this.leftchar
- }
- getRightChar() {
- return this.rightchar
- }
- getFinderPattern() {
- return this.finderpattern
- }
- mustBeLast() {
- return null == this.rightchar
- }
- toString() {
- return '[ ' + this.leftchar + ', ' + this.rightchar + ' : ' + (null == this.finderpattern ? 'null' : this.finderpattern.getValue()) + ' ]'
- }
- static equals(t, e) {
- return t instanceof Kt && Kt.equalsOrNull(t.leftchar, e.leftchar) && Kt.equalsOrNull(t.rightchar, e.rightchar) && Kt.equalsOrNull(t.finderpattern, e.finderpattern)
- }
- static equalsOrNull(t, e) {
- return null === t ? null === e : Kt.equals(t, e)
- }
- hashCode() {
- return this.leftchar.getValue() ^ this.rightchar.getValue() ^ this.finderpattern.getValue()
- }
- }
- class qt {
- constructor(t, e, r) {
- ;(this.pairs = t), (this.rowNumber = e), (this.wasReversed = r)
- }
- getPairs() {
- return this.pairs
- }
- getRowNumber() {
- return this.rowNumber
- }
- isReversed() {
- return this.wasReversed
- }
- isEquivalent(t) {
- return this.checkEqualitity(this, t)
- }
- toString() {
- return '{ ' + this.pairs + ' }'
- }
- equals(t, e) {
- return t instanceof qt && this.checkEqualitity(t, e) && t.wasReversed === e.wasReversed
- }
- checkEqualitity(t, e) {
- if (!t || !e) return
- let r
- return (
- t.forEach((t, n) => {
- e.forEach(e => {
- t.getLeftChar().getValue() === e.getLeftChar().getValue() &&
- t.getRightChar().getValue() === e.getRightChar().getValue() &&
- t.getFinderPatter().getValue() === e.getFinderPatter().getValue() &&
- (r = !0)
- })
- }),
- r
- )
- }
- }
- class Jt extends Dt {
- constructor(t) {
- super(...arguments), (this.pairs = new Array(Jt.MAX_PAIRS)), (this.rows = new Array()), (this.startEnd = [2]), (this.verbose = !0 === t)
- }
- decodeRow(t, e, r) {
- ;(this.pairs.length = 0), (this.startFromEven = !1)
- try {
- return Jt.constructResult(this.decodeRow2pairs(t, e))
- } catch (t) {
- this.verbose && console.log(t)
- }
- return (this.pairs.length = 0), (this.startFromEven = !0), Jt.constructResult(this.decodeRow2pairs(t, e))
- }
- reset() {
- ;(this.pairs.length = 0), (this.rows.length = 0)
- }
- decodeRow2pairs(t, e) {
- let r,
- n = !1
- for (; !n; )
- try {
- this.pairs.push(this.retrieveNextPair(e, this.pairs, t))
- } catch (t) {
- if (t instanceof N) {
- if (!this.pairs.length) throw new N()
- n = !0
- }
- }
- if (this.checkChecksum()) return this.pairs
- if (((r = !!this.rows.length), this.storeRow(t, !1), r)) {
- let t = this.checkRowsBoolean(!1)
- if (null != t) return t
- if (((t = this.checkRowsBoolean(!0)), null != t)) return t
- }
- throw new N()
- }
- checkRowsBoolean(t) {
- if (this.rows.length > 25) return (this.rows.length = 0), null
- ;(this.pairs.length = 0), t && (this.rows = this.rows.reverse())
- let e = null
- try {
- e = this.checkRows(new Array(), 0)
- } catch (t) {
- this.verbose && console.log(t)
- }
- return t && (this.rows = this.rows.reverse()), e
- }
- checkRows(t, e) {
- for (let r = e; r < this.rows.length; r++) {
- let e = this.rows[r]
- this.pairs.length = 0
- for (let e of t) this.pairs.push(e.getPairs())
- if ((this.pairs.push(e.getPairs()), !Jt.isValidSequence(this.pairs))) continue
- if (this.checkChecksum()) return this.pairs
- let n = new Array(t)
- n.push(e)
- try {
- return this.checkRows(n, r + 1)
- } catch (t) {
- this.verbose && console.log(t)
- }
- }
- throw new N()
- }
- static isValidSequence(t) {
- for (let e of Jt.FINDER_PATTERN_SEQUENCES) {
- if (t.length > e.length) continue
- let r = !0
- for (let n = 0; n < t.length; n++)
- if (t[n].getFinderPattern().getValue() != e[n]) {
- r = !1
- break
- }
- if (r) return !0
- }
- return !1
- }
- storeRow(t, e) {
- let r = 0,
- n = !1,
- i = !1
- for (; r < this.rows.length; ) {
- let e = this.rows[r]
- if (e.getRowNumber() > t) {
- i = e.isEquivalent(this.pairs)
- break
- }
- ;(n = e.isEquivalent(this.pairs)), r++
- }
- i || n || Jt.isPartialRow(this.pairs, this.rows) || (this.rows.push(r, new qt(this.pairs, t, e)), this.removePartialRows(this.pairs, this.rows))
- }
- removePartialRows(t, e) {
- for (let r of e) if (r.getPairs().length !== t.length) for (let e of r.getPairs()) for (let r of t) if (Kt.equals(e, r)) break
- }
- static isPartialRow(t, e) {
- for (let r of e) {
- let e = !0
- for (let n of t) {
- let t = !1
- for (let e of r.getPairs())
- if (n.equals(e)) {
- t = !0
- break
- }
- if (!t) {
- e = !1
- break
- }
- }
- if (e) return !0
- }
- return !1
- }
- getRows() {
- return this.rows
- }
- static constructResult(t) {
- let e = (function(t) {
- try {
- if (t.get(1)) return new Vt(t)
- if (!t.get(2)) return new zt(t)
- switch (kt.extractNumericValueFromBitArray(t, 1, 4)) {
- case 4:
- return new Xt(t)
- case 5:
- return new Wt(t)
- }
- switch (kt.extractNumericValueFromBitArray(t, 1, 5)) {
- case 12:
- return new jt(t)
- case 13:
- return new Zt(t)
- }
- switch (kt.extractNumericValueFromBitArray(t, 1, 7)) {
- case 56:
- return new Qt(t, '310', '11')
- case 57:
- return new Qt(t, '320', '11')
- case 58:
- return new Qt(t, '310', '13')
- case 59:
- return new Qt(t, '320', '13')
- case 60:
- return new Qt(t, '310', '15')
- case 61:
- return new Qt(t, '320', '15')
- case 62:
- return new Qt(t, '310', '17')
- case 63:
- return new Qt(t, '320', '17')
- }
- } catch (e) {
- throw (console.log(e), new J('unknown decoder: ' + t))
- }
- })(
- class {
- static buildBitArray(t) {
- let e = 2 * t.length - 1
- null == t[t.length - 1].getRightChar() && (e -= 1)
- let r = new A(12 * e),
- n = 0,
- i = t[0].getRightChar().getValue()
- for (let t = 11; t >= 0; --t) 0 != (i & (1 << t)) && r.set(n), n++
- for (let e = 1; e < t.length; ++e) {
- let i = t[e],
- o = i.getLeftChar().getValue()
- for (let t = 11; t >= 0; --t) 0 != (o & (1 << t)) && r.set(n), n++
- if (null != i.getRightChar()) {
- let t = i.getRightChar().getValue()
- for (let e = 11; e >= 0; --e) 0 != (t & (1 << e)) && r.set(n), n++
- }
- }
- return r
- }
- }.buildBitArray(t)
- ).parseInformation(),
- r = t[0].getFinderPattern().getResultPoints(),
- n = t[t.length - 1].getFinderPattern().getResultPoints(),
- i = [r[0], r[1], n[0], n[1]]
- return new F(e, null, null, i, k.RSS_EXPANDED, null)
- }
- checkChecksum() {
- let t = this.pairs.get(0),
- e = t.getLeftChar(),
- r = t.getRightChar()
- if (null == r) return !1
- let n = r.getChecksumPortion(),
- i = 2
- for (let t = 1; t < this.pairs.size(); ++t) {
- let e = this.pairs.get(t)
- ;(n += e.getLeftChar().getChecksumPortion()), i++
- let r = e.getRightChar()
- null != r && ((n += r.getChecksumPortion()), i++)
- }
- return (n %= 211), 211 * (i - 4) + n == e.getValue()
- }
- static getNextSecondBar(t, e) {
- let r
- return t.get(e) ? ((r = t.getNextUnset(e)), (r = t.getNextSet(r))) : ((r = t.getNextSet(e)), (r = t.getNextUnset(r))), r
- }
- retrieveNextPair(t, e, r) {
- let n,
- i = e.length % 2 == 0
- this.startFromEven && (i = !i)
- let o = !0,
- s = -1
- do {
- this.findNextPair(t, e, s), (n = this.parseFoundFinderPattern(t, r, i)), null == n ? (s = Jt.getNextSecondBar(t, this.startEnd[0])) : (o = !1)
- } while (o)
- let a,
- l = this.decodeDataCharacter(t, n, i, !0)
- if (!this.isEmptyPair(e) && e[e.length - 1].mustBeLast()) throw new N()
- try {
- a = this.decodeDataCharacter(t, n, i, !1)
- } catch (t) {
- ;(a = null), this.verbose && console.log(t)
- }
- return new Kt(l, a, n, !0)
- }
- isEmptyPair(t) {
- return 0 === t.length
- }
- findNextPair(t, e, r) {
- let n = this.getDecodeFinderCounters()
- ;(n[0] = 0), (n[1] = 0), (n[2] = 0), (n[3] = 0)
- let i,
- o = t.getSize()
- i = r >= 0 ? r : this.isEmptyPair(e) ? 0 : e[e.length - 1].getFinderPattern().getStartEnd()[1]
- let s = e.length % 2 != 0
- this.startFromEven && (s = !s)
- let a = !1
- for (; i < o && ((a = !t.get(i)), a); ) i++
- let l = 0,
- c = i
- for (let e = i; e < o; e++)
- if (t.get(e) != a) n[l]++
- else {
- if (3 == l) {
- if ((s && Jt.reverseCounters(n), Jt.isFinderPattern(n))) return (this.startEnd[0] = c), void (this.startEnd[1] = e)
- s && Jt.reverseCounters(n), (c += n[0] + n[1]), (n[0] = n[2]), (n[1] = n[3]), (n[2] = 0), (n[3] = 0), l--
- } else l++
- ;(n[l] = 1), (a = !a)
- }
- throw new N()
- }
- static reverseCounters(t) {
- let e = t.length
- for (let r = 0; r < e / 2; ++r) {
- let n = t[r]
- ;(t[r] = t[e - r - 1]), (t[e - r - 1] = n)
- }
- }
- parseFoundFinderPattern(t, e, r) {
- let n, i, o
- if (r) {
- let e = this.startEnd[0] - 1
- for (; e >= 0 && !t.get(e); ) e--
- e++, (n = this.startEnd[0] - e), (i = e), (o = this.startEnd[1])
- } else (i = this.startEnd[0]), (o = t.getNextUnset(this.startEnd[1] + 1)), (n = o - this.startEnd[1])
- let s,
- a = this.getDecodeFinderCounters()
- u.arraycopy(a, 0, a, 1, a.length - 1), (a[0] = n)
- try {
- s = this.parseFinderValue(a, Jt.FINDER_PATTERNS)
- } catch (t) {
- return null
- }
- return new Ot(s, [i, o], i, o, e)
- }
- decodeDataCharacter(t, e, r, n) {
- let i = this.getDataCharacterCounters()
- for (let t = 0; t < i.length; t++) i[t] = 0
- if (n) Jt.recordPatternInReverse(t, e.getStartEnd()[0], i)
- else {
- Jt.recordPattern(t, e.getStartEnd()[1], i)
- for (let t = 0, e = i.length - 1; t < e; t++, e--) {
- let r = i[t]
- ;(i[t] = i[e]), (i[e] = r)
- }
- }
- let o = et.sum(new Int32Array(i)) / 17,
- s = (e.getStartEnd()[1] - e.getStartEnd()[0]) / 15
- if (Math.abs(o - s) / s > 0.3) throw new N()
- let a = this.getOddCounts(),
- l = this.getEvenCounts(),
- c = this.getOddRoundingErrors(),
- h = this.getEvenRoundingErrors()
- for (let t = 0; t < i.length; t++) {
- let e = (1 * i[t]) / o,
- r = e + 0.5
- if (r < 1) {
- if (e < 0.3) throw new N()
- r = 1
- } else if (r > 8) {
- if (e > 8.7) throw new N()
- r = 8
- }
- let n = t / 2
- 0 == (1 & t) ? ((a[n] = r), (c[n] = e - r)) : ((l[n] = r), (h[n] = e - r))
- }
- this.adjustOddEvenCounts(17)
- let u = 4 * e.getValue() + (r ? 0 : 2) + (n ? 0 : 1) - 1,
- d = 0,
- g = 0
- for (let t = a.length - 1; t >= 0; t--) {
- if (Jt.isNotA1left(e, r, n)) {
- let e = Jt.WEIGHTS[u][2 * t]
- g += a[t] * e
- }
- d += a[t]
- }
- let f = 0
- for (let t = l.length - 1; t >= 0; t--)
- if (Jt.isNotA1left(e, r, n)) {
- let e = Jt.WEIGHTS[u][2 * t + 1]
- f += l[t] * e
- }
- let w = g + f
- if (0 != (1 & d) || d > 13 || d < 4) throw new N()
- let A = (13 - d) / 2,
- m = Jt.SYMBOL_WIDEST[A],
- E = 9 - m,
- C = bt.getRSSvalue(a, m, !0),
- I = bt.getRSSvalue(l, E, !1),
- p = Jt.EVEN_TOTAL_SUBSET[A],
- S = Jt.GSUM[A]
- return new Rt(C * p + I + S, w)
- }
- static isNotA1left(t, e, r) {
- return !(0 == t.getValue() && e && r)
- }
- adjustOddEvenCounts(t) {
- let e = et.sum(new Int32Array(this.getOddCounts())),
- r = et.sum(new Int32Array(this.getEvenCounts())),
- n = !1,
- i = !1
- e > 13 ? (i = !0) : e < 4 && (n = !0)
- let o = !1,
- s = !1
- r > 13 ? (s = !0) : r < 4 && (o = !0)
- let a = e + r - t,
- l = 1 == (1 & e),
- c = 0 == (1 & r)
- if (1 == a)
- if (l) {
- if (c) throw new N()
- i = !0
- } else {
- if (!c) throw new N()
- s = !0
- }
- else if (-1 == a)
- if (l) {
- if (c) throw new N()
- n = !0
- } else {
- if (!c) throw new N()
- o = !0
- }
- else {
- if (0 != a) throw new N()
- if (l) {
- if (!c) throw new N()
- e < r ? ((n = !0), (s = !0)) : ((i = !0), (o = !0))
- } else if (c) throw new N()
- }
- if (n) {
- if (i) throw new N()
- Jt.increment(this.getOddCounts(), this.getOddRoundingErrors())
- }
- if ((i && Jt.decrement(this.getOddCounts(), this.getOddRoundingErrors()), o)) {
- if (s) throw new N()
- Jt.increment(this.getEvenCounts(), this.getOddRoundingErrors())
- }
- s && Jt.decrement(this.getEvenCounts(), this.getEvenRoundingErrors())
- }
- }
- ;(Jt.SYMBOL_WIDEST = [7, 5, 4, 3, 1]),
- (Jt.EVEN_TOTAL_SUBSET = [4, 20, 52, 104, 204]),
- (Jt.GSUM = [0, 348, 1388, 2948, 3988]),
- (Jt.FINDER_PATTERNS = [
- Int32Array.from([1, 8, 4, 1]),
- Int32Array.from([3, 6, 4, 1]),
- Int32Array.from([3, 4, 6, 1]),
- Int32Array.from([3, 2, 8, 1]),
- Int32Array.from([2, 6, 5, 1]),
- Int32Array.from([2, 2, 9, 1])
- ]),
- (Jt.WEIGHTS = [
- [1, 3, 9, 27, 81, 32, 96, 77],
- [20, 60, 180, 118, 143, 7, 21, 63],
- [189, 145, 13, 39, 117, 140, 209, 205],
- [193, 157, 49, 147, 19, 57, 171, 91],
- [62, 186, 136, 197, 169, 85, 44, 132],
- [185, 133, 188, 142, 4, 12, 36, 108],
- [113, 128, 173, 97, 80, 29, 87, 50],
- [150, 28, 84, 41, 123, 158, 52, 156],
- [46, 138, 203, 187, 139, 206, 196, 166],
- [76, 17, 51, 153, 37, 111, 122, 155],
- [43, 129, 176, 106, 107, 110, 119, 146],
- [16, 48, 144, 10, 30, 90, 59, 177],
- [109, 116, 137, 200, 178, 112, 125, 164],
- [70, 210, 208, 202, 184, 130, 179, 115],
- [134, 191, 151, 31, 93, 68, 204, 190],
- [148, 22, 66, 198, 172, 94, 71, 2],
- [6, 18, 54, 162, 64, 192, 154, 40],
- [120, 149, 25, 75, 14, 42, 126, 167],
- [79, 26, 78, 23, 69, 207, 199, 175],
- [103, 98, 83, 38, 114, 131, 182, 124],
- [161, 61, 183, 127, 170, 88, 53, 159],
- [55, 165, 73, 8, 24, 72, 5, 15],
- [45, 135, 194, 160, 58, 174, 100, 89]
- ]),
- (Jt.FINDER_PAT_A = 0),
- (Jt.FINDER_PAT_B = 1),
- (Jt.FINDER_PAT_C = 2),
- (Jt.FINDER_PAT_D = 3),
- (Jt.FINDER_PAT_E = 4),
- (Jt.FINDER_PAT_F = 5),
- (Jt.FINDER_PATTERN_SEQUENCES = [
- [Jt.FINDER_PAT_A, Jt.FINDER_PAT_A],
- [Jt.FINDER_PAT_A, Jt.FINDER_PAT_B, Jt.FINDER_PAT_B],
- [Jt.FINDER_PAT_A, Jt.FINDER_PAT_C, Jt.FINDER_PAT_B, Jt.FINDER_PAT_D],
- [Jt.FINDER_PAT_A, Jt.FINDER_PAT_E, Jt.FINDER_PAT_B, Jt.FINDER_PAT_D, Jt.FINDER_PAT_C],
- [Jt.FINDER_PAT_A, Jt.FINDER_PAT_E, Jt.FINDER_PAT_B, Jt.FINDER_PAT_D, Jt.FINDER_PAT_D, Jt.FINDER_PAT_F],
- [Jt.FINDER_PAT_A, Jt.FINDER_PAT_E, Jt.FINDER_PAT_B, Jt.FINDER_PAT_D, Jt.FINDER_PAT_E, Jt.FINDER_PAT_F, Jt.FINDER_PAT_F],
- [Jt.FINDER_PAT_A, Jt.FINDER_PAT_A, Jt.FINDER_PAT_B, Jt.FINDER_PAT_B, Jt.FINDER_PAT_C, Jt.FINDER_PAT_C, Jt.FINDER_PAT_D, Jt.FINDER_PAT_D],
- [Jt.FINDER_PAT_A, Jt.FINDER_PAT_A, Jt.FINDER_PAT_B, Jt.FINDER_PAT_B, Jt.FINDER_PAT_C, Jt.FINDER_PAT_C, Jt.FINDER_PAT_D, Jt.FINDER_PAT_E, Jt.FINDER_PAT_E],
- [Jt.FINDER_PAT_A, Jt.FINDER_PAT_A, Jt.FINDER_PAT_B, Jt.FINDER_PAT_B, Jt.FINDER_PAT_C, Jt.FINDER_PAT_C, Jt.FINDER_PAT_D, Jt.FINDER_PAT_E, Jt.FINDER_PAT_F, Jt.FINDER_PAT_F],
- [
- Jt.FINDER_PAT_A,
- Jt.FINDER_PAT_A,
- Jt.FINDER_PAT_B,
- Jt.FINDER_PAT_B,
- Jt.FINDER_PAT_C,
- Jt.FINDER_PAT_D,
- Jt.FINDER_PAT_D,
- Jt.FINDER_PAT_E,
- Jt.FINDER_PAT_E,
- Jt.FINDER_PAT_F,
- Jt.FINDER_PAT_F
- ]
- ]),
- (Jt.MAX_PAIRS = 11)
- class $t extends Rt {
- constructor(t, e, r) {
- super(t, e), (this.count = 0), (this.finderPattern = r)
- }
- getFinderPattern() {
- return this.finderPattern
- }
- getCount() {
- return this.count
- }
- incrementCount() {
- this.count++
- }
- }
- class te extends Dt {
- constructor() {
- super(...arguments), (this.possibleLeftPairs = []), (this.possibleRightPairs = [])
- }
- decodeRow(t, e, r) {
- const n = this.decodePair(e, !1, t, r)
- te.addOrTally(this.possibleLeftPairs, n), e.reverse()
- let i = this.decodePair(e, !0, t, r)
- te.addOrTally(this.possibleRightPairs, i), e.reverse()
- for (let t of this.possibleLeftPairs)
- if (t.getCount() > 1) for (let e of this.possibleRightPairs) if (e.getCount() > 1 && te.checkChecksum(t, e)) return te.constructResult(t, e)
- throw new N()
- }
- static addOrTally(t, e) {
- if (null == e) return
- let r = !1
- for (let n of t)
- if (n.getValue() === e.getValue()) {
- n.incrementCount(), (r = !0)
- break
- }
- r || t.push(e)
- }
- reset() {
- ;(this.possibleLeftPairs.length = 0), (this.possibleRightPairs.length = 0)
- }
- static constructResult(t, e) {
- let r = 4537077 * t.getValue() + e.getValue(),
- n = new String(r).toString(),
- i = new T()
- for (let t = 13 - n.length; t > 0; t--) i.append('0')
- i.append(n)
- let o = 0
- for (let t = 0; t < 13; t++) {
- let e = i.charAt(t).charCodeAt(0) - '0'.charCodeAt(0)
- o += 0 == (1 & t) ? 3 * e : e
- }
- ;(o = 10 - (o % 10)), 10 === o && (o = 0), i.append(o.toString())
- let s = t.getFinderPattern().getResultPoints(),
- a = e.getFinderPattern().getResultPoints()
- return new F(i.toString(), null, 0, [s[0], s[1], a[0], a[1]], k.RSS_14, new Date().getTime())
- }
- static checkChecksum(t, e) {
- let r = (t.getChecksumPortion() + 16 * e.getChecksumPortion()) % 79,
- n = 9 * t.getFinderPattern().getValue() + e.getFinderPattern().getValue()
- return n > 72 && n--, n > 8 && n--, r === n
- }
- decodePair(t, e, r, n) {
- try {
- let i = this.findFinderPattern(t, e),
- o = this.parseFoundFinderPattern(t, r, e, i),
- s = null == n ? null : n.get(E.NEED_RESULT_POINT_CALLBACK)
- if (null != s) {
- let n = (i[0] + i[1]) / 2
- e && (n = t.getSize() - 1 - n), s.foundPossibleResultPoint(new nt(n, r))
- }
- let a = this.decodeDataCharacter(t, o, !0),
- l = this.decodeDataCharacter(t, o, !1)
- return new $t(1597 * a.getValue() + l.getValue(), a.getChecksumPortion() + 4 * l.getChecksumPortion(), o)
- } catch (t) {
- return null
- }
- }
- decodeDataCharacter(t, e, r) {
- let n = this.getDataCharacterCounters()
- for (let t = 0; t < n.length; t++) n[t] = 0
- if (r) ft.recordPatternInReverse(t, e.getStartEnd()[0], n)
- else {
- ft.recordPattern(t, e.getStartEnd()[1] + 1, n)
- for (let t = 0, e = n.length - 1; t < e; t++, e--) {
- let r = n[t]
- ;(n[t] = n[e]), (n[e] = r)
- }
- }
- let i = r ? 16 : 15,
- o = et.sum(new Int32Array(n)) / i,
- s = this.getOddCounts(),
- a = this.getEvenCounts(),
- l = this.getOddRoundingErrors(),
- c = this.getEvenRoundingErrors()
- for (let t = 0; t < n.length; t++) {
- let e = n[t] / o,
- r = Math.floor(e + 0.5)
- r < 1 ? (r = 1) : r > 8 && (r = 8)
- let i = Math.floor(t / 2)
- 0 == (1 & t) ? ((s[i] = r), (l[i] = e - r)) : ((a[i] = r), (c[i] = e - r))
- }
- this.adjustOddEvenCounts(r, i)
- let h = 0,
- u = 0
- for (let t = s.length - 1; t >= 0; t--) (u *= 9), (u += s[t]), (h += s[t])
- let d = 0,
- g = 0
- for (let t = a.length - 1; t >= 0; t--) (d *= 9), (d += a[t]), (g += a[t])
- let f = u + 3 * d
- if (r) {
- if (0 != (1 & h) || h > 12 || h < 4) throw new N()
- let t = (12 - h) / 2,
- e = te.OUTSIDE_ODD_WIDEST[t],
- r = 9 - e,
- n = bt.getRSSvalue(s, e, !1),
- i = bt.getRSSvalue(a, r, !0),
- o = te.OUTSIDE_EVEN_TOTAL_SUBSET[t],
- l = te.OUTSIDE_GSUM[t]
- return new Rt(n * o + i + l, f)
- }
- {
- if (0 != (1 & g) || g > 10 || g < 4) throw new N()
- let t = (10 - g) / 2,
- e = te.INSIDE_ODD_WIDEST[t],
- r = 9 - e,
- n = bt.getRSSvalue(s, e, !0),
- i = bt.getRSSvalue(a, r, !1),
- o = te.INSIDE_ODD_TOTAL_SUBSET[t],
- l = te.INSIDE_GSUM[t]
- return new Rt(i * o + n + l, f)
- }
- }
- findFinderPattern(t, e) {
- let r = this.getDecodeFinderCounters()
- ;(r[0] = 0), (r[1] = 0), (r[2] = 0), (r[3] = 0)
- let n = t.getSize(),
- i = !1,
- o = 0
- for (; o < n && ((i = !t.get(o)), e !== i); ) o++
- let s = 0,
- a = o
- for (let e = o; e < n; e++)
- if (t.get(e) !== i) r[s]++
- else {
- if (3 === s) {
- if (Dt.isFinderPattern(r)) return [a, e]
- ;(a += r[0] + r[1]), (r[0] = r[2]), (r[1] = r[3]), (r[2] = 0), (r[3] = 0), s--
- } else s++
- ;(r[s] = 1), (i = !i)
- }
- throw new N()
- }
- parseFoundFinderPattern(t, e, r, n) {
- let i = t.get(n[0]),
- o = n[0] - 1
- for (; o >= 0 && i !== t.get(o); ) o--
- o++
- const s = n[0] - o,
- a = this.getDecodeFinderCounters(),
- l = new Int32Array(a.length)
- u.arraycopy(a, 0, l, 1, a.length - 1), (l[0] = s)
- const c = this.parseFinderValue(l, te.FINDER_PATTERNS)
- let h = o,
- d = n[1]
- return r && ((h = t.getSize() - 1 - h), (d = t.getSize() - 1 - d)), new Ot(c, [o, n[1]], h, d, e)
- }
- adjustOddEvenCounts(t, e) {
- let r = et.sum(new Int32Array(this.getOddCounts())),
- n = et.sum(new Int32Array(this.getEvenCounts())),
- i = !1,
- o = !1,
- s = !1,
- a = !1
- t ? (r > 12 ? (o = !0) : r < 4 && (i = !0), n > 12 ? (a = !0) : n < 4 && (s = !0)) : (r > 11 ? (o = !0) : r < 5 && (i = !0), n > 10 ? (a = !0) : n < 4 && (s = !0))
- let l = r + n - e,
- c = (1 & r) == (t ? 1 : 0),
- h = 1 == (1 & n)
- if (1 === l)
- if (c) {
- if (h) throw new N()
- o = !0
- } else {
- if (!h) throw new N()
- a = !0
- }
- else if (-1 === l)
- if (c) {
- if (h) throw new N()
- i = !0
- } else {
- if (!h) throw new N()
- s = !0
- }
- else {
- if (0 !== l) throw new N()
- if (c) {
- if (!h) throw new N()
- r < n ? ((i = !0), (a = !0)) : ((o = !0), (s = !0))
- } else if (h) throw new N()
- }
- if (i) {
- if (o) throw new N()
- Dt.increment(this.getOddCounts(), this.getOddRoundingErrors())
- }
- if ((o && Dt.decrement(this.getOddCounts(), this.getOddRoundingErrors()), s)) {
- if (a) throw new N()
- Dt.increment(this.getEvenCounts(), this.getOddRoundingErrors())
- }
- a && Dt.decrement(this.getEvenCounts(), this.getEvenRoundingErrors())
- }
- }
- ;(te.OUTSIDE_EVEN_TOTAL_SUBSET = [1, 10, 34, 70, 126]),
- (te.INSIDE_ODD_TOTAL_SUBSET = [4, 20, 48, 81]),
- (te.OUTSIDE_GSUM = [0, 161, 961, 2015, 2715]),
- (te.INSIDE_GSUM = [0, 336, 1036, 1516]),
- (te.OUTSIDE_ODD_WIDEST = [8, 6, 4, 3, 1]),
- (te.INSIDE_ODD_WIDEST = [2, 4, 6, 8]),
- (te.FINDER_PATTERNS = [
- Int32Array.from([3, 8, 2, 1]),
- Int32Array.from([3, 5, 5, 1]),
- Int32Array.from([3, 3, 7, 1]),
- Int32Array.from([3, 1, 9, 1]),
- Int32Array.from([2, 7, 4, 1]),
- Int32Array.from([2, 5, 6, 1]),
- Int32Array.from([2, 3, 8, 1]),
- Int32Array.from([1, 5, 7, 1]),
- Int32Array.from([1, 3, 9, 1])
- ])
- class ee extends ft {
- constructor(t, e) {
- super(), (this.readers = []), (this.verbose = !0 === e)
- const r = t ? t.get(E.POSSIBLE_FORMATS) : null,
- n = t && void 0 !== t.get(E.ASSUME_CODE_39_CHECK_DIGIT)
- r &&
- ((r.includes(k.EAN_13) || r.includes(k.UPC_A) || r.includes(k.EAN_8) || r.includes(k.UPC_E)) && this.readers.push(new Mt(t)),
- r.includes(k.CODE_39) && this.readers.push(new At(n)),
- r.includes(k.CODE_128) && this.readers.push(new wt()),
- r.includes(k.ITF) && this.readers.push(new mt()),
- r.includes(k.RSS_14) && this.readers.push(new te()),
- r.includes(k.RSS_EXPANDED) && this.readers.push(new Jt(this.verbose))),
- 0 === this.readers.length &&
- (this.readers.push(new Mt(t)),
- this.readers.push(new At()),
- this.readers.push(new Mt(t)),
- this.readers.push(new wt()),
- this.readers.push(new mt()),
- this.readers.push(new te()),
- this.readers.push(new Jt(this.verbose)))
- }
- decodeRow(t, e, r) {
- for (let n = 0; n < this.readers.length; n++)
- try {
- return this.readers[n].decodeRow(t, e, r)
- } catch (t) {}
- throw new N()
- }
- reset() {
- this.readers.forEach(t => t.reset())
- }
- }
- class re {
- constructor(t, e, r) {
- ;(this.ecCodewords = t), (this.ecBlocks = [e]), r && this.ecBlocks.push(r)
- }
- getECCodewords() {
- return this.ecCodewords
- }
- getECBlocks() {
- return this.ecBlocks
- }
- }
- class ne {
- constructor(t, e) {
- ;(this.count = t), (this.dataCodewords = e)
- }
- getCount() {
- return this.count
- }
- getDataCodewords() {
- return this.dataCodewords
- }
- }
- class ie {
- constructor(t, e, r, n, i, o) {
- ;(this.versionNumber = t), (this.symbolSizeRows = e), (this.symbolSizeColumns = r), (this.dataRegionSizeRows = n), (this.dataRegionSizeColumns = i), (this.ecBlocks = o)
- let s = 0
- const a = o.getECCodewords(),
- l = o.getECBlocks()
- for (let t of l) s += t.getCount() * (t.getDataCodewords() + a)
- this.totalCodewords = s
- }
- getVersionNumber() {
- return this.versionNumber
- }
- getSymbolSizeRows() {
- return this.symbolSizeRows
- }
- getSymbolSizeColumns() {
- return this.symbolSizeColumns
- }
- getDataRegionSizeRows() {
- return this.dataRegionSizeRows
- }
- getDataRegionSizeColumns() {
- return this.dataRegionSizeColumns
- }
- getTotalCodewords() {
- return this.totalCodewords
- }
- getECBlocks() {
- return this.ecBlocks
- }
- static getVersionForDimensions(t, e) {
- if (0 != (1 & t) || 0 != (1 & e)) throw new C()
- for (let r of ie.VERSIONS) if (r.symbolSizeRows === t && r.symbolSizeColumns === e) return r
- throw new C()
- }
- toString() {
- return '' + this.versionNumber
- }
- static buildVersions() {
- return [
- new ie(1, 10, 10, 8, 8, new re(5, new ne(1, 3))),
- new ie(2, 12, 12, 10, 10, new re(7, new ne(1, 5))),
- new ie(3, 14, 14, 12, 12, new re(10, new ne(1, 8))),
- new ie(4, 16, 16, 14, 14, new re(12, new ne(1, 12))),
- new ie(5, 18, 18, 16, 16, new re(14, new ne(1, 18))),
- new ie(6, 20, 20, 18, 18, new re(18, new ne(1, 22))),
- new ie(7, 22, 22, 20, 20, new re(20, new ne(1, 30))),
- new ie(8, 24, 24, 22, 22, new re(24, new ne(1, 36))),
- new ie(9, 26, 26, 24, 24, new re(28, new ne(1, 44))),
- new ie(10, 32, 32, 14, 14, new re(36, new ne(1, 62))),
- new ie(11, 36, 36, 16, 16, new re(42, new ne(1, 86))),
- new ie(12, 40, 40, 18, 18, new re(48, new ne(1, 114))),
- new ie(13, 44, 44, 20, 20, new re(56, new ne(1, 144))),
- new ie(14, 48, 48, 22, 22, new re(68, new ne(1, 174))),
- new ie(15, 52, 52, 24, 24, new re(42, new ne(2, 102))),
- new ie(16, 64, 64, 14, 14, new re(56, new ne(2, 140))),
- new ie(17, 72, 72, 16, 16, new re(36, new ne(4, 92))),
- new ie(18, 80, 80, 18, 18, new re(48, new ne(4, 114))),
- new ie(19, 88, 88, 20, 20, new re(56, new ne(4, 144))),
- new ie(20, 96, 96, 22, 22, new re(68, new ne(4, 174))),
- new ie(21, 104, 104, 24, 24, new re(56, new ne(6, 136))),
- new ie(22, 120, 120, 18, 18, new re(68, new ne(6, 175))),
- new ie(23, 132, 132, 20, 20, new re(62, new ne(8, 163))),
- new ie(24, 144, 144, 22, 22, new re(62, new ne(8, 156), new ne(2, 155))),
- new ie(25, 8, 18, 6, 16, new re(7, new ne(1, 5))),
- new ie(26, 8, 32, 6, 14, new re(11, new ne(1, 10))),
- new ie(27, 12, 26, 10, 24, new re(14, new ne(1, 16))),
- new ie(28, 12, 36, 10, 16, new re(18, new ne(1, 22))),
- new ie(29, 16, 36, 14, 16, new re(24, new ne(1, 32))),
- new ie(30, 16, 48, 14, 22, new re(28, new ne(1, 49)))
- ]
- }
- }
- ie.VERSIONS = ie.buildVersions()
- class oe {
- constructor(t) {
- const e = t.getHeight()
- if (e < 8 || e > 144 || 0 != (1 & e)) throw new C()
- ;(this.version = oe.readVersion(t)),
- (this.mappingBitMatrix = this.extractDataRegion(t)),
- (this.readMappingMatrix = new y(this.mappingBitMatrix.getWidth(), this.mappingBitMatrix.getHeight()))
- }
- getVersion() {
- return this.version
- }
- static readVersion(t) {
- const e = t.getHeight(),
- r = t.getWidth()
- return ie.getVersionForDimensions(e, r)
- }
- readCodewords() {
- const t = new Int8Array(this.version.getTotalCodewords())
- let e = 0,
- r = 4,
- n = 0
- const i = this.mappingBitMatrix.getHeight(),
- o = this.mappingBitMatrix.getWidth()
- let s = !1,
- a = !1,
- l = !1,
- c = !1
- do {
- if (r !== i || 0 !== n || s)
- if (r !== i - 2 || 0 !== n || 0 == (3 & o) || a)
- if (r !== i + 4 || 2 !== n || 0 != (7 & o) || l)
- if (r !== i - 2 || 0 !== n || 4 != (7 & o) || c) {
- do {
- r < i && n >= 0 && !this.readMappingMatrix.get(n, r) && (t[e++] = 255 & this.readUtah(r, n, i, o)), (r -= 2), (n += 2)
- } while (r >= 0 && n < o)
- ;(r += 1), (n += 3)
- do {
- r >= 0 && n < o && !this.readMappingMatrix.get(n, r) && (t[e++] = 255 & this.readUtah(r, n, i, o)), (r += 2), (n -= 2)
- } while (r < i && n >= 0)
- ;(r += 3), (n += 1)
- } else (t[e++] = 255 & this.readCorner4(i, o)), (r -= 2), (n += 2), (c = !0)
- else (t[e++] = 255 & this.readCorner3(i, o)), (r -= 2), (n += 2), (l = !0)
- else (t[e++] = 255 & this.readCorner2(i, o)), (r -= 2), (n += 2), (a = !0)
- else (t[e++] = 255 & this.readCorner1(i, o)), (r -= 2), (n += 2), (s = !0)
- } while (r < i || n < o)
- if (e !== this.version.getTotalCodewords()) throw new C()
- return t
- }
- readModule(t, e, r, n) {
- return t < 0 && ((t += r), (e += 4 - ((r + 4) & 7))), e < 0 && ((e += n), (t += 4 - ((n + 4) & 7))), this.readMappingMatrix.set(e, t), this.mappingBitMatrix.get(e, t)
- }
- readUtah(t, e, r, n) {
- let i = 0
- return (
- this.readModule(t - 2, e - 2, r, n) && (i |= 1),
- (i <<= 1),
- this.readModule(t - 2, e - 1, r, n) && (i |= 1),
- (i <<= 1),
- this.readModule(t - 1, e - 2, r, n) && (i |= 1),
- (i <<= 1),
- this.readModule(t - 1, e - 1, r, n) && (i |= 1),
- (i <<= 1),
- this.readModule(t - 1, e, r, n) && (i |= 1),
- (i <<= 1),
- this.readModule(t, e - 2, r, n) && (i |= 1),
- (i <<= 1),
- this.readModule(t, e - 1, r, n) && (i |= 1),
- (i <<= 1),
- this.readModule(t, e, r, n) && (i |= 1),
- i
- )
- }
- readCorner1(t, e) {
- let r = 0
- return (
- this.readModule(t - 1, 0, t, e) && (r |= 1),
- (r <<= 1),
- this.readModule(t - 1, 1, t, e) && (r |= 1),
- (r <<= 1),
- this.readModule(t - 1, 2, t, e) && (r |= 1),
- (r <<= 1),
- this.readModule(0, e - 2, t, e) && (r |= 1),
- (r <<= 1),
- this.readModule(0, e - 1, t, e) && (r |= 1),
- (r <<= 1),
- this.readModule(1, e - 1, t, e) && (r |= 1),
- (r <<= 1),
- this.readModule(2, e - 1, t, e) && (r |= 1),
- (r <<= 1),
- this.readModule(3, e - 1, t, e) && (r |= 1),
- r
- )
- }
- readCorner2(t, e) {
- let r = 0
- return (
- this.readModule(t - 3, 0, t, e) && (r |= 1),
- (r <<= 1),
- this.readModule(t - 2, 0, t, e) && (r |= 1),
- (r <<= 1),
- this.readModule(t - 1, 0, t, e) && (r |= 1),
- (r <<= 1),
- this.readModule(0, e - 4, t, e) && (r |= 1),
- (r <<= 1),
- this.readModule(0, e - 3, t, e) && (r |= 1),
- (r <<= 1),
- this.readModule(0, e - 2, t, e) && (r |= 1),
- (r <<= 1),
- this.readModule(0, e - 1, t, e) && (r |= 1),
- (r <<= 1),
- this.readModule(1, e - 1, t, e) && (r |= 1),
- r
- )
- }
- readCorner3(t, e) {
- let r = 0
- return (
- this.readModule(t - 1, 0, t, e) && (r |= 1),
- (r <<= 1),
- this.readModule(t - 1, e - 1, t, e) && (r |= 1),
- (r <<= 1),
- this.readModule(0, e - 3, t, e) && (r |= 1),
- (r <<= 1),
- this.readModule(0, e - 2, t, e) && (r |= 1),
- (r <<= 1),
- this.readModule(0, e - 1, t, e) && (r |= 1),
- (r <<= 1),
- this.readModule(1, e - 3, t, e) && (r |= 1),
- (r <<= 1),
- this.readModule(1, e - 2, t, e) && (r |= 1),
- (r <<= 1),
- this.readModule(1, e - 1, t, e) && (r |= 1),
- r
- )
- }
- readCorner4(t, e) {
- let r = 0
- return (
- this.readModule(t - 3, 0, t, e) && (r |= 1),
- (r <<= 1),
- this.readModule(t - 2, 0, t, e) && (r |= 1),
- (r <<= 1),
- this.readModule(t - 1, 0, t, e) && (r |= 1),
- (r <<= 1),
- this.readModule(0, e - 2, t, e) && (r |= 1),
- (r <<= 1),
- this.readModule(0, e - 1, t, e) && (r |= 1),
- (r <<= 1),
- this.readModule(1, e - 1, t, e) && (r |= 1),
- (r <<= 1),
- this.readModule(2, e - 1, t, e) && (r |= 1),
- (r <<= 1),
- this.readModule(3, e - 1, t, e) && (r |= 1),
- r
- )
- }
- extractDataRegion(t) {
- const e = this.version.getSymbolSizeRows(),
- r = this.version.getSymbolSizeColumns()
- if (t.getHeight() !== e) throw new a('Dimension of bitMatrix must match the version size')
- const n = this.version.getDataRegionSizeRows(),
- i = this.version.getDataRegionSizeColumns(),
- o = (e / n) | 0,
- s = (r / i) | 0,
- l = new y(s * i, o * n)
- for (let e = 0; e < o; ++e) {
- const r = e * n
- for (let o = 0; o < s; ++o) {
- const s = o * i
- for (let a = 0; a < n; ++a) {
- const c = e * (n + 2) + 1 + a,
- h = r + a
- for (let e = 0; e < i; ++e) {
- const r = o * (i + 2) + 1 + e
- if (t.get(r, c)) {
- const t = s + e
- l.set(t, h)
- }
- }
- }
- }
- }
- return l
- }
- }
- class se {
- constructor(t, e) {
- ;(this.numDataCodewords = t), (this.codewords = e)
- }
- static getDataBlocks(t, e) {
- const r = e.getECBlocks()
- let n = 0
- const i = r.getECBlocks()
- for (let t of i) n += t.getCount()
- const o = new Array(n)
- let s = 0
- for (let t of i)
- for (let e = 0; e < t.getCount(); e++) {
- const e = t.getDataCodewords(),
- n = r.getECCodewords() + e
- o[s++] = new se(e, new Uint8Array(n))
- }
- const l = o[0].codewords.length - r.getECCodewords(),
- c = l - 1
- let h = 0
- for (let e = 0; e < c; e++) for (let r = 0; r < s; r++) o[r].codewords[e] = t[h++]
- const u = 24 === e.getVersionNumber(),
- d = u ? 8 : s
- for (let e = 0; e < d; e++) o[e].codewords[l - 1] = t[h++]
- const g = o[0].codewords.length
- for (let e = l; e < g; e++)
- for (let r = 0; r < s; r++) {
- const n = u ? (r + 8) % s : r,
- i = u && n > 7 ? e - 1 : e
- o[n].codewords[i] = t[h++]
- }
- if (h !== t.length) throw new a()
- return o
- }
- getNumDataCodewords() {
- return this.numDataCodewords
- }
- getCodewords() {
- return this.codewords
- }
- }
- class ae {
- constructor(t) {
- ;(this.bytes = t), (this.byteOffset = 0), (this.bitOffset = 0)
- }
- getBitOffset() {
- return this.bitOffset
- }
- getByteOffset() {
- return this.byteOffset
- }
- readBits(t) {
- if (t < 1 || t > 32 || t > this.available()) throw new a('' + t)
- let e = 0,
- r = this.bitOffset,
- n = this.byteOffset
- const i = this.bytes
- if (r > 0) {
- const o = 8 - r,
- s = t < o ? t : o,
- a = o - s,
- l = (255 >> (8 - s)) << a
- ;(e = (i[n] & l) >> a), (t -= s), (r += s), 8 === r && ((r = 0), n++)
- }
- if (t > 0) {
- for (; t >= 8; ) (e = (e << 8) | (255 & i[n])), n++, (t -= 8)
- if (t > 0) {
- const o = 8 - t,
- s = (255 >> o) << o
- ;(e = (e << t) | ((i[n] & s) >> o)), (r += t)
- }
- }
- return (this.bitOffset = r), (this.byteOffset = n), e
- }
- available() {
- return 8 * (this.bytes.length - this.byteOffset) - this.bitOffset
- }
- }
- !(function(t) {
- ;(t[(t.PAD_ENCODE = 0)] = 'PAD_ENCODE'),
- (t[(t.ASCII_ENCODE = 1)] = 'ASCII_ENCODE'),
- (t[(t.C40_ENCODE = 2)] = 'C40_ENCODE'),
- (t[(t.TEXT_ENCODE = 3)] = 'TEXT_ENCODE'),
- (t[(t.ANSIX12_ENCODE = 4)] = 'ANSIX12_ENCODE'),
- (t[(t.EDIFACT_ENCODE = 5)] = 'EDIFACT_ENCODE'),
- (t[(t.BASE256_ENCODE = 6)] = 'BASE256_ENCODE')
- })(H || (H = {}))
- class le {
- static decode(t) {
- const e = new ae(t),
- r = new T(),
- n = new T(),
- i = new Array()
- let o = H.ASCII_ENCODE
- do {
- if (o === H.ASCII_ENCODE) o = this.decodeAsciiSegment(e, r, n)
- else {
- switch (o) {
- case H.C40_ENCODE:
- this.decodeC40Segment(e, r)
- break
- case H.TEXT_ENCODE:
- this.decodeTextSegment(e, r)
- break
- case H.ANSIX12_ENCODE:
- this.decodeAnsiX12Segment(e, r)
- break
- case H.EDIFACT_ENCODE:
- this.decodeEdifactSegment(e, r)
- break
- case H.BASE256_ENCODE:
- this.decodeBase256Segment(e, r, i)
- break
- default:
- throw new C()
- }
- o = H.ASCII_ENCODE
- }
- } while (o !== H.PAD_ENCODE && e.available() > 0)
- return n.length() > 0 && r.append(n.toString()), new W(t, r.toString(), 0 === i.length ? null : i, null)
- }
- static decodeAsciiSegment(t, e, r) {
- let n = !1
- do {
- let i = t.readBits(8)
- if (0 === i) throw new C()
- if (i <= 128) return n && (i += 128), e.append(String.fromCharCode(i - 1)), H.ASCII_ENCODE
- if (129 === i) return H.PAD_ENCODE
- if (i <= 229) {
- const t = i - 130
- t < 10 && e.append('0'), e.append('' + t)
- } else
- switch (i) {
- case 230:
- return H.C40_ENCODE
- case 231:
- return H.BASE256_ENCODE
- case 232:
- e.append(String.fromCharCode(29))
- break
- case 233:
- case 234:
- break
- case 235:
- n = !0
- break
- case 236:
- e.append('[)>05'), r.insert(0, '')
- break
- case 237:
- e.append('[)>06'), r.insert(0, '')
- break
- case 238:
- return H.ANSIX12_ENCODE
- case 239:
- return H.TEXT_ENCODE
- case 240:
- return H.EDIFACT_ENCODE
- case 241:
- break
- default:
- if (254 !== i || 0 !== t.available()) throw new C()
- }
- } while (t.available() > 0)
- return H.ASCII_ENCODE
- }
- static decodeC40Segment(t, e) {
- let r = !1
- const n = []
- let i = 0
- do {
- if (8 === t.available()) return
- const o = t.readBits(8)
- if (254 === o) return
- this.parseTwoBytes(o, t.readBits(8), n)
- for (let t = 0; t < 3; t++) {
- const o = n[t]
- switch (i) {
- case 0:
- if (o < 3) i = o + 1
- else {
- if (!(o < this.C40_BASIC_SET_CHARS.length)) throw new C()
- {
- const t = this.C40_BASIC_SET_CHARS[o]
- r ? (e.append(String.fromCharCode(t.charCodeAt(0) + 128)), (r = !1)) : e.append(t)
- }
- }
- break
- case 1:
- r ? (e.append(String.fromCharCode(o + 128)), (r = !1)) : e.append(String.fromCharCode(o)), (i = 0)
- break
- case 2:
- if (o < this.C40_SHIFT2_SET_CHARS.length) {
- const t = this.C40_SHIFT2_SET_CHARS[o]
- r ? (e.append(String.fromCharCode(t.charCodeAt(0) + 128)), (r = !1)) : e.append(t)
- } else
- switch (o) {
- case 27:
- e.append(String.fromCharCode(29))
- break
- case 30:
- r = !0
- break
- default:
- throw new C()
- }
- i = 0
- break
- case 3:
- r ? (e.append(String.fromCharCode(o + 224)), (r = !1)) : e.append(String.fromCharCode(o + 96)), (i = 0)
- break
- default:
- throw new C()
- }
- }
- } while (t.available() > 0)
- }
- static decodeTextSegment(t, e) {
- let r = !1,
- n = [],
- i = 0
- do {
- if (8 === t.available()) return
- const o = t.readBits(8)
- if (254 === o) return
- this.parseTwoBytes(o, t.readBits(8), n)
- for (let t = 0; t < 3; t++) {
- const o = n[t]
- switch (i) {
- case 0:
- if (o < 3) i = o + 1
- else {
- if (!(o < this.TEXT_BASIC_SET_CHARS.length)) throw new C()
- {
- const t = this.TEXT_BASIC_SET_CHARS[o]
- r ? (e.append(String.fromCharCode(t.charCodeAt(0) + 128)), (r = !1)) : e.append(t)
- }
- }
- break
- case 1:
- r ? (e.append(String.fromCharCode(o + 128)), (r = !1)) : e.append(String.fromCharCode(o)), (i = 0)
- break
- case 2:
- if (o < this.TEXT_SHIFT2_SET_CHARS.length) {
- const t = this.TEXT_SHIFT2_SET_CHARS[o]
- r ? (e.append(String.fromCharCode(t.charCodeAt(0) + 128)), (r = !1)) : e.append(t)
- } else
- switch (o) {
- case 27:
- e.append(String.fromCharCode(29))
- break
- case 30:
- r = !0
- break
- default:
- throw new C()
- }
- i = 0
- break
- case 3:
- if (!(o < this.TEXT_SHIFT3_SET_CHARS.length)) throw new C()
- {
- const t = this.TEXT_SHIFT3_SET_CHARS[o]
- r ? (e.append(String.fromCharCode(t.charCodeAt(0) + 128)), (r = !1)) : e.append(t), (i = 0)
- }
- break
- default:
- throw new C()
- }
- }
- } while (t.available() > 0)
- }
- static decodeAnsiX12Segment(t, e) {
- const r = []
- do {
- if (8 === t.available()) return
- const n = t.readBits(8)
- if (254 === n) return
- this.parseTwoBytes(n, t.readBits(8), r)
- for (let t = 0; t < 3; t++) {
- const n = r[t]
- switch (n) {
- case 0:
- e.append('\r')
- break
- case 1:
- e.append('*')
- break
- case 2:
- e.append('>')
- break
- case 3:
- e.append(' ')
- break
- default:
- if (n < 14) e.append(String.fromCharCode(n + 44))
- else {
- if (!(n < 40)) throw new C()
- e.append(String.fromCharCode(n + 51))
- }
- }
- }
- } while (t.available() > 0)
- }
- static parseTwoBytes(t, e, r) {
- let n = (t << 8) + e - 1,
- i = Math.floor(n / 1600)
- ;(r[0] = i), (n -= 1600 * i), (i = Math.floor(n / 40)), (r[1] = i), (r[2] = n - 40 * i)
- }
- static decodeEdifactSegment(t, e) {
- do {
- if (t.available() <= 16) return
- for (let r = 0; r < 4; r++) {
- let r = t.readBits(6)
- if (31 === r) {
- const e = 8 - t.getBitOffset()
- return void (8 !== e && t.readBits(e))
- }
- 0 == (32 & r) && (r |= 64), e.append(String.fromCharCode(r))
- }
- } while (t.available() > 0)
- }
- static decodeBase256Segment(t, e, r) {
- let n = 1 + t.getByteOffset()
- const i = this.unrandomize255State(t.readBits(8), n++)
- let o
- if (((o = 0 === i ? (t.available() / 8) | 0 : i < 250 ? i : 250 * (i - 249) + this.unrandomize255State(t.readBits(8), n++)), o < 0)) throw new C()
- const s = new Uint8Array(o)
- for (let e = 0; e < o; e++) {
- if (t.available() < 8) throw new C()
- s[e] = this.unrandomize255State(t.readBits(8), n++)
- }
- r.push(s)
- try {
- e.append(S.decode(s, _.ISO88591))
- } catch (t) {
- throw new J('Platform does not support required encoding: ' + t.message)
- }
- }
- static unrandomize255State(t, e) {
- const r = t - (((149 * e) % 255) + 1)
- return r >= 0 ? r : r + 256
- }
- }
- ;(le.C40_BASIC_SET_CHARS = [
- '*',
- '*',
- '*',
- ' ',
- '0',
- '1',
- '2',
- '3',
- '4',
- '5',
- '6',
- '7',
- '8',
- '9',
- 'A',
- 'B',
- 'C',
- 'D',
- 'E',
- 'F',
- 'G',
- 'H',
- 'I',
- 'J',
- 'K',
- 'L',
- 'M',
- 'N',
- 'O',
- 'P',
- 'Q',
- 'R',
- 'S',
- 'T',
- 'U',
- 'V',
- 'W',
- 'X',
- 'Y',
- 'Z'
- ]),
- (le.C40_SHIFT2_SET_CHARS = ['!', '"', '#', '$', '%', '&', "'", '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '@', '[', '\\', ']', '^', '_']),
- (le.TEXT_BASIC_SET_CHARS = [
- '*',
- '*',
- '*',
- ' ',
- '0',
- '1',
- '2',
- '3',
- '4',
- '5',
- '6',
- '7',
- '8',
- '9',
- 'a',
- 'b',
- 'c',
- 'd',
- 'e',
- 'f',
- 'g',
- 'h',
- 'i',
- 'j',
- 'k',
- 'l',
- 'm',
- 'n',
- 'o',
- 'p',
- 'q',
- 'r',
- 's',
- 't',
- 'u',
- 'v',
- 'w',
- 'x',
- 'y',
- 'z'
- ]),
- (le.TEXT_SHIFT2_SET_CHARS = le.C40_SHIFT2_SET_CHARS),
- (le.TEXT_SHIFT3_SET_CHARS = [
- '`',
- 'A',
- 'B',
- 'C',
- 'D',
- 'E',
- 'F',
- 'G',
- 'H',
- 'I',
- 'J',
- 'K',
- 'L',
- 'M',
- 'N',
- 'O',
- 'P',
- 'Q',
- 'R',
- 'S',
- 'T',
- 'U',
- 'V',
- 'W',
- 'X',
- 'Y',
- 'Z',
- '{',
- '|',
- '}',
- '~',
- String.fromCharCode(127)
- ])
- class ce {
- constructor() {
- this.rsDecoder = new $(K.DATA_MATRIX_FIELD_256)
- }
- decode(t) {
- const e = new oe(t),
- r = e.getVersion(),
- n = e.readCodewords(),
- i = se.getDataBlocks(n, r)
- let o = 0
- for (let t of i) o += t.getNumDataCodewords()
- const s = new Uint8Array(o),
- a = i.length
- for (let t = 0; t < a; t++) {
- const e = i[t],
- r = e.getCodewords(),
- n = e.getNumDataCodewords()
- this.correctErrors(r, n)
- for (let e = 0; e < n; e++) s[e * a + t] = r[e]
- }
- return le.decode(s)
- }
- correctErrors(t, e) {
- const r = new Int32Array(t)
- try {
- this.rsDecoder.decode(r, t.length - e)
- } catch (t) {
- throw new c()
- }
- for (let n = 0; n < e; n++) t[n] = r[n]
- }
- }
- class he {
- constructor(t) {
- ;(this.image = t), (this.rectangleDetector = new st(this.image))
- }
- detect() {
- const t = this.rectangleDetector.detect()
- let e = this.detectSolid1(t)
- if (((e = this.detectSolid2(e)), (e[3] = this.correctTopRight(e)), !e[3])) throw new N()
- e = this.shiftToModuleCenter(e)
- const r = e[0],
- n = e[1],
- i = e[2],
- o = e[3]
- let s = this.transitionsBetween(r, o) + 1,
- a = this.transitionsBetween(i, o) + 1
- 1 == (1 & s) && (s += 1), 1 == (1 & a) && (a += 1), 4 * s < 7 * a && 4 * a < 7 * s && (s = a = Math.max(s, a))
- let l = he.sampleGrid(this.image, r, n, i, o, s, a)
- return new it(l, [r, n, i, o])
- }
- static shiftPoint(t, e, r) {
- let n = (e.getX() - t.getX()) / (r + 1),
- i = (e.getY() - t.getY()) / (r + 1)
- return new nt(t.getX() + n, t.getY() + i)
- }
- static moveAway(t, e, r) {
- let n = t.getX(),
- i = t.getY()
- return n < e ? (n -= 1) : (n += 1), i < r ? (i -= 1) : (i += 1), new nt(n, i)
- }
- detectSolid1(t) {
- let e = t[0],
- r = t[1],
- n = t[3],
- i = t[2],
- o = this.transitionsBetween(e, r),
- s = this.transitionsBetween(r, n),
- a = this.transitionsBetween(n, i),
- l = this.transitionsBetween(i, e),
- c = o,
- h = [i, e, r, n]
- return (
- c > s && ((c = s), (h[0] = e), (h[1] = r), (h[2] = n), (h[3] = i)),
- c > a && ((c = a), (h[0] = r), (h[1] = n), (h[2] = i), (h[3] = e)),
- c > l && ((h[0] = n), (h[1] = i), (h[2] = e), (h[3] = r)),
- h
- )
- }
- detectSolid2(t) {
- let e = t[0],
- r = t[1],
- n = t[2],
- i = t[3],
- o = this.transitionsBetween(e, i),
- s = he.shiftPoint(r, n, 4 * (o + 1)),
- a = he.shiftPoint(n, r, 4 * (o + 1))
- return (
- this.transitionsBetween(s, e) < this.transitionsBetween(a, i) ? ((t[0] = e), (t[1] = r), (t[2] = n), (t[3] = i)) : ((t[0] = r), (t[1] = n), (t[2] = i), (t[3] = e)), t
- )
- }
- correctTopRight(t) {
- let e = t[0],
- r = t[1],
- n = t[2],
- i = t[3],
- o = this.transitionsBetween(e, i),
- s = this.transitionsBetween(r, i),
- a = he.shiftPoint(e, r, 4 * (s + 1)),
- l = he.shiftPoint(n, r, 4 * (o + 1))
- ;(o = this.transitionsBetween(a, i)), (s = this.transitionsBetween(l, i))
- let c = new nt(i.getX() + (n.getX() - r.getX()) / (o + 1), i.getY() + (n.getY() - r.getY()) / (o + 1)),
- h = new nt(i.getX() + (e.getX() - r.getX()) / (s + 1), i.getY() + (e.getY() - r.getY()) / (s + 1))
- return this.isValid(c)
- ? this.isValid(h)
- ? this.transitionsBetween(a, c) + this.transitionsBetween(l, c) > this.transitionsBetween(a, h) + this.transitionsBetween(l, h)
- ? c
- : h
- : c
- : this.isValid(h)
- ? h
- : null
- }
- shiftToModuleCenter(t) {
- let e = t[0],
- r = t[1],
- n = t[2],
- i = t[3],
- o = this.transitionsBetween(e, i) + 1,
- s = this.transitionsBetween(n, i) + 1,
- a = he.shiftPoint(e, r, 4 * s),
- l = he.shiftPoint(n, r, 4 * o)
- ;(o = this.transitionsBetween(a, i) + 1), (s = this.transitionsBetween(l, i) + 1), 1 == (1 & o) && (o += 1), 1 == (1 & s) && (s += 1)
- let c,
- h,
- u = (e.getX() + r.getX() + n.getX() + i.getX()) / 4,
- d = (e.getY() + r.getY() + n.getY() + i.getY()) / 4
- return (
- (e = he.moveAway(e, u, d)),
- (r = he.moveAway(r, u, d)),
- (n = he.moveAway(n, u, d)),
- (i = he.moveAway(i, u, d)),
- (a = he.shiftPoint(e, r, 4 * s)),
- (a = he.shiftPoint(a, i, 4 * o)),
- (c = he.shiftPoint(r, e, 4 * s)),
- (c = he.shiftPoint(c, n, 4 * o)),
- (l = he.shiftPoint(n, i, 4 * s)),
- (l = he.shiftPoint(l, r, 4 * o)),
- (h = he.shiftPoint(i, n, 4 * s)),
- (h = he.shiftPoint(h, e, 4 * o)),
- [a, c, l, h]
- )
- }
- isValid(t) {
- return t.getX() >= 0 && t.getX() < this.image.getWidth() && t.getY() > 0 && t.getY() < this.image.getHeight()
- }
- static sampleGrid(t, e, r, n, i, o, s) {
- return ht
- .getInstance()
- .sampleGrid(t, o, s, 0.5, 0.5, o - 0.5, 0.5, o - 0.5, s - 0.5, 0.5, s - 0.5, e.getX(), e.getY(), i.getX(), i.getY(), n.getX(), n.getY(), r.getX(), r.getY())
- }
- transitionsBetween(t, e) {
- let r = Math.trunc(t.getX()),
- n = Math.trunc(t.getY()),
- i = Math.trunc(e.getX()),
- o = Math.trunc(e.getY()),
- s = Math.abs(o - n) > Math.abs(i - r)
- if (s) {
- let t = r
- ;(r = n), (n = t), (t = i), (i = o), (o = t)
- }
- let a = Math.abs(i - r),
- l = Math.abs(o - n),
- c = -a / 2,
- h = n < o ? 1 : -1,
- u = r < i ? 1 : -1,
- d = 0,
- g = this.image.get(s ? n : r, s ? r : n)
- for (let t = r, e = n; t !== i; t += u) {
- let r = this.image.get(s ? e : t, s ? t : e)
- if ((r !== g && (d++, (g = r)), (c += l), c > 0)) {
- if (e === o) break
- ;(e += h), (c -= a)
- }
- }
- return d
- }
- }
- class ue {
- constructor() {
- this.decoder = new ce()
- }
- decode(t, e = null) {
- let r, n
- if (null != e && e.has(E.PURE_BARCODE)) {
- const e = ue.extractPureBits(t.getBlackMatrix())
- ;(r = this.decoder.decode(e)), (n = ue.NO_POINTS)
- } else {
- const e = new he(t.getBlackMatrix()).detect()
- ;(r = this.decoder.decode(e.getBits())), (n = e.getPoints())
- }
- const i = r.getRawBytes(),
- o = new F(r.getText(), i, 8 * i.length, n, k.DATA_MATRIX, u.currentTimeMillis()),
- s = r.getByteSegments()
- null != s && o.putMetadata(X.BYTE_SEGMENTS, s)
- const a = r.getECLevel()
- return null != a && o.putMetadata(X.ERROR_CORRECTION_LEVEL, a), o
- }
- reset() {}
- static extractPureBits(t) {
- const e = t.getTopLeftOnBit(),
- r = t.getBottomRightOnBit()
- if (null == e || null == r) throw new N()
- const n = this.moduleSize(e, t)
- let i = e[1]
- const o = r[1]
- let s = e[0]
- const a = (r[0] - s + 1) / n,
- l = (o - i + 1) / n
- if (a <= 0 || l <= 0) throw new N()
- const c = n / 2
- ;(i += c), (s += c)
- const h = new y(a, l)
- for (let e = 0; e < l; e++) {
- const r = i + e * n
- for (let i = 0; i < a; i++) t.get(s + i * n, r) && h.set(i, e)
- }
- return h
- }
- static moduleSize(t, e) {
- const r = e.getWidth()
- let n = t[0]
- const i = t[1]
- for (; n < r && e.get(n, i); ) n++
- if (n === r) throw new N()
- const o = n - t[0]
- if (0 === o) throw new N()
- return o
- }
- }
- ue.NO_POINTS = []
- !(function(t) {
- ;(t[(t.L = 0)] = 'L'), (t[(t.M = 1)] = 'M'), (t[(t.Q = 2)] = 'Q'), (t[(t.H = 3)] = 'H')
- })(V || (V = {}))
- class de {
- constructor(t, e, r) {
- ;(this.value = t), (this.stringValue = e), (this.bits = r), de.FOR_BITS.set(r, this), de.FOR_VALUE.set(t, this)
- }
- getValue() {
- return this.value
- }
- getBits() {
- return this.bits
- }
- static fromString(t) {
- switch (t) {
- case 'L':
- return de.L
- case 'M':
- return de.M
- case 'Q':
- return de.Q
- case 'H':
- return de.H
- default:
- throw new s(t + 'not available')
- }
- }
- toString() {
- return this.stringValue
- }
- equals(t) {
- if (!(t instanceof de)) return !1
- const e = t
- return this.value === e.value
- }
- static forBits(t) {
- if (t < 0 || t >= de.FOR_BITS.size) throw new a()
- return de.FOR_BITS.get(t)
- }
- }
- ;(de.FOR_BITS = new Map()), (de.FOR_VALUE = new Map()), (de.L = new de(V.L, 'L', 1)), (de.M = new de(V.M, 'M', 0)), (de.Q = new de(V.Q, 'Q', 3)), (de.H = new de(V.H, 'H', 2))
- class ge {
- constructor(t) {
- ;(this.errorCorrectionLevel = de.forBits((t >> 3) & 3)), (this.dataMask = 7 & t)
- }
- static numBitsDiffering(t, e) {
- return w.bitCount(t ^ e)
- }
- static decodeFormatInformation(t, e) {
- const r = ge.doDecodeFormatInformation(t, e)
- return null !== r ? r : ge.doDecodeFormatInformation(t ^ ge.FORMAT_INFO_MASK_QR, e ^ ge.FORMAT_INFO_MASK_QR)
- }
- static doDecodeFormatInformation(t, e) {
- let r = Number.MAX_SAFE_INTEGER,
- n = 0
- for (const i of ge.FORMAT_INFO_DECODE_LOOKUP) {
- const o = i[0]
- if (o === t || o === e) return new ge(i[1])
- let s = ge.numBitsDiffering(t, o)
- s < r && ((n = i[1]), (r = s)), t !== e && ((s = ge.numBitsDiffering(e, o)), s < r && ((n = i[1]), (r = s)))
- }
- return r <= 3 ? new ge(n) : null
- }
- getErrorCorrectionLevel() {
- return this.errorCorrectionLevel
- }
- getDataMask() {
- return this.dataMask
- }
- hashCode() {
- return (this.errorCorrectionLevel.getBits() << 3) | this.dataMask
- }
- equals(t) {
- if (!(t instanceof ge)) return !1
- const e = t
- return this.errorCorrectionLevel === e.errorCorrectionLevel && this.dataMask === e.dataMask
- }
- }
- ;(ge.FORMAT_INFO_MASK_QR = 21522),
- (ge.FORMAT_INFO_DECODE_LOOKUP = [
- Int32Array.from([21522, 0]),
- Int32Array.from([20773, 1]),
- Int32Array.from([24188, 2]),
- Int32Array.from([23371, 3]),
- Int32Array.from([17913, 4]),
- Int32Array.from([16590, 5]),
- Int32Array.from([20375, 6]),
- Int32Array.from([19104, 7]),
- Int32Array.from([30660, 8]),
- Int32Array.from([29427, 9]),
- Int32Array.from([32170, 10]),
- Int32Array.from([30877, 11]),
- Int32Array.from([26159, 12]),
- Int32Array.from([25368, 13]),
- Int32Array.from([27713, 14]),
- Int32Array.from([26998, 15]),
- Int32Array.from([5769, 16]),
- Int32Array.from([5054, 17]),
- Int32Array.from([7399, 18]),
- Int32Array.from([6608, 19]),
- Int32Array.from([1890, 20]),
- Int32Array.from([597, 21]),
- Int32Array.from([3340, 22]),
- Int32Array.from([2107, 23]),
- Int32Array.from([13663, 24]),
- Int32Array.from([12392, 25]),
- Int32Array.from([16177, 26]),
- Int32Array.from([14854, 27]),
- Int32Array.from([9396, 28]),
- Int32Array.from([8579, 29]),
- Int32Array.from([11994, 30]),
- Int32Array.from([11245, 31])
- ])
- class fe {
- constructor(t, ...e) {
- ;(this.ecCodewordsPerBlock = t), (this.ecBlocks = e)
- }
- getECCodewordsPerBlock() {
- return this.ecCodewordsPerBlock
- }
- getNumBlocks() {
- let t = 0
- const e = this.ecBlocks
- for (const r of e) t += r.getCount()
- return t
- }
- getTotalECCodewords() {
- return this.ecCodewordsPerBlock * this.getNumBlocks()
- }
- getECBlocks() {
- return this.ecBlocks
- }
- }
- class we {
- constructor(t, e) {
- ;(this.count = t), (this.dataCodewords = e)
- }
- getCount() {
- return this.count
- }
- getDataCodewords() {
- return this.dataCodewords
- }
- }
- class Ae {
- constructor(t, e, ...r) {
- ;(this.versionNumber = t), (this.alignmentPatternCenters = e), (this.ecBlocks = r)
- let n = 0
- const i = r[0].getECCodewordsPerBlock(),
- o = r[0].getECBlocks()
- for (const t of o) n += t.getCount() * (t.getDataCodewords() + i)
- this.totalCodewords = n
- }
- getVersionNumber() {
- return this.versionNumber
- }
- getAlignmentPatternCenters() {
- return this.alignmentPatternCenters
- }
- getTotalCodewords() {
- return this.totalCodewords
- }
- getDimensionForVersion() {
- return 17 + 4 * this.versionNumber
- }
- getECBlocksForLevel(t) {
- return this.ecBlocks[t.getValue()]
- }
- static getProvisionalVersionForDimension(t) {
- if (t % 4 != 1) throw new C()
- try {
- return this.getVersionForNumber((t - 17) / 4)
- } catch (t) {
- throw new C()
- }
- }
- static getVersionForNumber(t) {
- if (t < 1 || t > 40) throw new a()
- return Ae.VERSIONS[t - 1]
- }
- static decodeVersionInformation(t) {
- let e = Number.MAX_SAFE_INTEGER,
- r = 0
- for (let n = 0; n < Ae.VERSION_DECODE_INFO.length; n++) {
- const i = Ae.VERSION_DECODE_INFO[n]
- if (i === t) return Ae.getVersionForNumber(n + 7)
- const o = ge.numBitsDiffering(t, i)
- o < e && ((r = n + 7), (e = o))
- }
- return e <= 3 ? Ae.getVersionForNumber(r) : null
- }
- buildFunctionPattern() {
- const t = this.getDimensionForVersion(),
- e = new y(t)
- e.setRegion(0, 0, 9, 9), e.setRegion(t - 8, 0, 8, 9), e.setRegion(0, t - 8, 9, 8)
- const r = this.alignmentPatternCenters.length
- for (let t = 0; t < r; t++) {
- const n = this.alignmentPatternCenters[t] - 2
- for (let i = 0; i < r; i++) (0 === t && (0 === i || i === r - 1)) || (t === r - 1 && 0 === i) || e.setRegion(this.alignmentPatternCenters[i] - 2, n, 5, 5)
- }
- return e.setRegion(6, 9, 1, t - 17), e.setRegion(9, 6, t - 17, 1), this.versionNumber > 6 && (e.setRegion(t - 11, 0, 3, 6), e.setRegion(0, t - 11, 6, 3)), e
- }
- toString() {
- return '' + this.versionNumber
- }
- }
- ;(Ae.VERSION_DECODE_INFO = Int32Array.from([
- 31892,
- 34236,
- 39577,
- 42195,
- 48118,
- 51042,
- 55367,
- 58893,
- 63784,
- 68472,
- 70749,
- 76311,
- 79154,
- 84390,
- 87683,
- 92361,
- 96236,
- 102084,
- 102881,
- 110507,
- 110734,
- 117786,
- 119615,
- 126325,
- 127568,
- 133589,
- 136944,
- 141498,
- 145311,
- 150283,
- 152622,
- 158308,
- 161089,
- 167017
- ])),
- (Ae.VERSIONS = [
- new Ae(1, new Int32Array(0), new fe(7, new we(1, 19)), new fe(10, new we(1, 16)), new fe(13, new we(1, 13)), new fe(17, new we(1, 9))),
- new Ae(2, Int32Array.from([6, 18]), new fe(10, new we(1, 34)), new fe(16, new we(1, 28)), new fe(22, new we(1, 22)), new fe(28, new we(1, 16))),
- new Ae(3, Int32Array.from([6, 22]), new fe(15, new we(1, 55)), new fe(26, new we(1, 44)), new fe(18, new we(2, 17)), new fe(22, new we(2, 13))),
- new Ae(4, Int32Array.from([6, 26]), new fe(20, new we(1, 80)), new fe(18, new we(2, 32)), new fe(26, new we(2, 24)), new fe(16, new we(4, 9))),
- new Ae(
- 5,
- Int32Array.from([6, 30]),
- new fe(26, new we(1, 108)),
- new fe(24, new we(2, 43)),
- new fe(18, new we(2, 15), new we(2, 16)),
- new fe(22, new we(2, 11), new we(2, 12))
- ),
- new Ae(6, Int32Array.from([6, 34]), new fe(18, new we(2, 68)), new fe(16, new we(4, 27)), new fe(24, new we(4, 19)), new fe(28, new we(4, 15))),
- new Ae(
- 7,
- Int32Array.from([6, 22, 38]),
- new fe(20, new we(2, 78)),
- new fe(18, new we(4, 31)),
- new fe(18, new we(2, 14), new we(4, 15)),
- new fe(26, new we(4, 13), new we(1, 14))
- ),
- new Ae(
- 8,
- Int32Array.from([6, 24, 42]),
- new fe(24, new we(2, 97)),
- new fe(22, new we(2, 38), new we(2, 39)),
- new fe(22, new we(4, 18), new we(2, 19)),
- new fe(26, new we(4, 14), new we(2, 15))
- ),
- new Ae(
- 9,
- Int32Array.from([6, 26, 46]),
- new fe(30, new we(2, 116)),
- new fe(22, new we(3, 36), new we(2, 37)),
- new fe(20, new we(4, 16), new we(4, 17)),
- new fe(24, new we(4, 12), new we(4, 13))
- ),
- new Ae(
- 10,
- Int32Array.from([6, 28, 50]),
- new fe(18, new we(2, 68), new we(2, 69)),
- new fe(26, new we(4, 43), new we(1, 44)),
- new fe(24, new we(6, 19), new we(2, 20)),
- new fe(28, new we(6, 15), new we(2, 16))
- ),
- new Ae(
- 11,
- Int32Array.from([6, 30, 54]),
- new fe(20, new we(4, 81)),
- new fe(30, new we(1, 50), new we(4, 51)),
- new fe(28, new we(4, 22), new we(4, 23)),
- new fe(24, new we(3, 12), new we(8, 13))
- ),
- new Ae(
- 12,
- Int32Array.from([6, 32, 58]),
- new fe(24, new we(2, 92), new we(2, 93)),
- new fe(22, new we(6, 36), new we(2, 37)),
- new fe(26, new we(4, 20), new we(6, 21)),
- new fe(28, new we(7, 14), new we(4, 15))
- ),
- new Ae(
- 13,
- Int32Array.from([6, 34, 62]),
- new fe(26, new we(4, 107)),
- new fe(22, new we(8, 37), new we(1, 38)),
- new fe(24, new we(8, 20), new we(4, 21)),
- new fe(22, new we(12, 11), new we(4, 12))
- ),
- new Ae(
- 14,
- Int32Array.from([6, 26, 46, 66]),
- new fe(30, new we(3, 115), new we(1, 116)),
- new fe(24, new we(4, 40), new we(5, 41)),
- new fe(20, new we(11, 16), new we(5, 17)),
- new fe(24, new we(11, 12), new we(5, 13))
- ),
- new Ae(
- 15,
- Int32Array.from([6, 26, 48, 70]),
- new fe(22, new we(5, 87), new we(1, 88)),
- new fe(24, new we(5, 41), new we(5, 42)),
- new fe(30, new we(5, 24), new we(7, 25)),
- new fe(24, new we(11, 12), new we(7, 13))
- ),
- new Ae(
- 16,
- Int32Array.from([6, 26, 50, 74]),
- new fe(24, new we(5, 98), new we(1, 99)),
- new fe(28, new we(7, 45), new we(3, 46)),
- new fe(24, new we(15, 19), new we(2, 20)),
- new fe(30, new we(3, 15), new we(13, 16))
- ),
- new Ae(
- 17,
- Int32Array.from([6, 30, 54, 78]),
- new fe(28, new we(1, 107), new we(5, 108)),
- new fe(28, new we(10, 46), new we(1, 47)),
- new fe(28, new we(1, 22), new we(15, 23)),
- new fe(28, new we(2, 14), new we(17, 15))
- ),
- new Ae(
- 18,
- Int32Array.from([6, 30, 56, 82]),
- new fe(30, new we(5, 120), new we(1, 121)),
- new fe(26, new we(9, 43), new we(4, 44)),
- new fe(28, new we(17, 22), new we(1, 23)),
- new fe(28, new we(2, 14), new we(19, 15))
- ),
- new Ae(
- 19,
- Int32Array.from([6, 30, 58, 86]),
- new fe(28, new we(3, 113), new we(4, 114)),
- new fe(26, new we(3, 44), new we(11, 45)),
- new fe(26, new we(17, 21), new we(4, 22)),
- new fe(26, new we(9, 13), new we(16, 14))
- ),
- new Ae(
- 20,
- Int32Array.from([6, 34, 62, 90]),
- new fe(28, new we(3, 107), new we(5, 108)),
- new fe(26, new we(3, 41), new we(13, 42)),
- new fe(30, new we(15, 24), new we(5, 25)),
- new fe(28, new we(15, 15), new we(10, 16))
- ),
- new Ae(
- 21,
- Int32Array.from([6, 28, 50, 72, 94]),
- new fe(28, new we(4, 116), new we(4, 117)),
- new fe(26, new we(17, 42)),
- new fe(28, new we(17, 22), new we(6, 23)),
- new fe(30, new we(19, 16), new we(6, 17))
- ),
- new Ae(
- 22,
- Int32Array.from([6, 26, 50, 74, 98]),
- new fe(28, new we(2, 111), new we(7, 112)),
- new fe(28, new we(17, 46)),
- new fe(30, new we(7, 24), new we(16, 25)),
- new fe(24, new we(34, 13))
- ),
- new Ae(
- 23,
- Int32Array.from([6, 30, 54, 78, 102]),
- new fe(30, new we(4, 121), new we(5, 122)),
- new fe(28, new we(4, 47), new we(14, 48)),
- new fe(30, new we(11, 24), new we(14, 25)),
- new fe(30, new we(16, 15), new we(14, 16))
- ),
- new Ae(
- 24,
- Int32Array.from([6, 28, 54, 80, 106]),
- new fe(30, new we(6, 117), new we(4, 118)),
- new fe(28, new we(6, 45), new we(14, 46)),
- new fe(30, new we(11, 24), new we(16, 25)),
- new fe(30, new we(30, 16), new we(2, 17))
- ),
- new Ae(
- 25,
- Int32Array.from([6, 32, 58, 84, 110]),
- new fe(26, new we(8, 106), new we(4, 107)),
- new fe(28, new we(8, 47), new we(13, 48)),
- new fe(30, new we(7, 24), new we(22, 25)),
- new fe(30, new we(22, 15), new we(13, 16))
- ),
- new Ae(
- 26,
- Int32Array.from([6, 30, 58, 86, 114]),
- new fe(28, new we(10, 114), new we(2, 115)),
- new fe(28, new we(19, 46), new we(4, 47)),
- new fe(28, new we(28, 22), new we(6, 23)),
- new fe(30, new we(33, 16), new we(4, 17))
- ),
- new Ae(
- 27,
- Int32Array.from([6, 34, 62, 90, 118]),
- new fe(30, new we(8, 122), new we(4, 123)),
- new fe(28, new we(22, 45), new we(3, 46)),
- new fe(30, new we(8, 23), new we(26, 24)),
- new fe(30, new we(12, 15), new we(28, 16))
- ),
- new Ae(
- 28,
- Int32Array.from([6, 26, 50, 74, 98, 122]),
- new fe(30, new we(3, 117), new we(10, 118)),
- new fe(28, new we(3, 45), new we(23, 46)),
- new fe(30, new we(4, 24), new we(31, 25)),
- new fe(30, new we(11, 15), new we(31, 16))
- ),
- new Ae(
- 29,
- Int32Array.from([6, 30, 54, 78, 102, 126]),
- new fe(30, new we(7, 116), new we(7, 117)),
- new fe(28, new we(21, 45), new we(7, 46)),
- new fe(30, new we(1, 23), new we(37, 24)),
- new fe(30, new we(19, 15), new we(26, 16))
- ),
- new Ae(
- 30,
- Int32Array.from([6, 26, 52, 78, 104, 130]),
- new fe(30, new we(5, 115), new we(10, 116)),
- new fe(28, new we(19, 47), new we(10, 48)),
- new fe(30, new we(15, 24), new we(25, 25)),
- new fe(30, new we(23, 15), new we(25, 16))
- ),
- new Ae(
- 31,
- Int32Array.from([6, 30, 56, 82, 108, 134]),
- new fe(30, new we(13, 115), new we(3, 116)),
- new fe(28, new we(2, 46), new we(29, 47)),
- new fe(30, new we(42, 24), new we(1, 25)),
- new fe(30, new we(23, 15), new we(28, 16))
- ),
- new Ae(
- 32,
- Int32Array.from([6, 34, 60, 86, 112, 138]),
- new fe(30, new we(17, 115)),
- new fe(28, new we(10, 46), new we(23, 47)),
- new fe(30, new we(10, 24), new we(35, 25)),
- new fe(30, new we(19, 15), new we(35, 16))
- ),
- new Ae(
- 33,
- Int32Array.from([6, 30, 58, 86, 114, 142]),
- new fe(30, new we(17, 115), new we(1, 116)),
- new fe(28, new we(14, 46), new we(21, 47)),
- new fe(30, new we(29, 24), new we(19, 25)),
- new fe(30, new we(11, 15), new we(46, 16))
- ),
- new Ae(
- 34,
- Int32Array.from([6, 34, 62, 90, 118, 146]),
- new fe(30, new we(13, 115), new we(6, 116)),
- new fe(28, new we(14, 46), new we(23, 47)),
- new fe(30, new we(44, 24), new we(7, 25)),
- new fe(30, new we(59, 16), new we(1, 17))
- ),
- new Ae(
- 35,
- Int32Array.from([6, 30, 54, 78, 102, 126, 150]),
- new fe(30, new we(12, 121), new we(7, 122)),
- new fe(28, new we(12, 47), new we(26, 48)),
- new fe(30, new we(39, 24), new we(14, 25)),
- new fe(30, new we(22, 15), new we(41, 16))
- ),
- new Ae(
- 36,
- Int32Array.from([6, 24, 50, 76, 102, 128, 154]),
- new fe(30, new we(6, 121), new we(14, 122)),
- new fe(28, new we(6, 47), new we(34, 48)),
- new fe(30, new we(46, 24), new we(10, 25)),
- new fe(30, new we(2, 15), new we(64, 16))
- ),
- new Ae(
- 37,
- Int32Array.from([6, 28, 54, 80, 106, 132, 158]),
- new fe(30, new we(17, 122), new we(4, 123)),
- new fe(28, new we(29, 46), new we(14, 47)),
- new fe(30, new we(49, 24), new we(10, 25)),
- new fe(30, new we(24, 15), new we(46, 16))
- ),
- new Ae(
- 38,
- Int32Array.from([6, 32, 58, 84, 110, 136, 162]),
- new fe(30, new we(4, 122), new we(18, 123)),
- new fe(28, new we(13, 46), new we(32, 47)),
- new fe(30, new we(48, 24), new we(14, 25)),
- new fe(30, new we(42, 15), new we(32, 16))
- ),
- new Ae(
- 39,
- Int32Array.from([6, 26, 54, 82, 110, 138, 166]),
- new fe(30, new we(20, 117), new we(4, 118)),
- new fe(28, new we(40, 47), new we(7, 48)),
- new fe(30, new we(43, 24), new we(22, 25)),
- new fe(30, new we(10, 15), new we(67, 16))
- ),
- new Ae(
- 40,
- Int32Array.from([6, 30, 58, 86, 114, 142, 170]),
- new fe(30, new we(19, 118), new we(6, 119)),
- new fe(28, new we(18, 47), new we(31, 48)),
- new fe(30, new we(34, 24), new we(34, 25)),
- new fe(30, new we(20, 15), new we(61, 16))
- )
- ]),
- (function(t) {
- ;(t[(t.DATA_MASK_000 = 0)] = 'DATA_MASK_000'),
- (t[(t.DATA_MASK_001 = 1)] = 'DATA_MASK_001'),
- (t[(t.DATA_MASK_010 = 2)] = 'DATA_MASK_010'),
- (t[(t.DATA_MASK_011 = 3)] = 'DATA_MASK_011'),
- (t[(t.DATA_MASK_100 = 4)] = 'DATA_MASK_100'),
- (t[(t.DATA_MASK_101 = 5)] = 'DATA_MASK_101'),
- (t[(t.DATA_MASK_110 = 6)] = 'DATA_MASK_110'),
- (t[(t.DATA_MASK_111 = 7)] = 'DATA_MASK_111')
- })(z || (z = {}))
- class me {
- constructor(t, e) {
- ;(this.value = t), (this.isMasked = e)
- }
- unmaskBitMatrix(t, e) {
- for (let r = 0; r < e; r++) for (let n = 0; n < e; n++) this.isMasked(r, n) && t.flip(n, r)
- }
- }
- me.values = new Map([
- [z.DATA_MASK_000, new me(z.DATA_MASK_000, (t, e) => 0 == ((t + e) & 1))],
- [z.DATA_MASK_001, new me(z.DATA_MASK_001, (t, e) => 0 == (1 & t))],
- [z.DATA_MASK_010, new me(z.DATA_MASK_010, (t, e) => e % 3 == 0)],
- [z.DATA_MASK_011, new me(z.DATA_MASK_011, (t, e) => (t + e) % 3 == 0)],
- [z.DATA_MASK_100, new me(z.DATA_MASK_100, (t, e) => 0 == ((Math.floor(t / 2) + Math.floor(e / 3)) & 1))],
- [z.DATA_MASK_101, new me(z.DATA_MASK_101, (t, e) => (t * e) % 6 == 0)],
- [z.DATA_MASK_110, new me(z.DATA_MASK_110, (t, e) => (t * e) % 6 < 3)],
- [z.DATA_MASK_111, new me(z.DATA_MASK_111, (t, e) => 0 == ((t + e + ((t * e) % 3)) & 1))]
- ])
- class Ee {
- constructor(t) {
- const e = t.getHeight()
- if (e < 21 || 1 != (3 & e)) throw new C()
- this.bitMatrix = t
- }
- readFormatInformation() {
- if (null !== this.parsedFormatInfo && void 0 !== this.parsedFormatInfo) return this.parsedFormatInfo
- let t = 0
- for (let e = 0; e < 6; e++) t = this.copyBit(e, 8, t)
- ;(t = this.copyBit(7, 8, t)), (t = this.copyBit(8, 8, t)), (t = this.copyBit(8, 7, t))
- for (let e = 5; e >= 0; e--) t = this.copyBit(8, e, t)
- const e = this.bitMatrix.getHeight()
- let r = 0
- const n = e - 7
- for (let t = e - 1; t >= n; t--) r = this.copyBit(8, t, r)
- for (let t = e - 8; t < e; t++) r = this.copyBit(t, 8, r)
- if (((this.parsedFormatInfo = ge.decodeFormatInformation(t, r)), null !== this.parsedFormatInfo)) return this.parsedFormatInfo
- throw new C()
- }
- readVersion() {
- if (null !== this.parsedVersion && void 0 !== this.parsedVersion) return this.parsedVersion
- const t = this.bitMatrix.getHeight(),
- e = Math.floor((t - 17) / 4)
- if (e <= 6) return Ae.getVersionForNumber(e)
- let r = 0
- const n = t - 11
- for (let e = 5; e >= 0; e--) for (let i = t - 9; i >= n; i--) r = this.copyBit(i, e, r)
- let i = Ae.decodeVersionInformation(r)
- if (null !== i && i.getDimensionForVersion() === t) return (this.parsedVersion = i), i
- r = 0
- for (let e = 5; e >= 0; e--) for (let i = t - 9; i >= n; i--) r = this.copyBit(e, i, r)
- if (((i = Ae.decodeVersionInformation(r)), null !== i && i.getDimensionForVersion() === t)) return (this.parsedVersion = i), i
- throw new C()
- }
- copyBit(t, e, r) {
- return (this.isMirror ? this.bitMatrix.get(e, t) : this.bitMatrix.get(t, e)) ? (r << 1) | 1 : r << 1
- }
- readCodewords() {
- const t = this.readFormatInformation(),
- e = this.readVersion(),
- r = me.values.get(t.getDataMask()),
- n = this.bitMatrix.getHeight()
- r.unmaskBitMatrix(this.bitMatrix, n)
- const i = e.buildFunctionPattern()
- let o = !0
- const s = new Uint8Array(e.getTotalCodewords())
- let a = 0,
- l = 0,
- c = 0
- for (let t = n - 1; t > 0; t -= 2) {
- 6 === t && t--
- for (let e = 0; e < n; e++) {
- const r = o ? n - 1 - e : e
- for (let e = 0; e < 2; e++) i.get(t - e, r) || (c++, (l <<= 1), this.bitMatrix.get(t - e, r) && (l |= 1), 8 === c && ((s[a++] = l), (c = 0), (l = 0)))
- }
- o = !o
- }
- if (a !== e.getTotalCodewords()) throw new C()
- return s
- }
- remask() {
- if (null === this.parsedFormatInfo) return
- const t = me.values[this.parsedFormatInfo.getDataMask()],
- e = this.bitMatrix.getHeight()
- t.unmaskBitMatrix(this.bitMatrix, e)
- }
- setMirror(t) {
- ;(this.parsedVersion = null), (this.parsedFormatInfo = null), (this.isMirror = t)
- }
- mirror() {
- const t = this.bitMatrix
- for (let e = 0, r = t.getWidth(); e < r; e++) for (let r = e + 1, n = t.getHeight(); r < n; r++) t.get(e, r) !== t.get(r, e) && (t.flip(r, e), t.flip(e, r))
- }
- }
- class Ce {
- constructor(t, e) {
- ;(this.numDataCodewords = t), (this.codewords = e)
- }
- static getDataBlocks(t, e, r) {
- if (t.length !== e.getTotalCodewords()) throw new a()
- const n = e.getECBlocksForLevel(r)
- let i = 0
- const o = n.getECBlocks()
- for (const t of o) i += t.getCount()
- const s = new Array(i)
- let l = 0
- for (const t of o)
- for (let e = 0; e < t.getCount(); e++) {
- const e = t.getDataCodewords(),
- r = n.getECCodewordsPerBlock() + e
- s[l++] = new Ce(e, new Uint8Array(r))
- }
- const c = s[0].codewords.length
- let h = s.length - 1
- for (; h >= 0 && s[h].codewords.length !== c; ) h--
- h++
- const u = c - n.getECCodewordsPerBlock()
- let d = 0
- for (let e = 0; e < u; e++) for (let r = 0; r < l; r++) s[r].codewords[e] = t[d++]
- for (let e = h; e < l; e++) s[e].codewords[u] = t[d++]
- const g = s[0].codewords.length
- for (let e = u; e < g; e++)
- for (let r = 0; r < l; r++) {
- const n = r < h ? e : e + 1
- s[r].codewords[n] = t[d++]
- }
- return s
- }
- getNumDataCodewords() {
- return this.numDataCodewords
- }
- getCodewords() {
- return this.codewords
- }
- }
- !(function(t) {
- ;(t[(t.TERMINATOR = 0)] = 'TERMINATOR'),
- (t[(t.NUMERIC = 1)] = 'NUMERIC'),
- (t[(t.ALPHANUMERIC = 2)] = 'ALPHANUMERIC'),
- (t[(t.STRUCTURED_APPEND = 3)] = 'STRUCTURED_APPEND'),
- (t[(t.BYTE = 4)] = 'BYTE'),
- (t[(t.ECI = 5)] = 'ECI'),
- (t[(t.KANJI = 6)] = 'KANJI'),
- (t[(t.FNC1_FIRST_POSITION = 7)] = 'FNC1_FIRST_POSITION'),
- (t[(t.FNC1_SECOND_POSITION = 8)] = 'FNC1_SECOND_POSITION'),
- (t[(t.HANZI = 9)] = 'HANZI')
- })(G || (G = {}))
- class Ie {
- constructor(t, e, r, n) {
- ;(this.value = t), (this.stringValue = e), (this.characterCountBitsForVersions = r), (this.bits = n), Ie.FOR_BITS.set(n, this), Ie.FOR_VALUE.set(t, this)
- }
- static forBits(t) {
- const e = Ie.FOR_BITS.get(t)
- if (void 0 === e) throw new a()
- return e
- }
- getCharacterCountBits(t) {
- const e = t.getVersionNumber()
- let r
- return (r = e <= 9 ? 0 : e <= 26 ? 1 : 2), this.characterCountBitsForVersions[r]
- }
- getValue() {
- return this.value
- }
- getBits() {
- return this.bits
- }
- equals(t) {
- if (!(t instanceof Ie)) return !1
- const e = t
- return this.value === e.value
- }
- toString() {
- return this.stringValue
- }
- }
- ;(Ie.FOR_BITS = new Map()),
- (Ie.FOR_VALUE = new Map()),
- (Ie.TERMINATOR = new Ie(G.TERMINATOR, 'TERMINATOR', Int32Array.from([0, 0, 0]), 0)),
- (Ie.NUMERIC = new Ie(G.NUMERIC, 'NUMERIC', Int32Array.from([10, 12, 14]), 1)),
- (Ie.ALPHANUMERIC = new Ie(G.ALPHANUMERIC, 'ALPHANUMERIC', Int32Array.from([9, 11, 13]), 2)),
- (Ie.STRUCTURED_APPEND = new Ie(G.STRUCTURED_APPEND, 'STRUCTURED_APPEND', Int32Array.from([0, 0, 0]), 3)),
- (Ie.BYTE = new Ie(G.BYTE, 'BYTE', Int32Array.from([8, 16, 16]), 4)),
- (Ie.ECI = new Ie(G.ECI, 'ECI', Int32Array.from([0, 0, 0]), 7)),
- (Ie.KANJI = new Ie(G.KANJI, 'KANJI', Int32Array.from([8, 10, 12]), 8)),
- (Ie.FNC1_FIRST_POSITION = new Ie(G.FNC1_FIRST_POSITION, 'FNC1_FIRST_POSITION', Int32Array.from([0, 0, 0]), 5)),
- (Ie.FNC1_SECOND_POSITION = new Ie(G.FNC1_SECOND_POSITION, 'FNC1_SECOND_POSITION', Int32Array.from([0, 0, 0]), 9)),
- (Ie.HANZI = new Ie(G.HANZI, 'HANZI', Int32Array.from([8, 10, 12]), 13))
- class pe {
- static decode(t, e, r, n) {
- const i = new ae(t)
- let o = new T()
- const s = new Array()
- let a = -1,
- l = -1
- try {
- let t,
- r = null,
- c = !1
- do {
- if (i.available() < 4) t = Ie.TERMINATOR
- else {
- const e = i.readBits(4)
- t = Ie.forBits(e)
- }
- switch (t) {
- case Ie.TERMINATOR:
- break
- case Ie.FNC1_FIRST_POSITION:
- case Ie.FNC1_SECOND_POSITION:
- c = !0
- break
- case Ie.STRUCTURED_APPEND:
- if (i.available() < 16) throw new C()
- ;(a = i.readBits(8)), (l = i.readBits(8))
- break
- case Ie.ECI:
- const h = pe.parseECIValue(i)
- if (((r = I.getCharacterSetECIByValue(h)), null === r)) throw new C()
- break
- case Ie.HANZI:
- const u = i.readBits(4),
- d = i.readBits(t.getCharacterCountBits(e))
- u === pe.GB2312_SUBSET && pe.decodeHanziSegment(i, o, d)
- break
- default:
- const g = i.readBits(t.getCharacterCountBits(e))
- switch (t) {
- case Ie.NUMERIC:
- pe.decodeNumericSegment(i, o, g)
- break
- case Ie.ALPHANUMERIC:
- pe.decodeAlphanumericSegment(i, o, g, c)
- break
- case Ie.BYTE:
- pe.decodeByteSegment(i, o, g, r, s, n)
- break
- case Ie.KANJI:
- pe.decodeKanjiSegment(i, o, g)
- break
- default:
- throw new C()
- }
- }
- } while (t !== Ie.TERMINATOR)
- } catch (t) {
- throw new C()
- }
- return new W(t, o.toString(), 0 === s.length ? null : s, null === r ? null : r.toString(), a, l)
- }
- static decodeHanziSegment(t, e, r) {
- if (13 * r > t.available()) throw new C()
- const n = new Uint8Array(2 * r)
- let i = 0
- for (; r > 0; ) {
- const e = t.readBits(13)
- let o = (((e / 96) << 8) & 4294967295) | e % 96
- ;(o += o < 959 ? 41377 : 42657), (n[i] = (o >> 8) & 255), (n[i + 1] = 255 & o), (i += 2), r--
- }
- try {
- e.append(S.decode(n, _.GB2312))
- } catch (t) {
- throw new C(t)
- }
- }
- static decodeKanjiSegment(t, e, r) {
- if (13 * r > t.available()) throw new C()
- const n = new Uint8Array(2 * r)
- let i = 0
- for (; r > 0; ) {
- const e = t.readBits(13)
- let o = (((e / 192) << 8) & 4294967295) | e % 192
- ;(o += o < 7936 ? 33088 : 49472), (n[i] = o >> 8), (n[i + 1] = o), (i += 2), r--
- }
- try {
- e.append(S.decode(n, _.SHIFT_JIS))
- } catch (t) {
- throw new C(t)
- }
- }
- static decodeByteSegment(t, e, r, n, i, o) {
- if (8 * r > t.available()) throw new C()
- const s = new Uint8Array(r)
- for (let e = 0; e < r; e++) s[e] = t.readBits(8)
- let a
- a = null === n ? _.guessEncoding(s, o) : n.getName()
- try {
- e.append(S.decode(s, a))
- } catch (t) {
- throw new C(t)
- }
- i.push(s)
- }
- static toAlphaNumericChar(t) {
- if (t >= pe.ALPHANUMERIC_CHARS.length) throw new C()
- return pe.ALPHANUMERIC_CHARS[t]
- }
- static decodeAlphanumericSegment(t, e, r, n) {
- const i = e.length()
- for (; r > 1; ) {
- if (t.available() < 11) throw new C()
- const n = t.readBits(11)
- e.append(pe.toAlphaNumericChar(Math.floor(n / 45))), e.append(pe.toAlphaNumericChar(n % 45)), (r -= 2)
- }
- if (1 === r) {
- if (t.available() < 6) throw new C()
- e.append(pe.toAlphaNumericChar(t.readBits(6)))
- }
- if (n)
- for (let t = i; t < e.length(); t++)
- '%' === e.charAt(t) && (t < e.length() - 1 && '%' === e.charAt(t + 1) ? e.deleteCharAt(t + 1) : e.setCharAt(t, String.fromCharCode(29)))
- }
- static decodeNumericSegment(t, e, r) {
- for (; r >= 3; ) {
- if (t.available() < 10) throw new C()
- const n = t.readBits(10)
- if (n >= 1e3) throw new C()
- e.append(pe.toAlphaNumericChar(Math.floor(n / 100))), e.append(pe.toAlphaNumericChar(Math.floor(n / 10) % 10)), e.append(pe.toAlphaNumericChar(n % 10)), (r -= 3)
- }
- if (2 === r) {
- if (t.available() < 7) throw new C()
- const r = t.readBits(7)
- if (r >= 100) throw new C()
- e.append(pe.toAlphaNumericChar(Math.floor(r / 10))), e.append(pe.toAlphaNumericChar(r % 10))
- } else if (1 === r) {
- if (t.available() < 4) throw new C()
- const r = t.readBits(4)
- if (r >= 10) throw new C()
- e.append(pe.toAlphaNumericChar(r))
- }
- }
- static parseECIValue(t) {
- const e = t.readBits(8)
- if (0 == (128 & e)) return 127 & e
- if (128 == (192 & e)) return (((63 & e) << 8) & 4294967295) | t.readBits(8)
- if (192 == (224 & e)) return (((31 & e) << 16) & 4294967295) | t.readBits(16)
- throw new C()
- }
- }
- ;(pe.ALPHANUMERIC_CHARS = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:'), (pe.GB2312_SUBSET = 1)
- class Se {
- constructor(t) {
- this.mirrored = t
- }
- isMirrored() {
- return this.mirrored
- }
- applyMirroredCorrection(t) {
- if (!this.mirrored || null === t || t.length < 3) return
- const e = t[0]
- ;(t[0] = t[2]), (t[2] = e)
- }
- }
- class _e {
- constructor() {
- this.rsDecoder = new $(K.QR_CODE_FIELD_256)
- }
- decodeBooleanArray(t, e) {
- return this.decodeBitMatrix(y.parseFromBooleanArray(t), e)
- }
- decodeBitMatrix(t, e) {
- const r = new Ee(t)
- let n = null
- try {
- return this.decodeBitMatrixParser(r, e)
- } catch (t) {
- n = t
- }
- try {
- r.remask(), r.setMirror(!0), r.readVersion(), r.readFormatInformation(), r.mirror()
- const t = this.decodeBitMatrixParser(r, e)
- return t.setOther(new Se(!0)), t
- } catch (t) {
- if (null !== n) throw n
- throw t
- }
- }
- decodeBitMatrixParser(t, e) {
- const r = t.readVersion(),
- n = t.readFormatInformation().getErrorCorrectionLevel(),
- i = t.readCodewords(),
- o = Ce.getDataBlocks(i, r, n)
- let s = 0
- for (const t of o) s += t.getNumDataCodewords()
- const a = new Uint8Array(s)
- let l = 0
- for (const t of o) {
- const e = t.getCodewords(),
- r = t.getNumDataCodewords()
- this.correctErrors(e, r)
- for (let t = 0; t < r; t++) a[l++] = e[t]
- }
- return pe.decode(a, r, n, e)
- }
- correctErrors(t, e) {
- const r = new Int32Array(t)
- try {
- this.rsDecoder.decode(r, t.length - e)
- } catch (t) {
- throw new c()
- }
- for (let n = 0; n < e; n++) t[n] = r[n]
- }
- }
- class Te extends nt {
- constructor(t, e, r) {
- super(t, e), (this.estimatedModuleSize = r)
- }
- aboutEquals(t, e, r) {
- if (Math.abs(e - this.getY()) <= t && Math.abs(r - this.getX()) <= t) {
- const e = Math.abs(t - this.estimatedModuleSize)
- return e <= 1 || e <= this.estimatedModuleSize
- }
- return !1
- }
- combineEstimate(t, e, r) {
- const n = (this.getX() + e) / 2,
- i = (this.getY() + t) / 2,
- o = (this.estimatedModuleSize + r) / 2
- return new Te(n, i, o)
- }
- }
- class ye {
- constructor(t, e, r, n, i, o, s) {
- ;(this.image = t),
- (this.startX = e),
- (this.startY = r),
- (this.width = n),
- (this.height = i),
- (this.moduleSize = o),
- (this.resultPointCallback = s),
- (this.possibleCenters = []),
- (this.crossCheckStateCount = new Int32Array(3))
- }
- find() {
- const t = this.startX,
- e = this.height,
- r = t + this.width,
- n = this.startY + e / 2,
- i = new Int32Array(3),
- o = this.image
- for (let s = 0; s < e; s++) {
- const e = n + (0 == (1 & s) ? Math.floor((s + 1) / 2) : -Math.floor((s + 1) / 2))
- ;(i[0] = 0), (i[1] = 0), (i[2] = 0)
- let a = t
- for (; a < r && !o.get(a, e); ) a++
- let l = 0
- for (; a < r; ) {
- if (o.get(a, e))
- if (1 === l) i[1]++
- else if (2 === l) {
- if (this.foundPatternCross(i)) {
- const t = this.handlePossibleCenter(i, e, a)
- if (null !== t) return t
- }
- ;(i[0] = i[2]), (i[1] = 1), (i[2] = 0), (l = 1)
- } else i[++l]++
- else 1 === l && l++, i[l]++
- a++
- }
- if (this.foundPatternCross(i)) {
- const t = this.handlePossibleCenter(i, e, r)
- if (null !== t) return t
- }
- }
- if (0 !== this.possibleCenters.length) return this.possibleCenters[0]
- throw new N()
- }
- static centerFromEnd(t, e) {
- return e - t[2] - t[1] / 2
- }
- foundPatternCross(t) {
- const e = this.moduleSize,
- r = e / 2
- for (let n = 0; n < 3; n++) if (Math.abs(e - t[n]) >= r) return !1
- return !0
- }
- crossCheckVertical(t, e, r, n) {
- const i = this.image,
- o = i.getHeight(),
- s = this.crossCheckStateCount
- ;(s[0] = 0), (s[1] = 0), (s[2] = 0)
- let a = t
- for (; a >= 0 && i.get(e, a) && s[1] <= r; ) s[1]++, a--
- if (a < 0 || s[1] > r) return NaN
- for (; a >= 0 && !i.get(e, a) && s[0] <= r; ) s[0]++, a--
- if (s[0] > r) return NaN
- for (a = t + 1; a < o && i.get(e, a) && s[1] <= r; ) s[1]++, a++
- if (a === o || s[1] > r) return NaN
- for (; a < o && !i.get(e, a) && s[2] <= r; ) s[2]++, a++
- if (s[2] > r) return NaN
- const l = s[0] + s[1] + s[2]
- return 5 * Math.abs(l - n) >= 2 * n ? NaN : this.foundPatternCross(s) ? ye.centerFromEnd(s, a) : NaN
- }
- handlePossibleCenter(t, e, r) {
- const n = t[0] + t[1] + t[2],
- i = ye.centerFromEnd(t, r),
- o = this.crossCheckVertical(e, i, 2 * t[1], n)
- if (!isNaN(o)) {
- const e = (t[0] + t[1] + t[2]) / 3
- for (const t of this.possibleCenters) if (t.aboutEquals(e, o, i)) return t.combineEstimate(o, i, e)
- const r = new Te(i, o, e)
- this.possibleCenters.push(r), null !== this.resultPointCallback && void 0 !== this.resultPointCallback && this.resultPointCallback.foundPossibleResultPoint(r)
- }
- return null
- }
- }
- class Ne extends nt {
- constructor(t, e, r, n) {
- super(t, e), (this.estimatedModuleSize = r), (this.count = n), void 0 === n && (this.count = 1)
- }
- getEstimatedModuleSize() {
- return this.estimatedModuleSize
- }
- getCount() {
- return this.count
- }
- aboutEquals(t, e, r) {
- if (Math.abs(e - this.getY()) <= t && Math.abs(r - this.getX()) <= t) {
- const e = Math.abs(t - this.estimatedModuleSize)
- return e <= 1 || e <= this.estimatedModuleSize
- }
- return !1
- }
- combineEstimate(t, e, r) {
- const n = this.count + 1,
- i = (this.count * this.getX() + e) / n,
- o = (this.count * this.getY() + t) / n,
- s = (this.count * this.estimatedModuleSize + r) / n
- return new Ne(i, o, s, n)
- }
- }
- class Me {
- constructor(t) {
- ;(this.bottomLeft = t[0]), (this.topLeft = t[1]), (this.topRight = t[2])
- }
- getBottomLeft() {
- return this.bottomLeft
- }
- getTopLeft() {
- return this.topLeft
- }
- getTopRight() {
- return this.topRight
- }
- }
- class De {
- constructor(t, e) {
- ;(this.image = t), (this.resultPointCallback = e), (this.possibleCenters = []), (this.crossCheckStateCount = new Int32Array(5)), (this.resultPointCallback = e)
- }
- getImage() {
- return this.image
- }
- getPossibleCenters() {
- return this.possibleCenters
- }
- find(t) {
- const e = null != t && void 0 !== t.get(E.TRY_HARDER),
- r = null != t && void 0 !== t.get(E.PURE_BARCODE),
- n = this.image,
- i = n.getHeight(),
- o = n.getWidth()
- let s = Math.floor((3 * i) / (4 * De.MAX_MODULES))
- ;(s < De.MIN_SKIP || e) && (s = De.MIN_SKIP)
- let a = !1
- const l = new Int32Array(5)
- for (let t = s - 1; t < i && !a; t += s) {
- ;(l[0] = 0), (l[1] = 0), (l[2] = 0), (l[3] = 0), (l[4] = 0)
- let e = 0
- for (let i = 0; i < o; i++)
- if (n.get(i, t)) 1 == (1 & e) && e++, l[e]++
- else if (0 == (1 & e))
- if (4 === e)
- if (De.foundPatternCross(l)) {
- if (!0 !== this.handlePossibleCenter(l, t, i, r)) {
- ;(l[0] = l[2]), (l[1] = l[3]), (l[2] = l[4]), (l[3] = 1), (l[4] = 0), (e = 3)
- continue
- }
- if (((s = 2), !0 === this.hasSkipped)) a = this.haveMultiplyConfirmedCenters()
- else {
- const e = this.findRowSkip()
- e > l[2] && ((t += e - l[2] - s), (i = o - 1))
- }
- ;(e = 0), (l[0] = 0), (l[1] = 0), (l[2] = 0), (l[3] = 0), (l[4] = 0)
- } else (l[0] = l[2]), (l[1] = l[3]), (l[2] = l[4]), (l[3] = 1), (l[4] = 0), (e = 3)
- else l[++e]++
- else l[e]++
- De.foundPatternCross(l) && !0 === this.handlePossibleCenter(l, t, o, r) && ((s = l[0]), this.hasSkipped && (a = this.haveMultiplyConfirmedCenters()))
- }
- const c = this.selectBestPatterns()
- return nt.orderBestPatterns(c), new Me(c)
- }
- static centerFromEnd(t, e) {
- return e - t[4] - t[3] - t[2] / 2
- }
- static foundPatternCross(t) {
- let e = 0
- for (let r = 0; r < 5; r++) {
- const n = t[r]
- if (0 === n) return !1
- e += n
- }
- if (e < 7) return !1
- const r = e / 7,
- n = r / 2
- return Math.abs(r - t[0]) < n && Math.abs(r - t[1]) < n && Math.abs(3 * r - t[2]) < 3 * n && Math.abs(r - t[3]) < n && Math.abs(r - t[4]) < n
- }
- getCrossCheckStateCount() {
- const t = this.crossCheckStateCount
- return (t[0] = 0), (t[1] = 0), (t[2] = 0), (t[3] = 0), (t[4] = 0), t
- }
- crossCheckDiagonal(t, e, r, n) {
- const i = this.getCrossCheckStateCount()
- let o = 0
- const s = this.image
- for (; t >= o && e >= o && s.get(e - o, t - o); ) i[2]++, o++
- if (t < o || e < o) return !1
- for (; t >= o && e >= o && !s.get(e - o, t - o) && i[1] <= r; ) i[1]++, o++
- if (t < o || e < o || i[1] > r) return !1
- for (; t >= o && e >= o && s.get(e - o, t - o) && i[0] <= r; ) i[0]++, o++
- if (i[0] > r) return !1
- const a = s.getHeight(),
- l = s.getWidth()
- for (o = 1; t + o < a && e + o < l && s.get(e + o, t + o); ) i[2]++, o++
- if (t + o >= a || e + o >= l) return !1
- for (; t + o < a && e + o < l && !s.get(e + o, t + o) && i[3] < r; ) i[3]++, o++
- if (t + o >= a || e + o >= l || i[3] >= r) return !1
- for (; t + o < a && e + o < l && s.get(e + o, t + o) && i[4] < r; ) i[4]++, o++
- if (i[4] >= r) return !1
- const c = i[0] + i[1] + i[2] + i[3] + i[4]
- return Math.abs(c - n) < 2 * n && De.foundPatternCross(i)
- }
- crossCheckVertical(t, e, r, n) {
- const i = this.image,
- o = i.getHeight(),
- s = this.getCrossCheckStateCount()
- let a = t
- for (; a >= 0 && i.get(e, a); ) s[2]++, a--
- if (a < 0) return NaN
- for (; a >= 0 && !i.get(e, a) && s[1] <= r; ) s[1]++, a--
- if (a < 0 || s[1] > r) return NaN
- for (; a >= 0 && i.get(e, a) && s[0] <= r; ) s[0]++, a--
- if (s[0] > r) return NaN
- for (a = t + 1; a < o && i.get(e, a); ) s[2]++, a++
- if (a === o) return NaN
- for (; a < o && !i.get(e, a) && s[3] < r; ) s[3]++, a++
- if (a === o || s[3] >= r) return NaN
- for (; a < o && i.get(e, a) && s[4] < r; ) s[4]++, a++
- if (s[4] >= r) return NaN
- const l = s[0] + s[1] + s[2] + s[3] + s[4]
- return 5 * Math.abs(l - n) >= 2 * n ? NaN : De.foundPatternCross(s) ? De.centerFromEnd(s, a) : NaN
- }
- crossCheckHorizontal(t, e, r, n) {
- const i = this.image,
- o = i.getWidth(),
- s = this.getCrossCheckStateCount()
- let a = t
- for (; a >= 0 && i.get(a, e); ) s[2]++, a--
- if (a < 0) return NaN
- for (; a >= 0 && !i.get(a, e) && s[1] <= r; ) s[1]++, a--
- if (a < 0 || s[1] > r) return NaN
- for (; a >= 0 && i.get(a, e) && s[0] <= r; ) s[0]++, a--
- if (s[0] > r) return NaN
- for (a = t + 1; a < o && i.get(a, e); ) s[2]++, a++
- if (a === o) return NaN
- for (; a < o && !i.get(a, e) && s[3] < r; ) s[3]++, a++
- if (a === o || s[3] >= r) return NaN
- for (; a < o && i.get(a, e) && s[4] < r; ) s[4]++, a++
- if (s[4] >= r) return NaN
- const l = s[0] + s[1] + s[2] + s[3] + s[4]
- return 5 * Math.abs(l - n) >= n ? NaN : De.foundPatternCross(s) ? De.centerFromEnd(s, a) : NaN
- }
- handlePossibleCenter(t, e, r, n) {
- const i = t[0] + t[1] + t[2] + t[3] + t[4]
- let o = De.centerFromEnd(t, r),
- s = this.crossCheckVertical(e, Math.floor(o), t[2], i)
- if (
- !isNaN(s) &&
- ((o = this.crossCheckHorizontal(Math.floor(o), Math.floor(s), t[2], i)), !isNaN(o) && (!n || this.crossCheckDiagonal(Math.floor(s), Math.floor(o), t[2], i)))
- ) {
- const t = i / 7
- let e = !1
- const r = this.possibleCenters
- for (let n = 0, i = r.length; n < i; n++) {
- const i = r[n]
- if (i.aboutEquals(t, s, o)) {
- ;(r[n] = i.combineEstimate(s, o, t)), (e = !0)
- break
- }
- }
- if (!e) {
- const e = new Ne(o, s, t)
- r.push(e), null !== this.resultPointCallback && void 0 !== this.resultPointCallback && this.resultPointCallback.foundPossibleResultPoint(e)
- }
- return !0
- }
- return !1
- }
- findRowSkip() {
- if (this.possibleCenters.length <= 1) return 0
- let t = null
- for (const e of this.possibleCenters)
- if (e.getCount() >= De.CENTER_QUORUM) {
- if (null != t) return (this.hasSkipped = !0), Math.floor((Math.abs(t.getX() - e.getX()) - Math.abs(t.getY() - e.getY())) / 2)
- t = e
- }
- return 0
- }
- haveMultiplyConfirmedCenters() {
- let t = 0,
- e = 0
- const r = this.possibleCenters.length
- for (const r of this.possibleCenters) r.getCount() >= De.CENTER_QUORUM && (t++, (e += r.getEstimatedModuleSize()))
- if (t < 3) return !1
- const n = e / r
- let i = 0
- for (const t of this.possibleCenters) i += Math.abs(t.getEstimatedModuleSize() - n)
- return i <= 0.05 * e
- }
- selectBestPatterns() {
- const t = this.possibleCenters.length
- if (t < 3) throw new N()
- const e = this.possibleCenters
- let r
- if (t > 3) {
- let n = 0,
- i = 0
- for (const t of this.possibleCenters) {
- const e = t.getEstimatedModuleSize()
- ;(n += e), (i += e * e)
- }
- r = n / t
- let o = Math.sqrt(i / t - r * r)
- e.sort((t, e) => {
- const n = Math.abs(e.getEstimatedModuleSize() - r),
- i = Math.abs(t.getEstimatedModuleSize() - r)
- return n < i ? -1 : n > i ? 1 : 0
- })
- const s = Math.max(0.2 * r, o)
- for (let t = 0; t < e.length && e.length > 3; t++) {
- const n = e[t]
- Math.abs(n.getEstimatedModuleSize() - r) > s && (e.splice(t, 1), t--)
- }
- }
- if (e.length > 3) {
- let t = 0
- for (const r of e) t += r.getEstimatedModuleSize()
- ;(r = t / e.length),
- e.sort((t, e) => {
- if (e.getCount() === t.getCount()) {
- const n = Math.abs(e.getEstimatedModuleSize() - r),
- i = Math.abs(t.getEstimatedModuleSize() - r)
- return n < i ? 1 : n > i ? -1 : 0
- }
- return e.getCount() - t.getCount()
- }),
- e.splice(3)
- }
- return [e[0], e[1], e[2]]
- }
- }
- ;(De.CENTER_QUORUM = 2), (De.MIN_SKIP = 3), (De.MAX_MODULES = 57)
- class Re {
- constructor(t) {
- this.image = t
- }
- getImage() {
- return this.image
- }
- getResultPointCallback() {
- return this.resultPointCallback
- }
- detect(t) {
- this.resultPointCallback = null == t ? null : t.get(E.NEED_RESULT_POINT_CALLBACK)
- const e = new De(this.image, this.resultPointCallback).find(t)
- return this.processFinderPatternInfo(e)
- }
- processFinderPatternInfo(t) {
- const e = t.getTopLeft(),
- r = t.getTopRight(),
- n = t.getBottomLeft(),
- i = this.calculateModuleSize(e, r, n)
- if (i < 1) throw new N('No pattern found in proccess finder.')
- const o = Re.computeDimension(e, r, n, i),
- s = Ae.getProvisionalVersionForDimension(o),
- a = s.getDimensionForVersion() - 7
- let l = null
- if (s.getAlignmentPatternCenters().length > 0) {
- const t = r.getX() - e.getX() + n.getX(),
- o = r.getY() - e.getY() + n.getY(),
- s = 1 - 3 / a,
- c = Math.floor(e.getX() + s * (t - e.getX())),
- h = Math.floor(e.getY() + s * (o - e.getY()))
- for (let t = 4; t <= 16; t <<= 1)
- try {
- l = this.findAlignmentInRegion(i, c, h, t)
- break
- } catch (t) {
- if (!(t instanceof N)) throw t
- }
- }
- const c = Re.createTransform(e, r, n, l, o),
- h = Re.sampleGrid(this.image, c, o)
- let u
- return (u = null === l ? [n, e, r] : [n, e, r, l]), new it(h, u)
- }
- static createTransform(t, e, r, n, i) {
- const o = i - 3.5
- let s, a, l, c
- return (
- null !== n ? ((s = n.getX()), (a = n.getY()), (l = o - 3), (c = l)) : ((s = e.getX() - t.getX() + r.getX()), (a = e.getY() - t.getY() + r.getY()), (l = o), (c = o)),
- lt.quadrilateralToQuadrilateral(3.5, 3.5, o, 3.5, l, c, 3.5, o, t.getX(), t.getY(), e.getX(), e.getY(), s, a, r.getX(), r.getY())
- )
- }
- static sampleGrid(t, e, r) {
- return ht.getInstance().sampleGridWithTransform(t, r, r, e)
- }
- static computeDimension(t, e, r, n) {
- const i = et.round(nt.distance(t, e) / n),
- o = et.round(nt.distance(t, r) / n)
- let s = Math.floor((i + o) / 2) + 7
- switch (3 & s) {
- case 0:
- s++
- break
- case 2:
- s--
- break
- case 3:
- throw new N('Dimensions could be not found.')
- }
- return s
- }
- calculateModuleSize(t, e, r) {
- return (this.calculateModuleSizeOneWay(t, e) + this.calculateModuleSizeOneWay(t, r)) / 2
- }
- calculateModuleSizeOneWay(t, e) {
- const r = this.sizeOfBlackWhiteBlackRunBothWays(Math.floor(t.getX()), Math.floor(t.getY()), Math.floor(e.getX()), Math.floor(e.getY())),
- n = this.sizeOfBlackWhiteBlackRunBothWays(Math.floor(e.getX()), Math.floor(e.getY()), Math.floor(t.getX()), Math.floor(t.getY()))
- return isNaN(r) ? n / 7 : isNaN(n) ? r / 7 : (r + n) / 14
- }
- sizeOfBlackWhiteBlackRunBothWays(t, e, r, n) {
- let i = this.sizeOfBlackWhiteBlackRun(t, e, r, n),
- o = 1,
- s = t - (r - t)
- s < 0 ? ((o = t / (t - s)), (s = 0)) : s >= this.image.getWidth() && ((o = (this.image.getWidth() - 1 - t) / (s - t)), (s = this.image.getWidth() - 1))
- let a = Math.floor(e - (n - e) * o)
- return (
- (o = 1),
- a < 0 ? ((o = e / (e - a)), (a = 0)) : a >= this.image.getHeight() && ((o = (this.image.getHeight() - 1 - e) / (a - e)), (a = this.image.getHeight() - 1)),
- (s = Math.floor(t + (s - t) * o)),
- (i += this.sizeOfBlackWhiteBlackRun(t, e, s, a)),
- i - 1
- )
- }
- sizeOfBlackWhiteBlackRun(t, e, r, n) {
- const i = Math.abs(n - e) > Math.abs(r - t)
- if (i) {
- let i = t
- ;(t = e), (e = i), (i = r), (r = n), (n = i)
- }
- const o = Math.abs(r - t),
- s = Math.abs(n - e)
- let a = -o / 2
- const l = t < r ? 1 : -1,
- c = e < n ? 1 : -1
- let h = 0
- const u = r + l
- for (let r = t, d = e; r !== u; r += l) {
- const l = i ? d : r,
- u = i ? r : d
- if ((1 === h) === this.image.get(l, u)) {
- if (2 === h) return et.distance(r, d, t, e)
- h++
- }
- if (((a += s), a > 0)) {
- if (d === n) break
- ;(d += c), (a -= o)
- }
- }
- return 2 === h ? et.distance(r + l, n, t, e) : NaN
- }
- findAlignmentInRegion(t, e, r, n) {
- const i = Math.floor(n * t),
- o = Math.max(0, e - i),
- s = Math.min(this.image.getWidth() - 1, e + i)
- if (s - o < 3 * t) throw new N('Alignment top exceeds estimated module size.')
- const a = Math.max(0, r - i),
- l = Math.min(this.image.getHeight() - 1, r + i)
- if (l - a < 3 * t) throw new N('Alignment bottom exceeds estimated module size.')
- return new ye(this.image, o, a, s - o, l - a, t, this.resultPointCallback).find()
- }
- }
- class Oe {
- constructor() {
- this.decoder = new _e()
- }
- getDecoder() {
- return this.decoder
- }
- decode(t, e) {
- let r, n
- if (null != e && void 0 !== e.get(E.PURE_BARCODE)) {
- const i = Oe.extractPureBits(t.getBlackMatrix())
- ;(r = this.decoder.decodeBitMatrix(i, e)), (n = Oe.NO_POINTS)
- } else {
- const i = new Re(t.getBlackMatrix()).detect(e)
- ;(r = this.decoder.decodeBitMatrix(i.getBits(), e)), (n = i.getPoints())
- }
- r.getOther() instanceof Se && r.getOther().applyMirroredCorrection(n)
- const i = new F(r.getText(), r.getRawBytes(), void 0, n, k.QR_CODE, void 0),
- o = r.getByteSegments()
- null !== o && i.putMetadata(X.BYTE_SEGMENTS, o)
- const s = r.getECLevel()
- return (
- null !== s && i.putMetadata(X.ERROR_CORRECTION_LEVEL, s),
- r.hasStructuredAppend() &&
- (i.putMetadata(X.STRUCTURED_APPEND_SEQUENCE, r.getStructuredAppendSequenceNumber()), i.putMetadata(X.STRUCTURED_APPEND_PARITY, r.getStructuredAppendParity())),
- i
- )
- }
- reset() {}
- static extractPureBits(t) {
- const e = t.getTopLeftOnBit(),
- r = t.getBottomRightOnBit()
- if (null === e || null === r) throw new N()
- const n = this.moduleSize(e, t)
- let i = e[1],
- o = r[1],
- s = e[0],
- a = r[0]
- if (s >= a || i >= o) throw new N()
- if (o - i != a - s && ((a = s + (o - i)), a >= t.getWidth())) throw new N()
- const l = Math.round((a - s + 1) / n),
- c = Math.round((o - i + 1) / n)
- if (l <= 0 || c <= 0) throw new N()
- if (c !== l) throw new N()
- const h = Math.floor(n / 2)
- ;(i += h), (s += h)
- const u = s + Math.floor((l - 1) * n) - a
- if (u > 0) {
- if (u > h) throw new N()
- s -= u
- }
- const d = i + Math.floor((c - 1) * n) - o
- if (d > 0) {
- if (d > h) throw new N()
- i -= d
- }
- const g = new y(l, c)
- for (let e = 0; e < c; e++) {
- const r = i + Math.floor(e * n)
- for (let i = 0; i < l; i++) t.get(s + Math.floor(i * n), r) && g.set(i, e)
- }
- return g
- }
- static moduleSize(t, e) {
- const r = e.getHeight(),
- n = e.getWidth()
- let i = t[0],
- o = t[1],
- s = !0,
- a = 0
- for (; i < n && o < r; ) {
- if (s !== e.get(i, o)) {
- if (5 == ++a) break
- s = !s
- }
- i++, o++
- }
- if (i === n || o === r) throw new N()
- return (i - t[0]) / 7
- }
- }
- Oe.NO_POINTS = new Array()
- class be {
- PDF417Common() {}
- static getBitCountSum(t) {
- return et.sum(t)
- }
- static toIntArray(t) {
- if (null == t || !t.length) return be.EMPTY_INT_ARRAY
- const e = new Int32Array(t.length)
- let r = 0
- for (const n of t) e[r++] = n
- return e
- }
- static getCodeword(t) {
- const e = f.binarySearch(be.SYMBOL_TABLE, 262143 & t)
- return e < 0 ? -1 : (be.CODEWORD_TABLE[e] - 1) % be.NUMBER_OF_CODEWORDS
- }
- }
- ;(be.NUMBER_OF_CODEWORDS = 929),
- (be.MAX_CODEWORDS_IN_BARCODE = be.NUMBER_OF_CODEWORDS - 1),
- (be.MIN_ROWS_IN_BARCODE = 3),
- (be.MAX_ROWS_IN_BARCODE = 90),
- (be.MODULES_IN_CODEWORD = 17),
- (be.MODULES_IN_STOP_PATTERN = 18),
- (be.BARS_IN_MODULE = 8),
- (be.EMPTY_INT_ARRAY = new Int32Array([])),
- (be.SYMBOL_TABLE = Int32Array.from([
- 66142,
- 66170,
- 66206,
- 66236,
- 66290,
- 66292,
- 66350,
- 66382,
- 66396,
- 66454,
- 66470,
- 66476,
- 66594,
- 66600,
- 66614,
- 66626,
- 66628,
- 66632,
- 66640,
- 66654,
- 66662,
- 66668,
- 66682,
- 66690,
- 66718,
- 66720,
- 66748,
- 66758,
- 66776,
- 66798,
- 66802,
- 66804,
- 66820,
- 66824,
- 66832,
- 66846,
- 66848,
- 66876,
- 66880,
- 66936,
- 66950,
- 66956,
- 66968,
- 66992,
- 67006,
- 67022,
- 67036,
- 67042,
- 67044,
- 67048,
- 67062,
- 67118,
- 67150,
- 67164,
- 67214,
- 67228,
- 67256,
- 67294,
- 67322,
- 67350,
- 67366,
- 67372,
- 67398,
- 67404,
- 67416,
- 67438,
- 67474,
- 67476,
- 67490,
- 67492,
- 67496,
- 67510,
- 67618,
- 67624,
- 67650,
- 67656,
- 67664,
- 67678,
- 67686,
- 67692,
- 67706,
- 67714,
- 67716,
- 67728,
- 67742,
- 67744,
- 67772,
- 67782,
- 67788,
- 67800,
- 67822,
- 67826,
- 67828,
- 67842,
- 67848,
- 67870,
- 67872,
- 67900,
- 67904,
- 67960,
- 67974,
- 67992,
- 68016,
- 68030,
- 68046,
- 68060,
- 68066,
- 68068,
- 68072,
- 68086,
- 68104,
- 68112,
- 68126,
- 68128,
- 68156,
- 68160,
- 68216,
- 68336,
- 68358,
- 68364,
- 68376,
- 68400,
- 68414,
- 68448,
- 68476,
- 68494,
- 68508,
- 68536,
- 68546,
- 68548,
- 68552,
- 68560,
- 68574,
- 68582,
- 68588,
- 68654,
- 68686,
- 68700,
- 68706,
- 68708,
- 68712,
- 68726,
- 68750,
- 68764,
- 68792,
- 68802,
- 68804,
- 68808,
- 68816,
- 68830,
- 68838,
- 68844,
- 68858,
- 68878,
- 68892,
- 68920,
- 68976,
- 68990,
- 68994,
- 68996,
- 69e3,
- 69008,
- 69022,
- 69024,
- 69052,
- 69062,
- 69068,
- 69080,
- 69102,
- 69106,
- 69108,
- 69142,
- 69158,
- 69164,
- 69190,
- 69208,
- 69230,
- 69254,
- 69260,
- 69272,
- 69296,
- 69310,
- 69326,
- 69340,
- 69386,
- 69394,
- 69396,
- 69410,
- 69416,
- 69430,
- 69442,
- 69444,
- 69448,
- 69456,
- 69470,
- 69478,
- 69484,
- 69554,
- 69556,
- 69666,
- 69672,
- 69698,
- 69704,
- 69712,
- 69726,
- 69754,
- 69762,
- 69764,
- 69776,
- 69790,
- 69792,
- 69820,
- 69830,
- 69836,
- 69848,
- 69870,
- 69874,
- 69876,
- 69890,
- 69918,
- 69920,
- 69948,
- 69952,
- 70008,
- 70022,
- 70040,
- 70064,
- 70078,
- 70094,
- 70108,
- 70114,
- 70116,
- 70120,
- 70134,
- 70152,
- 70174,
- 70176,
- 70264,
- 70384,
- 70412,
- 70448,
- 70462,
- 70496,
- 70524,
- 70542,
- 70556,
- 70584,
- 70594,
- 70600,
- 70608,
- 70622,
- 70630,
- 70636,
- 70664,
- 70672,
- 70686,
- 70688,
- 70716,
- 70720,
- 70776,
- 70896,
- 71136,
- 71180,
- 71192,
- 71216,
- 71230,
- 71264,
- 71292,
- 71360,
- 71416,
- 71452,
- 71480,
- 71536,
- 71550,
- 71554,
- 71556,
- 71560,
- 71568,
- 71582,
- 71584,
- 71612,
- 71622,
- 71628,
- 71640,
- 71662,
- 71726,
- 71732,
- 71758,
- 71772,
- 71778,
- 71780,
- 71784,
- 71798,
- 71822,
- 71836,
- 71864,
- 71874,
- 71880,
- 71888,
- 71902,
- 71910,
- 71916,
- 71930,
- 71950,
- 71964,
- 71992,
- 72048,
- 72062,
- 72066,
- 72068,
- 72080,
- 72094,
- 72096,
- 72124,
- 72134,
- 72140,
- 72152,
- 72174,
- 72178,
- 72180,
- 72206,
- 72220,
- 72248,
- 72304,
- 72318,
- 72416,
- 72444,
- 72456,
- 72464,
- 72478,
- 72480,
- 72508,
- 72512,
- 72568,
- 72588,
- 72600,
- 72624,
- 72638,
- 72654,
- 72668,
- 72674,
- 72676,
- 72680,
- 72694,
- 72726,
- 72742,
- 72748,
- 72774,
- 72780,
- 72792,
- 72814,
- 72838,
- 72856,
- 72880,
- 72894,
- 72910,
- 72924,
- 72930,
- 72932,
- 72936,
- 72950,
- 72966,
- 72972,
- 72984,
- 73008,
- 73022,
- 73056,
- 73084,
- 73102,
- 73116,
- 73144,
- 73156,
- 73160,
- 73168,
- 73182,
- 73190,
- 73196,
- 73210,
- 73226,
- 73234,
- 73236,
- 73250,
- 73252,
- 73256,
- 73270,
- 73282,
- 73284,
- 73296,
- 73310,
- 73318,
- 73324,
- 73346,
- 73348,
- 73352,
- 73360,
- 73374,
- 73376,
- 73404,
- 73414,
- 73420,
- 73432,
- 73454,
- 73498,
- 73518,
- 73522,
- 73524,
- 73550,
- 73564,
- 73570,
- 73572,
- 73576,
- 73590,
- 73800,
- 73822,
- 73858,
- 73860,
- 73872,
- 73886,
- 73888,
- 73916,
- 73944,
- 73970,
- 73972,
- 73992,
- 74014,
- 74016,
- 74044,
- 74048,
- 74104,
- 74118,
- 74136,
- 74160,
- 74174,
- 74210,
- 74212,
- 74216,
- 74230,
- 74244,
- 74256,
- 74270,
- 74272,
- 74360,
- 74480,
- 74502,
- 74508,
- 74544,
- 74558,
- 74592,
- 74620,
- 74638,
- 74652,
- 74680,
- 74690,
- 74696,
- 74704,
- 74726,
- 74732,
- 74782,
- 74784,
- 74812,
- 74992,
- 75232,
- 75288,
- 75326,
- 75360,
- 75388,
- 75456,
- 75512,
- 75576,
- 75632,
- 75646,
- 75650,
- 75652,
- 75664,
- 75678,
- 75680,
- 75708,
- 75718,
- 75724,
- 75736,
- 75758,
- 75808,
- 75836,
- 75840,
- 75896,
- 76016,
- 76256,
- 76736,
- 76824,
- 76848,
- 76862,
- 76896,
- 76924,
- 76992,
- 77048,
- 77296,
- 77340,
- 77368,
- 77424,
- 77438,
- 77536,
- 77564,
- 77572,
- 77576,
- 77584,
- 77600,
- 77628,
- 77632,
- 77688,
- 77702,
- 77708,
- 77720,
- 77744,
- 77758,
- 77774,
- 77788,
- 77870,
- 77902,
- 77916,
- 77922,
- 77928,
- 77966,
- 77980,
- 78008,
- 78018,
- 78024,
- 78032,
- 78046,
- 78060,
- 78074,
- 78094,
- 78136,
- 78192,
- 78206,
- 78210,
- 78212,
- 78224,
- 78238,
- 78240,
- 78268,
- 78278,
- 78284,
- 78296,
- 78322,
- 78324,
- 78350,
- 78364,
- 78448,
- 78462,
- 78560,
- 78588,
- 78600,
- 78622,
- 78624,
- 78652,
- 78656,
- 78712,
- 78726,
- 78744,
- 78768,
- 78782,
- 78798,
- 78812,
- 78818,
- 78820,
- 78824,
- 78838,
- 78862,
- 78876,
- 78904,
- 78960,
- 78974,
- 79072,
- 79100,
- 79296,
- 79352,
- 79368,
- 79376,
- 79390,
- 79392,
- 79420,
- 79424,
- 79480,
- 79600,
- 79628,
- 79640,
- 79664,
- 79678,
- 79712,
- 79740,
- 79772,
- 79800,
- 79810,
- 79812,
- 79816,
- 79824,
- 79838,
- 79846,
- 79852,
- 79894,
- 79910,
- 79916,
- 79942,
- 79948,
- 79960,
- 79982,
- 79988,
- 80006,
- 80024,
- 80048,
- 80062,
- 80078,
- 80092,
- 80098,
- 80100,
- 80104,
- 80134,
- 80140,
- 80176,
- 80190,
- 80224,
- 80252,
- 80270,
- 80284,
- 80312,
- 80328,
- 80336,
- 80350,
- 80358,
- 80364,
- 80378,
- 80390,
- 80396,
- 80408,
- 80432,
- 80446,
- 80480,
- 80508,
- 80576,
- 80632,
- 80654,
- 80668,
- 80696,
- 80752,
- 80766,
- 80776,
- 80784,
- 80798,
- 80800,
- 80828,
- 80844,
- 80856,
- 80878,
- 80882,
- 80884,
- 80914,
- 80916,
- 80930,
- 80932,
- 80936,
- 80950,
- 80962,
- 80968,
- 80976,
- 80990,
- 80998,
- 81004,
- 81026,
- 81028,
- 81040,
- 81054,
- 81056,
- 81084,
- 81094,
- 81100,
- 81112,
- 81134,
- 81154,
- 81156,
- 81160,
- 81168,
- 81182,
- 81184,
- 81212,
- 81216,
- 81272,
- 81286,
- 81292,
- 81304,
- 81328,
- 81342,
- 81358,
- 81372,
- 81380,
- 81384,
- 81398,
- 81434,
- 81454,
- 81458,
- 81460,
- 81486,
- 81500,
- 81506,
- 81508,
- 81512,
- 81526,
- 81550,
- 81564,
- 81592,
- 81602,
- 81604,
- 81608,
- 81616,
- 81630,
- 81638,
- 81644,
- 81702,
- 81708,
- 81722,
- 81734,
- 81740,
- 81752,
- 81774,
- 81778,
- 81780,
- 82050,
- 82078,
- 82080,
- 82108,
- 82180,
- 82184,
- 82192,
- 82206,
- 82208,
- 82236,
- 82240,
- 82296,
- 82316,
- 82328,
- 82352,
- 82366,
- 82402,
- 82404,
- 82408,
- 82440,
- 82448,
- 82462,
- 82464,
- 82492,
- 82496,
- 82552,
- 82672,
- 82694,
- 82700,
- 82712,
- 82736,
- 82750,
- 82784,
- 82812,
- 82830,
- 82882,
- 82884,
- 82888,
- 82896,
- 82918,
- 82924,
- 82952,
- 82960,
- 82974,
- 82976,
- 83004,
- 83008,
- 83064,
- 83184,
- 83424,
- 83468,
- 83480,
- 83504,
- 83518,
- 83552,
- 83580,
- 83648,
- 83704,
- 83740,
- 83768,
- 83824,
- 83838,
- 83842,
- 83844,
- 83848,
- 83856,
- 83872,
- 83900,
- 83910,
- 83916,
- 83928,
- 83950,
- 83984,
- 84e3,
- 84028,
- 84032,
- 84088,
- 84208,
- 84448,
- 84928,
- 85040,
- 85054,
- 85088,
- 85116,
- 85184,
- 85240,
- 85488,
- 85560,
- 85616,
- 85630,
- 85728,
- 85756,
- 85764,
- 85768,
- 85776,
- 85790,
- 85792,
- 85820,
- 85824,
- 85880,
- 85894,
- 85900,
- 85912,
- 85936,
- 85966,
- 85980,
- 86048,
- 86080,
- 86136,
- 86256,
- 86496,
- 86976,
- 88160,
- 88188,
- 88256,
- 88312,
- 88560,
- 89056,
- 89200,
- 89214,
- 89312,
- 89340,
- 89536,
- 89592,
- 89608,
- 89616,
- 89632,
- 89664,
- 89720,
- 89840,
- 89868,
- 89880,
- 89904,
- 89952,
- 89980,
- 89998,
- 90012,
- 90040,
- 90190,
- 90204,
- 90254,
- 90268,
- 90296,
- 90306,
- 90308,
- 90312,
- 90334,
- 90382,
- 90396,
- 90424,
- 90480,
- 90494,
- 90500,
- 90504,
- 90512,
- 90526,
- 90528,
- 90556,
- 90566,
- 90572,
- 90584,
- 90610,
- 90612,
- 90638,
- 90652,
- 90680,
- 90736,
- 90750,
- 90848,
- 90876,
- 90884,
- 90888,
- 90896,
- 90910,
- 90912,
- 90940,
- 90944,
- 91e3,
- 91014,
- 91020,
- 91032,
- 91056,
- 91070,
- 91086,
- 91100,
- 91106,
- 91108,
- 91112,
- 91126,
- 91150,
- 91164,
- 91192,
- 91248,
- 91262,
- 91360,
- 91388,
- 91584,
- 91640,
- 91664,
- 91678,
- 91680,
- 91708,
- 91712,
- 91768,
- 91888,
- 91928,
- 91952,
- 91966,
- 92e3,
- 92028,
- 92046,
- 92060,
- 92088,
- 92098,
- 92100,
- 92104,
- 92112,
- 92126,
- 92134,
- 92140,
- 92188,
- 92216,
- 92272,
- 92384,
- 92412,
- 92608,
- 92664,
- 93168,
- 93200,
- 93214,
- 93216,
- 93244,
- 93248,
- 93304,
- 93424,
- 93664,
- 93720,
- 93744,
- 93758,
- 93792,
- 93820,
- 93888,
- 93944,
- 93980,
- 94008,
- 94064,
- 94078,
- 94084,
- 94088,
- 94096,
- 94110,
- 94112,
- 94140,
- 94150,
- 94156,
- 94168,
- 94246,
- 94252,
- 94278,
- 94284,
- 94296,
- 94318,
- 94342,
- 94348,
- 94360,
- 94384,
- 94398,
- 94414,
- 94428,
- 94440,
- 94470,
- 94476,
- 94488,
- 94512,
- 94526,
- 94560,
- 94588,
- 94606,
- 94620,
- 94648,
- 94658,
- 94660,
- 94664,
- 94672,
- 94686,
- 94694,
- 94700,
- 94714,
- 94726,
- 94732,
- 94744,
- 94768,
- 94782,
- 94816,
- 94844,
- 94912,
- 94968,
- 94990,
- 95004,
- 95032,
- 95088,
- 95102,
- 95112,
- 95120,
- 95134,
- 95136,
- 95164,
- 95180,
- 95192,
- 95214,
- 95218,
- 95220,
- 95244,
- 95256,
- 95280,
- 95294,
- 95328,
- 95356,
- 95424,
- 95480,
- 95728,
- 95758,
- 95772,
- 95800,
- 95856,
- 95870,
- 95968,
- 95996,
- 96008,
- 96016,
- 96030,
- 96032,
- 96060,
- 96064,
- 96120,
- 96152,
- 96176,
- 96190,
- 96220,
- 96226,
- 96228,
- 96232,
- 96290,
- 96292,
- 96296,
- 96310,
- 96322,
- 96324,
- 96328,
- 96336,
- 96350,
- 96358,
- 96364,
- 96386,
- 96388,
- 96392,
- 96400,
- 96414,
- 96416,
- 96444,
- 96454,
- 96460,
- 96472,
- 96494,
- 96498,
- 96500,
- 96514,
- 96516,
- 96520,
- 96528,
- 96542,
- 96544,
- 96572,
- 96576,
- 96632,
- 96646,
- 96652,
- 96664,
- 96688,
- 96702,
- 96718,
- 96732,
- 96738,
- 96740,
- 96744,
- 96758,
- 96772,
- 96776,
- 96784,
- 96798,
- 96800,
- 96828,
- 96832,
- 96888,
- 97008,
- 97030,
- 97036,
- 97048,
- 97072,
- 97086,
- 97120,
- 97148,
- 97166,
- 97180,
- 97208,
- 97220,
- 97224,
- 97232,
- 97246,
- 97254,
- 97260,
- 97326,
- 97330,
- 97332,
- 97358,
- 97372,
- 97378,
- 97380,
- 97384,
- 97398,
- 97422,
- 97436,
- 97464,
- 97474,
- 97476,
- 97480,
- 97488,
- 97502,
- 97510,
- 97516,
- 97550,
- 97564,
- 97592,
- 97648,
- 97666,
- 97668,
- 97672,
- 97680,
- 97694,
- 97696,
- 97724,
- 97734,
- 97740,
- 97752,
- 97774,
- 97830,
- 97836,
- 97850,
- 97862,
- 97868,
- 97880,
- 97902,
- 97906,
- 97908,
- 97926,
- 97932,
- 97944,
- 97968,
- 97998,
- 98012,
- 98018,
- 98020,
- 98024,
- 98038,
- 98618,
- 98674,
- 98676,
- 98838,
- 98854,
- 98874,
- 98892,
- 98904,
- 98926,
- 98930,
- 98932,
- 98968,
- 99006,
- 99042,
- 99044,
- 99048,
- 99062,
- 99166,
- 99194,
- 99246,
- 99286,
- 99350,
- 99366,
- 99372,
- 99386,
- 99398,
- 99416,
- 99438,
- 99442,
- 99444,
- 99462,
- 99504,
- 99518,
- 99534,
- 99548,
- 99554,
- 99556,
- 99560,
- 99574,
- 99590,
- 99596,
- 99608,
- 99632,
- 99646,
- 99680,
- 99708,
- 99726,
- 99740,
- 99768,
- 99778,
- 99780,
- 99784,
- 99792,
- 99806,
- 99814,
- 99820,
- 99834,
- 99858,
- 99860,
- 99874,
- 99880,
- 99894,
- 99906,
- 99920,
- 99934,
- 99962,
- 99970,
- 99972,
- 99976,
- 99984,
- 99998,
- 1e5,
- 100028,
- 100038,
- 100044,
- 100056,
- 100078,
- 100082,
- 100084,
- 100142,
- 100174,
- 100188,
- 100246,
- 100262,
- 100268,
- 100306,
- 100308,
- 100390,
- 100396,
- 100410,
- 100422,
- 100428,
- 100440,
- 100462,
- 100466,
- 100468,
- 100486,
- 100504,
- 100528,
- 100542,
- 100558,
- 100572,
- 100578,
- 100580,
- 100584,
- 100598,
- 100620,
- 100656,
- 100670,
- 100704,
- 100732,
- 100750,
- 100792,
- 100802,
- 100808,
- 100816,
- 100830,
- 100838,
- 100844,
- 100858,
- 100888,
- 100912,
- 100926,
- 100960,
- 100988,
- 101056,
- 101112,
- 101148,
- 101176,
- 101232,
- 101246,
- 101250,
- 101252,
- 101256,
- 101264,
- 101278,
- 101280,
- 101308,
- 101318,
- 101324,
- 101336,
- 101358,
- 101362,
- 101364,
- 101410,
- 101412,
- 101416,
- 101430,
- 101442,
- 101448,
- 101456,
- 101470,
- 101478,
- 101498,
- 101506,
- 101508,
- 101520,
- 101534,
- 101536,
- 101564,
- 101580,
- 101618,
- 101620,
- 101636,
- 101640,
- 101648,
- 101662,
- 101664,
- 101692,
- 101696,
- 101752,
- 101766,
- 101784,
- 101838,
- 101858,
- 101860,
- 101864,
- 101934,
- 101938,
- 101940,
- 101966,
- 101980,
- 101986,
- 101988,
- 101992,
- 102030,
- 102044,
- 102072,
- 102082,
- 102084,
- 102088,
- 102096,
- 102138,
- 102166,
- 102182,
- 102188,
- 102214,
- 102220,
- 102232,
- 102254,
- 102282,
- 102290,
- 102292,
- 102306,
- 102308,
- 102312,
- 102326,
- 102444,
- 102458,
- 102470,
- 102476,
- 102488,
- 102514,
- 102516,
- 102534,
- 102552,
- 102576,
- 102590,
- 102606,
- 102620,
- 102626,
- 102632,
- 102646,
- 102662,
- 102668,
- 102704,
- 102718,
- 102752,
- 102780,
- 102798,
- 102812,
- 102840,
- 102850,
- 102856,
- 102864,
- 102878,
- 102886,
- 102892,
- 102906,
- 102936,
- 102974,
- 103008,
- 103036,
- 103104,
- 103160,
- 103224,
- 103280,
- 103294,
- 103298,
- 103300,
- 103312,
- 103326,
- 103328,
- 103356,
- 103366,
- 103372,
- 103384,
- 103406,
- 103410,
- 103412,
- 103472,
- 103486,
- 103520,
- 103548,
- 103616,
- 103672,
- 103920,
- 103992,
- 104048,
- 104062,
- 104160,
- 104188,
- 104194,
- 104196,
- 104200,
- 104208,
- 104224,
- 104252,
- 104256,
- 104312,
- 104326,
- 104332,
- 104344,
- 104368,
- 104382,
- 104398,
- 104412,
- 104418,
- 104420,
- 104424,
- 104482,
- 104484,
- 104514,
- 104520,
- 104528,
- 104542,
- 104550,
- 104570,
- 104578,
- 104580,
- 104592,
- 104606,
- 104608,
- 104636,
- 104652,
- 104690,
- 104692,
- 104706,
- 104712,
- 104734,
- 104736,
- 104764,
- 104768,
- 104824,
- 104838,
- 104856,
- 104910,
- 104930,
- 104932,
- 104936,
- 104968,
- 104976,
- 104990,
- 104992,
- 105020,
- 105024,
- 105080,
- 105200,
- 105240,
- 105278,
- 105312,
- 105372,
- 105410,
- 105412,
- 105416,
- 105424,
- 105446,
- 105518,
- 105524,
- 105550,
- 105564,
- 105570,
- 105572,
- 105576,
- 105614,
- 105628,
- 105656,
- 105666,
- 105672,
- 105680,
- 105702,
- 105722,
- 105742,
- 105756,
- 105784,
- 105840,
- 105854,
- 105858,
- 105860,
- 105864,
- 105872,
- 105888,
- 105932,
- 105970,
- 105972,
- 106006,
- 106022,
- 106028,
- 106054,
- 106060,
- 106072,
- 106100,
- 106118,
- 106124,
- 106136,
- 106160,
- 106174,
- 106190,
- 106210,
- 106212,
- 106216,
- 106250,
- 106258,
- 106260,
- 106274,
- 106276,
- 106280,
- 106306,
- 106308,
- 106312,
- 106320,
- 106334,
- 106348,
- 106394,
- 106414,
- 106418,
- 106420,
- 106566,
- 106572,
- 106610,
- 106612,
- 106630,
- 106636,
- 106648,
- 106672,
- 106686,
- 106722,
- 106724,
- 106728,
- 106742,
- 106758,
- 106764,
- 106776,
- 106800,
- 106814,
- 106848,
- 106876,
- 106894,
- 106908,
- 106936,
- 106946,
- 106948,
- 106952,
- 106960,
- 106974,
- 106982,
- 106988,
- 107032,
- 107056,
- 107070,
- 107104,
- 107132,
- 107200,
- 107256,
- 107292,
- 107320,
- 107376,
- 107390,
- 107394,
- 107396,
- 107400,
- 107408,
- 107422,
- 107424,
- 107452,
- 107462,
- 107468,
- 107480,
- 107502,
- 107506,
- 107508,
- 107544,
- 107568,
- 107582,
- 107616,
- 107644,
- 107712,
- 107768,
- 108016,
- 108060,
- 108088,
- 108144,
- 108158,
- 108256,
- 108284,
- 108290,
- 108292,
- 108296,
- 108304,
- 108318,
- 108320,
- 108348,
- 108352,
- 108408,
- 108422,
- 108428,
- 108440,
- 108464,
- 108478,
- 108494,
- 108508,
- 108514,
- 108516,
- 108520,
- 108592,
- 108640,
- 108668,
- 108736,
- 108792,
- 109040,
- 109536,
- 109680,
- 109694,
- 109792,
- 109820,
- 110016,
- 110072,
- 110084,
- 110088,
- 110096,
- 110112,
- 110140,
- 110144,
- 110200,
- 110320,
- 110342,
- 110348,
- 110360,
- 110384,
- 110398,
- 110432,
- 110460,
- 110478,
- 110492,
- 110520,
- 110532,
- 110536,
- 110544,
- 110558,
- 110658,
- 110686,
- 110714,
- 110722,
- 110724,
- 110728,
- 110736,
- 110750,
- 110752,
- 110780,
- 110796,
- 110834,
- 110836,
- 110850,
- 110852,
- 110856,
- 110864,
- 110878,
- 110880,
- 110908,
- 110912,
- 110968,
- 110982,
- 111e3,
- 111054,
- 111074,
- 111076,
- 111080,
- 111108,
- 111112,
- 111120,
- 111134,
- 111136,
- 111164,
- 111168,
- 111224,
- 111344,
- 111372,
- 111422,
- 111456,
- 111516,
- 111554,
- 111556,
- 111560,
- 111568,
- 111590,
- 111632,
- 111646,
- 111648,
- 111676,
- 111680,
- 111736,
- 111856,
- 112096,
- 112152,
- 112224,
- 112252,
- 112320,
- 112440,
- 112514,
- 112516,
- 112520,
- 112528,
- 112542,
- 112544,
- 112588,
- 112686,
- 112718,
- 112732,
- 112782,
- 112796,
- 112824,
- 112834,
- 112836,
- 112840,
- 112848,
- 112870,
- 112890,
- 112910,
- 112924,
- 112952,
- 113008,
- 113022,
- 113026,
- 113028,
- 113032,
- 113040,
- 113054,
- 113056,
- 113100,
- 113138,
- 113140,
- 113166,
- 113180,
- 113208,
- 113264,
- 113278,
- 113376,
- 113404,
- 113416,
- 113424,
- 113440,
- 113468,
- 113472,
- 113560,
- 113614,
- 113634,
- 113636,
- 113640,
- 113686,
- 113702,
- 113708,
- 113734,
- 113740,
- 113752,
- 113778,
- 113780,
- 113798,
- 113804,
- 113816,
- 113840,
- 113854,
- 113870,
- 113890,
- 113892,
- 113896,
- 113926,
- 113932,
- 113944,
- 113968,
- 113982,
- 114016,
- 114044,
- 114076,
- 114114,
- 114116,
- 114120,
- 114128,
- 114150,
- 114170,
- 114194,
- 114196,
- 114210,
- 114212,
- 114216,
- 114242,
- 114244,
- 114248,
- 114256,
- 114270,
- 114278,
- 114306,
- 114308,
- 114312,
- 114320,
- 114334,
- 114336,
- 114364,
- 114380,
- 114420,
- 114458,
- 114478,
- 114482,
- 114484,
- 114510,
- 114524,
- 114530,
- 114532,
- 114536,
- 114842,
- 114866,
- 114868,
- 114970,
- 114994,
- 114996,
- 115042,
- 115044,
- 115048,
- 115062,
- 115130,
- 115226,
- 115250,
- 115252,
- 115278,
- 115292,
- 115298,
- 115300,
- 115304,
- 115318,
- 115342,
- 115394,
- 115396,
- 115400,
- 115408,
- 115422,
- 115430,
- 115436,
- 115450,
- 115478,
- 115494,
- 115514,
- 115526,
- 115532,
- 115570,
- 115572,
- 115738,
- 115758,
- 115762,
- 115764,
- 115790,
- 115804,
- 115810,
- 115812,
- 115816,
- 115830,
- 115854,
- 115868,
- 115896,
- 115906,
- 115912,
- 115920,
- 115934,
- 115942,
- 115948,
- 115962,
- 115996,
- 116024,
- 116080,
- 116094,
- 116098,
- 116100,
- 116104,
- 116112,
- 116126,
- 116128,
- 116156,
- 116166,
- 116172,
- 116184,
- 116206,
- 116210,
- 116212,
- 116246,
- 116262,
- 116268,
- 116282,
- 116294,
- 116300,
- 116312,
- 116334,
- 116338,
- 116340,
- 116358,
- 116364,
- 116376,
- 116400,
- 116414,
- 116430,
- 116444,
- 116450,
- 116452,
- 116456,
- 116498,
- 116500,
- 116514,
- 116520,
- 116534,
- 116546,
- 116548,
- 116552,
- 116560,
- 116574,
- 116582,
- 116588,
- 116602,
- 116654,
- 116694,
- 116714,
- 116762,
- 116782,
- 116786,
- 116788,
- 116814,
- 116828,
- 116834,
- 116836,
- 116840,
- 116854,
- 116878,
- 116892,
- 116920,
- 116930,
- 116936,
- 116944,
- 116958,
- 116966,
- 116972,
- 116986,
- 117006,
- 117048,
- 117104,
- 117118,
- 117122,
- 117124,
- 117136,
- 117150,
- 117152,
- 117180,
- 117190,
- 117196,
- 117208,
- 117230,
- 117234,
- 117236,
- 117304,
- 117360,
- 117374,
- 117472,
- 117500,
- 117506,
- 117508,
- 117512,
- 117520,
- 117536,
- 117564,
- 117568,
- 117624,
- 117638,
- 117644,
- 117656,
- 117680,
- 117694,
- 117710,
- 117724,
- 117730,
- 117732,
- 117736,
- 117750,
- 117782,
- 117798,
- 117804,
- 117818,
- 117830,
- 117848,
- 117874,
- 117876,
- 117894,
- 117936,
- 117950,
- 117966,
- 117986,
- 117988,
- 117992,
- 118022,
- 118028,
- 118040,
- 118064,
- 118078,
- 118112,
- 118140,
- 118172,
- 118210,
- 118212,
- 118216,
- 118224,
- 118238,
- 118246,
- 118266,
- 118306,
- 118312,
- 118338,
- 118352,
- 118366,
- 118374,
- 118394,
- 118402,
- 118404,
- 118408,
- 118416,
- 118430,
- 118432,
- 118460,
- 118476,
- 118514,
- 118516,
- 118574,
- 118578,
- 118580,
- 118606,
- 118620,
- 118626,
- 118628,
- 118632,
- 118678,
- 118694,
- 118700,
- 118730,
- 118738,
- 118740,
- 118830,
- 118834,
- 118836,
- 118862,
- 118876,
- 118882,
- 118884,
- 118888,
- 118902,
- 118926,
- 118940,
- 118968,
- 118978,
- 118980,
- 118984,
- 118992,
- 119006,
- 119014,
- 119020,
- 119034,
- 119068,
- 119096,
- 119152,
- 119166,
- 119170,
- 119172,
- 119176,
- 119184,
- 119198,
- 119200,
- 119228,
- 119238,
- 119244,
- 119256,
- 119278,
- 119282,
- 119284,
- 119324,
- 119352,
- 119408,
- 119422,
- 119520,
- 119548,
- 119554,
- 119556,
- 119560,
- 119568,
- 119582,
- 119584,
- 119612,
- 119616,
- 119672,
- 119686,
- 119692,
- 119704,
- 119728,
- 119742,
- 119758,
- 119772,
- 119778,
- 119780,
- 119784,
- 119798,
- 119920,
- 119934,
- 120032,
- 120060,
- 120256,
- 120312,
- 120324,
- 120328,
- 120336,
- 120352,
- 120384,
- 120440,
- 120560,
- 120582,
- 120588,
- 120600,
- 120624,
- 120638,
- 120672,
- 120700,
- 120718,
- 120732,
- 120760,
- 120770,
- 120772,
- 120776,
- 120784,
- 120798,
- 120806,
- 120812,
- 120870,
- 120876,
- 120890,
- 120902,
- 120908,
- 120920,
- 120946,
- 120948,
- 120966,
- 120972,
- 120984,
- 121008,
- 121022,
- 121038,
- 121058,
- 121060,
- 121064,
- 121078,
- 121100,
- 121112,
- 121136,
- 121150,
- 121184,
- 121212,
- 121244,
- 121282,
- 121284,
- 121288,
- 121296,
- 121318,
- 121338,
- 121356,
- 121368,
- 121392,
- 121406,
- 121440,
- 121468,
- 121536,
- 121592,
- 121656,
- 121730,
- 121732,
- 121736,
- 121744,
- 121758,
- 121760,
- 121804,
- 121842,
- 121844,
- 121890,
- 121922,
- 121924,
- 121928,
- 121936,
- 121950,
- 121958,
- 121978,
- 121986,
- 121988,
- 121992,
- 122e3,
- 122014,
- 122016,
- 122044,
- 122060,
- 122098,
- 122100,
- 122116,
- 122120,
- 122128,
- 122142,
- 122144,
- 122172,
- 122176,
- 122232,
- 122246,
- 122264,
- 122318,
- 122338,
- 122340,
- 122344,
- 122414,
- 122418,
- 122420,
- 122446,
- 122460,
- 122466,
- 122468,
- 122472,
- 122510,
- 122524,
- 122552,
- 122562,
- 122564,
- 122568,
- 122576,
- 122598,
- 122618,
- 122646,
- 122662,
- 122668,
- 122694,
- 122700,
- 122712,
- 122738,
- 122740,
- 122762,
- 122770,
- 122772,
- 122786,
- 122788,
- 122792,
- 123018,
- 123026,
- 123028,
- 123042,
- 123044,
- 123048,
- 123062,
- 123098,
- 123146,
- 123154,
- 123156,
- 123170,
- 123172,
- 123176,
- 123190,
- 123202,
- 123204,
- 123208,
- 123216,
- 123238,
- 123244,
- 123258,
- 123290,
- 123314,
- 123316,
- 123402,
- 123410,
- 123412,
- 123426,
- 123428,
- 123432,
- 123446,
- 123458,
- 123464,
- 123472,
- 123486,
- 123494,
- 123500,
- 123514,
- 123522,
- 123524,
- 123528,
- 123536,
- 123552,
- 123580,
- 123590,
- 123596,
- 123608,
- 123630,
- 123634,
- 123636,
- 123674,
- 123698,
- 123700,
- 123740,
- 123746,
- 123748,
- 123752,
- 123834,
- 123914,
- 123922,
- 123924,
- 123938,
- 123944,
- 123958,
- 123970,
- 123976,
- 123984,
- 123998,
- 124006,
- 124012,
- 124026,
- 124034,
- 124036,
- 124048,
- 124062,
- 124064,
- 124092,
- 124102,
- 124108,
- 124120,
- 124142,
- 124146,
- 124148,
- 124162,
- 124164,
- 124168,
- 124176,
- 124190,
- 124192,
- 124220,
- 124224,
- 124280,
- 124294,
- 124300,
- 124312,
- 124336,
- 124350,
- 124366,
- 124380,
- 124386,
- 124388,
- 124392,
- 124406,
- 124442,
- 124462,
- 124466,
- 124468,
- 124494,
- 124508,
- 124514,
- 124520,
- 124558,
- 124572,
- 124600,
- 124610,
- 124612,
- 124616,
- 124624,
- 124646,
- 124666,
- 124694,
- 124710,
- 124716,
- 124730,
- 124742,
- 124748,
- 124760,
- 124786,
- 124788,
- 124818,
- 124820,
- 124834,
- 124836,
- 124840,
- 124854,
- 124946,
- 124948,
- 124962,
- 124964,
- 124968,
- 124982,
- 124994,
- 124996,
- 125e3,
- 125008,
- 125022,
- 125030,
- 125036,
- 125050,
- 125058,
- 125060,
- 125064,
- 125072,
- 125086,
- 125088,
- 125116,
- 125126,
- 125132,
- 125144,
- 125166,
- 125170,
- 125172,
- 125186,
- 125188,
- 125192,
- 125200,
- 125216,
- 125244,
- 125248,
- 125304,
- 125318,
- 125324,
- 125336,
- 125360,
- 125374,
- 125390,
- 125404,
- 125410,
- 125412,
- 125416,
- 125430,
- 125444,
- 125448,
- 125456,
- 125472,
- 125504,
- 125560,
- 125680,
- 125702,
- 125708,
- 125720,
- 125744,
- 125758,
- 125792,
- 125820,
- 125838,
- 125852,
- 125880,
- 125890,
- 125892,
- 125896,
- 125904,
- 125918,
- 125926,
- 125932,
- 125978,
- 125998,
- 126002,
- 126004,
- 126030,
- 126044,
- 126050,
- 126052,
- 126056,
- 126094,
- 126108,
- 126136,
- 126146,
- 126148,
- 126152,
- 126160,
- 126182,
- 126202,
- 126222,
- 126236,
- 126264,
- 126320,
- 126334,
- 126338,
- 126340,
- 126344,
- 126352,
- 126366,
- 126368,
- 126412,
- 126450,
- 126452,
- 126486,
- 126502,
- 126508,
- 126522,
- 126534,
- 126540,
- 126552,
- 126574,
- 126578,
- 126580,
- 126598,
- 126604,
- 126616,
- 126640,
- 126654,
- 126670,
- 126684,
- 126690,
- 126692,
- 126696,
- 126738,
- 126754,
- 126756,
- 126760,
- 126774,
- 126786,
- 126788,
- 126792,
- 126800,
- 126814,
- 126822,
- 126828,
- 126842,
- 126894,
- 126898,
- 126900,
- 126934,
- 127126,
- 127142,
- 127148,
- 127162,
- 127178,
- 127186,
- 127188,
- 127254,
- 127270,
- 127276,
- 127290,
- 127302,
- 127308,
- 127320,
- 127342,
- 127346,
- 127348,
- 127370,
- 127378,
- 127380,
- 127394,
- 127396,
- 127400,
- 127450,
- 127510,
- 127526,
- 127532,
- 127546,
- 127558,
- 127576,
- 127598,
- 127602,
- 127604,
- 127622,
- 127628,
- 127640,
- 127664,
- 127678,
- 127694,
- 127708,
- 127714,
- 127716,
- 127720,
- 127734,
- 127754,
- 127762,
- 127764,
- 127778,
- 127784,
- 127810,
- 127812,
- 127816,
- 127824,
- 127838,
- 127846,
- 127866,
- 127898,
- 127918,
- 127922,
- 127924,
- 128022,
- 128038,
- 128044,
- 128058,
- 128070,
- 128076,
- 128088,
- 128110,
- 128114,
- 128116,
- 128134,
- 128140,
- 128152,
- 128176,
- 128190,
- 128206,
- 128220,
- 128226,
- 128228,
- 128232,
- 128246,
- 128262,
- 128268,
- 128280,
- 128304,
- 128318,
- 128352,
- 128380,
- 128398,
- 128412,
- 128440,
- 128450,
- 128452,
- 128456,
- 128464,
- 128478,
- 128486,
- 128492,
- 128506,
- 128522,
- 128530,
- 128532,
- 128546,
- 128548,
- 128552,
- 128566,
- 128578,
- 128580,
- 128584,
- 128592,
- 128606,
- 128614,
- 128634,
- 128642,
- 128644,
- 128648,
- 128656,
- 128670,
- 128672,
- 128700,
- 128716,
- 128754,
- 128756,
- 128794,
- 128814,
- 128818,
- 128820,
- 128846,
- 128860,
- 128866,
- 128868,
- 128872,
- 128886,
- 128918,
- 128934,
- 128940,
- 128954,
- 128978,
- 128980,
- 129178,
- 129198,
- 129202,
- 129204,
- 129238,
- 129258,
- 129306,
- 129326,
- 129330,
- 129332,
- 129358,
- 129372,
- 129378,
- 129380,
- 129384,
- 129398,
- 129430,
- 129446,
- 129452,
- 129466,
- 129482,
- 129490,
- 129492,
- 129562,
- 129582,
- 129586,
- 129588,
- 129614,
- 129628,
- 129634,
- 129636,
- 129640,
- 129654,
- 129678,
- 129692,
- 129720,
- 129730,
- 129732,
- 129736,
- 129744,
- 129758,
- 129766,
- 129772,
- 129814,
- 129830,
- 129836,
- 129850,
- 129862,
- 129868,
- 129880,
- 129902,
- 129906,
- 129908,
- 129930,
- 129938,
- 129940,
- 129954,
- 129956,
- 129960,
- 129974,
- 130010
- ])),
- (be.CODEWORD_TABLE = Int32Array.from([
- 2627,
- 1819,
- 2622,
- 2621,
- 1813,
- 1812,
- 2729,
- 2724,
- 2723,
- 2779,
- 2774,
- 2773,
- 902,
- 896,
- 908,
- 868,
- 865,
- 861,
- 859,
- 2511,
- 873,
- 871,
- 1780,
- 835,
- 2493,
- 825,
- 2491,
- 842,
- 837,
- 844,
- 1764,
- 1762,
- 811,
- 810,
- 809,
- 2483,
- 807,
- 2482,
- 806,
- 2480,
- 815,
- 814,
- 813,
- 812,
- 2484,
- 817,
- 816,
- 1745,
- 1744,
- 1742,
- 1746,
- 2655,
- 2637,
- 2635,
- 2626,
- 2625,
- 2623,
- 2628,
- 1820,
- 2752,
- 2739,
- 2737,
- 2728,
- 2727,
- 2725,
- 2730,
- 2785,
- 2783,
- 2778,
- 2777,
- 2775,
- 2780,
- 787,
- 781,
- 747,
- 739,
- 736,
- 2413,
- 754,
- 752,
- 1719,
- 692,
- 689,
- 681,
- 2371,
- 678,
- 2369,
- 700,
- 697,
- 694,
- 703,
- 1688,
- 1686,
- 642,
- 638,
- 2343,
- 631,
- 2341,
- 627,
- 2338,
- 651,
- 646,
- 643,
- 2345,
- 654,
- 652,
- 1652,
- 1650,
- 1647,
- 1654,
- 601,
- 599,
- 2322,
- 596,
- 2321,
- 594,
- 2319,
- 2317,
- 611,
- 610,
- 608,
- 606,
- 2324,
- 603,
- 2323,
- 615,
- 614,
- 612,
- 1617,
- 1616,
- 1614,
- 1612,
- 616,
- 1619,
- 1618,
- 2575,
- 2538,
- 2536,
- 905,
- 901,
- 898,
- 909,
- 2509,
- 2507,
- 2504,
- 870,
- 867,
- 864,
- 860,
- 2512,
- 875,
- 872,
- 1781,
- 2490,
- 2489,
- 2487,
- 2485,
- 1748,
- 836,
- 834,
- 832,
- 830,
- 2494,
- 827,
- 2492,
- 843,
- 841,
- 839,
- 845,
- 1765,
- 1763,
- 2701,
- 2676,
- 2674,
- 2653,
- 2648,
- 2656,
- 2634,
- 2633,
- 2631,
- 2629,
- 1821,
- 2638,
- 2636,
- 2770,
- 2763,
- 2761,
- 2750,
- 2745,
- 2753,
- 2736,
- 2735,
- 2733,
- 2731,
- 1848,
- 2740,
- 2738,
- 2786,
- 2784,
- 591,
- 588,
- 576,
- 569,
- 566,
- 2296,
- 1590,
- 537,
- 534,
- 526,
- 2276,
- 522,
- 2274,
- 545,
- 542,
- 539,
- 548,
- 1572,
- 1570,
- 481,
- 2245,
- 466,
- 2242,
- 462,
- 2239,
- 492,
- 485,
- 482,
- 2249,
- 496,
- 494,
- 1534,
- 1531,
- 1528,
- 1538,
- 413,
- 2196,
- 406,
- 2191,
- 2188,
- 425,
- 419,
- 2202,
- 415,
- 2199,
- 432,
- 430,
- 427,
- 1472,
- 1467,
- 1464,
- 433,
- 1476,
- 1474,
- 368,
- 367,
- 2160,
- 365,
- 2159,
- 362,
- 2157,
- 2155,
- 2152,
- 378,
- 377,
- 375,
- 2166,
- 372,
- 2165,
- 369,
- 2162,
- 383,
- 381,
- 379,
- 2168,
- 1419,
- 1418,
- 1416,
- 1414,
- 385,
- 1411,
- 384,
- 1423,
- 1422,
- 1420,
- 1424,
- 2461,
- 802,
- 2441,
- 2439,
- 790,
- 786,
- 783,
- 794,
- 2409,
- 2406,
- 2403,
- 750,
- 742,
- 738,
- 2414,
- 756,
- 753,
- 1720,
- 2367,
- 2365,
- 2362,
- 2359,
- 1663,
- 693,
- 691,
- 684,
- 2373,
- 680,
- 2370,
- 702,
- 699,
- 696,
- 704,
- 1690,
- 1687,
- 2337,
- 2336,
- 2334,
- 2332,
- 1624,
- 2329,
- 1622,
- 640,
- 637,
- 2344,
- 634,
- 2342,
- 630,
- 2340,
- 650,
- 648,
- 645,
- 2346,
- 655,
- 653,
- 1653,
- 1651,
- 1649,
- 1655,
- 2612,
- 2597,
- 2595,
- 2571,
- 2568,
- 2565,
- 2576,
- 2534,
- 2529,
- 2526,
- 1787,
- 2540,
- 2537,
- 907,
- 904,
- 900,
- 910,
- 2503,
- 2502,
- 2500,
- 2498,
- 1768,
- 2495,
- 1767,
- 2510,
- 2508,
- 2506,
- 869,
- 866,
- 863,
- 2513,
- 876,
- 874,
- 1782,
- 2720,
- 2713,
- 2711,
- 2697,
- 2694,
- 2691,
- 2702,
- 2672,
- 2670,
- 2664,
- 1828,
- 2678,
- 2675,
- 2647,
- 2646,
- 2644,
- 2642,
- 1823,
- 2639,
- 1822,
- 2654,
- 2652,
- 2650,
- 2657,
- 2771,
- 1855,
- 2765,
- 2762,
- 1850,
- 1849,
- 2751,
- 2749,
- 2747,
- 2754,
- 353,
- 2148,
- 344,
- 342,
- 336,
- 2142,
- 332,
- 2140,
- 345,
- 1375,
- 1373,
- 306,
- 2130,
- 299,
- 2128,
- 295,
- 2125,
- 319,
- 314,
- 311,
- 2132,
- 1354,
- 1352,
- 1349,
- 1356,
- 262,
- 257,
- 2101,
- 253,
- 2096,
- 2093,
- 274,
- 273,
- 267,
- 2107,
- 263,
- 2104,
- 280,
- 278,
- 275,
- 1316,
- 1311,
- 1308,
- 1320,
- 1318,
- 2052,
- 202,
- 2050,
- 2044,
- 2040,
- 219,
- 2063,
- 212,
- 2060,
- 208,
- 2055,
- 224,
- 221,
- 2066,
- 1260,
- 1258,
- 1252,
- 231,
- 1248,
- 229,
- 1266,
- 1264,
- 1261,
- 1268,
- 155,
- 1998,
- 153,
- 1996,
- 1994,
- 1991,
- 1988,
- 165,
- 164,
- 2007,
- 162,
- 2006,
- 159,
- 2003,
- 2e3,
- 172,
- 171,
- 169,
- 2012,
- 166,
- 2010,
- 1186,
- 1184,
- 1182,
- 1179,
- 175,
- 1176,
- 173,
- 1192,
- 1191,
- 1189,
- 1187,
- 176,
- 1194,
- 1193,
- 2313,
- 2307,
- 2305,
- 592,
- 589,
- 2294,
- 2292,
- 2289,
- 578,
- 572,
- 568,
- 2297,
- 580,
- 1591,
- 2272,
- 2267,
- 2264,
- 1547,
- 538,
- 536,
- 529,
- 2278,
- 525,
- 2275,
- 547,
- 544,
- 541,
- 1574,
- 1571,
- 2237,
- 2235,
- 2229,
- 1493,
- 2225,
- 1489,
- 478,
- 2247,
- 470,
- 2244,
- 465,
- 2241,
- 493,
- 488,
- 484,
- 2250,
- 498,
- 495,
- 1536,
- 1533,
- 1530,
- 1539,
- 2187,
- 2186,
- 2184,
- 2182,
- 1432,
- 2179,
- 1430,
- 2176,
- 1427,
- 414,
- 412,
- 2197,
- 409,
- 2195,
- 405,
- 2193,
- 2190,
- 426,
- 424,
- 421,
- 2203,
- 418,
- 2201,
- 431,
- 429,
- 1473,
- 1471,
- 1469,
- 1466,
- 434,
- 1477,
- 1475,
- 2478,
- 2472,
- 2470,
- 2459,
- 2457,
- 2454,
- 2462,
- 803,
- 2437,
- 2432,
- 2429,
- 1726,
- 2443,
- 2440,
- 792,
- 789,
- 785,
- 2401,
- 2399,
- 2393,
- 1702,
- 2389,
- 1699,
- 2411,
- 2408,
- 2405,
- 745,
- 741,
- 2415,
- 758,
- 755,
- 1721,
- 2358,
- 2357,
- 2355,
- 2353,
- 1661,
- 2350,
- 1660,
- 2347,
- 1657,
- 2368,
- 2366,
- 2364,
- 2361,
- 1666,
- 690,
- 687,
- 2374,
- 683,
- 2372,
- 701,
- 698,
- 705,
- 1691,
- 1689,
- 2619,
- 2617,
- 2610,
- 2608,
- 2605,
- 2613,
- 2593,
- 2588,
- 2585,
- 1803,
- 2599,
- 2596,
- 2563,
- 2561,
- 2555,
- 1797,
- 2551,
- 1795,
- 2573,
- 2570,
- 2567,
- 2577,
- 2525,
- 2524,
- 2522,
- 2520,
- 1786,
- 2517,
- 1785,
- 2514,
- 1783,
- 2535,
- 2533,
- 2531,
- 2528,
- 1788,
- 2541,
- 2539,
- 906,
- 903,
- 911,
- 2721,
- 1844,
- 2715,
- 2712,
- 1838,
- 1836,
- 2699,
- 2696,
- 2693,
- 2703,
- 1827,
- 1826,
- 1824,
- 2673,
- 2671,
- 2669,
- 2666,
- 1829,
- 2679,
- 2677,
- 1858,
- 1857,
- 2772,
- 1854,
- 1853,
- 1851,
- 1856,
- 2766,
- 2764,
- 143,
- 1987,
- 139,
- 1986,
- 135,
- 133,
- 131,
- 1984,
- 128,
- 1983,
- 125,
- 1981,
- 138,
- 137,
- 136,
- 1985,
- 1133,
- 1132,
- 1130,
- 112,
- 110,
- 1974,
- 107,
- 1973,
- 104,
- 1971,
- 1969,
- 122,
- 121,
- 119,
- 117,
- 1977,
- 114,
- 1976,
- 124,
- 1115,
- 1114,
- 1112,
- 1110,
- 1117,
- 1116,
- 84,
- 83,
- 1953,
- 81,
- 1952,
- 78,
- 1950,
- 1948,
- 1945,
- 94,
- 93,
- 91,
- 1959,
- 88,
- 1958,
- 85,
- 1955,
- 99,
- 97,
- 95,
- 1961,
- 1086,
- 1085,
- 1083,
- 1081,
- 1078,
- 100,
- 1090,
- 1089,
- 1087,
- 1091,
- 49,
- 47,
- 1917,
- 44,
- 1915,
- 1913,
- 1910,
- 1907,
- 59,
- 1926,
- 56,
- 1925,
- 53,
- 1922,
- 1919,
- 66,
- 64,
- 1931,
- 61,
- 1929,
- 1042,
- 1040,
- 1038,
- 71,
- 1035,
- 70,
- 1032,
- 68,
- 1048,
- 1047,
- 1045,
- 1043,
- 1050,
- 1049,
- 12,
- 10,
- 1869,
- 1867,
- 1864,
- 1861,
- 21,
- 1880,
- 19,
- 1877,
- 1874,
- 1871,
- 28,
- 1888,
- 25,
- 1886,
- 22,
- 1883,
- 982,
- 980,
- 977,
- 974,
- 32,
- 30,
- 991,
- 989,
- 987,
- 984,
- 34,
- 995,
- 994,
- 992,
- 2151,
- 2150,
- 2147,
- 2146,
- 2144,
- 356,
- 355,
- 354,
- 2149,
- 2139,
- 2138,
- 2136,
- 2134,
- 1359,
- 343,
- 341,
- 338,
- 2143,
- 335,
- 2141,
- 348,
- 347,
- 346,
- 1376,
- 1374,
- 2124,
- 2123,
- 2121,
- 2119,
- 1326,
- 2116,
- 1324,
- 310,
- 308,
- 305,
- 2131,
- 302,
- 2129,
- 298,
- 2127,
- 320,
- 318,
- 316,
- 313,
- 2133,
- 322,
- 321,
- 1355,
- 1353,
- 1351,
- 1357,
- 2092,
- 2091,
- 2089,
- 2087,
- 1276,
- 2084,
- 1274,
- 2081,
- 1271,
- 259,
- 2102,
- 256,
- 2100,
- 252,
- 2098,
- 2095,
- 272,
- 269,
- 2108,
- 266,
- 2106,
- 281,
- 279,
- 277,
- 1317,
- 1315,
- 1313,
- 1310,
- 282,
- 1321,
- 1319,
- 2039,
- 2037,
- 2035,
- 2032,
- 1203,
- 2029,
- 1200,
- 1197,
- 207,
- 2053,
- 205,
- 2051,
- 201,
- 2049,
- 2046,
- 2043,
- 220,
- 218,
- 2064,
- 215,
- 2062,
- 211,
- 2059,
- 228,
- 226,
- 223,
- 2069,
- 1259,
- 1257,
- 1254,
- 232,
- 1251,
- 230,
- 1267,
- 1265,
- 1263,
- 2316,
- 2315,
- 2312,
- 2311,
- 2309,
- 2314,
- 2304,
- 2303,
- 2301,
- 2299,
- 1593,
- 2308,
- 2306,
- 590,
- 2288,
- 2287,
- 2285,
- 2283,
- 1578,
- 2280,
- 1577,
- 2295,
- 2293,
- 2291,
- 579,
- 577,
- 574,
- 571,
- 2298,
- 582,
- 581,
- 1592,
- 2263,
- 2262,
- 2260,
- 2258,
- 1545,
- 2255,
- 1544,
- 2252,
- 1541,
- 2273,
- 2271,
- 2269,
- 2266,
- 1550,
- 535,
- 532,
- 2279,
- 528,
- 2277,
- 546,
- 543,
- 549,
- 1575,
- 1573,
- 2224,
- 2222,
- 2220,
- 1486,
- 2217,
- 1485,
- 2214,
- 1482,
- 1479,
- 2238,
- 2236,
- 2234,
- 2231,
- 1496,
- 2228,
- 1492,
- 480,
- 477,
- 2248,
- 473,
- 2246,
- 469,
- 2243,
- 490,
- 487,
- 2251,
- 497,
- 1537,
- 1535,
- 1532,
- 2477,
- 2476,
- 2474,
- 2479,
- 2469,
- 2468,
- 2466,
- 2464,
- 1730,
- 2473,
- 2471,
- 2453,
- 2452,
- 2450,
- 2448,
- 1729,
- 2445,
- 1728,
- 2460,
- 2458,
- 2456,
- 2463,
- 805,
- 804,
- 2428,
- 2427,
- 2425,
- 2423,
- 1725,
- 2420,
- 1724,
- 2417,
- 1722,
- 2438,
- 2436,
- 2434,
- 2431,
- 1727,
- 2444,
- 2442,
- 793,
- 791,
- 788,
- 795,
- 2388,
- 2386,
- 2384,
- 1697,
- 2381,
- 1696,
- 2378,
- 1694,
- 1692,
- 2402,
- 2400,
- 2398,
- 2395,
- 1703,
- 2392,
- 1701,
- 2412,
- 2410,
- 2407,
- 751,
- 748,
- 744,
- 2416,
- 759,
- 757,
- 1807,
- 2620,
- 2618,
- 1806,
- 1805,
- 2611,
- 2609,
- 2607,
- 2614,
- 1802,
- 1801,
- 1799,
- 2594,
- 2592,
- 2590,
- 2587,
- 1804,
- 2600,
- 2598,
- 1794,
- 1793,
- 1791,
- 1789,
- 2564,
- 2562,
- 2560,
- 2557,
- 1798,
- 2554,
- 1796,
- 2574,
- 2572,
- 2569,
- 2578,
- 1847,
- 1846,
- 2722,
- 1843,
- 1842,
- 1840,
- 1845,
- 2716,
- 2714,
- 1835,
- 1834,
- 1832,
- 1830,
- 1839,
- 1837,
- 2700,
- 2698,
- 2695,
- 2704,
- 1817,
- 1811,
- 1810,
- 897,
- 862,
- 1777,
- 829,
- 826,
- 838,
- 1760,
- 1758,
- 808,
- 2481,
- 1741,
- 1740,
- 1738,
- 1743,
- 2624,
- 1818,
- 2726,
- 2776,
- 782,
- 740,
- 737,
- 1715,
- 686,
- 679,
- 695,
- 1682,
- 1680,
- 639,
- 628,
- 2339,
- 647,
- 644,
- 1645,
- 1643,
- 1640,
- 1648,
- 602,
- 600,
- 597,
- 595,
- 2320,
- 593,
- 2318,
- 609,
- 607,
- 604,
- 1611,
- 1610,
- 1608,
- 1606,
- 613,
- 1615,
- 1613,
- 2328,
- 926,
- 924,
- 892,
- 886,
- 899,
- 857,
- 850,
- 2505,
- 1778,
- 824,
- 823,
- 821,
- 819,
- 2488,
- 818,
- 2486,
- 833,
- 831,
- 828,
- 840,
- 1761,
- 1759,
- 2649,
- 2632,
- 2630,
- 2746,
- 2734,
- 2732,
- 2782,
- 2781,
- 570,
- 567,
- 1587,
- 531,
- 527,
- 523,
- 540,
- 1566,
- 1564,
- 476,
- 467,
- 463,
- 2240,
- 486,
- 483,
- 1524,
- 1521,
- 1518,
- 1529,
- 411,
- 403,
- 2192,
- 399,
- 2189,
- 423,
- 416,
- 1462,
- 1457,
- 1454,
- 428,
- 1468,
- 1465,
- 2210,
- 366,
- 363,
- 2158,
- 360,
- 2156,
- 357,
- 2153,
- 376,
- 373,
- 370,
- 2163,
- 1410,
- 1409,
- 1407,
- 1405,
- 382,
- 1402,
- 380,
- 1417,
- 1415,
- 1412,
- 1421,
- 2175,
- 2174,
- 777,
- 774,
- 771,
- 784,
- 732,
- 725,
- 722,
- 2404,
- 743,
- 1716,
- 676,
- 674,
- 668,
- 2363,
- 665,
- 2360,
- 685,
- 1684,
- 1681,
- 626,
- 624,
- 622,
- 2335,
- 620,
- 2333,
- 617,
- 2330,
- 641,
- 635,
- 649,
- 1646,
- 1644,
- 1642,
- 2566,
- 928,
- 925,
- 2530,
- 2527,
- 894,
- 891,
- 888,
- 2501,
- 2499,
- 2496,
- 858,
- 856,
- 854,
- 851,
- 1779,
- 2692,
- 2668,
- 2665,
- 2645,
- 2643,
- 2640,
- 2651,
- 2768,
- 2759,
- 2757,
- 2744,
- 2743,
- 2741,
- 2748,
- 352,
- 1382,
- 340,
- 337,
- 333,
- 1371,
- 1369,
- 307,
- 300,
- 296,
- 2126,
- 315,
- 312,
- 1347,
- 1342,
- 1350,
- 261,
- 258,
- 250,
- 2097,
- 246,
- 2094,
- 271,
- 268,
- 264,
- 1306,
- 1301,
- 1298,
- 276,
- 1312,
- 1309,
- 2115,
- 203,
- 2048,
- 195,
- 2045,
- 191,
- 2041,
- 213,
- 209,
- 2056,
- 1246,
- 1244,
- 1238,
- 225,
- 1234,
- 222,
- 1256,
- 1253,
- 1249,
- 1262,
- 2080,
- 2079,
- 154,
- 1997,
- 150,
- 1995,
- 147,
- 1992,
- 1989,
- 163,
- 160,
- 2004,
- 156,
- 2001,
- 1175,
- 1174,
- 1172,
- 1170,
- 1167,
- 170,
- 1164,
- 167,
- 1185,
- 1183,
- 1180,
- 1177,
- 174,
- 1190,
- 1188,
- 2025,
- 2024,
- 2022,
- 587,
- 586,
- 564,
- 559,
- 556,
- 2290,
- 573,
- 1588,
- 520,
- 518,
- 512,
- 2268,
- 508,
- 2265,
- 530,
- 1568,
- 1565,
- 461,
- 457,
- 2233,
- 450,
- 2230,
- 446,
- 2226,
- 479,
- 471,
- 489,
- 1526,
- 1523,
- 1520,
- 397,
- 395,
- 2185,
- 392,
- 2183,
- 389,
- 2180,
- 2177,
- 410,
- 2194,
- 402,
- 422,
- 1463,
- 1461,
- 1459,
- 1456,
- 1470,
- 2455,
- 799,
- 2433,
- 2430,
- 779,
- 776,
- 773,
- 2397,
- 2394,
- 2390,
- 734,
- 728,
- 724,
- 746,
- 1717,
- 2356,
- 2354,
- 2351,
- 2348,
- 1658,
- 677,
- 675,
- 673,
- 670,
- 667,
- 688,
- 1685,
- 1683,
- 2606,
- 2589,
- 2586,
- 2559,
- 2556,
- 2552,
- 927,
- 2523,
- 2521,
- 2518,
- 2515,
- 1784,
- 2532,
- 895,
- 893,
- 890,
- 2718,
- 2709,
- 2707,
- 2689,
- 2687,
- 2684,
- 2663,
- 2662,
- 2660,
- 2658,
- 1825,
- 2667,
- 2769,
- 1852,
- 2760,
- 2758,
- 142,
- 141,
- 1139,
- 1138,
- 134,
- 132,
- 129,
- 126,
- 1982,
- 1129,
- 1128,
- 1126,
- 1131,
- 113,
- 111,
- 108,
- 105,
- 1972,
- 101,
- 1970,
- 120,
- 118,
- 115,
- 1109,
- 1108,
- 1106,
- 1104,
- 123,
- 1113,
- 1111,
- 82,
- 79,
- 1951,
- 75,
- 1949,
- 72,
- 1946,
- 92,
- 89,
- 86,
- 1956,
- 1077,
- 1076,
- 1074,
- 1072,
- 98,
- 1069,
- 96,
- 1084,
- 1082,
- 1079,
- 1088,
- 1968,
- 1967,
- 48,
- 45,
- 1916,
- 42,
- 1914,
- 39,
- 1911,
- 1908,
- 60,
- 57,
- 54,
- 1923,
- 50,
- 1920,
- 1031,
- 1030,
- 1028,
- 1026,
- 67,
- 1023,
- 65,
- 1020,
- 62,
- 1041,
- 1039,
- 1036,
- 1033,
- 69,
- 1046,
- 1044,
- 1944,
- 1943,
- 1941,
- 11,
- 9,
- 1868,
- 7,
- 1865,
- 1862,
- 1859,
- 20,
- 1878,
- 16,
- 1875,
- 13,
- 1872,
- 970,
- 968,
- 966,
- 963,
- 29,
- 960,
- 26,
- 23,
- 983,
- 981,
- 978,
- 975,
- 33,
- 971,
- 31,
- 990,
- 988,
- 985,
- 1906,
- 1904,
- 1902,
- 993,
- 351,
- 2145,
- 1383,
- 331,
- 330,
- 328,
- 326,
- 2137,
- 323,
- 2135,
- 339,
- 1372,
- 1370,
- 294,
- 293,
- 291,
- 289,
- 2122,
- 286,
- 2120,
- 283,
- 2117,
- 309,
- 303,
- 317,
- 1348,
- 1346,
- 1344,
- 245,
- 244,
- 242,
- 2090,
- 239,
- 2088,
- 236,
- 2085,
- 2082,
- 260,
- 2099,
- 249,
- 270,
- 1307,
- 1305,
- 1303,
- 1300,
- 1314,
- 189,
- 2038,
- 186,
- 2036,
- 183,
- 2033,
- 2030,
- 2026,
- 206,
- 198,
- 2047,
- 194,
- 216,
- 1247,
- 1245,
- 1243,
- 1240,
- 227,
- 1237,
- 1255,
- 2310,
- 2302,
- 2300,
- 2286,
- 2284,
- 2281,
- 565,
- 563,
- 561,
- 558,
- 575,
- 1589,
- 2261,
- 2259,
- 2256,
- 2253,
- 1542,
- 521,
- 519,
- 517,
- 514,
- 2270,
- 511,
- 533,
- 1569,
- 1567,
- 2223,
- 2221,
- 2218,
- 2215,
- 1483,
- 2211,
- 1480,
- 459,
- 456,
- 453,
- 2232,
- 449,
- 474,
- 491,
- 1527,
- 1525,
- 1522,
- 2475,
- 2467,
- 2465,
- 2451,
- 2449,
- 2446,
- 801,
- 800,
- 2426,
- 2424,
- 2421,
- 2418,
- 1723,
- 2435,
- 780,
- 778,
- 775,
- 2387,
- 2385,
- 2382,
- 2379,
- 1695,
- 2375,
- 1693,
- 2396,
- 735,
- 733,
- 730,
- 727,
- 749,
- 1718,
- 2616,
- 2615,
- 2604,
- 2603,
- 2601,
- 2584,
- 2583,
- 2581,
- 2579,
- 1800,
- 2591,
- 2550,
- 2549,
- 2547,
- 2545,
- 1792,
- 2542,
- 1790,
- 2558,
- 929,
- 2719,
- 1841,
- 2710,
- 2708,
- 1833,
- 1831,
- 2690,
- 2688,
- 2686,
- 1815,
- 1809,
- 1808,
- 1774,
- 1756,
- 1754,
- 1737,
- 1736,
- 1734,
- 1739,
- 1816,
- 1711,
- 1676,
- 1674,
- 633,
- 629,
- 1638,
- 1636,
- 1633,
- 1641,
- 598,
- 1605,
- 1604,
- 1602,
- 1600,
- 605,
- 1609,
- 1607,
- 2327,
- 887,
- 853,
- 1775,
- 822,
- 820,
- 1757,
- 1755,
- 1584,
- 524,
- 1560,
- 1558,
- 468,
- 464,
- 1514,
- 1511,
- 1508,
- 1519,
- 408,
- 404,
- 400,
- 1452,
- 1447,
- 1444,
- 417,
- 1458,
- 1455,
- 2208,
- 364,
- 361,
- 358,
- 2154,
- 1401,
- 1400,
- 1398,
- 1396,
- 374,
- 1393,
- 371,
- 1408,
- 1406,
- 1403,
- 1413,
- 2173,
- 2172,
- 772,
- 726,
- 723,
- 1712,
- 672,
- 669,
- 666,
- 682,
- 1678,
- 1675,
- 625,
- 623,
- 621,
- 618,
- 2331,
- 636,
- 632,
- 1639,
- 1637,
- 1635,
- 920,
- 918,
- 884,
- 880,
- 889,
- 849,
- 848,
- 847,
- 846,
- 2497,
- 855,
- 852,
- 1776,
- 2641,
- 2742,
- 2787,
- 1380,
- 334,
- 1367,
- 1365,
- 301,
- 297,
- 1340,
- 1338,
- 1335,
- 1343,
- 255,
- 251,
- 247,
- 1296,
- 1291,
- 1288,
- 265,
- 1302,
- 1299,
- 2113,
- 204,
- 196,
- 192,
- 2042,
- 1232,
- 1230,
- 1224,
- 214,
- 1220,
- 210,
- 1242,
- 1239,
- 1235,
- 1250,
- 2077,
- 2075,
- 151,
- 148,
- 1993,
- 144,
- 1990,
- 1163,
- 1162,
- 1160,
- 1158,
- 1155,
- 161,
- 1152,
- 157,
- 1173,
- 1171,
- 1168,
- 1165,
- 168,
- 1181,
- 1178,
- 2021,
- 2020,
- 2018,
- 2023,
- 585,
- 560,
- 557,
- 1585,
- 516,
- 509,
- 1562,
- 1559,
- 458,
- 447,
- 2227,
- 472,
- 1516,
- 1513,
- 1510,
- 398,
- 396,
- 393,
- 390,
- 2181,
- 386,
- 2178,
- 407,
- 1453,
- 1451,
- 1449,
- 1446,
- 420,
- 1460,
- 2209,
- 769,
- 764,
- 720,
- 712,
- 2391,
- 729,
- 1713,
- 664,
- 663,
- 661,
- 659,
- 2352,
- 656,
- 2349,
- 671,
- 1679,
- 1677,
- 2553,
- 922,
- 919,
- 2519,
- 2516,
- 885,
- 883,
- 881,
- 2685,
- 2661,
- 2659,
- 2767,
- 2756,
- 2755,
- 140,
- 1137,
- 1136,
- 130,
- 127,
- 1125,
- 1124,
- 1122,
- 1127,
- 109,
- 106,
- 102,
- 1103,
- 1102,
- 1100,
- 1098,
- 116,
- 1107,
- 1105,
- 1980,
- 80,
- 76,
- 73,
- 1947,
- 1068,
- 1067,
- 1065,
- 1063,
- 90,
- 1060,
- 87,
- 1075,
- 1073,
- 1070,
- 1080,
- 1966,
- 1965,
- 46,
- 43,
- 40,
- 1912,
- 36,
- 1909,
- 1019,
- 1018,
- 1016,
- 1014,
- 58,
- 1011,
- 55,
- 1008,
- 51,
- 1029,
- 1027,
- 1024,
- 1021,
- 63,
- 1037,
- 1034,
- 1940,
- 1939,
- 1937,
- 1942,
- 8,
- 1866,
- 4,
- 1863,
- 1,
- 1860,
- 956,
- 954,
- 952,
- 949,
- 946,
- 17,
- 14,
- 969,
- 967,
- 964,
- 961,
- 27,
- 957,
- 24,
- 979,
- 976,
- 972,
- 1901,
- 1900,
- 1898,
- 1896,
- 986,
- 1905,
- 1903,
- 350,
- 349,
- 1381,
- 329,
- 327,
- 324,
- 1368,
- 1366,
- 292,
- 290,
- 287,
- 284,
- 2118,
- 304,
- 1341,
- 1339,
- 1337,
- 1345,
- 243,
- 240,
- 237,
- 2086,
- 233,
- 2083,
- 254,
- 1297,
- 1295,
- 1293,
- 1290,
- 1304,
- 2114,
- 190,
- 187,
- 184,
- 2034,
- 180,
- 2031,
- 177,
- 2027,
- 199,
- 1233,
- 1231,
- 1229,
- 1226,
- 217,
- 1223,
- 1241,
- 2078,
- 2076,
- 584,
- 555,
- 554,
- 552,
- 550,
- 2282,
- 562,
- 1586,
- 507,
- 506,
- 504,
- 502,
- 2257,
- 499,
- 2254,
- 515,
- 1563,
- 1561,
- 445,
- 443,
- 441,
- 2219,
- 438,
- 2216,
- 435,
- 2212,
- 460,
- 454,
- 475,
- 1517,
- 1515,
- 1512,
- 2447,
- 798,
- 797,
- 2422,
- 2419,
- 770,
- 768,
- 766,
- 2383,
- 2380,
- 2376,
- 721,
- 719,
- 717,
- 714,
- 731,
- 1714,
- 2602,
- 2582,
- 2580,
- 2548,
- 2546,
- 2543,
- 923,
- 921,
- 2717,
- 2706,
- 2705,
- 2683,
- 2682,
- 2680,
- 1771,
- 1752,
- 1750,
- 1733,
- 1732,
- 1731,
- 1735,
- 1814,
- 1707,
- 1670,
- 1668,
- 1631,
- 1629,
- 1626,
- 1634,
- 1599,
- 1598,
- 1596,
- 1594,
- 1603,
- 1601,
- 2326,
- 1772,
- 1753,
- 1751,
- 1581,
- 1554,
- 1552,
- 1504,
- 1501,
- 1498,
- 1509,
- 1442,
- 1437,
- 1434,
- 401,
- 1448,
- 1445,
- 2206,
- 1392,
- 1391,
- 1389,
- 1387,
- 1384,
- 359,
- 1399,
- 1397,
- 1394,
- 1404,
- 2171,
- 2170,
- 1708,
- 1672,
- 1669,
- 619,
- 1632,
- 1630,
- 1628,
- 1773,
- 1378,
- 1363,
- 1361,
- 1333,
- 1328,
- 1336,
- 1286,
- 1281,
- 1278,
- 248,
- 1292,
- 1289,
- 2111,
- 1218,
- 1216,
- 1210,
- 197,
- 1206,
- 193,
- 1228,
- 1225,
- 1221,
- 1236,
- 2073,
- 2071,
- 1151,
- 1150,
- 1148,
- 1146,
- 152,
- 1143,
- 149,
- 1140,
- 145,
- 1161,
- 1159,
- 1156,
- 1153,
- 158,
- 1169,
- 1166,
- 2017,
- 2016,
- 2014,
- 2019,
- 1582,
- 510,
- 1556,
- 1553,
- 452,
- 448,
- 1506,
- 1500,
- 394,
- 391,
- 387,
- 1443,
- 1441,
- 1439,
- 1436,
- 1450,
- 2207,
- 765,
- 716,
- 713,
- 1709,
- 662,
- 660,
- 657,
- 1673,
- 1671,
- 916,
- 914,
- 879,
- 878,
- 877,
- 882,
- 1135,
- 1134,
- 1121,
- 1120,
- 1118,
- 1123,
- 1097,
- 1096,
- 1094,
- 1092,
- 103,
- 1101,
- 1099,
- 1979,
- 1059,
- 1058,
- 1056,
- 1054,
- 77,
- 1051,
- 74,
- 1066,
- 1064,
- 1061,
- 1071,
- 1964,
- 1963,
- 1007,
- 1006,
- 1004,
- 1002,
- 999,
- 41,
- 996,
- 37,
- 1017,
- 1015,
- 1012,
- 1009,
- 52,
- 1025,
- 1022,
- 1936,
- 1935,
- 1933,
- 1938,
- 942,
- 940,
- 938,
- 935,
- 932,
- 5,
- 2,
- 955,
- 953,
- 950,
- 947,
- 18,
- 943,
- 15,
- 965,
- 962,
- 958,
- 1895,
- 1894,
- 1892,
- 1890,
- 973,
- 1899,
- 1897,
- 1379,
- 325,
- 1364,
- 1362,
- 288,
- 285,
- 1334,
- 1332,
- 1330,
- 241,
- 238,
- 234,
- 1287,
- 1285,
- 1283,
- 1280,
- 1294,
- 2112,
- 188,
- 185,
- 181,
- 178,
- 2028,
- 1219,
- 1217,
- 1215,
- 1212,
- 200,
- 1209,
- 1227,
- 2074,
- 2072,
- 583,
- 553,
- 551,
- 1583,
- 505,
- 503,
- 500,
- 513,
- 1557,
- 1555,
- 444,
- 442,
- 439,
- 436,
- 2213,
- 455,
- 451,
- 1507,
- 1505,
- 1502,
- 796,
- 763,
- 762,
- 760,
- 767,
- 711,
- 710,
- 708,
- 706,
- 2377,
- 718,
- 715,
- 1710,
- 2544,
- 917,
- 915,
- 2681,
- 1627,
- 1597,
- 1595,
- 2325,
- 1769,
- 1749,
- 1747,
- 1499,
- 1438,
- 1435,
- 2204,
- 1390,
- 1388,
- 1385,
- 1395,
- 2169,
- 2167,
- 1704,
- 1665,
- 1662,
- 1625,
- 1623,
- 1620,
- 1770,
- 1329,
- 1282,
- 1279,
- 2109,
- 1214,
- 1207,
- 1222,
- 2068,
- 2065,
- 1149,
- 1147,
- 1144,
- 1141,
- 146,
- 1157,
- 1154,
- 2013,
- 2011,
- 2008,
- 2015,
- 1579,
- 1549,
- 1546,
- 1495,
- 1487,
- 1433,
- 1431,
- 1428,
- 1425,
- 388,
- 1440,
- 2205,
- 1705,
- 658,
- 1667,
- 1664,
- 1119,
- 1095,
- 1093,
- 1978,
- 1057,
- 1055,
- 1052,
- 1062,
- 1962,
- 1960,
- 1005,
- 1003,
- 1e3,
- 997,
- 38,
- 1013,
- 1010,
- 1932,
- 1930,
- 1927,
- 1934,
- 941,
- 939,
- 936,
- 933,
- 6,
- 930,
- 3,
- 951,
- 948,
- 944,
- 1889,
- 1887,
- 1884,
- 1881,
- 959,
- 1893,
- 1891,
- 35,
- 1377,
- 1360,
- 1358,
- 1327,
- 1325,
- 1322,
- 1331,
- 1277,
- 1275,
- 1272,
- 1269,
- 235,
- 1284,
- 2110,
- 1205,
- 1204,
- 1201,
- 1198,
- 182,
- 1195,
- 179,
- 1213,
- 2070,
- 2067,
- 1580,
- 501,
- 1551,
- 1548,
- 440,
- 437,
- 1497,
- 1494,
- 1490,
- 1503,
- 761,
- 709,
- 707,
- 1706,
- 913,
- 912,
- 2198,
- 1386,
- 2164,
- 2161,
- 1621,
- 1766,
- 2103,
- 1208,
- 2058,
- 2054,
- 1145,
- 1142,
- 2005,
- 2002,
- 1999,
- 2009,
- 1488,
- 1429,
- 1426,
- 2200,
- 1698,
- 1659,
- 1656,
- 1975,
- 1053,
- 1957,
- 1954,
- 1001,
- 998,
- 1924,
- 1921,
- 1918,
- 1928,
- 937,
- 934,
- 931,
- 1879,
- 1876,
- 1873,
- 1870,
- 945,
- 1885,
- 1882,
- 1323,
- 1273,
- 1270,
- 2105,
- 1202,
- 1199,
- 1196,
- 1211,
- 2061,
- 2057,
- 1576,
- 1543,
- 1540,
- 1484,
- 1481,
- 1478,
- 1491,
- 1700
- ]))
- class Le {
- constructor(t, e) {
- ;(this.bits = t), (this.points = e)
- }
- getBits() {
- return this.bits
- }
- getPoints() {
- return this.points
- }
- }
- class Be {
- static detectMultiple(t, e, r) {
- let n = t.getBlackMatrix(),
- i = Be.detect(r, n)
- return i.length || ((n = n.clone()), n.rotate180(), (i = Be.detect(r, n))), new Le(n, i)
- }
- static detect(t, e) {
- const r = new Array()
- let n = 0,
- i = 0,
- o = !1
- for (; n < e.getHeight(); ) {
- const s = Be.findVertices(e, n, i)
- if (null != s[0] || null != s[3]) {
- if (((o = !0), r.push(s), !t)) break
- null != s[2] ? ((i = Math.trunc(s[2].getX())), (n = Math.trunc(s[2].getY()))) : ((i = Math.trunc(s[4].getX())), (n = Math.trunc(s[4].getY())))
- } else {
- if (!o) break
- ;(o = !1), (i = 0)
- for (const t of r) null != t[1] && (n = Math.trunc(Math.max(n, t[1].getY()))), null != t[3] && (n = Math.max(n, Math.trunc(t[3].getY())))
- n += Be.ROW_STEP
- }
- }
- return r
- }
- static findVertices(t, e, r) {
- const n = t.getHeight(),
- i = t.getWidth(),
- o = new Array(8)
- return (
- Be.copyToResult(o, Be.findRowsWithPattern(t, n, i, e, r, Be.START_PATTERN), Be.INDEXES_START_PATTERN),
- null != o[4] && ((r = Math.trunc(o[4].getX())), (e = Math.trunc(o[4].getY()))),
- Be.copyToResult(o, Be.findRowsWithPattern(t, n, i, e, r, Be.STOP_PATTERN), Be.INDEXES_STOP_PATTERN),
- o
- )
- }
- static copyToResult(t, e, r) {
- for (let n = 0; n < r.length; n++) t[r[n]] = e[n]
- }
- static findRowsWithPattern(t, e, r, n, i, o) {
- const s = new Array(4)
- let a = !1
- const l = new Int32Array(o.length)
- for (; n < e; n += Be.ROW_STEP) {
- let e = Be.findGuardPattern(t, i, n, r, !1, o, l)
- if (null != e) {
- for (; n > 0; ) {
- const s = Be.findGuardPattern(t, i, --n, r, !1, o, l)
- if (null == s) {
- n++
- break
- }
- e = s
- }
- ;(s[0] = new nt(e[0], n)), (s[1] = new nt(e[1], n)), (a = !0)
- break
- }
- }
- let c = n + 1
- if (a) {
- let n = 0,
- i = Int32Array.from([Math.trunc(s[0].getX()), Math.trunc(s[1].getX())])
- for (; c < e; c++) {
- const e = Be.findGuardPattern(t, i[0], c, r, !1, o, l)
- if (null != e && Math.abs(i[0] - e[0]) < Be.MAX_PATTERN_DRIFT && Math.abs(i[1] - e[1]) < Be.MAX_PATTERN_DRIFT) (i = e), (n = 0)
- else {
- if (n > Be.SKIPPED_ROW_COUNT_MAX) break
- n++
- }
- }
- ;(c -= n + 1), (s[2] = new nt(i[0], c)), (s[3] = new nt(i[1], c))
- }
- return c - n < Be.BARCODE_MIN_HEIGHT && f.fill(s, null), s
- }
- static findGuardPattern(t, e, r, n, i, o, s) {
- f.fillWithin(s, 0, s.length, 0)
- let a = e,
- l = 0
- for (; t.get(a, r) && a > 0 && l++ < Be.MAX_PIXEL_DRIFT; ) a--
- let c = a,
- h = 0,
- d = o.length
- for (let e = i; c < n; c++)
- if (t.get(c, r) !== e) s[h]++
- else {
- if (h === d - 1) {
- if (Be.patternMatchVariance(s, o, Be.MAX_INDIVIDUAL_VARIANCE) < Be.MAX_AVG_VARIANCE) return new Int32Array([a, c])
- ;(a += s[0] + s[1]), u.arraycopy(s, 2, s, 0, h - 1), (s[h - 1] = 0), (s[h] = 0), h--
- } else h++
- ;(s[h] = 1), (e = !e)
- }
- return h === d - 1 && Be.patternMatchVariance(s, o, Be.MAX_INDIVIDUAL_VARIANCE) < Be.MAX_AVG_VARIANCE ? new Int32Array([a, c - 1]) : null
- }
- static patternMatchVariance(t, e, r) {
- let n = t.length,
- i = 0,
- o = 0
- for (let r = 0; r < n; r++) (i += t[r]), (o += e[r])
- if (i < o) return 1 / 0
- let s = i / o
- r *= s
- let a = 0
- for (let i = 0; i < n; i++) {
- let n = t[i],
- o = e[i] * s,
- l = n > o ? n - o : o - n
- if (l > r) return 1 / 0
- a += l
- }
- return a / i
- }
- }
- ;(Be.INDEXES_START_PATTERN = Int32Array.from([0, 4, 1, 5])),
- (Be.INDEXES_STOP_PATTERN = Int32Array.from([6, 2, 7, 3])),
- (Be.MAX_AVG_VARIANCE = 0.42),
- (Be.MAX_INDIVIDUAL_VARIANCE = 0.8),
- (Be.START_PATTERN = Int32Array.from([8, 1, 1, 1, 1, 1, 1, 3])),
- (Be.STOP_PATTERN = Int32Array.from([7, 1, 1, 3, 1, 1, 1, 2, 1])),
- (Be.MAX_PIXEL_DRIFT = 3),
- (Be.MAX_PATTERN_DRIFT = 5),
- (Be.SKIPPED_ROW_COUNT_MAX = 25),
- (Be.ROW_STEP = 5),
- (Be.BARCODE_MIN_HEIGHT = 10)
- class Pe {
- constructor(t, e) {
- if (0 === e.length) throw new a()
- this.field = t
- let r = e.length
- if (r > 1 && 0 === e[0]) {
- let t = 1
- for (; t < r && 0 === e[t]; ) t++
- t === r ? (this.coefficients = new Int32Array([0])) : ((this.coefficients = new Int32Array(r - t)), u.arraycopy(e, t, this.coefficients, 0, this.coefficients.length))
- } else this.coefficients = e
- }
- getCoefficients() {
- return this.coefficients
- }
- getDegree() {
- return this.coefficients.length - 1
- }
- isZero() {
- return 0 === this.coefficients[0]
- }
- getCoefficient(t) {
- return this.coefficients[this.coefficients.length - 1 - t]
- }
- evaluateAt(t) {
- if (0 === t) return this.getCoefficient(0)
- if (1 === t) {
- let t = 0
- for (let e of this.coefficients) t = this.field.add(t, e)
- return t
- }
- let e = this.coefficients[0],
- r = this.coefficients.length
- for (let n = 1; n < r; n++) e = this.field.add(this.field.multiply(t, e), this.coefficients[n])
- return e
- }
- add(t) {
- if (!this.field.equals(t.field)) throw new a('ModulusPolys do not have same ModulusGF field')
- if (this.isZero()) return t
- if (t.isZero()) return this
- let e = this.coefficients,
- r = t.coefficients
- if (e.length > r.length) {
- let t = e
- ;(e = r), (r = t)
- }
- let n = new Int32Array(r.length),
- i = r.length - e.length
- u.arraycopy(r, 0, n, 0, i)
- for (let t = i; t < r.length; t++) n[t] = this.field.add(e[t - i], r[t])
- return new Pe(this.field, n)
- }
- subtract(t) {
- if (!this.field.equals(t.field)) throw new a('ModulusPolys do not have same ModulusGF field')
- return t.isZero() ? this : this.add(t.negative())
- }
- multiply(t) {
- return t instanceof Pe ? this.multiplyOther(t) : this.multiplyScalar(t)
- }
- multiplyOther(t) {
- if (!this.field.equals(t.field)) throw new a('ModulusPolys do not have same ModulusGF field')
- if (this.isZero() || t.isZero()) return new Pe(this.field, new Int32Array([0]))
- let e = this.coefficients,
- r = e.length,
- n = t.coefficients,
- i = n.length,
- o = new Int32Array(r + i - 1)
- for (let t = 0; t < r; t++) {
- let r = e[t]
- for (let e = 0; e < i; e++) o[t + e] = this.field.add(o[t + e], this.field.multiply(r, n[e]))
- }
- return new Pe(this.field, o)
- }
- negative() {
- let t = this.coefficients.length,
- e = new Int32Array(t)
- for (let r = 0; r < t; r++) e[r] = this.field.subtract(0, this.coefficients[r])
- return new Pe(this.field, e)
- }
- multiplyScalar(t) {
- if (0 === t) return new Pe(this.field, new Int32Array([0]))
- if (1 === t) return this
- let e = this.coefficients.length,
- r = new Int32Array(e)
- for (let n = 0; n < e; n++) r[n] = this.field.multiply(this.coefficients[n], t)
- return new Pe(this.field, r)
- }
- multiplyByMonomial(t, e) {
- if (t < 0) throw new a()
- if (0 === e) return new Pe(this.field, new Int32Array([0]))
- let r = this.coefficients.length,
- n = new Int32Array(r + t)
- for (let t = 0; t < r; t++) n[t] = this.field.multiply(this.coefficients[t], e)
- return new Pe(this.field, n)
- }
- toString() {
- let t = new T()
- for (let e = this.getDegree(); e >= 0; e--) {
- let r = this.getCoefficient(e)
- 0 !== r &&
- (r < 0 ? (t.append(' - '), (r = -r)) : t.length() > 0 && t.append(' + '),
- (0 !== e && 1 === r) || t.append(r),
- 0 !== e && (1 === e ? t.append('x') : (t.append('x^'), t.append(e))))
- }
- return t.toString()
- }
- }
- class ve extends class {
- add(t, e) {
- return (t + e) % this.modulus
- }
- subtract(t, e) {
- return (this.modulus + t - e) % this.modulus
- }
- exp(t) {
- return this.expTable[t]
- }
- log(t) {
- if (0 === t) throw new a()
- return this.logTable[t]
- }
- inverse(t) {
- if (0 === t) throw new Q()
- return this.expTable[this.modulus - this.logTable[t] - 1]
- }
- multiply(t, e) {
- return 0 === t || 0 === e ? 0 : this.expTable[(this.logTable[t] + this.logTable[e]) % (this.modulus - 1)]
- }
- getSize() {
- return this.modulus
- }
- equals(t) {
- return t === this
- }
- } {
- constructor(t, e) {
- super(), (this.modulus = t), (this.expTable = new Int32Array(t)), (this.logTable = new Int32Array(t))
- let r = 1
- for (let n = 0; n < t; n++) (this.expTable[n] = r), (r = (r * e) % t)
- for (let e = 0; e < t - 1; e++) this.logTable[this.expTable[e]] = e
- ;(this.zero = new Pe(this, new Int32Array([0]))), (this.one = new Pe(this, new Int32Array([1])))
- }
- getZero() {
- return this.zero
- }
- getOne() {
- return this.one
- }
- buildMonomial(t, e) {
- if (t < 0) throw new a()
- if (0 === e) return this.zero
- let r = new Int32Array(t + 1)
- return (r[0] = e), new Pe(this, r)
- }
- }
- ve.PDF417_GF = new ve(be.NUMBER_OF_CODEWORDS, 3)
- class Fe {
- constructor() {
- this.field = ve.PDF417_GF
- }
- decode(t, e, r) {
- let n = new Pe(this.field, t),
- i = new Int32Array(e),
- o = !1
- for (let t = e; t > 0; t--) {
- let r = n.evaluateAt(this.field.exp(t))
- ;(i[e - t] = r), 0 !== r && (o = !0)
- }
- if (!o) return 0
- let s = this.field.getOne()
- if (null != r)
- for (const e of r) {
- let r = this.field.exp(t.length - 1 - e),
- n = new Pe(this.field, new Int32Array([this.field.subtract(0, r), 1]))
- s = s.multiply(n)
- }
- let a = new Pe(this.field, i),
- l = this.runEuclideanAlgorithm(this.field.buildMonomial(e, 1), a, e),
- h = l[0],
- u = l[1],
- d = this.findErrorLocations(h),
- g = this.findErrorMagnitudes(u, h, d)
- for (let e = 0; e < d.length; e++) {
- let r = t.length - 1 - this.field.log(d[e])
- if (r < 0) throw c.getChecksumInstance()
- t[r] = this.field.subtract(t[r], g[e])
- }
- return d.length
- }
- runEuclideanAlgorithm(t, e, r) {
- if (t.getDegree() < e.getDegree()) {
- let r = t
- ;(t = e), (e = r)
- }
- let n = t,
- i = e,
- o = this.field.getZero(),
- s = this.field.getOne()
- for (; i.getDegree() >= Math.round(r / 2); ) {
- let t = n,
- e = o
- if (((n = i), (o = s), n.isZero())) throw c.getChecksumInstance()
- i = t
- let r = this.field.getZero(),
- a = n.getCoefficient(n.getDegree()),
- l = this.field.inverse(a)
- for (; i.getDegree() >= n.getDegree() && !i.isZero(); ) {
- let t = i.getDegree() - n.getDegree(),
- e = this.field.multiply(i.getCoefficient(i.getDegree()), l)
- ;(r = r.add(this.field.buildMonomial(t, e))), (i = i.subtract(n.multiplyByMonomial(t, e)))
- }
- s = r
- .multiply(o)
- .subtract(e)
- .negative()
- }
- let a = s.getCoefficient(0)
- if (0 === a) throw c.getChecksumInstance()
- let l = this.field.inverse(a)
- return [s.multiply(l), i.multiply(l)]
- }
- findErrorLocations(t) {
- let e = t.getDegree(),
- r = new Int32Array(e),
- n = 0
- for (let i = 1; i < this.field.getSize() && n < e; i++) 0 === t.evaluateAt(i) && ((r[n] = this.field.inverse(i)), n++)
- if (n !== e) throw c.getChecksumInstance()
- return r
- }
- findErrorMagnitudes(t, e, r) {
- let n = e.getDegree(),
- i = new Int32Array(n)
- for (let t = 1; t <= n; t++) i[n - t] = this.field.multiply(t, e.getCoefficient(t))
- let o = new Pe(this.field, i),
- s = r.length,
- a = new Int32Array(s)
- for (let e = 0; e < s; e++) {
- let n = this.field.inverse(r[e]),
- i = this.field.subtract(0, t.evaluateAt(n)),
- s = this.field.inverse(o.evaluateAt(n))
- a[e] = this.field.multiply(i, s)
- }
- return a
- }
- }
- class xe {
- constructor(t, e, r, n, i) {
- t instanceof xe ? this.constructor_2(t) : this.constructor_1(t, e, r, n, i)
- }
- constructor_1(t, e, r, n, i) {
- const o = null == e || null == r,
- s = null == n || null == i
- if (o && s) throw new N()
- o ? ((e = new nt(0, n.getY())), (r = new nt(0, i.getY()))) : s && ((n = new nt(t.getWidth() - 1, e.getY())), (i = new nt(t.getWidth() - 1, r.getY()))),
- (this.image = t),
- (this.topLeft = e),
- (this.bottomLeft = r),
- (this.topRight = n),
- (this.bottomRight = i),
- (this.minX = Math.trunc(Math.min(e.getX(), r.getX()))),
- (this.maxX = Math.trunc(Math.max(n.getX(), i.getX()))),
- (this.minY = Math.trunc(Math.min(e.getY(), n.getY()))),
- (this.maxY = Math.trunc(Math.max(r.getY(), i.getY())))
- }
- constructor_2(t) {
- ;(this.image = t.image),
- (this.topLeft = t.getTopLeft()),
- (this.bottomLeft = t.getBottomLeft()),
- (this.topRight = t.getTopRight()),
- (this.bottomRight = t.getBottomRight()),
- (this.minX = t.getMinX()),
- (this.maxX = t.getMaxX()),
- (this.minY = t.getMinY()),
- (this.maxY = t.getMaxY())
- }
- static merge(t, e) {
- return null == t ? e : null == e ? t : new xe(t.image, t.topLeft, t.bottomLeft, e.topRight, e.bottomRight)
- }
- addMissingRows(t, e, r) {
- let n = this.topLeft,
- i = this.bottomLeft,
- o = this.topRight,
- s = this.bottomRight
- if (t > 0) {
- let e = r ? this.topLeft : this.topRight,
- i = Math.trunc(e.getY() - t)
- i < 0 && (i = 0)
- let s = new nt(e.getX(), i)
- r ? (n = s) : (o = s)
- }
- if (e > 0) {
- let t = r ? this.bottomLeft : this.bottomRight,
- n = Math.trunc(t.getY() + e)
- n >= this.image.getHeight() && (n = this.image.getHeight() - 1)
- let o = new nt(t.getX(), n)
- r ? (i = o) : (s = o)
- }
- return new xe(this.image, n, i, o, s)
- }
- getMinX() {
- return this.minX
- }
- getMaxX() {
- return this.maxX
- }
- getMinY() {
- return this.minY
- }
- getMaxY() {
- return this.maxY
- }
- getTopLeft() {
- return this.topLeft
- }
- getTopRight() {
- return this.topRight
- }
- getBottomLeft() {
- return this.bottomLeft
- }
- getBottomRight() {
- return this.bottomRight
- }
- }
- class ke {
- constructor(t, e, r, n) {
- ;(this.columnCount = t), (this.errorCorrectionLevel = n), (this.rowCountUpperPart = e), (this.rowCountLowerPart = r), (this.rowCount = e + r)
- }
- getColumnCount() {
- return this.columnCount
- }
- getErrorCorrectionLevel() {
- return this.errorCorrectionLevel
- }
- getRowCount() {
- return this.rowCount
- }
- getRowCountUpperPart() {
- return this.rowCountUpperPart
- }
- getRowCountLowerPart() {
- return this.rowCountLowerPart
- }
- }
- class Ue {
- constructor() {
- this.buffer = ''
- }
- static form(t, e) {
- let r = -1
- return t.replace(/%(-)?(0?[0-9]+)?([.][0-9]+)?([#][0-9]+)?([scfpexd%])/g, function(t, n, i, o, s, a) {
- if ('%%' === t) return '%'
- if (void 0 === e[++r]) return
- t = o ? parseInt(o.substr(1)) : void 0
- let l,
- c = s ? parseInt(s.substr(1)) : void 0
- switch (a) {
- case 's':
- l = e[r]
- break
- case 'c':
- l = e[r][0]
- break
- case 'f':
- l = parseFloat(e[r]).toFixed(t)
- break
- case 'p':
- l = parseFloat(e[r]).toPrecision(t)
- break
- case 'e':
- l = parseFloat(e[r]).toExponential(t)
- break
- case 'x':
- l = parseInt(e[r]).toString(c || 16)
- break
- case 'd':
- l = parseFloat(parseInt(e[r], c || 10).toPrecision(t)).toFixed(0)
- }
- l = 'object' == typeof l ? JSON.stringify(l) : (+l).toString(c)
- let h = parseInt(i),
- u = i && i[0] + '' == '0' ? '0' : ' '
- for (; l.length < h; ) l = void 0 !== n ? l + u : u + l
- return l
- })
- }
- format(t, ...e) {
- this.buffer += Ue.form(t, e)
- }
- toString() {
- return this.buffer
- }
- }
- class He {
- constructor(t) {
- ;(this.boundingBox = new xe(t)), (this.codewords = new Array(t.getMaxY() - t.getMinY() + 1))
- }
- getCodewordNearby(t) {
- let e = this.getCodeword(t)
- if (null != e) return e
- for (let r = 1; r < He.MAX_NEARBY_DISTANCE; r++) {
- let n = this.imageRowToCodewordIndex(t) - r
- if (n >= 0 && ((e = this.codewords[n]), null != e)) return e
- if (((n = this.imageRowToCodewordIndex(t) + r), n < this.codewords.length && ((e = this.codewords[n]), null != e))) return e
- }
- return null
- }
- imageRowToCodewordIndex(t) {
- return t - this.boundingBox.getMinY()
- }
- setCodeword(t, e) {
- this.codewords[this.imageRowToCodewordIndex(t)] = e
- }
- getCodeword(t) {
- return this.codewords[this.imageRowToCodewordIndex(t)]
- }
- getBoundingBox() {
- return this.boundingBox
- }
- getCodewords() {
- return this.codewords
- }
- toString() {
- const t = new Ue()
- let e = 0
- for (const r of this.codewords) null != r ? t.format('%3d: %3d|%3d%n', e++, r.getRowNumber(), r.getValue()) : t.format('%3d: | %n', e++)
- return t.toString()
- }
- }
- He.MAX_NEARBY_DISTANCE = 5
- class Ve {
- constructor() {
- this.values = new Map()
- }
- setValue(t) {
- t = Math.trunc(t)
- let e = this.values.get(t)
- null == e && (e = 0), e++, this.values.set(t, e)
- }
- getValue() {
- let t = -1,
- e = new Array()
- for (const [r, n] of this.values.entries()) {
- const i = { getKey: () => r, getValue: () => n }
- i.getValue() > t ? ((t = i.getValue()), (e = []), e.push(i.getKey())) : i.getValue() === t && e.push(i.getKey())
- }
- return be.toIntArray(e)
- }
- getConfidence(t) {
- return this.values.get(t)
- }
- }
- class ze extends He {
- constructor(t, e) {
- super(t), (this._isLeft = e)
- }
- setRowNumbers() {
- for (let t of this.getCodewords()) null != t && t.setRowNumberAsRowIndicatorColumn()
- }
- adjustCompleteIndicatorColumnRowNumbers(t) {
- let e = this.getCodewords()
- this.setRowNumbers(), this.removeIncorrectCodewords(e, t)
- let r = this.getBoundingBox(),
- n = this._isLeft ? r.getTopLeft() : r.getTopRight(),
- i = this._isLeft ? r.getBottomLeft() : r.getBottomRight(),
- o = this.imageRowToCodewordIndex(Math.trunc(n.getY())),
- s = this.imageRowToCodewordIndex(Math.trunc(i.getY())),
- a = -1,
- l = 1,
- c = 0
- for (let r = o; r < s; r++) {
- if (null == e[r]) continue
- let n = e[r],
- i = n.getRowNumber() - a
- if (0 === i) c++
- else if (1 === i) (l = Math.max(l, c)), (c = 1), (a = n.getRowNumber())
- else if (i < 0 || n.getRowNumber() >= t.getRowCount() || i > r) e[r] = null
- else {
- let t
- t = l > 2 ? (l - 2) * i : i
- let o = t >= r
- for (let n = 1; n <= t && !o; n++) o = null != e[r - n]
- o ? (e[r] = null) : ((a = n.getRowNumber()), (c = 1))
- }
- }
- }
- getRowHeights() {
- let t = this.getBarcodeMetadata()
- if (null == t) return null
- this.adjustIncompleteIndicatorColumnRowNumbers(t)
- let e = new Int32Array(t.getRowCount())
- for (let t of this.getCodewords())
- if (null != t) {
- let r = t.getRowNumber()
- if (r >= e.length) continue
- e[r]++
- }
- return e
- }
- adjustIncompleteIndicatorColumnRowNumbers(t) {
- let e = this.getBoundingBox(),
- r = this._isLeft ? e.getTopLeft() : e.getTopRight(),
- n = this._isLeft ? e.getBottomLeft() : e.getBottomRight(),
- i = this.imageRowToCodewordIndex(Math.trunc(r.getY())),
- o = this.imageRowToCodewordIndex(Math.trunc(n.getY())),
- s = this.getCodewords(),
- a = -1
- for (let e = i; e < o; e++) {
- if (null == s[e]) continue
- let r = s[e]
- r.setRowNumberAsRowIndicatorColumn()
- let n = r.getRowNumber() - a
- 0 === n || (1 === n ? (a = r.getRowNumber()) : r.getRowNumber() >= t.getRowCount() ? (s[e] = null) : (a = r.getRowNumber()))
- }
- }
- getBarcodeMetadata() {
- let t = this.getCodewords(),
- e = new Ve(),
- r = new Ve(),
- n = new Ve(),
- i = new Ve()
- for (let o of t) {
- if (null == o) continue
- o.setRowNumberAsRowIndicatorColumn()
- let t = o.getValue() % 30,
- s = o.getRowNumber()
- switch ((this._isLeft || (s += 2), s % 3)) {
- case 0:
- r.setValue(3 * t + 1)
- break
- case 1:
- i.setValue(t / 3), n.setValue(t % 3)
- break
- case 2:
- e.setValue(t + 1)
- }
- }
- if (
- 0 === e.getValue().length ||
- 0 === r.getValue().length ||
- 0 === n.getValue().length ||
- 0 === i.getValue().length ||
- e.getValue()[0] < 1 ||
- r.getValue()[0] + n.getValue()[0] < be.MIN_ROWS_IN_BARCODE ||
- r.getValue()[0] + n.getValue()[0] > be.MAX_ROWS_IN_BARCODE
- )
- return null
- let o = new ke(e.getValue()[0], r.getValue()[0], n.getValue()[0], i.getValue()[0])
- return this.removeIncorrectCodewords(t, o), o
- }
- removeIncorrectCodewords(t, e) {
- for (let r = 0; r < t.length; r++) {
- let n = t[r]
- if (null == t[r]) continue
- let i = n.getValue() % 30,
- o = n.getRowNumber()
- if (o > e.getRowCount()) t[r] = null
- else
- switch ((this._isLeft || (o += 2), o % 3)) {
- case 0:
- 3 * i + 1 !== e.getRowCountUpperPart() && (t[r] = null)
- break
- case 1:
- ;(Math.trunc(i / 3) === e.getErrorCorrectionLevel() && i % 3 === e.getRowCountLowerPart()) || (t[r] = null)
- break
- case 2:
- i + 1 !== e.getColumnCount() && (t[r] = null)
- }
- }
- }
- isLeft() {
- return this._isLeft
- }
- toString() {
- return 'IsLeft: ' + this._isLeft + '\n' + super.toString()
- }
- }
- class Ge {
- constructor(t, e) {
- ;(this.ADJUST_ROW_NUMBER_SKIP = 2),
- (this.barcodeMetadata = t),
- (this.barcodeColumnCount = t.getColumnCount()),
- (this.boundingBox = e),
- (this.detectionResultColumns = new Array(this.barcodeColumnCount + 2))
- }
- getDetectionResultColumns() {
- this.adjustIndicatorColumnRowNumbers(this.detectionResultColumns[0]), this.adjustIndicatorColumnRowNumbers(this.detectionResultColumns[this.barcodeColumnCount + 1])
- let t,
- e = be.MAX_CODEWORDS_IN_BARCODE
- do {
- ;(t = e), (e = this.adjustRowNumbersAndGetCount())
- } while (e > 0 && e < t)
- return this.detectionResultColumns
- }
- adjustIndicatorColumnRowNumbers(t) {
- null != t && t.adjustCompleteIndicatorColumnRowNumbers(this.barcodeMetadata)
- }
- adjustRowNumbersAndGetCount() {
- let t = this.adjustRowNumbersByRow()
- if (0 === t) return 0
- for (let t = 1; t < this.barcodeColumnCount + 1; t++) {
- let e = this.detectionResultColumns[t].getCodewords()
- for (let r = 0; r < e.length; r++) null != e[r] && (e[r].hasValidRowNumber() || this.adjustRowNumbers(t, r, e))
- }
- return t
- }
- adjustRowNumbersByRow() {
- return this.adjustRowNumbersFromBothRI(), this.adjustRowNumbersFromLRI() + this.adjustRowNumbersFromRRI()
- }
- adjustRowNumbersFromBothRI() {
- if (null == this.detectionResultColumns[0] || null == this.detectionResultColumns[this.barcodeColumnCount + 1]) return
- let t = this.detectionResultColumns[0].getCodewords(),
- e = this.detectionResultColumns[this.barcodeColumnCount + 1].getCodewords()
- for (let r = 0; r < t.length; r++)
- if (null != t[r] && null != e[r] && t[r].getRowNumber() === e[r].getRowNumber())
- for (let e = 1; e <= this.barcodeColumnCount; e++) {
- let n = this.detectionResultColumns[e].getCodewords()[r]
- null != n && (n.setRowNumber(t[r].getRowNumber()), n.hasValidRowNumber() || (this.detectionResultColumns[e].getCodewords()[r] = null))
- }
- }
- adjustRowNumbersFromRRI() {
- if (null == this.detectionResultColumns[this.barcodeColumnCount + 1]) return 0
- let t = 0,
- e = this.detectionResultColumns[this.barcodeColumnCount + 1].getCodewords()
- for (let r = 0; r < e.length; r++) {
- if (null == e[r]) continue
- let n = e[r].getRowNumber(),
- i = 0
- for (let e = this.barcodeColumnCount + 1; e > 0 && i < this.ADJUST_ROW_NUMBER_SKIP; e--) {
- let o = this.detectionResultColumns[e].getCodewords()[r]
- null != o && ((i = Ge.adjustRowNumberIfValid(n, i, o)), o.hasValidRowNumber() || t++)
- }
- }
- return t
- }
- adjustRowNumbersFromLRI() {
- if (null == this.detectionResultColumns[0]) return 0
- let t = 0,
- e = this.detectionResultColumns[0].getCodewords()
- for (let r = 0; r < e.length; r++) {
- if (null == e[r]) continue
- let n = e[r].getRowNumber(),
- i = 0
- for (let e = 1; e < this.barcodeColumnCount + 1 && i < this.ADJUST_ROW_NUMBER_SKIP; e++) {
- let o = this.detectionResultColumns[e].getCodewords()[r]
- null != o && ((i = Ge.adjustRowNumberIfValid(n, i, o)), o.hasValidRowNumber() || t++)
- }
- }
- return t
- }
- static adjustRowNumberIfValid(t, e, r) {
- return null == r || r.hasValidRowNumber() || (r.isValidRowNumber(t) ? (r.setRowNumber(t), (e = 0)) : ++e), e
- }
- adjustRowNumbers(t, e, r) {
- let n = r[e],
- i = this.detectionResultColumns[t - 1].getCodewords(),
- o = i
- null != this.detectionResultColumns[t + 1] && (o = this.detectionResultColumns[t + 1].getCodewords())
- let s = new Array(14)
- ;(s[2] = i[e]),
- (s[3] = o[e]),
- e > 0 && ((s[0] = r[e - 1]), (s[4] = i[e - 1]), (s[5] = o[e - 1])),
- e > 1 && ((s[8] = r[e - 2]), (s[10] = i[e - 2]), (s[11] = o[e - 2])),
- e < r.length - 1 && ((s[1] = r[e + 1]), (s[6] = i[e + 1]), (s[7] = o[e + 1])),
- e < r.length - 2 && ((s[9] = r[e + 2]), (s[12] = i[e + 2]), (s[13] = o[e + 2]))
- for (let t of s) if (Ge.adjustRowNumber(n, t)) return
- }
- static adjustRowNumber(t, e) {
- return !(null == e || !e.hasValidRowNumber() || e.getBucket() !== t.getBucket() || (t.setRowNumber(e.getRowNumber()), 0))
- }
- getBarcodeColumnCount() {
- return this.barcodeColumnCount
- }
- getBarcodeRowCount() {
- return this.barcodeMetadata.getRowCount()
- }
- getBarcodeECLevel() {
- return this.barcodeMetadata.getErrorCorrectionLevel()
- }
- setBoundingBox(t) {
- this.boundingBox = t
- }
- getBoundingBox() {
- return this.boundingBox
- }
- setDetectionResultColumn(t, e) {
- this.detectionResultColumns[t] = e
- }
- getDetectionResultColumn(t) {
- return this.detectionResultColumns[t]
- }
- toString() {
- let t = this.detectionResultColumns[0]
- null == t && (t = this.detectionResultColumns[this.barcodeColumnCount + 1])
- let e = new Ue()
- for (let r = 0; r < t.getCodewords().length; r++) {
- e.format('CW %3d:', r)
- for (let t = 0; t < this.barcodeColumnCount + 2; t++) {
- if (null == this.detectionResultColumns[t]) {
- e.format(' | ')
- continue
- }
- let n = this.detectionResultColumns[t].getCodewords()[r]
- null != n ? e.format(' %3d|%3d', n.getRowNumber(), n.getValue()) : e.format(' | ')
- }
- e.format('%n')
- }
- return e.toString()
- }
- }
- class Ye {
- constructor(t, e, r, n) {
- ;(this.rowNumber = Ye.BARCODE_ROW_UNKNOWN), (this.startX = Math.trunc(t)), (this.endX = Math.trunc(e)), (this.bucket = Math.trunc(r)), (this.value = Math.trunc(n))
- }
- hasValidRowNumber() {
- return this.isValidRowNumber(this.rowNumber)
- }
- isValidRowNumber(t) {
- return t !== Ye.BARCODE_ROW_UNKNOWN && this.bucket === (t % 3) * 3
- }
- setRowNumberAsRowIndicatorColumn() {
- this.rowNumber = Math.trunc(3 * Math.trunc(this.value / 30) + Math.trunc(this.bucket / 3))
- }
- getWidth() {
- return this.endX - this.startX
- }
- getStartX() {
- return this.startX
- }
- getEndX() {
- return this.endX
- }
- getBucket() {
- return this.bucket
- }
- getValue() {
- return this.value
- }
- getRowNumber() {
- return this.rowNumber
- }
- setRowNumber(t) {
- this.rowNumber = t
- }
- toString() {
- return this.rowNumber + '|' + this.value
- }
- }
- Ye.BARCODE_ROW_UNKNOWN = -1
- class Xe {
- static initialize() {
- for (let t = 0; t < be.SYMBOL_TABLE.length; t++) {
- let e = be.SYMBOL_TABLE[t],
- r = 1 & e
- for (let n = 0; n < be.BARS_IN_MODULE; n++) {
- let i = 0
- for (; (1 & e) === r; ) (i += 1), (e >>= 1)
- ;(r = 1 & e),
- Xe.RATIOS_TABLE[t] || (Xe.RATIOS_TABLE[t] = new Array(be.BARS_IN_MODULE)),
- (Xe.RATIOS_TABLE[t][be.BARS_IN_MODULE - n - 1] = Math.fround(i / be.MODULES_IN_CODEWORD))
- }
- }
- this.bSymbolTableReady = !0
- }
- static getDecodedValue(t) {
- let e = Xe.getDecodedCodewordValue(Xe.sampleBitCounts(t))
- return -1 !== e ? e : Xe.getClosestDecodedValue(t)
- }
- static sampleBitCounts(t) {
- let e = et.sum(t),
- r = new Int32Array(be.BARS_IN_MODULE),
- n = 0,
- i = 0
- for (let o = 0; o < be.MODULES_IN_CODEWORD; o++) {
- let s = e / (2 * be.MODULES_IN_CODEWORD) + (o * e) / be.MODULES_IN_CODEWORD
- i + t[n] <= s && ((i += t[n]), n++), r[n]++
- }
- return r
- }
- static getDecodedCodewordValue(t) {
- let e = Xe.getBitValue(t)
- return -1 === be.getCodeword(e) ? -1 : e
- }
- static getBitValue(t) {
- let e = 0
- for (let r = 0; r < t.length; r++) for (let n = 0; n < t[r]; n++) e = (e << 1) | (r % 2 == 0 ? 1 : 0)
- return Math.trunc(e)
- }
- static getClosestDecodedValue(t) {
- let e = et.sum(t),
- r = new Array(be.BARS_IN_MODULE)
- if (e > 1) for (let n = 0; n < r.length; n++) r[n] = Math.fround(t[n] / e)
- let n = rt.MAX_VALUE,
- i = -1
- this.bSymbolTableReady || Xe.initialize()
- for (let t = 0; t < Xe.RATIOS_TABLE.length; t++) {
- let e = 0,
- o = Xe.RATIOS_TABLE[t]
- for (let t = 0; t < be.BARS_IN_MODULE; t++) {
- let i = Math.fround(o[t] - r[t])
- if (((e += Math.fround(i * i)), e >= n)) break
- }
- e < n && ((n = e), (i = be.SYMBOL_TABLE[t]))
- }
- return i
- }
- }
- ;(Xe.bSymbolTableReady = !1), (Xe.RATIOS_TABLE = new Array(be.SYMBOL_TABLE.length).map(t => new Array(be.BARS_IN_MODULE)))
- class We {
- constructor() {
- ;(this.segmentCount = -1), (this.fileSize = -1), (this.timestamp = -1), (this.checksum = -1)
- }
- getSegmentIndex() {
- return this.segmentIndex
- }
- setSegmentIndex(t) {
- this.segmentIndex = t
- }
- getFileId() {
- return this.fileId
- }
- setFileId(t) {
- this.fileId = t
- }
- getOptionalData() {
- return this.optionalData
- }
- setOptionalData(t) {
- this.optionalData = t
- }
- isLastSegment() {
- return this.lastSegment
- }
- setLastSegment(t) {
- this.lastSegment = t
- }
- getSegmentCount() {
- return this.segmentCount
- }
- setSegmentCount(t) {
- this.segmentCount = t
- }
- getSender() {
- return this.sender || null
- }
- setSender(t) {
- this.sender = t
- }
- getAddressee() {
- return this.addressee || null
- }
- setAddressee(t) {
- this.addressee = t
- }
- getFileName() {
- return this.fileName
- }
- setFileName(t) {
- this.fileName = t
- }
- getFileSize() {
- return this.fileSize
- }
- setFileSize(t) {
- this.fileSize = t
- }
- getChecksum() {
- return this.checksum
- }
- setChecksum(t) {
- this.checksum = t
- }
- getTimestamp() {
- return this.timestamp
- }
- setTimestamp(t) {
- this.timestamp = t
- }
- }
- class je {
- static parseLong(t, e) {
- return parseInt(t, e)
- }
- }
- class Ze extends o {}
- Ze.kind = 'NullPointerException'
- class Qe extends o {}
- class Ke extends class {
- writeBytes(t) {
- this.writeBytesOffset(t, 0, t.length)
- }
- writeBytesOffset(t, e, r) {
- if (null == t) throw new Ze()
- if (e < 0 || e > t.length || r < 0 || e + r > t.length || e + r < 0) throw new d()
- if (0 !== r) for (let n = 0; n < r; n++) this.write(t[e + n])
- }
- flush() {}
- close() {}
- } {
- constructor(t = 32) {
- if ((super(), (this.count = 0), t < 0)) throw new a('Negative initial size: ' + t)
- this.buf = new Uint8Array(t)
- }
- ensureCapacity(t) {
- t - this.buf.length > 0 && this.grow(t)
- }
- grow(t) {
- let e = this.buf.length << 1
- if ((e - t < 0 && (e = t), e < 0)) {
- if (t < 0) throw new Qe()
- e = w.MAX_VALUE
- }
- this.buf = f.copyOfUint8Array(this.buf, e)
- }
- write(t) {
- this.ensureCapacity(this.count + 1), (this.buf[this.count] = t), (this.count += 1)
- }
- writeBytesOffset(t, e, r) {
- if (e < 0 || e > t.length || r < 0 || e + r - t.length > 0) throw new d()
- this.ensureCapacity(this.count + r), u.arraycopy(t, e, this.buf, this.count, r), (this.count += r)
- }
- writeTo(t) {
- t.writeBytesOffset(this.buf, 0, this.count)
- }
- reset() {
- this.count = 0
- }
- toByteArray() {
- return f.copyOfUint8Array(this.buf, this.count)
- }
- size() {
- return this.count
- }
- toString(t) {
- return t ? ('string' == typeof t ? this.toString_string(t) : this.toString_number(t)) : this.toString_void()
- }
- toString_void() {
- return new String(this.buf).toString()
- }
- toString_string(t) {
- return new String(this.buf).toString()
- }
- toString_number(t) {
- return new String(this.buf).toString()
- }
- close() {}
- }
- function qe() {
- if ('undefined' != typeof window) return window.BigInt || null
- if (void 0 !== r.g) return r.g.BigInt || null
- if ('undefined' != typeof self) return self.BigInt || null
- throw new Error("Can't search globals for BigInt!")
- }
- let Je
- function $e(t) {
- if ((void 0 === Je && (Je = qe()), null === Je)) throw new Error('BigInt is not supported!')
- return Je(t)
- }
- !(function(t) {
- ;(t[(t.ALPHA = 0)] = 'ALPHA'),
- (t[(t.LOWER = 1)] = 'LOWER'),
- (t[(t.MIXED = 2)] = 'MIXED'),
- (t[(t.PUNCT = 3)] = 'PUNCT'),
- (t[(t.ALPHA_SHIFT = 4)] = 'ALPHA_SHIFT'),
- (t[(t.PUNCT_SHIFT = 5)] = 'PUNCT_SHIFT')
- })(Y || (Y = {}))
- class tr {
- static decode(t, e) {
- let r = new T(''),
- n = I.ISO8859_1
- r.enableDecoding(n)
- let i = 1,
- o = t[i++],
- s = new We()
- for (; i < t[0]; ) {
- switch (o) {
- case tr.TEXT_COMPACTION_MODE_LATCH:
- i = tr.textCompaction(t, i, r)
- break
- case tr.BYTE_COMPACTION_MODE_LATCH:
- case tr.BYTE_COMPACTION_MODE_LATCH_6:
- i = tr.byteCompaction(o, t, n, i, r)
- break
- case tr.MODE_SHIFT_TO_BYTE_COMPACTION_MODE:
- r.append(t[i++])
- break
- case tr.NUMERIC_COMPACTION_MODE_LATCH:
- i = tr.numericCompaction(t, i, r)
- break
- case tr.ECI_CHARSET:
- I.getCharacterSetECIByValue(t[i++])
- break
- case tr.ECI_GENERAL_PURPOSE:
- i += 2
- break
- case tr.ECI_USER_DEFINED:
- i++
- break
- case tr.BEGIN_MACRO_PDF417_CONTROL_BLOCK:
- i = tr.decodeMacroBlock(t, i, s)
- break
- case tr.BEGIN_MACRO_PDF417_OPTIONAL_FIELD:
- case tr.MACRO_PDF417_TERMINATOR:
- throw new C()
- default:
- i--, (i = tr.textCompaction(t, i, r))
- }
- if (!(i < t.length)) throw C.getFormatInstance()
- o = t[i++]
- }
- if (0 === r.length()) throw C.getFormatInstance()
- let a = new W(null, r.toString(), null, e)
- return a.setOther(s), a
- }
- static decodeMacroBlock(t, e, r) {
- if (e + tr.NUMBER_OF_SEQUENCE_CODEWORDS > t[0]) throw C.getFormatInstance()
- let n = new Int32Array(tr.NUMBER_OF_SEQUENCE_CODEWORDS)
- for (let r = 0; r < tr.NUMBER_OF_SEQUENCE_CODEWORDS; r++, e++) n[r] = t[e]
- r.setSegmentIndex(w.parseInt(tr.decodeBase900toBase10(n, tr.NUMBER_OF_SEQUENCE_CODEWORDS)))
- let i = new T()
- ;(e = tr.textCompaction(t, e, i)), r.setFileId(i.toString())
- let o = -1
- for (t[e] === tr.BEGIN_MACRO_PDF417_OPTIONAL_FIELD && (o = e + 1); e < t[0]; )
- switch (t[e]) {
- case tr.BEGIN_MACRO_PDF417_OPTIONAL_FIELD:
- switch (t[++e]) {
- case tr.MACRO_PDF417_OPTIONAL_FIELD_FILE_NAME:
- let n = new T()
- ;(e = tr.textCompaction(t, e + 1, n)), r.setFileName(n.toString())
- break
- case tr.MACRO_PDF417_OPTIONAL_FIELD_SENDER:
- let i = new T()
- ;(e = tr.textCompaction(t, e + 1, i)), r.setSender(i.toString())
- break
- case tr.MACRO_PDF417_OPTIONAL_FIELD_ADDRESSEE:
- let o = new T()
- ;(e = tr.textCompaction(t, e + 1, o)), r.setAddressee(o.toString())
- break
- case tr.MACRO_PDF417_OPTIONAL_FIELD_SEGMENT_COUNT:
- let s = new T()
- ;(e = tr.numericCompaction(t, e + 1, s)), r.setSegmentCount(w.parseInt(s.toString()))
- break
- case tr.MACRO_PDF417_OPTIONAL_FIELD_TIME_STAMP:
- let a = new T()
- ;(e = tr.numericCompaction(t, e + 1, a)), r.setTimestamp(je.parseLong(a.toString()))
- break
- case tr.MACRO_PDF417_OPTIONAL_FIELD_CHECKSUM:
- let l = new T()
- ;(e = tr.numericCompaction(t, e + 1, l)), r.setChecksum(w.parseInt(l.toString()))
- break
- case tr.MACRO_PDF417_OPTIONAL_FIELD_FILE_SIZE:
- let c = new T()
- ;(e = tr.numericCompaction(t, e + 1, c)), r.setFileSize(je.parseLong(c.toString()))
- break
- default:
- throw C.getFormatInstance()
- }
- break
- case tr.MACRO_PDF417_TERMINATOR:
- e++, r.setLastSegment(!0)
- break
- default:
- throw C.getFormatInstance()
- }
- if (-1 !== o) {
- let n = e - o
- r.isLastSegment() && n--, r.setOptionalData(f.copyOfRange(t, o, o + n))
- }
- return e
- }
- static textCompaction(t, e, r) {
- let n = new Int32Array(2 * (t[0] - e)),
- i = new Int32Array(2 * (t[0] - e)),
- o = 0,
- s = !1
- for (; e < t[0] && !s; ) {
- let r = t[e++]
- if (r < tr.TEXT_COMPACTION_MODE_LATCH) (n[o] = r / 30), (n[o + 1] = r % 30), (o += 2)
- else
- switch (r) {
- case tr.TEXT_COMPACTION_MODE_LATCH:
- n[o++] = tr.TEXT_COMPACTION_MODE_LATCH
- break
- case tr.BYTE_COMPACTION_MODE_LATCH:
- case tr.BYTE_COMPACTION_MODE_LATCH_6:
- case tr.NUMERIC_COMPACTION_MODE_LATCH:
- case tr.BEGIN_MACRO_PDF417_CONTROL_BLOCK:
- case tr.BEGIN_MACRO_PDF417_OPTIONAL_FIELD:
- case tr.MACRO_PDF417_TERMINATOR:
- e--, (s = !0)
- break
- case tr.MODE_SHIFT_TO_BYTE_COMPACTION_MODE:
- ;(n[o] = tr.MODE_SHIFT_TO_BYTE_COMPACTION_MODE), (r = t[e++]), (i[o] = r), o++
- }
- }
- return tr.decodeTextCompaction(n, i, o, r), e
- }
- static decodeTextCompaction(t, e, r, n) {
- let i = Y.ALPHA,
- o = Y.ALPHA,
- s = 0
- for (; s < r; ) {
- let r = t[s],
- a = ''
- switch (i) {
- case Y.ALPHA:
- if (r < 26) a = String.fromCharCode(65 + r)
- else
- switch (r) {
- case 26:
- a = ' '
- break
- case tr.LL:
- i = Y.LOWER
- break
- case tr.ML:
- i = Y.MIXED
- break
- case tr.PS:
- ;(o = i), (i = Y.PUNCT_SHIFT)
- break
- case tr.MODE_SHIFT_TO_BYTE_COMPACTION_MODE:
- n.append(e[s])
- break
- case tr.TEXT_COMPACTION_MODE_LATCH:
- i = Y.ALPHA
- }
- break
- case Y.LOWER:
- if (r < 26) a = String.fromCharCode(97 + r)
- else
- switch (r) {
- case 26:
- a = ' '
- break
- case tr.AS:
- ;(o = i), (i = Y.ALPHA_SHIFT)
- break
- case tr.ML:
- i = Y.MIXED
- break
- case tr.PS:
- ;(o = i), (i = Y.PUNCT_SHIFT)
- break
- case tr.MODE_SHIFT_TO_BYTE_COMPACTION_MODE:
- n.append(e[s])
- break
- case tr.TEXT_COMPACTION_MODE_LATCH:
- i = Y.ALPHA
- }
- break
- case Y.MIXED:
- if (r < tr.PL) a = tr.MIXED_CHARS[r]
- else
- switch (r) {
- case tr.PL:
- i = Y.PUNCT
- break
- case 26:
- a = ' '
- break
- case tr.LL:
- i = Y.LOWER
- break
- case tr.AL:
- i = Y.ALPHA
- break
- case tr.PS:
- ;(o = i), (i = Y.PUNCT_SHIFT)
- break
- case tr.MODE_SHIFT_TO_BYTE_COMPACTION_MODE:
- n.append(e[s])
- break
- case tr.TEXT_COMPACTION_MODE_LATCH:
- i = Y.ALPHA
- }
- break
- case Y.PUNCT:
- if (r < tr.PAL) a = tr.PUNCT_CHARS[r]
- else
- switch (r) {
- case tr.PAL:
- i = Y.ALPHA
- break
- case tr.MODE_SHIFT_TO_BYTE_COMPACTION_MODE:
- n.append(e[s])
- break
- case tr.TEXT_COMPACTION_MODE_LATCH:
- i = Y.ALPHA
- }
- break
- case Y.ALPHA_SHIFT:
- if (((i = o), r < 26)) a = String.fromCharCode(65 + r)
- else
- switch (r) {
- case 26:
- a = ' '
- break
- case tr.TEXT_COMPACTION_MODE_LATCH:
- i = Y.ALPHA
- }
- break
- case Y.PUNCT_SHIFT:
- if (((i = o), r < tr.PAL)) a = tr.PUNCT_CHARS[r]
- else
- switch (r) {
- case tr.PAL:
- i = Y.ALPHA
- break
- case tr.MODE_SHIFT_TO_BYTE_COMPACTION_MODE:
- n.append(e[s])
- break
- case tr.TEXT_COMPACTION_MODE_LATCH:
- i = Y.ALPHA
- }
- }
- '' !== a && n.append(a), s++
- }
- }
- static byteCompaction(t, e, r, n, i) {
- let o = new Ke(),
- s = 0,
- a = 0,
- l = !1
- switch (t) {
- case tr.BYTE_COMPACTION_MODE_LATCH:
- let t = new Int32Array(6),
- r = e[n++]
- for (; n < e[0] && !l; )
- switch (((t[s++] = r), (a = 900 * a + r), (r = e[n++]), r)) {
- case tr.TEXT_COMPACTION_MODE_LATCH:
- case tr.BYTE_COMPACTION_MODE_LATCH:
- case tr.NUMERIC_COMPACTION_MODE_LATCH:
- case tr.BYTE_COMPACTION_MODE_LATCH_6:
- case tr.BEGIN_MACRO_PDF417_CONTROL_BLOCK:
- case tr.BEGIN_MACRO_PDF417_OPTIONAL_FIELD:
- case tr.MACRO_PDF417_TERMINATOR:
- n--, (l = !0)
- break
- default:
- if (s % 5 == 0 && s > 0) {
- for (let t = 0; t < 6; ++t) o.write(Number($e(a) >> $e(8 * (5 - t))))
- ;(a = 0), (s = 0)
- }
- }
- n === e[0] && r < tr.TEXT_COMPACTION_MODE_LATCH && (t[s++] = r)
- for (let e = 0; e < s; e++) o.write(t[e])
- break
- case tr.BYTE_COMPACTION_MODE_LATCH_6:
- for (; n < e[0] && !l; ) {
- let t = e[n++]
- if (t < tr.TEXT_COMPACTION_MODE_LATCH) s++, (a = 900 * a + t)
- else
- switch (t) {
- case tr.TEXT_COMPACTION_MODE_LATCH:
- case tr.BYTE_COMPACTION_MODE_LATCH:
- case tr.NUMERIC_COMPACTION_MODE_LATCH:
- case tr.BYTE_COMPACTION_MODE_LATCH_6:
- case tr.BEGIN_MACRO_PDF417_CONTROL_BLOCK:
- case tr.BEGIN_MACRO_PDF417_OPTIONAL_FIELD:
- case tr.MACRO_PDF417_TERMINATOR:
- n--, (l = !0)
- }
- if (s % 5 == 0 && s > 0) {
- for (let t = 0; t < 6; ++t) o.write(Number($e(a) >> $e(8 * (5 - t))))
- ;(a = 0), (s = 0)
- }
- }
- }
- return i.append(S.decode(o.toByteArray(), r)), n
- }
- static numericCompaction(t, e, r) {
- let n = 0,
- i = !1,
- o = new Int32Array(tr.MAX_NUMERIC_CODEWORDS)
- for (; e < t[0] && !i; ) {
- let s = t[e++]
- if ((e === t[0] && (i = !0), s < tr.TEXT_COMPACTION_MODE_LATCH)) (o[n] = s), n++
- else
- switch (s) {
- case tr.TEXT_COMPACTION_MODE_LATCH:
- case tr.BYTE_COMPACTION_MODE_LATCH:
- case tr.BYTE_COMPACTION_MODE_LATCH_6:
- case tr.BEGIN_MACRO_PDF417_CONTROL_BLOCK:
- case tr.BEGIN_MACRO_PDF417_OPTIONAL_FIELD:
- case tr.MACRO_PDF417_TERMINATOR:
- e--, (i = !0)
- }
- ;(n % tr.MAX_NUMERIC_CODEWORDS == 0 || s === tr.NUMERIC_COMPACTION_MODE_LATCH || i) && n > 0 && (r.append(tr.decodeBase900toBase10(o, n)), (n = 0))
- }
- return e
- }
- static decodeBase900toBase10(t, e) {
- let r = $e(0)
- for (let n = 0; n < e; n++) r += tr.EXP900[e - n - 1] * $e(t[n])
- let n = r.toString()
- if ('1' !== n.charAt(0)) throw new C()
- return n.substring(1)
- }
- }
- ;(tr.TEXT_COMPACTION_MODE_LATCH = 900),
- (tr.BYTE_COMPACTION_MODE_LATCH = 901),
- (tr.NUMERIC_COMPACTION_MODE_LATCH = 902),
- (tr.BYTE_COMPACTION_MODE_LATCH_6 = 924),
- (tr.ECI_USER_DEFINED = 925),
- (tr.ECI_GENERAL_PURPOSE = 926),
- (tr.ECI_CHARSET = 927),
- (tr.BEGIN_MACRO_PDF417_CONTROL_BLOCK = 928),
- (tr.BEGIN_MACRO_PDF417_OPTIONAL_FIELD = 923),
- (tr.MACRO_PDF417_TERMINATOR = 922),
- (tr.MODE_SHIFT_TO_BYTE_COMPACTION_MODE = 913),
- (tr.MAX_NUMERIC_CODEWORDS = 15),
- (tr.MACRO_PDF417_OPTIONAL_FIELD_FILE_NAME = 0),
- (tr.MACRO_PDF417_OPTIONAL_FIELD_SEGMENT_COUNT = 1),
- (tr.MACRO_PDF417_OPTIONAL_FIELD_TIME_STAMP = 2),
- (tr.MACRO_PDF417_OPTIONAL_FIELD_SENDER = 3),
- (tr.MACRO_PDF417_OPTIONAL_FIELD_ADDRESSEE = 4),
- (tr.MACRO_PDF417_OPTIONAL_FIELD_FILE_SIZE = 5),
- (tr.MACRO_PDF417_OPTIONAL_FIELD_CHECKSUM = 6),
- (tr.PL = 25),
- (tr.LL = 27),
- (tr.AS = 27),
- (tr.ML = 28),
- (tr.AL = 28),
- (tr.PS = 29),
- (tr.PAL = 29),
- (tr.PUNCT_CHARS = ';<>@[\\]_`~!\r\t,:\n-.$/"|*()?{}\''),
- (tr.MIXED_CHARS = '0123456789&\r\t,:#-.$/+%*=^'),
- (tr.EXP900 = qe()
- ? (function() {
- let t = []
- t[0] = $e(1)
- let e = $e(900)
- t[1] = e
- for (let r = 2; r < 16; r++) t[r] = t[r - 1] * e
- return t
- })()
- : []),
- (tr.NUMBER_OF_SEQUENCE_CODEWORDS = 2)
- class er {
- constructor() {}
- static decode(t, e, r, n, i, o, s) {
- let a,
- l = new xe(t, e, r, n, i),
- c = null,
- h = null
- for (let r = !0; ; r = !1) {
- if ((null != e && (c = er.getRowIndicatorColumn(t, l, e, !0, o, s)), null != n && (h = er.getRowIndicatorColumn(t, l, n, !1, o, s)), (a = er.merge(c, h)), null == a))
- throw N.getNotFoundInstance()
- let i = a.getBoundingBox()
- if (!r || null == i || !(i.getMinY() < l.getMinY() || i.getMaxY() > l.getMaxY())) break
- l = i
- }
- a.setBoundingBox(l)
- let u = a.getBarcodeColumnCount() + 1
- a.setDetectionResultColumn(0, c), a.setDetectionResultColumn(u, h)
- let d = null != c
- for (let e = 1; e <= u; e++) {
- let r,
- n = d ? e : u - e
- if (void 0 !== a.getDetectionResultColumn(n)) continue
- ;(r = 0 === n || n === u ? new ze(l, 0 === n) : new He(l)), a.setDetectionResultColumn(n, r)
- let i = -1,
- c = i
- for (let e = l.getMinY(); e <= l.getMaxY(); e++) {
- if (((i = er.getStartColumn(a, n, e, d)), i < 0 || i > l.getMaxX())) {
- if (-1 === c) continue
- i = c
- }
- let h = er.detectCodeword(t, l.getMinX(), l.getMaxX(), d, i, e, o, s)
- null != h && (r.setCodeword(e, h), (c = i), (o = Math.min(o, h.getWidth())), (s = Math.max(s, h.getWidth())))
- }
- }
- return er.createDecoderResult(a)
- }
- static merge(t, e) {
- if (null == t && null == e) return null
- let r = er.getBarcodeMetadata(t, e)
- if (null == r) return null
- let n = xe.merge(er.adjustBoundingBox(t), er.adjustBoundingBox(e))
- return new Ge(r, n)
- }
- static adjustBoundingBox(t) {
- if (null == t) return null
- let e = t.getRowHeights()
- if (null == e) return null
- let r = er.getMax(e),
- n = 0
- for (let t of e) if (((n += r - t), t > 0)) break
- let i = t.getCodewords()
- for (let t = 0; n > 0 && null == i[t]; t++) n--
- let o = 0
- for (let t = e.length - 1; t >= 0 && ((o += r - e[t]), !(e[t] > 0)); t--);
- for (let t = i.length - 1; o > 0 && null == i[t]; t--) o--
- return t.getBoundingBox().addMissingRows(n, o, t.isLeft())
- }
- static getMax(t) {
- let e = -1
- for (let r of t) e = Math.max(e, r)
- return e
- }
- static getBarcodeMetadata(t, e) {
- let r, n
- return null == t || null == (r = t.getBarcodeMetadata())
- ? null == e
- ? null
- : e.getBarcodeMetadata()
- : null == e || null == (n = e.getBarcodeMetadata())
- ? r
- : r.getColumnCount() !== n.getColumnCount() && r.getErrorCorrectionLevel() !== n.getErrorCorrectionLevel() && r.getRowCount() !== n.getRowCount()
- ? null
- : r
- }
- static getRowIndicatorColumn(t, e, r, n, i, o) {
- let s = new ze(e, n)
- for (let a = 0; a < 2; a++) {
- let l = 0 === a ? 1 : -1,
- c = Math.trunc(Math.trunc(r.getX()))
- for (let a = Math.trunc(Math.trunc(r.getY())); a <= e.getMaxY() && a >= e.getMinY(); a += l) {
- let e = er.detectCodeword(t, 0, t.getWidth(), n, c, a, i, o)
- null != e && (s.setCodeword(a, e), (c = n ? e.getStartX() : e.getEndX()))
- }
- }
- return s
- }
- static adjustCodewordCount(t, e) {
- let r = e[0][1],
- n = r.getValue(),
- i = t.getBarcodeColumnCount() * t.getBarcodeRowCount() - er.getNumberOfECCodeWords(t.getBarcodeECLevel())
- if (0 === n.length) {
- if (i < 1 || i > be.MAX_CODEWORDS_IN_BARCODE) throw N.getNotFoundInstance()
- r.setValue(i)
- } else n[0] !== i && r.setValue(i)
- }
- static createDecoderResult(t) {
- let e = er.createBarcodeMatrix(t)
- er.adjustCodewordCount(t, e)
- let r = new Array(),
- n = new Int32Array(t.getBarcodeRowCount() * t.getBarcodeColumnCount()),
- i = [],
- o = new Array()
- for (let s = 0; s < t.getBarcodeRowCount(); s++)
- for (let a = 0; a < t.getBarcodeColumnCount(); a++) {
- let l = e[s][a + 1].getValue(),
- c = s * t.getBarcodeColumnCount() + a
- 0 === l.length ? r.push(c) : 1 === l.length ? (n[c] = l[0]) : (o.push(c), i.push(l))
- }
- let s = new Array(i.length)
- for (let t = 0; t < s.length; t++) s[t] = i[t]
- return er.createDecoderResultFromAmbiguousValues(t.getBarcodeECLevel(), n, be.toIntArray(r), be.toIntArray(o), s)
- }
- static createDecoderResultFromAmbiguousValues(t, e, r, n, i) {
- let o = new Int32Array(n.length),
- s = 100
- for (; s-- > 0; ) {
- for (let t = 0; t < o.length; t++) e[n[t]] = i[t][o[t]]
- try {
- return er.decodeCodewords(e, t, r)
- } catch (t) {
- if (!(t instanceof c)) throw t
- }
- if (0 === o.length) throw c.getChecksumInstance()
- for (let t = 0; t < o.length; t++) {
- if (o[t] < i[t].length - 1) {
- o[t]++
- break
- }
- if (((o[t] = 0), t === o.length - 1)) throw c.getChecksumInstance()
- }
- }
- throw c.getChecksumInstance()
- }
- static createBarcodeMatrix(t) {
- let e = Array.from({ length: t.getBarcodeRowCount() }, () => new Array(t.getBarcodeColumnCount() + 2))
- for (let t = 0; t < e.length; t++) for (let r = 0; r < e[t].length; r++) e[t][r] = new Ve()
- let r = 0
- for (let n of t.getDetectionResultColumns()) {
- if (null != n)
- for (let t of n.getCodewords())
- if (null != t) {
- let n = t.getRowNumber()
- if (n >= 0) {
- if (n >= e.length) continue
- e[n][r].setValue(t.getValue())
- }
- }
- r++
- }
- return e
- }
- static isValidBarcodeColumn(t, e) {
- return e >= 0 && e <= t.getBarcodeColumnCount() + 1
- }
- static getStartColumn(t, e, r, n) {
- let i = n ? 1 : -1,
- o = null
- if ((er.isValidBarcodeColumn(t, e - i) && (o = t.getDetectionResultColumn(e - i).getCodeword(r)), null != o)) return n ? o.getEndX() : o.getStartX()
- if (((o = t.getDetectionResultColumn(e).getCodewordNearby(r)), null != o)) return n ? o.getStartX() : o.getEndX()
- if ((er.isValidBarcodeColumn(t, e - i) && (o = t.getDetectionResultColumn(e - i).getCodewordNearby(r)), null != o)) return n ? o.getEndX() : o.getStartX()
- let s = 0
- for (; er.isValidBarcodeColumn(t, e - i); ) {
- e -= i
- for (let r of t.getDetectionResultColumn(e).getCodewords()) if (null != r) return (n ? r.getEndX() : r.getStartX()) + i * s * (r.getEndX() - r.getStartX())
- s++
- }
- return n ? t.getBoundingBox().getMinX() : t.getBoundingBox().getMaxX()
- }
- static detectCodeword(t, e, r, n, i, o, s, a) {
- i = er.adjustCodewordStartColumn(t, e, r, n, i, o)
- let l,
- c = er.getModuleBitCount(t, e, r, n, i, o)
- if (null == c) return null
- let h = et.sum(c)
- if (n) l = i + h
- else {
- for (let t = 0; t < c.length / 2; t++) {
- let e = c[t]
- ;(c[t] = c[c.length - 1 - t]), (c[c.length - 1 - t] = e)
- }
- ;(l = i), (i = l - h)
- }
- if (!er.checkCodewordSkew(h, s, a)) return null
- let u = Xe.getDecodedValue(c),
- d = be.getCodeword(u)
- return -1 === d ? null : new Ye(i, l, er.getCodewordBucketNumber(u), d)
- }
- static getModuleBitCount(t, e, r, n, i, o) {
- let s = i,
- a = new Int32Array(8),
- l = 0,
- c = n ? 1 : -1,
- h = n
- for (; (n ? s < r : s >= e) && l < a.length; ) t.get(s, o) === h ? (a[l]++, (s += c)) : (l++, (h = !h))
- return l === a.length || (s === (n ? r : e) && l === a.length - 1) ? a : null
- }
- static getNumberOfECCodeWords(t) {
- return 2 << t
- }
- static adjustCodewordStartColumn(t, e, r, n, i, o) {
- let s = i,
- a = n ? -1 : 1
- for (let l = 0; l < 2; l++) {
- for (; (n ? s >= e : s < r) && n === t.get(s, o); ) {
- if (Math.abs(i - s) > er.CODEWORD_SKEW_SIZE) return i
- s += a
- }
- ;(a = -a), (n = !n)
- }
- return s
- }
- static checkCodewordSkew(t, e, r) {
- return e - er.CODEWORD_SKEW_SIZE <= t && t <= r + er.CODEWORD_SKEW_SIZE
- }
- static decodeCodewords(t, e, r) {
- if (0 === t.length) throw C.getFormatInstance()
- let n = 1 << (e + 1),
- i = er.correctErrors(t, r, n)
- er.verifyCodewordCount(t, n)
- let o = tr.decode(t, '' + e)
- return o.setErrorsCorrected(i), o.setErasures(r.length), o
- }
- static correctErrors(t, e, r) {
- if ((null != e && e.length > r / 2 + er.MAX_ERRORS) || r < 0 || r > er.MAX_EC_CODEWORDS) throw c.getChecksumInstance()
- return er.errorCorrection.decode(t, r, e)
- }
- static verifyCodewordCount(t, e) {
- if (t.length < 4) throw C.getFormatInstance()
- let r = t[0]
- if (r > t.length) throw C.getFormatInstance()
- if (0 === r) {
- if (!(e < t.length)) throw C.getFormatInstance()
- t[0] = t.length - e
- }
- }
- static getBitCountForCodeword(t) {
- let e = new Int32Array(8),
- r = 0,
- n = e.length - 1
- for (; !((1 & t) !== r && ((r = 1 & t), n--, n < 0)); ) e[n]++, (t >>= 1)
- return e
- }
- static getCodewordBucketNumber(t) {
- return t instanceof Int32Array ? this.getCodewordBucketNumber_Int32Array(t) : this.getCodewordBucketNumber_number(t)
- }
- static getCodewordBucketNumber_number(t) {
- return er.getCodewordBucketNumber(er.getBitCountForCodeword(t))
- }
- static getCodewordBucketNumber_Int32Array(t) {
- return (t[0] - t[2] + t[4] - t[6] + 9) % 9
- }
- static toString(t) {
- let e = new Ue()
- for (let r = 0; r < t.length; r++) {
- e.format('Row %2d: ', r)
- for (let n = 0; n < t[r].length; n++) {
- let i = t[r][n]
- 0 === i.getValue().length ? e.format(' ', null) : e.format('%4d(%2d)', i.getValue()[0], i.getConfidence(i.getValue()[0]))
- }
- e.format('%n')
- }
- return e.toString()
- }
- }
- ;(er.CODEWORD_SKEW_SIZE = 2), (er.MAX_ERRORS = 3), (er.MAX_EC_CODEWORDS = 512), (er.errorCorrection = new Fe())
- class rr {
- decode(t, e = null) {
- let r = rr.decode(t, e, !1)
- if (null == r || 0 === r.length || null == r[0]) throw N.getNotFoundInstance()
- return r[0]
- }
- decodeMultiple(t, e = null) {
- try {
- return rr.decode(t, e, !0)
- } catch (t) {
- if (t instanceof C || t instanceof c) throw N.getNotFoundInstance()
- throw t
- }
- }
- static decode(t, e, r) {
- const n = new Array(),
- i = Be.detectMultiple(t, e, r)
- for (const t of i.getPoints()) {
- const e = er.decode(i.getBits(), t[4], t[5], t[6], t[7], rr.getMinCodewordWidth(t), rr.getMaxCodewordWidth(t)),
- r = new F(e.getText(), e.getRawBytes(), void 0, t, k.PDF_417)
- r.putMetadata(X.ERROR_CORRECTION_LEVEL, e.getECLevel())
- const o = e.getOther()
- null != o && r.putMetadata(X.PDF417_EXTRA_METADATA, o), n.push(r)
- }
- return n.map(t => t)
- }
- static getMaxWidth(t, e) {
- return null == t || null == e ? 0 : Math.trunc(Math.abs(t.getX() - e.getX()))
- }
- static getMinWidth(t, e) {
- return null == t || null == e ? w.MAX_VALUE : Math.trunc(Math.abs(t.getX() - e.getX()))
- }
- static getMaxCodewordWidth(t) {
- return Math.floor(
- Math.max(
- Math.max(rr.getMaxWidth(t[0], t[4]), (rr.getMaxWidth(t[6], t[2]) * be.MODULES_IN_CODEWORD) / be.MODULES_IN_STOP_PATTERN),
- Math.max(rr.getMaxWidth(t[1], t[5]), (rr.getMaxWidth(t[7], t[3]) * be.MODULES_IN_CODEWORD) / be.MODULES_IN_STOP_PATTERN)
- )
- )
- }
- static getMinCodewordWidth(t) {
- return Math.floor(
- Math.min(
- Math.min(rr.getMinWidth(t[0], t[4]), (rr.getMinWidth(t[6], t[2]) * be.MODULES_IN_CODEWORD) / be.MODULES_IN_STOP_PATTERN),
- Math.min(rr.getMinWidth(t[1], t[5]), (rr.getMinWidth(t[7], t[3]) * be.MODULES_IN_CODEWORD) / be.MODULES_IN_STOP_PATTERN)
- )
- )
- }
- reset() {}
- }
- class nr extends o {}
- nr.kind = 'ReaderException'
- class ir {
- constructor(t, e) {
- ;(this.verbose = !0 === t), e && this.setHints(e)
- }
- decode(t, e) {
- return e && this.setHints(e), this.decodeInternal(t)
- }
- decodeWithState(t) {
- return (null !== this.readers && void 0 !== this.readers) || this.setHints(null), this.decodeInternal(t)
- }
- setHints(t) {
- this.hints = t
- const e = null != t && void 0 !== t.get(E.TRY_HARDER),
- r = null == t ? null : t.get(E.POSSIBLE_FORMATS),
- n = new Array()
- if (null != r) {
- const i = r.some(
- t =>
- t === k.UPC_A ||
- t === k.UPC_E ||
- t === k.EAN_13 ||
- t === k.EAN_8 ||
- t === k.CODABAR ||
- t === k.CODE_39 ||
- t === k.CODE_93 ||
- t === k.CODE_128 ||
- t === k.ITF ||
- t === k.RSS_14 ||
- t === k.RSS_EXPANDED
- )
- i && !e && n.push(new ee(t, this.verbose)),
- r.includes(k.QR_CODE) && n.push(new Oe()),
- r.includes(k.DATA_MATRIX) && n.push(new ue()),
- r.includes(k.AZTEC) && n.push(new gt()),
- r.includes(k.PDF_417) && n.push(new rr()),
- i && e && n.push(new ee(t, this.verbose))
- }
- 0 === n.length && (e || n.push(new ee(t, this.verbose)), n.push(new Oe()), n.push(new ue()), n.push(new gt()), n.push(new rr()), e && n.push(new ee(t, this.verbose))),
- (this.readers = n)
- }
- reset() {
- if (null !== this.readers) for (const t of this.readers) t.reset()
- }
- decodeInternal(t) {
- if (null === this.readers) throw new nr('No readers where selected, nothing can be read.')
- for (const e of this.readers)
- try {
- return e.decode(t, this.hints)
- } catch (t) {
- if (t instanceof nr) continue
- }
- throw new N('No MultiFormat Readers were able to detect the code.')
- }
- }
- var or
- !(function(t) {
- ;(t[(t.ERROR_CORRECTION = 0)] = 'ERROR_CORRECTION'),
- (t[(t.CHARACTER_SET = 1)] = 'CHARACTER_SET'),
- (t[(t.DATA_MATRIX_SHAPE = 2)] = 'DATA_MATRIX_SHAPE'),
- (t[(t.MIN_SIZE = 3)] = 'MIN_SIZE'),
- (t[(t.MAX_SIZE = 4)] = 'MAX_SIZE'),
- (t[(t.MARGIN = 5)] = 'MARGIN'),
- (t[(t.PDF417_COMPACT = 6)] = 'PDF417_COMPACT'),
- (t[(t.PDF417_COMPACTION = 7)] = 'PDF417_COMPACTION'),
- (t[(t.PDF417_DIMENSIONS = 8)] = 'PDF417_DIMENSIONS'),
- (t[(t.AZTEC_LAYERS = 9)] = 'AZTEC_LAYERS'),
- (t[(t.QR_VERSION = 10)] = 'QR_VERSION')
- })(or || (or = {}))
- var sr = or
- class ar {
- constructor(t) {
- ;(this.field = t), (this.cachedGenerators = []), this.cachedGenerators.push(new Z(t, Int32Array.from([1])))
- }
- buildGenerator(t) {
- const e = this.cachedGenerators
- if (t >= e.length) {
- let r = e[e.length - 1]
- const n = this.field
- for (let i = e.length; i <= t; i++) {
- const t = r.multiply(new Z(n, Int32Array.from([1, n.exp(i - 1 + n.getGeneratorBase())])))
- e.push(t), (r = t)
- }
- }
- return e[t]
- }
- encode(t, e) {
- if (0 === e) throw new a('No error correction bytes')
- const r = t.length - e
- if (r <= 0) throw new a('No data bytes provided')
- const n = this.buildGenerator(e),
- i = new Int32Array(r)
- u.arraycopy(t, 0, i, 0, r)
- let o = new Z(this.field, i)
- o = o.multiplyByMonomial(e, 1)
- const s = o.divide(n)[1].getCoefficients(),
- l = e - s.length
- for (let e = 0; e < l; e++) t[r + e] = 0
- u.arraycopy(s, 0, t, r + l, s.length)
- }
- }
- class lr {
- constructor() {}
- static applyMaskPenaltyRule1(t) {
- return lr.applyMaskPenaltyRule1Internal(t, !0) + lr.applyMaskPenaltyRule1Internal(t, !1)
- }
- static applyMaskPenaltyRule2(t) {
- let e = 0
- const r = t.getArray(),
- n = t.getWidth(),
- i = t.getHeight()
- for (let t = 0; t < i - 1; t++) {
- const i = r[t]
- for (let o = 0; o < n - 1; o++) {
- const n = i[o]
- n === i[o + 1] && n === r[t + 1][o] && n === r[t + 1][o + 1] && e++
- }
- }
- return lr.N2 * e
- }
- static applyMaskPenaltyRule3(t) {
- let e = 0
- const r = t.getArray(),
- n = t.getWidth(),
- i = t.getHeight()
- for (let t = 0; t < i; t++)
- for (let o = 0; o < n; o++) {
- const s = r[t]
- o + 6 < n &&
- 1 === s[o] &&
- 0 === s[o + 1] &&
- 1 === s[o + 2] &&
- 1 === s[o + 3] &&
- 1 === s[o + 4] &&
- 0 === s[o + 5] &&
- 1 === s[o + 6] &&
- (lr.isWhiteHorizontal(s, o - 4, o) || lr.isWhiteHorizontal(s, o + 7, o + 11)) &&
- e++,
- t + 6 < i &&
- 1 === r[t][o] &&
- 0 === r[t + 1][o] &&
- 1 === r[t + 2][o] &&
- 1 === r[t + 3][o] &&
- 1 === r[t + 4][o] &&
- 0 === r[t + 5][o] &&
- 1 === r[t + 6][o] &&
- (lr.isWhiteVertical(r, o, t - 4, t) || lr.isWhiteVertical(r, o, t + 7, t + 11)) &&
- e++
- }
- return e * lr.N3
- }
- static isWhiteHorizontal(t, e, r) {
- ;(e = Math.max(e, 0)), (r = Math.min(r, t.length))
- for (let n = e; n < r; n++) if (1 === t[n]) return !1
- return !0
- }
- static isWhiteVertical(t, e, r, n) {
- ;(r = Math.max(r, 0)), (n = Math.min(n, t.length))
- for (let i = r; i < n; i++) if (1 === t[i][e]) return !1
- return !0
- }
- static applyMaskPenaltyRule4(t) {
- let e = 0
- const r = t.getArray(),
- n = t.getWidth(),
- i = t.getHeight()
- for (let t = 0; t < i; t++) {
- const i = r[t]
- for (let t = 0; t < n; t++) 1 === i[t] && e++
- }
- const o = t.getHeight() * t.getWidth()
- return Math.floor((10 * Math.abs(2 * e - o)) / o) * lr.N4
- }
- static getDataMaskBit(t, e, r) {
- let n, i
- switch (t) {
- case 0:
- n = (r + e) & 1
- break
- case 1:
- n = 1 & r
- break
- case 2:
- n = e % 3
- break
- case 3:
- n = (r + e) % 3
- break
- case 4:
- n = (Math.floor(r / 2) + Math.floor(e / 3)) & 1
- break
- case 5:
- ;(i = r * e), (n = (1 & i) + (i % 3))
- break
- case 6:
- ;(i = r * e), (n = ((1 & i) + (i % 3)) & 1)
- break
- case 7:
- ;(i = r * e), (n = ((i % 3) + ((r + e) & 1)) & 1)
- break
- default:
- throw new a('Invalid mask pattern: ' + t)
- }
- return 0 === n
- }
- static applyMaskPenaltyRule1Internal(t, e) {
- let r = 0
- const n = e ? t.getHeight() : t.getWidth(),
- i = e ? t.getWidth() : t.getHeight(),
- o = t.getArray()
- for (let t = 0; t < n; t++) {
- let n = 0,
- s = -1
- for (let a = 0; a < i; a++) {
- const i = e ? o[t][a] : o[a][t]
- i === s ? n++ : (n >= 5 && (r += lr.N1 + (n - 5)), (n = 1), (s = i))
- }
- n >= 5 && (r += lr.N1 + (n - 5))
- }
- return r
- }
- }
- ;(lr.N1 = 3), (lr.N2 = 3), (lr.N3 = 40), (lr.N4 = 10)
- class cr {
- constructor(t, e) {
- ;(this.width = t), (this.height = e)
- const r = new Array(e)
- for (let n = 0; n !== e; n++) r[n] = new Uint8Array(t)
- this.bytes = r
- }
- getHeight() {
- return this.height
- }
- getWidth() {
- return this.width
- }
- get(t, e) {
- return this.bytes[e][t]
- }
- getArray() {
- return this.bytes
- }
- setNumber(t, e, r) {
- this.bytes[e][t] = r
- }
- setBoolean(t, e, r) {
- this.bytes[e][t] = r ? 1 : 0
- }
- clear(t) {
- for (const e of this.bytes) f.fill(e, t)
- }
- equals(t) {
- if (!(t instanceof cr)) return !1
- const e = t
- if (this.width !== e.width) return !1
- if (this.height !== e.height) return !1
- for (let t = 0, r = this.height; t < r; ++t) {
- const r = this.bytes[t],
- n = e.bytes[t]
- for (let t = 0, e = this.width; t < e; ++t) if (r[t] !== n[t]) return !1
- }
- return !0
- }
- toString() {
- const t = new T()
- for (let e = 0, r = this.height; e < r; ++e) {
- const r = this.bytes[e]
- for (let e = 0, n = this.width; e < n; ++e)
- switch (r[e]) {
- case 0:
- t.append(' 0')
- break
- case 1:
- t.append(' 1')
- break
- default:
- t.append(' ')
- }
- t.append('\n')
- }
- return t.toString()
- }
- }
- class hr {
- constructor() {
- this.maskPattern = -1
- }
- getMode() {
- return this.mode
- }
- getECLevel() {
- return this.ecLevel
- }
- getVersion() {
- return this.version
- }
- getMaskPattern() {
- return this.maskPattern
- }
- getMatrix() {
- return this.matrix
- }
- toString() {
- const t = new T()
- return (
- t.append('<<\n'),
- t.append(' mode: '),
- t.append(this.mode ? this.mode.toString() : 'null'),
- t.append('\n ecLevel: '),
- t.append(this.ecLevel ? this.ecLevel.toString() : 'null'),
- t.append('\n version: '),
- t.append(this.version ? this.version.toString() : 'null'),
- t.append('\n maskPattern: '),
- t.append(this.maskPattern.toString()),
- this.matrix ? (t.append('\n matrix:\n'), t.append(this.matrix.toString())) : t.append('\n matrix: null\n'),
- t.append('>>\n'),
- t.toString()
- )
- }
- setMode(t) {
- this.mode = t
- }
- setECLevel(t) {
- this.ecLevel = t
- }
- setVersion(t) {
- this.version = t
- }
- setMaskPattern(t) {
- this.maskPattern = t
- }
- setMatrix(t) {
- this.matrix = t
- }
- static isValidMaskPattern(t) {
- return t >= 0 && t < hr.NUM_MASK_PATTERNS
- }
- }
- hr.NUM_MASK_PATTERNS = 8
- class ur extends o {}
- ur.kind = 'WriterException'
- class dr {
- constructor() {}
- static clearMatrix(t) {
- t.clear(255)
- }
- static buildMatrix(t, e, r, n, i) {
- dr.clearMatrix(i), dr.embedBasicPatterns(r, i), dr.embedTypeInfo(e, n, i), dr.maybeEmbedVersionInfo(r, i), dr.embedDataBits(t, n, i)
- }
- static embedBasicPatterns(t, e) {
- dr.embedPositionDetectionPatternsAndSeparators(e), dr.embedDarkDotAtLeftBottomCorner(e), dr.maybeEmbedPositionAdjustmentPatterns(t, e), dr.embedTimingPatterns(e)
- }
- static embedTypeInfo(t, e, r) {
- const n = new A()
- dr.makeTypeInfoBits(t, e, n)
- for (let t = 0, e = n.getSize(); t < e; ++t) {
- const e = n.get(n.getSize() - 1 - t),
- i = dr.TYPE_INFO_COORDINATES[t],
- o = i[0],
- s = i[1]
- if ((r.setBoolean(o, s, e), t < 8)) {
- const n = r.getWidth() - t - 1,
- i = 8
- r.setBoolean(n, i, e)
- } else {
- const n = 8,
- i = r.getHeight() - 7 + (t - 8)
- r.setBoolean(n, i, e)
- }
- }
- }
- static maybeEmbedVersionInfo(t, e) {
- if (t.getVersionNumber() < 7) return
- const r = new A()
- dr.makeVersionInfoBits(t, r)
- let n = 17
- for (let t = 0; t < 6; ++t)
- for (let i = 0; i < 3; ++i) {
- const o = r.get(n)
- n--, e.setBoolean(t, e.getHeight() - 11 + i, o), e.setBoolean(e.getHeight() - 11 + i, t, o)
- }
- }
- static embedDataBits(t, e, r) {
- let n = 0,
- i = -1,
- o = r.getWidth() - 1,
- s = r.getHeight() - 1
- for (; o > 0; ) {
- for (6 === o && (o -= 1); s >= 0 && s < r.getHeight(); ) {
- for (let i = 0; i < 2; ++i) {
- const a = o - i
- if (!dr.isEmpty(r.get(a, s))) continue
- let l
- n < t.getSize() ? ((l = t.get(n)), ++n) : (l = !1), 255 !== e && lr.getDataMaskBit(e, a, s) && (l = !l), r.setBoolean(a, s, l)
- }
- s += i
- }
- ;(i = -i), (s += i), (o -= 2)
- }
- if (n !== t.getSize()) throw new ur('Not all bits consumed: ' + n + '/' + t.getSize())
- }
- static findMSBSet(t) {
- return 32 - w.numberOfLeadingZeros(t)
- }
- static calculateBCHCode(t, e) {
- if (0 === e) throw new a('0 polynomial')
- const r = dr.findMSBSet(e)
- for (t <<= r - 1; dr.findMSBSet(t) >= r; ) t ^= e << (dr.findMSBSet(t) - r)
- return t
- }
- static makeTypeInfoBits(t, e, r) {
- if (!hr.isValidMaskPattern(e)) throw new ur('Invalid mask pattern')
- const n = (t.getBits() << 3) | e
- r.appendBits(n, 5)
- const i = dr.calculateBCHCode(n, dr.TYPE_INFO_POLY)
- r.appendBits(i, 10)
- const o = new A()
- if ((o.appendBits(dr.TYPE_INFO_MASK_PATTERN, 15), r.xor(o), 15 !== r.getSize())) throw new ur('should not happen but we got: ' + r.getSize())
- }
- static makeVersionInfoBits(t, e) {
- e.appendBits(t.getVersionNumber(), 6)
- const r = dr.calculateBCHCode(t.getVersionNumber(), dr.VERSION_INFO_POLY)
- if ((e.appendBits(r, 12), 18 !== e.getSize())) throw new ur('should not happen but we got: ' + e.getSize())
- }
- static isEmpty(t) {
- return 255 === t
- }
- static embedTimingPatterns(t) {
- for (let e = 8; e < t.getWidth() - 8; ++e) {
- const r = (e + 1) % 2
- dr.isEmpty(t.get(e, 6)) && t.setNumber(e, 6, r), dr.isEmpty(t.get(6, e)) && t.setNumber(6, e, r)
- }
- }
- static embedDarkDotAtLeftBottomCorner(t) {
- if (0 === t.get(8, t.getHeight() - 8)) throw new ur()
- t.setNumber(8, t.getHeight() - 8, 1)
- }
- static embedHorizontalSeparationPattern(t, e, r) {
- for (let n = 0; n < 8; ++n) {
- if (!dr.isEmpty(r.get(t + n, e))) throw new ur()
- r.setNumber(t + n, e, 0)
- }
- }
- static embedVerticalSeparationPattern(t, e, r) {
- for (let n = 0; n < 7; ++n) {
- if (!dr.isEmpty(r.get(t, e + n))) throw new ur()
- r.setNumber(t, e + n, 0)
- }
- }
- static embedPositionAdjustmentPattern(t, e, r) {
- for (let n = 0; n < 5; ++n) {
- const i = dr.POSITION_ADJUSTMENT_PATTERN[n]
- for (let o = 0; o < 5; ++o) r.setNumber(t + o, e + n, i[o])
- }
- }
- static embedPositionDetectionPattern(t, e, r) {
- for (let n = 0; n < 7; ++n) {
- const i = dr.POSITION_DETECTION_PATTERN[n]
- for (let o = 0; o < 7; ++o) r.setNumber(t + o, e + n, i[o])
- }
- }
- static embedPositionDetectionPatternsAndSeparators(t) {
- const e = dr.POSITION_DETECTION_PATTERN[0].length
- dr.embedPositionDetectionPattern(0, 0, t), dr.embedPositionDetectionPattern(t.getWidth() - e, 0, t), dr.embedPositionDetectionPattern(0, t.getWidth() - e, t)
- dr.embedHorizontalSeparationPattern(0, 7, t), dr.embedHorizontalSeparationPattern(t.getWidth() - 8, 7, t), dr.embedHorizontalSeparationPattern(0, t.getWidth() - 8, t)
- dr.embedVerticalSeparationPattern(7, 0, t), dr.embedVerticalSeparationPattern(t.getHeight() - 7 - 1, 0, t), dr.embedVerticalSeparationPattern(7, t.getHeight() - 7, t)
- }
- static maybeEmbedPositionAdjustmentPatterns(t, e) {
- if (t.getVersionNumber() < 2) return
- const r = t.getVersionNumber() - 1,
- n = dr.POSITION_ADJUSTMENT_PATTERN_COORDINATE_TABLE[r]
- for (let t = 0, r = n.length; t !== r; t++) {
- const i = n[t]
- if (i >= 0)
- for (let t = 0; t !== r; t++) {
- const r = n[t]
- r >= 0 && dr.isEmpty(e.get(r, i)) && dr.embedPositionAdjustmentPattern(r - 2, i - 2, e)
- }
- }
- }
- }
- ;(dr.POSITION_DETECTION_PATTERN = Array.from([
- Int32Array.from([1, 1, 1, 1, 1, 1, 1]),
- Int32Array.from([1, 0, 0, 0, 0, 0, 1]),
- Int32Array.from([1, 0, 1, 1, 1, 0, 1]),
- Int32Array.from([1, 0, 1, 1, 1, 0, 1]),
- Int32Array.from([1, 0, 1, 1, 1, 0, 1]),
- Int32Array.from([1, 0, 0, 0, 0, 0, 1]),
- Int32Array.from([1, 1, 1, 1, 1, 1, 1])
- ])),
- (dr.POSITION_ADJUSTMENT_PATTERN = Array.from([
- Int32Array.from([1, 1, 1, 1, 1]),
- Int32Array.from([1, 0, 0, 0, 1]),
- Int32Array.from([1, 0, 1, 0, 1]),
- Int32Array.from([1, 0, 0, 0, 1]),
- Int32Array.from([1, 1, 1, 1, 1])
- ])),
- (dr.POSITION_ADJUSTMENT_PATTERN_COORDINATE_TABLE = Array.from([
- Int32Array.from([-1, -1, -1, -1, -1, -1, -1]),
- Int32Array.from([6, 18, -1, -1, -1, -1, -1]),
- Int32Array.from([6, 22, -1, -1, -1, -1, -1]),
- Int32Array.from([6, 26, -1, -1, -1, -1, -1]),
- Int32Array.from([6, 30, -1, -1, -1, -1, -1]),
- Int32Array.from([6, 34, -1, -1, -1, -1, -1]),
- Int32Array.from([6, 22, 38, -1, -1, -1, -1]),
- Int32Array.from([6, 24, 42, -1, -1, -1, -1]),
- Int32Array.from([6, 26, 46, -1, -1, -1, -1]),
- Int32Array.from([6, 28, 50, -1, -1, -1, -1]),
- Int32Array.from([6, 30, 54, -1, -1, -1, -1]),
- Int32Array.from([6, 32, 58, -1, -1, -1, -1]),
- Int32Array.from([6, 34, 62, -1, -1, -1, -1]),
- Int32Array.from([6, 26, 46, 66, -1, -1, -1]),
- Int32Array.from([6, 26, 48, 70, -1, -1, -1]),
- Int32Array.from([6, 26, 50, 74, -1, -1, -1]),
- Int32Array.from([6, 30, 54, 78, -1, -1, -1]),
- Int32Array.from([6, 30, 56, 82, -1, -1, -1]),
- Int32Array.from([6, 30, 58, 86, -1, -1, -1]),
- Int32Array.from([6, 34, 62, 90, -1, -1, -1]),
- Int32Array.from([6, 28, 50, 72, 94, -1, -1]),
- Int32Array.from([6, 26, 50, 74, 98, -1, -1]),
- Int32Array.from([6, 30, 54, 78, 102, -1, -1]),
- Int32Array.from([6, 28, 54, 80, 106, -1, -1]),
- Int32Array.from([6, 32, 58, 84, 110, -1, -1]),
- Int32Array.from([6, 30, 58, 86, 114, -1, -1]),
- Int32Array.from([6, 34, 62, 90, 118, -1, -1]),
- Int32Array.from([6, 26, 50, 74, 98, 122, -1]),
- Int32Array.from([6, 30, 54, 78, 102, 126, -1]),
- Int32Array.from([6, 26, 52, 78, 104, 130, -1]),
- Int32Array.from([6, 30, 56, 82, 108, 134, -1]),
- Int32Array.from([6, 34, 60, 86, 112, 138, -1]),
- Int32Array.from([6, 30, 58, 86, 114, 142, -1]),
- Int32Array.from([6, 34, 62, 90, 118, 146, -1]),
- Int32Array.from([6, 30, 54, 78, 102, 126, 150]),
- Int32Array.from([6, 24, 50, 76, 102, 128, 154]),
- Int32Array.from([6, 28, 54, 80, 106, 132, 158]),
- Int32Array.from([6, 32, 58, 84, 110, 136, 162]),
- Int32Array.from([6, 26, 54, 82, 110, 138, 166]),
- Int32Array.from([6, 30, 58, 86, 114, 142, 170])
- ])),
- (dr.TYPE_INFO_COORDINATES = Array.from([
- Int32Array.from([8, 0]),
- Int32Array.from([8, 1]),
- Int32Array.from([8, 2]),
- Int32Array.from([8, 3]),
- Int32Array.from([8, 4]),
- Int32Array.from([8, 5]),
- Int32Array.from([8, 7]),
- Int32Array.from([8, 8]),
- Int32Array.from([7, 8]),
- Int32Array.from([5, 8]),
- Int32Array.from([4, 8]),
- Int32Array.from([3, 8]),
- Int32Array.from([2, 8]),
- Int32Array.from([1, 8]),
- Int32Array.from([0, 8])
- ])),
- (dr.VERSION_INFO_POLY = 7973),
- (dr.TYPE_INFO_POLY = 1335),
- (dr.TYPE_INFO_MASK_PATTERN = 21522)
- class gr {
- constructor(t, e) {
- ;(this.dataBytes = t), (this.errorCorrectionBytes = e)
- }
- getDataBytes() {
- return this.dataBytes
- }
- getErrorCorrectionBytes() {
- return this.errorCorrectionBytes
- }
- }
- class fr {
- constructor() {}
- static calculateMaskPenalty(t) {
- return lr.applyMaskPenaltyRule1(t) + lr.applyMaskPenaltyRule2(t) + lr.applyMaskPenaltyRule3(t) + lr.applyMaskPenaltyRule4(t)
- }
- static encode(t, e, r = null) {
- let n = fr.DEFAULT_BYTE_MODE_ENCODING
- const i = null !== r && void 0 !== r.get(sr.CHARACTER_SET)
- i && (n = r.get(sr.CHARACTER_SET).toString())
- const o = this.chooseMode(t, n),
- s = new A()
- if (o === Ie.BYTE && (i || fr.DEFAULT_BYTE_MODE_ENCODING !== n)) {
- const t = I.getCharacterSetECIByName(n)
- void 0 !== t && this.appendECI(t, s)
- }
- this.appendModeInfo(o, s)
- const a = new A()
- let l
- if ((this.appendBytes(t, o, a, n), null !== r && void 0 !== r.get(sr.QR_VERSION))) {
- const t = Number.parseInt(r.get(sr.QR_VERSION).toString(), 10)
- l = Ae.getVersionForNumber(t)
- const n = this.calculateBitsNeeded(o, s, a, l)
- if (!this.willFit(n, l, e)) throw new ur('Data too big for requested version')
- } else l = this.recommendVersion(e, o, s, a)
- const c = new A()
- c.appendBitArray(s)
- const h = o === Ie.BYTE ? a.getSizeInBytes() : t.length
- this.appendLengthInfo(h, l, o, c), c.appendBitArray(a)
- const u = l.getECBlocksForLevel(e),
- d = l.getTotalCodewords() - u.getTotalECCodewords()
- this.terminateBits(d, c)
- const g = this.interleaveWithECBytes(c, l.getTotalCodewords(), d, u.getNumBlocks()),
- f = new hr()
- f.setECLevel(e), f.setMode(o), f.setVersion(l)
- const w = l.getDimensionForVersion(),
- m = new cr(w, w),
- E = this.chooseMaskPattern(g, e, l, m)
- return f.setMaskPattern(E), dr.buildMatrix(g, e, l, E, m), f.setMatrix(m), f
- }
- static recommendVersion(t, e, r, n) {
- const i = this.calculateBitsNeeded(e, r, n, Ae.getVersionForNumber(1)),
- o = this.chooseVersion(i, t),
- s = this.calculateBitsNeeded(e, r, n, o)
- return this.chooseVersion(s, t)
- }
- static calculateBitsNeeded(t, e, r, n) {
- return e.getSize() + t.getCharacterCountBits(n) + r.getSize()
- }
- static getAlphanumericCode(t) {
- return t < fr.ALPHANUMERIC_TABLE.length ? fr.ALPHANUMERIC_TABLE[t] : -1
- }
- static chooseMode(t, e = null) {
- if (I.SJIS.getName() === e && this.isOnlyDoubleByteKanji(t)) return Ie.KANJI
- let r = !1,
- n = !1
- for (let e = 0, i = t.length; e < i; ++e) {
- const i = t.charAt(e)
- if (fr.isDigit(i)) r = !0
- else {
- if (-1 === this.getAlphanumericCode(i.charCodeAt(0))) return Ie.BYTE
- n = !0
- }
- }
- return n ? Ie.ALPHANUMERIC : r ? Ie.NUMERIC : Ie.BYTE
- }
- static isOnlyDoubleByteKanji(t) {
- let e
- try {
- e = S.encode(t, I.SJIS)
- } catch (t) {
- return !1
- }
- const r = e.length
- if (r % 2 != 0) return !1
- for (let t = 0; t < r; t += 2) {
- const r = 255 & e[t]
- if ((r < 129 || r > 159) && (r < 224 || r > 235)) return !1
- }
- return !0
- }
- static chooseMaskPattern(t, e, r, n) {
- let i = Number.MAX_SAFE_INTEGER,
- o = -1
- for (let s = 0; s < hr.NUM_MASK_PATTERNS; s++) {
- dr.buildMatrix(t, e, r, s, n)
- let a = this.calculateMaskPenalty(n)
- a < i && ((i = a), (o = s))
- }
- return o
- }
- static chooseVersion(t, e) {
- for (let r = 1; r <= 40; r++) {
- const n = Ae.getVersionForNumber(r)
- if (fr.willFit(t, n, e)) return n
- }
- throw new ur('Data too big')
- }
- static willFit(t, e, r) {
- return e.getTotalCodewords() - e.getECBlocksForLevel(r).getTotalECCodewords() >= (t + 7) / 8
- }
- static terminateBits(t, e) {
- const r = 8 * t
- if (e.getSize() > r) throw new ur('data bits cannot fit in the QR Code' + e.getSize() + ' > ' + r)
- for (let t = 0; t < 4 && e.getSize() < r; ++t) e.appendBit(!1)
- const n = 7 & e.getSize()
- if (n > 0) for (let t = n; t < 8; t++) e.appendBit(!1)
- const i = t - e.getSizeInBytes()
- for (let t = 0; t < i; ++t) e.appendBits(0 == (1 & t) ? 236 : 17, 8)
- if (e.getSize() !== r) throw new ur('Bits size does not equal capacity')
- }
- static getNumDataBytesAndNumECBytesForBlockID(t, e, r, n, i, o) {
- if (n >= r) throw new ur('Block ID too large')
- const s = t % r,
- a = r - s,
- l = Math.floor(t / r),
- c = l + 1,
- h = Math.floor(e / r),
- u = h + 1,
- d = l - h,
- g = c - u
- if (d !== g) throw new ur('EC bytes mismatch')
- if (r !== a + s) throw new ur('RS blocks mismatch')
- if (t !== (h + d) * a + (u + g) * s) throw new ur('Total bytes mismatch')
- n < a ? ((i[0] = h), (o[0] = d)) : ((i[0] = u), (o[0] = g))
- }
- static interleaveWithECBytes(t, e, r, n) {
- if (t.getSizeInBytes() !== r) throw new ur('Number of bits and data bytes does not match')
- let i = 0,
- o = 0,
- s = 0
- const a = new Array()
- for (let l = 0; l < n; ++l) {
- const c = new Int32Array(1),
- h = new Int32Array(1)
- fr.getNumDataBytesAndNumECBytesForBlockID(e, r, n, l, c, h)
- const u = c[0],
- d = new Uint8Array(u)
- t.toBytes(8 * i, d, 0, u)
- const g = fr.generateECBytes(d, h[0])
- a.push(new gr(d, g)), (o = Math.max(o, u)), (s = Math.max(s, g.length)), (i += c[0])
- }
- if (r !== i) throw new ur('Data bytes does not match offset')
- const l = new A()
- for (let t = 0; t < o; ++t)
- for (const e of a) {
- const r = e.getDataBytes()
- t < r.length && l.appendBits(r[t], 8)
- }
- for (let t = 0; t < s; ++t)
- for (const e of a) {
- const r = e.getErrorCorrectionBytes()
- t < r.length && l.appendBits(r[t], 8)
- }
- if (e !== l.getSizeInBytes()) throw new ur('Interleaving error: ' + e + ' and ' + l.getSizeInBytes() + ' differ.')
- return l
- }
- static generateECBytes(t, e) {
- const r = t.length,
- n = new Int32Array(r + e)
- for (let e = 0; e < r; e++) n[e] = 255 & t[e]
- new ar(K.QR_CODE_FIELD_256).encode(n, e)
- const i = new Uint8Array(e)
- for (let t = 0; t < e; t++) i[t] = n[r + t]
- return i
- }
- static appendModeInfo(t, e) {
- e.appendBits(t.getBits(), 4)
- }
- static appendLengthInfo(t, e, r, n) {
- const i = r.getCharacterCountBits(e)
- if (t >= 1 << i) throw new ur(t + ' is bigger than ' + ((1 << i) - 1))
- n.appendBits(t, i)
- }
- static appendBytes(t, e, r, n) {
- switch (e) {
- case Ie.NUMERIC:
- fr.appendNumericBytes(t, r)
- break
- case Ie.ALPHANUMERIC:
- fr.appendAlphanumericBytes(t, r)
- break
- case Ie.BYTE:
- fr.append8BitBytes(t, r, n)
- break
- case Ie.KANJI:
- fr.appendKanjiBytes(t, r)
- break
- default:
- throw new ur('Invalid mode: ' + e)
- }
- }
- static getDigit(t) {
- return t.charCodeAt(0) - 48
- }
- static isDigit(t) {
- const e = fr.getDigit(t)
- return e >= 0 && e <= 9
- }
- static appendNumericBytes(t, e) {
- const r = t.length
- let n = 0
- for (; n < r; ) {
- const i = fr.getDigit(t.charAt(n))
- if (n + 2 < r) {
- const r = fr.getDigit(t.charAt(n + 1)),
- o = fr.getDigit(t.charAt(n + 2))
- e.appendBits(100 * i + 10 * r + o, 10), (n += 3)
- } else if (n + 1 < r) {
- const r = fr.getDigit(t.charAt(n + 1))
- e.appendBits(10 * i + r, 7), (n += 2)
- } else e.appendBits(i, 4), n++
- }
- }
- static appendAlphanumericBytes(t, e) {
- const r = t.length
- let n = 0
- for (; n < r; ) {
- const i = fr.getAlphanumericCode(t.charCodeAt(n))
- if (-1 === i) throw new ur()
- if (n + 1 < r) {
- const r = fr.getAlphanumericCode(t.charCodeAt(n + 1))
- if (-1 === r) throw new ur()
- e.appendBits(45 * i + r, 11), (n += 2)
- } else e.appendBits(i, 6), n++
- }
- }
- static append8BitBytes(t, e, r) {
- let n
- try {
- n = S.encode(t, r)
- } catch (t) {
- throw new ur(t)
- }
- for (let t = 0, r = n.length; t !== r; t++) {
- const r = n[t]
- e.appendBits(r, 8)
- }
- }
- static appendKanjiBytes(t, e) {
- let r
- try {
- r = S.encode(t, I.SJIS)
- } catch (t) {
- throw new ur(t)
- }
- const n = r.length
- for (let t = 0; t < n; t += 2) {
- const n = (((255 & r[t]) << 8) & 4294967295) | (255 & r[t + 1])
- let i = -1
- if ((n >= 33088 && n <= 40956 ? (i = n - 33088) : n >= 57408 && n <= 60351 && (i = n - 49472), -1 === i)) throw new ur('Invalid byte sequence')
- const o = 192 * (i >> 8) + (255 & i)
- e.appendBits(o, 13)
- }
- }
- static appendECI(t, e) {
- e.appendBits(Ie.ECI.getBits(), 4), e.appendBits(t.getValue(), 8)
- }
- }
- ;(fr.ALPHANUMERIC_TABLE = Int32Array.from([
- -1,
- -1,
- -1,
- -1,
- -1,
- -1,
- -1,
- -1,
- -1,
- -1,
- -1,
- -1,
- -1,
- -1,
- -1,
- -1,
- -1,
- -1,
- -1,
- -1,
- -1,
- -1,
- -1,
- -1,
- -1,
- -1,
- -1,
- -1,
- -1,
- -1,
- -1,
- -1,
- 36,
- -1,
- -1,
- -1,
- 37,
- 38,
- -1,
- -1,
- -1,
- -1,
- 39,
- 40,
- -1,
- 41,
- 42,
- 43,
- 0,
- 1,
- 2,
- 3,
- 4,
- 5,
- 6,
- 7,
- 8,
- 9,
- 44,
- -1,
- -1,
- -1,
- -1,
- -1,
- -1,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- -1,
- -1,
- -1,
- -1,
- -1
- ])),
- (fr.DEFAULT_BYTE_MODE_ENCODING = I.UTF8.getName())
- class wr {
- write(t, e, r, n = null) {
- if (0 === t.length) throw new a('Found empty contents')
- if (e < 0 || r < 0) throw new a('Requested dimensions are too small: ' + e + 'x' + r)
- let i = de.L,
- o = wr.QUIET_ZONE_SIZE
- null !== n &&
- (void 0 !== n.get(sr.ERROR_CORRECTION) && (i = de.fromString(n.get(sr.ERROR_CORRECTION).toString())),
- void 0 !== n.get(sr.MARGIN) && (o = Number.parseInt(n.get(sr.MARGIN).toString(), 10)))
- const s = fr.encode(t, i, n)
- return this.renderResult(s, e, r, o)
- }
- writeToDom(t, e, r, n, i = null) {
- 'string' == typeof t && (t = document.querySelector(t))
- const o = this.write(e, r, n, i)
- t && t.appendChild(o)
- }
- renderResult(t, e, r, n) {
- const i = t.getMatrix()
- if (null === i) throw new J()
- const o = i.getWidth(),
- s = i.getHeight(),
- a = o + 2 * n,
- l = s + 2 * n,
- c = Math.max(e, a),
- h = Math.max(r, l),
- u = Math.min(Math.floor(c / a), Math.floor(h / l)),
- d = Math.floor((c - o * u) / 2),
- g = Math.floor((h - s * u) / 2),
- f = this.createSVGElement(c, h)
- for (let t = 0, e = g; t < s; t++, e += u)
- for (let r = 0, n = d; r < o; r++, n += u)
- if (1 === i.get(r, t)) {
- const t = this.createSvgRectElement(n, e, u, u)
- f.appendChild(t)
- }
- return f
- }
- createSVGElement(t, e) {
- const r = document.createElementNS(wr.SVG_NS, 'svg')
- return r.setAttributeNS(null, 'height', t.toString()), r.setAttributeNS(null, 'width', e.toString()), r
- }
- createSvgRectElement(t, e, r, n) {
- const i = document.createElementNS(wr.SVG_NS, 'rect')
- return (
- i.setAttributeNS(null, 'x', t.toString()),
- i.setAttributeNS(null, 'y', e.toString()),
- i.setAttributeNS(null, 'height', r.toString()),
- i.setAttributeNS(null, 'width', n.toString()),
- i.setAttributeNS(null, 'fill', '#000000'),
- i
- )
- }
- }
- ;(wr.QUIET_ZONE_SIZE = 4), (wr.SVG_NS = 'http://www.w3.org/2000/svg')
- class Ar {
- encode(t, e, r, n, i) {
- if (0 === t.length) throw new a('Found empty contents')
- if (e !== k.QR_CODE) throw new a('Can only encode QR_CODE, but got ' + e)
- if (r < 0 || n < 0) throw new a(`Requested dimensions are too small: ${r}x${n}`)
- let o = de.L,
- s = Ar.QUIET_ZONE_SIZE
- null !== i &&
- (void 0 !== i.get(sr.ERROR_CORRECTION) && (o = de.fromString(i.get(sr.ERROR_CORRECTION).toString())),
- void 0 !== i.get(sr.MARGIN) && (s = Number.parseInt(i.get(sr.MARGIN).toString(), 10)))
- const l = fr.encode(t, o, i)
- return Ar.renderResult(l, r, n, s)
- }
- static renderResult(t, e, r, n) {
- const i = t.getMatrix()
- if (null === i) throw new J()
- const o = i.getWidth(),
- s = i.getHeight(),
- a = o + 2 * n,
- l = s + 2 * n,
- c = Math.max(e, a),
- h = Math.max(r, l),
- u = Math.min(Math.floor(c / a), Math.floor(h / l)),
- d = Math.floor((c - o * u) / 2),
- g = Math.floor((h - s * u) / 2),
- f = new y(c, h)
- for (let t = 0, e = g; t < s; t++, e += u) for (let r = 0, n = d; r < o; r++, n += u) 1 === i.get(r, t) && f.setRegion(n, e, u, u)
- return f
- }
- }
- Ar.QUIET_ZONE_SIZE = 4
- class mr extends R {
- constructor(t, e, r, n, i, o, s, l) {
- if ((super(o, s), (this.yuvData = t), (this.dataWidth = e), (this.dataHeight = r), (this.left = n), (this.top = i), n + o > e || i + s > r))
- throw new a('Crop rectangle does not fit within image data.')
- l && this.reverseHorizontal(o, s)
- }
- getRow(t, e) {
- if (t < 0 || t >= this.getHeight()) throw new a('Requested row is outside the image: ' + t)
- const r = this.getWidth()
- ;(null == e || e.length < r) && (e = new Uint8ClampedArray(r))
- const n = (t + this.top) * this.dataWidth + this.left
- return u.arraycopy(this.yuvData, n, e, 0, r), e
- }
- getMatrix() {
- const t = this.getWidth(),
- e = this.getHeight()
- if (t === this.dataWidth && e === this.dataHeight) return this.yuvData
- const r = t * e,
- n = new Uint8ClampedArray(r)
- let i = this.top * this.dataWidth + this.left
- if (t === this.dataWidth) return u.arraycopy(this.yuvData, i, n, 0, r), n
- for (let r = 0; r < e; r++) {
- const e = r * t
- u.arraycopy(this.yuvData, i, n, e, t), (i += this.dataWidth)
- }
- return n
- }
- isCropSupported() {
- return !0
- }
- crop(t, e, r, n) {
- return new mr(this.yuvData, this.dataWidth, this.dataHeight, this.left + t, this.top + e, r, n, !1)
- }
- renderThumbnail() {
- const t = this.getWidth() / mr.THUMBNAIL_SCALE_FACTOR,
- e = this.getHeight() / mr.THUMBNAIL_SCALE_FACTOR,
- r = new Int32Array(t * e),
- n = this.yuvData
- let i = this.top * this.dataWidth + this.left
- for (let o = 0; o < e; o++) {
- const e = o * t
- for (let o = 0; o < t; o++) {
- const t = 255 & n[i + o * mr.THUMBNAIL_SCALE_FACTOR]
- r[e + o] = 4278190080 | (65793 * t)
- }
- i += this.dataWidth * mr.THUMBNAIL_SCALE_FACTOR
- }
- return r
- }
- getThumbnailWidth() {
- return this.getWidth() / mr.THUMBNAIL_SCALE_FACTOR
- }
- getThumbnailHeight() {
- return this.getHeight() / mr.THUMBNAIL_SCALE_FACTOR
- }
- reverseHorizontal(t, e) {
- const r = this.yuvData
- for (let n = 0, i = this.top * this.dataWidth + this.left; n < e; n++, i += this.dataWidth) {
- const e = i + t / 2
- for (let n = i, o = i + t - 1; n < e; n++, o--) {
- const t = r[n]
- ;(r[n] = r[o]), (r[o] = t)
- }
- }
- }
- invert() {
- return new O(this)
- }
- }
- mr.THUMBNAIL_SCALE_FACTOR = 2
- class Er extends R {
- constructor(t, e, r, n, i, o, s) {
- if ((super(e, r), (this.dataWidth = n), (this.dataHeight = i), (this.left = o), (this.top = s), 4 === t.BYTES_PER_ELEMENT)) {
- const n = e * r,
- i = new Uint8ClampedArray(n)
- for (let e = 0; e < n; e++) {
- const r = t[e],
- n = (r >> 16) & 255,
- o = (r >> 7) & 510,
- s = 255 & r
- i[e] = ((n + o + s) / 4) & 255
- }
- this.luminances = i
- } else this.luminances = t
- if (
- (void 0 === n && (this.dataWidth = e),
- void 0 === i && (this.dataHeight = r),
- void 0 === o && (this.left = 0),
- void 0 === s && (this.top = 0),
- this.left + e > this.dataWidth || this.top + r > this.dataHeight)
- )
- throw new a('Crop rectangle does not fit within image data.')
- }
- getRow(t, e) {
- if (t < 0 || t >= this.getHeight()) throw new a('Requested row is outside the image: ' + t)
- const r = this.getWidth()
- ;(null == e || e.length < r) && (e = new Uint8ClampedArray(r))
- const n = (t + this.top) * this.dataWidth + this.left
- return u.arraycopy(this.luminances, n, e, 0, r), e
- }
- getMatrix() {
- const t = this.getWidth(),
- e = this.getHeight()
- if (t === this.dataWidth && e === this.dataHeight) return this.luminances
- const r = t * e,
- n = new Uint8ClampedArray(r)
- let i = this.top * this.dataWidth + this.left
- if (t === this.dataWidth) return u.arraycopy(this.luminances, i, n, 0, r), n
- for (let r = 0; r < e; r++) {
- const e = r * t
- u.arraycopy(this.luminances, i, n, e, t), (i += this.dataWidth)
- }
- return n
- }
- isCropSupported() {
- return !0
- }
- crop(t, e, r, n) {
- return new Er(this.luminances, r, n, this.dataWidth, this.dataHeight, this.left + t, this.top + e)
- }
- invert() {
- return new O(this)
- }
- }
- class Cr extends I {
- static forName(t) {
- return this.getCharacterSetECIByName(t)
- }
- }
- class Ir {}
- Ir.ISO_8859_1 = I.ISO8859_1
- class pr {
- isCompact() {
- return this.compact
- }
- setCompact(t) {
- this.compact = t
- }
- getSize() {
- return this.size
- }
- setSize(t) {
- this.size = t
- }
- getLayers() {
- return this.layers
- }
- setLayers(t) {
- this.layers = t
- }
- getCodeWords() {
- return this.codeWords
- }
- setCodeWords(t) {
- this.codeWords = t
- }
- getMatrix() {
- return this.matrix
- }
- setMatrix(t) {
- this.matrix = t
- }
- }
- class Sr {
- static singletonList(t) {
- return [t]
- }
- static min(t, e) {
- return t.sort(e)[0]
- }
- }
- class _r extends class {
- constructor(t) {
- this.previous = t
- }
- getPrevious() {
- return this.previous
- }
- } {
- constructor(t, e, r) {
- super(t), (this.value = e), (this.bitCount = r)
- }
- appendTo(t, e) {
- t.appendBits(this.value, this.bitCount)
- }
- add(t, e) {
- return new _r(this, t, e)
- }
- addBinaryShift(t, e) {
- return console.warn('addBinaryShift on SimpleToken, this simply returns a copy of this token'), new _r(this, t, e)
- }
- toString() {
- let t = this.value & ((1 << this.bitCount) - 1)
- return (t |= 1 << this.bitCount), '<' + w.toBinaryString(t | (1 << this.bitCount)).substring(1) + '>'
- }
- }
- class Tr extends _r {
- constructor(t, e, r) {
- super(t, 0, 0), (this.binaryShiftStart = e), (this.binaryShiftByteCount = r)
- }
- appendTo(t, e) {
- for (let r = 0; r < this.binaryShiftByteCount; r++)
- (0 === r || (31 === r && this.binaryShiftByteCount <= 62)) &&
- (t.appendBits(31, 5),
- this.binaryShiftByteCount > 62
- ? t.appendBits(this.binaryShiftByteCount - 31, 16)
- : 0 === r
- ? t.appendBits(Math.min(this.binaryShiftByteCount, 31), 5)
- : t.appendBits(this.binaryShiftByteCount - 31, 5)),
- t.appendBits(e[this.binaryShiftStart + r], 8)
- }
- addBinaryShift(t, e) {
- return new Tr(this, t, e)
- }
- toString() {
- return '<' + this.binaryShiftStart + '::' + (this.binaryShiftStart + this.binaryShiftByteCount - 1) + '>'
- }
- }
- function yr(t, e, r) {
- return new _r(t, e, r)
- }
- const Nr = ['UPPER', 'LOWER', 'DIGIT', 'MIXED', 'PUNCT'],
- Mr = new _r(null, 0, 0),
- Dr = [
- Int32Array.from([0, 327708, 327710, 327709, 656318]),
- Int32Array.from([590318, 0, 327710, 327709, 656318]),
- Int32Array.from([262158, 590300, 0, 590301, 932798]),
- Int32Array.from([327709, 327708, 656318, 0, 327710]),
- Int32Array.from([327711, 656380, 656382, 656381, 0])
- ]
- const Rr = (function(t) {
- for (let e of t) f.fill(e, -1)
- return (t[0][4] = 0), (t[1][4] = 0), (t[1][0] = 28), (t[3][4] = 0), (t[2][4] = 0), (t[2][0] = 15), t
- })(f.createInt32Array(6, 6))
- class Or {
- constructor(t, e, r, n) {
- ;(this.token = t), (this.mode = e), (this.binaryShiftByteCount = r), (this.bitCount = n)
- }
- getMode() {
- return this.mode
- }
- getToken() {
- return this.token
- }
- getBinaryShiftByteCount() {
- return this.binaryShiftByteCount
- }
- getBitCount() {
- return this.bitCount
- }
- latchAndAppend(t, e) {
- let r = this.bitCount,
- n = this.token
- if (t !== this.mode) {
- let e = Dr[this.mode][t]
- ;(n = yr(n, 65535 & e, e >> 16)), (r += e >> 16)
- }
- let i = 2 === t ? 4 : 5
- return (n = yr(n, e, i)), new Or(n, t, 0, r + i)
- }
- shiftAndAppend(t, e) {
- let r = this.token,
- n = 2 === this.mode ? 4 : 5
- return (r = yr(r, Rr[this.mode][t], n)), (r = yr(r, e, 5)), new Or(r, this.mode, 0, this.bitCount + n + 5)
- }
- addBinaryShiftChar(t) {
- let e = this.token,
- r = this.mode,
- n = this.bitCount
- if (4 === this.mode || 2 === this.mode) {
- let t = Dr[r][0]
- ;(e = yr(e, 65535 & t, t >> 16)), (n += t >> 16), (r = 0)
- }
- let i = 0 === this.binaryShiftByteCount || 31 === this.binaryShiftByteCount ? 18 : 62 === this.binaryShiftByteCount ? 9 : 8,
- o = new Or(e, r, this.binaryShiftByteCount + 1, n + i)
- return 2078 === o.binaryShiftByteCount && (o = o.endBinaryShift(t + 1)), o
- }
- endBinaryShift(t) {
- if (0 === this.binaryShiftByteCount) return this
- let e = this.token
- return (
- (e = (function(t, e, r) {
- return new Tr(t, e, r)
- })(e, t - this.binaryShiftByteCount, this.binaryShiftByteCount)),
- new Or(e, this.mode, 0, this.bitCount)
- )
- }
- isBetterThanOrEqualTo(t) {
- let e = this.bitCount + (Dr[this.mode][t.mode] >> 16)
- return (
- this.binaryShiftByteCount < t.binaryShiftByteCount
- ? (e += Or.calculateBinaryShiftCost(t) - Or.calculateBinaryShiftCost(this))
- : this.binaryShiftByteCount > t.binaryShiftByteCount && t.binaryShiftByteCount > 0 && (e += 10),
- e <= t.bitCount
- )
- }
- toBitArray(t) {
- let e = []
- for (let r = this.endBinaryShift(t.length).token; null !== r; r = r.getPrevious()) e.unshift(r)
- let r = new A()
- for (const n of e) n.appendTo(r, t)
- return r
- }
- toString() {
- return _.format('%s bits=%d bytes=%d', Nr[this.mode], this.bitCount, this.binaryShiftByteCount)
- }
- static calculateBinaryShiftCost(t) {
- return t.binaryShiftByteCount > 62 ? 21 : t.binaryShiftByteCount > 31 ? 20 : t.binaryShiftByteCount > 0 ? 10 : 0
- }
- }
- Or.INITIAL_STATE = new Or(Mr, 0, 0, 0)
- const br = (function(t) {
- const e = _.getCharCode(' '),
- r = _.getCharCode('.'),
- n = _.getCharCode(',')
- t[0][e] = 1
- const i = _.getCharCode('Z'),
- o = _.getCharCode('A')
- for (let e = o; e <= i; e++) t[0][e] = e - o + 2
- t[1][e] = 1
- const s = _.getCharCode('z'),
- a = _.getCharCode('a')
- for (let e = a; e <= s; e++) t[1][e] = e - a + 2
- t[2][e] = 1
- const l = _.getCharCode('9'),
- c = _.getCharCode('0')
- for (let e = c; e <= l; e++) t[2][e] = e - c + 2
- ;(t[2][n] = 12), (t[2][r] = 13)
- const h = ['\0', ' ', '', '', '', '', '', '', '', '\b', '\t', '\n', '\v', '\f', '\r', '', '', '', '', '', '@', '\\', '^', '_', '`', '|', '~', '']
- for (let e = 0; e < h.length; e++) t[3][_.getCharCode(h[e])] = e
- const u = ['\0', '\r', '\0', '\0', '\0', '\0', '!', "'", '#', '$', '%', '&', "'", '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '{', '}']
- for (let e = 0; e < u.length; e++) _.getCharCode(u[e]) > 0 && (t[4][_.getCharCode(u[e])] = e)
- return t
- })(f.createInt32Array(5, 256))
- class Lr {
- constructor(t) {
- this.text = t
- }
- encode() {
- const t = _.getCharCode(' '),
- e = _.getCharCode('\n')
- let r = Sr.singletonList(Or.INITIAL_STATE)
- for (let n = 0; n < this.text.length; n++) {
- let i,
- o = n + 1 < this.text.length ? this.text[n + 1] : 0
- switch (this.text[n]) {
- case _.getCharCode('\r'):
- i = o === e ? 2 : 0
- break
- case _.getCharCode('.'):
- i = o === t ? 3 : 0
- break
- case _.getCharCode(','):
- i = o === t ? 4 : 0
- break
- case _.getCharCode(':'):
- i = o === t ? 5 : 0
- break
- default:
- i = 0
- }
- i > 0 ? ((r = Lr.updateStateListForPair(r, n, i)), n++) : (r = this.updateStateListForChar(r, n))
- }
- return Sr.min(r, (t, e) => t.getBitCount() - e.getBitCount()).toBitArray(this.text)
- }
- updateStateListForChar(t, e) {
- const r = []
- for (let n of t) this.updateStateForChar(n, e, r)
- return Lr.simplifyStates(r)
- }
- updateStateForChar(t, e, r) {
- let n = 255 & this.text[e],
- i = br[t.getMode()][n] > 0,
- o = null
- for (let s = 0; s <= 4; s++) {
- let a = br[s][n]
- if (a > 0) {
- if ((null == o && (o = t.endBinaryShift(e)), !i || s === t.getMode() || 2 === s)) {
- const t = o.latchAndAppend(s, a)
- r.push(t)
- }
- if (!i && Rr[t.getMode()][s] >= 0) {
- const t = o.shiftAndAppend(s, a)
- r.push(t)
- }
- }
- }
- if (t.getBinaryShiftByteCount() > 0 || 0 === br[t.getMode()][n]) {
- let n = t.addBinaryShiftChar(e)
- r.push(n)
- }
- }
- static updateStateListForPair(t, e, r) {
- const n = []
- for (let i of t) this.updateStateForPair(i, e, r, n)
- return this.simplifyStates(n)
- }
- static updateStateForPair(t, e, r, n) {
- let i = t.endBinaryShift(e)
- if ((n.push(i.latchAndAppend(4, r)), 4 !== t.getMode() && n.push(i.shiftAndAppend(4, r)), 3 === r || 4 === r)) {
- let t = i.latchAndAppend(2, 16 - r).latchAndAppend(2, 1)
- n.push(t)
- }
- if (t.getBinaryShiftByteCount() > 0) {
- let r = t.addBinaryShiftChar(e).addBinaryShiftChar(e + 1)
- n.push(r)
- }
- }
- static simplifyStates(t) {
- let e = []
- for (const r of t) {
- let t = !0
- for (const n of e) {
- if (n.isBetterThanOrEqualTo(r)) {
- t = !1
- break
- }
- r.isBetterThanOrEqualTo(n) && (e = e.filter(t => t !== n))
- }
- t && e.push(r)
- }
- return e
- }
- }
- class Br {
- constructor() {}
- static encodeBytes(t) {
- return Br.encode(t, Br.DEFAULT_EC_PERCENT, Br.DEFAULT_AZTEC_LAYERS)
- }
- static encode(t, e, r) {
- let n,
- i,
- o,
- s,
- l,
- c = new Lr(t).encode(),
- h = w.truncDivision(c.getSize() * e, 100) + 11,
- u = c.getSize() + h
- if (r !== Br.DEFAULT_AZTEC_LAYERS) {
- if (((n = r < 0), (i = Math.abs(r)), i > (n ? Br.MAX_NB_BITS_COMPACT : Br.MAX_NB_BITS))) throw new a(_.format('Illegal value %s for layers', r))
- ;(o = Br.totalBitsInLayer(i, n)), (s = Br.WORD_SIZE[i])
- let t = o - (o % s)
- if (((l = Br.stuffBits(c, s)), l.getSize() + h > t)) throw new a('Data to large for user specified layer')
- if (n && l.getSize() > 64 * s) throw new a('Data to large for user specified layer')
- } else {
- ;(s = 0), (l = null)
- for (let t = 0; ; t++) {
- if (t > Br.MAX_NB_BITS) throw new a('Data too large for an Aztec code')
- if (((n = t <= 3), (i = n ? t + 1 : t), (o = Br.totalBitsInLayer(i, n)), u > o)) continue
- ;(null != l && s === Br.WORD_SIZE[i]) || ((s = Br.WORD_SIZE[i]), (l = Br.stuffBits(c, s)))
- let e = o - (o % s)
- if (!(n && l.getSize() > 64 * s) && l.getSize() + h <= e) break
- }
- }
- let d,
- g = Br.generateCheckWords(l, o, s),
- f = l.getSize() / s,
- A = Br.generateModeMessage(n, i, f),
- m = (n ? 11 : 14) + 4 * i,
- E = new Int32Array(m)
- if (n) {
- d = m
- for (let t = 0; t < E.length; t++) E[t] = t
- } else {
- d = m + 1 + 2 * w.truncDivision(w.truncDivision(m, 2) - 1, 15)
- let t = w.truncDivision(m, 2),
- e = w.truncDivision(d, 2)
- for (let r = 0; r < t; r++) {
- let n = r + w.truncDivision(r, 15)
- ;(E[t - r - 1] = e - n - 1), (E[t + r] = e + n + 1)
- }
- }
- let C = new y(d)
- for (let t = 0, e = 0; t < i; t++) {
- let r = 4 * (i - t) + (n ? 9 : 12)
- for (let n = 0; n < r; n++) {
- let i = 2 * n
- for (let o = 0; o < 2; o++)
- g.get(e + i + o) && C.set(E[2 * t + o], E[2 * t + n]),
- g.get(e + 2 * r + i + o) && C.set(E[2 * t + n], E[m - 1 - 2 * t - o]),
- g.get(e + 4 * r + i + o) && C.set(E[m - 1 - 2 * t - o], E[m - 1 - 2 * t - n]),
- g.get(e + 6 * r + i + o) && C.set(E[m - 1 - 2 * t - n], E[2 * t + o])
- }
- e += 8 * r
- }
- if ((Br.drawModeMessage(C, n, d, A), n)) Br.drawBullsEye(C, w.truncDivision(d, 2), 5)
- else {
- Br.drawBullsEye(C, w.truncDivision(d, 2), 7)
- for (let t = 0, e = 0; t < w.truncDivision(m, 2) - 1; t += 15, e += 16)
- for (let t = 1 & w.truncDivision(d, 2); t < d; t += 2)
- C.set(w.truncDivision(d, 2) - e, t), C.set(w.truncDivision(d, 2) + e, t), C.set(t, w.truncDivision(d, 2) - e), C.set(t, w.truncDivision(d, 2) + e)
- }
- let I = new pr()
- return I.setCompact(n), I.setSize(d), I.setLayers(i), I.setCodeWords(f), I.setMatrix(C), I
- }
- static drawBullsEye(t, e, r) {
- for (let n = 0; n < r; n += 2) for (let r = e - n; r <= e + n; r++) t.set(r, e - n), t.set(r, e + n), t.set(e - n, r), t.set(e + n, r)
- t.set(e - r, e - r), t.set(e - r + 1, e - r), t.set(e - r, e - r + 1), t.set(e + r, e - r), t.set(e + r, e - r + 1), t.set(e + r, e + r - 1)
- }
- static generateModeMessage(t, e, r) {
- let n = new A()
- return (
- t
- ? (n.appendBits(e - 1, 2), n.appendBits(r - 1, 6), (n = Br.generateCheckWords(n, 28, 4)))
- : (n.appendBits(e - 1, 5), n.appendBits(r - 1, 11), (n = Br.generateCheckWords(n, 40, 4))),
- n
- )
- }
- static drawModeMessage(t, e, r, n) {
- let i = w.truncDivision(r, 2)
- if (e)
- for (let e = 0; e < 7; e++) {
- let r = i - 3 + e
- n.get(e) && t.set(r, i - 5), n.get(e + 7) && t.set(i + 5, r), n.get(20 - e) && t.set(r, i + 5), n.get(27 - e) && t.set(i - 5, r)
- }
- else
- for (let e = 0; e < 10; e++) {
- let r = i - 5 + e + w.truncDivision(e, 5)
- n.get(e) && t.set(r, i - 7), n.get(e + 10) && t.set(i + 7, r), n.get(29 - e) && t.set(r, i + 7), n.get(39 - e) && t.set(i - 7, r)
- }
- }
- static generateCheckWords(t, e, r) {
- let n = t.getSize() / r,
- i = new ar(Br.getGF(r)),
- o = w.truncDivision(e, r),
- s = Br.bitsToWords(t, r, o)
- i.encode(s, o - n)
- let a = e % r,
- l = new A()
- l.appendBits(0, a)
- for (const t of Array.from(s)) l.appendBits(t, r)
- return l
- }
- static bitsToWords(t, e, r) {
- let n,
- i,
- o = new Int32Array(r)
- for (n = 0, i = t.getSize() / e; n < i; n++) {
- let r = 0
- for (let i = 0; i < e; i++) r |= t.get(n * e + i) ? 1 << (e - i - 1) : 0
- o[n] = r
- }
- return o
- }
- static getGF(t) {
- switch (t) {
- case 4:
- return K.AZTEC_PARAM
- case 6:
- return K.AZTEC_DATA_6
- case 8:
- return K.AZTEC_DATA_8
- case 10:
- return K.AZTEC_DATA_10
- case 12:
- return K.AZTEC_DATA_12
- default:
- throw new a('Unsupported word size ' + t)
- }
- }
- static stuffBits(t, e) {
- let r = new A(),
- n = t.getSize(),
- i = (1 << e) - 2
- for (let o = 0; o < n; o += e) {
- let s = 0
- for (let r = 0; r < e; r++) (o + r >= n || t.get(o + r)) && (s |= 1 << (e - 1 - r))
- ;(s & i) === i ? (r.appendBits(s & i, e), o--) : 0 == (s & i) ? (r.appendBits(1 | s, e), o--) : r.appendBits(s, e)
- }
- return r
- }
- static totalBitsInLayer(t, e) {
- return ((e ? 88 : 112) + 16 * t) * t
- }
- }
- ;(Br.DEFAULT_EC_PERCENT = 33),
- (Br.DEFAULT_AZTEC_LAYERS = 0),
- (Br.MAX_NB_BITS = 32),
- (Br.MAX_NB_BITS_COMPACT = 4),
- (Br.WORD_SIZE = Int32Array.from([4, 6, 6, 8, 8, 8, 8, 8, 8, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12]))
- class Pr {
- encode(t, e, r, n) {
- return this.encodeWithHints(t, e, r, n, null)
- }
- encodeWithHints(t, e, r, n, i) {
- let o = Ir.ISO_8859_1,
- s = Br.DEFAULT_EC_PERCENT,
- a = Br.DEFAULT_AZTEC_LAYERS
- return (
- null != i &&
- (i.has(sr.CHARACTER_SET) && (o = Cr.forName(i.get(sr.CHARACTER_SET).toString())),
- i.has(sr.ERROR_CORRECTION) && (s = w.parseInt(i.get(sr.ERROR_CORRECTION).toString())),
- i.has(sr.AZTEC_LAYERS) && (a = w.parseInt(i.get(sr.AZTEC_LAYERS).toString()))),
- Pr.encodeLayers(t, e, r, n, o, s, a)
- )
- }
- static encodeLayers(t, e, r, n, i, o, s) {
- if (e !== k.AZTEC) throw new a('Can only encode AZTEC, but got ' + e)
- let l = Br.encode(_.getBytes(t, i), o, s)
- return Pr.renderResult(l, r, n)
- }
- static renderResult(t, e, r) {
- let n = t.getMatrix()
- if (null == n) throw new J()
- let i = n.getWidth(),
- o = n.getHeight(),
- s = Math.max(e, i),
- a = Math.max(r, o),
- l = Math.min(s / i, a / o),
- c = (s - i * l) / 2,
- h = (a - o * l) / 2,
- u = new y(s, a)
- for (let t = 0, e = h; t < o; t++, e += l) for (let r = 0, o = c; r < i; r++, o += l) n.get(r, t) && u.setRegion(o, e, l, l)
- return u
- }
- }
- ;(t.ArgumentException = s),
- (t.ArithmeticException = Q),
- (t.AztecCode = pr),
- (t.AztecCodeReader = gt),
- (t.AztecCodeWriter = Pr),
- (t.AztecDecoder = tt),
- (t.AztecDetector = dt),
- (t.AztecDetectorResult = ot),
- (t.AztecEncoder = Br),
- (t.AztecHighLevelEncoder = Lr),
- (t.AztecPoint = ut),
- (t.BarcodeFormat = k),
- (t.Binarizer = h),
- (t.BinaryBitmap = l),
- (t.BitArray = A),
- (t.BitMatrix = y),
- (t.BitSource = ae),
- (t.BrowserAztecCodeReader = class extends v {
- constructor(t = 500) {
- super(new gt(), t)
- }
- }),
- (t.BrowserBarcodeReader = class extends v {
- constructor(t = 500, e) {
- super(new ee(e), t, e)
- }
- }),
- (t.BrowserCodeReader = v),
- (t.BrowserDatamatrixCodeReader = class extends v {
- constructor(t = 500) {
- super(new ue(), t)
- }
- }),
- (t.BrowserMultiFormatReader = class extends v {
- constructor(t = null, e = 500) {
- const r = new ir()
- r.setHints(t), super(r, e)
- }
- decodeBitmap(t) {
- return this.reader.decodeWithState(t)
- }
- }),
- (t.BrowserPDF417Reader = class extends v {
- constructor(t = 500) {
- super(new rr(), t)
- }
- }),
- (t.BrowserQRCodeReader = class extends v {
- constructor(t = 500) {
- super(new Oe(), t)
- }
- }),
- (t.BrowserQRCodeSvgWriter = wr),
- (t.CharacterSetECI = I),
- (t.ChecksumException = c),
- (t.Code128Reader = wt),
- (t.Code39Reader = At),
- (t.DataMatrixDecodedBitStreamParser = le),
- (t.DataMatrixReader = ue),
- (t.DecodeHintType = E),
- (t.DecoderResult = W),
- (t.DefaultGridSampler = ct),
- (t.DetectorResult = it),
- (t.EAN13Reader = _t),
- (t.EncodeHintType = sr),
- (t.Exception = o),
- (t.FormatException = C),
- (t.GenericGF = K),
- (t.GenericGFPoly = Z),
- (t.GlobalHistogramBinarizer = M),
- (t.GridSampler = at),
- (t.GridSamplerInstance = ht),
- (t.HTMLCanvasElementLuminanceSource = b),
- (t.HybridBinarizer = D),
- (t.ITFReader = mt),
- (t.IllegalArgumentException = a),
- (t.IllegalStateException = J),
- (t.InvertedLuminanceSource = O),
- (t.LuminanceSource = R),
- (t.MathUtils = et),
- (t.MultiFormatOneDReader = ee),
- (t.MultiFormatReader = ir),
- (t.MultiFormatWriter = class {
- encode(t, e, r, n, i) {
- let o
- switch (e) {
- case k.QR_CODE:
- o = new Ar()
- break
- default:
- throw new a('No encoder available for format ' + e)
- }
- return o.encode(t, e, r, n, i)
- }
- }),
- (t.NotFoundException = N),
- (t.OneDReader = ft),
- (t.PDF417DecodedBitStreamParser = tr),
- (t.PDF417DecoderErrorCorrection = Fe),
- (t.PDF417Reader = rr),
- (t.PDF417ResultMetadata = We),
- (t.PerspectiveTransform = lt),
- (t.PlanarYUVLuminanceSource = mr),
- (t.QRCodeByteMatrix = cr),
- (t.QRCodeDataMask = me),
- (t.QRCodeDecodedBitStreamParser = pe),
- (t.QRCodeDecoderErrorCorrectionLevel = de),
- (t.QRCodeDecoderFormatInformation = ge),
- (t.QRCodeEncoder = fr),
- (t.QRCodeEncoderQRCode = hr),
- (t.QRCodeMaskUtil = lr),
- (t.QRCodeMatrixUtil = dr),
- (t.QRCodeMode = Ie),
- (t.QRCodeReader = Oe),
- (t.QRCodeVersion = Ae),
- (t.QRCodeWriter = Ar),
- (t.RGBLuminanceSource = Er),
- (t.RSS14Reader = te),
- (t.RSSExpandedReader = Jt),
- (t.ReaderException = nr),
- (t.ReedSolomonDecoder = $),
- (t.ReedSolomonEncoder = ar),
- (t.ReedSolomonException = q),
- (t.Result = F),
- (t.ResultMetadataType = X),
- (t.ResultPoint = nt),
- (t.StringUtils = _),
- (t.UnsupportedOperationException = p),
- (t.VideoInputDevice = L),
- (t.WhiteRectangleDetector = st),
- (t.WriterException = ur),
- (t.ZXingArrays = f),
- (t.ZXingCharset = Cr),
- (t.ZXingInteger = w),
- (t.ZXingStandardCharsets = Ir),
- (t.ZXingStringBuilder = T),
- (t.ZXingStringEncoding = S),
- (t.ZXingSystem = u),
- Object.defineProperty(t, '__esModule', { value: !0 })
- })(e)
- }
- },
- e = {}
- function r(n) {
- var i = e[n]
- if (void 0 !== i) return i.exports
- var o = (e[n] = { exports: {} })
- return t[n].call(o.exports, o, o.exports, r), o.exports
- }
- ;(r.d = (t, e) => {
- for (var n in e) r.o(e, n) && !r.o(t, n) && Object.defineProperty(t, n, { enumerable: !0, get: e[n] })
- }),
- (r.g = (function() {
- if ('object' == typeof globalThis) return globalThis
- try {
- return this || new Function('return this')()
- } catch (t) {
- if ('object' == typeof window) return window
- }
- })()),
- (r.o = (t, e) => Object.prototype.hasOwnProperty.call(t, e)),
- (r.r = t => {
- 'undefined' != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, { value: 'Module' }), Object.defineProperty(t, '__esModule', { value: !0 })
- })
- var n = {}
- ;(() => {
- 'use strict'
- var t
- r.r(n),
- r.d(n, { Html5Qrcode: () => L, Html5QrcodeScanType: () => i, Html5QrcodeScanner: () => V, Html5QrcodeScannerState: () => f, Html5QrcodeSupportedFormats: () => t }),
- (function(t) {
- ;(t[(t.QR_CODE = 0)] = 'QR_CODE'),
- (t[(t.AZTEC = 1)] = 'AZTEC'),
- (t[(t.CODABAR = 2)] = 'CODABAR'),
- (t[(t.CODE_39 = 3)] = 'CODE_39'),
- (t[(t.CODE_93 = 4)] = 'CODE_93'),
- (t[(t.CODE_128 = 5)] = 'CODE_128'),
- (t[(t.DATA_MATRIX = 6)] = 'DATA_MATRIX'),
- (t[(t.MAXICODE = 7)] = 'MAXICODE'),
- (t[(t.ITF = 8)] = 'ITF'),
- (t[(t.EAN_13 = 9)] = 'EAN_13'),
- (t[(t.EAN_8 = 10)] = 'EAN_8'),
- (t[(t.PDF_417 = 11)] = 'PDF_417'),
- (t[(t.RSS_14 = 12)] = 'RSS_14'),
- (t[(t.RSS_EXPANDED = 13)] = 'RSS_EXPANDED'),
- (t[(t.UPC_A = 14)] = 'UPC_A'),
- (t[(t.UPC_E = 15)] = 'UPC_E'),
- (t[(t.UPC_EAN_EXTENSION = 16)] = 'UPC_EAN_EXTENSION')
- })(t || (t = {}))
- var e,
- i,
- o = new Map([
- [t.QR_CODE, 'QR_CODE'],
- [t.AZTEC, 'AZTEC'],
- [t.CODABAR, 'CODABAR'],
- [t.CODE_39, 'CODE_39'],
- [t.CODE_93, 'CODE_93'],
- [t.CODE_128, 'CODE_128'],
- [t.DATA_MATRIX, 'DATA_MATRIX'],
- [t.MAXICODE, 'MAXICODE'],
- [t.ITF, 'ITF'],
- [t.EAN_13, 'EAN_13'],
- [t.EAN_8, 'EAN_8'],
- [t.PDF_417, 'PDF_417'],
- [t.RSS_14, 'RSS_14'],
- [t.RSS_EXPANDED, 'RSS_EXPANDED'],
- [t.UPC_A, 'UPC_A'],
- [t.UPC_E, 'UPC_E'],
- [t.UPC_EAN_EXTENSION, 'UPC_EAN_EXTENSION']
- ])
- function s(e) {
- return Object.values(t).includes(e)
- }
- !(function(t) {
- ;(t[(t.UNKNOWN = 0)] = 'UNKNOWN'), (t[(t.URL = 1)] = 'URL')
- })(e || (e = {})),
- (function(t) {
- ;(t[(t.SCAN_TYPE_CAMERA = 0)] = 'SCAN_TYPE_CAMERA'), (t[(t.SCAN_TYPE_FILE = 1)] = 'SCAN_TYPE_FILE')
- })(i || (i = {}))
- var a,
- l = (function() {
- function t() {}
- return (
- (t.GITHUB_PROJECT_URL = 'https://github.com/mebjas/html5-qrcode'),
- (t.SCAN_DEFAULT_FPS = 2),
- (t.DEFAULT_DISABLE_FLIP = !1),
- (t.DEFAULT_REMEMBER_LAST_CAMERA_USED = !0),
- (t.DEFAULT_SUPPORTED_SCAN_TYPE = [i.SCAN_TYPE_CAMERA, i.SCAN_TYPE_FILE]),
- t
- )
- })(),
- c = (function() {
- function t(t, e) {
- ;(this.format = t), (this.formatName = e)
- }
- return (
- (t.prototype.toString = function() {
- return this.formatName
- }),
- (t.create = function(e) {
- if (!o.has(e)) throw e + ' not in html5QrcodeSupportedFormatsTextMap'
- return new t(e, o.get(e))
- }),
- t
- )
- })(),
- h = (function() {
- function t() {}
- return (
- (t.createFromText = function(t) {
- return { decodedText: t, result: { text: t } }
- }),
- (t.createFromQrcodeResult = function(t) {
- return { decodedText: t.text, result: t }
- }),
- t
- )
- })()
- !(function(t) {
- ;(t[(t.UNKWOWN_ERROR = 0)] = 'UNKWOWN_ERROR'), (t[(t.IMPLEMENTATION_ERROR = 1)] = 'IMPLEMENTATION_ERROR'), (t[(t.NO_CODE_FOUND_ERROR = 2)] = 'NO_CODE_FOUND_ERROR')
- })(a || (a = {}))
- var u = (function() {
- function t() {}
- return (
- (t.createFrom = function(t) {
- return { errorMessage: t, type: a.UNKWOWN_ERROR }
- }),
- t
- )
- })(),
- d = (function() {
- function t(t) {
- this.verbose = t
- }
- return (
- (t.prototype.log = function(t) {
- this.verbose && console.log(t)
- }),
- (t.prototype.warn = function(t) {
- this.verbose && console.warn(t)
- }),
- (t.prototype.logError = function(t, e) {
- ;(this.verbose || !0 === e) && console.error(t)
- }),
- (t.prototype.logErrors = function(t) {
- if (0 === t.length) throw 'Logger#logError called without arguments'
- this.verbose && console.error(t)
- }),
- t
- )
- })()
- function g(t) {
- return null == t
- }
- var f,
- w = (function() {
- function t() {}
- return (
- (t.codeParseError = function(t) {
- return 'QR code parse error, error = ' + t
- }),
- (t.errorGettingUserMedia = function(t) {
- return 'Error getting userMedia, error = ' + t
- }),
- (t.onlyDeviceSupportedError = function() {
- return "The device doesn't support navigator.mediaDevices , only supported cameraIdOrConfig in this case is deviceId parameter (string)."
- }),
- (t.cameraStreamingNotSupported = function() {
- return 'Camera streaming not supported by the browser.'
- }),
- (t.unableToQuerySupportedDevices = function() {
- return 'Unable to query supported devices, unknown error.'
- }),
- (t.insecureContextCameraQueryError = function() {
- return 'Camera access is only supported in secure context like https or localhost.'
- }),
- t
- )
- })(),
- A = (function() {
- function t() {}
- return (
- (t.scanningStatus = function() {
- return 'Scanning'
- }),
- (t.idleStatus = function() {
- return 'Idle'
- }),
- (t.errorStatus = function() {
- return 'Error'
- }),
- (t.permissionStatus = function() {
- return 'Permission'
- }),
- (t.noCameraFoundErrorStatus = function() {
- return 'No Cameras'
- }),
- (t.lastMatch = function(t) {
- return 'Last Match: ' + t
- }),
- (t.codeScannerTitle = function() {
- return 'Code Scanner'
- }),
- (t.cameraPermissionTitle = function() {
- return 'Request Camera Permissions'
- }),
- (t.cameraPermissionRequesting = function() {
- return 'Requesting camera permissions...'
- }),
- (t.noCameraFound = function() {
- return 'No camera found'
- }),
- (t.scanButtonStopScanningText = function() {
- return 'Stop Scanning'
- }),
- (t.scanButtonStartScanningText = function() {
- return 'Start Scanning'
- }),
- (t.scanButtonScanningStarting = function() {
- return 'Launching Camera...'
- }),
- (t.textIfCameraScanSelected = function() {
- return 'Scan an Image File'
- }),
- (t.textIfFileScanSelected = function() {
- return 'Scan using camera directly'
- }),
- (t.selectCamera = function() {
- return 'Select Camera'
- }),
- t
- )
- })(),
- m = (function() {
- function t() {}
- return (
- (t.builtUsing = function() {
- return 'Built using '
- }),
- (t.reportIssues = function() {
- return 'Report issues'
- }),
- t
- )
- })(),
- E = (function() {
- function t() {}
- return (
- (t.isMediaStreamConstraintsValid = function(t, e) {
- if ('object' != typeof t) {
- var r = typeof t
- return e.logError('videoConstraints should be of type object, the object passed is of type ' + r + '.', !0), !1
- }
- for (
- var n = new Set(['autoGainControl', 'channelCount', 'echoCancellation', 'latency', 'noiseSuppression', 'sampleRate', 'sampleSize', 'volume']), i = 0, o = Object.keys(t);
- i < o.length;
- i++
- ) {
- var s = o[i]
- if (n.has(s)) return e.logError(s + ' is not supported videoConstaints.', !0), !1
- }
- return !0
- }),
- t
- )
- })(),
- C = r(449),
- I = (function() {
- function e(e, r, n) {
- if (
- ((this.formatMap = new Map([
- [t.QR_CODE, C.BarcodeFormat.QR_CODE],
- [t.AZTEC, C.BarcodeFormat.AZTEC],
- [t.CODABAR, C.BarcodeFormat.CODABAR],
- [t.CODE_39, C.BarcodeFormat.CODE_39],
- [t.CODE_93, C.BarcodeFormat.CODE_93],
- [t.CODE_128, C.BarcodeFormat.CODE_128],
- [t.DATA_MATRIX, C.BarcodeFormat.DATA_MATRIX],
- [t.MAXICODE, C.BarcodeFormat.MAXICODE],
- [t.ITF, C.BarcodeFormat.ITF],
- [t.EAN_13, C.BarcodeFormat.EAN_13],
- [t.EAN_8, C.BarcodeFormat.EAN_8],
- [t.PDF_417, C.BarcodeFormat.PDF_417],
- [t.RSS_14, C.BarcodeFormat.RSS_14],
- [t.RSS_EXPANDED, C.BarcodeFormat.RSS_EXPANDED],
- [t.UPC_A, C.BarcodeFormat.UPC_A],
- [t.UPC_E, C.BarcodeFormat.UPC_E],
- [t.UPC_EAN_EXTENSION, C.BarcodeFormat.UPC_EAN_EXTENSION]
- ])),
- (this.reverseFormatMap = this.createReverseFormatMap()),
- !C)
- )
- throw 'Use html5qrcode.min.js without edit, ZXing not found.'
- ;(this.verbose = r), (this.logger = n)
- var i = this.createZXingFormats(e),
- o = new Map()
- o.set(C.DecodeHintType.POSSIBLE_FORMATS, i), (this.hints = o)
- }
- return (
- (e.prototype.decodeAsync = function(t) {
- var e = this
- return new Promise(function(r, n) {
- try {
- r(e.decode(t))
- } catch (t) {
- n(t)
- }
- })
- }),
- (e.prototype.decode = function(t) {
- var e = new C.MultiFormatReader(this.verbose, this.hints),
- r = new C.HTMLCanvasElementLuminanceSource(t),
- n = new C.BinaryBitmap(new C.HybridBinarizer(r)),
- i = e.decode(n)
- return { text: i.text, format: c.create(this.toHtml5QrcodeSupportedFormats(i.format)) }
- }),
- (e.prototype.createReverseFormatMap = function() {
- var t = new Map()
- return (
- this.formatMap.forEach(function(e, r, n) {
- t.set(e, r)
- }),
- t
- )
- }),
- (e.prototype.toHtml5QrcodeSupportedFormats = function(t) {
- if (!this.reverseFormatMap.has(t)) throw "reverseFormatMap doesn't have " + t
- return this.reverseFormatMap.get(t)
- }),
- (e.prototype.createZXingFormats = function(t) {
- for (var e = [], r = 0, n = t; r < n.length; r++) {
- var i = n[r]
- this.formatMap.has(i) ? e.push(this.formatMap.get(i)) : this.logger.logError(i + ' is not supported byZXingHtml5QrcodeShim')
- }
- return e
- }),
- e
- )
- })(),
- p = (function() {
- function e(r, n, i) {
- if (
- ((this.formatMap = new Map([
- [t.QR_CODE, 'qr_code'],
- [t.AZTEC, 'aztec'],
- [t.CODABAR, 'codabar'],
- [t.CODE_39, 'code_39'],
- [t.CODE_93, 'code_93'],
- [t.CODE_128, 'code_128'],
- [t.DATA_MATRIX, 'data_matrix'],
- [t.ITF, 'itf'],
- [t.EAN_13, 'ean_13'],
- [t.EAN_8, 'ean_8'],
- [t.PDF_417, 'pdf417'],
- [t.UPC_A, 'upc_a'],
- [t.UPC_E, 'upc_e']
- ])),
- (this.reverseFormatMap = this.createReverseFormatMap()),
- !e.isSupported())
- )
- throw 'Use html5qrcode.min.js without edit, Use BarcodeDetectorDelegate only if it isSupported();'
- ;(this.verbose = n), (this.logger = i)
- var o = this.createBarcodeDetectorFormats(r)
- if (((this.detector = new BarcodeDetector(o)), !this.detector)) throw 'BarcodeDetector detector not supported'
- }
- return (
- (e.isSupported = function() {
- return 'BarcodeDetector' in window && void 0 !== new BarcodeDetector({ formats: ['qr_code'] })
- }),
- (e.prototype.decodeAsync = function(t) {
- return (
- (e = this),
- (r = void 0),
- (i = function() {
- var e, r
- return (function(t, e) {
- var r,
- n,
- i,
- o,
- s = {
- label: 0,
- sent: function() {
- if (1 & i[0]) throw i[1]
- return i[1]
- },
- trys: [],
- ops: []
- }
- return (
- (o = { next: a(0), throw: a(1), return: a(2) }),
- 'function' == typeof Symbol &&
- (o[Symbol.iterator] = function() {
- return this
- }),
- o
- )
- function a(o) {
- return function(a) {
- return (function(o) {
- if (r) throw new TypeError('Generator is already executing.')
- for (; s; )
- try {
- if (((r = 1), n && (i = 2 & o[0] ? n.return : o[0] ? n.throw || ((i = n.return) && i.call(n), 0) : n.next) && !(i = i.call(n, o[1])).done))
- return i
- switch (((n = 0), i && (o = [2 & o[0], i.value]), o[0])) {
- case 0:
- case 1:
- i = o
- break
- case 4:
- return s.label++, { value: o[1], done: !1 }
- case 5:
- s.label++, (n = o[1]), (o = [0])
- continue
- case 7:
- ;(o = s.ops.pop()), s.trys.pop()
- continue
- default:
- if (!((i = (i = s.trys).length > 0 && i[i.length - 1]) || (6 !== o[0] && 2 !== o[0]))) {
- s = 0
- continue
- }
- if (3 === o[0] && (!i || (o[1] > i[0] && o[1] < i[3]))) {
- s.label = o[1]
- break
- }
- if (6 === o[0] && s.label < i[1]) {
- ;(s.label = i[1]), (i = o)
- break
- }
- if (i && s.label < i[2]) {
- ;(s.label = i[2]), s.ops.push(o)
- break
- }
- i[2] && s.ops.pop(), s.trys.pop()
- continue
- }
- o = e.call(t, s)
- } catch (t) {
- ;(o = [6, t]), (n = 0)
- } finally {
- r = i = 0
- }
- if (5 & o[0]) throw o[1]
- return { value: o[0] ? o[1] : void 0, done: !0 }
- })([o, a])
- }
- }
- })(this, function(n) {
- switch (n.label) {
- case 0:
- return [4, this.detector.detect(t)]
- case 1:
- if (!(e = n.sent()) || 0 === e.length) throw 'No barcode or QR code detected.'
- return [2, { text: (r = this.selectLargestBarcode(e)).rawValue, format: c.create(this.toHtml5QrcodeSupportedFormats(r.format)) }]
- }
- })
- }),
- new ((n = void 0) || (n = Promise))(function(t, o) {
- function s(t) {
- try {
- l(i.next(t))
- } catch (t) {
- o(t)
- }
- }
- function a(t) {
- try {
- l(i.throw(t))
- } catch (t) {
- o(t)
- }
- }
- function l(e) {
- var r
- e.done
- ? t(e.value)
- : ((r = e.value),
- r instanceof n
- ? r
- : new n(function(t) {
- t(r)
- })).then(s, a)
- }
- l((i = i.apply(e, r || [])).next())
- })
- )
- var e, r, n, i
- }),
- (e.prototype.selectLargestBarcode = function(t) {
- for (var e = null, r = 0, n = 0, i = t; n < i.length; n++) {
- var o = i[n],
- s = o.boundingBox.width * o.boundingBox.height
- s > r && ((r = s), (e = o))
- }
- if (!e) throw 'No largest barcode found'
- return e
- }),
- (e.prototype.createBarcodeDetectorFormats = function(t) {
- for (var e = [], r = 0, n = t; r < n.length; r++) {
- var i = n[r]
- this.formatMap.has(i) ? e.push(this.formatMap.get(i)) : this.logger.warn(i + ' is not supported byBarcodeDetectorDelegate')
- }
- return { formats: e }
- }),
- (e.prototype.toHtml5QrcodeSupportedFormats = function(t) {
- if (!this.reverseFormatMap.has(t)) throw "reverseFormatMap doesn't have " + t
- return this.reverseFormatMap.get(t)
- }),
- (e.prototype.createReverseFormatMap = function() {
- var t = new Map()
- return (
- this.formatMap.forEach(function(e, r, n) {
- t.set(e, r)
- }),
- t
- )
- }),
- e
- )
- })(),
- S = (function() {
- function t(t, e, r, n) {
- ;(this.EXECUTIONS_TO_REPORT_PERFORMANCE = 100),
- (this.executions = 0),
- (this.executionResults = []),
- (this.verbose = e),
- !0 === n.useBarCodeDetectorIfSupported && p.isSupported() ? (this.decoder = new p(t, e, r)) : (this.decoder = new I(t, e, r))
- }
- return (
- (t.prototype.decodeAsync = function(t) {
- var e = this,
- r = performance.now()
- return this.decoder.decodeAsync(t).finally(function() {
- if (e.verbose) {
- var t = performance.now() - r
- e.executionResults.push(t), e.executions++, e.possiblyFlushPerformanceReport()
- }
- })
- }),
- (t.prototype.possiblyFlushPerformanceReport = function() {
- if (!(this.executions < this.EXECUTIONS_TO_REPORT_PERFORMANCE)) {
- for (var t = 0, e = 0, r = this.executionResults; e < r.length; e++) t += r[e]
- var n = t / this.executionResults.length
- console.log(n + ' ms for ' + this.executionResults.length + ' last runs.'), (this.executions = 0), (this.executionResults = [])
- }
- }),
- t
- )
- })(),
- _ = (function() {
- function t() {}
- return (
- (t.createExperimentalFeaturesConfig = function(t) {
- return t ? (!0 !== t.useBarCodeDetectorIfSupported && (t.useBarCodeDetectorIfSupported = !1), t) : { useBarCodeDetectorIfSupported: !1 }
- }),
- t
- )
- })()
- !(function(t) {
- ;(t[(t.UNKNOWN = 0)] = 'UNKNOWN'), (t[(t.NOT_STARTED = 1)] = 'NOT_STARTED'), (t[(t.SCANNING = 2)] = 'SCANNING'), (t[(t.PAUSED = 3)] = 'PAUSED')
- })(f || (f = {}))
- var T,
- y,
- N = (function() {
- function t() {
- ;(this.state = f.NOT_STARTED), (this.onGoingTransactionNewState = f.UNKNOWN)
- }
- return (
- (t.prototype.directTransition = function(t) {
- this.failIfTransitionOngoing(), this.validateTransition(t), (this.state = t)
- }),
- (t.prototype.startTransition = function(t) {
- return this.failIfTransitionOngoing(), this.validateTransition(t), (this.onGoingTransactionNewState = t), this
- }),
- (t.prototype.execute = function() {
- if (this.onGoingTransactionNewState === f.UNKNOWN) throw 'Transaction is already cancelled, cannot execute().'
- var t = this.onGoingTransactionNewState
- ;(this.onGoingTransactionNewState = f.UNKNOWN), this.directTransition(t)
- }),
- (t.prototype.cancel = function() {
- if (this.onGoingTransactionNewState === f.UNKNOWN) throw 'Transaction is already cancelled, cannot cancel().'
- this.onGoingTransactionNewState = f.UNKNOWN
- }),
- (t.prototype.getState = function() {
- return this.state
- }),
- (t.prototype.failIfTransitionOngoing = function() {
- if (this.onGoingTransactionNewState !== f.UNKNOWN) throw 'Cannnot transition to a new state, already under transition'
- }),
- (t.prototype.validateTransition = function(t) {
- switch (this.state) {
- case f.UNKNOWN:
- throw 'Transition from unknown is not allowed'
- case f.NOT_STARTED:
- this.failIfNewStateIs(t, [f.PAUSED])
- break
- case f.SCANNING:
- case f.PAUSED:
- }
- }),
- (t.prototype.failIfNewStateIs = function(t, e) {
- for (var r = 0, n = e; r < n.length; r++) if (t === n[r]) throw 'Cannot transition from ' + this.state + ' to ' + t
- }),
- t
- )
- })(),
- M = (function() {
- function t(t) {
- this.stateManager = t
- }
- return (
- (t.prototype.startTransition = function(t) {
- return this.stateManager.startTransition(t)
- }),
- (t.prototype.directTransition = function(t) {
- this.stateManager.directTransition(t)
- }),
- (t.prototype.getState = function() {
- return this.stateManager.getState()
- }),
- (t.prototype.canScanFile = function() {
- return this.stateManager.getState() === f.NOT_STARTED
- }),
- (t.prototype.isScanning = function() {
- return this.stateManager.getState() !== f.NOT_STARTED
- }),
- (t.prototype.isStrictlyScanning = function() {
- return this.stateManager.getState() === f.SCANNING
- }),
- (t.prototype.isPaused = function() {
- return this.stateManager.getState() === f.PAUSED
- }),
- t
- )
- })(),
- D = (function() {
- function t() {}
- return (
- (t.create = function() {
- return new M(new N())
- }),
- t
- )
- })(),
- R =
- ((T = function(t, e) {
- return (T =
- Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array &&
- function(t, e) {
- t.__proto__ = e
- }) ||
- function(t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(t, e)
- }),
- function(t, e) {
- if ('function' != typeof e && null !== e) throw new TypeError('Class extends value ' + String(e) + ' is not a constructor or null')
- function r() {
- this.constructor = t
- }
- T(t, e), (t.prototype = null === e ? Object.create(e) : ((r.prototype = e.prototype), new r()))
- }),
- O = (function(t) {
- function e() {
- return (null !== t && t.apply(this, arguments)) || this
- }
- return (
- R(e, t),
- (e.DEFAULT_WIDTH = 300),
- (e.DEFAULT_WIDTH_OFFSET = 2),
- (e.FILE_SCAN_MIN_HEIGHT = 300),
- (e.MIN_QR_BOX_SIZE = 50),
- (e.SHADED_LEFT = 1),
- (e.SHADED_RIGHT = 2),
- (e.SHADED_TOP = 3),
- (e.SHADED_BOTTOM = 4),
- (e.SHADED_REGION_ELEMENT_ID = 'qr-shaded-region'),
- (e.VERBOSE = !1),
- (e.BORDER_SHADER_DEFAULT_COLOR = '#ffffff'),
- (e.BORDER_SHADER_MATCH_COLOR = 'rgb(90, 193, 56)'),
- e
- )
- })(l),
- b = (function() {
- function t(t, e) {
- ;(this.logger = e),
- (this.fps = O.SCAN_DEFAULT_FPS),
- t
- ? (t.fps && (this.fps = t.fps),
- (this.disableFlip = !0 === t.disableFlip),
- (this.qrbox = t.qrbox),
- (this.aspectRatio = t.aspectRatio),
- (this.videoConstraints = t.videoConstraints))
- : (this.disableFlip = O.DEFAULT_DISABLE_FLIP)
- }
- return (
- (t.prototype.isMediaStreamConstraintsValid = function() {
- return this.videoConstraints ? E.isMediaStreamConstraintsValid(this.videoConstraints, this.logger) : (this.logger.logError('Empty videoConstraints', !0), !1)
- }),
- (t.prototype.isShadedBoxEnabled = function() {
- return !g(this.qrbox)
- }),
- (t.create = function(e, r) {
- return new t(e, r)
- }),
- t
- )
- })(),
- L = (function() {
- function e(t, e) {
- if (
- ((this.element = null),
- (this.canvasElement = null),
- (this.scannerPausedUiElement = null),
- (this.hasBorderShaders = null),
- (this.borderShaders = null),
- (this.qrMatch = null),
- (this.videoElement = null),
- (this.localMediaStream = null),
- (this.qrRegion = null),
- (this.context = null),
- (this.lastScanImageFile = null),
- (this.isScanning = !1),
- !document.getElementById(t))
- )
- throw 'HTML Element with id=' + t + ' not found'
- var r
- ;(this.elementId = t),
- (this.verbose = !1),
- 'boolean' == typeof e ? (this.verbose = !0 === e) : e && ((this.verbose = !0 === e.verbose), (r = e.experimentalFeatures)),
- (this.logger = new d(this.verbose)),
- (this.qrcode = new S(this.getSupportedFormats(e), this.verbose, this.logger, _.createExperimentalFeaturesConfig(r))),
- this.foreverScanTimeout,
- this.localMediaStream,
- (this.shouldScan = !0),
- (this.stateManagerProxy = D.create())
- }
- return (
- (e.prototype.start = function(t, e, r, n) {
- if (!t) throw 'cameraIdOrConfig is required'
- if (!r || 'function' != typeof r) throw 'qrCodeSuccessCallback is required and should be a function.'
- n || (n = this.verbose ? this.logger.log : function() {})
- var i = b.create(e, this.logger)
- this.clearElement()
- var o = !1
- i.videoConstraints && (i.isMediaStreamConstraintsValid() ? (o = !0) : this.logger.logError("'videoConstraints' is not valid 'MediaStreamConstraints, it will be ignored.'", !0))
- var s = o,
- a = (i.isShadedBoxEnabled(), document.getElementById(this.elementId)),
- l = a.clientWidth ? a.clientWidth : O.DEFAULT_WIDTH
- ;(a.style.position = 'relative'), (this.shouldScan = !0), (this.element = a)
- var c = this,
- h = this.stateManagerProxy.startTransition(f.SCANNING)
- return new Promise(function(e, o) {
- var a = s ? i.videoConstraints : c.createVideoConstraints(t)
- if (!a) return h.cancel(), void o('videoConstraints should be defined')
- navigator.mediaDevices && navigator.mediaDevices.getUserMedia
- ? navigator.mediaDevices
- .getUserMedia({ audio: !1, video: a })
- .then(function(t) {
- c.onMediaStreamReceived(t, i, s, l, r, n)
- .then(function(t) {
- h.execute(), (c.isScanning = !0), e(null)
- })
- .catch(function(t) {
- h.cancel(), o(t)
- })
- })
- .catch(function(t) {
- h.cancel(), o(w.errorGettingUserMedia(t))
- })
- : (h.cancel(), o(w.cameraStreamingNotSupported()))
- })
- }),
- (e.prototype.pause = function(t) {
- if (!this.stateManagerProxy.isStrictlyScanning()) throw 'Cannot pause, scanner is not scanning.'
- this.stateManagerProxy.directTransition(f.PAUSED), this.showPausedState(), (g(t) || !0 !== t) && (t = !1), t && this.videoElement && this.videoElement.pause()
- }),
- (e.prototype.resume = function() {
- if (!this.stateManagerProxy.isPaused()) throw 'Cannot result, scanner is not paused.'
- if (!this.videoElement) throw "VideoElement doesn't exist while trying resume()"
- var t = this,
- e = function() {
- t.stateManagerProxy.directTransition(f.SCANNING), t.hidePausedState()
- }
- if (this.videoElement.paused) {
- var r = function() {
- var n
- setTimeout(e, 200), null === (n = t.videoElement) || void 0 === n || n.removeEventListener('playing', r)
- }
- this.videoElement.addEventListener('playing', r), this.videoElement.play()
- } else e()
- }),
- (e.prototype.getState = function() {
- return this.stateManagerProxy.getState()
- }),
- (e.prototype.stop = function() {
- var t = this
- if (!this.stateManagerProxy.isScanning()) throw 'Cannot stop, scanner is not running or paused.'
- var e = this.stateManagerProxy.startTransition(f.NOT_STARTED)
- return (
- (this.shouldScan = !1),
- this.foreverScanTimeout && clearTimeout(this.foreverScanTimeout),
- new Promise(function(r, n) {
- var i = function() {
- ;(t.localMediaStream = null),
- t.element && (t.element.removeChild(t.videoElement), t.element.removeChild(t.canvasElement)),
- (function() {
- if (t.element) {
- var e = document.getElementById(O.SHADED_REGION_ELEMENT_ID)
- e && t.element.removeChild(e)
- }
- })(),
- t.qrRegion && (t.qrRegion = null),
- t.context && (t.context = null),
- e.execute(),
- t.hidePausedState(),
- (t.isScanning = !1),
- r()
- }
- t.localMediaStream || i()
- var o = t.localMediaStream.getVideoTracks().length,
- s = 0
- t.localMediaStream.getVideoTracks().forEach(function(e) {
- t.localMediaStream.removeTrack(e), e.stop(), ++s >= o && i()
- })
- })
- )
- }),
- (e.prototype.scanFile = function(t, e) {
- return this.scanFileV2(t, e).then(function(t) {
- return t.decodedText
- })
- }),
- (e.prototype.scanFileV2 = function(t, e) {
- var r = this
- if (!(t && t instanceof File)) throw "imageFile argument is mandatory and should be instance of File. Use 'event.target.files[0]'."
- if ((g(e) && (e = !0), !this.stateManagerProxy.canScanFile())) throw 'Cannot start file scan - ongoing camera scan'
- return new Promise(function(n, i) {
- r.possiblyCloseLastScanImageFile(), r.clearElement(), (r.lastScanImageFile = URL.createObjectURL(t))
- var o = new Image()
- ;(o.onload = function() {
- var t = o.width,
- s = o.height,
- a = document.getElementById(r.elementId),
- l = a.clientWidth ? a.clientWidth : O.DEFAULT_WIDTH,
- c = Math.max(a.clientHeight ? a.clientHeight : s, O.FILE_SCAN_MIN_HEIGHT),
- u = r.computeCanvasDrawConfig(t, s, l, c)
- if (e) {
- var d = r.createCanvasElement(l, c, 'qr-canvas-visible')
- ;(d.style.display = 'inline-block'), a.appendChild(d)
- var g = d.getContext('2d')
- if (!g) throw 'Unable to get 2d context from canvas'
- ;(g.canvas.width = l), (g.canvas.height = c), g.drawImage(o, 0, 0, t, s, u.x, u.y, u.width, u.height)
- }
- var f = r.createCanvasElement(u.width, u.height)
- a.appendChild(f)
- var w = f.getContext('2d')
- if (!w) throw 'Unable to get 2d context from canvas'
- ;(w.canvas.width = u.width), (w.canvas.height = u.height), w.drawImage(o, 0, 0, t, s, 0, 0, u.width, u.height)
- try {
- r.qrcode
- .decodeAsync(f)
- .then(function(t) {
- n(h.createFromQrcodeResult(t))
- })
- .catch(i)
- } catch (t) {
- i('QR code parse error, error = ' + t)
- }
- }),
- (o.onerror = i),
- (o.onabort = i),
- (o.onstalled = i),
- (o.onsuspend = i),
- (o.src = URL.createObjectURL(t))
- })
- }),
- (e.prototype.clear = function() {
- this.clearElement()
- }),
- (e.getCameras = function() {
- if (navigator.mediaDevices) return e.getCamerasFromMediaDevices()
- var t = MediaStreamTrack
- if (MediaStreamTrack && t.getSources) return e.getCamerasFromMediaStreamTrack()
- var r = w.unableToQuerySupportedDevices()
- return (
- (function() {
- if ('https:' === location.protocol) return !0
- var t = location.host.split(':')[0]
- return '127.0.0.1' === t || 'localhost' === t
- })() || (r = w.insecureContextCameraQueryError()),
- Promise.reject(r)
- )
- }),
- (e.prototype.getRunningTrackCapabilities = function() {
- if (null == this.localMediaStream) throw 'Scanning is not in running state, call this API only when QR code scanning using camera is in running state.'
- if (0 === this.localMediaStream.getVideoTracks().length) throw 'No video tracks found'
- return this.localMediaStream.getVideoTracks()[0].getCapabilities()
- }),
- (e.prototype.applyVideoConstraints = function(t) {
- var e = this
- if (!t) throw 'videoConstaints is required argument.'
- if (!E.isMediaStreamConstraintsValid(t, this.logger)) throw 'invalid videoConstaints passed, check logs for more details'
- if (null === this.localMediaStream) throw 'Scanning is not in running state, call this API only when QR code scanning using camera is in running state.'
- if (0 === this.localMediaStream.getVideoTracks().length) throw 'No video tracks found'
- return new Promise(function(r, n) {
- 'aspectRatio' in t
- ? n("Chaning 'aspectRatio' in run-time is not yet supported.")
- : e.localMediaStream
- .getVideoTracks()[0]
- .applyConstraints(t)
- .then(function(t) {
- r(t)
- })
- .catch(function(t) {
- n(t)
- })
- })
- }),
- (e.getCamerasFromMediaDevices = function() {
- return new Promise(function(t, e) {
- navigator.mediaDevices
- .getUserMedia({ audio: !1, video: !0 })
- .then(function(r) {
- navigator.mediaDevices
- .enumerateDevices()
- .then(function(e) {
- for (var n = [], i = 0, o = e; i < o.length; i++) {
- var s = o[i]
- 'videoinput' === s.kind && n.push({ id: s.deviceId, label: s.label })
- }
- !(function(t) {
- for (var e = 0, r = t.getVideoTracks(); e < r.length; e++) {
- var n = r[e]
- ;(n.enabled = !1), n.stop(), t.removeTrack(n)
- }
- })(r),
- t(n)
- })
- .catch(function(t) {
- e(t.name + ' : ' + t.message)
- })
- })
- .catch(function(t) {
- e(t.name + ' : ' + t.message)
- })
- })
- }),
- (e.getCamerasFromMediaStreamTrack = function() {
- return new Promise(function(t, e) {
- MediaStreamTrack.getSources(function(e) {
- for (var r = [], n = 0, i = e; n < i.length; n++) {
- var o = i[n]
- 'video' === o.kind && r.push({ id: o.id, label: o.label })
- }
- t(r)
- })
- })
- }),
- (e.prototype.getSupportedFormats = function(e) {
- var r = [
- t.QR_CODE,
- t.AZTEC,
- t.CODABAR,
- t.CODE_39,
- t.CODE_93,
- t.CODE_128,
- t.DATA_MATRIX,
- t.MAXICODE,
- t.ITF,
- t.EAN_13,
- t.EAN_8,
- t.PDF_417,
- t.RSS_14,
- t.RSS_EXPANDED,
- t.UPC_A,
- t.UPC_E,
- t.UPC_EAN_EXTENSION
- ]
- if (!e || 'boolean' == typeof e) return r
- if (!e.formatsToSupport) return r
- if (!Array.isArray(e.formatsToSupport)) throw 'configOrVerbosityFlag.formatsToSupport should be undefined or an array.'
- if (0 === e.formatsToSupport.length) throw 'Atleast 1 formatsToSupport is needed.'
- for (var n = [], i = 0, o = e.formatsToSupport; i < o.length; i++) {
- var a = o[i]
- s(a) ? n.push(a) : this.logger.warn('Invalid format: ' + a + ' passed in config, ignoring.')
- }
- if (0 === n.length) throw 'None of formatsToSupport match supported values.'
- return n
- }),
- (e.prototype.validateQrboxSize = function(t, e, r) {
- var n = r.qrbox
- this.validateQrboxConfig(n)
- var i,
- o = this.toQrdimensions(t, e, n),
- s = function(t) {
- if (t < O.MIN_QR_BOX_SIZE) throw "minimum size of 'config.qrbox' dimension value is " + O.MIN_QR_BOX_SIZE + 'px.'
- }
- s(o.width),
- s(o.height),
- (o.width =
- ((i = o.width) > t &&
- (this.logger.warn('`qrbox.width` or `qrbox` is larger than the width of the root element. The width will be truncated to the width of root element.'), (i = t)),
- i))
- }),
- (e.prototype.validateQrboxConfig = function(t) {
- if ('number' != typeof t && 'function' != typeof t && (void 0 === t.width || void 0 === t.height))
- throw "Invalid instance of QrDimensions passed for 'config.qrbox'. Both 'width' and 'height' should be set."
- }),
- (e.prototype.toQrdimensions = function(t, e, r) {
- if ('number' == typeof r) return { width: r, height: r }
- if ('function' == typeof r)
- try {
- return r(t, e)
- } catch (t) {
- throw new Error('qrbox config was passed as a function but it failed with unknown error' + t)
- }
- return r
- }),
- (e.prototype.setupUi = function(t, e, r) {
- r.isShadedBoxEnabled() && this.validateQrboxSize(t, e, r)
- var n = g(r.qrbox) ? { width: t, height: e } : r.qrbox
- this.validateQrboxConfig(n)
- var i = this.toQrdimensions(t, e, n)
- i.height > e && this.logger.warn('[Html5Qrcode] config.qrbox has height that isgreater than the height of the video stream. Shading will be ignored')
- var o = r.isShadedBoxEnabled() && i.height <= e,
- s = { x: 0, y: 0, width: t, height: e },
- a = o ? this.getShadedRegionBounds(t, e, i) : s,
- l = this.createCanvasElement(a.width, a.height),
- c = l.getContext('2d')
- ;(c.canvas.width = a.width),
- (c.canvas.height = a.height),
- this.element.append(l),
- o && this.possiblyInsertShadingElement(this.element, t, e, i),
- this.createScannerPausedUiElement(this.element),
- (this.qrRegion = a),
- (this.context = c),
- (this.canvasElement = l)
- }),
- (e.prototype.createScannerPausedUiElement = function(t) {
- var e = document.createElement('div')
- ;(e.innerText = 'Scanner paused'),
- (e.style.display = 'none'),
- (e.style.position = 'absolute'),
- (e.style.top = '0px'),
- (e.style.zIndex = '1'),
- (e.style.background = 'yellow'),
- (e.style.textAlign = 'center'),
- (e.style.width = '100%'),
- t.appendChild(e),
- (this.scannerPausedUiElement = e)
- }),
- (e.prototype.scanContext = function(t, e) {
- var r = this
- return this.stateManagerProxy.isPaused()
- ? Promise.resolve(!1)
- : this.qrcode
- .decodeAsync(this.canvasElement)
- .then(function(e) {
- return t(e.text, h.createFromQrcodeResult(e)), r.possiblyUpdateShaders(!0), !0
- })
- .catch(function(t) {
- r.possiblyUpdateShaders(!1)
- var n = w.codeParseError(t)
- return e(n, u.createFrom(n)), !1
- })
- }),
- (e.prototype.foreverScan = function(t, e, r) {
- var n = this
- if (this.shouldScan && this.localMediaStream) {
- var i = this.videoElement,
- o = i.videoWidth / i.clientWidth,
- s = i.videoHeight / i.clientHeight
- if (!this.qrRegion) throw 'qrRegion undefined when localMediaStream is ready.'
- var a = this.qrRegion.width * o,
- l = this.qrRegion.height * s,
- c = this.qrRegion.x * o,
- h = this.qrRegion.y * s
- this.context.drawImage(i, c, h, a, l, 0, 0, this.qrRegion.width, this.qrRegion.height)
- var u = function() {
- n.foreverScanTimeout = setTimeout(function() {
- n.foreverScan(t, e, r)
- }, n.getTimeoutFps(t.fps))
- }
- this.scanContext(e, r)
- .then(function(i) {
- i || !0 === t.disableFlip
- ? u()
- : (n.context.translate(n.context.canvas.width, 0),
- n.context.scale(-1, 1),
- n.scanContext(e, r).finally(function() {
- u()
- }))
- })
- .catch(function(t) {
- n.logger.logError('Error happend while scanning context', t), u()
- })
- }
- }),
- (e.prototype.onMediaStreamReceived = function(t, e, r, n, i, o) {
- var s = this,
- a = this
- return new Promise(function(l, c) {
- var h = function() {
- var r = s.createVideoElement(n)
- a.element.append(r), (r.onabort = c), (r.onerror = c)
- var h = function() {
- var t = r.clientWidth,
- n = r.clientHeight
- a.setupUi(t, n, e), a.foreverScan(e, i, o), r.removeEventListener('playing', h), l(null)
- }
- r.addEventListener('playing', h), (r.srcObject = t), r.play(), (a.videoElement = r)
- }
- if (((a.localMediaStream = t), r || !e.aspectRatio)) h()
- else {
- var u = { aspectRatio: e.aspectRatio }
- t.getVideoTracks()[0]
- .applyConstraints(u)
- .then(function(t) {
- return h()
- })
- .catch(function(t) {
- a.logger.logErrors(['[Html5Qrcode] Constriants could not be satisfied, ignoring constraints', t]), h()
- })
- }
- })
- }),
- (e.prototype.createVideoConstraints = function(t) {
- if ('string' == typeof t) return { deviceId: { exact: t } }
- if ('object' == typeof t) {
- var e = 'facingMode',
- r = { user: !0, environment: !0 },
- n = 'exact',
- i = function(t) {
- if (t in r) return !0
- throw "config has invalid 'facingMode' value = '" + t + "'"
- },
- o = Object.keys(t)
- if (1 !== o.length) throw "'cameraIdOrConfig' object should have exactly 1 key, if passed as an object, found " + o.length + ' keys'
- var s = Object.keys(t)[0]
- if (s !== e && 'deviceId' !== s) throw "Only 'facingMode' and 'deviceId' are supported for 'cameraIdOrConfig'"
- if (s !== e) {
- var a = t.deviceId
- if ('string' == typeof a) return { deviceId: a }
- if ('object' == typeof a) {
- if (n in a) return { deviceId: { exact: a.exact } }
- throw "'deviceId' should be string or object with exact as key."
- }
- throw "Invalid type of 'deviceId' = " + typeof a
- }
- var l = t.facingMode
- if ('string' == typeof l) {
- if (i(l)) return { facingMode: l }
- } else {
- if ('object' != typeof l) throw "Invalid type of 'facingMode' = " + typeof l
- if (!(n in l)) throw "'facingMode' should be string or object with exact as key."
- if (i(l.exact)) return { facingMode: { exact: l.exact } }
- }
- }
- throw "Invalid type of 'cameraIdOrConfig' = " + typeof t
- }),
- (e.prototype.computeCanvasDrawConfig = function(t, e, r, n) {
- if (t <= r && e <= n) return { x: (r - t) / 2, y: (n - e) / 2, width: t, height: e }
- var i = t,
- o = e
- return (
- t > r && ((e *= r / t), (t = r)),
- e > n && ((t *= n / e), (e = n)),
- this.logger.log('Image downsampled from ' + i + 'X' + o + ' to ' + t + 'X' + e + '.'),
- this.computeCanvasDrawConfig(t, e, r, n)
- )
- }),
- (e.prototype.clearElement = function() {
- if (this.stateManagerProxy.isScanning()) throw 'Cannot clear while scan is ongoing, close it first.'
- var t = document.getElementById(this.elementId)
- t && (t.innerHTML = '')
- }),
- (e.prototype.createVideoElement = function(t) {
- var e = document.createElement('video')
- return (e.style.width = t + 'px'), (e.muted = !0), e.setAttribute('muted', 'true'), (e.playsInline = !0), e
- }),
- (e.prototype.possiblyUpdateShaders = function(t) {
- this.qrMatch !== t &&
- (this.hasBorderShaders &&
- this.borderShaders &&
- this.borderShaders.length &&
- this.borderShaders.forEach(function(e) {
- e.style.backgroundColor = t ? O.BORDER_SHADER_MATCH_COLOR : O.BORDER_SHADER_DEFAULT_COLOR
- }),
- (this.qrMatch = t))
- }),
- (e.prototype.possiblyCloseLastScanImageFile = function() {
- this.lastScanImageFile && (URL.revokeObjectURL(this.lastScanImageFile), (this.lastScanImageFile = null))
- }),
- (e.prototype.createCanvasElement = function(t, e, r) {
- var n = t,
- i = e,
- o = document.createElement('canvas')
- return (o.style.width = n + 'px'), (o.style.height = i + 'px'), (o.style.display = 'none'), (o.id = g(r) ? 'qr-canvas' : r), o
- }),
- (e.prototype.getShadedRegionBounds = function(t, e, r) {
- if (r.width > t || r.height > e) throw "'config.qrbox' dimensions should not be greater than the dimensions of the root HTML element."
- return { x: (t - r.width) / 2, y: (e - r.height) / 2, width: r.width, height: r.height }
- }),
- (e.prototype.possiblyInsertShadingElement = function(t, e, r, n) {
- if (!(e - n.width < 1 || r - n.height < 1)) {
- var i = document.createElement('div')
- i.style.position = 'absolute'
- var o = (e - n.width) / 2,
- s = (r - n.height) / 2
- if (
- ((i.style.borderLeft = o + 'px solid #0000007a'),
- (i.style.borderRight = o + 'px solid #0000007a'),
- (i.style.borderTop = s + 'px solid #0000007a'),
- (i.style.borderBottom = s + 'px solid #0000007a'),
- (i.style.boxSizing = 'border-box'),
- (i.style.top = '0px'),
- (i.style.bottom = '0px'),
- (i.style.left = '0px'),
- (i.style.right = '0px'),
- (i.id = '' + O.SHADED_REGION_ELEMENT_ID),
- e - n.width < 11 || r - n.height < 11)
- )
- this.hasBorderShaders = !1
- else {
- var a = 40
- this.insertShaderBorders(i, a, 5, -5, 0, !0),
- this.insertShaderBorders(i, a, 5, -5, 0, !1),
- this.insertShaderBorders(i, a, 5, n.height + 5, 0, !0),
- this.insertShaderBorders(i, a, 5, n.height + 5, 0, !1),
- this.insertShaderBorders(i, 5, 45, -5, -5, !0),
- this.insertShaderBorders(i, 5, 45, n.height + 5 - a, -5, !0),
- this.insertShaderBorders(i, 5, 45, -5, -5, !1),
- this.insertShaderBorders(i, 5, 45, n.height + 5 - a, -5, !1),
- (this.hasBorderShaders = !0)
- }
- t.append(i)
- }
- }),
- (e.prototype.insertShaderBorders = function(t, e, r, n, i, o) {
- var s = document.createElement('div')
- ;(s.style.position = 'absolute'),
- (s.style.backgroundColor = O.BORDER_SHADER_DEFAULT_COLOR),
- (s.style.width = e + 'px'),
- (s.style.height = r + 'px'),
- (s.style.top = n + 'px'),
- o ? (s.style.left = i + 'px') : (s.style.right = i + 'px'),
- this.borderShaders || (this.borderShaders = []),
- this.borderShaders.push(s),
- t.appendChild(s)
- }),
- (e.prototype.showPausedState = function() {
- if (!this.scannerPausedUiElement) throw '[internal error] scanner paused UI element not found'
- this.scannerPausedUiElement.style.display = 'block'
- }),
- (e.prototype.hidePausedState = function() {
- if (!this.scannerPausedUiElement) throw '[internal error] scanner paused UI element not found'
- this.scannerPausedUiElement.style.display = 'none'
- }),
- (e.prototype.getTimeoutFps = function(t) {
- return 1e3 / t
- }),
- e
- )
- })(),
- B =
- 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NjAgNDYwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA0NjAgNDYwIiB4bWw6c3BhY2U9InByZXNlcnZlIj48cGF0aCBkPSJNMjMwIDBDMTAyLjk3NSAwIDAgMTAyLjk3NSAwIDIzMHMxMDIuOTc1IDIzMCAyMzAgMjMwIDIzMC0xMDIuOTc0IDIzMC0yMzBTMzU3LjAyNSAwIDIzMCAwem0zOC4zMzMgMzc3LjM2YzAgOC42NzYtNy4wMzQgMTUuNzEtMTUuNzEgMTUuNzFoLTQzLjEwMWMtOC42NzYgMC0xNS43MS03LjAzNC0xNS43MS0xNS43MVYyMDIuNDc3YzAtOC42NzYgNy4wMzMtMTUuNzEgMTUuNzEtMTUuNzFoNDMuMTAxYzguNjc2IDAgMTUuNzEgNy4wMzMgMTUuNzEgMTUuNzFWMzc3LjM2ek0yMzAgMTU3Yy0yMS41MzkgMC0zOS0xNy40NjEtMzktMzlzMTcuNDYxLTM5IDM5LTM5IDM5IDE3LjQ2MSAzOSAzOS0xNy40NjEgMzktMzkgMzl6Ii8+PC9zdmc+',
- P = (function() {
- function t() {}
- return (
- (t.createDefault = function() {
- return { hasPermission: !1, lastUsedCameraId: null }
- }),
- t
- )
- })(),
- v = (function() {
- function t() {
- this.data = P.createDefault()
- var e = localStorage.getItem(t.LOCAL_STORAGE_KEY)
- e ? (this.data = JSON.parse(e)) : this.reset()
- }
- return (
- (t.prototype.hasCameraPermissions = function() {
- return this.data.hasPermission
- }),
- (t.prototype.getLastUsedCameraId = function() {
- return this.data.lastUsedCameraId
- }),
- (t.prototype.setHasPermission = function(t) {
- ;(this.data.hasPermission = t), this.flush()
- }),
- (t.prototype.setLastUsedCameraId = function(t) {
- ;(this.data.lastUsedCameraId = t), this.flush()
- }),
- (t.prototype.resetLastUsedCameraId = function() {
- ;(this.data.lastUsedCameraId = null), this.flush()
- }),
- (t.prototype.reset = function() {
- ;(this.data = P.createDefault()), this.flush()
- }),
- (t.prototype.flush = function() {
- localStorage.setItem(t.LOCAL_STORAGE_KEY, JSON.stringify(this.data))
- }),
- (t.LOCAL_STORAGE_KEY = 'HTML5_QRCODE_DATA'),
- t
- )
- })(),
- F = (function() {
- function t() {
- this.infoDiv = document.createElement('div')
- }
- return (
- (t.prototype.renderInto = function(t) {
- ;(this.infoDiv.style.position = 'absolute'),
- (this.infoDiv.style.top = '10px'),
- (this.infoDiv.style.right = '10px'),
- (this.infoDiv.style.zIndex = '2'),
- (this.infoDiv.style.display = 'none'),
- (this.infoDiv.style.padding = '5pt'),
- (this.infoDiv.style.border = '1px solid silver'),
- (this.infoDiv.style.fontSize = '10pt'),
- (this.infoDiv.style.background = 'rgb(248 248 248)'),
- (this.infoDiv.innerText = m.builtUsing())
- var e = document.createElement('a')
- ;(e.innerText = 'html5-qrcode'), (e.href = 'https://github.com/mebjas/html5-qrcode'), (e.target = 'new'), this.infoDiv.appendChild(e)
- var r = document.createElement('br'),
- n = document.createElement('br')
- this.infoDiv.appendChild(r), this.infoDiv.appendChild(n)
- var i = document.createElement('a')
- ;(i.innerText = m.reportIssues()), (i.href = 'https://github.com/mebjas/html5-qrcode/issues'), (i.target = 'new'), this.infoDiv.appendChild(i), t.appendChild(this.infoDiv)
- }),
- (t.prototype.show = function() {
- this.infoDiv.style.display = 'block'
- }),
- (t.prototype.hide = function() {
- this.infoDiv.style.display = 'none'
- }),
- t
- )
- })(),
- x = (function() {
- function t(t, e) {
- ;(this.isShowingInfoIcon = !0), (this.onTapIn = t), (this.onTapOut = e), (this.infoIcon = document.createElement('img'))
- }
- return (
- (t.prototype.renderInto = function(t) {
- var e = this
- ;(this.infoIcon.alt = 'Info icon'),
- (this.infoIcon.src = B),
- (this.infoIcon.style.position = 'absolute'),
- (this.infoIcon.style.top = '4px'),
- (this.infoIcon.style.right = '4px'),
- (this.infoIcon.style.opacity = '0.6'),
- (this.infoIcon.style.cursor = 'pointer'),
- (this.infoIcon.style.zIndex = '2'),
- (this.infoIcon.style.width = '16px'),
- (this.infoIcon.style.height = '16px'),
- (this.infoIcon.onmouseover = function(t) {
- return e.onHoverIn()
- }),
- (this.infoIcon.onmouseout = function(t) {
- return e.onHoverOut()
- }),
- (this.infoIcon.onclick = function(t) {
- return e.onClick()
- }),
- t.appendChild(this.infoIcon)
- }),
- (t.prototype.onHoverIn = function() {
- this.isShowingInfoIcon && (this.infoIcon.style.opacity = '1')
- }),
- (t.prototype.onHoverOut = function() {
- this.isShowingInfoIcon && (this.infoIcon.style.opacity = '0.6')
- }),
- (t.prototype.onClick = function() {
- this.isShowingInfoIcon
- ? ((this.isShowingInfoIcon = !1),
- this.onTapIn(),
- (this.infoIcon.src =
- 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAQgAAAEIBarqQRAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAE1SURBVDiNfdI7S0NBEAXgLya1otFgpbYSbISAgpXYi6CmiH9KCAiChaVga6OiWPgfRDQ+0itaGVNosXtluWwcuMzePfM4M3sq8lbHBubwg1dc4m1E/J/N4ghDPOIsfk/4xiEao5KX0McFljN4C9d4QTPXuY99jP3DsIoDPGM6BY5i5yI5R7O4q+ImFkJY2DCh3cAH2klyB+9J1xUMMAG7eCh1a+Mr+k48b5diXrFVwwLuS+BJ9MfR7+G0FHOHhTHhnXNWS87VDF4pcnfQK4Ep7XScNLmPTZgURNKKYENYWDpzW1BhscS1WHS8CDgURFJQrWcoF3c13KKbgg1BYQfy8xZWEzTTw1QZbAoKu8FqJnktdu5hcVSHmchiILzzuaDQvjBzV2m8yohCE1jHfPx/xhU+y4G/D75ELlRJsSYAAAAASUVORK5CYII='),
- (this.infoIcon.style.opacity = '1'))
- : ((this.isShowingInfoIcon = !0), this.onTapOut(), (this.infoIcon.src = B), (this.infoIcon.style.opacity = '0.6'))
- }),
- t
- )
- })(),
- k = (function() {
- function t() {
- var t = this
- ;(this.infoDiv = new F()),
- (this.infoIcon = new x(
- function() {
- t.infoDiv.show()
- },
- function() {
- t.infoDiv.hide()
- }
- ))
- }
- return (
- (t.prototype.renderInto = function(t) {
- this.infoDiv.renderInto(t), this.infoIcon.renderInto(t)
- }),
- t
- )
- })(),
- U = (function() {
- function t() {}
- return (
- (t.hasCameraPermissions = function() {
- return new Promise(function(t, e) {
- navigator.mediaDevices.enumerateDevices().then(function(e) {
- e.forEach(function(e) {
- 'videoinput' === e.kind && e.label && t(!0)
- }),
- t(!1)
- })
- })
- }),
- t
- )
- })(),
- H = (function() {
- function t(t) {
- this.supportedScanTypes = this.validateAndReturnScanTypes(t)
- }
- return (
- (t.prototype.getDefaultScanType = function() {
- return this.supportedScanTypes[0]
- }),
- (t.prototype.hasMoreThanOneScanType = function() {
- return this.supportedScanTypes.length > 1
- }),
- (t.prototype.isCameraScanRequired = function() {
- for (var e = 0, r = this.supportedScanTypes; e < r.length; e++) {
- var n = r[e]
- if (t.isCameraScanType(n)) return !0
- }
- return !1
- }),
- (t.isCameraScanType = function(t) {
- return t === i.SCAN_TYPE_CAMERA
- }),
- (t.isFileScanType = function(t) {
- return t === i.SCAN_TYPE_FILE
- }),
- (t.prototype.validateAndReturnScanTypes = function(t) {
- if (!t || 0 === t.length) return l.DEFAULT_SUPPORTED_SCAN_TYPE
- var e = l.DEFAULT_SUPPORTED_SCAN_TYPE.length
- if (t.length > e) throw 'Max ' + e + ' values expected for supportedScanTypes'
- for (var r = 0, n = t; r < n.length; r++) {
- var i = n[r]
- if (!l.DEFAULT_SUPPORTED_SCAN_TYPE.includes(i)) throw 'Unsupported scan type ' + i
- }
- return t
- }),
- t
- )
- })()
- !(function(t) {
- ;(t[(t.STATUS_DEFAULT = 0)] = 'STATUS_DEFAULT'),
- (t[(t.STATUS_SUCCESS = 1)] = 'STATUS_SUCCESS'),
- (t[(t.STATUS_WARNING = 2)] = 'STATUS_WARNING'),
- (t[(t.STATUS_REQUESTING_PERMISSION = 3)] = 'STATUS_REQUESTING_PERMISSION')
- })(y || (y = {}))
- var V = (function() {
- function t(t, e, r) {
- if (
- ((this.lastMatchFound = null),
- (this.cameraScanImage = null),
- (this.fileScanImage = null),
- (this.elementId = t),
- (this.config = this.createConfig(e)),
- (this.verbose = !0 === r),
- !document.getElementById(t))
- )
- throw 'HTML Element with id=' + t + ' not found'
- ;(this.scanTypeSelector = new H(this.config.supportedScanTypes)),
- (this.currentScanType = this.scanTypeSelector.getDefaultScanType()),
- (this.sectionSwapAllowed = !0),
- (this.logger = new d(this.verbose)),
- (this.persistedDataManager = new v()),
- !0 !== e.rememberLastUsedCamera && this.persistedDataManager.reset()
- }
- return (
- (t.prototype.render = function(t, e) {
- var r = this
- ;(this.lastMatchFound = null),
- (this.qrCodeSuccessCallback = function(e, n) {
- if (t) t(e, n)
- else {
- if (r.lastMatchFound === e) return
- ;(r.lastMatchFound = e), r.setHeaderMessage(A.lastMatch(e), y.STATUS_SUCCESS)
- }
- }),
- (this.qrCodeErrorCallback = function(t, r) {
- e && e(t, r)
- })
- var n,
- i,
- o = document.getElementById(this.elementId)
- if (!o) throw 'HTML Element with id=' + this.elementId + ' not found'
- ;(o.innerHTML = ''),
- this.createBasicLayout(o),
- (this.html5Qrcode = new L(
- this.getScanRegionId(),
- ((n = this.config), (i = this.verbose), { formatsToSupport: n.formatsToSupport, experimentalFeatures: n.experimentalFeatures, verbose: i })
- ))
- }),
- (t.prototype.pause = function(t) {
- if (!this.html5Qrcode) throw 'Code scanner not initialized.'
- ;(g(t) || !0 !== t) && (t = !1), this.html5Qrcode.pause(t)
- }),
- (t.prototype.resume = function() {
- if (!this.html5Qrcode) throw 'Code scanner not initialized.'
- this.html5Qrcode.resume()
- }),
- (t.prototype.getState = function() {
- if (!this.html5Qrcode) throw 'Code scanner not initialized.'
- return this.html5Qrcode.getState()
- }),
- (t.prototype.clear = function() {
- var t = this,
- e = function() {
- var e = document.getElementById(t.elementId)
- e && ((e.innerHTML = ''), t.resetBasicLayout(e))
- }
- return this.html5Qrcode
- ? new Promise(function(r, n) {
- t.html5Qrcode
- ? t.html5Qrcode.isScanning
- ? t.html5Qrcode
- .stop()
- .then(function(n) {
- t.html5Qrcode ? (t.html5Qrcode.clear(), e(), r()) : r()
- })
- .catch(function(e) {
- t.verbose && t.logger.logError('Unable to stop qrcode scanner', e), n(e)
- })
- : (t.html5Qrcode.clear(), e())
- : r()
- })
- : Promise.resolve()
- }),
- (t.prototype.getRunningTrackCapabilities = function() {
- if (!this.html5Qrcode) throw 'Code scanner not initialized.'
- return this.html5Qrcode.getRunningTrackCapabilities()
- }),
- (t.prototype.applyVideoConstraints = function(t) {
- if (!this.html5Qrcode) throw 'Code scanner not initialized.'
- return this.html5Qrcode.applyVideoConstraints(t)
- }),
- (t.prototype.createConfig = function(t) {
- return t
- ? (t.fps || (t.fps = l.SCAN_DEFAULT_FPS),
- t.rememberLastUsedCamera !== !l.DEFAULT_REMEMBER_LAST_CAMERA_USED && (t.rememberLastUsedCamera = l.DEFAULT_REMEMBER_LAST_CAMERA_USED),
- t)
- : { fps: l.SCAN_DEFAULT_FPS, rememberLastUsedCamera: l.DEFAULT_REMEMBER_LAST_CAMERA_USED, supportedScanTypes: l.DEFAULT_SUPPORTED_SCAN_TYPE }
- }),
- (t.prototype.createBasicLayout = function(t) {
- ;(t.style.position = 'relative'), (t.style.padding = '0px'), (t.style.border = '1px solid silver'), this.createHeader(t)
- var e = document.createElement('div'),
- r = this.getScanRegionId()
- ;(e.id = r),
- (e.style.width = '100%'),
- (e.style.minHeight = '100px'),
- (e.style.textAlign = 'center'),
- t.appendChild(e),
- H.isCameraScanType(this.currentScanType) ? this.insertCameraScanImageToScanRegion() : this.insertFileScanImageToScanRegion()
- var n = document.createElement('div'),
- i = this.getDashboardId()
- ;(n.id = i), (n.style.width = '100%'), t.appendChild(n), this.setupInitialDashboard(n)
- }),
- (t.prototype.resetBasicLayout = function(t) {
- t.style.border = 'none'
- }),
- (t.prototype.setupInitialDashboard = function(t) {
- this.createSection(t), this.createSectionControlPanel(), this.scanTypeSelector.hasMoreThanOneScanType() && this.createSectionSwap()
- }),
- (t.prototype.createHeader = function(t) {
- var e = document.createElement('div')
- ;(e.style.textAlign = 'left'), (e.style.margin = '0px'), t.appendChild(e), new k().renderInto(e)
- var r = document.createElement('div')
- ;(r.id = this.getHeaderMessageContainerId()),
- (r.style.display = 'none'),
- (r.style.textAlign = 'center'),
- (r.style.fontSize = '14px'),
- (r.style.padding = '2px 10px'),
- (r.style.margin = '4px'),
- (r.style.borderTop = '1px solid #f6f6f6'),
- e.appendChild(r)
- }),
- (t.prototype.createSection = function(t) {
- var e = document.createElement('div')
- ;(e.id = this.getDashboardSectionId()), (e.style.width = '100%'), (e.style.padding = '10px 0px 10px 0px'), (e.style.textAlign = 'left'), t.appendChild(e)
- }),
- (t.prototype.createCameraListUi = function(t, e, r) {
- var n = this
- n.setHeaderMessage(A.cameraPermissionRequesting())
- var i = function() {
- r || n.createPermissionButton(t, e)
- }
- L.getCameras()
- .then(function(r) {
- n.persistedDataManager.setHasPermission(!0),
- n.resetHeaderMessage(),
- r && r.length > 0 ? (t.removeChild(e), n.renderCameraSelection(r)) : (n.setHeaderMessage(A.noCameraFound(), y.STATUS_WARNING), i())
- })
- .catch(function(t) {
- n.persistedDataManager.setHasPermission(!1), r ? (r.disabled = !1) : i(), n.setHeaderMessage(t, y.STATUS_WARNING)
- })
- }),
- (t.prototype.createPermissionButton = function(t, e) {
- var r = this,
- n = document.createElement('button')
- ;(n.id = this.getCameraPermissionButtonId()),
- (n.innerText = A.cameraPermissionTitle()),
- n.addEventListener('click', function() {
- ;(n.disabled = !0), r.createCameraListUi(t, e, n)
- }),
- e.appendChild(n)
- }),
- (t.prototype.createPermissionsUi = function(t, e) {
- var r = this
- H.isCameraScanType(this.currentScanType) && this.persistedDataManager.hasCameraPermissions()
- ? U.hasCameraPermissions()
- .then(function(n) {
- n ? r.createCameraListUi(t, e) : (r.persistedDataManager.setHasPermission(!1), r.createPermissionButton(t, e))
- })
- .catch(function(n) {
- r.persistedDataManager.setHasPermission(!1), r.createPermissionButton(t, e)
- })
- : this.createPermissionButton(t, e)
- }),
- (t.prototype.createSectionControlPanel = function() {
- var t = document.getElementById(this.getDashboardSectionId()),
- e = document.createElement('div')
- t.appendChild(e)
- var r = document.createElement('div')
- ;(r.id = this.getDashboardSectionCameraScanRegionId()), (r.style.display = H.isCameraScanType(this.currentScanType) ? 'block' : 'none'), e.appendChild(r)
- var n = document.createElement('div')
- ;(n.style.textAlign = 'center'), r.appendChild(n), this.scanTypeSelector.isCameraScanRequired() && this.createPermissionsUi(r, n), this.renderFileScanUi(e)
- }),
- (t.prototype.renderFileScanUi = function(t) {
- var e = this,
- r = document.createElement('div')
- ;(r.id = this.getDashboardSectionFileScanRegionId()),
- (r.style.textAlign = 'center'),
- (r.style.display = H.isCameraScanType(this.currentScanType) ? 'none' : 'block'),
- t.appendChild(r)
- var n = document.createElement('input')
- ;(n.id = this.getFileScanInputId()), (n.accept = 'image/*'), (n.type = 'file'), (n.style.width = '200px'), (n.disabled = H.isCameraScanType(this.currentScanType))
- var i = document.createElement('span')
- ;(i.innerText = ' Select Image'),
- r.appendChild(n),
- r.appendChild(i),
- n.addEventListener('change', function(t) {
- if (!e.html5Qrcode) throw 'html5Qrcode not defined'
- if (null != t && null != t.target && H.isFileScanType(e.currentScanType) && 0 !== t.target.files.length) {
- var r = t.target.files[0]
- e.html5Qrcode
- .scanFileV2(r, !0)
- .then(function(t) {
- e.resetHeaderMessage(), e.qrCodeSuccessCallback(t.decodedText, t)
- })
- .catch(function(t) {
- e.setHeaderMessage(t, y.STATUS_WARNING), e.qrCodeErrorCallback(t, u.createFrom(t))
- })
- }
- })
- }),
- (t.prototype.renderCameraSelection = function(t) {
- var e = this,
- r = this,
- n = document.getElementById(this.getDashboardSectionCameraScanRegionId())
- n.style.textAlign = 'center'
- var i = document.createElement('span')
- i.style.marginRight = '10px'
- var o = t.length,
- s = document.createElement('select')
- if (1 === o) s.style.display = 'none'
- else {
- var a = A.selectCamera()
- i.innerText = a + ' (' + t.length + ') '
- }
- s.id = this.getCameraSelectionId()
- for (var l = [], c = 0, h = t; c < h.length; c++) {
- var u = h[c],
- d = u.id,
- g = null == u.label ? d : u.label
- ;((_ = document.createElement('option')).value = d), (_.innerText = g), l.push(_), s.appendChild(_)
- }
- i.appendChild(s), n.appendChild(i)
- var f = document.createElement('span'),
- w = document.createElement('button')
- ;(w.innerText = A.scanButtonStartScanningText()), f.appendChild(w)
- var m = document.createElement('button')
- ;(m.innerText = A.scanButtonStopScanningText()), (m.style.display = 'none'), (m.disabled = !0), f.appendChild(m), n.appendChild(f)
- var E = function(t) {
- t || (w.style.display = 'none'), (w.innerText = A.scanButtonStartScanningText()), (w.style.opacity = '1'), (w.disabled = !1), t && (w.style.display = 'inline-block')
- }
- if (
- (w.addEventListener('click', function(t) {
- ;(w.innerText = A.scanButtonScanningStarting()),
- (s.disabled = !0),
- (w.disabled = !0),
- (w.style.opacity = '0.5'),
- e.scanTypeSelector.hasMoreThanOneScanType() && r.showHideScanTypeSwapLink(!1),
- r.resetHeaderMessage()
- var n,
- i = s.value
- r.persistedDataManager.setLastUsedCameraId(i),
- r.html5Qrcode
- .start(
- i,
- ((n = r.config), { fps: n.fps, qrbox: n.qrbox, aspectRatio: n.aspectRatio, disableFlip: n.disableFlip, videoConstraints: n.videoConstraints }),
- r.qrCodeSuccessCallback,
- r.qrCodeErrorCallback
- )
- .then(function(t) {
- ;(m.disabled = !1), (m.style.display = 'inline-block'), E(!1)
- })
- .catch(function(t) {
- r.showHideScanTypeSwapLink(!0), (s.disabled = !1), E(!0), r.setHeaderMessage(t, y.STATUS_WARNING)
- })
- }),
- 1 === o && w.click(),
- m.addEventListener('click', function(t) {
- if (!r.html5Qrcode) throw 'html5Qrcode not defined'
- ;(m.disabled = !0),
- r.html5Qrcode
- .stop()
- .then(function(t) {
- e.scanTypeSelector.hasMoreThanOneScanType() && r.showHideScanTypeSwapLink(!0),
- (s.disabled = !1),
- (w.disabled = !1),
- (m.style.display = 'none'),
- (w.style.display = 'inline-block'),
- r.insertCameraScanImageToScanRegion()
- })
- .catch(function(t) {
- ;(m.disabled = !1), r.setHeaderMessage(t, y.STATUS_WARNING)
- })
- }),
- r.persistedDataManager.getLastUsedCameraId())
- ) {
- for (var C = r.persistedDataManager.getLastUsedCameraId(), I = !1, p = 0, S = l; p < S.length; p++) {
- var _
- if ((_ = S[p]).value === C) {
- I = !0
- break
- }
- }
- I ? ((s.value = C), w.click()) : r.persistedDataManager.resetLastUsedCameraId()
- }
- }),
- (t.prototype.createSectionSwap = function() {
- var t = this,
- e = A.textIfCameraScanSelected(),
- r = A.textIfFileScanSelected(),
- n = document.getElementById(this.getDashboardSectionId()),
- o = document.createElement('div')
- o.style.textAlign = 'center'
- var s = document.createElement('a')
- ;(s.style.textDecoration = 'underline'),
- (s.id = this.getDashboardSectionSwapLinkId()),
- (s.innerText = H.isCameraScanType(this.currentScanType) ? e : r),
- s.addEventListener('click', function() {
- t.sectionSwapAllowed
- ? (t.resetHeaderMessage(),
- (t.getFileScanInput().value = ''),
- (t.sectionSwapAllowed = !1),
- H.isCameraScanType(t.currentScanType)
- ? (t.clearScanRegion(),
- (t.getFileScanInput().disabled = !1),
- (t.getCameraScanRegion().style.display = 'none'),
- (t.getFileScanRegion().style.display = 'block'),
- (s.innerText = r),
- (t.currentScanType = i.SCAN_TYPE_FILE),
- t.insertFileScanImageToScanRegion())
- : (t.clearScanRegion(),
- (t.getFileScanInput().disabled = !0),
- (t.getCameraScanRegion().style.display = 'block'),
- (t.getFileScanRegion().style.display = 'none'),
- (s.innerText = e),
- (t.currentScanType = i.SCAN_TYPE_CAMERA),
- t.insertCameraScanImageToScanRegion(),
- t.startCameraScanIfPermissionExistsOnSwap()),
- (t.sectionSwapAllowed = !0))
- : t.verbose && t.logger.logError('Section swap called when not allowed')
- }),
- o.appendChild(s),
- n.appendChild(o)
- }),
- (t.prototype.startCameraScanIfPermissionExistsOnSwap = function() {
- var t = this,
- e = this
- this.persistedDataManager.hasCameraPermissions() &&
- U.hasCameraPermissions()
- .then(function(r) {
- if (r) {
- var n = document.getElementById(e.getCameraPermissionButtonId())
- if (!n) throw (t.logger.logError('Permission button not found, fail;'), 'Permission button not found')
- n.click()
- } else e.persistedDataManager.setHasPermission(!1)
- })
- .catch(function(t) {
- e.persistedDataManager.setHasPermission(!1)
- })
- }),
- (t.prototype.resetHeaderMessage = function() {
- document.getElementById(this.getHeaderMessageContainerId()).style.display = 'none'
- }),
- (t.prototype.setHeaderMessage = function(t, e) {
- e || (e = y.STATUS_DEFAULT)
- var r = this.getHeaderMessageDiv()
- switch (((r.innerText = t), (r.style.display = 'block'), e)) {
- case y.STATUS_SUCCESS:
- ;(r.style.background = '#6aaf5042'), (r.style.color = '#477735')
- break
- case y.STATUS_WARNING:
- ;(r.style.background = '#cb243124'), (r.style.color = '#cb2431')
- break
- case y.STATUS_DEFAULT:
- default:
- ;(r.style.background = '#00000000'), (r.style.color = 'rgb(17, 17, 17)')
- }
- }),
- (t.prototype.showHideScanTypeSwapLink = function(t) {
- !0 !== t && (t = !1), (this.sectionSwapAllowed = t), (this.getDashboardSectionSwapLink().style.display = t ? 'inline-block' : 'none')
- }),
- (t.prototype.insertCameraScanImageToScanRegion = function() {
- var t = this,
- e = document.getElementById(this.getScanRegionId())
- if (this.cameraScanImage) return (e.innerHTML = '<br>'), void e.appendChild(this.cameraScanImage)
- ;(this.cameraScanImage = new Image()),
- (this.cameraScanImage.onload = function(r) {
- ;(e.innerHTML = '<br>'), e.appendChild(t.cameraScanImage)
- }),
- (this.cameraScanImage.width = 64),
- (this.cameraScanImage.style.opacity = '0.8'),
- (this.cameraScanImage.src =
- 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzNzEuNjQzIDM3MS42NDMiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDM3MS42NDMgMzcxLjY0MyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHBhdGggZD0iTTEwNS4wODQgMzguMjcxaDE2My43Njh2MjBIMTA1LjA4NHoiLz48cGF0aCBkPSJNMzExLjU5NiAxOTAuMTg5Yy03LjQ0MS05LjM0Ny0xOC40MDMtMTYuMjA2LTMyLjc0My0yMC41MjJWMzBjMC0xNi41NDItMTMuNDU4LTMwLTMwLTMwSDEyNS4wODRjLTE2LjU0MiAwLTMwIDEzLjQ1OC0zMCAzMHYxMjAuMTQzaC04LjI5NmMtMTYuNTQyIDAtMzAgMTMuNDU4LTMwIDMwdjEuMzMzYTI5LjgwNCAyOS44MDQgMCAwIDAgNC42MDMgMTUuOTM5Yy03LjM0IDUuNDc0LTEyLjEwMyAxNC4yMjEtMTIuMTAzIDI0LjA2MXYxLjMzM2MwIDkuODQgNC43NjMgMTguNTg3IDEyLjEwMyAyNC4wNjJhMjkuODEgMjkuODEgMCAwIDAtNC42MDMgMTUuOTM4djEuMzMzYzAgMTYuNTQyIDEzLjQ1OCAzMCAzMCAzMGg4LjMyNGMuNDI3IDExLjYzMSA3LjUwMyAyMS41ODcgMTcuNTM0IDI2LjE3Ny45MzEgMTAuNTAzIDQuMDg0IDMwLjE4NyAxNC43NjggNDUuNTM3YTkuOTg4IDkuOTg4IDAgMCAwIDguMjE2IDQuMjg4IDkuOTU4IDkuOTU4IDAgMCAwIDUuNzA0LTEuNzkzYzQuNTMzLTMuMTU1IDUuNjUtOS4zODggMi40OTUtMTMuOTIxLTYuNzk4LTkuNzY3LTkuNjAyLTIyLjYwOC0xMC43Ni0zMS40aDgyLjY4NWMuMjcyLjQxNC41NDUuODE4LjgxNSAxLjIxIDMuMTQyIDQuNTQxIDkuMzcyIDUuNjc5IDEzLjkxMyAyLjUzNCA0LjU0Mi0zLjE0MiA1LjY3Ny05LjM3MSAyLjUzNS0xMy45MTMtMTEuOTE5LTE3LjIyOS04Ljc4Ny0zNS44ODQgOS41ODEtNTcuMDEyIDMuMDY3LTIuNjUyIDEyLjMwNy0xMS43MzIgMTEuMjE3LTI0LjAzMy0uODI4LTkuMzQzLTcuMTA5LTE3LjE5NC0xOC42NjktMjMuMzM3YTkuODU3IDkuODU3IDAgMCAwLTEuMDYxLS40ODZjLS40NjYtLjE4Mi0xMS40MDMtNC41NzktOS43NDEtMTUuNzA2IDEuMDA3LTYuNzM3IDE0Ljc2OC04LjI3MyAyMy43NjYtNy42NjYgMjMuMTU2IDEuNTY5IDM5LjY5OCA3LjgwMyA0Ny44MzYgMTguMDI2IDUuNzUyIDcuMjI1IDcuNjA3IDE2LjYyMyA1LjY3MyAyOC43MzMtLjQxMyAyLjU4NS0uODI0IDUuMjQxLTEuMjQ1IDcuOTU5LTUuNzU2IDM3LjE5NC0xMi45MTkgODMuNDgzLTQ5Ljg3IDExNC42NjEtNC4yMjEgMy41NjEtNC43NTYgOS44Ny0xLjE5NCAxNC4wOTJhOS45OCA5Ljk4IDAgMCAwIDcuNjQ4IDMuNTUxIDkuOTU1IDkuOTU1IDAgMCAwIDYuNDQ0LTIuMzU4YzQyLjY3Mi0zNi4wMDUgNTAuODAyLTg4LjUzMyA1Ni43MzctMTI2Ljg4OC40MTUtMi42ODQuODIxLTUuMzA5IDEuMjI5LTcuODYzIDIuODM0LTE3LjcyMS0uNDU1LTMyLjY0MS05Ljc3Mi00NC4zNDV6bS0yMzIuMzA4IDQyLjYyYy01LjUxNCAwLTEwLTQuNDg2LTEwLTEwdi0xLjMzM2MwLTUuNTE0IDQuNDg2LTEwIDEwLTEwaDE1djIxLjMzM2gtMTV6bS0yLjUtNTIuNjY2YzAtNS41MTQgNC40ODYtMTAgMTAtMTBoNy41djIxLjMzM2gtNy41Yy01LjUxNCAwLTEwLTQuNDg2LTEwLTEwdi0xLjMzM3ptMTcuNSA5My45OTloLTcuNWMtNS41MTQgMC0xMC00LjQ4Ni0xMC0xMHYtMS4zMzNjMC01LjUxNCA0LjQ4Ni0xMCAxMC0xMGg3LjV2MjEuMzMzem0zMC43OTYgMjguODg3Yy01LjUxNCAwLTEwLTQuNDg2LTEwLTEwdi04LjI3MWg5MS40NTdjLS44NTEgNi42NjgtLjQzNyAxMi43ODcuNzMxIDE4LjI3MWgtODIuMTg4em03OS40ODItMTEzLjY5OGMtMy4xMjQgMjAuOTA2IDEyLjQyNyAzMy4xODQgMjEuNjI1IDM3LjA0IDUuNDQxIDIuOTY4IDcuNTUxIDUuNjQ3IDcuNzAxIDcuMTg4LjIxIDIuMTUtMi41NTMgNS42ODQtNC40NzcgNy4yNTEtLjQ4Mi4zNzgtLjkyOS44LTEuMzM1IDEuMjYxLTYuOTg3IDcuOTM2LTExLjk4MiAxNS41Mi0xNS40MzIgMjIuNjg4aC05Ny41NjRWMzBjMC01LjUxNCA0LjQ4Ni0xMCAxMC0xMGgxMjMuNzY5YzUuNTE0IDAgMTAgNC40ODYgMTAgMTB2MTM1LjU3OWMtMy4wMzItLjM4MS02LjE1LS42OTQtOS4zODktLjkxNC0yNS4xNTktMS42OTQtNDIuMzcgNy43NDgtNDQuODk4IDI0LjY2NnoiLz48cGF0aCBkPSJNMTc5LjEyOSA4My4xNjdoLTI0LjA2YTUgNSAwIDAgMC01IDV2MjQuMDYxYTUgNSAwIDAgMCA1IDVoMjQuMDZhNSA1IDAgMCAwIDUtNVY4OC4xNjdhNSA1IDAgMCAwLTUtNXpNMTcyLjYyOSAxNDIuODZoLTEyLjU2VjEzMC44YTUgNSAwIDEgMC0xMCAwdjE3LjA2MWE1IDUgMCAwIDAgNSA1aDE3LjU2YTUgNSAwIDEgMCAwLTEwLjAwMXpNMjE2LjU2OCA4My4xNjdoLTI0LjA2YTUgNSAwIDAgMC01IDV2MjQuMDYxYTUgNSAwIDAgMCA1IDVoMjQuMDZhNSA1IDAgMCAwIDUtNVY4OC4xNjdhNSA1IDAgMCAwLTUtNXptLTUgMjQuMDYxaC0xNC4wNlY5My4xNjdoMTQuMDZ2MTQuMDYxek0yMTEuNjY5IDEyNS45MzZIMTk3LjQxYTUgNSAwIDAgMC01IDV2MTQuMjU3YTUgNSAwIDAgMCA1IDVoMTQuMjU5YTUgNSAwIDAgMCA1LTV2LTE0LjI1N2E1IDUgMCAwIDAtNS01eiIvPjwvc3ZnPg==')
- }),
- (t.prototype.insertFileScanImageToScanRegion = function() {
- var t = this,
- e = document.getElementById(this.getScanRegionId())
- if (this.fileScanImage) return (e.innerHTML = '<br>'), void e.appendChild(this.fileScanImage)
- ;(this.fileScanImage = new Image()),
- (this.fileScanImage.onload = function(r) {
- ;(e.innerHTML = '<br>'), e.appendChild(t.fileScanImage)
- }),
- (this.fileScanImage.width = 64),
- (this.fileScanImage.style.opacity = '0.8'),
- (this.fileScanImage.src =
- 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1OS4wMTggNTkuMDE4IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1OS4wMTggNTkuMDE4IiB4bWw6c3BhY2U9InByZXNlcnZlIj48cGF0aCBkPSJtNTguNzQxIDU0LjgwOS01Ljk2OS02LjI0NGExMC43NCAxMC43NCAwIDAgMCAyLjgyLTcuMjVjMC01Ljk1My00Ljg0My0xMC43OTYtMTAuNzk2LTEwLjc5NlMzNCAzNS4zNjEgMzQgNDEuMzE0IDM4Ljg0MyA1Mi4xMSA0NC43OTYgNTIuMTFjMi40NDEgMCA0LjY4OC0uODI0IDYuNDk5LTIuMTk2bDYuMDAxIDYuMjc3YS45OTguOTk4IDAgMCAwIDEuNDE0LjAzMiAxIDEgMCAwIDAgLjAzMS0xLjQxNHpNMzYgNDEuMzE0YzAtNC44NSAzLjk0Ni04Ljc5NiA4Ljc5Ni04Ljc5NnM4Ljc5NiAzLjk0NiA4Ljc5NiA4Ljc5Ni0zLjk0NiA4Ljc5Ni04Ljc5NiA4Ljc5NlMzNiA0Ni4xNjQgMzYgNDEuMzE0ek0xMC40MzEgMTYuMDg4YzAgMy4wNyAyLjQ5OCA1LjU2OCA1LjU2OSA1LjU2OHM1LjU2OS0yLjQ5OCA1LjU2OS01LjU2OGMwLTMuMDcxLTIuNDk4LTUuNTY5LTUuNTY5LTUuNTY5cy01LjU2OSAyLjQ5OC01LjU2OSA1LjU2OXptOS4xMzggMGMwIDEuOTY4LTEuNjAyIDMuNTY4LTMuNTY5IDMuNTY4cy0zLjU2OS0xLjYwMS0zLjU2OS0zLjU2OCAxLjYwMi0zLjU2OSAzLjU2OS0zLjU2OSAzLjU2OSAxLjYwMSAzLjU2OSAzLjU2OXoiLz48cGF0aCBkPSJtMzAuODgyIDI4Ljk4NyA5LjE4LTEwLjA1NCAxMS4yNjIgMTAuMzIzYTEgMSAwIDAgMCAxLjM1MS0xLjQ3NWwtMTItMTFhMSAxIDAgMCAwLTEuNDE0LjA2M2wtOS43OTQgMTAuNzI3LTQuNzQzLTQuNzQzYTEuMDAzIDEuMDAzIDAgMCAwLTEuMzY4LS4wNDRMNi4zMzkgMzcuNzY4YTEgMSAwIDEgMCAxLjMyMiAxLjUwMWwxNi4zMTMtMTQuMzYyIDcuMzE5IDcuMzE4YS45OTkuOTk5IDAgMSAwIDEuNDE0LTEuNDE0bC0xLjgyNS0xLjgyNHoiLz48cGF0aCBkPSJNMzAgNDYuNTE4SDJ2LTQyaDU0djI4YTEgMSAwIDEgMCAyIDB2LTI5YTEgMSAwIDAgMC0xLTFIMWExIDEgMCAwIDAtMSAxdjQ0YTEgMSAwIDAgMCAxIDFoMjlhMSAxIDAgMSAwIDAtMnoiLz48L3N2Zz4=')
- }),
- (t.prototype.clearScanRegion = function() {
- document.getElementById(this.getScanRegionId()).innerHTML = ''
- }),
- (t.prototype.getDashboardSectionId = function() {
- return this.elementId + '__dashboard_section'
- }),
- (t.prototype.getDashboardSectionCameraScanRegionId = function() {
- return this.elementId + '__dashboard_section_csr'
- }),
- (t.prototype.getDashboardSectionFileScanRegionId = function() {
- return this.elementId + '__dashboard_section_fsr'
- }),
- (t.prototype.getDashboardSectionSwapLinkId = function() {
- return this.elementId + '__dashboard_section_swaplink'
- }),
- (t.prototype.getScanRegionId = function() {
- return this.elementId + '__scan_region'
- }),
- (t.prototype.getDashboardId = function() {
- return this.elementId + '__dashboard'
- }),
- (t.prototype.getFileScanInputId = function() {
- return this.elementId + '__filescan_input'
- }),
- (t.prototype.getStatusSpanId = function() {
- return this.elementId + '__status_span'
- }),
- (t.prototype.getHeaderMessageContainerId = function() {
- return this.elementId + '__header_message'
- }),
- (t.prototype.getCameraSelectionId = function() {
- return this.elementId + '__camera_selection'
- }),
- (t.prototype.getCameraPermissionButtonId = function() {
- return this.elementId + '__camera_permission_button'
- }),
- (t.prototype.getCameraScanRegion = function() {
- return document.getElementById(this.getDashboardSectionCameraScanRegionId())
- }),
- (t.prototype.getFileScanRegion = function() {
- return document.getElementById(this.getDashboardSectionFileScanRegionId())
- }),
- (t.prototype.getFileScanInput = function() {
- return document.getElementById(this.getFileScanInputId())
- }),
- (t.prototype.getDashboardSectionSwapLink = function() {
- return document.getElementById(this.getDashboardSectionSwapLinkId())
- }),
- (t.prototype.getHeaderMessageDiv = function() {
- return document.getElementById(this.getHeaderMessageContainerId())
- }),
- t
- )
- })()
- })(),
- (__Html5QrcodeLibrary__ = n)
- })() /** Append the libary components to globals for backwards compatibility. */
- if (window) {
- if (!Html5QrcodeScanner) {
- var Html5QrcodeScanner = __Html5QrcodeLibrary__.Html5QrcodeScanner
- }
- if (!Html5Qrcode) {
- var Html5Qrcode = __Html5QrcodeLibrary__.Html5Qrcode
- }
- if (!Html5QrcodeSupportedFormats) {
- var Html5QrcodeSupportedFormats = __Html5QrcodeLibrary__.Html5QrcodeSupportedFormats
- }
- if (!Html5QrcodeScannerState) {
- var Html5QrcodeScannerState = __Html5QrcodeLibrary__.Html5QrcodeScannerState
- }
- if (!Html5QrcodeScanType) {
- var Html5QrcodeScanType = __Html5QrcodeLibrary__.Html5QrcodeScanType
- }
- }
- export { Html5QrcodeScanner, Html5Qrcode, Html5QrcodeSupportedFormats, Html5QrcodeScannerState, Html5QrcodeScanType }
|