@qr-platform/qr-code.js 0.10.0 → 0.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.js CHANGED
@@ -1 +1 @@
1
- import{SERVICE_ENDPOINT as e,GET_LICENSE_TOKEN_ROUTE as t}from"~/config/runtime-config";const o={width:300,height:300,margin:0};class r{constructor(){this.buffer=[],this.length=0}getBuffer(){return this.buffer}getLengthInBits(){return this.length}toString(){let e="";for(let t=0;t<this.getLengthInBits();t+=1)e+=this.getBit(t)?"1":"0";return e}getBit(e){return 1==(this.buffer[~~(e/8)]>>>7-e%8&1)}put(e,t){for(let o=0;o<t;o+=1)this.putBit(1==(e>>>t-o-1&1))}putBit(e){this.length==8*this.buffer.length&&this.buffer.push(0),e&&(this.buffer[~~(this.length/8)]|=128>>>this.length%8),this.length+=1}}var n,s,i;!function(e){e[e.L=1]="L",e[e.M=0]="M",e[e.Q=3]="Q",e[e.H=2]="H"}(n||(n={}));class a{constructor(){throw new Error("error")}static glog(e){if(e<1)throw new Error("log("+e+")");return a.LOG_TABLE[e]}static gexp(e){for(;e<0;)e+=255;for(;e>=256;)e-=255;return a.EXP_TABLE[e]}}a.initialize=(()=>{a.EXP_TABLE=[],a.LOG_TABLE=[];for(let e=0;e<256;e+=1)a.EXP_TABLE.push(e<8?1<<e:a.EXP_TABLE[e-4]^a.EXP_TABLE[e-5]^a.EXP_TABLE[e-6]^a.EXP_TABLE[e-8]),a.LOG_TABLE.push(0);for(let e=0;e<255;e+=1)a.LOG_TABLE[a.EXP_TABLE[e]]=e})();class d{constructor(e,t=0){let o=0;for(;o<e.length&&0==e[o];)o+=1;this.num=[];const r=e.length-o;for(let t=0;t<r;t+=1)this.num.push(e[o+t]);for(let e=0;e<t;e+=1)this.num.push(0)}getAt(e){return this.num[e]}getLength(){return this.num.length}toString(){let e="";for(let t=0;t<this.getLength();t+=1)t>0&&(e+=","),e+=this.getAt(t);return e.toString()}toLogString(){let e="";for(let t=0;t<this.getLength();t+=1)t>0&&(e+=","),e+=a.glog(this.getAt(t));return e.toString()}multiply(e){const t=[],o=this.getLength()+e.getLength()-1;for(let e=0;e<o;e+=1)t.push(0);for(let o=0;o<this.getLength();o+=1)for(let r=0;r<e.getLength();r+=1)t[o+r]^=a.gexp(a.glog(this.getAt(o))+a.glog(e.getAt(r)));return new d(t)}mod(e){if(this.getLength()-e.getLength()<0)return this;const t=a.glog(this.getAt(0))-a.glog(e.getAt(0)),o=[];for(let e=0;e<this.getLength();e+=1)o.push(this.getAt(e));for(let r=0;r<e.getLength();r+=1)o[r]^=a.gexp(a.glog(e.getAt(r))+t);return new d(o).mod(e)}}!function(e){e[e.MODE_NUMBER=1]="MODE_NUMBER",e[e.MODE_ALPHA_NUM=2]="MODE_ALPHA_NUM",e[e.MODE_8BIT_BYTE=4]="MODE_8BIT_BYTE",e[e.MODE_KANJI=8]="MODE_KANJI"}(s||(s={}));class l{constructor(e,t){this.mode=e,this.data=t}getMode(){return this.mode}getData(){return this.data}getLengthInBits(e){if(1<=e&&e<10)switch(this.mode){case s.MODE_NUMBER:return 10;case s.MODE_ALPHA_NUM:return 9;case s.MODE_8BIT_BYTE:case s.MODE_KANJI:return 8;default:throw new Error("mode:"+this.mode)}else if(e<27)switch(this.mode){case s.MODE_NUMBER:return 12;case s.MODE_ALPHA_NUM:return 11;case s.MODE_8BIT_BYTE:return 16;case s.MODE_KANJI:return 10;default:throw new Error("mode:"+this.mode)}else{if(!(e<41))throw new Error("typeNumber:"+e);switch(this.mode){case s.MODE_NUMBER:return 14;case s.MODE_ALPHA_NUM:return 13;case s.MODE_8BIT_BYTE:return 16;case s.MODE_KANJI:return 12;default:throw new Error("mode:"+this.mode)}}}}class c extends l{constructor(e,t){super(s.MODE_8BIT_BYTE,e),this.stringToBytes=t}write(e){this.stringToBytes(this.getData()).forEach((t=>e.put(t,8)))}getLength(){return this.stringToBytes(this.getData()).length}}class u extends l{constructor(e){super(s.MODE_ALPHA_NUM,e)}write(e){const t=this.getData();let o=0;for(;o+1<t.length;)e.put(45*u.getCode(t.charAt(o))+u.getCode(t.charAt(o+1)),11),o+=2;o<t.length&&e.put(u.getCode(t.charAt(o)),6)}getLength(){return this.getData().length}static getCode(e){if("0"<=e&&e<="9")return e.charCodeAt(0)-"0".charCodeAt(0);if("A"<=e&&e<="Z")return e.charCodeAt(0)-"A".charCodeAt(0)+10;switch(e){case" ":return 36;case"$":return 37;case"%":return 38;case"*":return 39;case"+":return 40;case"-":return 41;case".":return 42;case"/":return 43;case":":return 44;default:throw new Error("illegal char :"+e)}}}class p extends l{constructor(e,t){super(s.MODE_KANJI,e),this.stringToBytes=t}write(e){const t=this.stringToBytes(this.getData());let o=0;for(;o+1<t.length;){let r=(255&t[o])<<8|255&t[o+1];if(33088<=r&&r<=40956)r-=33088;else{if(!(57408<=r&&r<=60351))throw new Error("illegal char at "+(o+1)+"/"+r);r-=49472}r=192*(r>>>8&255)+(255&r),e.put(r,13),o+=2}if(o<t.length)throw new Error("illegal char at "+(o+1))}getLength(){return this.stringToBytes(this.getData()).length/2}}class h extends l{constructor(e){super(s.MODE_NUMBER,e)}write(e){const t=this.getData();let o=0;for(;o+2<t.length;)e.put(h.strToNum(t.substring(o,o+3)),10),o+=3;o<t.length&&(t.length-o==1?e.put(h.strToNum(t.substring(o,o+1)),4):t.length-o==2&&e.put(h.strToNum(t.substring(o,o+2)),7))}getLength(){return this.getData().length}static strToNum(e){let t=0;for(let o=0;o<e.length;o+=1)t=10*t+h.chatToNum(e.charAt(o));return t}static chatToNum(e){if("0"<=e&&e<="9")return e.charCodeAt(0)-"0".charCodeAt(0);throw new Error("illegal char :"+e)}}!function(e){e[e.PATTERN000=0]="PATTERN000",e[e.PATTERN001=1]="PATTERN001",e[e.PATTERN010=2]="PATTERN010",e[e.PATTERN011=3]="PATTERN011",e[e.PATTERN100=4]="PATTERN100",e[e.PATTERN101=5]="PATTERN101",e[e.PATTERN110=6]="PATTERN110",e[e.PATTERN111=7]="PATTERN111"}(i||(i={}));class m{constructor(){throw new Error("error")}static getPatternPosition(e){return m.PATTERN_POSITION_TABLE[e-1]}static getMaxLength(e,t,o){const r=e-1;let i=0,a=0;switch(o){case n.L:i=0;break;case n.M:i=1;break;case n.Q:i=2;break;case n.H:i=3;break;default:throw new Error("e:"+o)}switch(t){case s.MODE_NUMBER:a=0;break;case s.MODE_ALPHA_NUM:a=1;break;case s.MODE_8BIT_BYTE:a=2;break;case s.MODE_KANJI:a=3;break;default:throw new Error("m:"+t)}return m.MAX_LENGTH[r][i][a]}static getErrorCorrectPolynomial(e){let t=new d([1]);for(let o=0;o<e;o+=1)t=t.multiply(new d([1,a.gexp(o)]));return t}static getMaskFunc(e){switch(e){case i.PATTERN000:return(e,t)=>(e+t)%2==0;case i.PATTERN001:return(e,t)=>e%2==0;case i.PATTERN010:return(e,t)=>t%3==0;case i.PATTERN011:return(e,t)=>(e+t)%3==0;case i.PATTERN100:return(e,t)=>(~~(e/2)+~~(t/3))%2==0;case i.PATTERN101:return(e,t)=>e*t%2+e*t%3==0;case i.PATTERN110:return(e,t)=>(e*t%2+e*t%3)%2==0;case i.PATTERN111:return(e,t)=>(e*t%3+(e+t)%2)%2==0;default:throw new Error("mask:"+e)}}static getLostPoint(e){const t=e.getModuleCount();let o=0;for(let r=0;r<t;r+=1)for(let n=0;n<t;n+=1){let s=0;const i=e.isDark(r,n);for(let o=-1;o<=1;o+=1)if(!(r+o<0||t<=r+o))for(let a=-1;a<=1;a+=1)n+a<0||t<=n+a||0==o&&0==a||i==e.isDark(r+o,n+a)&&(s+=1);s>5&&(o+=3+s-5)}for(let r=0;r<t-1;r+=1)for(let n=0;n<t-1;n+=1){let t=0;e.isDark(r,n)&&(t+=1),e.isDark(r+1,n)&&(t+=1),e.isDark(r,n+1)&&(t+=1),e.isDark(r+1,n+1)&&(t+=1),0!=t&&4!=t||(o+=3)}for(let r=0;r<t;r+=1)for(let n=0;n<t-6;n+=1)e.isDark(r,n)&&!e.isDark(r,n+1)&&e.isDark(r,n+2)&&e.isDark(r,n+3)&&e.isDark(r,n+4)&&!e.isDark(r,n+5)&&e.isDark(r,n+6)&&(o+=40);for(let r=0;r<t;r+=1)for(let n=0;n<t-6;n+=1)e.isDark(n,r)&&!e.isDark(n+1,r)&&e.isDark(n+2,r)&&e.isDark(n+3,r)&&e.isDark(n+4,r)&&!e.isDark(n+5,r)&&e.isDark(n+6,r)&&(o+=40);let r=0;for(let o=0;o<t;o+=1)for(let n=0;n<t;n+=1)e.isDark(n,o)&&(r+=1);return o+=10*(Math.abs(100*r/t/t-50)/5),o}static getBCHTypeInfo(e){let t=e<<10;for(;m.getBCHDigit(t)-m.getBCHDigit(m.G15)>=0;)t^=m.G15<<m.getBCHDigit(t)-m.getBCHDigit(m.G15);return(e<<10|t)^m.G15_MASK}static getBCHTypeNumber(e){let t=e<<12;for(;m.getBCHDigit(t)-m.getBCHDigit(m.G18)>=0;)t^=m.G18<<m.getBCHDigit(t)-m.getBCHDigit(m.G18);return e<<12|t}static getBCHDigit(e){let t=0;for(;0!=e;)t+=1,e>>>=1;return t}}m.PATTERN_POSITION_TABLE=[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],m.MAX_LENGTH=[[[41,25,17,10],[34,20,14,8],[27,16,11,7],[17,10,7,4]],[[77,47,32,20],[63,38,26,16],[48,29,20,12],[34,20,14,8]],[[127,77,53,32],[101,61,42,26],[77,47,32,20],[58,35,24,15]],[[187,114,78,48],[149,90,62,38],[111,67,46,28],[82,50,34,21]],[[255,154,106,65],[202,122,84,52],[144,87,60,37],[106,64,44,27]],[[322,195,134,82],[255,154,106,65],[178,108,74,45],[139,84,58,36]],[[370,224,154,95],[293,178,122,75],[207,125,86,53],[154,93,64,39]],[[461,279,192,118],[365,221,152,93],[259,157,108,66],[202,122,84,52]],[[552,335,230,141],[432,262,180,111],[312,189,130,80],[235,143,98,60]],[[652,395,271,167],[513,311,213,131],[364,221,151,93],[288,174,119,74]]],m.G15=1335,m.G18=7973,m.G15_MASK=21522;class g{constructor(e,t){this.totalCount=e,this.dataCount=t}getDataCount(){return this.dataCount}getTotalCount(){return this.totalCount}static getRSBlocks(e,t){const o=g.getRsBlockTable(e,t),r=o.length/3,n=[];for(let e=0;e<r;e+=1){const t=o[3*e+0],r=o[3*e+1],s=o[3*e+2];for(let e=0;e<t;e+=1)n.push(new g(r,s))}return n}static getRsBlockTable(e,t){switch(t){case n.L:return g.RS_BLOCK_TABLE[4*(e-1)+0];case n.M:return g.RS_BLOCK_TABLE[4*(e-1)+1];case n.Q:return g.RS_BLOCK_TABLE[4*(e-1)+2];case n.H:return g.RS_BLOCK_TABLE[4*(e-1)+3]}throw new Error("tn:"+e+"/ecl:"+t)}}g.RS_BLOCK_TABLE=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12,7,37,13],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]];const f=Array(41).fill(0).map(((e,t)=>t));var b,y;!function(e){e.L="L",e.M="M",e.Q="Q",e.H="H"}(b||(b={})),function(e){e.numeric="numeric",e.alphanumeric="alphanumeric",e.byte="byte",e.kanji="kanji",e.unicode="unicode"}(y||(y={}));class O{constructor(e=0,t=b.L){this.modules=[],this.moduleCount=0,this.typeNumber=e,this.errorCorrectLevel=n[t],this.qrDataList=[]}getTypeNumber(){return this.typeNumber}setTypeNumber(e){this.typeNumber=e}getErrorCorrectLevel(){return this.errorCorrectLevel}setErrorCorrectLevel(e){this.errorCorrectLevel=e}clearData(){this.qrDataList=[]}addData(e,t=y.byte){if(e instanceof l)this.qrDataList.push(e);else{if("string"!=typeof e)throw new Error(typeof e);switch(t){case y.numeric:this.qrDataList.push(new h(e));break;case y.alphanumeric:this.qrDataList.push(new u(e));break;case y.byte:this.qrDataList.push(new c(e,O.stringToBytesFuncs.default));break;case y.unicode:this.qrDataList.push(new c(e,O.stringToBytesFuncs.UTF8));break;case y.kanji:this.qrDataList.push(new p(e,O.stringToBytesFuncs.SJIS));break;default:throw new Error("mode:"+t)}}}isDark(e,t){return!(!this.modules[e]||null==this.modules[e][t])&&this.modules[e][t]}getModuleCount(){return this.moduleCount}make(){if(this.typeNumber<1){let e=1;for(;e<40;e++){const t=g.getRSBlocks(e,this.errorCorrectLevel),o=new r;this.qrDataList.forEach((t=>{o.put(t.getMode(),4),o.put(t.getLength(),t.getLengthInBits(e)),t.write(o)}));const n=t.reduce(((e,t)=>e+t.getDataCount()),0);if(o.getLengthInBits()<=8*n)break}this.typeNumber=e}this.makeImpl(!1,this.getBestMaskPattern())}getBestMaskPattern(){let e=0,t=0;for(let o=0;o<8;o+=1){this.makeImpl(!0,o);const r=m.getLostPoint(this);(0==o||e>r)&&(e=r,t=o)}return t}makeImpl(e,t){this.moduleCount=4*this.typeNumber+17,this.modules=[];for(let e=0;e<this.moduleCount;e+=1){this.modules.push([]);for(let t=0;t<this.moduleCount;t+=1)this.modules[e].push(null)}this.setupPositionProbePattern(0,0),this.setupPositionProbePattern(this.moduleCount-7,0),this.setupPositionProbePattern(0,this.moduleCount-7),this.setupPositionAdjustPattern(),this.setupTimingPattern(),this.setupTypeInfo(e,t),this.typeNumber>=7&&this.setupTypeNumber(e);const o=O.createData(this.typeNumber,this.errorCorrectLevel,this.qrDataList);this.mapData(o,t)}mapData(e,t){let o=-1,r=this.moduleCount-1,n=7,s=0;const i=m.getMaskFunc(t);for(let t=this.moduleCount-1;t>0;t-=2)for(6==t&&(t-=1);;){for(let o=0;o<2;o+=1)if(null==this.modules[r][t-o]){let a=!1;s<e.length&&(a=1==(e[s]>>>n&1));i(r,t-o)&&(a=!a),this.modules[r][t-o]=a,n-=1,-1==n&&(s+=1,n=7)}if(r+=o,r<0||this.moduleCount<=r){r-=o,o=-o;break}}}setupPositionAdjustPattern(){const e=m.getPatternPosition(this.typeNumber);e.forEach((t=>{e.forEach((e=>{if(null==this.modules[t][e])for(let o=-2;o<=2;o+=1)for(let r=-2;r<=2;r+=1)this.modules[t+o][e+r]=-2==o||2==o||-2==r||2==r||0==o&&0==r}))}))}setupPositionProbePattern(e,t){for(let o=-1;o<=7;o+=1)for(let r=-1;r<=7;r+=1)e+o<=-1||this.moduleCount<=e+o||t+r<=-1||this.moduleCount<=t+r||(this.modules[e+o][t+r]=0<=o&&o<=6&&(0==r||6==r)||0<=r&&r<=6&&(0==o||6==o)||2<=o&&o<=4&&2<=r&&r<=4)}setupTimingPattern(){for(let e=8;e<this.moduleCount-8;e+=1)null==this.modules[e][6]&&(this.modules[e][6]=e%2==0);for(let e=8;e<this.moduleCount-8;e+=1)null==this.modules[6][e]&&(this.modules[6][e]=e%2==0)}setupTypeNumber(e){const t=m.getBCHTypeNumber(this.typeNumber);for(let o=0;o<18;o+=1)this.modules[~~(o/3)][o%3+this.moduleCount-8-3]=!e&&1==(t>>o&1);for(let o=0;o<18;o+=1)this.modules[o%3+this.moduleCount-8-3][~~(o/3)]=!e&&1==(t>>o&1)}setupTypeInfo(e,t){const o=this.errorCorrectLevel<<3|t,r=m.getBCHTypeInfo(o);for(let t=0;t<15;t+=1){const o=!e&&1==(r>>t&1);t<6?this.modules[t][8]=o:t<8?this.modules[t+1][8]=o:this.modules[this.moduleCount-15+t][8]=o}for(let t=0;t<15;t+=1){const o=!e&&1==(r>>t&1);t<8?this.modules[8][this.moduleCount-t-1]=o:t<9?this.modules[8][15-t-1+1]=o:this.modules[8][15-t-1]=o}this.modules[this.moduleCount-8][8]=!e}static createData(e,t,o){const n=g.getRSBlocks(e,t),s=new r;o.forEach((t=>{s.put(t.getMode(),4),s.put(t.getLength(),t.getLengthInBits(e)),t.write(s)}));const i=n.reduce(((e,t)=>e+t.getDataCount()),0);if(s.getLengthInBits()>8*i)throw new Error("code length overflow. ("+s.getLengthInBits()+">"+8*i+")");for(s.getLengthInBits()+4<=8*i&&s.put(0,4);s.getLengthInBits()%8!=0;)s.putBit(!1);for(;!(s.getLengthInBits()>=8*i||(s.put(O.PAD0,8),s.getLengthInBits()>=8*i));)s.put(O.PAD1,8);return O.createBytes(s,n)}static createBytes(e,t){let o=0,r=0,n=0;const s=new Array(t.length).map((e=>[])),i=new Array(t.length).map((e=>[]));function a(e){const t=[];for(let o=0;o<e;o+=1)t.push(0);return t}for(let l=0;l<t.length;l+=1){const c=t[l].getDataCount(),u=t[l].getTotalCount()-c;r=Math.max(r,c),n=Math.max(n,u),s[l]=a(c);for(let t=0;t<s[l].length;t+=1)s[l][t]=255&e.getBuffer()[t+o];o+=c;const p=m.getErrorCorrectPolynomial(u),h=new d(s[l],p.getLength()-1).mod(p);i[l]=a(p.getLength()-1);for(let e=0;e<i[l].length;e+=1){const t=e+h.getLength()-i[l].length;i[l][e]=t>=0?h.getAt(t):0}}const l=a(t.reduce(((e,t)=>e+t.getTotalCount()),0));let c=0;for(let e=0;e<r;e+=1)for(let o=0;o<t.length;o+=1)e<s[o].length&&(l[c]=s[o][e],c+=1);for(let e=0;e<n;e+=1)for(let o=0;o<t.length;o+=1)e<i[o].length&&(l[c]=i[o][e],c+=1);return l}}O.stringToBytesFuncs={default(e){const t=[];for(let o=0;o<e.length;o+=1){const r=e.charCodeAt(o);t.push(255&r)}return t}},O.PAD0=236,O.PAD1=17;const S=e=>!!e&&"object"==typeof e&&!Array.isArray(e);function C(e,t=!1){const o=e.split("").reverse().join("");return t?o.toLocaleUpperCase():o}function k(e,...t){if(!t.length)return e;const o=t.shift();return void 0!==o&&S(e)&&S(o)?(e={...e},Object.keys(o).forEach((t=>{const r=e[t],n=o[t];Array.isArray(r)&&Array.isArray(n)?e[t]=n:S(r)&&S(n)?e[t]=k({...r},n):e[t]=n})),k(e,...t)):e}const w=C("rq",!0)+C("-",!0)+C("talp",!0)+C("mrof",!0),A=C("a".repeat(6)+"#",!0),T="top",v="bottom",q="left",D="right";const I=e=>"number"==typeof e?e:parseInt(e.replace("%",""),10),Z=(e,t="0%")=>e?e.endsWith("%")?e:e+"%":t,W="text",R="image",V={disabled:!1,enableText:!0,type:"text",value:w},E=(e,t)=>!e?.decorations?.[t]?.disabled,j=(e,t,o)=>!o||!e?.decorations?.[t]?.disabled,x=e=>{if("string"==typeof e)return e;if(!e)return"";const{fontFace:t="Helvetica",fontSize:o=20,fontColor:r="#ffffff",letterSpacing:n=1,fontWeight:s="bold"}=e;return`font-weight: ${s}; font-size: ${o}px; font-family: ${t}; fill: ${r}; letter-spacing: ${n}px;`};V.style={fontFace:"Helvetica",fontSize:20,fontColor:A,letterSpacing:2};const B={...V};const J=({document:e,position:t,rotate:o,flip:r,thickness:n,height:s,width:i,round:a,offset:d=0,curveAdjustment:l=0,curveRadius:c,outerBorderPadding:u=0,instanceId:p})=>{const h=Math.min(i,s),m=e.createElementNS("http://www.w3.org/2000/svg","path"),g=(e=>{if(e>=50)return 1;const t=[{R:0,P:0},{R:5,P:0},{R:10,P:.12},{R:15,P:.2},{R:20,P:.32},{R:25,P:.44},{R:30,P:.56},{R:35,P:.65},{R:40,P:.78},{R:45,P:.9},{R:50,P:1}],o=t.find((t=>e<=t.R))||t[0],r=t.find((t=>e>t.R))||t[t.length-1],{R:n,P:s}=o,{R:i,P:a}=r;return s+(e-n)/(i-n)*(a-s)})("string"==typeof a?I(a):a),f=void 0!==c?function(e){let t;return t="number"==typeof e?e:"string"==typeof e?(e.includes("%"),parseFloat(e)):0,t=Math.min(Math.max(t,0),50),.5+t/50*.5}(c):g,b=(h-n-2*u-10*l*2)/2*f,y=((e,t,o,r)=>{const n=o/2,s=r/2;let i="";return e&&(i+=`rotate(${e}, ${n}, ${s})`),t&&(i+=`translate(${n}, ${s}) scale(1, -1) translate(${-n}, ${-s})`),i.trim()})(o,r,i,s);m.setAttribute("id",`${t}-text-path-${p}`),m.setAttribute("transform",y);const{startX:O,startY:S,pathWidth:C}=((e,t,o,r,n={})=>{let s=t/2,i=t/2+r,a=e-t;return o&&(a-=2*o,s+=o,i+=o),s+=n.left||0,i+=n.top||0,{startX:s,startY:i,pathWidth:a}})(h,n,u,d);return m.setAttribute("d",((e,t,o,r)=>`M${e},${t+r} a${r},${r} 0 0 1 ${r},${-r} h${o-2*r} a${r},${r} 0 0 1 ${r},${r}`)(O,S,C,b)),m},Y=({document:e,thickness:t,value:o,svg:r,position:n,height:s,width:i,round:a,style:d,offset:l=0,curveAdjustment:c=0,curveDisabled:u=!1,outerBorderPadding:p=0,curveRadius:h,instanceId:m,noBorderThickness:g,enabledBorders:f})=>{let b=0,y=!1;if(n===D?b=90:n===v?y=!u:n===q&&(b=270),u){const a=e.createElementNS("http://www.w3.org/2000/svg","text");let c=i/2,u=(s-Math.min(i,s)+t)/2+2*p+l-(s-i>0?0:(i-s)/2);if(n===v?u=s-2*p-t/2-l:n===T&&(u=2*p+t/2+l),n===T||n===v){let e=0;!f[q]&&f[D]?e=-(t-g)/2:f[q]&&!f[D]&&(e=(t-g)/2),c+=e}else if(n===q||n===D){let e=0;!f[T]&&f[v]?e=n===q?(t-g)/2:-(t-g)/2:f[T]&&!f[v]&&(e=n===q?-(t-g)/2:(t-g)/2),c+=e}let h="";0!==b&&(h+=`rotate(${b}, ${i/2}, ${s/2})`),a.setAttribute("x",c.toString()),a.setAttribute("y",u.toString()),a.setAttribute("text-anchor","middle"),a.setAttribute("dominant-baseline","middle"),h&&a.setAttribute("transform",h.trim()),a.textContent=o;const m=x(d);a.setAttribute("style",m),r.appendChild(a)}else{let u=r.getElementsByTagName("defs")[0];u||(u=e.createElementNS("http://www.w3.org/2000/svg","defs"),r.appendChild(u));const O=J({document:e,position:n,rotate:b,flip:y,thickness:t,height:s,width:i,round:a,offset:l,curveAdjustment:c,enabledBorders:f,outerBorderPadding:p,curveRadius:h,noBorderThickness:g,instanceId:m}),{x:S,y:C}=function(e,t,o,r){let n=0,s=0;const i=(t-o)/2;return r.left&&r.right&&r.top&&r.bottom?(n=0,s=0):"top"===e||"bottom"===e?!r.left&&r.right?n=-i:(r.left&&!r.right||r.left&&r.right)&&(n=i):"left"!==e&&"right"!==e||(!r.top&&r.bottom?r.left&&r.right?(n="left"===e?2*+i:0,s=-i):n="left"===e?+i:-i:r.top&&!r.bottom?r.left&&r.right?(n="left"===e?0:2*i,s=-i):n=0:r.top&&r.bottom?s=r.left&&r.right?2*+i:+i:(n=r.left&&r.right?2*+i:+i,s=r.left&&r.right?2*-i:-i)),{x:n,y:s}}(n,t,g,f);if(0!==S||0!==C){const e=`${O.getAttribute("transform")||""} translate(${S}, ${C})`.trim();O.setAttribute("transform",e)}u.appendChild(O),r.appendChild((({document:e,value:t,position:o,style:r,instanceId:n})=>{const s=e.createElementNS("http://www.w3.org/2000/svg","text"),i=e.createElementNS("http://www.w3.org/2000/svg","textPath");i.setAttribute("href",`#${o}-text-path-${n}`),i.setAttribute("text-anchor","middle"),i.setAttribute("startOffset","50%"),i.textContent=t,i.setAttribute("alignment-baseline","middle");const a=x(r);return s.setAttribute("style",a),s.appendChild(i),s})({document:e,position:n,rotate:b,value:o,style:d,instanceId:m}))}},M=({document:e,thickness:t,value:o,svg:r,position:n,height:s,width:i,offset:a=0,style:d})=>{const l=e.createElementNS("http://www.w3.org/2000/svg","image"),c=Math.min(i,s);let u=(i-c+t)/2,p=(s-c+t)/2+a;n===T?u+=(c-t)/2:n===D?(u+=c-t,p+=(c-t)/2):n===v?(u+=(c-t)/2,p+=c-t):n===q&&(p+=(c-t)/2),l.setAttribute("href",o||""),l.setAttribute("x",`${u}`),l.setAttribute("y",`${p}`),l.setAttribute("style",d?.toString()||""),r.appendChild(l)},L=e=>(t,o,r,n,s,i,a,d,l)=>{const{instanceId:c}=o,u=r,p=r,h=Math.min(u,p),m=Z(e.radius),g=m&&I(m)>0?I(m)/100*h:0,f=Z(e?.inner?.radius,g),b=Math.min(Math.max(e.inner?.scale??1,0),1.5),y=e.inner?.horizontalOffset??0,O=e.inner?.verticalOffset??0,S=e.thickness,C=e.color??"#000000",k=e.borderOuter?e.borderOuter.thickness/2:0,w=e.borderInner?e.borderInner.thickness/2:0,A=o.document,V=s.left+s.right,x=s.top+s.bottom,J=n(S,g),L={top:E(e,"top"),right:E(e,"right"),bottom:j(e,"bottom",l()),left:E(e,"left")},P=A.createElementNS("http://www.w3.org/2000/svg","rect"),G={x:i.left/2,y:i.top/2,width:h+V-i.left,height:h+x-i.top,fill:C,rx:m??g};Object.entries(G).forEach((([e,t])=>{P.setAttribute(e,t.toString())}));const X=A.createElementNS("http://www.w3.org/2000/svg","rect"),N=g>=200?"50%":g,z=u+V-(s.left+s.right+a.left+a.right+i.left+i.right),F=p+x-(s.top+s.bottom+a.top+a.bottom+i.top+i.bottom),U=z*b,K=F*b,H=(z-U)/2-y,_=(F-K)/2-O,Q={x:s.left+a.left+i.left+H,y:s.top+a.top+i.top+_,width:U,height:K,fill:J?.getAttribute("fill")||"#ffffff",rx:f??N};Object.entries(Q).forEach((([e,t])=>X.setAttribute(e,t.toString()))),J&&(({strokePath:e,backgroundMaskGroup:t,svgElement:o,color:r="#000000"})=>{e.setAttribute("fill",t?.getAttribute("fill")||r),t.setAttribute("fill","none"),t.setAttribute("stroke-width","0"),o.insertBefore(t,o.firstChild)})({strokePath:X,backgroundMaskGroup:J,svgElement:t,color:C});let $=t.getElementsByTagName("defs")[0];$||($=A.createElementNS("http://www.w3.org/2000/svg","defs"),t.insertBefore($,t.firstChild));const ee=A.createElementNS("http://www.w3.org/2000/svg","mask");ee.setAttribute("id",`qr-mask-${c}`),ee.setAttribute("maskUnits","userSpaceOnUse");const te=A.createElementNS("http://www.w3.org/2000/svg","rect");if(te.setAttribute("fill","white"),Object.entries(Q).forEach((([e,t])=>{"fill"!==e&&te.setAttribute(e,t.toString())})),$.appendChild(ee),ee.appendChild(te),t.insertBefore(X,t.firstChild?.nextSibling),t.insertBefore(P,t.firstChild),e.borderOuter&&e.borderOuter.thickness>0){const o=A.createElementNS("http://www.w3.org/2000/svg","rect"),r={x:i.left/2,y:i.top/2,width:u+V-i.left,height:p+x-i.top,fill:"none",rx:m??g,stroke:e.borderOuter.color||"#c0c0c0","stroke-width":e.borderOuter.thickness};Object.entries(r).forEach((([e,t])=>o.setAttribute(e,t.toString()))),t.insertBefore(o,t.firstChild?.nextSibling)}if(J){if(Array.from(t.getElementsByTagName("rect"))[0]){const e=t.firstChild;e?t.insertBefore(J,e):t.appendChild(J)}}if(e.borderInner&&e.borderInner.thickness>0){const o=A.createElementNS("http://www.w3.org/2000/svg","rect"),r={x:s.left+a.left+i.left+H,y:s.top+a.top+i.top+_,width:U,height:K,fill:"none",stroke:e.borderInner.color||"#c0c0c0","stroke-width":a.left,rx:f??N};Object.entries(r).forEach((([e,t])=>o.setAttribute(e,t.toString()))),t.appendChild(o)}let oe={...B};if(!l()){const t=((e,t=[T,q,D])=>{for(const o of t){const t=e.decorations?.[o];if(t&&t.enableText&&!t.disabled&&t.type===W&&t.style)return t.style}})(e);t&&(oe={...oe,style:t})}const re=l()?e:{...e,decorations:{...e.decorations,bottom:{...e.decorations?.bottom||{},...oe,disabled:!1,enableText:!0}}},ne=[T,q,D,v];for(const e of ne){const o=re.decorations?.[e];if(!o||!o.enableText||!L[e])continue;const r=o.type||W,n=r===R?M:r===W?Y:void 0;n&&n({document:A,svg:t,position:e,thickness:re.thickness,value:o.value??"",style:o.style,offset:o.offset,curveAdjustment:o.curveAdjustment,curveDisabled:o.curveDisabled,height:p+x,width:u+V,enabledBorders:L,outerBorderPadding:k,innerBorderPadding:w,round:m,curveRadius:o.curveRadius,instanceId:c,noBorderThickness:d})}};var P,G,X,N,z,F;function U(e){const t={...e};if(!t.colorStops||!t.colorStops.length)throw new Error("Field 'colorStops' is required in gradient");return t.rotation?t.rotation=Number(t.rotation):t.rotation=0,t.colorStops=t.colorStops.map((e=>({...e,offset:Number(e.offset)}))),t}function K(e){const t={...e};if(t.imageOptions={...t.imageOptions,imageSize:Math.min(1,Number(t.imageOptions?.imageSize))||1,margin:Number(t.imageOptions?.margin)||0,padding:Number(t.imageOptions?.padding)||0},t.imageOptions.mode==F.overlay&&(t.imageOptions.margin=0),t.dotsOptions={...t.dotsOptions},t.dotsOptions.gradient&&(t.dotsOptions.gradient=U(t.dotsOptions.gradient)),t.dotsOptions.size=Math.round(Math.max(0,t.dotsOptions.size)||10),t.cornersSquareOptions&&(t.cornersSquareOptions={...t.cornersSquareOptions},t.cornersSquareOptions.gradient&&(t.cornersSquareOptions.gradient=U(t.cornersSquareOptions.gradient))),t.cornersDotOptions&&(t.cornersDotOptions={...t.cornersDotOptions},t.cornersDotOptions.gradient&&(t.cornersDotOptions.gradient=U(t.cornersDotOptions.gradient))),t.backgroundOptions&&(t.backgroundOptions={...t.backgroundOptions},t.backgroundOptions.gradient&&(t.backgroundOptions.gradient=U(t.backgroundOptions.gradient))),t.borderOptions&&t.borderOptions.decorations){const e=["top","bottom","left","right"];for(const o of e){let e=t.borderOptions.decorations[o];e||(t.borderOptions.decorations[o]={enableText:!1,value:void 0},e=t.borderOptions.decorations[o]),!1===e.enableText?e.value=void 0:!0===e.enableText?null!==e.value&&void 0!==e.value||(e.value=""):void 0===e.enableText&&(e.value&&"string"==typeof e.value&&""!==e.value.trim()?e.enableText=!0:(e.enableText=!1,e.value=void 0))}}return"undefined"==typeof document||t.document||(t.document=document),t}!function(e){e.radial="radial",e.linear="linear"}(P||(P={})),function(e){e.dot="dot",e.randomDot="random-dot",e.rounded="rounded",e.extraRounded="extra-rounded",e.verticalLine="vertical-line",e.horizontalLine="horizontal-line",e.classy="classy",e.classyRounded="classy-rounded",e.square="square",e.smallSquare="small-square",e.tinySquare="tiny-square",e.star="star",e.plus="plus",e.diamond="diamond"}(G||(G={})),function(e){e.dot="dot",e.square="square",e.heart="heart",e.rounded="rounded",e.classy="classy",e.outpoint="outpoint",e.inpoint="inpoint"}(X||(X={})),function(e){e.dot="dot",e.square="square",e.rounded="rounded",e.classy="classy",e.outpoint="outpoint",e.inpoint="inpoint"}(N||(N={})),function(e){e.square="square",e.circle="circle"}(z||(z={})),function(e){e.center="center",e.overlay="overlay",e.background="background"}(F||(F={}));const H={[b.L]:.07,[b.M]:.15,[b.Q]:.25,[b.H]:.3};function _(e){const t={};if((e.primaryColor||e.dotsGradient)&&(t.dotsOptions={...t.dotsOptions,...e.primaryColor&&{color:e.primaryColor},...e.dotsGradient&&{gradient:e.dotsGradient}}),(e.secondaryColor||e.cornersGradient)&&(t.cornersSquareOptions={...t.cornersSquareOptions,...e.secondaryColor&&{color:e.secondaryColor},...e.cornersGradient&&{gradient:e.cornersGradient}},t.cornersDotOptions={...t.cornersDotOptions,...e.secondaryColor&&{color:e.secondaryColor}}),(e.thirdColor||e.cornersDotGradient)&&(t.cornersDotOptions={...t.cornersDotOptions,...e.thirdColor&&{color:e.thirdColor},...e.cornersDotGradient&&{gradient:e.cornersDotGradient}}),(e.backgroundColor||e.backgroundGradient)&&(t.backgroundOptions={...t.backgroundOptions,...e.backgroundColor&&{color:e.backgroundColor},...e.backgroundGradient&&{gradient:e.backgroundGradient}}),e.dotShape&&(t.dotsOptions={...t.dotsOptions,type:e.dotShape}),e.cornerSquareShape&&(t.cornersSquareOptions={...t.cornersSquareOptions,type:e.cornerSquareShape}),e.cornerDotShape&&(t.cornersDotOptions={...t.cornersDotOptions,type:e.cornerDotShape}),e.logo&&(t.image=e.logo),(void 0!==e.logoSize||e.logoMode||void 0!==e.logoMargin||e.logoBackgroundColor||void 0!==e.logoPadding||void 0!==e.logoRadius)&&(t.imageOptions={...t.imageOptions,...void 0!==e.logoSize&&{imageSize:e.logoSize},...e.logoMode&&{mode:e.logoMode},...void 0!==e.logoMargin&&{margin:e.logoMargin},...e.logoBackgroundColor&&{backgroundColor:e.logoBackgroundColor},...void 0!==e.logoPadding&&{padding:e.logoPadding},...void 0!==e.logoRadius&&{radius:e.logoRadius}}),e.borderColor||void 0!==e.borderThickness||void 0!==e.borderRadius||e.borderInnerColor||void 0!==e.borderInnerThickness||void 0!==e.borderInnerRadius||e.borderOuterColor||void 0!==e.borderOuterThickness||e.borderTextTop||e.borderTextRight||e.borderTextBottom||e.borderTextLeft||e.borderFontFace||void 0!==e.borderFontSize||e.borderFontColor||void 0!==e.borderLetterSpacing||e.borderFontWeight){t.borderOptions?(t.borderOptions.hasBorder=!0,void 0===t.borderOptions.thickness&&(t.borderOptions.thickness=0)):t.borderOptions={hasBorder:!0,thickness:0};const o=t.borderOptions;e.borderColor&&(o.color=e.borderColor),void 0!==e.borderThickness&&(o.thickness=e.borderThickness),void 0!==e.borderRadius&&(o.radius=String(e.borderRadius)),void 0!==e.borderInnerThickness?o.borderInner={color:void 0!==e.borderInnerColor?e.borderInnerColor:o.borderInner?.color,thickness:e.borderInnerThickness}:void 0!==e.borderInnerColor&&o.borderInner&&(o.borderInner.color=e.borderInnerColor),void 0!==e.borderInnerRadius&&(o.inner={...o.inner||{},radius:String(e.borderInnerRadius)}),void 0!==e.borderOuterThickness?o.borderOuter={color:void 0!==e.borderOuterColor?e.borderOuterColor:o.borderOuter?.color,thickness:e.borderOuterThickness}:void 0!==e.borderOuterColor&&o.borderOuter&&(o.borderOuter.color=e.borderOuterColor);const r={};e.borderFontFace&&(r.fontFace=e.borderFontFace),void 0!==e.borderFontSize&&(r.fontSize=e.borderFontSize),e.borderFontColor&&(r.fontColor=e.borderFontColor),void 0!==e.borderLetterSpacing&&(r.letterSpacing=e.borderLetterSpacing),e.borderFontWeight&&(r.fontWeight=e.borderFontWeight),o.decorations||(o.decorations={});const n=o.decorations?JSON.parse(JSON.stringify(o.decorations)):{};let s=!1;["top","right","bottom","left"].forEach((t=>{const o=`borderText${t.charAt(0).toUpperCase()+t.slice(1)}`,i=e[o];void 0!==i?(n[t]||(n[t]={}),n[t]={...n[t],value:i,enableText:!0,style:{...n[t]?.style||{},...r}},s=!0):n[t]?.value&&Object.keys(r).length>0&&(n[t]||(n[t]={}),n[t].style={...n[t].style||{},...r},s=!0)})),s&&(o.decorations=n)}return t}function Q(e){const t=[];return void 0!==e.logoSize&&("number"!=typeof e.logoSize||e.logoSize<0||e.logoSize>1)&&t.push("logoSize must be a number between 0 and 1."),{isValid:0===t.length,errors:t}}class ${constructor(){}close(){}}class ee extends ${constructor(e){super(),this.istream=e,this.buffer=0,this.buflen=0}readByte(){for(;this.buflen<8;){const e=this.istream.readByte();if(-1==e){if(0==this.buflen)return-1;throw new Error("unexpected end of file./"+this.buflen)}if(e=="=".charCodeAt(0))return this.buflen=0,-1;ee.isWhitespace(e)||(this.buffer=this.buffer<<6|ee.decode(e),this.buflen+=6)}const e=this.buffer>>>this.buflen-8&255;return this.buflen-=8,e}static isWhitespace(e){return e=="\v".charCodeAt(0)||e=="\t".charCodeAt(0)||e=="\r".charCodeAt(0)||e=="\n".charCodeAt(0)}static decode(e){if("A".charCodeAt(0)<=e&&e<="Z".charCodeAt(0))return e-"A".charCodeAt(0);if("a".charCodeAt(0)<=e&&e<="z".charCodeAt(0))return e-"a".charCodeAt(0)+26;if("0".charCodeAt(0)<=e&&e<="9".charCodeAt(0))return e-"0".charCodeAt(0)+52;if(e=="+".charCodeAt(0))return 62;if(e=="/".charCodeAt(0))return 63;throw new Error("c:"+e)}}class te extends ${constructor(e){super(),this.bytes=e,this.pos=0}readByte(){if(this.pos<this.bytes.length){const e=this.bytes[this.pos];return this.pos+=1,e}return-1}}(function(e,t){const o=(()=>{const o=new ee(new te(function(e){const t=[];for(let o=0;o<e.length;o+=1)t.push(e.charCodeAt(o));return t}(e))),r=()=>{const e=o.readByte();if(-1==e)throw new Error("eof");return e};let n=0;const s={};for(;;){const e=o.readByte();if(-1==e)break;const t=r(),i=r()<<8|r();s[String.fromCharCode(e<<8|t)]=i,n+=1}if(n!=t)throw new Error(n+"!="+t);return s})(),r="?".charCodeAt(0)})("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MIWC4zCGguQwh4LlMIiC5jCJgucwioLoMIuC6TCMguowjYLrMI6C7DCPgu0wkILuMJGC7zCSgvAwk4LxMJuBSjCcgUswnYFUMJ6BVTChg0AwooNBMKODQjCkg0MwpYNEMKaDRTCng0YwqINHMKmDSDCqg0kwq4NKMKyDSzCtg0wwroNNMK+DTjCwg08wsYNQMLKDUTCzg1IwtINTMLWDVDC2g1Uwt4NWMLiDVzC5g1gwuoNZMLuDWjC8g1swvYNcML6DXTC/g14wwINfMMGDYDDCg2Eww4NiMMSDYzDFg2QwxoNlMMeDZjDIg2cwyYNoMMqDaTDLg2owzINrMM2DbDDOg20wz4NuMNCDbzDRg3Aw0oNxMNODcjDUg3Mw1YN0MNaDdTDXg3Yw2IN3MNmDeDDag3kw24N6MNyDezDdg3ww3oN9MN+DfjDgg4Aw4YOBMOKDgjDjg4Mw5IOEMOWDhTDmg4Yw54OHMOiDiDDpg4kw6oOKMOuDizDsg4ww7YONMO6DjjDvg48w8IOQMPGDkTDyg5Iw84OTMPSDlDD1g5Uw9oOWMPuBRTD8gVsw/YFSMP6BU04AiOpOAZKaTgOOtU4HlpxOCI/kTgmOT04Kj+NOC4m6Tg2Vc04Ol15OEJigThGJTk4Uio5OFZihThaQok4XmcBOGIt1ThmVuE4ej+VOIZe8TiaVwE4qmKJOLZKGTjGYo04yi/hONpikTjiK2045kk9OO47lTjyYpU4/mKZOQpinTkOUVE5Fi3ZOS5RWTk2T4U5OjMFOT5ZSTlXlaE5WmKhOV4/mTliYqU5ZibNOXYvjTl6M7k5fludOYpukTnGXkE5zk/tOfoqjToCLVE6CmKpOhZirToaXuU6Il1xOiZGIToqYrU6LjpZOjJPxTo6YsE6RiV1OkozdTpSM3E6ViOROmJhqTpmYaU6bjbFOnIifTp6YsU6fmLJOoJizTqGWU06imLROpIzwTqWI5U6mlpJOqIucTquLnU6si55OrZLgTq6Xuk6wmLVOs5i2TraYt066kGxOwI9ZTsGQbU7CmLxOxJi6TsaYu07Hi3dOyo2hTsuJ7k7NmLlOzpi4Ts+Vp07UjmVO1Y5kTtaRvE7XmL1O2JV0TtmQ5U7dgVdO3pi+Tt+YwE7jkeNO5JffTuWIyE7tmL9O7om8TvCLwk7ykodO9oyPTveYwU77lENPAYrpTwmYwk8KiMlPDYzeTw6K6k8PlZpPEJSwTxGLeE8aie9PHJjlTx2TYE8vlIxPMJjETzSUuk82l+BPOJBMTzqOZk88jpdPPYm+T0OSz09GkkFPR5jIT02Iyk9OkuFPT49aT1CNsk9Rl0NPU5HMT1WJvU9XmMdPWZddT1qYw09bmMVPXI3sT12Yxk9em0NPaZjOT2+Y0U9wmM9Pc4nAT3WVuU92mMlPe5jNT3yM8U9/jmdPg4qkT4aY0k+ImMpPi5fhT42OmE+PmMtPkZjQT5aY00+YmMxPm4ufT52Iy0+gi6BPoYm/T6ubRE+tlplPrpWOT6+M8k+1kE5Ptpe1T7+V1k/CjFdPw5GjT8SJ4k/Kj3JPzpjXT9CY3E/RmNpP1JjVT9eRrU/YmNhP2pjbT9uY2U/dldtP35jWT+GQTU/jlpNP5JjdT+WY3k/uj0NP75jrT/OUb0/1lVVP9pjmT/iV7k/6ibRP/pjqUAWY5FAGmO1QCZFxUAuMwlANlHtQD+DFUBGY7FASk3xQFJjhUBaM9FAZjPNQGpjfUB+O2FAhmOdQI5XtUCSSbFAlmONQJoyRUCiY4FApmOhQKpjiUCuXz1AsmOlQLZhgUDaL5FA5jJBQQ5juUEeY71BImPNQSYjMUE+VzlBQmPJQVZjxUFaY9VBamPRQXJLiUGWMklBsmPZQco7DUHSRpFB1kuNQdov0UHiY91B9i1VQgJj4UIWY+lCNllRQkYyGUJiOUFCZlPVQmpj5UKyNw1Ctl2JQspj8ULOZQlC0mPtQtY3CULePnVC+jFhQwplDUMWLzVDJmUBQyplBUM2TrVDPkZxQ0YuhUNWWbFDWmURQ2pe7UN6ZRVDjmUhQ5ZlGUOeRbVDtmUdQ7plJUPWZS1D5mUpQ+5XGUQCLVlEBmU1RAplOUQSJrVEJmUxREo7yURSZUVEVmVBRFplPURiY1FEamVJRH4+eUSGZU1Eql0RRMpbXUTeZVVE6mVRRO5lXUTyZVlE/mVhRQJlZUUGI8lFDjLNRRIxaUUWPW1FGkptRR4uiUUiQ5lFJjPVRS42OUUyZW1FNlsZRTpNlUVCOmVFSmVpRVJlcUVqTfVFcipVRYpldUWWT/FFokVNRaZlfUWqZYFFrlKpRbIz2UW2YWlFumWFRcYukUXWVulF2kbRRd4vvUXiTVFF8jJNRgJliUYKZY1GFk+BRhol+UYmZZlGKjftRjJllUY2NxFGPmWdRkOPsUZGZaFGSlmBRk5lpUZWZalGWmWtRl4/nUZmOylGgiqVRopluUaSZbFGllrtRppltUaiVeVGpmW9RqplwUauZcVGsk35RsJl1UbGZc1GymXRRs5lyUbSN4VG1mXZRtpboUbeX4lG9mXdRxJCmUcWZeFHGj3lRyZl5UcuSnFHMl71RzZOAUdaZw1HbmXpR3OqjUd2Lw1HgmXtR4ZZ9UeaPiFHnkfpR6Zl9UeqT4lHtmX5R8JmAUfGKTVH1mYFR9oulUfiTylH5iZpR+o9vUf2Un1H+mYJSAJOBUgOQblIEmYNSBpWqUgeQ2FIIiqBSCoqnUguZhFIOmYZSEYxZUhSZhVIXl/FSHY+JUiSUu1IllcpSJ5mHUimXmFIqmYhSLpmJUjCTnlIzmYpSNpCnUjeN/FI4jJRSOZmLUjqOaFI7jY9SQ5LkUkSZjVJHkaVSSo3tUkuZjlJMmY9STZFPUk+ZjFJUmZFSVpZVUluNhFJemZBSY4yVUmSN3FJllI1SaZmUUmqZklJvlZtScI/oUnGZm1JyioRSc5mVUnSZk1J1kW5SfZmXUn+ZllKDimNSh4yAUoiZnFKJl6tSjZmYUpGZnVKSmZpSlJmZUpuXzVKfjPdSoInBUqOX8lKpj5VSqpN3UquNhVKsmaBSrZmhUrGX41K0mEpStZmjUrmM+FK8maJSvopOUsGZpFLDlnVSxZK6UseXRVLJlddSzZmlUtLo01LVk65S15mmUtiKqFLZlrFS3Y+fUt6Zp1LfleVS4JmrUuKQqFLjmahS5IvOUuaZqVLniqlS8oxNUvOZrFL1ma1S+JmuUvmZr1L6jtlS/oz5Uv+W3FMBluZTApP1UwWV71MGmbBTCJmxUw2Zs1MPmbVTEJm0UxWZtlMWibtTF5ZrUxmN+lMambdTHZF4UyCPoFMhi6dTI5m4UyqU2VMvmblTMZm6UzOZu1M4mbxTOZVDUzqL5lM7iONTP5O9U0CZvVNBj1xTQ5DnU0WZv1NGmb5TR4+hU0iM31NJmcFTSpS8U02ZwlNRlNpTUpGyU1OR7FNUi6ZTV5PsU1iSUFNalI5TXJZtU16ZxFNgkOhTZoxUU2mZxVNumcZTb4lLU3CI81NxiutTc5GmU3SLcFN1l5FTd5nJU3iJtVN7mchTf4uoU4KZylOElu9TlpnLU5iX0FOajPpTn4y0U6CZzFOlmc5TppnNU6iQflOpiVhTrYl9U66Zz1OwmdBTs4y1U7aZ0VO7i45Two5RU8OZ0lPIlpRTyY2zU8qLeVPLl0ZTzJFvU82UvVPOjvtT1I9mU9aO5lPXjvNT2Y+WU9uUvlPfmdVT4YliU+KRcFPjjPtT5IzDU+WL5VPomdlT6ZJAU+qR/FPri6lT7I+iU+2Z2lPumdhT74nCU/CR5FPxjrZT8o5qU/OJRVP2ipBT942GU/iOaVP6mdtUAZncVAOLaFQEimVUCI2HVAmLZ1QKkt1UC4lEVAyTr1QNlrxUDo1AVA+XmVQQk2ZUEYz8VBuMTlQdmeVUH4vhVCCWaVQmlNtUKZnkVCuK3FQsmd9ULZngVC6Z4lQ2meNUOIt6VDmQgVQ7latUPJnhVD2Z3VQ+jOFUQJneVEKYQ1RGlfBUSJLmVEmM4FRKjZBUTpnmVFGT21RfmepUaI78VGqO9FRwme1UcZnrVHOWoVR1mehUdpnxVHeZ7FR7me9UfIzEVH2WvVSAmfBUhJnyVIaZ9FSLje5UjJhhVI6Z6VSPmedUkJnzVJKZ7lSimfZUpJpCVKWZ+FSomfxUq5pAVKyZ+VSvml1Uso3nVLOKUFS4mfdUvJpEVL2I9FS+mkNUwIijVMGVaVTCmkFUxJn6VMeZ9VTImftUyY3GVNiaRVThiPVU4ppOVOWaRlTmmkdU6I+jVOmWiVTtmkxU7ppLVPKTTlT6mk1U/ZpKVQSJU1UGjbRVB5BPVQ+aSFUQk4JVFJpJVRaIoFUumlNVL5dCVTGPpVUzmllVOJpYVTmaT1U+kcFVQJpQVUSR7VVFmlVVRo+kVUyaUlVPluJVU4xbVVaaVlVXmldVXJpUVV2aWlVjmlFVe5pgVXyaZVV+mmFVgJpcVYOaZlWEkVBVh5poVYmNQVWKml5Vi5KdVZiaYlWZmltVmoqrVZyK7FWdioVVnppjVZ+aX1WnjJZVqJppVamaZ1WqkXJVq4tpVayLqlWummRVsIvyVbaJY1XEmm1VxZprVceapVXUmnBV2ppqVdyablXfmmxV445rVeSab1X3mnJV+Zp3Vf2adVX+mnRWBpJRVgmJw1YUmnFWFppzVhePplYYiVJWG5p2VimJ3FYvmoJWMY/6VjKafVY0mntWNpp8VjiaflZCiVxWTJFYVk6aeFZQmnlWW4qaVmSagVZoiu1WapqEVmuagFZsmoNWdJWsVniT01Z6lLZWgJqGVoaahVaHimRWipqHVo+ailaUmolWoJqIVqKUWFalmotWrpqMVrSajla2mo1WvJqQVsCak1bBmpFWwpqPVsOaklbImpRWzpqVVtGallbTmpdW15qYVtiZZFbajvpW245sVt6J8VbgiPZW45JjVu6amVbwjaJW8ojNVvOQfVb5mppW+ozFVv2NkVb/mpxXAJqbVwOV3lcEmp1XCJqfVwmanlcLmqBXDZqhVw+Ml1cSiYBXE5qiVxaapFcYmqNXHJqmVx+TeVcmmqdXJ4izVyiN3VctjFxXMJJuVzeaqFc4mqlXO5qrV0CarFdCjeJXR4vPV0qWVldOmqpXT5qtV1CNv1dRjUJXYZqxV2SNo1dmklJXaZquV2qS2Fd/mrJXgpCCV4iasFeJmrNXi4xeV5OatFegmrVXoo1DV6OKX1ekmrdXqpq4V7CauVezmrZXwJqvV8OaulfGmrtXy5aEV86P6VfSmr1X05q+V9SavFfWmsBX3JRXV9+I5lfglXVX45rBV/SP+1f3jrdX+ZR8V/qK7lf8jelYAJZ4WAKTsFgFjJhYBpHNWAqav1gLmsJYFZHCWBmaw1gdmsRYIZrGWCSS51gqiqxYL+qfWDCJgVgxlfFYNI/qWDWTZ1g6jeRYPZrMWECVu1hBl9tYSonyWEuayFhRkVlYUprLWFSTg1hXk2hYWJOEWFmUt1hakstYXo3HWGKax1hpiZZYa5NVWHCayVhymsVYdZBvWHmazVh+j21Yg4urWIWazliTleZYl5GdWJySxFifmtBYqJZuWKua0ViumtZYs5WtWLia1Vi5ms9YuprSWLua1Fi+jaRYwZXHWMWa11jHkmRYyonzWMyP61jRmtlY05rYWNWNiFjXmtpY2JrcWNma21jcmt5Y3prTWN+a4Fjkmt9Y5ZrdWOuObVjskHBY7pFzWO+a4VjwkLpY8YjrWPKUhFj3ktlY+ZrjWPqa4lj7muRY/JrlWP2a5lkCmudZCZXPWQqa6FkPicRZEJrpWRWXW1kWik9ZGJnHWRmPZ1kakb1ZG5rqWRyW6VkilrJZJZrsWSeR5Vkpk1ZZKpG+WSuVdlksmu1ZLZruWS6Jm1kxjrhZMprvWTeIzlk4mvBZPprxWUSJgllHiu9ZSJPeWUmV8llOmvVZT5F0WVCa9FlRjF9ZVJZ6WVWa81lXk4VZWJr3WVqa9llgmvlZYpr4WWWJnFlnmvpZaI+nWWma/FlqkkRZbJr7WW6VsVlzj5dZdJN6WXibQFl9jURZgZtBWYKUQFmDlNxZhJbPWYqURFmNm0pZk4tXWZaXZFmZlq1Zm5uqWZ2bQlmjm0VZpZHDWaiWV1msk2lZsptGWbmWhVm7jchZvo+oWcabR1nJjm9Zy45uWdCIt1nRjMZZ05CpWdSIz1nZm0tZ2ptMWdybSVnliVdZ5oqtWeibSFnqlsNZ65VQWfaIpln7iPdZ/45wWgGI0FoDiKFaCZtRWhGbT1oYlrpaGptSWhybUFofm05aIJBQWiWbTVopldhaL4ziWjWbVlo2m1daPI+pWkCbU1pBmEtaRpRrWkmbVVpajaVaYptYWmaVd1pqm1labJtUWn+WuVqSlH1amptaWpuVUVq8m1tavZtfWr6bXFrBicVawpteWsmOuVrLm11azIyZWtCba1rWm2Ra15thWuGShFrjm2Ba5ptiWumbY1r6m2Va+5tmWwmK8FsLm2hbDJtnWxabaVsij+xbKptsWyyS2lswiWRbMptqWzabbVs+m25bQJtxW0Obb1tFm3BbUI5xW1GbcltUjUVbVZtzW1eOmltYkbZbWpt0W1ubdVtcjnlbXY1GW1+W0Ftji0dbZIzHW2WbdltmindbaZt3W2uRt1twm3hbcZuhW3ObeVt1m3pbeJt7W3qbfVuAm35bg5uAW4WR7luHiUZbiI7nW4mIwFuLkXZbjIquW42Os1uPjUdblZOGW5ePQFuYiq9bmZKIW5qS6FubiLZbnItYW52V81ufjsBbootxW6OQ6VukjrpbpZdHW6abgVuui3tbsI3JW7OKUVu0iYNbtY+qW7aJxlu4m4JbuZdlW7+PaFvCjuJbw5uDW8SK8VvFk9BbxpanW8ebhFvJm4VbzJV4W9Cbh1vSiqZb04v1W9SbhlvbirBb3ZBRW96bi1vfjkBb4YnHW+Kbilvkm4hb5ZuMW+abiVvnlEpb6J7LW+mQUlvrm41b7pe+W/Cbjlvzm5Bb9ZKeW/abj1v4kKFb+o6bW/6Rzlv/jvVcAZWVXAKQ6lwEjstcBZuRXAaPq1wHm5JcCJuTXAmI0VwKkbhcC5BxXA2blFwOk7FcD4+sXBGPrVwTm5VcFpDrXBqPrlwgm5ZcIpuXXCSW3lwom5hcLYvEXDGPQVw4m5lcOZuaXDqO2lw7kEtcPJPyXD2Qc1w+lPZcP5RBXECLx1xBm5tcRYuPXEabnFxIi/xcSpPNXEuJrlxNjnJcTpudXE+boFxQm59cUYv7XFObnlxVk1dcXpGuXGCTalxhjsZcZJF3XGWXmlxsm6JcbpujXG+T1FxxjlJcdpulXHmbplyMm6dckIryXJGbqFyUm6lcoYmqXKiRWlypiuJcq5urXKyWplyxkdBcs4p4XLabrVy3m69cuIrdXLubrFy8m65cvpuxXMWbsFzHm7Jc2ZuzXOCTu1zhi6xc6InjXOmbtFzqm7lc7Zu3XO+V9VzwlfRc9pOHXPqbtlz7j3Nc/Zu1XQeQkl0Lm7pdDo3oXRGbwF0Um8FdFZu7XRaKUl0Xm7xdGJvFXRmbxF0am8NdG5u/XR+bvl0im8JdKZX2XUubyV1Mm8ZdTpvIXVCXkl1Sm8ddXJu9XWmQk11sm8pdb421XXOby112m8xdgpvPXYSbzl2Hm81di5OIXYybuF2Qm9VdnZvRXaKb0F2sm9JdrpvTXbeb1l26l+RdvJvXXb2b1F3Jm9hdzIreXc2b2V3Sm9td05vaXdab3F3bm91d3ZDsXd6PQl3hj4Rd45GDXeWNSF3mjbZd541JXeiLkF3rm95d7o23XfGMyF3ym99d85akXfSUYl31m+Bd941KXfuKql39kkZd/ovQXgKOc14DlXpeBpS/Xgub4V4MivNeEZvkXhaSn14Zm+NeGpviXhub5V4dkuleJZCDXiuOdF4tkMheL5HRXjCLQV4zkqBeNpvmXjeb5144j+1ePZZYXkCb6l5Dm+leRJvoXkWVnV5Hm/FeTJZ5Xk6b615Um+1eVZaLXleb7F5fm+5eYZSmXmKb715jlbxeZJvwXnKKsV5zlb1edJROXnWb8l52m/NeeI1LXnmKsl56m/Ree4y2XnyXY159l0hefor0Xn+b9l6BkqFeg41MXoSPr16HlN1eio+wXo+PmF6VkupelpX3XpeTWF6ajU1enJV7XqCb916mk3hep43AXquMyV6tkutetYjBXraPjl63jU5euJdmXsGb+F7Cm/lew5RwXsib+l7Jl/VeyphMXs+b/F7Qm/te04pmXtacQF7anENe25xEXt2cQl7flV9e4I+xXuGcRl7inEVe45xBXuicR17pnEhe7JxJXvCcTF7xnEpe85xLXvScTV72iYRe95LsXvicTl76jJpe+4n0XvyUVV7+nE9e/5P5XwGV2V8DnFBfBJhNXwmcUV8Klb5fC5xUXwyYn18NmK9fD46uXxCT818RnFVfE4t8XxSSol8ViPhfFpxWXxeVpF8YjU9fG5JvXx+S7V8llu1fJoy3XyeMyl8pnFdfLZxYXy+cXl8xjuNfNZKjXzeLrV84nFlfPJVKXz6SZV9BnFpfSJxbX0qLrl9MnFxfTpxdX1GcX19Tk5ZfVpxgX1ecYV9ZnGJfXJxTX12cUl9hnGNfYoxgX2aVRl9pjcpfapVWX2uSpF9slWpfbZxkX3CPsl9xiWVfc5xlX3ecZl95lvBffJTeX3+caV+AiZ1fgZCqX4KcaF+DnGdfhIxhX4WR0l+HnG1fiJxrX4qcal+Ll6VfjIzjX5CPmV+RnGxfkpNrX5OPXV+Xk75fmJxwX5mcb1+enG5foJxxX6GM5F+onHJfqZWcX6qPel+tnHNfrpT3X7OTv1+0kqVfuZNPX7ycdF+9i0pfw5BTX8WVS1/MivVfzZRFX9acdV/XjnVf2JZZX9mWWl/ciZ5f3Zx6X+CSiV/knHdf64n1X/Ccq1/xnHlf9ZRPX/iceF/7nHZf/Y2aX/+cfGAOnINgD5yJYBCcgWASk3tgFZyGYBaVfGAZnIBgG5yFYByX5WAdjnZgIJHTYCGcfWAli31gJpyIYCeQq2AoiYVgKZyCYCqJ9mArnIdgL4uvYDGchGA6nIpgQZyMYEKclmBDnJRgRpyRYEqckGBLl/ZgTZySYFCLsGBSjVBgVY+aYFmcmWBanItgX5yPYGCcfmBiifhgY5yTYGSclWBlknBgaI2mYGmJtmBqnI1ga5yYYGycl2Bti7Fgb5GnYHCKhmB1jGJgd5yOYIGcmmCDnJ1ghJyfYImOu2CLnKVgjJLuYI2cm2CSnKNglIn3YJacoWCXnKJgmpyeYJucoGCfjOVgoJdJYKOKs2CmiXhgp5ykYKmUWWCqiKtgspTfYLOce2C0nKpgtZyuYLaW42C4nKdgvJOJYL2crGDFj+5gxpytYMeT1WDRmGZg05ypYNicr2DajZtg3JDJYN+I0mDgnKhg4ZymYOOReWDnnJxg6I5TYPCRxGDxnLtg85F6YPSctmD2nLNg95y0YPmO5GD6nLdg+5y6YQCctWEBj0RhA5y4YQacsmEIlvphCZb5YQ2cvGEOnL1hD4jTYRWcsWEai/BhG4ikYR+KtGEhnLlhJ5zBYSicwGEsnMVhNJzGYTycxGE9nMdhPpy/YT+cw2FCnMhhRJzJYUecvmFIjpxhSpzCYUuR1GFMjVFhTZywYU6QVGFTnNZhVZXnYViczGFZnM1hWpzOYV2c1WFfnNRhYpadYWOKtWFlnNJhZ4xkYWiKU2FrnM9hbpe2YW+c0WFwiNRhcZzTYXOcymF0nNBhdZzXYXaMY2F3nMthfpd8YYKXSmGHnNphipzeYY6RnmGQl/dhkZzfYZSc3GGWnNlhmZzYYZqc3WGkla5hp5OyYamMZWGrnOBhrJzbYa6c4WGyjJthtomvYbqc6WG+irZhw5znYcac6GHHjadhyJzmYcmc5GHKnONhy5zqYcyc4mHNnOxh0In5YeOc7mHmnO1h8pKmYfSc8WH2nO9h95zlYfiMnGH6nPBh/Jz0Yf2c82H+nPVh/5zyYgCc9mIInPdiCZz4YgqV6GIMnPpiDZz5Yg6PXmIQkKxiEYnkYhKJ+mIUnPtiFoi9YhqQymIbnPxiHebBYh6dQGIfjIFiIZ1BYiaQ7WIqnUJiLp1DYi+LWWIwnURiMp1FYjOdRmI0kdViOIzLYjuW32I/lltiQI+KYkGdR2JHkO5iSOe7YkmU4GJLjuhiTY3LYk6dSGJTkcViVZWlYliR72JbnUtiXp1JYmCdTGJjnUpiaJ1NYm6Vr2JxiLVidpV9YnmU4WJ8nU5ifp1RYn+Ps2KAi1pigp1PYoOdVmKEj7RiiZ1QYoqUY2KRl31ikp1SYpOdU2KUnVdilZOKYpadVGKXjVJimJDcYpudZWKclLJinpHwYquU4mKsnatisZX4YrWS72K5lpViu51aYryJn2K9kopiwp1jYsWSU2LGnV1ix51kYsidX2LJnWZiyp1iYsydYWLNlI9iz51bYtCJ+2LRnVli0ouRYtOR8WLUnVVi151YYtiNU2LZkNli24+1YtydYGLdlHFi4IuSYuGKZ2Lsiodi7ZBAYu6daGLvnW1i8Z1pYvOMnWL1nW5i9o5BYveNiWL+j0Vi/51cYwGOnWMCnWtjB453YwidbGMJiMJjDJ1nYxGSp2MZi5NjH4uyYyedamMoiKVjK43BYy+QVWM6kvBjPZTSYz6dcGM/kX1jSZGoY0yOSmNNnXFjT51zY1Cdb2NVld9jV5K7Y1yRe2NnlfljaI7MY2mdgGNrnX5jbpCYY3KMnmN2nXhjd4+3Y3qT5mN7lFBjgJ12Y4ORfGOIjvZjiZ17Y4yPtmOOnXVjj516Y5KUcmOWnXRjmIxAY5uKfGOfnXxjoJepY6GNzGOiklRjo515Y6WQ2mOnjVRjqJCEY6mJhmOqkVtjq513Y6yLZGOyjGZjtJLNY7WdfWO7kX5jvp2BY8Cdg2PDkbVjxJ2JY8adhGPJnYZjz5VgY9CS8WPSnYdj1pdLY9qXZ2Pbirdj4YisY+OdhWPpnYJj7or2Y/SJh2P2nYhj+pdoZAadjGQNkblkD52TZBOdjWQWnYpkF52RZBydcmQmnY5kKJ2SZCyUwGQtk4tkNJ2LZDadj2Q6jGdkPo3vZEKQ22ROnZdkWJNFZGedlGRploBkb52VZHadlmR4lsxkepCgZIOMgmSInZ1kko5UZJOdmmSVnZlkmpRRZJ6Ts2Skk1BkpZ2bZKmdnGSrlY9krZRkZK6OQmSwkO9kspZvZLmKaGS7naNkvJ2eZMGXaWTCnaVkxZ2hZMedomTNkYBk0p2gZNSdXmTYnaRk2p2fZOCdqWThnapk4pNGZOOdrGTmjkNk552nZOyLW2Tvna1k8Z2mZPKdsWT0nbBk9p2vZPqdsmT9nbRk/o/vZQCds2UFnbdlGJ21ZRydtmUdnZBlI525ZSSduGUqnZhlK526ZSydrmUvjnhlNJ27ZTWdvGU2nb5lN529ZTidv2U5ifxlO41VZT6V+mU/kK1lRYzMZUidwWVNncRlT5VxZVGLfmVVncNlVp3CZVeUc2VYncVlWYuzZV2dx2VencZlYoq4ZWOOVWVmk9ZlbIxoZXCQlGVynchldJCuZXWTR2V3lX5leJ3JZYKdymWDnctlh5W2ZYibfGWJkMRljJVrZY6N1mWQlONlkZTBZZeTbGWZl79lm53NZZyOzmWfnc5loYi0ZaSL0mWlkMtlp5WAZaudz2WsjmFlrZJmZa+OemWwkFZlt53QZbmV+2W8iZdlvY57ZcGd02XDndFlxJ3UZcWXt2XGndJly5D5Zcyd1WXPkbBl0p3WZdeK+GXZndhl253XZeCd2WXhndpl4or5ZeWT+mXmklVl54uMZeiOfGXpkYFl7I97Ze2IrmXxndtl+omgZfud32YCjVZmA53eZgaNqWYHj7hmCp3dZgyPuWYOlr5mD42oZhOI1WYUkMxmHJ3kZh+Qr2YgiWZmJY90ZieWhmYojfBmLY+6Zi+QpWY0neNmNZ3hZjad4mY8kotmP55FZkGd6GZCjp5mQ41XZkSd5mZJnedmS5BXZk+d5WZSjk5mXZ3qZl6d6WZfne5mYp3vZmSd62ZmikFmZ53sZmid7WZplNNmbpWBZm+MaWZwnfBmdJCwZnaPu2Z6knFmgYvFZoOd8WaEnfVmh4nJZoid8maJnfRmjp3zZpGPi2aWkmdml4jDZpid9madnfdmopKoZqaX72arjmJmrpXpZrSWXGa4nkFmuZ35Zryd/Ga+nftmwZ34ZsSeQGbHk9xmyZ36ZtaeQmbZj4xm2p5DZtyXambdlJhm4J5EZuaeRmbpnkdm8J5IZvKLyGbziWdm9I1YZvWeSWb3nkpm+I+RZvmRgmb8mdZm/ZFdZv6RXGb/kdZnAI3FZwOY8GcIjI5nCZdMZwuV/GcNlZ5nD55LZxSN8WcVkr1nFp5MZxeYTmcbll1nHZKpZx6eTWcfivpnJp5OZyeeT2colthnKpaiZyuWlmcslntnLY5EZy6eUWcxjulnNJZwZzaeU2c3nlZnOJ5VZzqK92c9i4BnP55SZ0GeVGdGnldnSZCZZ06Xm2dPiMdnUI3eZ1GRumdTjttnVo/xZ1meWmdck21nXp5YZ1+RqWdgnllnYY/wZ2KW22djnltnZJ5cZ2WXiGdqnmFnbY1ZZ2+UdGdwnl5ncZOMZ3Kd3GdzneBndYtuZ3eUZmd8nmBnfo+8Z3+UwmeFnmZnh5T4Z4meXWeLnmNnjJ5iZ5CQzWeVlo1nl5fRZ5qWh2ecicpnnY59Z6CYZ2ehnmVnopCVZ6aeZGepnl9nr4zNZ7Oea2e0nmlntonLZ7eeZ2e4nm1nuZ5zZ8GRxmfElb9nxp51Z8qVQWfOnnRnz5SQZ9CWXmfRirln05D1Z9SPX2fYktFn2pdNZ92ecGfenm9n4p5xZ+SebmfnnnZn6Z5sZ+yeamfunnJn755oZ/GSjGfzlvZn9I7EZ/WN8mf7jbhn/paPZ/+KYGgCksxoA5PIaASJaGgTkPBoFpCyaBeMSWgennhoIY1aaCKKnGgpnnpoKoqUaCuegWgynn1oNJDxaDiKamg5japoPIppaD2NzWhAnntoQYyFaEKMamhDk41oRp55aEiIxGhNnnxoTp5+aFCLy2hRjEtoU4q6aFSLamhZnoJoXI33aF2WkWhfjlZoY56DaGeVT2h0no9odomxaHeehGh+npVof56FaIGXwGiDnoxohZR+aI2elGiPnodok4iyaJSeiWiXjVtom56LaJ2eimifnoZooJ6RaKKPvWimmutop4zmaKiXnGitnohor5LyaLCKQmixjatos56AaLWekGi2ioFouZ6OaLqekmi8k45oxIr8aMaesGjJlsdoyp6XaMuK+2jNnp5o0pZfaNSen2jVnqFo156laNiemWjakklo35OPaOCeqWjhnpxo456maOeeoGjukFho756qaPKQsWj5nqho+oq7aQCYb2kBnpZpBJ6kaQWI1mkInphpC5a4aQyenWkNkEFpDpLFaQ+ek2kSnqNpGZCaaRqerWkbipFpHIyfaSGer2kinpppI56uaSWep2kmnptpKJ6raSqerGkwnr1pNJPMaTaeomk5nrlpPZ67aT+S1mlKl2tpU5WWaVSetmlVkchpWZ68aVqRXmlcnrNpXZ7AaV6ev2lgk+1pYZ6+aWKT6GlqnsJpa561aW2Lxmlunrhpb498aXOUgGl0nrppdYvJaXeesml4nrRpeZ6xaXyYT2l9inlpfp63aYGewWmCilRpio3laY6JfGmRntJplJhQaZWe1WmbkFlpnJ7UaaCe02mnntBprp7EabGe4WmynsNptJ7Wabuezmm+nslpv57GacGex2nDns9px+qgacqezGnLjVxpzJLGac2RhGnOnspp0J7FadOeyGnYl2xp2ZaKad2ezWnentdp557faeie2GnrnuVp7Z7jafKe3mn5nt1p+5LOaf2RhWn/nttqAp7ZagWe4GoKnuZqC5Tzagye7GoSnudqE57qahSe5GoXkpRqGZVXahue2moenuJqH4++aiGWzWoinvZqI57paimMoGoqiaFqK4p+ai6e0Wo1j79qNp7uajie9Wo5jvdqOoqSaj2STWpEnutqR57wakie9GpLi7RqWItralme8mpfi0BqYZPJamKe8WpmnvNqcp7tanie72p/ioBqgJJoaoSe+mqNnvhqjoznapCe92qXn0BqnJ53aqCe+Wqinvtqo578aqqfS2qsn0dqrp6NarOfRmq4n0Vqu59CasGe6GrCn0Rqw59DatGfSWrTmEVq2p9MatuL+Wren0hq359KauiUpWrqn01q+p9RavufTmsEl5NrBZ9Pawqe3GsSn1JrFp9Tax2JVGsfn1VrIIyHayGOn2sji9NrJ4miazKXfms3n1drOJ9WazmfWWs6i1xrPYvUaz6KvGtDn1xrR59ba0mfXWtMicxrTpJWa1CfXmtTir1rVJ9ga1mfX2tbn2FrX59ia2GfY2tijn5rY5Cza2SNn2tmlZBraZXga2qYY2tvjpVrc43Oa3SX8Gt4n2RreZ9la3uOgGt/n2ZrgJ9na4OfaWuEn2hrhpZ3a4mPfWuKjupri45ja42famuVn2xrlpBCa5ifa2uen21rpJ9ua6qfb2urn3Brr59xa7Gfc2uyn3Jrs590a7SJo2u1kmlrt591a7qORWu7imtrvJ92a7+TYWvAmsprxYtCa8afd2vLn3hrzZXqa86WiGvSk8Vr0595a9SU5GvYlPlr25bRa9+femvrn3xr7J97a++ffmvzn31sCJ+BbA+OgWwRlq9sE5+CbBSfg2wXi0NsG5+EbCOfhmwkn4VsNJCFbDeVWGw4iWlsPpTDbECS82xBj2BsQouBbE6UxGxQjqxsVZ+IbFeKvmxaiZhsXZPwbF6fh2xfjV1sYJJybGKfiWxon5Fsap+KbHCRv2xyi4Jsc5+SbHqMiGx9i0Rsfp+QbIGfjmyCn4tsg5eAbIiSvmyMk9dsjZ+MbJCflGySn5Nsk4xCbJaJq2yZjblsmp+NbJufj2yhlnZsopHybKuWl2yun5xssZ+dbLOJzWy4laZsuZb7bLqfn2y7jqFsvI/AbL2fmGy+n55sv4mIbMGLtWzEn5VsxZ+abMmQ8mzKlJFszJTlbNOfl2zVlkBs15+ZbNmfomzbn6Bs3Z+bbOGWQWzilGds44uDbOWTRGzoko1s6p+jbO+foWzwkdds8Z+WbPOJam0Ll21tDJ+ubRKfrW0XkPRtGZ+qbRuXjG0ek7RtH5+kbSWSw20piWttKo1ebSufp20yj0ZtM5+sbTWfq202n6ZtOJ+pbTuKiG09n6htPpRobUGXrG1Ej/JtRZDzbVmftG1an7JtXJVsbWOfr21kn7FtZolZbWmNX21qmFFtbIpcbW6Vgm10l4Ftd4pDbXiQWm15n7NthZ+4bYiPwW2Ml09tjp+1bZOfsG2Vn7ZtmZfcbZuTk22ck8Btr4pVbbKJdG21n7xtuJ+/bbyXwW3Al4RtxZ/GbcafwG3Hn71ty5fSbcyfw23Rj2lt0p/FbdWfym3Yk5Ft2Z/Ibd6fwm3hkldt5J/Jbeafvm3on8Rt6p/LbeuI+m3sn8Ft7p/MbfGQW23zj35t9ZWjbfeNrG35n7lt+p/HbfuTWW4FkLRuB4qJbgiNz24Jj8JuCp+7bguPYW4TjGtuFZ+6bhmf0G4aj41uG4y4bh2f324fn9luIIuUbiGTbm4jn9RuJJ/dbiWIrW4miVFuKYm3biuf1m4skapuLZ/Nbi6fz24vjWBuOJ/gbjqf224+n9NuQ5/abkqWqW5Nn9huTp/cblaMzm5Yj8NuW5JYbl+f0m5nl05ua5/Vbm6fzm5vk5Jucp/Rbnaf125+mHBuf468boCWnm6Cn+FujJSsbo+f7W6QjLlulo+Abpif426cl61unY1hbp+f8G6iiOxupZ/ubqqf4m6vn+husp/qbraXbm63n+VuupNNbr2f527Cn+9uxJ/pbsWWxW7Jn+Ruy46gbsyf/G7Riopu05/mbtSf627Vn+xu3ZHqbt6R2G7sn/Ru75/6bvKf+G70k0hu9+BCbvif9W7+n/Zu/5/ebwGLmW8ClVlvBo69bwmNl28PmFJvEZ/ybxPgQW8UiYlvFZGGbyCUmW8iir9vI5f4byuWn28sktBvMZ/5bzKf+284kVFvPuBAbz+f929Bn/FvRYrBb1SMiW9Y4E5vW+BJb1yQ9m9fioNvZI+Bb2bgUm9t4EtvbpKqb2/gSG9wktdvdOBrb3jgRW964ERvfOBNb4DgR2+B4EZvguBMb4SQn2+G4ENvjuBPb5HgUG+XisBvoeBVb6PgVG+k4FZvquBZb7GTYm+z4FNvueBXb8CMg2/BkfdvwuBRb8OUWm/G4Fhv1OBdb9XgW2/Y4F5v2+Bhb9/gWm/gjYpv4ZRHb+Sft2/rl5Rv7OBcb+7gYG/vkfNv8eBfb/PgSm/26Ilv+uBkb/7gaHAB4GZwCeBicAvgY3AP4GdwEeBlcBWVbXAY4G1wGuBqcBvgaXAd4GxwHpPScB/gbnAmkpVwJ5HrcCyQo3Aw4G9wMuBxcD7gcHBMn/NwUeBycFiT5XBj4HNwa4nOcG+TlHBwikRweIuEcHyO3HB9jdBwiZhGcIqQhnCOiYpwkuB1cJngdHCs4HhwrZJZcK7ge3Cv4HZws+B6cLjgeXC5k19wuojXcMiX83DL4H1wz4lHcNnggHDd4H5w3+B8cPHgd3D5lkJw/eCCcQnggXEUiYtxGeCEcRqVsHEc4INxIZazcSaPxXE2kVJxPI/EcUmX+XFM4IpxTpD3cVXghnFW4ItxWYmMcWLgiXFklIFxZeCFcWbgiHFnj8ZxaZTPcWzgjHFujs9xfZD4cYTgj3GI4IdxioxGcY/gjXGUl29xleCQcZnqpHGfj25xqOCRcazgknGxlE1xueCUcb7glXHDlFJxyJOVccngl3HO4Jlx0JfTcdLglnHU4Jhx1YmNcdfgk3Hfmnpx4OCaceWRh3Hmjldx5+Cccezgm3HtkENx7pnXcfXgnXH54J9x++COcfzgnnH/4KByBpSacg3goXIQ4KJyG+CjcijgpHIqktxyLOCmci3gpXIw4KdyMuCocjWO3XI2lYNyOpbqcjvgqXI84KpyPZF1cj6OonI/4KtyQOCsckbgrXJHldBySJTFckvgrnJMlHZyUpKrcljgr3JZieVyW4uNcl2WxHJflrRyYYmycmKYU3JnlnFyaZWocnKQtXJ04LByeZPBcn2MoXJ+4LFygI3ScoHgs3KC4LJyh+C0cpLgtXKW4LZyoItdcqLgt3Kn4LhyrIyicq+UxnKy4Lpyto/zcrnguXLCi7Zyw+C7csTgvXLG4LxyzuC+ctCMz3LS4L9y14vnctmRX3LbjZ1y4ODBcuHgwnLi4MBy6Y7rcuyTxnLti7dy9+DEcviSS3L54MNy/JhUcv2UgnMK4MdzFuDJcxfgxnMbltJzHODIcx3gynMfl8JzJeDOcyngzXMqkpZzK5RMcy6Mo3Mv4MxzNODLczaXUHM3l1FzPuDPcz+JjnNEjZZzRY6Cc07g0HNP4NFzV+DTc2OPYnNo4NVzauDUc3Dg1nNyimxzdeDYc3jg13N64Npze+DZc4SMunOHl6ZziYvKc4uJpHOWi+hzqYrfc7KX5nOz4Nxzu+Dec8Dg33PCic9zyODbc8qOWHPNkr9zzuDdc97g4nPgjuxz5eDgc+qMXXPtlMdz7uDhc/Hg/HP44Odz/oy7dAOLhXQF4OR0BpeddAmXrnQikfR0JeDmdDLg6HQzl9R0NIvVdDWU+nQ2lGl0OuDpdD/g63RB4O50VeDqdFng7XRajOh0W4lsdFzg73RekJB0X+DsdGCX2nRj4PJ0ZOqidGng8HRq4PN0b+DldHDg8XRzjbp0duD0dH7g9XSDl550i+D2dJ7g93Si4ON0p+D4dLCKwnS9jqN0yuD5dM/g+nTU4Pt03IladODhQHTilVp04+FBdOaKonTn4UJ06eFDdO7hRHTw4UZ08eFHdPLhRXT2lXJ09+FJdPjhSHUD4Ut1BOFKdQXhTHUM4U11DeFPdQ7hTnURjZl1E+FRdRXhUHUYisN1GpBydRyTW3Ue4VJ1H5C2dSOOWXUliZl1JuFTdSiXcHUrleF1LOFUdTCTY3Uxl1J1Mo1idTOQXHU3kmp1OJmydTqSrHU7ieZ1POFVdUThVnVG4Vt1SeFZdUrhWHVLncB1TIpFdU3hV3VPiNh1UZSodVSUyHVZl691WuFcdVvhWnVcknt1XZCkdWCUqXVilUx1ZOFedWWXqnVmjGx1Z+FfdWnhXXVqlNR1a+FgdW3hYXVwiNl1c4/0dXThZnV24WN1d5PrdXjhYnV/i0V1guFpdYbhZHWH4WV1ieFodYrhZ3WLlUR1jpFhdY+RYHWRi151lOFqdZrha3Wd4Wx1o+FudaXhbXWriXV1seF2dbKU5nWz4XB1teFydbjhdHW5kF11vOF1db3hc3W+jr51wuFvdcPhcXXFlWF1x4/HdcrheHXN4Xd10uF5ddSOpHXVja112JOXddnhenXbksl13uF8deKXn3Xj4Xt16ZGJdfDhgnXy4YR18+GFdfSSc3X64YN1/OGAdf7hfXX/4X52AeGBdgnhiHYL4YZ2DeGHdh/hiXYg4Yt2IeGMdiLhjXYk4Y52J+GKdjDhkHY04Y92O+GRdkKXw3ZG4ZR2R+GSdkjhk3ZMiuB2Upb8dlaVyHZY4ZZ2XOGVdmHhl3Zi4Zh2Z+GcdmjhmXZp4Zp2auGbdmzhnXZw4Z52cuGfdnbhoHZ44aF2epStdnuTb3Z84aJ2fZSSdn6VU3aA4aN2g+GkdoSTSXaGikZ2h41jdojhpXaL4aZ2juGndpCOSHaT4al2luGodpnhqnaa4at2rpTndrDhrHa04a12t+qJdrjhrna54a92uuGwdr+OTXbC4bF2w5R1dsaWfnbIiW12yol2ds3hsnbS4bR21uGzdteTkHbbkLd23J9Ydt7htXbflr924eG2duOKxHbklNV25eG3dufhuHbq4bl27pbadvKW03b0krx2+JGKdvvhu3b+j4J3AY/IdwThvncH4b13COG8dwmU+3cLisV3DIyndxvhxHce4cF3H5BedyCWsHck4cB3JeHCdybhw3cp4b93N+HFdzjhxnc6kq13PIrhd0CShXdH4cd3WuHId1vhy3dhkId3Y5PCd2XhzHdmlnJ3aOHJd2vhynd54c93fuHOd3/hzXeL4dF3juHQd5Hh0nee4dR3oOHTd6WVy3esj3V3rZfEd7Dh1Xezk7V3tuHWd7nh13e74dt3vOHZd73h2ne/4dh3x+Hcd83h3XfX4d532uHfd9uWtXfc4eB34pbud+Ph4Xflkm1355SKd+mL6Xftklp37uHid++LuHfzkM53/OHjeAKNu3gM4eR4EuHleBSMpHgVjdN4IOHneCWTdXgmjdR4J4tteDKWQ3g0lGp4OpN2eD+Ne3hF4el4XY/JeGuXsHhsjWR4b4yleHKUoXh04et4fOHteIGM6XiG4ex4h5L0eIzh73iNilZ4juHqeJGU6HiTiU94lY3qeJeYcXia4e54o+HweKeVyXipkNd4quHyeK/h83i14fF4uopteLzh+Xi+4fh4wY6leMXh+njG4fV4yuH7eMvh9njQlNZ40eH0eNTh93ja4kF45+JAeOiWgXjs4fx474jpePTiQ3j94kJ5AY/KeQfiRHkOkWJ5EeJGeRLiRXkZ4kd5JuHmeSrh6Hkr4kl5LOJIeTqOpnk8l+d5Po7QeUDiSnlBjFZ5R4tfeUiLRnlJjoN5UJdTeVPiUHlV4k95VpFjeVfiTHla4k55XY9qeV6QX3lf4k15YOJLeWKUSXllj8t5aJVbeW2N1Xl3k5h5euJReX/iUnmA4mh5gYvWeYSYXHmFkVR5iuJTeY2J0HmOkvV5j5WfeZ3iVHmmi5p5p+JVeariV3mu4lh5sJRIebPiWXm54lp5uuJbeb2L13m+idF5v5PDecCPR3nBjoR5yeJcecuPSHnRich50pViedXiXXnYlOl535FkeeHiYHnj4mF55JSJeeaQYHnn4l556ZKBeeziX3nwj8x5+4jaegCLSHoI4mJ6C5L2eg3iY3oOkMV6FJareheVQnoY4mR6GeJlehqSdHocl8V6H+JneiDiZnouju16MeJpejKI7no34mx6O+JqejyJ0no9jG16PuJrej+NZXpAjZJ6QpXkekPibXpGlnN6SeJvek2Qz3pOiW56T4m4elCIqnpX4m56YeJwemLicXpjj/V6aeJyemuKbnpw4nR6dIyKenaLhnp54nV6eovzen3idnp/kPp6gZPLeoOQ3nqEjfN6iOJ3epKSgnqTkYt6leJ5epbie3qX4nh6mOJ6ep+MQXqp4nx6qoxFeq6Lh3qvl3F6sOJ+erbigHq6iU16v+KDesOKlnrE4oJ6xeKBesfihXrI4n16yuKGesuXp3rN4od6z+KIetKa8nrT4op61eKJetnii3ra4ox63Jezet3ijXrf6O164I/NeuHijnri4o964492euWTtnrm4pB66pJHeu3ikXrvklt68OKSevaLo3r4mV56+ZJ8evqOsXr/isZ7AuKTewTioHsG4pZ7CIuIewrilXsL4qJ7D+KUexGPznsY4ph7GeKZexuTSnse4pp7IIp9eyWQeXsmlYR7KOKceyyR5nsz4pd7NeKbezbinXs5jfl7ReKke0aVTXtIlKR7SZOZe0uL2HtM4qN7TeKhe0+Us3tQ4p57UZJ9e1KTm3tUk5p7Vo30e13itntl4qZ7Z+Koe2ziq3tu4qx7cOKpe3Hiqnt04qd7deKle3rin3uGlc17h4nTe4vis3uN4rB7j+K1e5LitHuUlJN7lZale5eOWnuY4q57meK3e5risnuc4rF7neKte5/ir3uhisd7qpJce62Q+3uxlKB7tOK8e7iUonvAkN97weK5e8SUzXvG4r17x5XRe8mSenvL4rh7zOK6e8/iu3vd4r574I7Ce+STxHvl4sN75uLCe+niv3vtmFV78+LIe/bizHv34sl8AOLFfAfixnwN4st8EeLAfBKZ03wT4sd8FOLBfBfiynwf4tB8IYrIfCPizXwn4s58KuLPfCvi0nw34tF8OJT0fD3i03w+l/p8P5XrfEDi2HxD4tV8TOLUfE2Q0HxP4td8UOLZfFTi1nxW4t18WOLafF/i23xg4sR8ZOLcfGXi3nxs4t98c5XEfHXi4Hx+luB8gYvMfIKMSHyD4uF8iZWyfIuQiHyNlq58kOLifJKXsXyVlJR8l5FlfJiUU3ybj2x8n4i+fKHi53yi4uV8pOLjfKWKn3ynj898qOLofKvi5nyt4uR8ruLsfLHi63yy4up8s+LpfLni7Xy94u58vpC4fMDi73zC4vF8xeLwfMqM0HzOkVd80uLzfNaTnHzY4vJ83OL0fN6Vs3zfkYx84I1mfOLi9Xznl8Z87+L3fPLi+Hz04vl89uL6fPiOhXz64vt8+4xufP6Lin0Ai0l9AuNAfQSW8X0FjWd9BuL8fQrjQ30LluR9DZRbfRCVUn0Uj4N9FeNCfReO0X0YjWh9GY6GfRqLiX0blbR9HONBfSCRZn0hlmF9Io31fSuOh30sktt9LuNGfS+X3X0wjdd9MuNHfTOQYX0140l9OY/QfTqNrn0/40h9Qo9JfUOMvH1EkWd9ReNEfUbjSn1L40V9TIxvfU7jTX1P41F9UIyLfVbjTH1b41V9Xo1pfWGXjX1iiLp9Y+NSfWaLi31o4099buNQfXGTnX1y4059c+NLfXWKR312kOJ9eYymfX3jV32J41R9j+NWfZPjU32ZjHB9mpGxfZvjWH2ckY59n+NlfaLjYX2j41t9q+NffayO+H2tiNt9ruNafa/jYn2w42Z9sY1qfbKW1H20ktR9teNcfbjjZH2641l9u5Jdfb3jXn2+iLt9v5bIfcfjXX3Ki9l9y5Tqfc+RjX3Rl8590o+PfdXjjn3Y42d92pD8fdzjY33d42h93uNqfeCS933h42195ONpfeiV0n3pisl97JbJfe+I3H3y42x99Jf7ffvja34BiY9+BJPqfgXjbn4J43V+CuNvfgvjdn4S43J+G5Sbfh6OyH4f43R+IeNxfiLjd34j43B+Jo9jfiuWRH4uj2t+MeNzfjLjgH4143t+N+N+fjnjfH4644F+O+N6fj3jYH4+kNF+QZTJfkPjfX5G43h+SpFAfkuMcX5Nj0p+VJBEflWRVX5W44R+WeOGflrjh35d44N+XuOFfmbjeX5n44J+aeOKfmrjiX5tlpp+cIxKfnnjiH5744x+fOOLfn3jj35/45F+go5bfoPjjX6I45J+ieOTfozjlH6O45p+j5NafpDjln6S45V+k+OXfpTjmH6W45l+m+ObfpzjnH82isp/OOOdfzrjnn9F459/TOOgf03joX9O46J/UOOjf1HjpH9U46Z/VeOlf1jjp39f46h/YOOpf2fjrH9o46p/aeOrf2qN339rjHJ/bpJ1f3CUsX9yj5B/dZRsf3eU6394461/eZzrf4Ljrn+D47B/hZeFf4bjr3+H47J/iOOxf4qXcn+M47N/jpT8f5TjtH+a47d/neO2f57jtX+j47h/pIxRf6iRQX+pi2B/ruO8f6/juX+y47p/tuO9f7jjvn+547t/vYlIf8GJpX/F48B/xuPBf8rjwn/Ml4J/0o9Lf9TjxH/V48N/4JCJf+HjxX/m48Z/6ePHf+uK43/wist/8+PIf/njyX/7lnx//JeDgACXc4ABmFaAA41sgATjzIAFjtKABuPLgAvjzYAMjqeAEJHPgBLjzoAVjWuAF5bVgBjjz4AZ49CAHOPRgCHj0oAo49OAM46ogDaW64A749WAPZJegD/j1IBG49eASuPWgFLj2IBWkLmAWOPZgFrj2oBelbeAX+PbgGGRj4Bi49yAaOPdgG+X/IBw4+CAcuPfgHPj3oB0kq6AduPhgHeQRYB54+KAfePjgH6YV4B/4+SAhOPlgIXj54CG4+aAh5SjgImT94CLmF2AjJSngJPj6YCWj9GAmJVJgJrj6oCb4+iAnYrMgKGM0oCijoiApZTsgKmMqICqlmKArOPtgK3j64CvjW2AsY1ugLKI54C0jeaAupR4gMOI3YDE4/KAxpJfgMyUd4DOkdmA1uP0gNnj8IDa4/OA2+PugN3j8YDelkWA4YzTgOSI+4Dl4++A7+P2gPHj94D0k7eA+Iu5gPzkRYD9lFyBAo6JgQWLuoEGkMaBB5hlgQiWrIEJ4/WBCpDSgRqLcoEb4/iBI+P6gSnj+YEv4/uBMZJFgTOUXYE5kq+BPuRCgUbkQYFL4/yBTpB0gVCVhYFR5ESBU+RDgVSNb4FVmHKBX+RUgWXkSIFm5EmBa47ugW7kR4FwjZiBceRGgXTkSoF4krCBeZWggXqRQoF/kdqBgOROgYLkT4GD5EuBiORMgYrkTYGPjXCBk+RVgZXkUYGalYaBnJaMgZ2VR4Gg5FCBo+RTgaTkUoGolmOBqeRWgbDkV4GzkVaBteRYgbjkWoG65F6BveRbgb7kWYG/lF6BwORcgcLkXYHGibCByORkgcnkX4HN5GCB0eRhgdORn4HY5GOB2eRigdrkZYHf5GaB4ORngeOQYoHlieeB5+RogeiX1YHqjqmB7Y9MgfOOioH0knaB+uRpgfvkaoH8iVCB/uRrggHkbIIC5G2CBeRuggfkb4IIi7uCCZ2oggrkcIIMkOOCDeRxgg6OyYIQ5HKCEpiughbkc4IXldyCGIraghuRQ4Icj3eCHpWRgh+PTYIp5HSCKo1xgivkdYIslMqCLuSEgjPkd4I1kceCNpSVgjeMvYI45HaCOZFEgkDkeIJHkviCWOR6glnkeYJa5HyCXeR7gl/kfYJi5ICCZOR+gmaKzYJo5IGCauSCgmvkg4Juja+Cb5fHgnHkhYJykEaCdomQgnfkhoJ45IeCfuSIgouI8IKN5ImCkuSKgpmVh4KdjsWCn+SMgqWKSIKmiLCCq+SLgqzkjoKtlG2Cr5BjgrGJ1IKzlkaCuIx8grmL2oK75I2CvYnogsWKoYLRiZGC0uSSgtOX6ILUkduC15VjgtnknoLbidWC3OScgt7kmoLf5JGC4eSPguPkkILljuGC5ovqgueSl4Lrk8+C8YlwgvPklIL05JOC+eSZgvrklYL75JiDApbOgwPkl4MEidaDBYqdgwbkm4MJ5J2DDoxzgxbkoYMX5KqDGOSrgxyIqYMj5LKDKIjvgyvkqYMv5KiDMeSjgzLkooM05KCDNeSfgzaSg4M4kfmDOeSlg0DkpINF5KeDSZGQg0qMdINPiWCDUOSmg1KNcoNYkZGDc+S4g3XkuYN3ideDe4msg3zktoOF5KyDh+S0g4nku4OK5LWDjuSzg5PkloOW5LGDmuStg56KzoOf5K+DoOS6g6LksIOo5LyDquSug6uUnIOxl4mDteS3g73kzYPB5MWDxZCbg8qLZYPMi9uDzuTAg9OJ2YPWj9KD2OTDg9yN2IPfk3CD4OTIg+mV7IPr5L+D74nYg/CM1IPxlUiD8uTJg/TkvYP35MaD++TQg/3kwYQD5MKEBJO4hAfkx4QL5MSEDJZHhA3kyoQOiN6EE+S+hCDkzIQi5MuEKZSLhCrk0oQs5N2EMYqehDXk4IQ45M6EPOTThD2XjoRG5NyESZd0hE6XqIRXkpiEW4qLhGGVkoRi5OKEY5OfhGaIr4Rp5NuEa+TXhGyRkoRt5NGEbuTZhG/k3oRxlEuEdYiohHfk1oR55N+EepWYhILk2oSE5NWEi4/ThJCPToSUjqqEmZbWhJyVZoSf5OWEoeTuhK3k2ISyipeEuI/2hLnk44S75OiEvJGThL/k5ITB5OuExJJ+hMbk7ITJl3WEyuThhMuKV4TN5OeE0OTqhNGWqoTW5O2E2eTmhNrk6YTslkiE7phAhPTk8YT85PiE/+TwhQCOwYUG5M+FEZXMhROWoIUU5PeFFeT2hRfk8oUY5POFGolVhR/k9YUh5O+FJpLThSzk9IUtiPyFNZGghT2VwYVA5PmFQeVAhUOU14VI5PyFSY/UhUqOx4VL5UKFTou8hVXlQ4VXlZmFWOT7hVrk1IVj5PqFaJhuhWmToIVqlZOFbeVKhXflUIV+5VGFgOVEhYSUloWH5U6FiOVGhYrlSIWQ5VKFkeVHhZTlS4WXiZKFmZPjhZvlTIWc5U+FpOVFhaaRRYWo5UmFqY5GhaqQZIWrjE+FrJbyha6W94Wvj5KFueVWhbrlVIXBmG2FyeVThc2XlYXP5VWF0OVXhdXlWIXc5VuF3eVZheSToYXl5VqF6ZTLherlTYX3j5OF+eVchfrlYYX7kZSF/uVghgLlQYYG5WKGB5FohgrlXYYL5V+GE+VehhafUIYXn0GGGuVkhiLlY4Ytl5aGL+G6hjDlZYY/5WaGTeVnhk6M1YZQi3OGVOVphlWZfIZai5WGXJe4hl6L8YZf5WqGZ+VrhmuSjoZx5WyGeZP4hnuIuIaKieGGi+VxhozlcoaT5W2GlY5chqPlboaklGGGqeVvhqrlcIar5XqGr+V0hrDld4a25XOGxOV1hsbldobHjtaGyeV4hsuSYIbNjHWGzophhtTle4bZil6G2+WBht7lfIbf5YCG5JS4hunlfYbs5X6G7ZVnhu6U2Ibv5YKG+JH7hvnljIb75YiG/onphwDlhocClkmHA+WHhwblhIcI5YWHCeWKhwrljYcN5YuHEeWJhxLlg4cYkneHGuWUhxyWqIcl5ZKHKeWThzTljoc35ZCHO+WRhz/lj4dJkOSHS5hYh0zlmIdO5ZmHU+Wfh1WQSYdX5ZuHWeWeh1/llodg5ZWHY+Wgh2aJ2odo5ZyHauWhh27lnYd05ZqHdpKxh3jll4d/lIiHguWlh42XWoef5aSHouWjh6vlrIev5aaHs+Wuh7qXhoe75bGHveWoh8DlqYfE5a2HxuWwh8flr4fL5aeH0OWqh9Llu4fg5bSH7+Wyh/Lls4f25biH9+W5h/mKSYf7i2GH/uW3iAXloogN5baIDuW6iA/ltYgR5byIFeW+iBblvYgh5cCIIuW/iCPleYgn5cSIMeXBiDblwog55cOIO+XFiECMjIhC5ceIROXGiEaPT4hMjXOITZ+liFLlyIhTj3CIV4pYiFnlyYhbiXGIXY/ViF7lyohhjXSIYuXLiGOI34holVyIa+XMiHCQiohy5dOIdeXQiHeSj4h95dGIfuXOiH+L3IiB5c2IguXUiIiMVYiLkdyIjeXaiJLl1oiWkbOIl+XViJnl2Iie5c+IouXZiKTl24irlO2IruXX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ljKWaJY7kWqWP4iilkCRyZZC6JiWRJWNlkvom5ZM6JmWTY1+lk/ompZQjMCWW5XDllzonZZd6J+WXuiell/ooJZiiUCWY5B3lmSPnJZliteWZuihlmqUhpZs6KOWcIlBlnLoopZzksKWdZfLlnaTqZZ36JyWeJeklnqMr5Z9l3qWhYv3loaXspaIjEeWipHglovkQJaN6KSWjopLlo+Qj5aUinWWleimlpfop5aY6KWWmYyElpuN25acj+GWoIlClqOX15an6KmWqOeslqroqJaw6KyWseiqlrLoq5a06K2WtuiulreX6pa46K+WueiwlruQx5a8lLmWwJCdlsGK5ZbEl1mWxYnrlsaPV5bHjNmWyeizlsvospbMjpOWzei0ls7osZbRjkeW1ei4ltblq5bZmdSW25CXltzotpbil6OW45PvluiJSpbqkOGW6460lvCVtZbyiV+W9pfrlveXi5b56LmW+5NklwCO+ZcE6LqXBui7lweQa5cI6LyXCpfslw3ot5cO6L6XD+jAlxHov5cT6L2XFujBlxnowpcckZqXHonglyTow5cnlraXKujElzDoxZcymEmXOJ5Qlznoxpc96MeXPujIl0LozJdE6MmXRujKl0joy5dJ6M2XUpDCl1aW9ZdZkMOXXOjOl16U8Zdg6M+XYepyl2KWypdk6NCXZujRl2jo0pdpinaXa+jUl22QeJdx6NWXdIxDl3no1pd66NqXfOjYl4Ho2ZeEipOXhejXl4bo25eL6NyXjYjGl4/o3ZeQ6N6XmI/il5zo35egi2aXo+jil6bo4Zeo6OCXq+aRl62V2pez6OOXtOjkl8Po5ZfG6OaXyOjnl8vo6JfTitiX3Ojpl+3o6pfulEKX8ujsl/OJuZf16O+X9ujul/uJQ5f/i7+YAZXFmAKSuJgDjaCYBY2AmAaPh5gIkHuYDOjxmA/o8JgQl2GYEYrmmBKU0JgTk9qYF5CcmBiXzJgajHqYIej0mCTo85gslmqYLZOqmDSJb5g36PWYOOjymDuVcJg8l4qYPej2mEbo95hL6PmYTJHomE2KephOinuYT+j4mFSK55hVjLCYWIromFuTXphel96YZ4zamGvo+phv6PuYcOj8mHHpQJhz6UKYdOlBmKiVl5iq6UOYr+lEmLHpRZi26UaYw+lImMTpR5jG6UmY25TymNzjypjfkEiY4otRmOnpSpjr6UuY7ZmqmO6fWpjvlNGY8oj5mPSIuZj8jpSY/ZZPmP6P/JkD6UyZBZbdmQnpTZkKl3uZDIlhmRCOYJkS6U6ZE4nsmRTpT5kY6VCZHelSmR7pU5kg6VWZIelRmSTpVJkoitmZLOlWmS7pV5k96ViZPulZmULpWplF6VyZSelbmUvpXplM6WGZUOldmVHpX5lS6WCZVelimVeLwJmWjvGZl+ljmZjpZJmZjYGZpellmaiKXZmslG6Zrelmma7pZ5mzknmZtJPpmbzpaJnBlJ2ZxJHKmcWJd5nGi+yZyIvtmdCSk5nR6W2Z0ovumdWJ7ZnY6WyZ2+lqmd3pa5nf6WmZ4ul3me3pbpnu6W+Z8elwmfLpcZn46XOZ++lymf+PeJoB6XSaBel2mg6LUpoP6XWaEpGbmhOMsZoZ6XiaKJHLmivpeZowk6uaN+l6mj7pgJpA6X2aQul8mkPpfppF6XuaTemCmlXpgZpX6YSaWovBmlvpg5pf6YWaYumGmmTpiJpl6YeaaemJmmrpi5pr6YqaqI2cmq3pjJqw6Y2auIpbmrzpjprA6Y+axJCRms/pkJrR6ZGa0+mSmtTpk5rYjYKa3umUmt/plZri6Zaa4+mXmubpmJrqlK+a6+mamu2VRZru6Zua7+mZmvHpnZr06Zya9+memvvpn5sG6aCbGOmhmxrpopsf6aObIumkmyPppZsl6aabJ+mnmyjpqJsp6ambKumqmy7pq5sv6aybMZ9UmzLprZs74vabPItTm0GKQJtCjbCbQ+mvm0TprptFlqObTemxm07psptP6bCbUemzm1SWgptY6bSbWoubm2+YRJt06bWbg+m3m46IvJuR6bibkpWpm5PptpuW6bmbl+m6m5/pu5ug6bybqOm9m6qWjpurjkybrY34m66RTpu06b6buenBm8Dpv5vG6cKbyYzvm8rpwJvP6cOb0enEm9LpxZvU6cmb1o5Jm9uR4pvh6cqb4unHm+Ppxpvk6cib6Ix+m/Dpzpvx6c2b8unMm/WIsZwE6dicBunUnAjp1ZwJ6dGcCunXnAzp05wNioKcEJhrnBLp1pwT6dKcFOnQnBXpz5wb6dqcIendnCTp3Jwl6ducLZVonC7p2ZwviPGcMOnenDLp4Jw5io+cOunLnDuJVpw+6eKcRunhnEfp35xIkkycUpaQnFeX2Jxa6eOcYOnknGfp5Zx26eaceOnnnOWSuZzn6eic6ZS1nOvp7Zzs6emc8OnqnPOWUJz0lsKc9pPOnQPp7p0G6e+dB5O8nQjp7J0J6eudDomonRLp950V6fadG4mVnR/p9J0j6fOdJunxnSiKm50q6fCdK46wnSyJp507jYOdPun6nT/p+Z1B6fidROn1nUbp+51I6fydUOpEnVHqQ51Z6kWdXIlMnV3qQJ1e6kGdYI2UnWGWt51k6kKdbJZRnW/qSp1y6kadeupLnYfqSJ2J6kedj4x7nZrqTJ2k6k2dqepOnavqSZ2v6fKdsupPnbSS35246lOduupUnbvqUp3B6lGdwupXncTqUJ3G6lWdz+pWndPqWZ3Z6lid5upbne3qXJ3v6l2d8phonfjqWp35kemd+o3rnf3qXp4a6l+eG+pgnh7qYZ516mKeeIyynnnqY5596mSef46tnoHqZZ6I6maei+pnnozqaJ6R6muekuppnpOYW56V6mqel5ftnp3qbJ6fl9mepeptnqaUnp6p6m6equpwnq3qcZ646m+euY2NnrqWy567loOevJv1nr6fgJ6/lpuexImpnszqc57Ni2+ezup0ns/qdZ7Q6nae0o2VntTqd57Y4NKe2ZbZntuR4Z7c6nie3ep6nt7qeZ7g6nue5ep8nujqfZ7v6n6e9OqAnvbqgZ736oKe+eqDnvvqhJ786oWe/eqGnwfqh58I6oifDpNDnxOM258V6oqfIJFsnyHqi58s6oyfO5VAnz7qjZ9K6o6fS+JWn07m2J9P6OufUuqPn1TqkJ9f6pKfYOqTn2HqlJ9il+6fY+qRn2bqlZ9n6pafauqYn2zql59y6pqfduqbn3fqmZ+Nl7Sfleqcn5zqnZ+d4nOfoOqe/wGBSf8DgZT/BIGQ/wWBk/8GgZX/CIFp/wmBav8KgZb/C4F7/wyBQ/8OgUT/D4Fe/xCCT/8RglD/EoJR/xOCUv8UglP/FYJU/xaCVf8Xglb/GIJX/xmCWP8agUb/G4FH/xyBg/8dgYH/HoGE/x+BSP8ggZf/IYJg/yKCYf8jgmL/JIJj/yWCZP8mgmX/J4Jm/yiCZ/8pgmj/KoJp/yuCav8sgmv/LYJs/y6Cbf8vgm7/MIJv/zGCcP8ygnH/M4Jy/zSCc/81gnT/NoJ1/zeCdv84gnf/OYJ4/zqCef87gW3/PIFf/z2Bbv8+gU//P4FR/0CBTf9BgoH/QoKC/0OCg/9EgoT/RYKF/0aChv9Hgof/SIKI/0mCif9Kgor/S4KL/0yCjP9Ngo3/ToKO/0+Cj/9QgpD/UYKR/1KCkv9TgpP/VIKU/1WClf9Wgpb/V4KX/1iCmP9Zgpn/WoKa/1uBb/9cgWL/XYFw/2EAof9iAKL/YwCj/2QApP9lAKX/ZgCm/2cAp/9oAKj/aQCp/2oAqv9rAKv/bACs/20Arf9uAK7/bwCv/3AAsP9xALH/cgCy/3MAs/90ALT/dQC1/3YAtv93ALf/eAC4/3kAuf96ALr/ewC7/3wAvP99AL3/fgC+/38Av/+AAMD/gQDB/4IAwv+DAMP/hADE/4UAxf+GAMb/hwDH/4gAyP+JAMn/igDK/4sAy/+MAMz/jQDN/44Azv+PAM//kADQ/5EA0f+SANL/kwDT/5QA1P+VANX/lgDW/5cA1/+YANj/mQDZ/5oA2v+bANv/nADc/50A3f+eAN7/nwDf/+OBUP/lgY8=",7070);const oe={shape:z.square,qrOptions:{typeNumber:f[0],mode:void 0,errorCorrectionLevel:b.Q},imageOptions:{mode:F.center,imageSize:.4,crossOrigin:void 0,margin:0},cornersSquareOptions:{type:N.rounded,color:"#000000"},cornersDotOptions:{type:X.dot,color:"#000000"},dotsOptions:{type:G.verticalLine,color:"#000000",size:10},backgroundOptions:{color:"#FFFFFF"},borderOptions:{decorations:{}}},re={...oe,shape:z.square,cornersSquareOptions:{type:N.square},cornersDotOptions:{type:X.square},dotsOptions:{type:G.square}},ne={...oe,shape:z.square,cornersSquareOptions:{type:N.rounded},cornersDotOptions:{type:X.rounded},dotsOptions:{type:G.verticalLine,size:10}},se={...oe,dotsOptions:{...oe.dotsOptions,type:G.rounded},cornersSquareOptions:{type:N.dot},cornersDotOptions:{type:X.dot}},ie={...oe,dotsOptions:{...oe.dotsOptions,type:G.dot},cornersSquareOptions:{type:N.dot},cornersDotOptions:{type:X.dot}},ae={...oe,dotsOptions:{...oe.dotsOptions,type:G.classy},cornersSquareOptions:{type:N.classy},cornersDotOptions:{type:X.classy}},de={...oe,dotsOptions:{...oe.dotsOptions,type:G.extraRounded},cornersSquareOptions:{...oe.cornersSquareOptions,type:N.square},cornersDotOptions:{...oe.cornersDotOptions,type:X.square}},le={...oe,dotsOptions:{...oe.dotsOptions,type:G.verticalLine},cornersSquareOptions:{...oe.cornersSquareOptions,type:N.classy},cornersDotOptions:{...oe.cornersDotOptions,type:X.classy}},ce={...oe,dotsOptions:{...oe.dotsOptions,type:G.horizontalLine},cornersSquareOptions:{...oe.cornersSquareOptions,type:N.rounded},cornersDotOptions:{...oe.cornersDotOptions,type:X.rounded}},ue={...oe,dotsOptions:{...oe.dotsOptions,type:G.classyRounded},cornersSquareOptions:{...oe.cornersSquareOptions,type:N.outpoint},cornersDotOptions:{...oe.cornersDotOptions,type:X.outpoint}},pe={...oe,dotsOptions:{...oe.dotsOptions,type:G.smallSquare},cornersSquareOptions:{...oe.cornersSquareOptions,type:N.inpoint},cornersDotOptions:{...oe.cornersDotOptions,type:X.inpoint}},he={...oe,dotsOptions:{...oe.dotsOptions,type:G.tinySquare},cornersSquareOptions:{...oe.cornersSquareOptions,type:N.square},cornersDotOptions:{...oe.cornersDotOptions,type:X.heart}},me={...oe,dotsOptions:{...oe.dotsOptions,type:G.star},cornersSquareOptions:{...oe.cornersSquareOptions,type:N.classy},cornersDotOptions:{...oe.cornersDotOptions,type:X.classy}},ge={...oe,dotsOptions:{...oe.dotsOptions,type:G.plus},cornersSquareOptions:{...oe.cornersSquareOptions,type:N.rounded},cornersDotOptions:{...oe.cornersDotOptions,type:X.rounded}},fe={...oe,dotsOptions:{...oe.dotsOptions,type:G.diamond},cornersSquareOptions:{...oe.cornersSquareOptions,type:N.square},cornersDotOptions:{...oe.cornersDotOptions,type:X.square}},be={...oe,dotsOptions:{...oe.dotsOptions,type:G.randomDot},cornersSquareOptions:{...oe.cornersSquareOptions,type:N.dot},cornersDotOptions:{...oe.cornersDotOptions,type:X.dot}},ye={...oe,dotsOptions:{...oe.dotsOptions,type:G.dot},cornersSquareOptions:{...oe.cornersSquareOptions,type:N.outpoint},cornersDotOptions:{...oe.cornersDotOptions,type:X.outpoint}},Oe={...oe,dotsOptions:{...oe.dotsOptions,type:G.dot},cornersSquareOptions:{...oe.cornersSquareOptions,type:N.inpoint},cornersDotOptions:{...oe.cornersDotOptions,type:X.inpoint}},Se={...oe,dotsOptions:{...oe.dotsOptions,type:G.rounded},cornersSquareOptions:{...oe.cornersSquareOptions,type:N.outpoint},cornersDotOptions:{...oe.cornersDotOptions,type:X.outpoint}},Ce={...oe,dotsOptions:{...oe.dotsOptions,type:G.rounded},cornersSquareOptions:{...oe.cornersSquareOptions,type:N.inpoint},cornersDotOptions:{...oe.cornersDotOptions,type:X.inpoint}},ke={...oe,dotsOptions:{...oe.dotsOptions,type:G.classy},cornersSquareOptions:{...oe.cornersSquareOptions,type:N.outpoint},cornersDotOptions:{...oe.cornersDotOptions,type:X.outpoint}},we={...oe,dotsOptions:{...oe.dotsOptions,type:G.classy},cornersSquareOptions:{...oe.cornersSquareOptions,type:N.inpoint},cornersDotOptions:{...oe.cornersDotOptions,type:X.inpoint}},Ae={...oe,dotsOptions:{...oe.dotsOptions,type:G.square},cornersSquareOptions:{...oe.cornersSquareOptions,type:N.outpoint},cornersDotOptions:{...oe.cornersDotOptions,type:X.outpoint}},Te={...oe,dotsOptions:{...oe.dotsOptions,type:G.square},cornersSquareOptions:{...oe.cornersSquareOptions,type:N.inpoint},cornersDotOptions:{...oe.cornersDotOptions,type:X.inpoint}},ve={...oe,shape:z.circle,dotsOptions:{...oe.dotsOptions,type:G.rounded},cornersSquareOptions:{...oe.cornersSquareOptions,type:N.rounded},cornersDotOptions:{...oe.cornersDotOptions,type:X.rounded}},qe={...oe,dotsOptions:{...oe.dotsOptions,type:G.dot},cornersSquareOptions:{...oe.cornersSquareOptions,type:N.square},cornersDotOptions:{...oe.cornersDotOptions,type:X.square}},De={...oe,dotsOptions:{...oe.dotsOptions,type:G.dot},cornersSquareOptions:{...oe.cornersSquareOptions,type:N.rounded},cornersDotOptions:{...oe.cornersDotOptions,type:X.rounded}},Ie={...oe,dotsOptions:{...oe.dotsOptions,type:G.dot},cornersSquareOptions:{...oe.cornersSquareOptions,type:N.classy},cornersDotOptions:{...oe.cornersDotOptions,type:X.classy}},Ze={...oe,dotsOptions:{...oe.dotsOptions,type:G.rounded},cornersSquareOptions:{...oe.cornersSquareOptions,type:N.square},cornersDotOptions:{...oe.cornersDotOptions,type:X.square}},We={...oe,dotsOptions:{...oe.dotsOptions,type:G.rounded},cornersSquareOptions:{...oe.cornersSquareOptions,type:N.classy},cornersDotOptions:{...oe.cornersDotOptions,type:X.classy}},Re={...oe,dotsOptions:{...oe.dotsOptions,type:G.classy},cornersSquareOptions:{...oe.cornersSquareOptions,type:N.square},cornersDotOptions:{...oe.cornersDotOptions,type:X.square}},Ve={...oe,dotsOptions:{...oe.dotsOptions,type:G.classy},cornersSquareOptions:{...oe.cornersSquareOptions,type:N.rounded},cornersDotOptions:{...oe.cornersDotOptions,type:X.rounded}},Ee={...oe,dotsOptions:{...oe.dotsOptions,type:G.square},cornersSquareOptions:{...oe.cornersSquareOptions,type:N.dot},cornersDotOptions:{...oe.cornersDotOptions,type:X.dot}},je={...oe,dotsOptions:{...oe.dotsOptions,type:G.square},cornersSquareOptions:{...oe.cornersSquareOptions,type:N.rounded},cornersDotOptions:{...oe.cornersDotOptions,type:X.rounded}},xe={...oe,dotsOptions:{...oe.dotsOptions,type:G.square},cornersSquareOptions:{...oe.cornersSquareOptions,type:N.classy},cornersDotOptions:{...oe.cornersDotOptions,type:X.classy}},Be={...oe,dotsOptions:{...oe.dotsOptions,type:G.extraRounded},cornersSquareOptions:{...oe.cornersSquareOptions,type:N.dot},cornersDotOptions:{...oe.cornersDotOptions,type:X.dot}},Je={...oe,dotsOptions:{...oe.dotsOptions,type:G.extraRounded},cornersSquareOptions:{...oe.cornersSquareOptions,type:N.classy},cornersDotOptions:{...oe.cornersDotOptions,type:X.classy}},Ye={...oe,dotsOptions:{...oe.dotsOptions,type:G.classyRounded},cornersSquareOptions:{...oe.cornersSquareOptions,type:N.dot},cornersDotOptions:{...oe.cornersDotOptions,type:X.dot}},Me={...oe,dotsOptions:{...oe.dotsOptions,type:G.classyRounded},cornersSquareOptions:{...oe.cornersSquareOptions,type:N.square},cornersDotOptions:{...oe.cornersDotOptions,type:X.square}},Le={...oe,dotsOptions:{...oe.dotsOptions,type:G.verticalLine},cornersSquareOptions:{...oe.cornersSquareOptions,type:N.square},cornersDotOptions:{...oe.cornersDotOptions,type:X.square}},Pe={...oe,dotsOptions:{...oe.dotsOptions,type:G.horizontalLine},cornersSquareOptions:{...oe.cornersSquareOptions,type:N.square},cornersDotOptions:{...oe.cornersDotOptions,type:X.square}},Ge={...oe,dotsOptions:{...oe.dotsOptions,type:G.horizontalLine},cornersSquareOptions:{...oe.cornersSquareOptions,type:N.classy},cornersDotOptions:{...oe.cornersDotOptions,type:X.classy}},Xe={...oe,dotsOptions:{...oe.dotsOptions,type:G.smallSquare},cornersSquareOptions:{...oe.cornersSquareOptions,type:N.dot},cornersDotOptions:{...oe.cornersDotOptions,type:X.dot}},Ne={...oe,dotsOptions:{...oe.dotsOptions,type:G.smallSquare},cornersSquareOptions:{...oe.cornersSquareOptions,type:N.rounded},cornersDotOptions:{...oe.cornersDotOptions,type:X.rounded}},ze={...oe,dotsOptions:{...oe.dotsOptions,type:G.tinySquare},cornersSquareOptions:{...oe.cornersSquareOptions,type:N.dot},cornersDotOptions:{...oe.cornersDotOptions,type:X.dot}},Fe={...oe,dotsOptions:{...oe.dotsOptions,type:G.tinySquare},cornersSquareOptions:{...oe.cornersSquareOptions,type:N.square},cornersDotOptions:{...oe.cornersDotOptions,type:X.square}},Ue={...oe,dotsOptions:{...oe.dotsOptions,type:G.star},cornersSquareOptions:{...oe.cornersSquareOptions,type:N.dot},cornersDotOptions:{...oe.cornersDotOptions,type:X.dot}},Ke={...oe,dotsOptions:{...oe.dotsOptions,type:G.star},cornersSquareOptions:{...oe.cornersSquareOptions,type:N.square},cornersDotOptions:{...oe.cornersDotOptions,type:X.square}},He={...oe,dotsOptions:{...oe.dotsOptions,type:G.plus},cornersSquareOptions:{...oe.cornersSquareOptions,type:N.dot},cornersDotOptions:{...oe.cornersDotOptions,type:X.dot}},_e={...oe,dotsOptions:{...oe.dotsOptions,type:G.plus},cornersSquareOptions:{...oe.cornersSquareOptions,type:N.square},cornersDotOptions:{...oe.cornersDotOptions,type:X.square}},Qe={...oe,dotsOptions:{...oe.dotsOptions,type:G.diamond},cornersSquareOptions:{...oe.cornersSquareOptions,type:N.dot},cornersDotOptions:{...oe.cornersDotOptions,type:X.dot}},$e={...oe,dotsOptions:{...oe.dotsOptions,type:G.diamond},cornersSquareOptions:{...oe.cornersSquareOptions,type:N.classy},cornersDotOptions:{...oe.cornersDotOptions,type:X.classy}},et={...oe,dotsOptions:{...oe.dotsOptions,type:G.randomDot},cornersSquareOptions:{...oe.cornersSquareOptions,type:N.square},cornersDotOptions:{...oe.cornersDotOptions,type:X.square}},tt={...oe,dotsOptions:{...oe.dotsOptions,type:G.randomDot},cornersSquareOptions:{...oe.cornersSquareOptions,type:N.classy},cornersDotOptions:{...oe.cornersDotOptions,type:X.classy}},ot={...oe,dotsOptions:{...oe.dotsOptions,type:G.dot},cornersSquareOptions:{...oe.cornersSquareOptions,type:N.square},cornersDotOptions:{...oe.cornersDotOptions,type:X.dot}},rt={...oe,dotsOptions:{...oe.dotsOptions,type:G.dot},cornersSquareOptions:{...oe.cornersSquareOptions,type:N.dot},cornersDotOptions:{...oe.cornersDotOptions,type:X.square}},nt={...oe,dotsOptions:{...oe.dotsOptions,type:G.rounded},cornersSquareOptions:{...oe.cornersSquareOptions,type:N.square},cornersDotOptions:{...oe.cornersDotOptions,type:X.dot}},st={...oe,dotsOptions:{...oe.dotsOptions,type:G.rounded},cornersSquareOptions:{...oe.cornersSquareOptions,type:N.outpoint},cornersDotOptions:{...oe.cornersDotOptions,type:X.rounded}},it={...oe,dotsOptions:{...oe.dotsOptions,type:G.classy},cornersSquareOptions:{...oe.cornersSquareOptions,type:N.square},cornersDotOptions:{...oe.cornersDotOptions,type:X.dot}},at={...oe,dotsOptions:{...oe.dotsOptions,type:G.classy},cornersSquareOptions:{...oe.cornersSquareOptions,type:N.dot},cornersDotOptions:{...oe.cornersDotOptions,type:X.square}},dt={...oe,dotsOptions:{...oe.dotsOptions,type:G.square},cornersSquareOptions:{...oe.cornersSquareOptions,type:N.rounded},cornersDotOptions:{...oe.cornersDotOptions,type:X.dot}},lt={...oe,dotsOptions:{...oe.dotsOptions,type:G.square},cornersSquareOptions:{...oe.cornersSquareOptions,type:N.dot},cornersDotOptions:{...oe.cornersDotOptions,type:X.rounded}},ct={...oe,dotsOptions:{...oe.dotsOptions,type:G.dot},cornersSquareOptions:{...oe.cornersSquareOptions,type:N.classy},cornersDotOptions:{...oe.cornersDotOptions,type:X.dot}},ut={...oe,dotsOptions:{...oe.dotsOptions,type:G.dot},cornersSquareOptions:{...oe.cornersSquareOptions,type:N.dot},cornersDotOptions:{...oe.cornersDotOptions,type:X.classy}},pt={...re,shape:z.circle},ht={...oe,shape:z.circle},mt={...se,shape:z.circle},gt={...ie,shape:z.circle},ft={...ae,shape:z.circle},bt={...de,shape:z.circle},yt={...le,shape:z.circle},Ot={...ce,shape:z.circle},St={...ue,shape:z.circle},Ct={...pe,shape:z.circle},kt={...he,shape:z.circle},wt={...me,shape:z.circle},At={...ge,shape:z.circle},Tt={...fe,shape:z.circle},vt={...be,shape:z.circle},qt={...ye,shape:z.circle},Dt={...Oe,shape:z.circle},It={...Se,shape:z.circle},Zt={...Ce,shape:z.circle},Wt={...ke,shape:z.circle},Rt={...we,shape:z.circle},Vt={...Ae,shape:z.circle},Et={...Te,shape:z.circle},jt={...qe,shape:z.circle},xt={...De,shape:z.circle},Bt={...Ie,shape:z.circle},Jt={...Ze,shape:z.circle},Yt={...We,shape:z.circle},Mt={...Re,shape:z.circle},Lt={...Ve,shape:z.circle},Pt={...Ee,shape:z.circle},Gt={...je,shape:z.circle},Xt={...xe,shape:z.circle},Nt={...Be,shape:z.circle},zt={...Je,shape:z.circle},Ft={...Ye,shape:z.circle},Ut={...Me,shape:z.circle},Kt={...Le,shape:z.circle},Ht={...Pe,shape:z.circle},_t={...Ge,shape:z.circle},Qt={...Xe,shape:z.circle},$t={...Ne,shape:z.circle},eo={...ze,shape:z.circle},to={...Fe,shape:z.circle},oo={...Ue,shape:z.circle},ro={...Ke,shape:z.circle},no={...He,shape:z.circle},so={..._e,shape:z.circle},io={...Qe,shape:z.circle},ao={...$e,shape:z.circle},lo={...et,shape:z.circle},co={...tt,shape:z.circle},uo={...ot,shape:z.circle},po={...rt,shape:z.circle},ho={...nt,shape:z.circle},mo={...st,shape:z.circle},go={...it,shape:z.circle},fo={...at,shape:z.circle},bo={...dt,shape:z.circle},yo={...lt,shape:z.circle},Oo={...ct,shape:z.circle},So={...ut,shape:z.circle},Co=[{id:"base",name:"Default",options:oe},{id:"plain",name:"Square Plain",options:re},{id:"plain-circle",name:"Square Plain (Circle)",options:pt},{id:"base-line-rounded",name:"Lines Rounded",options:ne},{id:"rounded",name:"Rounded",options:se},{id:"dots",name:"Dots",options:ie},{id:"classy",name:"Classy",options:ae},{id:"extra-rounded-dots-square-corners",name:"Extra Rounded Dots Square Corners",options:de},{id:"vertical-line-dots-classy-corners",name:"Vertical Lines Classy Corners",options:le},{id:"horizontal-line-dots-rounded-corners",name:"Horizontal Lines Rounded Corners",options:ce},{id:"classy-rounded-dots-outpoint-corners",name:"Classy Rounded Dots Outpoint Corners",options:ue},{id:"small-square-dots-inpoint-corners",name:"Small Square Dots Inpoint Corners",options:pe},{id:"tiny-square-dots-square-corners-heart-corners",name:"Tiny Square Dots Heart Corners",options:he},{id:"star-dots-classy-corners",name:"Star Dots Classy Corners",options:me},{id:"plus-dots-rounded-corners",name:"Plus Dots Rounded Corners",options:ge},{id:"diamond-dots-square-corners",name:"Diamond Dots Square Corners",options:fe},{id:"random-dot-dots-dot-corners",name:"Random Dots",options:be},{id:"dot-dots-outpoint-corners",name:"Dots Outpoint Corners",options:ye},{id:"dot-dots-inpoint-corners",name:"Dots Inpoint Corners",options:Oe},{id:"rounded-dots-outpoint-corners",name:"Rounded Dots Outpoint Corners",options:Se},{id:"rounded-dots-inpoint-corners",name:"Rounded Dots Inpoint Corners",options:Ce},{id:"classy-dots-outpoint-corners",name:"Classy Dots Outpoint Corners",options:ke},{id:"classy-dots-inpoint-corners",name:"Classy Dots Inpoint Corners",options:we},{id:"square-dots-outpoint-corners",name:"Square Dots Outpoint Corners",options:Ae},{id:"square-dots-inpoint-corners",name:"Square Dots Inpoint Corners",options:Te},{id:"dot-dots-square-corners",name:"Dots Square Corners",options:qe},{id:"dot-dots-rounded-corners",name:"Dots Rounded Corners",options:De},{id:"dot-dots-classy-corners",name:"Dots Classy Corners",options:Ie},{id:"rounded-dots-square-corners",name:"Rounded Dots Square Corners",options:Ze},{id:"rounded-dots-classy-corners",name:"Rounded Dots Classy Corners",options:We},{id:"classy-dots-square-corners",name:"Classy Dots Square Corners",options:Re},{id:"classy-dots-rounded-corners",name:"Classy Dots Rounded Corners",options:Ve},{id:"square-dots-dot-corners",name:"Square Dots Dot Corners",options:Ee},{id:"square-dots-rounded-corners",name:"Square Dots Rounded Corners",options:je},{id:"square-dots-classy-corners",name:"Square Dots Classy Corners",options:xe},{id:"extra-rounded-dots-dot-corners",name:"Extra Rounded Dots Dot Corners",options:Be},{id:"extra-rounded-dots-classy-corners",name:"Extra Rounded Dots Classy Corners",options:Je},{id:"classy-rounded-dots-dot-corners",name:"Classy Rounded Dots Dot Corners",options:Ye},{id:"classy-rounded-dots-square-corners",name:"Classy Rounded Dots Square Corners",options:Me},{id:"vertical-line-dots-square-corners",name:"Vertical Lines Square Corners",options:Le},{id:"horizontal-line-dots-square-corners",name:"Horizontal Lines Square Corners",options:Pe},{id:"horizontal-line-dots-classy-corners",name:"Horizontal Lines Classy Corners",options:Ge},{id:"small-square-dots-dot-corners",name:"Small Square Dots Dot Corners",options:Xe},{id:"small-square-dots-rounded-corners",name:"Small Square Dots Rounded Corners",options:Ne},{id:"tiny-square-dots-dot-corners",name:"Tiny Square Dots Dot Corners",options:ze},{id:"tiny-square-dots-square-corners",name:"Tiny Square Dots Square Corners",options:Fe},{id:"star-dots-dot-corners",name:"Star Dots Dot Corners",options:Ue},{id:"star-dots-square-corners",name:"Star Dots Square Corners",options:Ke},{id:"plus-dots-dot-corners",name:"Plus Dots Dot Corners",options:He},{id:"plus-dots-square-corners",name:"Plus Dots Square Corners",options:_e},{id:"diamond-dots-dot-corners",name:"Diamond Dots Dot Corners",options:Qe},{id:"diamond-dots-classy-corners",name:"Diamond Dots Classy Corners",options:$e},{id:"random-dot-dots-square-corners",name:"Random Dots Square Corners",options:et},{id:"random-dot-dots-classy-corners",name:"Random Dots Classy Corners",options:tt},{id:"dot-dots-square-corners-dot-corners",name:"Dots Square/Dot Corners",options:ot},{id:"dot-dots-dot-corners-square-corners",name:"Dots Dot/Square Corners",options:rt},{id:"rounded-dots-square-corners-dot-corners",name:"Rounded Dots Square/Dot Corners",options:nt},{id:"rounded-dots-dot-corners-square-corners",name:"Rounded Dots Dot/Square Corners",options:st},{id:"classy-dots-square-corners-dot-corners",name:"Classy Dots Square/Dot Corners",options:it},{id:"classy-dots-dot-corners-square-corners",name:"Classy Dots Dot/Square Corners",options:at},{id:"square-dots-rounded-corners-dot-corners",name:"Square Dots Rounded/Dot Corners",options:dt},{id:"square-dots-dot-corners-rounded-corners",name:"Square Dots Dot/Rounded Corners",options:lt},{id:"dot-dots-classy-corners-dot-corners",name:"Dots Classy/Dot Corners",options:ct},{id:"dot-dots-dot-corners-classy-corners",name:"Dots Dot/Classy Corners",options:ut},{id:"circle-shape-dot-dots-square-corners",name:"Circle Dots Square Corners",options:jt},{id:"circle-shape-rounded-dots-rounded-corners",name:"Circle Rounded",options:ve},{id:"circle-shape-square-dots-square-corners",name:"Circle Square Plain",options:pt},{id:"circle-shape-vertical-line-dots-rounded-corners",name:"Circle Lines Rounded",options:ht},{id:"circle-shape-rounded-dots-dot-corners",name:"Circle Rounded Dots",options:mt},{id:"circle-shape-dot-dots-dot-corners",name:"Circle Dots",options:gt},{id:"circle-shape-classy-dots-classy-corners",name:"Circle Classy",options:ft},{id:"circle-shape-extra-rounded-dots-square-corners",name:"Circle Extra Rounded Dots Square Corners",options:bt},{id:"circle-shape-vertical-line-dots-classy-corners",name:"Circle Vertical Lines Classy Corners",options:yt},{id:"circle-shape-horizontal-line-dots-rounded-corners",name:"Circle Horizontal Lines Rounded Corners",options:Ot},{id:"circle-shape-classy-rounded-dots-outpoint-corners",name:"Circle Classy Rounded Dots Outpoint Corners",options:St},{id:"circle-shape-small-square-dots-inpoint-corners",name:"Circle Small Square Dots Inpoint Corners",options:Ct},{id:"circle-shape-tiny-square-dots-square-corners-heart-corners",name:"Circle Tiny Square Dots Heart Corners",options:kt},{id:"circle-shape-star-dots-classy-corners",name:"Circle Star Dots Classy Corners",options:wt},{id:"circle-shape-plus-dots-rounded-corners",name:"Circle Plus Dots Rounded Corners",options:At},{id:"circle-shape-diamond-dots-square-corners",name:"Circle Diamond Dots Square Corners",options:Tt},{id:"circle-shape-random-dot-dots-dot-corners",name:"Circle Random Dots",options:vt},{id:"circle-shape-dot-dots-outpoint-corners",name:"Circle Dots Outpoint Corners",options:qt},{id:"circle-shape-dot-dots-inpoint-corners",name:"Circle Dots Inpoint Corners",options:Dt},{id:"circle-shape-rounded-dots-outpoint-corners",name:"Circle Rounded Dots Outpoint Corners",options:It},{id:"circle-shape-rounded-dots-inpoint-corners",name:"Circle Rounded Dots Inpoint Corners",options:Zt},{id:"circle-shape-classy-dots-outpoint-corners",name:"Circle Classy Dots Outpoint Corners",options:Wt},{id:"circle-shape-classy-dots-inpoint-corners",name:"Circle Classy Dots Inpoint Corners",options:Rt},{id:"circle-shape-square-dots-outpoint-corners",name:"Circle Square Dots Outpoint Corners",options:Vt},{id:"circle-shape-square-dots-inpoint-corners",name:"Circle Square Dots Inpoint Corners",options:Et},{id:"circle-shape-dot-dots-rounded-corners",name:"Circle Dots Rounded Corners",options:xt},{id:"circle-shape-dot-dots-classy-corners",name:"Circle Dots Classy Corners",options:Bt},{id:"circle-shape-rounded-dots-square-corners",name:"Circle Rounded Dots Square Corners",options:Jt},{id:"circle-shape-rounded-dots-classy-corners",name:"Circle Rounded Dots Classy Corners",options:Yt},{id:"circle-shape-classy-dots-square-corners",name:"Circle Classy Dots Square Corners",options:Mt},{id:"circle-shape-classy-dots-rounded-corners",name:"Circle Classy Dots Rounded Corners",options:Lt},{id:"circle-shape-square-dots-dot-corners",name:"Circle Square Dots Dot Corners",options:Pt},{id:"circle-shape-square-dots-rounded-corners",name:"Circle Square Dots Rounded Corners",options:Gt},{id:"circle-shape-square-dots-classy-corners",name:"Circle Square Dots Classy Corners",options:Xt},{id:"circle-shape-extra-rounded-dots-dot-corners",name:"Circle Extra Rounded Dots Dot Corners",options:Nt},{id:"circle-shape-extra-rounded-dots-classy-corners",name:"Circle Extra Rounded Dots Classy Corners",options:zt},{id:"circle-shape-classy-rounded-dots-dot-corners",name:"Circle Classy Rounded Dots Dot Corners",options:Ft},{id:"circle-shape-classy-rounded-dots-square-corners",name:"Circle Classy Rounded Dots Square Corners",options:Ut},{id:"circle-shape-vertical-line-dots-square-corners",name:"Circle Vertical Lines Square Corners",options:Kt},{id:"circle-shape-horizontal-line-dots-square-corners",name:"Circle Horizontal Lines Square Corners",options:Ht},{id:"circle-shape-horizontal-line-dots-classy-corners",name:"Circle Horizontal Lines Classy Corners",options:_t},{id:"circle-shape-small-square-dots-dot-corners",name:"Circle Small Square Dots Dot Corners",options:Qt},{id:"circle-shape-small-square-dots-rounded-corners",name:"Circle Small Square Dots Rounded Corners",options:$t},{id:"circle-shape-tiny-square-dots-dot-corners",name:"Circle Tiny Square Dots Dot Corners",options:eo},{id:"circle-shape-tiny-square-dots-square-corners",name:"Circle Tiny Square Dots Square Corners",options:to},{id:"circle-shape-star-dots-dot-corners",name:"Circle Star Dots Dot Corners",options:oo},{id:"circle-shape-star-dots-square-corners",name:"Circle Star Dots Square Corners",options:ro},{id:"circle-shape-plus-dots-dot-corners",name:"Circle Plus Dots Dot Corners",options:no},{id:"circle-shape-plus-dots-square-corners",name:"Circle Plus Dots Square Corners",options:so},{id:"circle-shape-diamond-dots-dot-corners",name:"Circle Diamond Dots Dot Corners",options:io},{id:"circle-shape-diamond-dots-classy-corners",name:"Circle Diamond Dots Classy Corners",options:ao},{id:"circle-shape-random-dot-dots-square-corners",name:"Circle Random Dots Square Corners",options:lo},{id:"circle-shape-random-dot-dots-classy-corners",name:"Circle Random Dots Classy Corners",options:co},{id:"circle-shape-dot-dots-square-corners-dot-corners",name:"Circle Dots Square/Dot Corners",options:uo},{id:"circle-shape-dot-dots-dot-corners-square-corners",name:"Circle Dots Dot/Square Corners",options:po},{id:"circle-shape-rounded-dots-square-corners-dot-corners",name:"Circle Rounded Dots Square/Dot Corners",options:ho},{id:"circle-shape-rounded-dots-dot-corners-square-corners",name:"Circle Rounded Dots Dot/Square Corners",options:mo},{id:"circle-shape-classy-dots-square-corners-dot-corners",name:"Circle Classy Dots Square/Dot Corners",options:go},{id:"circle-shape-classy-dots-dot-corners-square-corners",name:"Circle Classy Dots Dot/Square Corners",options:fo},{id:"circle-shape-square-dots-rounded-corners-dot-corners",name:"Circle Square Dots Rounded/Dot Corners",options:bo},{id:"circle-shape-square-dots-dot-corners-rounded-corners",name:"Circle Square Dots Dot/Rounded Corners",options:yo},{id:"circle-shape-dot-dots-classy-corners-dot-corners",name:"Circle Dots Classy/Dot Corners",options:Oo},{id:"circle-shape-dot-dots-dot-corners-classy-corners",name:"Circle Dots Dot/Classy Corners",options:So}];function ko(e){return Co.find((t=>t.name.toLowerCase()===e.toLowerCase()))}function wo(e){return Co.find((t=>t.id===e))}wo("base");const Ao=e=>"number"==typeof e&&!isNaN(e)&&isFinite(e),To=(e,t)=>{const o=[];return Object.values(P).includes(e.type)||o.push({path:`${t}.type`,message:`Invalid gradient type. Must be one of: ${Object.values(P).join(", ")}`,value:e.type}),void 0===e.rotation||Ao(e.rotation)||o.push({path:`${t}.rotation`,message:"Rotation must be a valid number",value:e.rotation}),!e.colorStops||!Array.isArray(e.colorStops)||e.colorStops.length<2?o.push({path:`${t}.colorStops`,message:"Gradient must have at least 2 color stops",value:e.colorStops}):e.colorStops.forEach(((e,r)=>{(!Ao(e.offset)||e.offset<0||e.offset>1)&&o.push({path:`${t}.colorStops[${r}].offset`,message:"Color stop offset must be between 0 and 1",value:e.offset}),(e=>{if(new Set(["black","white","red","green","blue","yellow","purple","gray","grey","cyan","magenta","lime","pink","teal","brown","orange"]).has(e.toLowerCase()))return!0;if(/^#([A-Fa-f0-9]{3}){1,2}$/.test(e))return!0;if(/^#([A-Fa-f0-9]{4}){1,2}$/.test(e))return!0;if(/^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/.test(e)||/^rgba\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*([01]?\.?\d*)\)$/.test(e))return(e.match(/\d+/g)?.map(Number)||[]).every((e=>e>=0&&e<=255));return!1})(e.color)||o.push({path:`${t}.colorStops[${r}].color`,message:"Invalid color format",value:e.color})})),o};function vo(e){const t=[];let o={...oe};return e.data&&"string"==typeof e.data||t.push({path:"data",message:"QR data is required and must be a string",value:e.data}),e.shape&&!Object.values(z).includes(e.shape)&&(t.push({path:"shape",message:`Invalid shape type. Must be one of: ${Object.values(z).join(", ")}`,value:e.shape}),e.shape=oe.shape),e.qrOptions&&(e.qrOptions.typeNumber&&!Object.values(f).includes(e.qrOptions.typeNumber)&&(t.push({path:"qrOptions.typeNumber",message:"Invalid type number",value:e.qrOptions.typeNumber}),e.qrOptions.typeNumber=oe.qrOptions?.typeNumber),e.qrOptions.errorCorrectionLevel&&!Object.values(b).includes(e.qrOptions.errorCorrectionLevel)&&(t.push({path:"qrOptions.errorCorrectionLevel",message:"Invalid error correction level",value:e.qrOptions.errorCorrectionLevel}),e.qrOptions.errorCorrectionLevel=oe.qrOptions?.errorCorrectionLevel),e.qrOptions.mode&&!Object.values(y).includes(e.qrOptions.mode)&&(t.push({path:"qrOptions.mode",message:"Invalid mode",value:e.qrOptions.mode}),e.qrOptions.mode=oe.qrOptions?.mode)),e.imageOptions&&(e.imageOptions.imageSize&&(!Ao(e.imageOptions.imageSize)||e.imageOptions.imageSize<=0||e.imageOptions.imageSize>1)&&(t.push({path:"imageOptions.imageSize",message:"Image size must be between 0 and 1",value:e.imageOptions.imageSize}),e.imageOptions.imageSize=oe.imageOptions?.imageSize),e.imageOptions.margin&&(!Ao(e.imageOptions.margin)||e.imageOptions.margin<0)&&(t.push({path:"imageOptions.margin",message:"Margin must be a non-negative number",value:e.imageOptions.margin}),e.imageOptions.margin=oe.imageOptions?.margin),e.imageOptions.mode&&!Object.values(F).includes(e.imageOptions.mode)&&(t.push({path:"imageOptions.mode",message:`Invalid image mode. Must be one of: ${Object.values(F).join(", ")}`,value:e.imageOptions.mode}),e.imageOptions.mode=oe.imageOptions?.mode)),e.dotsOptions&&(e.dotsOptions.type&&!Object.values(G).includes(e.dotsOptions.type)&&(t.push({path:"dotsOptions.type",message:`Invalid dot type. Must be one of: ${Object.values(G).join(", ")}`,value:e.dotsOptions.type}),e.dotsOptions.type=oe.dotsOptions?.type),e.dotsOptions.size&&(!Ao(e.dotsOptions.size)||e.dotsOptions.size<=0)&&(t.push({path:"dotsOptions.size",message:"Dot size must be a positive number",value:e.dotsOptions.size}),e.dotsOptions.size=oe.dotsOptions?.size),e.dotsOptions.gradient&&t.push(...To(e.dotsOptions.gradient,"dotsOptions.gradient"))),e.cornersSquareOptions&&(e.cornersSquareOptions.type&&!Object.values(N).includes(e.cornersSquareOptions.type)&&(t.push({path:"cornersSquareOptions.type",message:`Invalid corner square type. Must be one of: ${Object.values(N).join(", ")}`,value:e.cornersSquareOptions.type}),e.cornersSquareOptions.type=oe.cornersSquareOptions?.type),e.cornersSquareOptions.gradient&&t.push(...To(e.cornersSquareOptions.gradient,"cornersSquareOptions.gradient"))),e.cornersDotOptions&&(e.cornersDotOptions.type&&!Object.values(X).includes(e.cornersDotOptions.type)&&(t.push({path:"cornersDotOptions.type",message:`Invalid corner dot type. Must be one of: ${Object.values(X).join(", ")}`,value:e.cornersDotOptions.type}),e.cornersDotOptions.type=oe.cornersDotOptions?.type),e.cornersDotOptions.gradient&&t.push(...To(e.cornersDotOptions.gradient,"cornersDotOptions.gradient"))),o={...o,...e},{warnings:t,validatedOptions:o}}const qo=/\.?0+$/;function Do(e){return e.toFixed(7).replace(qo,"")}function Io(e,...t){return e.reduce(((e,o,r)=>{let n="";return r&&(n=t[r-1]),"number"==typeof n&&(n=Do(n)),`${e}${n}${o}`}),"").trim().replace(/[\s\n\r]+/gim," ")}class Zo{get element(){return this._element}constructor(e,t){this.type=e,this.document=t}draw(e){let t;switch(this.type){case X.square:t=this.drawSquare;break;case X.heart:t=this.drawHeart;break;case X.rounded:t=this.drawRounded;break;case X.classy:t=this.drawClassy;break;case X.inpoint:t=this.drawInpoint;break;case X.outpoint:t=this.drawOutpoint;break;case X.dot:default:t=this.drawDot}t.call(this,e)}rotateFigure({x:e,y:t,size:o,rotation:r=0,draw:n}){const s=e+o/2,i=t+o/2;n(),this._element?.setAttribute("transform",`rotate(${Do(180*r/Math.PI)},${s},${i})`)}basicDot(e){const{size:t,x:o,y:r}=e;this.rotateFigure({...e,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","circle"),this._element.setAttribute("cx",Do(o+t/2)),this._element.setAttribute("cy",Do(r+t/2)),this._element.setAttribute("r",Do(t/2.1))}})}basicSquare(e){const{size:t,x:o,y:r}=e,n=t/11;this.rotateFigure({...e,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","rect"),this._element.setAttribute("x",Do(o+n)),this._element.setAttribute("y",Do(r+n)),this._element.setAttribute("width",Do(t-2*n)),this._element.setAttribute("height",Do(t-2*n))}})}basicHeart(e){const{size:t,x:o,y:r}=e;this._element=this.document.createElementNS("http://www.w3.org/2000/svg","path");let n=!1,s=0;this._element.setAttribute("d",["M",1,.3262506,"c",0,.0383376,-.0064626,.0758377,-.0193751,.1125001,"s",-.0356247,.076875,-.0681248,.1206252,"c",-.0325,.0437499,-.0762503,.0931247,-.1312501,.1481249,"C",.7262502,.7625008,.6566626,.8279132,.5724999,.9037505,"L",.5,.9687506,"L",.4275001,.9037505,"C",.3433374,.8279132,.2737499,.7625005,.21875,.7075007,"C",.1637501,.6525008,.1199999,.6031258,.0874999,.5593758,"S",.0322876,.4754133,.0193751,.4387506,"S",0,.3645881,0,.3262506,"c",0,-.0783374,.0262499,-.1437498,.07875,-.1962499,"s",.1179124,-.07875,.1962499,-.07875,"c",.0433376,0,.0845875,.0091625,.12375,.0274999,"S",.4716623,.1229131,.5,.1562506,"c",.0283374,-.0333375,.0620874,-.0591625,.1012502,-.0775,"c",.0391627,-.0183375,.0804126,-.0274999,.12375,-.0274999,"c",.0783374,0,.1437497,.0262499,.1962501,.07875,"S",1,.2479131,1,.3262506,"z"].map((e=>"string"==typeof e?(s=0,n=e.toUpperCase()==e,e):(s++,e*=t,n&&(e+=s%2==1?o:r),Do(e)))).join(" "))}basicRounded(e){const{size:t,x:o,y:r}=e;this.rotateFigure({...e,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","rect"),this._element.setAttribute("x",Do(o)),this._element.setAttribute("y",Do(r)),this._element.setAttribute("width",Do(t)),this._element.setAttribute("height",Do(t)),this._element.setAttribute("rx",Do(t/4)),this._element.setAttribute("ry",Do(t/4))}})}basicClassy(e){const{size:t,x:o,y:r}=e,n=t/7;this.rotateFigure({...e,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("clip-rule","evenodd"),this._element.setAttribute("d",Io`M ${o} ${r+2.5*n} v ${2*n} a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*n} ${2.5*n} h ${4.5*n} v ${-4.5*n} a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*-n} ${2.5*-n} h ${-2*n} H ${o} z`)}})}basicInpoint(e){const{size:t,x:o,y:r}=e,n=t;this.rotateFigure({...e,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("clip-rule","evenodd"),this._element.setAttribute("d",Io`M ${o} ${r+n/2} v ${n/4} a ${n/4}, ${n/4} 0 0 0 ${n/4}, ${n/4} h ${n/4*3} v ${-n/4*3} a ${n/4}, ${n/4} 0 0 0 ${-n/4}, ${-n/4} h ${-n/2} a ${n/4}, ${n/4} 0 0 0 ${-n/4}, ${n/4} z`)}})}drawDot({x:e,y:t,size:o,rotation:r}){this.basicDot({x:e,y:t,size:o,rotation:r})}drawSquare({x:e,y:t,size:o,rotation:r}){this.basicSquare({x:e,y:t,size:o,rotation:r})}drawHeart({x:e,y:t,size:o,rotation:r}){this.basicHeart({x:e,y:t,size:o,rotation:r})}drawRounded({x:e,y:t,size:o,rotation:r}){this.basicRounded({x:e,y:t,size:o,rotation:r})}drawClassy({x:e,y:t,size:o,rotation:r}){this.basicClassy({x:e,y:t,size:o,rotation:r})}drawInpoint({x:e,y:t,size:o,rotation:r}){this.basicInpoint({x:e,y:t,size:o,rotation:r})}drawOutpoint({x:e,y:t,size:o,rotation:r}){this.basicInpoint({x:e,y:t,size:o,rotation:(r||0)+Math.PI})}}class Wo{get element(){return this._element}get fill(){return this._fill}constructor(e,t){this.type=e,this.document=t}draw(e){let t;switch(this.type){case N.square:t=this.drawSquare;break;case N.rounded:t=this.drawExtraRounded;break;case N.classy:t=this.drawClassy;break;case N.outpoint:t=this.drawOutpoint;break;case N.inpoint:t=this.drawInpoint;break;case N.dot:default:t=this.drawDot}t.call(this,e)}rotateFigure({x:e,y:t,size:o,rotation:r=0,draw:n}){const s=e+o/2,i=t+o/2;n(),this._element?.setAttribute("transform",`rotate(${Do(180*r/Math.PI)},${s},${i})`),this._fill?.setAttribute("transform",`rotate(${Do(180*r/Math.PI)},${s},${i})`)}basicDot(e){const{size:t,x:o,y:r}=e,n=t/8,s=.5*t,i=s-n;this.rotateFigure({...e,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("clip-rule","evenodd"),this._element.setAttribute("d",Io`M ${o+t/2} ${r+(t/2-s)} a ${s} ${s} 0 1 0 0.1 0 z m 0 ${n} a ${i} ${i} 0 1 1 -0.1 0 Z`),this._fill=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._fill.setAttribute("clip-rule","evenodd"),this._fill.setAttribute("d",Io`M ${o+t/2} ${r+(t/2-(s+n))} a ${s+n} ${s+n} 0 1 0 0.1 0 z`)}})}basicSquare(e){const{size:t,x:o,y:r}=e,n=t/7;this.rotateFigure({...e,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("clip-rule","evenodd"),this._element.setAttribute("d",Io`M ${o} ${r} v ${t} h ${t} v ${-t} z M ${o+n} ${r+n} h ${t-2*n} v ${t-2*n} h ${2*n-t} z`),this._fill=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._fill.setAttribute("clip-rule","evenodd"),this._fill.setAttribute("d",Io`M ${o-n} ${r-n} h ${t+2*n} v ${t+2*n} h ${-t-2*n} z`)}})}basicExtraRounded(e){const{size:t,x:o,y:r}=e,n=t/7;this.rotateFigure({...e,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("clip-rule","evenodd"),this._element.setAttribute("d",Io`M ${o} ${r+2.5*n} v ${2*n} a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*n} ${2.5*n} h ${2*n} a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*n} ${2.5*-n} v ${-2*n} a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*-n} ${2.5*-n} h ${-2*n} a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*-n} ${2.5*n} z M ${o+2.5*n} ${r+n} h ${2*n} a ${1.5*n} ${1.5*n}, 0, 0, 1, ${1.5*n} ${1.5*n} v ${2*n} a ${1.5*n} ${1.5*n}, 0, 0, 1, ${1.5*-n} ${1.5*n} h ${-2*n} a ${1.5*n} ${1.5*n}, 0, 0, 1, ${1.5*-n} ${1.5*-n} v ${-2*n} a ${1.5*n} ${1.5*n}, 0, 0, 1, ${1.5*n} ${1.5*-n} z`),this._fill=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._fill.setAttribute("clip-rule","evenodd"),this._fill.setAttribute("d",Io`M ${o-n} ${r+2.5*n} v ${2*n} a ${3.5*n} ${3.5*n}, 0, 0, 0, ${3.5*n} ${3.5*n} h ${2*n} a ${3.5*n} ${3.5*n}, 0, 0, 0, ${3.5*n} ${3.5*-n} v ${-2*n} a ${3.5*n} ${3.5*n}, 0, 0, 0, ${3.5*-n} ${3.5*-n} h ${-2*n} a ${3.5*n} ${3.5*n}, 0, 0, 0, ${3.5*-n} ${3.5*n} z`)}})}basicClassy(e){const{size:t,x:o,y:r}=e,n=t/7;this.rotateFigure({...e,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("clip-rule","evenodd"),this._element.setAttribute("d",Io`M ${o} ${r+2.5*n} v ${2*n} a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*n} ${2.5*n} h ${4.5*n} v ${-4.5*n} a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*-n} ${2.5*-n} h ${-2*n} H ${o} z M ${o+2.5*n} ${r+n} h ${2*n} a ${1.5*n} ${1.5*n}, 0, 0, 1, ${1.5*n} ${1.5*n} v ${3.5*n} h ${-3.5*n} a ${1.5*n} ${1.5*n}, 0, 0, 1, ${1.5*-n} ${1.5*-n} v ${-3.5*n} z`),this._fill=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._fill.setAttribute("clip-rule","evenodd"),this._fill.setAttribute("d",Io`M ${o+.5*n} ${r-n} h ${4*n} a ${3.5*n} ${3.5*n}, 0, 0, 1, ${3.5*n} ${3.5*n} v ${5.5*n} h ${-5.5*n} a ${3.5*n} ${3.5*n}, 0, 0, 1, ${3.5*-n} ${3.5*-n} v ${-5.5*n} z`)}})}basicInpoint(e){const{size:t,x:o,y:r}=e,n=t/7;this.rotateFigure({...e,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("clip-rule","evenodd"),this._element.setAttribute("d",Io`M ${o} ${r+2.5*n} v ${2*n} a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*n} ${2.5*n} h ${4.5*n} v ${-4.5*n} a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*-n} ${2.5*-n} h ${-2*n} a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*-n} ${2.5*n} z M ${o+2.5*n} ${r+n} h ${2*n} a ${1.5*n} ${1.5*n}, 0, 0, 1, ${1.5*n} ${1.5*n} v ${3.5*n} h ${-3.5*n} a ${1.5*n} ${1.5*n}, 0, 0, 1, ${1.5*-n} ${1.5*-n} v ${-2*n} a ${1.5*n} ${1.5*n}, 0, 0, 1, ${1.5*n} ${1.5*-n} z`),this._fill=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._fill.setAttribute("clip-rule","evenodd"),this._fill.setAttribute("d",Io`M ${o+.5*n} ${r-n} h ${4*n} a ${3.5*n} ${3.5*n}, 0, 0, 1, ${3.5*n} ${3.5*n} v ${5.5*n} h ${-5.5*n} a ${3.5*n} ${3.5*n}, 0, 0, 1, ${3.5*-n} ${3.5*-n} v ${-2*n} a ${3.5*n} ${3.5*n}, 0, 0, 1, ${3.5*n} ${3.5*-n} z`)}})}drawDot({x:e,y:t,size:o,rotation:r}){this.basicDot({x:e,y:t,size:o,rotation:r})}drawSquare({x:e,y:t,size:o,rotation:r}){this.basicSquare({x:e,y:t,size:o,rotation:r})}drawExtraRounded({x:e,y:t,size:o,rotation:r}){this.basicExtraRounded({x:e,y:t,size:o,rotation:r})}drawClassy({x:e,y:t,size:o,rotation:r}){this.basicClassy({x:e,y:t,size:o,rotation:r})}drawInpoint({x:e,y:t,size:o,rotation:r}){this.basicInpoint({x:e,y:t,size:o,rotation:r})}drawOutpoint({x:e,y:t,size:o,rotation:r}){this.basicInpoint({x:e,y:t,size:o,rotation:(r||0)+Math.PI})}}class Ro{get element(){return this._element}constructor(e,t){this.type=e,this.document=t}draw(e){let t;switch(this.type){case G.dot:t=this.drawDot;break;case G.randomDot:t=this.drawRandomDot;break;case G.classy:t=this.drawClassy;break;case G.classyRounded:t=this.drawClassyRounded;break;case G.rounded:t=this.drawRounded;break;case G.verticalLine:t=this.drawVerticalLine;break;case G.horizontalLine:t=this.drawHorizontalLine;break;case G.extraRounded:t=this.drawExtraRounded;break;case G.diamond:t=this.drawDiamond;break;case G.smallSquare:t=this.drawSmallSquare;break;case G.tinySquare:t=this.drawTinySquare;break;case G.star:t=this.drawStar;break;case G.plus:t=this.drawPlus;break;case G.square:default:t=this.drawSquare}t.call(this,e)}rotateFigure({x:e,y:t,size:o,rotation:r=0,draw:n}){const s=e+o/2,i=t+o/2;n(),this._element?.setAttribute("transform",`rotate(${Do(180*r/Math.PI)},${s},${i})`)}basicDot(e){const{size:t,x:o,y:r}=e;this.rotateFigure({...e,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","circle"),this._element.setAttribute("cx",Do(o+t/2)),this._element.setAttribute("cy",Do(r+t/2)),this._element.setAttribute("r",Do(t/2))}})}basicSquare(e){const{size:t,x:o,y:r}=e;this.rotateFigure({...e,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","rect"),this._element.setAttribute("x",Do(o)),this._element.setAttribute("y",Do(r)),this._element.setAttribute("width",Do(t)),this._element.setAttribute("height",Do(t))}})}basicSideRounded(e){const{size:t,x:o,y:r}=e;this.rotateFigure({...e,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("d",Io`M ${o} ${r} v ${t} h ${t/2} a ${t/2} ${t/2}, 0, 0, 0, 0 ${-t} z`)}})}basicCornerRounded(e){const{size:t,x:o,y:r}=e;this.rotateFigure({...e,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("d",Io`M ${o} ${r} v ${t} h ${t} v ${-t/2} a ${t/2} ${t/2}, 0, 0, 0, ${-t/2} ${-t/2} z`)}})}basicCornerExtraRounded(e){const{size:t,x:o,y:r}=e;this.rotateFigure({...e,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("d",Io`M ${o} ${r} v ${t} h ${t} a ${t} ${t}, 0, 0, 0, ${-t} ${-t} z`)}})}basicCornersRounded(e){const{size:t,x:o,y:r}=e;this.rotateFigure({...e,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("d",Io`M ${o} ${r} v ${t/2} a ${t/2} ${t/2}, 0, 0, 0, ${t/2} ${t/2} h ${t/2} v ${-t/2} a ${t/2} ${t/2}, 0, 0, 0, ${-t/2} ${-t/2} z`)}})}drawDot({x:e,y:t,size:o}){this.basicDot({x:e,y:t,size:o,rotation:0})}drawRandomDot({x:e,y:t,size:o}){const r=.25*Math.random()+.75;this.basicDot({x:e,y:t,size:o*r,rotation:0})}drawSquare({x:e,y:t,size:o}){this.basicSquare({x:e,y:t,size:o,rotation:0})}drawSmallSquare({x:e,y:t,size:o}){const r=o;o=.7*r,e+=.15*r,t+=.15*r,this.basicSquare({x:e,y:t,size:o,rotation:0})}drawTinySquare({x:e,y:t,size:o}){const r=o;o=.6*r,e+=.35*r,t+=.35*r,this.basicSquare({x:e,y:t,size:o,rotation:0})}drawDiamond({x:e,y:t,size:o}){this.basicSquare({x:e,y:t,size:o,rotation:Math.PI/4})}drawRounded({x:e,y:t,size:o,getNeighbor:r}){const n=r?+r(-1,0):0,s=r?+r(1,0):0,i=r?+r(0,-1):0,a=r?+r(0,1):0,d=n+s+i+a;if(0!==d)if(d>2||n&&s||i&&a)this.basicSquare({x:e,y:t,size:o,rotation:0});else{if(2===d){let r=0;return n&&i?r=Math.PI/2:i&&s?r=Math.PI:s&&a&&(r=-Math.PI/2),void this.basicCornerRounded({x:e,y:t,size:o,rotation:r})}if(1===d){let r=0;return i?r=Math.PI/2:s?r=Math.PI:a&&(r=-Math.PI/2),void this.basicSideRounded({x:e,y:t,size:o,rotation:r})}}else this.basicDot({x:e,y:t,size:o,rotation:0})}drawVerticalLine({x:e,y:t,size:o,getNeighbor:r}){const n=r?+r(-1,0):0,s=r?+r(1,0):0,i=r?+r(0,-1):0,a=r?+r(0,1):0;if(0===n+s+i+a||n&&!i&&!a||s&&!i&&!a)this.basicDot({x:e,y:t,size:o,rotation:0});else if(i&&a)this.basicSquare({x:e,y:t,size:o,rotation:0});else if(!i||a)if(!a||i);else{const r=-Math.PI/2;this.basicSideRounded({x:e,y:t,size:o,rotation:r})}else{const r=Math.PI/2;this.basicSideRounded({x:e,y:t,size:o,rotation:r})}}drawHorizontalLine({x:e,y:t,size:o,getNeighbor:r}){const n=r?+r(-1,0):0,s=r?+r(1,0):0,i=r?+r(0,-1):0,a=r?+r(0,1):0;if(0===n+s+i+a||i&&!n&&!s||a&&!n&&!s)this.basicDot({x:e,y:t,size:o,rotation:0});else if(n&&s)this.basicSquare({x:e,y:t,size:o,rotation:0});else if(!n||s)if(!s||n);else{const r=Math.PI;this.basicSideRounded({x:e,y:t,size:o,rotation:r})}else{const r=0;this.basicSideRounded({x:e,y:t,size:o,rotation:r})}}drawExtraRounded({x:e,y:t,size:o,getNeighbor:r}){const n=r?+r(-1,0):0,s=r?+r(1,0):0,i=r?+r(0,-1):0,a=r?+r(0,1):0,d=n+s+i+a;if(0!==d)if(d>2||n&&s||i&&a)this.basicSquare({x:e,y:t,size:o,rotation:0});else{if(2===d){let r=0;return n&&i?r=Math.PI/2:i&&s?r=Math.PI:s&&a&&(r=-Math.PI/2),void this.basicCornerExtraRounded({x:e,y:t,size:o,rotation:r})}if(1===d){let r=0;return i?r=Math.PI/2:s?r=Math.PI:a&&(r=-Math.PI/2),void this.basicSideRounded({x:e,y:t,size:o,rotation:r})}}else this.basicDot({x:e,y:t,size:o,rotation:0})}drawClassy({x:e,y:t,size:o,getNeighbor:r}){const n=r?+r(-1,0):0,s=r?+r(1,0):0,i=r?+r(0,-1):0,a=r?+r(0,1):0;0!==n+s+i+a?n||i?s||a?this.basicSquare({x:e,y:t,size:o,rotation:0}):this.basicCornerRounded({x:e,y:t,size:o,rotation:Math.PI/2}):this.basicCornerRounded({x:e,y:t,size:o,rotation:-Math.PI/2}):this.basicCornersRounded({x:e,y:t,size:o,rotation:Math.PI/2})}drawClassyRounded({x:e,y:t,size:o,getNeighbor:r}){const n=r?+r(-1,0):0,s=r?+r(1,0):0,i=r?+r(0,-1):0,a=r?+r(0,1):0;0!==n+s+i+a?n||i?s||a?this.basicSquare({x:e,y:t,size:o,rotation:0}):this.basicCornerExtraRounded({x:e,y:t,size:o,rotation:Math.PI/2}):this.basicCornerExtraRounded({x:e,y:t,size:o,rotation:-Math.PI/2}):this.basicCornersRounded({x:e,y:t,size:o,rotation:Math.PI/2})}drawStar({x:e,y:t,size:o}){this.rotateFigure({x:e,y:t,size:o,rotation:0,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","path");const r=e+o/2,n=t+o/2,s=1.3*o/2,i=.5*s;let a="";for(let e=0;e<10;e++){const t=e*Math.PI/5-Math.PI/2,o=e%2==0?s:i;a+=(0===e?"M":"L")+`${r+o*Math.cos(t)},${n+o*Math.sin(t)}`}a+="Z",this._element?.setAttribute("d",a)}})}drawPlus({x:e,y:t,size:o}){this.rotateFigure({x:e,y:t,size:o,rotation:0,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","path");const r=.35*o,n=.85*o,s=(o-n)/2,i=r/2,a=[`M ${e+o/2-i} ${t+s}`,`h ${r}`,`v ${n}`,"h "+-r,"z",`M ${e+s} ${t+o/2-i}`,`h ${n}`,`v ${r}`,"h "+-n,"z"].join(" ");this._element?.setAttribute("d",a)}})}}const Vo={toDataURL:e=>"string"==typeof e&&e.startsWith("data:")?Promise.resolve(e):new Promise(((t,o)=>{if("string"==typeof e){const r=new XMLHttpRequest,n=()=>{r.abort()};r.onload=()=>{if(r.status<200||r.status>=300)return n(),void o(new Error(`Failed to load image: ${r.statusText}`));const e=new FileReader;e.onloadend=()=>{n(),t(e.result)},e.onerror=()=>{n(),o(new Error("Failed to read image blob"))},e.readAsDataURL(r.response)},r.onerror=r.ontimeout=r.onabort=()=>{n(),o(new Error("Image load aborted or failed"))};try{r.open("GET",e,!0),r.responseType="blob",r.timeout=1e4,r.send()}catch(e){n(),o(e)}}else{const r=new FileReader;r.onloadend=()=>{t(r.result)},r.onerror=()=>{o(new Error("Failed to read local image"))},r.readAsDataURL(e)}})).catch((e=>(console.error("Image loading error:",e),"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIj48cmVjdCB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjY2NjIi8+PHRleHQgeD0iNTAlIiB5PSI1MCUiIGRvbWluYW50LWJhc2VsaW5lPSJtaWRkbGUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMwMDAiIGZvbnQtc2l6ZT0iMTYiPkxvZ28gbG9hZCBlcnJvcjwvdGV4dD48L3N2Zz4="))),getSize:(e,t)=>new Promise(((o,r)=>{const n=new Image,s=setTimeout((()=>{r(new Error("Image loading timed out"))}),15e3);"string"==typeof t&&(n.crossOrigin=t);const i=()=>{clearTimeout(s),n.onload=n.onerror=n.onabort=null,n.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="};n.onload=()=>{i(),o({width:n.width,height:n.height})},n.onerror=n.onabort=()=>{i(),r(new Error("Failed to load image"))};try{"string"==typeof e?n.src=e:Vo.toDataURL(e).then((e=>{e?n.src=e:r(new Error("Invalid image source"))})).catch(r)}catch(e){i(),r(e)}})).catch((e=>(console.warn("[QRCodeJs] Image size detection error:",e),{width:200,height:200})))};function Eo(e){let t,o=[],r=1;if("#"===(e=e.toLowerCase())[0]){const t=e.slice(1),n=t.length;n<=4?(o=[parseInt(t[0]+t[0],16),parseInt(t[1]+t[1],16),parseInt(t[2]+t[2],16)],4===n&&(r=parseInt(t[3]+t[3],16)/255)):(o=[parseInt(t[0]+t[1],16),parseInt(t[2]+t[3],16),parseInt(t[4]+t[5],16)],8===n&&(r=parseInt(t[6]+t[7],16)/255)),o[0]||(o[0]=0),o[1]||(o[1]=0),o[2]||(o[2]=0)}else{if(!(t=/^((?:rgba?))\s*\(([^)]*)\)/.exec(e)))return{value:e,alpha:r};{const e=3;o=t[2].trim().split(/\s*[,/]\s*|\s+/),o=o.map(((e,t)=>{if("%"===e[e.length-1]){const o=parseFloat(e)/100;return 3===t?o:255*o}return"none"===e?0:parseFloat(e)})),r=o.length>e?o.pop():1}}return{value:"#"+o.map((e=>Math.max(0,Math.min(255,e)).toString(16).padStart(2,"0"))).join(""),alpha:Math.max(0,Math.min(1,r))}}const jo="undefined"!=typeof window&&void 0!==window.document,xo="undefined"!=typeof process&&null!=process.versions&&null!=process.versions.node,Bo="undefined"!=typeof navigator&&"Cloudflare-Workers"===navigator.userAgent;let Jo;async function Yo(e,t){if(e.startsWith("data:"))return Promise.resolve(e);try{const o={method:"GET",mode:"cors"};"anonymous"!==t&&"use-credentials"!==t||(o.credentials="use-credentials"===t?"include":"omit");const r=await fetch(e,o);if(!r.ok)return console.warn(`[QRCodeJs] Failed to fetch image directly: ${r.status} ${r.statusText}`),null;if(jo){const e=await r.blob();return e.type.startsWith("image/")?new Promise(((t,o)=>{const r=new FileReader;r.onloadend=()=>t(r.result),r.onerror=e=>{console.warn("[QRCodeJs] FileReader error:",e),o(new Error("Failed to read image blob"))},r.readAsDataURL(e)})):(console.warn(`[QRCodeJs] Fetched resource is not an image: ${e.type}`),null)}if(xo||Bo){const e=r.headers.get("content-type");if(!e||!e.startsWith("image/"))return console.warn(`[QRCodeJs] Fetched resource is not an image or content-type missing: ${e}`),null;const t=await r.arrayBuffer();let o="";if(xo){if(!Jo)return console.error("[QRCodeJs] Buffer module not loaded in Node.js environment."),null;o=Jo.from(t).toString("base64")}else if(o=function(e){let t="";const o=new Uint8Array(e),r=o.byteLength;for(let e=0;e<r;e++)t+=String.fromCharCode(o[e]);return"undefined"!=typeof btoa?btoa(t):""}(t),!o)return console.warn("[QRCodeJs] Failed to convert ArrayBuffer to Base64 in Worker."),null;return`data:${e};base64,${o}`}return console.warn("[QRCodeJs] Unknown environment, cannot convert image to Data URL."),null}catch(e){return console.warn("[QRCodeJs] Error fetching image directly:",e),null}}async function Mo(e){const t=`https://api.qr-platform.com/v1/utils/get-dataurl?url=${encodeURIComponent(e)}`;try{const e=await fetch(t,{method:"GET",headers:{"x-client-name":"QRCode.js"},mode:"cors"});if(!e.ok)return console.warn(`[QRCodeJs] Failed to fetch image via proxy: ${e.status} ${e.statusText}`),null;const o=await e.json();return o&&"string"==typeof o.dataUrl&&o.dataUrl.startsWith("data:image/")?o.dataUrl:(console.warn("[QRCodeJs] Proxy response did not contain a valid dataUrl:",o),null)}catch(e){return console.warn("[QRCodeJs] Error fetching image via proxy:",e),null}}xo&&import("buffer").then((e=>{Jo=e.Buffer})).catch((e=>{console.error("[QRCodeJs] Failed to dynamically import 'buffer' in Node.js:",e)}));const Lo=[[1,1,1,1,1,1,1],[1,0,0,0,0,0,1],[1,0,0,0,0,0,1],[1,0,0,0,0,0,1],[1,0,0,0,0,0,1],[1,0,0,0,0,0,1],[1,1,1,1,1,1,1]],Po=[[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,1,1,1,0,0],[0,0,1,1,1,0,0],[0,0,1,1,1,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]];class Go{constructor(e){this.roundValue=e=>"number"==typeof e?e:parseInt(e.replace("%",""),10)/100;const t=e.margin||0,o="circle"===e.shape?.1:.3,{bordersMain:r,bordersOuter:n,bordersInner:s}=e,i=Math.min(e.width,e.height),a=Z(e.borderOptions?.radius),d=Z(e.borderOptions?.inner?.radius,a),l=a&&I(a)>0?I(a)/100*i:0,c=(a&&I(d)>0?I(d)/100*i:0)??l,u=c>0&&e.borderOptions?.hasBorder?c*o:0;this._hls=e.hls,this.finalWidth=e.width+r.left+r.right+n.left+n.right+s.left+s.right,this.finalHeight=e.height+r.top+r.bottom+n.top+n.bottom+s.top+s.bottom;const p=r.left+r.right+n.left+n.right+s.left+s.right,h=r.top+r.bottom+n.top+n.bottom+s.top+s.bottom,m=e.borderOptions?.hasBorder?this.finalWidth-p-2*n.left-2*s.left-s.right-2*t-u:this.finalWidth-2*t,g=e.borderOptions?.hasBorder?this.finalHeight-h-2*n.top-2*s.top-s.top-2*t-u:this.finalHeight-2*t,f=m/e.width,b=g/e.height,y=Math.min(f,b),O=Math.min(Math.max(e.scale??1,0),1.5),S=Math.min(Math.max(e.borderOptions?.inner?.scale??1,0),1.5),C=e.borderOptions?.inner?.horizontalOffset||0,k=e.borderOptions?.inner?.verticalOffset||0;e.scale=y*O*S||1,this.options=e,this.document=e.document,this.imageTools=e.imageTools||Vo,this._element=this.document.createElementNS("http://www.w3.org/2000/svg","svg");const w=Do(e.width),A=Do(e.height);e.isResponsive||(this._element.setAttribute("width",w),this._element.setAttribute("height",A)),this._element.setAttribute("viewBox",`0 0 ${w} ${A}`),this.defs=this.document.createElementNS("http://www.w3.org/2000/svg","defs"),this._element.appendChild(this.defs),this._innerQrGroup=this.document.createElementNS("http://www.w3.org/2000/svg","g");let T=(m-e.width*e.scale)/2+t-C+u/2,v=(g-e.height*e.scale)/2+t-k+u/2;if(e.borderOptions?.hasBorder){const t={top:E(e.borderOptions,"top"),right:E(e.borderOptions,"right"),bottom:j(e.borderOptions,"bottom",this._hls),left:E(e.borderOptions,"left")},o=e.borderOptions.thickness||0,r=e.borderOptions.borderOuter?.thickness||0,n=e.borderOptions.borderInner?.thickness||0,s=e.borderOptions.noBorderThickness||o/4;v+=((t.top?o:s)-(t.bottom?o:s))/2+r+n+n/2,T+=((t.left?o:s)-(t.right?o:s))/2+r+n+n/2}e.verticalOffset&&(v-=e.verticalOffset),e.horizontalOffset&&(T-=e.horizontalOffset),this._instanceId=Go.instanceCount++,1===e.scale&&0===T&&0===v||this._innerQrGroup.setAttribute("transform",`translate(${T}, ${v}) scale(${e.scale})`),this._maskedQrGroup=this.document.createElementNS("http://www.w3.org/2000/svg","g"),this._maskedQrGroup.setAttribute("mask",`url(#qr-mask-${this._instanceId})`),this._maskedQrGroup.appendChild(this._innerQrGroup),this._element.appendChild(this._maskedQrGroup)}get element(){return this._element}get qrGroup(){return this._innerQrGroup||this._element}get width(){return this.finalWidth}get height(){return this.finalHeight}get svgSize(){return{width:this.options.width,height:this.options.height}}getElement(){return this._element}async drawQR(e){const t=e.getModuleCount(),o=parseInt(((t-17)/4).toFixed(0),10),r=this.options.dotsOptions.size;let n={hideXDots:0,hideYDots:0,width:0,height:0};if(this.qr=e,this.options.borderOptions?.hasBorder||this.drawBackground(),this.options.image){const e=await this.imageTools.getSize(this.options.image,this.options.imageOptions.crossOrigin),{imageOptions:s}=this.options;if(this.options.imageOptions.mode==F.background){const t=0,o=(this.finalWidth-2*t*r)*s.imageSize,i=(this.finalHeight-2*t*r)*s.imageSize;let{width:a,height:d}=e;d=d/a*o,a=o,d>i&&(a=a/d*i,d=i),n={hideXDots:0,hideYDots:0,width:a,height:d}}else{const s=this.options.imageOptions.imageSize*this.options.errorCorrectionPercent,i=m.getPatternPosition(o),a=Math.floor(s*(t*t-192-2*(t-16)-i.length**2*25));n=function({originalHeight:e,originalWidth:t,maxHiddenDots:o,maxHiddenAxisDots:r,dotSize:n,margin:s}){const i={x:0,y:0},a={x:0,y:0};if(e<=0||t<=0||o<=0||n<=0||4*s**2>o)return{height:0,width:0,hideYDots:0,hideXDots:0};r&&r%2==0&&(r=Math.max(1,r-1));const d=Math.max(t,e),l=Math.min(t,e);let c=0,u=(r||o)-2*s;do{const e=c+(u-c)/2;let t=Math.max(1,Math.ceil(e+2*s));t%2==0&&t++;let r=Math.max(1,Math.ceil(e*l/d+2*s));r%2==0&&r++,t*r>o?u=e:c=e}while(Math.abs(c-u)>.001);const p=c;let h=Math.max(1,Math.ceil(p+2*s));h%2==0&&h++;let m=Math.max(1,Math.ceil(p*l/d+2*s));m%2==0&&m++,t>e?(i.x=h,i.y=m):(i.x=m,i.y=h);const g=(i.x-2*s)*n,f=(i.y-2*s)*n;return a.x=g,a.y=g*e/t,a.y>f&&(a.y=f,a.x=f*t/e),{height:Math.round(a.y+2*s*n),width:Math.round(a.x+2*s*n),hideYDots:i.y,hideXDots:i.x}}({originalWidth:e.width,originalHeight:e.height,maxHiddenDots:a,maxHiddenAxisDots:t-14,dotSize:r,margin:this.options.imageOptions.margin})}}this.options.imageOptions.mode!=F.overlay&&this.options.image&&n.width>0&&n.height>0&&await this.drawImage({width:n.width,height:n.height,count:t,dotSize:r,radius:this.options.imageOptions?.radius}),this.drawDots(((e,o)=>!(this.options.imageOptions.mode==F.center&&e>=(t-n.hideXDots)/2&&e<(t+n.hideXDots)/2&&o>=(t-n.hideYDots)/2&&o<(t+n.hideYDots)/2)&&!(e<8&&o<8||e>=t-8&&o<8||o>=t-8&&e<8))),this.options.imageOptions.mode==F.overlay&&this.options.image&&n.width>0&&n.height>0&&await this.drawImage({width:n.width,height:n.height,count:t,dotSize:r}),this.drawCorners()}drawBackground(){const e=this.options;if(this._element&&e.backgroundOptions){const t=e.backgroundOptions.gradient,o=e.backgroundOptions.color;this.createColor({options:t,color:o,additionalRotation:0,x:0,y:0,height:e.height,width:e.width,name:`background-color-${this._instanceId}`});const r=Math.min(e.width,e.height),n=this.document.createElementNS("http://www.w3.org/2000/svg","rect");[this.backgroundMask,this.backgroundMaskGroup]=this.createMask(`mask-background-color-${this._instanceId}`),this.defs.appendChild(this.backgroundMask);const s=e.backgroundOptions?.round||0,i=this.roundValue(s);n.setAttribute("x",Do((e.width-r)/2)),n.setAttribute("y",Do((e.height-r)/2)),n.setAttribute("width",Do(r)),n.setAttribute("height",Do(r)),n.setAttribute("rx",Do(r/2*i)),this.backgroundMaskGroup.appendChild(n)}}drawBackgroundForBorder(e,t){const o=this.options;if(o.backgroundOptions){const r=o.backgroundOptions.gradient,n=o.backgroundOptions.color||"#ffffff",s=Math.min(o.width,o.height)-2*e,i=(o.width-s)/2,a=(o.height-s)/2,d=t-e,l=this.createColor({options:r,borderOptions:o.borderOptions,color:n,additionalRotation:0,x:i,y:a,height:s,width:s,name:`background-color-${this._instanceId}`,returnSVGGroup:!0}),c=this.document.createElementNS("http://www.w3.org/2000/svg","rect");return[this.backgroundMask,this.backgroundMaskGroup]=this.createMask(`mask-background-color-${this._instanceId}`),this.defs.appendChild(this.backgroundMask),c.setAttribute("x",Do(i)),c.setAttribute("y",Do(a)),c.setAttribute("width",Do(s)),c.setAttribute("height",Do(s)),c.setAttribute("rx",Do(d)),this.backgroundMaskGroup.appendChild(c),l}}drawDots(e){if(!this.qr)throw new Error("QR code is not defined");const t=this.options,o=this.qr.getModuleCount();if(o>t.width||o>t.height)throw new Error("The canvas is too small");const r=t.dotsOptions.size;let n=Math.min(t.width,t.height);t.imageOptions.mode==F.background&&(n-=2*r*(t.imageOptions.margin||0));const s=Math.floor((t.width-o*r)/2);let i=Math.floor((t.height-o*r)/2);if(t.offset){const e=(t.height-o*r)/2;i+=Math.min(Math.abs(t.offset),e)*Math.sign(t.offset)}let a=new Ro(t.dotsOptions.type,this.document);const d=new Ro(G.tinySquare,this.document),l=new Ro(G.square,this.document);[this.dotsMask,this.dotsMaskGroup]=this.createMask(`mask-dot-color-${this._instanceId}`),this.defs.appendChild(this.dotsMask),t.imageOptions.mode==F.background&&([this.lightDotsMask,this.lightDotsMaskGroup]=this.createMask(`mask-light-dot-color-${this._instanceId}`),this.defs.appendChild(this.lightDotsMask));let c=0,u=o;t.shape===z.circle?(c=Math.floor((n/r-o-2)/2),u=o+2*c):t.imageOptions.mode==F.background&&(c=1,u=o+2*c);const p=s-c*r,h=i-c*r,g=p,f=h,b=o+2*c,y=new Array(u),O=Math.floor(u/2);for(let r=0;r<u;r++){y[r]=new Array(u);for(let n=0;n<u;n++)if(r>c-1&&r<u-c&&n>c-1&&n<u-c){const t=r-c,o=n-c;e&&!e(t,o)?y[r][n]=void 0:y[r][n]=!!this.qr.isDark(o,t)}else t.shape===z.circle&&Math.sqrt((r-O)*(r-O)+(n-O)*(n-O))>O?y[r][n]=void 0:y[r][n]=r!=c-1&&r!=u-c&&n!=c-1&&n!=u-c?this.qr.isDark(n-2*c<0?n:n>=o?n-2*c:n-c,r-2*c<0?r:r>=o?r-2*c:r-c):(n==c-1&&(r<c+8||r>u-c-9)||n==u-c&&r<c+8||r==c-1&&(n<c+8||n>u-c-9)||r==u-c&&n<c+8)&&void 0}const S=(o-17)/4,C=m.getPatternPosition(S);for(let e=0;e<u;e++){const t=C.find((t=>e-c>t-3&&e-c<t+3));for(let o=0;o<u;o++){const n=C.find((e=>o-c>e-3&&o-c<e+3));null!=y[e][o]&&(this.lightDotsMask&&(a=t&&n&&(t!=C[0]&&n!=C[0]||n!=C[0]&&n!=C[C.length-1]||t!=C[0]&&t!=C[C.length-1])?l:d),y[e][o]?(a.draw({x:p+e*r,y:h+o*r,size:r,getNeighbor:(t,r)=>!0===y[e+t]?.[o+r]}),a.element&&this.dotsMaskGroup&&this.dotsMaskGroup.appendChild(a.element)):this.lightDotsMask&&(a.draw({x:p+e*r,y:h+o*r,size:r,getNeighbor:(t,r)=>!1===y[e+t]?.[o+r]}),a.element&&this.lightDotsMaskGroup&&this.lightDotsMaskGroup.appendChild(a.element)))}}this.lightDotsMask&&this.createColor({color:t.imageOptions.backgroundColor,additionalRotation:0,x:g,y:f,height:b*r,width:b*r,name:`light-dot-color-${this._instanceId}`}),this.createColor({options:t.dotsOptions?.gradient,color:t.dotsOptions.color,additionalRotation:0,x:g,y:f,height:b*r,width:b*r,name:`dot-color-${this._instanceId}`})}drawCorners(){if(!this.qr)throw new Error("QR code is not defined");const e=this.qrGroup,t=this.options;if(!e)throw new Error("Element code is not defined");const o=this.qr.getModuleCount(),r=t.dotsOptions.size,n=7*r,s=3*r,i=Math.floor((t.width-o*r)/2);let a=Math.floor((t.height-o*r)/2);if(t.offset){const e=(t.height-o*r)/2,n=Math.min(Math.abs(t.offset),e)*Math.sign(t.offset);a+=n}[[0,0,0],[1,0,Math.PI/2],[0,1,-Math.PI/2]].forEach((([e,d,l])=>{const c=i+e*r*(o-7),u=a+d*r*(o-7);let p=this.dotsMask,h=this.dotsMaskGroup,m=this.dotsMask,g=this.dotsMaskGroup;if((t.cornersSquareOptions?.gradient||t.cornersSquareOptions?.color)&&([p,h]=this.createMask(`mask-corners-square-color-${e}-${d}-${this._instanceId}`),this.defs.appendChild(p),m=p,g=h,this.createColor({options:t.cornersSquareOptions?.gradient,color:t.cornersSquareOptions?.color,additionalRotation:l,x:c,y:u,height:n,width:n,name:`corners-square-color-${e}-${d}-${this._instanceId}`})),t.cornersSquareOptions?.type){const e=new Wo(t.cornersSquareOptions.type,this.document);e.draw({x:c,y:u,size:n,rotation:l}),e.element&&h&&h.appendChild(e.element),e.fill&&this.lightDotsMaskGroup&&this.lightDotsMaskGroup.appendChild(e.fill)}else{const e=new Ro(t.dotsOptions.type,this.document);for(let t=0;t<Lo.length;t++)for(let o=0;o<Lo[t].length;o++)Lo[t]?.[o]?(e.draw({x:c+t*r,y:u+o*r,size:r,getNeighbor:(e,r)=>!!Lo[t+e]?.[o+r]}),e.element&&h&&h.appendChild(e.element)):this.lightDotsMask&&!Po[t]?.[o]&&(e.draw({x:c+t*r,y:u+o*r,size:r,getNeighbor:(e,r)=>!Lo[t+e]?.[o+r]&&!Po[t+e]?.[o+r]}),e.element&&this.lightDotsMaskGroup&&this.lightDotsMaskGroup.appendChild(e.element));if(this.lightDotsMask)for(let t=-1;t<8;t++)for(let o=-1;o<8;o++)-1!=t&&7!=t&&-1!=o&&7!=o||(e.draw({x:c+t*r,y:u+o*r,size:r,getNeighbor:(e,r)=>{const n=t+e,s=o+r;return n>=-1&&n<=7&&s>=-1&&s<=7&&(-1==n||7==n||-1==s||7==s)}}),e.element&&this.lightDotsMaskGroup&&this.lightDotsMaskGroup.appendChild(e.element))}if((t.cornersDotOptions?.gradient||t.cornersDotOptions?.color)&&([m,g]=this.createMask(`mask-corners-dot-color-${e}-${d}-${this._instanceId}`),this.defs.appendChild(m),this.createColor({options:t.cornersDotOptions?.gradient,color:t.cornersDotOptions?.color,additionalRotation:l,x:c+2*r,y:u+2*r,height:s,width:s,name:`corners-dot-color-${e}-${d}-${this._instanceId}`})),t.cornersDotOptions?.type){const e=new Zo(t.cornersDotOptions.type,this.document);e.draw({x:c+2*r,y:u+2*r,size:s,rotation:l}),e.element&&g&&g.appendChild(e.element)}else{const e=new Ro(t.dotsOptions.type,this.document);for(let t=0;t<Po.length;t++)for(let o=0;o<Po[t].length;o++)Po[t]?.[o]&&(e.draw({x:c+t*r,y:u+o*r,size:r,getNeighbor:(e,r)=>!!Po[t+e]?.[o+r]}),e.element&&g&&g.appendChild(e.element))}}))}async drawImage({width:e,height:t,count:o,dotSize:r,radius:n}){const s=this.options,i=Math.floor((s.width-o*r)/2);let a=Math.floor((s.height-o*r)/2);if(s.offset){const e=(s.height-o*r)/2;a+=Math.min(Math.abs(s.offset),e)*Math.sign(s.offset)}let d=s.imageOptions.margin*r;s.imageOptions.mode==F.background&&(d=0);const l=i+d+(o*r-e)/2,c=a+d+(o*r-t)/2,u=e-2*d,p=t-2*d;let h=null;try{"string"==typeof s.image?h=await Yo(s.image,s.imageOptions.crossOrigin):s.image&&(h=await this.imageTools.toDataURL(s.image)),"string"!=typeof s.image||h||(console.warn("Direct image fetch failed, attempting proxy..."),h=await Mo(s.image))}catch(e){if(console.warn("[QRCodeJs] Error fetching image directly:",e),"string"==typeof s.image)try{console.warn("[QRCodeJs] Direct image fetch failed via error, attempting proxy..."),h=await Mo(s.image)}catch(e){console.warn("[QRCodeJs] Failed to load image via proxy:",e)}}h||(console.warn("[QRCodeJs] Failed to load image directly and via proxy. Using fallback SVG."),h=Go.FALLBACK_IMAGE_DATA_URL);let m=null;if(n){m=`clip-path-image-${this._instanceId}`;const e=this.document.createElementNS("http://www.w3.org/2000/svg","clipPath");e.setAttribute("id",m);const t=this.document.createElementNS("http://www.w3.org/2000/svg","rect");t.setAttribute("x",Do(l)),t.setAttribute("y",Do(c)),t.setAttribute("width",Do(u)),t.setAttribute("height",Do(p));const o="number"==typeof n?`${n}px`:n;t.setAttribute("rx",o),t.setAttribute("ry",o),e.appendChild(t),this.defs.appendChild(e)}if(s.imageOptions.backgroundColor){const e=this.document.createElementNS("http://www.w3.org/2000/svg","rect");e.setAttribute("x",Do(l)),e.setAttribute("y",Do(c)),e.setAttribute("width",Do(u)),e.setAttribute("height",Do(p)),m&&e.setAttribute("clip-path",`url(#${m})`);const t=Eo(s.imageOptions.backgroundColor);e.setAttribute("fill",t.value),t.alpha<1&&e.setAttribute("opacity",t.alpha.toFixed(7)),this.qrGroup.appendChild(e)}const g=this.document.createElementNS("http://www.w3.org/2000/svg","image");if(g.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",h),g.setAttribute("x",Do(l)),g.setAttribute("y",Do(c)),g.setAttribute("id",`qr-image-${this._instanceId}`),g.setAttribute("width",`${Do(u)}px`),g.setAttribute("height",`${Do(p)}px`),g.setAttribute("preserveAspectRatio","xMidYMid meet"),s.imageOptions?.padding){const e=s.imageOptions.padding;g.setAttribute("x",Do(l+e)),g.setAttribute("y",Do(c+e)),g.setAttribute("width",`${Do(u-2*e)}px`),g.setAttribute("height",`${Do(p-2*e)}px`)}m&&g.setAttribute("clip-path",`url(#${m})`),this.qrGroup.appendChild(g)}createColor({options:e,borderOptions:t,color:o,additionalRotation:r,x:n,y:s,height:i,width:a,name:d,returnSVGGroup:l=!1}){const c=a>i?a:i,u=this.document.createElementNS("http://www.w3.org/2000/svg","rect");if(u.setAttribute("x",Do(n)),u.setAttribute("y",Do(s)),u.setAttribute("height",Do(i)),u.setAttribute("width",Do(a)),u.setAttribute("style",`mask:url(#mask-${d}-${this._instanceId})`),e){let o;if(e.type===P.radial){o=this.document.createElementNS("http://www.w3.org/2000/svg","radialGradient"),o.setAttribute("id",d+"-"+this._instanceId),o.setAttribute("gradientUnits","userSpaceOnUse");let e=n+a/2,r=s+i/2;if(t){const o=t.thickness/2,d=2;E(t,"top")&&!j(t,"bottom",this._hls)?r=s+o*d+i/2:!E(t,"top")&&j(t,"bottom",this._hls)&&(r=s-o*d+i/2),E(t,"right")&&!E(t,"left")?e=n-o*d+a/2:!E(t,"right")&&E(t,"left")&&(e=n+o*d+a/2)}o.setAttribute("fx",Do(e)),o.setAttribute("fy",Do(r)),o.setAttribute("cx",Do(n+a/2)),o.setAttribute("cy",Do(s+i/2)),o.setAttribute("r",Do(c/2))}else{const t=((e.rotation||0)+r)%(2*Math.PI),l=(t+2*Math.PI)%(2*Math.PI);let c=n+a/2,u=s+i/2,p=n+a/2,h=s+i/2;l>=0&&l<=.25*Math.PI||l>1.75*Math.PI&&l<=2*Math.PI?(c-=a/2,u-=i/2*Math.tan(t),p+=a/2,h+=i/2*Math.tan(t)):l>.25*Math.PI&&l<=.75*Math.PI?(u-=i/2,c-=a/2/Math.tan(t),h+=i/2,p+=a/2/Math.tan(t)):l>.75*Math.PI&&l<=1.25*Math.PI?(c+=a/2,u+=i/2*Math.tan(t),p-=a/2,h-=i/2*Math.tan(t)):l>1.25*Math.PI&&l<=1.75*Math.PI&&(u+=i/2,c+=a/2/Math.tan(t),h-=i/2,p-=a/2/Math.tan(t)),o=this.document.createElementNS("http://www.w3.org/2000/svg","linearGradient"),o.setAttribute("id",d+"-"+this._instanceId),o.setAttribute("gradientUnits","userSpaceOnUse"),o.setAttribute("x1",Do(c)),o.setAttribute("y1",Do(u)),o.setAttribute("x2",Do(p)),o.setAttribute("y2",Do(h))}e.colorStops.forEach((e=>{const t=this.document.createElementNS("http://www.w3.org/2000/svg","stop");t.setAttribute("offset",`${Do(100*e.offset)}%`);const r=Eo(e.color);t.setAttribute("stop-color",r.value),r.alpha<1&&t.setAttribute("stop-opacity",r.alpha.toFixed(7)),o.appendChild(t)})),u.setAttribute("fill",`url(#${d}-${this._instanceId})`),this.defs.appendChild(o)}else if(o){const e=Eo(o);u.setAttribute("fill",e.value),e.alpha<1&&u.setAttribute("opacity",e.alpha.toFixed(7))}if(l)return u;d.startsWith("background-color")?this._element.insertBefore(u,this._maskedQrGroup):this.qrGroup.appendChild(u)}createMask(e){const t=`${e}-${this._instanceId}`,o=this.options,r=this.document.createElementNS("http://www.w3.org/2000/svg","mask");r.setAttribute("id",t),r.setAttribute("maskUnits","userSpaceOnUse"),r.setAttribute("x","0"),r.setAttribute("y","0"),r.setAttribute("width",Do(o.width)),r.setAttribute("height",Do(o.height));const n=this.document.createElementNS("http://www.w3.org/2000/svg","g");return n.setAttribute("fill","#fff"),r.appendChild(n),[r,n]}}Go.instanceCount=0,Go.FALLBACK_IMAGE_DATA_URL="data:image/png;base64,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";const Xo={id:"classicDark",name:"Classic Dark",style:{primaryColor:"#ffffff",secondaryColor:"#ffffff",thirdColor:"#bdc3c7",backgroundColor:"#000000",dotShape:G.square,cornerSquareShape:N.square,cornerDotShape:X.square}},No={id:"modernDark",name:"Modern Dark",style:{primaryColor:"#2ecc71",secondaryColor:"#3498db",thirdColor:"#f1c40f",backgroundColor:"#2c3e50",dotShape:G.dot,cornerSquareShape:N.rounded,cornerDotShape:X.dot}},zo={id:"roundedDark",name:"Rounded Dark",style:{primaryColor:"#3498db",secondaryColor:"#2ecc71",thirdColor:"#e74c3c",backgroundColor:"#2c3e50",dotShape:G.rounded,cornerSquareShape:N.rounded,cornerDotShape:X.dot}},Fo={id:"vibrantDark",name:"Vibrant Dark",style:{primaryColor:"#f39c12",secondaryColor:"#9b59b6",thirdColor:"#1abc9c",backgroundColor:"#212121",dotShape:G.rounded,cornerSquareShape:N.rounded,cornerDotShape:X.dot}},Uo={id:"neonDark",name:"Neon Dark",style:{primaryColor:"#f1c40f",secondaryColor:"#e74c3c",thirdColor:"#3498db",backgroundColor:"#000000",dotShape:G.rounded,cornerSquareShape:N.rounded,cornerDotShape:X.dot}},Ko={id:"sunsetDark",name:"Sunset Dark",style:{primaryColor:"#e67e22",secondaryColor:"#8e44ad",thirdColor:"#16a085",backgroundColor:"#000000",dotShape:G.dot,cornerSquareShape:N.rounded,cornerDotShape:X.dot}},Ho={id:"oceanicDark",name:"Oceanic Dark",style:{primaryColor:"#3498db",secondaryColor:"#1abc9c",thirdColor:"#ecf0f1",backgroundColor:"#2c3e50",dotShape:G.rounded,cornerSquareShape:N.square,cornerDotShape:X.dot}},_o={id:"boldDark",name:"Bold Dark",style:{primaryColor:"#e74c3c",secondaryColor:"#9b59b6",thirdColor:"#2ecc71",backgroundColor:"#000000",dotShape:G.square,cornerSquareShape:N.rounded,cornerDotShape:X.square}},Qo={id:"twilightDark",name:"Twilight Dark",style:{primaryColor:"#8e44ad",secondaryColor:"#f39c12",thirdColor:"#16a085",backgroundColor:"#000000",dotShape:G.rounded,cornerSquareShape:N.rounded,cornerDotShape:X.dot}},$o={id:"coralDark",name:"Coral Dark",style:{primaryColor:"#1abc9c",secondaryColor:"#e74c3c",thirdColor:"#f1c40f",backgroundColor:"#000000",dotShape:G.rounded,cornerSquareShape:N.rounded,cornerDotShape:X.dot}},er={id:"midnightSunsetDark",name:"Midnight Sunset Dark",style:{primaryColor:"#9b59b6",secondaryColor:"#f1c40f",thirdColor:"#1abc9c",backgroundColor:"#000000",dotShape:G.square,cornerSquareShape:N.square,cornerDotShape:X.square}},tr={id:"citrusDark",name:"Citrus Dark",style:{primaryColor:"#f39c12",secondaryColor:"#2ecc71",thirdColor:"#ecf0f1",backgroundColor:"#34495e",dotShape:G.dot,cornerSquareShape:N.rounded,cornerDotShape:X.dot}},or={id:"frostDark",name:"Frost Dark",style:{primaryColor:"#3498db",secondaryColor:"#ecf0f1",thirdColor:"#e74c3c",backgroundColor:"#00000",dotShape:G.dot,cornerSquareShape:N.rounded,cornerDotShape:X.square}},rr={id:"neonDark",name:"Neon dark",style:{primaryColor:"#00e676",secondaryColor:"#E67E22",thirdColor:"#0288d1",backgroundColor:"#212121",dotShape:G.rounded,cornerSquareShape:N.rounded,cornerDotShape:X.dot}},nr=[Xo,No,zo,Fo,Uo,Ko,Ho,_o,Qo,$o,er,tr,or,{id:"turquoiseSunDark",name:"Turquoise Sun Dark",style:{primaryColor:"#1abc9c",secondaryColor:"#3498db",thirdColor:"#f1c40f",backgroundColor:"#2c3e50",dotShape:G.rounded,cornerSquareShape:N.square,cornerDotShape:X.dot}},rr,{id:"emeraldBloomDark",name:"Emerald Bloom Dark",style:{primaryColor:"#2ecc71",secondaryColor:"#9b59b6",thirdColor:"#e74c3c",backgroundColor:"#000000",dotShape:G.dot,cornerSquareShape:N.rounded,cornerDotShape:X.square}},{id:"customBorderBlueDark",name:"Custom Border Blue Dark",style:{primaryColor:"#3498db",secondaryColor:"#2980b9",thirdColor:"#1abc9c",backgroundColor:"#2c3e50",dotShape:G.rounded,cornerSquareShape:N.square,cornerDotShape:X.dot,borderColor:"#34495e",borderFontColor:"#ecf0f1"}},{id:"customBorderGreenDark",name:"Custom Border Green Dark",style:{primaryColor:"#2ecc71",secondaryColor:"#27ae60",thirdColor:"#16a085",backgroundColor:"#1B5E20",dotShape:G.square,cornerSquareShape:N.rounded,cornerDotShape:X.square,borderColor:"#2E7D32",borderFontColor:"#ffffff"}}],sr={id:"classic",name:"Classic",style:{primaryColor:"#000000",secondaryColor:"#000000",thirdColor:"#757575",backgroundColor:"#ffffff",dotShape:G.square,cornerSquareShape:N.square,cornerDotShape:X.square}},ir={id:"modern",name:"Modern",style:{primaryColor:"#4CAF50",secondaryColor:"#007fff",thirdColor:"#d81b60",backgroundColor:"#ffffff",dotShape:G.dot,cornerSquareShape:N.rounded,cornerDotShape:X.dot}},ar={id:"rounded",name:"Rounded",style:{primaryColor:"#007bff",secondaryColor:"#4CAF50",thirdColor:"#d32f2f",backgroundColor:"#ffffff",dotShape:G.rounded,cornerSquareShape:N.rounded,cornerDotShape:X.dot}},dr={id:"vibrant",name:"Vibrant",style:{primaryColor:"#ff5722",secondaryColor:"#3f51b5",thirdColor:"#2e7d32",backgroundColor:"#ffffff",dotShape:G.rounded,cornerSquareShape:N.rounded,cornerDotShape:X.dot}},lr={id:"pastel",name:"Pastel",style:{primaryColor:"#f48fb1",secondaryColor:"#26C6DA",thirdColor:"#00695c",backgroundColor:"#f5f5f5",dotShape:G.dot,cornerSquareShape:N.square,cornerDotShape:X.square}},cr={id:"earthy",name:"Earthy",style:{primaryColor:"#795548",secondaryColor:"#4db6ac",thirdColor:"#8e24aa",backgroundColor:"#efebe9",dotShape:G.square,cornerSquareShape:N.square,cornerDotShape:X.square}},ur={id:"sunset",name:"Sunset",style:{primaryColor:"#bf360c",secondaryColor:"#ab47bc",thirdColor:"#00796b",backgroundColor:"#fff3e0",dotShape:G.dot,cornerSquareShape:N.rounded,cornerDotShape:X.dot}},pr={id:"oceanic",name:"Oceanic",style:{primaryColor:"#0288d1",secondaryColor:"#26a69a",thirdColor:"#6a1b9a",backgroundColor:"#e0f7fa",dotShape:G.rounded,cornerSquareShape:N.square,cornerDotShape:X.dot}},hr={id:"bold",name:"Bold",style:{primaryColor:"#d50000",secondaryColor:"#6200ea",thirdColor:"#388e3c",backgroundColor:"#fafafa",dotShape:G.square,cornerSquareShape:N.rounded,cornerDotShape:X.square}},mr={id:"limeGlow",name:"Lime Glow",style:{primaryColor:"#afb42b",secondaryColor:"#536dfe",thirdColor:"#c62828",backgroundColor:"#fffde7",dotShape:G.dot,cornerSquareShape:N.rounded,cornerDotShape:X.dot}},gr={id:"twilight",name:"Twilight",style:{primaryColor:"#4527a0",secondaryColor:"#d84315",thirdColor:"#00796b",backgroundColor:"#eceff1",dotShape:G.rounded,cornerSquareShape:N.rounded,cornerDotShape:X.dot}},fr={id:"meadow",name:"Meadow",style:{primaryColor:"#388e3c",secondaryColor:"#689f38",thirdColor:"#ad1457",backgroundColor:"#f1f8e9",dotShape:G.dot,cornerSquareShape:N.square,cornerDotShape:X.square}},br={id:"coral",name:"Coral",style:{primaryColor:"#c2185b",secondaryColor:"#00838f",thirdColor:"#f57f17",backgroundColor:"#ffebee",dotShape:G.rounded,cornerSquareShape:N.rounded,cornerDotShape:X.dot}},yr={id:"midnightsunset",name:"Midnight Sunset",style:{primaryColor:"#5c6bc0",secondaryColor:"#fbc02d",thirdColor:"#00695c",dotShape:G.square,cornerSquareShape:N.square,cornerDotShape:X.square}},Or={id:"citrus",name:"Citrus",style:{primaryColor:"#f57c00",secondaryColor:"#558b2f",thirdColor:"#6d4c41",backgroundColor:"#fff8e1",dotShape:G.dot,cornerSquareShape:N.rounded,cornerDotShape:X.dot}},Sr={id:"dusk",name:"Dusk",style:{primaryColor:"#6a1b9a",secondaryColor:"#e65100",thirdColor:"#2e7d32",backgroundColor:"#d7ccc8",dotShape:G.rounded,cornerSquareShape:N.square,cornerDotShape:X.dot}},Cr={id:"frost",name:"Frost",style:{primaryColor:"#0277bd",secondaryColor:"#37474f",thirdColor:"#c2185b",backgroundColor:"#e1f5fe",dotShape:G.dot,cornerSquareShape:N.rounded,cornerDotShape:X.square}},kr={id:"autumn",name:"Autumn",style:{primaryColor:"#d84315",secondaryColor:"#827717",thirdColor:"#4a148c",backgroundColor:"#efebe9",dotShape:G.square,cornerSquareShape:N.rounded,cornerDotShape:X.dot}},wr={id:"turquoiseSun",name:"Turquoise Sun",style:{primaryColor:"#1abc9c",secondaryColor:"#3498db",thirdColor:"#f1c40f",backgroundColor:"#ffffff",dotShape:G.rounded,cornerSquareShape:N.square,cornerDotShape:X.dot}},Ar={id:"emeraldBloom",name:"Emerald Bloom",style:{primaryColor:"#2ecc71",secondaryColor:"#9b59b6",thirdColor:"#c0392b",backgroundColor:"#ecf0f1",dotShape:G.dot,cornerSquareShape:N.rounded,cornerDotShape:X.square}},Tr={id:"seaLilac",name:"Sea Lilac",style:{primaryColor:"#16a085",secondaryColor:"#8e44ad",thirdColor:"#95a5a6",backgroundColor:"#ecf0f1",dotShape:G.square,cornerSquareShape:N.rounded,cornerDotShape:X.square}},vr={id:"belizePumpkin",name:"Belize Pumpkin",style:{primaryColor:"#2980b9",secondaryColor:"#d35400",thirdColor:"#7f8c8d",backgroundColor:"#ecf0f1",dotShape:G.dot,cornerSquareShape:N.square,cornerDotShape:X.dot}},qr={id:"midnightGlow",name:"Midnight Glow",style:{primaryColor:"#2c3e50",secondaryColor:"#f39c12",thirdColor:"#1abc9c",backgroundColor:"#ecf0f1",dotShape:G.rounded,cornerSquareShape:N.rounded,cornerDotShape:X.dot}},Dr=[sr,ir,ar,dr,lr,cr,ur,pr,hr,mr,gr,fr,br,{id:"customBorderBlue",name:"Custom Border Blue",style:{primaryColor:"#3498db",secondaryColor:"#2980b9",thirdColor:"#1abc9c",backgroundColor:"#ecf0f1",dotShape:G.rounded,cornerSquareShape:N.square,cornerDotShape:X.dot,borderColor:"#2c3e50",borderRadius:"20%",borderFontColor:"#ecf0f1"}},{id:"customBorderGreen",name:"Custom Border Green",style:{primaryColor:"#2ecc71",secondaryColor:"#27ae60",thirdColor:"#16a085",backgroundColor:"#f0fdf4",dotShape:G.square,cornerSquareShape:N.rounded,cornerDotShape:X.square,borderColor:"#1D8348",borderFontColor:"#ffffff"}},yr,Or,Sr,Cr,kr,wr,Ar,Tr,vr,qr,{id:"asphaltEmerald",name:"Asphalt Emerald",style:{primaryColor:"#34495e",secondaryColor:"#2ecc71",thirdColor:"#f39c12",backgroundColor:"#ffffff"}},{id:"wisteriaDusk",name:"Wisteria Dusk",style:{primaryColor:"#8e44ad",secondaryColor:"#2c3e50",thirdColor:"#27ae60",backgroundColor:"#ecf0f1"}},{id:"sunRiver",name:"Sun River",style:{primaryColor:"#f1c40f",secondaryColor:"#3498db",thirdColor:"#95a5a6",backgroundColor:"#ffffff"}},{id:"forest",name:"Forest",style:{primaryColor:"#1abc9c",secondaryColor:"#2ecc71",thirdColor:"#27ae60",backgroundColor:"#ecf0f1"}},{id:"cosmic",name:"Cosmic",style:{primaryColor:"#f1c40f",secondaryColor:"#1abc9c",thirdColor:"#e74c3c",backgroundColor:"#2c3e50"}},{id:"radiant",name:"Radiant",style:{primaryColor:"#e74c3c",secondaryColor:"#f1c40f",thirdColor:"#2ecc71",backgroundColor:"#ecf0f1"}},{id:"marine",name:"Marine",style:{primaryColor:"#3498db",secondaryColor:"#2980b9",thirdColor:"#16a085",backgroundColor:"#ecf0f1"}},{id:"inverse",name:"Inverse",style:{primaryColor:"#ecf0f1",secondaryColor:"#bdc3c7",thirdColor:"#95a5a6",backgroundColor:"#2c3e50"}},{id:"wetCarrot",name:"Wet Carrot",style:{primaryColor:"#34495e",secondaryColor:"#e67e22",thirdColor:"#e74c3c",backgroundColor:"#bdc3c7"}},{id:"pomegranateSky",name:"Pomegranate Sky",style:{primaryColor:"#e74c3c",secondaryColor:"#3498db",thirdColor:"#9b59b6",backgroundColor:"#bdc3c7"}},...nr];function Ir(e){return Dr.find((t=>t.name.toLowerCase()===e.toLowerCase()))}function Zr(e){return Dr.find((t=>t.id===e))}const Wr={hasBorder:!0,thickness:30,radius:"0",borderOuter:{thickness:0},borderInner:{thickness:0}},Rr={id:"square-border-thin",name:"Square Border (Thin)",options:{borderOptions:{...Wr,thickness:40,radius:"10%",decorations:{top:{enableText:!0,offset:2,curveAdjustment:0,curveDisabled:!0,style:{fontSize:21,fontWeight:"bold"},value:"SCAN ME"},left:{disabled:!0},right:{disabled:!0},bottom:{disabled:!0}}}}},Vr={id:"square-border-medium",name:"Square Border (Medium)",options:{borderOptions:{...Wr,thickness:20,radius:"15%"}}},Er={id:"square-border-thick",name:"Square Border (Thick)",options:{borderOptions:{...Wr,thickness:20,radius:"2%"}}},jr={id:"rounded-border-thin-slight",name:"Rounded Border (Thin, Slight)",options:{borderOptions:{...Wr,thickness:10,radius:"10%"}}},xr={id:"rounded-border-medium-medium",name:"Rounded Border (Medium)",options:{borderOptions:{...Wr,thickness:10,radius:"35%"}}},Br={id:"rounded-border-thick-high",name:"Rounded Border (Thick, High)",options:{borderOptions:{...Wr,thickness:30,radius:"50"}}},Jr={id:"rounded-border-thick-text",name:"Rounded Border (Thick, Text)",options:{borderOptions:{...Wr,thickness:50,borderOuter:{thickness:10},radius:"50%",decorations:{top:{enableText:!0,curveAdjustment:0,offset:4,style:{fontSize:22,fontWeight:"bold"},value:"SCAN ME TO FOLLOW"},bottom:{enableText:!0,offset:2,curveAdjustment:0,style:{fontSize:22,fontWeight:"bold"},value:"YOUR NAME HERE"}}}}},Yr={id:"rounded-border-outside-top-bottom-text",name:"Rounded Border Outside (Top & Bottom Text)",options:{borderOptions:{...Wr,thickness:50,radius:"30",borderOuter:{thickness:10},borderInner:{thickness:6},decorations:{left:{disabled:!0},right:{disabled:!0},top:{enableText:!0,curveAdjustment:0,style:{fontSize:22,fontWeight:"bold"},value:"SCAN ME TO FOLLOW"},bottom:{enableText:!0,offset:-2,curveAdjustment:0,style:{fontSize:22,fontWeight:"bold"},value:"YOUR NAME HERE"}}}}},Mr={id:"rounded-border-outside-left-right-text",name:"Rounded Border Outside (Left & Right Text)",options:{margin:5,borderOptions:{...Wr,thickness:50,radius:"20%",inner:{radius:"20"},borderOuter:{thickness:10},decorations:{top:{disabled:!0},bottom:{disabled:!0},left:{enableText:!0,offset:5,style:{fontSize:20,fontWeight:"bold"},value:"SCAN TO FOLLOW"},right:{enableText:!0,offset:6,curveAdjustment:0,style:{fontSize:20,fontWeight:"bold"},value:"YOUR NAME HERE"}}}}},Lr={id:"rounded-border-top-bottom-text",name:"Rounded Border (Top & Bottom Text)",options:{borderOptions:{...Wr,thickness:50,radius:"30",decorations:{left:{disabled:!0},right:{disabled:!0},top:{enableText:!0,curveAdjustment:0,style:{fontSize:22,fontWeight:"bold"},value:"SCAN ME TO FOLLOW"},bottom:{enableText:!0,offset:-2,curveAdjustment:0,style:{fontSize:22,fontWeight:"bold"},value:"YOUR NAME HERE"}}}}},Pr={id:"rounded-border-left-right-text",name:"Rounded Border (Left & Right Text)",options:{margin:5,borderOptions:{...Wr,thickness:50,radius:"20%",inner:{radius:"20"},decorations:{top:{disabled:!0},bottom:{disabled:!0},left:{enableText:!0,offset:5,style:{fontSize:22,fontWeight:"bold"},value:"SCAN TO FOLLOW"},right:{enableText:!0,offset:5,curveAdjustment:0,style:{fontSize:22,fontWeight:"bold"},value:"YOUR NAME HERE"}}}}},Gr={id:"double-square-border-thin",name:"Double Square Border Inside (Thin)",options:{borderOptions:{...Wr,thickness:14,radius:"2%",borderInner:{thickness:4}}}},Xr={id:"double-square-border-medium",name:"Double Square Border Outside (Medium)",options:{borderOptions:{...Wr,thickness:20,radius:"2%",borderOuter:{thickness:4}}}},Nr={id:"double-rounded-border-medium",name:"Double Rounded Border (Medium)",options:{borderOptions:{...Wr,thickness:60,radius:"25",borderOuter:{thickness:10},borderInner:{thickness:10},decorations:{bottom:{disabled:!0},left:{disabled:!0},right:{disabled:!0},top:{enableText:!0,curveAdjustment:0,offset:4,curveDisabled:!0,value:"SCAN ME",style:{fontSize:30}}}}}},zr={id:"double-rounded-border-thick",name:"Double Rounded Border Outside (Thick)",options:{borderOptions:{...Wr,thickness:40,radius:"20",borderOuter:{thickness:6},decorations:{top:{disabled:!0},left:{disabled:!0},bottom:{enableText:!0,curveAdjustment:0,offset:4,value:"SCAN ME",style:{fontSize:20}},right:{enableText:!0,curveAdjustment:0,offset:4,value:"YOUR NAME",style:{fontSize:20}}}}}},Fr={id:"inner-square-border-medium",name:"Inner Square Border Inside (Medium)",options:{borderOptions:{...Wr,thickness:10,radius:"2%",borderInner:{thickness:12}}}},Ur={id:"outer-rounded-border-medium",name:"Outer Rounded Border (Medium)",options:{borderOptions:{...Wr,inner:{radius:"20%"},thickness:15,radius:"25%",borderOuter:{thickness:20}}}},Kr={id:"rounded-inner-offset-top-text",name:"Rounded Inner Offset Top Text",options:{borderOptions:{...Wr,thickness:25,radius:"30%",borderInner:{thickness:6},decorations:{top:{enableText:!0,offset:3,curveAdjustment:0,curveDisabled:!1,style:{fontSize:20},value:"SCAN ME"}}}}},Hr={id:"square-thick-outer-thin-inner",name:"Square Thick Outer/Thin Inner",options:{borderOptions:{...Wr,thickness:10,radius:"50%",inner:{radius:"12%"},borderOuter:{thickness:10},borderInner:{thickness:15},decorations:{bottom:{enableText:!0,offset:-3,curveAdjustment:0,curveDisabled:!0,style:{fontSize:18,fontWeight:"normal"}}}}}},_r={id:"square-thick-outer-round",name:"Square Thick Outer Round",options:{borderOptions:{...Wr,thickness:25,radius:"50%",inner:{radius:"15%"},borderOuter:{thickness:10},borderInner:{thickness:20},decorations:{bottom:{enableText:!0,offset:-3,curveAdjustment:0,curveDisabled:!0,style:{fontSize:18,fontWeight:"normal"}}}}}},Qr={id:"square-thick-outer-thin-inner-bottom-text",name:"Square Thick Outer/Thin Inner Bottom Text",options:{borderOptions:{...Wr,thickness:10,radius:"4%",inner:{radius:"12%"},borderOuter:{thickness:5},borderInner:{thickness:20},decorations:{bottom:{disabled:!0},left:{disabled:!0},right:{disabled:!0},top:{disabled:!0}}}}},$r=[Rr,Vr,Er,jr,xr,Br,Jr,Lr,Pr,Yr,Mr,Gr,Xr,Nr,zr,Fr,Ur,Kr,Hr,_r,{id:"pill-curved-text-top-bottom",name:"Pill Curved Text Top/Bottom",options:{borderOptions:{...Wr,thickness:35,borderInner:{thickness:10},radius:"50%",decorations:{top:{enableText:!0,offset:2,curveAdjustment:0,curveDisabled:!1,style:{fontSize:20},value:"TOP CURVED TEXT"},bottom:{enableText:!0,offset:-2,curveAdjustment:0,curveDisabled:!1,style:{fontSize:20},value:"BOTTOM CURVED TEXT"}}}}},{id:"double-varied-thickness-top-text",name:"Double Varied Thickness Top Text",options:{borderOptions:{...Wr,thickness:25,radius:"10%",borderOuter:{thickness:8},borderInner:{thickness:4},decorations:{top:{enableText:!0,offset:3,curveAdjustment:0,curveDisabled:!0,style:{fontSize:19},value:"IMPORTANT INFO"},bottom:{enableText:!0,curveAdjustment:0,curveDisabled:!0,style:{fontSize:19},value:"SCAN ME"}}}}},{id:"outer-border-white-rounded-text",name:"Outer Border White Rounded Text",options:{borderOptions:{...Wr,thickness:25,color:"#ffffff",radius:"25%",borderOuter:{thickness:10},decorations:{top:{disabled:!0},left:{disabled:!0},right:{disabled:!0},bottom:{enableText:!0,offset:10,curveAdjustment:0,curveDisabled:!1,style:{fontSize:18,fontWeight:"bold",letterSpacing:1,fontColor:"#000000"},value:"SCAN TO FOLLOW"}}}}},{id:"inner-border-white-rounded-text",name:"Inner Border White Rounded Text",options:{borderOptions:{...Wr,thickness:25,color:"#ffffff",radius:"25%",borderInner:{thickness:10},decorations:{top:{disabled:!0},left:{disabled:!0},right:{disabled:!0},bottom:{enableText:!0,offset:-4,style:{fontSize:18,fontWeight:"bold",letterSpacing:1,fontColor:"#000000"},value:"SCAN TO FOLLOW"}}}}},{id:"inner-offset-square-text",name:"Inner Offset Square Text",options:{borderOptions:{...Wr,thickness:30,radius:"16%",borderInner:{thickness:10},decorations:{top:{disabled:!0},left:{disabled:!0},right:{disabled:!0},bottom:{enableText:!0,offset:2,curveAdjustment:0,curveDisabled:!0,style:{fontSize:22},value:"SCAN ME"}}}}},{id:"thin-rounded-all-sides-text",name:"Thin Rounded All Sides Text",options:{borderOptions:{...Wr,borderInner:{thickness:10},thickness:14,radius:"20%",decorations:{top:{enableText:!0,value:"TOP",style:{fontSize:12},offset:3},bottom:{enableText:!0,value:"BOTTOM",style:{fontSize:12},offset:1},left:{enableText:!0,value:"LEFT",style:{fontSize:12},offset:4},right:{enableText:!0,value:"RIGHT",style:{fontSize:12},offset:4}}}}},{id:"thick-square-double-text",name:"Thick Square Double Text",options:{borderOptions:{...Wr,thickness:25,radius:"2%",borderOuter:{thickness:5},borderInner:{thickness:5},decorations:{left:{disabled:!0},right:{disabled:!0},top:{enableText:!0,value:"HEADER",offset:4,style:{fontSize:18}},bottom:{enableText:!0,value:"FOOTER",offset:4,style:{fontSize:18}}}}}},{id:"high-radius-thin-double-curved-text",name:"High Radius Thin Double Curved Text",options:{margin:-10,borderOptions:{...Wr,thickness:26,radius:"35%",borderOuter:{thickness:4},borderInner:{thickness:13},decorations:{top:{enableText:!0,value:"TOP TEXT",offset:6,curveDisabled:!1,style:{fontSize:16}},right:{disabled:!0},left:{disabled:!0},bottom:{enableText:!0,value:"BOTTOM TEXT",curveDisabled:!1,offset:4,style:{fontSize:16}}}}}},Qr,{id:"minimalist-thin-square",name:"Minimalist Thin Square",options:{borderOptions:{...Wr,thickness:5,radius:"4%"}}},{id:"minimalist-thin-rounded",name:"Minimalist Thin Rounded",options:{borderOptions:{...Wr,thickness:5,radius:"25%"}}},{id:"chunky-square-border-text",name:"Chunky Square Border Text",options:{borderOptions:{...Wr,thickness:60,radius:"5%",borderOuter:{thickness:6},borderInner:{thickness:6},decorations:{top:{enableText:!0,value:"SCAN ME",style:{fontSize:18,fontWeight:"bold"},offset:4},left:{enableText:!0,value:"LEFT TEXT",style:{fontSize:18,fontWeight:"bold"},offset:4},right:{enableText:!0,value:"RIGHT TEXT",style:{fontSize:18,fontWeight:"bold"},offset:4},bottom:{enableText:!0,value:"BOTTOM TEXT",style:{fontSize:18,fontWeight:"bold"},offset:4}}}}},{id:"chunky-rounded-border",name:"Chunky Rounded Border",options:{borderOptions:{...Wr,thickness:60,radius:"50%",inner:{radius:"15%"},borderOuter:{thickness:6},borderInner:{thickness:6},decorations:{top:{enableText:!0,value:"SCAN ME",style:{fontSize:18,fontWeight:"bold"},offset:4},left:{enableText:!0,value:"LEFT TEXT",style:{fontSize:18,fontWeight:"bold"},offset:4},right:{enableText:!0,value:"RIGHT TEXT",style:{fontSize:18,fontWeight:"bold"},offset:4},bottom:{enableText:!0,value:"BOTTOM TEXT",style:{fontSize:18,fontWeight:"bold"},offset:4}}}}},{id:"double-thick-main-thin-subs-rounded",name:"Double Thick Main Thin Subs Rounded",options:{borderOptions:{...Wr,thickness:25,radius:"20%",borderOuter:{thickness:6},borderInner:{thickness:6},decorations:{top:{enableText:!0,value:"SCAN ME",style:{fontSize:16,fontWeight:"bold"},offset:5},left:{enableText:!0,value:"LEFT TEXT",style:{fontSize:16,fontWeight:"bold"},offset:6},right:{enableText:!0,value:"RIGHT TEXT",style:{fontSize:16,fontWeight:"bold"},offset:6},bottom:{enableText:!0,value:"BOTTOM TEXT",style:{fontSize:16,fontWeight:"bold"},offset:4}}}}},{id:"double-thick-main-thick-subs-square",name:"Double Thick Main Thick Subs Square",options:{borderOptions:{...Wr,thickness:25,radius:"4%",borderOuter:{thickness:6},borderInner:{thickness:10},decorations:{top:{enableText:!0,style:{fontSize:16,fontWeight:"bold"},offset:5,value:"SCAN ME"},left:{enableText:!0,style:{fontSize:16,fontWeight:"bold"},offset:7,value:"LEFT TEXT"},right:{enableText:!0,style:{fontSize:16,fontWeight:"bold"},offset:7,value:"RIGHT TEXT"},bottom:{enableText:!0,style:{fontSize:16,fontWeight:"bold"},offset:5,value:"BOTTOM TEXT"}}}}},{id:"inner-thick-rounded",name:"Inner Thick Rounded",options:{borderOptions:{...Wr,thickness:0,radius:"35%",borderOuter:{thickness:0},borderInner:{thickness:35},inner:{radius:"15%"},decorations:{top:{enableText:!0,value:"SCAN ME",style:{fontSize:18,fontWeight:"bold",fontColor:"#000"},offset:36},left:{enableText:!0,value:"LEFT TEXT",style:{fontSize:18,fontWeight:"bold",fontColor:"#000"},offset:38},right:{enableText:!0,value:"RIGHT TEXT",style:{fontSize:18,fontWeight:"bold",fontColor:"#000"},offset:36},bottom:{enableText:!0,value:"BOTTOM TEXT",style:{fontSize:18,fontWeight:"bold",fontColor:"#000"},offset:33}}}}},{id:"outer-thick-square",name:"Outer Thick Square",options:{borderOptions:{...Wr,thickness:10,radius:"2%",borderOuter:{thickness:20},borderInner:{thickness:0}}}},{id:"pill-double-thin-text",name:"Pill Double Thin Text",options:{margin:5,borderOptions:{...Wr,thickness:30,radius:"50%",borderOuter:{thickness:6},borderInner:{thickness:6},decorations:{top:{disabled:!1,enableText:!0,value:"SCAN ME",offset:5,style:{fontSize:18,fontWeight:"bold"}},left:{disabled:!0},right:{disabled:!0},bottom:{disabled:!1,enableText:!0,value:"BOTTOM TEXT",offset:3,style:{fontSize:18,fontWeight:"bold"}}}}}},{id:"double-thin-circle-inner-rounded",name:"Double Thin Circle Inner Rounded",options:{margin:5,borderOptions:{...Wr,thickness:20,radius:"10%",inner:{radius:"25%"},borderOuter:{thickness:4},borderInner:{thickness:4},decorations:{top:{disabled:!1},left:{disabled:!0},right:{disabled:!0},bottom:{disabled:!1}}}}},{id:"square-top-bottom-text",name:"Square Top/Bottom Text",options:{borderOptions:{...Wr,thickness:30,radius:"10%",decorations:{top:{enableText:!0,value:"SCAN CODE",offset:1,style:{fontSize:16}},bottom:{enableText:!0,value:"VISIT OUR SITE",style:{fontSize:16}}}}}},{id:"rounded-left-right-text",name:"Rounded Left/Right Text",options:{margin:5,borderOptions:{...Wr,thickness:30,radius:"20%",decorations:{top:{disabled:!0},bottom:{disabled:!0},left:{enableText:!0,offset:2,value:"LEFT TEXT",style:{fontSize:19}},right:{enableText:!0,offset:2,value:"RIGHT TEXT",style:{fontSize:19}}}}}},{id:"square-left-text-only",name:"Square Left Text Only",options:{margin:5,borderOptions:{...Wr,borderInner:{thickness:10},thickness:45,radius:"5%",decorations:{left:{enableText:!0,value:"SCAN ME",offset:2,style:{fontSize:20,fontWeight:"bold",letterSpacing:1}},top:{disabled:!0},bottom:{disabled:!0},right:{disabled:!0}}}}},{id:"square-right-text-only",name:"Square Right Text Only",options:{margin:5,borderOptions:{...Wr,borderInner:{thickness:10},thickness:45,radius:"5%",decorations:{right:{enableText:!0,value:"WEBSITE.COM",offset:2,style:{fontSize:20,fontWeight:"bold",letterSpacing:1}},top:{disabled:!0},bottom:{disabled:!0},left:{disabled:!0}}}}},{id:"rounded-left-right-different-text",name:"Rounded Left+Right Different Text",options:{margin:20,borderOptions:{...Wr,borderInner:{thickness:10},thickness:40,radius:"35%",decorations:{left:{enableText:!0,value:"SCAN",style:{fontSize:19,fontWeight:"bold"}},right:{enableText:!0,value:"NOW",style:{fontSize:19,fontWeight:"bold"}},top:{disabled:!0},bottom:{disabled:!0}}}}},{id:"square-left-right-identical-text",name:"Square Left+Right Identical Text",options:{margin:5,borderOptions:{...Wr,borderInner:{thickness:10},thickness:40,radius:"2%",decorations:{left:{enableText:!0,value:"QR CODE",style:{fontSize:18,fontWeight:"bold"}},right:{enableText:!0,value:"QR CODE",style:{fontSize:18,fontWeight:"bold"}},top:{disabled:!0},bottom:{disabled:!0}}}}},{id:"pill-left-right-bottom-text",name:"Pill Left Right Bottom Text",options:{margin:20,borderOptions:{...Wr,borderInner:{thickness:10},thickness:45,inner:{radius:"45%",verticalOffset:-5},radius:"50%",decorations:{top:{disabled:!0},left:{enableText:!0,value:"FOLLOW US",offset:5,style:{fontSize:18,fontWeight:"bold"}},right:{enableText:!0,value:"CONTACT US",offset:5,style:{fontSize:18,fontWeight:"bold"}},bottom:{enableText:!0,value:"WEBSITE.COM",style:{fontSize:18,fontWeight:"bold"}}}}}},{id:"pill-left-right-top-text",name:"Pill Left Right Top Text",options:{margin:20,borderOptions:{...Wr,borderInner:{thickness:10},thickness:45,inner:{radius:"45%",verticalOffset:-5},radius:"50%",decorations:{top:{enableText:!0,value:"WEBSITE.COM",offset:5,curveDisabled:!1,style:{fontSize:20,fontWeight:"bold"}},left:{enableText:!0,value:"FOLLOW US",offset:5,style:{fontSize:18,fontWeight:"bold"}},right:{enableText:!0,value:"SHARE LINK",offset:5,style:{fontSize:18,fontWeight:"bold"}},bottom:{disabled:!0}}}}}];function en(e){return $r.find((t=>t.name.toLowerCase()===e.toLowerCase()))}function tn(e){return $r.find((t=>t.id===e))}const on=[{id:"scan-me-top",name:"Scan Me (Top)",options:{topValue:"SCAN ME"}},{id:"scan-me-bottom",name:"Scan Me (Bottom)",options:{bottomValue:"SCAN ME"}},{id:"visit-website-top",name:"Visit Website (Top)",options:{topValue:"Visit Our Website"}},{id:"visit-website-bottom",name:"Visit Website (Bottom)",options:{bottomValue:"Visit Our Website"}},{id:"follow-us-left",name:"Follow Us (Left)",options:{leftValue:"Follow Us!"}},{id:"follow-us-right",name:"Follow Us (Right)",options:{rightValue:"Follow Us!"}},{id:"contact-info-bottom",name:"Contact Info (Bottom)",options:{bottomValue:"Contact Information"}},{id:"scan-to-pay-top",name:"Scan To Pay (Top)",options:{topValue:"Scan to Pay"}},{id:"product-details-bottom",name:"Product Details (Bottom)",options:{bottomValue:"View Product Details"}},{id:"event-info-top-bottom",name:"Event Info (Top/Bottom)",options:{topValue:"EVENT DETAILS",bottomValue:"Scan for Info"}},{id:"lost-found-all-sides",name:"Lost & Found (All Sides)",options:{topValue:"LOST?",bottomValue:"SCAN TO RETURN",leftValue:"If Found",rightValue:"Please Scan"}},{id:"scan-for-wifi-top",name:"Scan for WiFi (Top)",options:{topValue:"Scan for WiFi Access"}},{id:"get-directions-bottom",name:"Get Directions (Bottom)",options:{bottomValue:"Get Directions Here"}},{id:"special-offer-top",name:"Special Offer (Top)",options:{topValue:"SPECIAL OFFER INSIDE!"}},{id:"scan-to-download-bottom",name:"Scan to Download (Bottom)",options:{bottomValue:"Scan to Download App"}},{id:"register-now-top",name:"Register Now (Top)",options:{topValue:"REGISTER NOW"}},{id:"scan-to-learn-more",name:"Scan to Learn More (Bottom)",options:{bottomValue:"Scan to Learn More"}},{id:"scan-me-animated-top",name:"Scan Me Animated (Top - Placeholder)",options:{topValue:"SCAN ME! ->"}},{id:"your-text-here-all",name:"Your Text Here (All Sides)",options:{topValue:"Top Text Here",bottomValue:"Bottom Text Here",leftValue:"Left Text",rightValue:"Right Text"}},{id:"website-url-bottom",name:"Website URL (Bottom)",options:{bottomValue:"www.example.com"}},{id:"call-to-action-top-bottom",name:"Call To Action (Top/Bottom)",options:{topValue:"SCAN NOW!",bottomValue:"LIMITED TIME"}},{id:"empty-text-options",name:"Empty Text Options (Clear All)",options:{topValue:null,bottomValue:null,leftValue:null,rightValue:null}}];function rn(e){return on.find((t=>t.name.toLowerCase()===e.toLowerCase()))}function nn(e){return on.find((t=>t.id===e))}var sn;!function(e){e.svg="svg",e.png="png",e.jpeg="jpeg",e.webp="webp"}(sn||(sn={})),Object.assign(O.stringToBytesFuncs,{UTF8:e=>function(e){const t=[];for(let o=0;o<e.length;o++){let r=e.charCodeAt(o);r<128?t.push(r):r<2048?t.push(192|r>>6,128|63&r):r<55296||r>=57344?t.push(224|r>>12,128|r>>6&63,128|63&r):(o++,r=65536+((1023&r)<<10|1023&e.charCodeAt(o)),t.push(240|r>>18,128|r>>12&63,128|r>>6&63,128|63&r))}return t}(e)});let an=class e{get size(){return this.qrSVG?{width:this.qrSVG.width,height:this.qrSVG.height}:void 0}constructor(t,o=!1){this._svgId=`qr-svg-${Math.random().toString(36).substring(2,9)}`;const r=t;let n=oe;e._selectedTemplate&&(n="id"in e._selectedTemplate&&"options"in e._selectedTemplate?e._selectedTemplate.options:e._selectedTemplate);let s={};e._selectedBorder&&(s="id"in e._selectedBorder&&"options"in e._selectedBorder?e._selectedBorder.options:e._selectedBorder);let i={};if(e._selectedStyle){const{isValid:t,errors:o}=Q(e._selectedStyle);t?i=_(e._selectedStyle):console.warn("Invalid static style options ignored during instantiation:",o)}let a={};e._selectedImage&&!e._selectedImageOverride&&(a={image:e._selectedImage});const d={};if(e._selectedText&&!e._selectedTextOverride){let t=null;if(t="id"in e._selectedText&&"options"in e._selectedText?e._selectedText.options:e._selectedText,t){d.borderOptions||(d.borderOptions={}),d.borderOptions.decorations||(d.borderOptions.decorations={});const e=d.borderOptions.decorations;void 0!==t.topValue&&(e.top={value:null===t.topValue?void 0:t.topValue,enableText:null!==t.topValue}),void 0!==t.leftValue&&(e.left={value:null===t.leftValue?void 0:t.leftValue,enableText:null!==t.leftValue}),void 0!==t.rightValue&&(e.right={value:null===t.rightValue?void 0:t.rightValue,enableText:null!==t.rightValue}),void 0!==t.bottomValue&&(e.bottom={value:null===t.bottomValue?void 0:t.bottomValue,enableText:null!==t.bottomValue})}}const l=k(n,s,d,i,a,r),{warnings:c,validatedOptions:u}=vo(l);this.options=K(u);const p={};if(e._selectedImageOverride&&e._selectedImage&&(p.image=e._selectedImage),e._selectedTextOverride&&e._selectedText){p.borderOptions||(p.borderOptions={}),p.borderOptions.decorations||(p.borderOptions.decorations={});let t=null;if(t="id"in e._selectedText&&"options"in e._selectedText?e._selectedText.options:e._selectedText,t){const e=p.borderOptions.decorations;void 0!==t.topValue&&(e.top={value:null===t.topValue?void 0:t.topValue,enableText:null!==t.topValue}),void 0!==t.leftValue&&(e.left={value:null===t.leftValue?void 0:t.leftValue,enableText:null!==t.leftValue}),void 0!==t.rightValue&&(e.right={value:null===t.rightValue?void 0:t.rightValue,enableText:null!==t.rightValue}),void 0!==t.bottomValue&&(e.bottom={value:null===t.bottomValue?void 0:t.bottomValue,enableText:null!==t.bottomValue})}}return Object.keys(p).length>0&&(this.options=K(k(this.options,p))),c.length>0&&this._logValidationWarnings("QR Code Options Validation Warnings:",c),this.update(),this}static setTemplate(t){if(null===t)return e._selectedTemplate=null,e;if("string"==typeof t){const o=t,r=ko(o);r?e._selectedTemplate=r:(console.warn(`QR Code template name "${o}" not found. Using base template.`),e._selectedTemplate=oe)}else e._selectedTemplate=t;return e}static setTemplateId(t){if(null===t)return e._selectedTemplate=null,e;const o=wo(t);return o?e._selectedTemplate=o:(console.warn(`QR Code template ID "${t}" not found in setTemplateId. Using default.`),e._selectedTemplate=oe),e}static getTemplates(){return{findTextTemplateById:nn,findTextByName:rn,findTemplateByName:ko,findTemplateById:wo,findBorderById:tn,findBorderByName:en,findStyleById:Zr,findStyleByName:Ir,baseTemplates:Co,borderTemplates:$r,styleTemplates:Dr,textTemplates:on}}static setStyle(t){if(null===t)return e._selectedStyle=null,e;let o=null;if("string"==typeof t){const r=t,n=Ir(r);n?(o=n.style,e._selectedStyle=o):(console.warn(`QR Code style name "${r}" not found in setStyle. Ignoring.`),e._selectedStyle=null)}else{const{isValid:r,errors:n}=Q(t);r?(o=t,e._selectedStyle=o):(console.warn("Invalid style options object provided to setStyle:",n),e._selectedStyle=null)}return e}static setBorder(t){if(null===t)return e._selectedBorder=null,e;if("string"==typeof t){const o=t,r=en(o);r?e._selectedBorder=r:(console.warn(`QR Code border template name "${o}" not found. Ignoring.`),e._selectedBorder=null)}else e._selectedBorder={borderOptions:t};return e}static setBorderId(t){if(null===t)return e._selectedBorder=null,e;const o=tn(t);return o?e._selectedBorder=o:(console.warn(`QR Code border template ID "${t}" not found in setBorderId. Ignoring.`),e._selectedBorder=null),e}static setStyleId(t){if(null===t)return e._selectedStyle=null,e;const o=Zr(t);return o?e._selectedStyle=o.style:(console.warn(`QR Code style ID "${t}" not found in setStyleId. Ignoring.`),e._selectedStyle=null),e}static setImage(t,o){return e._selectedImage=t,e._selectedImageOverride=!!o?.override,e}static setText(t,o){if(null===t)e._selectedText=null;else if("string"==typeof t){const o=rn(t);o?e._selectedText=o:(console.warn(`QR Code text template name "${t}" not found. Ignoring.`),e._selectedText=null)}else e._selectedText=t;return e._selectedTextOverride=!!o?.override,e}static setTextId(t,o){if(null===t)e._selectedText=null;else{const o=nn(t);console.log("foundTextTemplate",o),o?e._selectedText=o:(console.warn(`QR Code text template ID "${t}" not found in setTextId. Ignoring.`),e._selectedText=null)}return e._selectedTextOverride=!!o?.override,e}getOptions(){return this.options}async update(e){const t=e?k(this.options,e):this.options,{warnings:o,validatedOptions:r}=vo(t);if(o.length>0&&this._logValidationWarnings("QR Code JS Options Update Validation Warnings:",o),this.options=K(r),!this.options.data)return void console.warn("QR Code update called without data.");this.options.stringToBytesFuncs&&(Object.assign(O.stringToBytesFuncs,this.options.stringToBytesFuncs),delete this.options.stringToBytesFuncs),this.qr=new O(this.options.qrOptions.typeNumber,this.options.qrOptions.errorCorrectionLevel);const n=this.options.qrOptions?.mode||function(e){switch(!0){case/^[0-9]*$/.test(e):return y.numeric;case/^[0-9A-Z $%*+\-./:]*$/.test(e):return y.alphanumeric;case/[^\u0000-\u00ff]/.test(e):return y.unicode;default:return y.byte}}(this.options.data);this.qr.addData(this.options.data,n),this.qr.make(),await this._setupSvgAsync(),this.svgDrawingPromise&&await this.svgDrawingPromise;const s=this.qrSVG?.element;if(this.container&&s){const e=this.container.querySelector(`#${this._svgId}`);e?e!==s&&this.container.replaceChild(s,e):this.container.appendChild(s)}}append(e){return e?(this.container=e,this.qrSVG?.element&&!e.querySelector(`#${this._svgId}`)&&e.appendChild(this.qrSVG.element),this):(console.warn("QR Code append could not find container."),this)}async applyExtension(e){if(!e)throw new Error("Extension function should be defined.");this.extension=e,await this.update()}async deleteExtension(){this.extension=void 0,await this.update()}async serialize(e=!1){if(!this.qr)throw new Error("QR code is empty");if(this.qrSVG?.element||await this._setupSvgAsync(),this.svgDrawingPromise&&await this.svgDrawingPromise,!this.qrSVG?.element)return;let t=this.qrSVG.element;if(e){const e=this.qrSVG.element.cloneNode(!0);e.style.filter="invert(1)",t=e}let o=(new XMLSerializer).serializeToString(t);return o='<?xml version="1.0" standalone="no"?>\r\n'+o,o}async _setupSvgAsync(){if(!this.qr)return;let e=this.qr.getModuleCount();this.options.imageOptions.mode===F.background&&this.options.shape!==z.circle&&(e+=2);let t=Math.ceil((this.options.shape===z.circle?Math.sqrt(1.8):1.1)*e);t%2==0&&(t-=1);let o=0;this.options.imageOptions.mode===F.background&&(o+=this.options.imageOptions.margin||0);const r=Math.ceil(this.options.dotsOptions.size*(t+2*o)),n=this.options.borderOptions;let s=0,i=0;const a={top:0,right:0,bottom:0,left:0},d={top:0,right:0,bottom:0,left:0},l={top:0,right:0,bottom:0,left:0},c=n?.noBorderThickness||n?.thickness?n.thickness/4:0;if(n?.hasBorder){const e=n.borderOuter?.thickness?2*n.borderOuter?.thickness:0,t=n.borderInner?.thickness?2*n.borderInner?.thickness:0;e>0&&(d.top=e/2,d.bottom=e/2,d.left=e/2,d.right=e/2),t>0&&(l.top=t/2,l.bottom=t/2,l.left=t/2,l.right=t/2),E(n,"left")?(a.left=n.thickness,s+=n.thickness):(a.left=c,s+=c),E(n,"right")?(a.right=n.thickness,s+=n.thickness):(a.right=c,s+=c),E(n,"top")?(a.top=n.thickness,i+=n.thickness):(a.top=c,i+=c),j(n,"bottom",this._hls())?(a.bottom=n.thickness,i+=n.thickness):(a.bottom=c,i+=c)}const u=r+s,p=r+i;this.qrSVG=new Go({...this.options,width:u,height:p,bordersMain:a,bordersOuter:d,bordersInner:l,errorCorrectionPercent:H[this.options.qrOptions.errorCorrectionLevel],hls:this._hls()}),this.qrSVG?.element?(this.qrSVG.element.id=this._svgId,this.svgDrawingPromise=this.qrSVG.drawQR(this.qr).then((()=>{this.qrSVG?.element&&(this.options.instanceId=this.qrSVG._instanceId,this.options.borderOptions?.hasBorder&&L(this.options.borderOptions)(this.qrSVG.element,this.options,r,this.qrSVG.drawBackgroundForBorder.bind(this.qrSVG),a,d,l,c,this._hls),this.extension?.(this.qrSVG.element,this.options))})).catch((e=>{throw console.error("Error during SVG drawing or post-processing:",e),e}))):console.error("QRSVG element not created immediately after instantiation.")}async _drawToCanvasForValidation(e){const{width:t=300,height:r=300}=this.qrSVG?.svgSize??e??o,n=t,s=r,i=document.createElement("canvas");i.width=n,i.height=s;const a=await this.serialize();if(!a)throw new Error("Failed to serialize SVG.");const d="data:image/svg+xml;base64,"+btoa(a);return new Promise(((e,t)=>{const o=new Image;o.width=n,o.height=s,o.crossOrigin="Anonymous",o.onload=()=>{const r=i.getContext("2d");if(!r)return t(new Error("Could not get canvas 2D context"));r.drawImage(o,0,0,n,s),e(i)},o.onerror=o.onabort=t,o.src=d}))}async drawToCanvas(e){const{width:t=300,height:r=300}=this.qrSVG?.svgSize??e??o,n=1*t,s=1*r,i=document.createElement("canvas");i.width=n,i.height=s;const a=(async()=>{try{const e=await this.serialize();if(!e)return void console.warn("SVG serialization returned empty.");const o="data:image/svg+xml;base64,"+btoa(e),a=new Image;a.width=n,a.height=s,await new Promise(((e,d)=>{a.onload=()=>{const o=Math.ceil(2*Math.max(t,r)/Math.max(a.width,a.height));let l;try{l=new OffscreenCanvas(a.width*o*2,a.height*o*2)}catch(e){l=document.createElement("canvas"),l.width=a.width*o*2,l.height=a.height*o*2}const c=l.getContext("2d");if(!c)return d(new Error("Could not get OffscreenCanvas 2D context"));c.drawImage(a,0,0,l.width,l.height);const u=i.getContext("2d");if(!u)return d(new Error("Could not get canvas 2D context"));u.drawImage(l,0,0,l.width,l.height,0,0,n,s),e()},a.onerror=e=>d(new Error(`Image load error: ${e}`)),a.onabort=()=>d(new Error("Image load aborted")),a.src=o}))}catch(e){throw console.error("Error drawing to canvas:",e),e}})();return{canvas:i,canvasDrawingPromise:a}}downloadURI(e,t){const o=document.createElement("a");o.download=t,o.href=e,document.body.appendChild(o),o.click(),document.body.removeChild(o)}async download(e,t){if("undefined"==typeof Blob)throw new Error("Cannot download in Node.js environment");let o=sn.png,r="qr";if(e&&(e.name&&(r=e.name),e.extension&&(o=e.extension)),"svg"===o.toLowerCase()){const e=await this.serialize();if(!e)return;const t="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(e);this.downloadURI(t,`${r}.svg`)}else{const e=await this.drawToCanvas(t);if(!e)return;const{canvas:n,canvasDrawingPromise:s}=e;await s;const i=n.toDataURL(`image/${o}`);this.downloadURI(i,`${r}.${o}`)}}async createOptimizedQRCanvas(e){const{width:t=300,height:r=300}=this.qrSVG?.svgSize??e??o,n=document.createElement("canvas");n.width=t,n.height=r;const s=await this.serialize();if(!s)throw new Error("Failed to serialize SVG.");const i="data:image/svg+xml;base64,"+btoa(Array.from((new TextEncoder).encode(s)).map((e=>String.fromCharCode(e))).join(""));return new Promise(((e,o)=>{const s=new Image;s.width=t,s.height=r,s.crossOrigin="Anonymous",s.onload=()=>{const i=n.getContext("2d");if(!i)return o(new Error("Could not get canvas 2D context"));i.imageSmoothingEnabled=!1,i.drawImage(s,0,0,t,r),this.applyQRThreshold(n),e(n)},s.onerror=e=>o(new Error(`Image load error: ${e}`)),s.onabort=()=>o(new Error("Image load aborted")),s.src=i}))}applyQRThreshold(e){const t=e.getContext("2d");if(!t)return;const o=t.getImageData(0,0,e.width,e.height),r=o.data;for(let e=0;e<r.length;e+=4){const t=(r[e]+r[e+1]+r[e+2])/3<128?0:255;r[e]=r[e+1]=r[e+2]=t}t.putImageData(o,0,0)}_hls(){return!1}_logValidationWarnings(e,t){console.warn(e),t.forEach((e=>{console.warn(`option: ${e.path} - '${e.value}' : ${e.message}`)}))}};an.version="0.10.0",an._selectedTemplate=null,an._selectedBorder=null,an._selectedStyle=null,an._selectedImage=null,an._selectedImageOverride=!1,an._selectedText=null,an._selectedTextOverride=!1;const dn=new TextEncoder,ln=new TextDecoder;function cn(e){if(Uint8Array.fromBase64)return Uint8Array.fromBase64("string"==typeof e?e:ln.decode(e),{alphabet:"base64url"});let t=e;t instanceof Uint8Array&&(t=ln.decode(t)),t=t.replace(/-/g,"+").replace(/_/g,"/").replace(/\s/g,"");try{return function(e){if(Uint8Array.fromBase64)return Uint8Array.fromBase64(e);const t=atob(e),o=new Uint8Array(t.length);for(let e=0;e<t.length;e++)o[e]=t.charCodeAt(e);return o}(t)}catch{throw new TypeError("The input to be decoded is not correctly encoded.")}}class un extends Error{static code="ERR_JOSE_GENERIC";code="ERR_JOSE_GENERIC";constructor(e,t){super(e,t),this.name=this.constructor.name,Error.captureStackTrace?.(this,this.constructor)}}class pn extends un{static code="ERR_JWT_CLAIM_VALIDATION_FAILED";code="ERR_JWT_CLAIM_VALIDATION_FAILED";claim;reason;payload;constructor(e,t,o="unspecified",r="unspecified"){super(e,{cause:{claim:o,reason:r,payload:t}}),this.claim=o,this.reason=r,this.payload=t}}class hn extends un{static code="ERR_JWT_EXPIRED";code="ERR_JWT_EXPIRED";claim;reason;payload;constructor(e,t,o="unspecified",r="unspecified"){super(e,{cause:{claim:o,reason:r,payload:t}}),this.claim=o,this.reason=r,this.payload=t}}class mn extends un{static code="ERR_JOSE_ALG_NOT_ALLOWED";code="ERR_JOSE_ALG_NOT_ALLOWED"}class gn extends un{static code="ERR_JOSE_NOT_SUPPORTED";code="ERR_JOSE_NOT_SUPPORTED"}class fn extends un{static code="ERR_JWS_INVALID";code="ERR_JWS_INVALID"}class bn extends un{static code="ERR_JWT_INVALID";code="ERR_JWT_INVALID"}class yn extends un{static code="ERR_JWS_SIGNATURE_VERIFICATION_FAILED";code="ERR_JWS_SIGNATURE_VERIFICATION_FAILED";constructor(e="signature verification failed",t){super(e,t)}}function On(e,t="algorithm.name"){return new TypeError(`CryptoKey does not support this operation, its ${t} must be ${e}`)}function Sn(e,t){return e.name===t}function Cn(e){return parseInt(e.name.slice(4),10)}function kn(e,t,o){switch(t){case"HS256":case"HS384":case"HS512":{if(!Sn(e.algorithm,"HMAC"))throw On("HMAC");const o=parseInt(t.slice(2),10);if(Cn(e.algorithm.hash)!==o)throw On(`SHA-${o}`,"algorithm.hash");break}case"RS256":case"RS384":case"RS512":{if(!Sn(e.algorithm,"RSASSA-PKCS1-v1_5"))throw On("RSASSA-PKCS1-v1_5");const o=parseInt(t.slice(2),10);if(Cn(e.algorithm.hash)!==o)throw On(`SHA-${o}`,"algorithm.hash");break}case"PS256":case"PS384":case"PS512":{if(!Sn(e.algorithm,"RSA-PSS"))throw On("RSA-PSS");const o=parseInt(t.slice(2),10);if(Cn(e.algorithm.hash)!==o)throw On(`SHA-${o}`,"algorithm.hash");break}case"Ed25519":case"EdDSA":if(!Sn(e.algorithm,"Ed25519"))throw On("Ed25519");break;case"ES256":case"ES384":case"ES512":{if(!Sn(e.algorithm,"ECDSA"))throw On("ECDSA");const o=function(e){switch(e){case"ES256":return"P-256";case"ES384":return"P-384";case"ES512":return"P-521";default:throw new Error("unreachable")}}(t);if(e.algorithm.namedCurve!==o)throw On(o,"algorithm.namedCurve");break}default:throw new TypeError("CryptoKey does not support this operation")}!function(e,t){if(!e.usages.includes(t))throw new TypeError(`CryptoKey does not support this operation, its usages must include ${t}.`)}(e,o)}function wn(e,t,...o){if((o=o.filter(Boolean)).length>2){const t=o.pop();e+=`one of type ${o.join(", ")}, or ${t}.`}else 2===o.length?e+=`one of type ${o[0]} or ${o[1]}.`:e+=`of type ${o[0]}.`;return null==t?e+=`Received ${t}`:"function"==typeof t&&t.name?e+=`Received function ${t.name}`:"object"==typeof t&&null!=t&&t.constructor?.name&&(e+=`Received an instance of ${t.constructor.name}`),e}function An(e,t,...o){return wn(`Key for the ${e} algorithm must be`,t,...o)}function Tn(e){return"CryptoKey"===e?.[Symbol.toStringTag]}function vn(e){return"KeyObject"===e?.[Symbol.toStringTag]}var qn=e=>Tn(e)||vn(e);var Dn=e=>{if("object"!=typeof(t=e)||null===t||"[object Object]"!==Object.prototype.toString.call(e))return!1;var t;if(null===Object.getPrototypeOf(e))return!0;let o=e;for(;null!==Object.getPrototypeOf(o);)o=Object.getPrototypeOf(o);return Object.getPrototypeOf(e)===o};const In=(e,t,o=0)=>{0===o&&(t.unshift(t.length),t.unshift(6));const r=e.indexOf(t[0],o);if(-1===r)return!1;const n=e.subarray(r,r+t.length);return n.length===t.length&&(n.every(((e,o)=>e===t[o]))||In(e,t,r+1))},Zn=async(e,t,o,r,n)=>{let s,i;const a=new Uint8Array(atob(o.replace(e,"")).split("").map((e=>e.charCodeAt(0))));switch(r){case"PS256":case"PS384":case"PS512":s={name:"RSA-PSS",hash:`SHA-${r.slice(-3)}`},i=["verify"];break;case"RS256":case"RS384":case"RS512":s={name:"RSASSA-PKCS1-v1_5",hash:`SHA-${r.slice(-3)}`},i=["verify"];break;case"RSA-OAEP":case"RSA-OAEP-256":case"RSA-OAEP-384":case"RSA-OAEP-512":s={name:"RSA-OAEP",hash:`SHA-${parseInt(r.slice(-3),10)||1}`},i=["encrypt","wrapKey"];break;case"ES256":s={name:"ECDSA",namedCurve:"P-256"},i=["verify"];break;case"ES384":s={name:"ECDSA",namedCurve:"P-384"},i=["verify"];break;case"ES512":s={name:"ECDSA",namedCurve:"P-521"},i=["verify"];break;case"ECDH-ES":case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":{const e=(e=>{switch(!0){case In(e,[42,134,72,206,61,3,1,7]):return"P-256";case In(e,[43,129,4,0,34]):return"P-384";case In(e,[43,129,4,0,35]):return"P-521";default:return}})(a);s=e?.startsWith("P-")?{name:"ECDH",namedCurve:e}:{name:"X25519"},i=[];break}case"Ed25519":case"EdDSA":s={name:"Ed25519"},i=["verify"];break;default:throw new gn('Invalid or unsupported "alg" (Algorithm) value')}return crypto.subtle.importKey(t,a,s,!0,i)};var Wn=async e=>{if(!e.alg)throw new TypeError('"alg" argument is required when "jwk.alg" is not present');const{algorithm:t,keyUsages:o}=function(e){let t,o;switch(e.kty){case"RSA":switch(e.alg){case"PS256":case"PS384":case"PS512":t={name:"RSA-PSS",hash:`SHA-${e.alg.slice(-3)}`},o=e.d?["sign"]:["verify"];break;case"RS256":case"RS384":case"RS512":t={name:"RSASSA-PKCS1-v1_5",hash:`SHA-${e.alg.slice(-3)}`},o=e.d?["sign"]:["verify"];break;case"RSA-OAEP":case"RSA-OAEP-256":case"RSA-OAEP-384":case"RSA-OAEP-512":t={name:"RSA-OAEP",hash:`SHA-${parseInt(e.alg.slice(-3),10)||1}`},o=e.d?["decrypt","unwrapKey"]:["encrypt","wrapKey"];break;default:throw new gn('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}break;case"EC":switch(e.alg){case"ES256":t={name:"ECDSA",namedCurve:"P-256"},o=e.d?["sign"]:["verify"];break;case"ES384":t={name:"ECDSA",namedCurve:"P-384"},o=e.d?["sign"]:["verify"];break;case"ES512":t={name:"ECDSA",namedCurve:"P-521"},o=e.d?["sign"]:["verify"];break;case"ECDH-ES":case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":t={name:"ECDH",namedCurve:e.crv},o=e.d?["deriveBits"]:[];break;default:throw new gn('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}break;case"OKP":switch(e.alg){case"Ed25519":case"EdDSA":t={name:"Ed25519"},o=e.d?["sign"]:["verify"];break;case"ECDH-ES":case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":t={name:e.crv},o=e.d?["deriveBits"]:[];break;default:throw new gn('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}break;default:throw new gn('Invalid or unsupported JWK "kty" (Key Type) Parameter value')}return{algorithm:t,keyUsages:o}}(e),r={...e};return delete r.alg,delete r.use,crypto.subtle.importKey("jwk",r,t,e.ext??!e.d,e.key_ops??o)};async function Rn(e,t,o){if(0!==e.indexOf("-----BEGIN PUBLIC KEY-----"))throw new TypeError('"spki" must be SPKI formatted string');return((e,t)=>Zn(/(?:-----(?:BEGIN|END) PUBLIC KEY-----|\s)/g,"spki",e,t))(e,t)}function Vn(e){return Dn(e)&&"string"==typeof e.kty}let En;const jn=async(e,t,o,r=!1)=>{En||=new WeakMap;let n=En.get(e);if(n?.[o])return n[o];const s=await Wn({...t,alg:o});return r&&Object.freeze(e),n?n[o]=s:En.set(e,{[o]:s}),s};var xn=async(e,t)=>{if(e instanceof Uint8Array)return e;if(Tn(e))return e;if(vn(e)){if("secret"===e.type)return e.export();if("toCryptoKey"in e&&"function"==typeof e.toCryptoKey)try{return((e,t)=>{En||=new WeakMap;let o=En.get(e);if(o?.[t])return o[t];const r="public"===e.type,n=!!r;let s;if("x25519"===e.asymmetricKeyType){switch(t){case"ECDH-ES":case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":break;default:throw new TypeError("given KeyObject instance cannot be used for this algorithm")}s=e.toCryptoKey(e.asymmetricKeyType,n,r?[]:["deriveBits"])}if("ed25519"===e.asymmetricKeyType){if("EdDSA"!==t&&"Ed25519"!==t)throw new TypeError("given KeyObject instance cannot be used for this algorithm");s=e.toCryptoKey(e.asymmetricKeyType,n,[r?"verify":"sign"])}if("rsa"===e.asymmetricKeyType){let o;switch(t){case"RSA-OAEP":o="SHA-1";break;case"RS256":case"PS256":case"RSA-OAEP-256":o="SHA-256";break;case"RS384":case"PS384":case"RSA-OAEP-384":o="SHA-384";break;case"RS512":case"PS512":case"RSA-OAEP-512":o="SHA-512";break;default:throw new TypeError("given KeyObject instance cannot be used for this algorithm")}if(t.startsWith("RSA-OAEP"))return e.toCryptoKey({name:"RSA-OAEP",hash:o},n,r?["encrypt"]:["decrypt"]);s=e.toCryptoKey({name:t.startsWith("PS")?"RSA-PSS":"RSASSA-PKCS1-v1_5",hash:o},n,[r?"verify":"sign"])}if("ec"===e.asymmetricKeyType){const o=new Map([["prime256v1","P-256"],["secp384r1","P-384"],["secp521r1","P-521"]]).get(e.asymmetricKeyDetails?.namedCurve);if(!o)throw new TypeError("given KeyObject instance cannot be used for this algorithm");"ES256"===t&&"P-256"===o&&(s=e.toCryptoKey({name:"ECDSA",namedCurve:o},n,[r?"verify":"sign"])),"ES384"===t&&"P-384"===o&&(s=e.toCryptoKey({name:"ECDSA",namedCurve:o},n,[r?"verify":"sign"])),"ES512"===t&&"P-521"===o&&(s=e.toCryptoKey({name:"ECDSA",namedCurve:o},n,[r?"verify":"sign"])),t.startsWith("ECDH-ES")&&(s=e.toCryptoKey({name:"ECDH",namedCurve:o},n,r?[]:["deriveBits"]))}if(!s)throw new TypeError("given KeyObject instance cannot be used for this algorithm");return o?o[t]=s:En.set(e,{[t]:s}),s})(e,t)}catch(e){if(e instanceof TypeError)throw e}let o=e.export({format:"jwk"});return jn(e,o,t)}if(Vn(e))return e.k?cn(e.k):jn(e,e,t,!0);throw new Error("unreachable")};const Bn=e=>e?.[Symbol.toStringTag],Jn=(e,t,o)=>{if(void 0!==t.use){let e;switch(o){case"sign":case"verify":e="sig";break;case"encrypt":case"decrypt":e="enc"}if(t.use!==e)throw new TypeError(`Invalid key for this operation, its "use" must be "${e}" when present`)}if(void 0!==t.alg&&t.alg!==e)throw new TypeError(`Invalid key for this operation, its "alg" must be "${e}" when present`);if(Array.isArray(t.key_ops)){let r;switch(!0){case"verify"===o:case"dir"===e:case e.includes("CBC-HS"):r=o;break;case e.startsWith("PBES2"):r="deriveBits";break;case/^A\d{3}(?:GCM)?(?:KW)?$/.test(e):r=!e.includes("GCM")&&e.endsWith("KW")?"unwrapKey":o;break;case"encrypt"===o:r="wrapKey";break;case"decrypt"===o:r=e.startsWith("RSA")?"unwrapKey":"deriveBits"}if(r&&!1===t.key_ops?.includes?.(r))throw new TypeError(`Invalid key for this operation, its "key_ops" must include "${r}" when present`)}return!0};var Yn=(e,t,o)=>{e.startsWith("HS")||"dir"===e||e.startsWith("PBES2")||/^A(?:128|192|256)(?:GCM)?(?:KW)?$/.test(e)||/^A(?:128|192|256)CBC-HS(?:256|384|512)$/.test(e)?((e,t,o)=>{if(!(t instanceof Uint8Array)){if(Vn(t)){if(function(e){return"oct"===e.kty&&"string"==typeof e.k}(t)&&Jn(e,t,o))return;throw new TypeError('JSON Web Key for symmetric algorithms must have JWK "kty" (Key Type) equal to "oct" and the JWK "k" (Key Value) present')}if(!qn(t))throw new TypeError(An(e,t,"CryptoKey","KeyObject","JSON Web Key","Uint8Array"));if("secret"!==t.type)throw new TypeError(`${Bn(t)} instances for symmetric algorithms must be of type "secret"`)}})(e,t,o):((e,t,o)=>{if(Vn(t))switch(o){case"decrypt":case"sign":if(function(e){return"oct"!==e.kty&&"string"==typeof e.d}(t)&&Jn(e,t,o))return;throw new TypeError("JSON Web Key for this operation be a private JWK");case"encrypt":case"verify":if(function(e){return"oct"!==e.kty&&void 0===e.d}(t)&&Jn(e,t,o))return;throw new TypeError("JSON Web Key for this operation be a public JWK")}if(!qn(t))throw new TypeError(An(e,t,"CryptoKey","KeyObject","JSON Web Key"));if("secret"===t.type)throw new TypeError(`${Bn(t)} instances for asymmetric algorithms must not be of type "secret"`);if("public"===t.type)switch(o){case"sign":throw new TypeError(`${Bn(t)} instances for asymmetric algorithm signing must be of type "private"`);case"decrypt":throw new TypeError(`${Bn(t)} instances for asymmetric algorithm decryption must be of type "private"`)}if("private"===t.type)switch(o){case"verify":throw new TypeError(`${Bn(t)} instances for asymmetric algorithm verifying must be of type "public"`);case"encrypt":throw new TypeError(`${Bn(t)} instances for asymmetric algorithm encryption must be of type "public"`)}})(e,t,o)},Mn=async(e,t,o)=>{if(t instanceof Uint8Array){if(!e.startsWith("HS"))throw new TypeError(((e,...t)=>wn("Key must be ",e,...t))(t,"CryptoKey","KeyObject","JSON Web Key"));return crypto.subtle.importKey("raw",t,{hash:`SHA-${e.slice(-3)}`,name:"HMAC"},!1,[o])}return kn(t,e,o),t},Ln=async(e,t,o,r)=>{const n=await Mn(e,t,"verify");((e,t)=>{if(e.startsWith("RS")||e.startsWith("PS")){const{modulusLength:o}=t.algorithm;if("number"!=typeof o||o<2048)throw new TypeError(`${e} requires key modulusLength to be 2048 bits or larger`)}})(e,n);const s=((e,t)=>{const o=`SHA-${e.slice(-3)}`;switch(e){case"HS256":case"HS384":case"HS512":return{hash:o,name:"HMAC"};case"PS256":case"PS384":case"PS512":return{hash:o,name:"RSA-PSS",saltLength:parseInt(e.slice(-3),10)>>3};case"RS256":case"RS384":case"RS512":return{hash:o,name:"RSASSA-PKCS1-v1_5"};case"ES256":case"ES384":case"ES512":return{hash:o,name:"ECDSA",namedCurve:t.namedCurve};case"Ed25519":case"EdDSA":return{name:"Ed25519"};default:throw new gn(`alg ${e} is not supported either by JOSE or your javascript runtime`)}})(e,n.algorithm);try{return await crypto.subtle.verify(s,n,o,r)}catch{return!1}};async function Pn(e,t,o){if(!Dn(e))throw new fn("Flattened JWS must be an object");if(void 0===e.protected&&void 0===e.header)throw new fn('Flattened JWS must have either of the "protected" or "header" members');if(void 0!==e.protected&&"string"!=typeof e.protected)throw new fn("JWS Protected Header incorrect type");if(void 0===e.payload)throw new fn("JWS Payload missing");if("string"!=typeof e.signature)throw new fn("JWS Signature missing or incorrect type");if(void 0!==e.header&&!Dn(e.header))throw new fn("JWS Unprotected Header incorrect type");let r={};if(e.protected)try{const t=cn(e.protected);r=JSON.parse(ln.decode(t))}catch{throw new fn("JWS Protected Header is invalid")}if(!((...e)=>{const t=e.filter(Boolean);if(0===t.length||1===t.length)return!0;let o;for(const e of t){const t=Object.keys(e);if(o&&0!==o.size)for(const e of t){if(o.has(e))return!1;o.add(e)}else o=new Set(t)}return!0})(r,e.header))throw new fn("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");const n={...r,...e.header},s=((e,t,o,r,n)=>{if(void 0!==n.crit&&void 0===r?.crit)throw new e('"crit" (Critical) Header Parameter MUST be integrity protected');if(!r||void 0===r.crit)return new Set;if(!Array.isArray(r.crit)||0===r.crit.length||r.crit.some((e=>"string"!=typeof e||0===e.length)))throw new e('"crit" (Critical) Header Parameter MUST be an array of non-empty strings when present');let s;s=void 0!==o?new Map([...Object.entries(o),...t.entries()]):t;for(const t of r.crit){if(!s.has(t))throw new gn(`Extension Header Parameter "${t}" is not recognized`);if(void 0===n[t])throw new e(`Extension Header Parameter "${t}" is missing`);if(s.get(t)&&void 0===r[t])throw new e(`Extension Header Parameter "${t}" MUST be integrity protected`)}return new Set(r.crit)})(fn,new Map([["b64",!0]]),o?.crit,r,n);let i=!0;if(s.has("b64")&&(i=r.b64,"boolean"!=typeof i))throw new fn('The "b64" (base64url-encode payload) Header Parameter must be a boolean');const{alg:a}=n;if("string"!=typeof a||!a)throw new fn('JWS "alg" (Algorithm) Header Parameter missing or invalid');const d=((e,t)=>{if(void 0!==t&&(!Array.isArray(t)||t.some((e=>"string"!=typeof e))))throw new TypeError(`"${e}" option must be an array of strings`);if(t)return new Set(t)})("algorithms",o.algorithms);if(d&&!d.has(a))throw new mn('"alg" (Algorithm) Header Parameter value not allowed');if(i){if("string"!=typeof e.payload)throw new fn("JWS Payload must be a string")}else if("string"!=typeof e.payload&&!(e.payload instanceof Uint8Array))throw new fn("JWS Payload must be a string or an Uint8Array instance");let l=!1;"function"==typeof t&&(t=await t(r,e),l=!0),Yn(a,t,"verify");const c=function(...e){const t=e.reduce(((e,{length:t})=>e+t),0),o=new Uint8Array(t);let r=0;for(const t of e)o.set(t,r),r+=t.length;return o}(dn.encode(e.protected??""),dn.encode("."),"string"==typeof e.payload?dn.encode(e.payload):e.payload);let u;try{u=cn(e.signature)}catch{throw new fn("Failed to base64url decode the signature")}const p=await xn(t,a);if(!await Ln(a,p,u,c))throw new yn;let h;if(i)try{h=cn(e.payload)}catch{throw new fn("Failed to base64url decode the payload")}else h="string"==typeof e.payload?dn.encode(e.payload):e.payload;const m={payload:h};return void 0!==e.protected&&(m.protectedHeader=r),void 0!==e.header&&(m.unprotectedHeader=e.header),l?{...m,key:p}:m}const Gn=86400,Xn=/^(\+|\-)? ?(\d+|\d+\.\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)(?: (ago|from now))?$/i;var Nn=e=>{const t=Xn.exec(e);if(!t||t[4]&&t[1])throw new TypeError("Invalid time period format");const o=parseFloat(t[2]);let r;switch(t[3].toLowerCase()){case"sec":case"secs":case"second":case"seconds":case"s":r=Math.round(o);break;case"minute":case"minutes":case"min":case"mins":case"m":r=Math.round(60*o);break;case"hour":case"hours":case"hr":case"hrs":case"h":r=Math.round(3600*o);break;case"day":case"days":case"d":r=Math.round(o*Gn);break;case"week":case"weeks":case"w":r=Math.round(604800*o);break;default:r=Math.round(31557600*o)}return"-"===t[1]||"ago"===t[4]?-r:r};const zn=e=>e.toLowerCase().replace(/^application\//,"");function Fn(e,t,o={}){let r;try{r=JSON.parse(ln.decode(t))}catch{}if(!Dn(r))throw new bn("JWT Claims Set must be a top-level JSON object");const{typ:n}=o;if(n&&("string"!=typeof e.typ||zn(e.typ)!==zn(n)))throw new pn('unexpected "typ" JWT header value',r,"typ","check_failed");const{requiredClaims:s=[],issuer:i,subject:a,audience:d,maxTokenAge:l}=o,c=[...s];void 0!==l&&c.push("iat"),void 0!==d&&c.push("aud"),void 0!==a&&c.push("sub"),void 0!==i&&c.push("iss");for(const e of new Set(c.reverse()))if(!(e in r))throw new pn(`missing required "${e}" claim`,r,e,"missing");if(i&&!(Array.isArray(i)?i:[i]).includes(r.iss))throw new pn('unexpected "iss" claim value',r,"iss","check_failed");if(a&&r.sub!==a)throw new pn('unexpected "sub" claim value',r,"sub","check_failed");if(d&&(u=r.aud,p="string"==typeof d?[d]:d,!("string"==typeof u?p.includes(u):Array.isArray(u)&&p.some(Set.prototype.has.bind(new Set(u))))))throw new pn('unexpected "aud" claim value',r,"aud","check_failed");var u,p;let h;switch(typeof o.clockTolerance){case"string":h=Nn(o.clockTolerance);break;case"number":h=o.clockTolerance;break;case"undefined":h=0;break;default:throw new TypeError("Invalid clockTolerance option type")}const{currentDate:m}=o,g=(f=m||new Date,Math.floor(f.getTime()/1e3));var f;if((void 0!==r.iat||l)&&"number"!=typeof r.iat)throw new pn('"iat" claim must be a number',r,"iat","invalid");if(void 0!==r.nbf){if("number"!=typeof r.nbf)throw new pn('"nbf" claim must be a number',r,"nbf","invalid");if(r.nbf>g+h)throw new pn('"nbf" claim timestamp check failed',r,"nbf","check_failed")}if(void 0!==r.exp){if("number"!=typeof r.exp)throw new pn('"exp" claim must be a number',r,"exp","invalid");if(r.exp<=g-h)throw new hn('"exp" claim timestamp check failed',r,"exp","check_failed")}if(l){const e=g-r.iat;if(e-h>("number"==typeof l?l:Nn(l)))throw new hn('"iat" claim timestamp check failed (too far in the past)',r,"iat","check_failed");if(e<0-h)throw new pn('"iat" claim timestamp check failed (it should be in the past)',r,"iat","check_failed")}return r}async function Un(e,t,o){const r=await async function(e,t,o){if(e instanceof Uint8Array&&(e=ln.decode(e)),"string"!=typeof e)throw new fn("Compact JWS must be a string or Uint8Array");const{0:r,1:n,2:s,length:i}=e.split(".");if(3!==i)throw new fn("Invalid Compact JWS");const a=await Pn({payload:n,protected:r,signature:s},t,o),d={payload:a.payload,protectedHeader:a.protectedHeader};return"function"==typeof t?{...d,key:a.key}:d}(e,t,o);if(r.protectedHeader.crit?.includes("b64")&&!1===r.protectedHeader.b64)throw new bn("JWTs MUST NOT use unencoded payload");const n={payload:Fn(r.protectedHeader,r.payload,o),protectedHeader:r.protectedHeader};return"function"==typeof t?{...n,key:r.key}:n}const Kn="QRCodeJsLicense",Hn=C(["ol","ac","hl","so","t"].reverse().join("")),_n=C(["ol","ac","it","no"].reverse().join("")),Qn=C(["oh","ts","an","em"].reverse().join(""));class $n{constructor(){this._hls=!1,this._decodedToken=null,this._licenseKey=null,this._isInitialized=!1,this._initPromise=null,this._licenseFetcher=async o=>{const r=$n._customLicenseApiUrl||`${e}/${t}`;try{const e=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({licenseKey:o})});if(!e.ok){let t={};try{t=await e.json()}catch(e){}throw new Error(`Failed to fetch token: ${e.status} ${t?.error||e.statusText}`)}const t=await e.text();if(!t)throw new Error("Fetched token is empty.");return t}catch(e){throw console.error(`LicenseManager: Default fetcher failed: ${e.message}`),new Error(`License fetcher failed: ${e.message}`)}}}static get instance(){return $n._instance||($n._instance=new $n),$n._instance}static setDefaultLicenseApiUrl(e){"string"==typeof e&&e?$n._customLicenseApiUrl=e:console.warn("LicenseManager: Invalid URL provided to setDefaultLicenseApiUrl.")}get hls(){return this._hls}get isInitialized(){return this._isInitialized}getLicenseDetails(){return this._hls?this._decodedToken:null}get licenseKey(){return this._licenseKey}configureLicenseFetcher(e){if("function"!=typeof e)throw new Error("License fetcher must be a function that accepts a license key string and returns a Promise<string>.");this._licenseFetcher=e,this.resetInitialization(),this.resetLicenseState()}async initialize(){return this._isInitialized&&this._initPromise||this._initPromise||(this._initPromise=this._performInitialization()),this._initPromise}async _performInitialization(){if(this._hls)return this._isInitialized=!0,!0;this.resetLicenseState();const e=this._getStoredLicenseData(),t=e.token||null,o=e.key||null;if(this._licenseKey=o,!t)return this._isInitialized=!0,!1;const r=await this._validateAndStoreToken(t,o);if(r.isValid)return this._hls=!0,this._decodedToken=r.license,this._isInitialized=!0,!0;if(r.reason||console.warn("LicenseManager: Stored license token failed validation during initialization (unknown reason)."),!o)return console.warn("LicenseManager: Cannot refresh token: No license key found in storage."),this._isInitialized=!0,!1;console.warn("LicenseManager: Attempting to refresh token using stored license key...");try{const e=await this.activateWithKey(o);return this._isInitialized=!0,e.isValid}catch(e){return console.error(`LicenseManager: Auto-refresh attempt failed unexpectedly: ${e.message}`),this._licenseKey=o,this._isInitialized=!0,!1}}resetInitialization(){this._isInitialized=!1,this._initPromise=null}resetLicenseState(){this._hls=!1,this._decodedToken=null,this._licenseKey=null}async activateWithToken(e){let t;return this.resetInitialization(),null===e?(t=await this._validateAndStoreToken(null,this._licenseKey),this._hls=!1,this._decodedToken=null):"string"==typeof e&&e?(t=await this._validateAndStoreToken(e,null),this._hls=t.isValid,this._decodedToken=t.license,t.isValid?this._licenseKey=this._getStoredLicenseData().key||null:this._licenseKey=null):(console.warn("Invalid token string provided to activateWithToken()."),t=await this._validateAndStoreToken(null,null),t.reason="TOKEN_INVALID",this._hls=!1,this._decodedToken=null,this._licenseKey=null),this._isInitialized=!0,this._initPromise=Promise.resolve(this._hls),!t.isValid&&t.reason&&this._logValidationWarning(t.reason,{token:e,license:t.license}),t}async activateWithKey(e){this.resetInitialization();let t={isValid:!1,token:null,license:null};if(e&&"string"==typeof e){this._licenseKey=e;let o=null,r=null;const n=this._getStoredLicenseData();if(o=n.token||null,r=n.key||null,o&&r===e?(t=await this._validateAndStoreToken(o,e),t.isValid||(t.reason?this._logValidationWarning(t.reason,{licenseKey:e,license:t.license}):console.warn("LicenseManager: Cached token validation failed (unknown reason). Attempting to fetch a new token..."))):(t={isValid:!1,token:null,license:null},o&&r!==e&&console.warn("LicenseManager: Cached token belongs to a different license key. Fetching new token...")),!t.isValid)try{const o=await this._licenseFetcher(e);t=await this._validateAndStoreToken(o,e)}catch(o){let r="FETCH_FAILED";o?.message?.includes("Invalid license key")?r="KEY_INVALID":o?.message?.includes("License has expired")&&(r="TOKEN_EXPIRED"),await this._validateAndStoreToken(null,e),t={isValid:!1,token:null,license:null,reason:r}}this._hls=t.isValid,this._decodedToken=t.license}else console.warn("Invalid license key provided to activateWithKey()."),await this._validateAndStoreToken(null,null),t={isValid:!1,token:null,license:null,reason:"KEY_INVALID"},this._hls=!1,this._decodedToken=null,this._licenseKey=null;return this._isInitialized=!0,this._initPromise=Promise.resolve(this._hls),!t.isValid&&t.reason&&this._logValidationWarning(t.reason,{licenseKey:e,license:t.license}),t}_checkDomain(e){const t=window[_n],o=window[_n][Qn];if($n._currentHostname=o,!t||"string"!=typeof o||!o)return{domainValid:!0};const r=$n._currentHostname.toLowerCase();if(r===Hn)return{domainValid:!0};const n=e.domains;if(!n||0===n.length)return{domainValid:!0};return n.map((e=>e.toLowerCase())).includes(r)?{domainValid:!0}:{domainValid:!1,reason:"DOMAIN_MISMATCH"}}_logValidationWarning(e,t){let o=`LicenseManager: Validation failed. Reason: ${e}`;try{switch(e){case"DOMAIN_MISMATCH":const e=$n._currentHostname??"N/A";o=`LicenseManager: Domain mismatch. License is restricted to [${t?.license?.domains?.join(", ")||"Not specified in token"}], but the current domain is "${e}".`;break;case"TOKEN_EXPIRED":o=`LicenseManager: License token expired on ${t?.license?.exp?new Date(1e3*t.license.exp).toISOString():"N/A"}.`;break;case"TOKEN_INVALID":o="LicenseManager: License token is invalid (e.g., signature mismatch, malformed).";break;case"FETCH_FAILED":o="LicenseManager: Failed to fetch license token from the server. Check network or API endpoint.",t?.licenseKey&&(o+=`(Key: ${t.licenseKey})`);break;case"KEY_INVALID":o="LicenseManager: The provided license key appears invalid or could not be found by the server.",t?.licenseKey&&(o+=`(Key: ${t.licenseKey})`)}}catch(e){console.error("LicenseManager: Error generating validation warning message:",e)}console.warn(o)}_getStoredLicenseData(){if("undefined"==typeof localStorage)return{};try{const e=localStorage.getItem(Kn);return e?JSON.parse(e):{}}catch(e){return console.warn("LicenseManager: Failed to parse license data from localStorage.",e),localStorage.removeItem(Kn),{}}}_setStoredLicenseData(e){if("undefined"!=typeof localStorage)try{const t={};void 0!==e.token&&(t.token=e.token),void 0!==e.key&&(t.key=e.key),Object.keys(t).length>0?localStorage.setItem(Kn,JSON.stringify(t)):localStorage.removeItem(Kn)}catch(e){console.warn("LicenseManager: Failed to store license data to localStorage.",e)}}async _validateAndStoreToken(e,t){const o=this._getStoredLicenseData(),r=t??o.key??void 0;if(!e)return this._setStoredLicenseData({key:r}),{isValid:!1,token:null,license:null};let n,s=null;try{s=await async function(e){try{const t=await Rn("-----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ZCmxp1vq4LJLviS9d2u Y5V9IykLzCrNcj8fCenqEyir5b4+FGE3hvLqp9zT+IYRF2cV2K0aGe9G0COFZsX2 E5ye1DguyvPQgRMPO8y7bxXJ3da1IP7Gs+/3gy4iuzRV4Uhy73jUVpqE/zZ2JAv/ sY36Rxmq4h7YE/F6YQk3DeZvnHjS7spUlp/+d3W67G8v2jiYWy3pO08Sn0rF2cjg XrJA5jcNr7ksER7AQcwayaLT4rAV4+EOcDYXL2egnqoTEmRzQYD2ReHBsO6jB0Ud bmsNepxbBdq/fBr+5HNj2tUJItarfH3BUVRFu/L1xP8wOEQa8wmPRwrJdPsI3bdk 7QIDAQAB -----END PUBLIC KEY-----","RS256"),{payload:o}=await Un(e,t,{algorithms:["RS256"]});if(!o||"string"!=typeof o.sub)throw new un("Decoded token payload structure is invalid.");return o}catch(e){throw e}}(e);try{const t=this._checkDomain(s);if(!t.domainValid)return n=t.reason,o.token===e&&this._setStoredLicenseData({key:r}),{isValid:!1,token:null,license:s,reason:n}}catch(t){return console.error("LicenseManager: Internal error during domain check.",t),n="TOKEN_INVALID",o.token===e&&this._setStoredLicenseData({key:r}),{isValid:!1,token:null,license:s,reason:n}}return this._setStoredLicenseData({token:e,key:r}),{isValid:!0,token:e,license:s}}catch(t){return t instanceof hn?n="TOKEN_EXPIRED":(n="TOKEN_INVALID",console.error("LicenseManager: Token validation failed.",t)),o.token===e&&this._setStoredLicenseData({key:r}),{isValid:!1,token:null,license:s,reason:n}}}}var es;$n._instance=null,$n._customLicenseApiUrl=null,$n._currentHostname=null,function(e){e.svg="svg",e.png="png",e.jpeg="jpeg",e.webp="webp"}(es||(es={}));class ts extends an{constructor(e,t=!1){super(e),t||($n.instance.isInitialized||$n.instance.hls?$n.instance.isInitialized&&!$n.instance.hls&&console.warn("QRCode.js: No valid license found. Some features may be limited."):console.warn("QRCode.js: License state not yet initialized. Call QRCodeJs.initializeIfNeeded() or activate a license."))}_hls(){return $n.instance.isInitialized?$n.instance.hls:($n.instance.initialize().catch((e=>{console.error("QRCode.js: Background license initialization failed:",e)})),!1)}static async initializeIfNeeded(){return $n.instance.initialize()}static get hls(){return $n.instance.isInitialized?$n.instance.hls:($n.instance.initialize().catch((e=>{console.error("QRCode.js: Background license initialization failed:",e)})),!1)}static getLicenseDetails(){return $n.instance.isInitialized?$n.instance.getLicenseDetails():($n.instance.initialize().catch((e=>{console.error("QRCode.js: Background license initialization failed:",e)})),null)}static configureLicenseFetcher(e){$n.instance.configureLicenseFetcher(e)}static async token(e){return $n.instance.activateWithToken(e)}static setLicenseUrl(e){return $n.setDefaultLicenseApiUrl(e),this}static async license(e){return $n.instance.activateWithKey(e)}async validateScanning(e="zbar",t=!1){if(!this._hls())return console.warn("QRCode.js: Scanning validation requires a valid license."),Promise.reject({isValid:!1,message:"Valid license required for scanning validation."});try{const{default:e}=await import("./chunks/zbar-scan-validator-CdUmQrkV.js").then((function(e){return e.z})),o=await this.serialize(),r=this.size;if(!r)throw new Error("QR code dimensions not available for validation. Ensure the QR code has been generated.");const{width:n,height:s}=r,i=await(new e).validate(o,(async()=>this.serialize(!0)),n,s,t);if(i.isValid)return i;{console.debug("Zbar validation failed, trying Zxing...");const{default:e}=await import("./chunks/zxing-scan-validator-C8aRSTHv.js");return(new e).validate(o,(async()=>this.serialize(!0)),t)}}catch(e){const t=e instanceof Error?e.message:"Unknown validation error";return console.error(`Validation failed: ${t}`,e),Promise.reject({isValid:!1,message:t})}}static useTemplate(e){return new rs(this,e)}static useTemplateId(e){return new rs(this).useTemplateId(e)}static useStyle(e){return new rs(this).useStyle(e)}static useStyleId(e){return new rs(this).useStyleId(e)}static useBorder(e){return new rs(this).useBorder(e)}static useBorderId(e){return new rs(this).useBorderId(e)}static useImage(e,t){return new rs(this).useImage(e,t)}static useText(e,t){return new rs(this).useText(e,t)}static useTextId(e,t){return new rs(this).useTextId(e,t)}}class os extends ts{_hls(){return!0}constructor(e){super(e,!0)}}class rs{constructor(e,t){this._templateSource=null,this._borderSource=null,this._styleSource=null,this._imageSource=null,this._imageOverride=!1,this._textSource=null,this._textOverride=!1,this._isTemplateById=!1,this._isBorderById=!1,this._isStyleById=!1,this._isTextById=!1,this._initialOptions=null,this._qrCodeConstructor=e,"string"==typeof t?(this._templateSource=t,this._isTemplateById=!1):t&&(this._initialOptions=t)}useTemplate(e){return this._templateSource=e,this._isTemplateById=!1,this._initialOptions=null,this}useTemplateId(e){return this._templateSource=e,this._isTemplateById=!0,this._initialOptions=null,this}useStyle(e){return this._styleSource=e,this._isStyleById=!1,this}useStyleId(e){return this._styleSource=e,this._isStyleById=!0,this}useBorder(e){return this._borderSource=e,this._isBorderById=!1,this}useBorderId(e){return this._borderSource=e,this._isBorderById=!0,this}useImage(e,t){return this._imageSource=e,this._imageOverride=!!t?.override,this}useText(e,t){return this._textSource=e,this._isTextById=!1,this._textOverride=!!t?.override,this._initialOptions=null,this}useTextId(e,t){return this._textSource=e,this._isTextById=!0,this._textOverride=!!t?.override,this._initialOptions=null,this}_resolveAndMergeConfig(e={}){let t={};t=this._initialOptions?k({},this._initialOptions):k({},oe);let o=null;if(this._templateSource&&"string"==typeof this._templateSource){const e=(this._isTemplateById?wo:ko)(this._templateSource);if(e)o=e.options;else{const e=this._isTemplateById?"ID":"name";console.warn(`QR Code template ${e} "${this._templateSource}" not found. Ignoring.`)}}else this._templateSource&&"string"!=typeof this._templateSource&&(o=this._templateSource);o&&(t=k(t,o));let r=null;if(this._borderSource)if("string"==typeof this._borderSource){const e=(this._isBorderById?tn:en)(this._borderSource);if(e)r=e.options;else{const e=this._isBorderById?"ID":"name";console.warn(`QR Code border ${e} "${this._borderSource}" not found. Ignoring.`)}}else r={borderOptions:this._borderSource};r&&(t=k(t,r));let n=null;if(this._textSource&&!this._textOverride){let e=null;if("string"==typeof this._textSource){const t=(this._isTextById?nn:rn)(this._textSource);if(t)e=t.options;else{const e=this._isTextById?"ID":"name";console.warn(`QR Code text template ${e} "${this._textSource}" not found. Ignoring.`)}}else e=this._textSource;if(e){n={borderOptions:{decorations:{}}};const t=n.borderOptions.decorations;void 0!==e.topValue&&(t.top={value:null===e.topValue?void 0:e.topValue,enableText:null!==e.topValue}),void 0!==e.leftValue&&(t.left={value:null===e.leftValue?void 0:e.leftValue,enableText:null!==e.leftValue}),void 0!==e.rightValue&&(t.right={value:null===e.rightValue?void 0:e.rightValue,enableText:null!==e.rightValue}),void 0!==e.bottomValue&&(t.bottom={value:null===e.bottomValue?void 0:e.bottomValue,enableText:null!==e.bottomValue})}}n&&(t=k(t,n));let s=null;if(this._styleSource)if("string"==typeof this._styleSource){const e=(this._isStyleById?Zr:Ir)(this._styleSource);if(e)s=e.style;else{const e=this._isStyleById?"ID":"name";console.warn(`QR Code style ${e} "${this._styleSource}" not found. Ignoring.`)}}else{const{isValid:e,errors:t}=Q(this._styleSource);e?s=this._styleSource:console.warn("Invalid style options object provided:",t)}if(s){t=k(t,_(s))}if(this._imageSource&&!this._imageOverride&&(t=k(t,{image:this._imageSource})),t=k(t,e),this._imageOverride&&this._imageSource&&(t=k(t,{image:this._imageSource})),this._textOverride&&this._textSource){const e={borderOptions:{decorations:{}}};let o=null;if("string"==typeof this._textSource){const e=(this._isTextById?nn:rn)(this._textSource);e&&(o=e.options)}else o=this._textSource;if(o){const r=e.borderOptions.decorations;void 0!==o.topValue&&(r.top={value:null===o.topValue?void 0:o.topValue,enableText:null!==o.topValue}),void 0!==o.leftValue&&(r.left={value:null===o.leftValue?void 0:o.leftValue,enableText:null!==o.leftValue}),void 0!==o.rightValue&&(r.right={value:null===o.rightValue?void 0:o.rightValue,enableText:null!==o.rightValue}),void 0!==o.bottomValue&&(r.bottom={value:null===o.bottomValue?void 0:o.bottomValue,enableText:null!==o.bottomValue}),t=k(t,e)}}return t}options(e){const t=this._resolveAndMergeConfig(e);return new this._qrCodeConstructor(t)}build(){const e=this._resolveAndMergeConfig();return new this._qrCodeConstructor(e)}}"undefined"!=typeof window&&(window.QRCodeJs=ts,window.__=os);export{X as CornerDotType,N as CornerSquareType,G as DotType,b as ErrorCorrectionLevel,es as FileExtension,P as GradientType,F as ImageMode,y as Mode,ts as QRCodeJs,Kn as STORAGE_KEY,z as ShapeType,f as TypeNumber,os as _};
1
+ const e={width:300,height:300,margin:0};class t{constructor(){this.buffer=[],this.length=0}getBuffer(){return this.buffer}getLengthInBits(){return this.length}toString(){let e="";for(let t=0;t<this.getLengthInBits();t+=1)e+=this.getBit(t)?"1":"0";return e}getBit(e){return 1==(this.buffer[~~(e/8)]>>>7-e%8&1)}put(e,t){for(let o=0;o<t;o+=1)this.putBit(1==(e>>>t-o-1&1))}putBit(e){this.length==8*this.buffer.length&&this.buffer.push(0),e&&(this.buffer[~~(this.length/8)]|=128>>>this.length%8),this.length+=1}}var o,r,n;!function(e){e[e.L=1]="L",e[e.M=0]="M",e[e.Q=3]="Q",e[e.H=2]="H"}(o||(o={}));class s{constructor(){throw new Error("error")}static glog(e){if(e<1)throw new Error("log("+e+")");return s.LOG_TABLE[e]}static gexp(e){for(;e<0;)e+=255;for(;e>=256;)e-=255;return s.EXP_TABLE[e]}}s.initialize=(()=>{s.EXP_TABLE=[],s.LOG_TABLE=[];for(let e=0;e<256;e+=1)s.EXP_TABLE.push(e<8?1<<e:s.EXP_TABLE[e-4]^s.EXP_TABLE[e-5]^s.EXP_TABLE[e-6]^s.EXP_TABLE[e-8]),s.LOG_TABLE.push(0);for(let e=0;e<255;e+=1)s.LOG_TABLE[s.EXP_TABLE[e]]=e})();class i{constructor(e,t=0){let o=0;for(;o<e.length&&0==e[o];)o+=1;this.num=[];const r=e.length-o;for(let t=0;t<r;t+=1)this.num.push(e[o+t]);for(let e=0;e<t;e+=1)this.num.push(0)}getAt(e){return this.num[e]}getLength(){return this.num.length}toString(){let e="";for(let t=0;t<this.getLength();t+=1)t>0&&(e+=","),e+=this.getAt(t);return e.toString()}toLogString(){let e="";for(let t=0;t<this.getLength();t+=1)t>0&&(e+=","),e+=s.glog(this.getAt(t));return e.toString()}multiply(e){const t=[],o=this.getLength()+e.getLength()-1;for(let e=0;e<o;e+=1)t.push(0);for(let o=0;o<this.getLength();o+=1)for(let r=0;r<e.getLength();r+=1)t[o+r]^=s.gexp(s.glog(this.getAt(o))+s.glog(e.getAt(r)));return new i(t)}mod(e){if(this.getLength()-e.getLength()<0)return this;const t=s.glog(this.getAt(0))-s.glog(e.getAt(0)),o=[];for(let e=0;e<this.getLength();e+=1)o.push(this.getAt(e));for(let r=0;r<e.getLength();r+=1)o[r]^=s.gexp(s.glog(e.getAt(r))+t);return new i(o).mod(e)}}!function(e){e[e.MODE_NUMBER=1]="MODE_NUMBER",e[e.MODE_ALPHA_NUM=2]="MODE_ALPHA_NUM",e[e.MODE_8BIT_BYTE=4]="MODE_8BIT_BYTE",e[e.MODE_KANJI=8]="MODE_KANJI"}(r||(r={}));class a{constructor(e,t){this.mode=e,this.data=t}getMode(){return this.mode}getData(){return this.data}getLengthInBits(e){if(1<=e&&e<10)switch(this.mode){case r.MODE_NUMBER:return 10;case r.MODE_ALPHA_NUM:return 9;case r.MODE_8BIT_BYTE:case r.MODE_KANJI:return 8;default:throw new Error("mode:"+this.mode)}else if(e<27)switch(this.mode){case r.MODE_NUMBER:return 12;case r.MODE_ALPHA_NUM:return 11;case r.MODE_8BIT_BYTE:return 16;case r.MODE_KANJI:return 10;default:throw new Error("mode:"+this.mode)}else{if(!(e<41))throw new Error("typeNumber:"+e);switch(this.mode){case r.MODE_NUMBER:return 14;case r.MODE_ALPHA_NUM:return 13;case r.MODE_8BIT_BYTE:return 16;case r.MODE_KANJI:return 12;default:throw new Error("mode:"+this.mode)}}}}class d extends a{constructor(e,t){super(r.MODE_8BIT_BYTE,e),this.stringToBytes=t}write(e){this.stringToBytes(this.getData()).forEach((t=>e.put(t,8)))}getLength(){return this.stringToBytes(this.getData()).length}}class l extends a{constructor(e){super(r.MODE_ALPHA_NUM,e)}write(e){const t=this.getData();let o=0;for(;o+1<t.length;)e.put(45*l.getCode(t.charAt(o))+l.getCode(t.charAt(o+1)),11),o+=2;o<t.length&&e.put(l.getCode(t.charAt(o)),6)}getLength(){return this.getData().length}static getCode(e){if("0"<=e&&e<="9")return e.charCodeAt(0)-"0".charCodeAt(0);if("A"<=e&&e<="Z")return e.charCodeAt(0)-"A".charCodeAt(0)+10;switch(e){case" ":return 36;case"$":return 37;case"%":return 38;case"*":return 39;case"+":return 40;case"-":return 41;case".":return 42;case"/":return 43;case":":return 44;default:throw new Error("illegal char :"+e)}}}class c extends a{constructor(e,t){super(r.MODE_KANJI,e),this.stringToBytes=t}write(e){const t=this.stringToBytes(this.getData());let o=0;for(;o+1<t.length;){let r=(255&t[o])<<8|255&t[o+1];if(33088<=r&&r<=40956)r-=33088;else{if(!(57408<=r&&r<=60351))throw new Error("illegal char at "+(o+1)+"/"+r);r-=49472}r=192*(r>>>8&255)+(255&r),e.put(r,13),o+=2}if(o<t.length)throw new Error("illegal char at "+(o+1))}getLength(){return this.stringToBytes(this.getData()).length/2}}class u extends a{constructor(e){super(r.MODE_NUMBER,e)}write(e){const t=this.getData();let o=0;for(;o+2<t.length;)e.put(u.strToNum(t.substring(o,o+3)),10),o+=3;o<t.length&&(t.length-o==1?e.put(u.strToNum(t.substring(o,o+1)),4):t.length-o==2&&e.put(u.strToNum(t.substring(o,o+2)),7))}getLength(){return this.getData().length}static strToNum(e){let t=0;for(let o=0;o<e.length;o+=1)t=10*t+u.chatToNum(e.charAt(o));return t}static chatToNum(e){if("0"<=e&&e<="9")return e.charCodeAt(0)-"0".charCodeAt(0);throw new Error("illegal char :"+e)}}!function(e){e[e.PATTERN000=0]="PATTERN000",e[e.PATTERN001=1]="PATTERN001",e[e.PATTERN010=2]="PATTERN010",e[e.PATTERN011=3]="PATTERN011",e[e.PATTERN100=4]="PATTERN100",e[e.PATTERN101=5]="PATTERN101",e[e.PATTERN110=6]="PATTERN110",e[e.PATTERN111=7]="PATTERN111"}(n||(n={}));class p{constructor(){throw new Error("error")}static getPatternPosition(e){return p.PATTERN_POSITION_TABLE[e-1]}static getMaxLength(e,t,n){const s=e-1;let i=0,a=0;switch(n){case o.L:i=0;break;case o.M:i=1;break;case o.Q:i=2;break;case o.H:i=3;break;default:throw new Error("e:"+n)}switch(t){case r.MODE_NUMBER:a=0;break;case r.MODE_ALPHA_NUM:a=1;break;case r.MODE_8BIT_BYTE:a=2;break;case r.MODE_KANJI:a=3;break;default:throw new Error("m:"+t)}return p.MAX_LENGTH[s][i][a]}static getErrorCorrectPolynomial(e){let t=new i([1]);for(let o=0;o<e;o+=1)t=t.multiply(new i([1,s.gexp(o)]));return t}static getMaskFunc(e){switch(e){case n.PATTERN000:return(e,t)=>(e+t)%2==0;case n.PATTERN001:return(e,t)=>e%2==0;case n.PATTERN010:return(e,t)=>t%3==0;case n.PATTERN011:return(e,t)=>(e+t)%3==0;case n.PATTERN100:return(e,t)=>(~~(e/2)+~~(t/3))%2==0;case n.PATTERN101:return(e,t)=>e*t%2+e*t%3==0;case n.PATTERN110:return(e,t)=>(e*t%2+e*t%3)%2==0;case n.PATTERN111:return(e,t)=>(e*t%3+(e+t)%2)%2==0;default:throw new Error("mask:"+e)}}static getLostPoint(e){const t=e.getModuleCount();let o=0;for(let r=0;r<t;r+=1)for(let n=0;n<t;n+=1){let s=0;const i=e.isDark(r,n);for(let o=-1;o<=1;o+=1)if(!(r+o<0||t<=r+o))for(let a=-1;a<=1;a+=1)n+a<0||t<=n+a||0==o&&0==a||i==e.isDark(r+o,n+a)&&(s+=1);s>5&&(o+=3+s-5)}for(let r=0;r<t-1;r+=1)for(let n=0;n<t-1;n+=1){let t=0;e.isDark(r,n)&&(t+=1),e.isDark(r+1,n)&&(t+=1),e.isDark(r,n+1)&&(t+=1),e.isDark(r+1,n+1)&&(t+=1),0!=t&&4!=t||(o+=3)}for(let r=0;r<t;r+=1)for(let n=0;n<t-6;n+=1)e.isDark(r,n)&&!e.isDark(r,n+1)&&e.isDark(r,n+2)&&e.isDark(r,n+3)&&e.isDark(r,n+4)&&!e.isDark(r,n+5)&&e.isDark(r,n+6)&&(o+=40);for(let r=0;r<t;r+=1)for(let n=0;n<t-6;n+=1)e.isDark(n,r)&&!e.isDark(n+1,r)&&e.isDark(n+2,r)&&e.isDark(n+3,r)&&e.isDark(n+4,r)&&!e.isDark(n+5,r)&&e.isDark(n+6,r)&&(o+=40);let r=0;for(let o=0;o<t;o+=1)for(let n=0;n<t;n+=1)e.isDark(n,o)&&(r+=1);return o+=10*(Math.abs(100*r/t/t-50)/5),o}static getBCHTypeInfo(e){let t=e<<10;for(;p.getBCHDigit(t)-p.getBCHDigit(p.G15)>=0;)t^=p.G15<<p.getBCHDigit(t)-p.getBCHDigit(p.G15);return(e<<10|t)^p.G15_MASK}static getBCHTypeNumber(e){let t=e<<12;for(;p.getBCHDigit(t)-p.getBCHDigit(p.G18)>=0;)t^=p.G18<<p.getBCHDigit(t)-p.getBCHDigit(p.G18);return e<<12|t}static getBCHDigit(e){let t=0;for(;0!=e;)t+=1,e>>>=1;return t}}p.PATTERN_POSITION_TABLE=[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],p.MAX_LENGTH=[[[41,25,17,10],[34,20,14,8],[27,16,11,7],[17,10,7,4]],[[77,47,32,20],[63,38,26,16],[48,29,20,12],[34,20,14,8]],[[127,77,53,32],[101,61,42,26],[77,47,32,20],[58,35,24,15]],[[187,114,78,48],[149,90,62,38],[111,67,46,28],[82,50,34,21]],[[255,154,106,65],[202,122,84,52],[144,87,60,37],[106,64,44,27]],[[322,195,134,82],[255,154,106,65],[178,108,74,45],[139,84,58,36]],[[370,224,154,95],[293,178,122,75],[207,125,86,53],[154,93,64,39]],[[461,279,192,118],[365,221,152,93],[259,157,108,66],[202,122,84,52]],[[552,335,230,141],[432,262,180,111],[312,189,130,80],[235,143,98,60]],[[652,395,271,167],[513,311,213,131],[364,221,151,93],[288,174,119,74]]],p.G15=1335,p.G18=7973,p.G15_MASK=21522;class h{constructor(e,t){this.totalCount=e,this.dataCount=t}getDataCount(){return this.dataCount}getTotalCount(){return this.totalCount}static getRSBlocks(e,t){const o=h.getRsBlockTable(e,t),r=o.length/3,n=[];for(let e=0;e<r;e+=1){const t=o[3*e+0],r=o[3*e+1],s=o[3*e+2];for(let e=0;e<t;e+=1)n.push(new h(r,s))}return n}static getRsBlockTable(e,t){switch(t){case o.L:return h.RS_BLOCK_TABLE[4*(e-1)+0];case o.M:return h.RS_BLOCK_TABLE[4*(e-1)+1];case o.Q:return h.RS_BLOCK_TABLE[4*(e-1)+2];case o.H:return h.RS_BLOCK_TABLE[4*(e-1)+3]}throw new Error("tn:"+e+"/ecl:"+t)}}h.RS_BLOCK_TABLE=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12,7,37,13],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]];const m=Array(41).fill(0).map(((e,t)=>t));var g,f;!function(e){e.L="L",e.M="M",e.Q="Q",e.H="H"}(g||(g={})),function(e){e.numeric="numeric",e.alphanumeric="alphanumeric",e.byte="byte",e.kanji="kanji",e.unicode="unicode"}(f||(f={}));class b{constructor(e=0,t=g.L){this.modules=[],this.moduleCount=0,this.typeNumber=e,this.errorCorrectLevel=o[t],this.qrDataList=[]}getTypeNumber(){return this.typeNumber}setTypeNumber(e){this.typeNumber=e}getErrorCorrectLevel(){return this.errorCorrectLevel}setErrorCorrectLevel(e){this.errorCorrectLevel=e}clearData(){this.qrDataList=[]}addData(e,t=f.byte){if(e instanceof a)this.qrDataList.push(e);else{if("string"!=typeof e)throw new Error(typeof e);switch(t){case f.numeric:this.qrDataList.push(new u(e));break;case f.alphanumeric:this.qrDataList.push(new l(e));break;case f.byte:this.qrDataList.push(new d(e,b.stringToBytesFuncs.default));break;case f.unicode:this.qrDataList.push(new d(e,b.stringToBytesFuncs.UTF8));break;case f.kanji:this.qrDataList.push(new c(e,b.stringToBytesFuncs.SJIS));break;default:throw new Error("mode:"+t)}}}isDark(e,t){return!(!this.modules[e]||null==this.modules[e][t])&&this.modules[e][t]}getModuleCount(){return this.moduleCount}make(){if(this.typeNumber<1){let e=1;for(;e<40;e++){const o=h.getRSBlocks(e,this.errorCorrectLevel),r=new t;this.qrDataList.forEach((t=>{r.put(t.getMode(),4),r.put(t.getLength(),t.getLengthInBits(e)),t.write(r)}));const n=o.reduce(((e,t)=>e+t.getDataCount()),0);if(r.getLengthInBits()<=8*n)break}this.typeNumber=e}this.makeImpl(!1,this.getBestMaskPattern())}getBestMaskPattern(){let e=0,t=0;for(let o=0;o<8;o+=1){this.makeImpl(!0,o);const r=p.getLostPoint(this);(0==o||e>r)&&(e=r,t=o)}return t}makeImpl(e,t){this.moduleCount=4*this.typeNumber+17,this.modules=[];for(let e=0;e<this.moduleCount;e+=1){this.modules.push([]);for(let t=0;t<this.moduleCount;t+=1)this.modules[e].push(null)}this.setupPositionProbePattern(0,0),this.setupPositionProbePattern(this.moduleCount-7,0),this.setupPositionProbePattern(0,this.moduleCount-7),this.setupPositionAdjustPattern(),this.setupTimingPattern(),this.setupTypeInfo(e,t),this.typeNumber>=7&&this.setupTypeNumber(e);const o=b.createData(this.typeNumber,this.errorCorrectLevel,this.qrDataList);this.mapData(o,t)}mapData(e,t){let o=-1,r=this.moduleCount-1,n=7,s=0;const i=p.getMaskFunc(t);for(let t=this.moduleCount-1;t>0;t-=2)for(6==t&&(t-=1);;){for(let o=0;o<2;o+=1)if(null==this.modules[r][t-o]){let a=!1;s<e.length&&(a=1==(e[s]>>>n&1));i(r,t-o)&&(a=!a),this.modules[r][t-o]=a,n-=1,-1==n&&(s+=1,n=7)}if(r+=o,r<0||this.moduleCount<=r){r-=o,o=-o;break}}}setupPositionAdjustPattern(){const e=p.getPatternPosition(this.typeNumber);e.forEach((t=>{e.forEach((e=>{if(null==this.modules[t][e])for(let o=-2;o<=2;o+=1)for(let r=-2;r<=2;r+=1)this.modules[t+o][e+r]=-2==o||2==o||-2==r||2==r||0==o&&0==r}))}))}setupPositionProbePattern(e,t){for(let o=-1;o<=7;o+=1)for(let r=-1;r<=7;r+=1)e+o<=-1||this.moduleCount<=e+o||t+r<=-1||this.moduleCount<=t+r||(this.modules[e+o][t+r]=0<=o&&o<=6&&(0==r||6==r)||0<=r&&r<=6&&(0==o||6==o)||2<=o&&o<=4&&2<=r&&r<=4)}setupTimingPattern(){for(let e=8;e<this.moduleCount-8;e+=1)null==this.modules[e][6]&&(this.modules[e][6]=e%2==0);for(let e=8;e<this.moduleCount-8;e+=1)null==this.modules[6][e]&&(this.modules[6][e]=e%2==0)}setupTypeNumber(e){const t=p.getBCHTypeNumber(this.typeNumber);for(let o=0;o<18;o+=1)this.modules[~~(o/3)][o%3+this.moduleCount-8-3]=!e&&1==(t>>o&1);for(let o=0;o<18;o+=1)this.modules[o%3+this.moduleCount-8-3][~~(o/3)]=!e&&1==(t>>o&1)}setupTypeInfo(e,t){const o=this.errorCorrectLevel<<3|t,r=p.getBCHTypeInfo(o);for(let t=0;t<15;t+=1){const o=!e&&1==(r>>t&1);t<6?this.modules[t][8]=o:t<8?this.modules[t+1][8]=o:this.modules[this.moduleCount-15+t][8]=o}for(let t=0;t<15;t+=1){const o=!e&&1==(r>>t&1);t<8?this.modules[8][this.moduleCount-t-1]=o:t<9?this.modules[8][15-t-1+1]=o:this.modules[8][15-t-1]=o}this.modules[this.moduleCount-8][8]=!e}static createData(e,o,r){const n=h.getRSBlocks(e,o),s=new t;r.forEach((t=>{s.put(t.getMode(),4),s.put(t.getLength(),t.getLengthInBits(e)),t.write(s)}));const i=n.reduce(((e,t)=>e+t.getDataCount()),0);if(s.getLengthInBits()>8*i)throw new Error("code length overflow. ("+s.getLengthInBits()+">"+8*i+")");for(s.getLengthInBits()+4<=8*i&&s.put(0,4);s.getLengthInBits()%8!=0;)s.putBit(!1);for(;!(s.getLengthInBits()>=8*i||(s.put(b.PAD0,8),s.getLengthInBits()>=8*i));)s.put(b.PAD1,8);return b.createBytes(s,n)}static createBytes(e,t){let o=0,r=0,n=0;const s=new Array(t.length).map((e=>[])),a=new Array(t.length).map((e=>[]));function d(e){const t=[];for(let o=0;o<e;o+=1)t.push(0);return t}for(let l=0;l<t.length;l+=1){const c=t[l].getDataCount(),u=t[l].getTotalCount()-c;r=Math.max(r,c),n=Math.max(n,u),s[l]=d(c);for(let t=0;t<s[l].length;t+=1)s[l][t]=255&e.getBuffer()[t+o];o+=c;const h=p.getErrorCorrectPolynomial(u),m=new i(s[l],h.getLength()-1).mod(h);a[l]=d(h.getLength()-1);for(let e=0;e<a[l].length;e+=1){const t=e+m.getLength()-a[l].length;a[l][e]=t>=0?m.getAt(t):0}}const l=d(t.reduce(((e,t)=>e+t.getTotalCount()),0));let c=0;for(let e=0;e<r;e+=1)for(let o=0;o<t.length;o+=1)e<s[o].length&&(l[c]=s[o][e],c+=1);for(let e=0;e<n;e+=1)for(let o=0;o<t.length;o+=1)e<a[o].length&&(l[c]=a[o][e],c+=1);return l}}b.stringToBytesFuncs={default(e){const t=[];for(let o=0;o<e.length;o+=1){const r=e.charCodeAt(o);t.push(255&r)}return t}},b.PAD0=236,b.PAD1=17;const y=e=>!!e&&"object"==typeof e&&!Array.isArray(e);function O(e,t=!1){const o=e.split("").reverse().join("");return t?o.toLocaleUpperCase():o}function S(e,...t){if(!t.length)return e;const o=t.shift();return void 0!==o&&y(e)&&y(o)?(e={...e},Object.keys(o).forEach((t=>{const r=e[t],n=o[t];Array.isArray(r)&&Array.isArray(n)?e[t]=n:y(r)&&y(n)?e[t]=S({...r},n):e[t]=n})),S(e,...t)):e}const C=O("rq",!0)+O("-",!0)+O("talp",!0)+O("mrof",!0),k=O("a".repeat(6)+"#",!0),w="top",A="bottom",T="left",v="right";const q=e=>"number"==typeof e?e:parseInt(e.replace("%",""),10),D=(e,t="0%")=>e?e.endsWith("%")?e:e+"%":t,I="text",Z="image",W={disabled:!1,enableText:!0,type:"text",value:C},R=(e,t)=>!e?.decorations?.[t]?.disabled,V=(e,t,o)=>!o||!e?.decorations?.[t]?.disabled,E=e=>{if("string"==typeof e)return e;if(!e)return"";const{fontFace:t="Helvetica",fontSize:o=20,fontColor:r="#ffffff",letterSpacing:n=1,fontWeight:s="bold"}=e;return`font-weight: ${s}; font-size: ${o}px; font-family: ${t}; fill: ${r}; letter-spacing: ${n}px;`};W.style={fontFace:"Helvetica",fontSize:20,fontColor:k,letterSpacing:2};const j={...W};const x=({document:e,position:t,rotate:o,flip:r,thickness:n,height:s,width:i,round:a,offset:d=0,curveAdjustment:l=0,curveRadius:c,outerBorderPadding:u=0,instanceId:p})=>{const h=Math.min(i,s),m=e.createElementNS("http://www.w3.org/2000/svg","path"),g=(e=>{if(e>=50)return 1;const t=[{R:0,P:0},{R:5,P:0},{R:10,P:.12},{R:15,P:.2},{R:20,P:.32},{R:25,P:.44},{R:30,P:.56},{R:35,P:.65},{R:40,P:.78},{R:45,P:.9},{R:50,P:1}],o=t.find((t=>e<=t.R))||t[0],r=t.find((t=>e>t.R))||t[t.length-1],{R:n,P:s}=o,{R:i,P:a}=r;return s+(e-n)/(i-n)*(a-s)})("string"==typeof a?q(a):a),f=void 0!==c?function(e){let t;return t="number"==typeof e?e:"string"==typeof e?(e.includes("%"),parseFloat(e)):0,t=Math.min(Math.max(t,0),50),.5+t/50*.5}(c):g,b=(h-n-2*u-10*l*2)/2*f,y=((e,t,o,r)=>{const n=o/2,s=r/2;let i="";return e&&(i+=`rotate(${e}, ${n}, ${s}) `),t&&(i+=`translate(${n}, ${s}) scale(1, -1) translate(${-n}, ${-s}) `),i.trim()})(o,r,i,s);m.setAttribute("id",`${t}-text-path-${p}`),m.setAttribute("transform",y);const{startX:O,startY:S,pathWidth:C}=((e,t,o,r,n={})=>{let s=t/2,i=t/2+r,a=e-t;return o&&(a-=2*o,s+=o,i+=o),s+=n.left||0,i+=n.top||0,{startX:s,startY:i,pathWidth:a}})(h,n,u,d);return m.setAttribute("d",((e,t,o,r)=>`\n M${e},${t+r}\n a${r},${r} 0 0 1 ${r},${-r}\n h${o-2*r}\n a${r},${r} 0 0 1 ${r},${r}\n `)(O,S,C,b)),m},B=({document:e,thickness:t,value:o,svg:r,position:n,height:s,width:i,round:a,style:d,offset:l=0,curveAdjustment:c=0,curveDisabled:u=!1,outerBorderPadding:p=0,curveRadius:h,instanceId:m,noBorderThickness:g,enabledBorders:f})=>{let b=0,y=!1;if(n===v?b=90:n===A?y=!u:n===T&&(b=270),u){const a=e.createElementNS("http://www.w3.org/2000/svg","text");let c=i/2,u=(s-Math.min(i,s)+t)/2+2*p+l-(s-i>0?0:(i-s)/2);if(n===A?u=s-2*p-t/2-l:n===w&&(u=2*p+t/2+l),n===w||n===A){let e=0;!f[T]&&f[v]?e=-(t-g)/2:f[T]&&!f[v]&&(e=(t-g)/2),c+=e}else if(n===T||n===v){let e=0;!f[w]&&f[A]?e=n===T?(t-g)/2:-(t-g)/2:f[w]&&!f[A]&&(e=n===T?-(t-g)/2:(t-g)/2),c+=e}let h="";0!==b&&(h+=`rotate(${b}, ${i/2}, ${s/2}) `),a.setAttribute("x",c.toString()),a.setAttribute("y",u.toString()),a.setAttribute("text-anchor","middle"),a.setAttribute("dominant-baseline","middle"),h&&a.setAttribute("transform",h.trim()),a.textContent=o;const m=E(d);a.setAttribute("style",m),r.appendChild(a)}else{let u=r.getElementsByTagName("defs")[0];u||(u=e.createElementNS("http://www.w3.org/2000/svg","defs"),r.appendChild(u));const O=x({document:e,position:n,rotate:b,flip:y,thickness:t,height:s,width:i,round:a,offset:l,curveAdjustment:c,enabledBorders:f,outerBorderPadding:p,curveRadius:h,noBorderThickness:g,instanceId:m}),{x:S,y:C}=function(e,t,o,r){let n=0,s=0;const i=(t-o)/2;return r.left&&r.right&&r.top&&r.bottom?(n=0,s=0):"top"===e||"bottom"===e?!r.left&&r.right?n=-i:(r.left&&!r.right||r.left&&r.right)&&(n=i):"left"!==e&&"right"!==e||(!r.top&&r.bottom?r.left&&r.right?(n="left"===e?2*+i:0,s=-i):n="left"===e?+i:-i:r.top&&!r.bottom?r.left&&r.right?(n="left"===e?0:2*i,s=-i):n=0:r.top&&r.bottom?s=r.left&&r.right?2*+i:+i:(n=r.left&&r.right?2*+i:+i,s=r.left&&r.right?2*-i:-i)),{x:n,y:s}}(n,t,g,f);if(0!==S||0!==C){const e=`${O.getAttribute("transform")||""} translate(${S}, ${C})`.trim();O.setAttribute("transform",e)}u.appendChild(O),r.appendChild((({document:e,value:t,position:o,style:r,instanceId:n})=>{const s=e.createElementNS("http://www.w3.org/2000/svg","text"),i=e.createElementNS("http://www.w3.org/2000/svg","textPath");i.setAttribute("href",`#${o}-text-path-${n}`),i.setAttribute("text-anchor","middle"),i.setAttribute("startOffset","50%"),i.textContent=t,i.setAttribute("alignment-baseline","middle");const a=E(r);return s.setAttribute("style",a),s.appendChild(i),s})({document:e,position:n,rotate:b,value:o,style:d,instanceId:m}))}},J=({document:e,thickness:t,value:o,svg:r,position:n,height:s,width:i,offset:a=0,style:d})=>{const l=e.createElementNS("http://www.w3.org/2000/svg","image"),c=Math.min(i,s);let u=(i-c+t)/2,p=(s-c+t)/2+a;n===w?u+=(c-t)/2:n===v?(u+=c-t,p+=(c-t)/2):n===A?(u+=(c-t)/2,p+=c-t):n===T&&(p+=(c-t)/2),l.setAttribute("href",o||""),l.setAttribute("x",`${u}`),l.setAttribute("y",`${p}`),l.setAttribute("style",d?.toString()||""),r.appendChild(l)},Y=e=>(t,o,r,n,s,i,a,d,l)=>{const{instanceId:c}=o,u=r,p=r,h=Math.min(u,p),m=D(e.radius),g=m&&q(m)>0?q(m)/100*h:0,f=D(e?.inner?.radius,g),b=Math.min(Math.max(e.inner?.scale??1,0),1.5),y=e.inner?.horizontalOffset??0,O=e.inner?.verticalOffset??0,S=e.thickness,C=e.color??"#000000",k=e.borderOuter?e.borderOuter.thickness/2:0,W=e.borderInner?e.borderInner.thickness/2:0,E=o.document,x=s.left+s.right,Y=s.top+s.bottom,M=n(S,g),L={top:R(e,"top"),right:R(e,"right"),bottom:V(e,"bottom",l()),left:R(e,"left")},P=E.createElementNS("http://www.w3.org/2000/svg","rect"),G={x:i.left/2,y:i.top/2,width:h+x-i.left,height:h+Y-i.top,fill:C,rx:m??g};Object.entries(G).forEach((([e,t])=>{P.setAttribute(e,t.toString())}));const X=E.createElementNS("http://www.w3.org/2000/svg","rect"),N=g>=200?"50%":g,z=u+x-(s.left+s.right+a.left+a.right+i.left+i.right),F=p+Y-(s.top+s.bottom+a.top+a.bottom+i.top+i.bottom),U=z*b,K=F*b,H=(z-U)/2-y,_=(F-K)/2-O,Q={x:s.left+a.left+i.left+H,y:s.top+a.top+i.top+_,width:U,height:K,fill:M?.getAttribute("fill")||"#ffffff",rx:f??N};Object.entries(Q).forEach((([e,t])=>X.setAttribute(e,t.toString()))),M&&(({strokePath:e,backgroundMaskGroup:t,svgElement:o,color:r="#000000"})=>{e.setAttribute("fill",t?.getAttribute("fill")||r),t.setAttribute("fill","none"),t.setAttribute("stroke-width","0"),o.insertBefore(t,o.firstChild)})({strokePath:X,backgroundMaskGroup:M,svgElement:t,color:C});let $=t.getElementsByTagName("defs")[0];$||($=E.createElementNS("http://www.w3.org/2000/svg","defs"),t.insertBefore($,t.firstChild));const ee=E.createElementNS("http://www.w3.org/2000/svg","mask");ee.setAttribute("id",`qr-mask-${c}`),ee.setAttribute("maskUnits","userSpaceOnUse");const te=E.createElementNS("http://www.w3.org/2000/svg","rect");if(te.setAttribute("fill","white"),Object.entries(Q).forEach((([e,t])=>{"fill"!==e&&te.setAttribute(e,t.toString())})),$.appendChild(ee),ee.appendChild(te),t.insertBefore(X,t.firstChild?.nextSibling),t.insertBefore(P,t.firstChild),e.borderOuter&&e.borderOuter.thickness>0){const o=E.createElementNS("http://www.w3.org/2000/svg","rect"),r={x:i.left/2,y:i.top/2,width:u+x-i.left,height:p+Y-i.top,fill:"none",rx:m??g,stroke:e.borderOuter.color||"#c0c0c0","stroke-width":e.borderOuter.thickness};Object.entries(r).forEach((([e,t])=>o.setAttribute(e,t.toString()))),t.insertBefore(o,t.firstChild?.nextSibling)}if(M){if(Array.from(t.getElementsByTagName("rect"))[0]){const e=t.firstChild;e?t.insertBefore(M,e):t.appendChild(M)}}if(e.borderInner&&e.borderInner.thickness>0){const o=E.createElementNS("http://www.w3.org/2000/svg","rect"),r={x:s.left+a.left+i.left+H,y:s.top+a.top+i.top+_,width:U,height:K,fill:"none",stroke:e.borderInner.color||"#c0c0c0","stroke-width":a.left,rx:f??N};Object.entries(r).forEach((([e,t])=>o.setAttribute(e,t.toString()))),t.appendChild(o)}let oe={...j};if(!l()){const t=((e,t=[w,T,v])=>{for(const o of t){const t=e.decorations?.[o];if(t&&t.enableText&&!t.disabled&&t.type===I&&t.style)return t.style}})(e);t&&(oe={...oe,style:t})}const re=l()?e:{...e,decorations:{...e.decorations,bottom:{...e.decorations?.bottom||{},...oe,disabled:!1,enableText:!0}}},ne=[w,T,v,A];for(const e of ne){const o=re.decorations?.[e];if(!o||!o.enableText||!L[e])continue;const r=o.type||I,n=r===Z?J:r===I?B:void 0;n&&n({document:E,svg:t,position:e,thickness:re.thickness,value:o.value??"",style:o.style,offset:o.offset,curveAdjustment:o.curveAdjustment,curveDisabled:o.curveDisabled,height:p+Y,width:u+x,enabledBorders:L,outerBorderPadding:k,innerBorderPadding:W,round:m,curveRadius:o.curveRadius,instanceId:c,noBorderThickness:d})}};var M,L,P,G,X,N;function z(e){const t={...e};if(!t.colorStops||!t.colorStops.length)throw new Error("Field 'colorStops' is required in gradient");return t.rotation?t.rotation=Number(t.rotation):t.rotation=0,t.colorStops=t.colorStops.map((e=>({...e,offset:Number(e.offset)}))),t}function F(e){const t={...e};if(t.imageOptions={...t.imageOptions,imageSize:Math.min(1,Number(t.imageOptions?.imageSize))||1,margin:Number(t.imageOptions?.margin)||0,padding:Number(t.imageOptions?.padding)||0},t.imageOptions.mode==N.overlay&&(t.imageOptions.margin=0),t.dotsOptions={...t.dotsOptions},t.dotsOptions.gradient&&(t.dotsOptions.gradient=z(t.dotsOptions.gradient)),t.dotsOptions.size=Math.round(Math.max(0,t.dotsOptions.size)||10),t.cornersSquareOptions&&(t.cornersSquareOptions={...t.cornersSquareOptions},t.cornersSquareOptions.gradient&&(t.cornersSquareOptions.gradient=z(t.cornersSquareOptions.gradient))),t.cornersDotOptions&&(t.cornersDotOptions={...t.cornersDotOptions},t.cornersDotOptions.gradient&&(t.cornersDotOptions.gradient=z(t.cornersDotOptions.gradient))),t.backgroundOptions&&(t.backgroundOptions={...t.backgroundOptions},t.backgroundOptions.gradient&&(t.backgroundOptions.gradient=z(t.backgroundOptions.gradient))),t.borderOptions&&t.borderOptions.decorations){const e=["top","bottom","left","right"];for(const o of e){let e=t.borderOptions.decorations[o];e||(t.borderOptions.decorations[o]={enableText:!1,value:void 0},e=t.borderOptions.decorations[o]),!1===e.enableText?e.value=void 0:!0===e.enableText?null!==e.value&&void 0!==e.value||(e.value=""):void 0===e.enableText&&(e.value&&"string"==typeof e.value&&""!==e.value.trim()?e.enableText=!0:(e.enableText=!1,e.value=void 0))}}return"undefined"==typeof document||t.document||(t.document=document),t}!function(e){e.radial="radial",e.linear="linear"}(M||(M={})),function(e){e.dot="dot",e.randomDot="random-dot",e.rounded="rounded",e.extraRounded="extra-rounded",e.verticalLine="vertical-line",e.horizontalLine="horizontal-line",e.classy="classy",e.classyRounded="classy-rounded",e.square="square",e.smallSquare="small-square",e.tinySquare="tiny-square",e.star="star",e.plus="plus",e.diamond="diamond"}(L||(L={})),function(e){e.dot="dot",e.square="square",e.heart="heart",e.rounded="rounded",e.classy="classy",e.outpoint="outpoint",e.inpoint="inpoint"}(P||(P={})),function(e){e.dot="dot",e.square="square",e.rounded="rounded",e.classy="classy",e.outpoint="outpoint",e.inpoint="inpoint"}(G||(G={})),function(e){e.square="square",e.circle="circle"}(X||(X={})),function(e){e.center="center",e.overlay="overlay",e.background="background"}(N||(N={}));const U={[g.L]:.07,[g.M]:.15,[g.Q]:.25,[g.H]:.3};function K(e){const t={};if((e.primaryColor||e.dotsGradient)&&(t.dotsOptions={...t.dotsOptions,...e.primaryColor&&{color:e.primaryColor},...e.dotsGradient&&{gradient:e.dotsGradient}}),(e.secondaryColor||e.cornersGradient)&&(t.cornersSquareOptions={...t.cornersSquareOptions,...e.secondaryColor&&{color:e.secondaryColor},...e.cornersGradient&&{gradient:e.cornersGradient}},t.cornersDotOptions={...t.cornersDotOptions,...e.secondaryColor&&{color:e.secondaryColor}}),(e.thirdColor||e.cornersDotGradient)&&(t.cornersDotOptions={...t.cornersDotOptions,...e.thirdColor&&{color:e.thirdColor},...e.cornersDotGradient&&{gradient:e.cornersDotGradient}}),(e.backgroundColor||e.backgroundGradient)&&(t.backgroundOptions={...t.backgroundOptions,...e.backgroundColor&&{color:e.backgroundColor},...e.backgroundGradient&&{gradient:e.backgroundGradient}}),e.dotShape&&(t.dotsOptions={...t.dotsOptions,type:e.dotShape}),e.cornerSquareShape&&(t.cornersSquareOptions={...t.cornersSquareOptions,type:e.cornerSquareShape}),e.cornerDotShape&&(t.cornersDotOptions={...t.cornersDotOptions,type:e.cornerDotShape}),e.logo&&(t.image=e.logo),(void 0!==e.logoSize||e.logoMode||void 0!==e.logoMargin||e.logoBackgroundColor||void 0!==e.logoPadding||void 0!==e.logoRadius)&&(t.imageOptions={...t.imageOptions,...void 0!==e.logoSize&&{imageSize:e.logoSize},...e.logoMode&&{mode:e.logoMode},...void 0!==e.logoMargin&&{margin:e.logoMargin},...e.logoBackgroundColor&&{backgroundColor:e.logoBackgroundColor},...void 0!==e.logoPadding&&{padding:e.logoPadding},...void 0!==e.logoRadius&&{radius:e.logoRadius}}),e.borderColor||void 0!==e.borderThickness||void 0!==e.borderRadius||e.borderInnerColor||void 0!==e.borderInnerThickness||void 0!==e.borderInnerRadius||e.borderOuterColor||void 0!==e.borderOuterThickness||e.borderTextTop||e.borderTextRight||e.borderTextBottom||e.borderTextLeft||e.borderFontFace||void 0!==e.borderFontSize||e.borderFontColor||void 0!==e.borderLetterSpacing||e.borderFontWeight){t.borderOptions?(t.borderOptions.hasBorder=!0,void 0===t.borderOptions.thickness&&(t.borderOptions.thickness=0)):t.borderOptions={hasBorder:!0,thickness:0};const o=t.borderOptions;e.borderColor&&(o.color=e.borderColor),void 0!==e.borderThickness&&(o.thickness=e.borderThickness),void 0!==e.borderRadius&&(o.radius=String(e.borderRadius)),void 0!==e.borderInnerThickness?o.borderInner={color:void 0!==e.borderInnerColor?e.borderInnerColor:o.borderInner?.color,thickness:e.borderInnerThickness}:void 0!==e.borderInnerColor&&o.borderInner&&(o.borderInner.color=e.borderInnerColor),void 0!==e.borderInnerRadius&&(o.inner={...o.inner||{},radius:String(e.borderInnerRadius)}),void 0!==e.borderOuterThickness?o.borderOuter={color:void 0!==e.borderOuterColor?e.borderOuterColor:o.borderOuter?.color,thickness:e.borderOuterThickness}:void 0!==e.borderOuterColor&&o.borderOuter&&(o.borderOuter.color=e.borderOuterColor);const r={};e.borderFontFace&&(r.fontFace=e.borderFontFace),void 0!==e.borderFontSize&&(r.fontSize=e.borderFontSize),e.borderFontColor&&(r.fontColor=e.borderFontColor),void 0!==e.borderLetterSpacing&&(r.letterSpacing=e.borderLetterSpacing),e.borderFontWeight&&(r.fontWeight=e.borderFontWeight),o.decorations||(o.decorations={});const n=o.decorations?JSON.parse(JSON.stringify(o.decorations)):{};let s=!1;["top","right","bottom","left"].forEach((t=>{const o=`borderText${t.charAt(0).toUpperCase()+t.slice(1)}`,i=e[o];void 0!==i?(n[t]||(n[t]={}),n[t]={...n[t],value:i,enableText:!0,style:{...n[t]?.style||{},...r}},s=!0):n[t]?.value&&Object.keys(r).length>0&&(n[t]||(n[t]={}),n[t].style={...n[t].style||{},...r},s=!0)})),s&&(o.decorations=n)}return t}function H(e){const t=[];return void 0!==e.logoSize&&("number"!=typeof e.logoSize||e.logoSize<0||e.logoSize>1)&&t.push("logoSize must be a number between 0 and 1."),{isValid:0===t.length,errors:t}}class _{constructor(){}close(){}}class Q extends _{constructor(e){super(),this.istream=e,this.buffer=0,this.buflen=0}readByte(){for(;this.buflen<8;){const e=this.istream.readByte();if(-1==e){if(0==this.buflen)return-1;throw new Error("unexpected end of file./"+this.buflen)}if(e=="=".charCodeAt(0))return this.buflen=0,-1;Q.isWhitespace(e)||(this.buffer=this.buffer<<6|Q.decode(e),this.buflen+=6)}const e=this.buffer>>>this.buflen-8&255;return this.buflen-=8,e}static isWhitespace(e){return e=="\v".charCodeAt(0)||e=="\t".charCodeAt(0)||e=="\r".charCodeAt(0)||e=="\n".charCodeAt(0)}static decode(e){if("A".charCodeAt(0)<=e&&e<="Z".charCodeAt(0))return e-"A".charCodeAt(0);if("a".charCodeAt(0)<=e&&e<="z".charCodeAt(0))return e-"a".charCodeAt(0)+26;if("0".charCodeAt(0)<=e&&e<="9".charCodeAt(0))return e-"0".charCodeAt(0)+52;if(e=="+".charCodeAt(0))return 62;if(e=="/".charCodeAt(0))return 63;throw new Error("c:"+e)}}class $ extends _{constructor(e){super(),this.bytes=e,this.pos=0}readByte(){if(this.pos<this.bytes.length){const e=this.bytes[this.pos];return this.pos+=1,e}return-1}}(function(e,t){const o=(()=>{const o=new Q(new $(function(e){const t=[];for(let o=0;o<e.length;o+=1)t.push(e.charCodeAt(o));return t}(e))),r=()=>{const e=o.readByte();if(-1==e)throw new Error("eof");return e};let n=0;const s={};for(;;){const e=o.readByte();if(-1==e)break;const t=r(),i=r()<<8|r();s[String.fromCharCode(e<<8|t)]=i,n+=1}if(n!=t)throw new Error(n+"!="+t);return s})(),r="?".charCodeAt(0)})("AAAAAAABAAEAAgACAAMAAwAEAAQABQAFAAYABgAHAAcACAAIAAkACQAKAAoACwALAAwADAANAA0ADgAOAA8ADwAQABAAEQARABIAEgATABMAFAAUABUAFQAWABYAFwAXABgAGAAZABkAGgAaABsAGwAcABwAHQAdAB4AHgAfAB8AIAAgACEAIQAiACIAIwAjACQAJAAlACUAJgAmACcAJwAoACgAKQApACoAKgArACsALAAsAC0ALQAuAC4ALwAvADAAMAAxADEAMgAyADMAMwA0ADQANQA1ADYANgA3ADcAOAA4ADkAOQA6ADoAOwA7ADwAPAA9AD0APgA+AD8APwBAAEAAQQBBAEIAQgBDAEMARABEAEUARQBGAEYARwBHAEgASABJAEkASgBKAEsASwBMAEwATQBNAE4ATgBPAE8AUABQAFEAUQBSAFIAUwBTAFQAVABVAFUAVgBWAFcAVwBYAFgAWQBZAFoAWgBbAFsAXABcAF0AXQBeAF4AXwBfAGAAYABhAGEAYgBiAGMAYwBkAGQAZQBlAGYAZgBnAGcAaABoAGkAaQBqAGoAawBrAGwAbABtAG0AbgBuAG8AbwBwAHAAcQBxAHIAcgBzAHMAdAB0AHUAdQB2AHYAdwB3AHgAeAB5AHkAegB6AHsAewB8AHwAfQB9AH4AfgB/AH8AooGRAKOBkgCngZgAqIFOAKyBygCwgYsAsYF9ALSBTAC2gfcA14F+APeBgAORg58DkoOgA5ODoQOUg6IDlYOjA5aDpAOXg6UDmIOmA5mDpwOag6gDm4OpA5yDqgOdg6sDnoOsA5+DrQOgg64DoYOvA6ODsAOkg7EDpYOyA6aDswOng7QDqIO1A6mDtgOxg78DsoPAA7ODwQO0g8IDtYPDA7aDxAO3g8UDuIPGA7mDxwO6g8gDu4PJA7yDygO9g8sDvoPMA7+DzQPAg84DwYPPA8OD0APEg9EDxYPSA8aD0wPHg9QDyIPVA8mD1gQBhEYEEIRABBGEQQQShEIEE4RDBBSERAQVhEUEFoRHBBeESAQYhEkEGYRKBBqESwQbhEwEHIRNBB2ETgQehE8EH4RQBCCEUQQhhFIEIoRTBCOEVAQkhFUEJYRWBCaEVwQnhFgEKIRZBCmEWgQqhFsEK4RcBCyEXQQthF4ELoRfBC+EYAQwhHAEMYRxBDKEcgQzhHMENIR0BDWEdQQ2hHcEN4R4BDiEeQQ5hHoEOoR7BDuEfAQ8hH0EPYR+BD6EgAQ/hIEEQISCBEGEgwRChIQEQ4SFBESEhgRFhIcERoSIBEeEiQRIhIoESYSLBEqEjARLhI0ETISOBE2EjwROhJAET4SRBFGEdiAQgV0gFIFcIBaBYSAYgWUgGYFmIByBZyAdgWggIIH1ICGB9iAlgWQgJoFjIDCB8SAygYwgM4GNIDuBpiEDgY4hK4HwIZCBqSGRgaohkoGoIZOBqyHSgcsh1IHMIgCBzSICgd0iA4HOIgeB3iIIgbgiC4G5IhKBfCIageMiHYHlIh6BhyIggdoiJ4HIIiiBySIpgb8iKoG+IiuB5yIsgegiNIGIIjWB5iI9geQiUoHgImCBgiJhgd8iZoGFImeBhiJqgeEia4HiIoKBvCKDgb0ihoG6IoeBuyKlgdsjEoHcJQCEnyUBhKolAoSgJQOEqyUMhKElD4SsJRCEoiUThK0lFISkJReEryUYhKMlG4SuJRyEpSUdhLolIIS1JSOEsCUkhKclJYS8JSiEtyUrhLIlLISmJS+EtiUwhLslM4SxJTSEqCU3hLglOIS9JTuEsyU8hKklP4S5JUKEviVLhLQloIGhJaGBoCWygaMls4GiJbyBpSW9gaQlxoGfJceBniXLgZslzoGdJc+BnCXvgfwmBYGaJgaBmSZAgYomQoGJJmqB9CZtgfMmb4HyMACBQDABgUEwAoFCMAOBVjAFgVgwBoFZMAeBWjAIgXEwCYFyMAqBczALgXQwDIF1MA2BdjAOgXcwD4F4MBCBeTARgXowEoGnMBOBrDAUgWswFYFsMByBYDBBgp8wQoKgMEOCoTBEgqIwRYKjMEaCpDBHgqUwSIKmMEmCpzBKgqgwS4KpMEyCqjBNgqswToKsME+CrTBQgq4wUYKvMFKCsDBTgrEwVIKyMFWCszBWgrQwV4K1MFiCtjBZgrcwWoK4MFuCuTBcgrowXYK7MF6CvDBfgr0wYIK+MGGCvzBigsAwY4LBMGSCwjBlgsMwZoLEMGeCxTBogsYwaYLHMGqCyDBrgskwbILKMG2CyzBugswwb4LNMHCCzjBxgs8wcoLQMHOC0TB0gtIwdYLTMHaC1DB3gtUweILWMHmC1zB6gtgwe4LZMHyC2jB9gtswfoLcMH+C3TCAgt4wgYLfMIKC4DCDguEwhILiMIWC4zCGguQwh4LlMIiC5jCJgucwioLoMIuC6TCMguowjYLrMI6C7DCPgu0wkILuMJGC7zCSgvAwk4LxMJuBSjCcgUswnYFUMJ6BVTChg0AwooNBMKODQjCkg0MwpYNEMKaDRTCng0YwqINHMKmDSDCqg0kwq4NKMKyDSzCtg0wwroNNMK+DTjCwg08wsYNQMLKDUTCzg1IwtINTMLWDVDC2g1Uwt4NWMLiDVzC5g1gwuoNZMLuDWjC8g1swvYNcML6DXTC/g14wwINfMMGDYDDCg2Eww4NiMMSDYzDFg2QwxoNlMMeDZjDIg2cwyYNoMMqDaTDLg2owzINrMM2DbDDOg20wz4NuMNCDbzDRg3Aw0oNxMNODcjDUg3Mw1YN0MNaDdTDXg3Yw2IN3MNmDeDDag3kw24N6MNyDezDdg3ww3oN9MN+DfjDgg4Aw4YOBMOKDgjDjg4Mw5IOEMOWDhTDmg4Yw54OHMOiDiDDpg4kw6oOKMOuDizDsg4ww7YONMO6DjjDvg48w8IOQMPGDkTDyg5Iw84OTMPSDlDD1g5Uw9oOWMPuBRTD8gVsw/YFSMP6BU04AiOpOAZKaTgOOtU4HlpxOCI/kTgmOT04Kj+NOC4m6Tg2Vc04Ol15OEJigThGJTk4Uio5OFZihThaQok4XmcBOGIt1ThmVuE4ej+VOIZe8TiaVwE4qmKJOLZKGTjGYo04yi/hONpikTjiK2045kk9OO47lTjyYpU4/mKZOQpinTkOUVE5Fi3ZOS5RWTk2T4U5OjMFOT5ZSTlXlaE5WmKhOV4/mTliYqU5ZibNOXYvjTl6M7k5fludOYpukTnGXkE5zk/tOfoqjToCLVE6CmKpOhZirToaXuU6Il1xOiZGIToqYrU6LjpZOjJPxTo6YsE6RiV1OkozdTpSM3E6ViOROmJhqTpmYaU6bjbFOnIifTp6YsU6fmLJOoJizTqGWU06imLROpIzwTqWI5U6mlpJOqIucTquLnU6si55OrZLgTq6Xuk6wmLVOs5i2TraYt066kGxOwI9ZTsGQbU7CmLxOxJi6TsaYu07Hi3dOyo2hTsuJ7k7NmLlOzpi4Ts+Vp07UjmVO1Y5kTtaRvE7XmL1O2JV0TtmQ5U7dgVdO3pi+Tt+YwE7jkeNO5JffTuWIyE7tmL9O7om8TvCLwk7ykodO9oyPTveYwU77lENPAYrpTwmYwk8KiMlPDYzeTw6K6k8PlZpPEJSwTxGLeE8aie9PHJjlTx2TYE8vlIxPMJjETzSUuk82l+BPOJBMTzqOZk88jpdPPYm+T0OSz09GkkFPR5jIT02Iyk9OkuFPT49aT1CNsk9Rl0NPU5HMT1WJvU9XmMdPWZddT1qYw09bmMVPXI3sT12Yxk9em0NPaZjOT2+Y0U9wmM9Pc4nAT3WVuU92mMlPe5jNT3yM8U9/jmdPg4qkT4aY0k+ImMpPi5fhT42OmE+PmMtPkZjQT5aY00+YmMxPm4ufT52Iy0+gi6BPoYm/T6ubRE+tlplPrpWOT6+M8k+1kE5Ptpe1T7+V1k/CjFdPw5GjT8SJ4k/Kj3JPzpjXT9CY3E/RmNpP1JjVT9eRrU/YmNhP2pjbT9uY2U/dldtP35jWT+GQTU/jlpNP5JjdT+WY3k/uj0NP75jrT/OUb0/1lVVP9pjmT/iV7k/6ibRP/pjqUAWY5FAGmO1QCZFxUAuMwlANlHtQD+DFUBGY7FASk3xQFJjhUBaM9FAZjPNQGpjfUB+O2FAhmOdQI5XtUCSSbFAlmONQJoyRUCiY4FApmOhQKpjiUCuXz1AsmOlQLZhgUDaL5FA5jJBQQ5juUEeY71BImPNQSYjMUE+VzlBQmPJQVZjxUFaY9VBamPRQXJLiUGWMklBsmPZQco7DUHSRpFB1kuNQdov0UHiY91B9i1VQgJj4UIWY+lCNllRQkYyGUJiOUFCZlPVQmpj5UKyNw1Ctl2JQspj8ULOZQlC0mPtQtY3CULePnVC+jFhQwplDUMWLzVDJmUBQyplBUM2TrVDPkZxQ0YuhUNWWbFDWmURQ2pe7UN6ZRVDjmUhQ5ZlGUOeRbVDtmUdQ7plJUPWZS1D5mUpQ+5XGUQCLVlEBmU1RAplOUQSJrVEJmUxREo7yURSZUVEVmVBRFplPURiY1FEamVJRH4+eUSGZU1Eql0RRMpbXUTeZVVE6mVRRO5lXUTyZVlE/mVhRQJlZUUGI8lFDjLNRRIxaUUWPW1FGkptRR4uiUUiQ5lFJjPVRS42OUUyZW1FNlsZRTpNlUVCOmVFSmVpRVJlcUVqTfVFcipVRYpldUWWT/FFokVNRaZlfUWqZYFFrlKpRbIz2UW2YWlFumWFRcYukUXWVulF2kbRRd4vvUXiTVFF8jJNRgJliUYKZY1GFk+BRhol+UYmZZlGKjftRjJllUY2NxFGPmWdRkOPsUZGZaFGSlmBRk5lpUZWZalGWmWtRl4/nUZmOylGgiqVRopluUaSZbFGllrtRppltUaiVeVGpmW9RqplwUauZcVGsk35RsJl1UbGZc1GymXRRs5lyUbSN4VG1mXZRtpboUbeX4lG9mXdRxJCmUcWZeFHGj3lRyZl5UcuSnFHMl71RzZOAUdaZw1HbmXpR3OqjUd2Lw1HgmXtR4ZZ9UeaPiFHnkfpR6Zl9UeqT4lHtmX5R8JmAUfGKTVH1mYFR9oulUfiTylH5iZpR+o9vUf2Un1H+mYJSAJOBUgOQblIEmYNSBpWqUgeQ2FIIiqBSCoqnUguZhFIOmYZSEYxZUhSZhVIXl/FSHY+JUiSUu1IllcpSJ5mHUimXmFIqmYhSLpmJUjCTnlIzmYpSNpCnUjeN/FI4jJRSOZmLUjqOaFI7jY9SQ5LkUkSZjVJHkaVSSo3tUkuZjlJMmY9STZFPUk+ZjFJUmZFSVpZVUluNhFJemZBSY4yVUmSN3FJllI1SaZmUUmqZklJvlZtScI/oUnGZm1JyioRSc5mVUnSZk1J1kW5SfZmXUn+ZllKDimNSh4yAUoiZnFKJl6tSjZmYUpGZnVKSmZpSlJmZUpuXzVKfjPdSoInBUqOX8lKpj5VSqpN3UquNhVKsmaBSrZmhUrGX41K0mEpStZmjUrmM+FK8maJSvopOUsGZpFLDlnVSxZK6UseXRVLJlddSzZmlUtLo01LVk65S15mmUtiKqFLZlrFS3Y+fUt6Zp1LfleVS4JmrUuKQqFLjmahS5IvOUuaZqVLniqlS8oxNUvOZrFL1ma1S+JmuUvmZr1L6jtlS/oz5Uv+W3FMBluZTApP1UwWV71MGmbBTCJmxUw2Zs1MPmbVTEJm0UxWZtlMWibtTF5ZrUxmN+lMambdTHZF4UyCPoFMhi6dTI5m4UyqU2VMvmblTMZm6UzOZu1M4mbxTOZVDUzqL5lM7iONTP5O9U0CZvVNBj1xTQ5DnU0WZv1NGmb5TR4+hU0iM31NJmcFTSpS8U02ZwlNRlNpTUpGyU1OR7FNUi6ZTV5PsU1iSUFNalI5TXJZtU16ZxFNgkOhTZoxUU2mZxVNumcZTb4lLU3CI81NxiutTc5GmU3SLcFN1l5FTd5nJU3iJtVN7mchTf4uoU4KZylOElu9TlpnLU5iX0FOajPpTn4y0U6CZzFOlmc5TppnNU6iQflOpiVhTrYl9U66Zz1OwmdBTs4y1U7aZ0VO7i45Two5RU8OZ0lPIlpRTyY2zU8qLeVPLl0ZTzJFvU82UvVPOjvtT1I9mU9aO5lPXjvNT2Y+WU9uUvlPfmdVT4YliU+KRcFPjjPtT5IzDU+WL5VPomdlT6ZJAU+qR/FPri6lT7I+iU+2Z2lPumdhT74nCU/CR5FPxjrZT8o5qU/OJRVP2ipBT942GU/iOaVP6mdtUAZncVAOLaFQEimVUCI2HVAmLZ1QKkt1UC4lEVAyTr1QNlrxUDo1AVA+XmVQQk2ZUEYz8VBuMTlQdmeVUH4vhVCCWaVQmlNtUKZnkVCuK3FQsmd9ULZngVC6Z4lQ2meNUOIt6VDmQgVQ7latUPJnhVD2Z3VQ+jOFUQJneVEKYQ1RGlfBUSJLmVEmM4FRKjZBUTpnmVFGT21RfmepUaI78VGqO9FRwme1UcZnrVHOWoVR1mehUdpnxVHeZ7FR7me9UfIzEVH2WvVSAmfBUhJnyVIaZ9FSLje5UjJhhVI6Z6VSPmedUkJnzVJKZ7lSimfZUpJpCVKWZ+FSomfxUq5pAVKyZ+VSvml1Uso3nVLOKUFS4mfdUvJpEVL2I9FS+mkNUwIijVMGVaVTCmkFUxJn6VMeZ9VTImftUyY3GVNiaRVThiPVU4ppOVOWaRlTmmkdU6I+jVOmWiVTtmkxU7ppLVPKTTlT6mk1U/ZpKVQSJU1UGjbRVB5BPVQ+aSFUQk4JVFJpJVRaIoFUumlNVL5dCVTGPpVUzmllVOJpYVTmaT1U+kcFVQJpQVUSR7VVFmlVVRo+kVUyaUlVPluJVU4xbVVaaVlVXmldVXJpUVV2aWlVjmlFVe5pgVXyaZVV+mmFVgJpcVYOaZlWEkVBVh5poVYmNQVWKml5Vi5KdVZiaYlWZmltVmoqrVZyK7FWdioVVnppjVZ+aX1WnjJZVqJppVamaZ1WqkXJVq4tpVayLqlWummRVsIvyVbaJY1XEmm1VxZprVceapVXUmnBV2ppqVdyablXfmmxV445rVeSab1X3mnJV+Zp3Vf2adVX+mnRWBpJRVgmJw1YUmnFWFppzVhePplYYiVJWG5p2VimJ3FYvmoJWMY/6VjKafVY0mntWNpp8VjiaflZCiVxWTJFYVk6aeFZQmnlWW4qaVmSagVZoiu1WapqEVmuagFZsmoNWdJWsVniT01Z6lLZWgJqGVoaahVaHimRWipqHVo+ailaUmolWoJqIVqKUWFalmotWrpqMVrSajla2mo1WvJqQVsCak1bBmpFWwpqPVsOaklbImpRWzpqVVtGallbTmpdW15qYVtiZZFbajvpW245sVt6J8VbgiPZW45JjVu6amVbwjaJW8ojNVvOQfVb5mppW+ozFVv2NkVb/mpxXAJqbVwOV3lcEmp1XCJqfVwmanlcLmqBXDZqhVw+Ml1cSiYBXE5qiVxaapFcYmqNXHJqmVx+TeVcmmqdXJ4izVyiN3VctjFxXMJJuVzeaqFc4mqlXO5qrV0CarFdCjeJXR4vPV0qWVldOmqpXT5qtV1CNv1dRjUJXYZqxV2SNo1dmklJXaZquV2qS2Fd/mrJXgpCCV4iasFeJmrNXi4xeV5OatFegmrVXoo1DV6OKX1ekmrdXqpq4V7CauVezmrZXwJqvV8OaulfGmrtXy5aEV86P6VfSmr1X05q+V9SavFfWmsBX3JRXV9+I5lfglXVX45rBV/SP+1f3jrdX+ZR8V/qK7lf8jelYAJZ4WAKTsFgFjJhYBpHNWAqav1gLmsJYFZHCWBmaw1gdmsRYIZrGWCSS51gqiqxYL+qfWDCJgVgxlfFYNI/qWDWTZ1g6jeRYPZrMWECVu1hBl9tYSonyWEuayFhRkVlYUprLWFSTg1hXk2hYWJOEWFmUt1hakstYXo3HWGKax1hpiZZYa5NVWHCayVhymsVYdZBvWHmazVh+j21Yg4urWIWazliTleZYl5GdWJySxFifmtBYqJZuWKua0ViumtZYs5WtWLia1Vi5ms9YuprSWLua1Fi+jaRYwZXHWMWa11jHkmRYyonzWMyP61jRmtlY05rYWNWNiFjXmtpY2JrcWNma21jcmt5Y3prTWN+a4Fjkmt9Y5ZrdWOuObVjskHBY7pFzWO+a4VjwkLpY8YjrWPKUhFj3ktlY+ZrjWPqa4lj7muRY/JrlWP2a5lkCmudZCZXPWQqa6FkPicRZEJrpWRWXW1kWik9ZGJnHWRmPZ1kakb1ZG5rqWRyW6VkilrJZJZrsWSeR5Vkpk1ZZKpG+WSuVdlksmu1ZLZruWS6Jm1kxjrhZMprvWTeIzlk4mvBZPprxWUSJgllHiu9ZSJPeWUmV8llOmvVZT5F0WVCa9FlRjF9ZVJZ6WVWa81lXk4VZWJr3WVqa9llgmvlZYpr4WWWJnFlnmvpZaI+nWWma/FlqkkRZbJr7WW6VsVlzj5dZdJN6WXibQFl9jURZgZtBWYKUQFmDlNxZhJbPWYqURFmNm0pZk4tXWZaXZFmZlq1Zm5uqWZ2bQlmjm0VZpZHDWaiWV1msk2lZsptGWbmWhVm7jchZvo+oWcabR1nJjm9Zy45uWdCIt1nRjMZZ05CpWdSIz1nZm0tZ2ptMWdybSVnliVdZ5oqtWeibSFnqlsNZ65VQWfaIpln7iPdZ/45wWgGI0FoDiKFaCZtRWhGbT1oYlrpaGptSWhybUFofm05aIJBQWiWbTVopldhaL4ziWjWbVlo2m1daPI+pWkCbU1pBmEtaRpRrWkmbVVpajaVaYptYWmaVd1pqm1labJtUWn+WuVqSlH1amptaWpuVUVq8m1tavZtfWr6bXFrBicVawpteWsmOuVrLm11azIyZWtCba1rWm2Ra15thWuGShFrjm2Ba5ptiWumbY1r6m2Va+5tmWwmK8FsLm2hbDJtnWxabaVsij+xbKptsWyyS2lswiWRbMptqWzabbVs+m25bQJtxW0Obb1tFm3BbUI5xW1GbcltUjUVbVZtzW1eOmltYkbZbWpt0W1ubdVtcjnlbXY1GW1+W0Ftji0dbZIzHW2WbdltmindbaZt3W2uRt1twm3hbcZuhW3ObeVt1m3pbeJt7W3qbfVuAm35bg5uAW4WR7luHiUZbiI7nW4mIwFuLkXZbjIquW42Os1uPjUdblZOGW5ePQFuYiq9bmZKIW5qS6FubiLZbnItYW52V81ufjsBbootxW6OQ6VukjrpbpZdHW6abgVuui3tbsI3JW7OKUVu0iYNbtY+qW7aJxlu4m4JbuZdlW7+PaFvCjuJbw5uDW8SK8VvFk9BbxpanW8ebhFvJm4VbzJV4W9Cbh1vSiqZb04v1W9SbhlvbirBb3ZBRW96bi1vfjkBb4YnHW+Kbilvkm4hb5ZuMW+abiVvnlEpb6J7LW+mQUlvrm41b7pe+W/Cbjlvzm5Bb9ZKeW/abj1v4kKFb+o6bW/6Rzlv/jvVcAZWVXAKQ6lwEjstcBZuRXAaPq1wHm5JcCJuTXAmI0VwKkbhcC5BxXA2blFwOk7FcD4+sXBGPrVwTm5VcFpDrXBqPrlwgm5ZcIpuXXCSW3lwom5hcLYvEXDGPQVw4m5lcOZuaXDqO2lw7kEtcPJPyXD2Qc1w+lPZcP5RBXECLx1xBm5tcRYuPXEabnFxIi/xcSpPNXEuJrlxNjnJcTpudXE+boFxQm59cUYv7XFObnlxVk1dcXpGuXGCTalxhjsZcZJF3XGWXmlxsm6JcbpujXG+T1FxxjlJcdpulXHmbplyMm6dckIryXJGbqFyUm6lcoYmqXKiRWlypiuJcq5urXKyWplyxkdBcs4p4XLabrVy3m69cuIrdXLubrFy8m65cvpuxXMWbsFzHm7Jc2ZuzXOCTu1zhi6xc6InjXOmbtFzqm7lc7Zu3XO+V9VzwlfRc9pOHXPqbtlz7j3Nc/Zu1XQeQkl0Lm7pdDo3oXRGbwF0Um8FdFZu7XRaKUl0Xm7xdGJvFXRmbxF0am8NdG5u/XR+bvl0im8JdKZX2XUubyV1Mm8ZdTpvIXVCXkl1Sm8ddXJu9XWmQk11sm8pdb421XXOby112m8xdgpvPXYSbzl2Hm81di5OIXYybuF2Qm9VdnZvRXaKb0F2sm9JdrpvTXbeb1l26l+RdvJvXXb2b1F3Jm9hdzIreXc2b2V3Sm9td05vaXdab3F3bm91d3ZDsXd6PQl3hj4Rd45GDXeWNSF3mjbZd541JXeiLkF3rm95d7o23XfGMyF3ym99d85akXfSUYl31m+Bd941KXfuKql39kkZd/ovQXgKOc14DlXpeBpS/Xgub4V4MivNeEZvkXhaSn14Zm+NeGpviXhub5V4dkuleJZCDXiuOdF4tkMheL5HRXjCLQV4zkqBeNpvmXjeb5144j+1ePZZYXkCb6l5Dm+leRJvoXkWVnV5Hm/FeTJZ5Xk6b615Um+1eVZaLXleb7F5fm+5eYZSmXmKb715jlbxeZJvwXnKKsV5zlb1edJROXnWb8l52m/NeeI1LXnmKsl56m/Ree4y2XnyXY159l0hefor0Xn+b9l6BkqFeg41MXoSPr16HlN1eio+wXo+PmF6VkupelpX3XpeTWF6ajU1enJV7XqCb916mk3hep43AXquMyV6tkutetYjBXraPjl63jU5euJdmXsGb+F7Cm/lew5RwXsib+l7Jl/VeyphMXs+b/F7Qm/te04pmXtacQF7anENe25xEXt2cQl7flV9e4I+xXuGcRl7inEVe45xBXuicR17pnEhe7JxJXvCcTF7xnEpe85xLXvScTV72iYRe95LsXvicTl76jJpe+4n0XvyUVV7+nE9e/5P5XwGV2V8DnFBfBJhNXwmcUV8Klb5fC5xUXwyYn18NmK9fD46uXxCT818RnFVfE4t8XxSSol8ViPhfFpxWXxeVpF8YjU9fG5JvXx+S7V8llu1fJoy3XyeMyl8pnFdfLZxYXy+cXl8xjuNfNZKjXzeLrV84nFlfPJVKXz6SZV9BnFpfSJxbX0qLrl9MnFxfTpxdX1GcX19Tk5ZfVpxgX1ecYV9ZnGJfXJxTX12cUl9hnGNfYoxgX2aVRl9pjcpfapVWX2uSpF9slWpfbZxkX3CPsl9xiWVfc5xlX3ecZl95lvBffJTeX3+caV+AiZ1fgZCqX4KcaF+DnGdfhIxhX4WR0l+HnG1fiJxrX4qcal+Ll6VfjIzjX5CPmV+RnGxfkpNrX5OPXV+Xk75fmJxwX5mcb1+enG5foJxxX6GM5F+onHJfqZWcX6qPel+tnHNfrpT3X7OTv1+0kqVfuZNPX7ycdF+9i0pfw5BTX8WVS1/MivVfzZRFX9acdV/XjnVf2JZZX9mWWl/ciZ5f3Zx6X+CSiV/knHdf64n1X/Ccq1/xnHlf9ZRPX/iceF/7nHZf/Y2aX/+cfGAOnINgD5yJYBCcgWASk3tgFZyGYBaVfGAZnIBgG5yFYByX5WAdjnZgIJHTYCGcfWAli31gJpyIYCeQq2AoiYVgKZyCYCqJ9mArnIdgL4uvYDGchGA6nIpgQZyMYEKclmBDnJRgRpyRYEqckGBLl/ZgTZySYFCLsGBSjVBgVY+aYFmcmWBanItgX5yPYGCcfmBiifhgY5yTYGSclWBlknBgaI2mYGmJtmBqnI1ga5yYYGycl2Bti7Fgb5GnYHCKhmB1jGJgd5yOYIGcmmCDnJ1ghJyfYImOu2CLnKVgjJLuYI2cm2CSnKNglIn3YJacoWCXnKJgmpyeYJucoGCfjOVgoJdJYKOKs2CmiXhgp5ykYKmUWWCqiKtgspTfYLOce2C0nKpgtZyuYLaW42C4nKdgvJOJYL2crGDFj+5gxpytYMeT1WDRmGZg05ypYNicr2DajZtg3JDJYN+I0mDgnKhg4ZymYOOReWDnnJxg6I5TYPCRxGDxnLtg85F6YPSctmD2nLNg95y0YPmO5GD6nLdg+5y6YQCctWEBj0RhA5y4YQacsmEIlvphCZb5YQ2cvGEOnL1hD4jTYRWcsWEai/BhG4ikYR+KtGEhnLlhJ5zBYSicwGEsnMVhNJzGYTycxGE9nMdhPpy/YT+cw2FCnMhhRJzJYUecvmFIjpxhSpzCYUuR1GFMjVFhTZywYU6QVGFTnNZhVZXnYViczGFZnM1hWpzOYV2c1WFfnNRhYpadYWOKtWFlnNJhZ4xkYWiKU2FrnM9hbpe2YW+c0WFwiNRhcZzTYXOcymF0nNBhdZzXYXaMY2F3nMthfpd8YYKXSmGHnNphipzeYY6RnmGQl/dhkZzfYZSc3GGWnNlhmZzYYZqc3WGkla5hp5OyYamMZWGrnOBhrJzbYa6c4WGyjJthtomvYbqc6WG+irZhw5znYcac6GHHjadhyJzmYcmc5GHKnONhy5zqYcyc4mHNnOxh0In5YeOc7mHmnO1h8pKmYfSc8WH2nO9h95zlYfiMnGH6nPBh/Jz0Yf2c82H+nPVh/5zyYgCc9mIInPdiCZz4YgqV6GIMnPpiDZz5Yg6PXmIQkKxiEYnkYhKJ+mIUnPtiFoi9YhqQymIbnPxiHebBYh6dQGIfjIFiIZ1BYiaQ7WIqnUJiLp1DYi+LWWIwnURiMp1FYjOdRmI0kdViOIzLYjuW32I/lltiQI+KYkGdR2JHkO5iSOe7YkmU4GJLjuhiTY3LYk6dSGJTkcViVZWlYliR72JbnUtiXp1JYmCdTGJjnUpiaJ1NYm6Vr2JxiLVidpV9YnmU4WJ8nU5ifp1RYn+Ps2KAi1pigp1PYoOdVmKEj7RiiZ1QYoqUY2KRl31ikp1SYpOdU2KUnVdilZOKYpadVGKXjVJimJDcYpudZWKclLJinpHwYquU4mKsnatisZX4YrWS72K5lpViu51aYryJn2K9kopiwp1jYsWSU2LGnV1ix51kYsidX2LJnWZiyp1iYsydYWLNlI9iz51bYtCJ+2LRnVli0ouRYtOR8WLUnVVi151YYtiNU2LZkNli24+1YtydYGLdlHFi4IuSYuGKZ2Lsiodi7ZBAYu6daGLvnW1i8Z1pYvOMnWL1nW5i9o5BYveNiWL+j0Vi/51cYwGOnWMCnWtjB453YwidbGMJiMJjDJ1nYxGSp2MZi5NjH4uyYyedamMoiKVjK43BYy+QVWM6kvBjPZTSYz6dcGM/kX1jSZGoY0yOSmNNnXFjT51zY1Cdb2NVld9jV5K7Y1yRe2NnlfljaI7MY2mdgGNrnX5jbpCYY3KMnmN2nXhjd4+3Y3qT5mN7lFBjgJ12Y4ORfGOIjvZjiZ17Y4yPtmOOnXVjj516Y5KUcmOWnXRjmIxAY5uKfGOfnXxjoJepY6GNzGOiklRjo515Y6WQ2mOnjVRjqJCEY6mJhmOqkVtjq513Y6yLZGOyjGZjtJLNY7WdfWO7kX5jvp2BY8Cdg2PDkbVjxJ2JY8adhGPJnYZjz5VgY9CS8WPSnYdj1pdLY9qXZ2Pbirdj4YisY+OdhWPpnYJj7or2Y/SJh2P2nYhj+pdoZAadjGQNkblkD52TZBOdjWQWnYpkF52RZBydcmQmnY5kKJ2SZCyUwGQtk4tkNJ2LZDadj2Q6jGdkPo3vZEKQ22ROnZdkWJNFZGedlGRploBkb52VZHadlmR4lsxkepCgZIOMgmSInZ1kko5UZJOdmmSVnZlkmpRRZJ6Ts2Skk1BkpZ2bZKmdnGSrlY9krZRkZK6OQmSwkO9kspZvZLmKaGS7naNkvJ2eZMGXaWTCnaVkxZ2hZMedomTNkYBk0p2gZNSdXmTYnaRk2p2fZOCdqWThnapk4pNGZOOdrGTmjkNk552nZOyLW2Tvna1k8Z2mZPKdsWT0nbBk9p2vZPqdsmT9nbRk/o/vZQCds2UFnbdlGJ21ZRydtmUdnZBlI525ZSSduGUqnZhlK526ZSydrmUvjnhlNJ27ZTWdvGU2nb5lN529ZTidv2U5ifxlO41VZT6V+mU/kK1lRYzMZUidwWVNncRlT5VxZVGLfmVVncNlVp3CZVeUc2VYncVlWYuzZV2dx2VencZlYoq4ZWOOVWVmk9ZlbIxoZXCQlGVynchldJCuZXWTR2V3lX5leJ3JZYKdymWDnctlh5W2ZYibfGWJkMRljJVrZY6N1mWQlONlkZTBZZeTbGWZl79lm53NZZyOzmWfnc5loYi0ZaSL0mWlkMtlp5WAZaudz2WsjmFlrZJmZa+OemWwkFZlt53QZbmV+2W8iZdlvY57ZcGd02XDndFlxJ3UZcWXt2XGndJly5D5Zcyd1WXPkbBl0p3WZdeK+GXZndhl253XZeCd2WXhndpl4or5ZeWT+mXmklVl54uMZeiOfGXpkYFl7I97Ze2IrmXxndtl+omgZfud32YCjVZmA53eZgaNqWYHj7hmCp3dZgyPuWYOlr5mD42oZhOI1WYUkMxmHJ3kZh+Qr2YgiWZmJY90ZieWhmYojfBmLY+6Zi+QpWY0neNmNZ3hZjad4mY8kotmP55FZkGd6GZCjp5mQ41XZkSd5mZJnedmS5BXZk+d5WZSjk5mXZ3qZl6d6WZfne5mYp3vZmSd62ZmikFmZ53sZmid7WZplNNmbpWBZm+MaWZwnfBmdJCwZnaPu2Z6knFmgYvFZoOd8WaEnfVmh4nJZoid8maJnfRmjp3zZpGPi2aWkmdml4jDZpid9madnfdmopKoZqaX72arjmJmrpXpZrSWXGa4nkFmuZ35Zryd/Ga+nftmwZ34ZsSeQGbHk9xmyZ36ZtaeQmbZj4xm2p5DZtyXambdlJhm4J5EZuaeRmbpnkdm8J5IZvKLyGbziWdm9I1YZvWeSWb3nkpm+I+RZvmRgmb8mdZm/ZFdZv6RXGb/kdZnAI3FZwOY8GcIjI5nCZdMZwuV/GcNlZ5nD55LZxSN8WcVkr1nFp5MZxeYTmcbll1nHZKpZx6eTWcfivpnJp5OZyeeT2colthnKpaiZyuWlmcslntnLY5EZy6eUWcxjulnNJZwZzaeU2c3nlZnOJ5VZzqK92c9i4BnP55SZ0GeVGdGnldnSZCZZ06Xm2dPiMdnUI3eZ1GRumdTjttnVo/xZ1meWmdck21nXp5YZ1+RqWdgnllnYY/wZ2KW22djnltnZJ5cZ2WXiGdqnmFnbY1ZZ2+UdGdwnl5ncZOMZ3Kd3GdzneBndYtuZ3eUZmd8nmBnfo+8Z3+UwmeFnmZnh5T4Z4meXWeLnmNnjJ5iZ5CQzWeVlo1nl5fRZ5qWh2ecicpnnY59Z6CYZ2ehnmVnopCVZ6aeZGepnl9nr4zNZ7Oea2e0nmlntonLZ7eeZ2e4nm1nuZ5zZ8GRxmfElb9nxp51Z8qVQWfOnnRnz5SQZ9CWXmfRirln05D1Z9SPX2fYktFn2pdNZ92ecGfenm9n4p5xZ+SebmfnnnZn6Z5sZ+yeamfunnJn755oZ/GSjGfzlvZn9I7EZ/WN8mf7jbhn/paPZ/+KYGgCksxoA5PIaASJaGgTkPBoFpCyaBeMSWgennhoIY1aaCKKnGgpnnpoKoqUaCuegWgynn1oNJDxaDiKamg5japoPIppaD2NzWhAnntoQYyFaEKMamhDk41oRp55aEiIxGhNnnxoTp5+aFCLy2hRjEtoU4q6aFSLamhZnoJoXI33aF2WkWhfjlZoY56DaGeVT2h0no9odomxaHeehGh+npVof56FaIGXwGiDnoxohZR+aI2elGiPnodok4iyaJSeiWiXjVtom56LaJ2eimifnoZooJ6RaKKPvWimmutop4zmaKiXnGitnohor5LyaLCKQmixjatos56AaLWekGi2ioFouZ6OaLqekmi8k45oxIr8aMaesGjJlsdoyp6XaMuK+2jNnp5o0pZfaNSen2jVnqFo156laNiemWjakklo35OPaOCeqWjhnpxo456maOeeoGjukFho756qaPKQsWj5nqho+oq7aQCYb2kBnpZpBJ6kaQWI1mkInphpC5a4aQyenWkNkEFpDpLFaQ+ek2kSnqNpGZCaaRqerWkbipFpHIyfaSGer2kinpppI56uaSWep2kmnptpKJ6raSqerGkwnr1pNJPMaTaeomk5nrlpPZ67aT+S1mlKl2tpU5WWaVSetmlVkchpWZ68aVqRXmlcnrNpXZ7AaV6ev2lgk+1pYZ6+aWKT6GlqnsJpa561aW2Lxmlunrhpb498aXOUgGl0nrppdYvJaXeesml4nrRpeZ6xaXyYT2l9inlpfp63aYGewWmCilRpio3laY6JfGmRntJplJhQaZWe1WmbkFlpnJ7UaaCe02mnntBprp7EabGe4WmynsNptJ7Wabuezmm+nslpv57GacGex2nDns9px+qgacqezGnLjVxpzJLGac2RhGnOnspp0J7FadOeyGnYl2xp2ZaKad2ezWnentdp557faeie2GnrnuVp7Z7jafKe3mn5nt1p+5LOaf2RhWn/nttqAp7ZagWe4GoKnuZqC5Tzagye7GoSnudqE57qahSe5GoXkpRqGZVXahue2moenuJqH4++aiGWzWoinvZqI57paimMoGoqiaFqK4p+ai6e0Wo1j79qNp7uajie9Wo5jvdqOoqSaj2STWpEnutqR57wakie9GpLi7RqWItralme8mpfi0BqYZPJamKe8WpmnvNqcp7tanie72p/ioBqgJJoaoSe+mqNnvhqjoznapCe92qXn0BqnJ53aqCe+Wqinvtqo578aqqfS2qsn0dqrp6NarOfRmq4n0Vqu59CasGe6GrCn0Rqw59DatGfSWrTmEVq2p9MatuL+Wren0hq359KauiUpWrqn01q+p9RavufTmsEl5NrBZ9Pawqe3GsSn1JrFp9Tax2JVGsfn1VrIIyHayGOn2sji9NrJ4miazKXfms3n1drOJ9WazmfWWs6i1xrPYvUaz6KvGtDn1xrR59ba0mfXWtMicxrTpJWa1CfXmtTir1rVJ9ga1mfX2tbn2FrX59ia2GfY2tijn5rY5Cza2SNn2tmlZBraZXga2qYY2tvjpVrc43Oa3SX8Gt4n2RreZ9la3uOgGt/n2ZrgJ9na4OfaWuEn2hrhpZ3a4mPfWuKjupri45ja42famuVn2xrlpBCa5ifa2uen21rpJ9ua6qfb2urn3Brr59xa7Gfc2uyn3Jrs590a7SJo2u1kmlrt591a7qORWu7imtrvJ92a7+TYWvAmsprxYtCa8afd2vLn3hrzZXqa86WiGvSk8Vr0595a9SU5GvYlPlr25bRa9+femvrn3xr7J97a++ffmvzn31sCJ+BbA+OgWwRlq9sE5+CbBSfg2wXi0NsG5+EbCOfhmwkn4VsNJCFbDeVWGw4iWlsPpTDbECS82xBj2BsQouBbE6UxGxQjqxsVZ+IbFeKvmxaiZhsXZPwbF6fh2xfjV1sYJJybGKfiWxon5Fsap+KbHCRv2xyi4Jsc5+SbHqMiGx9i0Rsfp+QbIGfjmyCn4tsg5eAbIiSvmyMk9dsjZ+MbJCflGySn5Nsk4xCbJaJq2yZjblsmp+NbJufj2yhlnZsopHybKuWl2yun5xssZ+dbLOJzWy4laZsuZb7bLqfn2y7jqFsvI/AbL2fmGy+n55sv4mIbMGLtWzEn5VsxZ+abMmQ8mzKlJFszJTlbNOfl2zVlkBs15+ZbNmfomzbn6Bs3Z+bbOGWQWzilGds44uDbOWTRGzoko1s6p+jbO+foWzwkdds8Z+WbPOJam0Ll21tDJ+ubRKfrW0XkPRtGZ+qbRuXjG0ek7RtH5+kbSWSw20piWttKo1ebSufp20yj0ZtM5+sbTWfq202n6ZtOJ+pbTuKiG09n6htPpRobUGXrG1Ej/JtRZDzbVmftG1an7JtXJVsbWOfr21kn7FtZolZbWmNX21qmFFtbIpcbW6Vgm10l4Ftd4pDbXiQWm15n7NthZ+4bYiPwW2Ml09tjp+1bZOfsG2Vn7ZtmZfcbZuTk22ck8Btr4pVbbKJdG21n7xtuJ+/bbyXwW3Al4RtxZ/GbcafwG3Hn71ty5fS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hWmToIVqlZOFbeVKhXflUIV+5VGFgOVEhYSUloWH5U6FiOVGhYrlSIWQ5VKFkeVHhZTlS4WXiZKFmZPjhZvlTIWc5U+FpOVFhaaRRYWo5UmFqY5GhaqQZIWrjE+FrJbyha6W94Wvj5KFueVWhbrlVIXBmG2FyeVThc2XlYXP5VWF0OVXhdXlWIXc5VuF3eVZheSToYXl5VqF6ZTLherlTYX3j5OF+eVchfrlYYX7kZSF/uVghgLlQYYG5WKGB5FohgrlXYYL5V+GE+VehhafUIYXn0GGGuVkhiLlY4Ytl5aGL+G6hjDlZYY/5WaGTeVnhk6M1YZQi3OGVOVphlWZfIZai5WGXJe4hl6L8YZf5WqGZ+VrhmuSjoZx5WyGeZP4hnuIuIaKieGGi+VxhozlcoaT5W2GlY5chqPlboaklGGGqeVvhqrlcIar5XqGr+V0hrDld4a25XOGxOV1hsbldobHjtaGyeV4hsuSYIbNjHWGzophhtTle4bZil6G2+WBht7lfIbf5YCG5JS4hunlfYbs5X6G7ZVnhu6U2Ibv5YKG+JH7hvnljIb75YiG/onphwDlhocClkmHA+WHhwblhIcI5YWHCeWKhwrljYcN5YuHEeWJhxLlg4cYkneHGuWUhxyWqIcl5ZKHKeWThzTljoc35ZCHO+WRhz/lj4dJkOSHS5hYh0zlmIdO5ZmHU+Wfh1WQSYdX5ZuHWeWeh1/llodg5ZWHY+Wgh2aJ2odo5ZyHauWhh27lnYd05ZqHdpKxh3jll4d/lIiHguWlh42XWoef5aSHouWjh6vlrIev5aaHs+Wuh7qXhoe75bGHveWoh8DlqYfE5a2HxuWwh8flr4fL5aeH0OWqh9Llu4fg5bSH7+Wyh/Lls4f25biH9+W5h/mKSYf7i2GH/uW3iAXloogN5baIDuW6iA/ltYgR5byIFeW+iBblvYgh5cCIIuW/iCPleYgn5cSIMeXBiDblwog55cOIO+XFiECMjIhC5ceIROXGiEaPT4hMjXOITZ+liFLlyIhTj3CIV4pYiFnlyYhbiXGIXY/ViF7lyohhjXSIYuXLiGOI34holVyIa+XMiHCQiohy5dOIdeXQiHeSj4h95dGIfuXOiH+L3IiB5c2IguXUiIiMVYiLkdyIjeXaiJLl1oiWkbOIl+XViJnl2Iie5c+IouXZiKTl24irlO2IruXX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ljKWaJY7kWqWP4iilkCRyZZC6JiWRJWNlkvom5ZM6JmWTY1+lk/ompZQjMCWW5XDllzonZZd6J+WXuiell/ooJZiiUCWY5B3lmSPnJZliteWZuihlmqUhpZs6KOWcIlBlnLoopZzksKWdZfLlnaTqZZ36JyWeJeklnqMr5Z9l3qWhYv3loaXspaIjEeWipHglovkQJaN6KSWjopLlo+Qj5aUinWWleimlpfop5aY6KWWmYyElpuN25acj+GWoIlClqOX15an6KmWqOeslqroqJaw6KyWseiqlrLoq5a06K2WtuiulreX6pa46K+WueiwlruQx5a8lLmWwJCdlsGK5ZbEl1mWxYnrlsaPV5bHjNmWyeizlsvospbMjpOWzei0ls7osZbRjkeW1ei4ltblq5bZmdSW25CXltzotpbil6OW45PvluiJSpbqkOGW6460lvCVtZbyiV+W9pfrlveXi5b56LmW+5NklwCO+ZcE6LqXBui7lweQa5cI6LyXCpfslw3ot5cO6L6XD+jAlxHov5cT6L2XFujBlxnowpcckZqXHonglyTow5cnlraXKujElzDoxZcymEmXOJ5Qlznoxpc96MeXPujIl0LozJdE6MmXRujKl0joy5dJ6M2XUpDCl1aW9ZdZkMOXXOjOl16U8Zdg6M+XYepyl2KWypdk6NCXZujRl2jo0pdpinaXa+jUl22QeJdx6NWXdIxDl3no1pd66NqXfOjYl4Ho2ZeEipOXhejXl4bo25eL6NyXjYjGl4/o3ZeQ6N6XmI/il5zo35egi2aXo+jil6bo4Zeo6OCXq+aRl62V2pez6OOXtOjkl8Po5ZfG6OaXyOjnl8vo6JfTitiX3Ojpl+3o6pfulEKX8ujsl/OJuZf16O+X9ujul/uJQ5f/i7+YAZXFmAKSuJgDjaCYBY2AmAaPh5gIkHuYDOjxmA/o8JgQl2GYEYrmmBKU0JgTk9qYF5CcmBiXzJgajHqYIej0mCTo85gslmqYLZOqmDSJb5g36PWYOOjymDuVcJg8l4qYPej2mEbo95hL6PmYTJHomE2KephOinuYT+j4mFSK55hVjLCYWIromFuTXphel96YZ4zamGvo+phv6PuYcOj8mHHpQJhz6UKYdOlBmKiVl5iq6UOYr+lEmLHpRZi26UaYw+lImMTpR5jG6UmY25TymNzjypjfkEiY4otRmOnpSpjr6UuY7ZmqmO6fWpjvlNGY8oj5mPSIuZj8jpSY/ZZPmP6P/JkD6UyZBZbdmQnpTZkKl3uZDIlhmRCOYJkS6U6ZE4nsmRTpT5kY6VCZHelSmR7pU5kg6VWZIelRmSTpVJkoitmZLOlWmS7pV5k96ViZPulZmULpWplF6VyZSelbmUvpXplM6WGZUOldmVHpX5lS6WCZVelimVeLwJmWjvGZl+ljmZjpZJmZjYGZpellmaiKXZmslG6Zrelmma7pZ5mzknmZtJPpmbzpaJnBlJ2ZxJHKmcWJd5nGi+yZyIvtmdCSk5nR6W2Z0ovumdWJ7ZnY6WyZ2+lqmd3pa5nf6WmZ4ul3me3pbpnu6W+Z8elwmfLpcZn46XOZ++lymf+PeJoB6XSaBel2mg6LUpoP6XWaEpGbmhOMsZoZ6XiaKJHLmivpeZowk6uaN+l6mj7pgJpA6X2aQul8mkPpfppF6XuaTemCmlXpgZpX6YSaWovBmlvpg5pf6YWaYumGmmTpiJpl6YeaaemJmmrpi5pr6YqaqI2cmq3pjJqw6Y2auIpbmrzpjprA6Y+axJCRms/pkJrR6ZGa0+mSmtTpk5rYjYKa3umUmt/plZri6Zaa4+mXmubpmJrqlK+a6+mamu2VRZru6Zua7+mZmvHpnZr06Zya9+memvvpn5sG6aCbGOmhmxrpopsf6aObIumkmyPppZsl6aabJ+mnmyjpqJsp6ambKumqmy7pq5sv6aybMZ9UmzLprZs74vabPItTm0GKQJtCjbCbQ+mvm0TprptFlqObTemxm07psptP6bCbUemzm1SWgptY6bSbWoubm2+YRJt06bWbg+m3m46IvJuR6bibkpWpm5PptpuW6bmbl+m6m5/pu5ug6bybqOm9m6qWjpurjkybrY34m66RTpu06b6buenBm8Dpv5vG6cKbyYzvm8rpwJvP6cOb0enEm9LpxZvU6cmb1o5Jm9uR4pvh6cqb4unHm+Ppxpvk6cib6Ix+m/Dpzpvx6c2b8unMm/WIsZwE6dicBunUnAjp1ZwJ6dGcCunXnAzp05wNioKcEJhrnBLp1pwT6dKcFOnQnBXpz5wb6dqcIendnCTp3Jwl6ducLZVonC7p2ZwviPGcMOnenDLp4Jw5io+cOunLnDuJVpw+6eKcRunhnEfp35xIkkycUpaQnFeX2Jxa6eOcYOnknGfp5Zx26eaceOnnnOWSuZzn6eic6ZS1nOvp7Zzs6emc8OnqnPOWUJz0lsKc9pPOnQPp7p0G6e+dB5O8nQjp7J0J6eudDomonRLp950V6fadG4mVnR/p9J0j6fOdJunxnSiKm50q6fCdK46wnSyJp507jYOdPun6nT/p+Z1B6fidROn1nUbp+51I6fydUOpEnVHqQ51Z6kWdXIlMnV3qQJ1e6kGdYI2UnWGWt51k6kKdbJZRnW/qSp1y6kadeupLnYfqSJ2J6kedj4x7nZrqTJ2k6k2dqepOnavqSZ2v6fKdsupPnbSS35246lOduupUnbvqUp3B6lGdwupXncTqUJ3G6lWdz+pWndPqWZ3Z6lid5upbne3qXJ3v6l2d8phonfjqWp35kemd+o3rnf3qXp4a6l+eG+pgnh7qYZ516mKeeIyynnnqY5596mSef46tnoHqZZ6I6maei+pnnozqaJ6R6muekuppnpOYW56V6mqel5ftnp3qbJ6fl9mepeptnqaUnp6p6m6equpwnq3qcZ646m+euY2NnrqWy567loOevJv1nr6fgJ6/lpuexImpnszqc57Ni2+ezup0ns/qdZ7Q6nae0o2VntTqd57Y4NKe2ZbZntuR4Z7c6nie3ep6nt7qeZ7g6nue5ep8nujqfZ7v6n6e9OqAnvbqgZ736oKe+eqDnvvqhJ786oWe/eqGnwfqh58I6oifDpNDnxOM258V6oqfIJFsnyHqi58s6oyfO5VAnz7qjZ9K6o6fS+JWn07m2J9P6OufUuqPn1TqkJ9f6pKfYOqTn2HqlJ9il+6fY+qRn2bqlZ9n6pafauqYn2zql59y6pqfduqbn3fqmZ+Nl7Sfleqcn5zqnZ+d4nOfoOqe/wGBSf8DgZT/BIGQ/wWBk/8GgZX/CIFp/wmBav8KgZb/C4F7/wyBQ/8OgUT/D4Fe/xCCT/8RglD/EoJR/xOCUv8UglP/FYJU/xaCVf8Xglb/GIJX/xmCWP8agUb/G4FH/xyBg/8dgYH/HoGE/x+BSP8ggZf/IYJg/yKCYf8jgmL/JIJj/yWCZP8mgmX/J4Jm/yiCZ/8pgmj/KoJp/yuCav8sgmv/LYJs/y6Cbf8vgm7/MIJv/zGCcP8ygnH/M4Jy/zSCc/81gnT/NoJ1/zeCdv84gnf/OYJ4/zqCef87gW3/PIFf/z2Bbv8+gU//P4FR/0CBTf9BgoH/QoKC/0OCg/9EgoT/RYKF/0aChv9Hgof/SIKI/0mCif9Kgor/S4KL/0yCjP9Ngo3/ToKO/0+Cj/9QgpD/UYKR/1KCkv9TgpP/VIKU/1WClf9Wgpb/V4KX/1iCmP9Zgpn/WoKa/1uBb/9cgWL/XYFw/2EAof9iAKL/YwCj/2QApP9lAKX/ZgCm/2cAp/9oAKj/aQCp/2oAqv9rAKv/bACs/20Arf9uAK7/bwCv/3AAsP9xALH/cgCy/3MAs/90ALT/dQC1/3YAtv93ALf/eAC4/3kAuf96ALr/ewC7/3wAvP99AL3/fgC+/38Av/+AAMD/gQDB/4IAwv+DAMP/hADE/4UAxf+GAMb/hwDH/4gAyP+JAMn/igDK/4sAy/+MAMz/jQDN/44Azv+PAM//kADQ/5EA0f+SANL/kwDT/5QA1P+VANX/lgDW/5cA1/+YANj/mQDZ/5oA2v+bANv/nADc/50A3f+eAN7/nwDf/+OBUP/lgY8=",7070);const ee={shape:X.square,qrOptions:{typeNumber:m[0],mode:void 0,errorCorrectionLevel:g.Q},imageOptions:{mode:N.center,imageSize:.4,crossOrigin:void 0,margin:0},cornersSquareOptions:{type:G.rounded,color:"#000000"},cornersDotOptions:{type:P.dot,color:"#000000"},dotsOptions:{type:L.verticalLine,color:"#000000",size:10},backgroundOptions:{color:"#FFFFFF"},borderOptions:{decorations:{}}},te={...ee,shape:X.square,cornersSquareOptions:{type:G.square},cornersDotOptions:{type:P.square},dotsOptions:{type:L.square}},oe={...ee,shape:X.square,cornersSquareOptions:{type:G.rounded},cornersDotOptions:{type:P.rounded},dotsOptions:{type:L.verticalLine,size:10}},re={...ee,dotsOptions:{...ee.dotsOptions,type:L.rounded},cornersSquareOptions:{type:G.dot},cornersDotOptions:{type:P.dot}},ne={...ee,dotsOptions:{...ee.dotsOptions,type:L.dot},cornersSquareOptions:{type:G.dot},cornersDotOptions:{type:P.dot}},se={...ee,dotsOptions:{...ee.dotsOptions,type:L.classy},cornersSquareOptions:{type:G.classy},cornersDotOptions:{type:P.classy}},ie={...ee,dotsOptions:{...ee.dotsOptions,type:L.extraRounded},cornersSquareOptions:{...ee.cornersSquareOptions,type:G.square},cornersDotOptions:{...ee.cornersDotOptions,type:P.square}},ae={...ee,dotsOptions:{...ee.dotsOptions,type:L.verticalLine},cornersSquareOptions:{...ee.cornersSquareOptions,type:G.classy},cornersDotOptions:{...ee.cornersDotOptions,type:P.classy}},de={...ee,dotsOptions:{...ee.dotsOptions,type:L.horizontalLine},cornersSquareOptions:{...ee.cornersSquareOptions,type:G.rounded},cornersDotOptions:{...ee.cornersDotOptions,type:P.rounded}},le={...ee,dotsOptions:{...ee.dotsOptions,type:L.classyRounded},cornersSquareOptions:{...ee.cornersSquareOptions,type:G.outpoint},cornersDotOptions:{...ee.cornersDotOptions,type:P.outpoint}},ce={...ee,dotsOptions:{...ee.dotsOptions,type:L.smallSquare},cornersSquareOptions:{...ee.cornersSquareOptions,type:G.inpoint},cornersDotOptions:{...ee.cornersDotOptions,type:P.inpoint}},ue={...ee,dotsOptions:{...ee.dotsOptions,type:L.tinySquare},cornersSquareOptions:{...ee.cornersSquareOptions,type:G.square},cornersDotOptions:{...ee.cornersDotOptions,type:P.heart}},pe={...ee,dotsOptions:{...ee.dotsOptions,type:L.star},cornersSquareOptions:{...ee.cornersSquareOptions,type:G.classy},cornersDotOptions:{...ee.cornersDotOptions,type:P.classy}},he={...ee,dotsOptions:{...ee.dotsOptions,type:L.plus},cornersSquareOptions:{...ee.cornersSquareOptions,type:G.rounded},cornersDotOptions:{...ee.cornersDotOptions,type:P.rounded}},me={...ee,dotsOptions:{...ee.dotsOptions,type:L.diamond},cornersSquareOptions:{...ee.cornersSquareOptions,type:G.square},cornersDotOptions:{...ee.cornersDotOptions,type:P.square}},ge={...ee,dotsOptions:{...ee.dotsOptions,type:L.randomDot},cornersSquareOptions:{...ee.cornersSquareOptions,type:G.dot},cornersDotOptions:{...ee.cornersDotOptions,type:P.dot}},fe={...ee,dotsOptions:{...ee.dotsOptions,type:L.dot},cornersSquareOptions:{...ee.cornersSquareOptions,type:G.outpoint},cornersDotOptions:{...ee.cornersDotOptions,type:P.outpoint}},be={...ee,dotsOptions:{...ee.dotsOptions,type:L.dot},cornersSquareOptions:{...ee.cornersSquareOptions,type:G.inpoint},cornersDotOptions:{...ee.cornersDotOptions,type:P.inpoint}},ye={...ee,dotsOptions:{...ee.dotsOptions,type:L.rounded},cornersSquareOptions:{...ee.cornersSquareOptions,type:G.outpoint},cornersDotOptions:{...ee.cornersDotOptions,type:P.outpoint}},Oe={...ee,dotsOptions:{...ee.dotsOptions,type:L.rounded},cornersSquareOptions:{...ee.cornersSquareOptions,type:G.inpoint},cornersDotOptions:{...ee.cornersDotOptions,type:P.inpoint}},Se={...ee,dotsOptions:{...ee.dotsOptions,type:L.classy},cornersSquareOptions:{...ee.cornersSquareOptions,type:G.outpoint},cornersDotOptions:{...ee.cornersDotOptions,type:P.outpoint}},Ce={...ee,dotsOptions:{...ee.dotsOptions,type:L.classy},cornersSquareOptions:{...ee.cornersSquareOptions,type:G.inpoint},cornersDotOptions:{...ee.cornersDotOptions,type:P.inpoint}},ke={...ee,dotsOptions:{...ee.dotsOptions,type:L.square},cornersSquareOptions:{...ee.cornersSquareOptions,type:G.outpoint},cornersDotOptions:{...ee.cornersDotOptions,type:P.outpoint}},we={...ee,dotsOptions:{...ee.dotsOptions,type:L.square},cornersSquareOptions:{...ee.cornersSquareOptions,type:G.inpoint},cornersDotOptions:{...ee.cornersDotOptions,type:P.inpoint}},Ae={...ee,shape:X.circle,dotsOptions:{...ee.dotsOptions,type:L.rounded},cornersSquareOptions:{...ee.cornersSquareOptions,type:G.rounded},cornersDotOptions:{...ee.cornersDotOptions,type:P.rounded}},Te={...ee,dotsOptions:{...ee.dotsOptions,type:L.dot},cornersSquareOptions:{...ee.cornersSquareOptions,type:G.square},cornersDotOptions:{...ee.cornersDotOptions,type:P.square}},ve={...ee,dotsOptions:{...ee.dotsOptions,type:L.dot},cornersSquareOptions:{...ee.cornersSquareOptions,type:G.rounded},cornersDotOptions:{...ee.cornersDotOptions,type:P.rounded}},qe={...ee,dotsOptions:{...ee.dotsOptions,type:L.dot},cornersSquareOptions:{...ee.cornersSquareOptions,type:G.classy},cornersDotOptions:{...ee.cornersDotOptions,type:P.classy}},De={...ee,dotsOptions:{...ee.dotsOptions,type:L.rounded},cornersSquareOptions:{...ee.cornersSquareOptions,type:G.square},cornersDotOptions:{...ee.cornersDotOptions,type:P.square}},Ie={...ee,dotsOptions:{...ee.dotsOptions,type:L.rounded},cornersSquareOptions:{...ee.cornersSquareOptions,type:G.classy},cornersDotOptions:{...ee.cornersDotOptions,type:P.classy}},Ze={...ee,dotsOptions:{...ee.dotsOptions,type:L.classy},cornersSquareOptions:{...ee.cornersSquareOptions,type:G.square},cornersDotOptions:{...ee.cornersDotOptions,type:P.square}},We={...ee,dotsOptions:{...ee.dotsOptions,type:L.classy},cornersSquareOptions:{...ee.cornersSquareOptions,type:G.rounded},cornersDotOptions:{...ee.cornersDotOptions,type:P.rounded}},Re={...ee,dotsOptions:{...ee.dotsOptions,type:L.square},cornersSquareOptions:{...ee.cornersSquareOptions,type:G.dot},cornersDotOptions:{...ee.cornersDotOptions,type:P.dot}},Ve={...ee,dotsOptions:{...ee.dotsOptions,type:L.square},cornersSquareOptions:{...ee.cornersSquareOptions,type:G.rounded},cornersDotOptions:{...ee.cornersDotOptions,type:P.rounded}},Ee={...ee,dotsOptions:{...ee.dotsOptions,type:L.square},cornersSquareOptions:{...ee.cornersSquareOptions,type:G.classy},cornersDotOptions:{...ee.cornersDotOptions,type:P.classy}},je={...ee,dotsOptions:{...ee.dotsOptions,type:L.extraRounded},cornersSquareOptions:{...ee.cornersSquareOptions,type:G.dot},cornersDotOptions:{...ee.cornersDotOptions,type:P.dot}},xe={...ee,dotsOptions:{...ee.dotsOptions,type:L.extraRounded},cornersSquareOptions:{...ee.cornersSquareOptions,type:G.classy},cornersDotOptions:{...ee.cornersDotOptions,type:P.classy}},Be={...ee,dotsOptions:{...ee.dotsOptions,type:L.classyRounded},cornersSquareOptions:{...ee.cornersSquareOptions,type:G.dot},cornersDotOptions:{...ee.cornersDotOptions,type:P.dot}},Je={...ee,dotsOptions:{...ee.dotsOptions,type:L.classyRounded},cornersSquareOptions:{...ee.cornersSquareOptions,type:G.square},cornersDotOptions:{...ee.cornersDotOptions,type:P.square}},Ye={...ee,dotsOptions:{...ee.dotsOptions,type:L.verticalLine},cornersSquareOptions:{...ee.cornersSquareOptions,type:G.square},cornersDotOptions:{...ee.cornersDotOptions,type:P.square}},Me={...ee,dotsOptions:{...ee.dotsOptions,type:L.horizontalLine},cornersSquareOptions:{...ee.cornersSquareOptions,type:G.square},cornersDotOptions:{...ee.cornersDotOptions,type:P.square}},Le={...ee,dotsOptions:{...ee.dotsOptions,type:L.horizontalLine},cornersSquareOptions:{...ee.cornersSquareOptions,type:G.classy},cornersDotOptions:{...ee.cornersDotOptions,type:P.classy}},Pe={...ee,dotsOptions:{...ee.dotsOptions,type:L.smallSquare},cornersSquareOptions:{...ee.cornersSquareOptions,type:G.dot},cornersDotOptions:{...ee.cornersDotOptions,type:P.dot}},Ge={...ee,dotsOptions:{...ee.dotsOptions,type:L.smallSquare},cornersSquareOptions:{...ee.cornersSquareOptions,type:G.rounded},cornersDotOptions:{...ee.cornersDotOptions,type:P.rounded}},Xe={...ee,dotsOptions:{...ee.dotsOptions,type:L.tinySquare},cornersSquareOptions:{...ee.cornersSquareOptions,type:G.dot},cornersDotOptions:{...ee.cornersDotOptions,type:P.dot}},Ne={...ee,dotsOptions:{...ee.dotsOptions,type:L.tinySquare},cornersSquareOptions:{...ee.cornersSquareOptions,type:G.square},cornersDotOptions:{...ee.cornersDotOptions,type:P.square}},ze={...ee,dotsOptions:{...ee.dotsOptions,type:L.star},cornersSquareOptions:{...ee.cornersSquareOptions,type:G.dot},cornersDotOptions:{...ee.cornersDotOptions,type:P.dot}},Fe={...ee,dotsOptions:{...ee.dotsOptions,type:L.star},cornersSquareOptions:{...ee.cornersSquareOptions,type:G.square},cornersDotOptions:{...ee.cornersDotOptions,type:P.square}},Ue={...ee,dotsOptions:{...ee.dotsOptions,type:L.plus},cornersSquareOptions:{...ee.cornersSquareOptions,type:G.dot},cornersDotOptions:{...ee.cornersDotOptions,type:P.dot}},Ke={...ee,dotsOptions:{...ee.dotsOptions,type:L.plus},cornersSquareOptions:{...ee.cornersSquareOptions,type:G.square},cornersDotOptions:{...ee.cornersDotOptions,type:P.square}},He={...ee,dotsOptions:{...ee.dotsOptions,type:L.diamond},cornersSquareOptions:{...ee.cornersSquareOptions,type:G.dot},cornersDotOptions:{...ee.cornersDotOptions,type:P.dot}},_e={...ee,dotsOptions:{...ee.dotsOptions,type:L.diamond},cornersSquareOptions:{...ee.cornersSquareOptions,type:G.classy},cornersDotOptions:{...ee.cornersDotOptions,type:P.classy}},Qe={...ee,dotsOptions:{...ee.dotsOptions,type:L.randomDot},cornersSquareOptions:{...ee.cornersSquareOptions,type:G.square},cornersDotOptions:{...ee.cornersDotOptions,type:P.square}},$e={...ee,dotsOptions:{...ee.dotsOptions,type:L.randomDot},cornersSquareOptions:{...ee.cornersSquareOptions,type:G.classy},cornersDotOptions:{...ee.cornersDotOptions,type:P.classy}},et={...ee,dotsOptions:{...ee.dotsOptions,type:L.dot},cornersSquareOptions:{...ee.cornersSquareOptions,type:G.square},cornersDotOptions:{...ee.cornersDotOptions,type:P.dot}},tt={...ee,dotsOptions:{...ee.dotsOptions,type:L.dot},cornersSquareOptions:{...ee.cornersSquareOptions,type:G.dot},cornersDotOptions:{...ee.cornersDotOptions,type:P.square}},ot={...ee,dotsOptions:{...ee.dotsOptions,type:L.rounded},cornersSquareOptions:{...ee.cornersSquareOptions,type:G.square},cornersDotOptions:{...ee.cornersDotOptions,type:P.dot}},rt={...ee,dotsOptions:{...ee.dotsOptions,type:L.rounded},cornersSquareOptions:{...ee.cornersSquareOptions,type:G.outpoint},cornersDotOptions:{...ee.cornersDotOptions,type:P.rounded}},nt={...ee,dotsOptions:{...ee.dotsOptions,type:L.classy},cornersSquareOptions:{...ee.cornersSquareOptions,type:G.square},cornersDotOptions:{...ee.cornersDotOptions,type:P.dot}},st={...ee,dotsOptions:{...ee.dotsOptions,type:L.classy},cornersSquareOptions:{...ee.cornersSquareOptions,type:G.dot},cornersDotOptions:{...ee.cornersDotOptions,type:P.square}},it={...ee,dotsOptions:{...ee.dotsOptions,type:L.square},cornersSquareOptions:{...ee.cornersSquareOptions,type:G.rounded},cornersDotOptions:{...ee.cornersDotOptions,type:P.dot}},at={...ee,dotsOptions:{...ee.dotsOptions,type:L.square},cornersSquareOptions:{...ee.cornersSquareOptions,type:G.dot},cornersDotOptions:{...ee.cornersDotOptions,type:P.rounded}},dt={...ee,dotsOptions:{...ee.dotsOptions,type:L.dot},cornersSquareOptions:{...ee.cornersSquareOptions,type:G.classy},cornersDotOptions:{...ee.cornersDotOptions,type:P.dot}},lt={...ee,dotsOptions:{...ee.dotsOptions,type:L.dot},cornersSquareOptions:{...ee.cornersSquareOptions,type:G.dot},cornersDotOptions:{...ee.cornersDotOptions,type:P.classy}},ct={...te,shape:X.circle},ut={...ee,shape:X.circle},pt={...re,shape:X.circle},ht={...ne,shape:X.circle},mt={...se,shape:X.circle},gt={...ie,shape:X.circle},ft={...ae,shape:X.circle},bt={...de,shape:X.circle},yt={...le,shape:X.circle},Ot={...ce,shape:X.circle},St={...ue,shape:X.circle},Ct={...pe,shape:X.circle},kt={...he,shape:X.circle},wt={...me,shape:X.circle},At={...ge,shape:X.circle},Tt={...fe,shape:X.circle},vt={...be,shape:X.circle},qt={...ye,shape:X.circle},Dt={...Oe,shape:X.circle},It={...Se,shape:X.circle},Zt={...Ce,shape:X.circle},Wt={...ke,shape:X.circle},Rt={...we,shape:X.circle},Vt={...Te,shape:X.circle},Et={...ve,shape:X.circle},jt={...qe,shape:X.circle},xt={...De,shape:X.circle},Bt={...Ie,shape:X.circle},Jt={...Ze,shape:X.circle},Yt={...We,shape:X.circle},Mt={...Re,shape:X.circle},Lt={...Ve,shape:X.circle},Pt={...Ee,shape:X.circle},Gt={...je,shape:X.circle},Xt={...xe,shape:X.circle},Nt={...Be,shape:X.circle},zt={...Je,shape:X.circle},Ft={...Ye,shape:X.circle},Ut={...Me,shape:X.circle},Kt={...Le,shape:X.circle},Ht={...Pe,shape:X.circle},_t={...Ge,shape:X.circle},Qt={...Xe,shape:X.circle},$t={...Ne,shape:X.circle},eo={...ze,shape:X.circle},to={...Fe,shape:X.circle},oo={...Ue,shape:X.circle},ro={...Ke,shape:X.circle},no={...He,shape:X.circle},so={..._e,shape:X.circle},io={...Qe,shape:X.circle},ao={...$e,shape:X.circle},lo={...et,shape:X.circle},co={...tt,shape:X.circle},uo={...ot,shape:X.circle},po={...rt,shape:X.circle},ho={...nt,shape:X.circle},mo={...st,shape:X.circle},go={...it,shape:X.circle},fo={...at,shape:X.circle},bo={...dt,shape:X.circle},yo={...lt,shape:X.circle},Oo=[{id:"base",name:"Default",options:ee},{id:"plain",name:"Square Plain",options:te},{id:"plain-circle",name:"Square Plain (Circle)",options:ct},{id:"base-line-rounded",name:"Lines Rounded",options:oe},{id:"rounded",name:"Rounded",options:re},{id:"dots",name:"Dots",options:ne},{id:"classy",name:"Classy",options:se},{id:"extra-rounded-dots-square-corners",name:"Extra Rounded Dots Square Corners",options:ie},{id:"vertical-line-dots-classy-corners",name:"Vertical Lines Classy Corners",options:ae},{id:"horizontal-line-dots-rounded-corners",name:"Horizontal Lines Rounded Corners",options:de},{id:"classy-rounded-dots-outpoint-corners",name:"Classy Rounded Dots Outpoint Corners",options:le},{id:"small-square-dots-inpoint-corners",name:"Small Square Dots Inpoint Corners",options:ce},{id:"tiny-square-dots-square-corners-heart-corners",name:"Tiny Square Dots Heart Corners",options:ue},{id:"star-dots-classy-corners",name:"Star Dots Classy Corners",options:pe},{id:"plus-dots-rounded-corners",name:"Plus Dots Rounded Corners",options:he},{id:"diamond-dots-square-corners",name:"Diamond Dots Square Corners",options:me},{id:"random-dot-dots-dot-corners",name:"Random Dots",options:ge},{id:"dot-dots-outpoint-corners",name:"Dots Outpoint Corners",options:fe},{id:"dot-dots-inpoint-corners",name:"Dots Inpoint Corners",options:be},{id:"rounded-dots-outpoint-corners",name:"Rounded Dots Outpoint Corners",options:ye},{id:"rounded-dots-inpoint-corners",name:"Rounded Dots Inpoint Corners",options:Oe},{id:"classy-dots-outpoint-corners",name:"Classy Dots Outpoint Corners",options:Se},{id:"classy-dots-inpoint-corners",name:"Classy Dots Inpoint Corners",options:Ce},{id:"square-dots-outpoint-corners",name:"Square Dots Outpoint Corners",options:ke},{id:"square-dots-inpoint-corners",name:"Square Dots Inpoint Corners",options:we},{id:"dot-dots-square-corners",name:"Dots Square Corners",options:Te},{id:"dot-dots-rounded-corners",name:"Dots Rounded Corners",options:ve},{id:"dot-dots-classy-corners",name:"Dots Classy Corners",options:qe},{id:"rounded-dots-square-corners",name:"Rounded Dots Square Corners",options:De},{id:"rounded-dots-classy-corners",name:"Rounded Dots Classy Corners",options:Ie},{id:"classy-dots-square-corners",name:"Classy Dots Square Corners",options:Ze},{id:"classy-dots-rounded-corners",name:"Classy Dots Rounded Corners",options:We},{id:"square-dots-dot-corners",name:"Square Dots Dot Corners",options:Re},{id:"square-dots-rounded-corners",name:"Square Dots Rounded Corners",options:Ve},{id:"square-dots-classy-corners",name:"Square Dots Classy Corners",options:Ee},{id:"extra-rounded-dots-dot-corners",name:"Extra Rounded Dots Dot Corners",options:je},{id:"extra-rounded-dots-classy-corners",name:"Extra Rounded Dots Classy Corners",options:xe},{id:"classy-rounded-dots-dot-corners",name:"Classy Rounded Dots Dot Corners",options:Be},{id:"classy-rounded-dots-square-corners",name:"Classy Rounded Dots Square Corners",options:Je},{id:"vertical-line-dots-square-corners",name:"Vertical Lines Square Corners",options:Ye},{id:"horizontal-line-dots-square-corners",name:"Horizontal Lines Square Corners",options:Me},{id:"horizontal-line-dots-classy-corners",name:"Horizontal Lines Classy Corners",options:Le},{id:"small-square-dots-dot-corners",name:"Small Square Dots Dot Corners",options:Pe},{id:"small-square-dots-rounded-corners",name:"Small Square Dots Rounded Corners",options:Ge},{id:"tiny-square-dots-dot-corners",name:"Tiny Square Dots Dot Corners",options:Xe},{id:"tiny-square-dots-square-corners",name:"Tiny Square Dots Square Corners",options:Ne},{id:"star-dots-dot-corners",name:"Star Dots Dot Corners",options:ze},{id:"star-dots-square-corners",name:"Star Dots Square Corners",options:Fe},{id:"plus-dots-dot-corners",name:"Plus Dots Dot Corners",options:Ue},{id:"plus-dots-square-corners",name:"Plus Dots Square Corners",options:Ke},{id:"diamond-dots-dot-corners",name:"Diamond Dots Dot Corners",options:He},{id:"diamond-dots-classy-corners",name:"Diamond Dots Classy Corners",options:_e},{id:"random-dot-dots-square-corners",name:"Random Dots Square Corners",options:Qe},{id:"random-dot-dots-classy-corners",name:"Random Dots Classy Corners",options:$e},{id:"dot-dots-square-corners-dot-corners",name:"Dots Square/Dot Corners",options:et},{id:"dot-dots-dot-corners-square-corners",name:"Dots Dot/Square Corners",options:tt},{id:"rounded-dots-square-corners-dot-corners",name:"Rounded Dots Square/Dot Corners",options:ot},{id:"rounded-dots-dot-corners-square-corners",name:"Rounded Dots Dot/Square Corners",options:rt},{id:"classy-dots-square-corners-dot-corners",name:"Classy Dots Square/Dot Corners",options:nt},{id:"classy-dots-dot-corners-square-corners",name:"Classy Dots Dot/Square Corners",options:st},{id:"square-dots-rounded-corners-dot-corners",name:"Square Dots Rounded/Dot Corners",options:it},{id:"square-dots-dot-corners-rounded-corners",name:"Square Dots Dot/Rounded Corners",options:at},{id:"dot-dots-classy-corners-dot-corners",name:"Dots Classy/Dot Corners",options:dt},{id:"dot-dots-dot-corners-classy-corners",name:"Dots Dot/Classy Corners",options:lt},{id:"circle-shape-dot-dots-square-corners",name:"Circle Dots Square Corners",options:Vt},{id:"circle-shape-rounded-dots-rounded-corners",name:"Circle Rounded",options:Ae},{id:"circle-shape-square-dots-square-corners",name:"Circle Square Plain",options:ct},{id:"circle-shape-vertical-line-dots-rounded-corners",name:"Circle Lines Rounded",options:ut},{id:"circle-shape-rounded-dots-dot-corners",name:"Circle Rounded Dots",options:pt},{id:"circle-shape-dot-dots-dot-corners",name:"Circle Dots",options:ht},{id:"circle-shape-classy-dots-classy-corners",name:"Circle Classy",options:mt},{id:"circle-shape-extra-rounded-dots-square-corners",name:"Circle Extra Rounded Dots Square Corners",options:gt},{id:"circle-shape-vertical-line-dots-classy-corners",name:"Circle Vertical Lines Classy Corners",options:ft},{id:"circle-shape-horizontal-line-dots-rounded-corners",name:"Circle Horizontal Lines Rounded Corners",options:bt},{id:"circle-shape-classy-rounded-dots-outpoint-corners",name:"Circle Classy Rounded Dots Outpoint Corners",options:yt},{id:"circle-shape-small-square-dots-inpoint-corners",name:"Circle Small Square Dots Inpoint Corners",options:Ot},{id:"circle-shape-tiny-square-dots-square-corners-heart-corners",name:"Circle Tiny Square Dots Heart Corners",options:St},{id:"circle-shape-star-dots-classy-corners",name:"Circle Star Dots Classy Corners",options:Ct},{id:"circle-shape-plus-dots-rounded-corners",name:"Circle Plus Dots Rounded Corners",options:kt},{id:"circle-shape-diamond-dots-square-corners",name:"Circle Diamond Dots Square Corners",options:wt},{id:"circle-shape-random-dot-dots-dot-corners",name:"Circle Random Dots",options:At},{id:"circle-shape-dot-dots-outpoint-corners",name:"Circle Dots Outpoint Corners",options:Tt},{id:"circle-shape-dot-dots-inpoint-corners",name:"Circle Dots Inpoint Corners",options:vt},{id:"circle-shape-rounded-dots-outpoint-corners",name:"Circle Rounded Dots Outpoint Corners",options:qt},{id:"circle-shape-rounded-dots-inpoint-corners",name:"Circle Rounded Dots Inpoint Corners",options:Dt},{id:"circle-shape-classy-dots-outpoint-corners",name:"Circle Classy Dots Outpoint Corners",options:It},{id:"circle-shape-classy-dots-inpoint-corners",name:"Circle Classy Dots Inpoint Corners",options:Zt},{id:"circle-shape-square-dots-outpoint-corners",name:"Circle Square Dots Outpoint Corners",options:Wt},{id:"circle-shape-square-dots-inpoint-corners",name:"Circle Square Dots Inpoint Corners",options:Rt},{id:"circle-shape-dot-dots-rounded-corners",name:"Circle Dots Rounded Corners",options:Et},{id:"circle-shape-dot-dots-classy-corners",name:"Circle Dots Classy Corners",options:jt},{id:"circle-shape-rounded-dots-square-corners",name:"Circle Rounded Dots Square Corners",options:xt},{id:"circle-shape-rounded-dots-classy-corners",name:"Circle Rounded Dots Classy Corners",options:Bt},{id:"circle-shape-classy-dots-square-corners",name:"Circle Classy Dots Square Corners",options:Jt},{id:"circle-shape-classy-dots-rounded-corners",name:"Circle Classy Dots Rounded Corners",options:Yt},{id:"circle-shape-square-dots-dot-corners",name:"Circle Square Dots Dot Corners",options:Mt},{id:"circle-shape-square-dots-rounded-corners",name:"Circle Square Dots Rounded Corners",options:Lt},{id:"circle-shape-square-dots-classy-corners",name:"Circle Square Dots Classy Corners",options:Pt},{id:"circle-shape-extra-rounded-dots-dot-corners",name:"Circle Extra Rounded Dots Dot Corners",options:Gt},{id:"circle-shape-extra-rounded-dots-classy-corners",name:"Circle Extra Rounded Dots Classy Corners",options:Xt},{id:"circle-shape-classy-rounded-dots-dot-corners",name:"Circle Classy Rounded Dots Dot Corners",options:Nt},{id:"circle-shape-classy-rounded-dots-square-corners",name:"Circle Classy Rounded Dots Square Corners",options:zt},{id:"circle-shape-vertical-line-dots-square-corners",name:"Circle Vertical Lines Square Corners",options:Ft},{id:"circle-shape-horizontal-line-dots-square-corners",name:"Circle Horizontal Lines Square Corners",options:Ut},{id:"circle-shape-horizontal-line-dots-classy-corners",name:"Circle Horizontal Lines Classy Corners",options:Kt},{id:"circle-shape-small-square-dots-dot-corners",name:"Circle Small Square Dots Dot Corners",options:Ht},{id:"circle-shape-small-square-dots-rounded-corners",name:"Circle Small Square Dots Rounded Corners",options:_t},{id:"circle-shape-tiny-square-dots-dot-corners",name:"Circle Tiny Square Dots Dot Corners",options:Qt},{id:"circle-shape-tiny-square-dots-square-corners",name:"Circle Tiny Square Dots Square Corners",options:$t},{id:"circle-shape-star-dots-dot-corners",name:"Circle Star Dots Dot Corners",options:eo},{id:"circle-shape-star-dots-square-corners",name:"Circle Star Dots Square Corners",options:to},{id:"circle-shape-plus-dots-dot-corners",name:"Circle Plus Dots Dot Corners",options:oo},{id:"circle-shape-plus-dots-square-corners",name:"Circle Plus Dots Square Corners",options:ro},{id:"circle-shape-diamond-dots-dot-corners",name:"Circle Diamond Dots Dot Corners",options:no},{id:"circle-shape-diamond-dots-classy-corners",name:"Circle Diamond Dots Classy Corners",options:so},{id:"circle-shape-random-dot-dots-square-corners",name:"Circle Random Dots Square Corners",options:io},{id:"circle-shape-random-dot-dots-classy-corners",name:"Circle Random Dots Classy Corners",options:ao},{id:"circle-shape-dot-dots-square-corners-dot-corners",name:"Circle Dots Square/Dot Corners",options:lo},{id:"circle-shape-dot-dots-dot-corners-square-corners",name:"Circle Dots Dot/Square Corners",options:co},{id:"circle-shape-rounded-dots-square-corners-dot-corners",name:"Circle Rounded Dots Square/Dot Corners",options:uo},{id:"circle-shape-rounded-dots-dot-corners-square-corners",name:"Circle Rounded Dots Dot/Square Corners",options:po},{id:"circle-shape-classy-dots-square-corners-dot-corners",name:"Circle Classy Dots Square/Dot Corners",options:ho},{id:"circle-shape-classy-dots-dot-corners-square-corners",name:"Circle Classy Dots Dot/Square Corners",options:mo},{id:"circle-shape-square-dots-rounded-corners-dot-corners",name:"Circle Square Dots Rounded/Dot Corners",options:go},{id:"circle-shape-square-dots-dot-corners-rounded-corners",name:"Circle Square Dots Dot/Rounded Corners",options:fo},{id:"circle-shape-dot-dots-classy-corners-dot-corners",name:"Circle Dots Classy/Dot Corners",options:bo},{id:"circle-shape-dot-dots-dot-corners-classy-corners",name:"Circle Dots Dot/Classy Corners",options:yo}];function So(e){return Oo.find((t=>t.name.toLowerCase()===e.toLowerCase()))}function Co(e){return Oo.find((t=>t.id===e))}Co("base");const ko=e=>"number"==typeof e&&!isNaN(e)&&isFinite(e),wo=(e,t)=>{const o=[];return Object.values(M).includes(e.type)||o.push({path:`${t}.type`,message:`Invalid gradient type. Must be one of: ${Object.values(M).join(", ")}`,value:e.type}),void 0===e.rotation||ko(e.rotation)||o.push({path:`${t}.rotation`,message:"Rotation must be a valid number",value:e.rotation}),!e.colorStops||!Array.isArray(e.colorStops)||e.colorStops.length<2?o.push({path:`${t}.colorStops`,message:"Gradient must have at least 2 color stops",value:e.colorStops}):e.colorStops.forEach(((e,r)=>{(!ko(e.offset)||e.offset<0||e.offset>1)&&o.push({path:`${t}.colorStops[${r}].offset`,message:"Color stop offset must be between 0 and 1",value:e.offset}),(e=>{if(new Set(["black","white","red","green","blue","yellow","purple","gray","grey","cyan","magenta","lime","pink","teal","brown","orange"]).has(e.toLowerCase()))return!0;if(/^#([A-Fa-f0-9]{3}){1,2}$/.test(e))return!0;if(/^#([A-Fa-f0-9]{4}){1,2}$/.test(e))return!0;if(/^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/.test(e)||/^rgba\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*([01]?\.?\d*)\)$/.test(e))return(e.match(/\d+/g)?.map(Number)||[]).every((e=>e>=0&&e<=255));return!1})(e.color)||o.push({path:`${t}.colorStops[${r}].color`,message:"Invalid color format",value:e.color})})),o};function Ao(e){const t=[];let o={...ee};return e.data&&"string"==typeof e.data||t.push({path:"data",message:"QR data is required and must be a string",value:e.data}),e.shape&&!Object.values(X).includes(e.shape)&&(t.push({path:"shape",message:`Invalid shape type. Must be one of: ${Object.values(X).join(", ")}`,value:e.shape}),e.shape=ee.shape),e.qrOptions&&(e.qrOptions.typeNumber&&!Object.values(m).includes(e.qrOptions.typeNumber)&&(t.push({path:"qrOptions.typeNumber",message:"Invalid type number",value:e.qrOptions.typeNumber}),e.qrOptions.typeNumber=ee.qrOptions?.typeNumber),e.qrOptions.errorCorrectionLevel&&!Object.values(g).includes(e.qrOptions.errorCorrectionLevel)&&(t.push({path:"qrOptions.errorCorrectionLevel",message:"Invalid error correction level",value:e.qrOptions.errorCorrectionLevel}),e.qrOptions.errorCorrectionLevel=ee.qrOptions?.errorCorrectionLevel),e.qrOptions.mode&&!Object.values(f).includes(e.qrOptions.mode)&&(t.push({path:"qrOptions.mode",message:"Invalid mode",value:e.qrOptions.mode}),e.qrOptions.mode=ee.qrOptions?.mode)),e.imageOptions&&(e.imageOptions.imageSize&&(!ko(e.imageOptions.imageSize)||e.imageOptions.imageSize<=0||e.imageOptions.imageSize>1)&&(t.push({path:"imageOptions.imageSize",message:"Image size must be between 0 and 1",value:e.imageOptions.imageSize}),e.imageOptions.imageSize=ee.imageOptions?.imageSize),e.imageOptions.margin&&(!ko(e.imageOptions.margin)||e.imageOptions.margin<0)&&(t.push({path:"imageOptions.margin",message:"Margin must be a non-negative number",value:e.imageOptions.margin}),e.imageOptions.margin=ee.imageOptions?.margin),e.imageOptions.mode&&!Object.values(N).includes(e.imageOptions.mode)&&(t.push({path:"imageOptions.mode",message:`Invalid image mode. Must be one of: ${Object.values(N).join(", ")}`,value:e.imageOptions.mode}),e.imageOptions.mode=ee.imageOptions?.mode)),e.dotsOptions&&(e.dotsOptions.type&&!Object.values(L).includes(e.dotsOptions.type)&&(t.push({path:"dotsOptions.type",message:`Invalid dot type. Must be one of: ${Object.values(L).join(", ")}`,value:e.dotsOptions.type}),e.dotsOptions.type=ee.dotsOptions?.type),e.dotsOptions.size&&(!ko(e.dotsOptions.size)||e.dotsOptions.size<=0)&&(t.push({path:"dotsOptions.size",message:"Dot size must be a positive number",value:e.dotsOptions.size}),e.dotsOptions.size=ee.dotsOptions?.size),e.dotsOptions.gradient&&t.push(...wo(e.dotsOptions.gradient,"dotsOptions.gradient"))),e.cornersSquareOptions&&(e.cornersSquareOptions.type&&!Object.values(G).includes(e.cornersSquareOptions.type)&&(t.push({path:"cornersSquareOptions.type",message:`Invalid corner square type. Must be one of: ${Object.values(G).join(", ")}`,value:e.cornersSquareOptions.type}),e.cornersSquareOptions.type=ee.cornersSquareOptions?.type),e.cornersSquareOptions.gradient&&t.push(...wo(e.cornersSquareOptions.gradient,"cornersSquareOptions.gradient"))),e.cornersDotOptions&&(e.cornersDotOptions.type&&!Object.values(P).includes(e.cornersDotOptions.type)&&(t.push({path:"cornersDotOptions.type",message:`Invalid corner dot type. Must be one of: ${Object.values(P).join(", ")}`,value:e.cornersDotOptions.type}),e.cornersDotOptions.type=ee.cornersDotOptions?.type),e.cornersDotOptions.gradient&&t.push(...wo(e.cornersDotOptions.gradient,"cornersDotOptions.gradient"))),o={...o,...e},{warnings:t,validatedOptions:o}}const To=/\.?0+$/;function vo(e){return e.toFixed(7).replace(To,"")}function qo(e,...t){return e.reduce(((e,o,r)=>{let n="";return r&&(n=t[r-1]),"number"==typeof n&&(n=vo(n)),`${e}${n}${o}`}),"").trim().replace(/[\s\n\r]+/gim," ")}class Do{get element(){return this._element}constructor(e,t){this.type=e,this.document=t}draw(e){let t;switch(this.type){case P.square:t=this.drawSquare;break;case P.heart:t=this.drawHeart;break;case P.rounded:t=this.drawRounded;break;case P.classy:t=this.drawClassy;break;case P.inpoint:t=this.drawInpoint;break;case P.outpoint:t=this.drawOutpoint;break;case P.dot:default:t=this.drawDot}t.call(this,e)}rotateFigure({x:e,y:t,size:o,rotation:r=0,draw:n}){const s=e+o/2,i=t+o/2;n(),this._element?.setAttribute("transform",`rotate(${vo(180*r/Math.PI)},${s},${i})`)}basicDot(e){const{size:t,x:o,y:r}=e;this.rotateFigure({...e,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","circle"),this._element.setAttribute("cx",vo(o+t/2)),this._element.setAttribute("cy",vo(r+t/2)),this._element.setAttribute("r",vo(t/2.1))}})}basicSquare(e){const{size:t,x:o,y:r}=e,n=t/11;this.rotateFigure({...e,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","rect"),this._element.setAttribute("x",vo(o+n)),this._element.setAttribute("y",vo(r+n)),this._element.setAttribute("width",vo(t-2*n)),this._element.setAttribute("height",vo(t-2*n))}})}basicHeart(e){const{size:t,x:o,y:r}=e;this._element=this.document.createElementNS("http://www.w3.org/2000/svg","path");let n=!1,s=0;this._element.setAttribute("d",["M",1,.3262506,"c",0,.0383376,-.0064626,.0758377,-.0193751,.1125001,"s",-.0356247,.076875,-.0681248,.1206252,"c",-.0325,.0437499,-.0762503,.0931247,-.1312501,.1481249,"C",.7262502,.7625008,.6566626,.8279132,.5724999,.9037505,"L",.5,.9687506,"L",.4275001,.9037505,"C",.3433374,.8279132,.2737499,.7625005,.21875,.7075007,"C",.1637501,.6525008,.1199999,.6031258,.0874999,.5593758,"S",.0322876,.4754133,.0193751,.4387506,"S",0,.3645881,0,.3262506,"c",0,-.0783374,.0262499,-.1437498,.07875,-.1962499,"s",.1179124,-.07875,.1962499,-.07875,"c",.0433376,0,.0845875,.0091625,.12375,.0274999,"S",.4716623,.1229131,.5,.1562506,"c",.0283374,-.0333375,.0620874,-.0591625,.1012502,-.0775,"c",.0391627,-.0183375,.0804126,-.0274999,.12375,-.0274999,"c",.0783374,0,.1437497,.0262499,.1962501,.07875,"S",1,.2479131,1,.3262506,"z"].map((e=>"string"==typeof e?(s=0,n=e.toUpperCase()==e,e):(s++,e*=t,n&&(e+=s%2==1?o:r),vo(e)))).join(" "))}basicRounded(e){const{size:t,x:o,y:r}=e;this.rotateFigure({...e,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","rect"),this._element.setAttribute("x",vo(o)),this._element.setAttribute("y",vo(r)),this._element.setAttribute("width",vo(t)),this._element.setAttribute("height",vo(t)),this._element.setAttribute("rx",vo(t/4)),this._element.setAttribute("ry",vo(t/4))}})}basicClassy(e){const{size:t,x:o,y:r}=e,n=t/7;this.rotateFigure({...e,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("clip-rule","evenodd"),this._element.setAttribute("d",qo`M ${o} ${r+2.5*n} v ${2*n} a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*n} ${2.5*n} h ${4.5*n} v ${-4.5*n} a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*-n} ${2.5*-n} h ${-2*n} H ${o} z`)}})}basicInpoint(e){const{size:t,x:o,y:r}=e,n=t;this.rotateFigure({...e,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("clip-rule","evenodd"),this._element.setAttribute("d",qo`M ${o} ${r+n/2} v ${n/4} a ${n/4}, ${n/4} 0 0 0 ${n/4}, ${n/4} h ${n/4*3} v ${-n/4*3} a ${n/4}, ${n/4} 0 0 0 ${-n/4}, ${-n/4} h ${-n/2} a ${n/4}, ${n/4} 0 0 0 ${-n/4}, ${n/4} z`)}})}drawDot({x:e,y:t,size:o,rotation:r}){this.basicDot({x:e,y:t,size:o,rotation:r})}drawSquare({x:e,y:t,size:o,rotation:r}){this.basicSquare({x:e,y:t,size:o,rotation:r})}drawHeart({x:e,y:t,size:o,rotation:r}){this.basicHeart({x:e,y:t,size:o,rotation:r})}drawRounded({x:e,y:t,size:o,rotation:r}){this.basicRounded({x:e,y:t,size:o,rotation:r})}drawClassy({x:e,y:t,size:o,rotation:r}){this.basicClassy({x:e,y:t,size:o,rotation:r})}drawInpoint({x:e,y:t,size:o,rotation:r}){this.basicInpoint({x:e,y:t,size:o,rotation:r})}drawOutpoint({x:e,y:t,size:o,rotation:r}){this.basicInpoint({x:e,y:t,size:o,rotation:(r||0)+Math.PI})}}class Io{get element(){return this._element}get fill(){return this._fill}constructor(e,t){this.type=e,this.document=t}draw(e){let t;switch(this.type){case G.square:t=this.drawSquare;break;case G.rounded:t=this.drawExtraRounded;break;case G.classy:t=this.drawClassy;break;case G.outpoint:t=this.drawOutpoint;break;case G.inpoint:t=this.drawInpoint;break;case G.dot:default:t=this.drawDot}t.call(this,e)}rotateFigure({x:e,y:t,size:o,rotation:r=0,draw:n}){const s=e+o/2,i=t+o/2;n(),this._element?.setAttribute("transform",`rotate(${vo(180*r/Math.PI)},${s},${i})`),this._fill?.setAttribute("transform",`rotate(${vo(180*r/Math.PI)},${s},${i})`)}basicDot(e){const{size:t,x:o,y:r}=e,n=t/8,s=.5*t,i=s-n;this.rotateFigure({...e,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("clip-rule","evenodd"),this._element.setAttribute("d",qo`M ${o+t/2} ${r+(t/2-s)} a ${s} ${s} 0 1 0 0.1 0 z m 0 ${n} a ${i} ${i} 0 1 1 -0.1 0 Z`),this._fill=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._fill.setAttribute("clip-rule","evenodd"),this._fill.setAttribute("d",qo`M ${o+t/2} ${r+(t/2-(s+n))} a ${s+n} ${s+n} 0 1 0 0.1 0 z`)}})}basicSquare(e){const{size:t,x:o,y:r}=e,n=t/7;this.rotateFigure({...e,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("clip-rule","evenodd"),this._element.setAttribute("d",qo`M ${o} ${r} v ${t} h ${t} v ${-t} z M ${o+n} ${r+n} h ${t-2*n} v ${t-2*n} h ${2*n-t} z`),this._fill=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._fill.setAttribute("clip-rule","evenodd"),this._fill.setAttribute("d",qo`M ${o-n} ${r-n} h ${t+2*n} v ${t+2*n} h ${-t-2*n} z`)}})}basicExtraRounded(e){const{size:t,x:o,y:r}=e,n=t/7;this.rotateFigure({...e,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("clip-rule","evenodd"),this._element.setAttribute("d",qo`M ${o} ${r+2.5*n} v ${2*n} a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*n} ${2.5*n} h ${2*n} a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*n} ${2.5*-n} v ${-2*n} a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*-n} ${2.5*-n} h ${-2*n} a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*-n} ${2.5*n} z M ${o+2.5*n} ${r+n} h ${2*n} a ${1.5*n} ${1.5*n}, 0, 0, 1, ${1.5*n} ${1.5*n} v ${2*n} a ${1.5*n} ${1.5*n}, 0, 0, 1, ${1.5*-n} ${1.5*n} h ${-2*n} a ${1.5*n} ${1.5*n}, 0, 0, 1, ${1.5*-n} ${1.5*-n} v ${-2*n} a ${1.5*n} ${1.5*n}, 0, 0, 1, ${1.5*n} ${1.5*-n} z`),this._fill=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._fill.setAttribute("clip-rule","evenodd"),this._fill.setAttribute("d",qo`M ${o-n} ${r+2.5*n} v ${2*n} a ${3.5*n} ${3.5*n}, 0, 0, 0, ${3.5*n} ${3.5*n} h ${2*n} a ${3.5*n} ${3.5*n}, 0, 0, 0, ${3.5*n} ${3.5*-n} v ${-2*n} a ${3.5*n} ${3.5*n}, 0, 0, 0, ${3.5*-n} ${3.5*-n} h ${-2*n} a ${3.5*n} ${3.5*n}, 0, 0, 0, ${3.5*-n} ${3.5*n} z`)}})}basicClassy(e){const{size:t,x:o,y:r}=e,n=t/7;this.rotateFigure({...e,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("clip-rule","evenodd"),this._element.setAttribute("d",qo`M ${o} ${r+2.5*n} v ${2*n} a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*n} ${2.5*n} h ${4.5*n} v ${-4.5*n} a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*-n} ${2.5*-n} h ${-2*n} H ${o} z M ${o+2.5*n} ${r+n} h ${2*n} a ${1.5*n} ${1.5*n}, 0, 0, 1, ${1.5*n} ${1.5*n} v ${3.5*n} h ${-3.5*n} a ${1.5*n} ${1.5*n}, 0, 0, 1, ${1.5*-n} ${1.5*-n} v ${-3.5*n} z`),this._fill=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._fill.setAttribute("clip-rule","evenodd"),this._fill.setAttribute("d",qo`M ${o+.5*n} ${r-n} h ${4*n} a ${3.5*n} ${3.5*n}, 0, 0, 1, ${3.5*n} ${3.5*n} v ${5.5*n} h ${-5.5*n} a ${3.5*n} ${3.5*n}, 0, 0, 1, ${3.5*-n} ${3.5*-n} v ${-5.5*n} z`)}})}basicInpoint(e){const{size:t,x:o,y:r}=e,n=t/7;this.rotateFigure({...e,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("clip-rule","evenodd"),this._element.setAttribute("d",qo`M ${o} ${r+2.5*n} v ${2*n} a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*n} ${2.5*n} h ${4.5*n} v ${-4.5*n} a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*-n} ${2.5*-n} h ${-2*n} a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*-n} ${2.5*n} z M ${o+2.5*n} ${r+n} h ${2*n} a ${1.5*n} ${1.5*n}, 0, 0, 1, ${1.5*n} ${1.5*n} v ${3.5*n} h ${-3.5*n} a ${1.5*n} ${1.5*n}, 0, 0, 1, ${1.5*-n} ${1.5*-n} v ${-2*n} a ${1.5*n} ${1.5*n}, 0, 0, 1, ${1.5*n} ${1.5*-n} z`),this._fill=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._fill.setAttribute("clip-rule","evenodd"),this._fill.setAttribute("d",qo`M ${o+.5*n} ${r-n} h ${4*n} a ${3.5*n} ${3.5*n}, 0, 0, 1, ${3.5*n} ${3.5*n} v ${5.5*n} h ${-5.5*n} a ${3.5*n} ${3.5*n}, 0, 0, 1, ${3.5*-n} ${3.5*-n} v ${-2*n} a ${3.5*n} ${3.5*n}, 0, 0, 1, ${3.5*n} ${3.5*-n} z`)}})}drawDot({x:e,y:t,size:o,rotation:r}){this.basicDot({x:e,y:t,size:o,rotation:r})}drawSquare({x:e,y:t,size:o,rotation:r}){this.basicSquare({x:e,y:t,size:o,rotation:r})}drawExtraRounded({x:e,y:t,size:o,rotation:r}){this.basicExtraRounded({x:e,y:t,size:o,rotation:r})}drawClassy({x:e,y:t,size:o,rotation:r}){this.basicClassy({x:e,y:t,size:o,rotation:r})}drawInpoint({x:e,y:t,size:o,rotation:r}){this.basicInpoint({x:e,y:t,size:o,rotation:r})}drawOutpoint({x:e,y:t,size:o,rotation:r}){this.basicInpoint({x:e,y:t,size:o,rotation:(r||0)+Math.PI})}}class Zo{get element(){return this._element}constructor(e,t){this.type=e,this.document=t}draw(e){let t;switch(this.type){case L.dot:t=this.drawDot;break;case L.randomDot:t=this.drawRandomDot;break;case L.classy:t=this.drawClassy;break;case L.classyRounded:t=this.drawClassyRounded;break;case L.rounded:t=this.drawRounded;break;case L.verticalLine:t=this.drawVerticalLine;break;case L.horizontalLine:t=this.drawHorizontalLine;break;case L.extraRounded:t=this.drawExtraRounded;break;case L.diamond:t=this.drawDiamond;break;case L.smallSquare:t=this.drawSmallSquare;break;case L.tinySquare:t=this.drawTinySquare;break;case L.star:t=this.drawStar;break;case L.plus:t=this.drawPlus;break;case L.square:default:t=this.drawSquare}t.call(this,e)}rotateFigure({x:e,y:t,size:o,rotation:r=0,draw:n}){const s=e+o/2,i=t+o/2;n(),this._element?.setAttribute("transform",`rotate(${vo(180*r/Math.PI)},${s},${i})`)}basicDot(e){const{size:t,x:o,y:r}=e;this.rotateFigure({...e,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","circle"),this._element.setAttribute("cx",vo(o+t/2)),this._element.setAttribute("cy",vo(r+t/2)),this._element.setAttribute("r",vo(t/2))}})}basicSquare(e){const{size:t,x:o,y:r}=e;this.rotateFigure({...e,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","rect"),this._element.setAttribute("x",vo(o)),this._element.setAttribute("y",vo(r)),this._element.setAttribute("width",vo(t)),this._element.setAttribute("height",vo(t))}})}basicSideRounded(e){const{size:t,x:o,y:r}=e;this.rotateFigure({...e,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("d",qo`M ${o} ${r} v ${t} h ${t/2} a ${t/2} ${t/2}, 0, 0, 0, 0 ${-t} z`)}})}basicCornerRounded(e){const{size:t,x:o,y:r}=e;this.rotateFigure({...e,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("d",qo`M ${o} ${r} v ${t} h ${t} v ${-t/2} a ${t/2} ${t/2}, 0, 0, 0, ${-t/2} ${-t/2} z`)}})}basicCornerExtraRounded(e){const{size:t,x:o,y:r}=e;this.rotateFigure({...e,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("d",qo`M ${o} ${r} v ${t} h ${t} a ${t} ${t}, 0, 0, 0, ${-t} ${-t} z`)}})}basicCornersRounded(e){const{size:t,x:o,y:r}=e;this.rotateFigure({...e,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("d",qo`M ${o} ${r} v ${t/2} a ${t/2} ${t/2}, 0, 0, 0, ${t/2} ${t/2} h ${t/2} v ${-t/2} a ${t/2} ${t/2}, 0, 0, 0, ${-t/2} ${-t/2} z`)}})}drawDot({x:e,y:t,size:o}){this.basicDot({x:e,y:t,size:o,rotation:0})}drawRandomDot({x:e,y:t,size:o}){const r=.25*Math.random()+.75;this.basicDot({x:e,y:t,size:o*r,rotation:0})}drawSquare({x:e,y:t,size:o}){this.basicSquare({x:e,y:t,size:o,rotation:0})}drawSmallSquare({x:e,y:t,size:o}){const r=o;o=.7*r,e+=.15*r,t+=.15*r,this.basicSquare({x:e,y:t,size:o,rotation:0})}drawTinySquare({x:e,y:t,size:o}){const r=o;o=.6*r,e+=.35*r,t+=.35*r,this.basicSquare({x:e,y:t,size:o,rotation:0})}drawDiamond({x:e,y:t,size:o}){this.basicSquare({x:e,y:t,size:o,rotation:Math.PI/4})}drawRounded({x:e,y:t,size:o,getNeighbor:r}){const n=r?+r(-1,0):0,s=r?+r(1,0):0,i=r?+r(0,-1):0,a=r?+r(0,1):0,d=n+s+i+a;if(0!==d)if(d>2||n&&s||i&&a)this.basicSquare({x:e,y:t,size:o,rotation:0});else{if(2===d){let r=0;return n&&i?r=Math.PI/2:i&&s?r=Math.PI:s&&a&&(r=-Math.PI/2),void this.basicCornerRounded({x:e,y:t,size:o,rotation:r})}if(1===d){let r=0;return i?r=Math.PI/2:s?r=Math.PI:a&&(r=-Math.PI/2),void this.basicSideRounded({x:e,y:t,size:o,rotation:r})}}else this.basicDot({x:e,y:t,size:o,rotation:0})}drawVerticalLine({x:e,y:t,size:o,getNeighbor:r}){const n=r?+r(-1,0):0,s=r?+r(1,0):0,i=r?+r(0,-1):0,a=r?+r(0,1):0;if(0===n+s+i+a||n&&!i&&!a||s&&!i&&!a)this.basicDot({x:e,y:t,size:o,rotation:0});else if(i&&a)this.basicSquare({x:e,y:t,size:o,rotation:0});else if(!i||a)if(!a||i);else{const r=-Math.PI/2;this.basicSideRounded({x:e,y:t,size:o,rotation:r})}else{const r=Math.PI/2;this.basicSideRounded({x:e,y:t,size:o,rotation:r})}}drawHorizontalLine({x:e,y:t,size:o,getNeighbor:r}){const n=r?+r(-1,0):0,s=r?+r(1,0):0,i=r?+r(0,-1):0,a=r?+r(0,1):0;if(0===n+s+i+a||i&&!n&&!s||a&&!n&&!s)this.basicDot({x:e,y:t,size:o,rotation:0});else if(n&&s)this.basicSquare({x:e,y:t,size:o,rotation:0});else if(!n||s)if(!s||n);else{const r=Math.PI;this.basicSideRounded({x:e,y:t,size:o,rotation:r})}else{const r=0;this.basicSideRounded({x:e,y:t,size:o,rotation:r})}}drawExtraRounded({x:e,y:t,size:o,getNeighbor:r}){const n=r?+r(-1,0):0,s=r?+r(1,0):0,i=r?+r(0,-1):0,a=r?+r(0,1):0,d=n+s+i+a;if(0!==d)if(d>2||n&&s||i&&a)this.basicSquare({x:e,y:t,size:o,rotation:0});else{if(2===d){let r=0;return n&&i?r=Math.PI/2:i&&s?r=Math.PI:s&&a&&(r=-Math.PI/2),void this.basicCornerExtraRounded({x:e,y:t,size:o,rotation:r})}if(1===d){let r=0;return i?r=Math.PI/2:s?r=Math.PI:a&&(r=-Math.PI/2),void this.basicSideRounded({x:e,y:t,size:o,rotation:r})}}else this.basicDot({x:e,y:t,size:o,rotation:0})}drawClassy({x:e,y:t,size:o,getNeighbor:r}){const n=r?+r(-1,0):0,s=r?+r(1,0):0,i=r?+r(0,-1):0,a=r?+r(0,1):0;0!==n+s+i+a?n||i?s||a?this.basicSquare({x:e,y:t,size:o,rotation:0}):this.basicCornerRounded({x:e,y:t,size:o,rotation:Math.PI/2}):this.basicCornerRounded({x:e,y:t,size:o,rotation:-Math.PI/2}):this.basicCornersRounded({x:e,y:t,size:o,rotation:Math.PI/2})}drawClassyRounded({x:e,y:t,size:o,getNeighbor:r}){const n=r?+r(-1,0):0,s=r?+r(1,0):0,i=r?+r(0,-1):0,a=r?+r(0,1):0;0!==n+s+i+a?n||i?s||a?this.basicSquare({x:e,y:t,size:o,rotation:0}):this.basicCornerExtraRounded({x:e,y:t,size:o,rotation:Math.PI/2}):this.basicCornerExtraRounded({x:e,y:t,size:o,rotation:-Math.PI/2}):this.basicCornersRounded({x:e,y:t,size:o,rotation:Math.PI/2})}drawStar({x:e,y:t,size:o}){this.rotateFigure({x:e,y:t,size:o,rotation:0,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","path");const r=e+o/2,n=t+o/2,s=1.3*o/2,i=.5*s;let a="";for(let e=0;e<10;e++){const t=e*Math.PI/5-Math.PI/2,o=e%2==0?s:i;a+=(0===e?"M":"L")+`${r+o*Math.cos(t)},${n+o*Math.sin(t)}`}a+="Z",this._element?.setAttribute("d",a)}})}drawPlus({x:e,y:t,size:o}){this.rotateFigure({x:e,y:t,size:o,rotation:0,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","path");const r=.35*o,n=.85*o,s=(o-n)/2,i=r/2,a=[`M ${e+o/2-i} ${t+s}`,`h ${r}`,`v ${n}`,"h "+-r,"z",`M ${e+s} ${t+o/2-i}`,`h ${n}`,`v ${r}`,"h "+-n,"z"].join(" ");this._element?.setAttribute("d",a)}})}}const Wo={toDataURL:e=>"string"==typeof e&&e.startsWith("data:")?Promise.resolve(e):new Promise(((t,o)=>{if("string"==typeof e){const r=new XMLHttpRequest,n=()=>{r.abort()};r.onload=()=>{if(r.status<200||r.status>=300)return n(),void o(new Error(`Failed to load image: ${r.statusText}`));const e=new FileReader;e.onloadend=()=>{n(),t(e.result)},e.onerror=()=>{n(),o(new Error("Failed to read image blob"))},e.readAsDataURL(r.response)},r.onerror=r.ontimeout=r.onabort=()=>{n(),o(new Error("Image load aborted or failed"))};try{r.open("GET",e,!0),r.responseType="blob",r.timeout=1e4,r.send()}catch(e){n(),o(e)}}else{const r=new FileReader;r.onloadend=()=>{t(r.result)},r.onerror=()=>{o(new Error("Failed to read local image"))},r.readAsDataURL(e)}})).catch((e=>(console.error("Image loading error:",e),"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIj48cmVjdCB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjY2NjIi8+PHRleHQgeD0iNTAlIiB5PSI1MCUiIGRvbWluYW50LWJhc2VsaW5lPSJtaWRkbGUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMwMDAiIGZvbnQtc2l6ZT0iMTYiPkxvZ28gbG9hZCBlcnJvcjwvdGV4dD48L3N2Zz4="))),getSize:(e,t)=>new Promise(((o,r)=>{const n=new Image,s=setTimeout((()=>{r(new Error("Image loading timed out"))}),15e3);"string"==typeof t&&(n.crossOrigin=t);const i=()=>{clearTimeout(s),n.onload=n.onerror=n.onabort=null,n.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="};n.onload=()=>{i(),o({width:n.width,height:n.height})},n.onerror=n.onabort=()=>{i(),r(new Error("Failed to load image"))};try{"string"==typeof e?n.src=e:Wo.toDataURL(e).then((e=>{e?n.src=e:r(new Error("Invalid image source"))})).catch(r)}catch(e){i(),r(e)}})).catch((e=>(console.warn("[QRCodeJs] Image size detection error:",e),{width:200,height:200})))};function Ro(e){let t,o=[],r=1;if("#"===(e=e.toLowerCase())[0]){const t=e.slice(1),n=t.length;n<=4?(o=[parseInt(t[0]+t[0],16),parseInt(t[1]+t[1],16),parseInt(t[2]+t[2],16)],4===n&&(r=parseInt(t[3]+t[3],16)/255)):(o=[parseInt(t[0]+t[1],16),parseInt(t[2]+t[3],16),parseInt(t[4]+t[5],16)],8===n&&(r=parseInt(t[6]+t[7],16)/255)),o[0]||(o[0]=0),o[1]||(o[1]=0),o[2]||(o[2]=0)}else{if(!(t=/^((?:rgba?))\s*\(([^)]*)\)/.exec(e)))return{value:e,alpha:r};{const e=3;o=t[2].trim().split(/\s*[,/]\s*|\s+/),o=o.map(((e,t)=>{if("%"===e[e.length-1]){const o=parseFloat(e)/100;return 3===t?o:255*o}return"none"===e?0:parseFloat(e)})),r=o.length>e?o.pop():1}}return{value:"#"+o.map((e=>Math.max(0,Math.min(255,e)).toString(16).padStart(2,"0"))).join(""),alpha:Math.max(0,Math.min(1,r))}}const Vo="https://api.qr-platform.com",Eo="undefined"!=typeof window&&void 0!==window.document,jo="undefined"!=typeof process&&null!=process.versions&&null!=process.versions.node,xo="undefined"!=typeof navigator&&"Cloudflare-Workers"===navigator.userAgent;let Bo;async function Jo(e,t){if(e.startsWith("data:"))return Promise.resolve(e);try{const o={method:"GET",mode:"cors"};"anonymous"!==t&&"use-credentials"!==t||(o.credentials="use-credentials"===t?"include":"omit");const r=await fetch(e,o);if(!r.ok)return console.warn(`[QRCodeJs] Failed to fetch image directly: ${r.status} ${r.statusText}`),null;if(Eo){const e=await r.blob();return e.type.startsWith("image/")?new Promise(((t,o)=>{const r=new FileReader;r.onloadend=()=>t(r.result),r.onerror=e=>{console.warn("[QRCodeJs] FileReader error:",e),o(new Error("Failed to read image blob"))},r.readAsDataURL(e)})):(console.warn(`[QRCodeJs] Fetched resource is not an image: ${e.type}`),null)}if(jo||xo){const e=r.headers.get("content-type");if(!e||!e.startsWith("image/"))return console.warn(`[QRCodeJs] Fetched resource is not an image or content-type missing: ${e}`),null;const t=await r.arrayBuffer();let o="";if(jo){if(!Bo)return console.error("[QRCodeJs] Buffer module not loaded in Node.js environment."),null;o=Bo.from(t).toString("base64")}else if(o=function(e){let t="";const o=new Uint8Array(e),r=o.byteLength;for(let e=0;e<r;e++)t+=String.fromCharCode(o[e]);return"undefined"!=typeof btoa?btoa(t):""}(t),!o)return console.warn("[QRCodeJs] Failed to convert ArrayBuffer to Base64 in Worker."),null;return`data:${e};base64,${o}`}return console.warn("[QRCodeJs] Unknown environment, cannot convert image to Data URL."),null}catch(e){return console.warn("[QRCodeJs] Error fetching image directly:",e),null}}async function Yo(e){const t=encodeURIComponent(e),o=`${Vo}/v1/utils/get-dataurl?url=${t}`;try{const e=await fetch(o,{method:"GET",headers:{"x-client-name":"QRCode.js"},mode:"cors"});if(!e.ok)return console.warn(`[QRCodeJs] Failed to fetch image via proxy: ${e.status} ${e.statusText}`),null;const t=await e.json();return t&&"string"==typeof t.dataUrl&&t.dataUrl.startsWith("data:image/")?t.dataUrl:(console.warn("[QRCodeJs] Proxy response did not contain a valid dataUrl:",t),null)}catch(e){return console.warn("[QRCodeJs] Error fetching image via proxy:",e),null}}jo&&import("buffer").then((e=>{Bo=e.Buffer})).catch((e=>{console.error("[QRCodeJs] Failed to dynamically import 'buffer' in Node.js:",e)}));const Mo=[[1,1,1,1,1,1,1],[1,0,0,0,0,0,1],[1,0,0,0,0,0,1],[1,0,0,0,0,0,1],[1,0,0,0,0,0,1],[1,0,0,0,0,0,1],[1,1,1,1,1,1,1]],Lo=[[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,1,1,1,0,0],[0,0,1,1,1,0,0],[0,0,1,1,1,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]];class Po{constructor(e){this.roundValue=e=>"number"==typeof e?e:parseInt(e.replace("%",""),10)/100;const t=e.margin||0,o="circle"===e.shape?.1:.3,{bordersMain:r,bordersOuter:n,bordersInner:s}=e,i=Math.min(e.width,e.height),a=D(e.borderOptions?.radius),d=D(e.borderOptions?.inner?.radius,a),l=a&&q(a)>0?q(a)/100*i:0,c=(a&&q(d)>0?q(d)/100*i:0)??l,u=c>0&&e.borderOptions?.hasBorder?c*o:0;this._hls=e.hls,this.finalWidth=e.width+r.left+r.right+n.left+n.right+s.left+s.right,this.finalHeight=e.height+r.top+r.bottom+n.top+n.bottom+s.top+s.bottom;const p=r.left+r.right+n.left+n.right+s.left+s.right,h=r.top+r.bottom+n.top+n.bottom+s.top+s.bottom,m=e.borderOptions?.hasBorder?this.finalWidth-p-2*n.left-2*s.left-s.right-2*t-u:this.finalWidth-2*t,g=e.borderOptions?.hasBorder?this.finalHeight-h-2*n.top-2*s.top-s.top-2*t-u:this.finalHeight-2*t,f=m/e.width,b=g/e.height,y=Math.min(f,b),O=Math.min(Math.max(e.scale??1,0),1.5),S=Math.min(Math.max(e.borderOptions?.inner?.scale??1,0),1.5),C=e.borderOptions?.inner?.horizontalOffset||0,k=e.borderOptions?.inner?.verticalOffset||0;e.scale=y*O*S||1,this.options=e,this.document=e.document,this.imageTools=e.imageTools||Wo,this._element=this.document.createElementNS("http://www.w3.org/2000/svg","svg");const w=vo(e.width),A=vo(e.height);e.isResponsive||(this._element.setAttribute("width",w),this._element.setAttribute("height",A)),this._element.setAttribute("viewBox",`0 0 ${w} ${A}`),this.defs=this.document.createElementNS("http://www.w3.org/2000/svg","defs"),this._element.appendChild(this.defs),this._innerQrGroup=this.document.createElementNS("http://www.w3.org/2000/svg","g");let T=(m-e.width*e.scale)/2+t-C+u/2,v=(g-e.height*e.scale)/2+t-k+u/2;if(e.borderOptions?.hasBorder){const t={top:R(e.borderOptions,"top"),right:R(e.borderOptions,"right"),bottom:V(e.borderOptions,"bottom",this._hls),left:R(e.borderOptions,"left")},o=e.borderOptions.thickness||0,r=e.borderOptions.borderOuter?.thickness||0,n=e.borderOptions.borderInner?.thickness||0,s=e.borderOptions.noBorderThickness||o/4;v+=((t.top?o:s)-(t.bottom?o:s))/2+r+n+n/2,T+=((t.left?o:s)-(t.right?o:s))/2+r+n+n/2}e.verticalOffset&&(v-=e.verticalOffset),e.horizontalOffset&&(T-=e.horizontalOffset),this._instanceId=Po.instanceCount++,1===e.scale&&0===T&&0===v||this._innerQrGroup.setAttribute("transform",`translate(${T}, ${v}) scale(${e.scale})`),this._maskedQrGroup=this.document.createElementNS("http://www.w3.org/2000/svg","g"),this._maskedQrGroup.setAttribute("mask",`url(#qr-mask-${this._instanceId})`),this._maskedQrGroup.appendChild(this._innerQrGroup),this._element.appendChild(this._maskedQrGroup)}get element(){return this._element}get qrGroup(){return this._innerQrGroup||this._element}get width(){return this.finalWidth}get height(){return this.finalHeight}get svgSize(){return{width:this.options.width,height:this.options.height}}getElement(){return this._element}async drawQR(e){const t=e.getModuleCount(),o=parseInt(((t-17)/4).toFixed(0),10),r=this.options.dotsOptions.size;let n={hideXDots:0,hideYDots:0,width:0,height:0};if(this.qr=e,this.options.borderOptions?.hasBorder||this.drawBackground(),this.options.image){const e=await this.imageTools.getSize(this.options.image,this.options.imageOptions.crossOrigin),{imageOptions:s}=this.options;if(this.options.imageOptions.mode==N.background){const t=0,o=(this.finalWidth-2*t*r)*s.imageSize,i=(this.finalHeight-2*t*r)*s.imageSize;let{width:a,height:d}=e;d=d/a*o,a=o,d>i&&(a=a/d*i,d=i),n={hideXDots:0,hideYDots:0,width:a,height:d}}else{const s=this.options.imageOptions.imageSize*this.options.errorCorrectionPercent,i=p.getPatternPosition(o),a=Math.floor(s*(t*t-192-2*(t-16)-i.length**2*25));n=function({originalHeight:e,originalWidth:t,maxHiddenDots:o,maxHiddenAxisDots:r,dotSize:n,margin:s}){const i={x:0,y:0},a={x:0,y:0};if(e<=0||t<=0||o<=0||n<=0||4*s**2>o)return{height:0,width:0,hideYDots:0,hideXDots:0};r&&r%2==0&&(r=Math.max(1,r-1));const d=Math.max(t,e),l=Math.min(t,e);let c=0,u=(r||o)-2*s;do{const e=c+(u-c)/2;let t=Math.max(1,Math.ceil(e+2*s));t%2==0&&t++;let r=Math.max(1,Math.ceil(e*l/d+2*s));r%2==0&&r++,t*r>o?u=e:c=e}while(Math.abs(c-u)>.001);const p=c;let h=Math.max(1,Math.ceil(p+2*s));h%2==0&&h++;let m=Math.max(1,Math.ceil(p*l/d+2*s));m%2==0&&m++,t>e?(i.x=h,i.y=m):(i.x=m,i.y=h);const g=(i.x-2*s)*n,f=(i.y-2*s)*n;return a.x=g,a.y=g*e/t,a.y>f&&(a.y=f,a.x=f*t/e),{height:Math.round(a.y+2*s*n),width:Math.round(a.x+2*s*n),hideYDots:i.y,hideXDots:i.x}}({originalWidth:e.width,originalHeight:e.height,maxHiddenDots:a,maxHiddenAxisDots:t-14,dotSize:r,margin:this.options.imageOptions.margin})}}this.options.imageOptions.mode!=N.overlay&&this.options.image&&n.width>0&&n.height>0&&await this.drawImage({width:n.width,height:n.height,count:t,dotSize:r,radius:this.options.imageOptions?.radius}),this.drawDots(((e,o)=>!(this.options.imageOptions.mode==N.center&&e>=(t-n.hideXDots)/2&&e<(t+n.hideXDots)/2&&o>=(t-n.hideYDots)/2&&o<(t+n.hideYDots)/2)&&!(e<8&&o<8||e>=t-8&&o<8||o>=t-8&&e<8))),this.options.imageOptions.mode==N.overlay&&this.options.image&&n.width>0&&n.height>0&&await this.drawImage({width:n.width,height:n.height,count:t,dotSize:r}),this.drawCorners()}drawBackground(){const e=this.options;if(this._element&&e.backgroundOptions){const t=e.backgroundOptions.gradient,o=e.backgroundOptions.color;this.createColor({options:t,color:o,additionalRotation:0,x:0,y:0,height:e.height,width:e.width,name:`background-color-${this._instanceId}`});const r=Math.min(e.width,e.height),n=this.document.createElementNS("http://www.w3.org/2000/svg","rect");[this.backgroundMask,this.backgroundMaskGroup]=this.createMask(`mask-background-color-${this._instanceId}`),this.defs.appendChild(this.backgroundMask);const s=e.backgroundOptions?.round||0,i=this.roundValue(s);n.setAttribute("x",vo((e.width-r)/2)),n.setAttribute("y",vo((e.height-r)/2)),n.setAttribute("width",vo(r)),n.setAttribute("height",vo(r)),n.setAttribute("rx",vo(r/2*i)),this.backgroundMaskGroup.appendChild(n)}}drawBackgroundForBorder(e,t){const o=this.options;if(o.backgroundOptions){const r=o.backgroundOptions.gradient,n=o.backgroundOptions.color||"#ffffff",s=Math.min(o.width,o.height)-2*e,i=(o.width-s)/2,a=(o.height-s)/2,d=t-e,l=this.createColor({options:r,borderOptions:o.borderOptions,color:n,additionalRotation:0,x:i,y:a,height:s,width:s,name:`background-color-${this._instanceId}`,returnSVGGroup:!0}),c=this.document.createElementNS("http://www.w3.org/2000/svg","rect");return[this.backgroundMask,this.backgroundMaskGroup]=this.createMask(`mask-background-color-${this._instanceId}`),this.defs.appendChild(this.backgroundMask),c.setAttribute("x",vo(i)),c.setAttribute("y",vo(a)),c.setAttribute("width",vo(s)),c.setAttribute("height",vo(s)),c.setAttribute("rx",vo(d)),this.backgroundMaskGroup.appendChild(c),l}}drawDots(e){if(!this.qr)throw new Error("QR code is not defined");const t=this.options,o=this.qr.getModuleCount();if(o>t.width||o>t.height)throw new Error("The canvas is too small");const r=t.dotsOptions.size;let n=Math.min(t.width,t.height);t.imageOptions.mode==N.background&&(n-=2*r*(t.imageOptions.margin||0));const s=Math.floor((t.width-o*r)/2);let i=Math.floor((t.height-o*r)/2);if(t.offset){const e=(t.height-o*r)/2;i+=Math.min(Math.abs(t.offset),e)*Math.sign(t.offset)}let a=new Zo(t.dotsOptions.type,this.document);const d=new Zo(L.tinySquare,this.document),l=new Zo(L.square,this.document);[this.dotsMask,this.dotsMaskGroup]=this.createMask(`mask-dot-color-${this._instanceId}`),this.defs.appendChild(this.dotsMask),t.imageOptions.mode==N.background&&([this.lightDotsMask,this.lightDotsMaskGroup]=this.createMask(`mask-light-dot-color-${this._instanceId}`),this.defs.appendChild(this.lightDotsMask));let c=0,u=o;t.shape===X.circle?(c=Math.floor((n/r-o-2)/2),u=o+2*c):t.imageOptions.mode==N.background&&(c=1,u=o+2*c);const h=s-c*r,m=i-c*r,g=h,f=m,b=o+2*c,y=new Array(u),O=Math.floor(u/2);for(let r=0;r<u;r++){y[r]=new Array(u);for(let n=0;n<u;n++)if(r>c-1&&r<u-c&&n>c-1&&n<u-c){const t=r-c,o=n-c;e&&!e(t,o)?y[r][n]=void 0:y[r][n]=!!this.qr.isDark(o,t)}else t.shape===X.circle&&Math.sqrt((r-O)*(r-O)+(n-O)*(n-O))>O?y[r][n]=void 0:y[r][n]=r!=c-1&&r!=u-c&&n!=c-1&&n!=u-c?this.qr.isDark(n-2*c<0?n:n>=o?n-2*c:n-c,r-2*c<0?r:r>=o?r-2*c:r-c):(n==c-1&&(r<c+8||r>u-c-9)||n==u-c&&r<c+8||r==c-1&&(n<c+8||n>u-c-9)||r==u-c&&n<c+8)&&void 0}const S=(o-17)/4,C=p.getPatternPosition(S);for(let e=0;e<u;e++){const t=C.find((t=>e-c>t-3&&e-c<t+3));for(let o=0;o<u;o++){const n=C.find((e=>o-c>e-3&&o-c<e+3));null!=y[e][o]&&(this.lightDotsMask&&(a=t&&n&&(t!=C[0]&&n!=C[0]||n!=C[0]&&n!=C[C.length-1]||t!=C[0]&&t!=C[C.length-1])?l:d),y[e][o]?(a.draw({x:h+e*r,y:m+o*r,size:r,getNeighbor:(t,r)=>!0===y[e+t]?.[o+r]}),a.element&&this.dotsMaskGroup&&this.dotsMaskGroup.appendChild(a.element)):this.lightDotsMask&&(a.draw({x:h+e*r,y:m+o*r,size:r,getNeighbor:(t,r)=>!1===y[e+t]?.[o+r]}),a.element&&this.lightDotsMaskGroup&&this.lightDotsMaskGroup.appendChild(a.element)))}}this.lightDotsMask&&this.createColor({color:t.imageOptions.backgroundColor,additionalRotation:0,x:g,y:f,height:b*r,width:b*r,name:`light-dot-color-${this._instanceId}`}),this.createColor({options:t.dotsOptions?.gradient,color:t.dotsOptions.color,additionalRotation:0,x:g,y:f,height:b*r,width:b*r,name:`dot-color-${this._instanceId}`})}drawCorners(){if(!this.qr)throw new Error("QR code is not defined");const e=this.qrGroup,t=this.options;if(!e)throw new Error("Element code is not defined");const o=this.qr.getModuleCount(),r=t.dotsOptions.size,n=7*r,s=3*r,i=Math.floor((t.width-o*r)/2);let a=Math.floor((t.height-o*r)/2);if(t.offset){const e=(t.height-o*r)/2,n=Math.min(Math.abs(t.offset),e)*Math.sign(t.offset);a+=n}[[0,0,0],[1,0,Math.PI/2],[0,1,-Math.PI/2]].forEach((([e,d,l])=>{const c=i+e*r*(o-7),u=a+d*r*(o-7);let p=this.dotsMask,h=this.dotsMaskGroup,m=this.dotsMask,g=this.dotsMaskGroup;if((t.cornersSquareOptions?.gradient||t.cornersSquareOptions?.color)&&([p,h]=this.createMask(`mask-corners-square-color-${e}-${d}-${this._instanceId}`),this.defs.appendChild(p),m=p,g=h,this.createColor({options:t.cornersSquareOptions?.gradient,color:t.cornersSquareOptions?.color,additionalRotation:l,x:c,y:u,height:n,width:n,name:`corners-square-color-${e}-${d}-${this._instanceId}`})),t.cornersSquareOptions?.type){const e=new Io(t.cornersSquareOptions.type,this.document);e.draw({x:c,y:u,size:n,rotation:l}),e.element&&h&&h.appendChild(e.element),e.fill&&this.lightDotsMaskGroup&&this.lightDotsMaskGroup.appendChild(e.fill)}else{const e=new Zo(t.dotsOptions.type,this.document);for(let t=0;t<Mo.length;t++)for(let o=0;o<Mo[t].length;o++)Mo[t]?.[o]?(e.draw({x:c+t*r,y:u+o*r,size:r,getNeighbor:(e,r)=>!!Mo[t+e]?.[o+r]}),e.element&&h&&h.appendChild(e.element)):this.lightDotsMask&&!Lo[t]?.[o]&&(e.draw({x:c+t*r,y:u+o*r,size:r,getNeighbor:(e,r)=>!Mo[t+e]?.[o+r]&&!Lo[t+e]?.[o+r]}),e.element&&this.lightDotsMaskGroup&&this.lightDotsMaskGroup.appendChild(e.element));if(this.lightDotsMask)for(let t=-1;t<8;t++)for(let o=-1;o<8;o++)-1!=t&&7!=t&&-1!=o&&7!=o||(e.draw({x:c+t*r,y:u+o*r,size:r,getNeighbor:(e,r)=>{const n=t+e,s=o+r;return n>=-1&&n<=7&&s>=-1&&s<=7&&(-1==n||7==n||-1==s||7==s)}}),e.element&&this.lightDotsMaskGroup&&this.lightDotsMaskGroup.appendChild(e.element))}if((t.cornersDotOptions?.gradient||t.cornersDotOptions?.color)&&([m,g]=this.createMask(`mask-corners-dot-color-${e}-${d}-${this._instanceId}`),this.defs.appendChild(m),this.createColor({options:t.cornersDotOptions?.gradient,color:t.cornersDotOptions?.color,additionalRotation:l,x:c+2*r,y:u+2*r,height:s,width:s,name:`corners-dot-color-${e}-${d}-${this._instanceId}`})),t.cornersDotOptions?.type){const e=new Do(t.cornersDotOptions.type,this.document);e.draw({x:c+2*r,y:u+2*r,size:s,rotation:l}),e.element&&g&&g.appendChild(e.element)}else{const e=new Zo(t.dotsOptions.type,this.document);for(let t=0;t<Lo.length;t++)for(let o=0;o<Lo[t].length;o++)Lo[t]?.[o]&&(e.draw({x:c+t*r,y:u+o*r,size:r,getNeighbor:(e,r)=>!!Lo[t+e]?.[o+r]}),e.element&&g&&g.appendChild(e.element))}}))}async drawImage({width:e,height:t,count:o,dotSize:r,radius:n}){const s=this.options,i=Math.floor((s.width-o*r)/2);let a=Math.floor((s.height-o*r)/2);if(s.offset){const e=(s.height-o*r)/2;a+=Math.min(Math.abs(s.offset),e)*Math.sign(s.offset)}let d=s.imageOptions.margin*r;s.imageOptions.mode==N.background&&(d=0);const l=i+d+(o*r-e)/2,c=a+d+(o*r-t)/2,u=e-2*d,p=t-2*d;let h=null;try{"string"==typeof s.image?h=await Jo(s.image,s.imageOptions.crossOrigin):s.image&&(h=await this.imageTools.toDataURL(s.image)),"string"!=typeof s.image||h||(console.warn("Direct image fetch failed, attempting proxy..."),h=await Yo(s.image))}catch(e){if(console.warn("[QRCodeJs] Error fetching image directly:",e),"string"==typeof s.image)try{console.warn("[QRCodeJs] Direct image fetch failed via error, attempting proxy..."),h=await Yo(s.image)}catch(e){console.warn("[QRCodeJs] Failed to load image via proxy:",e)}}h||(console.warn("[QRCodeJs] Failed to load image directly and via proxy. Using fallback SVG."),h=Po.FALLBACK_IMAGE_DATA_URL);let m=null;if(n){m=`clip-path-image-${this._instanceId}`;const e=this.document.createElementNS("http://www.w3.org/2000/svg","clipPath");e.setAttribute("id",m);const t=this.document.createElementNS("http://www.w3.org/2000/svg","rect");t.setAttribute("x",vo(l)),t.setAttribute("y",vo(c)),t.setAttribute("width",vo(u)),t.setAttribute("height",vo(p));const o="number"==typeof n?`${n}px`:n;t.setAttribute("rx",o),t.setAttribute("ry",o),e.appendChild(t),this.defs.appendChild(e)}if(s.imageOptions.backgroundColor){const e=this.document.createElementNS("http://www.w3.org/2000/svg","rect");e.setAttribute("x",vo(l)),e.setAttribute("y",vo(c)),e.setAttribute("width",vo(u)),e.setAttribute("height",vo(p)),m&&e.setAttribute("clip-path",`url(#${m})`);const t=Ro(s.imageOptions.backgroundColor);e.setAttribute("fill",t.value),t.alpha<1&&e.setAttribute("opacity",t.alpha.toFixed(7)),this.qrGroup.appendChild(e)}const g=this.document.createElementNS("http://www.w3.org/2000/svg","image");if(g.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",h),g.setAttribute("x",vo(l)),g.setAttribute("y",vo(c)),g.setAttribute("id",`qr-image-${this._instanceId}`),g.setAttribute("width",`${vo(u)}px`),g.setAttribute("height",`${vo(p)}px`),g.setAttribute("preserveAspectRatio","xMidYMid meet"),s.imageOptions?.padding){const e=s.imageOptions.padding;g.setAttribute("x",vo(l+e)),g.setAttribute("y",vo(c+e)),g.setAttribute("width",`${vo(u-2*e)}px`),g.setAttribute("height",`${vo(p-2*e)}px`)}m&&g.setAttribute("clip-path",`url(#${m})`),this.qrGroup.appendChild(g)}createColor({options:e,borderOptions:t,color:o,additionalRotation:r,x:n,y:s,height:i,width:a,name:d,returnSVGGroup:l=!1}){const c=a>i?a:i,u=this.document.createElementNS("http://www.w3.org/2000/svg","rect");if(u.setAttribute("x",vo(n)),u.setAttribute("y",vo(s)),u.setAttribute("height",vo(i)),u.setAttribute("width",vo(a)),u.setAttribute("style",`mask:url(#mask-${d}-${this._instanceId})`),e){let o;if(e.type===M.radial){o=this.document.createElementNS("http://www.w3.org/2000/svg","radialGradient"),o.setAttribute("id",d+"-"+this._instanceId),o.setAttribute("gradientUnits","userSpaceOnUse");let e=n+a/2,r=s+i/2;if(t){const o=t.thickness/2,d=2;R(t,"top")&&!V(t,"bottom",this._hls)?r=s+o*d+i/2:!R(t,"top")&&V(t,"bottom",this._hls)&&(r=s-o*d+i/2),R(t,"right")&&!R(t,"left")?e=n-o*d+a/2:!R(t,"right")&&R(t,"left")&&(e=n+o*d+a/2)}o.setAttribute("fx",vo(e)),o.setAttribute("fy",vo(r)),o.setAttribute("cx",vo(n+a/2)),o.setAttribute("cy",vo(s+i/2)),o.setAttribute("r",vo(c/2))}else{const t=((e.rotation||0)+r)%(2*Math.PI),l=(t+2*Math.PI)%(2*Math.PI);let c=n+a/2,u=s+i/2,p=n+a/2,h=s+i/2;l>=0&&l<=.25*Math.PI||l>1.75*Math.PI&&l<=2*Math.PI?(c-=a/2,u-=i/2*Math.tan(t),p+=a/2,h+=i/2*Math.tan(t)):l>.25*Math.PI&&l<=.75*Math.PI?(u-=i/2,c-=a/2/Math.tan(t),h+=i/2,p+=a/2/Math.tan(t)):l>.75*Math.PI&&l<=1.25*Math.PI?(c+=a/2,u+=i/2*Math.tan(t),p-=a/2,h-=i/2*Math.tan(t)):l>1.25*Math.PI&&l<=1.75*Math.PI&&(u+=i/2,c+=a/2/Math.tan(t),h-=i/2,p-=a/2/Math.tan(t)),o=this.document.createElementNS("http://www.w3.org/2000/svg","linearGradient"),o.setAttribute("id",d+"-"+this._instanceId),o.setAttribute("gradientUnits","userSpaceOnUse"),o.setAttribute("x1",vo(c)),o.setAttribute("y1",vo(u)),o.setAttribute("x2",vo(p)),o.setAttribute("y2",vo(h))}e.colorStops.forEach((e=>{const t=this.document.createElementNS("http://www.w3.org/2000/svg","stop");t.setAttribute("offset",`${vo(100*e.offset)}%`);const r=Ro(e.color);t.setAttribute("stop-color",r.value),r.alpha<1&&t.setAttribute("stop-opacity",r.alpha.toFixed(7)),o.appendChild(t)})),u.setAttribute("fill",`url(#${d}-${this._instanceId})`),this.defs.appendChild(o)}else if(o){const e=Ro(o);u.setAttribute("fill",e.value),e.alpha<1&&u.setAttribute("opacity",e.alpha.toFixed(7))}if(l)return u;d.startsWith("background-color")?this._element.insertBefore(u,this._maskedQrGroup):this.qrGroup.appendChild(u)}createMask(e){const t=`${e}-${this._instanceId}`,o=this.options,r=this.document.createElementNS("http://www.w3.org/2000/svg","mask");r.setAttribute("id",t),r.setAttribute("maskUnits","userSpaceOnUse"),r.setAttribute("x","0"),r.setAttribute("y","0"),r.setAttribute("width",vo(o.width)),r.setAttribute("height",vo(o.height));const n=this.document.createElementNS("http://www.w3.org/2000/svg","g");return n.setAttribute("fill","#fff"),r.appendChild(n),[r,n]}}Po.instanceCount=0,Po.FALLBACK_IMAGE_DATA_URL="data:image/png;base64,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";const Go={id:"classicDark",name:"Classic Dark",style:{primaryColor:"#ffffff",secondaryColor:"#ffffff",thirdColor:"#bdc3c7",backgroundColor:"#000000",dotShape:L.square,cornerSquareShape:G.square,cornerDotShape:P.square}},Xo={id:"modernDark",name:"Modern Dark",style:{primaryColor:"#2ecc71",secondaryColor:"#3498db",thirdColor:"#f1c40f",backgroundColor:"#2c3e50",dotShape:L.dot,cornerSquareShape:G.rounded,cornerDotShape:P.dot}},No={id:"roundedDark",name:"Rounded Dark",style:{primaryColor:"#3498db",secondaryColor:"#2ecc71",thirdColor:"#e74c3c",backgroundColor:"#2c3e50",dotShape:L.rounded,cornerSquareShape:G.rounded,cornerDotShape:P.dot}},zo={id:"vibrantDark",name:"Vibrant Dark",style:{primaryColor:"#f39c12",secondaryColor:"#9b59b6",thirdColor:"#1abc9c",backgroundColor:"#212121",dotShape:L.rounded,cornerSquareShape:G.rounded,cornerDotShape:P.dot}},Fo={id:"neonDark",name:"Neon Dark",style:{primaryColor:"#f1c40f",secondaryColor:"#e74c3c",thirdColor:"#3498db",backgroundColor:"#000000",dotShape:L.rounded,cornerSquareShape:G.rounded,cornerDotShape:P.dot}},Uo={id:"sunsetDark",name:"Sunset Dark",style:{primaryColor:"#e67e22",secondaryColor:"#8e44ad",thirdColor:"#16a085",backgroundColor:"#000000",dotShape:L.dot,cornerSquareShape:G.rounded,cornerDotShape:P.dot}},Ko={id:"oceanicDark",name:"Oceanic Dark",style:{primaryColor:"#3498db",secondaryColor:"#1abc9c",thirdColor:"#ecf0f1",backgroundColor:"#2c3e50",dotShape:L.rounded,cornerSquareShape:G.square,cornerDotShape:P.dot}},Ho={id:"boldDark",name:"Bold Dark",style:{primaryColor:"#e74c3c",secondaryColor:"#9b59b6",thirdColor:"#2ecc71",backgroundColor:"#000000",dotShape:L.square,cornerSquareShape:G.rounded,cornerDotShape:P.square}},_o={id:"twilightDark",name:"Twilight Dark",style:{primaryColor:"#8e44ad",secondaryColor:"#f39c12",thirdColor:"#16a085",backgroundColor:"#000000",dotShape:L.rounded,cornerSquareShape:G.rounded,cornerDotShape:P.dot}},Qo={id:"coralDark",name:"Coral Dark",style:{primaryColor:"#1abc9c",secondaryColor:"#e74c3c",thirdColor:"#f1c40f",backgroundColor:"#000000",dotShape:L.rounded,cornerSquareShape:G.rounded,cornerDotShape:P.dot}},$o={id:"midnightSunsetDark",name:"Midnight Sunset Dark",style:{primaryColor:"#9b59b6",secondaryColor:"#f1c40f",thirdColor:"#1abc9c",backgroundColor:"#000000",dotShape:L.square,cornerSquareShape:G.square,cornerDotShape:P.square}},er={id:"citrusDark",name:"Citrus Dark",style:{primaryColor:"#f39c12",secondaryColor:"#2ecc71",thirdColor:"#ecf0f1",backgroundColor:"#34495e",dotShape:L.dot,cornerSquareShape:G.rounded,cornerDotShape:P.dot}},tr={id:"frostDark",name:"Frost Dark",style:{primaryColor:"#3498db",secondaryColor:"#ecf0f1",thirdColor:"#e74c3c",backgroundColor:"#00000",dotShape:L.dot,cornerSquareShape:G.rounded,cornerDotShape:P.square}},or={id:"neonDark",name:"Neon dark",style:{primaryColor:"#00e676",secondaryColor:"#E67E22",thirdColor:"#0288d1",backgroundColor:"#212121",dotShape:L.rounded,cornerSquareShape:G.rounded,cornerDotShape:P.dot}},rr=[Go,Xo,No,zo,Fo,Uo,Ko,Ho,_o,Qo,$o,er,tr,{id:"turquoiseSunDark",name:"Turquoise Sun Dark",style:{primaryColor:"#1abc9c",secondaryColor:"#3498db",thirdColor:"#f1c40f",backgroundColor:"#2c3e50",dotShape:L.rounded,cornerSquareShape:G.square,cornerDotShape:P.dot}},or,{id:"emeraldBloomDark",name:"Emerald Bloom Dark",style:{primaryColor:"#2ecc71",secondaryColor:"#9b59b6",thirdColor:"#e74c3c",backgroundColor:"#000000",dotShape:L.dot,cornerSquareShape:G.rounded,cornerDotShape:P.square}},{id:"customBorderBlueDark",name:"Custom Border Blue Dark",style:{primaryColor:"#3498db",secondaryColor:"#2980b9",thirdColor:"#1abc9c",backgroundColor:"#2c3e50",dotShape:L.rounded,cornerSquareShape:G.square,cornerDotShape:P.dot,borderColor:"#34495e",borderFontColor:"#ecf0f1"}},{id:"customBorderGreenDark",name:"Custom Border Green Dark",style:{primaryColor:"#2ecc71",secondaryColor:"#27ae60",thirdColor:"#16a085",backgroundColor:"#1B5E20",dotShape:L.square,cornerSquareShape:G.rounded,cornerDotShape:P.square,borderColor:"#2E7D32",borderFontColor:"#ffffff"}}],nr={id:"classic",name:"Classic",style:{primaryColor:"#000000",secondaryColor:"#000000",thirdColor:"#757575",backgroundColor:"#ffffff",dotShape:L.square,cornerSquareShape:G.square,cornerDotShape:P.square}},sr={id:"modern",name:"Modern",style:{primaryColor:"#4CAF50",secondaryColor:"#007fff",thirdColor:"#d81b60",backgroundColor:"#ffffff",dotShape:L.dot,cornerSquareShape:G.rounded,cornerDotShape:P.dot}},ir={id:"rounded",name:"Rounded",style:{primaryColor:"#007bff",secondaryColor:"#4CAF50",thirdColor:"#d32f2f",backgroundColor:"#ffffff",dotShape:L.rounded,cornerSquareShape:G.rounded,cornerDotShape:P.dot}},ar={id:"vibrant",name:"Vibrant",style:{primaryColor:"#ff5722",secondaryColor:"#3f51b5",thirdColor:"#2e7d32",backgroundColor:"#ffffff",dotShape:L.rounded,cornerSquareShape:G.rounded,cornerDotShape:P.dot}},dr={id:"pastel",name:"Pastel",style:{primaryColor:"#f48fb1",secondaryColor:"#26C6DA",thirdColor:"#00695c",backgroundColor:"#f5f5f5",dotShape:L.dot,cornerSquareShape:G.square,cornerDotShape:P.square}},lr={id:"earthy",name:"Earthy",style:{primaryColor:"#795548",secondaryColor:"#4db6ac",thirdColor:"#8e24aa",backgroundColor:"#efebe9",dotShape:L.square,cornerSquareShape:G.square,cornerDotShape:P.square}},cr={id:"sunset",name:"Sunset",style:{primaryColor:"#bf360c",secondaryColor:"#ab47bc",thirdColor:"#00796b",backgroundColor:"#fff3e0",dotShape:L.dot,cornerSquareShape:G.rounded,cornerDotShape:P.dot}},ur={id:"oceanic",name:"Oceanic",style:{primaryColor:"#0288d1",secondaryColor:"#26a69a",thirdColor:"#6a1b9a",backgroundColor:"#e0f7fa",dotShape:L.rounded,cornerSquareShape:G.square,cornerDotShape:P.dot}},pr={id:"bold",name:"Bold",style:{primaryColor:"#d50000",secondaryColor:"#6200ea",thirdColor:"#388e3c",backgroundColor:"#fafafa",dotShape:L.square,cornerSquareShape:G.rounded,cornerDotShape:P.square}},hr={id:"limeGlow",name:"Lime Glow",style:{primaryColor:"#afb42b",secondaryColor:"#536dfe",thirdColor:"#c62828",backgroundColor:"#fffde7",dotShape:L.dot,cornerSquareShape:G.rounded,cornerDotShape:P.dot}},mr={id:"twilight",name:"Twilight",style:{primaryColor:"#4527a0",secondaryColor:"#d84315",thirdColor:"#00796b",backgroundColor:"#eceff1",dotShape:L.rounded,cornerSquareShape:G.rounded,cornerDotShape:P.dot}},gr={id:"meadow",name:"Meadow",style:{primaryColor:"#388e3c",secondaryColor:"#689f38",thirdColor:"#ad1457",backgroundColor:"#f1f8e9",dotShape:L.dot,cornerSquareShape:G.square,cornerDotShape:P.square}},fr={id:"coral",name:"Coral",style:{primaryColor:"#c2185b",secondaryColor:"#00838f",thirdColor:"#f57f17",backgroundColor:"#ffebee",dotShape:L.rounded,cornerSquareShape:G.rounded,cornerDotShape:P.dot}},br={id:"midnightsunset",name:"Midnight Sunset",style:{primaryColor:"#5c6bc0",secondaryColor:"#fbc02d",thirdColor:"#00695c",dotShape:L.square,cornerSquareShape:G.square,cornerDotShape:P.square}},yr={id:"citrus",name:"Citrus",style:{primaryColor:"#f57c00",secondaryColor:"#558b2f",thirdColor:"#6d4c41",backgroundColor:"#fff8e1",dotShape:L.dot,cornerSquareShape:G.rounded,cornerDotShape:P.dot}},Or={id:"dusk",name:"Dusk",style:{primaryColor:"#6a1b9a",secondaryColor:"#e65100",thirdColor:"#2e7d32",backgroundColor:"#d7ccc8",dotShape:L.rounded,cornerSquareShape:G.square,cornerDotShape:P.dot}},Sr={id:"frost",name:"Frost",style:{primaryColor:"#0277bd",secondaryColor:"#37474f",thirdColor:"#c2185b",backgroundColor:"#e1f5fe",dotShape:L.dot,cornerSquareShape:G.rounded,cornerDotShape:P.square}},Cr={id:"autumn",name:"Autumn",style:{primaryColor:"#d84315",secondaryColor:"#827717",thirdColor:"#4a148c",backgroundColor:"#efebe9",dotShape:L.square,cornerSquareShape:G.rounded,cornerDotShape:P.dot}},kr={id:"turquoiseSun",name:"Turquoise Sun",style:{primaryColor:"#1abc9c",secondaryColor:"#3498db",thirdColor:"#f1c40f",backgroundColor:"#ffffff",dotShape:L.rounded,cornerSquareShape:G.square,cornerDotShape:P.dot}},wr={id:"emeraldBloom",name:"Emerald Bloom",style:{primaryColor:"#2ecc71",secondaryColor:"#9b59b6",thirdColor:"#c0392b",backgroundColor:"#ecf0f1",dotShape:L.dot,cornerSquareShape:G.rounded,cornerDotShape:P.square}},Ar={id:"seaLilac",name:"Sea Lilac",style:{primaryColor:"#16a085",secondaryColor:"#8e44ad",thirdColor:"#95a5a6",backgroundColor:"#ecf0f1",dotShape:L.square,cornerSquareShape:G.rounded,cornerDotShape:P.square}},Tr={id:"belizePumpkin",name:"Belize Pumpkin",style:{primaryColor:"#2980b9",secondaryColor:"#d35400",thirdColor:"#7f8c8d",backgroundColor:"#ecf0f1",dotShape:L.dot,cornerSquareShape:G.square,cornerDotShape:P.dot}},vr={id:"midnightGlow",name:"Midnight Glow",style:{primaryColor:"#2c3e50",secondaryColor:"#f39c12",thirdColor:"#1abc9c",backgroundColor:"#ecf0f1",dotShape:L.rounded,cornerSquareShape:G.rounded,cornerDotShape:P.dot}},qr=[nr,sr,ir,ar,dr,lr,cr,ur,pr,hr,mr,gr,fr,{id:"customBorderBlue",name:"Custom Border Blue",style:{primaryColor:"#3498db",secondaryColor:"#2980b9",thirdColor:"#1abc9c",backgroundColor:"#ecf0f1",dotShape:L.rounded,cornerSquareShape:G.square,cornerDotShape:P.dot,borderColor:"#2c3e50",borderRadius:"20%",borderFontColor:"#ecf0f1"}},{id:"customBorderGreen",name:"Custom Border Green",style:{primaryColor:"#2ecc71",secondaryColor:"#27ae60",thirdColor:"#16a085",backgroundColor:"#f0fdf4",dotShape:L.square,cornerSquareShape:G.rounded,cornerDotShape:P.square,borderColor:"#1D8348",borderFontColor:"#ffffff"}},br,yr,Or,Sr,Cr,kr,wr,Ar,Tr,vr,{id:"asphaltEmerald",name:"Asphalt Emerald",style:{primaryColor:"#34495e",secondaryColor:"#2ecc71",thirdColor:"#f39c12",backgroundColor:"#ffffff"}},{id:"wisteriaDusk",name:"Wisteria Dusk",style:{primaryColor:"#8e44ad",secondaryColor:"#2c3e50",thirdColor:"#27ae60",backgroundColor:"#ecf0f1"}},{id:"sunRiver",name:"Sun River",style:{primaryColor:"#f1c40f",secondaryColor:"#3498db",thirdColor:"#95a5a6",backgroundColor:"#ffffff"}},{id:"forest",name:"Forest",style:{primaryColor:"#1abc9c",secondaryColor:"#2ecc71",thirdColor:"#27ae60",backgroundColor:"#ecf0f1"}},{id:"cosmic",name:"Cosmic",style:{primaryColor:"#f1c40f",secondaryColor:"#1abc9c",thirdColor:"#e74c3c",backgroundColor:"#2c3e50"}},{id:"radiant",name:"Radiant",style:{primaryColor:"#e74c3c",secondaryColor:"#f1c40f",thirdColor:"#2ecc71",backgroundColor:"#ecf0f1"}},{id:"marine",name:"Marine",style:{primaryColor:"#3498db",secondaryColor:"#2980b9",thirdColor:"#16a085",backgroundColor:"#ecf0f1"}},{id:"inverse",name:"Inverse",style:{primaryColor:"#ecf0f1",secondaryColor:"#bdc3c7",thirdColor:"#95a5a6",backgroundColor:"#2c3e50"}},{id:"wetCarrot",name:"Wet Carrot",style:{primaryColor:"#34495e",secondaryColor:"#e67e22",thirdColor:"#e74c3c",backgroundColor:"#bdc3c7"}},{id:"pomegranateSky",name:"Pomegranate Sky",style:{primaryColor:"#e74c3c",secondaryColor:"#3498db",thirdColor:"#9b59b6",backgroundColor:"#bdc3c7"}},...rr];function Dr(e){return qr.find((t=>t.name.toLowerCase()===e.toLowerCase()))}function Ir(e){return qr.find((t=>t.id===e))}const Zr={hasBorder:!0,thickness:30,radius:"0",borderOuter:{thickness:0},borderInner:{thickness:0}},Wr={id:"square-border-thin",name:"Square Border (Thin)",options:{borderOptions:{...Zr,thickness:40,radius:"10%",decorations:{top:{enableText:!0,offset:2,curveAdjustment:0,curveDisabled:!0,style:{fontSize:21,fontWeight:"bold"},value:"SCAN ME"},left:{disabled:!0},right:{disabled:!0},bottom:{disabled:!0}}}}},Rr={id:"square-border-medium",name:"Square Border (Medium)",options:{borderOptions:{...Zr,thickness:20,radius:"15%"}}},Vr={id:"square-border-thick",name:"Square Border (Thick)",options:{borderOptions:{...Zr,thickness:20,radius:"2%"}}},Er={id:"rounded-border-thin-slight",name:"Rounded Border (Thin, Slight)",options:{borderOptions:{...Zr,thickness:10,radius:"10%"}}},jr={id:"rounded-border-medium-medium",name:"Rounded Border (Medium)",options:{borderOptions:{...Zr,thickness:10,radius:"35%"}}},xr={id:"rounded-border-thick-high",name:"Rounded Border (Thick, High)",options:{borderOptions:{...Zr,thickness:30,radius:"50"}}},Br={id:"rounded-border-thick-text",name:"Rounded Border (Thick, Text)",options:{borderOptions:{...Zr,thickness:50,borderOuter:{thickness:10},radius:"50%",decorations:{top:{enableText:!0,curveAdjustment:0,offset:4,style:{fontSize:22,fontWeight:"bold"},value:"SCAN ME TO FOLLOW"},bottom:{enableText:!0,offset:2,curveAdjustment:0,style:{fontSize:22,fontWeight:"bold"},value:"YOUR NAME HERE"}}}}},Jr={id:"rounded-border-outside-top-bottom-text",name:"Rounded Border Outside (Top & Bottom Text)",options:{borderOptions:{...Zr,thickness:50,radius:"30",borderOuter:{thickness:10},borderInner:{thickness:6},decorations:{left:{disabled:!0},right:{disabled:!0},top:{enableText:!0,curveAdjustment:0,style:{fontSize:22,fontWeight:"bold"},value:"SCAN ME TO FOLLOW"},bottom:{enableText:!0,offset:-2,curveAdjustment:0,style:{fontSize:22,fontWeight:"bold"},value:"YOUR NAME HERE"}}}}},Yr={id:"rounded-border-outside-left-right-text",name:"Rounded Border Outside (Left & Right Text)",options:{margin:5,borderOptions:{...Zr,thickness:50,radius:"20%",inner:{radius:"20"},borderOuter:{thickness:10},decorations:{top:{disabled:!0},bottom:{disabled:!0},left:{enableText:!0,offset:5,style:{fontSize:20,fontWeight:"bold"},value:"SCAN TO FOLLOW"},right:{enableText:!0,offset:6,curveAdjustment:0,style:{fontSize:20,fontWeight:"bold"},value:"YOUR NAME HERE"}}}}},Mr={id:"rounded-border-top-bottom-text",name:"Rounded Border (Top & Bottom Text)",options:{borderOptions:{...Zr,thickness:50,radius:"30",decorations:{left:{disabled:!0},right:{disabled:!0},top:{enableText:!0,curveAdjustment:0,style:{fontSize:22,fontWeight:"bold"},value:"SCAN ME TO FOLLOW"},bottom:{enableText:!0,offset:-2,curveAdjustment:0,style:{fontSize:22,fontWeight:"bold"},value:"YOUR NAME HERE"}}}}},Lr={id:"rounded-border-left-right-text",name:"Rounded Border (Left & Right Text)",options:{margin:5,borderOptions:{...Zr,thickness:50,radius:"20%",inner:{radius:"20"},decorations:{top:{disabled:!0},bottom:{disabled:!0},left:{enableText:!0,offset:5,style:{fontSize:22,fontWeight:"bold"},value:"SCAN TO FOLLOW"},right:{enableText:!0,offset:5,curveAdjustment:0,style:{fontSize:22,fontWeight:"bold"},value:"YOUR NAME HERE"}}}}},Pr={id:"double-square-border-thin",name:"Double Square Border Inside (Thin)",options:{borderOptions:{...Zr,thickness:14,radius:"2%",borderInner:{thickness:4}}}},Gr={id:"double-square-border-medium",name:"Double Square Border Outside (Medium)",options:{borderOptions:{...Zr,thickness:20,radius:"2%",borderOuter:{thickness:4}}}},Xr={id:"double-rounded-border-medium",name:"Double Rounded Border (Medium)",options:{borderOptions:{...Zr,thickness:60,radius:"25",borderOuter:{thickness:10},borderInner:{thickness:10},decorations:{bottom:{disabled:!0},left:{disabled:!0},right:{disabled:!0},top:{enableText:!0,curveAdjustment:0,offset:4,curveDisabled:!0,value:"SCAN ME",style:{fontSize:30}}}}}},Nr={id:"double-rounded-border-thick",name:"Double Rounded Border Outside (Thick)",options:{borderOptions:{...Zr,thickness:40,radius:"20",borderOuter:{thickness:6},decorations:{top:{disabled:!0},left:{disabled:!0},bottom:{enableText:!0,curveAdjustment:0,offset:4,value:"SCAN ME",style:{fontSize:20}},right:{enableText:!0,curveAdjustment:0,offset:4,value:"YOUR NAME",style:{fontSize:20}}}}}},zr={id:"inner-square-border-medium",name:"Inner Square Border Inside (Medium)",options:{borderOptions:{...Zr,thickness:10,radius:"2%",borderInner:{thickness:12}}}},Fr={id:"outer-rounded-border-medium",name:"Outer Rounded Border (Medium)",options:{borderOptions:{...Zr,inner:{radius:"20%"},thickness:15,radius:"25%",borderOuter:{thickness:20}}}},Ur={id:"rounded-inner-offset-top-text",name:"Rounded Inner Offset Top Text",options:{borderOptions:{...Zr,thickness:25,radius:"30%",borderInner:{thickness:6},decorations:{top:{enableText:!0,offset:3,curveAdjustment:0,curveDisabled:!1,style:{fontSize:20},value:"SCAN ME"}}}}},Kr={id:"square-thick-outer-thin-inner",name:"Square Thick Outer/Thin Inner",options:{borderOptions:{...Zr,thickness:10,radius:"50%",inner:{radius:"12%"},borderOuter:{thickness:10},borderInner:{thickness:15},decorations:{bottom:{enableText:!0,offset:-3,curveAdjustment:0,curveDisabled:!0,style:{fontSize:18,fontWeight:"normal"}}}}}},Hr={id:"square-thick-outer-round",name:"Square Thick Outer Round",options:{borderOptions:{...Zr,thickness:25,radius:"50%",inner:{radius:"15%"},borderOuter:{thickness:10},borderInner:{thickness:20},decorations:{bottom:{enableText:!0,offset:-3,curveAdjustment:0,curveDisabled:!0,style:{fontSize:18,fontWeight:"normal"}}}}}},_r={id:"square-thick-outer-thin-inner-bottom-text",name:"Square Thick Outer/Thin Inner Bottom Text",options:{borderOptions:{...Zr,thickness:10,radius:"4%",inner:{radius:"12%"},borderOuter:{thickness:5},borderInner:{thickness:20},decorations:{bottom:{disabled:!0},left:{disabled:!0},right:{disabled:!0},top:{disabled:!0}}}}},Qr=[Wr,Rr,Vr,Er,jr,xr,Br,Mr,Lr,Jr,Yr,Pr,Gr,Xr,Nr,zr,Fr,Ur,Kr,Hr,{id:"pill-curved-text-top-bottom",name:"Pill Curved Text Top/Bottom",options:{borderOptions:{...Zr,thickness:35,borderInner:{thickness:10},radius:"50%",decorations:{top:{enableText:!0,offset:2,curveAdjustment:0,curveDisabled:!1,style:{fontSize:20},value:"TOP CURVED TEXT"},bottom:{enableText:!0,offset:-2,curveAdjustment:0,curveDisabled:!1,style:{fontSize:20},value:"BOTTOM CURVED TEXT"}}}}},{id:"double-varied-thickness-top-text",name:"Double Varied Thickness Top Text",options:{borderOptions:{...Zr,thickness:25,radius:"10%",borderOuter:{thickness:8},borderInner:{thickness:4},decorations:{top:{enableText:!0,offset:3,curveAdjustment:0,curveDisabled:!0,style:{fontSize:19},value:"IMPORTANT INFO"},bottom:{enableText:!0,curveAdjustment:0,curveDisabled:!0,style:{fontSize:19},value:"SCAN ME"}}}}},{id:"outer-border-white-rounded-text",name:"Outer Border White Rounded Text",options:{borderOptions:{...Zr,thickness:25,color:"#ffffff",radius:"25%",borderOuter:{thickness:10},decorations:{top:{disabled:!0},left:{disabled:!0},right:{disabled:!0},bottom:{enableText:!0,offset:10,curveAdjustment:0,curveDisabled:!1,style:{fontSize:18,fontWeight:"bold",letterSpacing:1,fontColor:"#000000"},value:"SCAN TO FOLLOW"}}}}},{id:"inner-border-white-rounded-text",name:"Inner Border White Rounded Text",options:{borderOptions:{...Zr,thickness:25,color:"#ffffff",radius:"25%",borderInner:{thickness:10},decorations:{top:{disabled:!0},left:{disabled:!0},right:{disabled:!0},bottom:{enableText:!0,offset:-4,style:{fontSize:18,fontWeight:"bold",letterSpacing:1,fontColor:"#000000"},value:"SCAN TO FOLLOW"}}}}},{id:"inner-offset-square-text",name:"Inner Offset Square Text",options:{borderOptions:{...Zr,thickness:30,radius:"16%",borderInner:{thickness:10},decorations:{top:{disabled:!0},left:{disabled:!0},right:{disabled:!0},bottom:{enableText:!0,offset:2,curveAdjustment:0,curveDisabled:!0,style:{fontSize:22},value:"SCAN ME"}}}}},{id:"thin-rounded-all-sides-text",name:"Thin Rounded All Sides Text",options:{borderOptions:{...Zr,borderInner:{thickness:10},thickness:14,radius:"20%",decorations:{top:{enableText:!0,value:"TOP",style:{fontSize:12},offset:3},bottom:{enableText:!0,value:"BOTTOM",style:{fontSize:12},offset:1},left:{enableText:!0,value:"LEFT",style:{fontSize:12},offset:4},right:{enableText:!0,value:"RIGHT",style:{fontSize:12},offset:4}}}}},{id:"thick-square-double-text",name:"Thick Square Double Text",options:{borderOptions:{...Zr,thickness:25,radius:"2%",borderOuter:{thickness:5},borderInner:{thickness:5},decorations:{left:{disabled:!0},right:{disabled:!0},top:{enableText:!0,value:"HEADER",offset:4,style:{fontSize:18}},bottom:{enableText:!0,value:"FOOTER",offset:4,style:{fontSize:18}}}}}},{id:"high-radius-thin-double-curved-text",name:"High Radius Thin Double Curved Text",options:{margin:-10,borderOptions:{...Zr,thickness:26,radius:"35%",borderOuter:{thickness:4},borderInner:{thickness:13},decorations:{top:{enableText:!0,value:"TOP TEXT",offset:6,curveDisabled:!1,style:{fontSize:16}},right:{disabled:!0},left:{disabled:!0},bottom:{enableText:!0,value:"BOTTOM TEXT",curveDisabled:!1,offset:4,style:{fontSize:16}}}}}},_r,{id:"minimalist-thin-square",name:"Minimalist Thin Square",options:{borderOptions:{...Zr,thickness:5,radius:"4%"}}},{id:"minimalist-thin-rounded",name:"Minimalist Thin Rounded",options:{borderOptions:{...Zr,thickness:5,radius:"25%"}}},{id:"chunky-square-border-text",name:"Chunky Square Border Text",options:{borderOptions:{...Zr,thickness:60,radius:"5%",borderOuter:{thickness:6},borderInner:{thickness:6},decorations:{top:{enableText:!0,value:"SCAN ME",style:{fontSize:18,fontWeight:"bold"},offset:4},left:{enableText:!0,value:"LEFT TEXT",style:{fontSize:18,fontWeight:"bold"},offset:4},right:{enableText:!0,value:"RIGHT TEXT",style:{fontSize:18,fontWeight:"bold"},offset:4},bottom:{enableText:!0,value:"BOTTOM TEXT",style:{fontSize:18,fontWeight:"bold"},offset:4}}}}},{id:"chunky-rounded-border",name:"Chunky Rounded Border",options:{borderOptions:{...Zr,thickness:60,radius:"50%",inner:{radius:"15%"},borderOuter:{thickness:6},borderInner:{thickness:6},decorations:{top:{enableText:!0,value:"SCAN ME",style:{fontSize:18,fontWeight:"bold"},offset:4},left:{enableText:!0,value:"LEFT TEXT",style:{fontSize:18,fontWeight:"bold"},offset:4},right:{enableText:!0,value:"RIGHT TEXT",style:{fontSize:18,fontWeight:"bold"},offset:4},bottom:{enableText:!0,value:"BOTTOM TEXT",style:{fontSize:18,fontWeight:"bold"},offset:4}}}}},{id:"double-thick-main-thin-subs-rounded",name:"Double Thick Main Thin Subs Rounded",options:{borderOptions:{...Zr,thickness:25,radius:"20%",borderOuter:{thickness:6},borderInner:{thickness:6},decorations:{top:{enableText:!0,value:"SCAN ME",style:{fontSize:16,fontWeight:"bold"},offset:5},left:{enableText:!0,value:"LEFT TEXT",style:{fontSize:16,fontWeight:"bold"},offset:6},right:{enableText:!0,value:"RIGHT TEXT",style:{fontSize:16,fontWeight:"bold"},offset:6},bottom:{enableText:!0,value:"BOTTOM TEXT",style:{fontSize:16,fontWeight:"bold"},offset:4}}}}},{id:"double-thick-main-thick-subs-square",name:"Double Thick Main Thick Subs Square",options:{borderOptions:{...Zr,thickness:25,radius:"4%",borderOuter:{thickness:6},borderInner:{thickness:10},decorations:{top:{enableText:!0,style:{fontSize:16,fontWeight:"bold"},offset:5,value:"SCAN ME"},left:{enableText:!0,style:{fontSize:16,fontWeight:"bold"},offset:7,value:"LEFT TEXT"},right:{enableText:!0,style:{fontSize:16,fontWeight:"bold"},offset:7,value:"RIGHT TEXT"},bottom:{enableText:!0,style:{fontSize:16,fontWeight:"bold"},offset:5,value:"BOTTOM TEXT"}}}}},{id:"inner-thick-rounded",name:"Inner Thick Rounded",options:{borderOptions:{...Zr,thickness:0,radius:"35%",borderOuter:{thickness:0},borderInner:{thickness:35},inner:{radius:"15%"},decorations:{top:{enableText:!0,value:"SCAN ME",style:{fontSize:18,fontWeight:"bold",fontColor:"#000"},offset:36},left:{enableText:!0,value:"LEFT TEXT",style:{fontSize:18,fontWeight:"bold",fontColor:"#000"},offset:38},right:{enableText:!0,value:"RIGHT TEXT",style:{fontSize:18,fontWeight:"bold",fontColor:"#000"},offset:36},bottom:{enableText:!0,value:"BOTTOM TEXT",style:{fontSize:18,fontWeight:"bold",fontColor:"#000"},offset:33}}}}},{id:"outer-thick-square",name:"Outer Thick Square",options:{borderOptions:{...Zr,thickness:10,radius:"2%",borderOuter:{thickness:20},borderInner:{thickness:0}}}},{id:"pill-double-thin-text",name:"Pill Double Thin Text",options:{margin:5,borderOptions:{...Zr,thickness:30,radius:"50%",borderOuter:{thickness:6},borderInner:{thickness:6},decorations:{top:{disabled:!1,enableText:!0,value:"SCAN ME",offset:5,style:{fontSize:18,fontWeight:"bold"}},left:{disabled:!0},right:{disabled:!0},bottom:{disabled:!1,enableText:!0,value:"BOTTOM TEXT",offset:3,style:{fontSize:18,fontWeight:"bold"}}}}}},{id:"double-thin-circle-inner-rounded",name:"Double Thin Circle Inner Rounded",options:{margin:5,borderOptions:{...Zr,thickness:20,radius:"10%",inner:{radius:"25%"},borderOuter:{thickness:4},borderInner:{thickness:4},decorations:{top:{disabled:!1},left:{disabled:!0},right:{disabled:!0},bottom:{disabled:!1}}}}},{id:"square-top-bottom-text",name:"Square Top/Bottom Text",options:{borderOptions:{...Zr,thickness:30,radius:"10%",decorations:{top:{enableText:!0,value:"SCAN CODE",offset:1,style:{fontSize:16}},bottom:{enableText:!0,value:"VISIT OUR SITE",style:{fontSize:16}}}}}},{id:"rounded-left-right-text",name:"Rounded Left/Right Text",options:{margin:5,borderOptions:{...Zr,thickness:30,radius:"20%",decorations:{top:{disabled:!0},bottom:{disabled:!0},left:{enableText:!0,offset:2,value:"LEFT TEXT",style:{fontSize:19}},right:{enableText:!0,offset:2,value:"RIGHT TEXT",style:{fontSize:19}}}}}},{id:"square-left-text-only",name:"Square Left Text Only",options:{margin:5,borderOptions:{...Zr,borderInner:{thickness:10},thickness:45,radius:"5%",decorations:{left:{enableText:!0,value:"SCAN ME",offset:2,style:{fontSize:20,fontWeight:"bold",letterSpacing:1}},top:{disabled:!0},bottom:{disabled:!0},right:{disabled:!0}}}}},{id:"square-right-text-only",name:"Square Right Text Only",options:{margin:5,borderOptions:{...Zr,borderInner:{thickness:10},thickness:45,radius:"5%",decorations:{right:{enableText:!0,value:"WEBSITE.COM",offset:2,style:{fontSize:20,fontWeight:"bold",letterSpacing:1}},top:{disabled:!0},bottom:{disabled:!0},left:{disabled:!0}}}}},{id:"rounded-left-right-different-text",name:"Rounded Left+Right Different Text",options:{margin:20,borderOptions:{...Zr,borderInner:{thickness:10},thickness:40,radius:"35%",decorations:{left:{enableText:!0,value:"SCAN",style:{fontSize:19,fontWeight:"bold"}},right:{enableText:!0,value:"NOW",style:{fontSize:19,fontWeight:"bold"}},top:{disabled:!0},bottom:{disabled:!0}}}}},{id:"square-left-right-identical-text",name:"Square Left+Right Identical Text",options:{margin:5,borderOptions:{...Zr,borderInner:{thickness:10},thickness:40,radius:"2%",decorations:{left:{enableText:!0,value:"QR CODE",style:{fontSize:18,fontWeight:"bold"}},right:{enableText:!0,value:"QR CODE",style:{fontSize:18,fontWeight:"bold"}},top:{disabled:!0},bottom:{disabled:!0}}}}},{id:"pill-left-right-bottom-text",name:"Pill Left Right Bottom Text",options:{margin:20,borderOptions:{...Zr,borderInner:{thickness:10},thickness:45,inner:{radius:"45%",verticalOffset:-5},radius:"50%",decorations:{top:{disabled:!0},left:{enableText:!0,value:"FOLLOW US",offset:5,style:{fontSize:18,fontWeight:"bold"}},right:{enableText:!0,value:"CONTACT US",offset:5,style:{fontSize:18,fontWeight:"bold"}},bottom:{enableText:!0,value:"WEBSITE.COM",style:{fontSize:18,fontWeight:"bold"}}}}}},{id:"pill-left-right-top-text",name:"Pill Left Right Top Text",options:{margin:20,borderOptions:{...Zr,borderInner:{thickness:10},thickness:45,inner:{radius:"45%",verticalOffset:-5},radius:"50%",decorations:{top:{enableText:!0,value:"WEBSITE.COM",offset:5,curveDisabled:!1,style:{fontSize:20,fontWeight:"bold"}},left:{enableText:!0,value:"FOLLOW US",offset:5,style:{fontSize:18,fontWeight:"bold"}},right:{enableText:!0,value:"SHARE LINK",offset:5,style:{fontSize:18,fontWeight:"bold"}},bottom:{disabled:!0}}}}}];function $r(e){return Qr.find((t=>t.name.toLowerCase()===e.toLowerCase()))}function en(e){return Qr.find((t=>t.id===e))}const tn=[{id:"scan-me-top",name:"Scan Me (Top)",options:{topValue:"SCAN ME"}},{id:"scan-me-bottom",name:"Scan Me (Bottom)",options:{bottomValue:"SCAN ME"}},{id:"visit-website-top",name:"Visit Website (Top)",options:{topValue:"Visit Our Website"}},{id:"visit-website-bottom",name:"Visit Website (Bottom)",options:{bottomValue:"Visit Our Website"}},{id:"follow-us-left",name:"Follow Us (Left)",options:{leftValue:"Follow Us!"}},{id:"follow-us-right",name:"Follow Us (Right)",options:{rightValue:"Follow Us!"}},{id:"contact-info-bottom",name:"Contact Info (Bottom)",options:{bottomValue:"Contact Information"}},{id:"scan-to-pay-top",name:"Scan To Pay (Top)",options:{topValue:"Scan to Pay"}},{id:"product-details-bottom",name:"Product Details (Bottom)",options:{bottomValue:"View Product Details"}},{id:"event-info-top-bottom",name:"Event Info (Top/Bottom)",options:{topValue:"EVENT DETAILS",bottomValue:"Scan for Info"}},{id:"lost-found-all-sides",name:"Lost & Found (All Sides)",options:{topValue:"LOST?",bottomValue:"SCAN TO RETURN",leftValue:"If Found",rightValue:"Please Scan"}},{id:"scan-for-wifi-top",name:"Scan for WiFi (Top)",options:{topValue:"Scan for WiFi Access"}},{id:"get-directions-bottom",name:"Get Directions (Bottom)",options:{bottomValue:"Get Directions Here"}},{id:"special-offer-top",name:"Special Offer (Top)",options:{topValue:"SPECIAL OFFER INSIDE!"}},{id:"scan-to-download-bottom",name:"Scan to Download (Bottom)",options:{bottomValue:"Scan to Download App"}},{id:"register-now-top",name:"Register Now (Top)",options:{topValue:"REGISTER NOW"}},{id:"scan-to-learn-more",name:"Scan to Learn More (Bottom)",options:{bottomValue:"Scan to Learn More"}},{id:"scan-me-animated-top",name:"Scan Me Animated (Top - Placeholder)",options:{topValue:"SCAN ME! ->"}},{id:"your-text-here-all",name:"Your Text Here (All Sides)",options:{topValue:"Top Text Here",bottomValue:"Bottom Text Here",leftValue:"Left Text",rightValue:"Right Text"}},{id:"website-url-bottom",name:"Website URL (Bottom)",options:{bottomValue:"www.example.com"}},{id:"call-to-action-top-bottom",name:"Call To Action (Top/Bottom)",options:{topValue:"SCAN NOW!",bottomValue:"LIMITED TIME"}},{id:"empty-text-options",name:"Empty Text Options (Clear All)",options:{topValue:null,bottomValue:null,leftValue:null,rightValue:null}}];function on(e){return tn.find((t=>t.name.toLowerCase()===e.toLowerCase()))}function rn(e){return tn.find((t=>t.id===e))}var nn;!function(e){e.svg="svg",e.png="png",e.jpeg="jpeg",e.webp="webp"}(nn||(nn={})),Object.assign(b.stringToBytesFuncs,{UTF8:e=>function(e){const t=[];for(let o=0;o<e.length;o++){let r=e.charCodeAt(o);r<128?t.push(r):r<2048?t.push(192|r>>6,128|63&r):r<55296||r>=57344?t.push(224|r>>12,128|r>>6&63,128|63&r):(o++,r=65536+((1023&r)<<10|1023&e.charCodeAt(o)),t.push(240|r>>18,128|r>>12&63,128|r>>6&63,128|63&r))}return t}(e)});let sn=class t{get size(){return this.qrSVG?{width:this.qrSVG.width,height:this.qrSVG.height}:void 0}constructor(e,o=!1){this._svgId=`qr-svg-${Math.random().toString(36).substring(2,9)}`;const r=e;let n=ee;t._selectedTemplate&&(n="id"in t._selectedTemplate&&"options"in t._selectedTemplate?t._selectedTemplate.options:t._selectedTemplate);let s={};t._selectedBorder&&(s="id"in t._selectedBorder&&"options"in t._selectedBorder?t._selectedBorder.options:t._selectedBorder);let i={};if(t._selectedStyle){const{isValid:e,errors:o}=H(t._selectedStyle);e?i=K(t._selectedStyle):console.warn("Invalid static style options ignored during instantiation:",o)}let a={};t._selectedImage&&!t._selectedImageOverride&&(a={image:t._selectedImage});const d={};if(t._selectedText&&!t._selectedTextOverride){let e=null;if(e="id"in t._selectedText&&"options"in t._selectedText?t._selectedText.options:t._selectedText,e){d.borderOptions||(d.borderOptions={}),d.borderOptions.decorations||(d.borderOptions.decorations={});const t=d.borderOptions.decorations;void 0!==e.topValue&&(t.top={value:null===e.topValue?void 0:e.topValue,enableText:null!==e.topValue}),void 0!==e.leftValue&&(t.left={value:null===e.leftValue?void 0:e.leftValue,enableText:null!==e.leftValue}),void 0!==e.rightValue&&(t.right={value:null===e.rightValue?void 0:e.rightValue,enableText:null!==e.rightValue}),void 0!==e.bottomValue&&(t.bottom={value:null===e.bottomValue?void 0:e.bottomValue,enableText:null!==e.bottomValue})}}const l=S(n,s,d,i,a,r),{warnings:c,validatedOptions:u}=Ao(l);this.options=F(u);const p={};if(t._selectedImageOverride&&t._selectedImage&&(p.image=t._selectedImage),t._selectedTextOverride&&t._selectedText){p.borderOptions||(p.borderOptions={}),p.borderOptions.decorations||(p.borderOptions.decorations={});let e=null;if(e="id"in t._selectedText&&"options"in t._selectedText?t._selectedText.options:t._selectedText,e){const t=p.borderOptions.decorations;void 0!==e.topValue&&(t.top={value:null===e.topValue?void 0:e.topValue,enableText:null!==e.topValue}),void 0!==e.leftValue&&(t.left={value:null===e.leftValue?void 0:e.leftValue,enableText:null!==e.leftValue}),void 0!==e.rightValue&&(t.right={value:null===e.rightValue?void 0:e.rightValue,enableText:null!==e.rightValue}),void 0!==e.bottomValue&&(t.bottom={value:null===e.bottomValue?void 0:e.bottomValue,enableText:null!==e.bottomValue})}}return Object.keys(p).length>0&&(this.options=F(S(this.options,p))),c.length>0&&this._logValidationWarnings("QR Code Options Validation Warnings:",c),this.update(),this}static setTemplate(e){if(null===e)return t._selectedTemplate=null,t;if("string"==typeof e){const o=e,r=So(o);r?t._selectedTemplate=r:(console.warn(`QR Code template name "${o}" not found. Using base template.`),t._selectedTemplate=ee)}else t._selectedTemplate=e;return t}static setTemplateId(e){if(null===e)return t._selectedTemplate=null,t;const o=Co(e);return o?t._selectedTemplate=o:(console.warn(`QR Code template ID "${e}" not found in setTemplateId. Using default.`),t._selectedTemplate=ee),t}static getTemplates(){return{findTextTemplateById:rn,findTextByName:on,findTemplateByName:So,findTemplateById:Co,findBorderById:en,findBorderByName:$r,findStyleById:Ir,findStyleByName:Dr,baseTemplates:Oo,borderTemplates:Qr,styleTemplates:qr,textTemplates:tn}}static setStyle(e){if(null===e)return t._selectedStyle=null,t;let o=null;if("string"==typeof e){const r=e,n=Dr(r);n?(o=n.style,t._selectedStyle=o):(console.warn(`QR Code style name "${r}" not found in setStyle. Ignoring.`),t._selectedStyle=null)}else{const{isValid:r,errors:n}=H(e);r?(o=e,t._selectedStyle=o):(console.warn("Invalid style options object provided to setStyle:",n),t._selectedStyle=null)}return t}static setBorder(e){if(null===e)return t._selectedBorder=null,t;if("string"==typeof e){const o=e,r=$r(o);r?t._selectedBorder=r:(console.warn(`QR Code border template name "${o}" not found. Ignoring.`),t._selectedBorder=null)}else t._selectedBorder={borderOptions:e};return t}static setBorderId(e){if(null===e)return t._selectedBorder=null,t;const o=en(e);return o?t._selectedBorder=o:(console.warn(`QR Code border template ID "${e}" not found in setBorderId. Ignoring.`),t._selectedBorder=null),t}static setStyleId(e){if(null===e)return t._selectedStyle=null,t;const o=Ir(e);return o?t._selectedStyle=o.style:(console.warn(`QR Code style ID "${e}" not found in setStyleId. Ignoring.`),t._selectedStyle=null),t}static setImage(e,o){return t._selectedImage=e,t._selectedImageOverride=!!o?.override,t}static setText(e,o){if(null===e)t._selectedText=null;else if("string"==typeof e){const o=on(e);o?t._selectedText=o:(console.warn(`QR Code text template name "${e}" not found. Ignoring.`),t._selectedText=null)}else t._selectedText=e;return t._selectedTextOverride=!!o?.override,t}static setTextId(e,o){if(null===e)t._selectedText=null;else{const o=rn(e);console.log("foundTextTemplate",o),o?t._selectedText=o:(console.warn(`QR Code text template ID "${e}" not found in setTextId. Ignoring.`),t._selectedText=null)}return t._selectedTextOverride=!!o?.override,t}getOptions(){return this.options}async update(e){const t=e?S(this.options,e):this.options,{warnings:o,validatedOptions:r}=Ao(t);if(o.length>0&&this._logValidationWarnings("QR Code JS Options Update Validation Warnings:",o),this.options=F(r),!this.options.data)return void console.warn("QR Code update called without data.");this.options.stringToBytesFuncs&&(Object.assign(b.stringToBytesFuncs,this.options.stringToBytesFuncs),delete this.options.stringToBytesFuncs),this.qr=new b(this.options.qrOptions.typeNumber,this.options.qrOptions.errorCorrectionLevel);const n=this.options.qrOptions?.mode||function(e){switch(!0){case/^[0-9]*$/.test(e):return f.numeric;case/^[0-9A-Z $%*+\-./:]*$/.test(e):return f.alphanumeric;case/[^\u0000-\u00ff]/.test(e):return f.unicode;default:return f.byte}}(this.options.data);this.qr.addData(this.options.data,n),this.qr.make(),await this._setupSvgAsync(),this.svgDrawingPromise&&await this.svgDrawingPromise;const s=this.qrSVG?.element;if(this.container&&s){const e=this.container.querySelector(`#${this._svgId}`);e?e!==s&&this.container.replaceChild(s,e):this.container.appendChild(s)}}append(e){return e?(this.container=e,this.qrSVG?.element&&!e.querySelector(`#${this._svgId}`)&&e.appendChild(this.qrSVG.element),this):(console.warn("QR Code append could not find container."),this)}async applyExtension(e){if(!e)throw new Error("Extension function should be defined.");this.extension=e,await this.update()}async deleteExtension(){this.extension=void 0,await this.update()}async serialize(e=!1){if(!this.qr)throw new Error("QR code is empty");if(this.qrSVG?.element||await this._setupSvgAsync(),this.svgDrawingPromise&&await this.svgDrawingPromise,!this.qrSVG?.element)return;let t=this.qrSVG.element;if(e){const e=this.qrSVG.element.cloneNode(!0);e.style.filter="invert(1)",t=e}let o=(new XMLSerializer).serializeToString(t);return o='<?xml version="1.0" standalone="no"?>\r\n'+o,o}async _setupSvgAsync(){if(!this.qr)return;let e=this.qr.getModuleCount();this.options.imageOptions.mode===N.background&&this.options.shape!==X.circle&&(e+=2);let t=Math.ceil((this.options.shape===X.circle?Math.sqrt(1.8):1.1)*e);t%2==0&&(t-=1);let o=0;this.options.imageOptions.mode===N.background&&(o+=this.options.imageOptions.margin||0);const r=Math.ceil(this.options.dotsOptions.size*(t+2*o)),n=this.options.borderOptions;let s=0,i=0;const a={top:0,right:0,bottom:0,left:0},d={top:0,right:0,bottom:0,left:0},l={top:0,right:0,bottom:0,left:0},c=n?.noBorderThickness||n?.thickness?n.thickness/4:0;if(n?.hasBorder){const e=n.borderOuter?.thickness?2*n.borderOuter?.thickness:0,t=n.borderInner?.thickness?2*n.borderInner?.thickness:0;e>0&&(d.top=e/2,d.bottom=e/2,d.left=e/2,d.right=e/2),t>0&&(l.top=t/2,l.bottom=t/2,l.left=t/2,l.right=t/2),R(n,"left")?(a.left=n.thickness,s+=n.thickness):(a.left=c,s+=c),R(n,"right")?(a.right=n.thickness,s+=n.thickness):(a.right=c,s+=c),R(n,"top")?(a.top=n.thickness,i+=n.thickness):(a.top=c,i+=c),V(n,"bottom",this._hls())?(a.bottom=n.thickness,i+=n.thickness):(a.bottom=c,i+=c)}const u=r+s,p=r+i;this.qrSVG=new Po({...this.options,width:u,height:p,bordersMain:a,bordersOuter:d,bordersInner:l,errorCorrectionPercent:U[this.options.qrOptions.errorCorrectionLevel],hls:this._hls()}),this.qrSVG?.element?(this.qrSVG.element.id=this._svgId,this.svgDrawingPromise=this.qrSVG.drawQR(this.qr).then((()=>{this.qrSVG?.element&&(this.options.instanceId=this.qrSVG._instanceId,this.options.borderOptions?.hasBorder&&Y(this.options.borderOptions)(this.qrSVG.element,this.options,r,this.qrSVG.drawBackgroundForBorder.bind(this.qrSVG),a,d,l,c,this._hls),this.extension?.(this.qrSVG.element,this.options))})).catch((e=>{throw console.error("Error during SVG drawing or post-processing:",e),e}))):console.error("QRSVG element not created immediately after instantiation.")}async _drawToCanvasForValidation(t){const{width:o=300,height:r=300}=this.qrSVG?.svgSize??t??e,n=o,s=r,i=document.createElement("canvas");i.width=n,i.height=s;const a=await this.serialize();if(!a)throw new Error("Failed to serialize SVG.");const d="data:image/svg+xml;base64,"+btoa(a);return new Promise(((e,t)=>{const o=new Image;o.width=n,o.height=s,o.crossOrigin="Anonymous",o.onload=()=>{const r=i.getContext("2d");if(!r)return t(new Error("Could not get canvas 2D context"));r.drawImage(o,0,0,n,s),e(i)},o.onerror=o.onabort=t,o.src=d}))}async drawToCanvas(t){const{width:o=300,height:r=300}=this.qrSVG?.svgSize??t??e,n=1*o,s=1*r,i=document.createElement("canvas");i.width=n,i.height=s;const a=(async()=>{try{const e=await this.serialize();if(!e)return void console.warn("SVG serialization returned empty.");const t="data:image/svg+xml;base64,"+btoa(e),a=new Image;a.width=n,a.height=s,await new Promise(((e,d)=>{a.onload=()=>{const t=Math.ceil(2*Math.max(o,r)/Math.max(a.width,a.height));let l;try{l=new OffscreenCanvas(a.width*t*2,a.height*t*2)}catch(e){l=document.createElement("canvas"),l.width=a.width*t*2,l.height=a.height*t*2}const c=l.getContext("2d");if(!c)return d(new Error("Could not get OffscreenCanvas 2D context"));c.drawImage(a,0,0,l.width,l.height);const u=i.getContext("2d");if(!u)return d(new Error("Could not get canvas 2D context"));u.drawImage(l,0,0,l.width,l.height,0,0,n,s),e()},a.onerror=e=>d(new Error(`Image load error: ${e}`)),a.onabort=()=>d(new Error("Image load aborted")),a.src=t}))}catch(e){throw console.error("Error drawing to canvas:",e),e}})();return{canvas:i,canvasDrawingPromise:a}}downloadURI(e,t){const o=document.createElement("a");o.download=t,o.href=e,document.body.appendChild(o),o.click(),document.body.removeChild(o)}async download(e,t){if("undefined"==typeof Blob)throw new Error("Cannot download in Node.js environment");let o=nn.png,r="qr";if(e&&(e.name&&(r=e.name),e.extension&&(o=e.extension)),"svg"===o.toLowerCase()){const e=await this.serialize();if(!e)return;const t="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(e);this.downloadURI(t,`${r}.svg`)}else{const e=await this.drawToCanvas(t);if(!e)return;const{canvas:n,canvasDrawingPromise:s}=e;await s;const i=n.toDataURL(`image/${o}`);this.downloadURI(i,`${r}.${o}`)}}async createOptimizedQRCanvas(t){const{width:o=300,height:r=300}=this.qrSVG?.svgSize??t??e,n=document.createElement("canvas");n.width=o,n.height=r;const s=await this.serialize();if(!s)throw new Error("Failed to serialize SVG.");const i="data:image/svg+xml;base64,"+btoa(Array.from((new TextEncoder).encode(s)).map((e=>String.fromCharCode(e))).join(""));return new Promise(((e,t)=>{const s=new Image;s.width=o,s.height=r,s.crossOrigin="Anonymous",s.onload=()=>{const i=n.getContext("2d");if(!i)return t(new Error("Could not get canvas 2D context"));i.imageSmoothingEnabled=!1,i.drawImage(s,0,0,o,r),this.applyQRThreshold(n),e(n)},s.onerror=e=>t(new Error(`Image load error: ${e}`)),s.onabort=()=>t(new Error("Image load aborted")),s.src=i}))}applyQRThreshold(e){const t=e.getContext("2d");if(!t)return;const o=t.getImageData(0,0,e.width,e.height),r=o.data;for(let e=0;e<r.length;e+=4){const t=(r[e]+r[e+1]+r[e+2])/3<128?0:255;r[e]=r[e+1]=r[e+2]=t}t.putImageData(o,0,0)}_hls(){return!1}_logValidationWarnings(e,t){console.warn(e),t.forEach((e=>{console.warn(`option: ${e.path} - '${e.value}' : ${e.message}`)}))}};sn.version="0.10.1",sn._selectedTemplate=null,sn._selectedBorder=null,sn._selectedStyle=null,sn._selectedImage=null,sn._selectedImageOverride=!1,sn._selectedText=null,sn._selectedTextOverride=!1;const an=new TextEncoder,dn=new TextDecoder;function ln(e){if(Uint8Array.fromBase64)return Uint8Array.fromBase64("string"==typeof e?e:dn.decode(e),{alphabet:"base64url"});let t=e;t instanceof Uint8Array&&(t=dn.decode(t)),t=t.replace(/-/g,"+").replace(/_/g,"/").replace(/\s/g,"");try{return function(e){if(Uint8Array.fromBase64)return Uint8Array.fromBase64(e);const t=atob(e),o=new Uint8Array(t.length);for(let e=0;e<t.length;e++)o[e]=t.charCodeAt(e);return o}(t)}catch{throw new TypeError("The input to be decoded is not correctly encoded.")}}class cn extends Error{static code="ERR_JOSE_GENERIC";code="ERR_JOSE_GENERIC";constructor(e,t){super(e,t),this.name=this.constructor.name,Error.captureStackTrace?.(this,this.constructor)}}class un extends cn{static code="ERR_JWT_CLAIM_VALIDATION_FAILED";code="ERR_JWT_CLAIM_VALIDATION_FAILED";claim;reason;payload;constructor(e,t,o="unspecified",r="unspecified"){super(e,{cause:{claim:o,reason:r,payload:t}}),this.claim=o,this.reason=r,this.payload=t}}class pn extends cn{static code="ERR_JWT_EXPIRED";code="ERR_JWT_EXPIRED";claim;reason;payload;constructor(e,t,o="unspecified",r="unspecified"){super(e,{cause:{claim:o,reason:r,payload:t}}),this.claim=o,this.reason=r,this.payload=t}}class hn extends cn{static code="ERR_JOSE_ALG_NOT_ALLOWED";code="ERR_JOSE_ALG_NOT_ALLOWED"}class mn extends cn{static code="ERR_JOSE_NOT_SUPPORTED";code="ERR_JOSE_NOT_SUPPORTED"}class gn extends cn{static code="ERR_JWS_INVALID";code="ERR_JWS_INVALID"}class fn extends cn{static code="ERR_JWT_INVALID";code="ERR_JWT_INVALID"}class bn extends cn{static code="ERR_JWS_SIGNATURE_VERIFICATION_FAILED";code="ERR_JWS_SIGNATURE_VERIFICATION_FAILED";constructor(e="signature verification failed",t){super(e,t)}}function yn(e,t="algorithm.name"){return new TypeError(`CryptoKey does not support this operation, its ${t} must be ${e}`)}function On(e,t){return e.name===t}function Sn(e){return parseInt(e.name.slice(4),10)}function Cn(e,t,o){switch(t){case"HS256":case"HS384":case"HS512":{if(!On(e.algorithm,"HMAC"))throw yn("HMAC");const o=parseInt(t.slice(2),10);if(Sn(e.algorithm.hash)!==o)throw yn(`SHA-${o}`,"algorithm.hash");break}case"RS256":case"RS384":case"RS512":{if(!On(e.algorithm,"RSASSA-PKCS1-v1_5"))throw yn("RSASSA-PKCS1-v1_5");const o=parseInt(t.slice(2),10);if(Sn(e.algorithm.hash)!==o)throw yn(`SHA-${o}`,"algorithm.hash");break}case"PS256":case"PS384":case"PS512":{if(!On(e.algorithm,"RSA-PSS"))throw yn("RSA-PSS");const o=parseInt(t.slice(2),10);if(Sn(e.algorithm.hash)!==o)throw yn(`SHA-${o}`,"algorithm.hash");break}case"Ed25519":case"EdDSA":if(!On(e.algorithm,"Ed25519"))throw yn("Ed25519");break;case"ES256":case"ES384":case"ES512":{if(!On(e.algorithm,"ECDSA"))throw yn("ECDSA");const o=function(e){switch(e){case"ES256":return"P-256";case"ES384":return"P-384";case"ES512":return"P-521";default:throw new Error("unreachable")}}(t);if(e.algorithm.namedCurve!==o)throw yn(o,"algorithm.namedCurve");break}default:throw new TypeError("CryptoKey does not support this operation")}!function(e,t){if(!e.usages.includes(t))throw new TypeError(`CryptoKey does not support this operation, its usages must include ${t}.`)}(e,o)}function kn(e,t,...o){if((o=o.filter(Boolean)).length>2){const t=o.pop();e+=`one of type ${o.join(", ")}, or ${t}.`}else 2===o.length?e+=`one of type ${o[0]} or ${o[1]}.`:e+=`of type ${o[0]}.`;return null==t?e+=` Received ${t}`:"function"==typeof t&&t.name?e+=` Received function ${t.name}`:"object"==typeof t&&null!=t&&t.constructor?.name&&(e+=` Received an instance of ${t.constructor.name}`),e}function wn(e,t,...o){return kn(`Key for the ${e} algorithm must be `,t,...o)}function An(e){return"CryptoKey"===e?.[Symbol.toStringTag]}function Tn(e){return"KeyObject"===e?.[Symbol.toStringTag]}var vn=e=>An(e)||Tn(e);var qn=e=>{if("object"!=typeof(t=e)||null===t||"[object Object]"!==Object.prototype.toString.call(e))return!1;var t;if(null===Object.getPrototypeOf(e))return!0;let o=e;for(;null!==Object.getPrototypeOf(o);)o=Object.getPrototypeOf(o);return Object.getPrototypeOf(e)===o};const Dn=(e,t,o=0)=>{0===o&&(t.unshift(t.length),t.unshift(6));const r=e.indexOf(t[0],o);if(-1===r)return!1;const n=e.subarray(r,r+t.length);return n.length===t.length&&(n.every(((e,o)=>e===t[o]))||Dn(e,t,r+1))},In=async(e,t,o,r,n)=>{let s,i;const a=new Uint8Array(atob(o.replace(e,"")).split("").map((e=>e.charCodeAt(0))));switch(r){case"PS256":case"PS384":case"PS512":s={name:"RSA-PSS",hash:`SHA-${r.slice(-3)}`},i=["verify"];break;case"RS256":case"RS384":case"RS512":s={name:"RSASSA-PKCS1-v1_5",hash:`SHA-${r.slice(-3)}`},i=["verify"];break;case"RSA-OAEP":case"RSA-OAEP-256":case"RSA-OAEP-384":case"RSA-OAEP-512":s={name:"RSA-OAEP",hash:`SHA-${parseInt(r.slice(-3),10)||1}`},i=["encrypt","wrapKey"];break;case"ES256":s={name:"ECDSA",namedCurve:"P-256"},i=["verify"];break;case"ES384":s={name:"ECDSA",namedCurve:"P-384"},i=["verify"];break;case"ES512":s={name:"ECDSA",namedCurve:"P-521"},i=["verify"];break;case"ECDH-ES":case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":{const e=(e=>{switch(!0){case Dn(e,[42,134,72,206,61,3,1,7]):return"P-256";case Dn(e,[43,129,4,0,34]):return"P-384";case Dn(e,[43,129,4,0,35]):return"P-521";default:return}})(a);s=e?.startsWith("P-")?{name:"ECDH",namedCurve:e}:{name:"X25519"},i=[];break}case"Ed25519":case"EdDSA":s={name:"Ed25519"},i=["verify"];break;default:throw new mn('Invalid or unsupported "alg" (Algorithm) value')}return crypto.subtle.importKey(t,a,s,!0,i)};var Zn=async e=>{if(!e.alg)throw new TypeError('"alg" argument is required when "jwk.alg" is not present');const{algorithm:t,keyUsages:o}=function(e){let t,o;switch(e.kty){case"RSA":switch(e.alg){case"PS256":case"PS384":case"PS512":t={name:"RSA-PSS",hash:`SHA-${e.alg.slice(-3)}`},o=e.d?["sign"]:["verify"];break;case"RS256":case"RS384":case"RS512":t={name:"RSASSA-PKCS1-v1_5",hash:`SHA-${e.alg.slice(-3)}`},o=e.d?["sign"]:["verify"];break;case"RSA-OAEP":case"RSA-OAEP-256":case"RSA-OAEP-384":case"RSA-OAEP-512":t={name:"RSA-OAEP",hash:`SHA-${parseInt(e.alg.slice(-3),10)||1}`},o=e.d?["decrypt","unwrapKey"]:["encrypt","wrapKey"];break;default:throw new mn('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}break;case"EC":switch(e.alg){case"ES256":t={name:"ECDSA",namedCurve:"P-256"},o=e.d?["sign"]:["verify"];break;case"ES384":t={name:"ECDSA",namedCurve:"P-384"},o=e.d?["sign"]:["verify"];break;case"ES512":t={name:"ECDSA",namedCurve:"P-521"},o=e.d?["sign"]:["verify"];break;case"ECDH-ES":case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":t={name:"ECDH",namedCurve:e.crv},o=e.d?["deriveBits"]:[];break;default:throw new mn('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}break;case"OKP":switch(e.alg){case"Ed25519":case"EdDSA":t={name:"Ed25519"},o=e.d?["sign"]:["verify"];break;case"ECDH-ES":case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":t={name:e.crv},o=e.d?["deriveBits"]:[];break;default:throw new mn('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}break;default:throw new mn('Invalid or unsupported JWK "kty" (Key Type) Parameter value')}return{algorithm:t,keyUsages:o}}(e),r={...e};return delete r.alg,delete r.use,crypto.subtle.importKey("jwk",r,t,e.ext??!e.d,e.key_ops??o)};async function Wn(e,t,o){if(0!==e.indexOf("-----BEGIN PUBLIC KEY-----"))throw new TypeError('"spki" must be SPKI formatted string');return((e,t)=>In(/(?:-----(?:BEGIN|END) PUBLIC KEY-----|\s)/g,"spki",e,t))(e,t)}function Rn(e){return qn(e)&&"string"==typeof e.kty}let Vn;const En=async(e,t,o,r=!1)=>{Vn||=new WeakMap;let n=Vn.get(e);if(n?.[o])return n[o];const s=await Zn({...t,alg:o});return r&&Object.freeze(e),n?n[o]=s:Vn.set(e,{[o]:s}),s};var jn=async(e,t)=>{if(e instanceof Uint8Array)return e;if(An(e))return e;if(Tn(e)){if("secret"===e.type)return e.export();if("toCryptoKey"in e&&"function"==typeof e.toCryptoKey)try{return((e,t)=>{Vn||=new WeakMap;let o=Vn.get(e);if(o?.[t])return o[t];const r="public"===e.type,n=!!r;let s;if("x25519"===e.asymmetricKeyType){switch(t){case"ECDH-ES":case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":break;default:throw new TypeError("given KeyObject instance cannot be used for this algorithm")}s=e.toCryptoKey(e.asymmetricKeyType,n,r?[]:["deriveBits"])}if("ed25519"===e.asymmetricKeyType){if("EdDSA"!==t&&"Ed25519"!==t)throw new TypeError("given KeyObject instance cannot be used for this algorithm");s=e.toCryptoKey(e.asymmetricKeyType,n,[r?"verify":"sign"])}if("rsa"===e.asymmetricKeyType){let o;switch(t){case"RSA-OAEP":o="SHA-1";break;case"RS256":case"PS256":case"RSA-OAEP-256":o="SHA-256";break;case"RS384":case"PS384":case"RSA-OAEP-384":o="SHA-384";break;case"RS512":case"PS512":case"RSA-OAEP-512":o="SHA-512";break;default:throw new TypeError("given KeyObject instance cannot be used for this algorithm")}if(t.startsWith("RSA-OAEP"))return e.toCryptoKey({name:"RSA-OAEP",hash:o},n,r?["encrypt"]:["decrypt"]);s=e.toCryptoKey({name:t.startsWith("PS")?"RSA-PSS":"RSASSA-PKCS1-v1_5",hash:o},n,[r?"verify":"sign"])}if("ec"===e.asymmetricKeyType){const o=new Map([["prime256v1","P-256"],["secp384r1","P-384"],["secp521r1","P-521"]]).get(e.asymmetricKeyDetails?.namedCurve);if(!o)throw new TypeError("given KeyObject instance cannot be used for this algorithm");"ES256"===t&&"P-256"===o&&(s=e.toCryptoKey({name:"ECDSA",namedCurve:o},n,[r?"verify":"sign"])),"ES384"===t&&"P-384"===o&&(s=e.toCryptoKey({name:"ECDSA",namedCurve:o},n,[r?"verify":"sign"])),"ES512"===t&&"P-521"===o&&(s=e.toCryptoKey({name:"ECDSA",namedCurve:o},n,[r?"verify":"sign"])),t.startsWith("ECDH-ES")&&(s=e.toCryptoKey({name:"ECDH",namedCurve:o},n,r?[]:["deriveBits"]))}if(!s)throw new TypeError("given KeyObject instance cannot be used for this algorithm");return o?o[t]=s:Vn.set(e,{[t]:s}),s})(e,t)}catch(e){if(e instanceof TypeError)throw e}let o=e.export({format:"jwk"});return En(e,o,t)}if(Rn(e))return e.k?ln(e.k):En(e,e,t,!0);throw new Error("unreachable")};const xn=e=>e?.[Symbol.toStringTag],Bn=(e,t,o)=>{if(void 0!==t.use){let e;switch(o){case"sign":case"verify":e="sig";break;case"encrypt":case"decrypt":e="enc"}if(t.use!==e)throw new TypeError(`Invalid key for this operation, its "use" must be "${e}" when present`)}if(void 0!==t.alg&&t.alg!==e)throw new TypeError(`Invalid key for this operation, its "alg" must be "${e}" when present`);if(Array.isArray(t.key_ops)){let r;switch(!0){case"verify"===o:case"dir"===e:case e.includes("CBC-HS"):r=o;break;case e.startsWith("PBES2"):r="deriveBits";break;case/^A\d{3}(?:GCM)?(?:KW)?$/.test(e):r=!e.includes("GCM")&&e.endsWith("KW")?"unwrapKey":o;break;case"encrypt"===o:r="wrapKey";break;case"decrypt"===o:r=e.startsWith("RSA")?"unwrapKey":"deriveBits"}if(r&&!1===t.key_ops?.includes?.(r))throw new TypeError(`Invalid key for this operation, its "key_ops" must include "${r}" when present`)}return!0};var Jn=(e,t,o)=>{e.startsWith("HS")||"dir"===e||e.startsWith("PBES2")||/^A(?:128|192|256)(?:GCM)?(?:KW)?$/.test(e)||/^A(?:128|192|256)CBC-HS(?:256|384|512)$/.test(e)?((e,t,o)=>{if(!(t instanceof Uint8Array)){if(Rn(t)){if(function(e){return"oct"===e.kty&&"string"==typeof e.k}(t)&&Bn(e,t,o))return;throw new TypeError('JSON Web Key for symmetric algorithms must have JWK "kty" (Key Type) equal to "oct" and the JWK "k" (Key Value) present')}if(!vn(t))throw new TypeError(wn(e,t,"CryptoKey","KeyObject","JSON Web Key","Uint8Array"));if("secret"!==t.type)throw new TypeError(`${xn(t)} instances for symmetric algorithms must be of type "secret"`)}})(e,t,o):((e,t,o)=>{if(Rn(t))switch(o){case"decrypt":case"sign":if(function(e){return"oct"!==e.kty&&"string"==typeof e.d}(t)&&Bn(e,t,o))return;throw new TypeError("JSON Web Key for this operation be a private JWK");case"encrypt":case"verify":if(function(e){return"oct"!==e.kty&&void 0===e.d}(t)&&Bn(e,t,o))return;throw new TypeError("JSON Web Key for this operation be a public JWK")}if(!vn(t))throw new TypeError(wn(e,t,"CryptoKey","KeyObject","JSON Web Key"));if("secret"===t.type)throw new TypeError(`${xn(t)} instances for asymmetric algorithms must not be of type "secret"`);if("public"===t.type)switch(o){case"sign":throw new TypeError(`${xn(t)} instances for asymmetric algorithm signing must be of type "private"`);case"decrypt":throw new TypeError(`${xn(t)} instances for asymmetric algorithm decryption must be of type "private"`)}if("private"===t.type)switch(o){case"verify":throw new TypeError(`${xn(t)} instances for asymmetric algorithm verifying must be of type "public"`);case"encrypt":throw new TypeError(`${xn(t)} instances for asymmetric algorithm encryption must be of type "public"`)}})(e,t,o)},Yn=async(e,t,o)=>{if(t instanceof Uint8Array){if(!e.startsWith("HS"))throw new TypeError(((e,...t)=>kn("Key must be ",e,...t))(t,"CryptoKey","KeyObject","JSON Web Key"));return crypto.subtle.importKey("raw",t,{hash:`SHA-${e.slice(-3)}`,name:"HMAC"},!1,[o])}return Cn(t,e,o),t},Mn=async(e,t,o,r)=>{const n=await Yn(e,t,"verify");((e,t)=>{if(e.startsWith("RS")||e.startsWith("PS")){const{modulusLength:o}=t.algorithm;if("number"!=typeof o||o<2048)throw new TypeError(`${e} requires key modulusLength to be 2048 bits or larger`)}})(e,n);const s=((e,t)=>{const o=`SHA-${e.slice(-3)}`;switch(e){case"HS256":case"HS384":case"HS512":return{hash:o,name:"HMAC"};case"PS256":case"PS384":case"PS512":return{hash:o,name:"RSA-PSS",saltLength:parseInt(e.slice(-3),10)>>3};case"RS256":case"RS384":case"RS512":return{hash:o,name:"RSASSA-PKCS1-v1_5"};case"ES256":case"ES384":case"ES512":return{hash:o,name:"ECDSA",namedCurve:t.namedCurve};case"Ed25519":case"EdDSA":return{name:"Ed25519"};default:throw new mn(`alg ${e} is not supported either by JOSE or your javascript runtime`)}})(e,n.algorithm);try{return await crypto.subtle.verify(s,n,o,r)}catch{return!1}};async function Ln(e,t,o){if(!qn(e))throw new gn("Flattened JWS must be an object");if(void 0===e.protected&&void 0===e.header)throw new gn('Flattened JWS must have either of the "protected" or "header" members');if(void 0!==e.protected&&"string"!=typeof e.protected)throw new gn("JWS Protected Header incorrect type");if(void 0===e.payload)throw new gn("JWS Payload missing");if("string"!=typeof e.signature)throw new gn("JWS Signature missing or incorrect type");if(void 0!==e.header&&!qn(e.header))throw new gn("JWS Unprotected Header incorrect type");let r={};if(e.protected)try{const t=ln(e.protected);r=JSON.parse(dn.decode(t))}catch{throw new gn("JWS Protected Header is invalid")}if(!((...e)=>{const t=e.filter(Boolean);if(0===t.length||1===t.length)return!0;let o;for(const e of t){const t=Object.keys(e);if(o&&0!==o.size)for(const e of t){if(o.has(e))return!1;o.add(e)}else o=new Set(t)}return!0})(r,e.header))throw new gn("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");const n={...r,...e.header},s=((e,t,o,r,n)=>{if(void 0!==n.crit&&void 0===r?.crit)throw new e('"crit" (Critical) Header Parameter MUST be integrity protected');if(!r||void 0===r.crit)return new Set;if(!Array.isArray(r.crit)||0===r.crit.length||r.crit.some((e=>"string"!=typeof e||0===e.length)))throw new e('"crit" (Critical) Header Parameter MUST be an array of non-empty strings when present');let s;s=void 0!==o?new Map([...Object.entries(o),...t.entries()]):t;for(const t of r.crit){if(!s.has(t))throw new mn(`Extension Header Parameter "${t}" is not recognized`);if(void 0===n[t])throw new e(`Extension Header Parameter "${t}" is missing`);if(s.get(t)&&void 0===r[t])throw new e(`Extension Header Parameter "${t}" MUST be integrity protected`)}return new Set(r.crit)})(gn,new Map([["b64",!0]]),o?.crit,r,n);let i=!0;if(s.has("b64")&&(i=r.b64,"boolean"!=typeof i))throw new gn('The "b64" (base64url-encode payload) Header Parameter must be a boolean');const{alg:a}=n;if("string"!=typeof a||!a)throw new gn('JWS "alg" (Algorithm) Header Parameter missing or invalid');const d=((e,t)=>{if(void 0!==t&&(!Array.isArray(t)||t.some((e=>"string"!=typeof e))))throw new TypeError(`"${e}" option must be an array of strings`);if(t)return new Set(t)})("algorithms",o.algorithms);if(d&&!d.has(a))throw new hn('"alg" (Algorithm) Header Parameter value not allowed');if(i){if("string"!=typeof e.payload)throw new gn("JWS Payload must be a string")}else if("string"!=typeof e.payload&&!(e.payload instanceof Uint8Array))throw new gn("JWS Payload must be a string or an Uint8Array instance");let l=!1;"function"==typeof t&&(t=await t(r,e),l=!0),Jn(a,t,"verify");const c=function(...e){const t=e.reduce(((e,{length:t})=>e+t),0),o=new Uint8Array(t);let r=0;for(const t of e)o.set(t,r),r+=t.length;return o}(an.encode(e.protected??""),an.encode("."),"string"==typeof e.payload?an.encode(e.payload):e.payload);let u;try{u=ln(e.signature)}catch{throw new gn("Failed to base64url decode the signature")}const p=await jn(t,a);if(!await Mn(a,p,u,c))throw new bn;let h;if(i)try{h=ln(e.payload)}catch{throw new gn("Failed to base64url decode the payload")}else h="string"==typeof e.payload?an.encode(e.payload):e.payload;const m={payload:h};return void 0!==e.protected&&(m.protectedHeader=r),void 0!==e.header&&(m.unprotectedHeader=e.header),l?{...m,key:p}:m}const Pn=86400,Gn=/^(\+|\-)? ?(\d+|\d+\.\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)(?: (ago|from now))?$/i;var Xn=e=>{const t=Gn.exec(e);if(!t||t[4]&&t[1])throw new TypeError("Invalid time period format");const o=parseFloat(t[2]);let r;switch(t[3].toLowerCase()){case"sec":case"secs":case"second":case"seconds":case"s":r=Math.round(o);break;case"minute":case"minutes":case"min":case"mins":case"m":r=Math.round(60*o);break;case"hour":case"hours":case"hr":case"hrs":case"h":r=Math.round(3600*o);break;case"day":case"days":case"d":r=Math.round(o*Pn);break;case"week":case"weeks":case"w":r=Math.round(604800*o);break;default:r=Math.round(31557600*o)}return"-"===t[1]||"ago"===t[4]?-r:r};const Nn=e=>e.toLowerCase().replace(/^application\//,"");function zn(e,t,o={}){let r;try{r=JSON.parse(dn.decode(t))}catch{}if(!qn(r))throw new fn("JWT Claims Set must be a top-level JSON object");const{typ:n}=o;if(n&&("string"!=typeof e.typ||Nn(e.typ)!==Nn(n)))throw new un('unexpected "typ" JWT header value',r,"typ","check_failed");const{requiredClaims:s=[],issuer:i,subject:a,audience:d,maxTokenAge:l}=o,c=[...s];void 0!==l&&c.push("iat"),void 0!==d&&c.push("aud"),void 0!==a&&c.push("sub"),void 0!==i&&c.push("iss");for(const e of new Set(c.reverse()))if(!(e in r))throw new un(`missing required "${e}" claim`,r,e,"missing");if(i&&!(Array.isArray(i)?i:[i]).includes(r.iss))throw new un('unexpected "iss" claim value',r,"iss","check_failed");if(a&&r.sub!==a)throw new un('unexpected "sub" claim value',r,"sub","check_failed");if(d&&(u=r.aud,p="string"==typeof d?[d]:d,!("string"==typeof u?p.includes(u):Array.isArray(u)&&p.some(Set.prototype.has.bind(new Set(u))))))throw new un('unexpected "aud" claim value',r,"aud","check_failed");var u,p;let h;switch(typeof o.clockTolerance){case"string":h=Xn(o.clockTolerance);break;case"number":h=o.clockTolerance;break;case"undefined":h=0;break;default:throw new TypeError("Invalid clockTolerance option type")}const{currentDate:m}=o,g=(f=m||new Date,Math.floor(f.getTime()/1e3));var f;if((void 0!==r.iat||l)&&"number"!=typeof r.iat)throw new un('"iat" claim must be a number',r,"iat","invalid");if(void 0!==r.nbf){if("number"!=typeof r.nbf)throw new un('"nbf" claim must be a number',r,"nbf","invalid");if(r.nbf>g+h)throw new un('"nbf" claim timestamp check failed',r,"nbf","check_failed")}if(void 0!==r.exp){if("number"!=typeof r.exp)throw new un('"exp" claim must be a number',r,"exp","invalid");if(r.exp<=g-h)throw new pn('"exp" claim timestamp check failed',r,"exp","check_failed")}if(l){const e=g-r.iat;if(e-h>("number"==typeof l?l:Xn(l)))throw new pn('"iat" claim timestamp check failed (too far in the past)',r,"iat","check_failed");if(e<0-h)throw new un('"iat" claim timestamp check failed (it should be in the past)',r,"iat","check_failed")}return r}async function Fn(e,t,o){const r=await async function(e,t,o){if(e instanceof Uint8Array&&(e=dn.decode(e)),"string"!=typeof e)throw new gn("Compact JWS must be a string or Uint8Array");const{0:r,1:n,2:s,length:i}=e.split(".");if(3!==i)throw new gn("Invalid Compact JWS");const a=await Ln({payload:n,protected:r,signature:s},t,o),d={payload:a.payload,protectedHeader:a.protectedHeader};return"function"==typeof t?{...d,key:a.key}:d}(e,t,o);if(r.protectedHeader.crit?.includes("b64")&&!1===r.protectedHeader.b64)throw new fn("JWTs MUST NOT use unencoded payload");const n={payload:zn(r.protectedHeader,r.payload,o),protectedHeader:r.protectedHeader};return"function"==typeof t?{...n,key:r.key}:n}const Un="QRCodeJsLicense",Kn=O(["ol","ac","hl","so","t"].reverse().join("")),Hn=O(["ol","ac","it","no"].reverse().join("")),_n=O(["oh","ts","an","em"].reverse().join(""));class Qn{constructor(){this._hls=!1,this._decodedToken=null,this._licenseKey=null,this._isInitialized=!1,this._initPromise=null,this._licenseFetcher=async e=>{const t=Qn._customLicenseApiUrl||`${Vo}//v1/license/get-token`;try{const o=await fetch(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({licenseKey:e})});if(!o.ok){let e={};try{e=await o.json()}catch(e){}throw new Error(`Failed to fetch token: ${o.status} ${e?.error||o.statusText}`)}const r=await o.text();if(!r)throw new Error("Fetched token is empty.");return r}catch(e){throw console.error(`LicenseManager: Default fetcher failed: ${e.message}`),new Error(`License fetcher failed: ${e.message}`)}}}static get instance(){return Qn._instance||(Qn._instance=new Qn),Qn._instance}static setDefaultLicenseApiUrl(e){"string"==typeof e&&e?Qn._customLicenseApiUrl=e:console.warn("LicenseManager: Invalid URL provided to setDefaultLicenseApiUrl.")}get hls(){return this._hls}get isInitialized(){return this._isInitialized}getLicenseDetails(){return this._hls?this._decodedToken:null}get licenseKey(){return this._licenseKey}configureLicenseFetcher(e){if("function"!=typeof e)throw new Error("License fetcher must be a function that accepts a license key string and returns a Promise<string>.");this._licenseFetcher=e,this.resetInitialization(),this.resetLicenseState()}async initialize(){return this._isInitialized&&this._initPromise||this._initPromise||(this._initPromise=this._performInitialization()),this._initPromise}async _performInitialization(){if(this._hls)return this._isInitialized=!0,!0;this.resetLicenseState();const e=this._getStoredLicenseData(),t=e.token||null,o=e.key||null;if(this._licenseKey=o,!t)return this._isInitialized=!0,!1;const r=await this._validateAndStoreToken(t,o);if(r.isValid)return this._hls=!0,this._decodedToken=r.license,this._isInitialized=!0,!0;if(r.reason||console.warn("LicenseManager: Stored license token failed validation during initialization (unknown reason)."),!o)return console.warn("LicenseManager: Cannot refresh token: No license key found in storage."),this._isInitialized=!0,!1;console.warn("LicenseManager: Attempting to refresh token using stored license key...");try{const e=await this.activateWithKey(o);return this._isInitialized=!0,e.isValid}catch(e){return console.error(`LicenseManager: Auto-refresh attempt failed unexpectedly: ${e.message}`),this._licenseKey=o,this._isInitialized=!0,!1}}resetInitialization(){this._isInitialized=!1,this._initPromise=null}resetLicenseState(){this._hls=!1,this._decodedToken=null,this._licenseKey=null}async activateWithToken(e){let t;return this.resetInitialization(),null===e?(t=await this._validateAndStoreToken(null,this._licenseKey),this._hls=!1,this._decodedToken=null):"string"==typeof e&&e?(t=await this._validateAndStoreToken(e,null),this._hls=t.isValid,this._decodedToken=t.license,t.isValid?this._licenseKey=this._getStoredLicenseData().key||null:this._licenseKey=null):(console.warn("Invalid token string provided to activateWithToken()."),t=await this._validateAndStoreToken(null,null),t.reason="TOKEN_INVALID",this._hls=!1,this._decodedToken=null,this._licenseKey=null),this._isInitialized=!0,this._initPromise=Promise.resolve(this._hls),!t.isValid&&t.reason&&this._logValidationWarning(t.reason,{token:e,license:t.license}),t}async activateWithKey(e){this.resetInitialization();let t={isValid:!1,token:null,license:null};if(e&&"string"==typeof e){this._licenseKey=e;let o=null,r=null;const n=this._getStoredLicenseData();if(o=n.token||null,r=n.key||null,o&&r===e?(t=await this._validateAndStoreToken(o,e),t.isValid||(t.reason?this._logValidationWarning(t.reason,{licenseKey:e,license:t.license}):console.warn("LicenseManager: Cached token validation failed (unknown reason). Attempting to fetch a new token..."))):(t={isValid:!1,token:null,license:null},o&&r!==e&&console.warn("LicenseManager: Cached token belongs to a different license key. Fetching new token...")),!t.isValid)try{const o=await this._licenseFetcher(e);t=await this._validateAndStoreToken(o,e)}catch(o){let r="FETCH_FAILED";o?.message?.includes("Invalid license key")?r="KEY_INVALID":o?.message?.includes("License has expired")&&(r="TOKEN_EXPIRED"),await this._validateAndStoreToken(null,e),t={isValid:!1,token:null,license:null,reason:r}}this._hls=t.isValid,this._decodedToken=t.license}else console.warn("Invalid license key provided to activateWithKey()."),await this._validateAndStoreToken(null,null),t={isValid:!1,token:null,license:null,reason:"KEY_INVALID"},this._hls=!1,this._decodedToken=null,this._licenseKey=null;return this._isInitialized=!0,this._initPromise=Promise.resolve(this._hls),!t.isValid&&t.reason&&this._logValidationWarning(t.reason,{licenseKey:e,license:t.license}),t}_checkDomain(e){const t=window[Hn],o=window[Hn][_n];if(Qn._currentHostname=o,!t||"string"!=typeof o||!o)return{domainValid:!0};const r=Qn._currentHostname.toLowerCase();if(r===Kn)return{domainValid:!0};const n=e.domains;if(!n||0===n.length)return{domainValid:!0};return n.map((e=>e.toLowerCase())).includes(r)?{domainValid:!0}:{domainValid:!1,reason:"DOMAIN_MISMATCH"}}_logValidationWarning(e,t){let o=`LicenseManager: Validation failed. Reason: ${e}`;try{switch(e){case"DOMAIN_MISMATCH":const e=Qn._currentHostname??"N/A";o=`LicenseManager: Domain mismatch. License is restricted to [${t?.license?.domains?.join(", ")||"Not specified in token"}], but the current domain is "${e}".`;break;case"TOKEN_EXPIRED":o=`LicenseManager: License token expired on ${t?.license?.exp?new Date(1e3*t.license.exp).toISOString():"N/A"}.`;break;case"TOKEN_INVALID":o="LicenseManager: License token is invalid (e.g., signature mismatch, malformed).";break;case"FETCH_FAILED":o="LicenseManager: Failed to fetch license token from the server. Check network or API endpoint.",t?.licenseKey&&(o+=` (Key: ${t.licenseKey})`);break;case"KEY_INVALID":o="LicenseManager: The provided license key appears invalid or could not be found by the server.",t?.licenseKey&&(o+=` (Key: ${t.licenseKey})`)}}catch(e){console.error("LicenseManager: Error generating validation warning message:",e)}console.warn(o)}_getStoredLicenseData(){if("undefined"==typeof localStorage)return{};try{const e=localStorage.getItem(Un);return e?JSON.parse(e):{}}catch(e){return console.warn("LicenseManager: Failed to parse license data from localStorage.",e),localStorage.removeItem(Un),{}}}_setStoredLicenseData(e){if("undefined"!=typeof localStorage)try{const t={};void 0!==e.token&&(t.token=e.token),void 0!==e.key&&(t.key=e.key),Object.keys(t).length>0?localStorage.setItem(Un,JSON.stringify(t)):localStorage.removeItem(Un)}catch(e){console.warn("LicenseManager: Failed to store license data to localStorage.",e)}}async _validateAndStoreToken(e,t){const o=this._getStoredLicenseData(),r=t??o.key??void 0;if(!e)return this._setStoredLicenseData({key:r}),{isValid:!1,token:null,license:null};let n,s=null;try{s=await async function(e){try{const t=await Wn("-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ZCmxp1vq4LJLviS9d2u\nY5V9IykLzCrNcj8fCenqEyir5b4+FGE3hvLqp9zT+IYRF2cV2K0aGe9G0COFZsX2\nE5ye1DguyvPQgRMPO8y7bxXJ3da1IP7Gs+/3gy4iuzRV4Uhy73jUVpqE/zZ2JAv/\nsY36Rxmq4h7YE/F6YQk3DeZvnHjS7spUlp/+d3W67G8v2jiYWy3pO08Sn0rF2cjg\nXrJA5jcNr7ksER7AQcwayaLT4rAV4+EOcDYXL2egnqoTEmRzQYD2ReHBsO6jB0Ud\nbmsNepxbBdq/fBr+5HNj2tUJItarfH3BUVRFu/L1xP8wOEQa8wmPRwrJdPsI3bdk\n7QIDAQAB\n-----END PUBLIC KEY-----","RS256"),{payload:o}=await Fn(e,t,{algorithms:["RS256"]});if(!o||"string"!=typeof o.sub)throw new cn("Decoded token payload structure is invalid.");return o}catch(e){throw e}}(e);try{const t=this._checkDomain(s);if(!t.domainValid)return n=t.reason,o.token===e&&this._setStoredLicenseData({key:r}),{isValid:!1,token:null,license:s,reason:n}}catch(t){return console.error("LicenseManager: Internal error during domain check.",t),n="TOKEN_INVALID",o.token===e&&this._setStoredLicenseData({key:r}),{isValid:!1,token:null,license:s,reason:n}}return this._setStoredLicenseData({token:e,key:r}),{isValid:!0,token:e,license:s}}catch(t){return t instanceof pn?n="TOKEN_EXPIRED":(n="TOKEN_INVALID",console.error("LicenseManager: Token validation failed.",t)),o.token===e&&this._setStoredLicenseData({key:r}),{isValid:!1,token:null,license:s,reason:n}}}}var $n;Qn._instance=null,Qn._customLicenseApiUrl=null,Qn._currentHostname=null,function(e){e.svg="svg",e.png="png",e.jpeg="jpeg",e.webp="webp"}($n||($n={}));class es extends sn{constructor(e,t=!1){super(e),t||(Qn.instance.isInitialized||Qn.instance.hls?Qn.instance.isInitialized&&!Qn.instance.hls&&console.warn("QRCode.js: No valid license found. Some features may be limited."):console.warn("QRCode.js: License state not yet initialized. Call QRCodeJs.initializeIfNeeded() or activate a license."))}_hls(){return Qn.instance.isInitialized?Qn.instance.hls:(Qn.instance.initialize().catch((e=>{console.error("QRCode.js: Background license initialization failed:",e)})),!1)}static async initializeIfNeeded(){return Qn.instance.initialize()}static get hls(){return Qn.instance.isInitialized?Qn.instance.hls:(Qn.instance.initialize().catch((e=>{console.error("QRCode.js: Background license initialization failed:",e)})),!1)}static getLicenseDetails(){return Qn.instance.isInitialized?Qn.instance.getLicenseDetails():(Qn.instance.initialize().catch((e=>{console.error("QRCode.js: Background license initialization failed:",e)})),null)}static configureLicenseFetcher(e){Qn.instance.configureLicenseFetcher(e)}static async token(e){return Qn.instance.activateWithToken(e)}static setLicenseUrl(e){return Qn.setDefaultLicenseApiUrl(e),this}static async license(e){return Qn.instance.activateWithKey(e)}async validateScanning(e="zbar",t=!1){if(!this._hls())return console.warn("QRCode.js: Scanning validation requires a valid license."),Promise.reject({isValid:!1,message:"Valid license required for scanning validation."});try{const{default:e}=await import("./chunks/zbar-scan-validator-CdUmQrkV.js").then((function(e){return e.z})),o=await this.serialize(),r=this.size;if(!r)throw new Error("QR code dimensions not available for validation. Ensure the QR code has been generated.");const{width:n,height:s}=r,i=await(new e).validate(o,(async()=>this.serialize(!0)),n,s,t);if(i.isValid)return i;{console.debug("Zbar validation failed, trying Zxing...");const{default:e}=await import("./chunks/zxing-scan-validator-C8aRSTHv.js");return(new e).validate(o,(async()=>this.serialize(!0)),t)}}catch(e){const t=e instanceof Error?e.message:"Unknown validation error";return console.error(`Validation failed: ${t}`,e),Promise.reject({isValid:!1,message:t})}}static useTemplate(e){return new os(this,e)}static useTemplateId(e){return new os(this).useTemplateId(e)}static useStyle(e){return new os(this).useStyle(e)}static useStyleId(e){return new os(this).useStyleId(e)}static useBorder(e){return new os(this).useBorder(e)}static useBorderId(e){return new os(this).useBorderId(e)}static useImage(e,t){return new os(this).useImage(e,t)}static useText(e,t){return new os(this).useText(e,t)}static useTextId(e,t){return new os(this).useTextId(e,t)}}class ts extends es{_hls(){return!0}constructor(e){super(e,!0)}}class os{constructor(e,t){this._templateSource=null,this._borderSource=null,this._styleSource=null,this._imageSource=null,this._imageOverride=!1,this._textSource=null,this._textOverride=!1,this._isTemplateById=!1,this._isBorderById=!1,this._isStyleById=!1,this._isTextById=!1,this._initialOptions=null,this._qrCodeConstructor=e,"string"==typeof t?(this._templateSource=t,this._isTemplateById=!1):t&&(this._initialOptions=t)}useTemplate(e){return this._templateSource=e,this._isTemplateById=!1,this._initialOptions=null,this}useTemplateId(e){return this._templateSource=e,this._isTemplateById=!0,this._initialOptions=null,this}useStyle(e){return this._styleSource=e,this._isStyleById=!1,this}useStyleId(e){return this._styleSource=e,this._isStyleById=!0,this}useBorder(e){return this._borderSource=e,this._isBorderById=!1,this}useBorderId(e){return this._borderSource=e,this._isBorderById=!0,this}useImage(e,t){return this._imageSource=e,this._imageOverride=!!t?.override,this}useText(e,t){return this._textSource=e,this._isTextById=!1,this._textOverride=!!t?.override,this._initialOptions=null,this}useTextId(e,t){return this._textSource=e,this._isTextById=!0,this._textOverride=!!t?.override,this._initialOptions=null,this}_resolveAndMergeConfig(e={}){let t={};t=this._initialOptions?S({},this._initialOptions):S({},ee);let o=null;if(this._templateSource&&"string"==typeof this._templateSource){const e=(this._isTemplateById?Co:So)(this._templateSource);if(e)o=e.options;else{const e=this._isTemplateById?"ID":"name";console.warn(`QR Code template ${e} "${this._templateSource}" not found. Ignoring.`)}}else this._templateSource&&"string"!=typeof this._templateSource&&(o=this._templateSource);o&&(t=S(t,o));let r=null;if(this._borderSource)if("string"==typeof this._borderSource){const e=(this._isBorderById?en:$r)(this._borderSource);if(e)r=e.options;else{const e=this._isBorderById?"ID":"name";console.warn(`QR Code border ${e} "${this._borderSource}" not found. Ignoring.`)}}else r={borderOptions:this._borderSource};r&&(t=S(t,r));let n=null;if(this._textSource&&!this._textOverride){let e=null;if("string"==typeof this._textSource){const t=(this._isTextById?rn:on)(this._textSource);if(t)e=t.options;else{const e=this._isTextById?"ID":"name";console.warn(`QR Code text template ${e} "${this._textSource}" not found. Ignoring.`)}}else e=this._textSource;if(e){n={borderOptions:{decorations:{}}};const t=n.borderOptions.decorations;void 0!==e.topValue&&(t.top={value:null===e.topValue?void 0:e.topValue,enableText:null!==e.topValue}),void 0!==e.leftValue&&(t.left={value:null===e.leftValue?void 0:e.leftValue,enableText:null!==e.leftValue}),void 0!==e.rightValue&&(t.right={value:null===e.rightValue?void 0:e.rightValue,enableText:null!==e.rightValue}),void 0!==e.bottomValue&&(t.bottom={value:null===e.bottomValue?void 0:e.bottomValue,enableText:null!==e.bottomValue})}}n&&(t=S(t,n));let s=null;if(this._styleSource)if("string"==typeof this._styleSource){const e=(this._isStyleById?Ir:Dr)(this._styleSource);if(e)s=e.style;else{const e=this._isStyleById?"ID":"name";console.warn(`QR Code style ${e} "${this._styleSource}" not found. Ignoring.`)}}else{const{isValid:e,errors:t}=H(this._styleSource);e?s=this._styleSource:console.warn("Invalid style options object provided:",t)}if(s){t=S(t,K(s))}if(this._imageSource&&!this._imageOverride&&(t=S(t,{image:this._imageSource})),t=S(t,e),this._imageOverride&&this._imageSource&&(t=S(t,{image:this._imageSource})),this._textOverride&&this._textSource){const e={borderOptions:{decorations:{}}};let o=null;if("string"==typeof this._textSource){const e=(this._isTextById?rn:on)(this._textSource);e&&(o=e.options)}else o=this._textSource;if(o){const r=e.borderOptions.decorations;void 0!==o.topValue&&(r.top={value:null===o.topValue?void 0:o.topValue,enableText:null!==o.topValue}),void 0!==o.leftValue&&(r.left={value:null===o.leftValue?void 0:o.leftValue,enableText:null!==o.leftValue}),void 0!==o.rightValue&&(r.right={value:null===o.rightValue?void 0:o.rightValue,enableText:null!==o.rightValue}),void 0!==o.bottomValue&&(r.bottom={value:null===o.bottomValue?void 0:o.bottomValue,enableText:null!==o.bottomValue}),t=S(t,e)}}return t}options(e){const t=this._resolveAndMergeConfig(e);return new this._qrCodeConstructor(t)}build(){const e=this._resolveAndMergeConfig();return new this._qrCodeConstructor(e)}}"undefined"!=typeof window&&(window.QRCodeJs=es,window.__=ts);export{P as CornerDotType,G as CornerSquareType,L as DotType,g as ErrorCorrectionLevel,$n as FileExtension,M as GradientType,N as ImageMode,f as Mode,es as QRCodeJs,Un as STORAGE_KEY,X as ShapeType,m as TypeNumber,ts as _};