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.
Files changed (67) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +375 -363
  3. package/dist/id-scanner-core.esm.js +427 -221
  4. package/dist/id-scanner-core.esm.js.map +1 -1
  5. package/dist/id-scanner-core.js +427 -221
  6. package/dist/id-scanner-core.js.map +1 -1
  7. package/dist/id-scanner-core.min.js +1 -9
  8. package/dist/id-scanner-core.min.js.map +1 -1
  9. package/dist/id-scanner-ocr.esm.js +451 -276
  10. package/dist/id-scanner-ocr.esm.js.map +1 -1
  11. package/dist/id-scanner-ocr.js +451 -276
  12. package/dist/id-scanner-ocr.js.map +1 -1
  13. package/dist/id-scanner-ocr.min.js +1 -9
  14. package/dist/id-scanner-ocr.min.js.map +1 -1
  15. package/dist/id-scanner-qr.esm.js +483 -233
  16. package/dist/id-scanner-qr.esm.js.map +1 -1
  17. package/dist/id-scanner-qr.js +482 -232
  18. package/dist/id-scanner-qr.js.map +1 -1
  19. package/dist/id-scanner-qr.min.js +1 -9
  20. package/dist/id-scanner-qr.min.js.map +1 -1
  21. package/dist/id-scanner.js +2138 -358
  22. package/dist/id-scanner.js.map +1 -1
  23. package/dist/id-scanner.min.js +1 -9
  24. package/dist/id-scanner.min.js.map +1 -1
  25. package/package.json +27 -7
  26. package/src/demo/demo.ts +178 -62
  27. package/src/id-recognition/anti-fake-detector.ts +317 -0
  28. package/src/id-recognition/id-detector.ts +184 -155
  29. package/src/id-recognition/ocr-processor.ts +193 -146
  30. package/src/id-recognition/ocr-worker.ts +82 -72
  31. package/src/index-umd.ts +347 -110
  32. package/src/index.ts +866 -91
  33. package/src/ocr-module.ts +108 -60
  34. package/src/qr-module.ts +104 -54
  35. package/src/scanner/barcode-scanner.ts +145 -58
  36. package/src/scanner/qr-scanner.ts +86 -47
  37. package/src/utils/image-processing.ts +479 -294
  38. package/dist/core.d.ts +0 -77
  39. package/dist/demo/demo.d.ts +0 -14
  40. package/dist/id-recognition/data-extractor.d.ts +0 -105
  41. package/dist/id-recognition/id-detector.d.ts +0 -100
  42. package/dist/id-recognition/ocr-processor.d.ts +0 -64
  43. package/dist/id-scanner.esm.js +0 -94656
  44. package/dist/id-scanner.esm.js.map +0 -1
  45. package/dist/index-umd.d.ts +0 -96
  46. package/dist/index.d.ts +0 -78
  47. package/dist/ocr-module.d.ts +0 -67
  48. package/dist/qr-module.d.ts +0 -68
  49. package/dist/scanner/barcode-scanner.d.ts +0 -90
  50. package/dist/scanner/qr-scanner.d.ts +0 -80
  51. package/dist/types/core.d.ts +0 -77
  52. package/dist/types/demo/demo.d.ts +0 -14
  53. package/dist/types/id-recognition/data-extractor.d.ts +0 -105
  54. package/dist/types/id-recognition/id-detector.d.ts +0 -100
  55. package/dist/types/id-recognition/ocr-processor.d.ts +0 -64
  56. package/dist/types/index-umd.d.ts +0 -96
  57. package/dist/types/index.d.ts +0 -78
  58. package/dist/types/ocr-module.d.ts +0 -67
  59. package/dist/types/qr-module.d.ts +0 -68
  60. package/dist/types/scanner/barcode-scanner.d.ts +0 -90
  61. package/dist/types/scanner/qr-scanner.d.ts +0 -80
  62. package/dist/types/utils/camera.d.ts +0 -81
  63. package/dist/types/utils/image-processing.d.ts +0 -75
  64. package/dist/types/utils/types.d.ts +0 -65
  65. package/dist/utils/camera.d.ts +0 -81
  66. package/dist/utils/image-processing.d.ts +0 -75
  67. package/dist/utils/types.d.ts +0 -65
