mxcad 1.0.56 → 1.0.57

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/mxcad.es.js CHANGED
@@ -1,12 +1,12 @@
1
- import UD, { MxFun as m, MrxDbgUiPrPoint as L, MxCursorType as VD, MrxDbgUtils as ND, store as iD, loadCoreCode as KD, MxPaintBrush as P, MrxDbgUiPrBaseReturn as h, MxDbCircleShape as rD, MxDbLine as z, MxDbPolyline as zD, MxDbCircleArc as N, Mx3PointArc as HD, MxDbEllipseShape as _D } from "mxdraw";
2
- function sD(B) {
3
- return btoa(unescape(encodeURIComponent(B)));
1
+ import _D, { MxFun as d, MrxDbgUiPrPoint as M, MxCursorType as qD, MrxDbgUtils as $D, store as oD, loadCoreCode as JD, MxPaintBrush as L, MrxDbgUiPrBaseReturn as g, MxDbCircleShape as aD, MxDbLine as $, MxDbPolyline as QD, MxDbCircleArc as _, Mx3PointArc as ZD, MxDbEllipseShape as YD, McEdGetPointWorldDrawObject as XD, MxDbEllipse as DC } from "mxdraw";
2
+ function uD(E) {
3
+ return btoa(unescape(encodeURIComponent(E)));
4
4
  }
5
- function nD(B) {
6
- return decodeURIComponent(escape(atob(B)));
5
+ function lD(E) {
6
+ return decodeURIComponent(escape(atob(E)));
7
7
  }
8
- async function oD({
9
- blob: B,
8
+ async function cD({
9
+ blob: E,
10
10
  filename: D = "",
11
11
  types: C = [
12
12
  {
@@ -27,7 +27,7 @@ async function oD({
27
27
  suggestedName: D,
28
28
  types: C
29
29
  })).createWritable();
30
- await A.write(B), await A.close();
30
+ await A.write(E), await A.close();
31
31
  return;
32
32
  } catch (F) {
33
33
  if (F?.name === "AbortError")
@@ -37,67 +37,228 @@ async function oD({
37
37
  else
38
38
  console.warn("\u975E\u7528\u6237\u4EA4\u4E92 \u65E0\u6CD5\u8C03\u7528showSaveFilePicker \u5DF2\u9009\u62E9\u517C\u5BB9\u65B9\u6848");
39
39
  if (window.navigator?.msSaveOrOpenBlob) {
40
- window.navigator.msSaveOrOpenBlob(B, D);
40
+ window.navigator.msSaveOrOpenBlob(E, D);
41
41
  return;
42
42
  }
43
- const E = document.createElement("a");
44
- E.href = window.URL.createObjectURL(B), E.download = D, E.style.display = "none", document.body.appendChild(E), E.click(), document.body.removeChild(E), typeof window.URL.revokeObjectURL == "function" ? window.URL.revokeObjectURL(E.href) : typeof window.webkitURL < "u" && typeof window.webkitURL.revokeObjectURL == "function" ? window.webkitURL.revokeObjectURL(E.href) : window.URL.revokeObjectURL(E.href);
45
- } catch (E) {
46
- console.error(E.name, E.message);
43
+ const B = document.createElement("a");
44
+ B.href = window.URL.createObjectURL(E), B.download = D, B.style.display = "none", document.body.appendChild(B), B.click(), document.body.removeChild(B), typeof window.URL.revokeObjectURL == "function" ? window.URL.revokeObjectURL(B.href) : typeof window.webkitURL < "u" && typeof window.webkitURL.revokeObjectURL == "function" ? window.webkitURL.revokeObjectURL(B.href) : window.URL.revokeObjectURL(B.href);
45
+ } catch (B) {
46
+ console.error(B.name, B.message);
47
47
  }
48
48
  }
49
- function aD(B, D) {
49
+ function mD(E, D) {
50
50
  const C = document.createElement("a");
51
- C.href = window.URL.createObjectURL(B), C.download = D, C.click();
51
+ C.href = window.URL.createObjectURL(E), C.download = D, C.click();
52
52
  }
53
- const V = {
54
- b64Encode: sD,
55
- b64Decode: nD,
56
- saveAsFileDialog: oD,
57
- downloadFile: aD
53
+ function pD(E, D) {
54
+ fetch(E).then((C) => C.blob()).then((C) => {
55
+ const B = document.createElement("a");
56
+ B.href = window.URL.createObjectURL(C), B.download = D, B.click();
57
+ });
58
+ }
59
+ const H = {
60
+ b64Encode: uD,
61
+ b64Decode: lD,
62
+ saveAsFileDialog: cD,
63
+ downloadFile: mD,
64
+ downloadFileFromUrl: pD
58
65
  };
59
- class qD {
66
+ class p {
67
+ imp;
68
+ constructor(D, C, B) {
69
+ this.imp = new i.mxcadassemblyimp.MdGePoint3d(), D instanceof Object ? (this.imp.x = D.x, this.imp.y = D.y, this.imp.z = D.z) : (this.imp.x = D || 0, this.imp.y = C || 0, this.imp.z = B || 0);
70
+ }
71
+ copy(D) {
72
+ return this.imp.x = D.x, this.imp.y = D.y, this.imp.z = D.z, this;
73
+ }
74
+ clone() {
75
+ return new p(this.imp);
76
+ }
77
+ get x() {
78
+ return this.imp.x;
79
+ }
80
+ set x(D) {
81
+ this.imp.x = D;
82
+ }
83
+ get y() {
84
+ return this.imp.y;
85
+ }
86
+ set y(D) {
87
+ this.imp.y = D;
88
+ }
89
+ get z() {
90
+ return this.imp.z;
91
+ }
92
+ set z(D) {
93
+ this.imp.z = D;
94
+ }
95
+ }
96
+ class G {
97
+ imp;
98
+ constructor(D, C, B) {
99
+ this.imp = new i.mxcadassemblyimp.MdGeVector3d(), D instanceof Object ? (this.imp.x = D.x, this.imp.y = D.y, this.imp.z = D.z) : (this.imp.x = D || 0, this.imp.y = C || 0, this.imp.z = B || 0);
100
+ }
101
+ copy(D) {
102
+ return this.imp.x = D.x, this.imp.y = D.y, this.imp.z = D.z, this;
103
+ }
104
+ clone() {
105
+ return new G(this.imp);
106
+ }
107
+ rotateBy(D, C) {
108
+ return this.imp.rotateBy(D, C), this;
109
+ }
110
+ negate() {
111
+ return this.imp.negate(), this;
112
+ }
113
+ perpVector() {
114
+ return this.imp.perpVector(), this;
115
+ }
116
+ angleTo1(D) {
117
+ return this.imp.angleTo(D.imp);
118
+ }
119
+ angleTo2(D, C) {
120
+ return this.imp.angleTo(D.imp, C.imp);
121
+ }
122
+ normalize() {
123
+ return this.imp.normalize(), this;
124
+ }
125
+ length() {
126
+ return this.imp.length();
127
+ }
128
+ isUnitLength() {
129
+ return this.imp.isUnitLength();
130
+ }
131
+ isZeroLength() {
132
+ return this.imp.isZeroLength();
133
+ }
134
+ dotProduct(D) {
135
+ return this.imp.dotProduct(D.imp);
136
+ }
137
+ crossProduct(D) {
138
+ let C = new G();
139
+ return C.imp = this.imp.crossProduct(D.imp), C;
140
+ }
141
+ isEqualTo(D) {
142
+ return this.imp.isEqualTo(D.imp);
143
+ }
144
+ get x() {
145
+ return this.imp.x;
146
+ }
147
+ set x(D) {
148
+ this.imp.x = D;
149
+ }
150
+ get y() {
151
+ return this.imp.y;
152
+ }
153
+ set y(D) {
154
+ this.imp.y = D;
155
+ }
156
+ get z() {
157
+ return this.imp.z;
158
+ }
159
+ set z(D) {
160
+ this.imp.z = D;
161
+ }
162
+ }
163
+ class Z {
164
+ imp;
165
+ constructor(D) {
166
+ this.imp = i.mxcadassemblyimp.MdGeMatrix3d(), D instanceof Object && this.imp.copy(D);
167
+ }
168
+ copy(D) {
169
+ return this.imp.copy(D.imp), this;
170
+ }
171
+ clone() {
172
+ return new Z(this.imp);
173
+ }
174
+ setToIdentity() {
175
+ return this.imp.setToIdentity(), this;
176
+ }
177
+ preMultBy(D) {
178
+ return this.imp.preMultBy(D.imp), this;
179
+ }
180
+ postMultBy(D) {
181
+ return this.imp.postMultBy(D.imp), this;
182
+ }
183
+ setToProduct(D, C) {
184
+ return this.imp.setToProduct(D.imp, C.imp), this;
185
+ }
186
+ invert() {
187
+ return this.imp.invert(), this;
188
+ }
189
+ isSingular() {
190
+ return this.imp.isSingular();
191
+ }
192
+ transposeIt() {
193
+ return this.imp.transposeIt(), this;
194
+ }
195
+ isEqualTo(D) {
196
+ return this.imp.isEqualTo(D.imp);
197
+ }
198
+ det() {
199
+ return this.imp.det();
200
+ }
201
+ setCoordSystem(D, C, B, F) {
202
+ return this.imp.setCoordSystem(D.imp, C.imp, B.imp, F.imp), this;
203
+ }
204
+ setToTranslation(D) {
205
+ return this.imp.setCoordSystem(D.imp), this;
206
+ }
207
+ setToRotation(D, C, B) {
208
+ return this.imp.setToRotation(D, C.imp, B.imp), this;
209
+ }
210
+ setToScaling(D, C) {
211
+ return this.imp.setToScaling(D, C.imp), this;
212
+ }
213
+ scale() {
214
+ return this.imp.scale();
215
+ }
216
+ getData(D, C) {
217
+ return this.imp.getData(D, C);
218
+ }
219
+ }
220
+ class CC {
60
221
  z = "D2BBB6A18140C6DF814181428143CDF2D5C9C8FDC9CFCFC2D8A2B2BBD3EB8144D8A4B3F38145D7A8C7D2D8A7CAC08146C7F0B1FBD2B5B4D4B6ABCBBFD8A9814781488149B6AA814AC1BDD1CF814BC9A5D8AD814CB8F6D1BEE3DCD6D0814D814EB7E1814FB4AE8150C1D98151D8BC8152CDE8B5A4CEAAD6F78153C0F6BED9D8AF815481558156C4CB8157BEC38158D8B1C3B4D2E58159D6AECEDAD5A7BAF5B7A6C0D6815AC6B9C5D2C7C7815BB9D4815CB3CBD2D2815D815ED8BFBEC5C6F2D2B2CFB0CFE7815F816081618162CAE981638164D8C081658166816781688169816AC2F2C2D2816BC8E9816C816D816E816F817081718172817381748175C7AC8176817781788179817A817B817CC1CB817DD3E8D5F9817ECAC2B6FED8A1D3DABFF78180D4C6BBA5D8C1CEE5BEAE81818182D8A88183D1C7D0A9818481858186D8BDD9EFCDF6BFBA8187BDBBBAA5D2E0B2FABAE0C4B68188CFEDBEA9CDA4C1C18189818A818BC7D7D9F1818CD9F4818D818E818F8190C8CBD8E9819181928193D2DACAB2C8CAD8ECD8EAD8C6BDF6C6CDB3F08194D8EBBDF1BDE98195C8D4B4D381968197C2D88198B2D6D7D0CACBCBFBD5CCB8B6CFC98199819A819BD9DAD8F0C7AA819CD8EE819DB4FAC1EED2D4819E819FD8ED81A0D2C7D8EFC3C781A181A281A3D1F681A4D6D9D8F281A5D8F5BCFEBCDB81A681A781A8C8CE81A9B7DD81AAB7C281ABC6F381AC81AD81AE81AF81B081B181B2D8F8D2C181B381B4CEE9BCBFB7FCB7A5D0DD81B581B681B781B881B9D6DAD3C5BBEFBBE1D8F181BA81BBC9A1CEB0B4AB81BCD8F381BDC9CBD8F6C2D7D8F781BE81BFCEB1D8F981C081C181C2B2AEB9C081C3D9A381C4B0E981C5C1E681C6C9EC81C7CBC581C8CBC6D9A481C981CA81CB81CC81CDB5E881CE81CFB5AB81D081D181D281D381D481D5CEBBB5CDD7A1D7F4D3D381D6CCE581D7BACE81D8D9A2D9DCD3E0D8FDB7F0D7F7D8FED8FAD9A1C4E381D981DAD3B6D8F4D9DD81DBD8FB81DCC5E581DD81DEC0D081DF81E0D1F0B0DB81E181E2BCD1D9A681E3D9A581E481E581E681E7D9ACD9AE81E8D9ABCAB981E981EA81EBD9A9D6B681EC81ED81EEB3DED9A881EFC0FD81F0CACC81F1D9AA81F2D9A781F381F4D9B081F581F6B6B181F781F881F9B9A981FAD2C081FB81FCCFC081FD81FEC2C28240BDC4D5ECB2E0C7C8BFEBD9AD8241D9AF8242CEEABAEE82438244824582468247C7D682488249824A824B824C824D824E824F8250B1E3825182528253B4D9B6EDD9B48254825582568257BFA182588259825AD9DEC7CEC0FED9B8825B825C825D825E825FCBD7B7FD8260D9B58261D9B7B1A3D3E1D9B98262D0C58263D9B682648265D9B18266D9B2C1A9D9B382678268BCF3D0DEB8A98269BEE3826AD9BD826B826C826D826ED9BA826FB0B3827082718272D9C28273827482758276827782788279827A827B827C827D827E8280D9C4B1B68281D9BF82828283B5B98284BEF3828582868287CCC8BAF2D2D08288D9C38289828ABDE8828BB3AB828C828D828ED9C5BEEB828FD9C6D9BBC4DF8290D9BED9C1D9C0829182928293829482958296829782988299829A829BD5AE829CD6B5829DC7E3829E829F82A082A1D9C882A282A382A4BCD9D9CA82A582A682A7D9BC82A8D9CBC6AB82A982AA82AB82AC82ADD9C982AE82AF82B082B1D7F682B2CDA382B382B482B582B682B782B882B982BABDA182BB82BC82BD82BE82BF82C0D9CC82C182C282C382C482C582C682C782C882C9C5BCCDB582CA82CB82CCD9CD82CD82CED9C7B3A5BFFE82CF82D082D182D2B8B582D382D4C0FC82D582D682D782D8B0F882D982DA82DB82DC82DD82DE82DF82E082E182E282E382E482E582E682E782E882E982EA82EB82EC82EDB4F682EED9CE82EFD9CFB4A2D9D082F082F1B4DF82F282F382F482F582F6B0C182F782F882F982FA82FB82FC82FDD9D1C9B582FE8340834183428343834483458346834783488349834A834B834C834D834E834F83508351CFF1835283538354835583568357D9D283588359835AC1C5835B835C835D835E835F836083618362836383648365D9D6C9AE8366836783688369D9D5D9D4D9D7836A836B836C836DCBDB836EBDA9836F8370837183728373C6A7837483758376837783788379837A837B837C837DD9D3D9D8837E83808381D9D9838283838384838583868387C8E583888389838A838B838C838D838E838F839083918392839383948395C0DC8396839783988399839A839B839C839D839E839F83A083A183A283A383A483A583A683A783A883A983AA83AB83AC83AD83AE83AF83B083B183B2B6F9D8A3D4CA83B3D4AAD0D6B3E4D5D783B4CFC8B9E283B5BFCB83B6C3E283B783B883B9B6D283BA83BBCDC3D9EED9F083BC83BD83BEB5B383BFB6B583C083C183C283C383C4BEA483C583C6C8EB83C783C8C8AB83C983CAB0CBB9ABC1F9D9E283CBC0BCB9B283CCB9D8D0CBB1F8C6E4BEDFB5E4D7C883CDD1F8BCE6CADE83CE83CFBCBDD9E6D8E783D083D1C4DA83D283D3B8D4C8BD83D483D5B2E1D4D983D683D783D883D9C3B083DA83DBC3E1DAA2C8DF83DCD0B483DDBEFCC5A983DE83DF83E0B9DA83E1DAA383E2D4A9DAA483E383E483E583E683E7D9FBB6AC83E883E9B7EBB1F9D9FCB3E5BEF683EABFF6D2B1C0E483EB83EC83EDB6B3D9FED9FD83EE83EFBEBB83F083F183F2C6E083F3D7BCDAA183F4C1B983F5B5F2C1E883F683F7BCF583F8B4D583F983FA83FB83FC83FD83FE844084418442C1DD8443C4FD84448445BCB8B7B284468447B7EF84488449844A844B844C844DD9EC844EC6BE844FBFADBBCB84508451B5CA8452DBC9D0D78453CDB9B0BCB3F6BBF7DBCABAAF8454D4E4B5B6B5F3D8D6C8D084558456B7D6C7D0D8D78457BFAF84588459DBBBD8D8845A845BD0CCBBAE845C845D845EEBBEC1D0C1F5D4F2B8D5B4B4845FB3F584608461C9BE846284638464C5D0846584668467C5D9C0FB8468B1F08469D8D9B9CE846AB5BD846B846CD8DA846D846ED6C6CBA2C8AFC9B2B4CCBFCC846FB9F48470D8DBD8DCB6E7BCC1CCEA847184728473847484758476CFF78477D8DDC7B084788479B9D0BDA3847A847BCCDE847CC6CA847D847E848084818482D8E08483D8DE84848485D8DF848684878488B0FE8489BEE7848ACAA3BCF4848B848C848D848EB8B1848F8490B8EE849184928493849484958496849784988499849AD8E2849BBDCB849CD8E4D8E3849D849E849F84A084A1C5FC84A284A384A484A584A684A784A8D8E584A984AAD8E684AB84AC84AD84AE84AF84B084B1C1A684B2C8B0B0ECB9A6BCD3CEF1DBBDC1D384B384B484B584B6B6AFD6FAC5ACBDD9DBBEDBBF84B784B884B9C0F8BEA2C0CD84BA84BB84BC84BD84BE84BF84C084C184C284C3DBC0CAC684C484C584C6B2AA84C784C884C9D3C284CAC3E384CBD1AB84CC84CD84CE84CFDBC284D0C0D584D184D284D3DBC384D4BFB184D584D684D784D884D984DAC4BC84DB84DC84DD84DEC7DA84DF84E084E184E284E384E484E584E684E784E884E9DBC484EA84EB84EC84ED84EE84EF84F084F1D9E8C9D784F284F384F4B9B4CEF0D4C884F584F684F784F8B0FCB4D284F9D0D984FA84FB84FC84FDD9E984FEDECBD9EB8540854185428543D8B0BBAFB1B18544B3D7D8CE85458546D4D185478548BDB3BFEF8549CFBB854A854BD8D0854C854D854EB7CB854F85508551D8D185528553855485558556855785588559855A855BC6A5C7F8D2BD855C855DD8D2C4E4855ECAAE855FC7A78560D8A68561C9FDCEE7BBDCB0EB856285638564BBAAD0AD8565B1B0D7E4D7BF8566B5A5C2F4C4CF85678568B2A98569B2B7856AB1E5DFB2D5BCBFA8C2ACD8D5C2B1856BD8D4CED4856CDAE0856DCEC0856E856FD8B4C3AED3A1CEA38570BCB4C8B4C2D18571BEEDD0B68572DAE18573857485758576C7E485778578B3A78579B6F2CCFCC0FA857A857BC0F7857CD1B9D1E1D8C7857D857E85808581858285838584B2DE85858586C0E58587BAF185888589D8C8858AD4AD858B858CCFE1D8C9858DD8CACFC3858EB3F8BEC7858F859085918592D8CB8593859485958596859785988599DBCC859A859B859C859DC8A5859E859F85A0CFD885A1C8FEB2CE85A285A385A485A585A6D3D6B2E6BCB0D3D1CBABB7B485A785A885A9B7A285AA85ABCAE585ACC8A1CADCB1E4D0F085ADC5D185AE85AF85B0DBC5B5FE85B185B2BFDAB9C5BEE4C1ED85B3DFB6DFB5D6BBBDD0D5D9B0C8B6A3BFC9CCA8DFB3CAB7D3D285B4D8CFD2B6BAC5CBBECCBE85B5DFB7B5F0DFB485B685B785B8D3F585B9B3D4B8F785BADFBA85BBBACFBCAAB5F585BCCDACC3FBBAF3C0F4CDC2CFF2DFB8CFC585BDC2C0DFB9C2F085BE85BF85C0BEFD85C1C1DFCDCCD2F7B7CDDFC185C2DFC485C385C4B7F1B0C9B6D6B7D485C5BAACCCFDBFD4CBB1C6F485C6D6A8DFC585C7CEE2B3B385C885C9CEFCB4B585CACEC7BAF085CBCEE185CCD1BD85CD85CEDFC085CF85D0B4F485D1B3CA85D2B8E6DFBB85D385D485D585D6C4C585D7DFBCDFBDDFBEC5BBDFBFDFC2D4B1DFC385D8C7BACED885D985DA85DB85DC85DDC4D885DEDFCA85DFDFCF85E0D6DC85E185E285E385E485E585E685E785E8DFC9DFDACEB685E9BAC7DFCEDFC8C5DE85EA85EBC9EBBAF4C3FC85EC85EDBED785EEDFC685EFDFCD85F0C5D885F185F285F385F4D5A6BACD85F5BECCD3BDB8C085F6D6E485F7DFC7B9BEBFA785F885F9C1FCDFCBDFCC85FADFD085FB85FC85FD85FE8640DFDBDFE58641DFD7DFD6D7C9DFE3DFE4E5EBD2A7DFD28642BFA98643D4DB8644BFC8DFD4864586468647CFCC86488649DFDD864AD1CA864BDFDEB0A7C6B7DFD3864CBAE5864DB6DFCDDBB9FED4D5864E864FDFDFCFECB0A5DFE7DFD1D1C6DFD5DFD8DFD9DFDC8650BBA98651DFE0DFE18652DFE2DFE6DFE8D3B486538654865586568657B8E7C5B6DFEAC9DAC1A8C4C486588659BFDECFF8865A865B865CD5DCDFEE865D865E865F866086618662B2B88663BADFDFEC8664DBC18665D1E48666866786688669CBF4B4BD866AB0A6866B866C866D866E866FDFF1CCC6DFF286708671DFED867286738674867586768677DFE986788679867A867BDFEB867CDFEFDFF0BBBD867D867EDFF386808681DFF48682BBA38683CADBCEA8E0A7B3AA8684E0A6868586868687E0A186888689868A868BDFFE868CCDD9DFFC868DDFFA868EBFD0D7C4868FC9CC86908691DFF8B0A186928693869486958696DFFD869786988699869ADFFBE0A2869B869C869D869E869FE0A886A086A186A286A3B7C886A486A5C6A1C9B6C0B2DFF586A686A7C5BE86A8D8C4DFF9C4F686A986AA86AB86AC86AD86AEE0A3E0A4E0A5D0A586AF86B0E0B4CCE486B1E0B186B2BFA6E0AFCEB9E0ABC9C686B386B4C0AEE0AEBAEDBAB0E0A986B586B686B7DFF686B8E0B386B986BAE0B886BB86BC86BDB4ADE0B986BE86BFCFB2BAC886C0E0B086C186C286C386C486C586C686C7D0FA86C886C986CA86CB86CC86CD86CE86CF86D0E0AC86D1D4FB86D2DFF786D3C5E786D4E0AD86D5D3F786D6E0B6E0B786D786D886D986DA86DBE0C4D0E186DC86DD86DEE0BC86DF86E0E0C9E0CA86E186E286E3E0BEE0AAC9A4E0C186E4E0B286E586E686E786E886E9CAC8E0C386EAE0B586EBCECB86ECCBC3E0CDE0C6E0C286EDE0CB86EEE0BAE0BFE0C086EF86F0E0C586F186F2E0C7E0C886F3E0CC86F4E0BB86F586F686F786F886F9CBD4E0D586FAE0D6E0D286FB86FC86FD86FE87408741E0D0BCCE87428743E0D18744B8C2D8C587458746874787488749874A874B874CD0EA874D874EC2EF874F8750E0CFE0BD875187528753E0D4E0D387548755E0D78756875787588759E0DCE0D8875A875B875CD6F6B3B0875DD7EC875ECBBB875F8760E0DA8761CEFB876287638764BAD987658766876787688769876A876B876C876D876E876F8770E0E1E0DDD2AD87718772877387748775E0E287768777E0DBE0D9E0DF87788779E0E0877A877B877C877D877EE0DE8780E0E4878187828783C6F7D8ACD4EBE0E6CAC98784878587868787E0E587888789878A878BB8C1878C878D878E878FE0E7E0E887908791879287938794879587968797E0E9E0E387988799879A879B879C879D879EBABFCCE7879F87A087A1E0EA87A287A387A487A587A687A787A887A987AA87AB87AC87AD87AE87AF87B0CFF987B187B287B387B487B587B687B787B887B987BA87BBE0EB87BC87BD87BE87BF87C087C187C2C8C287C387C487C587C6BDC087C787C887C987CA87CB87CC87CD87CE87CF87D087D187D287D3C4D287D487D587D687D787D887D987DA87DB87DCE0EC87DD87DEE0ED87DF87E0C7F4CBC487E1E0EEBBD8D8B6D2F2E0EFCDC587E2B6DA87E387E487E587E687E787E8E0F187E9D4B087EA87EBC0A7B4D187EC87EDCEA7E0F087EE87EF87F0E0F2B9CC87F187F2B9FACDBCE0F387F387F487F5C6D4E0F487F6D4B287F7C8A6E0F6E0F587F887F987FA87FB87FC87FD87FE8840884188428843884488458846884788488849E0F7884A884BCDC1884C884D884ECAA5884F885088518852D4DADBD7DBD98853DBD8B9E7DBDCDBDDB5D888548855DBDA8856885788588859885ADBDBB3A1DBDF885B885CBBF8885DD6B7885EDBE0885F886088618862BEF988638864B7BB8865DBD0CCAEBFB2BBB5D7F8BFD38866886788688869886ABFE9886B886CBCE1CCB3DBDEB0D3CEEBB7D8D7B9C6C2886D886EC0A4886FCCB98870DBE7DBE1C6BADBE38871DBE88872C5F7887388748875DBEA88768877DBE9BFC088788879887ADBE6DBE5887B887C887D887E8880B4B9C0ACC2A2DBE2DBE48881888288838884D0CDDBED88858886888788888889C0DDDBF2888A888B888C888D888E888F8890B6E28891889288938894DBF3DBD2B9B8D4ABDBEC8895BFD1DBF08896DBD18897B5E68898DBEBBFE58899889A889BDBEE889CDBF1889D889E889FDBF988A088A188A288A388A488A588A688A788A8B9A1B0A388A988AA88AB88AC88AD88AE88AFC2F188B088B1B3C7DBEF88B288B3DBF888B4C6D2DBF488B588B6DBF5DBF7DBF688B788B8DBFE88B9D3F2B2BA88BA88BB88BCDBFD88BD88BE88BF88C088C188C288C388C4DCA488C5DBFB88C688C788C888C9DBFA88CA88CB88CCDBFCC5E0BBF988CD88CEDCA388CF88D0DCA588D1CCC388D288D388D4B6D1DDC088D588D688D7DCA188D8DCA288D988DA88DBC7B588DC88DD88DEB6E988DF88E088E1DCA788E288E388E488E5DCA688E6DCA9B1A488E788E8B5CC88E988EA88EB88EC88EDBFB088EE88EF88F088F188F2D1DF88F388F488F588F6B6C288F788F888F988FA88FB88FC88FD88FE894089418942894389448945DCA88946894789488949894A894B894CCBFAEBF3894D894E894FCBDC89508951CBFE895289538954CCC189558956895789588959C8FB895A895B895C895D895E895FDCAA89608961896289638964CCEEDCAB89658966896789688969896A896B896C896D896E896F897089718972897389748975DBD38976DCAFDCAC8977BEB38978CAFB8979897A897BDCAD897C897D897E89808981898289838984C9CAC4B989858986898789888989C7BDDCAE898A898B898CD4F6D0E6898D898E898F89908991899289938994C4ABB6D589958996899789988999899A899B899C899D899E899F89A089A189A289A389A489A589A6DBD489A789A889A989AAB1DA89AB89AC89ADDBD589AE89AF89B089B189B289B389B489B589B689B789B8DBD689B989BA89BBBABE89BC89BD89BE89BF89C089C189C289C389C489C589C689C789C889C9C8C089CA89CB89CC89CD89CE89CFCABFC8C989D0D7B389D1C9F989D289D3BFC789D489D5BAF889D689D7D2BC89D889D989DA89DB89DC89DD89DE89DFE2BA89E0B4A689E189E2B1B889E389E489E589E689E7B8B489E8CFC489E989EA89EB89ECD9E7CFA6CDE289ED89EED9EDB6E089EFD2B989F089F1B9BB89F289F389F489F5E2B9E2B789F6B4F389F7CCECCCABB7F289F8D8B2D1EBBABB89F9CAA789FA89FBCDB789FC89FDD2C4BFE4BCD0B6E189FEDEC58A408A418A428A43DEC6DBBC8A44D1D98A458A46C6E6C4CEB7EE8A47B7DC8A488A49BFFCD7E08A4AC6F58A4B8A4CB1BCDEC8BDB1CCD7DECA8A4DDEC98A4E8A4F8A508A518A52B5EC8A53C9DD8A548A55B0C28A568A578A588A598A5A8A5B8A5C8A5D8A5E8A5F8A608A618A62C5AEC5AB8A63C4CC8A64BCE9CBFD8A658A668A67BAC38A688A698A6AE5F9C8E7E5FACDFD8A6BD7B1B8BEC2E88A6CC8D18A6D8A6EE5FB8A6F8A708A718A72B6CABCCB8A738A74D1FDE6A18A75C3EE8A768A778A788A79E6A48A7A8A7B8A7C8A7DE5FEE6A5CDD78A7E8A80B7C1E5FCE5FDE6A38A818A82C4DDE6A88A838A84E6A78A858A868A878A888A898A8AC3C38A8BC6DE8A8C8A8DE6AA8A8E8A8F8A908A918A928A938A94C4B78A958A968A97E6A2CABC8A988A998A9A8A9BBDE3B9C3E6A6D0D5CEAF8A9C8A9DE6A9E6B08A9ED2A68A9FBDAAE6AD8AA08AA18AA28AA38AA4E6AF8AA5C0D18AA68AA7D2CC8AA88AA98AAABCA78AAB8AAC8AAD8AAE8AAF8AB08AB18AB28AB38AB48AB58AB6E6B18AB7D2F68AB88AB98ABAD7CB8ABBCDFE8ABCCDDEC2A6E6ABE6ACBDBFE6AEE6B38ABD8ABEE6B28ABF8AC08AC18AC2E6B68AC3E6B88AC48AC58AC68AC7C4EF8AC88AC98ACAC4C88ACB8ACCBEEAC9EF8ACD8ACEE6B78ACFB6F08AD08AD18AD2C3E48AD38AD48AD58AD68AD78AD88AD9D3E9E6B48ADAE6B58ADBC8A28ADC8ADD8ADE8ADF8AE0E6BD8AE18AE28AE3E6B98AE48AE58AE68AE78AE8C6C58AE98AEACDF1E6BB8AEB8AEC8AED8AEE8AEF8AF08AF18AF28AF38AF4E6BC8AF58AF68AF78AF8BBE98AF98AFA8AFB8AFC8AFD8AFE8B40E6BE8B418B428B438B44E6BA8B458B46C0B78B478B488B498B4A8B4B8B4C8B4D8B4E8B4FD3A4E6BFC9F4E6C38B508B51E6C48B528B538B548B55D0F68B568B578B588B598B5A8B5B8B5C8B5D8B5E8B5F8B608B618B628B638B648B658B668B67C3BD8B688B698B6A8B6B8B6C8B6D8B6EC3C4E6C28B6F8B708B718B728B738B748B758B768B778B788B798B7A8B7B8B7CE6C18B7D8B7E8B808B818B828B838B84E6C7CFB18B85EBF48B868B87E6CA8B888B898B8A8B8B8B8CE6C58B8D8B8EBCDEC9A98B8F8B908B918B928B938B94BCB58B958B96CFD38B978B988B998B9A8B9BE6C88B9CE6C98B9DE6CE8B9EE6D08B9F8BA08BA1E6D18BA28BA38BA4E6CBB5D58BA5E6CC8BA68BA7E6CF8BA88BA9C4DB8BAAE6C68BAB8BAC8BAD8BAE8BAFE6CD8BB08BB18BB28BB38BB48BB58BB68BB78BB88BB98BBA8BBB8BBC8BBD8BBE8BBF8BC08BC18BC28BC38BC48BC58BC6E6D28BC78BC88BC98BCA8BCB8BCC8BCD8BCE8BCF8BD08BD18BD2E6D4E6D38BD38BD48BD58BD68BD78BD88BD98BDA8BDB8BDC8BDD8BDE8BDF8BE08BE18BE28BE38BE48BE58BE68BE78BE88BE98BEA8BEB8BECE6D58BEDD9F88BEE8BEFE6D68BF08BF18BF28BF38BF48BF58BF68BF7E6D78BF88BF98BFA8BFB8BFC8BFD8BFE8C408C418C428C438C448C458C468C47D7D3E6DD8C48E6DEBFD7D4D08C49D7D6B4E6CBEFE6DAD8C3D7CED0A28C4AC3CF8C4B8C4CE6DFBCBEB9C2E6DBD1A78C4D8C4EBAA2C2CF8C4FD8AB8C508C518C52CAEBE5EE8C53E6DC8C54B7F58C558C568C578C58C8E68C598C5AC4F58C5B8C5CE5B2C4FE8C5DCBFCE5B3D5AC8C5ED3EECAD8B0B28C5FCBCECDEA8C608C61BAEA8C628C638C64E5B58C65E5B48C66D7DAB9D9D6E6B6A8CDF0D2CBB1A6CAB58C67B3E8C9F3BFCDD0FBCAD2E5B6BBC28C688C698C6ACFDCB9AC8C6B8C6C8C6D8C6ED4D78C6F8C70BAA6D1E7CFFCBCD28C71E5B7C8DD8C728C738C74BFEDB1F6CBDE8C758C76BCC58C77BCC4D2FAC3DCBFDC8C788C798C7A8C7BB8BB8C7C8C7D8C7EC3C28C80BAAED4A28C818C828C838C848C858C868C878C888C89C7DEC4AFB2EC8C8AB9D18C8B8C8CE5BBC1C88C8D8C8ED5AF8C8F8C908C918C928C93E5BC8C94E5BE8C958C968C978C988C998C9A8C9BB4E7B6D4CBC2D1B0B5BC8C9C8C9DCAD98C9EB7E28C9F8CA0C9E48CA1BDAB8CA28CA3CEBED7F08CA48CA58CA68CA7D0A18CA8C9D98CA98CAAB6FBE6D8BCE28CABB3BE8CACC9D08CADE6D9B3A28CAE8CAF8CB08CB1DECC8CB2D3C8DECD8CB3D2A28CB48CB58CB68CB7DECE8CB88CB98CBA8CBBBECD8CBC8CBDDECF8CBE8CBF8CC0CAACD2FCB3DFE5EAC4E1BEA1CEB2C4F2BED6C6A8B2E38CC18CC2BED38CC38CC4C7FCCCEBBDECCEDD8CC58CC6CABAC6C1E5ECD0BC8CC78CC88CC9D5B98CCA8CCB8CCCE5ED8CCD8CCE8CCF8CD0CAF48CD1CDC0C2C58CD2E5EF8CD3C2C4E5F08CD48CD58CD68CD78CD88CD98CDAE5F8CDCD8CDBC9BD8CDC8CDD8CDE8CDF8CE08CE18CE2D2D9E1A88CE38CE48CE58CE6D3EC8CE7CBEAC6F18CE88CE98CEA8CEB8CECE1AC8CED8CEE8CEFE1A7E1A98CF08CF1E1AAE1AF8CF28CF3B2ED8CF4E1ABB8DAE1ADE1AEE1B0B5BAE1B18CF58CF68CF78CF88CF9E1B3E1B88CFA8CFB8CFC8CFD8CFED1D28D40E1B6E1B5C1EB8D418D428D43E1B78D44D4C08D45E1B28D46E1BAB0B68D478D488D498D4AE1B48D4BBFF98D4CE1B98D4D8D4EE1BB8D4F8D508D518D528D538D54E1BE8D558D568D578D588D598D5AE1BC8D5B8D5C8D5D8D5E8D5F8D60D6C58D618D628D638D648D658D668D67CFBF8D688D69E1BDE1BFC2CD8D6AB6EB8D6BD3F88D6C8D6DC7CD8D6E8D6FB7E58D708D718D728D738D748D758D768D778D788D79BEFE8D7A8D7B8D7C8D7D8D7E8D80E1C0E1C18D818D82E1C7B3E78D838D848D858D868D878D88C6E98D898D8A8D8B8D8C8D8DB4DE8D8ED1C28D8F8D908D918D92E1C88D938D94E1C68D958D968D978D988D99E1C58D9AE1C3E1C28D9BB1C08D9C8D9D8D9ED5B8E1C48D9F8DA08DA18DA28DA3E1CB8DA48DA58DA68DA78DA88DA98DAA8DABE1CCE1CA8DAC8DAD8DAE8DAF8DB08DB18DB28DB3EFFA8DB48DB5E1D3E1D2C7B68DB68DB78DB88DB98DBA8DBB8DBC8DBD8DBE8DBF8DC0E1C98DC18DC2E1CE8DC3E1D08DC48DC58DC68DC78DC88DC98DCA8DCB8DCC8DCD8DCEE1D48DCFE1D1E1CD8DD08DD1E1CF8DD28DD38DD48DD5E1D58DD68DD78DD88DD98DDA8DDB8DDC8DDD8DDE8DDF8DE08DE18DE2E1D68DE38DE48DE58DE68DE78DE88DE98DEA8DEB8DEC8DED8DEE8DEF8DF08DF18DF28DF38DF48DF58DF68DF78DF8E1D78DF98DFA8DFBE1D88DFC8DFD8DFE8E408E418E428E438E448E458E468E478E488E498E4A8E4B8E4C8E4D8E4E8E4F8E508E518E528E538E548E55E1DA8E568E578E588E598E5A8E5B8E5C8E5D8E5E8E5F8E608E618E62E1DB8E638E648E658E668E678E688E69CEA18E6A8E6B8E6C8E6D8E6E8E6F8E708E718E728E738E748E758E76E7DD8E77B4A8D6DD8E788E79D1B2B3B28E7A8E7BB9A4D7F3C7C9BEDEB9AE8E7CCED78E7D8E7EB2EEDBCF8E80BCBAD2D1CBC8B0CD8E818E82CFEF8E838E848E858E868E87D9E3BDED8E888E89B1D2CAD0B2BC8E8ACBA7B7AB8E8BCAA68E8C8E8D8E8ECFA38E8F8E90E0F8D5CAE0FB8E918E92E0FAC5C1CCFB8E93C1B1E0F9D6E3B2AFD6C4B5DB8E948E958E968E978E988E998E9A8E9BB4F8D6A18E9C8E9D8E9E8E9F8EA0CFAFB0EF8EA18EA2E0FC8EA38EA48EA58EA68EA7E1A1B3A38EA88EA9E0FDE0FEC3B18EAA8EAB8EAC8EADC3DD8EAEE1A2B7F98EAF8EB08EB18EB28EB38EB4BBCF8EB58EB68EB78EB88EB98EBA8EBBE1A3C4BB8EBC8EBD8EBE8EBF8EC0E1A48EC18EC2E1A58EC38EC4E1A6B4B18EC58EC68EC78EC88EC98ECA8ECB8ECC8ECD8ECE8ECF8ED08ED18ED28ED3B8C9C6BDC4EA8ED4B2A28ED5D0D28ED6E7DBBBC3D3D7D3C48ED7B9E3E2CF8ED88ED98EDAD7AF8EDBC7ECB1D38EDC8EDDB4B2E2D18EDE8EDF8EE0D0F2C2AEE2D08EE1BFE2D3A6B5D7E2D2B5EA8EE2C3EDB8FD8EE3B8AE8EE4C5D3B7CFE2D48EE58EE68EE78EE8E2D3B6C8D7F98EE98EEA8EEB8EEC8EEDCDA58EEE8EEF8EF08EF18EF2E2D88EF3E2D6CAFCBFB5D3B9E2D58EF48EF58EF68EF7E2D78EF88EF98EFA8EFB8EFC8EFD8EFE8F408F418F42C1AEC0C88F438F448F458F468F478F48E2DBE2DAC0AA8F498F4AC1CE8F4B8F4C8F4D8F4EE2DC8F4F8F508F518F528F538F548F558F568F578F588F598F5AE2DD8F5BE2DE8F5C8F5D8F5E8F5F8F608F618F628F638F64DBC88F65D1D3CDA28F668F67BDA88F688F698F6ADEC3D8A5BFAADBCDD2ECC6FAC5AA8F6B8F6C8F6DDEC48F6EB1D7DFAE8F6F8F708F71CABD8F72DFB18F73B9AD8F74D2FD8F75B8A5BAEB8F768F77B3DA8F788F798F7AB5DCD5C58F7B8F7C8F7D8F7EC3D6CFD2BBA18F80E5F3E5F28F818F82E5F48F83CDE48F84C8F58F858F868F878F888F898F8A8F8BB5AFC7BF8F8CE5F68F8D8F8E8F8FECB08F908F918F928F938F948F958F968F978F988F998F9A8F9B8F9C8F9D8F9EE5E68F9FB9E9B5B18FA0C2BCE5E8E5E7E5E98FA18FA28FA38FA4D2CD8FA58FA68FA7E1EAD0CE8FA8CDAE8FA9D1E58FAA8FABB2CAB1EB8FACB1F2C5ED8FAD8FAED5C3D3B08FAFE1DC8FB08FB18FB2E1DD8FB3D2DB8FB4B3B9B1CB8FB58FB68FB7CDF9D5F7E1DE8FB8BEB6B4FD8FB9E1DFBADCE1E0BBB2C2C9E1E18FBA8FBB8FBCD0EC8FBDCDBD8FBE8FBFE1E28FC0B5C3C5C7E1E38FC18FC2E1E48FC38FC48FC58FC6D3F98FC78FC88FC98FCA8FCB8FCCE1E58FCDD1AD8FCE8FCFE1E6CEA28FD08FD18FD28FD38FD48FD5E1E78FD6B5C28FD78FD88FD98FDAE1E8BBD58FDB8FDC8FDD8FDE8FDFD0C4E2E0B1D8D2E48FE08FE1E2E18FE28FE3BCC9C8CC8FE4E2E3ECFEECFDDFAF8FE58FE68FE7E2E2D6BECDFCC3A68FE88FE98FEAE3C38FEB8FECD6D2E2E78FED8FEEE2E88FEF8FF0D3C78FF18FF2E2ECBFEC8FF3E2EDE2E58FF48FF5B3C08FF68FF78FF8C4EE8FF98FFAE2EE8FFB8FFCD0C38FFDBAF6E2E9B7DEBBB3CCACCBCBE2E4E2E6E2EAE2EB8FFE90409041E2F790429043E2F4D4F5E2F390449045C5AD9046D5FAC5C2B2C090479048E2EF9049E2F2C1AFCBBC904A904BB5A1E2F9904C904D904EBCB1E2F1D0D4D4B9E2F5B9D6E2F6904F90509051C7D390529053905490559056E2F0905790589059905A905BD7DCEDA1905C905DE2F8905EEDA5E2FECAD1905F906090619062906390649065C1B59066BBD090679068BFD69069BAE3906A906BCBA1906C906D906EEDA6EDA3906F9070EDA29071907290739074BBD6EDA7D0F490759076EDA4BADEB6F7E3A1B6B2CCF1B9A79077CFA2C7A190789079BFD2907A907BB6F1907CE2FAE2FBE2FDE2FCC4D5E3A2907DD3C1907E90809081E3A7C7C49082908390849085CFA490869087E3A9BAB790889089908A908BE3A8908CBBDA908DE3A3908E908F9090E3A4E3AA9091E3A69092CEF2D3C690939094BBBC90959096D4C39097C4FA90989099EDA8D0FCE3A5909AC3F5909BE3ADB1AF909CE3B2909D909E909FBCC290A090A1E3ACB5BF90A290A390A490A590A690A790A890A9C7E9E3B090AA90AB90ACBEAACDEF90AD90AE90AF90B090B1BBF390B290B390B4CCE890B590B6E3AF90B7E3B190B8CFA7E3AE90B9CEA9BBDD90BA90BB90BC90BD90BEB5EBBEE5B2D2B3CD90BFB1B9E3ABB2D1B5ACB9DFB6E890C090C1CFEBE3B790C2BBCC90C390C4C8C7D0CA90C590C690C790C890C9E3B8B3EE90CA90CB90CC90CDEDA990CED3FAD3E490CF90D090D1EDAAE3B9D2E290D290D390D490D590D6E3B590D790D890D990DAD3DE90DB90DC90DD90DEB8D0E3B390DF90E0E3B6B7DF90E1E3B4C0A290E290E390E4E3BA90E590E690E790E890E990EA90EB90EC90ED90EE90EF90F090F190F290F390F490F590F690F7D4B890F890F990FA90FB90FC90FD90FE9140B4C89141E3BB9142BBC59143C9F791449145C9E5914691479148C4BD9149914A914B914C914D914E914FEDAB9150915191529153C2FD9154915591569157BBDBBFAE91589159915A915B915C915D915ECEBF915F916091619162E3BC9163BFB6916491659166916791689169916A916B916C916D916E916F9170917191729173917491759176B1EF91779178D4F79179917A917B917C917DE3BE917E9180918191829183918491859186EDAD918791889189918A918B918C918D918E918FE3BFBAA9EDAC91909191E3BD91929193919491959196919791989199919A919BE3C0919C919D919E919F91A091A1BAB691A291A391A4B6AE91A591A691A791A891A9D0B891AAB0C3EDAE91AB91AC91AD91AE91AFEDAFC0C191B0E3C191B191B291B391B491B591B691B791B891B991BA91BB91BC91BD91BE91BF91C091C1C5B391C291C391C491C591C691C791C891C991CA91CB91CC91CD91CE91CFE3C291D091D191D291D391D491D591D691D791D8DCB291D991DA91DB91DC91DD91DEEDB091DFB8EA91E0CEECEAA7D0E7CAF9C8D6CFB7B3C9CED2BDE491E191E2E3DEBBF2EAA8D5BD91E3C6DDEAA991E491E591E6EAAA91E7EAACEAAB91E8EAAEEAAD91E991EA91EB91ECBDD891EDEAAF91EEC2BE91EF91F091F191F2B4C1B4F791F391F4BBA791F591F691F791F891F9ECE6ECE5B7BFCBF9B1E291FAECE791FB91FC91FDC9C8ECE8ECE991FECAD6DED0B2C5D4FA92409241C6CBB0C7B4F2C8D3924292439244CDD092459246BFB8924792489249924A924B924C924DBFDB924E924FC7A4D6B49250C0A9DED1C9A8D1EFC5A4B0E7B3B6C8C592519252B0E292539254B7F692559256C5FA92579258B6F39259D5D2B3D0BCBC925A925B925CB3AD925D925E925F9260BEF1B0D1926192629263926492659266D2D6CAE3D7A59267CDB6B6B6BFB9D5DB9268B8A7C5D79269926A926BDED2BFD9C2D5C7C0926CBBA4B1A8926D926EC5EA926F9270C5FBCCA79271927292739274B1A7927592769277B5D692789279927AC4A8927BDED3D1BAB3E9927CC3F2927D927EB7F79280D6F4B5A3B2F0C4B4C4E9C0ADDED49281B0E8C5C4C1E09282B9D59283BEDCCDD8B0CE9284CDCFDED6BED0D7BEDED5D5D0B0DD92859286C4E292879288C2A3BCF09289D3B5C0B9C5A1B2A6D4F1928A928BC0A8CAC3DED7D5FC928CB9B0928DC8ADCBA9928EDED9BFBD928F929092919292C6B4D7A7CAB0C4C39293B3D6B9D29294929592969297D6B8EAFCB0B492989299929A929BBFE6929C929DCCF4929E929F92A092A1CDDA92A292A392A4D6BFC2CE92A5CECECCA2D0AEC4D3B5B2DED8D5F5BCB7BBD392A692A7B0A492A8C5B2B4EC92A992AA92ABD5F192AC92ADEAFD92AE92AF92B092B192B292B3DEDACDA692B492B5CDEC92B692B792B892B9CEE6DEDC92BACDB1C0A692BB92BCD7BD92BDDEDBB0C6BAB4C9D3C4F3BEE892BE92BF92C092C1B2B692C292C392C492C592C692C792C892C9C0CCCBF092CABCF1BBBBB5B792CB92CC92CDC5F592CEDEE692CF92D092D1DEE3BEDD92D292D3DEDF92D492D592D692D7B4B7BDDD92D892D9DEE0C4ED92DA92DB92DC92DDCFC692DEB5E092DF92E092E192E2B6DECADAB5F4DEE592E3D5C692E4DEE1CCCDC6FE92E5C5C592E692E792E8D2B492E9BEF292EA92EB92EC92ED92EE92EF92F0C2D392F1CCBDB3B892F2BDD392F3BFD8CDC6D1DAB4EB92F4DEE4DEDDDEE792F5EAFE92F692F7C2B0DEE292F892F9D6C0B5A792FAB2F492FBDEE892FCDEF292FD92FE934093419342DEED9343DEF193449345C8E0934693479348D7E1DEEFC3E8CCE19349B2E5934A934B934CD2BE934D934E934F9350935193529353DEEE9354DEEBCED59355B4A79356935793589359935ABFABBEBE935B935CBDD2935D935E935F9360DEE99361D4AE9362DEDE9363DEEA9364936593669367C0BF9368DEECB2F3B8E9C2A79369936ABDC1936B936C936D936E936FDEF5DEF893709371B2ABB4A493729373B4EAC9A6937493759376937793789379DEF6CBD1937AB8E3937BDEF7DEFA937C937D937E9380DEF9938193829383CCC29384B0E1B4EE93859386938793889389938AE5BA938B938C938D938E938FD0AF93909391B2EB9392EBA19393DEF493949395C9E3DEF3B0DAD2A1B1F79396CCAF939793989399939A939B939C939DDEF0939ECBA4939F93A093A1D5AA93A293A393A493A593A6DEFB93A793A893A993AA93AB93AC93AD93AEB4DD93AFC4A693B093B193B2DEFD93B393B493B593B693B793B893B993BA93BB93BCC3FEC4A1DFA193BD93BE93BF93C093C193C293C3C1CC93C4DEFCBEEF93C5C6B293C693C793C893C993CA93CB93CC93CD93CEB3C5C8F693CF93D0CBBADEFE93D193D2DFA493D393D493D593D6D7B293D793D893D993DA93DBB3B793DC93DD93DE93DFC1C393E093E1C7CBB2A5B4E993E2D7AB93E393E493E593E6C4EC93E7DFA2DFA393E8DFA593E9BAB393EA93EB93ECDFA693EDC0DE93EE93EFC9C393F093F193F293F393F493F593F6B2D9C7E693F7DFA793F8C7DC93F993FA93FB93FCDFA8EBA293FD93FE944094419442CBD3944394449445DFAA9446DFA99447B2C194489449944A944B944C944D944E944F9450945194529453945494559456945794589459945A945B945C945D945E945F9460C5CA94619462946394649465946694679468DFAB9469946A946B946C946D946E946F9470D4DC94719472947394749475C8C19476947794789479947A947B947C947D947E948094819482DFAC94839484948594869487BEF094889489DFADD6A7948A948B948C948DEAB7EBB6CAD5948ED8FCB8C4948FB9A594909491B7C5D5FE94929493949494959496B9CA94979498D0A7F4CD9499949AB5D0949B949CC3F4949DBEC8949E949F94A0EBB7B0BD94A194A2BDCC94A3C1B294A4B1D6B3A894A594A694A7B8D2C9A294A894A9B6D894AA94AB94AC94ADEBB8BEB494AE94AF94B0CAFD94B1C7C394B2D5FB94B394B4B7F394B594B694B794B894B994BA94BB94BC94BD94BE94BF94C094C194C294C3CEC494C494C594C6D5ABB1F394C794C894C9ECB3B0DF94CAECB594CB94CC94CDB6B794CEC1CF94CFF5FAD0B194D094D1D5E594D2CED394D394D4BDEFB3E294D5B8AB94D6D5B694D7EDBD94D8B6CF94D9CBB9D0C294DA94DB94DC94DD94DE94DF94E094E1B7BD94E294E3ECB6CAA994E494E594E6C5D494E7ECB9ECB8C2C3ECB794E894E994EA94EBD0FDECBA94ECECBBD7E594ED94EEECBC94EF94F094F1ECBDC6EC94F294F394F494F594F694F794F894F9CEDE94FABCC894FB94FCC8D5B5A9BEC9D6BCD4E794FD94FED1AED0F1EAB8EAB9EABABAB59540954195429543CAB1BFF595449545CDFA9546954795489549954AEAC0954BB0BAEABE954C954DC0A5954E954F9550EABB9551B2FD9552C3F7BBE8955395549555D2D7CEF4EABF955695579558EABC9559955A955BEAC3955CD0C7D3B3955D955E955F9560B4BA9561C3C1D7F29562956395649565D5D19566CAC79567EAC595689569EAC4EAC7EAC6956A956B956C956D956ED6E7956FCFD495709571EACB9572BBCE9573957495759576957795789579BDFAC9CE957A957BEACC957C957DC9B9CFFEEACAD4CEEACDEACF957E9580CDED9581958295839584EAC99585EACE95869587CEEE9588BBDE9589B3BF958A958B958C958D958EC6D5BEB0CEFA958F95909591C7E79592BEA7EAD095939594D6C7959595969597C1C095989599959AD4DD959BEAD1959C959DCFBE959E959F95A095A1EAD295A295A395A495A5CAEE95A695A795A895A9C5AFB0B595AA95AB95AC95AD95AEEAD495AF95B095B195B295B395B495B595B695B7EAD3F4DF95B895B995BA95BB95BCC4BA95BD95BE95BF95C095C1B1A995C295C395C495C5E5DF95C695C795C895C9EAD595CA95CB95CC95CD95CE95CF95D095D195D295D395D495D595D695D795D895D995DA95DB95DC95DD95DE95DF95E095E195E295E3CAEF95E4EAD6EAD7C6D895E595E695E795E895E995EA95EB95ECEAD895ED95EEEAD995EF95F095F195F295F395F4D4BB95F5C7FAD2B7B8FC95F695F7EAC295F8B2DC95F995FAC2FC95FBD4F8CCE6D7EE95FC95FD95FE9640964196429643D4C2D3D0EBC3C5F39644B7FE96459646EBD4964796489649CBB7EBDE964AC0CA964B964C964DCDFB964EB3AF964FC6DA965096519652965396549655EBFC9656C4BE9657CEB4C4A9B1BED4FD9658CAF59659D6EC965A965BC6D3B6E4965C965D965E965FBBFA96609661D0E096629663C9B19664D4D3C8A896659666B8CB9667E8BEC9BC96689669E8BB966AC0EED0D3B2C4B4E5966BE8BC966C966DD5C8966E966F967096719672B6C59673E8BDCAF8B8DCCCF5967496759676C0B496779678D1EEE8BFE8C29679967ABABC967BB1ADBDDC967CEABDE8C3967DE8C6967EE8CB9680968196829683E8CC9684CBC9B0E59685BCAB96869687B9B996889689E8C1968ACDF7968BE8CA968C968D968E968FCEF69690969196929693D5ED9694C1D6E8C49695C3B69696B9FBD6A6E8C8969796989699CAE0D4E6969AE8C0969BE8C5E8C7969CC7B9B7E3969DE8C9969EBFDDE8D2969F96A0E8D796A1E8D5BCDCBCCFE8DB96A296A396A496A596A696A796A896A9E8DE96AAE8DAB1FA96AB96AC96AD96AE96AF96B096B196B296B396B4B0D8C4B3B8CCC6E2C8BEC8E196B596B696B7E8CFE8D4E8D696B8B9F1E8D8D7F596B9C4FB96BAE8DC96BB96BCB2E996BD96BE96BFE8D196C096C1BCED96C296C3BFC2E8CDD6F996C4C1F8B2F196C596C696C796C896C996CA96CB96CCE8DF96CDCAC1E8D996CE96CF96D096D1D5A496D2B1EAD5BBE8CEE8D0B6B0E8D396D3E8DDC0B896D4CAF796D5CBA896D696D7C6DCC0F596D896D996DA96DB96DCE8E996DD96DE96DFD0A396E096E196E296E396E496E596E6E8F2D6EA96E796E896E996EA96EB96EC96EDE8E0E8E196EE96EF96F0D1F9BACBB8F996F196F2B8F1D4D4E8EF96F3E8EEE8ECB9F0CCD2E8E6CEA6BFF296F4B0B8E8F1E8F096F5D7C096F6E8E496F7CDA9C9A396F8BBB8BDDBE8EA96F996FA96FB96FC96FD96FE9740974197429743E8E2E8E3E8E5B5B5E8E7C7C5E8EBE8EDBDB0D7AE9744E8F897459746974797489749974A974B974CE8F5974DCDB0E8F6974E974F9750975197529753975497559756C1BA9757E8E89758C3B7B0F09759975A975B975C975D975E975F9760E8F4976197629763E8F7976497659766B9A3976797689769976A976B976C976D976E976F9770C9D2977197729773C3CECEE0C0E69774977597769777CBF39778CCDDD0B59779977ACAE1977BE8F3977C977D977E9780978197829783978497859786BCEC9787E8F997889789978A978B978C978DC3DE978EC6E5978FB9F79790979197929793B0F497949795D7D897969797BCAC9798C5EF9799979A979B979C979DCCC4979E979FE9A697A097A197A297A397A497A597A697A797A897A9C9AD97AAE9A2C0E297AB97AC97ADBFC397AE97AF97B0E8FEB9D797B1E8FB97B297B397B497B5E9A497B697B797B8D2CE97B997BA97BB97BC97BDE9A397BED6B2D7B597BFE9A797C0BDB797C197C297C397C497C597C697C797C897C997CA97CB97CCE8FCE8FD97CD97CE97CFE9A197D097D197D297D397D497D597D697D7CDD697D897D9D2AC97DA97DB97DCE9B297DD97DE97DF97E0E9A997E197E297E3B4AA97E4B4BB97E597E6E9AB97E797E897E997EA97EB97EC97ED97EE97EF97F097F197F297F397F497F597F697F7D0A897F897F9E9A597FA97FBB3FE97FC97FDE9ACC0E397FEE9AA98409841E9B998429843E9B89844984598469847E9AE98489849E8FA984A984BE9A8984C984D984E984F9850BFACE9B1E9BA98519852C2A5985398549855E9AF9856B8C59857E9AD9858D3DCE9B4E9B5E9B79859985A985BE9C7985C985D985E985F98609861C0C6E9C598629863E9B098649865E9BBB0F19866986798689869986A986B986C986D986E986FE9BCD5A598709871E9BE9872E9BF987398749875E9C198769877C1F198789879C8B6987A987B987CE9BD987D987E988098819882E9C29883988498859886988798889889988AE9C3988BE9B3988CE9B6988DBBB1988E988F9890E9C0989198929893989498959896BCF7989798989899E9C4E9C6989A989B989C989D989E989F98A098A198A298A398A498A5E9CA98A698A798A898A9E9CE98AA98AB98AC98AD98AE98AF98B098B198B298B3B2DB98B4E9C898B598B698B798B898B998BA98BB98BC98BD98BEB7AE98BF98C098C198C298C398C498C598C698C798C898C998CAE9CBE9CC98CB98CC98CD98CE98CF98D0D5C198D1C4A398D298D398D498D598D698D7E9D898D8BAE198D998DA98DB98DCE9C998DDD3A398DE98DF98E0E9D498E198E298E398E498E598E698E7E9D7E9D098E898E998EA98EB98ECE9CF98ED98EEC7C198EF98F098F198F298F398F498F598F6E9D298F798F898F998FA98FB98FC98FDE9D9B3C898FEE9D399409941994299439944CFF0994599469947E9CD99489949994A994B994C994D994E994F995099519952B3F79953995499559956995799589959E9D6995A995BE9DA995C995D995ECCB4995F99609961CFAD99629963996499659966996799689969996AE9D5996BE9DCE9DB996C996D996E996F9970E9DE99719972997399749975997699779978E9D19979997A997B997C997D997E99809981E9DD9982E9DFC3CA9983998499859986998799889989998A998B998C998D998E998F9990999199929993999499959996999799989999999A999B999C999D999E999F99A099A199A299A399A499A599A699A799A899A999AA99AB99AC99AD99AE99AF99B099B199B299B399B499B599B699B799B899B999BA99BB99BC99BD99BE99BF99C099C199C299C399C499C599C699C799C899C999CA99CB99CC99CD99CE99CF99D099D199D299D399D499D599D699D799D899D999DA99DB99DC99DD99DE99DF99E099E199E299E399E499E599E699E799E899E999EA99EB99EC99ED99EE99EF99F099F199F299F399F499F5C7B7B4CEBBB6D0C0ECA399F699F7C5B799F899F999FA99FB99FC99FD99FE9A409A419A42D3FB9A439A449A459A46ECA49A47ECA5C6DB9A489A499A4ABFEE9A4B9A4C9A4D9A4EECA69A4F9A50ECA7D0AA9A51C7B89A529A53B8E89A549A559A569A579A589A599A5A9A5B9A5C9A5D9A5E9A5FECA89A609A619A629A639A649A659A669A67D6B9D5FDB4CBB2BDCEE4C6E79A689A69CDE19A6A9A6B9A6C9A6D9A6E9A6F9A709A719A729A739A749A759A769A77B4F59A78CBC0BCDF9A799A7A9A7B9A7CE9E2E9E3D1EAE9E59A7DB4F9E9E49A7ED1B3CAE2B2D09A80E9E89A819A829A839A84E9E6E9E79A859A86D6B39A879A889A89E9E9E9EA9A8A9A8B9A8C9A8D9A8EE9EB9A8F9A909A919A929A939A949A959A96E9EC9A979A989A999A9A9A9B9A9C9A9D9A9EECAFC5B9B6CE9A9FD2F39AA09AA19AA29AA39AA49AA59AA6B5EE9AA7BBD9ECB19AA89AA9D2E39AAA9AAB9AAC9AAD9AAECEE39AAFC4B89AB0C3BF9AB19AB2B6BED8B9B1C8B1CFB1D1C5FE9AB3B1D09AB4C3AB9AB59AB69AB79AB89AB9D5B19ABA9ABB9ABC9ABD9ABE9ABF9AC09AC1EBA4BAC19AC29AC39AC4CCBA9AC59AC69AC7EBA59AC8EBA79AC99ACA9ACBEBA89ACC9ACD9ACEEBA69ACF9AD09AD19AD29AD39AD49AD5EBA9EBABEBAA9AD69AD79AD89AD99ADAEBAC9ADBCACFD8B5C3F19ADCC3A5C6F8EBADC4CA9ADDEBAEEBAFEBB0B7D59ADE9ADF9AE0B7FA9AE1EBB1C7E29AE2EBB39AE3BAA4D1F5B0B1EBB2EBB49AE49AE59AE6B5AAC2C8C7E89AE7EBB59AE8CBAEE3DF9AE99AEAD3C09AEB9AEC9AED9AEED9DB9AEF9AF0CDA1D6ADC7F39AF19AF29AF3D9E0BBE39AF4BABAE3E29AF59AF69AF79AF89AF9CFAB9AFA9AFB9AFCE3E0C9C79AFDBAB99AFE9B409B41D1B4E3E1C8EAB9AFBDADB3D8CEDB9B429B43CCC09B449B459B46E3E8E3E9CDF49B479B489B499B4A9B4BCCAD9B4CBCB39B4DE3EA9B4EE3EB9B4F9B50D0DA9B519B529B53C6FBB7DA9B549B55C7DFD2CACED69B56E3E4E3EC9B57C9F2B3C19B589B59E3E79B5A9B5BC6E3E3E59B5C9B5DEDB3E3E69B5E9B5F9B609B61C9B39B62C5E69B639B649B65B9B59B66C3BB9B67E3E3C5BDC1A4C2D9B2D79B68E3EDBBA6C4AD9B69E3F0BEDA9B6A9B6BE3FBE3F5BAD39B6C9B6D9B6E9B6FB7D0D3CD9B70D6CED5D3B9C1D5B4D1D89B719B729B739B74D0B9C7F69B759B769B77C8AAB2B49B78C3DA9B799B7A9B7BE3EE9B7C9B7DE3FCE3EFB7A8E3F7E3F49B7E9B809B81B7BA9B829B83C5A29B84E3F6C5DDB2A8C6FC9B85C4E09B869B87D7A29B88C0E1E3F99B899B8AE3FAE3FDCCA9E3F39B8BD3BE9B8CB1C3EDB4E3F1E3F29B8DE3F8D0BAC6C3D4F3E3FE9B8E9B8FBDE09B909B91E4A79B929B93E4A69B949B959B96D1F3E4A39B97E4A99B989B999B9AC8F79B9B9B9C9B9D9B9ECFB49B9FE4A8E4AEC2E59BA09BA1B6B49BA29BA39BA49BA59BA69BA7BDF29BA8E4A29BA99BAABAE9E4AA9BAB9BACE4AC9BAD9BAEB6FDD6DEE4B29BAFE4AD9BB09BB19BB2E4A19BB3BBEECDDDC7A2C5C99BB49BB5C1F79BB6E4A49BB7C7B3BDACBDBDE4A59BB8D7C7B2E29BB9E4ABBCC3E4AF9BBABBEBE4B0C5A8E4B19BBB9BBC9BBD9BBED5E3BFA39BBFE4BA9BC0E4B79BC1E4BB9BC29BC3E4BD9BC49BC5C6D69BC69BC7BAC6C0CB9BC89BC99BCAB8A1E4B49BCB9BCC9BCD9BCED4A19BCF9BD0BAA3BDFE9BD19BD29BD3E4BC9BD49BD59BD69BD79BD8CDBF9BD99BDAC4F99BDB9BDCCFFBC9E69BDD9BDED3BF9BDFCFD19BE09BE1E4B39BE2E4B8E4B9CCE99BE39BE49BE59BE69BE7CCCE9BE8C0D4E4B5C1B0E4B6CED09BE9BBC1B5D39BEAC8F3BDA7D5C7C9ACB8A2E4CA9BEB9BECE4CCD1C49BED9BEED2BA9BEF9BF0BAAD9BF19BF2BAD49BF39BF49BF59BF69BF79BF8E4C3B5ED9BF99BFA9BFBD7CDE4C0CFFDE4BF9BFC9BFD9BFEC1DCCCCA9C409C419C429C43CAE79C449C459C469C47C4D79C48CCD4E4C89C499C4A9C4BE4C7E4C19C4CE4C4B5AD9C4D9C4ED3D99C4FE4C69C509C519C529C53D2F9B4E39C54BBB49C559C56C9EE9C57B4BE9C589C599C5ABBEC9C5BD1CD9C5CCCEDEDB59C5D9C5E9C5F9C609C619C629C639C64C7E59C659C669C679C68D4A89C69E4CBD7D5E4C29C6ABDA5E4C59C6B9C6CD3E69C6DE4C9C9F89C6E9C6FE4BE9C709C71D3E59C729C73C7FEB6C99C74D4FCB2B3E4D79C759C769C77CEC29C78E4CD9C79CEBC9C7AB8DB9C7B9C7CE4D69C7DBFCA9C7E9C809C81D3CE9C82C3EC9C839C849C859C869C879C889C899C8AC5C8E4D89C8B9C8C9C8D9C8E9C8F9C909C919C92CDC4E4CF9C939C949C959C96E4D4E4D59C97BAFE9C98CFE69C999C9AD5BF9C9B9C9C9C9DE4D29C9E9C9F9CA09CA19CA29CA39CA49CA59CA69CA79CA8E4D09CA99CAAE4CE9CAB9CAC9CAD9CAE9CAF9CB09CB19CB29CB39CB49CB59CB69CB79CB89CB9CDE5CAAA9CBA9CBB9CBCC0A39CBDBDA6E4D39CBE9CBFB8C89CC09CC19CC29CC39CC4E4E7D4B49CC59CC69CC79CC89CC99CCA9CCBE4DB9CCC9CCD9CCEC1EF9CCF9CD0E4E99CD19CD2D2E79CD39CD4E4DF9CD5E4E09CD69CD7CFAA9CD89CD99CDA9CDBCBDD9CDCE4DAE4D19CDDE4E59CDEC8DCE4E39CDF9CE0C4E7E4E29CE1E4E19CE29CE39CE4B3FCE4E89CE59CE69CE79CE8B5E19CE99CEA9CEBD7CC9CEC9CED9CEEE4E69CEFBBAC9CF0D7D2CCCFEBF89CF1E4E49CF29CF3B9F69CF49CF59CF6D6CDE4D9E4DCC2FAE4DE9CF7C2CBC0C4C2D09CF8B1F5CCB29CF99CFA9CFB9CFC9CFD9CFE9D409D419D429D43B5CE9D449D459D469D47E4EF9D489D499D4A9D4B9D4C9D4D9D4E9D4FC6AF9D509D519D52C6E19D539D54E4F59D559D569D579D589D59C2A99D5A9D5B9D5CC0ECD1DDE4EE9D5D9D5E9D5F9D609D619D629D639D649D659D66C4AE9D679D689D69E4ED9D6A9D6B9D6C9D6DE4F6E4F4C2FE9D6EE4DD9D6FE4F09D70CAFE9D71D5C49D729D73E4F19D749D759D769D779D789D799D7AD1FA9D7B9D7C9D7D9D7E9D809D819D82E4EBE4EC9D839D849D85E4F29D86CEAB9D879D889D899D8A9D8B9D8C9D8D9D8E9D8F9D90C5CB9D919D929D93C7B19D94C2BA9D959D969D97E4EA9D989D999D9AC1CA9D9B9D9C9D9D9D9E9D9F9DA0CCB6B3B19DA19DA29DA3E4FB9DA4E4F39DA59DA69DA7E4FA9DA8E4FD9DA9E4FC9DAA9DAB9DAC9DAD9DAE9DAF9DB0B3CE9DB19DB29DB3B3BAE4F79DB49DB5E4F9E4F8C5EC9DB69DB79DB89DB99DBA9DBB9DBC9DBD9DBE9DBF9DC09DC19DC2C0BD9DC39DC49DC59DC6D4E89DC79DC89DC99DCA9DCBE5A29DCC9DCD9DCE9DCF9DD09DD19DD29DD39DD49DD59DD6B0C49DD79DD8E5A49DD99DDAE5A39DDB9DDC9DDD9DDE9DDF9DE0BCA49DE1E5A59DE29DE39DE49DE59DE69DE7E5A19DE89DE99DEA9DEB9DEC9DED9DEEE4FEB1F49DEF9DF09DF19DF29DF39DF49DF59DF69DF79DF89DF9E5A89DFAE5A9E5A69DFB9DFC9DFD9DFE9E409E419E429E439E449E459E469E47E5A7E5AA9E489E499E4A9E4B9E4C9E4D9E4E9E4F9E509E519E529E539E549E559E569E579E589E599E5A9E5B9E5C9E5D9E5E9E5F9E609E619E629E639E649E659E669E679E68C6D99E699E6A9E6B9E6C9E6D9E6E9E6F9E70E5ABE5AD9E719E729E739E749E759E769E77E5AC9E789E799E7A9E7B9E7C9E7D9E7E9E809E819E829E839E849E859E869E879E889E89E5AF9E8A9E8B9E8CE5AE9E8D9E8E9E8F9E909E919E929E939E949E959E969E979E989E999E9A9E9B9E9C9E9D9E9EB9E09E9F9EA0E5B09EA19EA29EA39EA49EA59EA69EA79EA89EA99EAA9EAB9EAC9EAD9EAEE5B19EAF9EB09EB19EB29EB39EB49EB59EB69EB79EB89EB99EBABBF0ECE1C3F09EBBB5C6BBD29EBC9EBD9EBE9EBFC1E9D4EE9EC0BEC49EC19EC29EC3D7C69EC4D4D6B2D3ECBE9EC59EC69EC79EC8EAC19EC99ECA9ECBC2AFB4B69ECC9ECD9ECED1D79ECF9ED09ED1B3B49ED2C8B2BFBBECC09ED39ED4D6CB9ED59ED6ECBFECC19ED79ED89ED99EDA9EDB9EDC9EDD9EDE9EDF9EE09EE19EE29EE3ECC5BEE6CCBFC5DABEBC9EE4ECC69EE5B1FE9EE69EE79EE8ECC4D5A8B5E39EE9ECC2C1B6B3E39EEA9EEBECC3CBB8C0C3CCFE9EEC9EED9EEE9EEFC1D29EF0ECC89EF19EF29EF39EF49EF59EF69EF79EF89EF99EFA9EFB9EFC9EFDBAE6C0D39EFED6F29F409F419F42D1CC9F439F449F459F46BFBE9F47B7B3C9D5ECC7BBE29F48CCCCBDFDC8C89F49CFA99F4A9F4B9F4C9F4D9F4E9F4F9F50CDE99F51C5EB9F529F539F54B7E99F559F569F579F589F599F5A9F5B9F5C9F5D9F5E9F5FD1C9BAB89F609F619F629F639F64ECC99F659F66ECCA9F67BBC0ECCB9F68ECE2B1BAB7D99F699F6A9F6B9F6C9F6D9F6E9F6F9F709F719F729F73BDB99F749F759F769F779F789F799F7A9F7BECCCD1E6ECCD9F7C9F7D9F7E9F80C8BB9F819F829F839F849F859F869F879F889F899F8A9F8B9F8C9F8D9F8EECD19F8F9F909F919F92ECD39F93BBCD9F94BCE59F959F969F979F989F999F9A9F9B9F9C9F9D9F9E9F9F9FA09FA1ECCF9FA2C9B79FA39FA49FA59FA69FA7C3BA9FA8ECE3D5D5ECD09FA99FAA9FAB9FAC9FADD6F39FAE9FAF9FB0ECD2ECCE9FB19FB29FB39FB4ECD49FB5ECD59FB69FB7C9BF9FB89FB99FBA9FBB9FBC9FBDCFA89FBE9FBF9FC09FC19FC2D0DC9FC39FC49FC59FC6D1AC9FC79FC89FC99FCAC8DB9FCB9FCC9FCDECD6CEF59FCE9FCF9FD09FD19FD2CAECECDA9FD39FD49FD59FD69FD79FD89FD9ECD99FDA9FDB9FDCB0BE9FDD9FDE9FDF9FE09FE19FE2ECD79FE3ECD89FE49FE59FE6ECE49FE79FE89FE99FEA9FEB9FEC9FED9FEE9FEFC8BC9FF09FF19FF29FF39FF49FF59FF69FF79FF89FF9C1C79FFA9FFB9FFC9FFD9FFEECDCD1E0A040A041A042A043A044A045A046A047A048A049ECDBA04AA04BA04CA04DD4EFA04EECDDA04FA050A051A052A053A054DBC6A055A056A057A058A059A05AA05BA05CA05DA05EECDEA05FA060A061A062A063A064A065A066A067A068A069A06AB1ACA06BA06CA06DA06EA06FA070A071A072A073A074A075A076A077A078A079A07AA07BA07CA07DA07EA080A081ECDFA082A083A084A085A086A087A088A089A08AA08BECE0A08CD7A6A08DC5C0A08EA08FA090EBBCB0AEA091A092A093BEF4B8B8D2AFB0D6B5F9A094D8B3A095CBACA096E3DDA097A098A099A09AA09BA09CA09DC6ACB0E6A09EA09FA0A0C5C6EBB9A0A1A0A2A0A3A0A4EBBAA0A5A0A6A0A7EBBBA0A8A0A9D1C0A0AAC5A3A0ABEAF2A0ACC4B2A0ADC4B5C0CEA0AEA0AFA0B0EAF3C4C1A0B1CEEFA0B2A0B3A0B4A0B5EAF0EAF4A0B6A0B7C9FCA0B8A0B9C7A3A0BAA0BBA0BCCCD8CEFEA0BDA0BEA0BFEAF5EAF6CFACC0E7A0C0A0C1EAF7A0C2A0C3A0C4A0C5A0C6B6BFEAF8A0C7EAF9A0C8EAFAA0C9A0CAEAFBA0CBA0CCA0CDA0CEA0CFA0D0A0D1A0D2A0D3A0D4A0D5A0D6EAF1A0D7A0D8A0D9A0DAA0DBA0DCA0DDA0DEA0DFA0E0A0E1A0E2C8AEE1EBA0E3B7B8E1ECA0E4A0E5A0E6E1EDA0E7D7B4E1EEE1EFD3CCA0E8A0E9A0EAA0EBA0ECA0EDA0EEE1F1BFF1E1F0B5D2A0EFA0F0A0F1B1B7A0F2A0F3A0F4A0F5E1F3E1F2A0F6BAFCA0F7E1F4A0F8A0F9A0FAA0FBB9B7A0FCBED1A0FDA0FEAA40AA41C4FCAA42BADDBDC6AA43AA44AA45AA46AA47AA48E1F5E1F7AA49AA4AB6C0CFC1CAA8E1F6D5F8D3FCE1F8E1FCE1F9AA4BAA4CE1FAC0EAAA4DE1FEE2A1C0C7AA4EAA4FAA50AA51E1FBAA52E1FDAA53AA54AA55AA56AA57AA58E2A5AA59AA5AAA5BC1D4AA5CAA5DAA5EAA5FE2A3AA60E2A8B2FEE2A2AA61AA62AA63C3CDB2C2E2A7E2A6AA64AA65E2A4E2A9AA66AA67E2ABAA68AA69AA6AD0C9D6EDC3A8E2ACAA6BCFD7AA6CAA6DE2AEAA6EAA6FBAEFAA70AA71E9E0E2ADE2AAAA72AA73AA74AA75BBABD4B3AA76AA77AA78AA79AA7AAA7BAA7CAA7DAA7EAA80AA81AA82AA83E2B0AA84AA85E2AFAA86E9E1AA87AA88AA89AA8AE2B1AA8BAA8CAA8DAA8EAA8FAA90AA91AA92E2B2AA93AA94AA95AA96AA97AA98AA99AA9AAA9BAA9CAA9DE2B3CCA1AA9EE2B4AA9FAAA0AB40AB41AB42AB43AB44AB45AB46AB47AB48AB49AB4AAB4BE2B5AB4CAB4DAB4EAB4FAB50D0FEAB51AB52C2CAAB53D3F1AB54CDF5AB55AB56E7E0AB57AB58E7E1AB59AB5AAB5BAB5CBEC1AB5DAB5EAB5FAB60C2EAAB61AB62AB63E7E4AB64AB65E7E3AB66AB67AB68AB69AB6AAB6BCDE6AB6CC3B5AB6DAB6EE7E2BBB7CFD6AB6FC1E1E7E9AB70AB71AB72E7E8AB73AB74E7F4B2A3AB75AB76AB77AB78E7EAAB79E7E6AB7AAB7BAB7CAB7DAB7EE7ECE7EBC9BAAB80AB81D5E4AB82E7E5B7A9E7E7AB83AB84AB85AB86AB87AB88AB89E7EEAB8AAB8BAB8CAB8DE7F3AB8ED6E9AB8FAB90AB91AB92E7EDAB93E7F2AB94E7F1AB95AB96AB97B0E0AB98AB99AB9AAB9BE7F5AB9CAB9DAB9EAB9FABA0AC40AC41AC42AC43AC44AC45AC46AC47AC48AC49AC4AC7F2AC4BC0C5C0EDAC4CAC4DC1F0E7F0AC4EAC4FAC50AC51E7F6CBF6AC52AC53AC54AC55AC56AC57AC58AC59AC5AE8A2E8A1AC5BAC5CAC5DAC5EAC5FAC60D7C1AC61AC62E7FAE7F9AC63E7FBAC64E7F7AC65E7FEAC66E7FDAC67E7FCAC68AC69C1D5C7D9C5FDC5C3AC6AAC6BAC6CAC6DAC6EC7EDAC6FAC70AC71AC72E8A3AC73AC74AC75AC76AC77AC78AC79AC7AAC7BAC7CAC7DAC7EAC80AC81AC82AC83AC84AC85AC86E8A6AC87E8A5AC88E8A7BAF7E7F8E8A4AC89C8F0C9AAAC8AAC8BAC8CAC8DAC8EAC8FAC90AC91AC92AC93AC94AC95AC96E8A9AC97AC98B9E5AC99AC9AAC9BAC9CAC9DD1FEE8A8AC9EAC9FACA0AD40AD41AD42E8AAAD43E8ADE8AEAD44C1A7AD45AD46AD47E8AFAD48AD49AD4AE8B0AD4BAD4CE8ACAD4DE8B4AD4EAD4FAD50AD51AD52AD53AD54AD55AD56AD57AD58E8ABAD59E8B1AD5AAD5BAD5CAD5DAD5EAD5FAD60AD61E8B5E8B2E8B3AD62AD63AD64AD65AD66AD67AD68AD69AD6AAD6BAD6CAD6DAD6EAD6FAD70AD71E8B7AD72AD73AD74AD75AD76AD77AD78AD79AD7AAD7BAD7CAD7DAD7EAD80AD81AD82AD83AD84AD85AD86AD87AD88AD89E8B6AD8AAD8BAD8CAD8DAD8EAD8FAD90AD91AD92B9CFAD93F0ACAD94F0ADAD95C6B0B0EAC8BFAD96CDDFAD97AD98AD99AD9AAD9BAD9CAD9DCECDEAB1AD9EAD9FADA0AE40EAB2AE41C6BFB4C9AE42AE43AE44AE45AE46AE47AE48EAB3AE49AE4AAE4BAE4CD5E7AE4DAE4EAE4FAE50AE51AE52AE53AE54DDF9AE55EAB4AE56EAB5AE57EAB6AE58AE59AE5AAE5BB8CADFB0C9F5AE5CCCF0AE5DAE5EC9FAAE5FAE60AE61AE62AE63C9FBAE64AE65D3C3CBA6AE66B8A6F0AEB1C2AE67E5B8CCEFD3C9BCD7C9EAAE68B5E7AE69C4D0B5E9AE6AEEAEBBADAE6BAE6CE7DEAE6DEEAFAE6EAE6FAE70AE71B3A9AE72AE73EEB2AE74AE75EEB1BDE7AE76EEB0CEB7AE77AE78AE79AE7AC5CFAE7BAE7CAE7DAE7EC1F4DBCEEEB3D0F3AE80AE81AE82AE83AE84AE85AE86AE87C2D4C6E8AE88AE89AE8AB7ACAE8BAE8CAE8DAE8EAE8FAE90AE91EEB4AE92B3EBAE93AE94AE95BBFBEEB5AE96AE97AE98AE99AE9AE7DCAE9BAE9CAE9DEEB6AE9EAE9FBDAEAEA0AF40AF41AF42F1E2AF43AF44AF45CAE8AF46D2C9F0DAAF47F0DBAF48F0DCC1C6AF49B8EDBECEAF4AAF4BF0DEAF4CC5B1F0DDD1F1AF4DF0E0B0CCBDEAAF4EAF4FAF50AF51AF52D2DFF0DFAF53B4AFB7E8F0E6F0E5C6A3F0E1F0E2B4C3AF54AF55F0E3D5EEAF56AF57CCDBBED2BCB2AF58AF59AF5AF0E8F0E7F0E4B2A1AF5BD6A2D3B8BEB7C8ACAF5CAF5DF0EAAF5EAF5FAF60AF61D1F7AF62D6CCBADBF0E9AF63B6BBAF64AF65CDB4AF66AF67C6A6AF68AF69AF6AC1A1F0EBF0EEAF6BF0EDF0F0F0ECAF6CBBBEF0EFAF6DAF6EAF6FAF70CCB5F0F2AF71AF72B3D5AF73AF74AF75AF76B1D4AF77AF78F0F3AF79AF7AF0F4F0F6B4E1AF7BF0F1AF7CF0F7AF7DAF7EAF80AF81F0FAAF82F0F8AF83AF84AF85F0F5AF86AF87AF88AF89F0FDAF8AF0F9F0FCF0FEAF8BF1A1AF8CAF8DAF8ECEC1F1A4AF8FF1A3AF90C1F6F0FBCADDAF91AF92B4F1B1F1CCB1AF93F1A6AF94AF95F1A7AF96AF97F1ACD5CEF1A9AF98AF99C8B3AF9AAF9BAF9CF1A2AF9DF1ABF1A8F1A5AF9EAF9FF1AAAFA0B040B041B042B043B044B045B046B0A9F1ADB047B048B049B04AB04BB04CF1AFB04DF1B1B04EB04FB050B051B052F1B0B053F1AEB054B055B056B057D1A2B058B059B05AB05BB05CB05DB05EF1B2B05FB060B061F1B3B062B063B064B065B066B067B068B069B9EFB06AB06BB5C7B06CB0D7B0D9B06DB06EB06FD4EDB070B5C4B071BDD4BBCAF0A7B072B073B8DEB074B075F0A8B076B077B0A8B078F0A9B079B07ACDEEB07BB07CF0AAB07DB07EB080B081B082B083B084B085B086B087F0ABB088B089B08AB08BB08CB08DB08EB08FB090C6A4B091B092D6E5F1E4B093F1E5B094B095B096B097B098B099B09AB09BB09CB09DC3F3B09EB09FD3DBB0A0B140D6D1C5E8B141D3AFB142D2E6B143B144EEC1B0BBD5B5D1CEBCE0BAD0B145BFF8B146B8C7B5C1C5CCB147B148CAA2B149B14AB14BC3CBB14CB14DB14EB14FB150EEC2B151B152B153B154B155B156B157B158C4BFB6A2B159EDECC3A4B15AD6B1B15BB15CB15DCFE0EDEFB15EB15FC5CEB160B6DCB161B162CAA1B163B164EDEDB165B166EDF0EDF1C3BCB167BFB4B168EDEEB169B16AB16BB16CB16DB16EB16FB170B171B172B173EDF4EDF2B174B175B176B177D5E6C3DFB178EDF3B179B17AB17BEDF6B17CD5A3D1A3B17DB17EB180EDF5B181C3D0B182B183B184B185B186EDF7BFF4BEECEDF8B187CCF7B188D1DBB189B18AB18BD7C5D5F6B18CEDFCB18DB18EB18FEDFBB190B191B192B193B194B195B196B197EDF9EDFAB198B199B19AB19BB19CB19DB19EB19FEDFDBEA6B1A0B240B241B242B243CBAFEEA1B6BDB244EEA2C4C0B245EDFEB246B247BDDEB2C7B248B249B24AB24BB24CB24DB24EB24FB250B251B252B253B6C3B254B255B256EEA5D8BAEEA3EEA6B257B258B259C3E9B3F2B25AB25BB25CB25DB25EB25FEEA7EEA4CFB9B260B261EEA8C2F7B262B263B264B265B266B267B268B269B26AB26BB26CB26DEEA9EEAAB26EDEABB26FB270C6B3B271C7C6B272D6F5B5C9B273CBB2B274B275B276EEABB277B278CDABB279EEACB27AB27BB27CB27DB27ED5B0B280EEADB281F6C4B282B283B284B285B286B287B288B289B28AB28BB28CB28DB28EDBC7B28FB290B291B292B293B294B295B296B297B4A3B298B299B29AC3ACF1E6B29BB29CB29DB29EB29FCAB8D2D3B2A0D6AAB340EFF2B341BED8B342BDC3EFF3B6CCB0ABB343B344B345B346CAAFB347B348EDB6B349EDB7B34AB34BB34CB34DCEF9B7AFBFF3EDB8C2EBC9B0B34EB34FB350B351B352B353EDB9B354B355C6F6BFB3B356B357B358EDBCC5F8B359D1D0B35AD7A9EDBAEDBBB35BD1E2B35CEDBFEDC0B35DEDC4B35EB35FB360EDC8B361EDC6EDCED5E8B362EDC9B363B364EDC7EDBEB365B366C5E9B367B368B369C6C6B36AB36BC9E9D4D2EDC1EDC2EDC3EDC5B36CC0F9B36DB4A1B36EB36FB370B371B9E8B372EDD0B373B374B375B376EDD1B377EDCAB378EDCFB379CEF8B37AB37BCBB6EDCCEDCDB37CB37DB37EB380B381CFF5B382B383B384B385B386B387B388B389B38AB38BB38CB38DEDD2C1F2D3B2EDCBC8B7B38EB38FB390B391B392B393B394B395BCEFB396B397B398B399C5F0B39AB39BB39CB39DB39EB39FB3A0B440B441B442EDD6B443B5EFB444B445C2B5B0ADCBE9B446B447B1AEB448EDD4B449B44AB44BCDEBB5E2B44CEDD5EDD3EDD7B44DB44EB5FAB44FEDD8B450EDD9B451EDDCB452B1CCB453B454B455B456B457B458B459B45AC5F6BCEEEDDACCBCB2EAB45BB45CB45DB45EEDDBB45FB460B461B462C4EBB463B464B4C5B465B466B467B0F5B468B469B46AEDDFC0DAB4E8B46BB46CB46DB46EC5CDB46FB470B471EDDDBFC4B472B473B474EDDEB475B476B477B478B479B47AB47BB47CB47DB47EB480B481B482B483C4A5B484B485B486EDE0B487B488B489B48AB48BEDE1B48CEDE3B48DB48EC1D7B48FB490BBC7B491B492B493B494B495B496BDB8B497B498B499EDE2B49AB49BB49CB49DB49EB49FB4A0B540B541B542B543B544B545EDE4B546B547B548B549B54AB54BB54CB54DB54EB54FEDE6B550B551B552B553B554EDE5B555B556B557B558B559B55AB55BB55CB55DB55EB55FB560B561B562B563EDE7B564B565B566B567B568CABEECEAC0F1B569C9E7B56AECEBC6EEB56BB56CB56DB56EECECB56FC6EDECEDB570B571B572B573B574B575B576B577B578ECF0B579B57AD7E6ECF3B57BB57CECF1ECEEECEFD7A3C9F1CBEEECF4B57DECF2B57EB580CFE9B581ECF6C6B1B582B583B584B585BCC0B586ECF5B587B588B589B58AB58BB58CB58DB5BBBBF6B58EECF7B58FB590B591B592B593D9F7BDFBB594B595C2BBECF8B596B597B598B599ECF9B59AB59BB59CB59DB8A3B59EB59FB5A0B640B641B642B643B644B645B646ECFAB647B648B649B64AB64BB64CB64DB64EB64FB650B651B652ECFBB653B654B655B656B657B658B659B65AB65BB65CB65DECFCB65EB65FB660B661B662D3EDD8AEC0EBB663C7DDBACCB664D0E3CBBDB665CDBAB666B667B8D1B668B669B1FCB66AC7EFB66BD6D6B66CB66DB66EBFC6C3EBB66FB670EFF5B671B672C3D8B673B674B675B676B677B678D7E2B679B67AB67BEFF7B3D3B67CC7D8D1EDB67DD6C8B67EEFF8B680EFF6B681BBFDB3C6B682B683B684B685B686B687B688BDD5B689B68AD2C6B68BBBE0B68CB68DCFA1B68EEFFCEFFBB68FB690EFF9B691B692B693B694B3CCB695C9D4CBB0B696B697B698B699B69AEFFEB69BB69CB0DEB69DB69ED6C9B69FB6A0B740EFFDB741B3EDB742B743F6D5B744B745B746B747B748B749B74AB74BB74CB74DB74EB74FB750B751B752CEC8B753B754B755F0A2B756F0A1B757B5BEBCDABBFCB758B8E5B759B75AB75BB75CB75DB75EC4C2B75FB760B761B762B763B764B765B766B767B768F0A3B769B76AB76BB76CB76DCBEBB76EB76FB770B771B772B773B774B775B776B777B778B779B77AB77BB77CB77DB77EB780B781B782B783B784B785B786F0A6B787B788B789D1A8B78ABEBFC7EEF1B6F1B7BFD5B78BB78CB78DB78EB4A9F1B8CDBBB78FC7D4D5ADB790F1B9B791F1BAB792B793B794B795C7CFB796B797B798D2A4D6CFB799B79AF1BBBDD1B4B0BEBDB79BB79CB79DB4DCCED1B79EBFDFF1BDB79FB7A0B840B841BFFAF1BCB842F1BFB843B844B845F1BEF1C0B846B847B848B849B84AF1C1B84BB84CB84DB84EB84FB850B851B852B853B854B855C1FEB856B857B858B859B85AB85BB85CB85DB85EB85FB860C1A2B861B862B863B864B865B866B867B868B869B86ACAFAB86BB86CD5BEB86DB86EB86FB870BEBABEB9D5C2B871B872BFA2B873CDAFF1B5B874B875B876B877B878B879BDDFB87AB6CBB87BB87CB87DB87EB880B881B882B883B884D6F1F3C3B885B886F3C4B887B8CDB888B889B88AF3C6F3C7B88BB0CAB88CF3C5B88DF3C9CBF1B88EB88FB890F3CBB891D0A6B892B893B1CAF3C8B894B895B896F3CFB897B5D1B898B899F3D7B89AF3D2B89BB89CB89DF3D4F3D3B7FBB89EB1BFB89FF3CEF3CAB5DAB8A0F3D0B940B941F3D1B942F3D5B943B944B945B946F3CDB947BCE3B948C1FDB949F3D6B94AB94BB94CB94DB94EB94FF3DAB950F3CCB951B5C8B952BDEEF3DCB953B954B7A4BFF0D6FECDB2B955B4F0B956B2DFB957F3D8B958F3D9C9B8B959F3DDB95AB95BF3DEB95CF3E1B95DB95EB95FB960B961B962B963B964B965B966B967F3DFB968B969F3E3F3E2B96AB96BF3DBB96CBFEAB96DB3EFB96EF3E0B96FB970C7A9B971BCF2B972B973B974B975F3EBB976B977B978B979B97AB97BB97CB9BFB97DB97EF3E4B980B981B982B2ADBBFEB983CBE3B984B985B986B987F3EDF3E9B988B989B98AB9DCF3EEB98BB98CB98DF3E5F3E6F3EAC2E1F3ECF3EFF3E8BCFDB98EB98FB990CFE4B991B992F3F0B993B994B995F3E7B996B997B998B999B99AB99BB99CB99DF3F2B99EB99FB9A0BA40D7ADC6AABA41BA42BA43BA44F3F3BA45BA46BA47BA48F3F1BA49C2A8BA4ABA4BBA4CBA4DBA4EB8DDF3F5BA4FBA50F3F4BA51BA52BA53B4DBBA54BA55BA56F3F6F3F7BA57BA58BA59F3F8BA5ABA5BBA5CC0BABA5DBA5EC0E9BA5FBA60BA61BA62BA63C5F1BA64BA65BA66BA67F3FBBA68F3FABA69BA6ABA6BBA6CBA6DBA6EBA6FBA70B4D8BA71BA72BA73F3FEF3F9BA74BA75F3FCBA76BA77BA78BA79BA7ABA7BF3FDBA7CBA7DBA7EBA80BA81BA82BA83BA84F4A1BA85BA86BA87BA88BA89BA8AF4A3BBC9BA8BBA8CF4A2BA8DBA8EBA8FBA90BA91BA92BA93BA94BA95BA96BA97BA98BA99F4A4BA9ABA9BBA9CBA9DBA9EBA9FB2BEF4A6F4A5BAA0BB40BB41BB42BB43BB44BB45BB46BB47BB48BB49BCAEBB4ABB4BBB4CBB4DBB4EBB4FBB50BB51BB52BB53BB54BB55BB56BB57BB58BB59BB5ABB5BBB5CBB5DBB5EBB5FBB60BB61BB62BB63BB64BB65BB66BB67BB68BB69BB6ABB6BBB6CBB6DBB6EC3D7D9E1BB6FBB70BB71BB72BB73BB74C0E0F4CCD7D1BB75BB76BB77BB78BB79BB7ABB7BBB7CBB7DBB7EBB80B7DBBB81BB82BB83BB84BB85BB86BB87F4CEC1A3BB88BB89C6C9BB8AB4D6D5B3BB8BBB8CBB8DF4D0F4CFF4D1CBDABB8EBB8FF4D2BB90D4C1D6E0BB91BB92BB93BB94B7E0BB95BB96BB97C1B8BB98BB99C1BBF4D3BEACBB9ABB9BBB9CBB9DBB9EB4E2BB9FBBA0F4D4F4D5BEABBC40BC41F4D6BC42BC43BC44F4DBBC45F4D7F4DABC46BAFDBC47F4D8F4D9BC48BC49BC4ABC4BBC4CBC4DBC4EB8E2CCC7F4DCBC4FB2DABC50BC51C3D3BC52BC53D4E3BFB7BC54BC55BC56BC57BC58BC59BC5AF4DDBC5BBC5CBC5DBC5EBC5FBC60C5B4BC61BC62BC63BC64BC65BC66BC67BC68F4E9BC69BC6ACFB5BC6BBC6CBC6DBC6EBC6FBC70BC71BC72BC73BC74BC75BC76BC77BC78CEC9BC79BC7ABC7BBC7CBC7DBC7EBC80BC81BC82BC83BC84BC85BC86BC87BC88BC89BC8ABC8BBC8CBC8DBC8ECBD8BC8FCBF7BC90BC91BC92BC93BDF4BC94BC95BC96D7CFBC97BC98BC99C0DBBC9ABC9BBC9CBC9DBC9EBC9FBCA0BD40BD41BD42BD43BD44BD45BD46BD47BD48BD49BD4ABD4BBD4CBD4DBD4EBD4FBD50BD51BD52BD53BD54BD55BD56BD57BD58BD59BD5ABD5BBD5CBD5DBD5EBD5FBD60BD61BD62BD63BD64BD65BD66BD67BD68BD69BD6ABD6BBD6CBD6DBD6EBD6FBD70BD71BD72BD73BD74BD75BD76D0F5BD77BD78BD79BD7ABD7BBD7CBD7DBD7EF4EABD80BD81BD82BD83BD84BD85BD86BD87BD88BD89BD8ABD8BBD8CBD8DBD8EBD8FBD90BD91BD92BD93BD94BD95BD96BD97BD98BD99BD9ABD9BBD9CBD9DBD9EBD9FBDA0BE40BE41BE42BE43BE44BE45BE46BE47BE48BE49BE4ABE4BBE4CF4EBBE4DBE4EBE4FBE50BE51BE52BE53F4ECBE54BE55BE56BE57BE58BE59BE5ABE5BBE5CBE5DBE5EBE5FBE60BE61BE62BE63BE64BE65BE66BE67BE68BE69BE6ABE6BBE6CBE6DBE6EBE6FBE70BE71BE72BE73BE74BE75BE76BE77BE78BE79BE7ABE7BBE7CBE7DBE7EBE80BE81BE82BE83BE84BE85BE86BE87BE88BE89BE8ABE8BBE8CBE8DBE8EBE8FBE90BE91BE92BE93BE94BE95BE96BE97BE98BE99BE9ABE9BBE9CBE9DBE9EBE9FBEA0BF40BF41BF42BF43BF44BF45BF46BF47BF48BF49BF4ABF4BBF4CBF4DBF4EBF4FBF50BF51BF52BF53BF54BF55BF56BF57BF58BF59BF5ABF5BBF5CBF5DBF5EBF5FBF60BF61BF62BF63BF64BF65BF66BF67BF68BF69BF6ABF6BBF6CBF6DBF6EBF6FBF70BF71BF72BF73BF74BF75BF76BF77BF78BF79BF7ABF7BBF7CBF7DBF7EBF80F7E3BF81BF82BF83BF84BF85B7B1BF86BF87BF88BF89BF8AF4EDBF8BBF8CBF8DBF8EBF8FBF90BF91BF92BF93BF94BF95BF96BF97BF98BF99BF9ABF9BBF9CBF9DBF9EBF9FBFA0C040C041C042C043C044C045C046C047C048C049C04AC04BC04CC04DC04EC04FC050C051C052C053C054C055C056C057C058C059C05AC05BC05CC05DC05EC05FC060C061C062C063D7EBC064C065C066C067C068C069C06AC06BC06CC06DC06EC06FC070C071C072C073C074C075C076C077C078C079C07AC07BF4EEC07CC07DC07EE6F9BEC0E6FABAECE6FBCFCBE6FCD4BCBCB6E6FDE6FEBCCDC8D2CEB3E7A1C080B4BFE7A2C9B4B8D9C4C9C081D7DDC2DAB7D7D6BDCEC6B7C4C082C083C5A6E7A3CFDFE7A4E7A5E7A6C1B7D7E9C9F0CFB8D6AFD6D5E7A7B0EDE7A8E7A9C9DCD2EFBEADE7AAB0F3C8DEBDE1E7ABC8C6C084E7ACBBE6B8F8D1A4E7ADC2E7BEF8BDCACDB3E7AEE7AFBEEED0E5C085CBE7CCD0BCCCE7B0BCA8D0F7E7B1C086D0F8E7B2E7B3B4C2E7B4E7B5C9FECEACC3E0E7B7B1C1B3F1C087E7B8E7B9D7DBD5C0E7BAC2CCD7BAE7BBE7BCE7BDBCEAC3E5C0C2E7BEE7BFBCA9C088E7C0E7C1E7B6B6D0E7C2C089E7C3E7C4BBBAB5DEC2C6B1E0E7C5D4B5E7C6B8BFE7C8E7C7B7ECC08AE7C9B2F8E7CAE7CBE7CCE7CDE7CEE7CFE7D0D3A7CBF5E7D1E7D2E7D3E7D4C9C9E7D5E7D6E7D7E7D8E7D9BDC9E7DAF3BEC08BB8D7C08CC8B1C08DC08EC08FC090C091C092C093F3BFC094F3C0F3C1C095C096C097C098C099C09AC09BC09CC09DC09EB9DECDF8C09FC0A0D8E8BAB1C140C2DEEEB7C141B7A3C142C143C144C145EEB9C146EEB8B0D5C147C148C149C14AC14BEEBBD5D6D7EFC14CC14DC14ED6C3C14FC150EEBDCAF0C151EEBCC152C153C154C155EEBEC156C157C158C159EEC0C15AC15BEEBFC15CC15DC15EC15FC160C161C162C163D1F2C164C7BCC165C3C0C166C167C168C169C16AB8E1C16BC16CC16DC16EC16FC1E7C170C171F4C6D0DFF4C7C172CFDBC173C174C8BAC175C176F4C8C177C178C179C17AC17BC17CC17DF4C9F4CAC17EF4CBC180C181C182C183C184D9FAB8FEC185C186E5F1D3F0C187F4E0C188CECCC189C18AC18BB3E1C18CC18DC18EC18FF1B4C190D2EEC191F4E1C192C193C194C195C196CFE8F4E2C197C198C7CCC199C19AC19BC19CC19DC19EB5D4B4E4F4E4C19FC1A0C240F4E3F4E5C241C242F4E6C243C244C245C246F4E7C247BAB2B0BFC248F4E8C249C24AC24BC24CC24DC24EC24FB7ADD2EDC250C251C252D2ABC0CFC253BFBCEBA3D5DFEAC8C254C255C256C257F1F3B6F8CBA3C258C259C4CDC25AF1E7C25BF1E8B8FBF1E9BAC4D4C5B0D2C25CC25DF1EAC25EC25FC260F1EBC261F1ECC262C263F1EDF1EEF1EFF1F1F1F0C5D5C264C265C266C267C268C269F1F2C26AB6FAC26BF1F4D2AEDEC7CBCAC26CC26DB3DCC26EB5A2C26FB9A2C270C271C4F4F1F5C272C273F1F6C274C275C276C1C4C1FBD6B0F1F7C277C278C279C27AF1F8C27BC1AAC27CC27DC27EC6B8C280BEDBC281C282C283C284C285C286C287C288C289C28AC28BC28CC28DC28EF1F9B4CFC28FC290C291C292C293C294F1FAC295C296C297C298C299C29AC29BC29CC29DC29EC29FC2A0C340EDB2EDB1C341C342CBE0D2DEC343CBC1D5D8C344C8E2C345C0DFBCA1C346C347C348C349C34AC34BEBC1C34CC34DD0A4C34ED6E2C34FB6C7B8D8EBC0B8CEC350EBBFB3A6B9C9D6ABC351B7F4B7CAC352C353C354BCE7B7BEEBC6C355EBC7B0B9BFCFC356EBC5D3FDC357EBC8C358C359EBC9C35AC35BB7CEC35CEBC2EBC4C9F6D6D7D5CDD0B2EBCFCEB8EBD0C35DB5A8C35EC35FC360C361C362B1B3EBD2CCA5C363C364C365C366C367C368C369C5D6EBD3C36AEBD1C5DFEBCECAA4EBD5B0FBC36BC36CBAFAC36DC36ED8B7F1E3C36FEBCAEBCBEBCCEBCDEBD6E6C0EBD9C370BFE8D2C8EBD7EBDCB8ECEBD8C371BDBAC372D0D8C373B0B7C374EBDDC4DCC375C376C377C378D6ACC379C37AC37BB4E0C37CC37DC2F6BCB9C37EC380EBDAEBDBD4E0C6EAC4D4EBDFC5A7D9F5C381B2B1C382EBE4C383BDC5C384C385C386EBE2C387C388C389C38AC38BC38CC38DC38EC38FC390C391C392C393EBE3C394C395B8ACC396CDD1EBE5C397C398C399EBE1C39AC1B3C39BC39CC39DC39EC39FC6A2C3A0C440C441C442C443C444C445CCF3C446EBE6C447C0B0D2B8EBE7C448C449C44AB8AFB8ADC44BEBE8C7BBCDF3C44CC44DC44EEBEAEBEBC44FC450C451C452C453EBEDC454C455C456C457D0C8C458EBF2C459EBEEC45AC45BC45CEBF1C8F9C45DD1FCEBECC45EC45FEBE9C460C461C462C463B8B9CFD9C4E5EBEFEBF0CCDACDC8B0F2C464EBF6C465C466C467C468C469EBF5C46AB2B2C46BC46CC46DC46EB8E0C46FEBF7C470C471C472C473C474C475B1ECC476C477CCC5C4A4CFA5C478C479C47AC47BC47CEBF9C47DC47EECA2C480C5F2C481EBFAC482C483C484C485C486C487C488C489C9C5C48AC48BC48CC48DC48EC48FE2DFEBFEC490C491C492C493CDCEECA1B1DBD3B7C494C495D2DCC496C497C498EBFDC499EBFBC49AC49BC49CC49DC49EC49FC4A0C540C541C542C543C544C545C546C547C548C549C54AC54BC54CC54DC54EB3BCC54FC550C551EAB0C552C553D7D4C554F4ABB3F4C555C556C557C558C559D6C1D6C2C55AC55BC55CC55DC55EC55FD5E9BECAC560F4A7C561D2A8F4A8F4A9C562F4AABECBD3DFC563C564C565C566C567C9E0C9E1C568C569F3C2C56ACAE6C56BCCF2C56CC56DC56EC56FC570C571E2B6CBB4C572CEE8D6DBC573F4ADF4AEF4AFC574C575C576C577F4B2C578BABDF4B3B0E3F4B0C579F4B1BDA2B2D5C57AF4B6F4B7B6E6B2B0CFCFF4B4B4ACC57BF4B5C57CC57DF4B8C57EC580C581C582C583F4B9C584C585CDA7C586F4BAC587F4BBC588C589C58AF4BCC58BC58CC58DC58EC58FC590C591C592CBD2C593F4BDC594C595C596C597F4BEC598C599C59AC59BC59CC59DC59EC59FF4BFC5A0C640C641C642C643F4DEC1BCBCE8C644C9ABD1DEE5F5C645C646C647C648DCB3D2D5C649C64ADCB4B0ACDCB5C64BC64CBDDAC64DDCB9C64EC64FC650D8C2C651DCB7D3F3C652C9D6DCBADCB6C653DCBBC3A2C654C655C656C657DCBCDCC5DCBDC658C659CEDFD6A5C65ADCCFC65BDCCDC65CC65DDCD2BDE6C2ABC65EDCB8DCCBDCCEDCBEB7D2B0C5DCC7D0BEDCC1BBA8C65FB7BCDCCCC660C661DCC6DCBFC7DBC662C663C664D1BFDCC0C665C666DCCAC667C668DCD0C669C66ACEADDCC2C66BDCC3DCC8DCC9B2D4DCD1CBD5C66CD4B7DCDBDCDFCCA6DCE6C66DC3E7DCDCC66EC66FBFC1DCD9C670B0FAB9B6DCE5DCD3C671DCC4DCD6C8F4BFE0C672C673C674C675C9BBC676C677C678B1BDC679D3A2C67AC67BDCDAC67CC67DDCD5C67EC6BBC680DCDEC681C682C683C684C685D7C2C3AFB7B6C7D1C3A9DCE2DCD8DCEBDCD4C686C687DCDDC688BEA5DCD7C689DCE0C68AC68BDCE3DCE4C68CDCF8C68DC68EDCE1DDA2DCE7C68FC690C691C692C693C694C695C696C697C698BCEBB4C4C699C69AC3A3B2E7DCFAC69BDCF2C69CDCEFC69DDCFCDCEED2F0B2E8C69EC8D7C8E3DCFBC69FDCEDC6A0C740C741DCF7C742C743DCF5C744C745BEA3DCF4C746B2DDC747C748C749C74AC74BDCF3BCF6DCE8BBC4C74CC0F3C74DC74EC74FC750C751BCD4DCE9DCEAC752DCF1DCF6DCF9B5B4C753C8D9BBE7DCFEDCFDD3ABDDA1DDA3DDA5D2F1DDA4DDA6DDA7D2A9C754C755C756C757C758C759C75ABAC9DDA9C75BC75CDDB6DDB1DDB4C75DC75EC75FC760C761C762C763DDB0C6CEC764C765C0F2C766C767C768C769C9AFC76AC76BC76CDCECDDAEC76DC76EC76FC770DDB7C771C772DCF0DDAFC773DDB8C774DDACC775C776C777C778C779C77AC77BDDB9DDB3DDADC4AAC77CC77DC77EC780DDA8C0B3C1ABDDAADDABC781DDB2BBF1DDB5D3A8DDBAC782DDBBC3A7C783C784DDD2DDBCC785C786C787DDD1C788B9BDC789C78ABED5C78BBEFAC78CC78DBACAC78EC78FC790C791DDCAC792DDC5C793DDBFC794C795C796B2CBDDC3C797DDCBB2A4DDD5C798C799C79ADDBEC79BC79CC79DC6D0DDD0C79EC79FC7A0C840C841DDD4C1E2B7C6C842C843C844C845C846DDCEDDCFC847C848C849DDC4C84AC84BC84CDDBDC84DDDCDCCD1C84EDDC9C84FC850C851C852DDC2C3C8C6BCCEAEDDCCC853DDC8C854C855C856C857C858C859DDC1C85AC85BC85CDDC6C2DCC85DC85EC85FC860C861C862D3A9D3AADDD3CFF4C8F8C863C864C865C866C867C868C869C86ADDE6C86BC86CC86DC86EC86FC870DDC7C871C872C873DDE0C2E4C874C875C876C877C878C879C87AC87BDDE1C87CC87DC87EC880C881C882C883C884C885C886DDD7C887C888C889C88AC88BD6F8C88CDDD9DDD8B8F0DDD6C88DC88EC88FC890C6CFC891B6ADC892C893C894C895C896DDE2C897BAF9D4E1DDE7C898C899C89AB4D0C89BDDDAC89CBFFBDDE3C89DDDDFC89EDDDDC89FC8A0C940C941C942C943C944B5D9C945C946C947C948DDDBDDDCDDDEC949BDAFDDE4C94ADDE5C94BC94CC94DC94EC94FC950C951C952DDF5C953C3C9C954C955CBE2C956C957C958C959DDF2C95AC95BC95CC95DC95EC95FC960C961C962C963C964C965C966D8E1C967C968C6D1C969DDF4C96AC96BC96CD5F4DDF3DDF0C96DC96EDDECC96FDDEFC970DDE8C971C972D0EEC973C974C975C976C8D8DDEEC977C978DDE9C979C97ADDEACBF2C97BDDEDC97CC97DB1CDC97EC980C981C982C983C984C0B6C985BCBBDDF1C986C987DDF7C988DDF6DDEBC989C98AC98BC98CC98DC5EEC98EC98FC990DDFBC991C992C993C994C995C996C997C998C999C99AC99BDEA4C99CC99DDEA3C99EC99FC9A0CA40CA41CA42CA43CA44CA45CA46CA47CA48DDF8CA49CA4ACA4BCA4CC3EFCA4DC2FBCA4ECA4FCA50D5E1CA51CA52CEB5CA53CA54CA55CA56DDFDCA57B2CCCA58CA59CA5ACA5BCA5CCA5DCA5ECA5FCA60C4E8CADFCA61CA62CA63CA64CA65CA66CA67CA68CA69CA6AC7BEDDFADDFCDDFEDEA2B0AAB1CECA6BCA6CCA6DCA6ECA6FDEACCA70CA71CA72CA73DEA6BDB6C8EFCA74CA75CA76CA77CA78CA79CA7ACA7BCA7CCA7DCA7EDEA1CA80CA81DEA5CA82CA83CA84CA85DEA9CA86CA87CA88CA89CA8ADEA8CA8BCA8CCA8DDEA7CA8ECA8FCA90CA91CA92CA93CA94CA95CA96DEADCA97D4CCCA98CA99CA9ACA9BDEB3DEAADEAECA9CCA9DC0D9CA9ECA9FCAA0CB40CB41B1A1DEB6CB42DEB1CB43CB44CB45CB46CB47CB48CB49DEB2CB4ACB4BCB4CCB4DCB4ECB4FCB50CB51CB52CB53CB54D1A6DEB5CB55CB56CB57CB58CB59CB5ACB5BDEAFCB5CCB5DCB5EDEB0CB5FD0BDCB60CB61CB62DEB4CAEDDEB9CB63CB64CB65CB66CB67CB68DEB8CB69DEB7CB6ACB6BCB6CCB6DCB6ECB6FCB70DEBBCB71CB72CB73CB74CB75CB76CB77BDE5CB78CB79CB7ACB7BCB7CB2D8C3EACB7DCB7EDEBACB80C5BACB81CB82CB83CB84CB85CB86DEBCCB87CB88CB89CB8ACB8BCB8CCB8DCCD9CB8ECB8FCB90CB91B7AACB92CB93CB94CB95CB96CB97CB98CB99CB9ACB9BCB9CCB9DCB9ECB9FCBA0CC40CC41D4E5CC42CC43CC44DEBDCC45CC46CC47CC48CC49DEBFCC4ACC4BCC4CCC4DCC4ECC4FCC50CC51CC52CC53CC54C4A2CC55CC56CC57CC58DEC1CC59CC5ACC5BCC5CCC5DCC5ECC5FCC60CC61CC62CC63CC64CC65CC66CC67CC68DEBECC69DEC0CC6ACC6BCC6CCC6DCC6ECC6FCC70CC71CC72CC73CC74CC75CC76CC77D5BACC78CC79CC7ADEC2CC7BCC7CCC7DCC7ECC80CC81CC82CC83CC84CC85CC86CC87CC88CC89CC8ACC8BF2AEBBA2C2B2C5B0C2C7CC8CCC8DF2AFCC8ECC8FCC90CC91CC92D0E9CC93CC94CC95D3DDCC96CC97CC98EBBDCC99CC9ACC9BCC9CCC9DCC9ECC9FCCA0B3E6F2B0CD40F2B1CD41CD42CAADCD43CD44CD45CD46CD47CD48CD49BAE7F2B3F2B5F2B4CBE4CFBAF2B2CAB4D2CFC2ECCD4ACD4BCD4CCD4DCD4ECD4FCD50CEC3F2B8B0F6F2B7CD51CD52CD53CD54CD55F2BECD56B2CFCD57CD58CD59CD5ACD5BCD5CD1C1F2BACD5DCD5ECD5FCD60CD61F2BCD4E9CD62CD63F2BBF2B6F2BFF2BDCD64F2B9CD65CD66F2C7F2C4F2C6CD67CD68F2CAF2C2F2C0CD69CD6ACD6BF2C5CD6CCD6DCD6ECD6FCD70D6FBCD71CD72CD73F2C1CD74C7F9C9DFCD75F2C8B9C6B5B0CD76CD77F2C3F2C9F2D0F2D6CD78CD79BBD7CD7ACD7BCD7CF2D5CDDCCD7DD6EBCD7ECD80F2D2F2D4CD81CD82CD83CD84B8F2CD85CD86CD87CD88F2CBCD89CD8ACD8BF2CEC2F9CD8CD5DDF2CCF2CDF2CFF2D3CD8DCD8ECD8FF2D9D3BCCD90CD91CD92CD93B6EACD94CAF1CD95B7E4F2D7CD96CD97CD98F2D8F2DAF2DDF2DBCD99CD9AF2DCCD9BCD9CCD9DCD9ED1D1F2D1CD9FCDC9CDA0CECFD6A9CE40F2E3CE41C3DBCE42F2E0CE43CE44C0AFF2ECF2DECE45F2E1CE46CE47CE48F2E8CE49CE4ACE4BCE4CF2E2CE4DCE4EF2E7CE4FCE50F2E6CE51CE52F2E9CE53CE54CE55F2DFCE56CE57F2E4F2EACE58CE59CE5ACE5BCE5CCE5DCE5ED3ACF2E5B2F5CE5FCE60F2F2CE61D0ABCE62CE63CE64CE65F2F5CE66CE67CE68BBC8CE69F2F9CE6ACE6BCE6CCE6DCE6ECE6FF2F0CE70CE71F2F6F2F8F2FACE72CE73CE74CE75CE76CE77CE78CE79F2F3CE7AF2F1CE7BCE7CCE7DBAFBCE7EB5FBCE80CE81CE82CE83F2EFF2F7F2EDF2EECE84CE85CE86F2EBF3A6CE87F3A3CE88CE89F3A2CE8ACE8BF2F4CE8CC8DACE8DCE8ECE8FCE90CE91F2FBCE92CE93CE94F3A5CE95CE96CE97CE98CE99CE9ACE9BC3F8CE9CCE9DCE9ECE9FCEA0CF40CF41CF42F2FDCF43CF44F3A7F3A9F3A4CF45F2FCCF46CF47CF48F3ABCF49F3AACF4ACF4BCF4CCF4DC2DDCF4ECF4FF3AECF50CF51F3B0CF52CF53CF54CF55CF56F3A1CF57CF58CF59F3B1F3ACCF5ACF5BCF5CCF5DCF5EF3AFF2FEF3ADCF5FCF60CF61CF62CF63CF64CF65F3B2CF66CF67CF68CF69F3B4CF6ACF6BCF6CCF6DF3A8CF6ECF6FCF70CF71F3B3CF72CF73CF74F3B5CF75CF76CF77CF78CF79CF7ACF7BCF7CCF7DCF7ED0B7CF80CF81CF82CF83F3B8CF84CF85CF86CF87D9F9CF88CF89CF8ACF8BCF8CCF8DF3B9CF8ECF8FCF90CF91CF92CF93CF94CF95F3B7CF96C8E4F3B6CF97CF98CF99CF9AF3BACF9BCF9CCF9DCF9ECF9FF3BBB4C0CFA0D040D041D042D043D044D045D046D047D048D049D04AD04BD04CD04DEEC3D04ED04FD050D051D052D053F3BCD054D055F3BDD056D057D058D1AAD059D05AD05BF4ACD0C6D05CD05DD05ED05FD060D061D0D0D1DCD062D063D064D065D066D067CFCED068D069BDD6D06AD1C3D06BD06CD06DD06ED06FD070D071BAE2E1E9D2C2F1C2B2B9D072D073B1EDF1C3D074C9C0B3C4D075D9F2D076CBA5D077F1C4D078D079D07AD07BD6D4D07CD07DD07ED080D081F1C5F4C0F1C6D082D4ACF1C7D083B0C0F4C1D084D085F4C2D086D087B4FCD088C5DBD089D08AD08BD08CCCBBD08DD08ED08FD0E4D090D091D092D093D094CDE0D095D096D097D098D099F1C8D09AD9F3D09BD09CD09DD09ED09FD0A0B1BBD140CFAED141D142D143B8A4D144D145D146D147D148F1CAD149D14AD14BD14CF1CBD14DD14ED14FD150B2C3C1D1D151D152D7B0F1C9D153D154F1CCD155D156D157D158F1CED159D15AD15BD9F6D15CD2E1D4A3D15DD15EF4C3C8B9D15FD160D161D162D163F4C4D164D165F1CDF1CFBFE3F1D0D166D167F1D4D168D169D16AD16BD16CD16DD16EF1D6F1D1D16FC9D1C5E1D170D171D172C2E3B9FCD173D174F1D3D175F1D5D176D177D178B9D3D179D17AD17BD17CD17DD17ED180F1DBD181D182D183D184D185BAD6D186B0FDF1D9D187D188D189D18AD18BF1D8F1D2F1DAD18CD18DD18ED18FD190F1D7D191D192D193C8ECD194D195D196D197CDCAF1DDD198D199D19AD19BE5BDD19CD19DD19EF1DCD19FF1DED1A0D240D241D242D243D244D245D246D247D248F1DFD249D24ACFE5D24BD24CD24DD24ED24FD250D251D252D253D254D255D256D257D258D259D25AD25BD25CD25DD25ED25FD260D261D262D263F4C5BDF3D264D265D266D267D268D269F1E0D26AD26BD26CD26DD26ED26FD270D271D272D273D274D275D276D277D278D279D27AD27BD27CD27DF1E1D27ED280D281CEF7D282D2AAD283F1FBD284D285B8B2D286D287D288D289D28AD28BD28CD28DD28ED28FD290D291D292D293D294D295D296D297D298D299D29AD29BD29CD29DD29ED29FD2A0D340D341D342D343D344D345D346D347D348D349D34AD34BD34CD34DD34ED34FD350D351D352D353D354D355D356D357D358D359D35AD35BD35CD35DD35EBCFBB9DBD35FB9E6C3D9CAD3EAE8C0C0BEF5EAE9EAEAEAEBD360EAECEAEDEAEEEAEFBDC7D361D362D363F5FBD364D365D366F5FDD367F5FED368F5FCD369D36AD36BD36CBDE2D36DF6A1B4A5D36ED36FD370D371F6A2D372D373D374F6A3D375D376D377ECB2D378D379D37AD37BD37CD37DD37ED380D381D382D383D384D1D4D385D386D387D388D389D38AD9EAD38BD38CD38DD38ED38FD390D391D392D393D394D395D396D397D398D399D39AD39BD39CD39DD39ED39FD3A0D440D441D442D443D444D445D446D447D448D449D44AD44BD44CD44DD44ED44FD450D451D452D453D454D455D456D457D458D459D45AD45BD45CD45DD45ED45FF6A4D460D461D462D463D464D465D466D467D468EEBAD469D46AD46BD46CD46DD46ED46FD470D471D472D473D474D475D476D477D478D479D47AD47BD47CD47DD47ED480D481D482D483D484D485D486D487D488D489D48AD48BD48CD48DD48ED48FD490D491D492D493D494D495D496D497D498D499D5B2D49AD49BD49CD49DD49ED49FD4A0D540D541D542D543D544D545D546D547D3FECCDCD548D549D54AD54BD54CD54DD54ED54FCAC4D550D551D552D553D554D555D556D557D558D559D55AD55BD55CD55DD55ED55FD560D561D562D563D564D565D566D567D568D569D56AD56BD56CD56DD56ED56FD570D571D572D573D574D575D576D577D578D579D57AD57BD57CD57DD57ED580D581D582D583D584D585D586D587D588D589D58AD58BD58CD58DD58ED58FD590D591D592D593D594D595D596D597D598D599D59AD59BD59CD59DD59ED59FD5A0D640D641D642D643D644D645D646D647D648D649D64AD64BD64CD64DD64ED64FD650D651D652D653D654D655D656D657D658D659D65AD65BD65CD65DD65ED65FD660D661D662E5C0D663D664D665D666D667D668D669D66AD66BD66CD66DD66ED66FD670D671D672D673D674D675D676D677D678D679D67AD67BD67CD67DD67ED680D681F6A5D682D683D684D685D686D687D688D689D68AD68BD68CD68DD68ED68FD690D691D692D693D694D695D696D697D698D699D69AD69BD69CD69DD69ED69FD6A0D740D741D742D743D744D745D746D747D748D749D74AD74BD74CD74DD74ED74FD750D751D752D753D754D755D756D757D758D759D75AD75BD75CD75DD75ED75FBEAFD760D761D762D763D764C6A9D765D766D767D768D769D76AD76BD76CD76DD76ED76FD770D771D772D773D774D775D776D777D778D779D77AD77BD77CD77DD77ED780D781D782D783D784D785D786D787D788D789D78AD78BD78CD78DD78ED78FD790D791D792D793D794D795D796D797D798DAA5BCC6B6A9B8BCC8CFBCA5DAA6DAA7CCD6C8C3DAA8C6FDD799D1B5D2E9D1B6BCC7D79ABDB2BBE4DAA9DAAAD1C8DAABD0EDB6EFC2DBD79BCBCFB7EDC9E8B7C3BEF7D6A4DAACDAADC6C0D7E7CAB6D79CD5A9CBDFD5EFDAAED6DFB4CADAB0DAAFD79DD2EBDAB1DAB2DAB3CAD4DAB4CAABDAB5DAB6B3CFD6EFDAB7BBB0B5AEDAB8DAB9B9EED1AFD2E8DABAB8C3CFEAB2EFDABBDABCD79EBDEBCEDCD3EFDABDCEF3DABED3D5BBE5DABFCBB5CBD0DAC0C7EBD6EEDAC1C5B5B6C1DAC2B7CCBFCEDAC3DAC4CBADDAC5B5F7DAC6C1C2D7BBDAC7CCB8D79FD2EAC4B1DAC8B5FDBBD1DAC9D0B3DACADACBCEBDDACCDACDDACEB2F7DAD1DACFD1E8DAD0C3D5DAD2D7A0DAD3DAD4DAD5D0BBD2A5B0F9DAD6C7ABDAD7BDF7C3A1DAD8DAD9C3FDCCB7DADADADBC0BEC6D7DADCDADDC7B4DADEDADFB9C8D840D841D842D843D844D845D846D847D848BBEDD849D84AD84BD84CB6B9F4F8D84DF4F9D84ED84FCDE3D850D851D852D853D854D855D856D857F5B9D858D859D85AD85BEBE0D85CD85DD85ED85FD860D861CFF3BBBFD862D863D864D865D866D867D868BAC0D4A5D869D86AD86BD86CD86DD86ED86FE1D9D870D871D872D873F5F4B1AAB2F2D874D875D876D877D878D879D87AF5F5D87BD87CF5F7D87DD87ED880BAD1F5F6D881C3B2D882D883D884D885D886D887D888F5F9D889D88AD88BF5F8D88CD88DD88ED88FD890D891D892D893D894D895D896D897D898D899D89AD89BD89CD89DD89ED89FD8A0D940D941D942D943D944D945D946D947D948D949D94AD94BD94CD94DD94ED94FD950D951D952D953D954D955D956D957D958D959D95AD95BD95CD95DD95ED95FD960D961D962D963D964D965D966D967D968D969D96AD96BD96CD96DD96ED96FD970D971D972D973D974D975D976D977D978D979D97AD97BD97CD97DD97ED980D981D982D983D984D985D986D987D988D989D98AD98BD98CD98DD98ED98FD990D991D992D993D994D995D996D997D998D999D99AD99BD99CD99DD99ED99FD9A0DA40DA41DA42DA43DA44DA45DA46DA47DA48DA49DA4ADA4BDA4CDA4DDA4EB1B4D5EAB8BADA4FB9B1B2C6D4F0CFCDB0DCD5CBBBF5D6CAB7B7CCB0C6B6B1E1B9BAD6FCB9E1B7A1BCFAEADAEADBCCF9B9F3EADCB4FBC3B3B7D1BAD8EADDD4F4EADEBCD6BBDFEADFC1DEC2B8D4DFD7CAEAE0EAE1EAE4EAE2EAE3C9DEB8B3B6C4EAE5CAEAC9CDB4CDDA50DA51E2D9C5E2EAE6C0B5DA52D7B8EAE7D7ACC8FCD8D3D8CDD4DEDA53D4F9C9C4D3AEB8D3B3E0DA54C9E2F4F6DA55DA56DA57BAD5DA58F4F7DA59DA5AD7DFDA5BDA5CF4F1B8B0D5D4B8CFC6F0DA5DDA5EDA5FDA60DA61DA62DA63DA64DA65B3C3DA66DA67F4F2B3ACDA68DA69DA6ADA6BD4BDC7F7DA6CDA6DDA6EDA6FDA70F4F4DA71DA72F4F3DA73DA74DA75DA76DA77DA78DA79DA7ADA7BDA7CCCCBDA7DDA7EDA80C8A4DA81DA82DA83DA84DA85DA86DA87DA88DA89DA8ADA8BDA8CDA8DF4F5DA8ED7E3C5BFF5C0DA8FDA90F5BBDA91F5C3DA92F5C2DA93D6BAF5C1DA94DA95DA96D4BEF5C4DA97F5CCDA98DA99DA9ADA9BB0CFB5F8DA9CF5C9F5CADA9DC5DCDA9EDA9FDAA0DB40F5C5F5C6DB41DB42F5C7F5CBDB43BEE0F5C8B8FADB44DB45DB46F5D0F5D3DB47DB48DB49BFE7DB4AB9F2F5BCF5CDDB4BDB4CC2B7DB4DDB4EDB4FCCF8DB50BCF9DB51F5CEF5CFF5D1B6E5F5D2DB52F5D5DB53DB54DB55DB56DB57DB58DB59F5BDDB5ADB5BDB5CF5D4D3BBDB5DB3ECDB5EDB5FCCA4DB60DB61DB62DB63F5D6DB64DB65DB66DB67DB68DB69DB6ADB6BF5D7BEE1F5D8DB6CDB6DCCDFF5DBDB6EDB6FDB70DB71DB72B2C8D7D9DB73F5D9DB74F5DAF5DCDB75F5E2DB76DB77DB78F5E0DB79DB7ADB7BF5DFF5DDDB7CDB7DF5E1DB7EDB80F5DEF5E4F5E5DB81CCE3DB82DB83E5BFB5B8F5E3F5E8CCA3DB84DB85DB86DB87DB88F5E6F5E7DB89DB8ADB8BDB8CDB8DDB8EF5BEDB8FDB90DB91DB92DB93DB94DB95DB96DB97DB98DB99DB9AB1C4DB9BDB9CF5BFDB9DDB9EB5C5B2E4DB9FF5ECF5E9DBA0B6D7DC40F5EDDC41F5EADC42DC43DC44DC45DC46F5EBDC47DC48B4DADC49D4EADC4ADC4BDC4CF5EEDC4DB3F9DC4EDC4FDC50DC51DC52DC53DC54F5EFF5F1DC55DC56DC57F5F0DC58DC59DC5ADC5BDC5CDC5DDC5EF5F2DC5FF5F3DC60DC61DC62DC63DC64DC65DC66DC67DC68DC69DC6ADC6BC9EDB9AADC6CDC6DC7FBDC6EDC6FB6E3DC70DC71DC72DC73DC74DC75DC76CCC9DC77DC78DC79DC7ADC7BDC7CDC7DDC7EDC80DC81DC82DC83DC84DC85DC86DC87DC88DC89DC8AEAA6DC8BDC8CDC8DDC8EDC8FDC90DC91DC92DC93DC94DC95DC96DC97DC98DC99DC9ADC9BDC9CDC9DDC9EDC9FDCA0DD40DD41DD42DD43DD44DD45DD46DD47DD48DD49DD4ADD4BDD4CDD4DDD4EDD4FDD50DD51DD52DD53DD54DD55DD56DD57DD58DD59DD5ADD5BDD5CDD5DDD5EDD5FDD60DD61DD62DD63DD64DD65DD66DD67DD68DD69DD6ADD6BDD6CDD6DDD6EDD6FDD70DD71DD72DD73DD74DD75DD76DD77DD78DD79DD7ADD7BDD7CDD7DDD7EDD80DD81DD82DD83DD84DD85DD86DD87DD88DD89DD8ADD8BDD8CDD8DDD8EDD8FDD90DD91DD92DD93DD94DD95DD96DD97DD98DD99DD9ADD9BDD9CDD9DDD9EDD9FDDA0DE40DE41DE42DE43DE44DE45DE46DE47DE48DE49DE4ADE4BDE4CDE4DDE4EDE4FDE50DE51DE52DE53DE54DE55DE56DE57DE58DE59DE5ADE5BDE5CDE5DDE5EDE5FDE60B3B5D4FEB9ECD0F9DE61E9EDD7AAE9EEC2D6C8EDBAE4E9EFE9F0E9F1D6E1E9F2E9F3E9F5E9F4E9F6E9F7C7E1E9F8D4D8E9F9BDCEDE62E9FAE9FBBDCFE9FCB8A8C1BEE9FDB1B2BBD4B9F5E9FEDE63EAA1EAA2EAA3B7F8BCADDE64CAE4E0CED4AFCFBDD5B7EAA4D5DEEAA5D0C1B9BCDE65B4C7B1D9DE66DE67DE68C0B1DE69DE6ADE6BDE6CB1E6B1E7DE6DB1E8DE6EDE6FDE70DE71B3BDC8E8DE72DE73DE74DE75E5C1DE76DE77B1DFDE78DE79DE7AC1C9B4EFDE7BDE7CC7A8D3D8DE7DC6F9D1B8DE7EB9FDC2F5DE80DE81DE82DE83DE84D3ADDE85D4CBBDFCDE86E5C2B7B5E5C3DE87DE88BBB9D5E2DE89BDF8D4B6CEA5C1ACB3D9DE8ADE8BCCF6DE8CE5C6E5C4E5C8DE8DE5CAE5C7B5CFC6C8DE8EB5FCE5C5DE8FCAF6DE90DE91E5C9DE92DE93DE94C3D4B1C5BCA3DE95DE96DE97D7B7DE98DE99CDCBCBCDCACACCD3E5CCE5CBC4E6DE9ADE9BD1A1D1B7E5CDDE9CE5D0DE9DCDB8D6F0E5CFB5DDDE9ECDBEDE9FE5D1B6BADEA0DF40CDA8B9E4DF41CAC5B3D1CBD9D4ECE5D2B7EADF42DF43DF44E5CEDF45DF46DF47DF48DF49DF4AE5D5B4FEE5D6DF4BDF4CDF4DDF4EDF4FE5D3E5D4DF50D2DDDF51DF52C2DFB1C6DF53D3E2DF54DF55B6DDCBECDF56E5D7DF57DF58D3F6DF59DF5ADF5BDF5CDF5DB1E9DF5EB6F4E5DAE5D8E5D9B5C0DF5FDF60DF61D2C5E5DCDF62DF63E5DEDF64DF65DF66DF67DF68DF69E5DDC7B2DF6AD2A3DF6BDF6CE5DBDF6DDF6EDF6FDF70D4E2D5DADF71DF72DF73DF74DF75E5E0D7F1DF76DF77DF78DF79DF7ADF7BDF7CE5E1DF7DB1DCD1FBDF7EE5E2E5E4DF80DF81DF82DF83E5E3DF84DF85E5E5DF86DF87DF88DF89DF8AD2D8DF8BB5CBDF8CE7DFDF8DDAF5DF8EDAF8DF8FDAF6DF90DAF7DF91DF92DF93DAFAD0CFC4C7DF94DF95B0EEDF96DF97DF98D0B0DF99DAF9DF9AD3CABAAADBA2C7F1DF9BDAFCDAFBC9DBDAFDDF9CDBA1D7DEDAFEC1DADF9DDF9EDBA5DF9FDFA0D3F4E040E041DBA7DBA4E042DBA8E043E044BDBCE045E046E047C0C9DBA3DBA6D6A3E048DBA9E049E04AE04BDBADE04CE04DE04EDBAEDBACBAC2E04FE050E051BFA4DBABE052E053E054DBAAD4C7B2BFE055E056DBAFE057B9F9E058DBB0E059E05AE05BE05CB3BBE05DE05EE05FB5A6E060E061E062E063B6BCDBB1E064E065E066B6F5E067DBB2E068E069E06AE06BE06CE06DE06EE06FE070E071E072E073E074E075E076E077E078E079E07AE07BB1C9E07CE07DE07EE080DBB4E081E082E083DBB3DBB5E084E085E086E087E088E089E08AE08BE08CE08DE08EDBB7E08FDBB6E090E091E092E093E094E095E096DBB8E097E098E099E09AE09BE09CE09DE09EE09FDBB9E0A0E140DBBAE141E142D3CFF4FAC7F5D7C3C5E4F4FCF4FDF4FBE143BEC6E144E145E146E147D0EFE148E149B7D3E14AE14BD4CDCCAAE14CE14DF5A2F5A1BAA8F4FECBD6E14EE14FE150F5A4C0D2E151B3EAE152CDAAF5A5F5A3BDB4F5A8E153F5A9BDCDC3B8BFE1CBE1F5AAE154E155E156F5A6F5A7C4F0E157E158E159E15AE15BF5ACE15CB4BCE15DD7EDE15EB4D7F5ABF5AEE15FE160F5ADF5AFD0D1E161E162E163E164E165E166E167C3D1C8A9E168E169E16AE16BE16CE16DF5B0F5B1E16EE16FE170E171E172E173F5B2E174E175F5B3F5B4F5B5E176E177E178E179F5B7F5B6E17AE17BE17CE17DF5B8E17EE180E181E182E183E184E185E186E187E188E189E18AB2C9E18BD3D4CACDE18CC0EFD6D8D2B0C1BFE18DBDF0E18EE18FE190E191E192E193E194E195E196E197B8AAE198E199E19AE19BE19CE19DE19EE19FE1A0E240E241E242E243E244E245E246E247E248E249E24AE24BE24CE24DE24EE24FE250E251E252E253E254E255E256E257E258E259E25AE25BE25CE25DE25EE25FE260E261E262E263E264E265E266E267E268E269E26AE26BE26CE26DE26EE26FE270E271E272E273E274E275E276E277E278E279E27AE27BE27CE27DE27EE280E281E282E283E284E285E286E287E288E289E28AE28BE28CE28DE28EE28FE290E291E292E293E294E295E296E297E298E299E29AE29BE29CE29DE29EE29FE2A0E340E341E342E343E344E345E346E347E348E349E34AE34BE34CE34DE34EE34FE350E351E352E353E354E355E356E357E358E359E35AE35BE35CE35DE35EE35FE360E361E362E363E364E365E366E367E368E369E36AE36BE36CE36DBCF8E36EE36FE370E371E372E373E374E375E376E377E378E379E37AE37BE37CE37DE37EE380E381E382E383E384E385E386E387F6C6E388E389E38AE38BE38CE38DE38EE38FE390E391E392E393E394E395E396E397E398E399E39AE39BE39CE39DE39EE39FE3A0E440E441E442E443E444E445F6C7E446E447E448E449E44AE44BE44CE44DE44EE44FE450E451E452E453E454E455E456E457E458E459E45AE45BE45CE45DE45EF6C8E45FE460E461E462E463E464E465E466E467E468E469E46AE46BE46CE46DE46EE46FE470E471E472E473E474E475E476E477E478E479E47AE47BE47CE47DE47EE480E481E482E483E484E485E486E487E488E489E48AE48BE48CE48DE48EE48FE490E491E492E493E494E495E496E497E498E499E49AE49BE49CE49DE49EE49FE4A0E540E541E542E543E544E545E546E547E548E549E54AE54BE54CE54DE54EE54FE550E551E552E553E554E555E556E557E558E559E55AE55BE55CE55DE55EE55FE560E561E562E563E564E565E566E567E568E569E56AE56BE56CE56DE56EE56FE570E571E572E573F6C9E574E575E576E577E578E579E57AE57BE57CE57DE57EE580E581E582E583E584E585E586E587E588E589E58AE58BE58CE58DE58EE58FE590E591E592E593E594E595E596E597E598E599E59AE59BE59CE59DE59EE59FF6CAE5A0E640E641E642E643E644E645E646E647E648E649E64AE64BE64CE64DE64EE64FE650E651E652E653E654E655E656E657E658E659E65AE65BE65CE65DE65EE65FE660E661E662F6CCE663E664E665E666E667E668E669E66AE66BE66CE66DE66EE66FE670E671E672E673E674E675E676E677E678E679E67AE67BE67CE67DE67EE680E681E682E683E684E685E686E687E688E689E68AE68BE68CE68DE68EE68FE690E691E692E693E694E695E696E697E698E699E69AE69BE69CE69DF6CBE69EE69FE6A0E740E741E742E743E744E745E746E747F7E9E748E749E74AE74BE74CE74DE74EE74FE750E751E752E753E754E755E756E757E758E759E75AE75BE75CE75DE75EE75FE760E761E762E763E764E765E766E767E768E769E76AE76BE76CE76DE76EE76FE770E771E772E773E774E775E776E777E778E779E77AE77BE77CE77DE77EE780E781E782E783E784E785E786E787E788E789E78AE78BE78CE78DE78EE78FE790E791E792E793E794E795E796E797E798E799E79AE79BE79CE79DE79EE79FE7A0E840E841E842E843E844E845E846E847E848E849E84AE84BE84CE84DE84EF6CDE84FE850E851E852E853E854E855E856E857E858E859E85AE85BE85CE85DE85EE85FE860E861E862E863E864E865E866E867E868E869E86AE86BE86CE86DE86EE86FE870E871E872E873E874E875E876E877E878E879E87AF6CEE87BE87CE87DE87EE880E881E882E883E884E885E886E887E888E889E88AE88BE88CE88DE88EE88FE890E891E892E893E894EEC4EEC5EEC6D5EBB6A4EEC8EEC7EEC9EECAC7A5EECBEECCE895B7B0B5F6EECDEECFE896EECEE897B8C6EED0EED1EED2B6DBB3AED6D3C4C6B1B5B8D6EED3EED4D4BFC7D5BEFBCED9B9B3EED6EED5EED8EED7C5A5EED9EEDAC7AEEEDBC7AFEEDCB2A7EEDDEEDEEEDFEEE0EEE1D7EAEEE2EEE3BCD8EEE4D3CBCCFAB2ACC1E5EEE5C7A6C3ADE898EEE6EEE7EEE8EEE9EEEAEEEBEEECE899EEEDEEEEEEEFE89AE89BEEF0EEF1EEF2EEF4EEF3E89CEEF5CDADC2C1EEF6EEF7EEF8D5A1EEF9CFB3EEFAEEFBE89DEEFCEEFDEFA1EEFEEFA2B8F5C3FAEFA3EFA4BDC2D2BFB2F9EFA5EFA6EFA7D2F8EFA8D6FDEFA9C6CCE89EEFAAEFABC1B4EFACCFFACBF8EFAEEFADB3FAB9F8EFAFEFB0D0E2EFB1EFB2B7E6D0BFEFB3EFB4EFB5C8F1CCE0EFB6EFB7EFB8EFB9EFBAD5E0EFBBB4EDC3AAEFBCE89FEFBDEFBEEFBFE8A0CEFDEFC0C2E0B4B8D7B6BDF5E940CFC7EFC3EFC1EFC2EFC4B6A7BCFCBEE2C3CCEFC5EFC6E941EFC7EFCFEFC8EFC9EFCAC7C2EFF1B6CDEFCBE942EFCCEFCDB6C6C3BEEFCEE943EFD0EFD1EFD2D5F2E944EFD3C4F7E945EFD4C4F8EFD5EFD6B8E4B0F7EFD7EFD8EFD9E946EFDAEFDBEFDCEFDDE947EFDEBEB5EFE1EFDFEFE0E948EFE2EFE3C1CDEFE4EFE5EFE6EFE7EFE8EFE9EFEAEFEBEFECC0D8E949EFEDC1ADEFEEEFEFEFF0E94AE94BCFE2E94CE94DE94EE94FE950E951E952E953B3A4E954E955E956E957E958E959E95AE95BE95CE95DE95EE95FE960E961E962E963E964E965E966E967E968E969E96AE96BE96CE96DE96EE96FE970E971E972E973E974E975E976E977E978E979E97AE97BE97CE97DE97EE980E981E982E983E984E985E986E987E988E989E98AE98BE98CE98DE98EE98FE990E991E992E993E994E995E996E997E998E999E99AE99BE99CE99DE99EE99FE9A0EA40EA41EA42EA43EA44EA45EA46EA47EA48EA49EA4AEA4BEA4CEA4DEA4EEA4FEA50EA51EA52EA53EA54EA55EA56EA57EA58EA59EA5AEA5BC3C5E3C5C9C1E3C6EA5CB1D5CECAB4B3C8F2E3C7CFD0E3C8BCE4E3C9E3CAC3C6D5A2C4D6B9EBCEC5E3CBC3F6E3CCEA5DB7A7B8F3BAD2E3CDE3CED4C4E3CFEA5EE3D0D1CBE3D1E3D2E3D3E3D4D1D6E3D5B2FBC0BBE3D6EA5FC0ABE3D7E3D8E3D9EA60E3DAE3DBEA61B8B7DAE2EA62B6D3EA63DAE4DAE3EA64EA65EA66EA67EA68EA69EA6ADAE6EA6BEA6CEA6DC8EEEA6EEA6FDAE5B7C0D1F4D2F5D5F3BDD7EA70EA71EA72EA73D7E8DAE8DAE7EA74B0A2CDD3EA75DAE9EA76B8BDBCCAC2BDC2A4B3C2DAEAEA77C2AAC4B0BDB5EA78EA79CFDEEA7AEA7BEA7CDAEBC9C2EA7DEA7EEA80EA81EA82B1DDEA83EA84EA85DAECEA86B6B8D4BAEA87B3FDEA88EA89DAEDD4C9CFD5C5E3EA8ADAEEEA8BEA8CEA8DEA8EEA8FDAEFEA90DAF0C1EACCD5CFDDEA91EA92EA93EA94EA95EA96EA97EA98EA99EA9AEA9BEA9CEA9DD3E7C2A1EA9EDAF1EA9FEAA0CBE5EB40DAF2EB41CBE6D2FEEB42EB43EB44B8F4EB45EB46DAF3B0AFCFB6EB47EB48D5CFEB49EB4AEB4BEB4CEB4DEB4EEB4FEB50EB51EB52CBEDEB53EB54EB55EB56EB57EB58EB59EB5ADAF4EB5BEB5CE3C4EB5DEB5EC1A5EB5FEB60F6BFEB61EB62F6C0F6C1C4D1EB63C8B8D1E3EB64EB65D0DBD1C5BCAFB9CDEB66EFF4EB67EB68B4C6D3BAF6C2B3FBEB69EB6AF6C3EB6BEB6CB5F1EB6DEB6EEB6FEB70EB71EB72EB73EB74EB75EB76F6C5EB77EB78EB79EB7AEB7BEB7CEB7DD3EAF6A7D1A9EB7EEB80EB81EB82F6A9EB83EB84EB85F6A8EB86EB87C1E3C0D7EB88B1A2EB89EB8AEB8BEB8CCEEDEB8DD0E8F6ABEB8EEB8FCFF6EB90F6AAD5F0F6ACC3B9EB91EB92EB93BBF4F6AEF6ADEB94EB95EB96C4DEEB97EB98C1D8EB99EB9AEB9BEB9CEB9DCBAAEB9ECFBCEB9FEBA0EC40EC41EC42EC43EC44EC45EC46EC47EC48F6AFEC49EC4AF6B0EC4BEC4CF6B1EC4DC2B6EC4EEC4FEC50EC51EC52B0D4C5F9EC53EC54EC55EC56F6B2EC57EC58EC59EC5AEC5BEC5CEC5DEC5EEC5FEC60EC61EC62EC63EC64EC65EC66EC67EC68EC69C7E0F6A6EC6AEC6BBEB8EC6CEC6DBEB2EC6EB5E5EC6FEC70B7C7EC71BFBFC3D2C3E6EC72EC73D8CCEC74EC75EC76B8EFEC77EC78EC79EC7AEC7BEC7CEC7DEC7EEC80BDF9D1A5EC81B0D0EC82EC83EC84EC85EC86F7B0EC87EC88EC89EC8AEC8BEC8CEC8DEC8EF7B1EC8FEC90EC91EC92EC93D0ACEC94B0B0EC95EC96EC97F7B2F7B3EC98F7B4EC99EC9AEC9BC7CAEC9CEC9DEC9EEC9FECA0ED40ED41BECFED42ED43F7B7ED44ED45ED46ED47ED48ED49ED4AF7B6ED4BB1DEED4CF7B5ED4DED4EF7B8ED4FF7B9ED50ED51ED52ED53ED54ED55ED56ED57ED58ED59ED5AED5BED5CED5DED5EED5FED60ED61ED62ED63ED64ED65ED66ED67ED68ED69ED6AED6BED6CED6DED6EED6FED70ED71ED72ED73ED74ED75ED76ED77ED78ED79ED7AED7BED7CED7DED7EED80ED81CEA4C8CDED82BAABE8B8E8B9E8BABEC2ED83ED84ED85ED86ED87D2F4ED88D4CFC9D8ED89ED8AED8BED8CED8DED8EED8FED90ED91ED92ED93ED94ED95ED96ED97ED98ED99ED9AED9BED9CED9DED9EED9FEDA0EE40EE41EE42EE43EE44EE45EE46EE47EE48EE49EE4AEE4BEE4CEE4DEE4EEE4FEE50EE51EE52EE53EE54EE55EE56EE57EE58EE59EE5AEE5BEE5CEE5DEE5EEE5FEE60EE61EE62EE63EE64EE65EE66EE67EE68EE69EE6AEE6BEE6CEE6DEE6EEE6FEE70EE71EE72EE73EE74EE75EE76EE77EE78EE79EE7AEE7BEE7CEE7DEE7EEE80EE81EE82EE83EE84EE85EE86EE87EE88EE89EE8AEE8BEE8CEE8DEE8EEE8FEE90EE91EE92EE93EE94EE95EE96EE97EE98EE99EE9AEE9BEE9CEE9DEE9EEE9FEEA0EF40EF41EF42EF43EF44EF45D2B3B6A5C7EAF1FCCFEECBB3D0EBE7EFCDE7B9CBB6D9F1FDB0E4CBCCF1FED4A4C2ADC1ECC6C4BEB1F2A1BCD5EF46F2A2F2A3EF47F2A4D2C3C6B5EF48CDC7F2A5EF49D3B1BFC5CCE2EF4AF2A6F2A7D1D5B6EEF2A8F2A9B5DFF2AAF2ABEF4BB2FCF2ACF2ADC8A7EF4CEF4DEF4EEF4FEF50EF51EF52EF53EF54EF55EF56EF57EF58EF59EF5AEF5BEF5CEF5DEF5EEF5FEF60EF61EF62EF63EF64EF65EF66EF67EF68EF69EF6AEF6BEF6CEF6DEF6EEF6FEF70EF71B7E7EF72EF73ECA9ECAAECABEF74ECACEF75EF76C6AEECADECAEEF77EF78EF79B7C9CAB3EF7AEF7BEF7CEF7DEF7EEF80EF81E2B8F7CFEF82EF83EF84EF85EF86EF87EF88EF89EF8AEF8BEF8CEF8DEF8EEF8FEF90EF91EF92EF93EF94EF95EF96EF97EF98EF99EF9AEF9BEF9CEF9DEF9EEF9FEFA0F040F041F042F043F044F7D0F045F046B2CDF047F048F049F04AF04BF04CF04DF04EF04FF050F051F052F053F054F055F056F057F058F059F05AF05BF05CF05DF05EF05FF060F061F062F063F7D1F064F065F066F067F068F069F06AF06BF06CF06DF06EF06FF070F071F072F073F074F075F076F077F078F079F07AF07BF07CF07DF07EF080F081F082F083F084F085F086F087F088F089F7D3F7D2F08AF08BF08CF08DF08EF08FF090F091F092F093F094F095F096E2BBF097BCA2F098E2BCE2BDE2BEE2BFE2C0E2C1B7B9D2FBBDA4CACEB1A5CBC7F099E2C2B6FCC8C4E2C3F09AF09BBDC8F09CB1FDE2C4F09DB6F6E2C5C4D9F09EF09FE2C6CFDAB9DDE2C7C0A1F0A0E2C8B2F6F140E2C9F141C1F3E2CAE2CBC2F8E2CCE2CDE2CECAD7D8B8D9E5CFE3F142F143F144F145F146F147F148F149F14AF14BF14CF0A5F14DF14EDCB0F14FF150F151F152F153F154F155F156F157F158F159F15AF15BF15CF15DF15EF15FF160F161F162F163F164F165F166F167F168F169F16AF16BF16CF16DF16EF16FF170F171F172F173F174F175F176F177F178F179F17AF17BF17CF17DF17EF180F181F182F183F184F185F186F187F188F189F18AF18BF18CF18DF18EF18FF190F191F192F193F194F195F196F197F198F199F19AF19BF19CF19DF19EF19FF1A0F240F241F242F243F244F245F246F247F248F249F24AF24BF24CF24DF24EF24FF250F251F252F253F254F255F256F257F258F259F25AF25BF25CF25DF25EF25FF260F261F262F263F264F265F266F267F268F269F26AF26BF26CF26DF26EF26FF270F271F272F273F274F275F276F277F278F279F27AF27BF27CF27DF27EF280F281F282F283F284F285F286F287F288F289F28AF28BF28CF28DF28EF28FF290F291F292F293F294F295F296F297F298F299F29AF29BF29CF29DF29EF29FF2A0F340F341F342F343F344F345F346F347F348F349F34AF34BF34CF34DF34EF34FF350F351C2EDD4A6CDD4D1B1B3DBC7FDF352B2B5C2BFE6E0CABBE6E1E6E2BED4E6E3D7A4CDD5E6E5BCDDE6E4E6E6E6E7C2EEF353BDBEE6E8C2E6BAA7E6E9F354E6EAB3D2D1E9F355F356BFA5E6EBC6EFE6ECE6EDF357F358E6EEC6ADE6EFF359C9A7E6F0E6F1E6F2E5B9E6F3E6F4C2E2E6F5E6F6D6E8E6F7F35AE6F8B9C7F35BF35CF35DF35EF35FF360F361F7BBF7BAF362F363F364F365F7BEF7BCBAA1F366F7BFF367F7C0F368F369F36AF7C2F7C1F7C4F36BF36CF7C3F36DF36EF36FF370F371F7C5F7C6F372F373F374F375F7C7F376CBE8F377F378F379F37AB8DFF37BF37CF37DF37EF380F381F7D4F382F7D5F383F384F385F386F7D6F387F388F389F38AF7D8F38BF7DAF38CF7D7F38DF38EF38FF390F391F392F393F394F395F7DBF396F7D9F397F398F399F39AF39BF39CF39DD7D7F39EF39FF3A0F440F7DCF441F442F443F444F445F446F7DDF447F448F449F7DEF44AF44BF44CF44DF44EF44FF450F451F452F453F454F7DFF455F456F457F7E0F458F459F45AF45BF45CF45DF45EF45FF460F461F462DBCBF463F464D8AAF465F466F467F468F469F46AF46BF46CE5F7B9EDF46DF46EF46FF470BFFDBBEAF7C9C6C7F7C8F471F7CAF7CCF7CBF472F473F474F7CDF475CEBAF476F7CEF477F478C4A7F479F47AF47BF47CF47DF47EF480F481F482F483F484F485F486F487F488F489F48AF48BF48CF48DF48EF48FF490F491F492F493F494F495F496F497F498F499F49AF49BF49CF49DF49EF49FF4A0F540F541F542F543F544F545F546F547F548F549F54AF54BF54CF54DF54EF54FF550F551F552F553F554F555F556F557F558F559F55AF55BF55CF55DF55EF55FF560F561F562F563F564F565F566F567F568F569F56AF56BF56CF56DF56EF56FF570F571F572F573F574F575F576F577F578F579F57AF57BF57CF57DF57EF580F581F582F583F584F585F586F587F588F589F58AF58BF58CF58DF58EF58FF590F591F592F593F594F595F596F597F598F599F59AF59BF59CF59DF59EF59FF5A0F640F641F642F643F644F645F646F647F648F649F64AF64BF64CF64DF64EF64FF650F651F652F653F654F655F656F657F658F659F65AF65BF65CF65DF65EF65FF660F661F662F663F664F665F666F667F668F669F66AF66BF66CF66DF66EF66FF670F671F672F673F674F675F676F677F678F679F67AF67BF67CF67DF67EF680F681F682F683F684F685F686F687F688F689F68AF68BF68CF68DF68EF68FF690F691F692F693F694F695F696F697F698F699F69AF69BF69CF69DF69EF69FF6A0F740F741F742F743F744F745F746F747F748F749F74AF74BF74CF74DF74EF74FF750F751F752F753F754F755F756F757F758F759F75AF75BF75CF75DF75EF75FF760F761F762F763F764F765F766F767F768F769F76AF76BF76CF76DF76EF76FF770F771F772F773F774F775F776F777F778F779F77AF77BF77CF77DF77EF780D3E3F781F782F6CFF783C2B3F6D0F784F785F6D1F6D2F6D3F6D4F786F787F6D6F788B1ABF6D7F789F6D8F6D9F6DAF78AF6DBF6DCF78BF78CF78DF78EF6DDF6DECFCAF78FF6DFF6E0F6E1F6E2F6E3F6E4C0F0F6E5F6E6F6E7F6E8F6E9F790F6EAF791F6EBF6ECF792F6EDF6EEF6EFF6F0F6F1F6F2F6F3F6F4BEA8F793F6F5F6F6F6F7F6F8F794F795F796F797F798C8FAF6F9F6FAF6FBF6FCF799F79AF6FDF6FEF7A1F7A2F7A3F7A4F7A5F79BF79CF7A6F7A7F7A8B1EEF7A9F7AAF7ABF79DF79EF7ACF7ADC1DBF7AEF79FF7A0F7AFF840F841F842F843F844F845F846F847F848F849F84AF84BF84CF84DF84EF84FF850F851F852F853F854F855F856F857F858F859F85AF85BF85CF85DF85EF85FF860F861F862F863F864F865F866F867F868F869F86AF86BF86CF86DF86EF86FF870F871F872F873F874F875F876F877F878F879F87AF87BF87CF87DF87EF880F881F882F883F884F885F886F887F888F889F88AF88BF88CF88DF88EF88FF890F891F892F893F894F895F896F897F898F899F89AF89BF89CF89DF89EF89FF8A0F940F941F942F943F944F945F946F947F948F949F94AF94BF94CF94DF94EF94FF950F951F952F953F954F955F956F957F958F959F95AF95BF95CF95DF95EF95FF960F961F962F963F964F965F966F967F968F969F96AF96BF96CF96DF96EF96FF970F971F972F973F974F975F976F977F978F979F97AF97BF97CF97DF97EF980F981F982F983F984F985F986F987F988F989F98AF98BF98CF98DF98EF98FF990F991F992F993F994F995F996F997F998F999F99AF99BF99CF99DF99EF99FF9A0FA40FA41FA42FA43FA44FA45FA46FA47FA48FA49FA4AFA4BFA4CFA4DFA4EFA4FFA50FA51FA52FA53FA54FA55FA56FA57FA58FA59FA5AFA5BFA5CFA5DFA5EFA5FFA60FA61FA62FA63FA64FA65FA66FA67FA68FA69FA6AFA6BFA6CFA6DFA6EFA6FFA70FA71FA72FA73FA74FA75FA76FA77FA78FA79FA7AFA7BFA7CFA7DFA7EFA80FA81FA82FA83FA84FA85FA86FA87FA88FA89FA8AFA8BFA8CFA8DFA8EFA8FFA90FA91FA92FA93FA94FA95FA96FA97FA98FA99FA9AFA9BFA9CFA9DFA9EFA9FFAA0FB40FB41FB42FB43FB44FB45FB46FB47FB48FB49FB4AFB4BFB4CFB4DFB4EFB4FFB50FB51FB52FB53FB54FB55FB56FB57FB58FB59FB5AFB5BC4F1F0AFBCA6F0B0C3F9FB5CC5B8D1BBFB5DF0B1F0B2F0B3F0B4F0B5D1BCFB5ED1ECFB5FF0B7F0B6D4A7FB60CDD2F0B8F0BAF0B9F0BBF0BCFB61FB62B8EBF0BDBAE8FB63F0BEF0BFBEE9F0C0B6ECF0C1F0C2F0C3F0C4C8B5F0C5F0C6FB64F0C7C5F4FB65F0C8FB66FB67FB68F0C9FB69F0CAF7BDFB6AF0CBF0CCF0CDFB6BF0CEFB6CFB6DFB6EFB6FF0CFBAD7FB70F0D0F0D1F0D2F0D3F0D4F0D5F0D6F0D8FB71FB72D3A5F0D7FB73F0D9FB74FB75FB76FB77FB78FB79FB7AFB7BFB7CFB7DF5BAC2B9FB7EFB80F7E4FB81FB82FB83FB84F7E5F7E6FB85FB86F7E7FB87FB88FB89FB8AFB8BFB8CF7E8C2B4FB8DFB8EFB8FFB90FB91FB92FB93FB94FB95F7EAFB96F7EBFB97FB98FB99FB9AFB9BFB9CC2F3FB9DFB9EFB9FFBA0FC40FC41FC42FC43FC44FC45FC46FC47FC48F4F0FC49FC4AFC4BF4EFFC4CFC4DC2E9FC4EF7E1F7E2FC4FFC50FC51FC52FC53BBC6FC54FC55FC56FC57D9E4FC58FC59FC5ACAF2C0E8F0A4FC5BBADAFC5CFC5DC7ADFC5EFC5FFC60C4ACFC61FC62F7ECF7EDF7EEFC63F7F0F7EFFC64F7F1FC65FC66F7F4FC67F7F3FC68F7F2F7F5FC69FC6AFC6BFC6CF7F6FC6DFC6EFC6FFC70FC71FC72FC73FC74FC75EDE9FC76EDEAEDEBFC77F6BCFC78FC79FC7AFC7BFC7CFC7DFC7EFC80FC81FC82FC83FC84F6BDFC85F6BEB6A6FC86D8BEFC87FC88B9C4FC89FC8AFC8BD8BBFC8CDCB1FC8DFC8EFC8FFC90FC91FC92CAF3FC93F7F7FC94FC95FC96FC97FC98FC99FC9AFC9BFC9CF7F8FC9DFC9EF7F9FC9FFCA0FD40FD41FD42FD43FD44F7FBFD45F7FAFD46B1C7FD47F7FCF7FDFD48FD49FD4AFD4BFD4CF7FEFD4DFD4EFD4FFD50FD51FD52FD53FD54FD55FD56FD57C6EBECB4FD58FD59FD5AFD5BFD5CFD5DFD5EFD5FFD60FD61FD62FD63FD64FD65FD66FD67FD68FD69FD6AFD6BFD6CFD6DFD6EFD6FFD70FD71FD72FD73FD74FD75FD76FD77FD78FD79FD7AFD7BFD7CFD7DFD7EFD80FD81FD82FD83FD84FD85B3DDF6B3FD86FD87F6B4C1E4F6B5F6B6F6B7F6B8F6B9F6BAC8A3F6BBFD88FD89FD8AFD8BFD8CFD8DFD8EFD8FFD90FD91FD92FD93C1FAB9A8EDE8FD94FD95FD96B9EAD9DFFD97FD98FD99FD9AFD9";
61
222
  encodeToGb2312(D) {
62
- for (var C = "", E = 0; E < D.length; E++) {
63
- var F = D.charAt(E), A = D.charCodeAt(E);
223
+ for (var C = "", B = 0; B < D.length; B++) {
224
+ var F = D.charAt(B), A = D.charCodeAt(B);
64
225
  if (F == " ")
65
226
  C += "+";
66
227
  else if (A >= 19968 && A <= 40869) {
67
- let e = A - 19968;
68
- C += "%" + this.z.substr(e * 4, 2) + "%" + this.z.substr(e * 4 + 2, 2);
228
+ let t = A - 19968;
229
+ C += "%" + this.z.substr(t * 4, 2) + "%" + this.z.substr(t * 4 + 2, 2);
69
230
  } else
70
- C += "%" + D.charCodeAt(E).toString(16);
231
+ C += "%" + D.charCodeAt(B).toString(16);
71
232
  }
72
233
  return C;
73
234
  }
74
235
  decodeFromGb2312(D) {
75
- for (var C = "", E = 0; E < D.length; E++) {
76
- var F = D.charAt(E);
236
+ for (var C = "", B = 0; B < D.length; B++) {
237
+ var F = D.charAt(B);
77
238
  if (F == "+")
78
239
  C += " ";
79
240
  else if (F != "%")
80
241
  C += F;
81
242
  else {
82
- E++;
83
- var A = D.charAt(E);
243
+ B++;
244
+ var A = D.charAt(B);
84
245
  if (isNaN(parseInt(A)))
85
246
  try {
86
- var e = D.substr(E, 2) + D.substr(E + 3, 2);
87
- E = E + 4;
88
- for (var t = -1; (t = this.z.indexOf(e, t + 1)) != -1; )
89
- if (t % 4 == 0) {
90
- C += String.fromCharCode(t / 4 + 19968);
247
+ var t = D.substr(B, 2) + D.substr(B + 3, 2);
248
+ B = B + 4;
249
+ for (var e = -1; (e = this.z.indexOf(t, e + 1)) != -1; )
250
+ if (e % 4 == 0) {
251
+ C += String.fromCharCode(e / 4 + 19968);
91
252
  break;
92
253
  }
93
254
  } catch {
94
255
  }
95
256
  else {
96
- E++;
257
+ B++;
97
258
  try {
98
- C += decodeURIComponent(F + A + D.charAt(E));
259
+ C += decodeURIComponent(F + A + D.charAt(B));
99
260
  } catch {
100
- console.log("decodeURIComponent error"), console.log(F + A + D.charAt(E));
261
+ console.log("decodeURIComponent error"), console.log(F + A + D.charAt(B));
101
262
  }
102
263
  }
103
264
  }
@@ -105,14 +266,14 @@ class qD {
105
266
  return C;
106
267
  }
107
268
  }
108
- let w = new qD();
109
- const $D = new FinalizationRegistry((B) => {
110
- s.App.DestroyObject(B);
111
- }), XD = {};
112
- class R {
269
+ let y = new CC();
270
+ const BC = new FinalizationRegistry((E) => {
271
+ i.App.DestroyObject(E);
272
+ }), EC = {};
273
+ class v {
113
274
  imp = 0;
114
275
  constructor(D) {
115
- this.imp = D, this.imp && $D.register(this, D, XD);
276
+ this.imp = D, this.imp && BC.register(this, D, EC);
116
277
  }
117
278
  getImp() {
118
279
  return this.imp;
@@ -128,15 +289,15 @@ class R {
128
289
  }
129
290
  getJson() {
130
291
  let D = this.imp.getJson();
131
- return w.decodeFromGb2312(D);
292
+ return y.decodeFromGb2312(D);
132
293
  }
133
294
  setJson(D) {
134
- let C = w.encodeToGb2312(D);
295
+ let C = y.encodeToGb2312(D);
135
296
  return this.imp.setJson(C);
136
297
  }
137
298
  }
138
- var y = /* @__PURE__ */ ((B) => (B[B.kMxCAD = 0] = "kMxCAD", B[B.kMxDraw = 1] = "kMxDraw", B[B.kInvalid = 2] = "kInvalid", B))(y || {});
139
- class x {
299
+ var x = /* @__PURE__ */ ((E) => (E[E.kMxCAD = 0] = "kMxCAD", E[E.kMxDraw = 1] = "kMxDraw", E[E.kInvalid = 2] = "kInvalid", E))(x || {});
300
+ class f {
140
301
  id;
141
302
  type;
142
303
  constructor(D, C) {
@@ -146,26 +307,26 @@ class x {
146
307
  return this.type != 2 && this.id != 0;
147
308
  }
148
309
  erase() {
149
- this.type == 1 ? m.getCurrentDraw().eraseMxEntity(this.id) : this.type == 0 && BD.eraseEntity(this.id);
310
+ this.type == 1 ? d.getCurrentDraw().eraseMxEntity(this.id) : this.type == 0 && eD.eraseEntity(this.id);
150
311
  }
151
312
  getMcDbObject() {
152
- return this.type == 0 ? s.App.ObjectIdToObject(this.id) : null;
313
+ return this.type == 0 ? i.App.ObjectIdToObject(this.id) : null;
153
314
  }
154
315
  getObjectName() {
155
316
  if (this.type == 0)
156
- return s.App.getImp().ObjectIdToObjectName(this.id);
317
+ return i.App.getImp().ObjectIdToObjectName(this.id);
157
318
  if (this.type == 1) {
158
- let D = m.getCurrentDraw().getMxEntity(this.id);
319
+ let D = d.getCurrentDraw().getMxEntity(this.id);
159
320
  if (D)
160
321
  return D.getTypeName();
161
322
  }
162
323
  return "";
163
324
  }
164
325
  getMxDbEntity() {
165
- return this.type == 1 ? m.getCurrentDraw().getMxEntity(this.id) : null;
326
+ return this.type == 1 ? d.getCurrentDraw().getMxEntity(this.id) : null;
166
327
  }
167
328
  }
168
- class v extends R {
329
+ class S extends v {
169
330
  constructor(D) {
170
331
  super(D);
171
332
  }
@@ -177,31 +338,299 @@ class v extends R {
177
338
  }
178
339
  Clone() {
179
340
  let D = this.imp.Clone();
180
- return s.App.CreateCloneObject(D);
341
+ return i.App.CreateCloneObject(D);
181
342
  }
182
343
  GetHandle() {
183
344
  return this.imp.GetHandle();
184
345
  }
185
346
  GetDatabase() {
186
- return new FD(this.imp.GetDatabase());
347
+ return new ED(this.imp.GetDatabase());
187
348
  }
188
349
  GetOwnerID() {
189
350
  return this.imp.GetOwnerID();
190
351
  }
191
352
  }
192
- class I extends v {
353
+ var BD;
354
+ ((E) => {
355
+ ((D) => {
356
+ D[D.kTextLeft = 0] = "kTextLeft", D[D.kTextCenter = 1] = "kTextCenter", D[D.kTextRight = 2] = "kTextRight", D[D.kTextAlign = 3] = "kTextAlign", D[D.kTextMid = 4] = "kTextMid", D[D.kTextFit = 5] = "kTextFit";
357
+ })(E.TextHorzMode || (E.TextHorzMode = {})), ((D) => {
358
+ D[D.kTextBase = 0] = "kTextBase", D[D.kTextBottom = 1] = "kTextBottom", D[D.kTextVertMid = 2] = "kTextVertMid", D[D.kTextTop = 3] = "kTextTop";
359
+ })(E.TextVertMode || (E.TextVertMode = {})), ((D) => {
360
+ D[D.kTopLeft = 1] = "kTopLeft", D[D.kTopCenter = 2] = "kTopCenter", D[D.kTopRight = 3] = "kTopRight", D[D.kMiddleLeft = 4] = "kMiddleLeft", D[D.kMiddleCenter = 5] = "kMiddleCenter", D[D.kMiddleRight = 6] = "kMiddleRight", D[D.kBottomLeft = 7] = "kBottomLeft", D[D.kBottomCenter = 8] = "kBottomCenter", D[D.kBottomRight = 9] = "kBottomRight", D[D.kBaseLeft = 10] = "kBaseLeft", D[D.kBaseCenter = 11] = "kBaseCenter", D[D.kBaseRight = 12] = "kBaseRight", D[D.kBaseAlign = 13] = "kBaseAlign", D[D.kBottomAlign = 14] = "kBottomAlign", D[D.kMiddleAlign = 15] = "kMiddleAlign", D[D.kTopAlign = 16] = "kTopAlign", D[D.kBaseFit = 17] = "kBaseFit", D[D.kBottomFit = 18] = "kBottomFit", D[D.kMiddleFit = 19] = "kMiddleFit", D[D.kTopFit = 20] = "kTopFit", D[D.kBaseMid = 21] = "kBaseMid", D[D.kBottomMid = 22] = "kBottomMid", D[D.kMiddleMid = 23] = "kMiddleMid", D[D.kTopMid = 24] = "kTopMid";
361
+ })(E.AttachmentPoint || (E.AttachmentPoint = {})), ((D) => {
362
+ D[D.kLnWt000 = 0] = "kLnWt000", D[D.kLnWt005 = 5] = "kLnWt005", D[D.kLnWt009 = 9] = "kLnWt009", D[D.kLnWt013 = 13] = "kLnWt013", D[D.kLnWt015 = 15] = "kLnWt015", D[D.kLnWt018 = 18] = "kLnWt018", D[D.kLnWt020 = 20] = "kLnWt020", D[D.kLnWt025 = 25] = "kLnWt025", D[D.kLnWt030 = 30] = "kLnWt030", D[D.kLnWt035 = 35] = "kLnWt035", D[D.kLnWt040 = 40] = "kLnWt040", D[D.kLnWt050 = 50] = "kLnWt050", D[D.kLnWt053 = 53] = "kLnWt053", D[D.kLnWt060 = 60] = "kLnWt060", D[D.kLnWt070 = 70] = "kLnWt070", D[D.kLnWt080 = 80] = "kLnWt080", D[D.kLnWt090 = 90] = "kLnWt090", D[D.kLnWt100 = 100] = "kLnWt100", D[D.kLnWt106 = 106] = "kLnWt106", D[D.kLnWt120 = 120] = "kLnWt120", D[D.kLnWt140 = 140] = "kLnWt140", D[D.kLnWt158 = 158] = "kLnWt158", D[D.kLnWt200 = 200] = "kLnWt200", D[D.kLnWt211 = 211] = "kLnWt211", D[D.kLnWtByLayer = -1] = "kLnWtByLayer", D[D.kLnWtByBlock = -2] = "kLnWtByBlock", D[D.kLnWtByLwDefault = -3] = "kLnWtByLwDefault";
363
+ })(E.LineWeight || (E.LineWeight = {}));
364
+ })(BD || (BD = {}));
365
+ class O {
366
+ imp;
367
+ constructor(D, C, B) {
368
+ this.imp = new i.mxcadassemblyimp.MdCmColor(), D instanceof Object ? (this.imp.red = D.red, this.imp.green = D.green, this.imp.blue = D.blue, this.imp.method = D.method, this.imp.n = D.n, this.imp.colorIndex = D.colorIndex) : D && C && B && this.imp.setRGB(D, C, B);
369
+ }
370
+ getImp() {
371
+ return this.imp;
372
+ }
373
+ copy(D) {
374
+ return this.imp.red = D.imp.red, this.imp.green = D.imp.green, this.imp.blue = D.imp.blue, this.imp.method = D.imp.method, this.imp.n = D.imp.n, this.imp.colorIndex = D.imp.colorIndex, this;
375
+ }
376
+ clone() {
377
+ return new O(this.imp);
378
+ }
379
+ setColorIndex(D) {
380
+ this.imp.setColorIndex(D);
381
+ }
382
+ setRGB(D, C, B) {
383
+ this.imp.setRGB(D, C, B);
384
+ }
385
+ get red() {
386
+ return this.imp.red;
387
+ }
388
+ set red(D) {
389
+ this.imp.red = D;
390
+ }
391
+ get green() {
392
+ return this.imp.green;
393
+ }
394
+ set green(D) {
395
+ this.imp.green = D;
396
+ }
397
+ get blue() {
398
+ return this.imp.blue;
399
+ }
400
+ set blue(D) {
401
+ this.imp.blue = D;
402
+ }
403
+ get n() {
404
+ return this.imp.n;
405
+ }
406
+ set n(D) {
407
+ this.imp.n = D;
408
+ }
409
+ get method() {
410
+ return this.imp.method;
411
+ }
412
+ set method(D) {
413
+ this.imp.method = D;
414
+ }
415
+ get colorIndex() {
416
+ return this.imp.colorIndex;
417
+ }
418
+ set colorIndex(D) {
419
+ this.imp.colorIndex = D;
420
+ }
421
+ }
422
+ class FC extends S {
423
+ constructor(D) {
424
+ super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbLayerTableRecord());
425
+ }
426
+ get name() {
427
+ return this.imp.getName();
428
+ }
429
+ set name(D) {
430
+ this.imp.setName(D);
431
+ }
432
+ get isFrozen() {
433
+ return this.imp.isFrozen();
434
+ }
435
+ set isFrozen(D) {
436
+ this.imp.setIsFrozen(D);
437
+ }
438
+ get isOff() {
439
+ return this.imp.isOff();
440
+ }
441
+ set isOff(D) {
442
+ this.imp.setIsOff(D);
443
+ }
444
+ get isLocked() {
445
+ return this.imp.isLocked();
446
+ }
447
+ set isLocked(D) {
448
+ this.imp.setIsLocked(D);
449
+ }
450
+ get color() {
451
+ return new O(this.imp.color());
452
+ }
453
+ set color(D) {
454
+ this.imp.setColor(D.getImp());
455
+ }
456
+ get linetypeObjectId() {
457
+ return new f(this.imp.linetypeObjectId(), x.kMxCAD);
458
+ }
459
+ set linetypeObjectId(D) {
460
+ this.imp.setLinetypeObjectId(D.id);
461
+ }
462
+ get lineWeight() {
463
+ return this.imp.lineWeight();
464
+ }
465
+ set lineWeight(D) {
466
+ this.imp.setLineWeight(D);
467
+ }
468
+ }
469
+ class dD extends S {
470
+ constructor(D) {
471
+ super(D);
472
+ }
473
+ }
474
+ class hD extends S {
475
+ constructor(D) {
476
+ super(D);
477
+ }
478
+ }
479
+ class wD extends S {
480
+ constructor(D) {
481
+ super(D);
482
+ }
483
+ }
484
+ class ED extends v {
485
+ constructor(D) {
486
+ super(D);
487
+ }
488
+ GetLayerTable() {
489
+ return new dD(this.imp.GetLayerTable());
490
+ }
491
+ GetLinetypeTable() {
492
+ return new hD(this.imp.GetLinetypeTable());
493
+ }
494
+ GetTextStyleTable() {
495
+ return new wD(this.imp.GetTextStyleTable());
496
+ }
497
+ GetBlockTable() {
498
+ return new xD(this.imp.GetBlockTable());
499
+ }
500
+ CurrentSpace() {
501
+ return new Y(this.imp.CurrentSpace());
502
+ }
503
+ GetCurrentlyLineTypeScale() {
504
+ return this.imp.GetCurrentlyLineTypeScale();
505
+ }
506
+ SetCurrentlyLineTypeScale(D) {
507
+ return this.imp.SetCurrentlyLineTypeScale(D);
508
+ }
509
+ GetCurrentlyLineTypeName() {
510
+ let D = this.imp.GetCurrentlyLineTypeName();
511
+ return y.decodeFromGb2312(D);
512
+ }
513
+ SetCurrentlyLineTypeName(D) {
514
+ let C = y.encodeToGb2312(D);
515
+ this.imp.SetCurrentlyLineTypeName(C);
516
+ }
517
+ GetCurrentlyLayerName() {
518
+ let D = this.imp.GetCurrentlyLayerName();
519
+ return y.decodeFromGb2312(D);
520
+ }
521
+ SetCurrentlyLayerName(D) {
522
+ let C = y.encodeToGb2312(D);
523
+ this.imp.SetCurrentlyLayerName(C);
524
+ }
525
+ GetCurrentlyTrueColor() {
526
+ return new O(this.imp.GetCurrentlyTrueColor());
527
+ }
528
+ SetCurrentlyTrueColor(D) {
529
+ return this.imp.SetCurrentlyTrueColor(D.getImp());
530
+ }
531
+ GetCurrentlyColorIndex() {
532
+ return this.imp.GetCurrentlyColorIndex();
533
+ }
534
+ SetCurrentlyColorIndex(D) {
535
+ return this.imp.SetCurrentlyColorIndex(D);
536
+ }
537
+ GetCurrentlyTextStyleName() {
538
+ let D = this.imp.GetCurrentlyTextStyleName();
539
+ return y.decodeFromGb2312(D);
540
+ }
541
+ SetCurrentlyTextStyle(D) {
542
+ let C = y.encodeToGb2312(D);
543
+ this.imp.SetCurrentlyTextStyle(C);
544
+ }
545
+ }
546
+ class gD extends v {
547
+ constructor(D) {
548
+ super(D);
549
+ }
550
+ start(D = !0, C = !0) {
551
+ this.imp.start(D, C);
552
+ }
553
+ done() {
554
+ return this.imp.done();
555
+ }
556
+ getEntityId() {
557
+ return new f(this.imp.getEntityId(), x.kMxCAD);
558
+ }
559
+ step(D = !0, C = !0) {
560
+ return this.imp.step(D, C);
561
+ }
562
+ }
563
+ class Y extends S {
564
+ constructor(D) {
565
+ super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbBlockTableRecord());
566
+ }
567
+ appendAcDbEntity(D) {
568
+ return new f(
569
+ this.imp.appendAcDbEntity(D.getImp()),
570
+ x.kMxCAD
571
+ );
572
+ }
573
+ newIterator(D = !0, C = !0) {
574
+ let B = this.imp.newIterator(D, C);
575
+ return new gD(B);
576
+ }
577
+ get origin() {
578
+ return new p(this.imp.origin());
579
+ }
580
+ set origin(D) {
581
+ this.imp.setOrigin(D.imp);
582
+ }
583
+ }
584
+ class yD extends v {
585
+ constructor(D) {
586
+ super(D);
587
+ }
588
+ start(D = !0, C = !0) {
589
+ this.imp.start(D, C);
590
+ }
591
+ done() {
592
+ return this.imp.done();
593
+ }
594
+ getRecord() {
595
+ let D = this.imp.getRecord();
596
+ return new Y(D);
597
+ }
598
+ step(D = !0, C = !0) {
599
+ this.imp.start(D, C);
600
+ }
601
+ }
602
+ class xD extends S {
603
+ constructor(D) {
604
+ super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbBlockTable());
605
+ }
606
+ getAt(D) {
607
+ let C = this.getAt(D);
608
+ return C && new Y(C);
609
+ }
610
+ has(D) {
611
+ return this.imp.has(D);
612
+ }
613
+ newIterator(D = !0, C = !0) {
614
+ let B = this.imp.newIterator(D, C);
615
+ return new yD(B);
616
+ }
617
+ add(D) {
618
+ return this.imp.add(D.getImp());
619
+ }
620
+ }
621
+ class z extends S {
193
622
  constructor(D) {
194
623
  super(D);
195
624
  }
196
625
  explode() {
197
626
  let D = this.imp.explode();
198
- return new U(D);
627
+ return new K(D);
199
628
  }
200
629
  get trueColor() {
201
- return this.imp.TrueColor();
630
+ return new O(this.imp.TrueColor());
202
631
  }
203
632
  set trueColor(D) {
204
- this.imp.SetTrueColor(D);
633
+ this.imp.SetTrueColor(D.getImp());
205
634
  }
206
635
  get colorIndex() {
207
636
  return this.imp.ColorIndex();
@@ -243,123 +672,123 @@ class I extends v {
243
672
  this.imp.Highlight(D);
244
673
  }
245
674
  Move(D, C) {
246
- return this.imp.Move(D, C);
675
+ return this.imp.Move(D.imp, C.imp);
247
676
  }
248
677
  Rotate(D, C) {
249
- return this.imp.Rotate(D, C);
678
+ return this.imp.Rotate(D.imp, C);
250
679
  }
251
680
  Mirror(D, C) {
252
- return this.imp.Mirror(D, C);
681
+ return this.imp.Mirror(D.imp, C.imp);
253
682
  }
254
683
  ScaleEntity(D, C) {
255
- return this.imp.ScaleEntity(D, C);
684
+ return this.imp.ScaleEntity(D.imp, C);
256
685
  }
257
686
  TransformBy(D) {
258
- return this.imp.TransformBy(D);
687
+ return this.imp.TransformBy(D.imp);
259
688
  }
260
689
  GetBoundingBox() {
261
690
  let D = this.imp.GetBoundingBox();
262
691
  if (D) {
263
- let C = { minPt: D.AtPoint(0).val, maxPt: D.AtPoint(1).val, ret: 0 };
264
- return s.App.DestroyObject(D), C;
692
+ let C = { minPt: new p(D.AtPoint(0).val), maxPt: new p(D.AtPoint(1).val), ret: 0 };
693
+ return i.App.DestroyObject(D), C;
265
694
  } else
266
- return { minPt: s.NewMcGePoint3d(), maxPt: s.NewMcGePoint3d(), ret: 1 };
695
+ return { minPt: new p(), maxPt: new p(), ret: 1 };
267
696
  }
268
697
  }
269
- class q extends I {
698
+ class N extends z {
270
699
  constructor(D) {
271
700
  super(D);
272
701
  }
273
702
  getStartParam() {
274
- return { val: this.imp.getStartParam(), ret: s.getCallResult() };
703
+ return { val: this.imp.getStartParam(), ret: i.getCallResult() };
275
704
  }
276
705
  getEndParam() {
277
- return { val: this.imp.getEndParam(), ret: s.getCallResult() };
706
+ return { val: this.imp.getEndParam(), ret: i.getCallResult() };
278
707
  }
279
708
  getDistAtParam(D) {
280
- return { val: this.imp.getDistAtParam(D), ret: s.getCallResult() };
709
+ return { val: this.imp.getDistAtParam(D), ret: i.getCallResult() };
281
710
  }
282
711
  getParamAtDist(D) {
283
- return { val: this.imp.getParamAtDist(D), ret: s.getCallResult() };
712
+ return { val: this.imp.getParamAtDist(D), ret: i.getCallResult() };
284
713
  }
285
714
  getDistAtPoint(D) {
286
- return { val: this.imp.getDistAtPoint(D), ret: s.getCallResult() };
715
+ return { val: this.imp.getDistAtPoint(D.imp), ret: i.getCallResult() };
287
716
  }
288
717
  getPointAtDist(D) {
289
- return { val: this.imp.getPointAtDist(D), ret: s.getCallResult() };
718
+ return { val: new p(this.imp.getPointAtDist(D)), ret: i.getCallResult() };
290
719
  }
291
720
  getStartPoint() {
292
- return { val: this.imp.getStartPoint(), ret: s.getCallResult() };
721
+ return { val: new p(this.imp.getStartPoint()), ret: i.getCallResult() };
293
722
  }
294
723
  getEndPoint() {
295
- return { val: this.imp.getStartPoint(), ret: s.getCallResult() };
724
+ return { val: new p(this.imp.getStartPoint()), ret: i.getCallResult() };
296
725
  }
297
726
  getPointAtParam(D) {
298
- return { val: this.imp.getPointAtParam(D), ret: s.getCallResult() };
727
+ return { val: new p(this.imp.getPointAtParam(D)), ret: i.getCallResult() };
299
728
  }
300
729
  getParamAtPoint(D) {
301
- return { val: this.imp.getParamAtPoint(D), ret: s.getCallResult() };
730
+ return { val: this.imp.getParamAtPoint(D.imp), ret: i.getCallResult() };
302
731
  }
303
732
  getFirstDeriv(D) {
304
- return { val: this.imp.getFirstDeriv(D), ret: s.getCallResult() };
733
+ return { val: new G(this.imp.getFirstDeriv(D)), ret: i.getCallResult() };
305
734
  }
306
735
  getFirstDerivEx(D) {
307
- return { val: this.imp.getFirstDerivEx(D), ret: s.getCallResult() };
736
+ return { val: new G(this.imp.getFirstDerivEx(D.imp)), ret: i.getCallResult() };
308
737
  }
309
738
  getClosestPointTo(D, C) {
310
- return { val: this.imp.getClosestPointTo(D, C), ret: s.getCallResult() };
739
+ return { val: new p(this.imp.getClosestPointTo(D.imp, C)), ret: i.getCallResult() };
311
740
  }
312
741
  offsetCurves(D, C) {
313
- let E = this.imp.offsetCurves(D, C);
314
- return new U(E);
742
+ let B = this.imp.offsetCurves(D, C.imp);
743
+ return new K(B);
315
744
  }
316
745
  splitCurves(D) {
317
746
  let C = this.imp.splitCurves(D);
318
- return new U(C);
747
+ return new K(C);
319
748
  }
320
749
  getArea() {
321
- return { val: this.imp.getArea(), ret: s.getCallResult() };
750
+ return { val: this.imp.getArea(), ret: i.getCallResult() };
322
751
  }
323
752
  getSamplePoints(D) {
324
753
  let C = this.imp.getSamplePoints(D);
325
- return new U(C);
754
+ return new K(C);
326
755
  }
327
756
  getLength() {
328
- return { val: this.imp.getLength(), ret: s.getCallResult() };
757
+ return { val: this.imp.getLength(), ret: i.getCallResult() };
329
758
  }
330
759
  }
331
- class H extends q {
760
+ class J extends N {
332
761
  constructor(D) {
333
- super(D), D || this.initTempObject(new s.mxcadassemblyimp.MdDbLine());
762
+ super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbLine());
334
763
  }
335
764
  get startPoint() {
336
- return this.imp.startPoint();
765
+ return new p(this.imp.startPoint());
337
766
  }
338
767
  set startPoint(D) {
339
- this.imp.setStartPoint(D);
768
+ this.imp.setStartPoint(D.imp);
340
769
  }
341
770
  get endPoint() {
342
- return this.imp.endPoint();
771
+ return new p(this.imp.endPoint());
343
772
  }
344
773
  set endPoint(D) {
345
- this.imp.setEndPoint(D);
774
+ this.imp.setEndPoint(D.imp);
346
775
  }
347
776
  }
348
- class _ extends I {
777
+ class Q extends z {
349
778
  constructor(D) {
350
- super(D), D || this.initTempObject(new s.mxcadassemblyimp.MdDbText());
779
+ super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbText());
351
780
  }
352
781
  get position() {
353
- return this.imp.position();
782
+ return new p(this.imp.position());
354
783
  }
355
784
  set position(D) {
356
- this.imp.setPosition(D);
785
+ this.imp.setPosition(D.imp);
357
786
  }
358
787
  get alignmentPoint() {
359
- return this.imp.position();
788
+ return new p(this.imp.position());
360
789
  }
361
790
  set alignmentPoint(D) {
362
- this.imp.setAlignmentPoint(D);
791
+ this.imp.setAlignmentPoint(D.imp);
363
792
  }
364
793
  get oblique() {
365
794
  return this.imp.oblique();
@@ -386,10 +815,10 @@ class _ extends I {
386
815
  this.imp.setWidthFactor(D);
387
816
  }
388
817
  get textString() {
389
- return w.decodeFromGb2312(this.imp.textString());
818
+ return y.decodeFromGb2312(this.imp.textString());
390
819
  }
391
820
  set textString(D) {
392
- this.imp.setTextString(w.encodeToGb2312(D));
821
+ this.imp.setTextString(y.encodeToGb2312(D));
393
822
  }
394
823
  get horizontalMode() {
395
824
  return this.imp.horizontalMode();
@@ -404,15 +833,15 @@ class _ extends I {
404
833
  this.imp.setVerticalMode(D);
405
834
  }
406
835
  }
407
- class Z extends I {
836
+ class FD extends z {
408
837
  constructor(D) {
409
- super(D), D || this.initTempObject(new s.mxcadassemblyimp.MdDbMText());
838
+ super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbMText());
410
839
  }
411
840
  get location() {
412
- return this.imp.location();
841
+ return new p(this.imp.location());
413
842
  }
414
843
  set location(D) {
415
- this.imp.setLocation(D);
844
+ this.imp.setLocation(D.imp);
416
845
  }
417
846
  get rotation() {
418
847
  return this.imp.rotation();
@@ -439,24 +868,24 @@ class Z extends I {
439
868
  this.imp.setAttachment(D);
440
869
  }
441
870
  get contents() {
442
- return w.decodeFromGb2312(this.imp.contents());
871
+ return y.decodeFromGb2312(this.imp.contents());
443
872
  }
444
873
  set contents(D) {
445
- this.imp.setContents(w.encodeToGb2312(D));
874
+ this.imp.setContents(y.encodeToGb2312(D));
446
875
  }
447
876
  }
448
- class DD extends q {
877
+ class AD extends N {
449
878
  constructor(D) {
450
- super(D), D || this.initTempObject(new s.mxcadassemblyimp.MdDbCircle());
879
+ super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbCircle());
451
880
  }
452
- setCenter(D, C, E) {
453
- this.imp.setCenter(D, C, E);
881
+ setCenter(D, C, B) {
882
+ this.imp.setCenter(new p(D, C, B).imp);
454
883
  }
455
884
  get center() {
456
- return this.imp.center();
885
+ return new p(this.imp.center());
457
886
  }
458
887
  set center(D) {
459
- this.imp.setCenter(D);
888
+ this.imp.setCenter(D.imp);
460
889
  }
461
890
  get radius() {
462
891
  return this.imp.radius();
@@ -465,9 +894,9 @@ class DD extends q {
465
894
  this.imp.setRadius(D);
466
895
  }
467
896
  }
468
- class uD extends q {
897
+ class bD extends N {
469
898
  constructor(D) {
470
- super(D), D || this.initTempObject(new s.mxcadassemblyimp.MdDbPolyline());
899
+ super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbPolyline());
471
900
  }
472
901
  get isClosed() {
473
902
  return this.imp.isClosed();
@@ -481,8 +910,8 @@ class uD extends q {
481
910
  set constantWidth(D) {
482
911
  this.imp.setConstantWidth(D);
483
912
  }
484
- addVertexAt(D, C, E, F, A) {
485
- return this.imp.addVertexAt(D, C, E, F, A);
913
+ addVertexAt(D, C, B, F, A) {
914
+ return this.imp.addVertexAt(D, C.imp, B, F, A);
486
915
  }
487
916
  removeVertexAt(D) {
488
917
  return this.imp.removeVertexAt(D);
@@ -491,36 +920,36 @@ class uD extends q {
491
920
  return this.imp.numVerts();
492
921
  }
493
922
  getPointAt(D) {
494
- return { val: this.imp.getPointAt(D), ret: s.getCallResult() };
923
+ return { val: this.imp.getPointAt(D), ret: i.getCallResult() };
495
924
  }
496
925
  getBulgeAt(D) {
497
926
  return this.imp.getBulgeAt(D);
498
927
  }
499
928
  getWidthsAt(D) {
500
- return { val1: this.imp.getStartWidthsAt(D), val2: this.imp.getEndWidthsAt(D), ret: s.getCallResult() };
929
+ return { val1: this.imp.getStartWidthsAt(D), val2: this.imp.getEndWidthsAt(D), ret: i.getCallResult() };
501
930
  }
502
931
  setPointAt(D, C) {
503
- return this.imp.setPointAt(D, C);
932
+ return this.imp.setPointAt(D, C.imp);
504
933
  }
505
934
  setBulgeAt(D, C) {
506
935
  return this.imp.setBulgeAt(D, C);
507
936
  }
508
937
  }
509
- class lD extends I {
938
+ class fD extends z {
510
939
  constructor(D) {
511
- super(D), D || this.initTempObject(new s.mxcadassemblyimp.MdDbBlockReference());
940
+ super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbBlockReference());
512
941
  }
513
942
  get blockTableRecordId() {
514
- return new x(this.imp.blockTableRecord(), y.kMxCAD);
943
+ return new f(this.imp.blockTableRecord(), x.kMxCAD);
515
944
  }
516
945
  set blockTableRecordId(D) {
517
946
  this.imp.setBlockTableRecordId(D.id);
518
947
  }
519
948
  get position() {
520
- return this.imp.position();
949
+ return new p(this.imp.position());
521
950
  }
522
951
  set position(D) {
523
- this.imp.setPosition(D);
952
+ this.imp.setPosition(D.imp);
524
953
  }
525
954
  get scaleFactors() {
526
955
  return this.imp.scaleFactors();
@@ -535,21 +964,21 @@ class lD extends I {
535
964
  this.imp.setRotation(D);
536
965
  }
537
966
  get blockTransform() {
538
- return this.imp.blockTransform();
967
+ return new Z(this.imp.blockTransform());
539
968
  }
540
969
  set blockTransform(D) {
541
- this.imp.setBlockTransform(D);
970
+ this.imp.setBlockTransform(D.imp);
542
971
  }
543
972
  }
544
- class CD extends I {
973
+ class tD extends z {
545
974
  constructor(D) {
546
975
  super(D);
547
976
  }
548
977
  get textPosition() {
549
- return this.imp.textPosition();
978
+ return new p(this.imp.textPosition());
550
979
  }
551
980
  set textPosition(D) {
552
- this.imp.setTextPosition(D);
981
+ this.imp.setTextPosition(D.imp);
553
982
  }
554
983
  isUsingDefaultTextPosition() {
555
984
  return this.imp.isUsingDefaultTextPosition();
@@ -579,7 +1008,7 @@ class CD extends I {
579
1008
  this.imp.setTextRotation(D);
580
1009
  }
581
1010
  get dimensionStyle() {
582
- return new x(this.imp.dimensionStyle(), y.kMxCAD);
1011
+ return new f(this.imp.dimensionStyle(), x.kMxCAD);
583
1012
  }
584
1013
  set dimensionStyle(D) {
585
1014
  this.imp.setDimensionStyle(D.id);
@@ -618,33 +1047,33 @@ class CD extends I {
618
1047
  this.imp.SetDimVarString(D, C);
619
1048
  }
620
1049
  getDimVarObjectId(D) {
621
- return new x(this.imp.GetDimVarObjectId(D), y.kMxCAD);
1050
+ return new f(this.imp.GetDimVarObjectId(D), x.kMxCAD);
622
1051
  }
623
1052
  setDimVarObjectId(D, C) {
624
1053
  this.imp.SetDimVarObjectId(D, C.id);
625
1054
  }
626
1055
  }
627
- class cD extends CD {
1056
+ class MD extends tD {
628
1057
  constructor(D) {
629
- super(D), D || this.initTempObject(new s.mxcadassemblyimp.MdDbAlignedDimension());
1058
+ super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbAlignedDimension());
630
1059
  }
631
1060
  get xLine1Point() {
632
- return this.imp.xLine1Point();
1061
+ return new p(this.imp.xLine1Point());
633
1062
  }
634
1063
  set xLine1Point(D) {
635
- this.imp.setXLine1Point(D);
1064
+ this.imp.setXLine1Point(D.imp);
636
1065
  }
637
1066
  get xLine2Point() {
638
- return this.imp.xLine2Point();
1067
+ return new p(this.imp.xLine2Point());
639
1068
  }
640
1069
  set xLine2Point(D) {
641
- this.imp.setXLine2Point(D);
1070
+ this.imp.setXLine2Point(D.imp);
642
1071
  }
643
1072
  get dimLinePoint() {
644
- return this.imp.dimLinePoint();
1073
+ return new p(this.imp.dimLinePoint());
645
1074
  }
646
1075
  set dimLinePoint(D) {
647
- this.imp.setDimLinePoint(D);
1076
+ this.imp.setDimLinePoint(D.imp);
648
1077
  }
649
1078
  get oblique() {
650
1079
  return this.imp.oblique();
@@ -653,27 +1082,27 @@ class cD extends CD {
653
1082
  this.imp.setOblique(D);
654
1083
  }
655
1084
  }
656
- class dD extends CD {
1085
+ class TD extends tD {
657
1086
  constructor(D) {
658
- super(D), D || this.initTempObject(new s.mxcadassemblyimp.MdDbRotatedDimension());
1087
+ super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbRotatedDimension());
659
1088
  }
660
1089
  get xLine1Point() {
661
- return this.imp.xLine1Point();
1090
+ return new p(this.imp.xLine1Point());
662
1091
  }
663
1092
  set xLine1Point(D) {
664
- this.imp.setXLine1Point(D);
1093
+ this.imp.setXLine1Point(D.imp);
665
1094
  }
666
1095
  get xLine2Point() {
667
- return this.imp.xLine2Point();
1096
+ return new p(this.imp.xLine2Point());
668
1097
  }
669
1098
  set xLine2Point(D) {
670
- this.imp.setXLine2Point(D);
1099
+ this.imp.setXLine2Point(D.imp);
671
1100
  }
672
1101
  get dimLinePoint() {
673
- return this.imp.dimLinePoint();
1102
+ return new p(this.imp.dimLinePoint());
674
1103
  }
675
1104
  set dimLinePoint(D) {
676
- this.imp.setDimLinePoint(D);
1105
+ this.imp.setDimLinePoint(D.imp);
677
1106
  }
678
1107
  get oblique() {
679
1108
  return this.imp.oblique();
@@ -688,13 +1117,45 @@ class dD extends CD {
688
1117
  this.imp.setRotation(D);
689
1118
  }
690
1119
  }
691
- function W(B = null) {
1120
+ class PD extends N {
1121
+ constructor(D) {
1122
+ super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbArc());
1123
+ }
1124
+ setCenter(D, C, B) {
1125
+ this.imp.setCenter(new p(D, C, B).imp);
1126
+ }
1127
+ get center() {
1128
+ return new p(this.imp.center());
1129
+ }
1130
+ set center(D) {
1131
+ this.imp.setCenter(D.imp);
1132
+ }
1133
+ get radius() {
1134
+ return this.imp.radius();
1135
+ }
1136
+ set radius(D) {
1137
+ this.imp.setRadius(D);
1138
+ }
1139
+ get startAngle() {
1140
+ return this.imp.startAngle();
1141
+ }
1142
+ set startAngle(D) {
1143
+ this.imp.setStartAngle(D);
1144
+ }
1145
+ get endAngle() {
1146
+ return this.imp.endAngle();
1147
+ }
1148
+ set endAngle(D) {
1149
+ this.imp.setEndAngle(D);
1150
+ }
1151
+ }
1152
+ function V(E = null) {
692
1153
  let D;
693
- return B == null ? D = new s.mxcadassemblyimp.McDrawResbuf() : D = B.getImp(), D;
1154
+ return E == null ? D = new i.mxcadassemblyimp.McDrawResbuf() : D = E.getImp(), D;
694
1155
  }
695
- class U extends R {
1156
+ class K extends v {
696
1157
  constructor(D) {
697
- super(D), D || this.initTempObject(new s.mxcadassemblyimp.McDrawResbuf());
1158
+ super(D), D || this.initTempObject(new i.mxcadassemblyimp.McDrawResbuf());
698
1159
  }
699
1160
  Clear() {
700
1161
  this.imp.Clear();
@@ -703,16 +1164,16 @@ class U extends R {
703
1164
  return this.imp.GetCount();
704
1165
  }
705
1166
  AtDouble(D) {
706
- return { val: this.imp.AtDouble(D), ret: s.getCallResult() };
1167
+ return { val: this.imp.AtDouble(D), ret: i.getCallResult() };
707
1168
  }
708
1169
  Atlong(D) {
709
- return { val: this.imp.Atlong(D), ret: s.getCallResult() };
1170
+ return { val: this.imp.Atlong(D), ret: i.getCallResult() };
710
1171
  }
711
1172
  AtObject(D) {
712
1173
  if (this.imp.AtObjectName(D) == "McDbMText") {
713
- let E = this.imp.AtObjectMdDbMText(D);
714
- if (E)
715
- return { val: new Z(E), ret: s.getCallResult() };
1174
+ let B = this.imp.AtObjectMdDbMText(D);
1175
+ if (B)
1176
+ return { val: new FD(B), ret: i.getCallResult() };
716
1177
  }
717
1178
  return { val: void 0, ret: -1 };
718
1179
  }
@@ -720,13 +1181,13 @@ class U extends R {
720
1181
  this.imp.AddObject(D.getImp());
721
1182
  }
722
1183
  AtObjectId(D) {
723
- return { val: new x(this.imp.AtObjectId(D), y.kMxCAD), ret: s.getCallResult() };
1184
+ return { val: new f(this.imp.AtObjectId(D), x.kMxCAD), ret: i.getCallResult() };
724
1185
  }
725
1186
  AtString(D) {
726
- return { val: w.decodeFromGb2312(this.imp.AtString(D)), ret: s.getCallResult() };
1187
+ return { val: y.decodeFromGb2312(this.imp.AtString(D)), ret: i.getCallResult() };
727
1188
  }
728
1189
  AtPoint(D) {
729
- return { val: this.imp.AtPoint(D), ret: s.getCallResult() };
1190
+ return { val: new p(this.imp.AtPoint(D)), ret: i.getCallResult() };
730
1191
  }
731
1192
  ItemDataType() {
732
1193
  return this.imp.ItemDataType();
@@ -744,7 +1205,7 @@ class U extends R {
744
1205
  return this.imp.AddString(D, C);
745
1206
  }
746
1207
  AddPoint(D, C = -10) {
747
- return this.imp.AddPoint(D, C);
1208
+ return this.imp.AddPoint(D.imp, C);
748
1209
  }
749
1210
  RemoveAll() {
750
1211
  this.imp.RemoveAll();
@@ -753,7 +1214,7 @@ class U extends R {
753
1214
  this.imp.Remove(D);
754
1215
  }
755
1216
  }
756
- class mD {
1217
+ class kD {
757
1218
  imp;
758
1219
  constructor() {
759
1220
  }
@@ -763,67 +1224,56 @@ class mD {
763
1224
  highlightEntity(D, C = !0) {
764
1225
  return this.init(), this.imp.highlightEntity(D, C);
765
1226
  }
766
- findEntAtPoint(D, C, E, F = -1, A = null) {
1227
+ findEntAtPoint(D, C, B, F = -1, A = null) {
767
1228
  this.init();
768
- let e = this.imp.findEntAtPoint(D, C, E, F, W(A));
769
- return new x(e, y.kMxCAD);
1229
+ let t = this.imp.findEntAtPoint(D, C, B, F, V(A));
1230
+ return new f(t, x.kMxCAD);
770
1231
  }
771
1232
  selectEnt(D, C = null) {
772
- return this.init(), new Promise(async (E) => {
773
- const F = new L();
774
- D && F.setMessage(D), F.setCursorType(VD.kRect);
1233
+ return this.init(), new Promise(async (B) => {
1234
+ const F = new M();
1235
+ D && F.setMessage(D), F.setCursorType(qD.kRect);
775
1236
  let A = await F.go();
776
1237
  if (!A) {
777
- E([]);
1238
+ B([]);
778
1239
  return;
779
1240
  }
780
- ND.findEntAtPoint(A).then((e) => {
781
- let t = [];
782
- e.forEach((i) => {
783
- t.push(new x(i, y.kMxDraw));
1241
+ $D.findEntAtPoint(A).then((t) => {
1242
+ let e = [];
1243
+ t.forEach((s) => {
1244
+ e.push(new f(s, x.kMxDraw));
784
1245
  });
785
1246
  let r = this.findEntAtPoint(A.x, A.y, A.z, -1, C);
786
- r.isValid() && t.push(r), E(t);
1247
+ r.isValid() && e.push(r), B(e);
787
1248
  });
788
1249
  });
789
1250
  }
790
1251
  init() {
791
- this.imp || (this.imp = new s.mxcadassemblyimp.McDrawUtility());
1252
+ this.imp || (this.imp = new i.mxcadassemblyimp.McDrawUtility());
792
1253
  }
793
1254
  }
794
- let BD = new mD();
795
- class pD extends R {
1255
+ let eD = new kD();
1256
+ class RD extends v {
796
1257
  constructor() {
797
- super(), this.initTempObject(new s.mxcadassemblyimp.McDrawSelSet());
1258
+ super(), this.initTempObject(new i.mxcadassemblyimp.McDrawSelSet());
798
1259
  }
799
1260
  allSelect(D = null) {
800
- return this.imp.allSelect(W(D));
1261
+ return this.imp.allSelect(V(D));
801
1262
  }
802
- pointSelect(D, C, E = null, F = -1) {
803
- return this.imp.pointSelect(D, C, W(E), F);
1263
+ pointSelect(D, C, B = null, F = -1) {
1264
+ return this.imp.pointSelect(D, C, V(B), F);
804
1265
  }
805
- crossingSelect(D, C, E, F, A = null) {
806
- return this.imp.crossingSelect(D, C, E, F, W(A));
1266
+ crossingSelect(D, C, B, F, A = null) {
1267
+ return this.imp.crossingSelect(D, C, B, F, V(A));
807
1268
  }
808
1269
  count() {
809
1270
  return this.imp.count();
810
1271
  }
811
1272
  item(D) {
812
- return new x(this.imp.item(D), y.kMxCAD);
1273
+ return new f(this.imp.item(D), x.kMxCAD);
813
1274
  }
814
1275
  }
815
- const ED = "1.0.56", JD = "SharedArrayBuffer" in window, $ = document.currentScript && /unpkg\.com\/mxcad/.test(document.currentScript.src), YD = (B, D = self.location.href) => $ ? `https://unpkg.com/mxcad@${ED}/dist/wasm/2d-st/${B}` : D + B, QD = (B, D = self.location.href) => $ ? `https://unpkg.com/mxcad@${ED}/dist/wasm/2d/${B}` : D + B, ZD = (B, D = self.location.href) => $ ? `https://unpkg.com/mxcad@${ED}/dist/wasm/3d/${B}` : D + B, hD = (B) => new Promise((D, C) => {
816
- const E = document.createElement("script");
817
- E.src = B, E.type = "text/javascript", E.crossOrigin = "anonymous", document.body.appendChild(E), E.onload = () => {
818
- D();
819
- }, E.onerror = (F) => {
820
- C(F);
821
- };
822
- }), DC = async (B, D, C) => {
823
- const { locateFile: E } = C, F = E(B + ".js");
824
- return await hD(F), await globalThis[D](C);
825
- };
826
- class j {
1276
+ class W {
827
1277
  imp;
828
1278
  mxObject;
829
1279
  static currentFileName;
@@ -837,7 +1287,7 @@ class j {
837
1287
  return this.imp;
838
1288
  }
839
1289
  getMxCppImp() {
840
- return s.mxcadassemblyimp;
1290
+ return i.mxcadassemblyimp;
841
1291
  }
842
1292
  updateDisplay(D, C) {
843
1293
  this.imp.updateDisplay(D, C);
@@ -845,46 +1295,49 @@ class j {
845
1295
  test() {
846
1296
  this.imp.test();
847
1297
  }
848
- openWebFile(D, C, E = !0) {
1298
+ openWebFile(D, C, B = !0) {
849
1299
  let F = Math.round(Math.random() * 1e7);
850
1300
  if (C) {
851
- let A = this, e = (t, r) => {
852
- A.mxObject.removeEventFuction("openFileComplete", e), F == r && C(t);
1301
+ let A = this, t = (e, r) => {
1302
+ A.mxObject.removeEventFuction("openFileComplete", t), F == r && C(e);
853
1303
  };
854
- A.mxObject.addEvent("openFileComplete", e);
1304
+ A.mxObject.addEvent("openFileComplete", t);
855
1305
  }
856
- return j.currentFileName = D.split("/").pop(), this.imp.openWebFile(D, E, F);
1306
+ return W.currentFileName = D.split("/").pop(), this.imp.openWebFile(D, B, F);
857
1307
  }
858
1308
  getCurrentFileName() {
859
- return j.currentFileName;
1309
+ return W.currentFileName;
860
1310
  }
861
- saveFileToUrl(D) {
862
- return this.imp.saveFileToUrl(D);
1311
+ saveFileToUrl(D, C) {
1312
+ const B = window;
1313
+ return B.McDrawObjectEvent_saveFileComplete = function(F, A) {
1314
+ C(A, F);
1315
+ }, this.imp.saveFileToUrl(D);
863
1316
  }
864
- saveFile(D, C, E = !0, F = !0) {
1317
+ saveFile(D, C, B = !0, F = !0, A) {
865
1318
  D || (D = this.getCurrentFileName());
866
- const A = window;
867
- return A.mx_saveFile_call = (e) => {
868
- if (console.log(D), C && C(e), !!e) {
869
- if (E) {
870
- let t;
871
- /^((?!chrome|android).)*safari/i.test(navigator.userAgent) ? t = new Blob([e.buffer], { type: "application/octet-stream" }) : t = new Blob([e.buffer], { type: "application/octet-binary" }), F ? V.saveAsFileDialog({
872
- blob: t,
873
- filename: D,
1319
+ const t = window;
1320
+ return t.mx_saveFile_call = (e) => {
1321
+ if (C && C(e), !!e) {
1322
+ if (B) {
1323
+ let r;
1324
+ /^((?!chrome|android).)*safari/i.test(navigator.userAgent) ? r = new Blob([e.buffer], { type: "application/octet-stream" }) : r = new Blob([e.buffer], { type: "application/octet-binary" }), F ? H.saveAsFileDialog({
1325
+ blob: r,
1326
+ filename: A || D,
874
1327
  types: [{
875
1328
  description: "mxweb File",
876
1329
  accept: {
877
1330
  "application/octet-stream": [".mxweb"]
878
1331
  }
879
1332
  }]
880
- }) : V.downloadFile(t, D);
1333
+ }) : H.downloadFile(r, D);
881
1334
  }
882
- A.mx_saveFile_call = null;
1335
+ t.mx_saveFile_call = null;
883
1336
  }
884
1337
  }, this.imp.saveFile(D);
885
1338
  }
886
1339
  GetDatabase() {
887
- return new FD(this.imp.GetDatabase());
1340
+ return new ED(this.imp.GetDatabase());
888
1341
  }
889
1342
  GetSysVarString(D) {
890
1343
  return this.imp.GetSysVarString(D);
@@ -905,10 +1358,10 @@ class j {
905
1358
  return this.imp.SetSysVarLong(D, C);
906
1359
  }
907
1360
  get DrawColor() {
908
- return this.imp.GetDrawColor();
1361
+ return new O(this.imp.GetDrawColor());
909
1362
  }
910
1363
  set DrawColor(D) {
911
- this.imp.SetDrawColor(D);
1364
+ this.imp.SetDrawColor(D.getImp());
912
1365
  }
913
1366
  get DrawLineWeight() {
914
1367
  return this.imp.GetDrawLineWeight();
@@ -943,20 +1396,20 @@ class j {
943
1396
  AddLayer(D) {
944
1397
  this.imp.AddLayer(D);
945
1398
  }
946
- AddTextStyle(D, C, E, F) {
947
- this.imp.AddTextStyle(D, C, E, F);
1399
+ AddTextStyle(D, C, B, F) {
1400
+ this.imp.AddTextStyle(D, C, B, F);
948
1401
  }
949
1402
  AddLinetype(D, C) {
950
1403
  this.imp.AddLinetype(D, C);
951
1404
  }
952
- AddLinetypeEx(D, C, E) {
953
- this.imp.AddLinetypeEx(D, C, E);
1405
+ AddLinetypeEx(D, C, B) {
1406
+ this.imp.AddLinetypeEx(D, C, B);
954
1407
  }
955
- DrawLine(D, C, E, F, A, e) {
956
- return this.imp.DrawLine(D, C, E, F, A, e);
1408
+ DrawLine(D, C, B, F, A, t) {
1409
+ return this.imp.DrawLine(D, C, B, F, A, t);
957
1410
  }
958
- AddDimStyle(D, C, E, F, A) {
959
- return this.imp.AddDimStyle(D, C, E, F, A);
1411
+ AddDimStyle(D, C, B, F, A) {
1412
+ return this.imp.AddDimStyle(D, C, B, F, A);
960
1413
  }
961
1414
  get DrawDimStyle() {
962
1415
  return this.imp.GetDrawDimStyle();
@@ -976,65 +1429,65 @@ class j {
976
1429
  set DrawLineWidth(D) {
977
1430
  this.imp.SetDrawLineWidth(D);
978
1431
  }
979
- DrawArc(D, C, E, F, A) {
980
- return this.imp.DrawArc(D, C, E, F, A);
1432
+ DrawArc(D, C, B, F, A) {
1433
+ return this.imp.DrawArc(D, C, B, F, A);
981
1434
  }
982
- DrawArc2(D, C, E, F, A, e) {
983
- return this.imp.DrawArc2(D, C, E, F, A, e);
1435
+ DrawArc2(D, C, B, F, A, t) {
1436
+ return this.imp.DrawArc2(D, C, B, F, A, t);
984
1437
  }
985
- DrawCircle(D, C, E) {
986
- return this.imp.DrawCircle(D, C, E);
1438
+ DrawCircle(D, C, B) {
1439
+ return this.imp.DrawCircle(D, C, B);
987
1440
  }
988
- DrawEllipse(D, C, E, F, A) {
989
- return this.imp.DrawEllipse(D, C, E, F, A);
1441
+ DrawEllipse(D, C, B, F, A) {
1442
+ return this.imp.DrawEllipse(D, C, B, F, A);
990
1443
  }
991
- DrawEllipseArc(D, C, E, F, A, e, t) {
992
- return this.imp.DrawEllipseArc(D, C, E, F, A, e, t);
1444
+ DrawEllipseArc(D, C, B, F, A, t, e) {
1445
+ return this.imp.DrawEllipseArc(D, C, B, F, A, t, e);
993
1446
  }
994
1447
  DrawPoint(D, C) {
995
1448
  return this.imp.DrawPoint(D, C);
996
1449
  }
997
- DrawSolid(D, C, E, F, A, e, t, r) {
998
- return this.imp.DrawSolid(D, C, E, F, A, e, t, r);
1450
+ DrawSolid(D, C, B, F, A, t, e, r) {
1451
+ return this.imp.DrawSolid(D, C, B, F, A, t, e, r);
999
1452
  }
1000
- DrawMText(D, C, E, F, A, e, t) {
1001
- return this.imp.DrawMText(D, C, E, F, A, e, t);
1453
+ DrawMText(D, C, B, F, A, t, e) {
1454
+ return this.imp.DrawMText(D, C, B, F, A, t, e);
1002
1455
  }
1003
- DrawText(D, C, E, F, A, e, t) {
1004
- return this.imp.DrawTextDrawText(D, C, E, F, A, e, t);
1456
+ DrawText(D, C, B, F, A, t, e) {
1457
+ return this.imp.DrawTextDrawText(D, C, B, F, A, t, e);
1005
1458
  }
1006
- DrawBlockReference(D, C, E, F, A) {
1007
- return this.imp.DrawBlockReference(D, C, E, F, A);
1459
+ DrawBlockReference(D, C, B, F, A) {
1460
+ return this.imp.DrawBlockReference(D, C, B, F, A);
1008
1461
  }
1009
- DrawDimAligned(D, C, E, F, A, e) {
1010
- return this.imp.DrawDimAligned(D, C, E, F, A, e);
1462
+ DrawDimAligned(D, C, B, F, A, t) {
1463
+ return this.imp.DrawDimAligned(D, C, B, F, A, t);
1011
1464
  }
1012
- DrawDimAngular(D, C, E, F, A, e, t, r) {
1013
- return this.imp.DrawDimAngular(D, C, E, F, A, e, t, r);
1465
+ DrawDimAngular(D, C, B, F, A, t, e, r) {
1466
+ return this.imp.DrawDimAngular(D, C, B, F, A, t, e, r);
1014
1467
  }
1015
- DrawDimDiametric(D, C, E, F, A) {
1016
- return this.imp.DrawDimDiametric(D, C, E, F, A);
1468
+ DrawDimDiametric(D, C, B, F, A) {
1469
+ return this.imp.DrawDimDiametric(D, C, B, F, A);
1017
1470
  }
1018
- DrawDimRotated(D, C, E, F, A, e, t) {
1019
- return this.imp.DrawDimRotated(D, C, E, F, A, e, t);
1471
+ DrawDimRotated(D, C, B, F, A, t, e) {
1472
+ return this.imp.DrawDimRotated(D, C, B, F, A, t, e);
1020
1473
  }
1021
- DrawDimOrdinate(D, C, E, F, A) {
1022
- return this.imp.DrawDimOrdinate(D, C, E, F, A);
1474
+ DrawDimOrdinate(D, C, B, F, A) {
1475
+ return this.imp.DrawDimOrdinate(D, C, B, F, A);
1023
1476
  }
1024
- DrawDimRadial(D, C, E, F, A) {
1025
- return this.imp.DrawDimRadial(D, C, E, F, A);
1477
+ DrawDimRadial(D, C, B, F, A) {
1478
+ return this.imp.DrawDimRadial(D, C, B, F, A);
1026
1479
  }
1027
1480
  PathMoveTo(D, C) {
1028
1481
  this.imp.PathMoveTo(D, C);
1029
1482
  }
1030
- PathMoveToEx(D, C, E, F, A) {
1031
- this.imp.PathMoveToEx(D, C, E, F, A);
1483
+ PathMoveToEx(D, C, B, F, A) {
1484
+ this.imp.PathMoveToEx(D, C, B, F, A);
1032
1485
  }
1033
1486
  PathLineTo(D, C) {
1034
1487
  this.imp.PathLineTo(D, C);
1035
1488
  }
1036
- PathLineToEx(D, C, E, F, A) {
1037
- this.imp.PathLineToEx(D, C, E, F, A);
1489
+ PathLineToEx(D, C, B, F, A) {
1490
+ this.imp.PathLineToEx(D, C, B, F, A);
1038
1491
  }
1039
1492
  DrawPathToPolyline() {
1040
1493
  return this.imp.DrawPathToPolyline();
@@ -1052,20 +1505,20 @@ class j {
1052
1505
  return this.imp.DrawEntity(D.getImp());
1053
1506
  }
1054
1507
  ObjectIdToObject(D) {
1055
- return s.App.ObjectIdToObject(D);
1508
+ return i.App.ObjectIdToObject(D);
1056
1509
  }
1057
1510
  CloneMcDbObject(D) {
1058
1511
  let C = this.imp.CloneMcDbObject(D);
1059
- return s.App.CreateCloneObject(C);
1512
+ return i.App.CreateCloneObject(C);
1060
1513
  }
1061
1514
  ObjectIdToMdObjectImp(D) {
1062
- return s.App.getImp().ObjectIdToMdObject(D);
1515
+ return i.App.getImp().ObjectIdToMdObject(D);
1063
1516
  }
1064
1517
  DestroyObject(D) {
1065
- !D || s.App.getImp().DestroyObject(D);
1518
+ !D || i.App.getImp().DestroyObject(D);
1066
1519
  }
1067
1520
  }
1068
- class wD {
1521
+ class LD {
1069
1522
  imp;
1070
1523
  init(D) {
1071
1524
  this.imp = D;
@@ -1076,318 +1529,117 @@ class wD {
1076
1529
  getLastCallResult() {
1077
1530
  return this.imp.getLastCallResult();
1078
1531
  }
1079
- CreateMxCAD(D, C, E, F, A) {
1080
- let e = this.imp.CreateMxDraw(D, C, E, F, A);
1081
- return new j(e);
1532
+ CreateMxCAD(D, C, B, F, A) {
1533
+ let t = this.imp.CreateMxDraw(D, C, B, F, A);
1534
+ return new W(t);
1082
1535
  }
1083
1536
  DestroyObject(D) {
1084
1537
  this.imp.DestroyObject(D);
1085
1538
  }
1086
1539
  GetCurrentMxCAD() {
1087
- return new j(this.imp.GetCurrentMxDraw());
1540
+ return new W(this.imp.GetCurrentMxDraw());
1088
1541
  }
1089
- mcedRGB2Index(D, C, E, F = !0) {
1090
- return this.imp.mcedRGB2Index(D, C, E, F);
1542
+ mcedRGB2Index(D, C, B, F = !0) {
1543
+ return this.imp.mcedRGB2Index(D, C, B, F);
1091
1544
  }
1092
1545
  ObjectIdToObject(D) {
1093
1546
  if (!D)
1094
1547
  return null;
1095
1548
  let C = this.imp.ObjectIdToObjectName(D);
1096
1549
  if (C == "McDbLine") {
1097
- let E = this.imp.ObjectIdToMdDbLine(D);
1098
- return new H(E);
1550
+ let B = this.imp.ObjectIdToMdDbLine(D);
1551
+ return new J(B);
1099
1552
  } else if (C == "McDbText") {
1100
- let E = this.imp.ObjectIdToMdDbText(D);
1101
- return new _(E);
1553
+ let B = this.imp.ObjectIdToMdDbText(D);
1554
+ return new Q(B);
1102
1555
  } else if (C == "McDbPolyline") {
1103
- let E = this.imp.ObjectIdToMdDbPolyline(D);
1104
- return new uD(E);
1556
+ let B = this.imp.ObjectIdToMdDbPolyline(D);
1557
+ return new bD(B);
1105
1558
  } else if (C == "McDbCircle") {
1106
- let E = this.imp.ObjectIdToMdDbCircle(D);
1107
- return new DD(E);
1559
+ let B = this.imp.ObjectIdToMdDbCircle(D);
1560
+ return new AD(B);
1561
+ } else if (C == "McDbArc") {
1562
+ let B = this.imp.ObjectIdToMdDbArc(D);
1563
+ return new PD(B);
1108
1564
  } else if (C == "McDbBlockReference") {
1109
- let E = this.imp.ObjectIdToMdDbBlockReference(D);
1110
- return new lD(E);
1565
+ let B = this.imp.ObjectIdToMdDbBlockReference(D);
1566
+ return new fD(B);
1111
1567
  } else if (C == "McDbAlignedDimension") {
1112
- let E = this.imp.ObjectIdToMdDbAlignedDimension(D);
1113
- return new cD(E);
1568
+ let B = this.imp.ObjectIdToMdDbAlignedDimension(D);
1569
+ return new MD(B);
1114
1570
  } else if (C == "McDbRotatedDimension") {
1115
- let E = this.imp.ObjectIdToMdDbRotatedDimension(D);
1116
- return new dD(E);
1571
+ let B = this.imp.ObjectIdToMdDbRotatedDimension(D);
1572
+ return new TD(B);
1117
1573
  } else if (C == "McDbMText") {
1118
- let E = this.imp.ObjectIdToMdDbMText(D);
1119
- return new Z(E);
1574
+ let B = this.imp.ObjectIdToMdDbMText(D);
1575
+ return new FD(B);
1120
1576
  }
1121
1577
  return console.log("Mx ObjectIdToObject error type:" + C), null;
1122
1578
  }
1123
1579
  CreateCloneObject(D) {
1124
1580
  let C = D.getObjectName();
1125
1581
  if (C == "McDbLine") {
1126
- let E = new H();
1127
- return E.getImp().ConnectionTempObject(D), s.App.DestroyObject(D), E;
1582
+ let B = new J();
1583
+ return B.getImp().ConnectionTempObject(D), i.App.DestroyObject(D), B;
1128
1584
  } else if (C == "McDbText") {
1129
- let E = new _();
1130
- return E.getImp().ConnectionTempObject(D), s.App.DestroyObject(D), E;
1585
+ let B = new Q();
1586
+ return B.getImp().ConnectionTempObject(D), i.App.DestroyObject(D), B;
1131
1587
  }
1132
- return console.log("Mx: Clone error type"), new v(D);
1588
+ return console.log("Mx: Clone error type"), new S(D);
1133
1589
  }
1134
1590
  }
1135
- class gD {
1591
+ class SD {
1136
1592
  mxcadassemblyimp;
1137
- App = new wD();
1138
- NewMcCmColor() {
1139
- return new this.mxcadassemblyimp.MdCmColor();
1140
- }
1593
+ App = new LD();
1141
1594
  getCallResult() {
1142
1595
  return this.App.getLastCallResult();
1143
1596
  }
1144
1597
  NewMcGePoint3d(D, C) {
1145
1598
  if (C && D && D.x && D.y) {
1146
1599
  let F = D.z || 0;
1147
- D = m.getCurrentDraw().docCoord2Cad(D.x, D.y, F);
1600
+ D = d.getCurrentDraw().docCoord2Cad(D.x, D.y, F);
1148
1601
  }
1149
- let E = new this.mxcadassemblyimp.MdGePoint3d();
1150
- return D && D.x && D.y && (E.x = D.x, E.y = D.y, D.z && (E.y = D.z)), E;
1151
- }
1152
- NewMcGePoint3d2(D, C, E) {
1153
- let F = new this.mxcadassemblyimp.MdGePoint3d();
1154
- return F.x = D, F.y = C, E && (F.y = E), F;
1602
+ let B = new p();
1603
+ return D && D.x && D.y && (B.x = D.x, B.y = D.y, D.z && (B.y = D.z)), B;
1155
1604
  }
1156
1605
  }
1157
- let s;
1158
- async function yD(B, D = JD || !$ ? YD : QD, C) {
1159
- return new Promise(async (E, F) => {
1606
+ const iD = "1.0.57", AC = "SharedArrayBuffer" in window, X = document.currentScript && /unpkg\.com\/mxcad/.test(document.currentScript.src), tC = (E, D = self.location.href) => X ? `https://unpkg.com/mxcad@${iD}/dist/wasm/2d-st/${E}` : D + E, eC = (E, D = self.location.href) => X ? `https://unpkg.com/mxcad@${iD}/dist/wasm/2d/${E}` : D + E, iC = (E, D = self.location.href) => X ? `https://unpkg.com/mxcad@${iD}/dist/wasm/3d/${E}` : D + E, vD = (E) => new Promise((D, C) => {
1607
+ const B = document.createElement("script");
1608
+ B.src = E, B.type = "text/javascript", B.crossOrigin = "anonymous", document.body.appendChild(B), B.onload = () => {
1609
+ D();
1610
+ }, B.onerror = (F) => {
1611
+ C(F);
1612
+ };
1613
+ }), rC = async (E, D, C) => {
1614
+ const { locateFile: B } = C, F = B(E + ".js");
1615
+ return await vD(F), await globalThis[D](C);
1616
+ };
1617
+ let i;
1618
+ async function OD(E, D = AC || !X ? tC : eC, C) {
1619
+ return new Promise(async (B, F) => {
1160
1620
  try {
1161
- if (s || (s = new gD()), s.mxcadassemblyimp)
1162
- return B && B(s), E(s);
1163
- const e = await DC("mxdrawassembly_min", "mxdrawassembly", {
1621
+ if (i || (i = new SD()), i.mxcadassemblyimp)
1622
+ return E && E(i), B(i);
1623
+ const t = await rC("mxdrawassembly_min", "mxdrawassembly", {
1164
1624
  locateFile: D,
1165
1625
  wasmBinary: C
1166
1626
  });
1167
- s.mxcadassemblyimp = e;
1168
- let t = new e.McApp();
1169
- t.Init(), s.App.init(t), s.App.GetCurrentMxCAD(), B && B(s), E(s);
1627
+ i.mxcadassemblyimp = t;
1628
+ let e = new t.McApp();
1629
+ e.Init(), i.App.init(e), i.App.GetCurrentMxCAD(), E && E(i), B(i);
1170
1630
  } catch (A) {
1171
1631
  F(A);
1172
1632
  }
1173
1633
  });
1174
1634
  }
1175
- var Q;
1176
- ((B) => {
1177
- ((D) => {
1178
- D[D.kTextLeft = 0] = "kTextLeft", D[D.kTextCenter = 1] = "kTextCenter", D[D.kTextRight = 2] = "kTextRight", D[D.kTextAlign = 3] = "kTextAlign", D[D.kTextMid = 4] = "kTextMid", D[D.kTextFit = 5] = "kTextFit";
1179
- })(B.TextHorzMode || (B.TextHorzMode = {})), ((D) => {
1180
- D[D.kTextBase = 0] = "kTextBase", D[D.kTextBottom = 1] = "kTextBottom", D[D.kTextVertMid = 2] = "kTextVertMid", D[D.kTextTop = 3] = "kTextTop";
1181
- })(B.TextVertMode || (B.TextVertMode = {})), ((D) => {
1182
- D[D.kTopLeft = 1] = "kTopLeft", D[D.kTopCenter = 2] = "kTopCenter", D[D.kTopRight = 3] = "kTopRight", D[D.kMiddleLeft = 4] = "kMiddleLeft", D[D.kMiddleCenter = 5] = "kMiddleCenter", D[D.kMiddleRight = 6] = "kMiddleRight", D[D.kBottomLeft = 7] = "kBottomLeft", D[D.kBottomCenter = 8] = "kBottomCenter", D[D.kBottomRight = 9] = "kBottomRight", D[D.kBaseLeft = 10] = "kBaseLeft", D[D.kBaseCenter = 11] = "kBaseCenter", D[D.kBaseRight = 12] = "kBaseRight", D[D.kBaseAlign = 13] = "kBaseAlign", D[D.kBottomAlign = 14] = "kBottomAlign", D[D.kMiddleAlign = 15] = "kMiddleAlign", D[D.kTopAlign = 16] = "kTopAlign", D[D.kBaseFit = 17] = "kBaseFit", D[D.kBottomFit = 18] = "kBottomFit", D[D.kMiddleFit = 19] = "kMiddleFit", D[D.kTopFit = 20] = "kTopFit", D[D.kBaseMid = 21] = "kBaseMid", D[D.kBottomMid = 22] = "kBottomMid", D[D.kMiddleMid = 23] = "kMiddleMid", D[D.kTopMid = 24] = "kTopMid";
1183
- })(B.AttachmentPoint || (B.AttachmentPoint = {})), ((D) => {
1184
- D[D.kLnWt000 = 0] = "kLnWt000", D[D.kLnWt005 = 5] = "kLnWt005", D[D.kLnWt009 = 9] = "kLnWt009", D[D.kLnWt013 = 13] = "kLnWt013", D[D.kLnWt015 = 15] = "kLnWt015", D[D.kLnWt018 = 18] = "kLnWt018", D[D.kLnWt020 = 20] = "kLnWt020", D[D.kLnWt025 = 25] = "kLnWt025", D[D.kLnWt030 = 30] = "kLnWt030", D[D.kLnWt035 = 35] = "kLnWt035", D[D.kLnWt040 = 40] = "kLnWt040", D[D.kLnWt050 = 50] = "kLnWt050", D[D.kLnWt053 = 53] = "kLnWt053", D[D.kLnWt060 = 60] = "kLnWt060", D[D.kLnWt070 = 70] = "kLnWt070", D[D.kLnWt080 = 80] = "kLnWt080", D[D.kLnWt090 = 90] = "kLnWt090", D[D.kLnWt100 = 100] = "kLnWt100", D[D.kLnWt106 = 106] = "kLnWt106", D[D.kLnWt120 = 120] = "kLnWt120", D[D.kLnWt140 = 140] = "kLnWt140", D[D.kLnWt158 = 158] = "kLnWt158", D[D.kLnWt200 = 200] = "kLnWt200", D[D.kLnWt211 = 211] = "kLnWt211", D[D.kLnWtByLayer = -1] = "kLnWtByLayer", D[D.kLnWtByBlock = -2] = "kLnWtByBlock", D[D.kLnWtByLwDefault = -3] = "kLnWtByLwDefault";
1185
- })(B.LineWeight || (B.LineWeight = {}));
1186
- })(Q || (Q = {}));
1187
- class CC extends v {
1188
- constructor(D) {
1189
- super(D), D || this.initTempObject(new s.mxcadassemblyimp.MdDbLayerTableRecord());
1190
- }
1191
- get name() {
1192
- return this.imp.getName();
1193
- }
1194
- set name(D) {
1195
- this.imp.setName(D);
1196
- }
1197
- get isFrozen() {
1198
- return this.imp.isFrozen();
1199
- }
1200
- set isFrozen(D) {
1201
- this.imp.setIsFrozen(D);
1202
- }
1203
- get isOff() {
1204
- return this.imp.isOff();
1205
- }
1206
- set isOff(D) {
1207
- this.imp.setIsOff(D);
1208
- }
1209
- get isLocked() {
1210
- return this.imp.isLocked();
1211
- }
1212
- set isLocked(D) {
1213
- this.imp.setIsLocked(D);
1214
- }
1215
- get color() {
1216
- return this.imp.color();
1217
- }
1218
- set color(D) {
1219
- this.imp.setColor(D);
1220
- }
1221
- get linetypeObjectId() {
1222
- return new x(this.imp.linetypeObjectId(), y.kMxCAD);
1223
- }
1224
- set linetypeObjectId(D) {
1225
- this.imp.setLinetypeObjectId(D.id);
1226
- }
1227
- get lineWeight() {
1228
- return this.imp.lineWeight();
1229
- }
1230
- set lineWeight(D) {
1231
- this.imp.setLineWeight(D);
1232
- }
1233
- }
1234
- class bD extends v {
1235
- constructor(D) {
1236
- super(D);
1237
- }
1238
- }
1239
- class xD extends v {
1240
- constructor(D) {
1241
- super(D);
1242
- }
1243
- }
1244
- class fD extends v {
1245
- constructor(D) {
1246
- super(D);
1247
- }
1248
- }
1249
- class FD extends R {
1250
- constructor(D) {
1251
- super(D);
1252
- }
1253
- GetLayerTable() {
1254
- return new bD(this.imp.GetLayerTable());
1255
- }
1256
- GetLinetypeTable() {
1257
- return new xD(this.imp.GetLinetypeTable());
1258
- }
1259
- GetTextStyleTable() {
1260
- return new fD(this.imp.GetTextStyleTable());
1261
- }
1262
- GetBlockTable() {
1263
- return new kD(this.imp.GetBlockTable());
1264
- }
1265
- CurrentSpace() {
1266
- return new X(this.imp.CurrentSpace());
1267
- }
1268
- GetCurrentlyLineTypeScale() {
1269
- return this.imp.GetCurrentlyLineTypeScale();
1270
- }
1271
- SetCurrentlyLineTypeScale(D) {
1272
- return this.imp.SetCurrentlyLineTypeScale(D);
1273
- }
1274
- GetCurrentlyLineTypeName() {
1275
- let D = this.imp.GetCurrentlyLineTypeName();
1276
- return w.decodeFromGb2312(D);
1277
- }
1278
- SetCurrentlyLineTypeName(D) {
1279
- let C = w.encodeToGb2312(D);
1280
- this.imp.SetCurrentlyLineTypeName(C);
1281
- }
1282
- GetCurrentlyLayerName() {
1283
- let D = this.imp.GetCurrentlyLayerName();
1284
- return w.decodeFromGb2312(D);
1285
- }
1286
- SetCurrentlyLayerName(D) {
1287
- let C = w.encodeToGb2312(D);
1288
- this.imp.SetCurrentlyLayerName(C);
1289
- }
1290
- GetCurrentlyTrueColor() {
1291
- return this.imp.GetCurrentlyTrueColor();
1292
- }
1293
- SetCurrentlyTrueColor(D) {
1294
- return this.imp.SetCurrentlyTrueColor(D);
1295
- }
1296
- GetCurrentlyColorIndex() {
1297
- return this.imp.GetCurrentlyColorIndex();
1298
- }
1299
- SetCurrentlyColorIndex(D) {
1300
- return this.imp.SetCurrentlyColorIndex(D);
1301
- }
1302
- GetCurrentlyTextStyleName() {
1303
- let D = this.imp.GetCurrentlyTextStyleName();
1304
- return w.decodeFromGb2312(D);
1305
- }
1306
- SetCurrentlyTextStyle(D) {
1307
- let C = w.encodeToGb2312(D);
1308
- this.imp.SetCurrentlyTextStyle(C);
1309
- }
1310
- }
1311
- class MD extends R {
1312
- constructor(D) {
1313
- super(D);
1314
- }
1315
- start(D = !0, C = !0) {
1316
- this.imp.start(D, C);
1317
- }
1318
- done() {
1319
- return this.imp.done();
1320
- }
1321
- getEntityId() {
1322
- return new x(this.imp.getEntityId(), y.kMxCAD);
1323
- }
1324
- step(D = !0, C = !0) {
1325
- return this.imp.step(D, C);
1326
- }
1327
- }
1328
- class X extends v {
1329
- constructor(D) {
1330
- super(D), D || this.initTempObject(new s.mxcadassemblyimp.MdDbBlockTableRecord());
1331
- }
1332
- appendAcDbEntity(D) {
1333
- return new x(this.imp.appendAcDbEntity(D.getImp()), y.kMxCAD);
1334
- }
1335
- newIterator(D = !0, C = !0) {
1336
- let E = this.imp.newIterator(D, C);
1337
- return new MD(E);
1338
- }
1339
- get origin() {
1340
- return this.imp.origin();
1341
- }
1342
- set origin(D) {
1343
- this.imp.setOrigin(D);
1344
- }
1345
- }
1346
- class TD extends R {
1347
- constructor(D) {
1348
- super(D);
1349
- }
1350
- start(D = !0, C = !0) {
1351
- this.imp.start(D, C);
1352
- }
1353
- done() {
1354
- return this.imp.done();
1355
- }
1356
- getRecord() {
1357
- let D = this.imp.getRecord();
1358
- return new X(D);
1359
- }
1360
- step(D = !0, C = !0) {
1361
- this.imp.start(D, C);
1362
- }
1363
- }
1364
- class kD extends v {
1365
- constructor(D) {
1366
- super(D), D || this.initTempObject(new s.mxcadassemblyimp.MdDbBlockTable());
1367
- }
1368
- getAt(D) {
1369
- let C = this.getAt(D);
1370
- return C && new X(C);
1371
- }
1372
- has(D) {
1373
- return this.imp.has(D);
1374
- }
1375
- newIterator(D = !0, C = !0) {
1376
- let E = this.imp.newIterator(D, C);
1377
- return new TD(E);
1378
- }
1379
- add(D) {
1380
- return this.imp.add(D.getImp());
1381
- }
1382
- }
1383
- const BC = (B) => {
1635
+ const sC = (E) => {
1384
1636
  let D = null;
1385
- if (typeof B == "string" ? D = document.querySelector(B) : B instanceof HTMLCanvasElement && (D = B), !!D)
1637
+ if (typeof E == "string" ? D = document.querySelector(E) : E instanceof HTMLCanvasElement && (D = E), !!D)
1386
1638
  return D.id || (D.id = Math.random().toString(16).slice(2)), D.id;
1387
- }, EC = (B, D) => new Promise((C, E) => {
1639
+ }, nC = (E, D) => new Promise((C, B) => {
1388
1640
  try {
1389
- m.createMxObject({
1390
- canvasId: BC(B),
1641
+ d.createMxObject({
1642
+ canvasId: sC(E),
1391
1643
  isCPPMxCAD: !0,
1392
1644
  userIdentitySign: D,
1393
1645
  callback(F) {
@@ -1397,324 +1649,333 @@ const BC = (B) => {
1397
1649
  }
1398
1650
  });
1399
1651
  } catch (F) {
1400
- E(F);
1652
+ B(F);
1401
1653
  }
1402
- }), FC = async (B) => {
1403
- iD.state.MxFun || await KD();
1404
- const { locateFile: D, wasmBinary: C, canvas: E, userIdentitySign: F, onOpenFileComplete: A, fileUrl: e, onInit: t = () => {
1405
- m.setIniset({
1654
+ }), oC = async (E) => {
1655
+ oD.state.MxFun || await JD();
1656
+ const { locateFile: D, wasmBinary: C, canvas: B, userIdentitySign: F, onOpenFileComplete: A, fileUrl: t, onInit: e = () => {
1657
+ d.setIniset({
1406
1658
  EnableIntelliSelect: !0,
1407
1659
  IntelliSelectType: 1,
1408
1660
  multipleSelect: !1
1409
1661
  });
1410
- } } = B || {};
1411
- await yD(() => {
1662
+ } } = E || {};
1663
+ await OD(() => {
1412
1664
  }, D, C);
1413
- let r = m.getCurrentDraw();
1414
- t(), r._mxdrawObj || (r = await EC(E, F));
1415
- const i = m.getMxFunTHREE();
1416
- let o = new i.Vector2();
1665
+ let r = d.getCurrentDraw();
1666
+ e(), r._mxdrawObj || (r = await nC(B, F));
1667
+ const s = d.getMxFunTHREE();
1668
+ let o = new s.Vector2();
1417
1669
  r.getRenderer().getSize(o);
1418
- const a = s.App.CreateMxCAD(o.width, o.height, r.getCanvas().id, r.isWebgl2(), r.getId());
1670
+ const a = i.App.CreateMxCAD(o.width, o.height, r.getCanvas().id, r.isWebgl2(), r.getId());
1419
1671
  return r.initMxCpp(a), r.addEvent("openFileComplete", () => {
1420
1672
  A && A();
1421
- }), e && a.openWebFile(e), a;
1673
+ }), t && a.openWebFile(t), a;
1422
1674
  };
1423
- async function AC() {
1424
- const B = new L();
1425
- B.setMessage(`
1675
+ async function aC() {
1676
+ const E = new M();
1677
+ E.setMessage(`
1426
1678
  \u6307\u5B9A\u63D2\u5165\u4F4D\u7F6E:`);
1427
- let D = await B.go();
1679
+ let D = await E.go();
1428
1680
  if (D == null)
1429
1681
  return;
1430
1682
  let C = "\u6D4B\u8BD5";
1431
1683
  if (C.length <= 0)
1432
1684
  return;
1433
- let E = m.screenCoordLong2Doc(50);
1434
- C = V.b64Encode(C);
1685
+ let B = d.screenCoordLong2Doc(50);
1686
+ C = H.b64Encode(C);
1435
1687
  const F = {
1436
1688
  postx: D.x,
1437
1689
  posty: D.y,
1438
1690
  text: C,
1439
- height: E
1691
+ height: B
1440
1692
  };
1441
- m.call("Mx_Text", F);
1693
+ d.call("Mx_Text", F);
1442
1694
  }
1443
- class eC extends rD {
1695
+ class uC extends aD {
1444
1696
  getGripPoints() {
1445
- const { x: D, y: C, z: E } = this.center;
1446
- let F = new THREE.Vector3(D, C + this.radius, E), A = new THREE.Vector3(D, C - this.radius, E), e = new THREE.Vector3(D - this.radius, C, E), t = new THREE.Vector3(D + this.radius, C, E);
1447
- return [this.center, F, A, e, t];
1697
+ const { x: D, y: C, z: B } = this.center;
1698
+ let F = new THREE.Vector3(D, C + this.radius, B), A = new THREE.Vector3(D, C - this.radius, B), t = new THREE.Vector3(D - this.radius, C, B), e = new THREE.Vector3(D + this.radius, C, B);
1699
+ return [this.center, F, A, t, e];
1448
1700
  }
1449
1701
  moveGripPointsAt(D, C) {
1450
- const [E, F, A, e, t] = this.getGripPoints();
1451
- return D === 0 && (this.center = E.add(C)), D === 1 && (this.radius = F.add(C).distanceTo(this.center)), D === 2 && (this.radius = A.add(C).distanceTo(this.center)), D === 3 && (this.radius = e.add(C).distanceTo(this.center)), D === 4 && (this.radius = t.add(C).distanceTo(this.center)), !0;
1702
+ const [B, F, A, t, e] = this.getGripPoints();
1703
+ return D === 0 && (this.center = B.add(C)), D === 1 && (this.radius = F.add(C).distanceTo(this.center)), D === 2 && (this.radius = A.add(C).distanceTo(this.center)), D === 3 && (this.radius = t.add(C).distanceTo(this.center)), D === 4 && (this.radius = e.add(C).distanceTo(this.center)), !0;
1452
1704
  }
1453
1705
  }
1454
- const eD = (B) => {
1455
- const [D, C, E] = B, { x: F, y: A, z: e } = D, { x: t, y: r, z: i } = C, { x: o, y: a, z: c } = E, n = A * i - r * e - A * c + a * e + r * c - a * i, u = -(F * i - t * e - F * c + o * e + t * c - o * i), p = F * r - t * A - F * a + o * A + t * a - o * r, d = -(F * r * c - F * a * i - t * A * c + t * a * e + o * A * i - o * r * e), l = 2 * (t - F), g = 2 * (r - A), f = 2 * (i - e), S = F * F + A * A + e * e - t * t - r * r - i * i, M = 2 * (o - F), T = 2 * (a - A), k = 2 * (c - e), O = F * F + A * A + e * e - o * o - a * a - c * c, GD = -(u * f * O - u * k * S - g * p * O + g * k * d + T * p * S - T * f * d) / (n * g * k - n * T * f - l * u * k + l * T * p + M * u * f - M * g * p), ID = (n * f * O - n * k * S - l * p * O + l * k * d + M * p * S - M * f * d) / (n * g * k - n * T * f - l * u * k + l * T * p + M * u * f - M * g * p), WD = -(n * g * O - n * T * S - l * u * O + l * T * d + M * u * S - M * g * d) / (n * g * k - n * T * f - l * u * k + l * T * p + M * u * f - M * g * p);
1456
- return new THREE.Vector3(GD, ID, WD);
1706
+ const sD = (E) => {
1707
+ const [D, C, B] = E, { x: F, y: A, z: t } = D, { x: e, y: r, z: s } = C, { x: o, y: a, z: m } = B, n = A * s - r * t - A * m + a * t + r * m - a * s, u = -(F * s - e * t - F * m + o * t + e * m - o * s), h = F * r - e * A - F * a + o * A + e * a - o * r, w = -(F * r * m - F * a * s - e * A * m + e * a * t + o * A * s - o * r * t), l = 2 * (e - F), c = 2 * (r - A), T = 2 * (s - t), j = F * F + A * A + t * t - e * e - r * r - s * s, P = 2 * (o - F), k = 2 * (a - A), R = 2 * (m - t), I = F * F + A * A + t * t - o * o - a * a - m * m, KD = -(u * T * I - u * R * j - c * h * I + c * R * w + k * h * j - k * T * w) / (n * c * R - n * k * T - l * u * R + l * k * h + P * u * T - P * c * h), HD = (n * T * I - n * R * j - l * h * I + l * R * w + P * h * j - P * T * w) / (n * c * R - n * k * T - l * u * R + l * k * h + P * u * T - P * c * h), ND = -(n * c * I - n * k * j - l * u * I + l * k * w + P * u * j - P * c * w) / (n * c * R - n * k * T - l * u * R + l * k * h + P * u * T - P * c * h);
1708
+ return new THREE.Vector3(KD, HD, ND);
1457
1709
  };
1458
- function PD() {
1459
- const B = new L();
1460
- let D = new eC();
1461
- P.use(D), D.closed = !1;
1462
- let C = 0, E = "default", F = !0;
1710
+ function jD() {
1711
+ const E = new M();
1712
+ let D = new uC();
1713
+ L.use(D), D.closed = !1;
1714
+ let C = 0, B = "default", F = !0;
1463
1715
  const A = () => {
1464
- B.setUserDraw(
1716
+ E.setUserDraw(
1465
1717
  (n, u) => {
1466
1718
  D.radius = F ? D.center.distanceTo(n) : D.center.distanceTo(n) / 2, u.drawCustomEntity(D), u.drawLine(D.center, n);
1467
1719
  }
1468
1720
  );
1469
- }, e = (n) => {
1470
- if (E === "default") {
1471
- if (n === h.kOk) {
1721
+ }, t = (n) => {
1722
+ if (B === "default") {
1723
+ if (n === g.kOk) {
1472
1724
  if (C === 0)
1473
- B.setMessage(`
1474
- \u6307\u5B9A\u5706\u7684\u534A\u5F84:`), B.setKeyWords("[\u76F4\u5F84(D)]"), D.center = B.value(), A();
1725
+ E.setMessage(`
1726
+ \u6307\u5B9A\u5706\u7684\u534A\u5F84:`), E.setKeyWords("[\u76F4\u5F84(D)]"), D.center = E.value(), A();
1475
1727
  else if (C === 1)
1476
- return m.getCurrentDraw().addMxEntity(D), !0;
1728
+ return i.App.GetCurrentMxCAD().DrawCircle(D.center.x, D.center.y, D.radius), !0;
1477
1729
  C++;
1478
1730
  }
1479
- n === h.kKeyWord && B.isKeyWordPicked("D") && (F = !1, A(), B.setMessage(`
1480
- \u6307\u5B9A\u5706\u7684\u76F4\u5F84:`), B.setKeyWords(""));
1731
+ n === g.kKeyWord && E.isKeyWordPicked("D") && (F = !1, A(), E.setMessage(`
1732
+ \u6307\u5B9A\u5706\u7684\u76F4\u5F84:`), E.setKeyWords(""));
1481
1733
  }
1482
1734
  };
1483
- let t = [];
1735
+ let e = [];
1484
1736
  const r = (n) => {
1485
- if (E === "3P" && (B.setMessage(`
1486
- \u6307\u5B9A\u5706\u4E0A\u7684\u7B2C\u4E00\u4E2A\u70B9:`), n === h.kOk)) {
1487
- if (C === 0 && (t.push(B.value()), B.setUserDraw((u, p) => {
1488
- p.drawLine(t[0], u);
1489
- }), B.setMessage(`
1490
- \u6307\u5B9A\u5706\u4E0A\u7684\u7B2C\u4E8C\u4E2A\u70B9:`)), C === 1 && (t.push(B.value()), B.setUserDraw((u, p) => {
1491
- const [d, l] = t, g = u;
1492
- D.center = eD([
1493
- d,
1737
+ if (B === "3P" && (E.setMessage(`
1738
+ \u6307\u5B9A\u5706\u4E0A\u7684\u7B2C\u4E00\u4E2A\u70B9:`), n === g.kOk)) {
1739
+ if (C === 0 && (e.push(E.value()), E.setUserDraw((u, h) => {
1740
+ h.drawLine(e[0], u);
1741
+ }), E.setMessage(`
1742
+ \u6307\u5B9A\u5706\u4E0A\u7684\u7B2C\u4E8C\u4E2A\u70B9:`)), C === 1 && (e.push(E.value()), E.setUserDraw((u, h) => {
1743
+ const [w, l] = e, c = u;
1744
+ D.center = sD([
1745
+ w,
1494
1746
  l,
1495
- g
1496
- ]), D.radius = D.center.distanceTo(d), p.drawCustomEntity(D);
1497
- }), B.setMessage(`
1747
+ c
1748
+ ]), D.radius = D.center.distanceTo(w), h.drawCustomEntity(D);
1749
+ }), E.setMessage(`
1498
1750
  \u6307\u5B9A\u5706\u4E0A\u7684\u7B2C\u4E09\u4E2A\u70B9:`)), C === 2)
1499
- return t.push(B.value()), D.center = eD(t), D.radius = D.center.distanceTo(t[0]), m.getCurrentDraw().addMxEntity(D), !0;
1751
+ return e.push(E.value()), D.center = sD(e), D.radius = D.center.distanceTo(e[0]), i.App.GetCurrentMxCAD().DrawCircle(D.center.x, D.center.y, D.radius), !0;
1500
1752
  C++;
1501
1753
  }
1502
1754
  };
1503
- let i;
1755
+ let s;
1504
1756
  const o = (n, u) => {
1505
1757
  new THREE.Line3(n, u).getCenter(D.center), D.radius = u.distanceTo(n) / 2;
1506
1758
  }, a = (n) => {
1507
- if (E === "2P" && (B.setMessage(`
1508
- \u6307\u5B9A\u5706\u76F4\u5F84\u7684\u7B2C\u4E00\u4E2A\u7AEF\u70B9:`), n === h.kOk)) {
1509
- if (C === 0 && (i = B.value(), B.setUserDraw((u, p) => {
1510
- o(i, u), p.drawCustomEntity(D), p.drawLine(i, u);
1511
- }), B.setMessage(`
1759
+ if (B === "2P" && (E.setMessage(`
1760
+ \u6307\u5B9A\u5706\u76F4\u5F84\u7684\u7B2C\u4E00\u4E2A\u7AEF\u70B9:`), n === g.kOk)) {
1761
+ if (C === 0 && (s = E.value(), E.setUserDraw((u, h) => {
1762
+ o(s, u), h.drawCustomEntity(D), h.drawLine(s, u);
1763
+ }), E.setMessage(`
1512
1764
  \u6307\u5B9A\u5706\u76F4\u5F84\u7684\u7B2C\u4E8C\u4E2A\u7AEF\u70B9:`)), C === 1)
1513
- return o(i, B.value()), m.getCurrentDraw().addMxEntity(D), !0;
1765
+ return o(s, E.value()), i.App.GetCurrentMxCAD().DrawCircle(D.center.x, D.center.y, D.radius), !0;
1514
1766
  C++;
1515
1767
  }
1516
- }, c = (n) => {
1517
- if (E === "T") {
1518
- if (B.setMessage(`
1519
- \u6307\u5B9A\u5BF9\u8C61\u4E0E\u5706\u7684\u7B2C\u4E00\u4E2A\u5207\u70B9:`), n === h.kOk) {
1768
+ }, m = (n) => {
1769
+ if (B === "T") {
1770
+ if (E.setMessage(`
1771
+ \u6307\u5B9A\u5BF9\u8C61\u4E0E\u5706\u7684\u7B2C\u4E00\u4E2A\u5207\u70B9:`), n === g.kOk) {
1520
1772
  if (C === 0) {
1521
- const u = B.value();
1522
- console.log(u), m.getCurrentDraw();
1773
+ const u = E.value();
1774
+ console.log(u), d.getCurrentDraw();
1523
1775
  }
1524
1776
  C++;
1525
1777
  }
1526
1778
  return !0;
1527
1779
  }
1528
1780
  };
1529
- B.setMessage(
1781
+ E.setMessage(
1530
1782
  `
1531
1783
  \u6307\u5B9A\u5706\u7684\u5706\u5FC3\u6216[\u4E09\u70B9(3P)/\u4E24\u70B9(2P)/\u5207\u70B9\u3001\u5207\u70B9\u3001\u534A\u5F84(T)]:`
1532
- ), B.setKeyWords("3P 2P T"), B.goWhile(
1784
+ ), E.setKeyWords("3P 2P T"), E.goWhile(
1533
1785
  (n) => {
1534
- if (n === h.kKeyWord && (B.isKeyWordPicked("3P") ? E = "3P" : B.isKeyWordPicked("2P") ? E = "2P" : B.isKeyWordPicked("T") && (E = "T")), e(n))
1786
+ if (n === g.kKeyWord && (E.isKeyWordPicked("3P") ? B = "3P" : E.isKeyWordPicked("2P") ? B = "2P" : E.isKeyWordPicked("T") && (B = "T")), t(n))
1535
1787
  return { exit: !0 };
1536
1788
  if (r(n))
1537
1789
  return { exit: !0 };
1538
1790
  if (a(n))
1539
1791
  return { exit: !0 };
1540
- if (c(n))
1792
+ if (m(n))
1541
1793
  return { exit: !0 };
1542
1794
  },
1543
1795
  (n) => {
1544
- n === h.kCancel && m.getCurrentDraw().addMxEntity(D);
1796
+ n === g.kCancel && i.App.GetCurrentMxCAD().DrawCircle(D.center.x, D.center.y, D.radius);
1545
1797
  }
1546
1798
  );
1547
1799
  }
1548
- m.addCommand("Mx_Circle", PD);
1549
- const tD = () => iD.state.MxFun.stopRunCommand();
1550
- function J(B, D, C, E) {
1551
- const F = B - C, A = D - E;
1552
- let e = 0;
1553
- return F == 0 ? e = Math.PI / 2 : e = Math.atan(Math.abs(A / F)), F < 0 && A >= 0 ? e = Math.PI - e : F < 0 && A < 0 ? e = Math.PI + e : F >= 0 && A < 0 && (e = Math.PI * 2 - e), e;
1554
- }
1555
- async function LD() {
1556
- const B = new L();
1557
- let D = new z(), C = [];
1558
- B.setMessage(`
1800
+ d.on("init", () => {
1801
+ d.addCommand("Mx_Circle", jD);
1802
+ });
1803
+ const nD = () => oD.state.MxFun.stopRunCommand();
1804
+ function DD(E, D, C, B) {
1805
+ const F = E - C, A = D - B;
1806
+ let t = 0;
1807
+ return F == 0 ? t = Math.PI / 2 : t = Math.atan(Math.abs(A / F)), F < 0 && A >= 0 ? t = Math.PI - t : F < 0 && A < 0 ? t = Math.PI + t : F >= 0 && A < 0 && (t = Math.PI * 2 - t), t;
1808
+ }
1809
+ async function ID() {
1810
+ const E = new M();
1811
+ let D = new $(), C = [];
1812
+ E.setMessage(`
1559
1813
  \u6307\u5B9A\u7B2C\u4E00\u70B9:`);
1560
- let E = await B.go();
1561
- B.setUserDraw((A, e) => {
1562
- C.forEach((t) => {
1563
- e.drawCustomEntity(t);
1564
- }), e.drawLine(E, A);
1814
+ let B = await E.go();
1815
+ E.setUserDraw((A, t) => {
1816
+ C.forEach((e) => {
1817
+ t.drawCustomEntity(e);
1818
+ }), t.drawLine(B, A);
1565
1819
  });
1566
1820
  const F = () => {
1567
- B.setMessage(`
1568
- \u6307\u5B9A\u4E0B\u4E00\u4E2A\u70B9:`), C.length > 1 ? B.setKeyWords("[\u9000\u51FA(E)/\u95ED\u5408(C)/\u653E\u5F03(U)]") : B.setKeyWords("[\u9000\u51FA(E)/\u653E\u5F03(U)]");
1821
+ E.setMessage(`
1822
+ \u6307\u5B9A\u4E0B\u4E00\u4E2A\u70B9:`), C.length > 1 ? E.setKeyWords("[\u9000\u51FA(E)/\u95ED\u5408(C)/\u653E\u5F03(U)]") : E.setKeyWords("[\u9000\u51FA(E)/\u653E\u5F03(U)]");
1569
1823
  };
1570
- F(), B.goWhile(
1824
+ F(), E.goWhile(
1571
1825
  (A) => {
1572
- if (A === h.kOk && (D = new z(), P.use(D), D.pt1 = E, D.pt2 = B.value(), E = D.pt2.clone(), C.push(D), F()), A === h.kKeyWord) {
1573
- if (B.isKeyWordPicked("E"))
1574
- tD();
1575
- else if (B.isKeyWordPicked("C")) {
1576
- const e = new z();
1577
- return e.pt1 = E.clone(), e.pt2 = C[0].pt1.clone(), P.use(e), C.push(e), E = e.pt2.clone(), tD(), { exit: !0 };
1826
+ if (A === g.kOk && (D = new $(), L.use(D), D.pt1 = B, D.pt2 = E.value(), B = D.pt2.clone(), C.push(D), F()), A === g.kKeyWord) {
1827
+ if (E.isKeyWordPicked("E"))
1828
+ nD();
1829
+ else if (E.isKeyWordPicked("C")) {
1830
+ const t = new $();
1831
+ return t.pt1 = B.clone(), t.pt2 = C[0].pt1.clone(), L.use(t), C.push(t), B = t.pt2.clone(), nD(), { exit: !0 };
1578
1832
  }
1579
1833
  }
1580
1834
  },
1581
- (A) => (A === h.kCancel && C.forEach((e) => {
1582
- m.getCurrentDraw().addMxEntity(e);
1835
+ (A) => (A === g.kCancel && C.forEach((t) => {
1836
+ i.App.GetCurrentMxCAD().DrawLine(t.pt1.x, t.pt1.y, 0, t.pt2.x, t.pt2.y, 0);
1583
1837
  }), { exit: !0 })
1584
1838
  );
1585
1839
  }
1586
- async function tC() {
1840
+ async function lC() {
1587
1841
  {
1588
- const B = new L();
1589
- B.setMessage(`
1842
+ const E = new M();
1843
+ E.setMessage(`
1590
1844
  \u6307\u5B9A\u4E00\u70B9:`);
1591
- let D = await B.go();
1845
+ let D = await E.go();
1592
1846
  if (!D)
1593
1847
  return;
1594
- let C = new H(), E = new _();
1595
- E.textString = "\u6D4B\u8BD5Test", E.height = m.viewCoordLong2Cad(100), C.startPoint = s.NewMcGePoint3d(D), B.setUserDraw((A, e) => {
1596
- C.endPoint = s.NewMcGePoint3d(A), E.position = s.NewMcGePoint3d(A), E.alignmentPoint = E.position, e.drawMcDbEntity(C), e.drawMcDbEntity(E);
1597
- }), B.setMessage(`
1598
- \u6307\u5B9A\u4E8C\u70B9:`), await B.go();
1599
- let F = s.App.GetCurrentMxCAD();
1600
- F.DrawEntity(E), F.DrawEntity(C);
1601
- }
1602
- }
1603
- async function iC() {
1604
- let B = new pD();
1605
- B.allSelect();
1606
- let D = B.count(), C = 0;
1848
+ let C = new J(), B = new Q();
1849
+ B.textString = "\u6D4B\u8BD5Test", B.height = d.viewCoordLong2Cad(100), C.startPoint = i.NewMcGePoint3d(D), E.setUserDraw((A, t) => {
1850
+ C.endPoint = i.NewMcGePoint3d(A), B.position = i.NewMcGePoint3d(A), B.alignmentPoint = B.position, t.drawMcDbEntity(C), t.drawMcDbEntity(B);
1851
+ }), E.setMessage(`
1852
+ \u6307\u5B9A\u4E8C\u70B9:`), await E.go();
1853
+ let F = i.App.GetCurrentMxCAD();
1854
+ F.DrawEntity(B), F.DrawEntity(C);
1855
+ }
1856
+ }
1857
+ async function cC() {
1858
+ let E = new RD();
1859
+ E.allSelect();
1860
+ let D = E.count(), C = 0;
1607
1861
  for (; C < D; C++) {
1608
- let E = B.item(C), F = E.getObjectName();
1862
+ let B = E.item(C), F = B.getObjectName();
1609
1863
  if (F == "McDbAlignedDimension" || F == "McDbRotatedDimension") {
1610
- let e = E.getMcDbObject().explode();
1611
- if (e.GetCount() == 0)
1864
+ let t = B.getMcDbObject().explode();
1865
+ if (t.GetCount() == 0)
1612
1866
  return;
1613
- let t = e.GetCount();
1614
- for (let r = 0; r < t; r++) {
1615
- let i = e.AtObject(r).val;
1616
- i?.ObjectName == "McDbMText" && console.log(i.contents);
1867
+ let e = t.GetCount();
1868
+ for (let r = 0; r < e; r++) {
1869
+ let s = t.AtObject(r).val;
1870
+ s?.ObjectName == "McDbMText" && console.log(s.contents);
1617
1871
  }
1618
1872
  }
1619
1873
  }
1620
1874
  }
1621
- m.addCommand("Mx_Line", LD);
1622
- m.addCommand("Mx_TestDraw", tC);
1623
- m.addCommand("Mx_Test_GetDim", iC);
1624
- async function rC() {
1625
- const B = new L();
1626
- B.setMessage(`
1875
+ d.on("init", () => {
1876
+ d.addCommand("Mx_Line", ID), d.addCommand("Mx_TestDraw", lC), d.addCommand("Mx_Test_GetDim", cC);
1877
+ });
1878
+ async function mC() {
1879
+ const E = new M();
1880
+ E.setMessage(`
1627
1881
  \u6307\u5B9A\u63D2\u5165\u4F4D\u7F6E:`);
1628
- let D = await B.go();
1882
+ let D = await E.go();
1629
1883
  if (D == null)
1630
1884
  return;
1631
1885
  let C = `\u6D4B\u8BD5
1632
1886
  \u6D4B\u8BD5`;
1633
1887
  if (C.length <= 0)
1634
1888
  return;
1635
- let E = m.screenCoordLong2Doc(50);
1636
- C = V.b64Encode(C);
1889
+ let B = d.screenCoordLong2Doc(50);
1890
+ C = H.b64Encode(C);
1637
1891
  const F = {
1638
1892
  postx: D.x,
1639
1893
  posty: D.y,
1640
1894
  text: C,
1641
- height: E
1895
+ height: B
1642
1896
  };
1643
- m.call("Mx_MText", F);
1897
+ d.call("Mx_MText", F);
1644
1898
  }
1645
- async function vD() {
1646
- const B = new L(), D = new zD();
1647
- P.use(D), B.setMessage(`
1899
+ async function GD() {
1900
+ const E = new M(), D = new QD();
1901
+ L.use(D), E.setMessage(`
1648
1902
  \u6307\u5B9A\u8D77\u70B9:`);
1649
1903
  let C;
1650
- B.setUserDraw((E, F) => {
1651
- F.drawCustomEntity(D), C && F.drawLine(C, E);
1652
- }), B.goWhile(
1653
- (E) => {
1654
- if (E === h.kOk) {
1655
- const F = B.value();
1656
- D.points.push(B.value()), C = F, B.setMessage(`
1657
- \u6307\u5B9A\u4E0B\u4E00\u4E2A\u70B9:`), B.setKeyWords("[\u5706\u5F27(A)/\u5BBD\u5EA6(W)]");
1904
+ E.setUserDraw((B, F) => {
1905
+ F.drawCustomEntity(D), C && F.drawLine(C, B);
1906
+ }), E.goWhile(
1907
+ (B) => {
1908
+ if (B === g.kOk) {
1909
+ const F = E.value();
1910
+ D.points.push(E.value()), C = F, E.setMessage(`
1911
+ \u6307\u5B9A\u4E0B\u4E00\u4E2A\u70B9:`), E.setKeyWords("[\u5706\u5F27(A)/\u5BBD\u5EA6(W)]");
1658
1912
  } else
1659
- E === h.kKeyWord && (B.isKeyWordPicked("A"), B.isKeyWordPicked("W"));
1913
+ B === g.kKeyWord && (E.isKeyWordPicked("A"), E.isKeyWordPicked("W"));
1660
1914
  },
1661
- (E) => {
1662
- E === h.kCancel && m.getCurrentDraw().addMxEntity(D);
1915
+ (B) => {
1916
+ if (B === g.kCancel) {
1917
+ let F = i.App.GetCurrentMxCAD();
1918
+ for (let A = 0; A < D.points.length; A++)
1919
+ A == 0 ? F.PathMoveTo(D.points[A].x, D.points[A].y) : F.PathLineTo(D.points[A].x, D.points[A].y);
1920
+ F.DrawPathToPolyline();
1921
+ }
1663
1922
  }
1664
1923
  );
1665
1924
  }
1666
- m.addCommand("Mx_Pline", vD);
1667
- async function RD() {
1668
- const B = new L();
1669
- B.setMessage(`
1925
+ d.on("init", () => {
1926
+ d.addCommand("Mx_Pline", GD);
1927
+ });
1928
+ async function WD() {
1929
+ const E = new M();
1930
+ E.setMessage(`
1670
1931
  \u6307\u5B9A\u4E00\u70B9:`);
1671
- let D = await B.go(), C = new DD();
1932
+ let D = await E.go(), C = new AD();
1672
1933
  C.setCenter(D.x, D.y, D.z);
1673
- let E = 5;
1674
- B.setUserDraw((F, A) => {
1934
+ let B = 5;
1935
+ E.setUserDraw((F, A) => {
1675
1936
  C.radius = D.distanceTo(F);
1676
- let e = C.getEndParam().val, r = C.getDistAtParam(e).val / E, i = 0, o = new THREE.Vector3(), a = new THREE.Vector3();
1677
- for (let c = 0; c < E; c++) {
1678
- let n = C.getPointAtDist(i).val;
1679
- i += r, c > 0 ? A.drawMcDbLine(n.x, n.y, n.z, o.x, o.y, o.z) : a = new THREE.Vector3(n.x, n.y, n.z), c == E - 1 && A.drawMcDbLine(n.x, n.y, n.z, a.x, a.y, a.z), o = new THREE.Vector3(n.x, n.y, n.z);
1937
+ let t = C.getEndParam().val, r = C.getDistAtParam(t).val / B, s = 0, o = new THREE.Vector3(), a = new THREE.Vector3();
1938
+ for (let m = 0; m < B; m++) {
1939
+ let n = C.getPointAtDist(s).val;
1940
+ s += r, m > 0 ? A.drawMcDbLine(n.x, n.y, n.z, o.x, o.y, o.z) : a = new THREE.Vector3(n.x, n.y, n.z), m == B - 1 && A.drawMcDbLine(n.x, n.y, n.z, a.x, a.y, a.z), o = new THREE.Vector3(n.x, n.y, n.z);
1680
1941
  }
1681
- }), B.setMessage(`
1682
- \u6307\u5B9A\u4E8C\u70B9:`), await B.go(), B.drawReserve();
1942
+ }), E.setMessage(`
1943
+ \u6307\u5B9A\u4E8C\u70B9:`), await E.go(), E.drawReserve();
1683
1944
  }
1684
- m.addCommand("Mx_Polygon", RD);
1685
- function sC(B, D, C) {
1686
- const E = B.x, F = D.x, A = C.x, e = B.y, t = D.y, r = C.y, i = E - F, o = e - t, a = E - A, c = e - r, n = (E * E - F * F + (e * e - t * t)) / 2, u = (E * E - A * A + (e * e - r * r)) / 2, p = o * a - i * c, d = -(c * n - o * u) / p, l = -(i * u - a * n) / p;
1687
- return new THREE.Vector3(d, l, 0);
1945
+ d.addCommand("Mx_Polygon", WD);
1946
+ function pC(E, D, C) {
1947
+ const B = E.x, F = D.x, A = C.x, t = E.y, e = D.y, r = C.y, s = B - F, o = t - e, a = B - A, m = t - r, n = (B * B - F * F + (t * t - e * e)) / 2, u = (B * B - A * A + (t * t - r * r)) / 2, h = o * a - s * m, w = -(m * n - o * u) / h, l = -(s * u - a * n) / h;
1948
+ return new THREE.Vector3(w, l, 0);
1688
1949
  }
1689
- function nC(B, D) {
1690
- const C = B.x, E = B.y, F = D.x, A = D.y;
1691
- return Math.sqrt((C - F) * (C - F) + (E - A) * (E - A));
1950
+ function dC(E, D) {
1951
+ const C = E.x, B = E.y, F = D.x, A = D.y;
1952
+ return Math.sqrt((C - F) * (C - F) + (B - A) * (B - A));
1692
1953
  }
1693
- function oC(B, D, C) {
1694
- let E;
1695
- B < C ? E = C - B : E = C - B + 360;
1954
+ function hC(E, D, C) {
1955
+ let B;
1956
+ E < C ? B = C - E : B = C - E + 360;
1696
1957
  let F;
1697
- return B < D ? F = D - B : F = D - B + 360, F > E;
1958
+ return E < D ? F = D - E : F = D - E + 360, F > B;
1698
1959
  }
1699
- function Y(B, D, C) {
1700
- const E = B.x, F = D.x, A = B.y, e = D.y;
1701
- let t, r, i;
1702
- return t = (A - e) / C, r = (E - F) / C, r >= 0.99999 && (r = 0.99999), r <= -0.99999 && (r = -0.99999), i = Math.acos(r), i = i / Math.PI * 180, t < -0.05 && (i = 360 - i), {
1703
- sin: t,
1960
+ function CD(E, D, C) {
1961
+ const B = E.x, F = D.x, A = E.y, t = D.y;
1962
+ let e, r, s;
1963
+ return e = (A - t) / C, r = (B - F) / C, r >= 0.99999 && (r = 0.99999), r <= -0.99999 && (r = -0.99999), s = Math.acos(r), s = s / Math.PI * 180, e < -0.05 && (s = 360 - s), {
1964
+ sin: e,
1704
1965
  cos: r,
1705
- angle: i
1966
+ angle: s
1706
1967
  };
1707
1968
  }
1708
- const K = UD.MrxDbgUiPrBaseReturn, b = (B, D, C) => {
1709
- const E = () => {
1710
- B.go((F) => {
1711
- if (F === K.kKeyWord && C() && E(), F === K.kOk && D() && E(), F === K.kNone && E(), F === K.kCancel)
1969
+ const q = _D.MrxDbgUiPrBaseReturn, b = (E, D, C) => {
1970
+ const B = () => {
1971
+ E.go((F) => {
1972
+ if (F === q.kKeyWord && C() && B(), F === q.kOk && D() && B(), F === q.kNone && B(), F === q.kCancel)
1712
1973
  return { exit: !0 };
1713
1974
  });
1714
1975
  };
1715
- return E;
1976
+ return B;
1716
1977
  };
1717
- class AD extends rD {
1978
+ class rD extends aD {
1718
1979
  constructor() {
1719
1980
  super(), this._propertyDbKeys = [...this._propertyDbKeys, "bulge"];
1720
1981
  }
@@ -1722,24 +1983,24 @@ class AD extends rD {
1722
1983
  return "MxDbCircle";
1723
1984
  }
1724
1985
  create() {
1725
- return new AD();
1986
+ return new rD();
1726
1987
  }
1727
- getArcBulge(D, C, E) {
1988
+ getArcBulge(D, C, B) {
1728
1989
  const F = D.distanceTo(C);
1729
- let t = 2 * new THREE.Line3(D, C).getCenter(
1990
+ let e = 2 * new THREE.Line3(D, C).getCenter(
1730
1991
  new THREE.Vector3()
1731
- ).distanceTo(E) / F;
1732
- return t > 0.9999 && t < 1.0001 ? t = 1 : t < -0.9999 && t > -1.0001 ? t = -1 : Math.abs(t) < 1e-10 && (t = 0), t;
1992
+ ).distanceTo(B) / F;
1993
+ return e > 0.9999 && e < 1.0001 ? e = 1 : e < -0.9999 && e > -1.0001 ? e = -1 : Math.abs(e) < 1e-10 && (e = 0), e;
1733
1994
  }
1734
- getArcMidPoint(D, C, E, F, A) {
1735
- const e = D, t = E * Math.PI / 180;
1995
+ getArcMidPoint(D, C, B, F, A) {
1996
+ const t = D, e = B * Math.PI / 180;
1736
1997
  let r = F * Math.PI / 180;
1737
- const i = new THREE.Vector3(), o = new THREE.Vector3();
1738
- i.x = e.x + C * Math.cos(t), i.y = e.y + C * Math.sin(t), o.x = e.x + C * Math.cos(r), o.y = e.y + C * Math.sin(r);
1998
+ const s = new THREE.Vector3(), o = new THREE.Vector3();
1999
+ s.x = t.x + C * Math.cos(e), s.y = t.y + C * Math.sin(e), o.x = t.x + C * Math.cos(r), o.y = t.y + C * Math.sin(r);
1739
2000
  const a = C;
1740
- (A ? E < F : E > F) && (r += Math.PI * 2);
1741
- const c = new THREE.Vector3();
1742
- return c.x = e.x + a * Math.cos((t + r) / 2), c.y = e.y + a * Math.sin((t + r) / 2), [i, c, o, this.center];
2001
+ (A ? B < F : B > F) && (r += Math.PI * 2);
2002
+ const m = new THREE.Vector3();
2003
+ return m.x = t.x + a * Math.cos((e + r) / 2), m.y = t.y + a * Math.sin((e + r) / 2), [s, m, o, this.center];
1743
2004
  }
1744
2005
  getGripPoints() {
1745
2006
  return this.getArcMidPoint(
@@ -1753,98 +2014,98 @@ class AD extends rD {
1753
2014
  moveGripPointsAt(D, C) {
1754
2015
  if (D === 3)
1755
2016
  return this.center.add(C), !0;
1756
- const E = this.getGripPoints();
1757
- return this.upDatePoints(E, D, C), !0;
1758
- }
1759
- upDatePoints(D, C, E) {
1760
- D[C].add(E);
1761
- const [F, A, e] = D;
1762
- this.center = sC(F, e, A), this.radius = nC(A, this.center);
1763
- const t = Y(F, this.center, this.radius), r = Y(e, this.center, this.radius), i = Y(A, this.center, this.radius);
1764
- this.clockwise = oC(
2017
+ const B = this.getGripPoints();
2018
+ return this.upDatePoints(B, D, C), !0;
2019
+ }
2020
+ upDatePoints(D, C, B) {
2021
+ D[C].add(B);
2022
+ const [F, A, t] = D;
2023
+ this.center = pC(F, t, A), this.radius = dC(A, this.center);
2024
+ const e = CD(F, this.center, this.radius), r = CD(t, this.center, this.radius), s = CD(A, this.center, this.radius);
2025
+ this.clockwise = hC(
1765
2026
  r.angle,
1766
- t.angle,
1767
- i.angle
1768
- ), this.startAngle = THREE.MathUtils.degToRad(t.angle), this.endAngle = THREE.MathUtils.degToRad(r.angle);
1769
- }
1770
- }
1771
- async function SD() {
1772
- const B = new L();
1773
- B.setMessage(`
1774
- \u6307\u5B9A\u5706\u5F27\u7684\u8D77\u70B9:`), B.setKeyWords("[\u5706\u5FC3(C)]");
1775
- let D = new AD();
1776
- D.closed = !1, P.use(D);
1777
- let C, E, F;
2027
+ e.angle,
2028
+ s.angle
2029
+ ), this.startAngle = THREE.MathUtils.degToRad(e.angle), this.endAngle = THREE.MathUtils.degToRad(r.angle);
2030
+ }
2031
+ }
2032
+ async function UD() {
2033
+ const E = new M();
2034
+ E.setMessage(`
2035
+ \u6307\u5B9A\u5706\u5F27\u7684\u8D77\u70B9:`), E.setKeyWords("[\u5706\u5FC3(C)]");
2036
+ let D = new rD();
2037
+ D.closed = !1, L.use(D);
2038
+ let C, B, F;
1778
2039
  const A = b(
1779
- B,
2040
+ E,
1780
2041
  () => {
1781
- C = B.value(), B.setMessage(`
1782
- \u6307\u5B9A\u5706\u5F27\u7684\u7B2C\u4E8C\u4E2A\u70B9:`), B.setKeyWords("[\u5706\u5FC3(C)/\u7AEF\u70B9(E)]"), B.setUserDraw((d, l) => {
1783
- l.drawLine(C, d);
2042
+ C = E.value(), E.setMessage(`
2043
+ \u6307\u5B9A\u5706\u5F27\u7684\u7B2C\u4E8C\u4E2A\u70B9:`), E.setKeyWords("[\u5706\u5FC3(C)/\u7AEF\u70B9(E)]"), E.setUserDraw((l, c) => {
2044
+ c.drawLine(C, l);
1784
2045
  }), u();
1785
2046
  },
1786
2047
  () => {
1787
- if (B.isKeyWordPicked("C")) {
1788
- const d = new N();
1789
- D.center = B.value(), d.center = B.value(), B.setMessage(`
1790
- \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3:`), B.setKeyWords(""), t();
2048
+ if (E.isKeyWordPicked("C")) {
2049
+ const l = new _();
2050
+ D.center = E.value(), l.center = E.value(), E.setMessage(`
2051
+ \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3:`), E.setKeyWords(""), e();
1791
2052
  } else
1792
2053
  return !0;
1793
2054
  }
1794
2055
  );
1795
- let e;
1796
- const t = b(
1797
- B,
2056
+ let t;
2057
+ const e = b(
2058
+ E,
1798
2059
  () => {
1799
- e = B.value(), F = new N(), F.closed = !1, P.use(F), F.center = e, D.center = e, B.setMessage(`
1800
- \u6307\u5B9A\u5706\u5F27\u7684\u8D77\u70B9:`), B.setUserDraw((d, l) => {
1801
- l.drawCustomEntity(F), l.drawLine(e, d);
2060
+ t = E.value(), F = new _(), F.closed = !1, L.use(F), F.center = t, D.center = t, E.setMessage(`
2061
+ \u6307\u5B9A\u5706\u5F27\u7684\u8D77\u70B9:`), E.setUserDraw((l, c) => {
2062
+ c.drawCustomEntity(F), c.drawLine(t, l);
1802
2063
  }), o();
1803
2064
  },
1804
2065
  () => {
1805
2066
  }
1806
2067
  );
1807
- let r, i;
2068
+ let r, s;
1808
2069
  const o = b(
1809
- B,
2070
+ E,
1810
2071
  () => {
1811
- r = B.value(), F.endPoint = r, B.setMessage(
2072
+ r = E.value(), F.endPoint = r, E.setMessage(
1812
2073
  `
1813
2074
  \u6307\u5B9A\u5706\u5F27\u7684\u7AEF\u70B9(\u6309\u4F4F ctrl \u952E\u53D6\u76F8\u53CD\u65B9\u5411)\u6216 [\u89D2\u5EA6(A)/\u5F26\u957F(L)/\u4FEE\u6539\u534A\u5F84(R)]:`
1814
- ), B.setKeyWords("A L R"), i = new z(), i.setDashLineDisplay(!0), i.setDashArray(0.05), i.setLineWidth(2), i.setColor("#ffd30d"), i.pt1 = F.center, B.setUserDraw((d, l) => {
1815
- F.startPoint = d, i.pt2 = d, l.drawCustomEntity(F), l.drawCustomEntity(i);
1816
- }), c();
2075
+ ), E.setKeyWords("A L R"), s = new $(), s.setDashLineDisplay(!0), s.setDashArray(0.05), s.setLineWidth(2), s.setColor("#ffd30d"), s.pt1 = F.center, E.setUserDraw((l, c) => {
2076
+ F.startPoint = l, s.pt2 = l, c.drawCustomEntity(F), c.drawCustomEntity(s);
2077
+ }), m();
1817
2078
  },
1818
2079
  () => {
1819
2080
  }
1820
2081
  );
1821
2082
  let a;
1822
- const c = b(
1823
- B,
2083
+ const m = b(
2084
+ E,
1824
2085
  () => {
1825
- a = B.value(), F.startPoint = a, F.endPoint = r, m.getCurrentDraw().addMxEntity(F);
2086
+ a = E.value(), F.startPoint = a, F.endPoint = r, d.getCurrentDraw().addMxEntity(F);
1826
2087
  },
1827
2088
  () => {
1828
- if (B.isKeyWordPicked("A"))
1829
- return B.setMessage(
2089
+ if (E.isKeyWordPicked("A"))
2090
+ return E.setMessage(
1830
2091
  `
1831
2092
  \u6307\u5B9A\u5706\u5F27\u7684\u5939\u89D2(\u6309\u4F4F ctrl \u952E\u53D6\u76F8\u53CD\u65B9\u5411)\u6216 [\u4FEE\u6539\u534A\u5F84(R)]:`
1832
- ), B.setKeyWords("R"), B.setUserDraw((d, l) => {
1833
- F.startPoint = d, l.drawCustomEntity(F), l.drawCustomEntity(i);
2093
+ ), E.setKeyWords("R"), E.setUserDraw((l, c) => {
2094
+ F.startPoint = l, c.drawCustomEntity(F), c.drawCustomEntity(s);
1834
2095
  }), !0;
1835
- if (B.isKeyWordPicked("L"))
1836
- return B.setMessage(
2096
+ if (E.isKeyWordPicked("L"))
2097
+ return E.setMessage(
1837
2098
  `
1838
2099
  \u6307\u5B9A\u5706\u5F27\u7684\u5939\u89D2(\u6309\u4F4F ctrl \u952E\u53D6\u76F8\u53CD\u65B9\u5411)\u6216 [\u4FEE\u6539\u534A\u5F84(R)]:`
1839
- ), B.setKeyWords("R"), B.setUserDraw((d, l) => {
1840
- F.startPoint = d, l.drawCustomEntity(F), l.drawCustomEntity(i);
2100
+ ), E.setKeyWords("R"), E.setUserDraw((l, c) => {
2101
+ F.startPoint = l, c.drawCustomEntity(F), c.drawCustomEntity(s);
1841
2102
  }), !0;
1842
- if (B.isKeyWordPicked("R"))
1843
- B.setMessage(
2103
+ if (E.isKeyWordPicked("R"))
2104
+ E.setMessage(
1844
2105
  `
1845
2106
  \u6307\u5B9A\u5706\u5F27\u7684\u534A\u5F84${F.radius ? "<" + F.radius + ">" : ""}:`
1846
- ), B.setKeyWords(""), B.setUserDraw((d, l) => {
1847
- l.drawLine(d, F.center), F.startPoint = d, l.drawCustomEntity(F);
2107
+ ), E.setKeyWords(""), E.setUserDraw((l, c) => {
2108
+ c.drawLine(l, F.center), F.startPoint = l, c.drawCustomEntity(F);
1848
2109
  }), o();
1849
2110
  else
1850
2111
  return !0;
@@ -1852,36 +2113,38 @@ async function SD() {
1852
2113
  );
1853
2114
  let n;
1854
2115
  const u = b(
1855
- B,
2116
+ E,
1856
2117
  () => {
1857
- n = B.value(), B.setMessage(`
1858
- \u6307\u5B9A\u5706\u5F27\u7684\u7AEF\u70B9:`), E = new HD(), E.autoClockwise = !0, E.closed = !1, P.use(E), E.point1 = C, E.point3 = n, D.center, B.setUserDraw((d, l) => {
1859
- E.point2 = d, l.drawCustomEntity(D);
1860
- }), p();
2118
+ n = E.value(), E.setMessage(`
2119
+ \u6307\u5B9A\u5706\u5F27\u7684\u7AEF\u70B9:`), B = new ZD(), B.autoClockwise = !0, B.closed = !1, L.use(B), B.point1 = C, B.point3 = n, E.setUserDraw((l, c) => {
2120
+ B.point2 = l, c.drawCustomEntity(B);
2121
+ }), w();
1861
2122
  },
1862
2123
  () => {
1863
- if (B.isKeyWordPicked("C"))
1864
- F = new N(), F.closed = !1, P.use(F), B.setMessage(`
1865
- \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3`), B.setKeyWords(""), B.setUserDraw((d, l) => {
1866
- F.startPoint = C, l.drawLine(d, F.startPoint);
1867
- }), t();
1868
- else if (B.isKeyWordPicked("E"))
1869
- F = new N(), F.closed = !1, P.use(F), B.setMessage(`
1870
- \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3`), B.setKeyWords(""), B.setUserDraw((d, l) => {
1871
- F.startPoint = C, l.drawLine(d, F.startPoint);
1872
- }), t();
2124
+ if (E.isKeyWordPicked("C"))
2125
+ F = new _(), F.closed = !1, L.use(F), E.setMessage(`
2126
+ \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3`), E.setKeyWords(""), E.setUserDraw((l, c) => {
2127
+ F.startPoint = C, c.drawLine(l, F.startPoint);
2128
+ }), e();
2129
+ else if (E.isKeyWordPicked("E"))
2130
+ F = new _(), F.closed = !1, L.use(F), E.setMessage(`
2131
+ \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3`), E.setKeyWords(""), E.setUserDraw((l, c) => {
2132
+ F.startPoint = C, c.drawLine(l, F.startPoint);
2133
+ }), e();
1873
2134
  else
1874
2135
  return !0;
1875
2136
  }
1876
- ), p = b(
1877
- B,
2137
+ );
2138
+ let h = i.App.GetCurrentMxCAD();
2139
+ const w = b(
2140
+ E,
1878
2141
  () => {
1879
- E.point1 = C, E.point2 = B.value(), E.point3 = n, m.getCurrentDraw().addMxEntity(E);
2142
+ B.point1 = C, B.point2 = E.value(), B.point3 = n, h.DrawArc2(B.point1.x, B.point1.y, B.point3.x, B.point3.y, B.point2.x, B.point2.y);
1880
2143
  },
1881
2144
  () => {
1882
- if (B.isKeyWordPicked("C"))
2145
+ if (E.isKeyWordPicked("C"))
1883
2146
  console.log("C");
1884
- else if (B.isKeyWordPicked("E"))
2147
+ else if (E.isKeyWordPicked("E"))
1885
2148
  console.log("E");
1886
2149
  else
1887
2150
  return !0;
@@ -1889,262 +2152,290 @@ async function SD() {
1889
2152
  );
1890
2153
  A();
1891
2154
  }
1892
- m.addCommand("Mx_Arc", SD);
1893
- function OD() {
1894
- const B = new L(), D = new _D();
1895
- D.closed = !1, P.use(D), B.setMessage(`
1896
- \u6307\u5B9A\u692D\u5706\u7684\u8F74\u7AEF\u70B9`), B.setKeyWords("[\u4E2D\u5FC3\u70B9(C)]");
1897
- let C, E = new THREE.Vector3();
2155
+ d.on("init", () => {
2156
+ d.addCommand("Mx_Arc", UD);
2157
+ });
2158
+ function zD() {
2159
+ const E = new M(), D = new YD();
2160
+ D.closed = !1, L.use(D), E.setMessage(`
2161
+ \u6307\u5B9A\u692D\u5706\u7684\u8F74\u7AEF\u70B9`), E.setKeyWords("[\u4E2D\u5FC3\u70B9(C)]");
2162
+ let C, B = new THREE.Vector3();
1898
2163
  b(
1899
- B,
2164
+ E,
1900
2165
  () => {
1901
- C = B.value(), B.setUserDraw((i, o) => {
1902
- const a = new THREE.Line3(C, i);
1903
- a.getCenter(E), D.center = E, D.xRadius = a.distance() / 2, D.yRadius = D.xRadius, D.rotation = J(i.x, i.y, E.x, E.y), o.drawLine(i, C);
1904
- }), B.setMessage(`
1905
- \u6307\u5B9A\u692D\u5706\u5F27\u8F74\u7684\u53E6\u4E00\u4E2A\u7AEF\u70B9:`), B.setKeyWords(""), A();
2166
+ C = E.value(), E.setUserDraw((s, o) => {
2167
+ const a = new THREE.Line3(C, s);
2168
+ a.getCenter(B), D.center = B, D.xRadius = a.distance() / 2, D.yRadius = D.xRadius, D.rotation = DD(s.x, s.y, B.x, B.y), o.drawLine(s, C);
2169
+ }), E.setMessage(`
2170
+ \u6307\u5B9A\u692D\u5706\u5F27\u8F74\u7684\u53E6\u4E00\u4E2A\u7AEF\u70B9:`), E.setKeyWords(""), A();
1906
2171
  },
1907
2172
  () => {
1908
2173
  }
1909
2174
  )();
1910
2175
  const A = b(
1911
- B,
2176
+ E,
1912
2177
  () => {
1913
- B.setUserDraw((i, o) => {
1914
- D.yRadius = E.distanceTo(i), o.drawLine(E, i), o.drawCustomEntity(D);
1915
- }), B.setMessage(`
1916
- \u6307\u5B9A\u53E6\u4E00\u6761\u534A\u8F74\u957F\u5EA6`), B.setKeyWords(""), e();
2178
+ E.setUserDraw((s, o) => {
2179
+ D.yRadius = B.distanceTo(s), o.drawLine(B, s), o.drawCustomEntity(D);
2180
+ }), E.setMessage(`
2181
+ \u6307\u5B9A\u53E6\u4E00\u6761\u534A\u8F74\u957F\u5EA6`), E.setKeyWords(""), t();
1917
2182
  },
1918
2183
  () => {
1919
2184
  }
1920
- ), e = b(
1921
- B,
2185
+ ), t = b(
2186
+ E,
1922
2187
  () => {
1923
- B.setMessage(`
1924
- \u6307\u5B9A\u8D77\u59CB\u89D2\u5EA6`), B.setKeyWords(""), B.setUserDraw((i, o) => {
1925
- D.startAngle = J(i.x, i.y, E.x, E.y) - D.rotation, o.drawLine(E, i), o.drawCustomEntity(D);
1926
- }), t();
2188
+ E.setMessage(`
2189
+ \u6307\u5B9A\u8D77\u59CB\u89D2\u5EA6`), E.setKeyWords(""), E.setUserDraw((s, o) => {
2190
+ D.startAngle = DD(s.x, s.y, B.x, B.y) - D.rotation, o.drawLine(B, s), o.drawCustomEntity(D);
2191
+ }), e();
1927
2192
  },
1928
2193
  () => {
1929
2194
  }
1930
- ), t = b(
1931
- B,
2195
+ ), e = b(
2196
+ E,
1932
2197
  () => {
1933
- B.setUserDraw((i, o) => {
1934
- D.endAngle = J(i.x, i.y, E.x, E.y) - D.rotation, o.drawLine(E, i), o.drawCustomEntity(D);
1935
- }), B.setMessage(`
1936
- \u6307\u5B9A\u7EC8\u6B62\u89D2\u5EA6`), B.setKeyWords(""), r();
2198
+ E.setUserDraw((s, o) => {
2199
+ D.endAngle = DD(s.x, s.y, B.x, B.y) - D.rotation, o.drawLine(B, s), o.drawCustomEntity(D);
2200
+ }), E.setMessage(`
2201
+ \u6307\u5B9A\u7EC8\u6B62\u89D2\u5EA6`), E.setKeyWords(""), r();
1937
2202
  },
1938
2203
  () => {
1939
2204
  }
1940
2205
  ), r = b(
1941
- B,
2206
+ E,
1942
2207
  () => {
1943
- m.getCurrentDraw().addMxEntity(D);
2208
+ d.getCurrentDraw().addMxEntity(D);
1944
2209
  },
1945
2210
  () => {
1946
2211
  }
1947
2212
  );
1948
2213
  }
1949
- m.addCommand("Mx_EllipseArc", OD);
1950
- async function jD() {
1951
- (await BD.selectEnt(`
2214
+ function wC() {
2215
+ const E = new M(), D = new XD(), C = new DC();
2216
+ E.setMessage(`
2217
+ \u70B9\u51FB\u5F00\u59CB\u7ED8\u5236\u692D\u5706:`), E.go(() => {
2218
+ C.point1 = E.value(), D.setDraw((B) => {
2219
+ C.point2 = B, D.drawCustomEntity(C);
2220
+ }), E.setUserDraw(D), E.setMessage(`
2221
+ \u518D\u6B21\u70B9\u51FB\u7ED3\u675F\u7ED8\u5236\u692D\u5706:`), E.go(() => {
2222
+ i.App.GetCurrentMxCAD().DrawEllipse(C.center.x, C.center.y, C.xRadius, 0, C.yRadius / C.xRadius);
2223
+ });
2224
+ });
2225
+ }
2226
+ d.on("init", () => {
2227
+ d.addCommand("Mx_EllipseArc", zD), d.addCommand("Mx_Ellipse", wC);
2228
+ });
2229
+ async function VD() {
2230
+ (await eD.selectEnt(`
1952
2231
  \u9009\u62E9\u5220\u9664\u5BF9\u8C61`)).forEach((D) => {
1953
2232
  D.erase();
1954
2233
  });
1955
2234
  }
1956
- m.addCommand("Mx_Erase", jD);
1957
- const aC = async (B, D, C) => {
1958
- const { locateFile: E } = C, F = E(B + ".js");
1959
- return await hD(F), await globalThis[D](C);
2235
+ d.addCommand("Mx_Erase", VD);
2236
+ const gC = async (E, D, C) => {
2237
+ const { locateFile: B } = C, F = B(E + ".js");
2238
+ return await vD(F), await globalThis[D](C);
1960
2239
  };
1961
- function uC(B) {
1962
- return typeof ResizeObserver == "function" ? new ResizeObserver(B) : null;
2240
+ function yC(E) {
2241
+ return typeof ResizeObserver == "function" ? new ResizeObserver(E) : null;
1963
2242
  }
1964
- function lC(B, D) {
2243
+ function xC(E, D) {
1965
2244
  const C = () => requestAnimationFrame(D);
1966
- let E = uC(C);
1967
- if (E) {
1968
- E.observe(B);
2245
+ let B = yC(C);
2246
+ if (B) {
2247
+ B.observe(E);
1969
2248
  return;
1970
2249
  }
1971
2250
  if (MutationObserver) {
1972
- new MutationObserver(C).observe(B, { attributes: !0 });
2251
+ new MutationObserver(C).observe(E, { attributes: !0 });
1973
2252
  return;
1974
2253
  }
1975
2254
  }
1976
- function cC(B, D) {
2255
+ function bC(E, D) {
1977
2256
  let C = null;
1978
- return function(...E) {
2257
+ return function(...B) {
1979
2258
  C || (C = setTimeout(() => {
1980
- B.apply(this, E), C = null;
2259
+ E.apply(this, B), C = null;
1981
2260
  }, D));
1982
2261
  };
1983
2262
  }
1984
- class G {
2263
+ class U {
1985
2264
  static onloadWasmMxDraw3dModel;
1986
2265
  canvas;
1987
2266
  constructor(D) {
1988
2267
  const C = () => {
1989
- const a = this.canvas.parentElement?.clientWidth || window.innerWidth, c = this.canvas.parentElement?.clientHeight || window.innerHeight;
1990
- let n = Math.min(a, window.screen.availWidth), u = Math.min(c, window.screen.availHeight);
1991
- n = Math.max(A, n), u = Math.max(e, u), this.canvas.style.width = n + 1 + "px", this.canvas.style.height = u + "px";
1992
- const p = window.devicePixelRatio || 1;
1993
- this.canvas.width = n * p, this.canvas.height = u * p;
1994
- }, E = cC(C, 50), {
2268
+ const a = this.canvas.parentElement?.clientWidth || window.innerWidth, m = this.canvas.parentElement?.clientHeight || window.innerHeight;
2269
+ let n = Math.min(a, window.screen.availWidth), u = Math.min(m, window.screen.availHeight);
2270
+ n = Math.max(A, n), u = Math.max(t, u), this.canvas.style.width = n + 1 + "px", this.canvas.style.height = u + "px";
2271
+ const h = window.devicePixelRatio || 1;
2272
+ this.canvas.width = n * h, this.canvas.height = u * h;
2273
+ }, B = bC(C, 50), {
1995
2274
  canvas: F,
1996
2275
  minWidth: A = 300,
1997
- minHeight: e = 300,
1998
- updateCanvasSize: t = E,
2276
+ minHeight: t = 300,
2277
+ updateCanvasSize: e = B,
1999
2278
  ...r
2000
2279
  } = D;
2001
- let i = typeof F == "string" ? document.querySelectorAll(F)[0] : F, o = i.getContext("webgl2", { alpha: !1, depth: !0, antialias: !1, preserveDrawingBuffer: !0 });
2002
- o == null && (o = i.getContext("webgl", { alpha: !1, depth: !0, antialias: !1, preserveDrawingBuffer: !0 })), this.canvas = i, this.ctx = o, r.canvas = this.canvas;
2280
+ let s = typeof F == "string" ? document.querySelectorAll(F)[0] : F, o = s.getContext("webgl2", { alpha: !1, depth: !0, antialias: !1, preserveDrawingBuffer: !0 });
2281
+ o == null && (o = s.getContext("webgl", { alpha: !1, depth: !0, antialias: !1, preserveDrawingBuffer: !0 })), this.canvas = s, this.ctx = o, r.canvas = this.canvas;
2003
2282
  for (let a in r)
2004
2283
  this[a] = r[a];
2005
2284
  if (this.canvas instanceof HTMLCanvasElement) {
2006
2285
  const a = this.canvas.parentElement || document.body;
2007
- lC(a, t);
2286
+ xC(a, e);
2008
2287
  } else
2009
2288
  console.error("createMxDraw3d canvas \u53C2\u6570\u4E0D\u6B63\u786E \u65E0\u6CD5\u83B7\u53D6\u5230canvas\u5143\u7D20");
2010
- window.onresize = C, C(), aC("mxdraw3d_min", "mxdraw3d", this).then(() => {
2011
- G.onloadWasmMxDraw3dModel && G.onloadWasmMxDraw3dModel(this), this.updateCanvasSize = t, this.open3DFile = (a) => {
2012
- const c = new FileReader();
2013
- c.onload = () => {
2014
- if (!!c.result && c.result instanceof ArrayBuffer) {
2015
- var n = new Uint8Array(c.result);
2289
+ window.onresize = C, C(), gC("mxdraw3d_min", "mxdraw3d", this).then(() => {
2290
+ U.onloadWasmMxDraw3dModel && U.onloadWasmMxDraw3dModel(this), this.updateCanvasSize = e, this.open3DFile = (a) => {
2291
+ const m = new FileReader();
2292
+ m.onload = () => {
2293
+ if (!!m.result && m.result instanceof ArrayBuffer) {
2294
+ var n = new Uint8Array(m.result);
2016
2295
  const u = this._malloc(n.length);
2017
2296
  this.HEAPU8.set(n, u), this.openFromMemory(a.name, u, n.length, !0), this.displayGround(!0), this.canvas.focus();
2018
2297
  }
2019
- }, c.readAsArrayBuffer(a);
2298
+ }, m.readAsArrayBuffer(a);
2020
2299
  };
2021
2300
  });
2022
2301
  }
2023
2302
  }
2024
- function dC(B, D) {
2025
- return new Promise(async (C, E) => {
2303
+ function fC(E, D) {
2304
+ return new Promise(async (C, B) => {
2026
2305
  try {
2027
- B.locateFile || (B.locateFile = ZD);
2028
- const F = new G(B);
2029
- G.onloadWasmMxDraw3dModel = () => {
2306
+ E.locateFile || (E.locateFile = iC);
2307
+ const F = new U(E);
2308
+ U.onloadWasmMxDraw3dModel = () => {
2030
2309
  C(F), D && D(F);
2031
2310
  };
2032
2311
  } catch (F) {
2033
- E(F);
2312
+ B(F);
2034
2313
  }
2035
2314
  });
2036
2315
  }
2037
- const pC = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
2316
+ const TC = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
2038
2317
  __proto__: null,
2039
- b64Encode: sD,
2040
- b64Decode: nD,
2041
- saveAsFileDialog: oD,
2042
- downloadFile: aD,
2043
- MxTools: V,
2044
- getFilterImp: W,
2045
- McDrawResbuf: U,
2046
- McDrawUtilityClass: mD,
2047
- McDrawUtility: BD,
2048
- McDrawSelSet: pD,
2049
- McRxObject: R,
2050
- McObjectIdType: y,
2051
- McObjectId: x,
2052
- McDbObject: v,
2318
+ b64Encode: uD,
2319
+ b64Decode: lD,
2320
+ saveAsFileDialog: cD,
2321
+ downloadFile: mD,
2322
+ downloadFileFromUrl: pD,
2323
+ MxTools: H,
2324
+ McGePoint3d: p,
2325
+ McGeVector3d: G,
2326
+ McGeMatrix3d: Z,
2327
+ getFilterImp: V,
2328
+ McDrawResbuf: K,
2329
+ McDrawUtilityClass: kD,
2330
+ McDrawUtility: eD,
2331
+ McDrawSelSet: RD,
2332
+ McRxObject: v,
2333
+ McObjectIdType: x,
2334
+ McObjectId: f,
2335
+ McDbObject: S,
2053
2336
  get McDb() {
2054
- return Q;
2337
+ return BD;
2055
2338
  },
2056
- McDbLayerTableRecord: CC,
2057
- McDbLayerTable: bD,
2058
- McDbLinetypeTable: xD,
2059
- McDbTextStyleTable: fD,
2060
- McDbDatabase: FD,
2061
- McDbBlockTableRecordIterator: MD,
2062
- McDbBlockTableRecord: X,
2063
- McDbBlockTableIterator: TD,
2064
- McDbBlockTable: kD,
2065
- McDbEntity: I,
2066
- McDbCurve: q,
2067
- McDbLine: H,
2068
- McDbText: _,
2069
- McDbMText: Z,
2070
- McDbCircle: DD,
2071
- McDbPolyline: uD,
2072
- McDbBlockReference: lD,
2073
- McDbDimension: CD,
2074
- McDbAlignedDimension: cD,
2075
- McDbRotatedDimension: dD,
2076
- McObject: j,
2077
- McAppType: wD,
2078
- MxCppType: gD,
2339
+ McCmColor: O,
2340
+ McDbLayerTableRecord: FC,
2341
+ McDbLayerTable: dD,
2342
+ McDbLinetypeTable: hD,
2343
+ McDbTextStyleTable: wD,
2344
+ McDbDatabase: ED,
2345
+ McDbBlockTableRecordIterator: gD,
2346
+ McDbBlockTableRecord: Y,
2347
+ McDbBlockTableIterator: yD,
2348
+ McDbBlockTable: xD,
2349
+ McDbEntity: z,
2350
+ McDbCurve: N,
2351
+ McDbLine: J,
2352
+ McDbText: Q,
2353
+ McDbMText: FD,
2354
+ McDbCircle: AD,
2355
+ McDbPolyline: bD,
2356
+ McDbBlockReference: fD,
2357
+ McDbDimension: tD,
2358
+ McDbAlignedDimension: MD,
2359
+ McDbRotatedDimension: TD,
2360
+ McDbArc: PD,
2361
+ McObject: W,
2362
+ McAppType: LD,
2363
+ MxCppType: SD,
2079
2364
  get MxCpp() {
2080
- return s;
2365
+ return i;
2081
2366
  },
2082
- loadMxCADassembly: yD,
2083
- createMxCad: FC,
2084
- drawText: AC,
2085
- drawCircle: PD,
2086
- drawLine: LD,
2087
- drawMText: rC,
2088
- drawPolyLine: vD,
2089
- drawPolygon: RD,
2090
- drawArc: SD,
2091
- drawEllipticalArc: OD,
2092
- mxErase: jD,
2093
- MxDraw3d: G,
2094
- loadMxCADassembly3d: dC
2367
+ loadMxCADassembly: OD,
2368
+ createMxCad: oC,
2369
+ drawText: aC,
2370
+ drawCircle: jD,
2371
+ drawLine: ID,
2372
+ drawMText: mC,
2373
+ drawPolyLine: GD,
2374
+ drawPolygon: WD,
2375
+ drawArc: UD,
2376
+ drawEllipticalArc: zD,
2377
+ mxErase: VD,
2378
+ MxDraw3d: U,
2379
+ loadMxCADassembly3d: fC
2095
2380
  }, Symbol.toStringTag, { value: "Module" }));
2096
2381
  export {
2097
- wD as McAppType,
2098
- Q as McDb,
2099
- cD as McDbAlignedDimension,
2100
- lD as McDbBlockReference,
2101
- kD as McDbBlockTable,
2102
- TD as McDbBlockTableIterator,
2103
- X as McDbBlockTableRecord,
2104
- MD as McDbBlockTableRecordIterator,
2105
- DD as McDbCircle,
2106
- q as McDbCurve,
2107
- FD as McDbDatabase,
2108
- CD as McDbDimension,
2109
- I as McDbEntity,
2110
- bD as McDbLayerTable,
2111
- CC as McDbLayerTableRecord,
2112
- H as McDbLine,
2113
- xD as McDbLinetypeTable,
2114
- Z as McDbMText,
2115
- v as McDbObject,
2116
- uD as McDbPolyline,
2117
- dD as McDbRotatedDimension,
2118
- _ as McDbText,
2119
- fD as McDbTextStyleTable,
2120
- U as McDrawResbuf,
2121
- pD as McDrawSelSet,
2122
- BD as McDrawUtility,
2123
- mD as McDrawUtilityClass,
2124
- j as McObject,
2125
- x as McObjectId,
2126
- y as McObjectIdType,
2127
- R as McRxObject,
2128
- s as MxCpp,
2129
- gD as MxCppType,
2130
- G as MxDraw3d,
2131
- V as MxTools,
2132
- nD as b64Decode,
2133
- sD as b64Encode,
2134
- FC as createMxCad,
2135
- pC as default,
2136
- aD as downloadFile,
2137
- SD as drawArc,
2138
- PD as drawCircle,
2139
- OD as drawEllipticalArc,
2140
- LD as drawLine,
2141
- rC as drawMText,
2142
- vD as drawPolyLine,
2143
- RD as drawPolygon,
2144
- AC as drawText,
2145
- W as getFilterImp,
2146
- yD as loadMxCADassembly,
2147
- dC as loadMxCADassembly3d,
2148
- jD as mxErase,
2149
- oD as saveAsFileDialog
2382
+ LD as McAppType,
2383
+ O as McCmColor,
2384
+ BD as McDb,
2385
+ MD as McDbAlignedDimension,
2386
+ PD as McDbArc,
2387
+ fD as McDbBlockReference,
2388
+ xD as McDbBlockTable,
2389
+ yD as McDbBlockTableIterator,
2390
+ Y as McDbBlockTableRecord,
2391
+ gD as McDbBlockTableRecordIterator,
2392
+ AD as McDbCircle,
2393
+ N as McDbCurve,
2394
+ ED as McDbDatabase,
2395
+ tD as McDbDimension,
2396
+ z as McDbEntity,
2397
+ dD as McDbLayerTable,
2398
+ FC as McDbLayerTableRecord,
2399
+ J as McDbLine,
2400
+ hD as McDbLinetypeTable,
2401
+ FD as McDbMText,
2402
+ S as McDbObject,
2403
+ bD as McDbPolyline,
2404
+ TD as McDbRotatedDimension,
2405
+ Q as McDbText,
2406
+ wD as McDbTextStyleTable,
2407
+ K as McDrawResbuf,
2408
+ RD as McDrawSelSet,
2409
+ eD as McDrawUtility,
2410
+ kD as McDrawUtilityClass,
2411
+ Z as McGeMatrix3d,
2412
+ p as McGePoint3d,
2413
+ G as McGeVector3d,
2414
+ W as McObject,
2415
+ f as McObjectId,
2416
+ x as McObjectIdType,
2417
+ v as McRxObject,
2418
+ i as MxCpp,
2419
+ SD as MxCppType,
2420
+ U as MxDraw3d,
2421
+ H as MxTools,
2422
+ lD as b64Decode,
2423
+ uD as b64Encode,
2424
+ oC as createMxCad,
2425
+ TC as default,
2426
+ mD as downloadFile,
2427
+ pD as downloadFileFromUrl,
2428
+ UD as drawArc,
2429
+ jD as drawCircle,
2430
+ zD as drawEllipticalArc,
2431
+ ID as drawLine,
2432
+ mC as drawMText,
2433
+ GD as drawPolyLine,
2434
+ WD as drawPolygon,
2435
+ aC as drawText,
2436
+ V as getFilterImp,
2437
+ OD as loadMxCADassembly,
2438
+ fC as loadMxCADassembly3d,
2439
+ VD as mxErase,
2440
+ cD as saveAsFileDialog
2150
2441
  };