id-scanner-lib 1.2.2 → 1.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +375 -363
- package/dist/id-scanner-core.esm.js +427 -221
- package/dist/id-scanner-core.esm.js.map +1 -1
- package/dist/id-scanner-core.js +427 -221
- package/dist/id-scanner-core.js.map +1 -1
- package/dist/id-scanner-core.min.js +1 -9
- package/dist/id-scanner-core.min.js.map +1 -1
- package/dist/id-scanner-ocr.esm.js +451 -276
- package/dist/id-scanner-ocr.esm.js.map +1 -1
- package/dist/id-scanner-ocr.js +451 -276
- package/dist/id-scanner-ocr.js.map +1 -1
- package/dist/id-scanner-ocr.min.js +1 -9
- package/dist/id-scanner-ocr.min.js.map +1 -1
- package/dist/id-scanner-qr.esm.js +483 -233
- package/dist/id-scanner-qr.esm.js.map +1 -1
- package/dist/id-scanner-qr.js +482 -232
- package/dist/id-scanner-qr.js.map +1 -1
- package/dist/id-scanner-qr.min.js +1 -9
- package/dist/id-scanner-qr.min.js.map +1 -1
- package/dist/id-scanner.js +2138 -358
- package/dist/id-scanner.js.map +1 -1
- package/dist/id-scanner.min.js +1 -9
- package/dist/id-scanner.min.js.map +1 -1
- package/package.json +27 -7
- package/src/demo/demo.ts +178 -62
- package/src/id-recognition/anti-fake-detector.ts +317 -0
- package/src/id-recognition/id-detector.ts +184 -155
- package/src/id-recognition/ocr-processor.ts +193 -146
- package/src/id-recognition/ocr-worker.ts +82 -72
- package/src/index-umd.ts +347 -110
- package/src/index.ts +866 -91
- package/src/ocr-module.ts +108 -60
- package/src/qr-module.ts +104 -54
- package/src/scanner/barcode-scanner.ts +145 -58
- package/src/scanner/qr-scanner.ts +86 -47
- package/src/utils/image-processing.ts +479 -294
- package/dist/core.d.ts +0 -77
- package/dist/demo/demo.d.ts +0 -14
- package/dist/id-recognition/data-extractor.d.ts +0 -105
- package/dist/id-recognition/id-detector.d.ts +0 -100
- package/dist/id-recognition/ocr-processor.d.ts +0 -64
- package/dist/id-scanner.esm.js +0 -94656
- package/dist/id-scanner.esm.js.map +0 -1
- package/dist/index-umd.d.ts +0 -96
- package/dist/index.d.ts +0 -78
- package/dist/ocr-module.d.ts +0 -67
- package/dist/qr-module.d.ts +0 -68
- package/dist/scanner/barcode-scanner.d.ts +0 -90
- package/dist/scanner/qr-scanner.d.ts +0 -80
- package/dist/types/core.d.ts +0 -77
- package/dist/types/demo/demo.d.ts +0 -14
- package/dist/types/id-recognition/data-extractor.d.ts +0 -105
- package/dist/types/id-recognition/id-detector.d.ts +0 -100
- package/dist/types/id-recognition/ocr-processor.d.ts +0 -64
- package/dist/types/index-umd.d.ts +0 -96
- package/dist/types/index.d.ts +0 -78
- package/dist/types/ocr-module.d.ts +0 -67
- package/dist/types/qr-module.d.ts +0 -68
- package/dist/types/scanner/barcode-scanner.d.ts +0 -90
- package/dist/types/scanner/qr-scanner.d.ts +0 -80
- package/dist/types/utils/camera.d.ts +0 -81
- package/dist/types/utils/image-processing.d.ts +0 -75
- package/dist/types/utils/types.d.ts +0 -65
- package/dist/utils/camera.d.ts +0 -81
- package/dist/utils/image-processing.d.ts +0 -75
- package/dist/utils/types.d.ts +0 -65
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"id-scanner.min.js","sources":["../src/utils/camera.ts","../src/scanner/qr-scanner.ts","../src/utils/image-processing.ts","../src/scanner/barcode-scanner.ts","../src/utils/performance.ts","../src/id-recognition/id-detector.ts","../src/id-recognition/ocr-worker.ts","../src/id-recognition/ocr-processor.ts","../src/utils/worker.ts","../src/id-recognition/data-extractor.ts","../src/index-umd.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null],"names":["Camera","constructor","options","this","stream","videoElement","width","height","facingMode","start","initialize","stop","release","constraints","video","ideal","navigator","mediaDevices","getUserMedia","srcObject","Promise","resolve","onloadedmetadata","play","then","error","console","Error","captureFrame","canvas","document","createElement","videoWidth","videoHeight","context","getContext","drawImage","getImageData","getTracks","forEach","track","QRScanner","scanning","scanTimer","scanInterval","camera","scan","onError","String","imageData","code","jsQR","data","onScan","window","setTimeout","clearTimeout","ImageProcessor","imageDataToCanvas","ctx","putImageData","canvasToImageData","adjustBrightnessContrast","brightness","contrast","imgData","factor","i","length","truncate","value","Math","min","max","toGrayscale","avg","resize","newWidth","newHeight","tempCanvas","downsampleForProcessing","maxDimension","scale","round","imageDataToBase64","toDataURL","base64ToImageData","base64","reject","img","Image","onload","onerror","src","processImageInParallel","processingFunction","chunks","Worker","resultCanvas","resultCtx","isWide","chunkSize","floor","promises","chunkCanvas","chunkCtx","chunkImageData","startX","startY","workerCode","toString","blob","Blob","type","workerUrl","URL","createObjectURL","worker","promise","onmessage","e","terminate","revokeObjectURL","postMessage","index","buffer","push","results","all","sort","a","b","result","BarcodeScanner","enhancedImage","detectBarcode","log","random","mockResult","LRUCache","maxSize","cache","Map","get","key","has","delete","set","size","oldestKey","keys","next","undefined","clear","calculateImageFingerprint","tempCtx","smallImgData","grayValues","r","g","gray","reduce","sum","val","fingerprint","IDCardDetector","detecting","detectTimer","frameCount","lastDetectionTime","onDetected","detectionInterval","maxImageDimension","enableCache","cacheSize","logger","onDetection","resultCache","throttledDetect","fn","delay","lastCall","timeoutId","args","now","Date","remaining","apply","throttle","performDetection","bind","detect","cancelAnimationFrame","requestAnimationFrame","performance","frame","cachedResult","updatedResult","downsampledFrame","detectIDCard","success","detectionResult","message","rectWidth","rectHeight","rectX","rectY","corners","x","y","boundingBox","croppedImage","confidence","clearCache","dispose","async","processOCRInWorker","input","startTime","createWorker","import","tessWorkerOptions","m","load","loadLanguage","setParameters","tessedit_char_whitelist","recognize","imageBase64","idCardInfo","text","info","lines","split","filter","line","trim","idNumberRegex","idNumberMatch","match","idNumber","includes","test","name","replace","genderNationalityRegex","genderMatch","gender","nationalityText","nationality","substring","indexOf","birthDateRegex","birthDateMatch","birthDate","addressRegex","addressMatch","address","authorityRegex","authorityMatch","issuingAuthority","validPeriodRegex","validPeriodMatch","validPeriod","parseIDCardText","processingTime","OCRProcessor","ocrWorker","initialized","useWorker","workerFunction","promiseMap","messageCounter","id","promiseHandlers","workerError","stack","createCustomWorker","processIDCard","downsampledImage","base64Image","toFixed","DataExtractor","validateIDNumber","year","parseInt","substr","month","day","date","getFullYear","getMonth","getDate","extractBirthDateFromID","extractGenderFromID","charAt","extractRegionFromID","enhanceIDCardInfo","ocrInfo","extractAndValidate","enhancedInfo","normalizeIDNumber","normalizeDate","normalizeAddress","toUpperCase","sexCode","qrScanner","barcodeScanner","idDetector","ocrProcessor","dataExtractor","scanMode","cameraOptions","handleError","startQRScanner","qrScannerOptions","handleQRScan","startBarcodeScanner","barcodeScannerOptions","handleBarcodeScan","startIDCardScanner","handleIDDetection","onQRCodeScanned","onBarcodeScanned","extractedInfo","onIDCardScanned"],"mappings":"4UA6CaA,EAQX,WAAAC,CAAoBC,EAAyB,IAAzBC,KAAOD,QAAPA,EAPZC,KAAMC,OAAuB,KAC7BD,KAAYE,aAA4B,KAO9CF,KAAKD,QAAU,CACbI,MAAO,IACPC,OAAQ,IACRC,WAAY,iBACTN,GASP,WAAMO,CAAMJ,GACV,OAAOF,KAAKO,WAAWL,GAMzB,IAAAM,GACER,KAAKS,UAUP,gBAAMF,CAAWL,GACfF,KAAKE,aAAeA,EAEpB,IAEE,MAAMQ,EAAsC,CAC1CC,MAAO,CACLR,MAAO,CAAES,MAAOZ,KAAKD,QAAQI,OAC7BC,OAAQ,CAAEQ,MAAOZ,KAAKD,QAAQK,QAC9BC,WAAYL,KAAKD,QAAQM,aAK7BL,KAAKC,aAAeY,UAAUC,aAAaC,aAAaL,GAGpDV,KAAKE,eACPF,KAAKE,aAAac,UAAYhB,KAAKC,aAC7B,IAAIgB,SAAeC,IACnBlB,KAAKE,eACPF,KAAKE,aAAaiB,iBAAmB,KAC/BnB,KAAKE,cACPF,KAAKE,aAAakB,OAAOC,MAAK,IAAMH,YAM9C,MAAOI,GAEP,MADAC,QAAQD,MAAM,WAAYA,GACpB,IAAIE,MAAM,2CASpB,YAAAC,GACE,IAAKzB,KAAKE,aACR,OAAO,KAIT,MAAMwB,EAASC,SAASC,cAAc,UACtCF,EAAOvB,MAAQH,KAAKE,aAAa2B,WACjCH,EAAOtB,OAASJ,KAAKE,aAAa4B,YAElC,MAAMC,EAAUL,EAAOM,WAAW,MAClC,OAAKD,GAKLA,EAAQE,UAAUjC,KAAKE,aAAc,EAAG,EAAGwB,EAAOvB,MAAOuB,EAAOtB,QAGzD2B,EAAQG,aAAa,EAAG,EAAGR,EAAOvB,MAAOuB,EAAOtB,SAP9C,KAaX,OAAAK,GAEMT,KAAKC,SACPD,KAAKC,OAAOkC,YAAYC,SAAQC,GAASA,EAAM7B,SAC/CR,KAAKC,OAAS,MAIZD,KAAKE,eACPF,KAAKE,aAAac,UAAY,KAC9BhB,KAAKE,aAAe,aC/GboC,EAUX,WAAAxC,CAAoBC,EAA4B,IAA5BC,KAAOD,QAAPA,EARZC,KAAQuC,UAAG,EACXvC,KAASwC,UAAkB,KAQjCxC,KAAKD,QAAU,CACb0C,aAAc,OACX1C,GAGLC,KAAK0C,OAAS,IAAI7C,EAYpB,WAAMS,CAAMJ,GACV,UACQF,KAAK0C,OAAOnC,WAAWL,GAC7BF,KAAKuC,UAAW,EAChBvC,KAAK2C,OACL,MAAOrB,GACHtB,KAAKD,QAAQ6C,SACf5C,KAAKD,QAAQ6C,QAAQtB,aAAiBE,MAAQF,EAAQ,IAAIE,MAAMqB,OAAOvB,MAYrE,IAAAqB,GACN,IAAK3C,KAAKuC,SAAU,OAEpB,MAAMO,EAAY9C,KAAK0C,OAAOjB,eAE9B,GAAIqB,EAAW,CACb,MAAMC,EAAOC,EAAKF,EAAUG,KAAMH,EAAU3C,MAAO2C,EAAU1C,QAEzD2C,GAAQ/C,KAAKD,QAAQmD,QACvBlD,KAAKD,QAAQmD,OAAOH,EAAKE,MAI7BjD,KAAKwC,UAAYW,OAAOC,YAAW,IAAMpD,KAAK2C,QAAQ3C,KAAKD,QAAQ0C,cAQrE,IAAAjC,GACER,KAAKuC,UAAW,EAEZvC,KAAKwC,YACPa,aAAarD,KAAKwC,WAClBxC,KAAKwC,UAAY,MAGnBxC,KAAK0C,OAAOjC,iBCpGH6C,EAOX,wBAAOC,CAAkBT,GACvB,MAAMpB,EAASC,SAASC,cAAc,UACtCF,EAAOvB,MAAQ2C,EAAU3C,MACzBuB,EAAOtB,OAAS0C,EAAU1C,OAC1B,MAAMoD,EAAM9B,EAAOM,WAAW,MAM9B,OAJIwB,GACFA,EAAIC,aAAaX,EAAW,EAAG,GAG1BpB,EAST,wBAAOgC,CAAkBhC,GACvB,MAAM8B,EAAM9B,EAAOM,WAAW,MAC9B,OAAOwB,EAAMA,EAAItB,aAAa,EAAG,EAAGR,EAAOvB,MAAOuB,EAAOtB,QAAU,KAWrE,+BAAOuD,CAAyBb,EAAsBc,EAAqB,EAAGC,EAAmB,GAC/F,MAAMnC,EAAS1B,KAAKuD,kBAAkBT,GAChCU,EAAM9B,EAAOM,WAAW,MAE9B,GAAIwB,EAAK,CACP,MAAMM,EAAUN,EAAItB,aAAa,EAAG,EAAGR,EAAOvB,MAAOuB,EAAOtB,QACtD6C,EAAOa,EAAQb,KAGfc,EAAU,KAAOF,EAAW,MAAS,KAAO,IAAMA,IAExD,IAAK,IAAIG,EAAI,EAAGA,EAAIf,EAAKgB,OAAQD,GAAK,EAEpCf,EAAKe,GAAKhE,KAAKkE,SAASH,GAAUd,EAAKe,GAAK,KAAO,IAAMJ,GAEzDX,EAAKe,EAAI,GAAKhE,KAAKkE,SAASH,GAAUd,EAAKe,EAAI,GAAK,KAAO,IAAMJ,GAEjEX,EAAKe,EAAI,GAAKhE,KAAKkE,SAASH,GAAUd,EAAKe,EAAI,GAAK,KAAO,IAAMJ,GAKnE,OADAJ,EAAIC,aAAaK,EAAS,EAAG,GACtBA,EAGT,OAAOhB,EAUD,eAAOoB,CAASC,GACtB,OAAOC,KAAKC,IAAI,IAAKD,KAAKE,IAAI,EAAGH,IAWnC,kBAAOI,CAAYzB,GACjB,MAAMpB,EAAS1B,KAAKuD,kBAAkBT,GAChCU,EAAM9B,EAAOM,WAAW,MAE9B,GAAIwB,EAAK,CACP,MAAMM,EAAUN,EAAItB,aAAa,EAAG,EAAGR,EAAOvB,MAAOuB,EAAOtB,QACtD6C,EAAOa,EAAQb,KAErB,IAAK,IAAIe,EAAI,EAAGA,EAAIf,EAAKgB,OAAQD,GAAK,EAAG,CACvC,MAAMQ,GAAOvB,EAAKe,GAAKf,EAAKe,EAAI,GAAKf,EAAKe,EAAI,IAAM,EACpDf,EAAKe,GAAKQ,EACVvB,EAAKe,EAAI,GAAKQ,EACdvB,EAAKe,EAAI,GAAKQ,EAKhB,OADAhB,EAAIC,aAAaK,EAAS,EAAG,GACtBA,EAGT,OAAOhB,EAWT,aAAO2B,CAAO3B,EAAsB4B,EAAkBC,GACpD,MAAMjD,EAASC,SAASC,cAAc,UACtCF,EAAOvB,MAAQuE,EACfhD,EAAOtB,OAASuE,EAChB,MAAMnB,EAAM9B,EAAOM,WAAW,MAE9B,GAAIwB,EAAK,CACP,MAAMoB,EAAa5E,KAAKuD,kBAAkBT,GAE1C,OADAU,EAAIvB,UAAU2C,EAAY,EAAG,EAAG9B,EAAU3C,MAAO2C,EAAU1C,OAAQ,EAAG,EAAGsE,EAAUC,GAC5EnB,EAAItB,aAAa,EAAG,EAAGwC,EAAUC,GAG1C,OAAO7B,EAYT,8BAAO+B,CAAwB/B,EAAsBgC,EAAuB,KAC1E,MAAM3E,MAAEA,EAAKC,OAAEA,GAAW0C,EAG1B,GAAI3C,GAAS2E,GAAgB1E,GAAU0E,EACrC,OAAOhC,EAIT,MAAMiC,EAAQD,EAAeV,KAAKE,IAAInE,EAAOC,GACvCsE,EAAWN,KAAKY,MAAM7E,EAAQ4E,GAC9BJ,EAAYP,KAAKY,MAAM5E,EAAS2E,GAGtC,OAAO/E,KAAKyE,OAAO3B,EAAW4B,EAAUC,GAS1C,wBAAOM,CAAkBnC,GAEvB,OADe9C,KAAKuD,kBAAkBT,GACxBoC,UAAU,aAAc,IASxC,8BAAaC,CAAkBC,GAC7B,OAAO,IAAInE,SAAQ,CAACC,EAASmE,KAC3B,MAAMC,EAAM,IAAIC,MAChBD,EAAIE,OAAS,KACX,MAAM9D,EAASC,SAASC,cAAc,UACtCF,EAAOvB,MAAQmF,EAAInF,MACnBuB,EAAOtB,OAASkF,EAAIlF,OACpB,MAAMoD,EAAM9B,EAAOM,WAAW,MAE9B,IAAKwB,EAEH,YADA6B,EAAO,IAAI7D,MAAM,kBAInBgC,EAAIvB,UAAUqD,EAAK,EAAG,GACtB,MAAMxC,EAAYU,EAAItB,aAAa,EAAG,EAAGR,EAAOvB,MAAOuB,EAAOtB,QAC9Dc,EAAQ4B,EAAU,EAGpBwC,EAAIG,QAAU,KACZJ,EAAO,IAAI7D,MAAM,UAAU,EAG7B8D,EAAII,IAAMN,CAAM,IAapB,mCAAaO,CACX7C,EACA8C,EACAC,EAAiB,GAGjB,GAAsB,oBAAXC,QAA0BhD,EAAU3C,MAAQ2C,EAAU1C,OAAS,IACxE,OAAOwF,EAAmB9C,GAI5B,MAAMiD,EAAepE,SAASC,cAAc,UAC5CmE,EAAa5F,MAAQ2C,EAAU3C,MAC/B4F,EAAa3F,OAAS0C,EAAU1C,OAChC,MAAM4F,EAAYD,EAAa/D,WAAW,MAE1C,IAAKgE,EACH,MAAM,IAAIxE,MAAM,iBAIlB,MAAMyE,EAASnD,EAAU3C,MAAQ2C,EAAU1C,OACrC8F,EAAY9B,KAAK+B,OAAOF,EAASnD,EAAU3C,MAAQ2C,EAAU1C,QAAUyF,GAGvEO,EAAW,GAEjB,IAAK,IAAIpC,EAAI,EAAGA,EAAI6B,EAAQ7B,IAAK,CAC/B,MAAMqC,EAAc1E,SAASC,cAAc,UACrC0E,EAAWD,EAAYrE,WAAW,MAExC,IAAKsE,EAAU,SAEf,IAAIC,EAEJ,GAAIN,EAAQ,CAEV,MAAMO,EAASxC,EAAIkC,EACb/F,EAAS6D,IAAM6B,EAAS,EAAK/C,EAAU3C,MAAQqG,EAASN,EAE9DG,EAAYlG,MAAQA,EACpBkG,EAAYjG,OAAS0C,EAAU1C,OAG/B,MAAMwE,EAAa5E,KAAKuD,kBAAkBT,GAC1CwD,EAASrE,UACP2C,EACA4B,EAAQ,EAAGrG,EAAO2C,EAAU1C,OAC5B,EAAG,EAAGD,EAAO2C,EAAU1C,QAGzBmG,EAAiBD,EAASpE,aAAa,EAAG,EAAG/B,EAAO2C,EAAU1C,YACzD,CAEL,MAAMqG,EAASzC,EAAIkC,EACb9F,EAAU4D,IAAM6B,EAAS,EAAK/C,EAAU1C,OAASqG,EAASP,EAEhEG,EAAYlG,MAAQ2C,EAAU3C,MAC9BkG,EAAYjG,OAASA,EAGrB,MAAMwE,EAAa5E,KAAKuD,kBAAkBT,GAC1CwD,EAASrE,UACP2C,EACA,EAAG6B,EAAQ3D,EAAU3C,MAAOC,EAC5B,EAAG,EAAG0C,EAAU3C,MAAOC,GAGzBmG,EAAiBD,EAASpE,aAAa,EAAG,EAAGY,EAAU3C,MAAOC,GAIhE,MAAMsG,EAAa,iIAGcd,EAAmBe,8KAM9CC,EAAO,IAAIC,KAAK,CAACH,GAAa,CAAEI,KAAM,2BACtCC,EAAYC,IAAIC,gBAAgBL,GAChCM,EAAS,IAAIpB,OAAOiB,GAEpBI,EAAU,IAAIlG,SAA+CC,IACjEgG,EAAOE,UAAY,SAASC,GAC1BnG,EAAQmG,EAAEpE,MACViE,EAAOI,YACPN,IAAIO,gBAAgBR,EACrB,EAGDG,EAAOM,YAAY,CACjB1E,UAAWyD,EACXkB,MAAOzD,GACN,CAACuC,EAAetD,KAAKyE,QAAQ,IAGlCtB,EAASuB,KAAKR,GAIhB,MAAMS,QAAgB3G,QAAQ4G,IAAIzB,GAGlCwB,EAAQE,MAAK,CAACC,EAAGC,IAAMD,EAAEN,MAAQO,EAAEP,QAGnC,IAAK,IAAIzD,EAAI,EAAGA,EAAI4D,EAAQ3D,OAAQD,IAAK,CACvC,MAAMiE,OAAEA,GAAWL,EAAQ5D,GACrBY,EAAa5E,KAAKuD,kBAAkB0E,GAE1C,GAAIhC,EAAQ,CACV,MAAMO,EAASxC,EAAIkC,EACnBF,EAAU/D,UAAU2C,EAAY4B,EAAQ,OACnC,CACL,MAAMC,EAASzC,EAAIkC,EACnBF,EAAU/D,UAAU2C,EAAY,EAAG6B,IAIvC,OAAOT,EAAU9D,aAAa,EAAG,EAAGY,EAAU3C,MAAO2C,EAAU1C,eCpTtD8H,EAUX,WAAApI,CAAoBC,EAAiC,IAAjCC,KAAOD,QAAPA,EARZC,KAAQuC,UAAG,EACXvC,KAASwC,UAAkB,KAQjCxC,KAAKD,QAAU,CACb0C,aAAc,OACX1C,GAGLC,KAAK0C,OAAS,IAAI7C,EAYpB,WAAMS,CAAMJ,GACV,UACQF,KAAK0C,OAAOnC,WAAWL,GAC7BF,KAAKuC,UAAW,EAChBvC,KAAK2C,OACL,MAAOrB,GACHtB,KAAKD,QAAQ6C,SACf5C,KAAKD,QAAQ6C,QAAQtB,aAAiBE,MAAQF,EAAQ,IAAIE,MAAMqB,OAAOvB,MAYrE,IAAAqB,GACN,IAAK3C,KAAKuC,SAAU,OAEpB,MAAMO,EAAY9C,KAAK0C,OAAOjB,eAE9B,GAAIqB,EACF,IAEE,MAAMqF,EAAgB7E,EAAeK,yBACnCL,EAAeiB,YAAYzB,GAC3B,GACA,IAMF9C,KAAKoI,cAAcD,GACnB,MAAO7G,GACPC,QAAQD,MAAM,WAAYA,GAI9BtB,KAAKwC,UAAYW,OAAOC,YAAW,IAAMpD,KAAK2C,QAAQ3C,KAAKD,QAAQ0C,cAW7D,aAAA2F,CAActF,GAQpB,GAHAvB,QAAQ8G,IAAI,cAGRjE,KAAKkE,SAAW,IAAM,CACxB,MAAMC,EAAa,gBAEfvI,KAAKD,QAAQmD,QACflD,KAAKD,QAAQmD,OAAOqF,IAU1B,IAAA/H,GACER,KAAKuC,UAAW,EAEZvC,KAAKwC,YACPa,aAAarD,KAAKwC,WAClBxC,KAAKwC,UAAY,MAGnBxC,KAAK0C,OAAOjC,iBC5FH+H,EAOX,WAAA1I,CAAoB2I,EAAkB,KAAlBzI,KAAOyI,QAAPA,EANZzI,KAAA0I,MAAQ,IAAIC,IAapB,GAAAC,CAAIC,GACF,IAAK7I,KAAK0I,MAAMI,IAAID,GAClB,OAIF,MAAM1E,EAAQnE,KAAK0I,MAAME,IAAIC,GAM7B,OAHA7I,KAAK0I,MAAMK,OAAOF,GAClB7I,KAAK0I,MAAMM,IAAIH,EAAK1E,GAEbA,EAQT,GAAA6E,CAAIH,EAAQ1E,GAOV,GALInE,KAAK0I,MAAMI,IAAID,IACjB7I,KAAK0I,MAAMK,OAAOF,GAIhB7I,KAAK0I,MAAMO,MAAQjJ,KAAKyI,QAAS,CACnC,MAAMS,EAAYlJ,KAAK0I,MAAMS,OAAOC,OAAOjF,WACzBkF,IAAdH,GACFlJ,KAAK0I,MAAMK,OAAOG,GAKtBlJ,KAAK0I,MAAMM,IAAIH,EAAK1E,GAQtB,OAAO0E,GACL,OAAO7I,KAAK0I,MAAMK,OAAOF,GAM3B,KAAAS,GACEtJ,KAAK0I,MAAMY,QAMb,QAAIL,GACF,OAAOjJ,KAAK0I,MAAMO,KAOpB,GAAAH,CAAID,GACF,OAAO7I,KAAK0I,MAAMI,IAAID,aAWVU,EAA0BzG,EAAsBmG,EAAe,GAE7E,MAAMvH,EAASC,SAASC,cAAc,UACtCF,EAAOvB,MAAQ8I,EACfvH,EAAOtB,OAAS6I,EAChB,MAAMzF,EAAM9B,EAAOM,WAAW,MAE9B,IAAKwB,EACH,MAAO,GAIT,MAAMoB,EAAajD,SAASC,cAAc,UAC1CgD,EAAWzE,MAAQ2C,EAAU3C,MAC7ByE,EAAWxE,OAAS0C,EAAU1C,OAC9B,MAAMoJ,EAAU5E,EAAW5C,WAAW,MAEtC,IAAKwH,EACH,MAAO,GAGTA,EAAQ/F,aAAaX,EAAW,EAAG,GAGnCU,EAAIvB,UAAU2C,EAAY,EAAG,EAAG9B,EAAU3C,MAAO2C,EAAU1C,OAAQ,EAAG,EAAG6I,EAAMA,GAG/E,MAAMQ,EAAejG,EAAItB,aAAa,EAAG,EAAG+G,EAAMA,GAC5CS,EAAa,GAEnB,IAAK,IAAI1F,EAAI,EAAGA,EAAIyF,EAAaxG,KAAKgB,OAAQD,GAAK,EAAG,CACpD,MAAM2F,EAAIF,EAAaxG,KAAKe,GACtB4F,EAAIH,EAAaxG,KAAKe,EAAI,GAC1BgE,EAAIyB,EAAaxG,KAAKe,EAAI,GAE1B6F,EAAOzF,KAAKY,MAAM,KAAQ2E,EAAI,KAAQC,EAAI,KAAQ5B,GACxD0B,EAAW/B,KAAKkC,GAIlB,MAAMrF,EAAMkF,EAAWI,QAAO,CAACC,EAAKC,IAAQD,EAAMC,GAAK,GAAKN,EAAWzF,OAGvE,IAAIgG,EAAc,GAClB,IAAK,MAAMJ,KAAQH,EACjBO,GAAeJ,GAAQrF,EAAM,IAAM,IAGrC,OAAOyF,CACT,OC/JaC,EAmBX,WAAApK,CAAYC,GAjBJC,KAASmK,WAAG,EACZnK,KAAWoK,YAAkB,KAO7BpK,KAAUqK,WAAW,EACrBrK,KAAiBsK,kBAAW,EASlCtK,KAAK0C,OAAS,IAAI7C,EAEK,mBAAZE,GAETC,KAAKuK,WAAaxK,EAClBC,KAAKD,QAAU,CACbyK,kBAAmB,IACnBC,kBAAmB,IACnBC,aAAa,EACbC,UAAW,GACXC,OAAQrJ,QAAQ8G,MAETtI,GAETC,KAAKD,QAAU,CACbyK,kBAAmB,IACnBC,kBAAmB,IACnBC,aAAa,EACbC,UAAW,GACXC,OAAQrJ,QAAQ8G,OACbtI,GAELC,KAAKuK,WAAaxK,EAAQ8K,YAC1B7K,KAAK4C,QAAU7C,EAAQ6C,SAEvB5C,KAAKD,QAAU,CACbyK,kBAAmB,IACnBC,kBAAmB,IACnBC,aAAa,EACbC,UAAW,GACXC,OAAQrJ,QAAQ8G,KAIpBrI,KAAKwK,kBAAoBxK,KAAKD,QAAQyK,kBACtCxK,KAAKyK,kBAAoBzK,KAAKD,QAAQ0K,kBAGtCzK,KAAK8K,YAAc,IAAItC,EAAkCxI,KAAKD,QAAQ4K,WAGtE3K,KAAK+K,gBDlGO,SACdC,EACAC,GAEA,IAAIC,EAAW,EACXC,EAA2B,KAE/B,OAAO,YAAuBC,GAC5B,MAAMC,EAAMC,KAAKD,MACXE,EAAYN,GAASI,EAAMH,GAE7BK,GAAa,GACXJ,IACF9H,aAAa8H,GACbA,EAAY,MAEdD,EAAWG,EACXL,EAAGQ,MAAMxL,KAAMoL,IACLD,IACVA,EAAYhI,OAAOC,YAAW,KAC5B8H,EAAWI,KAAKD,MAChBF,EAAY,KACZH,EAAGQ,MAAMxL,KAAMoL,EAAK,GACnBG,GAEN,CACH,CCwE2BE,CAASzL,KAAK0L,iBAAiBC,KAAK3L,MAAOA,KAAKwK,mBAWzE,WAAMlK,CAAMJ,SACJF,KAAK0C,OAAOnC,WAAWL,GAC7BF,KAAKmK,WAAY,EACjBnK,KAAKqK,WAAa,EAClBrK,KAAKsK,kBAAoB,EACzBtK,KAAK4L,SAMP,IAAApL,GACER,KAAKmK,WAAY,EACQ,OAArBnK,KAAKoK,cACPyB,qBAAqB7L,KAAKoK,aAC1BpK,KAAKoK,YAAc,MASf,MAAAwB,GACD5L,KAAKmK,YAEVnK,KAAKoK,YAAc0B,uBAAsB,KACvC,IACE9L,KAAKqK,aACL,MAAMgB,EAAMU,YAAYV,OAIpBrL,KAAKqK,WAAa,GAAM,GAAKgB,EAAMrL,KAAKsK,mBAAqBtK,KAAKwK,qBACpExK,KAAK+K,kBACL/K,KAAKsK,kBAAoBe,GAI3BrL,KAAK4L,SACL,MAAOtK,GACHtB,KAAK4C,QACP5C,KAAK4C,QAAQtB,GAEbC,QAAQD,MAAM,WAAYA,GAI5B8B,YAAW,KACLpD,KAAKmK,WACPnK,KAAK4L,WAEN,UAUD,sBAAMF,GACZ,IAAK1L,KAAKmK,YAAcnK,KAAK0C,OAAQ,OAGrC,MAAMsJ,EAAQhM,KAAK0C,OAAOjB,eAC1B,IAAKuK,EAAO,OAGZ,GAAIhM,KAAKD,QAAQ2K,YAAa,CAC5B,MAAMT,EAAcV,EAA0ByC,EAAO,IAC/CC,EAAejM,KAAK8K,YAAYlC,IAAIqB,GAE1C,GAAIgC,EAAc,CAChBjM,KAAKD,QAAQ6K,SAAS,aAGtB,MAAMsB,EAAgB,IACjBD,EACHnJ,UAAWkJ,GAMb,YAHIhM,KAAKuK,YACPvK,KAAKuK,WAAW2B,KAOtB,MAAMC,EAAmB7I,EAAeuB,wBAAwBmH,EAAOhM,KAAKyK,mBAE5E,IAEE,MAAMxC,QAAejI,KAAKoM,aAAaD,GAGvC,GAAIlE,EAAOoE,UACTpE,EAAOnF,UAAYkJ,EAGfhM,KAAKD,QAAQ2K,aAAa,CAC5B,MAAMT,EAAcV,EAA0ByC,EAAO,IACrDhM,KAAK8K,YAAY9B,IAAIiB,EAAahC,GAKlCjI,KAAKuK,YACPvK,KAAKuK,WAAWtC,GAElB,MAAO3G,GACHtB,KAAK4C,QACP5C,KAAK4C,QAAQtB,GAEbC,QAAQD,MAAM,WAAYA,IAYxB,kBAAM8K,CAAatJ,GAEPQ,EAAeiB,YAAYzB,GAQ7C,MAAMwJ,EAAmC,CACvCD,QAASjI,KAAKkE,SAAW,GACzBiE,QAAS,WAGX,GAAID,EAAgBD,QAAS,CAE3B,MAAMlM,EAAQ2C,EAAU3C,MAClBC,EAAS0C,EAAU1C,OAGnBoM,EAAYpI,KAAKY,MAAc,GAAR7E,GACvBsM,EAAarI,KAAKY,MAAkB,KAAZwH,GACxBE,EAAQtI,KAAKY,OAAO7E,EAAQqM,GAAa,GACzCG,EAAQvI,KAAKY,OAAO5E,EAASqM,GAAc,GAGjDH,EAAgBM,QAAU,CACxB,CAAEC,EAAGH,EAAOI,EAAGH,GACf,CAAEE,EAAGH,EAAQF,EAAWM,EAAGH,GAC3B,CAAEE,EAAGH,EAAQF,EAAWM,EAAGH,EAAQF,GACnC,CAAEI,EAAGH,EAAOI,EAAGH,EAAQF,IAIzBH,EAAgBS,YAAc,CAC5BF,EAAGH,EACHI,EAAGH,EACHxM,MAAOqM,EACPpM,OAAQqM,GAIV,MAAM/K,EAASC,SAASC,cAAc,UACtCF,EAAOvB,MAAQqM,EACf9K,EAAOtB,OAASqM,EAChB,MAAMjJ,EAAM9B,EAAOM,WAAW,MAE9B,GAAIwB,EAAK,CACP,MAAMoB,EAAatB,EAAeC,kBAAkBT,GACpDU,EAAIvB,UACF2C,EACA8H,EAAOC,EAAOH,EAAWC,EACzB,EAAG,EAAGD,EAAWC,GAGnBH,EAAgBU,aAAexJ,EAAItB,aAAa,EAAG,EAAGsK,EAAWC,GAInEH,EAAgBW,WAAa,GAAsB,GAAhB7I,KAAKkE,SAG1C,OAAOgE,EAMT,UAAAY,GACElN,KAAK8K,YAAYxB,QACjBtJ,KAAKD,QAAQ6K,SAAS,aAMxB,OAAAuC,GACEnN,KAAKQ,OACLR,KAAK0C,OAAOjC,UACZT,KAAK8K,YAAYxB,SC3Sd8D,eAAeC,EAAmBC,GAEvC,MAAMC,EAAYxB,YAAYV,OAGxBmC,aAAEA,SAAuBC,OAAO,gBAGhCvG,QAAesG,EAAaF,EAAMI,mBAAqB,CAC3D9C,OAAS+C,GAAWpM,QAAQ8G,IAAIsF,KAGlC,UAEQzG,EAAO0G,aACP1G,EAAO2G,aAAa,iBACpB3G,EAAO3G,WAAW,iBAClB2G,EAAO4G,cAAc,CACzBC,wBAAyB,6QAI3B,MAAM9K,KAAEA,SAAeiE,EAAO8G,UAAUV,EAAMW,aAGxCC,EA6BV,SAAyBC,GACvB,MAAMC,EAAmB,CAAE,EAGrBC,EAAQF,EAAKG,MAAM,MAAMC,QAAOC,GAAQA,EAAKC,SAG7CC,EAAgB,gBAChBC,EAAgBR,EAAKS,MAAMF,GAC7BC,IACFP,EAAKS,SAAWF,EAAc,IAIhC,IAAK,MAAMH,KAAQH,EACjB,GAAIG,EAAKM,SAAS,OAASN,EAAKvK,OAAS,IAAMuK,EAAKvK,OAAS,IAAM,KAAK8K,KAAKP,GAAO,CAClFJ,EAAKY,KAAOR,EAAKS,QAAQ,KAAM,IAAIR,OACnC,MAKJ,MAAMS,EAAyB,aACzBC,EAAchB,EAAKS,MAAMM,GAC/B,GAAIC,EAAa,CACff,EAAKgB,OAASD,EAAY,GAC1B,MAAME,EAAkBF,EAAY,GACpCf,EAAKkB,YAAcD,EAAgBE,UAAUF,EAAgBG,QAAQL,EAAY,IAAM,GAAGV,OAI5F,MAAMgB,EAAiB,+BACjBC,EAAiBvB,EAAKS,MAAMa,GAC9BC,IACFtB,EAAKuB,UAAY,GAAGD,EAAe,MAAMA,EAAe,MAAMA,EAAe,MAI/E,MAAME,EAAe,qBACfC,EAAe1B,EAAKS,MAAMgB,GAC5BC,IACFzB,EAAK0B,QAAUD,EAAa,GAAGZ,QAAQ,MAAO,IAAIR,QAIpD,MAAMsB,EAAiB,oBACjBC,EAAiB7B,EAAKS,MAAMmB,GAC9BC,IACF5B,EAAK6B,iBAAmBD,EAAe,GAAGf,QAAQ,MAAO,IAAIR,QAI/D,MAAMyB,EAAmB,sBACnBC,EAAmBhC,EAAKS,MAAMsB,GAChCC,IACF/B,EAAKgC,YAAcD,EAAiB,GAAGlB,QAAQ,OAAQ,IAAIR,QAG7D,OAAOL,CACT,CAxFuBiC,CAAgBpN,EAAKkL,YAGlCjH,EAAOI,YAMb,MAAO,CACL4G,aACAoC,eALqBvE,YAAYV,MAAQkC,GAO3C,MAAOjM,GAGP,YADM4F,EAAOI,YACPhG,EAEV,OCxBaiP,EAYX,WAAAzQ,CAAYC,EAA+B,IAXnCC,KAAMkH,OAAQ,KACdlH,KAASwQ,UAAsH,KAC/HxQ,KAAWyQ,aAAY,EAU7BzQ,KAAKD,QAAU,CACb2Q,UCsBqB,oBAAX5K,ODrBV4E,aAAa,EACbC,UAAW,GACXF,kBAAmB,IACnBG,OAAQrJ,QAAQ8G,OACbtI,GAILC,KAAK8K,YAAc,IAAItC,EAA6BxI,KAAKD,QAAQ4K,WAUnE,gBAAMpK,GACAP,KAAKyQ,cAELzQ,KAAKD,QAAQ2Q,WAEf1Q,KAAKwQ,UC7EL,SAA6BG,GAKjC,MAAMjK,EAAa,0FAGWiK,EAAehK,iQAWvCC,EAAO,IAAIC,KAAK,CAACH,GAAa,CAAEI,KAAM,2BACtCC,EAAYC,IAAIC,gBAAgBL,GAChCM,EAAS,IAAIpB,OAAOiB,GAGpB6J,EAAa,IAAIjI,IAKvB,IAAIkI,EAAiB,EAwBrB,OAtBA3J,EAAOE,UAAaC,IAEM,IAApBuJ,EAAW3H,MACbjC,IAAIO,gBAAgBR,GAGtB,MAAM+J,GAAEA,EAAEzE,QAAEA,EAAOpE,OAAEA,EAAM3G,MAAEA,GAAU+F,EAAEpE,KAEnC8N,EAAkBH,EAAWhI,IAAIkI,GACvC,GAAIC,EAGF,GAFAH,EAAW7H,OAAO+H,GAEdzE,EACF0E,EAAgB7P,QAAQ+G,OACnB,CACL,MAAM+I,EAAc,IAAIxP,MAAMF,EAAMiL,SACpCyE,EAAYC,MAAQ3P,EAAM2P,MAC1BF,EAAgB1L,OAAO2L,KAKtB,CACLxJ,YAAcvE,GACL,IAAIhC,SAAQ,CAACC,EAASmE,KAC3B,MAAMyL,EAAKD,IACXD,EAAW5H,IAAI8H,EAAI,CAAE5P,UAASmE,WAC9B6B,EAAOM,YAAY,CAAEsJ,KAAI7N,QAAO,IAGpCqE,UAAW,KACTJ,EAAOI,YACPsJ,EAAWtH,QACXtC,IAAIO,gBAAgBR,EAAU,EAGpC,CDUuBmK,CAAwF7D,GACzGrN,KAAKyQ,aAAc,EACnBzQ,KAAKD,QAAQ6K,SAAS,sBAGtB5K,KAAKkH,OAASsG,eAAa,CACzB5C,OAAQ5K,KAAKD,QAAQ6K,eAGjB5K,KAAKkH,OAAO0G,aACZ5N,KAAKkH,OAAO2G,aAAa,iBACzB7N,KAAKkH,OAAO3G,WAAW,iBACvBP,KAAKkH,OAAO4G,cAAc,CAC9BC,wBAAyB,6QAG3B/N,KAAKyQ,aAAc,EACnBzQ,KAAKD,QAAQ6K,SAAS,gBAS1B,mBAAMuG,CAAcrO,GAMlB,GALK9C,KAAKyQ,mBACFzQ,KAAKO,aAITP,KAAKD,QAAQ2K,YAAa,CAC5B,MAAMT,EAAcV,EAA0BzG,GAGxCmJ,EAAejM,KAAK8K,YAAYlC,IAAIqB,GAC1C,GAAIgC,EAEF,OADAjM,KAAKD,QAAQ6K,SAAS,cACfqB,EAKX,MAAMmF,EAAmB9N,EAAeuB,wBAAwB/B,EAAW9C,KAAKD,QAAQ0K,mBAClFtC,EAAgB7E,EAAeK,yBAAyByN,EAAkB,GAAI,IAGpF,IACE,IAAIlD,EAEJ,GAAIlO,KAAKD,QAAQ2Q,WAAa1Q,KAAKwQ,UAAW,CAE5C,MAAMa,EAAc/N,EAAe2B,kBAAkBkD,GAE/CF,QAAejI,KAAKwQ,UAAUhJ,YAAY,CAC9CyG,YAAaoD,EACb3D,kBAAmB,CACjB9C,OAAQ5K,KAAKD,QAAQ6K,UAIzBsD,EAAajG,EAAOiG,WACpBlO,KAAKD,QAAQ6K,SAAS,eAAe3C,EAAOqI,eAAegB,QAAQ,YAC9D,CAEL,MAAM/D,EAAYxB,YAAYV,MAGxB3J,EAAS4B,EAAeC,kBAAkB4E,IAE1ClF,KAAEA,SAAejD,KAAKkH,OAAO8G,UAAUtM,GAG7CwM,EAAalO,KAAKqQ,gBAAgBpN,EAAKkL,MAEvC,MAAMmC,EAAiBvE,YAAYV,MAAQkC,EAC3CvN,KAAKD,QAAQ6K,SAAS,eAAe0F,EAAegB,QAAQ,QAI9D,GAAItR,KAAKD,QAAQ2K,YAAa,CAC5B,MAAMT,EAAcV,EAA0BzG,GAC9C9C,KAAK8K,YAAY9B,IAAIiB,EAAaiE,GAGpC,OAAOA,EACP,MAAO5M,GAEP,OADAtB,KAAKD,QAAQ6K,SAAS,YAAYtJ,KAC3B,CAAgB,GAanB,eAAA+O,CAAgBlC,GACtB,MAAMC,EAAmB,CAAE,EAGrBC,EAAQF,EAAKG,MAAM,MAAMC,QAAOC,GAAQA,EAAKC,SAI7CE,EAAgBR,EAAKS,MADL,iBAElBD,IACFP,EAAKS,SAAWF,EAAc,IAIhC,IAAK,MAAMH,KAAQH,EACjB,GAAIG,EAAKM,SAAS,OAASN,EAAKvK,OAAS,IAAMuK,EAAKvK,OAAS,IAAM,KAAK8K,KAAKP,GAAO,CAClFJ,EAAKY,KAAOR,EAAKS,QAAQ,KAAM,IAAIR,OACnC,MAKJ,MACMU,EAAchB,EAAKS,MADM,cAE/B,GAAIO,EAAa,CACff,EAAKgB,OAASD,EAAY,GAC1B,MAAME,EAAkBF,EAAY,GACpCf,EAAKkB,YAAcD,EAAgBE,UAAUF,EAAgBG,QAAQL,EAAY,IAAM,GAAGV,OAI5F,MACMiB,EAAiBvB,EAAKS,MADL,gCAEnBc,IACFtB,EAAKuB,UAAY,GAAGD,EAAe,MAAMA,EAAe,MAAMA,EAAe,MAI/E,MACMG,EAAe1B,EAAKS,MADL,sBAEjBiB,IACFzB,EAAK0B,QAAUD,EAAa,GAAGZ,QAAQ,MAAO,IAAIR,QAIpD,MACMuB,EAAiB7B,EAAKS,MADL,qBAEnBoB,IACF5B,EAAK6B,iBAAmBD,EAAe,GAAGf,QAAQ,MAAO,IAAIR,QAI/D,MACM0B,EAAmBhC,EAAKS,MADL,uBAMzB,OAJIuB,IACF/B,EAAKgC,YAAcD,EAAiB,GAAGlB,QAAQ,OAAQ,IAAIR,QAGtDL,EAMT,UAAAlB,GACElN,KAAK8K,YAAYxB,QACjBtJ,KAAKD,QAAQ6K,SAAS,cAQxB,eAAMtD,GACAtH,KAAKkH,eACDlH,KAAKkH,OAAOI,YAClBtH,KAAKkH,OAAS,MAGZlH,KAAKwQ,YACPxQ,KAAKwQ,UAAUlJ,YACftH,KAAKwQ,UAAY,MAGnBxQ,KAAKyQ,aAAc,EACnBzQ,KAAKD,QAAQ6K,SAAS,YAMxB,OAAAuC,GACE,OAAOnN,KAAKsH,mBE7PHiK,EASX,uBAAOC,CAAiB3C,GAEtB,IAAKA,GAAgC,KAApBA,EAAS5K,OACxB,OAAO,EAKT,IADgB,gBACH8K,KAAKF,GAChB,OAAO,EAIT,MAAM4C,EAAOC,SAAS7C,EAAS8C,OAAO,EAAG,IACnCC,EAAQF,SAAS7C,EAAS8C,OAAO,GAAI,IACrCE,EAAMH,SAAS7C,EAAS8C,OAAO,GAAI,IAEnCG,EAAO,IAAIxG,KAAKmG,EAAMG,EAAQ,EAAGC,GACvC,OACEC,EAAKC,gBAAkBN,GACvBK,EAAKE,WAAa,IAAMJ,GACxBE,EAAKG,YAAcJ,EAevB,6BAAOK,CAAuBrD,GAC5B,IAAK7O,KAAKwR,iBAAiB3C,GACzB,OAAO,KAOT,MAAO,GAJMA,EAAS8C,OAAO,EAAG,MAClB9C,EAAS8C,OAAO,GAAI,MACtB9C,EAAS8C,OAAO,GAAI,KAalC,0BAAOQ,CAAoBtD,GACzB,IAAK7O,KAAKwR,iBAAiB3C,GACzB,OAAO,KAKT,OADmB6C,SAAS7C,EAASuD,OAAO,KACxB,GAAM,EAAI,IAAM,IAStC,0BAAOC,CAAoBxD,GACzB,OAAK7O,KAAKwR,iBAAiB3C,GAIpBA,EAAS8C,OAAO,EAAG,GAHjB,KAgBX,wBAAOW,CAAkBC,EAAqB1D,GAC5C,MAAM5G,EAAS,IAAKsK,GAgBpB,GAbItK,EAAO4G,UAAY7O,KAAKwR,iBAAiBvJ,EAAO4G,YAE7C5G,EAAO0H,YACV1H,EAAO0H,UAAY3P,KAAKkS,uBAAuBjK,EAAO4G,gBAAaxF,GAIhEpB,EAAOmH,SACVnH,EAAOmH,OAASpP,KAAKmS,oBAAoBlK,EAAO4G,gBAAaxF,IAK7DwF,GAAY7O,KAAKwR,iBAAiB3C,GAAW,CAC/C5G,EAAO4G,SAAWA,EAGlB,MAAMc,EAAY3P,KAAKkS,uBAAuBrD,GAC1Cc,IACF1H,EAAO0H,UAAYA,GAGrB,MAAMP,EAASpP,KAAKmS,oBAAoBtD,GACpCO,IACFnH,EAAOmH,OAASA,GAIpB,OAAOnH,EAST,kBAAAuK,CAAmBtE,GACjB,MAAMuE,EAAe,IAAIvE,GA6BzB,OA1BIuE,EAAa5D,WACf4D,EAAa5D,SAAW7O,KAAK0S,kBAAkBD,EAAa5D,UAGxD7O,KAAKwR,iBAAiBiB,EAAa5D,YAChC4D,EAAa9C,YAChB8C,EAAa9C,UAAY3P,KAAKkS,uBAAuBO,EAAa5D,WAI/D4D,EAAarD,SAChBqD,EAAarD,OAASpP,KAAKmS,oBAAoBM,EAAa5D,aAM9D4D,EAAa9C,YACf8C,EAAa9C,UAAY3P,KAAK2S,cAAcF,EAAa9C,YAIvD8C,EAAa3C,UACf2C,EAAa3C,QAAU9P,KAAK4S,iBAAiBH,EAAa3C,UAGrD2C,EAMD,iBAAAC,CAAkB7D,GAExB,OAAOA,EAASI,QAAQ,UAAW,IAAI4D,cAMjC,gBAAArB,CAAiB3C,GAGvB,MADgB,iCACDE,KAAKF,GAMd,sBAAAqD,CAAuBrD,GAC7B,OAAwB,KAApBA,EAAS5K,OACJ,GAAG4K,EAASU,UAAU,EAAG,OAAOV,EAASU,UAAU,GAAI,OAAOV,EAASU,UAAU,GAAI,MAC/D,KAApBV,EAAS5K,OACX,KAAK4K,EAASU,UAAU,EAAG,MAAMV,EAASU,UAAU,EAAG,OAAOV,EAASU,UAAU,GAAI,MAEvF,GAMD,mBAAA4C,CAAoBtD,GAC1B,IAAIiE,EAMJ,OAJEA,EADsB,KAApBjE,EAAS5K,OACDyN,SAAS7C,EAASuD,OAAO,KAEzBV,SAAS7C,EAASuD,OAAO,KAE9BU,EAAU,GAAM,EAAI,IAAM,IAM3B,aAAAH,CAAcb,GAEpB,OAAOA,EAAK7C,QAAQ,wBAAyB,YAMvC,gBAAA2D,CAAiB9C,GAEvB,OAAOA,EAAQrB;;;;;;;iFC/MjB,WAAA3O,CAAoBC,EAA4B,IAA5BC,KAAOD,QAAPA,EAZZC,KAAS+S,UAAqB,KAC9B/S,KAAcgT,eAA0B,KACxChT,KAAUiT,WAA0B,KACpCjT,KAAYkT,aAAwB,KACpClT,KAAamT,cAAyB,KACtCnT,KAAQoT,SAAgC,KACxCpT,KAAYE,aAA4B,KAO9CF,KAAK0C,OAAS,IAAI7C,EAAOE,EAAQsT,eAOnC,gBAAM9S,GACJ,IAEEP,KAAKkT,aAAe,IAAI3C,EACxBvQ,KAAKmT,cAAgB,IAAI5B,QACnBvR,KAAKkT,aAAa3S,aAExBgB,QAAQ8G,IAAI,yBACZ,MAAO/G,GAEP,MADAtB,KAAKsT,YAAYhS,GACXA,GAQV,oBAAMiS,CAAerT,GACnBF,KAAKQ,OACLR,KAAKE,aAAeA,EACpBF,KAAKoT,SAAW,KAEhB,IACOpT,KAAK+S,YACR/S,KAAK+S,UAAY,IAAIzQ,EAAU,IAC1BtC,KAAKD,QAAQyT,iBAChBtQ,OAAQlD,KAAKyT,aAAa9H,KAAK3L,eAI7BA,KAAK0C,OAAOpC,MAAMJ,GACxBF,KAAK+S,UAAUzS,MAAMJ,GACrB,MAAOoB,GACPtB,KAAKsT,YAAYhS,IAQrB,yBAAMoS,CAAoBxT,GACxBF,KAAKQ,OACLR,KAAKE,aAAeA,EACpBF,KAAKoT,SAAW,UAEhB,IACOpT,KAAKgT,iBACRhT,KAAKgT,eAAiB,IAAI9K,EAAe,IACpClI,KAAKD,QAAQ4T,sBAChBzQ,OAAQlD,KAAK4T,kBAAkBjI,KAAK3L,eAIlCA,KAAK0C,OAAOpC,MAAMJ,GACxBF,KAAKgT,eAAe1S,MAAMJ,GAC1B,MAAOoB,GACPtB,KAAKsT,YAAYhS,IAQrB,wBAAMuS,CAAmB3T,GACvBF,KAAKQ,OACLR,KAAKE,aAAeA,EACpBF,KAAKoT,SAAW,SAEhB,IACOpT,KAAKkT,oBACFlT,KAAKO,aAGRP,KAAKiT,aACRjT,KAAKiT,WAAa,IAAI/I,EAAe,CACnCW,YAAa7K,KAAK8T,kBAAkBnI,KAAK3L,MACzC4C,QAAS5C,KAAKsT,YAAY3H,KAAK3L,eAI7BA,KAAK0C,OAAOpC,MAAMJ,GACxBF,KAAKiT,WAAW3S,MAAMJ,GACtB,MAAOoB,GACPtB,KAAKsT,YAAYhS,IAOrB,IAAAd,GACwB,OAAlBR,KAAKoT,UAAqBpT,KAAK+S,UACjC/S,KAAK+S,UAAUvS,OACY,YAAlBR,KAAKoT,UAA0BpT,KAAKgT,eAC7ChT,KAAKgT,eAAexS,OACO,WAAlBR,KAAKoT,UAAyBpT,KAAKiT,YAC5CjT,KAAKiT,WAAWzS,OAGlBR,KAAK0C,OAAOlC,OAMN,YAAAiT,CAAaxL,GACfjI,KAAKD,QAAQgU,iBACf/T,KAAKD,QAAQgU,gBAAgB9L,GAOzB,iBAAA2L,CAAkB3L,GACpBjI,KAAKD,QAAQiU,kBACfhU,KAAKD,QAAQiU,iBAAiB/L,GAO1B,uBAAM6L,CAAkB7L,GAC9B,GAAKjI,KAAKkT,cAAiBlT,KAAKmT,cAEhC,IAEE,IAAKlL,EAAOnF,UAEV,YADA9C,KAAKsT,YAAY,IAAI9R,MAAM,YAI7B,MAAM0M,QAAmBlO,KAAKkT,aAAa/B,cAAclJ,EAAOnF,WAC1DmR,EAAgBjU,KAAKmT,cAAcX,mBAAmBtE,GAExDlO,KAAKD,QAAQmU,iBACflU,KAAKD,QAAQmU,gBAAgBD,GAE/B,MAAO3S,GACPtB,KAAKsT,YAAYhS,IAOb,WAAAgS,CAAYhS,GACdtB,KAAKD,QAAQ6C,QACf5C,KAAKD,QAAQ6C,QAAQtB,GAErBC,QAAQD,MAAM,mBAAoBA,GAOtC,eAAMgG,GACJtH,KAAKQ,OAEDR,KAAKkT,qBACDlT,KAAKkT,aAAa5L,YACxBtH,KAAKkT,aAAe,MAGtBlT,KAAK+S,UAAY,KACjB/S,KAAKgT,eAAiB,KACtBhT,KAAKiT,WAAa,KAClBjT,KAAKmT,cAAgB"}
|
|
1
|
+
{"version":3,"file":"id-scanner.min.js","sources":["../src/utils/camera.ts","../src/scanner/qr-scanner.ts","../src/utils/image-processing.ts","../src/scanner/barcode-scanner.ts","../src/utils/performance.ts","../src/id-recognition/id-detector.ts","../src/id-recognition/ocr-worker.ts","../src/id-recognition/ocr-processor.ts","../src/utils/worker.ts","../src/id-recognition/data-extractor.ts","../src/index.ts","../src/demo/demo.ts","../src/index-umd.ts","../src/ocr-module.ts","../src/qr-module.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["Camera","constructor","options","this","stream","videoElement","width","height","facingMode","start","initialize","stop","release","constraints","video","ideal","navigator","mediaDevices","getUserMedia","srcObject","Promise","resolve","onloadedmetadata","play","then","error","console","Error","captureFrame","canvas","document","createElement","videoWidth","videoHeight","context","getContext","drawImage","getImageData","getTracks","forEach","track","QRScanner","scanning","scanTimer","scanInterval","camera","scan","onError","String","imageData","code","jsQR","data","onScan","window","setTimeout","clearTimeout","processImageData","ImageProcessor","imageDataToCanvas","ctx","putImageData","canvasToImageData","adjustBrightnessContrast","brightness","contrast","imgData","factor","i","length","truncate","value","Math","min","max","toGrayscale","avg","resize","newWidth","newHeight","tempCanvas","downsampleForProcessing","maxDimension","scale","round","imageDataToBase64","toDataURL","base64ToImageData","base64","reject","img","Image","onload","onerror","src","processImageInParallel","processingFunction","chunks","Worker","resultCanvas","resultCtx","isWide","chunkSize","floor","promises","chunkCanvas","chunkCtx","chunkImageData","startX","startY","workerCode","toString","blob","Blob","type","workerUrl","URL","createObjectURL","worker","promise","onmessage","e","terminate","revokeObjectURL","postMessage","index","buffer","push","results","all","sort","a","b","result","BarcodeScanner","enhancedImage","detectBarcode","log","random","mockResult","simulateBarcodeDetection","midX","midY","sampleWidth","edgeCount","lastPixel","x","pixelPos","pixelValue","abs","LRUCache","maxSize","cache","Map","get","key","has","delete","set","size","oldestKey","keys","next","undefined","clear","calculateImageFingerprint","tempCtx","smallImgData","grayValues","r","g","gray","reduce","sum","val","fingerprint","IDCardDetector","detecting","detectTimer","frameCount","lastDetectionTime","onDetected","detectionInterval","maxImageDimension","enableCache","cacheSize","logger","onDetection","resultCache","throttledDetect","fn","delay","lastCall","timeoutId","args","now","Date","remaining","apply","throttle","performDetection","bind","detect","cancelAnimationFrame","requestAnimationFrame","performance","frame","cachedResult","updatedResult","downsampledFrame","detectIDCard","success","detectionResult","message","rectWidth","rectHeight","rectX","rectY","corners","y","boundingBox","croppedImage","confidence","clearCache","dispose","async","processOCRInWorker","input","startTime","createWorker","import","tessWorkerOptions","m","load","loadLanguage","setParameters","tessedit_char_whitelist","recognize","imageBase64","idCardInfo","text","info","lines","split","filter","line","trim","idNumberRegex","idNumberMatch","match","idNumber","includes","test","name","replace","genderNationalityRegex","genderMatch","gender","nationalityText","nationality","substring","indexOf","birthDateRegex","birthDateMatch","birthDate","addressRegex","addressMatch","address","authorityRegex","authorityMatch","issuingAuthority","validPeriodRegex","validPeriodMatch","validPeriod","parseIDCardText","processingTime","OCRProcessor","ocrWorker","initialized","useWorker","workerFunction","promiseMap","messageCounter","id","promiseHandlers","workerError","stack","createCustomWorker","processIDCard","downsampledImage","base64Image","toFixed","DataExtractor","validateIDNumber","year","parseInt","substr","month","day","date","getFullYear","getMonth","getDate","extractBirthDateFromID","extractGenderFromID","charAt","extractRegionFromID","enhanceIDCardInfo","ocrInfo","extractAndValidate","enhancedInfo","normalizeIDNumber","normalizeDate","normalizeAddress","toUpperCase","sexCode","scanMode","qrModule","ocrModule","isQRModuleLoaded","isOCRModuleLoaded","cameraOptions","OCRModule","onIDCardScanned","handleError","startQRScanner","ScannerModule","qrScannerOptions","barcodeScannerOptions","onQRCodeScanned","onBarcodeScanned","startBarcodeScanner","startIDCardScanner","processQRCodeImage","imageSource","imageElement","crossOrigin","HTMLImageElement","HTMLCanvasElement","dataURL","naturalWidth","naturalHeight","processBarcodeImage","processIDCardImage","IDScannerDemo","videoElementId","resultContainerId","switchButtonId","imageInputId","imageInput","currentMode","getElementById","resultContainer","switchButton","addEventListener","handleImageInput","scanner","IDScanner","handleQRCodeResult","handleIDCardResult","toggleScanMode","textContent","innerHTML","event","target","files","file","startsWith","imageUrl","qrScanner","barcodeScanner","idDetector","ocrProcessor","dataExtractor","handleQRScan","handleBarcodeScan","handleIDDetection","extractedInfo","ocrResult","isRunning","processedImage"],"mappings":"4UA6CaA,EAQX,WAAAC,CAAoBC,EAAyB,IAAzBC,KAAOD,QAAPA,EAPZC,KAAMC,OAAuB,KAC7BD,KAAYE,aAA4B,KAO9CF,KAAKD,QAAU,CACbI,MAAO,IACPC,OAAQ,IACRC,WAAY,iBACTN,GASP,WAAMO,CAAMJ,GACV,OAAOF,KAAKO,WAAWL,GAMzB,IAAAM,GACER,KAAKS,UAUP,gBAAMF,CAAWL,GACfF,KAAKE,aAAeA,EAEpB,IAEE,MAAMQ,EAAsC,CAC1CC,MAAO,CACLR,MAAO,CAAES,MAAOZ,KAAKD,QAAQI,OAC7BC,OAAQ,CAAEQ,MAAOZ,KAAKD,QAAQK,QAC9BC,WAAYL,KAAKD,QAAQM,aAK7BL,KAAKC,aAAeY,UAAUC,aAAaC,aAAaL,GAGpDV,KAAKE,eACPF,KAAKE,aAAac,UAAYhB,KAAKC,aAC7B,IAAIgB,SAAeC,IACnBlB,KAAKE,eACPF,KAAKE,aAAaiB,iBAAmB,KAC/BnB,KAAKE,cACPF,KAAKE,aAAakB,OAAOC,MAAK,IAAMH,YAM9C,MAAOI,GAEP,MADAC,QAAQD,MAAM,WAAYA,GACpB,IAAIE,MAAM,2CASpB,YAAAC,GACE,IAAKzB,KAAKE,aACR,OAAO,KAIT,MAAMwB,EAASC,SAASC,cAAc,UACtCF,EAAOvB,MAAQH,KAAKE,aAAa2B,WACjCH,EAAOtB,OAASJ,KAAKE,aAAa4B,YAElC,MAAMC,EAAUL,EAAOM,WAAW,MAClC,OAAKD,GAKLA,EAAQE,UAAUjC,KAAKE,aAAc,EAAG,EAAGwB,EAAOvB,MAAOuB,EAAOtB,QAGzD2B,EAAQG,aAAa,EAAG,EAAGR,EAAOvB,MAAOuB,EAAOtB,SAP9C,KAaX,OAAAK,GAEMT,KAAKC,SACPD,KAAKC,OAAOkC,YAAYC,SAAQC,GAASA,EAAM7B,SAC/CR,KAAKC,OAAS,MAIZD,KAAKE,eACPF,KAAKE,aAAac,UAAY,KAC9BhB,KAAKE,aAAe,aC/GboC,EAUX,WAAAxC,CAAoBC,EAA4B,IAA5BC,KAAOD,QAAPA,EARZC,KAAQuC,UAAG,EACXvC,KAASwC,UAAkB,KAQjCxC,KAAKD,QAAU,CACb0C,aAAc,OACX1C,GAGLC,KAAK0C,OAAS,IAAI7C,EAYpB,WAAMS,CAAMJ,GACV,UACQF,KAAK0C,OAAOnC,WAAWL,GAC7BF,KAAKuC,UAAW,EAChBvC,KAAK2C,OACL,MAAOrB,GACHtB,KAAKD,QAAQ6C,SACf5C,KAAKD,QAAQ6C,QACXtB,aAAiBE,MAAQF,EAAQ,IAAIE,MAAMqB,OAAOvB,MAalD,IAAAqB,GACN,IAAK3C,KAAKuC,SAAU,OAEpB,MAAMO,EAAY9C,KAAK0C,OAAOjB,eAE9B,GAAIqB,EAAW,CACb,MAAMC,EAAOC,EAAKF,EAAUG,KAAMH,EAAU3C,MAAO2C,EAAU1C,QAEzD2C,GAAQ/C,KAAKD,QAAQmD,QACvBlD,KAAKD,QAAQmD,OAAOH,EAAKE,MAI7BjD,KAAKwC,UAAYW,OAAOC,YACtB,IAAMpD,KAAK2C,QACX3C,KAAKD,QAAQ0C,cASjB,IAAAjC,GACER,KAAKuC,UAAW,EAEZvC,KAAKwC,YACPa,aAAarD,KAAKwC,WAClBxC,KAAKwC,UAAY,MAGnBxC,KAAK0C,OAAOjC,UASd,gBAAA6C,CAAiBR,GACf,IACE,IACGA,IACAA,EAAUG,MACXH,EAAU3C,OAAS,GACnB2C,EAAU1C,QAAU,EAEpB,MAAM,IAAIoB,MAAM,WAGlB,MAAMuB,EAAOC,EAAKF,EAAUG,KAAMH,EAAU3C,MAAO2C,EAAU1C,QAE7D,OAAI2C,GAAQA,EAAKE,KACRF,EAAKE,KAGP,KACP,MAAO3B,GAMP,OALItB,KAAKD,QAAQ6C,SACf5C,KAAKD,QAAQ6C,QACXtB,aAAiBE,MAAQF,EAAQ,IAAIE,MAAMqB,OAAOvB,KAG/C,aC1IAiC,EAOX,wBAAOC,CAAkBV,GACvB,MAAMpB,EAASC,SAASC,cAAc,UACtCF,EAAOvB,MAAQ2C,EAAU3C,MACzBuB,EAAOtB,OAAS0C,EAAU1C,OAC1B,MAAMqD,EAAM/B,EAAOM,WAAW,MAM9B,OAJIyB,GACFA,EAAIC,aAAaZ,EAAW,EAAG,GAG1BpB,EAST,wBAAOiC,CAAkBjC,GACvB,MAAM+B,EAAM/B,EAAOM,WAAW,MAC9B,OAAOyB,EAAMA,EAAIvB,aAAa,EAAG,EAAGR,EAAOvB,MAAOuB,EAAOtB,QAAU,KAWrE,+BAAOwD,CAAyBd,EAAsBe,EAAqB,EAAGC,EAAmB,GAC/F,MAAMpC,EAAS1B,KAAKwD,kBAAkBV,GAChCW,EAAM/B,EAAOM,WAAW,MAE9B,GAAIyB,EAAK,CACP,MAAMM,EAAUN,EAAIvB,aAAa,EAAG,EAAGR,EAAOvB,MAAOuB,EAAOtB,QACtD6C,EAAOc,EAAQd,KAGfe,EAAU,KAAOF,EAAW,MAAS,KAAO,IAAMA,IAExD,IAAK,IAAIG,EAAI,EAAGA,EAAIhB,EAAKiB,OAAQD,GAAK,EAEpChB,EAAKgB,GAAKjE,KAAKmE,SAASH,GAAUf,EAAKgB,GAAK,KAAO,IAAMJ,GAEzDZ,EAAKgB,EAAI,GAAKjE,KAAKmE,SAASH,GAAUf,EAAKgB,EAAI,GAAK,KAAO,IAAMJ,GAEjEZ,EAAKgB,EAAI,GAAKjE,KAAKmE,SAASH,GAAUf,EAAKgB,EAAI,GAAK,KAAO,IAAMJ,GAKnE,OADAJ,EAAIC,aAAaK,EAAS,EAAG,GACtBA,EAGT,OAAOjB,EAUD,eAAOqB,CAASC,GACtB,OAAOC,KAAKC,IAAI,IAAKD,KAAKE,IAAI,EAAGH,IAWnC,kBAAOI,CAAY1B,GACjB,MAAMpB,EAAS1B,KAAKwD,kBAAkBV,GAChCW,EAAM/B,EAAOM,WAAW,MAE9B,GAAIyB,EAAK,CACP,MAAMM,EAAUN,EAAIvB,aAAa,EAAG,EAAGR,EAAOvB,MAAOuB,EAAOtB,QACtD6C,EAAOc,EAAQd,KAErB,IAAK,IAAIgB,EAAI,EAAGA,EAAIhB,EAAKiB,OAAQD,GAAK,EAAG,CACvC,MAAMQ,GAAOxB,EAAKgB,GAAKhB,EAAKgB,EAAI,GAAKhB,EAAKgB,EAAI,IAAM,EACpDhB,EAAKgB,GAAKQ,EACVxB,EAAKgB,EAAI,GAAKQ,EACdxB,EAAKgB,EAAI,GAAKQ,EAKhB,OADAhB,EAAIC,aAAaK,EAAS,EAAG,GACtBA,EAGT,OAAOjB,EAWT,aAAO4B,CAAO5B,EAAsB6B,EAAkBC,GACpD,MAAMlD,EAASC,SAASC,cAAc,UACtCF,EAAOvB,MAAQwE,EACfjD,EAAOtB,OAASwE,EAChB,MAAMnB,EAAM/B,EAAOM,WAAW,MAE9B,GAAIyB,EAAK,CACP,MAAMoB,EAAa7E,KAAKwD,kBAAkBV,GAE1C,OADAW,EAAIxB,UAAU4C,EAAY,EAAG,EAAG/B,EAAU3C,MAAO2C,EAAU1C,OAAQ,EAAG,EAAGuE,EAAUC,GAC5EnB,EAAIvB,aAAa,EAAG,EAAGyC,EAAUC,GAG1C,OAAO9B,EAYT,8BAAOgC,CAAwBhC,EAAsBiC,EAAuB,KAC1E,MAAM5E,MAAEA,EAAKC,OAAEA,GAAW0C,EAG1B,GAAI3C,GAAS4E,GAAgB3E,GAAU2E,EACrC,OAAOjC,EAIT,MAAMkC,EAAQD,EAAeV,KAAKE,IAAIpE,EAAOC,GACvCuE,EAAWN,KAAKY,MAAM9E,EAAQ6E,GAC9BJ,EAAYP,KAAKY,MAAM7E,EAAS4E,GAGtC,OAAOhF,KAAK0E,OAAO5B,EAAW6B,EAAUC,GAS1C,wBAAOM,CAAkBpC,GAEvB,OADe9C,KAAKwD,kBAAkBV,GACxBqC,UAAU,aAAc,IASxC,8BAAaC,CAAkBC,GAC7B,OAAO,IAAIpE,SAAQ,CAACC,EAASoE,KAC3B,MAAMC,EAAM,IAAIC,MAChBD,EAAIE,OAAS,KACX,MAAM/D,EAASC,SAASC,cAAc,UACtCF,EAAOvB,MAAQoF,EAAIpF,MACnBuB,EAAOtB,OAASmF,EAAInF,OACpB,MAAMqD,EAAM/B,EAAOM,WAAW,MAE9B,IAAKyB,EAEH,YADA6B,EAAO,IAAI9D,MAAM,kBAInBiC,EAAIxB,UAAUsD,EAAK,EAAG,GACtB,MAAMzC,EAAYW,EAAIvB,aAAa,EAAG,EAAGR,EAAOvB,MAAOuB,EAAOtB,QAC9Dc,EAAQ4B,EAAU,EAGpByC,EAAIG,QAAU,KACZJ,EAAO,IAAI9D,MAAM,UAAU,EAG7B+D,EAAII,IAAMN,CAAM,IAapB,mCAAaO,CACX9C,EACA+C,EACAC,EAAiB,GAGjB,GAAsB,oBAAXC,QAA0BjD,EAAU3C,MAAQ2C,EAAU1C,OAAS,IACxE,OAAOyF,EAAmB/C,GAI5B,MAAMkD,EAAerE,SAASC,cAAc,UAC5CoE,EAAa7F,MAAQ2C,EAAU3C,MAC/B6F,EAAa5F,OAAS0C,EAAU1C,OAChC,MAAM6F,EAAYD,EAAahE,WAAW,MAE1C,IAAKiE,EACH,MAAM,IAAIzE,MAAM,iBAIlB,MAAM0E,EAASpD,EAAU3C,MAAQ2C,EAAU1C,OACrC+F,EAAY9B,KAAK+B,OAAOF,EAASpD,EAAU3C,MAAQ2C,EAAU1C,QAAU0F,GAGvEO,EAAW,GAEjB,IAAK,IAAIpC,EAAI,EAAGA,EAAI6B,EAAQ7B,IAAK,CAC/B,MAAMqC,EAAc3E,SAASC,cAAc,UACrC2E,EAAWD,EAAYtE,WAAW,MAExC,IAAKuE,EAAU,SAEf,IAAIC,EAEJ,GAAIN,EAAQ,CAEV,MAAMO,EAASxC,EAAIkC,EACbhG,EAAS8D,IAAM6B,EAAS,EAAKhD,EAAU3C,MAAQsG,EAASN,EAE9DG,EAAYnG,MAAQA,EACpBmG,EAAYlG,OAAS0C,EAAU1C,OAG/B,MAAMyE,EAAa7E,KAAKwD,kBAAkBV,GAC1CyD,EAAStE,UACP4C,EACA4B,EAAQ,EAAGtG,EAAO2C,EAAU1C,OAC5B,EAAG,EAAGD,EAAO2C,EAAU1C,QAGzBoG,EAAiBD,EAASrE,aAAa,EAAG,EAAG/B,EAAO2C,EAAU1C,YACzD,CAEL,MAAMsG,EAASzC,EAAIkC,EACb/F,EAAU6D,IAAM6B,EAAS,EAAKhD,EAAU1C,OAASsG,EAASP,EAEhEG,EAAYnG,MAAQ2C,EAAU3C,MAC9BmG,EAAYlG,OAASA,EAGrB,MAAMyE,EAAa7E,KAAKwD,kBAAkBV,GAC1CyD,EAAStE,UACP4C,EACA,EAAG6B,EAAQ5D,EAAU3C,MAAOC,EAC5B,EAAG,EAAG0C,EAAU3C,MAAOC,GAGzBoG,EAAiBD,EAASrE,aAAa,EAAG,EAAGY,EAAU3C,MAAOC,GAIhE,MAAMuG,EAAa,iIAGcd,EAAmBe,8KAM9CC,EAAO,IAAIC,KAAK,CAACH,GAAa,CAAEI,KAAM,2BACtCC,EAAYC,IAAIC,gBAAgBL,GAChCM,EAAS,IAAIpB,OAAOiB,GAEpBI,EAAU,IAAInG,SAA+CC,IACjEiG,EAAOE,UAAY,SAASC,GAC1BpG,EAAQoG,EAAErE,MACVkE,EAAOI,YACPN,IAAIO,gBAAgBR,EACrB,EAGDG,EAAOM,YAAY,CACjB3E,UAAW0D,EACXkB,MAAOzD,GACN,CAACuC,EAAevD,KAAK0E,QAAQ,IAGlCtB,EAASuB,KAAKR,GAIhB,MAAMS,QAAgB5G,QAAQ6G,IAAIzB,GAGlCwB,EAAQE,MAAK,CAACC,EAAGC,IAAMD,EAAEN,MAAQO,EAAEP,QAGnC,IAAK,IAAIzD,EAAI,EAAGA,EAAI4D,EAAQ3D,OAAQD,IAAK,CACvC,MAAMiE,OAAEA,GAAWL,EAAQ5D,GACrBY,EAAa7E,KAAKwD,kBAAkB0E,GAE1C,GAAIhC,EAAQ,CACV,MAAMO,EAASxC,EAAIkC,EACnBF,EAAUhE,UAAU4C,EAAY4B,EAAQ,OACnC,CACL,MAAMC,EAASzC,EAAIkC,EACnBF,EAAUhE,UAAU4C,EAAY,EAAG6B,IAIvC,OAAOT,EAAU/D,aAAa,EAAG,EAAGY,EAAU3C,MAAO2C,EAAU1C,eCpTtD+H,EAUX,WAAArI,CAAoBC,EAAiC,IAAjCC,KAAOD,QAAPA,EARZC,KAAQuC,UAAG,EACXvC,KAASwC,UAAkB,KAQjCxC,KAAKD,QAAU,CACb0C,aAAc,OACX1C,GAGLC,KAAK0C,OAAS,IAAI7C,EAYpB,WAAMS,CAAMJ,GACV,UACQF,KAAK0C,OAAOnC,WAAWL,GAC7BF,KAAKuC,UAAW,EAChBvC,KAAK2C,OACL,MAAOrB,GACHtB,KAAKD,QAAQ6C,SACf5C,KAAKD,QAAQ6C,QACXtB,aAAiBE,MAAQF,EAAQ,IAAIE,MAAMqB,OAAOvB,MAalD,IAAAqB,GACN,IAAK3C,KAAKuC,SAAU,OAEpB,MAAMO,EAAY9C,KAAK0C,OAAOjB,eAE9B,GAAIqB,EACF,IAEE,MAAMsF,EAAgB7E,EAAeK,yBACnCL,EAAeiB,YAAY1B,GAC3B,GACA,IAMF9C,KAAKqI,cAAcD,GACnB,MAAO9G,GACPC,QAAQD,MAAM,WAAYA,GAI9BtB,KAAKwC,UAAYW,OAAOC,YACtB,IAAMpD,KAAK2C,QACX3C,KAAKD,QAAQ0C,cAYT,aAAA4F,CAAcvF,GAQpB,GAHAvB,QAAQ+G,IAAI,cAGRjE,KAAKkE,SAAW,IAAM,CACxB,MAAMC,EAAa,gBAEfxI,KAAKD,QAAQmD,QACflD,KAAKD,QAAQmD,OAAOsF,IAU1B,IAAAhI,GACER,KAAKuC,UAAW,EAEZvC,KAAKwC,YACPa,aAAarD,KAAKwC,WAClBxC,KAAKwC,UAAY,MAGnBxC,KAAK0C,OAAOjC,UASd,gBAAA6C,CAAiBR,GACf,IACE,IACGA,IACAA,EAAUG,MACXH,EAAU3C,OAAS,GACnB2C,EAAU1C,QAAU,EAEpB,MAAM,IAAIoB,MAAM,WAIlB,MAAM4G,EAAgB7E,EAAeK,yBACnCL,EAAeiB,YAAY1B,GAC3B,GACA,IASF,OADe9C,KAAKyI,yBAAyBL,GAE7C,MAAO9G,GAMP,OALItB,KAAKD,QAAQ6C,SACf5C,KAAKD,QAAQ6C,QACXtB,aAAiBE,MAAQF,EAAQ,IAAIE,MAAMqB,OAAOvB,KAG/C,MAYH,wBAAAmH,CAAyB3F,GAI/B,MAAM4F,EAAOrE,KAAK+B,MAAMtD,EAAU3C,MAAQ,GACpCwI,EAAOtE,KAAK+B,MAAMtD,EAAU1C,OAAS,GACrCwI,EAAcvE,KAAKC,IAAI,IAAKD,KAAK+B,MAAMtD,EAAU3C,MAAQ,IAE/D,IAAI0I,EAAY,EACZC,EAAY,EAGhB,IAAK,IAAIC,EAAIL,EAAOE,EAAc,EAAGG,EAAIL,EAAOE,EAAc,EAAGG,IAAK,CACpE,MAAMC,EAA0C,GAA9BL,EAAO7F,EAAU3C,MAAQ4I,GACrCE,EAAanG,EAAUG,KAAK+F,GAE9B3E,KAAK6E,IAAID,EAAaH,GAAa,IACrCD,IAGFC,EAAYG,EAKd,OAAIJ,EAAY,IAAMA,EAAY,GAEzB,MAAQxE,KAAK+B,MAAsB,KAAhB/B,KAAKkE,UAG1B,YCnLEY,EAOX,WAAArJ,CAAoBsJ,EAAkB,KAAlBpJ,KAAOoJ,QAAPA,EANZpJ,KAAAqJ,MAAQ,IAAIC,IAapB,GAAAC,CAAIC,GACF,IAAKxJ,KAAKqJ,MAAMI,IAAID,GAClB,OAIF,MAAMpF,EAAQpE,KAAKqJ,MAAME,IAAIC,GAM7B,OAHAxJ,KAAKqJ,MAAMK,OAAOF,GAClBxJ,KAAKqJ,MAAMM,IAAIH,EAAKpF,GAEbA,EAQT,GAAAuF,CAAIH,EAAQpF,GAOV,GALIpE,KAAKqJ,MAAMI,IAAID,IACjBxJ,KAAKqJ,MAAMK,OAAOF,GAIhBxJ,KAAKqJ,MAAMO,MAAQ5J,KAAKoJ,QAAS,CACnC,MAAMS,EAAY7J,KAAKqJ,MAAMS,OAAOC,OAAO3F,WACzB4F,IAAdH,GACF7J,KAAKqJ,MAAMK,OAAOG,GAKtB7J,KAAKqJ,MAAMM,IAAIH,EAAKpF,GAQtB,OAAOoF,GACL,OAAOxJ,KAAKqJ,MAAMK,OAAOF,GAM3B,KAAAS,GACEjK,KAAKqJ,MAAMY,QAMb,QAAIL,GACF,OAAO5J,KAAKqJ,MAAMO,KAOpB,GAAAH,CAAID,GACF,OAAOxJ,KAAKqJ,MAAMI,IAAID,aAWVU,EAA0BpH,EAAsB8G,EAAe,GAE7E,MAAMlI,EAASC,SAASC,cAAc,UACtCF,EAAOvB,MAAQyJ,EACflI,EAAOtB,OAASwJ,EAChB,MAAMnG,EAAM/B,EAAOM,WAAW,MAE9B,IAAKyB,EACH,MAAO,GAIT,MAAMoB,EAAalD,SAASC,cAAc,UAC1CiD,EAAW1E,MAAQ2C,EAAU3C,MAC7B0E,EAAWzE,OAAS0C,EAAU1C,OAC9B,MAAM+J,EAAUtF,EAAW7C,WAAW,MAEtC,IAAKmI,EACH,MAAO,GAGTA,EAAQzG,aAAaZ,EAAW,EAAG,GAGnCW,EAAIxB,UAAU4C,EAAY,EAAG,EAAG/B,EAAU3C,MAAO2C,EAAU1C,OAAQ,EAAG,EAAGwJ,EAAMA,GAG/E,MAAMQ,EAAe3G,EAAIvB,aAAa,EAAG,EAAG0H,EAAMA,GAC5CS,EAAa,GAEnB,IAAK,IAAIpG,EAAI,EAAGA,EAAImG,EAAanH,KAAKiB,OAAQD,GAAK,EAAG,CACpD,MAAMqG,EAAIF,EAAanH,KAAKgB,GACtBsG,EAAIH,EAAanH,KAAKgB,EAAI,GAC1BgE,EAAImC,EAAanH,KAAKgB,EAAI,GAE1BuG,EAAOnG,KAAKY,MAAM,KAAQqF,EAAI,KAAQC,EAAI,KAAQtC,GACxDoC,EAAWzC,KAAK4C,GAIlB,MAAM/F,EAAM4F,EAAWI,QAAO,CAACC,EAAKC,IAAQD,EAAMC,GAAK,GAAKN,EAAWnG,OAGvE,IAAI0G,EAAc,GAClB,IAAK,MAAMJ,KAAQH,EACjBO,GAAeJ,GAAQ/F,EAAM,IAAM,IAGrC,OAAOmG,CACT,OC/JaC,EAmBX,WAAA/K,CAAYC,GAjBJC,KAAS8K,WAAG,EACZ9K,KAAW+K,YAAkB,KAO7B/K,KAAUgL,WAAW,EACrBhL,KAAiBiL,kBAAW,EASlCjL,KAAK0C,OAAS,IAAI7C,EAEK,mBAAZE,GAETC,KAAKkL,WAAanL,EAClBC,KAAKD,QAAU,CACboL,kBAAmB,IACnBC,kBAAmB,IACnBC,aAAa,EACbC,UAAW,GACXC,OAAQhK,QAAQ+G,MAETvI,GAETC,KAAKD,QAAU,CACboL,kBAAmB,IACnBC,kBAAmB,IACnBC,aAAa,EACbC,UAAW,GACXC,OAAQhK,QAAQ+G,OACbvI,GAELC,KAAKkL,WAAanL,EAAQyL,YAC1BxL,KAAK4C,QAAU7C,EAAQ6C,SAEvB5C,KAAKD,QAAU,CACboL,kBAAmB,IACnBC,kBAAmB,IACnBC,aAAa,EACbC,UAAW,GACXC,OAAQhK,QAAQ+G,KAIpBtI,KAAKmL,kBAAoBnL,KAAKD,QAAQoL,kBACtCnL,KAAKoL,kBAAoBpL,KAAKD,QAAQqL,kBAGtCpL,KAAKyL,YAAc,IAAItC,EAAkCnJ,KAAKD,QAAQuL,WAGtEtL,KAAK0L,gBDlGO,SACdC,EACAC,GAEA,IAAIC,EAAW,EACXC,EAA2B,KAE/B,OAAO,YAAuBC,GAC5B,MAAMC,EAAMC,KAAKD,MACXE,EAAYN,GAASI,EAAMH,GAE7BK,GAAa,GACXJ,IACFzI,aAAayI,GACbA,EAAY,MAEdD,EAAWG,EACXL,EAAGQ,MAAMnM,KAAM+L,IACLD,IACVA,EAAY3I,OAAOC,YAAW,KAC5ByI,EAAWI,KAAKD,MAChBF,EAAY,KACZH,EAAGQ,MAAMnM,KAAM+L,EAAK,GACnBG,GAEN,CACH,CCwE2BE,CAASpM,KAAKqM,iBAAiBC,KAAKtM,MAAOA,KAAKmL,mBAWzE,WAAM7K,CAAMJ,SACJF,KAAK0C,OAAOnC,WAAWL,GAC7BF,KAAK8K,WAAY,EACjB9K,KAAKgL,WAAa,EAClBhL,KAAKiL,kBAAoB,EACzBjL,KAAKuM,SAMP,IAAA/L,GACER,KAAK8K,WAAY,EACQ,OAArB9K,KAAK+K,cACPyB,qBAAqBxM,KAAK+K,aAC1B/K,KAAK+K,YAAc,MASf,MAAAwB,GACDvM,KAAK8K,YAEV9K,KAAK+K,YAAc0B,uBAAsB,KACvC,IACEzM,KAAKgL,aACL,MAAMgB,EAAMU,YAAYV,OAIpBhM,KAAKgL,WAAa,GAAM,GAAKgB,EAAMhM,KAAKiL,mBAAqBjL,KAAKmL,qBACpEnL,KAAK0L,kBACL1L,KAAKiL,kBAAoBe,GAI3BhM,KAAKuM,SACL,MAAOjL,GACHtB,KAAK4C,QACP5C,KAAK4C,QAAQtB,GAEbC,QAAQD,MAAM,WAAYA,GAI5B8B,YAAW,KACLpD,KAAK8K,WACP9K,KAAKuM,WAEN,UAUD,sBAAMF,GACZ,IAAKrM,KAAK8K,YAAc9K,KAAK0C,OAAQ,OAGrC,MAAMiK,EAAQ3M,KAAK0C,OAAOjB,eAC1B,IAAKkL,EAAO,OAGZ,GAAI3M,KAAKD,QAAQsL,YAAa,CAC5B,MAAMT,EAAcV,EAA0ByC,EAAO,IAC/CC,EAAe5M,KAAKyL,YAAYlC,IAAIqB,GAE1C,GAAIgC,EAAc,CAChB5M,KAAKD,QAAQwL,SAAS,aAGtB,MAAMsB,EAAgB,IACjBD,EACH9J,UAAW6J,GAMb,YAHI3M,KAAKkL,YACPlL,KAAKkL,WAAW2B,KAOtB,MAAMC,EAAmBvJ,EAAeuB,wBAAwB6H,EAAO3M,KAAKoL,mBAE5E,IAEE,MAAMlD,QAAelI,KAAK+M,aAAaD,GAGvC,GAAI5E,EAAO8E,UACT9E,EAAOpF,UAAY6J,EAGf3M,KAAKD,QAAQsL,aAAa,CAC5B,MAAMT,EAAcV,EAA0ByC,EAAO,IACrD3M,KAAKyL,YAAY9B,IAAIiB,EAAa1C,GAKlClI,KAAKkL,YACPlL,KAAKkL,WAAWhD,GAElB,MAAO5G,GACHtB,KAAK4C,QACP5C,KAAK4C,QAAQtB,GAEbC,QAAQD,MAAM,WAAYA,IAYxB,kBAAMyL,CAAajK,GAEPS,EAAeiB,YAAY1B,GAQ7C,MAAMmK,EAAmC,CACvCD,QAAS3I,KAAKkE,SAAW,GACzB2E,QAAS,WAGX,GAAID,EAAgBD,QAAS,CAE3B,MAAM7M,EAAQ2C,EAAU3C,MAClBC,EAAS0C,EAAU1C,OAGnB+M,EAAY9I,KAAKY,MAAc,GAAR9E,GACvBiN,EAAa/I,KAAKY,MAAkB,KAAZkI,GACxBE,EAAQhJ,KAAKY,OAAO9E,EAAQgN,GAAa,GACzCG,EAAQjJ,KAAKY,OAAO7E,EAASgN,GAAc,GAGjDH,EAAgBM,QAAU,CACxB,CAAExE,EAAGsE,EAAOG,EAAGF,GACf,CAAEvE,EAAGsE,EAAQF,EAAWK,EAAGF,GAC3B,CAAEvE,EAAGsE,EAAQF,EAAWK,EAAGF,EAAQF,GACnC,CAAErE,EAAGsE,EAAOG,EAAGF,EAAQF,IAIzBH,EAAgBQ,YAAc,CAC5B1E,EAAGsE,EACHG,EAAGF,EACHnN,MAAOgN,EACP/M,OAAQgN,GAIV,MAAM1L,EAASC,SAASC,cAAc,UACtCF,EAAOvB,MAAQgN,EACfzL,EAAOtB,OAASgN,EAChB,MAAM3J,EAAM/B,EAAOM,WAAW,MAE9B,GAAIyB,EAAK,CACP,MAAMoB,EAAatB,EAAeC,kBAAkBV,GACpDW,EAAIxB,UACF4C,EACAwI,EAAOC,EAAOH,EAAWC,EACzB,EAAG,EAAGD,EAAWC,GAGnBH,EAAgBS,aAAejK,EAAIvB,aAAa,EAAG,EAAGiL,EAAWC,GAInEH,EAAgBU,WAAa,GAAsB,GAAhBtJ,KAAKkE,SAG1C,OAAO0E,EAMT,UAAAW,GACE5N,KAAKyL,YAAYxB,QACjBjK,KAAKD,QAAQwL,SAAS,aAMxB,OAAAsC,GACE7N,KAAKQ,OACLR,KAAK0C,OAAOjC,UACZT,KAAKyL,YAAYxB,SC3Sd6D,eAAeC,EAAmBC,GAEvC,MAAMC,EAAYvB,YAAYV,OAGxBkC,aAAEA,SAAuBC,OAAO,gBAGhChH,QAAe+G,EAAaF,EAAMI,mBAAqB,CAC3D7C,OAAS8C,GAAW9M,QAAQ+G,IAAI+F,KAGlC,UAEQlH,EAAOmH,aACPnH,EAAOoH,aAAa,iBACpBpH,EAAO5G,WAAW,iBAClB4G,EAAOqH,cAAc,CACzBC,wBAAyB,6QAI3B,MAAMxL,KAAEA,SAAekE,EAAOuH,UAAUV,EAAMW,aAGxCC,EA6BV,SAAyBC,GACvB,MAAMC,EAAmB,CAAE,EAGrBC,EAAQF,EAAKG,MAAM,MAAMC,QAAOC,GAAQA,EAAKC,SAG7CC,EAAgB,gBAChBC,EAAgBR,EAAKS,MAAMF,GAC7BC,IACFP,EAAKS,SAAWF,EAAc,IAIhC,IAAK,MAAMH,KAAQH,EACjB,GAAIG,EAAKM,SAAS,OAASN,EAAKhL,OAAS,IAAMgL,EAAKhL,OAAS,IAAM,KAAKuL,KAAKP,GAAO,CAClFJ,EAAKY,KAAOR,EAAKS,QAAQ,KAAM,IAAIR,OACnC,MAKJ,MAAMS,EAAyB,aACzBC,EAAchB,EAAKS,MAAMM,GAC/B,GAAIC,EAAa,CACff,EAAKgB,OAASD,EAAY,GAC1B,MAAME,EAAkBF,EAAY,GACpCf,EAAKkB,YAAcD,EAAgBE,UAAUF,EAAgBG,QAAQL,EAAY,IAAM,GAAGV,OAI5F,MAAMgB,EAAiB,+BACjBC,EAAiBvB,EAAKS,MAAMa,GAC9BC,IACFtB,EAAKuB,UAAY,GAAGD,EAAe,MAAMA,EAAe,MAAMA,EAAe,MAI/E,MAAME,EAAe,qBACfC,EAAe1B,EAAKS,MAAMgB,GAC5BC,IACFzB,EAAK0B,QAAUD,EAAa,GAAGZ,QAAQ,MAAO,IAAIR,QAIpD,MAAMsB,EAAiB,oBACjBC,EAAiB7B,EAAKS,MAAMmB,GAC9BC,IACF5B,EAAK6B,iBAAmBD,EAAe,GAAGf,QAAQ,MAAO,IAAIR,QAI/D,MAAMyB,EAAmB,sBACnBC,EAAmBhC,EAAKS,MAAMsB,GAChCC,IACF/B,EAAKgC,YAAcD,EAAiB,GAAGlB,QAAQ,OAAQ,IAAIR,QAG7D,OAAOL,CACT,CAxFuBiC,CAAgB9N,EAAK4L,YAGlC1H,EAAOI,YAMb,MAAO,CACLqH,aACAoC,eALqBtE,YAAYV,MAAQiC,GAO3C,MAAO3M,GAGP,YADM6F,EAAOI,YACPjG,EAEV,OCxBa2P,EAYX,WAAAnR,CAAYC,EAA+B,IAXnCC,KAAMmH,OAAQ,KACdnH,KAASkR,UAAsH,KAC/HlR,KAAWmR,aAAY,EAU7BnR,KAAKD,QAAU,CACbqR,UCsBqB,oBAAXrL,ODrBVsF,aAAa,EACbC,UAAW,GACXF,kBAAmB,IACnBG,OAAQhK,QAAQ+G,OACbvI,GAILC,KAAKyL,YAAc,IAAItC,EAA6BnJ,KAAKD,QAAQuL,WAUnE,gBAAM/K,GACAP,KAAKmR,cAELnR,KAAKD,QAAQqR,WAEfpR,KAAKkR,UC7EL,SAA6BG,GAKjC,MAAM1K,EAAa,0FAGW0K,EAAezK,iQAWvCC,EAAO,IAAIC,KAAK,CAACH,GAAa,CAAEI,KAAM,2BACtCC,EAAYC,IAAIC,gBAAgBL,GAChCM,EAAS,IAAIpB,OAAOiB,GAGpBsK,EAAa,IAAIhI,IAKvB,IAAIiI,EAAiB,EAwBrB,OAtBApK,EAAOE,UAAaC,IAEM,IAApBgK,EAAW1H,MACb3C,IAAIO,gBAAgBR,GAGtB,MAAMwK,GAAEA,EAAExE,QAAEA,EAAO9E,OAAEA,EAAM5G,MAAEA,GAAUgG,EAAErE,KAEnCwO,EAAkBH,EAAW/H,IAAIiI,GACvC,GAAIC,EAGF,GAFAH,EAAW5H,OAAO8H,GAEdxE,EACFyE,EAAgBvQ,QAAQgH,OACnB,CACL,MAAMwJ,EAAc,IAAIlQ,MAAMF,EAAM4L,SACpCwE,EAAYC,MAAQrQ,EAAMqQ,MAC1BF,EAAgBnM,OAAOoM,KAKtB,CACLjK,YAAcxE,GACL,IAAIhC,SAAQ,CAACC,EAASoE,KAC3B,MAAMkM,EAAKD,IACXD,EAAW3H,IAAI6H,EAAI,CAAEtQ,UAASoE,WAC9B6B,EAAOM,YAAY,CAAE+J,KAAIvO,QAAO,IAGpCsE,UAAW,KACTJ,EAAOI,YACP+J,EAAWrH,QACXhD,IAAIO,gBAAgBR,EAAU,EAGpC,CDUuB4K,CAAwF7D,GACzG/N,KAAKmR,aAAc,EACnBnR,KAAKD,QAAQwL,SAAS,sBAGtBvL,KAAKmH,OAAS+G,eAAa,CACzB3C,OAAQvL,KAAKD,QAAQwL,eAGjBvL,KAAKmH,OAAOmH,aACZtO,KAAKmH,OAAOoH,aAAa,iBACzBvO,KAAKmH,OAAO5G,WAAW,iBACvBP,KAAKmH,OAAOqH,cAAc,CAC9BC,wBAAyB,6QAG3BzO,KAAKmR,aAAc,EACnBnR,KAAKD,QAAQwL,SAAS,gBAS1B,mBAAMsG,CAAc/O,GAMlB,GALK9C,KAAKmR,mBACFnR,KAAKO,aAITP,KAAKD,QAAQsL,YAAa,CAC5B,MAAMT,EAAcV,EAA0BpH,GAGxC8J,EAAe5M,KAAKyL,YAAYlC,IAAIqB,GAC1C,GAAIgC,EAEF,OADA5M,KAAKD,QAAQwL,SAAS,cACfqB,EAKX,MAAMkF,EAAmBvO,EAAeuB,wBAAwBhC,EAAW9C,KAAKD,QAAQqL,mBAClFhD,EAAgB7E,EAAeK,yBAAyBkO,EAAkB,GAAI,IAGpF,IACE,IAAIlD,EAEJ,GAAI5O,KAAKD,QAAQqR,WAAapR,KAAKkR,UAAW,CAE5C,MAAMa,EAAcxO,EAAe2B,kBAAkBkD,GAE/CF,QAAelI,KAAKkR,UAAUzJ,YAAY,CAC9CkH,YAAaoD,EACb3D,kBAAmB,CACjB7C,OAAQvL,KAAKD,QAAQwL,UAIzBqD,EAAa1G,EAAO0G,WACpB5O,KAAKD,QAAQwL,SAAS,eAAerD,EAAO8I,eAAegB,QAAQ,YAC9D,CAEL,MAAM/D,EAAYvB,YAAYV,MAGxBtK,EAAS6B,EAAeC,kBAAkB4E,IAE1CnF,KAAEA,SAAejD,KAAKmH,OAAOuH,UAAUhN,GAG7CkN,EAAa5O,KAAK+Q,gBAAgB9N,EAAK4L,MAEvC,MAAMmC,EAAiBtE,YAAYV,MAAQiC,EAC3CjO,KAAKD,QAAQwL,SAAS,eAAeyF,EAAegB,QAAQ,QAI9D,GAAIhS,KAAKD,QAAQsL,YAAa,CAC5B,MAAMT,EAAcV,EAA0BpH,GAC9C9C,KAAKyL,YAAY9B,IAAIiB,EAAagE,GAGpC,OAAOA,EACP,MAAOtN,GAEP,OADAtB,KAAKD,QAAQwL,SAAS,YAAYjK,KAC3B,CAAgB,GAanB,eAAAyP,CAAgBlC,GACtB,MAAMC,EAAmB,CAAE,EAGrBC,EAAQF,EAAKG,MAAM,MAAMC,QAAOC,GAAQA,EAAKC,SAI7CE,EAAgBR,EAAKS,MADL,iBAElBD,IACFP,EAAKS,SAAWF,EAAc,IAIhC,IAAK,MAAMH,KAAQH,EACjB,GAAIG,EAAKM,SAAS,OAASN,EAAKhL,OAAS,IAAMgL,EAAKhL,OAAS,IAAM,KAAKuL,KAAKP,GAAO,CAClFJ,EAAKY,KAAOR,EAAKS,QAAQ,KAAM,IAAIR,OACnC,MAKJ,MACMU,EAAchB,EAAKS,MADM,cAE/B,GAAIO,EAAa,CACff,EAAKgB,OAASD,EAAY,GAC1B,MAAME,EAAkBF,EAAY,GACpCf,EAAKkB,YAAcD,EAAgBE,UAAUF,EAAgBG,QAAQL,EAAY,IAAM,GAAGV,OAI5F,MACMiB,EAAiBvB,EAAKS,MADL,gCAEnBc,IACFtB,EAAKuB,UAAY,GAAGD,EAAe,MAAMA,EAAe,MAAMA,EAAe,MAI/E,MACMG,EAAe1B,EAAKS,MADL,sBAEjBiB,IACFzB,EAAK0B,QAAUD,EAAa,GAAGZ,QAAQ,MAAO,IAAIR,QAIpD,MACMuB,EAAiB7B,EAAKS,MADL,qBAEnBoB,IACF5B,EAAK6B,iBAAmBD,EAAe,GAAGf,QAAQ,MAAO,IAAIR,QAI/D,MACM0B,EAAmBhC,EAAKS,MADL,uBAMzB,OAJIuB,IACF/B,EAAKgC,YAAcD,EAAiB,GAAGlB,QAAQ,OAAQ,IAAIR,QAGtDL,EAMT,UAAAlB,GACE5N,KAAKyL,YAAYxB,QACjBjK,KAAKD,QAAQwL,SAAS,cAQxB,eAAMhE,GACAvH,KAAKmH,eACDnH,KAAKmH,OAAOI,YAClBvH,KAAKmH,OAAS,MAGZnH,KAAKkR,YACPlR,KAAKkR,UAAU3J,YACfvH,KAAKkR,UAAY,MAGnBlR,KAAKmR,aAAc,EACnBnR,KAAKD,QAAQwL,SAAS,YAMxB,OAAAsC,GACE,OAAO7N,KAAKuH,mBE7PH0K,EASX,uBAAOC,CAAiB3C,GAEtB,IAAKA,GAAgC,KAApBA,EAASrL,OACxB,OAAO,EAKT,IADgB,gBACHuL,KAAKF,GAChB,OAAO,EAIT,MAAM4C,EAAOC,SAAS7C,EAAS8C,OAAO,EAAG,IACnCC,EAAQF,SAAS7C,EAAS8C,OAAO,GAAI,IACrCE,EAAMH,SAAS7C,EAAS8C,OAAO,GAAI,IAEnCG,EAAO,IAAIvG,KAAKkG,EAAMG,EAAQ,EAAGC,GACvC,OACEC,EAAKC,gBAAkBN,GACvBK,EAAKE,WAAa,IAAMJ,GACxBE,EAAKG,YAAcJ,EAevB,6BAAOK,CAAuBrD,GAC5B,IAAKvP,KAAKkS,iBAAiB3C,GACzB,OAAO,KAOT,MAAO,GAJMA,EAAS8C,OAAO,EAAG,MAClB9C,EAAS8C,OAAO,GAAI,MACtB9C,EAAS8C,OAAO,GAAI,KAalC,0BAAOQ,CAAoBtD,GACzB,IAAKvP,KAAKkS,iBAAiB3C,GACzB,OAAO,KAKT,OADmB6C,SAAS7C,EAASuD,OAAO,KACxB,GAAM,EAAI,IAAM,IAStC,0BAAOC,CAAoBxD,GACzB,OAAKvP,KAAKkS,iBAAiB3C,GAIpBA,EAAS8C,OAAO,EAAG,GAHjB,KAgBX,wBAAOW,CAAkBC,EAAqB1D,GAC5C,MAAMrH,EAAS,IAAK+K,GAgBpB,GAbI/K,EAAOqH,UAAYvP,KAAKkS,iBAAiBhK,EAAOqH,YAE7CrH,EAAOmI,YACVnI,EAAOmI,UAAYrQ,KAAK4S,uBAAuB1K,EAAOqH,gBAAavF,GAIhE9B,EAAO4H,SACV5H,EAAO4H,OAAS9P,KAAK6S,oBAAoB3K,EAAOqH,gBAAavF,IAK7DuF,GAAYvP,KAAKkS,iBAAiB3C,GAAW,CAC/CrH,EAAOqH,SAAWA,EAGlB,MAAMc,EAAYrQ,KAAK4S,uBAAuBrD,GAC1Cc,IACFnI,EAAOmI,UAAYA,GAGrB,MAAMP,EAAS9P,KAAK6S,oBAAoBtD,GACpCO,IACF5H,EAAO4H,OAASA,GAIpB,OAAO5H,EAST,kBAAAgL,CAAmBtE,GACjB,MAAMuE,EAAe,IAAIvE,GA6BzB,OA1BIuE,EAAa5D,WACf4D,EAAa5D,SAAWvP,KAAKoT,kBAAkBD,EAAa5D,UAGxDvP,KAAKkS,iBAAiBiB,EAAa5D,YAChC4D,EAAa9C,YAChB8C,EAAa9C,UAAYrQ,KAAK4S,uBAAuBO,EAAa5D,WAI/D4D,EAAarD,SAChBqD,EAAarD,OAAS9P,KAAK6S,oBAAoBM,EAAa5D,aAM9D4D,EAAa9C,YACf8C,EAAa9C,UAAYrQ,KAAKqT,cAAcF,EAAa9C,YAIvD8C,EAAa3C,UACf2C,EAAa3C,QAAUxQ,KAAKsT,iBAAiBH,EAAa3C,UAGrD2C,EAMD,iBAAAC,CAAkB7D,GAExB,OAAOA,EAASI,QAAQ,UAAW,IAAI4D,cAMjC,gBAAArB,CAAiB3C,GAGvB,MADgB,iCACDE,KAAKF,GAMd,sBAAAqD,CAAuBrD,GAC7B,OAAwB,KAApBA,EAASrL,OACJ,GAAGqL,EAASU,UAAU,EAAG,OAAOV,EAASU,UAAU,GAAI,OAAOV,EAASU,UAAU,GAAI,MAC/D,KAApBV,EAASrL,OACX,KAAKqL,EAASU,UAAU,EAAG,MAAMV,EAASU,UAAU,EAAG,OAAOV,EAASU,UAAU,GAAI,MAEvF,GAMD,mBAAA4C,CAAoBtD,GAC1B,IAAIiE,EAMJ,OAJEA,EADsB,KAApBjE,EAASrL,OACDkO,SAAS7C,EAASuD,OAAO,KAEzBV,SAAS7C,EAASuD,OAAO,KAE9BU,EAAU,GAAM,EAAI,IAAM,IAM3B,aAAAH,CAAcb,GAEpB,OAAOA,EAAK7C,QAAQ,wBAAyB,YAMvC,gBAAA2D,CAAiB9C,GAEvB,OAAOA,EAAQrB;;;;;;;mBChNjB,WAAArP,CAAoBC,EAA4B,IAA5BC,KAAOD,QAAPA,EAfZC,KAAQyT,SAAgC,KACxCzT,KAAYE,aAA4B,KAGxCF,KAAQ0T,SAAQ,KAChB1T,KAAS2T,UAAQ,KAGjB3T,KAAgB4T,kBAAY,EAC5B5T,KAAiB6T,mBAAY,EAOnC7T,KAAK0C,OAAS,IAAI7C,EAAOE,EAAQ+T,eAOnC,gBAAMvT,GACJ,IAEE,IAAKP,KAAK6T,kBAAmB,CAE3B,MAAME,QAAkB9S,+CAAuBI,MAAMgN,GAAMA,EAAE0F,YAC7D/T,KAAK2T,UAAY,IAAII,EAAU,CAC7BD,cAAe9T,KAAKD,QAAQ+T,cAC5BE,gBAAiBhU,KAAKD,QAAQiU,gBAC9BpR,QAAS5C,KAAKD,QAAQ6C,UAExB5C,KAAK6T,mBAAoB,QAGnB7T,KAAK2T,UAAUpT,aAGvBgB,QAAQ+G,IAAI,yBACZ,MAAOhH,GAEP,MADAtB,KAAKiU,YAAY3S,GACXA,GAQV,oBAAM4S,CAAehU,GACnBF,KAAKQ,OACLR,KAAKE,aAAeA,EACpBF,KAAKyT,SAAW,KAEhB,IAEE,IAAKzT,KAAK4T,iBAAkB,CAC1B,MAAMO,QAAsBlT,+CAAsBI,MAC/CgN,GAAMA,EAAE8F,gBAEXnU,KAAK0T,SAAW,IAAIS,EAAc,CAChCL,cAAe9T,KAAKD,QAAQ+T,cAC5BM,iBAAkBpU,KAAKD,QAAQqU,iBAC/BC,sBAAuBrU,KAAKD,QAAQsU,sBACpCC,gBAAiBtU,KAAKD,QAAQuU,gBAC9BC,iBAAkBvU,KAAKD,QAAQwU,iBAC/B3R,QAAS5C,KAAKD,QAAQ6C,UAExB5C,KAAK4T,kBAAmB,QAGpB5T,KAAK0T,SAASQ,eAAehU,GACnC,MAAOoB,GACPtB,KAAKiU,YAAY3S,IAQrB,yBAAMkT,CAAoBtU,GACxBF,KAAKQ,OACLR,KAAKE,aAAeA,EACpBF,KAAKyT,SAAW,UAEhB,IAEE,IAAKzT,KAAK4T,iBAAkB,CAC1B,MAAMO,QAAsBlT,+CAAsBI,MAC/CgN,GAAMA,EAAE8F,gBAEXnU,KAAK0T,SAAW,IAAIS,EAAc,CAChCL,cAAe9T,KAAKD,QAAQ+T,cAC5BM,iBAAkBpU,KAAKD,QAAQqU,iBAC/BC,sBAAuBrU,KAAKD,QAAQsU,sBACpCC,gBAAiBtU,KAAKD,QAAQuU,gBAC9BC,iBAAkBvU,KAAKD,QAAQwU,iBAC/B3R,QAAS5C,KAAKD,QAAQ6C,UAExB5C,KAAK4T,kBAAmB,QAGpB5T,KAAK0T,SAASc,oBAAoBtU,GACxC,MAAOoB,GACPtB,KAAKiU,YAAY3S,IAQrB,wBAAMmT,CAAmBvU,GACvBF,KAAKQ,OACLR,KAAKE,aAAeA,EACpBF,KAAKyT,SAAW,SAEhB,IAEOzT,KAAK6T,yBACF7T,KAAKO,mBAGPP,KAAK2T,UAAUc,mBAAmBvU,GACxC,MAAOoB,GACPtB,KAAKiU,YAAY3S,IAOrB,IAAAd,GACwB,OAAlBR,KAAKyT,UAAuC,YAAlBzT,KAAKyT,SAC7BzT,KAAK0T,UACP1T,KAAK0T,SAASlT,OAEW,WAAlBR,KAAKyT,UACVzT,KAAK2T,WACP3T,KAAK2T,UAAUnT,OAQb,WAAAyT,CAAY3S,GACdtB,KAAKD,QAAQ6C,QACf5C,KAAKD,QAAQ6C,QAAQtB,GAErBC,QAAQD,MAAM,mBAAoBA,GAOtC,eAAMiG,GACJvH,KAAKQ,OAGDR,KAAK6T,mBAAqB7T,KAAK2T,kBAC3B3T,KAAK2T,UAAUpM,YACrBvH,KAAK2T,UAAY,KACjB3T,KAAK6T,mBAAoB,GAIvB7T,KAAK4T,kBAAoB5T,KAAK0T,WAChC1T,KAAK0T,SAAW,KAChB1T,KAAK4T,kBAAmB,GAS5B,wBAAMc,CACJC,GAEA,IAEE,IAAK3U,KAAK4T,iBAAkB,CAC1B,MAAMO,QAAsBlT,+CAAsBI,MAC/CgN,GAAMA,EAAE8F,gBAEXnU,KAAK0T,SAAW,IAAIS,EAAc,CAChCC,iBAAkBpU,KAAKD,QAAQqU,iBAC/BE,gBAAiBtU,KAAKD,QAAQuU,gBAC9B1R,QAAS5C,KAAKD,QAAQ6C,UAExB5C,KAAK4T,kBAAmB,EAI1B,IAAIgB,EACJ,GAA2B,iBAAhBD,EAETC,EAAe,IAAIpP,MACnBoP,EAAaC,YAAc,kBACrB,IAAI5T,SAAQ,CAACC,EAASoE,KAC1BsP,EAAanP,OAASvE,EACtB0T,EAAalP,QAAUJ,EACvBsP,EAAajP,IAAMgP,CAAW,SAE3B,GAAIA,aAAuBG,iBAEhCF,EAAeD,MACV,MAAIA,aAAuBI,mBAUhC,MAAM,IAAIvT,MAAM,aAVmC,CAEnD,MAAMwT,EAAUL,EAAYxP,YAC5ByP,EAAe,IAAIpP,YACb,IAAIvE,SAAQ,CAACC,EAASoE,KAC1BsP,EAAanP,OAASvE,EACtB0T,EAAalP,QAAUJ,EACvBsP,EAAajP,IAAMqP,CAAO,KAO9B,MAAMtT,EAASC,SAASC,cAAc,UAChC6B,EAAM/B,EAAOM,WAAW,MAC9B,IAAKyB,EACH,MAAM,IAAIjC,MAAM,iBAIlBE,EAAOvB,MAAQyU,EAAaK,aAC5BvT,EAAOtB,OAASwU,EAAaM,cAC7BzR,EAAIxB,UAAU2S,EAAc,EAAG,GAG/B,MAAM9R,EAAYW,EAAIvB,aAAa,EAAG,EAAGR,EAAOvB,MAAOuB,EAAOtB,QAC9D,aAAaJ,KAAK0T,SAASgB,mBAAmB5R,GAC9C,MAAOxB,GAEP,MADAtB,KAAKiU,YAAY3S,GACXA,GASV,yBAAM6T,CACJR,GAEA,IAEE,IAAK3U,KAAK4T,iBAAkB,CAC1B,MAAMO,QAAsBlT,+CAAsBI,MAC/CgN,GAAMA,EAAE8F,gBAEXnU,KAAK0T,SAAW,IAAIS,EAAc,CAChCE,sBAAuBrU,KAAKD,QAAQsU,sBACpCE,iBAAkBvU,KAAKD,QAAQwU,iBAC/B3R,QAAS5C,KAAKD,QAAQ6C,UAExB5C,KAAK4T,kBAAmB,EAI1B,IAAIgB,EACJ,GAA2B,iBAAhBD,EAETC,EAAe,IAAIpP,MACnBoP,EAAaC,YAAc,kBACrB,IAAI5T,SAAQ,CAACC,EAASoE,KAC1BsP,EAAanP,OAASvE,EACtB0T,EAAalP,QAAUJ,EACvBsP,EAAajP,IAAMgP,CAAW,SAE3B,GAAIA,aAAuBG,iBAEhCF,EAAeD,MACV,MAAIA,aAAuBI,mBAUhC,MAAM,IAAIvT,MAAM,aAVmC,CAEnD,MAAMwT,EAAUL,EAAYxP,YAC5ByP,EAAe,IAAIpP,YACb,IAAIvE,SAAQ,CAACC,EAASoE,KAC1BsP,EAAanP,OAASvE,EACtB0T,EAAalP,QAAUJ,EACvBsP,EAAajP,IAAMqP,CAAO,KAO9B,MAAMtT,EAASC,SAASC,cAAc,UAChC6B,EAAM/B,EAAOM,WAAW,MAC9B,IAAKyB,EACH,MAAM,IAAIjC,MAAM,iBAIlBE,EAAOvB,MAAQyU,EAAaK,aAC5BvT,EAAOtB,OAASwU,EAAaM,cAC7BzR,EAAIxB,UAAU2S,EAAc,EAAG,GAG/B,MAAM9R,EAAYW,EAAIvB,aAAa,EAAG,EAAGR,EAAOvB,MAAOuB,EAAOtB,QAC9D,aAAaJ,KAAK0T,SAASyB,oBAAoBrS,GAC/C,MAAOxB,GAEP,MADAtB,KAAKiU,YAAY3S,GACXA,GASV,wBAAM8T,CACJT,GAEA,IAOE,IAAIC,EACJ,GANK5U,KAAK6T,yBACF7T,KAAKO,aAKc,iBAAhBoU,EAETC,EAAe,IAAIpP,MACnBoP,EAAaC,YAAc,kBACrB,IAAI5T,SAAQ,CAACC,EAASoE,KAC1BsP,EAAanP,OAASvE,EACtB0T,EAAalP,QAAUJ,EACvBsP,EAAajP,IAAMgP,CAAW,SAE3B,GAAIA,aAAuBG,iBAEhCF,EAAeD,MACV,MAAIA,aAAuBI,mBAUhC,MAAM,IAAIvT,MAAM,aAVmC,CAEnD,MAAMwT,EAAUL,EAAYxP,YAC5ByP,EAAe,IAAIpP,YACb,IAAIvE,SAAQ,CAACC,EAASoE,KAC1BsP,EAAanP,OAASvE,EACtB0T,EAAalP,QAAUJ,EACvBsP,EAAajP,IAAMqP,CAAO,KAO9B,MAAMtT,EAASC,SAASC,cAAc,UAChC6B,EAAM/B,EAAOM,WAAW,MAC9B,IAAKyB,EACH,MAAM,IAAIjC,MAAM,iBAIlBE,EAAOvB,MAAQyU,EAAaK,aAC5BvT,EAAOtB,OAASwU,EAAaM,cAC7BzR,EAAIxB,UAAU2S,EAAc,EAAG,GAG/B,MAAM9R,EAAYW,EAAIvB,aAAa,EAAG,EAAGR,EAAOvB,MAAOuB,EAAOtB,QAI9D,aADwBJ,KAAK2T,UAAU9B,cAAc/O,GAErD,MAAOxB,GAEP,MADAtB,KAAKiU,YAAY3S,GACXA,WC7ZC+T,EAOX,WAAAvV,CACEwV,EACAC,EACAC,EACAC,GANMzV,KAAU0V,WAA4B,KA8DtC1V,KAAW2V,YAAgC,KArDjD3V,KAAKE,aAAeyB,SAASiU,eAC3BN,GAEFtV,KAAK6V,gBAAkBlU,SAASiU,eAC9BL,GAEFvV,KAAK8V,aAAenU,SAASiU,eAC3BJ,GAIEC,IACFzV,KAAK0V,WAAa/T,SAASiU,eACzBH,GAEEzV,KAAK0V,YACP1V,KAAK0V,WAAWK,iBACd,SACA/V,KAAKgW,iBAAiB1J,KAAKtM,QAKjC,IAEEA,KAAKiW,QAAU,IAAIC,EAAU,CAC3B5B,gBAAiBtU,KAAKmW,mBAAmB7J,KAAKtM,MAC9CuU,iBAAkBvU,KAAKmW,mBAAmB7J,KAAKtM,MAC/CgU,gBAAiBhU,KAAKoW,mBAAmB9J,KAAKtM,MAC9C4C,QAAS5C,KAAKiU,YAAY3H,KAAKtM,QAEjC,MAAOsB,GACPC,QAAQD,MAAM,mBAAoBA,GAClCtB,KAAKiU,YAAY3S,aAAiBE,MAAQF,EAAQ,IAAIE,MAAM,UAE5DxB,KAAKiW,QAAU,CAAe,EAIhCjW,KAAK8V,aAAaC,iBAAiB,QAAS/V,KAAKqW,eAAe/J,KAAKtM,OAGvE,gBAAMO,GACJ,UACQP,KAAKiW,QAAQ1V,mBACbP,KAAKiW,QAAQ/B,eAAelU,KAAKE,cACvCF,KAAK8V,aAAaQ,YAAc,WAChCtW,KAAK2V,YAAc,KACnB,MAAOrU,GACPtB,KAAKiU,YAAY3S,aAAiBE,MAAQF,EAAQ,IAAIE,MAAM,WAMxD,oBAAM6U,GACZ,IACErW,KAAKiW,QAAQzV,OAEY,OAArBR,KAAK2V,aACP3V,KAAK2V,YAAc,gBACb3V,KAAKiW,QAAQzB,oBAAoBxU,KAAKE,cAC5CF,KAAK8V,aAAaQ,YAAc,YACF,YAArBtW,KAAK2V,aACd3V,KAAK2V,YAAc,eACb3V,KAAKiW,QAAQxB,mBAAmBzU,KAAKE,cAC3CF,KAAK8V,aAAaQ,YAAc,aAEhCtW,KAAK2V,YAAc,WACb3V,KAAKiW,QAAQ/B,eAAelU,KAAKE,cACvCF,KAAK8V,aAAaQ,YAAc,YAGlCtW,KAAK6V,gBAAgBU,UAAY,GACjC,MAAOjV,GACPtB,KAAKiU,YACH3S,aAAiBE,MAAQF,EAAQ,IAAIE,MAAM,YASzC,sBAAMwU,CAAiBQ,GAC7B,MAAMxI,EAAQwI,EAAMC,OACpB,IAAKzI,EAAM0I,OAAgC,IAAvB1I,EAAM0I,MAAMxS,OAAc,OAE9C,MAAMyS,EAAO3I,EAAM0I,MAAM,GAEzB,IAEE,IAAKC,EAAK5P,KAAK6P,WAAW,UACxB,MAAM,IAAIpV,MAAM,WAIlB,MAAMqV,EAAW5P,IAAIC,gBAAgByP,GAGrC3W,KAAK6V,gBAAgBU,UAAY,mDAEnBM,+EAId,IACE,GAAyB,OAArB7W,KAAK2V,YAAsB,CAC7B,MAAMzN,QAAelI,KAAKiW,QAAQvB,mBAAmBmC,GACjD3O,GACFlI,KAAKmW,mBAAmBjO,QAErB,GAAyB,YAArBlI,KAAK2V,YAA2B,CACzC,MAAMzN,QAAelI,KAAKiW,QAAQd,oBAAoB0B,GAClD3O,GACFlI,KAAKmW,mBAAmBjO,QAErB,GAAyB,WAArBlI,KAAK2V,YAA0B,CACxC,MAAMzN,QAAelI,KAAKiW,QAAQb,mBAAmByB,GACjD3O,GACFlI,KAAKoW,mBAAmBlO,IAG5B,MAAO5G,GAEPtB,KAAK6V,gBAAgBU,UAAY,mDAEnBM,0JAGVvV,aAAiBE,MAAQF,EAAM4L,QAAU,uBAM/Cc,EAAM5J,MAAQ,GACd,MAAO9C,GACPtB,KAAKiU,YACH3S,aAAiBE,MAAQF,EAAQ,IAAIE,MAAMqB,OAAOvB,KAIpD0M,EAAM5J,MAAQ,IAIV,kBAAA+R,CAAmBjO,GACzBlI,KAAK6V,gBAAgBU,UAAY,oCAE1BrO,cAID,kBAAAkO,CAAmBtH,GACzB9O,KAAK6V,gBAAgBU,UAAY,yCAEtBzH,EAAKY,MAAQ,2BACbZ,EAAKgB,QAAU,2BACfhB,EAAKkB,aAAe,6BAClBlB,EAAKuB,WAAa,2BACpBvB,EAAK0B,SAAW,6BACd1B,EAAKS,UAAY,6BACjBT,EAAK6B,kBAAoB,6BACzB7B,EAAKgC,aAAe,kBAI3B,WAAAmD,CAAY3S,GAClBC,QAAQD,MAAM,QAASA,GACvBtB,KAAK6V,gBAAgBU,UAAY,iEAGxBjV,EAAM4L,kCAKjB,IAAA1M,GACMR,KAAKiW,SAAwC,mBAAtBjW,KAAKiW,QAAQzV,MACtCR,KAAKiW,QAAQzV,OAEXR,KAAKiW,SAA6C,mBAA3BjW,KAAKiW,QAAQ1O,WACtCvH,KAAKiW,QAAQ1O;;;;;;;aC7JN2O,EAiBX,WAAApW,CAAoBC,EAA4B,IAA5BC,KAAOD,QAAPA,EAfZC,KAAS8W,UAAqB,KAC9B9W,KAAc+W,eAA0B,KACxC/W,KAAUgX,WAA0B,KACpChX,KAAYiX,aAAwB,KACpCjX,KAAakX,cAAyB,KACtClX,KAAQyT,SAAgC,KACxCzT,KAAYE,aAA4B,KAU9CF,KAAK0C,OAAS,IAAI7C,EAAOE,EAAQ+T,eAOnC,gBAAMvT,GACJ,IAEEP,KAAKiX,aAAe,IAAIhG,EACxBjR,KAAKkX,cAAgB,IAAIjF,QACnBjS,KAAKiX,aAAa1W,aAExBgB,QAAQ+G,IAAI,yBACZ,MAAOhH,GAEP,MADAtB,KAAKiU,YAAY3S,GACXA,GAQV,oBAAM4S,CAAehU,GACnBF,KAAKQ,OACLR,KAAKE,aAAeA,EACpBF,KAAKyT,SAAW,KAEhB,IACOzT,KAAK8W,YACR9W,KAAK8W,UAAY,IAAIxU,EAAU,IAC1BtC,KAAKD,QAAQqU,iBAChBlR,OAAQlD,KAAKmX,aAAa7K,KAAKtM,eAI7BA,KAAK0C,OAAOpC,MAAMJ,GACxBF,KAAK8W,UAAUxW,MAAMJ,GACrB,MAAOoB,GACPtB,KAAKiU,YAAY3S,IAQrB,yBAAMkT,CAAoBtU,GACxBF,KAAKQ,OACLR,KAAKE,aAAeA,EACpBF,KAAKyT,SAAW,UAEhB,IACOzT,KAAK+W,iBACR/W,KAAK+W,eAAiB,IAAI5O,EAAe,IACpCnI,KAAKD,QAAQsU,sBAChBnR,OAAQlD,KAAKoX,kBAAkB9K,KAAKtM,eAIlCA,KAAK0C,OAAOpC,MAAMJ,GACxBF,KAAK+W,eAAezW,MAAMJ,GAC1B,MAAOoB,GACPtB,KAAKiU,YAAY3S,IAQrB,wBAAMmT,CAAmBvU,GACvBF,KAAKQ,OACLR,KAAKE,aAAeA,EACpBF,KAAKyT,SAAW,SAEhB,IACOzT,KAAKiX,oBACFjX,KAAKO,aAGRP,KAAKgX,aACRhX,KAAKgX,WAAa,IAAInM,EAAe,CACnCW,YAAaxL,KAAKqX,kBAAkB/K,KAAKtM,MACzC4C,QAAS5C,KAAKiU,YAAY3H,KAAKtM,eAI7BA,KAAK0C,OAAOpC,MAAMJ,GACxBF,KAAKgX,WAAW1W,MAAMJ,GACtB,MAAOoB,GACPtB,KAAKiU,YAAY3S,IAOrB,IAAAd,GACwB,OAAlBR,KAAKyT,UAAqBzT,KAAK8W,UACjC9W,KAAK8W,UAAUtW,OACY,YAAlBR,KAAKyT,UAA0BzT,KAAK+W,eAC7C/W,KAAK+W,eAAevW,OACO,WAAlBR,KAAKyT,UAAyBzT,KAAKgX,YAC5ChX,KAAKgX,WAAWxW,OAGlBR,KAAK0C,OAAOlC,OAMN,YAAA2W,CAAajP,GACflI,KAAKD,QAAQuU,iBACftU,KAAKD,QAAQuU,gBAAgBpM,GAOzB,iBAAAkP,CAAkBlP,GACpBlI,KAAKD,QAAQwU,kBACfvU,KAAKD,QAAQwU,iBAAiBrM,GAO1B,uBAAMmP,CAAkBnP,GAC9B,GAAKlI,KAAKiX,cAAiBjX,KAAKkX,cAEhC,IAEE,IAAKhP,EAAOpF,UAEV,YADA9C,KAAKiU,YAAY,IAAIzS,MAAM,YAI7B,MAAMoN,QAAmB5O,KAAKiX,aAAapF,cAAc3J,EAAOpF,WAC1DwU,EAAgBtX,KAAKkX,cAAchE,mBAAmBtE,GAExD5O,KAAKD,QAAQiU,iBACfhU,KAAKD,QAAQiU,gBAAgBsD,GAE/B,MAAOhW,GACPtB,KAAKiU,YAAY3S,IAOb,WAAA2S,CAAY3S,GACdtB,KAAKD,QAAQ6C,QACf5C,KAAKD,QAAQ6C,QAAQtB,GAErBC,QAAQD,MAAM,mBAAoBA,GAOtC,eAAMiG,GACJvH,KAAKQ,OAEDR,KAAKiX,qBACDjX,KAAKiX,aAAa1P,YACxBvH,KAAKiX,aAAe,MAGtBjX,KAAK8W,UAAY,KACjB9W,KAAK+W,eAAiB,KACtB/W,KAAKgX,WAAa,KAClBhX,KAAKkX,cAAgB,KAQvB,wBAAMxC,CACJC,GAEA,IASE,IAAIC,EACJ,GATK5U,KAAK8W,YACR9W,KAAK8W,UAAY,IAAIxU,EAAU,IAC1BtC,KAAKD,QAAQqU,iBAChBlR,OAAQlD,KAAKmX,aAAa7K,KAAKtM,SAMR,iBAAhB2U,EAETC,EAAe,IAAIpP,MACnBoP,EAAaC,YAAc,kBACrB,IAAI5T,SAAQ,CAACC,EAASoE,KAC1BsP,EAAanP,OAASvE,EACtB0T,EAAalP,QAAUJ,EACvBsP,EAAajP,IAAMgP,CAAW,SAE3B,GAAIA,aAAuBG,iBAEhCF,EAAeD,MACV,MAAIA,aAAuBI,mBAUhC,MAAM,IAAIvT,MAAM,aAVmC,CAEnD,MAAMwT,EAAUL,EAAYxP,YAC5ByP,EAAe,IAAIpP,YACb,IAAIvE,SAAQ,CAACC,EAASoE,KAC1BsP,EAAanP,OAASvE,EACtB0T,EAAalP,QAAUJ,EACvBsP,EAAajP,IAAMqP,CAAO,KAO9B,MAAMtT,EAASC,SAASC,cAAc,UAChC6B,EAAM/B,EAAOM,WAAW,MAC9B,IAAKyB,EACH,MAAM,IAAIjC,MAAM,iBAIlBE,EAAOvB,MAAQyU,EAAaK,aAC5BvT,EAAOtB,OAASwU,EAAaM,cAC7BzR,EAAIxB,UAAU2S,EAAc,EAAG,GAG/B,MAAM9R,EAAYW,EAAIvB,aAAa,EAAG,EAAGR,EAAOvB,MAAOuB,EAAOtB,QAC9D,OAAO,IAAIa,SAAQ,CAACC,EAASoE,KAC3B,IACE,MAAM4C,EAASlI,KAAK8W,WAAWxT,iBAAiBR,GAC5CoF,EACFhH,EAAQgH,GAER5C,EAAO,IAAI9D,MAAM,YAEnB,MAAOF,GACPgE,EAAOhE,OAGX,MAAOA,GAEP,MADAtB,KAAKiU,YAAY3S,GACXA,GASV,yBAAM6T,CACJR,GAEA,IASE,IAAIC,EACJ,GATK5U,KAAK+W,iBACR/W,KAAK+W,eAAiB,IAAI5O,EAAe,IACpCnI,KAAKD,QAAQsU,sBAChBnR,OAAQlD,KAAKoX,kBAAkB9K,KAAKtM,SAMb,iBAAhB2U,EAETC,EAAe,IAAIpP,MACnBoP,EAAaC,YAAc,kBACrB,IAAI5T,SAAQ,CAACC,EAASoE,KAC1BsP,EAAanP,OAASvE,EACtB0T,EAAalP,QAAUJ,EACvBsP,EAAajP,IAAMgP,CAAW,SAE3B,GAAIA,aAAuBG,iBAEhCF,EAAeD,MACV,MAAIA,aAAuBI,mBAUhC,MAAM,IAAIvT,MAAM,aAVmC,CAEnD,MAAMwT,EAAUL,EAAYxP,YAC5ByP,EAAe,IAAIpP,YACb,IAAIvE,SAAQ,CAACC,EAASoE,KAC1BsP,EAAanP,OAASvE,EACtB0T,EAAalP,QAAUJ,EACvBsP,EAAajP,IAAMqP,CAAO,KAO9B,MAAMtT,EAASC,SAASC,cAAc,UAChC6B,EAAM/B,EAAOM,WAAW,MAC9B,IAAKyB,EACH,MAAM,IAAIjC,MAAM,iBAIlBE,EAAOvB,MAAQyU,EAAaK,aAC5BvT,EAAOtB,OAASwU,EAAaM,cAC7BzR,EAAIxB,UAAU2S,EAAc,EAAG,GAG/B,MAAM9R,EAAYW,EAAIvB,aAAa,EAAG,EAAGR,EAAOvB,MAAOuB,EAAOtB,QAC9D,OAAO,IAAIa,SAAQ,CAACC,EAASoE,KAC3B,IACE,MAAM4C,EAASlI,KAAK+W,gBAAgBzT,iBAAiBR,GACjDoF,EACFhH,EAAQgH,GAER5C,EAAO,IAAI9D,MAAM,YAEnB,MAAOF,GACPgE,EAAOhE,OAGX,MAAOA,GAEP,MADAtB,KAAKiU,YAAY3S,GACXA,GASV,wBAAM8T,CACJT,GAEA,IAME,IAAIC,EACJ,GANK5U,KAAKiX,cAAiBjX,KAAKkX,qBACxBlX,KAAKO,aAKc,iBAAhBoU,EAETC,EAAe,IAAIpP,MACnBoP,EAAaC,YAAc,kBACrB,IAAI5T,SAAQ,CAACC,EAASoE,KAC1BsP,EAAanP,OAASvE,EACtB0T,EAAalP,QAAUJ,EACvBsP,EAAajP,IAAMgP,CAAW,SAE3B,GAAIA,aAAuBG,iBAEhCF,EAAeD,MACV,MAAIA,aAAuBI,mBAUhC,MAAM,IAAIvT,MAAM,aAVmC,CAEnD,MAAMwT,EAAUL,EAAYxP,YAC5ByP,EAAe,IAAIpP,YACb,IAAIvE,SAAQ,CAACC,EAASoE,KAC1BsP,EAAanP,OAASvE,EACtB0T,EAAalP,QAAUJ,EACvBsP,EAAajP,IAAMqP,CAAO,KAO9B,MAAMtT,EAASC,SAASC,cAAc,UAChC6B,EAAM/B,EAAOM,WAAW,MAC9B,IAAKyB,EACH,MAAM,IAAIjC,MAAM,iBAIlBE,EAAOvB,MAAQyU,EAAaK,aAC5BvT,EAAOtB,OAASwU,EAAaM,cAC7BzR,EAAIxB,UAAU2S,EAAc,EAAG,GAG/B,MAAM9R,EAAYW,EAAIvB,aAAa,EAAG,EAAGR,EAAOvB,MAAOuB,EAAOtB,QAGxDmX,QAAkBvX,KAAKiX,aAAcpF,cAAc/O,GACnDwU,EAAgBtX,KAAKkX,cAAehE,mBAAmBqE,GAM7D,OAJIvX,KAAKD,QAAQiU,iBACfhU,KAAKD,QAAQiU,gBAAgBsD,GAGxBA,EACP,MAAOhW,GAEP,MADAtB,KAAKiU,YAAY3S,GACXA,IArZH4U,EAAab,cAAGA;;;;;;;;MCVvB,WAAAvV,CAAoBC,EAA4B,IAA5BC,KAAOD,QAAPA,EAPZC,KAASwX,WAAY,EACrBxX,KAAYE,aAA4B,KAO9CF,KAAK0C,OAAS,IAAI7C,EAAOE,EAAQ+T,eACjC9T,KAAKgX,WAAa,IAAInM,EAAe,CACnCW,YAAaxL,KAAKqX,kBAAkB/K,KAAKtM,MACzC4C,QAAS5C,KAAKiU,YAAY3H,KAAKtM,QAEjCA,KAAKiX,aAAe,IAAIhG,EACxBjR,KAAKkX,cAAgB,IAAIjF,EAQ3B,gBAAM1R,GACJ,UACQP,KAAKiX,aAAa1W,aACxBgB,QAAQ+G,IAAI,0BACZ,MAAOhH,GAEP,MADAtB,KAAKiU,YAAY3S,GACXA,GAQV,wBAAMmT,CAAmBvU,GACvB,IAAKF,KAAKiX,aACR,MAAM,IAAIzV,MAAM,wDAGlBxB,KAAKE,aAAeA,EACpBF,KAAKwX,WAAY,QACXxX,KAAK0C,OAAOpC,MAAMJ,GACxBF,KAAKgX,WAAW1W,MAAMJ,GAMxB,IAAAM,GACER,KAAKwX,WAAY,EACjBxX,KAAKgX,WAAWxW,OAChBR,KAAK0C,OAAOlC,OAMN,uBAAM6W,CAAkBnP,GAC9B,GAAKlI,KAAKwX,UAEV,IAEE,IAAKtP,EAAOpF,UAEV,YADA9C,KAAKiU,YAAY,IAAIzS,MAAM,YAI7B,MAAMoN,QAAmB5O,KAAKiX,aAAapF,cAAc3J,EAAOpF,WAC1DwU,EAAgBtX,KAAKkX,cAAchE,mBAAmBtE,GAExD5O,KAAKD,QAAQiU,iBACfhU,KAAKD,QAAQiU,gBAAgBsD,GAE/B,MAAOhW,GACPtB,KAAKiU,YAAY3S,IAOb,WAAA2S,CAAY3S,GACdtB,KAAKD,QAAQ6C,QACf5C,KAAKD,QAAQ6C,QAAQtB,GAErBC,QAAQD,MAAM,mBAAoBA,GAOtC,eAAMiG,GACJvH,KAAKQ,aACCR,KAAKiX,aAAa1P,YAQ1B,mBAAMsK,CAAc/O,GAClB,IACE,IAAK9C,KAAKiX,aACR,MAAM,IAAIzV,MAAM,wDAIlB,IACGsB,IACAA,EAAUG,MACXH,EAAU3C,OAAS,GACnB2C,EAAU1C,QAAU,EAEpB,MAAM,IAAIoB,MAAM,WAIlB,MAAMiW,EAAiBlU,EAAeK,yBACpCd,EACA,EACA,IAII8L,QAAmB5O,KAAKiX,aAAapF,cAAc4F,GAEnDH,EAAgBtX,KAAKkX,cAAchE,mBAAmBtE,GAO5D,OAJI5O,KAAKD,QAAQiU,iBACfhU,KAAKD,QAAQiU,gBAAgBsD,GAGxBA,EACP,MAAOhW,GAEP,MADAtB,KAAKiU,YAAY3S,GACXA;;;;;;;qGCtIV,WAAAxB,CAAoBC,EAAgC,IAAhCC,KAAOD,QAAPA,EAPZC,KAAQyT,SAA4B,KACpCzT,KAAYE,aAA4B,KAO9CF,KAAK0C,OAAS,IAAI7C,EAAOE,EAAQ+T,eACjC9T,KAAK8W,UAAY,IAAIxU,EAAU,IAC1BvC,EAAQqU,iBACXlR,OAAQlD,KAAKmX,aAAa7K,KAAKtM,QAEjCA,KAAK+W,eAAiB,IAAI5O,EAAe,IACpCpI,EAAQsU,sBACXnR,OAAQlD,KAAKoX,kBAAkB9K,KAAKtM,QAQxC,oBAAMkU,CAAehU,GACnBF,KAAKQ,OAELR,KAAKE,aAAeA,EACpBF,KAAKyT,SAAW,WACVzT,KAAK0C,OAAOpC,MAAMJ,GACxBF,KAAK8W,UAAUxW,MAAMJ,GAOvB,yBAAMsU,CAAoBtU,GACxBF,KAAKQ,OAELR,KAAKE,aAAeA,EACpBF,KAAKyT,SAAW,gBACVzT,KAAK0C,OAAOpC,MAAMJ,GACxBF,KAAK+W,eAAezW,MAAMJ,GAM5B,IAAAM,GACwB,OAAlBR,KAAKyT,SACPzT,KAAK8W,UAAUtW,OACY,YAAlBR,KAAKyT,UACdzT,KAAK+W,eAAevW,OAGlBR,KAAKE,cACPF,KAAK0C,OAAOlC,OAGdR,KAAKyT,SAAW,KAMV,YAAA0D,CAAajP,GACflI,KAAKD,QAAQuU,iBACftU,KAAKD,QAAQuU,gBAAgBpM,GAOzB,iBAAAkP,CAAkBlP,GACpBlI,KAAKD,QAAQwU,kBACfvU,KAAKD,QAAQwU,iBAAiBrM,GAO1B,WAAA+L,CAAY3S,GACdtB,KAAKD,QAAQ6C,QACf5C,KAAKD,QAAQ6C,QAAQtB,GAErBC,QAAQD,MAAM,uBAAwBA,GAS1C,wBAAMoT,CAAmB5R,GACvB,IACE,MAAMoF,EAASlI,KAAK8W,UAAUxT,iBAAiBR,GAC/C,GAAIoF,EAKF,OAHIlI,KAAKD,QAAQuU,iBACftU,KAAKD,QAAQuU,gBAAgBpM,GAExBA,EAET,MAAM,IAAI1G,MAAM,WAChB,MAAOF,GAEP,MADAtB,KAAKiU,YAAY3S,GACXA,GASV,yBAAM6T,CAAoBrS,GACxB,IACE,MAAMoF,EAASlI,KAAK+W,eAAezT,iBAAiBR,GACpD,GAAIoF,EAKF,OAHIlI,KAAKD,QAAQwU,kBACfvU,KAAKD,QAAQwU,iBAAiBrM,GAEzBA,EAET,MAAM,IAAI1G,MAAM,WAChB,MAAOF,GAEP,MADAtB,KAAKiU,YAAY3S,GACXA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "id-scanner-lib",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/id-scanner.js",
|
|
6
6
|
"module": "dist/id-scanner-core.esm.js",
|
|
@@ -27,20 +27,29 @@
|
|
|
27
27
|
"scripts": {
|
|
28
28
|
"build": "rollup -c",
|
|
29
29
|
"dev": "rollup -c -w",
|
|
30
|
-
"test": "echo \"
|
|
30
|
+
"test": "echo \"No tests configured yet\"",
|
|
31
31
|
"prepublishOnly": "npm run build",
|
|
32
32
|
"publish:npm": "node scripts/publish.js",
|
|
33
|
-
"
|
|
33
|
+
"auth:npm": "node scripts/npm-auth.js",
|
|
34
|
+
"update:github": "node scripts/update-github.js",
|
|
35
|
+
"analyze": "rollup -c --environment ANALYZE:true",
|
|
36
|
+
"build:prod": "rollup -c --environment NODE_ENV:production",
|
|
37
|
+
"size": "npm run build:prod && node scripts/size-report.js",
|
|
38
|
+
"serve:demo": "npx http-server examples -o"
|
|
34
39
|
},
|
|
35
40
|
"keywords": [
|
|
36
41
|
"id-card",
|
|
37
42
|
"qr-code",
|
|
38
43
|
"scanner",
|
|
39
|
-
"ocr"
|
|
44
|
+
"ocr",
|
|
45
|
+
"barcode",
|
|
46
|
+
"identity",
|
|
47
|
+
"recognition",
|
|
48
|
+
"image-processing"
|
|
40
49
|
],
|
|
41
50
|
"author": "agions",
|
|
42
51
|
"license": "MIT",
|
|
43
|
-
"description": "一款纯前端实现的TypeScript
|
|
52
|
+
"description": "一款纯前端实现的TypeScript身份证&二维码识别库,无需后端支持,所有处理在浏览器端完成,新增图像批处理与优化",
|
|
44
53
|
"repository": {
|
|
45
54
|
"type": "git",
|
|
46
55
|
"url": "git+https://github.com/agions/id-scanner-lib.git"
|
|
@@ -56,6 +65,7 @@
|
|
|
56
65
|
"LICENSE"
|
|
57
66
|
],
|
|
58
67
|
"publishConfig": {
|
|
68
|
+
"registry": "https://registry.npmjs.org/",
|
|
59
69
|
"access": "public"
|
|
60
70
|
},
|
|
61
71
|
"devDependencies": {
|
|
@@ -65,13 +75,23 @@
|
|
|
65
75
|
"@rollup/plugin-terser": "^0.4.4",
|
|
66
76
|
"@rollup/plugin-typescript": "^12.1.2",
|
|
67
77
|
"@types/node": "^22.13.10",
|
|
78
|
+
"picocolors": "^1.1.1",
|
|
68
79
|
"rollup": "^4.35.0",
|
|
80
|
+
"rollup-plugin-bundle-analyzer": "^1.6.6",
|
|
81
|
+
"rollup-plugin-visualizer": "^5.9.2",
|
|
69
82
|
"tslib": "^2.8.1",
|
|
70
83
|
"typescript": "^5.8.2"
|
|
71
84
|
},
|
|
72
85
|
"dependencies": {
|
|
86
|
+
"browser-image-compression": "^2.0.2",
|
|
73
87
|
"jsqr": "^1.4.0",
|
|
74
88
|
"lodash-es": "^4.17.21",
|
|
75
89
|
"tesseract.js": "^6.0.0"
|
|
76
|
-
}
|
|
77
|
-
|
|
90
|
+
},
|
|
91
|
+
"browserslist": [
|
|
92
|
+
">0.2%",
|
|
93
|
+
"not dead",
|
|
94
|
+
"not op_mini all",
|
|
95
|
+
"last 2 versions"
|
|
96
|
+
]
|
|
97
|
+
}
|
package/src/demo/demo.ts
CHANGED
|
@@ -1,88 +1,204 @@
|
|
|
1
|
-
import { IDScanner, IDCardInfo } from
|
|
1
|
+
import { IDScanner, IDCardInfo } from "../index"
|
|
2
2
|
|
|
3
3
|
export class IDScannerDemo {
|
|
4
|
-
private scanner: IDScanner
|
|
5
|
-
private videoElement: HTMLVideoElement
|
|
6
|
-
private resultContainer: HTMLElement
|
|
7
|
-
private switchButton: HTMLButtonElement
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
4
|
+
private scanner: IDScanner
|
|
5
|
+
private videoElement: HTMLVideoElement
|
|
6
|
+
private resultContainer: HTMLElement
|
|
7
|
+
private switchButton: HTMLButtonElement
|
|
8
|
+
private imageInput: HTMLInputElement | null = null
|
|
9
|
+
|
|
10
|
+
constructor(
|
|
11
|
+
videoElementId: string,
|
|
12
|
+
resultContainerId: string,
|
|
13
|
+
switchButtonId: string,
|
|
14
|
+
imageInputId?: string
|
|
15
|
+
) {
|
|
16
|
+
// 获取DOM元素
|
|
17
|
+
this.videoElement = document.getElementById(
|
|
18
|
+
videoElementId
|
|
19
|
+
) as HTMLVideoElement
|
|
20
|
+
this.resultContainer = document.getElementById(
|
|
21
|
+
resultContainerId
|
|
22
|
+
) as HTMLElement
|
|
23
|
+
this.switchButton = document.getElementById(
|
|
24
|
+
switchButtonId
|
|
25
|
+
) as HTMLButtonElement
|
|
26
|
+
|
|
27
|
+
// 如果提供了图片输入元素ID,初始化图片输入功能
|
|
28
|
+
if (imageInputId) {
|
|
29
|
+
this.imageInput = document.getElementById(
|
|
30
|
+
imageInputId
|
|
31
|
+
) as HTMLInputElement
|
|
32
|
+
if (this.imageInput) {
|
|
33
|
+
this.imageInput.addEventListener(
|
|
34
|
+
"change",
|
|
35
|
+
this.handleImageInput.bind(this)
|
|
36
|
+
)
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
try {
|
|
41
|
+
// 创建IDScanner实例
|
|
42
|
+
this.scanner = new IDScanner({
|
|
43
|
+
onQRCodeScanned: this.handleQRCodeResult.bind(this),
|
|
44
|
+
onBarcodeScanned: this.handleQRCodeResult.bind(this), // 复用QR码结果处理
|
|
45
|
+
onIDCardScanned: this.handleIDCardResult.bind(this),
|
|
46
|
+
onError: this.handleError.bind(this),
|
|
47
|
+
})
|
|
48
|
+
} catch (error) {
|
|
49
|
+
console.error("创建IDScanner实例失败:", error)
|
|
50
|
+
this.handleError(error instanceof Error ? error : new Error("初始化失败"))
|
|
51
|
+
// 创建一个空对象以避免空引用错误
|
|
52
|
+
this.scanner = {} as IDScanner
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
// 添加模式切换按钮事件监听
|
|
56
|
+
this.switchButton.addEventListener("click", this.toggleScanMode.bind(this))
|
|
22
57
|
}
|
|
23
|
-
|
|
58
|
+
|
|
24
59
|
async initialize(): Promise<void> {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
60
|
+
try {
|
|
61
|
+
await this.scanner.initialize()
|
|
62
|
+
await this.scanner.startQRScanner(this.videoElement)
|
|
63
|
+
this.switchButton.textContent = "切换到身份证模式"
|
|
64
|
+
this.currentMode = "qr"
|
|
65
|
+
} catch (error) {
|
|
66
|
+
this.handleError(error instanceof Error ? error : new Error("初始化失败"))
|
|
67
|
+
}
|
|
29
68
|
}
|
|
30
|
-
|
|
31
|
-
private currentMode:
|
|
32
|
-
|
|
69
|
+
|
|
70
|
+
private currentMode: "qr" | "barcode" | "idcard" = "qr"
|
|
71
|
+
|
|
33
72
|
private async toggleScanMode(): Promise<void> {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
this.currentMode
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
this.currentMode
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
73
|
+
try {
|
|
74
|
+
this.scanner.stop()
|
|
75
|
+
|
|
76
|
+
if (this.currentMode === "qr") {
|
|
77
|
+
this.currentMode = "barcode"
|
|
78
|
+
await this.scanner.startBarcodeScanner(this.videoElement)
|
|
79
|
+
this.switchButton.textContent = "切换到身份证模式"
|
|
80
|
+
} else if (this.currentMode === "barcode") {
|
|
81
|
+
this.currentMode = "idcard"
|
|
82
|
+
await this.scanner.startIDCardScanner(this.videoElement)
|
|
83
|
+
this.switchButton.textContent = "切换到二维码模式"
|
|
84
|
+
} else {
|
|
85
|
+
this.currentMode = "qr"
|
|
86
|
+
await this.scanner.startQRScanner(this.videoElement)
|
|
87
|
+
this.switchButton.textContent = "切换到条形码模式"
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
this.resultContainer.innerHTML = ""
|
|
91
|
+
} catch (error) {
|
|
92
|
+
this.handleError(
|
|
93
|
+
error instanceof Error ? error : new Error("切换模式失败")
|
|
94
|
+
)
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* 处理图片输入
|
|
100
|
+
* 支持从文件选择器获取图片并进行识别
|
|
101
|
+
*/
|
|
102
|
+
private async handleImageInput(event: Event): Promise<void> {
|
|
103
|
+
const input = event.target as HTMLInputElement
|
|
104
|
+
if (!input.files || input.files.length === 0) return
|
|
105
|
+
|
|
106
|
+
const file = input.files[0]
|
|
107
|
+
|
|
108
|
+
try {
|
|
109
|
+
// 检查文件类型
|
|
110
|
+
if (!file.type.startsWith("image/")) {
|
|
111
|
+
throw new Error("请选择图片文件")
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
// 创建一个本地URL以显示图片
|
|
115
|
+
const imageUrl = URL.createObjectURL(file)
|
|
116
|
+
|
|
117
|
+
// 显示处理中的提示
|
|
118
|
+
this.resultContainer.innerHTML = `
|
|
119
|
+
<h3>正在处理图片...</h3>
|
|
120
|
+
<img src="${imageUrl}" style="max-width: 100%; max-height: 300px; margin-bottom: 10px;">
|
|
121
|
+
`
|
|
122
|
+
|
|
123
|
+
// 根据当前模式处理图片
|
|
124
|
+
try {
|
|
125
|
+
if (this.currentMode === "qr") {
|
|
126
|
+
const result = await this.scanner.processQRCodeImage(imageUrl)
|
|
127
|
+
if (result) {
|
|
128
|
+
this.handleQRCodeResult(result)
|
|
129
|
+
}
|
|
130
|
+
} else if (this.currentMode === "barcode") {
|
|
131
|
+
const result = await this.scanner.processBarcodeImage(imageUrl)
|
|
132
|
+
if (result) {
|
|
133
|
+
this.handleQRCodeResult(result)
|
|
134
|
+
}
|
|
135
|
+
} else if (this.currentMode === "idcard") {
|
|
136
|
+
const result = await this.scanner.processIDCardImage(imageUrl)
|
|
137
|
+
if (result) {
|
|
138
|
+
this.handleIDCardResult(result)
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
} catch (error) {
|
|
142
|
+
// 如果处理失败,显示错误
|
|
143
|
+
this.resultContainer.innerHTML = `
|
|
144
|
+
<h3>识别结果:</h3>
|
|
145
|
+
<img src="${imageUrl}" style="max-width: 100%; max-height: 300px; margin-bottom: 10px;">
|
|
146
|
+
<p class="error">未能识别内容,请尝试其他图片或调整图片质量</p>
|
|
147
|
+
<p class="error">${
|
|
148
|
+
error instanceof Error ? error.message : "未知错误"
|
|
149
|
+
}</p>
|
|
150
|
+
`
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
// 清除文件选择,允许再次选择相同的文件
|
|
154
|
+
input.value = ""
|
|
155
|
+
} catch (error) {
|
|
156
|
+
this.handleError(
|
|
157
|
+
error instanceof Error ? error : new Error(String(error))
|
|
158
|
+
)
|
|
159
|
+
|
|
160
|
+
// 清除文件选择
|
|
161
|
+
input.value = ""
|
|
48
162
|
}
|
|
49
|
-
|
|
50
|
-
this.resultContainer.innerHTML = '';
|
|
51
163
|
}
|
|
52
|
-
|
|
164
|
+
|
|
53
165
|
private handleQRCodeResult(result: string): void {
|
|
54
166
|
this.resultContainer.innerHTML = `
|
|
55
167
|
<h3>扫描结果:</h3>
|
|
56
168
|
<p>${result}</p>
|
|
57
|
-
|
|
169
|
+
`
|
|
58
170
|
}
|
|
59
|
-
|
|
171
|
+
|
|
60
172
|
private handleIDCardResult(info: IDCardInfo): void {
|
|
61
173
|
this.resultContainer.innerHTML = `
|
|
62
174
|
<h3>身份证信息:</h3>
|
|
63
|
-
<p>姓名: ${info.name ||
|
|
64
|
-
<p>性别: ${info.gender ||
|
|
65
|
-
<p>民族: ${info.nationality ||
|
|
66
|
-
<p>出生日期: ${info.birthDate ||
|
|
67
|
-
<p>地址: ${info.address ||
|
|
68
|
-
<p>身份证号: ${info.idNumber ||
|
|
69
|
-
<p>签发机关: ${info.issuingAuthority ||
|
|
70
|
-
<p>有效期限: ${info.validPeriod ||
|
|
71
|
-
|
|
175
|
+
<p>姓名: ${info.name || "未识别"}</p>
|
|
176
|
+
<p>性别: ${info.gender || "未识别"}</p>
|
|
177
|
+
<p>民族: ${info.nationality || "未识别"}</p>
|
|
178
|
+
<p>出生日期: ${info.birthDate || "未识别"}</p>
|
|
179
|
+
<p>地址: ${info.address || "未识别"}</p>
|
|
180
|
+
<p>身份证号: ${info.idNumber || "未识别"}</p>
|
|
181
|
+
<p>签发机关: ${info.issuingAuthority || "未识别"}</p>
|
|
182
|
+
<p>有效期限: ${info.validPeriod || "未识别"}</p>
|
|
183
|
+
`
|
|
72
184
|
}
|
|
73
|
-
|
|
185
|
+
|
|
74
186
|
private handleError(error: Error): void {
|
|
75
|
-
console.error(
|
|
187
|
+
console.error("扫描错误:", error)
|
|
76
188
|
this.resultContainer.innerHTML = `
|
|
77
189
|
<div class="error">
|
|
78
190
|
<h3>错误:</h3>
|
|
79
191
|
<p>${error.message}</p>
|
|
80
192
|
</div>
|
|
81
|
-
|
|
193
|
+
`
|
|
82
194
|
}
|
|
83
|
-
|
|
195
|
+
|
|
84
196
|
stop(): void {
|
|
85
|
-
this.scanner.stop
|
|
86
|
-
|
|
197
|
+
if (this.scanner && typeof this.scanner.stop === "function") {
|
|
198
|
+
this.scanner.stop()
|
|
199
|
+
}
|
|
200
|
+
if (this.scanner && typeof this.scanner.terminate === "function") {
|
|
201
|
+
this.scanner.terminate()
|
|
202
|
+
}
|
|
87
203
|
}
|
|
88
|
-
}
|
|
204
|
+
}
|