mxcad 1.0.68 → 1.0.69

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,11 +1,11 @@
1
- import qD, { MxFun as d, MrxDbgUiPrPoint as S, MxCursorType as _D, MrxDbgUtils as $D, store as aD, loadCoreCode as JD, MxPaintBrush as R, MrxDbgUiPrBaseReturn as x, MxDbCircleShape as uD, MxDbLine as J, MxDbPolyline as ZD, MxDbCircleArc as _, Mx3PointArc as YD, MxDbEllipseShape as QD, McEdGetPointWorldDrawObject as XD, MxDbEllipse as DC } from "mxdraw";
2
- function lD(E) {
1
+ import _D, { MxFun as h, MrxDbgUiPrPoint as S, MxCursorType as $D, MrxDbgUtils as JD, store as lD, loadCoreCode as ZD, MxPaintBrush as L, MrxDbgUiPrBaseReturn as x, MxDbCircleShape as cD, MxDbLine as Z, MxDbPolyline as YD, MxDbCircleArc as $, Mx3PointArc as QD, MxDbEllipseShape as XD, McEdGetPointWorldDrawObject as DC, MxDbEllipse as CC } from "mxdraw";
2
+ function mD(E) {
3
3
  return btoa(unescape(encodeURIComponent(E)));
4
4
  }
5
- function cD(E) {
5
+ function pD(E) {
6
6
  return decodeURIComponent(escape(atob(E)));
7
7
  }
8
- async function mD({
8
+ async function dD({
9
9
  blob: E,
10
10
  filename: D = "",
11
11
  types: C = [
@@ -46,24 +46,24 @@ async function mD({
46
46
  console.error(B.name, B.message);
47
47
  }
48
48
  }
49
- function pD(E, D) {
49
+ function hD(E, D) {
50
50
  const C = document.createElement("a");
51
51
  C.href = window.URL.createObjectURL(E), C.download = D, C.click();
52
52
  }
53
- function dD(E, D) {
53
+ function wD(E, D) {
54
54
  fetch(E).then((C) => C.blob()).then((C) => {
55
55
  const B = document.createElement("a");
56
56
  B.href = window.URL.createObjectURL(C), B.download = D, B.click();
57
57
  });
58
58
  }
59
- const N = {
60
- b64Encode: lD,
61
- b64Decode: cD,
62
- saveAsFileDialog: mD,
63
- downloadFile: pD,
64
- downloadFileFromUrl: dD
59
+ const _ = {
60
+ b64Encode: mD,
61
+ b64Decode: pD,
62
+ saveAsFileDialog: dD,
63
+ downloadFile: hD,
64
+ downloadFileFromUrl: wD
65
65
  };
66
- class CC {
66
+ class BC {
67
67
  z = "D2BBB6A18140C6DF814181428143CDF2D5C9C8FDC9CFCFC2D8A2B2BBD3EB8144D8A4B3F38145D7A8C7D2D8A7CAC08146C7F0B1FBD2B5B4D4B6ABCBBFD8A9814781488149B6AA814AC1BDD1CF814BC9A5D8AD814CB8F6D1BEE3DCD6D0814D814EB7E1814FB4AE8150C1D98151D8BC8152CDE8B5A4CEAAD6F78153C0F6BED9D8AF815481558156C4CB8157BEC38158D8B1C3B4D2E58159D6AECEDAD5A7BAF5B7A6C0D6815AC6B9C5D2C7C7815BB9D4815CB3CBD2D2815D815ED8BFBEC5C6F2D2B2CFB0CFE7815F816081618162CAE981638164D8C081658166816781688169816AC2F2C2D2816BC8E9816C816D816E816F817081718172817381748175C7AC8176817781788179817A817B817CC1CB817DD3E8D5F9817ECAC2B6FED8A1D3DABFF78180D4C6BBA5D8C1CEE5BEAE81818182D8A88183D1C7D0A9818481858186D8BDD9EFCDF6BFBA8187BDBBBAA5D2E0B2FABAE0C4B68188CFEDBEA9CDA4C1C18189818A818BC7D7D9F1818CD9F4818D818E818F8190C8CBD8E9819181928193D2DACAB2C8CAD8ECD8EAD8C6BDF6C6CDB3F08194D8EBBDF1BDE98195C8D4B4D381968197C2D88198B2D6D7D0CACBCBFBD5CCB8B6CFC98199819A819BD9DAD8F0C7AA819CD8EE819DB4FAC1EED2D4819E819FD8ED81A0D2C7D8EFC3C781A181A281A3D1F681A4D6D9D8F281A5D8F5BCFEBCDB81A681A781A8C8CE81A9B7DD81AAB7C281ABC6F381AC81AD81AE81AF81B081B181B2D8F8D2C181B381B4CEE9BCBFB7FCB7A5D0DD81B581B681B781B881B9D6DAD3C5BBEFBBE1D8F181BA81BBC9A1CEB0B4AB81BCD8F381BDC9CBD8F6C2D7D8F781BE81BFCEB1D8F981C081C181C2B2AEB9C081C3D9A381C4B0E981C5C1E681C6C9EC81C7CBC581C8CBC6D9A481C981CA81CB81CC81CDB5E881CE81CFB5AB81D081D181D281D381D481D5CEBBB5CDD7A1D7F4D3D381D6CCE581D7BACE81D8D9A2D9DCD3E0D8FDB7F0D7F7D8FED8FAD9A1C4E381D981DAD3B6D8F4D9DD81DBD8FB81DCC5E581DD81DEC0D081DF81E0D1F0B0DB81E181E2BCD1D9A681E3D9A581E481E581E681E7D9ACD9AE81E8D9ABCAB981E981EA81EBD9A9D6B681EC81ED81EEB3DED9A881EFC0FD81F0CACC81F1D9AA81F2D9A781F381F4D9B081F581F6B6B181F781F881F9B9A981FAD2C081FB81FCCFC081FD81FEC2C28240BDC4D5ECB2E0C7C8BFEBD9AD8241D9AF8242CEEABAEE82438244824582468247C7D682488249824A824B824C824D824E824F8250B1E3825182528253B4D9B6EDD9B48254825582568257BFA182588259825AD9DEC7CEC0FED9B8825B825C825D825E825FCBD7B7FD8260D9B58261D9B7B1A3D3E1D9B98262D0C58263D9B682648265D9B18266D9B2C1A9D9B382678268BCF3D0DEB8A98269BEE3826AD9BD826B826C826D826ED9BA826FB0B3827082718272D9C28273827482758276827782788279827A827B827C827D827E8280D9C4B1B68281D9BF82828283B5B98284BEF3828582868287CCC8BAF2D2D08288D9C38289828ABDE8828BB3AB828C828D828ED9C5BEEB828FD9C6D9BBC4DF8290D9BED9C1D9C0829182928293829482958296829782988299829A829BD5AE829CD6B5829DC7E3829E829F82A082A1D9C882A282A382A4BCD9D9CA82A582A682A7D9BC82A8D9CBC6AB82A982AA82AB82AC82ADD9C982AE82AF82B082B1D7F682B2CDA382B382B482B582B682B782B882B982BABDA182BB82BC82BD82BE82BF82C0D9CC82C182C282C382C482C582C682C782C882C9C5BCCDB582CA82CB82CCD9CD82CD82CED9C7B3A5BFFE82CF82D082D182D2B8B582D382D4C0FC82D582D682D782D8B0F882D982DA82DB82DC82DD82DE82DF82E082E182E282E382E482E582E682E782E882E982EA82EB82EC82EDB4F682EED9CE82EFD9CFB4A2D9D082F082F1B4DF82F282F382F482F582F6B0C182F782F882F982FA82FB82FC82FDD9D1C9B582FE8340834183428343834483458346834783488349834A834B834C834D834E834F83508351CFF1835283538354835583568357D9D283588359835AC1C5835B835C835D835E835F836083618362836383648365D9D6C9AE8366836783688369D9D5D9D4D9D7836A836B836C836DCBDB836EBDA9836F8370837183728373C6A7837483758376837783788379837A837B837C837DD9D3D9D8837E83808381D9D9838283838384838583868387C8E583888389838A838B838C838D838E838F839083918392839383948395C0DC8396839783988399839A839B839C839D839E839F83A083A183A283A383A483A583A683A783A883A983AA83AB83AC83AD83AE83AF83B083B183B2B6F9D8A3D4CA83B3D4AAD0D6B3E4D5D783B4CFC8B9E283B5BFCB83B6C3E283B783B883B9B6D283BA83BBCDC3D9EED9F083BC83BD83BEB5B383BFB6B583C083C183C283C383C4BEA483C583C6C8EB83C783C8C8AB83C983CAB0CBB9ABC1F9D9E283CBC0BCB9B283CCB9D8D0CBB1F8C6E4BEDFB5E4D7C883CDD1F8BCE6CADE83CE83CFBCBDD9E6D8E783D083D1C4DA83D283D3B8D4C8BD83D483D5B2E1D4D983D683D783D883D9C3B083DA83DBC3E1DAA2C8DF83DCD0B483DDBEFCC5A983DE83DF83E0B9DA83E1DAA383E2D4A9DAA483E383E483E583E683E7D9FBB6AC83E883E9B7EBB1F9D9FCB3E5BEF683EABFF6D2B1C0E483EB83EC83EDB6B3D9FED9FD83EE83EFBEBB83F083F183F2C6E083F3D7BCDAA183F4C1B983F5B5F2C1E883F683F7BCF583F8B4D583F983FA83FB83FC83FD83FE844084418442C1DD8443C4FD84448445BCB8B7B284468447B7EF84488449844A844B844C844DD9EC844EC6BE844FBFADBBCB84508451B5CA8452DBC9D0D78453CDB9B0BCB3F6BBF7DBCABAAF8454D4E4B5B6B5F3D8D6C8D084558456B7D6C7D0D8D78457BFAF84588459DBBBD8D8845A845BD0CCBBAE845C845D845EEBBEC1D0C1F5D4F2B8D5B4B4845FB3F584608461C9BE846284638464C5D0846584668467C5D9C0FB8468B1F08469D8D9B9CE846AB5BD846B846CD8DA846D846ED6C6CBA2C8AFC9B2B4CCBFCC846FB9F48470D8DBD8DCB6E7BCC1CCEA847184728473847484758476CFF78477D8DDC7B084788479B9D0BDA3847A847BCCDE847CC6CA847D847E848084818482D8E08483D8DE84848485D8DF848684878488B0FE8489BEE7848ACAA3BCF4848B848C848D848EB8B1848F8490B8EE849184928493849484958496849784988499849AD8E2849BBDCB849CD8E4D8E3849D849E849F84A084A1C5FC84A284A384A484A584A684A784A8D8E584A984AAD8E684AB84AC84AD84AE84AF84B084B1C1A684B2C8B0B0ECB9A6BCD3CEF1DBBDC1D384B384B484B584B6B6AFD6FAC5ACBDD9DBBEDBBF84B784B884B9C0F8BEA2C0CD84BA84BB84BC84BD84BE84BF84C084C184C284C3DBC0CAC684C484C584C6B2AA84C784C884C9D3C284CAC3E384CBD1AB84CC84CD84CE84CFDBC284D0C0D584D184D284D3DBC384D4BFB184D584D684D784D884D984DAC4BC84DB84DC84DD84DEC7DA84DF84E084E184E284E384E484E584E684E784E884E9DBC484EA84EB84EC84ED84EE84EF84F084F1D9E8C9D784F284F384F4B9B4CEF0D4C884F584F684F784F8B0FCB4D284F9D0D984FA84FB84FC84FDD9E984FEDECBD9EB8540854185428543D8B0BBAFB1B18544B3D7D8CE85458546D4D185478548BDB3BFEF8549CFBB854A854BD8D0854C854D854EB7CB854F85508551D8D185528553855485558556855785588559855A855BC6A5C7F8D2BD855C855DD8D2C4E4855ECAAE855FC7A78560D8A68561C9FDCEE7BBDCB0EB856285638564BBAAD0AD8565B1B0D7E4D7BF8566B5A5C2F4C4CF85678568B2A98569B2B7856AB1E5DFB2D5BCBFA8C2ACD8D5C2B1856BD8D4CED4856CDAE0856DCEC0856E856FD8B4C3AED3A1CEA38570BCB4C8B4C2D18571BEEDD0B68572DAE18573857485758576C7E485778578B3A78579B6F2CCFCC0FA857A857BC0F7857CD1B9D1E1D8C7857D857E85808581858285838584B2DE85858586C0E58587BAF185888589D8C8858AD4AD858B858CCFE1D8C9858DD8CACFC3858EB3F8BEC7858F859085918592D8CB8593859485958596859785988599DBCC859A859B859C859DC8A5859E859F85A0CFD885A1C8FEB2CE85A285A385A485A585A6D3D6B2E6BCB0D3D1CBABB7B485A785A885A9B7A285AA85ABCAE585ACC8A1CADCB1E4D0F085ADC5D185AE85AF85B0DBC5B5FE85B185B2BFDAB9C5BEE4C1ED85B3DFB6DFB5D6BBBDD0D5D9B0C8B6A3BFC9CCA8DFB3CAB7D3D285B4D8CFD2B6BAC5CBBECCBE85B5DFB7B5F0DFB485B685B785B8D3F585B9B3D4B8F785BADFBA85BBBACFBCAAB5F585BCCDACC3FBBAF3C0F4CDC2CFF2DFB8CFC585BDC2C0DFB9C2F085BE85BF85C0BEFD85C1C1DFCDCCD2F7B7CDDFC185C2DFC485C385C4B7F1B0C9B6D6B7D485C5BAACCCFDBFD4CBB1C6F485C6D6A8DFC585C7CEE2B3B385C885C9CEFCB4B585CACEC7BAF085CBCEE185CCD1BD85CD85CEDFC085CF85D0B4F485D1B3CA85D2B8E6DFBB85D385D485D585D6C4C585D7DFBCDFBDDFBEC5BBDFBFDFC2D4B1DFC385D8C7BACED885D985DA85DB85DC85DDC4D885DEDFCA85DFDFCF85E0D6DC85E185E285E385E485E585E685E785E8DFC9DFDACEB685E9BAC7DFCEDFC8C5DE85EA85EBC9EBBAF4C3FC85EC85EDBED785EEDFC685EFDFCD85F0C5D885F185F285F385F4D5A6BACD85F5BECCD3BDB8C085F6D6E485F7DFC7B9BEBFA785F885F9C1FCDFCBDFCC85FADFD085FB85FC85FD85FE8640DFDBDFE58641DFD7DFD6D7C9DFE3DFE4E5EBD2A7DFD28642BFA98643D4DB8644BFC8DFD4864586468647CFCC86488649DFDD864AD1CA864BDFDEB0A7C6B7DFD3864CBAE5864DB6DFCDDBB9FED4D5864E864FDFDFCFECB0A5DFE7DFD1D1C6DFD5DFD8DFD9DFDC8650BBA98651DFE0DFE18652DFE2DFE6DFE8D3B486538654865586568657B8E7C5B6DFEAC9DAC1A8C4C486588659BFDECFF8865A865B865CD5DCDFEE865D865E865F866086618662B2B88663BADFDFEC8664DBC18665D1E48666866786688669CBF4B4BD866AB0A6866B866C866D866E866FDFF1CCC6DFF286708671DFED867286738674867586768677DFE986788679867A867BDFEB867CDFEFDFF0BBBD867D867EDFF386808681DFF48682BBA38683CADBCEA8E0A7B3AA8684E0A6868586868687E0A186888689868A868BDFFE868CCDD9DFFC868DDFFA868EBFD0D7C4868FC9CC86908691DFF8B0A186928693869486958696DFFD869786988699869ADFFBE0A2869B869C869D869E869FE0A886A086A186A286A3B7C886A486A5C6A1C9B6C0B2DFF586A686A7C5BE86A8D8C4DFF9C4F686A986AA86AB86AC86AD86AEE0A3E0A4E0A5D0A586AF86B0E0B4CCE486B1E0B186B2BFA6E0AFCEB9E0ABC9C686B386B4C0AEE0AEBAEDBAB0E0A986B586B686B7DFF686B8E0B386B986BAE0B886BB86BC86BDB4ADE0B986BE86BFCFB2BAC886C0E0B086C186C286C386C486C586C686C7D0FA86C886C986CA86CB86CC86CD86CE86CF86D0E0AC86D1D4FB86D2DFF786D3C5E786D4E0AD86D5D3F786D6E0B6E0B786D786D886D986DA86DBE0C4D0E186DC86DD86DEE0BC86DF86E0E0C9E0CA86E186E286E3E0BEE0AAC9A4E0C186E4E0B286E586E686E786E886E9CAC8E0C386EAE0B586EBCECB86ECCBC3E0CDE0C6E0C286EDE0CB86EEE0BAE0BFE0C086EF86F0E0C586F186F2E0C7E0C886F3E0CC86F4E0BB86F586F686F786F886F9CBD4E0D586FAE0D6E0D286FB86FC86FD86FE87408741E0D0BCCE87428743E0D18744B8C2D8C587458746874787488749874A874B874CD0EA874D874EC2EF874F8750E0CFE0BD875187528753E0D4E0D387548755E0D78756875787588759E0DCE0D8875A875B875CD6F6B3B0875DD7EC875ECBBB875F8760E0DA8761CEFB876287638764BAD987658766876787688769876A876B876C876D876E876F8770E0E1E0DDD2AD87718772877387748775E0E287768777E0DBE0D9E0DF87788779E0E0877A877B877C877D877EE0DE8780E0E4878187828783C6F7D8ACD4EBE0E6CAC98784878587868787E0E587888789878A878BB8C1878C878D878E878FE0E7E0E887908791879287938794879587968797E0E9E0E387988799879A879B879C879D879EBABFCCE7879F87A087A1E0EA87A287A387A487A587A687A787A887A987AA87AB87AC87AD87AE87AF87B0CFF987B187B287B387B487B587B687B787B887B987BA87BBE0EB87BC87BD87BE87BF87C087C187C2C8C287C387C487C587C6BDC087C787C887C987CA87CB87CC87CD87CE87CF87D087D187D287D3C4D287D487D587D687D787D887D987DA87DB87DCE0EC87DD87DEE0ED87DF87E0C7F4CBC487E1E0EEBBD8D8B6D2F2E0EFCDC587E2B6DA87E387E487E587E687E787E8E0F187E9D4B087EA87EBC0A7B4D187EC87EDCEA7E0F087EE87EF87F0E0F2B9CC87F187F2B9FACDBCE0F387F387F487F5C6D4E0F487F6D4B287F7C8A6E0F6E0F587F887F987FA87FB87FC87FD87FE8840884188428843884488458846884788488849E0F7884A884BCDC1884C884D884ECAA5884F885088518852D4DADBD7DBD98853DBD8B9E7DBDCDBDDB5D888548855DBDA8856885788588859885ADBDBB3A1DBDF885B885CBBF8885DD6B7885EDBE0885F886088618862BEF988638864B7BB8865DBD0CCAEBFB2BBB5D7F8BFD38866886788688869886ABFE9886B886CBCE1CCB3DBDEB0D3CEEBB7D8D7B9C6C2886D886EC0A4886FCCB98870DBE7DBE1C6BADBE38871DBE88872C5F7887388748875DBEA88768877DBE9BFC088788879887ADBE6DBE5887B887C887D887E8880B4B9C0ACC2A2DBE2DBE48881888288838884D0CDDBED88858886888788888889C0DDDBF2888A888B888C888D888E888F8890B6E28891889288938894DBF3DBD2B9B8D4ABDBEC8895BFD1DBF08896DBD18897B5E68898DBEBBFE58899889A889BDBEE889CDBF1889D889E889FDBF988A088A188A288A388A488A588A688A788A8B9A1B0A388A988AA88AB88AC88AD88AE88AFC2F188B088B1B3C7DBEF88B288B3DBF888B4C6D2DBF488B588B6DBF5DBF7DBF688B788B8DBFE88B9D3F2B2BA88BA88BB88BCDBFD88BD88BE88BF88C088C188C288C388C4DCA488C5DBFB88C688C788C888C9DBFA88CA88CB88CCDBFCC5E0BBF988CD88CEDCA388CF88D0DCA588D1CCC388D288D388D4B6D1DDC088D588D688D7DCA188D8DCA288D988DA88DBC7B588DC88DD88DEB6E988DF88E088E1DCA788E288E388E488E5DCA688E6DCA9B1A488E788E8B5CC88E988EA88EB88EC88EDBFB088EE88EF88F088F188F2D1DF88F388F488F588F6B6C288F788F888F988FA88FB88FC88FD88FE894089418942894389448945DCA88946894789488949894A894B894CCBFAEBF3894D894E894FCBDC89508951CBFE895289538954CCC189558956895789588959C8FB895A895B895C895D895E895FDCAA89608961896289638964CCEEDCAB89658966896789688969896A896B896C896D896E896F897089718972897389748975DBD38976DCAFDCAC8977BEB38978CAFB8979897A897BDCAD897C897D897E89808981898289838984C9CAC4B989858986898789888989C7BDDCAE898A898B898CD4F6D0E6898D898E898F89908991899289938994C4ABB6D589958996899789988999899A899B899C899D899E899F89A089A189A289A389A489A589A6DBD489A789A889A989AAB1DA89AB89AC89ADDBD589AE89AF89B089B189B289B389B489B589B689B789B8DBD689B989BA89BBBABE89BC89BD89BE89BF89C089C189C289C389C489C589C689C789C889C9C8C089CA89CB89CC89CD89CE89CFCABFC8C989D0D7B389D1C9F989D289D3BFC789D489D5BAF889D689D7D2BC89D889D989DA89DB89DC89DD89DE89DFE2BA89E0B4A689E189E2B1B889E389E489E589E689E7B8B489E8CFC489E989EA89EB89ECD9E7CFA6CDE289ED89EED9EDB6E089EFD2B989F089F1B9BB89F289F389F489F5E2B9E2B789F6B4F389F7CCECCCABB7F289F8D8B2D1EBBABB89F9CAA789FA89FBCDB789FC89FDD2C4BFE4BCD0B6E189FEDEC58A408A418A428A43DEC6DBBC8A44D1D98A458A46C6E6C4CEB7EE8A47B7DC8A488A49BFFCD7E08A4AC6F58A4B8A4CB1BCDEC8BDB1CCD7DECA8A4DDEC98A4E8A4F8A508A518A52B5EC8A53C9DD8A548A55B0C28A568A578A588A598A5A8A5B8A5C8A5D8A5E8A5F8A608A618A62C5AEC5AB8A63C4CC8A64BCE9CBFD8A658A668A67BAC38A688A698A6AE5F9C8E7E5FACDFD8A6BD7B1B8BEC2E88A6CC8D18A6D8A6EE5FB8A6F8A708A718A72B6CABCCB8A738A74D1FDE6A18A75C3EE8A768A778A788A79E6A48A7A8A7B8A7C8A7DE5FEE6A5CDD78A7E8A80B7C1E5FCE5FDE6A38A818A82C4DDE6A88A838A84E6A78A858A868A878A888A898A8AC3C38A8BC6DE8A8C8A8DE6AA8A8E8A8F8A908A918A928A938A94C4B78A958A968A97E6A2CABC8A988A998A9A8A9BBDE3B9C3E6A6D0D5CEAF8A9C8A9DE6A9E6B08A9ED2A68A9FBDAAE6AD8AA08AA18AA28AA38AA4E6AF8AA5C0D18AA68AA7D2CC8AA88AA98AAABCA78AAB8AAC8AAD8AAE8AAF8AB08AB18AB28AB38AB48AB58AB6E6B18AB7D2F68AB88AB98ABAD7CB8ABBCDFE8ABCCDDEC2A6E6ABE6ACBDBFE6AEE6B38ABD8ABEE6B28ABF8AC08AC18AC2E6B68AC3E6B88AC48AC58AC68AC7C4EF8AC88AC98ACAC4C88ACB8ACCBEEAC9EF8ACD8ACEE6B78ACFB6F08AD08AD18AD2C3E48AD38AD48AD58AD68AD78AD88AD9D3E9E6B48ADAE6B58ADBC8A28ADC8ADD8ADE8ADF8AE0E6BD8AE18AE28AE3E6B98AE48AE58AE68AE78AE8C6C58AE98AEACDF1E6BB8AEB8AEC8AED8AEE8AEF8AF08AF18AF28AF38AF4E6BC8AF58AF68AF78AF8BBE98AF98AFA8AFB8AFC8AFD8AFE8B40E6BE8B418B428B438B44E6BA8B458B46C0B78B478B488B498B4A8B4B8B4C8B4D8B4E8B4FD3A4E6BFC9F4E6C38B508B51E6C48B528B538B548B55D0F68B568B578B588B598B5A8B5B8B5C8B5D8B5E8B5F8B608B618B628B638B648B658B668B67C3BD8B688B698B6A8B6B8B6C8B6D8B6EC3C4E6C28B6F8B708B718B728B738B748B758B768B778B788B798B7A8B7B8B7CE6C18B7D8B7E8B808B818B828B838B84E6C7CFB18B85EBF48B868B87E6CA8B888B898B8A8B8B8B8CE6C58B8D8B8EBCDEC9A98B8F8B908B918B928B938B94BCB58B958B96CFD38B978B988B998B9A8B9BE6C88B9CE6C98B9DE6CE8B9EE6D08B9F8BA08BA1E6D18BA28BA38BA4E6CBB5D58BA5E6CC8BA68BA7E6CF8BA88BA9C4DB8BAAE6C68BAB8BAC8BAD8BAE8BAFE6CD8BB08BB18BB28BB38BB48BB58BB68BB78BB88BB98BBA8BBB8BBC8BBD8BBE8BBF8BC08BC18BC28BC38BC48BC58BC6E6D28BC78BC88BC98BCA8BCB8BCC8BCD8BCE8BCF8BD08BD18BD2E6D4E6D38BD38BD48BD58BD68BD78BD88BD98BDA8BDB8BDC8BDD8BDE8BDF8BE08BE18BE28BE38BE48BE58BE68BE78BE88BE98BEA8BEB8BECE6D58BEDD9F88BEE8BEFE6D68BF08BF18BF28BF38BF48BF58BF68BF7E6D78BF88BF98BFA8BFB8BFC8BFD8BFE8C408C418C428C438C448C458C468C47D7D3E6DD8C48E6DEBFD7D4D08C49D7D6B4E6CBEFE6DAD8C3D7CED0A28C4AC3CF8C4B8C4CE6DFBCBEB9C2E6DBD1A78C4D8C4EBAA2C2CF8C4FD8AB8C508C518C52CAEBE5EE8C53E6DC8C54B7F58C558C568C578C58C8E68C598C5AC4F58C5B8C5CE5B2C4FE8C5DCBFCE5B3D5AC8C5ED3EECAD8B0B28C5FCBCECDEA8C608C61BAEA8C628C638C64E5B58C65E5B48C66D7DAB9D9D6E6B6A8CDF0D2CBB1A6CAB58C67B3E8C9F3BFCDD0FBCAD2E5B6BBC28C688C698C6ACFDCB9AC8C6B8C6C8C6D8C6ED4D78C6F8C70BAA6D1E7CFFCBCD28C71E5B7C8DD8C728C738C74BFEDB1F6CBDE8C758C76BCC58C77BCC4D2FAC3DCBFDC8C788C798C7A8C7BB8BB8C7C8C7D8C7EC3C28C80BAAED4A28C818C828C838C848C858C868C878C888C89C7DEC4AFB2EC8C8AB9D18C8B8C8CE5BBC1C88C8D8C8ED5AF8C8F8C908C918C928C93E5BC8C94E5BE8C958C968C978C988C998C9A8C9BB4E7B6D4CBC2D1B0B5BC8C9C8C9DCAD98C9EB7E28C9F8CA0C9E48CA1BDAB8CA28CA3CEBED7F08CA48CA58CA68CA7D0A18CA8C9D98CA98CAAB6FBE6D8BCE28CABB3BE8CACC9D08CADE6D9B3A28CAE8CAF8CB08CB1DECC8CB2D3C8DECD8CB3D2A28CB48CB58CB68CB7DECE8CB88CB98CBA8CBBBECD8CBC8CBDDECF8CBE8CBF8CC0CAACD2FCB3DFE5EAC4E1BEA1CEB2C4F2BED6C6A8B2E38CC18CC2BED38CC38CC4C7FCCCEBBDECCEDD8CC58CC6CABAC6C1E5ECD0BC8CC78CC88CC9D5B98CCA8CCB8CCCE5ED8CCD8CCE8CCF8CD0CAF48CD1CDC0C2C58CD2E5EF8CD3C2C4E5F08CD48CD58CD68CD78CD88CD98CDAE5F8CDCD8CDBC9BD8CDC8CDD8CDE8CDF8CE08CE18CE2D2D9E1A88CE38CE48CE58CE6D3EC8CE7CBEAC6F18CE88CE98CEA8CEB8CECE1AC8CED8CEE8CEFE1A7E1A98CF08CF1E1AAE1AF8CF28CF3B2ED8CF4E1ABB8DAE1ADE1AEE1B0B5BAE1B18CF58CF68CF78CF88CF9E1B3E1B88CFA8CFB8CFC8CFD8CFED1D28D40E1B6E1B5C1EB8D418D428D43E1B78D44D4C08D45E1B28D46E1BAB0B68D478D488D498D4AE1B48D4BBFF98D4CE1B98D4D8D4EE1BB8D4F8D508D518D528D538D54E1BE8D558D568D578D588D598D5AE1BC8D5B8D5C8D5D8D5E8D5F8D60D6C58D618D628D638D648D658D668D67CFBF8D688D69E1BDE1BFC2CD8D6AB6EB8D6BD3F88D6C8D6DC7CD8D6E8D6FB7E58D708D718D728D738D748D758D768D778D788D79BEFE8D7A8D7B8D7C8D7D8D7E8D80E1C0E1C18D818D82E1C7B3E78D838D848D858D868D878D88C6E98D898D8A8D8B8D8C8D8DB4DE8D8ED1C28D8F8D908D918D92E1C88D938D94E1C68D958D968D978D988D99E1C58D9AE1C3E1C28D9BB1C08D9C8D9D8D9ED5B8E1C48D9F8DA08DA18DA28DA3E1CB8DA48DA58DA68DA78DA88DA98DAA8DABE1CCE1CA8DAC8DAD8DAE8DAF8DB08DB18DB28DB3EFFA8DB48DB5E1D3E1D2C7B68DB68DB78DB88DB98DBA8DBB8DBC8DBD8DBE8DBF8DC0E1C98DC18DC2E1CE8DC3E1D08DC48DC58DC68DC78DC88DC98DCA8DCB8DCC8DCD8DCEE1D48DCFE1D1E1CD8DD08DD1E1CF8DD28DD38DD48DD5E1D58DD68DD78DD88DD98DDA8DDB8DDC8DDD8DDE8DDF8DE08DE18DE2E1D68DE38DE48DE58DE68DE78DE88DE98DEA8DEB8DEC8DED8DEE8DEF8DF08DF18DF28DF38DF48DF58DF68DF78DF8E1D78DF98DFA8DFBE1D88DFC8DFD8DFE8E408E418E428E438E448E458E468E478E488E498E4A8E4B8E4C8E4D8E4E8E4F8E508E518E528E538E548E55E1DA8E568E578E588E598E5A8E5B8E5C8E5D8E5E8E5F8E608E618E62E1DB8E638E648E658E668E678E688E69CEA18E6A8E6B8E6C8E6D8E6E8E6F8E708E718E728E738E748E758E76E7DD8E77B4A8D6DD8E788E79D1B2B3B28E7A8E7BB9A4D7F3C7C9BEDEB9AE8E7CCED78E7D8E7EB2EEDBCF8E80BCBAD2D1CBC8B0CD8E818E82CFEF8E838E848E858E868E87D9E3BDED8E888E89B1D2CAD0B2BC8E8ACBA7B7AB8E8BCAA68E8C8E8D8E8ECFA38E8F8E90E0F8D5CAE0FB8E918E92E0FAC5C1CCFB8E93C1B1E0F9D6E3B2AFD6C4B5DB8E948E958E968E978E988E998E9A8E9BB4F8D6A18E9C8E9D8E9E8E9F8EA0CFAFB0EF8EA18EA2E0FC8EA38EA48EA58EA68EA7E1A1B3A38EA88EA9E0FDE0FEC3B18EAA8EAB8EAC8EADC3DD8EAEE1A2B7F98EAF8EB08EB18EB28EB38EB4BBCF8EB58EB68EB78EB88EB98EBA8EBBE1A3C4BB8EBC8EBD8EBE8EBF8EC0E1A48EC18EC2E1A58EC38EC4E1A6B4B18EC58EC68EC78EC88EC98ECA8ECB8ECC8ECD8ECE8ECF8ED08ED18ED28ED3B8C9C6BDC4EA8ED4B2A28ED5D0D28ED6E7DBBBC3D3D7D3C48ED7B9E3E2CF8ED88ED98EDAD7AF8EDBC7ECB1D38EDC8EDDB4B2E2D18EDE8EDF8EE0D0F2C2AEE2D08EE1BFE2D3A6B5D7E2D2B5EA8EE2C3EDB8FD8EE3B8AE8EE4C5D3B7CFE2D48EE58EE68EE78EE8E2D3B6C8D7F98EE98EEA8EEB8EEC8EEDCDA58EEE8EEF8EF08EF18EF2E2D88EF3E2D6CAFCBFB5D3B9E2D58EF48EF58EF68EF7E2D78EF88EF98EFA8EFB8EFC8EFD8EFE8F408F418F42C1AEC0C88F438F448F458F468F478F48E2DBE2DAC0AA8F498F4AC1CE8F4B8F4C8F4D8F4EE2DC8F4F8F508F518F528F538F548F558F568F578F588F598F5AE2DD8F5BE2DE8F5C8F5D8F5E8F5F8F608F618F628F638F64DBC88F65D1D3CDA28F668F67BDA88F688F698F6ADEC3D8A5BFAADBCDD2ECC6FAC5AA8F6B8F6C8F6DDEC48F6EB1D7DFAE8F6F8F708F71CABD8F72DFB18F73B9AD8F74D2FD8F75B8A5BAEB8F768F77B3DA8F788F798F7AB5DCD5C58F7B8F7C8F7D8F7EC3D6CFD2BBA18F80E5F3E5F28F818F82E5F48F83CDE48F84C8F58F858F868F878F888F898F8A8F8BB5AFC7BF8F8CE5F68F8D8F8E8F8FECB08F908F918F928F938F948F958F968F978F988F998F9A8F9B8F9C8F9D8F9EE5E68F9FB9E9B5B18FA0C2BCE5E8E5E7E5E98FA18FA28FA38FA4D2CD8FA58FA68FA7E1EAD0CE8FA8CDAE8FA9D1E58FAA8FABB2CAB1EB8FACB1F2C5ED8FAD8FAED5C3D3B08FAFE1DC8FB08FB18FB2E1DD8FB3D2DB8FB4B3B9B1CB8FB58FB68FB7CDF9D5F7E1DE8FB8BEB6B4FD8FB9E1DFBADCE1E0BBB2C2C9E1E18FBA8FBB8FBCD0EC8FBDCDBD8FBE8FBFE1E28FC0B5C3C5C7E1E38FC18FC2E1E48FC38FC48FC58FC6D3F98FC78FC88FC98FCA8FCB8FCCE1E58FCDD1AD8FCE8FCFE1E6CEA28FD08FD18FD28FD38FD48FD5E1E78FD6B5C28FD78FD88FD98FDAE1E8BBD58FDB8FDC8FDD8FDE8FDFD0C4E2E0B1D8D2E48FE08FE1E2E18FE28FE3BCC9C8CC8FE4E2E3ECFEECFDDFAF8FE58FE68FE7E2E2D6BECDFCC3A68FE88FE98FEAE3C38FEB8FECD6D2E2E78FED8FEEE2E88FEF8FF0D3C78FF18FF2E2ECBFEC8FF3E2EDE2E58FF48FF5B3C08FF68FF78FF8C4EE8FF98FFAE2EE8FFB8FFCD0C38FFDBAF6E2E9B7DEBBB3CCACCBCBE2E4E2E6E2EAE2EB8FFE90409041E2F790429043E2F4D4F5E2F390449045C5AD9046D5FAC5C2B2C090479048E2EF9049E2F2C1AFCBBC904A904BB5A1E2F9904C904D904EBCB1E2F1D0D4D4B9E2F5B9D6E2F6904F90509051C7D390529053905490559056E2F0905790589059905A905BD7DCEDA1905C905DE2F8905EEDA5E2FECAD1905F906090619062906390649065C1B59066BBD090679068BFD69069BAE3906A906BCBA1906C906D906EEDA6EDA3906F9070EDA29071907290739074BBD6EDA7D0F490759076EDA4BADEB6F7E3A1B6B2CCF1B9A79077CFA2C7A190789079BFD2907A907BB6F1907CE2FAE2FBE2FDE2FCC4D5E3A2907DD3C1907E90809081E3A7C7C49082908390849085CFA490869087E3A9BAB790889089908A908BE3A8908CBBDA908DE3A3908E908F9090E3A4E3AA9091E3A69092CEF2D3C690939094BBBC90959096D4C39097C4FA90989099EDA8D0FCE3A5909AC3F5909BE3ADB1AF909CE3B2909D909E909FBCC290A090A1E3ACB5BF90A290A390A490A590A690A790A890A9C7E9E3B090AA90AB90ACBEAACDEF90AD90AE90AF90B090B1BBF390B290B390B4CCE890B590B6E3AF90B7E3B190B8CFA7E3AE90B9CEA9BBDD90BA90BB90BC90BD90BEB5EBBEE5B2D2B3CD90BFB1B9E3ABB2D1B5ACB9DFB6E890C090C1CFEBE3B790C2BBCC90C390C4C8C7D0CA90C590C690C790C890C9E3B8B3EE90CA90CB90CC90CDEDA990CED3FAD3E490CF90D090D1EDAAE3B9D2E290D290D390D490D590D6E3B590D790D890D990DAD3DE90DB90DC90DD90DEB8D0E3B390DF90E0E3B6B7DF90E1E3B4C0A290E290E390E4E3BA90E590E690E790E890E990EA90EB90EC90ED90EE90EF90F090F190F290F390F490F590F690F7D4B890F890F990FA90FB90FC90FD90FE9140B4C89141E3BB9142BBC59143C9F791449145C9E5914691479148C4BD9149914A914B914C914D914E914FEDAB9150915191529153C2FD9154915591569157BBDBBFAE91589159915A915B915C915D915ECEBF915F916091619162E3BC9163BFB6916491659166916791689169916A916B916C916D916E916F9170917191729173917491759176B1EF91779178D4F79179917A917B917C917DE3BE917E9180918191829183918491859186EDAD918791889189918A918B918C918D918E918FE3BFBAA9EDAC91909191E3BD91929193919491959196919791989199919A919BE3C0919C919D919E919F91A091A1BAB691A291A391A4B6AE91A591A691A791A891A9D0B891AAB0C3EDAE91AB91AC91AD91AE91AFEDAFC0C191B0E3C191B191B291B391B491B591B691B791B891B991BA91BB91BC91BD91BE91BF91C091C1C5B391C291C391C491C591C691C791C891C991CA91CB91CC91CD91CE91CFE3C291D091D191D291D391D491D591D691D791D8DCB291D991DA91DB91DC91DD91DEEDB091DFB8EA91E0CEECEAA7D0E7CAF9C8D6CFB7B3C9CED2BDE491E191E2E3DEBBF2EAA8D5BD91E3C6DDEAA991E491E591E6EAAA91E7EAACEAAB91E8EAAEEAAD91E991EA91EB91ECBDD891EDEAAF91EEC2BE91EF91F091F191F2B4C1B4F791F391F4BBA791F591F691F791F891F9ECE6ECE5B7BFCBF9B1E291FAECE791FB91FC91FDC9C8ECE8ECE991FECAD6DED0B2C5D4FA92409241C6CBB0C7B4F2C8D3924292439244CDD092459246BFB8924792489249924A924B924C924DBFDB924E924FC7A4D6B49250C0A9DED1C9A8D1EFC5A4B0E7B3B6C8C592519252B0E292539254B7F692559256C5FA92579258B6F39259D5D2B3D0BCBC925A925B925CB3AD925D925E925F9260BEF1B0D1926192629263926492659266D2D6CAE3D7A59267CDB6B6B6BFB9D5DB9268B8A7C5D79269926A926BDED2BFD9C2D5C7C0926CBBA4B1A8926D926EC5EA926F9270C5FBCCA79271927292739274B1A7927592769277B5D692789279927AC4A8927BDED3D1BAB3E9927CC3F2927D927EB7F79280D6F4B5A3B2F0C4B4C4E9C0ADDED49281B0E8C5C4C1E09282B9D59283BEDCCDD8B0CE9284CDCFDED6BED0D7BEDED5D5D0B0DD92859286C4E292879288C2A3BCF09289D3B5C0B9C5A1B2A6D4F1928A928BC0A8CAC3DED7D5FC928CB9B0928DC8ADCBA9928EDED9BFBD928F929092919292C6B4D7A7CAB0C4C39293B3D6B9D29294929592969297D6B8EAFCB0B492989299929A929BBFE6929C929DCCF4929E929F92A092A1CDDA92A292A392A4D6BFC2CE92A5CECECCA2D0AEC4D3B5B2DED8D5F5BCB7BBD392A692A7B0A492A8C5B2B4EC92A992AA92ABD5F192AC92ADEAFD92AE92AF92B092B192B292B3DEDACDA692B492B5CDEC92B692B792B892B9CEE6DEDC92BACDB1C0A692BB92BCD7BD92BDDEDBB0C6BAB4C9D3C4F3BEE892BE92BF92C092C1B2B692C292C392C492C592C692C792C892C9C0CCCBF092CABCF1BBBBB5B792CB92CC92CDC5F592CEDEE692CF92D092D1DEE3BEDD92D292D3DEDF92D492D592D692D7B4B7BDDD92D892D9DEE0C4ED92DA92DB92DC92DDCFC692DEB5E092DF92E092E192E2B6DECADAB5F4DEE592E3D5C692E4DEE1CCCDC6FE92E5C5C592E692E792E8D2B492E9BEF292EA92EB92EC92ED92EE92EF92F0C2D392F1CCBDB3B892F2BDD392F3BFD8CDC6D1DAB4EB92F4DEE4DEDDDEE792F5EAFE92F692F7C2B0DEE292F892F9D6C0B5A792FAB2F492FBDEE892FCDEF292FD92FE934093419342DEED9343DEF193449345C8E0934693479348D7E1DEEFC3E8CCE19349B2E5934A934B934CD2BE934D934E934F9350935193529353DEEE9354DEEBCED59355B4A79356935793589359935ABFABBEBE935B935CBDD2935D935E935F9360DEE99361D4AE9362DEDE9363DEEA9364936593669367C0BF9368DEECB2F3B8E9C2A79369936ABDC1936B936C936D936E936FDEF5DEF893709371B2ABB4A493729373B4EAC9A6937493759376937793789379DEF6CBD1937AB8E3937BDEF7DEFA937C937D937E9380DEF9938193829383CCC29384B0E1B4EE93859386938793889389938AE5BA938B938C938D938E938FD0AF93909391B2EB9392EBA19393DEF493949395C9E3DEF3B0DAD2A1B1F79396CCAF939793989399939A939B939C939DDEF0939ECBA4939F93A093A1D5AA93A293A393A493A593A6DEFB93A793A893A993AA93AB93AC93AD93AEB4DD93AFC4A693B093B193B2DEFD93B393B493B593B693B793B893B993BA93BB93BCC3FEC4A1DFA193BD93BE93BF93C093C193C293C3C1CC93C4DEFCBEEF93C5C6B293C693C793C893C993CA93CB93CC93CD93CEB3C5C8F693CF93D0CBBADEFE93D193D2DFA493D393D493D593D6D7B293D793D893D993DA93DBB3B793DC93DD93DE93DFC1C393E093E1C7CBB2A5B4E993E2D7AB93E393E493E593E6C4EC93E7DFA2DFA393E8DFA593E9BAB393EA93EB93ECDFA693EDC0DE93EE93EFC9C393F093F193F293F393F493F593F6B2D9C7E693F7DFA793F8C7DC93F993FA93FB93FCDFA8EBA293FD93FE944094419442CBD3944394449445DFAA9446DFA99447B2C194489449944A944B944C944D944E944F9450945194529453945494559456945794589459945A945B945C945D945E945F9460C5CA94619462946394649465946694679468DFAB9469946A946B946C946D946E946F9470D4DC94719472947394749475C8C19476947794789479947A947B947C947D947E948094819482DFAC94839484948594869487BEF094889489DFADD6A7948A948B948C948DEAB7EBB6CAD5948ED8FCB8C4948FB9A594909491B7C5D5FE94929493949494959496B9CA94979498D0A7F4CD9499949AB5D0949B949CC3F4949DBEC8949E949F94A0EBB7B0BD94A194A2BDCC94A3C1B294A4B1D6B3A894A594A694A7B8D2C9A294A894A9B6D894AA94AB94AC94ADEBB8BEB494AE94AF94B0CAFD94B1C7C394B2D5FB94B394B4B7F394B594B694B794B894B994BA94BB94BC94BD94BE94BF94C094C194C294C3CEC494C494C594C6D5ABB1F394C794C894C9ECB3B0DF94CAECB594CB94CC94CDB6B794CEC1CF94CFF5FAD0B194D094D1D5E594D2CED394D394D4BDEFB3E294D5B8AB94D6D5B694D7EDBD94D8B6CF94D9CBB9D0C294DA94DB94DC94DD94DE94DF94E094E1B7BD94E294E3ECB6CAA994E494E594E6C5D494E7ECB9ECB8C2C3ECB794E894E994EA94EBD0FDECBA94ECECBBD7E594ED94EEECBC94EF94F094F1ECBDC6EC94F294F394F494F594F694F794F894F9CEDE94FABCC894FB94FCC8D5B5A9BEC9D6BCD4E794FD94FED1AED0F1EAB8EAB9EABABAB59540954195429543CAB1BFF595449545CDFA9546954795489549954AEAC0954BB0BAEABE954C954DC0A5954E954F9550EABB9551B2FD9552C3F7BBE8955395549555D2D7CEF4EABF955695579558EABC9559955A955BEAC3955CD0C7D3B3955D955E955F9560B4BA9561C3C1D7F29562956395649565D5D19566CAC79567EAC595689569EAC4EAC7EAC6956A956B956C956D956ED6E7956FCFD495709571EACB9572BBCE9573957495759576957795789579BDFAC9CE957A957BEACC957C957DC9B9CFFEEACAD4CEEACDEACF957E9580CDED9581958295839584EAC99585EACE95869587CEEE9588BBDE9589B3BF958A958B958C958D958EC6D5BEB0CEFA958F95909591C7E79592BEA7EAD095939594D6C7959595969597C1C095989599959AD4DD959BEAD1959C959DCFBE959E959F95A095A1EAD295A295A395A495A5CAEE95A695A795A895A9C5AFB0B595AA95AB95AC95AD95AEEAD495AF95B095B195B295B395B495B595B695B7EAD3F4DF95B895B995BA95BB95BCC4BA95BD95BE95BF95C095C1B1A995C295C395C495C5E5DF95C695C795C895C9EAD595CA95CB95CC95CD95CE95CF95D095D195D295D395D495D595D695D795D895D995DA95DB95DC95DD95DE95DF95E095E195E295E3CAEF95E4EAD6EAD7C6D895E595E695E795E895E995EA95EB95ECEAD895ED95EEEAD995EF95F095F195F295F395F4D4BB95F5C7FAD2B7B8FC95F695F7EAC295F8B2DC95F995FAC2FC95FBD4F8CCE6D7EE95FC95FD95FE9640964196429643D4C2D3D0EBC3C5F39644B7FE96459646EBD4964796489649CBB7EBDE964AC0CA964B964C964DCDFB964EB3AF964FC6DA965096519652965396549655EBFC9656C4BE9657CEB4C4A9B1BED4FD9658CAF59659D6EC965A965BC6D3B6E4965C965D965E965FBBFA96609661D0E096629663C9B19664D4D3C8A896659666B8CB9667E8BEC9BC96689669E8BB966AC0EED0D3B2C4B4E5966BE8BC966C966DD5C8966E966F967096719672B6C59673E8BDCAF8B8DCCCF5967496759676C0B496779678D1EEE8BFE8C29679967ABABC967BB1ADBDDC967CEABDE8C3967DE8C6967EE8CB9680968196829683E8CC9684CBC9B0E59685BCAB96869687B9B996889689E8C1968ACDF7968BE8CA968C968D968E968FCEF69690969196929693D5ED9694C1D6E8C49695C3B69696B9FBD6A6E8C8969796989699CAE0D4E6969AE8C0969BE8C5E8C7969CC7B9B7E3969DE8C9969EBFDDE8D2969F96A0E8D796A1E8D5BCDCBCCFE8DB96A296A396A496A596A696A796A896A9E8DE96AAE8DAB1FA96AB96AC96AD96AE96AF96B096B196B296B396B4B0D8C4B3B8CCC6E2C8BEC8E196B596B696B7E8CFE8D4E8D696B8B9F1E8D8D7F596B9C4FB96BAE8DC96BB96BCB2E996BD96BE96BFE8D196C096C1BCED96C296C3BFC2E8CDD6F996C4C1F8B2F196C596C696C796C896C996CA96CB96CCE8DF96CDCAC1E8D996CE96CF96D096D1D5A496D2B1EAD5BBE8CEE8D0B6B0E8D396D3E8DDC0B896D4CAF796D5CBA896D696D7C6DCC0F596D896D996DA96DB96DCE8E996DD96DE96DFD0A396E096E196E296E396E496E596E6E8F2D6EA96E796E896E996EA96EB96EC96EDE8E0E8E196EE96EF96F0D1F9BACBB8F996F196F2B8F1D4D4E8EF96F3E8EEE8ECB9F0CCD2E8E6CEA6BFF296F4B0B8E8F1E8F096F5D7C096F6E8E496F7CDA9C9A396F8BBB8BDDBE8EA96F996FA96FB96FC96FD96FE9740974197429743E8E2E8E3E8E5B5B5E8E7C7C5E8EBE8EDBDB0D7AE9744E8F897459746974797489749974A974B974CE8F5974DCDB0E8F6974E974F9750975197529753975497559756C1BA9757E8E89758C3B7B0F09759975A975B975C975D975E975F9760E8F4976197629763E8F7976497659766B9A3976797689769976A976B976C976D976E976F9770C9D2977197729773C3CECEE0C0E69774977597769777CBF39778CCDDD0B59779977ACAE1977BE8F3977C977D977E9780978197829783978497859786BCEC9787E8F997889789978A978B978C978DC3DE978EC6E5978FB9F79790979197929793B0F497949795D7D897969797BCAC9798C5EF9799979A979B979C979DCCC4979E979FE9A697A097A197A297A397A497A597A697A797A897A9C9AD97AAE9A2C0E297AB97AC97ADBFC397AE97AF97B0E8FEB9D797B1E8FB97B297B397B497B5E9A497B697B797B8D2CE97B997BA97BB97BC97BDE9A397BED6B2D7B597BFE9A797C0BDB797C197C297C397C497C597C697C797C897C997CA97CB97CCE8FCE8FD97CD97CE97CFE9A197D097D197D297D397D497D597D697D7CDD697D897D9D2AC97DA97DB97DCE9B297DD97DE97DF97E0E9A997E197E297E3B4AA97E4B4BB97E597E6E9AB97E797E897E997EA97EB97EC97ED97EE97EF97F097F197F297F397F497F597F697F7D0A897F897F9E9A597FA97FBB3FE97FC97FDE9ACC0E397FEE9AA98409841E9B998429843E9B89844984598469847E9AE98489849E8FA984A984BE9A8984C984D984E984F9850BFACE9B1E9BA98519852C2A5985398549855E9AF9856B8C59857E9AD9858D3DCE9B4E9B5E9B79859985A985BE9C7985C985D985E985F98609861C0C6E9C598629863E9B098649865E9BBB0F19866986798689869986A986B986C986D986E986FE9BCD5A598709871E9BE9872E9BF987398749875E9C198769877C1F198789879C8B6987A987B987CE9BD987D987E988098819882E9C29883988498859886988798889889988AE9C3988BE9B3988CE9B6988DBBB1988E988F9890E9C0989198929893989498959896BCF7989798989899E9C4E9C6989A989B989C989D989E989F98A098A198A298A398A498A5E9CA98A698A798A898A9E9CE98AA98AB98AC98AD98AE98AF98B098B198B298B3B2DB98B4E9C898B598B698B798B898B998BA98BB98BC98BD98BEB7AE98BF98C098C198C298C398C498C598C698C798C898C998CAE9CBE9CC98CB98CC98CD98CE98CF98D0D5C198D1C4A398D298D398D498D598D698D7E9D898D8BAE198D998DA98DB98DCE9C998DDD3A398DE98DF98E0E9D498E198E298E398E498E598E698E7E9D7E9D098E898E998EA98EB98ECE9CF98ED98EEC7C198EF98F098F198F298F398F498F598F6E9D298F798F898F998FA98FB98FC98FDE9D9B3C898FEE9D399409941994299439944CFF0994599469947E9CD99489949994A994B994C994D994E994F995099519952B3F79953995499559956995799589959E9D6995A995BE9DA995C995D995ECCB4995F99609961CFAD99629963996499659966996799689969996AE9D5996BE9DCE9DB996C996D996E996F9970E9DE99719972997399749975997699779978E9D19979997A997B997C997D997E99809981E9DD9982E9DFC3CA9983998499859986998799889989998A998B998C998D998E998F9990999199929993999499959996999799989999999A999B999C999D999E999F99A099A199A299A399A499A599A699A799A899A999AA99AB99AC99AD99AE99AF99B099B199B299B399B499B599B699B799B899B999BA99BB99BC99BD99BE99BF99C099C199C299C399C499C599C699C799C899C999CA99CB99CC99CD99CE99CF99D099D199D299D399D499D599D699D799D899D999DA99DB99DC99DD99DE99DF99E099E199E299E399E499E599E699E799E899E999EA99EB99EC99ED99EE99EF99F099F199F299F399F499F5C7B7B4CEBBB6D0C0ECA399F699F7C5B799F899F999FA99FB99FC99FD99FE9A409A419A42D3FB9A439A449A459A46ECA49A47ECA5C6DB9A489A499A4ABFEE9A4B9A4C9A4D9A4EECA69A4F9A50ECA7D0AA9A51C7B89A529A53B8E89A549A559A569A579A589A599A5A9A5B9A5C9A5D9A5E9A5FECA89A609A619A629A639A649A659A669A67D6B9D5FDB4CBB2BDCEE4C6E79A689A69CDE19A6A9A6B9A6C9A6D9A6E9A6F9A709A719A729A739A749A759A769A77B4F59A78CBC0BCDF9A799A7A9A7B9A7CE9E2E9E3D1EAE9E59A7DB4F9E9E49A7ED1B3CAE2B2D09A80E9E89A819A829A839A84E9E6E9E79A859A86D6B39A879A889A89E9E9E9EA9A8A9A8B9A8C9A8D9A8EE9EB9A8F9A909A919A929A939A949A959A96E9EC9A979A989A999A9A9A9B9A9C9A9D9A9EECAFC5B9B6CE9A9FD2F39AA09AA19AA29AA39AA49AA59AA6B5EE9AA7BBD9ECB19AA89AA9D2E39AAA9AAB9AAC9AAD9AAECEE39AAFC4B89AB0C3BF9AB19AB2B6BED8B9B1C8B1CFB1D1C5FE9AB3B1D09AB4C3AB9AB59AB69AB79AB89AB9D5B19ABA9ABB9ABC9ABD9ABE9ABF9AC09AC1EBA4BAC19AC29AC39AC4CCBA9AC59AC69AC7EBA59AC8EBA79AC99ACA9ACBEBA89ACC9ACD9ACEEBA69ACF9AD09AD19AD29AD39AD49AD5EBA9EBABEBAA9AD69AD79AD89AD99ADAEBAC9ADBCACFD8B5C3F19ADCC3A5C6F8EBADC4CA9ADDEBAEEBAFEBB0B7D59ADE9ADF9AE0B7FA9AE1EBB1C7E29AE2EBB39AE3BAA4D1F5B0B1EBB2EBB49AE49AE59AE6B5AAC2C8C7E89AE7EBB59AE8CBAEE3DF9AE99AEAD3C09AEB9AEC9AED9AEED9DB9AEF9AF0CDA1D6ADC7F39AF19AF29AF3D9E0BBE39AF4BABAE3E29AF59AF69AF79AF89AF9CFAB9AFA9AFB9AFCE3E0C9C79AFDBAB99AFE9B409B41D1B4E3E1C8EAB9AFBDADB3D8CEDB9B429B43CCC09B449B459B46E3E8E3E9CDF49B479B489B499B4A9B4BCCAD9B4CBCB39B4DE3EA9B4EE3EB9B4F9B50D0DA9B519B529B53C6FBB7DA9B549B55C7DFD2CACED69B56E3E4E3EC9B57C9F2B3C19B589B59E3E79B5A9B5BC6E3E3E59B5C9B5DEDB3E3E69B5E9B5F9B609B61C9B39B62C5E69B639B649B65B9B59B66C3BB9B67E3E3C5BDC1A4C2D9B2D79B68E3EDBBA6C4AD9B69E3F0BEDA9B6A9B6BE3FBE3F5BAD39B6C9B6D9B6E9B6FB7D0D3CD9B70D6CED5D3B9C1D5B4D1D89B719B729B739B74D0B9C7F69B759B769B77C8AAB2B49B78C3DA9B799B7A9B7BE3EE9B7C9B7DE3FCE3EFB7A8E3F7E3F49B7E9B809B81B7BA9B829B83C5A29B84E3F6C5DDB2A8C6FC9B85C4E09B869B87D7A29B88C0E1E3F99B899B8AE3FAE3FDCCA9E3F39B8BD3BE9B8CB1C3EDB4E3F1E3F29B8DE3F8D0BAC6C3D4F3E3FE9B8E9B8FBDE09B909B91E4A79B929B93E4A69B949B959B96D1F3E4A39B97E4A99B989B999B9AC8F79B9B9B9C9B9D9B9ECFB49B9FE4A8E4AEC2E59BA09BA1B6B49BA29BA39BA49BA59BA69BA7BDF29BA8E4A29BA99BAABAE9E4AA9BAB9BACE4AC9BAD9BAEB6FDD6DEE4B29BAFE4AD9BB09BB19BB2E4A19BB3BBEECDDDC7A2C5C99BB49BB5C1F79BB6E4A49BB7C7B3BDACBDBDE4A59BB8D7C7B2E29BB9E4ABBCC3E4AF9BBABBEBE4B0C5A8E4B19BBB9BBC9BBD9BBED5E3BFA39BBFE4BA9BC0E4B79BC1E4BB9BC29BC3E4BD9BC49BC5C6D69BC69BC7BAC6C0CB9BC89BC99BCAB8A1E4B49BCB9BCC9BCD9BCED4A19BCF9BD0BAA3BDFE9BD19BD29BD3E4BC9BD49BD59BD69BD79BD8CDBF9BD99BDAC4F99BDB9BDCCFFBC9E69BDD9BDED3BF9BDFCFD19BE09BE1E4B39BE2E4B8E4B9CCE99BE39BE49BE59BE69BE7CCCE9BE8C0D4E4B5C1B0E4B6CED09BE9BBC1B5D39BEAC8F3BDA7D5C7C9ACB8A2E4CA9BEB9BECE4CCD1C49BED9BEED2BA9BEF9BF0BAAD9BF19BF2BAD49BF39BF49BF59BF69BF79BF8E4C3B5ED9BF99BFA9BFBD7CDE4C0CFFDE4BF9BFC9BFD9BFEC1DCCCCA9C409C419C429C43CAE79C449C459C469C47C4D79C48CCD4E4C89C499C4A9C4BE4C7E4C19C4CE4C4B5AD9C4D9C4ED3D99C4FE4C69C509C519C529C53D2F9B4E39C54BBB49C559C56C9EE9C57B4BE9C589C599C5ABBEC9C5BD1CD9C5CCCEDEDB59C5D9C5E9C5F9C609C619C629C639C64C7E59C659C669C679C68D4A89C69E4CBD7D5E4C29C6ABDA5E4C59C6B9C6CD3E69C6DE4C9C9F89C6E9C6FE4BE9C709C71D3E59C729C73C7FEB6C99C74D4FCB2B3E4D79C759C769C77CEC29C78E4CD9C79CEBC9C7AB8DB9C7B9C7CE4D69C7DBFCA9C7E9C809C81D3CE9C82C3EC9C839C849C859C869C879C889C899C8AC5C8E4D89C8B9C8C9C8D9C8E9C8F9C909C919C92CDC4E4CF9C939C949C959C96E4D4E4D59C97BAFE9C98CFE69C999C9AD5BF9C9B9C9C9C9DE4D29C9E9C9F9CA09CA19CA29CA39CA49CA59CA69CA79CA8E4D09CA99CAAE4CE9CAB9CAC9CAD9CAE9CAF9CB09CB19CB29CB39CB49CB59CB69CB79CB89CB9CDE5CAAA9CBA9CBB9CBCC0A39CBDBDA6E4D39CBE9CBFB8C89CC09CC19CC29CC39CC4E4E7D4B49CC59CC69CC79CC89CC99CCA9CCBE4DB9CCC9CCD9CCEC1EF9CCF9CD0E4E99CD19CD2D2E79CD39CD4E4DF9CD5E4E09CD69CD7CFAA9CD89CD99CDA9CDBCBDD9CDCE4DAE4D19CDDE4E59CDEC8DCE4E39CDF9CE0C4E7E4E29CE1E4E19CE29CE39CE4B3FCE4E89CE59CE69CE79CE8B5E19CE99CEA9CEBD7CC9CEC9CED9CEEE4E69CEFBBAC9CF0D7D2CCCFEBF89CF1E4E49CF29CF3B9F69CF49CF59CF6D6CDE4D9E4DCC2FAE4DE9CF7C2CBC0C4C2D09CF8B1F5CCB29CF99CFA9CFB9CFC9CFD9CFE9D409D419D429D43B5CE9D449D459D469D47E4EF9D489D499D4A9D4B9D4C9D4D9D4E9D4FC6AF9D509D519D52C6E19D539D54E4F59D559D569D579D589D59C2A99D5A9D5B9D5CC0ECD1DDE4EE9D5D9D5E9D5F9D609D619D629D639D649D659D66C4AE9D679D689D69E4ED9D6A9D6B9D6C9D6DE4F6E4F4C2FE9D6EE4DD9D6FE4F09D70CAFE9D71D5C49D729D73E4F19D749D759D769D779D789D799D7AD1FA9D7B9D7C9D7D9D7E9D809D819D82E4EBE4EC9D839D849D85E4F29D86CEAB9D879D889D899D8A9D8B9D8C9D8D9D8E9D8F9D90C5CB9D919D929D93C7B19D94C2BA9D959D969D97E4EA9D989D999D9AC1CA9D9B9D9C9D9D9D9E9D9F9DA0CCB6B3B19DA19DA29DA3E4FB9DA4E4F39DA59DA69DA7E4FA9DA8E4FD9DA9E4FC9DAA9DAB9DAC9DAD9DAE9DAF9DB0B3CE9DB19DB29DB3B3BAE4F79DB49DB5E4F9E4F8C5EC9DB69DB79DB89DB99DBA9DBB9DBC9DBD9DBE9DBF9DC09DC19DC2C0BD9DC39DC49DC59DC6D4E89DC79DC89DC99DCA9DCBE5A29DCC9DCD9DCE9DCF9DD09DD19DD29DD39DD49DD59DD6B0C49DD79DD8E5A49DD99DDAE5A39DDB9DDC9DDD9DDE9DDF9DE0BCA49DE1E5A59DE29DE39DE49DE59DE69DE7E5A19DE89DE99DEA9DEB9DEC9DED9DEEE4FEB1F49DEF9DF09DF19DF29DF39DF49DF59DF69DF79DF89DF9E5A89DFAE5A9E5A69DFB9DFC9DFD9DFE9E409E419E429E439E449E459E469E47E5A7E5AA9E489E499E4A9E4B9E4C9E4D9E4E9E4F9E509E519E529E539E549E559E569E579E589E599E5A9E5B9E5C9E5D9E5E9E5F9E609E619E629E639E649E659E669E679E68C6D99E699E6A9E6B9E6C9E6D9E6E9E6F9E70E5ABE5AD9E719E729E739E749E759E769E77E5AC9E789E799E7A9E7B9E7C9E7D9E7E9E809E819E829E839E849E859E869E879E889E89E5AF9E8A9E8B9E8CE5AE9E8D9E8E9E8F9E909E919E929E939E949E959E969E979E989E999E9A9E9B9E9C9E9D9E9EB9E09E9F9EA0E5B09EA19EA29EA39EA49EA59EA69EA79EA89EA99EAA9EAB9EAC9EAD9EAEE5B19EAF9EB09EB19EB29EB39EB49EB59EB69EB79EB89EB99EBABBF0ECE1C3F09EBBB5C6BBD29EBC9EBD9EBE9EBFC1E9D4EE9EC0BEC49EC19EC29EC3D7C69EC4D4D6B2D3ECBE9EC59EC69EC79EC8EAC19EC99ECA9ECBC2AFB4B69ECC9ECD9ECED1D79ECF9ED09ED1B3B49ED2C8B2BFBBECC09ED39ED4D6CB9ED59ED6ECBFECC19ED79ED89ED99EDA9EDB9EDC9EDD9EDE9EDF9EE09EE19EE29EE3ECC5BEE6CCBFC5DABEBC9EE4ECC69EE5B1FE9EE69EE79EE8ECC4D5A8B5E39EE9ECC2C1B6B3E39EEA9EEBECC3CBB8C0C3CCFE9EEC9EED9EEE9EEFC1D29EF0ECC89EF19EF29EF39EF49EF59EF69EF79EF89EF99EFA9EFB9EFC9EFDBAE6C0D39EFED6F29F409F419F42D1CC9F439F449F459F46BFBE9F47B7B3C9D5ECC7BBE29F48CCCCBDFDC8C89F49CFA99F4A9F4B9F4C9F4D9F4E9F4F9F50CDE99F51C5EB9F529F539F54B7E99F559F569F579F589F599F5A9F5B9F5C9F5D9F5E9F5FD1C9BAB89F609F619F629F639F64ECC99F659F66ECCA9F67BBC0ECCB9F68ECE2B1BAB7D99F699F6A9F6B9F6C9F6D9F6E9F6F9F709F719F729F73BDB99F749F759F769F779F789F799F7A9F7BECCCD1E6ECCD9F7C9F7D9F7E9F80C8BB9F819F829F839F849F859F869F879F889F899F8A9F8B9F8C9F8D9F8EECD19F8F9F909F919F92ECD39F93BBCD9F94BCE59F959F969F979F989F999F9A9F9B9F9C9F9D9F9E9F9F9FA09FA1ECCF9FA2C9B79FA39FA49FA59FA69FA7C3BA9FA8ECE3D5D5ECD09FA99FAA9FAB9FAC9FADD6F39FAE9FAF9FB0ECD2ECCE9FB19FB29FB39FB4ECD49FB5ECD59FB69FB7C9BF9FB89FB99FBA9FBB9FBC9FBDCFA89FBE9FBF9FC09FC19FC2D0DC9FC39FC49FC59FC6D1AC9FC79FC89FC99FCAC8DB9FCB9FCC9FCDECD6CEF59FCE9FCF9FD09FD19FD2CAECECDA9FD39FD49FD59FD69FD79FD89FD9ECD99FDA9FDB9FDCB0BE9FDD9FDE9FDF9FE09FE19FE2ECD79FE3ECD89FE49FE59FE6ECE49FE79FE89FE99FEA9FEB9FEC9FED9FEE9FEFC8BC9FF09FF19FF29FF39FF49FF59FF69FF79FF89FF9C1C79FFA9FFB9FFC9FFD9FFEECDCD1E0A040A041A042A043A044A045A046A047A048A049ECDBA04AA04BA04CA04DD4EFA04EECDDA04FA050A051A052A053A054DBC6A055A056A057A058A059A05AA05BA05CA05DA05EECDEA05FA060A061A062A063A064A065A066A067A068A069A06AB1ACA06BA06CA06DA06EA06FA070A071A072A073A074A075A076A077A078A079A07AA07BA07CA07DA07EA080A081ECDFA082A083A084A085A086A087A088A089A08AA08BECE0A08CD7A6A08DC5C0A08EA08FA090EBBCB0AEA091A092A093BEF4B8B8D2AFB0D6B5F9A094D8B3A095CBACA096E3DDA097A098A099A09AA09BA09CA09DC6ACB0E6A09EA09FA0A0C5C6EBB9A0A1A0A2A0A3A0A4EBBAA0A5A0A6A0A7EBBBA0A8A0A9D1C0A0AAC5A3A0ABEAF2A0ACC4B2A0ADC4B5C0CEA0AEA0AFA0B0EAF3C4C1A0B1CEEFA0B2A0B3A0B4A0B5EAF0EAF4A0B6A0B7C9FCA0B8A0B9C7A3A0BAA0BBA0BCCCD8CEFEA0BDA0BEA0BFEAF5EAF6CFACC0E7A0C0A0C1EAF7A0C2A0C3A0C4A0C5A0C6B6BFEAF8A0C7EAF9A0C8EAFAA0C9A0CAEAFBA0CBA0CCA0CDA0CEA0CFA0D0A0D1A0D2A0D3A0D4A0D5A0D6EAF1A0D7A0D8A0D9A0DAA0DBA0DCA0DDA0DEA0DFA0E0A0E1A0E2C8AEE1EBA0E3B7B8E1ECA0E4A0E5A0E6E1EDA0E7D7B4E1EEE1EFD3CCA0E8A0E9A0EAA0EBA0ECA0EDA0EEE1F1BFF1E1F0B5D2A0EFA0F0A0F1B1B7A0F2A0F3A0F4A0F5E1F3E1F2A0F6BAFCA0F7E1F4A0F8A0F9A0FAA0FBB9B7A0FCBED1A0FDA0FEAA40AA41C4FCAA42BADDBDC6AA43AA44AA45AA46AA47AA48E1F5E1F7AA49AA4AB6C0CFC1CAA8E1F6D5F8D3FCE1F8E1FCE1F9AA4BAA4CE1FAC0EAAA4DE1FEE2A1C0C7AA4EAA4FAA50AA51E1FBAA52E1FDAA53AA54AA55AA56AA57AA58E2A5AA59AA5AAA5BC1D4AA5CAA5DAA5EAA5FE2A3AA60E2A8B2FEE2A2AA61AA62AA63C3CDB2C2E2A7E2A6AA64AA65E2A4E2A9AA66AA67E2ABAA68AA69AA6AD0C9D6EDC3A8E2ACAA6BCFD7AA6CAA6DE2AEAA6EAA6FBAEFAA70AA71E9E0E2ADE2AAAA72AA73AA74AA75BBABD4B3AA76AA77AA78AA79AA7AAA7BAA7CAA7DAA7EAA80AA81AA82AA83E2B0AA84AA85E2AFAA86E9E1AA87AA88AA89AA8AE2B1AA8BAA8CAA8DAA8EAA8FAA90AA91AA92E2B2AA93AA94AA95AA96AA97AA98AA99AA9AAA9BAA9CAA9DE2B3CCA1AA9EE2B4AA9FAAA0AB40AB41AB42AB43AB44AB45AB46AB47AB48AB49AB4AAB4BE2B5AB4CAB4DAB4EAB4FAB50D0FEAB51AB52C2CAAB53D3F1AB54CDF5AB55AB56E7E0AB57AB58E7E1AB59AB5AAB5BAB5CBEC1AB5DAB5EAB5FAB60C2EAAB61AB62AB63E7E4AB64AB65E7E3AB66AB67AB68AB69AB6AAB6BCDE6AB6CC3B5AB6DAB6EE7E2BBB7CFD6AB6FC1E1E7E9AB70AB71AB72E7E8AB73AB74E7F4B2A3AB75AB76AB77AB78E7EAAB79E7E6AB7AAB7BAB7CAB7DAB7EE7ECE7EBC9BAAB80AB81D5E4AB82E7E5B7A9E7E7AB83AB84AB85AB86AB87AB88AB89E7EEAB8AAB8BAB8CAB8DE7F3AB8ED6E9AB8FAB90AB91AB92E7EDAB93E7F2AB94E7F1AB95AB96AB97B0E0AB98AB99AB9AAB9BE7F5AB9CAB9DAB9EAB9FABA0AC40AC41AC42AC43AC44AC45AC46AC47AC48AC49AC4AC7F2AC4BC0C5C0EDAC4CAC4DC1F0E7F0AC4EAC4FAC50AC51E7F6CBF6AC52AC53AC54AC55AC56AC57AC58AC59AC5AE8A2E8A1AC5BAC5CAC5DAC5EAC5FAC60D7C1AC61AC62E7FAE7F9AC63E7FBAC64E7F7AC65E7FEAC66E7FDAC67E7FCAC68AC69C1D5C7D9C5FDC5C3AC6AAC6BAC6CAC6DAC6EC7EDAC6FAC70AC71AC72E8A3AC73AC74AC75AC76AC77AC78AC79AC7AAC7BAC7CAC7DAC7EAC80AC81AC82AC83AC84AC85AC86E8A6AC87E8A5AC88E8A7BAF7E7F8E8A4AC89C8F0C9AAAC8AAC8BAC8CAC8DAC8EAC8FAC90AC91AC92AC93AC94AC95AC96E8A9AC97AC98B9E5AC99AC9AAC9BAC9CAC9DD1FEE8A8AC9EAC9FACA0AD40AD41AD42E8AAAD43E8ADE8AEAD44C1A7AD45AD46AD47E8AFAD48AD49AD4AE8B0AD4BAD4CE8ACAD4DE8B4AD4EAD4FAD50AD51AD52AD53AD54AD55AD56AD57AD58E8ABAD59E8B1AD5AAD5BAD5CAD5DAD5EAD5FAD60AD61E8B5E8B2E8B3AD62AD63AD64AD65AD66AD67AD68AD69AD6AAD6BAD6CAD6DAD6EAD6FAD70AD71E8B7AD72AD73AD74AD75AD76AD77AD78AD79AD7AAD7BAD7CAD7DAD7EAD80AD81AD82AD83AD84AD85AD86AD87AD88AD89E8B6AD8AAD8BAD8CAD8DAD8EAD8FAD90AD91AD92B9CFAD93F0ACAD94F0ADAD95C6B0B0EAC8BFAD96CDDFAD97AD98AD99AD9AAD9BAD9CAD9DCECDEAB1AD9EAD9FADA0AE40EAB2AE41C6BFB4C9AE42AE43AE44AE45AE46AE47AE48EAB3AE49AE4AAE4BAE4CD5E7AE4DAE4EAE4FAE50AE51AE52AE53AE54DDF9AE55EAB4AE56EAB5AE57EAB6AE58AE59AE5AAE5BB8CADFB0C9F5AE5CCCF0AE5DAE5EC9FAAE5FAE60AE61AE62AE63C9FBAE64AE65D3C3CBA6AE66B8A6F0AEB1C2AE67E5B8CCEFD3C9BCD7C9EAAE68B5E7AE69C4D0B5E9AE6AEEAEBBADAE6BAE6CE7DEAE6DEEAFAE6EAE6FAE70AE71B3A9AE72AE73EEB2AE74AE75EEB1BDE7AE76EEB0CEB7AE77AE78AE79AE7AC5CFAE7BAE7CAE7DAE7EC1F4DBCEEEB3D0F3AE80AE81AE82AE83AE84AE85AE86AE87C2D4C6E8AE88AE89AE8AB7ACAE8BAE8CAE8DAE8EAE8FAE90AE91EEB4AE92B3EBAE93AE94AE95BBFBEEB5AE96AE97AE98AE99AE9AE7DCAE9BAE9CAE9DEEB6AE9EAE9FBDAEAEA0AF40AF41AF42F1E2AF43AF44AF45CAE8AF46D2C9F0DAAF47F0DBAF48F0DCC1C6AF49B8EDBECEAF4AAF4BF0DEAF4CC5B1F0DDD1F1AF4DF0E0B0CCBDEAAF4EAF4FAF50AF51AF52D2DFF0DFAF53B4AFB7E8F0E6F0E5C6A3F0E1F0E2B4C3AF54AF55F0E3D5EEAF56AF57CCDBBED2BCB2AF58AF59AF5AF0E8F0E7F0E4B2A1AF5BD6A2D3B8BEB7C8ACAF5CAF5DF0EAAF5EAF5FAF60AF61D1F7AF62D6CCBADBF0E9AF63B6BBAF64AF65CDB4AF66AF67C6A6AF68AF69AF6AC1A1F0EBF0EEAF6BF0EDF0F0F0ECAF6CBBBEF0EFAF6DAF6EAF6FAF70CCB5F0F2AF71AF72B3D5AF73AF74AF75AF76B1D4AF77AF78F0F3AF79AF7AF0F4F0F6B4E1AF7BF0F1AF7CF0F7AF7DAF7EAF80AF81F0FAAF82F0F8AF83AF84AF85F0F5AF86AF87AF88AF89F0FDAF8AF0F9F0FCF0FEAF8BF1A1AF8CAF8DAF8ECEC1F1A4AF8FF1A3AF90C1F6F0FBCADDAF91AF92B4F1B1F1CCB1AF93F1A6AF94AF95F1A7AF96AF97F1ACD5CEF1A9AF98AF99C8B3AF9AAF9BAF9CF1A2AF9DF1ABF1A8F1A5AF9EAF9FF1AAAFA0B040B041B042B043B044B045B046B0A9F1ADB047B048B049B04AB04BB04CF1AFB04DF1B1B04EB04FB050B051B052F1B0B053F1AEB054B055B056B057D1A2B058B059B05AB05BB05CB05DB05EF1B2B05FB060B061F1B3B062B063B064B065B066B067B068B069B9EFB06AB06BB5C7B06CB0D7B0D9B06DB06EB06FD4EDB070B5C4B071BDD4BBCAF0A7B072B073B8DEB074B075F0A8B076B077B0A8B078F0A9B079B07ACDEEB07BB07CF0AAB07DB07EB080B081B082B083B084B085B086B087F0ABB088B089B08AB08BB08CB08DB08EB08FB090C6A4B091B092D6E5F1E4B093F1E5B094B095B096B097B098B099B09AB09BB09CB09DC3F3B09EB09FD3DBB0A0B140D6D1C5E8B141D3AFB142D2E6B143B144EEC1B0BBD5B5D1CEBCE0BAD0B145BFF8B146B8C7B5C1C5CCB147B148CAA2B149B14AB14BC3CBB14CB14DB14EB14FB150EEC2B151B152B153B154B155B156B157B158C4BFB6A2B159EDECC3A4B15AD6B1B15BB15CB15DCFE0EDEFB15EB15FC5CEB160B6DCB161B162CAA1B163B164EDEDB165B166EDF0EDF1C3BCB167BFB4B168EDEEB169B16AB16BB16CB16DB16EB16FB170B171B172B173EDF4EDF2B174B175B176B177D5E6C3DFB178EDF3B179B17AB17BEDF6B17CD5A3D1A3B17DB17EB180EDF5B181C3D0B182B183B184B185B186EDF7BFF4BEECEDF8B187CCF7B188D1DBB189B18AB18BD7C5D5F6B18CEDFCB18DB18EB18FEDFBB190B191B192B193B194B195B196B197EDF9EDFAB198B199B19AB19BB19CB19DB19EB19FEDFDBEA6B1A0B240B241B242B243CBAFEEA1B6BDB244EEA2C4C0B245EDFEB246B247BDDEB2C7B248B249B24AB24BB24CB24DB24EB24FB250B251B252B253B6C3B254B255B256EEA5D8BAEEA3EEA6B257B258B259C3E9B3F2B25AB25BB25CB25DB25EB25FEEA7EEA4CFB9B260B261EEA8C2F7B262B263B264B265B266B267B268B269B26AB26BB26CB26DEEA9EEAAB26EDEABB26FB270C6B3B271C7C6B272D6F5B5C9B273CBB2B274B275B276EEABB277B278CDABB279EEACB27AB27BB27CB27DB27ED5B0B280EEADB281F6C4B282B283B284B285B286B287B288B289B28AB28BB28CB28DB28EDBC7B28FB290B291B292B293B294B295B296B297B4A3B298B299B29AC3ACF1E6B29BB29CB29DB29EB29FCAB8D2D3B2A0D6AAB340EFF2B341BED8B342BDC3EFF3B6CCB0ABB343B344B345B346CAAFB347B348EDB6B349EDB7B34AB34BB34CB34DCEF9B7AFBFF3EDB8C2EBC9B0B34EB34FB350B351B352B353EDB9B354B355C6F6BFB3B356B357B358EDBCC5F8B359D1D0B35AD7A9EDBAEDBBB35BD1E2B35CEDBFEDC0B35DEDC4B35EB35FB360EDC8B361EDC6EDCED5E8B362EDC9B363B364EDC7EDBEB365B366C5E9B367B368B369C6C6B36AB36BC9E9D4D2EDC1EDC2EDC3EDC5B36CC0F9B36DB4A1B36EB36FB370B371B9E8B372EDD0B373B374B375B376EDD1B377EDCAB378EDCFB379CEF8B37AB37BCBB6EDCCEDCDB37CB37DB37EB380B381CFF5B382B383B384B385B386B387B388B389B38AB38BB38CB38DEDD2C1F2D3B2EDCBC8B7B38EB38FB390B391B392B393B394B395BCEFB396B397B398B399C5F0B39AB39BB39CB39DB39EB39FB3A0B440B441B442EDD6B443B5EFB444B445C2B5B0ADCBE9B446B447B1AEB448EDD4B449B44AB44BCDEBB5E2B44CEDD5EDD3EDD7B44DB44EB5FAB44FEDD8B450EDD9B451EDDCB452B1CCB453B454B455B456B457B458B459B45AC5F6BCEEEDDACCBCB2EAB45BB45CB45DB45EEDDBB45FB460B461B462C4EBB463B464B4C5B465B466B467B0F5B468B469B46AEDDFC0DAB4E8B46BB46CB46DB46EC5CDB46FB470B471EDDDBFC4B472B473B474EDDEB475B476B477B478B479B47AB47BB47CB47DB47EB480B481B482B483C4A5B484B485B486EDE0B487B488B489B48AB48BEDE1B48CEDE3B48DB48EC1D7B48FB490BBC7B491B492B493B494B495B496BDB8B497B498B499EDE2B49AB49BB49CB49DB49EB49FB4A0B540B541B542B543B544B545EDE4B546B547B548B549B54AB54BB54CB54DB54EB54FEDE6B550B551B552B553B554EDE5B555B556B557B558B559B55AB55BB55CB55DB55EB55FB560B561B562B563EDE7B564B565B566B567B568CABEECEAC0F1B569C9E7B56AECEBC6EEB56BB56CB56DB56EECECB56FC6EDECEDB570B571B572B573B574B575B576B577B578ECF0B579B57AD7E6ECF3B57BB57CECF1ECEEECEFD7A3C9F1CBEEECF4B57DECF2B57EB580CFE9B581ECF6C6B1B582B583B584B585BCC0B586ECF5B587B588B589B58AB58BB58CB58DB5BBBBF6B58EECF7B58FB590B591B592B593D9F7BDFBB594B595C2BBECF8B596B597B598B599ECF9B59AB59BB59CB59DB8A3B59EB59FB5A0B640B641B642B643B644B645B646ECFAB647B648B649B64AB64BB64CB64DB64EB64FB650B651B652ECFBB653B654B655B656B657B658B659B65AB65BB65CB65DECFCB65EB65FB660B661B662D3EDD8AEC0EBB663C7DDBACCB664D0E3CBBDB665CDBAB666B667B8D1B668B669B1FCB66AC7EFB66BD6D6B66CB66DB66EBFC6C3EBB66FB670EFF5B671B672C3D8B673B674B675B676B677B678D7E2B679B67AB67BEFF7B3D3B67CC7D8D1EDB67DD6C8B67EEFF8B680EFF6B681BBFDB3C6B682B683B684B685B686B687B688BDD5B689B68AD2C6B68BBBE0B68CB68DCFA1B68EEFFCEFFBB68FB690EFF9B691B692B693B694B3CCB695C9D4CBB0B696B697B698B699B69AEFFEB69BB69CB0DEB69DB69ED6C9B69FB6A0B740EFFDB741B3EDB742B743F6D5B744B745B746B747B748B749B74AB74BB74CB74DB74EB74FB750B751B752CEC8B753B754B755F0A2B756F0A1B757B5BEBCDABBFCB758B8E5B759B75AB75BB75CB75DB75EC4C2B75FB760B761B762B763B764B765B766B767B768F0A3B769B76AB76BB76CB76DCBEBB76EB76FB770B771B772B773B774B775B776B777B778B779B77AB77BB77CB77DB77EB780B781B782B783B784B785B786F0A6B787B788B789D1A8B78ABEBFC7EEF1B6F1B7BFD5B78BB78CB78DB78EB4A9F1B8CDBBB78FC7D4D5ADB790F1B9B791F1BAB792B793B794B795C7CFB796B797B798D2A4D6CFB799B79AF1BBBDD1B4B0BEBDB79BB79CB79DB4DCCED1B79EBFDFF1BDB79FB7A0B840B841BFFAF1BCB842F1BFB843B844B845F1BEF1C0B846B847B848B849B84AF1C1B84BB84CB84DB84EB84FB850B851B852B853B854B855C1FEB856B857B858B859B85AB85BB85CB85DB85EB85FB860C1A2B861B862B863B864B865B866B867B868B869B86ACAFAB86BB86CD5BEB86DB86EB86FB870BEBABEB9D5C2B871B872BFA2B873CDAFF1B5B874B875B876B877B878B879BDDFB87AB6CBB87BB87CB87DB87EB880B881B882B883B884D6F1F3C3B885B886F3C4B887B8CDB888B889B88AF3C6F3C7B88BB0CAB88CF3C5B88DF3C9CBF1B88EB88FB890F3CBB891D0A6B892B893B1CAF3C8B894B895B896F3CFB897B5D1B898B899F3D7B89AF3D2B89BB89CB89DF3D4F3D3B7FBB89EB1BFB89FF3CEF3CAB5DAB8A0F3D0B940B941F3D1B942F3D5B943B944B945B946F3CDB947BCE3B948C1FDB949F3D6B94AB94BB94CB94DB94EB94FF3DAB950F3CCB951B5C8B952BDEEF3DCB953B954B7A4BFF0D6FECDB2B955B4F0B956B2DFB957F3D8B958F3D9C9B8B959F3DDB95AB95BF3DEB95CF3E1B95DB95EB95FB960B961B962B963B964B965B966B967F3DFB968B969F3E3F3E2B96AB96BF3DBB96CBFEAB96DB3EFB96EF3E0B96FB970C7A9B971BCF2B972B973B974B975F3EBB976B977B978B979B97AB97BB97CB9BFB97DB97EF3E4B980B981B982B2ADBBFEB983CBE3B984B985B986B987F3EDF3E9B988B989B98AB9DCF3EEB98BB98CB98DF3E5F3E6F3EAC2E1F3ECF3EFF3E8BCFDB98EB98FB990CFE4B991B992F3F0B993B994B995F3E7B996B997B998B999B99AB99BB99CB99DF3F2B99EB99FB9A0BA40D7ADC6AABA41BA42BA43BA44F3F3BA45BA46BA47BA48F3F1BA49C2A8BA4ABA4BBA4CBA4DBA4EB8DDF3F5BA4FBA50F3F4BA51BA52BA53B4DBBA54BA55BA56F3F6F3F7BA57BA58BA59F3F8BA5ABA5BBA5CC0BABA5DBA5EC0E9BA5FBA60BA61BA62BA63C5F1BA64BA65BA66BA67F3FBBA68F3FABA69BA6ABA6BBA6CBA6DBA6EBA6FBA70B4D8BA71BA72BA73F3FEF3F9BA74BA75F3FCBA76BA77BA78BA79BA7ABA7BF3FDBA7CBA7DBA7EBA80BA81BA82BA83BA84F4A1BA85BA86BA87BA88BA89BA8AF4A3BBC9BA8BBA8CF4A2BA8DBA8EBA8FBA90BA91BA92BA93BA94BA95BA96BA97BA98BA99F4A4BA9ABA9BBA9CBA9DBA9EBA9FB2BEF4A6F4A5BAA0BB40BB41BB42BB43BB44BB45BB46BB47BB48BB49BCAEBB4ABB4BBB4CBB4DBB4EBB4FBB50BB51BB52BB53BB54BB55BB56BB57BB58BB59BB5ABB5BBB5CBB5DBB5EBB5FBB60BB61BB62BB63BB64BB65BB66BB67BB68BB69BB6ABB6BBB6CBB6DBB6EC3D7D9E1BB6FBB70BB71BB72BB73BB74C0E0F4CCD7D1BB75BB76BB77BB78BB79BB7ABB7BBB7CBB7DBB7EBB80B7DBBB81BB82BB83BB84BB85BB86BB87F4CEC1A3BB88BB89C6C9BB8AB4D6D5B3BB8BBB8CBB8DF4D0F4CFF4D1CBDABB8EBB8FF4D2BB90D4C1D6E0BB91BB92BB93BB94B7E0BB95BB96BB97C1B8BB98BB99C1BBF4D3BEACBB9ABB9BBB9CBB9DBB9EB4E2BB9FBBA0F4D4F4D5BEABBC40BC41F4D6BC42BC43BC44F4DBBC45F4D7F4DABC46BAFDBC47F4D8F4D9BC48BC49BC4ABC4BBC4CBC4DBC4EB8E2CCC7F4DCBC4FB2DABC50BC51C3D3BC52BC53D4E3BFB7BC54BC55BC56BC57BC58BC59BC5AF4DDBC5BBC5CBC5DBC5EBC5FBC60C5B4BC61BC62BC63BC64BC65BC66BC67BC68F4E9BC69BC6ACFB5BC6BBC6CBC6DBC6EBC6FBC70BC71BC72BC73BC74BC75BC76BC77BC78CEC9BC79BC7ABC7BBC7CBC7DBC7EBC80BC81BC82BC83BC84BC85BC86BC87BC88BC89BC8ABC8BBC8CBC8DBC8ECBD8BC8FCBF7BC90BC91BC92BC93BDF4BC94BC95BC96D7CFBC97BC98BC99C0DBBC9ABC9BBC9CBC9DBC9EBC9FBCA0BD40BD41BD42BD43BD44BD45BD46BD47BD48BD49BD4ABD4BBD4CBD4DBD4EBD4FBD50BD51BD52BD53BD54BD55BD56BD57BD58BD59BD5ABD5BBD5CBD5DBD5EBD5FBD60BD61BD62BD63BD64BD65BD66BD67BD68BD69BD6ABD6BBD6CBD6DBD6EBD6FBD70BD71BD72BD73BD74BD75BD76D0F5BD77BD78BD79BD7ABD7BBD7CBD7DBD7EF4EABD80BD81BD82BD83BD84BD85BD86BD87BD88BD89BD8ABD8BBD8CBD8DBD8EBD8FBD90BD91BD92BD93BD94BD95BD96BD97BD98BD99BD9ABD9BBD9CBD9DBD9EBD9FBDA0BE40BE41BE42BE43BE44BE45BE46BE47BE48BE49BE4ABE4BBE4CF4EBBE4DBE4EBE4FBE50BE51BE52BE53F4ECBE54BE55BE56BE57BE58BE59BE5ABE5BBE5CBE5DBE5EBE5FBE60BE61BE62BE63BE64BE65BE66BE67BE68BE69BE6ABE6BBE6CBE6DBE6EBE6FBE70BE71BE72BE73BE74BE75BE76BE77BE78BE79BE7ABE7BBE7CBE7DBE7EBE80BE81BE82BE83BE84BE85BE86BE87BE88BE89BE8ABE8BBE8CBE8DBE8EBE8FBE90BE91BE92BE93BE94BE95BE96BE97BE98BE99BE9ABE9BBE9CBE9DBE9EBE9FBEA0BF40BF41BF42BF43BF44BF45BF46BF47BF48BF49BF4ABF4BBF4CBF4DBF4EBF4FBF50BF51BF52BF53BF54BF55BF56BF57BF58BF59BF5ABF5BBF5CBF5DBF5EBF5FBF60BF61BF62BF63BF64BF65BF66BF67BF68BF69BF6ABF6BBF6CBF6DBF6EBF6FBF70BF71BF72BF73BF74BF75BF76BF77BF78BF79BF7ABF7BBF7CBF7DBF7EBF80F7E3BF81BF82BF83BF84BF85B7B1BF86BF87BF88BF89BF8AF4EDBF8BBF8CBF8DBF8EBF8FBF90BF91BF92BF93BF94BF95BF96BF97BF98BF99BF9ABF9BBF9CBF9DBF9EBF9FBFA0C040C041C042C043C044C045C046C047C048C049C04AC04BC04CC04DC04EC04FC050C051C052C053C054C055C056C057C058C059C05AC05BC05CC05DC05EC05FC060C061C062C063D7EBC064C065C066C067C068C069C06AC06BC06CC06DC06EC06FC070C071C072C073C074C075C076C077C078C079C07AC07BF4EEC07CC07DC07EE6F9BEC0E6FABAECE6FBCFCBE6FCD4BCBCB6E6FDE6FEBCCDC8D2CEB3E7A1C080B4BFE7A2C9B4B8D9C4C9C081D7DDC2DAB7D7D6BDCEC6B7C4C082C083C5A6E7A3CFDFE7A4E7A5E7A6C1B7D7E9C9F0CFB8D6AFD6D5E7A7B0EDE7A8E7A9C9DCD2EFBEADE7AAB0F3C8DEBDE1E7ABC8C6C084E7ACBBE6B8F8D1A4E7ADC2E7BEF8BDCACDB3E7AEE7AFBEEED0E5C085CBE7CCD0BCCCE7B0BCA8D0F7E7B1C086D0F8E7B2E7B3B4C2E7B4E7B5C9FECEACC3E0E7B7B1C1B3F1C087E7B8E7B9D7DBD5C0E7BAC2CCD7BAE7BBE7BCE7BDBCEAC3E5C0C2E7BEE7BFBCA9C088E7C0E7C1E7B6B6D0E7C2C089E7C3E7C4BBBAB5DEC2C6B1E0E7C5D4B5E7C6B8BFE7C8E7C7B7ECC08AE7C9B2F8E7CAE7CBE7CCE7CDE7CEE7CFE7D0D3A7CBF5E7D1E7D2E7D3E7D4C9C9E7D5E7D6E7D7E7D8E7D9BDC9E7DAF3BEC08BB8D7C08CC8B1C08DC08EC08FC090C091C092C093F3BFC094F3C0F3C1C095C096C097C098C099C09AC09BC09CC09DC09EB9DECDF8C09FC0A0D8E8BAB1C140C2DEEEB7C141B7A3C142C143C144C145EEB9C146EEB8B0D5C147C148C149C14AC14BEEBBD5D6D7EFC14CC14DC14ED6C3C14FC150EEBDCAF0C151EEBCC152C153C154C155EEBEC156C157C158C159EEC0C15AC15BEEBFC15CC15DC15EC15FC160C161C162C163D1F2C164C7BCC165C3C0C166C167C168C169C16AB8E1C16BC16CC16DC16EC16FC1E7C170C171F4C6D0DFF4C7C172CFDBC173C174C8BAC175C176F4C8C177C178C179C17AC17BC17CC17DF4C9F4CAC17EF4CBC180C181C182C183C184D9FAB8FEC185C186E5F1D3F0C187F4E0C188CECCC189C18AC18BB3E1C18CC18DC18EC18FF1B4C190D2EEC191F4E1C192C193C194C195C196CFE8F4E2C197C198C7CCC199C19AC19BC19CC19DC19EB5D4B4E4F4E4C19FC1A0C240F4E3F4E5C241C242F4E6C243C244C245C246F4E7C247BAB2B0BFC248F4E8C249C24AC24BC24CC24DC24EC24FB7ADD2EDC250C251C252D2ABC0CFC253BFBCEBA3D5DFEAC8C254C255C256C257F1F3B6F8CBA3C258C259C4CDC25AF1E7C25BF1E8B8FBF1E9BAC4D4C5B0D2C25CC25DF1EAC25EC25FC260F1EBC261F1ECC262C263F1EDF1EEF1EFF1F1F1F0C5D5C264C265C266C267C268C269F1F2C26AB6FAC26BF1F4D2AEDEC7CBCAC26CC26DB3DCC26EB5A2C26FB9A2C270C271C4F4F1F5C272C273F1F6C274C275C276C1C4C1FBD6B0F1F7C277C278C279C27AF1F8C27BC1AAC27CC27DC27EC6B8C280BEDBC281C282C283C284C285C286C287C288C289C28AC28BC28CC28DC28EF1F9B4CFC28FC290C291C292C293C294F1FAC295C296C297C298C299C29AC29BC29CC29DC29EC29FC2A0C340EDB2EDB1C341C342CBE0D2DEC343CBC1D5D8C344C8E2C345C0DFBCA1C346C347C348C349C34AC34BEBC1C34CC34DD0A4C34ED6E2C34FB6C7B8D8EBC0B8CEC350EBBFB3A6B9C9D6ABC351B7F4B7CAC352C353C354BCE7B7BEEBC6C355EBC7B0B9BFCFC356EBC5D3FDC357EBC8C358C359EBC9C35AC35BB7CEC35CEBC2EBC4C9F6D6D7D5CDD0B2EBCFCEB8EBD0C35DB5A8C35EC35FC360C361C362B1B3EBD2CCA5C363C364C365C366C367C368C369C5D6EBD3C36AEBD1C5DFEBCECAA4EBD5B0FBC36BC36CBAFAC36DC36ED8B7F1E3C36FEBCAEBCBEBCCEBCDEBD6E6C0EBD9C370BFE8D2C8EBD7EBDCB8ECEBD8C371BDBAC372D0D8C373B0B7C374EBDDC4DCC375C376C377C378D6ACC379C37AC37BB4E0C37CC37DC2F6BCB9C37EC380EBDAEBDBD4E0C6EAC4D4EBDFC5A7D9F5C381B2B1C382EBE4C383BDC5C384C385C386EBE2C387C388C389C38AC38BC38CC38DC38EC38FC390C391C392C393EBE3C394C395B8ACC396CDD1EBE5C397C398C399EBE1C39AC1B3C39BC39CC39DC39EC39FC6A2C3A0C440C441C442C443C444C445CCF3C446EBE6C447C0B0D2B8EBE7C448C449C44AB8AFB8ADC44BEBE8C7BBCDF3C44CC44DC44EEBEAEBEBC44FC450C451C452C453EBEDC454C455C456C457D0C8C458EBF2C459EBEEC45AC45BC45CEBF1C8F9C45DD1FCEBECC45EC45FEBE9C460C461C462C463B8B9CFD9C4E5EBEFEBF0CCDACDC8B0F2C464EBF6C465C466C467C468C469EBF5C46AB2B2C46BC46CC46DC46EB8E0C46FEBF7C470C471C472C473C474C475B1ECC476C477CCC5C4A4CFA5C478C479C47AC47BC47CEBF9C47DC47EECA2C480C5F2C481EBFAC482C483C484C485C486C487C488C489C9C5C48AC48BC48CC48DC48EC48FE2DFEBFEC490C491C492C493CDCEECA1B1DBD3B7C494C495D2DCC496C497C498EBFDC499EBFBC49AC49BC49CC49DC49EC49FC4A0C540C541C542C543C544C545C546C547C548C549C54AC54BC54CC54DC54EB3BCC54FC550C551EAB0C552C553D7D4C554F4ABB3F4C555C556C557C558C559D6C1D6C2C55AC55BC55CC55DC55EC55FD5E9BECAC560F4A7C561D2A8F4A8F4A9C562F4AABECBD3DFC563C564C565C566C567C9E0C9E1C568C569F3C2C56ACAE6C56BCCF2C56CC56DC56EC56FC570C571E2B6CBB4C572CEE8D6DBC573F4ADF4AEF4AFC574C575C576C577F4B2C578BABDF4B3B0E3F4B0C579F4B1BDA2B2D5C57AF4B6F4B7B6E6B2B0CFCFF4B4B4ACC57BF4B5C57CC57DF4B8C57EC580C581C582C583F4B9C584C585CDA7C586F4BAC587F4BBC588C589C58AF4BCC58BC58CC58DC58EC58FC590C591C592CBD2C593F4BDC594C595C596C597F4BEC598C599C59AC59BC59CC59DC59EC59FF4BFC5A0C640C641C642C643F4DEC1BCBCE8C644C9ABD1DEE5F5C645C646C647C648DCB3D2D5C649C64ADCB4B0ACDCB5C64BC64CBDDAC64DDCB9C64EC64FC650D8C2C651DCB7D3F3C652C9D6DCBADCB6C653DCBBC3A2C654C655C656C657DCBCDCC5DCBDC658C659CEDFD6A5C65ADCCFC65BDCCDC65CC65DDCD2BDE6C2ABC65EDCB8DCCBDCCEDCBEB7D2B0C5DCC7D0BEDCC1BBA8C65FB7BCDCCCC660C661DCC6DCBFC7DBC662C663C664D1BFDCC0C665C666DCCAC667C668DCD0C669C66ACEADDCC2C66BDCC3DCC8DCC9B2D4DCD1CBD5C66CD4B7DCDBDCDFCCA6DCE6C66DC3E7DCDCC66EC66FBFC1DCD9C670B0FAB9B6DCE5DCD3C671DCC4DCD6C8F4BFE0C672C673C674C675C9BBC676C677C678B1BDC679D3A2C67AC67BDCDAC67CC67DDCD5C67EC6BBC680DCDEC681C682C683C684C685D7C2C3AFB7B6C7D1C3A9DCE2DCD8DCEBDCD4C686C687DCDDC688BEA5DCD7C689DCE0C68AC68BDCE3DCE4C68CDCF8C68DC68EDCE1DDA2DCE7C68FC690C691C692C693C694C695C696C697C698BCEBB4C4C699C69AC3A3B2E7DCFAC69BDCF2C69CDCEFC69DDCFCDCEED2F0B2E8C69EC8D7C8E3DCFBC69FDCEDC6A0C740C741DCF7C742C743DCF5C744C745BEA3DCF4C746B2DDC747C748C749C74AC74BDCF3BCF6DCE8BBC4C74CC0F3C74DC74EC74FC750C751BCD4DCE9DCEAC752DCF1DCF6DCF9B5B4C753C8D9BBE7DCFEDCFDD3ABDDA1DDA3DDA5D2F1DDA4DDA6DDA7D2A9C754C755C756C757C758C759C75ABAC9DDA9C75BC75CDDB6DDB1DDB4C75DC75EC75FC760C761C762C763DDB0C6CEC764C765C0F2C766C767C768C769C9AFC76AC76BC76CDCECDDAEC76DC76EC76FC770DDB7C771C772DCF0DDAFC773DDB8C774DDACC775C776C777C778C779C77AC77BDDB9DDB3DDADC4AAC77CC77DC77EC780DDA8C0B3C1ABDDAADDABC781DDB2BBF1DDB5D3A8DDBAC782DDBBC3A7C783C784DDD2DDBCC785C786C787DDD1C788B9BDC789C78ABED5C78BBEFAC78CC78DBACAC78EC78FC790C791DDCAC792DDC5C793DDBFC794C795C796B2CBDDC3C797DDCBB2A4DDD5C798C799C79ADDBEC79BC79CC79DC6D0DDD0C79EC79FC7A0C840C841DDD4C1E2B7C6C842C843C844C845C846DDCEDDCFC847C848C849DDC4C84AC84BC84CDDBDC84DDDCDCCD1C84EDDC9C84FC850C851C852DDC2C3C8C6BCCEAEDDCCC853DDC8C854C855C856C857C858C859DDC1C85AC85BC85CDDC6C2DCC85DC85EC85FC860C861C862D3A9D3AADDD3CFF4C8F8C863C864C865C866C867C868C869C86ADDE6C86BC86CC86DC86EC86FC870DDC7C871C872C873DDE0C2E4C874C875C876C877C878C879C87AC87BDDE1C87CC87DC87EC880C881C882C883C884C885C886DDD7C887C888C889C88AC88BD6F8C88CDDD9DDD8B8F0DDD6C88DC88EC88FC890C6CFC891B6ADC892C893C894C895C896DDE2C897BAF9D4E1DDE7C898C899C89AB4D0C89BDDDAC89CBFFBDDE3C89DDDDFC89EDDDDC89FC8A0C940C941C942C943C944B5D9C945C946C947C948DDDBDDDCDDDEC949BDAFDDE4C94ADDE5C94BC94CC94DC94EC94FC950C951C952DDF5C953C3C9C954C955CBE2C956C957C958C959DDF2C95AC95BC95CC95DC95EC95FC960C961C962C963C964C965C966D8E1C967C968C6D1C969DDF4C96AC96BC96CD5F4DDF3DDF0C96DC96EDDECC96FDDEFC970DDE8C971C972D0EEC973C974C975C976C8D8DDEEC977C978DDE9C979C97ADDEACBF2C97BDDEDC97CC97DB1CDC97EC980C981C982C983C984C0B6C985BCBBDDF1C986C987DDF7C988DDF6DDEBC989C98AC98BC98CC98DC5EEC98EC98FC990DDFBC991C992C993C994C995C996C997C998C999C99AC99BDEA4C99CC99DDEA3C99EC99FC9A0CA40CA41CA42CA43CA44CA45CA46CA47CA48DDF8CA49CA4ACA4BCA4CC3EFCA4DC2FBCA4ECA4FCA50D5E1CA51CA52CEB5CA53CA54CA55CA56DDFDCA57B2CCCA58CA59CA5ACA5BCA5CCA5DCA5ECA5FCA60C4E8CADFCA61CA62CA63CA64CA65CA66CA67CA68CA69CA6AC7BEDDFADDFCDDFEDEA2B0AAB1CECA6BCA6CCA6DCA6ECA6FDEACCA70CA71CA72CA73DEA6BDB6C8EFCA74CA75CA76CA77CA78CA79CA7ACA7BCA7CCA7DCA7EDEA1CA80CA81DEA5CA82CA83CA84CA85DEA9CA86CA87CA88CA89CA8ADEA8CA8BCA8CCA8DDEA7CA8ECA8FCA90CA91CA92CA93CA94CA95CA96DEADCA97D4CCCA98CA99CA9ACA9BDEB3DEAADEAECA9CCA9DC0D9CA9ECA9FCAA0CB40CB41B1A1DEB6CB42DEB1CB43CB44CB45CB46CB47CB48CB49DEB2CB4ACB4BCB4CCB4DCB4ECB4FCB50CB51CB52CB53CB54D1A6DEB5CB55CB56CB57CB58CB59CB5ACB5BDEAFCB5CCB5DCB5EDEB0CB5FD0BDCB60CB61CB62DEB4CAEDDEB9CB63CB64CB65CB66CB67CB68DEB8CB69DEB7CB6ACB6BCB6CCB6DCB6ECB6FCB70DEBBCB71CB72CB73CB74CB75CB76CB77BDE5CB78CB79CB7ACB7BCB7CB2D8C3EACB7DCB7EDEBACB80C5BACB81CB82CB83CB84CB85CB86DEBCCB87CB88CB89CB8ACB8BCB8CCB8DCCD9CB8ECB8FCB90CB91B7AACB92CB93CB94CB95CB96CB97CB98CB99CB9ACB9BCB9CCB9DCB9ECB9FCBA0CC40CC41D4E5CC42CC43CC44DEBDCC45CC46CC47CC48CC49DEBFCC4ACC4BCC4CCC4DCC4ECC4FCC50CC51CC52CC53CC54C4A2CC55CC56CC57CC58DEC1CC59CC5ACC5BCC5CCC5DCC5ECC5FCC60CC61CC62CC63CC64CC65CC66CC67CC68DEBECC69DEC0CC6ACC6BCC6CCC6DCC6ECC6FCC70CC71CC72CC73CC74CC75CC76CC77D5BACC78CC79CC7ADEC2CC7BCC7CCC7DCC7ECC80CC81CC82CC83CC84CC85CC86CC87CC88CC89CC8ACC8BF2AEBBA2C2B2C5B0C2C7CC8CCC8DF2AFCC8ECC8FCC90CC91CC92D0E9CC93CC94CC95D3DDCC96CC97CC98EBBDCC99CC9ACC9BCC9CCC9DCC9ECC9FCCA0B3E6F2B0CD40F2B1CD41CD42CAADCD43CD44CD45CD46CD47CD48CD49BAE7F2B3F2B5F2B4CBE4CFBAF2B2CAB4D2CFC2ECCD4ACD4BCD4CCD4DCD4ECD4FCD50CEC3F2B8B0F6F2B7CD51CD52CD53CD54CD55F2BECD56B2CFCD57CD58CD59CD5ACD5BCD5CD1C1F2BACD5DCD5ECD5FCD60CD61F2BCD4E9CD62CD63F2BBF2B6F2BFF2BDCD64F2B9CD65CD66F2C7F2C4F2C6CD67CD68F2CAF2C2F2C0CD69CD6ACD6BF2C5CD6CCD6DCD6ECD6FCD70D6FBCD71CD72CD73F2C1CD74C7F9C9DFCD75F2C8B9C6B5B0CD76CD77F2C3F2C9F2D0F2D6CD78CD79BBD7CD7ACD7BCD7CF2D5CDDCCD7DD6EBCD7ECD80F2D2F2D4CD81CD82CD83CD84B8F2CD85CD86CD87CD88F2CBCD89CD8ACD8BF2CEC2F9CD8CD5DDF2CCF2CDF2CFF2D3CD8DCD8ECD8FF2D9D3BCCD90CD91CD92CD93B6EACD94CAF1CD95B7E4F2D7CD96CD97CD98F2D8F2DAF2DDF2DBCD99CD9AF2DCCD9BCD9CCD9DCD9ED1D1F2D1CD9FCDC9CDA0CECFD6A9CE40F2E3CE41C3DBCE42F2E0CE43CE44C0AFF2ECF2DECE45F2E1CE46CE47CE48F2E8CE49CE4ACE4BCE4CF2E2CE4DCE4EF2E7CE4FCE50F2E6CE51CE52F2E9CE53CE54CE55F2DFCE56CE57F2E4F2EACE58CE59CE5ACE5BCE5CCE5DCE5ED3ACF2E5B2F5CE5FCE60F2F2CE61D0ABCE62CE63CE64CE65F2F5CE66CE67CE68BBC8CE69F2F9CE6ACE6BCE6CCE6DCE6ECE6FF2F0CE70CE71F2F6F2F8F2FACE72CE73CE74CE75CE76CE77CE78CE79F2F3CE7AF2F1CE7BCE7CCE7DBAFBCE7EB5FBCE80CE81CE82CE83F2EFF2F7F2EDF2EECE84CE85CE86F2EBF3A6CE87F3A3CE88CE89F3A2CE8ACE8BF2F4CE8CC8DACE8DCE8ECE8FCE90CE91F2FBCE92CE93CE94F3A5CE95CE96CE97CE98CE99CE9ACE9BC3F8CE9CCE9DCE9ECE9FCEA0CF40CF41CF42F2FDCF43CF44F3A7F3A9F3A4CF45F2FCCF46CF47CF48F3ABCF49F3AACF4ACF4BCF4CCF4DC2DDCF4ECF4FF3AECF50CF51F3B0CF52CF53CF54CF55CF56F3A1CF57CF58CF59F3B1F3ACCF5ACF5BCF5CCF5DCF5EF3AFF2FEF3ADCF5FCF60CF61CF62CF63CF64CF65F3B2CF66CF67CF68CF69F3B4CF6ACF6BCF6CCF6DF3A8CF6ECF6FCF70CF71F3B3CF72CF73CF74F3B5CF75CF76CF77CF78CF79CF7ACF7BCF7CCF7DCF7ED0B7CF80CF81CF82CF83F3B8CF84CF85CF86CF87D9F9CF88CF89CF8ACF8BCF8CCF8DF3B9CF8ECF8FCF90CF91CF92CF93CF94CF95F3B7CF96C8E4F3B6CF97CF98CF99CF9AF3BACF9BCF9CCF9DCF9ECF9FF3BBB4C0CFA0D040D041D042D043D044D045D046D047D048D049D04AD04BD04CD04DEEC3D04ED04FD050D051D052D053F3BCD054D055F3BDD056D057D058D1AAD059D05AD05BF4ACD0C6D05CD05DD05ED05FD060D061D0D0D1DCD062D063D064D065D066D067CFCED068D069BDD6D06AD1C3D06BD06CD06DD06ED06FD070D071BAE2E1E9D2C2F1C2B2B9D072D073B1EDF1C3D074C9C0B3C4D075D9F2D076CBA5D077F1C4D078D079D07AD07BD6D4D07CD07DD07ED080D081F1C5F4C0F1C6D082D4ACF1C7D083B0C0F4C1D084D085F4C2D086D087B4FCD088C5DBD089D08AD08BD08CCCBBD08DD08ED08FD0E4D090D091D092D093D094CDE0D095D096D097D098D099F1C8D09AD9F3D09BD09CD09DD09ED09FD0A0B1BBD140CFAED141D142D143B8A4D144D145D146D147D148F1CAD149D14AD14BD14CF1CBD14DD14ED14FD150B2C3C1D1D151D152D7B0F1C9D153D154F1CCD155D156D157D158F1CED159D15AD15BD9F6D15CD2E1D4A3D15DD15EF4C3C8B9D15FD160D161D162D163F4C4D164D165F1CDF1CFBFE3F1D0D166D167F1D4D168D169D16AD16BD16CD16DD16EF1D6F1D1D16FC9D1C5E1D170D171D172C2E3B9FCD173D174F1D3D175F1D5D176D177D178B9D3D179D17AD17BD17CD17DD17ED180F1DBD181D182D183D184D185BAD6D186B0FDF1D9D187D188D189D18AD18BF1D8F1D2F1DAD18CD18DD18ED18FD190F1D7D191D192D193C8ECD194D195D196D197CDCAF1DDD198D199D19AD19BE5BDD19CD19DD19EF1DCD19FF1DED1A0D240D241D242D243D244D245D246D247D248F1DFD249D24ACFE5D24BD24CD24DD24ED24FD250D251D252D253D254D255D256D257D258D259D25AD25BD25CD25DD25ED25FD260D261D262D263F4C5BDF3D264D265D266D267D268D269F1E0D26AD26BD26CD26DD26ED26FD270D271D272D273D274D275D276D277D278D279D27AD27BD27CD27DF1E1D27ED280D281CEF7D282D2AAD283F1FBD284D285B8B2D286D287D288D289D28AD28BD28CD28DD28ED28FD290D291D292D293D294D295D296D297D298D299D29AD29BD29CD29DD29ED29FD2A0D340D341D342D343D344D345D346D347D348D349D34AD34BD34CD34DD34ED34FD350D351D352D353D354D355D356D357D358D359D35AD35BD35CD35DD35EBCFBB9DBD35FB9E6C3D9CAD3EAE8C0C0BEF5EAE9EAEAEAEBD360EAECEAEDEAEEEAEFBDC7D361D362D363F5FBD364D365D366F5FDD367F5FED368F5FCD369D36AD36BD36CBDE2D36DF6A1B4A5D36ED36FD370D371F6A2D372D373D374F6A3D375D376D377ECB2D378D379D37AD37BD37CD37DD37ED380D381D382D383D384D1D4D385D386D387D388D389D38AD9EAD38BD38CD38DD38ED38FD390D391D392D393D394D395D396D397D398D399D39AD39BD39CD39DD39ED39FD3A0D440D441D442D443D444D445D446D447D448D449D44AD44BD44CD44DD44ED44FD450D451D452D453D454D455D456D457D458D459D45AD45BD45CD45DD45ED45FF6A4D460D461D462D463D464D465D466D467D468EEBAD469D46AD46BD46CD46DD46ED46FD470D471D472D473D474D475D476D477D478D479D47AD47BD47CD47DD47ED480D481D482D483D484D485D486D487D488D489D48AD48BD48CD48DD48ED48FD490D491D492D493D494D495D496D497D498D499D5B2D49AD49BD49CD49DD49ED49FD4A0D540D541D542D543D544D545D546D547D3FECCDCD548D549D54AD54BD54CD54DD54ED54FCAC4D550D551D552D553D554D555D556D557D558D559D55AD55BD55CD55DD55ED55FD560D561D562D563D564D565D566D567D568D569D56AD56BD56CD56DD56ED56FD570D571D572D573D574D575D576D577D578D579D57AD57BD57CD57DD57ED580D581D582D583D584D585D586D587D588D589D58AD58BD58CD58DD58ED58FD590D591D592D593D594D595D596D597D598D599D59AD59BD59CD59DD59ED59FD5A0D640D641D642D643D644D645D646D647D648D649D64AD64BD64CD64DD64ED64FD650D651D652D653D654D655D656D657D658D659D65AD65BD65CD65DD65ED65FD660D661D662E5C0D663D664D665D666D667D668D669D66AD66BD66CD66DD66ED66FD670D671D672D673D674D675D676D677D678D679D67AD67BD67CD67DD67ED680D681F6A5D682D683D684D685D686D687D688D689D68AD68BD68CD68DD68ED68FD690D691D692D693D694D695D696D697D698D699D69AD69BD69CD69DD69ED69FD6A0D740D741D742D743D744D745D746D747D748D749D74AD74BD74CD74DD74ED74FD750D751D752D753D754D755D756D757D758D759D75AD75BD75CD75DD75ED75FBEAFD760D761D762D763D764C6A9D765D766D767D768D769D76AD76BD76CD76DD76ED76FD770D771D772D773D774D775D776D777D778D779D77AD77BD77CD77DD77ED780D781D782D783D784D785D786D787D788D789D78AD78BD78CD78DD78ED78FD790D791D792D793D794D795D796D797D798DAA5BCC6B6A9B8BCC8CFBCA5DAA6DAA7CCD6C8C3DAA8C6FDD799D1B5D2E9D1B6BCC7D79ABDB2BBE4DAA9DAAAD1C8DAABD0EDB6EFC2DBD79BCBCFB7EDC9E8B7C3BEF7D6A4DAACDAADC6C0D7E7CAB6D79CD5A9CBDFD5EFDAAED6DFB4CADAB0DAAFD79DD2EBDAB1DAB2DAB3CAD4DAB4CAABDAB5DAB6B3CFD6EFDAB7BBB0B5AEDAB8DAB9B9EED1AFD2E8DABAB8C3CFEAB2EFDABBDABCD79EBDEBCEDCD3EFDABDCEF3DABED3D5BBE5DABFCBB5CBD0DAC0C7EBD6EEDAC1C5B5B6C1DAC2B7CCBFCEDAC3DAC4CBADDAC5B5F7DAC6C1C2D7BBDAC7CCB8D79FD2EAC4B1DAC8B5FDBBD1DAC9D0B3DACADACBCEBDDACCDACDDACEB2F7DAD1DACFD1E8DAD0C3D5DAD2D7A0DAD3DAD4DAD5D0BBD2A5B0F9DAD6C7ABDAD7BDF7C3A1DAD8DAD9C3FDCCB7DADADADBC0BEC6D7DADCDADDC7B4DADEDADFB9C8D840D841D842D843D844D845D846D847D848BBEDD849D84AD84BD84CB6B9F4F8D84DF4F9D84ED84FCDE3D850D851D852D853D854D855D856D857F5B9D858D859D85AD85BEBE0D85CD85DD85ED85FD860D861CFF3BBBFD862D863D864D865D866D867D868BAC0D4A5D869D86AD86BD86CD86DD86ED86FE1D9D870D871D872D873F5F4B1AAB2F2D874D875D876D877D878D879D87AF5F5D87BD87CF5F7D87DD87ED880BAD1F5F6D881C3B2D882D883D884D885D886D887D888F5F9D889D88AD88BF5F8D88CD88DD88ED88FD890D891D892D893D894D895D896D897D898D899D89AD89BD89CD89DD89ED89FD8A0D940D941D942D943D944D945D946D947D948D949D94AD94BD94CD94DD94ED94FD950D951D952D953D954D955D956D957D958D959D95AD95BD95CD95DD95ED95FD960D961D962D963D964D965D966D967D968D969D96AD96BD96CD96DD96ED96FD970D971D972D973D974D975D976D977D978D979D97AD97BD97CD97DD97ED980D981D982D983D984D985D986D987D988D989D98AD98BD98CD98DD98ED98FD990D991D992D993D994D995D996D997D998D999D99AD99BD99CD99DD99ED99FD9A0DA40DA41DA42DA43DA44DA45DA46DA47DA48DA49DA4ADA4BDA4CDA4DDA4EB1B4D5EAB8BADA4FB9B1B2C6D4F0CFCDB0DCD5CBBBF5D6CAB7B7CCB0C6B6B1E1B9BAD6FCB9E1B7A1BCFAEADAEADBCCF9B9F3EADCB4FBC3B3B7D1BAD8EADDD4F4EADEBCD6BBDFEADFC1DEC2B8D4DFD7CAEAE0EAE1EAE4EAE2EAE3C9DEB8B3B6C4EAE5CAEAC9CDB4CDDA50DA51E2D9C5E2EAE6C0B5DA52D7B8EAE7D7ACC8FCD8D3D8CDD4DEDA53D4F9C9C4D3AEB8D3B3E0DA54C9E2F4F6DA55DA56DA57BAD5DA58F4F7DA59DA5AD7DFDA5BDA5CF4F1B8B0D5D4B8CFC6F0DA5DDA5EDA5FDA60DA61DA62DA63DA64DA65B3C3DA66DA67F4F2B3ACDA68DA69DA6ADA6BD4BDC7F7DA6CDA6DDA6EDA6FDA70F4F4DA71DA72F4F3DA73DA74DA75DA76DA77DA78DA79DA7ADA7BDA7CCCCBDA7DDA7EDA80C8A4DA81DA82DA83DA84DA85DA86DA87DA88DA89DA8ADA8BDA8CDA8DF4F5DA8ED7E3C5BFF5C0DA8FDA90F5BBDA91F5C3DA92F5C2DA93D6BAF5C1DA94DA95DA96D4BEF5C4DA97F5CCDA98DA99DA9ADA9BB0CFB5F8DA9CF5C9F5CADA9DC5DCDA9EDA9FDAA0DB40F5C5F5C6DB41DB42F5C7F5CBDB43BEE0F5C8B8FADB44DB45DB46F5D0F5D3DB47DB48DB49BFE7DB4AB9F2F5BCF5CDDB4BDB4CC2B7DB4DDB4EDB4FCCF8DB50BCF9DB51F5CEF5CFF5D1B6E5F5D2DB52F5D5DB53DB54DB55DB56DB57DB58DB59F5BDDB5ADB5BDB5CF5D4D3BBDB5DB3ECDB5EDB5FCCA4DB60DB61DB62DB63F5D6DB64DB65DB66DB67DB68DB69DB6ADB6BF5D7BEE1F5D8DB6CDB6DCCDFF5DBDB6EDB6FDB70DB71DB72B2C8D7D9DB73F5D9DB74F5DAF5DCDB75F5E2DB76DB77DB78F5E0DB79DB7ADB7BF5DFF5DDDB7CDB7DF5E1DB7EDB80F5DEF5E4F5E5DB81CCE3DB82DB83E5BFB5B8F5E3F5E8CCA3DB84DB85DB86DB87DB88F5E6F5E7DB89DB8ADB8BDB8CDB8DDB8EF5BEDB8FDB90DB91DB92DB93DB94DB95DB96DB97DB98DB99DB9AB1C4DB9BDB9CF5BFDB9DDB9EB5C5B2E4DB9FF5ECF5E9DBA0B6D7DC40F5EDDC41F5EADC42DC43DC44DC45DC46F5EBDC47DC48B4DADC49D4EADC4ADC4BDC4CF5EEDC4DB3F9DC4EDC4FDC50DC51DC52DC53DC54F5EFF5F1DC55DC56DC57F5F0DC58DC59DC5ADC5BDC5CDC5DDC5EF5F2DC5FF5F3DC60DC61DC62DC63DC64DC65DC66DC67DC68DC69DC6ADC6BC9EDB9AADC6CDC6DC7FBDC6EDC6FB6E3DC70DC71DC72DC73DC74DC75DC76CCC9DC77DC78DC79DC7ADC7BDC7CDC7DDC7EDC80DC81DC82DC83DC84DC85DC86DC87DC88DC89DC8AEAA6DC8BDC8CDC8DDC8EDC8FDC90DC91DC92DC93DC94DC95DC96DC97DC98DC99DC9ADC9BDC9CDC9DDC9EDC9FDCA0DD40DD41DD42DD43DD44DD45DD46DD47DD48DD49DD4ADD4BDD4CDD4DDD4EDD4FDD50DD51DD52DD53DD54DD55DD56DD57DD58DD59DD5ADD5BDD5CDD5DDD5EDD5FDD60DD61DD62DD63DD64DD65DD66DD67DD68DD69DD6ADD6BDD6CDD6DDD6EDD6FDD70DD71DD72DD73DD74DD75DD76DD77DD78DD79DD7ADD7BDD7CDD7DDD7EDD80DD81DD82DD83DD84DD85DD86DD87DD88DD89DD8ADD8BDD8CDD8DDD8EDD8FDD90DD91DD92DD93DD94DD95DD96DD97DD98DD99DD9ADD9BDD9CDD9DDD9EDD9FDDA0DE40DE41DE42DE43DE44DE45DE46DE47DE48DE49DE4ADE4BDE4CDE4DDE4EDE4FDE50DE51DE52DE53DE54DE55DE56DE57DE58DE59DE5ADE5BDE5CDE5DDE5EDE5FDE60B3B5D4FEB9ECD0F9DE61E9EDD7AAE9EEC2D6C8EDBAE4E9EFE9F0E9F1D6E1E9F2E9F3E9F5E9F4E9F6E9F7C7E1E9F8D4D8E9F9BDCEDE62E9FAE9FBBDCFE9FCB8A8C1BEE9FDB1B2BBD4B9F5E9FEDE63EAA1EAA2EAA3B7F8BCADDE64CAE4E0CED4AFCFBDD5B7EAA4D5DEEAA5D0C1B9BCDE65B4C7B1D9DE66DE67DE68C0B1DE69DE6ADE6BDE6CB1E6B1E7DE6DB1E8DE6EDE6FDE70DE71B3BDC8E8DE72DE73DE74DE75E5C1DE76DE77B1DFDE78DE79DE7AC1C9B4EFDE7BDE7CC7A8D3D8DE7DC6F9D1B8DE7EB9FDC2F5DE80DE81DE82DE83DE84D3ADDE85D4CBBDFCDE86E5C2B7B5E5C3DE87DE88BBB9D5E2DE89BDF8D4B6CEA5C1ACB3D9DE8ADE8BCCF6DE8CE5C6E5C4E5C8DE8DE5CAE5C7B5CFC6C8DE8EB5FCE5C5DE8FCAF6DE90DE91E5C9DE92DE93DE94C3D4B1C5BCA3DE95DE96DE97D7B7DE98DE99CDCBCBCDCACACCD3E5CCE5CBC4E6DE9ADE9BD1A1D1B7E5CDDE9CE5D0DE9DCDB8D6F0E5CFB5DDDE9ECDBEDE9FE5D1B6BADEA0DF40CDA8B9E4DF41CAC5B3D1CBD9D4ECE5D2B7EADF42DF43DF44E5CEDF45DF46DF47DF48DF49DF4AE5D5B4FEE5D6DF4BDF4CDF4DDF4EDF4FE5D3E5D4DF50D2DDDF51DF52C2DFB1C6DF53D3E2DF54DF55B6DDCBECDF56E5D7DF57DF58D3F6DF59DF5ADF5BDF5CDF5DB1E9DF5EB6F4E5DAE5D8E5D9B5C0DF5FDF60DF61D2C5E5DCDF62DF63E5DEDF64DF65DF66DF67DF68DF69E5DDC7B2DF6AD2A3DF6BDF6CE5DBDF6DDF6EDF6FDF70D4E2D5DADF71DF72DF73DF74DF75E5E0D7F1DF76DF77DF78DF79DF7ADF7BDF7CE5E1DF7DB1DCD1FBDF7EE5E2E5E4DF80DF81DF82DF83E5E3DF84DF85E5E5DF86DF87DF88DF89DF8AD2D8DF8BB5CBDF8CE7DFDF8DDAF5DF8EDAF8DF8FDAF6DF90DAF7DF91DF92DF93DAFAD0CFC4C7DF94DF95B0EEDF96DF97DF98D0B0DF99DAF9DF9AD3CABAAADBA2C7F1DF9BDAFCDAFBC9DBDAFDDF9CDBA1D7DEDAFEC1DADF9DDF9EDBA5DF9FDFA0D3F4E040E041DBA7DBA4E042DBA8E043E044BDBCE045E046E047C0C9DBA3DBA6D6A3E048DBA9E049E04AE04BDBADE04CE04DE04EDBAEDBACBAC2E04FE050E051BFA4DBABE052E053E054DBAAD4C7B2BFE055E056DBAFE057B9F9E058DBB0E059E05AE05BE05CB3BBE05DE05EE05FB5A6E060E061E062E063B6BCDBB1E064E065E066B6F5E067DBB2E068E069E06AE06BE06CE06DE06EE06FE070E071E072E073E074E075E076E077E078E079E07AE07BB1C9E07CE07DE07EE080DBB4E081E082E083DBB3DBB5E084E085E086E087E088E089E08AE08BE08CE08DE08EDBB7E08FDBB6E090E091E092E093E094E095E096DBB8E097E098E099E09AE09BE09CE09DE09EE09FDBB9E0A0E140DBBAE141E142D3CFF4FAC7F5D7C3C5E4F4FCF4FDF4FBE143BEC6E144E145E146E147D0EFE148E149B7D3E14AE14BD4CDCCAAE14CE14DF5A2F5A1BAA8F4FECBD6E14EE14FE150F5A4C0D2E151B3EAE152CDAAF5A5F5A3BDB4F5A8E153F5A9BDCDC3B8BFE1CBE1F5AAE154E155E156F5A6F5A7C4F0E157E158E159E15AE15BF5ACE15CB4BCE15DD7EDE15EB4D7F5ABF5AEE15FE160F5ADF5AFD0D1E161E162E163E164E165E166E167C3D1C8A9E168E169E16AE16BE16CE16DF5B0F5B1E16EE16FE170E171E172E173F5B2E174E175F5B3F5B4F5B5E176E177E178E179F5B7F5B6E17AE17BE17CE17DF5B8E17EE180E181E182E183E184E185E186E187E188E189E18AB2C9E18BD3D4CACDE18CC0EFD6D8D2B0C1BFE18DBDF0E18EE18FE190E191E192E193E194E195E196E197B8AAE198E199E19AE19BE19CE19DE19EE19FE1A0E240E241E242E243E244E245E246E247E248E249E24AE24BE24CE24DE24EE24FE250E251E252E253E254E255E256E257E258E259E25AE25BE25CE25DE25EE25FE260E261E262E263E264E265E266E267E268E269E26AE26BE26CE26DE26EE26FE270E271E272E273E274E275E276E277E278E279E27AE27BE27CE27DE27EE280E281E282E283E284E285E286E287E288E289E28AE28BE28CE28DE28EE28FE290E291E292E293E294E295E296E297E298E299E29AE29BE29CE29DE29EE29FE2A0E340E341E342E343E344E345E346E347E348E349E34AE34BE34CE34DE34EE34FE350E351E352E353E354E355E356E357E358E359E35AE35BE35CE35DE35EE35FE360E361E362E363E364E365E366E367E368E369E36AE36BE36CE36DBCF8E36EE36FE370E371E372E373E374E375E376E377E378E379E37AE37BE37CE37DE37EE380E381E382E383E384E385E386E387F6C6E388E389E38AE38BE38CE38DE38EE38FE390E391E392E393E394E395E396E397E398E399E39AE39BE39CE39DE39EE39FE3A0E440E441E442E443E444E445F6C7E446E447E448E449E44AE44BE44CE44DE44EE44FE450E451E452E453E454E455E456E457E458E459E45AE45BE45CE45DE45EF6C8E45FE460E461E462E463E464E465E466E467E468E469E46AE46BE46CE46DE46EE46FE470E471E472E473E474E475E476E477E478E479E47AE47BE47CE47DE47EE480E481E482E483E484E485E486E487E488E489E48AE48BE48CE48DE48EE48FE490E491E492E493E494E495E496E497E498E499E49AE49BE49CE49DE49EE49FE4A0E540E541E542E543E544E545E546E547E548E549E54AE54BE54CE54DE54EE54FE550E551E552E553E554E555E556E557E558E559E55AE55BE55CE55DE55EE55FE560E561E562E563E564E565E566E567E568E569E56AE56BE56CE56DE56EE56FE570E571E572E573F6C9E574E575E576E577E578E579E57AE57BE57CE57DE57EE580E581E582E583E584E585E586E587E588E589E58AE58BE58CE58DE58EE58FE590E591E592E593E594E595E596E597E598E599E59AE59BE59CE59DE59EE59FF6CAE5A0E640E641E642E643E644E645E646E647E648E649E64AE64BE64CE64DE64EE64FE650E651E652E653E654E655E656E657E658E659E65AE65BE65CE65DE65EE65FE660E661E662F6CCE663E664E665E666E667E668E669E66AE66BE66CE66DE66EE66FE670E671E672E673E674E675E676E677E678E679E67AE67BE67CE67DE67EE680E681E682E683E684E685E686E687E688E689E68AE68BE68CE68DE68EE68FE690E691E692E693E694E695E696E697E698E699E69AE69BE69CE69DF6CBE69EE69FE6A0E740E741E742E743E744E745E746E747F7E9E748E749E74AE74BE74CE74DE74EE74FE750E751E752E753E754E755E756E757E758E759E75AE75BE75CE75DE75EE75FE760E761E762E763E764E765E766E767E768E769E76AE76BE76CE76DE76EE76FE770E771E772E773E774E775E776E777E778E779E77AE77BE77CE77DE77EE780E781E782E783E784E785E786E787E788E789E78AE78BE78CE78DE78EE78FE790E791E792E793E794E795E796E797E798E799E79AE79BE79CE79DE79EE79FE7A0E840E841E842E843E844E845E846E847E848E849E84AE84BE84CE84DE84EF6CDE84FE850E851E852E853E854E855E856E857E858E859E85AE85BE85CE85DE85EE85FE860E861E862E863E864E865E866E867E868E869E86AE86BE86CE86DE86EE86FE870E871E872E873E874E875E876E877E878E879E87AF6CEE87BE87CE87DE87EE880E881E882E883E884E885E886E887E888E889E88AE88BE88CE88DE88EE88FE890E891E892E893E894EEC4EEC5EEC6D5EBB6A4EEC8EEC7EEC9EECAC7A5EECBEECCE895B7B0B5F6EECDEECFE896EECEE897B8C6EED0EED1EED2B6DBB3AED6D3C4C6B1B5B8D6EED3EED4D4BFC7D5BEFBCED9B9B3EED6EED5EED8EED7C5A5EED9EEDAC7AEEEDBC7AFEEDCB2A7EEDDEEDEEEDFEEE0EEE1D7EAEEE2EEE3BCD8EEE4D3CBCCFAB2ACC1E5EEE5C7A6C3ADE898EEE6EEE7EEE8EEE9EEEAEEEBEEECE899EEEDEEEEEEEFE89AE89BEEF0EEF1EEF2EEF4EEF3E89CEEF5CDADC2C1EEF6EEF7EEF8D5A1EEF9CFB3EEFAEEFBE89DEEFCEEFDEFA1EEFEEFA2B8F5C3FAEFA3EFA4BDC2D2BFB2F9EFA5EFA6EFA7D2F8EFA8D6FDEFA9C6CCE89EEFAAEFABC1B4EFACCFFACBF8EFAEEFADB3FAB9F8EFAFEFB0D0E2EFB1EFB2B7E6D0BFEFB3EFB4EFB5C8F1CCE0EFB6EFB7EFB8EFB9EFBAD5E0EFBBB4EDC3AAEFBCE89FEFBDEFBEEFBFE8A0CEFDEFC0C2E0B4B8D7B6BDF5E940CFC7EFC3EFC1EFC2EFC4B6A7BCFCBEE2C3CCEFC5EFC6E941EFC7EFCFEFC8EFC9EFCAC7C2EFF1B6CDEFCBE942EFCCEFCDB6C6C3BEEFCEE943EFD0EFD1EFD2D5F2E944EFD3C4F7E945EFD4C4F8EFD5EFD6B8E4B0F7EFD7EFD8EFD9E946EFDAEFDBEFDCEFDDE947EFDEBEB5EFE1EFDFEFE0E948EFE2EFE3C1CDEFE4EFE5EFE6EFE7EFE8EFE9EFEAEFEBEFECC0D8E949EFEDC1ADEFEEEFEFEFF0E94AE94BCFE2E94CE94DE94EE94FE950E951E952E953B3A4E954E955E956E957E958E959E95AE95BE95CE95DE95EE95FE960E961E962E963E964E965E966E967E968E969E96AE96BE96CE96DE96EE96FE970E971E972E973E974E975E976E977E978E979E97AE97BE97CE97DE97EE980E981E982E983E984E985E986E987E988E989E98AE98BE98CE98DE98EE98FE990E991E992E993E994E995E996E997E998E999E99AE99BE99CE99DE99EE99FE9A0EA40EA41EA42EA43EA44EA45EA46EA47EA48EA49EA4AEA4BEA4CEA4DEA4EEA4FEA50EA51EA52EA53EA54EA55EA56EA57EA58EA59EA5AEA5BC3C5E3C5C9C1E3C6EA5CB1D5CECAB4B3C8F2E3C7CFD0E3C8BCE4E3C9E3CAC3C6D5A2C4D6B9EBCEC5E3CBC3F6E3CCEA5DB7A7B8F3BAD2E3CDE3CED4C4E3CFEA5EE3D0D1CBE3D1E3D2E3D3E3D4D1D6E3D5B2FBC0BBE3D6EA5FC0ABE3D7E3D8E3D9EA60E3DAE3DBEA61B8B7DAE2EA62B6D3EA63DAE4DAE3EA64EA65EA66EA67EA68EA69EA6ADAE6EA6BEA6CEA6DC8EEEA6EEA6FDAE5B7C0D1F4D2F5D5F3BDD7EA70EA71EA72EA73D7E8DAE8DAE7EA74B0A2CDD3EA75DAE9EA76B8BDBCCAC2BDC2A4B3C2DAEAEA77C2AAC4B0BDB5EA78EA79CFDEEA7AEA7BEA7CDAEBC9C2EA7DEA7EEA80EA81EA82B1DDEA83EA84EA85DAECEA86B6B8D4BAEA87B3FDEA88EA89DAEDD4C9CFD5C5E3EA8ADAEEEA8BEA8CEA8DEA8EEA8FDAEFEA90DAF0C1EACCD5CFDDEA91EA92EA93EA94EA95EA96EA97EA98EA99EA9AEA9BEA9CEA9DD3E7C2A1EA9EDAF1EA9FEAA0CBE5EB40DAF2EB41CBE6D2FEEB42EB43EB44B8F4EB45EB46DAF3B0AFCFB6EB47EB48D5CFEB49EB4AEB4BEB4CEB4DEB4EEB4FEB50EB51EB52CBEDEB53EB54EB55EB56EB57EB58EB59EB5ADAF4EB5BEB5CE3C4EB5DEB5EC1A5EB5FEB60F6BFEB61EB62F6C0F6C1C4D1EB63C8B8D1E3EB64EB65D0DBD1C5BCAFB9CDEB66EFF4EB67EB68B4C6D3BAF6C2B3FBEB69EB6AF6C3EB6BEB6CB5F1EB6DEB6EEB6FEB70EB71EB72EB73EB74EB75EB76F6C5EB77EB78EB79EB7AEB7BEB7CEB7DD3EAF6A7D1A9EB7EEB80EB81EB82F6A9EB83EB84EB85F6A8EB86EB87C1E3C0D7EB88B1A2EB89EB8AEB8BEB8CCEEDEB8DD0E8F6ABEB8EEB8FCFF6EB90F6AAD5F0F6ACC3B9EB91EB92EB93BBF4F6AEF6ADEB94EB95EB96C4DEEB97EB98C1D8EB99EB9AEB9BEB9CEB9DCBAAEB9ECFBCEB9FEBA0EC40EC41EC42EC43EC44EC45EC46EC47EC48F6AFEC49EC4AF6B0EC4BEC4CF6B1EC4DC2B6EC4EEC4FEC50EC51EC52B0D4C5F9EC53EC54EC55EC56F6B2EC57EC58EC59EC5AEC5BEC5CEC5DEC5EEC5FEC60EC61EC62EC63EC64EC65EC66EC67EC68EC69C7E0F6A6EC6AEC6BBEB8EC6CEC6DBEB2EC6EB5E5EC6FEC70B7C7EC71BFBFC3D2C3E6EC72EC73D8CCEC74EC75EC76B8EFEC77EC78EC79EC7AEC7BEC7CEC7DEC7EEC80BDF9D1A5EC81B0D0EC82EC83EC84EC85EC86F7B0EC87EC88EC89EC8AEC8BEC8CEC8DEC8EF7B1EC8FEC90EC91EC92EC93D0ACEC94B0B0EC95EC96EC97F7B2F7B3EC98F7B4EC99EC9AEC9BC7CAEC9CEC9DEC9EEC9FECA0ED40ED41BECFED42ED43F7B7ED44ED45ED46ED47ED48ED49ED4AF7B6ED4BB1DEED4CF7B5ED4DED4EF7B8ED4FF7B9ED50ED51ED52ED53ED54ED55ED56ED57ED58ED59ED5AED5BED5CED5DED5EED5FED60ED61ED62ED63ED64ED65ED66ED67ED68ED69ED6AED6BED6CED6DED6EED6FED70ED71ED72ED73ED74ED75ED76ED77ED78ED79ED7AED7BED7CED7DED7EED80ED81CEA4C8CDED82BAABE8B8E8B9E8BABEC2ED83ED84ED85ED86ED87D2F4ED88D4CFC9D8ED89ED8AED8BED8CED8DED8EED8FED90ED91ED92ED93ED94ED95ED96ED97ED98ED99ED9AED9BED9CED9DED9EED9FEDA0EE40EE41EE42EE43EE44EE45EE46EE47EE48EE49EE4AEE4BEE4CEE4DEE4EEE4FEE50EE51EE52EE53EE54EE55EE56EE57EE58EE59EE5AEE5BEE5CEE5DEE5EEE5FEE60EE61EE62EE63EE64EE65EE66EE67EE68EE69EE6AEE6BEE6CEE6DEE6EEE6FEE70EE71EE72EE73EE74EE75EE76EE77EE78EE79EE7AEE7BEE7CEE7DEE7EEE80EE81EE82EE83EE84EE85EE86EE87EE88EE89EE8AEE8BEE8CEE8DEE8EEE8FEE90EE91EE92EE93EE94EE95EE96EE97EE98EE99EE9AEE9BEE9CEE9DEE9EEE9FEEA0EF40EF41EF42EF43EF44EF45D2B3B6A5C7EAF1FCCFEECBB3D0EBE7EFCDE7B9CBB6D9F1FDB0E4CBCCF1FED4A4C2ADC1ECC6C4BEB1F2A1BCD5EF46F2A2F2A3EF47F2A4D2C3C6B5EF48CDC7F2A5EF49D3B1BFC5CCE2EF4AF2A6F2A7D1D5B6EEF2A8F2A9B5DFF2AAF2ABEF4BB2FCF2ACF2ADC8A7EF4CEF4DEF4EEF4FEF50EF51EF52EF53EF54EF55EF56EF57EF58EF59EF5AEF5BEF5CEF5DEF5EEF5FEF60EF61EF62EF63EF64EF65EF66EF67EF68EF69EF6AEF6BEF6CEF6DEF6EEF6FEF70EF71B7E7EF72EF73ECA9ECAAECABEF74ECACEF75EF76C6AEECADECAEEF77EF78EF79B7C9CAB3EF7AEF7BEF7CEF7DEF7EEF80EF81E2B8F7CFEF82EF83EF84EF85EF86EF87EF88EF89EF8AEF8BEF8CEF8DEF8EEF8FEF90EF91EF92EF93EF94EF95EF96EF97EF98EF99EF9AEF9BEF9CEF9DEF9EEF9FEFA0F040F041F042F043F044F7D0F045F046B2CDF047F048F049F04AF04BF04CF04DF04EF04FF050F051F052F053F054F055F056F057F058F059F05AF05BF05CF05DF05EF05FF060F061F062F063F7D1F064F065F066F067F068F069F06AF06BF06CF06DF06EF06FF070F071F072F073F074F075F076F077F078F079F07AF07BF07CF07DF07EF080F081F082F083F084F085F086F087F088F089F7D3F7D2F08AF08BF08CF08DF08EF08FF090F091F092F093F094F095F096E2BBF097BCA2F098E2BCE2BDE2BEE2BFE2C0E2C1B7B9D2FBBDA4CACEB1A5CBC7F099E2C2B6FCC8C4E2C3F09AF09BBDC8F09CB1FDE2C4F09DB6F6E2C5C4D9F09EF09FE2C6CFDAB9DDE2C7C0A1F0A0E2C8B2F6F140E2C9F141C1F3E2CAE2CBC2F8E2CCE2CDE2CECAD7D8B8D9E5CFE3F142F143F144F145F146F147F148F149F14AF14BF14CF0A5F14DF14EDCB0F14FF150F151F152F153F154F155F156F157F158F159F15AF15BF15CF15DF15EF15FF160F161F162F163F164F165F166F167F168F169F16AF16BF16CF16DF16EF16FF170F171F172F173F174F175F176F177F178F179F17AF17BF17CF17DF17EF180F181F182F183F184F185F186F187F188F189F18AF18BF18CF18DF18EF18FF190F191F192F193F194F195F196F197F198F199F19AF19BF19CF19DF19EF19FF1A0F240F241F242F243F244F245F246F247F248F249F24AF24BF24CF24DF24EF24FF250F251F252F253F254F255F256F257F258F259F25AF25BF25CF25DF25EF25FF260F261F262F263F264F265F266F267F268F269F26AF26BF26CF26DF26EF26FF270F271F272F273F274F275F276F277F278F279F27AF27BF27CF27DF27EF280F281F282F283F284F285F286F287F288F289F28AF28BF28CF28DF28EF28FF290F291F292F293F294F295F296F297F298F299F29AF29BF29CF29DF29EF29FF2A0F340F341F342F343F344F345F346F347F348F349F34AF34BF34CF34DF34EF34FF350F351C2EDD4A6CDD4D1B1B3DBC7FDF352B2B5C2BFE6E0CABBE6E1E6E2BED4E6E3D7A4CDD5E6E5BCDDE6E4E6E6E6E7C2EEF353BDBEE6E8C2E6BAA7E6E9F354E6EAB3D2D1E9F355F356BFA5E6EBC6EFE6ECE6EDF357F358E6EEC6ADE6EFF359C9A7E6F0E6F1E6F2E5B9E6F3E6F4C2E2E6F5E6F6D6E8E6F7F35AE6F8B9C7F35BF35CF35DF35EF35FF360F361F7BBF7BAF362F363F364F365F7BEF7BCBAA1F366F7BFF367F7C0F368F369F36AF7C2F7C1F7C4F36BF36CF7C3F36DF36EF36FF370F371F7C5F7C6F372F373F374F375F7C7F376CBE8F377F378F379F37AB8DFF37BF37CF37DF37EF380F381F7D4F382F7D5F383F384F385F386F7D6F387F388F389F38AF7D8F38BF7DAF38CF7D7F38DF38EF38FF390F391F392F393F394F395F7DBF396F7D9F397F398F399F39AF39BF39CF39DD7D7F39EF39FF3A0F440F7DCF441F442F443F444F445F446F7DDF447F448F449F7DEF44AF44BF44CF44DF44EF44FF450F451F452F453F454F7DFF455F456F457F7E0F458F459F45AF45BF45CF45DF45EF45FF460F461F462DBCBF463F464D8AAF465F466F467F468F469F46AF46BF46CE5F7B9EDF46DF46EF46FF470BFFDBBEAF7C9C6C7F7C8F471F7CAF7CCF7CBF472F473F474F7CDF475CEBAF476F7CEF477F478C4A7F479F47AF47BF47CF47DF47EF480F481F482F483F484F485F486F487F488F489F48AF48BF48CF48DF48EF48FF490F491F492F493F494F495F496F497F498F499F49AF49BF49CF49DF49EF49FF4A0F540F541F542F543F544F545F546F547F548F549F54AF54BF54CF54DF54EF54FF550F551F552F553F554F555F556F557F558F559F55AF55BF55CF55DF55EF55FF560F561F562F563F564F565F566F567F568F569F56AF56BF56CF56DF56EF56FF570F571F572F573F574F575F576F577F578F579F57AF57BF57CF57DF57EF580F581F582F583F584F585F586F587F588F589F58AF58BF58CF58DF58EF58FF590F591F592F593F594F595F596F597F598F599F59AF59BF59CF59DF59EF59FF5A0F640F641F642F643F644F645F646F647F648F649F64AF64BF64CF64DF64EF64FF650F651F652F653F654F655F656F657F658F659F65AF65BF65CF65DF65EF65FF660F661F662F663F664F665F666F667F668F669F66AF66BF66CF66DF66EF66FF670F671F672F673F674F675F676F677F678F679F67AF67BF67CF67DF67EF680F681F682F683F684F685F686F687F688F689F68AF68BF68CF68DF68EF68FF690F691F692F693F694F695F696F697F698F699F69AF69BF69CF69DF69EF69FF6A0F740F741F742F743F744F745F746F747F748F749F74AF74BF74CF74DF74EF74FF750F751F752F753F754F755F756F757F758F759F75AF75BF75CF75DF75EF75FF760F761F762F763F764F765F766F767F768F769F76AF76BF76CF76DF76EF76FF770F771F772F773F774F775F776F777F778F779F77AF77BF77CF77DF77EF780D3E3F781F782F6CFF783C2B3F6D0F784F785F6D1F6D2F6D3F6D4F786F787F6D6F788B1ABF6D7F789F6D8F6D9F6DAF78AF6DBF6DCF78BF78CF78DF78EF6DDF6DECFCAF78FF6DFF6E0F6E1F6E2F6E3F6E4C0F0F6E5F6E6F6E7F6E8F6E9F790F6EAF791F6EBF6ECF792F6EDF6EEF6EFF6F0F6F1F6F2F6F3F6F4BEA8F793F6F5F6F6F6F7F6F8F794F795F796F797F798C8FAF6F9F6FAF6FBF6FCF799F79AF6FDF6FEF7A1F7A2F7A3F7A4F7A5F79BF79CF7A6F7A7F7A8B1EEF7A9F7AAF7ABF79DF79EF7ACF7ADC1DBF7AEF79FF7A0F7AFF840F841F842F843F844F845F846F847F848F849F84AF84BF84CF84DF84EF84FF850F851F852F853F854F855F856F857F858F859F85AF85BF85CF85DF85EF85FF860F861F862F863F864F865F866F867F868F869F86AF86BF86CF86DF86EF86FF870F871F872F873F874F875F876F877F878F879F87AF87BF87CF87DF87EF880F881F882F883F884F885F886F887F888F889F88AF88BF88CF88DF88EF88FF890F891F892F893F894F895F896F897F898F899F89AF89BF89CF89DF89EF89FF8A0F940F941F942F943F944F945F946F947F948F949F94AF94BF94CF94DF94EF94FF950F951F952F953F954F955F956F957F958F959F95AF95BF95CF95DF95EF95FF960F961F962F963F964F965F966F967F968F969F96AF96BF96CF96DF96EF96FF970F971F972F973F974F975F976F977F978F979F97AF97BF97CF97DF97EF980F981F982F983F984F985F986F987F988F989F98AF98BF98CF98DF98EF98FF990F991F992F993F994F995F996F997F998F999F99AF99BF99CF99DF99EF99FF9A0FA40FA41FA42FA43FA44FA45FA46FA47FA48FA49FA4AFA4BFA4CFA4DFA4EFA4FFA50FA51FA52FA53FA54FA55FA56FA57FA58FA59FA5AFA5BFA5CFA5DFA5EFA5FFA60FA61FA62FA63FA64FA65FA66FA67FA68FA69FA6AFA6BFA6CFA6DFA6EFA6FFA70FA71FA72FA73FA74FA75FA76FA77FA78FA79FA7AFA7BFA7CFA7DFA7EFA80FA81FA82FA83FA84FA85FA86FA87FA88FA89FA8AFA8BFA8CFA8DFA8EFA8FFA90FA91FA92FA93FA94FA95FA96FA97FA98FA99FA9AFA9BFA9CFA9DFA9EFA9FFAA0FB40FB41FB42FB43FB44FB45FB46FB47FB48FB49FB4AFB4BFB4CFB4DFB4EFB4FFB50FB51FB52FB53FB54FB55FB56FB57FB58FB59FB5AFB5BC4F1F0AFBCA6F0B0C3F9FB5CC5B8D1BBFB5DF0B1F0B2F0B3F0B4F0B5D1BCFB5ED1ECFB5FF0B7F0B6D4A7FB60CDD2F0B8F0BAF0B9F0BBF0BCFB61FB62B8EBF0BDBAE8FB63F0BEF0BFBEE9F0C0B6ECF0C1F0C2F0C3F0C4C8B5F0C5F0C6FB64F0C7C5F4FB65F0C8FB66FB67FB68F0C9FB69F0CAF7BDFB6AF0CBF0CCF0CDFB6BF0CEFB6CFB6DFB6EFB6FF0CFBAD7FB70F0D0F0D1F0D2F0D3F0D4F0D5F0D6F0D8FB71FB72D3A5F0D7FB73F0D9FB74FB75FB76FB77FB78FB79FB7AFB7BFB7CFB7DF5BAC2B9FB7EFB80F7E4FB81FB82FB83FB84F7E5F7E6FB85FB86F7E7FB87FB88FB89FB8AFB8BFB8CF7E8C2B4FB8DFB8EFB8FFB90FB91FB92FB93FB94FB95F7EAFB96F7EBFB97FB98FB99FB9AFB9BFB9CC2F3FB9DFB9EFB9FFBA0FC40FC41FC42FC43FC44FC45FC46FC47FC48F4F0FC49FC4AFC4BF4EFFC4CFC4DC2E9FC4EF7E1F7E2FC4FFC50FC51FC52FC53BBC6FC54FC55FC56FC57D9E4FC58FC59FC5ACAF2C0E8F0A4FC5BBADAFC5CFC5DC7ADFC5EFC5FFC60C4ACFC61FC62F7ECF7EDF7EEFC63F7F0F7EFFC64F7F1FC65FC66F7F4FC67F7F3FC68F7F2F7F5FC69FC6AFC6BFC6CF7F6FC6DFC6EFC6FFC70FC71FC72FC73FC74FC75EDE9FC76EDEAEDEBFC77F6BCFC78FC79FC7AFC7BFC7CFC7DFC7EFC80FC81FC82FC83FC84F6BDFC85F6BEB6A6FC86D8BEFC87FC88B9C4FC89FC8AFC8BD8BBFC8CDCB1FC8DFC8EFC8FFC90FC91FC92CAF3FC93F7F7FC94FC95FC96FC97FC98FC99FC9AFC9BFC9CF7F8FC9DFC9EF7F9FC9FFCA0FD40FD41FD42FD43FD44F7FBFD45F7FAFD46B1C7FD47F7FCF7FDFD48FD49FD4AFD4BFD4CF7FEFD4DFD4EFD4FFD50FD51FD52FD53FD54FD55FD56FD57C6EBECB4FD58FD59FD5AFD5BFD5CFD5DFD5EFD5FFD60FD61FD62FD63FD64FD65FD66FD67FD68FD69FD6AFD6BFD6CFD6DFD6EFD6FFD70FD71FD72FD73FD74FD75FD76FD77FD78FD79FD7AFD7BFD7CFD7DFD7EFD80FD81FD82FD83FD84FD85B3DDF6B3FD86FD87F6B4C1E4F6B5F6B6F6B7F6B8F6B9F6BAC8A3F6BBFD88FD89FD8AFD8BFD8CFD8DFD8EFD8FFD90FD91FD92FD93C1FAB9A8EDE8FD94FD95FD96B9EAD9DFFD97FD98FD99FD9AFD9";
68
68
  encodeToGb2312(D) {
69
69
  for (var C = "", B = 0; B < D.length; B++) {
@@ -71,8 +71,8 @@ class CC {
71
71
  if (F == " ")
72
72
  C += "+";
73
73
  else if (A >= 19968 && A <= 40869) {
74
- let e = A - 19968;
75
- C += "%" + this.z.substr(e * 4, 2) + "%" + this.z.substr(e * 4 + 2, 2);
74
+ let t = A - 19968;
75
+ C += "%" + this.z.substr(t * 4, 2) + "%" + this.z.substr(t * 4 + 2, 2);
76
76
  } else
77
77
  C += "%" + D.charCodeAt(B).toString(16);
78
78
  }
@@ -90,11 +90,11 @@ class CC {
90
90
  var A = D.charAt(B);
91
91
  if (isNaN(parseInt(A)))
92
92
  try {
93
- var e = D.substr(B, 2) + D.substr(B + 3, 2);
93
+ var t = D.substr(B, 2) + D.substr(B + 3, 2);
94
94
  B = B + 4;
95
- for (var t = -1; (t = this.z.indexOf(e, t + 1)) != -1; )
96
- if (t % 4 == 0) {
97
- C += String.fromCharCode(t / 4 + 19968);
95
+ for (var e = -1; (e = this.z.indexOf(t, e + 1)) != -1; )
96
+ if (e % 4 == 0) {
97
+ C += String.fromCharCode(e / 4 + 19968);
98
98
  break;
99
99
  }
100
100
  } catch {
@@ -112,8 +112,8 @@ class CC {
112
112
  return C;
113
113
  }
114
114
  }
115
- let w = new CC();
116
- class l {
115
+ let y = new BC();
116
+ class a {
117
117
  static kOrigin;
118
118
  imp;
119
119
  constructor(D, C, B) {
@@ -132,7 +132,7 @@ class l {
132
132
  return this.imp.subvec(D.imp), this;
133
133
  }
134
134
  sub(D) {
135
- return new g(this.imp.sub(D.imp));
135
+ return new w(this.imp.sub(D.imp));
136
136
  }
137
137
  distanceTo(D) {
138
138
  return this.imp.distanceTo(D.imp);
@@ -141,7 +141,7 @@ class l {
141
141
  return this.imp.isEqualTo(D.imp);
142
142
  }
143
143
  clone() {
144
- return new l(this.imp);
144
+ return new a(this.imp);
145
145
  }
146
146
  get x() {
147
147
  return this.imp.x;
@@ -162,7 +162,7 @@ class l {
162
162
  this.imp.z = D;
163
163
  }
164
164
  }
165
- class g {
165
+ class w {
166
166
  static kXAxis;
167
167
  static kYAxis;
168
168
  static kZAxis;
@@ -174,7 +174,7 @@ class g {
174
174
  return this.imp.x = D.imp.x, this.imp.y = D.imp.y, this.imp.z = D.imp.z, this;
175
175
  }
176
176
  clone() {
177
- return new g(this.imp);
177
+ return new w(this.imp);
178
178
  }
179
179
  rotateBy(D, C) {
180
180
  return this.imp.rotateBy(D, C.imp), this;
@@ -207,7 +207,7 @@ class g {
207
207
  return this.imp.dotProduct(D.imp);
208
208
  }
209
209
  crossProduct(D) {
210
- let C = new g();
210
+ let C = new w();
211
211
  return C.imp = this.imp.crossProduct(D.imp), C;
212
212
  }
213
213
  isEqualTo(D) {
@@ -232,7 +232,7 @@ class g {
232
232
  this.imp.z = D;
233
233
  }
234
234
  }
235
- class W {
235
+ class z {
236
236
  static kIdentity;
237
237
  imp;
238
238
  constructor(D) {
@@ -242,7 +242,7 @@ class W {
242
242
  return this.imp.copy(D.imp), this;
243
243
  }
244
244
  clone() {
245
- return new W(this.imp);
245
+ return new z(this.imp);
246
246
  }
247
247
  setToIdentity() {
248
248
  return this.imp.setToIdentity(), this;
@@ -290,7 +290,7 @@ class W {
290
290
  return this.imp.getData(D, C);
291
291
  }
292
292
  }
293
- class BC {
293
+ class EC {
294
294
  imp;
295
295
  constructor(D) {
296
296
  this.imp = new i.mxcadassemblyimp.MdGeLongArray(), D instanceof Object && this.imp.copy(D);
@@ -311,7 +311,7 @@ class BC {
311
311
  this.imp.setAt(D, C);
312
312
  }
313
313
  }
314
- class hD {
314
+ class yD {
315
315
  imp;
316
316
  constructor(D) {
317
317
  this.imp = new i.mxcadassemblyimp.MdGeStringArray(), D instanceof Object && this.imp.copy(D);
@@ -326,18 +326,18 @@ class hD {
326
326
  return this.imp.length();
327
327
  }
328
328
  at(D, C = !0) {
329
- return C ? w.decodeFromGb2312(this.imp.at(D)) : this.imp.at(D);
329
+ return C ? y.decodeFromGb2312(this.imp.at(D)) : this.imp.at(D);
330
330
  }
331
331
  setAt(D, C, B = !0) {
332
- B ? this.imp.setAt(D, w.encodeToGb2312(C)) : this.imp.setAt(D, C);
332
+ B ? this.imp.setAt(D, y.encodeToGb2312(C)) : this.imp.setAt(D, C);
333
333
  }
334
334
  forEach(D, C = !0) {
335
335
  let B = this.imp.length();
336
336
  for (let F = 0; F < B; F++)
337
- D(C ? w.decodeFromGb2312(this.imp.at(F)) : this.imp.at(F), F);
337
+ D(C ? y.decodeFromGb2312(this.imp.at(F)) : this.imp.at(F), F);
338
338
  }
339
339
  }
340
- class EC {
340
+ class FC {
341
341
  imp;
342
342
  constructor(D) {
343
343
  this.imp = new i.mxcadassemblyimp.MdGePoint3dArray(), D instanceof Object && this.imp.copy(D);
@@ -352,19 +352,19 @@ class EC {
352
352
  return this.imp.length();
353
353
  }
354
354
  at(D) {
355
- return new l(this.imp.at(D));
355
+ return new a(this.imp.at(D));
356
356
  }
357
357
  setAt(D, C) {
358
358
  this.imp.setAt(D, C.imp);
359
359
  }
360
360
  }
361
- const FC = new FinalizationRegistry((E) => {
361
+ const AC = new FinalizationRegistry((E) => {
362
362
  i.App.DestroyObject(E);
363
- }), AC = {};
364
- class O {
363
+ }), tC = {};
364
+ class j {
365
365
  imp = 0;
366
366
  constructor(D) {
367
- this.imp = D, this.imp && FC.register(this, D, AC);
367
+ this.imp = D, this.imp && AC.register(this, D, tC);
368
368
  }
369
369
  getImp() {
370
370
  return this.imp;
@@ -380,10 +380,10 @@ class O {
380
380
  }
381
381
  getJson() {
382
382
  let D = this.imp.getJson();
383
- return w.decodeFromGb2312(D);
383
+ return y.decodeFromGb2312(D);
384
384
  }
385
385
  setJson(D) {
386
- let C = w.encodeToGb2312(D);
386
+ let C = y.encodeToGb2312(D);
387
387
  return this.imp.setJson(C);
388
388
  }
389
389
  }
@@ -398,7 +398,7 @@ class T {
398
398
  return this.type != 2 && this.id != 0;
399
399
  }
400
400
  erase() {
401
- this.type == 1 ? d.getCurrentDraw().eraseMxEntity(this.id) : this.type == 0 && iD.eraseEntity(this.id);
401
+ this.type == 1 ? h.getCurrentDraw().eraseMxEntity(this.id) : this.type == 0 && sD.eraseEntity(this.id);
402
402
  }
403
403
  getMcDbObject() {
404
404
  return this.type == 0 ? i.App.ObjectIdToObject(this.id) : null;
@@ -407,17 +407,17 @@ class T {
407
407
  if (this.type == 0)
408
408
  return i.App.getImp().ObjectIdToObjectName(this.id);
409
409
  if (this.type == 1) {
410
- let D = d.getCurrentDraw().getMxEntity(this.id);
410
+ let D = h.getCurrentDraw().getMxEntity(this.id);
411
411
  if (D)
412
412
  return D.getTypeName();
413
413
  }
414
414
  return "";
415
415
  }
416
416
  getMxDbEntity() {
417
- return this.type == 1 ? d.getCurrentDraw().getMxEntity(this.id) : null;
417
+ return this.type == 1 ? h.getCurrentDraw().getMxEntity(this.id) : null;
418
418
  }
419
419
  }
420
- class v extends O {
420
+ class v extends j {
421
421
  constructor(D) {
422
422
  super(D);
423
423
  }
@@ -435,13 +435,13 @@ class v extends O {
435
435
  return this.imp.GetHandle();
436
436
  }
437
437
  GetDatabase() {
438
- return new ED(this.imp.GetDatabase());
438
+ return new FD(this.imp.GetDatabase());
439
439
  }
440
440
  GetOwnerID() {
441
441
  return this.imp.GetOwnerID();
442
442
  }
443
443
  }
444
- var CD;
444
+ var BD;
445
445
  ((E) => {
446
446
  ((D) => {
447
447
  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";
@@ -452,8 +452,8 @@ var CD;
452
452
  })(E.AttachmentPoint || (E.AttachmentPoint = {})), ((D) => {
453
453
  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";
454
454
  })(E.LineWeight || (E.LineWeight = {}));
455
- })(CD || (CD = {}));
456
- class j {
455
+ })(BD || (BD = {}));
456
+ class G {
457
457
  imp;
458
458
  constructor(D, C, B) {
459
459
  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) : typeof D == "number" && typeof C == "number" && typeof B == "number" && this.imp.setRGB(D, C, B);
@@ -465,7 +465,7 @@ class j {
465
465
  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;
466
466
  }
467
467
  clone() {
468
- return new j(this.imp);
468
+ return new G(this.imp);
469
469
  }
470
470
  setColorIndex(D) {
471
471
  this.imp.setColorIndex(D);
@@ -510,7 +510,7 @@ class j {
510
510
  this.imp.colorIndex = D;
511
511
  }
512
512
  }
513
- class tC extends v {
513
+ class eC extends v {
514
514
  constructor(D) {
515
515
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbLayerTableRecord());
516
516
  }
@@ -539,7 +539,7 @@ class tC extends v {
539
539
  this.imp.setIsLocked(D);
540
540
  }
541
541
  get color() {
542
- return new j(this.imp.color());
542
+ return new G(this.imp.color());
543
543
  }
544
544
  set color(D) {
545
545
  this.imp.setColor(D.getImp());
@@ -557,39 +557,39 @@ class tC extends v {
557
557
  this.imp.setLineWeight(D);
558
558
  }
559
559
  }
560
- class wD extends v {
560
+ class gD extends v {
561
561
  constructor(D) {
562
562
  super(D);
563
563
  }
564
564
  }
565
- class yD extends v {
565
+ class bD extends v {
566
566
  constructor(D) {
567
567
  super(D);
568
568
  }
569
569
  }
570
- class gD extends v {
570
+ class xD extends v {
571
571
  constructor(D) {
572
572
  super(D);
573
573
  }
574
574
  }
575
- class ED extends O {
575
+ class FD extends j {
576
576
  constructor(D) {
577
577
  super(D);
578
578
  }
579
579
  GetLayerTable() {
580
- return new wD(this.imp.GetLayerTable());
580
+ return new gD(this.imp.GetLayerTable());
581
581
  }
582
582
  GetLinetypeTable() {
583
- return new yD(this.imp.GetLinetypeTable());
583
+ return new bD(this.imp.GetLinetypeTable());
584
584
  }
585
585
  GetTextStyleTable() {
586
- return new gD(this.imp.GetTextStyleTable());
586
+ return new xD(this.imp.GetTextStyleTable());
587
587
  }
588
588
  GetBlockTable() {
589
- return new fD(this.imp.GetBlockTable());
589
+ return new TD(this.imp.GetBlockTable());
590
590
  }
591
591
  CurrentSpace() {
592
- return new Y(this.imp.CurrentSpace());
592
+ return new Q(this.imp.CurrentSpace());
593
593
  }
594
594
  GetCurrentlyLineTypeScale() {
595
595
  return this.imp.GetCurrentlyLineTypeScale();
@@ -599,22 +599,22 @@ class ED extends O {
599
599
  }
600
600
  GetCurrentlyLineTypeName() {
601
601
  let D = this.imp.GetCurrentlyLineTypeName();
602
- return w.decodeFromGb2312(D);
602
+ return y.decodeFromGb2312(D);
603
603
  }
604
604
  SetCurrentlyLineTypeName(D) {
605
- let C = w.encodeToGb2312(D);
605
+ let C = y.encodeToGb2312(D);
606
606
  this.imp.SetCurrentlyLineTypeName(C);
607
607
  }
608
608
  GetCurrentlyLayerName() {
609
609
  let D = this.imp.GetCurrentlyLayerName();
610
- return w.decodeFromGb2312(D);
610
+ return y.decodeFromGb2312(D);
611
611
  }
612
612
  SetCurrentlyLayerName(D) {
613
- let C = w.encodeToGb2312(D);
613
+ let C = y.encodeToGb2312(D);
614
614
  this.imp.SetCurrentlyLayerName(C);
615
615
  }
616
616
  GetCurrentlyTrueColor() {
617
- return new j(this.imp.GetCurrentlyTrueColor());
617
+ return new G(this.imp.GetCurrentlyTrueColor());
618
618
  }
619
619
  GetCurrentlyDrawColor() {
620
620
  let D = this.imp.GetCurrentlyDrawColor(), C = new THREE.Color();
@@ -631,14 +631,14 @@ class ED extends O {
631
631
  }
632
632
  GetCurrentlyTextStyleName() {
633
633
  let D = this.imp.GetCurrentlyTextStyleName();
634
- return w.decodeFromGb2312(D);
634
+ return y.decodeFromGb2312(D);
635
635
  }
636
636
  SetCurrentlyTextStyle(D) {
637
- let C = w.encodeToGb2312(D);
637
+ let C = y.encodeToGb2312(D);
638
638
  this.imp.SetCurrentlyTextStyle(C);
639
639
  }
640
640
  }
641
- class bD extends O {
641
+ class fD extends j {
642
642
  constructor(D) {
643
643
  super(D);
644
644
  }
@@ -655,7 +655,7 @@ class bD extends O {
655
655
  return this.imp.step(D, C);
656
656
  }
657
657
  }
658
- class Y extends v {
658
+ class Q extends v {
659
659
  constructor(D) {
660
660
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbBlockTableRecord());
661
661
  }
@@ -667,16 +667,16 @@ class Y extends v {
667
667
  }
668
668
  newIterator(D = !0, C = !0) {
669
669
  let B = this.imp.newIterator(D, C);
670
- return new bD(B);
670
+ return new fD(B);
671
671
  }
672
672
  get origin() {
673
- return new l(this.imp.origin());
673
+ return new a(this.imp.origin());
674
674
  }
675
675
  set origin(D) {
676
676
  this.imp.setOrigin(D.imp);
677
677
  }
678
678
  }
679
- class xD extends O {
679
+ class MD extends j {
680
680
  constructor(D) {
681
681
  super(D);
682
682
  }
@@ -688,41 +688,41 @@ class xD extends O {
688
688
  }
689
689
  getRecord() {
690
690
  let D = this.imp.getRecord();
691
- return new Y(D);
691
+ return new Q(D);
692
692
  }
693
693
  step(D = !0, C = !0) {
694
694
  this.imp.start(D, C);
695
695
  }
696
696
  }
697
- class fD extends v {
697
+ class TD extends v {
698
698
  constructor(D) {
699
699
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbBlockTable());
700
700
  }
701
701
  getAt(D) {
702
702
  let C = this.getAt(D);
703
- return C && new Y(C);
703
+ return C && new Q(C);
704
704
  }
705
705
  has(D) {
706
706
  return this.imp.has(D);
707
707
  }
708
708
  newIterator(D = !0, C = !0) {
709
709
  let B = this.imp.newIterator(D, C);
710
- return new xD(B);
710
+ return new MD(B);
711
711
  }
712
712
  add(D) {
713
713
  return this.imp.add(D.getImp());
714
714
  }
715
715
  }
716
- class V extends v {
716
+ class K extends v {
717
717
  constructor(D) {
718
718
  super(D);
719
719
  }
720
720
  explode() {
721
721
  let D = this.imp.explode();
722
- return new H(D);
722
+ return new q(D);
723
723
  }
724
724
  get trueColor() {
725
- return new j(this.imp.TrueColor());
725
+ return new G(this.imp.TrueColor());
726
726
  }
727
727
  set trueColor(D) {
728
728
  this.imp.SetTrueColor(D.getImp());
@@ -785,16 +785,16 @@ class V extends v {
785
785
  let D = this.imp.GetBoundingBox();
786
786
  if (D) {
787
787
  let C = {
788
- minPt: new l(D.AtPoint(0).val),
789
- maxPt: new l(D.AtPoint(1).val),
788
+ minPt: new a(D.AtPoint(0).val),
789
+ maxPt: new a(D.AtPoint(1).val),
790
790
  ret: 0
791
791
  };
792
792
  return i.App.DestroyObject(D), C;
793
793
  } else
794
- return { minPt: new l(), maxPt: new l(), ret: 1 };
794
+ return { minPt: new a(), maxPt: new a(), ret: 1 };
795
795
  }
796
796
  }
797
- class q extends V {
797
+ class H extends K {
798
798
  constructor(D) {
799
799
  super(D);
800
800
  }
@@ -815,25 +815,25 @@ class q extends V {
815
815
  }
816
816
  getPointAtDist(D) {
817
817
  return {
818
- val: new l(this.imp.getPointAtDist(D)),
818
+ val: new a(this.imp.getPointAtDist(D)),
819
819
  ret: i.getCallResult()
820
820
  };
821
821
  }
822
822
  getStartPoint() {
823
823
  return {
824
- val: new l(this.imp.getStartPoint()),
824
+ val: new a(this.imp.getStartPoint()),
825
825
  ret: i.getCallResult()
826
826
  };
827
827
  }
828
828
  getEndPoint() {
829
829
  return {
830
- val: new l(this.imp.getStartPoint()),
830
+ val: new a(this.imp.getStartPoint()),
831
831
  ret: i.getCallResult()
832
832
  };
833
833
  }
834
834
  getPointAtParam(D) {
835
835
  return {
836
- val: new l(this.imp.getPointAtParam(D)),
836
+ val: new a(this.imp.getPointAtParam(D)),
837
837
  ret: i.getCallResult()
838
838
  };
839
839
  }
@@ -845,70 +845,70 @@ class q extends V {
845
845
  }
846
846
  getFirstDeriv(D) {
847
847
  return {
848
- val: new g(this.imp.getFirstDeriv(D)),
848
+ val: new w(this.imp.getFirstDeriv(D)),
849
849
  ret: i.getCallResult()
850
850
  };
851
851
  }
852
852
  getFirstDerivEx(D) {
853
853
  return {
854
- val: new g(this.imp.getFirstDerivEx(D.imp)),
854
+ val: new w(this.imp.getFirstDerivEx(D.imp)),
855
855
  ret: i.getCallResult()
856
856
  };
857
857
  }
858
858
  getClosestPointTo(D, C) {
859
859
  return {
860
- val: new l(this.imp.getClosestPointTo(D.imp, C)),
860
+ val: new a(this.imp.getClosestPointTo(D.imp, C)),
861
861
  ret: i.getCallResult()
862
862
  };
863
863
  }
864
864
  offsetCurves(D, C) {
865
865
  let B = this.imp.offsetCurves(D, C.imp);
866
- return new H(B);
866
+ return new q(B);
867
867
  }
868
868
  splitCurves(D) {
869
869
  let C = this.imp.splitCurves(D);
870
- return new H(C);
870
+ return new q(C);
871
871
  }
872
872
  getArea() {
873
873
  return { val: this.imp.getArea(), ret: i.getCallResult() };
874
874
  }
875
875
  getSamplePoints(D) {
876
876
  let C = this.imp.getSamplePoints(D);
877
- return new H(C);
877
+ return new q(C);
878
878
  }
879
879
  getLength() {
880
880
  return { val: this.imp.getLength(), ret: i.getCallResult() };
881
881
  }
882
882
  }
883
- class Z extends q {
884
- constructor(D, C, B, F, A, e) {
885
- D instanceof Object ? D instanceof l ? (super(), this.initTempObject(new i.mxcadassemblyimp.MdDbLine()), C instanceof l && (this.startPoint = D, this.endPoint = C)) : super(D) : (super(), this.initTempObject(new i.mxcadassemblyimp.MdDbLine()), this.startPoint = new l(D, C, B), this.endPoint = new l(F, A, e));
883
+ class Y extends H {
884
+ constructor(D, C, B, F, A, t) {
885
+ D instanceof Object ? D instanceof a ? (super(), this.initTempObject(new i.mxcadassemblyimp.MdDbLine()), C instanceof a && (this.startPoint = D, this.endPoint = C)) : super(D) : (super(), this.initTempObject(new i.mxcadassemblyimp.MdDbLine()), this.startPoint = new a(D, C, B), this.endPoint = new a(F, A, t));
886
886
  }
887
887
  get startPoint() {
888
- return new l(this.imp.startPoint());
888
+ return new a(this.imp.startPoint());
889
889
  }
890
890
  set startPoint(D) {
891
891
  this.imp.setStartPoint(D.imp);
892
892
  }
893
893
  get endPoint() {
894
- return new l(this.imp.endPoint());
894
+ return new a(this.imp.endPoint());
895
895
  }
896
896
  set endPoint(D) {
897
897
  this.imp.setEndPoint(D.imp);
898
898
  }
899
899
  }
900
- class BD extends V {
900
+ class ED extends K {
901
901
  constructor(D) {
902
902
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbText());
903
903
  }
904
904
  get position() {
905
- return new l(this.imp.position());
905
+ return new a(this.imp.position());
906
906
  }
907
907
  set position(D) {
908
908
  this.imp.setPosition(D.imp);
909
909
  }
910
910
  get alignmentPoint() {
911
- return new l(this.imp.position());
911
+ return new a(this.imp.position());
912
912
  }
913
913
  set alignmentPoint(D) {
914
914
  this.imp.setAlignmentPoint(D.imp);
@@ -938,10 +938,10 @@ class BD extends V {
938
938
  this.imp.setWidthFactor(D);
939
939
  }
940
940
  get textString() {
941
- return w.decodeFromGb2312(this.imp.textString());
941
+ return y.decodeFromGb2312(this.imp.textString());
942
942
  }
943
943
  set textString(D) {
944
- this.imp.setTextString(w.encodeToGb2312(D));
944
+ this.imp.setTextString(y.encodeToGb2312(D));
945
945
  }
946
946
  get horizontalMode() {
947
947
  return this.imp.horizontalMode();
@@ -956,12 +956,12 @@ class BD extends V {
956
956
  this.imp.setVerticalMode(D);
957
957
  }
958
958
  }
959
- class FD extends V {
959
+ class AD extends K {
960
960
  constructor(D) {
961
961
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbMText());
962
962
  }
963
963
  get location() {
964
- return new l(this.imp.location());
964
+ return new a(this.imp.location());
965
965
  }
966
966
  set location(D) {
967
967
  this.imp.setLocation(D.imp);
@@ -991,21 +991,21 @@ class FD extends V {
991
991
  this.imp.setAttachment(D);
992
992
  }
993
993
  get contents() {
994
- return w.decodeFromGb2312(this.imp.contents());
994
+ return y.decodeFromGb2312(this.imp.contents());
995
995
  }
996
996
  set contents(D) {
997
- this.imp.setContents(w.encodeToGb2312(D));
997
+ this.imp.setContents(y.encodeToGb2312(D));
998
998
  }
999
999
  }
1000
- class AD extends q {
1001
- constructor(D) {
1002
- super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbCircle());
1000
+ class O extends H {
1001
+ constructor(D, C, B, F) {
1002
+ D instanceof Object ? super(D) : (super(), this.initTempObject(new i.mxcadassemblyimp.MdDbCircle()), typeof D == "number" && (this.imp.setCenter(new a(D, C, B).imp), this.imp.setRadius(F)));
1003
1003
  }
1004
1004
  setCenter(D, C, B) {
1005
- this.imp.setCenter(new l(D, C, B).imp);
1005
+ this.imp.setCenter(new a(D, C, B).imp);
1006
1006
  }
1007
1007
  get center() {
1008
- return new l(this.imp.center());
1008
+ return new a(this.imp.center());
1009
1009
  }
1010
1010
  set center(D) {
1011
1011
  this.imp.setCenter(D.imp);
@@ -1017,7 +1017,7 @@ class AD extends q {
1017
1017
  this.imp.setRadius(D);
1018
1018
  }
1019
1019
  }
1020
- class MD extends q {
1020
+ class tD extends H {
1021
1021
  constructor(D) {
1022
1022
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbPolyline());
1023
1023
  }
@@ -1033,8 +1033,12 @@ class MD extends q {
1033
1033
  set constantWidth(D) {
1034
1034
  this.imp.setConstantWidth(D);
1035
1035
  }
1036
- addVertexAt(D, C, B, F, A) {
1037
- return this.imp.addVertexAt(D, C.imp, B, F, A);
1036
+ addVertexAt(D, C = 0, B = 0, F = 0, A = 0) {
1037
+ if (D instanceof THREE.Vector3) {
1038
+ let t = new i.mxcadassemblyimp.MdGePoint3d();
1039
+ return t.x = D.x, t.y = D.y, t.z = D.z, this.imp.addVertexAt(A, t, C, B, F);
1040
+ } else
1041
+ return this.imp.addVertexAt(A, D.imp, C, B, F);
1038
1042
  }
1039
1043
  removeVertexAt(D) {
1040
1044
  return this.imp.removeVertexAt(D);
@@ -1062,7 +1066,7 @@ class MD extends q {
1062
1066
  return this.imp.setBulgeAt(D, C);
1063
1067
  }
1064
1068
  }
1065
- class TD extends V {
1069
+ class kD extends K {
1066
1070
  constructor(D) {
1067
1071
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbBlockReference());
1068
1072
  }
@@ -1073,7 +1077,7 @@ class TD extends V {
1073
1077
  this.imp.setBlockTableRecordId(D.id);
1074
1078
  }
1075
1079
  get position() {
1076
- return new l(this.imp.position());
1080
+ return new a(this.imp.position());
1077
1081
  }
1078
1082
  set position(D) {
1079
1083
  this.imp.setPosition(D.imp);
@@ -1091,18 +1095,18 @@ class TD extends V {
1091
1095
  this.imp.setRotation(D);
1092
1096
  }
1093
1097
  get blockTransform() {
1094
- return new W(this.imp.blockTransform());
1098
+ return new z(this.imp.blockTransform());
1095
1099
  }
1096
1100
  set blockTransform(D) {
1097
1101
  this.imp.setBlockTransform(D.imp);
1098
1102
  }
1099
1103
  }
1100
- class tD extends V {
1104
+ class eD extends K {
1101
1105
  constructor(D) {
1102
1106
  super(D);
1103
1107
  }
1104
1108
  get textPosition() {
1105
- return new l(this.imp.textPosition());
1109
+ return new a(this.imp.textPosition());
1106
1110
  }
1107
1111
  set textPosition(D) {
1108
1112
  this.imp.setTextPosition(D.imp);
@@ -1183,24 +1187,24 @@ class tD extends V {
1183
1187
  this.imp.SetDimVarObjectId(D, C.id);
1184
1188
  }
1185
1189
  }
1186
- class kD extends tD {
1190
+ class PD extends eD {
1187
1191
  constructor(D) {
1188
1192
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbAlignedDimension());
1189
1193
  }
1190
1194
  get xLine1Point() {
1191
- return new l(this.imp.xLine1Point());
1195
+ return new a(this.imp.xLine1Point());
1192
1196
  }
1193
1197
  set xLine1Point(D) {
1194
1198
  this.imp.setXLine1Point(D.imp);
1195
1199
  }
1196
1200
  get xLine2Point() {
1197
- return new l(this.imp.xLine2Point());
1201
+ return new a(this.imp.xLine2Point());
1198
1202
  }
1199
1203
  set xLine2Point(D) {
1200
1204
  this.imp.setXLine2Point(D.imp);
1201
1205
  }
1202
1206
  get dimLinePoint() {
1203
- return new l(this.imp.dimLinePoint());
1207
+ return new a(this.imp.dimLinePoint());
1204
1208
  }
1205
1209
  set dimLinePoint(D) {
1206
1210
  this.imp.setDimLinePoint(D.imp);
@@ -1212,24 +1216,24 @@ class kD extends tD {
1212
1216
  this.imp.setOblique(D);
1213
1217
  }
1214
1218
  }
1215
- class PD extends tD {
1219
+ class RD extends eD {
1216
1220
  constructor(D) {
1217
1221
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbRotatedDimension());
1218
1222
  }
1219
1223
  get xLine1Point() {
1220
- return new l(this.imp.xLine1Point());
1224
+ return new a(this.imp.xLine1Point());
1221
1225
  }
1222
1226
  set xLine1Point(D) {
1223
1227
  this.imp.setXLine1Point(D.imp);
1224
1228
  }
1225
1229
  get xLine2Point() {
1226
- return new l(this.imp.xLine2Point());
1230
+ return new a(this.imp.xLine2Point());
1227
1231
  }
1228
1232
  set xLine2Point(D) {
1229
1233
  this.imp.setXLine2Point(D.imp);
1230
1234
  }
1231
1235
  get dimLinePoint() {
1232
- return new l(this.imp.dimLinePoint());
1236
+ return new a(this.imp.dimLinePoint());
1233
1237
  }
1234
1238
  set dimLinePoint(D) {
1235
1239
  this.imp.setDimLinePoint(D.imp);
@@ -1247,15 +1251,15 @@ class PD extends tD {
1247
1251
  this.imp.setRotation(D);
1248
1252
  }
1249
1253
  }
1250
- class eD extends q {
1254
+ class iD extends H {
1251
1255
  constructor(D) {
1252
1256
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbArc());
1253
1257
  }
1254
1258
  setCenter(D, C, B) {
1255
- this.imp.setCenter(new l(D, C, B).imp);
1259
+ this.imp.setCenter(new a(D, C, B).imp);
1256
1260
  }
1257
1261
  get center() {
1258
- return new l(this.imp.center());
1262
+ return new a(this.imp.center());
1259
1263
  }
1260
1264
  set center(D) {
1261
1265
  this.imp.setCenter(D.imp);
@@ -1278,15 +1282,72 @@ class eD extends q {
1278
1282
  set endAngle(D) {
1279
1283
  this.imp.setEndAngle(D);
1280
1284
  }
1281
- computeArc(D, C, B, F, A, e) {
1282
- return this.imp.computeArc(D, C, B, F, A, e);
1285
+ computeArc(D, C, B, F, A, t) {
1286
+ return this.imp.computeArc(
1287
+ D,
1288
+ C,
1289
+ B,
1290
+ F,
1291
+ A,
1292
+ t
1293
+ );
1294
+ }
1295
+ }
1296
+ class rD extends H {
1297
+ constructor(D, C, B, F, A, t, e, r, s) {
1298
+ D instanceof Object ? super(D) : (super(), this.initTempObject(new i.mxcadassemblyimp.MdDbEllipse()), typeof D == "number" && (e || (e = 1), typeof r != "number" && (r = 0), typeof s != "number" && (s = 6.283185307179586), this.imp.Init(new a(D, C, B).imp, new w(F, A, t).imp, e, r, s)));
1299
+ }
1300
+ setCenter(D, C, B) {
1301
+ this.imp.setCenter(new a(D, C, B).imp);
1302
+ }
1303
+ get center() {
1304
+ return new a(this.imp.center());
1305
+ }
1306
+ set center(D) {
1307
+ this.imp.setCenter(D.imp);
1308
+ }
1309
+ setMajorAxis(D, C, B) {
1310
+ this.imp.setMajorAxis(new w(D, C, B).imp);
1311
+ }
1312
+ get majorAxis() {
1313
+ return new w(this.imp.majorAxis());
1314
+ }
1315
+ set majorAxis(D) {
1316
+ this.imp.setMajorAxis(D.imp);
1317
+ }
1318
+ setMinorAxis(D, C, B) {
1319
+ this.imp.setMinorAxis(new w(D, C, B).imp);
1320
+ }
1321
+ get minorAxis() {
1322
+ return new w(this.imp.minorAxis());
1323
+ }
1324
+ set minorAxis(D) {
1325
+ this.imp.setMinorAxis(D.imp);
1326
+ }
1327
+ get radiusRatio() {
1328
+ return this.imp.radiusRatio();
1329
+ }
1330
+ set radiusRatio(D) {
1331
+ this.imp.setRadiusRatio(D);
1332
+ }
1333
+ get startAngle() {
1334
+ return this.imp.startAngle();
1335
+ }
1336
+ set startAngle(D) {
1337
+ this.imp.setStartAngle(D);
1338
+ }
1339
+ get endAngle() {
1340
+ return this.imp.endAngle();
1341
+ }
1342
+ set endAngle(D) {
1343
+ this.imp.setEndAngle(D);
1283
1344
  }
1284
1345
  }
1285
- function K(E = null) {
1346
+ function N(E = null) {
1286
1347
  let D;
1287
1348
  return E == null ? D = new i.mxcadassemblyimp.McDrawResbuf() : D = E.getImp(), D;
1288
1349
  }
1289
- class H extends O {
1350
+ class q extends j {
1290
1351
  constructor(D) {
1291
1352
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.McDrawResbuf());
1292
1353
  }
@@ -1306,7 +1367,7 @@ class H extends O {
1306
1367
  if (this.imp.AtObjectName(D) == "McDbMText") {
1307
1368
  let B = this.imp.AtObjectMdDbMText(D);
1308
1369
  if (B)
1309
- return { val: new FD(B), ret: i.getCallResult() };
1370
+ return { val: new AD(B), ret: i.getCallResult() };
1310
1371
  }
1311
1372
  return { val: void 0, ret: -1 };
1312
1373
  }
@@ -1317,10 +1378,10 @@ class H extends O {
1317
1378
  return { val: new T(this.imp.AtObjectId(D), f.kMxCAD), ret: i.getCallResult() };
1318
1379
  }
1319
1380
  AtString(D, C = !0) {
1320
- return C ? { val: w.decodeFromGb2312(this.imp.AtString(D)), ret: i.getCallResult() } : { val: this.imp.AtString(D), ret: i.getCallResult() };
1381
+ return C ? { val: y.decodeFromGb2312(this.imp.AtString(D)), ret: i.getCallResult() } : { val: this.imp.AtString(D), ret: i.getCallResult() };
1321
1382
  }
1322
1383
  AtPoint(D) {
1323
- return { val: new l(this.imp.AtPoint(D)), ret: i.getCallResult() };
1384
+ return { val: new a(this.imp.AtPoint(D)), ret: i.getCallResult() };
1324
1385
  }
1325
1386
  ItemDataType() {
1326
1387
  return this.imp.ItemDataType();
@@ -1335,7 +1396,7 @@ class H extends O {
1335
1396
  return this.imp.AddObjectId(D, C);
1336
1397
  }
1337
1398
  AddString(D, C = -10, B = !0) {
1338
- return B ? this.imp.AddString(w.encodeToGb2312(D), C) : this.imp.AddString(D, C);
1399
+ return B ? this.imp.AddString(y.encodeToGb2312(D), C) : this.imp.AddString(D, C);
1339
1400
  }
1340
1401
  AddPoint(D, C = -10) {
1341
1402
  return this.imp.AddPoint(D.imp, C);
@@ -1359,25 +1420,25 @@ class LD {
1359
1420
  }
1360
1421
  findEntAtPoint(D, C, B, F = -1, A = null) {
1361
1422
  this.init();
1362
- let e = this.imp.findEntAtPoint(D, C, B, F, K(A));
1363
- return new T(e, f.kMxCAD);
1423
+ let t = this.imp.findEntAtPoint(D, C, B, F, N(A));
1424
+ return new T(t, f.kMxCAD);
1364
1425
  }
1365
1426
  selectEnt(D, C = null) {
1366
1427
  return this.init(), new Promise(async (B) => {
1367
1428
  const F = new S();
1368
- D && F.setMessage(D), F.setCursorType(_D.kRect);
1429
+ D && F.setMessage(D), F.setCursorType($D.kRect);
1369
1430
  let A = await F.go();
1370
1431
  if (!A) {
1371
1432
  B([]);
1372
1433
  return;
1373
1434
  }
1374
- $D.findEntAtPoint(A).then((e) => {
1375
- let t = [];
1376
- e.forEach((r) => {
1377
- t.push(new T(r, f.kMxDraw));
1435
+ JD.findEntAtPoint(A).then((t) => {
1436
+ let e = [];
1437
+ t.forEach((s) => {
1438
+ e.push(new T(s, f.kMxDraw));
1378
1439
  });
1379
- let n = this.findEntAtPoint(A.x, A.y, A.z, -1, C);
1380
- n.isValid() && t.push(n), B(t);
1440
+ let r = this.findEntAtPoint(A.x, A.y, A.z, -1, C);
1441
+ r.isValid() && e.push(r), B(e);
1381
1442
  });
1382
1443
  });
1383
1444
  }
@@ -1385,19 +1446,19 @@ class LD {
1385
1446
  this.imp || (this.imp = new i.mxcadassemblyimp.McDrawUtility());
1386
1447
  }
1387
1448
  }
1388
- let iD = new LD();
1389
- class eC extends O {
1449
+ let sD = new LD();
1450
+ class iC extends j {
1390
1451
  constructor() {
1391
1452
  super(), this.initTempObject(new i.mxcadassemblyimp.McDrawSelSet());
1392
1453
  }
1393
1454
  allSelect(D = null) {
1394
- return this.imp.allSelect(K(D));
1455
+ return this.imp.allSelect(N(D));
1395
1456
  }
1396
1457
  pointSelect(D, C, B = null, F = -1) {
1397
- return this.imp.pointSelect(D, C, K(B), F);
1458
+ return this.imp.pointSelect(D, C, N(B), F);
1398
1459
  }
1399
1460
  crossingSelect(D, C, B, F, A = null) {
1400
- return this.imp.crossingSelect(D, C, B, F, K(A));
1461
+ return this.imp.crossingSelect(D, C, B, F, N(A));
1401
1462
  }
1402
1463
  count() {
1403
1464
  return this.imp.count();
@@ -1434,10 +1495,10 @@ class U {
1434
1495
  openWebFile(D, C, B = !0) {
1435
1496
  let F = Math.round(Math.random() * 1e7);
1436
1497
  if (C) {
1437
- let A = this, e = (t, n) => {
1438
- A.mxObject.removeEventFuction("openFileComplete", e), F == n && C(t);
1498
+ let A = this, t = (e, r) => {
1499
+ A.mxObject.removeEventFuction("openFileComplete", t), F == r && C(e);
1439
1500
  };
1440
- A.mxObject.addEvent("openFileComplete", e);
1501
+ A.mxObject.addEvent("openFileComplete", t);
1441
1502
  }
1442
1503
  return U.currentFileName = D.split("/").pop(), this.imp.openWebFile(D, B, F);
1443
1504
  }
@@ -1453,12 +1514,12 @@ class U {
1453
1514
  saveFile(D, C, B = !0, F = !0) {
1454
1515
  D || (D = this.getCurrentFileName()), D.indexOf(".") == -1 && (D += ".mxweb");
1455
1516
  const A = window;
1456
- return A.mx_saveFile_call = (e) => {
1457
- if (C && C(e), !!e) {
1517
+ return A.mx_saveFile_call = (t) => {
1518
+ if (C && C(t), !!t) {
1458
1519
  if (B) {
1459
- let t;
1460
- /^((?!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 ? N.saveAsFileDialog({
1461
- blob: t,
1520
+ let e;
1521
+ /^((?!chrome|android).)*safari/i.test(navigator.userAgent) ? e = new Blob([t.buffer], { type: "application/octet-stream" }) : e = new Blob([t.buffer], { type: "application/octet-binary" }), F ? _.saveAsFileDialog({
1522
+ blob: e,
1462
1523
  filename: D,
1463
1524
  types: [{
1464
1525
  description: "mxweb File",
@@ -1466,14 +1527,14 @@ class U {
1466
1527
  "application/octet-stream": [".mxweb"]
1467
1528
  }
1468
1529
  }]
1469
- }) : N.downloadFile(t, D);
1530
+ }) : _.downloadFile(e, D);
1470
1531
  }
1471
1532
  A.mx_saveFile_call = null;
1472
1533
  }
1473
1534
  }, this.imp.saveFile(D);
1474
1535
  }
1475
1536
  GetDatabase() {
1476
- return this.imp.McDbDatabase || (this.imp.McDbDatabase = new ED(this.imp.GetDatabase())), this.imp.McDbDatabase;
1537
+ return this.imp.McDbDatabase || (this.imp.McDbDatabase = new FD(this.imp.GetDatabase())), this.imp.McDbDatabase;
1477
1538
  }
1478
1539
  GetSysVarString(D) {
1479
1540
  return this.imp.GetSysVarString(D);
@@ -1494,7 +1555,7 @@ class U {
1494
1555
  return this.imp.SetSysVarLong(D, C);
1495
1556
  }
1496
1557
  get DrawColor() {
1497
- return new j(this.imp.GetDrawColor());
1558
+ return new G(this.imp.GetDrawColor());
1498
1559
  }
1499
1560
  set DrawColor(D) {
1500
1561
  this.imp.SetDrawColor(D.getImp());
@@ -1541,8 +1602,8 @@ class U {
1541
1602
  AddLinetypeEx(D, C, B) {
1542
1603
  this.imp.AddLinetypeEx(D, C, B);
1543
1604
  }
1544
- DrawLine(D, C, B, F, A, e) {
1545
- return this.imp.DrawLine(D, C, B, F, A, e);
1605
+ DrawLine(D, C, B, F, A, t) {
1606
+ return this.imp.DrawLine(D, C, B, F, A, t);
1546
1607
  }
1547
1608
  AddDimStyle(D, C, B, F, A) {
1548
1609
  return this.imp.AddDimStyle(D, C, B, F, A);
@@ -1568,8 +1629,8 @@ class U {
1568
1629
  DrawArc(D, C, B, F, A) {
1569
1630
  return this.imp.DrawArc(D, C, B, F, A);
1570
1631
  }
1571
- DrawArc2(D, C, B, F, A, e) {
1572
- return this.imp.DrawArc2(D, C, B, F, A, e);
1632
+ DrawArc2(D, C, B, F, A, t) {
1633
+ return this.imp.DrawArc2(D, C, B, F, A, t);
1573
1634
  }
1574
1635
  DrawCircle(D, C, B) {
1575
1636
  return this.imp.DrawCircle(D, C, B);
@@ -1577,35 +1638,35 @@ class U {
1577
1638
  DrawEllipse(D, C, B, F, A) {
1578
1639
  return this.imp.DrawEllipse(D, C, B, F, A);
1579
1640
  }
1580
- DrawEllipseArc(D, C, B, F, A, e, t) {
1581
- return this.imp.DrawEllipseArc(D, C, B, F, A, e, t);
1641
+ DrawEllipseArc(D, C, B, F, A, t, e) {
1642
+ return this.imp.DrawEllipseArc(D, C, B, F, A, t, e);
1582
1643
  }
1583
1644
  DrawPoint(D, C) {
1584
1645
  return this.imp.DrawPoint(D, C);
1585
1646
  }
1586
- DrawSolid(D, C, B, F, A, e, t, n) {
1587
- return this.imp.DrawSolid(D, C, B, F, A, e, t, n);
1647
+ DrawSolid(D, C, B, F, A, t, e, r) {
1648
+ return this.imp.DrawSolid(D, C, B, F, A, t, e, r);
1588
1649
  }
1589
- DrawMText(D, C, B, F, A, e, t) {
1590
- return this.imp.DrawMText(D, C, B, F, A, e, t);
1650
+ DrawMText(D, C, B, F, A, t, e) {
1651
+ return this.imp.DrawMText(D, C, B, F, A, t, e);
1591
1652
  }
1592
- DrawText(D, C, B, F, A, e, t) {
1593
- return this.imp.DrawTextDrawText(D, C, B, F, A, e, t);
1653
+ DrawText(D, C, B, F, A, t, e) {
1654
+ return this.imp.DrawTextDrawText(D, C, B, F, A, t, e);
1594
1655
  }
1595
1656
  DrawBlockReference(D, C, B, F, A) {
1596
1657
  return this.imp.DrawBlockReference(D, C, B, F, A);
1597
1658
  }
1598
- DrawDimAligned(D, C, B, F, A, e) {
1599
- return this.imp.DrawDimAligned(D, C, B, F, A, e);
1659
+ DrawDimAligned(D, C, B, F, A, t) {
1660
+ return this.imp.DrawDimAligned(D, C, B, F, A, t);
1600
1661
  }
1601
- DrawDimAngular(D, C, B, F, A, e, t, n) {
1602
- return this.imp.DrawDimAngular(D, C, B, F, A, e, t, n);
1662
+ DrawDimAngular(D, C, B, F, A, t, e, r) {
1663
+ return this.imp.DrawDimAngular(D, C, B, F, A, t, e, r);
1603
1664
  }
1604
1665
  DrawDimDiametric(D, C, B, F, A) {
1605
1666
  return this.imp.DrawDimDiametric(D, C, B, F, A);
1606
1667
  }
1607
- DrawDimRotated(D, C, B, F, A, e, t) {
1608
- return this.imp.DrawDimRotated(D, C, B, F, A, e, t);
1668
+ DrawDimRotated(D, C, B, F, A, t, e) {
1669
+ return this.imp.DrawDimRotated(D, C, B, F, A, t, e);
1609
1670
  }
1610
1671
  DrawDimOrdinate(D, C, B, F, A) {
1611
1672
  return this.imp.DrawDimOrdinate(D, C, B, F, A);
@@ -1654,16 +1715,16 @@ class U {
1654
1715
  !D || i.App.getImp().DestroyObject(D);
1655
1716
  }
1656
1717
  GetAllLayoutName() {
1657
- return new hD(this.imp.GetAllLayoutName());
1718
+ return new yD(this.imp.GetAllLayoutName());
1658
1719
  }
1659
1720
  SetCurrentLayout(D) {
1660
- this.imp.SetCurrentLayout(w.encodeToGb2312(D));
1721
+ this.imp.SetCurrentLayout(y.encodeToGb2312(D));
1661
1722
  }
1662
1723
  }
1663
- class RD {
1724
+ class SD {
1664
1725
  imp;
1665
1726
  init(D) {
1666
- this.imp = D, g.kZAxis = new g(0, 0, 1), g.kXAxis = new g(1, 0, 0), g.kYAxis = new g(0, 1, 0), l.kOrigin = new l(0, 0, 0), W.kIdentity = new W();
1727
+ this.imp = D, w.kZAxis = new w(0, 0, 1), w.kXAxis = new w(1, 0, 0), w.kYAxis = new w(0, 1, 0), a.kOrigin = new a(0, 0, 0), z.kIdentity = new z();
1667
1728
  }
1668
1729
  getImp() {
1669
1730
  return this.imp;
@@ -1672,8 +1733,8 @@ class RD {
1672
1733
  return this.imp.getLastCallResult();
1673
1734
  }
1674
1735
  CreateMxCAD(D, C, B, F, A) {
1675
- let e = this.imp.CreateMxDraw(D, C, B, F, A);
1676
- return new U(e);
1736
+ let t = this.imp.CreateMxDraw(D, C, B, F, A);
1737
+ return new U(t);
1677
1738
  }
1678
1739
  DestroyObject(D) {
1679
1740
  this.imp.DestroyObject(D);
@@ -1691,41 +1752,41 @@ class RD {
1691
1752
  let C = this.imp.ObjectIdToObjectName(D);
1692
1753
  if (C == "McDbLine") {
1693
1754
  let B = this.imp.ObjectIdToMdDbLine(D);
1694
- return new Z(B);
1755
+ return new Y(B);
1695
1756
  } else if (C == "McDbText") {
1696
1757
  let B = this.imp.ObjectIdToMdDbText(D);
1697
- return new BD(B);
1758
+ return new ED(B);
1698
1759
  } else if (C == "McDbPolyline") {
1699
1760
  let B = this.imp.ObjectIdToMdDbPolyline(D);
1700
- return new MD(B);
1761
+ return new tD(B);
1701
1762
  } else if (C == "McDbCircle") {
1702
1763
  let B = this.imp.ObjectIdToMdDbCircle(D);
1703
- return new AD(B);
1764
+ return new O(B);
1704
1765
  } else if (C == "McDbArc") {
1705
1766
  let B = this.imp.ObjectIdToMdDbArc(D);
1706
- return new eD(B);
1767
+ return new iD(B);
1707
1768
  } else if (C == "McDbBlockReference") {
1708
1769
  let B = this.imp.ObjectIdToMdDbBlockReference(D);
1709
- return new TD(B);
1770
+ return new kD(B);
1710
1771
  } else if (C == "McDbAlignedDimension") {
1711
1772
  let B = this.imp.ObjectIdToMdDbAlignedDimension(D);
1712
- return new kD(B);
1773
+ return new PD(B);
1713
1774
  } else if (C == "McDbRotatedDimension") {
1714
1775
  let B = this.imp.ObjectIdToMdDbRotatedDimension(D);
1715
- return new PD(B);
1776
+ return new RD(B);
1716
1777
  } else if (C == "McDbMText") {
1717
1778
  let B = this.imp.ObjectIdToMdDbMText(D);
1718
- return new FD(B);
1779
+ return new AD(B);
1719
1780
  }
1720
1781
  return console.log("Mx ObjectIdToObject error type:" + C), null;
1721
1782
  }
1722
1783
  CreateCloneObject(D) {
1723
1784
  let C = D.getObjectName();
1724
1785
  if (C == "McDbLine") {
1725
- let B = new Z();
1786
+ let B = new Y();
1726
1787
  return B.getImp().ConnectionTempObject(D), i.App.DestroyObject(D), B;
1727
1788
  } else if (C == "McDbText") {
1728
- let B = new BD();
1789
+ let B = new ED();
1729
1790
  return B.getImp().ConnectionTempObject(D), i.App.DestroyObject(D), B;
1730
1791
  }
1731
1792
  return console.log("Mx: Clone error type"), new v(D);
@@ -1739,18 +1800,18 @@ class RD {
1739
1800
  });
1740
1801
  }
1741
1802
  }
1742
- class SD {
1803
+ class vD {
1743
1804
  mxcadassemblyimp;
1744
- App = new RD();
1805
+ App = new SD();
1745
1806
  getCallResult() {
1746
1807
  return this.App.getLastCallResult();
1747
1808
  }
1748
1809
  NewMcGePoint3d(D, C) {
1749
1810
  if (C && D && D.x && D.y) {
1750
1811
  let F = D.z || 0;
1751
- D = d.getCurrentDraw().docCoord2Cad(D.x, D.y, F);
1812
+ D = h.getCurrentDraw().docCoord2Cad(D.x, D.y, F);
1752
1813
  }
1753
- let B = new l();
1814
+ let B = new a();
1754
1815
  return D && D.x && D.y && (B.x = D.x, B.y = D.y, D.z && (B.y = D.z)), B;
1755
1816
  }
1756
1817
  GetCurrentMxCAD() {
@@ -1760,43 +1821,43 @@ class SD {
1760
1821
  return this.App.GetCurrentMxCAD().GetDatabase();
1761
1822
  }
1762
1823
  }
1763
- const rD = "1.0.68", iC = "SharedArrayBuffer" in window, Q = document.currentScript && /unpkg\.com\/mxcad/.test(document.currentScript.src), rC = (E, D = self.location.href) => Q ? `https://unpkg.com/mxcad@${rD}/dist/wasm/2d-st/${E}` : D + E, sC = (E, D = self.location.href) => Q ? `https://unpkg.com/mxcad@${rD}/dist/wasm/2d/${E}` : D + E, nC = (E, D = self.location.href) => Q ? `https://unpkg.com/mxcad@${rD}/dist/wasm/3d/${E}` : D + E, vD = (E) => new Promise((D, C) => {
1824
+ const nD = "1.0.69", rC = "SharedArrayBuffer" in window, X = document.currentScript && /unpkg\.com\/mxcad/.test(document.currentScript.src), sC = (E, D = self.location.href) => X ? `https://unpkg.com/mxcad@${nD}/dist/wasm/2d-st/${E}` : D + E, nC = (E, D = self.location.href) => X ? `https://unpkg.com/mxcad@${nD}/dist/wasm/2d/${E}` : D + E, oC = (E, D = self.location.href) => X ? `https://unpkg.com/mxcad@${nD}/dist/wasm/3d/${E}` : D + E, OD = (E) => new Promise((D, C) => {
1764
1825
  const B = document.createElement("script");
1765
1826
  B.src = E, B.type = "text/javascript", B.crossOrigin = "anonymous", document.body.appendChild(B), B.onload = () => {
1766
1827
  D();
1767
1828
  }, B.onerror = (F) => {
1768
1829
  C(F);
1769
1830
  };
1770
- }), oC = async (E, D, C) => {
1831
+ }), aC = async (E, D, C) => {
1771
1832
  const { locateFile: B } = C, F = B(E + ".js");
1772
- return await vD(F), await globalThis[D](C);
1833
+ return await OD(F), await globalThis[D](C);
1773
1834
  };
1774
1835
  let i;
1775
- async function OD(E, D = iC || !Q ? rC : sC, C, B, F) {
1776
- return new Promise(async (A, e) => {
1836
+ async function jD(E, D = rC || !X ? sC : nC, C, B, F) {
1837
+ return new Promise(async (A, t) => {
1777
1838
  try {
1778
- if (i || (i = new SD()), i.mxcadassemblyimp)
1839
+ if (i || (i = new vD()), i.mxcadassemblyimp)
1779
1840
  return E && E(i), A(i);
1780
- const n = await oC("mxdrawassembly_min", "mxdrawassembly", {
1841
+ const r = await aC("mxdrawassembly_min", "mxdrawassembly", {
1781
1842
  locateFile: D,
1782
1843
  wasmBinary: C
1783
1844
  });
1784
- i.mxcadassemblyimp = n;
1785
- let r = new n.McApp();
1786
- B && r.setFontFilePath(B), r.Init(), i.App.init(r), F && i.App.addNetworkLoadingFont(F), E && E(i), A(i);
1787
- } catch (t) {
1788
- e(t);
1845
+ i.mxcadassemblyimp = r;
1846
+ let s = new r.McApp();
1847
+ B && s.setFontFilePath(B), s.Init(), i.App.init(s), F && i.App.addNetworkLoadingFont(F), E && E(i), A(i);
1848
+ } catch (e) {
1849
+ t(e);
1789
1850
  }
1790
1851
  });
1791
1852
  }
1792
- const aC = (E) => {
1853
+ const uC = (E) => {
1793
1854
  let D = null;
1794
1855
  if (typeof E == "string" ? D = document.querySelector(E) : E instanceof HTMLCanvasElement && (D = E), !!D)
1795
1856
  return D.id || (D.id = Math.random().toString(16).slice(2)), D.id;
1796
- }, uC = (E, D) => new Promise((C, B) => {
1857
+ }, lC = (E, D) => new Promise((C, B) => {
1797
1858
  try {
1798
- d.createMxObject({
1799
- canvasId: aC(E),
1859
+ h.createMxObject({
1860
+ canvasId: uC(E),
1800
1861
  isCPPMxCAD: !0,
1801
1862
  userIdentitySign: D,
1802
1863
  callback(F) {
@@ -1808,27 +1869,27 @@ const aC = (E) => {
1808
1869
  } catch (F) {
1809
1870
  B(F);
1810
1871
  }
1811
- }), lC = async (E) => {
1812
- aD.state.MxFun || await JD();
1813
- const { networkFonts: D, fontspath: C, locateFile: B, wasmBinary: F, canvas: A, userIdentitySign: e, onOpenFileComplete: t, fileUrl: n, onInit: r = () => {
1814
- d.setIniset({
1872
+ }), cC = async (E) => {
1873
+ lD.state.MxFun || await ZD();
1874
+ const { networkFonts: D, fontspath: C, locateFile: B, wasmBinary: F, canvas: A, userIdentitySign: t, onOpenFileComplete: e, fileUrl: r, onInit: s = () => {
1875
+ h.setIniset({
1815
1876
  EnableIntelliSelect: !0,
1816
1877
  IntelliSelectType: 1,
1817
1878
  multipleSelect: !1
1818
1879
  });
1819
1880
  } } = E || {};
1820
- await OD(() => {
1821
- }, B, F, C, D), r();
1822
- let o = await uC(A, e);
1823
- const u = d.getMxFunTHREE();
1824
- let c = new u.Vector2();
1825
- o.getRenderer().getSize(c);
1826
- const s = i.App.CreateMxCAD(c.width, c.height, o.getCanvas().id, o.isWebgl2(), o.getId());
1827
- return o.initMxCpp(s), o.addEvent("openFileComplete", () => {
1828
- t && t();
1829
- }), n && s.openWebFile(n), s;
1881
+ await jD(() => {
1882
+ }, B, F, C, D), s();
1883
+ let o = await lC(A, t);
1884
+ const u = h.getMxFunTHREE();
1885
+ let l = new u.Vector2();
1886
+ o.getRenderer().getSize(l);
1887
+ const d = i.App.CreateMxCAD(l.width, l.height, o.getCanvas().id, o.isWebgl2(), o.getId());
1888
+ return o.initMxCpp(d), o.addEvent("openFileComplete", () => {
1889
+ e && e();
1890
+ }), r && d.openWebFile(r), d;
1830
1891
  };
1831
- async function cC() {
1892
+ async function mC() {
1832
1893
  const E = new S();
1833
1894
  E.setMessage(`
1834
1895
  \u6307\u5B9A\u63D2\u5165\u4F4D\u7F6E:`);
@@ -1838,98 +1899,98 @@ async function cC() {
1838
1899
  let C = "\u6D4B\u8BD5";
1839
1900
  if (C.length <= 0)
1840
1901
  return;
1841
- let B = d.screenCoordLong2Doc(50);
1842
- C = N.b64Encode(C);
1902
+ let B = h.screenCoordLong2Doc(50);
1903
+ C = _.b64Encode(C);
1843
1904
  const F = {
1844
1905
  postx: D.x,
1845
1906
  posty: D.y,
1846
1907
  text: C,
1847
1908
  height: B
1848
1909
  };
1849
- d.call("Mx_Text", F);
1910
+ h.call("Mx_Text", F);
1850
1911
  }
1851
- class mC extends uD {
1912
+ class pC extends cD {
1852
1913
  getGripPoints() {
1853
1914
  const { x: D, y: C, z: B } = this.center;
1854
- let F = new THREE.Vector3(D, C + this.radius, B), A = new THREE.Vector3(D, C - this.radius, B), e = new THREE.Vector3(D - this.radius, C, B), t = new THREE.Vector3(D + this.radius, C, B);
1855
- return [this.center, F, A, e, t];
1915
+ 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);
1916
+ return [this.center, F, A, t, e];
1856
1917
  }
1857
1918
  moveGripPointsAt(D, C) {
1858
- const [B, F, A, e, t] = this.getGripPoints();
1859
- 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 = e.add(C).distanceTo(this.center)), D === 4 && (this.radius = t.add(C).distanceTo(this.center)), !0;
1919
+ const [B, F, A, t, e] = this.getGripPoints();
1920
+ 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;
1860
1921
  }
1861
1922
  }
1862
- const nD = (E) => {
1863
- const [D, C, B] = E, { x: F, y: A, z: e } = D, { x: t, y: n, z: r } = C, { x: o, y: u, z: c } = B, s = A * r - n * e - A * c + u * e + n * c - u * r, a = -(F * r - t * e - F * c + o * e + t * c - o * r), h = F * n - t * A - F * u + o * A + t * u - o * n, b = -(F * n * c - F * u * r - t * A * c + t * u * e + o * A * r - o * n * e), y = 2 * (t - F), m = 2 * (n - A), p = 2 * (r - e), G = F * F + A * A + e * e - t * t - n * n - r * r, k = 2 * (o - F), P = 2 * (u - A), L = 2 * (c - e), I = F * F + A * A + e * e - o * o - u * u - c * c, KD = -(a * p * I - a * L * G - m * h * I + m * L * b + P * h * G - P * p * b) / (s * m * L - s * P * p - y * a * L + y * P * h + k * a * p - k * m * h), HD = (s * p * I - s * L * G - y * h * I + y * L * b + k * h * G - k * p * b) / (s * m * L - s * P * p - y * a * L + y * P * h + k * a * p - k * m * h), ND = -(s * m * I - s * P * G - y * a * I + y * P * b + k * a * G - k * m * b) / (s * m * L - s * P * p - y * a * L + y * P * h + k * a * p - k * m * h);
1864
- return new THREE.Vector3(KD, HD, ND);
1923
+ const aD = (E) => {
1924
+ const [D, C, B] = E, { x: F, y: A, z: t } = D, { x: e, y: r, z: s } = C, { x: o, y: u, z: l } = B, d = A * s - r * t - A * l + u * t + r * l - u * s, n = -(F * s - e * t - F * l + o * t + e * l - o * s), m = F * r - e * A - F * u + o * A + e * u - o * r, g = -(F * r * l - F * u * s - e * A * l + e * u * t + o * A * s - o * r * t), b = 2 * (e - F), c = 2 * (r - A), p = 2 * (s - t), I = F * F + A * A + t * t - e * e - r * r - s * s, k = 2 * (o - F), P = 2 * (u - A), R = 2 * (l - t), W = F * F + A * A + t * t - o * o - u * u - l * l, HD = -(n * p * W - n * R * I - c * m * W + c * R * g + P * m * I - P * p * g) / (d * c * R - d * P * p - b * n * R + b * P * m + k * n * p - k * c * m), ND = (d * p * W - d * R * I - b * m * W + b * R * g + k * m * I - k * p * g) / (d * c * R - d * P * p - b * n * R + b * P * m + k * n * p - k * c * m), qD = -(d * c * W - d * P * I - b * n * W + b * P * g + k * n * I - k * c * g) / (d * c * R - d * P * p - b * n * R + b * P * m + k * n * p - k * c * m);
1925
+ return new THREE.Vector3(HD, ND, qD);
1865
1926
  };
1866
- function jD() {
1927
+ function GD() {
1867
1928
  const E = new S();
1868
- let D = new mC();
1869
- R.use(D), D.closed = !1;
1870
- let C = 0, B = "default", F = !0;
1871
- const A = () => {
1929
+ let D = new pC(), C = i.GetCurrentDatabase().GetCurrentlyDrawColor();
1930
+ L.use(D), D.closed = !1, D.setColor(C);
1931
+ let B = 0, F = "default", A = !0;
1932
+ const t = () => {
1872
1933
  E.setUserDraw(
1873
- (s, a) => {
1874
- D.radius = F ? D.center.distanceTo(s) : D.center.distanceTo(s) / 2, a.drawCustomEntity(D), a.drawLine(D.center, s);
1934
+ (n, m) => {
1935
+ D.radius = A ? D.center.distanceTo(n) : D.center.distanceTo(n) / 2, m.drawCustomEntity(D), m.drawLine(D.center, n);
1875
1936
  }
1876
1937
  );
1877
- }, e = (s) => {
1878
- if (B === "default") {
1879
- if (s === x.kOk) {
1880
- if (C === 0)
1938
+ }, e = (n) => {
1939
+ if (F === "default") {
1940
+ if (n === x.kOk) {
1941
+ if (B === 0)
1881
1942
  E.setMessage(`
1882
- \u6307\u5B9A\u5706\u7684\u534A\u5F84:`), E.setKeyWords("[\u76F4\u5F84(D)]"), D.center = E.value(), A();
1883
- else if (C === 1)
1884
- return i.GetCurrentMxCAD().DrawCircle(D.center.x, D.center.y, D.radius), !0;
1885
- C++;
1943
+ \u6307\u5B9A\u5706\u7684\u534A\u5F84:`), E.setKeyWords("[\u76F4\u5F84(D)]"), D.center = E.value(), t();
1944
+ else if (B === 1)
1945
+ return i.GetCurrentMxCAD().DrawEntity(new O(D.center.x, D.center.y, 0, D.radius)), !0;
1946
+ B++;
1886
1947
  }
1887
- s === x.kKeyWord && E.isKeyWordPicked("D") && (F = !1, A(), E.setMessage(`
1948
+ n === x.kKeyWord && E.isKeyWordPicked("D") && (A = !1, t(), E.setMessage(`
1888
1949
  \u6307\u5B9A\u5706\u7684\u76F4\u5F84:`), E.setKeyWords(""));
1889
1950
  }
1890
1951
  };
1891
- let t = [];
1892
- const n = (s) => {
1893
- if (B === "3P" && (E.setMessage(`
1894
- \u6307\u5B9A\u5706\u4E0A\u7684\u7B2C\u4E00\u4E2A\u70B9:`), s === x.kOk)) {
1895
- if (C === 0 && (t.push(E.value()), E.setUserDraw((a, h) => {
1896
- h.drawLine(t[0], a);
1952
+ let r = [];
1953
+ const s = (n) => {
1954
+ if (F === "3P" && (E.setMessage(`
1955
+ \u6307\u5B9A\u5706\u4E0A\u7684\u7B2C\u4E00\u4E2A\u70B9:`), n === x.kOk)) {
1956
+ if (B === 0 && (r.push(E.value()), E.setUserDraw((m, g) => {
1957
+ g.drawLine(r[0], m);
1897
1958
  }), E.setMessage(`
1898
- \u6307\u5B9A\u5706\u4E0A\u7684\u7B2C\u4E8C\u4E2A\u70B9:`)), C === 1 && (t.push(E.value()), E.setUserDraw((a, h) => {
1899
- const [b, y] = t, m = a;
1900
- D.center = nD([
1959
+ \u6307\u5B9A\u5706\u4E0A\u7684\u7B2C\u4E8C\u4E2A\u70B9:`)), B === 1 && (r.push(E.value()), E.setUserDraw((m, g) => {
1960
+ const [b, c] = r, p = m;
1961
+ D.center = aD([
1901
1962
  b,
1902
- y,
1903
- m
1904
- ]), D.radius = D.center.distanceTo(b), h.drawCustomEntity(D);
1963
+ c,
1964
+ p
1965
+ ]), D.radius = D.center.distanceTo(b), g.drawCustomEntity(D);
1905
1966
  }), E.setMessage(`
1906
- \u6307\u5B9A\u5706\u4E0A\u7684\u7B2C\u4E09\u4E2A\u70B9:`)), C === 2)
1907
- return t.push(E.value()), D.center = nD(t), D.radius = D.center.distanceTo(t[0]), i.GetCurrentMxCAD().DrawCircle(D.center.x, D.center.y, D.radius), !0;
1908
- C++;
1967
+ \u6307\u5B9A\u5706\u4E0A\u7684\u7B2C\u4E09\u4E2A\u70B9:`)), B === 2)
1968
+ return r.push(E.value()), D.center = aD(r), D.radius = D.center.distanceTo(r[0]), i.GetCurrentMxCAD().DrawEntity(new O(D.center.x, D.center.y, 0, D.radius)), !0;
1969
+ B++;
1909
1970
  }
1910
1971
  };
1911
- let r;
1912
- const o = (s, a) => {
1913
- new THREE.Line3(s, a).getCenter(D.center), D.radius = a.distanceTo(s) / 2;
1914
- }, u = (s) => {
1915
- if (B === "2P" && (E.setMessage(`
1916
- \u6307\u5B9A\u5706\u76F4\u5F84\u7684\u7B2C\u4E00\u4E2A\u7AEF\u70B9:`), s === x.kOk)) {
1917
- if (C === 0 && (r = E.value(), E.setUserDraw((a, h) => {
1918
- o(r, a), h.drawCustomEntity(D), h.drawLine(r, a);
1972
+ let o;
1973
+ const u = (n, m) => {
1974
+ new THREE.Line3(n, m).getCenter(D.center), D.radius = m.distanceTo(n) / 2;
1975
+ }, l = (n) => {
1976
+ if (F === "2P" && (E.setMessage(`
1977
+ \u6307\u5B9A\u5706\u76F4\u5F84\u7684\u7B2C\u4E00\u4E2A\u7AEF\u70B9:`), n === x.kOk)) {
1978
+ if (B === 0 && (o = E.value(), E.setUserDraw((m, g) => {
1979
+ u(o, m), g.drawCustomEntity(D), g.drawLine(o, m);
1919
1980
  }), E.setMessage(`
1920
- \u6307\u5B9A\u5706\u76F4\u5F84\u7684\u7B2C\u4E8C\u4E2A\u7AEF\u70B9:`)), C === 1)
1921
- return o(r, E.value()), i.GetCurrentMxCAD().DrawCircle(D.center.x, D.center.y, D.radius), !0;
1922
- C++;
1981
+ \u6307\u5B9A\u5706\u76F4\u5F84\u7684\u7B2C\u4E8C\u4E2A\u7AEF\u70B9:`)), B === 1)
1982
+ return u(o, E.value()), i.GetCurrentMxCAD().DrawEntity(new O(D.center.x, D.center.y, 0, D.radius)), !0;
1983
+ B++;
1923
1984
  }
1924
- }, c = (s) => {
1925
- if (B === "T") {
1985
+ }, d = (n) => {
1986
+ if (F === "T") {
1926
1987
  if (E.setMessage(`
1927
- \u6307\u5B9A\u5BF9\u8C61\u4E0E\u5706\u7684\u7B2C\u4E00\u4E2A\u5207\u70B9:`), s === x.kOk) {
1928
- if (C === 0) {
1929
- const a = E.value();
1930
- console.log(a), d.getCurrentDraw();
1988
+ \u6307\u5B9A\u5BF9\u8C61\u4E0E\u5706\u7684\u7B2C\u4E00\u4E2A\u5207\u70B9:`), n === x.kOk) {
1989
+ if (B === 0) {
1990
+ const m = E.value();
1991
+ console.log(m), h.getCurrentDraw();
1931
1992
  }
1932
- C++;
1993
+ B++;
1933
1994
  }
1934
1995
  return !0;
1935
1996
  }
@@ -1938,68 +1999,68 @@ function jD() {
1938
1999
  `
1939
2000
  \u6307\u5B9A\u5706\u7684\u5706\u5FC3\u6216[\u4E09\u70B9(3P)/\u4E24\u70B9(2P)/\u5207\u70B9\u3001\u5207\u70B9\u3001\u534A\u5F84(T)]:`
1940
2001
  ), E.setKeyWords("3P 2P T"), E.goWhile(
1941
- (s) => {
1942
- if (s === x.kKeyWord && (E.isKeyWordPicked("3P") ? B = "3P" : E.isKeyWordPicked("2P") ? B = "2P" : E.isKeyWordPicked("T") && (B = "T")), e(s))
2002
+ (n) => {
2003
+ if (n === x.kKeyWord && (E.isKeyWordPicked("3P") ? F = "3P" : E.isKeyWordPicked("2P") ? F = "2P" : E.isKeyWordPicked("T") && (F = "T")), e(n))
1943
2004
  return { exit: !0 };
1944
- if (n(s))
2005
+ if (s(n))
1945
2006
  return { exit: !0 };
1946
- if (u(s))
2007
+ if (l(n))
1947
2008
  return { exit: !0 };
1948
- if (c(s))
2009
+ if (d(n))
1949
2010
  return { exit: !0 };
1950
2011
  },
1951
- (s) => {
1952
- s === x.kCancel && i.GetCurrentMxCAD().DrawCircle(D.center.x, D.center.y, D.radius);
2012
+ (n) => {
2013
+ n === x.kCancel && i.GetCurrentMxCAD().DrawEntity(new O(D.center.x, D.center.y, 0, D.radius));
1953
2014
  }
1954
2015
  );
1955
2016
  }
1956
- d.on("init", () => {
1957
- d.addCommand("Mx_Circle", jD);
2017
+ h.on("init", () => {
2018
+ h.addCommand("Mx_Circle", GD);
1958
2019
  });
1959
- const oD = () => aD.state.MxFun.stopRunCommand();
1960
- function X(E, D, C, B) {
2020
+ const uD = () => lD.state.MxFun.stopRunCommand();
2021
+ function DD(E, D, C, B) {
1961
2022
  const F = E - C, A = D - B;
1962
- let e = 0;
1963
- 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;
2023
+ let t = 0;
2024
+ 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;
1964
2025
  }
1965
- async function GD() {
2026
+ async function ID() {
1966
2027
  const E = new S();
1967
- let D = new J(), C = i.GetCurrentDatabase().GetCurrentlyDrawColor(), B = [];
2028
+ let D = new Z(), C = i.GetCurrentDatabase().GetCurrentlyDrawColor(), B = [];
1968
2029
  E.setMessage(`
1969
2030
  \u6307\u5B9A\u7B2C\u4E00\u70B9:`);
1970
2031
  let F = await E.go();
1971
- E.setUserDraw((e, t) => {
1972
- t.setColor(C), B.forEach((n) => {
1973
- n.color = C, t.drawCustomEntity(n);
1974
- }), t.drawLine(F, e);
2032
+ E.setUserDraw((t, e) => {
2033
+ e.setColor(C), B.forEach((r) => {
2034
+ r.color = C, e.drawCustomEntity(r);
2035
+ }), e.drawLine(F, t);
1975
2036
  });
1976
2037
  const A = () => {
1977
2038
  E.setMessage(`
1978
2039
  \u6307\u5B9A\u4E0B\u4E00\u4E2A\u70B9:`), B.length > 1 ? E.setKeyWords("[\u9000\u51FA(E)/\u95ED\u5408(C)/\u653E\u5F03(U)]") : E.setKeyWords("[\u9000\u51FA(E)/\u653E\u5F03(U)]");
1979
2040
  };
1980
2041
  A(), E.goWhile(
1981
- (e) => {
1982
- if (e === x.kOk && (D = new J(), R.use(D), D.pt1 = F, D.pt2 = E.value(), F = D.pt2.clone(), B.push(D), A()), e === x.kKeyWord) {
2042
+ (t) => {
2043
+ if (t === x.kOk && (D = new Z(), L.use(D), D.pt1 = F, D.pt2 = E.value(), F = D.pt2.clone(), B.push(D), A()), t === x.kKeyWord) {
1983
2044
  if (E.isKeyWordPicked("E"))
1984
- oD();
2045
+ uD();
1985
2046
  else if (E.isKeyWordPicked("C")) {
1986
- const t = new J();
1987
- return t.pt1 = F.clone(), t.pt2 = B[0].pt1.clone(), R.use(t), B.push(t), F = t.pt2.clone(), oD(), { exit: !0 };
2047
+ const e = new Z();
2048
+ return e.pt1 = F.clone(), e.pt2 = B[0].pt1.clone(), L.use(e), B.push(e), F = e.pt2.clone(), uD(), { exit: !0 };
1988
2049
  } else if (E.isKeyWordPicked("U")) {
1989
- const t = B.pop();
1990
- t && (F = t.pt1);
2050
+ const e = B.pop();
2051
+ e && (F = e.pt1);
1991
2052
  }
1992
2053
  }
1993
2054
  },
1994
- (e) => (e === x.kCancel && B.forEach((t) => {
1995
- i.GetCurrentMxCAD().DrawEntity(new Z(t.pt1.x, t.pt1.y, 0, t.pt2.x, t.pt2.y, 0));
2055
+ (t) => (t === x.kCancel && B.forEach((e) => {
2056
+ i.GetCurrentMxCAD().DrawEntity(new Y(e.pt1.x, e.pt1.y, 0, e.pt2.x, e.pt2.y, 0));
1996
2057
  }), { exit: !0 })
1997
2058
  );
1998
2059
  }
1999
- d.on("init", () => {
2000
- d.addCommand("Mx_Line", GD);
2060
+ h.on("init", () => {
2061
+ h.addCommand("Mx_Line", ID);
2001
2062
  });
2002
- async function pC() {
2063
+ async function dC() {
2003
2064
  const E = new S();
2004
2065
  E.setMessage(`
2005
2066
  \u6307\u5B9A\u63D2\u5165\u4F4D\u7F6E:`);
@@ -2010,96 +2071,98 @@ async function pC() {
2010
2071
  \u6D4B\u8BD5`;
2011
2072
  if (C.length <= 0)
2012
2073
  return;
2013
- let B = d.screenCoordLong2Doc(50);
2014
- C = N.b64Encode(C);
2074
+ let B = h.screenCoordLong2Doc(50);
2075
+ C = _.b64Encode(C);
2015
2076
  const F = {
2016
2077
  postx: D.x,
2017
2078
  posty: D.y,
2018
2079
  text: C,
2019
2080
  height: B
2020
2081
  };
2021
- d.call("Mx_MText", F);
2082
+ h.call("Mx_MText", F);
2022
2083
  }
2023
- async function ID() {
2024
- const E = new S(), D = new ZD();
2025
- R.use(D), E.setMessage(`
2084
+ async function WD() {
2085
+ const E = new S();
2086
+ let D = i.GetCurrentDatabase().GetCurrentlyDrawColor();
2087
+ const C = new YD();
2088
+ L.use(C), C.color = D, E.setMessage(`
2026
2089
  \u6307\u5B9A\u8D77\u70B9:`);
2027
- let C;
2028
- E.setUserDraw((B, F) => {
2029
- F.drawCustomEntity(D), C && F.drawLine(C, B);
2090
+ let B;
2091
+ E.setUserDraw((F, A) => {
2092
+ A.setColor(D), A.drawCustomEntity(C), B && A.drawLine(B, F);
2030
2093
  }), E.goWhile(
2031
- (B) => {
2032
- if (B === x.kOk) {
2033
- const F = E.value();
2034
- D.points.push(E.value()), C = F, E.setMessage(`
2094
+ (F) => {
2095
+ if (F === x.kOk) {
2096
+ const A = E.value();
2097
+ C.points.push(E.value()), B = A, E.setMessage(`
2035
2098
  \u6307\u5B9A\u4E0B\u4E00\u4E2A\u70B9:`), E.setKeyWords("[\u5706\u5F27(A)/\u5BBD\u5EA6(W)]");
2036
2099
  } else
2037
- B === x.kKeyWord && (E.isKeyWordPicked("A"), E.isKeyWordPicked("W"));
2100
+ F === x.kKeyWord && (E.isKeyWordPicked("A"), E.isKeyWordPicked("W"));
2038
2101
  },
2039
- (B) => {
2040
- if (B === x.kCancel) {
2041
- let F = i.GetCurrentMxCAD();
2042
- for (let A = 0; A < D.points.length; A++)
2043
- A == 0 ? F.PathMoveTo(D.points[A].x, D.points[A].y) : F.PathLineTo(D.points[A].x, D.points[A].y);
2044
- F.DrawPathToPolyline();
2102
+ (F) => {
2103
+ if (F === x.kCancel) {
2104
+ let A = i.GetCurrentMxCAD(), t = new tD();
2105
+ for (let e = 0; e < C.points.length; e++)
2106
+ t.addVertexAt(C.points[e]);
2107
+ A.DrawEntity(t);
2045
2108
  }
2046
2109
  }
2047
2110
  );
2048
2111
  }
2049
- d.on("init", () => {
2050
- d.addCommand("Mx_Pline", ID);
2112
+ h.on("init", () => {
2113
+ h.addCommand("Mx_Pline", WD);
2051
2114
  });
2052
- async function WD() {
2115
+ async function zD() {
2053
2116
  const E = new S();
2054
2117
  E.setMessage(`
2055
2118
  \u6307\u5B9A\u4E00\u70B9:`);
2056
- let D = await E.go(), C = new AD();
2119
+ let D = await E.go(), C = new O();
2057
2120
  C.setCenter(D.x, D.y, D.z);
2058
- let B = 5;
2059
- E.setUserDraw((F, A) => {
2060
- C.radius = D.distanceTo(F);
2061
- let e = C.getEndParam().val, n = C.getDistAtParam(e).val / B, r = 0, o = new THREE.Vector3(), u = new THREE.Vector3();
2062
- for (let c = 0; c < B; c++) {
2063
- let s = C.getPointAtDist(r).val;
2064
- r += n, c > 0 ? A.drawMcDbLine(s.x, s.y, s.z, o.x, o.y, o.z) : u = new THREE.Vector3(s.x, s.y, s.z), c == B - 1 && A.drawMcDbLine(s.x, s.y, s.z, u.x, u.y, u.z), o = new THREE.Vector3(s.x, s.y, s.z);
2121
+ let B = 5, F = i.GetCurrentDatabase().GetCurrentlyDrawColor();
2122
+ E.setUserDraw((A, t) => {
2123
+ t.setColor(F), C.radius = D.distanceTo(A);
2124
+ let e = C.getEndParam().val, s = C.getDistAtParam(e).val / B, o = 0, u = new THREE.Vector3(), l = new THREE.Vector3();
2125
+ for (let d = 0; d < B; d++) {
2126
+ let n = C.getPointAtDist(o).val;
2127
+ o += s, d > 0 ? t.drawMcDbLine(n.x, n.y, n.z, u.x, u.y, u.z) : l = new THREE.Vector3(n.x, n.y, n.z), d == B - 1 && t.drawMcDbLine(n.x, n.y, n.z, l.x, l.y, l.z), u = new THREE.Vector3(n.x, n.y, n.z);
2065
2128
  }
2066
2129
  }), E.setMessage(`
2067
2130
  \u6307\u5B9A\u4E8C\u70B9:`), await E.go(), E.drawReserve();
2068
2131
  }
2069
- d.addCommand("Mx_Polygon", WD);
2070
- function dC(E, D, C) {
2071
- const B = E.x, F = D.x, A = C.x, e = E.y, t = D.y, n = C.y, r = B - F, o = e - t, u = B - A, c = e - n, s = (B * B - F * F + (e * e - t * t)) / 2, a = (B * B - A * A + (e * e - n * n)) / 2, h = o * u - r * c, b = -(c * s - o * a) / h, y = -(r * a - u * s) / h;
2072
- return new THREE.Vector3(b, y, 0);
2132
+ h.addCommand("Mx_Polygon", zD);
2133
+ function hC(E, D, C) {
2134
+ 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, u = B - A, l = t - r, d = (B * B - F * F + (t * t - e * e)) / 2, n = (B * B - A * A + (t * t - r * r)) / 2, m = o * u - s * l, g = -(l * d - o * n) / m, b = -(s * n - u * d) / m;
2135
+ return new THREE.Vector3(g, b, 0);
2073
2136
  }
2074
- function hC(E, D) {
2137
+ function wC(E, D) {
2075
2138
  const C = E.x, B = E.y, F = D.x, A = D.y;
2076
2139
  return Math.sqrt((C - F) * (C - F) + (B - A) * (B - A));
2077
2140
  }
2078
- function wC(E, D, C) {
2141
+ function yC(E, D, C) {
2079
2142
  let B;
2080
2143
  E < C ? B = C - E : B = C - E + 360;
2081
2144
  let F;
2082
2145
  return E < D ? F = D - E : F = D - E + 360, F > B;
2083
2146
  }
2084
- function DD(E, D, C) {
2085
- const B = E.x, F = D.x, A = E.y, e = D.y;
2086
- let t, n, r;
2087
- return t = (A - e) / C, n = (B - F) / C, n >= 0.99999 && (n = 0.99999), n <= -0.99999 && (n = -0.99999), r = Math.acos(n), r = r / Math.PI * 180, t < -0.05 && (r = 360 - r), {
2088
- sin: t,
2089
- cos: n,
2090
- angle: r
2147
+ function CD(E, D, C) {
2148
+ const B = E.x, F = D.x, A = E.y, t = D.y;
2149
+ let e, r, s;
2150
+ 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), {
2151
+ sin: e,
2152
+ cos: r,
2153
+ angle: s
2091
2154
  };
2092
2155
  }
2093
- const $ = qD.MrxDbgUiPrBaseReturn, M = (E, D, C) => {
2156
+ const J = _D.MrxDbgUiPrBaseReturn, M = (E, D, C) => {
2094
2157
  const B = () => {
2095
2158
  E.go((F) => {
2096
- if (F === $.kKeyWord && C() && B(), F === $.kOk && D() && B(), F === $.kNone && B(), F === $.kCancel)
2159
+ if (F === J.kKeyWord && C() && B(), F === J.kOk && D() && B(), F === J.kNone && B(), F === J.kCancel)
2097
2160
  return { exit: !0 };
2098
2161
  });
2099
2162
  };
2100
2163
  return B;
2101
2164
  };
2102
- class sD extends uD {
2165
+ class oD extends cD {
2103
2166
  constructor() {
2104
2167
  super(), this._propertyDbKeys = [...this._propertyDbKeys, "bulge"];
2105
2168
  }
@@ -2107,24 +2170,24 @@ class sD extends uD {
2107
2170
  return "MxDbCircle";
2108
2171
  }
2109
2172
  create() {
2110
- return new sD();
2173
+ return new oD();
2111
2174
  }
2112
2175
  getArcBulge(D, C, B) {
2113
2176
  const F = D.distanceTo(C);
2114
- let t = 2 * new THREE.Line3(D, C).getCenter(
2177
+ let e = 2 * new THREE.Line3(D, C).getCenter(
2115
2178
  new THREE.Vector3()
2116
2179
  ).distanceTo(B) / F;
2117
- 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;
2180
+ 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;
2118
2181
  }
2119
2182
  getArcMidPoint(D, C, B, F, A) {
2120
- const e = D, t = B * Math.PI / 180;
2121
- let n = F * Math.PI / 180;
2122
- const r = new THREE.Vector3(), o = new THREE.Vector3();
2123
- r.x = e.x + C * Math.cos(t), r.y = e.y + C * Math.sin(t), o.x = e.x + C * Math.cos(n), o.y = e.y + C * Math.sin(n);
2183
+ const t = D, e = B * Math.PI / 180;
2184
+ let r = F * Math.PI / 180;
2185
+ const s = new THREE.Vector3(), o = new THREE.Vector3();
2186
+ 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);
2124
2187
  const u = C;
2125
- (A ? B < F : B > F) && (n += Math.PI * 2);
2126
- const c = new THREE.Vector3();
2127
- return c.x = e.x + u * Math.cos((t + n) / 2), c.y = e.y + u * Math.sin((t + n) / 2), [r, c, o, this.center];
2188
+ (A ? B < F : B > F) && (r += Math.PI * 2);
2189
+ const l = new THREE.Vector3();
2190
+ return l.x = t.x + u * Math.cos((e + r) / 2), l.y = t.y + u * Math.sin((e + r) / 2), [s, l, o, this.center];
2128
2191
  }
2129
2192
  getGripPoints() {
2130
2193
  return this.getArcMidPoint(
@@ -2143,14 +2206,14 @@ class sD extends uD {
2143
2206
  }
2144
2207
  upDatePoints(D, C, B) {
2145
2208
  D[C].add(B);
2146
- const [F, A, e] = D;
2147
- this.center = dC(F, e, A), this.radius = hC(A, this.center);
2148
- const t = DD(F, this.center, this.radius), n = DD(e, this.center, this.radius), r = DD(A, this.center, this.radius);
2149
- this.clockwise = wC(
2150
- n.angle,
2151
- t.angle,
2152
- r.angle
2153
- ), this.startAngle = THREE.MathUtils.degToRad(t.angle), this.endAngle = THREE.MathUtils.degToRad(n.angle);
2209
+ const [F, A, t] = D;
2210
+ this.center = hC(F, t, A), this.radius = wC(A, this.center);
2211
+ const e = CD(F, this.center, this.radius), r = CD(t, this.center, this.radius), s = CD(A, this.center, this.radius);
2212
+ this.clockwise = yC(
2213
+ r.angle,
2214
+ e.angle,
2215
+ s.angle
2216
+ ), this.startAngle = THREE.MathUtils.degToRad(e.angle), this.endAngle = THREE.MathUtils.degToRad(r.angle);
2154
2217
  }
2155
2218
  }
2156
2219
  async function UD() {
@@ -2158,115 +2221,115 @@ async function UD() {
2158
2221
  const D = new S();
2159
2222
  D.setMessage(`
2160
2223
  \u6307\u5B9A\u5706\u5F27\u7684\u8D77\u70B9:`), D.setKeyWords("[\u5706\u5FC3(C)]");
2161
- let C = new sD();
2162
- C.closed = !1, R.use(C);
2224
+ let C = new oD();
2225
+ C.closed = !1, L.use(C);
2163
2226
  let B, F, A;
2164
- const e = M(
2227
+ const t = M(
2165
2228
  D,
2166
2229
  () => {
2167
2230
  B = D.value(), D.setMessage(`
2168
- \u6307\u5B9A\u5706\u5F27\u7684\u7B2C\u4E8C\u4E2A\u70B9:`), D.setKeyWords("[\u5706\u5FC3(C)/\u7AEF\u70B9(E)]"), D.setUserDraw((m, p) => {
2169
- p.setColor(E), p.drawLine(B, m);
2170
- }), h();
2231
+ \u6307\u5B9A\u5706\u5F27\u7684\u7B2C\u4E8C\u4E2A\u70B9:`), D.setKeyWords("[\u5706\u5FC3(C)/\u7AEF\u70B9(E)]"), D.setUserDraw((c, p) => {
2232
+ p.setColor(E), p.drawLine(B, c);
2233
+ }), m();
2171
2234
  },
2172
2235
  () => {
2173
2236
  if (D.isKeyWordPicked("C")) {
2174
- const m = new _();
2175
- m.color = E, C.center = D.value(), m.center = D.value(), D.setMessage(`
2176
- \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3:`), D.setKeyWords(""), n();
2237
+ const c = new $();
2238
+ c.color = E, C.center = D.value(), c.center = D.value(), D.setMessage(`
2239
+ \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3:`), D.setKeyWords(""), r();
2177
2240
  } else
2178
2241
  return !0;
2179
2242
  }
2180
2243
  );
2181
- let t;
2182
- const n = M(
2244
+ let e;
2245
+ const r = M(
2183
2246
  D,
2184
2247
  () => {
2185
- t = D.value(), A = new _(), A.closed = !1, R.use(A), A.color = E, A.center = t, C.center = t, D.setMessage(`
2186
- \u6307\u5B9A\u5706\u5F27\u7684\u8D77\u70B9:`), D.setUserDraw((m, p) => {
2187
- p.drawCustomEntity(A), p.setColor(E), p.drawLine(t, m);
2248
+ e = D.value(), A = new $(), A.closed = !1, L.use(A), A.color = E, A.center = e, C.center = e, D.setMessage(`
2249
+ \u6307\u5B9A\u5706\u5F27\u7684\u8D77\u70B9:`), D.setUserDraw((c, p) => {
2250
+ p.drawCustomEntity(A), p.setColor(E), p.drawLine(e, c);
2188
2251
  }), u();
2189
2252
  },
2190
2253
  () => {
2191
2254
  }
2192
2255
  );
2193
- let r, o;
2256
+ let s, o;
2194
2257
  const u = M(
2195
2258
  D,
2196
2259
  () => {
2197
- r = D.value(), A.endPoint = r, D.setMessage(
2260
+ s = D.value(), A.endPoint = s, D.setMessage(
2198
2261
  `
2199
2262
  \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)]:`
2200
- ), D.setKeyWords("A L R"), o = new J(), o.setDashLineDisplay(!0), o.setDashArray(0.05), o.setLineWidth(2), o.setColor("#ffd30d"), o.pt1 = A.center, D.setUserDraw((m, p) => {
2201
- A.startPoint = m, o.pt2 = m, p.drawCustomEntity(A), p.drawCustomEntity(o);
2202
- }), s();
2263
+ ), D.setKeyWords("A L R"), o = new Z(), o.setDashLineDisplay(!0), o.setDashArray(0.05), o.setLineWidth(2), o.setColor("#ffd30d"), o.pt1 = A.center, D.setUserDraw((c, p) => {
2264
+ A.startPoint = c, o.pt2 = c, p.drawCustomEntity(A), p.drawCustomEntity(o);
2265
+ }), d();
2203
2266
  },
2204
2267
  () => {
2205
2268
  }
2206
2269
  );
2207
- let c;
2208
- const s = M(
2270
+ let l;
2271
+ const d = M(
2209
2272
  D,
2210
2273
  () => {
2211
- c = D.value(), A.startPoint = c, A.endPoint = r, d.getCurrentDraw().addMxEntity(A);
2274
+ l = D.value(), A.startPoint = l, A.endPoint = s, h.getCurrentDraw().addMxEntity(A);
2212
2275
  },
2213
2276
  () => {
2214
2277
  if (D.isKeyWordPicked("A"))
2215
2278
  return D.setMessage(
2216
2279
  `
2217
2280
  \u6307\u5B9A\u5706\u5F27\u7684\u5939\u89D2(\u6309\u4F4F ctrl \u952E\u53D6\u76F8\u53CD\u65B9\u5411)\u6216 [\u4FEE\u6539\u534A\u5F84(R)]:`
2218
- ), D.setKeyWords("R"), D.setUserDraw((m, p) => {
2219
- A.startPoint = m, p.drawCustomEntity(A), p.drawCustomEntity(o);
2281
+ ), D.setKeyWords("R"), D.setUserDraw((c, p) => {
2282
+ A.startPoint = c, p.drawCustomEntity(A), p.drawCustomEntity(o);
2220
2283
  }), !0;
2221
2284
  if (D.isKeyWordPicked("L"))
2222
2285
  return D.setMessage(
2223
2286
  `
2224
2287
  \u6307\u5B9A\u5706\u5F27\u7684\u5939\u89D2(\u6309\u4F4F ctrl \u952E\u53D6\u76F8\u53CD\u65B9\u5411)\u6216 [\u4FEE\u6539\u534A\u5F84(R)]:`
2225
- ), D.setKeyWords("R"), D.setUserDraw((m, p) => {
2226
- A.startPoint = m, p.drawCustomEntity(A), p.drawCustomEntity(o);
2288
+ ), D.setKeyWords("R"), D.setUserDraw((c, p) => {
2289
+ A.startPoint = c, p.drawCustomEntity(A), p.drawCustomEntity(o);
2227
2290
  }), !0;
2228
2291
  if (D.isKeyWordPicked("R"))
2229
2292
  D.setMessage(
2230
2293
  `
2231
2294
  \u6307\u5B9A\u5706\u5F27\u7684\u534A\u5F84${A.radius ? "<" + A.radius + ">" : ""}:`
2232
- ), D.setKeyWords(""), D.setUserDraw((m, p) => {
2233
- p.drawLine(m, A.center), A.startPoint = m, p.drawCustomEntity(A);
2295
+ ), D.setKeyWords(""), D.setUserDraw((c, p) => {
2296
+ p.drawLine(c, A.center), A.startPoint = c, p.drawCustomEntity(A);
2234
2297
  }), u();
2235
2298
  else
2236
2299
  return !0;
2237
2300
  }
2238
2301
  );
2239
- let a;
2240
- const h = M(
2302
+ let n;
2303
+ const m = M(
2241
2304
  D,
2242
2305
  () => {
2243
- a = D.value(), D.setMessage(`
2244
- \u6307\u5B9A\u5706\u5F27\u7684\u7AEF\u70B9:`), F = new YD(), F.color = E, F.autoClockwise = !0, F.closed = !1, R.use(F), D.setUserDraw((m, p) => {
2245
- F.point1 = B, F.point3 = a, F.point2 = m, p.drawCustomEntity(F);
2246
- }), y();
2306
+ n = D.value(), D.setMessage(`
2307
+ \u6307\u5B9A\u5706\u5F27\u7684\u7AEF\u70B9:`), F = new QD(), F.color = E, F.autoClockwise = !0, F.closed = !1, L.use(F), D.setUserDraw((c, p) => {
2308
+ F.point1 = B, F.point3 = n, F.point2 = c, p.drawCustomEntity(F);
2309
+ }), b();
2247
2310
  },
2248
2311
  () => {
2249
2312
  if (D.isKeyWordPicked("C"))
2250
- A = new _(), A.closed = !1, R.use(A), A.color = E, D.setMessage(`
2251
- \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3`), D.setKeyWords(""), D.setUserDraw((m, p) => {
2252
- A.startPoint = B, p.drawLine(m, A.startPoint);
2253
- }), n();
2313
+ A = new $(), A.closed = !1, L.use(A), A.color = E, D.setMessage(`
2314
+ \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3`), D.setKeyWords(""), D.setUserDraw((c, p) => {
2315
+ A.startPoint = B, p.drawLine(c, A.startPoint);
2316
+ }), r();
2254
2317
  else if (D.isKeyWordPicked("E"))
2255
- A = new _(), A.closed = !1, R.use(A), A.color = E, D.setMessage(`
2256
- \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3`), D.setKeyWords(""), D.setUserDraw((m, p) => {
2257
- A.startPoint = B, p.drawLine(m, A.startPoint);
2258
- }), n();
2318
+ A = new $(), A.closed = !1, L.use(A), A.color = E, D.setMessage(`
2319
+ \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3`), D.setKeyWords(""), D.setUserDraw((c, p) => {
2320
+ A.startPoint = B, p.drawLine(c, A.startPoint);
2321
+ }), r();
2259
2322
  else
2260
2323
  return !0;
2261
2324
  }
2262
2325
  );
2263
- let b = i.GetCurrentMxCAD();
2264
- const y = M(
2326
+ let g = i.GetCurrentMxCAD();
2327
+ const b = M(
2265
2328
  D,
2266
2329
  () => {
2267
- F.point1 = B, F.point2 = D.value(), F.point3 = a;
2268
- let m = new eD();
2269
- m.computeArc(F.point1.x, F.point1.y, F.point3.x, F.point3.y, F.point2.x, F.point2.y), b.DrawEntity(m);
2330
+ F.point1 = B, F.point2 = D.value(), F.point3 = n;
2331
+ let c = new iD();
2332
+ c.computeArc(F.point1.x, F.point1.y, F.point3.x, F.point3.y, F.point2.x, F.point2.y), g.DrawEntity(c);
2270
2333
  },
2271
2334
  () => {
2272
2335
  if (D.isKeyWordPicked("C"))
@@ -2277,22 +2340,22 @@ async function UD() {
2277
2340
  return !0;
2278
2341
  }
2279
2342
  );
2280
- e();
2343
+ t();
2281
2344
  }
2282
- d.on("init", () => {
2283
- d.addCommand("Mx_Arc", UD);
2345
+ h.on("init", () => {
2346
+ h.addCommand("Mx_Arc", UD);
2284
2347
  });
2285
- function zD() {
2286
- const E = new S(), D = new QD();
2287
- D.closed = !1, R.use(D), E.setMessage(`
2348
+ function VD() {
2349
+ const E = new S(), D = new XD();
2350
+ D.closed = !1, L.use(D), E.setMessage(`
2288
2351
  \u6307\u5B9A\u692D\u5706\u7684\u8F74\u7AEF\u70B9`), E.setKeyWords("[\u4E2D\u5FC3\u70B9(C)]");
2289
2352
  let C, B = new THREE.Vector3();
2290
2353
  M(
2291
2354
  E,
2292
2355
  () => {
2293
- C = E.value(), E.setUserDraw((r, o) => {
2294
- const u = new THREE.Line3(C, r);
2295
- u.getCenter(B), D.center = B, D.xRadius = u.distance() / 2, D.yRadius = D.xRadius, D.rotation = X(r.x, r.y, B.x, B.y), o.drawLine(r, C);
2356
+ C = E.value(), E.setUserDraw((s, o) => {
2357
+ const u = new THREE.Line3(C, s);
2358
+ u.getCenter(B), D.center = B, D.xRadius = u.distance() / 2, D.yRadius = D.xRadius, D.rotation = DD(s.x, s.y, B.x, B.y), o.drawLine(s, C);
2296
2359
  }), E.setMessage(`
2297
2360
  \u6307\u5B9A\u692D\u5706\u5F27\u8F74\u7684\u53E6\u4E00\u4E2A\u7AEF\u70B9:`), E.setKeyWords(""), A();
2298
2361
  },
@@ -2302,75 +2365,76 @@ function zD() {
2302
2365
  const A = M(
2303
2366
  E,
2304
2367
  () => {
2305
- E.setUserDraw((r, o) => {
2306
- D.yRadius = B.distanceTo(r), o.drawLine(B, r), o.drawCustomEntity(D);
2368
+ E.setUserDraw((s, o) => {
2369
+ D.yRadius = B.distanceTo(s), o.drawLine(B, s), o.drawCustomEntity(D);
2307
2370
  }), E.setMessage(`
2308
- \u6307\u5B9A\u53E6\u4E00\u6761\u534A\u8F74\u957F\u5EA6`), E.setKeyWords(""), e();
2371
+ \u6307\u5B9A\u53E6\u4E00\u6761\u534A\u8F74\u957F\u5EA6`), E.setKeyWords(""), t();
2309
2372
  },
2310
2373
  () => {
2311
2374
  }
2312
- ), e = M(
2375
+ ), t = M(
2313
2376
  E,
2314
2377
  () => {
2315
2378
  E.setMessage(`
2316
- \u6307\u5B9A\u8D77\u59CB\u89D2\u5EA6`), E.setKeyWords(""), E.setUserDraw((r, o) => {
2317
- D.startAngle = X(r.x, r.y, B.x, B.y) - D.rotation, o.drawLine(B, r), o.drawCustomEntity(D);
2318
- }), t();
2379
+ \u6307\u5B9A\u8D77\u59CB\u89D2\u5EA6`), E.setKeyWords(""), E.setUserDraw((s, o) => {
2380
+ D.startAngle = DD(s.x, s.y, B.x, B.y) - D.rotation, o.drawLine(B, s), o.drawCustomEntity(D);
2381
+ }), e();
2319
2382
  },
2320
2383
  () => {
2321
2384
  }
2322
- ), t = M(
2385
+ ), e = M(
2323
2386
  E,
2324
2387
  () => {
2325
- E.setUserDraw((r, o) => {
2326
- D.endAngle = X(r.x, r.y, B.x, B.y) - D.rotation, o.drawLine(B, r), o.drawCustomEntity(D);
2388
+ E.setUserDraw((s, o) => {
2389
+ D.endAngle = DD(s.x, s.y, B.x, B.y) - D.rotation, o.drawLine(B, s), o.drawCustomEntity(D);
2327
2390
  }), E.setMessage(`
2328
- \u6307\u5B9A\u7EC8\u6B62\u89D2\u5EA6`), E.setKeyWords(""), n();
2391
+ \u6307\u5B9A\u7EC8\u6B62\u89D2\u5EA6`), E.setKeyWords(""), r();
2329
2392
  },
2330
2393
  () => {
2331
2394
  }
2332
- ), n = M(
2395
+ ), r = M(
2333
2396
  E,
2334
2397
  () => {
2335
- let r = new g(D.xRadius, 0, 0);
2336
- r.rotateBy(D.rotation, g.kZAxis), i.GetCurrentMxCAD().DrawEllipseArc(D.center.x, D.center.y, r.x, r.y, D.yRadius / D.xRadius, D.startAngle, D.endAngle);
2398
+ let s = new w(D.xRadius, 0, 0);
2399
+ s.rotateBy(D.rotation, w.kZAxis), i.GetCurrentMxCAD().DrawEntity(new rD(D.center.x, D.center.y, 0, s.x, s.y, 0, D.yRadius / D.xRadius, D.startAngle, D.endAngle));
2337
2400
  },
2338
2401
  () => {
2339
2402
  }
2340
2403
  );
2341
2404
  }
2342
- function yC() {
2343
- const E = new S(), D = new XD(), C = new DC();
2344
- E.setMessage(`
2405
+ function gC() {
2406
+ const E = new S(), D = new DC(), C = new CC();
2407
+ let B = i.GetCurrentDatabase().GetCurrentlyDrawColor();
2408
+ C.setColor(B), E.setMessage(`
2345
2409
  \u70B9\u51FB\u5F00\u59CB\u7ED8\u5236\u692D\u5706:`), E.go(() => {
2346
- C.point1 = E.value(), D.setDraw((B) => {
2347
- C.point2 = B, D.drawCustomEntity(C);
2410
+ C.point1 = E.value(), D.setDraw((F) => {
2411
+ C.point2 = F, D.drawCustomEntity(C);
2348
2412
  }), E.setUserDraw(D), E.setMessage(`
2349
2413
  \u518D\u6B21\u70B9\u51FB\u7ED3\u675F\u7ED8\u5236\u692D\u5706:`), E.go(() => {
2350
- i.GetCurrentMxCAD().DrawEllipse(C.center.x, C.center.y, C.xRadius, 0, C.yRadius / C.xRadius);
2414
+ i.GetCurrentMxCAD().DrawEntity(new rD(C.center.x, C.center.y, 0, C.xRadius, 0, 0, C.yRadius / C.xRadius));
2351
2415
  });
2352
2416
  });
2353
2417
  }
2354
- d.on("init", () => {
2355
- d.addCommand("Mx_EllipseArc", zD), d.addCommand("Mx_Ellipse", yC);
2418
+ h.on("init", () => {
2419
+ h.addCommand("Mx_EllipseArc", VD), h.addCommand("Mx_Ellipse", gC);
2356
2420
  });
2357
- async function VD() {
2358
- (await iD.selectEnt(`
2421
+ async function KD() {
2422
+ (await sD.selectEnt(`
2359
2423
  \u9009\u62E9\u5220\u9664\u5BF9\u8C61`)).forEach((D) => {
2360
2424
  D.erase();
2361
2425
  });
2362
2426
  }
2363
- d.addCommand("Mx_Erase", VD);
2364
- const gC = async (E, D, C) => {
2427
+ h.addCommand("Mx_Erase", KD);
2428
+ const bC = async (E, D, C) => {
2365
2429
  const { locateFile: B } = C, F = B(E + ".js");
2366
- return await vD(F), await globalThis[D](C);
2430
+ return await OD(F), await globalThis[D](C);
2367
2431
  };
2368
- function bC(E) {
2432
+ function xC(E) {
2369
2433
  return typeof ResizeObserver == "function" ? new ResizeObserver(E) : null;
2370
2434
  }
2371
- function xC(E, D) {
2435
+ function fC(E, D) {
2372
2436
  const C = () => requestAnimationFrame(D);
2373
- let B = bC(C);
2437
+ let B = xC(C);
2374
2438
  if (B) {
2375
2439
  B.observe(E);
2376
2440
  return;
@@ -2380,7 +2444,7 @@ function xC(E, D) {
2380
2444
  return;
2381
2445
  }
2382
2446
  }
2383
- function fC(E, D) {
2447
+ function MC(E, D) {
2384
2448
  let C = null;
2385
2449
  return function(...B) {
2386
2450
  C || (C = setTimeout(() => {
@@ -2388,52 +2452,52 @@ function fC(E, D) {
2388
2452
  }, D));
2389
2453
  };
2390
2454
  }
2391
- class z {
2455
+ class V {
2392
2456
  static onloadWasmMxDraw3dModel;
2393
2457
  canvas;
2394
2458
  constructor(D) {
2395
2459
  const C = () => {
2396
- const u = this.canvas.parentElement?.clientWidth || window.innerWidth, c = this.canvas.parentElement?.clientHeight || window.innerHeight;
2397
- let s = Math.min(u, window.screen.availWidth), a = Math.min(c, window.screen.availHeight);
2398
- s = Math.max(A, s), a = Math.max(e, a), this.canvas.style.width = s + 1 + "px", this.canvas.style.height = a + "px";
2399
- const h = window.devicePixelRatio || 1;
2400
- this.canvas.width = s * h, this.canvas.height = a * h;
2401
- }, B = fC(C, 50), {
2460
+ const u = this.canvas.parentElement?.clientWidth || window.innerWidth, l = this.canvas.parentElement?.clientHeight || window.innerHeight;
2461
+ let d = Math.min(u, window.screen.availWidth), n = Math.min(l, window.screen.availHeight);
2462
+ d = Math.max(A, d), n = Math.max(t, n), this.canvas.style.width = d + 1 + "px", this.canvas.style.height = n + "px";
2463
+ const m = window.devicePixelRatio || 1;
2464
+ this.canvas.width = d * m, this.canvas.height = n * m;
2465
+ }, B = MC(C, 50), {
2402
2466
  canvas: F,
2403
2467
  minWidth: A = 300,
2404
- minHeight: e = 300,
2405
- updateCanvasSize: t = B,
2406
- ...n
2468
+ minHeight: t = 300,
2469
+ updateCanvasSize: e = B,
2470
+ ...r
2407
2471
  } = D;
2408
- let r = typeof F == "string" ? document.querySelectorAll(F)[0] : F, o = r.getContext("webgl2", { alpha: !1, depth: !0, antialias: !1, preserveDrawingBuffer: !0 });
2409
- o == null && (o = r.getContext("webgl", { alpha: !1, depth: !0, antialias: !1, preserveDrawingBuffer: !0 })), this.canvas = r, this.ctx = o, n.canvas = this.canvas;
2410
- for (let u in n)
2411
- this[u] = n[u];
2472
+ let s = typeof F == "string" ? document.querySelectorAll(F)[0] : F, o = s.getContext("webgl2", { alpha: !1, depth: !0, antialias: !1, preserveDrawingBuffer: !0 });
2473
+ o == null && (o = s.getContext("webgl", { alpha: !1, depth: !0, antialias: !1, preserveDrawingBuffer: !0 })), this.canvas = s, this.ctx = o, r.canvas = this.canvas;
2474
+ for (let u in r)
2475
+ this[u] = r[u];
2412
2476
  if (this.canvas instanceof HTMLCanvasElement) {
2413
2477
  const u = this.canvas.parentElement || document.body;
2414
- xC(u, t);
2478
+ fC(u, e);
2415
2479
  } else
2416
2480
  console.error("createMxDraw3d canvas \u53C2\u6570\u4E0D\u6B63\u786E \u65E0\u6CD5\u83B7\u53D6\u5230canvas\u5143\u7D20");
2417
- window.onresize = C, C(), gC("mxdraw3d_min", "mxdraw3d", this).then(() => {
2418
- z.onloadWasmMxDraw3dModel && z.onloadWasmMxDraw3dModel(this), this.updateCanvasSize = t, this.open3DFile = (u) => {
2419
- const c = new FileReader();
2420
- c.onload = () => {
2421
- if (!!c.result && c.result instanceof ArrayBuffer) {
2422
- var s = new Uint8Array(c.result);
2423
- const a = this._malloc(s.length);
2424
- this.HEAPU8.set(s, a), this.openFromMemory(u.name, a, s.length, !0), this.displayGround(!0), this.canvas.focus();
2481
+ window.onresize = C, C(), bC("mxdraw3d_min", "mxdraw3d", this).then(() => {
2482
+ V.onloadWasmMxDraw3dModel && V.onloadWasmMxDraw3dModel(this), this.updateCanvasSize = e, this.open3DFile = (u) => {
2483
+ const l = new FileReader();
2484
+ l.onload = () => {
2485
+ if (!!l.result && l.result instanceof ArrayBuffer) {
2486
+ var d = new Uint8Array(l.result);
2487
+ const n = this._malloc(d.length);
2488
+ this.HEAPU8.set(d, n), this.openFromMemory(u.name, n, d.length, !0), this.displayGround(!0), this.canvas.focus();
2425
2489
  }
2426
- }, c.readAsArrayBuffer(u);
2490
+ }, l.readAsArrayBuffer(u);
2427
2491
  };
2428
2492
  });
2429
2493
  }
2430
2494
  }
2431
- function MC(E, D) {
2495
+ function TC(E, D) {
2432
2496
  return new Promise(async (C, B) => {
2433
2497
  try {
2434
- E.locateFile || (E.locateFile = nC);
2435
- const F = new z(E);
2436
- z.onloadWasmMxDraw3dModel = () => {
2498
+ E.locateFile || (E.locateFile = oC);
2499
+ const F = new V(E);
2500
+ V.onloadWasmMxDraw3dModel = () => {
2437
2501
  C(F), D && D(F);
2438
2502
  };
2439
2503
  } catch (F) {
@@ -2441,135 +2505,137 @@ function MC(E, D) {
2441
2505
  }
2442
2506
  });
2443
2507
  }
2444
- const kC = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
2508
+ const PC = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
2445
2509
  __proto__: null,
2446
- b64Encode: lD,
2447
- b64Decode: cD,
2448
- saveAsFileDialog: mD,
2449
- downloadFile: pD,
2450
- downloadFileFromUrl: dD,
2451
- MxTools: N,
2452
- McGePoint3d: l,
2453
- McGeVector3d: g,
2454
- McGeMatrix3d: W,
2455
- McGeLongArray: BC,
2456
- McGeStringArray: hD,
2457
- McGePoint3dArray: EC,
2458
- getFilterImp: K,
2459
- McDrawResbuf: H,
2510
+ b64Encode: mD,
2511
+ b64Decode: pD,
2512
+ saveAsFileDialog: dD,
2513
+ downloadFile: hD,
2514
+ downloadFileFromUrl: wD,
2515
+ MxTools: _,
2516
+ McGePoint3d: a,
2517
+ McGeVector3d: w,
2518
+ McGeMatrix3d: z,
2519
+ McGeLongArray: EC,
2520
+ McGeStringArray: yD,
2521
+ McGePoint3dArray: FC,
2522
+ getFilterImp: N,
2523
+ McDrawResbuf: q,
2460
2524
  McDrawUtilityClass: LD,
2461
- McDrawUtility: iD,
2462
- McDrawSelSet: eC,
2463
- McRxObject: O,
2525
+ McDrawUtility: sD,
2526
+ McDrawSelSet: iC,
2527
+ McRxObject: j,
2464
2528
  McObjectIdType: f,
2465
2529
  McObjectId: T,
2466
2530
  McDbObject: v,
2467
2531
  get McDb() {
2468
- return CD;
2532
+ return BD;
2469
2533
  },
2470
- McCmColor: j,
2471
- McDbLayerTableRecord: tC,
2472
- McDbLayerTable: wD,
2473
- McDbLinetypeTable: yD,
2474
- McDbTextStyleTable: gD,
2475
- McDbDatabase: ED,
2476
- McDbBlockTableRecordIterator: bD,
2477
- McDbBlockTableRecord: Y,
2478
- McDbBlockTableIterator: xD,
2479
- McDbBlockTable: fD,
2480
- McDbEntity: V,
2481
- McDbCurve: q,
2482
- McDbLine: Z,
2483
- McDbText: BD,
2484
- McDbMText: FD,
2485
- McDbCircle: AD,
2486
- McDbPolyline: MD,
2487
- McDbBlockReference: TD,
2488
- McDbDimension: tD,
2489
- McDbAlignedDimension: kD,
2490
- McDbRotatedDimension: PD,
2491
- McDbArc: eD,
2534
+ McCmColor: G,
2535
+ McDbLayerTableRecord: eC,
2536
+ McDbLayerTable: gD,
2537
+ McDbLinetypeTable: bD,
2538
+ McDbTextStyleTable: xD,
2539
+ McDbDatabase: FD,
2540
+ McDbBlockTableRecordIterator: fD,
2541
+ McDbBlockTableRecord: Q,
2542
+ McDbBlockTableIterator: MD,
2543
+ McDbBlockTable: TD,
2544
+ McDbEntity: K,
2545
+ McDbCurve: H,
2546
+ McDbLine: Y,
2547
+ McDbText: ED,
2548
+ McDbMText: AD,
2549
+ McDbCircle: O,
2550
+ McDbPolyline: tD,
2551
+ McDbBlockReference: kD,
2552
+ McDbDimension: eD,
2553
+ McDbAlignedDimension: PD,
2554
+ McDbRotatedDimension: RD,
2555
+ McDbArc: iD,
2556
+ McDbEllipse: rD,
2492
2557
  McObject: U,
2493
- McAppType: RD,
2494
- MxCppType: SD,
2558
+ McAppType: SD,
2559
+ MxCppType: vD,
2495
2560
  get MxCpp() {
2496
2561
  return i;
2497
2562
  },
2498
- loadMxCADassembly: OD,
2499
- createMxCad: lC,
2500
- drawText: cC,
2501
- drawCircle: jD,
2502
- drawLine: GD,
2503
- drawMText: pC,
2504
- drawPolyLine: ID,
2505
- drawPolygon: WD,
2563
+ loadMxCADassembly: jD,
2564
+ createMxCad: cC,
2565
+ drawText: mC,
2566
+ drawCircle: GD,
2567
+ drawLine: ID,
2568
+ drawMText: dC,
2569
+ drawPolyLine: WD,
2570
+ drawPolygon: zD,
2506
2571
  drawArc: UD,
2507
- drawEllipticalArc: zD,
2508
- mxErase: VD,
2509
- MxDraw3d: z,
2510
- loadMxCADassembly3d: MC
2572
+ drawEllipticalArc: VD,
2573
+ mxErase: KD,
2574
+ MxDraw3d: V,
2575
+ loadMxCADassembly3d: TC
2511
2576
  }, Symbol.toStringTag, { value: "Module" }));
2512
2577
  export {
2513
- RD as McAppType,
2514
- j as McCmColor,
2515
- CD as McDb,
2516
- kD as McDbAlignedDimension,
2517
- eD as McDbArc,
2518
- TD as McDbBlockReference,
2519
- fD as McDbBlockTable,
2520
- xD as McDbBlockTableIterator,
2521
- Y as McDbBlockTableRecord,
2522
- bD as McDbBlockTableRecordIterator,
2523
- AD as McDbCircle,
2524
- q as McDbCurve,
2525
- ED as McDbDatabase,
2526
- tD as McDbDimension,
2527
- V as McDbEntity,
2528
- wD as McDbLayerTable,
2529
- tC as McDbLayerTableRecord,
2530
- Z as McDbLine,
2531
- yD as McDbLinetypeTable,
2532
- FD as McDbMText,
2578
+ SD as McAppType,
2579
+ G as McCmColor,
2580
+ BD as McDb,
2581
+ PD as McDbAlignedDimension,
2582
+ iD as McDbArc,
2583
+ kD as McDbBlockReference,
2584
+ TD as McDbBlockTable,
2585
+ MD as McDbBlockTableIterator,
2586
+ Q as McDbBlockTableRecord,
2587
+ fD as McDbBlockTableRecordIterator,
2588
+ O as McDbCircle,
2589
+ H as McDbCurve,
2590
+ FD as McDbDatabase,
2591
+ eD as McDbDimension,
2592
+ rD as McDbEllipse,
2593
+ K as McDbEntity,
2594
+ gD as McDbLayerTable,
2595
+ eC as McDbLayerTableRecord,
2596
+ Y as McDbLine,
2597
+ bD as McDbLinetypeTable,
2598
+ AD as McDbMText,
2533
2599
  v as McDbObject,
2534
- MD as McDbPolyline,
2535
- PD as McDbRotatedDimension,
2536
- BD as McDbText,
2537
- gD as McDbTextStyleTable,
2538
- H as McDrawResbuf,
2539
- eC as McDrawSelSet,
2540
- iD as McDrawUtility,
2600
+ tD as McDbPolyline,
2601
+ RD as McDbRotatedDimension,
2602
+ ED as McDbText,
2603
+ xD as McDbTextStyleTable,
2604
+ q as McDrawResbuf,
2605
+ iC as McDrawSelSet,
2606
+ sD as McDrawUtility,
2541
2607
  LD as McDrawUtilityClass,
2542
- BC as McGeLongArray,
2543
- W as McGeMatrix3d,
2544
- l as McGePoint3d,
2545
- EC as McGePoint3dArray,
2546
- hD as McGeStringArray,
2547
- g as McGeVector3d,
2608
+ EC as McGeLongArray,
2609
+ z as McGeMatrix3d,
2610
+ a as McGePoint3d,
2611
+ FC as McGePoint3dArray,
2612
+ yD as McGeStringArray,
2613
+ w as McGeVector3d,
2548
2614
  U as McObject,
2549
2615
  T as McObjectId,
2550
2616
  f as McObjectIdType,
2551
- O as McRxObject,
2617
+ j as McRxObject,
2552
2618
  i as MxCpp,
2553
- SD as MxCppType,
2554
- z as MxDraw3d,
2555
- N as MxTools,
2556
- cD as b64Decode,
2557
- lD as b64Encode,
2558
- lC as createMxCad,
2559
- kC as default,
2560
- pD as downloadFile,
2561
- dD as downloadFileFromUrl,
2619
+ vD as MxCppType,
2620
+ V as MxDraw3d,
2621
+ _ as MxTools,
2622
+ pD as b64Decode,
2623
+ mD as b64Encode,
2624
+ cC as createMxCad,
2625
+ PC as default,
2626
+ hD as downloadFile,
2627
+ wD as downloadFileFromUrl,
2562
2628
  UD as drawArc,
2563
- jD as drawCircle,
2564
- zD as drawEllipticalArc,
2565
- GD as drawLine,
2566
- pC as drawMText,
2567
- ID as drawPolyLine,
2568
- WD as drawPolygon,
2569
- cC as drawText,
2570
- K as getFilterImp,
2571
- OD as loadMxCADassembly,
2572
- MC as loadMxCADassembly3d,
2573
- VD as mxErase,
2574
- mD as saveAsFileDialog
2629
+ GD as drawCircle,
2630
+ VD as drawEllipticalArc,
2631
+ ID as drawLine,
2632
+ dC as drawMText,
2633
+ WD as drawPolyLine,
2634
+ zD as drawPolygon,
2635
+ mC as drawText,
2636
+ N as getFilterImp,
2637
+ jD as loadMxCADassembly,
2638
+ TC as loadMxCADassembly3d,
2639
+ KD as mxErase,
2640
+ dD as saveAsFileDialog
2575
2641
  };