@@ -1 +1 @@
1
- {"version":3,"file":"id-scanner.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/utils/worker.ts","../src/id-recognition/ocr-worker.ts","../src/id-recognition/ocr-processor.ts","../src/id-recognition/data-extractor.ts","../src/index-umd.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null],"names":["createCustomWorker","createWorker"],"mappings":"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"}
1
+ {"version":3,"file":"id-scanner.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/utils/worker.ts","../src/id-recognition/ocr-worker.ts","../src/id-recognition/ocr-processor.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":["createCustomWorker","createWorker","IDScanner"],"mappings":"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"}
@@ -1,9 +1 @@
1
- !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("jsqr"),require("tesseract.js")):"function"==typeof define&&define.amd?define(["exports","jsqr","tesseract.js"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).IDScanner={},t.jsQR,t.Tesseract)}(this,(function(t,e,i){"use strict";class s{constructor(t={}){this.options=t,this.stream=null,this.videoElement=null,this.options={width:640,height:480,facingMode:"environment",...t}}async start(t){return this.initialize(t)}stop(){this.release()}async initialize(t){this.videoElement=t;try{const t={video:{width:{ideal:this.options.width},height:{ideal:this.options.height},facingMode:this.options.facingMode}};this.stream=await navigator.mediaDevices.getUserMedia(t),this.videoElement&&(this.videoElement.srcObject=this.stream,await new Promise((t=>{this.videoElement&&(this.videoElement.onloadedmetadata=()=>{this.videoElement&&this.videoElement.play().then((()=>t()))})})))}catch(t){throw console.error("无法访问摄像头:",t),new Error("无法访问摄像头。请确保已授予摄像头访问权限,并且摄像头未被其他应用程序占用。")}}captureFrame(){if(!this.videoElement)return null;const t=document.createElement("canvas");t.width=this.videoElement.videoWidth,t.height=this.videoElement.videoHeight;const e=t.getContext("2d");return e?(e.drawImage(this.videoElement,0,0,t.width,t.height),e.getImageData(0,0,t.width,t.height)):null}release(){this.stream&&(this.stream.getTracks().forEach((t=>t.stop())),this.stream=null),this.videoElement&&(this.videoElement.srcObject=null,this.videoElement=null)}}class a{constructor(t={}){this.options=t,this.scanning=!1,this.scanTimer=null,this.options={scanInterval:200,...t},this.camera=new s}async start(t){try{await this.camera.initialize(t),this.scanning=!0,this.scan()}catch(t){this.options.onError&&this.options.onError(t instanceof Error?t:new Error(String(t)))}}scan(){if(!this.scanning)return;const t=this.camera.captureFrame();if(t){const i=e(t.data,t.width,t.height);i&&this.options.onScan&&this.options.onScan(i.data)}this.scanTimer=window.setTimeout((()=>this.scan()),this.options.scanInterval)}stop(){this.scanning=!1,this.scanTimer&&(clearTimeout(this.scanTimer),this.scanTimer=null),this.camera.release()}}class r{static imageDataToCanvas(t){const e=document.createElement("canvas");e.width=t.width,e.height=t.height;const i=e.getContext("2d");return i&&i.putImageData(t,0,0),e}static canvasToImageData(t){const e=t.getContext("2d");return e?e.getImageData(0,0,t.width,t.height):null}static adjustBrightnessContrast(t,e=0,i=0){const s=this.imageDataToCanvas(t),a=s.getContext("2d");if(a){const t=a.getImageData(0,0,s.width,s.height),r=t.data,n=259*(i+255)/(255*(259-i));for(let t=0;t<r.length;t+=4)r[t]=this.truncate(n*(r[t]-128)+128+e),r[t+1]=this.truncate(n*(r[t+1]-128)+128+e),r[t+2]=this.truncate(n*(r[t+2]-128)+128+e);return a.putImageData(t,0,0),t}return t}static truncate(t){return Math.min(255,Math.max(0,t))}static toGrayscale(t){const e=this.imageDataToCanvas(t),i=e.getContext("2d");if(i){const t=i.getImageData(0,0,e.width,e.height),s=t.data;for(let t=0;t<s.length;t+=4){const e=(s[t]+s[t+1]+s[t+2])/3;s[t]=e,s[t+1]=e,s[t+2]=e}return i.putImageData(t,0,0),t}return t}static resize(t,e,i){const s=document.createElement("canvas");s.width=e,s.height=i;const a=s.getContext("2d");if(a){const s=this.imageDataToCanvas(t);return a.drawImage(s,0,0,t.width,t.height,0,0,e,i),a.getImageData(0,0,e,i)}return t}static downsampleForProcessing(t,e=1e3){const{width:i,height:s}=t;if(i<=e&&s<=e)return t;const a=e/Math.max(i,s),r=Math.round(i*a),n=Math.round(s*a);return this.resize(t,r,n)}static imageDataToBase64(t){return this.imageDataToCanvas(t).toDataURL("image/jpeg",.7)}static async base64ToImageData(t){return new Promise(((e,i)=>{const s=new Image;s.onload=()=>{const t=document.createElement("canvas");t.width=s.width,t.height=s.height;const a=t.getContext("2d");if(!a)return void i(new Error("无法创建Canvas上下文"));a.drawImage(s,0,0);const r=a.getImageData(0,0,t.width,t.height);e(r)},s.onerror=()=>{i(new Error("图像加载失败"))},s.src=t}))}static async processImageInParallel(t,e,i=4){if("undefined"==typeof Worker||t.width*t.height<1e5)return e(t);const s=document.createElement("canvas");s.width=t.width,s.height=t.height;const a=s.getContext("2d");if(!a)throw new Error("无法创建Canvas上下文");const r=t.width>t.height,n=Math.floor((r?t.width:t.height)/i),o=[];for(let s=0;s<i;s++){const a=document.createElement("canvas"),c=a.getContext("2d");if(!c)continue;let h;if(r){const e=s*n,r=s===i-1?t.width-e:n;a.width=r,a.height=t.height;const o=this.imageDataToCanvas(t);c.drawImage(o,e,0,r,t.height,0,0,r,t.height),h=c.getImageData(0,0,r,t.height)}else{const e=s*n,r=s===i-1?t.height-e:n;a.width=t.width,a.height=r;const o=this.imageDataToCanvas(t);c.drawImage(o,0,e,t.width,r,0,0,t.width,r),h=c.getImageData(0,0,t.width,r)}const d=`\n self.onmessage = function(e) {\n const imageData = e.data.imageData;\n const processingFunction = ${e.toString()};\n const result = processingFunction(imageData);\n self.postMessage({ result, index: e.data.index }, [result.data.buffer]);\n }\n `,l=new Blob([d],{type:"application/javascript"}),m=URL.createObjectURL(l),g=new Worker(m),u=new Promise((t=>{g.onmessage=function(e){t(e.data),g.terminate(),URL.revokeObjectURL(m)},g.postMessage({imageData:h,index:s},[h.data.buffer])}));o.push(u)}const c=await Promise.all(o);c.sort(((t,e)=>t.index-e.index));for(let t=0;t<c.length;t++){const{result:e}=c[t],i=this.imageDataToCanvas(e);if(r){const e=t*n;a.drawImage(i,e,0)}else{const e=t*n;a.drawImage(i,0,e)}}return a.getImageData(0,0,t.width,t.height)}}class n{constructor(t={}){this.options=t,this.scanning=!1,this.scanTimer=null,this.options={scanInterval:200,...t},this.camera=new s}async start(t){try{await this.camera.initialize(t),this.scanning=!0,this.scan()}catch(t){this.options.onError&&this.options.onError(t instanceof Error?t:new Error(String(t)))}}scan(){if(!this.scanning)return;const t=this.camera.captureFrame();if(t)try{const e=r.adjustBrightnessContrast(r.toGrayscale(t),10,20);this.detectBarcode(e)}catch(t){console.error("条形码扫描错误:",t)}this.scanTimer=window.setTimeout((()=>this.scan()),this.options.scanInterval)}detectBarcode(t){if(console.log("正在扫描条形码..."),Math.random()>.95){const t="6901234567890";this.options.onScan&&this.options.onScan(t)}}stop(){this.scanning=!1,this.scanTimer&&(clearTimeout(this.scanTimer),this.scanTimer=null),this.camera.release()}}class o{constructor(t=100){this.maxSize=t,this.cache=new Map}get(t){if(!this.cache.has(t))return;const e=this.cache.get(t);return this.cache.delete(t),this.cache.set(t,e),e}set(t,e){if(this.cache.has(t)&&this.cache.delete(t),this.cache.size>=this.maxSize){const t=this.cache.keys().next().value;void 0!==t&&this.cache.delete(t)}this.cache.set(t,e)}delete(t){return this.cache.delete(t)}clear(){this.cache.clear()}get size(){return this.cache.size}has(t){return this.cache.has(t)}}function c(t,e=8){const i=document.createElement("canvas");i.width=e,i.height=e;const s=i.getContext("2d");if(!s)return"";const a=document.createElement("canvas");a.width=t.width,a.height=t.height;const r=a.getContext("2d");if(!r)return"";r.putImageData(t,0,0),s.drawImage(a,0,0,t.width,t.height,0,0,e,e);const n=s.getImageData(0,0,e,e),o=[];for(let t=0;t<n.data.length;t+=4){const e=n.data[t],i=n.data[t+1],s=n.data[t+2],a=Math.round(.299*e+.587*i+.114*s);o.push(a)}const c=o.reduce(((t,e)=>t+e),0)/o.length;let h="";for(const t of o)h+=t>=c?"1":"0";return h}class h{constructor(t){this.detecting=!1,this.detectTimer=null,this.frameCount=0,this.lastDetectionTime=0,this.camera=new s,"function"==typeof t?(this.onDetected=t,this.options={detectionInterval:200,maxImageDimension:800,enableCache:!0,cacheSize:20,logger:console.log}):t?(this.options={detectionInterval:200,maxImageDimension:800,enableCache:!0,cacheSize:20,logger:console.log,...t},this.onDetected=t.onDetection,this.onError=t.onError):this.options={detectionInterval:200,maxImageDimension:800,enableCache:!0,cacheSize:20,logger:console.log},this.detectionInterval=this.options.detectionInterval,this.maxImageDimension=this.options.maxImageDimension,this.resultCache=new o(this.options.cacheSize),this.throttledDetect=function(t,e){let i=0,s=null;return function(...a){const r=Date.now(),n=e-(r-i);n<=0?(s&&(clearTimeout(s),s=null),i=r,t.apply(this,a)):s||(s=window.setTimeout((()=>{i=Date.now(),s=null,t.apply(this,a)}),n))}}(this.performDetection.bind(this),this.detectionInterval)}async start(t){await this.camera.initialize(t),this.detecting=!0,this.frameCount=0,this.lastDetectionTime=0,this.detect()}stop(){this.detecting=!1,null!==this.detectTimer&&(cancelAnimationFrame(this.detectTimer),this.detectTimer=null)}detect(){this.detecting&&(this.detectTimer=requestAnimationFrame((()=>{try{this.frameCount++;const t=performance.now();(this.frameCount%3==0||t-this.lastDetectionTime>=this.detectionInterval)&&(this.throttledDetect(),this.lastDetectionTime=t),this.detect()}catch(t){this.onError?this.onError(t):console.error("身份证检测错误:",t),setTimeout((()=>{this.detecting&&this.detect()}),1e3)}})))}async performDetection(){if(!this.detecting||!this.camera)return;const t=this.camera.captureFrame();if(!t)return;if(this.options.enableCache){const e=c(t,16),i=this.resultCache.get(e);if(i){this.options.logger?.("使用缓存的检测结果");const e={...i,imageData:t};return void(this.onDetected&&this.onDetected(e))}}const e=r.downsampleForProcessing(t,this.maxImageDimension);try{const i=await this.detectIDCard(e);if(i.success&&(i.imageData=t,this.options.enableCache)){const e=c(t,16);this.resultCache.set(e,i)}this.onDetected&&this.onDetected(i)}catch(t){this.onError?this.onError(t):console.error("身份证检测错误:",t)}}async detectIDCard(t){r.toGrayscale(t);const e={success:Math.random()>.3,message:"身份证检测完成"};if(e.success){const i=t.width,s=t.height,a=Math.round(.7*i),n=Math.round(.618*a),o=Math.round((i-a)/2),c=Math.round((s-n)/2);e.corners=[{x:o,y:c},{x:o+a,y:c},{x:o+a,y:c+n},{x:o,y:c+n}],e.boundingBox={x:o,y:c,width:a,height:n};const h=document.createElement("canvas");h.width=a,h.height=n;const d=h.getContext("2d");if(d){const i=r.imageDataToCanvas(t);d.drawImage(i,o,c,a,n,0,0,a,n),e.croppedImage=d.getImageData(0,0,a,n)}e.confidence=.7+.3*Math.random()}return e}clearCache(){this.resultCache.clear(),this.options.logger?.("检测结果缓存已清除")}dispose(){this.stop(),this.camera.release(),this.resultCache.clear()}}async function d(t){const e=performance.now(),{createWorker:i}=await import("tesseract.js"),s=await i(t.tessWorkerOptions||{logger:t=>console.log(t)});try{await s.load(),await s.loadLanguage("chi_sim"),await s.initialize("chi_sim"),await s.setParameters({tessedit_char_whitelist:"0123456789X-年月日一二三四五六七八九十零壹贰叁肆伍陆柒捌玖拾ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz民族汉族满族回族维吾尔族藏族苗族彝族壮族朝鲜族侗族瑶族白族土家族哈尼族哈萨克族傣族黎族傈僳族佤族高山族拉祜族水族东乡族钠西族景颇族柯尔克孜族士族达斡尔族仫佬族羌族布朗族撒拉族毛南族仡佬族锡伯族阿昌族普米族塔吉克族怒族乌孜别克族俄罗斯族鄂温克族德昂族保安族裕固族京族塔塔尔族独龙族鄂伦春族赫哲族门巴族珞巴族基诺族男女性别住址出生公民身份号码签发机关有效期"});const{data:i}=await s.recognize(t.imageBase64),a=function(t){const e={},i=t.split("\n").filter((t=>t.trim())),s=/(\d{17}[\dX])/,a=t.match(s);a&&(e.idNumber=a[1]);for(const t of i)if(t.includes("姓名")||t.length<10&&t.length>1&&!/\d/.test(t)){e.name=t.replace("姓名","").trim();break}const r=/(男|女).*(族)/,n=t.match(r);if(n){e.gender=n[1];const t=n[0];e.nationality=t.substring(t.indexOf(n[1])+1).trim()}const o=/(\d{4})年(\d{1,2})月(\d{1,2})日/,c=t.match(o);c&&(e.birthDate=`${c[1]}-${c[2]}-${c[3]}`);const h=/住址([\s\S]*?)公民身份号码/,d=t.match(h);d&&(e.address=d[1].replace(/\n/g,"").trim());const l=/签发机关([\s\S]*?)有效期/,m=t.match(l);m&&(e.issuingAuthority=m[1].replace(/\n/g,"").trim());const g=/有效期限([\s\S]*?)(-|至)/,u=t.match(g);u&&(e.validPeriod=u[0].replace("有效期限","").trim());return e}(i.text);await s.terminate();return{idCardInfo:a,processingTime:performance.now()-e}}catch(t){throw await s.terminate(),t}}class l{constructor(t={}){this.worker=null,this.ocrWorker=null,this.initialized=!1,this.options={useWorker:"undefined"!=typeof Worker,enableCache:!0,cacheSize:50,maxImageDimension:1e3,logger:console.log,...t},this.resultCache=new o(this.options.cacheSize)}async initialize(){this.initialized||(this.options.useWorker?(this.ocrWorker=function(t){const e=`\n self.onmessage = async function(e) {\n try {\n const result = await (${t.toString()})(e.data);\n self.postMessage({ success: true, result });\n } catch (error) {\n self.postMessage({ \n success: false, \n error: { message: error.message, stack: error.stack }\n });\n }\n }\n `,i=new Blob([e],{type:"application/javascript"}),s=URL.createObjectURL(i),a=new Worker(s),r=new Map;let n=0;return a.onmessage=t=>{0===r.size&&URL.revokeObjectURL(s);const{id:e,success:i,result:a,error:n}=t.data,o=r.get(e);if(o)if(r.delete(e),i)o.resolve(a);else{const t=new Error(n.message);t.stack=n.stack,o.reject(t)}},{postMessage:t=>new Promise(((e,i)=>{const s=n++;r.set(s,{resolve:e,reject:i}),a.postMessage({id:s,data:t})})),terminate:()=>{a.terminate(),r.clear(),URL.revokeObjectURL(s)}}}(d),this.initialized=!0,this.options.logger?.("OCR Worker 初始化完成")):(this.worker=i.createWorker({logger:this.options.logger}),await this.worker.load(),await this.worker.loadLanguage("chi_sim"),await this.worker.initialize("chi_sim"),await this.worker.setParameters({tessedit_char_whitelist:"0123456789X-年月日一二三四五六七八九十零壹贰叁肆伍陆柒捌玖拾ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz民族汉族满族回族维吾尔族藏族苗族彝族壮族朝鲜族侗族瑶族白族土家族哈尼族哈萨克族傣族黎族傈僳族佤族高山族拉祜族水族东乡族钠西族景颇族柯尔克孜族士族达斡尔族仫佬族羌族布朗族撒拉族毛南族仡佬族锡伯族阿昌族普米族塔吉克族怒族乌孜别克族俄罗斯族鄂温克族德昂族保安族裕固族京族塔塔尔族独龙族鄂伦春族赫哲族门巴族珞巴族基诺族男女性别住址出生公民身份号码签发机关有效期"}),this.initialized=!0,this.options.logger?.("OCR引擎初始化完成")))}async processIDCard(t){if(this.initialized||await this.initialize(),this.options.enableCache){const e=c(t),i=this.resultCache.get(e);if(i)return this.options.logger?.("使用缓存的OCR结果"),i}const e=r.downsampleForProcessing(t,this.options.maxImageDimension),i=r.adjustBrightnessContrast(e,15,25);try{let e;if(this.options.useWorker&&this.ocrWorker){const t=r.imageDataToBase64(i),s=await this.ocrWorker.postMessage({imageBase64:t,tessWorkerOptions:{logger:this.options.logger}});e=s.idCardInfo,this.options.logger?.(`OCR处理完成,用时: ${s.processingTime.toFixed(2)}ms`)}else{const t=performance.now(),s=r.imageDataToCanvas(i),{data:a}=await this.worker.recognize(s);e=this.parseIDCardText(a.text);const n=performance.now()-t;this.options.logger?.(`OCR处理完成,用时: ${n.toFixed(2)}ms`)}if(this.options.enableCache){const i=c(t);this.resultCache.set(i,e)}return e}catch(t){return this.options.logger?.(`OCR识别错误: ${t}`),{}}}parseIDCardText(t){const e={},i=t.split("\n").filter((t=>t.trim())),s=t.match(/(\d{17}[\dX])/);s&&(e.idNumber=s[1]);for(const t of i)if(t.includes("姓名")||t.length<10&&t.length>1&&!/\d/.test(t)){e.name=t.replace("姓名","").trim();break}const a=t.match(/(男|女).*(族)/);if(a){e.gender=a[1];const t=a[0];e.nationality=t.substring(t.indexOf(a[1])+1).trim()}const r=t.match(/(\d{4})年(\d{1,2})月(\d{1,2})日/);r&&(e.birthDate=`${r[1]}-${r[2]}-${r[3]}`);const n=t.match(/住址([\s\S]*?)公民身份号码/);n&&(e.address=n[1].replace(/\n/g,"").trim());const o=t.match(/签发机关([\s\S]*?)有效期/);o&&(e.issuingAuthority=o[1].replace(/\n/g,"").trim());const c=t.match(/有效期限([\s\S]*?)(-|至)/);return c&&(e.validPeriod=c[0].replace("有效期限","").trim()),e}clearCache(){this.resultCache.clear(),this.options.logger?.("OCR结果缓存已清除")}async terminate(){this.worker&&(await this.worker.terminate(),this.worker=null),this.ocrWorker&&(this.ocrWorker.terminate(),this.ocrWorker=null),this.initialized=!1,this.options.logger?.("OCR引擎已终止")}dispose(){return this.terminate()}}class m{static validateIDNumber(t){if(!t||18!==t.length)return!1;if(!/^\d{17}[\dX]$/.test(t))return!1;const e=parseInt(t.substr(6,4)),i=parseInt(t.substr(10,2)),s=parseInt(t.substr(12,2)),a=new Date(e,i-1,s);return a.getFullYear()===e&&a.getMonth()+1===i&&a.getDate()===s}static extractBirthDateFromID(t){if(!this.validateIDNumber(t))return null;return`${t.substr(6,4)}-${t.substr(10,2)}-${t.substr(12,2)}`}static extractGenderFromID(t){if(!this.validateIDNumber(t))return null;return parseInt(t.charAt(16))%2==1?"男":"女"}static extractRegionFromID(t){return this.validateIDNumber(t)?t.substr(0,6):null}static enhanceIDCardInfo(t,e){const i={...t};if(i.idNumber&&this.validateIDNumber(i.idNumber)&&(i.birthDate||(i.birthDate=this.extractBirthDateFromID(i.idNumber)||void 0),i.gender||(i.gender=this.extractGenderFromID(i.idNumber)||void 0)),e&&this.validateIDNumber(e)){i.idNumber=e;const t=this.extractBirthDateFromID(e);t&&(i.birthDate=t);const s=this.extractGenderFromID(e);s&&(i.gender=s)}return i}extractAndValidate(t){const e={...t};return e.idNumber&&(e.idNumber=this.normalizeIDNumber(e.idNumber),this.validateIDNumber(e.idNumber)&&(e.birthDate||(e.birthDate=this.extractBirthDateFromID(e.idNumber)),e.gender||(e.gender=this.extractGenderFromID(e.idNumber)))),e.birthDate&&(e.birthDate=this.normalizeDate(e.birthDate)),e.address&&(e.address=this.normalizeAddress(e.address)),e}normalizeIDNumber(t){return t.replace(/[\s\-]/g,"").toUpperCase()}validateIDNumber(t){return/(^\d{15}$)|(^\d{17}([0-9]|X)$)/.test(t)}extractBirthDateFromID(t){return 18===t.length?`${t.substring(6,10)}-${t.substring(10,12)}-${t.substring(12,14)}`:15===t.length?`19${t.substring(6,8)}-${t.substring(8,10)}-${t.substring(10,12)}`:""}extractGenderFromID(t){let e;return e=18===t.length?parseInt(t.charAt(16)):parseInt(t.charAt(14)),e%2==1?"男":"女"}normalizeDate(t){return t.replace(/(\d{4})(\d{2})(\d{2})/,"$1-$2-$3")}normalizeAddress(t){return t.trim()}}
2
- /**
3
- * @file ID扫描识别库UMD格式入口文件
4
- * @description 专门为UMD格式构建的入口,使用静态导入而非动态导入
5
- * @module IDScannerLib
6
- * @version 1.1.0
7
- * @license MIT
8
- */t.BarcodeScanner=n,t.DataExtractor=m,t.IDCardDetector=h,t.IDScanner=class{constructor(t={}){this.options=t,this.qrScanner=null,this.barcodeScanner=null,this.idDetector=null,this.ocrProcessor=null,this.dataExtractor=null,this.scanMode="qr",this.videoElement=null,this.camera=new s(t.cameraOptions)}async initialize(){try{this.ocrProcessor=new l,this.dataExtractor=new m,await this.ocrProcessor.initialize(),console.log("IDScanner initialized")}catch(t){throw this.handleError(t),t}}async startQRScanner(t){this.stop(),this.videoElement=t,this.scanMode="qr";try{this.qrScanner||(this.qrScanner=new a({...this.options.qrScannerOptions,onScan:this.handleQRScan.bind(this)})),await this.camera.start(t),this.qrScanner.start(t)}catch(t){this.handleError(t)}}async startBarcodeScanner(t){this.stop(),this.videoElement=t,this.scanMode="barcode";try{this.barcodeScanner||(this.barcodeScanner=new n({...this.options.barcodeScannerOptions,onScan:this.handleBarcodeScan.bind(this)})),await this.camera.start(t),this.barcodeScanner.start(t)}catch(t){this.handleError(t)}}async startIDCardScanner(t){this.stop(),this.videoElement=t,this.scanMode="idcard";try{this.ocrProcessor||await this.initialize(),this.idDetector||(this.idDetector=new h({onDetection:this.handleIDDetection.bind(this),onError:this.handleError.bind(this)})),await this.camera.start(t),this.idDetector.start(t)}catch(t){this.handleError(t)}}stop(){"qr"===this.scanMode&&this.qrScanner?this.qrScanner.stop():"barcode"===this.scanMode&&this.barcodeScanner?this.barcodeScanner.stop():"idcard"===this.scanMode&&this.idDetector&&this.idDetector.stop(),this.camera.stop()}handleQRScan(t){this.options.onQRCodeScanned&&this.options.onQRCodeScanned(t)}handleBarcodeScan(t){this.options.onBarcodeScanned&&this.options.onBarcodeScanned(t)}async handleIDDetection(t){if(this.ocrProcessor&&this.dataExtractor)try{if(!t.imageData)return void this.handleError(new Error("无效的图像数据"));const e=await this.ocrProcessor.processIDCard(t.imageData),i=this.dataExtractor.extractAndValidate(e);this.options.onIDCardScanned&&this.options.onIDCardScanned(i)}catch(t){this.handleError(t)}}handleError(t){this.options.onError?this.options.onError(t):console.error("IDScanner error:",t)}async terminate(){this.stop(),this.ocrProcessor&&(await this.ocrProcessor.terminate(),this.ocrProcessor=null),this.qrScanner=null,this.barcodeScanner=null,this.idDetector=null,this.dataExtractor=null}},t.ImageProcessor=r,t.OCRProcessor=l,t.QRScanner=a}));
9
- //# sourceMappingURL=id-scanner.min.js.map
1
+ var global,factory;global=this,factory=function(t,n,r){"use strict";class e{constructor(t={}){this.options=t,this.stream=null,this.videoElement=null,this.options={width:640,height:480,facingMode:"environment",...t}}async start(t){return this.initialize(t)}stop(){this.release()}async initialize(t){this.videoElement=t;try{const t={video:{width:{ideal:this.options.width},height:{ideal:this.options.height},facingMode:this.options.facingMode}};this.stream=await navigator.mediaDevices.getUserMedia(t),this.videoElement&&(this.videoElement.srcObject=this.stream,await new Promise((t=>{this.videoElement&&(this.videoElement.onloadedmetadata=()=>{this.videoElement&&this.videoElement.play().then((()=>t()))})})))}catch(t){throw Error("无法访问摄像头。请确保已授予摄像头访问权限,并且摄像头未被其他应用程序占用。")}}captureFrame(){if(!this.videoElement)return null;const t=document.createElement("canvas");t.width=this.videoElement.videoWidth,t.height=this.videoElement.videoHeight;const n=t.getContext("2d");return n?(n.drawImage(this.videoElement,0,0,t.width,t.height),n.getImageData(0,0,t.width,t.height)):null}release(){this.stream&&(this.stream.getTracks().forEach((t=>t.stop())),this.stream=null),this.videoElement&&(this.videoElement.srcObject=null,this.videoElement=null)}}class i{constructor(t={}){this.options=t,this.scanning=!1,this.scanTimer=null,this.options={scanInterval:200,...t},this.camera=new e}async start(t){try{await this.camera.initialize(t),this.scanning=!0,this.scan()}catch(t){this.options.onError&&this.options.onError(t instanceof Error?t:Error(t+""))}}scan(){if(!this.scanning)return;const t=this.camera.captureFrame();if(t){const n=r(t.data,t.width,t.height);n&&this.options.onScan&&this.options.onScan(n.data)}this.scanTimer=window.setTimeout((()=>this.scan()),this.options.scanInterval)}stop(){this.scanning=!1,this.scanTimer&&(clearTimeout(this.scanTimer),this.scanTimer=null),this.camera.release()}processImageData(t){try{if(!t||!t.data||t.width<=0||t.height<=0)throw Error("无效的图像数据");const n=r(t.data,t.width,t.height);return n&&n.data?n.data:null}catch(t){return this.options.onError&&this.options.onError(t instanceof Error?t:Error(t+"")),null}}}function s(t,n){return new Promise((function(r,e){let i;return o(t).then((function(t){try{return i=t,r(new Blob([n.slice(0,2),i,n.slice(2)],{type:"image/jpeg"}))}catch(t){return e(t)}}),e)}))}const o=t=>new Promise(((n,r)=>{const e=new FileReader;e.addEventListener("load",(({target:{result:t}})=>{const e=new DataView(t);let i=0;if(65496!==e.getUint16(i))return r("not a valid JPEG");for(i+=2;;){const s=e.getUint16(i);if(65498===s)break;const o=e.getUint16(i+2);if(65505===s&&1165519206===e.getUint32(i+4)){const s=i+10;let a;switch(e.getUint16(s)){case 18761:a=!0;break;case 19789:a=!1;break;default:return r("TIFF header contains invalid endian")}if(42!==e.getUint16(s+2,a))return r("TIFF header contains invalid version");const c=e.getUint32(s+4,a),h=s+c+2+12*e.getUint16(s+c,a);for(let t=s+c+2;t<h;t+=12)if(274==e.getUint16(t,a)){if(3!==e.getUint16(t+2,a))return r("Orientation data type is invalid");if(1!==e.getUint32(t+4,a))return r("Orientation data count is invalid");e.setUint16(t+8,1,a);break}return n(t.slice(i,i+2+o))}i+=2+o}return n(new Blob)})),e.readAsArrayBuffer(t)}));var a={},c={get exports(){return a},set exports(t){a=t}};!function(){var t,n,r={};c.exports=r,r.parse=function(t,n){for(var e=r.bin.readUshort,i=r.bin.readUint,s=0,o={},a=new Uint8Array(t),c=a.length-4;101010256!=i(a,c);)c--;s=c,s+=4;var h=e(a,s+=4);e(a,s+=2);var f=i(a,s+=2),u=i(a,s+=4);s+=4,s=u;for(var l=0;l<h;l++){i(a,s),s+=4,s+=4,s+=4,i(a,s+=4),f=i(a,s+=4);var w=i(a,s+=4),d=e(a,s+=4),m=e(a,s+2),y=e(a,s+4);s+=6;var v=i(a,s+=8);s+=4,s+=d+m+y,r.o(a,v,o,f,w,n)}return o},r.o=function(t,n,e,i,s,o){var a=r.bin.readUshort,c=r.bin.readUint;c(t,n),a(t,n+=4),a(t,n+=2);var h=a(t,n+=2);c(t,n+=2),c(t,n+=4),n+=4;var f=a(t,n+=8),u=a(t,n+=2);n+=2;var l=r.bin.readUTF8(t,n,f);if(n+=f,n+=u,o)e[l]={size:s,csize:i};else{var w=new Uint8Array(t.buffer,n);if(0==h)e[l]=new Uint8Array(w.buffer.slice(n,n+i));else{if(8!=h)throw"unknown compression method: "+h;var d=new Uint8Array(s);r.inflateRaw(w,d),e[l]=d}}},r.inflateRaw=function(t,n){return r.F.inflate(t,n)},r.inflate=function(t,n){return r.inflateRaw(new Uint8Array(t.buffer,t.byteOffset+2,t.length-6),n)},r.deflate=function(t,n){null==n&&(n={level:6});var e=0,i=new Uint8Array(50+Math.floor(1.1*t.length));i[e]=120,i[e+1]=156,e+=2,e=r.F.deflateRaw(t,i,e,n.level);var s=r.adler(t,0,t.length);return i[e+0]=s>>>24&255,i[e+1]=s>>>16&255,i[e+2]=s>>>8&255,i[e+3]=s>>>0&255,new Uint8Array(i.buffer,0,e+4)},r.deflateRaw=function(t,n){null==n&&(n={level:6});var e=new Uint8Array(50+Math.floor(1.1*t.length)),i=r.F.deflateRaw(t,e,i,n.level);return new Uint8Array(e.buffer,0,i)},r.encode=function(t,n){null==n&&(n=!1);var e=0,i=r.bin.writeUint,s=r.bin.writeUshort,o={};for(var a in t){var c=!r.B(a)&&!n,h=t[a],f=r.crc.crc(h,0,h.length);o[a]={cpr:c,usize:h.length,crc:f,file:c?r.deflateRaw(h):h}}for(var a in o)e+=o[a].file.length+30+46+2*r.bin.sizeUTF8(a);e+=22;var u=new Uint8Array(e),l=0,w=[];for(var a in o){var d=o[a];w.push(l),l=r.P(u,l,a,d,0)}var m=0,y=l;for(var a in o)d=o[a],w.push(l),l=r.P(u,l,a,d,1,w[m++]);var v=l-y;return i(u,l,101010256),l+=4,s(u,l+=4,m),s(u,l+=2,m),i(u,l+=2,v),i(u,l+=4,y),l+=4,l+=2,u.buffer},r.B=function(t){var n=t.split(".").pop().toLowerCase();return-1!="png,jpg,jpeg,zip".indexOf(n)},r.P=function(t,n,e,i,s,o){var a=r.bin.writeUint,c=r.bin.writeUshort,h=i.file;return a(t,n,0==s?67324752:33639248),n+=4,1==s&&(n+=2),c(t,n,20),c(t,n+=2,0),c(t,n+=2,i.cpr?8:0),a(t,n+=2,0),a(t,n+=4,i.crc),a(t,n+=4,h.length),a(t,n+=4,i.usize),c(t,n+=4,r.bin.sizeUTF8(e)),c(t,n+=2,0),n+=2,1==s&&(n+=2,n+=2,a(t,n+=6,o),n+=4),n+=r.bin.writeUTF8(t,n,e),0==s&&(t.set(h,n),n+=h.length),n},r.crc={table:function(){for(var t=new Uint32Array(256),n=0;n<256;n++){for(var r=n,e=0;e<8;e++)1&r?r=3988292384^r>>>1:r>>>=1;t[n]=r}return t}(),update:function(t,n,e,i){for(var s=0;s<i;s++)t=r.crc.table[255&(t^n[e+s])]^t>>>8;return t},crc:function(t,n,e){return 4294967295^r.crc.update(4294967295,t,n,e)}},r.adler=function(t,n,r){for(var e=1,i=0,s=n,o=n+r;s<o;){for(var a=Math.min(s+5552,o);s<a;)i+=e+=t[s++];e%=65521,i%=65521}return i<<16|e},r.bin={readUshort:function(t,n){return t[n]|t[n+1]<<8},writeUshort:function(t,n,r){t[n]=255&r,t[n+1]=r>>8&255},readUint:function(t,n){return 16777216*t[n+3]+(t[n+2]<<16|t[n+1]<<8|t[n])},writeUint:function(t,n,r){t[n]=255&r,t[n+1]=r>>8&255,t[n+2]=r>>16&255,t[n+3]=r>>24&255},readASCII:function(t,n,r){for(var e="",i=0;i<r;i++)e+=String.fromCharCode(t[n+i]);return e},writeASCII:function(t,n,r){for(var e=0;e<r.length;e++)t[n+e]=r.charCodeAt(e)},pad:function(t){return t.length<2?"0"+t:t},readUTF8:function(t,n,e){for(var i,s="",o=0;o<e;o++)s+="%"+r.bin.pad(t[n+o].toString(16));try{i=decodeURIComponent(s)}catch(i){return r.bin.readASCII(t,n,e)}return i},writeUTF8:function(t,n,r){for(var e=r.length,i=0,s=0;s<e;s++){var o=r.charCodeAt(s);if(4294967168&o)if(4294965248&o)if(4294901760&o){if(4292870144&o)throw"e";t[n+i]=240|o>>18,t[n+i+1]=128|o>>12&63,t[n+i+2]=128|o>>6&63,t[n+i+3]=128|63&o,i+=4}else t[n+i]=224|o>>12,t[n+i+1]=128|o>>6&63,t[n+i+2]=128|63&o,i+=3;else t[n+i]=192|o>>6,t[n+i+1]=128|63&o,i+=2;else t[n+i]=o,i++}return i},sizeUTF8:function(t){for(var n=t.length,r=0,e=0;e<n;e++){var i=t.charCodeAt(e);if(4294967168&i)if(4294965248&i)if(4294901760&i){if(4292870144&i)throw"e";r+=4}else r+=3;else r+=2;else r++}return r}},r.F={},r.F.deflateRaw=function(t,n,e,i){var s=[[0,0,0,0,0],[4,4,8,4,0],[4,5,16,8,0],[4,6,16,16,0],[4,10,16,32,0],[8,16,32,32,0],[8,16,128,128,0],[8,32,128,256,0],[32,128,258,1024,1],[32,258,258,4096,1]][i],o=r.F.U,a=r.F.O,c=r.F._,h=0,f=e<<3,u=0,l=t.length;if(0==i){for(;h<l;)c(n,f,h+(b=Math.min(65535,l-h))==l?1:0),f=r.F.G(t,h,b,n,f+8),h+=b;return f>>>3}var w=o.lits,d=o.strt,m=o.prev,y=0,v=0,A=0,p=0,g=0,E=0;for(l>2&&(d[E=r.F.tt(t,0)]=0),h=0;h<l;h++){if(g=E,h+1<l-2){E=r.F.tt(t,h+1);var I=h+1&32767;m[I]=d[E],d[E]=I}if(u<=h){(y>14e3||v>26697)&&l-h>100&&(u<h&&(w[y]=h-u,y+=2,u=h),f=r.F.nt(h==l-1||u==l?1:0,w,y,p,t,A,h-A,n,f),y=v=p=0,A=h);var M=0;h<l-2&&(M=r.F.rt(t,h,m,g,Math.min(s[2],l-h),s[3]));var b=M>>>16,C=65535&M;if(0!=M){C=65535&M;var U=a(b=M>>>16,o.of0);o.lhst[257+U]++;var B=a(C,o.df0);o.dhst[B]++,p+=o.exb[U]+o.dxb[B],w[y]=b<<23|h-u,w[y+1]=C<<16|U<<8|B,y+=2,u=h+b}else o.lhst[t[h]]++;v++}}for(A==h&&0!=t.length||(u<h&&(w[y]=h-u,y+=2,u=h),f=r.F.nt(1,w,y,p,t,A,h-A,n,f),y=0,v=0,y=v=p=0,A=h);7&f;)f++;return f>>>3},r.F.rt=function(t,n,e,i,s,o){var a=32767&n,c=e[a],h=a-c+32768&32767;if(c==a||i!=r.F.tt(t,n-h))return 0;for(var f=0,u=0,l=Math.min(32767,n);h<=l&&0!=--o&&c!=a;){if(0==f||t[n+f]==t[n+f-h]){var w=r.F.et(t,n,h);if(w>f){if(u=h,(f=w)>=s)break;h+2<w&&(w=h+2);for(var d=0,m=0;m<w-2;m++){var y=n-h+m+32768&32767,v=y-e[y]+32768&32767;v>d&&(d=v,c=y)}}}h+=(a=c)-(c=e[a])+32768&32767}return f<<16|u},r.F.et=function(t,n,r){if(t[n]!=t[n-r]||t[n+1]!=t[n+1-r]||t[n+2]!=t[n+2-r])return 0;var e=n,i=Math.min(t.length,n+258);for(n+=3;n<i&&t[n]==t[n-r];)n++;return n-e},r.F.tt=function(t,n){return(t[n]<<8|t[n+1])+(t[n+2]<<4)&65535},r.saved=0,r.F.nt=function(t,n,e,i,s,o,a,c,h){var f,u,l,w,d,m,y,v,A,p=r.F.U,g=r.F.it,E=r.F._;p.lhst[256]++,u=(f=r.F.getTrees())[0],l=f[1],w=f[2],d=f[3],m=f[4],y=f[5],v=f[6],A=f[7];var I=32+(h+3&7?8-(h+3&7):0)+(a<<3),M=i+r.F.contSize(p.fltree,p.lhst)+r.F.contSize(p.fdtree,p.dhst),b=i+r.F.contSize(p.ltree,p.lhst)+r.F.contSize(p.dtree,p.dhst);b+=14+3*y+r.F.contSize(p.itree,p.ihst)+(2*p.ihst[16]+3*p.ihst[17]+7*p.ihst[18]);for(var C=0;C<286;C++)p.lhst[C]=0;for(C=0;C<30;C++)p.dhst[C]=0;for(C=0;C<19;C++)p.ihst[C]=0;var U=I<M&&I<b?0:M<b?1:2;if(g(c,h,t),g(c,h+1,U),h+=3,0==U){for(;7&h;)h++;h=r.F.G(s,o,a,c,h)}else{var B,S;if(1==U&&(B=p.fltree,S=p.fdtree),2==U){r.F.makeCodes(p.ltree,u),r.F.revCodes(p.ltree,u),r.F.makeCodes(p.dtree,l),r.F.revCodes(p.dtree,l),r.F.makeCodes(p.itree,w),r.F.revCodes(p.itree,w),B=p.ltree,S=p.dtree,E(c,h,d-257),E(c,h+=5,m-1),E(c,h+=5,y-4),h+=4;for(var D=0;D<y;D++)E(c,h+3*D,p.itree[1+(p.ordr[D]<<1)]);h+=3*y,h=r.F.st(v,p.itree,c,h),h=r.F.st(A,p.itree,c,h)}for(var R=o,P=0;P<e;P+=2){for(var Q=n[P],T=Q>>>23,x=R+(8388607&Q);R<x;)h=r.F.ot(s[R++],B,c,h);if(0!=T){var O=n[P+1],k=O>>16,F=O>>8&255,L=255&O;E(c,h=r.F.ot(257+F,B,c,h),T-p.of0[F]),h+=p.exb[F],g(c,h=r.F.ot(L,S,c,h),k-p.df0[L]),h+=p.dxb[L],R+=T}}h=r.F.ot(256,B,c,h)}return h},r.F.G=function(t,n,r,e,i){var s=i>>>3;return e[s]=r,e[s+1]=r>>>8,e[s+2]=255-e[s],e[s+3]=255-e[s+1],s+=4,e.set(new Uint8Array(t.buffer,n,r),s),i+(r+4<<3)},r.F.getTrees=function(){for(var t=r.F.U,n=r.F.ct(t.lhst,t.ltree,15),e=r.F.ct(t.dhst,t.dtree,15),i=[],s=r.F.ht(t.ltree,i),o=[],a=r.F.ht(t.dtree,o),c=0;c<i.length;c+=2)t.ihst[i[c]]++;for(c=0;c<o.length;c+=2)t.ihst[o[c]]++;for(var h=r.F.ct(t.ihst,t.itree,7),f=19;f>4&&0==t.itree[1+(t.ordr[f-1]<<1)];)f--;return[n,e,h,s,a,f,i,o]},r.F.getSecond=function(t){for(var n=[],r=0;r<t.length;r+=2)n.push(t[r+1]);return n},r.F.nonZero=function(t){for(var n="",r=0;r<t.length;r+=2)0!=t[r+1]&&(n+=(r>>1)+",");return n},r.F.contSize=function(t,n){for(var r=0,e=0;e<n.length;e++)r+=n[e]*t[1+(e<<1)];return r},r.F.st=function(t,n,e,i){for(var s=0;s<t.length;s+=2){var o=t[s],a=t[s+1];i=r.F.ot(o,n,e,i);var c=16==o?2:17==o?3:7;o>15&&(r.F._(e,i,a,c),i+=c)}return i},r.F.ht=function(t,n){for(var r=t.length;2!=r&&0==t[r-1];)r-=2;for(var e=0;e<r;e+=2){var i=t[e+1],s=e+3<r?t[e+3]:-1,o=e+5<r?t[e+5]:-1,a=0==e?-1:t[e-1];if(0==i&&s==i&&o==i){for(var c=e+5;c+2<r&&t[c+2]==i;)c+=2;(h=Math.min(c+1-e>>>1,138))<11?n.push(17,h-3):n.push(18,h-11),e+=2*h-2}else if(i==a&&s==i&&o==i){for(c=e+5;c+2<r&&t[c+2]==i;)c+=2;var h=Math.min(c+1-e>>>1,6);n.push(16,h-3),e+=2*h-2}else n.push(i,0)}return r>>>1},r.F.ct=function(t,n,e){var i=[],s=t.length,o=n.length,a=0;for(a=0;a<o;a+=2)n[a]=0,n[a+1]=0;for(a=0;a<s;a++)0!=t[a]&&i.push({lit:a,f:t[a]});var c=i.length,h=i.slice(0);if(0==c)return 0;if(1==c){var f=i[0].lit;return h=0==f?1:0,n[1+(f<<1)]=1,n[1+(h<<1)]=1,1}i.sort((function(t,n){return t.f-n.f}));var u=i[0],l=i[1],w=0,d=1,m=2;for(i[0]={lit:-1,f:u.f+l.f,l:u,r:l,d:0};d!=c-1;)u=w!=d&&(m==c||i[w].f<i[m].f)?i[w++]:i[m++],l=w!=d&&(m==c||i[w].f<i[m].f)?i[w++]:i[m++],i[d++]={lit:-1,f:u.f+l.f,l:u,r:l};var y=r.F.setDepth(i[d-1],0);for(y>e&&(r.F.restrictDepth(h,e,y),y=e),a=0;a<c;a++)n[1+(h[a].lit<<1)]=h[a].d;return y},r.F.setDepth=function(t,n){return-1!=t.lit?(t.d=n,n):Math.max(r.F.setDepth(t.l,n+1),r.F.setDepth(t.r,n+1))},r.F.restrictDepth=function(t,n,r){var e=0,i=1<<r-n,s=0;for(t.sort((function(t,n){return n.d==t.d?t.f-n.f:n.d-t.d})),e=0;e<t.length&&t[e].d>n;e++){var o=t[e].d;t[e].d=n,s+=i-(1<<r-o)}for(s>>>=r-n;s>0;)(o=t[e].d)<n?(t[e].d++,s-=1<<n-o-1):e++;for(;e>=0;e--)t[e].d==n&&s<0&&(t[e].d--,s++)},r.F.O=function(t,n){var r=0;return n[16|r]<=t&&(r|=16),n[8|r]<=t&&(r|=8),n[4|r]<=t&&(r|=4),n[2|r]<=t&&(r|=2),n[1|r]<=t&&(r|=1),r},r.F.ot=function(t,n,e,i){return r.F.it(e,i,n[t<<1]),i+n[1+(t<<1)]},r.F.inflate=function(t,n){var e=Uint8Array;if(3==t[0]&&0==t[1])return n||new e(0);var i=r.F,s=i.ft,o=i.ut,a=i.lt,c=i.makeCodes,h=i.codes2map,f=i.wt,u=i.U,l=null==n;l&&(n=new e(t.length>>>2<<3));for(var w,d,m=0,y=0,v=0,A=0,p=0,g=0,E=0,I=0,M=0;0==m;)if(m=s(t,M,1),y=s(t,M+1,2),M+=3,0!=y){if(l&&(n=r.F.dt(n,I+(1<<17))),1==y&&(w=u.flmap,d=u.fdmap,g=511,E=31),2==y){v=o(t,M,5)+257,A=o(t,M+5,5)+1,p=o(t,M+10,4)+4,M+=14;for(var b=0;b<38;b+=2)u.itree[b]=0,u.itree[b+1]=0;var C=1;for(b=0;b<p;b++){var U=o(t,M+3*b,3);u.itree[1+(u.ordr[b]<<1)]=U,U>C&&(C=U)}M+=3*p,c(u.itree,C),h(u.itree,C,u.imap),w=u.lmap,d=u.dmap,M=a(u.imap,(1<<C)-1,v+A,t,M,u.ttree);var B=i.yt(u.ttree,0,v,u.ltree);g=(1<<B)-1;var S=i.yt(u.ttree,v,A,u.dtree);E=(1<<S)-1,c(u.ltree,B),h(u.ltree,B,w),c(u.dtree,S),h(u.dtree,S,d)}for(;;){var D=w[f(t,M)&g];M+=15&D;var R=D>>>4;if(R>>>8==0)n[I++]=R;else{if(256==R)break;var P=I+R-254;if(R>264){var Q=u.ldef[R-257];P=I+(Q>>>3)+o(t,M,7&Q),M+=7&Q}var T=d[f(t,M)&E];M+=15&T;var x=T>>>4,O=u.ddef[x],k=(O>>>4)+s(t,M,15&O);for(M+=15&O,l&&(n=r.F.dt(n,I+(1<<17)));I<P;)n[I]=n[I++-k],n[I]=n[I++-k],n[I]=n[I++-k],n[I]=n[I++-k];I=P}}}else{7&M&&(M+=8-(7&M));var F=4+(M>>>3),L=t[F-4]|t[F-3]<<8;l&&(n=r.F.dt(n,I+L)),n.set(new e(t.buffer,t.byteOffset+F,L),I),M=F+L<<3,I+=L}return n.length==I?n:n.slice(0,I)},r.F.dt=function(t,n){var r=t.length;if(n<=r)return t;var e=new Uint8Array(Math.max(r<<1,n));return e.set(t,0),e},r.F.lt=function(t,n,e,i,s,o){for(var a=r.F.ut,c=r.F.wt,h=0;h<e;){var f=t[c(i,s)&n];s+=15&f;var u=f>>>4;if(u<=15)o[h]=u,h++;else{var l=0,w=0;16==u?(w=3+a(i,s,2),s+=2,l=o[h-1]):17==u?(w=3+a(i,s,3),s+=3):18==u&&(w=11+a(i,s,7),s+=7);for(var d=h+w;h<d;)o[h]=l,h++}}return s},r.F.yt=function(t,n,r,e){for(var i=0,s=0,o=e.length>>>1;s<r;){var a=t[s+n];e[s<<1]=0,e[1+(s<<1)]=a,a>i&&(i=a),s++}for(;s<o;)e[s<<1]=0,e[1+(s<<1)]=0,s++;return i},r.F.makeCodes=function(t,n){for(var e,i,s,o,a=r.F.U,c=t.length,h=a.bl_count,f=0;f<=n;f++)h[f]=0;for(f=1;f<c;f+=2)h[t[f]]++;var u=a.next_code;for(e=0,h[0]=0,i=1;i<=n;i++)e=e+h[i-1]<<1,u[i]=e;for(s=0;s<c;s+=2)0!=(o=t[s+1])&&(t[s]=u[o],u[o]++)},r.F.codes2map=function(t,n,e){for(var i=t.length,s=r.F.U.rev15,o=0;o<i;o+=2)if(0!=t[o+1])for(var a=o>>1,c=t[o+1],h=a<<4|c,f=n-c,u=t[o]<<f,l=u+(1<<f);u!=l;)e[s[u]>>>15-n]=h,u++},r.F.revCodes=function(t,n){for(var e=r.F.U.rev15,i=15-n,s=0;s<t.length;s+=2){var o=t[s]<<n-t[s+1];t[s]=e[o]>>>i}},r.F._=function(t,n,r){r<<=7&n;var e=n>>>3;t[e]|=r,t[e+1]|=r>>>8},r.F.it=function(t,n,r){r<<=7&n;var e=n>>>3;t[e]|=r,t[e+1]|=r>>>8,t[e+2]|=r>>>16},r.F.ut=function(t,n,r){return(t[n>>>3]|t[1+(n>>>3)]<<8)>>>(7&n)&(1<<r)-1},r.F.ft=function(t,n,r){return(t[n>>>3]|t[1+(n>>>3)]<<8|t[2+(n>>>3)]<<16)>>>(7&n)&(1<<r)-1},r.F.wt=function(t,n){return(t[n>>>3]|t[1+(n>>>3)]<<8|t[2+(n>>>3)]<<16)>>>(7&n)},r.F.vt=function(t,n){return(t[n>>>3]|t[1+(n>>>3)]<<8|t[2+(n>>>3)]<<16|t[3+(n>>>3)]<<24)>>>(7&n)},r.F.U=(t=Uint16Array,n=Uint32Array,{next_code:new t(16),bl_count:new t(16),ordr:[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],of0:[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,999,999,999],exb:[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0],ldef:new t(32),df0:[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,65535,65535],dxb:[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0],ddef:new n(32),flmap:new t(512),fltree:[],fdmap:new t(32),fdtree:[],lmap:new t(32768),ltree:[],ttree:[],dmap:new t(32768),dtree:[],imap:new t(512),itree:[],rev15:new t(32768),lhst:new n(286),dhst:new n(30),ihst:new n(19),lits:new n(15e3),strt:new t(65536),prev:new t(32768)}),function(){for(var t=r.F.U,n=0;n<32768;n++){var e=n;e=(4278255360&(e=(4042322160&(e=(3435973836&(e=(2863311530&e)>>>1|(1431655765&e)<<1))>>>2|(858993459&e)<<2))>>>4|(252645135&e)<<4))>>>8|(16711935&e)<<8,t.rev15[n]=(e>>>16|e<<16)>>>17}function i(t,n,r){for(;0!=n--;)t.push(0,r)}for(n=0;n<32;n++)t.ldef[n]=t.of0[n]<<3|t.exb[n],t.ddef[n]=t.df0[n]<<4|t.dxb[n];i(t.fltree,144,8),i(t.fltree,112,9),i(t.fltree,24,7),i(t.fltree,8,8),r.F.makeCodes(t.fltree,9),r.F.codes2map(t.fltree,9,t.flmap),r.F.revCodes(t.fltree,9),i(t.fdtree,32,5),r.F.makeCodes(t.fdtree,5),r.F.codes2map(t.fdtree,5,t.fdmap),r.F.revCodes(t.fdtree,5),i(t.itree,19,0),i(t.ltree,286,0),i(t.dtree,30,0),i(t.ttree,320,0)}()}();var h=function(t,n){return n.forEach((function(n){n&&"string"!=typeof n&&!Array.isArray(n)&&Object.keys(n).forEach((function(r){if("default"!==r&&!(r in t)){var e=Object.getOwnPropertyDescriptor(n,r);Object.defineProperty(t,r,e.get?e:{enumerable:!0,get:function(){return n[r]}})}}))})),Object.freeze(t)}({__proto__:null,default:a},[a]);const f=function(){var t={nextZero(t,n){for(;0!=t[n];)n++;return n},readUshort:(t,n)=>t[n]<<8|t[n+1],writeUshort(t,n,r){t[n]=r>>8&255,t[n+1]=255&r},readUint:(t,n)=>16777216*t[n]+(t[n+1]<<16|t[n+2]<<8|t[n+3]),writeUint(t,n,r){t[n]=r>>24&255,t[n+1]=r>>16&255,t[n+2]=r>>8&255,t[n+3]=255&r},readASCII(t,n,r){let e="";for(let i=0;i<r;i++)e+=String.fromCharCode(t[n+i]);return e},writeASCII(t,n,r){for(let e=0;e<r.length;e++)t[n+e]=r.charCodeAt(e)},readBytes(t,n,r){const e=[];for(let i=0;i<r;i++)e.push(t[n+i]);return e},pad:t=>t.length<2?"0"+t:t,readUTF8(n,r,e){let i,s="";for(let i=0;i<e;i++)s+="%"+t.pad(n[r+i].toString(16));try{i=decodeURIComponent(s)}catch(i){return t.readASCII(n,r,e)}return i}};function n(n,r,e,i){const o=r*e,a=s(i),c=Math.ceil(r*a/8),h=new Uint8Array(4*o),f=new Uint32Array(h.buffer),{ctype:u}=i,{depth:l}=i,w=t.readUshort;if(6==u){const t=o<<2;if(8==l)for(var d=0;d<t;d+=4)h[d]=n[d],h[d+1]=n[d+1],h[d+2]=n[d+2],h[d+3]=n[d+3];if(16==l)for(d=0;d<t;d++)h[d]=n[d<<1]}else if(2==u){const t=i.tabs.tRNS;if(null==t){if(8==l)for(d=0;d<o;d++){var m=3*d;f[d]=255<<24|n[m+2]<<16|n[m+1]<<8|n[m]}if(16==l)for(d=0;d<o;d++)m=6*d,f[d]=255<<24|n[m+4]<<16|n[m+2]<<8|n[m]}else{var y=t[0];const r=t[1],e=t[2];if(8==l)for(d=0;d<o;d++){var v=d<<2;m=3*d,f[d]=255<<24|n[m+2]<<16|n[m+1]<<8|n[m],n[m]==y&&n[m+1]==r&&n[m+2]==e&&(h[v+3]=0)}if(16==l)for(d=0;d<o;d++)v=d<<2,m=6*d,f[d]=255<<24|n[m+4]<<16|n[m+2]<<8|n[m],w(n,m)==y&&w(n,m+2)==r&&w(n,m+4)==e&&(h[v+3]=0)}}else if(3==u){const t=i.tabs.PLTE,s=i.tabs.tRNS,a=s?s.length:0;if(1==l)for(var A=0;A<e;A++){var p=A*c,g=A*r;for(d=0;d<r;d++){v=g+d<<2;var E=3*(I=n[p+(d>>3)]>>7-(7&d)&1);h[v]=t[E],h[v+1]=t[E+1],h[v+2]=t[E+2],h[v+3]=I<a?s[I]:255}}if(2==l)for(A=0;A<e;A++)for(p=A*c,g=A*r,d=0;d<r;d++)v=g+d<<2,E=3*(I=n[p+(d>>2)]>>6-((3&d)<<1)&3),h[v]=t[E],h[v+1]=t[E+1],h[v+2]=t[E+2],h[v+3]=I<a?s[I]:255;if(4==l)for(A=0;A<e;A++)for(p=A*c,g=A*r,d=0;d<r;d++)v=g+d<<2,E=3*(I=n[p+(d>>1)]>>4-((1&d)<<2)&15),h[v]=t[E],h[v+1]=t[E+1],h[v+2]=t[E+2],h[v+3]=I<a?s[I]:255;if(8==l)for(d=0;d<o;d++){var I;v=d<<2,E=3*(I=n[d]),h[v]=t[E],h[v+1]=t[E+1],h[v+2]=t[E+2],h[v+3]=I<a?s[I]:255}}else if(4==u){if(8==l)for(d=0;d<o;d++){v=d<<2;var M=n[b=d<<1];h[v]=M,h[v+1]=M,h[v+2]=M,h[v+3]=n[b+1]}if(16==l)for(d=0;d<o;d++){var b;v=d<<2,M=n[b=d<<2],h[v]=M,h[v+1]=M,h[v+2]=M,h[v+3]=n[b+2]}}else if(0==u)for(y=i.tabs.tRNS?i.tabs.tRNS:-1,A=0;A<e;A++){const t=A*c,e=A*r;if(1==l)for(var C=0;C<r;C++){var U=(M=255*(n[t+(C>>>3)]>>>7-(7&C)&1))==255*y?0:255;f[e+C]=U<<24|M<<16|M<<8|M}else if(2==l)for(C=0;C<r;C++)U=(M=85*(n[t+(C>>>2)]>>>6-((3&C)<<1)&3))==85*y?0:255,f[e+C]=U<<24|M<<16|M<<8|M;else if(4==l)for(C=0;C<r;C++)U=(M=17*(n[t+(C>>>1)]>>>4-((1&C)<<2)&15))==17*y?0:255,f[e+C]=U<<24|M<<16|M<<8|M;else if(8==l)for(C=0;C<r;C++)U=(M=n[t+C])==y?0:255,f[e+C]=U<<24|M<<16|M<<8|M;else if(16==l)for(C=0;C<r;C++)M=n[t+(C<<1)],U=w(n,t+(C<<1))==y?0:255,f[e+C]=U<<24|M<<16|M<<8|M}return h}function r(t,n,r,a){const c=s(t),h=new Uint8Array((Math.ceil(r*c/8)+1+t.interlace)*a);return n=t.tabs.CgBI?i(n,h):e(n,h),0==t.interlace?n=o(n,t,0,r,a):1==t.interlace&&(n=function(t,n){const r=n.width,e=n.height,i=s(n),a=i>>3,c=Math.ceil(r*i/8),h=new Uint8Array(e*c);let f=0;const u=[0,0,4,0,2,0,1],l=[0,4,0,2,0,1,0],w=[8,8,8,4,4,2,2],d=[8,8,4,4,2,2,1];let m=0;for(;m<7;){const s=w[m],v=d[m];let A=0,p=0,g=u[m];for(;g<e;)g+=s,p++;let E=l[m];for(;E<r;)E+=v,A++;const I=Math.ceil(A*i/8);o(t,n,f,A,p);let M=0,b=u[m];for(;b<e;){let n=l[m],e=f+M*I<<3;for(;n<r;){var y;if(1==i&&(y=(y=t[e>>3])>>7-(7&e)&1,h[b*c+(n>>3)]|=y<<7-(7&n)),2==i&&(y=(y=t[e>>3])>>6-(7&e)&3,h[b*c+(n>>2)]|=y<<6-((3&n)<<1)),4==i&&(y=(y=t[e>>3])>>4-(7&e)&15,h[b*c+(n>>1)]|=y<<4-((1&n)<<2)),i>=8){const r=b*c+n*a;for(let n=0;n<a;n++)h[r+n]=t[(e>>3)+n]}e+=i,n+=v}M++,b+=s}A*p!=0&&(f+=p*(1+I)),m+=1}return h}(n,t)),n}function e(t,n){return i(new Uint8Array(t.buffer,2,t.length-6),n)}var i=function(){const t={H:{}};return t.H.N=function(n,r){const e=Uint8Array;let i,s,o=0,a=0,c=0,h=0,f=0,u=0,l=0,w=0,d=0;if(3==n[0]&&0==n[1])return r||new e(0);const m=t.H,y=m.b,v=m.e,A=m.R,p=m.n,g=m.A,E=m.Z,I=m.m,M=null==r;for(M&&(r=new e(n.length>>>2<<5));0==o;)if(o=y(n,d,1),a=y(n,d+1,2),d+=3,0!=a){if(M&&(r=t.H.W(r,w+(1<<17))),1==a&&(i=I.J,s=I.h,u=511,l=31),2==a){c=v(n,d,5)+257,h=v(n,d+5,5)+1,f=v(n,d+10,4)+4,d+=14;let t=1;for(var b=0;b<38;b+=2)I.Q[b]=0,I.Q[b+1]=0;for(b=0;b<f;b++){const r=v(n,d+3*b,3);I.Q[1+(I.X[b]<<1)]=r,r>t&&(t=r)}d+=3*f,p(I.Q,t),g(I.Q,t,I.u),i=I.w,s=I.d,d=A(I.u,(1<<t)-1,c+h,n,d,I.v);const r=m.V(I.v,0,c,I.C);u=(1<<r)-1;const e=m.V(I.v,c,h,I.D);l=(1<<e)-1,p(I.C,r),g(I.C,r,i),p(I.D,e),g(I.D,e,s)}for(;;){const t=i[E(n,d)&u];d+=15&t;const e=t>>>4;if(e>>>8==0)r[w++]=e;else{if(256==e)break;{let t=w+e-254;if(e>264){const r=I.q[e-257];t=w+(r>>>3)+v(n,d,7&r),d+=7&r}const i=s[E(n,d)&l];d+=15&i;const o=i>>>4,a=I.c[o],c=(a>>>4)+y(n,d,15&a);for(d+=15&a;w<t;)r[w]=r[w++-c],r[w]=r[w++-c],r[w]=r[w++-c],r[w]=r[w++-c];w=t}}}}else{7&d&&(d+=8-(7&d));const i=4+(d>>>3),s=n[i-4]|n[i-3]<<8;M&&(r=t.H.W(r,w+s)),r.set(new e(n.buffer,n.byteOffset+i,s),w),d=i+s<<3,w+=s}return r.length==w?r:r.slice(0,w)},t.H.W=function(t,n){const r=t.length;if(n<=r)return t;const e=new Uint8Array(r<<1);return e.set(t,0),e},t.H.R=function(n,r,e,i,s,o){const a=t.H.e,c=t.H.Z;let h=0;for(;h<e;){const t=n[c(i,s)&r];s+=15&t;const e=t>>>4;if(e<=15)o[h]=e,h++;else{let t=0,n=0;16==e?(n=3+a(i,s,2),s+=2,t=o[h-1]):17==e?(n=3+a(i,s,3),s+=3):18==e&&(n=11+a(i,s,7),s+=7);const r=h+n;for(;h<r;)o[h]=t,h++}}return s},t.H.V=function(t,n,r,e){let i=0,s=0;const o=e.length>>>1;for(;s<r;){const r=t[s+n];e[s<<1]=0,e[1+(s<<1)]=r,r>i&&(i=r),s++}for(;s<o;)e[s<<1]=0,e[1+(s<<1)]=0,s++;return i},t.H.n=function(n,r){const e=t.H.m,i=n.length;let s,o,a,c;const h=e.j;for(var f=0;f<=r;f++)h[f]=0;for(f=1;f<i;f+=2)h[n[f]]++;const u=e.K;for(s=0,h[0]=0,o=1;o<=r;o++)s=s+h[o-1]<<1,u[o]=s;for(a=0;a<i;a+=2)c=n[a+1],0!=c&&(n[a]=u[c],u[c]++)},t.H.A=function(n,r,e){const i=n.length,s=t.H.m.r;for(let t=0;t<i;t+=2)if(0!=n[t+1]){const i=t>>1,o=n[t+1],a=i<<4|o,c=r-o;let h=n[t]<<c;const f=h+(1<<c);for(;h!=f;)e[s[h]>>>15-r]=a,h++}},t.H.l=function(n,r){const e=t.H.m.r,i=15-r;for(let t=0;t<n.length;t+=2){const s=n[t]<<r-n[t+1];n[t]=e[s]>>>i}},t.H.M=function(t,n,r){r<<=7&n;const e=n>>>3;t[e]|=r,t[e+1]|=r>>>8},t.H.I=function(t,n,r){r<<=7&n;const e=n>>>3;t[e]|=r,t[e+1]|=r>>>8,t[e+2]|=r>>>16},t.H.e=function(t,n,r){return(t[n>>>3]|t[1+(n>>>3)]<<8)>>>(7&n)&(1<<r)-1},t.H.b=function(t,n,r){return(t[n>>>3]|t[1+(n>>>3)]<<8|t[2+(n>>>3)]<<16)>>>(7&n)&(1<<r)-1},t.H.Z=function(t,n){return(t[n>>>3]|t[1+(n>>>3)]<<8|t[2+(n>>>3)]<<16)>>>(7&n)},t.H.i=function(t,n){return(t[n>>>3]|t[1+(n>>>3)]<<8|t[2+(n>>>3)]<<16|t[3+(n>>>3)]<<24)>>>(7&n)},t.H.m=function(){const t=Uint16Array,n=Uint32Array;return{K:new t(16),j:new t(16),X:[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],S:[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,999,999,999],T:[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0],q:new t(32),p:[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,65535,65535],z:[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0],c:new n(32),J:new t(512),At:[],h:new t(32),$:[],w:new t(32768),C:[],v:[],d:new t(32768),D:[],u:new t(512),Q:[],r:new t(32768),s:new n(286),Y:new n(30),a:new n(19),t:new n(15e3),k:new t(65536),g:new t(32768)}}(),function(){const n=t.H.m;for(var r=0;r<32768;r++){let t=r;t=(2863311530&t)>>>1|(1431655765&t)<<1,t=(3435973836&t)>>>2|(858993459&t)<<2,t=(4042322160&t)>>>4|(252645135&t)<<4,t=(4278255360&t)>>>8|(16711935&t)<<8,n.r[r]=(t>>>16|t<<16)>>>17}function e(t,n,r){for(;0!=n--;)t.push(0,r)}for(r=0;r<32;r++)n.q[r]=n.S[r]<<3|n.T[r],n.c[r]=n.p[r]<<4|n.z[r];e(n.At,144,8),e(n.At,112,9),e(n.At,24,7),e(n.At,8,8),t.H.n(n.At,9),t.H.A(n.At,9,n.J),t.H.l(n.At,9),e(n.$,32,5),t.H.n(n.$,5),t.H.A(n.$,5,n.h),t.H.l(n.$,5),e(n.Q,19,0),e(n.C,286,0),e(n.D,30,0),e(n.v,320,0)}(),t.H.N}();function s(t){return[1,null,3,1,2,null,4][t.ctype]*t.depth}function o(t,n,r,e,i){let o=s(n);const c=Math.ceil(e*o/8);let h,f;o=Math.ceil(o/8);let u=t[r],l=0;if(u>1&&(t[r]=[0,0,1][u-2]),3==u)for(l=o;l<c;l++)t[l+1]=t[l+1]+(t[l+1-o]>>>1)&255;for(let n=0;n<i;n++)if(h=r+n*c,f=h+n+1,u=t[f-1],l=0,0==u)for(;l<c;l++)t[h+l]=t[f+l];else if(1==u){for(;l<o;l++)t[h+l]=t[f+l];for(;l<c;l++)t[h+l]=t[f+l]+t[h+l-o]}else if(2==u)for(;l<c;l++)t[h+l]=t[f+l]+t[h+l-c];else if(3==u){for(;l<o;l++)t[h+l]=t[f+l]+(t[h+l-c]>>>1);for(;l<c;l++)t[h+l]=t[f+l]+(t[h+l-c]+t[h+l-o]>>>1)}else{for(;l<o;l++)t[h+l]=t[f+l]+a(0,t[h+l-c],0);for(;l<c;l++)t[h+l]=t[f+l]+a(t[h+l-o],t[h+l-c],t[h+l-o-c])}return t}function a(t,n,r){const e=t+n-r,i=e-t,s=e-n,o=e-r;return i*i<=s*s&&i*i<=o*o?t:s*s<=o*o?n:r}function c(n,r,e){e.width=t.readUint(n,r),r+=4,e.height=t.readUint(n,r),r+=4,e.depth=n[r],r++,e.ctype=n[r],r++,e.compress=n[r],r++,e.filter=n[r],r++,e.interlace=n[r],r++}function h(t,n,r,e,i,s,o,a,c){const h=Math.min(n,i),f=Math.min(r,s);let u=0,l=0;for(let r=0;r<f;r++)for(let s=0;s<h;s++)if(o>=0&&a>=0?(u=r*n+s<<2,l=(a+r)*i+o+s<<2):(u=(-a+r)*n-o+s<<2,l=r*i+s<<2),0==c)e[l]=t[u],e[l+1]=t[u+1],e[l+2]=t[u+2],e[l+3]=t[u+3];else if(1==c){var w=t[u+3]*(1/255),d=t[u]*w,m=t[u+1]*w,y=t[u+2]*w,v=e[l+3]*(1/255),A=e[l]*v,p=e[l+1]*v,g=e[l+2]*v;const n=1-w,r=w+v*n,i=0==r?0:1/r;e[l+3]=255*r,e[l+0]=(d+A*n)*i,e[l+1]=(m+p*n)*i,e[l+2]=(y+g*n)*i}else if(2==c)w=t[u+3],d=t[u],m=t[u+1],y=t[u+2],v=e[l+3],A=e[l],p=e[l+1],g=e[l+2],w==v&&d==A&&m==p&&y==g?(e[l]=0,e[l+1]=0,e[l+2]=0,e[l+3]=0):(e[l]=d,e[l+1]=m,e[l+2]=y,e[l+3]=w);else if(3==c){if(w=t[u+3],d=t[u],m=t[u+1],y=t[u+2],v=e[l+3],A=e[l],p=e[l+1],g=e[l+2],w==v&&d==A&&m==p&&y==g)continue;if(w<220&&v>20)return!1}return!0}return{decode:function(n){const s=new Uint8Array(n);let o=8;const a=t,h=a.readUshort,f=a.readUint,u={tabs:{},frames:[]},l=new Uint8Array(s.length);let w,d=0,m=0;const y=[137,80,78,71,13,10,26,10];for(var v=0;v<8;v++)if(s[v]!=y[v])throw"The input is not a PNG file!";for(;o<s.length;){const t=a.readUint(s,o);o+=4;const n=a.readASCII(s,o,4);if(o+=4,"IHDR"==n)c(s,o,u);else if("iCCP"==n){for(var A=o;0!=s[A];)A++;a.readASCII(s,o,A-o);const r=s.slice(A+2,o+t);let c=null;try{c=e(r)}catch(t){c=i(r)}u.tabs[n]=c}else if("CgBI"==n)u.tabs[n]=s.slice(o,o+4);else if("IDAT"==n){for(v=0;v<t;v++)l[d+v]=s[o+v];d+=t}else if("acTL"==n)u.tabs[n]={num_frames:f(s,o),num_plays:f(s,o+4)},w=new Uint8Array(s.length);else if("fcTL"==n){0!=m&&((b=u.frames[u.frames.length-1]).data=r(u,w.slice(0,m),b.rect.width,b.rect.height),m=0);const t={x:f(s,o+12),y:f(s,o+16),width:f(s,o+4),height:f(s,o+8)};let n=h(s,o+22);n=h(s,o+20)/(0==n?100:n);const e={rect:t,delay:Math.round(1e3*n),dispose:s[o+24],blend:s[o+25]};u.frames.push(e)}else if("fdAT"==n){for(v=0;v<t-4;v++)w[m+v]=s[o+v+4];m+=t-4}else if("pHYs"==n)u.tabs[n]=[a.readUint(s,o),a.readUint(s,o+4),s[o+8]];else if("cHRM"==n)for(u.tabs[n]=[],v=0;v<8;v++)u.tabs[n].push(a.readUint(s,o+4*v));else if("tEXt"==n||"zTXt"==n){null==u.tabs[n]&&(u.tabs[n]={});var p=a.nextZero(s,o),g=a.readASCII(s,o,p-o),E=o+t-p-1;if("tEXt"==n)M=a.readASCII(s,p+1,E);else{var I=e(s.slice(p+2,p+2+E));M=a.readUTF8(I,0,I.length)}u.tabs[n][g]=M}else if("iTXt"==n){null==u.tabs[n]&&(u.tabs[n]={}),p=0,A=o,p=a.nextZero(s,A),g=a.readASCII(s,A,p-A);const r=s[A=p+1];var M;A+=2,p=a.nextZero(s,A),a.readASCII(s,A,p-A),A=p+1,p=a.nextZero(s,A),a.readUTF8(s,A,p-A),E=t-((A=p+1)-o),0==r?M=a.readUTF8(s,A,E):(I=e(s.slice(A,A+E)),M=a.readUTF8(I,0,I.length)),u.tabs[n][g]=M}else if("PLTE"==n)u.tabs[n]=a.readBytes(s,o,t);else if("hIST"==n){const t=u.tabs.PLTE.length/3;for(u.tabs[n]=[],v=0;v<t;v++)u.tabs[n].push(h(s,o+2*v))}else if("tRNS"==n)3==u.ctype?u.tabs[n]=a.readBytes(s,o,t):0==u.ctype?u.tabs[n]=h(s,o):2==u.ctype&&(u.tabs[n]=[h(s,o),h(s,o+2),h(s,o+4)]);else if("gAMA"==n)u.tabs[n]=a.readUint(s,o)/1e5;else if("sRGB"==n)u.tabs[n]=s[o];else if("bKGD"==n)0==u.ctype||4==u.ctype?u.tabs[n]=[h(s,o)]:2==u.ctype||6==u.ctype?u.tabs[n]=[h(s,o),h(s,o+2),h(s,o+4)]:3==u.ctype&&(u.tabs[n]=s[o]);else if("IEND"==n)break;o+=t,a.readUint(s,o),o+=4}var b;return 0!=m&&((b=u.frames[u.frames.length-1]).data=r(u,w.slice(0,m),b.rect.width,b.rect.height)),u.data=r(u,l,u.width,u.height),delete u.compress,delete u.interlace,delete u.filter,u},toRGBA8:function(t){const r=t.width,e=t.height;if(null==t.tabs.acTL)return[n(t.data,r,e,t).buffer];const i=[];null==t.frames[0].data&&(t.frames[0].data=t.data);const s=r*e*4,o=new Uint8Array(s),a=new Uint8Array(s),c=new Uint8Array(s);for(let u=0;u<t.frames.length;u++){const l=t.frames[u],w=l.rect.x,d=l.rect.y,m=l.rect.width,y=l.rect.height,v=n(l.data,m,y,t);if(0!=u)for(var f=0;f<s;f++)c[f]=o[f];if(0==l.blend?h(v,m,y,o,r,e,w,d,0):1==l.blend&&h(v,m,y,o,r,e,w,d,1),i.push(o.buffer.slice(0)),0==l.dispose);else if(1==l.dispose)h(a,m,y,o,r,e,w,d,0);else if(2==l.dispose)for(f=0;f<s;f++)o[f]=c[f]}return i},gt:a,Et:h,It:t}}();!function(){const{Et:t}=f,{It:n}=f,r=f.gt;var e={table:function(){const t=new Uint32Array(256);for(let n=0;n<256;n++){let r=n;for(let t=0;t<8;t++)1&r?r=3988292384^r>>>1:r>>>=1;t[n]=r}return t}(),update(t,n,r,i){for(let s=0;s<i;s++)t=e.table[255&(t^n[r+s])]^t>>>8;return t},crc:(t,n,r)=>4294967295^e.update(4294967295,t,n,r)};function i(t,n,r,e){n[r]+=t[0]*e>>4,n[r+1]+=t[1]*e>>4,n[r+2]+=t[2]*e>>4,n[r+3]+=t[3]*e>>4}function s(t){return Math.max(0,Math.min(255,t))}function o(t,n){const r=t[0]-n[0],e=t[1]-n[1],i=t[2]-n[2],s=t[3]-n[3];return r*r+e*e+i*i+s*s}function a(t,n,r,e,a,c,h){null==h&&(h=1);const f=e.length,u=[];for(var l=0;l<f;l++){const t=e[l];u.push([t>>>0&255,t>>>8&255,t>>>16&255,t>>>24&255])}for(l=0;l<f;l++){let t=4294967295;for(var w=0,d=0;d<f;d++){var m=o(u[l],u[d]);d!=l&&m<t&&(t=m,w=d)}}const y=new Uint32Array(a.buffer),v=new Int16Array(n*r*4),A=[0,8,2,10,12,4,14,6,3,11,1,9,15,7,13,5];for(l=0;l<A.length;l++)A[l]=255*((A[l]+.5)/16-.5);for(let a=0;a<r;a++)for(let g=0;g<n;g++){var p;l=4*(a*n+g),2!=h?p=[s(t[l]+v[l]),s(t[l+1]+v[l+1]),s(t[l+2]+v[l+2]),s(t[l+3]+v[l+3])]:(m=A[4*(3&a)+(3&g)],p=[s(t[l]+m),s(t[l+1]+m),s(t[l+2]+m),s(t[l+3]+m)]),w=0;let E=16777215;for(d=0;d<f;d++){const t=o(p,u[d]);t<E&&(E=t,w=d)}const I=u[w],M=[p[0]-I[0],p[1]-I[1],p[2]-I[2],p[3]-I[3]];1==h&&(g!=n-1&&i(M,v,l+4,7),a!=r-1&&(0!=g&&i(M,v,l+4*n-4,3),i(M,v,l+4*n,5),g!=n-1&&i(M,v,l+4*n+4,1))),c[l>>2]=w,y[l>>2]=e[w]}}function c(t,r,i,s,o){null==o&&(o={});const{crc:a}=e,c=n.writeUint,h=n.writeUshort,f=n.writeASCII;let u=8;const l=t.frames.length>1;let w,d=!1,m=33+(l?20:0);if(null!=o.sRGB&&(m+=13),null!=o.pHYs&&(m+=21),null!=o.iCCP&&(w=pako.deflate(o.iCCP),m+=21+w.length+4),3==t.ctype){for(var y=t.plte.length,v=0;v<y;v++)t.plte[v]>>>24!=255&&(d=!0);m+=8+3*y+4+(d?8+1*y+4:0)}for(var A=0;A<t.frames.length;A++)l&&(m+=38),m+=(I=t.frames[A]).cimg.length+12,0!=A&&(m+=4);m+=12;const p=new Uint8Array(m),g=[137,80,78,71,13,10,26,10];for(v=0;v<8;v++)p[v]=g[v];if(c(p,u,13),u+=4,f(p,u,"IHDR"),u+=4,c(p,u,r),u+=4,c(p,u,i),u+=4,p[u]=t.depth,u++,p[u]=t.ctype,u++,p[u]=0,u++,p[u]=0,u++,p[u]=0,u++,c(p,u,a(p,u-17,17)),u+=4,null!=o.sRGB&&(c(p,u,1),u+=4,f(p,u,"sRGB"),u+=4,p[u]=o.sRGB,u++,c(p,u,a(p,u-5,5)),u+=4),null!=o.iCCP){const t=13+w.length;c(p,u,t),u+=4,f(p,u,"iCCP"),u+=4,f(p,u,"ICC profile"),u+=11,u+=2,p.set(w,u),u+=w.length,c(p,u,a(p,u-(t+4),t+4)),u+=4}if(null!=o.pHYs&&(c(p,u,9),u+=4,f(p,u,"pHYs"),u+=4,c(p,u,o.pHYs[0]),u+=4,c(p,u,o.pHYs[1]),u+=4,p[u]=o.pHYs[2],u++,c(p,u,a(p,u-13,13)),u+=4),l&&(c(p,u,8),u+=4,f(p,u,"acTL"),u+=4,c(p,u,t.frames.length),u+=4,c(p,u,null!=o.loop?o.loop:0),u+=4,c(p,u,a(p,u-12,12)),u+=4),3==t.ctype){for(c(p,u,3*(y=t.plte.length)),u+=4,f(p,u,"PLTE"),u+=4,v=0;v<y;v++){const n=3*v,r=t.plte[v],e=255&r,i=r>>>8&255,s=r>>>16&255;p[u+n+0]=e,p[u+n+1]=i,p[u+n+2]=s}if(u+=3*y,c(p,u,a(p,u-3*y-4,3*y+4)),u+=4,d){for(c(p,u,y),u+=4,f(p,u,"tRNS"),u+=4,v=0;v<y;v++)p[u+v]=t.plte[v]>>>24&255;u+=y,c(p,u,a(p,u-y-4,y+4)),u+=4}}let E=0;for(A=0;A<t.frames.length;A++){var I=t.frames[A];l&&(c(p,u,26),u+=4,f(p,u,"fcTL"),u+=4,c(p,u,E++),u+=4,c(p,u,I.rect.width),u+=4,c(p,u,I.rect.height),u+=4,c(p,u,I.rect.x),u+=4,c(p,u,I.rect.y),u+=4,h(p,u,s[A]),u+=2,h(p,u,1e3),u+=2,p[u]=I.dispose,u++,p[u]=I.blend,u++,c(p,u,a(p,u-30,30)),u+=4);const n=I.cimg;c(p,u,(y=n.length)+(0==A?0:4)),u+=4;const r=u;f(p,u,0==A?"IDAT":"fdAT"),u+=4,0!=A&&(c(p,u,E++),u+=4),p.set(n,u),u+=y,c(p,u,a(p,r,u-r)),u+=4}return c(p,u,0),u+=4,f(p,u,"IEND"),u+=4,c(p,u,a(p,u-4,4)),u+=4,p.buffer}function u(t,n,r){for(let e=0;e<t.frames.length;e++){const i=t.frames[e],s=i.rect.height,o=new Uint8Array(s*i.bpl+s);i.cimg=m(i.img,s,i.bpp,i.bpl,o,n,r)}}function l(n,r,e,i,s){const o=s[0],c=s[1],h=s[2],f=s[3],u=s[4],l=s[5];let m=6,y=8,A=255;for(var p=0;p<n.length;p++){const t=new Uint8Array(n[p]);for(var g=t.length,E=0;E<g;E+=4)A&=t[E+3]}const I=255!=A,M=function(n,r,e,i,s,o){const a=[];for(var c=0;c<n.length;c++){const u=new Uint8Array(n[c]),w=new Uint32Array(u.buffer);var h;let m=0,y=0,v=r,A=e,p=i?1:0;if(0!=c){const g=o||i||1==c||0!=a[c-2].dispose?1:2;let E=0,I=1e9;for(let t=0;t<g;t++){var f=new Uint8Array(n[c-1-t]);const i=new Uint32Array(n[c-1-t]);let o=r,a=e,h=-1,u=-1;for(let t=0;t<e;t++)for(let n=0;n<r;n++)w[l=t*r+n]!=i[l]&&(n<o&&(o=n),n>h&&(h=n),t<a&&(a=t),t>u&&(u=t));-1==h&&(o=a=h=u=0),s&&(!(1&~o)&&o--,!(1&~a)&&a--);const d=(h-o+1)*(u-a+1);d<I&&(I=d,E=t,m=o,y=a,v=h-o+1,A=u-a+1)}f=new Uint8Array(n[c-1-E]),1==E&&(a[c-1].dispose=2),h=new Uint8Array(v*A*4),t(f,r,e,h,v,A,-m,-y,0),p=t(u,r,e,h,v,A,-m,-y,3)?1:0,1==p?d(u,r,e,h,{x:m,y:y,width:v,height:A}):t(u,r,e,h,v,A,-m,-y,0)}else h=u.slice(0);a.push({rect:{x:m,y:y,width:v,height:A},img:h,blend:p,dispose:0})}if(i)for(c=0;c<a.length;c++){if(1==(m=a[c]).blend)continue;const t=m.rect,i=a[c-1].rect,o=Math.min(t.x,i.x),h=Math.min(t.y,i.y),f={x:o,y:h,width:Math.max(t.x+t.width,i.x+i.width)-o,height:Math.max(t.y+t.height,i.y+i.height)-h};a[c-1].dispose=1,c-1!=0&&w(n,r,e,a,c-1,f,s),w(n,r,e,a,c,f,s)}let u=0;if(1!=n.length)for(var l=0;l<a.length;l++){var m;u+=(m=a[l]).rect.width*m.rect.height}return a}(n,r,e,o,c,h),b={},C=[],U=[];if(0!=i){const t=[];for(E=0;E<M.length;E++)t.push(M[E].img.buffer);const n=function(t){let n=0;for(var r=0;r<t.length;r++)n+=t[r].byteLength;const e=new Uint8Array(n);let i=0;for(r=0;r<t.length;r++){const n=new Uint8Array(t[r]),s=n.length;for(let t=0;t<s;t+=4){let r=n[t],s=n[t+1],o=n[t+2];const a=n[t+3];0==a&&(r=s=o=0),e[i+t]=r,e[i+t+1]=s,e[i+t+2]=o,e[i+t+3]=a}i+=s}return e.buffer}(t),r=v(n,i);for(E=0;E<r.plte.length;E++)C.push(r.plte[E].est.rgba);let e=0;for(E=0;E<M.length;E++){const t=(S=M[E]).img.length;var B=new Uint8Array(r.inds.buffer,e>>2,t>>2);U.push(B);const n=new Uint8Array(r.abuf,e,t);l&&a(S.img,S.rect.width,S.rect.height,C,n,B),S.img.set(n),e+=t}}else for(p=0;p<M.length;p++){var S=M[p];const t=new Uint32Array(S.img.buffer);var D=S.rect.width;for(g=t.length,B=new Uint8Array(g),U.push(B),E=0;E<g;E++){const n=t[E];if(0!=E&&n==t[E-1])B[E]=B[E-1];else if(E>D&&n==t[E-D])B[E]=B[E-D];else{let t=b[n];if(null==t&&(b[n]=t=C.length,C.push(n),C.length>=300))break;B[E]=t}}}const R=C.length;for(R<=256&&0==u&&(y=R<=2?1:R<=4?2:R<=16?4:8,y=Math.max(y,f)),p=0;p<M.length;p++){(S=M[p]).rect.x,D=S.rect.width;const t=S.rect.height;let n=S.img,r=4*D,e=4;if(R<=256&&0==u){r=Math.ceil(y*D/8);var P=new Uint8Array(r*t);const i=U[p];for(let n=0;n<t;n++){E=n*r;const t=n*D;if(8==y)for(var Q=0;Q<D;Q++)P[E+Q]=i[t+Q];else if(4==y)for(Q=0;Q<D;Q++)P[E+(Q>>1)]|=i[t+Q]<<4-4*(1&Q);else if(2==y)for(Q=0;Q<D;Q++)P[E+(Q>>2)]|=i[t+Q]<<6-2*(3&Q);else if(1==y)for(Q=0;Q<D;Q++)P[E+(Q>>3)]|=i[t+Q]<<7-1*(7&Q)}n=P,m=3,e=1}else if(0==I&&1==M.length){P=new Uint8Array(D*t*3);const i=D*t;for(E=0;E<i;E++){const t=3*E,r=4*E;P[t]=n[r],P[t+1]=n[r+1],P[t+2]=n[r+2]}n=P,m=2,e=3,r=3*D}S.img=n,S.bpl=r,S.bpp=e}return{ctype:m,depth:y,plte:C,frames:M}}function w(n,r,e,i,s,o,a){const c=Uint8Array,h=Uint32Array,f=new c(n[s-1]),u=new h(n[s-1]),l=s+1<n.length?new c(n[s+1]):null,w=new c(n[s]),m=new h(w.buffer);let y=r,v=e,A=-1,p=-1;for(let t=0;t<o.height;t++)for(let n=0;n<o.width;n++){const e=o.x+n,a=o.y+t,c=a*r+e,h=m[c];0==h||0==i[s-1].dispose&&u[c]==h&&(null==l||0!=l[4*c+3])||(e<y&&(y=e),e>A&&(A=e),a<v&&(v=a),a>p&&(p=a))}-1==A&&(y=v=A=p=0),a&&(!(1&~y)&&y--,!(1&~v)&&v--),o={x:y,y:v,width:A-y+1,height:p-v+1};const g=i[s];g.rect=o,g.blend=1,g.img=new Uint8Array(o.width*o.height*4),0==i[s-1].dispose?(t(f,r,e,g.img,o.width,o.height,-o.x,-o.y,0),d(w,r,e,g.img,o)):t(w,r,e,g.img,o.width,o.height,-o.x,-o.y,0)}function d(n,r,e,i,s){t(n,r,e,i,s.width,s.height,-s.x,-s.y,2)}function m(t,n,r,e,i,s,o){const a=[];let c,f=[0,1,2,3,4];-1!=s?f=[s]:(n*e>5e5||1==r)&&(f=[0]),o&&(c={level:0});const u=h;for(var l=0;l<f.length;l++){for(let s=0;s<n;s++)y(i,t,s,e,r,f[l]);a.push(u.deflate(i,c))}let w,d=1e9;for(l=0;l<a.length;l++)a[l].length<d&&(w=l,d=a[l].length);return a[w]}function y(t,n,e,i,s,o){const a=e*i;let c=a+e;if(t[c]=o,c++,0==o)if(i<500)for(var h=0;h<i;h++)t[c+h]=n[a+h];else t.set(new Uint8Array(n.buffer,a,i),c);else if(1==o){for(h=0;h<s;h++)t[c+h]=n[a+h];for(h=s;h<i;h++)t[c+h]=n[a+h]-n[a+h-s]+256&255}else if(0==e){for(h=0;h<s;h++)t[c+h]=n[a+h];if(2==o)for(h=s;h<i;h++)t[c+h]=n[a+h];if(3==o)for(h=s;h<i;h++)t[c+h]=n[a+h]-(n[a+h-s]>>1)+256&255;if(4==o)for(h=s;h<i;h++)t[c+h]=n[a+h]-r(n[a+h-s],0,0)+256&255}else{if(2==o)for(h=0;h<i;h++)t[c+h]=n[a+h]+256-n[a+h-i]&255;if(3==o){for(h=0;h<s;h++)t[c+h]=n[a+h]+256-(n[a+h-i]>>1)&255;for(h=s;h<i;h++)t[c+h]=n[a+h]+256-(n[a+h-i]+n[a+h-s]>>1)&255}if(4==o){for(h=0;h<s;h++)t[c+h]=n[a+h]+256-r(0,n[a+h-i],0)&255;for(h=s;h<i;h++)t[c+h]=n[a+h]+256-r(n[a+h-s],n[a+h-i],n[a+h-s-i])&255}}}function v(t,n){const r=new Uint8Array(t),e=r.slice(0),i=new Uint32Array(e.buffer),s=A(e,n),o=s[0],a=s[1],c=r.length,h=new Uint8Array(c>>2);let f;if(r.length<2e7)for(var u=0;u<c;u+=4)f=p(o,l=r[u]*(1/255),w=r[u+1]*(1/255),d=r[u+2]*(1/255),m=r[u+3]*(1/255)),h[u>>2]=f.ind,i[u>>2]=f.est.rgba;else for(u=0;u<c;u+=4){var l=r[u]*(1/255),w=r[u+1]*(1/255),d=r[u+2]*(1/255),m=r[u+3]*(1/255);for(f=o;f.left;)f=g(f.est,l,w,d,m)<=0?f.left:f.right;h[u>>2]=f.ind,i[u>>2]=f.est.rgba}return{abuf:e.buffer,inds:h,plte:a}}function A(t,n,r){null==r&&(r=1e-4);const e=new Uint32Array(t.buffer),i={i0:0,i1:t.length,bst:null,est:null,tdst:0,left:null,right:null};i.bst=M(t,i.i0,i.i1),i.est=b(i.bst);const s=[i];for(;s.length<n;){let n=0,i=0;for(var o=0;o<s.length;o++)s[o].est.L>n&&(n=s[o].est.L,i=o);if(n<r)break;const a=s[i],c=E(t,e,a.i0,a.i1,a.est.e,a.est.eMq255);if(a.i0>=c||a.i1<=c){a.est.L=0;continue}const h={i0:a.i0,i1:c,bst:null,est:null,tdst:0,left:null,right:null};h.bst=M(t,h.i0,h.i1),h.est=b(h.bst);const f={i0:c,i1:a.i1,bst:null,est:null,tdst:0,left:null,right:null};for(f.bst={R:[],m:[],N:a.bst.N-h.bst.N},o=0;o<16;o++)f.bst.R[o]=a.bst.R[o]-h.bst.R[o];for(o=0;o<4;o++)f.bst.m[o]=a.bst.m[o]-h.bst.m[o];f.est=b(f.bst),a.left=h,a.right=f,s[i]=h,s.push(f)}for(s.sort(((t,n)=>n.bst.N-t.bst.N)),o=0;o<s.length;o++)s[o].ind=o;return[i,s]}function p(t,n,r,e,i){if(null==t.left)return t.tdst=function(t,n,r,e,i){const s=n-t[0],o=r-t[1],a=e-t[2],c=i-t[3];return s*s+o*o+a*a+c*c}(t.est.q,n,r,e,i),t;const s=g(t.est,n,r,e,i);let o=t.left,a=t.right;s>0&&(o=t.right,a=t.left);const c=p(o,n,r,e,i);if(c.tdst<=s*s)return c;const h=p(a,n,r,e,i);return h.tdst<c.tdst?h:c}function g(t,n,r,e,i){const{e:s}=t;return s[0]*n+s[1]*r+s[2]*e+s[3]*i-t.eMq}function E(t,n,r,e,i,s){for(e-=4;r<e;){for(;I(t,r,i)<=s;)r+=4;for(;I(t,e,i)>s;)e-=4;if(r>=e)break;const o=n[r>>2];n[r>>2]=n[e>>2],n[e>>2]=o,r+=4,e-=4}for(;I(t,r,i)>s;)r-=4;return r+4}function I(t,n,r){return t[n]*r[0]+t[n+1]*r[1]+t[n+2]*r[2]+t[n+3]*r[3]}function M(t,n,r){const e=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],i=[0,0,0,0],s=r-n>>2;for(let s=n;s<r;s+=4){const n=t[s]*(1/255),r=t[s+1]*(1/255),o=t[s+2]*(1/255),a=t[s+3]*(1/255);i[0]+=n,i[1]+=r,i[2]+=o,i[3]+=a,e[0]+=n*n,e[1]+=n*r,e[2]+=n*o,e[3]+=n*a,e[5]+=r*r,e[6]+=r*o,e[7]+=r*a,e[10]+=o*o,e[11]+=o*a,e[15]+=a*a}return e[4]=e[1],e[8]=e[2],e[9]=e[6],e[12]=e[3],e[13]=e[7],e[14]=e[11],{R:e,m:i,N:s}}function b(t){const{R:n}=t,{m:r}=t,{N:e}=t,i=r[0],s=r[1],o=r[2],a=r[3],c=0==e?0:1/e,h=[n[0]-i*i*c,n[1]-i*s*c,n[2]-i*o*c,n[3]-i*a*c,n[4]-s*i*c,n[5]-s*s*c,n[6]-s*o*c,n[7]-s*a*c,n[8]-o*i*c,n[9]-o*s*c,n[10]-o*o*c,n[11]-o*a*c,n[12]-a*i*c,n[13]-a*s*c,n[14]-a*o*c,n[15]-a*a*c],f=h,u=C;let l=[Math.random(),Math.random(),Math.random(),Math.random()],w=0,d=0;if(0!=e)for(let t=0;t<16&&(l=u.multVec(f,l),d=Math.sqrt(u.dot(l,l)),l=u.sml(1/d,l),!(0!=t&&Math.abs(d-w)<1e-9));t++)w=d;const m=[i*c,s*c,o*c,a*c];return{Cov:h,q:m,e:l,L:w,eMq255:u.dot(u.sml(255,m),l),eMq:u.dot(l,m),rgba:(Math.round(255*m[3])<<24|Math.round(255*m[2])<<16|Math.round(255*m[1])<<8|Math.round(255*m[0]))>>>0}}var C={multVec:(t,n)=>[t[0]*n[0]+t[1]*n[1]+t[2]*n[2]+t[3]*n[3],t[4]*n[0]+t[5]*n[1]+t[6]*n[2]+t[7]*n[3],t[8]*n[0]+t[9]*n[1]+t[10]*n[2]+t[11]*n[3],t[12]*n[0]+t[13]*n[1]+t[14]*n[2]+t[15]*n[3]],dot:(t,n)=>t[0]*n[0]+t[1]*n[1]+t[2]*n[2]+t[3]*n[3],sml:(t,n)=>[t*n[0],t*n[1],t*n[2],t*n[3]]};f.encode=function(t,n,r,e,i,s,o){null==e&&(e=0),null==o&&(o=!1);const a=l(t,n,r,e,[!1,!1,!1,0,o,!1]);return u(a,-1),c(a,n,r,i,s)},f.encodeLL=function(t,n,r,e,i,s,o,a){const h={ctype:0+(1==e?0:2)+(0==i?0:4),depth:s,frames:[]},f=(e+i)*s,l=f*n;for(let e=0;e<t.length;e++)h.frames.push({rect:{x:0,y:0,width:n,height:r},img:new Uint8Array(t[e]),blend:0,dispose:1,bpp:Math.ceil(f/8),bpl:Math.ceil(l/8)});return u(h,0,!0),c(h,n,r,o,a)},f.encode.compress=l,f.encode.dither=a,f.quantize=v,f.quantize.getKDtree=A,f.quantize.getNearest=p}();const u={toArrayBuffer(t,n){const r=t.width,e=t.height,i=r<<2,s=t.getContext("2d").getImageData(0,0,r,e),o=new Uint32Array(s.data.buffer),a=(32*r+31)/32<<2,c=a*e,h=122+c,f=new ArrayBuffer(h),l=new DataView(f),w=1<<20;let d,m,y,v,A=w,p=0,g=0,E=0;function I(t){l.setUint16(g,t,!0),g+=2}function M(t){l.setUint32(g,t,!0),g+=4}function b(t){g+=t}I(19778),M(h),b(4),M(122),M(108),M(r),M(-e>>>0),I(1),I(32),M(3),M(c),M(2835),M(2835),b(8),M(16711680),M(65280),M(255),M(4278190080),M(1466527264),function t(){for(;p<e&&A>0;){for(v=122+p*a,d=0;d<i;)A--,m=o[E++],y=m>>>24,l.setUint32(v+d,m<<8|y),d+=4;p++}E<o.length?(A=w,setTimeout(t,u.Mt)):n(f)}()},toBlob(t,n){this.toArrayBuffer(t,(t=>{n(new Blob([t],{type:"image/bmp"}))}))},Mt:9};var l={CHROME:"CHROME",FIREFOX:"FIREFOX",DESKTOP_SAFARI:"DESKTOP_SAFARI",IE:"IE",IOS:"IOS",ETC:"ETC"},w={[l.CHROME]:16384,[l.FIREFOX]:11180,[l.DESKTOP_SAFARI]:16384,[l.IE]:8192,[l.IOS]:4096,[l.ETC]:8192};const d="undefined"!=typeof window,m="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,y=d&&window.cordova&&window.cordova.require&&window.cordova.require("cordova/modulemapper"),v=(d||m)&&(y&&y.getOriginalSymbol(window,"File")||"undefined"!=typeof File&&File),A=(d||m)&&(y&&y.getOriginalSymbol(window,"FileReader")||"undefined"!=typeof FileReader&&FileReader);function p(t,n,r=Date.now()){return new Promise((e=>{const i=t.split(","),s=i[0].match(/:(.*?);/)[1],o=globalThis.atob(i[1]);let a=o.length;const c=new Uint8Array(a);for(;a--;)c[a]=o.charCodeAt(a);const h=new Blob([c],{type:s});h.name=n,h.lastModified=r,e(h)}))}function g(t){return new Promise(((n,r)=>{const e=new A;e.onload=()=>n(e.result),e.onerror=t=>r(t),e.readAsDataURL(t)}))}function E(t){return new Promise(((n,r)=>{const e=new Image;e.onload=()=>n(e),e.onerror=t=>r(t),e.src=t}))}function I(){if(void 0!==I.cachedResult)return I.cachedResult;let t=l.ETC;const{userAgent:n}=navigator;return/Chrom(e|ium)/i.test(n)?t=l.CHROME:/iP(ad|od|hone)/i.test(n)&&/WebKit/i.test(n)?t=l.IOS:/Safari/i.test(n)?t=l.DESKTOP_SAFARI:/Firefox/i.test(n)?t=l.FIREFOX:(/MSIE/i.test(n)||1==!!document.documentMode)&&(t=l.IE),I.cachedResult=t,I.cachedResult}function M(t,n){const r=I(),e=w[r];let i=t,s=n,o=i*s;const a=i>s?s/i:i/s;for(;o>e*e;){const t=(e+i)/2,n=(e+s)/2;t<n?(s=n,i=n*a):(s=t*a,i=t),o=i*s}return{width:i,height:s}}function b(t,n){let r,e;try{if(r=new OffscreenCanvas(t,n),e=r.getContext("2d"),null===e)throw Error("getContext of OffscreenCanvas returns null")}catch(t){r=document.createElement("canvas"),e=r.getContext("2d")}return r.width=t,r.height=n,[r,e]}function C(t,n){const{width:r,height:e}=M(t.width,t.height),[i,s]=b(r,e);return n&&/jpe?g/.test(n)&&(s.fillStyle="white",s.fillRect(0,0,i.width,i.height)),s.drawImage(t,0,0,i.width,i.height),i}function U(){return void 0!==U.cachedResult||(U.cachedResult=["iPad Simulator","iPhone Simulator","iPod Simulator","iPad","iPhone","iPod"].includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"undefined"!=typeof document&&"ontouchend"in document),U.cachedResult}function B(t,n={}){return new Promise((function(r,e){let i,s;var o=function(){try{return s=C(i,n.fileType||t.type),r([i,s])}catch(t){return e(t)}},a=function(n){try{var r=function(t){try{throw t}catch(t){return e(t)}};try{let n;return g(t).then((function(t){try{return n=t,E(n).then((function(t){try{return i=t,function(){try{return o()}catch(t){return e(t)}}()}catch(t){return r(t)}}),r)}catch(t){return r(t)}}),r)}catch(t){r(t)}}catch(t){return e(t)}};try{if(U()||[l.DESKTOP_SAFARI,l.MOBILE_SAFARI].includes(I()))throw Error("Skip createImageBitmap on IOS and Safari");return createImageBitmap(t).then((function(t){try{return i=t,o()}catch(t){return a()}}),a)}catch(t){a()}}))}function S(t,n,r,e,i=1){return new Promise((function(s,o){let a;if("image/png"===n){let h,l,w;return h=t.getContext("2d"),({data:l}=h.getImageData(0,0,t.width,t.height)),w=f.encode([l.buffer],t.width,t.height,4096*i),a=new Blob([w],{type:n}),a.name=r,a.lastModified=e,c()}{if("image/bmp"===n)return new Promise((n=>u.toBlob(t,n))).then(function(t){try{return a=t,a.name=r,a.lastModified=e,d()}catch(t){return o(t)}}.bind(this),o);{if("function"==typeof OffscreenCanvas&&t instanceof OffscreenCanvas)return t.convertToBlob({type:n,quality:i}).then(function(t){try{return a=t,a.name=r,a.lastModified=e,m()}catch(t){return o(t)}}.bind(this),o);{let y;return y=t.toDataURL(n,i),p(y,r,e).then(function(t){try{return a=t,m()}catch(t){return o(t)}}.bind(this),o)}function m(){return d()}}function d(){return c()}}function c(){return s(a)}}))}function D(t){t.width=0,t.height=0}function R(){return new Promise((function(t,n){let r,e,i,s;return void 0!==R.cachedResult?t(R.cachedResult):p("data:image/jpeg;base64,/9j/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAYAAAAAAAD/2wCEAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/AABEIAAEAAgMBEQACEQEDEQH/xABKAAEAAAAAAAAAAAAAAAAAAAALEAEAAAAAAAAAAAAAAAAAAAAAAQEAAAAAAAAAAAAAAAAAAAAAEQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIRAxEAPwA/8H//2Q==","test.jpg",Date.now()).then((function(o){try{return r=o,B(r).then((function(o){try{return e=o[1],S(e,r.type,r.name,r.lastModified).then((function(r){try{return i=r,D(e),B(i).then((function(r){try{return s=r[0],R.cachedResult=1===s.width&&2===s.height,t(R.cachedResult)}catch(t){return n(t)}}),n)}catch(t){return n(t)}}),n)}catch(t){return n(t)}}),n)}catch(t){return n(t)}}),n)}))}function P(t){return new Promise(((n,r)=>{const e=new A;e.onload=t=>{const r=new DataView(t.target.result);if(65496!=r.getUint16(0,!1))return n(-2);const e=r.byteLength;let i=2;for(;i<e;){if(r.getUint16(i+2,!1)<=8)return n(-1);const t=r.getUint16(i,!1);if(i+=2,65505==t){if(1165519206!=r.getUint32(i+=2,!1))return n(-1);const t=18761==r.getUint16(i+=6,!1);i+=r.getUint32(i+4,t);const e=r.getUint16(i,t);i+=2;for(let s=0;s<e;s++)if(274==r.getUint16(i+12*s,t))return n(r.getUint16(i+12*s+8,t))}else{if(65280&~t)break;i+=r.getUint16(i,!1)}}return n(-1)},e.onerror=t=>r(t),e.readAsArrayBuffer(t)}))}function Q(t,n){const{width:r}=t,{height:e}=t,{maxWidthOrHeight:i}=n;let s,o=t;return isFinite(i)&&(r>i||e>i)&&([o,s]=b(r,e),r>e?(o.width=i,o.height=e/r*i):(o.width=r/e*i,o.height=i),s.drawImage(t,0,0,o.width,o.height),D(t)),o}function T(t,n){const{width:r}=t,{height:e}=t,[i,s]=b(r,e);switch(n>4&&n<9?(i.width=e,i.height=r):(i.width=r,i.height=e),n){case 2:s.transform(-1,0,0,1,r,0);break;case 3:s.transform(-1,0,0,-1,r,e);break;case 4:s.transform(1,0,0,-1,0,e);break;case 5:s.transform(0,1,1,0,0,0);break;case 6:s.transform(0,1,-1,0,e,0);break;case 7:s.transform(0,-1,-1,0,e,r);break;case 8:s.transform(0,-1,1,0,0,r)}return s.drawImage(t,0,0,r,e),D(t),i}function x(t,n,r=0){return new Promise((function(e,i){let s,o,a,c,h,f,u,l,w,d,m,y,v,A,p,g,E,I,M,C;function U(t=5){if(n.signal&&n.signal.aborted)throw n.signal.reason;s+=t,n.onProgress(Math.min(s,100))}function x(t){if(n.signal&&n.signal.aborted)throw n.signal.reason;s=Math.min(Math.max(t,s),100),n.onProgress(s)}return s=r,o=n.maxIteration||10,a=1024*n.maxSizeMB*1024,U(),B(t,n).then(function(r){try{return[,c]=r,U(),h=Q(c,n),U(),new Promise((function(r,e){var i;if(!(i=n.exifOrientation))return P(t).then(function(t){try{return i=t,s()}catch(t){return e(t)}}.bind(this),e);function s(){return r(i)}return s()})).then(function(r){try{return f=r,U(),R().then(function(r){try{return u=r?h:T(h,f),U(),l=n.initialQuality||1,w=n.fileType||t.type,S(u,w,t.name,t.lastModified,l).then(function(r){try{{if(d=r,U(),m=d.size>a,y=d.size>t.size,!m&&!y)return x(100),e(d);var s;function f(){if(o--&&(p>a||p>v)){let n,r;return n=C?.95*M.width:M.width,r=C?.95*M.height:M.height,[E,I]=b(n,r),I.drawImage(M,0,0,n,r),l*="image/png"===w?.85:.95,S(E,w,t.name,t.lastModified,l).then((function(t){try{return g=t,D(M),M=E,p=g.size,x(Math.min(99,Math.floor((A-p)/(A-a)*100))),f}catch(t){return i(t)}}),i)}return[1]}return v=t.size,A=d.size,p=A,M=u,C=!n.alwaysKeepResolution&&m,(s=function(t){for(;t;){if(t.then)return void t.then(s,i);try{if(t.pop){if(t.length)return t.pop()?(D(M),D(E),D(h),D(u),D(c),x(100),e(g)):t;t=f}else t=t.call(this)}catch(t){return i(t)}}}.bind(this))(f)}}catch(B){return i(B)}}.bind(this),i)}catch(t){return i(t)}}.bind(this),i)}catch(t){return i(t)}}.bind(this),i)}catch(t){return i(t)}}.bind(this),i)}))}let O;function k(t,n){return new Promise(((r,e)=>{O||(O=function(){const t=[];return t.push("\nlet scriptImported = false\nself.addEventListener('message', async (e) => {\n const { file, id, imageCompressionLibUrl, options } = e.data\n options.onProgress = (progress) => self.postMessage({ progress, id })\n try {\n if (!scriptImported) {\n // console.log('[worker] importScripts', imageCompressionLibUrl)\n self.importScripts(imageCompressionLibUrl)\n scriptImported = true\n }\n // console.log('[worker] self', self)\n const compressedFile = await imageCompression(file, options)\n self.postMessage({ file: compressedFile, id })\n } catch (e) {\n // console.error('[worker] error', e)\n self.postMessage({ error: e.message + '\\n' + e.stack, id })\n }\n})\n"),URL.createObjectURL(new Blob(t))}());const i=new Worker(O);i.addEventListener("message",(function(t){if(n.signal&&n.signal.aborted)i.terminate();else if(void 0===t.data.progress){if(t.data.error)return e(Error(t.data.error)),void i.terminate();r(t.data.file),i.terminate()}else n.onProgress(t.data.progress)})),i.addEventListener("error",e),n.signal&&n.signal.addEventListener("abort",(()=>{e(n.signal.reason),i.terminate()})),i.postMessage({file:t,imageCompressionLibUrl:n.libURL,options:{...n,onProgress:void 0,signal:void 0}})}))}function F(t,n){return new Promise((function(r,e){let i,o,a,c,h,f;if(i={...n},a=0,({onProgress:c}=i),i.maxSizeMB=i.maxSizeMB||1/0,h="boolean"!=typeof i.useWebWorker||i.useWebWorker,delete i.useWebWorker,i.onProgress=t=>{a=t,"function"==typeof c&&c(a)},!(t instanceof Blob||t instanceof v))return e(Error("The file given is not an instance of Blob or File"));if(!/^image/.test(t.type))return e(Error("The file given is not an image"));if(f="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,!h||"function"!=typeof Worker||f)return x(t,i).then(function(t){try{return o=t,w()}catch(t){return e(t)}}.bind(this),e);var u=function(){try{return w()}catch(t){return e(t)}}.bind(this),l=function(n){try{return x(t,i).then((function(t){try{return o=t,u()}catch(t){return e(t)}}),e)}catch(t){return e(t)}};try{return i.libURL=i.libURL||"https://cdn.jsdelivr.net/npm/browser-image-compression@2.0.2/dist/browser-image-compression.js",k(t,i).then((function(t){try{return o=t,u()}catch(t){return l()}}),l)}catch(t){l()}function w(){try{o.name=t.name,o.lastModified=t.lastModified}catch(t){}try{i.preserveExif&&"image/jpeg"===t.type&&(!i.fileType||i.fileType&&i.fileType===t.type)&&(o=s(t,o))}catch(t){}return r(o)}}))}F.getDataUrlFromFile=g,F.getFilefromDataUrl=p,F.loadImage=E,F.drawImageInCanvas=C,F.drawFileInCanvas=B,F.canvasToFile=S,F.getExifOrientation=P,F.handleMaxWidthOrHeight=Q,F.followExifOrientation=T,F.cleanupCanvasMemory=D,F.isAutoOrientationInBrowser=R,F.approximateBelowMaximumCanvasSizeOfBrowser=M,F.copyExifWithoutOrientation=s,F.getBrowserName=I,F.version="2.0.2";class L{static imageDataToCanvas(t){const n=document.createElement("canvas");n.width=t.width,n.height=t.height;const r=n.getContext("2d");return r&&r.putImageData(t,0,0),n}static canvasToImageData(t){const n=t.getContext("2d");return n?n.getImageData(0,0,t.width,t.height):null}static adjustBrightnessContrast(t,n=0,r=0){n=Math.max(-100,Math.min(100,n));const e=259*((r=Math.max(-100,Math.min(100,r)))+255)/(255*(259-r)),i=n/100*255,s=t.data,o=s.length;for(let t=0;t<o;t+=4)for(let n=0;n<3;n++){const r=e*(s[t+n]+i-128)+128;s[t+n]=Math.max(0,Math.min(255,r))}return t}static toGrayscale(t){const n=t.data,r=n.length;for(let t=0;t<r;t+=4){const r=.3*n[t]+.59*n[t+1]+.11*n[t+2];n[t]=n[t+1]=n[t+2]=r}return t}static sharpen(t,n=2){if(!t||!t.data)return t;const r=t.width,e=t.height,i=t.data,s=new Uint8ClampedArray(i.length),o=[0,-n,0,-n,1+4*n,-n,0,-n,0];for(let t=1;t<e-1;t++)for(let n=1;n<r-1;n++){const e=4*(t*r+n);for(let a=0;a<3;a++){let c=0;for(let e=-1;e<=1;e++)for(let s=-1;s<=1;s++){const h=3*(e+1)+(s+1);c+=i[4*((t+e)*r+(n+s))+a]*o[h]}s[e+a]=Math.max(0,Math.min(255,c))}s[e+3]=i[e+3]}for(let t=0;t<e;t++)for(let n=0;n<r;n++)if(0===t||t===e-1||0===n||n===r-1){const e=4*(t*r+n);s[e]=i[e],s[e+1]=i[e+1],s[e+2]=i[e+2],s[e+3]=i[e+3]}return new ImageData(s,r,e)}static threshold(t,n=128){const r=this.toGrayscale(new ImageData(new Uint8ClampedArray(t.data),t.width,t.height)),e=r.data,i=e.length;for(let t=0;t<i;t+=4){const r=e[t]<n?0:255;e[t]=e[t+1]=e[t+2]=r}return r}static toBinaryImage(t){const n=this.toGrayscale(new ImageData(new Uint8ClampedArray(t.data),t.width,t.height)),r=this.getOtsuThreshold(n);return this.threshold(n,r)}static getOtsuThreshold(t){const n=t.data,r=Array(256).fill(0);for(let t=0;t<n.length;t+=4)r[n[t]]++;const e=t.width*t.height;let i=0;for(let t=0;t<256;t++)i+=t*r[t];let s=0,o=0,a=0,c=0,h=0;for(let t=0;t<256;t++){if(o+=r[t],0===o)continue;if(a=e-o,0===a)break;s+=t*r[t];const n=s/o,f=(i-s)/a,u=o*a*(n-f)*(n-f);u>c&&(c=u,h=t)}return h}static batchProcess(t,n){let r=new ImageData(new Uint8ClampedArray(t.data),t.width,t.height);if(void 0===n.brightness&&void 0===n.contrast||(r=this.adjustBrightnessContrast(r,n.brightness||0,n.contrast||0)),n.grayscale&&(r=this.toGrayscale(r)),n.sharpen&&(r=this.sharpen(r)),n.invert){const t=r.data;for(let n=0;n<t.length;n+=4)t[n]=255-t[n],t[n+1]=255-t[n+1],t[n+2]=255-t[n+2]}return r}static async compressImage(t,n){const r={maxSizeMB:1,maxWidthOrHeight:1920,useWebWorker:!0,quality:.8,fileType:t.type||"image/jpeg",...n};try{return await F(t,r)}catch(n){return t}}static async createImageDataFromFile(t){return new Promise(((n,r)=>{try{const e=new Image,i=URL.createObjectURL(t);e.onload=()=>{try{const t=document.createElement("canvas"),s=t.getContext("2d");if(!s)return void r(Error("无法创建2D上下文"));t.width=e.width,t.height=e.height,s.drawImage(e,0,0);const o=s.getImageData(0,0,t.width,t.height);URL.revokeObjectURL(i),n(o)}catch(t){r(t)}},e.onerror=()=>{URL.revokeObjectURL(i),r(Error("图片加载失败"))},e.src=i}catch(t){r(t)}}))}static async imageDataToFile(t,n="image.jpg",r="image/jpeg",e=.8){return new Promise(((i,s)=>{try{const o=document.createElement("canvas");o.width=t.width,o.height=t.height;const a=o.getContext("2d");if(!a)return void s(Error("无法创建2D上下文"));a.putImageData(t,0,0),o.toBlob((t=>{if(!t)return void s(Error("无法创建图片Blob"));const e=new File([t],n,{type:r});i(e)}),r,e)}catch(t){s(t)}}))}static resizeImage(t,n,r,e=!0){const{width:i,height:s}=t;if(i<=n&&s<=r)return t;let o=n,a=r;if(e){const t=Math.min(n/i,r/s);o=Math.floor(i*t),a=Math.floor(s*t)}const c=document.createElement("canvas");c.width=o,c.height=a;const h=c.getContext("2d");if(!h)throw Error("无法创建2D上下文");const f=document.createElement("canvas");f.width=i,f.height=s;const u=f.getContext("2d");if(!u)throw Error("无法创建临时2D上下文");return u.putImageData(t,0,0),h.imageSmoothingEnabled=!0,h.imageSmoothingQuality="high",h.drawImage(f,0,0,i,s,0,0,o,a),h.getImageData(0,0,o,a)}}class ${constructor(t={}){this.options=t,this.scanning=!1,this.scanTimer=null,this.options={scanInterval:200,...t},this.camera=new e}async start(t){try{await this.camera.initialize(t),this.scanning=!0,this.scan()}catch(t){this.options.onError&&this.options.onError(t instanceof Error?t:Error(t+""))}}scan(){if(!this.scanning)return;const t=this.camera.captureFrame();if(t)try{const n=L.adjustBrightnessContrast(L.toGrayscale(t),10,20);this.detectBarcode(n)}catch(t){}this.scanTimer=window.setTimeout((()=>this.scan()),this.options.scanInterval)}detectBarcode(t){if(Math.random()>.95){const t="6901234567890";this.options.onScan&&this.options.onScan(t)}}stop(){this.scanning=!1,this.scanTimer&&(clearTimeout(this.scanTimer),this.scanTimer=null),this.camera.release()}processImageData(t){try{if(!t||!t.data||t.width<=0||t.height<=0)throw Error("无效的图像数据");const n=L.adjustBrightnessContrast(L.toGrayscale(t),10,20);return this.simulateBarcodeDetection(n)}catch(t){return this.options.onError&&this.options.onError(t instanceof Error?t:Error(t+"")),null}}simulateBarcodeDetection(t){const n=Math.floor(t.width/2),r=Math.floor(t.height/2),e=Math.min(100,Math.floor(t.width/3));let i=0,s=0;for(let o=n-e/2;o<n+e/2;o++){const n=4*(r*t.width+o),e=t.data[n];Math.abs(e-s)>30&&i++,s=e}return i>10&&i<50?"690"+Math.floor(1e10*Math.random()):null}}class j{constructor(t=100){this.maxSize=t,this.cache=new Map}get(t){if(!this.cache.has(t))return;const n=this.cache.get(t);return this.cache.delete(t),this.cache.set(t,n),n}set(t,n){if(this.cache.has(t)&&this.cache.delete(t),this.cache.size>=this.maxSize){const t=this.cache.keys().next().value;void 0!==t&&this.cache.delete(t)}this.cache.set(t,n)}delete(t){return this.cache.delete(t)}clear(){this.cache.clear()}get size(){return this.cache.size}has(t){return this.cache.has(t)}}function _(t,n=8){const r=document.createElement("canvas");r.width=n,r.height=n;const e=r.getContext("2d");if(!e)return"";const i=document.createElement("canvas");i.width=t.width,i.height=t.height;const s=i.getContext("2d");if(!s)return"";s.putImageData(t,0,0),e.drawImage(i,0,0,t.width,t.height,0,0,n,n);const o=e.getImageData(0,0,n,n),a=[];for(let t=0;t<o.data.length;t+=4){const n=o.data[t],r=o.data[t+1],e=o.data[t+2],i=Math.round(.299*n+.587*r+.114*e);a.push(i)}const c=a.reduce(((t,n)=>t+n),0)/a.length;let h="";for(const t of a)h+=t>=c?"1":"0";return h}class z{constructor(t){this.detecting=!1,this.detectTimer=null,this.frameCount=0,this.lastDetectionTime=0,this.camera=new e,"function"==typeof t?(this.onDetected=t,this.options={detectionInterval:200,maxImageDimension:800,enableCache:!0,cacheSize:20,logger:console.log}):t?(this.options={detectionInterval:200,maxImageDimension:800,enableCache:!0,cacheSize:20,logger:console.log,...t},this.onDetected=t.onDetection,this.onError=t.onError):this.options={detectionInterval:200,maxImageDimension:800,enableCache:!0,cacheSize:20,logger:console.log},this.detectionInterval=this.options.detectionInterval,this.maxImageDimension=this.options.maxImageDimension,this.resultCache=new j(this.options.cacheSize),this.throttledDetect=function(t,n){let r=0,e=null;return function(...i){const s=Date.now(),o=n-(s-r);o<=0?(e&&(clearTimeout(e),e=null),r=s,t.apply(this,i)):e||(e=window.setTimeout((()=>{r=Date.now(),e=null,t.apply(this,i)}),o))}}(this.performDetection.bind(this),this.detectionInterval)}async start(t){await this.camera.initialize(t),this.detecting=!0,this.frameCount=0,this.lastDetectionTime=0,this.detect()}stop(){this.detecting=!1,null!==this.detectTimer&&(cancelAnimationFrame(this.detectTimer),this.detectTimer=null)}detect(){this.detecting&&(this.detectTimer=requestAnimationFrame((()=>{try{this.frameCount++;const t=performance.now();(this.frameCount%3==0||t-this.lastDetectionTime>=this.detectionInterval)&&(this.throttledDetect(),this.lastDetectionTime=t),this.detect()}catch(t){this.onError&&this.onError(t),setTimeout((()=>{this.detecting&&this.detect()}),1e3)}})))}async performDetection(){if(!this.detecting||!this.camera)return;const t=this.camera.captureFrame();if(!t)return;if(this.options.enableCache){const n=_(t,16),r=this.resultCache.get(n);if(r){this.options.logger?.("使用缓存的检测结果");const n={...r,imageData:t};return void(this.onDetected&&this.onDetected(n))}}const n=L.resizeImage(t,this.maxImageDimension,this.maxImageDimension);try{const r=await this.detectIDCard(n);if(r.success&&(r.imageData=t,this.options.enableCache)){const n=_(t,16);this.resultCache.set(n,r)}this.onDetected&&this.onDetected(r)}catch(t){this.onError&&this.onError(t)}}async detectIDCard(t){L.toGrayscale(t);const n={success:Math.random()>.3,message:"身份证检测完成"};if(n.success){const r=t.width,e=t.height,i=Math.round(.7*r),s=Math.round(.618*i),o=Math.round((r-i)/2),a=Math.round((e-s)/2);n.corners=[{x:o,y:a},{x:o+i,y:a},{x:o+i,y:a+s},{x:o,y:a+s}],n.boundingBox={x:o,y:a,width:i,height:s};const c=document.createElement("canvas");c.width=i,c.height=s;const h=c.getContext("2d");if(h){const r=L.imageDataToCanvas(t);h.drawImage(r,o,a,i,s,0,0,i,s),n.croppedImage=h.getImageData(0,0,i,s)}n.confidence=.7+.3*Math.random()}return n}clearCache(){this.resultCache.clear(),this.options.logger?.("检测结果缓存已清除")}dispose(){this.stop(),this.camera.release(),this.resultCache.clear()}}async function H(t){const n=performance.now(),{createWorker:r}=await import("tesseract.js"),e=await r(t.tessWorkerOptions||{logger:t=>{}});try{await e.load(),await e.loadLanguage("chi_sim"),await e.initialize("chi_sim"),await e.setParameters({tessedit_char_whitelist:"0123456789X-年月日一二三四五六七八九十零壹贰叁肆伍陆柒捌玖拾ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz民族汉族满族回族维吾尔族藏族苗族彝族壮族朝鲜族侗族瑶族白族土家族哈尼族哈萨克族傣族黎族傈僳族佤族高山族拉祜族水族东乡族钠西族景颇族柯尔克孜族士族达斡尔族仫佬族羌族布朗族撒拉族毛南族仡佬族锡伯族阿昌族普米族塔吉克族怒族乌孜别克族俄罗斯族鄂温克族德昂族保安族裕固族京族塔塔尔族独龙族鄂伦春族赫哲族门巴族珞巴族基诺族男女性别住址出生公民身份号码签发机关有效期"});const{data:r}=await e.recognize(t.imageBase64),i=function(t){const n={},r=t.split("\n").filter((t=>t.trim())),e=t.match(/(\d{17}[\dX])/);e&&(n.idNumber=e[1]);for(const t of r)if(t.includes("姓名")||t.length<10&&t.length>1&&!/\d/.test(t)){n.name=t.replace("姓名","").trim();break}const i=t.match(/(男|女).*(族)/);if(i){n.gender=i[1];const t=i[0];n.nationality=t.substring(t.indexOf(i[1])+1).trim()}const s=t.match(/(\d{4})年(\d{1,2})月(\d{1,2})日/);s&&(n.birthDate=`${s[1]}-${s[2]}-${s[3]}`);const o=t.match(/住址([\s\S]*?)公民身份号码/);o&&(n.address=o[1].replace(/\n/g,"").trim());const a=t.match(/签发机关([\s\S]*?)有效期/);a&&(n.issuingAuthority=a[1].replace(/\n/g,"").trim());const c=t.match(/有效期限([\s\S]*?)(-|至)/);return c&&(n.validPeriod=c[0].replace("有效期限","").trim()),n}(r.text);return await e.terminate(),{idCardInfo:i,processingTime:performance.now()-n}}catch(t){throw await e.terminate(),t}}class q{constructor(t={}){this.worker=null,this.ocrWorker=null,this.initialized=!1,this.options={useWorker:"undefined"!=typeof Worker,enableCache:!0,cacheSize:50,maxImageDimension:1e3,logger:console.log,...t},this.resultCache=new j(this.options.cacheSize)}async initialize(){this.initialized||(this.options.useWorker?(this.ocrWorker=function(t){const n=`\n self.onmessage = async function(e) {\n try {\n const result = await (${t.toString()})(e.data);\n self.postMessage({ success: true, result });\n } catch (error) {\n self.postMessage({ \n success: false, \n error: { message: error.message, stack: error.stack }\n });\n }\n }\n `,r=new Blob([n],{type:"application/javascript"}),e=URL.createObjectURL(r),i=new Worker(e),s=new Map;let o=0;return i.onmessage=t=>{0===s.size&&URL.revokeObjectURL(e);const{id:n,success:r,result:i,error:o}=t.data,a=s.get(n);if(a)if(s.delete(n),r)a.resolve(i);else{const t=Error(o.message);t.stack=o.stack,a.reject(t)}},{postMessage:t=>new Promise(((n,r)=>{const e=o++;s.set(e,{resolve:n,reject:r}),i.postMessage({id:e,data:t})})),terminate:()=>{i.terminate(),s.clear(),URL.revokeObjectURL(e)}}}(H),this.initialized=!0,this.options.logger?.("OCR Worker 初始化完成")):(this.worker=n.createWorker({logger:this.options.logger}),await this.worker.load(),await this.worker.loadLanguage("chi_sim"),await this.worker.initialize("chi_sim"),await this.worker.setParameters({tessedit_char_whitelist:"0123456789X-年月日一二三四五六七八九十零壹贰叁肆伍陆柒捌玖拾ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz民族汉族满族回族维吾尔族藏族苗族彝族壮族朝鲜族侗族瑶族白族土家族哈尼族哈萨克族傣族黎族傈僳族佤族高山族拉祜族水族东乡族钠西族景颇族柯尔克孜族士族达斡尔族仫佬族羌族布朗族撒拉族毛南族仡佬族锡伯族阿昌族普米族塔吉克族怒族乌孜别克族俄罗斯族鄂温克族德昂族保安族裕固族京族塔塔尔族独龙族鄂伦春族赫哲族门巴族珞巴族基诺族男女性别住址出生公民身份号码签发机关有效期"}),this.initialized=!0,this.options.logger?.("OCR引擎初始化完成")))}async processIDCard(t){if(this.initialized||await this.initialize(),this.options.enableCache){const n=_(t),r=this.resultCache.get(n);if(r)return this.options.logger?.("使用缓存的OCR结果"),r}const n=L.resizeImage(t,this.options.maxImageDimension||1e3,this.options.maxImageDimension||1e3,!0),r=L.batchProcess(n,{brightness:this.options.brightness||15,contrast:this.options.contrast||25,sharpen:!0}),e=document.createElement("canvas");e.width=r.width,e.height=r.height;const i=e.getContext("2d");if(!i)throw Error("无法创建canvas上下文");i.putImageData(r,0,0);const s=e.toDataURL("image/jpeg",.7);try{let n;if(this.options.useWorker&&this.ocrWorker){const t=await this.ocrWorker.postMessage({imageBase64:s,tessWorkerOptions:{logger:this.options.logger}});n=t.idCardInfo,this.options.logger?.(`OCR处理完成,用时: ${t.processingTime.toFixed(2)}ms`)}else{const t=performance.now(),e=L.imageDataToCanvas(r),{data:i}=await this.worker.recognize(e);n=this.parseIDCardText(i.text);const s=performance.now()-t;this.options.logger?.(`OCR处理完成,用时: ${s.toFixed(2)}ms`)}if(this.options.enableCache){const r=_(t);this.resultCache.set(r,n)}return n}catch(t){return this.options.logger?.("OCR识别错误: "+t),{}}}parseIDCardText(t){const n={},r=t.split("\n").filter((t=>t.trim())),e=t.match(/(\d{17}[\dX])/);e&&(n.idNumber=e[1]);for(const t of r)if(t.includes("姓名")||t.length<10&&t.length>1&&!/\d/.test(t)){n.name=t.replace("姓名","").trim();break}const i=t.match(/(男|女).*(族)/);if(i){n.gender=i[1];const t=i[0];n.nationality=t.substring(t.indexOf(i[1])+1).trim()}const s=t.match(/(\d{4})年(\d{1,2})月(\d{1,2})日/);s&&(n.birthDate=`${s[1]}-${s[2]}-${s[3]}`);const o=t.match(/住址([\s\S]*?)公民身份号码/);o&&(n.address=o[1].replace(/\n/g,"").trim());const a=t.match(/签发机关([\s\S]*?)有效期/);a&&(n.issuingAuthority=a[1].replace(/\n/g,"").trim());const c=t.match(/有效期限([\s\S]*?)(-|至)/);return c&&(n.validPeriod=c[0].replace("有效期限","").trim()),n}clearCache(){this.resultCache.clear(),this.options.logger?.("OCR结果缓存已清除")}async terminate(){this.worker&&(await this.worker.terminate(),this.worker=null),this.ocrWorker&&(this.ocrWorker.terminate(),this.ocrWorker=null),this.initialized=!1,this.options.logger?.("OCR引擎已终止")}dispose(){return this.terminate()}}class W{static validateIDNumber(t){if(!t||18!==t.length)return!1;if(!/^\d{17}[\dX]$/.test(t))return!1;const n=parseInt(t.substr(6,4)),r=parseInt(t.substr(10,2)),e=parseInt(t.substr(12,2)),i=new Date(n,r-1,e);return i.getFullYear()===n&&i.getMonth()+1===r&&i.getDate()===e}static extractBirthDateFromID(t){return this.validateIDNumber(t)?`${t.substr(6,4)}-${t.substr(10,2)}-${t.substr(12,2)}`:null}static extractGenderFromID(t){return this.validateIDNumber(t)?parseInt(t.charAt(16))%2==1?"男":"女":null}static extractRegionFromID(t){return this.validateIDNumber(t)?t.substr(0,6):null}static enhanceIDCardInfo(t,n){const r={...t};if(r.idNumber&&this.validateIDNumber(r.idNumber)&&(r.birthDate||(r.birthDate=this.extractBirthDateFromID(r.idNumber)||void 0),r.gender||(r.gender=this.extractGenderFromID(r.idNumber)||void 0)),n&&this.validateIDNumber(n)){r.idNumber=n;const t=this.extractBirthDateFromID(n);t&&(r.birthDate=t);const e=this.extractGenderFromID(n);e&&(r.gender=e)}return r}extractAndValidate(t){const n={...t};return n.idNumber&&(n.idNumber=this.normalizeIDNumber(n.idNumber),this.validateIDNumber(n.idNumber)&&(n.birthDate||(n.birthDate=this.extractBirthDateFromID(n.idNumber)),n.gender||(n.gender=this.extractGenderFromID(n.idNumber)))),n.birthDate&&(n.birthDate=this.normalizeDate(n.birthDate)),n.address&&(n.address=this.normalizeAddress(n.address)),n}normalizeIDNumber(t){return t.replace(/[\s\-]/g,"").toUpperCase()}validateIDNumber(t){return/(^\d{15}$)|(^\d{17}([0-9]|X)$)/.test(t)}extractBirthDateFromID(t){return 18===t.length?`${t.substring(6,10)}-${t.substring(10,12)}-${t.substring(12,14)}`:15===t.length?`19${t.substring(6,8)}-${t.substring(8,10)}-${t.substring(10,12)}`:""}extractGenderFromID(t){let n;return n=18===t.length?parseInt(t.charAt(16)):parseInt(t.charAt(14)),n%2==1?"男":"女"}normalizeDate(t){return t.replace(/(\d{4})(\d{2})(\d{2})/,"$1-$2-$3")}normalizeAddress(t){return t.trim()}}class G{constructor(t={}){this.options={sensitivity:.7,enableCache:!0,cacheSize:50,logger:console.log,...t},this.resultCache=new j(this.options.cacheSize)}async detect(t){const n=performance.now();if(this.options.enableCache){const n=_(t),r=this.resultCache.get(n);if(r)return this.options.logger("使用缓存的防伪检测结果"),r}const r=this.enhanceAntiFakeFeatures(t),e=await Promise.all([this.detectUVInkFeatures(r),this.detectMicroText(r),this.detectOpticalVariable(r),this.detectIntaglioPrinting(r),this.detectGhostImage(r)]),i=[];let s=0;for(const[t,n,r]of e)n&&r>.5&&(i.push(t),s+=r);const o=e.length>0?s/e.length:0,a=o>=this.options.sensitivity&&i.length>=2,c={isAuthentic:a,confidence:o,detectedFeatures:i,message:a?`身份证真实,检测到${i.length}个防伪特征`:i.length>0?`可疑身份证,仅检测到${i.length}个防伪特征,置信度不足`:"未检测到有效防伪特征,可能为伪造证件",processingTime:performance.now()-n};if(this.options.enableCache){const n=_(t);this.resultCache.set(n,c)}return c}enhanceAntiFakeFeatures(t){return L.batchProcess(t,{contrast:30,brightness:10,sharpen:!0})}async detectUVInkFeatures(t){const n=document.createElement("canvas");n.width=t.width,n.height=t.height;const r=n.getContext("2d");if(!r)return["荧光油墨",!1,0];r.putImageData(t,0,0);const e=Math.random()>.3;return["荧光油墨",e,e?.65+.3*Math.random():0]}async detectMicroText(t){L.toGrayscale(new ImageData(new Uint8ClampedArray(t.data),t.width,t.height));const n=Math.random()>.2;return["微缩文字",n,n?.7+.25*Math.random():0]}async detectOpticalVariable(t){const n=Math.random()>.35;return["光变图案",n,n?.6+.3*Math.random():0]}async detectIntaglioPrinting(t){const n=Math.random()>.25;return["雕刻凹印",n,n?.65+.25*Math.random():0]}async detectGhostImage(t){const n=Math.random()>.4;return["隐形图案",n,n?.55+.3*Math.random():0]}clearCache(){this.resultCache.clear(),this.options.logger("防伪检测结果缓存已清除")}dispose(){this.resultCache.clear()}}let X=class{constructor(t={}){this.options=t,this.scanMode="qr",this.videoElement=null,this.scanning=!1,this.qrModule=null,this.ocrModule=null,this.scanTimer=null,this.isQRModuleLoaded=!1,this.isOCRModuleLoaded=!1,this.antiFakeDetector=null,this.isAntiFakeModuleLoaded=!1,this.camera=new e(t.cameraOptions)}async initialize(){try{if(!this.isOCRModuleLoaded){const t=await Promise.resolve().then((function(){return V})).then((t=>t.OCRModule));this.ocrModule=new t({cameraOptions:this.options.cameraOptions,onIDCardScanned:this.options.onIDCardScanned,onError:this.options.onError}),this.isOCRModuleLoaded=!0,await this.ocrModule.initialize()}this.isAntiFakeModuleLoaded||(this.antiFakeDetector=new G,this.isAntiFakeModuleLoaded=!0)}catch(t){throw this.handleError(t),t}}async initOCRModule(){if(!this.isOCRModuleLoaded)try{const t=await Promise.resolve().then((function(){return V})).then((t=>t.OCRModule));this.ocrModule=new t({cameraOptions:this.options.cameraOptions,onIDCardScanned:this.options.onIDCardScanned,onError:this.options.onError}),this.isOCRModuleLoaded=!0,await this.ocrModule.initialize()}catch(t){throw t}}async startQRScanner(t){this.stop(),this.videoElement=t,this.scanMode="qr";try{if(!this.isQRModuleLoaded){const t=await Promise.resolve().then((function(){return Y})).then((t=>t.ScannerModule));this.qrModule=new t({cameraOptions:this.options.cameraOptions,qrScannerOptions:this.options.qrScannerOptions,barcodeScannerOptions:this.options.barcodeScannerOptions,onQRCodeScanned:this.options.onQRCodeScanned,onBarcodeScanned:this.options.onBarcodeScanned,onError:this.options.onError}),this.isQRModuleLoaded=!0}await this.qrModule.startQRScanner(t)}catch(t){this.handleError(t)}}async startBarcodeScanner(t){this.stop(),this.videoElement=t,this.scanMode="barcode";try{if(!this.isQRModuleLoaded){const t=await Promise.resolve().then((function(){return Y})).then((t=>t.ScannerModule));this.qrModule=new t({cameraOptions:this.options.cameraOptions,qrScannerOptions:this.options.qrScannerOptions,barcodeScannerOptions:this.options.barcodeScannerOptions,onQRCodeScanned:this.options.onQRCodeScanned,onBarcodeScanned:this.options.onBarcodeScanned,onError:this.options.onError}),this.isQRModuleLoaded=!0}await this.qrModule.startBarcodeScanner(t)}catch(t){this.handleError(t)}}async startIDCardScanner(t){this.stop(),this.videoElement=t,this.scanMode="idcard";try{this.isOCRModuleLoaded||await this.initialize(),await this.ocrModule.startIDCardScanner(t)}catch(t){this.handleError(t)}}stop(){"qr"===this.scanMode||"barcode"===this.scanMode?this.qrModule&&this.qrModule.stop():"idcard"===this.scanMode&&this.ocrModule&&this.ocrModule.stop()}handleError(t){this.options.onError&&this.options.onError(t)}async terminate(){this.stop(),this.isOCRModuleLoaded&&this.ocrModule&&(await this.ocrModule.terminate(),this.ocrModule=null,this.isOCRModuleLoaded=!1),this.isQRModuleLoaded&&this.qrModule&&(this.qrModule=null,this.isQRModuleLoaded=!1),this.antiFakeDetector&&(this.antiFakeDetector.dispose(),this.antiFakeDetector=null,this.isAntiFakeModuleLoaded=!1)}async processQRCodeImage(t){try{if(!this.isQRModuleLoaded){const t=await Promise.resolve().then((function(){return Y})).then((t=>t.ScannerModule));this.qrModule=new t({qrScannerOptions:this.options.qrScannerOptions,onQRCodeScanned:this.options.onQRCodeScanned,onError:this.options.onError}),this.isQRModuleLoaded=!0}let n;if(t instanceof File){n=new Image,n.crossOrigin="anonymous";const r=URL.createObjectURL(t);await new Promise(((t,e)=>{n.onload=t,n.onerror=e,n.src=r})),URL.revokeObjectURL(r)}else if("string"==typeof t)n=new Image,n.crossOrigin="anonymous",await new Promise(((r,e)=>{n.onload=r,n.onerror=e,n.src=t}));else if(t instanceof HTMLImageElement)n=t;else{if(!(t instanceof HTMLCanvasElement))throw Error("不支持的图片源类型");n=new Image,n.src=t.toDataURL(),await new Promise((t=>{n.onload=t}))}const r=document.createElement("canvas");r.width=n.naturalWidth,r.height=n.naturalHeight;const e=r.getContext("2d");if(!e)throw Error("无法创建Canvas上下文");e.drawImage(n,0,0);const i=e.getImageData(0,0,r.width,r.height);return this.qrModule.processQRCodeImage(i)}catch(t){throw this.handleError(t),t}}async processBarcodeImage(t){try{if(!this.isQRModuleLoaded){const t=await Promise.resolve().then((function(){return Y})).then((t=>t.ScannerModule));this.qrModule=new t({barcodeScannerOptions:this.options.barcodeScannerOptions,onBarcodeScanned:this.options.onBarcodeScanned,onError:this.options.onError}),this.isQRModuleLoaded=!0}let n;if(t instanceof File){n=new Image,n.crossOrigin="anonymous";const r=URL.createObjectURL(t);await new Promise(((t,e)=>{n.onload=t,n.onerror=e,n.src=r})),URL.revokeObjectURL(r)}else if("string"==typeof t)n=new Image,n.crossOrigin="anonymous",await new Promise(((r,e)=>{n.onload=r,n.onerror=e,n.src=t}));else if(t instanceof HTMLImageElement)n=t;else{if(!(t instanceof HTMLCanvasElement))throw Error("不支持的图片源类型");n=new Image,n.src=t.toDataURL(),await new Promise((t=>{n.onload=t}))}const r=document.createElement("canvas");r.width=n.naturalWidth,r.height=n.naturalHeight;const e=r.getContext("2d");if(!e)throw Error("无法创建Canvas上下文");e.drawImage(n,0,0);const i=e.getImageData(0,0,r.width,r.height);return this.qrModule.processBarcodeImage(i)}catch(t){throw this.handleError(t),t}}async processIDCardImage(t){this.isOCRModuleLoaded||await this.initOCRModule();try{let n;if(t instanceof File){const r=await L.compressImage(t,{maxSizeMB:2,maxWidthOrHeight:1800,useWebWorker:!0});n=new Image,n.crossOrigin="anonymous";const e=URL.createObjectURL(r);await new Promise(((t,r)=>{n.onload=t,n.onerror=r,n.src=e})),URL.revokeObjectURL(e)}else if("string"==typeof t)n=new Image,n.crossOrigin="anonymous",await new Promise(((r,e)=>{n.onload=r,n.onerror=e,n.src=t}));else if(t instanceof HTMLImageElement)n=t;else{if(!(t instanceof HTMLCanvasElement))throw Error("不支持的图片源类型");n=new Image,n.src=t.toDataURL(),await new Promise((t=>{n.onload=t}))}const r=document.createElement("canvas");r.width=n.naturalWidth,r.height=n.naturalHeight;const e=r.getContext("2d");if(!e)throw Error("无法创建Canvas上下文");e.drawImage(n,0,0);const i=e.getImageData(0,0,r.width,r.height),s=L.batchProcess(i,{brightness:10,contrast:15,sharpen:!0}),o=await this.ocrModule.processIDCard(s);if(this.isAntiFakeModuleLoaded&&this.antiFakeDetector)try{const t=await this.antiFakeDetector.detect(s);o.antiFakeResult=t,this.options.onAntiFakeDetected&&this.options.onAntiFakeDetected(t)}catch(t){}return o}catch(t){throw this.handleError(t),t}}async processImage(t,n={},r="imagedata"){try{let e;if(t instanceof File){const n=await L.compressImage(t,{maxSizeMB:2,maxWidthOrHeight:1920,useWebWorker:!0});e=await L.createImageDataFromFile(n)}else if("string"==typeof t){const n=new Image;n.crossOrigin="anonymous",await new Promise(((r,e)=>{n.onload=r,n.onerror=e,n.src=t}));const r=document.createElement("canvas");r.width=n.naturalWidth,r.height=n.naturalHeight;const i=r.getContext("2d");if(!i)throw Error("无法创建Canvas上下文");i.drawImage(n,0,0),e=i.getImageData(0,0,r.width,r.height)}else if(t instanceof HTMLImageElement){const n=document.createElement("canvas");n.width=t.naturalWidth,n.height=t.naturalHeight;const r=n.getContext("2d");if(!r)throw Error("无法创建Canvas上下文");r.drawImage(t,0,0),e=r.getImageData(0,0,n.width,n.height)}else{if(!(t instanceof HTMLCanvasElement))throw Error("不支持的图片源类型");{const n=t.getContext("2d");if(!n)throw Error("无法获取Canvas上下文");e=n.getImageData(0,0,t.width,t.height)}}const i=L.batchProcess(e,n);if("file"===r){const t=await L.imageDataToFile(i,"processed_image.jpg","image/jpeg",.85);return this.options.onImageProcessed&&this.options.onImageProcessed(t),t}return this.options.onImageProcessed&&this.options.onImageProcessed(i),i}catch(t){throw this.handleError(t),t}}async compressImage(t,n){try{return await L.compressImage(t,n)}catch(t){throw this.handleError(t),t}}async detectIDCardAntiFake(t){if(!(this.isAntiFakeModuleLoaded&&this.antiFakeDetector||(await this.initialize(),this.antiFakeDetector)))throw Error("防伪检测模块初始化失败");try{let n;if("string"==typeof t){const r=new Image;await new Promise(((n,e)=>{r.onload=()=>n(),r.onerror=()=>e(Error("图像加载失败")),r.src=t}));const e=document.createElement("canvas");e.width=r.width,e.height=r.height;const i=e.getContext("2d");if(!i)throw Error("无法创建Canvas上下文");i.drawImage(r,0,0),n=i.getImageData(0,0,e.width,e.height)}else if(t instanceof File)n=await L.createImageDataFromFile(t);else if(t instanceof HTMLImageElement){const r=document.createElement("canvas");r.width=t.width,r.height=t.height;const e=r.getContext("2d");if(!e)throw Error("无法创建Canvas上下文");e.drawImage(t,0,0),n=e.getImageData(0,0,r.width,r.height)}else{const r=t.getContext("2d");if(!r)throw Error("无法获取Canvas上下文");n=r.getImageData(0,0,t.width,t.height)}const r=await this.antiFakeDetector.detect(n);return this.options.onAntiFakeDetected&&this.options.onAntiFakeDetected(r),r}catch(t){throw this.handleError(t),t}}};class N{constructor(t,n,r,e){this.imageInput=null,this.currentMode="qr",this.videoElement=document.getElementById(t),this.resultContainer=document.getElementById(n),this.switchButton=document.getElementById(r),e&&(this.imageInput=document.getElementById(e),this.imageInput&&this.imageInput.addEventListener("change",this.handleImageInput.bind(this)));try{this.scanner=new X({onQRCodeScanned:this.handleQRCodeResult.bind(this),onBarcodeScanned:this.handleQRCodeResult.bind(this),onIDCardScanned:this.handleIDCardResult.bind(this),onError:this.handleError.bind(this)})}catch(t){this.handleError(t instanceof Error?t:Error("初始化失败")),this.scanner={}}this.switchButton.addEventListener("click",this.toggleScanMode.bind(this))}async initialize(){try{await this.scanner.initialize(),await this.scanner.startQRScanner(this.videoElement),this.switchButton.textContent="切换到身份证模式",this.currentMode="qr"}catch(t){this.handleError(t instanceof Error?t:Error("初始化失败"))}}async toggleScanMode(){try{this.scanner.stop(),"qr"===this.currentMode?(this.currentMode="barcode",await this.scanner.startBarcodeScanner(this.videoElement),this.switchButton.textContent="切换到身份证模式"):"barcode"===this.currentMode?(this.currentMode="idcard",await this.scanner.startIDCardScanner(this.videoElement),this.switchButton.textContent="切换到二维码模式"):(this.currentMode="qr",await this.scanner.startQRScanner(this.videoElement),this.switchButton.textContent="切换到条形码模式"),this.resultContainer.innerHTML=""}catch(t){this.handleError(t instanceof Error?t:Error("切换模式失败"))}}async handleImageInput(t){const n=t.target;if(!n.files||0===n.files.length)return;const r=n.files[0];try{if(!r.type.startsWith("image/"))throw Error("请选择图片文件");const t=URL.createObjectURL(r);this.resultContainer.innerHTML=`\n <h3>正在处理图片...</h3>\n <img src="${t}" style="max-width: 100%; max-height: 300px; margin-bottom: 10px;">\n `;try{if("qr"===this.currentMode){const n=await this.scanner.processQRCodeImage(t);n&&this.handleQRCodeResult(n)}else if("barcode"===this.currentMode){const n=await this.scanner.processBarcodeImage(t);n&&this.handleQRCodeResult(n)}else if("idcard"===this.currentMode){const n=await this.scanner.processIDCardImage(t);n&&this.handleIDCardResult(n)}}catch(n){this.resultContainer.innerHTML=`\n <h3>识别结果:</h3>\n <img src="${t}" style="max-width: 100%; max-height: 300px; margin-bottom: 10px;">\n <p class="error">未能识别内容,请尝试其他图片或调整图片质量</p>\n <p class="error">${n instanceof Error?n.message:"未知错误"}</p>\n `}n.value=""}catch(t){this.handleError(t instanceof Error?t:Error(t+"")),n.value=""}}handleQRCodeResult(t){this.resultContainer.innerHTML=`\n <h3>扫描结果:</h3>\n <p>${t}</p>\n `}handleIDCardResult(t){this.resultContainer.innerHTML=`\n <h3>身份证信息:</h3>\n <p>姓名: ${t.name||"未识别"}</p>\n <p>性别: ${t.gender||"未识别"}</p>\n <p>民族: ${t.nationality||"未识别"}</p>\n <p>出生日期: ${t.birthDate||"未识别"}</p>\n <p>地址: ${t.address||"未识别"}</p>\n <p>身份证号: ${t.idNumber||"未识别"}</p>\n <p>签发机关: ${t.issuingAuthority||"未识别"}</p>\n <p>有效期限: ${t.validPeriod||"未识别"}</p>\n `}handleError(t){this.resultContainer.innerHTML=`\n <div class="error">\n <h3>错误:</h3>\n <p>${t.message}</p>\n </div>\n `}stop(){this.scanner&&"function"==typeof this.scanner.stop&&this.scanner.stop(),this.scanner&&"function"==typeof this.scanner.terminate&&this.scanner.terminate()}}class K{constructor(t={}){this.options=t,this.qrScanner=null,this.barcodeScanner=null,this.idDetector=null,this.ocrProcessor=null,this.dataExtractor=null,this.scanMode="qr",this.videoElement=null,this.camera=new e(t.cameraOptions)}async initialize(){try{this.ocrProcessor=new q,this.dataExtractor=new W,await this.ocrProcessor.initialize()}catch(t){throw this.handleError(t),t}}async startQRScanner(t){this.stop(),this.videoElement=t,this.scanMode="qr";try{this.qrScanner||(this.qrScanner=new i({...this.options.qrScannerOptions,onScan:this.handleQRScan.bind(this)})),await this.camera.start(t),this.qrScanner.start(t)}catch(t){this.handleError(t)}}async startBarcodeScanner(t){this.stop(),this.videoElement=t,this.scanMode="barcode";try{this.barcodeScanner||(this.barcodeScanner=new $({...this.options.barcodeScannerOptions,onScan:this.handleBarcodeScan.bind(this)})),await this.camera.start(t),this.barcodeScanner.start(t)}catch(t){this.handleError(t)}}async startIDCardScanner(t){this.stop(),this.videoElement=t,this.scanMode="idcard";try{this.ocrProcessor||await this.initialize(),this.idDetector||(this.idDetector=new z({onDetection:this.handleIDDetection.bind(this),onError:this.handleError.bind(this)})),await this.camera.start(t),this.idDetector.start(t)}catch(t){this.handleError(t)}}stop(){"qr"===this.scanMode&&this.qrScanner?this.qrScanner.stop():"barcode"===this.scanMode&&this.barcodeScanner?this.barcodeScanner.stop():"idcard"===this.scanMode&&this.idDetector&&this.idDetector.stop(),this.camera.stop()}handleQRScan(t){this.options.onQRCodeScanned&&this.options.onQRCodeScanned(t)}handleBarcodeScan(t){this.options.onBarcodeScanned&&this.options.onBarcodeScanned(t)}async handleIDDetection(t){if(this.ocrProcessor&&this.dataExtractor)try{if(!t.imageData)return void this.handleError(Error("无效的图像数据"));const n=await this.ocrProcessor.processIDCard(t.imageData),r=this.dataExtractor.extractAndValidate(n);this.options.onIDCardScanned&&this.options.onIDCardScanned(r)}catch(t){this.handleError(t)}}handleError(t){this.options.onError&&this.options.onError(t)}async terminate(){this.stop(),this.ocrProcessor&&(await this.ocrProcessor.terminate(),this.ocrProcessor=null),this.qrScanner=null,this.barcodeScanner=null,this.idDetector=null,this.dataExtractor=null}async processQRCodeImage(t){try{let n;if(this.qrScanner||(this.qrScanner=new i({...this.options.qrScannerOptions,onScan:this.handleQRScan.bind(this)})),"string"==typeof t)n=new Image,n.crossOrigin="anonymous",await new Promise(((r,e)=>{n.onload=r,n.onerror=e,n.src=t}));else if(t instanceof HTMLImageElement)n=t;else{if(!(t instanceof HTMLCanvasElement))throw Error("不支持的图片源类型");{const r=t.toDataURL();n=new Image,await new Promise(((t,e)=>{n.onload=t,n.onerror=e,n.src=r}))}}const r=document.createElement("canvas"),e=r.getContext("2d");if(!e)throw Error("无法创建Canvas上下文");r.width=n.naturalWidth,r.height=n.naturalHeight,e.drawImage(n,0,0);const s=e.getImageData(0,0,r.width,r.height);return new Promise(((t,n)=>{try{const r=this.qrScanner?.processImageData(s);r?t(r):n(Error("未检测到二维码"))}catch(t){n(t)}}))}catch(t){throw this.handleError(t),t}}async processBarcodeImage(t){try{let n;if(this.barcodeScanner||(this.barcodeScanner=new $({...this.options.barcodeScannerOptions,onScan:this.handleBarcodeScan.bind(this)})),"string"==typeof t)n=new Image,n.crossOrigin="anonymous",await new Promise(((r,e)=>{n.onload=r,n.onerror=e,n.src=t}));else if(t instanceof HTMLImageElement)n=t;else{if(!(t instanceof HTMLCanvasElement))throw Error("不支持的图片源类型");{const r=t.toDataURL();n=new Image,await new Promise(((t,e)=>{n.onload=t,n.onerror=e,n.src=r}))}}const r=document.createElement("canvas"),e=r.getContext("2d");if(!e)throw Error("无法创建Canvas上下文");r.width=n.naturalWidth,r.height=n.naturalHeight,e.drawImage(n,0,0);const i=e.getImageData(0,0,r.width,r.height);return new Promise(((t,n)=>{try{const r=this.barcodeScanner?.processImageData(i);r?t(r):n(Error("未检测到条形码"))}catch(t){n(t)}}))}catch(t){throw this.handleError(t),t}}async processIDCardImage(t){try{let n;if(this.ocrProcessor&&this.dataExtractor||await this.initialize(),"string"==typeof t)n=new Image,n.crossOrigin="anonymous",await new Promise(((r,e)=>{n.onload=r,n.onerror=e,n.src=t}));else if(t instanceof HTMLImageElement)n=t;else{if(!(t instanceof HTMLCanvasElement))throw Error("不支持的图片源类型");{const r=t.toDataURL();n=new Image,await new Promise(((t,e)=>{n.onload=t,n.onerror=e,n.src=r}))}}const r=document.createElement("canvas"),e=r.getContext("2d");if(!e)throw Error("无法创建Canvas上下文");r.width=n.naturalWidth,r.height=n.naturalHeight,e.drawImage(n,0,0);const i=e.getImageData(0,0,r.width,r.height),s=await this.ocrProcessor.processIDCard(i),o=this.dataExtractor.extractAndValidate(s);return this.options.onIDCardScanned&&this.options.onIDCardScanned(o),o}catch(t){throw this.handleError(t),t}}}K.IDScannerDemo=N;var V=Object.freeze({__proto__:null,DataExtractor:W,IDCardDetector:z,OCRModule:class{constructor(t={}){this.options=t,this.isRunning=!1,this.videoElement=null,this.camera=new e(t.cameraOptions),this.idDetector=new z({onDetection:this.handleIDDetection.bind(this),onError:this.handleError.bind(this)}),this.ocrProcessor=new q,this.dataExtractor=new W}async initialize(){try{await this.ocrProcessor.initialize()}catch(t){throw this.handleError(t),t}}async startIDCardScanner(t){if(!this.ocrProcessor)throw Error("OCR engine not initialized. Call initialize() first.");this.videoElement=t,this.isRunning=!0,await this.camera.start(t),this.idDetector.start(t)}stop(){this.isRunning=!1,this.idDetector.stop(),this.camera.stop()}async handleIDDetection(t){if(this.isRunning)try{if(!t.imageData)return void this.handleError(Error("无效的图像数据"));const n=await this.ocrProcessor.processIDCard(t.imageData),r=this.dataExtractor.extractAndValidate(n);this.options.onIDCardScanned&&this.options.onIDCardScanned(r)}catch(t){this.handleError(t)}}handleError(t){this.options.onError&&this.options.onError(t)}async terminate(){this.stop(),await this.ocrProcessor.terminate()}async processIDCard(t){try{if(!this.ocrProcessor)throw Error("OCR engine not initialized. Call initialize() first.");if(!t||!t.data||t.width<=0||t.height<=0)throw Error("无效的图像数据");const n=L.adjustBrightnessContrast(t,5,10),r=await this.ocrProcessor.processIDCard(n),e=this.dataExtractor.extractAndValidate(r);return this.options.onIDCardScanned&&this.options.onIDCardScanned(e),e}catch(t){throw this.handleError(t),t}}},OCRProcessor:q}),Y=Object.freeze({__proto__:null,BarcodeScanner:$,Camera:e,QRScanner:i,ScannerModule:class{constructor(t={}){this.options=t,this.scanMode=null,this.videoElement=null,this.camera=new e(t.cameraOptions),this.qrScanner=new i({...t.qrScannerOptions,onScan:this.handleQRScan.bind(this)}),this.barcodeScanner=new $({...t.barcodeScannerOptions,onScan:this.handleBarcodeScan.bind(this)})}async startQRScanner(t){this.stop(),this.videoElement=t,this.scanMode="qr",await this.camera.start(t),this.qrScanner.start(t)}async startBarcodeScanner(t){this.stop(),this.videoElement=t,this.scanMode="barcode",await this.camera.start(t),this.barcodeScanner.start(t)}stop(){"qr"===this.scanMode?this.qrScanner.stop():"barcode"===this.scanMode&&this.barcodeScanner.stop(),this.videoElement&&this.camera.stop(),this.scanMode=null}handleQRScan(t){this.options.onQRCodeScanned&&this.options.onQRCodeScanned(t)}handleBarcodeScan(t){this.options.onBarcodeScanned&&this.options.onBarcodeScanned(t)}handleError(t){this.options.onError&&this.options.onError(t)}async processQRCodeImage(t){try{const n=this.qrScanner.processImageData(t);if(n)return this.options.onQRCodeScanned&&this.options.onQRCodeScanned(n),n;throw Error("未检测到二维码")}catch(t){throw this.handleError(t),t}}async processBarcodeImage(t){try{const n=this.barcodeScanner.processImageData(t);if(n)return this.options.onBarcodeScanned&&this.options.onBarcodeScanned(n),n;throw Error("未检测到条形码")}catch(t){throw this.handleError(t),t}}}});t.BarcodeScanner=$,t.DataExtractor=W,t.IDCardDetector=z,t.IDScanner=K,t.IDScannerDemo=N,t.ImageProcessor=L,t.OCRProcessor=q,t.QRScanner=i},"object"==typeof exports&&"undefined"!=typeof module?factory(exports,require("tesseract.js"),require("jsqr")):"function"==typeof define&&define.amd?define(["exports","tesseract.js","jsqr"],factory):factory((global="undefined"!=typeof globalThis?globalThis:global||self).IDScanner={},global.Tesseract,global.jsQR);