@itisyang/excalidraw 0.18.0 → 0.18.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../data/image.ts", "../../../math/dist/prod/index.js", "../../../common/dist/prod/index.js", "../../data/blob.ts", "../../appState.ts", "../../errors.ts", "../../../element/dist/prod/index.js", "../../scene/scroll.ts", "../../scene/normalize.ts", "../../scene/export.ts", "../../data/encode.ts", "../../data/filesystem.ts", "../../data/json.ts", "../../fonts/Cascadia/index.ts", "../../fonts/ComicShanns/index.ts", "../../fonts/Emoji/index.ts", "../../workers.ts", "../../subset/subset-main.ts", "../../fonts/ExcalidrawFontFace.ts", "../../fonts/Excalifont/index.ts", "../../fonts/Helvetica/index.ts", "../../fonts/Liberation/index.ts", "../../fonts/Lilita/index.ts", "../../fonts/Nunito/index.ts", "../../fonts/Virgil/index.ts", "../../fonts/Xiaolai/index.ts", "../../fonts/Fonts.ts", "../../components/hyperlink/helpers.ts", "../../renderer/helpers.ts", "../../renderer/staticScene.ts", "../../renderer/staticSvgScene.ts", "../../data/restore.ts"],
4
+ "sourcesContent": ["import tEXt from \"png-chunk-text\";\nimport encodePng from \"png-chunks-encode\";\nimport decodePng from \"png-chunks-extract\";\n\nimport { EXPORT_DATA_TYPES, MIME_TYPES } from \"@excalidraw/common\";\n\nimport { blobToArrayBuffer } from \"./blob\";\nimport { encode, decode } from \"./encode\";\n\n// -----------------------------------------------------------------------------\n// PNG\n// -----------------------------------------------------------------------------\n\nexport const getTEXtChunk = async (\n blob: Blob,\n): Promise<{ keyword: string; text: string } | null> => {\n const chunks = decodePng(new Uint8Array(await blobToArrayBuffer(blob)));\n const metadataChunk = chunks.find((chunk) => chunk.name === \"tEXt\");\n if (metadataChunk) {\n return tEXt.decode(metadataChunk.data);\n }\n return null;\n};\n\nexport const encodePngMetadata = async ({\n blob,\n metadata,\n}: {\n blob: Blob;\n metadata: string;\n}) => {\n const chunks = decodePng(new Uint8Array(await blobToArrayBuffer(blob)));\n\n const metadataChunk = tEXt.encode(\n MIME_TYPES.excalidraw,\n JSON.stringify(\n encode({\n text: metadata,\n compress: true,\n }),\n ),\n );\n // insert metadata before last chunk (iEND)\n chunks.splice(-1, 0, metadataChunk);\n\n return new Blob([encodePng(chunks)], { type: MIME_TYPES.png });\n};\n\nexport const decodePngMetadata = async (blob: Blob) => {\n const metadata = await getTEXtChunk(blob);\n if (metadata?.keyword === MIME_TYPES.excalidraw) {\n try {\n const encodedData = JSON.parse(metadata.text);\n if (!(\"encoded\" in encodedData)) {\n // legacy, un-encoded scene JSON\n if (\n \"type\" in encodedData &&\n encodedData.type === EXPORT_DATA_TYPES.excalidraw\n ) {\n return metadata.text;\n }\n throw new Error(\"FAILED\");\n }\n return decode(encodedData);\n } catch (error: any) {\n console.error(error);\n throw new Error(\"FAILED\");\n }\n }\n throw new Error(\"INVALID\");\n};\n", "var M=1e-4,gt=(t,n,o)=>Math.min(Math.max(t,n),o),ht=(t,n,o=\"round\")=>{let e=Math.pow(10,n);return Math[o]((t+Number.EPSILON)*e)/e},Lt=(t,n,o=\"round\")=>{let e=1/n;return Math[o](t*e)/e},yt=(t,n)=>(t+n)/2,Gt=t=>typeof t==\"number\"&&Number.isFinite(t),Mt=(t,n,o=1e-4)=>Math.abs(t-n)<o;var v=t=>t<0?t%(2*Math.PI)+2*Math.PI:t%(2*Math.PI),Ct=([t,n])=>[Math.hypot(t,n),v(Math.atan2(n,t))];function et(t){return t*Math.PI/180}function _t(t){return t*180/Math.PI}function vt(t){return Math.abs(Math.sin(2*t))<1e-4}function Vt(t,n,o){return t=v(t),n=v(n),o=v(o),n<o?t>=n&&t<=o:t>=n||t<=o}function Nt(t,n){t=v(t),n=v(n);let o=t-n;return o<-Math.PI?o=o+2*Math.PI:o>Math.PI&&(o=o-2*Math.PI),Math.abs(o)}function y(t,n,o=0,e=0){return[t-o,n-e]}function L(t,n=[0,0],o,e=[0,1]){let r=y(t[0]-n[0],t[1]-n[1]);return o&&rt(r)<o*o?e:r}function z(t,n){return t[0]*n[1]-n[0]*t[1]}function O(t,n){return t[0]*n[0]+t[1]*n[1]}function Et(t){return Array.isArray(t)&&t.length===2&&typeof t[0]==\"number\"&&!isNaN(t[0])&&typeof t[1]==\"number\"&&!isNaN(t[1])}function X(t,n){return[t[0]+n[0],t[1]+n[1]]}function Y(t,n){return[t[0]-n[0],t[1]-n[1]]}function R(t,n){return y(t[0]*n,t[1]*n)}function rt(t){return t[0]*t[0]+t[1]*t[1]}function Pt(t){return Math.sqrt(rt(t))}var W=t=>{let n=Pt(t);return n===0?y(0,0):y(t[0]/n,t[1]/n)},H=t=>y(t[1],-t[0]);function x(t,n){return typeof t==\"object\"?[t.x,t.y]:[t,n]}function Ot(t){return t.length===2?x(t[0],t[1]):void 0}function Xt(t){return t}function _(t,n=x(0,0)){return x(n[0]+t[0],n[1]+t[1])}function S(t){return Array.isArray(t)&&t.length===2&&typeof t[0]==\"number\"&&!isNaN(t[0])&&typeof t[1]==\"number\"&&!isNaN(t[1])}function k(t,n,o=1e-4){let e=Math.abs;return e(t[0]-n[0])<o&&e(t[1]-n[1])<o}function j([t,n],[o,e],r){return x((t-o)*Math.cos(r)-(n-e)*Math.sin(r)+o,(t-o)*Math.sin(r)+(n-e)*Math.cos(r)+e)}function Yt(t,n,o){return j(t,n,et(o))}function ut(t,n=[0,0]){return x(t[0]+n[0],t[1]+n[1])}function Q(t,n){return x((t[0]+n[0])/2,(t[1]+n[1])/2)}function V(t,n){return Math.hypot(n[0]-t[0],n[1]-t[1])}function kt(t,n){let o=n[0]-t[0],e=n[1]-t[1];return o*o+e*e}var jt=(t,n,o)=>ut(n,R(L(t,n),o)),Bt=(t,n,o)=>n[0]<=Math.max(t[0],o[0])&&n[0]>=Math.min(t[0],o[0])&&n[1]<=Math.max(t[1],o[1])&&n[1]>=Math.min(t[1],o[1]);var J=[-.06405689286260563,.06405689286260563,-.1911188674736163,.1911188674736163,-.3150426796961634,.3150426796961634,-.4337935076260451,.4337935076260451,-.5454214713888396,.5454214713888396,-.6480936519369755,.6480936519369755,-.7401241915785544,.7401241915785544,-.820001985973903,.820001985973903,-.8864155270044011,.8864155270044011,-.9382745520027328,.9382745520027328,-.9747285559713095,.9747285559713095,-.9951872199970213,.9951872199970213],Z=[.12793819534675216,.12793819534675216,.1258374563468283,.1258374563468283,.12167047292780339,.12167047292780339,.1155056680537256,.1155056680537256,.10744427011596563,.10744427011596563,.09761865210411388,.09761865210411388,.08619016153195327,.08619016153195327,.0733464814110803,.0733464814110803,.05929858491543678,.05929858491543678,.04427743881741981,.04427743881741981,.028531388628933663,.028531388628933663,.0123412297999872,.0123412297999872];function it(t,n,o,e){return[t,n,o,e]}function mt(t,n,o,e,r=.001,i=10){let a=1/0,l=0;for(;a>=r;){if(l>=i)return null;let s=1-o,P=s*s,c=P*s,u=o*o,m=u*o,p=c*t[0][0]+3*P*o*t[1][0]+3*s*u*t[2][0]+m*t[3][0],b=c*t[0][1]+3*P*o*t[1][1]+3*s*u*t[2][1]+m*t[3][1],f=n[0][0]+e*(n[1][0]-n[0][0]),d=n[0][1]+e*(n[1][1]-n[0][1]),h=p-f,G=b-d;if(a=Math.abs(h)+Math.abs(G),a<r)break;let w=-3*P*t[0][0]+3*P*t[1][0]-6*s*o*t[1][0]-3*u*t[2][0]+6*s*o*t[2][0]+3*u*t[3][0],q=-3*P*t[0][1]+3*P*t[1][1]-6*s*o*t[1][1]-3*u*t[2][1]+6*s*o*t[2][1]+3*u*t[3][1],N=-(n[1][0]-n[0][0]),F=-(n[1][1]-n[0][1]),D=w*F-N*q;if(Math.abs(D)<1e-12)return null;let E=1/D,T=E*(F*-h-N*-G),ct=E*(-q*-h+w*-G);o+=T,e+=ct,l+=1}return[o,e]}var I=(t,n)=>x((1-n)**3*t[0][0]+3*(1-n)**2*n*t[1][0]+3*(1-n)*n**2*t[2][0]+n**3*t[3][0],(1-n)**3*t[0][1]+3*(1-n)**2*n*t[1][1]+3*(1-n)*n**2*t[2][1]+n**3*t[3][1]),K=[[.5,0],[.2,0],[.8,0]],U=([t,n],o,e)=>{let r=mt(e,o,t,n,.01,4);if(!r)return null;let[i,a]=r;return i<0||i>1||a<0||a>1?null:I(e,i)};function $t(t,n){let o=U(K[0],n,t);return o?[o]:(o=U(K[1],n,t),o?[o]:(o=U(K[2],n,t),o?[o]:[]))}function xt(t,n,o=.001){let e=(P,c,u,m=o)=>{let p=P,b=c,f;for(;b-p>m;)f=(b+p)/2,u(f-m)<u(f+m)?b=f:p=f;return f},i=0;for(let P=1/0,c=0;c<30;c++){let u=V(n,I(t,c/30));u<P&&(P=u,i=c)}let a=Math.max((i-1)/30,0),l=Math.min((i+1)/30,1),s=e(a,l,P=>V(n,I(t,P)));return s?I(t,s):null}function tn(t,n){let o=xt(t,n);return o?V(n,o):0}function nn(t){return Array.isArray(t)&&t.length===4&&S(t[0])&&S(t[1])&&S(t[2])&&S(t[3])}function $([t,n,o,e],r){return y(-3*(1-r)*(1-r)*t[0]+3*(1-r)*(1-r)*n[0]-6*r*(1-r)*n[0]-3*r*r*o[0]+6*r*(1-r)*o[0]+3*r*r*e[0],-3*(1-r)*(1-r)*t[1]+3*(1-r)*(1-r)*n[1]-6*r*(1-r)*n[1]-3*r*r*o[1]+6*r*(1-r)*o[1]+3*r*r*e[1])}function on(t,n=.5){if(t.length<2)return;let o=[];for(let e=0;e<t.length-1;e++){let r=t[e-1<0?0:e-1],i=t[e],a=t[e+1>=t.length?t.length-1:e+1],l=i[0]+(a[0]-r[0])*n/2,s=i[1]+(a[1]-r[1])*n/2;o.push([x(l,s),x(a[0],a[1])])}return o}function en(t,n=.5){if(t.length<2)return;let o=[];for(let e=0;e<t.length-1;e++){let r=t[e-1<0?0:e-1],i=t[e],a=t[e+1>=t.length?t.length-1:e+1],l=t[e+2>=t.length?t.length-1:e+2],s=[(a[0]-r[0])*n,(a[1]-r[1])*n],P=[(l[0]-i[0])*n,(l[1]-i[1])*n],c=i[0]+s[0]/3,u=i[1]+s[1]/3,m=a[0]-P[0]/3,p=a[1]-P[1]/3;o.push(it(x(i[0],i[1]),x(c,u),x(m,p),x(a[0],a[1])))}return o}function rn([t,n,o,e],r,i=50){let a=[];for(let l=0;l<=i;l++){let s=l/i,P=it(t,n,o,e),c=I(P,s),u=W($(P,s)),m=H(u);a.push(_(R(m,r),c))}return a}function an(t,n,o,e,r=50){let i=[];for(let a=0;a<=r;a++){let l=a/r,s=1-l,P=x(s*s*t[0]+2*s*l*n[0]+l*l*o[0],s*s*t[1]+2*s*l*n[1]+l*l*o[1]),c=2*(1-l)*(n[0]-t[0])+2*l*(o[0]-n[0]),u=2*(1-l)*(n[1]-t[1])+2*l*(o[1]-n[1]),m=W(y(c,u)),p=H(m);i.push(_(R(p,e),P))}return i}function at(t){let o=0;for(let e=0;e<24;e++){let r=.5*J[e]+.5,i=$(t,r),a=Math.sqrt(i[0]*i[0]+i[1]*i[1]);o+=Z[e]*a}return .5*o}function pt(t,n){if(n<=0)return 0;if(n>=1)return at(t);let o=n/2,e=n/2,r=0;for(let i=0;i<24;i++){let a=o*J[i]+e,l=$(t,a),s=Math.sqrt(l[0]*l[0]+l[1]*l[1]);r+=Z[i]*s}return o*r}function ln(t,n){if(n<=0)return I(t,0);if(n>=1)return I(t,1);let o=at(t),e=o*n,r=0,i=1,a=n,l=0,s=o*1e-4,P=20;for(let c=0;c<P&&(l=pt(t,a),!(Math.abs(l-e)<s));c++)l<e?r=a:i=a,a=(r+i)/2;return I(t,a)}function xn(t,n,o){return{center:t,halfWidth:n,halfHeight:o}}var pn=(t,n)=>{let{center:o,halfWidth:e,halfHeight:r}=n,i=(t[0]-o[0])/e,a=(t[1]-o[1])/r;return i*i+a*a<=1},bn=(t,n,o=1e-4)=>bt(t,n)<=o,bt=(t,n)=>{let{halfWidth:o,halfHeight:e,center:r}=n,i=o,a=e,l=X(L(t),R(L(r),-1)),s=Math.abs(l[0]),P=Math.abs(l[1]),c=.707,u=.707;for(let b=0;b<3;b++){let f=i*c,d=a*u,h=(i*i-a*a)*c**3/i,G=(a*a-i*i)*u**3/a,w=f-h,q=d-G,N=s-h,F=P-G,D=Math.hypot(q,w),E=Math.hypot(F,N);c=Math.min(1,Math.max(0,(N*D/E+h)/i)),u=Math.min(1,Math.max(0,(F*D/E+G)/a));let T=Math.hypot(u,c);c/=T,u/=T}let[m,p]=[i*c*Math.sign(l[0]),a*u*Math.sign(l[1])];return V(_(l),x(m,p))};function fn(t,n){let o=t.halfWidth,e=t.halfHeight,r=L(n[1],n[0]),i=y(n[0][0]-t.center[0],n[0][1]-t.center[1]),a=y(r[0]/(o*o),r[1]/(e*e)),l=y(i[0]/(o*o),i[1]/(e*e)),s=O(r,a),P=O(r,l),c=O(i,l)-1,u=P*P-s*c,m=[];if(u>0){let p=(-P-Math.sqrt(u))/s,b=(-P+Math.sqrt(u))/s;0<=p&&p<=1&&m.push(x(n[0][0]+(n[1][0]-n[0][0])*p,n[0][1]+(n[1][1]-n[0][1])*p)),0<=b&&b<=1&&m.push(x(n[0][0]+(n[1][0]-n[0][0])*b,n[0][1]+(n[1][1]-n[0][1])*b))}else if(u===0){let p=-P/s;0<=p&&p<=1&&m.push(x(n[0][0]+(n[1][0]-n[0][0])*p,n[0][1]+(n[1][1]-n[0][1])*p))}return m}function dn({center:t,halfWidth:n,halfHeight:o},[e,r]){let[i,a]=t,l=e[0]-i,s=e[1]-a,P=r[0]-i,c=r[1]-a,u=Math.pow(P-l,2)/Math.pow(n,2)+Math.pow(c-s,2)/Math.pow(o,2),m=2*(l*(P-l)/Math.pow(n,2)+s*(c-s)/Math.pow(o,2)),p=Math.pow(l,2)/Math.pow(n,2)+Math.pow(s,2)/Math.pow(o,2)-1,b=(-m+Math.sqrt(Math.pow(m,2)-4*u*p))/(2*u),f=(-m-Math.sqrt(Math.pow(m,2)-4*u*p))/(2*u),d=[x(l+b*(P-l)+i,s+b*(c-s)+a),x(l+f*(P-l)+i,s+f*(c-s)+a)].filter(h=>!isNaN(h[0])&&!isNaN(h[1]));return d.length===2&&k(d[0],d[1])?[d[0]]:d}function tt(t,n){return[t,n]}function lt(t,n){let o=t[1][1]-t[0][1],e=t[0][0]-t[1][0],r=n[1][1]-n[0][1],i=n[0][0]-n[1][0],a=o*i-r*e;if(a!==0){let l=o*t[0][0]+e*t[0][1],s=r*n[0][0]+i*n[0][1];return x((l*i-s*e)/a,(o*s-r*l)/a)}return null}function C(t,n){return[t,n]}var Cn=t=>Array.isArray(t)&&t.length===2&&S(t[0])&&S(t[0]),_n=(t,n,o)=>C(j(t[0],o||Q(t[0],t[1]),n),j(t[1],o||Q(t[0],t[1]),n)),vn=(t,n)=>{let o=L(t[0]),e=L(t[1]),r=L(n[0]),i=L(n[1]),a=Y(e,o),l=Y(i,r),s=z(a,l);if(s===0)return null;let P=Y(L(n[0]),L(t[0])),c=z(P,a)/s,u=z(P,l)/s;if(c===0)return null;let m=X(o,R(a,u));return u>=0&&u<1&&c>=0&&c<1?_(m):null},B=(t,n,o=1e-4)=>{let e=A(t,n);return e===0?!0:e<o},A=(t,n)=>{let[o,e]=t,[[r,i],[a,l]]=n,s=o-r,P=e-i,c=a-r,u=l-i,m=s*c+P*u,p=c*c+u*u,b=-1;p!==0&&(b=m/p);let f,d;b<0?(f=r,d=i):b>1?(f=a,d=l):(f=r+b*c,d=i+b*u);let h=o-f,G=e-d;return Math.sqrt(h*h+G*G)};function nt(t,n,o){let e=lt(tt(t[0],t[1]),tt(n[0],n[1]));return!e||!B(e,n,o)||!B(e,t,o)?null:e}function Vn(t,n){return nt(t,n)?0:Math.min(A(t[0],n),A(t[1],n),A(n[0],t),A(n[1],t))}function wn(...t){return st(t)}function qn(t){return st(t)}var Tn=(t,n)=>{let o=t[0],e=t[1],r=!1;for(let i=0,a=n.length-1;i<n.length;a=i++){let l=n[i][0],s=n[i][1],P=n[a][0],c=n[a][1];(s>e&&c<=e||s<=e&&c>e)&&o<(P-l)*(e-s)/(c-s)+l&&(r=!r)}return r},zn=(t,n)=>{let[o,e]=t,r=0;for(let i=0;i<n.length;i++){let a=(i+1)%n.length,[l,s]=n[i],[P,c]=n[a];s<=e?c>e&&(P-l)*(e-s)-(o-l)*(c-s)>0&&r++:c<=e&&(P-l)*(e-s)-(o-l)*(c-s)<0&&r--}return r!==0},On=(t,n,o=1e-4)=>{let e=!1;for(let r=0,i=n.length-1;r<i;r++)if(B(t,C(n[r],n[r+1]),o)){e=!0;break}return e};function st(t){return ft(t)?t:[...t,t[0]]}function ft(t){return k(t[0],t[t.length-1])}import{toBrandedType as ot}from\"@excalidraw/common\";function jn(t,n){return ot([t,n])}function Bn(t){return ot(t)}var Wn=([t,n],[o,e])=>t<=o?n>=o:t>=o?e>=t:!1,Hn=([t,n],[o,e])=>{let r=Math.max(t,o),i=Math.min(n,e);return r<=i?ot([r,i]):null},Qn=(t,[n,o])=>t>=n&&t<=o;function dt(t,n){return[t,n]}function $n(t,n,o,e){return dt(x(t,n),x(o,e))}function to(t,n){return[C(t[0],x(t[1][0],t[0][1])),C(x(t[1][0],t[0][1]),t[1]),C(t[1],x(t[0][0],t[1][1])),C(x(t[0][0],t[1][1]),t[0])].map(o=>nt(n,o)).filter(o=>!!o)}function no(t,n){let[[o,e],[r,i]]=t,[[a,l],[s,P]]=n;return o<s&&r>a&&e<P&&i>l}function ro([t,n,o],e){let r=(c,u,m)=>(c[0]-m[0])*(u[1]-m[1])-(u[0]-m[0])*(c[1]-m[1]),i=r(e,t,n),a=r(e,n,o),l=r(e,o,t),s=i<0||a<0||l<0,P=i>0||a>0||l>0;return!(s&&P)}export{M as PRECISION,yt as average,I as bezierEquation,Ct as cartesian2Polar,gt as clamp,it as curve,en as curveCatmullRomCubicApproxPoints,on as curveCatmullRomQuadraticApproxPoints,xt as curveClosestPoint,$t as curveIntersectLineSegment,at as curveLength,pt as curveLengthAtParameter,rn as curveOffsetPoints,ln as curvePointAtLength,tn as curvePointDistance,$ as curveTangent,et as degreesToRadians,A as distanceToLineSegment,xn as ellipse,bt as ellipseDistanceFromPoint,pn as ellipseIncludesPoint,dn as ellipseLineIntersectionPoints,fn as ellipseSegmentInterceptPoints,bn as ellipseTouchesPoint,Mt as isCloseTo,nn as isCurve,Gt as isFiniteNumber,Cn as isLineSegment,S as isPoint,Bt as isPointWithinBounds,vt as isRightAngleRads,Et as isVector,tt as line,C as lineSegment,nt as lineSegmentIntersectionPoints,_n as lineSegmentRotate,Vn as lineSegmentsDistance,lt as linesIntersectAt,v as normalizeRadians,an as offsetPointsForQuadraticBezier,Q as pointCenter,V as pointDistance,kt as pointDistanceSq,x as pointFrom,Ot as pointFromArray,Xt as pointFromPair,_ as pointFromVector,B as pointOnLineSegment,On as pointOnPolygon,Yt as pointRotateDegs,j as pointRotateRads,jt as pointScaleFromOrigin,ut as pointTranslate,k as pointsEqual,wn as polygon,qn as polygonFromPoints,Tn as polygonIncludesPoint,zn as polygonIncludesPointNonZero,Vt as radiansBetweenAngles,Nt as radiansDifference,_t as radiansToDegrees,Qn as rangeIncludesValue,jn as rangeInclusive,Bn as rangeInclusiveFromPair,Hn as rangeIntersection,Wn as rangesOverlap,dt as rectangle,$n as rectangleFromNumberSequence,to as rectangleIntersectLineSegment,no as rectangleIntersectRectangle,ht as round,Lt as roundToStep,vn as segmentsIntersectAt,ro as triangleIncludesPoint,y as vector,X as vectorAdd,z as vectorCross,O as vectorDot,L as vectorFromPoint,Pt as vectorMagnitude,rt as vectorMagnitudeSq,H as vectorNormal,W as vectorNormalize,R as vectorScale,Y as vectorSubtract};\n", "var Qe=Object.create;var re=Object.defineProperty;var Je=Object.getOwnPropertyDescriptor;var et=Object.getOwnPropertyNames;var tt=Object.getPrototypeOf,nt=Object.prototype.hasOwnProperty;var rt=(e,t)=>()=>(e&&(t=e(e=0)),t);var oe=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var ot=(e,t,n,r)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let o of et(t))!nt.call(e,o)&&o!==n&&re(e,o,{get:()=>t[o],enumerable:!(r=Je(t,o))||r.enumerable});return e};var se=(e,t,n)=>(n=e!=null?Qe(tt(e)):{},ot(t||!e||!e.__esModule?re(n,\"default\",{value:e,enumerable:!0}):n,e));var m,p=rt(()=>{m={PROD:!0}});var De=oe((Q,Pe)=>{p();(function(e,t){typeof define==\"function\"&&define.amd?define([],t):typeof Q==\"object\"?Pe.exports=t():(e.PromisePool=t(),e.promisePool=e.PromisePool)})(Q,function(){\"use strict\";var e=function(){this._listeners={}};e.prototype.addEventListener=function(a,l){this._listeners[a]=this._listeners[a]||[],this._listeners[a].indexOf(l)<0&&this._listeners[a].push(l)},e.prototype.removeEventListener=function(a,l){if(this._listeners[a]){var u=this._listeners[a].indexOf(l);u>=0&&this._listeners[a].splice(u,1)}},e.prototype.dispatchEvent=function(a){if(this._listeners[a.type]&&this._listeners[a.type].length)for(var l=this._listeners[a.type].slice(),u=0,f=l.length;u<f;++u)l[u].call(this,a)};var t=function(a){return typeof a.constructor==\"function\"&&a.constructor.name===\"GeneratorFunction\"},n=function(a){return{next:function(){var l=a();return l?{value:l}:{done:!0}}}},r=function(a){var l=!1;return{next:function(){return l?{done:!0}:(l=!0,{value:a})}}},o=function(a,l){var u=typeof a;if(u===\"object\"){if(typeof a.next==\"function\")return a;if(typeof a.then==\"function\")return r(a)}return u===\"function\"?t(a)?a():n(a):r(l.resolve(a))},s=function(a,l,u){this.target=a,this.type=l,this.data=u},i=function(a,l,u){if(e.call(this),typeof l!=\"number\"||Math.floor(l)!==l||l<1)throw new Error(\"Invalid concurrency\");this._concurrency=l,this._options=u||{},this._options.promise=this._options.promise||Promise,this._iterator=o(a,this._options.promise),this._done=!1,this._size=0,this._promise=null,this._callbacks=null};return i.prototype=new e,i.prototype.constructor=i,i.prototype.concurrency=function(a){return typeof a<\"u\"&&(this._concurrency=a,this.active()&&this._proceed()),this._concurrency},i.prototype.size=function(){return this._size},i.prototype.active=function(){return!!this._promise},i.prototype.promise=function(){return this._promise},i.prototype.start=function(){var a=this,l=this._options.promise;return this._promise=new l(function(u,f){a._callbacks={reject:f,resolve:u},a._proceed()}),this._promise},i.prototype._fireEvent=function(a,l){this.dispatchEvent(new s(this,a,l))},i.prototype._settle=function(a){a?this._callbacks.reject(a):this._callbacks.resolve(),this._promise=null,this._callbacks=null},i.prototype._onPooledPromiseFulfilled=function(a,l){this._size--,this.active()&&(this._fireEvent(\"fulfilled\",{promise:a,result:l}),this._proceed())},i.prototype._onPooledPromiseRejected=function(a,l){this._size--,this.active()&&(this._fireEvent(\"rejected\",{promise:a,error:l}),this._settle(l||new Error(\"Unknown error\")))},i.prototype._trackPromise=function(a){var l=this;a.then(function(u){l._onPooledPromiseFulfilled(a,u)},function(u){l._onPooledPromiseRejected(a,u)}).catch(function(u){l._settle(new Error(\"Promise processing failed: \"+u))})},i.prototype._proceed=function(){if(!this._done){for(var a={done:!1};this._size<this._concurrency&&!(a=this._iterator.next()).done;)this._size++,this._trackPromise(a.value);this._done=a===null||!!a.done}this._done&&this._size===0&&this._settle()},i.PromisePoolEvent=s,i.PromisePool=i,i})});var Xe=oe(W=>{\"use strict\";p();Object.defineProperty(W,\"__esModule\",{value:!0});W.sanitizeUrl=void 0;var un=/^([^\\w]*)(javascript|data|vbscript)/im,pn=/&#(\\w+)(^\\w|;)?/g,dn=/&(newline|tab);/gi,fn=/[\\u0000-\\u001F\\u007F-\\u009F\\u2000-\\u200D\\uFEFF]/gim,hn=/^.+(:|&colon;)/gim,mn=[\".\",\"/\"];function En(e){return mn.indexOf(e[0])>-1}function Tn(e){return e.replace(pn,function(t,n){return String.fromCharCode(n)})}function bn(e){var t=Tn(e||\"\").replace(dn,\"\").replace(fn,\"\").trim();if(!t)return\"about:blank\";if(En(t))return t;var n=t.match(hn);if(!n)return t;var r=n[0];return un.test(r)?\"about:blank\":t}W.sanitizeUrl=bn});p();p();var ae=class{constructor(t){this.scoreFunction=t}content=[];sinkDown(t){let n=this.content[t],r=this.scoreFunction(n);for(;t>0;){let o=(t+1>>1)-1,s=this.content[o];if(r<this.scoreFunction(s))this.content[t]=s,t=o;else break}this.content[t]=n}bubbleUp(t){let n=this.content.length,r=this.content[t],o=this.scoreFunction(r);for(;;){let s=(t+1<<1)-1,i=s+1,a=t,l=o;if(s<n){let u=this.scoreFunction(this.content[s]);u<l&&(a=s,l=u)}if(i<n&&this.scoreFunction(this.content[i])<l&&(a=i),a===t)break;this.content[t]=this.content[a],t=a}this.content[t]=r}push(t){this.content.push(t),this.sinkDown(this.content.length-1)}pop(){if(this.content.length===0)return null;let t=this.content[0],n=this.content.pop();return this.content.length>0&&(this.content[0]=n,this.bubbleUp(0)),t}remove(t){if(this.content.length===0)return;let n=this.content.indexOf(t),r=this.content.pop();n<this.content.length&&(this.content[n]=r,this.scoreFunction(r)<this.scoreFunction(t)?this.sinkDown(n):this.bubbleUp(n))}size(){return this.content.length}rescoreElement(t){this.sinkDown(this.content.indexOf(t))}};p();var Sn=e=>Array.isArray(e)&&e.length===4&&typeof e[0]==\"number\"&&typeof e[1]==\"number\"&&typeof e[2]==\"number\"&&typeof e[3]==\"number\";p();p();function U(e){\"@babel/helpers - typeof\";return U=typeof Symbol==\"function\"&&typeof Symbol.iterator==\"symbol\"?function(t){return typeof t}:function(t){return t&&typeof Symbol==\"function\"&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},U(e)}var at=/^\\s+/,it=/\\s+$/;function c(e,t){if(e=e||\"\",t=t||{},e instanceof c)return e;if(!(this instanceof c))return new c(e,t);var n=lt(e);this._originalInput=e,this._r=n.r,this._g=n.g,this._b=n.b,this._a=n.a,this._roundA=Math.round(100*this._a)/100,this._format=t.format||n.format,this._gradientType=t.gradientType,this._r<1&&(this._r=Math.round(this._r)),this._g<1&&(this._g=Math.round(this._g)),this._b<1&&(this._b=Math.round(this._b)),this._ok=n.ok}c.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var t=this.toRgb();return(t.r*299+t.g*587+t.b*114)/1e3},getLuminance:function(){var t=this.toRgb(),n,r,o,s,i,a;return n=t.r/255,r=t.g/255,o=t.b/255,n<=.03928?s=n/12.92:s=Math.pow((n+.055)/1.055,2.4),r<=.03928?i=r/12.92:i=Math.pow((r+.055)/1.055,2.4),o<=.03928?a=o/12.92:a=Math.pow((o+.055)/1.055,2.4),.2126*s+.7152*i+.0722*a},setAlpha:function(t){return this._a=fe(t),this._roundA=Math.round(100*this._a)/100,this},toHsv:function(){var t=le(this._r,this._g,this._b);return{h:t.h*360,s:t.s,v:t.v,a:this._a}},toHsvString:function(){var t=le(this._r,this._g,this._b),n=Math.round(t.h*360),r=Math.round(t.s*100),o=Math.round(t.v*100);return this._a==1?\"hsv(\"+n+\", \"+r+\"%, \"+o+\"%)\":\"hsva(\"+n+\", \"+r+\"%, \"+o+\"%, \"+this._roundA+\")\"},toHsl:function(){var t=ie(this._r,this._g,this._b);return{h:t.h*360,s:t.s,l:t.l,a:this._a}},toHslString:function(){var t=ie(this._r,this._g,this._b),n=Math.round(t.h*360),r=Math.round(t.s*100),o=Math.round(t.l*100);return this._a==1?\"hsl(\"+n+\", \"+r+\"%, \"+o+\"%)\":\"hsla(\"+n+\", \"+r+\"%, \"+o+\"%, \"+this._roundA+\")\"},toHex:function(t){return ce(this._r,this._g,this._b,t)},toHexString:function(t){return\"#\"+this.toHex(t)},toHex8:function(t){return dt(this._r,this._g,this._b,this._a,t)},toHex8String:function(t){return\"#\"+this.toHex8(t)},toRgb:function(){return{r:Math.round(this._r),g:Math.round(this._g),b:Math.round(this._b),a:this._a}},toRgbString:function(){return this._a==1?\"rgb(\"+Math.round(this._r)+\", \"+Math.round(this._g)+\", \"+Math.round(this._b)+\")\":\"rgba(\"+Math.round(this._r)+\", \"+Math.round(this._g)+\", \"+Math.round(this._b)+\", \"+this._roundA+\")\"},toPercentageRgb:function(){return{r:Math.round(E(this._r,255)*100)+\"%\",g:Math.round(E(this._g,255)*100)+\"%\",b:Math.round(E(this._b,255)*100)+\"%\",a:this._a}},toPercentageRgbString:function(){return this._a==1?\"rgb(\"+Math.round(E(this._r,255)*100)+\"%, \"+Math.round(E(this._g,255)*100)+\"%, \"+Math.round(E(this._b,255)*100)+\"%)\":\"rgba(\"+Math.round(E(this._r,255)*100)+\"%, \"+Math.round(E(this._g,255)*100)+\"%, \"+Math.round(E(this._b,255)*100)+\"%, \"+this._roundA+\")\"},toName:function(){return this._a===0?\"transparent\":this._a<1?!1:vt[ce(this._r,this._g,this._b,!0)]||!1},toFilter:function(t){var n=\"#\"+ue(this._r,this._g,this._b,this._a),r=n,o=this._gradientType?\"GradientType = 1, \":\"\";if(t){var s=c(t);r=\"#\"+ue(s._r,s._g,s._b,s._a)}return\"progid:DXImageTransform.Microsoft.gradient(\"+o+\"startColorstr=\"+n+\",endColorstr=\"+r+\")\"},toString:function(t){var n=!!t;t=t||this._format;var r=!1,o=this._a<1&&this._a>=0,s=!n&&o&&(t===\"hex\"||t===\"hex6\"||t===\"hex3\"||t===\"hex4\"||t===\"hex8\"||t===\"name\");return s?t===\"name\"&&this._a===0?this.toName():this.toRgbString():(t===\"rgb\"&&(r=this.toRgbString()),t===\"prgb\"&&(r=this.toPercentageRgbString()),(t===\"hex\"||t===\"hex6\")&&(r=this.toHexString()),t===\"hex3\"&&(r=this.toHexString(!0)),t===\"hex4\"&&(r=this.toHex8String(!0)),t===\"hex8\"&&(r=this.toHex8String()),t===\"name\"&&(r=this.toName()),t===\"hsl\"&&(r=this.toHslString()),t===\"hsv\"&&(r=this.toHsvString()),r||this.toHexString())},clone:function(){return c(this.toString())},_applyModification:function(t,n){var r=t.apply(null,[this].concat([].slice.call(n)));return this._r=r._r,this._g=r._g,this._b=r._b,this.setAlpha(r._a),this},lighten:function(){return this._applyModification(Et,arguments)},brighten:function(){return this._applyModification(Tt,arguments)},darken:function(){return this._applyModification(bt,arguments)},desaturate:function(){return this._applyModification(ft,arguments)},saturate:function(){return this._applyModification(ht,arguments)},greyscale:function(){return this._applyModification(mt,arguments)},spin:function(){return this._applyModification(gt,arguments)},_applyCombination:function(t,n){return t.apply(null,[this].concat([].slice.call(n)))},analogous:function(){return this._applyCombination(xt,arguments)},complement:function(){return this._applyCombination(_t,arguments)},monochromatic:function(){return this._applyCombination(yt,arguments)},splitcomplement:function(){return this._applyCombination(At,arguments)},triad:function(){return this._applyCombination(pe,[3])},tetrad:function(){return this._applyCombination(pe,[4])}};c.fromRatio=function(e,t){if(U(e)==\"object\"){var n={};for(var r in e)e.hasOwnProperty(r)&&(r===\"a\"?n[r]=e[r]:n[r]=F(e[r]));e=n}return c(e,t)};function lt(e){var t={r:0,g:0,b:0},n=1,r=null,o=null,s=null,i=!1,a=!1;return typeof e==\"string\"&&(e=Lt(e)),U(e)==\"object\"&&(y(e.r)&&y(e.g)&&y(e.b)?(t=ct(e.r,e.g,e.b),i=!0,a=String(e.r).substr(-1)===\"%\"?\"prgb\":\"rgb\"):y(e.h)&&y(e.s)&&y(e.v)?(r=F(e.s),o=F(e.v),t=pt(e.h,r,o),i=!0,a=\"hsv\"):y(e.h)&&y(e.s)&&y(e.l)&&(r=F(e.s),s=F(e.l),t=ut(e.h,r,s),i=!0,a=\"hsl\"),e.hasOwnProperty(\"a\")&&(n=e.a)),n=fe(n),{ok:i,format:e.format||a,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:n}}function ct(e,t,n){return{r:E(e,255)*255,g:E(t,255)*255,b:E(n,255)*255}}function ie(e,t,n){e=E(e,255),t=E(t,255),n=E(n,255);var r=Math.max(e,t,n),o=Math.min(e,t,n),s,i,a=(r+o)/2;if(r==o)s=i=0;else{var l=r-o;switch(i=a>.5?l/(2-r-o):l/(r+o),r){case e:s=(t-n)/l+(t<n?6:0);break;case t:s=(n-e)/l+2;break;case n:s=(e-t)/l+4;break}s/=6}return{h:s,s:i,l:a}}function ut(e,t,n){var r,o,s;e=E(e,360),t=E(t,100),n=E(n,100);function i(u,f,T){return T<0&&(T+=1),T>1&&(T-=1),T<1/6?u+(f-u)*6*T:T<1/2?f:T<2/3?u+(f-u)*(2/3-T)*6:u}if(t===0)r=o=s=n;else{var a=n<.5?n*(1+t):n+t-n*t,l=2*n-a;r=i(l,a,e+1/3),o=i(l,a,e),s=i(l,a,e-1/3)}return{r:r*255,g:o*255,b:s*255}}function le(e,t,n){e=E(e,255),t=E(t,255),n=E(n,255);var r=Math.max(e,t,n),o=Math.min(e,t,n),s,i,a=r,l=r-o;if(i=r===0?0:l/r,r==o)s=0;else{switch(r){case e:s=(t-n)/l+(t<n?6:0);break;case t:s=(n-e)/l+2;break;case n:s=(e-t)/l+4;break}s/=6}return{h:s,s:i,v:a}}function pt(e,t,n){e=E(e,360)*6,t=E(t,100),n=E(n,100);var r=Math.floor(e),o=e-r,s=n*(1-t),i=n*(1-o*t),a=n*(1-(1-o)*t),l=r%6,u=[n,i,s,s,a,n][l],f=[a,n,n,i,s,s][l],T=[s,s,a,n,n,i][l];return{r:u*255,g:f*255,b:T*255}}function ce(e,t,n,r){var o=[x(Math.round(e).toString(16)),x(Math.round(t).toString(16)),x(Math.round(n).toString(16))];return r&&o[0].charAt(0)==o[0].charAt(1)&&o[1].charAt(0)==o[1].charAt(1)&&o[2].charAt(0)==o[2].charAt(1)?o[0].charAt(0)+o[1].charAt(0)+o[2].charAt(0):o.join(\"\")}function dt(e,t,n,r,o){var s=[x(Math.round(e).toString(16)),x(Math.round(t).toString(16)),x(Math.round(n).toString(16)),x(he(r))];return o&&s[0].charAt(0)==s[0].charAt(1)&&s[1].charAt(0)==s[1].charAt(1)&&s[2].charAt(0)==s[2].charAt(1)&&s[3].charAt(0)==s[3].charAt(1)?s[0].charAt(0)+s[1].charAt(0)+s[2].charAt(0)+s[3].charAt(0):s.join(\"\")}function ue(e,t,n,r){var o=[x(he(r)),x(Math.round(e).toString(16)),x(Math.round(t).toString(16)),x(Math.round(n).toString(16))];return o.join(\"\")}c.equals=function(e,t){return!e||!t?!1:c(e).toRgbString()==c(t).toRgbString()};c.random=function(){return c.fromRatio({r:Math.random(),g:Math.random(),b:Math.random()})};function ft(e,t){t=t===0?0:t||10;var n=c(e).toHsl();return n.s-=t/100,n.s=N(n.s),c(n)}function ht(e,t){t=t===0?0:t||10;var n=c(e).toHsl();return n.s+=t/100,n.s=N(n.s),c(n)}function mt(e){return c(e).desaturate(100)}function Et(e,t){t=t===0?0:t||10;var n=c(e).toHsl();return n.l+=t/100,n.l=N(n.l),c(n)}function Tt(e,t){t=t===0?0:t||10;var n=c(e).toRgb();return n.r=Math.max(0,Math.min(255,n.r-Math.round(255*-(t/100)))),n.g=Math.max(0,Math.min(255,n.g-Math.round(255*-(t/100)))),n.b=Math.max(0,Math.min(255,n.b-Math.round(255*-(t/100)))),c(n)}function bt(e,t){t=t===0?0:t||10;var n=c(e).toHsl();return n.l-=t/100,n.l=N(n.l),c(n)}function gt(e,t){var n=c(e).toHsl(),r=(n.h+t)%360;return n.h=r<0?360+r:r,c(n)}function _t(e){var t=c(e).toHsl();return t.h=(t.h+180)%360,c(t)}function pe(e,t){if(isNaN(t)||t<=0)throw new Error(\"Argument to polyad must be a positive number\");for(var n=c(e).toHsl(),r=[c(e)],o=360/t,s=1;s<t;s++)r.push(c({h:(n.h+s*o)%360,s:n.s,l:n.l}));return r}function At(e){var t=c(e).toHsl(),n=t.h;return[c(e),c({h:(n+72)%360,s:t.s,l:t.l}),c({h:(n+216)%360,s:t.s,l:t.l})]}function xt(e,t,n){t=t||6,n=n||30;var r=c(e).toHsl(),o=360/n,s=[c(e)];for(r.h=(r.h-(o*t>>1)+720)%360;--t;)r.h=(r.h+o)%360,s.push(c(r));return s}function yt(e,t){t=t||6;for(var n=c(e).toHsv(),r=n.h,o=n.s,s=n.v,i=[],a=1/t;t--;)i.push(c({h:r,s:o,v:s})),s=(s+a)%1;return i}c.mix=function(e,t,n){n=n===0?0:n||50;var r=c(e).toRgb(),o=c(t).toRgb(),s=n/100,i={r:(o.r-r.r)*s+r.r,g:(o.g-r.g)*s+r.g,b:(o.b-r.b)*s+r.b,a:(o.a-r.a)*s+r.a};return c(i)};c.readability=function(e,t){var n=c(e),r=c(t);return(Math.max(n.getLuminance(),r.getLuminance())+.05)/(Math.min(n.getLuminance(),r.getLuminance())+.05)};c.isReadable=function(e,t,n){var r=c.readability(e,t),o,s;switch(s=!1,o=Ot(n),o.level+o.size){case\"AAsmall\":case\"AAAlarge\":s=r>=4.5;break;case\"AAlarge\":s=r>=3;break;case\"AAAsmall\":s=r>=7;break}return s};c.mostReadable=function(e,t,n){var r=null,o=0,s,i,a,l;n=n||{},i=n.includeFallbackColors,a=n.level,l=n.size;for(var u=0;u<t.length;u++)s=c.readability(e,t[u]),s>o&&(o=s,r=c(t[u]));return c.isReadable(e,r,{level:a,size:l})||!i?r:(n.includeFallbackColors=!1,c.mostReadable(e,[\"#fff\",\"#000\"],n))};var j=c.names={aliceblue:\"f0f8ff\",antiquewhite:\"faebd7\",aqua:\"0ff\",aquamarine:\"7fffd4\",azure:\"f0ffff\",beige:\"f5f5dc\",bisque:\"ffe4c4\",black:\"000\",blanchedalmond:\"ffebcd\",blue:\"00f\",blueviolet:\"8a2be2\",brown:\"a52a2a\",burlywood:\"deb887\",burntsienna:\"ea7e5d\",cadetblue:\"5f9ea0\",chartreuse:\"7fff00\",chocolate:\"d2691e\",coral:\"ff7f50\",cornflowerblue:\"6495ed\",cornsilk:\"fff8dc\",crimson:\"dc143c\",cyan:\"0ff\",darkblue:\"00008b\",darkcyan:\"008b8b\",darkgoldenrod:\"b8860b\",darkgray:\"a9a9a9\",darkgreen:\"006400\",darkgrey:\"a9a9a9\",darkkhaki:\"bdb76b\",darkmagenta:\"8b008b\",darkolivegreen:\"556b2f\",darkorange:\"ff8c00\",darkorchid:\"9932cc\",darkred:\"8b0000\",darksalmon:\"e9967a\",darkseagreen:\"8fbc8f\",darkslateblue:\"483d8b\",darkslategray:\"2f4f4f\",darkslategrey:\"2f4f4f\",darkturquoise:\"00ced1\",darkviolet:\"9400d3\",deeppink:\"ff1493\",deepskyblue:\"00bfff\",dimgray:\"696969\",dimgrey:\"696969\",dodgerblue:\"1e90ff\",firebrick:\"b22222\",floralwhite:\"fffaf0\",forestgreen:\"228b22\",fuchsia:\"f0f\",gainsboro:\"dcdcdc\",ghostwhite:\"f8f8ff\",gold:\"ffd700\",goldenrod:\"daa520\",gray:\"808080\",green:\"008000\",greenyellow:\"adff2f\",grey:\"808080\",honeydew:\"f0fff0\",hotpink:\"ff69b4\",indianred:\"cd5c5c\",indigo:\"4b0082\",ivory:\"fffff0\",khaki:\"f0e68c\",lavender:\"e6e6fa\",lavenderblush:\"fff0f5\",lawngreen:\"7cfc00\",lemonchiffon:\"fffacd\",lightblue:\"add8e6\",lightcoral:\"f08080\",lightcyan:\"e0ffff\",lightgoldenrodyellow:\"fafad2\",lightgray:\"d3d3d3\",lightgreen:\"90ee90\",lightgrey:\"d3d3d3\",lightpink:\"ffb6c1\",lightsalmon:\"ffa07a\",lightseagreen:\"20b2aa\",lightskyblue:\"87cefa\",lightslategray:\"789\",lightslategrey:\"789\",lightsteelblue:\"b0c4de\",lightyellow:\"ffffe0\",lime:\"0f0\",limegreen:\"32cd32\",linen:\"faf0e6\",magenta:\"f0f\",maroon:\"800000\",mediumaquamarine:\"66cdaa\",mediumblue:\"0000cd\",mediumorchid:\"ba55d3\",mediumpurple:\"9370db\",mediumseagreen:\"3cb371\",mediumslateblue:\"7b68ee\",mediumspringgreen:\"00fa9a\",mediumturquoise:\"48d1cc\",mediumvioletred:\"c71585\",midnightblue:\"191970\",mintcream:\"f5fffa\",mistyrose:\"ffe4e1\",moccasin:\"ffe4b5\",navajowhite:\"ffdead\",navy:\"000080\",oldlace:\"fdf5e6\",olive:\"808000\",olivedrab:\"6b8e23\",orange:\"ffa500\",orangered:\"ff4500\",orchid:\"da70d6\",palegoldenrod:\"eee8aa\",palegreen:\"98fb98\",paleturquoise:\"afeeee\",palevioletred:\"db7093\",papayawhip:\"ffefd5\",peachpuff:\"ffdab9\",peru:\"cd853f\",pink:\"ffc0cb\",plum:\"dda0dd\",powderblue:\"b0e0e6\",purple:\"800080\",rebeccapurple:\"663399\",red:\"f00\",rosybrown:\"bc8f8f\",royalblue:\"4169e1\",saddlebrown:\"8b4513\",salmon:\"fa8072\",sandybrown:\"f4a460\",seagreen:\"2e8b57\",seashell:\"fff5ee\",sienna:\"a0522d\",silver:\"c0c0c0\",skyblue:\"87ceeb\",slateblue:\"6a5acd\",slategray:\"708090\",slategrey:\"708090\",snow:\"fffafa\",springgreen:\"00ff7f\",steelblue:\"4682b4\",tan:\"d2b48c\",teal:\"008080\",thistle:\"d8bfd8\",tomato:\"ff6347\",turquoise:\"40e0d0\",violet:\"ee82ee\",wheat:\"f5deb3\",white:\"fff\",whitesmoke:\"f5f5f5\",yellow:\"ff0\",yellowgreen:\"9acd32\"},vt=c.hexNames=St(j);function St(e){var t={};for(var n in e)e.hasOwnProperty(n)&&(t[e[n]]=n);return t}function fe(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function E(e,t){Mt(e)&&(e=\"100%\");var n=Rt(e);return e=Math.min(t,Math.max(0,parseFloat(e))),n&&(e=parseInt(e*t,10)/100),Math.abs(e-t)<1e-6?1:e%t/parseFloat(t)}function N(e){return Math.min(1,Math.max(0,e))}function g(e){return parseInt(e,16)}function Mt(e){return typeof e==\"string\"&&e.indexOf(\".\")!=-1&&parseFloat(e)===1}function Rt(e){return typeof e==\"string\"&&e.indexOf(\"%\")!=-1}function x(e){return e.length==1?\"0\"+e:\"\"+e}function F(e){return e<=1&&(e=e*100+\"%\"),e}function he(e){return Math.round(parseFloat(e)*255).toString(16)}function de(e){return g(e)/255}var A=function(){var e=\"[-\\\\+]?\\\\d+%?\",t=\"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\",n=\"(?:\"+t+\")|(?:\"+e+\")\",r=\"[\\\\s|\\\\(]+(\"+n+\")[,|\\\\s]+(\"+n+\")[,|\\\\s]+(\"+n+\")\\\\s*\\\\)?\",o=\"[\\\\s|\\\\(]+(\"+n+\")[,|\\\\s]+(\"+n+\")[,|\\\\s]+(\"+n+\")[,|\\\\s]+(\"+n+\")\\\\s*\\\\)?\";return{CSS_UNIT:new RegExp(n),rgb:new RegExp(\"rgb\"+r),rgba:new RegExp(\"rgba\"+o),hsl:new RegExp(\"hsl\"+r),hsla:new RegExp(\"hsla\"+o),hsv:new RegExp(\"hsv\"+r),hsva:new RegExp(\"hsva\"+o),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();function y(e){return!!A.CSS_UNIT.exec(e)}function Lt(e){e=e.replace(at,\"\").replace(it,\"\").toLowerCase();var t=!1;if(j[e])e=j[e],t=!0;else if(e==\"transparent\")return{r:0,g:0,b:0,a:0,format:\"name\"};var n;return(n=A.rgb.exec(e))?{r:n[1],g:n[2],b:n[3]}:(n=A.rgba.exec(e))?{r:n[1],g:n[2],b:n[3],a:n[4]}:(n=A.hsl.exec(e))?{h:n[1],s:n[2],l:n[3]}:(n=A.hsla.exec(e))?{h:n[1],s:n[2],l:n[3],a:n[4]}:(n=A.hsv.exec(e))?{h:n[1],s:n[2],v:n[3]}:(n=A.hsva.exec(e))?{h:n[1],s:n[2],v:n[3],a:n[4]}:(n=A.hex8.exec(e))?{r:g(n[1]),g:g(n[2]),b:g(n[3]),a:de(n[4]),format:t?\"name\":\"hex8\"}:(n=A.hex6.exec(e))?{r:g(n[1]),g:g(n[2]),b:g(n[3]),format:t?\"name\":\"hex\"}:(n=A.hex4.exec(e))?{r:g(n[1]+\"\"+n[1]),g:g(n[2]+\"\"+n[2]),b:g(n[3]+\"\"+n[3]),a:de(n[4]+\"\"+n[4]),format:t?\"name\":\"hex8\"}:(n=A.hex3.exec(e))?{r:g(n[1]+\"\"+n[1]),g:g(n[2]+\"\"+n[2]),b:g(n[3]+\"\"+n[3]),format:t?\"name\":\"hex\"}:!1}function Ot(e){var t,n;return e=e||{level:\"AA\",size:\"small\"},t=(e.level||\"AA\").toUpperCase(),n=(e.size||\"small\").toLowerCase(),t!==\"AA\"&&t!==\"AAA\"&&(t=\"AA\"),n!==\"small\"&&n!==\"large\"&&(n=\"small\"),{level:t,size:n}}import{clamp as me}from\"@excalidraw/math\";import{degreesToRadians as wt}from\"@excalidraw/math\";var q=typeof window<\"u\"?new Map:null;function Ft(e,t,n,r){let o=e/255,s=t/255,i=n/255,a=wt(r),l=Math.cos(a),u=Math.sin(a),f=[.213+l*.787-u*.213,.715-l*.715-u*.715,.072-l*.072+u*.928,.213-l*.213+u*.143,.715+l*.285+u*.14,.072-l*.072-u*.283,.213-l*.213-u*.787,.715-l*.715+u*.715,.072+l*.928+u*.072],T=o*f[0]+s*f[1]+i*f[2],O=o*f[3]+s*f[4]+i*f[5],_=o*f[6]+s*f[7]+i*f[8];return{r:Math.round(Math.max(0,Math.min(1,T))*255),g:Math.round(Math.max(0,Math.min(1,O))*255),b:Math.round(Math.max(0,Math.min(1,_))*255)}}var It=(e,t,n,r)=>{let o=me(r,0,100)/100,s=u=>{let f=u*(1-o)+(255-u)*o;return Math.round(me(f,0,255))},i=s(e),a=s(t),l=s(n);return{r:i,g:a,b:l}},Cn=e=>{let t=q?.get(e);if(t)return t;let n=c(e),r=n.getAlpha(),o=n.toRgb(),s=It(o.r,o.g,o.b,93),i=Ft(s.r,s.g,s.b,180),a=Te(i.r,i.g,i.b,r);return q&&q.set(e,a),a},Ct=(e,t)=>t.reduce((n,r)=>(r in e&&(n[r]=e[r]),n),{}),Pn=5,Dn=5,kn=4,H=4,G=1,d={transparent:\"transparent\",black:\"#1e1e1e\",white:\"#ffffff\",gray:[\"#f8f9fa\",\"#e9ecef\",\"#ced4da\",\"#868e96\",\"#343a40\"],red:[\"#fff5f5\",\"#ffc9c9\",\"#ff8787\",\"#fa5252\",\"#e03131\"],pink:[\"#fff0f6\",\"#fcc2d7\",\"#f783ac\",\"#e64980\",\"#c2255c\"],grape:[\"#f8f0fc\",\"#eebefa\",\"#da77f2\",\"#be4bdb\",\"#9c36b5\"],violet:[\"#f3f0ff\",\"#d0bfff\",\"#9775fa\",\"#7950f2\",\"#6741d9\"],blue:[\"#e7f5ff\",\"#a5d8ff\",\"#4dabf7\",\"#228be6\",\"#1971c2\"],cyan:[\"#e3fafc\",\"#99e9f2\",\"#3bc9db\",\"#15aabf\",\"#0c8599\"],teal:[\"#e6fcf5\",\"#96f2d7\",\"#38d9a9\",\"#12b886\",\"#099268\"],green:[\"#ebfbee\",\"#b2f2bb\",\"#69db7c\",\"#40c057\",\"#2f9e44\"],yellow:[\"#fff9db\",\"#ffec99\",\"#ffd43b\",\"#fab005\",\"#f08c00\"],orange:[\"#fff4e6\",\"#ffd8a8\",\"#ffa94d\",\"#fd7e14\",\"#e8590c\"],bronze:[\"#f8f1ee\",\"#eaddd7\",\"#d2bab0\",\"#a18072\",\"#846358\"]},Ee=Ct(d,[\"cyan\",\"blue\",\"violet\",\"grape\",\"pink\",\"green\",\"teal\",\"yellow\",\"orange\",\"red\"]),Un=[d.black,d.red[H],d.green[H],d.blue[H],d.yellow[H]],Nn=[d.transparent,d.red[G],d.green[G],d.blue[G],d.yellow[G]],Hn=[d.white,\"#f8f9fa\",\"#f5faff\",\"#fffce8\",\"#fdf8f6\"],Gn={transparent:d.transparent,white:d.white,gray:d.gray,black:d.black,bronze:d.bronze,...Ee},Bn={transparent:d.transparent,white:d.white,gray:d.gray,black:d.black,bronze:d.bronze,...Ee},Kn=e=>[d.cyan[e],d.blue[e],d.violet[e],d.grape[e],d.pink[e],d.green[e],d.teal[e],d.yellow[e],d.orange[e],d.red[e]],Te=(e,t,n,r)=>{let o=`#${(16777216+(e<<16)+(t<<8)+n).toString(16).slice(1)}`;if(r!==void 0&&r<1){let s=Math.round(r*255).toString(16).padStart(2,\"0\");return`${o}${s}`}return o},Vn=e=>{let t=c(e);if(!t.isValid())return null;let{r:n,g:r,b:o,a:s}=t.toRgb();return Te(n,r,o,s)},be=e=>c(e).getAlpha()===0,Wn=240,Pt=(e,t,n)=>(e*299+t*587+n*114)/1e3,Yn=(e,t=160)=>{if(!e)return!0;if(be(e))return!1;let n=c(e);if(!n.isValid())return!0;let{r,g:o,b:s}=n.toRgb();return Pt(r,o,s)<t},$n=e=>{if(e=e.trim(),be(e))return e;let t=c(e);return t.isValid()?[\"hex\",\"hex8\"].includes(t.getFormat())&&!e.startsWith(\"#\")?`#${e}`:e:null};p();var qn=typeof window<\"u\"&&\"ResizeObserver\"in window,Zn=\"Excalidraw\",Qn=36,Jn=10,er=20,tr=8,nr=5,rr=1,or=30,sr=Math.PI/12,ar=\"red\",ir={TEXT:\"text\",CROSSHAIR:\"crosshair\",GRABBING:\"grabbing\",GRAB:\"grab\",POINTER:\"pointer\",MOVE:\"move\",AUTO:\"\"},lr={MAIN:0,WHEEL:1,SECONDARY:2,TOUCH:-1,ERASER:5},cr={enabled:\"all\",disabled:\"none\",inheritFromUI:\"var(--ui-pointerEvents)\"},Dt=(h=>(h.COPY=\"copy\",h.PASTE=\"paste\",h.CUT=\"cut\",h.KEYDOWN=\"keydown\",h.KEYUP=\"keyup\",h.MOUSE_MOVE=\"mousemove\",h.RESIZE=\"resize\",h.UNLOAD=\"unload\",h.FOCUS=\"focus\",h.BLUR=\"blur\",h.DRAG_OVER=\"dragover\",h.DROP=\"drop\",h.GESTURE_END=\"gestureend\",h.BEFORE_UNLOAD=\"beforeunload\",h.GESTURE_START=\"gesturestart\",h.GESTURE_CHANGE=\"gesturechange\",h.POINTER_MOVE=\"pointermove\",h.POINTER_DOWN=\"pointerdown\",h.POINTER_UP=\"pointerup\",h.STATE_CHANGE=\"statechange\",h.WHEEL=\"wheel\",h.TOUCH_START=\"touchstart\",h.TOUCH_END=\"touchend\",h.HASHCHANGE=\"hashchange\",h.VISIBILITY_CHANGE=\"visibilitychange\",h.SCROLL=\"scroll\",h.EXCALIDRAW_LINK=\"excalidraw-link\",h.MENU_ITEM_SELECT=\"menu.itemSelect\",h.MESSAGE=\"message\",h.FULLSCREENCHANGE=\"fullscreenchange\",h))(Dt||{}),ur={UNSTARTED:-1,ENDED:0,PLAYING:1,PAUSED:2,BUFFERING:3,CUED:5},B={TEST:\"test\",DEVELOPMENT:\"development\",PRODUCTION:\"production\"},pr={SIDEBAR:\"sidebar\",SHAPE_ACTIONS_MENU:\"App-menu__left\",ZOOM_ACTIONS:\"zoom-actions\",SEARCH_MENU_INPUT_WRAPPER:\"layer-ui__search-inputWrapper\",CONVERT_ELEMENT_TYPE_POPUP:\"ConvertElementTypePopup\",SHAPE_ACTIONS_THEME_SCOPE:\"shape-actions-theme-scope\",FRAME_NAME:\"frame-name\",DROPDOWN_MENU_EVENT_WRAPPER:\"dropdown-menu-event-wrapper\"},dr={sm:16,md:20,lg:28,xl:36},_e=\"Xiaolai\",I=\"Segoe UI Emoji\",b={Virgil:1,Helvetica:2,Cascadia:3,Excalifont:5,Nunito:6,\"Lilita One\":7,\"Comic Shanns\":8,\"Liberation Sans\":9,Assistant:10},Ae=\"sans-serif\",xe=\"monospace\",kt={[Ae]:998,[xe]:999},Z={[_e]:100,...kt,[I]:1e3};function Ut(e){switch(e){case b.Cascadia:case b[\"Comic Shanns\"]:return xe;default:return Ae}}var ye=e=>{let t=Ut(e);switch(e){case b.Excalifont:return[_e,t,I];default:return[t,I]}},fr={LIGHT:\"light\",DARK:\"dark\"},hr=\"invert(93%) hue-rotate(180deg)\",mr={strokeColor:\"#bbb\",strokeWidth:2,strokeStyle:\"solid\",fillStyle:\"solid\",roughness:0,roundness:null,backgroundColor:\"transparent\",radius:8,nameOffsetY:3,nameColorLightTheme:\"#999999\",nameColorDarkTheme:\"#7a7a7a\",nameFontSize:14,nameLineHeight:1.25},Er=1,Tr=20,br=b.Excalifont,gr=\"left\",_r=\"top\",ve=\"{version}\",Nt=2,Ht=2*Nt,Gt=1e-5,Ar=2*Ht-Gt,xr=\"#ffffff\",yr=\"#1e1e1e\",vr=\"#a2f1a6\",Sr=[\"selectAll\"],Mr=20,Rr=5,Se={svg:\"image/svg+xml\",png:\"image/png\",jpg:\"image/jpeg\",gif:\"image/gif\",webp:\"image/webp\",bmp:\"image/bmp\",ico:\"image/x-icon\",avif:\"image/avif\",jfif:\"image/jfif\"},Bt={text:\"text/plain\",html:\"text/html\",json:\"application/json\",excalidraw:\"application/vnd.excalidraw+json\",excalidrawClipboard:\"application/vnd.excalidraw.clipboard+json\",excalidrawlib:\"application/vnd.excalidrawlib+json\",excalidrawlibIds:\"application/vnd.excalidrawlib.ids+json\"},ge={...Bt,\"excalidraw.svg\":\"image/svg+xml\",\"excalidraw.png\":\"image/png\",binary:\"application/octet-stream\",...Se},Lr=[ge.text,ge.html,...Object.values(Se)],Or={png:\"png\",svg:\"svg\",clipboard:\"clipboard\"},wr={excalidraw:\"excalidraw\",excalidrawClipboard:\"excalidraw/clipboard\",excalidrawLibrary:\"excalidrawlib\",excalidrawClipboardWithAPI:\"excalidraw-api/clipboard\"},Fr=()=>window.EXCALIDRAW_EXPORT_SOURCE||window.location.origin,Ir=500,Cr=300,Pr=500,Dr=1e4,kr=3e4,Ur=100,Nr=.1,Hr=.1,Gr=30,Br=300,Kr=6e4,Vr=3e3,Wr={addLibrary:\"addLibrary\"},Yr={addLibrary:\"addLibrary\"},$r={canvasActions:{changeViewBackgroundColor:!0,clearCanvas:!0,export:{saveFileToDisk:!0},loadScene:!0,saveToActiveFile:!0,toggleTheme:null,saveAsImage:!0},tools:{image:!0}},Xr=2,zr=[1,2,3],jr=10,qr=1440,Zr=4*1024*1024,Qr=\"http://www.w3.org/2000/svg\",Jr=`<?xml version=\"1.0\" standalone=\"no\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n`,eo=128,to={excalidraw:2,excalidrawLibrary:2},no=5,ro=.7,oo=11,so={TOP:\"top\",MIDDLE:\"middle\",BOTTOM:\"bottom\"},ao={LEFT:\"left\",CENTER:\"center\",RIGHT:\"right\"},io=20,lo=.25,co=32,uo={LEGACY:1,PROPORTIONAL_RADIUS:2,ADAPTIVE_RADIUS:3},Kt={architect:0,artist:1,cartoonist:2},po={thin:1,bold:2,extraBold:4},fo={strokeColor:d.black,backgroundColor:d.transparent,fillStyle:\"solid\",strokeWidth:2,strokeStyle:\"solid\",roughness:Kt.artist,opacity:100,locked:!1},Vt=\"library\",ho=\"search\",mo={name:\"default\",defaultTab:Vt},Eo=new Set([\"iframe\",\"embeddable\",\"image\"]),To={selection:\"selection\",lasso:\"lasso\",rectangle:\"rectangle\",diamond:\"diamond\",ellipse:\"ellipse\",arrow:\"arrow\",line:\"line\",freedraw:\"freedraw\",text:\"text\",image:\"image\",eraser:\"eraser\",hand:\"hand\",frame:\"frame\",magicframe:\"magicframe\",embeddable:\"embeddable\",laser:\"laser\"},bo={OAI_API_KEY:\"excalidraw-oai-api-key\",MERMAID_TO_EXCALIDRAW:\"mermaid-to-excalidraw\",PUBLISH_LIBRARY:\"publish-library-data\"},go=\"Untitled\",_o={generalStats:1,elementProperties:2},Ao=1,xo={sharp:\"sharp\",round:\"round\",elbow:\"elbow\"},yo=.3,vo=\"element\",So=Symbol.for(\"__test__originalId__\"),Wt=(r=>(r.ACTIVE=\"active\",r.AWAY=\"away\",r.IDLE=\"idle\",r))(Wt||{}),Mo=20,Ro=35,Lo=700,Oo={background:\"var(--mobile-action-button-bg)\"};p();var K={[b.Excalifont]:{metrics:{unitsPerEm:1e3,ascender:886,descender:-374,lineHeight:1.25}},[b.Nunito]:{metrics:{unitsPerEm:1e3,ascender:1011,descender:-353,lineHeight:1.25}},[b[\"Lilita One\"]]:{metrics:{unitsPerEm:1e3,ascender:923,descender:-220,lineHeight:1.15}},[b[\"Comic Shanns\"]]:{metrics:{unitsPerEm:1e3,ascender:750,descender:-250,lineHeight:1.25}},[b.Virgil]:{metrics:{unitsPerEm:1e3,ascender:886,descender:-374,lineHeight:1.25},deprecated:!0},[b.Helvetica]:{metrics:{unitsPerEm:2048,ascender:1577,descender:-471,lineHeight:1.15},deprecated:!0,local:!0},[b.Cascadia]:{metrics:{unitsPerEm:2048,ascender:1900,descender:-480,lineHeight:1.2},deprecated:!0},[b[\"Liberation Sans\"]]:{metrics:{unitsPerEm:2048,ascender:1854,descender:-434,lineHeight:1.15},private:!0},[b.Assistant]:{metrics:{unitsPerEm:2048,ascender:1021,descender:-287,lineHeight:1.25},private:!0},[Z.Xiaolai]:{metrics:{unitsPerEm:1e3,ascender:880,descender:-144,lineHeight:1.25},fallback:!0},[Z[\"Segoe UI Emoji\"]]:{metrics:{unitsPerEm:1e3,ascender:886,descender:-374,lineHeight:1.25},local:!0,fallback:!0}},Co={LATIN:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",LATIN_EXT:\"U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF\",CYRILIC_EXT:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",CYRILIC:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",VIETNAMESE:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB\"},Po=\"local:\",Do=(e,t,n)=>{let{unitsPerEm:r,ascender:o,descender:s}=K[e]?.metrics||K[b.Excalifont].metrics,i=t/r,a=(n-i*o+i*s)/2;return i*o+a},ko=e=>{let{lineHeight:t}=K[e]?.metrics||K[b.Excalifont].metrics;return t};p();var Me=class{jobs=[];running=!1;tick(){if(this.running)return;let t=this.jobs.shift();t?(this.running=!0,t.promise.resolve(Le(t.jobFactory,...t.args).finally(()=>{this.running=!1,this.tick()}))):this.running=!1}push(t,...n){let r=Re();return this.jobs.push({jobFactory:t,promise:r,args:n}),this.tick(),r}};p();p();var Oe=\"excalidraw.desktopUIMode\",Ko=599,Vo=1e3,Wo=500,Yo=600,$o=1180,Xo=1440,zo=1229,we=/Mac|iPod|iPhone|iPad/.test(navigator.platform),jo=/^Win/.test(navigator.platform),Fe=/\\b(android)\\b/i.test(navigator.userAgent),qo=typeof window<\"u\"&&\"netscape\"in window&&navigator.userAgent.indexOf(\"rv:\")>1&&navigator.userAgent.indexOf(\"Gecko\")>1,Yt=navigator.userAgent.indexOf(\"Chrome\")!==-1,Zo=!Yt&&navigator.userAgent.indexOf(\"Safari\")!==-1,Ie=/iPad|iPhone/i.test(navigator.platform)||navigator.userAgent.includes(\"Mac\")&&\"ontouchend\"in document,Qo=()=>navigator.brave?.isBrave?.name===\"isBrave\",$t=(e,t)=>e<=599||t<500&&e<1e3,Xt=(e,t)=>{let n=Math.min(e,t),r=Math.max(e,t);return n>=600&&r<=1180},zt=()=>{let e=navigator.userAgent||\"\",t=navigator.platform||\"\",n=navigator.userAgentData;if(n){let o=(n.platform||\"\").toLowerCase(),s=o===\"windows\"||o===\"macos\"||o===\"linux\"||o===\"chrome os\";if(n.mobile===!0)return!0;if(n.mobile===!1&&o===\"android\")return matchMedia?.(\"(hover: none)\").matches&&matchMedia?.(\"(pointer: coarse)\").matches;if(s)return!1}if(Ie)return!0;if(Fe){let o=/Mobile/i.test(e);if(o||!o)return matchMedia?.(\"(hover: none)\").matches&&matchMedia?.(\"(pointer: coarse)\").matches}return/Win|Linux|CrOS|Mac/.test(t)||/Windows NT|X11|CrOS|Macintosh/.test(e),!1},Jo=(e,t)=>$t(e,t)?\"phone\":Xt(e,t)?\"tablet\":\"desktop\",es=e=>e.formFactor===\"phone\"?\"mobile\":e.formFactor===\"tablet\"?\"compact\":e.desktopUIMode,ts=e=>{let t=e??\"\",n=\"unknown\";return Ie?n=\"ios\":Fe?n=\"android\":t&&(n=\"other\"),{isMobileDevice:zt(),platform:n}},ns=()=>{if(typeof window>\"u\")return null;try{let e=window.localStorage.getItem(Oe);if(e===\"compact\"||e===\"full\")return e}catch{}return null},jt=e=>{if(!(typeof window>\"u\"))try{window.localStorage.setItem(Oe,e)}catch{}},rs=e=>{if(!(e!==\"compact\"&&e!==\"full\"))return jt(e),e};var Ce={EQUAL:\"Equal\",MINUS:\"Minus\",NUM_ADD:\"NumpadAdd\",NUM_SUBTRACT:\"NumpadSubtract\",NUM_ZERO:\"Numpad0\",BRACKET_RIGHT:\"BracketRight\",BRACKET_LEFT:\"BracketLeft\",ONE:\"Digit1\",TWO:\"Digit2\",THREE:\"Digit3\",NINE:\"Digit9\",QUOTE:\"Quote\",ZERO:\"Digit0\",SLASH:\"Slash\",C:\"KeyC\",D:\"KeyD\",H:\"KeyH\",V:\"KeyV\",Z:\"KeyZ\",Y:\"KeyY\",R:\"KeyR\",S:\"KeyS\"},R={ARROW_DOWN:\"ArrowDown\",ARROW_LEFT:\"ArrowLeft\",ARROW_RIGHT:\"ArrowRight\",ARROW_UP:\"ArrowUp\",PAGE_UP:\"PageUp\",PAGE_DOWN:\"PageDown\",BACKSPACE:\"Backspace\",ALT:\"Alt\",CTRL_OR_CMD:we?\"metaKey\":\"ctrlKey\",DELETE:\"Delete\",ENTER:\"Enter\",ESCAPE:\"Escape\",QUESTION_MARK:\"?\",SPACE:\" \",TAB:\"Tab\",CHEVRON_LEFT:\"<\",CHEVRON_RIGHT:\">\",PERIOD:\".\",COMMA:\",\",SUBTRACT:\"-\",SLASH:\"/\",A:\"a\",C:\"c\",D:\"d\",E:\"e\",F:\"f\",G:\"g\",H:\"h\",I:\"i\",L:\"l\",O:\"o\",P:\"p\",Q:\"q\",R:\"r\",S:\"s\",T:\"t\",V:\"v\",X:\"x\",Y:\"y\",Z:\"z\",K:\"k\",W:\"w\",0:\"0\",1:\"1\",2:\"2\",3:\"3\",4:\"4\",5:\"5\",6:\"6\",7:\"7\",8:\"8\",9:\"9\"},qt=new Map([[R.Z,Ce.Z],[R.Y,Ce.Y]]),Zt=e=>/^[a-z]$/.test(e.toLowerCase()),is=(e,t)=>{if(t===e.key.toLowerCase())return!0;let n=qt.get(t);return!!(n&&!Zt(e.key)&&e.code===n)},ls=e=>e===R.ARROW_LEFT||e===R.ARROW_RIGHT||e===R.ARROW_DOWN||e===R.ARROW_UP,cs=e=>e.altKey,us=e=>e.shiftKey,ps=e=>e.shiftKey;p();import{pointFromPair as Qt}from\"@excalidraw/math\";var ms=e=>{let t=e.map(r=>r[0]),n=e.map(r=>r[1]);return{width:Math.max(...t)-Math.min(...t),height:Math.max(...n)-Math.min(...n)}},Es=(e,t,n,r)=>{let o=n.map(_=>_[e]),s=Math.max(...o),i=Math.min(...o),a=s-i,l=a===0?1:t/a,u=1/0,f=n.map(_=>{let v=_[e]*l,S=[..._];return S[e]=v,v<u&&(u=v),S});if(!r||f.length===2)return f;let T=i-u;return f.map(_=>Qt(_.map((v,S)=>S===e?v+T:v)))},Ts=(e,t,n)=>n?[Math.round(e/n)*n,Math.round(t/n)*n]:[e,t];p();var Ue=se(De(),1),ke=class{pool;entries={};constructor(t,n){this.pool=new Ue.default(t,n)}all(){let t=n=>{if(n.data.result){let[r,o]=n.data.result;this.entries[r]=o}};return this.pool.addEventListener(\"fulfilled\",t),this.pool.start().then(()=>(setTimeout(()=>{this.pool.removeEventListener(\"fulfilled\",t)}),Object.values(this.entries)))}};p();p();p();var Ne=(e=21)=>crypto.getRandomValues(new Uint8Array(e)).reduce((t,n)=>(n&=63,n<36?t+=n.toString(36):n<62?t+=(n-26).toString(36).toUpperCase():n>62?t+=\"-\":t+=\"_\",t),\"\");p();var C=class{constructor(t){this.seed=t}next(){return this.seed?(2**31-1&(this.seed=Math.imul(48271,this.seed)))/2**31:Math.random()}};p();import{average as V}from\"@excalidraw/math\";var J=null,Cs=e=>{J=e},Ps=()=>{if(J)return J;let e=new Date,t=e.getFullYear(),n=`${e.getMonth()+1}`.padStart(2,\"0\"),r=`${e.getDate()}`.padStart(2,\"0\"),o=`${e.getHours()}`.padStart(2,\"0\"),s=`${e.getMinutes()}`.padStart(2,\"0\");return`${t}-${n}-${r}-${o}${s}`},Ds=e=>e.charAt(0).toUpperCase()+e.slice(1),ks=e=>e instanceof HTMLElement&&e.className.includes(\"ToolIcon\"),Jt=e=>e instanceof HTMLElement&&e.dataset.type===\"wysiwyg\"||e instanceof HTMLBRElement||e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement,Us=e=>Jt(e)||e instanceof Element&&!!e.closest(\"label, button\"),Ns=e=>e instanceof HTMLElement&&e.dataset.type===\"wysiwyg\"||e instanceof HTMLBRElement||e instanceof HTMLTextAreaElement||e instanceof HTMLInputElement&&(e.type===\"text\"||e.type===\"number\"||e.type===\"password\"||e.type===\"search\")||e instanceof HTMLElement&&e.closest(\".cm-editor\")!==null,en=({fontFamily:e})=>{for(let[t,n]of Object.entries(b))if(n===e)return`${t}${ye(n).map(r=>`, ${r}`).join(\"\")}`;return I},Hs=({fontSize:e,fontFamily:t})=>`${e}px ${en({fontFamily:t})}`,Gs=async e=>{requestAnimationFrame(()=>requestAnimationFrame(e))},Bs=(e,t)=>{let n=0,r=null,o=(...s)=>{r=s,clearTimeout(n),n=window.setTimeout(()=>{r=null,e(...s)},t)};return o.flush=()=>{if(clearTimeout(n),r){let s=r;r=null,e(...s)}},o.cancel=()=>{r=null,clearTimeout(n)},o},Ks=e=>{let t=null,n=null,r=()=>{t=window.requestAnimationFrame(()=>{t=null;let s=n;n=null,s&&e(...s)})},o=(...s)=>{n=s,t===null&&r()};return o.flush=()=>{t!==null&&(cancelAnimationFrame(t),t=null),n&&(e(...n),n=null)},o.cancel=()=>{n=null,t!==null&&(cancelAnimationFrame(t),t=null)},o},Be=e=>1-Math.pow(1-e,4),He=(e,t,n)=>(t-e)*Be(n)+e,Vs=({fromValues:e,toValues:t,onStep:n,duration:r=250,interpolateValue:o,onStart:s,onEnd:i,onCancel:a})=>{let l=!1,u=0,f;function T(O){if(l)return;f===void 0&&(f=O,s?.());let _=Math.min(O-f,r),v=Be(_/r),S={};if(Object.keys(e).forEach(w=>{let M=w,$=(t[M]-e[M])*v+e[M];S[M]=$}),n(S),_<r){let w=_/r,M={};Object.keys(e).forEach($=>{let D=$,X=e[D],z=t[D],k;k=o?o(X,z,w,D):He(X,z,w),k==null&&(k=He(X,z,w)),M[D]=k}),n(M),u=window.requestAnimationFrame(T)}else n(t),i?.()}return u=window.requestAnimationFrame(T),()=>{a?.(),l=!0,window.cancelAnimationFrame(u)}},Ws=(e,t)=>{if(!e.length||t<1)return[];let n=0,r=0,o=Array(Math.ceil(e.length/t));for(;n<e.length;)o[r++]=e.slice(n,n+=t);return o},Ys=e=>{let t=window.getSelection();if(t){let n=document.createRange();n.selectNodeContents(e),t.removeAllRanges(),t.addRange(n)}},$s=()=>{let e=window.getSelection();e&&e.removeAllRanges()},Xs=(e,t)=>Math.abs(e-t),zs=e=>e===\"selection\"||e===\"lasso\",js=(e,t)=>t.type===\"custom\"?{...e.activeTool,type:\"custom\",customType:t.customType,locked:t.locked??e.activeTool.locked}:{...e.activeTool,lastActiveTool:t.lastActiveToolBeforeEraser===void 0?e.activeTool.lastActiveTool:t.lastActiveToolBeforeEraser,type:t.type,customType:null,locked:t.locked??e.activeTool.locked,fromSelection:t.fromSelection??!1},qs=()=>document.fullscreenElement?.nodeName===\"HTML\",Zs=()=>document.documentElement.requestFullscreen(),Qs=()=>document.exitFullscreen(),Js=({clientX:e,clientY:t},{zoom:n,offsetLeft:r,offsetTop:o,scrollX:s,scrollY:i})=>{let a=(e-r)/n.value-s,l=(t-o)/n.value-i;return{x:a,y:l}},ea=({sceneX:e,sceneY:t},{zoom:n,offsetLeft:r,offsetTop:o,scrollX:s,scrollY:i})=>{let a=(e+s)*n.value+r,l=(t+i)*n.value+o;return{x:a,y:l}},ta=e=>getComputedStyle(document.documentElement).getPropertyValue(`--${e}`),tn=\"A-Za-z\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02B8\\u0300-\\u0590\\u0800-\\u1FFF\\u2C00-\\uFB1C\\uFDFE-\\uFE6F\\uFEFD-\\uFFFF\",nn=\"\\u0591-\\u07FF\\uFB1D-\\uFDFD\\uFE70-\\uFEFC\",rn=new RegExp(`^[^${tn}]*[${nn}]`),na=e=>rn.test(e),ra=e=>{let[t,n]=e;return{x:t,y:n}},oa=e=>{if(e?.name===\"AbortError\"){console.warn(e);return}throw e},sa=(e,t,n=0)=>{n<0&&(n=e.length+n),n=Math.min(e.length,Math.max(n,0));let r=n-1;for(;++r<e.length;)if(t(e[r],r,e))return r;return-1},aa=(e,t,n=e.length-1)=>{n<0&&(n=e.length+n),n=Math.min(e.length-1,Math.max(n,0));let r=n+1;for(;--r>-1;)if(t(e[r],r,e))return r;return-1},ia=(e,t)=>{for(let n=0;n<e.length;n++){let r=t(e[n],n);if(r!=null)return r}},Re=()=>{let e,t,n=new Promise((r,o)=>{e=r,t=o});return n.resolve=e,n.reject=t,n},la=(e,t)=>{let n=[{value:1,symbol:\"b\"},{value:1e3,symbol:\"k\"},{value:1e6,symbol:\"M\"},{value:1e9,symbol:\"G\"}],r=/\\.0+$|(\\.[0-9]*[1-9])0+$/,o;for(o=n.length-1;o>0&&!(e>=n[o].value);o--);return(e/n[o].value).toFixed(t).replace(r,\"$1\")+n[o].symbol},ca=()=>document.querySelector('meta[name=\"version\"]')?.content||ve,ua=()=>{let t=document.createElement(\"canvas\").getContext(\"2d\");if(!t)return!1;let n=12;return t.fillStyle=\"#f00\",t.textBaseline=\"top\",t.font=\"32px Arial\",t.fillText(\"\\u{1F600}\",0,0),t.getImageData(n,n,1,1).data[0]!==0},pa=e=>{let t=e.parentElement;for(;t;){if(t===document.body)return document;let{overflowY:n}=window.getComputedStyle(t);if(t.scrollHeight>t.clientHeight&&(n===\"auto\"||n===\"scroll\"||n===\"overlay\"))return t;t=t.parentElement}return document},da=e=>{let t=e.parentElement;for(;t;){if(t.tabIndex>-1){t.focus();return}t=t.parentElement}},fa=e=>{e.preventDefault(),e.returnValue=\"\"},ha=e=>Array.from(e).map(t=>`0${t.toString(16)}`.slice(-2)).join(\"\"),ma=()=>te()?1:Date.now(),Ea=e=>e instanceof Map?e:e.reduce((t,n)=>(t.set(typeof n==\"string\"?n:n.id,n),t),new Map),Ta=e=>e.reduce((t,n,r)=>(t.set(n.id,[n,r]),t),new Map),ba=(e,t)=>e.reduce((n,r,o)=>(n[t?t(r):o]=r,n),{}),ga=e=>e.reduce((t,n,r)=>{let o={...n,prev:null,next:null};if(r!==0){let s=t[r-1];if(o.prev=s,s.next=o,r===e.length-1){let i=t[0];o.next=i,i.prev=o}}return t.push(o),t},[]),on=e=>Array.isArray(e)?e:e.values(),_a=e=>Array.isArray(e)?e:Array.from(on(e)),te=()=>m.MODE===B.TEST,Aa=()=>m.MODE===B.DEVELOPMENT,Ke=()=>m.MODE===B.PRODUCTION,xa=()=>typeof process<\"u\"&&!0,ya=(e,t)=>new CustomEvent(e,{detail:{nativeEvent:t},cancelable:!0}),va=(e,t)=>{let n=!1;for(let r in t){let o=t[r];if(typeof o<\"u\"){if(e[r]===o&&(typeof o!=\"object\"||o===null))continue;n=!0}}return n?{...e,...t}:e},Sa=e=>{let t=typeof e;return e==null||t!==\"object\"&&t!==\"function\"},sn=()=>{try{return window.self===window.top?\"top\":\"iframe\"}catch{return\"iframe\"}},Ma=()=>sn()===\"iframe\",Ra=e=>!!e&&typeof e==\"object\"&&\"then\"in e&&\"catch\"in e&&\"finally\"in e,La=e=>{let t=e?.querySelectorAll(\"button, a, input, select, textarea, div[tabindex], label[tabindex]\");return t?Array.from(t).filter(n=>n.tabIndex>-1&&!n.disabled):[]},Ge=(e,t)=>Array.isArray(e)&&Array.isArray(t)&&e.length===0&&t.length===0?!0:e===t,an=(e,t,n,r=!1)=>{let o=Object.keys(e),s=Object.keys(t);if(o.length!==s.length)return r&&console.warn(\"%cisShallowEqual: objects don't have same properties ->\",\"color: #8B4000\",e,t),!1;if(n&&Array.isArray(n)){for(let i of n)if(!(e[i]===t[i]||Ge(e[i],t[i])))return r&&console.warn(`%cisShallowEqual: ${i} not equal ->`,\"color: #8B4000\",e[i],t[i]),!1;return!0}return o.every(i=>{let a=n?.[i],l=a?a(e[i],t[i]):e[i]===t[i]||Ge(e[i],t[i]);return!l&&r&&console.warn(`%cisShallowEqual: ${i} not equal ->`,\"color: #8B4000\",e[i],t[i]),l})},Oa=(e,t,{checkForDefaultPrevented:n=!0}={})=>function(o){if(e?.(o),!n||!o?.defaultPrevented)return t?.(o)},wa=(e,t,n)=>{if(!t)return e;if(n)return console.error(t),e;throw new Error(t)};function Fa(e,t){if(!e)throw new Error(t)}var Ia=e=>{let t,n,r=function(o){let s=Object.entries(o);if(t){let a=!0;for(let[l,u]of s)if(t.get(l)!==u){a=!1;break}if(a)return n}let i=e(o);return t=new Map(s),n=i,i};return r.clear=()=>{t=void 0,n=void 0},r},Ca=(e,t)=>e instanceof Set||e instanceof Map?e.has(t):\"includes\"in e?e.includes(t):e.hasOwnProperty(t),Pa=e=>JSON.parse(JSON.stringify(e)),Da=(e,t)=>an(e,t)?e:t;function ka(e,t,n,r){return e?(e?.addEventListener?.(t,n,r),()=>{e?.removeEventListener?.(t,n,r)}):()=>{}}function Ua(e,t=!0){let n=e.length;if(n<4)return\"\";let r=e[0],o=e[1],s=e[2],i=`M${r[0].toFixed(2)},${r[1].toFixed(2)} Q${o[0].toFixed(2)},${o[1].toFixed(2)} ${V(o[0],s[0]).toFixed(2)},${V(o[1],s[1]).toFixed(2)} T`;for(let a=2,l=n-1;a<l;a++)r=e[a],o=e[a+1],i+=`${V(r[0],o[0]).toFixed(2)},${V(r[1],o[1]).toFixed(2)} `;return t&&(i+=\"Z\"),i}var Na=e=>e.replace(/\\r?\\n|\\r/g,`\n`);function Ha(e){return e}var Le=async(e,...t)=>new Promise(n=>{n(e(...t))}),Ga=(...e)=>Math.max(...e.map(t=>t?1:0))>0,Ba=e=>{try{return JSON.parse(e)}catch{return null}},Ve=e=>e.replace(/\"/g,\"&quot;\"),Ka=e=>Array.isArray(e)?e:[e],ln=e=>Array.isArray(e),cn=e=>ln(e)?e.length:e instanceof Map||e instanceof Set?e.size:Object.keys(e).length,Va=(e,t)=>{if(cn(e)===0)return null;let n=t||(o=>o),r=null;for(let o of e){let s=n(o);if((r===null||r===s)&&s!=null)r=s;else return null}return r},We=\"excalidraw-feature-flags\",ee={COMPLEX_BINDINGS:!1},L=null,Wa=e=>{if(!L)try{let t=localStorage.getItem(We);t&&(L=JSON.parse(t)??ee)}catch{}return(L||ee)[e]},Ya=(e,t)=>{try{L={...L||ee,[e]:t},localStorage.setItem(We,JSON.stringify(L))}catch(n){console.error(\"unable to set feature flag\",n)}},$a=(e,t)=>t.includes(e);var Ye=new C(Date.now()),$e=0,Qa=()=>Math.floor(Ye.next()*2**31),Ja=e=>{Ye=new C(e),$e=0},ei=()=>te()?`id${$e++}`:Ne();p();var ze=se(Xe(),1);var gn=e=>(e=e.trim(),e&&(0,ze.sanitizeUrl)(Ve(e))),ai=e=>!!(e?.includes(location.origin)||e?.startsWith(\"/\")),ii=e=>{if(e=gn(e),e.startsWith(\"/\"))return`${location.origin}${e}`;try{new URL(e)}catch{return\"about:blank\"}return e};p();var Y=class{subscribers=[];on(...t){let n=t.flat().filter(r=>typeof r==\"function\");return this.subscribers.push(...n),()=>this.off(n)}once(...t){let n=t.flat().filter(o=>typeof o==\"function\");n.push(()=>r());let r=this.on(...n);return r}off(...t){let n=t.flat();this.subscribers=this.subscribers.filter(r=>!n.includes(r))}trigger(...t){for(let n of this.subscribers)n(...t);return this}clear(){this.subscribers=[]}};p();var je=class{constructor(t){this.behavior=t}emitters=new Map;lastPayload=new Map;emittedOnce=new Set;getEmitter(t){let n=this.emitters.get(t);return n||(n=new Y,this.emitters.set(t,n)),n}toPromiseValue(t){return t.length===1?t[0]:t}on(t,n){let r=this.behavior[t],o=this.lastPayload.get(t);if(n)return r.replay===\"last\"&&o&&(queueMicrotask(()=>n(...o)),r.cardinality===\"once\")?()=>{}:this.getEmitter(t).on(n);if(r.cardinality!==\"once\"||r.replay!==\"last\")throw new Error(`Event \"${String(t)}\" requires a callback`);return o?Promise.resolve(this.toPromiseValue(o)):new Promise(s=>{this.getEmitter(t).once((...i)=>{s(this.toPromiseValue(i))})})}emit(t,...n){let r=this.behavior[t];if(!Ke()&&r.cardinality===\"once\"){if(this.emittedOnce.has(t))throw new Error(`Event \"${String(t)}\" can only be emitted once`);this.emittedOnce.add(t)}r.replay===\"last\"&&this.lastPayload.set(t,n);try{this.getEmitter(t).trigger(...n)}finally{r.cardinality===\"once\"&&this.getEmitter(t).clear()}}clear(){this.lastPayload.clear(),this.emittedOnce.clear();for(let t of this.emitters.values())t.clear();this.emitters.clear()}};p();var qe=class{constructor(t,n=Object.is){this.isEqual=n;this.value=t}version=0;value;waiters=new Set;subscribers=new Set;getSnapshot(){return{version:this.version,value:this.value}}set(t){if(this.isEqual(this.value,t))return!1;this.value=t,this.version+=1;let n=this.getSnapshot();for(let r of this.subscribers)r(n);for(let r of this.waiters)r(n);return this.waiters.clear(),!0}update(t){return this.set(t(this.value))}subscribe(t){return this.subscribers.add(t),()=>{this.subscribers.delete(t)}}pull(t=-1){return this.version!==t?Promise.resolve(this.getSnapshot()):new Promise(n=>{this.waiters.add(n)})}};p();var P=(e,t=5)=>parseFloat(e.toPrecision(t)),_n=e=>P(e.reduce((t,n)=>t+n)/e.length),ne=class e{static DEBUG_LOG_TIMES=!0;static TIMES_AGGR={};static TIMES_AVG={};static LAST_DEBUG_LOG_CALL=0;static DEBUG_LOG_INTERVAL_ID=null;static LAST_FRAME_TIMESTAMP=0;static FRAME_COUNT=0;static ANIMATION_FRAME_ID=null;static scheduleAnimationFrame=()=>{e.DEBUG_LOG_INTERVAL_ID!==null&&(e.ANIMATION_FRAME_ID=requestAnimationFrame(t=>{e.LAST_FRAME_TIMESTAMP!==t&&(e.LAST_FRAME_TIMESTAMP=t,e.FRAME_COUNT++),e.DEBUG_LOG_INTERVAL_ID!==null&&e.scheduleAnimationFrame()}))};static setupInterval=()=>{e.DEBUG_LOG_INTERVAL_ID===null&&(console.info(\"%c(starting perf recording)\",\"color: lime\"),e.DEBUG_LOG_INTERVAL_ID=window.setInterval(e.debugLogger,1e3),e.scheduleAnimationFrame()),e.LAST_DEBUG_LOG_CALL=Date.now()};static debugLogger=()=>{if(e.DEBUG_LOG_TIMES){for(let[t,{t:n,times:r}]of Object.entries(e.TIMES_AGGR))r.length&&(console.info(t,P(r.reduce((o,s)=>o+s)),r.sort((o,s)=>o-s).map(o=>P(o))),e.TIMES_AGGR[t]={t:n,times:[]});for(let[t,{t:n,times:r,avg:o}]of Object.entries(e.TIMES_AVG))if(r.length){let s=r.reduce((a,l)=>a+l),i=P(s/e.FRAME_COUNT);console.info(t,`- ${r.length} calls - ${i}ms/frame across ${e.FRAME_COUNT} frames (${P(i/16.67*100,1)}% of frame budget)`),e.TIMES_AVG[t]={t:n,times:[],avg:o!=null?_n([o,i]):i}}}e.FRAME_COUNT=0,Date.now()-e.LAST_DEBUG_LOG_CALL>600&&e.DEBUG_LOG_INTERVAL_ID!==null&&(console.info(\"%c(stopping perf recording)\",\"color: red\"),window.clearInterval(e.DEBUG_LOG_INTERVAL_ID),window.cancelAnimationFrame(e.ANIMATION_FRAME_ID),e.ANIMATION_FRAME_ID=null,e.FRAME_COUNT=0,e.LAST_FRAME_TIMESTAMP=0,e.DEBUG_LOG_INTERVAL_ID=null,e.TIMES_AGGR={},e.TIMES_AVG={})};static logTime=(t,n=\"default\")=>{e.setupInterval();let r=performance.now(),{t:o,times:s}=e.TIMES_AGGR[n]=e.TIMES_AGGR[n]||{t:0,times:[]};o&&s.push(t??r-o),e.TIMES_AGGR[n].t=r};static logTimeAverage=(t,n=\"default\")=>{e.setupInterval();let r=performance.now(),{t:o,times:s}=e.TIMES_AVG[n]=e.TIMES_AVG[n]||{t:0,times:[]};o&&s.push(t??r-o),e.TIMES_AVG[n].t=r};static logWrapper=t=>(n,r=\"default\")=>(...o)=>{let s=performance.now(),i=n(...o);return e[t](performance.now()-s,r),i};static logTimeWrap=e.logWrapper(\"logTime\");static logTimeAverageWrap=e.logWrapper(\"logTimeAverage\");static perfWrap=(t,n=\"default\")=>(...r)=>{console.time(n);let o=t(...r);return console.timeEnd(n),o};static CHANGED_CACHE={};static logChanged(t,n){let r=e.CHANGED_CACHE[t];if(e.CHANGED_CACHE[t]=n,!r)return;let o=new Set([...Object.keys(r),...Object.keys(n)]),s={};for(let i of o){let a=r[i],l=n[i];Ze(a,l)||(s[i]={prev:a,next:l})}Object.keys(s).length>0&&console.info(`[${t}] changed:`,s)}};function Ze(e,t){if(Object.is(e,t))return!0;if(e===null||t===null||typeof e!=\"object\"||typeof t!=\"object\"||Array.isArray(e)!==Array.isArray(t))return!1;let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let o of n)if(!Ze(e[o],t[o]))return!1;return!0}export{Vr as ACTIVE_THRESHOLD,Lr as ALLOWED_PASTE_MIME_TYPES,Zn as APP_NAME,oo as ARROW_LABEL_FONT_SIZE_TO_MIN_WIDTH_RATIO,ro as ARROW_LABEL_WIDTH_FRACTION,xo as ARROW_TYPE,je as AppEventBus,Lo as BIND_MODE_TIMEOUT,no as BOUND_TEXT_PADDING,ae as BinaryHeap,Sr as CANVAS_ONLY_ACTIONS,ho as CANVAS_SEARCH_TAB,_e as CJK_HAND_DRAWN_FALLBACK_FONT,pr as CLASSES,Ce as CODES,Dn as COLORS_PER_ROW,yr as COLOR_CHARCOAL_BLACK,Wn as COLOR_OUTLINE_CONTRAST_THRESHOLD,d as COLOR_PALETTE,vr as COLOR_VOICE_CALL,xr as COLOR_WHITE,ir as CURSOR_TYPE,hr as DARK_THEME_FILTER,co as DEFAULT_ADAPTIVE_RADIUS,Hn as DEFAULT_CANVAS_BACKGROUND_PICKS,kn as DEFAULT_CHART_COLOR_INDEX,Ar as DEFAULT_COLLISION_THRESHOLD,G as DEFAULT_ELEMENT_BACKGROUND_COLOR_INDEX,Bn as DEFAULT_ELEMENT_BACKGROUND_COLOR_PALETTE,Nn as DEFAULT_ELEMENT_BACKGROUND_PICKS,fo as DEFAULT_ELEMENT_PROPS,H as DEFAULT_ELEMENT_STROKE_COLOR_INDEX,Gn as DEFAULT_ELEMENT_STROKE_COLOR_PALETTE,Un as DEFAULT_ELEMENT_STROKE_PICKS,jr as DEFAULT_EXPORT_PADDING,go as DEFAULT_FILENAME,br as DEFAULT_FONT_FAMILY,Tr as DEFAULT_FONT_SIZE,Mr as DEFAULT_GRID_SIZE,Rr as DEFAULT_GRID_STEP,ar as DEFAULT_LASER_COLOR,qr as DEFAULT_MAX_IMAGE_WIDTH_OR_HEIGHT,lo as DEFAULT_PROPORTIONAL_RADIUS,yo as DEFAULT_REDUCED_GLOBAL_ALPHA,mo as DEFAULT_SIDEBAR,gr as DEFAULT_TEXT_ALIGN,Nt as DEFAULT_TRANSFORM_HANDLE_SPACING,$r as DEFAULT_UI_OPTIONS,ve as DEFAULT_VERSION,_r as DEFAULT_VERTICAL_ALIGN,Ro as DOUBLE_TAP_POSITION_THRESHOLD,Jn as DRAGGING_THRESHOLD,ne as Debug,bo as EDITOR_LS_KEYS,vo as ELEMENT_LINK_KEY,io as ELEMENT_READY_TO_ERASE_OPACITY,nr as ELEMENT_SHIFT_TRANSLATE_AMOUNT,rr as ELEMENT_TRANSLATE_AMOUNT,eo as ENCRYPTION_KEY_BITS,B as ENV,Gt as EPSILON,Dt as EVENT,wr as EXPORT_DATA_TYPES,Or as EXPORT_IMAGE_TYPES,zr as EXPORT_SCALES,Y as Emitter,b as FONT_FAMILY,Z as FONT_FAMILY_FALLBACKS,kt as FONT_FAMILY_GENERIC_FALLBACKS,K as FONT_METADATA,dr as FONT_SIZES,mr as FRAME_STYLE,Co as GOOGLE_FONTS_RANGES,Br as HYPERLINK_TOOLTIP_DELAY,Kr as IDLE_THRESHOLD,Se as IMAGE_MIME_TYPES,Ir as IMAGE_RENDER_TIMEOUT,R as KEYS,qt as KeyCodeMap,Eo as LIBRARY_DISABLED_TYPES,Vt as LIBRARY_SIDEBAR_TAB,tr as LINE_CONFIRM_THRESHOLD,Mo as LINE_POLYGON_POINT_MERGE_DISTANCE,Po as LOCAL_FONT_PROTOCOL,Zr as MAX_ALLOWED_FILE_BYTES,Pn as MAX_CUSTOM_COLORS_USED_IN_CANVAS,Xr as MAX_DECIMALS_FOR_SVG_EXPORT,Gr as MAX_ZOOM,ge as MIME_TYPES,er as MINIMUM_ARROW_SIZE,Er as MIN_FONT_SIZE,Ao as MIN_WIDTH_OR_HEIGHT,Hr as MIN_ZOOM,Oo as MOBILE_ACTION_BUTTON_BG,xe as MONOSPACE_GENERIC_FONT,Wo as MQ_MAX_HEIGHT_LANDSCAPE,Ko as MQ_MAX_MOBILE,$o as MQ_MAX_TABLET,Vo as MQ_MAX_WIDTH_LANDSCAPE,Yo as MQ_MIN_TABLET,Xo as MQ_MIN_WIDTH_DESKTOP,zo as MQ_RIGHT_SIDEBAR_MIN_WIDTH,So as ORIG_ID,lr as POINTER_BUTTON,cr as POINTER_EVENTS,ke as PromisePool,Me as Queue,Kt as ROUGHNESS,uo as ROUNDNESS,Ae as SANS_SERIF_GENERIC_FONT,Ur as SCROLL_TIMEOUT,sr as SHIFT_LOCKING_ANGLE,Ht as SIDE_RESIZING_THRESHOLD,_o as STATS_PANELS,Bt as STRING_MIME_TYPES,po as STROKE_WIDTH,Jr as SVG_DOCUMENT_PREAMBLE,Qr as SVG_NS,Cr as TAP_TWICE_TIMEOUT,ao as TEXT_ALIGN,Qn as TEXT_AUTOWRAP_THRESHOLD,or as TEXT_TO_CENTER_SNAP_THRESHOLD,fr as THEME,Dr as TITLE_TIMEOUT,To as TOOL_TYPE,Pr as TOUCH_CTX_MENU_TIMEOUT,Yr as URL_HASH_KEYS,Wr as URL_QUERY_KEYS,Wt as UserIdleState,to as VERSIONS,kr as VERSION_TIMEOUT,so as VERTICAL_ALIGN,qe as VersionedSnapshotStore,I as WINDOWS_EMOJI_FALLBACK_FONT,ur as YOUTUBE_STATES,Nr as ZOOM_STEP,ka as addEventListener,Zs as allowFullScreen,Cn as applyDarkModeFilter,ga as arrayToList,Ea as arrayToMap,Ta as arrayToMapWithIndex,ba as arrayToObject,wa as assertNever,ha as bytesToHexString,Ds as capitalizeString,Ka as castArray,Ws as chunk,Pa as cloneJSON,Vn as colorToHex,Oa as composeEventHandlers,ts as createUserAgentDescriptor,Bs as debounce,es as deriveStylesPanelMode,Xs as distance,Be as easeOut,Vs as easeToValuesRAF,Ve as escapeDoubleQuotes,Qs as exitFullScreen,sa as findIndex,aa as findLastIndex,da as focusNearestParent,Kn as getAllColorsSpecificShade,Ps as getDateTime,Fr as getExportSource,Wa as getFeatureFlag,ye as getFontFamilyFallbacks,en as getFontFamilyString,Hs as getFontString,Jo as getFormFactor,sn as getFrame,Ut as getGenericFontFamilyFallback,ta as getGlobalCSSVariable,Ts as getGridPoint,ko as getLineHeight,pa as getNearestScrollableContainer,ms as getSizeFromPoints,Ua as getSvgPathFromStroke,ma as getUpdatedTimestamp,ca as getVersion,Do as getVerticalOffset,Fa as invariant,Fe as isAndroid,Ga as isAnyTrue,ls as isArrowKey,Sn as isBounds,Qo as isBrave,Yt as isChrome,Yn as isColorDark,we as isDarwin,Aa as isDevEnv,qo as isFirefox,qs as isFullScreen,Ie as isIOS,Jt as isInputLike,Us as isInteractive,Zt as isLatinChar,ai as isLocalLink,Ca as isMemberOf,$t as isMobileBreakpoint,Sa as isPrimitive,Ke as isProdEnv,Ra as isPromiseLike,na as isRTL,ln as isReadonlyArray,Ma as isRunningInIframe,Zo as isSafari,zs as isSelectionLikeTool,xa as isServerEnv,an as isShallowEqual,Xt as isTabletBreakpoint,te as isTestEnv,ks as isToolIcon,be as isTransparent,jo as isWindows,Ns as isWritableElement,ns as loadDesktopUIModePreference,ia as mapFind,is as matchKey,Ia as memoize,oa as muteFSAbortError,la as nFormatter,Gs as nextAnimationFrame,Na as normalizeEOL,$n as normalizeInputColor,gn as normalizeLink,$a as oneOf,fa as preventUnload,Le as promiseTry,La as queryFocusableElements,ei as randomId,Qa as randomInteger,Va as reduceToCommonValue,$s as removeSelection,Es as rescalePoints,Ja as reseed,Re as resolvablePromise,Te as rgbToHex,Ba as safelyParseJSON,ea as sceneCoordsToViewportCoords,Ys as selectNode,Cs as setDateTimeForTests,rs as setDesktopUIMode,Ya as setFeatureFlag,us as shouldMaintainAspectRatio,cs as shouldResizeFromCenter,ps as shouldRotateWithDiscreteAngle,cn as sizeOf,ua as supportsEmoji,qn as supportsResizeObserver,Ks as throttleRAF,_a as toArray,Ha as toBrandedType,on as toIterable,ii as toValidURL,ra as tupleToCoors,js as updateActiveTool,va as updateObject,Da as updateStable,Js as viewportCoordsToSceneCoords,ya as wrapEvent};\n", "import { nanoid } from \"nanoid\";\n\nimport {\n IMAGE_MIME_TYPES,\n MIME_TYPES,\n bytesToHexString,\n isPromiseLike,\n} from \"@excalidraw/common\";\n\nimport type { ValueOf } from \"@excalidraw/common/utility-types\";\nimport type { ExcalidrawElement, FileId } from \"@excalidraw/element/types\";\n\nimport { cleanAppStateForExport } from \"../appState\";\n\nimport { CanvasError, ImageSceneDataError } from \"../errors\";\nimport { calculateScrollCenter } from \"../scene\";\nimport { decodeSvgBase64Payload } from \"../scene/export\";\n\nimport { base64ToString, stringToBase64, toByteString } from \"./encode\";\nimport { nativeFileSystemSupported } from \"./filesystem\";\nimport { isValidExcalidrawData, isValidLibrary } from \"./json\";\nimport {\n restoreAppState,\n restoreElements,\n restoreLibraryItems,\n} from \"./restore\";\n\nimport type { AppState, DataURL, LibraryItem } from \"../types\";\n\nimport type { ImportedLibraryData } from \"./types\";\n\nconst parseFileContents = async (blob: Blob | File): Promise<string> => {\n let contents: string;\n\n if (blob.type === MIME_TYPES.png) {\n try {\n return await (await import(\"./image\")).decodePngMetadata(blob);\n } catch (error: any) {\n if (error.message === \"INVALID\") {\n throw new ImageSceneDataError(\n \"Image doesn't contain scene\",\n \"IMAGE_NOT_CONTAINS_SCENE_DATA\",\n );\n } else {\n throw new ImageSceneDataError(\"Error: cannot restore image\");\n }\n }\n } else {\n if (\"text\" in Blob) {\n contents = await blob.text();\n } else {\n contents = await new Promise((resolve) => {\n const reader = new FileReader();\n reader.readAsText(blob, \"utf8\");\n reader.onloadend = () => {\n if (reader.readyState === FileReader.DONE) {\n resolve(reader.result as string);\n }\n };\n });\n }\n if (blob.type === MIME_TYPES.svg) {\n try {\n return decodeSvgBase64Payload({\n svg: contents,\n });\n } catch (error: any) {\n if (error.message === \"INVALID\") {\n throw new ImageSceneDataError(\n \"Image doesn't contain scene\",\n \"IMAGE_NOT_CONTAINS_SCENE_DATA\",\n );\n } else {\n throw new ImageSceneDataError(\"Error: cannot restore image\");\n }\n }\n }\n }\n return contents;\n};\n\nexport const getMimeType = (blob: Blob | string): string => {\n let name: string;\n if (typeof blob === \"string\") {\n name = blob;\n } else {\n if (blob.type) {\n return blob.type;\n }\n name = blob.name || \"\";\n }\n if (/\\.(excalidraw|json)$/.test(name)) {\n return MIME_TYPES.json;\n } else if (/\\.png$/.test(name)) {\n return MIME_TYPES.png;\n } else if (/\\.jpe?g$/.test(name)) {\n return MIME_TYPES.jpg;\n } else if (/\\.svg$/.test(name)) {\n return MIME_TYPES.svg;\n } else if (/\\.excalidrawlib$/.test(name)) {\n return MIME_TYPES.excalidrawlib;\n }\n return \"\";\n};\n\nexport const getFileHandleType = (handle: FileSystemFileHandle | null) => {\n if (!handle) {\n return null;\n }\n\n return handle.name.match(/\\.(json|excalidraw|png|svg)$/)?.[1] || null;\n};\n\nexport const isImageFileHandleType = (\n type: string | null,\n): type is \"png\" | \"svg\" => {\n return type === \"png\" || type === \"svg\";\n};\n\nexport const isImageFileHandle = (\n handle: FileSystemFileHandle | null,\n): handle is FileSystemFileHandle => {\n const type = getFileHandleType(handle);\n return type === \"png\" || type === \"svg\";\n};\n\nexport const isSupportedImageFileType = (type: string | null | undefined) => {\n return !!type && (Object.values(IMAGE_MIME_TYPES) as string[]).includes(type);\n};\n\nexport const isSupportedImageFile = (\n blob: Blob | null | undefined,\n): blob is Blob & { type: ValueOf<typeof IMAGE_MIME_TYPES> } => {\n const { type } = blob || {};\n return isSupportedImageFileType(type);\n};\n\nexport const loadSceneOrLibraryFromBlob = async (\n blob: Blob | File,\n /** @see restore.localAppState */\n localAppState: AppState | null,\n localElements: readonly ExcalidrawElement[] | null,\n /** FileSystemFileHandle. Defaults to `blob.handle` if defined, otherwise null. */\n fileHandle?: FileSystemFileHandle | null,\n) => {\n const contents = await parseFileContents(blob);\n let data;\n try {\n try {\n data = JSON.parse(contents);\n } catch (error: any) {\n if (isSupportedImageFile(blob)) {\n throw new ImageSceneDataError(\n \"Image doesn't contain scene\",\n \"IMAGE_NOT_CONTAINS_SCENE_DATA\",\n );\n }\n throw error;\n }\n if (isValidExcalidrawData(data)) {\n return {\n type: MIME_TYPES.excalidraw,\n data: {\n elements: restoreElements(data.elements, localElements, {\n repairBindings: true,\n deleteInvisibleElements: true,\n }),\n appState: restoreAppState(\n {\n theme: localAppState?.theme,\n fileHandle: fileHandle || blob.handle || null,\n ...cleanAppStateForExport(data.appState || {}),\n ...(localAppState\n ? calculateScrollCenter(data.elements || [], localAppState)\n : {}),\n },\n localAppState,\n ),\n files: data.files || {},\n },\n };\n } else if (isValidLibrary(data)) {\n return {\n type: MIME_TYPES.excalidrawlib,\n data,\n };\n }\n throw new Error(\"Error: invalid file\");\n } catch (error: any) {\n if (error instanceof ImageSceneDataError) {\n throw error;\n }\n throw new Error(\"Error: invalid file\");\n }\n};\n\nexport const loadFromBlob = async (\n blob: Blob,\n /** @see restore.localAppState */\n localAppState: AppState | null,\n localElements: readonly ExcalidrawElement[] | null,\n /** FileSystemFileHandle. Defaults to `blob.handle` if defined, otherwise null. */\n fileHandle?: FileSystemFileHandle | null,\n) => {\n const ret = await loadSceneOrLibraryFromBlob(\n blob,\n localAppState,\n localElements,\n fileHandle,\n );\n if (ret.type !== MIME_TYPES.excalidraw) {\n throw new Error(\"Error: invalid file\");\n }\n return ret.data;\n};\n\nexport const parseLibraryJSON = (\n json: string,\n defaultStatus: LibraryItem[\"status\"] = \"unpublished\",\n) => {\n const data: ImportedLibraryData | undefined = JSON.parse(json);\n if (!isValidLibrary(data)) {\n throw new Error(\"Invalid library\");\n }\n const libraryItems = data.libraryItems || data.library;\n return restoreLibraryItems(libraryItems, defaultStatus);\n};\n\nexport const loadLibraryFromBlob = async (\n blob: Blob,\n defaultStatus: LibraryItem[\"status\"] = \"unpublished\",\n) => {\n return parseLibraryJSON(await parseFileContents(blob), defaultStatus);\n};\n\nexport const canvasToBlob = async (\n canvas: HTMLCanvasElement | Promise<HTMLCanvasElement>,\n): Promise<Blob> => {\n return new Promise(async (resolve, reject) => {\n try {\n if (isPromiseLike(canvas)) {\n canvas = await canvas;\n }\n canvas.toBlob((blob) => {\n if (!blob) {\n return reject(\n new CanvasError(\"Error: Canvas too big\", \"CANVAS_POSSIBLY_TOO_BIG\"),\n );\n }\n resolve(blob);\n });\n } catch (error: any) {\n reject(error);\n }\n });\n};\n\n/** generates SHA-1 digest from supplied file (if not supported, falls back\n to a 40-char base64 random id) */\nexport const generateIdFromFile = async (file: File): Promise<FileId> => {\n try {\n const hashBuffer = await window.crypto.subtle.digest(\n \"SHA-1\",\n await blobToArrayBuffer(file),\n );\n return bytesToHexString(new Uint8Array(hashBuffer)) as FileId;\n } catch (error: any) {\n console.error(error);\n // length 40 to align with the HEX length of SHA-1 (which is 160 bit)\n return nanoid(40) as FileId;\n }\n};\n\n/** async. For sync variant, use getDataURL_sync */\nexport const getDataURL = async (file: Blob | File): Promise<DataURL> => {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = () => {\n const dataURL = reader.result as DataURL;\n resolve(dataURL);\n };\n reader.onerror = (error) => reject(error);\n reader.readAsDataURL(file);\n });\n};\n\nexport const getDataURL_sync = (\n data: string | Uint8Array | ArrayBuffer,\n mimeType: ValueOf<typeof MIME_TYPES>,\n): DataURL => {\n return `data:${mimeType};base64,${stringToBase64(\n toByteString(data),\n true,\n )}` as DataURL;\n};\n\nexport const dataURLToFile = (dataURL: DataURL, filename = \"\") => {\n const dataIndexStart = dataURL.indexOf(\",\");\n const byteString = atob(dataURL.slice(dataIndexStart + 1));\n const mimeType = dataURL.slice(0, dataIndexStart).split(\":\")[1].split(\";\")[0];\n\n const ab = new ArrayBuffer(byteString.length);\n const ia = new Uint8Array(ab);\n for (let i = 0; i < byteString.length; i++) {\n ia[i] = byteString.charCodeAt(i);\n }\n return new File([ab], filename, { type: mimeType });\n};\n\nexport const dataURLToString = (dataURL: DataURL) => {\n return base64ToString(dataURL.slice(dataURL.indexOf(\",\") + 1));\n};\n\nexport const resizeImageFile = async (\n file: File,\n opts: {\n /** undefined indicates auto */\n outputType?: typeof MIME_TYPES[\"jpg\"];\n maxWidthOrHeight: number;\n },\n): Promise<File> => {\n // SVG files shouldn't a can't be resized\n if (file.type === MIME_TYPES.svg) {\n return file;\n }\n\n const [pica, imageBlobReduce] = await Promise.all([\n import(\"pica\").then((res) => res.default),\n // a wrapper for pica for better API\n import(\"image-blob-reduce\").then((res) => res.default),\n ]);\n\n // CRA's minification settings break pica in WebWorkers, so let's disable\n // them for now\n // https://github.com/nodeca/image-blob-reduce/issues/21#issuecomment-757365513\n const reduce = imageBlobReduce({\n pica: pica({ features: [\"js\", \"wasm\"] }),\n });\n\n if (opts.outputType) {\n const { outputType } = opts;\n reduce._create_blob = function (env) {\n return this.pica.toBlob(env.out_canvas, outputType, 0.8).then((blob) => {\n env.out_blob = blob;\n return env;\n });\n };\n }\n\n if (!isSupportedImageFile(file)) {\n throw new Error(\"Error: unsupported file type\", { cause: \"UNSUPPORTED\" });\n }\n\n return new File(\n [await reduce.toBlob(file, { max: opts.maxWidthOrHeight, alpha: true })],\n file.name,\n {\n type: opts.outputType || file.type,\n },\n );\n};\n\nexport const SVGStringToFile = (SVGString: string, filename: string = \"\") => {\n return new File([new TextEncoder().encode(SVGString)], filename, {\n type: MIME_TYPES.svg,\n }) as File & { type: typeof MIME_TYPES.svg };\n};\n\nexport const ImageURLToFile = async (\n imageUrl: string,\n filename: string = \"\",\n): Promise<File | undefined> => {\n let response;\n try {\n response = await fetch(imageUrl);\n } catch (error: any) {\n throw new Error(\"Error: failed to fetch image\", { cause: \"FETCH_ERROR\" });\n }\n\n if (!response.ok) {\n throw new Error(\"Error: failed to fetch image\", { cause: \"FETCH_ERROR\" });\n }\n\n const blob = await response.blob();\n\n if (blob.type && isSupportedImageFile(blob)) {\n const name = filename || blob.name || \"\";\n return new File([blob], name, { type: blob.type });\n }\n\n throw new Error(\"Error: unsupported file type\", { cause: \"UNSUPPORTED\" });\n};\n\nexport const getFileHandle = async (\n event: DragEvent | React.DragEvent | DataTransferItem,\n): Promise<FileSystemFileHandle | null> => {\n if (nativeFileSystemSupported) {\n try {\n const dataTransferItem =\n event instanceof DataTransferItem\n ? event\n : (event as DragEvent).dataTransfer?.items?.[0];\n\n const handle: FileSystemFileHandle | null =\n (await (dataTransferItem as any).getAsFileSystemHandle()) || null;\n\n return handle;\n } catch (error: any) {\n console.warn(error.name, error.message);\n return null;\n }\n }\n return null;\n};\n\n/**\n * attempts to detect if a buffer is a valid image by checking its leading bytes\n */\nconst getActualMimeTypeFromImage = async (file: Blob | File) => {\n let mimeType: ValueOf<\n Pick<typeof MIME_TYPES, \"png\" | \"jpg\" | \"gif\" | \"webp\">\n > | null = null;\n\n const leadingBytes = [\n ...new Uint8Array(await blobToArrayBuffer(file.slice(0, 15))),\n ].join(\" \");\n\n // uint8 leading bytes\n const bytes = {\n // https://en.wikipedia.org/wiki/Portable_Network_Graphics#File_header\n png: /^137 80 78 71 13 10 26 10\\b/,\n // https://en.wikipedia.org/wiki/JPEG#Syntax_and_structure\n // jpg is a bit wonky. Checking the first three bytes should be enough,\n // but may yield false positives. (https://stackoverflow.com/a/23360709/927631)\n jpg: /^255 216 255\\b/,\n // https://en.wikipedia.org/wiki/GIF#Example_GIF_file\n gif: /^71 73 70 56 57 97\\b/,\n // 4 bytes for RIFF + 4 bytes for chunk size + WEBP identifier\n webp: /^82 73 70 70 \\d+ \\d+ \\d+ \\d+ 87 69 66 80 86 80 56\\b/,\n };\n\n for (const type of Object.keys(bytes) as (keyof typeof bytes)[]) {\n if (leadingBytes.match(bytes[type])) {\n mimeType = MIME_TYPES[type];\n break;\n }\n }\n\n return mimeType || file.type || null;\n};\n\nexport const createFile = (\n blob: File | Blob | ArrayBuffer,\n mimeType: string,\n name: string | undefined,\n) => {\n return new File([blob], name || \"\", {\n type: mimeType,\n });\n};\n\nconst normalizedFileSymbol = Symbol(\"fileNormalized\");\n\n/** attempts to detect correct mimeType if none is set, or if an image\n * has an incorrect extension.\n * Note: doesn't handle missing .excalidraw/.excalidrawlib extension */\nexport const normalizeFile = async (file: File) => {\n // to prevent double normalization (perf optim)\n if ((file as any)[normalizedFileSymbol]) {\n return file;\n }\n\n if (file?.name?.endsWith(\".excalidrawlib\")) {\n file = createFile(file, MIME_TYPES.excalidrawlib, file.name);\n } else if (file?.name?.endsWith(\".excalidraw\")) {\n file = createFile(file, MIME_TYPES.excalidraw, file.name);\n } else if (!file.type || file.type?.startsWith(\"image/\")) {\n // when the file is an image, make sure the extension corresponds to the\n // actual mimeType (this is an edge case, but happens - especially\n // with AI generated images)\n const mimeType = await getActualMimeTypeFromImage(file);\n if (mimeType && mimeType !== file.type) {\n file = createFile(file, mimeType, file.name);\n }\n }\n\n (file as any)[normalizedFileSymbol] = true;\n\n return file;\n};\n\nexport const blobToArrayBuffer = (blob: Blob): Promise<ArrayBuffer> => {\n if (\"arrayBuffer\" in blob) {\n return blob.arrayBuffer();\n }\n // Safari\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = (event) => {\n if (!event.target?.result) {\n return reject(new Error(\"Couldn't convert blob to ArrayBuffer\"));\n }\n resolve(event.target.result as ArrayBuffer);\n };\n reader.readAsArrayBuffer(blob);\n });\n};\n", "import {\n COLOR_PALETTE,\n ARROW_TYPE,\n DEFAULT_ELEMENT_PROPS,\n DEFAULT_FONT_FAMILY,\n DEFAULT_FONT_SIZE,\n DEFAULT_TEXT_ALIGN,\n DEFAULT_GRID_SIZE,\n EXPORT_SCALES,\n STATS_PANELS,\n THEME,\n DEFAULT_GRID_STEP,\n isTestEnv,\n} from \"@excalidraw/common\";\n\nimport type { AppState, NormalizedZoomValue } from \"./types\";\n\nconst defaultExportScale = EXPORT_SCALES.includes(devicePixelRatio)\n ? devicePixelRatio\n : 1;\n\nexport const getDefaultAppState = (): Omit<\n AppState,\n \"offsetTop\" | \"offsetLeft\" | \"width\" | \"height\"\n> => {\n return {\n showWelcomeScreen: false,\n theme: THEME.LIGHT,\n collaborators: new Map(),\n currentItemBackgroundColor: DEFAULT_ELEMENT_PROPS.backgroundColor,\n currentItemEndArrowhead: \"arrow\",\n currentItemFillStyle: DEFAULT_ELEMENT_PROPS.fillStyle,\n currentItemFontFamily: DEFAULT_FONT_FAMILY,\n currentItemFontSize: DEFAULT_FONT_SIZE,\n currentItemOpacity: DEFAULT_ELEMENT_PROPS.opacity,\n currentItemRoughness: DEFAULT_ELEMENT_PROPS.roughness,\n currentItemStartArrowhead: null,\n currentItemStrokeColor: DEFAULT_ELEMENT_PROPS.strokeColor,\n currentItemRoundness: isTestEnv() ? \"sharp\" : \"round\",\n currentItemArrowType: ARROW_TYPE.round,\n currentItemStrokeStyle: DEFAULT_ELEMENT_PROPS.strokeStyle,\n currentItemStrokeWidth: DEFAULT_ELEMENT_PROPS.strokeWidth,\n currentItemTextAlign: DEFAULT_TEXT_ALIGN,\n currentHoveredFontFamily: null,\n cursorButton: \"up\",\n activeEmbeddable: null,\n newElement: null,\n editingTextElement: null,\n editingGroupId: null,\n activeTool: {\n type: \"selection\",\n customType: null,\n locked: DEFAULT_ELEMENT_PROPS.locked,\n fromSelection: false,\n lastActiveTool: null,\n },\n preferredSelectionTool: {\n type: \"selection\",\n initialized: false,\n },\n penMode: false,\n penDetected: false,\n errorMessage: null,\n exportBackground: true,\n exportScale: defaultExportScale,\n exportEmbedScene: false,\n exportWithDarkMode: false,\n fileHandle: null,\n gridSize: DEFAULT_GRID_SIZE,\n gridStep: DEFAULT_GRID_STEP,\n gridModeEnabled: false,\n isBindingEnabled: true,\n bindingPreference: \"enabled\",\n isMidpointSnappingEnabled: true,\n defaultSidebarDockedPreference: false,\n isLoading: false,\n isResizing: false,\n isRotating: false,\n lastPointerDownWith: \"mouse\",\n multiElement: null,\n name: null,\n contextMenu: null,\n openMenu: null,\n openPopup: null,\n openSidebar: null,\n openDialog: null,\n previousSelectedElementIds: {},\n resizingElement: null,\n scrolledOutside: false,\n scrollX: 0,\n scrollY: 0,\n selectedElementIds: {},\n hoveredElementIds: {},\n selectedGroupIds: {},\n selectedElementsAreBeingDragged: false,\n selectionElement: null,\n shouldCacheIgnoreZoom: false,\n stats: {\n open: false,\n panels: STATS_PANELS.generalStats | STATS_PANELS.elementProperties,\n },\n startBoundElement: null,\n suggestedBinding: null,\n frameRendering: { enabled: true, clip: true, name: true, outline: true },\n frameToHighlight: null,\n editingFrame: null,\n elementsToHighlight: null,\n toast: null,\n viewBackgroundColor: COLOR_PALETTE.white,\n zenModeEnabled: false,\n zoom: {\n value: 1 as NormalizedZoomValue,\n },\n viewModeEnabled: false,\n showHyperlinkPopup: false,\n selectedLinearElement: null,\n snapLines: [],\n originSnapOffset: {\n x: 0,\n y: 0,\n },\n objectsSnapModeEnabled: false,\n userToFollow: null,\n followedBy: new Set(),\n isCropping: false,\n croppingElementId: null,\n searchMatches: null,\n lockedMultiSelections: {},\n activeLockedId: null,\n bindMode: \"orbit\",\n };\n};\n\n/**\n * Config containing all AppState keys. Used to determine whether given state\n * prop should be stripped when exporting to given storage type.\n */\nconst APP_STATE_STORAGE_CONF = (<\n Values extends {\n /** whether to keep when storing to browser storage (localStorage/IDB) */\n browser: boolean;\n /** whether to keep when exporting to file/database */\n export: boolean;\n /** server (shareLink/collab/...) */\n server: boolean;\n },\n T extends Record<keyof AppState, Values>,\n>(config: { [K in keyof T]: K extends keyof AppState ? T[K] : never }) =>\n config)({\n showWelcomeScreen: { browser: true, export: false, server: false },\n theme: { browser: true, export: false, server: false },\n collaborators: { browser: false, export: false, server: false },\n currentItemBackgroundColor: { browser: true, export: false, server: false },\n currentItemEndArrowhead: { browser: true, export: false, server: false },\n currentItemFillStyle: { browser: true, export: false, server: false },\n currentItemFontFamily: { browser: true, export: false, server: false },\n currentItemFontSize: { browser: true, export: false, server: false },\n currentItemRoundness: {\n browser: true,\n export: false,\n server: false,\n },\n currentItemArrowType: {\n browser: true,\n export: false,\n server: false,\n },\n currentItemOpacity: { browser: true, export: false, server: false },\n currentItemRoughness: { browser: true, export: false, server: false },\n currentItemStartArrowhead: { browser: true, export: false, server: false },\n currentItemStrokeColor: { browser: true, export: false, server: false },\n currentItemStrokeStyle: { browser: true, export: false, server: false },\n currentItemStrokeWidth: { browser: true, export: false, server: false },\n currentItemTextAlign: { browser: true, export: false, server: false },\n currentHoveredFontFamily: { browser: false, export: false, server: false },\n cursorButton: { browser: true, export: false, server: false },\n activeEmbeddable: { browser: false, export: false, server: false },\n newElement: { browser: false, export: false, server: false },\n editingTextElement: { browser: false, export: false, server: false },\n editingGroupId: { browser: true, export: false, server: false },\n activeTool: { browser: true, export: false, server: false },\n preferredSelectionTool: { browser: true, export: false, server: false },\n penMode: { browser: true, export: false, server: false },\n penDetected: { browser: true, export: false, server: false },\n errorMessage: { browser: false, export: false, server: false },\n exportBackground: { browser: true, export: false, server: false },\n exportEmbedScene: { browser: true, export: false, server: false },\n exportScale: { browser: true, export: false, server: false },\n exportWithDarkMode: { browser: true, export: false, server: false },\n fileHandle: { browser: false, export: false, server: false },\n gridSize: { browser: true, export: true, server: true },\n gridStep: { browser: true, export: true, server: true },\n gridModeEnabled: { browser: true, export: true, server: true },\n height: { browser: false, export: false, server: false },\n isBindingEnabled: { browser: true, export: false, server: false },\n bindingPreference: { browser: true, export: false, server: false },\n isMidpointSnappingEnabled: { browser: true, export: false, server: false },\n defaultSidebarDockedPreference: {\n browser: true,\n export: false,\n server: false,\n },\n isLoading: { browser: false, export: false, server: false },\n isResizing: { browser: false, export: false, server: false },\n isRotating: { browser: false, export: false, server: false },\n lastPointerDownWith: { browser: true, export: false, server: false },\n multiElement: { browser: false, export: false, server: false },\n name: { browser: true, export: false, server: false },\n offsetLeft: { browser: false, export: false, server: false },\n offsetTop: { browser: false, export: false, server: false },\n contextMenu: { browser: false, export: false, server: false },\n openMenu: { browser: true, export: false, server: false },\n openPopup: { browser: false, export: false, server: false },\n openSidebar: { browser: true, export: false, server: false },\n openDialog: { browser: false, export: false, server: false },\n previousSelectedElementIds: { browser: true, export: false, server: false },\n resizingElement: { browser: false, export: false, server: false },\n scrolledOutside: { browser: true, export: false, server: false },\n scrollX: { browser: true, export: false, server: false },\n scrollY: { browser: true, export: false, server: false },\n selectedElementIds: { browser: true, export: false, server: false },\n hoveredElementIds: { browser: false, export: false, server: false },\n selectedGroupIds: { browser: true, export: false, server: false },\n selectedElementsAreBeingDragged: {\n browser: false,\n export: false,\n server: false,\n },\n selectionElement: { browser: false, export: false, server: false },\n shouldCacheIgnoreZoom: { browser: true, export: false, server: false },\n stats: { browser: true, export: false, server: false },\n startBoundElement: { browser: false, export: false, server: false },\n suggestedBinding: { browser: false, export: false, server: false },\n frameRendering: { browser: false, export: false, server: false },\n frameToHighlight: { browser: false, export: false, server: false },\n editingFrame: { browser: false, export: false, server: false },\n elementsToHighlight: { browser: false, export: false, server: false },\n toast: { browser: false, export: false, server: false },\n viewBackgroundColor: { browser: true, export: true, server: true },\n width: { browser: false, export: false, server: false },\n zenModeEnabled: { browser: true, export: false, server: false },\n zoom: { browser: true, export: false, server: false },\n viewModeEnabled: { browser: false, export: false, server: false },\n showHyperlinkPopup: { browser: false, export: false, server: false },\n selectedLinearElement: { browser: true, export: false, server: false },\n snapLines: { browser: false, export: false, server: false },\n originSnapOffset: { browser: false, export: false, server: false },\n objectsSnapModeEnabled: { browser: true, export: false, server: false },\n userToFollow: { browser: false, export: false, server: false },\n followedBy: { browser: false, export: false, server: false },\n isCropping: { browser: false, export: false, server: false },\n croppingElementId: { browser: false, export: false, server: false },\n searchMatches: { browser: false, export: false, server: false },\n lockedMultiSelections: { browser: true, export: true, server: true },\n activeLockedId: { browser: false, export: false, server: false },\n bindMode: { browser: true, export: false, server: false },\n});\n\nconst _clearAppStateForStorage = <\n ExportType extends \"export\" | \"browser\" | \"server\",\n>(\n appState: Partial<AppState>,\n exportType: ExportType,\n) => {\n type ExportableKeys = {\n [K in keyof typeof APP_STATE_STORAGE_CONF]: typeof APP_STATE_STORAGE_CONF[K][ExportType] extends true\n ? K\n : never;\n }[keyof typeof APP_STATE_STORAGE_CONF];\n const stateForExport = {} as { [K in ExportableKeys]?: typeof appState[K] };\n for (const key of Object.keys(appState) as (keyof typeof appState)[]) {\n const propConfig = APP_STATE_STORAGE_CONF[key];\n if (propConfig?.[exportType]) {\n const nextValue = appState[key];\n\n // https://github.com/microsoft/TypeScript/issues/31445\n (stateForExport as any)[key] = nextValue;\n }\n }\n return stateForExport;\n};\n\nexport const clearAppStateForLocalStorage = (appState: Partial<AppState>) => {\n return _clearAppStateForStorage(appState, \"browser\");\n};\n\nexport const cleanAppStateForExport = (appState: Partial<AppState>) => {\n return _clearAppStateForStorage(appState, \"export\");\n};\n\nexport const clearAppStateForDatabase = (appState: Partial<AppState>) => {\n return _clearAppStateForStorage(appState, \"server\");\n};\n\nexport const isEraserActive = ({\n activeTool,\n}: {\n activeTool: AppState[\"activeTool\"];\n}) => activeTool.type === \"eraser\";\n\nexport const isHandToolActive = ({\n activeTool,\n}: {\n activeTool: AppState[\"activeTool\"];\n}) => {\n return activeTool.type === \"hand\";\n};\n", "type CANVAS_ERROR_NAMES = \"CANVAS_ERROR\" | \"CANVAS_POSSIBLY_TOO_BIG\";\n\nexport class CanvasError extends Error {\n constructor(\n message: string = \"Couldn't export canvas.\",\n name: CANVAS_ERROR_NAMES = \"CANVAS_ERROR\",\n ) {\n super();\n this.name = name;\n this.message = message;\n }\n}\n\nexport class AbortError extends DOMException {\n constructor(message: string = \"Request Aborted\") {\n super(message, \"AbortError\");\n }\n}\n\ntype ImageSceneDataErrorCode =\n | \"IMAGE_NOT_CONTAINS_SCENE_DATA\"\n | \"IMAGE_SCENE_DATA_ERROR\";\n\nexport class ImageSceneDataError extends Error {\n public code;\n constructor(\n message = \"Image Scene Data Error\",\n code: ImageSceneDataErrorCode = \"IMAGE_SCENE_DATA_ERROR\",\n ) {\n super(message);\n this.name = \"EncodingError\";\n this.code = code;\n }\n}\n\ntype WorkerErrorCodes = \"WORKER_URL_NOT_DEFINED\" | \"WORKER_IN_THE_MAIN_CHUNK\";\n\nexport class WorkerUrlNotDefinedError extends Error {\n public code;\n constructor(\n message = \"Worker URL is not defined!\",\n code: WorkerErrorCodes = \"WORKER_URL_NOT_DEFINED\",\n ) {\n super(message);\n this.name = \"WorkerUrlNotDefinedError\";\n this.code = code;\n }\n}\n\nexport class WorkerInTheMainChunkError extends Error {\n public code;\n constructor(\n message = \"Worker has to be in a separate chunk!\",\n code: WorkerErrorCodes = \"WORKER_IN_THE_MAIN_CHUNK\",\n ) {\n super(message);\n this.name = \"WorkerInTheMainChunkError\";\n this.code = code;\n }\n}\n\n/**\n * Use this for generic, handled errors, so you can check against them\n * and rethrow if needed\n */\nexport class ExcalidrawError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"ExcalidrawError\";\n }\n}\n\nexport class RequestError extends Error {\n public status: number;\n public data: any;\n toObject() {\n return { name: this.name, status: this.status, message: this.message };\n }\n constructor({\n message = \"Something went wrong\",\n status = 500,\n data,\n }: { message?: string; status?: number; data?: any } = {}) {\n super();\n this.name = \"RequestError\";\n this.message = message;\n this.status = status;\n this.data = data;\n }\n}\n", "var au=Object.create;var ra=Object.defineProperty;var lu=Object.getOwnPropertyDescriptor;var du=Object.getOwnPropertyNames;var cu=Object.getPrototypeOf,uu=Object.prototype.hasOwnProperty;var mu=(e,t)=>()=>(e&&(t=e(e=0)),t);var pu=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var fu=(e,t,n,i)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let o of du(t))!uu.call(e,o)&&o!==n&&ra(e,o,{get:()=>t[o],enumerable:!(i=lu(t,o))||i.enumerable});return e};var hu=(e,t,n)=>(n=e!=null?au(cu(e)):{},fu(t||!e||!e.__esModule?ra(n,\"default\",{value:e,enumerable:!0}):n,e));var v,P=mu(()=>{v={PROD:!0}});var dc=pu(($P,lc)=>{P();var ac=\"Expected a function\",rc=NaN,Nh=\"[object Symbol]\",zh=/^\\s+|\\s+$/g,Hh=/^[-+]0x[0-9a-f]+$/i,_h=/^0b[01]+$/i,Uh=/^0o[0-7]+$/i,Wh=parseInt,Yh=typeof global==\"object\"&&global&&global.Object===Object&&global,jh=typeof self==\"object\"&&self&&self.Object===Object&&self,Xh=Yh||jh||Function(\"return this\")(),$h=Object.prototype,Vh=$h.toString,Zh=Math.max,qh=Math.min,Rs=function(){return Xh.Date.now()};function Kh(e,t,n){var i,o,r,s,a,l,d=0,c=!1,u=!1,m=!0;if(typeof e!=\"function\")throw new TypeError(ac);t=sc(t)||0,Ko(n)&&(c=!!n.leading,u=\"maxWait\"in n,r=u?Zh(sc(n.maxWait)||0,t):r,m=\"trailing\"in n?!!n.trailing:m);function p(I){var A=i,T=o;return i=o=void 0,d=I,s=e.apply(T,A),s}function f(I){return d=I,a=setTimeout(g,t),c?p(I):s}function h(I){var A=I-l,T=I-d,M=t-A;return u?qh(M,r-T):M}function E(I){var A=I-l,T=I-d;return l===void 0||A>=t||A<0||u&&T>=r}function g(){var I=Rs();if(E(I))return x(I);a=setTimeout(g,h(I))}function x(I){return a=void 0,m&&i?p(I):(i=o=void 0,s)}function w(){a!==void 0&&clearTimeout(a),d=0,i=l=o=a=void 0}function y(){return a===void 0?s:x(Rs())}function b(){var I=Rs(),A=E(I);if(i=arguments,o=this,l=I,A){if(a===void 0)return f(l);if(u)return a=setTimeout(g,t),p(l)}return a===void 0&&(a=setTimeout(g,t)),s}return b.cancel=w,b.flush=y,b}function Qh(e,t,n){var i=!0,o=!0;if(typeof e!=\"function\")throw new TypeError(ac);return Ko(n)&&(i=\"leading\"in n?!!n.leading:i,o=\"trailing\"in n?!!n.trailing:o),Kh(e,t,{leading:i,maxWait:t,trailing:o})}function Ko(e){var t=typeof e;return!!e&&(t==\"object\"||t==\"function\")}function Jh(e){return!!e&&typeof e==\"object\"}function eE(e){return typeof e==\"symbol\"||Jh(e)&&Vh.call(e)==Nh}function sc(e){if(typeof e==\"number\")return e;if(eE(e))return rc;if(Ko(e)){var t=typeof e.valueOf==\"function\"?e.valueOf():e;e=Ko(t)?t+\"\":t}if(typeof e!=\"string\")return e===0?e:+e;e=e.replace(zh,\"\");var n=_h.test(e);return n||Uh.test(e)?Wh(e.slice(2),n?2:8):Hh.test(e)?rc:+e}lc.exports=Qh});P();import{toIterable as Mg}from\"@excalidraw/common\";P();import{SHIFT_LOCKING_ANGLE as Xt,viewportCoordsToSceneCoords as $o}from\"@excalidraw/common\";import{normalizeRadians as Hd,radiansBetweenAngles as fh,radiansDifference as hh}from\"@excalidraw/math\";import{pointsEqual as Eh}from\"@excalidraw/math\";P();P();P();P();P();P();P();P();P();function pr(e,t,n){if(e&&e.length){let[i,o]=t,r=Math.PI/180*n,s=Math.cos(r),a=Math.sin(r);for(let l of e){let[d,c]=l;l[0]=(d-i)*s-(c-o)*a+i,l[1]=(d-i)*a+(c-o)*s+o}}}function gu(e,t,n){let i=[];e.forEach(o=>i.push(...o)),pr(i,t,n)}function xu(e,t){return e[0]===t[0]&&e[1]===t[1]}function sa(e,t,n,i=1){let o=n,r=Math.max(t,.1),s=e[0]&&e[0][0]&&typeof e[0][0]==\"number\"?[e]:e,a=[0,0];if(o)for(let d of s)pr(d,a,o);let l=wu(s,r,i);if(o){for(let d of s)pr(d,a,-o);gu(l,a,-o)}return l}function wu(e,t,n){let i=[];for(let d of e){let c=[...d];xu(c[0],c[c.length-1])||c.push([c[0][0],c[0][1]]),c.length>2&&i.push(c)}let o=[];t=Math.max(t,.1);let r=[];for(let d of i)for(let c=0;c<d.length-1;c++){let u=d[c],m=d[c+1];if(u[1]!==m[1]){let p=Math.min(u[1],m[1]);r.push({ymin:p,ymax:Math.max(u[1],m[1]),x:p===u[1]?u[0]:m[0],islope:(m[0]-u[0])/(m[1]-u[1])})}}if(r.sort((d,c)=>d.ymin<c.ymin?-1:d.ymin>c.ymin?1:d.x<c.x?-1:d.x>c.x?1:d.ymax===c.ymax?0:(d.ymax-c.ymax)/Math.abs(d.ymax-c.ymax)),!r.length)return o;let s=[],a=r[0].ymin,l=0;for(;s.length||r.length;){if(r.length){let d=-1;for(let u=0;u<r.length&&!(r[u].ymin>a);u++)d=u;r.splice(0,d+1).forEach(u=>{s.push({s:a,edge:u})})}if(s=s.filter(d=>!(d.edge.ymax<=a)),s.sort((d,c)=>d.edge.x===c.edge.x?0:(d.edge.x-c.edge.x)/Math.abs(d.edge.x-c.edge.x)),(n!==1||l%t===0)&&s.length>1)for(let d=0;d<s.length;d=d+2){let c=d+1;if(c>=s.length)break;let u=s[d].edge,m=s[c].edge;o.push([[Math.round(u.x),a],[Math.round(m.x),a]])}a+=n,s.forEach(d=>{d.edge.x=d.edge.x+n*d.edge.islope}),l++}return o}function Et(e,t){var n;let i=t.hachureAngle+90,o=t.hachureGap;o<0&&(o=t.strokeWidth*4),o=Math.max(o,.1);let r=1;return t.roughness>=1&&(((n=t.randomizer)===null||n===void 0?void 0:n.next())||Math.random())>.7&&(r=o),sa(e,o,i,r||1)}var qt=class{constructor(t){this.helper=t}fillPolygons(t,n){return this._fillPolygons(t,n)}_fillPolygons(t,n){let i=Et(t,n);return{type:\"fillSketch\",ops:this.renderLines(i,n)}}renderLines(t,n){let i=[];for(let o of t)i.push(...this.helper.doubleLineOps(o[0][0],o[0][1],o[1][0],o[1][1],n));return i}};P();P();function Kt(e){let t=e[0],n=e[1];return Math.sqrt(Math.pow(t[0]-n[0],2)+Math.pow(t[1]-n[1],2))}var Yi=class extends qt{fillPolygons(t,n){let i=n.hachureGap;i<0&&(i=n.strokeWidth*4),i=Math.max(i,.1);let o=Object.assign({},n,{hachureGap:i}),r=Et(t,o),s=Math.PI/180*n.hachureAngle,a=[],l=i*.5*Math.cos(s),d=i*.5*Math.sin(s);for(let[u,m]of r)Kt([u,m])&&a.push([[u[0]-l,u[1]+d],[...m]],[[u[0]+l,u[1]-d],[...m]]);return{type:\"fillSketch\",ops:this.renderLines(a,n)}}};P();var ji=class extends qt{fillPolygons(t,n){let i=this._fillPolygons(t,n),o=Object.assign({},n,{hachureAngle:n.hachureAngle+90}),r=this._fillPolygons(t,o);return i.ops=i.ops.concat(r.ops),i}};P();var Xi=class{constructor(t){this.helper=t}fillPolygons(t,n){n=Object.assign({},n,{hachureAngle:0});let i=Et(t,n);return this.dotsOnLines(i,n)}dotsOnLines(t,n){let i=[],o=n.hachureGap;o<0&&(o=n.strokeWidth*4),o=Math.max(o,.1);let r=n.fillWeight;r<0&&(r=n.strokeWidth/2);let s=o/4;for(let a of t){let l=Kt(a),d=l/o,c=Math.ceil(d)-1,u=l-c*o,m=(a[0][0]+a[1][0])/2-o/4,p=Math.min(a[0][1],a[1][1]);for(let f=0;f<c;f++){let h=p+u+f*o,E=m-s+Math.random()*2*s,g=h-s+Math.random()*2*s,x=this.helper.ellipse(E,g,r,r,n);i.push(...x.ops)}}return{type:\"fillSketch\",ops:i}}};P();var $i=class{constructor(t){this.helper=t}fillPolygons(t,n){let i=Et(t,n);return{type:\"fillSketch\",ops:this.dashedLine(i,n)}}dashedLine(t,n){let i=n.dashOffset<0?n.hachureGap<0?n.strokeWidth*4:n.hachureGap:n.dashOffset,o=n.dashGap<0?n.hachureGap<0?n.strokeWidth*4:n.hachureGap:n.dashGap,r=[];return t.forEach(s=>{let a=Kt(s),l=Math.floor(a/(i+o)),d=(a+o-l*(i+o))/2,c=s[0],u=s[1];c[0]>u[0]&&(c=s[1],u=s[0]);let m=Math.atan((u[1]-c[1])/(u[0]-c[0]));for(let p=0;p<l;p++){let f=p*(i+o),h=f+i,E=[c[0]+f*Math.cos(m)+d*Math.cos(m),c[1]+f*Math.sin(m)+d*Math.sin(m)],g=[c[0]+h*Math.cos(m)+d*Math.cos(m),c[1]+h*Math.sin(m)+d*Math.sin(m)];r.push(...this.helper.doubleLineOps(E[0],E[1],g[0],g[1],n))}}),r}};P();var Vi=class{constructor(t){this.helper=t}fillPolygons(t,n){let i=n.hachureGap<0?n.strokeWidth*4:n.hachureGap,o=n.zigzagOffset<0?i:n.zigzagOffset;n=Object.assign({},n,{hachureGap:i+o});let r=Et(t,n);return{type:\"fillSketch\",ops:this.zigzagLines(r,o,n)}}zigzagLines(t,n,i){let o=[];return t.forEach(r=>{let s=Kt(r),a=Math.round(s/(2*n)),l=r[0],d=r[1];l[0]>d[0]&&(l=r[1],d=r[0]);let c=Math.atan((d[1]-l[1])/(d[0]-l[0]));for(let u=0;u<a;u++){let m=u*2*n,p=(u+1)*2*n,f=Math.sqrt(2*Math.pow(n,2)),h=[l[0]+m*Math.cos(c),l[1]+m*Math.sin(c)],E=[l[0]+p*Math.cos(c),l[1]+p*Math.sin(c)],g=[h[0]+f*Math.cos(c+Math.PI/4),h[1]+f*Math.sin(c+Math.PI/4)];o.push(...this.helper.doubleLineOps(h[0],h[1],g[0],g[1],i),...this.helper.doubleLineOps(g[0],g[1],E[0],E[1],i))}}),o}};var Re={};function aa(e,t){let n=e.fillStyle||\"hachure\";if(!Re[n])switch(n){case\"zigzag\":Re[n]||(Re[n]=new Yi(t));break;case\"cross-hatch\":Re[n]||(Re[n]=new ji(t));break;case\"dots\":Re[n]||(Re[n]=new Xi(t));break;case\"dashed\":Re[n]||(Re[n]=new $i(t));break;case\"zigzag-line\":Re[n]||(Re[n]=new Vi(t));break;case\"hachure\":default:n=\"hachure\",Re[n]||(Re[n]=new qt(t));break}return Re[n]}P();function la(){return Math.floor(Math.random()*2**31)}var Zi=class{constructor(t){this.seed=t}next(){return this.seed?(2**31-1&(this.seed=Math.imul(48271,this.seed)))/2**31:Math.random()}};P();P();var qi={A:7,a:7,C:6,c:6,H:1,h:1,L:2,l:2,M:2,m:2,Q:4,q:4,S:4,s:4,T:2,t:2,V:1,v:1,Z:0,z:0};function bu(e){let t=new Array;for(;e!==\"\";)if(e.match(/^([ \\t\\r\\n,]+)/))e=e.substr(RegExp.$1.length);else if(e.match(/^([aAcChHlLmMqQsStTvVzZ])/))t[t.length]={type:0,text:RegExp.$1},e=e.substr(RegExp.$1.length);else if(e.match(/^(([-+]?[0-9]+(\\.[0-9]*)?|[-+]?\\.[0-9]+)([eE][-+]?[0-9]+)?)/))t[t.length]={type:1,text:`${parseFloat(RegExp.$1)}`},e=e.substr(RegExp.$1.length);else return[];return t[t.length]={type:2,text:\"\"},t}function fr(e,t){return e.type===t}function Hn(e){let t=[],n=bu(e),i=\"BOD\",o=0,r=n[o];for(;!fr(r,2);){let s=0,a=[];if(i===\"BOD\")if(r.text===\"M\"||r.text===\"m\")o++,s=qi[r.text],i=r.text;else return Hn(\"M0,0\"+e);else fr(r,1)?s=qi[i]:(o++,s=qi[r.text],i=r.text);if(o+s<n.length){for(let l=o;l<o+s;l++){let d=n[l];if(fr(d,1))a[a.length]=+d.text;else throw new Error(\"Param not a number: \"+i+\",\"+d.text)}if(typeof qi[i]==\"number\"){let l={key:i,data:a};t.push(l),o+=s,r=n[o],i===\"M\"&&(i=\"L\"),i===\"m\"&&(i=\"l\")}else throw new Error(\"Bad segment: \"+i)}else throw new Error(\"Path data ended short\")}return t}P();function oi(e){let t=0,n=0,i=0,o=0,r=[];for(let{key:s,data:a}of e)switch(s){case\"M\":r.push({key:\"M\",data:[...a]}),[t,n]=a,[i,o]=a;break;case\"m\":t+=a[0],n+=a[1],r.push({key:\"M\",data:[t,n]}),i=t,o=n;break;case\"L\":r.push({key:\"L\",data:[...a]}),[t,n]=a;break;case\"l\":t+=a[0],n+=a[1],r.push({key:\"L\",data:[t,n]});break;case\"C\":r.push({key:\"C\",data:[...a]}),t=a[4],n=a[5];break;case\"c\":{let l=a.map((d,c)=>c%2?d+n:d+t);r.push({key:\"C\",data:l}),t=l[4],n=l[5];break}case\"Q\":r.push({key:\"Q\",data:[...a]}),t=a[2],n=a[3];break;case\"q\":{let l=a.map((d,c)=>c%2?d+n:d+t);r.push({key:\"Q\",data:l}),t=l[2],n=l[3];break}case\"A\":r.push({key:\"A\",data:[...a]}),t=a[5],n=a[6];break;case\"a\":t+=a[5],n+=a[6],r.push({key:\"A\",data:[a[0],a[1],a[2],a[3],a[4],t,n]});break;case\"H\":r.push({key:\"H\",data:[...a]}),t=a[0];break;case\"h\":t+=a[0],r.push({key:\"H\",data:[t]});break;case\"V\":r.push({key:\"V\",data:[...a]}),n=a[0];break;case\"v\":n+=a[0],r.push({key:\"V\",data:[n]});break;case\"S\":r.push({key:\"S\",data:[...a]}),t=a[2],n=a[3];break;case\"s\":{let l=a.map((d,c)=>c%2?d+n:d+t);r.push({key:\"S\",data:l}),t=l[2],n=l[3];break}case\"T\":r.push({key:\"T\",data:[...a]}),t=a[0],n=a[1];break;case\"t\":t+=a[0],n+=a[1],r.push({key:\"T\",data:[t,n]});break;case\"Z\":case\"z\":r.push({key:\"Z\",data:[]}),t=i,n=o;break}return r}P();function si(e){let t=[],n=\"\",i=0,o=0,r=0,s=0,a=0,l=0;for(let{key:d,data:c}of e){switch(d){case\"M\":t.push({key:\"M\",data:[...c]}),[i,o]=c,[r,s]=c;break;case\"C\":t.push({key:\"C\",data:[...c]}),i=c[4],o=c[5],a=c[2],l=c[3];break;case\"L\":t.push({key:\"L\",data:[...c]}),[i,o]=c;break;case\"H\":i=c[0],t.push({key:\"L\",data:[i,o]});break;case\"V\":o=c[0],t.push({key:\"L\",data:[i,o]});break;case\"S\":{let u=0,m=0;n===\"C\"||n===\"S\"?(u=i+(i-a),m=o+(o-l)):(u=i,m=o),t.push({key:\"C\",data:[u,m,...c]}),a=c[0],l=c[1],i=c[2],o=c[3];break}case\"T\":{let[u,m]=c,p=0,f=0;n===\"Q\"||n===\"T\"?(p=i+(i-a),f=o+(o-l)):(p=i,f=o);let h=i+2*(p-i)/3,E=o+2*(f-o)/3,g=u+2*(p-u)/3,x=m+2*(f-m)/3;t.push({key:\"C\",data:[h,E,g,x,u,m]}),a=p,l=f,i=u,o=m;break}case\"Q\":{let[u,m,p,f]=c,h=i+2*(u-i)/3,E=o+2*(m-o)/3,g=p+2*(u-p)/3,x=f+2*(m-f)/3;t.push({key:\"C\",data:[h,E,g,x,p,f]}),a=u,l=m,i=p,o=f;break}case\"A\":{let u=Math.abs(c[0]),m=Math.abs(c[1]),p=c[2],f=c[3],h=c[4],E=c[5],g=c[6];u===0||m===0?(t.push({key:\"C\",data:[i,o,E,g,E,g]}),i=E,o=g):(i!==E||o!==g)&&(da(i,o,E,g,u,m,p,f,h).forEach(function(w){t.push({key:\"C\",data:w})}),i=E,o=g);break}case\"Z\":t.push({key:\"Z\",data:[]}),i=r,o=s;break}n=d}return t}function yu(e){return Math.PI*e/180}function ri(e,t,n){let i=e*Math.cos(n)-t*Math.sin(n),o=e*Math.sin(n)+t*Math.cos(n);return[i,o]}function da(e,t,n,i,o,r,s,a,l,d){let c=yu(s),u=[],m=0,p=0,f=0,h=0;if(d)[m,p,f,h]=d;else{[e,t]=ri(e,t,-c),[n,i]=ri(n,i,-c);let k=(e-n)/2,B=(t-i)/2,X=k*k/(o*o)+B*B/(r*r);X>1&&(X=Math.sqrt(X),o=X*o,r=X*r);let _=a===l?-1:1,ie=o*o,F=r*r,S=ie*F-ie*B*B-F*k*k,z=ie*B*B+F*k*k,W=_*Math.sqrt(Math.abs(S/z));f=W*o*B/r+(e+n)/2,h=W*-r*k/o+(t+i)/2,m=Math.asin(parseFloat(((t-h)/r).toFixed(9))),p=Math.asin(parseFloat(((i-h)/r).toFixed(9))),e<f&&(m=Math.PI-m),n<f&&(p=Math.PI-p),m<0&&(m=Math.PI*2+m),p<0&&(p=Math.PI*2+p),l&&m>p&&(m=m-Math.PI*2),!l&&p>m&&(p=p-Math.PI*2)}let E=p-m;if(Math.abs(E)>Math.PI*120/180){let k=p,B=n,X=i;l&&p>m?p=m+Math.PI*120/180*1:p=m+Math.PI*120/180*-1,n=f+o*Math.cos(p),i=h+r*Math.sin(p),u=da(n,i,B,X,o,r,s,0,l,[p,k,f,h])}E=p-m;let g=Math.cos(m),x=Math.sin(m),w=Math.cos(p),y=Math.sin(p),b=Math.tan(E/4),I=4/3*o*b,A=4/3*r*b,T=[e,t],M=[e+I*x,t-A*g],O=[n+I*y,i-A*w],L=[n,i];if(M[0]=2*T[0]-M[0],M[1]=2*T[1]-M[1],d)return[M,O,L].concat(u);{u=[M,O,L].concat(u);let k=[];for(let B=0;B<u.length;B+=3){let X=ri(u[B][0],u[B][1],c),_=ri(u[B+1][0],u[B+1][1],c),ie=ri(u[B+2][0],u[B+2][1],c);k.push([X[0],X[1],_[0],_[1],ie[0],ie[1]])}return k}}var Pu={randOffset:Au,randOffsetWithRange:Mu,ellipse:Su,doubleLineOps:Tu};function hr(e,t,n,i,o){return{type:\"path\",ops:Tt(e,t,n,i,o)}}function ai(e,t,n){let i=(e||[]).length;if(i>2){let o=[];for(let r=0;r<i-1;r++)o.push(...Tt(e[r][0],e[r][1],e[r+1][0],e[r+1][1],n));return t&&o.push(...Tt(e[i-1][0],e[i-1][1],e[0][0],e[0][1],n)),{type:\"path\",ops:o}}else if(i===2)return hr(e[0][0],e[0][1],e[1][0],e[1][1],n);return{type:\"path\",ops:[]}}function Iu(e,t){return ai(e,!0,t)}function fa(e,t,n,i,o){let r=[[e,t],[e+n,t],[e+n,t+i],[e,t+i]];return Iu(r,o)}function Er(e,t){let n=ua(e,1*(1+t.roughness*.2),t);if(!t.disableMultiStroke){let i=ua(e,1.5*(1+t.roughness*.22),vu(t));n=n.concat(i)}return{type:\"path\",ops:n}}function Su(e,t,n,i,o){let r=gr(n,i,o);return Ji(e,t,o,r).opset}function gr(e,t,n){let i=Math.sqrt(Math.PI*2*Math.sqrt((Math.pow(e/2,2)+Math.pow(t/2,2))/2)),o=Math.ceil(Math.max(n.curveStepCount,n.curveStepCount/Math.sqrt(200)*i)),r=Math.PI*2/o,s=Math.abs(e/2),a=Math.abs(t/2),l=1-n.curveFitting;return s+=R(s*l,n),a+=R(a*l,n),{increment:r,rx:s,ry:a}}function Ji(e,t,n,i){let[o,r]=ma(i.increment,e,t,i.rx,i.ry,1,i.increment*Ki(.1,Ki(.4,1,n),n),n),s=Qi(o,null,n);if(!n.disableMultiStroke&&n.roughness!==0){let[a]=ma(i.increment,e,t,i.rx,i.ry,1.5,0,n),l=Qi(a,null,n);s=s.concat(l)}return{estimatedPoints:r,opset:{type:\"path\",ops:s}}}function xr(e,t,n,i,o,r,s,a,l){let d=e,c=t,u=Math.abs(n/2),m=Math.abs(i/2);u+=R(u*.01,l),m+=R(m*.01,l);let p=o,f=r;for(;p<0;)p+=Math.PI*2,f+=Math.PI*2;f-p>Math.PI*2&&(p=0,f=Math.PI*2);let h=Math.PI*2/l.curveStepCount,E=Math.min(h/2,(f-p)/2),g=pa(E,d,c,u,m,p,f,1,l);if(!l.disableMultiStroke){let x=pa(E,d,c,u,m,p,f,1.5,l);g.push(...x)}return s&&(a?g.push(...Tt(d,c,d+u*Math.cos(p),c+m*Math.sin(p),l),...Tt(d,c,d+u*Math.cos(f),c+m*Math.sin(f),l)):g.push({op:\"lineTo\",data:[d,c]},{op:\"lineTo\",data:[d+u*Math.cos(p),c+m*Math.sin(p)]})),{type:\"path\",ops:g}}function wr(e,t){let n=si(oi(Hn(e))),i=[],o=[0,0],r=[0,0];for(let{key:s,data:a}of n)switch(s){case\"M\":{r=[a[0],a[1]],o=[a[0],a[1]];break}case\"L\":i.push(...Tt(r[0],r[1],a[0],a[1],t)),r=[a[0],a[1]];break;case\"C\":{let[l,d,c,u,m,p]=a;i.push(...Du(l,d,c,u,m,p,r,t)),r=[m,p];break}case\"Z\":i.push(...Tt(r[0],r[1],o[0],o[1],t)),r=[o[0],o[1]];break}return{type:\"path\",ops:i}}function eo(e,t){let n=[];for(let i of e)if(i.length){let o=t.maxRandomnessOffset||0,r=i.length;if(r>2){n.push({op:\"move\",data:[i[0][0]+R(o,t),i[0][1]+R(o,t)]});for(let s=1;s<r;s++)n.push({op:\"lineTo\",data:[i[s][0]+R(o,t),i[s][1]+R(o,t)]})}}return{type:\"fillPath\",ops:n}}function An(e,t){return aa(t,Pu).fillPolygons(e,t)}function ha(e,t,n,i,o,r,s){let a=e,l=t,d=Math.abs(n/2),c=Math.abs(i/2);d+=R(d*.01,s),c+=R(c*.01,s);let u=o,m=r;for(;u<0;)u+=Math.PI*2,m+=Math.PI*2;m-u>Math.PI*2&&(u=0,m=Math.PI*2);let p=(m-u)/s.curveStepCount,f=[];for(let h=u;h<=m;h=h+p)f.push([a+d*Math.cos(h),l+c*Math.sin(h)]);return f.push([a+d*Math.cos(m),l+c*Math.sin(m)]),f.push([a,l]),An([f],s)}function Au(e,t){return R(e,t)}function Mu(e,t,n){return Ki(e,t,n)}function Tu(e,t,n,i,o){return Tt(e,t,n,i,o,!0)}function vu(e){let t=Object.assign({},e);return t.randomizer=void 0,e.seed&&(t.seed=e.seed+1),t}function Ea(e){return e.randomizer||(e.randomizer=new Zi(e.seed||0)),e.randomizer.next()}function Ki(e,t,n,i=1){return n.roughness*i*(Ea(n)*(t-e)+e)}function R(e,t,n=1){return Ki(-e,e,t,n)}function Tt(e,t,n,i,o,r=!1){let s=r?o.disableMultiStrokeFill:o.disableMultiStroke,a=ca(e,t,n,i,o,!0,!1);if(s)return a;let l=ca(e,t,n,i,o,!0,!0);return a.concat(l)}function ca(e,t,n,i,o,r,s){let a=Math.pow(e-n,2)+Math.pow(t-i,2),l=Math.sqrt(a),d=1;l<200?d=1:l>500?d=.4:d=-.0016668*l+1.233334;let c=o.maxRandomnessOffset||0;c*c*100>a&&(c=l/10);let u=c/2,m=.2+Ea(o)*.2,p=o.bowing*o.maxRandomnessOffset*(i-t)/200,f=o.bowing*o.maxRandomnessOffset*(e-n)/200;p=R(p,o,d),f=R(f,o,d);let h=[],E=()=>R(u,o,d),g=()=>R(c,o,d),x=o.preserveVertices;return r&&(s?h.push({op:\"move\",data:[e+(x?0:E()),t+(x?0:E())]}):h.push({op:\"move\",data:[e+(x?0:R(c,o,d)),t+(x?0:R(c,o,d))]})),s?h.push({op:\"bcurveTo\",data:[p+e+(n-e)*m+E(),f+t+(i-t)*m+E(),p+e+2*(n-e)*m+E(),f+t+2*(i-t)*m+E(),n+(x?0:E()),i+(x?0:E())]}):h.push({op:\"bcurveTo\",data:[p+e+(n-e)*m+g(),f+t+(i-t)*m+g(),p+e+2*(n-e)*m+g(),f+t+2*(i-t)*m+g(),n+(x?0:g()),i+(x?0:g())]}),h}function ua(e,t,n){let i=[];i.push([e[0][0]+R(t,n),e[0][1]+R(t,n)]),i.push([e[0][0]+R(t,n),e[0][1]+R(t,n)]);for(let o=1;o<e.length;o++)i.push([e[o][0]+R(t,n),e[o][1]+R(t,n)]),o===e.length-1&&i.push([e[o][0]+R(t,n),e[o][1]+R(t,n)]);return Qi(i,null,n)}function Qi(e,t,n){let i=e.length,o=[];if(i>3){let r=[],s=1-n.curveTightness;o.push({op:\"move\",data:[e[1][0],e[1][1]]});for(let a=1;a+2<i;a++){let l=e[a];r[0]=[l[0],l[1]],r[1]=[l[0]+(s*e[a+1][0]-s*e[a-1][0])/6,l[1]+(s*e[a+1][1]-s*e[a-1][1])/6],r[2]=[e[a+1][0]+(s*e[a][0]-s*e[a+2][0])/6,e[a+1][1]+(s*e[a][1]-s*e[a+2][1])/6],r[3]=[e[a+1][0],e[a+1][1]],o.push({op:\"bcurveTo\",data:[r[1][0],r[1][1],r[2][0],r[2][1],r[3][0],r[3][1]]})}if(t&&t.length===2){let a=n.maxRandomnessOffset;o.push({op:\"lineTo\",data:[t[0]+R(a,n),t[1]+R(a,n)]})}}else i===3?(o.push({op:\"move\",data:[e[1][0],e[1][1]]}),o.push({op:\"bcurveTo\",data:[e[1][0],e[1][1],e[2][0],e[2][1],e[2][0],e[2][1]]})):i===2&&o.push(...Tt(e[0][0],e[0][1],e[1][0],e[1][1],n));return o}function ma(e,t,n,i,o,r,s,a){let l=a.roughness===0,d=[],c=[];if(l){e=e/4,c.push([t+i*Math.cos(-e),n+o*Math.sin(-e)]);for(let u=0;u<=Math.PI*2;u=u+e){let m=[t+i*Math.cos(u),n+o*Math.sin(u)];d.push(m),c.push(m)}c.push([t+i*Math.cos(0),n+o*Math.sin(0)]),c.push([t+i*Math.cos(e),n+o*Math.sin(e)])}else{let u=R(.5,a)-Math.PI/2;c.push([R(r,a)+t+.9*i*Math.cos(u-e),R(r,a)+n+.9*o*Math.sin(u-e)]);let m=Math.PI*2+u-.01;for(let p=u;p<m;p=p+e){let f=[R(r,a)+t+i*Math.cos(p),R(r,a)+n+o*Math.sin(p)];d.push(f),c.push(f)}c.push([R(r,a)+t+i*Math.cos(u+Math.PI*2+s*.5),R(r,a)+n+o*Math.sin(u+Math.PI*2+s*.5)]),c.push([R(r,a)+t+.98*i*Math.cos(u+s),R(r,a)+n+.98*o*Math.sin(u+s)]),c.push([R(r,a)+t+.9*i*Math.cos(u+s*.5),R(r,a)+n+.9*o*Math.sin(u+s*.5)])}return[c,d]}function pa(e,t,n,i,o,r,s,a,l){let d=r+R(.1,l),c=[];c.push([R(a,l)+t+.9*i*Math.cos(d-e),R(a,l)+n+.9*o*Math.sin(d-e)]);for(let u=d;u<=s;u=u+e)c.push([R(a,l)+t+i*Math.cos(u),R(a,l)+n+o*Math.sin(u)]);return c.push([t+i*Math.cos(s),n+o*Math.sin(s)]),c.push([t+i*Math.cos(s),n+o*Math.sin(s)]),Qi(c,null,l)}function Du(e,t,n,i,o,r,s,a){let l=[],d=[a.maxRandomnessOffset||1,(a.maxRandomnessOffset||1)+.3],c=[0,0],u=a.disableMultiStroke?1:2,m=a.preserveVertices;for(let p=0;p<u;p++)p===0?l.push({op:\"move\",data:[s[0],s[1]]}):l.push({op:\"move\",data:[s[0]+(m?0:R(d[0],a)),s[1]+(m?0:R(d[0],a))]}),c=m?[o,r]:[o+R(d[p],a),r+R(d[p],a)],l.push({op:\"bcurveTo\",data:[e+R(d[p],a),t+R(d[p],a),n+R(d[p],a),i+R(d[p],a),c[0],c[1]]});return l}P();function li(e){return[...e]}function ga(e,t=0){let n=e.length;if(n<3)throw new Error(\"A curve must have at least three points.\");let i=[];if(n===3)i.push(li(e[0]),li(e[1]),li(e[2]),li(e[2]));else{let o=[];o.push(e[0],e[0]);for(let a=1;a<e.length;a++)o.push(e[a]),a===e.length-1&&o.push(e[a]);let r=[],s=1-t;i.push(li(o[0]));for(let a=1;a+2<o.length;a++){let l=o[a];r[0]=[l[0],l[1]],r[1]=[l[0]+(s*o[a+1][0]-s*o[a-1][0])/6,l[1]+(s*o[a+1][1]-s*o[a-1][1])/6],r[2]=[o[a+1][0]+(s*o[a][0]-s*o[a+2][0])/6,o[a+1][1]+(s*o[a][1]-s*o[a+2][1])/6],r[3]=[o[a+1][0],o[a+1][1]],i.push(r[1],r[2],r[3])}}return i}P();function Bu(e,t){return Math.sqrt(to(e,t))}function to(e,t){return Math.pow(e[0]-t[0],2)+Math.pow(e[1]-t[1],2)}function Lu(e,t,n){let i=to(t,n);if(i===0)return to(e,t);let o=((e[0]-t[0])*(n[0]-t[0])+(e[1]-t[1])*(n[1]-t[1]))/i;return o=Math.max(0,Math.min(1,o)),to(e,Mn(t,n,o))}function Mn(e,t,n){return[e[0]+(t[0]-e[0])*n,e[1]+(t[1]-e[1])*n]}function Cu(e,t){let n=e[t+0],i=e[t+1],o=e[t+2],r=e[t+3],s=3*i[0]-2*n[0]-r[0];s*=s;let a=3*i[1]-2*n[1]-r[1];a*=a;let l=3*o[0]-2*r[0]-n[0];l*=l;let d=3*o[1]-2*r[1]-n[1];return d*=d,s<l&&(s=l),a<d&&(a=d),s+a}function br(e,t,n,i){let o=i||[];if(Cu(e,t)<n){let r=e[t+0];o.length?Bu(o[o.length-1],r)>1&&o.push(r):o.push(r),o.push(e[t+3])}else{let s=e[t+0],a=e[t+1],l=e[t+2],d=e[t+3],c=Mn(s,a,.5),u=Mn(a,l,.5),m=Mn(l,d,.5),p=Mn(c,u,.5),f=Mn(u,m,.5),h=Mn(p,f,.5);br([s,c,p,h],0,n,o),br([h,f,m,d],0,n,o)}return o}function di(e,t){return no(e,0,e.length,t)}function no(e,t,n,i,o){let r=o||[],s=e[t],a=e[n-1],l=0,d=1;for(let c=t+1;c<n-1;++c){let u=Lu(e[c],s,a);u>l&&(l=u,d=c)}return Math.sqrt(l)>i?(no(e,t,d+1,i,r),no(e,d,n,i,r)):(r.length||r.push(s),r.push(a)),r}function vt(e,t=.15,n){let i=[],o=(e.length-1)/3;for(let r=0;r<o;r++){let s=r*3;br(e,s,t,i)}return n&&n>0?no(i,0,i.length,n):i}P();function xa(e,t,n){let i=Hn(e),o=si(oi(i)),r=[],s=[],a=[0,0],l=[],d=()=>{l.length>=4&&s.push(...vt(l,t)),l=[]},c=()=>{d(),s.length&&(r.push(s),s=[])};for(let{key:m,data:p}of o)switch(m){case\"M\":c(),a=[p[0],p[1]],s.push(a);break;case\"L\":d(),s.push([p[0],p[1]]);break;case\"C\":if(!l.length){let f=s.length?s[s.length-1]:a;l.push([f[0],f[1]])}l.push([p[0],p[1]]),l.push([p[2],p[3]]),l.push([p[4],p[5]]);break;case\"Z\":d(),s.push([a[0],a[1]]);break}if(c(),!n)return r;let u=[];for(let m of r){let p=di(m,n);p.length&&u.push(p)}return u}var Xe=\"none\",Je=class{constructor(t){this.defaultOptions={maxRandomnessOffset:2,roughness:1,bowing:1,stroke:\"#000\",strokeWidth:1,curveTightness:0,curveFitting:.95,curveStepCount:9,fillStyle:\"hachure\",fillWeight:-1,hachureAngle:-41,hachureGap:-1,dashOffset:-1,dashGap:-1,zigzagOffset:-1,seed:0,disableMultiStroke:!1,disableMultiStrokeFill:!1,preserveVertices:!1,fillShapeRoughnessGain:.8},this.config=t||{},this.config.options&&(this.defaultOptions=this._o(this.config.options))}static newSeed(){return la()}_o(t){return t?Object.assign({},this.defaultOptions,t):this.defaultOptions}_d(t,n,i){return{shape:t,sets:n||[],options:i||this.defaultOptions}}line(t,n,i,o,r){let s=this._o(r);return this._d(\"line\",[hr(t,n,i,o,s)],s)}rectangle(t,n,i,o,r){let s=this._o(r),a=[],l=fa(t,n,i,o,s);if(s.fill){let d=[[t,n],[t+i,n],[t+i,n+o],[t,n+o]];s.fillStyle===\"solid\"?a.push(eo([d],s)):a.push(An([d],s))}return s.stroke!==Xe&&a.push(l),this._d(\"rectangle\",a,s)}ellipse(t,n,i,o,r){let s=this._o(r),a=[],l=gr(i,o,s),d=Ji(t,n,s,l);if(s.fill)if(s.fillStyle===\"solid\"){let c=Ji(t,n,s,l).opset;c.type=\"fillPath\",a.push(c)}else a.push(An([d.estimatedPoints],s));return s.stroke!==Xe&&a.push(d.opset),this._d(\"ellipse\",a,s)}circle(t,n,i,o){let r=this.ellipse(t,n,i,i,o);return r.shape=\"circle\",r}linearPath(t,n){let i=this._o(n);return this._d(\"linearPath\",[ai(t,!1,i)],i)}arc(t,n,i,o,r,s,a=!1,l){let d=this._o(l),c=[],u=xr(t,n,i,o,r,s,a,!0,d);if(a&&d.fill)if(d.fillStyle===\"solid\"){let m=Object.assign({},d);m.disableMultiStroke=!0;let p=xr(t,n,i,o,r,s,!0,!1,m);p.type=\"fillPath\",c.push(p)}else c.push(ha(t,n,i,o,r,s,d));return d.stroke!==Xe&&c.push(u),this._d(\"arc\",c,d)}curve(t,n){let i=this._o(n),o=[],r=Er(t,i);if(i.fill&&i.fill!==Xe&&t.length>=3)if(i.fillStyle===\"solid\"){let s=Er(t,Object.assign(Object.assign({},i),{disableMultiStroke:!0,roughness:i.roughness?i.roughness+i.fillShapeRoughnessGain:0}));o.push({type:\"fillPath\",ops:this._mergedShape(s.ops)})}else{let s=ga(t),a=vt(s,10,(1+i.roughness)/2);o.push(An([a],i))}return i.stroke!==Xe&&o.push(r),this._d(\"curve\",o,i)}polygon(t,n){let i=this._o(n),o=[],r=ai(t,!0,i);return i.fill&&(i.fillStyle===\"solid\"?o.push(eo([t],i)):o.push(An([t],i))),i.stroke!==Xe&&o.push(r),this._d(\"polygon\",o,i)}path(t,n){let i=this._o(n),o=[];if(!t)return this._d(\"path\",o,i);t=(t||\"\").replace(/\\n/g,\" \").replace(/(-\\s)/g,\"-\").replace(\"/(ss)/g\",\" \");let r=i.fill&&i.fill!==\"transparent\"&&i.fill!==Xe,s=i.stroke!==Xe,a=!!(i.simplification&&i.simplification<1),l=a?4-4*(i.simplification||1):(1+i.roughness)/2,d=xa(t,1,l),c=wr(t,i);if(r)if(i.fillStyle===\"solid\")if(d.length===1){let u=wr(t,Object.assign(Object.assign({},i),{disableMultiStroke:!0,roughness:i.roughness?i.roughness+i.fillShapeRoughnessGain:0}));o.push({type:\"fillPath\",ops:this._mergedShape(u.ops)})}else o.push(eo(d,i));else o.push(An(d,i));return s&&(a?d.forEach(u=>{o.push(ai(u,!1,i))}):o.push(c)),this._d(\"path\",o,i)}opsToPath(t,n){let i=\"\";for(let o of t.ops){let r=typeof n==\"number\"&&n>=0?o.data.map(s=>+s.toFixed(n)):o.data;switch(o.op){case\"move\":i+=`M${r[0]} ${r[1]} `;break;case\"bcurveTo\":i+=`C${r[0]} ${r[1]}, ${r[2]} ${r[3]}, ${r[4]} ${r[5]} `;break;case\"lineTo\":i+=`L${r[0]} ${r[1]} `;break}}return i.trim()}toPaths(t){let n=t.sets||[],i=t.options||this.defaultOptions,o=[];for(let r of n){let s=null;switch(r.type){case\"path\":s={d:this.opsToPath(r),stroke:i.stroke,strokeWidth:i.strokeWidth,fill:Xe};break;case\"fillPath\":s={d:this.opsToPath(r),stroke:Xe,strokeWidth:0,fill:i.fill||Xe};break;case\"fillSketch\":s=this.fillSketch(r,i);break}s&&o.push(s)}return o}fillSketch(t,n){let i=n.fillWeight;return i<0&&(i=n.strokeWidth/2),{d:this.opsToPath(t),stroke:n.fill||Xe,strokeWidth:i,fill:Xe}}_mergedShape(t){return t.filter((n,i)=>i===0?!0:n.op!==\"move\")}};var io=class{constructor(t,n){this.canvas=t,this.ctx=this.canvas.getContext(\"2d\"),this.gen=new Je(n)}draw(t){let n=t.sets||[],i=t.options||this.getDefaultOptions(),o=this.ctx,r=t.options.fixedDecimalPlaceDigits;for(let s of n)switch(s.type){case\"path\":o.save(),o.strokeStyle=i.stroke===\"none\"?\"transparent\":i.stroke,o.lineWidth=i.strokeWidth,i.strokeLineDash&&o.setLineDash(i.strokeLineDash),i.strokeLineDashOffset&&(o.lineDashOffset=i.strokeLineDashOffset),this._drawToContext(o,s,r),o.restore();break;case\"fillPath\":{o.save(),o.fillStyle=i.fill||\"\";let a=t.shape===\"curve\"||t.shape===\"polygon\"||t.shape===\"path\"?\"evenodd\":\"nonzero\";this._drawToContext(o,s,r,a),o.restore();break}case\"fillSketch\":this.fillSketch(o,s,i);break}}fillSketch(t,n,i){let o=i.fillWeight;o<0&&(o=i.strokeWidth/2),t.save(),i.fillLineDash&&t.setLineDash(i.fillLineDash),i.fillLineDashOffset&&(t.lineDashOffset=i.fillLineDashOffset),t.strokeStyle=i.fill||\"\",t.lineWidth=o,this._drawToContext(t,n,i.fixedDecimalPlaceDigits),t.restore()}_drawToContext(t,n,i,o=\"nonzero\"){t.beginPath();for(let r of n.ops){let s=typeof i==\"number\"&&i>=0?r.data.map(a=>+a.toFixed(i)):r.data;switch(r.op){case\"move\":t.moveTo(s[0],s[1]);break;case\"bcurveTo\":t.bezierCurveTo(s[0],s[1],s[2],s[3],s[4],s[5]);break;case\"lineTo\":t.lineTo(s[0],s[1]);break}}n.type===\"fillPath\"?t.fill(o):t.stroke()}get generator(){return this.gen}getDefaultOptions(){return this.gen.defaultOptions}line(t,n,i,o,r){let s=this.gen.line(t,n,i,o,r);return this.draw(s),s}rectangle(t,n,i,o,r){let s=this.gen.rectangle(t,n,i,o,r);return this.draw(s),s}ellipse(t,n,i,o,r){let s=this.gen.ellipse(t,n,i,o,r);return this.draw(s),s}circle(t,n,i,o){let r=this.gen.circle(t,n,i,o);return this.draw(r),r}linearPath(t,n){let i=this.gen.linearPath(t,n);return this.draw(i),i}polygon(t,n){let i=this.gen.polygon(t,n);return this.draw(i),i}arc(t,n,i,o,r,s,a=!1,l){let d=this.gen.arc(t,n,i,o,r,s,a,l);return this.draw(d),d}curve(t,n){let i=this.gen.curve(t,n);return this.draw(i),i}path(t,n){let i=this.gen.path(t,n);return this.draw(i),i}};P();P();var ci=\"http://www.w3.org/2000/svg\";var oo=class{constructor(t,n){this.svg=t,this.gen=new Je(n)}draw(t){let n=t.sets||[],i=t.options||this.getDefaultOptions(),o=this.svg.ownerDocument||window.document,r=o.createElementNS(ci,\"g\"),s=t.options.fixedDecimalPlaceDigits;for(let a of n){let l=null;switch(a.type){case\"path\":{l=o.createElementNS(ci,\"path\"),l.setAttribute(\"d\",this.opsToPath(a,s)),l.setAttribute(\"stroke\",i.stroke),l.setAttribute(\"stroke-width\",i.strokeWidth+\"\"),l.setAttribute(\"fill\",\"none\"),i.strokeLineDash&&l.setAttribute(\"stroke-dasharray\",i.strokeLineDash.join(\" \").trim()),i.strokeLineDashOffset&&l.setAttribute(\"stroke-dashoffset\",`${i.strokeLineDashOffset}`);break}case\"fillPath\":{l=o.createElementNS(ci,\"path\"),l.setAttribute(\"d\",this.opsToPath(a,s)),l.setAttribute(\"stroke\",\"none\"),l.setAttribute(\"stroke-width\",\"0\"),l.setAttribute(\"fill\",i.fill||\"\"),(t.shape===\"curve\"||t.shape===\"polygon\")&&l.setAttribute(\"fill-rule\",\"evenodd\");break}case\"fillSketch\":{l=this.fillSketch(o,a,i);break}}l&&r.appendChild(l)}return r}fillSketch(t,n,i){let o=i.fillWeight;o<0&&(o=i.strokeWidth/2);let r=t.createElementNS(ci,\"path\");return r.setAttribute(\"d\",this.opsToPath(n,i.fixedDecimalPlaceDigits)),r.setAttribute(\"stroke\",i.fill||\"\"),r.setAttribute(\"stroke-width\",o+\"\"),r.setAttribute(\"fill\",\"none\"),i.fillLineDash&&r.setAttribute(\"stroke-dasharray\",i.fillLineDash.join(\" \").trim()),i.fillLineDashOffset&&r.setAttribute(\"stroke-dashoffset\",`${i.fillLineDashOffset}`),r}get generator(){return this.gen}getDefaultOptions(){return this.gen.defaultOptions}opsToPath(t,n){return this.gen.opsToPath(t,n)}line(t,n,i,o,r){let s=this.gen.line(t,n,i,o,r);return this.draw(s)}rectangle(t,n,i,o,r){let s=this.gen.rectangle(t,n,i,o,r);return this.draw(s)}ellipse(t,n,i,o,r){let s=this.gen.ellipse(t,n,i,o,r);return this.draw(s)}circle(t,n,i,o){let r=this.gen.circle(t,n,i,o);return this.draw(r)}linearPath(t,n){let i=this.gen.linearPath(t,n);return this.draw(i)}polygon(t,n){let i=this.gen.polygon(t,n);return this.draw(i)}arc(t,n,i,o,r,s,a=!1,l){let d=this.gen.arc(t,n,i,o,r,s,a,l);return this.draw(d)}curve(t,n){let i=this.gen.curve(t,n);return this.draw(i)}path(t,n){let i=this.gen.path(t,n);return this.draw(i)}};var Tn={canvas(e,t){return new io(e,t)},svg(e,t){return new oo(e,t)},generator(e){return new Je(e)},newSeed(){return Je.newSeed()}};import{arrayToMap as Nd,invariant as Is,rescalePoints as Gd,sizeOf as ih}from\"@excalidraw/common\";import{degreesToRadians as Ps,lineSegment as ge,pointDistance as oh,pointFrom as D,pointFromArray as zd,pointRotateRads as oe}from\"@excalidraw/math\";P();import{invariant as Gu}from\"@excalidraw/common\";import{curve as Ou,lineSegment as ku,pointFrom as ae,pointDistance as cw,pointFromArray as Fu,pointFromVector as Ru,pointRotateRads as rt,polygon as wa,polygonFromPoints as yr,PRECISION as uw,segmentsIntersectAt as mw,vector as Nu,vectorAdd as zu,vectorFromPoint as Hu,vectorScale as pw}from\"@excalidraw/math\";import{getElementAbsoluteCoords as hw}from\"@excalidraw/element\";var ba=e=>{let{angle:t,width:n,height:i,x:o,y:r}=e,s=o+n/2,a=r+i/2,l=ae(s,a),d;return e.type===\"diamond\"?d=wa(rt(ae(s,r),l,t),rt(ae(o+n,a),l,t),rt(ae(s,r+i),l,t),rt(ae(o,a),l,t)):d=wa(rt(ae(o,r),l,t),rt(ae(o+n,r),l,t),rt(ae(o+n,r+i),l,t),rt(ae(o,r+i),l,t)),{type:\"polygon\",data:d}};var ya=e=>{let{width:t,height:n,angle:i,x:o,y:r}=e;return{type:\"ellipse\",data:{center:ae(o+t/2,r+n/2),angle:i,halfWidth:t/2,halfHeight:n/2}}},Dt=e=>{if(!e)return[];for(let t of e.sets)if(t.type===\"path\")return t.ops;return e.sets[0].ops},Pa=(e,t=ae(0,0),n,i)=>{let o=l=>rt(ae(l[0]+t[0],l[1]+t[1]),i,n),r=Dt(e),s=[],a=ae(0,0);for(let l of r){if(l.op===\"move\"){let d=Fu(l.data);Gu(d!=null,\"Ops data is not a point\"),a=o(d)}if(l.op===\"bcurveTo\"){let d=o(ae(l.data[0],l.data[1])),c=o(ae(l.data[2],l.data[3])),u=o(ae(l.data[4],l.data[5]));s.push(Ou(a,d,c,u)),a=u}}return{type:\"polycurve\",data:s}},_u=e=>{let t=e[0],n=[];for(let i=1;i<e.length;i++){let o=e[i];n.push(ku(t,o)),t=o}return n},Ia=(e,t,n=!1)=>{let i=r=>rt(Ru(zu(Hu(r),Nu(e.x,e.y))),t,e.angle),o=_u(e.points.map(r=>i(r)));return n?{type:\"polygon\",data:yr(o.flat())}:{type:\"polyline\",data:o}},Sa=(e,t,n=ae(0,0),i,o)=>{let r=c=>rt(ae(c[0]+n[0],c[1]+n[1]),o,i);if(e.roundness===null)return{type:\"polygon\",data:yr(e.points.map(c=>r(c)))};let s=Dt(t),a=[],l=!1;for(let c of s)c.op===\"move\"?(l=!l,l&&a.push(ae(c.data[0],c.data[1]))):c.op===\"bcurveTo\"?l&&(a.push(ae(c.data[0],c.data[1])),a.push(ae(c.data[2],c.data[3])),a.push(ae(c.data[4],c.data[5]))):c.op===\"lineTo\"&&l&&a.push(ae(c.data[0],c.data[1]));let d=vt(a,10,5).map(c=>r(c));return{type:\"polygon\",data:yr(d)}};P();P();function Aa(e,t,n,i=o=>o){return e*i(.5-t*(.5-n))}function Uu(e){return[-e[0],-e[1]]}function at(e,t){return[e[0]+t[0],e[1]+t[1]]}function et(e,t){return[e[0]-t[0],e[1]-t[1]]}function st(e,t){return[e[0]*t,e[1]*t]}function Wu(e,t){return[e[0]/t,e[1]/t]}function ui(e){return[e[1],-e[0]]}function Ma(e,t){return e[0]*t[0]+e[1]*t[1]}function Yu(e,t){return e[0]===t[0]&&e[1]===t[1]}function ju(e){return Math.hypot(e[0],e[1])}function Xu(e){return e[0]*e[0]+e[1]*e[1]}function Ta(e,t){return Xu(et(e,t))}function Ba(e){return Wu(e,ju(e))}function $u(e,t){return Math.hypot(e[1]-t[1],e[0]-t[0])}function mi(e,t,n){let i=Math.sin(n),o=Math.cos(n),r=e[0]-t[0],s=e[1]-t[1],a=r*o-s*i,l=r*i+s*o;return[a+t[0],l+t[1]]}function Pr(e,t,n){return at(e,st(et(t,e),n))}function va(e,t,n){return at(e,st(t,n))}var{min:_n,PI:Vu}=Math,Da=.275,pi=Vu+1e-4;function Zu(e,t={}){let{size:n=16,smoothing:i=.5,thinning:o=.5,simulatePressure:r=!0,easing:s=F=>F,start:a={},end:l={},last:d=!1}=t,{cap:c=!0,easing:u=F=>F*(2-F)}=a,{cap:m=!0,easing:p=F=>--F*F*F+1}=l;if(e.length===0||n<=0)return[];let f=e[e.length-1].runningLength,h=a.taper===!1?0:a.taper===!0?Math.max(n,f):a.taper,E=l.taper===!1?0:l.taper===!0?Math.max(n,f):l.taper,g=Math.pow(n*i,2),x=[],w=[],y=e.slice(0,10).reduce((F,S)=>{let z=S.pressure;if(r){let W=_n(1,S.distance/n),xe=_n(1,1-W);z=_n(1,F+(xe-F)*(W*Da))}return(F+z)/2},e[0].pressure),b=Aa(n,o,e[e.length-1].pressure,s),I,A=e[0].vector,T=e[0].point,M=T,O=T,L=M,k=!1;for(let F=0;F<e.length;F++){let{pressure:S}=e[F],{point:z,vector:W,distance:xe,runningLength:ht}=e[F];if(F<e.length-1&&f-ht<3)continue;if(o){if(r){let je=_n(1,xe/n),Qe=_n(1,1-je);S=_n(1,y+(Qe-y)*(je*Da))}b=Aa(n,o,S,s)}else b=n/2;I===void 0&&(I=b);let Hi=ht<h?u(ht/h):1,ur=f-ht<E?p((f-ht)/E):1;b=Math.max(.01,b*Math.min(Hi,ur));let _i=(F<e.length-1?e[F+1]:e[F]).vector,ii=F<e.length-1?Ma(W,_i):1,mr=Ma(W,A)<0&&!k,Ui=ii!==null&&ii<0;if(mr||Ui){let je=st(ui(A),b);for(let Qe=1/13,Zt=0;Zt<=1;Zt+=Qe)O=mi(et(z,je),z,pi*Zt),x.push(O),L=mi(at(z,je),z,pi*-Zt),w.push(L);T=O,M=L,Ui&&(k=!0);continue}if(k=!1,F===e.length-1){let je=st(ui(W),b);x.push(et(z,je)),w.push(at(z,je));continue}let Wi=st(ui(Pr(_i,W,ii)),b);O=et(z,Wi),(F<=1||Ta(T,O)>g)&&(x.push(O),T=O),L=at(z,Wi),(F<=1||Ta(M,L)>g)&&(w.push(L),M=L),y=S,A=W}let B=e[0].point.slice(0,2),X=e.length>1?e[e.length-1].point.slice(0,2):at(e[0].point,[1,1]),_=[],ie=[];if(e.length===1){if(!(h||E)||d){let F=va(B,Ba(ui(et(B,X))),-(I||b)),S=[];for(let z=1/13,W=z;W<=1;W+=z)S.push(mi(F,B,pi*2*W));return S}}else{if(!(h||E&&e.length===1))if(c)for(let S=1/13,z=S;z<=1;z+=S){let W=mi(w[0],B,pi*z);_.push(W)}else{let S=et(x[0],w[0]),z=st(S,.5),W=st(S,.51);_.push(et(B,z),et(B,W),at(B,W),at(B,z))}let F=ui(Uu(e[e.length-1].vector));if(E||h&&e.length===1)ie.push(X);else if(m){let S=va(X,F,b);for(let z=1/29,W=z;W<1;W+=z)ie.push(mi(S,X,pi*3*W))}else ie.push(at(X,st(F,b)),at(X,st(F,b*.99)),et(X,st(F,b*.99)),et(X,st(F,b)))}return x.concat(ie,w.reverse(),_)}function qu(e,t={}){var n;let{streamline:i=.5,size:o=16,last:r=!1}=t;if(e.length===0)return[];let s=.15+(1-i)*.85,a=Array.isArray(e[0])?e:e.map(({x:p,y:f,pressure:h=.5})=>[p,f,h]);if(a.length===2){let p=a[1];a=a.slice(0,-1);for(let f=1;f<5;f++)a.push(Pr(a[0],p,f/4))}a.length===1&&(a=[...a,[...at(a[0],[1,1]),...a[0].slice(2)]]);let l=[{point:[a[0][0],a[0][1]],pressure:a[0][2]>=0?a[0][2]:.25,vector:[1,1],distance:0,runningLength:0}],d=!1,c=0,u=l[0],m=a.length-1;for(let p=1;p<a.length;p++){let f=r&&p===m?a[p].slice(0,2):Pr(u.point,a[p],s);if(Yu(u.point,f))continue;let h=$u(f,u.point);if(c+=h,p<m&&!d){if(c<o)continue;d=!0}u={point:f,pressure:a[p][2]>=0?a[p][2]:.5,vector:Ba(et(u.point,f)),distance:h,runningLength:c},l.push(u)}return l[0].vector=((n=l[1])==null?void 0:n.vector)||[0,0],l}function La(e,t={}){return Zu(qu(e,t),t)}import{pointFrom as le,pointDistance as Md,pointRotateRads as Yt}from\"@excalidraw/math\";import{ROUGHNESS as Xf,THEME as ys,isTransparent as Oi,assertNever as $f,COLOR_PALETTE as Vf,LINE_POLYGON_POINT_MERGE_DISTANCE as Zf,applyDarkModeFilter as ki}from\"@excalidraw/common\";P();import{isRightAngleRads as Gf,lineSegment as bd,pointFrom as _o,pointRotateRads as gs}from\"@excalidraw/math\";import{BOUND_TEXT_PADDING as Uo,DEFAULT_REDUCED_GLOBAL_ALPHA as Of,ELEMENT_READY_TO_ERASE_OPACITY as kf,FRAME_STYLE as Li,DARK_THEME_FILTER as Ff,MIME_TYPES as ws,THEME as Zn,distance as gn,getFontString as Rf,isRTL as Nf,getVerticalOffset as zf,invariant as Hf,applyDarkModeFilter as Yo,isSafari as _f}from\"@excalidraw/common\";P();import{pointFrom as Bt,pointCenter as Ku,pointRotateRads as Qt,vectorFromPoint as Ir,vectorNormalize as Ca,vectorSubtract as Ga,vectorAdd as ro,vectorScale as so,pointFromVector as Oa,clamp as Pe,isCloseTo as ka}from\"@excalidraw/math\";var Ie=10,Pw=(e,t,n,i,o,r,s,a)=>{let{width:l,height:d}=Sr(e),c=i/l,u=o/d,m=(e.crop?.x??0)/c,p=(e.crop?.y??0)/u,f=Qt(Bt(r,s),re(e,t),-e.angle);r=f[0],s=f[1];let h=e.width,E=e.height,g=e.crop??{x:0,y:0,width:i,height:o,naturalWidth:i,naturalHeight:o},x=g.height,w=g.width,y=e.scale[0]===-1,b=e.scale[1]===-1,I=s-e.y,A=r-e.x;n.includes(\"n\")&&(E=Pe(e.height-I,Ie,b?d-p:e.height+p)),n.includes(\"s\")&&(I=s-e.y-e.height,E=Pe(e.height+I,Ie,b?e.height+p:d-p)),n.includes(\"e\")&&(A=r-e.x-e.width,h=Pe(e.width+A,Ie,y?e.width+m:l-m)),n.includes(\"w\")&&(h=Pe(e.width-A,Ie,y?l-m:e.width+m));let T=L=>{L.height=E*u,L.width=h*c};T(g);let M=(L,k)=>{T(k),L.includes(\"n\")&&(b||(k.y+=x-k.height)),L.includes(\"s\")&&b&&(k.y+=x-k.height),L.includes(\"e\")&&y&&(k.x+=w-k.width),L.includes(\"w\")&&(y||(k.x+=w-k.width))};switch(n){case\"n\":{if(a){let L=m+e.width/2,k=l-m-e.width/2,B=Math.min(L,k)*2;h=Pe(E*a,Ie,B),E=h/a}M(n,g),a&&(g.x+=(w-g.width)/2);break}case\"s\":{if(a){let L=m+e.width/2,k=l-m-e.width/2,B=Math.min(L,k)*2;h=Pe(E*a,Ie,B),E=h/a}M(n,g),a&&(g.x+=(w-g.width)/2);break}case\"w\":{if(a){let L=p+e.height/2,k=d-p-e.height/2,B=Math.min(L,k)*2;E=Pe(h/a,Ie,B),h=E*a}M(n,g),a&&(g.y+=(x-g.height)/2);break}case\"e\":{if(a){let L=p+e.height/2,k=d-p-e.height/2,B=Math.min(L,k)*2;E=Pe(h/a,Ie,B),h=E*a}M(n,g),a&&(g.y+=(x-g.height)/2);break}case\"ne\":{if(a)if(A>-I){let L=b?d-p:p+e.height;E=Pe(h/a,Ie,L),h=E*a}else{let L=y?m+e.width:l-m;h=Pe(E*a,Ie,L),E=h/a}M(n,g);break}case\"nw\":{if(a)if(A<I){let L=b?d-p:p+e.height;E=Pe(h/a,Ie,L),h=E*a}else{let L=y?l-m:m+e.width;h=Pe(E*a,Ie,L),E=h/a}M(n,g);break}case\"se\":{if(a)if(A>I){let L=b?p+e.height:d-p;E=Pe(h/a,Ie,L),h=E*a}else{let L=y?m+e.width:l-m;h=Pe(E*a,Ie,L),E=h/a}M(n,g);break}case\"sw\":{if(a)if(-A>I){let L=b?p+e.height:d-p;E=Pe(h/a,Ie,L),h=E*a}else{let L=y?l-m:m+e.width;h=Pe(E*a,Ie,L),E=h/a}M(n,g);break}default:break}let O=Qu(e,n,h,E,!!a);return ka(g.width,g.naturalWidth)&&ka(g.height,g.naturalHeight)&&(g=null),{x:O[0],y:O[1],width:h,height:E,crop:g}},Qu=(e,t,n,i,o)=>{let[r,s,a,l]=Jt(e,e.width,e.height,!0),d=Bt(r,s),c=Bt(a,l),u=Ku(d,c),[m,p,f,h]=Jt(e,n,i,!0),E=f-m,g=h-p,x=[...d];if([\"n\",\"w\",\"nw\"].includes(t)&&(x=[c[0]-Math.abs(E),c[1]-Math.abs(g)]),t===\"ne\"){let T=[d[0],c[1]];x=[T[0],T[1]-Math.abs(g)]}if(t===\"sw\"){let T=[c[0],d[1]];x=[T[0]-Math.abs(E),T[1]]}o&&([\"s\",\"n\"].includes(t)&&(x[0]=u[0]-E/2),[\"e\",\"w\"].includes(t)&&(x[1]=u[1]-g/2));let w=e.angle,y=Qt(x,u,w),b=[x[0]+Math.abs(E)/2,x[1]+Math.abs(g)/2],I=Qt(b,u,w);x=Qt(y,I,-w);let A=[...x];return A[0]+=e.x-m,A[1]+=e.y-p,A},Fa=(e,t)=>{if(e.crop){let{width:n,height:i}=Sr(e),[o,r,s,a,l,d]=$(e,t),c=Ir(Qt(Bt(o,r),Bt(l,d),e.angle)),u=Ir(Qt(Bt(s,r),Bt(l,d),e.angle)),m=Ca(Ga(u,c)),p=Ir(Qt(Bt(o,a),Bt(l,d),e.angle)),f=Ga(p,c),h=Ca(f),{cropX:E,cropY:g}=Ju(e.crop,e.scale),x=ro(ro(c,so(m,-E*n/e.crop.naturalWidth)),so(h,-g*i/e.crop.naturalHeight)),w=Oa(ro(ro(x,so(m,n/2)),so(h,i/2))),y=Qt(Oa(x),w,-e.angle);return{...e,x:y[0],y:y[1],width:n,height:i,crop:null}}return e},Sr=e=>{if(e.crop){let t=e.width/(e.crop.width/e.crop.naturalWidth),n=e.height/(e.crop.height/e.crop.naturalHeight);return{width:t,height:n}}return{width:e.width,height:e.height}},Ju=(e,t)=>{let n=e.x,i=e.y,o=t[0]===-1,r=t[1]===-1;return o&&(n=e.naturalWidth-Math.abs(n)-e.width),r&&(i=e.naturalHeight-Math.abs(i)-e.height),{cropX:n,cropY:i}},Iw=(e,t=!1)=>{let n=e.crop;if(!n)return null;let i=e.scale[0]===-1,o=e.scale[1]===-1,r=n.x,s=n.y;if(i&&(r=n.naturalWidth-n.width-n.x),o&&(s=n.naturalHeight-n.height-n.y),t)return{x:r,y:s};let{width:a,height:l}=Sr(e);return{x:r/(n.naturalWidth/a),y:s/(n.naturalHeight/l)}};P();import{pointCenter as Ul,pointFrom as G,pointRotateRads as Ce,pointsEqual as Wl,pointDistance as kn,vectorFromPoint as Zp,curveLength as qp,curvePointAtLength as Kp}from\"@excalidraw/math\";import{DRAGGING_THRESHOLD as Qp,KEYS as On,shouldRotateWithDiscreteAngle as Di,getGridPoint as Yl,invariant as Ge,isShallowEqual as Jp,getFeatureFlag as $n}from\"@excalidraw/common\";import{deconstructLinearOrFreeDrawElement as jl,getSnapOutlineMidPoint as Xl,isPathALoop as ef,moveArrowAboveBindable as $l,projectFixedPointOntoDiagonal as Vl}from\"@excalidraw/element\";P();import{arrayToMap as kl,getFeatureFlag as Dp,invariant as it,isTransparent as Bp}from\"@excalidraw/common\";import{PRECISION as Lp,clamp as rs,lineSegment as Go,pointDistance as un,pointDistanceSq as _t,pointFrom as te,pointFromVector as Lo,pointRotateRads as se,pointsEqual as Cp,vectorFromPoint as Mi,vectorNormalize as os,vectorScale as Co}from\"@excalidraw/math\";P();import{invariant as ul,isTransparent as ml}from\"@excalidraw/common\";import{curveIntersectLineSegment as pl,isPointWithinBounds as wo,lineSegment as yi,lineSegmentIntersectionPoints as fl,pointFrom as me,pointFromVector as Zm,pointRotateRads as Ze,pointsEqual as hl,vectorFromPoint as qm,vectorNormalize as Km,vectorScale as Qm}from\"@excalidraw/math\";import{ellipse as Jm,ellipseSegmentInterceptPoints as ep}from\"@excalidraw/math/ellipse\";P();import{DEFAULT_ADAPTIVE_RADIUS as am,DEFAULT_PROPORTIONAL_RADIUS as Mr,invariant as lm,LINE_CONFIRM_THRESHOLD as dm,ROUNDNESS as Tr}from\"@excalidraw/common\";import{bezierEquation as cm,curve as Ct,curveCatmullRomCubicApproxPoints as Xa,curveOffsetPoints as $a,lineSegment as Ee,lineSegmentIntersectionPoints as Ya,pointDistance as Dn,pointFrom as N,pointFromArray as um,pointFromVector as mm,pointRotateRads as $e,pointTranslate as ja,rectangle as pm,vectorFromPoint as Va,vectorNormalize as fm,vectorScale as vr}from\"@excalidraw/math\";P();import{ROUNDNESS as fi,assertNever as em}from\"@excalidraw/common\";import{pointsEqual as Ra}from\"@excalidraw/math\";var vn=e=>!!e&&e.type===\"image\"&&!!e.fileId,we=e=>!!e&&e.type===\"image\",Na=e=>!!e&&e.type===\"embeddable\",ao=e=>!!e&&e.type===\"iframe\",lo=e=>!!e&&(e.type===\"iframe\"||e.type===\"embeddable\"),Q=e=>e!=null&&e.type===\"text\",co=e=>e!=null&&e.type===\"frame\",za=e=>e!=null&&e.type===\"magicframe\",Z=e=>e!=null&&(e.type===\"frame\"||e.type===\"magicframe\"),Se=e=>e!=null&&tm(e.type),tm=e=>e===\"freedraw\",q=e=>e!=null&&om(e.type),Lt=e=>e!=null&&e.type===\"line\",H=e=>e!=null&&e.type===\"arrow\",U=e=>H(e)&&e.elbowed,vw=e=>H(e)&&!e.elbowed,nm=e=>H(e)&&!e.elbowed&&!e.roundness,im=e=>H(e)&&!e.elbowed&&e.roundness!==null,om=e=>e===\"arrow\"||e===\"line\",Ae=(e,t=!0)=>e!=null&&(!e.locked||t===!0)&&rm(e.type),rm=e=>e===\"arrow\",de=(e,t=!0)=>e!=null&&(!e.locked||t===!0)&&(e.type===\"rectangle\"||e.type===\"diamond\"||e.type===\"ellipse\"||e.type===\"image\"||e.type===\"iframe\"||e.type===\"embeddable\"||e.type===\"frame\"||e.type===\"magicframe\"||e.type===\"text\"&&!e.containerId),Ha=e=>e!=null&&(e.type===\"rectangle\"||e.type===\"diamond\"||e.type===\"image\"||e.type===\"iframe\"||e.type===\"embeddable\"||e.type===\"frame\"||e.type===\"magicframe\"||e.type===\"text\"&&!e.containerId),hi=e=>e!=null&&(e.type===\"rectangle\"||e.type===\"image\"||e.type===\"text\"||e.type===\"iframe\"||e.type===\"embeddable\"||e.type===\"frame\"||e.type===\"magicframe\"||e.type===\"freedraw\"),sm=(e,t=!0)=>e!=null&&(!e.locked||t===!0)&&(e.type===\"rectangle\"||e.type===\"diamond\"||e.type===\"ellipse\"||H(e)),Dw=e=>{let t=e?.type;if(!t)return!1;switch(t){case\"text\":case\"diamond\":case\"rectangle\":case\"iframe\":case\"embeddable\":case\"ellipse\":case\"arrow\":case\"freedraw\":case\"line\":case\"frame\":case\"magicframe\":case\"image\":case\"selection\":return!0;default:return em(t,null),!1}},Ar=e=>e.type===\"rectangle\"||e.type===\"ellipse\"||e.type===\"diamond\",gt=e=>sm(e)&&!!e.boundElements?.some(({type:t})=>t===\"text\"),ce=e=>e!==null&&\"containerId\"in e&&e.containerId!==null&&Q(e),Bw=e=>!!e.startBinding||!!e.endBinding,_a=e=>e===\"rectangle\"||e===\"embeddable\"||e===\"iframe\"||e===\"image\",Ua=e=>e===\"line\"||e===\"arrow\"||e===\"diamond\",Lw=(e,t)=>!!((e===fi.ADAPTIVE_RADIUS||e===fi.LEGACY)&&_a(t.type)||e===fi.PROPORTIONAL_RADIUS&&Ua(t.type)),Cw=e=>Ua(e.type)?{type:fi.PROPORTIONAL_RADIUS}:_a(e.type)?{type:fi.ADAPTIVE_RADIUS}:null,Gw=e=>nm(e)?\"sharpArrow\":im(e)?\"curvedArrow\":U(e)?\"elbowArrow\":\"line\",Ow=e=>e.length>3&&Ra(e[0],e[e.length-1]),Wa=e=>e.length>3||e.length===3&&!Ra(e[0],e[e.length-1]);var Ei=new WeakMap,Dr=(e,t)=>{let n=Ei.get(e);if(!n)return;let{version:i,shapes:o}=n;if(i!==e.version){Ei.delete(e);return}return o.get(t)},Br=(e,t,n)=>{let i=Ei.get(e);if(!i){Ei.set(e,{version:e.version,shapes:new Map([[n,t]])});return}let{version:o,shapes:r}=i;if(o!==e.version){Ei.set(e,{version:e.version,shapes:new Map([[n,t]])});return}r.set(n,t)};function uo(e){let t=Dr(e,0);if(t)return t;let n=qa(e),i=[],o=[];for(let s=0;s<n.length;s+=1){let a=n[s],l=n[s-1]&&um(n[s-1].data.slice(-2));switch(a.op){case\"move\":continue;case\"lineTo\":if(!l)throw new Error(\"prevPoint is undefined\");i.push(Ee(N(e.x+l[0],e.y+l[1]),N(e.x+a.data[0],e.y+a.data[1])));continue;case\"bcurveTo\":if(!l)throw new Error(\"prevPoint is undefined\");o.push(Ct(N(e.x+l[0],e.y+l[1]),N(e.x+a.data[0],e.y+a.data[1]),N(e.x+a.data[2],e.y+a.data[3]),N(e.x+a.data[4],e.y+a.data[5])));continue;default:console.error(\"Unknown op type\",a.op)}}let r=[i,o];return Br(e,r,0),r}function en(e,t=0){let n=Dr(e,t);if(n)return n;let i=Gt(Math.min(e.width,e.height),e);i===0&&(i=.01);let o=pm(N(e.x,e.y),N(e.x+e.width,e.y+e.height)),r=Ee(N(o[0][0]+i,o[0][1]),N(o[1][0]-i,o[0][1])),s=Ee(N(o[1][0],o[0][1]+i),N(o[1][0],o[1][1]-i)),a=Ee(N(o[0][0]+i,o[1][1]),N(o[1][0]-i,o[1][1])),l=Ee(N(o[0][0],o[1][1]-i),N(o[0][0],o[0][1]+i)),d=[Ct(l[1],N(l[1][0]+2/3*(o[0][0]-l[1][0]),l[1][1]+2/3*(o[0][1]-l[1][1])),N(r[0][0]+2/3*(o[0][0]-r[0][0]),r[0][1]+2/3*(o[0][1]-r[0][1])),r[0]),Ct(r[1],N(r[1][0]+2/3*(o[1][0]-r[1][0]),r[1][1]+2/3*(o[0][1]-r[1][1])),N(s[0][0]+2/3*(o[1][0]-s[0][0]),s[0][1]+2/3*(o[0][1]-s[0][1])),s[0]),Ct(s[1],N(s[1][0]+2/3*(o[1][0]-s[1][0]),s[1][1]+2/3*(o[1][1]-s[1][1])),N(a[1][0]+2/3*(o[1][0]-a[1][0]),a[1][1]+2/3*(o[1][1]-a[1][1])),a[1]),Ct(a[0],N(a[0][0]+2/3*(o[0][0]-a[0][0]),a[0][1]+2/3*(o[1][1]-a[0][1])),N(l[0][0]+2/3*(o[0][0]-l[0][0]),l[0][1]+2/3*(o[1][1]-l[0][1])),l[0])],c=t>0?d.map(p=>Xa($a(p,t))):[[d[0]],[d[1]],[d[2]],[d[3]]],m=[[Ee(c[0][c[0].length-1][3],c[1][0][0]),Ee(c[1][c[1].length-1][3],c[2][0][0]),Ee(c[2][c[2].length-1][3],c[3][0][0]),Ee(c[3][c[3].length-1][3],c[0][0][0])],c.flat()];return Br(e,m,t),m}function Za(e,t=0){let[n,i,o,r,s,a,l,d]=Un(e),c=e.roundness?Gt(Math.abs(n-l),e):(n-l)*.01,u=e.roundness?Gt(Math.abs(r-i),e):(r-i)*.01,[m,p,f,h]=[N(e.x+n,e.y+i),N(e.x+o,e.y+r),N(e.x+s,e.y+a),N(e.x+l,e.y+d)];return[Ct(N(p[0]-c,p[1]-u),p,p,N(p[0]-c,p[1]+u)),Ct(N(f[0]+c,f[1]-u),f,f,N(f[0]-c,f[1]-u)),Ct(N(h[0]+c,h[1]+u),h,h,N(h[0]+c,h[1]-u)),Ct(N(m[0]-c,m[1]+u),m,m,N(m[0]+c,m[1]+u))]}function tn(e,t=0){let n=Dr(e,t);if(n)return n;let o=Za(e,t).map(a=>Xa($a(a,t))),s=[[Ee(o[0][o[0].length-1][3],o[1][0][0]),Ee(o[1][o[1].length-1][3],o[2][0][0]),Ee(o[2][o[2].length-1][3],o[3][0][0]),Ee(o[3][o[3].length-1][3],o[0][0][0])],o.flat()];return Br(e,s,t),s}var Bn=(e,t=1)=>{if(e.length>=3){let[n,i]=[e[0],e[e.length-1]];return Dn(n,i)<=dm/t}return!1},Gt=(e,t)=>{if(t.roundness?.type===Tr.PROPORTIONAL_RADIUS||t.roundness?.type===Tr.LEGACY)return e*Mr;if(t.roundness?.type===Tr.ADAPTIVE_RADIUS){let n=t.roundness?.value??am,i=n/Mr;return e<=i?e*Mr:n}return 0},hm=(e,t)=>{let n=e.type===\"rectangle\"?15:0,i=a=>{let l=fm(Va(a[1],a[0])),d=vr(l,n);return Ee(ja(a[0],d),ja(a[1],vr(d,-1)))},o=re(e,t),r=i(hi(e)?Ee($e(N(e.x,e.y),o,e.angle),$e(N(e.x+e.width,e.y+e.height),o,e.angle)):Ee($e(N(e.x+e.width/2,e.y),o,e.angle),$e(N(e.x+e.width/2,e.y+e.height),o,e.angle))),s=i(hi(e)?Ee($e(N(e.x+e.width,e.y),o,e.angle),$e(N(e.x,e.y+e.height),o,e.angle)):Ee($e(N(e.x,e.y+e.height/2),o,e.angle),$e(N(e.x+e.width,e.y+e.height/2),o,e.angle)));return[r,s]},Em=(e,t,n,i)=>{let o=re(t,n);return(t.type===\"diamond\"?Za(t).map(a=>{let l=cm(a,.5),d=$e(l,o,t.angle);return N(d[0],d[1])}):[$e(N(t.x+t.width,t.y+t.height/2),o,t.angle),$e(N(t.x+t.width/2,t.y+t.height),o,t.angle),$e(N(t.x,t.y+t.height/2),o,t.angle),$e(N(t.x+t.width/2,t.y),o,t.angle)]).find(a=>Dn(e,a)<=lt(i)+t.strokeWidth/2&&!xt({point:e,element:t,threshold:0,elementsMap:n,overrideShouldTestInside:!0}))},Lr=(e,t,n,i,o,r,s=!0)=>{if(lm(e.points.length>=2,\"Arrow must have at least two points\"),e.width<3&&e.height<3)return null;if(s){let g=Em(t,n,o,r);if(g)return g}let[a,l]=hm(n,o),d=C.getPointAtIndexGlobalCoordinates(e,i===\"start\"?1:e.points.length-2,o);if(e.points.length===2){let g=i===\"start\"?e.endBinding:e.startBinding,x=g&&o.get(g.elementId),w=g&&x&&Ne(nn(g.fixedPoint),x,o);w&&(d=w)}let c=mm(vr(Va(t,d),2*Dn(d,t)+Math.max(Dn(a[0],a[1]),Dn(l[0],l[1]))),d),u=Ee(c,d),m=Ya(a,u),p=Ya(l,u),f=m&&Dn(d,m),h=p&&Dn(d,p),E=null;return f!=null&&h!=null?E=f<h?m:p:E=m||p||null,E&&Ot(E,n,o)?E:null};P();import{ARROW_LABEL_FONT_SIZE_TO_MIN_WIDTH_RATIO as Fm,ARROW_LABEL_WIDTH_FRACTION as Rm,BOUND_TEXT_PADDING as wt,DEFAULT_FONT_SIZE as Nm,TEXT_ALIGN as il,VERTICAL_ALIGN as ol,getFontString as go,isProdEnv as zm,invariant as Hm}from\"@excalidraw/common\";import{pointFrom as rl,pointRotateRads as _m}from\"@excalidraw/math\";P();var gi={},Ka=(e,t)=>{let n=gi[e]||(gi[e]={height:t});return n.height=t,n},Qa=e=>{gi[e]&&delete gi[e]},Vw=e=>gi[e]?.height??null;P();import{BOUND_TEXT_PADDING as po,DEFAULT_FONT_SIZE as gm,DEFAULT_FONT_FAMILY as xm,getFontString as wm,isTestEnv as bm,normalizeEOL as ym}from\"@excalidraw/common\";var Ve=(e,t,n)=>{let i=e.split(`\n`).map(a=>a||\" \").join(`\n`),o=parseFloat(t),r=Pm(i,o,n);return{width:nl(i,t),height:r}},Ja=\"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\".toLocaleUpperCase(),el=(e,t)=>{let n=Im(e);return n===0?Ve(Ja.split(\"\").join(`\n`),e,t).width+po*2:n+po*2},fo=(e,t)=>Ve(\"\",e,t).width+po*2,Qw=()=>nl(Ja,wm({fontSize:gm,fontFamily:xm}))>0,xi=e=>ym(e).replace(/\\t/g,\" \"),Gr=e=>xi(e).split(`\n`),Jw=e=>{let t=Gr(e.text).length;return e.height/t/e.fontSize},ho=(e,t)=>e*t,tl=(e,t)=>ho(e,t)+po*2,mo,eb=e=>{mo=e},Cr=class{canvas;constructor(){this.canvas=document.createElement(\"canvas\")}getLineWidth(t,n){let i=this.canvas.getContext(\"2d\");i.font=n;let r=i.measureText(t).width;return bm()?r*10:r}},on=(e,t)=>(mo||(mo=new Cr),mo.getLineWidth(e,t)),nl=(e,t)=>{let n=Gr(e),i=0;return n.forEach(o=>{i=Math.max(i,on(o,t))}),i},Pm=(e,t,n)=>{let i=Gr(e).length;return ho(t,n)*i},Wn=(()=>{let e={};return{calculate:(o,r)=>{let s=o.charCodeAt(0);if(e[r]||(e[r]=[]),!e[r][s]){let a=on(o,r);e[r][s]=a}return e[r][s]},getCache:o=>e[o],clearCache:o=>{e[o]=[]}}})(),tb=e=>{let t=Wn.getCache(e);if(!t)return 0;let n=t.filter(i=>i!==void 0);return Math.min(...n)},Im=e=>{let t=Wn.getCache(e);if(!t)return 0;let n=t.filter(i=>i!==void 0);return Math.max(...n)};P();import{isDevEnv as Sm,isTestEnv as Am}from\"@excalidraw/common\";var Or,Eo,kr,sb=e=>(Or||(Or=J.class(...Object.values(kt))),Or.test(e)),Mm=()=>{if(!Eo)try{Eo=vm()}catch{Eo=Tm()}return Eo},Fr=()=>(kr||(kr=Dm()),kr),tt={WHITESPACE:/\\s/u,HYPHEN:/-/u,OPENING:/<\\(\\[\\{/u,CLOSING:/>\\)\\]\\}.,:;!\\?\u2026\\//u},kt={CHAR:/\\p{Script=Han}\\p{Script=Hiragana}\\p{Script=Katakana}\\p{Script=Hangul}\uFF40\uFF07\uFF3E\u3003\u3030\u3006\uFF03\uFF06\uFF0A\uFF0B\uFF0D\u30FC\uFF0F\uFF3C\uFF1D\uFF5C\uFFE4\u3012\uFFE2\uFFE3/u,OPENING:/\uFF08\uFF3B\uFF5B\u3008\u300A\uFF5F\uFF62\u300C\u300E\u3010\u3016\u3014\u3018\u301A\uFF1C\u301D/u,CLOSING:/\uFF09\uFF3D\uFF5D\u3009\u300B\uFF60\uFF63\u300D\u300F\u3011\u3017\u3015\u3019\u301B\uFF1E\u3002\uFF0E\uFF0C\u3001\u301F\u2025\uFF1F\uFF01\uFF1A\uFF1B\u30FB\u301C\u301E/u,CURRENCY:/\uFFE5\uFFE6\uFFE1\uFFE0\uFF04/u},Ln={FLAG:/\\p{RI}\\p{RI}/u,JOINER:/(?:\\p{Emoji_Modifier}|\\uFE0F\\u20E3?|[\\u{E0020}-\\u{E007E}]+\\u{E007F})?/u,ZWJ:/\\u200D/u,ANY:/[\\p{Emoji}]/u,MOST:/[\\p{Extended_Pictographic}\\p{Emoji_Presentation}]/u},Tm=()=>J.or(Fr(),ue.On(tt.HYPHEN,tt.WHITESPACE,kt.CHAR)),vm=()=>J.or(Fr(),ue.Before(tt.WHITESPACE).Build(),ue.After(tt.WHITESPACE,tt.HYPHEN).Build(),ue.Before(kt.CHAR,kt.CURRENCY).NotPrecededBy(tt.OPENING,kt.OPENING).Build(),ue.After(kt.CHAR).NotFollowedBy(tt.HYPHEN,tt.CLOSING,kt.CLOSING).Build(),ue.BeforeMany(kt.OPENING).NotPrecededBy(tt.OPENING).Build(),ue.AfterMany(kt.CLOSING).NotFollowedBy(tt.CLOSING).Build(),ue.AfterMany(tt.CLOSING).FollowedBy(tt.OPENING).Build()),Dm=()=>J.group(J.or(Ln.FLAG,J.and(Ln.MOST,Ln.JOINER,J.build(`(?:${Ln.ZWJ.source}(?:${Ln.FLAG.source}|${Ln.ANY.source}${Ln.JOINER.source}))*`)))),J={build:e=>new RegExp(e,\"u\"),join:(...e)=>e.map(t=>t.source).join(\"\"),and:(...e)=>J.build(J.join(...e)),or:(...e)=>J.build(e.map(t=>t.source).join(\"|\")),group:(...e)=>J.build(`(${J.join(...e)})`),class:(...e)=>J.build(`[${J.join(...e)}]`)},ue={On:(...e)=>{let t=J.join(...e);return J.build(`([${t}])`)},Before:(...e)=>{let t=J.join(...e),n=()=>J.build(`(?=[${t}])`);return ue.Chain(n)},After:(...e)=>{let t=J.join(...e),n=()=>J.build(`(?<=[${t}])`);return ue.Chain(n)},BeforeMany:(...e)=>{let t=J.join(...e),n=()=>J.build(`(?<![${t}])(?=[${t}])`);return ue.Chain(n)},AfterMany:(...e)=>{let t=J.join(...e),n=()=>J.build(`(?<=[${t}])(?![${t}])`);return ue.Chain(n)},NotBefore:(...e)=>{let t=J.join(...e),n=()=>J.build(`(?![${t}])`);return ue.Chain(n)},NotAfter:(...e)=>{let t=J.join(...e),n=()=>J.build(`(?<![${t}])`);return ue.Chain(n)},Chain:e=>({Build:e,PreceededBy:(...t)=>{let n=e(),i=ue.After(...t).Build(),o=()=>J.and(i,n);return ue.Chain(o)},FollowedBy:(...t)=>{let n=e(),i=ue.Before(...t).Build(),o=()=>J.and(n,i);return ue.Chain(o)},NotPrecededBy:(...t)=>{let n=e(),i=ue.NotAfter(...t).Build(),o=()=>J.and(i,n);return ue.Chain(o)},NotFollowedBy:(...t)=>{let n=e(),i=ue.NotBefore(...t).Build(),o=()=>J.and(n,i);return ue.Chain(o)}})},Bm=e=>{let t=Mm();return e.normalize(\"NFC\").split(t).filter(Boolean)},Ft=(e,t,n)=>{if(!Number.isFinite(n)||n<0)return e;let i=[],o=e.split(`\n`);for(let r of o){if(on(r,t)<=n){i.push(r);continue}let a=Lm(r,t,n);i.push(...a)}return i.join(`\n`)},Lm=(e,t,n)=>{let i=[],r=Bm(e)[Symbol.iterator](),s=\"\",a=0,l=r.next();for(;!l.done;){let d=l.value,c=s+d,u=Om(d)?a+Wn.calculate(d,t):on(c,t);if(/\\s/.test(d)||u<=n){s=c,a=u,l=r.next();continue}if(s)i.push(s.trimEnd()),s=\"\",a=0;else{let m=Cm(d,t,n),p=m[m.length-1]??\"\",f=m.slice(0,-1);i.push(...f),s=p,a=on(p,t),l=r.next()}}if(s){let d=Gm(s,t,n);i.push(d)}return i},Cm=(e,t,n)=>{if(Fr().test(e))return[e];km(e);let i=[],o=Array.from(e),r=\"\",s=0;for(let a of o){let l=Wn.calculate(a,t),d=s+l;if(d<=n){r=r+a,s=d;continue}r&&i.push(r),r=a,s=l}return r&&i.push(r),i},Gm=(e,t,n)=>{if(!(on(e,t)>n))return e;let[,o,r]=e.match(/^(.+?)(\\s+)$/)??[e,e.trimEnd(),\"\"],s=on(o,t);for(let a of Array.from(r)){let l=Wn.calculate(a,t),d=s+l;if(d>n)break;o=o+a,s=d}return o},Om=e=>e.codePointAt(0)!==void 0&&e.codePointAt(1)===void 0,km=e=>{if((Am()||Sm())&&/\\s/.test(e))throw new Error(\"Word should not contain any whitespaces!\")};var xo=(e,t,n)=>{let i=n.getNonDeletedElementsMap(),o;zm()||Hm(!t||!H(t)||e.angle===0,\"text element angle must be 0 if bound to arrow container\");let r={x:e.x,y:e.y,text:e.text,width:e.width,height:e.height,angle:t?H(t)?0:t.angle:e.angle};r.text=e.text,(t||!e.autoResize)&&(o=t?dt(t,e):e.width,r.text=Ft(e.originalText,go(e),o));let s=Ve(r.text,go(e),e.lineHeight);if(e.autoResize&&(r.width=s.width),r.height=s.height,t){let a=bi(t,e),l=dt(t,e);if(!H(t)&&s.height>a){let m=Rr(s.height,t.type);n.mutateElement(t,{height:m}),Ka(t.id,m)}if(s.width>l){let m=Rr(s.width,t.type);n.mutateElement(t,{width:m})}let d={...e,...r},{x:c,y:u}=wi(t,d,i);r.x=c,r.y=u}n.mutateElement(e,r)},Cn=(e,t,n,i=!1)=>{let o=t.getNonDeletedElementsMap();if(!Rt(e))return;Qa(e.id);let s=V(e,o);if(s&&s.text){if(!e)return;let a=s.text,l=s.height,d=s.width,c=dt(e,s),u=bi(e,s),m=e.height;if(i||n!==\"n\"&&n!==\"s\"){a&&(a=Ft(s.originalText,go(s),c));let p=Ve(a,go(s),s.lineHeight);l=p.height,d=p.width}if(l>u){m=Rr(l,e.type);let p=m-e.height,f=!H(e)&&(n===\"ne\"||n===\"nw\"||n===\"n\")?e.y-p:e.y;t.mutateElement(e,{height:m,y:f})}t.mutateElement(s,{text:a,width:d,height:l}),H(e)||t.mutateElement(s,wi(e,s,o))}},wi=(e,t,n)=>{if(H(e))return C.getBoundTextElementPosition(e,t,n);let i=Nr(e),o=bi(e,t),r=dt(e,t),s,a;t.verticalAlign===ol.TOP?a=i.y:t.verticalAlign===ol.BOTTOM?a=i.y+(o-t.height):a=i.y+(o/2-t.height/2),t.textAlign===il.LEFT?s=i.x:t.textAlign===il.RIGHT?s=i.x+(r-t.width):s=i.x+(r/2-t.width/2);let l=e.angle??0;if(l!==0){let d=rl(i.x+r/2,i.y+o/2),c=rl(s+t.width/2,a+t.height/2),[u,m]=_m(c,d,l);return{x:u-t.width/2,y:m-t.height/2}}return{x:s,y:a}},Rt=e=>e?.boundElements?.length&&e?.boundElements?.find(t=>t.type===\"text\")?.id||null,V=(e,t)=>{if(!e)return null;let n=Rt(e);return n&&t.get(n)||null},Me=(e,t)=>e&&e.containerId&&t.get(e.containerId)||null,Eb=(e,t,n)=>{if(!H(e))return{x:e.x+e.width/2,y:e.y+e.height/2};if(C.getPointsGlobalCoordinates(e,n).length%2===1){let s=Math.floor(e.points.length/2),a=C.getPointGlobalCoordinates(e,e.points[s],n);return{x:a[0],y:a[1]}}let o=e.points.length/2-1,r=C.getEditorMidPoints(e,n,t)[o];return r||(r=C.getSegmentMidPoint(e,o+1)),{x:r[0],y:r[1]}},Nr=e=>{let t=wt,n=wt;return e.type===\"ellipse\"&&(t+=e.width/2*(1-Math.sqrt(2)/2),n+=e.height/2*(1-Math.sqrt(2)/2)),e.type===\"diamond\"&&(t+=e.width/4,n+=e.height/4),{x:e.x+t,y:e.y+n}},gb=(e,t)=>H(t)?0:t?t.angle:e.angle,xb=(e,t,n)=>{if(H(e))return C.getBoundTextElementPosition(e,t,n)},wb=(e,t)=>e.some(n=>{if(ce(n)){let i=Me(n,t);return!H(i)}return!1}),bb=(e,t)=>e.some(n=>{if(ce(n)){let i=Me(n,t);return!H(i)}return Q(n)}),Um=new Set([\"rectangle\",\"ellipse\",\"diamond\",\"arrow\"]),yb=e=>Um.has(e.type),Rr=(e,t)=>{e=Math.ceil(e);let n=wt*2;return t===\"ellipse\"?Math.round((e+n)/Math.sqrt(2)*2):t===\"arrow\"?e+n*8:t===\"diamond\"?2*(e+n):e+n},dt=(e,t)=>{let{width:n}=e;if(H(e)){let i=(t?.fontSize??Nm)*Fm;return Math.max(Rm*n,i)}return e.type===\"ellipse\"?Math.round(n/2*Math.sqrt(2))-wt*2:e.type===\"diamond\"?Math.round(n/2)-wt*2:n-wt*2},bi=(e,t)=>{let{height:n}=e;return H(e)?n-wt*8*2<=0?t.height:n:e.type===\"ellipse\"?Math.round(n/2*Math.sqrt(2))-wt*2:e.type===\"diamond\"?Math.round(n/2)-wt*2:n-wt*2},Pb=(e,t=`\n\n`)=>e.reduce((i,o)=>(Q(o)&&i.push(o.text),i),[]).join(t);P();import{curvePointDistance as zr,distanceToLineSegment as Hr,pointRotateRads as _r}from\"@excalidraw/math\";import{ellipse as Wm,ellipseDistanceFromPoint as Ym}from\"@excalidraw/math/ellipse\";var rn=(e,t,n)=>{switch(e.type){case\"selection\":case\"rectangle\":case\"image\":case\"text\":case\"iframe\":case\"embeddable\":case\"frame\":case\"magicframe\":return jm(e,t,n);case\"diamond\":return Xm(e,t,n);case\"ellipse\":return $m(e,t,n);case\"line\":case\"arrow\":case\"freedraw\":return Vm(e,n)}},jm=(e,t,n)=>{let i=re(e,t),o=_r(n,i,-e.angle),[r,s]=en(e);return Math.min(...r.map(a=>Hr(o,a)),...s.map(a=>zr(a,o)).filter(a=>a!==null))},Xm=(e,t,n)=>{let i=re(e,t),o=_r(n,i,-e.angle),[r,s]=tn(e);return Math.min(...r.map(a=>Hr(o,a)),...s.map(a=>zr(a,o)).filter(a=>a!==null))},$m=(e,t,n)=>{let i=re(e,t);return Ym(_r(n,i,-e.angle),Wm(i,e.width/2,e.height/2))},Vm=(e,t)=>{let[n,i]=uo(e);return Math.min(...n.map(o=>Hr(t,o)),...i.map(o=>zr(o,t)))};var bo=e=>{if(e.type===\"arrow\")return!1;let t=!ml(e.backgroundColor)||gt(e)||lo(e)||Q(e);return e.type===\"line\"?t&&Bn(e.points):e.type===\"freedraw\"?t&&Bn(e.points):t||we(e)},Ur=null,sl=null,al=1/0,ll=!1,dl=!1,xt=({point:e,element:t,threshold:n,elementsMap:i,frameNameBound:o=null,overrideShouldTestInside:r=!1})=>{if(Ur&&hl(e,Ur)&&al<=n&&r===dl){let u=sl?.deref();if(u&&u.id===t.id&&u.version===t.version&&u.versionNonce===t.versionNonce)return ll}let s=o?wo(me(o.x-n,o.y-n),e,me(o.x+o.width+n,o.y+o.height+n)):!1,a=he(t,i,!0);if(!wo(me(a[0]-n,a[1]-n),Ze(e,bt(a),-t.angle),me(a[2]+n,a[3]+n))&&!s)return!1;let c=(r||bo(t))&&Ot(e,t,i)||cl(e,t,i,n)||s;return Ur=e,sl=new WeakRef(t),al=n,dl=r,ll=c,c},tp=(e,t,n,i=0)=>{let[o,r,s,a]=he(t,n);return o-=i,r-=i,s+=i,a+=i,wo(me(o,r),e,me(s,a))},Ub=(e,t)=>!xt(e)&&!np(e.point,e.element,t)&&tp(e.point,e.element,t),np=(e,t,n)=>{let i=V(t,n);if(!i)return!1;let o=q(t)?{...i,...C.getBoundTextElementPosition(t,i,n)}:i;return Ot(e,o,n)},El=(e,[t,n],i,o=0)=>{let r=me(t,n),s=!Z(e),a=Math.max(1,o),l=[t-a,n-a,t+a,n+a],d=he(e,i);if(!Pi(l,d))return!1;if(e.frameId){let m=i.get(e.frameId);if(m&&Z(m)){let p=he(m,i);if(!an(r,p))return!1}}let c=sn(e,i,yi(re(e,i),r)),u=rn(e,i,r);return s?c.length===0||u<=o:c.length>0&&u<=a},yo=(e,t,n,i)=>{let o=[];for(let r=t.length-1;r>=0;--r){let s=t[r];if(ul(!s.isDeleted,\"Elements in the function parameter for getAllElementsAtPositionForBinding() should not contain deleted elements\"),de(s,!1)&&El(s,e,n,i)&&(o.push(s),!ml(s.backgroundColor)))break}return o},Nt=(e,t,n,i)=>{let o=yo(e,t,n,i);return!o||o.length===0?null:o.length===1?o[0]:o.sort((r,s)=>s.width**2+s.height**2-(r.width**2+r.height**2)).pop()},gl=(e,t,n,i,o)=>{let r=[];for(let a=n.length-1;a>=0;--a){let l=n[a];ul(!l.isDeleted,\"Elements in the function parameter for getAllElementsAtPositionForBinding() should not contain deleted elements\"),de(l,!1)&&El(l,e,i,o)&&r.push(l)}if(!r||r.length===0)return null;if(r.length===1)return r[0];let s=r.filter(a=>rn(a,i,e)<=Be(a,t)||Ot(e,a,i));return s.length===0?null:s[0]},sn=(e,t,n,i=0,o=!1)=>{let r=[Math.min(n[0][0]-i,n[1][0]-i),Math.min(n[0][1]-i,n[1][1]-i),Math.max(n[0][0]+i,n[1][0]+i),Math.max(n[0][1]+i,n[1][1]+i)],s=he(e,t);if(!Pi(r,s))return[];switch(e.type){case\"rectangle\":case\"image\":case\"text\":case\"iframe\":case\"embeddable\":case\"frame\":case\"selection\":case\"magicframe\":return op(e,t,n,i,o);case\"diamond\":return rp(e,t,n,i,o);case\"ellipse\":return sp(e,t,n,i);case\"line\":case\"freedraw\":case\"arrow\":return ip(e,n,o)}},xl=(e,t,n,i,o,r=!1)=>{for(let s of e){let a=Po(s[0],s[1],s[2],s[3]),l=[Math.min(t[0][0],t[1][0]),Math.min(t[0][1],t[1][1]),Math.max(t[0][0],t[1][0]),Math.max(t[0][1],t[1][1])];if(!Pi(a,l))continue;let d=pl(s,t);if(d.length>0){for(let c of d)n.push(Ze(c,i,o));if(r)return n}}return n},wl=(e,t,n,i,o,r=!1)=>{for(let s of e){let a=fl(s,t);if(a&&(n.push(Ze(a,i,o)),r))return n}return n},ip=(e,t,n=!1)=>{let[i,o]=uo(e),r=[];for(let s of i){let a=fl(s,t);if(a&&(r.push(a),n))return r}for(let s of o){let a=Po(s[0],s[1],s[2],s[3]),l=[Math.min(t[0][0],t[1][0]),Math.min(t[0][1],t[1][1]),Math.max(t[0][0],t[1][0]),Math.max(t[0][1],t[1][1])];if(!Pi(a,l))continue;let d=pl(s,t);if(d.length>0&&(r.push(...d),n))return r}return r},op=(e,t,n,i=0,o=!1)=>{let r=re(e,t),s=Ze(n[0],r,-e.angle),a=Ze(n[1],r,-e.angle),l=yi(s,a),[d,c]=en(e,i),u=[];return wl(d,l,u,r,e.angle,o),o&&u.length>0||xl(c,l,u,r,e.angle,o),u},rp=(e,t,n,i=0,o=!1)=>{let r=re(e,t),s=Ze(n[0],r,-e.angle),a=Ze(n[1],r,-e.angle),l=yi(s,a),[d,c]=tn(e,i),u=[];return wl(d,l,u,r,e.angle,o),o&&u.length>0||xl(c,l,u,r,e.angle,o),u},sp=(e,t,n,i=0)=>{let o=re(e,t),r=Ze(n[0],o,-e.angle),s=Ze(n[1],o,-e.angle);return ep(Jm(o,e.width/2+i,e.height/2+i),yi(r,s)).map(a=>Ze(a,o,e.angle))},cl=(e,t,n,i=1)=>rn(t,n,e)<=i,Ot=(e,t,n)=>{if((q(t)||Se(t))&&!Bn(t.points))return!1;let[i,o,r,s]=he(t,n);if(!wo(me(i,o),e,me(r,s)))return!1;let a=me((i+r)/2,(o+s)/2),l=Zm(Qm(Km(qm(e,a,.1)),Math.max(t.width,t.height)*2),a),d=yi(e,l);return sn(t,n,d).filter((u,m,p)=>p.findIndex(f=>hl(f,u))===m).length%2===1},Wr=(e,t,n)=>{let i=(s,a)=>{let{x:l,y:d,width:c,height:u,angle:m}=s,p=re(s,n);if(s.type===\"diamond\"){let[h,E,g,x,w,y,b,I]=Un(s);return[me(l+h,d+E-a),me(l+g+a,d+x),me(l+w,d+y+a),me(l+b-a,d+I)].map(T=>Ze(T,p,m))}if(s.type===\"ellipse\"){let h=l+c/2,E=d+u/2,g=c/2,x=u/2;return[me(h,E-x-a),me(h+g+a,E),me(h,E+x+a),me(h-g-a,E)].map(y=>Ze(y,p,m))}return[me(l-a,d-a),me(l+c+a,d-a),me(l+c+a,d+u+a),me(l-a,d+u+a)].map(h=>Ze(h,p,m))},o=-1*Math.max(e.width,e.height)/20;return i(e,o).every(s=>Ot(s,t,n))};P();import{invariant as bl,isDevEnv as ap,isTestEnv as lp}from\"@excalidraw/common\";import{pointFrom as ln,pointFromVector as Io,pointRotateRads as So,pointScaleFromOrigin as Ao,pointsEqual as dp,triangleIncludesPoint as Yr,vectorCross as ze,vectorFromPoint as K,vectorScale as Mo}from\"@excalidraw/math\";var fe=[1,0],be=[0,1],_e=[-1,0],qe=[0,-1],zt=e=>{let[t,n]=e,i=Math.abs(t),o=Math.abs(n);return t>o?fe:t<=-o?_e:n>i?be:qe},He=(e,t)=>zt(K(e,t)),ct=(e,t)=>Ue(He(e,t)),pe=(e,t)=>e[0]===t[0]&&e[1]===t[1],Ue=e=>pe(e,fe)||pe(e,_e),Vb=e=>!Ue(e),cp=(e,t,n)=>{let i=bt(t);(ap()||lp())&&(bl(e.width>0&&e.height>0,\"Diamond element has no width or height\"),bl(!dp(i,n),\"The point is too close to the element mid point to determine heading\"));let o=.95,r=Io(Mo(K(So(ln(e.x+e.width/2,e.y),i,e.angle),i),o),i),s=Io(Mo(K(So(ln(e.x+e.width,e.y+e.height/2),i,e.angle),i),o),i),a=Io(Mo(K(So(ln(e.x+e.width/2,e.y+e.height),i,e.angle),i),o),i),l=Io(Mo(K(So(ln(e.x,e.y+e.height/2),i,e.angle),i),o),i);if(ze(K(n,r),K(r,s))<=0&&ze(K(n,r),K(r,l))>0)return He(r,i);if(ze(K(n,s),K(s,a))<=0&&ze(K(n,s),K(s,r))>0)return He(s,i);if(ze(K(n,a),K(a,l))<=0&&ze(K(n,a),K(a,s))>0)return He(a,i);if(ze(K(n,l),K(l,r))<=0&&ze(K(n,l),K(l,a))>0)return He(l,i);if(ze(K(n,i),K(r,i))<=0&&ze(K(n,i),K(s,i))>0){let c=e.width>e.height?r:s;return He(c,i)}else if(ze(K(n,i),K(s,i))<=0&&ze(K(n,i),K(a,i))>0){let c=e.width>e.height?a:s;return He(c,i)}else if(ze(K(n,i),K(a,i))<=0&&ze(K(n,i),K(l,i))>0){let c=e.width>e.height?a:l;return He(c,i)}let d=e.width>e.height?r:l;return He(d,i)},Ii=(e,t,n)=>{let o=bt(t);if(e.type===\"diamond\")return cp(e,t,n);let r=Ao(ln(t[0],t[1]),o,2),s=Ao(ln(t[2],t[1]),o,2),a=Ao(ln(t[0],t[3]),o,2),l=Ao(ln(t[2],t[3]),o,2);return Yr([r,s,o],n)?qe:Yr([s,l,o],n)?fe:Yr([l,a,o],n)?be:_e},jr=e=>[e[0]===0?0:e[0]>0?-1:1,e[1]===0?0:e[1]>0?-1:1];P();import{getSizeFromPoints as vp,randomInteger as ns,getUpdatedTimestamp as is}from\"@excalidraw/common\";P();import{clamp as To,pointDistance as Vr,pointFrom as j,pointScaleFromOrigin as up,pointsEqual as Ai,pointTranslate as $r,vector as yt,vectorCross as vo,vectorFromPoint as Zr,vectorScale as mp}from\"@excalidraw/math\";import{BinaryHeap as pp,invariant as Yn,isAnyTrue as fp,getSizeFromPoints as yl,isDevEnv as hp,arrayToMap as Ep}from\"@excalidraw/common\";var qr=1,ee=40,gp=(e,t)=>{let n=e.fixedSegments?e.fixedSegments.slice():null;if(n){let i=[];e.points.map(s=>j(e.x+s[0],e.y+s[1])).forEach((s,a,l)=>{if(a<2)return i.push(s);let d=He(s,l[a-1]),c=He(l[a-1],l[a-2]);if(pe(d,c)){let u=n?.findIndex(p=>p.index===a-1)??-1,m=n?.findIndex(p=>p.index===a)??-1;m!==-1&&(n[m].start=j(l[a-2][0]-e.x,l[a-2][1]-e.y)),u!==-1&&n.splice(u,1),i.splice(-1,1),n.forEach(p=>{p.index>a-1&&(p.index-=1)})}return i.push(s)});let o=[];i.forEach((s,a,l)=>{if(a<3)return o.push(s);if(Vr(l[a-2],l[a-1])<qr){let d=n?.findIndex(m=>m.index===a-2)??-1,c=n?.findIndex(m=>m.index===a-1)??-1;c!==-1&&n.splice(c,1),d!==-1&&n.splice(d,1),o.splice(-2,2),n.forEach(m=>{m.index>a-2&&(m.index-=2)});let u=ct(s,l[a-1]);return o.push(j(u?s[0]:l[a-2][0],u?l[a-2][1]:s[1]))}o.push(s)});let r=n.filter(s=>s.index!==1&&s.index!==o.length-1);return r.length===0?Ht(Jr(es(Qr(e,Kr(e,t,o.map(s=>j(s[0]-e.x,s[1]-e.y))))??[])),r,null,null):(hp()&&Yn(vl(o),\"Invalid elbow points with fixed segments\"),Ht(o,r,e.startIsSpecial,e.endIsSpecial))}return{x:e.x,y:e.y,points:e.points,fixedSegments:e.fixedSegments,startIsSpecial:e.startIsSpecial,endIsSpecial:e.endIsSpecial}},xp=(e,t,n)=>{let i=t.map(M=>M.index),r=(e.fixedSegments?.map(M=>M.index)??[]).findIndex(M=>!i.includes(M));if(r===-1||!e.fixedSegments?.[r])return{points:e.points};let s=e.fixedSegments[r].index,a=e.fixedSegments[r-1],l=e.fixedSegments[r+1],d=e.x+(a?a.end[0]:0),c=e.y+(a?a.end[1]:0),u=a?null:e.startBinding,m=l?null:e.endBinding,{startHeading:p,endHeading:f,startGlobalPoint:h,endGlobalPoint:E,hoveredStartElement:g,hoveredEndElement:x,...w}=Kr({x:d,y:c,startBinding:u,endBinding:m,startArrowhead:null,endArrowhead:null,points:e.points},n,[j(0,0),j(e.x+(l?.start[0]??e.points[e.points.length-1][0])-d,e.y+(l?.start[1]??e.points[e.points.length-1][1])-c)],{isDragging:!1}),{points:y}=Ht(Jr(es(Qr(e,{startHeading:p,endHeading:f,startGlobalPoint:h,endGlobalPoint:E,hoveredStartElement:g,hoveredEndElement:x,...w})??[])),t,null,null);if(!y||y.length<2)throw new Error(\"Property 'points' is required in the update returned by normalizeArrowElementUpdate()\");let b=[];if(a)for(let M=0;M<a.index;M++)b.push(j(e.x+e.points[M][0],e.y+e.points[M][1]));if(y.forEach(M=>{b.push(j(e.x+(a?a.end[0]:0)+M[0],e.y+(a?a.end[1]:0)+M[1]))}),l)for(let M=l.index;M<e.points.length;M++)b.push(j(e.x+e.points[M][0],e.y+e.points[M][1]));let I=(l?.index??e.points.length)-(a?.index??0)-1,A=t.map(M=>M.index>s?{...M,index:M.index-I+(y.length-1)}:M),T=b.flatMap((M,O)=>{let L=b[O-1],k=b[O+1];if(L&&k){let B=He(M,L),X=He(k,M);if(pe(B,X))return A.forEach(_=>{_.index>O&&(_.index-=1)}),[];if(pe(B,jr(X)))return A.forEach(_=>{_.index>O&&(_.index+=1)}),[M,M]}return[M]});return Ht(T,A,!1,!1)},wp=(e,t,n,i,o,r)=>{let s=t.map((b,I)=>e.fixedSegments==null||e.fixedSegments[I]===void 0||e.fixedSegments[I].index!==b.index||(b.start[0]!==e.fixedSegments[I].start[0]&&b.end[0]!==e.fixedSegments[I].end[0])!=(b.start[1]!==e.fixedSegments[I].start[1]&&b.end[1]!==e.fixedSegments[I].end[1])?I:null).filter(b=>b!==null).shift();if(s==null)return{points:e.points};let a=e.fixedSegments?.findIndex(b=>b.index===1)??-1,l=e.fixedSegments?.findIndex(b=>b.index===e.points.length-1)??-1,d=Vr(t[s].start,t[s].end),c=d<ee+5;if(a===-1&&t[s].index===1&&o){let b=Ue(n),A=(b?pe(n,fe):pe(n,be))?c?d/2:ee:c?-d/2:-ee;t[s].start=j(t[s].start[0]+(b?A:0),t[s].start[1]+(b?0:A))}if(l===-1&&t[s].index===e.points.length-1&&r){let b=Ue(i),A=(b?pe(i,fe):pe(i,be))?c?d/2:ee:c?-d/2:-ee;t[s].end=j(t[s].end[0]+(b?A:0),t[s].end[1]+(b?0:A))}let u=t.map(b=>({...b,start:j(e.x+b.start[0],e.y+b.start[1]),end:j(e.x+b.end[0],e.y+b.end[1])})),m=e.points.map((b,I)=>j(e.x+b[0],e.y+b[1])),p=u[s].index-1,f=u[s].index,h=u[s].start,E=u[s].end,g=m[p-1]&&!Ai(m[p],m[p-1])?ct(m[p-1],m[p]):void 0,x=m[f+1]&&!Ai(m[f],m[f+1])?ct(m[f+1],m[f]):void 0;if(g!==void 0){let b=g?1:0;m[p-1][b]=h[b]}if(m[p]=h,m[f]=E,x!==void 0){let b=x?1:0;m[f+1][b]=E[b]}let w=u.findIndex(b=>b.index===p);if(w!==-1){let b=ct(u[w].end,u[w].start)?1:0;u[w].start[b]=h[b],u[w].end=h}let y=u.findIndex(b=>b.index===f+1);if(y!==-1){let b=ct(u[y].end,u[y].start)?1:0;u[y].end[b]=E[b],u[y].start=E}if(a===-1&&p===0){let b=o?Ue(n):ct(m[1],m[0]);m.unshift(j(b?h[0]:e.x+e.points[0][0],b?e.y+e.points[0][1]:h[1])),o&&m.unshift(j(e.x+e.points[0][0],e.y+e.points[0][1]));for(let I of u)I.index+=o?2:1}if(l===-1&&f===e.points.length-1){let b=Ue(i);m.push(j(b?E[0]:e.x+e.points[e.points.length-1][0],b?e.y+e.points[e.points.length-1][1]:E[1])),r&&m.push(j(e.x+e.points[e.points.length-1][0],e.y+e.points[e.points.length-1][1]))}return Ht(m,u.map(b=>({...b,start:j(b.start[0]-e.x,b.start[1]-e.y),end:j(b.end[0]-e.x,b.end[1]-e.y)})),!1,!1)},bp=(e,t,n,i,o,r,s,a,l)=>{let d=e.startIsSpecial??null,c=e.endIsSpecial??null,u=t.map((E,g)=>g===0?j(e.x+E[0],e.y+E[1]):g===t.length-1?j(e.x+E[0],e.y+E[1]):j(e.x+e.points[g][0],e.y+e.points[g][1])),m=n.map(E=>({...E,start:j(e.x+(E.start[0]-t[0][0]),e.y+(E.start[1]-t[0][1])),end:j(e.x+(E.end[0]-t[0][0]),e.y+(E.end[1]-t[0][1]))})),p=[],f=2+(d?1:0),h=2+(c?1:0);for(;p.length+f<u.length-h;)p.push(u[p.length+f]);{let E=u.at(d?2:1),g=u.at(d?3:2);if(!E||!g)throw new Error(`Second and third points must exist when handling endpoint drag (${d})`);let x=Ue(i),w=Ue(zt(Zr(E,g)));if(a&&x===w){let y=x?pe(i,fe):pe(i,be);if(p.unshift(j(w?r[0]+(y?ee:-ee):g[0],w?g[1]:r[1]+(y?ee:-ee))),p.unshift(j(x?r[0]+(y?ee:-ee):r[0],x?r[1]:r[1]+(y?ee:-ee))),!d){d=!0;for(let b of m)b.index>1&&(b.index+=1)}}else if(p.unshift(j(w?r[0]:E[0],w?E[1]:r[1])),d){d=!1;for(let y of m)y.index>1&&(y.index-=1)}p.unshift(r)}{let E=u.at(u.length-(c?3:2)),g=u.at(u.length-(c?4:3));if(!E||!g)throw new Error(`Second and third to last points must exist when handling endpoint drag (${c})`);let x=Ue(o),w=ct(g,E);if(l&&x===w){let y=x?pe(o,fe):pe(o,be);p.push(j(w?s[0]+(y?ee:-ee):g[0],w?g[1]:s[1]+(y?ee:-ee))),p.push(j(x?s[0]+(y?ee:-ee):s[0],x?s[1]:s[1]+(y?ee:-ee))),c||(c=!0)}else p.push(j(w?s[0]:E[0],w?E[1]:s[1])),c&&(c=!1)}return p.push(s),Ht(p,m.map(({index:E})=>({index:E,start:p[E-1],end:p[E]})).map(E=>({...E,start:j(E.start[0]-r[0],E.start[1]-r[1]),end:j(E.end[0]-r[0],E.end[1]-r[1])})),d,c)},dn=1e6,jn=(e,t,n,i)=>{if(e.points.length<2)return{points:n.points??e.points};v.PROD||(Yn(!n.points||n.points.length>=2,\"Updated point array length must match the arrow point length, contain exactly the new start and end points or not be specified at all (i.e. you can't add new points between start and end manually to elbow arrows)\"),Yn(!e.fixedSegments||e.fixedSegments.map(b=>b.start[0]===b.end[0]||b.start[1]===b.end[1]).every(Boolean),\"Fixed segments must be either horizontal or vertical\"),Yn(!n.fixedSegments||n.fixedSegments.map(b=>b.start[0]===b.end[0]||b.start[1]===b.end[1]).every(Boolean),\"Updates to fixed segments must be either horizontal or vertical\"),Yn(e.points.slice(1).map((b,I)=>b[0]===e.points[I][0]||b[1]===e.points[I][1]),\"Elbow arrow segments must be either horizontal or vertical\"),Yn(n.fixedSegments?.find(b=>b.index===1&&Ai(b.start,(n.points??e.points)[0]))==null&&n.fixedSegments?.find(b=>b.index===(n.points??e.points).length-1&&Ai(b.end,(n.points??e.points)[(n.points??e.points).length-1]))==null,\"The first and last segments cannot be fixed\"));let o=n.fixedSegments??e.fixedSegments??[],r=n.points?n.points&&n.points.length===2?e.points.map((b,I)=>I===0?n.points[0]:I===e.points.length-1?n.points[1]:b):n.points.slice():e.points.slice(),{startBinding:s,endBinding:a,...l}=n,d=typeof s<\"u\"?s:e.startBinding,c=typeof a<\"u\"?a:e.endBinding,u=d&&Bo(d.elementId,t),m=c&&Bo(c.elementId,t),p=vl(r);if(d&&!u&&p||c&&!m&&p||t.size===0&&p||Object.keys(l).length===0&&(u?.id!==d?.elementId||m?.id!==c?.elementId))return Ht(r.map(b=>j(e.x+b[0],e.y+b[1])),e.fixedSegments,e.startIsSpecial,e.endIsSpecial);let{startHeading:f,endHeading:h,startGlobalPoint:E,endGlobalPoint:g,hoveredStartElement:x,hoveredEndElement:w,...y}=Kr({x:e.x,y:e.y,startBinding:d,endBinding:c,startArrowhead:e.startArrowhead,endArrowhead:e.endArrowhead,points:e.points},t,r,i);return t.size===0&&p?Ht(r.map(b=>j(e.x+b[0],e.y+b[1])),e.fixedSegments,e.startIsSpecial,e.endIsSpecial):!n.points&&!n.fixedSegments&&!n.startBinding&&!n.endBinding?gp(e,t):n.startBinding===e.startBinding&&n.endBinding===e.endBinding&&(n.points??[]).every((b,I)=>Ai(b,e.points[I]??j(1/0,1/0)))&&p?{}:o.length===0?Ht(Jr(es(Qr(e,{startHeading:f,endHeading:h,startGlobalPoint:E,endGlobalPoint:g,hoveredStartElement:x,hoveredEndElement:w,...y})??[])),o,null,null):(e.fixedSegments?.length??0)>o.length?xp(e,o,t):n.points?n.points&&n.fixedSegments?n:bp(e,r,o,f,h,E,g,x,w):wp(e,o,f,h,x,w)},Kr=(e,t,n,i)=>{let o=$r(n[0],yt(e.x,e.y)),r=$r(n[n.length-1],yt(e.x,e.y)),s=null,a=null;if(i?.isDragging&&i?.isBindingEnabled!==!1){let b=Array.from(t.values());s=Al(o,t,b,i?.zoom)||null,a=Al(r,t,b,i?.zoom)||null}else s=e.startBinding&&Bo(e.startBinding.elementId,t)||null,a=e.endBinding&&Bo(e.endBinding.elementId,t)||null;let l=Il({...e,angle:0,type:\"arrow\",elbowed:!0,points:n},\"start\",e.startBinding?.fixedPoint,o,s,t,i?.isDragging,i?.isBindingEnabled,i?.isMidpointSnappingEnabled),d=Il({...e,angle:0,type:\"arrow\",elbowed:!0,points:n},\"end\",e.endBinding?.fixedPoint,r,a,t,i?.isDragging,i?.isBindingEnabled,i?.isMidpointSnappingEnabled),c=Sl(l,d,s,o,t,i?.zoom),u=Sl(d,l,a,r,t,i?.zoom),m=[l[0]-2,l[1]-2,l[0]+2,l[1]+2],p=[d[0]-2,d[1]-2,d[0]+2,d[1]+2],f=s?nt(s,t,cn(c,e.startArrowhead?Be(s,{elbowed:!0})*6:Be(s,{elbowed:!0})*2,1)):m,h=a?nt(a,t,cn(u,e.endArrowhead?Be(a,{elbowed:!0})*6:Be(a,{elbowed:!0})*2,1)):p,E=an(l,a?nt(a,t,cn(u,ee,ee)):p)||an(d,s?nt(s,t,cn(c,ee,ee)):m),g=Tl(E?[m,p]:[f,h]),x=Ip(E?m:f,E?p:h,g,E?cn(c,!s&&!a?0:ee,0):cn(c,!s&&!a?0:ee-(e.startArrowhead?Gn*6:Gn*2),ee),E?cn(u,!s&&!a?0:ee,0):cn(u,!s&&!a?0:ee-(e.endArrowhead?Gn*6:Gn*2),ee),E,s&&nt(s,t),a&&nt(a,t)),w=Pl(x[0],c,l),y=Pl(x[1],u,d);return{dynamicAABBs:x,startDonglePosition:w,startGlobalPoint:l,startHeading:c,endDonglePosition:y,endGlobalPoint:d,endHeading:u,commonBounds:g,hoveredStartElement:s,hoveredEndElement:a,boundsOverlap:E,startElementBounds:f,endElementBounds:h}},Qr=(e,t)=>{let{dynamicAABBs:n,startDonglePosition:i,startGlobalPoint:o,startHeading:r,endDonglePosition:s,endGlobalPoint:a,endHeading:l,commonBounds:d,hoveredEndElement:c}=t,u=Sp(n,i||o,r,s||a,l,d),m=i&&Do(i,u),p=s&&Do(s,u),f=Do(a,u);f&&c&&(f.closed=!0);let h=Do(o,u);h&&e.startBinding&&(h.closed=!0);let E=m&&p&&(an(m.pos,n[1])||an(p.pos,n[0])),g=yp(m||h,p||f,u,r||fe,l||fe,E?[]:n);if(g){let x=g.map(w=>[w.pos[0],w.pos[1]]);return m&&x.unshift(o),p&&x.push(a),x}return null},cn=(e,t,n)=>{switch(e){case qe:return[t,n,n,n];case fe:return[n,t,n,n];case be:return[n,n,t,n]}return[n,n,n,t]},yp=(e,t,n,i,o,r)=>{let s=Xr(e.pos,t.pos),a=new pp(l=>l.f);for(a.push(e);a.size()>0;){let l=a.pop();if(!l||l.closed)continue;if(l===t)return Pp(e,l);l.closed=!0;let d=Mp(l.addr,n);for(let c=0;c<4;c++){let u=d[c];if(!u||u.closed)continue;let m=up(u.pos,l.pos,.5);if(fp(...r.map(y=>an(m,y))))continue;let p=Tp(c),f=l.parent?zt(Zr(l.pos,l.parent.pos)):i,h=jr(f);if(pe(h,p)||Ml(e.addr,u.addr)&&pe(p,i)||Ml(t.addr,u.addr)&&pe(p,o))continue;let g=f!==p,x=l.g+Xr(u.pos,l.pos)+(g?Math.pow(s,3):0),w=u.visited;if(!w||x<u.g){let y=Ap(u,t,p,o);u.visited=!0,u.parent=l,u.h=Xr(t.pos,u.pos)+y*Math.pow(s,2),u.g=x,u.f=u.g+u.h,w?a.rescoreElement(u):a.push(u)}}}return null},Pp=(e,t)=>{let n=t,i=[];for(;n.parent;)i.unshift(n),n=n.parent;return i.unshift(e),i},Xr=(e,t)=>Math.abs(e[0]-t[0])+Math.abs(e[1]-t[1]),Ip=(e,t,n,i,o,r,s,a)=>{let l=s??e,d=a??t,[c,u,m,p]=i??[0,0,0,0],[f,h,E,g]=o??[0,0,0,0],x=[e[0]>t[2]?e[1]>t[3]||e[3]<t[1]?Math.min((l[0]+d[2])/2,e[0]-p):(l[0]+d[2])/2:e[0]>t[0]?e[0]-p:n[0]-p,e[1]>t[3]?e[0]>t[2]||e[2]<t[0]?Math.min((l[1]+d[3])/2,e[1]-c):(l[1]+d[3])/2:e[1]>t[1]?e[1]-c:n[1]-c,e[2]<t[0]?e[1]>t[3]||e[3]<t[1]?Math.max((l[2]+d[0])/2,e[2]+u):(l[2]+d[0])/2:e[2]<t[2]?e[2]+u:n[2]+u,e[3]<t[1]?e[0]>t[2]||e[2]<t[0]?Math.max((l[3]+d[1])/2,e[3]+m):(l[3]+d[1])/2:e[3]<t[3]?e[3]+m:n[3]+m],w=[t[0]>e[2]?t[1]>e[3]||t[3]<e[1]?Math.min((d[0]+l[2])/2,t[0]-g):(d[0]+l[2])/2:t[0]>e[0]?t[0]-g:n[0]-g,t[1]>e[3]?t[0]>e[2]||t[2]<e[0]?Math.min((d[1]+l[3])/2,t[1]-f):(d[1]+l[3])/2:t[1]>e[1]?t[1]-f:n[1]-f,t[2]<e[0]?t[1]>e[3]||t[3]<e[1]?Math.max((d[2]+l[0])/2,t[2]+h):(d[2]+l[0])/2:t[2]<e[2]?t[2]+h:n[2]+h,t[3]<e[1]?t[0]>e[2]||t[2]<e[0]?Math.max((d[3]+l[1])/2,t[3]+E):(d[3]+l[1])/2:t[3]<e[3]?t[3]+E:n[3]+E],y=Tl([x,w]);if(!r&&x[2]-x[0]+w[2]-w[0]>y[2]-y[0]+1e-11&&x[3]-x[1]+w[3]-w[1]>y[3]-y[1]+1e-11){let[b,I]=[(w[0]+w[2])/2,(w[1]+w[3])/2];if(t[0]>e[2]&&e[1]>t[3]){let A=x[2]+(w[0]-x[2])/2,T=w[3]+(x[1]-w[3])/2;return vo(yt(e[2]-b,e[1]-I),yt(e[0]-b,e[3]-I))>0?[[x[0],x[1],A,x[3]],[A,w[1],w[2],w[3]]]:[[x[0],T,x[2],x[3]],[w[0],w[1],w[2],T]]}else if(e[2]<t[0]&&e[3]<t[1]){let A=x[2]+(w[0]-x[2])/2,T=x[3]+(w[1]-x[3])/2;return vo(yt(e[0]-b,e[1]-I),yt(e[2]-b,e[3]-I))>0?[[x[0],x[1],x[2],T],[w[0],T,w[2],w[3]]]:[[x[0],x[1],A,x[3]],[A,w[1],w[2],w[3]]]}else if(e[0]>t[2]&&e[3]<t[1]){let A=w[2]+(x[0]-w[2])/2,T=x[3]+(w[1]-x[3])/2;return vo(yt(e[2]-b,e[1]-I),yt(e[0]-b,e[3]-I))>0?[[A,x[1],x[2],x[3]],[w[0],w[1],A,w[3]]]:[[x[0],x[1],x[2],T],[w[0],T,w[2],w[3]]]}else if(e[0]>t[2]&&e[1]>t[3]){let A=w[2]+(x[0]-w[2])/2,T=w[3]+(x[1]-w[3])/2;return vo(yt(e[0]-b,e[1]-I),yt(e[2]-b,e[3]-I))>0?[[A,x[1],x[2],x[3]],[w[0],w[1],A,w[3]]]:[[x[0],T,x[2],x[3]],[w[0],w[1],w[2],T]]}}return[x,w]},Sp=(e,t,n,i,o,r)=>{let s=new Set,a=new Set;n===_e||n===fe?a.add(t[1]):s.add(t[0]),o===_e||o===fe?a.add(i[1]):s.add(i[0]),e.forEach(c=>{s.add(c[0]),s.add(c[2]),a.add(c[1]),a.add(c[3])}),s.add(r[0]),s.add(r[2]),a.add(r[1]),a.add(r[3]);let l=Array.from(a).sort((c,u)=>c-u),d=Array.from(s).sort((c,u)=>c-u);return{row:l.length,col:d.length,data:l.flatMap((c,u)=>d.map((m,p)=>({f:0,g:0,h:0,closed:!1,visited:!1,parent:null,addr:[p,u],pos:[m,c]})))}},Pl=(e,t,n)=>{switch(t){case qe:return j(n[0],e[1]);case fe:return j(e[2],n[1]);case be:return j(n[0],e[3])}return j(e[0],n[1])},Ap=(e,t,n,i)=>{if(i===fe)switch(n){case fe:return e.pos[0]>=t.pos[0]?4:e.pos[1]===t.pos[1]?0:2;case qe:return e.pos[1]>t.pos[1]&&e.pos[0]<t.pos[0]?1:3;case be:return e.pos[1]<t.pos[1]&&e.pos[0]<t.pos[0]?1:3;case _e:return e.pos[1]===t.pos[1]?4:2}else if(i===_e)switch(n){case fe:return e.pos[1]===t.pos[1]?4:2;case qe:return e.pos[1]>t.pos[1]&&e.pos[0]>t.pos[0]?1:3;case be:return e.pos[1]<t.pos[1]&&e.pos[0]>t.pos[0]?1:3;case _e:return e.pos[0]<=t.pos[0]?4:e.pos[1]===t.pos[1]?0:2}else if(i===qe)switch(n){case fe:return e.pos[1]>t.pos[1]&&e.pos[0]<t.pos[0]?1:3;case qe:return e.pos[1]>=t.pos[1]?4:e.pos[0]===t.pos[0]?0:2;case be:return e.pos[0]===t.pos[0]?4:2;case _e:return e.pos[1]>t.pos[1]&&e.pos[0]>t.pos[0]?1:3}else if(i===be)switch(n){case fe:return e.pos[1]<t.pos[1]&&e.pos[0]<t.pos[0]?1:3;case qe:return e.pos[0]===t.pos[0]?4:2;case be:return e.pos[1]<=t.pos[1]?4:e.pos[0]===t.pos[0]?0:2;case _e:return e.pos[1]<t.pos[1]&&e.pos[0]>t.pos[0]?1:3}return 0},Mp=([e,t],n)=>[Si([e,t-1],n),Si([e+1,t],n),Si([e,t+1],n),Si([e-1,t],n)],Si=([e,t],n)=>e<0||e>=n.col||t<0||t>=n.row?null:n.data[t*n.col+e]??null,Do=(e,t)=>{for(let n=0;n<t.col;n++)for(let i=0;i<t.row;i++){let o=Si([n,i],t);if(o&&e[0]===o.pos[0]&&e[1]===o.pos[1])return o}return null},Tl=e=>[Math.min(...e.map(t=>t[0])),Math.min(...e.map(t=>t[1])),Math.max(...e.map(t=>t[2])),Math.max(...e.map(t=>t[3]))],Bo=(e,t)=>{let n=t.get(e);return n&&de(n)?n:null},Ht=(e,t,n,i)=>{let o=e[0][0],r=e[0][1],s=e.map(a=>$r(a,mp(Zr(e[0]),-1)));return(o<-dn||o>dn||r<-dn||r>dn||o+s[s.length-1][0]<-dn||r+s[s.length-1][0]>dn||o+s[s.length-1][1]<-dn||r+s[s.length-1][1]>dn)&&console.error(\"Elbow arrow normalization is outside reasonable bounds (> 1e6)\",{x:o,y:r,points:s,...yl(s)}),s=s.map(([a,l])=>j(To(a,-1e6,1e6),To(l,-1e6,1e6))),{points:s,x:To(o,-1e6,1e6),y:To(r,-1e6,1e6),fixedSegments:(t?.length??0)>0?t:null,...yl(s),startIsSpecial:n,endIsSpecial:i}},Jr=e=>{if(e.length>1){let t=Math.abs(e[0][1]-e[1][1])<Math.abs(e[0][0]-e[1][0]);return e.filter((n,i)=>{if(i===0||i===e.length-1)return!0;let o=e[i+1],r=Math.abs(n[1]-o[1])<Math.abs(n[0]-o[0]);return t===r?(t=r,!1):(t=r,!0)})}return e},es=e=>e.length>=4?e.filter((t,n)=>{if(n===0||n===e.length-1)return!0;let i=e[n-1];return Vr(i,t)>qr}):e,Tp=e=>{switch(e){case 0:return qe;case 1:return fe;case 2:return be}return _e},Il=(e,t,n,i,o,r,s,a=!0,l=!0)=>s?a&&o&&r?ts(e,o,t,r,void 0,l):i:o?Ne(n||[0,0],o,r??Ep([o])):i,Sl=(e,t,n,i,o,r)=>Dl(e,t,n,n&&nt(n,o,Array(4).fill(rn(n,o,e))),i,o,r),Al=(e,t,n,i)=>Nt(e,n,t,lt(i)),Ml=(e,t)=>e[0]===t[0]&&e[1]===t[1],vl=(e,t=qr)=>e.slice(1).map((n,i)=>Math.abs(n[0]-e[i][0])<t||Math.abs(n[1]-e[i][1])<t).every(Boolean);var ye=(e,t,n,i)=>{let o=!1,{points:r,fixedSegments:s,fileId:a}=n;U(e)&&(Object.keys(n).length===0||typeof r<\"u\"||typeof s<\"u\")?n={...n,angle:0,...jn({...e,x:n.x||e.x,y:n.y||e.y},t,n,i)}:typeof r<\"u\"&&(n={...vp(r),...n});for(let l in n){let d=n[l];if(typeof d<\"u\"){if(e[l]===d&&(typeof d!=\"object\"||d===null||l===\"groupIds\"||l===\"scale\"))continue;if(l===\"scale\"){let c=e[l],u=d;if(c[0]===u[0]&&c[1]===u[1])continue}else if(l===\"points\"){let c=e[l],u=d;if(c.length===u.length){let m=!1,p=c.length;for(;--p;){let f=c[p],h=u[p];if(f[0]!==h[0]||f[1]!==h[1]){m=!0;break}}if(!m)continue}}e[l]=d,o=!0}}return o&&((typeof n.height<\"u\"||typeof n.width<\"u\"||typeof a<\"u\"||typeof r<\"u\")&&Ke.delete(e),e.version=n.version??e.version+1,e.versionNonce=n.versionNonce??ns(),e.updated=is()),e},Le=(e,t,n=!1)=>{let i=!1;for(let o in t){let r=t[o];if(typeof r<\"u\"){if(e[o]===r&&(typeof r!=\"object\"||r===null))continue;i=!0}}return!i&&!n?e:{...e,...t,version:t.version??e.version+1,versionNonce:t.versionNonce??ns(),updated:is()}},Bl=(e,t)=>(e.version=(t??e.version)+1,e.versionNonce=ns(),e.updated=is(),e);var Fl=5,Gn=5,Gp=10,vi=10/1.5,Be=(e,t)=>(t.elbowed?Gn:Fl)+e.strokeWidth/2,lt=e=>{let t=Math.max(Fl,15),n=e?.value&&e.value<1?e.value:1;return rs(t/(n*1.5),t,t*2)},Pt=e=>e.isBindingEnabled,Op=(e,t,n,i,o,r,s)=>{let{start:a,end:l}=ss(e,t,n,i,o.getNonDeletedElementsMap(),o.getNonDeletedElements(),r,{...s,finalize:!0});if(Ll(e,a,\"start\",o,r.isBindingEnabled),Ll(e,l,\"end\",o,r.isBindingEnabled),a.focusPoint||l.focusPoint){let d=new Map;a.focusPoint&&d.set(0,{point:ut(e,\"startBinding\",e.startBinding,a.element,o.getNonDeletedElementsMap())||e.points[0]}),l.focusPoint&&d.set(e.points.length-1,{point:ut(e,\"endBinding\",e.endBinding,l.element,o.getNonDeletedElementsMap())||e.points[e.points.length-1]}),C.movePoints(e,o,d)}return{start:a,end:l}},Ll=(e,{mode:t,element:n,focusPoint:i},o,r,s=!0)=>{t===null?ve(e,o,r):t!==void 0&&It(e,n,t,o,r,i,s)},Rl=(e,t,n,i,o)=>{it(t.size===1,\"Bound elbow arrows cannot be moved\");let r=t.entries().next().value;it(r,\"There should be a position update for dragging an elbow arrow endpoint\");let[s,{point:a}]=r,l=C.getPointGlobalCoordinates(e,a,n),d=Nt(l,i,n,lt(o)),c=d?{element:d,mode:\"orbit\",focusPoint:C.getPointAtIndexGlobalCoordinates(e,s,n)}:{mode:null},u={mode:void 0};return s===0?{start:c,end:u}:{start:u,end:c}},kp=(e,t,n,i,o,r,s,a,l,d,c)=>{let u={mode:void 0},m={mode:void 0},p=e.points.length>2,f=C.getPointGlobalCoordinates(e,t.get(o?s:a).point,n),h=Nt(f,i,n);if(o)return h?u={element:h,mode:\"inside\",focusPoint:f}:u={mode:null},{start:u,end:m};if(r){let E=l?.selectedLinearElement?.initialState.origin;if(h&&e.startBinding?.elementId===h.id){let g=te(h.x+h.width/2,h.y+h.height/2);return{start:p?{mode:void 0}:{mode:\"inside\",element:h,focusPoint:E??g},end:p?{mode:\"orbit\",element:h,focusPoint:f}:{mode:\"inside\",element:h,focusPoint:f}}}if(h&&e.startBinding){let g=e.startBinding;if(yo(f,i,n).find(w=>w.id===g.elementId)){let w=n.get(e.startBinding.elementId);return it(w,\"Other element must be in the elements map\"),{start:p?{mode:void 0}:{mode:w.id!==h.id?\"orbit\":\"inside\",element:w,focusPoint:E??te(e.x,e.y)},end:{mode:\"orbit\",element:h,focusPoint:f}}}}if(e.startBinding&&e.startBinding.elementId!==h?.id){let g=n.get(e.startBinding.elementId);it(g,\"Other element must be in the elements map\");let w={mode:!!l.selectedLinearElement?.initialState.arrowStartIsInside?\"inside\":\"orbit\",element:g,focusPoint:c?re(g,n):E??te(e.x,e.y)},y=h&&Wr(g,h,n),b;if(h){let I=d===\"inside\"||d===\"skip\";b={mode:I&&!y?\"inside\":\"orbit\",element:h,focusPoint:f}}else b={mode:null};return{start:p?{mode:void 0}:w,end:b}}if(!e.startBinding)return h?m={mode:d===\"inside\"||d===\"skip\"?\"inside\":\"orbit\",element:h,focusPoint:f}:m={mode:null},{start:u,end:m}}it(!1,\"New arrow creation should not reach here\")},Cl=(e,t,n,i,o,r,s,a)=>{let l={mode:void 0},d={mode:void 0},c=s.points.length>2,u=Nt(e,o,i),m=n?yo(e,o,i).some(E=>E.id===n.elementId):!1,p=n?i.get(n.elementId):null,f=m&&p?Bp(p.backgroundColor):!1,h=u&&p&&Wr(p,u,i);return r===\"inside\"||r===\"skip\"?(l=u?{element:!m||!p||f?u:p,focusPoint:e,mode:\"inside\"}:{mode:null},d=a&&u&&u.id===n?.elementId?{mode:null}:d,{current:l,other:d}):u?u.id===t?.elementId&&t.mode===\"inside\"?{current:{mode:\"inside\",focusPoint:e,element:u},other:d}:n?n.elementId===u.id?n.mode===\"orbit\"?(l={element:u,mode:\"orbit\",focusPoint:e},d={mode:a?null:void 0},{current:l,other:c?{mode:void 0}:d}):(l={element:u,mode:\"inside\",focusPoint:e},{current:l,other:c?{mode:void 0}:d}):(m&&p&&!f?l={element:p,mode:\"inside\",focusPoint:e}:l={element:u,mode:\"orbit\",focusPoint:e},{current:l,other:c?{mode:void 0}:d}):(l={element:u,mode:\"orbit\",focusPoint:e},{current:l,other:c?{mode:void 0}:d}):{current:{mode:null},other:d}},ss=(e,t,n,i,o,r,s,a)=>Dp(\"COMPLEX_BINDINGS\")?Fp(e,t,o,r,s,a):Nl(e,t,n,i,o,r,s,a),Nl=(e,t,n,i,o,r,s,a)=>{let d=e.points.length-1,c=t.has(0),u=t.has(d),m={mode:void 0},p={mode:void 0};if(it(e.points.length>1,\"Do not attempt to bind linear elements with a single point\"),!c&&!u)return{start:m,end:p};if(c&&u)return{start:{mode:null},end:{mode:null}};if(!Pt(s))return m=c?{mode:null}:m,p=u?{mode:null}:p,{start:m,end:p};if(U(e))return Rl(e,t,o,r,a?.zoom);let f=c?e.endBinding:e.startBinding,h=t.get(c?0:d)?.point;it(h,`Local point must be defined for ${c?\"start\":\"end\"} dragging`);let E=C.getPointGlobalCoordinates(e,h,o),g=Nt(E,r,o,lt(s.zoom)),x=g&&(a?.angleLocked?Ot(te(n,i),g,o):Ot(E,g,o)),w=f?o.get(f.elementId):void 0,y=f&&w&&Ne(f.fixedPoint,w,o),b=w&&y&&xt({point:y,element:w,elementsMap:o,threshold:0,overrideShouldTestInside:!0});if(f&&f.elementId===g?.id)return it(!a?.newArrow||s.selectedLinearElement?.initialState.origin,\"appState.selectedLinearElement.initialState.origin must be defined for new arrows\"),{start:{mode:\"inside\",element:g,focusPoint:c?E:a?.newArrow?s.selectedLinearElement.initialState.origin:C.getPointAtIndexGlobalCoordinates(e,0,o)},end:{mode:\"inside\",element:g,focusPoint:u?E:C.getPointAtIndexGlobalCoordinates(e,-1,o)}};if(a?.altKey)return{start:c?g?{mode:\"inside\",element:g,focusPoint:E}:{mode:null}:m,end:u?g?{mode:\"inside\",element:g,focusPoint:E}:{mode:null}:p};let I=g?x?{mode:\"inside\",element:g,focusPoint:E}:{mode:\"orbit\",element:g,focusPoint:Lr(e,E,g,c?\"start\":\"end\",o,s.zoom,s.isMidpointSnappingEnabled)||E}:{mode:null},A=C.getPointAtIndexGlobalCoordinates(e,c?-1:0,o),T=y&&w&&xt({point:E,element:w,elementsMap:o,threshold:lt(s.zoom),overrideShouldTestInside:!0}),O=(a?.newArrow?s.selectedLinearElement?.initialState.arrowStartIsInside:f?.mode===\"inside\")?{mode:void 0}:w&&!b&&!T&&s.selectedLinearElement?.initialState.altFocusPoint?{mode:\"orbit\",element:w,focusPoint:s.selectedLinearElement.initialState.altFocusPoint}:a?.angleLocked&&w?{mode:\"orbit\",element:w,focusPoint:Lr(e,A,w,c?\"end\":\"start\",o,s.zoom,s.isMidpointSnappingEnabled)||A}:{mode:void 0};return{start:c?I:O,end:u?I:O}},Fp=(e,t,n,i,o,r)=>{let s=o.bindMode||\"orbit\",a=0,l=e.points.length-1,d=t.has(a),c=t.has(l),u={mode:void 0},m={mode:void 0};if(it(e.points.length>1,\"Do not attempt to bind linear elements with a single point\"),!d&&!c)return{start:u,end:m};if(d&&c)return{start:{mode:null},end:{mode:null}};if(!Pt(o))return u=d?{mode:null}:u,m=c?{mode:null}:m,{start:u,end:m};if(U(e))return Rl(e,t,n,i);if(r?.newArrow){let{start:p,end:f}=kp(e,t,n,i,d,c,a,l,o,s,r?.shiftKey);return{start:p,end:f}}if(d){let p=t.get(a)?.point;it(p,\"Local point must be defined for start dragging\");let f=C.getPointGlobalCoordinates(e,p,n),{current:h,other:E}=Cl(f,e.startBinding,e.endBinding,n,i,s,e,r?.finalize);return{start:h,end:E}}if(c){let p=t.get(l)?.point;it(p,\"Local point must be defined for end dragging\");let f=C.getPointGlobalCoordinates(e,p,n),{current:h,other:E}=Cl(f,e.endBinding,e.startBinding,n,i,s,e,r?.finalize);return{start:E,end:h}}return{start:u,end:m}},My=(e,t,n)=>{e.forEach(i=>{Op(i,new Map,1/0,1/0,t,n)})},It=(e,t,n,i,o,r,s=!0)=>{let a=o.getNonDeletedElementsMap(),l;U(e)?l={elementId:t.id,mode:\"orbit\",...Up(e,t,i,a,s)}:l={elementId:t.id,mode:n,...Xn(e,t,i,a,r)},o.mutateElement(e,{[i===\"start\"?\"startBinding\":\"endBinding\"]:l}),kl(t.boundElements||[]).has(e.id)||o.mutateElement(t,{boundElements:(t.boundElements||[]).concat({id:e.id,type:\"arrow\"})})},ve=(e,t,n)=>{let i=t===\"start\"?\"startBinding\":\"endBinding\",o=e[i];if(o==null)return null;let r=e[t===\"start\"?\"endBinding\":\"startBinding\"];if(!r||r.elementId!==o.elementId){let s=n.getNonDeletedElementsMap().get(o.elementId);n.mutateElement(s,{boundElements:s.boundElements?.filter(a=>a.id!==e.id)})}return n.mutateElement(e,{[i]:null}),o.elementId},De=(e,t,n)=>{if(!de(e))return;let{simultaneouslyUpdated:i}=n??{},o=Np(i),r=t.getNonDeletedElementsMap();n?.changedElements&&(r=new Map(r),n.changedElements.forEach(a=>{r.set(a.id,a)})),Oo(r,e,a=>{if(!H(a)||a.isDeleted||!Rp(a,e))return;let l=a.startBinding?r.get(a.startBinding.elementId):null,d=a.endBinding?l?.id===a.endBinding.elementId?l:r.get(a.endBinding.elementId):null;if(o.has(a.id))return;let c=ko(r,a,(m,p)=>{if(m&&de(m)&&(p===\"startBinding\"||p===\"endBinding\")&&(e.id===a[p]?.elementId||e.id===a[p===\"startBinding\"?\"endBinding\":\"startBinding\"]?.elementId)){let f=ut(a,p,a[p],m,r);if(f)return[p===\"startBinding\"?0:a.points.length-1,{point:f}]}return null}).filter(m=>m!==null);C.movePoints(a,t,new Map(c),{moveMidPointsWithElement:!!l&&l?.id===d?.id});let u=V(a,r);u&&!u.isDeleted&&Cn(a,t,!1)})},Gl=(e,t,n,i,o)=>{it(!U(e),\"Elbow arrows not supported for indirect updates\");let r=e[t],s=r&&n.get(r.elementId),a=C.getPointAtIndexGlobalCoordinates(e,t===\"startBinding\"?0:-1,n),l=s&&xt({element:s,point:a,elementsMap:n,threshold:lt(o.zoom)}),d=t===\"startBinding\"?\"start\":\"end\";if(ve(e,d,i),l){let c=t===\"startBinding\"?0:e.points.length-1,u=e.points[c],m=Nl(e,new Map([[c,{point:u}]]),a[0],a[1],n,i.getNonDeletedElements(),o);m[d]&&m[d].element?.id===s.id&&m[d].mode&&It(e,s,m[d].mode,d,i,m[d].focusPoint)}},Ty=(e,t,n,i)=>{if(H(e)){let o=t.getNonDeletedElementsMap();e.startBinding&&Gl(e,\"startBinding\",o,t,n),e.endBinding&&Gl(e,\"endBinding\",o,t,n)}else De(e,t,{...i,changedElements:new Map([[e.id,e]])})},Rp=(e,t)=>e.startBinding?.elementId===t.id||e.endBinding?.elementId===t.id,Np=e=>new Set((e||[]).map(t=>t.id)),Dl=(e,t,n,i,o,r,s)=>{let a=zt(Mi(t,e));return!n||!i?a:zp(o,n,r,s)?Ii(n,i,e):zt(Mi(e,re(n,r)))},zp=(e,t,n,i)=>{let o=rn(t,n,e),r=lt(i);return o>r?null:o},ts=(e,t,n,i,o,r=!0)=>{let s=U(e),a=C.getPointAtIndexGlobalCoordinates(e,n===\"start\"?0:-1,i);if(e.points.length<2)return a;let l=Ha(t)&&s?Hp(e,t,i,a):a,d=o&&!s?o[1]:C.getPointAtIndexGlobalCoordinates(e,n===\"start\"?1:-2,i),c=Be(t,e),u=nt(t,i),m=bt(u),p=null;if(s){let f=Ue(Ii(t,u,a)),E=(r?as(t,i,l,.05,e):void 0)||a,g=te(f?m[0]:E[0],f?E[1]:m[1]),x=o??Go(g,Lo(Co(os(Mi(E,g)),Math.max(t.width,t.height)*2),g));if(p=sn(t,i,x,c).sort(_t)[0],!p){let w=te(f?E[0]:m[0],f?m[1]:E[1]),y=Go(w,Lo(Co(os(Mi(E,w)),Math.max(t.width,t.height)*2),w));p=sn(t,i,y,Gn).sort(_t)[0]}}else{let f=o;if(!f){let h=Co(os(Mi(l,d)),un(l,d)+Math.max(t.width,t.height)+c*2);f=o??Go(Lo(h,d),Lo(Co(h,-1),d))}p=un(l,d)<1?l:sn(t,i,f,c).sort((h,E)=>_t(h,d)-_t(E,d))[0]}return!p||_t(l,p)<Lp?l:p},Hp=(e,t,n,i)=>{let o=re(t,n),r=se(i,o,-t.angle),s=Be(t,e);return r[0]<t.x&&r[1]<t.y?r[1]-t.y>-s?se(te(t.x-s,t.y),o,t.angle):se(te(t.x,t.y-s),o,t.angle):r[0]<t.x&&r[1]>t.y+t.height?r[0]-t.x>-s?se(te(t.x,t.y+t.height+s),o,t.angle):se(te(t.x-s,t.y+t.height),o,t.angle):r[0]>t.x+t.width&&r[1]>t.y+t.height?r[0]-t.x<t.width+s?se(te(t.x+t.width,t.y+t.height+s),o,t.angle):se(te(t.x+t.width+s,t.y+t.height),o,t.angle):r[0]>t.x+t.width&&r[1]<t.y?r[0]-t.x<t.width+s?se(te(t.x+t.width,t.y-s),o,t.angle):se(te(t.x+t.width+s,t.y),o,t.angle):i},as=(e,t,n,i=.05,o)=>{let{x:r,y:s,width:a,height:l,angle:d}=e,c=re(e,t,-.1,-.1),u=se(n,c,-d),m=o?Be(e,o):0,p=rs(i*l,5,80),f=rs(i*a,5,80);if(!(un(c,u)<m)){if(u[0]<=r+a/2&&u[1]>c[1]-p&&u[1]<c[1]+p)return se(te(r-m,c[1]),c,d);if(u[1]<=s+l/2&&u[0]>c[0]-f&&u[0]<c[0]+f)return se(te(c[0],s-m),c,d);if(u[0]>=r+a/2&&u[1]>c[1]-p&&u[1]<c[1]+p)return se(te(r+a+m,c[1]),c,d);if(u[1]>=s+l/2&&u[0]>c[0]-f&&u[0]<c[0]+f)return se(te(c[0],s+l+m),c,d);if(e.type===\"diamond\"){let h=m,E=te(r+a/4-h,s+l/4-h),g=te(r+3*a/4+h,s+l/4-h),x=te(r+a/4-h,s+3*l/4+h),w=te(r+3*a/4+h,s+3*l/4+h);if(un(E,u)<Math.max(f,p))return se(E,c,d);if(un(g,u)<Math.max(f,p))return se(g,c,d);if(un(x,u)<Math.max(f,p))return se(x,c,d);if(un(w,u)<Math.max(f,p))return se(w,c,d)}}},_p=(e,t,n)=>{let i=e[t];if(!i)return{element:null,fixedPoint:null,focusPoint:null,binding:i,mode:null};let o=n.get(i.elementId);return{element:o,fixedPoint:i.fixedPoint,focusPoint:Ne(nn(i.fixedPoint),o,n),binding:i,mode:i.mode}},Ol=e=>e.width*e.height,ut=(e,t,n,i,o,r)=>{if(n==null||n.elementId!==i.id&&e.points.length>2||Cp(e.points[e.points.length-1],te(0,0)))return null;let s=Ne(nn(n.fixedPoint),i,o);if(n.mode===\"inside\")return C.createPointAt(e,o,s[0],s[1],null);let{element:a,focusPoint:l}=_p(e,t===\"startBinding\"?\"endBinding\":\"startBinding\",o),d=C.getPointAtIndexGlobalCoordinates(e,t===\"startBinding\"?1:-2,o),c=e.points.length===2&&l||d,u=c&&Go(s,c),m=a&&u&&sn(a,o,u,Be(a,e)).sort((w,y)=>_t(w,s)-_t(y,s))[0],p=u&&sn(i,o,u,Be(i,e)).sort((w,y)=>_t(w,c)-_t(y,c))[0],f=e.startArrowhead!==null,h=e.endArrowhead!==null,E=!f&&!h||t===\"startBinding\"&&f||t===\"endBinding\"&&h?s:p||s;if(a&&p&&!r&&Ol(a)<Ol(i)*2&&xt({element:a,point:p,elementsMap:o,threshold:Be(a,e),overrideShouldTestInside:!0}))return C.createPointAt(e,o,E[0],E[1],null);let x=un(a&&(m||l)||d,p||s)<=Gp;return a?x?C.createPointAt(e,o,E?.[0]||s[0],E?.[1]||s[1],null):C.createPointAt(e,o,p?.[0]||s[0],p?.[1]||s[1],null):C.createPointAt(e,o,x?s[0]:p?.[0]??s[0],x?s[1]:p?.[1]??s[1],null)},Up=(e,t,n,i,o=!0,r=!0)=>{let s=[t.x,t.y,t.x+t.width,t.y+t.height],a=o?ts(e,t,n,i,void 0,r):C.getPointAtIndexGlobalCoordinates(e,n===\"start\"?0:-1,i),l=te(s[0]+(s[2]-s[0])/2,s[1]+(s[3]-s[1])/2),d=se(a,l,-t.angle);return{fixedPoint:nn([(d[0]-t.x)/t.width,(d[1]-t.y)/t.height])}},Xn=(e,t,n,i,o)=>{let r=o||C.getPointAtIndexGlobalCoordinates(e,n===\"start\"?0:-1,i),s=re(t,i),a=se(r,s,-t.angle),l=(a[0]-t.x)/t.width,d=(a[1]-t.y)/t.height;return{fixedPoint:nn([l,d])}},zl=(e,t,n)=>{for(let i of e){if(\"boundElements\"in i&&i.boundElements&&Object.assign(i,{boundElements:i.boundElements.reduce((o,r)=>{let s=t.get(r.id);return s&&o.push({...r,id:s}),o},[])}),\"containerId\"in i&&i.containerId&&Object.assign(i,{containerId:t.get(i.containerId)??null}),\"endBinding\"in i&&i.endBinding){let o=t.get(i.endBinding.elementId);Object.assign(i,{endBinding:o?{...i.endBinding,elementId:o}:null})}if(\"startBinding\"in i&&i.startBinding){let o=t.get(i.startBinding.elementId);Object.assign(i,{startBinding:o?{...i.startBinding,elementId:o}:null})}U(i)&&Object.assign(i,jn(i,n,{points:[i.points[0],i.points[i.points.length-1]]}))}},vy=(e,t)=>{let n=kl(e);for(let i of t)mn.unbindAffected(n,i,(o,r)=>ye(o,n,r)),pn.unbindAffected(n,i,(o,r)=>ye(o,n,r))},Ti=(e,t,n=[])=>{if(!e)return null;let i=e.filter(o=>!t.has(o.id));return i.push(...n.map(o=>({id:o.id,type:o.type}))),i},Hl=new Set([\"boundElements\",\"frameId\",\"containerId\",\"startBinding\",\"endBinding\"]),Oo=(e,t,n)=>{de(t)&&(t.boundElements?.slice()??[]).forEach(({id:o})=>{n(e.get(o),\"boundElements\",o)})},ko=(e,t,n)=>{let i=[];if(t.frameId){let o=t.frameId;i.push(n(e.get(o),\"frameId\",o))}if(ce(t)){let o=t.containerId;i.push(n(e.get(o),\"containerId\",o))}if(H(t)){if(t.startBinding){let o=t.startBinding.elementId;i.push(n(e.get(o),\"startBinding\",o))}if(t.endBinding){let o=t.endBinding.elementId;i.push(n(e.get(o),\"endBinding\",o))}}return i},mn=class{static unbindAffected(t,n,i){n&&ko(t,n,o=>{!o||o.isDeleted||Oo(t,o,(r,s,a)=>{a===n.id&&i(o,{boundElements:Ti(o.boundElements,new Set([a]))})})})}static rebindAffected=(t,n,i)=>{!n||n.isDeleted||ko(t,n,(o,r)=>{if(!o||o.isDeleted){i(n,{[r]:null});return}r!==\"frameId\"&&(o.boundElements?.find(s=>s.id===n.id)||(H(n)&&i(o,{boundElements:Ti(o.boundElements,new Set,new Array(n))}),Q(n)&&(o.boundElements?.find(s=>s.type===\"text\")?i(n,{[r]:null}):i(o,{boundElements:Ti(o.boundElements,new Set,new Array(n))}))))})}},pn=class{static unbindAffected(t,n,i){n&&Oo(t,n,o=>{!o||o.isDeleted||ko(t,o,(r,s,a)=>{a===n.id&&i(o,{[s]:null})})})}static rebindAffected=(t,n,i)=>{!n||n.isDeleted||Oo(t,n,(o,r,s)=>{if(!o||o.isDeleted){i(n,{boundElements:Ti(n.boundElements,new Set([s]))});return}Q(o)&&((n.boundElements?.slice()??[]).reverse().find(l=>l.type===\"text\")?.id===o.id?o.containerId!==n.id&&i(o,{containerId:n.id}):(o.containerId!==null&&i(o,{containerId:null}),i(n,{boundElements:Ti(n.boundElements,new Set([o.id]))})))})}},Ne=(e,t,n)=>{let[i,o]=nn(e);return se(te(t.x+t.width*i,t.y+t.height*o),re(t,n),t.angle)},Wp=(e,t)=>{let n=e.startBinding&&t.get(e.startBinding.elementId),i=e.endBinding&&t.get(e.endBinding.elementId),o=n&&e.startBinding?Ne(e.startBinding.fixedPoint,n,t):te(e.x+e.points[0][0],e.y+e.points[0][1]),r=i&&e.endBinding?Ne(e.endBinding.fixedPoint,i,t):te(e.x+e.points[e.points.length-1][0],e.y+e.points[e.points.length-1][1]);return[o,r]},_l=(e,t)=>{let[n,i]=Wp(e,t);return[C.pointFromAbsoluteCoords(e,n,t),C.pointFromAbsoluteCoords(e,i,t)]},Yp=e=>Array.isArray(e)&&e.length===2&&e.every(t=>Number.isFinite(t)),nn=e=>{if(!Yp(e))return[.5001,.5001];let t=1e-4;return Math.abs(e[0]-.5)<t||Math.abs(e[1]-.5)<t?e.map(n=>Math.abs(n-.5)<t?.5001:n):e},jp=e=>e.type===\"ellipse\"||e.type===\"diamond\"?e.type:\"rectangle\",Xp={rectangle:[{centerAngle:0,sectorWidth:75,side:\"right\"},{centerAngle:45,sectorWidth:15,side:\"bottom-right\"},{centerAngle:90,sectorWidth:75,side:\"bottom\"},{centerAngle:135,sectorWidth:15,side:\"bottom-left\"},{centerAngle:180,sectorWidth:75,side:\"left\"},{centerAngle:225,sectorWidth:15,side:\"top-left\"},{centerAngle:270,sectorWidth:75,side:\"top\"},{centerAngle:315,sectorWidth:15,side:\"top-right\"}],diamond:[{centerAngle:0,sectorWidth:15,side:\"right\"},{centerAngle:45,sectorWidth:75,side:\"bottom-right\"},{centerAngle:90,sectorWidth:15,side:\"bottom\"},{centerAngle:135,sectorWidth:75,side:\"bottom-left\"},{centerAngle:180,sectorWidth:15,side:\"left\"},{centerAngle:225,sectorWidth:75,side:\"top-left\"},{centerAngle:270,sectorWidth:15,side:\"top\"},{centerAngle:315,sectorWidth:75,side:\"top-right\"}],ellipse:[{centerAngle:0,sectorWidth:15,side:\"right\"},{centerAngle:45,sectorWidth:75,side:\"bottom-right\"},{centerAngle:90,sectorWidth:15,side:\"bottom\"},{centerAngle:135,sectorWidth:75,side:\"bottom-left\"},{centerAngle:180,sectorWidth:15,side:\"left\"},{centerAngle:225,sectorWidth:75,side:\"top-left\"},{centerAngle:270,sectorWidth:15,side:\"top\"},{centerAngle:315,sectorWidth:75,side:\"top-right\"}]},$p=e=>e.map((t,n)=>{let i=t.sectorWidth/2,o=t.centerAngle-i,r=t.centerAngle+i;return o=(o%360+360)%360,r=(r%360+360)%360,{start:o,end:r,side:t.side}}),Vp=(e,t)=>{let[n,i]=e,o=n-.5,r=i-.5,s=Math.atan2(r,o);s<0&&(s+=2*Math.PI);let a=s*180/Math.PI,l=Xp[t],d=$p(l);for(let m of d)if(m.start<=m.end){if(a>=m.start&&a<=m.end)return m.side}else if(a>=m.start||a<=m.end)return m.side;let c=1/0,u=l[0].side;for(let m of l){let p=Math.abs(a-m.centerAngle);p>180&&(p=360-p),p<c&&(c=p,u=m.side)}return u},Dy=(e,t)=>{let n=t.get(e.elementId);if(!n||n.isDeleted||!de(n))return null;let i=re(n,t),o=jp(n),r=Vp(nn(e.fixedPoint),o),s=.01;if(n.type===\"diamond\"){let[a,l]=tn(n),[d,c,u,m]=a,p,f;switch(r){case\"left\":{if(l.length>=3){let E=l[2][1];p=E[0]-s,f=E[1]}else{let h=Te(c[1],u[0]);p=h[0]-s,f=h[1]}break}case\"right\":{if(l.length>=1){let E=l[0][1];p=E[0]+s,f=E[1]}else{let h=Te(m[1],d[0]);p=h[0]+s,f=h[1]}break}case\"top\":{if(l.length>=4){let E=l[3][1];p=E[0],f=E[1]-s}else{let h=Te(u[1],m[0]);p=h[0],f=h[1]-s}break}case\"bottom\":{if(l.length>=2){let E=l[1][1];p=E[0],f=E[1]+s}else{let h=Te(d[1],c[0]);p=h[0],f=h[1]+s}break}case\"top-right\":{let h=Te(m[0],m[1]);p=h[0]+s*.707,f=h[1]-s*.707;break}case\"bottom-right\":{let h=Te(d[0],d[1]);p=h[0]+s*.707,f=h[1]+s*.707;break}case\"bottom-left\":{let h=Te(c[0],c[1]);p=h[0]-s*.707,f=h[1]+s*.707;break}case\"top-left\":{let h=Te(u[0],u[1]);p=h[0]-s*.707,f=h[1]-s*.707;break}default:return null}return se(te(p,f),i,n.angle)}if(n.type===\"ellipse\"){let a=n.x+n.width/2,l=n.y+n.height/2,d=n.width/2,c=n.height/2,u,m;switch(r){case\"top\":{u=a,m=l-c-s;break}case\"right\":{u=a+d+s,m=l;break}case\"bottom\":{u=a,m=l+c+s;break}case\"left\":{u=a-d-s,m=l;break}case\"top-right\":{let p=-Math.PI/4,f=d*Math.cos(p),h=c*Math.sin(p);u=a+f+s*.707,m=l+h-s*.707;break}case\"bottom-right\":{let p=Math.PI/4,f=d*Math.cos(p),h=c*Math.sin(p);u=a+f+s*.707,m=l+h+s*.707;break}case\"bottom-left\":{let p=3*Math.PI/4,f=d*Math.cos(p),h=c*Math.sin(p);u=a+f-s*.707,m=l+h+s*.707;break}case\"top-left\":{let p=-3*Math.PI/4,f=d*Math.cos(p),h=c*Math.sin(p);u=a+f-s*.707,m=l+h-s*.707;break}default:return null}return se(te(u,m),i,n.angle)}if(hi(n)){let[a,l]=en(n),[d,c,u,m]=a,p,f;switch(r){case\"top\":{let h=Te(d[0],d[1]);p=h[0],f=h[1]-s;break}case\"right\":{let h=Te(c[0],c[1]);p=h[0]+s,f=h[1];break}case\"bottom\":{let h=Te(u[0],u[1]);p=h[0],f=h[1]+s;break}case\"left\":{let h=Te(m[0],m[1]);p=h[0]-s,f=h[1];break}case\"top-left\":{if(l.length>=1){let h=l[0],E=h[0],g=h[3],x=Te(E,g);p=x[0]-s*.707,f=x[1]-s*.707}else p=n.x-s,f=n.y-s;break}case\"top-right\":{if(l.length>=2){let h=l[1],E=h[0],g=h[3],x=Te(E,g);p=x[0]+s*.707,f=x[1]-s*.707}else p=n.x+n.width+s,f=n.y-s;break}case\"bottom-right\":{if(l.length>=3){let h=l[2],E=h[0],g=h[3],x=Te(E,g);p=x[0]+s*.707,f=x[1]+s*.707}else p=n.x+n.width+s,f=n.y+n.height+s;break}case\"bottom-left\":{if(l.length>=4){let h=l[3],E=h[0],g=h[3],x=Te(E,g);p=x[0]-s*.707,f=x[1]+s*.707}else p=n.x-s,f=n.y+n.height+s;break}default:return null}return se(te(p,f),i,n.angle)}return null},Te=(e,t)=>te((e[0]+t[0])/2,(e[1]+t[1])/2);var ls=({points:e})=>{let t=e[0][0],n=e[0][1];return{points:e.map(i=>G(i[0]-t,i[1]-n)),offsetX:t,offsetY:n}},C=class e{elementId;selectedPointsIndices;initialState;isDragging;lastUncommittedPoint;lastCommittedPoint;pointerOffset;hoverPointIndex;segmentMidPointHoveredCoords;hoveredFocusPointBinding;draggedFocusPointBinding;elbowed;customLineAngle;isEditing;pointerDownState;constructor(t,n,i=!1){this.elementId=t.id,Wl(t.points[0],G(0,0))||(console.error(\"Linear element is not normalized\",Error().stack),ye(t,n,e.getNormalizeElementPointsAndCoords(t))),this.selectedPointsIndices=null,this.lastUncommittedPoint=null,this.lastCommittedPoint=null,this.isDragging=!1,this.pointerOffset={x:0,y:0},this.initialState={prevSelectedPointsIndices:null,lastClickedPoint:-1,origin:null,segmentMidpoint:{value:null,index:null,added:!1},arrowStartIsInside:!1,altFocusPoint:null},this.hoverPointIndex=-1,this.segmentMidPointHoveredCoords=null,this.hoveredFocusPointBinding=null,this.draggedFocusPointBinding=null,this.elbowed=U(t)&&t.elbowed,this.customLineAngle=null,this.isEditing=i}static POINT_HANDLE_SIZE=10;static getElement(t,n){let i=n.get(t);return i||null}static handleBoxSelection(t,n,i,o){if(!n.selectedLinearElement?.isEditing||!n.selectionElement)return!1;let{selectedLinearElement:r}=n,{selectedPointsIndices:s,elementId:a}=r,l=e.getElement(a,o);if(!l)return!1;let[d,c,u,m]=$(n.selectionElement,o),f=e.getPointsGlobalCoordinates(l,o).reduce((h,E,g)=>((E[0]>=d&&E[0]<=u&&E[1]>=c&&E[1]<=m||t.shiftKey&&s?.includes(g))&&h.push(g),h),[]).filter(h=>!(U(l)&&h!==0&&h!==l.points.length-1));i({selectedLinearElement:{...r,selectedPointsIndices:f.length?f:null}})}static handlePointerMove(t,n,i,o,r){let s=n.scene.getNonDeletedElementsMap(),a=n.scene.getNonDeletedElements(),{elementId:l}=r,d=e.getElement(l,s);Ge(d,\"Element being dragged must exist in the scene\"),Ge(d.points.length>1,\"Element must have at least 2 points\");let c=d.points.length-1,u=d.points[c],m=d.points[c-1],p=r.customLineAngle??ql(m,d.points[c]),f=0,h=0;if(Di(t)){let[b,I]=e._getShiftLockedDelta(d,s,m,G(i,o),t[On.CTRL_OR_CMD]?null:n.getEffectiveGridSize(),p),A=G(b+m[0],I+m[1]);f=A[0]-u[0],h=A[1]-u[1]}else{let b=e.createPointAt(d,s,i-r.pointerOffset.x,o-r.pointerOffset.y,t[On.CTRL_OR_CMD]?null:n.getEffectiveGridSize());f=b[0]-u[0],h=b[1]-u[1]}let E=null,{positions:g,updates:x}=Zl([c],f,h,i,o,s,d,a,n,Di(t),t.altKey,r);if(e.movePoints(d,n.scene,g,{startBinding:x?.startBinding,endBinding:x?.endBinding,moveMidPointsWithElement:x?.moveMidPointsWithElement},{isBindingEnabled:n.state.isBindingEnabled,isMidpointSnappingEnabled:n.state.isMidpointSnappingEnabled}),Ae(d,!1)&&Pt(n.state)&&(E=x?.suggestedBinding??null),Ae(d)&&$l(e.getPointGlobalCoordinates(d,d.points[d.points.length-1],s),d,a,s,n.scene),n.state.selectedLinearElement?.customLineAngle===p&&r.initialState.altFocusPoint&&(!E||Jp(n.state.suggestedBinding??[],E)))return null;let w=Ae(d)&&d.startBinding&&s.get(d.startBinding.elementId);return{selectedLinearElement:{...r,customLineAngle:p,initialState:{...r.initialState,altFocusPoint:!r.initialState.altFocusPoint&&w&&x?.suggestedBinding?.element.id!==w.id?Vl(d,G(d.x,d.y),w,\"start\",s,n.state.zoom,n.state.isMidpointSnappingEnabled):r.initialState.altFocusPoint}},suggestedBinding:E}}static handlePointDragging(t,n,i,o,r){let s=n.scene.getNonDeletedElementsMap(),a=n.scene.getNonDeletedElements(),{elbowed:l,elementId:d,initialState:c}=r,u=Array.from(r.selectedPointsIndices??[]),{lastClickedPoint:m}=c,p=e.getElement(d,s);Ge(p,\"Element being dragged must exist in the scene\"),Ge(p.points.length>1,\"Element must have at least 2 points\"),Ge(u,\"There must be selected points in order to drag them\"),l&&u.some((S,z)=>S>0&&S!==p.points.length-1?(u[z]=p.points.length-1,m=p.points.length-1,!0):!1),Ge(m>-1&&u.includes(m)&&p.points[m],`There must be a valid lastClickedPoint in order to drag it. selectedPointsIndices(${JSON.stringify(u)}) points(0..${p.points.length-1}) lastClickedPoint(${m})`);let f=p.points[m],h=p.points[m===0?1:m-1],E=u.length===1,g=r.customLineAngle??ql(h,p.points[m]),x=u.includes(0),w=u.includes(p.points.length-1),y=0,b=0;if(Di(t)&&E){let[S,z]=e._getShiftLockedDelta(p,s,h,G(i,o),t[On.CTRL_OR_CMD]?null:n.getEffectiveGridSize(),g),W=G(S+h[0],z+h[1]);y=W[0]-f[0],b=W[1]-f[1]}else{let S=e.createPointAt(p,s,i-r.pointerOffset.x,o-r.pointerOffset.y,t[On.CTRL_OR_CMD]?null:n.getEffectiveGridSize());y=S[0]-f[0],b=S[1]-f[1]}let I=null,{positions:A,updates:T}=Zl(u,y,b,i,o,s,p,a,n,Di(t)&&E,t.altKey,r);e.movePoints(p,n.scene,A,{startBinding:T?.startBinding,endBinding:T?.endBinding,moveMidPointsWithElement:T?.moveMidPointsWithElement},{isBindingEnabled:n.state.isBindingEnabled,isMidpointSnappingEnabled:n.state.isMidpointSnappingEnabled}),Ae(p,!1)&&Pt(n.state)&&(x||w)&&(I=T?.suggestedBinding??null),Ae(p)&&x!==w&&$l(e.getPointGlobalCoordinates(p,x?p.points[0]:p.points[p.points.length-1],s),p,a,s,n.scene),V(p,s)&&Cn(p,n.scene,!1);let O=l?w?[p.points.length-1]:[0]:u,L=l?O[0]:m,k=!x&&!w?e.getPointGlobalCoordinates(p,f,s):null,B=L,X=Ae(p)&&p.startBinding&&s.get(p.startBinding.elementId),_=Ae(p)&&p.endBinding&&s.get(p.endBinding.elementId),ie=w&&X&&T?.suggestedBinding?.element.id!==X.id?X:x&&_&&T?.suggestedBinding?.element.id!==_.id?_:null;return{selectedLinearElement:{...r,selectedPointsIndices:O,initialState:{...r.initialState,lastClickedPoint:L,altFocusPoint:!r.initialState.altFocusPoint&&Ae(p)&&ie?Vl(p,G(p.x,p.y),ie,\"start\",s,n.state.zoom,n.state.isMidpointSnappingEnabled):r.initialState.altFocusPoint},segmentMidPointHoveredCoords:k,hoverPointIndex:B,isDragging:!0,customLineAngle:g},suggestedBinding:I}}static handlePointerUp(t,n,i,o){let r=o.getNonDeletedElementsMap(),{elementId:s,selectedPointsIndices:a,isDragging:l,initialState:d}=n,c=e.getElement(s,r);if(!c)return n;if(l&&a)for(let u of a)(u===0||u===c.points.length-1)&&ef(c.points,i.zoom.value)&&(Lt(c)&&o.mutateElement(c,{...Kl(c,!0)},{informMutation:!1,isDragging:!1}),e.movePoints(c,o,new Map([[u,{point:u===0?c.points[c.points.length-1]:c.points[0]}]])));return{...n,segmentMidPointHoveredCoords:null,hoverPointIndex:-1,selectedPointsIndices:l||t.shiftKey?!l&&t.shiftKey&&d.prevSelectedPointsIndices?.includes(d.lastClickedPoint)?a&&a.filter(u=>u!==d.lastClickedPoint):a:a?.includes(d.lastClickedPoint)?[d.lastClickedPoint]:a,isDragging:!1,customLineAngle:null,initialState:{...n.initialState,origin:null,arrowStartIsInside:!1}}}static getEditorMidPoints=(t,n,i)=>{let o=V(t,n);if(!U(t)&&!i.selectedLinearElement?.isEditing&&t.points.length>2&&!o)return[];let r=e.getPointsGlobalCoordinates(t,n),s=0,a=[];for(;s<r.length-1;){if(e.isSegmentTooShort(t,t.points[s],t.points[s+1],s,i.zoom)){a.push(null),s++;continue}let l=e.getSegmentMidPoint(t,s+1);a.push(l),s++}return a};static getSegmentMidpointHitCoords=(t,n,i,o)=>{let{elementId:r}=t,s=e.getElement(r,o);if(!s)return null;let a=e.getPointIndexUnderCursor(s,o,i.zoom,n.x,n.y);if(!U(s)&&a>=0||e.getPointsGlobalCoordinates(s,o).length>=3&&!i.selectedLinearElement?.isEditing&&!U(s))return null;let d=(e.POINT_HANDLE_SIZE+1)/i.zoom.value,c=t.segmentMidPointHoveredCoords;if(c&&kn(G(c[0],c[1]),G(n.x,n.y))<=d)return c;let u=0,m=e.getEditorMidPoints(s,o,i);for(;u<m.length;){if(m[u]!==null&&kn(m[u],G(n.x,n.y))<=d)return m[u];u++}return null};static isSegmentTooShort(t,n,i,o,r){if(U(t))return o>=0&&o<t.points.length?kn(n,i)*r.value<e.POINT_HANDLE_SIZE/2:!1;let s=kn(n,i);if(t.points.length>2&&t.roundness){let[a,l]=jl(t);Ge(a.length===0&&l.length>0,\"Only linears built out of curves are supported\"),Ge(a.length+l.length>=o,\"Invalid segment index while calculating mid point\"),s=qp(l[o])}return s*r.value<e.POINT_HANDLE_SIZE*4}static getSegmentMidPoint(t,n){if(U(t)){Ge(t.points.length>=n,\"Invalid segment index while calculating elbow arrow mid point\");let r=Ul(t.points[n-1],t.points[n]);return G(t.x+r[0],t.y+r[1])}let[i,o]=jl(t);if(Ge(i.length===0&&o.length>0||i.length>0&&o.length===0,\"Only linears built out of either segments or curves are supported\"),Ge(i.length+o.length>=n,\"Invalid segment index while calculating mid point\"),i.length){let r=i[n-1];return Ul(r[0],r[1])}if(o.length){let r=o[n-1];return Kp(r,.5)}Ge(!1,\"Invalid segment type while calculating mid point\")}static getSegmentMidPointIndex(t,n,i,o){let r=e.getElement(t.elementId,o);if(!r)return-1;let s=e.getEditorMidPoints(r,o,n),a=0;for(;a<s.length;){if(e.arePointsEqual(i,s[a]))return a+1;a++}return-1}static handlePointerDown(t,n,i,o,r,s){let a=n.state,l=s.getNonDeletedElementsMap(),d={didAddPoint:!1,hitElement:null,linearElementEditor:null};if(!r)return d;let{elementId:c}=r,u=e.getElement(c,l);if(!u)return d;let m=e.getSegmentMidpointHitCoords(r,o,a,l),p=G(o.x,o.y),f=null;if(m)f=e.getSegmentMidPointIndex(r,a,m,l);else if(t.altKey&&a.selectedLinearElement?.isEditing)return r.lastUncommittedPoint==null&&(s.mutateElement(u,{points:[...u.points,e.createPointAt(u,l,o.x,o.y,t[On.CTRL_OR_CMD]?null:n.getEffectiveGridSize())]}),d.didAddPoint=!0),i.scheduleCapture(),d.linearElementEditor={...r,initialState:{prevSelectedPointsIndices:r.selectedPointsIndices,lastClickedPoint:-1,origin:p,segmentMidpoint:{value:m,index:f,added:!1},arrowStartIsInside:!!n.state.newElement&&(n.state.bindMode===\"inside\"||n.state.bindMode===\"skip\"),altFocusPoint:null},selectedPointsIndices:[u.points.length-1],lastUncommittedPoint:null},d.didAddPoint=!0,d;let h=e.getPointIndexUnderCursor(u,l,a.zoom,o.x,o.y);(h>=0||m)&&(d.hitElement=u);let[E,g,x,w]=$(u,l),y=(E+x)/2,b=(g+w)/2,I=h>-1&&Ce(G(u.x+u.points[h][0],u.y+u.points[h][1]),G(y,b),u.angle),A=h>-1||t.shiftKey?t.shiftKey||r.selectedPointsIndices?.includes(h)?tf([...r.selectedPointsIndices||[],h]):[h]:null;return d.linearElementEditor={...r,initialState:{prevSelectedPointsIndices:r.selectedPointsIndices,lastClickedPoint:h,origin:p,segmentMidpoint:{value:m,index:f,added:!1},arrowStartIsInside:!!n.state.newElement&&(n.state.bindMode===\"inside\"||n.state.bindMode===\"skip\"),altFocusPoint:null},selectedPointsIndices:A,pointerOffset:I?{x:o.x-I[0],y:o.y-I[1]}:{x:0,y:0}},d}static arePointsEqual(t,n){return!t&&!n?!0:!t||!n?!1:Wl(t,n)}static handlePointerMoveInEditMode(t,n,i,o){let r=o.state;if(!r.selectedLinearElement?.isEditing)return null;let{elementId:s,lastUncommittedPoint:a}=r.selectedLinearElement,l=o.scene.getNonDeletedElementsMap(),d=e.getElement(s,l);if(!d)return r.selectedLinearElement;let{points:c}=d,u=c[c.length-1];if(!t.altKey)return u===a&&e.deletePoints(d,o,[c.length-1]),r.selectedLinearElement?.lastUncommittedPoint?{...r.selectedLinearElement,lastUncommittedPoint:null}:r.selectedLinearElement;let m;if(Di(t)&&c.length>=2){let p=c[c.length-2],[f,h]=e._getShiftLockedDelta(d,l,p,G(n,i),t[On.CTRL_OR_CMD]?null:o.getEffectiveGridSize());m=G(f+p[0],h+p[1])}else m=e.createPointAt(d,l,n-r.selectedLinearElement.pointerOffset.x,i-r.selectedLinearElement.pointerOffset.y,t[On.CTRL_OR_CMD]||U(d)?null:o.getEffectiveGridSize());return u===a?e.movePoints(d,o.scene,new Map([[d.points.length-1,{point:m}]])):e.addPoints(d,o.scene,[m]),{...r.selectedLinearElement,lastUncommittedPoint:d.points[d.points.length-1]}}static getPointGlobalCoordinates(t,n,i){let[o,r,s,a]=$(t,i),l=(o+s)/2,d=(r+a)/2,{x:c,y:u}=t;return Ce(G(c+n[0],u+n[1]),G(l,d),t.angle)}static getPointsGlobalCoordinates(t,n){let[i,o,r,s]=$(t,n),a=(i+r)/2,l=(o+s)/2;return t.points.map(d=>{let{x:c,y:u}=t;return Ce(G(c+d[0],u+d[1]),G(a,l),t.angle)})}static getPointAtIndexGlobalCoordinates(t,n,i){let o=n<0?t.points.length+n:n,[,,,,r,s]=$(t,i),a=G(r,s),l=t.points[o],{x:d,y:c}=t;return l?Ce(G(d+l[0],c+l[1]),a,t.angle):Ce(G(d,c),a,t.angle)}static pointFromAbsoluteCoords(t,n,i){if(U(t))return G(n[0]-t.x,n[1]-t.y);let[o,r,s,a]=$(t,i),l=(o+s)/2,d=(r+a)/2,[c,u]=Ce(G(n[0],n[1]),G(l,d),-t.angle);return G(c-t.x,u-t.y)}static getPointIndexUnderCursor(t,n,i,o,r){let s=e.getPointsGlobalCoordinates(t,n),a=s.length;for(;--a>-1;){let l=s[a];if(kn(G(o,r),G(l[0],l[1]))*i.value<e.POINT_HANDLE_SIZE+1)return a}return-1}static createPointAt(t,n,i,o,r){let s=Yl(i,o,r),[a,l,d,c]=$(t,n),u=(a+d)/2,m=(l+c)/2,[p,f]=Ce(G(s[0],s[1]),G(u,m),-t.angle);return G(p-t.x,f-t.y)}static getNormalizeElementPointsAndCoords(t){let{points:n,offsetX:i,offsetY:o}=ls(t);return{points:n,x:t.x+i,y:t.y+o}}static duplicateSelectedPoints(t,n){Ge(t.selectedLinearElement?.isEditing,\"Not currently editing a linear element\");let i=n.getNonDeletedElementsMap(),{selectedPointsIndices:o,elementId:r}=t.selectedLinearElement,s=e.getElement(r,i);Ge(s,\"The linear element does not exist in the provided Scene\"),Ge(o!=null,\"There are no selected points to duplicate\");let{points:a}=s,l=[],d=!1,c=-1,u=a.reduce((m,p,f)=>{if(++c,m.push(p),o.includes(f)){let E=a[f+1];E||(d=!0),m.push(E?G((p[0]+E[0])/2,(p[1]+E[1])/2):G(p[0],p[1])),l.push(c+1),++c}return m},[]);if(n.mutateElement(s,{points:u}),d){let m=s.points[s.points.length-1];e.movePoints(s,n,new Map([[s.points.length-1,{point:G(m[0]+30,m[1]+30)}]]))}return{...t,selectedLinearElement:{...t.selectedLinearElement,selectedPointsIndices:l}}}static deletePoints(t,n,i){let o=n.state.selectedLinearElement?.isEditing&&n.state.selectedLinearElement?.lastUncommittedPoint===t.points[t.points.length-1],r=t.points.filter((c,u)=>!i.includes(u));Lt(t)&&t.polygon&&(o||i.includes(0)||i.includes(t.points.length-1))&&(r[0]=G(r[r.length-1][0],r[r.length-1][1]));let{points:a,offsetX:l,offsetY:d}=ls({points:r});e._updatePoints(t,n.scene,a,l,d)}static addPoints(t,n,i){let o=[...t.points,...i];Lt(t)&&t.polygon&&(o[0]=G(o[o.length-1][0],o[o.length-1][1]));let{points:r,offsetX:s,offsetY:a}=ls({points:o});e._updatePoints(t,n,r,s,a)}static movePoints(t,n,i,o,r){let{points:s}=t;if(Lt(t)&&t.polygon){let u=i.get(0),m=i.get(s.length-1);u?i.set(s.length-1,{point:G(u.point[0],u.point[1]),isDragging:u.isDragging}):m&&i.set(0,{point:G(m.point[0],m.point[1]),isDragging:m.isDragging})}let a=i.get(0)?.point??G(0,0),[l,d]=a,c=U(t)?[i.get(0)?.point??s[0],i.get(s.length-1)?.point??s[s.length-1]]:s.map((u,m)=>{let p=i.get(m)?.point??u;return o?.moveMidPointsWithElement&&m!==0&&m!==s.length-1&&!i.has(m)?p:G(p[0]-l,p[1]-d)});e._updatePoints(t,n,c,l,d,o,{isDragging:Array.from(i.values()).some(u=>u.isDragging),isBindingEnabled:r?.isBindingEnabled,isMidpointSnappingEnabled:r?.isMidpointSnappingEnabled})}static shouldAddMidpoint(t,n,i,o){let r=e.getElement(t.elementId,o);if(r&&U(r)||!r)return!1;let{segmentMidpoint:s}=t.initialState;if(s.added||s.value===null||s.index===null||t.initialState.origin===null)return!1;let a=t.initialState.origin,l=kn(a,G(n.x,n.y));return!(!i.selectedLinearElement?.isEditing&&l<Qp/i.zoom.value)}static addMidpoint(t,n,i,o,r){let s=r.getNonDeletedElementsMap(),a=e.getElement(t.elementId,s);if(!a)return;let{segmentMidpoint:l}=t.initialState,d={pointerDownState:t.initialState,selectedPointsIndices:t.selectedPointsIndices},c=e.createPointAt(a,s,n.x,n.y,o&&!U(a)?i.getEffectiveGridSize():null),u=[...a.points.slice(0,l.index),c,...a.points.slice(l.index)];return r.mutateElement(a,{points:u}),d.pointerDownState={...t.initialState,segmentMidpoint:{...t.initialState.segmentMidpoint,added:!0},lastClickedPoint:l.index},d.selectedPointsIndices=[l.index],d}static _updatePoints(t,n,i,o,r,s,a){if(U(t)){let l={};s?.startBinding!==void 0&&(l.startBinding=s.startBinding),s?.endBinding!==void 0&&(l.endBinding=s.endBinding),l.points=Array.from(i),n.mutateElement(t,l,{informMutation:!0,isDragging:a?.isDragging??!1,isBindingEnabled:a?.isBindingEnabled,isMidpointSnappingEnabled:a?.isMidpointSnappingEnabled})}else{let l=ds(t,i),d=ds(t,t.points),c=(l[0]+l[2])/2,u=(l[1]+l[3])/2,m=(d[0]+d[2])/2,p=(d[1]+d[3])/2,f=m-c,h=p-u,E=Ce(G(o,r),G(f,h),t.angle);n.mutateElement(t,{...s,points:i,x:t.x+E[0],y:t.y+E[1]})}}static _getShiftLockedDelta(t,n,i,o,r,s){let a=e.getPointGlobalCoordinates(t,i,n);if(U(t))return[o[0]-a[0],o[1]-a[1]];let[l,d]=Yl(o[0],o[1],r),{width:c,height:u}=Ql(a[0],a[1],l,d,s);return Ce(G(c,u),G(0,0),-t.angle)}static getBoundTextElementPosition=(t,n,i)=>{e.getPointsGlobalCoordinates(t,i).length<2&&ye(n,i,{isDeleted:!0});let r=0,s=0;if(t.points.length%2===1){let a=Math.floor(t.points.length/2),l=e.getPointGlobalCoordinates(t,t.points[a],i);r=l[0]-n.width/2,s=l[1]-n.height/2}else{let a=t.points.length/2-1,l=e.getSegmentMidPoint(t,a+1);r=l[0]-n.width/2,s=l[1]-n.height/2}return{x:r,y:s}};static getMinMaxXYWithBoundText=(t,n,i,o)=>{let[r,s,a,l]=i,d=(r+a)/2,c=(s+l)/2,{x:u,y:m}=e.getBoundTextElementPosition(t,o,n),p=u+o.width,f=m+o.height,h=G(d,c),E=Ce(G(r,s),h,t.angle),g=Ce(G(a,s),h,t.angle),x=Ce(G(u,m),h,-t.angle),w=Ce(G(p,m),h,-t.angle),y=Ce(G(u,f),h,-t.angle),b=Ce(G(p,f),h,-t.angle);return E[0]<g[0]&&E[1]>=g[1]?(r=Math.min(r,y[0]),a=Math.max(a,Math.max(w[0],b[0])),s=Math.min(s,x[1]),l=Math.max(l,b[1])):E[0]>=g[0]&&E[1]>g[1]?(r=Math.min(r,b[0]),a=Math.max(a,Math.max(x[0],w[0])),s=Math.min(s,y[1]),l=Math.max(l,w[1])):E[0]>=g[0]?(r=Math.min(r,w[0]),a=Math.max(a,y[0]),s=Math.min(s,b[1]),l=Math.max(l,x[1])):E[1]<=g[1]&&(r=Math.min(r,Math.min(w[0],x[0])),a=Math.max(a,b[0]),s=Math.min(s,w[1]),l=Math.max(l,y[1])),[r,s,a,l,d,c]};static getElementAbsoluteCoords=(t,n,i=!1)=>{let o=Ke.generateElementShape(t,null),r=Dt(o[0]),[s,a,l,d]=Bi(r),c=s+t.x,u=a+t.y,m=l+t.x,p=d+t.y,f=(c+m)/2,h=(u+p)/2,E=i&&V(t,n);return E?e.getMinMaxXYWithBoundText(t,n,[c,u,m,p],E):[c,u,m,p,f,h]};static moveFixedSegment(t,n,i,o,r){let s=r.getNonDeletedElementsMap(),a=e.getElement(t.elementId,s);if(!a||!U(a))return t;if(n&&n>0&&n<a.points.length){let l=Ue(zt(Zp(a.points[n],a.points[n-1]))),d=(a.fixedSegments??[]).reduce((p,f)=>(p[f.index]=f,p),{});d[n]={index:n,start:G(l?a.points[n-1][0]:i-a.x,l?o-a.y:a.points[n-1][1]),end:G(l?a.points[n][0]:i-a.x,l?o-a.y:a.points[n][1])};let c=Object.values(d).sort((p,f)=>p.index-f.index),u=c.map(p=>p.index).reduce((p,f)=>f<n?p+1:p,0);r.mutateElement(a,{fixedSegments:c});let m=G(a.x+(a.fixedSegments[u].start[0]+a.fixedSegments[u].end[0])/2,a.y+(a.fixedSegments[u].start[1]+a.fixedSegments[u].end[1])/2);return{...t,segmentMidPointHoveredCoords:m,initialState:{...t.initialState,segmentMidpoint:{added:!1,index:a.fixedSegments[u].index,value:m}}}}return t}static deleteFixedSegment(t,n,i){n.mutateElement(t,{fixedSegments:t.fixedSegments?.filter(o=>o.index!==i)})}},tf=e=>{let t=[...new Set(e.filter(n=>n!==null&&n!==-1))];return t=t.sort((n,i)=>n-i),t.length?t:null},Zl=(e,t,n,i,o,r,s,a,l,d,c,u)=>{let m=new Map(e.map(_=>[_,{point:G(s.points[_][0]+t,s.points[_][1]+n),isDragging:!0}]));if(!H(s))return{positions:m};let p=e.includes(0),f=e.includes(s.points.length-1),{start:h,end:E}=ss(s,m,i,o,r,a,l.state,{newArrow:!!l.state.newElement,angleLocked:d,altKey:c});if(U(s)){let _=p?h.element:f?E.element:null;return{positions:m,updates:{suggestedBinding:_?{element:_,midPoint:l.state.isMidpointSnappingEnabled?as(_,r,G(i-u.pointerOffset.x,o-u.pointerOffset.y)):void 0}:null}}}if(!p&&!f){let _={...s,points:s.points.map((F,S)=>m.get(S)?.point??F)},ie=new Map(m);if(s.startBinding){let F=r.get(s.startBinding.elementId);if(F){let S=ut(_,\"startBinding\",s.startBinding,F,r)??null;S&&ie.set(0,{point:S,isDragging:!0})}}if(s.endBinding){let F=r.get(s.endBinding.elementId);if(F){let S=ut(_,\"endBinding\",s.endBinding,F,r)??null;S&&ie.set(s.points.length-1,{point:S,isDragging:!0})}}return{positions:ie}}if(p===f)return{positions:m};let g={suggestedBinding:null};h.mode===null?g.startBinding=null:h.mode?(g.startBinding={elementId:h.element.id,mode:h.mode,...Xn(s,h.element,\"start\",r,h.focusPoint)},p&&(g.startBinding.mode===\"orbit\"||!$n(\"COMPLEX_BINDINGS\"))&&(g.suggestedBinding=h.element?{element:h.element,midPoint:Xl(G(i-u.pointerOffset.x,o-u.pointerOffset.y),h.element,r,l.state.zoom)}:null)):p&&(g.suggestedBinding=l.state.suggestedBinding),E.mode===null?g.endBinding=null:E.mode?(g.endBinding={elementId:E.element.id,mode:E.mode,...Xn(s,E.element,\"end\",r,E.focusPoint)},f&&(g.endBinding.mode===\"orbit\"||!$n(\"COMPLEX_BINDINGS\"))&&(g.suggestedBinding=E.element?{element:E.element,midPoint:Xl(G(i-u.pointerOffset.x,o-u.pointerOffset.y),E.element,r,l.state.zoom)}:null)):f&&(g.suggestedBinding=l.state.suggestedBinding);let x=p?G(s.points[0][0]+t,s.points[0][1]+n):s.points[0],w=f?G(s.points[s.points.length-1][0]+t,s.points[s.points.length-1][1]+n):s.points[s.points.length-1],y={...s,points:[x,...s.points.slice(1,-1),w],startBinding:g.startBinding===void 0?s.startBinding:g.startBinding===null?null:g.startBinding,endBinding:g.endBinding===void 0?s.endBinding:g.endBinding===null?null:g.endBinding},b=s.endBinding&&y.startBinding&&p&&y.startBinding.elementId===s.endBinding.elementId,I=s.startBinding&&y.endBinding&&f&&s.startBinding.elementId===y.endBinding.elementId,A=y.endBinding?E.element??r.get(y.endBinding.elementId):null,T=b?y.points[y.points.length-1]:I&&l.state.bindMode!==\"inside\"&&$n(\"COMPLEX_BINDINGS\")?y.points[0]:A&&ut(s,\"endBinding\",y.endBinding,A,r,f)||y.points[y.points.length-1];y.points[y.points.length-1]=T;let M=y.startBinding?h.element??r.get(y.startBinding.elementId):null,O=I&&$n(\"COMPLEX_BINDINGS\")?y.points[0]:b&&l.state.bindMode!==\"inside\"&&$n(\"COMPLEX_BINDINGS\")?T:M&&ut(s,\"startBinding\",y.startBinding,M,r,p)||y.points[0],L=!b&&!(I&&l.state.bindMode!==\"inside\"&&$n(\"COMPLEX_BINDINGS\"))&&!!A,k=kn(O,y.points[0])!==0,B=new Set(e);M&&k&&B.add(0),A&&L&&B.add(s.points.length-1);let X=Array.from(B);return{updates:g,positions:new Map(X.map(_=>[_,_===0?{point:O,isDragging:!0}:_===s.points.length-1?{point:T,isDragging:!0}:m.get(_)]))}},ql=(e,t)=>Math.atan2(t[1]-e[1],t[0]-e[0]);P();import{arrayToMap as At}from\"@excalidraw/common\";import{isPointWithinBounds as Sf,pointFrom as fs}from\"@excalidraw/math\";P();import{vectorCross as nd,vectorFromPoint as Fo}from\"@excalidraw/math\";function Jl(e){return[Math.min(e[0][0],e[1][0]),Math.min(e[0][1],e[1][1]),Math.max(e[0][0],e[1][0]),Math.max(e[0][1],e[1][1])]}function nf(e,t){return e[0]<=t[2]&&e[2]>=t[0]&&e[1]<=t[3]&&e[3]>=t[1]}var of=1e-6;function ed(e,t){let n=Fo(e[1],e[0]),i=Fo(t,e[0]),o=nd(n,i);return Math.abs(o)<of}function cs(e,t){let n=Fo(e[1],e[0]),i=Fo(t,e[0]);return nd(n,i)<0}function td(e,t){return ed(e,t[0])||ed(e,t[1])||(cs(e,t[0])?!cs(e,t[1]):cs(e,t[1]))}function id(e,t){return nf(Jl(e),Jl(t))&&td(e,t)&&td(t,e)}P();import{arrayToMap as rf}from\"@excalidraw/common\";import{getElementBounds as sf}from\"@excalidraw/element\";import{isArrowElement as af,isExcalidrawElement as lf,isFreeDrawElement as df,isLinearElement as cf,isTextElement as uf}from\"@excalidraw/element\";import{rangeIncludesValue as Ro,pointFrom as Ut,pointRotateRads as mf,rangeInclusive as No}from\"@excalidraw/math\";var pf=e=>e.type===\"diamond\"?[Ut(e.width/2,0),Ut(e.width,e.height/2),Ut(e.width/2,e.height),Ut(0,e.height/2)]:[Ut(0,0),Ut(0+e.width,0),Ut(0+e.width,e.height),Ut(0,e.height)],ff=e=>cf(e)||df(e)?e.points:pf(e),od=e=>{let t=e.reduce((n,[i,o])=>(n.minY=Math.min(n.minY,o),n.minX=Math.min(n.minX,i),n.maxX=Math.max(n.maxX,i),n.maxY=Math.max(n.maxY,o),n),{minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0,cx:0,cy:0});return t.cx=(t.maxX+t.minX)/2,t.cy=(t.maxY+t.minY)/2,t},sd=e=>{let t=ff(e),{cx:n,cy:i}=od(t),o=Ut(n,i),r=t.map(c=>mf(c,o,e.angle)),{minX:s,minY:a,maxX:l,maxY:d}=od(r);return[s+e.x,a+e.y,l+e.x,d+e.y]},rd=(e,t,n=!1)=>{let i=sd(e),o=t[0]<=i[0]&&t[2]>=i[2]&&t[1]<=i[1]&&t[3]>=i[3];return n?o?!0:i[0]<=t[0]&&i[2]>=t[2]&&i[1]<=t[1]&&i[3]>=t[3]:o},hf=(e,t)=>{let n=sd(e);return(Ro(n[0],No(t[0],t[2]))||Ro(t[0],No(n[0],n[2])))&&(Ro(n[1],No(t[1],t[3]))||Ro(t[1],No(n[1],n[3])))},ad=({elements:e,bounds:t,type:n,errorMargin:i=0})=>{lf(t)&&(t=sf(t,rf(e)));let o=[t[0]-i,t[1]-i,t[2]+i,t[3]+i],r=new Set;for(let s of e){if(r.has(s.id))continue;if(n===\"overlap\"?hf(s,o):n===\"inside\"?rd(s,o):rd(s,o,!0)){if(r.add(s.id),s.boundElements)for(let l of s.boundElements)r.add(l.id);uf(s)&&s.containerId&&r.add(s.containerId),af(s)&&(s.startBinding&&r.add(s.startBinding.elementId),s.endBinding&&r.add(s.endBinding?.elementId))}}return e.filter(s=>r.has(s.id))};P();import{arrayToMap as yf,isShallowEqual as Pf}from\"@excalidraw/common\";P();var Ef=(e,t,n)=>{let i=n.reduce((o,r)=>(r.groupIds.includes(e)&&(o[r.id]=!0),o),{});return Object.keys(i).length<2?t.selectedGroupIds[e]||t.editingGroupId===e?{selectedElementIds:t.selectedElementIds,selectedGroupIds:{...t.selectedGroupIds,[e]:!1},editingGroupId:null}:t:{editingGroupId:t.editingGroupId,selectedGroupIds:{...t.selectedGroupIds,[e]:!0},selectedElementIds:{...t.selectedElementIds,...i}}},ld=function(){let e=null,t=null,n=null,i=(r,s,a,l)=>{if(n!==void 0&&s===t&&r===e&&a.editingGroupId===n?.editingGroupId)return n;let d={};for(let m of r){let p=m.groupIds;if(a.editingGroupId){let f=p.indexOf(a.editingGroupId);f>-1&&(p=p.slice(0,f))}if(p.length>0){let f=p[p.length-1];d[f]=!0}}let c={},u=s.reduce((m,p)=>{if(p.isDeleted)return m;let f=p.groupIds.find(h=>d[h]);return f&&(m[p.id]=!0,Array.isArray(c[f])?c[f].push(p.id):c[f]=[p.id]),m},{});for(let m of Object.keys(c))c[m].length<2&&d[m]&&(d[m]=!1);return t=s,e=r,n={editingGroupId:a.editingGroupId,selectedGroupIds:d,selectedElementIds:us({...a.selectedElementIds,...u},l)},n},o=(r,s,a,l)=>{let d=l?l.scene.getSelectedElements({selectedElementIds:r.selectedElementIds,elements:s}):St(s,r);return d.length?i(d,s,r,a):{selectedGroupIds:{},editingGroupId:null,selectedElementIds:us(r.selectedElementIds,a)}};return o.clearCache=()=>{t=null,e=null,n=null},o}(),gf=(e,t)=>ms(e,t)!=null,ms=(e,t)=>t.groupIds.filter(n=>n!==e.editingGroupId).find(n=>e.selectedGroupIds[n]),xf=e=>Object.entries(e.selectedGroupIds).filter(([t,n])=>n).map(([t,n])=>t),dd=(e,t)=>{let n={...t,selectedGroupIds:{}};for(let i of e){let o=i.groupIds;if(t.editingGroupId){let r=o.indexOf(t.editingGroupId);r>-1&&(o=o.slice(0,r))}if(o.length>0){let r=o[o.length-1];n={...n,...Ef(r,n,e)}}}return n.selectedGroupIds},r0=(e,t)=>({...e,editingGroupId:t.groupIds.length?t.groupIds[0]:null,selectedGroupIds:{},selectedElementIds:{[t.id]:!0}}),wf=(e,t)=>e.groupIds.includes(t),Oe=(e,t)=>{let n=[];for(let i of e.values())wf(i,t)&&n.push(i);return n},bf=(e,t)=>e.groupIds.find(n=>t[n]),s0=(e,t,n)=>{let i=[...e],o=n?i.indexOf(n):-1,r=o>-1?o:i.length;return i.splice(r,0,t),i},a0=(e,t)=>e.filter(n=>!t[n]),l0=(e,t)=>{let n=new Map;return e.forEach(i=>{let o=i.groupIds.length===0?i.id:i.groupIds[i.groupIds.length-1],r=n.get(o)||[],s=V(i,t);s&&r.push(s),n.set(o,[...r,i])}),Array.from(n.values())},cd=e=>{let t=new Set;for(let[,n]of e)if(!n.isDeleted)for(let i of n.groupIds??[])t.add(i);return t},ud=e=>{let t=e.flatMap(o=>o.groupIds),n=new Map,i=0;for(let o of t)n.set(o,(n.get(o)??0)+1),n.get(o)>i&&(i=n.get(o));return i===e.length},md=e=>e.groupIds.length>0,pd=(e,t,n)=>{let i=[...e],o=t?e.indexOf(t):-1,r=o>-1?o:e.length;for(let s=0;s<r;s++)i[s]=n(i[s]);return i},zo=(e,t,n)=>{let i=xf(n),o=e.filter(u=>!ce(u)),r=new Map,s=new Map,a=u=>{let m=s.get(u.id)||[],p=V(u,t);p&&m.push(p),s.set(u.id,[...m,u])},l=(u,m)=>{let p=r.get(m)||[],f=V(u,t);f&&p.push(f),r.set(m,[...p,u])},d=(u,m)=>{let p=u.groupIds.indexOf(m,0);return u.groupIds.slice(0,p).length>0?l(u,u.groupIds[p-1]):a(u)},c=e.every(u=>gf(n,u));return o.forEach(u=>{let m=bf(u,n.selectedGroupIds);m?i.length===1&&c?d(u,m):l(u,m):a(u)}),Array.from(r.values()).concat(Array.from(s.values()))};var fd=e=>{let t=new Set;return e.forEach(n=>{Z(n)&&t.add(n.id)}),e.filter(n=>!(n.frameId&&t.has(n.frameId)))},ps=(e,t,n,i=!0)=>{let[o,r,s,a]=$(t,n),l=e.filter(d=>{let[c,u,m,p]=he(d,n),f=Wt(d,n);if(f){let[h,E,g,x]=he(f,n);c=Math.max(h,c),u=Math.max(E,u),m=Math.min(g,m),p=Math.min(x,p)}return d.locked===!1&&d.type!==\"selection\"&&!ce(d)&&o<=c&&r<=u&&s>=m&&a>=p});return l=i?fd(l):l,l=l.filter(d=>{let c=Wt(d,n);return c?fn(d,c,n):!0}),l},x0=(e,t,n,i)=>{let o=new Set(t.map(r=>r.id));return e.filter(r=>{let s=hd(r,n.width,n.height,n,i);return!o.has(r.id)&&s})},w0=function(){let e=null,t=null,n=null,i=(o,r)=>(n!=null&&o===e&&r.selectedElementIds===t||(n=o.some(s=>r.selectedElementIds[s.id]),e=o,t=r.selectedElementIds),n);return i.clearCache=()=>{e=null,t=null,n=null},i}(),St=(e,t,n)=>{let i=new Set,o=[];for(let r of e.values()){if(t.selectedElementIds[r.id]){o.push(r),i.add(r.id);continue}if(n?.includeBoundTextElement&&ce(r)&&t.selectedElementIds[r?.containerId]){o.push(r),i.add(r.id);continue}}if(n?.includeElementsInFrames){let r=[];return o.forEach(s=>{Z(s)&&hn(e,s.id).forEach(a=>!i.has(a.id)&&r.push(a)),r.push(s)}),r}return o},b0=(e,t)=>t.editingTextElement?[t.editingTextElement]:t.newElement?[t.newElement]:St(e,t,{includeBoundTextElement:!0}),us=(e,t)=>Pf(t.selectedElementIds,e)?t.selectedElementIds:e,If=(e,t)=>{let n=e.filter(q);if(n.length===1){let i=n[0],o=i.boundElements?.map(s=>s.id)??[];if(e.every(s=>s.id===i.id||o.includes(s.id)))return new C(i,yf(t))}return null},y0=(e,t,n)=>({selectedLinearElement:If(e,t),...ld({editingGroupId:n.editingGroupId,selectedElementIds:fd(e).reduce((i,o)=>(ce(o)||(i[o.id]=!0),i),{})},t,n,null)});var Ed=(e,t,n)=>{let i=At(e);for(let o of t)if(o.frameId){let r=n.get(o.id),s=n.get(o.frameId),a=r&&i.get(r);a&&ye(a,i,{frameId:s??null})}};function Vn(e,t,n){let i=hs(t,n),o=hs(e,n);return i.some(s=>o.some(a=>id(s,a)))}var gd=(e,t,n)=>Ho(ps(e,t,n,!1)).filter(i=>!Z(i)&&!i.frameId||i.frameId===t.id),Es=(e,t,n)=>ps([t],e,n).some(i=>i.id===t.id),O0=(e,t)=>{let n=At(e);return e.filter(i=>Vn(i,t,n))},En=(e,t,n)=>{let[i,o,r,s]=$(t,n),[a,l,d,c]=ke(e);return i<=a&&o<=l&&r>=d&&s>=c},fn=(e,t,n)=>En([e],t,n)||Vn(e,t,n)||Es(e,t,n),k0=(e,t,n)=>{let[i,o,r,s]=$(t,n);return Sf(fs(i,o),fs(e.x,e.y),fs(r,s))},F0=(e,t,n)=>{let i=At(e),o=t.flatMap(r=>Oe(e,r));return o.length===0?!0:!!o.find(r=>En([r],n,i)||Vn(r,n,i))},R0=(e,t,n)=>{let i=At(e),o=t.flatMap(r=>Oe(e,r));return o.length===0?!0:o.find(r=>En([r],n,i)||Vn(r,n,i))===void 0},N0=e=>{let t=new Map;for(let n of e){let i=Z(n)?n.id:n.frameId;i&&!t.has(i)&&t.set(i,hn(e,i))}return t},hn=(e,t)=>{let n=[];for(let i of e.values())i.frameId===t&&n.push(i);return n},Af=e=>e.filter(t=>Z(t)),z0=e=>{let t=At(Af(e));return e.filter(n=>t.has(n.id)||!n.frameId||!t.has(n.frameId))},H0=(e,t,n,i)=>{let o=hn(e,t.id),r=new Set(o),s=new Set([...gd(e,t,i),...o.filter(m=>Es(m,t,i))]),a=o.filter(m=>!s.has(m)),l=new Set(Array.from(s).flatMap(m=>m.groupIds));for(let m of a)if(!Vn(m,t,i))m.groupIds.length===0&&r.delete(m);else if(m.groupIds.length>0)for(let p of m.groupIds)l.add(p);for(let m of a)if(m.groupIds.length>0){let p=!0;for(let f of m.groupIds)l.has(f)&&(p=!1);p&&r.delete(m)}let d=Array.from(s).filter(m=>m.groupIds.length===0);for(let m of d)r.add(m);let c=Array.from(s).filter(m=>m.groupIds.length>0),u=dd(c,n);for(let[m,p]of Object.entries(u))if(p){let f=Oe(e,m);if(En(f,t,i))for(let h of f)r.add(h)}return[...r].filter(m=>!(Q(m)&&m.containerId))},_0=(e,t,n)=>Mf(Ho(e,gd(e,t,n)),t,n),Mf=(e,t,n)=>{let i=[],o=new Map;for(let r of e){let s=!1;if(r.groupIds.length>0){if(r.groupIds.some(a=>o.get(a)))s=!0;else{let a=new Set(r.groupIds.flatMap(l=>Oe(n,l)));s=!En(Array.from(a),t,n)}r.groupIds.forEach(a=>{o.set(a,s)})}s||i.push(r)}return i},Wt=(e,t)=>e.frameId&&t.get(e.frameId)||null,U0=(e,t)=>{let n=new Set,i=At(e);e=Ho(e);for(let s of e)Z(s)&&s.id!==t.id&&n.add(s.id);let o=new Set,r=[];for(let s of e)if(!(Z(s)||s.frameId&&n.has(s.frameId)))if(s.groupIds.length){let a=s.groupIds.at(-1);if(!o.has(a)){o.add(a);let l=Oe(e,a);if(l.some(d=>fn(d,t,i)))for(let d of l)r.push(d)}}else fn(s,t,i)&&r.push(s);return r},Tf=(e,t,n,i)=>{let o=At(e),r=new Map;for(let d of e.values())d.frameId===n.id&&r.set(d.id,!0);let s=new Set(t.map(d=>d.id)),a=[],l=new Set;for(let d of t)Z(d)&&d.id!==n.id&&l.add(d.id);for(let d of Ho(e,t)){if(Z(d)||d.frameId&&l.has(d.frameId)||d.frameId&&i.selectedElementIds[d.id]&&i.selectedElementIds[d.frameId])continue;r.has(d.id)||a.push(d);let c=V(d,o);c&&!s.has(c.id)&&!r.has(c.id)&&a.push(c)}for(let d of a)ye(d,o,{frameId:n.id});return e},xd=(e,t)=>{let n=new Map,i=new Map;for(let o of e)if(o.frameId){n.set(o.id,o);let r=i.get(o.frameId)||[];r.push(o);let s=V(o,t);s&&(n.set(s.id,s),r.push(s)),i.set(o.frameId,r)}for(let[,o]of n)ye(o,t,{frameId:null})},vf=(e,t)=>{let n=hn(e,t.id);return xd(n,At(e)),e},W0=(e,t,n,i)=>Tf(vf(e,n),t,n,i.state).slice(),Y0=(e,t,n)=>{let i=n.scene.getSelectedElements({selectedElementIds:t.selectedElementIds,elements:e}),o=new Set(i);if(t.editingGroupId)for(let a of i)a.groupIds.length===0?o.add(a):a.groupIds.flatMap(l=>Oe(e,l)).forEach(l=>o.add(l));let r=new Set,s=At(e);return o.forEach(a=>{a.frameId&&!Z(a)&&!wd(a,s,t)&&r.add(a)}),r.size>0&&xd(r,s),e},Ho=(e,t)=>{let n=new Set,i=t||e;for(let s of i.values()){let a=s.groupIds[s.groupIds.length-1];a&&n.add(a)}let o=new Set;for(let s of n)Oe(e,s).some(a=>Z(a))&&o.add(s);let r=[];for(let s of i.values())o.has(s.groupIds[s.groupIds.length-1])||r.push(s);return r},Df=(e,t,n)=>{let i=Q(e)&&Me(e,t)||e;return i.frameId&&n.selectedElementIds[i.id]&&n.selectedElementIds[i.frameId]?Wt(i,t):n.selectedElementIds[i.id]&&n.selectedElementsAreBeingDragged?n.frameToHighlight:Wt(i,t)},wd=(e,t,n,i)=>{let o=i?.targetFrame??Df(e,t,n);if(!o)return!1;let r=Q(e)&&Me(e,t)||e,s=l=>{i?.checkedGroups&&r.groupIds.forEach(d=>{i.checkedGroups?.set(d,l)})};if(!n.selectedElementIds[r.id]||!n.selectedElementsAreBeingDragged||n.selectedElementIds[r.id]&&n.selectedElementIds[o.id])return!0;if(r.groupIds.length===0)return fn(r,o,t);for(let l of r.groupIds)if(i?.checkedGroups?.has(l))return i.checkedGroups.get(l);let a=new Set(r.groupIds.filter(l=>i?.checkedGroups?!i.checkedGroups.has(l):!0).flatMap(l=>Oe(t,l)));if(n.editingGroupId&&n.selectedElementsAreBeingDragged){let l=new Set(St(t,n));if(n.frameToHighlight!==null)return!0;l.forEach(c=>{a.delete(c)})}for(let l of a)if(Z(l))return s(!1),!1;for(let l of a)if(fn(l,o,t))return s(!0),!0;return!1},j0=(e,t,n,i,o)=>{if(!n.frameRendering||!n.frameRendering.clip)return!1;let r=Vn(e,t,i)||Es(e,t,i);if(r){for(let s of e.groupIds)o?.set(s,!0);return!0}if(!r&&e.groupIds.length>0&&!En([e],t,i)){let s=!1;if(n.selectedElementsAreBeingDragged)s=wd(e,i,n,{targetFrame:t,checkedGroups:o});else{s=e.frameId===t.id;for(let a of e.groupIds)o?.set(a,s)}for(let a of e.groupIds)o?.set(a,s);return s}return!1},Bf=\"Frame\",Lf=\"AI Frame\",Cf=e=>co(e)?Bf:Lf,X0=e=>e.name===null?Cf(e):e.name,$0=(e,t)=>ad({elements:e,bounds:t,type:\"overlap\"}).filter(n=>!n.frameId||n.frameId===t.id),V0=e=>{let t=At(e);return e.length>1&&e.some(n=>n.frameId&&t.has(n.frameId))};var Uf=(e,t)=>vn(e)&&!t.imageCache.has(e.fileId),jo=e=>{switch(e.type){case\"freedraw\":return e.strokeWidth*12;case\"text\":return e.fontSize/2;case\"arrow\":return e.endArrowhead||e.endArrowhead?40:20;default:return 20}},Wf=(e,t,n,i,o=1)=>{let r=(t?.opacity??100)*e.opacity/1e4*o;return(n.has(e.id)||i&&i.some(s=>s.id===e.id)||t&&n.has(t.id))&&(r*=kf/100),r},Yf=(e,t,n)=>{let r=jo(e),[s,a,l,d]=$(e,t),c=q(e)||Se(e)?gn(s,l):e.width,u=q(e)||Se(e)?gn(a,d):e.height,m=c*window.devicePixelRatio+r*2,p=u*window.devicePixelRatio+r*2,f=n.value;return(m*f>32767||p*f>32767)&&(f=Math.min(32767/m,32767/p)),m*p*f*f>16777216&&(f=Math.sqrt(16777216/(m*p))),m=Math.floor(m*f),p=Math.floor(p*f),{width:m,height:p,scale:f}},Pd=(e,t,n,i,o)=>{let r=document.createElement(\"canvas\"),s=r.getContext(\"2d\"),a=jo(e),{width:l,height:d,scale:c}=Yf(e,t,n);if(!l||!d)return null;r.width=l,r.height=d;let u=-100,m=0;if(q(e)||Se(e)){let[g,x]=$(e,t);u=e.x>g?gn(e.x,g)*window.devicePixelRatio*c:0,m=e.y>x?gn(e.y,x)*window.devicePixelRatio*c:0,s.translate(u,m)}s.save(),s.translate(a*c,a*c),s.scale(window.devicePixelRatio*c,window.devicePixelRatio*c);let p=Tn.canvas(r);Wo(e,p,s,i),s.restore();let f=V(e,t),h=document.createElement(\"canvas\"),E=h.getContext(\"2d\");if(H(e)&&f){let[g,x,w,y]=$(e,t),b=Math.max(gn(g,w),gn(x,y));h.width=b*window.devicePixelRatio*c+a*c*10,h.height=b*window.devicePixelRatio*c+a*c*10,E.translate(h.width/2,h.height/2),E.rotate(e.angle),E.drawImage(r,-r.width/2,-r.height/2,r.width,r.height);let[,,,,I,A]=$(f,t);E.rotate(-e.angle);let T=(h.width-r.width)/2,M=(h.height-r.height)/2,O=h.width/2-(I-g)*window.devicePixelRatio*c-T-a*c,L=h.height/2-(A-x)*window.devicePixelRatio*c-M-a*c;E.translate(-O,-L),E.clearRect(-(f.width/2+Uo)*window.devicePixelRatio*c,-(f.height/2+Uo)*window.devicePixelRatio*c,(f.width+Uo*2)*window.devicePixelRatio*c,(f.height+Uo*2)*window.devicePixelRatio*c)}return{element:e,canvas:r,theme:o.theme,scale:c,zoomValue:n.value,canvasOffsetX:u,canvasOffsetY:m,boundTextElementVersion:V(e,t)?.version||null,containingFrameOpacity:Wt(e,t)?.opacity||100,boundTextCanvas:h,angle:e.angle,imageCrop:we(e)?e.crop:null}},d1=14,Id=typeof document<\"u\"?document.createElement(\"img\"):{src:\"\"};Id.src=`data:${ws.svg},${encodeURIComponent('<svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"fas\" data-icon=\"image\" class=\"svg-inline--fa fa-image fa-w-16\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path fill=\"#888\" d=\"M464 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM112 120c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zM64 384h384V272l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L208 320l-55.515-55.515c-4.686-4.686-12.284-4.686-16.971 0L64 336v48z\"></path></svg>')}`;var Sd=typeof document<\"u\"?document.createElement(\"img\"):{src:\"\"};Sd.src=`data:${ws.svg},${encodeURIComponent('<svg viewBox=\"0 0 668 668\" xmlns=\"http://www.w3.org/2000/svg\" xml:space=\"preserve\" style=\"fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2\"><path d=\"M464 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48ZM112 120c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56ZM64 384h384V272l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L208 320l-55.515-55.515c-4.686-4.686-12.284-4.686-16.971 0L64 336v48Z\" style=\"fill:#888;fill-rule:nonzero\" transform=\"matrix(.81709 0 0 .81709 124.825 145.825)\"/><path d=\"M256 8C119.034 8 8 119.033 8 256c0 136.967 111.034 248 248 248s248-111.034 248-248S392.967 8 256 8Zm130.108 117.892c65.448 65.448 70 165.481 20.677 235.637L150.47 105.216c70.204-49.356 170.226-44.735 235.638 20.676ZM125.892 386.108c-65.448-65.448-70-165.481-20.677-235.637L361.53 406.784c-70.203 49.356-170.226 44.736-235.638-20.676Z\" style=\"fill:#888;fill-rule:nonzero\" transform=\"matrix(.30366 0 0 .30366 506.822 60.065)\"/></svg>')}`;var jf=(e,t,n)=>{t.fillStyle=n===Zn.DARK?\"#2E2E2E\":\"#E7E7E7\",t.fillRect(0,0,e.width,e.height);let i=Math.min(e.width,e.height),o=Math.min(i,Math.min(i*.4,100));t.drawImage(e.status===\"error\"?Sd:Id,e.width/2-o/2,e.height/2-o/2,o,o)},Wo=(e,t,n,i)=>{switch(e.type){case\"rectangle\":case\"iframe\":case\"embeddable\":case\"diamond\":case\"ellipse\":{n.lineJoin=\"round\",n.lineCap=\"round\",t.draw(Ke.generateElementShape(e,i));break}case\"arrow\":case\"line\":{n.lineJoin=\"round\",n.lineCap=\"round\",Ke.generateElementShape(e,i).forEach(o=>{t.draw(o)});break}case\"freedraw\":{n.save();let o=Ke.generateElementShape(e,i);for(let r of o)typeof r==\"string\"?(n.fillStyle=i.theme===Zn.DARK?Yo(e.strokeColor):e.strokeColor,n.fill(new Path2D(r))):t.draw(r);n.restore();break}case\"image\":{n.save();let o=e.fileId!==null?i.imageCache.get(e.fileId):null,r=vn(e)?o?.image:void 0;if(r!=null&&!(r instanceof Promise)){e.roundness&&n.roundRect&&(n.beginPath(),n.roundRect(0,0,e.width,e.height,Gt(Math.min(e.width,e.height),e)),n.clip());let{x:s,y:a,width:l,height:d}=e.crop?e.crop:{x:0,y:0,width:r.naturalWidth,height:r.naturalHeight},c=i.theme===Zn.DARK&&o?.mimeType===ws.svg;if(c&&_f){let u=window.devicePixelRatio||1,m=document.createElement(\"canvas\");m.width=e.width*u,m.height=e.height*u;let p=m.getContext(\"2d\");if(p){p.scale(u,u),p.drawImage(r,s,a,l,d,0,0,e.width,e.height);let f=p.getImageData(0,0,m.width,m.height),h=f.data;for(let E=0;E<h.length;E+=4)h[E]=255-h[E],h[E+1]=255-h[E+1],h[E+2]=255-h[E+2];p.putImageData(f,0,0),n.drawImage(m,0,0,m.width,m.height,0,0,e.width,e.height)}}else c&&(n.filter=Ff),n.drawImage(r,s,a,l,d,0,0,e.width,e.height)}else jf(e,n,i.theme);n.restore();break}default:if(Q(e)){let o=Nf(e.text),r=o&&!n.canvas.isConnected;r&&document.body.appendChild(n.canvas),n.canvas.setAttribute(\"dir\",o?\"rtl\":\"ltr\"),n.save(),n.font=Rf(e),n.fillStyle=i.theme===Zn.DARK?Yo(e.strokeColor):e.strokeColor,n.textAlign=e.textAlign;let s=e.text.replace(/\\r\\n?/g,`\n`).split(`\n`),a=e.textAlign===\"center\"?e.width/2:e.textAlign===\"right\"?e.width:0,l=ho(e.fontSize,e.lineHeight),d=zf(e.fontFamily,e.fontSize,l);for(let c=0;c<s.length;c++)n.fillText(s[c],a,c*l+d);n.restore(),r&&n.canvas.remove()}else throw new Error(`Unimplemented type ${e.type}`)}},Ci=new WeakMap,yd=(e,t,n,i)=>{let o=n?i.zoom:{value:1},r=Ci.get(e),s=r&&r.zoomValue!==o.value&&!i?.shouldCacheIgnoreZoom,a=V(e,t),l=a?.version||null,d=we(e)?e.crop:null,c=Wt(e,t)?.opacity||100;if(!r||s||r.theme!==i.theme||r.boundTextElementVersion!==l||r.imageCrop!==d||r.containingFrameOpacity!==c||H(e)&&a&&e.angle!==r.angle){let u=Pd(e,t,o,n,i);return u?(Ci.set(e,u),u):null}return r},xs=(e,t,n,i,o)=>{let r=e.element,s=jo(r),a=e.scale,[l,d,c,u]=$(r,o),m=((l+c)/2+i.scrollX)*window.devicePixelRatio,p=((d+u)/2+i.scrollY)*window.devicePixelRatio;t.save(),t.scale(1/window.devicePixelRatio,1/window.devicePixelRatio);let f=V(r,o);if(H(r)&&f){let h=(e.boundTextCanvas.width-e.canvas.width)/2,E=(e.boundTextCanvas.height-e.canvas.height)/2;t.translate(m,p),t.drawImage(e.boundTextCanvas,-(c-l)/2*window.devicePixelRatio-h/a-s,-(u-d)/2*window.devicePixelRatio-E/a-s,e.boundTextCanvas.width/a,e.boundTextCanvas.height/a)}else if(t.translate(m,p),t.rotate(r.angle),\"scale\"in e.element&&!Uf(r,n)&&t.scale(e.element.scale[0],e.element.scale[1]),t.translate(-m,-p),t.drawImage(e.canvas,(l+i.scrollX)*window.devicePixelRatio-s*e.scale/e.scale,(d+i.scrollY)*window.devicePixelRatio-s*e.scale/e.scale,e.canvas.width/e.scale,e.canvas.height/e.scale),v.VITE_APP_DEBUG_ENABLE_TEXT_CONTAINER_BOUNDING_BOX===\"true\"&&gt(r)){let h=V(r,o),E=Nr(r);t.strokeStyle=\"#c92a2a\",t.lineWidth=3,t.strokeRect((E.x+i.scrollX)*window.devicePixelRatio,(E.y+i.scrollY)*window.devicePixelRatio,dt(r,h)*window.devicePixelRatio,bi(r,h)*window.devicePixelRatio)}t.restore()},c1=(e,t,n,i)=>{t.save(),t.translate(e.x+n.scrollX,e.y+n.scrollY),t.fillStyle=\"rgba(0, 0, 200, 0.04)\";let o=.5/n.zoom.value;t.fillRect(o,o,e.width,e.height),t.lineWidth=1/n.zoom.value,t.strokeStyle=i,t.strokeRect(o,o,e.width,e.height),t.restore()},u1=(e,t,n,i,o,r,s)=>{let a=s.openDialog?.name===\"elementLinkSelector\"&&!s.selectedElementIds[e.id]&&!s.hoveredElementIds[e.id];switch(o.globalAlpha=Wf(e,Wt(e,t),r.elementsPendingErasure,r.pendingFlowchartNodes,a?Of:1),e.type){case\"magicframe\":case\"frame\":{s.frameRendering.enabled&&s.frameRendering.outline&&(o.save(),o.translate(e.x+s.scrollX,e.y+s.scrollY),o.fillStyle=\"rgba(0, 0, 200, 0.04)\",o.lineWidth=Li.strokeWidth/s.zoom.value,o.strokeStyle=s.theme===Zn.DARK?Yo(Li.strokeColor):Li.strokeColor,za(e)&&(o.strokeStyle=s.theme===Zn.LIGHT?\"#7affd7\":Yo(\"#1d8264\")),Li.radius&&o.roundRect?(o.beginPath(),o.roundRect(0,0,e.width,e.height,Li.radius/s.zoom.value),o.stroke(),o.closePath()):o.strokeRect(0,0,e.width,e.height),o.restore());break}case\"freedraw\":{if(r.isExporting){let[l,d,c,u]=$(e,t),m=(l+c)/2+s.scrollX,p=(d+u)/2+s.scrollY,f=(c-l)/2-(e.x-l),h=(u-d)/2-(e.y-d);o.save(),o.translate(m,p),o.rotate(e.angle),o.translate(-f,-h),Wo(e,i,o,r),o.restore()}else{let l=yd(e,n,r,s);if(!l)return;xs(l,o,r,s,n)}break}case\"rectangle\":case\"diamond\":case\"ellipse\":case\"line\":case\"arrow\":case\"image\":case\"text\":case\"iframe\":case\"embeddable\":{if(r.isExporting){let[l,d,c,u]=$(e,t),m=(l+c)/2+s.scrollX,p=(d+u)/2+s.scrollY,f=(c-l)/2-(e.x-l),h=(u-d)/2-(e.y-d);if(Q(e)){let g=Me(e,t);if(H(g)){let x=C.getBoundTextElementPosition(g,e,t);f=(c-l)/2-(x.x-l),h=(u-d)/2-(x.y-d)}}o.save(),o.translate(m,p);let E=V(e,t);if(H(e)&&E){let g=document.createElement(\"canvas\"),x=g.getContext(\"2d\"),w=Math.max(gn(l,c),gn(d,u)),y=jo(e);g.width=w*s.exportScale+y*10*s.exportScale,g.height=w*s.exportScale+y*10*s.exportScale,x.translate(g.width/2,g.height/2),x.scale(s.exportScale,s.exportScale),f=e.width/2-(e.x-l),h=e.height/2-(e.y-d),x.rotate(e.angle);let b=Tn.canvas(g);x.translate(-f,-h),Wo(e,b,x,r),x.translate(f,h),x.rotate(-e.angle);let[,,,,I,A]=$(E,t),T=(l+c)/2-I,M=(d+u)/2-A;x.translate(-T,-M),x.clearRect(-E.width/2,-E.height/2,E.width,E.height),o.scale(1/s.exportScale,1/s.exportScale),o.drawImage(g,-g.width/2,-g.height/2,g.width,g.height)}else o.rotate(e.angle),e.type===\"image\"&&o.scale(e.scale[0],e.scale[1]),o.translate(-f,-h),Wo(e,i,o,r);o.restore()}else{let l=yd(e,n,r,s);if(!l)return;let d=o.imageSmoothingEnabled;if(!s?.shouldCacheIgnoreZoom&&(!e.angle||Gf(e.angle))&&(o.imageSmoothingEnabled=!1),e.id===s.croppingElementId&&we(l.element)&&l.element.crop!==null){o.save(),o.globalAlpha=.1;let c=Pd(Fa(l.element,t),n,s.zoom,r,s);c&&xs(c,o,r,s,n),o.restore()}xs(l,o,r,s,n),o.imageSmoothingEnabled=d}break}default:throw new Error(`Unimplemented type ${e.type}`)}o.globalAlpha=1};function m1(e,t,n){let i=he({...e,angle:0},n),o=_o((i[0]+i[2])/2,(i[1]+i[3])/2);return Hf(t.length>=2,\"Freepath outline must have at least 2 points\"),t.slice(2).reduce((r,s)=>(r.push(bd(r[r.length-1][1],gs(_o(s[0]+e.x,s[1]+e.y),o,e.angle))),r),[bd(gs(_o(t[0][0]+e.x,t[0][1]+e.y),o,e.angle),gs(_o(t[1][0]+e.x,t[1][1]+e.y),o,e.angle))])}P();var h1=e=>e===\"rectangle\"||e===\"iframe\"||e===\"embeddable\"||e===\"ellipse\"||e===\"diamond\"||e===\"line\"||e===\"freedraw\",E1=e=>e===\"rectangle\"||e===\"ellipse\"||e===\"diamond\"||e===\"freedraw\"||e===\"arrow\"||e===\"line\"||e===\"text\"||e===\"embeddable\",g1=e=>e===\"rectangle\"||e===\"iframe\"||e===\"embeddable\"||e===\"ellipse\"||e===\"diamond\"||e===\"freedraw\"||e===\"arrow\"||e===\"line\",x1=e=>e===\"rectangle\"||e===\"iframe\"||e===\"embeddable\"||e===\"ellipse\"||e===\"diamond\"||e===\"arrow\"||e===\"line\",Ad=e=>e===\"rectangle\"||e===\"iframe\"||e===\"embeddable\"||e===\"line\"||e===\"diamond\"||e===\"image\",w1=e=>e===\"arrow\",b1=e=>e===\"arrow\";var Ke=class e{static rg=new Je;static cache=new WeakMap;static get=(t,n)=>{let i=e.cache.get(t);if(i&&(n===null||i.theme===n))return i.shape};static delete=t=>{e.cache.delete(t),Ci.delete(t)};static destroy=()=>{e.cache=new WeakMap};static generateElementShape=(t,n)=>{let i=n?.isExporting?void 0:e.get(t,n?n.theme:null);if(i!==void 0)return i;Ci.delete(t);let o=Qf(t,e.rg,n||{isExporting:!1,canvasBackgroundColor:Vf.white,embedsValidationStatus:null,theme:ys.LIGHT});return n?.isExporting||e.cache.set(t,{shape:o,theme:n?.theme||ys.LIGHT}),o}},qf=e=>[8,8+e],Bd=e=>[1.5,6+e];function Kf(e){let t=e.roughness,n=Math.max(e.width,e.height),i=Math.min(e.width,e.height);return i>=20&&n>=50||i>=15&&e.roundness&&Ad(e.type)||q(e)&&n>=50?t:Math.min(t/(n<10?3:2),2.5)}var We=(e,t=!1,n=!1)=>{let i={seed:e.seed,strokeLineDash:e.strokeStyle===\"dashed\"?qf(e.strokeWidth):e.strokeStyle===\"dotted\"?Bd(e.strokeWidth):void 0,disableMultiStroke:e.strokeStyle!==\"solid\",strokeWidth:e.strokeStyle!==\"solid\"?e.strokeWidth+.5:e.strokeWidth,fillWeight:e.strokeWidth/2,hachureGap:e.strokeWidth*4,roughness:Kf(e),stroke:n?ki(e.strokeColor):e.strokeColor,preserveVertices:t||e.roughness<Xf.cartoonist};switch(e.type){case\"rectangle\":case\"iframe\":case\"embeddable\":case\"diamond\":case\"ellipse\":return i.fillStyle=e.fillStyle,i.fill=Oi(e.backgroundColor)?void 0:n?ki(e.backgroundColor):e.backgroundColor,e.type===\"ellipse\"&&(i.curveFitting=1),i;case\"line\":case\"freedraw\":return Bn(e.points)&&(i.fillStyle=e.fillStyle,i.fill=e.backgroundColor===\"transparent\"?void 0:n?ki(e.backgroundColor):e.backgroundColor),i;case\"arrow\":return i;default:throw new Error(`Unimplemented type ${e.type}`)}},Td=(e,t,n)=>lo(e)&&(t||Na(e)&&n?.get(e.id)!==!0)&&Oi(e.backgroundColor)&&Oi(e.strokeColor)?{...e,roughness:0,backgroundColor:\"#d3d3d3\",fillStyle:\"solid\"}:ao(e)?{...e,strokeColor:Oi(e.strokeColor)?\"#000000\":e.strokeColor,backgroundColor:Oi(e.backgroundColor)?\"#f4f4f6\":e.backgroundColor}:e,Gi=(e,t,n)=>{if(t===null)return[];let[,,i,o,r,s]=t;return[e.line(i,o,r,s,n)]},Xo=(e,t,n)=>{if(t===null)return[];let[i,o,r,s,a,l]=t;return[e.line(r,s,i,o,n),e.line(a,l,i,o,n)]},Fn=(e,t)=>{let n={...t};if(e.strokeStyle===\"dotted\"){let i=Bd(e.strokeWidth-1);n.strokeLineDash=[i[0],i[1]-1]}else delete n.strokeLineDash;return n.roughness=Math.min(1,n.roughness||0),n},bs=(e,t,n,i,o,r=1)=>{if(i===null)return[];let[s,a,l]=i,d={...t,fill:o,fillStyle:\"solid\",stroke:n,roughness:Math.min(.5,t.roughness||0)};return delete d.strokeLineDash,[e.circle(s,a,l*r,d)]},vd=(e,t,n,i,o,r,s,a)=>{if(i===null)return[];let l=a?ki(e.strokeColor):e.strokeColor,d=a?ki(s):s,c=-.25,u=.8;switch(i){case\"circle\":case\"circle_outline\":return bs(o,r,l,Fe(e,t,n,i),i===\"circle_outline\"?d:l);case\"triangle\":case\"triangle_outline\":{let m=Fe(e,t,n,i);if(m===null)return[];let[p,f,h,E,g,x]=m,w={...r,fill:i===\"triangle_outline\"?d:l,fillStyle:\"solid\",roughness:Math.min(1,r.roughness||0)};return delete w.strokeLineDash,[o.polygon([[p,f],[h,E],[g,x],[p,f]],w)]}case\"diamond\":case\"diamond_outline\":{let m=Fe(e,t,n,i);if(m===null)return[];let[p,f,h,E,g,x,w,y]=m,b={...r,fill:i===\"diamond_outline\"?d:l,fillStyle:\"solid\",roughness:Math.min(1,r.roughness||0)};return delete b.strokeLineDash,[o.polygon([[p,f],[h,E],[g,x],[w,y],[p,f]],b)]}case\"cardinality_one\":return Gi(o,Fe(e,t,n,i),Fn(e,r));case\"cardinality_many\":return Xo(o,Fe(e,t,n,i),Fn(e,r));case\"cardinality_one_or_many\":{let m=Fn(e,r);return[...Xo(o,Fe(e,t,n,\"cardinality_many\"),m),...Gi(o,Fe(e,t,n,\"cardinality_one\",c),m)]}case\"cardinality_exactly_one\":{let m=Fn(e,r);return[...Gi(o,Fe(e,t,n,\"cardinality_one\",-.5),m),...Gi(o,Fe(e,t,n,\"cardinality_one\"),m)]}case\"cardinality_zero_or_one\":{let m=Fn(e,r);return[...bs(o,r,l,Fe(e,t,n,\"circle_outline\",1.5),d,u),...Gi(o,Fe(e,t,n,\"cardinality_one\",-.5),m)]}case\"cardinality_zero_or_many\":{let m=Fn(e,r);return[...Xo(o,Fe(e,t,n,\"cardinality_many\"),m),...bs(o,r,l,Fe(e,t,n,\"circle_outline\",1.5),d,u)]}case\"bar\":case\"arrow\":default:return Xo(o,Fe(e,t,n,i),Fn(e,r))}},qa=e=>{let t=new Je,n={seed:e.seed,disableMultiStroke:!0,disableMultiStrokeFill:!0,roughness:0,preserveVertices:!0},i=bt(e.points.reduce((o,r)=>[Math.min(e.x+r[0],o[0]),Math.min(e.y+r[1],o[1]),Math.max(e.x+r[0],o[2]),Math.max(e.y+r[1],o[3])],[1/0,1/0,-1/0,-1/0]));switch(e.type){case\"line\":case\"arrow\":{let o=e.points.length?e.points:[le(0,0)];return U(e)?t.path(Ld(o,16),n).sets[0].ops:e.roundness?t.curve(o,n).sets[0].ops.slice(0,e.points.length).map((r,s)=>{if(s===0){let a=Yt(le(e.x+r.data[0],e.y+r.data[1]),i,e.angle);return{op:\"move\",data:le(a[0]-e.x,a[1]-e.y)}}return{op:\"bcurveTo\",data:[Yt(le(e.x+r.data[0],e.y+r.data[1]),i,e.angle),Yt(le(e.x+r.data[2],e.y+r.data[3]),i,e.angle),Yt(le(e.x+r.data[4],e.y+r.data[5]),i,e.angle)].map(a=>le(a[0]-e.x,a[1]-e.y)).flat()}}):o.map((r,s)=>{let a=Yt(le(e.x+r[0],e.y+r[1]),i,e.angle);return{op:s===0?\"move\":\"lineTo\",data:le(a[0]-e.x,a[1]-e.y)}})}case\"freedraw\":{if(e.points.length<2)return[];let o=di(e.points,.75);return t.curve(o,n).sets[0].ops.slice(0,e.points.length).map((r,s)=>{if(s===0){let a=Yt(le(e.x+r.data[0],e.y+r.data[1]),i,e.angle);return{op:\"move\",data:le(a[0]-e.x,a[1]-e.y)}}return{op:\"bcurveTo\",data:[Yt(le(e.x+r.data[0],e.y+r.data[1]),i,e.angle),Yt(le(e.x+r.data[2],e.y+r.data[3]),i,e.angle),Yt(le(e.x+r.data[4],e.y+r.data[5]),i,e.angle)].map(a=>le(a[0]-e.x,a[1]-e.y)).flat()}})}}},Qf=(e,t,{isExporting:n,canvasBackgroundColor:i,embedsValidationStatus:o,theme:r})=>{let s=r===ys.DARK;switch(e.type){case\"rectangle\":case\"iframe\":case\"embeddable\":{let a;if(e.roundness){let l=e.width,d=e.height,c=Gt(Math.min(l,d),e);a=t.path(`M ${c} 0 L ${l-c} 0 Q ${l} 0, ${l} ${c} L ${l} ${d-c} Q ${l} ${d}, ${l-c} ${d} L ${c} ${d} Q 0 ${d}, 0 ${d-c} L 0 ${c} Q 0 0, ${c} 0`,We(Td(e,n,o),!0,s))}else a=t.rectangle(0,0,e.width,e.height,We(Td(e,n,o),!1,s));return a}case\"diamond\":{let a,[l,d,c,u,m,p,f,h]=Un(e);if(e.roundness){let E=Gt(Math.abs(l-f),e),g=Gt(Math.abs(u-d),e);a=t.path(`M ${l+E} ${d+g} L ${c-E} ${u-g}\n C ${c} ${u}, ${c} ${u}, ${c-E} ${u+g}\n L ${m+E} ${p-g}\n C ${m} ${p}, ${m} ${p}, ${m-E} ${p-g}\n L ${f+E} ${h+g}\n C ${f} ${h}, ${f} ${h}, ${f+E} ${h-g}\n L ${l-E} ${d+g}\n C ${l} ${d}, ${l} ${d}, ${l+E} ${d+g}`,We(e,!0,s))}else a=t.polygon([[l,d],[c,u],[m,p],[f,h]],We(e,!1,s));return a}case\"ellipse\":return t.ellipse(e.width/2,e.height/2,e.width,e.height,We(e,!1,s));case\"line\":case\"arrow\":{let a,l=We(e,!1,s),d=e.points.length?e.points:[le(0,0)];if(U(e)?d.every(c=>Math.abs(c[0])<=1e6&&Math.abs(c[1])<=1e6)?a=[t.path(Ld(d,16),We(e,!0,s))]:(console.error(\"Elbow arrow with extreme point positions detected. Arrow not rendered.\",e.id,JSON.stringify(d)),a=[]):e.roundness?a=[t.curve(d,l)]:l.fill?a=[t.polygon(d,l)]:a=[t.linearPath(d,l)],e.type===\"arrow\"){let{startArrowhead:c=null,endArrowhead:u=\"arrow\"}=e;if(c!==null){let m=vd(e,a,\"start\",c,t,l,i,s);a.push(...m)}if(u!==null){let m=vd(e,a,\"end\",u,t,l,i,s);a.push(...m)}}return a}case\"freedraw\":{let a=[];if(Bn(e.points)){let l=di(e.points,.75);a.push(t.curve(l,{...We(e,!1,s),stroke:\"none\"}))}return a.push(Jf(e)),a}case\"frame\":case\"magicframe\":case\"text\":case\"image\":return null;default:return $f(e,`generateElementShape(): Unimplemented type ${e?.type}`),null}},Ld=(e,t)=>{let n=[];for(let o=1;o<e.length-1;o+=1){let r=e[o-1],s=e[o+1],a=e[o],l=ct(a,r),d=ct(s,a),c=Math.min(t,Md(e[o],s)/2,Md(e[o],r)/2);l?r[0]<a[0]?n.push([e[o][0]-c,e[o][1]]):n.push([e[o][0]+c,e[o][1]]):r[1]<a[1]?n.push([e[o][0],e[o][1]-c]):n.push([e[o][0],e[o][1]+c]),n.push(e[o]),d?s[0]<a[0]?n.push([e[o][0]-c,e[o][1]]):n.push([e[o][0]+c,e[o][1]]):s[1]<a[1]?n.push([e[o][0],e[o][1]-c]):n.push([e[o][0],e[o][1]+c])}let i=[`M ${e[0][0]} ${e[0][1]}`];for(let o=0;o<n.length;o+=3)i.push(`L ${n[o][0]} ${n[o][1]}`),i.push(`Q ${n[o+1][0]} ${n[o+1][1]}, ${n[o+2][0]} ${n[o+2][1]}`);return i.push(`L ${e[e.length-1][0]} ${e[e.length-1][1]}`),i.join(\" \")},Cd=(e,t)=>{switch(e.type){case\"rectangle\":case\"diamond\":case\"frame\":case\"magicframe\":case\"embeddable\":case\"image\":case\"iframe\":case\"text\":case\"selection\":return ba(e);case\"arrow\":case\"line\":{let n=Ke.generateElementShape(e,null)[0],[,,,,i,o]=$(e,t);return bo(e)?Sa(e,n,le(e.x,e.y),e.angle,le(i,o)):Pa(n,le(e.x,e.y),e.angle,le(i,o))}case\"ellipse\":return ya(e);case\"freedraw\":{let[,,,,n,i]=$(e,t);return Ia(e,le(n,i),bo(e))}}},Kl=(e,t)=>{let n=[...e.points];if(t){if(!Wa(e.points))return null;let o=n[0],r=n[n.length-1];Math.hypot(o[0]-r[0],o[1]-r[1])>Zf||n.length<4?n.push(le(o[0],o[1])):n[n.length-1]=le(o[0],o[1])}return{polygon:t,points:n}},Jf=e=>nh(eh(e)),eh=e=>{let t=e.simulatePressure?e.points:e.points.length?e.points.map(([n,i],o)=>[n,i,e.pressures[o]]):[[0,0,.5]];return La(t,{simulatePressure:e.simulatePressure,size:e.strokeWidth*4.25,thinning:.6,smoothing:.5,streamline:.5,easing:n=>Math.sin(n*Math.PI/2),last:!0})},Dd=(e,t)=>[(e[0]+t[0])/2,(e[1]+t[1])/2],th=/(\\s?[A-Z]?,?-?[0-9]*\\.[0-9]{0,2})(([0-9]|e|-)*)/g,nh=e=>{if(!e.length)return\"\";let t=e.length-1;return e.reduce((n,i,o,r)=>(o===t?n.push(i,Dd(i,r[0]),\"L\",r[0],\"Z\"):n.push(i,Dd(i,r[o+1])),n),[\"M\",e[0],\"Q\"]).join(\" \").replace(th,\"$1\")};var Ss=class e{static boundsCache=new WeakMap;static nonRotatedBoundsCache=new WeakMap;static getBounds(t,n,i=!1){let o=i&&t.angle!==0?e.nonRotatedBoundsCache.get(t):e.boundsCache.get(t);if(o?.version&&o.version===t.version&&!ce(t))return o.bounds;if(i&&t.angle!==0){let s=e.calculateBounds({...t,angle:0},n);return e.nonRotatedBoundsCache.set(t,{version:t.version,bounds:s}),s}let r=e.calculateBounds(t,n);return e.boundsCache.set(t,{version:t.version,bounds:r}),r}static calculateBounds(t,n){let i,[o,r,s,a,l,d]=$(t,n);if(Se(t)){let[c,u,m,p]=As(t.points.map(([f,h])=>oe(D(f,h),D(l-t.x,d-t.y),t.angle)));return[c+t.x,u+t.y,m+t.x,p+t.y]}else if(q(t))i=ph(t,l,d,n);else if(t.type===\"diamond\"){let[c,u]=oe(D(l,r),D(l,d),t.angle),[m,p]=oe(D(l,a),D(l,d),t.angle),[f,h]=oe(D(o,d),D(l,d),t.angle),[E,g]=oe(D(s,d),D(l,d),t.angle),x=Math.min(c,m,f,E),w=Math.min(u,p,h,g),y=Math.max(c,m,f,E),b=Math.max(u,p,h,g);i=[x,w,y,b]}else if(t.type===\"ellipse\"){let c=(s-o)/2,u=(a-r)/2,m=Math.cos(t.angle),p=Math.sin(t.angle),f=Math.hypot(c*m,u*p),h=Math.hypot(u*m,c*p);i=[l-f,d-h,l+f,d+h]}else{let[c,u]=oe(D(o,r),D(l,d),t.angle),[m,p]=oe(D(o,a),D(l,d),t.angle),[f,h]=oe(D(s,a),D(l,d),t.angle),[E,g]=oe(D(s,r),D(l,d),t.angle),x=Math.min(c,m,f,E),w=Math.min(u,p,h,g),y=Math.max(c,m,f,E),b=Math.max(u,p,h,g);i=[x,w,y,b]}return i}},$=(e,t,n=!1)=>{if(Se(e))return ah(e);if(q(e))return C.getElementAbsoluteCoords(e,t,n);if(Q(e)){let i=t?Me(e,t):null;if(H(i)){let{x:o,y:r}=C.getBoundTextElementPosition(i,e,t);return[o,r,o+e.width,r+e.height,o+e.width/2,r+e.height/2]}}return[e.x,e.y,e.x+e.width,e.y+e.height,e.x+e.width/2,e.y+e.height/2]},hs=(e,t)=>{let n=Cd(e,t),[i,o,r,s,a,l]=$(e,t),d=D(a,l);if(n.type===\"polycurve\"){let g=n.data.map(w=>vt(w,10)),x=[];if(Lt(e)&&!e.polygon||H(e))for(let w of g){let y=0;for(;y<w.length-1;)x.push(ge(D(w[y][0],w[y][1]),D(w[y+1][0],w[y+1][1]))),y++}else{let w=g.flat(),y=0;for(;y<w.length-1;)x.push(ge(D(w[y][0],w[y][1]),D(w[y+1][0],w[y+1][1]))),y++}return x}else{if(n.type===\"polyline\")return n.data;if(rh(e)){let[E,g]=en(e),x=g.map(y=>kd(y,d,e.angle)).flat();return[...Od(E,d,e.angle),...x]}else if(e.type===\"diamond\"){let[E,g]=tn(e),x=g.map(y=>kd(y,d,e.angle)).flat();return[...Od(E,d,e.angle),...x]}else if(n.type===\"polygon\"){if(Q(e)){let x=Me(e,t);if(x&&q(x))return[ge(D(i,o),D(r,o)),ge(D(r,o),D(r,s)),ge(D(r,s),D(i,s)),ge(D(i,s),D(i,o))]}let E=n.data,g=[];for(let x=0;x<E.length-1;x++)g.push(ge(E[x],E[x+1]));return g}else if(n.type===\"ellipse\")return sh(e)}let[c,u,m,p,,,f,h]=[[i,o],[r,o],[i,s],[r,s],[a,o],[a,s],[i,l],[r,l]].map(E=>oe(E,d,e.angle));return[ge(c,u),ge(m,p),ge(c,m),ge(u,p),ge(c,h),ge(m,h),ge(u,f),ge(p,f)]},rh=e=>e!=null&&(e.type===\"rectangle\"||e.type===\"image\"||e.type===\"iframe\"||e.type===\"embeddable\"||e.type===\"frame\"||e.type===\"magicframe\"||e.type===\"text\"&&!e.containerId),Od=(e,t,n)=>e.map(i=>ge(oe(i[0],t,n),oe(i[1],t,n))),kd=(e,t,n)=>{let i=vt(e,10),o=0,r=[];for(;o<i.length-1;)r.push(ge(oe(D(i[o][0],i[o][1]),t,n),oe(D(i[o+1][0],i[o+1][1]),t,n))),o++;return r},sh=e=>{let t=D(e.x+e.width/2,e.y+e.height/2),n=e.width/2,i=e.height/2,o=[],r=[],s=90,a=Math.PI*2/s;for(let l=0;l<s;l++){let d=l*a,c=t[0]+n*Math.cos(d),u=t[1]+i*Math.sin(d);r.push(oe(D(c,u),t,e.angle))}for(let l=0;l<r.length-1;l++)o.push(ge(r[l],r[l+1]));return o.push(ge(r[r.length-1],r[0])),o},q1=e=>[e.x,e.y,e.x+e.width,e.y+e.height,e.x+e.width/2,e.y+e.height/2],Un=e=>{let t=Math.floor(e.width/2)+1,n=0,i=e.width,o=Math.floor(e.height/2)+1,r=t,s=e.height;return[t,n,i,o,r,s,0,o]},Fd=(e,t,n,i,o)=>{let r=1-e;return Math.pow(r,3)*t+3*Math.pow(r,2)*e*n+3*r*Math.pow(e,2)*i+Math.pow(e,3)*o},Rd=(e,t,n,i)=>{let o=t-e,r=n-t,s=i-n,a=3*o-6*r+3*s,l=6*r-6*o,d=3*o,c=l*l-4*a*d;if(!(c>=0))return!1;let m=null,p=null,f=1/0,h=1/0;return a===0?f=h=-d/l:(f=(-l+Math.sqrt(c))/(2*a),h=(-l-Math.sqrt(c))/(2*a)),f>=0&&f<=1&&(m=Fd(f,e,t,n,i)),h>=0&&h<=1&&(p=Fd(h,e,t,n,i)),[m,p]},Po=(e,t,n,i)=>{let o=Rd(e[0],t[0],n[0],i[0]),r=Rd(e[1],t[1],n[1],i[1]),s=Math.min(e[0],i[0]),a=Math.max(e[0],i[0]);if(o){let c=o.filter(u=>u!==null);s=Math.min(s,...c),a=Math.max(a,...c)}let l=Math.min(e[1],i[1]),d=Math.max(e[1],i[1]);if(r){let c=r.filter(u=>u!==null);l=Math.min(l,...c),d=Math.max(d,...c)}return[s,l,a,d]},Bi=(e,t)=>{let n=D(0,0),{minX:i,minY:o,maxX:r,maxY:s}=e.reduce((a,{op:l,data:d})=>{if(l===\"move\"){let c=zd(d);Is(c!=null,\"Op data is not a point\"),n=c}else if(l===\"bcurveTo\"){let c=D(d[0],d[1]),u=D(d[2],d[3]),m=D(d[4],d[5]),p=t?t(c):c,f=t?t(u):u,h=t?t(m):m,E=t?t(n):n;n=m;let[g,x,w,y]=Po(E,p,f,h);a.minX=Math.min(a.minX,g),a.minY=Math.min(a.minY,x),a.maxX=Math.max(a.maxX,w),a.maxY=Math.max(a.maxY,y)}return a},{minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0});return[i,o,r,s]},As=e=>{let t=1/0,n=1/0,i=-1/0,o=-1/0;for(let[r,s]of e)t=Math.min(t,r),n=Math.min(n,s),i=Math.max(i,r),o=Math.max(o,s);return[t,n,i,o]},ah=e=>{let[t,n,i,o]=As(e.points),r=t+e.x,s=n+e.y,a=i+e.x,l=o+e.y;return[r,s,a,l,(r+a)/2,(s+l)/2]},lh=20,dh=15,ch=e=>{switch(e){case\"arrow\":return 25;case\"diamond\":case\"diamond_outline\":return 12;case\"cardinality_many\":case\"cardinality_one_or_many\":case\"cardinality_zero_or_many\":return dh;case\"cardinality_one\":case\"cardinality_exactly_one\":case\"cardinality_zero_or_one\":return lh;default:return 15}},uh=e=>{switch(e){case\"bar\":return 90;case\"arrow\":return 20;default:return 25}},Fe=(e,t,n,i,o=0)=>{if(i===null||t.length<1)return null;let r=Dt(t[0]);if(r.length<1)return null;let s=n===\"start\"?1:r.length-1,a=r[s].data;Is(a.length===6,\"Op data length is not 6\");let l=D(a[4],a[5]),d=D(a[2],a[3]),c=D(a[0],a[1]),u=r[s-1],m=D(0,0);if(u.op===\"move\"){let S=zd(u.data);Is(S!=null,\"Op data is not a point\"),m=S}else u.op===\"bcurveTo\"&&(m=D(u.data[4],u.data[5]));let p=(S,z)=>Math.pow(1-S,3)*l[z]+3*S*Math.pow(1-S,2)*d[z]+3*Math.pow(S,2)*(1-S)*c[z]+m[z]*Math.pow(S,3),[f,h]=n===\"start\"?m:l,[E,g]=[p(.3,0),p(.3,1)],x=Math.hypot(f-E,h-g),w=(f-E)/x,y=(h-g)/x,b=ch(i),I=0;{let[S,z]=n===\"end\"?e.points[e.points.length-1]:e.points[0],[W,xe]=e.points.length>1?n===\"end\"?e.points[e.points.length-2]:e.points[1]:[0,0];I=Math.hypot(S-W,z-xe)}let T=Math.min(b,I*(i===\"diamond\"||i===\"diamond_outline\"?.25:.5)),M=f-w*T*o,O=h-y*T*o,L=M-w*T,k=O-y*T;if(i===\"circle\"||i===\"circle_outline\"){let S=Math.hypot(k-O,L-M)+e.strokeWidth-2;return[M,O,S]}let B=uh(i);if(i===\"cardinality_many\"||i===\"cardinality_one_or_many\"){let[S,z]=oe(D(M,O),D(L,k),Ps(-B)),[W,xe]=oe(D(M,O),D(L,k),Ps(B));return[L,k,S,z,W,xe]}let[X,_]=oe(D(L,k),D(M,O),-B*Math.PI/180),[ie,F]=oe(D(L,k),D(M,O),Ps(B));if(i===\"diamond\"||i===\"diamond_outline\"){let S,z;if(n===\"start\"){let[W,xe]=e.points.length>1?e.points[1]:[0,0];[S,z]=oe(D(M+T*2,O),D(M,O),Math.atan2(xe-O,W-M))}else{let[W,xe]=e.points.length>1?e.points[e.points.length-2]:[0,0];[S,z]=oe(D(M-T*2,O),D(M,O),Math.atan2(O-xe,M-W))}return[M,O,X,_,S,z,ie,F]}return[M,O,X,_,ie,F]},mh=e=>{let t=Tn.generator(),n=We(e),i=e.roundness?\"curve\":n.fill?\"polygon\":\"linearPath\";return t[i](e.points,n)},ph=(e,t,n,i)=>{let o=V(e,i);if(e.points.length<2){let[u,m]=e.points[0],[p,f]=oe(D(e.x+u,e.y+m),D(t,n),e.angle),h=[p,f,p,f];if(o){let E=C.getMinMaxXYWithBoundText(e,i,[p,f,p,f],o);h=[E[0],E[1],E[2],E[3]]}return h}let s=Ke.get(e,null)?.[0]??mh(e),a=Dt(s),d=Bi(a,([u,m])=>oe(D(e.x+u,e.y+m),D(t,n),e.angle)),c=[d[0],d[1],d[2],d[3]];if(o){let u=C.getMinMaxXYWithBoundText(e,i,c,o);c=[u[0],u[1],u[2],u[3]]}return c},he=(e,t,n=!1)=>Ss.getBounds(e,t,n),ke=(e,t)=>{if(!ih(e))return[0,0,0,0];let n=1/0,i=-1/0,o=1/0,r=-1/0,s=t||Nd(e);return e.forEach(a=>{let[l,d,c,u]=he(a,s);n=Math.min(n,l),o=Math.min(o,d),i=Math.max(i,c),r=Math.max(r,u)}),[n,o,i,r]},K1=(e,t)=>{let[n,i,o,r]=ke(e);return[n+t.x,i+t.y,o+t.x,r+t.y]},Jt=(e,t,n,i)=>{if(!(q(e)||Se(e)))return[e.x,e.y,e.x+t,e.y+n];let o=Gd(0,t,Gd(1,n,e.points,i),i),r;if(Se(e))r=As(o);else{let c=Tn.generator(),u=e.roundness?c.curve(o,We(e)):c.linearPath(o,We(e)),m=Dt(u);r=Bi(m)}let[s,a,l,d]=r;return[s+e.x,a+e.y,l+e.x,d+e.y]},ds=(e,t)=>{let n=Tn.generator(),i=e.roundness==null?n.linearPath(t,We(e)):n.curve(t,We(e)),o=Dt(i),[r,s,a,l]=Bi(o);return[r+e.x,s+e.y,a+e.x,l+e.y]},Q1=(e,t)=>{if(!e.length)return[0,0,0,0];let n=1/0,i=e[0],o=Nd(e);return e.forEach(r=>{let[s,a,l,d]=he(r,o),c=oh(D((s+l)/2,(a+d)/2),D(t.x,t.y));c<n&&(n=c,i=r)}),he(i,o)},jt=e=>{let[t,n,i,o]=ke(e);return{minX:t,minY:n,maxX:i,maxY:o,width:i-t,height:o-n,midX:(t+i)/2,midY:(n+o)/2}},J1=({scrollX:e,scrollY:t,width:n,height:i,zoom:o})=>[-e,-t,-e+n/o.value,-t+i/o.value],bt=e=>D(e[0]+(e[2]-e[0])/2,e[1]+(e[3]-e[1])/2),nt=(e,t,n)=>{let i={minX:e.x,minY:e.y,maxX:e.x+e.width,maxY:e.y+e.height,midX:e.x+e.width/2,midY:e.y+e.height/2},o=re(e,t),[r,s]=oe(D(i.minX,i.minY),o,e.angle),[a,l]=oe(D(i.maxX,i.minY),o,e.angle),[d,c]=oe(D(i.maxX,i.maxY),o,e.angle),[u,m]=oe(D(i.minX,i.maxY),o,e.angle),p=[Math.min(r,a,d,u),Math.min(s,l,c,m),Math.max(r,a,d,u),Math.max(s,l,c,m)];if(n){let[f,h,E,g]=n;return[p[0]-g,p[1]-f,p[2]+h,p[3]+E]}return p},an=(e,t)=>e[0]>t[0]&&e[0]<t[2]&&e[1]>t[1]&&e[1]<t[3],Pi=(e,t)=>{if(e==null||t==null)return!1;let[n,i,o,r]=e,[s,a,l,d]=t;return n<l&&o>s&&i<d&&r>a},re=(e,t,n=0,i=0)=>{if(q(e)){let[s,a,l,d]=$(e,t),[c,u]=D((s+l)/2,(a+d)/2);return D(c+n,u+i)}let[o,r]=bt(he(e,t));return D(o+n,r+i)};var gh=.1,_d=e=>q(e)||Se(e)?e.points.length<2||e.points.length===2&&H(e)&&Eh(e.points[0],e.points[e.points.length-1],gh):e.width===0&&e.height===0,hd=(e,t,n,i,o)=>{let[r,s,a,l]=he(e,o),d=$o({clientX:i.offsetLeft,clientY:i.offsetTop},i),c=$o({clientX:i.offsetLeft+t,clientY:i.offsetTop+n},i);return d.x<=a&&d.y<=l&&c.x>=r&&c.y>=s},aP=(e,t,n,i,o,r)=>{let[s,a,l,d]=ke(e,o),c=$o({clientX:i.offsetLeft+(r?.left||0),clientY:i.offsetTop+(r?.top||0)},i),u=$o({clientX:i.offsetLeft+t-(r?.right||0),clientY:i.offsetTop+n-(r?.bottom||0)},i);return s>=c.x&&a>=c.y&&l<=u.x&&d<=u.y},Ms=(e,t,n)=>{let i=Math.abs(t),o=Math.abs(n);if(e===\"line\"||e===\"arrow\"||e===\"freedraw\"){let r=Math.round(Math.atan(o/i)/Xt)*Xt;r===0?n=0:r===Math.PI/2?t=0:n=i*Math.tan(r)*Math.sign(n)||n}else e!==\"selection\"&&(n=i*Math.sign(n));return{width:t,height:n}},Ql=(e,t,n,i,o)=>{let r=n-e,s=i-t,a=Math.atan2(s,r),l=Math.round(a/Xt)*Xt;if(o){let d=Math.floor(o/Xt)*Xt;fh(a,d,d+Xt)&&(hh(a,o)<Xt/6?l=o:Hd(a)>Hd(o)?l=d+Xt:l=d)}if(l===0)s=0;else if(l===Math.PI/2)r=0;else{let d=Math.tan(l),c=-1,u=t-d*e,m=-1/d,p=-1,f=i-m*n,h=(c*f-p*u)/(d*p-m*c),E=(u*m-f*d)/(d*p-m*c);r=h-e,s=E-t}return{width:r,height:s}},lP=e=>{let t={width:e.width,height:e.height,x:e.x,y:e.y};if(e.width<0){let n=Math.abs(e.width);t.width=n,t.x=e.x-n}if(e.height<0){let n=Math.abs(e.height);t.height=n,t.y=e.y-n}return t};P();var fP=(e,t,n,i)=>{let o=zo(e,n.getNonDeletedElementsMap(),i),r=jt(e);return o.flatMap(s=>{let a=xh(s,r,t);return s.map(l=>{let d=n.mutateElement(l,{x:l.x+a.x,y:l.y+a.y});return De(l,n,{simultaneouslyUpdated:s}),d})})},xh=(e,t,{axis:n,position:i})=>{let o=jt(e),[r,s]=n===\"x\"?[\"minX\",\"maxX\"]:[\"minY\",\"maxY\"],a={x:0,y:0};return i===\"start\"?{...a,[n]:t[r]-o[r]}:i===\"end\"?{...a,[n]:t[s]-o[s]}:{...a,[n]:(t[r]+t[s])/2-(o[r]+o[s])/2}};P();import{arrayToMap as mE,arrayToObject as $t,assertNever as xc,isDevEnv as yn,isShallowEqual as wc,isTestEnv as Pn,randomInteger as gc}from\"@excalidraw/common\";P();import{assertNever as Dh,COLOR_PALETTE as Bh,isDevEnv as Lh,isTestEnv as Ch,randomId as Gh,Emitter as Yd,toIterable as qn}from\"@excalidraw/common\";P();import{ORIG_ID as Ph,randomId as Wd,randomInteger as Ih,arrayToMap as Sh,castArray as Ts,findLastIndex as Fi,getUpdatedTimestamp as Ah,isTestEnv as Mh}from\"@excalidraw/common\";P();import{arrayToMapWithIndex as wh}from\"@excalidraw/common\";var bh=e=>{let t=e.slice(),n=new Set,i=r=>{let s=r[0]?.groupIds?.join(\"\"),a=[r[0]],l=[];for(let d of r.slice(1))d.groupIds?.join(\"\")===s?a.push(d):l.push(d);return l.length?[...a,...i(l)]:a},o=new Map;return t.forEach((r,s)=>{if(!o.has(r.id))if(r.groupIds?.length){let a=r.groupIds[r.groupIds.length-1],l=t.slice(s).filter(d=>{let c=d?.groupIds?.some(u=>u===a);return c&&o.set(d.id,!0),c});for(let d of i(l))n.add(d)}else n.add(r)}),n.size!==e.length?(console.error(\"normalizeGroupElementOrder: lost some elements... bailing!\"),e):[...n]},yh=e=>{let t=wh(e),n=e.slice(),i=new Set;return n.forEach((o,r)=>{o&&(o.boundElements?.length?(i.add(o),n[r]=null,o.boundElements.forEach(s=>{let a=t.get(s.id);a&&s.type===\"text\"&&(i.add(a[0]),n[a[1]]=null)})):o.type===\"text\"&&o.containerId&&t.get(o.containerId)?.[0].boundElements?.find(a=>a.id===o.id)||(i.add(o),n[r]=null))}),i.size!==e.length?(console.error(\"normalizeBoundElementsOrder: lost some elements... bailing!\"),e):[...i]},Ud=e=>yh(bh(e));var Th=(e,t,n,i)=>{let o=Ds(n);return Mh()&&vh(o,n.id),o.id=Wd(),o.updated=Ah(),i&&(o.seed=Ih(),Bl(o)),o.groupIds=pd(o.groupIds,e,r=>(t.has(r)||t.set(r,Wd()),t.get(r))),o},vP=e=>{let{elements:t}=e,n=\"appState\"in e?e.appState:{editingGroupId:null,selectedGroupIds:{}},i=new Map,o=new Map,r=[],s=[],a=new Map,l=new Map,d=new Map,c=Sh(t),u=e.type===\"in-place\"?e.idsOfElementsToDuplicate:new Map(t.map(E=>[E.id,E]));if(e.type===\"in-place\")for(let E of Object.keys(e.appState.selectedGroupIds))t.filter(g=>g.groupIds?.includes(E)).forEach(g=>u.set(g.id,g));t=Ud(t);let m=t.slice(),p=E=>{let x=Ts(E).reduce((w,y)=>{if(i.has(y.id))return w;i.set(y.id,!0);let b=Th(n.editingGroupId,o,y,e.randomizeSeed);return i.set(b.id,!0),d.set(b.id,b),a.set(y.id,b.id),l.set(b.id,y),s.push(y),r.push(b),w.push(b),w},[]);return Array.isArray(E)?x:x[0]||null},f=(E,g)=>{if(g){if(E>m.length-1){m.push(...Ts(g));return}m.splice(E+1,0,...Ts(g))}},h=new Set(t.filter(E=>u.has(E.id)&&Z(E)).map(E=>E.id));for(let E of t){if(i.has(E.id)||!u.has(E.id))continue;let g=ms(n,E);if(g){let x=Oe(t,g).flatMap(y=>Z(y)?[...hn(t,y.id),y]:[y]),w=Fi(m,y=>y.groupIds?.includes(g));f(w,p(x));continue}if(!(E.frameId&&h.has(E.frameId))){if(Z(E)){let x=E.id,w=hn(t,x),y=Fi(m,b=>b.frameId===x||b.id===x);f(y,p([...w,E]));continue}if(gt(E)){let x=V(E,c),w=Fi(m,y=>y.id===E.id||\"containerId\"in y&&y.containerId===E.id);x?f(w,p([E,x])):f(w,p(E));continue}if(ce(E)){let x=Me(E,c),w=Fi(m,y=>y.id===E.id||y.id===x?.id);x?f(w,p([x,E])):f(w,p(E));continue}f(Fi(m,x=>x.id===E.id),p(E))}}if(zl(r,a,d),Ed(m,s,a),e.overrides)for(let E of r){let g=l.get(E.id);g&&Object.assign(E,e.overrides({duplicateElement:E,origElement:g,origIdToDuplicateId:a}))}return{duplicatedElements:r,duplicateElementsMap:d,elementsWithDuplicates:m,origIdToDuplicateId:a}},vs=(e,t=0)=>{if(e==null||typeof e!=\"object\")return e;let n=Object.prototype.toString.call(e);if(n===\"[object Object]\"){let i=typeof e.constructor==\"function\"?Object.create(Object.getPrototypeOf(e)):{};for(let o in e)if(e.hasOwnProperty(o)){if(t===0&&(o===\"shape\"||o===\"canvas\"))continue;i[o]=vs(e[o],t+1)}return i}if(Array.isArray(e)){let i=e.length,o=new Array(i);for(;i--;)o[i]=vs(e[i],t+1);return o}return v.DEV&&n!==\"[object Object]\"&&n!==\"[object Array]\"&&n.startsWith(\"[object \")&&console.warn(`_deepCloneElement: unexpected object type ${n}. This value will not be cloned!`),e},Ds=e=>vs(e),vh=(e,t)=>{Object.defineProperty(e,Ph,{value:t,writable:!1,enumerable:!1})};var Ye={IMMEDIATELY:\"IMMEDIATELY\",NEVER:\"NEVER\",EVENTUALLY:\"EVENTUALLY\"},jd=class{constructor(t){this.app=t}onDurableIncrementEmitter=new Yd;onStoreIncrementEmitter=new Yd;scheduledMacroActions=new Set;scheduledMicroActions=[];_snapshot=bn.empty();get snapshot(){return this._snapshot}set snapshot(t){this._snapshot=t}scheduleAction(t){this.scheduledMacroActions.add(t),this.satisfiesScheduledActionsInvariant()}scheduleCapture(){this.scheduleAction(Ye.IMMEDIATELY)}scheduleMicroAction(t){let{action:n}=t,i;if(\"change\"in t)i=t.change;else{let r=bn.create(this.app.scene.getElementsMapIncludingDeleted(),this.app.state),s=r.maybeClone(n,t.elements?Vd(t.elements):void 0,t.appState);i=Ri.create(r,s)}let o=\"delta\"in t?t.delta:void 0;this.scheduledMicroActions.push(()=>this.processAction({action:n,change:i,delta:o}))}commit(t,n){this.flushMicroActions();try{let i=this.getScheduledMacroAction();this.processAction({action:i,elements:t,appState:n})}finally{this.satisfiesScheduledActionsInvariant(),this.scheduledMacroActions=new Set}}clear(){this.snapshot=bn.empty(),this.scheduledMacroActions=new Set}emitDurableIncrement(t,n=void 0,i=void 0){let o=this.snapshot,r,s;if(n?r=n:r=Ri.create(o,t),i?s=i:s=Cs.calculate(o,t),!s.isEmpty()){let a=new Bs(r,s);this.onDurableIncrementEmitter.trigger(a),this.onStoreIncrementEmitter.trigger(a)}}emitEphemeralIncrement(t,n=void 0){let i;if(n)i=n;else{let r=this.snapshot;i=Ri.create(r,t)}let o=new Ls(i);this.onStoreIncrementEmitter.trigger(o)}applyChangeToSnapshot(t){let n=this.snapshot,i=this.snapshot.applyChange(t);return n===i?null:i}maybeCloneSnapshot(t,n,i){if(!n&&!i)return null;let o=this.snapshot,r=this.snapshot.maybeClone(t,n,i);return o===r?null:r}flushMicroActions(){for(let t of this.scheduledMicroActions)try{t()}catch(n){console.error(\"Failed to execute scheduled micro action\",n)}this.scheduledMicroActions=[]}processAction(t){let{action:n}=t;if(n===Ye.EVENTUALLY&&!this.onStoreIncrementEmitter.subscribers.length)return;let i;if(\"change\"in t?i=this.applyChangeToSnapshot(t.change):i=this.maybeCloneSnapshot(n,t.elements,t.appState),!i)return;let o=\"change\"in t?t.change:void 0,r=\"delta\"in t?t.delta:void 0;try{switch(n){case Ye.IMMEDIATELY:this.emitDurableIncrement(i,o,r);break;case Ye.NEVER:case Ye.EVENTUALLY:this.emitEphemeralIncrement(i,o);break;default:Dh(n,\"Unknown store action\")}}finally{switch(n){case Ye.IMMEDIATELY:case Ye.NEVER:this.snapshot=i;break}}}getScheduledMacroAction(){let t;return this.scheduledMacroActions.has(Ye.IMMEDIATELY)?t=Ye.IMMEDIATELY:this.scheduledMacroActions.has(Ye.NEVER)?t=Ye.NEVER:t=Ye.EVENTUALLY,t}satisfiesScheduledActionsInvariant(){if(!(this.scheduledMacroActions.size>=0&&this.scheduledMacroActions.size<=Object.keys(Ye).length)){let t=`There can be at most three store actions scheduled at the same time, but there are \"${this.scheduledMacroActions.size}\".`;if(console.error(t,this.scheduledMacroActions.values()),Ch()||Lh())throw new Error(t)}}},Ri=class e{constructor(t,n){this.elements=t;this.appState=n}static create(t,n){let i=n.getChangedElements(t),o=n.getChangedAppState(t);return new e(i,o)}},Vo=class{constructor(t,n){this.type=t;this.change=n}static isDurable(t){return t.type===\"durable\"}static isEphemeral(t){return t.type===\"ephemeral\"}},Bs=class extends Vo{constructor(n,i){super(\"durable\",n);this.change=n;this.delta=i}},Ls=class extends Vo{constructor(n){super(\"ephemeral\",n);this.change=n}},Cs=class e{constructor(t,n,i){this.id=t;this.elements=n;this.appState=i}static create(t,n,i={id:Gh()}){return new this(i.id,t,n)}static calculate(t,n){let i=n.metadata.didElementsChange?wn.calculate(t.elements,n.elements):wn.empty(),o=n.metadata.didAppStateChange?xn.calculate(t.appState,n.appState):xn.empty();return this.create(i,o)}static restore(t){let{id:n,elements:i,appState:o}=t;return new this(n,wn.restore(i),xn.restore(o))}static load({id:t,elements:{added:n,removed:i,updated:o},appState:{delta:r}}){let s=wn.create(n,i,o),a=xn.create(r);return new this(t,s,a)}static squash(...t){let n=e.empty();for(let i of t)n.elements.squash(i.elements),n.appState.squash(i.appState);return n}static inverse(t){return this.create(t.elements.inverse(),t.appState.inverse())}static applyTo(t,n,i,o){let[r,s]=t.elements.applyTo(n,bn.empty().elements,o),[a,l]=t.appState.applyTo(i,r);return[r,a,s||l]}static applyLatestChanges(t,n,i,o){return this.create(t.elements.applyLatestChanges(n,i,o),t.appState,{id:t.id})}static empty(){return e.create(wn.empty(),xn.empty())}isEmpty(){return this.elements.isEmpty()&&this.appState.isEmpty()}},bn=class e{constructor(t,n,i={didElementsChange:!1,didAppStateChange:!1,isEmpty:!1}){this.elements=t;this.appState=n;this.metadata=i}_lastChangedElementsHash=0;_lastChangedAppStateHash=0;static create(t,n,i={didElementsChange:!1,didAppStateChange:!1}){return new e(t,Xd(n)?n:Kn(n),i)}static empty(){return new e(new Map,Oh(),{didElementsChange:!1,didAppStateChange:!1,isEmpty:!0})}getChangedElements(t){let n={};for(let i of qn(t.elements))this.elements.get(i.id)||(n[i.id]=Le(i,{isDeleted:!0}));for(let i of qn(this.elements))t.elements.get(i.id)!==i&&(n[i.id]=i);return n}getChangedAppState(t){return Y.getRightDifferences(t.appState,this.appState).reduce((n,i)=>Object.assign(n,{[i]:this.appState[i]}),{})}isEmpty(){return this.metadata.isEmpty}applyChange(t){let n=new Map(this.elements);for(let[o,r]of Object.entries(t.elements))n.set(o,r);let i=Kn({...this.appState,...t.appState});return e.create(n,i,{didElementsChange:Object.keys(t.elements).length>0,didAppStateChange:Object.keys(t.appState).length>0})}maybeClone(t,n,i){let o={shouldCompareHashes:!1};t===Ye.EVENTUALLY&&(o.shouldCompareHashes=!0);let r=this.maybeCreateElementsSnapshot(n,o),s=this.maybeCreateAppStateSnapshot(i,o),a=!1,l=!1;return this.elements!==r&&(a=!0),this.appState!==s&&(l=!0),!a&&!l?this:new e(r,s,{didElementsChange:a,didAppStateChange:l})}maybeCreateAppStateSnapshot(t,n={shouldCompareHashes:!1}){if(!t)return this.appState;let i=Xd(t)?t:Kn(t);return this.detectChangedAppState(i,n)?i:this.appState}maybeCreateElementsSnapshot(t,n={shouldCompareHashes:!1}){if(!t)return this.elements;let i=this.detectChangedElements(t,n);return i?.size?this.createElementsSnapshot(i):this.elements}detectChangedAppState(t,n={shouldCompareHashes:!1}){if(this.appState===t)return;let i=Y.isRightDifferent(this.appState,t);if(!i)return;let o=qd(JSON.stringify(t));if(!(n.shouldCompareHashes&&this._lastChangedAppStateHash===o))return this._lastChangedAppStateHash=o,i}detectChangedElements(t,n={shouldCompareHashes:!1}){if(this.elements===t)return;let i=new Map;for(let r of qn(this.elements))t.get(r.id)||i.set(r.id,Le(r,{isDeleted:!0}));for(let r of qn(t)){let s=this.elements.get(r.id);if(!s||s.version<r.version){if(we(r)&&!vn(r))continue;i.set(r.id,r)}}if(!i.size)return;let o=Zd(i);if(!(n.shouldCompareHashes&&this._lastChangedElementsHash===o))return this._lastChangedElementsHash=o,i}createElementsSnapshot(t){let n=new Map;for(let i of qn(this.elements))n.set(i.id,i);for(let i of qn(t))n.set(i.id,Ds(i));return n}},$d=\"__observedAppState\",Oh=()=>({name:null,editingGroupId:null,viewBackgroundColor:Bh.white,selectedElementIds:{},selectedGroupIds:{},selectedLinearElement:null,croppingElementId:null,activeLockedId:null,lockedMultiSelections:{}}),Kn=e=>{let t={name:e.name,editingGroupId:e.editingGroupId,viewBackgroundColor:e.viewBackgroundColor,selectedElementIds:e.selectedElementIds,selectedGroupIds:e.selectedGroupIds,croppingElementId:e.croppingElementId,activeLockedId:e.activeLockedId,lockedMultiSelections:e.lockedMultiSelections,selectedLinearElement:e.selectedLinearElement?{elementId:e.selectedLinearElement.elementId,isEditing:!!e.selectedLinearElement.isEditing}:null};return Reflect.defineProperty(t,$d,{value:!0,enumerable:!1}),t},Xd=e=>!!Reflect.get(e,$d);P();P();var Jd=\"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\";function Jn(e,t,n){let i=n[0];if(t!=null&&e>=t)throw new Error(e+\" >= \"+t);if(e.slice(-1)===i||t&&t.slice(-1)===i)throw new Error(\"trailing zero\");if(t){let s=0;for(;(e[s]||i)===t[s];)s++;if(s>0)return t.slice(0,s)+Jn(e.slice(s),t.slice(s),n)}let o=e?n.indexOf(e[0]):0,r=t!=null?n.indexOf(t[0]):n.length;if(r-o>1){let s=Math.round(.5*(o+r));return n[s]}else return t&&t.length>1?t.slice(0,1):n[o]+Jn(e.slice(1),null,n)}function ec(e){if(e.length!==tc(e[0]))throw new Error(\"invalid integer part of order key: \"+e)}function tc(e){if(e>=\"a\"&&e<=\"z\")return e.charCodeAt(0)-97+2;if(e>=\"A\"&&e<=\"Z\")return 90-e.charCodeAt(0)+2;throw new Error(\"invalid order key head: \"+e)}function Ni(e){let t=tc(e[0]);if(t>e.length)throw new Error(\"invalid order key: \"+e);return e.slice(0,t)}function Kd(e,t){if(e===\"A\"+t[0].repeat(26))throw new Error(\"invalid order key: \"+e);let n=Ni(e);if(e.slice(n.length).slice(-1)===t[0])throw new Error(\"invalid order key: \"+e)}function Qd(e,t){ec(e);let[n,...i]=e.split(\"\"),o=!0;for(let r=i.length-1;o&&r>=0;r--){let s=t.indexOf(i[r])+1;s===t.length?i[r]=t[0]:(i[r]=t[s],o=!1)}if(o){if(n===\"Z\")return\"a\"+t[0];if(n===\"z\")return null;let r=String.fromCharCode(n.charCodeAt(0)+1);return r>\"a\"?i.push(t[0]):i.pop(),r+i.join(\"\")}else return n+i.join(\"\")}function kh(e,t){ec(e);let[n,...i]=e.split(\"\"),o=!0;for(let r=i.length-1;o&&r>=0;r--){let s=t.indexOf(i[r])-1;s===-1?i[r]=t.slice(-1):(i[r]=t[s],o=!1)}if(o){if(n===\"a\")return\"Z\"+t.slice(-1);if(n===\"A\")return null;let r=String.fromCharCode(n.charCodeAt(0)-1);return r<\"Z\"?i.push(t.slice(-1)):i.pop(),r+i.join(\"\")}else return n+i.join(\"\")}function Qn(e,t,n=Jd){if(e!=null&&Kd(e,n),t!=null&&Kd(t,n),e!=null&&t!=null&&e>=t)throw new Error(e+\" >= \"+t);if(e==null){if(t==null)return\"a\"+n[0];let l=Ni(t),d=t.slice(l.length);if(l===\"A\"+n[0].repeat(26))return l+Jn(\"\",d,n);if(l<t)return l;let c=kh(l,n);if(c==null)throw new Error(\"cannot decrement any more\");return c}if(t==null){let l=Ni(e),d=e.slice(l.length),c=Qd(l,n);return c??l+Jn(d,null,n)}let i=Ni(e),o=e.slice(i.length),r=Ni(t),s=t.slice(r.length);if(i===r)return i+Jn(o,s,n);let a=Qd(i,n);if(a==null)throw new Error(\"cannot increment any more\");return a<t?a:i+Jn(o,null,n)}function Zo(e,t,n,i=Jd){if(n===0)return[];if(n===1)return[Qn(e,t,i)];if(t==null){let s=Qn(e,t,i),a=[s];for(let l=0;l<n-1;l++)s=Qn(s,t,i),a.push(s);return a}if(e==null){let s=Qn(e,t,i),a=[s];for(let l=0;l<n-1;l++)s=Qn(e,s,i),a.push(s);return a.reverse(),a}let o=Math.floor(n/2),r=Qn(e,t,i);return[...Zo(e,r,o,i),r,...Zo(r,t,n-o-1,i)]}import{arrayToMap as qo}from\"@excalidraw/common\";var Gs=class extends Error{code=\"ELEMENT_HAS_INVALID_INDEX\"},Fh=(e,{shouldThrow:t=!1,includeBoundTextValidation:n=!1,ignoreLogs:i,reconciliationContext:o})=>{let r=[],s=l=>`${l?.index}:${l?.id}:${l?.type}:${l?.isDeleted}:${l?.version}:${l?.versionNonce}`,a=e.map(l=>l.index);for(let[l,d]of a.entries()){let c=a[l-1],u=a[l+1];if(Os(d,c,u)||r.push(`Fractional indices invariant has been compromised: \"${s(e[l-1])}\", \"${s(e[l])}\", \"${s(e[l+1])}\"`),n&&gt(e[l])){let m=e[l],p=V(m,qo(e));p&&p.index<=m.index&&r.push(`Fractional indices invariant for bound elements has been compromised: \"${s(p)}\", \"${s(m)}\"`)}}if(r.length){let l=new Gs,d=[];if(o&&(d.push(\"Additional reconciliation context:\"),d.push(o.localElements.map(c=>s(c))),d.push(o.remoteElements.map(c=>s(c)))),i||console.error(r.join(`\n\n`),l.stack,e.map(c=>s(c)),...d),t)throw l}},ic=e=>e.sort((t,n)=>nc(t)&&nc(n)?t.index<n.index?-1:t.index>n.index?1:t.id<n.id?-1:1:1),zi=(e,t)=>{try{let n=qo(e),i=Rh(e,t),o=Fs(e,i),r=e.map(s=>{let a=o.get(s);return a?{...s,index:a.index}:s});Fh(r,{includeBoundTextValidation:!1,shouldThrow:!0,ignoreLogs:!0});for(let[s,{index:a}]of o)ye(s,n,{index:a})}catch{ks(e)}return e},ks=e=>{let t=qo(e),n=oc(e),i=Fs(e,n);for(let[o,{index:r}]of i)ye(o,t,{index:r});return e},Vd=e=>{let t=qo(e),n=oc(e),i=Fs(e,n);for(let[o,{index:r}]of i)t.set(o.id,Le(o,{index:r}));return t},Rh=(e,t)=>{let n=[],i=0;for(;i<e.length;)if(t.has(e[i].id)){let o=[i-1,i];for(;++i<e.length&&t.has(e[i].id);)o.push(i);o.push(i),n.push(o)}else i++;return n},oc=e=>{let t=[],n,i,o=-1,r=0,s=d=>{let c=e[o]?e[o].index:void 0,u=e[d-1]?.index;return!c&&u||c&&u&&u>c?[u,d-1]:[c,o]},a=d=>{let c=e[r]?e[r].index:void 0;if(c&&d<r)return[c,r];let u=r;for(;++u<e.length;){let m=e[u]?.index;if(!c&&m||c&&m&&m>c)return[m,u]}return[void 0,u]},l=0;for(;l<e.length;){let d=e[l].index;if([n,o]=s(l),[i,r]=a(l),Os(d,n,i))l++;else{let c=[o,l];for(;++l<e.length;){let u=e[l].index,[m,p]=s(l),[f,h]=a(l);if(Os(u,m,f))break;[n,o]=[m,p],[i,r]=[f,h],c.push(l)}c.push(r),t.push(c)}}return t},Os=(e,t,n)=>e?t&&n?t<e&&e<n:!t&&n?e<n:t&&!n?t<e:!!e:!1,Fs=(e,t)=>{let n=new Map;for(let i of t){let o=i.shift(),r=i.pop(),s=Zo(e[o]?.index,e[r]?.index,i.length);for(let a=0;a<i.length;a++){let l=e[i[a]];n.set(l,{index:s[a]})}}return n},nc=e=>!!e.index;P();var Ec=hu(dc(),1);import{randomInteger as tE,arrayToMap as cc,toBrandedType as uc,isDevEnv as mc,isTestEnv as pc,toArray as nE}from\"@excalidraw/common\";import{isNonDeletedElement as iE}from\"@excalidraw/element\";import{isFrameLikeElement as oE}from\"@excalidraw/element\";import{getElementsInGroup as rE}from\"@excalidraw/element\";import{syncInvalidIndices as sE,syncMovedIndices as fc,validateFractionalIndices as aE}from\"@excalidraw/element\";import{getSelectedElements as lE}from\"@excalidraw/element\";import{mutateElement as dE}from\"@excalidraw/element\";var hc=e=>{let t=new Map,n=[];for(let i of e)i.isDeleted||(n.push(i),t.set(i.id,i));return{elementsMap:t,elements:n}},cE=(0,Ec.default)(e=>{(mc()||pc()||window?.DEBUG_FRACTIONAL_INDICES)&&aE(e,{shouldThrow:mc()||pc(),includeBoundTextValidation:!0})},1e3*60,{leading:!0,trailing:!1}),uE=e=>{let t=[\"includeBoundTextElement\",\"includeElementsInFrames\"],n=\"\";for(let i of t)n+=`${i}:${e[i]?\"1\":\"0\"}`;return n},ei=class{callbacks=new Set;nonDeletedElements=[];nonDeletedElementsMap=uc(new Map);elements=[];nonDeletedFramesLikes=[];frames=[];elementsMap=uc(new Map);selectedElementsCache={selectedElementIds:null,elements:null,cache:new Map};sceneNonce;getSceneNonce(){return this.sceneNonce}getNonDeletedElementsMap(){return this.nonDeletedElementsMap}getElementsIncludingDeleted(){return this.elements}getElementsMapIncludingDeleted(){return this.elementsMap}getNonDeletedElements(){return this.nonDeletedElements}getFramesIncludingDeleted(){return this.frames}constructor(t=null,n){t&&this.replaceAllElements(t,n)}getSelectedElements(t){let n=uE(t),i=t?.elements||this.nonDeletedElements;if(this.selectedElementsCache.elements===i&&this.selectedElementsCache.selectedElementIds===t.selectedElementIds){let r=this.selectedElementsCache.cache.get(n);if(r)return r}else t?.elements==null&&this.selectedElementsCache.cache.clear();let o=lE(i,{selectedElementIds:t.selectedElementIds},t);return t?.elements==null&&(this.selectedElementsCache.selectedElementIds=t.selectedElementIds,this.selectedElementsCache.elements=this.nonDeletedElements,this.selectedElementsCache.cache.set(n,o)),o}getNonDeletedFramesLikes(){return this.nonDeletedFramesLikes}getElement(t){return this.elementsMap.get(t)||null}getNonDeletedElement(t){let n=this.getElement(t);return n&&iE(n)?n:null}mapElements(t){let n=!1,i=this.elements.map(o=>{let r=t(o);return r!==o&&(n=!0),r});return n&&this.replaceAllElements(i),n}replaceAllElements(t,n){let i=nE(t),o=[];n?.skipValidation||cE(i),this.elements=sE(i),this.elementsMap.clear(),this.elements.forEach(s=>{oE(s)&&o.push(s),this.elementsMap.set(s.id,s)});let r=hc(this.elements);this.nonDeletedElements=r.elements,this.nonDeletedElementsMap=r.elementsMap,this.frames=o,this.nonDeletedFramesLikes=hc(this.frames).elements,this.triggerUpdate()}triggerUpdate(){this.sceneNonce=tE();for(let t of Array.from(this.callbacks))t()}onUpdate(t){if(this.callbacks.has(t))throw new Error;return this.callbacks.add(t),()=>{if(!this.callbacks.has(t))throw new Error;this.callbacks.delete(t)}}destroy(){this.elements=[],this.nonDeletedElements=[],this.nonDeletedFramesLikes=[],this.frames=[],this.elementsMap.clear(),this.selectedElementsCache.selectedElementIds=null,this.selectedElementsCache.elements=null,this.selectedElementsCache.cache.clear(),this.callbacks.clear()}insertElementAtIndex(t,n){if(!Number.isFinite(n)||n<0)throw new Error(\"insertElementAtIndex can only be called with index >= 0\");let i=[...this.elements.slice(0,n),t,...this.elements.slice(n)];fc(i,cc([t])),this.replaceAllElements(i)}insertElementsAtIndex(t,n){if(!t.length)return;if(!Number.isFinite(n)||n<0)throw new Error(\"insertElementAtIndex can only be called with index >= 0\");let i=[...this.elements.slice(0,n),...t,...this.elements.slice(n)];fc(i,cc(t)),this.replaceAllElements(i)}insertElement=t=>{let n=t.frameId?this.getElementIndex(t.frameId):this.elements.length;this.insertElementAtIndex(t,n)};insertElements=t=>{if(!t.length)return;let n=t[0]?.frameId?this.getElementIndex(t[0].frameId):this.elements.length;this.insertElementsAtIndex(t,n)};getElementIndex(t){return this.elements.findIndex(n=>n.id===t)}getContainerElement=t=>t&&t.containerId&&this.getElement(t.containerId)||null;getElementsFromId=t=>{let n=this.getNonDeletedElementsMap(),i=n.get(t);return i?[i]:rE(n,t)};mutateElement(t,n,i={informMutation:!0,isDragging:!1}){let o=this.getNonDeletedElementsMap(),{version:r}=t,{version:s}=dE(t,o,n,i);return this.elementsMap.has(t.id)&&r!==s&&i.informMutation&&this.triggerUpdate(),t}};var Y=class e{constructor(t,n){this.deleted=t;this.inserted=n}static create(t,n,i,o){let r=i&&o!==\"inserted\"?i(t,\"deleted\"):t,s=i&&o!==\"deleted\"?i(n,\"inserted\"):n;return new e(r,s)}static calculate(t,n,i,o){if(t===n)return e.empty();let r={},s={};for(let d of this.getDifferences(t,n))r[d]=t[d],s[d]=n[d];let[a,l]=o?o(r,s):[r,s];return e.create(a,l,i)}static empty(){return new e({},{})}static isEmpty(t){return!Object.keys(t.deleted).length&&!Object.keys(t.inserted).length}static merge(t,n,i=e.empty()){return e.create({...t.deleted,...n.deleted,...i.deleted},{...t.inserted,...n.inserted,...i.inserted})}static mergeObjects(t,n,i={}){let o={...t};for(let r of Object.keys(i))delete o[r];return{...o,...n}}static mergeArrays(t,n,i,o){return Object.values(e.mergeObjects($t(t??[],o),$t(n??[],o),$t(i??[],o)))}static diffObjects(t,n,i,o){if(!t[i]&&!n[i])return;let r=t[i]!==null&&typeof t[i]==\"object\",s=n[i]!==null&&typeof n[i]==\"object\";if(r||s){let a=t[i]??{},l=n[i]??{},d=e.getLeftDifferences(a,l).reduce((u,m)=>(u[m]=o(a[m]),u),{}),c=e.getRightDifferences(a,l).reduce((u,m)=>(u[m]=o(l[m]),u),{});Object.keys(d).length||Object.keys(c).length?(Reflect.set(t,i,d),Reflect.set(n,i,c)):(Reflect.deleteProperty(t,i),Reflect.deleteProperty(n,i))}else t[i]===n[i]&&(Reflect.deleteProperty(t,i),Reflect.deleteProperty(n,i))}static diffArrays(t,n,i,o){if(!(!t[i]&&!n[i])&&(Array.isArray(t[i])||Array.isArray(n[i]))){let r=Array.isArray(t[i])?t[i]:[],s=Array.isArray(n[i])?n[i]:[],a=$t(e.getLeftDifferences($t(r,o),$t(s,o)),d=>d),l=$t(e.getRightDifferences($t(r,o),$t(s,o)),d=>d);if(Object.keys(a).length||Object.keys(l).length){let d=r.filter(u=>a[o?o(u):String(u)]),c=s.filter(u=>l[o?o(u):String(u)]);Reflect.set(t,i,d),Reflect.set(n,i,c)}else Reflect.deleteProperty(t,i),Reflect.deleteProperty(n,i)}}static isLeftDifferent(t,n,i=!1){return!!this.distinctKeysIterator(\"left\",t,n,i).next().value}static isRightDifferent(t,n,i=!1){return!!this.distinctKeysIterator(\"right\",t,n,i).next().value}static isInnerDifferent(t,n,i=!1){return!!!!this.distinctKeysIterator(\"inner\",t,n,i).next().value}static isDifferent(t,n,i=!1){return!!!!this.distinctKeysIterator(\"full\",t,n,i).next().value}static getLeftDifferences(t,n,i=!1){return Array.from(this.distinctKeysIterator(\"left\",t,n,i)).sort()}static getRightDifferences(t,n,i=!1){return Array.from(this.distinctKeysIterator(\"right\",t,n,i)).sort()}static getInnerDifferences(t,n,i=!1){return Array.from(this.distinctKeysIterator(\"inner\",t,n,i)).sort()}static getDifferences(t,n,i=!1){return Array.from(this.distinctKeysIterator(\"full\",t,n,i)).sort()}static*distinctKeysIterator(t,n,i,o=!1){if(n===i)return;let r=[];t===\"left\"?r=Object.keys(n):t===\"right\"?r=Object.keys(i):t===\"inner\"?r=Object.keys(n).filter(s=>s in i):t===\"full\"?r=Array.from(new Set([...Object.keys(n),...Object.keys(i)])):xc(t,`Unknown distinctKeysIterator's join param \"${t}\"`,!0);for(let s of r){let a=n[s],l=i[s];if(a!==l){if(!o&&typeof a==\"object\"&&typeof l==\"object\"&&a!==null&&l!==null&&wc(a,l))continue;yield s}}}},xn=class e{constructor(t){this.delta=t}static create(t){return new e(t)}static calculate(t,n){let i=Y.calculate(t,n,e.orderAppStateKeys,e.postProcess);return new e(i)}static restore(t){let{delta:n}=t;return new e(n)}static empty(){return new e(Y.create({},{}))}inverse(){let t=Y.create(this.delta.inserted,this.delta.deleted);return new e(t)}squash(t){if(t.isEmpty())return this;let n=Y.mergeObjects(this.delta.deleted.selectedElementIds??{},t.delta.deleted.selectedElementIds??{}),i=Y.mergeObjects(this.delta.inserted.selectedElementIds??{},t.delta.inserted.selectedElementIds??{}),o=Y.mergeObjects(this.delta.deleted.selectedGroupIds??{},t.delta.deleted.selectedGroupIds??{}),r=Y.mergeObjects(this.delta.inserted.selectedGroupIds??{},t.delta.inserted.selectedGroupIds??{}),s=Y.mergeObjects(this.delta.deleted.lockedMultiSelections??{},t.delta.deleted.lockedMultiSelections??{}),a=Y.mergeObjects(this.delta.inserted.lockedMultiSelections??{},t.delta.inserted.lockedMultiSelections??{}),l={},d={};return(Object.keys(n).length||Object.keys(i).length)&&(d.selectedElementIds=n,l.selectedElementIds=i),(Object.keys(o).length||Object.keys(r).length)&&(d.selectedGroupIds=o,l.selectedGroupIds=r),(Object.keys(s).length||Object.keys(a).length)&&(d.lockedMultiSelections=s,l.lockedMultiSelections=a),this.delta=Y.merge(this.delta,t.delta,Y.create(d,l)),this}applyTo(t,n){try{let{selectedElementIds:i={},selectedGroupIds:o={},lockedMultiSelections:r={}}=this.delta.deleted,{selectedElementIds:s={},selectedGroupIds:a={},lockedMultiSelections:l={},selectedLinearElement:d,...c}=this.delta.inserted,u=Y.mergeObjects(t.selectedElementIds,s,i),m=Y.mergeObjects(t.selectedGroupIds,a,o),p=Y.mergeObjects(t.lockedMultiSelections,l,r),f=d&&n.has(d.elementId)?new C(n.get(d.elementId),n,d.isEditing):null,h={...t,...c,selectedElementIds:u,selectedGroupIds:m,lockedMultiSelections:p,selectedLinearElement:typeof d<\"u\"?f:t.selectedLinearElement},E=this.filterInvisibleChanges(t,h,n);return[h,E]}catch(i){if(console.error(\"Couldn't apply appstate change\",i),Pn()||yn())throw i;return[t,!1]}}isEmpty(){return Y.isEmpty(this.delta)}filterInvisibleChanges(t,n,i){let o=Kn(t),r=Kn(n),s=Y.isRightDifferent(e.stripElementsProps(o),e.stripElementsProps(r)),a=Y.isRightDifferent(e.stripStandaloneProps(o),e.stripStandaloneProps(r));if(!s&&!a)return!1;let l={value:s};if(a){let d=Y.getRightDifferences(e.stripStandaloneProps(o),e.stripStandaloneProps(r)),c=new Set;(d.includes(\"editingGroupId\")||d.includes(\"selectedGroupIds\"))&&(c=cd(i));for(let u of d)switch(u){case\"selectedElementIds\":n[u]=e.filterSelectedElements(n[u],i,l);break;case\"selectedGroupIds\":n[u]=e.filterSelectedGroups(n[u],c,l);break;case\"croppingElementId\":{let x=n[u];if(!x)l.value=!0;else{let w=i.get(x);w&&!w.isDeleted?l.value=!0:n[u]=null}break}case\"editingGroupId\":let m=n[u];m?c.has(m)?l.value=!0:n[u]=null:l.value=!0;break;case\"selectedLinearElement\":let p=n[u];if(!p)l.value=!0;else{let x=i.get(p.elementId);x&&!x.isDeleted?l.value=!0:n[u]=null}break;case\"lockedMultiSelections\":let f=t[u]||{},h=n[u]||{};wc(f,h)||(l.value=!0);break;case\"activeLockedId\":let E=t[u]||null,g=n[u]||null;E!==g&&(l.value=!0);break;default:xc(u,`Unknown ObservedElementsAppState's key \"${u}\"`,!0)}}return l.value}static filterSelectedElements(t,n,i){let o=Object.keys(t);if(!o.length)return i.value=!0,t;let r={...t};for(let s of o){let a=n.get(s);a&&!a.isDeleted?i.value=!0:delete r[s]}return r}static filterSelectedGroups(t,n,i){if(!Object.keys(t).length)return i.value=!0,t;let r={...t};for(let s of Object.keys(r))n.has(s)?i.value=!0:delete r[s];return r}static stripElementsProps(t){let{editingGroupId:n,selectedGroupIds:i,selectedElementIds:o,selectedLinearElement:r,croppingElementId:s,lockedMultiSelections:a,activeLockedId:l,...d}=t;return d}static stripStandaloneProps(t){let{name:n,viewBackgroundColor:i,...o}=t;return o}static postProcess(t,n){try{Y.diffObjects(t,n,\"selectedElementIds\",i=>!0),Y.diffObjects(t,n,\"selectedGroupIds\",i=>i??!1),Y.diffObjects(t,n,\"lockedMultiSelections\",i=>i??{})}catch(i){if(console.error(\"Couldn't postprocess appstate change deltas.\"),Pn()||yn())throw i}finally{return[t,n]}}static orderAppStateKeys(t){let n={};for(let i of Object.keys(t).sort())n[i]=t[i];return n}},wn=class e{constructor(t,n,i){this.added=t;this.removed=n;this.updated=i}static create(t,n,i,o={shouldRedistribute:!1}){let r;if(o.shouldRedistribute){let s={},a={},l={},d=[...Object.entries(t),...Object.entries(n),...Object.entries(i)];for(let[c,u]of d)this.satisfiesAddition(u)?s[c]=u:this.satisfiesRemoval(u)?a[c]=u:l[c]=u;r=new e(s,a,l)}else r=new e(t,n,i);return(Pn()||yn())&&(e.validate(r,\"added\",this.satisfiesAddition),e.validate(r,\"removed\",this.satisfiesRemoval),e.validate(r,\"updated\",this.satisfiesUpdate)),r}static restore(t){let{added:n,removed:i,updated:o}=t;return e.create(n,i,o)}static satisfiesAddition=({deleted:t,inserted:n})=>t.isDeleted===!0&&!n.isDeleted;static satisfiesRemoval=({deleted:t,inserted:n})=>!t.isDeleted&&n.isDeleted===!0;static satisfiesUpdate=({deleted:t,inserted:n})=>!!t.isDeleted==!!n.isDeleted;static satisfiesCommmonInvariants=({deleted:t,inserted:n})=>!!(Number.isInteger(t.version)&&Number.isInteger(n.version)&&t.version>=0&&n.version>=0&&t.version!==n.version);static satisfiesUniqueInvariants=(t,n)=>{let{added:i,removed:o,updated:r}=t;return[i[n],o[n],r[n]].filter(Boolean).length===1};static validate(t,n,i){for(let[o,r]of Object.entries(t[n]))if(!this.satisfiesCommmonInvariants(r)||!this.satisfiesUniqueInvariants(t,o)||!i(r))throw console.error(`Broken invariant for \"${n}\" delta, element \"${o}\", delta:`,r),new Error(`ElementsDelta invariant broken for element \"${o}\".`)}static calculate(t,n){if(t===n)return e.empty();let i={},o={},r={};for(let s of t.values())if(!n.get(s.id)){let l={...s},d={isDeleted:!0,version:s.version+1,versionNonce:gc()},c=Y.create(l,d,e.stripIrrelevantProps);s.isDeleted?r[s.id]=c:o[s.id]=c}for(let s of n.values()){let a=t.get(s.id);if(!a){let l={isDeleted:!0,version:s.version-1,versionNonce:gc()},d={...s},c=Y.create(l,d,e.stripIrrelevantProps);s.isDeleted?r[s.id]=c:i[s.id]=c;continue}if(a.versionNonce!==s.versionNonce){let l=Y.calculate(a,s,e.stripIrrelevantProps,e.postProcess);if(typeof a.isDeleted==\"boolean\"&&typeof s.isDeleted==\"boolean\"&&a.isDeleted!==s.isDeleted){a.isDeleted&&!s.isDeleted?i[s.id]=l:o[s.id]=l;continue}r[s.id]=l}}return e.create(i,o,r)}static empty(){return e.create({},{},{})}inverse(){let t=r=>{let s={};for(let[a,{inserted:l,deleted:d}]of Object.entries(r))s[a]=Y.create({...l},{...d});return s},n=t(this.added),i=t(this.removed),o=t(this.updated);return e.create(i,n,o)}isEmpty(){return Object.keys(this.added).length===0&&Object.keys(this.removed).length===0&&Object.keys(this.updated).length===0}applyLatestChanges(t,n,i){let o=(d,c)=>(u,m)=>{let p;switch(m){case\"deleted\":p=d;break;case\"inserted\":p=c;break}if(!p)return console.error(\"Element not found when trying to apply latest changes\"),u;let f={};for(let h of Object.keys(u))switch(h){case\"boundElements\":f[h]=u[h];break;default:f[h]=p[h]}return f},r=d=>{let c={};for(let[u,m]of Object.entries(d)){let p=t.get(u),f=n.get(u),h=null;p||f?h=Y.create(m.deleted,m.inserted,o(p,f),i):h=m,Y.isInnerDifferent(h.deleted,h.inserted)&&(c[u]=h)}return c},s=r(this.added),a=r(this.removed),l=r(this.updated);return e.create(s,a,l,{shouldRedistribute:!0})}applyTo(t,n=bn.empty().elements,i){let o=new Map(t),r,s={containsVisibleDifference:!1,containsZindexDifference:!1,applyDirection:void 0};try{let a=e.createApplier(t,o,n,s,i),l=a(this.added),d=a(this.removed),c=a(this.updated),u=this.resolveConflicts(t,o,s.applyDirection);r=new Map([...l,...d,...c,...u])}catch(a){if(console.error(\"Couldn't apply elements delta\",a),Pn()||yn())throw a;return[t,!0]}try{o=e.reorderElements(o,r,s),e.redrawElements(o,r)}catch(a){if(console.error(\"Couldn't mutate elements after applying elements change\",a),Pn()||yn())throw a}finally{return[o,s.containsVisibleDifference]}}squash(t){if(t.isEmpty())return this;let{added:n,removed:i,updated:o}=t,r=(s,a)=>{let l=Y.mergeArrays(s.deleted.boundElements??[],a.deleted.boundElements??[],void 0,c=>c.id)??[],d=Y.mergeArrays(s.inserted.boundElements??[],a.inserted.boundElements??[],void 0,c=>c.id)??[];if(!(!l.length&&!d.length))return Y.create({boundElements:l},{boundElements:d})};for(let[s,a]of Object.entries(n)){let l=this.added[s]??this.removed[s]??this.updated[s];if(!l)this.added[s]=a;else{let d=r(l,a);delete this.removed[s],delete this.updated[s],this.added[s]=Y.merge(l,a,d)}}for(let[s,a]of Object.entries(i)){let l=this.added[s]??this.removed[s]??this.updated[s];if(!l)this.removed[s]=a;else{let d=r(l,a);delete this.added[s],delete this.updated[s],this.removed[s]=Y.merge(l,a,d)}}for(let[s,a]of Object.entries(o)){let l=this.added[s]??this.removed[s]??this.updated[s];if(!l)this.updated[s]=a;else{let d=r(l,a),c=Y.merge(l,a,d);l===this.added[s]?this.added[s]=c:l===this.removed[s]?this.removed[s]=c:this.updated[s]=c}}return(Pn()||yn())&&(e.validate(this,\"added\",e.satisfiesAddition),e.validate(this,\"removed\",e.satisfiesRemoval),e.validate(this,\"updated\",e.satisfiesUpdate)),this}static createApplier=(t,n,i,o,r)=>s=>{let a=e.createGetter(n,i,o);return Object.entries(s).reduce((l,[d,c])=>{let u=a(d,c.inserted);if(u){let m=e.applyDelta(u,c,o,r);if(n.set(m.id,m),l.set(m.id,m),!o.applyDirection){let p=t.get(d);p&&(o.applyDirection=p.version>m.version?\"backward\":\"forward\")}}return l},new Map)};static createGetter=(t,n,i)=>(o,r)=>{let s=t.get(o);return s||(s=n.get(o),s?(i.containsZindexDifference=!0,(!r.isDeleted||r.isDeleted&&!s.isDeleted)&&(i.containsVisibleDifference=!0)):s=Le({id:o,version:1},{...r})),s};static applyDelta(t,n,i,o){let r={};for(let s of Object.keys(n.inserted)){if(s===\"boundElements\"||o?.excludedProperties?.has(s))continue;let a=n.inserted[s];Reflect.set(r,s,a)}if(n.deleted.boundElements?.length||n.inserted.boundElements?.length){let s=Y.mergeArrays(t.boundElements,n.inserted.boundElements,n.deleted.boundElements,a=>a.id);Object.assign(r,{boundElements:s})}if(!i.containsVisibleDifference){let{index:s,...a}=r,l=e.checkForVisibleDifference(t,a);i.containsVisibleDifference=l}return i.containsZindexDifference||(i.containsZindexDifference=n.deleted.index!==n.inserted.index),Le(t,r,!0)}static checkForVisibleDifference(t,n){return t.isDeleted&&n.isDeleted!==!1?!1:t.isDeleted&&n.isDeleted===!1||t.isDeleted===!1&&n.isDeleted?!0:Y.isRightDifferent(t,n)}resolveConflicts(t,n,i=\"forward\"){let o=new Map,r=(a,l)=>{let d=n.get(a.id);if(!d)return;let c=t.get(a.id),u=i===\"forward\"?d.version+1:d.version-1,m=l,p;c===d?p=Le(d,{...m,version:u},!0):p=ye(d,n,{...m,version:c?.version!==d.version?d.version:u}),o.set(p.id,p),n.set(p.id,p)};for(let a of Object.keys(this.removed))e.unbindAffected(t,n,a,r);for(let a of Object.keys(this.added))e.rebindAffected(t,n,a,r);for(let[a]of Array.from(Object.entries(this.updated)).filter(([l,d])=>Object.keys({...d.deleted,...d.inserted}).find(c=>Hl.has(c)))){let l=n.get(a);!l||l.isDeleted||e.rebindAffected(t,n,a,r)}let s=new Map(Array.from(t).filter(([a])=>o.has(a)));return this.squash(e.calculate(s,o)),o}static unbindAffected(t,n,i,o){let r=()=>t.get(i),s=()=>n.get(i);mn.unbindAffected(n,r(),o),mn.unbindAffected(n,s(),o),pn.unbindAffected(n,r(),o),pn.unbindAffected(n,s(),o)}static rebindAffected(t,n,i,o){let r=()=>t.get(i),s=()=>n.get(i);mn.unbindAffected(n,r(),o),mn.rebindAffected(n,s(),o),pn.unbindAffected(n,r(),(a,l)=>{Q(a)&&o(a,l)}),pn.rebindAffected(n,s(),o)}static redrawElements(t,n){try{let i=new ei(t,{skipValidation:!0});e.redrawTextBoundingBoxes(i,n),e.redrawBoundArrows(i,n)}catch(i){if(console.error(\"Couldn't redraw elements\",i),Pn()||yn())throw i}finally{return t}}static redrawTextBoundingBoxes(t,n){let i=t.getNonDeletedElementsMap(),o=new Map;for(let r of n.values()){if(ce(r)){let{containerId:s}=r,a=s?i.get(s):void 0;a&&o.set(a.id,{container:a,boundText:r})}if(gt(r)){let s=Rt(r),a=s?i.get(s):void 0;a&&o.set(r.id,{container:r,boundText:a})}}for(let{container:r,boundText:s}of o.values())r.isDeleted||s.isDeleted||xo(s,r,t)}static redrawBoundArrows(t,n){for(let i of n.values())!i.isDeleted&&de(i)&&De(i,t,{changedElements:n})}static reorderElements(t,n,i){if(!i.containsZindexDifference)return t;let o=Array.from(t.values()),r=ic([...o]),s=Y.getRightDifferences(o,r,!0).reduce((a,l)=>{let d=o[Number(l)];return d&&n.has(d.id)&&a.set(d.id,d),a},new Map);return!i.containsVisibleDifference&&s.size&&(i.containsVisibleDifference=!0),mE(zi(r,s))}static postProcess(t,n){try{Y.diffArrays(t,n,\"boundElements\",r=>r.id);let i=t.points??[],o=n.points??[];Y.isDifferent(i,o)||(Reflect.deleteProperty(t,\"points\"),Reflect.deleteProperty(n,\"points\"))}catch(i){if(console.error(\"Couldn't postprocess elements delta.\"),Pn()||yn())throw i}finally{return[t,n]}}static stripIrrelevantProps(t){let{id:n,updated:i,...o}=t;return o}};P();var bI=(e,t,n,i,o)=>{let[r,s,a,l]=n.axis===\"x\"?[\"minX\",\"midX\",\"maxX\",\"width\"]:[\"minY\",\"midY\",\"maxY\",\"height\"],d=jt(e),c=zo(e,t,i).map(f=>[f,jt(f)]).sort((f,h)=>f[1][s]-h[1][s]),u=0;for(let f of c)u+=f[1][l];let m=(d[l]-u)/(c.length-1);if(m<0){let f=c.findIndex(x=>x[1][r]===d[r]),h=c.findIndex(x=>x[1][a]===d[a]),E=(c[h][1][s]-c[f][1][s])/(c.length-1),g=c[f][1][s];return c.flatMap(([x,w],y)=>{let b={x:0,y:0};return y!==f&&y!==h&&(g+=E,b[n.axis]=g-w[s]),x.map(I=>{let A=o.mutateElement(I,{x:I.x+b.x,y:I.y+b.y});return De(I,o,{simultaneouslyUpdated:x}),A})})}let p=d[r];return c.flatMap(([f,h])=>{let E={x:0,y:0};return E[n.axis]=p-h[r],p+=m,p+=h[l],f.map(g=>{let x=o.mutateElement(g,{x:g.x+E.x,y:g.y+E.y});return De(g,o,{simultaneouslyUpdated:f}),x})})};P();import{TEXT_AUTOWRAP_THRESHOLD as pE,getGridPoint as fE,getFontString as hE,DRAGGING_THRESHOLD as EE}from\"@excalidraw/common\";var BI=(e,t,n,i,o,r)=>{if(t.length===1&&U(t[0])&&(t[0].startBinding||t[0].endBinding))return;let s=t.filter(m=>{if(U(m)&&m.startBinding&&m.endBinding){let p=t.find(h=>h.id===m.startBinding?.elementId),f=t.find(h=>h.id===m.endBinding?.elementId);return p&&f}return!0}),a=new Set(s),l=s.filter(m=>Z(m)).map(m=>m.id);if(l.length>0)for(let m of i.getNonDeletedElements())m.frameId!==null&&l.includes(m.frameId)&&a.add(m);let d=[];for(let m of a){let p=e.originalElements.get(m.id);if(!p)return;d.push(p)}let c=gE(ke(d),n,o,r),u=new Set(Array.from(a,m=>m.id));a.forEach(m=>{let p=!H(m),f=p||(m.startBinding?u.has(m.startBinding.elementId):!1),h=p||(m.endBinding?u.has(m.endBinding.elementId):!1);if(H(m)){if(a.size>1||Math.max(Math.abs(c.x),Math.abs(c.y))>EE||!m.startBinding&&!m.endBinding){Ns(e,m,i,c);let E=m.startBinding&&!f,g=m.endBinding&&!h;(E||g)&&(E&&ve(m,\"start\",i),g&&ve(m,\"end\",i))}}else{Ns(e,m,i,c);let E=V(m,i.getNonDeletedElementsMap());E&&Ns(e,E,i,c),De(m,i,{simultaneouslyUpdated:Array.from(a)})}})},gE=(e,t,n,i)=>{let[o,r]=e,s=o+t.x+n.x,a=r+t.y+n.y;if(n.x===0||n.y===0){let[l,d]=fE(o+t.x,r+t.y,i);n.x===0&&(s=l),n.y===0&&(a=d)}return{x:s-o,y:a-r}},Ns=(e,t,n,i)=>{let o=e.originalElements.get(t.id)??t,r=o.x+i.x,s=o.y+i.y;n.mutateElement(t,{x:r,y:s})},LI=(e,t,n)=>{let[i,o]=ke(e);return[t-i,n-o]},CI=({newElement:e,elementType:t,originX:n,originY:i,x:o,y:r,width:s,height:a,shouldMaintainAspectRatio:l,shouldResizeFromCenter:d,zoom:c,scene:u,widthAspectRatio:m=null,originOffset:p=null,informMutation:f=!0})=>{l&&e.type!==\"selection\"&&(m?a=s/m:(Math.abs(r-i)>Math.abs(o-n)?{width:s,height:a}=Ms(t,a,o<n?-s:s):{width:s,height:a}=Ms(t,s,r<i?-a:a),a<0&&(a=-a)));let h=o<n?n-s:n,E=r<i?i-a:i;d&&(s+=s,a+=a,h=n-s/2,E=i-a/2);let g=null;if(Q(e)){a=e.height;let x=fo(hE({fontSize:e.fontSize,fontFamily:e.fontFamily}),e.lineHeight);s=Math.max(s,x),Math.abs(o-n)>pE/c&&(g={autoResize:!1}),E=i,d&&(h=n-s/2)}if(s!==0&&a!==0){let x=null;we(e)&&(x={initialWidth:s,initialHeight:a}),u.mutateElement(e,{x:h+(p?.x??0),y:E+(p?.y??0),width:s,height:a,...g,...x},{informMutation:f,isDragging:!1})}};P();import{ELEMENT_LINK_KEY as Qo,normalizeLink as bc}from\"@excalidraw/common\";var RI=(e,t)=>{let n=window.location.href;try{let i=new URL(n);return i.searchParams.set(Qo,e),bc(i.toString())}catch(i){console.error(i)}return bc(n)},NI=(e,t)=>{if(e.length>0&&xE(e)){if(e.length===1)return{id:e[0].id,type:\"element\"};if(e.length>1){let n=Object.keys(t.selectedGroupIds)[0];return n?{id:n,type:\"group\"}:{id:e[0].groupIds[0],type:\"group\"}}}return null},xE=e=>!!(e.length===1||e.length>1&&ud(e)),zI=e=>{try{let t=new URL(e);return t.searchParams.has(Qo)&&t.host===window.location.host}catch{return!1}},HI=e=>{try{let{searchParams:t}=new URL(e);if(t.has(Qo))return t.get(Qo)}catch{}return null};P();import{FONT_FAMILY as BE,VERTICAL_ALIGN as LE,escapeDoubleQuotes as zs,getFontString as CE}from\"@excalidraw/common\";P();import{DEFAULT_ELEMENT_PROPS as In,DEFAULT_FONT_FAMILY as wE,DEFAULT_FONT_SIZE as bE,DEFAULT_TEXT_ALIGN as yE,DEFAULT_VERTICAL_ALIGN as PE,VERTICAL_ALIGN as IE,randomInteger as SE,randomId as AE,getFontString as Jo,getUpdatedTimestamp as ME,getLineHeight as TE}from\"@excalidraw/common\";var mt=(e,{x:t,y:n,strokeColor:i=In.strokeColor,backgroundColor:o=In.backgroundColor,fillStyle:r=In.fillStyle,strokeWidth:s=In.strokeWidth,strokeStyle:a=In.strokeStyle,roughness:l=In.roughness,opacity:d=In.opacity,width:c=0,height:u=0,angle:m=0,groupIds:p=[],frameId:f=null,index:h=null,roundness:E=null,boundElements:g=null,link:x=null,locked:w=In.locked,...y})=>((t<-1e6||t>1e6||n<-1e6||n>1e6||c<-1e6||c>1e6||u<-1e6||u>1e6)&&console.error(\"New element size or position is too large\",{x:t,y:n,width:c,height:u,points:y.points}),{id:y.id||AE(),type:e,x:t,y:n,width:c,height:u,angle:m,strokeColor:i,backgroundColor:o,fillStyle:r,strokeWidth:s,strokeStyle:a,roughness:l,opacity:d,groupIds:p,frameId:f,index:h,roundness:E,seed:y.seed??SE(),version:y.version||1,versionNonce:y.versionNonce??0,isDeleted:!1,boundElements:g,updated:ME(),link:x,locked:w,customData:y.customData}),Rn=e=>mt(e.type,e),qI=e=>mt(\"embeddable\",e),KI=e=>({...mt(\"iframe\",e)}),yc=e=>Le({...mt(\"frame\",e),type:\"frame\",name:e?.name||null},{}),Pc=e=>Le({...mt(\"magicframe\",e),type:\"magicframe\",name:e?.name||null},{}),Ic=(e,t)=>({x:e.textAlign===\"center\"?t.width/2:e.textAlign===\"right\"?t.width:0,y:e.verticalAlign===\"middle\"?t.height/2:0}),Nn=e=>{let t=e.fontFamily||wE,n=e.fontSize||bE,i=e.lineHeight||TE(t),o=xi(e.text),r=Ve(o,Jo({fontFamily:t,fontSize:n}),i),s=e.textAlign||yE,a=e.verticalAlign||PE,l=Ic({textAlign:s,verticalAlign:a},r),d={...mt(\"text\",e),text:o,fontSize:n,fontFamily:t,textAlign:s,verticalAlign:a,x:e.x-l.x,y:e.y-l.y,width:r.width,height:r.height,containerId:e.containerId||null,originalText:e.originalText??o,autoResize:e.autoResize??!0,lineHeight:i};return Le(d,{})},vE=(e,t,n)=>{let{width:i,height:o}=Ve(n,Jo(e),e.lineHeight);e.autoResize||(i=e.width);let{textAlign:r,verticalAlign:s}=e,a,l;if(r===\"center\"&&s===IE.MIDDLE&&!e.containerId&&e.autoResize){let d=Ve(e.text,Jo(e),e.lineHeight),c=Ic(e,{width:i-d.width,height:o-d.height});a=e.x-c.x,l=e.y-c.y}else{let[d,c,u,m]=$(e,t),[p,f,h,E]=Jt(e,i,o,!1),g=(d-p)/2,x=(c-f)/2,w=(u-h)/2,y=(m-E)/2;[a,l]=DE({s:!0,e:r===\"center\"||r===\"left\",w:r===\"center\"||r===\"right\"},e.x,e.y,e.angle,g,x,w,y)}return{width:i,height:o,x:Number.isFinite(a)?a:e.x,y:Number.isFinite(l)?l:e.y}},DE=(e,t,n,i,o,r,s,a)=>{let l=Math.cos(i),d=Math.sin(i);return e.e&&e.w?t+=o+s:e.e?(t+=o*(1+l),n+=o*d,t+=s*(1-l),n+=s*-d):e.w&&(t+=o*(1-l),n+=o*-d,t+=s*(1+l),n+=s*d),e.n&&e.s?n+=r+a:e.n?(t+=r*d,n+=r*(1-l),t+=a*-d,n+=a*(1+l)):e.s&&(t+=r*-d,n+=r*(1+l),t+=a*d,n+=a*(1-l)),[t,n]},QI=(e,t,n,i=e.text)=>{if(e.isDeleted)return;(t||!e.autoResize)&&(i=Ft(i,Jo(e),t?dt(t,e):e.width));let o=vE(e,n,i);return{text:i,...o}},JI=e=>({...mt(e.type,e),points:e.points||[],pressures:e.pressures||[],simulatePressure:e.simulatePressure}),Sc=e=>{let t={...mt(e.type,e),points:e.points||[],startBinding:null,endBinding:null,startArrowhead:null,endArrowhead:null};return Lt(t)?{...t,polygon:e.polygon??!1}:t},er=e=>e.elbowed?{...mt(e.type,e),points:e.points||[],startBinding:null,endBinding:null,startArrowhead:e.startArrowhead||null,endArrowhead:e.endArrowhead||null,elbowed:!0,fixedSegments:e.fixedSegments||[],startIsSpecial:!1,endIsSpecial:!1}:{...mt(e.type,e),points:e.points||[],startBinding:null,endBinding:null,startArrowhead:e.startArrowhead||null,endArrowhead:e.endArrowhead||null,elbowed:!1},Ac=e=>({...mt(\"image\",e),strokeColor:\"transparent\",status:e.status??\"pending\",fileId:e.fileId??null,scale:e.scale??[1,1],crop:e.crop??null});var pt=new Map,GE=/^(?:http(?:s)?:\\/\\/)?(?:www\\.)?youtu(?:be\\.com|\\.be)\\/(embed\\/|watch\\?v=|shorts\\/|playlist\\?list=|embed\\/videoseries\\?list=)?([a-zA-Z0-9_-]+)/,OE=/^(?:http(?:s)?:\\/\\/)?(?:(?:w){3}\\.)?(?:player\\.)?vimeo\\.com\\/(?:video\\/)?([^?\\s]+)(?:\\?.*)?$/,kE=/^https:\\/\\/(?:www\\.)?figma\\.com/,Mc=/^https:\\/\\/gist\\.github\\.com\\/([\\w_-]+)\\/([\\w_-]+)/,FE=/^<script[\\s\\S]*?\\ssrc=[\"'](https:\\/\\/gist\\.github\\.com\\/.*?)\\.js[\"']/i,RE=/^(?:https?:\\/\\/)?forms\\.microsoft\\.com\\//,Tc=/(?:https?:\\/\\/)?(?:(?:w){3}\\.)?(?:twitter|x)\\.com\\/[^/]+\\/status\\/(\\d+)/,NE=/^<blockquote[\\s\\S]*?\\shref=[\"'](https?:\\/\\/(?:twitter|x)\\.com\\/[^\"']*)/i,zE=/^https:\\/\\/(?:www\\.)?val\\.town\\/(v|embed)\\/[a-zA-Z_$][0-9a-zA-Z_$]+\\.[a-zA-Z_$][0-9a-zA-Z_$]+/,HE=/^<(?:iframe|blockquote)[\\s\\S]*?\\s(?:src|href)=[\"']([^\"']*)[\"'][\\s\\S]*?>$/i,vc=/giphy.com\\/(?:clips|embed|gifs)\\/[a-zA-Z0-9]*?-?([a-zA-Z0-9]+)(?:[^a-zA-Z0-9]|$)/,Dc=/^(?:http(?:s)?:\\/\\/)?(?:www\\.)?reddit\\.com\\/r\\/([a-zA-Z0-9_]+)\\/comments\\/([a-zA-Z0-9_]+)\\/([a-zA-Z0-9_]+)\\/?(?:\\?[^#\\s]*)?(?:#[^\\s]*)?$/,_E=/^<blockquote[\\s\\S]*?\\shref=[\"'](https?:\\/\\/(?:www\\.)?reddit\\.com\\/[^\"']*)/i,Lc=e=>{let t;try{let s=new URL(e.startsWith(\"http\")?e:`https://${e}`);t=s.searchParams.get(\"t\")||s.searchParams.get(\"start\")}catch{t=e.match(/[?&#](?:t|start)=([^&#\\s]+)/)?.[1]}if(!t)return 0;if(/^\\d+$/.test(t))return parseInt(t,10);let n=t.match(/^(?:(\\d+)h)?(?:(\\d+)m)?(?:(\\d+)s)?$/);if(!n)return 0;let[,i=\"0\",o=\"0\",r=\"0\"]=n;return parseInt(i)*3600+parseInt(o)*60+parseInt(r)},UE=e=>{try{let t=new URL(e.startsWith(\"http\")?e:`https://${e}`);if(t.hostname.replace(/^www\\./,\"\")!==\"drive.google.com\")return null;let i=null,o=t.pathname.match(/^\\/file\\/d\\/([^/]+)(?:\\/|$)/);if(o?.[1]?i=o[1]:(t.pathname===\"/open\"||t.pathname===\"/uc\")&&(i=t.searchParams.get(\"id\")),!i||!/^[a-zA-Z0-9_-]+$/.test(i))return null;let r=t.searchParams.get(\"resourcekey\"),s=Lc(t.toString());return{fileId:i,resourceKey:r&&/^[a-zA-Z0-9_-]+$/.test(r)?r:void 0,timestamp:s>0?s:void 0}}catch{return null}},_s=new Set([\"youtube.com\",\"youtu.be\",\"vimeo.com\",\"player.vimeo.com\",\"drive.google.com\",\"figma.com\",\"link.excalidraw.com\",\"gist.github.com\",\"twitter.com\",\"x.com\",\"*.simplepdf.eu\",\"stackblitz.com\",\"val.town\",\"giphy.com\",\"reddit.com\",\"forms.microsoft.com\"]),Bc=new Set([\"youtube.com\",\"youtu.be\",\"vimeo.com\",\"player.vimeo.com\",\"drive.google.com\",\"figma.com\",\"twitter.com\",\"x.com\",\"*.simplepdf.eu\",\"stackblitz.com\",\"reddit.com\",\"forms.microsoft.com\"]),Hs=e=>`<html><body>${e}</body></html>`,sS=e=>{if(!e)return null;if(pt.has(e))return pt.get(e);let t=e,n=Bc.has(Us(e,Bc)||\"\"),i=\"generic\",o={w:560,h:840},r=e.match(GE);if(r?.[2]){let c=Lc(t),u=c>0?`&start=${c}`:\"\",m=e.includes(\"shorts\");switch(i=\"video\",r[1]){case\"embed/\":case\"watch?v=\":case\"shorts/\":e=`https://www.youtube.com/embed/${r[2]}?enablejsapi=1${u}`;break;case\"playlist?list=\":case\"embed/videoseries?list=\":e=`https://www.youtube.com/embed/videoseries?list=${r[2]}&enablejsapi=1${u}`;break;default:e=`https://www.youtube.com/embed/${r[2]}?enablejsapi=1${u}`;break}return o=m?{w:315,h:560}:{w:560,h:315},pt.set(t,{link:e,intrinsicSize:o,type:i,sandbox:{allowSameOrigin:n}}),{link:e,intrinsicSize:o,type:i,sandbox:{allowSameOrigin:n}}}let s=e.match(OE);if(s?.[1]){let c=s?.[1],u=/^\\d+$/.test(c)?void 0:new URIError(\"Invalid embed link format\");return i=\"video\",e=`https://player.vimeo.com/video/${c}?api=1`,o={w:560,h:315},pt.set(t,{link:e,intrinsicSize:o,type:i,sandbox:{allowSameOrigin:n}}),{link:e,intrinsicSize:o,type:i,error:u,sandbox:{allowSameOrigin:n}}}let a=UE(e);if(a){i=\"video\";let c=new URLSearchParams;a.resourceKey&&c.set(\"resourcekey\",a.resourceKey),a.timestamp&&c.set(\"t\",`${a.timestamp}`);let u=c.toString();return e=`https://drive.google.com/file/d/${a.fileId}/preview${u?`?${u}`:\"\"}`,o={w:560,h:315},pt.set(t,{link:e,intrinsicSize:o,type:i,sandbox:{allowSameOrigin:n}}),{link:e,intrinsicSize:o,type:i,sandbox:{allowSameOrigin:n}}}if(e.match(kE))return i=\"generic\",e=`https://www.figma.com/embed?embed_host=share&url=${encodeURIComponent(e)}`,o={w:550,h:550},pt.set(t,{link:e,intrinsicSize:o,type:i,sandbox:{allowSameOrigin:n}}),{link:e,intrinsicSize:o,type:i,sandbox:{allowSameOrigin:n}};let d=e.match(zE);if(d)return e=d[1]===\"embed\"?d[0]:d[0].replace(\"/v\",\"/embed\"),pt.set(t,{link:e,intrinsicSize:o,type:i,sandbox:{allowSameOrigin:n}}),{link:e,intrinsicSize:o,type:i,sandbox:{allowSameOrigin:n}};if(RE.test(e)&&!e.includes(\"embed=true\")&&(e+=e.includes(\"?\")?\"&embed=true\":\"?embed=true\"),Tc.test(e)){let c=e.match(Tc)[1],u=zs(`https://twitter.com/x/status/${c}`),m={type:\"document\",srcdoc:p=>Hs(`<blockquote class=\"twitter-tweet\" data-dnt=\"true\" data-theme=\"${p}\"><a href=\"${u}\"></a></blockquote> <script async src=\"https://platform.twitter.com/widgets.js\" charset=\"utf-8\"><\\/script>`),intrinsicSize:{w:480,h:480},sandbox:{allowSameOrigin:n}};return pt.set(t,m),m}if(Dc.test(e)){let[,c,u,m]=e.match(Dc),p=zs(`https://reddit.com/r/${c}/comments/${u}/${m}`),f={type:\"document\",srcdoc:h=>Hs(`<blockquote class=\"reddit-embed-bq\" data-embed-theme=\"${h}\"><a href=\"${p}\"></a><br></blockquote><script async=\"\" src=\"https://embed.reddit.com/widgets.js\" charset=\"UTF-8\"><\\/script>`),intrinsicSize:{w:480,h:480},sandbox:{allowSameOrigin:n}};return pt.set(t,f),f}if(Mc.test(e)){let[,c,u]=e.match(Mc),m=zs(`https://gist.github.com/${c}/${u}`),p={type:\"document\",srcdoc:()=>Hs(`\n <script src=\"${m}.js\"><\\/script>\n <style type=\"text/css\">\n * { margin: 0px; }\n table, .gist { height: 100%; }\n .gist .gist-file { height: calc(100vh - 2px); padding: 0px; display: grid; grid-template-rows: 1fr auto; }\n </style>\n `),intrinsicSize:{w:550,h:720},sandbox:{allowSameOrigin:n}};return pt.set(e,p),p}return pt.set(e,{link:e,intrinsicSize:o,type:i,sandbox:{allowSameOrigin:n}}),{link:e,intrinsicSize:o,type:i,sandbox:{allowSameOrigin:n}}},aS=e=>{let t;ao(e)?t=\"IFrame element\":t=!e.link||e?.link===\"\"?\"Empty Web-Embed\":e.link;let n=Math.max(Math.min(e.width/2,e.width/t.length),e.width/30),i=BE.Helvetica,o=CE({fontSize:n,fontFamily:i});return Nn({x:e.x+e.width/2,y:e.y+e.height/2,strokeColor:e.strokeColor!==\"transparent\"?e.strokeColor:\"black\",backgroundColor:\"transparent\",fontFamily:i,fontSize:n,text:Ft(t,o,e.width-20),textAlign:\"center\",verticalAlign:LE.MIDDLE,angle:e.angle??0})},Us=(e,t)=>{try{let{hostname:n}=new URL(e),i=n.replace(/^www\\./,\"\");if(t instanceof Set){if(_s.has(i))return i;let r=i.replace(/^([^.]+)/,\"*\");return _s.has(r)?r:null}let o=t.replace(/^www\\./,\"\");if(i===o)return o}catch{}return null},lS=e=>{let t=e.match(NE);if(t&&t.length===2)return t[1];let n=e.match(_E);if(n&&n.length===2)return n[1];let i=e.match(FE);if(i&&i.length===2)return i[1];if(vc.test(e))return`https://giphy.com/embed/${vc.exec(e)[1]}`;let o=e.match(HE);return o&&o.length===2?o[1]:e},dS=(e,t)=>{if(!e)return!1;if(t!=null)if(typeof t==\"function\"){let n=t(e);if(typeof n==\"boolean\")return n}else{if(typeof t==\"boolean\")return t;if(t instanceof RegExp)return t.test(e);if(Array.isArray(t)){for(let n of t)if(n instanceof RegExp){if(e.match(n))return!0}else if(Us(e,n))return!0;return!1}}return!!Us(e,_s)};P();import{KEYS as tr,invariant as nr,toBrandedType as WE}from\"@excalidraw/common\";import{pointFrom as Cc}from\"@excalidraw/math\";var ti=100,zn=100,IS=e=>{switch(e){case tr.ARROW_UP:return\"up\";case tr.ARROW_DOWN:return\"down\";case tr.ARROW_RIGHT:return\"right\";case tr.ARROW_LEFT:return\"left\";default:return\"right\"}},kc=(e,t,n,i)=>{let o=[...n.values()].reduce((r,s)=>{let a;if(U(s)&&(a=s[e===\"predecessors\"?\"startBinding\":\"endBinding\"])&&s[e===\"predecessors\"?\"endBinding\":\"startBinding\"]?.elementId===t.id){let l=n.get(a.elementId);if(!l)return r;nr(de(l),\"not an ExcalidrawBindableElement\");let d=e===\"predecessors\"?s.points[s.points.length-1]:[0,0],c=Ii(t,nt(t,n),[d[0]+s.x,d[1]+s.y]);r.push({relative:l,heading:c})}return r},[]);switch(i){case\"up\":return o.filter(r=>pe(r.heading,qe)).map(r=>r.relative);case\"down\":return o.filter(r=>pe(r.heading,be)).map(r=>r.relative);case\"right\":return o.filter(r=>pe(r.heading,fe)).map(r=>r.relative);case\"left\":return o.filter(r=>pe(r.heading,_e)).map(r=>r.relative)}},Ws=(e,t,n)=>kc(\"successors\",e,t,n),Ys=(e,t,n)=>kc(\"predecessors\",e,t,n),YE=(e,t,n)=>{let i=zn+e.width;if(n===\"up\"||n===\"down\"){let a=ti+e.height,l=e.x,d=e.x+e.width;if(t.every(c=>c.x+c.width<l||c.x>d))return{x:0,y:a*(n===\"up\"?-1:1)}}else if(n===\"right\"||n===\"left\"){let a=e.y,l=e.y+e.height;if(t.every(d=>d.y+d.height<a||d.y>l))return{x:(zn+e.width)*(n===\"left\"?-1:1),y:0}}if(n===\"up\"||n===\"down\"){let a=ti+e.height,l=(t.length===0,a),d=t.length===0?0:(t.length+1)%2===0?(t.length+1)/2*i:t.length/2*i*-1;return n===\"up\"?{x:d,y:l*-1}:{x:d,y:l}}let o=ti+e.height,r=(t.length===0,zn+e.width),s=t.length===0?0:(t.length+1)%2===0?(t.length+1)/2*o:t.length/2*o*-1;return n===\"left\"?{x:r*-1,y:s}:{x:r,y:s}},jE=(e,t,n,i)=>{let o=i.getNonDeletedElementsMap(),r=Ws(e,o,n),s=Ys(e,o,n),a=YE(e,[...r,...s],n),l=Rn({type:e.type,x:e.x+a.x,y:e.y+a.y,width:e.width,height:e.height,roundness:e.roundness,roughness:e.roughness,backgroundColor:e.backgroundColor,strokeColor:e.strokeColor,strokeWidth:e.strokeWidth,opacity:e.opacity,fillStyle:e.fillStyle,strokeStyle:e.strokeStyle});nr(Ar(l),\"not an ExcalidrawFlowchartNodeElement\");let d=Fc(e,l,n,t,i);return{nextNode:l,bindingArrow:d}},XE=(e,t,n,i,o)=>{let r=[];for(let s=0;s<o;s++){let a,l;if(n===\"left\"||n===\"right\"){let u=ti*(o-1)+o*e.height,m=e.y+e.height/2-u/2,p=zn+e.width;n===\"left\"&&(p*=-1),a=e.x+p;let f=(ti+e.height)*s;l=m+f}else{let u=zn*(o-1)+o*e.width,m=e.x+e.width/2-u/2,p=ti+e.height;n===\"up\"&&(p*=-1),l=e.y+p;let f=(zn+e.width)*s;a=m+f}let d=Rn({type:e.type,x:a,y:l,width:e.width,height:e.height,roundness:e.roundness,roughness:e.roughness,backgroundColor:e.backgroundColor,strokeColor:e.strokeColor,strokeWidth:e.strokeWidth,opacity:e.opacity,fillStyle:e.fillStyle,strokeStyle:e.strokeStyle});nr(Ar(d),\"not an ExcalidrawFlowchartNodeElement\");let c=Fc(e,d,n,t,i);r.push(d),r.push(c)}return r},Fc=(e,t,n,i,o)=>{let r,s;switch(n){case\"up\":{r=e.x+e.width/2,s=e.y-6;break}case\"down\":{r=e.x+e.width/2,s=e.y+e.height+6;break}case\"right\":{r=e.x+e.width+6,s=e.y+e.height/2;break}case\"left\":{r=e.x-6,s=e.y+e.height/2;break}}let l,d;switch(n){case\"up\":{l=t.x+t.width/2-r,d=t.y+t.height-s+6;break}case\"down\":{l=t.x+t.width/2-r,d=t.y-s-6;break}case\"right\":{l=t.x-r-6,d=t.y-s+t.height/2;break}case\"left\":{l=t.x+t.width-r+6,d=t.y-s+t.height/2;break}}let c=er({type:\"arrow\",x:r,y:s,startArrowhead:null,endArrowhead:i.currentItemEndArrowhead,strokeColor:e.strokeColor,strokeStyle:e.strokeStyle,strokeWidth:e.strokeWidth,opacity:e.opacity,roughness:e.roughness,points:[Cc(0,0),Cc(l,d)],elbowed:!0}),u=o.getNonDeletedElementsMap();It(c,e,\"orbit\",\"start\",o),It(c,t,\"orbit\",\"end\",o);let m=new Map;m.set(e.id,e),m.set(t.id,t),m.set(c.id,c),C.movePoints(c,o,new Map([[1,{point:c.points[1]}]]));let p=jn(c,WE(new Map([...u.entries(),[e.id,e],[t.id,t],[c.id,c]])),{points:c.points});return{...c,...p}},Gc=class{isExploring=!1;sameLevelNodes=[];sameLevelIndex=0;direction=null;visitedNodes=new Set;clear(){this.isExploring=!1,this.sameLevelNodes=[],this.sameLevelIndex=0,this.direction=null,this.visitedNodes.clear()}exploreByDirection(t,n,i){if(!de(t))return null;if(i!==this.direction&&this.clear(),this.visitedNodes.has(t.id)||this.visitedNodes.add(t.id),this.isExploring&&i===this.direction&&this.sameLevelNodes.length>1)return this.sameLevelIndex=(this.sameLevelIndex+1)%this.sameLevelNodes.length,this.sameLevelNodes[this.sameLevelIndex].id;let o=[...Ws(t,n,i),...Ys(t,n,i)];if(o.length>0)return this.sameLevelIndex=0,this.isExploring=!0,this.sameLevelNodes=o,this.direction=i,this.visitedNodes.add(o[0].id),o[0].id;if(i===this.direction||!this.isExploring){this.isExploring||this.visitedNodes.add(t.id);let s=[\"up\",\"right\",\"down\",\"left\"].filter(a=>a!==i).map(a=>[...Ws(t,n,a),...Ys(t,n,a)]).flat().filter(a=>!this.visitedNodes.has(a.id));for(let a of s)if(!this.visitedNodes.has(a.id))return this.visitedNodes.add(a.id),this.isExploring=!0,this.direction=i,a.id}return null}},Oc=class{isCreatingChart=!1;numberOfNodes=0;direction=\"right\";pendingNodes=null;createNodes(t,n,i,o){let r=o.getNonDeletedElementsMap();if(i!==this.direction){let{nextNode:s,bindingArrow:a}=jE(t,n,i,o);this.numberOfNodes=1,this.isCreatingChart=!0,this.direction=i,this.pendingNodes=[s,a]}else{this.numberOfNodes+=1;let s=XE(t,n,i,o,this.numberOfNodes);this.isCreatingChart=!0,this.direction=i,this.pendingNodes=s}if(t.frameId){let s=r.get(t.frameId);nr(s&&co(s),\"not an ExcalidrawFrameElement\"),s&&this.pendingNodes.every(a=>En([a],s,r)||fn(a,s,r))&&(this.pendingNodes=this.pendingNodes.map(a=>ye(a,r,{frameId:t.frameId})))}}clear(){this.isCreatingChart=!1,this.pendingNodes=null,this.direction=null,this.numberOfNodes=0}},SS=(e,t)=>{for(let[,n]of t)if(n.type===\"arrow\"&&(n.startBinding?.elementId===e.id||n.endBinding?.elementId===e.id))return!0;return!1};P();import{pointDistance as ni,pointFrom as Xs}from\"@excalidraw/math\";import{invariant as $c}from\"@excalidraw/common\";P();import{arrayToMap as Nc,findIndex as zc,findLastIndex as Hc}from\"@excalidraw/common\";var js=(e,t)=>e.frameId===t||e.id===t,_c=(e,t,n)=>{let i=[],o=[],r=null,s=-1,a=Nc(n||St(e,t,{includeBoundTextElement:!0,includeElementsInFrames:!0}));for(;++s<e.length;){let l=e[s];a.get(l.id)?(o.length&&(i=i.concat(o),o=[]),i.push(s),r=s+1):l.isDeleted&&r===s?(r=s+1,o.push(s)):o=[]}return i},$E=e=>{let t=0;return e.reduce((n,i,o)=>(o>0&&e[o-1]!==i-1&&(t=++t),(n[t]||(n[t]=[])).push(i),n),[])},Rc=(e,t,n,i)=>{if(\"containerId\"in e&&e.containerId){let o=i.getElement(e.containerId);if(o)return n===\"left\"?Math.min(t.indexOf(o),t.indexOf(e)):Math.max(t.indexOf(o),t.indexOf(e))}else{let o=e.boundElements?.find(r=>r.type!==\"arrow\")?.id;if(o){let r=i.getElement(o);if(r)return n===\"left\"?Math.min(t.indexOf(r),t.indexOf(e)):Math.max(t.indexOf(r),t.indexOf(e))}}},VE=(e,t)=>{let n=-1,i=-1;return e.forEach((o,r)=>{js(o,t)&&(n===-1&&(n=r),i=r)}),n===-1?[]:e.slice(n,i+1)},Uc=(e,t,n,i,o,r)=>{let s=r||Nt(e,n,i);if(!s)return n;let a=V(s,i),l=Q(s)?Me(s,i):null,d=[s.id,a?.id,l?.id].filter(m=>!!m),c=n.findIndex(m=>d.includes(m.id)),u=n.findIndex(m=>m.id===t.id);if(u!==-1&&c!==-1&&u<c){let m=Array.from(n),p=m.splice(u,1)[0];m.splice(c,0,p),o.replaceAllElements(m)}return n},ZE=(e,t,n,i,o,r)=>{let s=t[n],a=m=>m.isDeleted?!1:o?m.frameId===o:e.editingGroupId?m.groupIds.includes(e.editingGroupId):!0,l=i===\"left\"?Hc(t,m=>a(m),Math.max(0,n-1)):zc(t,m=>a(m),n+1),d=t[l];if(!d)return-1;if(e.editingGroupId){if(s?.groupIds.join(\"\")===d?.groupIds.join(\"\"))return Rc(d,t,i,r)??l;if(!d?.groupIds.includes(e.editingGroupId))return-1}if(!o&&(d.frameId||Z(d))){let m=VE(t,d.frameId||d.id);return i===\"left\"?t.indexOf(m[0]):t.indexOf(m[m.length-1])}if(!d.groupIds.length)return Rc(d,t,i,r)??l;let c=e.editingGroupId?d.groupIds[d.groupIds.indexOf(e.editingGroupId)-1]:d.groupIds[d.groupIds.length-1],u=Oe(t,c);return u.length?i===\"left\"?t.indexOf(u[0]):t.indexOf(u[u.length-1]):l},Wc=(e,t)=>t.reduce((n,i)=>{let o=e[i];return n.set(o.id,o),n},new Map),Yc=(e,t,n,i)=>{let o=_c(e,t),r=Wc(e,o),s=$E(o);n===\"right\"&&(s=s.reverse());let a=new Set(o.filter(l=>Z(e[l])).map(l=>e[l].id));return s.forEach((l,d)=>{let c=l[0],u=l[l.length-1],m=n===\"left\"?c:u,p=l.some(w=>{let y=e[w];return y.frameId&&a.has(y.frameId)})?null:e[m]?.frameId,f=ZE(t,e,m,n,p,i);if(f===-1||m===f)return;let h=n===\"left\"?e.slice(0,f):e.slice(0,c),E=e.slice(c,u+1),g=n===\"left\"?e.slice(f,c):e.slice(u+1,f+1),x=n===\"left\"?e.slice(u+1):e.slice(f+1);e=n===\"left\"?[...h,...E,...g,...x]:[...h,...g,...E,...x]}),zi(e,r),e},jc=(e,t,n,i,o)=>{let r=_c(e,t,o),s=Wc(e,r),a=[],l,d;if(n===\"left\"){if(i)l=zc(e,f=>js(f,i));else if(t.editingGroupId){let f=Oe(e,t.editingGroupId);if(!f.length)return e;l=e.indexOf(f[0])}else l=0;d=r[r.length-1]}else{if(i)d=Hc(e,f=>js(f,i));else if(t.editingGroupId){let f=Oe(e,t.editingGroupId);if(!f.length)return e;d=e.indexOf(f[f.length-1])}else d=e.length-1;l=r[0]}l===-1&&(l=0);for(let f=l;f<d+1;f++)r.includes(f)||a.push(e[f]);let c=Array.from(s.values()),u=e.slice(0,l),m=e.slice(d+1),p=n===\"left\"?[...u,...c,...a,...m]:[...u,...a,...c,...m];return zi(p,s),p};function Xc(e,t,n,i){let o=Nc(St(e,t,{includeBoundTextElement:!0,includeElementsInFrames:!0})),r={regularElements:[],frameChildren:new Map},s=new Set;for(let d of e)o.has(d.id)&&Z(d)&&s.add(d.id);for(let d of e)if(o.has(d.id))if(Z(d)||d.frameId&&s.has(d.frameId))r.regularElements.push(d);else if(!d.frameId)r.regularElements.push(d);else{let c=r.frameChildren.get(d.frameId)||[];c.push(d),r.frameChildren.set(d.frameId,c)}let a=e,l=Array.from(r.frameChildren.entries());for(let[d,c]of l)a=i(e,t,n,d,c);return i(a,t,n,null,r.regularElements)}var OS=(e,t,n)=>Yc(e,t,\"left\",n),kS=(e,t,n)=>Yc(e,t,\"right\",n),FS=(e,t)=>Xc(e,t,\"left\",jc),RS=(e,t)=>Xc(e,t,\"right\",jc);var ir=(e,t,n,i,o,r,s=!1)=>{if(U(t)||!Pt(o)||t.points.length!==2)return!1;if(!s){let l=t.startBinding?.elementId===n.id?0:t.points.length-1,d=C.getPointAtIndexGlobalCoordinates(t,l,i);if(ni(e,d)<vi*1.5/o.zoom.value)return!1}let a=C.getPointAtIndexGlobalCoordinates(t,r===\"end\"?t.points.length-1:0,i);return ni(e,a)>=vi*1.5/o.zoom.value&&xt({element:n,elementsMap:i,point:e,threshold:Be(n,t),overrideShouldTestInside:!0})},qE=(e,t,n,i,o,r,s)=>{let a=new Map,l=n?\"startBinding\":\"endBinding\",d=n?\"endBinding\":\"startBinding\",c=e[l],u=e[d];if(c&&t){let m=t&&u&&c.elementId===u.elementId;s||m?c={...c,mode:\"inside\"}:c={...c,mode:\"orbit\"};let p=n?0:e.points.length-1,f=ut(e,l,c,t,i,!0);f&&a.set(p,{point:f})}if(u&&u.mode===\"orbit\"){let m=i.get(u.elementId);if(m&&de(m)&&Pt(r)){let p=t&&u.elementId===t.id;s||p?u={...u,mode:\"inside\"}:u={...u,mode:\"orbit\"};let f=n?e.points.length-1:0,h=ut(e,d,u,m,i);h&&a.set(f,{point:h})}}a.size>0&&C.movePoints(e,o,a,{[l]:c,[d]:u})},Vc=(e,t,n,i,o,r,s)=>{let a=C.getElement(e.elementId,t);if(!a||!Ae(a)||U(a)||!e.hoveredFocusPointBinding||!e.draggedFocusPointBinding)return;let l=e.draggedFocusPointBinding===\"start\",d=l?a.startBinding:a.endBinding,{x:c,y:u}=e.pointerOffset,m=Xs(n.x-c,n.y-u),p=l?\"startBinding\":\"endBinding\",f=gl(m,a,i.getNonDeletedElements(),t,lt(o.zoom));if(f&&Pt(o)){a[p]&&f.id!==d?.elementId&&ve(a,e.draggedFocusPointBinding,i);let h=s&&a[p]?.mode===\"orbit\"?\"inside\":!s&&a[p]?.mode===\"inside\"?\"orbit\":null;(!a[p]||h)&&It(a,f,h||\"orbit\",e.draggedFocusPointBinding,i,m),i.mutateElement(a,{[p]:{...a[p],elementId:f.id,mode:h||a[p]?.mode||\"orbit\",...Xn(a,f,e.draggedFocusPointBinding,t,m)}})}else{let h=new Map,E=l?0:a.points.length-1;h.set(E,{point:C.createPointAt(a,t,m[0],m[1],r)}),C.movePoints(a,i,h),a[p]&&ve(a,l?\"start\":\"end\",i)}qE(a,f,l,t,i,o,s),f&&Pt(o)&&Uc(m,a,i.getElementsIncludingDeleted(),t,i,f)},$S=(e,t,n,i)=>{let o=Xs(t.origin.x,t.origin.y),r=vi*1.5/i.zoom.value;if(e.startBinding?.elementId){let s=n.get(e.startBinding.elementId);if(s&&de(s)&&!s.isDeleted){let a=Ne(e.startBinding.fixedPoint,s,n);if(ir(a,e,s,n,i,\"start\")&&ni(o,a)<=r)return{hitFocusPoint:\"start\",pointerOffset:{x:o[0]-a[0],y:o[1]-a[1]}}}}if(e.endBinding?.elementId){let s=n.get(e.endBinding.elementId);if(s&&de(s)&&!s.isDeleted){let a=Ne(e.endBinding.fixedPoint,s,n);if(ir(a,e,s,n,i,\"end\")&&ni(o,a)<=r)return{hitFocusPoint:\"end\",pointerOffset:{x:o[0]-a[0],y:o[1]-a[1]}}}}return{hitFocusPoint:null,pointerOffset:{x:0,y:0}}},VS=(e,t)=>{$c(e.draggedFocusPointBinding,\"Must have a dragged focus point at pointer release\");let n=C.getElement(e.elementId,t.getNonDeletedElementsMap());$c(n,\"Arrow must be in the scene\");let i=e.draggedFocusPointBinding===\"start\"?\"startBinding\":\"endBinding\",o=e.draggedFocusPointBinding===\"start\"?\"endBinding\":\"startBinding\",r=n[i]?.elementId,s=n[o]?.elementId,a=r&&t.getNonDeletedElements().find(d=>d.id!==r&&d.id!==s&&de(d)&&d.boundElements?.find(({id:c})=>c===n.id));a&&t.mutateElement(a,{boundElements:a.boundElements?.filter(({id:d})=>d!==n.id)});let l=r&&t.getNonDeletedElementsMap().get(r);l&&t.mutateElement(l,{boundElements:[...(l.boundElements||[])?.filter(({id:d})=>d!==n.id),{id:n.id,type:\"arrow\"}]})},ZS=(e,t,n,i,o)=>{let r=i.getNonDeletedElementsMap(),s=Xs(t,n),a=vi*1.5/o.zoom.value;if(e.startBinding?.elementId){let l=r.get(e.startBinding.elementId);if(l&&de(l)&&!l.isDeleted){let d=Ne(e.startBinding.fixedPoint,l,r);if(ir(d,e,l,r,o,\"start\")&&ni(s,d)<=a)return\"start\"}}if(e.endBinding?.elementId){let l=r.get(e.endBinding.elementId);if(l&&de(l)&&!l.isDeleted){let d=Ne(e.endBinding.fixedPoint,l,r);if(ir(d,e,l,r,o,\"end\")&&ni(s,d)<=a)return\"end\"}}return null};P();import{MIME_TYPES as Zc,SVG_NS as KE}from\"@excalidraw/common\";var QE=e=>new Promise((t,n)=>{let i=new Image;i.onload=()=>{t(i)},i.onerror=o=>{n(o)},i.src=e}),eA=async({fileIds:e,files:t,imageCache:n})=>{let i=new Map,o=new Map;return await Promise.all(e.reduce((r,s)=>{let a=t[s];return a&&!i.has(s)?(i.set(s,!0),r.concat((async()=>{try{if(a.mimeType===Zc.binary)throw new Error(\"Only images can be added to ImageCache\");let l=QE(a.dataURL),d={image:l,mimeType:a.mimeType};n.set(s,d);let c=await l;n.set(s,{...d,image:c})}catch{o.set(s,!0)}})())):r},[])),{imageCache:n,updatedFiles:i,erroredFiles:o}},tA=e=>e.filter(t=>vn(t)),JE=e=>e?.nodeName.toLowerCase()===\"svg\",nA=e=>{let t=new DOMParser().parseFromString(e,Zc.svg),n=t.querySelector(\"svg\");if(t.querySelector(\"parsererror\")||!JE(n))throw new Error(\"Invalid SVG\");{n.hasAttribute(\"xmlns\")||n.setAttribute(\"xmlns\",KE);let o=n.getAttribute(\"width\"),r=n.getAttribute(\"height\");(o?.includes(\"%\")||o===\"auto\")&&(o=null),(r?.includes(\"%\")||r===\"auto\")&&(r=null);let s=n.getAttribute(\"viewBox\");if(!o||!r){if(o=o||\"50\",r=r||\"50\",s){let a=s.match(/\\d+ +\\d+ +(\\d+(?:\\.\\d+)?) +(\\d+(?:\\.\\d+)?)/);a&&([,o,r]=a)}n.setAttribute(\"width\",o),n.setAttribute(\"height\",r)}return s||n.setAttribute(\"viewBox\",`0 0 ${o} ${r}`),n.outerHTML}};P();var aA=(e,t,n,i=50)=>{if(!e||e.length===0)return[];let o=[],r=Array.isArray(e[0])?e:e.map(p=>[p]),s=r.length,a=Math.max(1,Math.ceil(Math.sqrt(s))),l=[];for(let p=0;p<s;p+=a)l.push(r.slice(p,p+a));let d=0,c=l.map(p=>{let f=0,h=0,E=p.map(g=>{let[x,w,y,b]=ke(g);return{elements:g,bounds:[x,w,y,b],width:y-x,height:b-w}});return E.forEach((g,x)=>{f+=g.width,x<E.length-1&&(f+=i),g.height>h&&(h=g.height)}),d+=h,{unitBounds:E,width:f,maxHeight:h}}),u=d+Math.max(0,l.length-1)*i,m=n-u/2;return c.forEach(p=>{let{unitBounds:f,width:h,maxHeight:E}=p,g=t-h/2;f.forEach(x=>{let[w,y]=x.bounds,b=g-w,I=m-y;x.elements.forEach(A=>{o.push(Le(A,{x:A.x+b,y:A.y+I}))}),g+=x.width+i}),m+=E+i}),o};P();import{pointCenter as eg,normalizeRadians as rr,pointFrom as ne,pointRotateRads as ft}from\"@excalidraw/math\";import{MIN_FONT_SIZE as Vs,SHIFT_LOCKING_ANGLE as sr,rescalePoints as qc,getFontString as or}from\"@excalidraw/common\";var bA=(e,t,n,i,o,r,s,a,l,d,c)=>{let u=i.getNonDeletedElementsMap();if(n.length===1){let[m]=n;if(t===\"rotation\")U(m)||(tg(m,i,a,l,o),De(m,i));else if(t){let p=n[0].id,f=u.get(p),h=e.get(p);if(f&&h){let{nextWidth:E,nextHeight:g}=sg(f,h,t,a,l,{shouldMaintainAspectRatio:s,shouldResizeFromCenter:r});rg(E,g,f,h,e,i,t,{shouldMaintainAspectRatio:s,shouldResizeFromCenter:r})}}return Q(m)&&De(m,i),!0}else if(n.length>1){if(t===\"rotation\")return ig(e,n,i,a,l,o,d,c),!0;if(t){let{nextWidth:m,nextHeight:p,flipByX:f,flipByY:h,originalBoundingBox:E}=ag(n,e,u,t,a,l,{shouldMaintainAspectRatio:s,shouldResizeFromCenter:r});return lg(n,u,t,i,e,{shouldResizeFromCenter:r,shouldMaintainAspectRatio:s,flipByX:f,flipByY:h,nextWidth:m,nextHeight:p,originalBoundingBox:E}),!0}}return!1},tg=(e,t,n,i,o)=>{let[r,s,a,l]=$(e,t.getNonDeletedElementsMap()),d=(r+a)/2,c=(s+l)/2,u;Z(e)?u=0:(u=5*Math.PI/2+Math.atan2(i-c,n-d),o&&(u=u+sr/2,u=u-u%sr),u=rr(u));let m=Rt(e),p={angle:u};if(Ae(e)&&(p={...p},e.startBinding&&ve(e,\"start\",t),e.endBinding&&ve(e,\"end\",t)),t.mutateElement(e,p),m){let f=t.getElement(m);if(f&&!H(e)){let{x:h,y:E}=wi(e,f,t.getNonDeletedElementsMap());t.mutateElement(f,{angle:u,x:h,y:E})}}},Kc=(e,t,n,i)=>q(e)||Se(e)?{points:qc(0,t,qc(1,n,e.points,i),i)}:{},Zs=(e,t,n)=>{let i=e.width;if(ce(e)){let s=Me(e,t);s&&(i=dt(s,e))}let r=e.fontSize*(n/i);return r<Vs?null:{size:r}},ng=(e,t,n,i,o,r,s)=>{let a=n.getNonDeletedElementsMap(),l=t.width*(s/t.height),d=Zs(t,a,l);if(d!==null){if(i.includes(\"n\")||i.includes(\"s\")){let c=ne(e.x,e.y),u=$s(c,e.width,e.height,l,s,e.angle,i,!1,o);n.mutateElement(t,{fontSize:d.size,width:l,height:s,x:u.x,y:u.y});return}if(i===\"e\"||i===\"w\"){let c=fo(or({fontSize:t.fontSize,fontFamily:t.fontFamily}),t.lineHeight),u=Math.max(c,r),m=Ft(t.originalText,or(t),Math.abs(u)),p=Ve(m,or(t),t.lineHeight),f=p.height,h=ne(e.x,e.y),E=$s(h,e.width,e.height,u,f,t.angle,i,!1,o),g={width:Math.abs(u),height:Math.abs(p.height),x:E.x,y:E.y,text:m,autoResize:!1};n.mutateElement(t,g)}}},ig=(e,t,n,i,o,r,s,a)=>{let l=n.getNonDeletedElementsMap(),d=5*Math.PI/2+Math.atan2(o-a,i-s);r&&(d+=sr/2,d-=d%sr);let c=new Map(t.map(u=>[u.id,u]));for(let u of t)if(!Z(u)){let[m,p,f,h]=$(u,l),E=(m+f)/2,g=(p+h)/2,x=e.get(u.id)?.angle??u.angle,[w,y]=ft(ne(E,g),ne(s,a),d+x-u.angle),b=U(u)?{points:_l(u,l)}:{x:u.x+(w-E),y:u.y+(y-g),angle:rr(d+x)};n.mutateElement(u,b),De(u,n,{simultaneouslyUpdated:t}),Ae(u)&&(u.startBinding&&(c.has(u.startBinding.elementId)||ve(u,\"start\",n)),u.endBinding&&(c.has(u.endBinding.elementId)||ve(u,\"end\",n)));let I=V(u,l);if(I&&!H(u)){let{x:A,y:T}=wi(u,I,l);n.mutateElement(I,{x:A,y:T,angle:rr(d+x)})}}n.triggerUpdate()},yA=(e,t,n,i,o)=>{let[r,s,a,l]=t.length===1?$(t[0],n):ke(t),d=(r+a)/2,c=(s+l)/2,u=t.length===1?t[0].angle:0;switch([i,o]=ft(ne(i,o),ne(d,c),-u),e){case\"n\":return ft(ne(i-(r+a)/2,o-s),ne(0,0),u);case\"s\":return ft(ne(i-(r+a)/2,o-l),ne(0,0),u);case\"w\":return ft(ne(i-r,o-(s+l)/2),ne(0,0),u);case\"e\":return ft(ne(i-a,o-(s+l)/2),ne(0,0),u);case\"nw\":return ft(ne(i-r,o-s),ne(0,0),u);case\"ne\":return ft(ne(i-a,o-s),ne(0,0),u);case\"sw\":return ft(ne(i-r,o-l),ne(0,0),u);case\"se\":return ft(ne(i-a,o-l),ne(0,0),u);default:return[0,0]}},PA=(e,t)=>{let[,[n,i]]=t.points;return e===\"nw\"&&(n<0||i<0)||e===\"ne\"&&n>=0||e===\"sw\"&&n<=0||e===\"se\"&&(n>0||i>0)?\"end\":\"origin\"},og=(e,t,n)=>{if(n)return\"center\";if(t)switch(e){case\"n\":return\"south-side\";case\"e\":return\"west-side\";case\"s\":return\"north-side\";case\"w\":return\"east-side\";case\"ne\":return\"bottom-left\";case\"nw\":return\"bottom-right\";case\"se\":return\"top-left\";case\"sw\":return\"top-right\"}return[\"e\",\"se\",\"s\"].includes(e)?\"top-left\":[\"n\",\"nw\",\"w\"].includes(e)?\"bottom-right\":e===\"ne\"?\"bottom-left\":\"top-right\"},$s=(e,t,n,i,o,r,s,a,l)=>{let d=og(s,a,l),[c,u]=e;switch(d){case\"top-left\":return{x:c+(t-i)/2+(i-t)/2*Math.cos(r)+(n-o)/2*Math.sin(r),y:u+(n-o)/2+(i-t)/2*Math.sin(r)+(o-n)/2*Math.cos(r)};case\"top-right\":return{x:c+(t-i)/2*(Math.cos(r)+1)+(n-o)/2*Math.sin(r),y:u+(n-o)/2+(t-i)/2*Math.sin(r)+(o-n)/2*Math.cos(r)};case\"bottom-left\":return{x:c+(t-i)/2*(1-Math.cos(r))+(o-n)/2*Math.sin(r),y:u+(n-o)/2*(Math.cos(r)+1)+(i-t)/2*Math.sin(r)};case\"bottom-right\":return{x:c+(t-i)/2*(Math.cos(r)+1)+(o-n)/2*Math.sin(r),y:u+(n-o)/2*(Math.cos(r)+1)+(t-i)/2*Math.sin(r)};case\"center\":return{x:c-(i-t)/2,y:u-(o-n)/2};case\"east-side\":return{x:c+(t-i)/2*(Math.cos(r)+1),y:u+(t-i)/2*Math.sin(r)+(n-o)/2};case\"west-side\":return{x:c+(t-i)/2*(1-Math.cos(r)),y:u+(i-t)/2*Math.sin(r)+(n-o)/2};case\"north-side\":return{x:c+(t-i)/2+(n-o)/2*Math.sin(r),y:u+(o-n)/2*(Math.cos(r)-1)};case\"south-side\":return{x:c+(t-i)/2+(o-n)/2*Math.sin(r),y:u+(n-o)/2*(Math.cos(r)+1)}}},rg=(e,t,n,i,o,r,s,{shouldInformMutation:a=!0,shouldMaintainAspectRatio:l=!1,shouldResizeFromCenter:d=!1}={})=>{if(Q(n)&&Q(i))return ng(i,n,r,s,d,e,t);let c={},u=r.getNonDeletedElementsMap(),m=V(n,u);if(m){let E=o.get(m.id);if(E&&(c={fontSize:E.fontSize}),l){let g={...n,width:e,height:t},x=Zs(m,u,dt(g,m));if(x===null)return;c={fontSize:x.size}}else{let g=el(or(m),m.lineHeight),x=tl(m.fontSize,m.lineHeight);e=Math.max(e,g),t=Math.max(t,x)}}let p=Kc(i,e,t,!0),f=ne(i.x,i.y);if(q(i)){let[E,g]=he(i,o);f=ne(E,g)}let h=$s(f,i.width,i.height,e,t,i.angle,s,l,d);if(q(i)&&p.points){let E=i.x-f[0],g=i.y-f[1];h.x+=E,h.y+=g;let x=p.points[0][0],w=p.points[0][1];h.x+=x,h.y+=w,p.points=p.points.map(y=>ne(y[0]-x,y[1]-w))}if(e<0&&(h.x=h.x+e),t<0&&(h.y=h.y+t),\"scale\"in n&&\"scale\"in i&&r.mutateElement(n,{scale:[(Math.sign(e)||i.scale[0])*i.scale[0],(Math.sign(t)||i.scale[1])*i.scale[1]]}),H(n)&&m&&l){let E=e/n.width*m.fontSize;if(E<Vs)return;c.fontSize=E}if(e!==0&&t!==0&&Number.isFinite(h.x)&&Number.isFinite(h.y)){let E={...h,width:Math.abs(e),height:Math.abs(t),...p};Ae(n)&&(n.startBinding&&(E={...E},n.startBinding&&ve(n,\"start\",r)),n.endBinding&&(E={...E,endBinding:null})),r.mutateElement(n,E,{informMutation:a,isDragging:!1}),m&&c!=null&&r.mutateElement(m,{fontSize:c.fontSize}),Cn(n,r,s,l),De(n,r)}},sg=(e,t,n,i,o,{shouldMaintainAspectRatio:r=!1,shouldResizeFromCenter:s=!1}={})=>{let[a,l,d,c]=Jt(t,t.width,t.height,!0),u=ne(a,l),m=ne(d,c),p=eg(u,m),f=ft(ne(i,o),p,-t.angle),[h,E,g,x]=Jt(e,e.width,e.height,!0),w=g-h,y=x-E,b=m[0]-u[0],I=m[1]-u[1],A=b/w,T=I/y;n.includes(\"e\")&&(A=(f[0]-u[0])/w),n.includes(\"s\")&&(T=(f[1]-u[1])/y),n.includes(\"w\")&&(A=(m[0]-f[0])/w),n.includes(\"n\")&&(T=(m[1]-f[1])/y);let M=e.width*A,O=e.height*T;if(s&&(M=2*M-t.width,O=2*O-t.height),r){let L=Math.abs(M)/t.width,k=Math.abs(O)/t.height;if(n.length===1&&(O*=L,M*=k),n.length===2){let B=Math.max(L,k);M=t.width*B*Math.sign(M),O=t.height*B*Math.sign(O)}}return{nextWidth:M,nextHeight:O}},ag=(e,t,n,i,o,r,{shouldMaintainAspectRatio:s=!1,shouldResizeFromCenter:a=!1}={})=>{let l=e.map(B=>t.get(B.id)),d=l.reduce((B,X)=>{if(!q(X))return B;let _=Rt(X);if(!_)return B;let ie=t.get(_)??null;return ce(ie)?[...B,{...ie,...C.getBoundTextElementPosition(X,ie,n)}]:B},[]),c=jt(l.map(B=>B).concat(d)),{minX:u,minY:m,maxX:p,maxY:f,midX:h,midY:E}=c,g=p-u,x=f-m,w={ne:[u,f],se:[u,m],sw:[p,m],nw:[p,f],e:[u,m+x/2],w:[p,m+x/2],n:[u+g/2,f],s:[u+g/2,m]},[y,b]=a?[h,E]:w[i],I=a?2:1,A=Math.max(Math.abs(o-y)/g||0,Math.abs(r-b)/x||0)*I,T=i.includes(\"e\")||i.includes(\"w\")?Math.abs(o-y)*I:g,M=i.includes(\"n\")||i.includes(\"s\")?Math.abs(r-b)*I:x;s&&(T=g*A*Math.sign(o-y),M=x*A*Math.sign(r-b));let O={ne:[o<y,r>b],se:[o<y,r<b],sw:[o>y,r<b],nw:[o>y,r>b],e:[o<y,!1],w:[o>y,!1],n:[!1,r>b],s:[!1,r<b]},[L,k]=O[i].map(B=>B);return{originalBoundingBox:c,nextWidth:T,nextHeight:M,flipByX:L,flipByY:k}},lg=(e,t,n,i,o,{shouldMaintainAspectRatio:r=!1,shouldResizeFromCenter:s=!1,flipByX:a=!1,flipByY:l=!1,nextHeight:d,nextWidth:c,originalBoundingBox:u}={})=>{if(c===void 0&&d===void 0&&a===void 0&&l===void 0||d===0||c===0)return;o||(o=t);let m=e.reduce((I,A)=>{let T=o.get(A.id);return T&&I.push({orig:T,latest:A}),I},[]),p;if(u)p=u;else{let I=m.reduce((A,{orig:T})=>{if(!q(T))return A;let M=Rt(T);if(!M)return A;let O=o.get(M)??null;return ce(O)?[...A,{...O,...C.getBoundTextElementPosition(T,O,t)}]:A},[]);p=jt(m.map(({orig:A})=>A).concat(I))}let{minX:f,minY:h,maxX:E,maxY:g,midX:x,midY:w}=p,y=E-f,b=g-h;if(c===void 0&&d===void 0&&(c=y,d=b),r&&(c===void 0?c=d*(y/b):d===void 0?d=c*(b/y):Math.abs(c/d-y/b)>.001&&(c=d*(y/b))),c&&d){let I=n.includes(\"e\")||n.includes(\"w\")?Math.abs(c)/y:1,A=n.includes(\"n\")||n.includes(\"s\")?Math.abs(d)/b:1,T;n.length===1?T=n.includes(\"e\")||n.includes(\"w\")?I:A:T=Math.max(Math.abs(c)/y||0,Math.abs(d)/b||0);let M={ne:[f,g],se:[f,h],sw:[E,h],nw:[E,g],e:[f,h+b/2],w:[E,h+b/2],n:[f+y/2,g],s:[f+y/2,h]},[O,L]=s?[x,w]:M[n],k=r||m.some(S=>S.latest.angle!==0||Q(S.latest)||md(S.latest));k&&(I=T,A=T);let[B,X]=[a?-1:1,l?-1:1],_=[];for(let{orig:S,latest:z}of m){if(Q(S)&&ce(S))continue;let W=S.width*I,xe=S.height*A,ht=rr(S.angle*B*X),Hi=q(S)||Se(S),ur=S.x-O,_i=S.y-L,ii=a&&!Hi?W:0,mr=l&&!Hi?xe:0,Ui=O+B*(ur*I+ii),Wi=L+X*(_i*A+mr),je=Kc(S,W*B,xe*X,!1),Qe={x:Ui,y:Wi,width:W,height:xe,angle:ht,...je};if(U(S)&&(S.startBinding&&(Qe.startBinding={...S.startBinding,fixedPoint:[a?-S.startBinding.fixedPoint[0]+1:S.startBinding.fixedPoint[0],l?-S.startBinding.fixedPoint[1]+1:S.startBinding.fixedPoint[1]]}),S.endBinding&&(Qe.endBinding={...S.endBinding,fixedPoint:[a?-S.endBinding.fixedPoint[0]+1:S.endBinding.fixedPoint[0],l?-S.endBinding.fixedPoint[1]+1:S.endBinding.fixedPoint[1]]}),S.fixedSegments&&je.points&&(Qe.fixedSegments=S.fixedSegments.map(Mt=>({...Mt,start:je.points[Mt.index-1],end:je.points[Mt.index]})))),we(S)&&(Qe.scale=[S.scale[0]*B,S.scale[1]*X]),Q(S)){let Mt=Zs(S,t,W);if(!Mt)return;Qe.fontSize=Mt.size}let Zt=o.get(Rt(S)??\"\");if(Zt)if(k){let Mt=Zt.fontSize*T;if(Mt<Vs)return;Qe.boundTextFontSize=Mt}else Qe.boundTextFontSize=Zt.fontSize;_.push({element:z,update:Qe})}let ie=_.map(({element:S})=>S),F=new Map(_.map(({element:S})=>[S.id,S]));for(let{element:S,update:{boundTextFontSize:z,...W}}of _){let{angle:xe}=W;i.mutateElement(S,W),De(S,i,{simultaneouslyUpdated:ie}),Ae(S)&&(S.startBinding&&(F.has(S.startBinding.elementId)||ve(S,\"start\",i)),S.endBinding&&(F.has(S.endBinding.elementId)||ve(S,\"end\",i)));let ht=V(S,t);ht&&z&&(i.mutateElement(ht,{fontSize:z,angle:q(S)?void 0:xe}),Cn(S,i,n,!0))}i.triggerUpdate()}};P();import{pointFrom as ot,pointOnLineSegment as iu,pointRotateRads as lr}from\"@excalidraw/math\";import{SIDE_RESIZING_THRESHOLD as ta}from\"@excalidraw/common\";P();import{DEFAULT_TRANSFORM_HANDLE_SPACING as Ks}from\"@excalidraw/common\";import{pointFrom as Qc,pointRotateRads as dg}from\"@excalidraw/math\";var Jc={mouse:8,pen:16,touch:28},cg=16,tu={e:!0,s:!0,n:!0,w:!0,rotation:!0},DA={e:!0,s:!0,n:!0,w:!0,rotation:!0},BA={e:!0,s:!0,n:!0,w:!0,rotation:!0},eu={e:!0,s:!0,n:!0,w:!0,nw:!0,se:!0},qs={e:!0,s:!0,n:!0,w:!0},Vt=(e,t,n,i,o,r,s)=>{let[a,l]=dg(Qc(e+n/2,t+i/2),Qc(o,r),s);return[a-n/2,l-i/2,n,i]},ar=e=>!(e.formFactor===\"phone\"&&e.userAgent.isMobileDevice),Qs=e=>ar(e)?tu:{},Js=([e,t,n,i,o,r],s,a,l,d={},c=4,u=Ks)=>{let m=Jc[l],p=m/a.value,f=m/a.value,h=m/a.value,E=m/a.value,g=n-e,x=i-t,w=c/a.value,y=(m-u*2)/(2*a.value),b={nw:d.nw?void 0:Vt(e-w-h+y,t-w-E+y,p,f,o,r,s),ne:d.ne?void 0:Vt(n+w-y,t-w-E+y,p,f,o,r,s),sw:d.sw?void 0:Vt(e-w-h+y,i+w-y,p,f,o,r,s),se:d.se?void 0:Vt(n+w-y,i+w-y,p,f,o,r,s),rotation:d.rotation?void 0:Vt(e+g/2-p/2,t-w-E+y-cg/a.value,p,f,o,r,s)},I=5*Jc.mouse/a.value;return Math.abs(g)>I&&(d.n||(b.n=Vt(e+g/2-p/2,t-w-E+y,p,f,o,r,s)),d.s||(b.s=Vt(e+g/2-p/2,i+w-y,p,f,o,r,s))),Math.abs(x)>I&&(d.w||(b.w=Vt(e-w-h+y,t+x/2-f/2,p,f,o,r,s)),d.e||(b.e=Vt(n+w-y,t+x/2-f/2,p,f,o,r,s))),b},nu=(e,t,n,i=\"mouse\",o=tu)=>{if(e.locked||U(e))return{};if(e.type===\"freedraw\"||q(e)){if(e.points.length===2){let[,s]=e.points;s[0]===0||s[1]===0?o=qs:s[0]>0&&s[1]<0?o=eu:s[0]>0&&s[1]>0?o=qs:s[0]<0&&s[1]>0?o=eu:s[0]<0&&s[1]<0&&(o=qs)}}else Z(e)&&(o={...o,rotation:!0});let r=q(e)?Ks+8:we(e)?0:Ks;return Js($(e,n,!0),e.angle,t,i,o,r,we(e)?0:void 0)},LA=(e,t,n)=>{if(t.selectedLinearElement?.isEditing||t.selectedLinearElement?.isDragging)return!1;if(e.length>1)return!0;let i=e[0];return U(i)?!1:q(i)?i.points.length>2&&!n.userAgent.isMobileDevice:!0};var na=(e,t,n)=>t>=e[0]&&t<=e[0]+e[2]&&n>=e[1]&&n<=e[1]+e[3],ug=(e,t,n,i,o,r,s,a)=>{if(!n.selectedElementIds[e.id])return!1;let{rotation:l,...d}=nu(e,r,t,s,Qs(a));if(l&&na(l,i,o))return\"rotation\";let c=Object.keys(d).filter(u=>{let m=d[u];return m?na(m,i,o):!1});if(c.length>0)return c[0];if(ar(a)){let[u,m,p,f,h,E]=$(e,t);if(!(q(e)&&e.points.length<=2)){let g=we(e)?0:ta/r.value,x=ta/r.value,w=ou(ot(u-g,m-g),ot(p+g,f+g),ot(h,E),e.angle);for(let[y,b]of Object.entries(w))if(iu(ot(i,o),b,x))return y}}return!1},zA=(e,t,n,i,o,r,s,a)=>e.reduce((l,d)=>{if(l)return l;let c=ug(d,s,t,n,i,o,r,a);return c?{element:d,transformHandleType:c}:null},null),HA=([e,t,n,i],o,r,s,a,l)=>{let d=Js([e,t,n,i,(e+n)/2,(t+i)/2],0,s,a,Qs(l)),c=Object.keys(d).find(u=>{let m=d[u];return m&&na(m,o,r)});if(c)return c;if(ar(l)){let u=(e+n)/2,m=(t+i)/2,p=ta/s.value,f=ou(ot(e-p,t-p),ot(n+p,i+p),ot(u,m),0);for(let[h,E]of Object.entries(f))if(iu(ot(o,r),E,p))return h}return!1},ea=[\"ns\",\"nesw\",\"ew\",\"nwse\"],mg=(e,t)=>{let n=ea.indexOf(e);if(n>=0){let i=Math.round(t/(Math.PI/4));e=ea[(n+i)%ea.length]}return e},_A=e=>{let{element:t,transformHandleType:n}=e,i=t&&Math.sign(t.height)*Math.sign(t.width)===-1,o=null;switch(n){case\"n\":case\"s\":o=\"ns\";break;case\"w\":case\"e\":o=\"ew\";break;case\"nw\":case\"se\":i?o=\"nesw\":o=\"nwse\";break;case\"ne\":case\"sw\":i?o=\"nwse\":o=\"nesw\";break;case\"rotation\":return\"grab\"}return o&&t&&(o=mg(o,t.angle)),o?`${o}-resize`:\"\"},ou=([e,t],[n,i],o,r)=>{let s=lr(ot(e,t),o,r),a=lr(ot(n,t),o,r),l=lr(ot(e,i),o,r),d=lr(ot(n,i),o,r);return{n:[s,a],e:[a,d],s:[d,l],w:[l,s]}};P();var jA=(e,t)=>!!(!e.viewModeEnabled&&e.openDialog?.name!==\"elementLinkSelector\"&&(e.activeTool.type!==\"custom\"&&(e.editingTextElement||e.activeTool.type!==\"selection\"&&e.activeTool.type!==\"lasso\"&&e.activeTool.type!==\"eraser\"&&e.activeTool.type!==\"hand\"&&e.activeTool.type!==\"laser\")||St(t,e).length));P();import{pointFrom as dr}from\"@excalidraw/math\";import{DEFAULT_FONT_FAMILY as pg,DEFAULT_FONT_SIZE as fg,TEXT_ALIGN as hg,VERTICAL_ALIGN as Eg,getSizeFromPoints as gg,randomId as xg,arrayToMap as wg,assertNever as ia,cloneJSON as su,getFontString as bg,isDevEnv as yg,toBrandedType as Pg,getLineHeight as Ig}from\"@excalidraw/common\";var cr={width:100,height:0},Sn=100,Sg=(e,t,n)=>{let i=Nn({x:0,y:0,textAlign:hg.CENTER,verticalAlign:Eg.MIDDLE,...t,containerId:e.id,strokeColor:t.strokeColor||e.strokeColor});return Object.assign(e,{boundElements:(e.boundElements||[]).concat({type:\"text\",id:i.id})}),xo(i,e,n),[e,i]},ru=(e,t,n,i,o)=>{let r,s;if(Object.assign(e,{startBinding:e?.startBinding||null,endBinding:e.endBinding||null}),t){let c=t?.width??Sn,u=t?.height??Sn,m;t.id&&(m=i.getElement(t.id),m||console.error(`No element for start binding with id ${t.id} found`));let p=t.x||e.x-c,f=t.y||e.y-u/2,h=m?m.type:t.type;if(h){if(h===\"text\"){let E=\"\";m&&m.type===\"text\"?E=m.text:t.type===\"text\"&&(E=t.text),E||console.error(`No text found for start binding text element for ${e.id}`),r=Nn({x:p,y:f,type:\"text\",...m,...t,text:E}),Object.assign(r,{x:t.x||e.x-r.width,y:t.y||e.y-r.height/2})}else switch(h){case\"rectangle\":case\"ellipse\":case\"diamond\":{r=Rn({x:p,y:f,width:c,height:u,...m,...t,type:h});break}default:ia(e,`Unhandled element start type \"${t.type}\"`,!0)}It(e,r,\"orbit\",\"start\",o)}}if(n){let c=n?.height??Sn,u=n?.width??Sn,m;n.id&&(m=i.getElement(n.id),m||console.error(`No element for end binding with id ${n.id} found`));let p=n.x||e.x+e.width,f=n.y||e.y-c/2,h=m?m.type:n.type;if(h){if(h===\"text\"){let E=\"\";m&&m.type===\"text\"?E=m.text:n.type===\"text\"&&(E=n.text),E||console.error(`No text found for end binding text element for ${e.id}`),s=Nn({x:p,y:f,type:\"text\",...m,...n,text:E}),Object.assign(s,{y:n.y||e.y-s.height/2})}else switch(h){case\"rectangle\":case\"ellipse\":case\"diamond\":{s=Rn({x:p,y:f,width:u,height:c,...m,...n,type:h});break}default:ia(e,`Unhandled element end type \"${h}\"`,!0)}It(e,s,\"orbit\",\"end\",o)}}if(e.points.length<2)return{linearElement:e,startBoundElement:r,endBoundElement:s};let a=e.points.length-1,l=.5,d=su(e.points);return e.points[a][0]>e.points[a-1][0]&&(d[0][0]=l,d[a][0]-=l),e.points[a][0]<e.points[a-1][0]&&(d[0][0]=-l,d[a][0]+=l),e.points[a][1]>e.points[a-1][1]&&(d[0][1]=l,d[a][1]-=l),e.points[a][1]<e.points[a-1][1]&&(d[0][1]=-l,d[a][1]+=l),Object.assign(e,C.getNormalizeElementPointsAndCoords({...e,points:d})),{linearElement:e,startBoundElement:r,endBoundElement:s}},oa=class{excalidrawElements=new Map;add=t=>{t&&this.excalidrawElements.set(t.id,t)};getElements=()=>ks(Array.from(this.excalidrawElements.values()));getElementsMap=()=>Pg(wg(this.getElements()));getElement=t=>this.excalidrawElements.get(t)},rM=(e,t)=>{if(!e)return[];let n=su(e),i=new oa,o=new Map,r=new Map;for(let l of n){let d,c=l.id;switch(t?.regenerateIds!==!1&&Object.assign(l,{id:xg()}),l.type){case\"rectangle\":case\"ellipse\":case\"diamond\":{let m=l?.label?.text&&l.width===void 0?0:l?.width||Sn,p=l?.label?.text&&l.height===void 0?0:l?.height||Sn;d=Rn({...l,width:m,height:p});break}case\"line\":{let m=l.width||cr.width,p=l.height||cr.height;d=Sc({width:m,height:p,points:[dr(0,0),dr(m,p)],...l});break}case\"arrow\":{let m=l.width||cr.width,p=l.height||cr.height;d=er({width:m,height:p,endArrowhead:\"arrow\",points:[dr(0,0),dr(m,p)],...l,type:\"arrow\"}),Object.assign(d,gg(d.points));break}case\"text\":{let m=l?.fontFamily||pg,p=l?.fontSize||fg,f=l?.lineHeight||Ig(m),h=l.text??\"\",E=xi(h),g=Ve(E,bg({fontFamily:m,fontSize:p}),f);d=Nn({width:g.width,height:g.height,fontFamily:m,fontSize:p,...l});break}case\"image\":{d=Ac({width:l?.width||Sn,height:l?.height||Sn,...l});break}case\"frame\":{d=yc({x:0,y:0,...l});break}case\"magicframe\":{d=Pc({x:0,y:0,...l});break}case\"freedraw\":case\"iframe\":case\"embeddable\":{d=l;break}default:d=l,ia(l,`Unhandled element type \"${l.type}\"`,!0)}i.getElement(d.id)?console.error(`Duplicate id found for ${d.id}`):(i.add(d),o.set(d.id,l),c&&r.set(c,d.id))}let s=i.getElementsMap(),a=new ei(s);for(let[l,d]of o){let c=i.getElement(l);switch(d.type){case\"rectangle\":case\"ellipse\":case\"diamond\":case\"arrow\":{if(d.label?.text){let[u,m]=Sg(c,d?.label,a);if(i.add(u),i.add(m),H(u)){let p=d.type===\"arrow\"?d?.start:void 0,f=d.type===\"arrow\"?d?.end:void 0;if(p&&p.id){let x=r.get(p.id);x&&Object.assign(p,{id:x})}if(f&&f.id){let x=r.get(f.id);x&&Object.assign(f,{id:x})}let{linearElement:h,startBoundElement:E,endBoundElement:g}=ru(u,p,f,i,a);u=h,i.add(h),i.add(E),i.add(g)}}else switch(d.type){case\"arrow\":{let{start:u,end:m}=d;if(u&&u.id){let E=r.get(u.id);Object.assign(u,{id:E})}if(m&&m.id){let E=r.get(m.id);Object.assign(m,{id:E})}let{linearElement:p,startBoundElement:f,endBoundElement:h}=ru(c,u,m,i,a);i.add(p),i.add(f),i.add(h);break}}break}}}for(let[l,d]of o){if(d.type!==\"frame\"&&d.type!==\"magicframe\")continue;let c=i.getElement(l);if(!c)throw new Error(`Excalidraw element with id ${l} doesn't exist`);let u=[];d.children.forEach(b=>{let I=r.get(b);if(!I)throw new Error(`Element with ${b} wasn't mapped correctly`);let A=i.getElement(I);if(!A)throw new Error(`Frame element with id ${I} doesn't exist`);Object.assign(A,{frameId:c.id}),A?.boundElements?.forEach(T=>{let M=i.getElement(T.id);if(!M)throw new Error(`Bound element with id ${T.id} doesn't exist`);Object.assign(M,{frameId:c.id}),u.push(M)}),u.push(A)});let[m,p,f,h]=ke(u),E=10;m=m-E,p=p-E,f=f+E,h=h+E;let g=c?.x||m,x=c?.y||p,w=c?.width||f-m,y=c?.height||h-p;Object.assign(c,{x:g,y:x,width:w,height:y}),yg()&&d.children.length&&(c?.x||c?.y||c?.width||c?.height)&&console.info(\"User provided frame attributes are being considered, if you find this inaccurate, please remove any of the attributes - x, y, width and height so frame coordinates and dimensions are calculated automatically\")}return i.getElements()};P();var cM=({app:e,event:t})=>{let n=e.state;if(n.selectedLinearElement&&e.lastPointerMoveCoords){if(n.selectedLinearElement.draggedFocusPointBinding)return Vc(n.selectedLinearElement,e.scene.getNonDeletedElementsMap(),e.lastPointerMoveCoords,e.scene,n,e.getEffectiveGridSize(),t.altKey),!0;if(n.selectedLinearElement.hoverPointIndex!==null&&e.lastPointerMoveEvent&&n.selectedLinearElement.initialState.lastClickedPoint>=0&&n.selectedLinearElement.isDragging)return C.handlePointDragging(e.lastPointerMoveEvent,e,e.lastPointerMoveCoords.x,e.lastPointerMoveCoords.y,n.selectedLinearElement),!0}return!1};P();var Ag=e=>{switch(e){case void 0:case null:return null;case\"dot\":return\"circle\";case\"crowfoot_one\":return\"cardinality_one\";case\"crowfoot_many\":return\"cardinality_many\";case\"crowfoot_one_or_many\":return\"cardinality_one_or_many\";default:return e}},pM=e=>{let t=Ag(e);return t===null?null:t};var xM=e=>e.reduce((t,n)=>t+n.version,0),Zd=e=>{let t=5381;for(let n of Mg(e))t=(t<<5)+t+n.versionNonce;return t>>>0},qd=e=>{let t=5381;for(let n=0;n<e.length;n++){let i=e.charCodeAt(n);t=(t<<5)+t+i}return t>>>0},wM=e=>e.filter(t=>!t.isDeleted&&!_d(t)),bM=e=>e.filter(t=>!t.isDeleted),yM=e=>!e.isDeleted;export{xn as AppStateDelta,Gp as BASE_ARROW_MIN_LENGTH,Fl as BASE_BINDING_GAP,Gn as BASE_BINDING_GAP_ELBOW,ee as BASE_PADDING,pn as BindableElement,mn as BoundElement,Ye as CaptureUpdateAction,d1 as DEFAULT_LINK_SIZE,tu as DEFAULT_OMIT_SIDES,Y as Delta,Bs as DurableIncrement,Ss as ElementBounds,wn as ElementsDelta,Ls as EphemeralIncrement,vi as FOCUS_POINT_SIZE,Oc as FlowChartCreator,Gc as FlowChartNavigator,be as HEADING_DOWN,_e as HEADING_LEFT,fe as HEADING_RIGHT,qe as HEADING_UP,gh as INVISIBLY_SMALL_ELEMENT_SIZE,Gs as InvalidFractionalIndexError,C as LinearElementEditor,Ie as MINIMAL_CROP_SIZE,BA as OMIT_SIDES_FOR_FRAME,DA as OMIT_SIDES_FOR_MULTIPLE_ELEMENTS,ei as Scene,Ke as ShapeCache,jd as Store,Ri as StoreChange,Cs as StoreDelta,Vo as StoreIncrement,bn as StoreSnapshot,nt as aabbForElement,Tf as addElementsToFrame,XE as addNewNodes,s0 as addToGroup,fP as alignElements,Hp as avoidRectangularCorner,It as bindBindingElement,Ed as bindElementsToFramesAfterDuplication,Op as bindOrUnbindBindingElement,My as bindOrUnbindBindingElements,ts as bindPointToSnapToElementOutline,Hl as bindingProperties,Bl as bumpVersion,Up as calculateFixedPointForElbowArrowBinding,Xn as calculateFixedPointForNonElbowArrowBinding,Lw as canApplyRoundnessTypeToElement,Wa as canBecomePolygon,Ad as canChangeRoundness,xE as canCreateLinkFromElements,b1 as canHaveArrowheads,ar as canResizeFromSides,Wn as charWidth,pe as compareHeading,wi as computeBoundTextPosition,Rr as computeContainerDimensionForBoundText,sb as containsCJK,rM as convertToExcalidrawElements,aS as createPlaceholderEmbeddableLabel,Hs as createSrcDoc,Pw as cropElement,tn as deconstructDiamondElement,uo as deconstructLinearOrFreeDrawElement,en as deconstructRectanguloidElement,Ds as deepCopyElement,RI as defaultGetElementLinkFromSelection,Jw as detectLineHeight,rn as distanceToElement,bI as distributeElements,Pi as doBoundsIntersect,CI as dragNewElement,BI as dragSelectedElements,Th as duplicateElement,vP as duplicateElements,r0 as editGroupForSelectedElement,re as elementCenterPoint,fn as elementOverlapsWithFrame,Ci as elementWithCanvasCache,En as elementsAreInFrameBounds,ud as elementsAreInSameGroup,dS as embeddableURLValidator,fd as excludeElementsInFramesFromSelection,U0 as filterElementsEligibleAsFrameChildren,vy as fixBindingsAfterDeletion,zl as fixDuplicatedBindingsAfterDuplication,jr as flipHeading,V0 as frameAndChildrenSelectedTogether,qa as generateLinearCollisionShape,We as generateRoughOptions,yo as getAllHoveredElementAtPoint,tl as getApproxMinLineHeight,el as getApproxMinLineWidth,_l as getArrowLocalFixedPoints,uh as getArrowheadAngle,pM as getArrowheadForPicker,Fe as getArrowheadPoints,ch as getArrowheadSize,Be as getBindingGap,Dy as getBindingSideMidPoint,ss as getBindingStrategyForDraggingBindingElementEndpoints,V as getBoundTextElement,Rt as getBoundTextElementId,xb as getBoundTextElementPosition,bi as getBoundTextMaxHeight,dt as getBoundTextMaxWidth,As as getBoundsFromPoints,bt as getCenterForBounds,Q1 as getClosestElementBounds,jt as getCommonBoundingBox,ke as getCommonBounds,Eb as getContainerCenter,Nr as getContainerCoords,Me as getContainerElement,Wt as getContainingFrame,Gt as getCornerRadius,Po as getCubicBezierCurveBound,_A as getCursorForResizingElement,Cf as getDefaultFrameName,Cw as getDefaultRoundnessTypeForElement,Za as getDiamondBaseCorners,Un as getDiamondPoints,LI as getDragOffsetXY,K1 as getDraggedElementsBounds,$ as getElementAbsoluteCoords,he as getElementBounds,hs as getElementLineSegments,ds as getElementPointsCoords,Cd as getElementShape,zA as getElementWithTransformHandleType,gd as getElementsCompletelyInFrame,Oe as getElementsInGroup,_0 as getElementsInNewFrame,H0 as getElementsInResizingFrame,O0 as getElementsIntersectingFrame,$0 as getElementsOverlappingFrame,ps as getElementsWithinSelection,sS as getEmbedLink,Iw as getFlipAdjustedCropPosition,hn as getFrameChildren,Af as getFrameLikeElements,X0 as getFrameLikeTitle,m1 as getFreedrawOutlineAsSegments,eh as getFreedrawOutlinePoints,Ne as getGlobalFixedPointForBindableElement,Wp as getGlobalFixedPoints,Dl as getHeadingForElbowArrowSnap,Nt as getHoveredElementForBinding,gl as getHoveredElementForFocusPoint,tA as getInitializedImageElements,ho as getLineHeightInPx,on as getLineWidth,Gw as getLinearElementSubType,IS as getLinkDirectionFromKey,NI as getLinkIdAndTypeFromSelection,Ql as getLockedLinearCursorAlignSize,Im as getMaxCharWidth,l0 as getMaximumGroups,tb as getMinCharWidth,Bi as getMinMaxXYFromCurvePathOps,fo as getMinTextElementWidth,pd as getNewGroupIdsForDuplication,bM as getNonDeletedElements,cd as getNonDeletedGroupIds,lP as getNormalizedDimensions,Kn as getObservedAppState,Qs as getOmitSidesForEditorInterface,Vw as getOriginalContainerHeightFromCache,Ms as getPerfectElementSize,Ys as getPredecessors,q1 as getRectangleBoxAbsoluteCoords,Wf as getRenderOpacity,PA as getResizeArrowDirection,yA as getResizeOffsetXY,Jt as getResizedElementAbsoluteCoords,z0 as getRootElements,xM as getSceneVersion,St as getSelectedElements,zo as getSelectedElementsByGroup,ms as getSelectedGroupForElement,bf as getSelectedGroupIdForElement,xf as getSelectedGroupIds,y0 as getSelectionStateForElements,Em as getSnapOutlineMidPoint,b0 as getTargetElements,Df as getTargetFrame,gb as getTextElementAngle,Pb as getTextFromElements,Pm as getTextHeight,nl as getTextWidth,HA as getTransformHandleTypeFromCoords,nu as getTransformHandles,Js as getTransformHandlesFromCoords,Fa as getUncroppedImageElement,Sr as getUncroppedWidthAndHeight,x0 as getVisibleAndNonSelectedElements,wM as getVisibleElements,J1 as getVisibleSceneBounds,N0 as groupByFrameLikes,F0 as groupsAreAtLeastIntersectingTheFrame,R0 as groupsAreCompletelyOutOfFrame,Cn as handleBindTextResize,Vc as handleFocusPointDrag,ZS as handleFocusPointHover,$S as handleFocusPointPointerDown,VS as handleFocusPointPointerUp,h1 as hasBackground,gt as hasBoundTextElement,LA as hasBoundingBox,E1 as hasStrokeColor,x1 as hasStrokeStyle,g1 as hasStrokeWidth,Zd as hashElementsVersion,qd as hashString,He as headingForPoint,Ii as headingForPointFromElement,ct as headingForPointIsHorizontal,Ue as headingIsHorizontal,Vb as headingIsVertical,np as hitElementBoundText,tp as hitElementBoundingBox,Ub as hitElementBoundingBoxOnly,xt as hitElementItself,sn as intersectElementWithLineSegment,Bw as isArrowBoundToElement,H as isArrowElement,de as isBindableElement,Wr as isBindableElementInsideOtherBindable,Ae as isBindingElement,rm as isBindingElementType,Pt as isBindingEnabled,ce as isBoundToContainer,k0 as isCursorInFrame,im as isCurvedArrow,U as isElbowArrow,aP as isElementCompletelyInViewport,Es as isElementContainingFrame,wd as isElementInFrame,wf as isElementInGroup,hd as isElementInViewport,Vn as isElementIntersectingFrame,zI as isElementLink,Na as isEmbeddableElement,Dw as isExcalidrawElement,Yp as isFixedPoint,Ar as isFlowchartNodeElement,ir as isFocusPointVisible,co as isFrameElement,Z as isFrameLikeElement,Se as isFreeDrawElement,tm as isFreeDrawElementType,JE as isHTMLSVGElement,ao as isIframeElement,lo as isIframeLikeElement,we as isImageElement,md as isInGroup,vn as isInitializedImageElement,_d as isInvisiblySmallElement,Lt as isLineElement,q as isLinearElement,om as isLinearElementType,za as isMagicFrameElement,Qw as isMeasureTextSupported,SS as isNodeInFlowchart,yM as isNonDeletedElement,Bn as isPathALoop,Ot as isPointInElement,hi as isRectangularElement,Ha as isRectanguloidElement,gf as isSelectedViaGroup,nm as isSharpArrow,vw as isSimpleArrow,w0 as isSomeElementSelected,sm as isTextBindableContainer,Q as isTextElement,_a as isUsingAdaptiveRadius,Ua as isUsingProportionalRadius,Ow as isValidPolygon,yb as isValidTextContainer,QE as loadHTMLImageElement,us as makeNextSelectedElementIds,lt as maxBindingDistance_simple,cM as maybeHandleArrowPointlikeDrag,lS as maybeParseEmbedSrc,Zs as measureFontSizeFromWidth,Ve as measureText,FS as moveAllLeft,RS as moveAllRight,Uc as moveArrowAboveBindable,OS as moveOneLeft,kS as moveOneRight,ye as mutateElement,er as newArrowElement,Rn as newElement,Le as newElementWith,qI as newEmbeddableElement,yc as newFrameElement,JI as newFreeDrawElement,KI as newIframeElement,Ac as newImageElement,Sc as newLinearElement,Pc as newMagicFrameElement,Nn as newTextElement,Ag as normalizeArrowhead,Ud as normalizeElementOrder,nn as normalizeFixedPoint,nA as normalizeSVG,xi as normalizeText,Ho as omitGroupsContainingFrameLikes,Mf as omitPartialGroups,ic as orderByFractionalIndex,gi as originalContainerCache,HI as parseElementLinkFromURL,Bm as parseTokens,an as pointInsideBounds,aA as positionElementsOnGrid,Lr as projectFixedPointOntoDiagonal,xo as redrawTextBoundingBox,QI as refreshTextDimensions,vf as removeAllElementsFromFrame,xd as removeElementsFromFrame,a0 as removeFromSelectedGroups,u1 as renderElement,c1 as renderSelectionElement,W0 as replaceAllElementsInFrame,Kc as rescalePointsInElement,Qa as resetOriginalContainerCache,lg as resizeMultipleElements,rg as resizeSingleElement,ng as resizeSingleTextElement,ug as resizeTest,Ef as selectGroup,ld as selectGroupsForSelectedElements,dd as selectGroupsFromGivenElements,eb as setCustomTextMetricsProvider,wb as shouldAllowVerticalAlign,j0 as shouldApplyFrameClip,bo as shouldTestInside,jA as showSelectedShapeActions,as as snapToMid,bb as suppportsHorizontalAlign,ks as syncInvalidIndices,Vd as syncInvalidIndicesImmutable,zi as syncMovedIndices,Kl as toggleLinePolygonState,w1 as toolIsArrow,bA as transformElements,ve as unbindBindingElement,Ty as updateBindings,De as updateBoundElements,ut as updateBoundPoint,jn as updateElbowArrowPoints,Y0 as updateFrameMembershipOfSelectedElements,eA as updateImageCache,Ka as updateOriginalContainerCache,vl as validateElbowPoints,Fh as validateFractionalIndices,zt as vectorToHeading,Ft as wrapText};\n", "import { getVisibleElements } from \"@excalidraw/element\";\nimport {\n sceneCoordsToViewportCoords,\n viewportCoordsToSceneCoords,\n} from \"@excalidraw/common\";\n\nimport { getClosestElementBounds } from \"@excalidraw/element\";\n\nimport { getCommonBounds } from \"@excalidraw/element\";\n\nimport type { ExcalidrawElement } from \"@excalidraw/element/types\";\n\nimport type { AppState, Offsets, PointerCoords, Zoom } from \"../types\";\n\nconst isOutsideViewPort = (appState: AppState, cords: Array<number>) => {\n const [x1, y1, x2, y2] = cords;\n const { x: viewportX1, y: viewportY1 } = sceneCoordsToViewportCoords(\n { sceneX: x1, sceneY: y1 },\n appState,\n );\n const { x: viewportX2, y: viewportY2 } = sceneCoordsToViewportCoords(\n { sceneX: x2, sceneY: y2 },\n appState,\n );\n return (\n viewportX2 - viewportX1 > appState.width ||\n viewportY2 - viewportY1 > appState.height\n );\n};\n\nexport const centerScrollOn = ({\n scenePoint,\n viewportDimensions,\n zoom,\n offsets,\n}: {\n scenePoint: PointerCoords;\n viewportDimensions: { height: number; width: number };\n zoom: Zoom;\n offsets?: Offsets;\n}) => {\n let scrollX =\n (viewportDimensions.width - (offsets?.right ?? 0)) / 2 / zoom.value -\n scenePoint.x;\n\n scrollX += (offsets?.left ?? 0) / 2 / zoom.value;\n\n let scrollY =\n (viewportDimensions.height - (offsets?.bottom ?? 0)) / 2 / zoom.value -\n scenePoint.y;\n\n scrollY += (offsets?.top ?? 0) / 2 / zoom.value;\n\n return {\n scrollX,\n scrollY,\n };\n};\n\nexport const calculateScrollCenter = (\n elements: readonly ExcalidrawElement[],\n appState: AppState,\n): { scrollX: number; scrollY: number } => {\n elements = getVisibleElements(elements);\n\n if (!elements.length) {\n return {\n scrollX: 0,\n scrollY: 0,\n };\n }\n let [x1, y1, x2, y2] = getCommonBounds(elements);\n\n if (isOutsideViewPort(appState, [x1, y1, x2, y2])) {\n [x1, y1, x2, y2] = getClosestElementBounds(\n elements,\n viewportCoordsToSceneCoords(\n { clientX: appState.scrollX, clientY: appState.scrollY },\n appState,\n ),\n );\n }\n\n const centerX = (x1 + x2) / 2;\n const centerY = (y1 + y2) / 2;\n\n return centerScrollOn({\n scenePoint: { x: centerX, y: centerY },\n viewportDimensions: { width: appState.width, height: appState.height },\n zoom: appState.zoom,\n });\n};\n", "import { MAX_ZOOM, MIN_ZOOM } from \"@excalidraw/common\";\n\nimport { clamp, round } from \"@excalidraw/math\";\n\nimport type { NormalizedZoomValue } from \"../types\";\n\nexport const getNormalizedZoom = (zoom: number): NormalizedZoomValue => {\n return clamp(round(zoom, 6), MIN_ZOOM, MAX_ZOOM) as NormalizedZoomValue;\n};\n\nexport const getNormalizedGridSize = (gridStep: number) => {\n return clamp(Math.round(gridStep), 1, 100);\n};\n\nexport const getNormalizedGridStep = (gridStep: number) => {\n return clamp(Math.round(gridStep), 1, 100);\n};\n", "import rough from \"roughjs/bin/rough\";\n\nimport {\n DEFAULT_EXPORT_PADDING,\n FRAME_STYLE,\n FONT_FAMILY,\n SVG_NS,\n THEME,\n MIME_TYPES,\n EXPORT_DATA_TYPES,\n arrayToMap,\n distance,\n getFontString,\n toBrandedType,\n applyDarkModeFilter,\n} from \"@excalidraw/common\";\n\nimport { getCommonBounds, getElementAbsoluteCoords } from \"@excalidraw/element\";\n\nimport {\n getInitializedImageElements,\n updateImageCache,\n} from \"@excalidraw/element\";\n\nimport { newElementWith } from \"@excalidraw/element\";\n\nimport { isFrameLikeElement } from \"@excalidraw/element\";\n\nimport {\n getElementsOverlappingFrame,\n getFrameLikeElements,\n getFrameLikeTitle,\n getRootElements,\n} from \"@excalidraw/element\";\n\nimport { syncInvalidIndices } from \"@excalidraw/element\";\n\nimport { type Mutable } from \"@excalidraw/common/utility-types\";\n\nimport { newTextElement } from \"@excalidraw/element\";\n\nimport type { Bounds } from \"@excalidraw/common\";\n\nimport type {\n ExcalidrawElement,\n ExcalidrawFrameLikeElement,\n ExcalidrawTextElement,\n NonDeletedExcalidrawElement,\n NonDeletedSceneElementsMap,\n} from \"@excalidraw/element/types\";\n\nimport { getDefaultAppState } from \"../appState\";\nimport { base64ToString, decode, encode, stringToBase64 } from \"../data/encode\";\nimport { serializeAsJSON } from \"../data/json\";\n\nimport { Fonts } from \"../fonts\";\n\nimport { renderStaticScene } from \"../renderer/staticScene\";\nimport { renderSceneToSvg } from \"../renderer/staticSvgScene\";\n\nimport type { RenderableElementsMap } from \"./types\";\n\nimport type { AppState, BinaryFiles } from \"../types\";\n\nconst truncateText = (element: ExcalidrawTextElement, maxWidth: number) => {\n if (element.width <= maxWidth) {\n return element;\n }\n const canvas = document.createElement(\"canvas\");\n const ctx = canvas.getContext(\"2d\")!;\n ctx.font = getFontString({\n fontFamily: element.fontFamily,\n fontSize: element.fontSize,\n });\n\n let text = element.text;\n\n const metrics = ctx.measureText(text);\n\n if (metrics.width > maxWidth) {\n // we iterate from the right, removing characters one by one instead\n // of bulding the string up. This assumes that it's more likely\n // your frame names will overflow by not that many characters\n // (if ever), so it sohuld be faster this way.\n for (let i = text.length; i > 0; i--) {\n const newText = `${text.slice(0, i)}...`;\n if (ctx.measureText(newText).width <= maxWidth) {\n text = newText;\n break;\n }\n }\n }\n return newElementWith(element, { text, width: maxWidth });\n};\n\n/**\n * When exporting frames, we need to render frame labels which are currently\n * being rendered in DOM when editing. Adding the labels as regular text\n * elements seems like a simple hack. In the future we'll want to move to\n * proper canvas rendering, even within editor (instead of DOM).\n */\nconst addFrameLabelsAsTextElements = (\n elements: readonly NonDeletedExcalidrawElement[],\n opts: Pick<AppState, \"exportWithDarkMode\">,\n) => {\n const nextElements: NonDeletedExcalidrawElement[] = [];\n for (const element of elements) {\n if (isFrameLikeElement(element)) {\n let textElement: Mutable<ExcalidrawTextElement> = newTextElement({\n x: element.x,\n y: element.y - FRAME_STYLE.nameOffsetY,\n fontFamily: FONT_FAMILY.Helvetica,\n fontSize: FRAME_STYLE.nameFontSize,\n lineHeight:\n FRAME_STYLE.nameLineHeight as ExcalidrawTextElement[\"lineHeight\"],\n strokeColor: opts.exportWithDarkMode\n ? FRAME_STYLE.nameColorDarkTheme\n : FRAME_STYLE.nameColorLightTheme,\n text: getFrameLikeTitle(element),\n });\n textElement.y -= textElement.height;\n\n textElement = truncateText(textElement, element.width);\n\n nextElements.push(textElement);\n }\n nextElements.push(element);\n }\n\n return nextElements;\n};\n\nconst getFrameRenderingConfig = (\n exportingFrame: ExcalidrawFrameLikeElement | null,\n frameRendering: AppState[\"frameRendering\"] | null,\n): AppState[\"frameRendering\"] => {\n frameRendering = frameRendering || getDefaultAppState().frameRendering;\n return {\n enabled: exportingFrame ? true : frameRendering.enabled,\n outline: exportingFrame ? false : frameRendering.outline,\n name: exportingFrame ? false : frameRendering.name,\n clip: exportingFrame ? true : frameRendering.clip,\n };\n};\n\nconst prepareElementsForRender = ({\n elements,\n exportingFrame,\n frameRendering,\n exportWithDarkMode,\n}: {\n elements: readonly ExcalidrawElement[];\n exportingFrame: ExcalidrawFrameLikeElement | null | undefined;\n frameRendering: AppState[\"frameRendering\"];\n exportWithDarkMode: AppState[\"exportWithDarkMode\"];\n}) => {\n let nextElements: readonly ExcalidrawElement[];\n\n if (exportingFrame) {\n nextElements = getElementsOverlappingFrame(elements, exportingFrame);\n } else if (frameRendering.enabled && frameRendering.name) {\n nextElements = addFrameLabelsAsTextElements(elements, {\n exportWithDarkMode,\n });\n } else {\n nextElements = elements;\n }\n\n return nextElements;\n};\n\nexport const exportToCanvas = async (\n elements: readonly NonDeletedExcalidrawElement[],\n appState: AppState,\n files: BinaryFiles,\n {\n exportBackground,\n exportPadding = DEFAULT_EXPORT_PADDING,\n viewBackgroundColor,\n exportingFrame,\n }: {\n exportBackground: boolean;\n exportPadding?: number;\n viewBackgroundColor: string;\n exportingFrame?: ExcalidrawFrameLikeElement | null;\n },\n createCanvas: (\n width: number,\n height: number,\n ) => { canvas: HTMLCanvasElement; scale: number } = (width, height) => {\n const canvas = document.createElement(\"canvas\");\n canvas.width = width * appState.exportScale;\n canvas.height = height * appState.exportScale;\n return { canvas, scale: appState.exportScale };\n },\n loadFonts: () => Promise<void> = async () => {\n await Fonts.loadElementsFonts(elements);\n },\n) => {\n // load font faces before continuing, by default leverages browsers' [FontFace API](https://developer.mozilla.org/en-US/docs/Web/API/FontFace)\n await loadFonts();\n\n const frameRendering = getFrameRenderingConfig(\n exportingFrame ?? null,\n appState.frameRendering ?? null,\n );\n // for canvas export, don't clip if exporting a specific frame as it would\n // clip the corners of the content\n if (exportingFrame) {\n frameRendering.clip = false;\n }\n\n const elementsForRender = prepareElementsForRender({\n elements,\n exportingFrame,\n exportWithDarkMode: appState.exportWithDarkMode,\n frameRendering,\n });\n\n if (exportingFrame) {\n exportPadding = 0;\n }\n\n const [minX, minY, width, height] = getCanvasSize(\n exportingFrame ? [exportingFrame] : getRootElements(elementsForRender),\n exportPadding,\n );\n\n const { canvas, scale = 1 } = createCanvas(width, height);\n\n const defaultAppState = getDefaultAppState();\n\n const { imageCache } = await updateImageCache({\n imageCache: new Map(),\n fileIds: getInitializedImageElements(elementsForRender).map(\n (element) => element.fileId,\n ),\n files,\n });\n\n renderStaticScene({\n canvas,\n rc: rough.canvas(canvas),\n elementsMap: toBrandedType<RenderableElementsMap>(\n arrayToMap(elementsForRender),\n ),\n allElementsMap: toBrandedType<NonDeletedSceneElementsMap>(\n arrayToMap(syncInvalidIndices(elements)),\n ),\n visibleElements: elementsForRender,\n scale,\n appState: {\n ...appState,\n frameRendering,\n viewBackgroundColor: exportBackground ? viewBackgroundColor : null,\n scrollX: -minX + exportPadding,\n scrollY: -minY + exportPadding,\n zoom: defaultAppState.zoom,\n shouldCacheIgnoreZoom: false,\n theme: appState.exportWithDarkMode ? THEME.DARK : THEME.LIGHT,\n },\n renderConfig: {\n canvasBackgroundColor: viewBackgroundColor,\n imageCache,\n renderGrid: false,\n isExporting: true,\n // empty disables embeddable rendering\n embedsValidationStatus: new Map(),\n elementsPendingErasure: new Set(),\n pendingFlowchartNodes: null,\n theme: appState.exportWithDarkMode ? THEME.DARK : THEME.LIGHT,\n },\n });\n\n return canvas;\n};\n\nconst createHTMLComment = (text: string) => {\n // surrounding with spaces to maintain prettified consistency with previous\n // iterations\n // <!-- comment -->\n return document.createComment(` ${text} `);\n};\n\nexport const exportToSvg = async (\n elements: readonly NonDeletedExcalidrawElement[],\n appState: {\n exportBackground: boolean;\n exportPadding?: number;\n exportScale?: number;\n viewBackgroundColor: string;\n exportWithDarkMode?: boolean;\n exportEmbedScene?: boolean;\n frameRendering?: AppState[\"frameRendering\"];\n },\n files: BinaryFiles | null,\n opts?: {\n /**\n * if true, all embeddables passed in will be rendered when possible.\n */\n renderEmbeddables?: boolean;\n exportingFrame?: ExcalidrawFrameLikeElement | null;\n skipInliningFonts?: true;\n reuseImages?: boolean;\n },\n): Promise<SVGSVGElement> => {\n const frameRendering = getFrameRenderingConfig(\n opts?.exportingFrame ?? null,\n appState.frameRendering ?? null,\n );\n\n let {\n exportPadding = DEFAULT_EXPORT_PADDING,\n exportWithDarkMode = false,\n viewBackgroundColor,\n exportScale = 1,\n exportEmbedScene,\n } = appState;\n\n const { exportingFrame = null } = opts || {};\n\n const elementsForRender = prepareElementsForRender({\n elements,\n exportingFrame,\n exportWithDarkMode,\n frameRendering,\n });\n\n if (exportingFrame) {\n exportPadding = 0;\n }\n\n const [minX, minY, width, height] = getCanvasSize(\n exportingFrame ? [exportingFrame] : getRootElements(elementsForRender),\n exportPadding,\n );\n\n const offsetX = -minX + exportPadding;\n const offsetY = -minY + exportPadding;\n\n // ---------------------------------------------------------------------------\n // initialize SVG root element\n // ---------------------------------------------------------------------------\n\n const svgRoot = document.createElementNS(SVG_NS, \"svg\");\n\n svgRoot.setAttribute(\"version\", \"1.1\");\n svgRoot.setAttribute(\"xmlns\", SVG_NS);\n svgRoot.setAttribute(\"viewBox\", `0 0 ${width} ${height}`);\n svgRoot.setAttribute(\"width\", `${width * exportScale}`);\n svgRoot.setAttribute(\"height\", `${height * exportScale}`);\n\n const defsElement = svgRoot.ownerDocument.createElementNS(SVG_NS, \"defs\");\n\n const metadataElement = svgRoot.ownerDocument.createElementNS(\n SVG_NS,\n \"metadata\",\n );\n\n svgRoot.appendChild(createHTMLComment(\"svg-source:excalidraw\"));\n svgRoot.appendChild(metadataElement);\n svgRoot.appendChild(defsElement);\n\n // ---------------------------------------------------------------------------\n // scene embed\n // ---------------------------------------------------------------------------\n\n // we need to serialize the \"original\" elements before we put them through\n // the tempScene hack which duplicates and regenerates ids\n if (exportEmbedScene) {\n try {\n encodeSvgBase64Payload({\n metadataElement,\n // when embedding scene, we want to embed the origionally supplied\n // elements which don't contain the temp frame labels.\n // But it also requires that the exportToSvg is being supplied with\n // only the elements that we're exporting, and no extra.\n payload: serializeAsJSON(elements, appState, files || {}, \"local\"),\n });\n } catch (error: any) {\n console.error(error);\n }\n }\n\n // ---------------------------------------------------------------------------\n // frame clip paths\n // ---------------------------------------------------------------------------\n\n const frameElements = getFrameLikeElements(elements);\n\n if (frameElements.length) {\n const elementsMap = arrayToMap(elements);\n\n for (const frame of frameElements) {\n const clipPath = svgRoot.ownerDocument.createElementNS(\n SVG_NS,\n \"clipPath\",\n );\n\n clipPath.setAttribute(\"id\", frame.id);\n\n const [x1, y1, x2, y2] = getElementAbsoluteCoords(frame, elementsMap);\n const cx = (x2 - x1) / 2 - (frame.x - x1);\n const cy = (y2 - y1) / 2 - (frame.y - y1);\n\n const rect = svgRoot.ownerDocument.createElementNS(SVG_NS, \"rect\");\n rect.setAttribute(\n \"transform\",\n `translate(${frame.x + offsetX} ${frame.y + offsetY}) rotate(${\n frame.angle\n } ${cx} ${cy})`,\n );\n rect.setAttribute(\"width\", `${frame.width}`);\n rect.setAttribute(\"height\", `${frame.height}`);\n\n if (!exportingFrame) {\n rect.setAttribute(\"rx\", `${FRAME_STYLE.radius}`);\n rect.setAttribute(\"ry\", `${FRAME_STYLE.radius}`);\n }\n\n clipPath.appendChild(rect);\n\n defsElement.appendChild(clipPath);\n }\n }\n\n // ---------------------------------------------------------------------------\n // inline font faces\n // ---------------------------------------------------------------------------\n\n const fontFaces = !opts?.skipInliningFonts\n ? await Fonts.generateFontFaceDeclarations(elements)\n : [];\n\n const delimiter = \"\\n \"; // 6 spaces\n\n const style = svgRoot.ownerDocument.createElementNS(SVG_NS, \"style\");\n style.classList.add(\"style-fonts\");\n style.appendChild(\n document.createTextNode(`${delimiter}${fontFaces.join(delimiter)}`),\n );\n\n defsElement.appendChild(style);\n\n // ---------------------------------------------------------------------------\n // background\n // ---------------------------------------------------------------------------\n\n // render background rect\n if (appState.exportBackground && viewBackgroundColor) {\n const rect = svgRoot.ownerDocument.createElementNS(SVG_NS, \"rect\");\n rect.setAttribute(\"x\", \"0\");\n rect.setAttribute(\"y\", \"0\");\n rect.setAttribute(\"width\", `${width}`);\n rect.setAttribute(\"height\", `${height}`);\n rect.setAttribute(\n \"fill\",\n exportWithDarkMode\n ? applyDarkModeFilter(viewBackgroundColor)\n : viewBackgroundColor,\n );\n svgRoot.appendChild(rect);\n }\n\n // ---------------------------------------------------------------------------\n // render elements\n // ---------------------------------------------------------------------------\n\n const rsvg = rough.svg(svgRoot);\n\n const renderEmbeddables = opts?.renderEmbeddables ?? false;\n\n renderSceneToSvg(\n elementsForRender,\n toBrandedType<RenderableElementsMap>(arrayToMap(elementsForRender)),\n rsvg,\n svgRoot,\n files || {},\n {\n offsetX,\n offsetY,\n isExporting: true,\n exportWithDarkMode,\n renderEmbeddables,\n frameRendering,\n canvasBackgroundColor: viewBackgroundColor,\n embedsValidationStatus: renderEmbeddables\n ? new Map(\n elementsForRender\n .filter((element) => isFrameLikeElement(element))\n .map((element) => [element.id, true]),\n )\n : new Map(),\n reuseImages: opts?.reuseImages ?? true,\n theme: exportWithDarkMode ? THEME.DARK : THEME.LIGHT,\n },\n );\n\n // ---------------------------------------------------------------------------\n\n return svgRoot;\n};\n\nexport const encodeSvgBase64Payload = ({\n payload,\n metadataElement,\n}: {\n payload: string;\n metadataElement: SVGMetadataElement;\n}) => {\n const base64 = stringToBase64(\n JSON.stringify(encode({ text: payload })),\n true /* is already byte string */,\n );\n\n metadataElement.appendChild(\n createHTMLComment(`payload-type:${MIME_TYPES.excalidraw}`),\n );\n metadataElement.appendChild(createHTMLComment(\"payload-version:2\"));\n metadataElement.appendChild(createHTMLComment(\"payload-start\"));\n metadataElement.appendChild(document.createTextNode(base64));\n metadataElement.appendChild(createHTMLComment(\"payload-end\"));\n};\n\nexport const decodeSvgBase64Payload = ({ svg }: { svg: string }) => {\n if (svg.includes(`payload-type:${MIME_TYPES.excalidraw}`)) {\n const match = svg.match(\n /<!-- payload-start -->\\s*(.+?)\\s*<!-- payload-end -->/,\n );\n if (!match) {\n throw new Error(\"INVALID\");\n }\n const versionMatch = svg.match(/<!-- payload-version:(\\d+) -->/);\n const version = versionMatch?.[1] || \"1\";\n const isByteString = version !== \"1\";\n\n try {\n const json = base64ToString(match[1], isByteString);\n const encodedData = JSON.parse(json);\n if (!(\"encoded\" in encodedData)) {\n // legacy, un-encoded scene JSON\n if (\n \"type\" in encodedData &&\n encodedData.type === EXPORT_DATA_TYPES.excalidraw\n ) {\n return json;\n }\n throw new Error(\"FAILED\");\n }\n return decode(encodedData);\n } catch (error: any) {\n console.error(error);\n throw new Error(\"FAILED\");\n }\n }\n throw new Error(\"INVALID\");\n};\n\n// calculate smallest area to fit the contents in\nconst getCanvasSize = (\n elements: readonly NonDeletedExcalidrawElement[],\n exportPadding: number,\n): Bounds => {\n const [minX, minY, maxX, maxY] = getCommonBounds(elements);\n const width = distance(minX, maxX) + exportPadding * 2;\n const height = distance(minY, maxY) + exportPadding * 2;\n\n return [minX, minY, width, height];\n};\n\nexport const getExportSize = (\n elements: readonly NonDeletedExcalidrawElement[],\n exportPadding: number,\n scale: number,\n): [number, number] => {\n const [, , width, height] = getCanvasSize(elements, exportPadding).map(\n (dimension) => Math.trunc(dimension * scale),\n );\n\n return [width, height];\n};\n", "import { deflate, inflate } from \"pako\";\n\nimport { encryptData, decryptData } from \"./encryption\";\n\n// -----------------------------------------------------------------------------\n// byte (binary) strings\n// -----------------------------------------------------------------------------\n\n// Buffer-compatible implem.\n//\n// Note that in V8, spreading the uint8array (by chunks) into\n// `String.fromCharCode(...uint8array)` tends to be faster for large\n// strings/buffers, in case perf is needed in the future.\nexport const toByteString = (data: string | Uint8Array | ArrayBuffer) => {\n const bytes =\n typeof data === \"string\"\n ? new TextEncoder().encode(data)\n : data instanceof Uint8Array\n ? data\n : new Uint8Array(data);\n let bstring = \"\";\n for (const byte of bytes) {\n bstring += String.fromCharCode(byte);\n }\n return bstring;\n};\n\nconst byteStringToArrayBuffer = (byteString: string) => {\n const buffer = new ArrayBuffer(byteString.length);\n const bufferView = new Uint8Array(buffer);\n for (let i = 0, len = byteString.length; i < len; i++) {\n bufferView[i] = byteString.charCodeAt(i);\n }\n return buffer;\n};\n\nconst byteStringToString = (byteString: string) => {\n return new TextDecoder(\"utf-8\").decode(byteStringToArrayBuffer(byteString));\n};\n\n// -----------------------------------------------------------------------------\n// base64\n// -----------------------------------------------------------------------------\n\n/**\n * @param isByteString set to true if already byte string to prevent bloat\n * due to reencoding\n */\nexport const stringToBase64 = (str: string, isByteString = false) => {\n return isByteString ? window.btoa(str) : window.btoa(toByteString(str));\n};\n\n// async to align with stringToBase64\nexport const base64ToString = (base64: string, isByteString = false) => {\n return isByteString\n ? window.atob(base64)\n : byteStringToString(window.atob(base64));\n};\n\nexport const base64ToArrayBuffer = (base64: string): ArrayBuffer => {\n if (typeof Buffer !== \"undefined\") {\n // Node.js environment\n return Buffer.from(base64, \"base64\").buffer;\n }\n // Browser environment\n return byteStringToArrayBuffer(atob(base64));\n};\n\n// -----------------------------------------------------------------------------\n// base64url\n// -----------------------------------------------------------------------------\n\nexport const base64urlToString = (str: string) => {\n return window.atob(\n // normalize base64URL to base64\n str\n .replace(/-/g, \"+\")\n .replace(/_/g, \"/\")\n .padEnd(str.length + ((4 - (str.length % 4)) % 4), \"=\"),\n );\n};\n\n// -----------------------------------------------------------------------------\n// text encoding\n// -----------------------------------------------------------------------------\n\ntype EncodedData = {\n encoded: string;\n encoding: \"bstring\";\n /** whether text is compressed (zlib) */\n compressed: boolean;\n /** version for potential migration purposes */\n version?: string;\n};\n\n/**\n * Encodes (and potentially compresses via zlib) text to byte string\n */\nexport const encode = ({\n text,\n compress,\n}: {\n text: string;\n /** defaults to `true`. If compression fails, falls back to bstring alone. */\n compress?: boolean;\n}): EncodedData => {\n let deflated!: string;\n if (compress !== false) {\n try {\n deflated = toByteString(deflate(text));\n } catch (error: any) {\n console.error(\"encode: cannot deflate\", error);\n }\n }\n return {\n version: \"1\",\n encoding: \"bstring\",\n compressed: !!deflated,\n encoded: deflated || toByteString(text),\n };\n};\n\nexport const decode = (data: EncodedData): string => {\n let decoded: string;\n\n switch (data.encoding) {\n case \"bstring\":\n // if compressed, do not double decode the bstring\n decoded = data.compressed\n ? data.encoded\n : byteStringToString(data.encoded);\n break;\n default:\n throw new Error(`decode: unknown encoding \"${data.encoding}\"`);\n }\n\n if (data.compressed) {\n return inflate(new Uint8Array(byteStringToArrayBuffer(decoded)), {\n to: \"string\",\n });\n }\n\n return decoded;\n};\n\n// -----------------------------------------------------------------------------\n// binary encoding\n// -----------------------------------------------------------------------------\n\ntype FileEncodingInfo = {\n /* version 2 is the version we're shipping the initial image support with.\n version 1 was a PR version that a lot of people were using anyway.\n Thus, if there are issues we can check whether they're not using the\n unoffic version */\n version: 1 | 2;\n compression: \"pako@1\" | null;\n encryption: \"AES-GCM\" | null;\n};\n\n// -----------------------------------------------------------------------------\nconst CONCAT_BUFFERS_VERSION = 1;\n/** how many bytes we use to encode how many bytes the next chunk has.\n * Corresponds to DataView setter methods (setUint32, setUint16, etc).\n *\n * NOTE ! values must not be changed, which would be backwards incompatible !\n */\nconst VERSION_DATAVIEW_BYTES = 4;\nconst NEXT_CHUNK_SIZE_DATAVIEW_BYTES = 4;\n// -----------------------------------------------------------------------------\n\nconst DATA_VIEW_BITS_MAP = { 1: 8, 2: 16, 4: 32 } as const;\n\n// getter\nfunction dataView(buffer: Uint8Array, bytes: 1 | 2 | 4, offset: number): number;\n// setter\nfunction dataView(\n buffer: Uint8Array,\n bytes: 1 | 2 | 4,\n offset: number,\n value: number,\n): Uint8Array;\n/**\n * abstraction over DataView that serves as a typed getter/setter in case\n * you're using constants for the byte size and want to ensure there's no\n * discrepenancy in the encoding across refactors.\n *\n * DataView serves for an endian-agnostic handling of numbers in ArrayBuffers.\n */\nfunction dataView(\n buffer: Uint8Array,\n bytes: 1 | 2 | 4,\n offset: number,\n value?: number,\n): Uint8Array | number {\n if (value != null) {\n if (value > Math.pow(2, DATA_VIEW_BITS_MAP[bytes]) - 1) {\n throw new Error(\n `attempting to set value higher than the allocated bytes (value: ${value}, bytes: ${bytes})`,\n );\n }\n const method = `setUint${DATA_VIEW_BITS_MAP[bytes]}` as const;\n new DataView(buffer.buffer)[method](offset, value);\n return buffer;\n }\n const method = `getUint${DATA_VIEW_BITS_MAP[bytes]}` as const;\n return new DataView(buffer.buffer)[method](offset);\n}\n\n// -----------------------------------------------------------------------------\n\n/**\n * Resulting concatenated buffer has this format:\n *\n * [\n * VERSION chunk (4 bytes)\n * LENGTH chunk 1 (4 bytes)\n * DATA chunk 1 (up to 2^32 bits)\n * LENGTH chunk 2 (4 bytes)\n * DATA chunk 2 (up to 2^32 bits)\n * ...\n * ]\n *\n * @param buffers each buffer (chunk) must be at most 2^32 bits large (~4GB)\n */\nconst concatBuffers = (...buffers: Uint8Array[]): Uint8Array<ArrayBuffer> => {\n const bufferView = new Uint8Array(\n VERSION_DATAVIEW_BYTES +\n NEXT_CHUNK_SIZE_DATAVIEW_BYTES * buffers.length +\n buffers.reduce((acc, buffer) => acc + buffer.byteLength, 0),\n );\n\n let cursor = 0;\n\n // as the first chunk we'll encode the version for backwards compatibility\n dataView(bufferView, VERSION_DATAVIEW_BYTES, cursor, CONCAT_BUFFERS_VERSION);\n cursor += VERSION_DATAVIEW_BYTES;\n\n for (const buffer of buffers) {\n dataView(\n bufferView,\n NEXT_CHUNK_SIZE_DATAVIEW_BYTES,\n cursor,\n buffer.byteLength,\n );\n cursor += NEXT_CHUNK_SIZE_DATAVIEW_BYTES;\n\n bufferView.set(buffer, cursor);\n cursor += buffer.byteLength;\n }\n\n return bufferView;\n};\n\n/** can only be used on buffers created via `concatBuffers()` */\nconst splitBuffers = (concatenatedBuffer: Uint8Array) => {\n const buffers = [];\n\n let cursor = 0;\n\n // first chunk is the version\n const version = dataView(\n concatenatedBuffer,\n NEXT_CHUNK_SIZE_DATAVIEW_BYTES,\n cursor,\n );\n // If version is outside of the supported versions, throw an error.\n // This usually means the buffer wasn't encoded using this API, so we'd only\n // waste compute.\n if (version > CONCAT_BUFFERS_VERSION) {\n throw new Error(`invalid version ${version}`);\n }\n\n cursor += VERSION_DATAVIEW_BYTES;\n\n while (true) {\n const chunkSize = dataView(\n concatenatedBuffer,\n NEXT_CHUNK_SIZE_DATAVIEW_BYTES,\n cursor,\n );\n cursor += NEXT_CHUNK_SIZE_DATAVIEW_BYTES;\n\n buffers.push(concatenatedBuffer.slice(cursor, cursor + chunkSize));\n cursor += chunkSize;\n if (cursor >= concatenatedBuffer.byteLength) {\n break;\n }\n }\n\n return buffers;\n};\n\n// helpers for (de)compressing data with JSON metadata including encryption\n// -----------------------------------------------------------------------------\n\n/** @private */\nconst _encryptAndCompress = async (\n data: Uint8Array<ArrayBuffer> | string,\n encryptionKey: string,\n) => {\n const { encryptedBuffer, iv } = await encryptData(\n encryptionKey,\n deflate(data) as Uint8Array<ArrayBuffer>,\n );\n\n return { iv, buffer: new Uint8Array(encryptedBuffer) };\n};\n\n/**\n * The returned buffer has following format:\n * `[]` refers to a buffers wrapper (see `concatBuffers`)\n *\n * [\n * encodingMetadataBuffer,\n * iv,\n * [\n * contentsMetadataBuffer\n * contentsBuffer\n * ]\n * ]\n */\nexport const compressData = async <T extends Record<string, any> = never>(\n dataBuffer: Uint8Array,\n options: {\n encryptionKey: string;\n } & ([T] extends [never]\n ? {\n metadata?: T;\n }\n : {\n metadata: T;\n }),\n): Promise<Uint8Array<ArrayBuffer>> => {\n const fileInfo: FileEncodingInfo = {\n version: 2,\n compression: \"pako@1\",\n encryption: \"AES-GCM\",\n };\n\n const encodingMetadataBuffer = new TextEncoder().encode(\n JSON.stringify(fileInfo),\n );\n\n const contentsMetadataBuffer = new TextEncoder().encode(\n JSON.stringify(options.metadata || null),\n );\n\n const { iv, buffer } = await _encryptAndCompress(\n concatBuffers(contentsMetadataBuffer, dataBuffer),\n options.encryptionKey,\n );\n\n return concatBuffers(encodingMetadataBuffer, iv, buffer);\n};\n\n/** @private */\nconst _decryptAndDecompress = async (\n iv: Uint8Array<ArrayBuffer>,\n decryptedBuffer: Uint8Array<ArrayBuffer>,\n decryptionKey: string,\n isCompressed: boolean,\n) => {\n decryptedBuffer = new Uint8Array(\n await decryptData(iv, decryptedBuffer, decryptionKey),\n );\n\n if (isCompressed) {\n return inflate(decryptedBuffer);\n }\n\n return decryptedBuffer;\n};\n\nexport const decompressData = async <T extends Record<string, any>>(\n bufferView: Uint8Array,\n options: { decryptionKey: string },\n) => {\n // first chunk is encoding metadata (ignored for now)\n const [encodingMetadataBuffer, iv, buffer] = splitBuffers(bufferView);\n\n const encodingMetadata: FileEncodingInfo = JSON.parse(\n new TextDecoder().decode(encodingMetadataBuffer),\n );\n\n try {\n const [contentsMetadataBuffer, contentsBuffer] = splitBuffers(\n await _decryptAndDecompress(\n iv,\n buffer,\n options.decryptionKey,\n !!encodingMetadata.compression,\n ),\n );\n\n const metadata = JSON.parse(\n new TextDecoder().decode(contentsMetadataBuffer),\n ) as T;\n\n return {\n /** metadata source is always JSON so we can decode it here */\n metadata,\n /** data can be anything so the caller must decode it */\n data: contentsBuffer,\n };\n } catch (error: any) {\n console.error(\n `Error during decompressing and decrypting the file.`,\n encodingMetadata,\n );\n throw error;\n }\n};\n\n// -----------------------------------------------------------------------------\n", "import {\n fileOpen as _fileOpen,\n fileSave as _fileSave,\n supported as nativeFileSystemSupported,\n} from \"browser-fs-access\";\n\nimport { MIME_TYPES } from \"@excalidraw/common\";\n\nimport { normalizeFile } from \"./blob\";\n\ntype FILE_EXTENSION = Exclude<keyof typeof MIME_TYPES, \"binary\">;\n\nexport const fileOpen = async <M extends boolean | undefined = false>(opts: {\n extensions?: FILE_EXTENSION[];\n description: string;\n multiple?: M;\n}): Promise<M extends false | undefined ? File : File[]> => {\n // an unsafe TS hack, alas not much we can do AFAIK\n type RetType = M extends false | undefined ? File : File[];\n\n const mimeTypes = opts.extensions?.reduce((mimeTypes, type) => {\n mimeTypes.push(MIME_TYPES[type]);\n\n return mimeTypes;\n }, [] as string[]);\n\n const extensions = opts.extensions?.reduce((acc, ext) => {\n if (ext === \"jpg\") {\n return acc.concat(\".jpg\", \".jpeg\");\n }\n return acc.concat(`.${ext}`);\n }, [] as string[]);\n\n const files = await _fileOpen({\n description: opts.description,\n extensions,\n mimeTypes,\n multiple: opts.multiple ?? false,\n });\n\n if (Array.isArray(files)) {\n return (await Promise.all(\n files.map((file) => normalizeFile(file)),\n )) as RetType;\n }\n return (await normalizeFile(files)) as RetType;\n};\n\nexport const fileSave = (\n blob: Blob | Promise<Blob>,\n opts: {\n /** supply without the extension */\n name: string;\n /** file extension */\n extension: FILE_EXTENSION;\n mimeTypes?: string[];\n description: string;\n /** existing FileSystemFileHandle */\n fileHandle?: FileSystemFileHandle | null;\n },\n) => {\n return _fileSave(\n blob,\n {\n fileName: `${opts.name}.${opts.extension}`,\n description: opts.description,\n extensions: [`.${opts.extension}`],\n mimeTypes: opts.mimeTypes,\n },\n opts.fileHandle,\n false,\n );\n};\n\nexport { nativeFileSystemSupported };\n", "import {\n EXPORT_DATA_TYPES,\n getExportSource,\n MIME_TYPES,\n VERSIONS,\n} from \"@excalidraw/common\";\n\nimport type { ExcalidrawElement, NonDeleted } from \"@excalidraw/element/types\";\n\nimport type { MaybePromise } from \"@excalidraw/common/utility-types\";\n\nimport { cleanAppStateForExport, clearAppStateForDatabase } from \"../appState\";\n\nimport { isImageFileHandle, loadFromBlob } from \"./blob\";\nimport { fileOpen, fileSave } from \"./filesystem\";\n\nimport type { AppState, BinaryFiles, LibraryItems } from \"../types\";\nimport type {\n ExportedDataState,\n ImportedDataState,\n ExportedLibraryData,\n ImportedLibraryData,\n} from \"./types\";\n\nexport type JSONExportData = {\n elements: readonly NonDeleted<ExcalidrawElement>[];\n appState: AppState;\n files: BinaryFiles;\n};\n\n/**\n * Strips out files which are only referenced by deleted elements\n */\nconst filterOutDeletedFiles = (\n elements: readonly ExcalidrawElement[],\n files: BinaryFiles,\n) => {\n const nextFiles: BinaryFiles = {};\n for (const element of elements) {\n if (\n !element.isDeleted &&\n \"fileId\" in element &&\n element.fileId &&\n files[element.fileId]\n ) {\n nextFiles[element.fileId] = files[element.fileId];\n }\n }\n return nextFiles;\n};\n\nexport const serializeAsJSON = (\n elements: readonly ExcalidrawElement[],\n appState: Partial<AppState>,\n files: BinaryFiles,\n type: \"local\" | \"database\",\n): string => {\n const data: ExportedDataState = {\n type: EXPORT_DATA_TYPES.excalidraw,\n version: VERSIONS.excalidraw,\n source: getExportSource(),\n elements,\n appState:\n type === \"local\"\n ? cleanAppStateForExport(appState)\n : clearAppStateForDatabase(appState),\n files:\n type === \"local\"\n ? filterOutDeletedFiles(elements, files)\n : // will be stripped from JSON\n undefined,\n };\n\n return JSON.stringify(data, null, 2);\n};\n\nexport const saveAsJSON = async ({\n data,\n filename,\n fileHandle,\n}: {\n data: MaybePromise<JSONExportData>;\n filename: string;\n fileHandle: AppState[\"fileHandle\"];\n}) => {\n const blob = Promise.resolve(data).then(({ elements, appState, files }) => {\n const serialized = serializeAsJSON(elements, appState, files, \"local\");\n return new Blob([serialized], {\n type: MIME_TYPES.excalidraw,\n });\n });\n\n const savedFileHandle = await fileSave(blob, {\n name: filename,\n extension: \"excalidraw\",\n description: \"Excalidraw file\",\n fileHandle: isImageFileHandle(fileHandle) ? null : fileHandle,\n });\n return { fileHandle: savedFileHandle };\n};\n\nexport const loadFromJSON = async (\n localAppState: AppState,\n localElements: readonly ExcalidrawElement[] | null,\n) => {\n const file = await fileOpen({\n description: \"Excalidraw files\",\n // ToDo: Be over-permissive until https://bugs.webkit.org/show_bug.cgi?id=34442\n // gets resolved. Else, iOS users cannot open `.excalidraw` files.\n // extensions: [\"json\", \"excalidraw\", \"png\", \"svg\"],\n });\n return loadFromBlob(file, localAppState, localElements, file.handle);\n};\n\nexport const isValidExcalidrawData = (data?: {\n type?: any;\n elements?: any;\n appState?: any;\n}): data is ImportedDataState => {\n return (\n data?.type === EXPORT_DATA_TYPES.excalidraw &&\n (!data.elements ||\n (Array.isArray(data.elements) &&\n (!data.appState || typeof data.appState === \"object\")))\n );\n};\n\nexport const isValidLibrary = (json: any): json is ImportedLibraryData => {\n return (\n typeof json === \"object\" &&\n json &&\n json.type === EXPORT_DATA_TYPES.excalidrawLibrary &&\n (json.version === 1 || json.version === 2)\n );\n};\n\nexport const serializeLibraryAsJSON = (libraryItems: LibraryItems) => {\n const data: ExportedLibraryData = {\n type: EXPORT_DATA_TYPES.excalidrawLibrary,\n version: VERSIONS.excalidrawLibrary,\n source: getExportSource(),\n libraryItems,\n };\n return JSON.stringify(data, null, 2);\n};\n\nexport const saveLibraryAsJSON = async (libraryItems: LibraryItems) => {\n const serialized = serializeLibraryAsJSON(libraryItems);\n await fileSave(\n new Blob([serialized], {\n type: MIME_TYPES.excalidrawlib,\n }),\n {\n name: \"library\",\n extension: \"excalidrawlib\",\n description: \"Excalidraw library file\",\n },\n );\n};\n", "import { type ExcalidrawFontFaceDescriptor } from \"../Fonts\";\n\nimport CascadiaCodeRegular from \"./CascadiaCode-Regular.woff2\";\n\nexport const CascadiaFontFaces: ExcalidrawFontFaceDescriptor[] = [\n {\n uri: CascadiaCodeRegular,\n },\n];\n", "// The following file content was generated with https://chinese-font.netlify.app/online-split,\n// but has been manully rewritten from `@font-face` rules into TS while leveraging FontFace API.\n\nimport { type ExcalidrawFontFaceDescriptor } from \"../Fonts\";\n\nimport _0 from \"./ComicShanns-Regular-279a7b317d12eb88de06167bd672b4b4.woff2\";\nimport _3 from \"./ComicShanns-Regular-6e066e8de2ac57ea9283adb9c24d7f0c.woff2\";\nimport _2 from \"./ComicShanns-Regular-dc6a8806fa96795d7b3be5026f989a17.woff2\";\nimport _1 from \"./ComicShanns-Regular-fcb0fc02dcbee4c9846b3e2508668039.woff2\";\n\n/* Generated By cn-font-split@5.2.2 https://www.npmjs.com/package/cn-font-split\nCreateTime: Thu, 17 Oct 2024 09:57:51 GMT;\nOrigin File Name Table:\ncopyright: MIT License\n\nCopyright (c) 2018 Shannon Miwa\nCopyright (c) 2023 Jesus Gonzalez\nCopyright (c) 2023 Rodrigo Batista de Moraes\nCopyright (c) 2024 Fini Jastrow\nCopyright (c) 2024 Kyle Beechly\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\nfontFamily: Comic Shanns Mono-Regular\nfontSubfamily: Regular\nuniqueID: FontForge 2.0 : Comic Shanns Mono Regular : 17-10-2024\nfullName: Comic Shanns Mono Regular\nversion: 1.3.0\npostScriptName: ComicShannsMono-Regular\nlicense: MIT License\n\nCopyright (c) 2018 Shannon Miwa\nCopyright (c) 2023 Jesus Gonzalez\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\npreferredFamily: Comic Shanns Mono\n */\n\nexport const ComicShannsFontFaces: ExcalidrawFontFaceDescriptor[] = [\n {\n uri: _0,\n descriptors: {\n unicodeRange:\n \"U+20-7e,U+a1-a6,U+a8,U+ab-ac,U+af-b1,U+b4,U+b8,U+bb-bc,U+bf-cf,U+d1-d7,U+d9-de,U+e0-ef,U+f1-f7,U+f9-ff,U+131,U+152-153,U+2c6,U+2da,U+2dc,U+2013-2014,U+2018-201a,U+201c-201d,U+2020-2022,U+2026,U+2039-203a,U+2044,U+20ac,U+2191,U+2193,U+2212\",\n },\n },\n {\n uri: _1,\n descriptors: {\n unicodeRange:\n \"U+100-10f,U+112-125,U+128-130,U+134-137,U+139-13c,U+141-148,U+14c-151,U+154-161,U+164-165,U+168-17f,U+1bf,U+1f7,U+218-21b,U+237,U+1e80-1e85,U+1ef2-1ef3,U+a75b\",\n },\n },\n {\n uri: _2,\n descriptors: {\n unicodeRange:\n \"U+2c7,U+2d8-2d9,U+2db,U+2dd,U+315,U+2190,U+2192,U+2200,U+2203-2204,U+2264-2265,U+f6c3\",\n },\n },\n {\n uri: _3,\n descriptors: { unicodeRange: \"U+3bb\" },\n },\n];\n", "import { LOCAL_FONT_PROTOCOL } from \"@excalidraw/common\";\n\nimport { type ExcalidrawFontFaceDescriptor } from \"../Fonts\";\n\nexport const EmojiFontFaces: ExcalidrawFontFaceDescriptor[] = [\n {\n uri: LOCAL_FONT_PROTOCOL,\n },\n];\n", "import { debounce } from \"@excalidraw/common\";\n\nimport { WorkerInTheMainChunkError, WorkerUrlNotDefinedError } from \"./errors\";\n\nclass IdleWorker {\n public instance: Worker;\n\n constructor(workerUrl: URL) {\n this.instance = new Worker(workerUrl, { type: \"module\" });\n }\n\n /**\n * Use to prolong the worker's life by `workerTTL` or terminate it with a flush immediately.\n */\n public debounceTerminate!: ReturnType<typeof debounce>;\n}\n\n/**\n * Pool of idle short-lived workers.\n *\n * IMPORTANT: for simplicity it does not limit the number of newly created workers, leaving it up to the caller to manage the pool size.\n */\nexport class WorkerPool<T, R> {\n private idleWorkers: Set<IdleWorker> = new Set();\n private readonly workerUrl: URL;\n private readonly workerTTL: number;\n\n private constructor(\n workerUrl: URL,\n options: {\n ttl?: number;\n },\n ) {\n this.workerUrl = workerUrl;\n // by default, active & idle workers will be terminated after 1s of inactivity\n this.workerTTL = options.ttl || 1000;\n }\n\n /**\n * Create a new worker pool.\n *\n * @param workerUrl - The URL of the worker file.\n * @param options - The options for the worker pool.\n * @throws If the worker is bundled into the main chunk.\n * @returns A new worker pool instance.\n */\n public static create<T, R>(\n workerUrl: URL | undefined,\n options: {\n ttl?: number;\n } = {},\n ): WorkerPool<T, R> {\n if (!workerUrl) {\n throw new WorkerUrlNotDefinedError();\n }\n\n if (!import.meta.url || workerUrl.toString() === import.meta.url) {\n // in case the worker code is bundled into the main chunk\n throw new WorkerInTheMainChunkError();\n }\n\n return new WorkerPool(workerUrl, options);\n }\n\n /**\n * Take idle worker from the pool or create a new one and post a message to it.\n */\n public async postMessage(\n data: T,\n options: StructuredSerializeOptions,\n ): Promise<R> {\n let worker: IdleWorker;\n\n const idleWorker = Array.from(this.idleWorkers).shift();\n if (idleWorker) {\n this.idleWorkers.delete(idleWorker);\n worker = idleWorker;\n } else {\n worker = await this.createWorker();\n }\n\n return new Promise((resolve, reject) => {\n worker.instance.onmessage = this.onMessageHandler(worker, resolve);\n worker.instance.onerror = this.onErrorHandler(worker, reject);\n\n worker.instance.postMessage(data, options);\n worker.debounceTerminate(() =>\n reject(\n new Error(`Active worker did not respond for ${this.workerTTL}ms!`),\n ),\n );\n });\n }\n\n /**\n * Terminate the idle workers in the pool.\n */\n public async clear() {\n for (const worker of this.idleWorkers) {\n worker.debounceTerminate.cancel();\n worker.instance.terminate();\n }\n\n this.idleWorkers.clear();\n }\n\n /**\n * Used to get a worker from the pool or create a new one if there is no idle available.\n */\n private async createWorker(): Promise<IdleWorker> {\n const worker = new IdleWorker(this.workerUrl);\n\n worker.debounceTerminate = debounce((reject?: () => void) => {\n worker.instance.terminate();\n\n if (this.idleWorkers.has(worker)) {\n this.idleWorkers.delete(worker);\n\n // eslint-disable-next-line no-console\n console.debug(\n \"Job finished! Idle worker has been released from the pool.\",\n );\n } else if (reject) {\n reject();\n } else {\n console.error(\"Worker has been terminated!\");\n }\n }, this.workerTTL);\n\n return worker;\n }\n\n private onMessageHandler(worker: IdleWorker, resolve: (value: R) => void) {\n return (e: { data: R }) => {\n worker.debounceTerminate();\n this.idleWorkers.add(worker);\n resolve(e.data);\n };\n }\n\n private onErrorHandler(\n worker: IdleWorker,\n reject: (reason: ErrorEvent) => void,\n ) {\n return (e: ErrorEvent) => {\n // terminate the worker immediately before rejection\n worker.debounceTerminate(() => reject(e));\n worker.debounceTerminate.flush();\n\n // clear the worker pool in case there are some idle workers left\n this.clear();\n };\n }\n}\n", "import { isServerEnv, promiseTry } from \"@excalidraw/common\";\n\nimport { WorkerInTheMainChunkError, WorkerUrlNotDefinedError } from \"../errors\";\nimport { WorkerPool } from \"../workers\";\n\nimport type { Commands } from \"./subset-shared.chunk\";\n\nlet shouldUseWorkers = typeof Worker !== \"undefined\";\n\n/**\n * Tries to subset glyphs in a font based on the used codepoints, returning the font as dataurl.\n * Under the hood utilizes worker threads (Web Workers, if available), otherwise fallbacks to the main thread.\n *\n * Check the following diagram for details: link.excalidraw.com/readonly/MbbnWPSWXgadXdtmzgeO\n *\n * @param arrayBuffer font data buffer in the woff2 format\n * @param codePoints codepoints used to subset the glyphs\n *\n * @returns font with subsetted glyphs (all glyphs in case of errors) converted into a dataurl\n */\nexport const subsetWoff2GlyphsByCodepoints = async (\n arrayBuffer: ArrayBuffer,\n codePoints: Array<number>,\n): Promise<string> => {\n const { Commands, subsetToBase64, toBase64 } =\n await lazyLoadSharedSubsetChunk();\n\n if (!shouldUseWorkers) {\n return subsetToBase64(arrayBuffer, codePoints);\n }\n\n return promiseTry(async () => {\n try {\n const workerPool = await getOrCreateWorkerPool();\n // copy the buffer to avoid working on top of the detached array buffer in the fallback\n // i.e. in case the worker throws, the array buffer does not get automatically detached, even if the worker is terminated\n const arrayBufferCopy = arrayBuffer.slice(0);\n const result = await workerPool.postMessage(\n {\n command: Commands.Subset,\n arrayBuffer: arrayBufferCopy,\n codePoints,\n } as const,\n { transfer: [arrayBufferCopy] },\n );\n\n // encode on the main thread to avoid copying large binary strings (as dataurl) between threads\n return toBase64(result);\n } catch (e) {\n // don't use workers if they are failing\n shouldUseWorkers = false;\n\n if (\n // don't log the expected errors server-side\n !(\n isServerEnv() &&\n (e instanceof WorkerUrlNotDefinedError ||\n e instanceof WorkerInTheMainChunkError)\n )\n ) {\n // eslint-disable-next-line no-console\n console.error(\n \"Failed to use workers for subsetting, falling back to the main thread.\",\n e,\n );\n }\n\n // fallback to the main thread\n return subsetToBase64(arrayBuffer, codePoints);\n }\n });\n};\n\n// lazy-loaded and cached chunks\nlet subsetWorker: Promise<typeof import(\"./subset-worker.chunk\")> | null = null;\nlet subsetShared: Promise<typeof import(\"./subset-shared.chunk\")> | null = null;\n\nconst lazyLoadWorkerSubsetChunk = async () => {\n if (!subsetWorker) {\n subsetWorker = import(\"./subset-worker.chunk\");\n }\n\n return subsetWorker;\n};\n\nconst lazyLoadSharedSubsetChunk = async () => {\n if (!subsetShared) {\n // load dynamically to force create a shared chunk reused between main thread and the worker thread\n subsetShared = import(\"./subset-shared.chunk\");\n }\n\n return subsetShared;\n};\n\n// could be extended with multiple commands in the future\ntype SubsetWorkerData = {\n command: typeof Commands.Subset;\n arrayBuffer: ArrayBuffer;\n codePoints: Array<number>;\n};\n\ntype SubsetWorkerResult<T extends SubsetWorkerData[\"command\"]> =\n T extends typeof Commands.Subset ? ArrayBuffer : never;\n\nlet workerPool: Promise<\n WorkerPool<SubsetWorkerData, SubsetWorkerResult<SubsetWorkerData[\"command\"]>>\n> | null = null;\n\n/**\n * Lazy initialize or get the worker pool singleton.\n *\n * @throws implicitly if anything goes wrong - worker pool creation, loading wasm, initializing worker, etc.\n */\nconst getOrCreateWorkerPool = () => {\n if (!workerPool) {\n // immediate concurrent-friendly return, to ensure we have only one pool instance\n workerPool = promiseTry(async () => {\n const { WorkerUrl } = await lazyLoadWorkerSubsetChunk();\n\n const pool = WorkerPool.create<\n SubsetWorkerData,\n SubsetWorkerResult<SubsetWorkerData[\"command\"]>\n >(WorkerUrl);\n\n return pool;\n });\n }\n\n return workerPool;\n};\n", "import { promiseTry, LOCAL_FONT_PROTOCOL } from \"@excalidraw/common\";\n\nimport { subsetWoff2GlyphsByCodepoints } from \"../subset/subset-main\";\n\ntype DataURL = string;\n\nexport class ExcalidrawFontFace {\n public readonly urls: URL[] | DataURL[];\n public readonly fontFace: FontFace;\n\n private static readonly ASSETS_FALLBACK_URL = `https://esm.sh/${\n import.meta.env.PKG_NAME\n ? `${import.meta.env.PKG_NAME}@${import.meta.env.PKG_VERSION}` // is provided during package build\n : \"@excalidraw/excalidraw\" // fallback to the latest package version (i.e. for app)\n }/dist/prod/`;\n\n constructor(family: string, uri: string, descriptors?: FontFaceDescriptors) {\n this.urls = ExcalidrawFontFace.createUrls(uri);\n\n const sources = this.urls\n .map((url) => `url(${url}) ${ExcalidrawFontFace.getFormat(url)}`)\n .join(\", \");\n\n this.fontFace = new FontFace(family, sources, {\n display: \"swap\",\n style: \"normal\",\n weight: \"400\",\n ...descriptors,\n });\n }\n\n /**\n * Generates CSS `@font-face` definition with the (subsetted) font source as a data url for the characters within the unicode range.\n *\n * Retrieves `undefined` otherwise.\n */\n public toCSS(characters: string): Promise<string> | undefined {\n // quick exit in case the characters are not within this font face's unicode range\n if (!this.getUnicodeRangeRegex().test(characters)) {\n return;\n }\n\n const codepoints = Array.from(characters).map(\n (char) => char.codePointAt(0)!,\n );\n\n return this.getContent(codepoints).then(\n (content) =>\n `@font-face { font-family: ${this.fontFace.family}; src: url(${content}); }`,\n );\n }\n\n /**\n * Tries to fetch woff2 content, based on the registered urls (from first to last, treated as fallbacks).\n *\n * @returns base64 with subsetted glyphs based on the passed codepoint, last defined url otherwise\n */\n public async getContent(codePoints: Array<number>): Promise<string> {\n let i = 0;\n const errorMessages = [];\n\n while (i < this.urls.length) {\n const url = this.urls[i];\n\n try {\n const arrayBuffer = await this.fetchFont(url);\n const base64 = await subsetWoff2GlyphsByCodepoints(\n arrayBuffer,\n codePoints,\n );\n\n return base64;\n } catch (e) {\n errorMessages.push(`\"${url.toString()}\" returned error \"${e}\"`);\n }\n\n i++;\n }\n\n console.error(\n `Failed to fetch font family \"${this.fontFace.family}\"`,\n JSON.stringify(errorMessages, undefined, 2),\n );\n\n // in case of issues, at least return the last url as a content\n // defaults to unpkg for bundled fonts (so that we don't have to host them forever) and http url for others\n return this.urls.length ? this.urls[this.urls.length - 1].toString() : \"\";\n }\n\n public fetchFont(url: URL | DataURL): Promise<ArrayBuffer> {\n return promiseTry(async () => {\n const response = await fetch(url, {\n // always prefer cache (even stale), otherwise it always triggers an unnecessary validation request\n // which we don't need as we are controlling freshness of the fonts with the stable hash suffix in the url\n // https://developer.mozilla.org/en-US/docs/Web/API/Request/cache\n cache: \"force-cache\",\n headers: {\n Accept: \"font/woff2\",\n },\n });\n\n if (!response.ok) {\n const urlString = url instanceof URL ? url.toString() : \"dataurl\";\n throw new Error(\n `Failed to fetch \"${urlString}\": ${response.statusText}`,\n );\n }\n\n const arrayBuffer = await response.arrayBuffer();\n return arrayBuffer;\n });\n }\n\n private getUnicodeRangeRegex() {\n // using \\u{h} or \\u{hhhhh} to match any number of hex digits,\n // otherwise we would get an \"Invalid Unicode escape\" error\n // e.g. U+0-1007F -> \\u{0}-\\u{1007F}\n const unicodeRangeRegex = this.fontFace.unicodeRange\n .split(/,\\s*/)\n .map((range) => {\n const [start, end] = range.replace(\"U+\", \"\").split(\"-\");\n if (end) {\n return `\\\\u{${start}}-\\\\u{${end}}`;\n }\n\n return `\\\\u{${start}}`;\n })\n .join(\"\");\n\n return new RegExp(`[${unicodeRangeRegex}]`, \"u\");\n }\n\n private static createUrls(uri: string): URL[] | DataURL[] {\n if (uri.startsWith(\"data\")) {\n // don't create the URL instance, as parsing the huge dataurl string is expensive\n return [uri];\n }\n\n if (uri.startsWith(LOCAL_FONT_PROTOCOL)) {\n // no url for local fonts\n return [];\n }\n\n if (uri.startsWith(\"http\")) {\n // one url for http imports or data url\n return [new URL(uri)];\n }\n\n // absolute assets paths, which are found in tests and excalidraw-app build, won't work with base url, so we are stripping initial slash away\n const assetUrl: string = uri.replace(/^\\/+/, \"\");\n const urls: URL[] = [];\n\n if (typeof window.EXCALIDRAW_ASSET_PATH === \"string\") {\n const normalizedBaseUrl = this.normalizeBaseUrl(\n window.EXCALIDRAW_ASSET_PATH,\n );\n\n urls.push(new URL(assetUrl, normalizedBaseUrl));\n } else if (Array.isArray(window.EXCALIDRAW_ASSET_PATH)) {\n window.EXCALIDRAW_ASSET_PATH.forEach((path) => {\n const normalizedBaseUrl = this.normalizeBaseUrl(path);\n urls.push(new URL(assetUrl, normalizedBaseUrl));\n });\n }\n\n // fallback url for bundled fonts\n urls.push(new URL(assetUrl, ExcalidrawFontFace.ASSETS_FALLBACK_URL));\n\n return urls;\n }\n\n private static getFormat(url: URL | DataURL) {\n if (!(url instanceof URL)) {\n // format is irrelevant for data url\n return \"\";\n }\n\n try {\n const parts = new URL(url).pathname.split(\".\");\n\n if (parts.length === 1) {\n return \"\";\n }\n\n return `format('${parts.pop()}')`;\n } catch (error) {\n return \"\";\n }\n }\n\n private static normalizeBaseUrl(baseUrl: string) {\n let result = baseUrl;\n\n // in case user passed a root-relative url (~absolute path),\n // like \"/\" or \"/some/path\", or relative (starts with \"./\"),\n // prepend it with `location.origin`\n if (/^\\.?\\//.test(result)) {\n result = new URL(\n result.replace(/^\\.?\\/+/, \"\"),\n window?.location?.origin,\n ).toString();\n }\n\n // ensure there is a trailing slash, otherwise url won't be correctly concatenated\n result = `${result.replace(/\\/+$/, \"\")}/`;\n\n return result;\n }\n}\n", "import { type ExcalidrawFontFaceDescriptor } from \"../Fonts\";\n\nimport _5 from \"./Excalifont-Regular-349fac6ca4700ffec595a7150a0d1e1d.woff2\";\nimport _4 from \"./Excalifont-Regular-3f2c5db56cc93c5a6873b1361d730c16.woff2\";\nimport _3 from \"./Excalifont-Regular-41b173a47b57366892116a575a43e2b6.woff2\";\nimport _6 from \"./Excalifont-Regular-623ccf21b21ef6b3a0d87738f77eb071.woff2\";\nimport _0 from \"./Excalifont-Regular-a88b72a24fb54c9f94e3b5fdaa7481c9.woff2\";\nimport _2 from \"./Excalifont-Regular-b9dcf9d2e50a1eaf42fc664b50a3fd0d.woff2\";\nimport _1 from \"./Excalifont-Regular-be310b9bcd4f1a43f571c46df7809174.woff2\";\n\n/* Generated By cn-font-split@5.2.2 https://www.npmjs.com/package/cn-font-split\nCreateTime: Mon, 14 Oct 2024 18:59:19 GMT;\nOrigin File Name Table:\ncopyright: Copyright (c) 2024 by Excalidraw. All rights reserved.\nfontFamily: Excalifont\nfontSubfamily: Regular\nuniqueID: 1.000;DSGN;Excalifont\nfullName: Excalifont Regular\nversion: Version 1.000;Glyphs 3.2 (3227)\npostScriptName: Excalifont-Regular\ntrademark: Excalifont is a trademark of Excalidraw.\nmanufacturer: Your Own Font Foundry (Virgil); J\u00E1n Fil\u00EDpek / DizajnDesign (Excalifont, modifications)\ndesigner: Your Own Font Foundry (Virgil); J\u00E1n Fil\u00EDpek / DizajnDesign (Excalifont, modifications)\nmanufacturerURL: https://dizajndesign.sk\ndesignerURL: https://dizajndesign.sk\nlicense: This Font Software is licensed under the SIL Open Font License, Version 1.1.\nThis license is copied below, and is also available with a FAQ at:\nhttp://scripts.sil.org/OFL\n\n\n-----------------------------------------------------------\nSIL OPEN FONT LICENSE Version 1.1 - 26 February 2007\n-----------------------------------------------------------\n\nPREAMBLE\nThe goals of the Open Font License (OFL) are to stimulate worldwide\ndevelopment of collaborative font projects, to support the font creation\nefforts of academic and linguistic communities, and to provide a free and\nopen framework in which fonts may be shared and improved in partnership\nwith others.\n\nThe OFL allows the licensed fonts to be used, studied, modified and\nredistributed freely as long as they are not sold by themselves. The\nfonts, including any derivative works, can be bundled, embedded, \nredistributed and/or sold with any software provided that any reserved\nnames are not used by derivative works. The fonts and derivatives,\nhowever, cannot be released under any other type of license. The\nrequirement for fonts to remain under this license does not apply\nto any document created using the fonts or their derivatives.\n\nDEFINITIONS\n\"Font Software\" refers to the set of files released by the Copyright\nHolder(s) under this license and clearly marked as such. This may\ninclude source files, build scripts and documentation.\n\n\"Reserved Font Name\" refers to any names specified as such after the\ncopyright statement(s).\n\n\"Original Version\" refers to the collection of Font Software components as\ndistributed by the Copyright Holder(s).\n\n\"Modified Version\" refers to any derivative made by adding to, deleting,\nor substituting -- in part or in whole -- any of the components of the\nOriginal Version, by changing formats or by porting the Font Software to a\nnew environment.\n\n\"Author\" refers to any designer, engineer, programmer, technical\nwriter or other person who contributed to the Font Software.\n\nPERMISSION & CONDITIONS\nPermission is hereby granted, free of charge, to any person obtaining\na copy of the Font Software, to use, study, copy, merge, embed, modify,\nredistribute, and sell modified and unmodified copies of the Font\nSoftware, subject to the following conditions:\n\n1) Neither the Font Software nor any of its individual components,\nin Original or Modified Versions, may be sold by itself.\n\n2) Original or Modified Versions of the Font Software may be bundled,\nredistributed and/or sold with any software, provided that each copy\ncontains the above copyright notice and this license. These can be\nincluded either as stand-alone text files, human-readable headers or\nin the appropriate machine-readable metadata fields within text or\nbinary files as long as those fields can be easily viewed by the user.\n\n3) No Modified Version of the Font Software may use the Reserved Font\nName(s) unless explicit written permission is granted by the corresponding\nCopyright Holder. This restriction only applies to the primary font name as\npresented to the users.\n\n4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font\nSoftware shall not be used to promote, endorse or advertise any\nModified Version, except to acknowledge the contribution(s) of the\nCopyright Holder(s) and the Author(s) or with their explicit written\npermission.\n\n5) The Font Software, modified or unmodified, in part or in whole,\nmust be distributed entirely under this license, and must not be\ndistributed under any other license. The requirement for fonts to\nremain under this license does not apply to any document created\nusing the Font Software.\n\nTERMINATION\nThis license becomes null and void if any of the above conditions are\nnot met.\n\nDISCLAIMER\nTHE FONT SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT\nOF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE\nCOPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\nINCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL\nDAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM\nOTHER DEALINGS IN THE FONT SOFTWARE.\nlicenseURL: http://scripts.sil.org/OFL\npreferredFamily: Excalifont\npreferredSubfamily: Regular\n */\n\nexport const ExcalifontFontFaces: ExcalidrawFontFaceDescriptor[] = [\n {\n uri: _0,\n descriptors: {\n unicodeRange:\n \"U+20-7e,U+a0-a3,U+a5-a6,U+a8-ab,U+ad-b1,U+b4,U+b6-b8,U+ba-ff,U+131,U+152-153,U+2bc,U+2c6,U+2da,U+2dc,U+304,U+308,U+2013-2014,U+2018-201a,U+201c-201e,U+2020,U+2022,U+2024-2026,U+2030,U+2039-203a,U+20ac,U+2122,U+2212\",\n },\n },\n {\n uri: _1,\n descriptors: {\n unicodeRange:\n \"U+100-130,U+132-137,U+139-149,U+14c-151,U+154-17e,U+192,U+1fc-1ff,U+218-21b,U+237,U+1e80-1e85,U+1ef2-1ef3,U+2113\",\n },\n },\n { uri: _2, descriptors: { unicodeRange: \"U+400-45f,U+490-491,U+2116\" } },\n {\n uri: _3,\n descriptors: {\n unicodeRange:\n \"U+37e,U+384-38a,U+38c,U+38e-393,U+395-3a1,U+3a3-3a8,U+3aa-3cf,U+3d7\",\n },\n },\n {\n uri: _4,\n descriptors: {\n unicodeRange:\n \"U+2c7,U+2d8-2d9,U+2db,U+2dd,U+302,U+306-307,U+30a-30c,U+326-328,U+212e,U+2211,U+fb01-fb02\",\n },\n },\n {\n uri: _5,\n descriptors: {\n unicodeRange:\n \"U+462-463,U+472-475,U+4d8-4d9,U+4e2-4e3,U+4e6-4e9,U+4ee-4ef\",\n },\n },\n { uri: _6, descriptors: { unicodeRange: \"U+300-301,U+303\" } },\n];\n", "import { LOCAL_FONT_PROTOCOL } from \"@excalidraw/common\";\n\nimport { type ExcalidrawFontFaceDescriptor } from \"../Fonts\";\n\nexport const HelveticaFontFaces: ExcalidrawFontFaceDescriptor[] = [\n {\n uri: LOCAL_FONT_PROTOCOL,\n },\n];\n", "import { type ExcalidrawFontFaceDescriptor } from \"../Fonts\";\n\nimport LiberationSansRegular from \"./LiberationSans-Regular.woff2\";\n\nexport const LiberationFontFaces: ExcalidrawFontFaceDescriptor[] = [\n {\n uri: LiberationSansRegular,\n },\n];\n", "import { GOOGLE_FONTS_RANGES } from \"@excalidraw/common\";\n\nimport { type ExcalidrawFontFaceDescriptor } from \"../Fonts\";\n\nimport LilitaLatinExt from \"./Lilita-Regular-i7dPIFZ9Zz-WBtRtedDbYE98RXi4EwSsbg.woff2\";\nimport LilitaLatin from \"./Lilita-Regular-i7dPIFZ9Zz-WBtRtedDbYEF8RXi4EwQ.woff2\";\n\nexport const LilitaFontFaces: ExcalidrawFontFaceDescriptor[] = [\n {\n uri: LilitaLatinExt,\n descriptors: { unicodeRange: GOOGLE_FONTS_RANGES.LATIN_EXT },\n },\n {\n uri: LilitaLatin,\n descriptors: { unicodeRange: GOOGLE_FONTS_RANGES.LATIN },\n },\n];\n", "import { GOOGLE_FONTS_RANGES } from \"@excalidraw/common\";\n\nimport { type ExcalidrawFontFaceDescriptor } from \"../Fonts\";\n\nimport Cyrilic from \"./Nunito-Regular-XRXI3I6Li01BKofiOc5wtlZ2di8HDIkhdTA3j6zbXWjgevT5.woff2\";\nimport Latin from \"./Nunito-Regular-XRXI3I6Li01BKofiOc5wtlZ2di8HDIkhdTQ3j6zbXWjgeg.woff2\";\nimport CyrilicExt from \"./Nunito-Regular-XRXI3I6Li01BKofiOc5wtlZ2di8HDIkhdTk3j6zbXWjgevT5.woff2\";\nimport LatinExt from \"./Nunito-Regular-XRXI3I6Li01BKofiOc5wtlZ2di8HDIkhdTo3j6zbXWjgevT5.woff2\";\nimport Vietnamese from \"./Nunito-Regular-XRXI3I6Li01BKofiOc5wtlZ2di8HDIkhdTs3j6zbXWjgevT5.woff2\";\n\nexport const NunitoFontFaces: ExcalidrawFontFaceDescriptor[] = [\n {\n uri: CyrilicExt,\n descriptors: {\n unicodeRange: GOOGLE_FONTS_RANGES.CYRILIC_EXT,\n weight: \"500\",\n },\n },\n {\n uri: Cyrilic,\n descriptors: { unicodeRange: GOOGLE_FONTS_RANGES.CYRILIC, weight: \"500\" },\n },\n {\n uri: Vietnamese,\n descriptors: {\n unicodeRange: GOOGLE_FONTS_RANGES.VIETNAMESE,\n weight: \"500\",\n },\n },\n {\n uri: LatinExt,\n descriptors: { unicodeRange: GOOGLE_FONTS_RANGES.LATIN_EXT, weight: \"500\" },\n },\n {\n uri: Latin,\n descriptors: { unicodeRange: GOOGLE_FONTS_RANGES.LATIN, weight: \"500\" },\n },\n];\n", "import { type ExcalidrawFontFaceDescriptor } from \"../Fonts\";\n\nimport Virgil from \"./Virgil-Regular.woff2\";\n\nexport const VirgilFontFaces: ExcalidrawFontFaceDescriptor[] = [\n {\n uri: Virgil,\n },\n];\n", "// The following file content was generated with https://chinese-font.netlify.app/online-split,\n// but has been manully rewritten from `@font-face` rules into TS while leveraging FontFace API.\n\nimport { type ExcalidrawFontFaceDescriptor } from \"../Fonts\";\n\nimport _80 from \"./Xiaolai-Regular-019d66dcad46dc156b162d267f981c20.woff2\";\nimport _16 from \"./Xiaolai-Regular-04b718e5623574919c8b0dea5f301444.woff2\";\nimport _13 from \"./Xiaolai-Regular-069e77aac84590e2e991d0a0176d34f2.woff2\";\nimport _166 from \"./Xiaolai-Regular-06c77b8c66e51ed6c63ccb502dd8b8af.woff2\";\nimport _71 from \"./Xiaolai-Regular-08e0dc436ad0ad61ba5558db0674d762.woff2\";\nimport _161 from \"./Xiaolai-Regular-093b9ef39a46ceae95a1df18a0a3a326.woff2\";\nimport _183 from \"./Xiaolai-Regular-095c169f3314805276f603a362766abd.woff2\";\nimport _0 from \"./Xiaolai-Regular-09850c4077f3fffe707905872e0e2460.woff2\";\nimport _14 from \"./Xiaolai-Regular-41521fade99856108931b4768b1b2648.woff2\";\nimport _10 from \"./Xiaolai-Regular-544fc28abe2c5c30e62383fd4dac255f.woff2\";\nimport _2 from \"./Xiaolai-Regular-60a3089806700d379f11827ee9843b6b.woff2\";\nimport _1 from \"./Xiaolai-Regular-7eb9fffd1aa890d07d0f88cc82e6cfe4.woff2\";\nimport _3 from \"./Xiaolai-Regular-6fe5c5973cc06f74b2387a631ea36b88.woff2\";\nimport _6 from \"./Xiaolai-Regular-a4c34be6d42152e64b0df90bc4607f64.woff2\";\nimport _4 from \"./Xiaolai-Regular-b96d9226ce77ec94ceca043d712182e6.woff2\";\nimport _5 from \"./Xiaolai-Regular-6ae5b42180ad70b971c91e7eefb8eba2.woff2\";\nimport _7 from \"./Xiaolai-Regular-c69f61a4ab18d0488c8d1fc12e7028e8.woff2\";\nimport _30 from \"./Xiaolai-Regular-cb17fc3db95f6d139afc9d31a8e93293.woff2\";\nimport _8 from \"./Xiaolai-Regular-e3fcf5180fd466c8915c4e8069491054.woff2\";\nimport _9 from \"./Xiaolai-Regular-c1f94158256bb1f3bf665b053d895af9.woff2\";\nimport _11 from \"./Xiaolai-Regular-7197d6fda6cba7c3874c53d6381ca239.woff2\";\nimport _12 from \"./Xiaolai-Regular-70c2eb8d64e71a42a834eb857ea9df51.woff2\";\nimport _15 from \"./Xiaolai-Regular-a004ddfcb26e67bd6e678c8ed19e25ce.woff2\";\nimport _17 from \"./Xiaolai-Regular-7e4bde7e9c7f84cd34d8a845e384c746.woff2\";\nimport _18 from \"./Xiaolai-Regular-23686f7f29da6e8008c36dd3a80c83d6.woff2\";\nimport _19 from \"./Xiaolai-Regular-69c09cc5fa3e55c74fc4821f76909cc3.woff2\";\nimport _20 from \"./Xiaolai-Regular-25b7f38e18f035f96cb5e547bd2bd08c.woff2\";\nimport _21 from \"./Xiaolai-Regular-ba3de316d63c7e339987b16f41a0b879.woff2\";\nimport _22 from \"./Xiaolai-Regular-12b52b58eb3df36804b9a654ec9ee194.woff2\";\nimport _23 from \"./Xiaolai-Regular-b1220a3c61f85cc0408deedb4c5f57a2.woff2\";\nimport _24 from \"./Xiaolai-Regular-4535823663ad81405188a528d8f2b1a2.woff2\";\nimport _25 from \"./Xiaolai-Regular-3eaa538115d76932653c21d8dc28f207.woff2\";\nimport _26 from \"./Xiaolai-Regular-7e929f262f30c8ee78bf398150b1a7cd.woff2\";\nimport _27 from \"./Xiaolai-Regular-73e309718fd16cea44b4d54a33581811.woff2\";\nimport _28 from \"./Xiaolai-Regular-9eb5a99df4e76ac3363453ac9ca288b1.woff2\";\nimport _29 from \"./Xiaolai-Regular-3e63ed8162808a9e425ed80a8bc79114.woff2\";\nimport _31 from \"./Xiaolai-Regular-c8b71798409ccc126ee264a00aadcf21.woff2\";\nimport _32 from \"./Xiaolai-Regular-11c345711937f0ba4b8f7b6b919c8440.woff2\";\nimport _33 from \"./Xiaolai-Regular-e480d9c614742d05f0e78f274f1e69e6.woff2\";\nimport _34 from \"./Xiaolai-Regular-95429962233afd82db1c27df1500a28c.woff2\";\nimport _35 from \"./Xiaolai-Regular-2cf96d082d35ea3d8106851223ad0d16.woff2\";\nimport _36 from \"./Xiaolai-Regular-2d43040e86ff03ba677f6f9c04cd0805.woff2\";\nimport _37 from \"./Xiaolai-Regular-2a26d20a23b00898ce82f09d2ee47c3f.woff2\";\nimport _38 from \"./Xiaolai-Regular-a365e82ed54697a52f27adcea1315fe8.woff2\";\nimport _41 from \"./Xiaolai-Regular-e4bca6cfa53e499cae0a6be4894a90e9.woff2\";\nimport _105 from \"./Xiaolai-Regular-e51ef413167c6e14e0c0fdcc585f2fc9.woff2\";\nimport _82 from \"./Xiaolai-Regular-e5f453bb04da18eed01675eeebd88bf8.woff2\";\nimport _45 from \"./Xiaolai-Regular-e656f091b9dc4709722c9f4b84d3c797.woff2\";\nimport _47 from \"./Xiaolai-Regular-f0f13b5c60e0af5553bd359f5513be1b.woff2\";\nimport _39 from \"./Xiaolai-Regular-f5d079153c99a25b9be5b8583c4cc8a7.woff2\";\nimport _40 from \"./Xiaolai-Regular-10a7ae9a371830a80c3d844acf1c02d7.woff2\";\nimport _42 from \"./Xiaolai-Regular-60a41c7e1c68f22424e6d22df544bc82.woff2\";\nimport _43 from \"./Xiaolai-Regular-7ab2bed91166a9dca83a5ebfbe2a7f38.woff2\";\nimport _44 from \"./Xiaolai-Regular-670ba603758d94268e8606f240a42e12.woff2\";\nimport _46 from \"./Xiaolai-Regular-15dc6d811c9cd078f9086a740d5a1038.woff2\";\nimport _48 from \"./Xiaolai-Regular-8c2f33cee3993174f7e87c28e4bf42ee.woff2\";\nimport _49 from \"./Xiaolai-Regular-761d05e3cd968cf574166867998ef06a.woff2\";\nimport _50 from \"./Xiaolai-Regular-642b26e2e5f5fb780b51b593dbc8c851.woff2\";\nimport _51 from \"./Xiaolai-Regular-5572b3513ba8df57a3d5d7303ee6b11b.woff2\";\nimport _52 from \"./Xiaolai-Regular-3c9de2ae0ea4bc91a510942dfa4be8d2.woff2\";\nimport _53 from \"./Xiaolai-Regular-671a2c20b1eb9e4ef8a192833940e319.woff2\";\nimport _54 from \"./Xiaolai-Regular-4dc6d5f188d5c96d44815cd1e81aa885.woff2\";\nimport _55 from \"./Xiaolai-Regular-ce4884f96f11589608b76b726a755803.woff2\";\nimport _56 from \"./Xiaolai-Regular-8f476c4c99813d57cbe6eca4727388ad.woff2\";\nimport _57 from \"./Xiaolai-Regular-5935a5775af3d5c6307ac667bd9ae74e.woff2\";\nimport _58 from \"./Xiaolai-Regular-79f007c1c6d07557120982951ea67998.woff2\";\nimport _59 from \"./Xiaolai-Regular-bafff7a14c27403dcc6cf1432e8ea836.woff2\";\nimport _60 from \"./Xiaolai-Regular-543fa46ace099a7099dad69123399400.woff2\";\nimport _61 from \"./Xiaolai-Regular-4ddc14ed3eb0c3e46364317dfc0144a3.woff2\";\nimport _62 from \"./Xiaolai-Regular-0fa55a080fcd0f9dc2e0b0058b793df8.woff2\";\nimport _63 from \"./Xiaolai-Regular-66493ba5a8367f2928812f446f47b56a.woff2\";\nimport _64 from \"./Xiaolai-Regular-57862b464a55b18c7bf234ce22907d73.woff2\";\nimport _65 from \"./Xiaolai-Regular-8d3bcabb847b56243b16afe62adaaf21.woff2\";\nimport _66 from \"./Xiaolai-Regular-2b77e8ebfb2367ab2662396a60e7d320.woff2\";\nimport _67 from \"./Xiaolai-Regular-0b5d723fdc4e249c140f0909e87d03b4.woff2\";\nimport _68 from \"./Xiaolai-Regular-cdbce89e82cc1ab53a2decbf5819278f.woff2\";\nimport _69 from \"./Xiaolai-Regular-739bc1a567439c7cffcd1614644593d2.woff2\";\nimport _70 from \"./Xiaolai-Regular-72252d73220fa3cd856677888cee1635.woff2\";\nimport _72 from \"./Xiaolai-Regular-cf6ff4e0f491ca0cf3038187a997b9b4.woff2\";\nimport _73 from \"./Xiaolai-Regular-9cfb2a77a4e45025105ad29a1748b90d.woff2\";\nimport _74 from \"./Xiaolai-Regular-450da755d5bcb70906e1295e559b9602.woff2\";\nimport _75 from \"./Xiaolai-Regular-0986d134c05864f5025962eef9f994a0.woff2\";\nimport _76 from \"./Xiaolai-Regular-1ee544f0f1dac422545c505baa788992.woff2\";\nimport _77 from \"./Xiaolai-Regular-4806e761d750087c2d734fc64596eaff.woff2\";\nimport _78 from \"./Xiaolai-Regular-33432927cd87d40cfe393c7482bf221f.woff2\";\nimport _79 from \"./Xiaolai-Regular-be549ab72f0719d606a5c01e2c0219b6.woff2\";\nimport _81 from \"./Xiaolai-Regular-b5c1596551c256e0e9cf02028595b092.woff2\";\nimport _83 from \"./Xiaolai-Regular-cf2cc71752631e579e35b0e423bf2638.woff2\";\nimport _84 from \"./Xiaolai-Regular-6f3256af8454371776bc46670d33cc65.woff2\";\nimport _85 from \"./Xiaolai-Regular-23f228f3999c01983860012330e4be08.woff2\";\nimport _86 from \"./Xiaolai-Regular-21430ee05a1248901da8d0de08744d47.woff2\";\nimport _87 from \"./Xiaolai-Regular-5330a2119a716e4e7224ed108b085dac.woff2\";\nimport _88 from \"./Xiaolai-Regular-cd145ce4a0ea18469358df53c207bc1b.woff2\";\nimport _89 from \"./Xiaolai-Regular-36925dfe329a45086cbb7fc5c20d45ac.woff2\";\nimport _90 from \"./Xiaolai-Regular-4bfaa8ffa64c5ee560aa2daba7c9cbd3.woff2\";\nimport _91 from \"./Xiaolai-Regular-112c051027b2d766c19a519f6ee1f4f7.woff2\";\nimport _92 from \"./Xiaolai-Regular-5b0ed6971aaab9c8ad563230bd5471a7.woff2\";\nimport _93 from \"./Xiaolai-Regular-98f2ad84457de7f3740d9920b8fa8667.woff2\";\nimport _94 from \"./Xiaolai-Regular-733171b4ffcd17ea1fe1c0ba627173bf.woff2\";\nimport _95 from \"./Xiaolai-Regular-684d65f1793cac449dde5d59cb3c47fb.woff2\";\nimport _96 from \"./Xiaolai-Regular-cbaaefaaf326668277aa24dfa93c4d28.woff2\";\nimport _97 from \"./Xiaolai-Regular-58fd02350d0bc52cf1ca3bb32ce9766e.woff2\";\nimport _98 from \"./Xiaolai-Regular-7ccce86603f80a099ddb0cb21d4ae3e3.woff2\";\nimport _99 from \"./Xiaolai-Regular-3717077e38f98d89eae729b6c14e56dc.woff2\";\nimport _100 from \"./Xiaolai-Regular-dbea1af6dcd9860be40c3d18254338f5.woff2\";\nimport _101 from \"./Xiaolai-Regular-4a0fdb40036e87b40aa08dd30584cb85.woff2\";\nimport _102 from \"./Xiaolai-Regular-0f626226ba1272e832aea87bafd9720e.woff2\";\nimport _103 from \"./Xiaolai-Regular-938d90c10ff8c20386af7f242c05d6b0.woff2\";\nimport _104 from \"./Xiaolai-Regular-b6d128682ee29e471486354d486a1b90.woff2\";\nimport _106 from \"./Xiaolai-Regular-9d81066dd2b337c938df6e90380a00dc.woff2\";\nimport _107 from \"./Xiaolai-Regular-20e7bf72fa05de9adf7dbcc7bf51dde6.woff2\";\nimport _108 from \"./Xiaolai-Regular-4095eb84ef3874e2600247bee0b04026.woff2\";\nimport _109 from \"./Xiaolai-Regular-4ee10ae43505e2e0bc62656ced49c0fa.woff2\";\nimport _110 from \"./Xiaolai-Regular-7494dc504ae00ee9cd0505f990f88c5d.woff2\";\nimport _111 from \"./Xiaolai-Regular-8de5b863cb50dfefdd07cb11c774d579.woff2\";\nimport _112 from \"./Xiaolai-Regular-3e1f8f654357353bf0e04ba5c34b5f7f.woff2\";\nimport _113 from \"./Xiaolai-Regular-2e33e8dc771ef5e1d9127d60a6b73679.woff2\";\nimport _114 from \"./Xiaolai-Regular-173945821411c09f70c95f98d590e697.woff2\";\nimport _115 from \"./Xiaolai-Regular-b358f7a51ece39a3247942b1feabdb29.woff2\";\nimport _116 from \"./Xiaolai-Regular-23ad2d71b280f00b1363b95b7bea94eb.woff2\";\nimport _117 from \"./Xiaolai-Regular-5882ffa04f32584d26109137e2da4352.woff2\";\nimport _118 from \"./Xiaolai-Regular-a203b91dad570bf05a58c3c3ddb529bf.woff2\";\nimport _119 from \"./Xiaolai-Regular-bd77e3c7f9e0b072d96af37f73d1aa32.woff2\";\nimport _120 from \"./Xiaolai-Regular-5a45d991244d4c7140217e1e5f5ca4f4.woff2\";\nimport _121 from \"./Xiaolai-Regular-f56414bf9bced67990def8660e306759.woff2\";\nimport _122 from \"./Xiaolai-Regular-583d166e56ba0de4b77eabb47ef67839.woff2\";\nimport _123 from \"./Xiaolai-Regular-7f855356ab893b0d2b9c1c83b8116f0e.woff2\";\nimport _124 from \"./Xiaolai-Regular-b57aaedfd8ebdf3931f25119dc6a5eb2.woff2\";\nimport _125 from \"./Xiaolai-Regular-b6fd38ca30869792244804b04bc058da.woff2\";\nimport _126 from \"./Xiaolai-Regular-452225341522a7942f0f6aab1a5c91a3.woff2\";\nimport _127 from \"./Xiaolai-Regular-866fa7613df6b3fd272bcfd4530c0bb9.woff2\";\nimport _128 from \"./Xiaolai-Regular-52a84a22fd1369bffeaf21da2d6158dc.woff2\";\nimport _129 from \"./Xiaolai-Regular-829615148e6357d826b9242eb7fbbd1e.woff2\";\nimport _130 from \"./Xiaolai-Regular-c99eda15fc26a2941579560f76c3a5cf.woff2\";\nimport _131 from \"./Xiaolai-Regular-395c35dd584b56b0789f58a0559beaf1.woff2\";\nimport _132 from \"./Xiaolai-Regular-203b0e569e3b14aac86a003dc3fa523e.woff2\";\nimport _133 from \"./Xiaolai-Regular-51a0e808bbc8361236ac521a119758a3.woff2\";\nimport _134 from \"./Xiaolai-Regular-6e092f71c1e634059ada0e52abadce67.woff2\";\nimport _135 from \"./Xiaolai-Regular-0f7fb1e0d5015bb1371343153ecf7ce3.woff2\";\nimport _136 from \"./Xiaolai-Regular-d0cf73942fea1c74edbdf0b3011f4656.woff2\";\nimport _137 from \"./Xiaolai-Regular-968cffdc8ee679da094e77ebf50f58ef.woff2\";\nimport _138 from \"./Xiaolai-Regular-7a07ddc0f0c0f5f4a9bad6ee3dda66b5.woff2\";\nimport _139 from \"./Xiaolai-Regular-ec181b795ac1fb5a50d700b6e996d745.woff2\";\nimport _140 from \"./Xiaolai-Regular-cfb211578629b7e8153b37240de6a9d5.woff2\";\nimport _141 from \"./Xiaolai-Regular-59e9ff77b0efaf684bc09274fb6908c9.woff2\";\nimport _142 from \"./Xiaolai-Regular-2adbc89c11e65905393d3dfc468b9d5b.woff2\";\nimport _143 from \"./Xiaolai-Regular-70e811fd7994e61f408c923de6ddd078.woff2\";\nimport _144 from \"./Xiaolai-Regular-c4a687ac4f0c2766eefc9f77ed99cddf.woff2\";\nimport _145 from \"./Xiaolai-Regular-51502f1206be09c565f1547c406e9558.woff2\";\nimport _146 from \"./Xiaolai-Regular-1fdc0c67ed57263a80fd108c1f6ccf24.woff2\";\nimport _147 from \"./Xiaolai-Regular-e11567fd2accf9957cd0d3c2be937d87.woff2\";\nimport _148 from \"./Xiaolai-Regular-20cc1bbf50e7efb442756cb605672c1f.woff2\";\nimport _149 from \"./Xiaolai-Regular-5d2898fbc097a7e24c6f38d80587621e.woff2\";\nimport _150 from \"./Xiaolai-Regular-ac9ceb44437becc3e9c4dbfebab7fc2d.woff2\";\nimport _151 from \"./Xiaolai-Regular-c16ed9740b85badf16e86ea782a3062f.woff2\";\nimport _152 from \"./Xiaolai-Regular-aa0d470430e6391eca720c7cfa44446f.woff2\";\nimport _153 from \"./Xiaolai-Regular-f2b54d4e7be0eaefe1c2c56836fa5368.woff2\";\nimport _154 from \"./Xiaolai-Regular-99a16ef6a64934d5781933dbd9c46b2e.woff2\";\nimport _155 from \"./Xiaolai-Regular-c40533fdf4cc57177b12803598af7e59.woff2\";\nimport _156 from \"./Xiaolai-Regular-91ddb2969bf2d31ba02ad82998d1314c.woff2\";\nimport _157 from \"./Xiaolai-Regular-774d4f764a1299da5d28ec2f2ffe0d69.woff2\";\nimport _158 from \"./Xiaolai-Regular-7718fe60986d8b42b1be9c5ace5ccf25.woff2\";\nimport _159 from \"./Xiaolai-Regular-aa5c9ca6cf4fba00433b7aa3fa10671a.woff2\";\nimport _160 from \"./Xiaolai-Regular-4f50e5136e136527280bc902c5817561.woff2\";\nimport _162 from \"./Xiaolai-Regular-a0ca5df4258213d7fc9fce80f65ce760.woff2\";\nimport _163 from \"./Xiaolai-Regular-d2666cbed13462c5dc36fa2f15c202ca.woff2\";\nimport _164 from \"./Xiaolai-Regular-1e6fd68f1f3902ce48ce8c69df385622.woff2\";\nimport _165 from \"./Xiaolai-Regular-87599f94b6cc129d505b375798d0d751.woff2\";\nimport _167 from \"./Xiaolai-Regular-13ae07ed2e272d26d59bc0691cd7117a.woff2\";\nimport _168 from \"./Xiaolai-Regular-353f33792a8f60dc69323ddf635a269e.woff2\";\nimport _169 from \"./Xiaolai-Regular-0facdf1ea213ba40261022f5d5ed4493.woff2\";\nimport _202 from \"./Xiaolai-Regular-f6032fc06eb20480f096199713f70885.woff2\";\nimport _170 from \"./Xiaolai-Regular-f8ee5d36068a42b51d0e4a1116cfcec1.woff2\";\nimport _171 from \"./Xiaolai-Regular-79d494361ae093b69e74ee9dbe65bfd4.woff2\";\nimport _172 from \"./Xiaolai-Regular-74e2263a91439c25b91d5132ce9f4d62.woff2\";\nimport _173 from \"./Xiaolai-Regular-ee8bae97908d5147b423f77ad0d3c1bb.woff2\";\nimport _174 from \"./Xiaolai-Regular-56467a5c8840c4d23a60b2f935114848.woff2\";\nimport _175 from \"./Xiaolai-Regular-145aa02cdd91946e67dc934e1acffe75.woff2\";\nimport _176 from \"./Xiaolai-Regular-54acdfc2166ad7fcbd074f75fd4a56ba.woff2\";\nimport _177 from \"./Xiaolai-Regular-29cec36cd205b211da97acabaa62f055.woff2\";\nimport _178 from \"./Xiaolai-Regular-3756e81d3e149cf6099163ee79944fec.woff2\";\nimport _179 from \"./Xiaolai-Regular-8e9f97f01034820170065b2921b4fb5e.woff2\";\nimport _180 from \"./Xiaolai-Regular-13d2887ec8ee73c43acdabc52a05af7b.woff2\";\nimport _181 from \"./Xiaolai-Regular-72536a3d71b694a0d53dd90ddceae41e.woff2\";\nimport _182 from \"./Xiaolai-Regular-603aefd23e350ba7eb124273e3c9bcf1.woff2\";\nimport _184 from \"./Xiaolai-Regular-9544732d2e62d1a429674f8ee41b5d3a.woff2\";\nimport _185 from \"./Xiaolai-Regular-d3716376641d615e2995605b29bca7b6.woff2\";\nimport _186 from \"./Xiaolai-Regular-5a1ce3117cfe90c48e8fb4a9a00f694d.woff2\";\nimport _187 from \"./Xiaolai-Regular-b7d203b051eff504ff59ddca7576b6a9.woff2\";\nimport _188 from \"./Xiaolai-Regular-4a38cc3e9cf104e69ba246d37f8cf135.woff2\";\nimport _189 from \"./Xiaolai-Regular-982b630266d87db93d2539affb1275c6.woff2\";\nimport _190 from \"./Xiaolai-Regular-9592bfc861f07bcb8d75c196b370e548.woff2\";\nimport _191 from \"./Xiaolai-Regular-a7accba310e821da5505f71c03b76bdb.woff2\";\nimport _192 from \"./Xiaolai-Regular-dac48066b5883d8b4551fc584f0c2a3e.woff2\";\nimport _193 from \"./Xiaolai-Regular-a1f916d6039285c4ffb900cd654e418f.woff2\";\nimport _194 from \"./Xiaolai-Regular-95bfd249da4902577b4b7d76ebdd0b44.woff2\";\nimport _195 from \"./Xiaolai-Regular-93fc8f28a33234bcadf1527cafabd502.woff2\";\nimport _196 from \"./Xiaolai-Regular-903bb6865f3452e2fda42e3a25547bc5.woff2\";\nimport _197 from \"./Xiaolai-Regular-4aca6a43e59aceee2166b0c7e4e85ef1.woff2\";\nimport _198 from \"./Xiaolai-Regular-24476a126f129212beb33f66853ea151.woff2\";\nimport _199 from \"./Xiaolai-Regular-1b611157cd46bb184d4fa4dae2d6a2b8.woff2\";\nimport _200 from \"./Xiaolai-Regular-56a32a7689abd0326e57c10c6c069bb4.woff2\";\nimport _201 from \"./Xiaolai-Regular-3cc70dbb64df5b21f1326cc24dee2195.woff2\";\nimport _203 from \"./Xiaolai-Regular-e2ead7ea7da0437f085f42ffc05f8d13.woff2\";\nimport _204 from \"./Xiaolai-Regular-97f7f48ce90c9429bf32ae51469db74d.woff2\";\nimport _205 from \"./Xiaolai-Regular-24a21c1e4449222e8d1898d69ff3a404.woff2\";\nimport _206 from \"./Xiaolai-Regular-726303e0774b4e678bff8c2deb6ca603.woff2\";\nimport _207 from \"./Xiaolai-Regular-5a7fac4b8b23a6e4e5ba0c9bf1756c91.woff2\";\nimport _208 from \"./Xiaolai-Regular-2b7441d46298788ac94e610ffcc709b6.woff2\";\n\n/* Generated By cn-font-split@5.2.2 https://www.npmjs.com/package/cn-font-split\nCreateTime: Tue, 08 Oct 2024 18:34:44 GMT;\nOrigin File Name Table:\nfontFamily: Xiaolai SC\nfontSubfamily: Regular\npreferredFamily: \u5C0F\u8CF4\u5B57\u9AD4 SC\npostScriptFindFontName: \ncopyright: Copyright \u00A9 2020 LXGW\nuniqueID: Xiaolai SC:Version 3.11\nfullName: Xiaolai SC\nversion: Version 3.11;December 4, 2020;FontCreator 13.0.0.2613 64-bit\npostScriptName: XiaolaiSC\ntrademark: \u5C0F\u8D56\u5B57\u4F53 SC\ndesigner: Nozomi Seto \u702C\u6238\u306E\u305E\u307F\ndescription: This font was created using FontCreator from High-Logic.com\nlicense: This Font Software is licensed under the SIL Open Font License, Version 1.1. This Font Software is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the SIL Open Font License for the specific language, permissions and limitations governing your use of this Font Software.\nlicenseURL: http://scripts.sil.org/OFL\n */\n\n/**\n * The original font was modified with the following changes:\n * - removed non-CJK codepoints\n * - reduced any Hangul side-bearings to 40%\n * - centered in width of inproperly centered CJK codepoints\n */\n\nexport const XiaolaiFontFaces: ExcalidrawFontFaceDescriptor[] = [\n {\n uri: _0,\n descriptors: {\n unicodeRange:\n \"U+f9b8-fa6d,U+fe32,U+fe45-fe4f,U+ff02-ff0b,U+ff0d-ff1e,U+ff20-ff2a\",\n },\n },\n {\n uri: _1,\n descriptors: {\n unicodeRange:\n \"U+20dd-20de,U+25ef,U+ff2b-ffbe,U+ffc2-ffc7,U+ffca-ffcf,U+ffd2-ffd7,U+ffda-ffdc,U+ffe0-ffe6,U+ffe8-ffee\",\n },\n },\n { uri: _2, descriptors: { unicodeRange: \"U+d7eb-d7fb,U+f900-f9b7\" } },\n {\n uri: _3,\n descriptors: { unicodeRange: \"U+d6f2-d7a3,U+d7b0-d7c6,U+d7cb-d7ea\" },\n },\n { uri: _4, descriptors: { unicodeRange: \"U+d609-d6f1\" } },\n { uri: _5, descriptors: { unicodeRange: \"U+d520-d608\" } },\n { uri: _6, descriptors: { unicodeRange: \"U+d437-d51f\" } },\n { uri: _7, descriptors: { unicodeRange: \"U+d34e-d436\" } },\n { uri: _8, descriptors: { unicodeRange: \"U+d265-d34d\" } },\n { uri: _9, descriptors: { unicodeRange: \"U+d17c-d264\" } },\n { uri: _10, descriptors: { unicodeRange: \"U+d093-d17b\" } },\n { uri: _11, descriptors: { unicodeRange: \"U+cfaa-d092\" } },\n { uri: _12, descriptors: { unicodeRange: \"U+cec1-cfa9\" } },\n { uri: _13, descriptors: { unicodeRange: \"U+cdd8-cec0\" } },\n { uri: _14, descriptors: { unicodeRange: \"U+ccf1-cdd7\" } },\n { uri: _15, descriptors: { unicodeRange: \"U+cc08-ccf0\" } },\n { uri: _16, descriptors: { unicodeRange: \"U+cb43-cc07\" } },\n { uri: _17, descriptors: { unicodeRange: \"U+ca83-cb42\" } },\n { uri: _18, descriptors: { unicodeRange: \"U+c9a1-ca82\" } },\n { uri: _19, descriptors: { unicodeRange: \"U+c8b8-c9a0\" } },\n { uri: _20, descriptors: { unicodeRange: \"U+c7cf-c8b7\" } },\n { uri: _21, descriptors: { unicodeRange: \"U+c6e6-c7ce\" } },\n { uri: _22, descriptors: { unicodeRange: \"U+c5fd-c6e5\" } },\n { uri: _23, descriptors: { unicodeRange: \"U+c514-c5fc\" } },\n { uri: _24, descriptors: { unicodeRange: \"U+c42b-c513\" } },\n { uri: _25, descriptors: { unicodeRange: \"U+c341-c34e,U+c350-c42a\" } },\n { uri: _26, descriptors: { unicodeRange: \"U+c258-c340\" } },\n { uri: _27, descriptors: { unicodeRange: \"U+c16f-c257\" } },\n { uri: _28, descriptors: { unicodeRange: \"U+c086-c16e\" } },\n { uri: _29, descriptors: { unicodeRange: \"U+bf9d-c085\" } },\n { uri: _30, descriptors: { unicodeRange: \"U+beb4-bf9c\" } },\n { uri: _31, descriptors: { unicodeRange: \"U+bdcb-beb3\" } },\n { uri: _32, descriptors: { unicodeRange: \"U+bce2-bdca\" } },\n { uri: _33, descriptors: { unicodeRange: \"U+bbf9-bce1\" } },\n { uri: _34, descriptors: { unicodeRange: \"U+bb10-bbf8\" } },\n { uri: _35, descriptors: { unicodeRange: \"U+ba27-bb0f\" } },\n { uri: _36, descriptors: { unicodeRange: \"U+b93e-ba26\" } },\n { uri: _37, descriptors: { unicodeRange: \"U+b855-b93d\" } },\n { uri: _38, descriptors: { unicodeRange: \"U+b76c-b854\" } },\n { uri: _39, descriptors: { unicodeRange: \"U+b683-b76b\" } },\n { uri: _40, descriptors: { unicodeRange: \"U+b59a-b682\" } },\n { uri: _41, descriptors: { unicodeRange: \"U+b4b1-b599\" } },\n { uri: _42, descriptors: { unicodeRange: \"U+11fb-11ff,U+b3cd-b4b0\" } },\n { uri: _43, descriptors: { unicodeRange: \"U+11e6-11fa,U+b2f9-b3cc\" } },\n { uri: _44, descriptors: { unicodeRange: \"U+11d1-11e5,U+b225-b2f8\" } },\n { uri: _45, descriptors: { unicodeRange: \"U+11bc-11d0,U+b151-b224\" } },\n { uri: _46, descriptors: { unicodeRange: \"U+11a7-11bb,U+b07d-b150\" } },\n { uri: _47, descriptors: { unicodeRange: \"U+1191-11a6,U+afaa-b07c\" } },\n { uri: _48, descriptors: { unicodeRange: \"U+117c-1190,U+aed6-afa9\" } },\n { uri: _49, descriptors: { unicodeRange: \"U+1167-117b,U+ae02-aed5\" } },\n {\n uri: _50,\n descriptors: { unicodeRange: \"U+1152-115e,U+1160-1166,U+ad2d-ae01\" },\n },\n { uri: _51, descriptors: { unicodeRange: \"U+113d-1151,U+ac59-ad2c\" } },\n {\n uri: _52,\n descriptors: {\n unicodeRange:\n \"U+1100-113c,U+9f95-9f98,U+9f9c-9f9e,U+9fa1-9fce,U+9fd0,U+a960-a97c,U+ac00-ac58\",\n },\n },\n {\n uri: _53,\n descriptors: {\n unicodeRange:\n \"U+9771-9772,U+9775,U+9777-977b,U+977d-9784,U+9786-978a,U+978c,U+978e-9790,U+9793,U+9795-9797,U+9799-979f,U+97a1-97a2,U+97a4-97aa,U+97ac,U+97ae,U+97b0-97b1,U+97b3,U+97b5-97e5,U+97e8,U+97ee-97f2,U+97f4,U+97f7-982d\",\n },\n },\n {\n uri: _54,\n descriptors: {\n unicodeRange:\n \"U+9491,U+9496,U+9498,U+94c7,U+94cf,U+94d3-94d4,U+94da,U+94e6,U+94fb,U+951c,U+9520,U+9527,U+9533,U+953d,U+9543,U+9548,U+954b,U+9555,U+955a,U+9560,U+956e,U+9574-9575,U+9577-957e,U+9580-95e7,U+95ec,U+95ff,U+9607,U+9613,U+9618,U+961b,U+961e,U+9620,U+9623-9629,U+962b-962d,U+962f-9630,U+9637-963a,U+963e,U+9641,U+9643,U+964a,U+964e-964f,U+9651-9653,U+9656-965a,U+965c-965e,U+9660,U+9663,U+9665-9666,U+966b,U+966d-9671,U+9673,U+9678-9684,U+9687,U+9689-968a,U+968c,U+968e,U+9691-9693\",\n },\n },\n {\n uri: _55,\n descriptors: {\n unicodeRange:\n \"U+923c-9273,U+9275-928d,U+928f-92ad,U+92af-92c7,U+92c9-92ee\",\n },\n },\n {\n uri: _56,\n descriptors: {\n unicodeRange:\n \"U+9159,U+915b-915c,U+915f-9160,U+9166-9168,U+916b,U+916d,U+9173,U+917a-917c,U+9180-9184,U+9186,U+9188,U+918a,U+918e-918f,U+9193-9199,U+919c-91a1,U+91a4-91a9,U+91ab-91ac,U+91b0-91b3,U+91b6-91b9,U+91bb-91c6,U+91c8,U+91cb,U+91d0,U+91d2-91db,U+91dd-923b\",\n },\n },\n {\n uri: _57,\n descriptors: {\n unicodeRange:\n \"U+902b-902c,U+9030-9034,U+9037,U+9039-903a,U+903d,U+903f-9040,U+9043,U+9045-9046,U+9048-904c,U+904e,U+9054-9056,U+9059-905a,U+905c-9061,U+9064,U+9066-9067,U+9069-906c,U+906f-9073,U+9076-907c,U+907e,U+9081,U+9084-9087,U+9089-908a,U+908c-9090,U+9092,U+9094,U+9096,U+9098,U+909a,U+909c,U+909e-90a0,U+90a4-90a5,U+90a7-90a9,U+90ab,U+90ad,U+90b2,U+90b7,U+90bc-90bd,U+90bf-90c0,U+90c2-90c3,U+90c6,U+90c8-90c9,U+90cb-90cd,U+90d2,U+90d4-90d6,U+90d8-90da,U+90de-90e0,U+90e3-90e5,U+90e9-90ea,U+90ec,U+90ee,U+90f0-90f3,U+90f5-90f7,U+90f9-90fc,U+90ff-9101,U+9103,U+9105-9118,U+911a-911d,U+911f-9121,U+9124-912e,U+9130,U+9132-9138,U+913a-9142,U+9144-9145,U+9147-9148,U+9151,U+9153-9156,U+9158\",\n },\n },\n {\n uri: _58,\n descriptors: {\n unicodeRange:\n \"U+8f03-8f65,U+8f6a,U+8f80,U+8f8c,U+8f92,U+8f9d,U+8fa0-8fa2,U+8fa4-8fa7,U+8faa,U+8fac-8faf,U+8fb2-8fb5,U+8fb7-8fb8,U+8fba-8fbc,U+8fbf-8fc0,U+8fc3,U+8fc6,U+8fc9-8fcd,U+8fcf,U+8fd2,U+8fd6-8fd7,U+8fda,U+8fe0-8fe1,U+8fe3,U+8fe7,U+8fec,U+8fef,U+8ff1-8ff2,U+8ff4-8ff6,U+8ffa-8ffc,U+8ffe-8fff,U+9007-9008,U+900c,U+900e,U+9013,U+9015,U+9018-9019,U+901c,U+9023-9025,U+9027-902a\",\n },\n },\n {\n uri: _59,\n descriptors: {\n unicodeRange:\n \"U+8d03-8d1c,U+8d20,U+8d51-8d52,U+8d57,U+8d5f,U+8d65,U+8d68-8d6a,U+8d6c,U+8d6e-8d6f,U+8d71-8d72,U+8d78-8d80,U+8d82-8d83,U+8d86-8d89,U+8d8c-8d90,U+8d92-8d93,U+8d95-8d9e,U+8da0-8da2,U+8da4-8db0,U+8db2,U+8db6-8db7,U+8db9,U+8dbb,U+8dbd,U+8dc0-8dc2,U+8dc5,U+8dc7-8dca,U+8dcd,U+8dd0,U+8dd2-8dd5,U+8dd8-8dd9,U+8ddc,U+8de0-8de2,U+8de5-8de7,U+8de9,U+8ded-8dee,U+8df0-8df2,U+8df4,U+8df6,U+8dfc,U+8dfe-8e04,U+8e06-8e08,U+8e0b,U+8e0d-8e0e,U+8e10-8e13,U+8e15-8e1c,U+8e20-8e21,U+8e24-8e28,U+8e2b,U+8e2d,U+8e30,U+8e32-8e34,U+8e36-8e38,U+8e3b-8e3c,U+8e3e-8e3f,U+8e43,U+8e45-8e46\",\n },\n },\n {\n uri: _60,\n descriptors: {\n unicodeRange:\n \"U+8bea,U+8c09,U+8c1e,U+8c38-8c40,U+8c42-8c45,U+8c48,U+8c4a-8c4b,U+8c4d-8c54,U+8c56-8c59,U+8c5b-8c60,U+8c63-8c69,U+8c6c-8c72,U+8c74-8c77,U+8c7b-8c81,U+8c83-8c84,U+8c86-8c88,U+8c8b,U+8c8d-8c93,U+8c95-8c97,U+8c99-8d02\",\n },\n },\n {\n uri: _61,\n descriptors: {\n unicodeRange:\n \"U+8a64-8a78,U+8a7a-8a88,U+8a8b-8a92,U+8a94-8b06,U+8b08-8b1b\",\n },\n },\n {\n uri: _62,\n descriptors: {\n unicodeRange:\n \"U+8987-89c0,U+89c3,U+89cd,U+89d3-89d5,U+89d7-89d9,U+89db,U+89dd,U+89df-89e2,U+89e4,U+89e7-89ea,U+89ec-89ee,U+89f0-89f2,U+89f4-89ff,U+8a01-8a06,U+8a08-8a3d,U+8a3f-8a47,U+8a49-8a63\",\n },\n },\n {\n uri: _63,\n descriptors: {\n unicodeRange:\n \"U+87e3-87e4,U+87e6-87e9,U+87eb-87ed,U+87ef-87f8,U+87fa-87fd,U+87ff-8802,U+8804-8809,U+880b-8812,U+8814,U+8817-881a,U+881c-8820,U+8823-8831,U+8833-8838,U+883a-883b,U+883d-883f,U+8841-8843,U+8846-884b,U+884e-8853,U+8855-8856,U+8858,U+885a-8860,U+8866-8867,U+886a,U+886d,U+886f,U+8871,U+8873-8876,U+8878-887c,U+8880,U+8883,U+8886-8887,U+8889-888a,U+888c,U+888e-8891,U+8893-8895,U+8897-889b,U+889d-88a1,U+88a3,U+88a5-88aa,U+88ac,U+88ae-88b0,U+88b2-88b6,U+88b8-88bb\",\n },\n },\n {\n uri: _64,\n descriptors: {\n unicodeRange:\n \"U+86e7-86e8,U+86ea-86ec,U+86ef,U+86f5-86f7,U+86fa-86fd,U+86ff,U+8701,U+8704-8706,U+870b-870c,U+870e-8711,U+8714,U+8716,U+8719,U+871b,U+871d,U+871f-8720,U+8724,U+8726-8728,U+872a-872d,U+872f-8730,U+8732-8733,U+8735-8736,U+8738-873a,U+873c-873d,U+8740-8746,U+874a-874b,U+874d,U+874f-8752,U+8754-8756,U+8758,U+875a-875f,U+8761-8762,U+8766-876d,U+876f,U+8771-8773,U+8775,U+8777-877a,U+877f-8781,U+8784,U+8786-8787,U+8789-878a,U+878c,U+878e-8792,U+8794-8796,U+8798-879e,U+87a0-87a7,U+87a9-87aa,U+87ae,U+87b0-87b2,U+87b4,U+87b6-87b9,U+87bb-87bc,U+87be-87bf,U+87c1-87c5,U+87c7-87c9,U+87cc-87d0,U+87d4-87da,U+87dc-87df,U+87e1-87e2\",\n },\n },\n {\n uri: _65,\n descriptors: {\n unicodeRange:\n \"U+8604,U+8606-8610,U+8612-8615,U+8617-8626,U+8628,U+862a-8637,U+8639-863b,U+863d-864c,U+8652-8653,U+8655-8659,U+865b-865d,U+865f-8661,U+8663-866a,U+866d,U+866f-8670,U+8672-8678,U+8683-8689,U+868e-8692,U+8694,U+8696-869b,U+869e-86a2,U+86a5-86a6,U+86ab,U+86ad-86ae,U+86b2-86b3,U+86b7-86b9,U+86bb-86bf,U+86c1-86c3,U+86c5,U+86c8,U+86cc-86cd,U+86d2-86d3,U+86d5-86d7,U+86da,U+86dc-86dd,U+86e0-86e3,U+86e5-86e6\",\n },\n },\n {\n uri: _66,\n descriptors: {\n unicodeRange:\n \"U+8456,U+8458,U+845d-8460,U+8462,U+8464-8468,U+846a,U+846e-8470,U+8472,U+8474,U+8477,U+8479,U+847b-8481,U+8483-8486,U+848a,U+848d,U+848f-8496,U+8498,U+849a-849b,U+849d-84a0,U+84a2-84ae,U+84b0-84b1,U+84b3,U+84b5-84b7,U+84bb-84bc,U+84be,U+84c0,U+84c2-84c3,U+84c5-84c8,U+84cb-84cc,U+84ce-84cf,U+84d2,U+84d4-84d5,U+84d7-84dc,U+84de,U+84e1-84e2,U+84e4,U+84e7-84eb,U+84ed-84ef,U+84f1-84fb,U+84fd-84fe,U+8500-850b,U+850d-8510,U+8512,U+8514-8516,U+8518-8519,U+851b-851e,U+8520,U+8522-852a,U+852d-8536,U+853e-8542,U+8544-8547,U+854b-854f\",\n },\n },\n {\n uri: _67,\n descriptors: {\n unicodeRange:\n \"U+82c2-82c3,U+82c5-82c6,U+82c9,U+82d0,U+82d6,U+82d9-82da,U+82dd,U+82e2,U+82e7-82ea,U+82ec-82ee,U+82f0,U+82f2-82f3,U+82f5-82f6,U+82f8,U+82fa,U+82fc-8300,U+830a-830b,U+830d,U+8310,U+8312-8313,U+8316,U+8318-8319,U+831d-8326,U+8329-832a,U+832e,U+8330,U+8332,U+8337,U+833b,U+833d-833f,U+8341-8342,U+8344-8345,U+8348,U+834a-834e,U+8353,U+8355-8359,U+835d,U+8362,U+8370-8376,U+8379-837a,U+837e-8384,U+8387-8388,U+838a-838d,U+838f-8391,U+8394-8397,U+8399-839a,U+839d,U+839f,U+83a1-83a7,U+83ac-83af,U+83b5,U+83bb,U+83be-83bf,U+83c2-83c4,U+83c6,U+83c8-83c9,U+83cb,U+83cd-83ce,U+83d0-83d3,U+83d5,U+83d7,U+83d9-83db,U+83de,U+83e2-83e4,U+83e6-83e8,U+83eb-83ef,U+83f3-83f7,U+83fa-83fc,U+83fe-8400,U+8402,U+8405,U+8407-840a,U+8410,U+8412-8417,U+8419-841b,U+841e-8423,U+8429-8430,U+8432-8437,U+8439-843b,U+843e-8445,U+8447-8450,U+8452-8455\",\n },\n },\n {\n uri: _68,\n descriptors: {\n unicodeRange:\n \"U+81a4-81a5,U+81a7,U+81a9,U+81ab-81b2,U+81b4-81b9,U+81bc-81bf,U+81c4-81c5,U+81c7-81c9,U+81cb,U+81cd-81e2,U+81e4-81e6,U+81e8-81e9,U+81eb,U+81ee-81f2,U+81f5-81fa,U+81fd,U+81ff,U+8203,U+8207-820b,U+820e-820f,U+8211,U+8213,U+8215-821a,U+821d,U+8220,U+8224-8227,U+8229,U+822e,U+8232,U+823a,U+823c-823d,U+823f-8243,U+8245-8246,U+8248,U+824a,U+824c-824e,U+8250-8257,U+8259,U+825b-825e,U+8260-8267,U+8269-826d,U+8271,U+8275-8278,U+827b-827c,U+8280-8281,U+8283,U+8285-8287,U+8289,U+828c,U+8290,U+8293-8296,U+829a-829b,U+829e,U+82a0,U+82a2-82a3,U+82a7,U+82b2,U+82b5-82b6,U+82ba-82bc,U+82bf-82c0\",\n },\n },\n {\n uri: _69,\n descriptors: {\n unicodeRange:\n \"U+8059,U+805b-8068,U+806b-8070,U+8072-807e,U+8081-8082,U+8085,U+8088,U+808a,U+808d-8092,U+8094-8095,U+8097,U+8099,U+809e,U+80a3,U+80a6-80a8,U+80ac,U+80b0,U+80b3,U+80b5-80b6,U+80b8-80b9,U+80bb,U+80c5,U+80c7-80cb,U+80cf-80d5,U+80d8,U+80df-80e0,U+80e2-80e3,U+80e6,U+80ee,U+80f5,U+80f7,U+80f9,U+80fb,U+80fe-8101,U+8103-8105,U+8107-8108,U+810b-810c,U+8115,U+8117,U+8119,U+811b-811d,U+811f-812b,U+812d-812e,U+8130,U+8133-8135,U+8137,U+8139-813d,U+813f-8145,U+8147,U+8149,U+814d-814f,U+8152,U+8156-8158,U+815b-815f,U+8161-8164,U+8166,U+8168,U+816a-816c,U+816f,U+8172-8173,U+8175-8178,U+8181,U+8183-8187,U+8189,U+818b-818e,U+8190,U+8192-8197,U+8199-819a,U+819e-81a2\",\n },\n },\n {\n uri: _70,\n descriptors: {\n unicodeRange:\n \"U+7f3c-7f41,U+7f43,U+7f46-7f4f,U+7f52-7f53,U+7f56,U+7f59,U+7f5b-7f5e,U+7f60,U+7f63-7f67,U+7f6b-7f6d,U+7f6f-7f70,U+7f73,U+7f75-7f78,U+7f7a-7f7d,U+7f7f-7f80,U+7f82-7f89,U+7f8b,U+7f8d,U+7f8f-7f93,U+7f95-7f99,U+7f9b-7f9c,U+7fa0,U+7fa2-7fa3,U+7fa5-7fa6,U+7fa8-7fae,U+7fb1,U+7fb3-7fb7,U+7fba-7fbb,U+7fbe,U+7fc0,U+7fc2-7fc4,U+7fc6-7fc9,U+7fcb,U+7fcd,U+7fcf-7fd3,U+7fd6-7fd7,U+7fd9-7fde,U+7fe2-7fe4,U+7fe7-7fe8,U+7fea-7fed,U+7fef,U+7ff2,U+7ff4-7ffa,U+7ffd-7fff,U+8002,U+8007-800a,U+800e-800f,U+8011,U+8013,U+801a-801b,U+801d-801f,U+8021,U+8023-8024,U+802b-8030,U+8032,U+8034,U+8039-803a,U+803c,U+803e,U+8040-8041,U+8044-8045,U+8047-8049,U+804e-8051,U+8053,U+8055-8057\",\n },\n },\n {\n uri: _71,\n descriptors: {\n unicodeRange:\n \"U+7cd8,U+7cda-7cdb,U+7cdd-7cde,U+7ce1-7ce7,U+7ce9-7cee,U+7cf0-7cf7,U+7cf9-7cfa,U+7cfc-7d09,U+7d0b-7d1f,U+7d21,U+7d23-7d26,U+7d28-7d2a,U+7d2c-7d2e,U+7d30-7d6d,U+7d6f-7d76,U+7d78-7d94\",\n },\n },\n {\n uri: _72,\n descriptors: {\n unicodeRange:\n \"U+7afe,U+7b00-7b02,U+7b05,U+7b07,U+7b09,U+7b0c-7b0e,U+7b10,U+7b12-7b13,U+7b16-7b18,U+7b1a,U+7b1c-7b1d,U+7b1f,U+7b21-7b23,U+7b27,U+7b29,U+7b2d,U+7b2f-7b30,U+7b32,U+7b34-7b37,U+7b39,U+7b3b,U+7b3d,U+7b3f-7b44,U+7b46,U+7b48,U+7b4a,U+7b4d-7b4e,U+7b53,U+7b55,U+7b57,U+7b59,U+7b5c,U+7b5e-7b5f,U+7b61,U+7b63-7b6d,U+7b6f-7b70,U+7b73-7b74,U+7b76,U+7b78,U+7b7a,U+7b7c-7b7d,U+7b7f,U+7b81-7b84,U+7b86-7b8c,U+7b8e-7b8f,U+7b91-7b93,U+7b96,U+7b98-7b9b,U+7b9e-7ba0,U+7ba3-7ba5,U+7bae-7bb0,U+7bb2-7bb3,U+7bb5-7bb7,U+7bb9-7bc0,U+7bc2-7bc5,U+7bc8-7bcb,U+7bcd-7bd0,U+7bd2,U+7bd4-7bd8,U+7bdb-7bdc,U+7bde-7be0,U+7be2-7be4,U+7be7-7be9,U+7beb-7bed,U+7bef-7bf0,U+7bf2-7bf6,U+7bf8-7bfb,U+7bfd,U+7bff-7c06,U+7c08-7c0a,U+7c0d-7c0e,U+7c10-7c13\",\n },\n },\n {\n uri: _73,\n descriptors: {\n unicodeRange:\n \"U+7a10-7a13,U+7a15-7a16,U+7a18-7a19,U+7a1b-7a1d,U+7a1f,U+7a21-7a22,U+7a24-7a32,U+7a34-7a36,U+7a38,U+7a3a,U+7a3e,U+7a40-7a45,U+7a47-7a50,U+7a52-7a56,U+7a58-7a6f,U+7a71-7a73,U+7a75,U+7a7b-7a7e,U+7a82,U+7a85,U+7a87,U+7a89-7a8c,U+7a8e-7a90,U+7a93-7a94,U+7a99-7a9b,U+7a9e,U+7aa1-7aa4,U+7aa7,U+7aa9-7aab,U+7aae-7ab2,U+7ab4-7abe,U+7ac0-7aca,U+7acc-7ad5,U+7ad7-7ad8,U+7ada-7add,U+7ae1-7ae2,U+7ae4,U+7ae7-7aec,U+7aee,U+7af0-7af8,U+7afb-7afc\",\n },\n },\n {\n uri: _74,\n descriptors: {\n unicodeRange:\n \"U+790d-7912,U+7914-791d,U+791f-7923,U+7925-7933,U+7935-7939,U+793d,U+793f,U+7942-7945,U+7947,U+794a-7952,U+7954-7955,U+7958-7959,U+7961,U+7963-7964,U+7966,U+7969-796c,U+796e,U+7970-7976,U+7979,U+797b-797f,U+7982-7983,U+7986-7989,U+798b-798e,U+7990-7999,U+799b-79a6,U+79a8-79b2,U+79b4-79b8,U+79bc,U+79bf,U+79c2,U+79c4-79c5,U+79c7-79c8,U+79ca,U+79cc,U+79ce-79d0,U+79d3-79d4,U+79d6-79d7,U+79d9-79de,U+79e0-79e2,U+79e5,U+79e8,U+79ea,U+79ec,U+79ee,U+79f1-79f7,U+79f9-79fa,U+79fc,U+79fe-79ff,U+7a01,U+7a04-7a05,U+7a07-7a0a,U+7a0c,U+7a0f\",\n },\n },\n {\n uri: _75,\n descriptors: {\n unicodeRange:\n \"U+77d8-77da,U+77dd-77e1,U+77e4,U+77e6,U+77e8,U+77ea,U+77ef-77f2,U+77f4-77f5,U+77f7,U+77f9-77fc,U+7803-7808,U+780a-780b,U+780e-7810,U+7813,U+7815,U+7819,U+781b,U+781e,U+7820-7822,U+7824,U+7828,U+782a-782b,U+782e-782f,U+7831-7833,U+7835-7836,U+783d,U+783f,U+7841-7844,U+7846,U+7848-784b,U+784d,U+784f,U+7851,U+7853-7854,U+7858-785c,U+785e-7869,U+786f-7876,U+7878-787b,U+787d-7886,U+7888,U+788a-788b,U+788f-7890,U+7892,U+7894-7896,U+7899,U+789d-789e,U+78a0,U+78a2,U+78a4,U+78a6,U+78a8-78af,U+78b5-78b8,U+78ba-78bd,U+78bf-78c0,U+78c2-78c4,U+78c6-78c8,U+78cc-78cf,U+78d1-78d3,U+78d6-78d8,U+78da-78e7,U+78e9-78eb,U+78ed-78f1,U+78f3,U+78f5-78f6,U+78f8-78f9,U+78fb-7900,U+7902-7904,U+7906-790c\",\n },\n },\n {\n uri: _76,\n descriptors: {\n unicodeRange:\n \"U+76af-76b0,U+76b3,U+76b5-76be,U+76c0-76c1,U+76c3-76c4,U+76c7,U+76c9,U+76cb-76cc,U+76d3,U+76d5,U+76d9-76da,U+76dc-76de,U+76e0-76e4,U+76e6-76ed,U+76f0,U+76f3,U+76f5-76f7,U+76fa-76fb,U+76fd,U+76ff-7703,U+7705-7706,U+770a,U+770c,U+770e-7718,U+771b-771e,U+7721,U+7723-7725,U+7727,U+772a-772c,U+772e,U+7730-7734,U+7739,U+773b,U+773d-773f,U+7742,U+7744-7746,U+7748-774f,U+7752-7759,U+775c-7760,U+7764,U+7767,U+7769-776a,U+776d-7778,U+777a-777c,U+7781-7783,U+7786-778b,U+778f-7790,U+7793-779e,U+77a1,U+77a3-77a4,U+77a6,U+77a8,U+77ab,U+77ad-77af,U+77b1-77b2,U+77b4,U+77b6-77ba,U+77bc,U+77be,U+77c0-77cc,U+77ce-77d6\",\n },\n },\n {\n uri: _77,\n descriptors: {\n unicodeRange:\n \"U+7589-758a,U+758c-758e,U+7590,U+7593,U+7595,U+7598,U+759b-759c,U+759e,U+75a2,U+75a6-75aa,U+75ad,U+75b6-75b7,U+75ba-75bb,U+75bf-75c1,U+75c6,U+75cb-75cc,U+75ce-75d1,U+75d3,U+75d7,U+75d9-75da,U+75dc-75dd,U+75df-75e1,U+75e5,U+75e9,U+75ec-75ef,U+75f2-75f3,U+75f5-75f8,U+75fa-75fb,U+75fd-75fe,U+7602,U+7604,U+7606-7609,U+760b,U+760d-760f,U+7611-7614,U+7616,U+761a,U+761c-761e,U+7621,U+7623,U+7627-7628,U+762c,U+762e-762f,U+7631-7632,U+7636-7637,U+7639-763b,U+763d,U+7641-7642,U+7644-764b,U+764e-7653,U+7655,U+7657-765b,U+765d,U+765f-7662,U+7664-766a,U+766c-766e,U+7670-7677,U+7679-767a,U+767c,U+767f-7681,U+7683,U+7685,U+7689-768a,U+768c-768d,U+768f-7690,U+7692,U+7694-7695,U+7697-7698,U+769a-76a3,U+76a5-76ad\",\n },\n },\n {\n uri: _78,\n descriptors: {\n unicodeRange:\n \"U+7492-749b,U+749d,U+749f-74a6,U+74aa-74b9,U+74bb-74d1,U+74d3-74db,U+74dd,U+74df,U+74e1,U+74e5,U+74e7-74ed,U+74f0-74f3,U+74f5,U+74f8-74fe,U+7500-7503,U+7505-750c,U+750e,U+7510,U+7512,U+7514-7517,U+751b,U+751d-751e,U+7520-7524,U+7526-7527,U+752a,U+752e,U+7534,U+7536,U+7539,U+753c-753d,U+753f,U+7541-7544,U+7546-7547,U+7549-754a,U+754d,U+7550-7553,U+7555-7558,U+755d-7564,U+7567-7569,U+756b-7571,U+7573,U+7575-7577,U+757a-757e,U+7580-7582,U+7584-7585,U+7587-7588\",\n },\n },\n {\n uri: _79,\n descriptors: {\n unicodeRange:\n \"U+7372-737d,U+737f-7383,U+7385-7386,U+7388,U+738a,U+738c-738d,U+738f-7390,U+7392-7395,U+7397-739a,U+739c-739e,U+73a0-73a1,U+73a3-73a8,U+73aa,U+73ac-73ad,U+73b1,U+73b4-73b6,U+73b8-73b9,U+73bc-73bf,U+73c1,U+73c3-73c7,U+73cb-73cc,U+73ce,U+73d2-73d8,U+73da-73dd,U+73df,U+73e1-73e4,U+73e6,U+73e8,U+73ea-73ec,U+73ee-73f1,U+73f3-7402,U+7404,U+7407-7408,U+740b-740e,U+7411-7419,U+741c-7421,U+7423-7424,U+7427,U+7429,U+742b,U+742d,U+742f,U+7431-7432,U+7437-743b,U+743d-7440,U+7442-7454,U+7456,U+7458,U+745d,U+7460-746c,U+746e-746f,U+7471-7475,U+7478-747d,U+747f,U+7482,U+7484-7486,U+7488-748a,U+748c-748d,U+748f,U+7491\",\n },\n },\n {\n uri: _80,\n descriptors: {\n unicodeRange:\n \"U+7054-705d,U+705f-706a,U+706e,U+7071-7074,U+7077,U+7079-707b,U+707d,U+7081-7084,U+7086-7088,U+708b-708d,U+708f-7091,U+7093,U+7097-7098,U+709a-709b,U+709e-70aa,U+70b0,U+70b2,U+70b4-70b6,U+70ba,U+70be-70bf,U+70c4-70c7,U+70c9,U+70cb-70d7,U+70da,U+70dc-70de,U+70e0-70e3,U+70e5,U+70ea,U+70ee,U+70f0-70f6,U+70f8,U+70fa-70fc,U+70fe-7108,U+710b-710f,U+7111-7112,U+7114,U+7117,U+711b-7125,U+7127-712e,U+7132-7135,U+7137-7144,U+7146-7149,U+714b,U+714d,U+714f-715b,U+715d,U+715f-7163,U+7165,U+7169-716d,U+716f-7171,U+7174-7177\",\n },\n },\n {\n uri: _81,\n descriptors: {\n unicodeRange:\n \"U+722e-722f,U+7232-7234,U+723a,U+723c,U+723e,U+7240-7246,U+7249-724b,U+724e-7251,U+7253-7255,U+7257-7258,U+725a,U+725c,U+725e,U+7260,U+7263-7265,U+7268,U+726a-726d,U+7270-7271,U+7273-7274,U+7276-7278,U+727b-727d,U+7282-7283,U+7285-7289,U+728c,U+728e,U+7290-7291,U+7293-729e,U+72a0-72ab,U+72ae,U+72b1-72b3,U+72b5,U+72ba-72c0,U+72c5-72c7,U+72c9-72cc,U+72cf,U+72d1,U+72d3-72d6,U+72d8,U+72da-72dd,U+72df,U+72e2-72e7,U+72ea-72eb,U+72f5-72f6,U+72f9,U+72fd-7300,U+7302,U+7304-7309,U+730b-730d,U+730f-7312,U+7314,U+7318-731a,U+731f-7320,U+7323-7324,U+7326-7328,U+732d,U+732f-7330,U+7332-7333,U+7335-7336,U+733a-733d,U+7340-734c,U+734e-734f,U+7351,U+7353-7356,U+7358-735f,U+7361-736b,U+736e,U+7370-7371\",\n },\n },\n {\n uri: _82,\n descriptors: {\n unicodeRange:\n \"U+6ec5-6ec6,U+6ec8-6eca,U+6ecc-6ece,U+6ed0,U+6ed2,U+6ed6,U+6ed8-6ed9,U+6edb-6edd,U+6ee3,U+6ee7,U+6eea-6ef3,U+6ef5-6ef8,U+6efa-6f01,U+6f03-6f05,U+6f07-6f08,U+6f0a-6f0e,U+6f10-6f12,U+6f16-6f1f,U+6f21-6f23,U+6f25-6f28,U+6f2c,U+6f2e,U+6f30,U+6f32,U+6f34-6f35,U+6f37-6f3d,U+6f3f-6f45,U+6f48-6f4a,U+6f4c,U+6f4e-6f57,U+6f59-6f5b,U+6f5d,U+6f5f-6f61,U+6f63-6f65,U+6f67-6f6c,U+6f6f-6f71,U+6f73,U+6f75-6f77,U+6f79,U+6f7b,U+6f7d-6f83,U+6f85-6f87,U+6f8a-6f8b,U+6f8f-6f9b,U+6f9d-6fa0,U+6fa2-6fa6,U+6fa8-6fb1\",\n },\n },\n {\n uri: _83,\n descriptors: {\n unicodeRange:\n \"U+6d73,U+6d75-6d76,U+6d79-6d7b,U+6d7d-6d81,U+6d83-6d84,U+6d86-6d87,U+6d8a-6d8b,U+6d8d,U+6d8f-6d90,U+6d92,U+6d96-6d9a,U+6d9c,U+6da2,U+6da5,U+6dac-6dad,U+6db0-6db1,U+6db3-6db4,U+6db6-6db7,U+6db9-6dbe,U+6dc1-6dc3,U+6dc8-6dca,U+6dcd-6dd0,U+6dd2-6dd5,U+6dd7,U+6dda-6ddc,U+6ddf,U+6de2-6de3,U+6de5,U+6de7-6dea,U+6ded,U+6def-6df0,U+6df2,U+6df4-6df6,U+6df8,U+6dfa,U+6dfd-6e04,U+6e06-6e09,U+6e0b,U+6e0f,U+6e12-6e13,U+6e15,U+6e18-6e19,U+6e1b-6e1c,U+6e1e-6e1f,U+6e22,U+6e26-6e28,U+6e2a,U+6e2c,U+6e2e,U+6e30-6e31,U+6e33,U+6e35-6e37,U+6e39,U+6e3b-6e42,U+6e45-6e4c,U+6e4f-6e52,U+6e55,U+6e57,U+6e59-6e5a,U+6e5c-6e5e,U+6e60-6e6a,U+6e6c-6e6d,U+6e6f-6e7d,U+6e80-6e82,U+6e84,U+6e87-6e88,U+6e8a-6e8e,U+6e91-6e97,U+6e99-6e9b,U+6e9d-6e9e,U+6ea0-6ea1,U+6ea3-6ea4,U+6ea6,U+6ea8-6ea9,U+6eab-6eae,U+6eb0,U+6eb3,U+6eb5,U+6eb8-6eb9,U+6ebc,U+6ebe-6ec0,U+6ec3-6ec4\",\n },\n },\n {\n uri: _84,\n descriptors: {\n unicodeRange:\n \"U+6bbb-6bbe,U+6bc0,U+6bc3-6bc4,U+6bc6-6bca,U+6bcc,U+6bce,U+6bd0-6bd1,U+6bd8,U+6bda,U+6bdc-6be0,U+6be2-6be9,U+6bec-6bee,U+6bf0-6bf2,U+6bf4,U+6bf6-6bf8,U+6bfa-6bfc,U+6bfe-6c04,U+6c08-6c0c,U+6c0e,U+6c12,U+6c17,U+6c1c-6c1e,U+6c20,U+6c23,U+6c25,U+6c2b-6c2d,U+6c31,U+6c33,U+6c36-6c37,U+6c39-6c3c,U+6c3e-6c3f,U+6c43-6c45,U+6c48,U+6c4b-6c4f,U+6c51-6c53,U+6c56,U+6c58-6c5a,U+6c62-6c63,U+6c65-6c67,U+6c6b-6c6f,U+6c71,U+6c73,U+6c75,U+6c77-6c78,U+6c7a-6c7c,U+6c7f-6c80,U+6c84,U+6c87,U+6c8a-6c8b,U+6c8d-6c8e,U+6c91-6c92,U+6c95-6c98,U+6c9a,U+6c9c-6c9e,U+6ca0,U+6ca2,U+6ca8,U+6cac,U+6caf-6cb0,U+6cb4-6cb7,U+6cba,U+6cc0-6cc3,U+6cc6-6cc8,U+6ccb,U+6ccd-6ccf,U+6cd1-6cd2,U+6cd8-6cda,U+6cdc-6cdd,U+6cdf,U+6ce4,U+6ce6-6ce7,U+6ce9,U+6cec-6ced,U+6cf2,U+6cf4,U+6cf9,U+6cff-6d00,U+6d02-6d03,U+6d05-6d06,U+6d08-6d0a,U+6d0d,U+6d0f-6d11,U+6d13-6d16,U+6d18,U+6d1c-6d1d,U+6d1f-6d24,U+6d26,U+6d28-6d29,U+6d2c-6d2d,U+6d2f-6d30,U+6d34,U+6d36-6d38,U+6d3a,U+6d3f-6d40,U+6d42,U+6d44,U+6d49,U+6d4c,U+6d50,U+6d55-6d58,U+6d5b,U+6d5d,U+6d5f,U+6d61-6d62,U+6d64-6d65,U+6d67-6d68,U+6d6b-6d6d,U+6d70-6d72\",\n },\n },\n {\n uri: _85,\n descriptors: {\n unicodeRange:\n \"U+6967-696a,U+696c-696d,U+696f-6970,U+6972-6976,U+697a-697b,U+697d-697f,U+6981,U+6983,U+6985,U+698a-698c,U+698e-6993,U+6996-6997,U+6999-699a,U+699d-69a6,U+69a9-69aa,U+69ac,U+69ae-69b0,U+69b2-69b3,U+69b5-69b6,U+69b8-69ba,U+69bc-69c0,U+69c2-69c9,U+69cb,U+69cd,U+69cf,U+69d1-69d3,U+69d5-69da,U+69dc-69de,U+69e1-69ec,U+69ee-69f1,U+69f3-69fc,U+69fe,U+6a00-6a09,U+6a0b-6a16,U+6a19-6a1e,U+6a20,U+6a22-6a27,U+6a29,U+6a2b-6a2e,U+6a30,U+6a32-6a34,U+6a36-6a3c,U+6a3f-6a43,U+6a45-6a46,U+6a48-6a4a\",\n },\n },\n {\n uri: _86,\n descriptors: {\n unicodeRange:\n \"U+6830-6831,U+6834-6836,U+683a-683b,U+683f,U+6847,U+684b,U+684d,U+684f,U+6852,U+6856-685f,U+686a,U+686c-6873,U+6875,U+6878-6880,U+6882,U+6884,U+6887-688e,U+6890-6892,U+6894-6896,U+6898-68a1,U+68a3-68a5,U+68a9-68ac,U+68ae,U+68b1-68b2,U+68b4,U+68b6-68bf,U+68c1,U+68c3-68c8,U+68ca,U+68cc,U+68ce-68d1,U+68d3-68d4,U+68d6-68d7,U+68d9,U+68db-68df,U+68e1-68e2,U+68e4-68ed,U+68ef,U+68f2-68f4,U+68f6-68f8,U+68fb,U+68fd-6900,U+6902-6904,U+6906-690a,U+690c,U+690f,U+6911,U+6913-691e,U+6921-6923,U+6925-692c,U+692e-692f,U+6931-6933,U+6935-6938,U+693a-693c,U+693e,U+6940-6941,U+6943-6953,U+6955-6956,U+6958-6959,U+695b-695c,U+695f,U+6961-6962,U+6964-6965\",\n },\n },\n {\n uri: _87,\n descriptors: {\n unicodeRange:\n \"U+66b8,U+66ba-66bd,U+66bf-66d8,U+66da,U+66de-66e5,U+66e7-66e8,U+66ea-66ef,U+66f1,U+66f5-66f6,U+66f8,U+66fa-66fb,U+66fd,U+6701-6707,U+670c,U+670e-670f,U+6711-6713,U+6716,U+6718-671a,U+671c,U+671e,U+6720-6725,U+6727,U+6729,U+672e,U+6730,U+6732-6733,U+6736-6739,U+673b-673c,U+673e-673f,U+6741,U+6744-6745,U+6747,U+674a-674b,U+674d,U+6752,U+6754-6755,U+6757-675b,U+675d,U+6762-6764,U+6766-6767,U+676b-676c,U+676e,U+6771,U+6774,U+6776,U+6778-677b,U+677d,U+6780,U+6782-6783,U+6785-6786,U+6788,U+678a,U+678c-678f,U+6791-6794,U+6796,U+6799,U+679b,U+679f-67a1,U+67a4,U+67a6,U+67a9,U+67ac,U+67ae,U+67b1-67b2,U+67b4,U+67b9-67c0,U+67c2,U+67c5-67ce,U+67d5-67d7,U+67db,U+67df,U+67e1,U+67e3-67e4,U+67e6-67e8,U+67ea-67eb,U+67ed-67ee,U+67f2,U+67f5-67fc,U+67fe,U+6801-6804,U+6806,U+680d,U+6810,U+6812,U+6814-6815,U+6818-681c,U+681e-6820,U+6822-6828,U+682b-682f\",\n },\n },\n {\n uri: _88,\n descriptors: {\n unicodeRange:\n \"U+6569-656a,U+656d-656f,U+6571,U+6573,U+6575-6576,U+6578-6586,U+6588-658a,U+658d-658f,U+6592,U+6594-6596,U+6598,U+659a,U+659d-659e,U+65a0,U+65a2-65a3,U+65a6,U+65a8,U+65aa,U+65ac,U+65ae,U+65b1-65b8,U+65ba-65bb,U+65be-65c0,U+65c2,U+65c7-65ca,U+65cd,U+65d0-65d1,U+65d3-65d5,U+65d8-65df,U+65e1,U+65e3-65e4,U+65ea-65eb,U+65f2-65f5,U+65f8-65f9,U+65fb-65ff,U+6601,U+6604-6605,U+6607-6609,U+660b,U+660d,U+6610-6612,U+6616-6618,U+661a-661c,U+661e,U+6621-6624,U+6626,U+6629-662c,U+662e,U+6630,U+6632-6633,U+6637-663b,U+663d,U+663f-6640,U+6642,U+6644-664a,U+664d-664e,U+6650-6651,U+6658-6659,U+665b-665e,U+6660,U+6662-6663,U+6665,U+6667,U+6669-666d,U+6671-6673,U+6675,U+6678-6679,U+667b-667d,U+667f-6681,U+6683,U+6685-6686,U+6688-668b,U+668d-6690,U+6692-6695,U+6698-669c,U+669e-66a6,U+66a9-66ad,U+66af-66b3,U+66b5-66b7\",\n },\n },\n {\n uri: _89,\n descriptors: {\n unicodeRange:\n \"U+5f30,U+5f32-5f38,U+5f3b,U+5f3d-5f3f,U+5f41-5f4f,U+5f51,U+5f54,U+5f59-5f5c,U+5f5e-5f60,U+5f63,U+5f65,U+5f67-5f68,U+5f6b,U+5f6e-5f6f,U+5f72,U+5f74-5f76,U+5f78,U+5f7a,U+5f7d-5f7f,U+5f83,U+5f86,U+5f8d-5f8f,U+5f91,U+5f93-5f94,U+5f96,U+5f9a-5f9b,U+5f9d-5fa0,U+5fa2-5fa7,U+5fa9,U+5fab-5fac,U+5faf-5fb4,U+5fb6,U+5fb8-5fbb,U+5fbe-5fc2,U+5fc7-5fc8,U+5fca-5fcb,U+5fce,U+5fd3-5fd5,U+5fda-5fdc,U+5fde-5fdf,U+5fe2-5fe3,U+5fe5-5fe6,U+5fe8-5fe9,U+5fec,U+5fef-5ff0,U+5ff2-5ff4,U+5ff6-5ff7,U+5ff9-5ffa,U+5ffc,U+6007-6009,U+600b-600c,U+6010-6011,U+6013,U+6017-6018,U+601a,U+601e-601f,U+6022-6024,U+602c-602e,U+6030-6034,U+6036-603a,U+603d-603e,U+6040,U+6044-604a,U+604c,U+604e-604f,U+6051,U+6053-6054,U+6056-6058,U+605b-605c,U+605e-6061,U+6065-6066,U+606e,U+6071-6072,U+6074-6075,U+6077,U+607e,U+6080-6082,U+6085-6088,U+608a-608b,U+608e-6091,U+6093,U+6095,U+6097-6099,U+609c,U+609e,U+60a1-60a2,U+60a4-60a5,U+60a7,U+60a9-60aa,U+60ae,U+60b0,U+60b3,U+60b5-60b7,U+60b9-60ba,U+60bd-60c4,U+60c7-60c9,U+60cc\",\n },\n },\n {\n uri: _90,\n descriptors: {\n unicodeRange:\n \"U+635a-635d,U+6360,U+6364-6366,U+6368,U+636a-636c,U+636f-6370,U+6372-6375,U+6378-6379,U+637c-637f,U+6381,U+6383-6386,U+638b,U+638d,U+6391,U+6393-6395,U+6397,U+6399-639f,U+63a1,U+63a4,U+63a6,U+63ab,U+63af,U+63b1-63b2,U+63b5-63b6,U+63b9,U+63bb,U+63bd,U+63bf-63c3,U+63c5,U+63c7-63c8,U+63ca-63cc,U+63d1,U+63d3-63d5,U+63d7-63dd,U+63df,U+63e2,U+63e4-63e8,U+63eb-63ec,U+63ee-63f1,U+63f3,U+63f5,U+63f7,U+63f9-63fc,U+63fe,U+6403-6404,U+6406-640a,U+640d-640e,U+6411-6412,U+6415-641a,U+641d,U+641f,U+6422-6425,U+6427-6429,U+642b,U+642e-6433,U+6435-6439,U+643b-643c,U+643e,U+6440,U+6442-6443,U+6449,U+644b-6451,U+6453,U+6455-6457,U+6459-645d,U+645f-6466,U+6468,U+646a-646c,U+646e-6477,U+647b-6481,U+6483,U+6486,U+6488-648f\",\n },\n },\n {\n uri: _91,\n descriptors: {\n unicodeRange:\n \"U+61c5-61c7,U+61c9,U+61cc-61d0,U+61d3,U+61d5-61e5,U+61e7-61f4,U+61f6-61fe,U+6200-6205,U+6207,U+6209,U+6213-6214,U+6219,U+621c-621e,U+6220,U+6223,U+6226-6229,U+622b,U+622d,U+622f-6232,U+6235-6236,U+6238-623c,U+6242,U+6244-6246,U+624a,U+624f-6250,U+6255-6257,U+6259-625a,U+625c-6262,U+6264-6265,U+6268,U+6271-6272,U+6274-6275,U+6277-6278,U+627a-627b,U+627d,U+6281-6283,U+6285-6288,U+628b-6290,U+6294,U+6299,U+629c-629e,U+62a3,U+62a6-62a7,U+62a9-62aa,U+62ad-62b0,U+62b2-62b4,U+62b6-62b8,U+62ba,U+62be,U+62c0-62c1,U+62c3,U+62cb,U+62cf,U+62d1,U+62d5,U+62dd-62de,U+62e0-62e1,U+62e4,U+62ea-62eb,U+62f0,U+62f2,U+62f5,U+62f8-62fb,U+6300,U+6303-6306,U+630a-630d,U+630f-6310,U+6312-6315,U+6317-6319,U+631c,U+6326-6327,U+6329,U+632c-632e,U+6330-6331,U+6333-6338,U+633b-633c,U+633e-6341,U+6344,U+6347-6348,U+634a,U+6351-6354,U+6356-6359\",\n },\n },\n {\n uri: _92,\n descriptors: {\n unicodeRange:\n \"U+5dd0-5dda,U+5ddc,U+5ddf-5de0,U+5de3-5de4,U+5dea,U+5dec-5ded,U+5df0,U+5df5-5df6,U+5df8-5dfc,U+5dff-5e00,U+5e04,U+5e07,U+5e09-5e0b,U+5e0d-5e0e,U+5e12-5e13,U+5e17,U+5e1e-5e25,U+5e28-5e2c,U+5e2f-5e30,U+5e32-5e36,U+5e39-5e3a,U+5e3e-5e41,U+5e43,U+5e46-5e4b,U+5e4d-5e53,U+5e56-5e5a,U+5e5c-5e5d,U+5e5f-5e60,U+5e63-5e71,U+5e75,U+5e77,U+5e79,U+5e7e,U+5e81-5e83,U+5e85,U+5e88-5e89,U+5e8c-5e8e,U+5e92,U+5e98,U+5e9b,U+5e9d,U+5ea1-5ea4,U+5ea8-5eac,U+5eae-5eb2,U+5eb4,U+5eba-5ebd,U+5ebf-5ec8,U+5ecb-5ed0,U+5ed4-5ed5,U+5ed7-5eda,U+5edc-5ee7,U+5ee9,U+5eeb-5ef3,U+5ef5,U+5ef8-5ef9,U+5efb-5efd,U+5f05-5f07,U+5f09,U+5f0c-5f0e,U+5f10,U+5f12,U+5f14,U+5f16,U+5f19-5f1a,U+5f1c-5f1e,U+5f21-5f24,U+5f28,U+5f2b-5f2c,U+5f2e\",\n },\n },\n {\n uri: _93,\n descriptors: {\n unicodeRange:\n \"U+60cd-60d0,U+60d2-60d4,U+60d6-60d7,U+60d9,U+60db,U+60de,U+60e1-60e5,U+60ea,U+60f1-60f2,U+60f5,U+60f7-60f8,U+60fb-60ff,U+6102-6105,U+6107,U+610a-610c,U+6110-6114,U+6116-6119,U+611b-611e,U+6121-6122,U+6125,U+6128-612a,U+612c-613e,U+6140-6147,U+6149,U+614b,U+614d,U+614f-6150,U+6152-6154,U+6156-615c,U+615e-6161,U+6163-6166,U+6169-616f,U+6171-6174,U+6176,U+6178-618a,U+618c-618d,U+618f-6193,U+6195-619c,U+619e-61a6,U+61aa-61ab,U+61ad-61b6,U+61b8-61bd,U+61bf-61c1,U+61c3-61c4\",\n },\n },\n {\n uri: _94,\n descriptors: {\n unicodeRange:\n \"U+5cf4-5cfa,U+5cfc-5d01,U+5d04-5d05,U+5d08-5d0d,U+5d0f-5d13,U+5d15,U+5d17-5d1a,U+5d1c-5d1d,U+5d1f-5d23,U+5d25,U+5d28,U+5d2a-5d2c,U+5d2f-5d33,U+5d35-5d3c,U+5d3f-5d46,U+5d48-5d49,U+5d4d-5d57,U+5d59-5d5a,U+5d5c,U+5d5e-5d68,U+5d6a,U+5d6d-5d6e,U+5d70-5d73,U+5d75-5d81,U+5d83-5d98,U+5d9a-5d9c,U+5d9e-5db6,U+5db8-5dc4,U+5dc6-5dcc,U+5dce-5dcf\",\n },\n },\n {\n uri: _95,\n descriptors: {\n unicodeRange:\n \"U+5b52,U+5b56,U+5b5e,U+5b60-5b61,U+5b67-5b68,U+5b6b,U+5b6d-5b6f,U+5b72,U+5b74,U+5b76-5b79,U+5b7b-5b7c,U+5b7e-5b7f,U+5b82,U+5b86,U+5b8a,U+5b8d-5b8e,U+5b90-5b92,U+5b94,U+5b96,U+5b9f,U+5ba7-5ba9,U+5bac-5baf,U+5bb1-5bb2,U+5bb7,U+5bba-5bbc,U+5bc0-5bc1,U+5bc3,U+5bc8-5bcb,U+5bcd-5bcf,U+5bd1,U+5bd4-5bdc,U+5be0,U+5be2-5be3,U+5be6-5be7,U+5be9-5bed,U+5bef,U+5bf1-5bf7,U+5bfd-5bfe,U+5c00,U+5c02-5c03,U+5c05,U+5c07-5c08,U+5c0b-5c0e,U+5c10,U+5c12-5c13,U+5c17,U+5c19,U+5c1b,U+5c1e-5c21,U+5c23,U+5c26,U+5c28-5c2b,U+5c2d-5c30,U+5c32-5c33,U+5c35-5c37,U+5c43-5c44,U+5c46-5c47,U+5c4c-5c4d,U+5c52-5c54,U+5c56-5c58,U+5c5a-5c5d,U+5c5f,U+5c62,U+5c64,U+5c67-5c6d,U+5c70,U+5c72-5c78,U+5c7b-5c7e,U+5c80,U+5c83-5c87,U+5c89-5c8b,U+5c8e-5c8f,U+5c92-5c93,U+5c95,U+5c9d-5ca1,U+5ca4-5ca8,U+5caa,U+5cae-5cb0,U+5cb2,U+5cb4,U+5cb6,U+5cb9-5cbc,U+5cbe,U+5cc0,U+5cc2-5cc3,U+5cc5-5cca,U+5ccc-5cd1,U+5cd3-5cd8,U+5cda-5ce0,U+5ce2-5ce3,U+5ce7,U+5ce9,U+5ceb-5cec,U+5cee-5cef,U+5cf1-5cf3\",\n },\n },\n {\n uri: _96,\n descriptors: {\n unicodeRange:\n \"U+593b,U+593d-5940,U+5943,U+5945-5946,U+594a,U+594c-594d,U+5950,U+5952-5953,U+5959,U+595b-595f,U+5961,U+5963-5964,U+5966-5972,U+5975,U+5977,U+597a-597c,U+597e-5980,U+5985,U+5989,U+598b-598c,U+598e-5991,U+5994-5995,U+5998,U+599a-599d,U+599f-59a2,U+59a6-59a7,U+59ac-59ad,U+59b0-59b1,U+59b3-59b8,U+59ba,U+59bc-59bd,U+59bf-59c5,U+59c7-59c9,U+59cc-59cf,U+59d5-59d6,U+59d9,U+59db,U+59de-59e2,U+59e4,U+59e6-59e7,U+59e9-59eb,U+59ed-59f8,U+59fa,U+59fc-59fe,U+5a00,U+5a02,U+5a0a-5a0b,U+5a0d-5a10,U+5a12,U+5a14-5a17,U+5a19-5a1b,U+5a1d-5a1e,U+5a21-5a22,U+5a24,U+5a26-5a28,U+5a2a-5a30,U+5a33,U+5a35,U+5a37-5a3b,U+5a3d-5a3f,U+5a41-5a45,U+5a47-5a48,U+5a4b-5a54,U+5a56-5a59,U+5a5b-5a61,U+5a63-5a66,U+5a68-5a69,U+5a6b-5a73,U+5a78-5a79,U+5a7b-5a7e,U+5a80-5a90\",\n },\n },\n {\n uri: _97,\n descriptors: {\n unicodeRange:\n \"U+5a91,U+5a93-5a99,U+5a9c-5aa9,U+5aab-5ab1,U+5ab4,U+5ab6-5ab7,U+5ab9-5abd,U+5abf-5ac0,U+5ac3-5ac8,U+5aca-5acb,U+5acd-5ad1,U+5ad3,U+5ad5,U+5ad7,U+5ad9-5adb,U+5add-5adf,U+5ae2,U+5ae4-5ae5,U+5ae7-5ae8,U+5aea,U+5aec-5af0,U+5af2-5b08,U+5b0a-5b15,U+5b18-5b31,U+5b33,U+5b35-5b36,U+5b38-5b3f,U+5b41-5b4f\",\n },\n },\n {\n uri: _98,\n descriptors: {\n unicodeRange:\n \"U+5843,U+5845-584b,U+584e-5850,U+5852-5853,U+5855-5857,U+5859-585d,U+585f-5864,U+5866-586a,U+586d-587d,U+587f,U+5882,U+5884,U+5886-5888,U+588a-5891,U+5894-5898,U+589b-589d,U+58a0-58a7,U+58aa-58bb,U+58bd-58c0,U+58c2-58c4,U+58c6-58d0,U+58d2-58d4,U+58d6-58e3,U+58e5-58ea,U+58ed,U+58ef,U+58f1-58f2,U+58f4-58f5,U+58f7-58f8,U+58fa-5901,U+5903,U+5905-5906,U+5908-590c,U+590e,U+5910-5913,U+5917-5918,U+591b,U+591d-591e,U+5920-5923,U+5926,U+5928,U+592c,U+5930,U+5932-5933,U+5935-5936\",\n },\n },\n {\n uri: _99,\n descriptors: {\n unicodeRange:\n \"U+56d0-56d3,U+56d5-56d6,U+56d8-56d9,U+56dc,U+56e3,U+56e5-56ea,U+56ec,U+56ee-56ef,U+56f2-56f3,U+56f6-56f8,U+56fb-56fc,U+5700-5702,U+5705,U+5707,U+570b-571b,U+571d-571e,U+5720-5722,U+5724-5727,U+572b,U+5731-5732,U+5734-5738,U+573c-573d,U+573f,U+5741,U+5743-5746,U+5748-5749,U+574b,U+5752-5756,U+5758-5759,U+5762-5763,U+5765,U+5767,U+576c,U+576e,U+5770-5772,U+5774-5775,U+5778-577a,U+577d-5781,U+5787-578a,U+578d-5791,U+5794-579a,U+579c-579f,U+57a5,U+57a8,U+57aa,U+57ac,U+57af-57b1,U+57b3,U+57b5-57b7,U+57b9-57c1,U+57c4-57ca,U+57cc-57cd,U+57d0-57d1,U+57d3,U+57d6-57d7,U+57db-57dc,U+57de,U+57e1-57e3,U+57e5-57ec,U+57ee,U+57f0-57f3,U+57f5-57f7,U+57fb-57fc,U+57fe-57ff,U+5801,U+5803-5805,U+5808-580a,U+580c,U+580e-5810,U+5812-5814,U+5816-5818,U+581a-581d,U+581f,U+5822-5823,U+5825-5829,U+582b-582f,U+5831-5834,U+5836-5842\",\n },\n },\n {\n uri: _100,\n descriptors: {\n unicodeRange:\n \"U+55f9-55fc,U+55ff,U+5602-5607,U+560a-560b,U+560d,U+5610-5617,U+5619-561a,U+561c-561d,U+5620-5622,U+5625-5626,U+5628-562b,U+562e-5630,U+5633,U+5635,U+5637-5638,U+563a,U+563c-563e,U+5640-564b,U+564f-5653,U+5655-5656,U+565a-565b,U+565d-5661,U+5663,U+5665-5667,U+566d-5670,U+5672-5675,U+5677-567a,U+567d-5684,U+5687-568d,U+5690-5692,U+5694-56a2,U+56a4-56ae,U+56b0-56b6,U+56b8-56bb,U+56bd-56c9,U+56cb-56cf\",\n },\n },\n {\n uri: _101,\n descriptors: {\n unicodeRange:\n \"U+5286-5287,U+5289-528f,U+5291-5292,U+5294-529a,U+529c,U+52a4-52a7,U+52ae-52b0,U+52b4-52bd,U+52c0-52c2,U+52c4-52c6,U+52c8,U+52ca,U+52cc-52cf,U+52d1,U+52d3-52d5,U+52d7,U+52d9-52de,U+52e0-52e3,U+52e5-52ef,U+52f1-52f8,U+52fb-52fd,U+5301-5304,U+5307,U+5309-530c,U+530e,U+5311-5314,U+5318,U+531b-531c,U+531e-531f,U+5322,U+5324-5325,U+5327-5329,U+532b-532d,U+532f-5338,U+533c-533d,U+5340,U+5342,U+5344,U+5346,U+534b-534d,U+5350,U+5354,U+5358-5359,U+535b,U+535d,U+5365,U+5368,U+536a,U+536c-536d,U+5372,U+5376,U+5379,U+537b-537e,U+5380-5381,U+5383,U+5387-5388,U+538a,U+538e-5394,U+5396-5397,U+5399,U+539b-539c,U+539e,U+53a0-53a1,U+53a4,U+53a7,U+53aa-53ad,U+53af-53b5,U+53b7-53ba,U+53bc-53be,U+53c0,U+53c3-53c7,U+53ce-53d0,U+53d2-53d3,U+53d5,U+53da,U+53dc-53de,U+53e1-53e2,U+53e7,U+53f4,U+53fa,U+53fe-5400,U+5402,U+5405,U+5407,U+540b,U+5414,U+5418-541a,U+541c,U+5422,U+5424-5425,U+542a,U+5430,U+5433,U+5436-5437,U+543a\",\n },\n },\n {\n uri: _102,\n descriptors: {\n unicodeRange:\n \"U+5101-5105,U+5108-510a,U+510c-5111,U+5113-5120,U+5122-513e,U+5142,U+5147,U+514a,U+514c,U+514e-5150,U+5152-5153,U+5157-5159,U+515b,U+515d-5161,U+5163-5164,U+5166-5167,U+5169-516a,U+516f,U+5172,U+517a,U+517e-517f,U+5183-5184,U+5186-5187,U+518a-518b,U+518e-5191,U+5193-5194,U+5198,U+519a,U+519d-519f,U+51a1,U+51a3,U+51a6-51aa,U+51ad-51ae,U+51b4,U+51b8-51ba,U+51be-51bf,U+51c1-51c3,U+51c5,U+51c8,U+51ca,U+51cd-51ce,U+51d0,U+51d2-51da,U+51dc,U+51de-51df,U+51e2-51e3,U+51e5-51ea,U+51ec,U+51ee,U+51f1-51f2,U+51f4,U+51f7,U+51fe,U+5204-5205,U+5209,U+520b-520c,U+520f-5210,U+5213-5215,U+521c,U+521e-521f,U+5221-5223,U+5225-5227,U+522a,U+522c,U+522f,U+5231-5232,U+5234-5235,U+523c,U+523e,U+5244-5249,U+524b,U+524e-524f,U+5252-5253,U+5255,U+5257-525b,U+525d,U+525f-5260,U+5262-5264,U+5266,U+5268,U+526b-526e,U+5270-5271,U+5273-527c,U+527e,U+5280,U+5283-5285\",\n },\n },\n {\n uri: _103,\n descriptors: {\n unicodeRange:\n \"U+543d,U+543f,U+5441-5442,U+5444-5445,U+5447,U+5449,U+544c-544f,U+5451,U+545a,U+545d-5461,U+5463,U+5465,U+5467,U+5469-5470,U+5474,U+5479-547a,U+547e-547f,U+5481,U+5483,U+5485,U+5487-548a,U+548d,U+5491,U+5493,U+5497-5498,U+549c,U+549e-54a2,U+54a5,U+54ae,U+54b0,U+54b2,U+54b5-54b7,U+54b9-54ba,U+54bc,U+54be,U+54c3,U+54c5,U+54ca-54cb,U+54d6,U+54d8,U+54db,U+54e0-54e4,U+54eb-54ec,U+54ef-54f1,U+54f4-54f9,U+54fb,U+54fe,U+5500,U+5502-5505,U+5508,U+550a-550e,U+5512-5513,U+5515-551a,U+551c-551f,U+5521,U+5525-5526,U+5528-5529,U+552b,U+552d,U+5532,U+5534-5536,U+5538-553b,U+553d,U+5540,U+5542,U+5545,U+5547-5548,U+554b-554f,U+5551-5554,U+5557-555b,U+555d-5560,U+5562-5563,U+5568-5569,U+556b,U+556f-5574,U+5579-557a,U+557d,U+557f,U+5585-5586,U+558c-558e,U+5590,U+5592-5593,U+5595-5597,U+559a-559b,U+559e,U+55a0-55a6,U+55a8-55b0,U+55b2,U+55b4,U+55b6,U+55b8,U+55ba,U+55bc,U+55bf-55c3,U+55c6-55c8,U+55ca-55cb,U+55ce-55d0,U+55d5,U+55d7-55db,U+55de,U+55e0,U+55e2,U+55e7,U+55e9,U+55ed-55ee,U+55f0-55f1,U+55f4,U+55f6,U+55f8\",\n },\n },\n {\n uri: _104,\n descriptors: {\n unicodeRange:\n \"U+4fe0,U+4fe2,U+4fe4-4fe5,U+4fe7,U+4feb-4fec,U+4ff0,U+4ff2,U+4ff4-4ff7,U+4ff9,U+4ffb-4ffd,U+4fff-500b,U+500e,U+5010-5011,U+5013,U+5015-5017,U+501b,U+501d-501e,U+5020,U+5022-5024,U+5027,U+502b,U+502f-5039,U+503b,U+503d,U+503f-5042,U+5044-5046,U+5049-504b,U+504d,U+5050-5054,U+5056-5059,U+505b,U+505d-5064,U+5066-506b,U+506d-5075,U+5078-507a,U+507c-507d,U+5081-5084,U+5086-5087,U+5089-508c,U+508e-50a2,U+50a4,U+50a6,U+50aa-50ab,U+50ad-50b1,U+50b3-50b9,U+50bc-50ce,U+50d0-50d5,U+50d7-50d9,U+50db-50e5,U+50e8-50eb,U+50ef-50f2,U+50f4,U+50f6-50fa,U+50fc-5100\",\n },\n },\n { uri: _105, descriptors: { unicodeRange: \"U+49d5-4a77\" } },\n {\n uri: _106,\n descriptors: {\n unicodeRange:\n \"U+4dac-4dad,U+4daf-4db5,U+4e02,U+4e04-4e06,U+4e0f,U+4e12,U+4e17,U+4e1f-4e21,U+4e23,U+4e26,U+4e29,U+4e2e-4e2f,U+4e31,U+4e33,U+4e35,U+4e37,U+4e3c,U+4e40-4e42,U+4e44,U+4e46,U+4e4a,U+4e51,U+4e55,U+4e57,U+4e5a-4e5b,U+4e62-4e65,U+4e67-4e68,U+4e6a-4e6f,U+4e72,U+4e74-4e7d,U+4e7f-4e85,U+4e87,U+4e8a,U+4e90,U+4e96-4e97,U+4e99,U+4e9c-4e9e,U+4ea3,U+4eaa,U+4eaf-4eb1,U+4eb4,U+4eb6-4eb9,U+4ebc-4ebe,U+4ec8,U+4ecc,U+4ecf-4ed0,U+4ed2,U+4eda-4edc,U+4ee0,U+4ee2,U+4ee6-4ee7,U+4ee9,U+4eed-4eef,U+4ef1,U+4ef4,U+4ef8-4efa,U+4efc,U+4efe,U+4f00,U+4f02-4f08,U+4f0b-4f0c,U+4f12-4f16,U+4f1c-4f1d,U+4f21,U+4f23,U+4f28-4f29,U+4f2c-4f2e,U+4f31,U+4f33,U+4f35,U+4f37,U+4f39,U+4f3b,U+4f3e-4f42,U+4f44-4f45,U+4f47-4f4c,U+4f52,U+4f54,U+4f56,U+4f61-4f62,U+4f66,U+4f68,U+4f6a-4f6b,U+4f6d-4f6e,U+4f71-4f72,U+4f75,U+4f77-4f7a,U+4f7d,U+4f80-4f82,U+4f85-4f87,U+4f8a,U+4f8c,U+4f8e,U+4f90,U+4f92-4f93,U+4f95-4f96,U+4f98-4f9a,U+4f9c,U+4f9e-4f9f,U+4fa1-4fa2,U+4fa4,U+4fab,U+4fad,U+4fb0-4fb4,U+4fb6-4fbe,U+4fc0-4fc2,U+4fc6-4fc9,U+4fcb-4fcd,U+4fd2-4fd6,U+4fd9,U+4fdb\",\n },\n },\n { uri: _107, descriptors: { unicodeRange: \"U+4933-49d4\" } },\n { uri: _108, descriptors: { unicodeRange: \"U+487a-4932\" } },\n {\n uri: _109,\n descriptors: { unicodeRange: \"U+47d2-4879,U+2ce7c,U+2ce88,U+2ce93\" },\n },\n {\n uri: _110,\n descriptors: {\n unicodeRange:\n \"U+4756-47d1,U+2ca02,U+2ca0e,U+2ca7d,U+2caa9,U+2cb29,U+2cb2e,U+2cb31,U+2cb38-2cb39,U+2cb3f,U+2cb41,U+2cb4e,U+2cb5a,U+2cb64,U+2cb69,U+2cb6c,U+2cb6f,U+2cb76,U+2cb78,U+2cb7c,U+2cbb1,U+2cbbf-2cbc0,U+2cbce,U+2cc5f,U+2ccf5-2ccf6,U+2ccfd,U+2ccff,U+2cd02-2cd03,U+2cd0a,U+2cd8b,U+2cd8d,U+2cd8f-2cd90,U+2cd9f-2cda0,U+2cda8,U+2cdad-2cdae,U+2cdd5,U+2ce18,U+2ce1a,U+2ce23,U+2ce26,U+2ce2a\",\n },\n },\n {\n uri: _111,\n descriptors: {\n unicodeRange:\n \"U+46c3-4755,U+2c488,U+2c494,U+2c497,U+2c542,U+2c613,U+2c618,U+2c621,U+2c629,U+2c62b-2c62d,U+2c62f,U+2c642,U+2c64a-2c64b,U+2c72c,U+2c72f,U+2c79f,U+2c7c1,U+2c7fd,U+2c8d9,U+2c8de,U+2c8e1,U+2c8f3,U+2c907,U+2c90a,U+2c91d\",\n },\n },\n {\n uri: _112,\n descriptors: {\n unicodeRange:\n \"U+4629-46c2,U+2bdf7,U+2be29,U+2c029-2c02a,U+2c0a9,U+2c0ca,U+2c1d5,U+2c1d9,U+2c1f9,U+2c27c,U+2c288,U+2c2a4,U+2c317,U+2c35b,U+2c361,U+2c364\",\n },\n },\n {\n uri: _113,\n descriptors: {\n unicodeRange:\n \"U+458e-4628,U+2b7a9,U+2b7c5,U+2b7e6,U+2b7f9,U+2b806,U+2b80a,U+2b81c,U+2b8b8,U+2bac7,U+2bb5f,U+2bb62,U+2bb7c,U+2bb83,U+2bc1b,U+2bd77,U+2bd87\",\n },\n },\n {\n uri: _114,\n descriptors: {\n unicodeRange: \"U+4449-4511,U+2afa2,U+2b127-2b128,U+2b137-2b138,U+2b1ed\",\n },\n },\n {\n uri: _115,\n descriptors: {\n unicodeRange:\n \"U+439b-4448,U+2a437,U+2a5f1,U+2a602,U+2a61a,U+2a6b2,U+2a7dd,U+2a8fb,U+2a917,U+2aa30,U+2aa36,U+2aa58\",\n },\n },\n {\n uri: _116,\n descriptors: {\n unicodeRange:\n \"U+4275-430d,U+298c6,U+29a72,U+29d98,U+29ddb,U+29e15,U+29e3d,U+29e49\",\n },\n },\n {\n uri: _117,\n descriptors: {\n unicodeRange:\n \"U+4132-41de,U+28bef,U+28c47,U+28c4f,U+28c51,U+28c54,U+28d10,U+28d71,U+28dfb,U+28e1f,U+28e36,U+28e89,U+28e99,U+28eeb,U+28f32,U+28ff8,U+292a0\",\n },\n },\n {\n uri: _118,\n descriptors: {\n unicodeRange:\n \"U+41df-4274,U+292b1,U+29490,U+295cf,U+2967f,U+296f0,U+29719,U+29750\",\n },\n },\n {\n uri: _119,\n descriptors: {\n unicodeRange:\n \"U+408e-4131,U+285c8-285c9,U+28678,U+28695,U+286d7,U+286fa,U+287e0,U+28946,U+28949,U+2896b,U+28987-28988,U+289ba-289bb,U+28a1e,U+28a29,U+28a43,U+28a71,U+28a99,U+28acd,U+28add,U+28ae4,U+28b49,U+28bc1\",\n },\n },\n {\n uri: _120,\n descriptors: {\n unicodeRange:\n \"U+3e83-3f2f,U+27139,U+273da-273db,U+273fe,U+27410,U+27449,U+27614-27615,U+27631,U+27684,U+27693,U+2770e,U+27723,U+27752\",\n },\n },\n {\n uri: _121,\n descriptors: {\n unicodeRange:\n \"U+3f30-3fdb,U+27985,U+27a84,U+27bb3,U+27bbe,U+27bc7,U+27cb8,U+27da0,U+27e10\",\n },\n },\n {\n uri: _122,\n descriptors: {\n unicodeRange:\n \"U+3fdc-408d,U+27fb7,U+27ff9,U+2808a,U+280bb,U+2815d,U+28277,U+28282,U+282e2,U+282f3,U+283cd,U+28408,U+2840c,U+28455,U+28468,U+2856b\",\n },\n },\n {\n uri: _123,\n descriptors: {\n unicodeRange:\n \"U+3dd2-3e82,U+26a58,U+26a8c,U+26ab7,U+26aff,U+26b5c,U+26c21,U+26c29,U+26c73,U+26cdd,U+26e40,U+26e65,U+26f94,U+26ff6-26ff8,U+270f4,U+2710d\",\n },\n },\n {\n uri: _124,\n descriptors: {\n unicodeRange:\n \"U+3d34-3dd1,U+2648d,U+26676,U+2667e,U+266b0,U+2671d,U+2677c,U+267cc,U+268dd,U+268ea,U+26951,U+2696f,U+269dd,U+269fa,U+26a1e\",\n },\n },\n {\n uri: _125,\n descriptors: {\n unicodeRange:\n \"U+3c76-3d33,U+25d0a,U+25da1,U+25e2e,U+25e56,U+25e62,U+25e65,U+25ec2,U+25ed7-25ed8,U+25ee8,U+25f23,U+25f5c,U+25fd4,U+25fe0,U+25ffb,U+2600c,U+26017,U+26060,U+260ed,U+26221,U+26270,U+26286,U+2634c,U+26402\",\n },\n },\n {\n uri: _126,\n descriptors: {\n unicodeRange:\n \"U+3bda-3c75,U+25771,U+257a9,U+257b4,U+259c4,U+259d4,U+25ae3-25ae4,U+25af1,U+25bb2,U+25c14,U+25c4b,U+25c64\",\n },\n },\n {\n uri: _127,\n descriptors: {\n unicodeRange:\n \"U+3b25-3bd9,U+2504a,U+25055,U+25122,U+2512b,U+251a9,U+251cd,U+251e5,U+2521e,U+2524c,U+2542e,U+2548e,U+254d9,U+2550e,U+25532,U+25562,U+255a7-255a8\",\n },\n },\n {\n uri: _128,\n descriptors: {\n unicodeRange:\n \"U+3a6b-3b24,U+24896,U+249db,U+24a4d,U+24a7d,U+24ac9,U+24b56,U+24b6f,U+24c16,U+24d14,U+24dea,U+24e0e,U+24e37,U+24e6a,U+24e8b,U+24eaa\",\n },\n },\n {\n uri: _129,\n descriptors: {\n unicodeRange:\n \"U+39a9-3a6a,U+24096,U+24103,U+241ac,U+241c6,U+241fe,U+243bc,U+243f8,U+244d3,U+24629,U+246a5,U+247f1\",\n },\n },\n {\n uri: _130,\n descriptors: {\n unicodeRange:\n \"U+38e3-39a8,U+23a98,U+23c7f,U+23c97-23c98,U+23cfe,U+23d00,U+23d0e,U+23d40,U+23dd3,U+23df9-23dfa,U+23e23,U+23f7e\",\n },\n },\n {\n uri: _131,\n descriptors: {\n unicodeRange:\n \"U+3760-382a,U+22ab8,U+22b43,U+22b46,U+22b4f-22b50,U+22ba6,U+22bca,U+22c1d,U+22c24,U+22c55,U+22d4c,U+22de1\",\n },\n },\n {\n uri: _132,\n descriptors: {\n unicodeRange:\n \"U+382b-38e2,U+231b6,U+231c3-231c4,U+231f5,U+23350,U+23372,U+233d0,U+233d2-233d3,U+233d5,U+233da,U+233df,U+233e4,U+2344a-2344b,U+23451,U+23465,U+234e4,U+2355a,U+23594,U+235c4,U+235cb,U+23638-2363a,U+23647,U+2370c,U+2371c,U+2373f,U+23763-23764,U+237e7,U+237ff,U+23824,U+2383d\",\n },\n },\n {\n uri: _133,\n descriptors: {\n unicodeRange:\n \"U+3698-375f,U+22218,U+2231e,U+223ad,U+224dc,U+226f3,U+2285b,U+228ab,U+2298f\",\n },\n },\n {\n uri: _134,\n descriptors: {\n unicodeRange:\n \"U+35e6-3697,U+21c56,U+21cde,U+21d2d,U+21d45,U+21d62,U+21d78,U+21d92,U+21d9c,U+21da1,U+21db7,U+21de0,U+21e33-21e34,U+21f1e,U+21f76,U+21ffa,U+2217b\",\n },\n },\n {\n uri: _135,\n descriptors: {\n unicodeRange:\n \"U+3444-350e,U+20ad3,U+20b1d,U+20b9f,U+20c41,U+20cbf,U+20cd0,U+20d45,U+20de1,U+20e64,U+20e6d,U+20e95,U+20e9d,U+20ea2,U+20f5f,U+210c1,U+21201,U+2123d,U+21255,U+21274,U+2127b\",\n },\n },\n {\n uri: _136,\n descriptors: {\n unicodeRange:\n \"U+350f-35e5,U+212d7,U+212e4,U+212fd,U+2131b,U+21336,U+21344,U+2139a,U+213c4,U+21413,U+2146d-2146e,U+215d7,U+21647,U+216b4,U+21706,U+21742,U+218bd,U+219c3\",\n },\n },\n {\n uri: _137,\n descriptors: {\n unicodeRange:\n \"U+336d-3443,U+2032b,U+20371,U+20381,U+203f9,U+2044a,U+20509,U+20547,U+205d6,U+20628,U+20676,U+2074f,U+20779,U+20807,U+2083a,U+20895,U+208b9,U+2097c,U+2099d\",\n },\n },\n {\n uri: _138,\n descriptors: {\n unicodeRange:\n \"U+328b-336c,U+2000b,U+20089,U+200a2,U+200a4,U+20164,U+201a2,U+20213\",\n },\n },\n {\n uri: _139,\n descriptors: {\n unicodeRange:\n \"U+3192-31ba,U+31c0-31e3,U+31f0-321e,U+3220-328a,U+1f250-1f251\",\n },\n },\n {\n uri: _140,\n descriptors: {\n unicodeRange:\n \"U+2f74-2fd5,U+3000,U+3003-3007,U+3012-3013,U+3018-301c,U+3020-3029,U+302f-303f,U+3041-3096,U+3099-30a1\",\n },\n },\n {\n uri: _141,\n descriptors: {\n unicodeRange: \"U+30a2-30ff,U+3105-312f,U+3131-318e,U+3190-3191\",\n },\n },\n {\n uri: _142,\n descriptors: {\n unicodeRange:\n \"U+4e36,U+4ea0,U+4f74,U+4f91,U+4f94,U+4fc5,U+507e,U+50ed,U+5182,U+51f5,U+525e,U+5282,U+52f9,U+5326,U+537a,U+53a3,U+5423,U+5459,U+54b4,U+54d9,U+55c9,U+57f4,U+580b,U+5902,U+5925,U+5a08,U+5ab5,U+5b84,U+5be4,U+5c22,U+5cb5,U+5cbd,U+5d3e,U+5e31,U+5e5e,U+5e80,U+5ee8,U+5f82,U+5fc9,U+5fed,U+600a,U+605d,U+609b,U+609d,U+60dd,U+6243,U+6322,U+63ce,U+640c,U+643f,U+6445,U+64d7,U+6534,U+6549,U+656b,U+6603,U+674c,U+680a,U+6864,U+69d4,U+6a65,U+6c2a,U+6c46,U+6c5c,U+6d0e,U+6d48,U+6e2b,U+6eb2,U+6eb7,U+6f89,U+706c,U+70b1,U+7113,U+71d4,U+727f,U+72f3,U+7303,U+7321,U+736c,U+736f,U+74a9,U+74de,U+750d,U+7513,U+7592,U+75c4,U+7605,U+760a,U+761b,U+7625,U+762d,U+7643,U+7707,U+7747,U+77b5,U+7839,U+784e,U+78a5,U+7924,U+793b,U+798a,U+7a03,U+7a06,U+7a78,U+7a80,U+7aad,U+7ba8,U+7be5,U+7cc8,U+7ec1,U+7f0b,U+7f0f,U+7f12,U+7f68,U+7f9d,U+8025,U+809c,U+80ad,U+80b7,U+80e8,U+811e,U+8204,U+8223,U+822d,U+823b,U+824b,U+825a,U+827d,U+827f,U+828f,U+82c8,U+8307,U+831b,U+8347,U+837d,U+839b,U+83a9,U+83f9,U+84b9,U+8579,U+864d,U+867f,U+86b0,U+86d1,U+86d8,U+86f2,U+8764,U+8770,U+8788,U+8797,U+87ac-87ad,U+87b5,U+881b,U+8844,U+88bc,U+88fc,U+8930,U+89cf,U+89d6,U+8ba0,U+8bd4,U+8c02,U+8c2b,U+8c85,U+8e23,U+8f81-8f82,U+8fd5,U+90b6,U+90db,U+914e,U+9164,U+91ad,U+943e,U+94b7-94b8,U+94eb,U+950d,U+9514,U+9516,U+9518,U+9529,U+9538,U+953f,U+954e,U+955f,U+95fc,U+9667,U+96b3,U+9792,U+97b2,U+98a1,U+9969,U+9987,U+9998,U+9a80,U+9a92,U+9a96,U+9adf,U+9cb4,U+9cbd,U+9cd0,U+9cd4,U+9e31,U+9e3a,U+9e71,U+9ee5,U+9eea,U+9ef9,U+9fa0\",\n },\n },\n {\n uri: _143,\n descriptors: {\n unicodeRange:\n \"U+4e0c,U+4e28,U+4e3f,U+4ec2,U+502e,U+50ba,U+5155,U+5181,U+522d,U+5281,U+5290,U+5369,U+53b6,U+54d5,U+54dc,U+54ff,U+552a,U+553c,U+5588,U+55b5,U+5686,U+570a,U+5776,U+5786,U+57a4,U+5820,U+5865,U+58bc,U+5b32,U+5b65,U+5c1c,U+5c66,U+5c6e,U+5c8d,U+5ddb,U+5f2a,U+5f50,U+5f61,U+6067,U+614a,U+615d,U+619d,U+61d4,U+620b,U+6224-6225,U+6343,U+63ad,U+63f2,U+640b,U+6420,U+6434,U+6496,U+64d0,U+6509,U+652e,U+67a8,U+6833,U+6844,U+684a,U+6920,U+6957,U+6971,U+6a8e,U+6a91,U+6aa0,U+6b43,U+6bea,U+6bf5,U+6c15,U+6cd0,U+6ee0,U+6f24,U+6f2d,U+70c0,U+721d,U+728b,U+72c3,U+72e8,U+730a,U+7338-7339,U+734d,U+746d,U+752f,U+754e,U+770d,U+7735,U+778d,U+77a2,U+77e7,U+7857,U+786d,U+78c9,U+78f2,U+791e,U+7953,U+7b58,U+7b9d,U+7bda,U+7cd7,U+7f32-7f33,U+8022,U+8028-8029,U+8035,U+804d,U+8080,U+80c2,U+80e9,U+80ec,U+80f2,U+810e,U+8221,U+8274,U+82b0,U+82e0,U+83b0,U+8487-8488,U+848e,U+84cd,U+84d0,U+8539,U+857a,U+85a8,U+85b7,U+867c,U+871e,U+8723,U+877e,U+878b,U+8793,U+8803,U+88d2,U+8966,U+89cc,U+89eb,U+8b26,U+8c8a,U+8c98,U+8d33,U+8d47,U+8d55,U+8dbc,U+8e40,U+8e94,U+8f77,U+8f79,U+9058,U+91a2,U+91b5,U+928e,U+9494,U+94b6,U+94de,U+94f4,U+94f9,U+950a,U+950e,U+951e,U+952b,U+953c,U+953e,U+9544,U+9561,U+9564,U+9569,U+95f6,U+9603,U+960d,U+963d,U+9674,U+9794,U+97ab,U+98a5,U+9a9f,U+9ab1,U+9ad1,U+9b0f,U+9b2f,U+9c92,U+9c95,U+9cba,U+9cbc,U+9cc6,U+9ccb,U+9cd8,U+9e32,U+9e38,U+9e5b,U+9e7e,U+9eb4,U+9efb-9efc,U+9f3d\",\n },\n },\n {\n uri: _144,\n descriptors: {\n unicodeRange: \"U+2e3b,U+2e80-2e99,U+2e9b-2ef3,U+2f00-2f73,U+ffffd\",\n },\n },\n {\n uri: _145,\n descriptors: {\n unicodeRange:\n \"U+4e69,U+4f1b,U+4f67,U+4f7e,U+4fdc,U+50e6,U+5196,U+5202,U+5233,U+523f,U+52a2,U+536e,U+5476,U+54ad,U+54cf,U+5537,U+561e,U+56dd,U+56df,U+5709,U+572c,U+57cf,U+57f8,U+580d,U+5881,U+589a,U+5941,U+59b2,U+5c25,U+5d24,U+5d74,U+5e42,U+5e8b,U+5eb3,U+5ed2,U+5fad,U+6003,U+603c,U+6083,U+6100,U+6126,U+6206,U+62ca,U+638e,U+63b4,U+6426,U+646d,U+6535,U+65c4,U+66db,U+6715,U+6769,U+6798,U+67c3,U+6861,U+698d,U+69ca,U+69ed,U+69f2,U+69ff,U+6a18,U+6b39,U+6bb3,U+6c0d,U+6cb2,U+6cd6,U+6cf7,U+6cfa,U+6d33,U+6e16,U+6e53-6e54,U+6ebb,U+6fb6,U+709d,U+72ad,U+72f7,U+72fb,U+7313,U+739f,U+74ba,U+754b,U+755b,U+758b,U+75ac,U+75d6,U+7617,U+7635,U+7640,U+76a4,U+76b2,U+775a,U+77bd,U+781f,U+79b3,U+7b2b,U+7b31,U+7b3e,U+7b6e,U+7b9c,U+7c0b,U+7c9e,U+7cc1,U+7ce8,U+7ea5,U+7f21,U+7f27,U+7f74,U+7fb0,U+8031,U+8071,U+80ea,U+8114,U+8160,U+81a6,U+81c1,U+829f,U+82a4,U+82fb,U+831a,U+8333,U+836c,U+83b6,U+83f8,U+8411,U+841c,U+8489,U+848c,U+85a4,U+8627,U+8629,U+866e,U+86b5,U+872e,U+8731,U+877b,U+877d,U+87ea,U+8813,U+8816,U+8864,U+88ce,U+88e5,U+897b,U+89cb,U+89f3,U+8bfc,U+8c35,U+8d46,U+8d4d,U+8dba,U+8e3a,U+8f75,U+8f7e,U+8fd3,U+9161,U+9179,U+917e,U+91a3,U+94ac,U+94d7,U+94e5,U+952a,U+952c,U+9545,U+9565,U+9568,U+956a,U+961d,U+96e0,U+972a,U+9730,U+989f,U+98e7,U+990d,U+9967,U+9993,U+9aa3,U+9ac0,U+9ae1,U+9aeb,U+9af9,U+9c86,U+9c8b,U+9ca0-9ca1,U+9ca3,U+9ce2,U+9e48,U+9e6a,U+9e87,U+9ee2,U+9ee9,U+9f17,U+9f19,U+9f2c,U+9f80\",\n },\n },\n {\n uri: _146,\n descriptors: {\n unicodeRange:\n \"U+4ef3,U+50d6,U+50ec,U+51ab,U+51b1,U+52d6,U+54a9,U+54da,U+55be,U+55cd,U+564d,U+572f,U+574c,U+576b,U+57d8,U+57fd,U+5844,U+59d2,U+5ae0,U+5b16,U+5b37,U+5b5b,U+5b80,U+5d1e,U+5d6b,U+5efe,U+5f11,U+5f56,U+5f58,U+5f73,U+5f8c,U+5fc4,U+5fe4,U+602b,U+6106,U+610d,U+63de,U+63f8,U+641b,U+64e4,U+6634,U+676a,U+67b5,U+681d,U+6883,U+69b1,U+69e0,U+6b37,U+6b9b,U+6d7c,U+6ed7,U+6f36,U+6f72,U+6f8c,U+7035,U+7039,U+7173,U+7178,U+7228,U+728f,U+72b4,U+72ef,U+72f4,U+7331,U+7481,U+74e0,U+7540,U+75c3,U+75e6,U+763c,U+764d,U+76cd,U+7704,U+7743,U+7780,U+7847,U+786a,U+78b9,U+7962,U+7a02,U+7aac,U+7ab3,U+7b0a,U+7b4c,U+7b7b,U+7bfc,U+7c0f,U+7c16,U+7c40,U+7ca2,U+7cc7,U+7cf8,U+7d77,U+7e3b,U+7ea1,U+7ea9,U+7ef2,U+7f02,U+7f07,U+7f0c,U+7f23,U+7f2f,U+7fbc,U+8016,U+8020,U+812c,U+8136,U+8182,U+822f,U+8233,U+825f,U+8268,U+8284,U+8288,U+8291,U+8308,U+8311,U+835b,U+836d,U+83dd,U+8406,U+840f,U+845c,U+84b4,U+84e3,U+850c,U+855e,U+863c,U+86ba,U+86c4,U+86de,U+86f1,U+873e,U+87bd,U+87db,U+880a,U+883c,U+887f,U+88f0,U+890a,U+892b,U+895e,U+89ef,U+8a48,U+8bdc,U+8c18,U+8c33,U+8c94,U+8db1,U+8dcf,U+8dd6,U+8de3,U+8e6f,U+8e90,U+8f7a,U+8fb6,U+902d,U+90be,U+91af,U+936a,U+948b,U+94d8,U+9513,U+953a,U+956c,U+963c,U+9654,U+966c,U+9688,U+97b4,U+996b,U+9a75,U+9a7a,U+9aba,U+9aed,U+9b08,U+9b43,U+9c8e,U+9c94,U+9c9a,U+9e2b,U+9e36,U+9e4b,U+9e4e,U+9e55,U+9e63,U+9e68-9e69,U+9ebd,U+9ec9,U+9f0d,U+9f37,U+9f51\",\n },\n },\n {\n uri: _147,\n descriptors: {\n unicodeRange:\n \"U+50a7,U+5240,U+5261,U+52ac,U+531a,U+5363,U+5432,U+5452,U+5456,U+5472,U+5478,U+553f,U+5575,U+5581,U+55cc,U+55fe,U+5601,U+572e,U+57d2,U+57ef,U+581e,U+5924,U+5981,U+5997,U+59a3,U+5aaa,U+5ab8,U+5b34,U+5d5d,U+5def,U+5e11,U+5e91,U+5ed1,U+5ef4,U+5f40,U+600d,U+6019,U+601b,U+605a,U+6092,U+60ab,U+6217,U+623d,U+6369,U+65d2,U+6661,U+670a,U+6753,U+67a7,U+6855,U+68f9,U+6939,U+696e,U+6980,U+6a7c,U+6aab,U+6b82,U+6bf3,U+6bf9,U+6c05,U+6c19-6c1a,U+6ca9,U+6cf6,U+6d1a,U+6dab,U+6f74,U+7085,U+7198,U+71b5,U+7256,U+725d,U+727e,U+72fa,U+7322,U+738e,U+73e5,U+750f,U+755a,U+7594,U+75b3,U+760c,U+7615,U+7630,U+763f,U+77ec,U+7817,U+78a1,U+78d9,U+7905,U+7b2a,U+7b2e,U+7b62,U+7b85,U+7bcc,U+7bea,U+7c26,U+7c74,U+7c9c-7c9d,U+7e47,U+7e9b,U+7e9f,U+7ee0,U+7ee8,U+7ef1,U+7f01,U+7f11,U+7f17,U+7f36,U+7f7e,U+7fee,U+802a,U+80cd,U+8112,U+8169,U+8234,U+8279,U+8298,U+82ca,U+82d8,U+82e1,U+83c0,U+83d4,U+83df,U+8401,U+8451,U+845a,U+8476,U+8478,U+84ba,U+84bd,U+84e0,U+851f,U+8548,U+8556,U+8585,U+868d,U+86e9,U+86f4,U+86f8,U+8765,U+8785,U+87ab,U+87ee,U+8832,U+8872,U+88b7,U+88e2-88e3,U+89da,U+8bce,U+8bd3,U+8bd6,U+8bf9,U+8c16,U+8c73,U+8d5c,U+8dde,U+8f6d,U+8f94,U+8fe8,U+9011,U+915e,U+9185,U+918c,U+94ab,U+94d1,U+94f3,U+9515,U+951d,U+9558,U+9567,U+96ce,U+96e9,U+9785,U+9878,U+987c,U+9883,U+98d1,U+9954,U+9963,U+9a93,U+9ac1,U+9acc,U+9b1f,U+9b49,U+9b4d,U+9b51,U+9ca7,U+9cae,U+9cce,U+9cd3,U+9e37,U+9e39,U+9e41,U+9e46,U+9f22,U+9f2f,U+9f39,U+9f85\",\n },\n },\n {\n uri: _148,\n descriptors: {\n unicodeRange:\n \"U+4e5c,U+4edf,U+4f25,U+4f32,U+4f5e,U+4f76,U+4faa,U+4fe6,U+5028,U+5048,U+5250,U+535f,U+538d,U+53c1,U+5412,U+5443,U+54d4,U+54dd,U+5541,U+5550,U+5577,U+55dd,U+55f3,U+560f,U+562c,U+5657-5658,U+5664,U+56af,U+575c,U+577c,U+57b2,U+57da,U+5800,U+5a62,U+5aeb,U+5c3b,U+5ca3,U+5d26,U+5d9d,U+5f01,U+5fb5,U+5fdd,U+5ff8,U+6029,U+6041,U+6079,U+60b1,U+6222,U+629f,U+6332,U+63bc,U+63e0,U+6485,U+65ab,U+65c3,U+65c6,U+668c,U+669d,U+66be,U+67fd,U+6800,U+68fc,U+690b,U+6924,U+6978,U+69a7,U+6a3e,U+6a50,U+6a5b,U+6a97,U+6b24,U+6b8d,U+6baa,U+6c10,U+6c54,U+6ceb,U+6d04,U+6d4d,U+6eb1,U+6ebd,U+7110,U+71b3,U+71f9,U+7230,U+728d,U+7292,U+72b8,U+72d2,U+7360,U+73a2,U+7511,U+75a0,U+75c8,U+779f,U+7826,U+7877,U+7a39,U+7aa8,U+7ae6,U+7b04,U+7b0f,U+7baa,U+7bac,U+7c1f,U+7ccd,U+7ecb,U+7ed4,U+7ed7,U+7efb,U+7f0d,U+7f5f,U+7faf,U+7fd5,U+7fe5,U+8027,U+80bc,U+80dd,U+80fc,U+8132,U+815a,U+8167,U+816d,U+81ca,U+8228,U+82a1,U+82a9,U+82ab,U+82cc,U+8351,U+8368,U+83b8,U+83d8,U+83ea,U+83f0,U+8497,U+84c1,U+858f,U+85ff,U+867b,U+86a8-86a9,U+870a,U+8722,U+876e,U+877c,U+87e5,U+8888,U+88df,U+8919,U+8bcc,U+8bdf,U+8be8,U+8bee,U+8c20,U+8c2f,U+8d36,U+8df8,U+8e05,U+8e2f,U+8f9a,U+9021,U+908b,U+90b4,U+90ba,U+90d0,U+90eb,U+90fe,U+91aa,U+933e,U+9486-9487,U+948d,U+9490,U+94ad,U+94bd,U+94d6,U+94d9,U+9507,U+9546,U+955e,U+956b,U+95e9,U+9604,U+960b,U+9612,U+9615,U+9617,U+96b9,U+989a-989b,U+989e,U+9a78,U+9a7d,U+9aa0,U+9aa2,U+9ac2,U+9b23,U+9b3b,U+9c82,U+9cca,U+9cd9,U+9e28,U+9e5a,U+9e5e,U+9e6c,U+9efe,U+9f0b\",\n },\n },\n {\n uri: _149,\n descriptors: {\n unicodeRange:\n \"U+4e47,U+4e8d,U+4f65,U+4f89,U+50ee,U+520e,U+5416,U+5454,U+54bb,U+54c2,U+54d3,U+54de,U+5591,U+55e5,U+560c,U+566b,U+5769,U+578c,U+5793,U+57e4,U+5889,U+593c,U+59ab,U+5ad4,U+5ad8,U+5af1,U+5b53,U+5ba5,U+5c59,U+5c63,U+5d5b,U+5e0f,U+5e14,U+5edb,U+5fbc,U+6004,U+60ad,U+610e,U+61b7,U+624c,U+634c,U+647a,U+64ba,U+65f0,U+6600,U+66f7,U+67e2,U+67f0,U+680c,U+686b,U+6874,U+691f,U+6989,U+6a17,U+6b81,U+6b84,U+6c06-6c07,U+6c3d,U+6d07,U+6d27,U+6d2b,U+6d91,U+6e6b,U+6e8f,U+6fde,U+70bb,U+723b,U+726e,U+72b0,U+72ce,U+72f2,U+7301,U+731e,U+737e,U+7477,U+748e,U+74ff,U+7633,U+7654,U+771a,U+7726,U+7765,U+7768,U+781c,U+7829,U+78d4,U+7913,U+7957,U+79d5,U+79eb,U+7a70,U+7a86,U+7b25,U+7b38,U+7b47,U+7b72,U+7ba6-7ba7,U+7dae,U+7ee1,U+7efe,U+7f26,U+7f31,U+7f35,U+801c,U+8043,U+809f,U+80ab,U+80d7,U+8118,U+8188,U+81cc,U+823e,U+8244,U+824f,U+82b4,U+82c1,U+82e4,U+82f4,U+8306,U+833a,U+835c,U+839c,U+83b3,U+83bc,U+846d,U+867a,U+868b,U+8734,U+87ca,U+886e,U+887e,U+88a2,U+88c9,U+8921,U+8bb5,U+8bf3,U+8c04,U+8c17,U+8c1d,U+8c25,U+8c36,U+8c55,U+8c78,U+8d3d,U+8d40,U+8d59,U+8d67,U+8d91,U+8dbf,U+8deb-8dec,U+8dfd,U+8e14,U+8e41,U+8f8e,U+900b,U+9044,U+9062,U+90cf,U+9123,U+9146,U+9162,U+9172,U+918d,U+9190,U+92c8,U+93ca,U+948c,U+94aa,U+94b2,U+94c8,U+94ca,U+94d5,U+94df,U+94e9-94ea,U+94f7,U+94fc-94fd,U+951b,U+954f,U+9554,U+9559,U+9566,U+9571-9572,U+95f1,U+9608,U+960f,U+97af,U+988f,U+98d5,U+992e,U+9955,U+9ab0,U+9b32,U+9c90,U+9c9e,U+9ca5,U+9ca9,U+9cad,U+9cb1,U+9cc3,U+9e47,U+9ee7,U+9f87\",\n },\n },\n {\n uri: _150,\n descriptors: {\n unicodeRange:\n \"U+4e93,U+4ec4,U+4ef5,U+4f27,U+4f7b,U+4fe3,U+5080,U+5121,U+51eb,U+5208,U+52f0,U+53f5,U+5453,U+5466,U+54a6,U+54bf,U+54d0,U+5533,U+5549,U+5556,U+556d,U+558f,U+55f2,U+55f5,U+5627,U+567b,U+56d4,U+571c,U+5739,U+57b4,U+5807,U+58c5,U+59a4,U+59af,U+59d8,U+5a09,U+5a0c,U+5a4a,U+5ad2,U+5b6c,U+5ca2,U+5cac,U+5d03,U+5d6c,U+5db7,U+5ebe,U+5f2d,U+5fea,U+6042,U+6120,U+6175,U+6221,U+623e,U+6339,U+638a,U+643d,U+64b8,U+64e2,U+66e9,U+67b3,U+67c1,U+67d2,U+6832,U+6877,U+68f0,U+6934,U+6966,U+6987,U+6998,U+69c1,U+69ce,U+6a3d,U+6a84,U+6aa9,U+6b87,U+6bd6,U+6c16,U+6c18,U+6cd4,U+6cee,U+6de0,U+6e0c,U+6ecf,U+6f4b,U+70b7,U+7168,U+72d9,U+7352,U+73b3,U+73d0,U+7441,U+74d2,U+75a5,U+75e7-75e8,U+7610,U+7619,U+765e,U+772d,U+7812,U+782c,U+784c,U+7850,U+7856,U+789b,U+78f4,U+7a51,U+7b15,U+7b1e,U+7b24,U+7b5a,U+7bb8,U+7bc1,U+7bd9,U+7ed0,U+7ee6,U+7efa,U+7f1b,U+7f1f,U+7f22,U+7f45,U+7f71,U+7fa7,U+7fbf,U+7ff3,U+8052,U+80b1,U+80db,U+80f4,U+81bb,U+81ec,U+8202,U+8210,U+8249,U+828a,U+828e,U+82e3,U+8315,U+8369,U+8378,U+83a8,U+83aa,U+83b4,U+83e1,U+84fc,U+8538,U+853b,U+859c,U+85ae,U+86b4,U+86c9,U+86cf,U+8725,U+879f,U+87b3,U+887d,U+88fe,U+8a8a,U+8ba7,U+8c07,U+8c14,U+8c30,U+8c47,U+8db5,U+8dd7,U+8e1f,U+8e69,U+8e70,U+8e85,U+8f78,U+8f87,U+8f8b,U+8f8f,U+90c4,U+9143,U+917d,U+948f,U+94cd,U+94d2,U+94ef,U+954a,U+9609-960a,U+96d2,U+9708,U+9765,U+97ea,U+9880,U+98a7,U+996c,U+9980,U+9991,U+9a88,U+9ab6,U+9afb,U+9b47,U+9c87,U+9c9b,U+9cb5,U+9cc7,U+9e2c,U+9e42,U+9e58,U+9ecd,U+9ecf,U+9f8a,U+9f8c\",\n },\n },\n {\n uri: _151,\n descriptors: {\n unicodeRange:\n \"U+4ebb,U+4edd,U+4fa9,U+502c,U+50a5,U+51c7,U+51fc,U+523d,U+5241,U+530f,U+5464,U+549d,U+54a3,U+5514,U+5527,U+555c,U+556e,U+5576,U+55b1,U+55b9,U+55eb,U+5624,U+564c,U+5671,U+5685,U+568f,U+56d7,U+56e1,U+57a1,U+57d9,U+5942,U+5a67,U+5c50,U+5c7a,U+5c98,U+5d06,U+5d27,U+5d6f,U+5df3,U+5dfd,U+5e19,U+5ea0,U+5eb9,U+5eea,U+5ffe,U+600f,U+606b,U+6215,U+622c,U+6266,U+62bb,U+62bf,U+6308,U+6387,U+63b8,U+63c4,U+63c6,U+63f6,U+6441,U+6555,U+659b,U+6677,U+66a7,U+6775,U+678b,U+679e,U+6840,U+6849,U+6860,U+68c2,U+6910,U+6a28,U+6a2f,U+6a79,U+6b92-6b93,U+6bc2,U+6bfd,U+6c29,U+6c32,U+6c86,U+6cc5,U+6d0c,U+6d60,U+6da0,U+6ddd,U+6e86,U+6ed3,U+6edf,U+6fb9,U+6fd1,U+6fef,U+7023,U+7080,U+70ca,U+712f,U+7145,U+7284,U+732c,U+73c8,U+73d9,U+740a,U+7457,U+7596,U+759d,U+75a3,U+75d8,U+75e3-75e4,U+75ff,U+7622,U+7688,U+76b4,U+76e5,U+7818,U+7887,U+789a,U+78b2,U+7b08,U+7b33,U+7c2a,U+7ccc,U+7ea8,U+7ec0,U+7fe6,U+8012,U+8084,U+8093,U+80e4,U+80ef,U+8297,U+82a8,U+82be,U+8331,U+8366,U+83c5,U+83fd,U+8473,U+84a1,U+84ca,U+84d1,U+857b,U+85c1,U+85d3,U+8605,U+8662,U+86aa,U+86b1,U+86d4,U+86ed,U+86f3,U+8709,U+8748,U+874c,U+8763,U+89c7,U+89de,U+89e5,U+8a3e,U+8ba6,U+8c00,U+8c21,U+8c49,U+8c7a,U+8d30,U+8df9,U+8e51,U+8e59,U+8f6b,U+8f73,U+8ff3,U+9016,U+9026,U+902f,U+9099,U+909b,U+90c7,U+914a,U+91ae,U+91ba,U+9495,U+94a3,U+94af,U+94ba,U+94bf,U+94cc,U+94e1,U+94f0,U+9531,U+955d,U+95f3,U+9697,U+96bc,U+975b,U+977c,U+98a2,U+998a,U+9994-9995,U+9a9b,U+9ab7,U+9ac5,U+9c91,U+9ccf,U+9cd5,U+9e29,U+9edc,U+9edf,U+9f83,U+9f88-9f89\",\n },\n },\n {\n uri: _152,\n descriptors: {\n unicodeRange:\n \"U+4ee8,U+4f22,U+4f43,U+4f57,U+4f5d,U+4f6f,U+4ff8,U+502d,U+507b,U+5345,U+53df,U+53fb,U+544b,U+5482,U+54a7,U+54cc,U+550f,U+5544,U+5555,U+5594,U+55e8,U+55ec,U+55ef,U+564e,U+56f9,U+5704,U+576d,U+5785,U+57ad,U+5914,U+5958,U+599e,U+59aa,U+59be,U+5a06,U+5abe,U+5ae1,U+5b40,U+5bee,U+5cbf,U+5cc4,U+5ccb,U+5d47,U+603f,U+6078,U+607d,U+607f,U+608c,U+609a,U+60fa,U+61ff,U+621b,U+622e,U+626a,U+6371,U+63ae,U+63cd,U+63d6,U+6410,U+6414,U+6421,U+6448,U+64d8,U+6710,U+6748,U+6772,U+680e,U+6954,U+69ab,U+6c68,U+6c8f,U+6ca4,U+6d2e,U+6e4e,U+6e98,U+6fe0,U+7094,U+70e9,U+7116,U+7119,U+723f,U+73c9,U+74e4,U+753e,U+7548,U+75bd,U+75cd,U+7618,U+7634,U+76c5,U+76f1,U+7708,U+7719,U+777e,U+7791,U+77b3,U+7823,U+7827,U+7830,U+7889,U+7893,U+7949,U+795c,U+79e3,U+7a14,U+7a88,U+7a95,U+7aa0,U+7afd,U+7b90,U+7bd1,U+7bfe,U+7da6,U+7ec2,U+7eef,U+7f03-7f04,U+7f08,U+7f58,U+7f61,U+7f9f,U+8174,U+8200,U+828d,U+82c4,U+82d5,U+82dc,U+82f7,U+832d,U+835a,U+840b,U+8438,U+852b,U+869d,U+86ac,U+86d0,U+86f0,U+8782,U+87a8,U+87d1-87d2,U+87e0,U+8839,U+8913,U+891b,U+8934,U+8941,U+89ca,U+89ce,U+8a07,U+8ba3,U+8bc5,U+8bcb,U+8bdb,U+8c11,U+8c15,U+8c29,U+8c32,U+8dc4,U+8dce,U+8ddb,U+8dfa,U+8e09,U+8e1d,U+8e39,U+8e42,U+8e49,U+8e4b,U+8e8f,U+8f71-8f72,U+9004,U+9036,U+9097,U+90dc,U+90e2,U+90e6,U+90ef,U+9104,U+919a,U+91b4,U+938f,U+9497,U+950f,U+9557,U+9562-9563,U+9573,U+9606,U+9649,U+972d,U+973e,U+97a3,U+97eb,U+988c,U+9894,U+98a6,U+9974,U+9977,U+997d,U+9a90,U+9a9d,U+9aef,U+9ca2,U+9ccd,U+9cdf,U+9e20,U+9e4c,U+9e6b,U+9f3e\",\n },\n },\n {\n uri: _153,\n descriptors: {\n unicodeRange:\n \"U+4ede,U+4ee1,U+4eeb,U+4fda,U+4ffe,U+5025,U+506c,U+50f3,U+5106,U+520d,U+525c,U+52ad,U+530d,U+5310,U+539d,U+53a9,U+53fc,U+5421,U+5477,U+54e7,U+551b,U+5530,U+557e,U+5599,U+55c4,U+55d1,U+55d4,U+55df,U+55e4,U+55ea,U+5623,U+562d,U+5654,U+56eb,U+56f5,U+57a7,U+57d5,U+57dd,U+584d,U+5880,U+58ec,U+59dd,U+5a32,U+5a55,U+5a75,U+5b51,U+5b71,U+5b73,U+5cd2,U+5ce4,U+5e5b,U+5e96,U+5fd2,U+607b,U+61d1,U+634b,U+636d,U+63b3,U+63ff,U+64c0,U+661d,U+6657,U+66dc,U+67a5,U+6841,U+6867,U+6901,U+699b,U+6a47,U+6b46,U+6c21,U+6c24,U+6c35,U+6c4a,U+6c94,U+6ca3,U+6d39,U+6d63,U+6d6f,U+6d94,U+705e,U+71e7,U+726f,U+72cd,U+72de,U+72f0,U+7325,U+7350,U+7391,U+741a,U+757f,U+7583,U+75b1,U+75b4,U+75b8,U+75c2,U+75f1,U+766f,U+7699,U+7751,U+789c,U+7a17,U+7be6,U+7cb2,U+7ea3,U+7eb0,U+7ebe,U+7eeb,U+7f25,U+7f2c,U+7fb8,U+8026,U+8037,U+8153,U+8171,U+8191,U+8214,U+821b,U+8222,U+826e,U+82eb,U+830c,U+8314,U+8334,U+83d6,U+8418,U+843c,U+84ff,U+8564,U+8572,U+8616,U+866c,U+8693,U+86a3,U+86a7,U+86af,U+86b6,U+86c6,U+86ca,U+8708,U+870d,U+8759,U+8760,U+87af,U+87c6,U+8869,U+88c6,U+89d0,U+8b07,U+8baa-8bab,U+8bc2,U+8be4,U+8bf0,U+8c2a,U+8c62,U+8c89,U+8d49,U+8d6d,U+8d84,U+8d94,U+8db8,U+8dc6,U+8e2e,U+8e3d,U+8e47,U+8e7f,U+9005,U+9051,U+907d,U+9082,U+9088,U+90b0,U+90d3,U+9150,U+949c,U+94a4,U+94b9,U+94cb,U+94e0,U+9509,U+9512,U+951f,U+9534,U+9552-9553,U+965f,U+96b0,U+9791,U+9889,U+9990,U+9a9c,U+9aa7,U+9c88,U+9cb2-9cb3,U+9cb6-9cb7,U+9cc5,U+9cdc,U+9e22,U+9e2a,U+9e57,U+9e67,U+9e73,U+9e82,U+9eb8,U+9ee0,U+9f9b\",\n },\n },\n {\n uri: _154,\n descriptors: {\n unicodeRange:\n \"U+4eb5,U+4f09,U+4f5a,U+4f8f,U+4fce,U+4fdf,U+4fea,U+4ff3,U+500c,U+500f,U+504e,U+5088,U+52be,U+5420,U+5457,U+5499,U+549b,U+54c6,U+54d2,U+558b,U+559f,U+55bd,U+55d6,U+565c,U+567c,U+568e,U+5768,U+577b,U+57a9,U+57ed,U+59f9,U+5a11,U+5a40,U+5ae6,U+5b6a,U+5b93,U+5bb8,U+5c15,U+5c99,U+5c9c,U+5cc1,U+5d2e,U+5d4b,U+5d99,U+5e54,U+5e61,U+5fcf-5fd1,U+6002,U+6006,U+6014,U+60af,U+60c6,U+60da,U+60f4,U+621f,U+62c8,U+631b,U+631e,U+63e9,U+64b5,U+655d,U+6619,U+6635,U+6641,U+67ad,U+67b0,U+67b7,U+67e9,U+684e,U+688f,U+695d,U+696b,U+69b7,U+6a58,U+6c26,U+6d35,U+6d43,U+6d9e,U+6dd9,U+6dec,U+6e11,U+6e6e,U+6e9f,U+6ec2,U+6ee2,U+6ef9,U+6f09,U+6f66,U+6f8d,U+6fc2,U+6fc9,U+729f,U+72c8,U+73de,U+7430,U+7566,U+7579,U+75c9,U+75e2,U+75fc,U+762a,U+7638,U+7678,U+76c2,U+76f9,U+778c,U+77cd,U+77dc,U+7800,U+781d,U+782d,U+783b-783c,U+78a3,U+78ec,U+7980,U+7a23,U+7b95,U+7bdd,U+7c0c,U+7c41,U+7c91,U+7cb3,U+7cc5,U+7ecc,U+7f19,U+7fca,U+8006,U+8069,U+807f,U+80bd,U+80ed,U+814b,U+8198,U+82cb,U+82d2,U+834f,U+8360,U+847a,U+84d6,U+84e5,U+8537,U+85d0,U+8671,U+86a4,U+86ce,U+86f9,U+8703,U+8707,U+8737,U+873b,U+8815,U+8936,U+8bc3,U+8bcf,U+8bd2,U+8bd8,U+8be9,U+8c0c,U+8c0f,U+8c4c,U+8d45,U+8d5d,U+8d73,U+8e31,U+8e6d,U+8e76,U+8fe4,U+9041,U+90d7,U+9169,U+92ae,U+94a1,U+94c4,U+94c9,U+94db,U+94e7,U+9503,U+9506,U+9517,U+9528,U+9537,U+9542,U+9549,U+95fe,U+9616,U+961a,U+96c9,U+96f3,U+9701,U+970e,U+9739,U+9753,U+9798,U+98d2-98d3,U+98d9-98da,U+9968,U+996f,U+9984,U+9997,U+9acb,U+9b03,U+9c85,U+9ca8,U+9cab,U+9e49,U+9e51,U+9e66,U+9f10\",\n },\n },\n {\n uri: _155,\n descriptors: {\n unicodeRange:\n \"U+4e15,U+4e1e,U+4e2b,U+4eb3,U+4ec9,U+4f0e,U+4f64,U+501c,U+50a9,U+510b,U+51a2,U+51bc,U+527d,U+52d0,U+53fd,U+5429,U+542e,U+5486,U+54af,U+5506,U+5511,U+5522,U+552c,U+556c,U+55b3,U+55d2,U+55e6,U+55fd,U+561f,U+5639,U+5659,U+5662,U+5693,U+572a,U+5892,U+598a,U+5992,U+59a9,U+5a20,U+5ae3,U+5b17,U+5b7d,U+5d34,U+5d3d,U+5d4a,U+5d82,U+5e1a-5e1b,U+5ea5,U+5f0b,U+5f77,U+5fd6,U+5fff,U+6026,U+6035,U+6063,U+60b4,U+60bb,U+60ee,U+612b,U+6194,U+61ca,U+61e6,U+61f5,U+620a,U+6248,U+62a1,U+62d7,U+6376,U+637b,U+652b,U+65bc,U+65cc,U+65ce,U+65d6,U+664c,U+665f,U+6666,U+6684,U+66b9,U+6773,U+6777,U+6787,U+67de,U+6845,U+693d,U+6994,U+6a35,U+6d54,U+6d5c,U+6d8e,U+6dd6,U+6eb4,U+6f2a,U+6f78,U+704f,U+70ec,U+7118,U+714a,U+7172,U+71b9,U+724d,U+728a,U+7337,U+733e,U+7396,U+73b7,U+73cf,U+7428,U+742c,U+742e,U+74ee,U+74f4,U+7525,U+753a,U+7572,U+75d4,U+765c,U+768e,U+7762,U+777d,U+77fd,U+7825,U+7837,U+78b4,U+795f,U+79ed,U+7a1e,U+7b06,U+7b20,U+7ba9,U+7bab,U+7c7c,U+7cbd,U+7cdc,U+7ec9,U+7ef6,U+7f30,U+7f42,U+7f44,U+7f54,U+7f94,U+8004,U+800b,U+8019,U+809b,U+80ae,U+80c4,U+80f1,U+8146,U+816e,U+817c,U+81c0,U+81fc,U+81fe,U+822b,U+830f,U+832f,U+8340,U+8365,U+8385,U+8392,U+83a0,U+8424,U+84af,U+869c,U+8713,U+8717-8718,U+87c0,U+87cb,U+87fe,U+8821,U+8902,U+89d1,U+8bb9,U+8c12,U+8d32,U+8d53,U+8df7,U+8e7c,U+8f7c,U+8f95,U+8fab,U+9052,U+905b,U+9095,U+909d,U+90c5,U+911e,U+9122,U+916a,U+919b,U+948e,U+9492,U+949a,U+94b5,U+94bc,U+94c6,U+94f1,U+9502,U+9511,U+9536,U+956f-9570,U+9602,U+9621,U+9631,U+998b,U+99a5,U+9a81,U+9a9e,U+9ebe,U+9f8b\",\n },\n },\n {\n uri: _156,\n descriptors: {\n unicodeRange:\n \"U+4f2b,U+4f3d,U+4fac,U+5043,U+5055,U+5140,U+5156,U+51cb,U+5243,U+531d,U+536f,U+53a5,U+53ae,U+53f1,U+541d,U+5431,U+547b,U+5492,U+5494,U+54a4,U+54aa,U+54ce,U+54fd,U+5509,U+5520,U+553e,U+557b,U+55c5,U+55e1,U+55f7,U+5608,U+5636,U+563b,U+5773,U+57a0,U+5811,U+587e,U+58d5,U+59e3,U+5a29,U+5a6a,U+5a76,U+5a7a,U+5ac9,U+5b62,U+5b95,U+5c49,U+5c8c,U+5cab,U+5cb7,U+5d02,U+5d58,U+5e44,U+5e7a,U+5eff,U+5f29,U+5f89,U+5f9c,U+5fa8,U+6005,U+6043,U+60b8,U+60d8,U+60ec,U+60f0,U+6115,U+618e,U+630e,U+637a,U+6390,U+63ac,U+63b0,U+64de,U+6525,U+6538,U+65ee-65ef,U+6631,U+6636,U+6654,U+677c,U+67b8,U+67d8,U+683e,U+6886,U+68b5,U+692d,U+6963,U+6979,U+6988,U+6b59,U+6b9a,U+6c69,U+6c74,U+6cae,U+6ce0,U+6cef,U+6d95,U+6dc5,U+6dde,U+6de6,U+6dfc,U+6ea7,U+6f15,U+6f29,U+7096,U+70c3,U+7131,U+715c,U+7166,U+7266,U+7317,U+731d,U+7329,U+73e9,U+7425,U+7455,U+7490,U+74ef,U+7519,U+75b5,U+75b9,U+75de,U+7656,U+7663,U+7691,U+7729,U+77fe,U+783e,U+787c,U+795a,U+7a79,U+7abf,U+7b3a,U+7b4f,U+7b60,U+7b75,U+7b8d,U+7bb4,U+7bd3,U+7be1,U+7cbc,U+7edb,U+7f1c,U+7f8c,U+7fb2,U+7fb9,U+7fce,U+7ff1,U+810d,U+81c6,U+82a5,U+82aa,U+82de,U+8317,U+8343,U+835e,U+8364,U+836a,U+853a,U+8543,U+854a,U+8559,U+8568,U+85b0,U+85b9,U+864f,U+86e4,U+8715,U+8845,U+8884,U+88e8,U+88f1,U+8983,U+8be1,U+8c1f,U+8c27,U+8c5a,U+8c82,U+8d58,U+8dbe,U+8f98,U+9035,U+9074,U+90a1,U+9149,U+9157,U+93d6,U+949d,U+94c2,U+94e3-94e4,U+95eb,U+95f0,U+9611,U+9619,U+9642,U+968d,U+9706,U+970f,U+97ed,U+988a,U+9893,U+98e8,U+9a77,U+9a87,U+9aa1,U+9abc,U+9cdd,U+9e2f,U+9e33,U+9e44,U+9e5c,U+9e9d,U+9edd\",\n },\n },\n {\n uri: _157,\n descriptors: {\n unicodeRange:\n \"U+4f58,U+4f6c,U+4f70,U+4fd0,U+5014,U+51bd,U+524c,U+5315,U+5323,U+535e,U+540f,U+542d,U+545b,U+548e,U+549a,U+54ab,U+54fc,U+5567,U+556a,U+5600,U+5618,U+563f,U+5669,U+56f1,U+56ff,U+573b,U+574d,U+579b,U+57b8,U+57c2,U+586c,U+58f9,U+595a,U+598d,U+5993,U+5996,U+59d7,U+5b7a,U+5ba6,U+5c4e,U+5c96,U+5ce5,U+5eb6,U+5f08,U+5f99,U+602f,U+6059,U+606c,U+607a,U+60ed,U+61a9,U+620c,U+6249,U+62a8,U+62c4,U+62ed,U+62fd,U+6342,U+6345,U+6396,U+63a3,U+6402,U+6413,U+642a,U+6487,U+64a9,U+64ac,U+64ae,U+64b7,U+659f,U+65a1,U+667e,U+66f3,U+67e0,U+69db,U+69df,U+6aac,U+6b86,U+6c50,U+6c5e,U+6c76,U+6c85,U+6c8c,U+6cde,U+6d19,U+6d52,U+6da7,U+6db8,U+6e1a,U+6e25,U+6e4d,U+6e5f,U+6ec1,U+6f31,U+6f7a,U+6fa7,U+6fe1,U+701b,U+70ab,U+70f7,U+717d,U+71a8,U+7252,U+72c4,U+72e1,U+7315,U+736d,U+73ae,U+73c0,U+73c2,U+740f,U+75a4,U+7600-7601,U+768b,U+76bf,U+76d4,U+7728,U+772f,U+776c,U+77a0,U+77b0,U+77f8,U+783a,U+78d0,U+78fa,U+7977,U+7a37,U+7a92,U+7afa,U+7b71,U+7b94,U+7cef,U+7f28,U+7fe1,U+808b,U+80e5,U+80eb,U+8110,U+8113,U+812f,U+814c,U+81c3,U+8235,U+82d4,U+8309,U+83c1,U+8431,U+8469,U+84bf,U+84d3,U+84df,U+84e6,U+8511,U+8638,U+86c0,U+86db,U+86fe,U+8757,U+8822,U+8882,U+8885,U+8892,U+88f3,U+892a,U+8ba5,U+8bd9,U+8be0,U+8be7,U+8bfd,U+8c1a,U+8d4a,U+8d4e,U+8d66,U+8dda,U+8e0c,U+8e52,U+8e74,U+8e87,U+8f76,U+8fc2,U+8fe6,U+900d,U+9068,U+90ac,U+90b3,U+90b8,U+90e7,U+9119,U+9131,U+915a,U+916e,U+94b4,U+94d0,U+94e2,U+94ec,U+94ff,U+9522,U+9535,U+9556,U+965b,U+96f9,U+9774,U+9981,U+998d,U+998f,U+9a6e,U+9a7f,U+9a8a,U+9b13,U+9c9f,U+9e3e,U+9e43,U+9e6d,U+9e8b,U+9e92,U+9edb,U+9eef\",\n },\n },\n {\n uri: _158,\n descriptors: {\n unicodeRange:\n \"U+4e10,U+4e56,U+4e98,U+4ec3,U+4f3a,U+4f5f,U+4f88,U+4f97,U+4fa5,U+4fe8,U+504c,U+5197,U+52fa,U+5364,U+53e8,U+5406,U+543c,U+545c,U+5471,U+5480,U+5495,U+54b3,U+54df,U+54e6,U+54ee,U+557c,U+5583,U+55dc,U+55e3,U+566c,U+592f,U+5944,U+5983,U+59ca,U+59e5,U+5a13,U+5a7f,U+5b09,U+5bd0,U+5e4c,U+5eb5,U+5f1b,U+5f3c,U+608d,U+60cb,U+61a7,U+61ac,U+61cb,U+6233,U+62a0,U+62e7,U+62ee,U+62f4,U+62f7,U+634e,U+6382,U+63c9,U+63ea,U+6400,U+645e,U+6482,U+6556,U+6593,U+6615,U+664f,U+66e6,U+672d,U+675e,U+67da,U+6805,U+6808,U+6868,U+68a2,U+695e,U+69ad,U+6a80,U+6a90,U+6b83,U+6be1,U+6c30,U+6cad,U+6cb1,U+6cf1,U+6d31,U+6d93,U+6dae,U+6dbf,U+6dc6-6dc7,U+6e0d,U+6e32,U+6e3a,U+6e85,U+6eba,U+6f3e,U+6f5e,U+6f7c,U+6fee,U+71ee,U+722a,U+72b7,U+72e9,U+73ba,U+73d1,U+7409,U+7435-7436,U+7459-745a,U+747e,U+7487,U+74e2,U+7504,U+752c-752d,U+7599,U+759f,U+75a1,U+75ca,U+75f0,U+761f,U+7629,U+777f,U+7785,U+77a5,U+77bf,U+78d5,U+7934,U+7940,U+79a7,U+7b19,U+7c38,U+7c95,U+7cb1,U+7ce0,U+7eca,U+7ef7,U+7f2b,U+7f81,U+7fcc,U+8046,U+8148,U+8165,U+819b,U+81ba,U+828b,U+82ae,U+82b7,U+82d3,U+8301,U+830e,U+831c,U+8338,U+837c,U+8393,U+8398,U+83ba,U+83e0,U+83e9,U+853c,U+8654,U+86df,U+8712,U+873f,U+874e,U+8783,U+8859,U+88a4,U+8925,U+8bb7,U+8bff,U+8c19,U+8c1b,U+8c24,U+8c2c,U+8d61,U+8db4,U+8e6c,U+8f8a,U+8fe5,U+8ff8,U+901e,U+90f4,U+912f,U+9163,U+9170,U+91dc,U+949b,U+94a8,U+94b3,U+94c0,U+94e8,U+9525,U+9530,U+9539,U+954c-954d,U+9550,U+955b,U+962a,U+9685,U+96cc,U+9776,U+988d,U+9975,U+9985,U+9a6f,U+9aa5,U+9ab8,U+9c7f,U+9ca4,U+9cb8,U+9e25,U+9e35,U+9e4a\",\n },\n },\n {\n uri: _159,\n descriptors: {\n unicodeRange:\n \"U+4ea2,U+4ea5,U+4f36,U+4f84,U+4f8d,U+501a,U+5029,U+516e,U+51a5,U+51c4,U+51f8,U+5201,U+527f,U+5321,U+5352,U+5366,U+53e9,U+54c7,U+5632,U+5676,U+56b7,U+56bc,U+56da,U+56e4,U+5703,U+5729,U+5742,U+57a2-57a3,U+5815,U+58d1,U+5919,U+592d,U+5955,U+5a05,U+5a25,U+5a34,U+5b70,U+5b75,U+5bdd,U+5bf0,U+5c41,U+5c79,U+5c91,U+5c94,U+5ce6,U+5ced,U+5d69,U+5dc5,U+5e16,U+5e27,U+5f27,U+5f95,U+5ffb,U+6020,U+604d,U+6055,U+60e6,U+60eb,U+6123,U+618b,U+61a8,U+620d,U+62c7,U+62ce,U+62d9,U+631f,U+634d,U+6452,U+6479,U+64ce,U+64d2,U+655b,U+660a,U+6726,U+67c4,U+6809,U+6853,U+68e3,U+68f1,U+68fa,U+693f,U+6942,U+6995,U+69a8,U+69b4,U+6a71,U+6b89,U+6bcb,U+6bd3,U+6bd9,U+6c40,U+6cf8,U+6cfe,U+6d85,U+6da3,U+6daa,U+6e0e,U+6e43-6e44,U+6f88,U+7078,U+7099,U+70bd,U+70d9,U+70fd,U+7109,U+7184,U+7239,U+733f,U+73f2,U+748b,U+749c,U+749e,U+759a,U+75d2,U+75eb,U+7620,U+766b,U+7693,U+76cf,U+7738,U+773a,U+776b,U+778e,U+77aa,U+7852,U+78be,U+7948,U+795b,U+7960,U+796f,U+79ba,U+7a20,U+7a96,U+7aa5,U+7b03,U+7b28,U+7b50,U+7b77,U+7bc6,U+7bf1,U+7c27,U+7d0a,U+7ead,U+7ec5,U+7ee2,U+7ef0,U+7efd,U+7f0e,U+7f2e,U+7f79,U+7f9a,U+8098,U+80da,U+80e7,U+80f0,U+80f3,U+80fa,U+818a,U+81e7,U+8237-8238,U+8299,U+82b8,U+82ce,U+837b,U+83bd,U+83cf,U+8426,U+8475,U+85c9,U+85d5,U+85dc,U+85e9,U+871a,U+8747,U+8749,U+888d,U+8910,U+891a,U+8bb4,U+8be3,U+8bec,U+8bf2,U+8c06,U+8c0d,U+8d31,U+8d48,U+8de4,U+8e1e,U+8e4a,U+8e66,U+8f84,U+8f97,U+9083,U+90e1,U+9165,U+91c9,U+94b0,U+94f5,U+9504,U+9532,U+956d,U+95f5,U+95fa,U+9668,U+9698,U+96bd,U+9704,U+9773,U+9890,U+996a,U+997a,U+9a74,U+9a8b,U+9cc4,U+9ccc\",\n },\n },\n {\n uri: _160,\n descriptors: {\n unicodeRange:\n \"U+4ea8,U+4f1e,U+4f51,U+4f63,U+4f7c,U+4f83,U+4fa0,U+4fd1,U+4ffa,U+5018,U+5026,U+508d,U+50bb,U+50f5,U+50fb,U+5162,U+5319,U+5320,U+538c,U+5413,U+541f,U+5475,U+54bd,U+54d1,U+5589,U+5598,U+575f,U+57ae,U+57e0,U+5937,U+5974,U+5978,U+59ae,U+5a1f,U+5a49,U+5ab3,U+5b99,U+5b9b,U+5ba0,U+5be1,U+5be5,U+5c09,U+5c27,U+5de2,U+5e9a,U+5f26,U+5f8a,U+5f98,U+6021,U+606d,U+60bc,U+60d5,U+60e7,U+611a,U+614c,U+6254,U+626f,U+6292,U+6296,U+62b9,U+62e2,U+631a,U+631d,U+6320,U+6346,U+63ba,U+6467,U+64bc,U+658b,U+663c,U+6643,U+6652,U+6656,U+6687,U+66d9,U+66dd,U+66f0,U+673d,U+67ab,U+6816-6817,U+68a7,U+68ad,U+68cd,U+68e0,U+6986,U+69fd,U+6b47,U+6bd7,U+6c1f,U+6c2e-6c2f,U+6cbe,U+6de4,U+6e1d,U+6e83,U+6e9c,U+6ed4-6ed5,U+6f4d,U+70f9,U+7130,U+716e,U+718f,U+71ac,U+71e5,U+72fc,U+731c,U+7334,U+73ca,U+7422,U+7426,U+745f,U+7470,U+75af,U+75f4,U+762b,U+763e,U+7696,U+7737,U+7741,U+77a7,U+77bb,U+77ee,U+785d,U+788c,U+78ca,U+7901,U+796d,U+7985,U+79fd,U+7a3c,U+7a57,U+7a74,U+7b5b,U+7caa,U+7cb9,U+7cd5,U+7eac,U+7eb6,U+7ed1,U+7ee5,U+7f20,U+7f2a,U+7f38,U+7f69,U+7fa1,U+8018,U+8038,U+803f,U+804b,U+80a2,U+80be,U+80d6,U+817a,U+81fb,U+820c,U+82ad,U+82af,U+82bd,U+8327,U+8354,U+835f,U+8367,U+836b,U+840c,U+841d,U+8471,U+849c,U+84b2,U+84c9,U+8517,U+851a,U+8549,U+8681,U+8721,U+8776,U+88d9,U+88f9,U+89c5,U+8c1c,U+8c34,U+8d81,U+8d9f,U+8e0a,U+8e72,U+8eb2,U+8fed,U+901b,U+902e,U+906e,U+9091,U+90aa,U+90af,U+915d,U+9171,U+946b,U+9489,U+9499,U+94a5,U+9508,U+9524,U+952d,U+9551,U+9576,U+95f7,U+9600,U+96b6,U+96c0,U+9756,U+97f6,U+98a0,U+98a4,U+997f,U+9a73,U+9a86,U+9ad3,U+9e3d,U+9ed4\",\n },\n },\n {\n uri: _161,\n descriptors: {\n unicodeRange:\n \"U+4e4d,U+4e5e,U+4ec7,U+4ed5,U+50da,U+50e7,U+515c,U+51a4,U+51ff,U+5203,U+5254,U+5300,U+533e,U+5375,U+53ee,U+5435,U+543b,U+5455,U+548b,U+548f,U+54d7,U+54fa,U+5578,U+5587,U+55a7,U+560e,U+5760,U+576f,U+5777,U+5830,U+58a9,U+5962,U+59e8,U+5a07,U+5a23,U+5a3c,U+5b5a,U+5bb5,U+5bc5,U+5bde,U+5c7f,U+5cb1,U+5ce8,U+5cea,U+5d29,U+5d4c,U+5e18,U+5f57,U+5f5d,U+5f87,U+5ff1,U+6016,U+601c,U+6064,U+6177,U+61d2,U+625b,U+62e3,U+62f1,U+634f,U+63a0,U+6401,U+6405,U+6495,U+64c2,U+6512,U+6577,U+6590,U+65a7,U+65a9,U+65f7,U+6627,U+6655,U+6714,U+6795,U+67d1,U+67ff,U+68b3,U+68d5,U+68d8,U+6930,U+6960,U+6977,U+69bb,U+69d0,U+6a31,U+6b7c,U+6bb4,U+6c22,U+6c72,U+6c79,U+6c7e,U+6c81,U+6c93,U+6ca5,U+6cbc,U+6ce3,U+6cfb,U+6d3c,U+6da9,U+6df3,U+6e2d,U+6eaf,U+6ec7,U+6f13,U+6f33,U+6f62,U+6fa1,U+7011,U+707c,U+708a,U+70c1,U+70d8,U+70eb,U+711a,U+7194,U+7281,U+7316,U+7357,U+7384,U+7405,U+742a,U+745b,U+7574,U+7578,U+75ea,U+7682,U+7792,U+77d7,U+77e9,U+77eb,U+77f6,U+780c,U+78c5,U+7941,U+79e4,U+7a1a,U+7a9c,U+7ad6,U+7b5d,U+7bf7,U+7c07,U+7c3f,U+7c9f,U+7ca5,U+7cdf,U+7e82,U+7eab,U+7ece,U+7eda,U+7f09,U+7f15,U+7f9e,U+7fdf,U+7fe9,U+803b,U+803d,U+80aa,U+80b4,U+813e,U+8155,U+817b,U+819d,U+821c,U+82b9,U+82df,U+82ef,U+8304,U+83b9,U+8446,U+853d,U+85af,U+85fb,U+8650,U+865e,U+86d9,U+86ee,U+8700,U+8862,U+889c,U+88d4,U+88f8,U+895f,U+8a79,U+8bb3,U+8bb6,U+8bc0,U+8beb,U+8bf5,U+8c23,U+8c79,U+8d1e,U+8dcb,U+8e29,U+8e44,U+8e81,U+8eac,U+8eaf,U+8f8d,U+9050,U+90f8,U+914b,U+948a,U+94be,U+94ee,U+950c,U+9540,U+962e,U+9647,U+9661,U+9699,U+96cf,U+9716,U+9761,U+97a0,U+97e7,U+9a7c,U+9a8f,U+9ae6,U+9cd6,U+9e26\",\n },\n },\n {\n uri: _162,\n descriptors: {\n unicodeRange:\n \"U+4fa3,U+4fae,U+4fd8,U+4fef,U+50a3,U+5189,U+5195,U+51db,U+51f3,U+51f9,U+5220,U+5228,U+5288,U+52ff,U+532e,U+533f,U+5351,U+53db,U+53ed,U+5450,U+5484,U+5490,U+54c9,U+54e9,U+5501,U+5507,U+5543,U+55d3,U+56a3,U+575e,U+589f,U+5984,U+59ec,U+5a04,U+5a36,U+5a77,U+5a9a-5a9b,U+5ab2,U+5ac2,U+5ad6,U+5bc7,U+5c2c,U+5c34,U+5c51,U+5cd9,U+5d0e,U+5deb,U+5e3c,U+5e87,U+5ed3,U+5f13,U+5f64,U+5fe1,U+606a,U+6096,U+60df,U+60f6,U+60f9,U+6151,U+620e,U+6241,U+6252,U+6273,U+627c,U+6289,U+62c2,U+62cc,U+62ef,U+6361,U+6363,U+63b7,U+63e3,U+6518,U+66ae,U+6756,U+6789,U+6813,U+6829,U+6862,U+6866,U+6893,U+6897,U+690e,U+6984,U+69cc,U+6a1f,U+6a44,U+6a59,U+6ba1,U+6c13,U+6c90,U+6ca6,U+6cbd,U+6ccc,U+6cd3,U+6cd7,U+6d4a,U+6d4f,U+6d5a,U+6d9f,U+6da1,U+6dcc,U+6ea5,U+6ee4,U+6ee6,U+6f2f,U+6f8e,U+701a,U+7095,U+709c,U+70af,U+70db,U+70e8,U+714e,U+715e,U+71a0,U+71ce,U+7235,U+7280,U+72d0,U+72f8,U+73ab,U+7410,U+745c,U+7480,U+74a7-74a8,U+74e3,U+75ae,U+75f9,U+76b1,U+76ce,U+7736,U+77e2-77e3,U+781a,U+789f,U+797a,U+79be,U+79c3,U+79c6,U+79f8,U+7a8d,U+7a98,U+7aa6,U+7aff,U+7b1b,U+7cd9,U+7d6e,U+7ede,U+7eee,U+7f00,U+7f24,U+7f2d,U+7fd8,U+800d,U+8116,U+8151,U+81b3,U+8205,U+82c7,U+82db,U+832c,U+8335,U+8339,U+8386,U+846b,U+8587,U+8611,U+8682,U+868a,U+868c,U+8774,U+88d8,U+88f4,U+8912,U+8b6c,U+8bbd,U+8c0e,U+8c41,U+8d26,U+8d3b-8d3c,U+8d50,U+8dea,U+8e35,U+8f99,U+8fe2,U+8fe9,U+9017,U+914c,U+916f,U+9175-9176,U+918b,U+94a0,U+94ae,U+94ce,U+94f2,U+951a,U+952f,U+9541,U+9640,U+9672,U+968b,U+96cd,U+96ef,U+9713,U+97ec,U+9885,U+9992,U+9a6d,U+9a79,U+9a85,U+9cbb,U+9cd7,U+9cde,U+9e93,U+9f9f\",\n },\n },\n {\n uri: _163,\n descriptors: {\n unicodeRange:\n \"U+4e11,U+4ed7,U+4fcf,U+4fe9,U+4fed,U+50ac,U+50b2,U+5112,U+5180,U+5188,U+51f6,U+522e,U+5265,U+52cb,U+52df,U+5349,U+5367,U+5378,U+537f,U+5395,U+5398,U+53d4,U+543e,U+5440,U+5446,U+54b8,U+5565-5566,U+5580,U+55bb,U+56ca,U+572d,U+573e,U+574e,U+5782-5784,U+58f3,U+5938-5939,U+5948,U+594e,U+5a1c,U+5a74,U+5ae9,U+5b55,U+5b5c,U+5bb0,U+5bd3,U+5bf8,U+5c3f,U+5d14,U+5d2d,U+5df7,U+5dfe,U+5e05-5e06,U+5e1c,U+5e62,U+5e7b,U+5e7d,U+5ed6,U+5f2f,U+5f66,U+5f6c,U+5fa1,U+604b,U+609f,U+60a6,U+60e8,U+6101,U+6124,U+6127,U+6148,U+61be,U+6247,U+62d8,U+62da,U+633d,U+635e,U+6367,U+6380,U+638f,U+63a9,U+63fd,U+641c,U+64e6,U+655e,U+6572,U+6591,U+65a5,U+6691,U+6735,U+67a2-67a3,U+67ef,U+680b,U+6876,U+6905,U+6a0a,U+6a61,U+6b79,U+6bb7,U+6bbf,U+6c41,U+6c55,U+6c83,U+6c9b,U+6ca7,U+6cfc,U+6d46,U+6d51,U+6d74,U+6d9d,U+6daf,U+6dc0,U+6deb,U+6e17,U+6e24,U+6e89,U+6ea2,U+6ef4,U+6f6d,U+707f,U+70b3,U+70e4,U+70ef,U+710a,U+722c,U+725f,U+7261,U+72ee,U+72f1,U+730e,U+732b,U+7433,U+7538,U+75bc,U+7624,U+7709,U+7750,U+7779,U+7802,U+7898,U+78a7,U+78b1,U+78cb,U+78f7,U+7984,U+7a83,U+7aed,U+7b3c,U+7b4b,U+7c92,U+7c98,U+7ca4,U+7eb9,U+7ee3,U+7ef3,U+7ef5,U+7f05,U+7f55,U+7f62,U+7fc1,U+7fd4,U+7fe0,U+8042,U+806a,U+80a0,U+80a4,U+80c3,U+8102,U+8106,U+814a,U+8154,U+8247,U+8258,U+82cd,U+8328,U+832b,U+8389,U+83ca,U+845b,U+846c,U+84b8,U+8574,U+859b,U+8680,U+8695,U+86c7,U+8702,U+886c,U+8896,U+88b1,U+88e4,U+8bc8,U+8c10,U+8c26,U+8c28,U+8c2d,U+8d4c,U+8d63,U+8f67,U+8f74,U+8fc4,U+9006,U+9063,U+90a2,U+90b1,U+90c1,U+9177,U+9189,U+9493,U+949e,U+94fe,U+9610,U+961c,U+96a7,U+96fe,U+978d,U+97f5,U+9888,U+997c,U+9a84,U+9b3c,U+9b44-9b45,U+9b54,U+9e64,U+9f0e,U+9f9a\",\n },\n },\n {\n uri: _164,\n descriptors: {\n unicodeRange:\n \"U+4e19,U+4e38,U+4e53,U+4e7e,U+4e9f,U+4ec6,U+4f50,U+4fde,U+502a,U+5154,U+517d,U+51d1,U+51f0,U+5239,U+5256,U+52c9,U+52fe,U+5308,U+532a,U+535c,U+5384,U+53a2,U+53a8,U+53c9,U+53e0,U+5496,U+54ac,U+54c0,U+54c4,U+54e8,U+5561,U+5582,U+561b,U+5631,U+566a,U+5764,U+576a,U+5792,U+57ab,U+584c,U+5885,U+58f6,U+59a8,U+5acc,U+5bc2,U+5c38-5c39,U+5c60,U+5c6f,U+5c82,U+5c90,U+5d16,U+5dcd,U+5e37,U+5e90,U+5eb8,U+5f6a,U+5fcc,U+6012,U+6068,U+6073,U+607c,U+6094,U+6109,U+621a,U+626e,U+6284,U+62d0,U+62e6,U+62fe,U+6321,U+6328,U+632b,U+6349,U+6454,U+65ed,U+660f,U+6674,U+66a8,U+6749,U+674f,U+6760,U+67af,U+6850,U+6854,U+6869,U+68a8,U+68d2,U+68f5,U+6912,U+6b49,U+6b6a,U+6bef,U+6c28,U+6c5d,U+6c82,U+6cab,U+6cb8,U+6cc4,U+6cf5,U+6d47,U+6d78,U+6da4,U+6dc4,U+6dcb,U+6df9,U+6e0a,U+6e23,U+6e5b,U+6eb6,U+6f06,U+6f47,U+6f84,U+6f9c,U+6fd2,U+7076,U+70ac,U+7199,U+723d,U+72ac,U+72ed,U+7476,U+7529,U+752b,U+754f,U+7554,U+75d5,U+7626,U+76ef,U+7720,U+7766,U+7784,U+77ac,U+780d,U+7838,U+7845,U+786b,U+78b3,U+7978,U+79b9,U+79c9,U+79e7,U+7a3d,U+7a84,U+7a9f,U+7b0b,U+7b52,U+7c7d,U+7f1a,U+7fc5,U+7ff0,U+804a,U+8086-8087,U+808c,U+809a,U+80ba,U+810a,U+8180,U+818f,U+81c2,U+81ed,U+8231,U+8292,U+829c,U+82a6,U+82d1,U+8346,U+838e,U+839e,U+83c7,U+83f1,U+8403,U+840e,U+8513,U+857e,U+85e4,U+867e,U+871c,U+87ba,U+87f9,U+884d,U+8944,U+8a93,U+8c05,U+8d2c,U+8d2e,U+8d42-8d43,U+8dfb,U+8e22,U+8eba,U+8f69,U+8f9c,U+8fa3,U+8fa8,U+8fb1,U+900a,U+9038,U+903b,U+9042,U+904f,U+90b5,U+90dd,U+9102,U+9187,U+94a7,U+94c5,U+9523,U+95f8,U+95fd,U+960e,U+964b-964c,U+96c1,U+9709,U+971c,U+97ad,U+9882,U+9965,U+9976,U+9988,U+99a8,U+9a82,U+9a9a,U+9b41,U+9c8d,U+9e45,U+9e70,U+9e9f,U+9f3b,U+9f7f\",\n },\n },\n {\n uri: _165,\n descriptors: {\n unicodeRange:\n \"U+4e08,U+4e18,U+4e1b,U+4e22,U+4e27,U+4e32,U+4e52,U+4e73,U+4ead,U+4ed4,U+4ed9,U+4ef0,U+4fa6,U+5076,U+5179,U+51bb,U+51c9,U+51ef,U+51fd,U+524a,U+526a,U+529d,U+52ab,U+5306,U+5339,U+53d9,U+540a,U+5410,U+541e,U+5439,U+54b1,U+54ed,U+5564,U+558a,U+55b7,U+5634,U+574a,U+5751,U+57a6,U+57cb,U+57d4,U+5824,U+582a,U+5835,U+5858,U+5893,U+58e4,U+5951,U+5986,U+59da,U+59fb,U+59ff,U+5a03,U+5a46,U+5ac1,U+5b5d,U+5bfa,U+5c18,U+5c3a,U+5c48,U+5c4f,U+5c61,U+5cb3,U+5d1b,U+5e15,U+5e3d,U+5e99,U+5e9e,U+5eca,U+5f0a,U+5f17-5f18,U+5f25,U+5f7c,U+5fcd,U+6028,U+60a0,U+60ac,U+60d1,U+614e,U+6155,U+6168,U+61c8,U+6208,U+6212,U+6251,U+629a-629b,U+62ab-62ac,U+62fc,U+6323,U+632a,U+63d2,U+643a,U+6491-6492,U+649e,U+64b0,U+64c5,U+659c,U+6614,U+662d,U+6664,U+6670,U+6676,U+6746,U+67cf,U+67d4,U+682a,U+6843,U+6846,U+68da,U+6b3a,U+6b67,U+6c27,U+6c5b,U+6c64,U+6c70,U+6caa,U+6cca,U+6ce1,U+6d12,U+6d45,U+6dd1,U+6dd8,U+6e34,U+6e7f,U+6ee5,U+6f02,U+7092,U+70c2,U+70e6,U+7115,U+7237,U+7272,U+727a,U+72c2,U+739b,U+73b2,U+743c,U+751c,U+758f,U+75b2,U+7686,U+76c6,U+76d2,U+76fc,U+775b,U+77a9,U+7816,U+788e,U+7897,U+78b0,U+79bd,U+7a0d,U+7a91,U+7a9d,U+7ae3,U+7bad,U+7cca,U+7d2b,U+7eb1,U+7f06,U+7f14,U+7f1d,U+7f50,U+7ffc,U+8036,U+80bf,U+80c1,U+80ce,U+80f8,U+8109,U+810f,U+8170,U+8179,U+819c,U+821f,U+8230,U+8236,U+8273,U+829d,U+82f9,U+8305,U+8350,U+83b2,U+83cc,U+8404,U+840d,U+8427,U+8482,U+8679,U+8854,U+886b,U+8bbc,U+8be6,U+8c31,U+8c6b,U+8d4b,U+8dcc,U+8e2a,U+8e48,U+8f90,U+8fb0,U+9022,U+903c,U+903e,U+9065,U+916c,U+917f,U+94a9,U+94c3,U+94dd,U+94ed,U+9510,U+953b,U+96c7,U+970d,U+9738,U+9877,U+987d,U+989c,U+98d8,U+9a70,U+9a91,U+9aa4,U+9b42,U+9b4f,U+9e2d,U+9e3f,U+9e7f,U+9f20\",\n },\n },\n {\n uri: _166,\n descriptors: {\n unicodeRange:\n \"U+4e59,U+4ed3,U+4f0f,U+4f38,U+4f69,U+4fa7,U+4faf,U+4ff1,U+5077,U+5085,U+5144,U+5151,U+51af,U+51b6,U+51cc,U+523a,U+5251,U+5269,U+5272,U+52d8,U+5353,U+5389,U+53f9,U+5401,U+5415,U+541b,U+54f2,U+5524,U+554a,U+559d,U+5609,U+5740,U+575d,U+5806,U+5821,U+586b,U+5915,U+594f,U+5960,U+5999,U+59a5,U+59b9,U+59c6,U+59d1,U+59dc,U+5b5f,U+5b64,U+5b87,U+5bb4,U+5bbf,U+5c16,U+5c1d,U+5c3e,U+5c9a,U+5ca9,U+5cad,U+5cfb,U+5de1,U+5de7,U+5de9,U+5ef7,U+5f04,U+5f70,U+5f79,U+5fc6,U+602a,U+6050,U+6052,U+6070,U+6084,U+60b2,U+60dc,U+60e9,U+6167,U+6170,U+61c2,U+6270,U+6291,U+62b1,U+62bc,U+62dc,U+62df,U+62f3,U+6324,U+633a,U+6377,U+6398,U+63cf,U+640f,U+642c-642d,U+6458,U+6478,U+6500,U+654c,U+6566,U+658c,U+65c1,U+65cb,U+65e8,U+65ec,U+6696-6697,U+6734,U+679a,U+679d,U+67dc,U+67f3-67f4,U+680f,U+683d,U+684c,U+68af,U+699c,U+6bc1,U+6c0f,U+6c1b,U+6c57,U+6c6a,U+6d3d,U+6d6e,U+6d82,U+6db5,U+6dee,U+6e58,U+6eaa,U+6ecb,U+6ede,U+6ee9,U+6f0f,U+6f20,U+6f58,U+704c,U+7070,U+70b8,U+718a,U+7238,U+7262,U+7275,U+72b9,U+72d7,U+72e0,U+741b,U+7434,U+7483,U+74f6-74f7,U+75ab,U+764c,U+7761,U+7855,U+7891,U+78c1,U+79d2,U+7a00,U+7a3b,U+7c97,U+7ea4,U+7eb2,U+7ed2,U+7eea,U+7ef8,U+7f18,U+7fbd,U+8000,U+8010,U+8096,U+809d,U+80a9,U+817f,U+81e3,U+8206,U+8212,U+82ac,U+8302,U+8361,U+8377,U+83f2,U+8461,U+848b,U+84ec,U+8521,U+85aa,U+8870,U+8877,U+8881,U+888b,U+88ad,U+88c2,U+8986,U+8bd1,U+8bf1,U+8d24,U+8d2a,U+8d3e-8d3f,U+8d41,U+8d56,U+8d64,U+8d6b,U+8e0f,U+8f70,U+8f85,U+8f88,U+8fa9,U+9003,U+901d,U+90b9,U+90ce,U+94a6,U+94f8,U+9505,U+95ea,U+95ef,U+95f2,U+95f9,U+9601,U+9605,U+9634,U+966a,U+9677,U+9690,U+9694,U+96d5,U+971e,U+9896-9897,U+9972,U+9a71,U+9a76,U+9a7e,U+9e1f,U+9e23\",\n },\n },\n {\n uri: _167,\n descriptors: {\n unicodeRange:\n \"U+4e01,U+4e43,U+4ea6,U+4ef2,U+4eff,U+4f26,U+4f2a,U+4f2f,U+4f5b,U+4fa8,U+4fca,U+4fd7,U+5021,U+504f,U+5141,U+51c0,U+51dd,U+51e4,U+51ed,U+5200,U+5237,U+5427,U+5448,U+54a8,U+5706,U+5708,U+5723,U+575b,U+57c3,U+5899,U+58a8,U+58c1,U+5976,U+5988,U+59bb,U+59d0,U+59d3,U+5a18,U+5a31,U+5a92,U+5b54,U+5b85,U+5baa-5bab,U+5bc4,U+5bd2,U+5be8,U+5bff,U+5c65,U+5d07,U+5e1d,U+5e78,U+5e7c,U+5f03,U+5f1f,U+5f39,U+5f6d,U+5f92,U+5faa,U+5fbd,U+5fe7,U+5ffd,U+60a8,U+60ef,U+6108,U+6162,U+622a,U+6234,U+626b,U+626d,U+62c6,U+62d2,U+62d4,U+62d6,U+62e8,U+6316,U+6355,U+63ed,U+6447,U+64a4,U+65f1,U+6606,U+6628,U+664b,U+6668,U+6682,U+66f9,U+66fc,U+66ff,U+6717,U+6740,U+676d,U+67aa,U+67ec,U+67f1,U+6842,U+6851,U+695a,U+6982,U+6a2a,U+6b20,U+6b23,U+6b32,U+6b96,U+6bc5,U+6beb,U+6c60,U+6c9f,U+6cea,U+6cf3,U+6d1e,U+6d53,U+6d66,U+6d69,U+6d8c,U+6d9b,U+6db2,U+6de1,U+6dfb,U+6e14,U+6ed1,U+6eda,U+6ee8,U+6f2b,U+706d,U+7089,U+708e,U+70ad-70ae,U+70e7,U+7126,U+714c,U+71c3,U+71d5,U+7206,U+7259,U+731b,U+73a9,U+73bb,U+74dc,U+7532,U+7545,U+755c,U+75c7,U+7687,U+76d7,U+76f2,U+788d,U+78e8,U+79e6,U+79e9,U+7a3f,U+7a46,U+7a97,U+7af9,U+7bee,U+7c4d,U+7c89,U+7cd6,U+7eb5,U+7ebd,U+7ed8,U+8017,U+8033,U+80c0,U+80de,U+80f6,U+8138,U+817e,U+81a8,U+820d,U+827e,U+82b3,U+82d7,U+83b1,U+84c4,U+84dd,U+8584,U+864e,U+865a,U+866b,U+86cb,U+88d5,U+89e6,U+8bca,U+8bde,U+8bfa,U+8c0a,U+8c37,U+8c46,U+8c6a,U+8c8c,U+8d1d,U+8d29,U+8d4f,U+8d54,U+8d5a,U+8d60,U+8d62,U+8f7f,U+8f96,U+8f9e-8f9f,U+8fc1,U+8fdf,U+8fea,U+8ff7,U+9012,U+906d,U+9075,U+90a6,U+90bb,U+90ca,U+9178,U+9192,U+91ca,U+94bb,U+94dc,U+94fa,U+9501,U+950b,U+9521,U+955c,U+963b,U+9655,U+9675-9676,U+9887,U+9891,U+9971,U+9a97,U+9ece,U+9ed8\",\n },\n },\n {\n uri: _168,\n descriptors: {\n unicodeRange:\n \"U+4e1d,U+4e39,U+4e4c,U+4e4f,U+4e54,U+4e58,U+4e95,U+4ea1,U+4eab,U+4eae,U+4ec1,U+4f10,U+4f19,U+4f30,U+4f34,U+4fb5,U+503e,U+518c,U+5192,U+51a0,U+51ac,U+51b0,U+51e1,U+5211,U+5242,U+52a3,U+52b2,U+52c3,U+52c7,U+52d2,U+52e4,U+5377,U+539a,U+53a6,U+53e5,U+5417,U+5510,U+552f,U+5531,U+574f-5750,U+5761,U+5851,U+5854,U+58ee,U+593a,U+5949,U+5954,U+5a5a,U+5b8b,U+5bbd,U+5c04,U+5c0a,U+5c4b,U+5ce1,U+5cf0,U+5e10,U+5e8a,U+5e9f,U+5ec9,U+5f31,U+5f84,U+5fd8-5fd9,U+5fe0,U+6015,U+6062,U+6069,U+6076,U+6089,U+60a3,U+60ca,U+620f,U+624e,U+6263,U+6298,U+62a2,U+62bd,U+6311,U+6350,U+6389,U+638c,U+63f4,U+6446,U+644a,U+6469,U+64cd,U+654f,U+6562,U+656c,U+65d7,U+65e6,U+65fa,U+660c,U+6653,U+66b4,U+670b,U+672b,U+676f-6770,U+6881,U+6885,U+68a6,U+68cb,U+68ee,U+6b8a,U+6c88-6c89,U+6cc9,U+6ce5,U+6d01,U+6d17,U+6d1b,U+6d59,U+6d6a,U+6da8,U+6df7,U+6e10,U+6e20-6e21,U+6f5c,U+706f,U+70bc,U+719f,U+7267,U+732a,U+73cd,U+7518,U+756a,U+7586,U+7591,U+75db,U+76c8,U+76d0,U+76d6,U+76d8,U+76df,U+76fe,U+77db,U+7801,U+786c,U+795d,U+7965,U+79cb,U+7a77,U+7a7f,U+7aef,U+7b11,U+7bb1,U+7bc7,U+7ea0,U+7eaf,U+7ed5,U+7edc,U+7f13,U+7f29,U+7f34,U+7f8a,U+7ffb,U+8015,U+8058,U+805a,U+8083,U+80af,U+80c6,U+80cc,U+811a,U+8150,U+82e5,U+8336,U+8352,U+83ab,U+8428,U+8463,U+852c,U+8861,U+89c8,U+8bcd,U+8bd7,U+8bda,U+8be2,U+8bef,U+8bf8,U+8c0b,U+8c13,U+8d34,U+8d3a,U+8d74,U+8d76,U+8da3,U+8dd1,U+8ddd,U+8ddf,U+8df3,U+8f68,U+8f6f,U+8f7d,U+8f91,U+8f9b,U+8fbd,U+8fc8,U+8fd4,U+8feb,U+8ff9,U+900f,U+9057,U+907f-9080,U+90d1,U+90ed,U+91ce,U+9519,U+9526,U+95ed,U+9614,U+9635,U+9644,U+9686,U+96c5,U+96ea,U+9707,U+9732,U+9759,U+978b,U+9876,U+9881,U+9910,U+996e,U+9970,U+9c81,U+9e21,U+9ebb,U+9f84\",\n },\n },\n {\n uri: _169,\n descriptors: {\n unicodeRange:\n \"U+4e3d,U+4e4e,U+4e71,U+4e8f,U+4ed8,U+4eea,U+4f0a,U+4f0d,U+4f11,U+4f1f,U+4f24,U+4f3c,U+4f73,U+4fc4,U+500d,U+5012,U+501f,U+503a,U+505c,U+507f,U+50a8,U+514d,U+5178,U+517c,U+51b2,U+51b7,U+520a,U+5238,U+523b,U+52b1,U+535a,U+5371,U+5385,U+53eb-53ec,U+53f3,U+53f6,U+5409,U+542b,U+542f,U+5434,U+5462,U+5473,U+547c,U+54c8,U+54ea,U+56fa,U+5733,U+5757,U+5766,U+5802,U+585e,U+590f,U+591c,U+591f,U+5947,U+594b,U+5987,U+5a01,U+5b59,U+5b63,U+5b88,U+5b97,U+5b9c,U+5bbe,U+5bfb,U+5c01,U+5c1a,U+5c24,U+5c3c,U+5c97,U+5c9b,U+5cb8,U+5de6,U+5e01,U+5e2e,U+5e45,U+5e55,U+5e84,U+5ef6,U+5f02,U+5f52,U+5f69,U+5f7b,U+5f90,U+5fae,U+6000,U+600e,U+6025,U+60e0,U+6276,U+6297,U+62b5,U+62cd,U+62d3,U+62e5,U+62e9,U+62ff,U+6302,U+632f,U+63e1,U+6444,U+64ad,U+653b,U+6551,U+6563,U+65a4,U+65e7,U+6620,U+667a,U+66f2,U+671d,U+6731,U+6742,U+675f,U+6768,U+677e-677f,U+6790,U+67b6,U+67d3,U+6863,U+68b0,U+68c9,U+690d,U+6b8b,U+6bcd,U+6bd2,U+6bd5,U+6c38,U+6c61,U+6cbf,U+6cdb,U+6cf0,U+6d2a,U+6d89,U+6da6,U+6f6e,U+6fb3,U+7075,U+707e,U+70df,U+7164,U+7236,U+725b,U+7389,U+73e0,U+745e,U+74e6,U+751a,U+7537,U+75be,U+76ae,U+76db,U+793c,U+7956,U+7981,U+79d8,U+79df,U+79fb,U+7adf,U+7ae5,U+7b14,U+7b26,U+7b54,U+7b79,U+7d2f,U+7eb8,U+7eba,U+7ec6,U+7ee9,U+7eff,U+7f5a,U+7f6a,U+7f72,U+8089,U+80a5,U+80e1,U+8111,U+8131,U+821e,U+822c,U+8270,U+8499,U+8651,U+867d,U+8840,U+8857,U+8863,U+88c1,U+89c9,U+89d2,U+8a89,U+8bed,U+8bfe,U+8c01,U+8c22,U+8d21,U+8d25,U+8d2f,U+8d5e,U+8d75,U+8d8b,U+8dc3,U+8de8,U+8df5,U+8f6e,U+8f86,U+8f89,U+8fc5,U+8ff0,U+8ffd,U+9014,U+904d,U+90ae,U+9274,U+949f,U+952e,U+969c,U+96c4,U+96e8,U+96f6-96f7,U+97e9,U+987f,U+996d,U+9a7b,U+9aa8,U+9c7c,U+9c9c,U+9e4f,U+9f13,U+9f50\",\n },\n },\n {\n uri: _170,\n descriptors: {\n unicodeRange:\n \"U+4e13,U+4e16,U+4e1c,U+4e24,U+4e3e,U+4e49,U+4e61,U+4e66,U+4e89,U+4e8c,U+4e94,U+4e9b,U+4ea4,U+4eac,U+4ebf,U+4eca,U+4ef6-4ef7,U+4efb,U+4f18,U+4f20,U+4f46,U+4f7f,U+4fe1,U+503c,U+505a,U+5146,U+5148,U+515a,U+5171,U+5177,U+519b,U+51b3,U+51c6,U+51e0,U+5212,U+521b,U+522b,U+529e,U+52bf,U+534e-534f,U+5355,U+5357,U+5382,U+539f,U+53bb,U+53bf,U+53c2,U+53c8,U+53ca,U+53d6-53d8,U+53e3,U+53ea,U+53f0,U+540d,U+5411,U+56db,U+56de,U+56e0,U+56e2,U+578b,U+57ce,U+57fa,U+589e,U+5904,U+5934,U+5982,U+5b89,U+5b8c,U+5bfc,U+5c06,U+5c11,U+5c40,U+5c71,U+5e38,U+5e72,U+5e76,U+5e7f,U+5e94,U+5e9c,U+5f0f,U+5f15,U+5f20,U+5f3a,U+5f62,U+5f88,U+5fc5,U+5fd7,U+5feb,U+601d,U+6027,U+60c5,U+60f3,U+610f,U+6216,U+6218,U+624b,U+624d,U+6279,U+628a,U+6295,U+6301,U+6307,U+636e,U+63a5,U+63a8,U+652f,U+6536,U+653e,U+6548,U+6559,U+6570,U+65bd,U+65e0,U+6602,U+660e,U+6613,U+66f4,U+6700,U+670d,U+671f,U+672f,U+6743,U+674e,U+6751,U+6761,U+6784,U+6797,U+679c,U+67e5,U+6807,U+6837,U+683c,U+6b21,U+6b63-6b65,U+6bcf,U+6bd4,U+6c42,U+6c5f,U+6ca1,U+6cbb,U+6d3b,U+6d41,U+6d88,U+6df1,U+70b9,U+7136,U+7269,U+7279,U+7531,U+754c,U+767e,U+76ca,U+76f8,U+770b,U+7740,U+7814,U+79ef,U+7a0b,U+7a0e,U+7a76,U+7b80,U+7cbe,U+7cfb,U+7e41,U+7ea7,U+7ec4,U+7ec7,U+7ed3,U+7ed9,U+7edf,U+7f8e,U+8001,U+804c,U+8054,U+80b2,U+81f3,U+8425,U+8868,U+88ab,U+897f,U+89c1-89c2,U+89c4,U+89c6,U+89e3,U+8ba1,U+8ba4,U+8bae,U+8bb0,U+8bba,U+8bc1,U+8c03,U+8d28,U+8d39,U+8def,U+8f66,U+8f6c,U+8fd0-8fd1,U+9020,U+9053,U+90a3,U+90fd,U+91cc,U+9500,U+9547,U+95e8,U+95f4,U+961f,U+9645,U+9662,U+96be,U+96c6,U+9700,U+9769,U+97e6,U+9875,U+9879,U+9886,U+9898,U+98ce,U+9996,U+2b5af,U+2cc56,U+2e9f5,U+30edd-30ede\",\n },\n },\n {\n uri: _171,\n descriptors: {\n unicodeRange:\n \"U+4e03,U+4e30,U+4e34,U+4e45,U+4e60,U+4e70,U+4e88,U+4e91-4e92,U+4ea9,U+4eb2,U+4ec0,U+4ecb,U+4ecd,U+4ee4,U+4fee,U+5019,U+5047,U+50cf,U+5145,U+516d,U+5170,U+5175,U+5199,U+51cf,U+51fb,U+521a,U+5224,U+5267,U+52aa,U+5347-5348,U+534a,U+5356,U+5361,U+536b,U+5370,U+538b,U+53e4,U+53e6,U+5403,U+5426,U+5428,U+542c,U+5438,U+5668,U+56ed,U+56f4,U+56fe,U+57df,U+592a,U+5957,U+5b69,U+5b81,U+5b8f,U+5b98,U+5b9d,U+5ba1,U+5ba4,U+5bb3,U+5bc6,U+5bdf,U+5c3d,U+5c5e,U+5c81,U+5ddd,U+5de8,U+5dee,U+5e0c,U+5e86,U+5e8f,U+5e93,U+5e95,U+5e97,U+5ea7,U+5ead,U+5eb7,U+5f55,U+5f81,U+5f85,U+5ff5,U+6001,U+613f,U+6258,U+6267,U+6269,U+626c,U+627e,U+62db,U+62ec,U+6325,U+635f,U+6362,U+6388,U+6392,U+63a2,U+63a7,U+63aa,U+641e,U+6545,U+6597,U+65e2,U+65e9,U+661f,U+665a,U+666e-666f,U+66fe,U+6728,U+67d0,U+6811,U+6838,U+6865,U+697c,U+6b22,U+6b27,U+6b4c,U+6b62,U+6b66,U+6b7b,U+6bdb,U+6c47,U+6c49,U+6c7d,U+6c99,U+6cfd,U+6d0b,U+6d25,U+6d32,U+6d3e,U+6d4b,U+6e29,U+6e56,U+6e7e,U+6f14,U+6fc0,U+706b,U+70c8,U+7247,U+72af,U+72b6,U+72ec,U+732e,U+73ed,U+7403,U+7533,U+753b,U+7559,U+7565,U+7597,U+767b,U+773c,U+7763,U+77ed,U+77ff,U+7968,U+798f,U+79bb,U+79c0-79c1,U+7ad9,U+7ae0,U+7b51,U+7b7e,U+7cae,U+7d22,U+7ea2,U+7eb3,U+7eb7,U+7ec3,U+7ec8,U+7ecd,U+7edd,U+7efc,U+7f16,U+7f3a,U+7f51,U+7f57,U+7f6e,U+80dc,U+822a,U+8239,U+826f,U+82cf,U+82e6,U+8349,U+8363,U+83dc,U+8457,U+85cf,U+878d,U+8865,U+8a00,U+8b66,U+8ba2,U+8ba8,U+8bad,U+8bb2,U+8bc9,U+8bd5,U+8bfb,U+8d2b,U+8d35,U+8d37,U+8f7b,U+8f93,U+8fce,U+8fdd,U+9000-9002,U+9010,U+9047,U+9093,U+9152,U+9488,U+94a2,U+9633,U+9636,U+963f,U+9646,U+9648,U+964d,U+9664,U+9669,U+9760,U+97f3,U+987a,U+987e,U+9884,U+98de,U+9986,U+9ed1\",\n },\n },\n {\n uri: _172,\n descriptors: {\n unicodeRange:\n \"U+4e14,U+4e25,U+4e48,U+4e50,U+4e5d,U+4e9a,U+4ec5,U+4efd,U+4f17,U+4f4e-4f4f,U+4f55,U+4f59,U+4f60,U+4f8b,U+4f9b,U+4f9d,U+4fbf,U+4fc3,U+5065,U+513f,U+5149,U+514b,U+516b,U+5174,U+517b,U+518d,U+51b5,U+5207,U+5217-5219,U+521d,U+526f,U+529f,U+52a9,U+52b3,U+5305,U+533b,U+5343,U+5360,U+5373-5374,U+5386,U+53cb-53cd,U+53f2,U+53f7,U+544a,U+5468,U+547d,U+54cd,U+552e,U+5584,U+56f0,U+571f,U+5747,U+575a,U+57f9,U+5883,U+58eb,U+58f0,U+5907,U+590d,U+592e,U+5931,U+5956,U+5965,U+5973,U+5979,U+59cb,U+5b57-5b58,U+5b83,U+5ba2-5ba3,U+5bb9,U+5bcc,U+5c42,U+5c45,U+5c4a,U+5dde,U+5df1,U+5df4,U+5e03,U+5e08,U+5e26,U+5e2d,U+5f71,U+5f80,U+5f8b,U+5fb7,U+606f,U+611f,U+6237,U+623f,U+6253,U+627f,U+6293,U+62a4,U+62c5,U+62c9,U+6309,U+6574,U+6599,U+65ad,U+65af,U+65c5,U+65cf,U+6625,U+663e,U+671b,U+672a,U+6750,U+6781,U+6821,U+6839,U+6848,U+68c0,U+6a21,U+6b3e,U+6bb5,U+6c14,U+6cb3,U+6cb9,U+6ce8,U+6e05,U+6e2f,U+6e38,U+6e90,U+6ee1,U+70ed,U+7167,U+7231,U+7248,U+724c,U+7387,U+738b,U+73af,U+7530,U+75c5,U+767d,U+76d1,U+76f4,U+771f,U+77e5,U+77f3,U+7834,U+7840,U+786e,U+793a,U+795e,U+79f0,U+7a33,U+7a7a,U+7a81,U+7ade,U+7b56,U+7b97,U+7c73,U+7c7b,U+7d20,U+7d27,U+7ea6,U+7eaa,U+7ebf,U+7ee7,U+7eed,U+7ef4,U+7fa4,U+8003,U+80a1,U+81f4,U+8272,U+827a,U+8282,U+82b1,U+82f1,U+8303,U+836f,U+83b7,U+843d,U+88c5,U+8ba9,U+8baf,U+8bb8,U+8bbf,U+8bc4,U+8bc6,U+8bdd,U+8be5,U+8bf7,U+8c08,U+8c61,U+8d1f,U+8d22-8d23,U+8d27,U+8d2d,U+8d38,U+8d5b,U+8d70,U+8d85,U+8d8a,U+8db3,U+8eab,U+8f83,U+8fb9,U+8fdc,U+8fde,U+9009,U+901f,U+914d,U+91c7,U+94b1,U+94c1,U+94f6,U+95fb,U+9632,U+9650,U+968f,U+9752,U+975e,U+987b,U+989d,U+98df,U+9999,U+9a6c,U+9a8c,U+9ec4,U+9feb-9fec\",\n },\n },\n {\n uri: _173,\n descriptors: {\n unicodeRange:\n \"U+98fb-990c,U+990e-990f,U+9911-992d,U+992f-9953,U+9956-9962,U+9964,U+9966,U+9973,U+9978-9979,U+997b,U+997e,U+9982-9983,U+9989,U+998c,U+998e,U+999a-99a4,U+99a6-99a7,U+99a9-99c8\",\n },\n },\n {\n uri: _174,\n descriptors: {\n unicodeRange:\n \"U+8e4c-8e50,U+8e53-8e58,U+8e5a-8e65,U+8e67-8e68,U+8e6a-8e6b,U+8e6e,U+8e71,U+8e73,U+8e75,U+8e77-8e7b,U+8e7d-8e7e,U+8e80,U+8e82-8e84,U+8e86,U+8e88-8e8e,U+8e91-8e93,U+8e95-8e9b,U+8e9d,U+8e9f-8eaa,U+8ead-8eae,U+8eb0-8eb1,U+8eb3-8eb9,U+8ebb-8ecd,U+8ecf-8f02\",\n },\n },\n {\n uri: _175,\n descriptors: {\n unicodeRange:\n \"U+2e3a,U+3001-3002,U+3008-3011,U+3014-3017,U+301d-301f,U+4dae,U+4e00,U+4e07,U+4e09-4e0b,U+4e0d-4e0e,U+4e1a,U+4e2a,U+4e2d,U+4e3a-4e3b,U+4e4b,U+4e5f,U+4e86,U+4e8b,U+4e8e,U+4ea7,U+4eba,U+4ece,U+4ed1,U+4ed6,U+4ee3,U+4ee5,U+4eec,U+4f01,U+4f1a,U+4f4d,U+4f53,U+4f5c,U+4fdd,U+5143,U+5165,U+5168,U+516c,U+5173,U+5176,U+5185,U+519c,U+51fa,U+5206,U+5229,U+5230,U+5236,U+524d,U+529b,U+52a0-52a1,U+52a8,U+5316-5317,U+533a,U+5341,U+5362,U+53d1,U+53ef,U+53f8,U+5404,U+5408,U+540c,U+540e,U+5458,U+548c,U+54c1,U+54e5,U+5546,U+559c,U+56fd,U+5728,U+5730,U+573a,U+5916,U+591a,U+5927,U+5929,U+592b,U+597d,U+59d4,U+5b50,U+5b66,U+5b9a,U+5b9e,U+5bb6,U+5bf9,U+5c0f,U+5c14,U+5c31,U+5c55,U+5de5,U+5df2,U+5e02,U+5e73-5e74,U+5ea6,U+5efa,U+5f00,U+5f53,U+5f97,U+5fc3,U+603b,U+6210-6211,U+6240,U+6280,U+62a5,U+63d0,U+6539,U+653f,U+6587,U+65b0,U+65b9,U+65e5,U+65f6,U+662f,U+6708-6709,U+672c,U+673a,U+675c,U+6765,U+6c11,U+6c34,U+6cd5,U+6ce2,U+6d4e,U+6d77,U+73b0,U+7406,U+751f,U+7528,U+7535,U+7684,U+76ee,U+793e,U+79cd,U+79d1,U+7acb,U+7b2c,U+7b49,U+7ba1,U+7ecf,U+8005,U+800c,U+80fd,U+81ea,U+884c,U+8981,U+8bbe,U+8bf4,U+8d44,U+8d77,U+8fbe,U+8fc7,U+8fd8-8fd9,U+8fdb,U+901a,U+90e8,U+91cd,U+91cf,U+91d1,U+9485,U+957f,U+95ee,U+9762,U+9ad8,U+9ea6,U+9f99,U+9fcf,U+9fd4,U+9fed,U+fe10-fe19,U+fe30-fe31,U+fe33-fe44,U+ff01,U+ff0c,U+ff1f,U+2b4e7,U+2b7f7,U+2b7fc,U+2cb2d,U+2cb3b,U+2cb4a,U+2cb5b,U+2cb73\",\n },\n },\n {\n uri: _176,\n descriptors: {\n unicodeRange:\n \"U+6490,U+6493-6494,U+6497-6498,U+649a-649d,U+649f-64a3,U+64a5-64a8,U+64aa-64ab,U+64af,U+64b1-64b4,U+64b6,U+64b9,U+64bb,U+64bd-64bf,U+64c1,U+64c3-64c4,U+64c6-64cc,U+64cf,U+64d1,U+64d3-64d6,U+64d9-64dd,U+64df-64e1,U+64e3,U+64e5,U+64e7-64ff,U+6501-6508,U+650a-6511,U+6513-6517,U+6519-6524,U+6526-652a,U+652c-652d,U+6530-6533,U+6537,U+653a,U+653c-653d,U+6540-6544,U+6546-6547,U+654a-654b,U+654d-654e,U+6550,U+6552-6554,U+6557-6558,U+655a,U+655c,U+655f-6561,U+6564-6565,U+6567-6568\",\n },\n },\n {\n uri: _177,\n descriptors: {\n unicodeRange:\n \"U+9695-9696,U+969a-969b,U+969d-96a6,U+96a8-96af,U+96b1-96b2,U+96b4-96b5,U+96b7-96b8,U+96ba-96bb,U+96bf,U+96c2-96c3,U+96c8,U+96ca-96cb,U+96d0-96d1,U+96d3-96d4,U+96d6-96df,U+96e1-96e7,U+96eb-96ee,U+96f0-96f2,U+96f4-96f5,U+96f8,U+96fa-96fd,U+96ff,U+9702-9703,U+9705,U+970a-970c,U+9710-9712,U+9714-9715,U+9717-971b,U+971d,U+971f-9729,U+972b-972c,U+972e-972f,U+9731,U+9733-9737,U+973a-973d,U+973f-9751,U+9754-9755,U+9757-9758,U+975a,U+975c-975d,U+975f,U+9763-9764,U+9766-9768,U+976a-9770\",\n },\n },\n {\n uri: _178,\n descriptors: {\n unicodeRange:\n \"U+6af0-6b1f,U+6b25-6b26,U+6b28-6b31,U+6b33-6b36,U+6b38,U+6b3b-6b3d,U+6b3f-6b42,U+6b44-6b45,U+6b48,U+6b4a-6b4b,U+6b4d-6b58,U+6b5a-6b61,U+6b68-6b69,U+6b6b-6b78,U+6b7a,U+6b7d-6b80,U+6b85,U+6b88,U+6b8c,U+6b8e-6b91,U+6b94-6b95,U+6b97-6b99,U+6b9c-6ba0,U+6ba2-6ba9,U+6bab-6bb2,U+6bb6,U+6bb8-6bba\",\n },\n },\n {\n uri: _179,\n descriptors: {\n unicodeRange:\n \"U+430e-439a,U+29e8a,U+29ec4,U+29edb,U+29ee9,U+29f7e,U+29f83,U+29f8c,U+29fce,U+2a01a,U+2a02f,U+2a082,U+2a0f9,U+2a190,U+2a38c\",\n },\n },\n {\n uri: _180,\n descriptors: { unicodeRange: \"U+92ef-933d,U+933f-9369,U+936b-9388\" },\n },\n {\n uri: _181,\n descriptors: {\n unicodeRange:\n \"U+4512-458d,U+2b300,U+2b363,U+2b36f,U+2b372,U+2b37d,U+2b404,U+2b410,U+2b413,U+2b461,U+2b4ef,U+2b4f6,U+2b4f9,U+2b50d-2b50e,U+2b536,U+2b5ae,U+2b5b3,U+2b5e7,U+2b5f4,U+2b61c-2b61d,U+2b626-2b628,U+2b62a,U+2b62c,U+2b695-2b696,U+2b6ad,U+2b6ed\",\n },\n },\n {\n uri: _182,\n descriptors: {\n unicodeRange:\n \"U+88bd-88c0,U+88c3-88c4,U+88c7-88c8,U+88ca-88cd,U+88cf-88d1,U+88d3,U+88d6-88d7,U+88da-88de,U+88e0-88e1,U+88e6-88e7,U+88e9-88ef,U+88f2,U+88f5-88f7,U+88fa-88fb,U+88fd,U+88ff-8901,U+8903-8909,U+890b-890f,U+8911,U+8914-8918,U+891c-8920,U+8922-8924,U+8926-8929,U+892c-892f,U+8931-8933,U+8935,U+8937-8940,U+8942-8943,U+8945-895d,U+8960-8965,U+8967-897a,U+897c-897e,U+8980,U+8982,U+8984-8985\",\n },\n },\n { uri: _183, descriptors: { unicodeRange: \"U+4b0b-4ba0\" } },\n {\n uri: _184,\n descriptors: {\n unicodeRange:\n \"U+7179,U+717b-717c,U+717e-7183,U+7185-7189,U+718b-718e,U+7190-7193,U+7195-7197,U+719a-719e,U+71a1-71a7,U+71a9-71ab,U+71ad-71b2,U+71b4,U+71b6-71b8,U+71ba-71c2,U+71c4-71cd,U+71cf-71d3,U+71d6-71df,U+71e1-71e4,U+71e6,U+71e8-71ed,U+71ef-71f8,U+71fa-7205,U+7207-721c,U+721e-7227,U+7229,U+722b,U+722d\",\n },\n },\n {\n uri: _185,\n descriptors: {\n unicodeRange:\n \"U+982e-9874,U+988b,U+988e,U+9892,U+9895,U+9899,U+98a3,U+98a8-98cd,U+98cf-98d0,U+98d4,U+98d6-98d7,U+98db-98dd,U+98e0-98e6,U+98e9-98fa\",\n },\n },\n {\n uri: _186,\n descriptors: {\n unicodeRange:\n \"U+7c14-7c15,U+7c17-7c1e,U+7c20-7c25,U+7c28-7c29,U+7c2b-7c37,U+7c39-7c3e,U+7c42-7c4c,U+7c4e-7c72,U+7c75-7c7a,U+7c7e-7c88,U+7c8a-7c90,U+7c93-7c94,U+7c96,U+7c99-7c9b,U+7ca0-7ca1,U+7ca3,U+7ca6-7ca9,U+7cab-7cad,U+7caf-7cb0,U+7cb4-7cb8,U+7cba-7cbb,U+7cbf-7cc0,U+7cc2-7cc4,U+7cc6,U+7cc9,U+7ccb,U+7cce-7cd4\",\n },\n },\n {\n uri: _187,\n descriptors: { unicodeRange: \"U+7d95-7da5,U+7da7-7dad,U+7daf-7e2a\" },\n },\n { uri: _188, descriptors: { unicodeRange: \"U+4a78-4b0a\" } },\n {\n uri: _189,\n descriptors: {\n unicodeRange:\n \"U+9b30-9b31,U+9b33-9b3a,U+9b3d-9b40,U+9b46,U+9b4a-9b4c,U+9b4e,U+9b50,U+9b52-9b53,U+9b55-9bcf\",\n },\n },\n {\n uri: _190,\n descriptors: {\n unicodeRange:\n \"U+6a4b-6a4f,U+6a51-6a57,U+6a5a,U+6a5c-6a60,U+6a62-6a64,U+6a66-6a70,U+6a72-6a78,U+6a7a-6a7b,U+6a7d-6a7f,U+6a81-6a83,U+6a85-6a8d,U+6a8f,U+6a92-6a96,U+6a98-6a9f,U+6aa1-6aa8,U+6aaa,U+6aad-6aef\",\n },\n },\n { uri: _191, descriptors: { unicodeRange: \"U+99c9-9a53\" } },\n {\n uri: _192,\n descriptors: {\n unicodeRange:\n \"U+8550-8555,U+8557-8558,U+855a-855d,U+855f-8563,U+8565-8567,U+8569-8571,U+8573,U+8575-8578,U+857c-857d,U+857f-8583,U+8586,U+8588-858e,U+8590-859a,U+859d-85a3,U+85a5-85a7,U+85a9,U+85ab-85ad,U+85b1-85b6,U+85b8,U+85ba-85c0,U+85c2-85c8,U+85ca-85ce,U+85d1-85d2,U+85d4,U+85d6-85db,U+85dd-85e3,U+85e5-85e8,U+85ea-85fa,U+85fc-85fe,U+8600-8603\",\n },\n },\n {\n uri: _193,\n descriptors: {\n unicodeRange:\n \"U+6fb2,U+6fb4-6fb5,U+6fb7-6fb8,U+6fba-6fbf,U+6fc1,U+6fc3-6fc8,U+6fca-6fd0,U+6fd3-6fdd,U+6fdf,U+6fe2-6fed,U+6ff0-7010,U+7012-7019,U+701c-7022,U+7024-7034,U+7036-7038,U+703a-704b,U+704d-704e,U+7050-7053\",\n },\n },\n { uri: _194, descriptors: { unicodeRange: \"U+4ba1-4c2c\" } },\n {\n uri: _195,\n descriptors: {\n unicodeRange:\n \"U+9a54-9a6b,U+9a72,U+9a83,U+9a89,U+9a8d-9a8e,U+9a94-9a95,U+9a99,U+9aa6,U+9aa9-9aaf,U+9ab2-9ab5,U+9ab9,U+9abb,U+9abd-9abf,U+9ac3-9ac4,U+9ac6-9aca,U+9acd-9ad0,U+9ad2,U+9ad4-9ad7,U+9ad9-9ade,U+9ae0,U+9ae2-9ae5,U+9ae7-9aea,U+9aec,U+9aee,U+9af0-9af8,U+9afa,U+9afc-9b02,U+9b04-9b07,U+9b09-9b0e,U+9b10-9b12,U+9b14-9b1e,U+9b20-9b22,U+9b24-9b2e\",\n },\n },\n { uri: _196, descriptors: { unicodeRange: \"U+9d1a-9da1\" } },\n {\n uri: _197,\n descriptors: {\n unicodeRange:\n \"U+9e13-9e1e,U+9e24,U+9e27,U+9e2e,U+9e30,U+9e34,U+9e3b-9e3c,U+9e40,U+9e4d,U+9e50,U+9e52-9e54,U+9e56,U+9e59,U+9e5d,U+9e5f-9e62,U+9e65,U+9e6e-9e6f,U+9e72,U+9e74-9e7d,U+9e80-9e81,U+9e83-9e86,U+9e89-9e8a,U+9e8c-9e91,U+9e94-9e9c,U+9e9e,U+9ea0-9ea5,U+9ea7-9eb3,U+9eb5-9eb7,U+9eb9-9eba,U+9ebc,U+9ebf-9ec3,U+9ec5-9ec8,U+9eca-9ecc,U+9ed0,U+9ed2-9ed3,U+9ed5-9ed7,U+9ed9-9eda,U+9ede,U+9ee1,U+9ee3-9ee4,U+9ee6,U+9ee8,U+9eeb-9eee,U+9ef0-9ef8\",\n },\n },\n {\n uri: _198,\n descriptors: {\n unicodeRange:\n \"U+8b1c-8b25,U+8b27-8b65,U+8b67-8b6b,U+8b6d-8b9f,U+8bac,U+8bb1,U+8bbb,U+8bc7,U+8bd0\",\n },\n },\n { uri: _199, descriptors: { unicodeRange: \"U+4cad-4d2f\" } },\n {\n uri: _200,\n descriptors: {\n unicodeRange:\n \"U+9c4b-9c7b,U+9c7d-9c7e,U+9c80,U+9c83-9c84,U+9c89-9c8a,U+9c8c,U+9c8f,U+9c93,U+9c96-9c99,U+9c9d,U+9caa,U+9cac,U+9caf,U+9cb9,U+9cbe-9cc2,U+9cc8-9cc9,U+9cd1-9cd2,U+9cda-9cdb,U+9ce0-9ce1,U+9ce3-9d19\",\n },\n },\n {\n uri: _201,\n descriptors: {\n unicodeRange: \"U+9389-938e,U+9390-93c9,U+93cb-93d5,U+93d7-9410\",\n },\n },\n {\n uri: _202,\n descriptors: {\n unicodeRange:\n \"U+20a0-20b5,U+20b9-20ba,U+20bc-20bd,U+4e2c,U+5107,U+5216,U+5293,U+54f3,U+5523,U+5819,U+5adc,U+5c88,U+5e3b,U+5fee,U+62f6,U+63be,U+6484,U+6499,U+67d9,U+67dd,U+6d5e,U+6f46,U+717a,U+71e0,U+72c1,U+73e7,U+75b0,U+7603,U+7722,U+7809,U+7811,U+7946,U+7967,U+799a,U+7b45,U+7ba2,U+8014,U+80d9,U+8159,U+817d,U+81a3,U+81aa,U+8201,U+833c,U+836e,U+83e5,U+8459,U+84f0,U+8729,U+8753,U+87d3,U+89dc,U+8bf6,U+8c2e,U+8e2c,U+8e9c,U+8e9e,U+8ece,U+8fee,U+9139,U+914f,U+9174,U+9191,U+960c,U+9622,U+9a98,U+9b48,U+9ca6,U+9cb0,U+9da2-9e12,U+9e88,U+9f44,U+9f86\",\n },\n },\n { uri: _203, descriptors: { unicodeRange: \"U+9bd0-9c4a\" } },\n { uri: _204, descriptors: { unicodeRange: \"U+4c2d-4cac\" } },\n { uri: _205, descriptors: { unicodeRange: \"U+4d30-4dab\" } },\n {\n uri: _206,\n descriptors: { unicodeRange: \"U+9411-943d,U+943f-946a,U+946c-9484\" },\n },\n {\n uri: _207,\n descriptors: {\n unicodeRange:\n \"U+9efa,U+9efd,U+9eff-9f0a,U+9f0c,U+9f0f,U+9f11-9f12,U+9f14-9f16,U+9f18,U+9f1a-9f1f,U+9f21,U+9f23-9f2b,U+9f2d-9f2e,U+9f30-9f36,U+9f38,U+9f3a,U+9f3c,U+9f3f-9f43,U+9f45-9f4f,U+9f52-9f7e,U+9f81-9f82,U+9f8d-9f94\",\n },\n },\n {\n uri: _208,\n descriptors: {\n unicodeRange:\n \"U+7e2b-7e3a,U+7e3c-7e40,U+7e42-7e46,U+7e48-7e81,U+7e83-7e9a,U+7e9c-7e9e,U+7eae,U+7eb4,U+7ebb-7ebc,U+7ed6,U+7ee4,U+7eec,U+7ef9,U+7f0a,U+7f10,U+7f1e,U+7f37,U+7f39,U+7f3b\",\n },\n },\n];\n", "import {\n FONT_FAMILY,\n FONT_FAMILY_FALLBACKS,\n CJK_HAND_DRAWN_FALLBACK_FONT,\n WINDOWS_EMOJI_FALLBACK_FONT,\n getFontFamilyFallbacks,\n FONT_SIZES,\n} from \"@excalidraw/common\";\nimport { getContainerElement } from \"@excalidraw/element\";\nimport { charWidth } from \"@excalidraw/element\";\nimport { containsCJK } from \"@excalidraw/element\";\n\nimport {\n FONT_METADATA,\n type FontMetadata,\n getFontString,\n PromisePool,\n promiseTry,\n} from \"@excalidraw/common\";\n\nimport { ShapeCache } from \"@excalidraw/element\";\n\nimport { isTextElement } from \"@excalidraw/element\";\n\nimport type {\n ExcalidrawElement,\n ExcalidrawTextElement,\n} from \"@excalidraw/element/types\";\n\nimport type { ValueOf } from \"@excalidraw/common/utility-types\";\n\nimport type { Scene } from \"@excalidraw/element\";\n\nimport { CascadiaFontFaces } from \"./Cascadia\";\nimport { ComicShannsFontFaces } from \"./ComicShanns\";\nimport { EmojiFontFaces } from \"./Emoji\";\nimport { ExcalidrawFontFace } from \"./ExcalidrawFontFace\";\nimport { ExcalifontFontFaces } from \"./Excalifont\";\nimport { HelveticaFontFaces } from \"./Helvetica\";\nimport { LiberationFontFaces } from \"./Liberation\";\nimport { LilitaFontFaces } from \"./Lilita\";\nimport { NunitoFontFaces } from \"./Nunito\";\nimport { VirgilFontFaces } from \"./Virgil\";\nimport { XiaolaiFontFaces } from \"./Xiaolai\";\n\nexport class Fonts {\n // it's ok to track fonts across multiple instances only once, so let's use\n // a static member to reduce memory footprint\n public static readonly loadedFontsCache = new Set<string>();\n\n private static _registered:\n | Map<\n number,\n {\n metadata: FontMetadata;\n fontFaces: ExcalidrawFontFace[];\n }\n >\n | undefined;\n\n private static _initialized: boolean = false;\n\n public static get registered() {\n // lazy load the font registration\n if (!Fonts._registered) {\n Fonts._registered = Fonts.init();\n } else if (!Fonts._initialized) {\n // case when host app register fonts before they are lazy loaded\n // don't override whatever has been previously registered\n Fonts._registered = new Map([\n ...Fonts.init().entries(),\n ...Fonts._registered.entries(),\n ]);\n }\n\n return Fonts._registered;\n }\n\n public get registered() {\n return Fonts.registered;\n }\n\n private readonly scene: Scene;\n\n constructor(scene: Scene) {\n this.scene = scene;\n }\n\n /**\n * Get all the font families for the given scene.\n */\n public getSceneFamilies = () => {\n return Fonts.getUniqueFamilies(this.scene.getNonDeletedElements());\n };\n\n /**\n * if we load a (new) font, it's likely that text elements using it have\n * already been rendered using a fallback font. Thus, we want invalidate\n * their shapes and rerender. See #637.\n *\n * Invalidates text elements and rerenders scene, provided that at least one\n * of the supplied fontFaces has not already been processed.\n */\n public onLoaded = (fontFaces: readonly FontFace[]): void => {\n // bail if all fonts with have been processed. We're checking just a\n // subset of the font properties (though it should be enough), so it\n // can technically bail on a false positive.\n let shouldBail = true;\n\n for (const fontFace of fontFaces) {\n const sig = `${fontFace.family}-${fontFace.style}-${fontFace.weight}-${fontFace.unicodeRange}`;\n\n // make sure to update our cache with all the loaded font faces\n if (!Fonts.loadedFontsCache.has(sig)) {\n Fonts.loadedFontsCache.add(sig);\n shouldBail = false;\n }\n }\n\n if (shouldBail) {\n return;\n }\n\n let didUpdate = false;\n\n const elementsMap = this.scene.getNonDeletedElementsMap();\n\n for (const element of this.scene.getNonDeletedElements()) {\n if (isTextElement(element)) {\n didUpdate = true;\n ShapeCache.delete(element);\n\n // clear the width cache, so that we don't perform subsequent wrapping based on the stale fallback font metrics\n charWidth.clearCache(getFontString(element));\n\n const container = getContainerElement(element, elementsMap);\n if (container) {\n ShapeCache.delete(container);\n }\n }\n }\n\n if (didUpdate) {\n this.scene.triggerUpdate();\n }\n };\n\n /**\n * Load font faces for a given scene and trigger scene update.\n */\n public loadSceneFonts = async (): Promise<FontFace[]> => {\n const sceneFamilies = this.getSceneFamilies();\n const charsPerFamily = Fonts.getCharsPerFamily(\n this.scene.getNonDeletedElements(),\n );\n\n return Fonts.loadFontFaces(sceneFamilies, charsPerFamily);\n };\n\n /**\n * Load font faces for passed elements - use when the scene is unavailable (i.e. export).\n */\n public static loadElementsFonts = async (\n elements: readonly ExcalidrawElement[],\n ): Promise<FontFace[]> => {\n const fontFamilies = Fonts.getUniqueFamilies(elements);\n const charsPerFamily = Fonts.getCharsPerFamily(elements);\n\n return Fonts.loadFontFaces(fontFamilies, charsPerFamily);\n };\n\n /**\n * Generate CSS @font-face declarations for the given elements.\n */\n public static async generateFontFaceDeclarations(\n elements: readonly ExcalidrawElement[],\n ) {\n const families = Fonts.getUniqueFamilies(elements);\n const charsPerFamily = Fonts.getCharsPerFamily(elements);\n\n // for simplicity, assuming we have just one family with the CJK handdrawn fallback\n const familyWithCJK = families.find((x) =>\n getFontFamilyFallbacks(x).includes(CJK_HAND_DRAWN_FALLBACK_FONT),\n );\n\n if (familyWithCJK) {\n const characters = Fonts.getCharacters(charsPerFamily, familyWithCJK);\n\n if (containsCJK(characters)) {\n const family = FONT_FAMILY_FALLBACKS[CJK_HAND_DRAWN_FALLBACK_FONT];\n\n // adding the same characters to the CJK handrawn family\n charsPerFamily[family] = new Set(characters);\n\n // the order between the families and fallbacks is important, as fallbacks need to be defined first and in the reversed order\n // so that they get overriden with the later defined font faces, i.e. in case they share some codepoints\n families.unshift(FONT_FAMILY_FALLBACKS[CJK_HAND_DRAWN_FALLBACK_FONT]);\n }\n }\n\n // don't trigger hundreds of concurrent requests (each performing fetch, creating a worker, etc.),\n // instead go three requests at a time, in a controlled manner, without completely blocking the main thread\n // and avoiding potential issues such as rate limits\n const iterator = Fonts.fontFacesStylesGenerator(families, charsPerFamily);\n const concurrency = 3;\n const fontFaces = await new PromisePool(iterator, concurrency).all();\n\n // dedup just in case (i.e. could be the same font faces with 0 glyphs)\n return Array.from(new Set(fontFaces));\n }\n\n private static async loadFontFaces(\n fontFamilies: Array<ExcalidrawTextElement[\"fontFamily\"]>,\n charsPerFamily: Record<number, Set<string>>,\n ) {\n // add all registered font faces into the `document.fonts` (if not added already)\n for (const { fontFaces, metadata } of Fonts.registered.values()) {\n // skip registering font faces for local fonts (i.e. Helvetica)\n if (metadata.local) {\n continue;\n }\n\n for (const { fontFace } of fontFaces) {\n if (!window.document.fonts.has(fontFace)) {\n window.document.fonts.add(fontFace);\n }\n }\n }\n\n // loading 10 font faces at a time, in a controlled manner\n const iterator = Fonts.fontFacesLoader(fontFamilies, charsPerFamily);\n const concurrency = 10;\n const fontFaces = await new PromisePool(iterator, concurrency).all();\n return fontFaces.flat().filter(Boolean);\n }\n\n private static *fontFacesLoader(\n fontFamilies: Array<ExcalidrawTextElement[\"fontFamily\"]>,\n charsPerFamily: Record<number, Set<string>>,\n ): Generator<Promise<void | readonly [number, FontFace[]]>> {\n for (const [index, fontFamily] of fontFamilies.entries()) {\n const font = getFontString({\n fontFamily,\n fontSize: FONT_SIZES.sm,\n });\n\n // WARN: without \"text\" param it does not have to mean that all font faces are loaded as it could be just one irrelevant font face!\n // instead, we are always checking chars used in the family, so that no required font faces remain unloaded\n const text = Fonts.getCharacters(charsPerFamily, fontFamily);\n\n if (!window.document.fonts.check(font, text)) {\n yield promiseTry(async () => {\n try {\n // WARN: browser prioritizes loading only font faces with unicode ranges for characters which are present in the document (html & canvas), other font faces could stay unloaded\n // we might want to retry here, i.e. in case CDN is down, but so far I didn't experience any issues - maybe it handles retry-like logic under the hood\n const fontFaces = await window.document.fonts.load(font, text);\n\n return [index, fontFaces];\n } catch (e) {\n // don't let it all fail if just one font fails to load\n console.error(\n `Failed to load font \"${font}\" from urls \"${Fonts.registered\n .get(fontFamily)\n ?.fontFaces.map((x) => x.urls)}\"`,\n e,\n );\n }\n });\n }\n }\n }\n\n private static *fontFacesStylesGenerator(\n families: Array<number>,\n charsPerFamily: Record<number, Set<string>>,\n ): Generator<Promise<void | readonly [number, string]>> {\n for (const [familyIndex, family] of families.entries()) {\n const { fontFaces, metadata } = Fonts.registered.get(family) ?? {};\n\n if (!Array.isArray(fontFaces)) {\n console.error(\n `Couldn't find registered fonts for font-family \"${family}\"`,\n Fonts.registered,\n );\n continue;\n }\n\n if (metadata?.local) {\n // don't inline local fonts\n continue;\n }\n\n for (const [fontFaceIndex, fontFace] of fontFaces.entries()) {\n yield promiseTry(async () => {\n try {\n const characters = Fonts.getCharacters(charsPerFamily, family);\n const fontFaceCSS = await fontFace.toCSS(characters);\n\n if (!fontFaceCSS) {\n return;\n }\n\n // giving a buffer of 10K font faces per family\n const fontFaceOrder = familyIndex * 10_000 + fontFaceIndex;\n const fontFaceTuple = [fontFaceOrder, fontFaceCSS] as const;\n\n return fontFaceTuple;\n } catch (error) {\n console.error(\n `Couldn't transform font-face to css for family \"${fontFace.fontFace.family}\"`,\n error,\n );\n }\n });\n }\n }\n }\n\n /**\n * Register a new font.\n *\n * @param family font family\n * @param metadata font metadata\n * @param fontFacesDecriptors font faces descriptors\n */\n private static register(\n this:\n | Fonts\n | {\n registered: Map<\n number,\n { metadata: FontMetadata; fontFaces: ExcalidrawFontFace[] }\n >;\n },\n family: string,\n metadata: FontMetadata,\n ...fontFacesDecriptors: ExcalidrawFontFaceDescriptor[]\n ) {\n // TODO: likely we will need to abandon number value in order to support custom fonts\n const fontFamily =\n FONT_FAMILY[family as keyof typeof FONT_FAMILY] ??\n FONT_FAMILY_FALLBACKS[family as keyof typeof FONT_FAMILY_FALLBACKS];\n\n const registeredFamily = this.registered.get(fontFamily);\n\n if (!registeredFamily) {\n this.registered.set(fontFamily, {\n metadata,\n fontFaces: fontFacesDecriptors.map(\n ({ uri, descriptors }) =>\n new ExcalidrawFontFace(family, uri, descriptors),\n ),\n });\n }\n\n return this.registered;\n }\n\n /**\n * WARN: should be called just once on init, even across multiple instances.\n */\n private static init() {\n const fonts = {\n registered: new Map<\n ValueOf<typeof FONT_FAMILY | typeof FONT_FAMILY_FALLBACKS>,\n { metadata: FontMetadata; fontFaces: ExcalidrawFontFace[] }\n >(),\n };\n\n const init = (\n family: keyof typeof FONT_FAMILY | keyof typeof FONT_FAMILY_FALLBACKS,\n ...fontFacesDescriptors: ExcalidrawFontFaceDescriptor[]\n ) => {\n const fontFamily =\n FONT_FAMILY[family as keyof typeof FONT_FAMILY] ??\n FONT_FAMILY_FALLBACKS[family as keyof typeof FONT_FAMILY_FALLBACKS];\n\n // default to Excalifont metrics\n const metadata =\n FONT_METADATA[fontFamily] ?? FONT_METADATA[FONT_FAMILY.Excalifont];\n\n Fonts.register.call(fonts, family, metadata, ...fontFacesDescriptors);\n };\n\n init(\"Cascadia\", ...CascadiaFontFaces);\n init(\"Comic Shanns\", ...ComicShannsFontFaces);\n init(\"Excalifont\", ...ExcalifontFontFaces);\n // keeping for backwards compatibility reasons, uses system font (Helvetica on MacOS, Arial on Win)\n init(\"Helvetica\", ...HelveticaFontFaces);\n // used for server-side pdf & png export instead of helvetica (technically does not need metrics, but kept in for consistency)\n init(\"Liberation Sans\", ...LiberationFontFaces);\n init(\"Lilita One\", ...LilitaFontFaces);\n init(\"Nunito\", ...NunitoFontFaces);\n init(\"Virgil\", ...VirgilFontFaces);\n\n // fallback font faces\n init(CJK_HAND_DRAWN_FALLBACK_FONT, ...XiaolaiFontFaces);\n init(WINDOWS_EMOJI_FALLBACK_FONT, ...EmojiFontFaces);\n\n Fonts._initialized = true;\n\n return fonts.registered;\n }\n\n /**\n * Get all the unique font families for the given elements.\n */\n private static getUniqueFamilies(\n elements: ReadonlyArray<ExcalidrawElement>,\n ): Array<ExcalidrawTextElement[\"fontFamily\"]> {\n return Array.from(\n elements.reduce((families, element) => {\n if (isTextElement(element)) {\n families.add(element.fontFamily);\n }\n return families;\n }, new Set<number>()),\n );\n }\n\n /**\n * Get all the unique characters per font family for the given scene.\n */\n private static getCharsPerFamily(\n elements: ReadonlyArray<ExcalidrawElement>,\n ): Record<number, Set<string>> {\n const charsPerFamily: Record<number, Set<string>> = {};\n\n for (const element of elements) {\n if (!isTextElement(element)) {\n continue;\n }\n\n // gather unique codepoints only when inlining fonts\n for (const char of element.originalText) {\n if (!charsPerFamily[element.fontFamily]) {\n charsPerFamily[element.fontFamily] = new Set();\n }\n\n charsPerFamily[element.fontFamily].add(char);\n }\n }\n\n return charsPerFamily;\n }\n\n /**\n * Get characters for a given family.\n */\n private static getCharacters(\n charsPerFamily: Record<number, Set<string>>,\n family: number,\n ) {\n return charsPerFamily[family]\n ? Array.from(charsPerFamily[family]).join(\"\")\n : \"\";\n }\n\n /**\n * Get all registered font families.\n */\n private static getAllFamilies() {\n return Array.from(Fonts.registered.keys());\n }\n}\n\nexport interface ExcalidrawFontFaceDescriptor {\n uri: string;\n descriptors?: FontFaceDescriptors;\n}\n", "import { pointFrom, pointRotateRads } from \"@excalidraw/math\";\n\nimport { MIME_TYPES } from \"@excalidraw/common\";\nimport { getElementAbsoluteCoords } from \"@excalidraw/element\";\nimport { hitElementBoundingBox } from \"@excalidraw/element\";\n\nimport type { GlobalPoint, Radians } from \"@excalidraw/math\";\n\nimport type { Bounds } from \"@excalidraw/common\";\nimport type {\n ElementsMap,\n NonDeletedExcalidrawElement,\n} from \"@excalidraw/element/types\";\n\nimport type { AppState, UIAppState } from \"../../types\";\n\nexport const DEFAULT_LINK_SIZE = 12;\n\nexport const EXTERNAL_LINK_IMG = document.createElement(\"img\");\nEXTERNAL_LINK_IMG.src = `data:${MIME_TYPES.svg}, ${encodeURIComponent(\n `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#1971c2\" stroke-width=\"1.75\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"feather feather-external-link\"><path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"></path><polyline points=\"15 3 21 3 21 9\"></polyline><line x1=\"10\" y1=\"14\" x2=\"21\" y2=\"3\"></line></svg>`,\n)}`;\n\nexport const ELEMENT_LINK_IMG = document.createElement(\"img\");\nELEMENT_LINK_IMG.src = `data:${MIME_TYPES.svg}, ${encodeURIComponent(\n `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#1971c2\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"icon icon-tabler icons-tabler-outline icon-tabler-arrow-big-right-line\"><path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M12 9v-3.586a1 1 0 0 1 1.707 -.707l6.586 6.586a1 1 0 0 1 0 1.414l-6.586 6.586a1 1 0 0 1 -1.707 -.707v-3.586h-6v-6h6z\" /><path d=\"M3 9v6\" /></svg>`,\n)}`;\n\nexport const getLinkHandleFromCoords = (\n [x1, y1, x2, y2]: Bounds,\n angle: Radians,\n appState: Pick<UIAppState, \"zoom\">,\n): Bounds => {\n const size = DEFAULT_LINK_SIZE;\n const zoom = appState.zoom.value > 1 ? appState.zoom.value : 1;\n const linkWidth = size / zoom;\n const linkHeight = size / zoom;\n const linkMarginY = size / zoom;\n const centerX = (x1 + x2) / 2;\n const centerY = (y1 + y2) / 2;\n const centeringOffset = (size - 8) / (2 * zoom);\n const dashedLineMargin = 4 / zoom;\n\n // Same as `ne` resize handle\n const x = x2 + dashedLineMargin - centeringOffset;\n const y = y1 - dashedLineMargin - linkMarginY + centeringOffset;\n\n const [rotatedX, rotatedY] = pointRotateRads(\n pointFrom(x + linkWidth / 2, y + linkHeight / 2),\n pointFrom(centerX, centerY),\n angle,\n );\n return [\n rotatedX - linkWidth / 2,\n rotatedY - linkHeight / 2,\n linkWidth,\n linkHeight,\n ];\n};\n\nexport const isPointHittingLinkIcon = (\n element: NonDeletedExcalidrawElement,\n elementsMap: ElementsMap,\n appState: AppState,\n [x, y]: GlobalPoint,\n) => {\n const threshold = 4 / appState.zoom.value;\n const [x1, y1, x2, y2] = getElementAbsoluteCoords(element, elementsMap);\n const [linkX, linkY, linkWidth, linkHeight] = getLinkHandleFromCoords(\n [x1, y1, x2, y2],\n element.angle,\n appState,\n );\n const hitLink =\n x > linkX - threshold &&\n x < linkX + threshold + linkWidth &&\n y > linkY - threshold &&\n y < linkY + linkHeight + threshold;\n return hitLink;\n};\n\nexport const isPointHittingLink = (\n element: NonDeletedExcalidrawElement,\n elementsMap: ElementsMap,\n appState: AppState,\n [x, y]: GlobalPoint,\n isMobile: boolean,\n) => {\n if (!element.link || appState.selectedElementIds[element.id]) {\n return false;\n }\n if (\n !isMobile &&\n appState.viewModeEnabled &&\n hitElementBoundingBox(pointFrom(x, y), element, elementsMap)\n ) {\n return true;\n }\n return isPointHittingLinkIcon(\n element,\n elementsMap,\n appState,\n pointFrom(x, y),\n );\n};\n", "import { THEME, applyDarkModeFilter } from \"@excalidraw/common\";\n\nimport type { StaticCanvasRenderConfig } from \"../scene/types\";\nimport type { AppState, StaticCanvasAppState } from \"../types\";\n\nexport const fillCircle = (\n context: CanvasRenderingContext2D,\n cx: number,\n cy: number,\n radius: number,\n stroke: boolean,\n fill = true,\n) => {\n context.beginPath();\n context.arc(cx, cy, radius, 0, Math.PI * 2);\n if (fill) {\n context.fill();\n }\n if (stroke) {\n context.stroke();\n }\n};\n\nexport const getNormalizedCanvasDimensions = (\n canvas: HTMLCanvasElement,\n scale: number,\n): [number, number] => {\n // When doing calculations based on canvas width we should used normalized one\n return [canvas.width / scale, canvas.height / scale];\n};\n\nexport const bootstrapCanvas = ({\n canvas,\n scale,\n normalizedWidth,\n normalizedHeight,\n theme,\n isExporting,\n viewBackgroundColor,\n}: {\n canvas: HTMLCanvasElement;\n scale: number;\n normalizedWidth: number;\n normalizedHeight: number;\n theme?: AppState[\"theme\"];\n isExporting?: StaticCanvasRenderConfig[\"isExporting\"];\n viewBackgroundColor?: StaticCanvasAppState[\"viewBackgroundColor\"];\n}): CanvasRenderingContext2D => {\n const context = canvas.getContext(\"2d\")!;\n\n context.setTransform(1, 0, 0, 1, 0, 0);\n context.scale(scale, scale);\n\n // Paint background\n if (typeof viewBackgroundColor === \"string\") {\n const hasTransparence =\n viewBackgroundColor === \"transparent\" ||\n viewBackgroundColor.length === 5 || // #RGBA\n viewBackgroundColor.length === 9 || // #RRGGBBA\n /(hsla|rgba)\\(/.test(viewBackgroundColor);\n if (hasTransparence) {\n context.clearRect(0, 0, normalizedWidth, normalizedHeight);\n }\n context.save();\n context.fillStyle =\n theme === THEME.DARK\n ? applyDarkModeFilter(viewBackgroundColor)\n : viewBackgroundColor;\n context.fillRect(0, 0, normalizedWidth, normalizedHeight);\n context.restore();\n } else {\n context.clearRect(0, 0, normalizedWidth, normalizedHeight);\n }\n\n return context;\n};\n\nexport const strokeRectWithRotation_simple = (\n context: CanvasRenderingContext2D,\n x: number,\n y: number,\n width: number,\n height: number,\n cx: number,\n cy: number,\n angle: number,\n fill: boolean = false,\n /** should account for zoom */\n radius: number = 0,\n) => {\n context.save();\n context.translate(cx, cy);\n context.rotate(angle);\n if (fill) {\n context.fillRect(x - cx, y - cy, width, height);\n }\n if (radius && context.roundRect) {\n context.beginPath();\n context.roundRect(x - cx, y - cy, width, height, radius);\n context.stroke();\n context.closePath();\n } else {\n context.strokeRect(x - cx, y - cy, width, height);\n }\n context.restore();\n};\n", "import {\n applyDarkModeFilter,\n FRAME_STYLE,\n THEME,\n throttleRAF,\n} from \"@excalidraw/common\";\nimport { isElementLink } from \"@excalidraw/element\";\nimport { createPlaceholderEmbeddableLabel } from \"@excalidraw/element\";\nimport { getBoundTextElement } from \"@excalidraw/element\";\nimport {\n isEmbeddableElement,\n isIframeLikeElement,\n isTextElement,\n} from \"@excalidraw/element\";\nimport {\n elementOverlapsWithFrame,\n getTargetFrame,\n shouldApplyFrameClip,\n} from \"@excalidraw/element\";\n\nimport { renderElement } from \"@excalidraw/element\";\n\nimport { getElementAbsoluteCoords } from \"@excalidraw/element\";\n\nimport type {\n ElementsMap,\n ExcalidrawFrameLikeElement,\n NonDeletedExcalidrawElement,\n} from \"@excalidraw/element/types\";\n\nimport {\n EXTERNAL_LINK_IMG,\n ELEMENT_LINK_IMG,\n getLinkHandleFromCoords,\n} from \"../components/hyperlink/helpers\";\n\nimport { bootstrapCanvas, getNormalizedCanvasDimensions } from \"./helpers\";\n\nimport type {\n StaticCanvasRenderConfig,\n StaticSceneRenderConfig,\n} from \"../scene/types\";\nimport type { StaticCanvasAppState, Zoom } from \"../types\";\n\nconst GridLineColor = {\n [THEME.LIGHT]: {\n bold: \"#dddddd\",\n regular: \"#e5e5e5\",\n },\n [THEME.DARK]: {\n bold: applyDarkModeFilter(\"#dddddd\"),\n regular: applyDarkModeFilter(\"#e5e5e5\"),\n },\n} as const;\n\nconst strokeGrid = (\n context: CanvasRenderingContext2D,\n /** grid cell pixel size */\n gridSize: number,\n /** setting to 1 will disble bold lines */\n gridStep: number,\n scrollX: number,\n scrollY: number,\n zoom: Zoom,\n theme: StaticCanvasRenderConfig[\"theme\"],\n width: number,\n height: number,\n) => {\n const offsetX = (scrollX % gridSize) - gridSize;\n const offsetY = (scrollY % gridSize) - gridSize;\n\n const actualGridSize = gridSize * zoom.value;\n\n const spaceWidth = 1 / zoom.value;\n\n context.save();\n\n // Offset rendering by 0.5 to ensure that 1px wide lines are crisp.\n // We only do this when zoomed to 100% because otherwise the offset is\n // fractional, and also visibly offsets the elements.\n // We also do this per-axis, as each axis may already be offset by 0.5.\n if (zoom.value === 1) {\n context.translate(offsetX % 1 ? 0 : 0.5, offsetY % 1 ? 0 : 0.5);\n }\n\n // vertical lines\n for (let x = offsetX; x < offsetX + width + gridSize * 2; x += gridSize) {\n const isBold =\n gridStep > 1 && Math.round(x - scrollX) % (gridStep * gridSize) === 0;\n // don't render regular lines when zoomed out and they're barely visible\n if (!isBold && actualGridSize < 10) {\n continue;\n }\n\n const lineWidth = Math.min(1 / zoom.value, isBold ? 4 : 1);\n context.lineWidth = lineWidth;\n const lineDash = [lineWidth * 3, spaceWidth + (lineWidth + spaceWidth)];\n\n context.beginPath();\n context.setLineDash(isBold ? [] : lineDash);\n context.strokeStyle = isBold\n ? GridLineColor[theme].bold\n : GridLineColor[theme].regular;\n context.moveTo(x, offsetY - gridSize);\n context.lineTo(x, Math.ceil(offsetY + height + gridSize * 2));\n context.stroke();\n }\n\n for (let y = offsetY; y < offsetY + height + gridSize * 2; y += gridSize) {\n const isBold =\n gridStep > 1 && Math.round(y - scrollY) % (gridStep * gridSize) === 0;\n if (!isBold && actualGridSize < 10) {\n continue;\n }\n\n const lineWidth = Math.min(1 / zoom.value, isBold ? 4 : 1);\n context.lineWidth = lineWidth;\n const lineDash = [lineWidth * 3, spaceWidth + (lineWidth + spaceWidth)];\n\n context.beginPath();\n context.setLineDash(isBold ? [] : lineDash);\n context.strokeStyle = isBold\n ? GridLineColor[theme].bold\n : GridLineColor[theme].regular;\n context.moveTo(offsetX - gridSize, y);\n context.lineTo(Math.ceil(offsetX + width + gridSize * 2), y);\n context.stroke();\n }\n context.restore();\n};\n\nexport const frameClip = (\n frame: ExcalidrawFrameLikeElement,\n context: CanvasRenderingContext2D,\n renderConfig: StaticCanvasRenderConfig,\n appState: StaticCanvasAppState,\n) => {\n context.translate(frame.x + appState.scrollX, frame.y + appState.scrollY);\n context.beginPath();\n if (context.roundRect) {\n context.roundRect(\n 0,\n 0,\n frame.width,\n frame.height,\n FRAME_STYLE.radius / appState.zoom.value,\n );\n } else {\n context.rect(0, 0, frame.width, frame.height);\n }\n context.clip();\n context.translate(\n -(frame.x + appState.scrollX),\n -(frame.y + appState.scrollY),\n );\n};\n\ntype LinkIconCanvas = HTMLCanvasElement & { zoom: number };\n\nconst linkIconCanvasCache: {\n regularLink: LinkIconCanvas | null;\n elementLink: LinkIconCanvas | null;\n} = {\n regularLink: null,\n elementLink: null,\n};\n\nconst renderLinkIcon = (\n element: NonDeletedExcalidrawElement,\n context: CanvasRenderingContext2D,\n appState: StaticCanvasAppState,\n elementsMap: ElementsMap,\n) => {\n if (element.link && !appState.selectedElementIds[element.id]) {\n const [x1, y1, x2, y2] = getElementAbsoluteCoords(element, elementsMap);\n const [x, y, width, height] = getLinkHandleFromCoords(\n [x1, y1, x2, y2],\n element.angle,\n appState,\n );\n const centerX = x + width / 2;\n const centerY = y + height / 2;\n context.save();\n context.translate(appState.scrollX + centerX, appState.scrollY + centerY);\n context.rotate(element.angle);\n\n const canvasKey = isElementLink(element.link)\n ? \"elementLink\"\n : \"regularLink\";\n\n let linkCanvas = linkIconCanvasCache[canvasKey];\n\n if (!linkCanvas || linkCanvas.zoom !== appState.zoom.value) {\n linkCanvas = Object.assign(document.createElement(\"canvas\"), {\n zoom: appState.zoom.value,\n });\n linkCanvas.width = width * window.devicePixelRatio * appState.zoom.value;\n linkCanvas.height =\n height * window.devicePixelRatio * appState.zoom.value;\n linkIconCanvasCache[canvasKey] = linkCanvas;\n\n const linkCanvasCacheContext = linkCanvas.getContext(\"2d\")!;\n linkCanvasCacheContext.scale(\n window.devicePixelRatio * appState.zoom.value,\n window.devicePixelRatio * appState.zoom.value,\n );\n linkCanvasCacheContext.fillStyle = appState.viewBackgroundColor || \"#fff\";\n linkCanvasCacheContext.fillRect(0, 0, width, height);\n\n if (canvasKey === \"elementLink\") {\n linkCanvasCacheContext.drawImage(ELEMENT_LINK_IMG, 0, 0, width, height);\n } else {\n linkCanvasCacheContext.drawImage(\n EXTERNAL_LINK_IMG,\n 0,\n 0,\n width,\n height,\n );\n }\n\n linkCanvasCacheContext.restore();\n }\n context.globalAlpha = element.opacity / 100;\n context.drawImage(linkCanvas, x - centerX, y - centerY, width, height);\n context.restore();\n }\n};\nconst _renderStaticScene = ({\n canvas,\n rc,\n elementsMap,\n allElementsMap,\n visibleElements,\n scale,\n appState,\n renderConfig,\n}: StaticSceneRenderConfig) => {\n if (canvas === null) {\n return;\n }\n\n const { renderGrid = true, isExporting } = renderConfig;\n\n const [normalizedWidth, normalizedHeight] = getNormalizedCanvasDimensions(\n canvas,\n scale,\n );\n\n const context = bootstrapCanvas({\n canvas,\n scale,\n normalizedWidth,\n normalizedHeight,\n theme: appState.theme,\n isExporting,\n viewBackgroundColor: appState.viewBackgroundColor,\n });\n\n // Apply zoom\n context.scale(appState.zoom.value, appState.zoom.value);\n\n // Grid\n if (renderGrid) {\n strokeGrid(\n context,\n appState.gridSize,\n appState.gridStep,\n appState.scrollX,\n appState.scrollY,\n appState.zoom,\n renderConfig.theme,\n normalizedWidth / appState.zoom.value,\n normalizedHeight / appState.zoom.value,\n );\n }\n\n const groupsToBeAddedToFrame = new Set<string>();\n\n visibleElements.forEach((element) => {\n if (\n element.groupIds.length > 0 &&\n appState.frameToHighlight &&\n appState.selectedElementIds[element.id] &&\n (elementOverlapsWithFrame(\n element,\n appState.frameToHighlight,\n elementsMap,\n ) ||\n element.groupIds.find((groupId) => groupsToBeAddedToFrame.has(groupId)))\n ) {\n element.groupIds.forEach((groupId) =>\n groupsToBeAddedToFrame.add(groupId),\n );\n }\n });\n\n const inFrameGroupsMap = new Map<string, boolean>();\n\n // Paint visible elements\n visibleElements\n .filter((el) => !isIframeLikeElement(el))\n .forEach((element) => {\n try {\n const frameId = element.frameId || appState.frameToHighlight?.id;\n\n if (\n isTextElement(element) &&\n element.containerId &&\n elementsMap.has(element.containerId)\n ) {\n // will be rendered with the container\n return;\n }\n\n context.save();\n\n if (\n frameId &&\n appState.frameRendering.enabled &&\n appState.frameRendering.clip\n ) {\n const frame = getTargetFrame(element, elementsMap, appState);\n if (\n frame &&\n shouldApplyFrameClip(\n element,\n frame,\n appState,\n elementsMap,\n inFrameGroupsMap,\n )\n ) {\n frameClip(frame, context, renderConfig, appState);\n }\n renderElement(\n element,\n elementsMap,\n allElementsMap,\n rc,\n context,\n renderConfig,\n appState,\n );\n } else {\n renderElement(\n element,\n elementsMap,\n allElementsMap,\n rc,\n context,\n renderConfig,\n appState,\n );\n }\n\n const boundTextElement = getBoundTextElement(element, elementsMap);\n if (boundTextElement) {\n renderElement(\n boundTextElement,\n elementsMap,\n allElementsMap,\n rc,\n context,\n renderConfig,\n appState,\n );\n }\n\n context.restore();\n\n if (!isExporting) {\n renderLinkIcon(element, context, appState, elementsMap);\n }\n } catch (error: any) {\n console.error(\n error,\n element.id,\n element.x,\n element.y,\n element.width,\n element.height,\n );\n }\n });\n\n // render embeddables on top\n visibleElements\n .filter((el) => isIframeLikeElement(el))\n .forEach((element) => {\n try {\n const render = () => {\n renderElement(\n element,\n elementsMap,\n allElementsMap,\n rc,\n context,\n renderConfig,\n appState,\n );\n\n if (\n isIframeLikeElement(element) &&\n (isExporting ||\n (isEmbeddableElement(element) &&\n renderConfig.embedsValidationStatus.get(element.id) !==\n true)) &&\n element.width &&\n element.height\n ) {\n const label = createPlaceholderEmbeddableLabel(element);\n renderElement(\n label,\n elementsMap,\n allElementsMap,\n rc,\n context,\n renderConfig,\n appState,\n );\n }\n if (!isExporting) {\n renderLinkIcon(element, context, appState, elementsMap);\n }\n };\n // - when exporting the whole canvas, we DO NOT apply clipping\n // - when we are exporting a particular frame, apply clipping\n // if the containing frame is not selected, apply clipping\n const frameId = element.frameId || appState.frameToHighlight?.id;\n\n if (\n frameId &&\n appState.frameRendering.enabled &&\n appState.frameRendering.clip\n ) {\n context.save();\n\n const frame = getTargetFrame(element, elementsMap, appState);\n\n if (\n frame &&\n shouldApplyFrameClip(\n element,\n frame,\n appState,\n elementsMap,\n inFrameGroupsMap,\n )\n ) {\n frameClip(frame, context, renderConfig, appState);\n }\n render();\n context.restore();\n } else {\n render();\n }\n } catch (error: any) {\n console.error(error);\n }\n });\n\n // render pending nodes for flowcharts\n renderConfig.pendingFlowchartNodes?.forEach((element) => {\n try {\n renderElement(\n element,\n elementsMap,\n allElementsMap,\n rc,\n context,\n renderConfig,\n appState,\n );\n } catch (error) {\n console.error(error);\n }\n });\n};\n\n/** throttled to animation framerate */\nexport const renderStaticSceneThrottled = throttleRAF(\n (config: StaticSceneRenderConfig) => {\n _renderStaticScene(config);\n },\n);\n\n/**\n * Static scene is the non-ui canvas where we render elements.\n */\nexport const renderStaticScene = (\n renderConfig: StaticSceneRenderConfig,\n throttle?: boolean,\n) => {\n if (throttle) {\n renderStaticSceneThrottled(renderConfig);\n return;\n }\n\n _renderStaticScene(renderConfig);\n};\n", "import {\n FRAME_STYLE,\n MAX_DECIMALS_FOR_SVG_EXPORT,\n SVG_NS,\n THEME,\n DARK_THEME_FILTER,\n getFontFamilyString,\n isRTL,\n isTestEnv,\n getVerticalOffset,\n applyDarkModeFilter,\n MIME_TYPES,\n} from \"@excalidraw/common\";\nimport { normalizeLink, toValidURL } from \"@excalidraw/common\";\nimport { hashString } from \"@excalidraw/element\";\nimport { getUncroppedWidthAndHeight } from \"@excalidraw/element\";\nimport {\n createPlaceholderEmbeddableLabel,\n getEmbedLink,\n} from \"@excalidraw/element\";\nimport { LinearElementEditor } from \"@excalidraw/element\";\nimport { getBoundTextElement, getContainerElement } from \"@excalidraw/element\";\nimport { getLineHeightInPx } from \"@excalidraw/element\";\nimport {\n isArrowElement,\n isIframeLikeElement,\n isInitializedImageElement,\n isTextElement,\n} from \"@excalidraw/element\";\n\nimport { getContainingFrame } from \"@excalidraw/element\";\n\nimport { getCornerRadius, isPathALoop } from \"@excalidraw/element\";\n\nimport { ShapeCache } from \"@excalidraw/element\";\n\nimport { getElementAbsoluteCoords } from \"@excalidraw/element\";\n\nimport type {\n ExcalidrawElement,\n ExcalidrawTextElementWithContainer,\n NonDeletedExcalidrawElement,\n} from \"@excalidraw/element/types\";\n\nimport type { RenderableElementsMap, SVGRenderConfig } from \"../scene/types\";\nimport type { AppState, BinaryFiles } from \"../types\";\nimport type { Drawable } from \"roughjs/bin/core\";\nimport type { RoughSVG } from \"roughjs/bin/svg\";\n\nconst roughSVGDrawWithPrecision = (\n rsvg: RoughSVG,\n drawable: Drawable,\n precision?: number,\n) => {\n if (typeof precision === \"undefined\") {\n return rsvg.draw(drawable);\n }\n const pshape: Drawable = {\n sets: drawable.sets,\n shape: drawable.shape,\n options: { ...drawable.options, fixedDecimalPlaceDigits: precision },\n };\n return rsvg.draw(pshape);\n};\n\nconst maybeWrapNodesInFrameClipPath = (\n element: NonDeletedExcalidrawElement,\n root: SVGElement,\n nodes: SVGElement[],\n frameRendering: AppState[\"frameRendering\"],\n elementsMap: RenderableElementsMap,\n) => {\n if (!frameRendering.enabled || !frameRendering.clip) {\n return null;\n }\n const frame = getContainingFrame(element, elementsMap);\n if (frame) {\n const g = root.ownerDocument.createElementNS(SVG_NS, \"g\");\n g.setAttributeNS(SVG_NS, \"clip-path\", `url(#${frame.id})`);\n nodes.forEach((node) => g.appendChild(node));\n return g;\n }\n\n return null;\n};\n\nconst renderElementToSvg = (\n element: NonDeletedExcalidrawElement,\n elementsMap: RenderableElementsMap,\n rsvg: RoughSVG,\n svgRoot: SVGElement,\n files: BinaryFiles,\n offsetX: number,\n offsetY: number,\n renderConfig: SVGRenderConfig,\n) => {\n const offset = { x: offsetX, y: offsetY };\n const [x1, y1, x2, y2] = getElementAbsoluteCoords(element, elementsMap);\n let cx = (x2 - x1) / 2 - (element.x - x1);\n let cy = (y2 - y1) / 2 - (element.y - y1);\n if (isTextElement(element)) {\n const container = getContainerElement(element, elementsMap);\n if (isArrowElement(container)) {\n const [x1, y1, x2, y2] = getElementAbsoluteCoords(container, elementsMap);\n\n const boundTextCoords = LinearElementEditor.getBoundTextElementPosition(\n container,\n element as ExcalidrawTextElementWithContainer,\n elementsMap,\n );\n cx = (x2 - x1) / 2 - (boundTextCoords.x - x1);\n cy = (y2 - y1) / 2 - (boundTextCoords.y - y1);\n offsetX = offsetX + boundTextCoords.x - element.x;\n offsetY = offsetY + boundTextCoords.y - element.y;\n }\n }\n const degree = (180 * element.angle) / Math.PI;\n\n // element to append node to, most of the time svgRoot\n let root = svgRoot;\n\n // if the element has a link, create an anchor tag and make that the new root\n if (element.link) {\n const anchorTag = svgRoot.ownerDocument.createElementNS(SVG_NS, \"a\");\n anchorTag.setAttribute(\"href\", normalizeLink(element.link));\n root.appendChild(anchorTag);\n root = anchorTag;\n }\n\n const addToRoot = (node: SVGElement, element: ExcalidrawElement) => {\n if (isTestEnv()) {\n node.setAttribute(\"data-id\", element.id);\n }\n root.appendChild(node);\n };\n\n const opacity =\n ((getContainingFrame(element, elementsMap)?.opacity ?? 100) *\n element.opacity) /\n 10000;\n\n switch (element.type) {\n case \"selection\": {\n // Since this is used only during editing experience, which is canvas based,\n // this should not happen\n throw new Error(\"Selection rendering is not supported for SVG\");\n }\n case \"rectangle\":\n case \"diamond\":\n case \"ellipse\": {\n const shape = ShapeCache.generateElementShape(element, renderConfig);\n const node = roughSVGDrawWithPrecision(\n rsvg,\n shape,\n MAX_DECIMALS_FOR_SVG_EXPORT,\n );\n if (opacity !== 1) {\n node.setAttribute(\"stroke-opacity\", `${opacity}`);\n node.setAttribute(\"fill-opacity\", `${opacity}`);\n }\n node.setAttribute(\"stroke-linecap\", \"round\");\n node.setAttribute(\n \"transform\",\n `translate(${offsetX || 0} ${\n offsetY || 0\n }) rotate(${degree} ${cx} ${cy})`,\n );\n\n const g = maybeWrapNodesInFrameClipPath(\n element,\n root,\n [node],\n renderConfig.frameRendering,\n elementsMap,\n );\n\n addToRoot(g || node, element);\n break;\n }\n case \"iframe\":\n case \"embeddable\": {\n // render placeholder rectangle\n const shape = ShapeCache.generateElementShape(element, renderConfig);\n const node = roughSVGDrawWithPrecision(\n rsvg,\n shape,\n MAX_DECIMALS_FOR_SVG_EXPORT,\n );\n const opacity = element.opacity / 100;\n if (opacity !== 1) {\n node.setAttribute(\"stroke-opacity\", `${opacity}`);\n node.setAttribute(\"fill-opacity\", `${opacity}`);\n }\n node.setAttribute(\"stroke-linecap\", \"round\");\n node.setAttribute(\n \"transform\",\n `translate(${offsetX || 0} ${\n offsetY || 0\n }) rotate(${degree} ${cx} ${cy})`,\n );\n addToRoot(node, element);\n\n const label: ExcalidrawElement =\n createPlaceholderEmbeddableLabel(element);\n renderElementToSvg(\n label,\n elementsMap,\n rsvg,\n root,\n files,\n label.x + offset.x - element.x,\n label.y + offset.y - element.y,\n renderConfig,\n );\n\n // render embeddable element + iframe\n const embeddableNode = roughSVGDrawWithPrecision(\n rsvg,\n shape,\n MAX_DECIMALS_FOR_SVG_EXPORT,\n );\n embeddableNode.setAttribute(\"stroke-linecap\", \"round\");\n embeddableNode.setAttribute(\n \"transform\",\n `translate(${offsetX || 0} ${\n offsetY || 0\n }) rotate(${degree} ${cx} ${cy})`,\n );\n while (embeddableNode.firstChild) {\n embeddableNode.removeChild(embeddableNode.firstChild);\n }\n const radius = getCornerRadius(\n Math.min(element.width, element.height),\n element,\n );\n\n const embedLink = getEmbedLink(toValidURL(element.link || \"\"));\n\n // if rendering embeddables explicitly disabled or\n // embedding documents via srcdoc (which doesn't seem to work for SVGs)\n // replace with a link instead\n if (\n renderConfig.renderEmbeddables === false ||\n embedLink?.type === \"document\"\n ) {\n const anchorTag = svgRoot.ownerDocument.createElementNS(SVG_NS, \"a\");\n anchorTag.setAttribute(\"href\", normalizeLink(element.link || \"\"));\n anchorTag.setAttribute(\"target\", \"_blank\");\n anchorTag.setAttribute(\"rel\", \"noopener noreferrer\");\n anchorTag.style.borderRadius = `${radius}px`;\n\n embeddableNode.appendChild(anchorTag);\n } else {\n const foreignObject = svgRoot.ownerDocument.createElementNS(\n SVG_NS,\n \"foreignObject\",\n );\n foreignObject.style.width = `${element.width}px`;\n foreignObject.style.height = `${element.height}px`;\n foreignObject.style.border = \"none\";\n const div = foreignObject.ownerDocument.createElementNS(SVG_NS, \"div\");\n div.setAttribute(\"xmlns\", \"http://www.w3.org/1999/xhtml\");\n div.style.width = \"100%\";\n div.style.height = \"100%\";\n const iframe = div.ownerDocument.createElement(\"iframe\");\n iframe.src = embedLink?.link ?? \"\";\n iframe.style.width = \"100%\";\n iframe.style.height = \"100%\";\n iframe.style.border = \"none\";\n iframe.style.borderRadius = `${radius}px`;\n iframe.style.top = \"0\";\n iframe.style.left = \"0\";\n iframe.allowFullscreen = true;\n div.appendChild(iframe);\n foreignObject.appendChild(div);\n\n embeddableNode.appendChild(foreignObject);\n }\n addToRoot(embeddableNode, element);\n break;\n }\n case \"line\":\n case \"arrow\": {\n const boundText = getBoundTextElement(element, elementsMap);\n const maskPath = svgRoot.ownerDocument.createElementNS(SVG_NS, \"mask\");\n if (boundText) {\n maskPath.setAttribute(\"id\", `mask-${element.id}`);\n const maskRectVisible = svgRoot.ownerDocument.createElementNS(\n SVG_NS,\n \"rect\",\n );\n offsetX = offsetX || 0;\n offsetY = offsetY || 0;\n maskRectVisible.setAttribute(\"x\", \"0\");\n maskRectVisible.setAttribute(\"y\", \"0\");\n maskRectVisible.setAttribute(\"fill\", \"#fff\");\n maskRectVisible.setAttribute(\n \"width\",\n `${element.width + 100 + offsetX}`,\n );\n maskRectVisible.setAttribute(\n \"height\",\n `${element.height + 100 + offsetY}`,\n );\n\n maskPath.appendChild(maskRectVisible);\n const maskRectInvisible = svgRoot.ownerDocument.createElementNS(\n SVG_NS,\n \"rect\",\n );\n const boundTextCoords = LinearElementEditor.getBoundTextElementPosition(\n element,\n boundText,\n elementsMap,\n );\n\n const maskX = offsetX + boundTextCoords.x - element.x;\n const maskY = offsetY + boundTextCoords.y - element.y;\n\n maskRectInvisible.setAttribute(\"x\", maskX.toString());\n maskRectInvisible.setAttribute(\"y\", maskY.toString());\n maskRectInvisible.setAttribute(\"fill\", \"#000\");\n maskRectInvisible.setAttribute(\"width\", `${boundText.width}`);\n maskRectInvisible.setAttribute(\"height\", `${boundText.height}`);\n maskRectInvisible.setAttribute(\"opacity\", \"1\");\n maskPath.appendChild(maskRectInvisible);\n }\n const group = svgRoot.ownerDocument.createElementNS(SVG_NS, \"g\");\n if (boundText) {\n group.setAttribute(\"mask\", `url(#mask-${element.id})`);\n }\n group.setAttribute(\"stroke-linecap\", \"round\");\n\n const shapes = ShapeCache.generateElementShape(element, renderConfig);\n shapes.forEach((shape) => {\n const node = roughSVGDrawWithPrecision(\n rsvg,\n shape,\n MAX_DECIMALS_FOR_SVG_EXPORT,\n );\n if (opacity !== 1) {\n node.setAttribute(\"stroke-opacity\", `${opacity}`);\n node.setAttribute(\"fill-opacity\", `${opacity}`);\n }\n node.setAttribute(\n \"transform\",\n `translate(${offsetX || 0} ${\n offsetY || 0\n }) rotate(${degree} ${cx} ${cy})`,\n );\n if (\n element.type === \"line\" &&\n isPathALoop(element.points) &&\n element.backgroundColor !== \"transparent\"\n ) {\n node.setAttribute(\"fill-rule\", \"evenodd\");\n }\n group.appendChild(node);\n });\n\n const g = maybeWrapNodesInFrameClipPath(\n element,\n root,\n [group, maskPath],\n renderConfig.frameRendering,\n elementsMap,\n );\n if (g) {\n addToRoot(g, element);\n root.appendChild(g);\n } else {\n addToRoot(group, element);\n root.append(maskPath);\n }\n break;\n }\n case \"freedraw\": {\n const wrapper = svgRoot.ownerDocument.createElementNS(SVG_NS, \"g\");\n\n const shapes = ShapeCache.generateElementShape(element, renderConfig);\n // always ordered as [background, stroke]\n for (const shape of shapes) {\n if (typeof shape === \"string\") {\n // stroke (SVGPathString)\n\n const path = svgRoot.ownerDocument.createElementNS(SVG_NS, \"path\");\n path.setAttribute(\n \"fill\",\n renderConfig.theme === THEME.DARK\n ? applyDarkModeFilter(element.strokeColor)\n : element.strokeColor,\n );\n path.setAttribute(\"d\", shape);\n wrapper.appendChild(path);\n } else {\n // background (Drawable)\n\n const bgNode = roughSVGDrawWithPrecision(\n rsvg,\n shape,\n MAX_DECIMALS_FOR_SVG_EXPORT,\n );\n\n // if children wrapped in <g>, unwrap it\n if (bgNode.nodeName === \"g\") {\n while (bgNode.firstChild) {\n wrapper.appendChild(bgNode.firstChild);\n }\n } else {\n wrapper.appendChild(bgNode);\n }\n }\n }\n if (opacity !== 1) {\n wrapper.setAttribute(\"stroke-opacity\", `${opacity}`);\n wrapper.setAttribute(\"fill-opacity\", `${opacity}`);\n }\n wrapper.setAttribute(\n \"transform\",\n `translate(${offsetX || 0} ${\n offsetY || 0\n }) rotate(${degree} ${cx} ${cy})`,\n );\n wrapper.setAttribute(\"stroke\", \"none\");\n\n const g = maybeWrapNodesInFrameClipPath(\n element,\n root,\n [wrapper],\n renderConfig.frameRendering,\n elementsMap,\n );\n\n addToRoot(g || wrapper, element);\n break;\n }\n case \"image\": {\n const width = Math.round(element.width);\n const height = Math.round(element.height);\n const fileData =\n isInitializedImageElement(element) && files[element.fileId];\n if (fileData) {\n const { reuseImages = true } = renderConfig;\n\n let symbolId = `image-${fileData.id}`;\n\n let uncroppedWidth = element.width;\n let uncroppedHeight = element.height;\n if (element.crop) {\n ({ width: uncroppedWidth, height: uncroppedHeight } =\n getUncroppedWidthAndHeight(element));\n\n symbolId = `image-crop-${fileData.id}-${hashString(\n `${uncroppedWidth}x${uncroppedHeight}`,\n )}`;\n }\n\n if (!reuseImages) {\n symbolId = `image-${element.id}`;\n }\n\n let symbol = svgRoot.querySelector(`#${symbolId}`);\n if (!symbol) {\n symbol = svgRoot.ownerDocument.createElementNS(SVG_NS, \"symbol\");\n symbol.id = symbolId;\n\n const image = svgRoot.ownerDocument.createElementNS(SVG_NS, \"image\");\n image.setAttribute(\"href\", fileData.dataURL);\n image.setAttribute(\"preserveAspectRatio\", \"none\");\n\n if (element.crop || !reuseImages) {\n image.setAttribute(\"width\", `${uncroppedWidth}`);\n image.setAttribute(\"height\", `${uncroppedHeight}`);\n } else {\n image.setAttribute(\"width\", \"100%\");\n image.setAttribute(\"height\", \"100%\");\n }\n\n symbol.appendChild(image);\n\n (root.querySelector(\"defs\") || root).prepend(symbol);\n }\n\n const use = svgRoot.ownerDocument.createElementNS(SVG_NS, \"use\");\n use.setAttribute(\"href\", `#${symbolId}`);\n\n let normalizedCropX = 0;\n let normalizedCropY = 0;\n\n if (element.crop) {\n const { width: uncroppedWidth, height: uncroppedHeight } =\n getUncroppedWidthAndHeight(element);\n normalizedCropX =\n element.crop.x / (element.crop.naturalWidth / uncroppedWidth);\n normalizedCropY =\n element.crop.y / (element.crop.naturalHeight / uncroppedHeight);\n }\n\n const adjustedCenterX = cx + normalizedCropX;\n const adjustedCenterY = cy + normalizedCropY;\n\n use.setAttribute(\"width\", `${width + normalizedCropX}`);\n use.setAttribute(\"height\", `${height + normalizedCropY}`);\n use.setAttribute(\"opacity\", `${opacity}`);\n\n // We first apply `scale` transforms (horizontal/vertical mirroring)\n // on the <use> element, then apply translation and rotation\n // on the <g> element which wraps the <use>.\n // Doing this separately is a quick hack to to work around compositing\n // the transformations correctly (the transform-origin was not being\n // applied correctly).\n if (element.scale[0] !== 1 || element.scale[1] !== 1) {\n use.setAttribute(\n \"transform\",\n `translate(${adjustedCenterX} ${adjustedCenterY}) scale(${\n element.scale[0]\n } ${\n element.scale[1]\n }) translate(${-adjustedCenterX} ${-adjustedCenterY})`,\n );\n }\n\n const g = svgRoot.ownerDocument.createElementNS(SVG_NS, \"g\");\n\n if (\n renderConfig.theme === THEME.DARK &&\n fileData.mimeType === MIME_TYPES.svg\n ) {\n g.setAttribute(\"filter\", DARK_THEME_FILTER);\n }\n\n if (element.crop) {\n const mask = svgRoot.ownerDocument.createElementNS(SVG_NS, \"mask\");\n mask.setAttribute(\"id\", `mask-image-crop-${element.id}`);\n mask.setAttribute(\"fill\", \"#fff\");\n const maskRect = svgRoot.ownerDocument.createElementNS(\n SVG_NS,\n \"rect\",\n );\n\n maskRect.setAttribute(\"x\", `${normalizedCropX}`);\n maskRect.setAttribute(\"y\", `${normalizedCropY}`);\n maskRect.setAttribute(\"width\", `${width}`);\n maskRect.setAttribute(\"height\", `${height}`);\n\n mask.appendChild(maskRect);\n root.appendChild(mask);\n g.setAttribute(\"mask\", `url(#${mask.id})`);\n }\n\n g.appendChild(use);\n g.setAttribute(\n \"transform\",\n `translate(${offsetX - normalizedCropX} ${\n offsetY - normalizedCropY\n }) rotate(${degree} ${adjustedCenterX} ${adjustedCenterY})`,\n );\n\n if (element.roundness) {\n const clipPath = svgRoot.ownerDocument.createElementNS(\n SVG_NS,\n \"clipPath\",\n );\n clipPath.id = `image-clipPath-${element.id}`;\n clipPath.setAttribute(\"clipPathUnits\", \"userSpaceOnUse\");\n const clipRect = svgRoot.ownerDocument.createElementNS(\n SVG_NS,\n \"rect\",\n );\n const radius = getCornerRadius(\n Math.min(element.width, element.height),\n element,\n );\n const clipOffsetX = element.crop ? normalizedCropX : 0;\n const clipOffsetY = element.crop ? normalizedCropY : 0;\n clipRect.setAttribute(\"x\", `${clipOffsetX}`);\n clipRect.setAttribute(\"y\", `${clipOffsetY}`);\n clipRect.setAttribute(\"width\", `${element.width}`);\n clipRect.setAttribute(\"height\", `${element.height}`);\n clipRect.setAttribute(\"rx\", `${radius}`);\n clipRect.setAttribute(\"ry\", `${radius}`);\n clipPath.appendChild(clipRect);\n addToRoot(clipPath, element);\n\n g.setAttributeNS(SVG_NS, \"clip-path\", `url(#${clipPath.id})`);\n }\n\n const clipG = maybeWrapNodesInFrameClipPath(\n element,\n root,\n [g],\n renderConfig.frameRendering,\n elementsMap,\n );\n addToRoot(clipG || g, element);\n }\n break;\n }\n // frames are not rendered and only acts as a container\n case \"frame\":\n case \"magicframe\": {\n if (\n renderConfig.frameRendering.enabled &&\n renderConfig.frameRendering.outline\n ) {\n const rect = document.createElementNS(SVG_NS, \"rect\");\n\n rect.setAttribute(\n \"transform\",\n `translate(${offsetX || 0} ${\n offsetY || 0\n }) rotate(${degree} ${cx} ${cy})`,\n );\n\n rect.setAttribute(\"width\", `${element.width}px`);\n rect.setAttribute(\"height\", `${element.height}px`);\n // Rounded corners\n rect.setAttribute(\"rx\", FRAME_STYLE.radius.toString());\n rect.setAttribute(\"ry\", FRAME_STYLE.radius.toString());\n\n rect.setAttribute(\"fill\", \"none\");\n rect.setAttribute(\n \"stroke\",\n renderConfig.theme === THEME.DARK\n ? applyDarkModeFilter(FRAME_STYLE.strokeColor)\n : FRAME_STYLE.strokeColor,\n );\n rect.setAttribute(\"stroke-width\", FRAME_STYLE.strokeWidth.toString());\n\n addToRoot(rect, element);\n }\n break;\n }\n default: {\n if (isTextElement(element)) {\n const node = svgRoot.ownerDocument.createElementNS(SVG_NS, \"g\");\n if (opacity !== 1) {\n node.setAttribute(\"stroke-opacity\", `${opacity}`);\n node.setAttribute(\"fill-opacity\", `${opacity}`);\n }\n\n node.setAttribute(\n \"transform\",\n `translate(${offsetX || 0} ${\n offsetY || 0\n }) rotate(${degree} ${cx} ${cy})`,\n );\n const lines = element.text.replace(/\\r\\n?/g, \"\\n\").split(\"\\n\");\n const lineHeightPx = getLineHeightInPx(\n element.fontSize,\n element.lineHeight,\n );\n const horizontalOffset =\n element.textAlign === \"center\"\n ? element.width / 2\n : element.textAlign === \"right\"\n ? element.width\n : 0;\n const verticalOffset = getVerticalOffset(\n element.fontFamily,\n element.fontSize,\n lineHeightPx,\n );\n const direction = isRTL(element.text) ? \"rtl\" : \"ltr\";\n const textAnchor =\n element.textAlign === \"center\"\n ? \"middle\"\n : element.textAlign === \"right\" || direction === \"rtl\"\n ? \"end\"\n : \"start\";\n for (let i = 0; i < lines.length; i++) {\n const text = svgRoot.ownerDocument.createElementNS(SVG_NS, \"text\");\n text.textContent = lines[i];\n text.setAttribute(\"x\", `${horizontalOffset}`);\n text.setAttribute(\"y\", `${i * lineHeightPx + verticalOffset}`);\n text.setAttribute(\"font-family\", getFontFamilyString(element));\n text.setAttribute(\"font-size\", `${element.fontSize}px`);\n text.setAttribute(\n \"fill\",\n renderConfig.theme === THEME.DARK\n ? applyDarkModeFilter(element.strokeColor)\n : element.strokeColor,\n );\n text.setAttribute(\"text-anchor\", textAnchor);\n text.setAttribute(\"style\", \"white-space: pre;\");\n text.setAttribute(\"direction\", direction);\n text.setAttribute(\"dominant-baseline\", \"alphabetic\");\n node.appendChild(text);\n }\n\n const g = maybeWrapNodesInFrameClipPath(\n element,\n root,\n [node],\n renderConfig.frameRendering,\n elementsMap,\n );\n\n addToRoot(g || node, element);\n } else {\n // @ts-ignore\n throw new Error(`Unimplemented type ${element.type}`);\n }\n }\n }\n};\n\nexport const renderSceneToSvg = (\n elements: readonly NonDeletedExcalidrawElement[],\n elementsMap: RenderableElementsMap,\n rsvg: RoughSVG,\n svgRoot: SVGElement,\n files: BinaryFiles,\n renderConfig: SVGRenderConfig,\n) => {\n if (!svgRoot) {\n return;\n }\n\n // render elements\n elements\n .filter((el) => !isIframeLikeElement(el))\n .forEach((element) => {\n if (!element.isDeleted) {\n if (\n isTextElement(element) &&\n element.containerId &&\n elementsMap.has(element.containerId)\n ) {\n // will be rendered with the container\n return;\n }\n\n try {\n renderElementToSvg(\n element,\n elementsMap,\n rsvg,\n svgRoot,\n files,\n element.x + renderConfig.offsetX,\n element.y + renderConfig.offsetY,\n renderConfig,\n );\n\n const boundTextElement = getBoundTextElement(element, elementsMap);\n if (boundTextElement) {\n renderElementToSvg(\n boundTextElement,\n elementsMap,\n rsvg,\n svgRoot,\n files,\n boundTextElement.x + renderConfig.offsetX,\n boundTextElement.y + renderConfig.offsetY,\n renderConfig,\n );\n }\n } catch (error: any) {\n console.error(error);\n }\n }\n });\n\n // render embeddables on top\n elements\n .filter((el) => isIframeLikeElement(el))\n .forEach((element) => {\n if (!element.isDeleted) {\n try {\n renderElementToSvg(\n element,\n elementsMap,\n rsvg,\n svgRoot,\n files,\n element.x + renderConfig.offsetX,\n element.y + renderConfig.offsetY,\n renderConfig,\n );\n } catch (error: any) {\n console.error(error);\n }\n }\n });\n};\n", "import { isFiniteNumber, pointFrom } from \"@excalidraw/math\";\n\nimport {\n type CombineBrandsIfNeeded,\n DEFAULT_FONT_FAMILY,\n DEFAULT_TEXT_ALIGN,\n DEFAULT_VERTICAL_ALIGN,\n FONT_FAMILY,\n ROUNDNESS,\n DEFAULT_SIDEBAR,\n DEFAULT_ELEMENT_PROPS,\n DEFAULT_GRID_SIZE,\n DEFAULT_GRID_STEP,\n randomId,\n getUpdatedTimestamp,\n updateActiveTool,\n arrayToMap,\n getSizeFromPoints,\n normalizeLink,\n getLineHeight,\n} from \"@excalidraw/common\";\nimport {\n calculateFixedPointForNonElbowArrowBinding,\n getNonDeletedElements,\n normalizeArrowhead,\n isPointInElement,\n isValidPolygon,\n projectFixedPointOntoDiagonal,\n} from \"@excalidraw/element\";\nimport { normalizeFixedPoint } from \"@excalidraw/element\";\nimport {\n updateElbowArrowPoints,\n validateElbowPoints,\n} from \"@excalidraw/element\";\nimport { LinearElementEditor } from \"@excalidraw/element\";\nimport { bumpVersion } from \"@excalidraw/element\";\nimport { getContainerElement } from \"@excalidraw/element\";\nimport { detectLineHeight } from \"@excalidraw/element\";\nimport {\n isArrowBoundToElement,\n isArrowElement,\n isElbowArrow,\n isLinearElement,\n isLineElement,\n isTextElement,\n isUsingAdaptiveRadius,\n} from \"@excalidraw/element\";\n\nimport { syncInvalidIndices } from \"@excalidraw/element\";\n\nimport { refreshTextDimensions } from \"@excalidraw/element\";\n\nimport { getNormalizedDimensions } from \"@excalidraw/element\";\n\nimport { isInvisiblySmallElement } from \"@excalidraw/element\";\n\nimport type { LocalPoint, Radians } from \"@excalidraw/math\";\n\nimport type {\n ElementsMap,\n ElementsMapOrArray,\n ExcalidrawArrowElement,\n ExcalidrawBindableElement,\n ExcalidrawElbowArrowElement,\n ExcalidrawElement,\n ExcalidrawLinearElement,\n ExcalidrawSelectionElement,\n ExcalidrawTextElement,\n FixedPointBinding,\n FontFamilyValues,\n NonDeletedSceneElementsMap,\n OrderedExcalidrawElement,\n StrokeRoundness,\n} from \"@excalidraw/element/types\";\n\nimport type { MarkOptional, Mutable } from \"@excalidraw/common/utility-types\";\n\nimport { getDefaultAppState } from \"../appState\";\n\nimport {\n getNormalizedGridSize,\n getNormalizedGridStep,\n getNormalizedZoom,\n} from \"../scene\";\n\nimport type {\n AppState,\n BinaryFiles,\n LibraryItem,\n NormalizedZoomValue,\n} from \"../types\";\nimport type { ImportedDataState, LegacyAppState } from \"./types\";\n\ntype RestoredAppState = Omit<\n AppState,\n \"offsetTop\" | \"offsetLeft\" | \"width\" | \"height\"\n>;\n\nexport const AllowedExcalidrawActiveTools: Record<\n AppState[\"activeTool\"][\"type\"],\n boolean\n> = {\n selection: true,\n lasso: true,\n text: true,\n rectangle: true,\n diamond: true,\n ellipse: true,\n line: true,\n image: true,\n arrow: true,\n freedraw: true,\n eraser: false,\n custom: true,\n frame: true,\n embeddable: true,\n hand: true,\n laser: false,\n magicframe: false,\n};\n\nexport type RestoredDataState = {\n elements: OrderedExcalidrawElement[];\n appState: RestoredAppState;\n files: BinaryFiles;\n};\n\nconst getFontFamilyByName = (fontFamilyName: string): FontFamilyValues => {\n if (Object.keys(FONT_FAMILY).includes(fontFamilyName)) {\n return FONT_FAMILY[\n fontFamilyName as keyof typeof FONT_FAMILY\n ] as FontFamilyValues;\n }\n return DEFAULT_FONT_FAMILY;\n};\n\nconst repairBinding = <T extends ExcalidrawArrowElement>(\n element: T,\n binding: FixedPointBinding | null,\n targetElementsMap: Readonly<ElementsMap>,\n /** used for context (arrow bindings) */\n existingElementsMap: Readonly<ElementsMap> | null | undefined,\n startOrEnd: \"start\" | \"end\",\n): FixedPointBinding | null => {\n try {\n if (!binding) {\n return null;\n }\n\n // ---------------------------------------------------------------------------\n // elbow arrows\n // ---------------------------------------------------------------------------\n\n if (isElbowArrow(element)) {\n const fixedPointBinding:\n | ExcalidrawElbowArrowElement[\"startBinding\"]\n | ExcalidrawElbowArrowElement[\"endBinding\"] = {\n ...binding,\n fixedPoint: normalizeFixedPoint(binding.fixedPoint),\n mode: binding.mode || \"orbit\",\n };\n\n return fixedPointBinding;\n }\n\n // ---------------------------------------------------------------------------\n // simple arrows\n // ---------------------------------------------------------------------------\n\n // binding schema v2\n // ---------------------------------------------------------------------------\n\n if (binding.mode) {\n // if latest binding schema, don't check if binding.elementId exists\n // (it's done in a separate pass)\n if (binding.elementId) {\n return {\n elementId: binding.elementId,\n mode: binding.mode,\n fixedPoint: normalizeFixedPoint(binding.fixedPoint),\n } as FixedPointBinding | null;\n }\n return null;\n }\n\n // binding schema v1 (legacy) -> attempt to migrate to v2\n // ---------------------------------------------------------------------------\n\n const targetBoundElement = targetElementsMap.get(binding.elementId) as\n | ExcalidrawBindableElement\n | undefined;\n const boundElement =\n targetBoundElement ||\n (existingElementsMap?.get(binding.elementId) as\n | ExcalidrawBindableElement\n | undefined);\n const elementsMap = targetBoundElement\n ? targetElementsMap\n : existingElementsMap;\n\n // migrating legacy focus point bindings\n if (boundElement && elementsMap) {\n const p = LinearElementEditor.getPointAtIndexGlobalCoordinates(\n element,\n startOrEnd === \"start\" ? 0 : element.points.length - 1,\n elementsMap,\n );\n const mode = isPointInElement(p, boundElement, elementsMap)\n ? \"inside\"\n : \"orbit\";\n const safeElement = {\n ...element,\n startBinding: element.startBinding?.elementId\n ? {\n ...element.startBinding,\n mode,\n fixedPoint: normalizeFixedPoint(element.startBinding.fixedPoint),\n }\n : null,\n endBinding: element.endBinding?.elementId\n ? {\n ...element.endBinding,\n mode,\n fixedPoint: normalizeFixedPoint(element.endBinding.fixedPoint),\n }\n : null,\n };\n const focusPoint =\n mode === \"inside\"\n ? p\n : projectFixedPointOntoDiagonal(\n safeElement,\n p,\n boundElement,\n startOrEnd,\n elementsMap,\n { value: 1 as NormalizedZoomValue },\n ) || p;\n const { fixedPoint } = calculateFixedPointForNonElbowArrowBinding(\n safeElement,\n boundElement,\n startOrEnd,\n elementsMap,\n focusPoint,\n );\n\n return {\n mode,\n elementId: binding.elementId,\n fixedPoint,\n };\n }\n\n console.error(`could not repair binding for element`);\n } catch (error) {\n console.error(\"Error repairing binding:\", error);\n }\n\n return null;\n};\n\nconst restoreElementWithProperties = <\n T extends Required<Omit<ExcalidrawElement, \"customData\">> & {\n customData?: ExcalidrawElement[\"customData\"];\n /** @deprecated */\n boundElementIds?: readonly ExcalidrawElement[\"id\"][];\n /** @deprecated */\n strokeSharpness?: StrokeRoundness;\n },\n K extends Pick<T, keyof Omit<Required<T>, keyof ExcalidrawElement>>,\n>(\n element: T,\n extra: Pick<\n T,\n // This extra Pick<T, keyof K> ensure no excess properties are passed.\n // @ts-ignore TS complains here but type checks the call sites fine.\n keyof K\n > &\n Partial<Pick<ExcalidrawElement, \"type\" | \"x\" | \"y\" | \"customData\">>,\n): T => {\n const base: Pick<T, keyof ExcalidrawElement> = {\n type: extra.type || element.type,\n // all elements must have version > 0 so getSceneVersion() will pick up\n // newly added elements\n version: element.version || 1,\n versionNonce: element.versionNonce ?? 0,\n index: element.index ?? null,\n isDeleted: element.isDeleted ?? false,\n id: element.id || randomId(),\n fillStyle: element.fillStyle || DEFAULT_ELEMENT_PROPS.fillStyle,\n strokeWidth: element.strokeWidth || DEFAULT_ELEMENT_PROPS.strokeWidth,\n strokeStyle: element.strokeStyle ?? DEFAULT_ELEMENT_PROPS.strokeStyle,\n roughness: element.roughness ?? DEFAULT_ELEMENT_PROPS.roughness,\n opacity:\n element.opacity == null ? DEFAULT_ELEMENT_PROPS.opacity : element.opacity,\n angle: element.angle || (0 as Radians),\n x: extra.x ?? element.x ?? 0,\n y: extra.y ?? element.y ?? 0,\n strokeColor: element.strokeColor || DEFAULT_ELEMENT_PROPS.strokeColor,\n backgroundColor:\n element.backgroundColor || DEFAULT_ELEMENT_PROPS.backgroundColor,\n width: element.width || 0,\n height: element.height || 0,\n seed: element.seed ?? 1,\n groupIds: element.groupIds ?? [],\n frameId: element.frameId ?? null,\n roundness: element.roundness\n ? element.roundness\n : element.strokeSharpness === \"round\"\n ? {\n // for old elements that would now use adaptive radius algo,\n // use legacy algo instead\n type: isUsingAdaptiveRadius(element.type)\n ? ROUNDNESS.LEGACY\n : ROUNDNESS.PROPORTIONAL_RADIUS,\n }\n : null,\n boundElements: element.boundElementIds\n ? element.boundElementIds.map((id) => ({ type: \"arrow\", id }))\n : element.boundElements ?? [],\n updated: element.updated ?? getUpdatedTimestamp(),\n link: element.link ? normalizeLink(element.link) : null,\n locked: element.locked ?? false,\n };\n\n if (\"customData\" in element || \"customData\" in extra) {\n base.customData =\n \"customData\" in extra ? extra.customData : element.customData;\n }\n\n const ret = {\n // spread the original element properties to not lose unknown ones\n // for forward-compatibility\n ...element,\n // normalized properties\n ...base,\n ...getNormalizedDimensions(base),\n ...extra,\n } as unknown as T;\n\n // strip legacy props (migrated in previous steps)\n delete ret.strokeSharpness;\n delete ret.boundElementIds;\n\n return ret;\n};\n\nexport const restoreElement = (\n /** element to be restored */\n element: Exclude<ExcalidrawElement, ExcalidrawSelectionElement>,\n /** all elements to be restored */\n targetElementsMap: Readonly<ElementsMap>,\n /** used for additional context */\n existingElementsMap: Readonly<ElementsMap> | null | undefined,\n opts?: {\n deleteInvisibleElements?: boolean;\n },\n): typeof element | null => {\n element = { ...element };\n\n switch (element.type) {\n case \"text\":\n // temp fix: cleanup legacy obsidian-excalidraw attribute else it'll\n // conflict when porting between the apps\n delete (element as any).rawText;\n\n let fontSize = element.fontSize;\n let fontFamily = element.fontFamily;\n if (\"font\" in element) {\n const [fontPx, _fontFamily]: [string, string] = (\n element as any\n ).font.split(\" \");\n fontSize = parseFloat(fontPx);\n fontFamily = getFontFamilyByName(_fontFamily);\n }\n const text = (typeof element.text === \"string\" && element.text) || \"\";\n\n // line-height might not be specified either when creating elements\n // programmatically, or when importing old diagrams.\n // For the latter we want to detect the original line height which\n // will likely differ from our per-font fixed line height we now use,\n // to maintain backward compatibility.\n const lineHeight =\n element.lineHeight ||\n (element.height\n ? // detect line-height from current element height and font-size\n detectLineHeight(element)\n : // no element height likely means programmatic use, so default\n // to a fixed line height\n getLineHeight(element.fontFamily));\n element = restoreElementWithProperties(element, {\n fontSize,\n fontFamily,\n text,\n textAlign: element.textAlign || DEFAULT_TEXT_ALIGN,\n verticalAlign: element.verticalAlign || DEFAULT_VERTICAL_ALIGN,\n containerId: element.containerId ?? null,\n originalText: element.originalText || text,\n autoResize: element.autoResize ?? true,\n lineHeight,\n });\n\n // if empty text, mark as deleted. We keep in array\n // for data integrity purposes (collab etc.)\n if (opts?.deleteInvisibleElements && !text && !element.isDeleted) {\n // TODO: we should not do this since it breaks sync / versioning when we exchange / apply just deltas and restore the elements (deletion isn't recorded)\n element = { ...element, originalText: text, isDeleted: true };\n element = bumpVersion(element);\n }\n\n return element;\n case \"freedraw\": {\n return restoreElementWithProperties(element, {\n points: element.points,\n simulatePressure: element.simulatePressure,\n pressures: element.pressures,\n });\n }\n case \"image\":\n return restoreElementWithProperties(element, {\n status: element.status || \"pending\",\n fileId: element.fileId,\n scale: element.scale || [1, 1],\n crop: element.crop ?? null,\n });\n case \"line\":\n // @ts-ignore LEGACY type\n // eslint-disable-next-line no-fallthrough\n case \"draw\":\n const startArrowhead = normalizeArrowhead(element.startArrowhead);\n const endArrowhead = normalizeArrowhead(element.endArrowhead);\n let x = element.x;\n let y = element.y;\n let points = // migrate old arrow model to new one\n !Array.isArray(element.points) || element.points.length < 2\n ? [pointFrom(0, 0), pointFrom(element.width, element.height)]\n : element.points;\n\n if (points[0][0] !== 0 || points[0][1] !== 0) {\n ({ points, x, y } =\n LinearElementEditor.getNormalizeElementPointsAndCoords(element));\n }\n\n return restoreElementWithProperties(element, {\n type: \"line\",\n startBinding: null,\n endBinding: null,\n startArrowhead,\n endArrowhead,\n points,\n x,\n y,\n ...(isLineElement(element)\n ? {\n polygon: isValidPolygon(element.points)\n ? element.polygon ?? false\n : false,\n }\n : {}),\n ...getSizeFromPoints(points),\n });\n case \"arrow\": {\n const startArrowhead = normalizeArrowhead(element.startArrowhead);\n const endArrowhead =\n element.endArrowhead === undefined\n ? \"arrow\"\n : normalizeArrowhead(element.endArrowhead);\n const x: number | undefined = element.x;\n const y: number | undefined = element.y;\n const points: readonly LocalPoint[] | undefined = // migrate old arrow model to new one\n !Array.isArray(element.points) || element.points.length < 2\n ? [pointFrom(0, 0), pointFrom(element.width, element.height)]\n : element.points;\n\n const base = {\n type: element.type,\n startBinding: repairBinding(\n element as ExcalidrawArrowElement,\n element.startBinding,\n targetElementsMap,\n existingElementsMap,\n \"start\",\n ),\n endBinding: repairBinding(\n element as ExcalidrawArrowElement,\n element.endBinding,\n targetElementsMap,\n existingElementsMap,\n \"end\",\n ),\n startArrowhead,\n endArrowhead,\n points,\n x,\n y,\n elbowed: (element as ExcalidrawArrowElement).elbowed,\n ...getSizeFromPoints(points),\n };\n\n // TODO: Separate arrow from linear element\n const restoredElement = isElbowArrow(element)\n ? restoreElementWithProperties(element as ExcalidrawElbowArrowElement, {\n ...base,\n elbowed: true,\n fixedSegments:\n element.fixedSegments?.length && base.points.length >= 4\n ? element.fixedSegments\n : null,\n startIsSpecial: element.startIsSpecial,\n endIsSpecial: element.endIsSpecial,\n })\n : restoreElementWithProperties(element as ExcalidrawArrowElement, base);\n\n return {\n ...restoredElement,\n ...LinearElementEditor.getNormalizeElementPointsAndCoords(\n restoredElement,\n ),\n };\n }\n\n // generic elements\n case \"ellipse\":\n case \"rectangle\":\n case \"diamond\":\n case \"iframe\":\n case \"embeddable\":\n return restoreElementWithProperties(element, {});\n case \"magicframe\":\n case \"frame\":\n return restoreElementWithProperties(element, {\n name: element.name ?? null,\n });\n\n // Don't use default case so as to catch a missing an element type case.\n // We also don't want to throw, but instead return void so we filter\n // out these unsupported elements from the restored array.\n }\n return null;\n};\n\n/**\n * Repairs container element's boundElements array by removing duplicates and\n * fixing containerId of bound elements if not present. Also removes any\n * bound elements that do not exist in the elements array.\n *\n * NOTE mutates elements.\n */\nconst repairContainerElement = (\n container: Mutable<ExcalidrawElement>,\n elementsMap: Map<string, Mutable<ExcalidrawElement>>,\n) => {\n if (container.boundElements) {\n // copy because we're not cloning on restore, and we don't want to mutate upstream\n const boundElements = container.boundElements.slice();\n\n // dedupe bindings & fix boundElement.containerId if not set already\n const boundIds = new Set<ExcalidrawElement[\"id\"]>();\n container.boundElements = boundElements.reduce(\n (\n acc: Mutable<NonNullable<ExcalidrawElement[\"boundElements\"]>>,\n binding,\n ) => {\n const boundElement = elementsMap.get(binding.id);\n if (boundElement && !boundIds.has(binding.id)) {\n boundIds.add(binding.id);\n\n if (boundElement.isDeleted) {\n return acc;\n }\n\n acc.push(binding);\n\n if (\n isTextElement(boundElement) &&\n // being slightly conservative here, preserving existing containerId\n // if defined, lest boundElements is stale\n !boundElement.containerId\n ) {\n (boundElement as Mutable<typeof boundElement>).containerId =\n container.id;\n }\n }\n return acc;\n },\n [],\n );\n }\n};\n\n/**\n * Repairs target bound element's container's boundElements array,\n * or removes contaienrId if container does not exist.\n *\n * NOTE mutates elements.\n */\nconst repairBoundElement = (\n boundElement: Mutable<ExcalidrawTextElement>,\n elementsMap: Map<string, Mutable<ExcalidrawElement>>,\n) => {\n const container = boundElement.containerId\n ? elementsMap.get(boundElement.containerId)\n : null;\n\n (boundElement as Mutable<typeof boundElement>).angle = (\n isArrowElement(container) ? 0 : container?.angle ?? 0\n ) as Radians;\n\n if (!container) {\n boundElement.containerId = null;\n return;\n }\n\n if (boundElement.isDeleted) {\n return;\n }\n\n if (\n container.boundElements &&\n !container.boundElements.find((binding) => binding.id === boundElement.id)\n ) {\n // copy because we're not cloning on restore, and we don't want to mutate upstream\n const boundElements = (\n container.boundElements || (container.boundElements = [])\n ).slice();\n boundElements.push({ type: \"text\", id: boundElement.id });\n container.boundElements = boundElements;\n }\n};\n\n/**\n * Remove an element's frameId if its containing frame is non-existent\n *\n * NOTE mutates elements.\n */\nconst repairFrameMembership = (\n element: Mutable<ExcalidrawElement>,\n elementsMap: Map<string, Mutable<ExcalidrawElement>>,\n) => {\n if (element.frameId) {\n const containingFrame = elementsMap.get(element.frameId);\n\n if (!containingFrame) {\n element.frameId = null;\n }\n }\n};\n\nexport const restoreElements = <T extends ExcalidrawElement>(\n targetElements: readonly T[] | undefined | null,\n /** used for additional context (e.g. repairing arrow bindings) */\n existingElements: Readonly<ElementsMapOrArray> | null | undefined,\n opts?:\n | {\n refreshDimensions?: boolean;\n repairBindings?: boolean;\n deleteInvisibleElements?: boolean;\n }\n | undefined,\n): CombineBrandsIfNeeded<T, OrderedExcalidrawElement> => {\n // used to detect duplicate top-level element ids\n const existingIds = new Set<string>();\n const targetElementsMap = arrayToMap(targetElements || []);\n const existingElementsMap = existingElements\n ? arrayToMap(existingElements)\n : null;\n const restoredElements = syncInvalidIndices(\n (targetElements || []).reduce((elements, element) => {\n // filtering out selection, which is legacy, no longer kept in elements,\n // and causing issues if retained\n if (element.type === \"selection\") {\n return elements;\n }\n let migratedElement: ExcalidrawElement | null;\n try {\n migratedElement = restoreElement(\n element,\n targetElementsMap,\n existingElementsMap,\n {\n deleteInvisibleElements: opts?.deleteInvisibleElements,\n },\n );\n } catch (error) {\n console.error(\"Error restoring element:\", error);\n migratedElement = null;\n }\n if (migratedElement) {\n const localElement = existingElementsMap?.get(element.id);\n\n const shouldMarkAsDeleted =\n opts?.deleteInvisibleElements && isInvisiblySmallElement(element);\n\n if (shouldMarkAsDeleted) {\n migratedElement = bumpVersion(migratedElement, localElement?.version);\n }\n\n if (shouldMarkAsDeleted) {\n migratedElement = { ...migratedElement, isDeleted: true };\n }\n\n if (existingIds.has(migratedElement.id)) {\n migratedElement = { ...migratedElement, id: randomId() };\n }\n existingIds.add(migratedElement.id);\n\n elements.push(migratedElement);\n }\n\n return elements;\n }, [] as ExcalidrawElement[]),\n );\n\n if (!opts?.repairBindings) {\n return restoredElements as CombineBrandsIfNeeded<\n T,\n OrderedExcalidrawElement\n >;\n }\n\n // repair binding. Mutates elements.\n const restoredElementsMap = arrayToMap(restoredElements);\n for (const element of restoredElements) {\n if (element.frameId) {\n repairFrameMembership(element, restoredElementsMap);\n }\n\n if (isTextElement(element) && element.containerId) {\n repairBoundElement(element, restoredElementsMap);\n } else if (element.boundElements) {\n repairContainerElement(element, restoredElementsMap);\n }\n\n if (opts.refreshDimensions && isTextElement(element)) {\n Object.assign(\n element,\n refreshTextDimensions(\n element,\n getContainerElement(element, restoredElementsMap),\n restoredElementsMap,\n ),\n );\n }\n\n if (isLinearElement(element)) {\n if (\n element.startBinding &&\n (!restoredElementsMap.has(element.startBinding.elementId) ||\n !isArrowElement(element))\n ) {\n (element as Mutable<ExcalidrawLinearElement>).startBinding = null;\n }\n if (\n element.endBinding &&\n (!restoredElementsMap.has(element.endBinding.elementId) ||\n !isArrowElement(element))\n ) {\n (element as Mutable<ExcalidrawLinearElement>).endBinding = null;\n }\n }\n }\n\n // NOTE (mtolmacs): Temporary fix for extremely large arrows\n // Need to iterate again so we have attached text nodes in elementsMap\n return restoredElements.map((element) => {\n if (\n isElbowArrow(element) &&\n !isArrowBoundToElement(element) &&\n !validateElbowPoints(element.points)\n ) {\n return {\n ...element,\n ...updateElbowArrowPoints(\n element,\n restoredElementsMap as NonDeletedSceneElementsMap,\n {\n points: [\n pointFrom<LocalPoint>(0, 0),\n element.points[element.points.length - 1],\n ],\n },\n ),\n index: element.index,\n };\n }\n\n if (\n isElbowArrow(element) &&\n element.startBinding &&\n element.endBinding &&\n element.startBinding.elementId === element.endBinding.elementId &&\n element.points.length > 1 &&\n element.points.some(\n ([rx, ry]) => Math.abs(rx) > 1e6 || Math.abs(ry) > 1e6,\n )\n ) {\n console.error(\"Fixing self-bound elbow arrow\", element.id);\n const boundElement = restoredElementsMap.get(\n element.startBinding.elementId,\n );\n if (!boundElement) {\n console.error(\n \"Bound element not found\",\n element.startBinding.elementId,\n );\n return element;\n }\n\n return {\n ...element,\n x: boundElement.x + boundElement.width / 2,\n y: boundElement.y - 5,\n width: boundElement.width,\n height: boundElement.height,\n points: [\n pointFrom<LocalPoint>(0, 0),\n pointFrom<LocalPoint>(0, -10),\n pointFrom<LocalPoint>(boundElement.width / 2 + 5, -10),\n pointFrom<LocalPoint>(\n boundElement.width / 2 + 5,\n boundElement.height / 2 + 5,\n ),\n ],\n };\n }\n\n return element;\n }) as CombineBrandsIfNeeded<T, OrderedExcalidrawElement>;\n};\n\n/**\n * When replacing elements that may exist locally, this bumps their versions\n * to the local version + 1. Mainly for later reconciliation to work properly.\n *\n * See https://github.com/excalidraw/excalidraw/issues/3795\n *\n * Generally use this on editor boundaries (importing from file etc.), though\n * it does not apply universally (e.g. we don't want to do this for collab\n * updates).\n */\nexport const bumpElementVersions = <T extends ExcalidrawElement>(\n targetElements: readonly T[],\n localElements: Readonly<ElementsMapOrArray> | null | undefined,\n) => {\n const localElementsMap = localElements ? arrayToMap(localElements) : null;\n\n return targetElements.map((element) => {\n const localElement = localElementsMap?.get(element.id);\n\n if (\n localElement &&\n (localElement.version > element.version ||\n // same versions but different versionNonce means different edits\n // (this often means the element was bumped during restore e.g. due\n // to re-indexing, and the original element was modified elsewhere\n // and supplied as localElements)\n (localElement.version === element.version &&\n localElement.versionNonce !== element.versionNonce))\n ) {\n return bumpVersion(element, localElement.version);\n }\n return element;\n });\n};\n\nconst coalesceAppStateValue = <\n T extends keyof ReturnType<typeof getDefaultAppState>,\n>(\n key: T,\n appState: Exclude<ImportedDataState[\"appState\"], null | undefined>,\n defaultAppState: ReturnType<typeof getDefaultAppState>,\n) => {\n const value = appState[key];\n // NOTE the value! assertion is needed in TS 4.5.5 (fixed in newer versions)\n return value !== undefined ? value! : defaultAppState[key];\n};\n\nconst LegacyAppStateMigrations: {\n [K in keyof LegacyAppState]: (\n ImportedDataState: Exclude<ImportedDataState[\"appState\"], null | undefined>,\n defaultAppState: ReturnType<typeof getDefaultAppState>,\n ) => [LegacyAppState[K][1], AppState[LegacyAppState[K][1]]];\n} = {\n isSidebarDocked: (appState, defaultAppState) => {\n return [\n \"defaultSidebarDockedPreference\",\n appState.isSidebarDocked ??\n coalesceAppStateValue(\n \"defaultSidebarDockedPreference\",\n appState,\n defaultAppState,\n ),\n ];\n },\n};\n\nexport const restoreAppState = (\n appState: ImportedDataState[\"appState\"],\n localAppState: Partial<AppState> | null | undefined,\n): RestoredAppState => {\n appState = appState || {};\n const defaultAppState = getDefaultAppState();\n const nextAppState = {} as typeof defaultAppState;\n\n // first, migrate all legacy AppState properties to new ones. We do it\n // in one go before migrate the rest of the properties in case the new ones\n // depend on checking any other key (i.e. they are coupled)\n for (const legacyKey of Object.keys(\n LegacyAppStateMigrations,\n ) as (keyof typeof LegacyAppStateMigrations)[]) {\n if (legacyKey in appState) {\n const [nextKey, nextValue] = LegacyAppStateMigrations[legacyKey](\n appState,\n defaultAppState,\n );\n (nextAppState as any)[nextKey] = nextValue;\n }\n }\n\n for (const [key, defaultValue] of Object.entries(defaultAppState) as [\n keyof typeof defaultAppState,\n any,\n ][]) {\n // if AppState contains a legacy key, prefer that one and migrate its\n // value to the new one\n const suppliedValue = appState[key];\n\n const localValue = localAppState ? localAppState[key] : undefined;\n (nextAppState as any)[key] =\n suppliedValue !== undefined\n ? suppliedValue\n : localValue !== undefined\n ? localValue\n : defaultValue;\n }\n\n return {\n ...nextAppState,\n cursorButton: localAppState?.cursorButton || \"up\",\n // reset on fresh restore so as to hide the UI button if penMode not active\n penDetected:\n localAppState?.penDetected ??\n (appState.penMode ? appState.penDetected ?? false : false),\n activeTool: {\n ...updateActiveTool(\n defaultAppState,\n nextAppState.activeTool.type &&\n AllowedExcalidrawActiveTools[nextAppState.activeTool.type]\n ? nextAppState.activeTool\n : { type: \"selection\" },\n ),\n lastActiveTool: null,\n locked: nextAppState.activeTool.locked ?? false,\n },\n // Migrates from previous version where appState.zoom was a number\n zoom: {\n value: getNormalizedZoom(\n isFiniteNumber(appState.zoom)\n ? appState.zoom\n : appState.zoom?.value ?? defaultAppState.zoom.value,\n ),\n },\n openSidebar:\n // string (legacy)\n typeof (appState.openSidebar as any as string) === \"string\"\n ? { name: DEFAULT_SIDEBAR.name }\n : nextAppState.openSidebar,\n gridSize: getNormalizedGridSize(\n isFiniteNumber(appState.gridSize) ? appState.gridSize : DEFAULT_GRID_SIZE,\n ),\n gridStep: getNormalizedGridStep(\n isFiniteNumber(appState.gridStep) ? appState.gridStep : DEFAULT_GRID_STEP,\n ),\n editingFrame: null,\n };\n};\n\nconst restoreLibraryItem = (libraryItem: LibraryItem) => {\n const elements = restoreElements(\n getNonDeletedElements(libraryItem.elements),\n null,\n );\n return elements.length ? { ...libraryItem, elements } : null;\n};\n\nexport const restoreLibraryItems = (\n libraryItems: ImportedDataState[\"libraryItems\"] = [],\n defaultStatus: LibraryItem[\"status\"],\n) => {\n const restoredItems: LibraryItem[] = [];\n for (const item of libraryItems) {\n // migrate older libraries\n if (Array.isArray(item)) {\n const restoredItem = restoreLibraryItem({\n status: defaultStatus,\n elements: item,\n id: randomId(),\n created: Date.now(),\n });\n if (restoredItem) {\n restoredItems.push(restoredItem);\n }\n } else {\n const _item = item as MarkOptional<\n LibraryItem,\n \"id\" | \"status\" | \"created\"\n >;\n const restoredItem = restoreLibraryItem({\n ..._item,\n id: _item.id || randomId(),\n status: _item.status || defaultStatus,\n created: _item.created || Date.now(),\n });\n if (restoredItem) {\n restoredItems.push(restoredItem);\n }\n }\n }\n return restoredItems;\n};\n"],
5
+ "mappings": "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AAE,CAAC,IAAE,CAAC,CAAC,GAAEG,KAAE,CAAC,GAAG,EAAE,CAAC,GAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAE,IAAE,KAAG,EAAE,CAAC,EAAE,CAAC,IAAE,EAAE,CAAC,EAAE,CAAC,IAAG,EAAE,CAAC,EAAE,CAAC,IAAE,IAAE,KAAG,EAAE,CAAC,EAAE,CAAC,IAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAE,IAAE,KAAG,EAAE,CAAC,EAAE,CAAC,IAAE,EAAE,CAAC,EAAE,CAAC,IAAG,EAAE,CAAC,EAAE,CAAC,IAAE,IAAE,KAAG,EAAE,CAAC,EAAE,CAAC,IAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAE,EAAE,CAAC,CAAC,GAAE,GAAG,EAAE,CAAC,GAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAE,IAAE,KAAG,EAAE,CAAC,EAAE,CAAC,IAAE,EAAE,CAAC,EAAE,CAAC,IAAG,EAAE,CAAC,EAAE,CAAC,IAAE,IAAE,KAAG,EAAE,CAAC,EAAE,CAAC,IAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAE,IAAE,KAAG,EAAE,CAAC,EAAE,CAAC,IAAE,EAAE,CAAC,EAAE,CAAC,IAAG,EAAE,CAAC,EAAE,CAAC,IAAE,IAAE,KAAG,EAAE,CAAC,EAAE,CAAC,IAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAE,EAAE,CAAC,CAAC,GAAE,GAAG,EAAE,CAAC,GAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAE,IAAE,KAAG,EAAE,CAAC,EAAE,CAAC,IAAE,EAAE,CAAC,EAAE,CAAC,IAAG,EAAE,CAAC,EAAE,CAAC,IAAE,IAAE,KAAG,EAAE,CAAC,EAAE,CAAC,IAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAE,IAAE,KAAG,EAAE,CAAC,EAAE,CAAC,IAAE,EAAE,CAAC,EAAE,CAAC,IAAG,EAAE,CAAC,EAAE,CAAC,IAAE,IAAE,KAAG,EAAE,CAAC,EAAE,CAAC,IAAE,EAAE,CAAC,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",
6
+ "names": ["e", "e", "e", "e", "P", "c", "m", "p", "b", "d", "G", "q", "N", "F", "E", "ct", "e", "e", "P", "c", "m", "p", "e", "P", "c", "e", "P", "c", "b", "d", "G", "q", "N", "F", "E", "m", "p", "e", "e", "P", "c", "m", "p", "b", "d", "G", "e", "P", "c", "e", "e", "c", "m", "P", "et", "tt", "nt", "rt", "e", "Q", "W", "pn", "dn", "fn", "hn", "mn", "En", "Tn", "bn", "U", "e", "at", "it", "lt", "dt", "vt", "bt", "ft", "ht", "mt", "gt", "xt", "_t", "yt", "Lt", "y", "pt", "ut", "x", "Ot", "j", "Mt", "A", "O", "_", "H", "Hn", "e", "Wn", "Pt", "qn", "Qn", "B", "I", "kt", "Z", "Nt", "Gt", "Bt", "ro", "Vt", "K", "Z", "e", "$t", "e", "Xt", "jt", "R", "_", "v", "C", "J", "J", "e", "en", "I", "O", "_", "v", "M", "$", "X", "z", "k", "e", "e", "tn", "rn", "e", "B", "e", "e", "ln", "L", "e", "C", "e", "Y", "e", "_a", "ra", "e", "v", "P", "d", "c", "m", "p", "I", "A", "g", "M", "E", "x", "y", "b", "pr", "sa", "Et", "qt", "Kt", "Re", "aa", "fr", "Hn", "da", "k", "B", "X", "_", "ie", "F", "z", "W", "O", "L", "hr", "Tt", "ai", "fa", "Er", "gr", "R", "ma", "xr", "pa", "wr", "ha", "Ea", "ga", "to", "br", "no", "vt", "xa", "Xe", "Je", "io", "oo", "ba", "ya", "Dt", "Pa", "Ia", "Aa", "at", "et", "st", "Ta", "Pr", "va", "_n", "Da", "xe", "ht", "je", "Qe", "ur", "ii", "mr", "Zt", "La", "Ie", "re", "Jt", "Fa", "$", "vn", "we", "Na", "ao", "lo", "Q", "co", "Z", "Se", "q", "Lt", "H", "U", "Ae", "de", "Ha", "Ar", "gt", "ce", "_a", "Ua", "Wa", "Br", "uo", "en", "Gt", "Un", "tn", "Bn", "lt", "xt", "Lr", "C", "Ne", "nn", "Ot", "Ka", "Qa", "Ve", "fo", "Gr", "ho", "mo", "Cr", "on", "Wn", "e", "Wn", "P", "Or", "Eo", "J", "kt", "Fr", "tt", "ue", "Ft", "on", "d", "c", "m", "p", "xo", "H", "dt", "Ve", "Rr", "Ka", "Cn", "Rt", "Qa", "V", "C", "Nr", "Me", "e", "ce", "Me", "H", "Q", "Rr", "dt", "ro", "P", "rn", "re", "en", "tn", "uo", "bo", "gt", "lo", "Bn", "we", "Ur", "xt", "he", "bt", "c", "Ot", "V", "q", "C", "Z", "d", "m", "p", "an", "sn", "yo", "de", "Nt", "Be", "Po", "Se", "Wr", "E", "g", "x", "y", "b", "I", "Un", "fe", "be", "_e", "zt", "He", "ct", "Ue", "pe", "e", "bt", "He", "c", "d", "fe", "be", "_e", "jr", "P", "qr", "ee", "pe", "p", "m", "ct", "Ht", "Jr", "es", "Qr", "M", "E", "g", "x", "y", "b", "I", "A", "O", "L", "k", "B", "X", "_", "Ue", "zt", "jn", "v", "nt", "cn", "Be", "an", "Gn", "Do", "Xr", "de", "ts", "Ne", "rn", "Nt", "lt", "ye", "U", "Ke", "Le", "Pt", "ut", "C", "It", "yo", "re", "Wr", "Ot", "xt", "Lr", "De", "Oo", "H", "ko", "V", "Cn", "Ha", "sn", "nn", "ce", "_a", "Q", "ls", "e", "_a", "C", "ye", "U", "d", "c", "m", "$", "E", "g", "p", "b", "I", "R", "A", "x", "Ae", "Pt", "Lr", "z", "y", "W", "V", "Cn", "O", "L", "k", "B", "X", "_", "ie", "Bn", "Lt", "uo", "Ue", "zt", "Ke", "Dt", "H", "F", "ut", "M", "P", "cs", "q", "Se", "he", "Q", "us", "St", "ms", "Oe", "zo", "ce", "Z", "ps", "Wt", "fn", "Vn", "Es", "e", "$", "d", "c", "ke", "fn", "Vn", "Es", "e", "Z", "m", "Es", "Vn", "p", "d", "c", "Oe", "Q", "Wt", "fn", "V", "ye", "Me", "St", "co", "vn", "jo", "$", "q", "Se", "g", "x", "E", "H", "y", "b", "I", "A", "M", "O", "L", "we", "e", "Ke", "vn", "Gt", "d", "c", "m", "p", "E", "Q", "ho", "V", "we", "Wt", "H", "jo", "$", "v", "gt", "Nr", "dt", "g", "Me", "x", "C", "y", "b", "I", "A", "M", "Fa", "he", "P", "_a", "Je", "q", "We", "Bn", "lo", "Na", "ao", "Xo", "Fe", "bt", "U", "Un", "ct", "ba", "bo", "Pa", "ya", "Ia", "Wa", "La", "ce", "Se", "vt", "Lt", "en", "tn", "Un", "e", "d", "c", "m", "p", "Po", "E", "g", "x", "y", "Fe", "Dt", "z", "b", "I", "W", "xe", "M", "O", "L", "k", "B", "X", "_", "ie", "F", "We", "V", "C", "Ke", "he", "ke", "Jt", "q", "Se", "jt", "bt", "nt", "re", "an", "$", "H", "P", "zo", "De", "Ds", "Z", "ms", "Oe", "gt", "ce", "Me", "v", "Ye", "Y", "Bs", "wn", "xn", "Kn", "Le", "we", "vn", "Jn", "Qn", "Zo", "Gs", "ye", "ks", "ei", "St", "_a", "Q", "Rt", "xo", "de", "A", "U", "Ns", "fo", "mt", "Nn", "Ve", "Ft", "dt", "Lt", "er", "pt", "Hs", "Us", "ao", "zn", "R", "pe", "be", "fe", "_e", "Ws", "Ar", "It", "jn", "co", "fn", "js", "Nt", "ir", "Pt", "xt", "Be", "ut", "Ae", "lt", "Ne", "Cn", "ht", "ur", "ii", "mr", "je", "Qe", "Mt", "Zt", "Vt", "e", "ar", "Js", "d", "c", "Nt", "m", "p", "E", "g", "x", "y", "b", "I", "U", "q", "Z", "we", "$", "na", "ea", "P", "St", "cr", "Nn", "xo", "It", "C", "oa", "ks", "er", "Ve", "ei", "H", "A", "M", "ke", "x1", "x2", "y2", "ke", "mimeTypes", "e", "workerPool", "e", "e", "Q", "Ke", "Wn", "Me", "x", "Z", "fontFaces", "e", "K", "I", "x1", "x2", "y2", "x", "y", "$", "x", "y", "x", "y", "x1", "x2", "y2", "$", "fn", "el", "lo", "Q", "V", "Na", "Wt", "g", "x1", "x2", "y2", "$", "Q", "Me", "H", "y1", "C", "element", "Ke", "opacity", "Gt", "V", "Bn", "vn", "uncroppedWidth", "uncroppedHeight", "ho", "en", "el", "lo", "Le", "Z", "Nn", "ks", "x1", "x2", "y2", "$", "ke", "U", "nn", "p", "C", "Ot", "Lr", "_a", "id", "x", "y", "Lt", "startArrowhead", "endArrowhead", "points", "Q", "H", "ks", "Me", "q", "jn"]
7
+ }