dxf-json 0.7.0 → 0.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/dist/bundle.cjs +2 -2
  2. package/dist/bundle.mjs +2 -2
  3. package/dist/consts/viewport.d.ts +0 -6
  4. package/dist/parser/entities/attribute/index.d.ts +0 -1
  5. package/dist/parser/entities/index.d.ts +23 -1
  6. package/dist/parser/entities/viewport/types.d.ts +3 -2
  7. package/dist/parser/index.d.ts +2 -3
  8. package/dist/parser/objects/dictionary/consts.d.ts +8 -0
  9. package/dist/parser/objects/dictionary/index.d.ts +3 -0
  10. package/dist/parser/objects/dictionary/parser.d.ts +2 -0
  11. package/dist/parser/objects/dictionary/types.d.ts +11 -0
  12. package/dist/parser/objects/index.d.ts +4 -1
  13. package/dist/parser/objects/layout/consts.d.ts +4 -0
  14. package/dist/parser/objects/layout/index.d.ts +3 -0
  15. package/dist/parser/objects/layout/parser.d.ts +2 -0
  16. package/dist/parser/objects/{layout.d.ts → layout/types.d.ts} +4 -9
  17. package/dist/parser/objects/plotSettings/consts.d.ts +27 -0
  18. package/dist/parser/objects/plotSettings/index.d.ts +3 -0
  19. package/dist/parser/objects/plotSettings/parser.d.ts +2 -0
  20. package/dist/parser/objects/{plotSettings.d.ts → plotSettings/types.d.ts} +2 -30
  21. package/dist/parser/objects/shared.d.ts +2 -0
  22. package/dist/parser/objects/treefy.d.ts +2 -2
  23. package/dist/parser/objects/types.d.ts +5 -6
  24. package/dist/parser/tables/index.d.ts +6 -8
  25. package/dist/parser/types.d.ts +2 -3
  26. package/package.json +1 -1
  27. package/dist/parser/entities/attribute/consts.d.ts +0 -6
  28. package/dist/parser/entities/types.d.ts +0 -21
  29. package/dist/parser/objects/common.d.ts +0 -8
  30. package/dist/parser/objects/dictionary.d.ts +0 -20
package/dist/bundle.cjs CHANGED
@@ -1,3 +1,3 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.BlockTypeFlag=void 0,(R=exports.BlockTypeFlag||(exports.BlockTypeFlag={}))[R.None=0]="None",R[R.Anonymous=1]="Anonymous",R[R.NonConstant=2]="NonConstant",R[R.Xref=4]="Xref",R[R.XrefOverlay=8]="XrefOverlay",R[R.ExternallyDependent=16]="ExternallyDependent",R[R.ResolvedOrDependent=32]="ResolvedOrDependent",R[R.ReferencedXref=64]="ReferencedXref",exports.ColorCode=void 0,(F=exports.ColorCode||(exports.ColorCode={}))[F.BYBLOCK=0]="BYBLOCK",F[F.BYLAYER=256]="BYLAYER",exports.DimensionType=void 0,(k=exports.DimensionType||(exports.DimensionType={}))[k.Rotated=0]="Rotated",k[k.Aligned=1]="Aligned",k[k.Angular=2]="Angular",k[k.Diameter=3]="Diameter",k[k.Radius=4]="Radius",k[k.Angular3Point=5]="Angular3Point",k[k.Ordinate=6]="Ordinate",k[k.ReferenceIsExclusive=32]="ReferenceIsExclusive",k[k.IsOrdinateXTypeFlag=64]="IsOrdinateXTypeFlag",k[k.IsCustomTextPositionFlag=128]="IsCustomTextPositionFlag",exports.AttachmentPoint=void 0,(w=exports.AttachmentPoint||(exports.AttachmentPoint={}))[w.TopLeft=1]="TopLeft",w[w.TopCenter=2]="TopCenter",w[w.TopRight=3]="TopRight",w[w.MiddleLeft=4]="MiddleLeft",w[w.MiddleCenter=5]="MiddleCenter",w[w.MiddleRight=6]="MiddleRight",w[w.BottomLeft=7]="BottomLeft",w[w.BottomCenter=8]="BottomCenter",w[w.BottomRight=9]="BottomRight",exports.DimensionTextLineSpacing=void 0,(V=exports.DimensionTextLineSpacing||(exports.DimensionTextLineSpacing={}))[V.AtLeast=1]="AtLeast",V[V.Exact=2]="Exact",exports.DimensionTextVertical=void 0,(B=exports.DimensionTextVertical||(exports.DimensionTextVertical={}))[B.Center=0]="Center",B[B.Above=1]="Above",B[B.Outside=2]="Outside",B[B.JIS=3]="JIS",B[B.Below=4]="Below",exports.DimensionZeroSuppression=void 0,(H=exports.DimensionZeroSuppression||(exports.DimensionZeroSuppression={}))[H.Feet=0]="Feet",H[H.None=1]="None",H[H.Inch=2]="Inch",H[H.FeetAndInch=3]="FeetAndInch",H[H.Leading=4]="Leading",H[H.Trailing=8]="Trailing",H[H.LeadingAndTrailing=12]="LeadingAndTrailing",exports.DimensionZeroSuppressionAngular=void 0,(G=exports.DimensionZeroSuppressionAngular||(exports.DimensionZeroSuppressionAngular={}))[G.None=0]="None",G[G.Leading=1]="Leading",G[G.Trailing=2]="Trailing",G[G.LeadingAndTrailing=3]="LeadingAndTrailing",exports.DimensionTextHorizontal=void 0,(U=exports.DimensionTextHorizontal||(exports.DimensionTextHorizontal={}))[U.Center=0]="Center",U[U.Left=1]="Left",U[U.Right=2]="Right",U[U.OverFirst=3]="OverFirst",U[U.OverSecond=4]="OverSecond",exports.DimensionToleranceTextVertical=void 0,(W=exports.DimensionToleranceTextVertical||(exports.DimensionToleranceTextVertical={}))[W.Bottom=0]="Bottom",W[W.Center=1]="Center",W[W.Top=2]="Top",exports.HatchSolidFill=void 0,(Y=exports.HatchSolidFill||(exports.HatchSolidFill={}))[Y.PatternFill=0]="PatternFill",Y[Y.SolidFill=1]="SolidFill",exports.HatchAssociativity=void 0,(j=exports.HatchAssociativity||(exports.HatchAssociativity={}))[j.NonAssociative=0]="NonAssociative",j[j.Associative=1]="Associative",exports.HatchStyle=void 0,(X=exports.HatchStyle||(exports.HatchStyle={}))[X.Normal=0]="Normal",X[X.Outer=1]="Outer",X[X.Ignore=2]="Ignore",exports.HatchPatternType=void 0,(z=exports.HatchPatternType||(exports.HatchPatternType={}))[z.UserDefined=0]="UserDefined",z[z.Predefined=1]="Predefined",z[z.Custom=2]="Custom",exports.HatchBoundaryAnnotation=void 0,(K=exports.HatchBoundaryAnnotation||(exports.HatchBoundaryAnnotation={}))[K.NotAnnotated=0]="NotAnnotated",K[K.Annotated=1]="Annotated",exports.HatchGradientFlag=void 0,(Z=exports.HatchGradientFlag||(exports.HatchGradientFlag={}))[Z.Solid=0]="Solid",Z[Z.Gradient=1]="Gradient",exports.HatchGradientColorFlag=void 0,(J=exports.HatchGradientColorFlag||(exports.HatchGradientColorFlag={}))[J.TwoColor=0]="TwoColor",J[J.OneColor=1]="OneColor",exports.BoundaryPathTypeFlag=void 0,($=exports.BoundaryPathTypeFlag||(exports.BoundaryPathTypeFlag={}))[$.Default=0]="Default",$[$.External=1]="External",$[$.Polyline=2]="Polyline",$[$.Derived=4]="Derived",$[$.Textbox=8]="Textbox",$[$.Outermost=16]="Outermost",exports.BoundaryPathEdgeType=void 0,(q=exports.BoundaryPathEdgeType||(exports.BoundaryPathEdgeType={}))[q.Line=1]="Line",q[q.Circular=2]="Circular",q[q.Elliptic=3]="Elliptic",q[q.Spline=4]="Spline",exports.ObscuredLineTypes=void 0,(Q=exports.ObscuredLineTypes||(exports.ObscuredLineTypes={}))[Q.Off=0]="Off",Q[Q.Solid=1]="Solid",Q[Q.Dashed=2]="Dashed",Q[Q.Dotted=3]="Dotted",Q[Q.ShotDash=4]="ShotDash",Q[Q.MediumDash=5]="MediumDash",Q[Q.LongDash=6]="LongDash",Q[Q.DoubleShortDash=7]="DoubleShortDash",Q[Q.DoubleMediumDash=8]="DoubleMediumDash",Q[Q.DoubleLongDash=9]="DoubleLongDash",Q[Q.DoubleMediumLongDash=10]="DoubleMediumLongDash",Q[Q.SparseDot=11]="SparseDot";const e={DRAGVS:"NULL",INTERFERECOLOR:1,INTERFEREOBJVS:"Conceptual",INTERFEREVPVS:"3d Wireframe",OBSLTYPE:exports.ObscuredLineTypes.Off,SHADEDIF:70};function r(e,r,a){return e.code===r&&(null==a||e.value===a)}function a(e,a,t){for(;r(e,102);){var n;let o=e.value;if(e=a.next(),!o.startsWith("{")){console.warn(`Invalid application group, expected to start with "{" but received: ${o}`),function(e,a){for(;!r(e,102)&&!r(e,0,"EOF");)e=a.next()}(e,a),e=a.next();continue}let s=o.slice(1).trim();t.extensions??(t.extensions={}),(n=t.extensions)[s]??(n[s]=[]),function(e,a,t){for(;!r(e,102,"}")&&!r(e,0,"EOF");)t.push(e),e=a.next()}(e,a,t.extensions[s]),e=a.next()}}exports.ReservedLineweight=void 0,(ee=exports.ReservedLineweight||(exports.ReservedLineweight={}))[ee.Standard=-3]="Standard",ee[ee.ByLayer=-2]="ByLayer",ee[ee.ByBlock=-1]="ByBlock",exports.Measurement=void 0,(er=exports.Measurement||(exports.Measurement={}))[er.English=0]="English",er[er.Metric=1]="Metric",exports.ViewportStatusFlag=void 0,(ea=exports.ViewportStatusFlag||(exports.ViewportStatusFlag={}))[ea.PERSPECTIVE_MODE=1]="PERSPECTIVE_MODE",ea[ea.FRONT_CLIPPING=2]="FRONT_CLIPPING",ea[ea.BACK_CLIPPING=4]="BACK_CLIPPING",ea[ea.UCS_FOLLOW=8]="UCS_FOLLOW",ea[ea.FRONT_CLIP_NOT_AT_EYE=16]="FRONT_CLIP_NOT_AT_EYE",ea[ea.UCS_ICON_VISIBILITY=32]="UCS_ICON_VISIBILITY",ea[ea.UCS_ICON_AT_ORIGIN=64]="UCS_ICON_AT_ORIGIN",ea[ea.FAST_ZOOM=128]="FAST_ZOOM",ea[ea.SNAP_MODE=256]="SNAP_MODE",ea[ea.GRID_MODE=512]="GRID_MODE",ea[ea.ISOMETRIC_SNAP_STYLE=1024]="ISOMETRIC_SNAP_STYLE",ea[ea.HIDE_PLOT_MODE=2048]="HIDE_PLOT_MODE",ea[ea.K_ISO_PAIR_TOP=4096]="K_ISO_PAIR_TOP",ea[ea.K_ISO_PAIR_RIGHT=8192]="K_ISO_PAIR_RIGHT",ea[ea.VIEWPORT_ZOOM_LOCKING=16384]="VIEWPORT_ZOOM_LOCKING",ea[ea.UNUSED=32768]="UNUSED",ea[ea.NON_RECTANGULAR_CLIPPING=65536]="NON_RECTANGULAR_CLIPPING",ea[ea.VIEWPORT_OFF=131072]="VIEWPORT_OFF",ea[ea.GRID_BEYOND_DRAWING_LIMITS=262144]="GRID_BEYOND_DRAWING_LIMITS",ea[ea.ADAPTIVE_GRID_DISPLAY=524288]="ADAPTIVE_GRID_DISPLAY",ea[ea.SUBDIVISION_BELOW_SPACING=1048576]="SUBDIVISION_BELOW_SPACING",ea[ea.GRID_FOLLOWS_WORKPLANE=2097152]="GRID_FOLLOWS_WORKPLANE",exports.RenderMode=void 0,(et=exports.RenderMode||(exports.RenderMode={}))[et.OPTIMIZED_2D=0]="OPTIMIZED_2D",et[et.WIREFRAME=1]="WIREFRAME",et[et.HIDDEN_LINE=2]="HIDDEN_LINE",et[et.FLAT_SHADED=3]="FLAT_SHADED",et[et.GOURAUD_SHADED=4]="GOURAUD_SHADED",et[et.FLAT_SHADED_WITH_WIREFRAME=5]="FLAT_SHADED_WITH_WIREFRAME",et[et.GOURAUD_SHADED_WITH_WIREFRAME=6]="GOURAUD_SHADED_WITH_WIREFRAME",exports.UCSPerViewport=void 0,(en=exports.UCSPerViewport||(exports.UCSPerViewport={}))[en.UCS_UNCHANGED=0]="UCS_UNCHANGED",en[en.HAS_OWN_UCS=1]="HAS_OWN_UCS",exports.OrthographicType=void 0,(eo=exports.OrthographicType||(exports.OrthographicType={}))[eo.NON_ORTHOGRAPHIC=0]="NON_ORTHOGRAPHIC",eo[eo.TOP=1]="TOP",eo[eo.BOTTOM=2]="BOTTOM",eo[eo.FRONT=3]="FRONT",eo[eo.BACK=4]="BACK",eo[eo.LEFT=5]="LEFT",eo[eo.RIGHT=6]="RIGHT",exports.ShadePlotMode=void 0,(es=exports.ShadePlotMode||(exports.ShadePlotMode={}))[es.AS_DISPLAYED=0]="AS_DISPLAYED",es[es.WIREFRAME=1]="WIREFRAME",es[es.HIDDEN=2]="HIDDEN",es[es.RENDERED=3]="RENDERED",exports.DefaultLightingType=void 0,(ei=exports.DefaultLightingType||(exports.DefaultLightingType={}))[ei.ONE_DISTANT_LIGHT=0]="ONE_DISTANT_LIGHT",ei[ei.TWO_DISTANT_LIGHTS=1]="TWO_DISTANT_LIGHTS";var t,n,o,s,i,c,d,l,p,u,m,E,h,I,f,b,T,D,O,g,x,S,y,N,_,L,A,v,P,C,M,R,F,k,w,V,B,H,G,U,W,Y,j,X,z,K,Z,J,$,q,Q,ee,er,ea,et,en,eo,es,ei,ec,ed,el,ep,eu,em,eE,eh,eI,ef,eb,eT,eD,eO,eg,ex,eS,ey,eN,e_,eL,eA,ev,eP=[0,16711680,16776960,65280,65535,255,16711935,16777215,8421504,12632256,16711680,16744319,13369344,13395558,10027008,10046540,8323072,8339263,4980736,4990502,16727808,16752511,13382400,13401958,10036736,10051404,8331008,8343359,4985600,4992806,16744192,16760703,13395456,13408614,10046464,10056268,8339200,8347455,4990464,4995366,16760576,16768895,13408512,13415014,10056192,10061132,8347392,8351551,4995328,4997670,16776960,16777087,13421568,13421670,10000384,10000460,8355584,8355647,5000192,5000230,12582656,14679935,10079232,11717734,7510016,8755276,6258432,7307071,3755008,4344870,8388352,12582783,6736896,10079334,5019648,7510092,4161280,6258495,2509824,3755046,4194048,10485631,3394560,8375398,2529280,6264908,2064128,5209919,1264640,3099686,65280,8388479,52224,6736998,38912,5019724,32512,4161343,19456,2509862,65343,8388511,52275,6737023,38950,5019743,32543,4161359,19475,2509871,65407,8388543,52326,6737049,38988,5019762,32575,4161375,19494,2509881,65471,8388575,52377,6737074,39026,5019781,32607,4161391,19513,2509890,65535,8388607,52428,6737100,39064,5019800,32639,4161407,19532,2509900,49151,8380415,39372,6730444,29336,5014936,24447,4157311,14668,2507340,32767,8372223,26316,6724044,19608,5010072,16255,4153215,9804,2505036,16383,8364031,13260,6717388,9880,5005208,8063,4149119,4940,2502476,255,8355839,204,6710988,152,5000344,127,4145023,76,2500172,4129023,10452991,3342540,8349388,2490520,6245528,2031743,5193599,1245260,3089996,8323327,12550143,6684876,10053324,4980888,7490712,4128895,6242175,2490444,3745356,12517631,14647295,10027212,11691724,7471256,8735896,6226047,7290751,3735628,4335180,16711935,16744447,13369548,13395660,9961624,9981080,8323199,8339327,4980812,4990540,16711871,16744415,13369497,13395634,9961586,9981061,8323167,8339311,4980793,4990530,16711807,16744383,13369446,13395609,9961548,9981042,8323135,8339295,4980774,4990521,16711743,16744351,13369395,13395583,9961510,9981023,8323103,8339279,4980755,4990511,3355443,5987163,8684676,11382189,14079702,16777215];function eC(e){let r={};e.rewind();let a=e.next(),t=a.code;if(r.x=a.value,(a=e.next()).code!==t+10)throw Error("Expected code for point value to be 20 but got "+a.code+".");return(r.y=a.value,(a=e.next()).code!==t+20)?e.rewind():r.z=a.value,r}const eM=Symbol();function eR(e,a){return(t,n,o)=>{let s=e.reduce((e,r)=>{r.pushContext&&e.push({});let a=e[e.length-1];for(let e of"number"==typeof r.code?[r.code]:r.code){let t=a[e]??(a[e]=[]);r.isMultiple&&t.length,t.push(r)}return e},[{}]),i=!1,c=s.length-1;for(;!r(t,0,"EOF");){let e=function(e,r,a){return e.find((e,t)=>t>=a&&e[r]?.length)}(s,t.code,c),r=e?.[t.code].at(-1);if(!e||!r){n.rewind();break}r.isMultiple||e[t.code].pop();let{name:a,parser:d,isMultiple:l,isReducible:p}=r,u=d?.(t,n,o);if(u===eM){n.rewind();break}if(a){let[e,r]=function(e,r){let a=r.split(".");if(!a.length)throw Error("[parserGenerator::getObjectByPath] Invalid empty path");let t=e;for(let e=0;e<a.length-1;++e){let r=eF(a[e]),n=eF(a[e+1]);Object.prototype.hasOwnProperty.call(t,r)||("number"==typeof n?t[r]=[]:t[r]={}),t=t[r]}return[t,eF(a.at(-1))]}(o,a);l&&!p?(Object.prototype.hasOwnProperty.call(e,r)||(e[r]=[]),e[r].push(u)):e[r]=u}r.pushContext&&(c-=1),i=!0,t=n.next()}return a&&Object.setPrototypeOf(o,a),i}}function eF(e){let r=Number.parseInt(e);return Number.isNaN(r)?e:r}function ek({value:e}){return e}function ew(e,r){return eC(r)}function eV({value:e}){return!!e}const eB=[{code:1001,name:"xdata",parser:eH}];function eH(e,a){if(!r(e,1001))throw Error("XData must starts with code 1001");let t={appName:e.value,value:[]};e=a.next();let n=[t.value];for(;!r(e,0,"EOF")&&e.code>=1e3;){let r=n.at(-1);switch(e.code){case 1002:"{"===e.value?n.push([]):(n.pop(),n.at(-1)?.push(r));break;case 1e3:case 1004:case 1040:case 1070:case 1071:r.push({type:eG(e.code),value:e.value});break;case 1003:r.push({name:"layer",type:eG(e.code),value:e.value});break;case 1005:r.push({name:"handle",type:eG(e.code),value:e.value});break;case 1010:r.push({type:eG(e.code),value:eC(a)});break;case 1011:r.push({name:"worldSpacePosition",type:eG(e.code),value:eC(a)});break;case 1012:r.push({name:"worldSpaceDisplacement",type:eG(e.code),value:eC(a)});break;case 1013:r.push({name:"worldSpaceDirection",type:eG(e.code),value:eC(a)});break;case 1041:r.push({name:"distance",type:eG(e.code),value:e.value});break;case 1042:r.push({name:"scale",type:eG(e.code),value:e.value})}e=a.next()}return a.rewind(),t}function eG(e){switch(e){case 1e3:case 1003:case 1005:return"string";case 1004:return"hex";case 1040:case 1041:case 1042:return"real";case 1070:return"integer";case 1071:return"long";case 1010:case 1011:case 1012:case 1013:return"point";default:return""}}exports.ShadowMode=void 0,(t=exports.ShadowMode||(exports.ShadowMode={}))[t.CAST_AND_RECEIVE=0]="CAST_AND_RECEIVE",t[t.CAST=1]="CAST",t[t.RECEIVE=2]="RECEIVE",t[t.IGNORE=3]="IGNORE";const eU=[...eB,{code:284,name:"shadowMode",parser:ek},{code:390,name:"plotStyleHardId",parser:ek},{code:440,name:"transparency",parser:ek},{code:430,name:"colorName",parser:ek},{code:420,name:"color",parser:ek},{code:310,name:"proxyEntity",parser:ek},{code:92,name:"proxyByte",parser:ek},{code:60,name:"isVisible",parser:eV},{code:48,name:"lineTypeScale",parser:ek},{code:370,name:"lineweight",parser:ek},{code:62,name:"colorIndex",parser(e,r,a){let t=e.value;return a.color=eP[Math.abs(t)],t}},{code:347,name:"materialObjectHardId",parser:ek},{code:6,name:"lineType",parser:ek},{code:8,name:"layer",parser:ek},{code:410,name:"layoutTabName",parser:ek},{code:67,name:"isInPaperSpace",parser:eV},{code:100},{code:330,name:"ownerBlockRecordSoftId",parser:ek},{code:102,parser:a},{code:102,parser:a},{code:102,parser:a},{code:5,name:"handle",parser:ek}];let eW=0;function eY(e){if(!e)throw TypeError("entity cannot be undefined or null");e.handle||(e.handle=eW++)}function ej(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}const eX={extrusionDirection:{x:0,y:0,z:1}},ez=[{code:210,name:"extrusionDirection",parser:ew},{code:51,name:"endAngle",parser:ek},{code:50,name:"startAngle",parser:ek},{code:100,name:"subclassMarker",parser:ek},{code:40,name:"radius",parser:ek},{code:10,name:"center",parser:ew},{code:39,name:"thickness",parser:ek},{code:100},...eU];class eK{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){ej(this,"parser",eR(ez,eX))}}function eZ(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}ej(eK,"ForEntityName","ARC"),(n=ec||(ec={}))[n.NONE=0]="NONE",n[n.INVISIBLE=1]="INVISIBLE",n[n.CONSTANT=2]="CONSTANT",n[n.VERIFICATION_REQUIRED=4]="VERIFICATION_REQUIRED",n[n.PRESET=8]="PRESET",(o=ed||(ed={}))[o.MULTILINE=2]="MULTILINE",o[o.CONSTANT_MULTILINE=4]="CONSTANT_MULTILINE",(s=el||(el={}))[s.NONE=0]="NONE",s[s.MIRRORED_X=2]="MIRRORED_X",s[s.MIRRORED_Y=4]="MIRRORED_Y",(i=ep||(ep={}))[i.LEFT=0]="LEFT",i[i.CENTER=1]="CENTER",i[i.RIGHT=2]="RIGHT",i[i.ALIGNED=3]="ALIGNED",i[i.MIDDLE=4]="MIDDLE",i[i.FIT=5]="FIT",(c=eu||(eu={}))[c.BASELINE=0]="BASELINE",c[c.BOTTOM=1]="BOTTOM",c[c.MIDDLE=2]="MIDDLE",c[c.TOP=3]="TOP";const eJ={thickness:0,rotation:0,xScale:1,obliqueAngle:0,styleName:"STANDARD",generationFlag:0,halign:ep.LEFT,valign:eu.BASELINE,extrusionDirection:{x:0,y:0,z:1}},e$=[{code:73,name:"valign",parser:ek},{code:100},{code:210,name:"extrusionDirection",parser:ew},{code:11,name:"endPoint",parser:ew},{code:72,name:"valign",parser:ek},{code:72,name:"halign",parser:ek},{code:71,name:"generationFlag",parser:ek},{code:7,name:"styleName",parser:ek},{code:51,name:"obliqueAngle",parser:ek},{code:41,name:"xScale",parser:ek},{code:50,name:"rotation",parser:ek},{code:1,name:"text",parser:ek},{code:40,name:"textHeight",parser:ek},{code:10,name:"startPoint",parser:ew},{code:39,name:"thickness",parser:ek},{code:100,name:"subclassMarker",parser:ek},...eU];class eq{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){eZ(this,"parser",eR(e$,eJ))}}function eQ(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}eZ(eq,"ForEntityName","TEXT");const e0={...eJ},e1=[{code:2},{code:40,name:"annotationScale",parser:ek},{code:10,name:"alignmentPoint",parser:ew},{code:340,name:"secondaryAttributesHardIds",isMultiple:!0,parser:ek},{code:70,name:"numberOfSecondaryAttributes",parser:ek},{code:70,name:"isReallyLocked",parser:eV},{code:70,name:"mtextFlag",parser:ek},{code:280,name:"isDuplicatedRecord",parser:eV},{code:100},{code:280,name:"isLocked",parser:eV},{code:74,name:"valign",parser:ek},{code:73},{code:70,name:"attributeFlag",parser:ek},{code:2,name:"tag",parser:ek},{code:3,name:"prompt",parser:ek},{code:280},{code:100,name:"subclassMarker",parser:ek},...e$.slice(2)];class e4{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){eQ(this,"parser",eR(e1,e0))}}function e2(e,r){let a={};for(let t of e){let e=r(t);null!=e&&(a[e]??(a[e]=[]),a[e].push(t))}return a}function*e3(e,r=1/0,a=1){for(let t=e;t!==r;t+=a)yield t}function e7(e){return{x:e.x??0,y:e.y??0,z:e.z??0}}function e5(e,t,n){if(r(t,102))return a(t,n,e),!0;switch(t.code){case 0:e.type=t.value;break;case 5:e.handle=t.value;break;case 330:e.ownerBlockRecordSoftId=t.value;break;case 67:e.isInPaperSpace=!!t.value;break;case 8:e.layer=t.value;break;case 6:e.lineType=t.value;break;case 347:e.materialObjectHardId=t.value;break;case 62:e.colorIndex=t.value,e.color=eP[Math.abs(t.value)];break;case 370:e.lineweight=t.value;break;case 48:e.lineTypeScale=t.value;break;case 60:e.isVisible=!!t.value;break;case 92:e.proxyByte=t.value;break;case 310:e.proxyEntity=t.value;break;case 100:break;case 420:e.color=t.value;break;case 430:e.transparency=t.value;break;case 390:e.plotStyleHardId=t.value;break;case 284:e.shadowMode=t.value;break;case 1001:e.xdata=eH(t,n);break;default:return!1}return!0}function e6(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}eQ(e4,"ForEntityName","ATTDEF"),(d=em||(em={}))[d.INVISIBLE=1]="INVISIBLE",d[d.CONSTANT=2]="CONSTANT",d[d.REQUIRE_VERIFICATION=4]="REQUIRE_VERIFICATION",d[d.PRESET=8]="PRESET",(l=eE||(eE={}))[l.LEFT_TO_RIGHT=1]="LEFT_TO_RIGHT",l[l.TOP_TO_BOTTOM=3]="TOP_TO_BOTTOM",l[l.BY_STYLE=5]="BY_STYLE";const e9={textStyle:"STANDARD",extrusionDirection:{x:0,y:0,z:1},rotation:0},e8=[{code:46,name:"annotationHeight",parser:ek},{code:101,parser(e,r){!function(e){e.rewind();let r=e.next();if(101!==r.code)throw Error("Bad call for skipEmbeddedObject()");do r=e.next();while(0!==r.code);e.rewind()}(r)}},{code:50,name:"columnHeight",parser:ek},{code:49,name:"columnGutter",parser:ek},{code:48,name:"columnWidth",parser:ek},{code:79,name:"columnAutoHeight",parser:ek},{code:78,name:"columnFlowReversed",parser:ek},{code:76,name:"columnCount",parser:ek},{code:75,name:"columnType",parser:ek},{code:441,name:"backgroundFillTransparency",parser:ek},{code:63,name:"backgroundFillColor",parser:ek},{code:45,name:"fillBoxScale",parser:ek},{code:[...e3(430,440)],name:"backgroundColor",parser:ek},{code:[...e3(420,430)],name:"backgroundColor",parser:ek},{code:90,name:"backgroundFill",parser:ek},{code:44,name:"lineSpacing",parser:ek},{code:73,name:"lineSpacingStyle",parser:ek},{code:50,name:"rotation",parser:ek},{code:43},{code:42},{code:11,name:"direction",parser:ew},{code:210,name:"extrusionDirection",parser:ew},{code:7,name:"styleName",parser:ek},{code:3,name:"text",parser:(e,r,a)=>(a._code3text=(a._code3text??"")+e.value,a._code3text+(a._code1text??"")),isMultiple:!0,isReducible:!0},{code:1,name:"text",parser:(e,r,a)=>(a._code1text=e.value,(a._code3text??"")+a._code1text)},{code:72,name:"drawingDirection",parser:ek},{code:71,name:"attachmentPoint",parser:ek},{code:41,name:"width",parser:ek},{code:40,name:"height",parser:ek},{code:10,name:"insertionPoint",parser:ew},{code:100,name:"subclassMarker",parser:ek},...eU];class re{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){e6(this,"parser",eR(e8,e9))}}function rr(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}e6(re,"ForEntityName","MTEXT");const ra={thickness:0,rotation:0,scale:1,obliqueAngle:0,textStyle:"STANDARD",textGenerationFlag:0,horizontalJustification:0,verticalJustification:0,extrusionDirection:{x:0,y:0,z:1}},rt=[...e8.slice(e8.findIndex(({name:e})=>"columnType"===e),e8.findIndex(({name:e})=>"subclassMarker"===e)+1),{code:100},{code:0,parser(e){if(!r(e,0,"MTEXT"))return eM}},{code:2,name:"definitionTag",parser:ek},{code:40,name:"annotationScale",parser:ek},{code:10,name:"alignmentPoint",parser:ew},{code:340,name:"secondaryAttributesHardId",parser:ek},{code:70,name:"numberOfSecondaryAttributes",parser:ek},{code:70,name:"isReallyLocked",parser:eV},{code:70,name:"mtextFlag",parser:ek},{code:280,name:"isDuplicatedEntriesKeep",parser:eV},{code:100},{code:280,name:"lockPositionFlag",parser:eV},{code:210,name:"extrusionDirection",parser:ew},{code:11,name:"alignmentPoint",parser:ew},{code:74,name:"verticalJustification",parser:ek},{code:72,name:"horizontalJustification",parser:ek},{code:71,name:"textGenerationFlag",parser:ek},{code:7,name:"textStyle",parser:ek},{code:51,name:"obliqueAngle",parser:ek},{code:41,name:"scale",parser:ek},{code:50,name:"rotation",parser:ek},{code:73},{code:70,name:"attributeFlag",parser:ek},{code:2,name:"tag",parser:ek},{code:280},{code:100,name:"subclassMarker",parser:ek},{code:1,name:"text",parser:ek},{code:40,name:"textHeight",parser:ek},{code:10,name:"startPoint",parser:ew},{code:39,name:"thickness",parser:ek},{code:100},...eU];class rn{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rr(this,"parser",eR(rt,ra))}}function ro(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}rr(rn,"ForEntityName","ATTRIB");const rs={thickness:0,extrusionDirection:{x:0,y:0,z:1}},ri=[{code:210,name:"extrusionDirection",parser:ew},{code:40,name:"radius",parser:ek},{code:10,name:"center",parser:ew},{code:39,name:"thickness",parser:ek},{code:100,name:"subclassMarker",parser:ek},...eU];class rc{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){ro(this,"parser",eR(ri,rs))}}ro(rc,"ForEntityName","CIRCLE");class rd{parseEntity(e,a){let t={};for(;!r(a,0,"EOF");){if(0===a.code){e.rewind();break}!function(e,r,a){switch(r.code){case 100:e.subclassMarker=r.value;break;case 280:e.version=r.value;break;case 2:e.name=r.value;break;case 10:e.definitionPoint=eC(a);break;case 11:e.textPoint=eC(a);break;case 12:e.insertionPoint=eC(a);break;case 13:e.subDefinitionPoint1=eC(a);break;case 14:e.subDefinitionPoint2=eC(a);break;case 15:e.centerPoint=eC(a);break;case 16:e.arcPoint=eC(a);break;case 70:e.dimensionType=r.value;break;case 71:e.attachmentPoint=r.value;break;case 72:e.textLineSpacingStyle=r.value;break;case 40:e.leaderLength=r.value;break;case 41:e.textLineSpacingFactor=r.value;break;case 42:e.measurement=r.value;break;case 1:e.text=r.value;break;case 50:e.rotationAngle=r.value;break;case 52:e.obliqueAngle=r.value;break;case 53:e.textRotation=r.value;break;case 51:e.ocsRotation=r.value;break;case 210:e.extrusionDirection=eC(a);break;case 3:e.styleName=r.value;break;default:e5(e,r,a)}}(t,a,e),a=e.next()}return t}}function rl(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}u="DIMENSION",(p="ForEntityName")in rd?Object.defineProperty(rd,p,{value:u,enumerable:!0,configurable:!0,writable:!0}):rd[p]=u;const rp={extrusionDirection:{x:0,y:0,z:1}},ru=[{code:42,name:"endAngle",parser:ek},{code:41,name:"startAngle",parser:ek},{code:40,name:"axisRatio",parser:ek},{code:210,name:"extrusionDirection",parser:ew},{code:11,name:"majorAxisEndPoint",parser:ew},{code:10,name:"center",parser:ew},{code:100,name:"subclassMarker",parser:ek},...eU];class rm{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rl(this,"parser",eR(ru,rp))}}function rE(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}rl(rm,"ForEntityName","ELLIPSE"),(m=eh||(eh={}))[m.First=1]="First",m[m.Second=2]="Second",m[m.Third=4]="Third",m[m.Fourth=8]="Fourth";const rh=[{code:13,name:"vertices.3",parser:ew},{code:12,name:"vertices.2",parser:ew},{code:11,name:"vertices.1",parser:ew},{code:10,name:"vertices.0",parser:ew},{code:100,name:"subclassMarker",parser:ek},...eU];class rI{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rE(this,"parser",eR(rh))}}function rf(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}rE(rI,"ForEntityName","3DFACE"),(E=eI||(eI={}))[E.ShowImage=1]="ShowImage",E[E.ShowImageWhenNotAlignedWithScreen=2]="ShowImageWhenNotAlignedWithScreen",E[E.UseClippingBoundary=4]="UseClippingBoundary",E[E.TransparencyIsOn=8]="TransparencyIsOn",(h=ef||(ef={}))[h.Rectangular=1]="Rectangular",h[h.Polygonal=2]="Polygonal",(I=eb||(eb={}))[I.Outside=0]="Outside",I[I.Inside=1]="Inside";const rb={brightness:50,contrast:50,fade:0,clippingBoundaryPath:[]},rT=[{code:290,name:"clipMode",parser:ek},{code:14,name:"clippingBoundaryPath",isMultiple:!0,parser:ew},{code:91,name:"countBoundaryPoints",parser:ek},{code:71,name:"clippingBoundaryType",parser:ek},{code:360,name:"imageDefReactorHandle",parser:ek},{code:283,name:"fade",parser:ek},{code:282,name:"contrast",parser:ek},{code:281,name:"brightness",parser:ek},{code:280,name:"isClipped",parser:eV},{code:70,name:"flags",parser:ek},{code:340,name:"imageDefHandle",parser:ek},{code:13,name:"imageSize",parser:ew},{code:12,name:"vPixel",parser:ew},{code:11,name:"uPixel",parser:ew},{code:10,name:"position",parser:ew},{code:90,name:"version",parser:ek},{code:100,name:"subclassMarker",parser:ek},...eU];class rD{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rf(this,"parser",eR(rT,rb))}}function rO(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}rf(rD,"ForEntityName","IMAGE");const rg={xScale:1,yScale:1,zScale:1,rotation:0,columnCount:0,rowCount:0,columnSpacing:0,rowSpacing:0,extrusionDirection:{x:0,y:0,z:1}},rx=[{code:210,name:"extrusionDirection",parser:ew},{code:45,name:"rowSpacing",parser:ek},{code:44,name:"columnSpacing",parser:ek},{code:71,name:"rowCount",parser:ek},{code:70,name:"columnCount",parser:ek},{code:50,name:"rotation",parser:ek},{code:43,name:"zScale",parser:ek},{code:42,name:"yScale",parser:ek},{code:41,name:"xScale",parser:ek},{code:10,name:"insertionPoint",parser:ew},{code:2,name:"name",parser:ek},{code:66,name:"isVariableAttributes",parser:eV},{code:100,name:"subclassMarker",parser:ek},...eU];class rS{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rO(this,"parser",eR(rx,rg))}}function ry(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}rO(rS,"ForEntityName","INSERT");const rN={isArrowheadEnabled:!0},r_=[{code:213,name:"offsetFromAnnotation",parser:ew},{code:212,name:"offsetFromBlock",parser:ew},{code:211,name:"horizontalDirection",parser:ew},{code:210,name:"normal",parser:ew},{code:340,name:"associatedAnnotation",parser:ek},{code:77,name:"byBlockColor",parser:ek},{code:10,name:"vertices",parser:ew,isMultiple:!0},{code:76,name:"numberOfVertices",parser:ek},{code:41,name:"textWidth",parser:ek},{code:40,name:"textHeight",parser:ek},{code:75,name:"isHooklineExists",parser:eV},{code:74,name:"isHooklineSameDirection",parser:eV},{code:73,name:"leaderCreationFlag",parser:ek},{code:72,name:"isSpline",parser:eV},{code:71,name:"isArrowheadEnabled",parser:eV},{code:3,name:"styleName",parser:ek},{code:100,name:"subclassMarker",parser:ek},...eU];class rL{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){ry(this,"parser",eR(r_,rN))}}function rA(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}ry(rL,"ForEntityName","LEADER"),(f=eT||(eT={}))[f.TextAnnotation=0]="TextAnnotation",f[f.ToleranceAnnotation=1]="ToleranceAnnotation",f[f.BlockReferenceAnnotation=2]="BlockReferenceAnnotation",f[f.NoAnnotation=3]="NoAnnotation";const rv={thickness:0,extrusionDirection:{x:0,y:0,z:1}},rP=[{code:210,name:"extrusionDirection",parser:ew},{code:11,name:"endPoint",parser:ew},{code:10,name:"startPoint",parser:ew},{code:39,name:"thickness",parser:ek},{code:100,name:"subclassMarker",parser:ek},...eU];class rC{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rA(this,"parser",eR(rP,rv))}}rA(rC,"ForEntityName","LINE"),(b=eD||(eD={}))[b.IS_CLOSED=1]="IS_CLOSED",b[b.PLINE_GEN=128]="PLINE_GEN";const rM={flag:0,elevation:0,thickness:0,extrusionDirection:{x:0,y:0,z:1},vertices:[]},rR={bulge:0},rF=[{code:42,name:"bulge",parser:ek},{code:41,name:"endWidth",parser:ek},{code:40,name:"startWidth",parser:ek},{code:91,name:"id",parser:ek},{code:20,name:"y",parser:ek},{code:10,name:"x",parser:ek}],rk=[{code:210,name:"extrusionDirection",parser:ew},{code:10,name:"vertices",isMultiple:!0,parser(e,r){let a={};return eR(rF,rR)(e,r,a),a}},{code:39,name:"thickness",parser:ek},{code:38,name:"elevation",parser:ek},{code:43,name:"constantWidth",parser:ek},{code:70,name:"flag",parser:ek},{code:90,name:"numberOfVertices",parser:ek},{code:100,name:"subclassMarker",parser:ek},...eU];class rw{parseEntity(e,r){let a={};return eR(rk,rM)(r,e,a),a}}function rV(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}D="LWPOLYLINE",(T="ForEntityName")in rw?Object.defineProperty(rw,T,{value:D,enumerable:!0,configurable:!0,writable:!0}):rw[T]=D;const rB={thickness:0,extrusionDirection:{x:0,y:0,z:1},angle:0},rH=[{code:50,name:"angle",parser:ek},{code:210,name:"extrusionDirection",parser:ew},{code:39,name:"thickness",parser:ek},{code:10,name:"position",parser:ew},{code:100,name:"subclassMarker",parser:ek},...eU];class rG{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rV(this,"parser",eR(rH,rB))}}function rU(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}rV(rG,"ForEntityName","POINT"),(O=eO||(eO={}))[O.CLOSED_POLYLINE=1]="CLOSED_POLYLINE",O[O.CURVE_FIT=2]="CURVE_FIT",O[O.SPLINE_FIT=4]="SPLINE_FIT",O[O.POLYLINE_3D=8]="POLYLINE_3D",O[O.POLYGON_3D=16]="POLYGON_3D",O[O.CLOSED_POLYGON=32]="CLOSED_POLYGON",O[O.POLYFACE=64]="POLYFACE",O[O.CONTINUOUS=128]="CONTINUOUS",(g=eg||(eg={}))[g.NONE=0]="NONE",g[g.QUADRATIC=5]="QUADRATIC",g[g.CUBIC=6]="CUBIC",g[g.BEZIER=8]="BEZIER",(x=ex||(ex={}))[x.CREATED_BY_CURVE_FIT=1]="CREATED_BY_CURVE_FIT",x[x.TANGENT_DEFINED=2]="TANGENT_DEFINED",x[x.NOT_USED=4]="NOT_USED",x[x.CREATED_BY_SPLINE_FIT=8]="CREATED_BY_SPLINE_FIT",x[x.SPLINE_CONTROL_POINT=16]="SPLINE_CONTROL_POINT",x[x.FOR_POLYLINE=32]="FOR_POLYLINE",x[x.FOR_POLYGON=64]="FOR_POLYGON",x[x.POLYFACE=128]="POLYFACE";const rW={startWidth:0,endWidth:0,bulge:0},rY=[{code:91,name:"id",parser:ek},{code:[...e3(71,75)],name:"faces",isMultiple:!0,parser:ek},{code:50,name:"tangentDirection",parser:ek},{code:70,name:"flag",parser:ek},{code:42,name:"bulge",parser:ek},{code:41,name:"endWidth",parser:ek},{code:40,name:"startWidth",parser:ek},{code:30,name:"z",parser:ek},{code:20,name:"y",parser:ek},{code:10,name:"x",parser:ek},{code:100,name:"subclassMarker",parser:ek},{code:100},...eU];class rj{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rU(this,"parser",eR(rY,rW))}}function rX(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}rU(rj,"ForEntityName","VERTEX");const rz={thickness:0,flag:0,startWidth:0,endWidth:0,meshMVertexCount:0,meshNVertexCount:0,surfaceMDensity:0,surfaceNDensity:0,smoothType:0,extrusionDirection:{x:0,y:0,z:1},vertices:[]},rK=[{code:0,name:"vertices",isMultiple:!0,parser:(e,a)=>r(e,0,"VERTEX")?(e=a.next(),new rj().parseEntity(a,e)):eM},{code:210,name:"extrusionDirection",parser:ew},{code:75,name:"smoothType",parser:ek},{code:74,name:"surfaceNDensity",parser:ek},{code:73,name:"surfaceMDensity",parser:ek},{code:72,name:"meshNVertexCount",parser:ek},{code:71,name:"meshMVertexCount",parser:ek},{code:41,name:"endWidth",parser:ek},{code:40,name:"startWidth",parser:ek},{code:70,name:"flag",parser:ek},{code:39,name:"thickness",parser:ek},{code:30,name:"elevation",parser:ek},{code:20},{code:10},{code:66},{code:100,name:"subclassMarker",parser:ek},...eU];class rZ{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rX(this,"parser",eR(rK,rz))}}function rJ(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}rX(rZ,"ForEntityName","POLYLINE");const r$=[{code:11,name:"direction",parser:ew},{code:10,name:"position",parser:ew},{code:100,name:"subclassMarker",parser:ek},...eU];class rq{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rJ(this,"parser",eR(r$))}}function rQ(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}rJ(rq,"ForEntityName","RAY");const r0={vertices:[],backLineVertices:[]},r1=[{code:360,name:"geometrySettingHardId",parser:ek},{code:12,name:"backLineVertices",isMultiple:!0,parser:ew},{code:93,name:"numberOfBackLineVertices",parser:ek},{code:11,name:"vertices",isMultiple:!0,parser:ew},{code:92,name:"verticesCount",parser:ek},{code:[63,411],name:"indicatorColor",parser:ek},{code:70,name:"indicatorTransparency",parser:ek},{code:41,name:"bottomHeight",parser:ek},{code:40,name:"topHeight",parser:ek},{code:10,name:"verticalDirection",parser:ew},{code:1,name:"name",parser:ek},{code:91,name:"flag",parser:ek},{code:90,name:"state",parser:ek},{code:100,name:"subclassMarker",parser:ek},...eU];class r4{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rQ(this,"parser",eR(r1,r0))}}function r2(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}rQ(r4,"ForEntityName","SECTION");const r3={points:[],thickness:0,extrusionDirection:{x:0,y:0,z:1}},r7=[{code:210,name:"extrusionDirection",parser:ew},{code:39,name:"thickness",parser:ek},{code:[...e3(10,14)],name:"points",isMultiple:!0,parser:ew},{code:100,name:"subclassMarker",parser:ek},...eU];class r5{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){r2(this,"parser",eR(r7,r3))}}function r6(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}r2(r5,"ForEntityName","SOLID"),(S=eS||(eS={}))[S.NONE=0]="NONE",S[S.CLOSED=1]="CLOSED",S[S.PERIODIC=2]="PERIODIC",S[S.RATIONAL=4]="RATIONAL",S[S.PLANAR=8]="PLANAR",S[S.LINEAR=16]="LINEAR";const r9={knotTolerance:1e-6,controlTolerance:1e-6,fitTolerance:1e-9,knotValues:[],controlPoints:[],fitPoints:[]},r8=[{code:11,name:"fitPoints",isMultiple:!0,parser:ew},{code:10,name:"controlPoints",isMultiple:!0,parser:ew},{code:41,name:"weights",isMultiple:!0,parser:ek},{code:40,name:"knots",isMultiple:!0,parser:ek},{code:13,name:"endTangent",parser:ew},{code:12,name:"startTangent",parser:ew},{code:44,name:"fitTolerance",parser:ek},{code:43,name:"controlTolerance",parser:ek},{code:42,name:"knotTolerance",parser:ek},{code:74,name:"numberOfFitPoints",parser:ek},{code:73,name:"numberOfControlPoints",parser:ek},{code:72,name:"numberOfKnots",parser:ek},{code:71,name:"degree",parser:ek},{code:70,name:"flag",parser:ek},{code:210,name:"normal",parser:ew},{code:100,name:"subclassMarker",parser:ek},...eU];class ae{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){r6(this,"parser",eR(r8,r9))}}r6(ae,"ForEntityName","SPLINE");const ar=[{code:330,name:"sourceBoundaryObjects",parser:ek,isMultiple:!0},{code:97,name:"numberOfSourceBoundaryObjects",parser:ek}],aa=[{code:11,name:"end",parser:ew},{code:10,name:"start",parser:ew}],at=[{code:73,name:"isCCW",parser:eV},{code:51,name:"endAngle",parser:ek},{code:50,name:"startAngle",parser:ek},{code:40,name:"radius",parser:ek},{code:10,name:"center",parser:ew}],an=[{code:73,name:"isCCW",parser:eV},{code:51,name:"endAngle",parser:ek},{code:50,name:"startAngle",parser:ek},{code:40,name:"lengthOfMinorAxis",parser:ek},{code:11,name:"end",parser:ew},{code:10,name:"center",parser:ew}],ao=[{code:13,name:"endTangent",parser:ew},{code:12,name:"startTangent",parser:ew},{code:11,name:"fitDatum",isMultiple:!0,parser:ew},{code:97,name:"numberOfFitData",parser:ek},{code:10,name:"controlPoints",isMultiple:!0,parser(e,r){let a={...eC(r),weight:1};return 42===(e=r.next()).code?a.weight=e.value:r.rewind(),a}},{code:40,name:"knots",isMultiple:!0,parser:ek},{code:96,name:"numberOfControlPoints",parser:ek},{code:95,name:"numberOfKnots",parser:ek},{code:74,name:"isPeriodic",parser:eV},{code:73,name:"splineFlag",parser:ek},{code:94,name:"degree",parser:ek}],as={[exports.BoundaryPathEdgeType.Line]:aa,[exports.BoundaryPathEdgeType.Circular]:at,[exports.BoundaryPathEdgeType.Elliptic]:an,[exports.BoundaryPathEdgeType.Spline]:ao},ai=[...ar,{code:72,name:"edges",parser(e,r){let a={type:e.value},t=eR(as[a.type]);if(!t)throw Error(`Invalid edge type ${a.type}`);return t(e=r.next(),r,a),a},isMultiple:!0},{code:93,name:"numberOfEdges",parser:ek}],ac=[...ar,{code:10,name:"vertices",parser(e,r){let a={...eC(r),bulge:0};return 42===(e=r.next()).code?a.bulge=e.value:r.rewind(),a},isMultiple:!0},{code:93,name:"numberOfVertices",parser:ek},{code:73,name:"isClosed",parser:eV},{code:72,name:"hasBulge",parser:eV}],ad=[{code:49,name:"dashLengths",parser:ek,isMultiple:!0},{code:79,name:"numberOfDashLengths",parser:ek},{code:45,name:"offset",parser:al},{code:43,name:"base",parser:al},{code:53,name:"angle",parser:ek}];function al(e,r){let a=e.code+1,t={x:e.value,y:1};return(e=r.next()).code===a?t.y=e.value:r.rewind(),t}function ap(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}const au={extrusionDirection:{x:0,y:0,z:1},gradientRotation:0,colorTint:0},am=[{code:470},{code:463},{code:462,name:"colorTint",parser:ek},{code:461,name:"gradientDefinition",parser:ek},{code:460,name:"gradientRotation",parser:ek},{code:453,name:"numberOfColors",parser:ek},{code:452,name:"gradientColorFlag",parser:ek},{code:451},{code:450,name:"gradientFlag",parser:ek},{code:10,name:"seedPoints",parser:ew,isMultiple:!0},{code:99},{code:11,name:"offsetVector",parser:ew},{code:98,name:"numberOfSeedPoints",parser:ek},{code:47,name:"pixelSize",parser:ek},{code:53,name:"definitionLines",parser:function(e,r){let a={};return eR(ad)(e,r,a),a},isMultiple:!0},{code:78,name:"numberOfDefinitionLines",parser:ek},{code:77,name:"isDouble",parser:eV},{code:73,name:"isAnnotated",parser:eV},{code:41,name:"patternScale",parser:ek},{code:52,name:"patternAngle",parser:ek},{code:76,name:"patternType",parser:ek},{code:75,name:"hatchStyle",parser:ek},{code:92,name:"boundaryPaths",parser:function(e,r){let a={boundaryPathTypeFlag:e.value},t=a.boundaryPathTypeFlag&exports.BoundaryPathTypeFlag.Polyline;return(e=r.next(),t)?eR(ac)(e,r,a):eR(ai)(e,r,a),a},isMultiple:!0},{code:91,name:"numberOfBoundaryPaths",parser:ek},{code:71,name:"associativity",parser:ek},{code:63,name:"patternFillColor",parser:ek},{code:70,name:"solidFill",parser:ek},{code:2,name:"patternName",parser:ek},{code:210,name:"extrusionDirection",parser:ew},{code:10,name:"elevationPoint",parser:ew},{code:100,name:"subclassMarker",parser:ek,pushContext:!0},...eU];class aE{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){ap(this,"parser",eR(am,au))}}ap(aE,"ForEntityName","HATCH");class ah{parseEntity(e,r){let a={};for(;"EOF"!==r;){if(0===r.code){e.rewind();break}!function(e,r,a){if("EOF"===a)return!1;switch(a.code){case 0:return!1;case 100:e.subclassMarker=a.value;break;case 10:e.viewportCenter=e7(eC(r));break;case 40:e.width=a.value;break;case 41:e.height=a.value;break;case 68:e.status=a.value;break;case 69:e.viewportId=a.value;break;case 12:e.displayCenter=eC(r);break;case 13:e.snapBase=eC(r);break;case 14:e.snapSpacing=eC(r);break;case 15:e.gridSpacing=eC(r);break;case 16:e.viewDirection=e7(eC(r));break;case 17:e.targetPoint=e7(eC(r));break;case 42:e.perspectiveLensLength=a.value;break;case 43:e.frontClipZ=a.value;break;case 44:e.backClipZ=a.value;break;case 45:e.viewHeight=a.value;break;case 50:e.snapAngle=a.value;break;case 51:e.viewTwistAngle=a.value;break;case 72:e.circleZoomPercent=a.value;break;case 331:e.frozenLayerIds??(e.frozenLayerIds=[]),e.frozenLayerIds.push(a.value);break;case 90:e.statusBitFlags=a.value;break;case 340:e.clippingBoundaryId=a.value;break;case 1:e.sheetName=a.value;break;case 281:e.renderMode=a.value;break;case 71:e.ucsPerViewport=a.value;break;case 110:e.ucsOrigin=e7(eC(r));break;case 111:e.ucsXAxis=e7(eC(r));break;case 112:e.ucsYAxis=e7(eC(r));break;case 345:e.ucsId=a.value;break;case 346:e.ucsBaseId=a.value;break;case 79:e.orthographicType=a.value;break;case 146:e.elevation=a.value;break;case 170:e.shadePlotMode=a.value;break;case 61:e.majorGridFrequency=a.value;break;case 332:e.backgroundId=a.value;break;case 333:e.shadePlotId=a.value;break;case 348:e.visualStyleId=a.value;break;case 292:e.isDefaultLighting=!!a.value;break;case 282:e.defaultLightingType=a.value;break;case 141:e.brightness=a.value;break;case 142:e.contrast=a.value;break;case 63:case 421:case 431:e.ambientLightColor=a.value;break;case 361:e.sunId=a.value;break;case 335:case 343:case 344:case 91:e.softPointer=a.value}return!0}(a,e,r)&&e5(a,r,e),r=e.next()}return a}}function aI(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}N="VIEWPORT",(y="ForEntityName")in ah?Object.defineProperty(ah,y,{value:N,enumerable:!0,configurable:!0,writable:!0}):ah[y]=N;const af={},ab=[{code:170,name:"multileaderType",parser:ek},{code:291,name:"doglegEnabled",parser:eV},{code:40,name:"doglegLength",parser:ek},{code:172,name:"contentType",parser:ek},{code:3,name:"textContent",parser:ek},{code:12,name:"textAnchor",parser:ew},{code:344,name:"blockHandle",parser:ek},{code:15,name:"blockPosition",parser:ew},{code:302,name:"leaderSections",parser:function(e,r,a){let t;let n={leaderLines:[]};for(;r.hasNext()&&303!==(t=r.next()).code;){switch(t.code){case 10:n.landingPoint=(t.value,eC(r));break;case 11:n.doglegVector=(t.value,eC(r));break;case 40:n.doglegLength=t.value;break;case 304:n.leaderLines.push(function(e,r,a){let t;let n={vertices:[]};for(;r.hasNext()&&305!==(t=r.next()).code;)10===t.code&&n.vertices.push((t.value,eC(r)));return n}(0,r))}}return n},isMultiple:!0},...eU];class aT{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){aI(this,"parser",eR(ab,af))}}aI(aT,"ForEntityName","MULTILEADER");const aD=Object.fromEntries([eK,e4,rn,rc,rd,rm,rI,rD,rS,rL,rC,rw,re,aT,rG,rZ,rq,r4,r5,ae,eq,aE,rj,ah].map(e=>[e.ForEntityName,new e]));function aO(e,a){let t=[];for(;!r(e,0,"EOF");){if(0===e.code){if("ENDBLK"===e.value||"ENDSEC"===e.value){a.rewind();break}let r=aD[e.value];if(r){let n=e.value;e=a.next();let o=r.parseEntity(a,e);o.type=n,eY(o),t.push(o)}else console.warn(`Unsupported ENTITY type: ${e.value}`)}e=a.next()}return t}function ag(e,a){let t={};for(;!r(e,0,"EOF")&&!r(e,0,"ENDSEC");){if(r(e,0,"BLOCK")){let r=ax(e=a.next(),a);eY(r),r.name&&(t[r.name]=r)}e=a.next()}return t}function ax(e,a){let t={};for(;!r(e,0,"EOF");){if(r(e,0,"ENDBLK")){for(e=a.next();!r(e,0,"EOF");){if(r(e,100,"AcDbBlockEnd"))return t;e=a.next()}break}switch(e.code){case 1:t.xrefPath=e.value;break;case 2:t.name=e.value;break;case 3:t.name2=e.value;break;case 5:t.handle=e.value;break;case 8:t.layer=e.value;break;case 10:t.position=eC(a);break;case 67:t.paperSpace=!!e.value&&1==e.value;break;case 70:0!==e.value&&(t.type=e.value);break;case 100:break;case 330:t.ownerHandle=e.value;break;case 0:t.entities=aO(e,a)}e=a.next()}return t}function aS(e,a){let t=null,n={};for(;!r(e,0,"EOF")&&!r(e,0,"ENDSEC");)9===e.code?t=e.value:10===e.code?n[t]=eC(a):n[t]=e.value,e=a.next();return n}const ay=[{code:333,name:"shadePlotId",parser:ek},{code:149,name:"imageOriginY",parser:ek},{code:148,name:"imageOriginX",parser:ek},{code:147,name:"scaleFactor",parser:ek},{code:78,name:"shadePlotCustomDPI",parser:ek},{code:77,name:"shadePlotResolution",parser:ek},{code:76,name:"shadePlotMode",parser:ek},{code:75,name:"standardScaleType",parser:ek},{code:7,name:"currentStyleSheet",parser:ek},{code:74,name:"plotType",parser:ek},{code:73,name:"plotRotation",parser:ek},{code:72,name:"paperUnit",parser:ek},{code:70,name:"layoutFlag",parser:ek},{code:143,name:"printScaleDenominator",parser:ek},{code:142,name:"printScaleNominator",parser:ek},{code:141,name:"windowAreaYMax",parser:ek},{code:140,name:"windowAreaYMin",parser:ek},{code:49,name:"windowAreaXMax",parser:ek},{code:48,name:"windowAreaXMin",parser:ek},{code:47,name:"plotOriginY",parser:ek},{code:46,name:"plotOriginX",parser:ek},{code:45,name:"paperHeight",parser:ek},{code:44,name:"paperWidth",parser:ek},{code:43,name:"marginTop",parser:ek},{code:42,name:"marginRight",parser:ek},{code:41,name:"marginBottom",parser:ek},{code:40,name:"marginLeft",parser:ek},{code:6,name:"plotViewName",parser:ek},{code:4,name:"paperSize",parser:ek},{code:2,name:"configName",parser:ek},{code:1,name:"pageSetupName",parser:ek},{code:100,name:"subclassMarker",parser:ek}];(_=ey||(ey={}))[_.INCHES=0]="INCHES",_[_.MILLIMETERS=1]="MILLIMETERS",_[_.PIXELS=2]="PIXELS",(L=eN||(eN={}))[L.LAST_SCREEN_DISPLAY=0]="LAST_SCREEN_DISPLAY",L[L.DRAWING_EXTENTS=1]="DRAWING_EXTENTS",L[L.DRAWING_LIMITS=2]="DRAWING_LIMITS",L[L.VIEW_SPECIFIED=3]="VIEW_SPECIFIED",L[L.WINDOW_SPECIFIED=4]="WINDOW_SPECIFIED",L[L.LAYOUT_INFORMATION=5]="LAYOUT_INFORMATION",(A=e_||(e_={}))[A.AS_DISPLAYED=0]="AS_DISPLAYED",A[A.WIREFRAME=1]="WIREFRAME",A[A.HIDDEN=2]="HIDDEN",A[A.RENDERED=3]="RENDERED",(v=eL||(eL={}))[v.DRAFT=0]="DRAFT",v[v.PREVIEW=1]="PREVIEW",v[v.NORMAL=2]="NORMAL",v[v.PRESENTATION=3]="PRESENTATION",v[v.MAXIMUM=4]="MAXIMUM",v[v.CUSTOM=5]="CUSTOM";const aN=[{code:333,name:"shadePlotId",parser:ek},{code:346,name:"orthographicUcsId",parser:ek},{code:345,name:"namedUcsId",parser:ek},{code:331,name:"viewportId",parser:ek},{code:330,name:"paperSpaceTableId",parser:ek},{code:76,name:"orthographicType",parser:ek},{code:17,name:"ucsYAxis",parser:ew},{code:16,name:"ucsXAxis",parser:ew},{code:13,name:"ucsOrigin",parser:ew},{code:146,name:"elevation",parser:ek},{code:15,name:"maxExtent",parser:ew},{code:14,name:"minExtent",parser:ew},{code:12,name:"insertionBase",parser:ew},{code:11,name:"maxLimit",parser:ew},{code:10,name:"minLimit",parser:ew},{code:71,name:"tabOrder",parser:ek},{code:70,name:"controlFlag",parser:ek},{code:1,name:"layoutName",parser:ek},{code:100,name:"subclassMarker",parser:ek},...ay];(P=eA||(eA={}))[P.PSLTSCALE=1]="PSLTSCALE",P[P.LIMCHECK=2]="LIMCHECK";const a_=[{code:330,name:"ownerObjectId",parser:ek},{code:102},{code:360,name:"ownerDictionaryIdHard",parser:ek},{code:102},{code:102},{code:330,name:"ownerDictionaryIdSoft",parser:ek},{code:102},{code:102},{code:102},{code:5,name:"handle",parser:ek}],aL=[{code:3,name:"entries",parser:(e,r)=>{let a={name:e.value};return 350===(e=r.next()).code?a.objectId=e.value:r.rewind(),a},isMultiple:!0},{code:281,name:"recordCloneFlag",parser:ek},{code:280,name:"isHardOwned",parser:eV},{code:100,name:"subclassMarker",parser:ek}];function aA(e){return"AcDbDictionary"===e.subclassMarker}(C=ev||(ev={}))[C.NOT_APPLICABLE=0]="NOT_APPLICABLE",C[C.KEEP_EXISTING=1]="KEEP_EXISTING",C[C.USE_CLONE=2]="USE_CLONE",C[C.XREF_VALUE_NAME=3]="XREF_VALUE_NAME",C[C.VALUE_NAME=4]="VALUE_NAME",C[C.UNMANGLE_NAME=5]="UNMANGLE_NAME";const av={LAYOUT:aN,PLOTSETTINGS:ay,DICTIONARY:aL};function aP(e,r){let a=[];for(;0!==e.code||!["EOF","ENDSEC"].includes(e.value);){let t=e.value,n=av[t];if(0===e.code&&n?.length){let o=eR([...a_,...n]),s={name:t};o(e=r.next(),r,s)?(a.push(s),e=r.peek()):e=r.next()}else e=r.next()}return{byName:e2(a,({name:e})=>e),byTree:function(e){let r=Object.fromEntries(e.map(e=>[e.handle,e]));for(let a of e)(!aA(a)||"0"!==a.ownerDictionaryIdSoft)&&(a.ownerDictionaryIdSoft&&(a.ownerDictionarySoft=r[a.ownerDictionaryIdSoft]),a.ownerDictionaryIdHard&&(a.ownerDictionaryHard=r[a.ownerDictionaryIdHard]),a.ownerObjectId&&(a.ownerObject=r[a.ownerObjectId])),function(e,r){aA(e)&&e.entries&&(e.entries=Object.fromEntries(e.entries.map(({name:e,objectId:a})=>[e,r[a]])))}(a,r);return e[0]}(a)}}const aC=[{name:"DIMPOST",code:3},{name:"DIMAPOST",code:4},{name:"DIMBLK_OBSOLETE",code:5},{name:"DIMBLK1_OBSOLETE",code:6},{name:"DIMBLK2_OBSOLETE",code:7},{name:"DIMSCALE",code:40,defaultValue:1},{name:"DIMASZ",code:41,defaultValue:.25},{name:"DIMEXO",code:42,defaultValue:.625,defaultValueImperial:.0625},{name:"DIMDLI",code:43,defaultValue:3.75,defaultValueImperial:.38},{name:"DIMEXE",code:44,defaultValue:2.25,defaultValueImperial:.28},{name:"DIMRND",code:45,defaultValue:0},{name:"DIMDLE",code:46,defaultValue:0},{name:"DIMTP",code:47,defaultValue:0},{name:"DIMTM",code:48,defaultValue:0},{name:"DIMTXT",code:140,defaultValue:2.5,defaultValueImperial:.28},{name:"DIMCEN",code:141,defaultValue:2.5,defaultValueImperial:.09},{name:"DIMTSZ",code:142,defaultValue:0},{name:"DIMALTF",code:143,defaultValue:25.4},{name:"DIMLFAC",code:144,defaultValue:1},{name:"DIMTVP",code:145,defaultValue:0},{name:"DIMTFAC",code:146,defaultValue:1},{name:"DIMGAP",code:147,defaultValue:.625,defaultValueImperial:.09},{name:"DIMALTRND",code:148,defaultValue:0},{name:"DIMTOL",code:71,defaultValue:0,defaultValueImperial:1},{name:"DIMLIM",code:72,defaultValue:0},{name:"DIMTIH",code:73,defaultValue:0,defaultValueImperial:1},{name:"DIMTOH",code:74,defaultValue:0,defaultValueImperial:1},{name:"DIMSE1",code:75,defaultValue:0},{name:"DIMSE2",code:76,defaultValue:0},{name:"DIMTAD",code:77,defaultValue:exports.DimensionTextVertical.Above,defaultValueImperial:exports.DimensionTextVertical.Center},{name:"DIMZIN",code:78,defaultValue:exports.DimensionZeroSuppression.Trailing,defaultValueImperial:exports.DimensionZeroSuppression.Feet},{name:"DIMAZIN",code:79,defaultValue:exports.DimensionZeroSuppressionAngular.None},{name:"DIMALT",code:170,defaultValue:0},{name:"DIMALTD",code:171,defaultValue:3,defaultValueImperial:2},{name:"DIMTOFL",code:172,defaultValue:1,defaultValueImperial:0},{name:"DIMSAH",code:173,defaultValue:0},{name:"DIMTIX",code:174,defaultValue:0},{name:"DIMSOXD",code:175,defaultValue:0},{name:"DIMCLRD",code:176,defaultValue:0},{name:"DIMCLRE",code:177,defaultValue:0},{name:"DIMCLRT",code:178,defaultValue:0},{name:"DIMADEC",code:179},{name:"DIMUNIT",code:270},{name:"DIMDEC",code:271,defaultValue:2,defaultValueImperial:4},{name:"DIMTDEC",code:272,defaultValue:2,defaultValueImperial:4},{name:"DIMALTU",code:273,defaultValue:2},{name:"DIMALTTD",code:274,defaultValue:2,defaultValueImperial:4},{name:"DIMAUNIT",code:275,defaultValue:0},{name:"DIMFRAC",code:276,defaultValue:0},{name:"DIMLUNIT",code:277,defaultValue:2},{name:"DIMDSEP",code:278,defaultValue:",",defaultValueImperial:"."},{name:"DIMJUST",code:280,defaultValue:exports.DimensionTextHorizontal.Center},{name:"DIMSD1",code:281,defaultValue:0},{name:"DIMSD2",code:282,defaultValue:0},{name:"DIMTOLJ",code:283,defaultValue:exports.DimensionToleranceTextVertical.Center},{name:"DIMTZIN",code:284,defaultValue:exports.DimensionZeroSuppression.Trailing,defaultValueImperial:exports.DimensionZeroSuppression.Feet},{name:"DIMALTZ",code:285,defaultValue:exports.DimensionZeroSuppression.Trailing},{name:"DIMALTTZ",code:286,defaultValue:exports.DimensionZeroSuppression.Trailing},{name:"DIMFIT",code:287},{name:"DIMUPT",code:288,defaultValue:0},{name:"DIMATFIT",code:289,defaultValue:3},{name:"DIMTXSTY",code:340},{name:"DIMLDRBLK",code:341},{name:"DIMBLK",code:342},{name:"DIMBLK1",code:343},{name:"DIMBLK2",code:344},{name:"DIMLWD",code:371,defaultValue:-2},{name:"DIMLWD",code:372,defaultValue:-2}];exports.LineTypeElementType=void 0,(M=exports.LineTypeElementType||(exports.LineTypeElementType={}))[M.NONE=0]="NONE",M[M.AbsoluteRotation=1]="AbsoluteRotation",M[M.TextEmbedded=2]="TextEmbedded",M[M.ShapeEmbedded=4]="ShapeEmbedded";const aM=[{code:100,name:"subclassMarker",parser:ek},{code:330,name:"ownerObjectId",parser:ek},{code:102,parser(e,a){for(;!r(e,0,"EOF")&&!r(e,102,"}");)e=a.next()}},{code:5,name:"handle",parser:ek}],aR=eR([{code:310,name:"bmpPreview",parser:ek},{code:281,name:"scalability",parser:ek},{code:280,name:"explodability",parser:ek},{code:70,name:"insertionUnits",parser:ek},{code:340,name:"layoutObjects",parser:ek},{code:2,name:"name",parser:ek},{code:100,name:"subclassMarker",parser:ek},...aM]),aF=eR([...aC.map(e=>({...e,parser:ek})),{code:70,name:"standardFlag",parser:ek},{code:2,name:"name",parser:ek},{code:100,name:"subclassMarker",parser:ek},{code:105,name:"handle",parser:ek},...aM.filter(e=>5!==e.code)]),ak=eR([{code:347,name:"materialObjectId",parser:ek},{code:390,name:"plotStyleNameObjectId",parser:ek},{code:370,name:"lineweight",parser:ek},{code:290,name:"isPlotting",parser:eV},{code:6,name:"lineType",parser:ek},{code:62,name:"colorIndex",parser:ek},{code:70,name:"standardFlag",parser:ek},{code:2,name:"name",parser:ek},{code:100,name:"subclassMarker",parser:ek},...aM]),aw=eR([{code:9,name:"text",parser:ek},{code:45,name:"offsetY",parser:ek},{code:44,name:"offsetX",parser:ek},{code:50,name:"rotation",parser:ek},{code:46,name:"scale",parser:ek},{code:340,name:"styleObjectId",parser:ek},{code:75,name:"shapeNumber",parser:ek},{code:74,name:"elementTypeFlag",parser:ek},{code:49,name:"elementLength",parser:ek}],{elementTypeFlag:0,elementLength:0}),aV={BLOCK_RECORD:aR,DIMSTYLE:aF,LAYER:ak,LTYPE:eR([{code:49,name:"pattern",parser(e,r){let a={};return aw(e,r,a),a},isMultiple:!0},{code:40,name:"totalPatternLength",parser:ek},{code:73,name:"numberOfLineTypes",parser:ek},{code:72,parser:ek},{code:3,name:"description",parser:ek},{code:70,name:"standardFlag",parser:ek},{code:2,name:"name",parser:ek},{code:100,name:"subclassMarker",parser:ek},...aM]),STYLE:eR([{code:1e3,name:"extendedFont",parser:ek},{code:1001},{code:4,name:"bigFont",parser:ek},{code:3,name:"font",parser:ek},{code:42,name:"lastHeight",parser:ek},{code:71,name:"textGenerationFlag",parser:ek},{code:50,name:"obliqueAngle",parser:ek},{code:41,name:"widthFactor",parser:ek},{code:40,name:"fixedTextHeight",parser:ek},{code:70,name:"standardFlag",parser:ek},{code:2,name:"name",parser:ek},{code:100,name:"subclassMarker",parser:ek},...aM]),VPORT:eR([{code:[63,421,431],name:"ambientColor",parser:ek},{code:142,name:"contrast",parser:ek},{code:141,name:"brightness",parser:ek},{code:282,name:"defaultLightingType",parser:ek},{code:292,name:"isDefaultLightingOn",parser:eV},{code:348,name:"visualStyleObjectId",parser:ek},{code:333,name:"shadePlotObjectId",parser:ek},{code:332,name:"backgroundObjectId",parser:ek},{code:61,name:"majorGridLines",parser:ek},{code:170,name:"shadePlotSetting",parser:ek},{code:146,name:"elevation",parser:ek},{code:79,name:"orthographicType",parser:ek},{code:112,name:"ucsYAxis",parser:ew},{code:111,name:"ucsXAxis",parser:ew},{code:110,name:"ucsOrigin",parser:ew},{code:74,name:"ucsIconSetting",parser:ek},{code:71,name:"viewMode",parser:ek},{code:281,name:"renderMode",parser:ek},{code:1,name:"styleSheet",parser:ek},{code:[331,441],name:"frozenLayers",parser:ek,isMultiple:!0},{code:72,name:"circleSides",parser:ek},{code:51,name:"viewTwistAngle",parser:ek},{code:50,name:"snapRotationAngle",parser:ek},{code:45,name:"viewHeight",parser:ek},{code:44,name:"backClippingPlane",parser:ek},{code:43,name:"frontClippingPlane",parser:ek},{code:42,name:"lensLength",parser:ek},{code:17,name:"viewTarget",parser:ew},{code:16,name:"viewDirectionFromTarget",parser:ew},{code:15,name:"gridSpacing",parser:ew},{code:14,name:"snapSpacing",parser:ew},{code:13,name:"snapBasePoint",parser:ew},{code:12,name:"center",parser:ew},{code:11,name:"upperRightCorner",parser:ew},{code:10,name:"lowerLeftCorner",parser:ew},{code:70,name:"standardFlag",parser:ek},{code:2,name:"name",parser:ek},{code:100,name:"subclassMarker",parser:ek},...aM])},aB=eR([{code:70,name:"maxNumberOfEntries",parser:ek},{code:100,name:"subclassMarker",parser:ek},{code:330,name:"ownerObjectId",parser:ek},{code:102},{code:360,isMultiple:!0},{code:102},{code:5,name:"handle",parser:ek},{code:2,name:"name",parser:ek}]);function aH(e,a){let t={};for(;!r(e,0,"EOF")&&!r(e,0,"ENDSEC");){if(r(e,0,"TABLE")){e=a.next();let r={entries:[]};aB(e,a,r),t[r.name]=r}if(r(e,0)&&!r(e,0,"ENDTAB")){let r=e.value;e=a.next();let n=aV[r];if(!n){a.debug&&console.warn(`parseTable: Invalid table name '${r}'`),e=a.next();continue}let o={};n(e,a,o),t[r]?.entries.push(o)}e=a.next()}return t}function aG(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}class aU{next(){if(!this.hasNext())return this._eof?this.debug&&console.warn("Cannot call 'next' after EOF group has been read"):this.debug&&console.warn("Unexpected end of input: EOF group not read before end of file. Ended on code "+this._data[this._pointer]),{code:0,value:"EOF"};let e=parseInt(this._data[this._pointer++],10),a=aW(e,this._data[this._pointer++]),t={code:e,value:a};return r(t,0,"EOF")&&(this._eof=!0),this.lastReadGroup=t,t}peek(){if(!this.hasNext()){if(this._eof)throw Error("Cannot call 'next' after EOF group has been read");throw Error("Unexpected end of input: EOF group not read before end of file. Ended on code "+this._data[this._pointer])}let e={code:parseInt(this._data[this._pointer]),value:0};return e.value=aW(e.code,this._data[this._pointer+1]),e}rewind(e){e=e||1,this._pointer=this._pointer-2*e}hasNext(){return!this._eof&&!(this._pointer>this._data.length-2)}isEOF(){return this._eof}constructor(e,r){aG(this,"_pointer",void 0),aG(this,"_data",void 0),aG(this,"_eof",void 0),aG(this,"debug",!0),aG(this,"lastReadGroup",{code:0,value:0}),this._pointer=0,this._data=e,this._eof=!1,this.debug=r??!0}}function aW(e,r){return e<=9?r:e>=10&&e<=59?parseFloat(r.trim()):e>=60&&e<=99?parseInt(r.trim()):e>=100&&e<=109?r:e>=110&&e<=149?parseFloat(r.trim()):e>=160&&e<=179?parseInt(r.trim()):e>=210&&e<=239?parseFloat(r.trim()):e>=270&&e<=289?parseInt(r.trim()):e>=290&&e<=299?function(e){if("0"===e)return!1;if("1"===e)return!0;throw TypeError("String '"+e+"' cannot be cast to Boolean type")}(r.trim()):e>=300&&e<=369?r:e>=370&&e<=389?parseInt(r.trim()):e>=390&&e<=399?r:e>=400&&e<=409?parseInt(r.trim()):e>=410&&e<=419?r:e>=420&&e<=429?parseInt(r.trim()):e>=430&&e<=439?r:e>=440&&e<=459?parseInt(r.trim()):e>=460&&e<=469?parseFloat(r.trim()):e>=470&&e<=481||999===e||e>=1e3&&e<=1009?r:e>=1010&&e<=1059?parseFloat(r.trim()):e>=1060&&e<=1071?parseInt(r.trim()):(console.log("WARNING: Group code does not have a defined type: %j",{code:e,value:r}),r)}function aY(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}class aj{parseStart(e){this.startCode=e.code}setPoint(e){if(this.code=e.code,this.value=e.value,this.startCode===this.code&&(this.x=this.value),this.startCode===this.code+10)this.y=this.value;else{let e={x:this.x??0,y:this.y??0,z:this.z??0};return this.reset(),e}if(this.startCode===this.code+20)this.z=this.value;else{let e={x:this.x??0,y:this.y??0,z:this.z??0};return this.reset(),e}}reset(){this.x=void 0,this.y=void 0,this.z=void 0}constructor(){aY(this,"point",{}),aY(this,"startCode",0),aY(this,"code",0),aY(this,"value",0),aY(this,"x",void 0),aY(this,"y",void 0),aY(this,"z",void 0)}}function aX(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}class az{constructor(){aX(this,"encoding","utf-8"),aX(this,"encodingFailureFatal",!1)}}class aK extends Error{constructor(e,r,a){let t=`[Line ${r}]: ${e}`;a?.cause&&(t+=`
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.BlockTypeFlag=void 0,(l=exports.BlockTypeFlag||(exports.BlockTypeFlag={}))[l.None=0]="None",l[l.Anonymous=1]="Anonymous",l[l.NonConstant=2]="NonConstant",l[l.Xref=4]="Xref",l[l.XrefOverlay=8]="XrefOverlay",l[l.ExternallyDependent=16]="ExternallyDependent",l[l.ResolvedOrDependent=32]="ResolvedOrDependent",l[l.ReferencedXref=64]="ReferencedXref",exports.ColorCode=void 0,(p=exports.ColorCode||(exports.ColorCode={}))[p.BYBLOCK=0]="BYBLOCK",p[p.BYLAYER=256]="BYLAYER",exports.DimensionType=void 0,(u=exports.DimensionType||(exports.DimensionType={}))[u.Rotated=0]="Rotated",u[u.Aligned=1]="Aligned",u[u.Angular=2]="Angular",u[u.Diameter=3]="Diameter",u[u.Radius=4]="Radius",u[u.Angular3Point=5]="Angular3Point",u[u.Ordinate=6]="Ordinate",u[u.ReferenceIsExclusive=32]="ReferenceIsExclusive",u[u.IsOrdinateXTypeFlag=64]="IsOrdinateXTypeFlag",u[u.IsCustomTextPositionFlag=128]="IsCustomTextPositionFlag",exports.AttachmentPoint=void 0,(m=exports.AttachmentPoint||(exports.AttachmentPoint={}))[m.TopLeft=1]="TopLeft",m[m.TopCenter=2]="TopCenter",m[m.TopRight=3]="TopRight",m[m.MiddleLeft=4]="MiddleLeft",m[m.MiddleCenter=5]="MiddleCenter",m[m.MiddleRight=6]="MiddleRight",m[m.BottomLeft=7]="BottomLeft",m[m.BottomCenter=8]="BottomCenter",m[m.BottomRight=9]="BottomRight",exports.DimensionTextLineSpacing=void 0,(E=exports.DimensionTextLineSpacing||(exports.DimensionTextLineSpacing={}))[E.AtLeast=1]="AtLeast",E[E.Exact=2]="Exact",exports.DimensionTextVertical=void 0,(h=exports.DimensionTextVertical||(exports.DimensionTextVertical={}))[h.Center=0]="Center",h[h.Above=1]="Above",h[h.Outside=2]="Outside",h[h.JIS=3]="JIS",h[h.Below=4]="Below",exports.DimensionZeroSuppression=void 0,(x=exports.DimensionZeroSuppression||(exports.DimensionZeroSuppression={}))[x.Feet=0]="Feet",x[x.None=1]="None",x[x.Inch=2]="Inch",x[x.FeetAndInch=3]="FeetAndInch",x[x.Leading=4]="Leading",x[x.Trailing=8]="Trailing",x[x.LeadingAndTrailing=12]="LeadingAndTrailing",exports.DimensionZeroSuppressionAngular=void 0,(I=exports.DimensionZeroSuppressionAngular||(exports.DimensionZeroSuppressionAngular={}))[I.None=0]="None",I[I.Leading=1]="Leading",I[I.Trailing=2]="Trailing",I[I.LeadingAndTrailing=3]="LeadingAndTrailing",exports.DimensionTextHorizontal=void 0,(f=exports.DimensionTextHorizontal||(exports.DimensionTextHorizontal={}))[f.Center=0]="Center",f[f.Left=1]="Left",f[f.Right=2]="Right",f[f.OverFirst=3]="OverFirst",f[f.OverSecond=4]="OverSecond",exports.DimensionToleranceTextVertical=void 0,(T=exports.DimensionToleranceTextVertical||(exports.DimensionToleranceTextVertical={}))[T.Bottom=0]="Bottom",T[T.Center=1]="Center",T[T.Top=2]="Top",exports.HatchSolidFill=void 0,(b=exports.HatchSolidFill||(exports.HatchSolidFill={}))[b.PatternFill=0]="PatternFill",b[b.SolidFill=1]="SolidFill",exports.HatchAssociativity=void 0,(g=exports.HatchAssociativity||(exports.HatchAssociativity={}))[g.NonAssociative=0]="NonAssociative",g[g.Associative=1]="Associative",exports.HatchStyle=void 0,(D=exports.HatchStyle||(exports.HatchStyle={}))[D.Normal=0]="Normal",D[D.Outer=1]="Outer",D[D.Ignore=2]="Ignore",exports.HatchPatternType=void 0,(y=exports.HatchPatternType||(exports.HatchPatternType={}))[y.UserDefined=0]="UserDefined",y[y.Predefined=1]="Predefined",y[y.Custom=2]="Custom",exports.HatchBoundaryAnnotation=void 0,(O=exports.HatchBoundaryAnnotation||(exports.HatchBoundaryAnnotation={}))[O.NotAnnotated=0]="NotAnnotated",O[O.Annotated=1]="Annotated",exports.HatchGradientFlag=void 0,(S=exports.HatchGradientFlag||(exports.HatchGradientFlag={}))[S.Solid=0]="Solid",S[S.Gradient=1]="Gradient",exports.HatchGradientColorFlag=void 0,(L=exports.HatchGradientColorFlag||(exports.HatchGradientColorFlag={}))[L.TwoColor=0]="TwoColor",L[L.OneColor=1]="OneColor",exports.BoundaryPathTypeFlag=void 0,(N=exports.BoundaryPathTypeFlag||(exports.BoundaryPathTypeFlag={}))[N.Default=0]="Default",N[N.External=1]="External",N[N.Polyline=2]="Polyline",N[N.Derived=4]="Derived",N[N.Textbox=8]="Textbox",N[N.Outermost=16]="Outermost",exports.BoundaryPathEdgeType=void 0,(v=exports.BoundaryPathEdgeType||(exports.BoundaryPathEdgeType={}))[v.Line=1]="Line",v[v.Circular=2]="Circular",v[v.Elliptic=3]="Elliptic",v[v.Spline=4]="Spline",exports.ObscuredLineTypes=void 0,(A=exports.ObscuredLineTypes||(exports.ObscuredLineTypes={}))[A.Off=0]="Off",A[A.Solid=1]="Solid",A[A.Dashed=2]="Dashed",A[A.Dotted=3]="Dotted",A[A.ShotDash=4]="ShotDash",A[A.MediumDash=5]="MediumDash",A[A.LongDash=6]="LongDash",A[A.DoubleShortDash=7]="DoubleShortDash",A[A.DoubleMediumDash=8]="DoubleMediumDash",A[A.DoubleLongDash=9]="DoubleLongDash",A[A.DoubleMediumLongDash=10]="DoubleMediumLongDash",A[A.SparseDot=11]="SparseDot";const e={DRAGVS:"NULL",INTERFERECOLOR:1,INTERFEREOBJVS:"Conceptual",INTERFEREVPVS:"3d Wireframe",OBSLTYPE:exports.ObscuredLineTypes.Off,SHADEDIF:70};function r(e,r,a){return e.code===r&&(null==a||e.value===a)}function a(e){let r={};e.rewind();let a=e.next(),t=a.code;if(r.x=a.value,(a=e.next()).code!==t+10)throw Error("Expected code for point value to be 20 but got "+a.code+".");return(r.y=a.value,(a=e.next()).code!==t+20)?e.rewind():r.z=a.value,r}exports.ReservedLineweight=void 0,(P=exports.ReservedLineweight||(exports.ReservedLineweight={}))[P.Standard=-3]="Standard",P[P.ByLayer=-2]="ByLayer",P[P.ByBlock=-1]="ByBlock",exports.Measurement=void 0,(_=exports.Measurement||(exports.Measurement={}))[_.English=0]="English",_[_.Metric=1]="Metric",exports.ViewportStatusFlag=void 0,(C=exports.ViewportStatusFlag||(exports.ViewportStatusFlag={}))[C.PERSPECTIVE_MODE=1]="PERSPECTIVE_MODE",C[C.FRONT_CLIPPING=2]="FRONT_CLIPPING",C[C.BACK_CLIPPING=4]="BACK_CLIPPING",C[C.UCS_FOLLOW=8]="UCS_FOLLOW",C[C.FRONT_CLIP_NOT_AT_EYE=16]="FRONT_CLIP_NOT_AT_EYE",C[C.UCS_ICON_VISIBILITY=32]="UCS_ICON_VISIBILITY",C[C.UCS_ICON_AT_ORIGIN=64]="UCS_ICON_AT_ORIGIN",C[C.FAST_ZOOM=128]="FAST_ZOOM",C[C.SNAP_MODE=256]="SNAP_MODE",C[C.GRID_MODE=512]="GRID_MODE",C[C.ISOMETRIC_SNAP_STYLE=1024]="ISOMETRIC_SNAP_STYLE",C[C.HIDE_PLOT_MODE=2048]="HIDE_PLOT_MODE",C[C.K_ISO_PAIR_TOP=4096]="K_ISO_PAIR_TOP",C[C.K_ISO_PAIR_RIGHT=8192]="K_ISO_PAIR_RIGHT",C[C.VIEWPORT_ZOOM_LOCKING=16384]="VIEWPORT_ZOOM_LOCKING",C[C.UNUSED=32768]="UNUSED",C[C.NON_RECTANGULAR_CLIPPING=65536]="NON_RECTANGULAR_CLIPPING",C[C.VIEWPORT_OFF=131072]="VIEWPORT_OFF",C[C.GRID_BEYOND_DRAWING_LIMITS=262144]="GRID_BEYOND_DRAWING_LIMITS",C[C.ADAPTIVE_GRID_DISPLAY=524288]="ADAPTIVE_GRID_DISPLAY",C[C.SUBDIVISION_BELOW_SPACING=1048576]="SUBDIVISION_BELOW_SPACING",C[C.GRID_FOLLOWS_WORKPLANE=2097152]="GRID_FOLLOWS_WORKPLANE",exports.RenderMode=void 0,(M=exports.RenderMode||(exports.RenderMode={}))[M.OPTIMIZED_2D=0]="OPTIMIZED_2D",M[M.WIREFRAME=1]="WIREFRAME",M[M.HIDDEN_LINE=2]="HIDDEN_LINE",M[M.FLAT_SHADED=3]="FLAT_SHADED",M[M.GOURAUD_SHADED=4]="GOURAUD_SHADED",M[M.FLAT_SHADED_WITH_WIREFRAME=5]="FLAT_SHADED_WITH_WIREFRAME",M[M.GOURAUD_SHADED_WITH_WIREFRAME=6]="GOURAUD_SHADED_WITH_WIREFRAME",exports.UCSPerViewport=void 0,(F=exports.UCSPerViewport||(exports.UCSPerViewport={}))[F.UCS_UNCHANGED=0]="UCS_UNCHANGED",F[F.HAS_OWN_UCS=1]="HAS_OWN_UCS",exports.OrthographicType=void 0,(R=exports.OrthographicType||(exports.OrthographicType={}))[R.NON_ORTHOGRAPHIC=0]="NON_ORTHOGRAPHIC",R[R.TOP=1]="TOP",R[R.BOTTOM=2]="BOTTOM",R[R.FRONT=3]="FRONT",R[R.BACK=4]="BACK",R[R.LEFT=5]="LEFT",R[R.RIGHT=6]="RIGHT",exports.DefaultLightingType=void 0,(k=exports.DefaultLightingType||(exports.DefaultLightingType={}))[k.ONE_DISTANT_LIGHT=0]="ONE_DISTANT_LIGHT",k[k.TWO_DISTANT_LIGHTS=1]="TWO_DISTANT_LIGHTS";const t=Symbol();function n(e,a){return(n,s,i)=>{let c=e.reduce((e,r)=>{r.pushContext&&e.push({});let a=e[e.length-1];for(let e of"number"==typeof r.code?[r.code]:r.code){let t=a[e]??(a[e]=[]);r.isMultiple&&t.length,t.push(r)}return e},[{}]),d=!1,l=c.length-1;for(;!r(n,0,"EOF");){let e=function(e,r,a){return e.find((e,t)=>t>=a&&e[r]?.length)}(c,n.code,l),r=e?.[n.code].at(-1);if(!e||!r){s.rewind();break}r.isMultiple||e[n.code].pop();let{name:a,parser:p,isMultiple:u,isReducible:m}=r,E=p?.(n,s,i);if(E===t){s.rewind();break}if(a){let[e,r]=function(e,r){let a=r.split(".");if(!a.length)throw Error("[parserGenerator::getObjectByPath] Invalid empty path");let t=e;for(let e=0;e<a.length-1;++e){let r=o(a[e]),n=o(a[e+1]);Object.prototype.hasOwnProperty.call(t,r)||("number"==typeof n?t[r]=[]:t[r]={}),t=t[r]}return[t,o(a.at(-1))]}(i,a);u&&!m?(Object.prototype.hasOwnProperty.call(e,r)||(e[r]=[]),e[r].push(E)):e[r]=E}r.pushContext&&(l-=1),d=!0,n=s.next()}return a&&Object.setPrototypeOf(i,a),d}}function o(e){let r=Number.parseInt(e);return Number.isNaN(r)?e:r}function s({value:e}){return e}function i(e,r){return a(r)}function c({value:e}){return!!e}function d(e,a,t){for(;r(e,102);){var n;let o=e.value;if(e=a.next(),!o.startsWith("{")){console.warn(`Invalid application group, expected to start with "{" but received: ${o}`),function(e,a){for(;!r(e,102)&&!r(e,0,"EOF");)e=a.next()}(e,a),e=a.next();continue}let s=o.slice(1).trim();t.extensions??(t.extensions={}),(n=t.extensions)[s]??(n[s]=[]),function(e,a,t){for(;!r(e,102,"}")&&!r(e,0,"EOF");)t.push(e),e=a.next()}(e,a,t.extensions[s]),e=a.next()}}var l,p,u,m,E,h,x,I,f,T,b,g,D,y,O,S,L,N,v,A,P,_,C,M,F,R,k,w,V,B,H,G,U,W,Y,j,z,X,K,Z,J,$,q,Q,ee,er,ea,et,en,eo,es,ei,ec,ed,el,ep,eu,em=[0,16711680,16776960,65280,65535,255,16711935,16777215,8421504,12632256,16711680,16744319,13369344,13395558,10027008,10046540,8323072,8339263,4980736,4990502,16727808,16752511,13382400,13401958,10036736,10051404,8331008,8343359,4985600,4992806,16744192,16760703,13395456,13408614,10046464,10056268,8339200,8347455,4990464,4995366,16760576,16768895,13408512,13415014,10056192,10061132,8347392,8351551,4995328,4997670,16776960,16777087,13421568,13421670,10000384,10000460,8355584,8355647,5000192,5000230,12582656,14679935,10079232,11717734,7510016,8755276,6258432,7307071,3755008,4344870,8388352,12582783,6736896,10079334,5019648,7510092,4161280,6258495,2509824,3755046,4194048,10485631,3394560,8375398,2529280,6264908,2064128,5209919,1264640,3099686,65280,8388479,52224,6736998,38912,5019724,32512,4161343,19456,2509862,65343,8388511,52275,6737023,38950,5019743,32543,4161359,19475,2509871,65407,8388543,52326,6737049,38988,5019762,32575,4161375,19494,2509881,65471,8388575,52377,6737074,39026,5019781,32607,4161391,19513,2509890,65535,8388607,52428,6737100,39064,5019800,32639,4161407,19532,2509900,49151,8380415,39372,6730444,29336,5014936,24447,4157311,14668,2507340,32767,8372223,26316,6724044,19608,5010072,16255,4153215,9804,2505036,16383,8364031,13260,6717388,9880,5005208,8063,4149119,4940,2502476,255,8355839,204,6710988,152,5000344,127,4145023,76,2500172,4129023,10452991,3342540,8349388,2490520,6245528,2031743,5193599,1245260,3089996,8323327,12550143,6684876,10053324,4980888,7490712,4128895,6242175,2490444,3745356,12517631,14647295,10027212,11691724,7471256,8735896,6226047,7290751,3735628,4335180,16711935,16744447,13369548,13395660,9961624,9981080,8323199,8339327,4980812,4990540,16711871,16744415,13369497,13395634,9961586,9981061,8323167,8339311,4980793,4990530,16711807,16744383,13369446,13395609,9961548,9981042,8323135,8339295,4980774,4990521,16711743,16744351,13369395,13395583,9961510,9981023,8323103,8339279,4980755,4990511,3355443,5987163,8684676,11382189,14079702,16777215];const eE=[{code:1001,name:"xdata",parser:eh}];function eh(e,t){if(!r(e,1001))throw Error("XData must starts with code 1001");let n={appName:e.value,value:[]};e=t.next();let o=[n.value];for(;!r(e,0,"EOF")&&e.code>=1e3;){let r=o.at(-1);switch(e.code){case 1002:"{"===e.value?o.push([]):(o.pop(),o.at(-1)?.push(r));break;case 1e3:case 1004:case 1040:case 1070:case 1071:r.push({type:ex(e.code),value:e.value});break;case 1003:r.push({name:"layer",type:ex(e.code),value:e.value});break;case 1005:r.push({name:"handle",type:ex(e.code),value:e.value});break;case 1010:r.push({type:ex(e.code),value:a(t)});break;case 1011:r.push({name:"worldSpacePosition",type:ex(e.code),value:a(t)});break;case 1012:r.push({name:"worldSpaceDisplacement",type:ex(e.code),value:a(t)});break;case 1013:r.push({name:"worldSpaceDirection",type:ex(e.code),value:a(t)});break;case 1041:r.push({name:"distance",type:ex(e.code),value:e.value});break;case 1042:r.push({name:"scale",type:ex(e.code),value:e.value})}e=t.next()}return t.rewind(),n}function ex(e){switch(e){case 1e3:case 1003:case 1005:return"string";case 1004:return"hex";case 1040:case 1041:case 1042:return"real";case 1070:return"integer";case 1071:return"long";case 1010:case 1011:case 1012:case 1013:return"point";default:return""}}exports.ShadowMode=void 0,(w=exports.ShadowMode||(exports.ShadowMode={}))[w.CAST_AND_RECEIVE=0]="CAST_AND_RECEIVE",w[w.CAST=1]="CAST",w[w.RECEIVE=2]="RECEIVE",w[w.IGNORE=3]="IGNORE";const eI=[...eE,{code:284,name:"shadowMode",parser:s},{code:390,name:"plotStyleHardId",parser:s},{code:440,name:"transparency",parser:s},{code:430,name:"colorName",parser:s},{code:420,name:"color",parser:s},{code:310,name:"proxyEntity",parser:s},{code:92,name:"proxyByte",parser:s},{code:60,name:"isVisible",parser:c},{code:48,name:"lineTypeScale",parser:s},{code:370,name:"lineweight",parser:s},{code:62,name:"colorIndex",parser(e,r,a){let t=e.value;return a.color=em[Math.abs(t)],t}},{code:347,name:"materialObjectHardId",parser:s},{code:6,name:"lineType",parser:s},{code:8,name:"layer",parser:s},{code:410,name:"layoutTabName",parser:s},{code:67,name:"isInPaperSpace",parser:c},{code:100},{code:330,name:"ownerBlockRecordSoftId",parser:s},{code:102,parser:d},{code:102,parser:d},{code:102,parser:d},{code:5,name:"handle",parser:s}];function ef(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}const eT={extrusionDirection:{x:0,y:0,z:1}},eb=[{code:210,name:"extrusionDirection",parser:i},{code:51,name:"endAngle",parser:s},{code:50,name:"startAngle",parser:s},{code:100,name:"subclassMarker",parser:s},{code:40,name:"radius",parser:s},{code:10,name:"center",parser:i},{code:39,name:"thickness",parser:s},{code:100},...eI];class eg{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){ef(this,"parser",n(eb,eT))}}function eD(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}ef(eg,"ForEntityName","ARC"),exports.AttributeFlag=void 0,(V=exports.AttributeFlag||(exports.AttributeFlag={}))[V.NONE=0]="NONE",V[V.INVISIBLE=1]="INVISIBLE",V[V.CONSTANT=2]="CONSTANT",V[V.VERIFICATION_REQUIRED=4]="VERIFICATION_REQUIRED",V[V.PRESET=8]="PRESET",exports.AttDefMTextFlag=void 0,(B=exports.AttDefMTextFlag||(exports.AttDefMTextFlag={}))[B.MULTILINE=2]="MULTILINE",B[B.CONSTANT_MULTILINE=4]="CONSTANT_MULTILINE",exports.TextGenerationFlag=void 0,(H=exports.TextGenerationFlag||(exports.TextGenerationFlag={}))[H.NONE=0]="NONE",H[H.MIRRORED_X=2]="MIRRORED_X",H[H.MIRRORED_Y=4]="MIRRORED_Y",exports.TextHorizontalAlign=void 0,(G=exports.TextHorizontalAlign||(exports.TextHorizontalAlign={}))[G.LEFT=0]="LEFT",G[G.CENTER=1]="CENTER",G[G.RIGHT=2]="RIGHT",G[G.ALIGNED=3]="ALIGNED",G[G.MIDDLE=4]="MIDDLE",G[G.FIT=5]="FIT",exports.TextVerticalAlign=void 0,(U=exports.TextVerticalAlign||(exports.TextVerticalAlign={}))[U.BASELINE=0]="BASELINE",U[U.BOTTOM=1]="BOTTOM",U[U.MIDDLE=2]="MIDDLE",U[U.TOP=3]="TOP";const ey={thickness:0,rotation:0,xScale:1,obliqueAngle:0,styleName:"STANDARD",generationFlag:0,halign:exports.TextHorizontalAlign.LEFT,valign:exports.TextVerticalAlign.BASELINE,extrusionDirection:{x:0,y:0,z:1}},eO=[{code:73,name:"valign",parser:s},{code:100},{code:210,name:"extrusionDirection",parser:i},{code:11,name:"endPoint",parser:i},{code:72,name:"valign",parser:s},{code:72,name:"halign",parser:s},{code:71,name:"generationFlag",parser:s},{code:7,name:"styleName",parser:s},{code:51,name:"obliqueAngle",parser:s},{code:41,name:"xScale",parser:s},{code:50,name:"rotation",parser:s},{code:1,name:"text",parser:s},{code:40,name:"textHeight",parser:s},{code:10,name:"startPoint",parser:i},{code:39,name:"thickness",parser:s},{code:100,name:"subclassMarker",parser:s},...eI];class eS{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){eD(this,"parser",n(eO,ey))}}function eL(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}eD(eS,"ForEntityName","TEXT");const eN={...ey},ev=[{code:2},{code:40,name:"annotationScale",parser:s},{code:10,name:"alignmentPoint",parser:i},{code:340,name:"secondaryAttributesHardIds",isMultiple:!0,parser:s},{code:70,name:"numberOfSecondaryAttributes",parser:s},{code:70,name:"isReallyLocked",parser:c},{code:70,name:"mtextFlag",parser:s},{code:280,name:"isDuplicatedRecord",parser:c},{code:100},{code:280,name:"isLocked",parser:c},{code:74,name:"valign",parser:s},{code:73},{code:70,name:"attributeFlag",parser:s},{code:2,name:"tag",parser:s},{code:3,name:"prompt",parser:s},{code:280},{code:100,name:"subclassMarker",parser:s},...eO.slice(2)];class eA{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){eL(this,"parser",n(ev,eN))}}eL(eA,"ForEntityName","ATTDEF");let eP=0;function e_(e){if(!e)throw TypeError("entity cannot be undefined or null");e.handle||(e.handle=eP++)}function eC(e,r){let a={};for(let t of e){let e=r(t);null!=e&&(a[e]??(a[e]=[]),a[e].push(t))}return a}function*eM(e,r=1/0,a=1){for(let t=e;t!==r;t+=a)yield t}function eF(e){return{x:e.x??0,y:e.y??0,z:e.z??0}}function eR(e,a,t){if(r(a,102))return d(a,t,e),!0;switch(a.code){case 0:e.type=a.value;break;case 5:e.handle=a.value;break;case 330:e.ownerBlockRecordSoftId=a.value;break;case 67:e.isInPaperSpace=!!a.value;break;case 8:e.layer=a.value;break;case 6:e.lineType=a.value;break;case 347:e.materialObjectHardId=a.value;break;case 62:e.colorIndex=a.value,e.color=em[Math.abs(a.value)];break;case 370:e.lineweight=a.value;break;case 48:e.lineTypeScale=a.value;break;case 60:e.isVisible=!!a.value;break;case 92:e.proxyByte=a.value;break;case 310:e.proxyEntity=a.value;break;case 100:break;case 420:e.color=a.value;break;case 430:e.transparency=a.value;break;case 390:e.plotStyleHardId=a.value;break;case 284:e.shadowMode=a.value;break;case 1001:e.xdata=eh(a,t);break;default:return!1}return!0}function ek(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}exports.MTextDrawingDirection=void 0,(W=exports.MTextDrawingDirection||(exports.MTextDrawingDirection={}))[W.LEFT_TO_RIGHT=1]="LEFT_TO_RIGHT",W[W.TOP_TO_BOTTOM=3]="TOP_TO_BOTTOM",W[W.BY_STYLE=5]="BY_STYLE";const ew={textStyle:"STANDARD",extrusionDirection:{x:0,y:0,z:1},rotation:0},eV=[{code:46,name:"annotationHeight",parser:s},{code:101,parser(e,r){!function(e){e.rewind();let r=e.next();if(101!==r.code)throw Error("Bad call for skipEmbeddedObject()");do r=e.next();while(0!==r.code);e.rewind()}(r)}},{code:50,name:"columnHeight",parser:s},{code:49,name:"columnGutter",parser:s},{code:48,name:"columnWidth",parser:s},{code:79,name:"columnAutoHeight",parser:s},{code:78,name:"columnFlowReversed",parser:s},{code:76,name:"columnCount",parser:s},{code:75,name:"columnType",parser:s},{code:441,name:"backgroundFillTransparency",parser:s},{code:63,name:"backgroundFillColor",parser:s},{code:45,name:"fillBoxScale",parser:s},{code:[...eM(430,440)],name:"backgroundColor",parser:s},{code:[...eM(420,430)],name:"backgroundColor",parser:s},{code:90,name:"backgroundFill",parser:s},{code:44,name:"lineSpacing",parser:s},{code:73,name:"lineSpacingStyle",parser:s},{code:50,name:"rotation",parser:s},{code:43},{code:42},{code:11,name:"direction",parser:i},{code:210,name:"extrusionDirection",parser:i},{code:7,name:"styleName",parser:s},{code:3,name:"text",parser:(e,r,a)=>(a._code3text=(a._code3text??"")+e.value,a._code3text+(a._code1text??"")),isMultiple:!0,isReducible:!0},{code:1,name:"text",parser:(e,r,a)=>(a._code1text=e.value,(a._code3text??"")+a._code1text)},{code:72,name:"drawingDirection",parser:s},{code:71,name:"attachmentPoint",parser:s},{code:41,name:"width",parser:s},{code:40,name:"height",parser:s},{code:10,name:"insertionPoint",parser:i},{code:100,name:"subclassMarker",parser:s},...eI];class eB{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){ek(this,"parser",n(eV,ew))}}function eH(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}ek(eB,"ForEntityName","MTEXT");const eG={thickness:0,rotation:0,scale:1,obliqueAngle:0,textStyle:"STANDARD",textGenerationFlag:0,horizontalJustification:0,verticalJustification:0,extrusionDirection:{x:0,y:0,z:1}},eU=[...eV.slice(eV.findIndex(({name:e})=>"columnType"===e),eV.findIndex(({name:e})=>"subclassMarker"===e)+1),{code:100},{code:0,parser(e){if(!r(e,0,"MTEXT"))return t}},{code:2,name:"definitionTag",parser:s},{code:40,name:"annotationScale",parser:s},{code:10,name:"alignmentPoint",parser:i},{code:340,name:"secondaryAttributesHardId",parser:s},{code:70,name:"numberOfSecondaryAttributes",parser:s},{code:70,name:"isReallyLocked",parser:c},{code:70,name:"mtextFlag",parser:s},{code:280,name:"isDuplicatedEntriesKeep",parser:c},{code:100},{code:280,name:"lockPositionFlag",parser:c},{code:210,name:"extrusionDirection",parser:i},{code:11,name:"alignmentPoint",parser:i},{code:74,name:"verticalJustification",parser:s},{code:72,name:"horizontalJustification",parser:s},{code:71,name:"textGenerationFlag",parser:s},{code:7,name:"textStyle",parser:s},{code:51,name:"obliqueAngle",parser:s},{code:41,name:"scale",parser:s},{code:50,name:"rotation",parser:s},{code:73},{code:70,name:"attributeFlag",parser:s},{code:2,name:"tag",parser:s},{code:280},{code:100,name:"subclassMarker",parser:s},{code:1,name:"text",parser:s},{code:40,name:"textHeight",parser:s},{code:10,name:"startPoint",parser:i},{code:39,name:"thickness",parser:s},{code:100},...eI];class eW{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){eH(this,"parser",n(eU,eG))}}function eY(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}eH(eW,"ForEntityName","ATTRIB");const ej={thickness:0,extrusionDirection:{x:0,y:0,z:1}},ez=[{code:210,name:"extrusionDirection",parser:i},{code:40,name:"radius",parser:s},{code:10,name:"center",parser:i},{code:39,name:"thickness",parser:s},{code:100,name:"subclassMarker",parser:s},...eI];class eX{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){eY(this,"parser",n(ez,ej))}}eY(eX,"ForEntityName","CIRCLE");class eK{parseEntity(e,t){let n={};for(;!r(t,0,"EOF");){if(0===t.code){e.rewind();break}!function(e,r,t){switch(r.code){case 100:e.subclassMarker=r.value;break;case 280:e.version=r.value;break;case 2:e.name=r.value;break;case 10:e.definitionPoint=a(t);break;case 11:e.textPoint=a(t);break;case 12:e.insertionPoint=a(t);break;case 13:e.subDefinitionPoint1=a(t);break;case 14:e.subDefinitionPoint2=a(t);break;case 15:e.centerPoint=a(t);break;case 16:e.arcPoint=a(t);break;case 70:e.dimensionType=r.value;break;case 71:e.attachmentPoint=r.value;break;case 72:e.textLineSpacingStyle=r.value;break;case 40:e.leaderLength=r.value;break;case 41:e.textLineSpacingFactor=r.value;break;case 42:e.measurement=r.value;break;case 1:e.text=r.value;break;case 50:e.rotationAngle=r.value;break;case 52:e.obliqueAngle=r.value;break;case 53:e.textRotation=r.value;break;case 51:e.ocsRotation=r.value;break;case 210:e.extrusionDirection=a(t);break;case 3:e.styleName=r.value;break;default:eR(e,r,t)}}(n,t,e),t=e.next()}return n}}function eZ(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}j="DIMENSION",(Y="ForEntityName")in eK?Object.defineProperty(eK,Y,{value:j,enumerable:!0,configurable:!0,writable:!0}):eK[Y]=j;const eJ={extrusionDirection:{x:0,y:0,z:1}},e$=[{code:42,name:"endAngle",parser:s},{code:41,name:"startAngle",parser:s},{code:40,name:"axisRatio",parser:s},{code:210,name:"extrusionDirection",parser:i},{code:11,name:"majorAxisEndPoint",parser:i},{code:10,name:"center",parser:i},{code:100,name:"subclassMarker",parser:s},...eI];class eq{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){eZ(this,"parser",n(e$,eJ))}}function eQ(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}eZ(eq,"ForEntityName","ELLIPSE"),exports.FaceEdgeInvisibility=void 0,(z=exports.FaceEdgeInvisibility||(exports.FaceEdgeInvisibility={}))[z.First=1]="First",z[z.Second=2]="Second",z[z.Third=4]="Third",z[z.Fourth=8]="Fourth";const e0=[{code:13,name:"vertices.3",parser:i},{code:12,name:"vertices.2",parser:i},{code:11,name:"vertices.1",parser:i},{code:10,name:"vertices.0",parser:i},{code:100,name:"subclassMarker",parser:s},...eI];class e1{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){eQ(this,"parser",n(e0))}}eQ(e1,"ForEntityName","3DFACE");const e4=[{code:330,name:"sourceBoundaryObjects",parser:s,isMultiple:!0},{code:97,name:"numberOfSourceBoundaryObjects",parser:s}],e2=[{code:11,name:"end",parser:i},{code:10,name:"start",parser:i}],e3=[{code:73,name:"isCCW",parser:c},{code:51,name:"endAngle",parser:s},{code:50,name:"startAngle",parser:s},{code:40,name:"radius",parser:s},{code:10,name:"center",parser:i}],e7=[{code:73,name:"isCCW",parser:c},{code:51,name:"endAngle",parser:s},{code:50,name:"startAngle",parser:s},{code:40,name:"lengthOfMinorAxis",parser:s},{code:11,name:"end",parser:i},{code:10,name:"center",parser:i}],e5=[{code:13,name:"endTangent",parser:i},{code:12,name:"startTangent",parser:i},{code:11,name:"fitDatum",isMultiple:!0,parser:i},{code:97,name:"numberOfFitData",parser:s},{code:10,name:"controlPoints",isMultiple:!0,parser(e,r){let t={...a(r),weight:1};return 42===(e=r.next()).code?t.weight=e.value:r.rewind(),t}},{code:40,name:"knots",isMultiple:!0,parser:s},{code:96,name:"numberOfControlPoints",parser:s},{code:95,name:"numberOfKnots",parser:s},{code:74,name:"isPeriodic",parser:c},{code:73,name:"splineFlag",parser:s},{code:94,name:"degree",parser:s}],e6={[exports.BoundaryPathEdgeType.Line]:e2,[exports.BoundaryPathEdgeType.Circular]:e3,[exports.BoundaryPathEdgeType.Elliptic]:e7,[exports.BoundaryPathEdgeType.Spline]:e5},e9=[...e4,{code:72,name:"edges",parser(e,r){let a={type:e.value},t=n(e6[a.type]);if(!t)throw Error(`Invalid edge type ${a.type}`);return t(e=r.next(),r,a),a},isMultiple:!0},{code:93,name:"numberOfEdges",parser:s}],e8=[...e4,{code:10,name:"vertices",parser(e,r){let t={...a(r),bulge:0};return 42===(e=r.next()).code?t.bulge=e.value:r.rewind(),t},isMultiple:!0},{code:93,name:"numberOfVertices",parser:s},{code:73,name:"isClosed",parser:c},{code:72,name:"hasBulge",parser:c}],re=[{code:49,name:"dashLengths",parser:s,isMultiple:!0},{code:79,name:"numberOfDashLengths",parser:s},{code:45,name:"offset",parser:rr},{code:43,name:"base",parser:rr},{code:53,name:"angle",parser:s}];function rr(e,r){let a=e.code+1,t={x:e.value,y:1};return(e=r.next()).code===a?t.y=e.value:r.rewind(),t}function ra(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}const rt={extrusionDirection:{x:0,y:0,z:1},gradientRotation:0,colorTint:0},rn=[{code:470},{code:463},{code:462,name:"colorTint",parser:s},{code:461,name:"gradientDefinition",parser:s},{code:460,name:"gradientRotation",parser:s},{code:453,name:"numberOfColors",parser:s},{code:452,name:"gradientColorFlag",parser:s},{code:451},{code:450,name:"gradientFlag",parser:s},{code:10,name:"seedPoints",parser:i,isMultiple:!0},{code:99},{code:11,name:"offsetVector",parser:i},{code:98,name:"numberOfSeedPoints",parser:s},{code:47,name:"pixelSize",parser:s},{code:53,name:"definitionLines",parser:function(e,r){let a={};return n(re)(e,r,a),a},isMultiple:!0},{code:78,name:"numberOfDefinitionLines",parser:s},{code:77,name:"isDouble",parser:c},{code:73,name:"isAnnotated",parser:c},{code:41,name:"patternScale",parser:s},{code:52,name:"patternAngle",parser:s},{code:76,name:"patternType",parser:s},{code:75,name:"hatchStyle",parser:s},{code:92,name:"boundaryPaths",parser:function(e,r){let a={boundaryPathTypeFlag:e.value},t=a.boundaryPathTypeFlag&exports.BoundaryPathTypeFlag.Polyline;return(e=r.next(),t)?n(e8)(e,r,a):n(e9)(e,r,a),a},isMultiple:!0},{code:91,name:"numberOfBoundaryPaths",parser:s},{code:71,name:"associativity",parser:s},{code:63,name:"patternFillColor",parser:s},{code:70,name:"solidFill",parser:s},{code:2,name:"patternName",parser:s},{code:210,name:"extrusionDirection",parser:i},{code:10,name:"elevationPoint",parser:i},{code:100,name:"subclassMarker",parser:s,pushContext:!0},...eI];class ro{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){ra(this,"parser",n(rn,rt))}}function rs(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}ra(ro,"ForEntityName","HATCH"),exports.ImageFlags=void 0,(X=exports.ImageFlags||(exports.ImageFlags={}))[X.ShowImage=1]="ShowImage",X[X.ShowImageWhenNotAlignedWithScreen=2]="ShowImageWhenNotAlignedWithScreen",X[X.UseClippingBoundary=4]="UseClippingBoundary",X[X.TransparencyIsOn=8]="TransparencyIsOn",exports.ImageClippingBoundaryType=void 0,(K=exports.ImageClippingBoundaryType||(exports.ImageClippingBoundaryType={}))[K.Rectangular=1]="Rectangular",K[K.Polygonal=2]="Polygonal",exports.ImageClipMode=void 0,(Z=exports.ImageClipMode||(exports.ImageClipMode={}))[Z.Outside=0]="Outside",Z[Z.Inside=1]="Inside";const ri={brightness:50,contrast:50,fade:0,clippingBoundaryPath:[]},rc=[{code:290,name:"clipMode",parser:s},{code:14,name:"clippingBoundaryPath",isMultiple:!0,parser:i},{code:91,name:"countBoundaryPoints",parser:s},{code:71,name:"clippingBoundaryType",parser:s},{code:360,name:"imageDefReactorHandle",parser:s},{code:283,name:"fade",parser:s},{code:282,name:"contrast",parser:s},{code:281,name:"brightness",parser:s},{code:280,name:"isClipped",parser:c},{code:70,name:"flags",parser:s},{code:340,name:"imageDefHandle",parser:s},{code:13,name:"imageSize",parser:i},{code:12,name:"vPixel",parser:i},{code:11,name:"uPixel",parser:i},{code:10,name:"position",parser:i},{code:90,name:"version",parser:s},{code:100,name:"subclassMarker",parser:s},...eI];class rd{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rs(this,"parser",n(rc,ri))}}function rl(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}rs(rd,"ForEntityName","IMAGE");const rp={xScale:1,yScale:1,zScale:1,rotation:0,columnCount:0,rowCount:0,columnSpacing:0,rowSpacing:0,extrusionDirection:{x:0,y:0,z:1}},ru=[{code:210,name:"extrusionDirection",parser:i},{code:45,name:"rowSpacing",parser:s},{code:44,name:"columnSpacing",parser:s},{code:71,name:"rowCount",parser:s},{code:70,name:"columnCount",parser:s},{code:50,name:"rotation",parser:s},{code:43,name:"zScale",parser:s},{code:42,name:"yScale",parser:s},{code:41,name:"xScale",parser:s},{code:10,name:"insertionPoint",parser:i},{code:2,name:"name",parser:s},{code:66,name:"isVariableAttributes",parser:c},{code:100,name:"subclassMarker",parser:s},...eI];class rm{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rl(this,"parser",n(ru,rp))}}function rE(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}rl(rm,"ForEntityName","INSERT");const rh={isArrowheadEnabled:!0},rx=[{code:213,name:"offsetFromAnnotation",parser:i},{code:212,name:"offsetFromBlock",parser:i},{code:211,name:"horizontalDirection",parser:i},{code:210,name:"normal",parser:i},{code:340,name:"associatedAnnotation",parser:s},{code:77,name:"byBlockColor",parser:s},{code:10,name:"vertices",parser:i,isMultiple:!0},{code:76,name:"numberOfVertices",parser:s},{code:41,name:"textWidth",parser:s},{code:40,name:"textHeight",parser:s},{code:75,name:"isHooklineExists",parser:c},{code:74,name:"isHooklineSameDirection",parser:c},{code:73,name:"leaderCreationFlag",parser:s},{code:72,name:"isSpline",parser:c},{code:71,name:"isArrowheadEnabled",parser:c},{code:3,name:"styleName",parser:s},{code:100,name:"subclassMarker",parser:s},...eI];class rI{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rE(this,"parser",n(rx,rh))}}function rf(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}rE(rI,"ForEntityName","LEADER"),exports.LeaderCreationFlag=void 0,(J=exports.LeaderCreationFlag||(exports.LeaderCreationFlag={}))[J.TextAnnotation=0]="TextAnnotation",J[J.ToleranceAnnotation=1]="ToleranceAnnotation",J[J.BlockReferenceAnnotation=2]="BlockReferenceAnnotation",J[J.NoAnnotation=3]="NoAnnotation";const rT={thickness:0,extrusionDirection:{x:0,y:0,z:1}},rb=[{code:210,name:"extrusionDirection",parser:i},{code:11,name:"endPoint",parser:i},{code:10,name:"startPoint",parser:i},{code:39,name:"thickness",parser:s},{code:100,name:"subclassMarker",parser:s},...eI];class rg{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rf(this,"parser",n(rb,rT))}}rf(rg,"ForEntityName","LINE"),exports.LWPolylineFlag=void 0,($=exports.LWPolylineFlag||(exports.LWPolylineFlag={}))[$.IS_CLOSED=1]="IS_CLOSED",$[$.PLINE_GEN=128]="PLINE_GEN";const rD={flag:0,elevation:0,thickness:0,extrusionDirection:{x:0,y:0,z:1},vertices:[]},ry={bulge:0},rO=[{code:42,name:"bulge",parser:s},{code:41,name:"endWidth",parser:s},{code:40,name:"startWidth",parser:s},{code:91,name:"id",parser:s},{code:20,name:"y",parser:s},{code:10,name:"x",parser:s}],rS=[{code:210,name:"extrusionDirection",parser:i},{code:10,name:"vertices",isMultiple:!0,parser(e,r){let a={};return n(rO,ry)(e,r,a),a}},{code:39,name:"thickness",parser:s},{code:38,name:"elevation",parser:s},{code:43,name:"constantWidth",parser:s},{code:70,name:"flag",parser:s},{code:90,name:"numberOfVertices",parser:s},{code:100,name:"subclassMarker",parser:s},...eI];class rL{parseEntity(e,r){let a={};return n(rS,rD)(r,e,a),a}}function rN(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}Q="LWPOLYLINE",(q="ForEntityName")in rL?Object.defineProperty(rL,q,{value:Q,enumerable:!0,configurable:!0,writable:!0}):rL[q]=Q;const rv={thickness:0,extrusionDirection:{x:0,y:0,z:1},angle:0},rA=[{code:50,name:"angle",parser:s},{code:210,name:"extrusionDirection",parser:i},{code:39,name:"thickness",parser:s},{code:10,name:"position",parser:i},{code:100,name:"subclassMarker",parser:s},...eI];class rP{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rN(this,"parser",n(rA,rv))}}function r_(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}rN(rP,"ForEntityName","POINT"),exports.PolylineFlag=void 0,(ee=exports.PolylineFlag||(exports.PolylineFlag={}))[ee.CLOSED_POLYLINE=1]="CLOSED_POLYLINE",ee[ee.CURVE_FIT=2]="CURVE_FIT",ee[ee.SPLINE_FIT=4]="SPLINE_FIT",ee[ee.POLYLINE_3D=8]="POLYLINE_3D",ee[ee.POLYGON_3D=16]="POLYGON_3D",ee[ee.CLOSED_POLYGON=32]="CLOSED_POLYGON",ee[ee.POLYFACE=64]="POLYFACE",ee[ee.CONTINUOUS=128]="CONTINUOUS",exports.SmoothType=void 0,(er=exports.SmoothType||(exports.SmoothType={}))[er.NONE=0]="NONE",er[er.QUADRATIC=5]="QUADRATIC",er[er.CUBIC=6]="CUBIC",er[er.BEZIER=8]="BEZIER",exports.VertexFlag=void 0,(ea=exports.VertexFlag||(exports.VertexFlag={}))[ea.CREATED_BY_CURVE_FIT=1]="CREATED_BY_CURVE_FIT",ea[ea.TANGENT_DEFINED=2]="TANGENT_DEFINED",ea[ea.NOT_USED=4]="NOT_USED",ea[ea.CREATED_BY_SPLINE_FIT=8]="CREATED_BY_SPLINE_FIT",ea[ea.SPLINE_CONTROL_POINT=16]="SPLINE_CONTROL_POINT",ea[ea.FOR_POLYLINE=32]="FOR_POLYLINE",ea[ea.FOR_POLYGON=64]="FOR_POLYGON",ea[ea.POLYFACE=128]="POLYFACE";const rC={startWidth:0,endWidth:0,bulge:0},rM=[{code:91,name:"id",parser:s},{code:[...eM(71,75)],name:"faces",isMultiple:!0,parser:s},{code:50,name:"tangentDirection",parser:s},{code:70,name:"flag",parser:s},{code:42,name:"bulge",parser:s},{code:41,name:"endWidth",parser:s},{code:40,name:"startWidth",parser:s},{code:30,name:"z",parser:s},{code:20,name:"y",parser:s},{code:10,name:"x",parser:s},{code:100,name:"subclassMarker",parser:s},{code:100},...eI];class rF{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){r_(this,"parser",n(rM,rC))}}function rR(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}r_(rF,"ForEntityName","VERTEX");const rk={thickness:0,flag:0,startWidth:0,endWidth:0,meshMVertexCount:0,meshNVertexCount:0,surfaceMDensity:0,surfaceNDensity:0,smoothType:0,extrusionDirection:{x:0,y:0,z:1},vertices:[]},rw=[{code:0,name:"vertices",isMultiple:!0,parser:(e,a)=>r(e,0,"VERTEX")?(e=a.next(),new rF().parseEntity(a,e)):t},{code:210,name:"extrusionDirection",parser:i},{code:75,name:"smoothType",parser:s},{code:74,name:"surfaceNDensity",parser:s},{code:73,name:"surfaceMDensity",parser:s},{code:72,name:"meshNVertexCount",parser:s},{code:71,name:"meshMVertexCount",parser:s},{code:41,name:"endWidth",parser:s},{code:40,name:"startWidth",parser:s},{code:70,name:"flag",parser:s},{code:39,name:"thickness",parser:s},{code:30,name:"elevation",parser:s},{code:20},{code:10},{code:66},{code:100,name:"subclassMarker",parser:s},...eI];class rV{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rR(this,"parser",n(rw,rk))}}function rB(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}rR(rV,"ForEntityName","POLYLINE");const rH=[{code:11,name:"direction",parser:i},{code:10,name:"position",parser:i},{code:100,name:"subclassMarker",parser:s},...eI];class rG{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rB(this,"parser",n(rH))}}function rU(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}rB(rG,"ForEntityName","RAY");const rW={vertices:[],backLineVertices:[]},rY=[{code:360,name:"geometrySettingHardId",parser:s},{code:12,name:"backLineVertices",isMultiple:!0,parser:i},{code:93,name:"numberOfBackLineVertices",parser:s},{code:11,name:"vertices",isMultiple:!0,parser:i},{code:92,name:"verticesCount",parser:s},{code:[63,411],name:"indicatorColor",parser:s},{code:70,name:"indicatorTransparency",parser:s},{code:41,name:"bottomHeight",parser:s},{code:40,name:"topHeight",parser:s},{code:10,name:"verticalDirection",parser:i},{code:1,name:"name",parser:s},{code:91,name:"flag",parser:s},{code:90,name:"state",parser:s},{code:100,name:"subclassMarker",parser:s},...eI];class rj{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rU(this,"parser",n(rY,rW))}}function rz(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}rU(rj,"ForEntityName","SECTION");const rX={points:[],thickness:0,extrusionDirection:{x:0,y:0,z:1}},rK=[{code:210,name:"extrusionDirection",parser:i},{code:39,name:"thickness",parser:s},{code:[...eM(10,14)],name:"points",isMultiple:!0,parser:i},{code:100,name:"subclassMarker",parser:s},...eI];class rZ{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rz(this,"parser",n(rK,rX))}}function rJ(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}rz(rZ,"ForEntityName","SOLID"),exports.SplineFlag=void 0,(et=exports.SplineFlag||(exports.SplineFlag={}))[et.NONE=0]="NONE",et[et.CLOSED=1]="CLOSED",et[et.PERIODIC=2]="PERIODIC",et[et.RATIONAL=4]="RATIONAL",et[et.PLANAR=8]="PLANAR",et[et.LINEAR=16]="LINEAR";const r$={knotTolerance:1e-6,controlTolerance:1e-6,fitTolerance:1e-9,knotValues:[],controlPoints:[],fitPoints:[]},rq=[{code:11,name:"fitPoints",isMultiple:!0,parser:i},{code:10,name:"controlPoints",isMultiple:!0,parser:i},{code:41,name:"weights",isMultiple:!0,parser:s},{code:40,name:"knots",isMultiple:!0,parser:s},{code:13,name:"endTangent",parser:i},{code:12,name:"startTangent",parser:i},{code:44,name:"fitTolerance",parser:s},{code:43,name:"controlTolerance",parser:s},{code:42,name:"knotTolerance",parser:s},{code:74,name:"numberOfFitPoints",parser:s},{code:73,name:"numberOfControlPoints",parser:s},{code:72,name:"numberOfKnots",parser:s},{code:71,name:"degree",parser:s},{code:70,name:"flag",parser:s},{code:210,name:"normal",parser:i},{code:100,name:"subclassMarker",parser:s},...eI];class rQ{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rJ(this,"parser",n(rq,r$))}}rJ(rQ,"ForEntityName","SPLINE");class r0{parseEntity(e,r){let t={};for(;"EOF"!==r;){if(0===r.code){e.rewind();break}!function(e,r,t){if("EOF"===t)return!1;switch(t.code){case 0:return!1;case 100:e.subclassMarker=t.value;break;case 10:e.viewportCenter=eF(a(r));break;case 40:e.width=t.value;break;case 41:e.height=t.value;break;case 68:e.status=t.value;break;case 69:e.viewportId=t.value;break;case 12:e.displayCenter=a(r);break;case 13:e.snapBase=a(r);break;case 14:e.snapSpacing=a(r);break;case 15:e.gridSpacing=a(r);break;case 16:e.viewDirection=eF(a(r));break;case 17:e.targetPoint=eF(a(r));break;case 42:e.perspectiveLensLength=t.value;break;case 43:e.frontClipZ=t.value;break;case 44:e.backClipZ=t.value;break;case 45:e.viewHeight=t.value;break;case 50:e.snapAngle=t.value;break;case 51:e.viewTwistAngle=t.value;break;case 72:e.circleZoomPercent=t.value;break;case 331:e.frozenLayerIds??(e.frozenLayerIds=[]),e.frozenLayerIds.push(t.value);break;case 90:e.statusBitFlags=t.value;break;case 340:e.clippingBoundaryId=t.value;break;case 1:e.sheetName=t.value;break;case 281:e.renderMode=t.value;break;case 71:e.ucsPerViewport=t.value;break;case 110:e.ucsOrigin=eF(a(r));break;case 111:e.ucsXAxis=eF(a(r));break;case 112:e.ucsYAxis=eF(a(r));break;case 345:e.ucsId=t.value;break;case 346:e.ucsBaseId=t.value;break;case 79:e.orthographicType=t.value;break;case 146:e.elevation=t.value;break;case 170:e.shadePlotMode=t.value;break;case 61:e.majorGridFrequency=t.value;break;case 332:e.backgroundId=t.value;break;case 333:e.shadePlotId=t.value;break;case 348:e.visualStyleId=t.value;break;case 292:e.isDefaultLighting=!!t.value;break;case 282:e.defaultLightingType=t.value;break;case 141:e.brightness=t.value;break;case 142:e.contrast=t.value;break;case 63:case 421:case 431:e.ambientLightColor=t.value;break;case 361:e.sunId=t.value;break;case 335:case 343:case 344:case 91:e.softPointer=t.value}return!0}(t,e,r)&&eR(t,r,e),r=e.next()}return t}}function r1(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}eo="VIEWPORT",(en="ForEntityName")in r0?Object.defineProperty(r0,en,{value:eo,enumerable:!0,configurable:!0,writable:!0}):r0[en]=eo;const r4={},r2=[{code:170,name:"multileaderType",parser:s},{code:291,name:"doglegEnabled",parser:c},{code:40,name:"doglegLength",parser:s},{code:172,name:"contentType",parser:s},{code:3,name:"textContent",parser:s},{code:12,name:"textAnchor",parser:i},{code:344,name:"blockHandle",parser:s},{code:15,name:"blockPosition",parser:i},{code:302,name:"leaderSections",parser:function(e,r,t){let n;let o={leaderLines:[]};for(;r.hasNext()&&303!==(n=r.next()).code;){switch(n.code){case 10:o.landingPoint=(n.value,a(r));break;case 11:o.doglegVector=(n.value,a(r));break;case 40:o.doglegLength=n.value;break;case 304:o.leaderLines.push(function(e,r,t){let n;let o={vertices:[]};for(;r.hasNext()&&305!==(n=r.next()).code;)10===n.code&&o.vertices.push((n.value,a(r)));return o}(0,r))}}return o},isMultiple:!0},...eI];class r3{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){r1(this,"parser",n(r2,r4))}}r1(r3,"ForEntityName","MULTILEADER");const r7=Object.fromEntries([eg,eA,eW,eX,eK,eq,e1,rd,rm,rI,rg,rL,eB,r3,rP,rV,rG,rj,rZ,rQ,eS,ro,rF,r0].map(e=>[e.ForEntityName,new e]));function r5(e,a){let t=[];for(;!r(e,0,"EOF");){if(0===e.code){if("ENDBLK"===e.value||"ENDSEC"===e.value){a.rewind();break}let r=r7[e.value];if(r){let n=e.value;e=a.next();let o=r.parseEntity(a,e);o.type=n,e_(o),t.push(o)}else console.warn(`Unsupported ENTITY type: ${e.value}`)}e=a.next()}return t}function r6(e,a){let t={};for(;!r(e,0,"EOF")&&!r(e,0,"ENDSEC");){if(r(e,0,"BLOCK")){let r=r9(e=a.next(),a);e_(r),r.name&&(t[r.name]=r)}e=a.next()}return t}function r9(e,t){let n={};for(;!r(e,0,"EOF");){if(r(e,0,"ENDBLK")){for(e=t.next();!r(e,0,"EOF");){if(r(e,100,"AcDbBlockEnd"))return n;e=t.next()}break}switch(e.code){case 1:n.xrefPath=e.value;break;case 2:n.name=e.value;break;case 3:n.name2=e.value;break;case 5:n.handle=e.value;break;case 8:n.layer=e.value;break;case 10:n.position=a(t);break;case 67:n.paperSpace=!!e.value&&1==e.value;break;case 70:0!==e.value&&(n.type=e.value);break;case 100:break;case 330:n.ownerHandle=e.value;break;case 0:n.entities=r5(e,t)}e=t.next()}return n}function r8(e,t){let n=null,o={};for(;!r(e,0,"EOF")&&!r(e,0,"ENDSEC");)9===e.code?n=e.value:10===e.code?o[n]=a(t):o[n]=e.value,e=t.next();return o}exports.RecordCloneFlag=void 0,(es=exports.RecordCloneFlag||(exports.RecordCloneFlag={}))[es.NOT_APPLICABLE=0]="NOT_APPLICABLE",es[es.KEEP_EXISTING=1]="KEEP_EXISTING",es[es.USE_CLONE=2]="USE_CLONE",es[es.XREF_VALUE_NAME=3]="XREF_VALUE_NAME",es[es.VALUE_NAME=4]="VALUE_NAME",es[es.UNMANGLE_NAME=5]="UNMANGLE_NAME";const ae=[{code:3,name:"entries",parser:(e,r)=>{let a={name:e.value};return 350===(e=r.next()).code?a.objectId=e.value:r.rewind(),a},isMultiple:!0},{code:281,name:"recordCloneFlag",parser:s},{code:280,name:"isHardOwned",parser:c},{code:100,name:"subclassMarker",parser:s}];exports.LayoutControlFlag=void 0,(ei=exports.LayoutControlFlag||(exports.LayoutControlFlag={}))[ei.PSLTSCALE=1]="PSLTSCALE",ei[ei.LIMCHECK=2]="LIMCHECK",exports.PlotPaperUnit=void 0,(ec=exports.PlotPaperUnit||(exports.PlotPaperUnit={}))[ec.INCHES=0]="INCHES",ec[ec.MILLIMETERS=1]="MILLIMETERS",ec[ec.PIXELS=2]="PIXELS",exports.PlotType=void 0,(ed=exports.PlotType||(exports.PlotType={}))[ed.LAST_SCREEN_DISPLAY=0]="LAST_SCREEN_DISPLAY",ed[ed.DRAWING_EXTENTS=1]="DRAWING_EXTENTS",ed[ed.DRAWING_LIMITS=2]="DRAWING_LIMITS",ed[ed.VIEW_SPECIFIED=3]="VIEW_SPECIFIED",ed[ed.WINDOW_SPECIFIED=4]="WINDOW_SPECIFIED",ed[ed.LAYOUT_INFORMATION=5]="LAYOUT_INFORMATION",exports.ShadePlotMode=void 0,(el=exports.ShadePlotMode||(exports.ShadePlotMode={}))[el.AS_DISPLAYED=0]="AS_DISPLAYED",el[el.WIREFRAME=1]="WIREFRAME",el[el.HIDDEN=2]="HIDDEN",el[el.RENDERED=3]="RENDERED",exports.ShadePlotResolution=void 0,(ep=exports.ShadePlotResolution||(exports.ShadePlotResolution={}))[ep.DRAFT=0]="DRAFT",ep[ep.PREVIEW=1]="PREVIEW",ep[ep.NORMAL=2]="NORMAL",ep[ep.PRESENTATION=3]="PRESENTATION",ep[ep.MAXIMUM=4]="MAXIMUM",ep[ep.CUSTOM=5]="CUSTOM";const ar=[{code:333,name:"shadePlotId",parser:s},{code:149,name:"imageOriginY",parser:s},{code:148,name:"imageOriginX",parser:s},{code:147,name:"scaleFactor",parser:s},{code:78,name:"shadePlotCustomDPI",parser:s},{code:77,name:"shadePlotResolution",parser:s},{code:76,name:"shadePlotMode",parser:s},{code:75,name:"standardScaleType",parser:s},{code:7,name:"currentStyleSheet",parser:s},{code:74,name:"plotType",parser:s},{code:73,name:"plotRotation",parser:s},{code:72,name:"paperUnit",parser:s},{code:70,name:"layoutFlag",parser:s},{code:143,name:"printScaleDenominator",parser:s},{code:142,name:"printScaleNominator",parser:s},{code:141,name:"windowAreaYMax",parser:s},{code:140,name:"windowAreaYMin",parser:s},{code:49,name:"windowAreaXMax",parser:s},{code:48,name:"windowAreaXMin",parser:s},{code:47,name:"plotOriginY",parser:s},{code:46,name:"plotOriginX",parser:s},{code:45,name:"paperHeight",parser:s},{code:44,name:"paperWidth",parser:s},{code:43,name:"marginTop",parser:s},{code:42,name:"marginRight",parser:s},{code:41,name:"marginBottom",parser:s},{code:40,name:"marginLeft",parser:s},{code:6,name:"plotViewName",parser:s},{code:4,name:"paperSize",parser:s},{code:2,name:"configName",parser:s},{code:1,name:"pageSetupName",parser:s},{code:100,name:"subclassMarker",parser:s}],aa=[{code:333,name:"shadePlotId",parser:s},{code:346,name:"orthographicUcsId",parser:s},{code:345,name:"namedUcsId",parser:s},{code:331,name:"viewportId",parser:s},{code:330,name:"paperSpaceTableId",parser:s},{code:76,name:"orthographicType",parser:s},{code:17,name:"ucsYAxis",parser:i},{code:16,name:"ucsXAxis",parser:i},{code:13,name:"ucsOrigin",parser:i},{code:146,name:"elevation",parser:s},{code:15,name:"maxExtent",parser:i},{code:14,name:"minExtent",parser:i},{code:12,name:"insertionBase",parser:i},{code:11,name:"maxLimit",parser:i},{code:10,name:"minLimit",parser:i},{code:71,name:"tabOrder",parser:s},{code:70,name:"controlFlag",parser:s},{code:1,name:"layoutName",parser:s},{code:100,name:"subclassMarker",parser:s},...ar],at=[{code:330,name:"ownerObjectId",parser:s},{code:102},{code:360,name:"ownerDictionaryIdHard",parser:s},{code:102},{code:102},{code:330,name:"ownerDictionaryIdSoft",parser:s},{code:102},{code:102},{code:102},{code:5,name:"handle",parser:s}];function an(e){return"AcDbDictionary"===e.subclassMarker}const ao={LAYOUT:aa,PLOTSETTINGS:ar,DICTIONARY:ae};function as(e,r){let a=[];for(;0!==e.code||!["EOF","ENDSEC"].includes(e.value);){let t=e.value,o=ao[t];if(0===e.code&&o?.length){let s=n([...at,...o]),i={name:t};s(e=r.next(),r,i)?(a.push(i),e=r.peek()):e=r.next()}else e=r.next()}return{byName:eC(a,({name:e})=>e),byTree:function(e){let r=Object.fromEntries(e.map(e=>[e.handle,e]));for(let a of e)(!an(a)||"0"!==a.ownerDictionaryIdSoft)&&(a.ownerDictionaryIdSoft&&(a.ownerDictionarySoft=r[a.ownerDictionaryIdSoft]),a.ownerDictionaryIdHard&&(a.ownerDictionaryHard=r[a.ownerDictionaryIdHard]),a.ownerObjectId&&(a.ownerObject=r[a.ownerObjectId])),function(e,r){an(e)&&e.entries&&(e.entries=Object.fromEntries(e.entries.map(({name:e,objectId:a})=>[e,r[a]])))}(a,r);return e[0]}(a)}}const ai=[{code:100,name:"subclassMarker",parser:s},{code:330,name:"ownerObjectId",parser:s},{code:102,parser(e,a){for(;!r(e,0,"EOF")&&!r(e,102,"}");)e=a.next()}},{code:5,name:"handle",parser:s}],ac=n([{code:310,name:"bmpPreview",parser:s},{code:281,name:"scalability",parser:s},{code:280,name:"explodability",parser:s},{code:70,name:"insertionUnits",parser:s},{code:340,name:"layoutObjects",parser:s},{code:2,name:"name",parser:s},{code:100,name:"subclassMarker",parser:s},...ai]),ad=[{name:"DIMPOST",code:3},{name:"DIMAPOST",code:4},{name:"DIMBLK_OBSOLETE",code:5},{name:"DIMBLK1_OBSOLETE",code:6},{name:"DIMBLK2_OBSOLETE",code:7},{name:"DIMSCALE",code:40,defaultValue:1},{name:"DIMASZ",code:41,defaultValue:.25},{name:"DIMEXO",code:42,defaultValue:.625,defaultValueImperial:.0625},{name:"DIMDLI",code:43,defaultValue:3.75,defaultValueImperial:.38},{name:"DIMEXE",code:44,defaultValue:2.25,defaultValueImperial:.28},{name:"DIMRND",code:45,defaultValue:0},{name:"DIMDLE",code:46,defaultValue:0},{name:"DIMTP",code:47,defaultValue:0},{name:"DIMTM",code:48,defaultValue:0},{name:"DIMTXT",code:140,defaultValue:2.5,defaultValueImperial:.28},{name:"DIMCEN",code:141,defaultValue:2.5,defaultValueImperial:.09},{name:"DIMTSZ",code:142,defaultValue:0},{name:"DIMALTF",code:143,defaultValue:25.4},{name:"DIMLFAC",code:144,defaultValue:1},{name:"DIMTVP",code:145,defaultValue:0},{name:"DIMTFAC",code:146,defaultValue:1},{name:"DIMGAP",code:147,defaultValue:.625,defaultValueImperial:.09},{name:"DIMALTRND",code:148,defaultValue:0},{name:"DIMTOL",code:71,defaultValue:0,defaultValueImperial:1},{name:"DIMLIM",code:72,defaultValue:0},{name:"DIMTIH",code:73,defaultValue:0,defaultValueImperial:1},{name:"DIMTOH",code:74,defaultValue:0,defaultValueImperial:1},{name:"DIMSE1",code:75,defaultValue:0},{name:"DIMSE2",code:76,defaultValue:0},{name:"DIMTAD",code:77,defaultValue:exports.DimensionTextVertical.Above,defaultValueImperial:exports.DimensionTextVertical.Center},{name:"DIMZIN",code:78,defaultValue:exports.DimensionZeroSuppression.Trailing,defaultValueImperial:exports.DimensionZeroSuppression.Feet},{name:"DIMAZIN",code:79,defaultValue:exports.DimensionZeroSuppressionAngular.None},{name:"DIMALT",code:170,defaultValue:0},{name:"DIMALTD",code:171,defaultValue:3,defaultValueImperial:2},{name:"DIMTOFL",code:172,defaultValue:1,defaultValueImperial:0},{name:"DIMSAH",code:173,defaultValue:0},{name:"DIMTIX",code:174,defaultValue:0},{name:"DIMSOXD",code:175,defaultValue:0},{name:"DIMCLRD",code:176,defaultValue:0},{name:"DIMCLRE",code:177,defaultValue:0},{name:"DIMCLRT",code:178,defaultValue:0},{name:"DIMADEC",code:179},{name:"DIMUNIT",code:270},{name:"DIMDEC",code:271,defaultValue:2,defaultValueImperial:4},{name:"DIMTDEC",code:272,defaultValue:2,defaultValueImperial:4},{name:"DIMALTU",code:273,defaultValue:2},{name:"DIMALTTD",code:274,defaultValue:2,defaultValueImperial:4},{name:"DIMAUNIT",code:275,defaultValue:0},{name:"DIMFRAC",code:276,defaultValue:0},{name:"DIMLUNIT",code:277,defaultValue:2},{name:"DIMDSEP",code:278,defaultValue:",",defaultValueImperial:"."},{name:"DIMJUST",code:280,defaultValue:exports.DimensionTextHorizontal.Center},{name:"DIMSD1",code:281,defaultValue:0},{name:"DIMSD2",code:282,defaultValue:0},{name:"DIMTOLJ",code:283,defaultValue:exports.DimensionToleranceTextVertical.Center},{name:"DIMTZIN",code:284,defaultValue:exports.DimensionZeroSuppression.Trailing,defaultValueImperial:exports.DimensionZeroSuppression.Feet},{name:"DIMALTZ",code:285,defaultValue:exports.DimensionZeroSuppression.Trailing},{name:"DIMALTTZ",code:286,defaultValue:exports.DimensionZeroSuppression.Trailing},{name:"DIMFIT",code:287},{name:"DIMUPT",code:288,defaultValue:0},{name:"DIMATFIT",code:289,defaultValue:3},{name:"DIMTXSTY",code:340},{name:"DIMLDRBLK",code:341},{name:"DIMBLK",code:342},{name:"DIMBLK1",code:343},{name:"DIMBLK2",code:344},{name:"DIMLWD",code:371,defaultValue:-2},{name:"DIMLWD",code:372,defaultValue:-2}],al=n([...ad.map(e=>({...e,parser:s})),{code:70,name:"standardFlag",parser:s},{code:2,name:"name",parser:s},{code:100,name:"subclassMarker",parser:s},{code:105,name:"handle",parser:s},...ai.filter(e=>5!==e.code)]),ap=n([{code:347,name:"materialObjectId",parser:s},{code:390,name:"plotStyleNameObjectId",parser:s},{code:370,name:"lineweight",parser:s},{code:290,name:"isPlotting",parser:c},{code:6,name:"lineType",parser:s},{code:62,name:"colorIndex",parser:s},{code:70,name:"standardFlag",parser:s},{code:2,name:"name",parser:s},{code:100,name:"subclassMarker",parser:s},...ai]);exports.LineTypeElementType=void 0,(eu=exports.LineTypeElementType||(exports.LineTypeElementType={}))[eu.NONE=0]="NONE",eu[eu.AbsoluteRotation=1]="AbsoluteRotation",eu[eu.TextEmbedded=2]="TextEmbedded",eu[eu.ShapeEmbedded=4]="ShapeEmbedded";const au=n([{code:9,name:"text",parser:s},{code:45,name:"offsetY",parser:s},{code:44,name:"offsetX",parser:s},{code:50,name:"rotation",parser:s},{code:46,name:"scale",parser:s},{code:340,name:"styleObjectId",parser:s},{code:75,name:"shapeNumber",parser:s},{code:74,name:"elementTypeFlag",parser:s},{code:49,name:"elementLength",parser:s}],{elementTypeFlag:0,elementLength:0}),am=n([{code:49,name:"pattern",parser(e,r){let a={};return au(e,r,a),a},isMultiple:!0},{code:40,name:"totalPatternLength",parser:s},{code:73,name:"numberOfLineTypes",parser:s},{code:72,parser:s},{code:3,name:"description",parser:s},{code:70,name:"standardFlag",parser:s},{code:2,name:"name",parser:s},{code:100,name:"subclassMarker",parser:s},...ai]),aE=n([{code:1e3,name:"extendedFont",parser:s},{code:1001},{code:4,name:"bigFont",parser:s},{code:3,name:"font",parser:s},{code:42,name:"lastHeight",parser:s},{code:71,name:"textGenerationFlag",parser:s},{code:50,name:"obliqueAngle",parser:s},{code:41,name:"widthFactor",parser:s},{code:40,name:"fixedTextHeight",parser:s},{code:70,name:"standardFlag",parser:s},{code:2,name:"name",parser:s},{code:100,name:"subclassMarker",parser:s},...ai]),ah=n([{code:[63,421,431],name:"ambientColor",parser:s},{code:142,name:"contrast",parser:s},{code:141,name:"brightness",parser:s},{code:282,name:"defaultLightingType",parser:s},{code:292,name:"isDefaultLightingOn",parser:c},{code:348,name:"visualStyleObjectId",parser:s},{code:333,name:"shadePlotObjectId",parser:s},{code:332,name:"backgroundObjectId",parser:s},{code:61,name:"majorGridLines",parser:s},{code:170,name:"shadePlotSetting",parser:s},{code:146,name:"elevation",parser:s},{code:79,name:"orthographicType",parser:s},{code:112,name:"ucsYAxis",parser:i},{code:111,name:"ucsXAxis",parser:i},{code:110,name:"ucsOrigin",parser:i},{code:74,name:"ucsIconSetting",parser:s},{code:71,name:"viewMode",parser:s},{code:281,name:"renderMode",parser:s},{code:1,name:"styleSheet",parser:s},{code:[331,441],name:"frozenLayers",parser:s,isMultiple:!0},{code:72,name:"circleSides",parser:s},{code:51,name:"viewTwistAngle",parser:s},{code:50,name:"snapRotationAngle",parser:s},{code:45,name:"viewHeight",parser:s},{code:44,name:"backClippingPlane",parser:s},{code:43,name:"frontClippingPlane",parser:s},{code:42,name:"lensLength",parser:s},{code:17,name:"viewTarget",parser:i},{code:16,name:"viewDirectionFromTarget",parser:i},{code:15,name:"gridSpacing",parser:i},{code:14,name:"snapSpacing",parser:i},{code:13,name:"snapBasePoint",parser:i},{code:12,name:"center",parser:i},{code:11,name:"upperRightCorner",parser:i},{code:10,name:"lowerLeftCorner",parser:i},{code:70,name:"standardFlag",parser:s},{code:2,name:"name",parser:s},{code:100,name:"subclassMarker",parser:s},...ai]),ax={BLOCK_RECORD:ac,DIMSTYLE:al,LAYER:ap,LTYPE:am,STYLE:aE,VPORT:ah},aI=n([{code:70,name:"maxNumberOfEntries",parser:s},{code:100,name:"subclassMarker",parser:s},{code:330,name:"ownerObjectId",parser:s},{code:102},{code:360,isMultiple:!0},{code:102},{code:5,name:"handle",parser:s},{code:2,name:"name",parser:s}]);function af(e,a){let t={};for(;!r(e,0,"EOF")&&!r(e,0,"ENDSEC");){if(r(e,0,"TABLE")){e=a.next();let r={entries:[]};aI(e,a,r),t[r.name]=r}if(r(e,0)&&!r(e,0,"ENDTAB")){let r=e.value;e=a.next();let n=ax[r];if(!n){a.debug&&console.warn(`parseTable: Invalid table name '${r}'`),e=a.next();continue}let o={};n(e,a,o),t[r]?.entries.push(o)}e=a.next()}return t}function aT(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}class ab{next(){if(!this.hasNext())return this._eof?this.debug&&console.warn("Cannot call 'next' after EOF group has been read"):this.debug&&console.warn("Unexpected end of input: EOF group not read before end of file. Ended on code "+this._data[this._pointer]),{code:0,value:"EOF"};let e=parseInt(this._data[this._pointer++],10),a=ag(e,this._data[this._pointer++]),t={code:e,value:a};return r(t,0,"EOF")&&(this._eof=!0),this.lastReadGroup=t,t}peek(){if(!this.hasNext()){if(this._eof)throw Error("Cannot call 'next' after EOF group has been read");throw Error("Unexpected end of input: EOF group not read before end of file. Ended on code "+this._data[this._pointer])}let e={code:parseInt(this._data[this._pointer]),value:0};return e.value=ag(e.code,this._data[this._pointer+1]),e}rewind(e){e=e||1,this._pointer=this._pointer-2*e}hasNext(){return!this._eof&&!(this._pointer>this._data.length-2)}isEOF(){return this._eof}constructor(e,r){aT(this,"_pointer",void 0),aT(this,"_data",void 0),aT(this,"_eof",void 0),aT(this,"debug",!0),aT(this,"lastReadGroup",{code:0,value:0}),this._pointer=0,this._data=e,this._eof=!1,this.debug=r??!0}}function ag(e,r){return e<=9?r:e>=10&&e<=59?parseFloat(r.trim()):e>=60&&e<=99?parseInt(r.trim()):e>=100&&e<=109?r:e>=110&&e<=149?parseFloat(r.trim()):e>=160&&e<=179?parseInt(r.trim()):e>=210&&e<=239?parseFloat(r.trim()):e>=270&&e<=289?parseInt(r.trim()):e>=290&&e<=299?function(e){if("0"===e)return!1;if("1"===e)return!0;throw TypeError("String '"+e+"' cannot be cast to Boolean type")}(r.trim()):e>=300&&e<=369?r:e>=370&&e<=389?parseInt(r.trim()):e>=390&&e<=399?r:e>=400&&e<=409?parseInt(r.trim()):e>=410&&e<=419?r:e>=420&&e<=429?parseInt(r.trim()):e>=430&&e<=439?r:e>=440&&e<=459?parseInt(r.trim()):e>=460&&e<=469?parseFloat(r.trim()):e>=470&&e<=481||999===e||e>=1e3&&e<=1009?r:e>=1010&&e<=1059?parseFloat(r.trim()):e>=1060&&e<=1071?parseInt(r.trim()):(console.log("WARNING: Group code does not have a defined type: %j",{code:e,value:r}),r)}function aD(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}class ay{parseStart(e){this.startCode=e.code}setPoint(e){if(this.code=e.code,this.value=e.value,this.startCode===this.code&&(this.x=this.value),this.startCode===this.code+10)this.y=this.value;else{let e={x:this.x??0,y:this.y??0,z:this.z??0};return this.reset(),e}if(this.startCode===this.code+20)this.z=this.value;else{let e={x:this.x??0,y:this.y??0,z:this.z??0};return this.reset(),e}}reset(){this.x=void 0,this.y=void 0,this.z=void 0}constructor(){aD(this,"point",{}),aD(this,"startCode",0),aD(this,"code",0),aD(this,"value",0),aD(this,"x",void 0),aD(this,"y",void 0),aD(this,"z",void 0)}}function aO(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}class aS{constructor(){aO(this,"encoding","utf-8"),aO(this,"encodingFailureFatal",!1)}}class aL extends Error{constructor(e,r,a){let t=`[Line ${r}]: ${e}`;a?.cause&&(t+=`
2
2
  Caused by ${a.cause.toString()}
3
- ${a.cause.stack}`),super(t),aX(this,"line",void 0),this.line=r}}class aZ extends EventTarget{Feed(e,r=!1){let a=this._decoder.decode(e??void 0,{stream:!r});this.FeedString(a,r)}FeedString(e,r=!1){if(this._finalChunkSeen)throw Error("Data fed after final chunk processed");r&&(this._finalChunkSeen=!0),this._curChunk+=e,this._ProcessCurChunk(),r&&this._Finalize()}_Finalize(){}async FeedFile(e,r){let a=e.byteLength;for(let t=0;t<a;t+=65536){r?.throwIfAborted();let n=Math.min(a-t,65536),o=await e.slice(t,t+n);this.Feed(o,t+n>=a)}}_ProcessCurChunk(){for(let e of this._ConsumeCurChunkLines())if(this._ProcessLine(e),this._curLineNum++,!this._eof&&"HEADER"===this._curSection){let e=this._curValue.value;9===this._curValue.code?this._currVarName=e:10===this._curValue.code?this._pointParser.parseStart(this._curValue):this._pointParser.startCode===this._curValue.code||this._pointParser.startCode+10===this._curValue.code||this._pointParser.startCode+20===this._curValue.code?e=this._pointParser.setPoint(this._curValue):this._currVarName&&(this.dxf.header[this._currVarName]=e)}}*_ConsumeCurChunkLines(){let e=0,r=this._curChunk.length;for(;e<r;){let a=this._curChunk.indexOf("\r",e),t=0;if(a>=0?(t=a+1)<r&&"\n"==this._curChunk.charAt(t)&&t++:(a=this._curChunk.indexOf("\n",e))>=0&&(t=a+1),a<0)break;yield this._curChunk.substring(e,a),e=t}0!=e&&(this._curChunk=this._curChunk.substring(e))}_ProcessLine(e){if(null===this._curGroupCode){let r=e.trim();this._curGroupCode=parseInt(r),isNaN(this._curGroupCode)&&this._Error("Bad group code: "+r);return}let a=new aJ(this._curGroupCode,e);if(!r(a,0,"EOF")){switch(a.value){case"SECTION":this._curSection="SECTION";break;case"HEADER":this._curSection="HEADER";break;case"BLOCKS":this._curSection="BLOCKS";break;case"ENTITIES":this._curSection="ENTITIES";break;case"TABLES":this._curSection="TABLES";break;case"OBJECTS":this._curSection="OBJECTS"}this._eof=!1}r(a,0,"EOF")&&(this._eof=!0),this._curValue=a,this._curGroupCode=null}_Error(e,r=null){let a;throw r&&(a={cause:r}),new aK(e,this._curLineNum,a)}constructor(e=new az){super(),aX(this,"dxf",{header:{},blocks:{},entities:[],tables:{},objects:{byName:{},byTree:void 0}}),aX(this,"_decoder",void 0),aX(this,"_pointParser",void 0),aX(this,"_finalChunkSeen",!1),aX(this,"_curChunk",""),aX(this,"_curGroupCode",null),aX(this,"_curLineNum",1),aX(this,"_eof",!1),aX(this,"_curValue",{code:0,value:0}),aX(this,"_curSection",""),aX(this,"_currVarName",""),this._decoder=new TextDecoder(e.encoding,{fatal:e.encodingFailureFatal}),this._pointParser=new aj}}class aJ{constructor(e,r){aX(this,"code",void 0),aX(this,"value",void 0),this.code=e,this.value=aW(e,r)}}function a$(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}class aq{constructor(){a$(this,"encoding","utf-8"),a$(this,"encodingFailureFatal",!1)}}class aQ extends EventTarget{parseSync(e){let r=new aU(e.split(/\r\n|\r|\n/g));if(!r.hasNext())throw Error("Empty file");return this.parseAll(r)}parseStream(e){let r="",a=this;return new Promise((t,n)=>{e.on("data",e=>{r+=e}),e.on("end",()=>{try{let e=r.split(/\r\n|\r|\n/g),n=new aU(e);if(!n.hasNext())throw Error("Empty file");t(a.parseAll(n))}catch(e){n(e)}}),e.on("error",e=>{n(e)})})}async parseFromUrl(e,r){let a=await fetch(e,r);if(!a.body)return null;let t=a.body.getReader(),n="";for(;;){let{done:e,value:r}=await t.read();if(e){n+=this._decoder.decode(new ArrayBuffer(0),{stream:!1});break}n+=this._decoder.decode(r,{stream:!0})}return this.parseSync(n)}parseAll(e){let a={header:{},blocks:{},entities:[],tables:{},objects:{byName:{},byTree:void 0}},t=e.next();for(;!r(t,0,"EOF");)r(t,0,"SECTION")&&(r(t=e.next(),2,"HEADER")?(t=e.next(),a.header=aS(t,e)):r(t,2,"BLOCKS")?(t=e.next(),a.blocks=ag(t,e)):r(t,2,"ENTITIES")?(t=e.next(),a.entities=aO(t,e)):r(t,2,"TABLES")?(t=e.next(),a.tables=aH(t,e)):r(t,2,"OBJECTS")&&(t=e.next(),a.objects=aP(t,e))),t=e.next();return a}constructor(e=new aq){super(),a$(this,"_decoder",void 0),this._decoder=new TextDecoder(e.encoding,{fatal:e.encodingFailureFatal})}}exports.CommonEntitySnippets=eU,exports.DefaultDxfHeaderVariables=e,exports.DimStyleVariablesSchema=aC,exports.DxfParsingError=aK,exports.DxfStreamParser=aZ,exports.DxfStreamParserOptions=az,exports.INDEXED_CHUNK_SIZE=65536,exports.SPLINE_SUBDIVISION=4,exports.TESSELLATION_ANGLE=Math.PI/24,exports.UndeterminedBlockColor=-1,exports.XDataParserSnippets=eB,exports.classify=e2,exports.createXDataCatcher=function({appName:e="ACAD",catcher:r,escaper:a}){return function*(t){if(t?.appName!==e)return;let n=!1,o=-1;for(let[e,s]of t.value.entries())if(n){if(yield s,a?.(s,e-o))return}else r(s)&&(n=!0,o=e)}},exports.createXDataControlInterpreter=function(e){return r=>{let a={};for(let t=0;t<r.length;t+=2){let n=e.find(({code:e})=>e===r[t].value);n&&(a[n.name]=r[t+1]?.value)}return a}},exports.default=aQ,exports.ensureHandle=eY,exports.ensurePoint3D=e7,exports.generateIntegers=e3,exports.getAcadColor=function(e){return eP[e]},exports.isMatched=r,exports.parseBlock=ax,exports.parseBlocks=ag,exports.parseEntities=aO,exports.parseExtensions=a,exports.parseHeader=aS,exports.parseObjects=aP,exports.parseTables=aH,exports.parseXData=eH;
3
+ ${a.cause.stack}`),super(t),aO(this,"line",void 0),this.line=r}}class aN extends EventTarget{Feed(e,r=!1){let a=this._decoder.decode(e??void 0,{stream:!r});this.FeedString(a,r)}FeedString(e,r=!1){if(this._finalChunkSeen)throw Error("Data fed after final chunk processed");r&&(this._finalChunkSeen=!0),this._curChunk+=e,this._ProcessCurChunk(),r&&this._Finalize()}_Finalize(){}async FeedFile(e,r){let a=e.byteLength;for(let t=0;t<a;t+=65536){r?.throwIfAborted();let n=Math.min(a-t,65536),o=await e.slice(t,t+n);this.Feed(o,t+n>=a)}}_ProcessCurChunk(){for(let e of this._ConsumeCurChunkLines())if(this._ProcessLine(e),this._curLineNum++,!this._eof&&"HEADER"===this._curSection){let e=this._curValue.value;9===this._curValue.code?this._currVarName=e:10===this._curValue.code?this._pointParser.parseStart(this._curValue):this._pointParser.startCode===this._curValue.code||this._pointParser.startCode+10===this._curValue.code||this._pointParser.startCode+20===this._curValue.code?e=this._pointParser.setPoint(this._curValue):this._currVarName&&(this.dxf.header[this._currVarName]=e)}}*_ConsumeCurChunkLines(){let e=0,r=this._curChunk.length;for(;e<r;){let a=this._curChunk.indexOf("\r",e),t=0;if(a>=0?(t=a+1)<r&&"\n"==this._curChunk.charAt(t)&&t++:(a=this._curChunk.indexOf("\n",e))>=0&&(t=a+1),a<0)break;yield this._curChunk.substring(e,a),e=t}0!=e&&(this._curChunk=this._curChunk.substring(e))}_ProcessLine(e){if(null===this._curGroupCode){let r=e.trim();this._curGroupCode=parseInt(r),isNaN(this._curGroupCode)&&this._Error("Bad group code: "+r);return}let a=new av(this._curGroupCode,e);if(!r(a,0,"EOF")){switch(a.value){case"SECTION":this._curSection="SECTION";break;case"HEADER":this._curSection="HEADER";break;case"BLOCKS":this._curSection="BLOCKS";break;case"ENTITIES":this._curSection="ENTITIES";break;case"TABLES":this._curSection="TABLES";break;case"OBJECTS":this._curSection="OBJECTS"}this._eof=!1}r(a,0,"EOF")&&(this._eof=!0),this._curValue=a,this._curGroupCode=null}_Error(e,r=null){let a;throw r&&(a={cause:r}),new aL(e,this._curLineNum,a)}constructor(e=new aS){super(),aO(this,"dxf",{header:{},blocks:{},entities:[],tables:{},objects:{byName:{},byTree:void 0}}),aO(this,"_decoder",void 0),aO(this,"_pointParser",void 0),aO(this,"_finalChunkSeen",!1),aO(this,"_curChunk",""),aO(this,"_curGroupCode",null),aO(this,"_curLineNum",1),aO(this,"_eof",!1),aO(this,"_curValue",{code:0,value:0}),aO(this,"_curSection",""),aO(this,"_currVarName",""),this._decoder=new TextDecoder(e.encoding,{fatal:e.encodingFailureFatal}),this._pointParser=new ay}}class av{constructor(e,r){aO(this,"code",void 0),aO(this,"value",void 0),this.code=e,this.value=ag(e,r)}}function aA(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}class aP{constructor(){aA(this,"encoding","utf-8"),aA(this,"encodingFailureFatal",!1)}}class a_ extends EventTarget{parseSync(e){let r=new ab(e.split(/\r\n|\r|\n/g));if(!r.hasNext())throw Error("Empty file");return this.parseAll(r)}parseStream(e){let r="",a=this;return new Promise((t,n)=>{e.on("data",e=>{r+=e}),e.on("end",()=>{try{let e=r.split(/\r\n|\r|\n/g),n=new ab(e);if(!n.hasNext())throw Error("Empty file");t(a.parseAll(n))}catch(e){n(e)}}),e.on("error",e=>{n(e)})})}async parseFromUrl(e,r){let a=await fetch(e,r);if(!a.body)return null;let t=a.body.getReader(),n="";for(;;){let{done:e,value:r}=await t.read();if(e){n+=this._decoder.decode(new ArrayBuffer(0),{stream:!1});break}n+=this._decoder.decode(r,{stream:!0})}return this.parseSync(n)}parseAll(e){let a={header:{},blocks:{},entities:[],tables:{},objects:{byName:{},byTree:void 0}},t=e.next();for(;!r(t,0,"EOF");)r(t,0,"SECTION")&&(r(t=e.next(),2,"HEADER")?(t=e.next(),a.header=r8(t,e)):r(t,2,"BLOCKS")?(t=e.next(),a.blocks=r6(t,e)):r(t,2,"ENTITIES")?(t=e.next(),a.entities=r5(t,e)):r(t,2,"TABLES")?(t=e.next(),a.tables=af(t,e)):r(t,2,"OBJECTS")&&(t=e.next(),a.objects=as(t,e))),t=e.next();return a}constructor(e=new aP){super(),aA(this,"_decoder",void 0),this._decoder=new TextDecoder(e.encoding,{fatal:e.encodingFailureFatal})}}exports.ArcEntityParser=eg,exports.AttDefEntityParser=eA,exports.AttributeEntityParser=eW,exports.CircleEntityParser=eX,exports.CommonEntitySnippets=eI,exports.DefaultDxfHeaderVariables=e,exports.DefaultTextEntity=ey,exports.DictionarySnippets=ae,exports.DimStyleVariablesSchema=ad,exports.DimensionParser=eK,exports.DxfParsingError=aL,exports.DxfStreamParser=aN,exports.DxfStreamParserOptions=aS,exports.EllipseEntityParser=eq,exports.FaceEntityParser=e1,exports.HatchEntityParser=ro,exports.INDEXED_CHUNK_SIZE=65536,exports.ImageEntityParser=rd,exports.InsertEntityParser=rm,exports.LWPolylineParser=rL,exports.LayoutSnippets=aa,exports.LeaderEntityParser=rI,exports.LineEntityParser=rg,exports.MTextEntityParser=eB,exports.MTextEntityParserSnippets=eV,exports.PlotSettingsSnippets=ar,exports.PointEntityParser=rP,exports.PolylineParser=rV,exports.RayParser=rG,exports.SPLINE_SUBDIVISION=4,exports.SectionEntityParser=rj,exports.SolidEntityParser=rZ,exports.SplineEntityParser=rQ,exports.TESSELLATION_ANGLE=Math.PI/24,exports.TextEntityParser=eS,exports.TextEntityParserSnippets=eO,exports.UndeterminedBlockColor=-1,exports.VertexParser=rF,exports.ViewportParser=r0,exports.XDataParserSnippets=eE,exports.classify=eC,exports.createXDataCatcher=function({appName:e="ACAD",catcher:r,escaper:a}){return function*(t){if(t?.appName!==e)return;let n=!1,o=-1;for(let[e,s]of t.value.entries())if(n){if(yield s,a?.(s,e-o))return}else r(s)&&(n=!0,o=e)}},exports.createXDataControlInterpreter=function(e){return r=>{let a={};for(let t=0;t<r.length;t+=2){let n=e.find(({code:e})=>e===r[t].value);n&&(a[n.name]=r[t+1]?.value)}return a}},exports.default=a_,exports.ensureHandle=e_,exports.ensurePoint3D=eF,exports.generateIntegers=eM,exports.getAcadColor=function(e){return em[e]},exports.isMatched=r,exports.parseBlock=r9,exports.parseBlockRecordTable=ac,exports.parseBlocks=r6,exports.parseDimStyle=al,exports.parseEntities=r5,exports.parseExtensions=d,exports.parseHeader=r8,exports.parseLTypeTable=am,exports.parseLayerTable=ap,exports.parseObjects=as,exports.parseStyleTable=aE,exports.parseTables=af,exports.parseVPortTable=ah,exports.parseXData=eh;
package/dist/bundle.mjs CHANGED
@@ -1,3 +1,3 @@
1
- (V=ep||(ep={}))[V.None=0]="None",V[V.Anonymous=1]="Anonymous",V[V.NonConstant=2]="NonConstant",V[V.Xref=4]="Xref",V[V.XrefOverlay=8]="XrefOverlay",V[V.ExternallyDependent=16]="ExternallyDependent",V[V.ResolvedOrDependent=32]="ResolvedOrDependent",V[V.ReferencedXref=64]="ReferencedXref",(B=em||(em={}))[B.BYBLOCK=0]="BYBLOCK",B[B.BYLAYER=256]="BYLAYER";let e=-1,a=4,r=Math.PI/24;(H=eE||(eE={}))[H.Rotated=0]="Rotated",H[H.Aligned=1]="Aligned",H[H.Angular=2]="Angular",H[H.Diameter=3]="Diameter",H[H.Radius=4]="Radius",H[H.Angular3Point=5]="Angular3Point",H[H.Ordinate=6]="Ordinate",H[H.ReferenceIsExclusive=32]="ReferenceIsExclusive",H[H.IsOrdinateXTypeFlag=64]="IsOrdinateXTypeFlag",H[H.IsCustomTextPositionFlag=128]="IsCustomTextPositionFlag",(G=eI||(eI={}))[G.TopLeft=1]="TopLeft",G[G.TopCenter=2]="TopCenter",G[G.TopRight=3]="TopRight",G[G.MiddleLeft=4]="MiddleLeft",G[G.MiddleCenter=5]="MiddleCenter",G[G.MiddleRight=6]="MiddleRight",G[G.BottomLeft=7]="BottomLeft",G[G.BottomCenter=8]="BottomCenter",G[G.BottomRight=9]="BottomRight",(U=eh||(eh={}))[U.AtLeast=1]="AtLeast",U[U.Exact=2]="Exact",(W=ef||(ef={}))[W.Center=0]="Center",W[W.Above=1]="Above",W[W.Outside=2]="Outside",W[W.JIS=3]="JIS",W[W.Below=4]="Below",(Y=eb||(eb={}))[Y.Feet=0]="Feet",Y[Y.None=1]="None",Y[Y.Inch=2]="Inch",Y[Y.FeetAndInch=3]="FeetAndInch",Y[Y.Leading=4]="Leading",Y[Y.Trailing=8]="Trailing",Y[Y.LeadingAndTrailing=12]="LeadingAndTrailing",(j=eT||(eT={}))[j.None=0]="None",j[j.Leading=1]="Leading",j[j.Trailing=2]="Trailing",j[j.LeadingAndTrailing=3]="LeadingAndTrailing",(X=eD||(eD={}))[X.Center=0]="Center",X[X.Left=1]="Left",X[X.Right=2]="Right",X[X.OverFirst=3]="OverFirst",X[X.OverSecond=4]="OverSecond",(z=eO||(eO={}))[z.Bottom=0]="Bottom",z[z.Center=1]="Center",z[z.Top=2]="Top",(K=eg||(eg={}))[K.PatternFill=0]="PatternFill",K[K.SolidFill=1]="SolidFill",(Z=eN||(eN={}))[Z.NonAssociative=0]="NonAssociative",Z[Z.Associative=1]="Associative",(J=eS||(eS={}))[J.Normal=0]="Normal",J[J.Outer=1]="Outer",J[J.Ignore=2]="Ignore",($=e_||(e_={}))[$.UserDefined=0]="UserDefined",$[$.Predefined=1]="Predefined",$[$.Custom=2]="Custom",(q=eL||(eL={}))[q.NotAnnotated=0]="NotAnnotated",q[q.Annotated=1]="Annotated",(Q=eA||(eA={}))[Q.Solid=0]="Solid",Q[Q.Gradient=1]="Gradient",(ee=ey||(ey={}))[ee.TwoColor=0]="TwoColor",ee[ee.OneColor=1]="OneColor",(ea=eC||(eC={}))[ea.Default=0]="Default",ea[ea.External=1]="External",ea[ea.Polyline=2]="Polyline",ea[ea.Derived=4]="Derived",ea[ea.Textbox=8]="Textbox",ea[ea.Outermost=16]="Outermost",(er=ev||(ev={}))[er.Line=1]="Line",er[er.Circular=2]="Circular",er[er.Elliptic=3]="Elliptic",er[er.Spline=4]="Spline",(et=eP||(eP={}))[et.Off=0]="Off",et[et.Solid=1]="Solid",et[et.Dashed=2]="Dashed",et[et.Dotted=3]="Dotted",et[et.ShotDash=4]="ShotDash",et[et.MediumDash=5]="MediumDash",et[et.LongDash=6]="LongDash",et[et.DoubleShortDash=7]="DoubleShortDash",et[et.DoubleMediumDash=8]="DoubleMediumDash",et[et.DoubleLongDash=9]="DoubleLongDash",et[et.DoubleMediumLongDash=10]="DoubleMediumLongDash",et[et.SparseDot=11]="SparseDot";let t={DRAGVS:"NULL",INTERFERECOLOR:1,INTERFEREOBJVS:"Conceptual",INTERFEREVPVS:"3d Wireframe",OBSLTYPE:eP.Off,SHADEDIF:70};(en=eM||(eM={}))[en.Standard=-3]="Standard",en[en.ByLayer=-2]="ByLayer",en[en.ByBlock=-1]="ByBlock",(eo=eR||(eR={}))[eo.English=0]="English",eo[eo.Metric=1]="Metric";let n=65536;function o(e,a,r){return e.code===a&&(null==r||e.value===r)}function s(e,a,r){for(;o(e,102);){var t;let n=e.value;if(e=a.next(),!n.startsWith("{")){console.warn(`Invalid application group, expected to start with "{" but received: ${n}`),function(e,a){for(;!o(e,102)&&!o(e,0,"EOF");)e=a.next()}(e,a),e=a.next();continue}let s=n.slice(1).trim();r.extensions??(r.extensions={}),(t=r.extensions)[s]??(t[s]=[]),function(e,a,r){for(;!o(e,102,"}")&&!o(e,0,"EOF");)r.push(e),e=a.next()}(e,a,r.extensions[s]),e=a.next()}}(es=ex||(ex={}))[es.PERSPECTIVE_MODE=1]="PERSPECTIVE_MODE",es[es.FRONT_CLIPPING=2]="FRONT_CLIPPING",es[es.BACK_CLIPPING=4]="BACK_CLIPPING",es[es.UCS_FOLLOW=8]="UCS_FOLLOW",es[es.FRONT_CLIP_NOT_AT_EYE=16]="FRONT_CLIP_NOT_AT_EYE",es[es.UCS_ICON_VISIBILITY=32]="UCS_ICON_VISIBILITY",es[es.UCS_ICON_AT_ORIGIN=64]="UCS_ICON_AT_ORIGIN",es[es.FAST_ZOOM=128]="FAST_ZOOM",es[es.SNAP_MODE=256]="SNAP_MODE",es[es.GRID_MODE=512]="GRID_MODE",es[es.ISOMETRIC_SNAP_STYLE=1024]="ISOMETRIC_SNAP_STYLE",es[es.HIDE_PLOT_MODE=2048]="HIDE_PLOT_MODE",es[es.K_ISO_PAIR_TOP=4096]="K_ISO_PAIR_TOP",es[es.K_ISO_PAIR_RIGHT=8192]="K_ISO_PAIR_RIGHT",es[es.VIEWPORT_ZOOM_LOCKING=16384]="VIEWPORT_ZOOM_LOCKING",es[es.UNUSED=32768]="UNUSED",es[es.NON_RECTANGULAR_CLIPPING=65536]="NON_RECTANGULAR_CLIPPING",es[es.VIEWPORT_OFF=131072]="VIEWPORT_OFF",es[es.GRID_BEYOND_DRAWING_LIMITS=262144]="GRID_BEYOND_DRAWING_LIMITS",es[es.ADAPTIVE_GRID_DISPLAY=524288]="ADAPTIVE_GRID_DISPLAY",es[es.SUBDIVISION_BELOW_SPACING=1048576]="SUBDIVISION_BELOW_SPACING",es[es.GRID_FOLLOWS_WORKPLANE=2097152]="GRID_FOLLOWS_WORKPLANE",(ei=ek||(ek={}))[ei.OPTIMIZED_2D=0]="OPTIMIZED_2D",ei[ei.WIREFRAME=1]="WIREFRAME",ei[ei.HIDDEN_LINE=2]="HIDDEN_LINE",ei[ei.FLAT_SHADED=3]="FLAT_SHADED",ei[ei.GOURAUD_SHADED=4]="GOURAUD_SHADED",ei[ei.FLAT_SHADED_WITH_WIREFRAME=5]="FLAT_SHADED_WITH_WIREFRAME",ei[ei.GOURAUD_SHADED_WITH_WIREFRAME=6]="GOURAUD_SHADED_WITH_WIREFRAME",(ec=eF||(eF={}))[ec.UCS_UNCHANGED=0]="UCS_UNCHANGED",ec[ec.HAS_OWN_UCS=1]="HAS_OWN_UCS",(ed=ew||(ew={}))[ed.NON_ORTHOGRAPHIC=0]="NON_ORTHOGRAPHIC",ed[ed.TOP=1]="TOP",ed[ed.BOTTOM=2]="BOTTOM",ed[ed.FRONT=3]="FRONT",ed[ed.BACK=4]="BACK",ed[ed.LEFT=5]="LEFT",ed[ed.RIGHT=6]="RIGHT",(el=eV||(eV={}))[el.AS_DISPLAYED=0]="AS_DISPLAYED",el[el.WIREFRAME=1]="WIREFRAME",el[el.HIDDEN=2]="HIDDEN",el[el.RENDERED=3]="RENDERED",(eu=eB||(eB={}))[eu.ONE_DISTANT_LIGHT=0]="ONE_DISTANT_LIGHT",eu[eu.TWO_DISTANT_LIGHTS=1]="TWO_DISTANT_LIGHTS";var i,c,d,l,u,p,m,E,I,h,f,b,T,D,O,g,N,S,_,L,A,y,C,v,P,M,R,x,k,F,w,V,B,H,G,U,W,Y,j,X,z,K,Z,J,$,q,Q,ee,ea,er,et,en,eo,es,ei,ec,ed,el,eu,ep,em,eE,eI,eh,ef,eb,eT,eD,eO,eg,eN,eS,e_,eL,eA,ey,eC,ev,eP,eM,eR,ex,ek,eF,ew,eV,eB,eH,eG,eU,eW,eY,ej,eX,ez,eK,eZ,eJ,e$,eq,eQ,e0,e1,e4,e2,e3,e7,e5,e6,e9,e8,ae,aa=[0,16711680,16776960,65280,65535,255,16711935,16777215,8421504,12632256,16711680,16744319,13369344,13395558,10027008,10046540,8323072,8339263,4980736,4990502,16727808,16752511,13382400,13401958,10036736,10051404,8331008,8343359,4985600,4992806,16744192,16760703,13395456,13408614,10046464,10056268,8339200,8347455,4990464,4995366,16760576,16768895,13408512,13415014,10056192,10061132,8347392,8351551,4995328,4997670,16776960,16777087,13421568,13421670,10000384,10000460,8355584,8355647,5000192,5000230,12582656,14679935,10079232,11717734,7510016,8755276,6258432,7307071,3755008,4344870,8388352,12582783,6736896,10079334,5019648,7510092,4161280,6258495,2509824,3755046,4194048,10485631,3394560,8375398,2529280,6264908,2064128,5209919,1264640,3099686,65280,8388479,52224,6736998,38912,5019724,32512,4161343,19456,2509862,65343,8388511,52275,6737023,38950,5019743,32543,4161359,19475,2509871,65407,8388543,52326,6737049,38988,5019762,32575,4161375,19494,2509881,65471,8388575,52377,6737074,39026,5019781,32607,4161391,19513,2509890,65535,8388607,52428,6737100,39064,5019800,32639,4161407,19532,2509900,49151,8380415,39372,6730444,29336,5014936,24447,4157311,14668,2507340,32767,8372223,26316,6724044,19608,5010072,16255,4153215,9804,2505036,16383,8364031,13260,6717388,9880,5005208,8063,4149119,4940,2502476,255,8355839,204,6710988,152,5000344,127,4145023,76,2500172,4129023,10452991,3342540,8349388,2490520,6245528,2031743,5193599,1245260,3089996,8323327,12550143,6684876,10053324,4980888,7490712,4128895,6242175,2490444,3745356,12517631,14647295,10027212,11691724,7471256,8735896,6226047,7290751,3735628,4335180,16711935,16744447,13369548,13395660,9961624,9981080,8323199,8339327,4980812,4990540,16711871,16744415,13369497,13395634,9961586,9981061,8323167,8339311,4980793,4990530,16711807,16744383,13369446,13395609,9961548,9981042,8323135,8339295,4980774,4990521,16711743,16744351,13369395,13395583,9961510,9981023,8323103,8339279,4980755,4990511,3355443,5987163,8684676,11382189,14079702,16777215];function ar(e){return aa[e]}function at(e){let a={};e.rewind();let r=e.next(),t=r.code;if(a.x=r.value,(r=e.next()).code!==t+10)throw Error("Expected code for point value to be 20 but got "+r.code+".");return(a.y=r.value,(r=e.next()).code!==t+20)?e.rewind():a.z=r.value,a}let an=Symbol();function ao(e,a){return(r,t,n)=>{let s=e.reduce((e,a)=>{a.pushContext&&e.push({});let r=e[e.length-1];for(let e of"number"==typeof a.code?[a.code]:a.code){let t=r[e]??(r[e]=[]);a.isMultiple&&t.length,t.push(a)}return e},[{}]),i=!1,c=s.length-1;for(;!o(r,0,"EOF");){let e=function(e,a,r){return e.find((e,t)=>t>=r&&e[a]?.length)}(s,r.code,c),a=e?.[r.code].at(-1);if(!e||!a){t.rewind();break}a.isMultiple||e[r.code].pop();let{name:o,parser:d,isMultiple:l,isReducible:u}=a,p=d?.(r,t,n);if(p===an){t.rewind();break}if(o){let[e,a]=function(e,a){let r=a.split(".");if(!r.length)throw Error("[parserGenerator::getObjectByPath] Invalid empty path");let t=e;for(let e=0;e<r.length-1;++e){let a=as(r[e]),n=as(r[e+1]);Object.prototype.hasOwnProperty.call(t,a)||("number"==typeof n?t[a]=[]:t[a]={}),t=t[a]}return[t,as(r.at(-1))]}(n,o);l&&!u?(Object.prototype.hasOwnProperty.call(e,a)||(e[a]=[]),e[a].push(p)):e[a]=p}a.pushContext&&(c-=1),i=!0,r=t.next()}return a&&Object.setPrototypeOf(n,a),i}}function as(e){let a=Number.parseInt(e);return Number.isNaN(a)?e:a}function ai({value:e}){return e}function ac(e,a){return at(a)}function ad({value:e}){return!!e}let al=[{code:1001,name:"xdata",parser:au}];function au(e,a){if(!o(e,1001))throw Error("XData must starts with code 1001");let r={appName:e.value,value:[]};e=a.next();let t=[r.value];for(;!o(e,0,"EOF")&&e.code>=1e3;){let r=t.at(-1);switch(e.code){case 1002:"{"===e.value?t.push([]):(t.pop(),t.at(-1)?.push(r));break;case 1e3:case 1004:case 1040:case 1070:case 1071:r.push({type:ap(e.code),value:e.value});break;case 1003:r.push({name:"layer",type:ap(e.code),value:e.value});break;case 1005:r.push({name:"handle",type:ap(e.code),value:e.value});break;case 1010:r.push({type:ap(e.code),value:at(a)});break;case 1011:r.push({name:"worldSpacePosition",type:ap(e.code),value:at(a)});break;case 1012:r.push({name:"worldSpaceDisplacement",type:ap(e.code),value:at(a)});break;case 1013:r.push({name:"worldSpaceDirection",type:ap(e.code),value:at(a)});break;case 1041:r.push({name:"distance",type:ap(e.code),value:e.value});break;case 1042:r.push({name:"scale",type:ap(e.code),value:e.value})}e=a.next()}return a.rewind(),r}function ap(e){switch(e){case 1e3:case 1003:case 1005:return"string";case 1004:return"hex";case 1040:case 1041:case 1042:return"real";case 1070:return"integer";case 1071:return"long";case 1010:case 1011:case 1012:case 1013:return"point";default:return""}}function am(e){return a=>{let r={};for(let t=0;t<a.length;t+=2){let n=e.find(({code:e})=>e===a[t].value);n&&(r[n.name]=a[t+1]?.value)}return r}}function aE({appName:e="ACAD",catcher:a,escaper:r}){return function*(t){if(t?.appName!==e)return;let n=!1,o=-1;for(let[e,s]of t.value.entries())if(n){if(yield s,r?.(s,e-o))return}else a(s)&&(n=!0,o=e)}}(i=eH||(eH={}))[i.CAST_AND_RECEIVE=0]="CAST_AND_RECEIVE",i[i.CAST=1]="CAST",i[i.RECEIVE=2]="RECEIVE",i[i.IGNORE=3]="IGNORE";let aI=[...al,{code:284,name:"shadowMode",parser:ai},{code:390,name:"plotStyleHardId",parser:ai},{code:440,name:"transparency",parser:ai},{code:430,name:"colorName",parser:ai},{code:420,name:"color",parser:ai},{code:310,name:"proxyEntity",parser:ai},{code:92,name:"proxyByte",parser:ai},{code:60,name:"isVisible",parser:ad},{code:48,name:"lineTypeScale",parser:ai},{code:370,name:"lineweight",parser:ai},{code:62,name:"colorIndex",parser(e,a,r){let t=e.value;return r.color=ar(Math.abs(t)),t}},{code:347,name:"materialObjectHardId",parser:ai},{code:6,name:"lineType",parser:ai},{code:8,name:"layer",parser:ai},{code:410,name:"layoutTabName",parser:ai},{code:67,name:"isInPaperSpace",parser:ad},{code:100},{code:330,name:"ownerBlockRecordSoftId",parser:ai},{code:102,parser:s},{code:102,parser:s},{code:102,parser:s},{code:5,name:"handle",parser:ai}],ah=0;function af(e){if(!e)throw TypeError("entity cannot be undefined or null");e.handle||(e.handle=ah++)}function ab(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}let aT={extrusionDirection:{x:0,y:0,z:1}},aD=[{code:210,name:"extrusionDirection",parser:ac},{code:51,name:"endAngle",parser:ai},{code:50,name:"startAngle",parser:ai},{code:100,name:"subclassMarker",parser:ai},{code:40,name:"radius",parser:ai},{code:10,name:"center",parser:ac},{code:39,name:"thickness",parser:ai},{code:100},...aI];class aO{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){ab(this,"parser",ao(aD,aT))}}function ag(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}ab(aO,"ForEntityName","ARC"),(c=eG||(eG={}))[c.NONE=0]="NONE",c[c.INVISIBLE=1]="INVISIBLE",c[c.CONSTANT=2]="CONSTANT",c[c.VERIFICATION_REQUIRED=4]="VERIFICATION_REQUIRED",c[c.PRESET=8]="PRESET",(d=eU||(eU={}))[d.MULTILINE=2]="MULTILINE",d[d.CONSTANT_MULTILINE=4]="CONSTANT_MULTILINE",(l=eW||(eW={}))[l.NONE=0]="NONE",l[l.MIRRORED_X=2]="MIRRORED_X",l[l.MIRRORED_Y=4]="MIRRORED_Y",(u=eY||(eY={}))[u.LEFT=0]="LEFT",u[u.CENTER=1]="CENTER",u[u.RIGHT=2]="RIGHT",u[u.ALIGNED=3]="ALIGNED",u[u.MIDDLE=4]="MIDDLE",u[u.FIT=5]="FIT",(p=ej||(ej={}))[p.BASELINE=0]="BASELINE",p[p.BOTTOM=1]="BOTTOM",p[p.MIDDLE=2]="MIDDLE",p[p.TOP=3]="TOP";let aN={thickness:0,rotation:0,xScale:1,obliqueAngle:0,styleName:"STANDARD",generationFlag:0,halign:eY.LEFT,valign:ej.BASELINE,extrusionDirection:{x:0,y:0,z:1}},aS=[{code:73,name:"valign",parser:ai},{code:100},{code:210,name:"extrusionDirection",parser:ac},{code:11,name:"endPoint",parser:ac},{code:72,name:"valign",parser:ai},{code:72,name:"halign",parser:ai},{code:71,name:"generationFlag",parser:ai},{code:7,name:"styleName",parser:ai},{code:51,name:"obliqueAngle",parser:ai},{code:41,name:"xScale",parser:ai},{code:50,name:"rotation",parser:ai},{code:1,name:"text",parser:ai},{code:40,name:"textHeight",parser:ai},{code:10,name:"startPoint",parser:ac},{code:39,name:"thickness",parser:ai},{code:100,name:"subclassMarker",parser:ai},...aI];class a_{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){ag(this,"parser",ao(aS,aN))}}function aL(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}ag(a_,"ForEntityName","TEXT");let aA={...aN},ay=[{code:2},{code:40,name:"annotationScale",parser:ai},{code:10,name:"alignmentPoint",parser:ac},{code:340,name:"secondaryAttributesHardIds",isMultiple:!0,parser:ai},{code:70,name:"numberOfSecondaryAttributes",parser:ai},{code:70,name:"isReallyLocked",parser:ad},{code:70,name:"mtextFlag",parser:ai},{code:280,name:"isDuplicatedRecord",parser:ad},{code:100},{code:280,name:"isLocked",parser:ad},{code:74,name:"valign",parser:ai},{code:73},{code:70,name:"attributeFlag",parser:ai},{code:2,name:"tag",parser:ai},{code:3,name:"prompt",parser:ai},{code:280},{code:100,name:"subclassMarker",parser:ai},...aS.slice(2)];class aC{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){aL(this,"parser",ao(ay,aA))}}function av(e,a){let r={};for(let t of e){let e=a(t);null!=e&&(r[e]??(r[e]=[]),r[e].push(t))}return r}function*aP(e,a=1/0,r=1){for(let t=e;t!==a;t+=r)yield t}function aM(e){return{x:e.x??0,y:e.y??0,z:e.z??0}}function aR(e,a,r){if(o(a,102))return s(a,r,e),!0;switch(a.code){case 0:e.type=a.value;break;case 5:e.handle=a.value;break;case 330:e.ownerBlockRecordSoftId=a.value;break;case 67:e.isInPaperSpace=!!a.value;break;case 8:e.layer=a.value;break;case 6:e.lineType=a.value;break;case 347:e.materialObjectHardId=a.value;break;case 62:e.colorIndex=a.value,e.color=ar(Math.abs(a.value));break;case 370:e.lineweight=a.value;break;case 48:e.lineTypeScale=a.value;break;case 60:e.isVisible=!!a.value;break;case 92:e.proxyByte=a.value;break;case 310:e.proxyEntity=a.value;break;case 100:break;case 420:e.color=a.value;break;case 430:e.transparency=a.value;break;case 390:e.plotStyleHardId=a.value;break;case 284:e.shadowMode=a.value;break;case 1001:e.xdata=au(a,r);break;default:return!1}return!0}function ax(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}aL(aC,"ForEntityName","ATTDEF"),(m=eX||(eX={}))[m.INVISIBLE=1]="INVISIBLE",m[m.CONSTANT=2]="CONSTANT",m[m.REQUIRE_VERIFICATION=4]="REQUIRE_VERIFICATION",m[m.PRESET=8]="PRESET",(E=ez||(ez={}))[E.LEFT_TO_RIGHT=1]="LEFT_TO_RIGHT",E[E.TOP_TO_BOTTOM=3]="TOP_TO_BOTTOM",E[E.BY_STYLE=5]="BY_STYLE";let ak={textStyle:"STANDARD",extrusionDirection:{x:0,y:0,z:1},rotation:0},aF=[{code:46,name:"annotationHeight",parser:ai},{code:101,parser(e,a){!function(e){e.rewind();let a=e.next();if(101!==a.code)throw Error("Bad call for skipEmbeddedObject()");do a=e.next();while(0!==a.code);e.rewind()}(a)}},{code:50,name:"columnHeight",parser:ai},{code:49,name:"columnGutter",parser:ai},{code:48,name:"columnWidth",parser:ai},{code:79,name:"columnAutoHeight",parser:ai},{code:78,name:"columnFlowReversed",parser:ai},{code:76,name:"columnCount",parser:ai},{code:75,name:"columnType",parser:ai},{code:441,name:"backgroundFillTransparency",parser:ai},{code:63,name:"backgroundFillColor",parser:ai},{code:45,name:"fillBoxScale",parser:ai},{code:[...aP(430,440)],name:"backgroundColor",parser:ai},{code:[...aP(420,430)],name:"backgroundColor",parser:ai},{code:90,name:"backgroundFill",parser:ai},{code:44,name:"lineSpacing",parser:ai},{code:73,name:"lineSpacingStyle",parser:ai},{code:50,name:"rotation",parser:ai},{code:43},{code:42},{code:11,name:"direction",parser:ac},{code:210,name:"extrusionDirection",parser:ac},{code:7,name:"styleName",parser:ai},{code:3,name:"text",parser:(e,a,r)=>(r._code3text=(r._code3text??"")+e.value,r._code3text+(r._code1text??"")),isMultiple:!0,isReducible:!0},{code:1,name:"text",parser:(e,a,r)=>(r._code1text=e.value,(r._code3text??"")+r._code1text)},{code:72,name:"drawingDirection",parser:ai},{code:71,name:"attachmentPoint",parser:ai},{code:41,name:"width",parser:ai},{code:40,name:"height",parser:ai},{code:10,name:"insertionPoint",parser:ac},{code:100,name:"subclassMarker",parser:ai},...aI];class aw{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){ax(this,"parser",ao(aF,ak))}}function aV(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}ax(aw,"ForEntityName","MTEXT");let aB={thickness:0,rotation:0,scale:1,obliqueAngle:0,textStyle:"STANDARD",textGenerationFlag:0,horizontalJustification:0,verticalJustification:0,extrusionDirection:{x:0,y:0,z:1}},aH=[...aF.slice(aF.findIndex(({name:e})=>"columnType"===e),aF.findIndex(({name:e})=>"subclassMarker"===e)+1),{code:100},{code:0,parser(e){if(!o(e,0,"MTEXT"))return an}},{code:2,name:"definitionTag",parser:ai},{code:40,name:"annotationScale",parser:ai},{code:10,name:"alignmentPoint",parser:ac},{code:340,name:"secondaryAttributesHardId",parser:ai},{code:70,name:"numberOfSecondaryAttributes",parser:ai},{code:70,name:"isReallyLocked",parser:ad},{code:70,name:"mtextFlag",parser:ai},{code:280,name:"isDuplicatedEntriesKeep",parser:ad},{code:100},{code:280,name:"lockPositionFlag",parser:ad},{code:210,name:"extrusionDirection",parser:ac},{code:11,name:"alignmentPoint",parser:ac},{code:74,name:"verticalJustification",parser:ai},{code:72,name:"horizontalJustification",parser:ai},{code:71,name:"textGenerationFlag",parser:ai},{code:7,name:"textStyle",parser:ai},{code:51,name:"obliqueAngle",parser:ai},{code:41,name:"scale",parser:ai},{code:50,name:"rotation",parser:ai},{code:73},{code:70,name:"attributeFlag",parser:ai},{code:2,name:"tag",parser:ai},{code:280},{code:100,name:"subclassMarker",parser:ai},{code:1,name:"text",parser:ai},{code:40,name:"textHeight",parser:ai},{code:10,name:"startPoint",parser:ac},{code:39,name:"thickness",parser:ai},{code:100},...aI];class aG{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){aV(this,"parser",ao(aH,aB))}}function aU(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}aV(aG,"ForEntityName","ATTRIB");let aW={thickness:0,extrusionDirection:{x:0,y:0,z:1}},aY=[{code:210,name:"extrusionDirection",parser:ac},{code:40,name:"radius",parser:ai},{code:10,name:"center",parser:ac},{code:39,name:"thickness",parser:ai},{code:100,name:"subclassMarker",parser:ai},...aI];class aj{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){aU(this,"parser",ao(aY,aW))}}aU(aj,"ForEntityName","CIRCLE");class aX{parseEntity(e,a){let r={};for(;!o(a,0,"EOF");){if(0===a.code){e.rewind();break}!function(e,a,r){switch(a.code){case 100:e.subclassMarker=a.value;break;case 280:e.version=a.value;break;case 2:e.name=a.value;break;case 10:e.definitionPoint=at(r);break;case 11:e.textPoint=at(r);break;case 12:e.insertionPoint=at(r);break;case 13:e.subDefinitionPoint1=at(r);break;case 14:e.subDefinitionPoint2=at(r);break;case 15:e.centerPoint=at(r);break;case 16:e.arcPoint=at(r);break;case 70:e.dimensionType=a.value;break;case 71:e.attachmentPoint=a.value;break;case 72:e.textLineSpacingStyle=a.value;break;case 40:e.leaderLength=a.value;break;case 41:e.textLineSpacingFactor=a.value;break;case 42:e.measurement=a.value;break;case 1:e.text=a.value;break;case 50:e.rotationAngle=a.value;break;case 52:e.obliqueAngle=a.value;break;case 53:e.textRotation=a.value;break;case 51:e.ocsRotation=a.value;break;case 210:e.extrusionDirection=at(r);break;case 3:e.styleName=a.value;break;default:aR(e,a,r)}}(r,a,e),a=e.next()}return r}}function az(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}h="DIMENSION",(I="ForEntityName")in aX?Object.defineProperty(aX,I,{value:h,enumerable:!0,configurable:!0,writable:!0}):aX[I]=h;let aK={extrusionDirection:{x:0,y:0,z:1}},aZ=[{code:42,name:"endAngle",parser:ai},{code:41,name:"startAngle",parser:ai},{code:40,name:"axisRatio",parser:ai},{code:210,name:"extrusionDirection",parser:ac},{code:11,name:"majorAxisEndPoint",parser:ac},{code:10,name:"center",parser:ac},{code:100,name:"subclassMarker",parser:ai},...aI];class aJ{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){az(this,"parser",ao(aZ,aK))}}function a$(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}az(aJ,"ForEntityName","ELLIPSE"),(f=eK||(eK={}))[f.First=1]="First",f[f.Second=2]="Second",f[f.Third=4]="Third",f[f.Fourth=8]="Fourth";let aq=[{code:13,name:"vertices.3",parser:ac},{code:12,name:"vertices.2",parser:ac},{code:11,name:"vertices.1",parser:ac},{code:10,name:"vertices.0",parser:ac},{code:100,name:"subclassMarker",parser:ai},...aI];class aQ{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){a$(this,"parser",ao(aq))}}function a0(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}a$(aQ,"ForEntityName","3DFACE"),(b=eZ||(eZ={}))[b.ShowImage=1]="ShowImage",b[b.ShowImageWhenNotAlignedWithScreen=2]="ShowImageWhenNotAlignedWithScreen",b[b.UseClippingBoundary=4]="UseClippingBoundary",b[b.TransparencyIsOn=8]="TransparencyIsOn",(T=eJ||(eJ={}))[T.Rectangular=1]="Rectangular",T[T.Polygonal=2]="Polygonal",(D=e$||(e$={}))[D.Outside=0]="Outside",D[D.Inside=1]="Inside";let a1={brightness:50,contrast:50,fade:0,clippingBoundaryPath:[]},a4=[{code:290,name:"clipMode",parser:ai},{code:14,name:"clippingBoundaryPath",isMultiple:!0,parser:ac},{code:91,name:"countBoundaryPoints",parser:ai},{code:71,name:"clippingBoundaryType",parser:ai},{code:360,name:"imageDefReactorHandle",parser:ai},{code:283,name:"fade",parser:ai},{code:282,name:"contrast",parser:ai},{code:281,name:"brightness",parser:ai},{code:280,name:"isClipped",parser:ad},{code:70,name:"flags",parser:ai},{code:340,name:"imageDefHandle",parser:ai},{code:13,name:"imageSize",parser:ac},{code:12,name:"vPixel",parser:ac},{code:11,name:"uPixel",parser:ac},{code:10,name:"position",parser:ac},{code:90,name:"version",parser:ai},{code:100,name:"subclassMarker",parser:ai},...aI];class a2{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){a0(this,"parser",ao(a4,a1))}}function a3(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}a0(a2,"ForEntityName","IMAGE");let a7={xScale:1,yScale:1,zScale:1,rotation:0,columnCount:0,rowCount:0,columnSpacing:0,rowSpacing:0,extrusionDirection:{x:0,y:0,z:1}},a5=[{code:210,name:"extrusionDirection",parser:ac},{code:45,name:"rowSpacing",parser:ai},{code:44,name:"columnSpacing",parser:ai},{code:71,name:"rowCount",parser:ai},{code:70,name:"columnCount",parser:ai},{code:50,name:"rotation",parser:ai},{code:43,name:"zScale",parser:ai},{code:42,name:"yScale",parser:ai},{code:41,name:"xScale",parser:ai},{code:10,name:"insertionPoint",parser:ac},{code:2,name:"name",parser:ai},{code:66,name:"isVariableAttributes",parser:ad},{code:100,name:"subclassMarker",parser:ai},...aI];class a6{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){a3(this,"parser",ao(a5,a7))}}function a9(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}a3(a6,"ForEntityName","INSERT");let a8={isArrowheadEnabled:!0},re=[{code:213,name:"offsetFromAnnotation",parser:ac},{code:212,name:"offsetFromBlock",parser:ac},{code:211,name:"horizontalDirection",parser:ac},{code:210,name:"normal",parser:ac},{code:340,name:"associatedAnnotation",parser:ai},{code:77,name:"byBlockColor",parser:ai},{code:10,name:"vertices",parser:ac,isMultiple:!0},{code:76,name:"numberOfVertices",parser:ai},{code:41,name:"textWidth",parser:ai},{code:40,name:"textHeight",parser:ai},{code:75,name:"isHooklineExists",parser:ad},{code:74,name:"isHooklineSameDirection",parser:ad},{code:73,name:"leaderCreationFlag",parser:ai},{code:72,name:"isSpline",parser:ad},{code:71,name:"isArrowheadEnabled",parser:ad},{code:3,name:"styleName",parser:ai},{code:100,name:"subclassMarker",parser:ai},...aI];class ra{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){a9(this,"parser",ao(re,a8))}}function rr(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}a9(ra,"ForEntityName","LEADER"),(O=eq||(eq={}))[O.TextAnnotation=0]="TextAnnotation",O[O.ToleranceAnnotation=1]="ToleranceAnnotation",O[O.BlockReferenceAnnotation=2]="BlockReferenceAnnotation",O[O.NoAnnotation=3]="NoAnnotation";let rt={thickness:0,extrusionDirection:{x:0,y:0,z:1}},rn=[{code:210,name:"extrusionDirection",parser:ac},{code:11,name:"endPoint",parser:ac},{code:10,name:"startPoint",parser:ac},{code:39,name:"thickness",parser:ai},{code:100,name:"subclassMarker",parser:ai},...aI];class ro{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){rr(this,"parser",ao(rn,rt))}}rr(ro,"ForEntityName","LINE"),(g=eQ||(eQ={}))[g.IS_CLOSED=1]="IS_CLOSED",g[g.PLINE_GEN=128]="PLINE_GEN";let rs={flag:0,elevation:0,thickness:0,extrusionDirection:{x:0,y:0,z:1},vertices:[]},ri={bulge:0},rc=[{code:42,name:"bulge",parser:ai},{code:41,name:"endWidth",parser:ai},{code:40,name:"startWidth",parser:ai},{code:91,name:"id",parser:ai},{code:20,name:"y",parser:ai},{code:10,name:"x",parser:ai}],rd=[{code:210,name:"extrusionDirection",parser:ac},{code:10,name:"vertices",isMultiple:!0,parser(e,a){let r={};return ao(rc,ri)(e,a,r),r}},{code:39,name:"thickness",parser:ai},{code:38,name:"elevation",parser:ai},{code:43,name:"constantWidth",parser:ai},{code:70,name:"flag",parser:ai},{code:90,name:"numberOfVertices",parser:ai},{code:100,name:"subclassMarker",parser:ai},...aI];class rl{parseEntity(e,a){let r={};return ao(rd,rs)(a,e,r),r}}function ru(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}S="LWPOLYLINE",(N="ForEntityName")in rl?Object.defineProperty(rl,N,{value:S,enumerable:!0,configurable:!0,writable:!0}):rl[N]=S;let rp={thickness:0,extrusionDirection:{x:0,y:0,z:1},angle:0},rm=[{code:50,name:"angle",parser:ai},{code:210,name:"extrusionDirection",parser:ac},{code:39,name:"thickness",parser:ai},{code:10,name:"position",parser:ac},{code:100,name:"subclassMarker",parser:ai},...aI];class rE{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){ru(this,"parser",ao(rm,rp))}}function rI(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}ru(rE,"ForEntityName","POINT"),(_=e0||(e0={}))[_.CLOSED_POLYLINE=1]="CLOSED_POLYLINE",_[_.CURVE_FIT=2]="CURVE_FIT",_[_.SPLINE_FIT=4]="SPLINE_FIT",_[_.POLYLINE_3D=8]="POLYLINE_3D",_[_.POLYGON_3D=16]="POLYGON_3D",_[_.CLOSED_POLYGON=32]="CLOSED_POLYGON",_[_.POLYFACE=64]="POLYFACE",_[_.CONTINUOUS=128]="CONTINUOUS",(L=e1||(e1={}))[L.NONE=0]="NONE",L[L.QUADRATIC=5]="QUADRATIC",L[L.CUBIC=6]="CUBIC",L[L.BEZIER=8]="BEZIER",(A=e4||(e4={}))[A.CREATED_BY_CURVE_FIT=1]="CREATED_BY_CURVE_FIT",A[A.TANGENT_DEFINED=2]="TANGENT_DEFINED",A[A.NOT_USED=4]="NOT_USED",A[A.CREATED_BY_SPLINE_FIT=8]="CREATED_BY_SPLINE_FIT",A[A.SPLINE_CONTROL_POINT=16]="SPLINE_CONTROL_POINT",A[A.FOR_POLYLINE=32]="FOR_POLYLINE",A[A.FOR_POLYGON=64]="FOR_POLYGON",A[A.POLYFACE=128]="POLYFACE";let rh={startWidth:0,endWidth:0,bulge:0},rf=[{code:91,name:"id",parser:ai},{code:[...aP(71,75)],name:"faces",isMultiple:!0,parser:ai},{code:50,name:"tangentDirection",parser:ai},{code:70,name:"flag",parser:ai},{code:42,name:"bulge",parser:ai},{code:41,name:"endWidth",parser:ai},{code:40,name:"startWidth",parser:ai},{code:30,name:"z",parser:ai},{code:20,name:"y",parser:ai},{code:10,name:"x",parser:ai},{code:100,name:"subclassMarker",parser:ai},{code:100},...aI];class rb{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){rI(this,"parser",ao(rf,rh))}}function rT(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}rI(rb,"ForEntityName","VERTEX");let rD={thickness:0,flag:0,startWidth:0,endWidth:0,meshMVertexCount:0,meshNVertexCount:0,surfaceMDensity:0,surfaceNDensity:0,smoothType:0,extrusionDirection:{x:0,y:0,z:1},vertices:[]},rO=[{code:0,name:"vertices",isMultiple:!0,parser:(e,a)=>o(e,0,"VERTEX")?(e=a.next(),new rb().parseEntity(a,e)):an},{code:210,name:"extrusionDirection",parser:ac},{code:75,name:"smoothType",parser:ai},{code:74,name:"surfaceNDensity",parser:ai},{code:73,name:"surfaceMDensity",parser:ai},{code:72,name:"meshNVertexCount",parser:ai},{code:71,name:"meshMVertexCount",parser:ai},{code:41,name:"endWidth",parser:ai},{code:40,name:"startWidth",parser:ai},{code:70,name:"flag",parser:ai},{code:39,name:"thickness",parser:ai},{code:30,name:"elevation",parser:ai},{code:20},{code:10},{code:66},{code:100,name:"subclassMarker",parser:ai},...aI];class rg{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){rT(this,"parser",ao(rO,rD))}}function rN(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}rT(rg,"ForEntityName","POLYLINE");let rS=[{code:11,name:"direction",parser:ac},{code:10,name:"position",parser:ac},{code:100,name:"subclassMarker",parser:ai},...aI];class r_{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){rN(this,"parser",ao(rS))}}function rL(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}rN(r_,"ForEntityName","RAY");let rA={vertices:[],backLineVertices:[]},ry=[{code:360,name:"geometrySettingHardId",parser:ai},{code:12,name:"backLineVertices",isMultiple:!0,parser:ac},{code:93,name:"numberOfBackLineVertices",parser:ai},{code:11,name:"vertices",isMultiple:!0,parser:ac},{code:92,name:"verticesCount",parser:ai},{code:[63,411],name:"indicatorColor",parser:ai},{code:70,name:"indicatorTransparency",parser:ai},{code:41,name:"bottomHeight",parser:ai},{code:40,name:"topHeight",parser:ai},{code:10,name:"verticalDirection",parser:ac},{code:1,name:"name",parser:ai},{code:91,name:"flag",parser:ai},{code:90,name:"state",parser:ai},{code:100,name:"subclassMarker",parser:ai},...aI];class rC{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){rL(this,"parser",ao(ry,rA))}}function rv(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}rL(rC,"ForEntityName","SECTION");let rP={points:[],thickness:0,extrusionDirection:{x:0,y:0,z:1}},rM=[{code:210,name:"extrusionDirection",parser:ac},{code:39,name:"thickness",parser:ai},{code:[...aP(10,14)],name:"points",isMultiple:!0,parser:ac},{code:100,name:"subclassMarker",parser:ai},...aI];class rR{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){rv(this,"parser",ao(rM,rP))}}function rx(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}rv(rR,"ForEntityName","SOLID"),(y=e2||(e2={}))[y.NONE=0]="NONE",y[y.CLOSED=1]="CLOSED",y[y.PERIODIC=2]="PERIODIC",y[y.RATIONAL=4]="RATIONAL",y[y.PLANAR=8]="PLANAR",y[y.LINEAR=16]="LINEAR";let rk={knotTolerance:1e-6,controlTolerance:1e-6,fitTolerance:1e-9,knotValues:[],controlPoints:[],fitPoints:[]},rF=[{code:11,name:"fitPoints",isMultiple:!0,parser:ac},{code:10,name:"controlPoints",isMultiple:!0,parser:ac},{code:41,name:"weights",isMultiple:!0,parser:ai},{code:40,name:"knots",isMultiple:!0,parser:ai},{code:13,name:"endTangent",parser:ac},{code:12,name:"startTangent",parser:ac},{code:44,name:"fitTolerance",parser:ai},{code:43,name:"controlTolerance",parser:ai},{code:42,name:"knotTolerance",parser:ai},{code:74,name:"numberOfFitPoints",parser:ai},{code:73,name:"numberOfControlPoints",parser:ai},{code:72,name:"numberOfKnots",parser:ai},{code:71,name:"degree",parser:ai},{code:70,name:"flag",parser:ai},{code:210,name:"normal",parser:ac},{code:100,name:"subclassMarker",parser:ai},...aI];class rw{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){rx(this,"parser",ao(rF,rk))}}rx(rw,"ForEntityName","SPLINE");let rV=[{code:330,name:"sourceBoundaryObjects",parser:ai,isMultiple:!0},{code:97,name:"numberOfSourceBoundaryObjects",parser:ai}],rB=[{code:11,name:"end",parser:ac},{code:10,name:"start",parser:ac}],rH=[{code:73,name:"isCCW",parser:ad},{code:51,name:"endAngle",parser:ai},{code:50,name:"startAngle",parser:ai},{code:40,name:"radius",parser:ai},{code:10,name:"center",parser:ac}],rG=[{code:73,name:"isCCW",parser:ad},{code:51,name:"endAngle",parser:ai},{code:50,name:"startAngle",parser:ai},{code:40,name:"lengthOfMinorAxis",parser:ai},{code:11,name:"end",parser:ac},{code:10,name:"center",parser:ac}],rU=[{code:13,name:"endTangent",parser:ac},{code:12,name:"startTangent",parser:ac},{code:11,name:"fitDatum",isMultiple:!0,parser:ac},{code:97,name:"numberOfFitData",parser:ai},{code:10,name:"controlPoints",isMultiple:!0,parser(e,a){let r={...at(a),weight:1};return 42===(e=a.next()).code?r.weight=e.value:a.rewind(),r}},{code:40,name:"knots",isMultiple:!0,parser:ai},{code:96,name:"numberOfControlPoints",parser:ai},{code:95,name:"numberOfKnots",parser:ai},{code:74,name:"isPeriodic",parser:ad},{code:73,name:"splineFlag",parser:ai},{code:94,name:"degree",parser:ai}],rW={[ev.Line]:rB,[ev.Circular]:rH,[ev.Elliptic]:rG,[ev.Spline]:rU},rY=[...rV,{code:72,name:"edges",parser(e,a){let r={type:e.value},t=ao(rW[r.type]);if(!t)throw Error(`Invalid edge type ${r.type}`);return t(e=a.next(),a,r),r},isMultiple:!0},{code:93,name:"numberOfEdges",parser:ai}],rj=[...rV,{code:10,name:"vertices",parser(e,a){let r={...at(a),bulge:0};return 42===(e=a.next()).code?r.bulge=e.value:a.rewind(),r},isMultiple:!0},{code:93,name:"numberOfVertices",parser:ai},{code:73,name:"isClosed",parser:ad},{code:72,name:"hasBulge",parser:ad}],rX=[{code:49,name:"dashLengths",parser:ai,isMultiple:!0},{code:79,name:"numberOfDashLengths",parser:ai},{code:45,name:"offset",parser:rz},{code:43,name:"base",parser:rz},{code:53,name:"angle",parser:ai}];function rz(e,a){let r=e.code+1,t={x:e.value,y:1};return(e=a.next()).code===r?t.y=e.value:a.rewind(),t}function rK(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}let rZ={extrusionDirection:{x:0,y:0,z:1},gradientRotation:0,colorTint:0},rJ=[{code:470},{code:463},{code:462,name:"colorTint",parser:ai},{code:461,name:"gradientDefinition",parser:ai},{code:460,name:"gradientRotation",parser:ai},{code:453,name:"numberOfColors",parser:ai},{code:452,name:"gradientColorFlag",parser:ai},{code:451},{code:450,name:"gradientFlag",parser:ai},{code:10,name:"seedPoints",parser:ac,isMultiple:!0},{code:99},{code:11,name:"offsetVector",parser:ac},{code:98,name:"numberOfSeedPoints",parser:ai},{code:47,name:"pixelSize",parser:ai},{code:53,name:"definitionLines",parser:function(e,a){let r={};return ao(rX)(e,a,r),r},isMultiple:!0},{code:78,name:"numberOfDefinitionLines",parser:ai},{code:77,name:"isDouble",parser:ad},{code:73,name:"isAnnotated",parser:ad},{code:41,name:"patternScale",parser:ai},{code:52,name:"patternAngle",parser:ai},{code:76,name:"patternType",parser:ai},{code:75,name:"hatchStyle",parser:ai},{code:92,name:"boundaryPaths",parser:function(e,a){let r={boundaryPathTypeFlag:e.value},t=r.boundaryPathTypeFlag&eC.Polyline;return(e=a.next(),t)?ao(rj)(e,a,r):ao(rY)(e,a,r),r},isMultiple:!0},{code:91,name:"numberOfBoundaryPaths",parser:ai},{code:71,name:"associativity",parser:ai},{code:63,name:"patternFillColor",parser:ai},{code:70,name:"solidFill",parser:ai},{code:2,name:"patternName",parser:ai},{code:210,name:"extrusionDirection",parser:ac},{code:10,name:"elevationPoint",parser:ac},{code:100,name:"subclassMarker",parser:ai,pushContext:!0},...aI];class r${parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){rK(this,"parser",ao(rJ,rZ))}}rK(r$,"ForEntityName","HATCH");class rq{parseEntity(e,a){let r={};for(;"EOF"!==a;){if(0===a.code){e.rewind();break}!function(e,a,r){if("EOF"===r)return!1;switch(r.code){case 0:return!1;case 100:e.subclassMarker=r.value;break;case 10:e.viewportCenter=aM(at(a));break;case 40:e.width=r.value;break;case 41:e.height=r.value;break;case 68:e.status=r.value;break;case 69:e.viewportId=r.value;break;case 12:e.displayCenter=at(a);break;case 13:e.snapBase=at(a);break;case 14:e.snapSpacing=at(a);break;case 15:e.gridSpacing=at(a);break;case 16:e.viewDirection=aM(at(a));break;case 17:e.targetPoint=aM(at(a));break;case 42:e.perspectiveLensLength=r.value;break;case 43:e.frontClipZ=r.value;break;case 44:e.backClipZ=r.value;break;case 45:e.viewHeight=r.value;break;case 50:e.snapAngle=r.value;break;case 51:e.viewTwistAngle=r.value;break;case 72:e.circleZoomPercent=r.value;break;case 331:e.frozenLayerIds??(e.frozenLayerIds=[]),e.frozenLayerIds.push(r.value);break;case 90:e.statusBitFlags=r.value;break;case 340:e.clippingBoundaryId=r.value;break;case 1:e.sheetName=r.value;break;case 281:e.renderMode=r.value;break;case 71:e.ucsPerViewport=r.value;break;case 110:e.ucsOrigin=aM(at(a));break;case 111:e.ucsXAxis=aM(at(a));break;case 112:e.ucsYAxis=aM(at(a));break;case 345:e.ucsId=r.value;break;case 346:e.ucsBaseId=r.value;break;case 79:e.orthographicType=r.value;break;case 146:e.elevation=r.value;break;case 170:e.shadePlotMode=r.value;break;case 61:e.majorGridFrequency=r.value;break;case 332:e.backgroundId=r.value;break;case 333:e.shadePlotId=r.value;break;case 348:e.visualStyleId=r.value;break;case 292:e.isDefaultLighting=!!r.value;break;case 282:e.defaultLightingType=r.value;break;case 141:e.brightness=r.value;break;case 142:e.contrast=r.value;break;case 63:case 421:case 431:e.ambientLightColor=r.value;break;case 361:e.sunId=r.value;break;case 335:case 343:case 344:case 91:e.softPointer=r.value}return!0}(r,e,a)&&aR(r,a,e),a=e.next()}return r}}function rQ(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}v="VIEWPORT",(C="ForEntityName")in rq?Object.defineProperty(rq,C,{value:v,enumerable:!0,configurable:!0,writable:!0}):rq[C]=v;let r0={},r1=[{code:170,name:"multileaderType",parser:ai},{code:291,name:"doglegEnabled",parser:ad},{code:40,name:"doglegLength",parser:ai},{code:172,name:"contentType",parser:ai},{code:3,name:"textContent",parser:ai},{code:12,name:"textAnchor",parser:ac},{code:344,name:"blockHandle",parser:ai},{code:15,name:"blockPosition",parser:ac},{code:302,name:"leaderSections",parser:function(e,a,r){let t;let n={leaderLines:[]};for(;a.hasNext()&&303!==(t=a.next()).code;){switch(t.code){case 10:n.landingPoint=(t.value,at(a));break;case 11:n.doglegVector=(t.value,at(a));break;case 40:n.doglegLength=t.value;break;case 304:n.leaderLines.push(function(e,a,r){let t;let n={vertices:[]};for(;a.hasNext()&&305!==(t=a.next()).code;)10===t.code&&n.vertices.push((t.value,at(a)));return n}(0,a))}}return n},isMultiple:!0},...aI];class r4{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){rQ(this,"parser",ao(r1,r0))}}rQ(r4,"ForEntityName","MULTILEADER");let r2=Object.fromEntries([aO,aC,aG,aj,aX,aJ,aQ,a2,a6,ra,ro,rl,aw,r4,rE,rg,r_,rC,rR,rw,a_,r$,rb,rq].map(e=>[e.ForEntityName,new e]));function r3(e,a){let r=[];for(;!o(e,0,"EOF");){if(0===e.code){if("ENDBLK"===e.value||"ENDSEC"===e.value){a.rewind();break}let t=r2[e.value];if(t){let n=e.value;e=a.next();let o=t.parseEntity(a,e);o.type=n,af(o),r.push(o)}else console.warn(`Unsupported ENTITY type: ${e.value}`)}e=a.next()}return r}function r7(e,a){let r={};for(;!o(e,0,"EOF")&&!o(e,0,"ENDSEC");){if(o(e,0,"BLOCK")){let t=r5(e=a.next(),a);af(t),t.name&&(r[t.name]=t)}e=a.next()}return r}function r5(e,a){let r={};for(;!o(e,0,"EOF");){if(o(e,0,"ENDBLK")){for(e=a.next();!o(e,0,"EOF");){if(o(e,100,"AcDbBlockEnd"))return r;e=a.next()}break}switch(e.code){case 1:r.xrefPath=e.value;break;case 2:r.name=e.value;break;case 3:r.name2=e.value;break;case 5:r.handle=e.value;break;case 8:r.layer=e.value;break;case 10:r.position=at(a);break;case 67:r.paperSpace=!!e.value&&1==e.value;break;case 70:0!==e.value&&(r.type=e.value);break;case 100:break;case 330:r.ownerHandle=e.value;break;case 0:r.entities=r3(e,a)}e=a.next()}return r}function r6(e,a){let r=null,t={};for(;!o(e,0,"EOF")&&!o(e,0,"ENDSEC");)9===e.code?r=e.value:10===e.code?t[r]=at(a):t[r]=e.value,e=a.next();return t}let r9=[{code:333,name:"shadePlotId",parser:ai},{code:149,name:"imageOriginY",parser:ai},{code:148,name:"imageOriginX",parser:ai},{code:147,name:"scaleFactor",parser:ai},{code:78,name:"shadePlotCustomDPI",parser:ai},{code:77,name:"shadePlotResolution",parser:ai},{code:76,name:"shadePlotMode",parser:ai},{code:75,name:"standardScaleType",parser:ai},{code:7,name:"currentStyleSheet",parser:ai},{code:74,name:"plotType",parser:ai},{code:73,name:"plotRotation",parser:ai},{code:72,name:"paperUnit",parser:ai},{code:70,name:"layoutFlag",parser:ai},{code:143,name:"printScaleDenominator",parser:ai},{code:142,name:"printScaleNominator",parser:ai},{code:141,name:"windowAreaYMax",parser:ai},{code:140,name:"windowAreaYMin",parser:ai},{code:49,name:"windowAreaXMax",parser:ai},{code:48,name:"windowAreaXMin",parser:ai},{code:47,name:"plotOriginY",parser:ai},{code:46,name:"plotOriginX",parser:ai},{code:45,name:"paperHeight",parser:ai},{code:44,name:"paperWidth",parser:ai},{code:43,name:"marginTop",parser:ai},{code:42,name:"marginRight",parser:ai},{code:41,name:"marginBottom",parser:ai},{code:40,name:"marginLeft",parser:ai},{code:6,name:"plotViewName",parser:ai},{code:4,name:"paperSize",parser:ai},{code:2,name:"configName",parser:ai},{code:1,name:"pageSetupName",parser:ai},{code:100,name:"subclassMarker",parser:ai}];(P=e3||(e3={}))[P.INCHES=0]="INCHES",P[P.MILLIMETERS=1]="MILLIMETERS",P[P.PIXELS=2]="PIXELS",(M=e7||(e7={}))[M.LAST_SCREEN_DISPLAY=0]="LAST_SCREEN_DISPLAY",M[M.DRAWING_EXTENTS=1]="DRAWING_EXTENTS",M[M.DRAWING_LIMITS=2]="DRAWING_LIMITS",M[M.VIEW_SPECIFIED=3]="VIEW_SPECIFIED",M[M.WINDOW_SPECIFIED=4]="WINDOW_SPECIFIED",M[M.LAYOUT_INFORMATION=5]="LAYOUT_INFORMATION",(R=e5||(e5={}))[R.AS_DISPLAYED=0]="AS_DISPLAYED",R[R.WIREFRAME=1]="WIREFRAME",R[R.HIDDEN=2]="HIDDEN",R[R.RENDERED=3]="RENDERED",(x=e6||(e6={}))[x.DRAFT=0]="DRAFT",x[x.PREVIEW=1]="PREVIEW",x[x.NORMAL=2]="NORMAL",x[x.PRESENTATION=3]="PRESENTATION",x[x.MAXIMUM=4]="MAXIMUM",x[x.CUSTOM=5]="CUSTOM";let r8=[{code:333,name:"shadePlotId",parser:ai},{code:346,name:"orthographicUcsId",parser:ai},{code:345,name:"namedUcsId",parser:ai},{code:331,name:"viewportId",parser:ai},{code:330,name:"paperSpaceTableId",parser:ai},{code:76,name:"orthographicType",parser:ai},{code:17,name:"ucsYAxis",parser:ac},{code:16,name:"ucsXAxis",parser:ac},{code:13,name:"ucsOrigin",parser:ac},{code:146,name:"elevation",parser:ai},{code:15,name:"maxExtent",parser:ac},{code:14,name:"minExtent",parser:ac},{code:12,name:"insertionBase",parser:ac},{code:11,name:"maxLimit",parser:ac},{code:10,name:"minLimit",parser:ac},{code:71,name:"tabOrder",parser:ai},{code:70,name:"controlFlag",parser:ai},{code:1,name:"layoutName",parser:ai},{code:100,name:"subclassMarker",parser:ai},...r9];(k=e9||(e9={}))[k.PSLTSCALE=1]="PSLTSCALE",k[k.LIMCHECK=2]="LIMCHECK";let te=[{code:330,name:"ownerObjectId",parser:ai},{code:102},{code:360,name:"ownerDictionaryIdHard",parser:ai},{code:102},{code:102},{code:330,name:"ownerDictionaryIdSoft",parser:ai},{code:102},{code:102},{code:102},{code:5,name:"handle",parser:ai}],ta=[{code:3,name:"entries",parser:(e,a)=>{let r={name:e.value};return 350===(e=a.next()).code?r.objectId=e.value:a.rewind(),r},isMultiple:!0},{code:281,name:"recordCloneFlag",parser:ai},{code:280,name:"isHardOwned",parser:ad},{code:100,name:"subclassMarker",parser:ai}];function tr(e){return"AcDbDictionary"===e.subclassMarker}(F=e8||(e8={}))[F.NOT_APPLICABLE=0]="NOT_APPLICABLE",F[F.KEEP_EXISTING=1]="KEEP_EXISTING",F[F.USE_CLONE=2]="USE_CLONE",F[F.XREF_VALUE_NAME=3]="XREF_VALUE_NAME",F[F.VALUE_NAME=4]="VALUE_NAME",F[F.UNMANGLE_NAME=5]="UNMANGLE_NAME";let tt={LAYOUT:r8,PLOTSETTINGS:r9,DICTIONARY:ta};function tn(e,a){let r=[];for(;0!==e.code||!["EOF","ENDSEC"].includes(e.value);){let t=e.value,n=tt[t];if(0===e.code&&n?.length){let o=ao([...te,...n]),s={name:t};o(e=a.next(),a,s)?(r.push(s),e=a.peek()):e=a.next()}else e=a.next()}return{byName:av(r,({name:e})=>e),byTree:function(e){let a=Object.fromEntries(e.map(e=>[e.handle,e]));for(let r of e)(!tr(r)||"0"!==r.ownerDictionaryIdSoft)&&(r.ownerDictionaryIdSoft&&(r.ownerDictionarySoft=a[r.ownerDictionaryIdSoft]),r.ownerDictionaryIdHard&&(r.ownerDictionaryHard=a[r.ownerDictionaryIdHard]),r.ownerObjectId&&(r.ownerObject=a[r.ownerObjectId])),function(e,a){tr(e)&&e.entries&&(e.entries=Object.fromEntries(e.entries.map(({name:e,objectId:r})=>[e,a[r]])))}(r,a);return e[0]}(r)}}let to=[{name:"DIMPOST",code:3},{name:"DIMAPOST",code:4},{name:"DIMBLK_OBSOLETE",code:5},{name:"DIMBLK1_OBSOLETE",code:6},{name:"DIMBLK2_OBSOLETE",code:7},{name:"DIMSCALE",code:40,defaultValue:1},{name:"DIMASZ",code:41,defaultValue:.25},{name:"DIMEXO",code:42,defaultValue:.625,defaultValueImperial:.0625},{name:"DIMDLI",code:43,defaultValue:3.75,defaultValueImperial:.38},{name:"DIMEXE",code:44,defaultValue:2.25,defaultValueImperial:.28},{name:"DIMRND",code:45,defaultValue:0},{name:"DIMDLE",code:46,defaultValue:0},{name:"DIMTP",code:47,defaultValue:0},{name:"DIMTM",code:48,defaultValue:0},{name:"DIMTXT",code:140,defaultValue:2.5,defaultValueImperial:.28},{name:"DIMCEN",code:141,defaultValue:2.5,defaultValueImperial:.09},{name:"DIMTSZ",code:142,defaultValue:0},{name:"DIMALTF",code:143,defaultValue:25.4},{name:"DIMLFAC",code:144,defaultValue:1},{name:"DIMTVP",code:145,defaultValue:0},{name:"DIMTFAC",code:146,defaultValue:1},{name:"DIMGAP",code:147,defaultValue:.625,defaultValueImperial:.09},{name:"DIMALTRND",code:148,defaultValue:0},{name:"DIMTOL",code:71,defaultValue:0,defaultValueImperial:1},{name:"DIMLIM",code:72,defaultValue:0},{name:"DIMTIH",code:73,defaultValue:0,defaultValueImperial:1},{name:"DIMTOH",code:74,defaultValue:0,defaultValueImperial:1},{name:"DIMSE1",code:75,defaultValue:0},{name:"DIMSE2",code:76,defaultValue:0},{name:"DIMTAD",code:77,defaultValue:ef.Above,defaultValueImperial:ef.Center},{name:"DIMZIN",code:78,defaultValue:eb.Trailing,defaultValueImperial:eb.Feet},{name:"DIMAZIN",code:79,defaultValue:eT.None},{name:"DIMALT",code:170,defaultValue:0},{name:"DIMALTD",code:171,defaultValue:3,defaultValueImperial:2},{name:"DIMTOFL",code:172,defaultValue:1,defaultValueImperial:0},{name:"DIMSAH",code:173,defaultValue:0},{name:"DIMTIX",code:174,defaultValue:0},{name:"DIMSOXD",code:175,defaultValue:0},{name:"DIMCLRD",code:176,defaultValue:0},{name:"DIMCLRE",code:177,defaultValue:0},{name:"DIMCLRT",code:178,defaultValue:0},{name:"DIMADEC",code:179},{name:"DIMUNIT",code:270},{name:"DIMDEC",code:271,defaultValue:2,defaultValueImperial:4},{name:"DIMTDEC",code:272,defaultValue:2,defaultValueImperial:4},{name:"DIMALTU",code:273,defaultValue:2},{name:"DIMALTTD",code:274,defaultValue:2,defaultValueImperial:4},{name:"DIMAUNIT",code:275,defaultValue:0},{name:"DIMFRAC",code:276,defaultValue:0},{name:"DIMLUNIT",code:277,defaultValue:2},{name:"DIMDSEP",code:278,defaultValue:",",defaultValueImperial:"."},{name:"DIMJUST",code:280,defaultValue:eD.Center},{name:"DIMSD1",code:281,defaultValue:0},{name:"DIMSD2",code:282,defaultValue:0},{name:"DIMTOLJ",code:283,defaultValue:eO.Center},{name:"DIMTZIN",code:284,defaultValue:eb.Trailing,defaultValueImperial:eb.Feet},{name:"DIMALTZ",code:285,defaultValue:eb.Trailing},{name:"DIMALTTZ",code:286,defaultValue:eb.Trailing},{name:"DIMFIT",code:287},{name:"DIMUPT",code:288,defaultValue:0},{name:"DIMATFIT",code:289,defaultValue:3},{name:"DIMTXSTY",code:340},{name:"DIMLDRBLK",code:341},{name:"DIMBLK",code:342},{name:"DIMBLK1",code:343},{name:"DIMBLK2",code:344},{name:"DIMLWD",code:371,defaultValue:-2},{name:"DIMLWD",code:372,defaultValue:-2}];(w=ae||(ae={}))[w.NONE=0]="NONE",w[w.AbsoluteRotation=1]="AbsoluteRotation",w[w.TextEmbedded=2]="TextEmbedded",w[w.ShapeEmbedded=4]="ShapeEmbedded";let ts=[{code:100,name:"subclassMarker",parser:ai},{code:330,name:"ownerObjectId",parser:ai},{code:102,parser(e,a){for(;!o(e,0,"EOF")&&!o(e,102,"}");)e=a.next()}},{code:5,name:"handle",parser:ai}],ti=ao([{code:310,name:"bmpPreview",parser:ai},{code:281,name:"scalability",parser:ai},{code:280,name:"explodability",parser:ai},{code:70,name:"insertionUnits",parser:ai},{code:340,name:"layoutObjects",parser:ai},{code:2,name:"name",parser:ai},{code:100,name:"subclassMarker",parser:ai},...ts]),tc=ao([...to.map(e=>({...e,parser:ai})),{code:70,name:"standardFlag",parser:ai},{code:2,name:"name",parser:ai},{code:100,name:"subclassMarker",parser:ai},{code:105,name:"handle",parser:ai},...ts.filter(e=>5!==e.code)]),td=ao([{code:347,name:"materialObjectId",parser:ai},{code:390,name:"plotStyleNameObjectId",parser:ai},{code:370,name:"lineweight",parser:ai},{code:290,name:"isPlotting",parser:ad},{code:6,name:"lineType",parser:ai},{code:62,name:"colorIndex",parser:ai},{code:70,name:"standardFlag",parser:ai},{code:2,name:"name",parser:ai},{code:100,name:"subclassMarker",parser:ai},...ts]),tl=ao([{code:9,name:"text",parser:ai},{code:45,name:"offsetY",parser:ai},{code:44,name:"offsetX",parser:ai},{code:50,name:"rotation",parser:ai},{code:46,name:"scale",parser:ai},{code:340,name:"styleObjectId",parser:ai},{code:75,name:"shapeNumber",parser:ai},{code:74,name:"elementTypeFlag",parser:ai},{code:49,name:"elementLength",parser:ai}],{elementTypeFlag:0,elementLength:0}),tu={BLOCK_RECORD:ti,DIMSTYLE:tc,LAYER:td,LTYPE:ao([{code:49,name:"pattern",parser(e,a){let r={};return tl(e,a,r),r},isMultiple:!0},{code:40,name:"totalPatternLength",parser:ai},{code:73,name:"numberOfLineTypes",parser:ai},{code:72,parser:ai},{code:3,name:"description",parser:ai},{code:70,name:"standardFlag",parser:ai},{code:2,name:"name",parser:ai},{code:100,name:"subclassMarker",parser:ai},...ts]),STYLE:ao([{code:1e3,name:"extendedFont",parser:ai},{code:1001},{code:4,name:"bigFont",parser:ai},{code:3,name:"font",parser:ai},{code:42,name:"lastHeight",parser:ai},{code:71,name:"textGenerationFlag",parser:ai},{code:50,name:"obliqueAngle",parser:ai},{code:41,name:"widthFactor",parser:ai},{code:40,name:"fixedTextHeight",parser:ai},{code:70,name:"standardFlag",parser:ai},{code:2,name:"name",parser:ai},{code:100,name:"subclassMarker",parser:ai},...ts]),VPORT:ao([{code:[63,421,431],name:"ambientColor",parser:ai},{code:142,name:"contrast",parser:ai},{code:141,name:"brightness",parser:ai},{code:282,name:"defaultLightingType",parser:ai},{code:292,name:"isDefaultLightingOn",parser:ad},{code:348,name:"visualStyleObjectId",parser:ai},{code:333,name:"shadePlotObjectId",parser:ai},{code:332,name:"backgroundObjectId",parser:ai},{code:61,name:"majorGridLines",parser:ai},{code:170,name:"shadePlotSetting",parser:ai},{code:146,name:"elevation",parser:ai},{code:79,name:"orthographicType",parser:ai},{code:112,name:"ucsYAxis",parser:ac},{code:111,name:"ucsXAxis",parser:ac},{code:110,name:"ucsOrigin",parser:ac},{code:74,name:"ucsIconSetting",parser:ai},{code:71,name:"viewMode",parser:ai},{code:281,name:"renderMode",parser:ai},{code:1,name:"styleSheet",parser:ai},{code:[331,441],name:"frozenLayers",parser:ai,isMultiple:!0},{code:72,name:"circleSides",parser:ai},{code:51,name:"viewTwistAngle",parser:ai},{code:50,name:"snapRotationAngle",parser:ai},{code:45,name:"viewHeight",parser:ai},{code:44,name:"backClippingPlane",parser:ai},{code:43,name:"frontClippingPlane",parser:ai},{code:42,name:"lensLength",parser:ai},{code:17,name:"viewTarget",parser:ac},{code:16,name:"viewDirectionFromTarget",parser:ac},{code:15,name:"gridSpacing",parser:ac},{code:14,name:"snapSpacing",parser:ac},{code:13,name:"snapBasePoint",parser:ac},{code:12,name:"center",parser:ac},{code:11,name:"upperRightCorner",parser:ac},{code:10,name:"lowerLeftCorner",parser:ac},{code:70,name:"standardFlag",parser:ai},{code:2,name:"name",parser:ai},{code:100,name:"subclassMarker",parser:ai},...ts])},tp=ao([{code:70,name:"maxNumberOfEntries",parser:ai},{code:100,name:"subclassMarker",parser:ai},{code:330,name:"ownerObjectId",parser:ai},{code:102},{code:360,isMultiple:!0},{code:102},{code:5,name:"handle",parser:ai},{code:2,name:"name",parser:ai}]);function tm(e,a){let r={};for(;!o(e,0,"EOF")&&!o(e,0,"ENDSEC");){if(o(e,0,"TABLE")){e=a.next();let t={entries:[]};tp(e,a,t),r[t.name]=t}if(o(e,0)&&!o(e,0,"ENDTAB")){let t=e.value;e=a.next();let n=tu[t];if(!n){a.debug&&console.warn(`parseTable: Invalid table name '${t}'`),e=a.next();continue}let o={};n(e,a,o),r[t]?.entries.push(o)}e=a.next()}return r}function tE(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}class tI{next(){if(!this.hasNext())return this._eof?this.debug&&console.warn("Cannot call 'next' after EOF group has been read"):this.debug&&console.warn("Unexpected end of input: EOF group not read before end of file. Ended on code "+this._data[this._pointer]),{code:0,value:"EOF"};let e=parseInt(this._data[this._pointer++],10),a=th(e,this._data[this._pointer++]),r={code:e,value:a};return o(r,0,"EOF")&&(this._eof=!0),this.lastReadGroup=r,r}peek(){if(!this.hasNext()){if(this._eof)throw Error("Cannot call 'next' after EOF group has been read");throw Error("Unexpected end of input: EOF group not read before end of file. Ended on code "+this._data[this._pointer])}let e={code:parseInt(this._data[this._pointer]),value:0};return e.value=th(e.code,this._data[this._pointer+1]),e}rewind(e){e=e||1,this._pointer=this._pointer-2*e}hasNext(){return!this._eof&&!(this._pointer>this._data.length-2)}isEOF(){return this._eof}constructor(e,a){tE(this,"_pointer",void 0),tE(this,"_data",void 0),tE(this,"_eof",void 0),tE(this,"debug",!0),tE(this,"lastReadGroup",{code:0,value:0}),this._pointer=0,this._data=e,this._eof=!1,this.debug=a??!0}}function th(e,a){return e<=9?a:e>=10&&e<=59?parseFloat(a.trim()):e>=60&&e<=99?parseInt(a.trim()):e>=100&&e<=109?a:e>=110&&e<=149?parseFloat(a.trim()):e>=160&&e<=179?parseInt(a.trim()):e>=210&&e<=239?parseFloat(a.trim()):e>=270&&e<=289?parseInt(a.trim()):e>=290&&e<=299?function(e){if("0"===e)return!1;if("1"===e)return!0;throw TypeError("String '"+e+"' cannot be cast to Boolean type")}(a.trim()):e>=300&&e<=369?a:e>=370&&e<=389?parseInt(a.trim()):e>=390&&e<=399?a:e>=400&&e<=409?parseInt(a.trim()):e>=410&&e<=419?a:e>=420&&e<=429?parseInt(a.trim()):e>=430&&e<=439?a:e>=440&&e<=459?parseInt(a.trim()):e>=460&&e<=469?parseFloat(a.trim()):e>=470&&e<=481||999===e||e>=1e3&&e<=1009?a:e>=1010&&e<=1059?parseFloat(a.trim()):e>=1060&&e<=1071?parseInt(a.trim()):(console.log("WARNING: Group code does not have a defined type: %j",{code:e,value:a}),a)}function tf(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}class tb{parseStart(e){this.startCode=e.code}setPoint(e){if(this.code=e.code,this.value=e.value,this.startCode===this.code&&(this.x=this.value),this.startCode===this.code+10)this.y=this.value;else{let e={x:this.x??0,y:this.y??0,z:this.z??0};return this.reset(),e}if(this.startCode===this.code+20)this.z=this.value;else{let e={x:this.x??0,y:this.y??0,z:this.z??0};return this.reset(),e}}reset(){this.x=void 0,this.y=void 0,this.z=void 0}constructor(){tf(this,"point",{}),tf(this,"startCode",0),tf(this,"code",0),tf(this,"value",0),tf(this,"x",void 0),tf(this,"y",void 0),tf(this,"z",void 0)}}function tT(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}class tD{constructor(){tT(this,"encoding","utf-8"),tT(this,"encodingFailureFatal",!1)}}class tO extends Error{constructor(e,a,r){let t=`[Line ${a}]: ${e}`;r?.cause&&(t+=`
1
+ (Y=ef||(ef={}))[Y.None=0]="None",Y[Y.Anonymous=1]="Anonymous",Y[Y.NonConstant=2]="NonConstant",Y[Y.Xref=4]="Xref",Y[Y.XrefOverlay=8]="XrefOverlay",Y[Y.ExternallyDependent=16]="ExternallyDependent",Y[Y.ResolvedOrDependent=32]="ResolvedOrDependent",Y[Y.ReferencedXref=64]="ReferencedXref",(j=eb||(eb={}))[j.BYBLOCK=0]="BYBLOCK",j[j.BYLAYER=256]="BYLAYER";let e=-1,a=4,r=Math.PI/24;(X=eT||(eT={}))[X.Rotated=0]="Rotated",X[X.Aligned=1]="Aligned",X[X.Angular=2]="Angular",X[X.Diameter=3]="Diameter",X[X.Radius=4]="Radius",X[X.Angular3Point=5]="Angular3Point",X[X.Ordinate=6]="Ordinate",X[X.ReferenceIsExclusive=32]="ReferenceIsExclusive",X[X.IsOrdinateXTypeFlag=64]="IsOrdinateXTypeFlag",X[X.IsCustomTextPositionFlag=128]="IsCustomTextPositionFlag",(z=eD||(eD={}))[z.TopLeft=1]="TopLeft",z[z.TopCenter=2]="TopCenter",z[z.TopRight=3]="TopRight",z[z.MiddleLeft=4]="MiddleLeft",z[z.MiddleCenter=5]="MiddleCenter",z[z.MiddleRight=6]="MiddleRight",z[z.BottomLeft=7]="BottomLeft",z[z.BottomCenter=8]="BottomCenter",z[z.BottomRight=9]="BottomRight",(K=eO||(eO={}))[K.AtLeast=1]="AtLeast",K[K.Exact=2]="Exact",(Z=eg||(eg={}))[Z.Center=0]="Center",Z[Z.Above=1]="Above",Z[Z.Outside=2]="Outside",Z[Z.JIS=3]="JIS",Z[Z.Below=4]="Below",(J=ey||(ey={}))[J.Feet=0]="Feet",J[J.None=1]="None",J[J.Inch=2]="Inch",J[J.FeetAndInch=3]="FeetAndInch",J[J.Leading=4]="Leading",J[J.Trailing=8]="Trailing",J[J.LeadingAndTrailing=12]="LeadingAndTrailing",($=eS||(eS={}))[$.None=0]="None",$[$.Leading=1]="Leading",$[$.Trailing=2]="Trailing",$[$.LeadingAndTrailing=3]="LeadingAndTrailing",(q=eN||(eN={}))[q.Center=0]="Center",q[q.Left=1]="Left",q[q.Right=2]="Right",q[q.OverFirst=3]="OverFirst",q[q.OverSecond=4]="OverSecond",(Q=e_||(e_={}))[Q.Bottom=0]="Bottom",Q[Q.Center=1]="Center",Q[Q.Top=2]="Top",(ee=eL||(eL={}))[ee.PatternFill=0]="PatternFill",ee[ee.SolidFill=1]="SolidFill",(ea=eA||(eA={}))[ea.NonAssociative=0]="NonAssociative",ea[ea.Associative=1]="Associative",(er=eP||(eP={}))[er.Normal=0]="Normal",er[er.Outer=1]="Outer",er[er.Ignore=2]="Ignore",(et=eC||(eC={}))[et.UserDefined=0]="UserDefined",et[et.Predefined=1]="Predefined",et[et.Custom=2]="Custom",(en=ev||(ev={}))[en.NotAnnotated=0]="NotAnnotated",en[en.Annotated=1]="Annotated",(eo=eM||(eM={}))[eo.Solid=0]="Solid",eo[eo.Gradient=1]="Gradient",(es=ex||(ex={}))[es.TwoColor=0]="TwoColor",es[es.OneColor=1]="OneColor",(ei=eR||(eR={}))[ei.Default=0]="Default",ei[ei.External=1]="External",ei[ei.Polyline=2]="Polyline",ei[ei.Derived=4]="Derived",ei[ei.Textbox=8]="Textbox",ei[ei.Outermost=16]="Outermost",(ec=ek||(ek={}))[ec.Line=1]="Line",ec[ec.Circular=2]="Circular",ec[ec.Elliptic=3]="Elliptic",ec[ec.Spline=4]="Spline",(el=eF||(eF={}))[el.Off=0]="Off",el[el.Solid=1]="Solid",el[el.Dashed=2]="Dashed",el[el.Dotted=3]="Dotted",el[el.ShotDash=4]="ShotDash",el[el.MediumDash=5]="MediumDash",el[el.LongDash=6]="LongDash",el[el.DoubleShortDash=7]="DoubleShortDash",el[el.DoubleMediumDash=8]="DoubleMediumDash",el[el.DoubleLongDash=9]="DoubleLongDash",el[el.DoubleMediumLongDash=10]="DoubleMediumLongDash",el[el.SparseDot=11]="SparseDot";let t={DRAGVS:"NULL",INTERFERECOLOR:1,INTERFEREOBJVS:"Conceptual",INTERFEREVPVS:"3d Wireframe",OBSLTYPE:eF.Off,SHADEDIF:70};(ed=ew||(ew={}))[ed.Standard=-3]="Standard",ed[ed.ByLayer=-2]="ByLayer",ed[ed.ByBlock=-1]="ByBlock",(eu=eV||(eV={}))[eu.English=0]="English",eu[eu.Metric=1]="Metric";let n=65536;function o(e,a,r){return e.code===a&&(null==r||e.value===r)}function s(e){let a={};e.rewind();let r=e.next(),t=r.code;if(a.x=r.value,(r=e.next()).code!==t+10)throw Error("Expected code for point value to be 20 but got "+r.code+".");return(a.y=r.value,(r=e.next()).code!==t+20)?e.rewind():a.z=r.value,a}(ep=eB||(eB={}))[ep.PERSPECTIVE_MODE=1]="PERSPECTIVE_MODE",ep[ep.FRONT_CLIPPING=2]="FRONT_CLIPPING",ep[ep.BACK_CLIPPING=4]="BACK_CLIPPING",ep[ep.UCS_FOLLOW=8]="UCS_FOLLOW",ep[ep.FRONT_CLIP_NOT_AT_EYE=16]="FRONT_CLIP_NOT_AT_EYE",ep[ep.UCS_ICON_VISIBILITY=32]="UCS_ICON_VISIBILITY",ep[ep.UCS_ICON_AT_ORIGIN=64]="UCS_ICON_AT_ORIGIN",ep[ep.FAST_ZOOM=128]="FAST_ZOOM",ep[ep.SNAP_MODE=256]="SNAP_MODE",ep[ep.GRID_MODE=512]="GRID_MODE",ep[ep.ISOMETRIC_SNAP_STYLE=1024]="ISOMETRIC_SNAP_STYLE",ep[ep.HIDE_PLOT_MODE=2048]="HIDE_PLOT_MODE",ep[ep.K_ISO_PAIR_TOP=4096]="K_ISO_PAIR_TOP",ep[ep.K_ISO_PAIR_RIGHT=8192]="K_ISO_PAIR_RIGHT",ep[ep.VIEWPORT_ZOOM_LOCKING=16384]="VIEWPORT_ZOOM_LOCKING",ep[ep.UNUSED=32768]="UNUSED",ep[ep.NON_RECTANGULAR_CLIPPING=65536]="NON_RECTANGULAR_CLIPPING",ep[ep.VIEWPORT_OFF=131072]="VIEWPORT_OFF",ep[ep.GRID_BEYOND_DRAWING_LIMITS=262144]="GRID_BEYOND_DRAWING_LIMITS",ep[ep.ADAPTIVE_GRID_DISPLAY=524288]="ADAPTIVE_GRID_DISPLAY",ep[ep.SUBDIVISION_BELOW_SPACING=1048576]="SUBDIVISION_BELOW_SPACING",ep[ep.GRID_FOLLOWS_WORKPLANE=2097152]="GRID_FOLLOWS_WORKPLANE",(em=eH||(eH={}))[em.OPTIMIZED_2D=0]="OPTIMIZED_2D",em[em.WIREFRAME=1]="WIREFRAME",em[em.HIDDEN_LINE=2]="HIDDEN_LINE",em[em.FLAT_SHADED=3]="FLAT_SHADED",em[em.GOURAUD_SHADED=4]="GOURAUD_SHADED",em[em.FLAT_SHADED_WITH_WIREFRAME=5]="FLAT_SHADED_WITH_WIREFRAME",em[em.GOURAUD_SHADED_WITH_WIREFRAME=6]="GOURAUD_SHADED_WITH_WIREFRAME",(eE=eG||(eG={}))[eE.UCS_UNCHANGED=0]="UCS_UNCHANGED",eE[eE.HAS_OWN_UCS=1]="HAS_OWN_UCS",(eh=eU||(eU={}))[eh.NON_ORTHOGRAPHIC=0]="NON_ORTHOGRAPHIC",eh[eh.TOP=1]="TOP",eh[eh.BOTTOM=2]="BOTTOM",eh[eh.FRONT=3]="FRONT",eh[eh.BACK=4]="BACK",eh[eh.LEFT=5]="LEFT",eh[eh.RIGHT=6]="RIGHT",(eI=eW||(eW={}))[eI.ONE_DISTANT_LIGHT=0]="ONE_DISTANT_LIGHT",eI[eI.TWO_DISTANT_LIGHTS=1]="TWO_DISTANT_LIGHTS";let i=Symbol();function c(e,a){return(r,t,n)=>{let s=e.reduce((e,a)=>{a.pushContext&&e.push({});let r=e[e.length-1];for(let e of"number"==typeof a.code?[a.code]:a.code){let t=r[e]??(r[e]=[]);a.isMultiple&&t.length,t.push(a)}return e},[{}]),c=!1,d=s.length-1;for(;!o(r,0,"EOF");){let e=function(e,a,r){return e.find((e,t)=>t>=r&&e[a]?.length)}(s,r.code,d),a=e?.[r.code].at(-1);if(!e||!a){t.rewind();break}a.isMultiple||e[r.code].pop();let{name:o,parser:u,isMultiple:p,isReducible:m}=a,E=u?.(r,t,n);if(E===i){t.rewind();break}if(o){let[e,a]=function(e,a){let r=a.split(".");if(!r.length)throw Error("[parserGenerator::getObjectByPath] Invalid empty path");let t=e;for(let e=0;e<r.length-1;++e){let a=l(r[e]),n=l(r[e+1]);Object.prototype.hasOwnProperty.call(t,a)||("number"==typeof n?t[a]=[]:t[a]={}),t=t[a]}return[t,l(r.at(-1))]}(n,o);p&&!m?(Object.prototype.hasOwnProperty.call(e,a)||(e[a]=[]),e[a].push(E)):e[a]=E}a.pushContext&&(d-=1),c=!0,r=t.next()}return a&&Object.setPrototypeOf(n,a),c}}function l(e){let a=Number.parseInt(e);return Number.isNaN(a)?e:a}function d({value:e}){return e}function u(e,a){return s(a)}function p({value:e}){return!!e}function m(e,a,r){for(;o(e,102);){var t;let n=e.value;if(e=a.next(),!n.startsWith("{")){console.warn(`Invalid application group, expected to start with "{" but received: ${n}`),function(e,a){for(;!o(e,102)&&!o(e,0,"EOF");)e=a.next()}(e,a),e=a.next();continue}let s=n.slice(1).trim();r.extensions??(r.extensions={}),(t=r.extensions)[s]??(t[s]=[]),function(e,a,r){for(;!o(e,102,"}")&&!o(e,0,"EOF");)r.push(e),e=a.next()}(e,a,r.extensions[s]),e=a.next()}}var E,h,I,f,b,T,D,O,g,y,S,N,_,L,A,P,C,v,M,x,R,k,F,w,V,B,H,G,U,W,Y,j,X,z,K,Z,J,$,q,Q,ee,ea,er,et,en,eo,es,ei,ec,el,ed,eu,ep,em,eE,eh,eI,ef,eb,eT,eD,eO,eg,ey,eS,eN,e_,eL,eA,eP,eC,ev,eM,ex,eR,ek,eF,ew,eV,eB,eH,eG,eU,eW,eY,ej,eX,ez,eK,eZ,eJ,e$,eq,eQ,e0,e1,e4,e2,e3,e7,e5,e6,e9,e8,ae,aa,ar,at,an=[0,16711680,16776960,65280,65535,255,16711935,16777215,8421504,12632256,16711680,16744319,13369344,13395558,10027008,10046540,8323072,8339263,4980736,4990502,16727808,16752511,13382400,13401958,10036736,10051404,8331008,8343359,4985600,4992806,16744192,16760703,13395456,13408614,10046464,10056268,8339200,8347455,4990464,4995366,16760576,16768895,13408512,13415014,10056192,10061132,8347392,8351551,4995328,4997670,16776960,16777087,13421568,13421670,10000384,10000460,8355584,8355647,5000192,5000230,12582656,14679935,10079232,11717734,7510016,8755276,6258432,7307071,3755008,4344870,8388352,12582783,6736896,10079334,5019648,7510092,4161280,6258495,2509824,3755046,4194048,10485631,3394560,8375398,2529280,6264908,2064128,5209919,1264640,3099686,65280,8388479,52224,6736998,38912,5019724,32512,4161343,19456,2509862,65343,8388511,52275,6737023,38950,5019743,32543,4161359,19475,2509871,65407,8388543,52326,6737049,38988,5019762,32575,4161375,19494,2509881,65471,8388575,52377,6737074,39026,5019781,32607,4161391,19513,2509890,65535,8388607,52428,6737100,39064,5019800,32639,4161407,19532,2509900,49151,8380415,39372,6730444,29336,5014936,24447,4157311,14668,2507340,32767,8372223,26316,6724044,19608,5010072,16255,4153215,9804,2505036,16383,8364031,13260,6717388,9880,5005208,8063,4149119,4940,2502476,255,8355839,204,6710988,152,5000344,127,4145023,76,2500172,4129023,10452991,3342540,8349388,2490520,6245528,2031743,5193599,1245260,3089996,8323327,12550143,6684876,10053324,4980888,7490712,4128895,6242175,2490444,3745356,12517631,14647295,10027212,11691724,7471256,8735896,6226047,7290751,3735628,4335180,16711935,16744447,13369548,13395660,9961624,9981080,8323199,8339327,4980812,4990540,16711871,16744415,13369497,13395634,9961586,9981061,8323167,8339311,4980793,4990530,16711807,16744383,13369446,13395609,9961548,9981042,8323135,8339295,4980774,4990521,16711743,16744351,13369395,13395583,9961510,9981023,8323103,8339279,4980755,4990511,3355443,5987163,8684676,11382189,14079702,16777215];function ao(e){return an[e]}let as=[{code:1001,name:"xdata",parser:ai}];function ai(e,a){if(!o(e,1001))throw Error("XData must starts with code 1001");let r={appName:e.value,value:[]};e=a.next();let t=[r.value];for(;!o(e,0,"EOF")&&e.code>=1e3;){let r=t.at(-1);switch(e.code){case 1002:"{"===e.value?t.push([]):(t.pop(),t.at(-1)?.push(r));break;case 1e3:case 1004:case 1040:case 1070:case 1071:r.push({type:ac(e.code),value:e.value});break;case 1003:r.push({name:"layer",type:ac(e.code),value:e.value});break;case 1005:r.push({name:"handle",type:ac(e.code),value:e.value});break;case 1010:r.push({type:ac(e.code),value:s(a)});break;case 1011:r.push({name:"worldSpacePosition",type:ac(e.code),value:s(a)});break;case 1012:r.push({name:"worldSpaceDisplacement",type:ac(e.code),value:s(a)});break;case 1013:r.push({name:"worldSpaceDirection",type:ac(e.code),value:s(a)});break;case 1041:r.push({name:"distance",type:ac(e.code),value:e.value});break;case 1042:r.push({name:"scale",type:ac(e.code),value:e.value})}e=a.next()}return a.rewind(),r}function ac(e){switch(e){case 1e3:case 1003:case 1005:return"string";case 1004:return"hex";case 1040:case 1041:case 1042:return"real";case 1070:return"integer";case 1071:return"long";case 1010:case 1011:case 1012:case 1013:return"point";default:return""}}function al(e){return a=>{let r={};for(let t=0;t<a.length;t+=2){let n=e.find(({code:e})=>e===a[t].value);n&&(r[n.name]=a[t+1]?.value)}return r}}function ad({appName:e="ACAD",catcher:a,escaper:r}){return function*(t){if(t?.appName!==e)return;let n=!1,o=-1;for(let[e,s]of t.value.entries())if(n){if(yield s,r?.(s,e-o))return}else a(s)&&(n=!0,o=e)}}(E=eY||(eY={}))[E.CAST_AND_RECEIVE=0]="CAST_AND_RECEIVE",E[E.CAST=1]="CAST",E[E.RECEIVE=2]="RECEIVE",E[E.IGNORE=3]="IGNORE";let au=[...as,{code:284,name:"shadowMode",parser:d},{code:390,name:"plotStyleHardId",parser:d},{code:440,name:"transparency",parser:d},{code:430,name:"colorName",parser:d},{code:420,name:"color",parser:d},{code:310,name:"proxyEntity",parser:d},{code:92,name:"proxyByte",parser:d},{code:60,name:"isVisible",parser:p},{code:48,name:"lineTypeScale",parser:d},{code:370,name:"lineweight",parser:d},{code:62,name:"colorIndex",parser(e,a,r){let t=e.value;return r.color=ao(Math.abs(t)),t}},{code:347,name:"materialObjectHardId",parser:d},{code:6,name:"lineType",parser:d},{code:8,name:"layer",parser:d},{code:410,name:"layoutTabName",parser:d},{code:67,name:"isInPaperSpace",parser:p},{code:100},{code:330,name:"ownerBlockRecordSoftId",parser:d},{code:102,parser:m},{code:102,parser:m},{code:102,parser:m},{code:5,name:"handle",parser:d}];function ap(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}let am={extrusionDirection:{x:0,y:0,z:1}},aE=[{code:210,name:"extrusionDirection",parser:u},{code:51,name:"endAngle",parser:d},{code:50,name:"startAngle",parser:d},{code:100,name:"subclassMarker",parser:d},{code:40,name:"radius",parser:d},{code:10,name:"center",parser:u},{code:39,name:"thickness",parser:d},{code:100},...au];class ah{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){ap(this,"parser",c(aE,am))}}function aI(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}ap(ah,"ForEntityName","ARC"),(h=ej||(ej={}))[h.NONE=0]="NONE",h[h.INVISIBLE=1]="INVISIBLE",h[h.CONSTANT=2]="CONSTANT",h[h.VERIFICATION_REQUIRED=4]="VERIFICATION_REQUIRED",h[h.PRESET=8]="PRESET",(I=eX||(eX={}))[I.MULTILINE=2]="MULTILINE",I[I.CONSTANT_MULTILINE=4]="CONSTANT_MULTILINE",(f=ez||(ez={}))[f.NONE=0]="NONE",f[f.MIRRORED_X=2]="MIRRORED_X",f[f.MIRRORED_Y=4]="MIRRORED_Y",(b=eK||(eK={}))[b.LEFT=0]="LEFT",b[b.CENTER=1]="CENTER",b[b.RIGHT=2]="RIGHT",b[b.ALIGNED=3]="ALIGNED",b[b.MIDDLE=4]="MIDDLE",b[b.FIT=5]="FIT",(T=eZ||(eZ={}))[T.BASELINE=0]="BASELINE",T[T.BOTTOM=1]="BOTTOM",T[T.MIDDLE=2]="MIDDLE",T[T.TOP=3]="TOP";let af={thickness:0,rotation:0,xScale:1,obliqueAngle:0,styleName:"STANDARD",generationFlag:0,halign:eK.LEFT,valign:eZ.BASELINE,extrusionDirection:{x:0,y:0,z:1}},ab=[{code:73,name:"valign",parser:d},{code:100},{code:210,name:"extrusionDirection",parser:u},{code:11,name:"endPoint",parser:u},{code:72,name:"valign",parser:d},{code:72,name:"halign",parser:d},{code:71,name:"generationFlag",parser:d},{code:7,name:"styleName",parser:d},{code:51,name:"obliqueAngle",parser:d},{code:41,name:"xScale",parser:d},{code:50,name:"rotation",parser:d},{code:1,name:"text",parser:d},{code:40,name:"textHeight",parser:d},{code:10,name:"startPoint",parser:u},{code:39,name:"thickness",parser:d},{code:100,name:"subclassMarker",parser:d},...au];class aT{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){aI(this,"parser",c(ab,af))}}function aD(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}aI(aT,"ForEntityName","TEXT");let aO={...af},ag=[{code:2},{code:40,name:"annotationScale",parser:d},{code:10,name:"alignmentPoint",parser:u},{code:340,name:"secondaryAttributesHardIds",isMultiple:!0,parser:d},{code:70,name:"numberOfSecondaryAttributes",parser:d},{code:70,name:"isReallyLocked",parser:p},{code:70,name:"mtextFlag",parser:d},{code:280,name:"isDuplicatedRecord",parser:p},{code:100},{code:280,name:"isLocked",parser:p},{code:74,name:"valign",parser:d},{code:73},{code:70,name:"attributeFlag",parser:d},{code:2,name:"tag",parser:d},{code:3,name:"prompt",parser:d},{code:280},{code:100,name:"subclassMarker",parser:d},...ab.slice(2)];class ay{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){aD(this,"parser",c(ag,aO))}}aD(ay,"ForEntityName","ATTDEF");let aS=0;function aN(e){if(!e)throw TypeError("entity cannot be undefined or null");e.handle||(e.handle=aS++)}function a_(e,a){let r={};for(let t of e){let e=a(t);null!=e&&(r[e]??(r[e]=[]),r[e].push(t))}return r}function*aL(e,a=1/0,r=1){for(let t=e;t!==a;t+=r)yield t}function aA(e){return{x:e.x??0,y:e.y??0,z:e.z??0}}function aP(e,a,r){if(o(a,102))return m(a,r,e),!0;switch(a.code){case 0:e.type=a.value;break;case 5:e.handle=a.value;break;case 330:e.ownerBlockRecordSoftId=a.value;break;case 67:e.isInPaperSpace=!!a.value;break;case 8:e.layer=a.value;break;case 6:e.lineType=a.value;break;case 347:e.materialObjectHardId=a.value;break;case 62:e.colorIndex=a.value,e.color=ao(Math.abs(a.value));break;case 370:e.lineweight=a.value;break;case 48:e.lineTypeScale=a.value;break;case 60:e.isVisible=!!a.value;break;case 92:e.proxyByte=a.value;break;case 310:e.proxyEntity=a.value;break;case 100:break;case 420:e.color=a.value;break;case 430:e.transparency=a.value;break;case 390:e.plotStyleHardId=a.value;break;case 284:e.shadowMode=a.value;break;case 1001:e.xdata=ai(a,r);break;default:return!1}return!0}function aC(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}(D=eJ||(eJ={}))[D.LEFT_TO_RIGHT=1]="LEFT_TO_RIGHT",D[D.TOP_TO_BOTTOM=3]="TOP_TO_BOTTOM",D[D.BY_STYLE=5]="BY_STYLE";let av={textStyle:"STANDARD",extrusionDirection:{x:0,y:0,z:1},rotation:0},aM=[{code:46,name:"annotationHeight",parser:d},{code:101,parser(e,a){!function(e){e.rewind();let a=e.next();if(101!==a.code)throw Error("Bad call for skipEmbeddedObject()");do a=e.next();while(0!==a.code);e.rewind()}(a)}},{code:50,name:"columnHeight",parser:d},{code:49,name:"columnGutter",parser:d},{code:48,name:"columnWidth",parser:d},{code:79,name:"columnAutoHeight",parser:d},{code:78,name:"columnFlowReversed",parser:d},{code:76,name:"columnCount",parser:d},{code:75,name:"columnType",parser:d},{code:441,name:"backgroundFillTransparency",parser:d},{code:63,name:"backgroundFillColor",parser:d},{code:45,name:"fillBoxScale",parser:d},{code:[...aL(430,440)],name:"backgroundColor",parser:d},{code:[...aL(420,430)],name:"backgroundColor",parser:d},{code:90,name:"backgroundFill",parser:d},{code:44,name:"lineSpacing",parser:d},{code:73,name:"lineSpacingStyle",parser:d},{code:50,name:"rotation",parser:d},{code:43},{code:42},{code:11,name:"direction",parser:u},{code:210,name:"extrusionDirection",parser:u},{code:7,name:"styleName",parser:d},{code:3,name:"text",parser:(e,a,r)=>(r._code3text=(r._code3text??"")+e.value,r._code3text+(r._code1text??"")),isMultiple:!0,isReducible:!0},{code:1,name:"text",parser:(e,a,r)=>(r._code1text=e.value,(r._code3text??"")+r._code1text)},{code:72,name:"drawingDirection",parser:d},{code:71,name:"attachmentPoint",parser:d},{code:41,name:"width",parser:d},{code:40,name:"height",parser:d},{code:10,name:"insertionPoint",parser:u},{code:100,name:"subclassMarker",parser:d},...au];class ax{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){aC(this,"parser",c(aM,av))}}function aR(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}aC(ax,"ForEntityName","MTEXT");let ak={thickness:0,rotation:0,scale:1,obliqueAngle:0,textStyle:"STANDARD",textGenerationFlag:0,horizontalJustification:0,verticalJustification:0,extrusionDirection:{x:0,y:0,z:1}},aF=[...aM.slice(aM.findIndex(({name:e})=>"columnType"===e),aM.findIndex(({name:e})=>"subclassMarker"===e)+1),{code:100},{code:0,parser(e){if(!o(e,0,"MTEXT"))return i}},{code:2,name:"definitionTag",parser:d},{code:40,name:"annotationScale",parser:d},{code:10,name:"alignmentPoint",parser:u},{code:340,name:"secondaryAttributesHardId",parser:d},{code:70,name:"numberOfSecondaryAttributes",parser:d},{code:70,name:"isReallyLocked",parser:p},{code:70,name:"mtextFlag",parser:d},{code:280,name:"isDuplicatedEntriesKeep",parser:p},{code:100},{code:280,name:"lockPositionFlag",parser:p},{code:210,name:"extrusionDirection",parser:u},{code:11,name:"alignmentPoint",parser:u},{code:74,name:"verticalJustification",parser:d},{code:72,name:"horizontalJustification",parser:d},{code:71,name:"textGenerationFlag",parser:d},{code:7,name:"textStyle",parser:d},{code:51,name:"obliqueAngle",parser:d},{code:41,name:"scale",parser:d},{code:50,name:"rotation",parser:d},{code:73},{code:70,name:"attributeFlag",parser:d},{code:2,name:"tag",parser:d},{code:280},{code:100,name:"subclassMarker",parser:d},{code:1,name:"text",parser:d},{code:40,name:"textHeight",parser:d},{code:10,name:"startPoint",parser:u},{code:39,name:"thickness",parser:d},{code:100},...au];class aw{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){aR(this,"parser",c(aF,ak))}}function aV(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}aR(aw,"ForEntityName","ATTRIB");let aB={thickness:0,extrusionDirection:{x:0,y:0,z:1}},aH=[{code:210,name:"extrusionDirection",parser:u},{code:40,name:"radius",parser:d},{code:10,name:"center",parser:u},{code:39,name:"thickness",parser:d},{code:100,name:"subclassMarker",parser:d},...au];class aG{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){aV(this,"parser",c(aH,aB))}}aV(aG,"ForEntityName","CIRCLE");class aU{parseEntity(e,a){let r={};for(;!o(a,0,"EOF");){if(0===a.code){e.rewind();break}!function(e,a,r){switch(a.code){case 100:e.subclassMarker=a.value;break;case 280:e.version=a.value;break;case 2:e.name=a.value;break;case 10:e.definitionPoint=s(r);break;case 11:e.textPoint=s(r);break;case 12:e.insertionPoint=s(r);break;case 13:e.subDefinitionPoint1=s(r);break;case 14:e.subDefinitionPoint2=s(r);break;case 15:e.centerPoint=s(r);break;case 16:e.arcPoint=s(r);break;case 70:e.dimensionType=a.value;break;case 71:e.attachmentPoint=a.value;break;case 72:e.textLineSpacingStyle=a.value;break;case 40:e.leaderLength=a.value;break;case 41:e.textLineSpacingFactor=a.value;break;case 42:e.measurement=a.value;break;case 1:e.text=a.value;break;case 50:e.rotationAngle=a.value;break;case 52:e.obliqueAngle=a.value;break;case 53:e.textRotation=a.value;break;case 51:e.ocsRotation=a.value;break;case 210:e.extrusionDirection=s(r);break;case 3:e.styleName=a.value;break;default:aP(e,a,r)}}(r,a,e),a=e.next()}return r}}function aW(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}g="DIMENSION",(O="ForEntityName")in aU?Object.defineProperty(aU,O,{value:g,enumerable:!0,configurable:!0,writable:!0}):aU[O]=g;let aY={extrusionDirection:{x:0,y:0,z:1}},aj=[{code:42,name:"endAngle",parser:d},{code:41,name:"startAngle",parser:d},{code:40,name:"axisRatio",parser:d},{code:210,name:"extrusionDirection",parser:u},{code:11,name:"majorAxisEndPoint",parser:u},{code:10,name:"center",parser:u},{code:100,name:"subclassMarker",parser:d},...au];class aX{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){aW(this,"parser",c(aj,aY))}}function az(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}aW(aX,"ForEntityName","ELLIPSE"),(y=e$||(e$={}))[y.First=1]="First",y[y.Second=2]="Second",y[y.Third=4]="Third",y[y.Fourth=8]="Fourth";let aK=[{code:13,name:"vertices.3",parser:u},{code:12,name:"vertices.2",parser:u},{code:11,name:"vertices.1",parser:u},{code:10,name:"vertices.0",parser:u},{code:100,name:"subclassMarker",parser:d},...au];class aZ{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){az(this,"parser",c(aK))}}az(aZ,"ForEntityName","3DFACE");let aJ=[{code:330,name:"sourceBoundaryObjects",parser:d,isMultiple:!0},{code:97,name:"numberOfSourceBoundaryObjects",parser:d}],a$=[{code:11,name:"end",parser:u},{code:10,name:"start",parser:u}],aq=[{code:73,name:"isCCW",parser:p},{code:51,name:"endAngle",parser:d},{code:50,name:"startAngle",parser:d},{code:40,name:"radius",parser:d},{code:10,name:"center",parser:u}],aQ=[{code:73,name:"isCCW",parser:p},{code:51,name:"endAngle",parser:d},{code:50,name:"startAngle",parser:d},{code:40,name:"lengthOfMinorAxis",parser:d},{code:11,name:"end",parser:u},{code:10,name:"center",parser:u}],a0=[{code:13,name:"endTangent",parser:u},{code:12,name:"startTangent",parser:u},{code:11,name:"fitDatum",isMultiple:!0,parser:u},{code:97,name:"numberOfFitData",parser:d},{code:10,name:"controlPoints",isMultiple:!0,parser(e,a){let r={...s(a),weight:1};return 42===(e=a.next()).code?r.weight=e.value:a.rewind(),r}},{code:40,name:"knots",isMultiple:!0,parser:d},{code:96,name:"numberOfControlPoints",parser:d},{code:95,name:"numberOfKnots",parser:d},{code:74,name:"isPeriodic",parser:p},{code:73,name:"splineFlag",parser:d},{code:94,name:"degree",parser:d}],a1={[ek.Line]:a$,[ek.Circular]:aq,[ek.Elliptic]:aQ,[ek.Spline]:a0},a4=[...aJ,{code:72,name:"edges",parser(e,a){let r={type:e.value},t=c(a1[r.type]);if(!t)throw Error(`Invalid edge type ${r.type}`);return t(e=a.next(),a,r),r},isMultiple:!0},{code:93,name:"numberOfEdges",parser:d}],a2=[...aJ,{code:10,name:"vertices",parser(e,a){let r={...s(a),bulge:0};return 42===(e=a.next()).code?r.bulge=e.value:a.rewind(),r},isMultiple:!0},{code:93,name:"numberOfVertices",parser:d},{code:73,name:"isClosed",parser:p},{code:72,name:"hasBulge",parser:p}],a3=[{code:49,name:"dashLengths",parser:d,isMultiple:!0},{code:79,name:"numberOfDashLengths",parser:d},{code:45,name:"offset",parser:a7},{code:43,name:"base",parser:a7},{code:53,name:"angle",parser:d}];function a7(e,a){let r=e.code+1,t={x:e.value,y:1};return(e=a.next()).code===r?t.y=e.value:a.rewind(),t}function a5(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}let a6={extrusionDirection:{x:0,y:0,z:1},gradientRotation:0,colorTint:0},a9=[{code:470},{code:463},{code:462,name:"colorTint",parser:d},{code:461,name:"gradientDefinition",parser:d},{code:460,name:"gradientRotation",parser:d},{code:453,name:"numberOfColors",parser:d},{code:452,name:"gradientColorFlag",parser:d},{code:451},{code:450,name:"gradientFlag",parser:d},{code:10,name:"seedPoints",parser:u,isMultiple:!0},{code:99},{code:11,name:"offsetVector",parser:u},{code:98,name:"numberOfSeedPoints",parser:d},{code:47,name:"pixelSize",parser:d},{code:53,name:"definitionLines",parser:function(e,a){let r={};return c(a3)(e,a,r),r},isMultiple:!0},{code:78,name:"numberOfDefinitionLines",parser:d},{code:77,name:"isDouble",parser:p},{code:73,name:"isAnnotated",parser:p},{code:41,name:"patternScale",parser:d},{code:52,name:"patternAngle",parser:d},{code:76,name:"patternType",parser:d},{code:75,name:"hatchStyle",parser:d},{code:92,name:"boundaryPaths",parser:function(e,a){let r={boundaryPathTypeFlag:e.value},t=r.boundaryPathTypeFlag&eR.Polyline;return(e=a.next(),t)?c(a2)(e,a,r):c(a4)(e,a,r),r},isMultiple:!0},{code:91,name:"numberOfBoundaryPaths",parser:d},{code:71,name:"associativity",parser:d},{code:63,name:"patternFillColor",parser:d},{code:70,name:"solidFill",parser:d},{code:2,name:"patternName",parser:d},{code:210,name:"extrusionDirection",parser:u},{code:10,name:"elevationPoint",parser:u},{code:100,name:"subclassMarker",parser:d,pushContext:!0},...au];class a8{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){a5(this,"parser",c(a9,a6))}}function re(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}a5(a8,"ForEntityName","HATCH"),(S=eq||(eq={}))[S.ShowImage=1]="ShowImage",S[S.ShowImageWhenNotAlignedWithScreen=2]="ShowImageWhenNotAlignedWithScreen",S[S.UseClippingBoundary=4]="UseClippingBoundary",S[S.TransparencyIsOn=8]="TransparencyIsOn",(N=eQ||(eQ={}))[N.Rectangular=1]="Rectangular",N[N.Polygonal=2]="Polygonal",(_=e0||(e0={}))[_.Outside=0]="Outside",_[_.Inside=1]="Inside";let ra={brightness:50,contrast:50,fade:0,clippingBoundaryPath:[]},rr=[{code:290,name:"clipMode",parser:d},{code:14,name:"clippingBoundaryPath",isMultiple:!0,parser:u},{code:91,name:"countBoundaryPoints",parser:d},{code:71,name:"clippingBoundaryType",parser:d},{code:360,name:"imageDefReactorHandle",parser:d},{code:283,name:"fade",parser:d},{code:282,name:"contrast",parser:d},{code:281,name:"brightness",parser:d},{code:280,name:"isClipped",parser:p},{code:70,name:"flags",parser:d},{code:340,name:"imageDefHandle",parser:d},{code:13,name:"imageSize",parser:u},{code:12,name:"vPixel",parser:u},{code:11,name:"uPixel",parser:u},{code:10,name:"position",parser:u},{code:90,name:"version",parser:d},{code:100,name:"subclassMarker",parser:d},...au];class rt{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){re(this,"parser",c(rr,ra))}}function rn(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}re(rt,"ForEntityName","IMAGE");let ro={xScale:1,yScale:1,zScale:1,rotation:0,columnCount:0,rowCount:0,columnSpacing:0,rowSpacing:0,extrusionDirection:{x:0,y:0,z:1}},rs=[{code:210,name:"extrusionDirection",parser:u},{code:45,name:"rowSpacing",parser:d},{code:44,name:"columnSpacing",parser:d},{code:71,name:"rowCount",parser:d},{code:70,name:"columnCount",parser:d},{code:50,name:"rotation",parser:d},{code:43,name:"zScale",parser:d},{code:42,name:"yScale",parser:d},{code:41,name:"xScale",parser:d},{code:10,name:"insertionPoint",parser:u},{code:2,name:"name",parser:d},{code:66,name:"isVariableAttributes",parser:p},{code:100,name:"subclassMarker",parser:d},...au];class ri{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){rn(this,"parser",c(rs,ro))}}function rc(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}rn(ri,"ForEntityName","INSERT");let rl={isArrowheadEnabled:!0},rd=[{code:213,name:"offsetFromAnnotation",parser:u},{code:212,name:"offsetFromBlock",parser:u},{code:211,name:"horizontalDirection",parser:u},{code:210,name:"normal",parser:u},{code:340,name:"associatedAnnotation",parser:d},{code:77,name:"byBlockColor",parser:d},{code:10,name:"vertices",parser:u,isMultiple:!0},{code:76,name:"numberOfVertices",parser:d},{code:41,name:"textWidth",parser:d},{code:40,name:"textHeight",parser:d},{code:75,name:"isHooklineExists",parser:p},{code:74,name:"isHooklineSameDirection",parser:p},{code:73,name:"leaderCreationFlag",parser:d},{code:72,name:"isSpline",parser:p},{code:71,name:"isArrowheadEnabled",parser:p},{code:3,name:"styleName",parser:d},{code:100,name:"subclassMarker",parser:d},...au];class ru{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){rc(this,"parser",c(rd,rl))}}function rp(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}rc(ru,"ForEntityName","LEADER"),(L=e1||(e1={}))[L.TextAnnotation=0]="TextAnnotation",L[L.ToleranceAnnotation=1]="ToleranceAnnotation",L[L.BlockReferenceAnnotation=2]="BlockReferenceAnnotation",L[L.NoAnnotation=3]="NoAnnotation";let rm={thickness:0,extrusionDirection:{x:0,y:0,z:1}},rE=[{code:210,name:"extrusionDirection",parser:u},{code:11,name:"endPoint",parser:u},{code:10,name:"startPoint",parser:u},{code:39,name:"thickness",parser:d},{code:100,name:"subclassMarker",parser:d},...au];class rh{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){rp(this,"parser",c(rE,rm))}}rp(rh,"ForEntityName","LINE"),(A=e4||(e4={}))[A.IS_CLOSED=1]="IS_CLOSED",A[A.PLINE_GEN=128]="PLINE_GEN";let rI={flag:0,elevation:0,thickness:0,extrusionDirection:{x:0,y:0,z:1},vertices:[]},rf={bulge:0},rb=[{code:42,name:"bulge",parser:d},{code:41,name:"endWidth",parser:d},{code:40,name:"startWidth",parser:d},{code:91,name:"id",parser:d},{code:20,name:"y",parser:d},{code:10,name:"x",parser:d}],rT=[{code:210,name:"extrusionDirection",parser:u},{code:10,name:"vertices",isMultiple:!0,parser(e,a){let r={};return c(rb,rf)(e,a,r),r}},{code:39,name:"thickness",parser:d},{code:38,name:"elevation",parser:d},{code:43,name:"constantWidth",parser:d},{code:70,name:"flag",parser:d},{code:90,name:"numberOfVertices",parser:d},{code:100,name:"subclassMarker",parser:d},...au];class rD{parseEntity(e,a){let r={};return c(rT,rI)(a,e,r),r}}function rO(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}C="LWPOLYLINE",(P="ForEntityName")in rD?Object.defineProperty(rD,P,{value:C,enumerable:!0,configurable:!0,writable:!0}):rD[P]=C;let rg={thickness:0,extrusionDirection:{x:0,y:0,z:1},angle:0},ry=[{code:50,name:"angle",parser:d},{code:210,name:"extrusionDirection",parser:u},{code:39,name:"thickness",parser:d},{code:10,name:"position",parser:u},{code:100,name:"subclassMarker",parser:d},...au];class rS{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){rO(this,"parser",c(ry,rg))}}function rN(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}rO(rS,"ForEntityName","POINT"),(v=e2||(e2={}))[v.CLOSED_POLYLINE=1]="CLOSED_POLYLINE",v[v.CURVE_FIT=2]="CURVE_FIT",v[v.SPLINE_FIT=4]="SPLINE_FIT",v[v.POLYLINE_3D=8]="POLYLINE_3D",v[v.POLYGON_3D=16]="POLYGON_3D",v[v.CLOSED_POLYGON=32]="CLOSED_POLYGON",v[v.POLYFACE=64]="POLYFACE",v[v.CONTINUOUS=128]="CONTINUOUS",(M=e3||(e3={}))[M.NONE=0]="NONE",M[M.QUADRATIC=5]="QUADRATIC",M[M.CUBIC=6]="CUBIC",M[M.BEZIER=8]="BEZIER",(x=e7||(e7={}))[x.CREATED_BY_CURVE_FIT=1]="CREATED_BY_CURVE_FIT",x[x.TANGENT_DEFINED=2]="TANGENT_DEFINED",x[x.NOT_USED=4]="NOT_USED",x[x.CREATED_BY_SPLINE_FIT=8]="CREATED_BY_SPLINE_FIT",x[x.SPLINE_CONTROL_POINT=16]="SPLINE_CONTROL_POINT",x[x.FOR_POLYLINE=32]="FOR_POLYLINE",x[x.FOR_POLYGON=64]="FOR_POLYGON",x[x.POLYFACE=128]="POLYFACE";let r_={startWidth:0,endWidth:0,bulge:0},rL=[{code:91,name:"id",parser:d},{code:[...aL(71,75)],name:"faces",isMultiple:!0,parser:d},{code:50,name:"tangentDirection",parser:d},{code:70,name:"flag",parser:d},{code:42,name:"bulge",parser:d},{code:41,name:"endWidth",parser:d},{code:40,name:"startWidth",parser:d},{code:30,name:"z",parser:d},{code:20,name:"y",parser:d},{code:10,name:"x",parser:d},{code:100,name:"subclassMarker",parser:d},{code:100},...au];class rA{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){rN(this,"parser",c(rL,r_))}}function rP(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}rN(rA,"ForEntityName","VERTEX");let rC={thickness:0,flag:0,startWidth:0,endWidth:0,meshMVertexCount:0,meshNVertexCount:0,surfaceMDensity:0,surfaceNDensity:0,smoothType:0,extrusionDirection:{x:0,y:0,z:1},vertices:[]},rv=[{code:0,name:"vertices",isMultiple:!0,parser:(e,a)=>o(e,0,"VERTEX")?(e=a.next(),new rA().parseEntity(a,e)):i},{code:210,name:"extrusionDirection",parser:u},{code:75,name:"smoothType",parser:d},{code:74,name:"surfaceNDensity",parser:d},{code:73,name:"surfaceMDensity",parser:d},{code:72,name:"meshNVertexCount",parser:d},{code:71,name:"meshMVertexCount",parser:d},{code:41,name:"endWidth",parser:d},{code:40,name:"startWidth",parser:d},{code:70,name:"flag",parser:d},{code:39,name:"thickness",parser:d},{code:30,name:"elevation",parser:d},{code:20},{code:10},{code:66},{code:100,name:"subclassMarker",parser:d},...au];class rM{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){rP(this,"parser",c(rv,rC))}}function rx(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}rP(rM,"ForEntityName","POLYLINE");let rR=[{code:11,name:"direction",parser:u},{code:10,name:"position",parser:u},{code:100,name:"subclassMarker",parser:d},...au];class rk{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){rx(this,"parser",c(rR))}}function rF(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}rx(rk,"ForEntityName","RAY");let rw={vertices:[],backLineVertices:[]},rV=[{code:360,name:"geometrySettingHardId",parser:d},{code:12,name:"backLineVertices",isMultiple:!0,parser:u},{code:93,name:"numberOfBackLineVertices",parser:d},{code:11,name:"vertices",isMultiple:!0,parser:u},{code:92,name:"verticesCount",parser:d},{code:[63,411],name:"indicatorColor",parser:d},{code:70,name:"indicatorTransparency",parser:d},{code:41,name:"bottomHeight",parser:d},{code:40,name:"topHeight",parser:d},{code:10,name:"verticalDirection",parser:u},{code:1,name:"name",parser:d},{code:91,name:"flag",parser:d},{code:90,name:"state",parser:d},{code:100,name:"subclassMarker",parser:d},...au];class rB{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){rF(this,"parser",c(rV,rw))}}function rH(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}rF(rB,"ForEntityName","SECTION");let rG={points:[],thickness:0,extrusionDirection:{x:0,y:0,z:1}},rU=[{code:210,name:"extrusionDirection",parser:u},{code:39,name:"thickness",parser:d},{code:[...aL(10,14)],name:"points",isMultiple:!0,parser:u},{code:100,name:"subclassMarker",parser:d},...au];class rW{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){rH(this,"parser",c(rU,rG))}}function rY(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}rH(rW,"ForEntityName","SOLID"),(R=e5||(e5={}))[R.NONE=0]="NONE",R[R.CLOSED=1]="CLOSED",R[R.PERIODIC=2]="PERIODIC",R[R.RATIONAL=4]="RATIONAL",R[R.PLANAR=8]="PLANAR",R[R.LINEAR=16]="LINEAR";let rj={knotTolerance:1e-6,controlTolerance:1e-6,fitTolerance:1e-9,knotValues:[],controlPoints:[],fitPoints:[]},rX=[{code:11,name:"fitPoints",isMultiple:!0,parser:u},{code:10,name:"controlPoints",isMultiple:!0,parser:u},{code:41,name:"weights",isMultiple:!0,parser:d},{code:40,name:"knots",isMultiple:!0,parser:d},{code:13,name:"endTangent",parser:u},{code:12,name:"startTangent",parser:u},{code:44,name:"fitTolerance",parser:d},{code:43,name:"controlTolerance",parser:d},{code:42,name:"knotTolerance",parser:d},{code:74,name:"numberOfFitPoints",parser:d},{code:73,name:"numberOfControlPoints",parser:d},{code:72,name:"numberOfKnots",parser:d},{code:71,name:"degree",parser:d},{code:70,name:"flag",parser:d},{code:210,name:"normal",parser:u},{code:100,name:"subclassMarker",parser:d},...au];class rz{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){rY(this,"parser",c(rX,rj))}}rY(rz,"ForEntityName","SPLINE");class rK{parseEntity(e,a){let r={};for(;"EOF"!==a;){if(0===a.code){e.rewind();break}!function(e,a,r){if("EOF"===r)return!1;switch(r.code){case 0:return!1;case 100:e.subclassMarker=r.value;break;case 10:e.viewportCenter=aA(s(a));break;case 40:e.width=r.value;break;case 41:e.height=r.value;break;case 68:e.status=r.value;break;case 69:e.viewportId=r.value;break;case 12:e.displayCenter=s(a);break;case 13:e.snapBase=s(a);break;case 14:e.snapSpacing=s(a);break;case 15:e.gridSpacing=s(a);break;case 16:e.viewDirection=aA(s(a));break;case 17:e.targetPoint=aA(s(a));break;case 42:e.perspectiveLensLength=r.value;break;case 43:e.frontClipZ=r.value;break;case 44:e.backClipZ=r.value;break;case 45:e.viewHeight=r.value;break;case 50:e.snapAngle=r.value;break;case 51:e.viewTwistAngle=r.value;break;case 72:e.circleZoomPercent=r.value;break;case 331:e.frozenLayerIds??(e.frozenLayerIds=[]),e.frozenLayerIds.push(r.value);break;case 90:e.statusBitFlags=r.value;break;case 340:e.clippingBoundaryId=r.value;break;case 1:e.sheetName=r.value;break;case 281:e.renderMode=r.value;break;case 71:e.ucsPerViewport=r.value;break;case 110:e.ucsOrigin=aA(s(a));break;case 111:e.ucsXAxis=aA(s(a));break;case 112:e.ucsYAxis=aA(s(a));break;case 345:e.ucsId=r.value;break;case 346:e.ucsBaseId=r.value;break;case 79:e.orthographicType=r.value;break;case 146:e.elevation=r.value;break;case 170:e.shadePlotMode=r.value;break;case 61:e.majorGridFrequency=r.value;break;case 332:e.backgroundId=r.value;break;case 333:e.shadePlotId=r.value;break;case 348:e.visualStyleId=r.value;break;case 292:e.isDefaultLighting=!!r.value;break;case 282:e.defaultLightingType=r.value;break;case 141:e.brightness=r.value;break;case 142:e.contrast=r.value;break;case 63:case 421:case 431:e.ambientLightColor=r.value;break;case 361:e.sunId=r.value;break;case 335:case 343:case 344:case 91:e.softPointer=r.value}return!0}(r,e,a)&&aP(r,a,e),a=e.next()}return r}}function rZ(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}F="VIEWPORT",(k="ForEntityName")in rK?Object.defineProperty(rK,k,{value:F,enumerable:!0,configurable:!0,writable:!0}):rK[k]=F;let rJ={},r$=[{code:170,name:"multileaderType",parser:d},{code:291,name:"doglegEnabled",parser:p},{code:40,name:"doglegLength",parser:d},{code:172,name:"contentType",parser:d},{code:3,name:"textContent",parser:d},{code:12,name:"textAnchor",parser:u},{code:344,name:"blockHandle",parser:d},{code:15,name:"blockPosition",parser:u},{code:302,name:"leaderSections",parser:function(e,a,r){let t;let n={leaderLines:[]};for(;a.hasNext()&&303!==(t=a.next()).code;){switch(t.code){case 10:n.landingPoint=(t.value,s(a));break;case 11:n.doglegVector=(t.value,s(a));break;case 40:n.doglegLength=t.value;break;case 304:n.leaderLines.push(function(e,a,r){let t;let n={vertices:[]};for(;a.hasNext()&&305!==(t=a.next()).code;)10===t.code&&n.vertices.push((t.value,s(a)));return n}(0,a))}}return n},isMultiple:!0},...au];class rq{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){rZ(this,"parser",c(r$,rJ))}}rZ(rq,"ForEntityName","MULTILEADER");let rQ=Object.fromEntries([ah,ay,aw,aG,aU,aX,aZ,rt,ri,ru,rh,rD,ax,rq,rS,rM,rk,rB,rW,rz,aT,a8,rA,rK].map(e=>[e.ForEntityName,new e]));function r0(e,a){let r=[];for(;!o(e,0,"EOF");){if(0===e.code){if("ENDBLK"===e.value||"ENDSEC"===e.value){a.rewind();break}let t=rQ[e.value];if(t){let n=e.value;e=a.next();let o=t.parseEntity(a,e);o.type=n,aN(o),r.push(o)}else console.warn(`Unsupported ENTITY type: ${e.value}`)}e=a.next()}return r}function r1(e,a){let r={};for(;!o(e,0,"EOF")&&!o(e,0,"ENDSEC");){if(o(e,0,"BLOCK")){let t=r4(e=a.next(),a);aN(t),t.name&&(r[t.name]=t)}e=a.next()}return r}function r4(e,a){let r={};for(;!o(e,0,"EOF");){if(o(e,0,"ENDBLK")){for(e=a.next();!o(e,0,"EOF");){if(o(e,100,"AcDbBlockEnd"))return r;e=a.next()}break}switch(e.code){case 1:r.xrefPath=e.value;break;case 2:r.name=e.value;break;case 3:r.name2=e.value;break;case 5:r.handle=e.value;break;case 8:r.layer=e.value;break;case 10:r.position=s(a);break;case 67:r.paperSpace=!!e.value&&1==e.value;break;case 70:0!==e.value&&(r.type=e.value);break;case 100:break;case 330:r.ownerHandle=e.value;break;case 0:r.entities=r0(e,a)}e=a.next()}return r}function r2(e,a){let r=null,t={};for(;!o(e,0,"EOF")&&!o(e,0,"ENDSEC");)9===e.code?r=e.value:10===e.code?t[r]=s(a):t[r]=e.value,e=a.next();return t}(w=e6||(e6={}))[w.NOT_APPLICABLE=0]="NOT_APPLICABLE",w[w.KEEP_EXISTING=1]="KEEP_EXISTING",w[w.USE_CLONE=2]="USE_CLONE",w[w.XREF_VALUE_NAME=3]="XREF_VALUE_NAME",w[w.VALUE_NAME=4]="VALUE_NAME",w[w.UNMANGLE_NAME=5]="UNMANGLE_NAME";let r3=[{code:3,name:"entries",parser:(e,a)=>{let r={name:e.value};return 350===(e=a.next()).code?r.objectId=e.value:a.rewind(),r},isMultiple:!0},{code:281,name:"recordCloneFlag",parser:d},{code:280,name:"isHardOwned",parser:p},{code:100,name:"subclassMarker",parser:d}];(V=e9||(e9={}))[V.PSLTSCALE=1]="PSLTSCALE",V[V.LIMCHECK=2]="LIMCHECK",(B=e8||(e8={}))[B.INCHES=0]="INCHES",B[B.MILLIMETERS=1]="MILLIMETERS",B[B.PIXELS=2]="PIXELS",(H=ae||(ae={}))[H.LAST_SCREEN_DISPLAY=0]="LAST_SCREEN_DISPLAY",H[H.DRAWING_EXTENTS=1]="DRAWING_EXTENTS",H[H.DRAWING_LIMITS=2]="DRAWING_LIMITS",H[H.VIEW_SPECIFIED=3]="VIEW_SPECIFIED",H[H.WINDOW_SPECIFIED=4]="WINDOW_SPECIFIED",H[H.LAYOUT_INFORMATION=5]="LAYOUT_INFORMATION",(G=aa||(aa={}))[G.AS_DISPLAYED=0]="AS_DISPLAYED",G[G.WIREFRAME=1]="WIREFRAME",G[G.HIDDEN=2]="HIDDEN",G[G.RENDERED=3]="RENDERED",(U=ar||(ar={}))[U.DRAFT=0]="DRAFT",U[U.PREVIEW=1]="PREVIEW",U[U.NORMAL=2]="NORMAL",U[U.PRESENTATION=3]="PRESENTATION",U[U.MAXIMUM=4]="MAXIMUM",U[U.CUSTOM=5]="CUSTOM";let r7=[{code:333,name:"shadePlotId",parser:d},{code:149,name:"imageOriginY",parser:d},{code:148,name:"imageOriginX",parser:d},{code:147,name:"scaleFactor",parser:d},{code:78,name:"shadePlotCustomDPI",parser:d},{code:77,name:"shadePlotResolution",parser:d},{code:76,name:"shadePlotMode",parser:d},{code:75,name:"standardScaleType",parser:d},{code:7,name:"currentStyleSheet",parser:d},{code:74,name:"plotType",parser:d},{code:73,name:"plotRotation",parser:d},{code:72,name:"paperUnit",parser:d},{code:70,name:"layoutFlag",parser:d},{code:143,name:"printScaleDenominator",parser:d},{code:142,name:"printScaleNominator",parser:d},{code:141,name:"windowAreaYMax",parser:d},{code:140,name:"windowAreaYMin",parser:d},{code:49,name:"windowAreaXMax",parser:d},{code:48,name:"windowAreaXMin",parser:d},{code:47,name:"plotOriginY",parser:d},{code:46,name:"plotOriginX",parser:d},{code:45,name:"paperHeight",parser:d},{code:44,name:"paperWidth",parser:d},{code:43,name:"marginTop",parser:d},{code:42,name:"marginRight",parser:d},{code:41,name:"marginBottom",parser:d},{code:40,name:"marginLeft",parser:d},{code:6,name:"plotViewName",parser:d},{code:4,name:"paperSize",parser:d},{code:2,name:"configName",parser:d},{code:1,name:"pageSetupName",parser:d},{code:100,name:"subclassMarker",parser:d}],r5=[{code:333,name:"shadePlotId",parser:d},{code:346,name:"orthographicUcsId",parser:d},{code:345,name:"namedUcsId",parser:d},{code:331,name:"viewportId",parser:d},{code:330,name:"paperSpaceTableId",parser:d},{code:76,name:"orthographicType",parser:d},{code:17,name:"ucsYAxis",parser:u},{code:16,name:"ucsXAxis",parser:u},{code:13,name:"ucsOrigin",parser:u},{code:146,name:"elevation",parser:d},{code:15,name:"maxExtent",parser:u},{code:14,name:"minExtent",parser:u},{code:12,name:"insertionBase",parser:u},{code:11,name:"maxLimit",parser:u},{code:10,name:"minLimit",parser:u},{code:71,name:"tabOrder",parser:d},{code:70,name:"controlFlag",parser:d},{code:1,name:"layoutName",parser:d},{code:100,name:"subclassMarker",parser:d},...r7],r6=[{code:330,name:"ownerObjectId",parser:d},{code:102},{code:360,name:"ownerDictionaryIdHard",parser:d},{code:102},{code:102},{code:330,name:"ownerDictionaryIdSoft",parser:d},{code:102},{code:102},{code:102},{code:5,name:"handle",parser:d}];function r9(e){return"AcDbDictionary"===e.subclassMarker}let r8={LAYOUT:r5,PLOTSETTINGS:r7,DICTIONARY:r3};function te(e,a){let r=[];for(;0!==e.code||!["EOF","ENDSEC"].includes(e.value);){let t=e.value,n=r8[t];if(0===e.code&&n?.length){let o=c([...r6,...n]),s={name:t};o(e=a.next(),a,s)?(r.push(s),e=a.peek()):e=a.next()}else e=a.next()}return{byName:a_(r,({name:e})=>e),byTree:function(e){let a=Object.fromEntries(e.map(e=>[e.handle,e]));for(let r of e)(!r9(r)||"0"!==r.ownerDictionaryIdSoft)&&(r.ownerDictionaryIdSoft&&(r.ownerDictionarySoft=a[r.ownerDictionaryIdSoft]),r.ownerDictionaryIdHard&&(r.ownerDictionaryHard=a[r.ownerDictionaryIdHard]),r.ownerObjectId&&(r.ownerObject=a[r.ownerObjectId])),function(e,a){r9(e)&&e.entries&&(e.entries=Object.fromEntries(e.entries.map(({name:e,objectId:r})=>[e,a[r]])))}(r,a);return e[0]}(r)}}let ta=[{code:100,name:"subclassMarker",parser:d},{code:330,name:"ownerObjectId",parser:d},{code:102,parser(e,a){for(;!o(e,0,"EOF")&&!o(e,102,"}");)e=a.next()}},{code:5,name:"handle",parser:d}],tr=c([{code:310,name:"bmpPreview",parser:d},{code:281,name:"scalability",parser:d},{code:280,name:"explodability",parser:d},{code:70,name:"insertionUnits",parser:d},{code:340,name:"layoutObjects",parser:d},{code:2,name:"name",parser:d},{code:100,name:"subclassMarker",parser:d},...ta]),tt=[{name:"DIMPOST",code:3},{name:"DIMAPOST",code:4},{name:"DIMBLK_OBSOLETE",code:5},{name:"DIMBLK1_OBSOLETE",code:6},{name:"DIMBLK2_OBSOLETE",code:7},{name:"DIMSCALE",code:40,defaultValue:1},{name:"DIMASZ",code:41,defaultValue:.25},{name:"DIMEXO",code:42,defaultValue:.625,defaultValueImperial:.0625},{name:"DIMDLI",code:43,defaultValue:3.75,defaultValueImperial:.38},{name:"DIMEXE",code:44,defaultValue:2.25,defaultValueImperial:.28},{name:"DIMRND",code:45,defaultValue:0},{name:"DIMDLE",code:46,defaultValue:0},{name:"DIMTP",code:47,defaultValue:0},{name:"DIMTM",code:48,defaultValue:0},{name:"DIMTXT",code:140,defaultValue:2.5,defaultValueImperial:.28},{name:"DIMCEN",code:141,defaultValue:2.5,defaultValueImperial:.09},{name:"DIMTSZ",code:142,defaultValue:0},{name:"DIMALTF",code:143,defaultValue:25.4},{name:"DIMLFAC",code:144,defaultValue:1},{name:"DIMTVP",code:145,defaultValue:0},{name:"DIMTFAC",code:146,defaultValue:1},{name:"DIMGAP",code:147,defaultValue:.625,defaultValueImperial:.09},{name:"DIMALTRND",code:148,defaultValue:0},{name:"DIMTOL",code:71,defaultValue:0,defaultValueImperial:1},{name:"DIMLIM",code:72,defaultValue:0},{name:"DIMTIH",code:73,defaultValue:0,defaultValueImperial:1},{name:"DIMTOH",code:74,defaultValue:0,defaultValueImperial:1},{name:"DIMSE1",code:75,defaultValue:0},{name:"DIMSE2",code:76,defaultValue:0},{name:"DIMTAD",code:77,defaultValue:eg.Above,defaultValueImperial:eg.Center},{name:"DIMZIN",code:78,defaultValue:ey.Trailing,defaultValueImperial:ey.Feet},{name:"DIMAZIN",code:79,defaultValue:eS.None},{name:"DIMALT",code:170,defaultValue:0},{name:"DIMALTD",code:171,defaultValue:3,defaultValueImperial:2},{name:"DIMTOFL",code:172,defaultValue:1,defaultValueImperial:0},{name:"DIMSAH",code:173,defaultValue:0},{name:"DIMTIX",code:174,defaultValue:0},{name:"DIMSOXD",code:175,defaultValue:0},{name:"DIMCLRD",code:176,defaultValue:0},{name:"DIMCLRE",code:177,defaultValue:0},{name:"DIMCLRT",code:178,defaultValue:0},{name:"DIMADEC",code:179},{name:"DIMUNIT",code:270},{name:"DIMDEC",code:271,defaultValue:2,defaultValueImperial:4},{name:"DIMTDEC",code:272,defaultValue:2,defaultValueImperial:4},{name:"DIMALTU",code:273,defaultValue:2},{name:"DIMALTTD",code:274,defaultValue:2,defaultValueImperial:4},{name:"DIMAUNIT",code:275,defaultValue:0},{name:"DIMFRAC",code:276,defaultValue:0},{name:"DIMLUNIT",code:277,defaultValue:2},{name:"DIMDSEP",code:278,defaultValue:",",defaultValueImperial:"."},{name:"DIMJUST",code:280,defaultValue:eN.Center},{name:"DIMSD1",code:281,defaultValue:0},{name:"DIMSD2",code:282,defaultValue:0},{name:"DIMTOLJ",code:283,defaultValue:e_.Center},{name:"DIMTZIN",code:284,defaultValue:ey.Trailing,defaultValueImperial:ey.Feet},{name:"DIMALTZ",code:285,defaultValue:ey.Trailing},{name:"DIMALTTZ",code:286,defaultValue:ey.Trailing},{name:"DIMFIT",code:287},{name:"DIMUPT",code:288,defaultValue:0},{name:"DIMATFIT",code:289,defaultValue:3},{name:"DIMTXSTY",code:340},{name:"DIMLDRBLK",code:341},{name:"DIMBLK",code:342},{name:"DIMBLK1",code:343},{name:"DIMBLK2",code:344},{name:"DIMLWD",code:371,defaultValue:-2},{name:"DIMLWD",code:372,defaultValue:-2}],tn=c([...tt.map(e=>({...e,parser:d})),{code:70,name:"standardFlag",parser:d},{code:2,name:"name",parser:d},{code:100,name:"subclassMarker",parser:d},{code:105,name:"handle",parser:d},...ta.filter(e=>5!==e.code)]),to=c([{code:347,name:"materialObjectId",parser:d},{code:390,name:"plotStyleNameObjectId",parser:d},{code:370,name:"lineweight",parser:d},{code:290,name:"isPlotting",parser:p},{code:6,name:"lineType",parser:d},{code:62,name:"colorIndex",parser:d},{code:70,name:"standardFlag",parser:d},{code:2,name:"name",parser:d},{code:100,name:"subclassMarker",parser:d},...ta]);(W=at||(at={}))[W.NONE=0]="NONE",W[W.AbsoluteRotation=1]="AbsoluteRotation",W[W.TextEmbedded=2]="TextEmbedded",W[W.ShapeEmbedded=4]="ShapeEmbedded";let ts=c([{code:9,name:"text",parser:d},{code:45,name:"offsetY",parser:d},{code:44,name:"offsetX",parser:d},{code:50,name:"rotation",parser:d},{code:46,name:"scale",parser:d},{code:340,name:"styleObjectId",parser:d},{code:75,name:"shapeNumber",parser:d},{code:74,name:"elementTypeFlag",parser:d},{code:49,name:"elementLength",parser:d}],{elementTypeFlag:0,elementLength:0}),ti=c([{code:49,name:"pattern",parser(e,a){let r={};return ts(e,a,r),r},isMultiple:!0},{code:40,name:"totalPatternLength",parser:d},{code:73,name:"numberOfLineTypes",parser:d},{code:72,parser:d},{code:3,name:"description",parser:d},{code:70,name:"standardFlag",parser:d},{code:2,name:"name",parser:d},{code:100,name:"subclassMarker",parser:d},...ta]),tc=c([{code:1e3,name:"extendedFont",parser:d},{code:1001},{code:4,name:"bigFont",parser:d},{code:3,name:"font",parser:d},{code:42,name:"lastHeight",parser:d},{code:71,name:"textGenerationFlag",parser:d},{code:50,name:"obliqueAngle",parser:d},{code:41,name:"widthFactor",parser:d},{code:40,name:"fixedTextHeight",parser:d},{code:70,name:"standardFlag",parser:d},{code:2,name:"name",parser:d},{code:100,name:"subclassMarker",parser:d},...ta]),tl=c([{code:[63,421,431],name:"ambientColor",parser:d},{code:142,name:"contrast",parser:d},{code:141,name:"brightness",parser:d},{code:282,name:"defaultLightingType",parser:d},{code:292,name:"isDefaultLightingOn",parser:p},{code:348,name:"visualStyleObjectId",parser:d},{code:333,name:"shadePlotObjectId",parser:d},{code:332,name:"backgroundObjectId",parser:d},{code:61,name:"majorGridLines",parser:d},{code:170,name:"shadePlotSetting",parser:d},{code:146,name:"elevation",parser:d},{code:79,name:"orthographicType",parser:d},{code:112,name:"ucsYAxis",parser:u},{code:111,name:"ucsXAxis",parser:u},{code:110,name:"ucsOrigin",parser:u},{code:74,name:"ucsIconSetting",parser:d},{code:71,name:"viewMode",parser:d},{code:281,name:"renderMode",parser:d},{code:1,name:"styleSheet",parser:d},{code:[331,441],name:"frozenLayers",parser:d,isMultiple:!0},{code:72,name:"circleSides",parser:d},{code:51,name:"viewTwistAngle",parser:d},{code:50,name:"snapRotationAngle",parser:d},{code:45,name:"viewHeight",parser:d},{code:44,name:"backClippingPlane",parser:d},{code:43,name:"frontClippingPlane",parser:d},{code:42,name:"lensLength",parser:d},{code:17,name:"viewTarget",parser:u},{code:16,name:"viewDirectionFromTarget",parser:u},{code:15,name:"gridSpacing",parser:u},{code:14,name:"snapSpacing",parser:u},{code:13,name:"snapBasePoint",parser:u},{code:12,name:"center",parser:u},{code:11,name:"upperRightCorner",parser:u},{code:10,name:"lowerLeftCorner",parser:u},{code:70,name:"standardFlag",parser:d},{code:2,name:"name",parser:d},{code:100,name:"subclassMarker",parser:d},...ta]),td={BLOCK_RECORD:tr,DIMSTYLE:tn,LAYER:to,LTYPE:ti,STYLE:tc,VPORT:tl},tu=c([{code:70,name:"maxNumberOfEntries",parser:d},{code:100,name:"subclassMarker",parser:d},{code:330,name:"ownerObjectId",parser:d},{code:102},{code:360,isMultiple:!0},{code:102},{code:5,name:"handle",parser:d},{code:2,name:"name",parser:d}]);function tp(e,a){let r={};for(;!o(e,0,"EOF")&&!o(e,0,"ENDSEC");){if(o(e,0,"TABLE")){e=a.next();let t={entries:[]};tu(e,a,t),r[t.name]=t}if(o(e,0)&&!o(e,0,"ENDTAB")){let t=e.value;e=a.next();let n=td[t];if(!n){a.debug&&console.warn(`parseTable: Invalid table name '${t}'`),e=a.next();continue}let o={};n(e,a,o),r[t]?.entries.push(o)}e=a.next()}return r}function tm(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}class tE{next(){if(!this.hasNext())return this._eof?this.debug&&console.warn("Cannot call 'next' after EOF group has been read"):this.debug&&console.warn("Unexpected end of input: EOF group not read before end of file. Ended on code "+this._data[this._pointer]),{code:0,value:"EOF"};let e=parseInt(this._data[this._pointer++],10),a=th(e,this._data[this._pointer++]),r={code:e,value:a};return o(r,0,"EOF")&&(this._eof=!0),this.lastReadGroup=r,r}peek(){if(!this.hasNext()){if(this._eof)throw Error("Cannot call 'next' after EOF group has been read");throw Error("Unexpected end of input: EOF group not read before end of file. Ended on code "+this._data[this._pointer])}let e={code:parseInt(this._data[this._pointer]),value:0};return e.value=th(e.code,this._data[this._pointer+1]),e}rewind(e){e=e||1,this._pointer=this._pointer-2*e}hasNext(){return!this._eof&&!(this._pointer>this._data.length-2)}isEOF(){return this._eof}constructor(e,a){tm(this,"_pointer",void 0),tm(this,"_data",void 0),tm(this,"_eof",void 0),tm(this,"debug",!0),tm(this,"lastReadGroup",{code:0,value:0}),this._pointer=0,this._data=e,this._eof=!1,this.debug=a??!0}}function th(e,a){return e<=9?a:e>=10&&e<=59?parseFloat(a.trim()):e>=60&&e<=99?parseInt(a.trim()):e>=100&&e<=109?a:e>=110&&e<=149?parseFloat(a.trim()):e>=160&&e<=179?parseInt(a.trim()):e>=210&&e<=239?parseFloat(a.trim()):e>=270&&e<=289?parseInt(a.trim()):e>=290&&e<=299?function(e){if("0"===e)return!1;if("1"===e)return!0;throw TypeError("String '"+e+"' cannot be cast to Boolean type")}(a.trim()):e>=300&&e<=369?a:e>=370&&e<=389?parseInt(a.trim()):e>=390&&e<=399?a:e>=400&&e<=409?parseInt(a.trim()):e>=410&&e<=419?a:e>=420&&e<=429?parseInt(a.trim()):e>=430&&e<=439?a:e>=440&&e<=459?parseInt(a.trim()):e>=460&&e<=469?parseFloat(a.trim()):e>=470&&e<=481||999===e||e>=1e3&&e<=1009?a:e>=1010&&e<=1059?parseFloat(a.trim()):e>=1060&&e<=1071?parseInt(a.trim()):(console.log("WARNING: Group code does not have a defined type: %j",{code:e,value:a}),a)}function tI(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}class tf{parseStart(e){this.startCode=e.code}setPoint(e){if(this.code=e.code,this.value=e.value,this.startCode===this.code&&(this.x=this.value),this.startCode===this.code+10)this.y=this.value;else{let e={x:this.x??0,y:this.y??0,z:this.z??0};return this.reset(),e}if(this.startCode===this.code+20)this.z=this.value;else{let e={x:this.x??0,y:this.y??0,z:this.z??0};return this.reset(),e}}reset(){this.x=void 0,this.y=void 0,this.z=void 0}constructor(){tI(this,"point",{}),tI(this,"startCode",0),tI(this,"code",0),tI(this,"value",0),tI(this,"x",void 0),tI(this,"y",void 0),tI(this,"z",void 0)}}function tb(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}class tT{constructor(){tb(this,"encoding","utf-8"),tb(this,"encodingFailureFatal",!1)}}class tD extends Error{constructor(e,a,r){let t=`[Line ${a}]: ${e}`;r?.cause&&(t+=`
2
2
  Caused by ${r.cause.toString()}
3
- ${r.cause.stack}`),super(t),tT(this,"line",void 0),this.line=a}}class tg extends EventTarget{Feed(e,a=!1){let r=this._decoder.decode(e??void 0,{stream:!a});this.FeedString(r,a)}FeedString(e,a=!1){if(this._finalChunkSeen)throw Error("Data fed after final chunk processed");a&&(this._finalChunkSeen=!0),this._curChunk+=e,this._ProcessCurChunk(),a&&this._Finalize()}_Finalize(){}async FeedFile(e,a){let r=e.byteLength;for(let t=0;t<r;t+=65536){a?.throwIfAborted();let n=Math.min(r-t,65536),o=await e.slice(t,t+n);this.Feed(o,t+n>=r)}}_ProcessCurChunk(){for(let e of this._ConsumeCurChunkLines())if(this._ProcessLine(e),this._curLineNum++,!this._eof&&"HEADER"===this._curSection){let e=this._curValue.value;9===this._curValue.code?this._currVarName=e:10===this._curValue.code?this._pointParser.parseStart(this._curValue):this._pointParser.startCode===this._curValue.code||this._pointParser.startCode+10===this._curValue.code||this._pointParser.startCode+20===this._curValue.code?e=this._pointParser.setPoint(this._curValue):this._currVarName&&(this.dxf.header[this._currVarName]=e)}}*_ConsumeCurChunkLines(){let e=0,a=this._curChunk.length;for(;e<a;){let r=this._curChunk.indexOf("\r",e),t=0;if(r>=0?(t=r+1)<a&&"\n"==this._curChunk.charAt(t)&&t++:(r=this._curChunk.indexOf("\n",e))>=0&&(t=r+1),r<0)break;yield this._curChunk.substring(e,r),e=t}0!=e&&(this._curChunk=this._curChunk.substring(e))}_ProcessLine(e){if(null===this._curGroupCode){let a=e.trim();this._curGroupCode=parseInt(a),isNaN(this._curGroupCode)&&this._Error("Bad group code: "+a);return}let a=new tN(this._curGroupCode,e);if(!o(a,0,"EOF")){switch(a.value){case"SECTION":this._curSection="SECTION";break;case"HEADER":this._curSection="HEADER";break;case"BLOCKS":this._curSection="BLOCKS";break;case"ENTITIES":this._curSection="ENTITIES";break;case"TABLES":this._curSection="TABLES";break;case"OBJECTS":this._curSection="OBJECTS"}this._eof=!1}o(a,0,"EOF")&&(this._eof=!0),this._curValue=a,this._curGroupCode=null}_Error(e,a=null){let r;throw a&&(r={cause:a}),new tO(e,this._curLineNum,r)}constructor(e=new tD){super(),tT(this,"dxf",{header:{},blocks:{},entities:[],tables:{},objects:{byName:{},byTree:void 0}}),tT(this,"_decoder",void 0),tT(this,"_pointParser",void 0),tT(this,"_finalChunkSeen",!1),tT(this,"_curChunk",""),tT(this,"_curGroupCode",null),tT(this,"_curLineNum",1),tT(this,"_eof",!1),tT(this,"_curValue",{code:0,value:0}),tT(this,"_curSection",""),tT(this,"_currVarName",""),this._decoder=new TextDecoder(e.encoding,{fatal:e.encodingFailureFatal}),this._pointParser=new tb}}class tN{constructor(e,a){tT(this,"code",void 0),tT(this,"value",void 0),this.code=e,this.value=th(e,a)}}function tS(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}class t_{constructor(){tS(this,"encoding","utf-8"),tS(this,"encodingFailureFatal",!1)}}class tL extends EventTarget{parseSync(e){let a=new tI(e.split(/\r\n|\r|\n/g));if(!a.hasNext())throw Error("Empty file");return this.parseAll(a)}parseStream(e){let a="",r=this;return new Promise((t,n)=>{e.on("data",e=>{a+=e}),e.on("end",()=>{try{let e=a.split(/\r\n|\r|\n/g),n=new tI(e);if(!n.hasNext())throw Error("Empty file");t(r.parseAll(n))}catch(e){n(e)}}),e.on("error",e=>{n(e)})})}async parseFromUrl(e,a){let r=await fetch(e,a);if(!r.body)return null;let t=r.body.getReader(),n="";for(;;){let{done:e,value:a}=await t.read();if(e){n+=this._decoder.decode(new ArrayBuffer(0),{stream:!1});break}n+=this._decoder.decode(a,{stream:!0})}return this.parseSync(n)}parseAll(e){let a={header:{},blocks:{},entities:[],tables:{},objects:{byName:{},byTree:void 0}},r=e.next();for(;!o(r,0,"EOF");)o(r,0,"SECTION")&&(o(r=e.next(),2,"HEADER")?(r=e.next(),a.header=r6(r,e)):o(r,2,"BLOCKS")?(r=e.next(),a.blocks=r7(r,e)):o(r,2,"ENTITIES")?(r=e.next(),a.entities=r3(r,e)):o(r,2,"TABLES")?(r=e.next(),a.tables=tm(r,e)):o(r,2,"OBJECTS")&&(r=e.next(),a.objects=tn(r,e))),r=e.next();return a}constructor(e=new t_){super(),tS(this,"_decoder",void 0),this._decoder=new TextDecoder(e.encoding,{fatal:e.encodingFailureFatal})}}export{eI as AttachmentPoint,ep as BlockTypeFlag,ev as BoundaryPathEdgeType,eC as BoundaryPathTypeFlag,em as ColorCode,aI as CommonEntitySnippets,t as DefaultDxfHeaderVariables,eB as DefaultLightingType,to as DimStyleVariablesSchema,eD as DimensionTextHorizontal,eh as DimensionTextLineSpacing,ef as DimensionTextVertical,eO as DimensionToleranceTextVertical,eE as DimensionType,eb as DimensionZeroSuppression,eT as DimensionZeroSuppressionAngular,tO as DxfParsingError,tg as DxfStreamParser,tD as DxfStreamParserOptions,eN as HatchAssociativity,eL as HatchBoundaryAnnotation,ey as HatchGradientColorFlag,eA as HatchGradientFlag,e_ as HatchPatternType,eg as HatchSolidFill,eS as HatchStyle,n as INDEXED_CHUNK_SIZE,ae as LineTypeElementType,eR as Measurement,eP as ObscuredLineTypes,ew as OrthographicType,ek as RenderMode,eM as ReservedLineweight,a as SPLINE_SUBDIVISION,eV as ShadePlotMode,eH as ShadowMode,r as TESSELLATION_ANGLE,eF as UCSPerViewport,e as UndeterminedBlockColor,ex as ViewportStatusFlag,al as XDataParserSnippets,av as classify,aE as createXDataCatcher,am as createXDataControlInterpreter,tL as default,af as ensureHandle,aM as ensurePoint3D,aP as generateIntegers,ar as getAcadColor,o as isMatched,r5 as parseBlock,r7 as parseBlocks,r3 as parseEntities,s as parseExtensions,r6 as parseHeader,tn as parseObjects,tm as parseTables,au as parseXData};
3
+ ${r.cause.stack}`),super(t),tb(this,"line",void 0),this.line=a}}class tO extends EventTarget{Feed(e,a=!1){let r=this._decoder.decode(e??void 0,{stream:!a});this.FeedString(r,a)}FeedString(e,a=!1){if(this._finalChunkSeen)throw Error("Data fed after final chunk processed");a&&(this._finalChunkSeen=!0),this._curChunk+=e,this._ProcessCurChunk(),a&&this._Finalize()}_Finalize(){}async FeedFile(e,a){let r=e.byteLength;for(let t=0;t<r;t+=65536){a?.throwIfAborted();let n=Math.min(r-t,65536),o=await e.slice(t,t+n);this.Feed(o,t+n>=r)}}_ProcessCurChunk(){for(let e of this._ConsumeCurChunkLines())if(this._ProcessLine(e),this._curLineNum++,!this._eof&&"HEADER"===this._curSection){let e=this._curValue.value;9===this._curValue.code?this._currVarName=e:10===this._curValue.code?this._pointParser.parseStart(this._curValue):this._pointParser.startCode===this._curValue.code||this._pointParser.startCode+10===this._curValue.code||this._pointParser.startCode+20===this._curValue.code?e=this._pointParser.setPoint(this._curValue):this._currVarName&&(this.dxf.header[this._currVarName]=e)}}*_ConsumeCurChunkLines(){let e=0,a=this._curChunk.length;for(;e<a;){let r=this._curChunk.indexOf("\r",e),t=0;if(r>=0?(t=r+1)<a&&"\n"==this._curChunk.charAt(t)&&t++:(r=this._curChunk.indexOf("\n",e))>=0&&(t=r+1),r<0)break;yield this._curChunk.substring(e,r),e=t}0!=e&&(this._curChunk=this._curChunk.substring(e))}_ProcessLine(e){if(null===this._curGroupCode){let a=e.trim();this._curGroupCode=parseInt(a),isNaN(this._curGroupCode)&&this._Error("Bad group code: "+a);return}let a=new tg(this._curGroupCode,e);if(!o(a,0,"EOF")){switch(a.value){case"SECTION":this._curSection="SECTION";break;case"HEADER":this._curSection="HEADER";break;case"BLOCKS":this._curSection="BLOCKS";break;case"ENTITIES":this._curSection="ENTITIES";break;case"TABLES":this._curSection="TABLES";break;case"OBJECTS":this._curSection="OBJECTS"}this._eof=!1}o(a,0,"EOF")&&(this._eof=!0),this._curValue=a,this._curGroupCode=null}_Error(e,a=null){let r;throw a&&(r={cause:a}),new tD(e,this._curLineNum,r)}constructor(e=new tT){super(),tb(this,"dxf",{header:{},blocks:{},entities:[],tables:{},objects:{byName:{},byTree:void 0}}),tb(this,"_decoder",void 0),tb(this,"_pointParser",void 0),tb(this,"_finalChunkSeen",!1),tb(this,"_curChunk",""),tb(this,"_curGroupCode",null),tb(this,"_curLineNum",1),tb(this,"_eof",!1),tb(this,"_curValue",{code:0,value:0}),tb(this,"_curSection",""),tb(this,"_currVarName",""),this._decoder=new TextDecoder(e.encoding,{fatal:e.encodingFailureFatal}),this._pointParser=new tf}}class tg{constructor(e,a){tb(this,"code",void 0),tb(this,"value",void 0),this.code=e,this.value=th(e,a)}}function ty(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}class tS{constructor(){ty(this,"encoding","utf-8"),ty(this,"encodingFailureFatal",!1)}}class tN extends EventTarget{parseSync(e){let a=new tE(e.split(/\r\n|\r|\n/g));if(!a.hasNext())throw Error("Empty file");return this.parseAll(a)}parseStream(e){let a="",r=this;return new Promise((t,n)=>{e.on("data",e=>{a+=e}),e.on("end",()=>{try{let e=a.split(/\r\n|\r|\n/g),n=new tE(e);if(!n.hasNext())throw Error("Empty file");t(r.parseAll(n))}catch(e){n(e)}}),e.on("error",e=>{n(e)})})}async parseFromUrl(e,a){let r=await fetch(e,a);if(!r.body)return null;let t=r.body.getReader(),n="";for(;;){let{done:e,value:a}=await t.read();if(e){n+=this._decoder.decode(new ArrayBuffer(0),{stream:!1});break}n+=this._decoder.decode(a,{stream:!0})}return this.parseSync(n)}parseAll(e){let a={header:{},blocks:{},entities:[],tables:{},objects:{byName:{},byTree:void 0}},r=e.next();for(;!o(r,0,"EOF");)o(r,0,"SECTION")&&(o(r=e.next(),2,"HEADER")?(r=e.next(),a.header=r2(r,e)):o(r,2,"BLOCKS")?(r=e.next(),a.blocks=r1(r,e)):o(r,2,"ENTITIES")?(r=e.next(),a.entities=r0(r,e)):o(r,2,"TABLES")?(r=e.next(),a.tables=tp(r,e)):o(r,2,"OBJECTS")&&(r=e.next(),a.objects=te(r,e))),r=e.next();return a}constructor(e=new tS){super(),ty(this,"_decoder",void 0),this._decoder=new TextDecoder(e.encoding,{fatal:e.encodingFailureFatal})}}export{ah as ArcEntityParser,ay as AttDefEntityParser,eX as AttDefMTextFlag,eD as AttachmentPoint,aw as AttributeEntityParser,ej as AttributeFlag,ef as BlockTypeFlag,ek as BoundaryPathEdgeType,eR as BoundaryPathTypeFlag,aG as CircleEntityParser,eb as ColorCode,au as CommonEntitySnippets,t as DefaultDxfHeaderVariables,eW as DefaultLightingType,af as DefaultTextEntity,r3 as DictionarySnippets,tt as DimStyleVariablesSchema,aU as DimensionParser,eN as DimensionTextHorizontal,eO as DimensionTextLineSpacing,eg as DimensionTextVertical,e_ as DimensionToleranceTextVertical,eT as DimensionType,ey as DimensionZeroSuppression,eS as DimensionZeroSuppressionAngular,tD as DxfParsingError,tO as DxfStreamParser,tT as DxfStreamParserOptions,aX as EllipseEntityParser,e$ as FaceEdgeInvisibility,aZ as FaceEntityParser,eA as HatchAssociativity,ev as HatchBoundaryAnnotation,a8 as HatchEntityParser,ex as HatchGradientColorFlag,eM as HatchGradientFlag,eC as HatchPatternType,eL as HatchSolidFill,eP as HatchStyle,n as INDEXED_CHUNK_SIZE,e0 as ImageClipMode,eQ as ImageClippingBoundaryType,rt as ImageEntityParser,eq as ImageFlags,ri as InsertEntityParser,e4 as LWPolylineFlag,rD as LWPolylineParser,e9 as LayoutControlFlag,r5 as LayoutSnippets,e1 as LeaderCreationFlag,ru as LeaderEntityParser,rh as LineEntityParser,at as LineTypeElementType,eJ as MTextDrawingDirection,ax as MTextEntityParser,aM as MTextEntityParserSnippets,eV as Measurement,eF as ObscuredLineTypes,eU as OrthographicType,e8 as PlotPaperUnit,r7 as PlotSettingsSnippets,ae as PlotType,rS as PointEntityParser,e2 as PolylineFlag,rM as PolylineParser,rk as RayParser,e6 as RecordCloneFlag,eH as RenderMode,ew as ReservedLineweight,a as SPLINE_SUBDIVISION,rB as SectionEntityParser,aa as ShadePlotMode,ar as ShadePlotResolution,eY as ShadowMode,e3 as SmoothType,rW as SolidEntityParser,rz as SplineEntityParser,e5 as SplineFlag,r as TESSELLATION_ANGLE,aT as TextEntityParser,ab as TextEntityParserSnippets,ez as TextGenerationFlag,eK as TextHorizontalAlign,eZ as TextVerticalAlign,eG as UCSPerViewport,e as UndeterminedBlockColor,e7 as VertexFlag,rA as VertexParser,rK as ViewportParser,eB as ViewportStatusFlag,as as XDataParserSnippets,a_ as classify,ad as createXDataCatcher,al as createXDataControlInterpreter,tN as default,aN as ensureHandle,aA as ensurePoint3D,aL as generateIntegers,ao as getAcadColor,o as isMatched,r4 as parseBlock,tr as parseBlockRecordTable,r1 as parseBlocks,tn as parseDimStyle,r0 as parseEntities,m as parseExtensions,r2 as parseHeader,ti as parseLTypeTable,to as parseLayerTable,te as parseObjects,tc as parseStyleTable,tp as parseTables,tl as parseVPortTable,ai as parseXData};
@@ -44,12 +44,6 @@ export declare enum OrthographicType {
44
44
  LEFT = 5,
45
45
  RIGHT = 6
46
46
  }
47
- export declare enum ShadePlotMode {
48
- AS_DISPLAYED = 0,
49
- WIREFRAME = 1,
50
- HIDDEN = 2,
51
- RENDERED = 3
52
- }
53
47
  export declare enum DefaultLightingType {
54
48
  ONE_DISTANT_LIGHT = 0,
55
49
  TWO_DISTANT_LIGHTS = 1
@@ -1,3 +1,2 @@
1
1
  export type * from './types';
2
- export * from './consts';
3
2
  export * from './parser';
@@ -1,4 +1,26 @@
1
- export type * from "./types";
1
+ export * from "./arc";
2
+ export * from "./attdef";
3
+ export * from './attribute';
4
+ export * from "./circle";
5
+ export * from "./dimension";
6
+ export * from "./ellipse";
7
+ export * from './face';
8
+ export * from "./hatch";
9
+ export * from './image';
10
+ export * from "./insert";
11
+ export * from "./leader";
12
+ export * from "./line";
13
+ export * from "./lwpolyline";
14
+ export * from "./mtext";
15
+ export * from "./point";
16
+ export * from "./polyline";
17
+ export * from "./ray";
18
+ export * from "./section";
19
+ export * from "./solid";
20
+ export * from "./spline";
21
+ export * from "./text";
22
+ export * from "./vertex";
23
+ export * from "./viewport";
2
24
  export * from "./shared";
3
25
  import type DxfArrayScanner from "../DxfArrayScanner";
4
26
  import { ScannerGroup } from "../DxfArrayScanner";
@@ -1,5 +1,6 @@
1
- import type { DefaultLightingType, OrthographicType, RenderMode, ShadePlotMode, UCSPerViewport } from '../../../consts';
2
- import type { Point2D, Point3D } from '../../../types';
1
+ import type { Point2D, Point3D } from '@src/types';
2
+ import type { DefaultLightingType, OrthographicType, RenderMode, UCSPerViewport } from '@src/consts';
3
+ import type { ShadePlotMode } from '@src/parser/objects';
3
4
  export interface ViewportEntity {
4
5
  type: 'VIEWPORT';
5
6
  subclassMarker: string;
@@ -1,9 +1,8 @@
1
- export * from "./blocks";
2
- export * from "./types";
1
+ export type * from "./types";
3
2
  export * from "./blocks";
4
3
  export * from "./entities";
5
4
  export * from "./header";
6
5
  export * from "./objects";
7
- export * from "./shared";
8
6
  export * from "./tables";
7
+ export * from "./shared";
9
8
  export * from './getAcadColor';
@@ -0,0 +1,8 @@
1
+ export declare enum RecordCloneFlag {
2
+ NOT_APPLICABLE = 0,
3
+ KEEP_EXISTING = 1,
4
+ USE_CLONE = 2,
5
+ XREF_VALUE_NAME = 3,
6
+ VALUE_NAME = 4,
7
+ UNMANGLE_NAME = 5
8
+ }
@@ -0,0 +1,3 @@
1
+ export type * from './types';
2
+ export * from './consts';
3
+ export * from './parser';
@@ -0,0 +1,2 @@
1
+ import { DXFParserSnippet } from '@src/parser/shared/parserGenerator';
2
+ export declare const DictionarySnippets: DXFParserSnippet[];
@@ -0,0 +1,11 @@
1
+ import type { CommonDXFObject } from "../types";
2
+ import type { RecordCloneFlag } from "./consts";
3
+ export interface DictionaryDXFObject extends CommonDXFObject {
4
+ subclassMarker: 'AcDbDictionary';
5
+ isHardOwned?: boolean;
6
+ recordCloneFlag: RecordCloneFlag;
7
+ entries: {
8
+ name: string;
9
+ objectId?: string;
10
+ }[];
11
+ }
@@ -1,7 +1,10 @@
1
1
  export type * from './types';
2
+ export * from './dictionary';
3
+ export * from './layout';
4
+ export * from './plotSettings';
2
5
  import type DxfArrayScanner from '../DxfArrayScanner';
3
6
  import { ScannerGroup } from '../DxfArrayScanner';
4
7
  export declare function parseObjects(curr: ScannerGroup, scanner: DxfArrayScanner): {
5
8
  byName: Record<string, any[]>;
6
- byTree: import("./types").DxfObject;
9
+ byTree: import("./types").CommonDXFObject;
7
10
  };
@@ -0,0 +1,4 @@
1
+ export declare enum LayoutControlFlag {
2
+ PSLTSCALE = 1,
3
+ LIMCHECK = 2
4
+ }
@@ -0,0 +1,3 @@
1
+ export type * from './types';
2
+ export * from './consts';
3
+ export * from './parser';
@@ -0,0 +1,2 @@
1
+ import { DXFParserSnippet } from '@src/parser/shared/parserGenerator';
2
+ export declare const LayoutSnippets: DXFParserSnippet[];
@@ -1,12 +1,7 @@
1
- import type { OrthographicType } from '../../consts';
2
- import type { Point2D, Point3D } from '../../types';
3
- import { DXFParserSnippet } from '../shared/parserGenerator';
4
- import { PlotSettingDXFObject } from './plotSettings';
5
- export declare const LayoutSnippets: DXFParserSnippet[];
6
- export declare enum LayoutControlFlag {
7
- PSLTSCALE = 1,
8
- LIMCHECK = 2
9
- }
1
+ import type { Point2D, Point3D } from "@src/types";
2
+ import type { OrthographicType } from "@src/consts";
3
+ import type { PlotSettingDXFObject } from "../plotSettings";
4
+ import type { LayoutControlFlag } from "./consts";
10
5
  export interface LayoutDXFObject extends Omit<PlotSettingDXFObject, 'subclassMarker'> {
11
6
  subclassMarker: 'AcDbLayout';
12
7
  layoutName: string;
@@ -0,0 +1,27 @@
1
+ export declare enum PlotPaperUnit {
2
+ INCHES = 0,
3
+ MILLIMETERS = 1,
4
+ PIXELS = 2
5
+ }
6
+ export declare enum PlotType {
7
+ LAST_SCREEN_DISPLAY = 0,
8
+ DRAWING_EXTENTS = 1,
9
+ DRAWING_LIMITS = 2,
10
+ VIEW_SPECIFIED = 3,// specified in plotViewName
11
+ WINDOW_SPECIFIED = 4,// specified in plotViewName
12
+ LAYOUT_INFORMATION = 5
13
+ }
14
+ export declare enum ShadePlotMode {
15
+ AS_DISPLAYED = 0,
16
+ WIREFRAME = 1,
17
+ HIDDEN = 2,
18
+ RENDERED = 3
19
+ }
20
+ export declare enum ShadePlotResolution {
21
+ DRAFT = 0,
22
+ PREVIEW = 1,
23
+ NORMAL = 2,
24
+ PRESENTATION = 3,
25
+ MAXIMUM = 4,
26
+ CUSTOM = 5
27
+ }
@@ -0,0 +1,3 @@
1
+ export type * from './types';
2
+ export * from './consts';
3
+ export * from './parser';
@@ -0,0 +1,2 @@
1
+ import { DXFParserSnippet } from '@src/parser/shared/parserGenerator';
2
+ export declare const PlotSettingsSnippets: DXFParserSnippet[];
@@ -1,33 +1,5 @@
1
- import { DXFParserSnippet } from '../shared/parserGenerator';
2
- import type { CommonDXFObject } from './common';
3
- export declare const PlotSettingsSnippets: DXFParserSnippet[];
4
- export declare enum PlotPaperUnit {
5
- INCHES = 0,
6
- MILLIMETERS = 1,
7
- PIXELS = 2
8
- }
9
- export declare enum PlotType {
10
- LAST_SCREEN_DISPLAY = 0,
11
- DRAWING_EXTENTS = 1,
12
- DRAWING_LIMITS = 2,
13
- VIEW_SPECIFIED = 3,// specified in plotViewName
14
- WINDOW_SPECIFIED = 4,// specified in plotViewName
15
- LAYOUT_INFORMATION = 5
16
- }
17
- export declare enum ShadePlotMode {
18
- AS_DISPLAYED = 0,
19
- WIREFRAME = 1,
20
- HIDDEN = 2,
21
- RENDERED = 3
22
- }
23
- export declare enum ShadePlotResolution {
24
- DRAFT = 0,
25
- PREVIEW = 1,
26
- NORMAL = 2,
27
- PRESENTATION = 3,
28
- MAXIMUM = 4,
29
- CUSTOM = 5
30
- }
1
+ import type { CommonDXFObject } from "../types";
2
+ import type { PlotPaperUnit, PlotType, ShadePlotMode, ShadePlotResolution } from "./consts";
31
3
  export interface PlotSettingDXFObject extends CommonDXFObject {
32
4
  subclassMarker: 'AcDbPlotSettings7';
33
5
  pageSetupName: string;
@@ -0,0 +1,2 @@
1
+ import { DXFParserSnippet } from '../shared/parserGenerator';
2
+ export declare const CommonObjectSnippets: DXFParserSnippet[];
@@ -1,2 +1,2 @@
1
- import type { DxfObject } from './types';
2
- export declare function createObjectTree(objects: DxfObject[]): DxfObject;
1
+ import type { CommonDXFObject } from './types';
2
+ export declare function createObjectTree(objects: CommonDXFObject[]): CommonDXFObject;
@@ -1,11 +1,10 @@
1
- export interface DxfObject {
2
- name: string;
3
- handle: string;
1
+ export interface CommonDXFObject {
2
+ ownerObjectId: string;
3
+ ownerDictionaryIdHard: string;
4
4
  ownerDictionaryIdSoft: string;
5
- ownerDictionaryIdHard?: string;
6
- ownerObjectId?: string;
5
+ handle: string;
7
6
  }
8
- export interface HydratedDxfObject extends DxfObject {
7
+ export interface HydratedDxfObject extends CommonDXFObject {
9
8
  ownerDictionarySoft?: HydratedDxfObject;
10
9
  ownerDictionaryHard?: HydratedDxfObject;
11
10
  ownerObject?: HydratedDxfObject;
@@ -1,10 +1,8 @@
1
- export type * from './blockRecord';
2
- export type * from './dimStyle';
3
- export type * from './layer';
4
- export type * from './ltype';
5
- export type * from './style';
6
- export type * from './vport';
1
+ export * from './blockRecord';
2
+ export * from './dimStyle';
3
+ export * from './layer';
4
+ export * from './ltype';
5
+ export * from './style';
6
+ export * from './vport';
7
7
  export type * from './types';
8
- export * from './dimStyle/consts';
9
- export * from './ltype/consts';
10
8
  export * from './parser';
@@ -1,8 +1,7 @@
1
1
  import type { DxfHeader } from '../types/dxfHeader';
2
2
  import type { DxfBlock } from './blocks/types';
3
3
  import type { CommonDxfEntity } from './entities/shared';
4
- import type { CommonDXFObject } from './objects/common';
5
- import type { DxfObject } from './objects/types';
4
+ import type { CommonDXFObject } from './objects';
6
5
  import type { BlockRecordTableEntry, DimStylesTableEntry, LayerTableEntry, LTypeTableEntry, StyleTableEntry, DxfTable, VPortTableEntry } from './tables';
7
6
  export interface ParsedDxf {
8
7
  header: DxfHeader;
@@ -18,6 +17,6 @@ export interface ParsedDxf {
18
17
  };
19
18
  objects: {
20
19
  byName: Record<string, CommonDXFObject[]>;
21
- byTree?: DxfObject;
20
+ byTree?: CommonDXFObject;
22
21
  };
23
22
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dxf-json",
3
- "version": "0.7.0",
3
+ "version": "0.7.2",
4
4
  "description": "perfect dxf parser",
5
5
  "type": "module",
6
6
  "main": "./dist/bundle.cjs",
@@ -1,6 +0,0 @@
1
- export declare enum AttributeFlag {
2
- INVISIBLE = 1,
3
- CONSTANT = 2,
4
- REQUIRE_VERIFICATION = 4,
5
- PRESET = 8
6
- }
@@ -1,21 +0,0 @@
1
- export type * from "./arc";
2
- export type * from "./attdef";
3
- export type * from "./circle";
4
- export type * from "./dimension";
5
- export type * from "./ellipse";
6
- export type * from "./hatch";
7
- export type * from './image';
8
- export type * from "./insert";
9
- export type * from "./leader";
10
- export type * from "./line";
11
- export type * from "./lwpolyline";
12
- export type * from "./mtext";
13
- export type * from "./point";
14
- export type * from "./polyline";
15
- export type * from "./ray";
16
- export type * from "./section";
17
- export type * from "./solid";
18
- export type * from "./spline";
19
- export type * from "./text";
20
- export type * from "./vertex";
21
- export type * from "./viewport";
@@ -1,8 +0,0 @@
1
- import { DXFParserSnippet } from '../shared/parserGenerator';
2
- export declare const CommonObjectSnippets: DXFParserSnippet[];
3
- export interface CommonDXFObject {
4
- ownerObjectId: string;
5
- ownerDictionaryIdHard: string;
6
- ownerDictionaryIdSoft: string;
7
- handle: string;
8
- }
@@ -1,20 +0,0 @@
1
- import { DXFParserSnippet } from '../shared/parserGenerator';
2
- import type { CommonDXFObject } from './common';
3
- export declare const DictionarySnippets: DXFParserSnippet[];
4
- export declare enum RecordCloneFlag {
5
- NOT_APPLICABLE = 0,
6
- KEEP_EXISTING = 1,
7
- USE_CLONE = 2,
8
- XREF_VALUE_NAME = 3,
9
- VALUE_NAME = 4,
10
- UNMANGLE_NAME = 5
11
- }
12
- export interface DictionaryDXFObject extends CommonDXFObject {
13
- subclassMarker: 'AcDbDictionary';
14
- isHardOwned?: boolean;
15
- recordCloneFlag: RecordCloneFlag;
16
- entries: {
17
- name: string;
18
- objectId?: string;
19
- }[];
20
- }