From c880007cf2400e6a3b9dd5433d4eb52ed8fec22c Mon Sep 17 00:00:00 2001 From: Ylian Saint-Hilaire Date: Fri, 4 Jan 2019 17:59:13 -0800 Subject: [PATCH] Minor security fixes. --- agents/meshcmd.js | 6 + agents/meshcmd.min.js | 2 +- agents/meshcore.js | 21 + agents/meshcore.min.js | 2 +- agents/modules_meshcmd/service-host.js | 3 + agents/modules_meshcmd/service-manager.js | 3 + .../modules_meshcmd_min/service-host.min.js | 2 +- .../service-manager.min.js | 2 +- agents/modules_meshcore/service-manager.js | 7 +- .../service-manager.min.js | 2 +- meshaccelerator.js | 4 + meshagent.js | 4 + meshuser.js | 2270 +++++++++-------- multiserver.js | 5 + public/commander.htm | 4 +- public/scripts/amt-ider-ws-0.0.1.js | 2 +- public/scripts/amt-setupbin-0.1.0.js | 2 +- redirserver.js | 6 +- swarmserver.js | 8 + views/default-min.handlebars | 2 +- views/default-mobile-min.handlebars | 2 +- views/default-mobile.handlebars | 22 +- views/default.handlebars | 64 +- views/messenger-min.handlebars | 3 +- views/messenger.handlebars | 3 +- webserver.js | 16 +- 26 files changed, 1290 insertions(+), 1177 deletions(-) diff --git a/agents/meshcmd.js b/agents/meshcmd.js index bf69d82c..4ba074ac 100644 --- a/agents/meshcmd.js +++ b/agents/meshcmd.js @@ -1226,6 +1226,9 @@ function kvmCtrlData(channel, cmd) { } break; } + default: + // Unknown action, ignore it. + break; } } @@ -1293,6 +1296,9 @@ function processLmsControlData(data) { { amtMei.closeUserInitiatedConnection(function (status, socket) { var data = Buffer.alloc(6); data.writeUInt16LE(7, 0); data.writeUInt32LE(status, 2); socket.write(data); }, this); break; } case 8: // Get Intel AMT CIRA State (CMD = 8) { amtMei.getRemoteAccessConnectionStatus(function (state, socket) { var data = Buffer.alloc(6); data.writeUInt16LE(8, 0); data.writeUInt32LE(state.status, 2); socket.write(Buffer.concat([data, state.raw])); }, this); break; } + default: + // Unknown action, ignore it. + break; } } diff --git a/agents/meshcmd.min.js b/agents/meshcmd.min.js index 551e0f60..b13bff67 100644 --- a/agents/meshcmd.min.js +++ b/agents/meshcmd.min.js @@ -1 +1 @@ -var fs=require("fs");var os=require("os");var net=require("net");var http=require("http");var dgram=require("dgram");var httpHeaders=require("http-headers");var tcpserver=null;var broadcastSockets={};var multicastSockets={};var discoveryInterval=null;var membershipIPv4="239.255.255.235";var membershipIPv6="FF02:0:0:0:0:0:0:FE";var settings=null;var meshCmdVersion="***Mesh*Cmd*Version***";var amtLms=null,amtMei=null,amtMeiState=null;var wsstack=null,amtstack=null;var oswsstack=null,osamtstack=null;var amtMeiTmpState=null;var SMBiosTables=null;var Small_IntelAmtWebApp="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";var Medium_IntelAmtWebApp="H4sIAAAAAAAEAHq/e7+Noou/c0hkgCuA0+pekxQF4q/i5uit2lnXuZxzvn9LKZVvEDik0/rNux802qNjz6WJTcVfRfAqXbOrt/av1+gjw7RCWlY6DoPgiaEjkKu3NWowglr6+OeW7tI//F8/9D8WtQRNM4ZeLrhGrtOHX36aIinxoVO5pWs86DfWR5JXoBrU6VYX/vrh0OjHTtj/5Six0+dQY1oIVYP2CWrMNRV8aJWhrATHlAvjklF+7Slk6UNqRB562hhKaQ0lvpG89CqFRfqQgIb4TEwyaHA5f01/++j7n/bB15+XIjWWTom4ygQ5toNsJDUc/OFZ7FAVTOzjihKCPCmEgV9ATdkxBkWBvfYqZDvUNIfXXgO88RtUtHCCDX2H8UbqJBdMqDhjkF8nmflTKrHlJN5XVKPxqUrKfS1kHPQHhoW+PSkLyBz9PWbXVBvRbV75OTAmtjrmguOZtTXuDQSGec+4tkW5QK/Fu0vUZkqcEG4YbR00A0oCIZSXcWDIkCFrCW0kg6MJV5hwXeh7yonY2x4ZxO8PeckFg3tKdOUK4WzHlS1IOzFRmQQxm6Tkzvnk8QbiHW2oRtLas08wFwpso7lwnM6jYF5YUdtj/0bOQeloALNZFCU3VdjeVj4MpXaNsHctlQlGhr0wqvZCHoatEAa350xoLep4aSg3VTTwsPkvDpZjB8uJfVNB2f6NxnyqMe7QyALUZAzQUKoppU/fVjUGrBSUa1TD2TApheTmPbudjJwUDT0VoqAHJImblW5I+uno5na5koeRoSUsN8tgSGKUIyi/VEAocv08nC0Ilq+9TtQLnrx+NI/m4Sz3bPO9MDikEqXCpsngEhjn9DKe6A6cotjgLDAmKR8le24KbqhMlO1QPMsyyBaOEd7L8bRdZZ5WMdeVn1eUkeeCkBcjBVwjFmgUii1jOTJ2MZKNPJxDOJfZhWY4dxaiMVYD5f/DWLhYTs31s28z4jJn+Ha3Mh8YLXlsjBqXHHb31WHj6jDy59aIc5gJRVDd9qvXCEaJ11dl6m5Uu1W0ipbF37XSvOskJ3nqJFjCAgLXSQ582PY7LjQIAvNr/6/P42Uz/fdzfbo5/EZCjjEXewUyGY+ScxSNOmwWjec5GJqc6qu7q8yQgnZyfRlq2HZp7VIenvNq8nJMTsvUJdTisBpRe4E4+89mZvddCI/Ws3W0yqZBNVIhkOGdP7xlJnb6EDWtUXXwBrgeQZYDhlO9nmE060EaV6csaiFH18T8/i0+eSGExrkzEbVjiHtQvL3HzKM8sF9GiuaCh20Xsl3ofSYWozXlK5QI9rrvPg15p7dVvFXs+fCtVdKif2v9xXtRLDqqQ//lrd5o3cZPBElJIVDj7lLKxaGepj8/7rK9R7fHxW+XpkvKlAIIcLgHDu7q64Qc2qXurs7+2Niez6nQZeOubrdtoquhqe/O+07rMnqyx+kuylmbxetqFA8ul1arpa0BAgoAY3DgMwhAn5Svx7xk+07X5Zv4uKGgc8rxDC2b3G405imDMEyI21GK4zZzZNKnMDZJ4yE9DSWieGEzotLEpUoZTQIzPs2JUPjALZz2tI89Pjg3E89SJyjpeGThGAbb2maez5P5zRghIdgUif09CJOn/dBMVVz6oQ/k+Pq/R18j3n3QiDNKwCNLLitOFAB4P0eQ/xZBW9f2kx06gFzVWTNb7bN6I1g070l2a6/MIJQJsOgk265dHjf3ttNdbOKSiOsUjkF2nOfEhgZc9fqHt70H9XZqW+DQyIrXp5H8S+20fvY++s37mYydQ+RUK27vVLa7QzPbLEPUv8EuN2SIIA/FPOynazPYp3jl92TgPEE1HV9toDSR6CqIyKC/KpskTgLhGP2FBcemb6YVq2mwLPwR7EVXFNHCWnSOBS6WcIxphH/UxymukDx8XwmfLokqq7+9Id32P4+wD+w8Z2PjOHZ/BdGWkfcsm0X1xlbieuusi2I5vUIkZDOmCIYgXZI/HzwAgkGwyPL4+n3YmRHwGh4eXgO4MohB2JD6xkVOdYDDYVQwMVnjHIPxYuxWnWPA672C/xNECqJsvY2e3kbxb4tFv5zfgKsuCQgAFm077WsUf1ArvgyoOr8y4iawWuvRq7DdECw4dMH+r77GipIoj3BcW2aB3HVlFsQru8zSo6w6aA9AgFvYqpL6kfXIMqb8CAklG/Wm64s61t6Ag31Z8h7kUc7/uiLsgZf3K5xwcgf7cvBAJJE0KRJOOTzsfI+7O7xWDqMnFIWHDgpizNihTMk5IbyIieooGDFUbcuA7x2HAbgQPYmwzct5mnaQzFcOO/JvTj9VhCEuWoIZUx7I4FrkAH1fCCLFlNBGsq6l98q9D0+fmrqwn5GQ0+WY5p+alK/YrNNoRdnITwIiNkuZoqrn+EE2tslzQD8sxQmQ7E8vKQbYvb29g30YtXgOqq2br6rQFsagAYdKOJkj8y3l/6UwcU/dtykX0SSIo+DxMFp03Z3pAZ7OXxk/I2ie47xgB/v4Da3fhNcXiLdkRXOCTgl75AstYfpNmL5kSaCF0oNT2bs8ujZRvQZMTyD+jLOQ5zsEXSSydxTRxMQeNmAPBfbZE0lydEnvS7IOmmQdCKSjIowqSJ7bJKbSaU4zHrtMlHEDxlggXJP8mWaPaE7ynFtDeR9GTRKOBO4F2FxC8nrkSRPyRC7vHnQyywgjSUBKmOMmzLFpN6dkSRJWxmw0OKmdv2ckQ0dBQIskLwnr+U1qlXbzj/iRoKMYZytA06bPpLahgcPUcSkHztrTvNbquo7VE2PLY7hWIT9e4mAc6ngzqHRHAME8o3a1KzlJJoYvnx5ECY9Zsrm5KDipBDxeQQ47c74QNA+yKM07Wi/LRXdHr0kTNAIC1L2mKwLfZ4vyY7Jg6deDxfS2SBIOqLgc7C+Uk5JULTRQ02SqHVZVua7z2UpsWaOhQyu30csXk8Cl3GkYVDWk1dt56rrOLlrimBGIhovpP4FW2hTer5J7U/DdQ8TQOi35wtAyylbCl7EHWsQhWhBUpCHOSbh7gBXt8mreRMugr56R7pfkee++iL7s7M0fSBzv0ZQkZy/gDnDc/QIdePbr/X1GOJ0of+3J8LQHxGLIkPZx+BRxBq97mKUvfy3G+eZdXN+dXfbmRz1eOo4GP8Y4uS/4+eIzJOktsy+gjWKaxgQzgoIHEjyiB5JxF1BM4VjuaTXZRuE2Zg3ySiJaZnhFBKjXCrpOhxzOQSLZrHyFvzawsWH7vRdlxho85YQe3FIsfnAtkulaetMqAc2KoICp47vbV6fEJuY1EFPD1lngVl4b+yxmgwZmwybJdUS0CA01IT00aqA9bqJthzSLxbjKYtLAwm3SvB1JTAae00TNr6EmKi9pa6MxZGhA3UpT0B3JOBiOJaOFkWO+bduLpFJN1CzPZHm7geF4uD94PifcljLCTuP77o6Z4oquQil2gCNT1KCGrDqo1iJRn4+6iktcpTAcr2gisoz4x4zcf0VHV3foloRRpm7tUprliGbI1tdSLgJFDHFNQLIevm2PN91FsF7pO1BOEUkABEX5Xktg8fzPVvWMPpPsSKzkD0fbMrfW4QJUmNAcpSArCbn8tvIixgqCsIRAgSyk9kwNqroNUh0lxqEjfkE3Wf6yXa6W1zFkd6xmslHuSfxyBNSIa/3b9yInJycNCZHZ+S1lSDR5JK9FeshIEsKhvIDRX8gr6xJwaDsI1B/QDAz0kC6X8jdOoxzHPFDDkOJGYe35q74s0N0Fx6yshcUs4iI77HDGgtsx/yWKZG3Q2tPLiF9N5qTYKRSoEMH50UhkdtGRMyF9TuwJaYYBDsv5oLBZJI2W8XDVabVotdZSb8BPX5Q2QfjA+S0JymNilqMTnHJYDgXtBj56R+/voYUAk/sMclu6RLnyriiQ0Lvo+YEkCKZTSEzzB/0aAcDhp4JEi2K5JBl6juIY0iiGn0gIhwKjZRQTQztrHkogKUeLgvThbt5U0J6rlntCk4QEuWb3EiqD1P7vsLP+V2dNUhvQYHoasUCSIKHlBEsnzDw+0N63OxBQ+mcEiMLp4CT4r9/5IYUlDbc3q2iJpNL2+NAJDQk6PES8b4AecBLGhJ/yGVBQiv2K6sxQLqJkiWPnxRtY9qctDk552UgkxJyPd3f03utljX7ry3rnqjoiKqPuueugQ3Q2P/nVv95c7djn7NyFwwAwnDdDZFXEInuEVdSu+/ylbtXjP5hVQ4mThCRERyyIok7Ttm5eKDxI0kttOO1/MCZ8kse9k9Ii5lwLnFoXuiN/eLL+U62sXv8PTlh+bupFHf3BiXrMfbK4/a8VeLxjOt/JbyemzzDLSV1A0yJ1jrv+7hcB92XX3wUJxY+djoxmunVvV2b9d1RmGtyXNbvdhZalmUXa/0uBBgXaL/9w1VqU+R8syvy/FGV/zkWZNh+rBDL2LFusg/QtzXFO0CVZGq3sMBOj3Z7LgzGNcZbpaNxM4ha4V2kIEpkmYVY5nukRrawBLvUQCzJCErSiIel8xGNKD3kOpLRYi3cVYH6daHP8RBBWUvFjoQufTFpiKJ3eN4gKHHj9qKUFijB2AU8vGgVvvqlYN/uAplrEWRjllsCIKbAPSW76CeX212y3kljJd8Ij8j0BtapzysCMLE2vcPAQJR8yik+u2fWx0N436FvGZnlGo5MRc3K2Jy55aXVy+U3HxqJ30FD0qgpW7cy6AN5eb++pmf331MwAN6xWzvL1Y/XyXr8uzQhUD088TQlw8oQZEIJVIeGLD4d9B8lm0WHfWbvp3oqpFyQ40A/Iy4/7ZaSjCXBekaSo6mNFC0aERkL9T61HOVukaq5IrZkVfSJqDv65noXnKDTF/wOWCGmYXNInBQnQ8KgaKhr7JwCvqkmrasji3lGc905J/E2egSQhf2jV3anYy8TwuX3V9BI3WAv6Mj2OcfKI5sLbSkRtT21Z66DudkKz7Lv6HuLB1a8JrAuXvtd0WTFquvqo3PpbFP0mik0XNtaFvkWu30Ru0kDOellgkWu6qfKaL9nkJb9FZ9hEx2+gY74hsGjZN1yN74DCCMf0XjHo/G8vSkLyArmZU/No7ezs7Cs3rh57wNxkxfGH/1zIeL8bDoelT4uO5KdFP9d+WlR9IlfzEN4dOvqFE3dL1iV6x0zqOi0PoKGv6PtcOvXr/Py8yh/Bfw5yFFXQ4bjqBUp3/A0X2sfdHeuCXVNc25em0pjfy5WoMmBY9+qjJqa6HND0z1AFWBvtlvBkFVENG2rWN9AHjiU7fNvTYlFelZFBVt84Wi8rhqVEMvTgOSF8XVezE1JNHpiFvkN5ClV1Nf17hWgLuIFfihl75qbhSm+6/qnuYFZpTHJua3S57Gwt0UzR+umDInmfL9IJTeDhBlqLVrebA7dRSPnMU0kJfUrGIpq0SQFYNM0jHSSd6SUNcFwe1Nft5WFvepS8HuxLrkqnmqst+vQ3GU5yEqI3EKZmi1isa22gnThieU/8uwcaFr7FeJ9hvLWQVmycz+q3FOA3Gz7AqLzYqPlaELKZIm59l+Oo0/PTVZREq2KFxgg+VsVBTjLG07n8ARUp345dxHmRLMCM7CKnN9lFOIG6XlQDf/U3333/w3/8iFfp15+6O7/qNZ9jf2uHAbM4I1jQ8FNolukh3lOJSXLPM85O35kMO40PYzyh+IzAmlW8219TqZVz8CF/Y9vxQGa6cznSbsmWKRoVka3N0usz/TiXR+8sgV1XkXpOV+uqTUrBuLpeEddBEXPpEgTfEaCYMiZ2EuZCXS+g/EFXpLtvtwY0A5hHlBkNNEbkcdhr3vThZzjv4QlnQpL8jrxsUKVpFsOOdlSBxJc1bditrbuSYrUgGbtJ4ldVHXSkyhVzBO1qe6EbjGB4KrMMiOiC96H8S5FUs1ye7TzdLIu4DsWmAb7t8+aErzesAkiR+IO7LFScFUrtqysBpymYFqo1oqhsSglHn3GgguFWSuId8Muz8S46B6fBcsv/w6Q73EW3BLqP4tKsDOFPb4/+kaPPuecrz/RhBnD/gWSvcr6kG9EiQmdJQMEPt9uLbtyvA4i5NjsiyLTYWPFXg8pbSHj9NQsyGscNsaOjzlW5xhN7NYKGi8xEp3P+TyQCKrqCmhmdiHHYqg34OJTIZtHajhZHqyg/h9eKtzgn00v4icRvBAPtyAkV8sne5/SUJl9yJH9IwcuXHtMb7twyXRtuMtxJu+E2SRWMpuY1w4xmubZxmB43Y06mcBlhXd7oJTSiuc704vSsZ3AFpGbwyiM+zcNO8p33qwAqICr/Dxah60hGnvZZ15RvjHyfGwK3TZi+PshrLLRUdzWUu+j3kOivj6w36U+GI28ymB7Fz/iVaUEal11X3NSVMn6L9bifUbgE7uD9Ec/33kLevwTdnXUv9wq/iPzO94wET0a3DSCzjMJbIXS9bQEUuMPfp9zz+cXpdrE6cEftAuuqHCS0U7YsovCUfFuW4y1YWgFuOP3H2ZGHZvNfrPgE4zBclvCo4J4vgeYJwG4r5+QjcsL56GupTk6uZr2js7k5O9DR9u6Xi1nv9qRvzg51tP7Hs5k5MVITA+5UElJeJw+82asA3c5cPccqit+fZvr1xnsp5tGCF6BweTYWqfbQr1jyFvAfrPwDz/0jWFxTD6HZv24Iz/BliXz8yPCTvMmCE5CRt6ss63EABJgcsNS9FoqSnMrHkloqRTKhuX5TuYsWXNEMii5GEhbB7YgssaCyWgCZIC5CEu6By4f/zL2pftKhzBuvciHo3n8zmtR3xj4YnT0IkPAX1uH5VN0lgXQb0RY6Nl/wUw11ZQoVwbtwg7cc/OpkS9xQ+wvB90dUJdEQ0D33g5pyJWuXOm/PV0l3R9bhai7W31QA+82k3BZSrklKpxnjd1D1Wqh6BlU77zC7vPIr3M3+xNdOAXg1uxN/TW96MUM4DKHg3uy6xJInJYb9rRnOiwVcA/HVPW7pLAdb8/oNzgnPK7fkM9yWj677T6/nW/Iabc3rKBbfy+XE5rbJLXv+p5T73qbcSLdUKLGTI8OfWV0BPb6LTn8+malPC+3uwFkicUuZxekrP3FRAOqA90wkybfcgw1JlLptEAKJwJRxcVB3FSVFTtjOdsx85z3M7u4uUZeJbpHFoLVffEqWmPPRMkYMuf2+g5Sou0gAxDkC+nxy4jhIcdlrsZv+p9iN777Xbv62ajeear4WaXl8oMaD1yC2rGWspuDi3TI2h5eujOTl0clkwovvHC0ozZGcYWVDU9W/+r8+vLODJNfufVMjaeRt1UjS2+f1w+OIshkuGGlqOgCUBrL24PjiZo7EhA7fFeJcZUXaRlwD1REXE/XEz2kWkJn6P2SIDz9ZG5sacIuhgECpAkFEwNTzvqTBo7CeY/Hco42vBWrxhFnV8F+I+WZ+wiQ389OgzfwymN7Ibx4Tkm7mp0Gb+TGY3siPP/heUJyFG5hpuDpOj2qungtcCK+rgeNXqKnaeFWh6wxUV2YLAVLP+JYsY8wewNLbOBpgFis1g4BlPYs5XpIrGrYe4zWMRRyGxRPRRq3xFuVtG2EFYtHlowiG68nKPuYNd1qXuNXASoAWi/ZmqOYUFBk5y3C7kzPALC5GsalcvIRFAlgytW77jinN67rV7wqE/jcEQke0Vqx4plzbyen+6T+cIpDNjp4SYPZPZzWzvpqFD/bh5uixBqYvYfg0vk8oy6NAAqn4aCqFFhxwW5X0P10lF/DICbm2IuSwZ2tADvv1w/2aZV6RMMJIzL+vborC8D+5FcKBAQKn5CkKSFkJg29RghQrp4hjp6l99ahnT05vb67K6xFHW8yDUNvv3fBbxNav+GRmqmYl4ZGW/u+KiJTnxnpH+XXfgjJSmp3oHTTfSJaWLfHgY+qt9u92fgZBQwM2r7vki3QYkb7o/4l7Eva2cR3/isPd54oRI1tyTiuMvx6ZaWbapJP0es/19KMOS6njI7JTJxN7fvsCpGgdVo6955ApEABBECRBEmKSaYiQ8lZ7NT+195QffUCIZ2/GOU9FTWQVKV1cWq2M8iV/hUCmHYGBit8fDeey9x85ZBj308ClighfLEwGQtaejvqqFLSyyarkn+JSL0V9QGi7mRf6mYELbHsn+6bs4UrKkE8pgnGHl/YOx3hZciDu6P9qpWeXw/+VSu/sP7vSUgQjhimkPQT7nIb+/2qVL/VC+f+tqbPtBGje6RbWfLoFVf8fq3bW6bJhu6CDYOyv7XM/MWT/ju6+pF7bxAH+YLYAUWGLmKlH3aeV8bKPMbZzMISnt7WKLKpuoS+OTf52syqAX+BVag9qbb9ZDLYtfPYXeUaTFkqwK0o4+/1R7nluNq1q6Z1SNZyKQpTaC824Xw6lzpfk0CqtTuVNahC4noBG8SL52RiLsuS1F9MvEHW4WBiP5PL+zUiGOBiC3qf9osk5x4MbC5Y3M+ktnfUNwZp0Sd01VuEoqC5G51UXsmVvpIVcrgqQr6oDb4k0gWVq6tpVTkjoAjdD/PQ5CmfHVyEmX92dBICxXOEPEX+W3GkapLekwpe+mPmx4dH7ZYY+Axk8RSAxV98GbXgpvl/A/5nhD1N8bDnudQhpE2w/Ukk3V3RYBtR+FCZvP75/x70M4S9E0DU1hIXnehgv93IGEh8e7lOzCDPtXKWFqKbWmBX0OeqXeeKavbu3t+fYu5slfLOKrb27DncqxW3lCvTE45V1tv8nS/PF0/VDkmreWZnPV2ggckab9pB+Mh6+TtENcXS0X3d2dpjAZ46y/ySlIkP6ImX0jDKdbU1t7+pUtRzx8+Uos8RiStwu89xEvT6C71g3OCTI2PsBMw7Z4Dh2wHGy6HRFry0y0h950t8uzk6tiQCn3JDJqRTssn8HOLniBpLmsm8QhUD4ij3VQlhJCP3WD41GvRExIqOvCc2gRxIazQrAQwm8KgKJBF7fjIvgF4rtZDwFsIvCeOPxVShGVdLIfOWaVGVnVbtKbfmnSGo+JwQJm1KVxoZYLFCxnAuaUhLjFABUYgk4Q4cpYOQj65dJIu4oHNYbyCiALCjNNzn5lnwbEXMosL+TE1zv/RsxA5O0a8TEsrtBj6H9u+EV7M6U2Z7J1pR8q3kiqxqv5AWYst3ctNJ+bkiX7aml9aDazOdN1z/c3hSub5rUg1JqRFN6GeWobAmZoS0WTc71jKP1RVxdgiu4QYgpqDWUo3nDshoRdbUQvusD8TS+7M8M6qIAVZ2ENG+J6dMKwcY5szaE6ezsUms2VjwMG16mNx6IbGw5CP+E3xC8FmD2OSufSBaZRqRsSi+6Wlo5Y1EcwXxaJdN1Sc3SSIyVilgV767f4yXWmvMonNdeXY09o4upT+DC7yuOHu3lqpHkO/h7MYstcMBABplMxCgYDw26KXIUU01R6sjfjPNvFHud3CEkNJ/z8X2aNUtEEEJmzgMQhlKj4Pcf290e+9pusrHXttkbSHzx26Qxnw6h37KrtiYyPOazgEUsZgN6b0hL+rpYwAP0M/ZWI5x1GdF6XWZ/TPXWEda1l9IjddvmPOpg/s1I2VN3ldmjbcyY3EzjAnTJLkQmizTwDQMKP+JY+mJRKJBqI0GQtlglRLcJPbBr48PBRwsf2z3MvhBga0t27VXUWRbYxOq9oXAYJxP1urC+CON+Ku8qbQNkyZTIPdXB70E+03RBOgPtlcqeNuCoKBe9KUiCmXx9M8ZrkzG6NJzOUk9qAp7UAOhSlPfv3s5mkxSFugN5Oa0Rd+I2+XB28ZGwqBO1QRof83ChOr6ZcXvnuIWo6iL6nO6EFQTGwNIhMPiBBBusRF9KmjBJxkmBCOtaxtJFPYZ3AyP1jbCkQYEp+mG97kOxMDHgH10yyJeL9y9Pty6OT98YxPTSFjQJxfHXo27ES31Jo6iRKYYeGh9qmGuaMY26cY97+R4ao1rwQ2Yjwha+itDmg6DUzvT+eaKeH7/+XCkqNPfWFk482kJoZjQB2JyBLc/gjQVdR9sIoDhNQPItZUc5TA3KoddkrseABKF5u/0iCvWh94+J4xfE8QviIHqGdD9v34+8tpfKAgXpJPOLAkR5AdSo6jYPs17p6jk83yszQTzJDxgt3XUn4Gdu5L9fup7V58IV6BjBgoh7APjBm/Ccjv1BOJNdDN4+I0wt1OAQmgudxLyYEwI/rwS34eel0DQnq9RY5O0aueVKQKP8EnoX8s24GqsQ2VUBq4GY4MXRhJH5lFCTNBrEXOHGcFZh4ki7lfs8itBVGdC/sJuDKQ+DPHAYTqciCgE+KMD9q/EUoVcIvTBs6HtImquENnBZXpWBnx+/OTnfen12enr8+iOhko9DXZvzTI31umedQS9851PXqcr4HTJaVRm/+VKkQU4k5aponzjzA61AzNIGD6Suf4F4ynP5RzPQogMrgfTL6avLkUjulA9Bg/JQh9yhZPQEZiKJQEnqYza6ZFUMjGz6VuX3aOb0aQI5Br2Sd2SuCgxHzy+zyMJQBaV9L5BOWHm80yjaS4m4sLy7WaiiY5kaACM3Nk0aVPtkAgZE6kqpAuhfskr4plkvZV65UcBUcPcC7L7YRlkj6fYhhEVrUlOQLMoJKuUXIKw4jF3xsLBRV+CgwgMlZ8GRLS8T0BScjYKltfKvi0VaASwburzJBXtWF8jG+Lg4yk8E8qHQJQ45JLKRDWs2nV/i3I3w3OTTBG/EF1AVe68N8m4fZXS6GtWEtiZsIp3dqiAUvEzjyIVXhnlot0yh0bEbVuncPmBN+a+d/oLMwBtJXQ+MduAG6ggMpwEY6xVMyuZI4Q4qZIu4L5XFdsoiHZiRRgr4WqXdmHd7OWuJpLXEyiUsYR+YQkoKHN0m50HHqBiqqmrcctJ6mjEK+QqLMPvCsI+31W+zKX+bD0FjfFLmPK+43W1VXKZeVhohDZxfbIYDbotSqhTt5hTdaqGinYIVqGzBnZb7YEUPKipahYhYzt6q9e2yeDhFTsOZPhQAwChgznELcKXorhS9IPK2LQ23WSWy3SxgOg9hBoBpGmvtTnG7RW1JlfP2MW/N5gLFDz0Hay4wR6031eqzyQJpR0FBKKnx/Srp9/N4uzvVeFovUOJYQGPuH2YY9XqlIPtSigyt1PsKA9Wn0WAE4YPqcwT8EkFfiofj1NoYZJKa8H3gyvOjmnQ2DL1+XaJ/yLlYiR/zoniC6skDZcdXOXUUZo5nja/a3Rdro6ugsuXUYlI7N/W6TskpFOZrMQs5X/lf1tmH49NsHR9kk1F5QR/BkBJlC3oTRqKgG5UW9FHmg6lVQ2CpW7FVfV8W6luWVHacz/V6cSTqPNQ/t5uVA1EmsiloG4kFpVh43tVYL/zBUlrrpUh2v3mcCM8HA2vaTmt7Z3dv/4AAPIkKlcw0S4jWoRupSRyZSO2B5h7czECktEbZRkyAElz9VxzUd2cXx29Iar3I5aLkgP1QG4SQ4IKhuV5gmjKtsBPIxafhMYRLHtOCuw8UTTW0bdl6uVBWt6GTlvS9DcoKKxC6IniJwkDvE0k2fgKQstXKQ0rwzueV0/NuOm/st9jeAdvbZS0HRfv9QXQ1j+/tsP1dtrfH9iX6b09w32ux3X22e4Do2V6ZbvpbAdMyu8M5eXf76E649FZ070SPNxerT2V3N2WrC2+qmn96OTJM8w77dHbok63ksg0lnPE9fjMKp76YhEY48kGyT+cnhpreV8t7LcyEd31u77Wcnf1t+6DFAr7l7MF7ax/087fP/g56LARJw0MOgg66IezQ9xbcKOwKhBT8Q2cfZ5FNIzTNf2xTd9D1OJyTGMLcPzrapaa93eP7m0IWrBh6bmgCCnp8EwmOlUZil4KGIi5wS8nw4dfuLaDDGQbCmj2z69eNgAtc4y7+9usRi+r+4u+oHjD/z+DPiAV/GvhOe13B46Oj7Z5pgIZj+Bl0u+BFbcamzVrw3GF7mzFg9f5h75ohFkKhDgaUvsdsh9l7zHHYDjtg9jZzmmyb2TaDRnageRnMdPYOc+xeFzaSzRgrDeJER0dHLWdLULlnk9Zq24UqTbpbW3GPT1AOFEaag9wsbjlYZc/kBmQCeQ9E3jTsP4FnfY/W7Z3C7m62RSqK53B6t/rn+DKQJ7KrLX2+OgzAd7e86wub7dkKRHT9nlwXUniQJISxGmwoxMVKYH3/PhF4MQB0PLyjXNFEbsQDN19wtCo4ohHHpFqVpePeYdImpm9C3IRov1QfJR2pXdLDRgaBzHNd+gddKoDnAJ5i9CFa9RExI5Aq0ZDk0iSHjQIKUqhbYMYJhHIeERZzJalqHaw9iGnFYno2H0Fo+SRMZndGjFuvG5zHq+Nm8v07AaBBtMpzCzjcKFss9MKuDJdTp3WplqsGwqC/GIHJX+Rkk994c/ICTOkFOXphIlrW7hTrlSEfEUpR7SZHcKF+qMNKxTW02snS454ZLWWbRNwvtF2wartgre0GfGMDjQADs+R136DKQYccXrdJmxwSNpFvDfXaIGyQtnUEHa/zonY7vBpN29dYxwIXqO+LNiEURWNhvnFCbJyABuXGCdPGCZ/VOEE3XGsEhGEjrDcZ5nT0TCn3bgEJAn5qAPsJpcuLl64g+udKfnOCV6bS9sDksRliBUykz7fbBOFpew1ke0mVqHYwebRcrh+mvCqfWV1sEVOU3dAybA9PWZzcKUtjW5/hIK48yd7erDxReq0HD30OWB4zBB5YTa4uZwawoq5cfetiwPCnZEMOzfU6uUiTBfKsKuABZE6jZ5p6J1MezMKUboiu15MF+MjHK/JBAPeX1dMvzhPVKzJd4FaLmoHI+1Y4iTTk+2Q8Nxx0Byg1IyEz6rs7Oy1Y/6iRulWW3IdGF0re7NxRhdd815r9iPEgNiew/1j7cTOUdwzXJiDhrJbe1xhB+BQelaq1QU0aNJihVHbtxxg6gCqyhp8hSy3JFOKKIEjJhA9cMQ8Zz6cennyEcCQM6ckNQvwkFLMQEgEMFTIR3oZ+TUk7nYRhACDkBQAPs29G2RvQBmhntSkEjeK9ZMHNcHjnC6JNogYmUVVxhxPlgNwkl7Ug1CkdJqv+SJ+Yjb2aNxuLWhzeOlgv+N+BdE35vLVhsFMbikEIKNh3pTjTeJzMstStTGLlJUglEAA5EmE2RsZZ8hYUnQJ14vbJ6nx1eHflULEg1Kk3gmElLA8az5jDYzynDGtUhIwEmwiWCPaXYJfwZEKwl8wTzBcsEKwvWCRYLHqVZbc4mUAPmMo4anVqUEOADENEO8IXgfe46hcfBqvLPt44ESrUOVpFALkZo0Ddqiohsf5LfvhyMw3BSPtj+aJumxa+jx9UxRCwJq+f967AP89dXIaWPL0M1AI3fcFNS9lomaypWakv755WeYt3fxHsV8HeCsZOBPtNsN8FeyfYe3hnGrcQo/NKOkbVea9lXi9zok8LMRH3k6jtLXH02T0qHe/XSnPCyQj/7nOQdqG0kxK1LpIMbMfeh4WgvcFfyli4J/h4cv88ZZfjYx/+heP2Q+SfoJ9OJmDW4UoUmKWmUDXNw7f+nYvc1sMuBZD8eCy/SsMTsvHEwLz3vAnPL9xzEYj7A/ZSJZMciSjQ/EtwgUdUuDizRsX9rVIpIVAsmVyEKwbry3BkUa8XV3kIo65kjkiqzCbyuPOqYhK1RyM6KtX2rb88YzWLWaAeqCQKAfCMgQ7Qe5BNLvCj462YQswl3vHPvC7OfT2aHj7HK3FQ5iUWdiVKhfnW23W5IAOR3xYlY8DPzpevSuNxG1Er5AACpeWwoGU0K87T1pWv0OqHYCgpYx3S8JcBMAZ5wDB7MR3K4tzrNmUDjoldNsGVbZj5bqjhfPCo9tPULITZ4C3lloSxG2qXoJ+WMAAz5pDIWfDAdBj8b/YpS/io4BYh8iiHaktXwjlK0lNU+3CkNX1P6OrQAQu85oWsCVq2BiwJ1eesWIA+k0RM89qEbIZmaFyr7d4EewFUDSsLy0q+mimMEZIrMHUnciMeYEsUEcgWixY8aZ7UE8aIQa1SXE06MDlUf4lKxyNb3s2UCFu/odSip0ikYBN0d1XUxFsZMIEWcAwuHE0PTMTqgCS3HSs3nTG6Qx1bHRLO8a1ex7CPQ4z4ANfvkBfBPIVvFOEbGl4Ecw0+KsKPVvAiGKEUhygMP1FbqPrNzZ+ltHW/nQBVJ2duE+wWbeyGxkRHsBRPByDzF6+DD8PPHHksgTKfFnaOy/nFPfu2Hj4d6IK3Ht9ouq8M22aIqoJmfGscoASQKpDutFc9SMqHD2jBLhKlKgMTe8vDAtVu+y1HTB3+tYrLKWDtaSy9dEK0Asa+xpDGv55/oPPRO13Ptps6X/WuQp4NeblAzDXt2w4iFMIzK5BaaQkmFl7I2U5zttZydiBHLzIqWO4WWutf1u+5ACffCkWphey9Ev7wCfz9En4sniA4KBG8exzfaZbwRTFCSxOx5rpJOHYbKITqRfkZ2KiYgtnz5ndkSIulOCUJz/xqEbNYMnjs4GO3JG+rxOmz4pTR2yWC7UK3zQrEVH7+QCBI/ZZXZRRZ7rSLJ0paogNW8tAulFd2jG+sdqPOmvInTPosyMEBufOWVy89umILRuxeJnylmtrVTnS9Xg0HplCqGkwexTB89njB1FUj7gZ/W69nw+tb7Qn9Qe/XYlP+gHL/4H9YaRgOZZKOfA9v/VCuDwj7gy6XmauCnN8f8cxRAQZa702m3VH0EgdgvfjMhZT60v0aByUX9ov1Ri7E1R4aF5nTm47adpHdEh1qUWCSD0o3hDWXz7cyxIbDK0unH0hSJixfZr8aB3ccXrJMHzNnnsw9TwMKpxxBGgfTlGW5BVSeJTN8DUGqf6boqIzP+EERzFwcwBobksonD0XJ6WQDdADQmcWqw292eoBT1ArenfSyrFBmIWiViU7Icikb2WPARTW33Pn9rmJ7CBtUgb/DZEDYmegOeh35bBPZnTC+HAl0i5VbKpufK1YI66FSnbXvAtpiqRdLRs6QsH4fBP8gFoty/NXNCAaEy1EY5LYUR+LnZSRmY3DwNhrvL06Oa11766D3zWpYeDmyscq3cNkt/0JJLu529d2S2sNJP106vVABce1GYz6fW/OWNU6ihg0Rh43beDa8IowIXEpwgruUGFtF0JtgAW98VuvDb43ut+Cb1TOtzQvRF8nlI9KwCA059AaXszR0FqPI1EfdLIa8pAxdLCIMaf4s2IDnYxnBBHHuGA7D4BJqAzj4/lFFv9L8XDKLk/G85rlL/I6MTaCDhwVO2Sc6gKwjmzKlex0o6tP5OyxBSa5eKMj6czwI5ecGCANebQ+A8u8S0SV0RCh4GHaAbTsTzfDZThMF6Rc7h0/v0f22YND3BcwTWQcIssO2AKJH9apGdAkMbOC5BD08aKncse5T9NH7li+urqAUH8TW4ygs1wbwgNhONqow6saf36abRqeNH3l/a3y72FyICXhxQCtbHLbgFwCUOd9MeKOA7lqbONNBXeGFw/83s/7WfuNSmYOwUCjayUL6yLebftjvEyZ67B4z2wpnid2FJZlUA5aw61xDneSW58XV6G0uGmGD81vrzdnpcfa5DdbhzsCv/ZhIItkbpjT3fdyvissc+n5Qr+f6YBbolkU96p5VioX0qkIQ9ULYS2MP3bmwsqjTJOxzgnF/bTGbCT9GuRp9YElMvRRH6xYJfgLSZW6vQambr2paUfdGHb2roMY3wBDNcrCGe3J68nGpY4tDAaPJHb3jD5m5HC4yM0d+c9FZq8DdaqkkVCz8HSPfPbxPgVCpTmON4sFKuKFxl28XAN1D47IumSewyS33AQgj+nImwhRc/4LqCcwQ1ypa3xikK9Zbji3vXvOBNDMJCwVMzOyOzQU7Fvxe1bW90WQ/ovaGvWTvq3TnJsA5yY2I6pzhP6VD5qVKgITmwxOWGyjKxoOGpi5Dl/dVGUR+oAtle/L7T+zVKkNQrcNKBS/T2FY9QNXr12Drue7dGPuzEP8ACpAO0fQh33jPB8oUF4tBWrkLfGUD/l6NLwPWZIADV8yxh7lRhhpvUjeq1zP9bai9jsTkxCoq9WFOHOSCyYHOcccw7hgTk6elx9AKH4/ffzg7f3n+TzZhJ0bBybKS8Vh+vPtGRniPkzuDyPtfCZhACTn7WNQASiTCnm4k65gibeMvaICJkWXiFINjgrZMns9Y60UCPA00kOqugX0gM3HmYSPLYOGqz0P0iCMzXJBvHOCYKKyXr87OP34/Pj+v13/FAePpXiW8MWT1LJiSjoUfFyruqXlI9PitTi3RJiWtGnwkeV40T4Gqa7ksA7+cn3w8Of11SdmvVD3yLbHqs/ZyrUn0ZOx6BlKWs1EjHDVyevbx+y9nn07foFY6gNxGxVCaFakgS3bNk+wzczTQqkkic9Tq9VUSXBg9EZUnfh+GE8HhNQvEypMh2mKRG22W7vW6TnFsy+sN37XVYFq3IlLn8a7lkMabAE0VzW1IIyV3ICHNB7AGETwifMTwALHgoa3uOm/fclf9gZrmvspLFAw9kGolTsOrfr2Oz8WiEkGdh9Xr6nexwFqi/zRDT9OtJBmOg5srGPHUr+UFnVXKGkbgiLcryRREr8548VW9WSGMaCppdHssaxhd5w9iqaahG8Hvl+w1+0NIVbFzwQnEin7fbzr27eskDEB8WEm+Vn9Ds6azvv4HXVfUpDgKhP/VvWcdvc2ts6Ymbu3jFZO0SlUEC9Bb99ffwJdeuyf4ZPr7Wmi6ATqJAu/hn4F8qtCNNnZKFHIYbUx2iKByos3nEq7MxbzbySZLFbY8eTmYgTo/2eG+VOgp3OxAS+InvwJ8yuDcI/B5749VfsvH5bVdL9DdMFxDIMcVxUipPDXQorYmv6HcwgAIaMPbdWKFdPLB/i5zq/xm3rpKuYXBeX+2nDYVbFX2JPkFJ69dCvcvJhKoty0+8x71/hjM5WSHRaHrZlUP59qN5YjAprwJzUzwE9sIhZsN3uU88IUSFVdWglXV+9yMdTqVkzQ7H7iJEcSNXHZhadoDeTXOHCkIc4D3/Bo/FKzmFmCtw50bTtqU5v5NjoKZ2AqFya8sPPl1DHkIoHwgdA2l03cm/7gTTM1FVUVlQV1DD6payW2HRzNRmPWNwjsFHz8HAU49i3GCrQP7pgOPJ1fcoV+7no8r5I27Cj6fgocKJZKDO++JVnW+1nzu7Jpipaxu1WLzN0jrvS4EGKzc+LAv/7piWEUAYPA3G613H8Dq8WODryaewF/fJzt8o7sgNfFwrzakriO7Nugu2JtJ9KHVGQvHijN4pD7CNg9cXZcmayNfa8CfTc5vKe79R8zrKjynaUoaVbbFbdxYTl44XsNizuu/v3a1QVwygH0wDgetrrwbywXIevBreKtqUwpLomx/2w8nOgMtB5R1JqR7Hi7zQbjNeLbOxqTb8lRdKdgz9XeXb25cZf7fb/tKbEB0838DeIJ+hq/8NKFvsIYY8ICCuaDfb7yaS/O4bp1N1iTKAXPLPvaT3n+0CrAbm4djNb6r9vXfZv7tVutGO4AVv46ByjD4q0vyuj5q6hqqNpC7eZ4HluOFv81DnigIc4DFaI+OxrY4P90Z9ENxRukX9Rr1qTeKUcu8IPLeuPMjzj/yhky6BvosC9UIzvvZ13NYGZVGLXIGxrClqfymci+AMOLiZGK0M3iyl3IhehfE88U7tAPSNVEQvtdQXsXMkWbGDYES6SIYfaELuZHccGc4hVx1mEU/5abRnwY/ho0Q5SjSaD2UnypF8X3TtecLQvDoL+up3jmBlwj5cI57z5mxILd+WBQkgqVgf0j592rcLRXHaYCZHl/DqQJbf8zwrFhj6uarhKwAGwMzsTKq6GuwOrC/+pho5PXCuiRQ5WwGZTRUm9v1eo2bEGGyZmYXAhXDW4uqBheTmSYaq27+OAZOLrRNV9Bt851nWsg2ppwmvlBM1nGNVfxn/+h20OGOAAEDkrNeCAiX6Og6gBJCzLSsvQUORsR8LuU80oGMegwxKmpiCINZETRagzizrQXN+zXtDrLbAPZon8gtsyjTOyVXWqK4Z2vPLowUaNRTzO6/nMw9bEI7JPePfxdgzig/zT/d6R6zi3XBjKrvaowjrjicQykReEhBcupEYiMucUMrAGRLGmvlmiiyNy1WtHpKWuK80KuWMqtK0AvnMorPF1ZQ/TW/FoEc7M1OdCQtPS+8pqMqCD53WD1VMOoDSyq7YvBmR+I8V/vhjcxkf88WYJBtfEAPZ4ClZSIPmP/aMmL1YPSY55SgUJV3NzdjpzzNK4ugouc2QBhnLHKiKqZrkB5VlYt8Pz1WExul8TQo0Cnnr9K490hDC943HdtPGx9kA8oe9jbduSpgjmOkYdGGL3eetWtNE/DhQEOKqFIxyqOaRWogVzFB4GNB6jW+P5mwmHV5KZLVMcY5YgVjUeWK1WWtljbMdyrrX4mrxBAWlzkRFaKe+YCJmV+me5xp/oi0O3DPx6M4FuzGygEmgEoHkqRa8/lWRAnq623X425A3tZjSBZuVc5cqpMlQymdu9zScqdjpu3YlgK1I4UeR5f/iB9oNgVEd/srC0pbpxqin4C9nWtF5dX4aqYn1u4uqXXSSKlXHkoKZck9ZqjMvJlYrRvb0NcWXkGLhgClod0ptWrRfqrhuNettRWd6YWf68r/W/wvHVed4ETgqgo3IA4BMbyAODQRuElbx1snDDjYDdrqAjl2WScfNKuqk5sImmGNBJMuiSCRLBAJYO9N+NrIlb3hr9LRMze4L4pjmyXETcNLWCachIQBMkmGh9/59YbxALZjQ0Imh+/+1l8ltdTtduNkcu95tnvPBLdUKm0lqVSqBQ6zwlOxk1uC4ElO6DsylYeJnBSKMvjndg5G/vIiQsgC9dfyD/5lrTN+iaBU2GqyA2RB6xMkHI2wrEWwS9boR7kyufqiNHhheIV/HQ+3sbXwj6ftx2NfxrG2M08oPyXwgME/RlPgHyMfTWbwDKDn+Ec5ig6+NNoS/um2qdh286Xu2XazF8EZmC+3dTl0LPhNd1d3YDu4IBwSKutxo91qa2wkVvDU2jJhS1xOmVUNvc+t5mrzmXB9sMZsXXDd6PhN5Sw6JJ8r/xk9jRfFfwi4eKGe/Rk38KbLH2hya31PeRxs/OPx6rK/2fjHv8LVZWr+dkNUCoKEvKTB26fOyBUUPaBffpcRtP3NV/Rpvlb9zV/t51KHlAteAlopU10p7WjrtzXW6lRX8aOQflF25NgQtmQSVnhzpjPtJOrBjLYhlCttvLGvJ67JHgyaSZB7Ed9A3SYh070mhLWYY/y2/psjV43hGuSzrQZmu0kf1PQ39L9m7WFIA4phq4URBSMl9pw3iBupjGCb+kAFzThM5DDGEDrzvhdh6DCxbaLCZpwQnfGonT7UFvGfFcJ+Sp71GoES1SJXyqm+v4uzQNGJtk0QVbs+0FbeMZFR3r6RVntKEA08d2sEdM0OLTBorxpC0HSMYonV0Var41PsbijjuGLClPPBlCaOVT6o9kzG9meu6EaWF0v/mTST5knUWlzdJfcBzR7n/DUcEB9wrrQNfTkhqn8S6ynGHE5i+UbexPJWee6zvlxtY1z7/6RZ11UohCy35gAzzhQfguOtrFB/7cSg+oehbO21YBWVV5IQKp2dayurzK6opEyOwF+ZYVGXcxhrh4tVLydd+PHjzw3RG7aXhKLLNGxZT3bK2MrXuvunPdLoxr+64Aa0uNLQSfGDZRArpTvbTZg4tPY5DkUQcGzF4SB4DYtPDgEX7NA/+qcTltFrgKX2hufnfkA07D1RkaaCl/1YxzFtIHVCMH5gIAvlkf8ERqh+cBBNblQsvQlHuQucgFQqmsf4ljTqG28O9v3gzfDGY2UjbGe6alVBD15vzm+vnObYtHIVNqfcpjI6vwqigNyf0V4obPg5CxYIx5cLBh6Ll86VR8QprB9HvtEEavHaDr8QiOyFAg4s3jQrturcDW3wOjQ+rYynnQcPq8br8HN8+tCRAyuLpuq+eoI6A4vSWZav/YCo6VXzz8ePrxpLy06Qgkfha8Kt2DFXR+4uJm1aH6WXVOkLRsoieDRmkY4r6R1e3fZIpvakPxCSPt/CtveGhvOrODt1i6Ah6WL4tiFUmpBk8vZaCjL3/qISmPndueo1fAGjlPCiiXsJWIUgoQ9+AFGfegnRYZ9zDvBOBA03eOMGrxTn5pehWO/rIPj9DdGN4YQ8Nk0BOu+xx7iFJDvRmJu0m/ZV1Xl7tsCTciF9t9zfEfJF3NiKmzMfCvLZbh5eRTeQqP/6bn+H1NBeo8fs79tnF2A3sa/9dwg46diOKUUKulyr/Xv7it4y0B4a44deJYVyVDpqupeNY7bMUOd6g6rwIii5UJry4q6ulJ6WEXoqbmFja/vAF3K5jAiZVSj45lnCsa1wkL9C34y3E9/vYJf68lks6p7uayfzGFV0UfhNrQPPxgFkQ3CvWG0z0LDKaQgROnSyWZxqmwElVXImKMl75neuHhRc+rGC7Oo4pIK1JwZPexbeAkHYroHPicnI5vWbiDxHYbLTpPXdeLi0LsUk0fHlJUp3fqh025cDlF46Mx5hFIXp7az6hCbq4SNyGUekRbAazioxo/LHnTlKaEsIXYb4v++qBSW+t11+gAXSo81Ieg68B/YZp0meWYqoSXmXJg/BPJ+YwpQxyDOoEfQNsu8hjZahB4IXZoGx8pqnpWoTtaX1HFvrjs/7mwEw+9u9nrN6Fg4XqloAMyS8R8wLjBPTxG3X4XaEfAZKMvZqpH6sVXCYuX0Mp5cb5UQMyOk0JnGsAmsX05bGqf7CQVXCdIZDfGF9MooGHgkeES365CLzUobx2NeGKY7w3TeUS+6giju79hEFr1DAtCFkGx3Zn6xQtG+QgyabfHKR5iHTyzhH+FxE8aL8QJEDi8VCuj61F4UOIy4WSVBQBbEpJoI9OSG0No5tX1qMWnJlsXHAcsZmc8uYJpzh3XCOkM/dfaD+UrLZaFzy5lMDWLsJ+fmgqBiTSvfpiuJzqwGk/fs5HBRckfNJv6nc2UB40Pa7Kod+SF46WnJDD56XZKLIK4cXi07SpGvWDB8qbfmINolH5+qjIw/VgaETB+oDicV9sXy9MHReleeuqF7OMnrKmE7IrK4ETz52QFp8qaSjSCMBO87JTGJ5hkn0iFXBVuPBqRZB5C4PV3LQLXJV83VSRFPbmO1oQFwBmeyViDm047wNwMGNHl8zL9Dq8XSWkD3XY+pOrHxd96jiallGM9aOEXvMD7LvCirfgwewws5GzVeJ+5NtaMyC3zbGe31wLU2yBn76Jc7on0nSv37afhpdk8EERGwRfVSL3jROt0UVft+ajis81aHz+Yo5LuXy37CJVpajckAdH6zvxKbnA+r5Tnw6ILyqcWBFwxDnkcOWezwxivoZeCfLdSLMragrfKpGLuS8OxfCvJHfuHPa9/wFLI+J5ZmpD2C0sXMI2TDylkb+y9fiFWybk9j31U6aRFeZ8dGmfLPtxg1BwjNf7TkioDW/F5uG8/1hAul19a2iWOg4omNSbSC6BH2T3gLR8tb1jUovlzi6HXhsJ65LsC32+HbAqW4l1OmjRk8Jh5dlCjmAWL9RatcJOPmQbJnbXpJdXemoiWFLfcHVHn+V40AG8RC6AE/GUdqn6CtrFIpQLB41hApCSwKCySgQi3p42tyKbcSNxF44YE0Db2KebK7p0EoiMnbyoNbvjaIe/Rp6cUaJdB+6HUSGvW0KtD1dFCr09kVnQ19nnYDblCgWvyjpOhxlFlhwEuWza+CLJj8W7v2284b3D+lNVIoHX2Xe22Phy1Y1HO0ZivRvPPiLU6A117fF3vQFrq1vlHj+4HM1UG3a2Xlz/G6E8K76QMFtUf/0sii5oCORoQ6JV6PNK2Fo88yQH48T6Z2cvAYjYArQp80V3VJ1L77uvNw+xBaZjS0TQJVzthd/9QDgTRREztztfCVBOIkrCE/5rrozyI8lJj7f+g1905wlHW7GsIyty9eeRuPme2JRX/cHl1AoYE7uNfwrkk/ZMEx8epJKdKQyMrihL/wRrdaT4v9AEM2DrW3tP9T/1gpxjY8WF9HonMiI21AoNsV7Wo9XBCm66meqCDtXGGfiQ1HQnx4kNNIcj8opNRL2J+9GmyoLk3Q7Et38A6Y/NMIPNjbfyijJizhNyEJ3/ADNpg4d0/+as15x7YluMKrtRs3or/FpsWA1z3PGE/+eFLbVd35iTkIUL74xWxQ0hfs7htuhjWTo6Zpfxqd15QpVL+Lqcry/o+7fk81Jt7DifTUIRAV559i9QYoNZkQ0pbp5aleiFPvbB4eeqYu+jw627bfJf+wVklm2hFdUnaCbuNi4aB5dJ6OKLAr06OtxQ25R3KQHhZ45EP7ezIYiHyxEsz0I0hyhvQYiw1u87RZWaRfziKz9Q0sfqj71tn47snyjrc1CnjRi4p40KUmBEcViRrK+m/xK7SKmC9yug6DHqd5Tj8Sll0KWwRcFZYlF4CH9RlrgAMvxY9eOm/rKRPsK1YeAZgDWlyakMn/NiIo5hZFLWUcZr3V6UJhfs5KQqrckIzmHdArbUTUUb0VGln4eOhQ0lt/LAE5zfz/MbzGzFYYs2mqMfbzoe2h9fkbSoGE5jMMpFjP3RNYLMT8opQmAhP3OzB8NIfHSaXayOKE0H+f5ESY9S660Vnub4rF3rXQu9LXNEB+dUA5Nrjor4JwJGKn5RqMcFEuxOF4UvuDZRS+UaDxu6p7pbuyTGjHEtFXpuR+7qsywH1Uio+pGn1fR7lAI65SupgKe8da6KWcFxiaFL7++tN9V2DBxmv+VwocXJjtidhV/jXO0duiAxYzcgiQWuQo/c83azVAVal6y2BHy4kXycPeFVSusUJlCzihUwOeQliLKigzpgBcIz90jqiGk27rqreL+XjEv9BfBmN5FRtGh4/PrLhjqNZmqdZNnLlPmPyLK5M81NKXdXt8j3oTA9rCxnESUuB8zzDGVhPaGbLsKBCd4oK2MYYuoboZoRLcrkIgfLfzajLqxeoz7Ryxfxfax6DUei/5Bj8Bkz09PX9rfZ1ewEoi8wuUG0pKuugf58vYmUZ/2RgRr9ZNtc/+R/clwGmD/+K0BuKexWWlJsZeRMhHOpkzdZngxS48sAGBK+CXqq+uLDzd3km9BuwzoyOaJHzSsQUuyMswrOFfGs7u2q5UHscqBDJfSSZnhTYwfl3Hjrevy/kA/fGMwONQgfB5PiF08LLzWv1FwCsp4yA3jEsxbCwM3tZUw+AJb+eTJK9w9XtDIHUaNT1E5nvA/dPOF5xUCiQ4QRBQBbcEVJJ0OqzX5Tg2/oQYSYUOoCi/Jd4rPvFIJKWnrRnR99nWxgJ8HG61qABISrVGOxWXSc6/drbpsH7Sps1kAZ+RvRTislnllsUVZY179cESQ1djhfQTytABuM5bbQrqhXI/i3FsCBXqetxF+EBUFsmb0jMRWt4DAiiLJsGY0AD0lew1nTZ3aYUqC16hCnFozPrxLTdfJPr72Xhjz06oZxlK6boh6tRkZyWNadBja+YWnBF9g6K3DRd2MuNyGWrxoxIm74I8dTRfF9aWbENl035UlrJ5VJtKewlQgarjfQ+twYcCbv2rKpCmcKk6KVTyiKgi7wkG4uK1WFEwGdVepNyCZZ5wBo/RinQVBiMmwHpqHAxaLTPiZt6Fa5SOCwHaz//BwmFaWRgGzPvcchUnT6HlIKBs6XpSU6hiffr+TQggp/7VXrfKftUcR8l3sS7Uf/x5rfZH3cUl1811c0cpU67Cs8vtcQklUEJ7v8DTNp+L7WK36dki/TlvgaPfGw7+yweZeDHfXT86pi39lnmqH2FMf9LvR8mkUAbJXmc+CGhn9VwrLNDBFFohuumNozGysK0VEr5+G6lTRFuDqQLgYXhGiUCdxUWKESKzWXR7dEalcZl9vR265hq/FcetPIZqbks/9quVzGIVt6KzyIPBvjIHJxNHMgkb80g4FODvy5RcEMopYLif09H4oT+/v+rykjDgABFRUWhLBYH7+CK/fjOm/1FNA4VoLSSOk2P80BNc5bhewPlcFYj1W/K/q9PrTeHapdlsXw25cD7mqIVkZpQyLHEfSjWxhJWg0huniohpCUtGVl6G6jK6t09Mcm34TAcDAgxbFRYgIsqvVWUs+hMmCBgLUdkcPCIpy1I3KNGWJqEp5nwqVbO8z+58geeyEb15+qd0jRWM6oZ/AS9DFotB91+dlV8UBCJjor7Lzm4CJ+Al+d1dGd+ZbLQgkbCjyhSQuPx4Sf7HtLwq3dv04uoCXQ8xAWWpP4AsbU5lgXjWAyAZCfvtKpN8VxBbSSCVCXg8HNGGi8yTt9/o3QqbRV5t772uiL2PFRwHrBU20g4VlsU4Cv5PahPtS51QVu8rwhPBad+J0xxcmBH1VEZDRfQ/XGHX4Cb36ceXG9eWZ7JllG7wrsK4flQpzkxJNUuUxB4rQm8a7/KRU6u+SHdh2cZD6XdppClrHL6ePjqWOOTqs1xch/zDnxS/lDeWPqvOCtTlW+LSIwwTnAZDxK4qM6A2gvWnFNV0jnhAyftzBMaLu3zSJl5TmU+Jynrh1dU0aPN4eNULlrJkcm9RezdPeDMnJBBJphV20N9AGNVDuY0VbP1bI2JW8RvYbhkSUgl6YS+ybWzYDZYuNCS2usfrVmPh4NFeg9ECQECiVxWlG6vsejkBh8L6lTUA5cfJG+n2tE/JI5TnMVZLIexyNJt6Xiwwenq4gqnmDLcQbGsAJsIK8cAost6U65qGNn7i3lCjhvf8XZ+//L3qGasxztOJS9yNHK8rVHK0en6pE2+3qg9OQdWPmoetCmM1FSbUcNUI/xau5pxrjIXgLh0mhd3JyadUUNvwWokWmi//+47X6oHQP13kOzY45NLVXjeG46tzcSqqPTD4ucVTSiXmh9gSY3soRfeQIg54+WDMI9FrrF803mRGL2QtmFrrpdi9u0f91H/ynLSSJa9oQVl7wqQz1JK3zolOMMRF93tF2XwRACrSuHoWjx4/xJ6P8Eef7QVo80kEkdUc6xqHuSLeH6sXsQ9WdSQD+9AO2XMN/+WHLQdjKp+l9qg/SXuEg1cv0njbAjkz5tIqT0mm1D8O0XGR1Kv6z1oWbkGKmw7W6PKZ+gqhx+oPsau8g4kwmibNtJ0nBTsQcstr0oLYDuT4pDURStDqIk2Z19c3Yj8Oa3NOeiu65HSOAK8kHE2XrO/fjiBT/HystVygyQ2urZsTRXfW0guOdG8AN+7H6S24FuAVcgUwV+qQ5szHNWAo2DoZ28t8eDItLt8CXkW5CHQ014+pugHtJm7cRsXT4Q46u+ZuNqSJfXeHrqbM82LaDP3+04581mVtJGfffHsbYlq9b7M24og1Suf3/C9OAP5gGfOtpiAuBvkka3guFUZthrYLorn9NwQBNTdAteGDBW5ktFT4ZkisYBQoG9UuOpYxfwXnc7h+rg4vi9ZB/cRVHDbMp4ytNuGNiBlOiGSG+f7Zx30RRNpotP0REaJs30o2zXWuiCNeoRzYM61cxxOn1IDm/h7aDwZzdXig9zGqb5guhEcG8KjdTPe2ZjVkFta1vDKIu10OcXiCSNFmhIJb8zRDhxczm4vuQ9B6Q1QatnSzli6wj4mBGph6ioaxl6mB8nmZXBAFnC9G4wPKYBluuBzHwze0AjmDD+JYiPA6mrxAs/w0XiPXTVEu8/UKOnealuDYbijOXugZBQ3Ab6afJ76luh829NbEXqkxVVrHWSalaP5hBQCT37i4xTy0W40UBrhlMJtmhn0bmwmkUbbQMBpprIj/QL0E36JWfhPhDkTak0Jp2sVai4htiljSS5tsrFvPjuf/xOBqPA6pN5bzJvnCOpAB5rACLH7iUKo747cDunhq31/VUFkkccAuibpqaq7vbbXfUDTE2fTEDwx/3vVDLQiCexT1uP8rvaZjwnNBxnUOKSQAUo+KVRXzgiuz59yyLeK5kEfeKKzxPcqXp4C1U3AItfgiMRCI4vrhlf3I7AIJy9Ja1VdTQXkyUQ2aE5LYtC/bpCSKbkMUjTq4xYfjtlrbKJAvg+wCYXPtB2ZtqwdtRNo5UjawxPJXgwdedpz35TOeiwSmhyyH2+uNrOEoploPLk2LKlnX4Hhg/Frm/oGqjxyzRZv5LbRtvWGwNvuoH4spI5UTNPjT6o8eJr0nHEHliA/HGrl2K6xZBiy467PKAomrVcebfzIbXjfO9j7yVRw7CftKwkZqjsCGEevT70lNu2e1bbGvdvoVNZYNftSX5qa+mbAnA9yX7RFCZvdt+anKKNiMyhQDBOkRITajFXpi4sa5SP1heeaSMgJbX1vF35dkGgro/f6a+2q0OfW6SP4Wuepy9X+pgoTpPtelV7+3lC7UNFp9s/0zMk21lV2VcMXYBBiZS6FdbPr54PwqXVlv0TY5Kpi4A3Za0M3czjBqDqEEH2dT42Lf5J3iaF74/neJLtfJuR0YztxtLXitV1XKO/tDPuHnBSM4+7LqqcdBZMY27pyfSi6iWPiN56V7wLpMqoS6Dl2S6UZrmHIX0Mh1MCaJdbJMW5ZWdsBaorLwS24baI7GY5CYwLDZ1pPu+zAHjEmBcAJwmn9a6UpOhKc9R8MNGjsRp7nXiRvNt6ScptLhX1eKe25DEaUiv2OIiYFoEhOZK3KBBr94unNYNaudHMwQzp0nzxHWzNdTdp30tbjzUmtF3t4bDMpQbNJluEb8Is++bTwnc5o+T8JT+fLs/k5OEM24ShHC5pexOa3mtK8isCuqt7M17ImSntbLMqVtHNvlefqYSlAGtUCFX1Y9VSv5CyS0FP/wivW14uhWy3RU74+Eo/+50xRGU4K/gZE3IJQ0v5DIDEp47wkN+y41zOxq+tqRvWqpGRNjtmASou/LX8TixufxdyISKhtpHCJtNIXVoi92C2CQL41ZBSfRiEA16GeEXGnYqzxOUe7J9uHcV9SZvB90l+3F+3l1yHIhAwe0bPdksB45Ea4bLaCFFvbNxC1R0/85pZe/rRXQ67Ux+dbe1r0nFy9D7MJF/0eYkmS1bU2yZUwh5YC20ToHexAJFjdaVEDaF982HO9SM/SicD5D8CBHNn8L2PPq5ohyXpXnmn0GewE2qbEfR7D36AaEI14oT1ogTSg4PaDSJo1dnsfrV5LrRfCrFZiVaU1RZWOQGYF+VfUlyATLVEJyltDjYvCQmZqWzEcNtk9nPxwkGN1XZKXs8MfwLRVOTPaUEvUlsvzdSu4Xo2t8TwS1SLy+bgtsjurkViCf8xRRs/n3EJi5RGJn7Q5rg+zskDvqNpduqET1oFaA8Aj/638+Kkgc0tmaKjUAhmk+gMKPGhwQKziKpXhlJXRsxYz3Fwjd5dRuu6WU0SGngcfBW54T9aFaWTyhnZOkxkT2+FoAAznlXWaRQ+j1jV+zL6GHRAvfBChZi3L8fungj9KS7EPgerlrCw8v/iu8iqPnpiDtbTUalHbkZ549gDDC9Pf9dGuPW1JHYN0tiVS30k+qWg6wavfA2OU2ahdMaQGdkvECZincwpmeeASGiqChi7dS/ACVXo33JnuFBvZRmNNKjG+Ar5kF/Mt93vKcwmocJM3AwU6VFIAfgozQiqYUf4GGRLOYiUK7WEGhLzkmijZbtz45R/qQ3sP+xtvK8E2BXVD+X6afP9OxQsvQqaNlOYjUVkRPHSgLjmQxosj7rmdw/1K5Z5plEC+0HNfMX/IT5C753/rRGV8ueVneJj3Pq8eOLxUW8RjvuFi6K29RFvk0F300F7X8bFeDohNCsuKXl8rdD4sQKR0RBHMftyIVxGoRTC4C8tZYBORWAPgR2yzLyAxbbT6BkugVOUV84ouZgqN1AEoVNEjeWOQHKld0l33etNzLrPRTIiu5ACYFvrjR+oKqwJbeMgItebsjm5CbxAdCSkbLtaIFPjM42t5u/xI2F9airWXgaT/ubkqf5NUr+0nUM+ze0MwH2GDBpptc354gHXPQpQP8anwKdp+WIButPCxhRgcMTup8eyCC03OmGsU7DcWSXKpCS35IIRGILU99KiJ9WdxDCjW+Wg+2qoWrahHu/2xgjjfh5vghgmpwLwIv81iB7uba41UirDMQm5HZC0F2gspi2C5giWtL56znZ9MCrnnunuGDGFO72Ls6aCC6r7p78/oe07+fEreOFpjGgzUv+wL2i8Kyp2k97cJhKmEpjJO8VFWuvsMWh2HHlKxCPsMqZqgMAuSAvpRsBdvaUhaxz3RkXHqQ5e50SWBhTg+FRROPBpBuHorQgKH0yjEa8JiZPafKWn7bWnmr7N0jVddEkFPVrCVZGT9v8t3k3ScWGs3C/t9an5M8sexoNhoOv1xQg9n+HdV+hbbFRhdOU+vGdI15c+JGdA+nTlLHxYJuwJv8fYVnC+n7vNMX1/N2EZfd2uLZKm/Z7Ufx8QqhGJeQT8Hmb/4i6TiTQe5/YNbgdgEB+vr3sm92qugvreuyZFH6Ahr57/tef5tNdMTI/3o51Z0YZy3eT9U/ZswqE5Uzgj7Zp/Qe3KFCmQ0xFqqxma3in+X90UZ6Dn7Ll/Hy6qNuj6sReicusfj+Z3MtdVwS+W/FWY4Wr+uleNyGXsop3BWNHZtX0Yw2bcfyj8Hq0p0Xm7Q1wdnwdhUKLYeryh8CwOn9TvePg2UaSbbozVp6gu456E83LuQ+d8qGH1Jr31ilBTjeShcu8rXKkEmytpZuvBSR72Bxo+sJv4aICy3sPKcOsyiAjnxYyWPCUvvJh5nffqheUWP6asBcHPRWdWVOx3F3975wEK4j5940/K0D0R5xpkh2/GjNfDpp92pDv3p43REhQF5xmH1tasufLXjm1t9iGf9s7XOmCS5IkXIR4iiNZjkllp6s0RfRnOaQrP4mzeqY9TaqJEnuOj2kqQpKaBuu+N+GQbFsrZTTsezM9s/jS+WwXPzvFz6UzH//XVbjpcePnk2hRoGeJ1LENc1QI1itpzyik0HWzvoGRfXivbpdEHYTGOpXciFznAcFntxhJrYSsqZHALUEx8Hr1enOtqCu3ajp2y9u0Hq/ycz8jL76pF/fp/SkdJthJS7hplv9wT41/VDblCK/4ldWPOce04Dq6hO36OPP6NwsTGLNj5ZBrv6bQTcKsvkocxySYajPaarL50ClMtnX0SK3WU29sol4lJuGLKcvtnAjJksX+xgkM6DnPS8jaJOoP0Dj78oFXBoCysZWzWyKqhxVVv0r8auGqFpoWzFZbGzOs0MTiQWLGlNrIQ8htZg0W/W4kfC0trZHLBtfR3RPHOiqAXR5V9qV70U+JZWS57Zuk8QqyFV/JY1kcW5TGT49dIZwNIYiszlrN24sattkPMJizxOFyrA6fl9w/+CKAwjVvAnImZuuyxW4sOaXd3FldMps6tqmsFfQQZeIsT+3WnNh9J8WO6wfR9Nlq3/y6KdYjfx+O+RqYZN1Entxplk2JBLvt9cgmQf0Evhyj/+jYRHXiqdOvu0TAR+XyMZKK5WMqf1RZPr6na2y+wrCdznh4fZW4G3zl/TaSh+5OczjvpqfLlzc9noy6Te+38qZX0zgaFbdxR3XbIJep2ga5TfNug8d2F/wUszpNJzCOpjikEMzEZjluFLKY535rGQbSZsX4E2fyOOGG/Eps31LXcWG31Hm2upZbRqPtxy1OfV5Kld7x3dOtbXEvXxKSTle8HUjPBmuThJZUh4Rc5Rw34BuVOSHVmjbl4I4sJErTRVcVYr+rHiyooWj1/nDLOzx+JeQK/0aUYo/2lmb7DriR1mGAZ/xRgLiX78oVvd89VPWcvNo/fHK0vaxq2SbXjk+2do9RDbs3czSejpMpRzLHYdI9NqEG4B8l+D1xCRBfuB0d6z0HxXGipLKHjXAOn5xkmGP9kOZ6J5rZMt5uZ1m3dOpUAyw2zcHAa3x0U1YV+NKnt9RbVuvIPffqKex/Jn1UR2sA+3cUJlDCWVndiAJ6HPDzPX3aoafj9TUN67KxtdOqSJvF2PAHGYVNpceCFC4Ih3BqwTq/cxiAwFNplY5GxVmNZ8y0CQ+j/qJ6dz1JTqtbcsb575C/S7aLX0eFPI/tRT0hD7mRLhOw8IVaxB+GBYCoiH3wSWujMIcmSdrUbift02vxrJcJzQueahI9WKyGMUVdHisP3xjmSFgLB5fIYGEVHm726MkW761kxmEwCOsWllJ1onpv7QJaO6B4bh1Q3Dscx/tEWcsOkoYjVVUej9xFU+vfqLi+it6MsDT9+4JDig+JcQ33MWkkpEqAl7/Z22e55ktdMy5wddQc2sqtIwvLltBTL4G01wzvQb+f82+6WaysyuWN2MevFbm0zr+W81/POJf+oTYsKafHy/SvT185FviDIXjcMhXAyhTAkp8/TKYPrty6TFx+HVqkitorXMeUjzbtP3GdIez9jtNWS2nP1pNOq5RmUlBNpz11xXpljK8FH5PVEZKqo+0y+AWRO90i+Hd/pFOjccq/YN2iO1sV97oQibwmxnspPnkh+OoviR/AwZY6s6PUmvGUTYjgsBthCmzCi68eGug1Dt8en7BbFj/YJ86NTYAKBkJxWjYQ2jnaOgiOvw6Si/FwQG9DnkrYjkgkyj93d97Sf/j1uwLFP+q/twfBHu0TF8Hu7qH64D/877YqscTY+d9fVSn1e2fnCP896QQv8Ln34snO/oFKXqKPnQ5+LQevDwGn/u3wnyX+s1zoU0J90p0xXTsmbPTPYYDZDHboxx/0H03baNynowGzhGB0qtKT47eHwdHwizc89xICnwRHqvRblXuMD93AQq1pSlzH83bXjTO1TYokj2/GUZoFXsfbuR06Fk+y/bxTA0yRfMlptQu9VANN0afHRI7FAss1BX67jdIi9Moc6K+HxLSUalmt73FlmWf1Ha8utDazUP9ZEZL41p1bCm8EGM8tQ2ceETV/2BL3cit2QgpXeUHQ0sDgv8Q9XLAVh0mg9NQ7Sk0dSl1V8RVezfQ0g/CCMMIzzmaEZ1JoU0fst4iN0SZw2X2RgduObowyZgwzPVhawTUrNaVpt0AnZmBqMgixTWUlNuQUdsUcoFkKrr6/YxWnweaa2HSau83Sxrc8yhpRQZpdiS75uccPiZjd51GC2FFjJDqfUkuXKVn/koJjXHkD5UEJWDiBPSpJJ5Jel0y/kmbFYcBx1dzweX7RYu5eTVXeGURhjoc0Ptwb5KFDhXanxXYL2hDS2+TGU4IG5KKreXfSmd1JS93ZmuAN5ybqIesk6klxxJZqoNZNFQUiRRycF9ne0Tu4k/+YTQQuPqLUCcxisf2/Z4OUPHvVTHLlVFygCez5N4W1pvUe3KhBpYsArIl/QJe+P9u9DPL/oNtbV5DDYnHvTomwhl1Js3BMK9cjpTR2OMJUzqc+pwAbxsWe8a5juh47puMBk1UTPokaxTn35R5F0rj62k3T07jJv8/MqDG4/vBl7jphMlTKppNRlqWgZUrfvqK0YyTQcj94+ZeQx8oJSzcC3u3Dd/x5VjciRVaFh6Uywx0JTkOcxdurDKOx2KsYBPGCHJ16r6OYlzC+8FG/jA2Vv6letMf9v7JuPvbUyQgb7c3Xp216WVx5tupjJF7ArSetVw9Yh4QkwXggZU8lnMkTksx3Y6RyV/B9VlhCMS8henG9cTYQfHJL6sZ0itfjYa3OK1JdkSFEJobWjrx2EecpNHPQIfaSfE8p7yAwlC3uIpt5VNhuWjfwB3SGNMdQ2VehqhU1qiYBLJ8LPRnuUOEKuCIjH/ITbSO/U/bzd5k77aashCHzzPO0YE2NkvJvxXsfYTNnSV4x4Dt+uuaqKs++bsHFndOuXjp9Jd0zor9DeZHKfgpF1D9TeYkAcM6TCO4qf6Zh20T5PwwuAEp1kMtxVPWmMAJXFTU1LtLTJ23SMmXKIn+A1/2J2k2eP38ud/o9Mv/DFQE96yKwuPmQpH56dT3pYhzv5WFYyLtOC/qyg7SKL+LrMzMv7TZzL9QbICoa3BSdQjn5fuRCYzVsN2PQQOTTr0P+FaAxjsBgmFqVWwzfkydBPhgWW9iT+OBObm6Nx9HXZn+i/jZsBuwI7Fd4an+f+V0344zmkdqH5pYHZ1RoT96U/iz4TwV4G2NbjSYPQI9ynBJAgHF/RMEQ/0zz4M8QB0pwVD9kKnRzUTYXgviP8CbkuJp9DI7ZIXWieTIrAXSfyi5S8xZEIxSfoVdQpYd1Q9Is0t9mIw3LaQQtfsFupKwF9c82jX4avtC+ZZLmq2wcE/c+QaHjfgqfRqgL8L+8nagwwuIRrwbY+anMpgme0+521BPiZUqhEXs22jHSaI08oiaV1456SrhgX3y5tFx62nBjFLZs93NKEtSC7ebeqUmgJlADR8qcIzSJuTZBp+Vr9Mot33CssF+GVbBL/ublolC97JOCQUTQiqcbIbntjQEtupd0IiwK/poIHc8DFRQLynyBPGnPY0CCIbcSVFO4TpDK5iuH2j2qpx5BEYcs98Wau2IVxs5zi2kOTAuLRa07HVujdnIDK45HvXIFYjflABMllLOwMZ5oDnlrwBe4pSU8ulpPxvn765M7/QJr/Sem8JSoxLSpFcvW1QGB7pTBTByK6iEuOE1mJ52Rqfxk2OsRY8YtytfygkZCmlDEzPdoDwyS2/GEfitJXman/AblS4PnU/No9cD8566z8qITiK7+uR3w03W0McPr+N2dRqWig4S03AIcekTqh+zewUiSNZiQgi4KxertTFVZD7kufr7Qsio+Z4/TkqgXtdvsicrG3goKzR+1T8GVpZ1bvUVpCW2Pkkb5FqETL5Co4ym0ddpluB1BB8VisDooI+Z4WKMhzcNtXDxy8HSMSh2eSXkoPBNkYH9Aef3Us/qAwvi1uWebpsvNUaj8mvwVNYj8umKR4+zpCIpGamtvXbwfqz1HgV/4freRMn91yagu2Yscniwj3xzmGXvN2PMb2Pays3/9iyTRmY8w/4Ie1Rczxy9Gwt7oMmN4FZG1zQFOvpG8lD2an+6TNqceq1TEPFDRFiwE9JNiPJf+FhfYr5v6Kb6lbIRNWWlLHVjHcYgX8YxjpV3R28cV7igF72CqA/EQboF5Wwk/01kMj6vjuyUVnDiM3H1aeLrL2lvoRmHzXX+qa3iK2i7G3tONkvuiPW5QiuOpgNt1gwI3I6GtyQ/UsXPGC+pHekL7InYqWk+MaVEUWioQAX+lI2N3ZaG0ecloO/yApYiYKSK2FBH7Ba5aSbse05FXWmpW1r8TNaaWF6GbSgunV48bFQbN/JKGp0LJETi4sBRaTd98wpa0wQCPPZ3nizPLrd+hx7vUclq5u80/N3ebQ8QX2W1OCuzdVwXWPG/+2kiXqFE3tErvSMycRdwwbs5faM67k7017wRbyiC6oiaQqBXq36m3dby9vy8kyzz115ncQhlOauy1W17o7R5vL56+PfDRfFacu8ncvBZyfj8h4eNiscjHQs9eqDVS2VoiQfrqZUpKQ0ojFL5pSYpDAAq5JL+m3J1tvV/E5RvdHfQdXvGgvaJBa7yikdkHk/Z71MwGyRDHIOjE/QbLJhVgHC5tOBkq8ToC7HWkPiZRuJOqX9uRxroTbXbgf1ml/qmA/wQwZkvu0uyUzTzjuGDmuZvK9u6yj13wFeZWFm0649g33VTY3LnH9zcVQL61jt5a3Q4bgKUQSAcZdZF2zuReSu0ww3vVWHrm055AO/nLk4PXoRCuinY6pcqiyykESbOyDc24mcjttHkUAaKmMQz5a/Eu82vxTi6EvpG3gqWNJMD7M80JYd+fsFGl2aYWIaZYcPcnwZ4RBVlONBJV5qgUi2lzAUwMIElC0lMiiCfM0OwM0x6p1BG5igW17y5od4oCyBbblCBMPP3jL33iRJTeu8LqWRD2/Q6nmpNQaJWy84jYaJ0D13fTGcw3iZSDCzF6bnBjAXH3fKE5ogU/KM8fKWltRouOg2lHM7bqrq/naXoe9jEPzkIJk1W9DaqlEqbPwMszz2f2YGR9zLOi1E3fQbpyhLQHPgN+kdzsP5E9GB4Mad8+Gt64uSrAnJZVNbGs6E7RMKMzyd/US1HRfo98evKkTgSVSzloPcLuQSPAK5LwaP9pjbtYrhSc+wDLN9N9d1cJqgaBt5JgahBCNTjBrEHgxgUzBoG3HMTgX5PAo4+gJC5If1JsjUhLYgJtSfrr049V82MpTxJJR9jfy0LiZxJvNq4bRE40rrTm1E9cTNTv9pLfzJ+l/K4FFKvPR3fCgRbtlVWkFMuINUrzg53UKPLqDei1/vuB/xzozzcktWJVsqJuGbTI1HN0NrCJz1pdkSdxSluDPfYc2Hv5VqM/1H9/S0uny0HB0zo7Wt8dfO7TQ981x6+Z2sU8wLAI5Nrxm8chwo63DlU+f7FUYHusLPVIHkrabjgcpyC0S2b4uMwmJ8ODw+MZIEeQmatG4latQxFkqdais/G4VHFCY2QkJmCbSj+8jQkX6cttZ+Tz8xyaSUXtgaPU1W8sSu6WWy0lJ3mkxU6PH7NSG4QgD7fr+6Ad3TYWET5jESHRUhK8xoE0x3TlSKhE0wKojUN5AapI9oMPQF4/z804OEi/rx/BW12gnj4I8yEDVk4iZRMdf0Ny95SYuiuaRvwwod7p931ZYPowxSknZPMBQsz6W3qqfJBx/nH2497QQdOu0wBLiVDhP+N7H9X1QQoup+rliUm1sP5v+inw/eC4KCLGp3Xw9jo1apluKP4qggLfVpHs2OE4QY7F4mzQRaEjzcJlSw1K68vFOlJj52jOuvBSU9h4R/uYslSEQUFKXl/RLwvIR/gzUYGU36SnB2k5hntGsrIizffHEWMse3GDoGL9t7QJ8DxwcpXrXQ3jI+ayHS4T4ph+aAAYP4I2Ofjw/XQPstRL8iWo+hDLBbT4YKTJmeGFv1DTXrWsTINNI7nRJreuqQxRbKsebZUzf2N1gfrWmrVf3WAHoKbNFqjUbBYo0LJ7lTZnn0vNeGpFS2EwclwiowkTKql82jTXVezTSs90q9GTLet4OYuSC1olSF3GgyDHYoHAqu3ApiEDyJ76sebLdmujp8JAixa8q0qFjb0xsUCrh+UV0dO58JmA8oY+NBsWkiek2p/fz3K/Nua4o9f5KcQhpys8sH2Y35UaSoKGDHZGWe+pz5DTBz8OMYAfQCLQlZXq1/Ybx1m2TpnLxxhOyMLzwDy+pT4U6RPCJq3RHPtl32HQolei4iQ0Pp5Qp+MMyqVmzsq3xnp3U25BFFlMlHeoJRnp1+mT1AlYaqVd7Q3MlpbbQmqpJL08C23rl7sq9ZEL2zGpIAFWi7XEGYYnxKUZ5DfTltYx50ADZlxhowSccLxtyApCOmvt5pgsxcpmNHYT2meqeGuDlIY7S+v0b2sjJv3h5+uxwnN/79hMttc/5PvRjds5CWFx1SD4QbmbjZu8KzXF5JeGUAOhJJNCtqoGZ1Oc0KtID6eJltd4jWPednwaF1waodqZRl+9xsuX3YMDmnh5k6Opqd4PFNhV/xxqSTWQrlmIpRoiJj61jLtyPvPyE5im7Ed26MjfZHOnmaWE/FYs1I3u5fvU775PXTH5e80xzSJoH1ct116yFfDBZuaQFkbFzEbQQmd6Ne8endCK3acnUCZhL2pM07Y6M2JsBPWEz+WttBzk7S8WkkDgOIv5aYOyYqz9ezz7QOZe1fv8AePf4Jaj7K7n/xwvHTW3s/96bx3snWqBTqOqCT9rIv/7XXP4synI3SmLQJ3/R2b/d5FZ5++T2XbTxMTV3MoHh1v5qN5z2o/UUfMhDSvun5t/VotOSPrg56FVzCO92FU6ArcjiM2XcbSOI3g64isu2b+en/fvmt7+OZSKcnUhaJyThHbSTzOkTzINP5FlPlnJjD2EwZ+wHWIMHfvhBJrqg7TI6DocvgWO1ONC07HsB0+dFm9KzDUXG4/G6Jt2du3etL1Uywma1ioul8owL5368U93EYDLSpVEjAHAYf8kdwFWWeVDSvy4UVjhrwpbQpDC8sbUkMZjN4p9uo+fhTC7ZrixaIohXp+tOtF2f8FbNDWZsYerSxUxurgKXAFYtI9fLkbEpi3HF89vK7MGlpA0fMytUj+gZ+4lGfvdF412WxZEMHkBIQ83l7pt+UdKgAHa7Vj3aSbq0HB9apH5QTQtuaTlut2kh5E5RKAwqI8y2ZJtV8QVZZVBuqubLPaiPtGysajnlSQ9DtyJa7VRdsTTlg7ISChLaTUVAPKjjY/zT8TH8WD/eVBQxsBwfbNkxHcGNafaJYgmoZLzFwdDnCmJf5K4aJNs+q1MWZA+LNwVMuWhtdjSCmwNJStOJASL/CKSZXa/PacSRe8D9ccO8eSKE/9wmukj4F723ItDz2nCcmst5Mnl8voC7OGLBqnKO4GZ30jdBahDgz5tZKI8GxdZI+fEv8FFUjTTIVJU4QspPp3yhRT5Z2EpMVps28Bbtu5+Zq5G3M/A3DsiMrjOb3NR+OOc0P/zg1f9VvTf6wiv4CLRaUXXY0XMLr2/q3lPMhvV6/sZom4jDnONO3uX5DRoBpk0MOhc36C0yShRZCkLfNbH2KxFN1ZZNsunCToMN5B6mc6191ZstdXY5t5oLzPrV0uLKaqcai3pRYdT1rmpaBkFilaPFXzg2OVaU9JOR1Gra3pejJcnzhlaYshlbasrK0srhWh3RUCfpVxKiFHRZ7t5dQVpCVZ3PS+ZDCrLcRVfAHEF5IhE1a7AtCleDic3CoKjUXl6T4EKuRoYBS2rhtFAUBNkVSt1fsIY2pUYrITOsR6xNIES7XbBxV9slQ3ZAV2idRBZ6BI5W3oM73ZRIaklY4hUwPDUa5sSUBNDo3aKiD52FBuuPpOA23X+KaXRVz7n2DvM3m87b0KdoXvI3FNFTfDwU3IkUQ12rc/90ul/XXX61/dJcQbDuGgxYwf74TEBg7jz5vjdCLaS+q0O7huTzpomp0et7qN2AezF152X24e8LZgi7ekiLhbqCGMwUjrGZDTbCPC5JgYGOzl5HSZLrYdHPPpbIz7M2DEcVS+kbq8lY2pAKdWWHNlB5hFmxbXqx/uo+Zr0cLOBHa7kWa61FBWeSEOly7LYaCTtlgaBGUnLX6SUdp7SoRQMy4e4USxvh8M1C6KomdjWjSb3dFsl8XSfbrMJ20FsKy1dT4EjoAZUoq+SRgl1plFnLuqSCt/WYS3mDJgxtZUD6M5u+cyr7453+O4kr0RpMTb7s2v5xMQhc88vU50QcswwTEElpy6fqtdtdXW1S3dcjamyTbWIJiDPN0qp8u3oZn+q8qZKxcwQxtRaMdJMjb8apkebL55is6Y9sHXW1eRndm5el+VKhKypuLRcq0rfVK/Vm6zG1hEKl6/7g0stz9G8b8C61OXUX6+GsfP5bsKinfN+75YGQ0VDjhB+Ed5OtnboFgKnDT0FqywggjQb0TzgUhfQDw6I/NRJzO5GfWAiFdGrPiw2goHFWR1z+PNU7zYbb7TbL4lu+l2ieMSUJJnXCLzHlCNlzsQqc50p2wH88j3ngoznIopOBVGQag/hOtKYzI6H2Mjx4zYOnKPrZDQbpFO/3e9FJbq4Q7eSzlLTiM1ov152P1bcj1X345n9eJR22sOO2V8dlfqKQXN9vucjh9dMdA5Ho+kQcOZ7tjG0jWhxaI7MJh3fxoQQoTltmtZA/pUm9Ev01aaTJzISNX2lU9Km8UOjTm2FxZpx+NpKQ4yVOWttvRg1nVyuGmOos2BpiEG0h7ptjc3wNdwzC1dooc3y7WRXDitm/K+ylOSvedfKsmfxFBdL7mZulN/kCouGrrOHMNFGKHHXaV5JCXQrMwZAswpgc1ZM+0qkivAyEhKOyV5kDYFCEG8L2XETkq8J3k9X3DTogAu5xkm0djJC026x+HBG7XA/kGQ7/ag3GCKSEPJpNizO4QADkuYAQi61Wr7Ma5jObdOUPV/f01jgZuXJEM4X2x1f5ilj3bplnXaVZdRD/fWyH7O5iJDP/PrmQzOXpvB2VGg0PwYgj6ooNdemt+txgyBpu98dR5OsAjvneiob2JbdWiryV6i2AsDhh13qMSKBF0bb5rQ5Z/t2cjO81jGLlWoJWSr6wQqGGPnmdIKXPJ0NEmisSI2UXZFPYBKz7XKo23bnKhKf3qapT2GIAGCtFcifoRewjUOQPFhkd9Q7ZpDP7YOJx0LAQtc3IYbnJxo32TMWUV7/3BtrLsO8kbhPBxeZeqNok0C+IHa35dOQLt34dGT0S50Ky1Qt219uARUeDozWq/OYUK6ebTiobXiBeL919Gb/za9dPEB48Oas3njon5HyJBOp6bvIzJsQezFqGoeHf0RhW0J4XzEvO5mMaFPayQoxq+rnR5uIQ2NhlyBZm0qlrSFtBu+0x3sla0uQMhtcl69H7KlPWTHAKErSx676gEg5+NXQp42tvY2Dg/ZNZidAdn7ACq1/RErUov42/lDXecxPQczFYt1HrWB1A/sE/aQWtanSYyqE1juJj1QitdRJjTfre9fNuXks6sJzxUuG4HfJj3aj3sVgK9nFcvqiP5wcRrdYtw/tPQrMD3RBEv/BzxzKP1xUA+eFUUptZQ8XVWB5QbWFH2oGVPlMfqB2VSAtlsix0Xayv7N7VI8BEHkJsku8JDGucjBVX8xAoUShOIOrl7R6DA7gFBK1s86DxAIWkbBnmbcktHgdPYDi+O1rW8yeE/WFHMBCw9XpN0/DLWCx4TgCzGb24ivWWj2eaXiFKll6VlsO7p/i4YT8Gv12S94JdZm1Ocvwj0yXej5nKbZWe3FFXppwqHWWpTkQizvSktwn1P8obKD4wprup+k/aZhAtKiIHRwJeaUGz9B7bv7rB7bI0fEuxsnAujPtb1akGRwk3XIN4NCOj/Cd87GZKbl/spQr31BaD2nAZTeeHBNlX9hsvUMUsvsa47KD8U6nrTppXw2aqv3CRbilC684hXdNYXexF0rtWYjienaBfrVAdr2WgV66QJbki0AHBsjdc12ADwCommBkfjSZxSXvgvyRg0TnGRxVFXJ/MbkVS8+Fu43DGjIJHrXopAQU1K4Y0B6WpQcgelmJw0qYuU/o2lPTtdatekEqV7DruLy3YUtC3GeKwqPHj5ce2VQl5SN9jXLSZicspzTS1W3ma09guqTNZgUxUauS2V6dLSRxVa8yX76mlSYPMlzwGhVjQmjHYAVghfKkr5hpCPV2EhQA31TJaKHvxdoKPLdyrD/IshTP2NX1/sociIfdJ79xcu0PcirOtLz53mmpfrtz++IBvO7p7m/MgcxdV2tK2/pMr424Y58M2biq0nO2dTr1pllbuBmHLNaUpE3+ECx7zMRQaQLcbk7iRkcWoiX69+5wv1IqCC12/UFReQug1fSVDVLM823pSqaGIinIX9/+hLmsX84/TtCTW+hmnN9eWXqu21u+n5Bffm/nG9VXIJlgTIh4t7VwNgIEalVnC5x/8A1ps5FYdj3EiSsTy0lTwgUS0HLlLnAfb42U2kfqHl144Sg2Z0ko4w4ZVWw05X1FXpHXoNQtpLqHJ6XtIq10XFLyHpKLBySSf0Vy8UhE8ksk60MQPaKkAyTpY48+P+hP4lnp66P+MscaJf3BSeWDLMQxpx3TJCVpSOFbn2Bzsr6S4ErocLQppJrfQhtCJMLRhTt1mFF34p4/X1eXw+WNaHr+WpWT15o1c0BdnrdOq6NEIJ3WEv3FM1t5FlGqPIdILMygTSzOHxKLs4cEO3dt7h9J3DYiO4f5RZl0aItzidJVM4n0eeaxURT5+PPPKRiZMvLW+h+RZV+Kk/tH5PuQiKBVvsTGM7wiXoe8RAvUo3eBricWo1L2cdVZCsCrqJHIFqGt3Ji5UIxCk9IBfD1j30rkYSaT4s51mJX8KWLvakxvXnherEAqPburFfvVA6XXtHxAp69qvmn1m+J58lu9sEhaGxctM2qtJ0tLNoJeeCrUqvC2d57u/L6jhldIToNAspgAJ95P0jHpNRfTrSCZ089O80rID6iWOlEbiKIVnZG0GG2Jwxnl0d5lDbtchLWNui/QBz8gI+MtHJqDMmJwvn8mDXbvFW/GPyGC7f+LbMy0rarWRPrv097r/lhMY9cXhcOSuPTEjnh5OZrnyCUO1wOXjerfVOm9g1aN6wr/W3kps8Ey3LVjNSukVqRPhWfLeNua/qHMZc8irJ3CuojCDkMbKFOq46w0QLcYut3SAn5jCYc9X3/h0QjbhP6E1ILy26XsDbBV7lBpPQ7LZfNapNGK1AhJxXNH8jjjB7jS+LwxW5weGGzUTVFwnVCl/UB68S3JuExBWHng3RMXMojcZamqluulx+XrXzRa/r1s44nLD3JtD/K/PUyUirZCY5Wnc5b7pHyDPsF2bD8PMie+5GoYli5V1erkrzNXBYKO1v23eYXvtKu237OC2553VQNELHLRWVVVmjWyncryfYk09rj99pwTJ4yknGrRVGQSIrhOoou9aracbkS6Si4w6A76lccEh3NF71EQI4DbabFAOIVSQkS6So8141RDIhhqZeN4RN9n2otQBlebH/GvHd99HSFvLfgtar5oXsGB2h+ZVAWICFnJmf1LPcW9f/dEuCYYanbUlXK7+e7x4z/jBnzOGKfVlMOxNthdtbXokSl8lnU20iBdXCRfeEMvCQ1nBV1Hc2+vjMCb+lLFuLpA2KtkI8rp7Gb89Rt1Vjm7UrMGz5UJ4i429v1v2m2nGoWAR4GiXmZNBC4lukWjS36rfe2BAXLOcrhiHZr4swrYsOn87goR9CjGL9328YfK8uvQJReIRqNN88OAnl4Cmn9xAUBo7+gm/TRPY6V//962PUzC3r3hRJJToTRLmxc314IQ0zftZcMBf/v0KagSIbrf7u+DIjDVprLxXyEjLMJJrYRRTPUDW1UZWyEjLMJZbIWG3vPYt+SFcr29+DNcRGhKrnW2PZKZPA/hsloOwqXW1MyPqUmfVOonpGIuiLgWF9Usv6TM31Tmbybz9BPlv6R8+PR4FI7+9a9PpECoHFhfwoX2YngpqTZVOTzWpjILPyFFgBO/hKcGhJ14SmzfJ5/8TosjxUeitp1wQSzQYd1gWPGU/aB+4oRPecJviwRHKMlp9cJDPiZ4hIyTCaCnwpL+ftJ/gUwuLO7UOaX2URls7XTkSfVnjxaxRt8QKC+Vn2hfQzeMb+kdUvogZKmQ+c9y0YW8IYxiwdc45o/n95uO4Se99T6l6Jk6/Y2saSi0Ag14/PUmm1gHH7nbYwfyqj+gKRTaGfo5TPRGeL7vDcXiYFHoYR5En9tmjCmrr9zbaR/ZgFsobbMYcpo5GnD8i176xp0isjQpUDI5oiZb11J7jIPoEZHyABEJe0R68DPwwerWp3QPpk8YP9NvlfvR5n6i3I+cS7/vaR9/+fixPR1coeGMc8J0gCZw9/Xuya5QWMbfjcUp7y4XZW/aw8f87ls49GKl1xY/uKjzXoITUkeCejcCMbIzlOwcyT4UnXSLMfqIX4i05VV5oZ3C48NVxQIKvRGxkgXho8rJObGq44gdpQqpK3bt+TI38K4dy+h81gjGdgQtmugcaPRdP4acUi8t4TZTb8oYN6+xe3TE8Twl+0HmmKYl82O+A2Qp0TrErGi+rTRWlcpEV0seToxrapfhRnuhdhJ6yCUkh1HjU9SAxMTBleS4sAlqL4XPdpdcZ01peEowjs0E5ftnMg7dtJZEqm9Yn1im5zKtGMZosQER36bYpFObTvlQbatKJuIObGr7WDu0WFl/Y2C13GszOVcONyRcbIC9Ko14pqcZl7jf/W804vCnpoMqJEHCJM93My/y6Ip6dYVWqSbeKkrHL0OpMA3PoPVEsMzpSI9G40rHalX5KK38Sqt1RVU0aHpx5lRqQHWgtmTtma91TUBSr+uEqAsp/Eh7uS6r+WE90cZwMctaUWrZcuvcvXzB7yaLorZtVjsLhb+vldb1d4+2itqWwMT8QS0xt3aegILp9++cRMrXNyUwJDmaZO32PJpkGh1ms+QjajH8vra6ROI2mNwkcmsrAH+oyVu2/M9otyHmQqP3dOJ3Nw4Ff0KjQIuFBjmD9nSY3GTYtmh5XBeHFsWQME9LD/YPdj3E6Zpq6sJ3NRXH4Rz1GdZm/xzSEekliIBPR3XkAQF2IGbU+abj4SZIKZiAPvT7Y2+E7XUDlhBlrccFHl+csej89AJC6oYohuX9kPmqq+zW0e4nHzLis8B0aaxPGS0QVFdTJmlbl6rn44x6PhbqWXDqqajBzuxGCdEsuhBlwP41zrg/R1lvKgvuVZ/SZeyqOmd0BY+bG7aF1GTWBjXB03i7gyrT+blM4MCM+BbaDQuhDc7tOYWI5YhciMVylEVE3zJtDtUNILw4p99mTUJrxF2nRm+EQHA2bE1e9Aekd8/SA0LrOmObKqo9wiUK+6TgdrPcnMBpTmCbY8riRR7fQWUzLFAhIjeNR8SntHEPUNFEuOMqtG8z4gRbaRc+Te8hPLE+YZt/UsAZFRE8tulP6JMErpZZanc2YmApfLftN4x/iwvHjHeIcpKzywTvwCCuHv3pwFqk0A7bvqhJiCfv+zcXDdHs/aUMUstGr0bS82TJLxUgIoWVcTntinXa3LWCVpWpu1sod3N3o2qvL8jEDxnyumlWRYvb0MgHouKZYpFFjn+I89w/BM3WzCEPmIrrx1ymYU2tgYpHyHFN9vK8gOUt1d3mMspPaM3ewjguXBzYxB0civPHn4T+5NIe+k4L4V5p/FmyVJ272UBrYvYQ/LseHom0RJlPC2IFhA9mX91DE/wLpYu4jEhxwfR2EmELoxgxWOR4RglSG4nDjF6QEgedTq/N4ir0g7SCktUBcbGxzYfYk13tI7/r9f7qjyiSJC6hJRgVOdNT3lcBQP/ljcP4XRisGGC6Ol4ADL9zVE9Nvyi3HFYkob22cKX6UxGfK3kVJ8pixyFnx2L9UPhwNBKpeGBOmR0qA3ePE0/4NvUlUi/oGa2YfIBkejyiWw4ygkLtXlvjkfqnWxRJGp80v0v5FrG0X57InaPM2FnarlcHNSY4sJW36Cjo5LLmwKekFtIMOiWtvDovGUtdn9s37B+WYX6JLjMvuorG164nW6WKhoeELeSoCLVvE9JVUE+CosIm2gjle0Yov8RCeeUVOXV9IVM3UkQWCWKk2xCeWCyQnnG8P1ZDwyumFqRxQ6nXYtHGH1aw0FLE41RlnGF9OjqzJzFpygOxL40LfIXH2M5r2uc7aZRciEWi3wJE/oNfaFTejpJovB1sq7c0DI7GI42w48tFNvDoZpmJufzxKo+c1h1vXCcRlTMD6ClMaaqmUWMR1OrvCJZHziiGtbHyIN8s+/oFR2QIVs7vB9mlRo/k6jDyH2fTnpDTcDqoOlaDjkWXciw6drQGM2GNUkidRvGhtlRKLnyjMSqPVr3r4bQQq275GdxzsKwRdO84j7CL9Opc07sbYuvq3IebqZrFdnVO9OWKNGmZPXlCvC567JrND52qoPe8onr9T+M91xyULofE7cldjLTW3YIVXmZIuSosIJ/A60Q15mp4rM8yfNeBb/C7OxWLCoFZLR/fQdYnfJdZ7+qmy3SuFsveXA0lbHb7AX+aggFNif2UPXz28NnDZwuwtM2nCGVMQc33iDY+ZtG44fuLVOGik3VAx/JFRTpqUcknheSXOJ1UereIhk+lihw2FuacP4TszUsgAami9+zc9MLTlqT/PzP8HJ3Vi+j2otg5wa82/XqJHx36QUcwQrgW6kqHiePSid6LuoroTzLaNamzrPjSpfX9nd6x7NIxr94a1eQhVP3RxKKauQo31iddq02zscBbnpsGCOfYUrsiXbALiYDRxxU+Rl1zYunGjkIxl24RdeKa+HFqRoo6LB7aJQs1oIE8uajN/P7R2phdtHhQm/2gyqYPQcM8VuVR8dL009bORzLUzkhuTgL67SbxE9Uz7EthNmshkzrPJoDjM6Dsw4tTm54OuV/vw6sWh6SyxVJgPvwu79LdRgJ/B2ov92VimZZw4eeQgSiQAY1HzqSghp8/9ahhekrDC+ig1J1m9fMExqVikFnUXTlXGF4+d/mfb3ZFdpOm/YCpguNh5tx97PreA7h88I6NkMWofGHLmyTj/uhmiBdqXyKjKAHSl/GyCCg2IqDJOf2ukPNErpzHuqdxrvdQVIkLeirF+5nRWknocTQKv/H2z153u235z+thmnXFAb0Sbmdw+HrVEfcB3Ybj5nXGfYIj4ih8oyN623RfIvLbh2iTspufeuFvkaQff4Tb+HMZhTfn+LEXh7fqxwRLAOp6rN12dEsKawqPExqXEasnjaZwfdeA1fmAsf7cWCO2hdHdZL5EmDPEEzAp3FjeVVyG4vbcWKvYi+f+m723Xa9COrRK/SqCHr/b3t49Pq6Efj4FTQ9xb48qYZ+pR97nUoXriJz2ncemh23VmTuaAqjb8cgNR9RL08WwJTEeWsNNfj6XX87l3bkTE9QqYcsLii0YUjw7uoUFX87DJLg7Dy0DiCvbZ/07edzWHy18dPCxvIZfOrmD5GUfxEEc8HMZ+8zWhu2gs7oRq1sdAab9iGQxeC6OwbkFNknSVw89tA57e34XCorFmPm92Do3pd4lIfUvDamHLxp+0Eger5FwjoaW2kGABd+OOymWa16hjpPXaKiwje9xv9m0P7u5gx7zg49uIvhZOU26r9EfVVy52Z0HcHMeINuYXmbyJy++nkQ9MBINEQ/Tryosl1vIfwIHGU87i2J0JwLtM5KG/QohAsmrCL2BvFTPKk/gnjGJN9ud1e7Kkq/kb9eNNb+ZstIfXyeXaKY5liA/xlTgiXJMq92Wz/XSeO9QjEhqnYDnai4rzsL4SVQJoO6ZlG+xc28M6qVOjlr5olxaLYBRW6sRToNypEV0iSDzi+xXAhV8lxUyChsx9epKYyx2l4ZWunWxg2pajYSB+1aRHQ9vyP46h/C7lQ3AeUHercRM/KJVhxzZDt2/4+MNSwnLEjq9UUHh9tesAsLJ/3puj2fN6oObJ3Way/z+E7xhie2TB8OSGy+RwECvaiTiRZgjWKyIVnO1+UzIVJ8hSEvkhXa42Z0Xr/JHBs6ny1cmeXuTqM9cVgSREC5CWh4k+5PhNMD+8VsDcC+3YigBNdktST8NX8SNrViZTW5r7YljlXUYJZdRL7OtOiRWFprrv77b3ylKhH0fGlNqxC6xru2VcBFpDUj9GiqHb4SQg5KQlGRCWeNJxwJxadXVmny+JtYA2PuiBQkuiNmhs4F1Y0qhXS+YxxKeKw99+j8HMH/9n+P/OVCiJbCKzT8nxDbyifQ2CsHhdcXbV8pNT1dskX9T2rK0lJ9tfJC11hVaydykrQL8/fHB1htEyYcFh83pdF2tF8olO5uTk0PPzIPHMm2ALgGUnMhl9J6QMlQ2uL3OQQGzPA0zos5amHt7oA7iXBrBika/kchim54ffJbYkqsW8LRgBp+rfxt0UkmlCLQTkikAMcm9qEE/EAlpWb6NTqOzTfVv19pxRkSkseKPaN13/Kba1cJWLmTmGhw33LGjkkM2aawhjSdT+IChH0v6eF+ShFQfxSv4vRE52tMkmV1rccBnFBcjsZjIhMHVo+U15LuU6Afqled0KoYzdHBxoIv/EcVJlLWhz/QwcI+0ohXk/XEURhyu1tmPdOe472I90sJEjgDcHQ0VFxuw/6GY7l65LHVBST0XNh4TD3A9CcBmsRajcBygFbB7h5u6um7kwPAjRnM0VsqVWmv+8eNyCrEkzKGRveQo6kUsCp5KIjBNK21bxwu9K6uJsLwEay1oJqAh+LUcLzFNvBbSYCXmMTS4mvKM5jejNG0kLlMU6evKmlVvN21Rc6zjfkOPXiodaUUdFxBXUkHWN4+aiVaZ37pp0MG6urx+SdTe3rjcJAaw+3wVn+3OEn0n9L38DN8ra/SZ0mcvbN/rwV4mOl1M6Abbsy38mKCFGoCWDyul0Q+qVbFZUel6DpPCbQh69e4QNb80D7KbiyGCDOLJAAU+Lgr3Geefgm32lXabOwtf4oYltBvsMFr0u0A8ZJus1Re8JLu6ymMyq6/JKEr4y41jQYvrP4J4CMu6J+Mo7dO1dQ0Cb/1Qw0uaFjLSRkhyqTJN/pvaUVH328JyKz8soQCvo6JYPLYIstTy7BhQRUJfI6ahr5jK068RB5AP31KGVN++jS9AMnZRsDgDvnJ7hujvIOxwg0ghMMIOgvWtxsvt0V5xB6mIScJraEF1bKG8fxQiwXSXafAc3AfJ38LtotqlZtYhUhohY1bjjW8M4iNOsIjJVkZFtfcDVFnRfCwKuGiPN4VRbxQ8dm5rtrScpBAtJ/L7lIzIj1a8EuZnn4ccM4tYuBbbtna/b/GlDr70DJxHmFg86Qw8L5wx8gr3dLnmL7oJy3K1mNCRy8WElmS2qJDYbsl2pwi3RgdlBeCybJdqaHdke7kCclV2KhBQmmPw5FLRwgy9USTP1nzrVMQHokczq+IfQ/sLf9y4QPiH2lV6xbsfKJOvyVtShg1NI90mQk6rjj5zFlCszOJ3CI2M5bX1EhidBM82Smn3AV7fDq356M5VL3SEbsTSTBl8T1znGok1tq9yFrPtZAu5pZ1scK17WUT9ySalKh/9/vgx3hOtc/HwNlZK0c/dhCVKaLfclA5S2k4KHoUgM1kT5s2ZC/ryBYQ/JUMi0xzoto0y00htAllsI3N75tlvbgfVQdLu5M0DL0gJS3lCmxOW8wTXX1GEu2Kr7MxmSdJec6/nkGaD56eurfVXO9zD0Ywq18f+YgN5M/0e++vrxPCmnVZU6CJS4kIfkZLkKR2dkuYpS9zbTmtqhlCrZ6pF77/kvacZgK+N2q7Xez0GW76mefWV5/qHgAfilgAvr7+u9NcX/moLiYvV8DqCO4DE9fBCrALaC0/KOmaJyIt12M/TrDJw+pt7gPDijHYVKlvwhoyhLLhpVtmWvB4VoIPcW3J44npRhjoQ5S3bPMeXss5csZklj8oaYNUBsH6UdeYzm2mcJ9tsOL3GVLdl2c/xkvzqzO3nVQxWVphdc+vCdvHGMO+8FFGgNL/RWdAffV4lm/3b6Cps8YvBSSNpAlYPBmkbIkX38WgIYYNOs93ihEJXfJ9pB1gN9bQL1NOy1MNfX/IvdoaeMwOWsExWZqLlR4bMHDKaDeQteuisdRCfaQpqWRKJiyQF7btHdpSKBIVMm+fSU3EQy0RTHtApmknqaCappRnXjzzsP5m7wrX2C7Zb0VV/r6hV4LA4oPF5lKitw+4SzC7Xko6ml7I78tjteBgXO0rftmP0UfAcLrpdwW92VZUiAsvnzPelnYGqCq0H9HLV1tN5XOXZHMnVjswfbpOVWcTanRnfkF0HMs1YQqCR5MZbSqwBZXCwrxaQxrSc0qxwgdF0nGTkv5vqChqGIvewQa3m4AGmyRA6GMvuPyNVOQnamvuTbfXIeBPa5cDBSNrsxb26U0JeYADu7+22xFMxY1fSWxJfw16HsY0MZ4cQJvPp+mszSikJ//0ENzNWynt9mnIkSdbVwqXL8KBDUieFUWu3De5ULN5mpwS92D6jAtJT34tIII2QFYUDhTe0w/ZG2yweszdMvm/5tFkimdBt0cdw8EvxVpKQhMl4kioOiZLjBOAmb9PGhdLdo7fXq+uJLznGFW5Yetlz9k6/R2463umszarE7gv9GsqZr7IxMc7DCbKP+6laP8YDd1vjtikd6yaQEjNyeTKBbLzQBh0KPM+UtO9Ifi7XnUUUc6hNLHWf2S2FqG6SNmKI9knbEd6pS0OkTrOKcZKJM1LbzaOYkCgrxUft7qOWjAkPCc5njLP/TQ/v6VnFoP74UHS412+yL7bT7v6JvipyaDvdxQLBPGhVSqeXheURY6CjM34lDePS/AY9+FAIzSzH0zNMp0VByxGSuSf0ht0bKLVJWhh/NDiCsOz5QR91sYIoJWMS2BeySjfxhzYF/wD975hjmYOr9cLw0OfClibAAKaki9ynuyU1cyy0etw03BeiqSmSOjMK9kKw2m4Y65WRP2Qv+T5lFyuRFYC41moLault3aZ92xovt1FS460LKocF2829U4OJ9huMT2v9Qm9JOTrhS/pRhlUv7i5sKN4oVduAe8+QQrJ0KDZqSfTjHqo9TE1QiJeJVezU2ytW2c5g8jcuM1B3BpdcH/NLWRy0/TKkm9sBU7KWS3vzKF9hXTCwIA/8FebBwIKhZl6WpNj5SiROfBrlePyYjGU1UFzvzbDXu8pmrvNL4t0u0+CalpodK1A5BmvmSpv3VS95CNIGnNPe9BO40UuKgY2b6q0iDmcZChcNDHUsvaKp72x5Syu3bEQrvMceN6lgCRxYT1DhQz2yQfIk2j6ruRPwHtxeDqVX38KShd3NmN5HlLhUMCIj+1vY4PqlN0Fvoon39rhYVCipovAWVGnRtQggOdzJUjzqAUHaPwf7pI0qgecpgzqjhcqo++5g5UyBeWP1AAl6vMpw6jhSosMhiTq/ziA0yxoKoVnAnQIPSKO74IpXIRUfsnR1BOwjhd2SwU5cFHgSVWAQOPkYSnQZ3nsV08LW9o5AVZfesY/cbJItuLNl6QKLuLh/6oRLuevH0ecMrgThofP1cEpUhQdrerdnbFvXNwZUSHFhf6pcVY3Ohx8bPFezjZfcirGUqSaKQkJMF+FRx9OsrQ/jGxdVAqLvUQmAir2Cj2c+iMdzPIjHDzyIxw89iMczH8STTs6VkNrxRJ3Vi5F548YMkgQPU+PxiJXdAunTfUm+VpOoY95Dj4NeBMO7WFG0/jTj5I72P1K1Uz+TJmi0hi3IKPZTmrX0eki8FsIauUsCzNir5nlzJ6YPA3Q7qgLZdUFgKFEJFDHQeIiOFSCQ/WfawB+VC0KPfH7LDUhQmG5v7dgCDP9rjMyU+oQx3IfBsAXJ5SocbiWnOT0E06S3+H8W7Vk1pJvhi6th7ISM9L8dRuDsQYijnvDVbTDVZPSlTxqe7KnNnSA+f3EF3U6bRzQzccmhXGQjEBbjIxaun7F8CXKroNt6HqkWrcMtBXEtK119KAZWW6q7XDwj6bkl1Ypt33VOtja0yMLTpdefcn4Jrr3BMowqSKGDe+E0L5bqbCyN02l4PwCoPS2r7bPQQz11FoU9RucbIsv14EEqU7eAG1bAqR8nx0HFCr05XmZfR0oOtGCe6+zDUUP70KrryDFX7Zm6G3ot+AXOgPli9YzBR6Me1R/oK8b639LTtwik4HSU6abUUaaAH6Lyq6wXJbVE7rqO+Y223imSNzdNxJmF+j/t2lk6k/B3jbj3NddMy9v73M++0JjYMnPQMgR83srzVqswEvMPhCFiCBLsZNu0UhQ0CKeN19OQNDznJoI1JoLbEQ9eTY/QGS+vsLHm4aGzNNO8N/DVhbdH3ocL/vn1Sx6o/QfJYhL/FIp4iAi+Z8L1g/SCCgt3zu+dHv1EcBAKeJgNjDQ9Sxc2eFA8FdWIcFQtFnxodrqWTzqKZayOVedMsP4Siqchg5U2RgdYb1snnFG1PTECjEq5eBFUo1ANs8s4h1WY9yegKKwTPdxwr/+dBKQ7FBvMD5axPJMbE9sPQCeQDpDwCEE8yL1/gc3YJb5uBDaRQfqD6Iqe3zHHJ5AnlBk8Y/OFYke++ldd24zUQhxjGjUGkXtFb60r0IJPlSgUJ8Ua/4/nEVlTl8cO7CD7GLnXVucqPXCGElY3+VjqOeRZOe7/VZiZNT0laqfYJOLprPoGDSmU3SGaO/J/ixr0KZdgyFOEWmvddVZyoLWW7Kz4vlvl3p1bIeD6UdjgvzSU/7EUEL5nBt9WespZZy4O+LIoY0k1ltRiWTNY/mIsKbAQJ0rL6XN/PBxcKxXOG+ZL6TXFRfkhVQ4rsX6ydB9ni40l9TFttH3GBGHw/qB/o3xfb/fHUe2l2dqAv0l9EFm1OAISHuzjX66UspjedPk30cZBWliaeAEQU+KHN3hDKIoc0FYvb6x3cku30ivskHGG1wLu0MFowhuU7YjjReYkDaNAIbL+UopojT/AcDtuvErVguO9mWXPjPvo9iprxlLYLyXywT4dzyUB67BOQ7vmkFt1D7l36dQh96S90YC82C/76/Kn+XblgJRG/jfIr09bJKY2v5poOFlrnab8kyRB3Ex3LlQu9x9yl2luP790cLeKDAOMDNc/5FseCs8/Qp3vGiHmvmrHac4xaudj1P5ZY6QvXNWjZJw7B4kyUEmaTN2v++cZTlrLX9dLgjtXVADn9rzcE4YtH4AeepLXtMFN8HKU1ax/IIwIX7DMmFWwl1Zpf2XvQ+r9KWnu3t0oxhw3Z/gZ2FLBXAgUP5bZLQng1fcafbc2uDzOkoQAqV1d/PLlvDR0g43p+yhITlNGi59204p5N12Xnhoh45agxG1S+XZ1ecwtMY/w5yPRksyL8FvIafI5oab3aKe6KXkinIMo0LZxPUWYO8I0QQA/0KixvIri7GqjSvod0d6+DTlhHq3z9xT74bv8nQX8WfWbZpaFkdbi/6AeNPEwqV4feUF5end11hfkQGAs8wdJfAjJiT5yt9/kedvKJFxjQY6vDUOCqKvlS3ETuUSMb1O7TZBnoN5pmrv2IVOIz33cCKifEPDMrW4R9qPGT0FklR+UZcPPwdk//zmNI7f8Rq+EJH1pCKRBPM6iSy+6v2evxPfsZS01le0PvrcWroJecFNrq2yevIW/yTNeNtcCv2VC4D32EKKKfIYzPT4BqHfy+lj4ksvqqxgFoJGkS36YytRvctr+DtjFuhq2M4o+eY7EjGo4uL0hda/pGlwoJsqLrEF1aX7j8DYmtoIuKA5cM0YzSL3wTxoFX5GwH6Rhm50HhSt+8R7JfYNJVgPspEzleQb/ZgFxiS47w3B2MRpmr74l8bxczvdsv5Ut41fhKd6n02pvvNQGlx5eHovZSxtQiDT6OcVt1O5R3sn376SocM6NtL4/qEuf2MC5MSVDWpijNRA2uBI+oSV8jaKauheGXsv717+m0jdCb3nNe/zYK6Wvh97KM98X9T3Vg728vLT0HZ3e0KSJtheenGs4HO7tbTIo9D4Z/KSZsI1yDoryhMxH8BGW+k8heBG01qOiVkBZhuUsSuEHVdJ6szE+NVH5imuhYg+r6DaU3/QMYD3r5DnIE0pUP2+KdF/cFs7fFAg1fyK13NDlu+fZQS23iDUGpwcw4QGcm5wSmuGfRU5Fe6jKC1DJQMqx+Vla5lsOnVMAcg+iipuOJczCbOWjwkcVnBMVjiswjf0MTONlBqaxpkfhZTZTEHI0/Qz8IVUKpAm1XraN/IOVf7DzPahn9yFmtnQOfbmTPjOZ+Dvl0tGodnFMPYDh/f0GjnKskWdj7Asp1GO8yEs4ehgohk/KCuGv62G7YrjHHo6zu7s7G3eFVOpNmpDa7s6mdYSExo2/8fh/kDjsxXbgHVAGTJDNwWUAdeVaLt0d0E2bFW4vyN84BoTjrHpa7xqN5xSdYDrIA2GHpJjuGaq0ACZFs/KQT/UUkfdA4HGTZxZ3TevNkx0tQotY0l8H5rR3puvj5+LUVP9WudIQUsPyZz6N2YBGnHk/A8FpSLJQRLbomwXhhCI1FNFwmoumkI2PUis42BkgOIG/FdAcNFJBF50KumgX6aITeK8VhxXlp3jiPG3AOxZaa/hQKELrtSZkAondHknx/7KKQVZrY7v5e9yIXEVZ5d8VTOkB1Rj1UEjIdzGUCILtKxJwF7AoJDpwoMplHscjM+RNEzGQ26bwLMmPMcS8Coh8W91UMcUQpdp8I04tustwZaQfYvgSuiMNHFVMRZ8RylVkax1bSszqVUUE+a0m8i2c3SZmAvusa6X6ND0S7PLhA1k2utpWClh5NeKOTQq6Vs7wfIgJfQSl2JqxQf7cY/NLPjYoVhqbkguPXzAEfl3PlRNU4HloJ5dJ+Ivay9MgnXcvT2bt5cptd1NLjodj3lyoWJ4ipJOdF3iT3ei9Ly+Rb45uLhXQuda9OCBURylNZzMZI0P9ULrW/LoGkRv8+TGYEb95vMOZTNZwVk9TSNIbpfWgY6cM2bSXur419V5Kf5HpuleIube9vIuo1VN3d+pmj/rWsfUB2V8NfMqWH4ZO+pNOEQEPPrfeNUn2fR9K0WpovNl7jvWAa3QTUWLmevmltF4AzOuFib1i0QBEL5pf1KJJ0/dwXZcOtX2prchxmxEnTeUvsqfkL9kEchBTrAnqZ3pljwpwI1D0lLAGPSCEhMPB68zYdvMlJl9YTvhLbxLxO4x6slGvLvHwLt/9rxLiFT2xSCXN84v3lFACC9wtnAznqSL+kSosU2h67m3lssTrhOeOBwBt0KF2NQxSCk1QU1NqgX5jKrbkPZ3EcMdjzwduEA6oABCBsim5D/hxsjiZk9Jsch/Yx2S5G+otf5iYbPbxzDk2/OIXXWZTyAdpIm/ZlqWxqY05iL5X2wjDVy/mWC7ql7RX87tTP6lXMJm6WC82fqB1vdt+OnfrluZsndXv4Pd1mqFxNEhJD5zZ1f2dBWouOdkR5ltIwaCWKn6llin/3KIkIo8Wf2QalLvJuXu6VoiDhPeXuedFvbDfjrzGpOqF5wdbz+ojP9r+1flbr1VRqltftbFgJf6pwu8ANbMPJq+Kg4hqN2i2cjWa+0HUJL0KWA9lKXNtztWNY2PWQzTi6QvfZdSoKwRZMJfKYTxzn+olp1NFzwy4tuU0+t7YkqOmTlRpOaR+sDeQ58Cq04qAhpSMJQ8cG+k0k0RHA89UY+ILU05PYqGcTqsup+c132XFIvlYGWlrt6hpVimNjVyRF4lUFoVB1Yqd2jRlbBifCFZQqxu0jbL9RVX45XHU6KyscFwb3pxyXSVuUewbQmNRjdbYsmoKlaxqEP+A5hybgBzjGzhnr71VwjOtUIB38pKk6L0ifHYbSA2nq2XGDW/GlTKkZLHxKVGWgjUly454UMJNqXxhfwAf/8YJoynD6BpzCU8XcWxUdogoFr9LbZnLFrYXUJU6gjX+8gXJTuqPHsfnCmP9kbw680h++Z1H8neTHDev/qVn1ZVUcpPKGpvGtQhZoXtwT0m/eCiLgG0LuHVUC9nhR6AaiCVArBYh5qGGaTl5BBnLvDq//REPGYraWTap9XNcOCLFW9Wb6MqDBtJEzD3nB9j8KIHLFV9hoh9R2DUdGv8tEnh7exPDyyK9nJ4Q7zW57t+UJ39/oCGg6Z2R+++5Vq8x3ShP2g/3dDQe0o+/R/BbV+SYRnrb1J+pbu6Q08XKrM7GETjT1/2psVlihMXEZYVpnjHa+jsDZAcG4bWKdG3T59691uYmZF66eMxnxuCnTTBfzP7G/CrJ6cbO0HszvMFSK88wyygo4RprcZ4ZysVxs7jb4jmn9zOcc3uK1UUjtS0qZ2lOt8b9BntfD5RbC5in4/x9mY7XWp22wd4LhdmQsWjP6dVHyDR8D2UQJbhoJOFtcpo2qRxplsCE4Wp/BxjOSL5JmYLI1stRGBDi5iqK+H7XNGP/8CWHf3Masn84swmfdRP2D39nL85u7VSuVK+F05pCl8FlKKw/BDDkaRM/Kf/SEc/3zKfZYm2LEpOVb0dCQqusyT3IUzdFxT4ouqK89dlAnZFvOLYROLa7xE9PR8pVQziiccGHjMK7BH85esRyWAyRM4gaPZ9Ae64ID67/mmKxkNauSOtUpC35vkw4XIKO/EeDKnzVpsQR3AGOR4VHAQFJZC8f1OIqEbKN8eKtip9jBmqcN8XHbEJD9GZorgWWKBkvpIGpw2DKFbmfyEt5eiHTM8vAWZ6ygoF7lYSnZ8EPs3HMmoONM4KGdU7ykLbRNV8jooMsxQVTW2ptLPwI3/f6v5rv4+be5GITwyPrrRNxihEZDaKtoSHoG14MszvUXlpCLVVHZdUZWTocGVBWnJtLCrwqZ9ktJEFVJYAVW1Tn2926PBrju9qezTNW/UFxqP73GYyHr08nH7B7fag+pe0o8pKdGAj27PK+OXX6NI13BDwaIb98LFgI/9v8zEC1t1J3su+YSSgJ4QmVo2ahpOOVjTZC/6pMnFdBVHWtdv04iA0kYAXf54L4Gf33k7Ayh0/G76iJW2Um225rNNWMkT2tVHgQBm/ijhReK4wMvly84fOs11ET8KFMWYO+khMq3vjfKk7oNXNCpardHZ/eIF8l+RMjyXUw4867JpgHAoCBTVWuRA0k7hkrTZTqSiIcKAWtlNe5LJIb/KBWSp1AhNVVyjxL7EhJfB+hSUzKYX7qWI3qPEnIaTDf6F2oSNwnd3qNY3vYFPhXdIXaTERQhFB7h1HE8NSX8Esw6lTH9mIB1VfuG8nuKPkjUeoHujFHDzbmaI7GHH13Y44KjYHHPs3bbY+zCOkvo0FKF27Frim34rMAGK9lXRqLSov3TTILJc23r5ap4X94ulA2rtbo6rQgF/0tkYn1UfOelLasr9C57MB+jX/cDuxYeUB839/rQ2m/aLdZbxz2azxlHPZee9uzvkveY7E7PatZT1Fo27I7SKEeU3Ji6Yhk63UGDrVoIF9zkRsZ2M/F5Md4QIqa+MtpZZVyIU8gZC8mcoAARyqfjL+OGPodoDmhApIMtIashBQ1zW+fFHTsuHHDsdYLj+RfaORYo256B7M6NgsM4n0x2IyEhNwQ1Q9tMXDygthcYO2ccsPKfkdVALxZiIX8Fve6D1TsRtqTHxLZUj74fEsw5LRP112zGHSQAAQQW1nd+BoFX/FUoHfotsr9EwulrjF+bUv/PMtnLAy/RsposUXzSj+qzm+qX2zgj3//pSGS9jMVsyxpGxdsq/TbuGBbpt8r+nfSXjW/Oq38V1v/Emqddfh8fXBqUhxlfvAH/jAJaW//JTWLT8qRTinAsQsDSnCCIrvBllHp4FwKZQNOigA4bKmtsKYqQW4KqsSNk1y1BdyUQ/HKR5HaxI3z89wVzdW5Ol1tTN24Kp53MCu2bxi7FB/MjPMbJmXrbQ60mxRNt22ytdYuIkVzLFJrtJ1H3E2KdtqFZBuFlw808xZnmFibYn/kmqyHynlhOYJ+MTr+jixHxn8py0HxD5BiPcDK1MT0dTU+E+OtNiFlzjx8fUCVhCrp9AIiEcQ/DlXkJWpuA+mFwAoXeEqlVhSLtB8uclAq0nmoyH1dOOMwbf5Ju4CKZ3yvFLTqoLE4ZwQsZoZoOugpHDEwYutpQMbNiSYhG2HMUhUYkJk0LYScTchxNSHH1YTsuh2Qswk5riDkeIqQWy0hHxg6OWvoWvA1ucI7HsZDQdhgCNHms+6SHNEOpDbY4bna62wY/Hru3W4jc3pgLewaPtLfY4dTYyIb9XuRP6W8aNeX9BBTKLrxoGtu+mZXdX4bUAkDvMv/6e4DdkPIVdW3zilF7b9CziI/owTFkZC74lWWjfSHv+jqD6s0YhYL3ZeJYXOrs1fkp3PpcH/ki2Mc9bLilNhovnZibNTA91kzIdIkjLABj88QIEYIDozWU938PRukKm6TVuyMOaesrxlz/Lx8HhPzCdcVVFNzQn+JH46/EtEKuNi+6g8uc1yv6UNITvRNr3V/vH26+Anq7S+Z7MkUve0N+3swnyz1Me9hP27Eudi4Obnon9+QdR/JTxDyvN2hXXacNKljLLRNfD9PDRMdj63tBxyhrYUK346yATQPuUnFepk/JCW12JdDgmsIDoLOoE/FYiTFP2N4yKE1dz5Mbifq1rwz/KLiCc9CK5MccaIj1F01cCs5p7yWrKjk190TAcysMPPP8e3gWP2aDtfygRSQeYzd2L5LckzLvKhjaGMl860HfNBU/CovSpJsdBPm8YbBU///pD1pd6O4sn+lwzvjg4LskQBvgJxe3Iunk7n76vEHASaZ27lZPO0b+3X831+VJMQSPMm8mz5tVFWqRVtpBam5xNtCPHNbqtJkPnd+Llh8nrwtTLcWn3seeVssz1eDn/GF2oefoSo+LEvMSqhQ9bLwu4LOC1i8pu8LcX2ra+bgarMuzCdZmjj7Wi2MmzxuO96eQ+iHAgz5UCTvS0sAAFPeFeJ9sfxQrCpeAbFZ8q4A6+bF0lDrfeC7gqzEE/y7wuNUY+2t0/FWinkRfxb/kW7HufMxqS45tJc1me/DC7G2X3U8SyPegKGFS7iz+ZfyoYqtvx782M8i/4Ux0yhoxMwiFmctvVlLb/qMdL00CeK/SrAkeFncCwm2sNjSoe6o71LiqWm8YJjWb9PL6mePw9NUr7BWagjADZvtaO+79SAFaQLWRK4GsDqKywDfI47EqchOIUs8F/OF93MSK9l6lNFMcSaQ5RStPg37YTuVUGd+VRVNhVGSEaUyp0oViZXRizOgbge45bzMPG8lZM/3Q9rEuYCckCQJWvgrFygBEEaERG05s9mk54cT+gQd9Pyh/1RDwFEDiSvCSvjDYe26vNqlYI1K8/jYrDOyVWdkv7NORsEzscyyN6tMuDxiAurkL9Lpv0xny7S6DVc1G7g/TuSZ9AK/fpPlF2jw68Ebt+v8XUA5Zfof8XIJhfZZmsAPktSq/Z2u9in0Ham+yYvE5SwGNs1QWMzHYKf+7AifTEk84hU4Lpc8M9wST2332euNhgnGmrKZigwxwH4Sc+4rPPfDijAaBsMJiSfCYEZDfwLwtAajYh7UENMAEKMKMWRDQIzriDEgJjUEBxa/FiPAGEFQQ4yGgAjriBEghnUEsozqCAaIcR3BATGpI3xATOsIsCNkdUQIiLqW8RQQ9cQFYNh0pHOODW3O9UPIJs5szNBHcGzBAMGpBTGHOLPgCEFuQZVdVtRwimCVMI7gxEYOEWxKnjYlT5uSp34JToHq86kFOYA+s6CPILdggKDlDaboOqR0cyrtJZPrwd+lm+pritfi20ZG+nO7B4h6cymk7QKE/RAvDjDMZzZcx88dlHpnDjwIHwBzJT+EcPQLj70EwxHeSTFmGFBNHaOY5qyCn6V6/KAfCyVrkYoThP4t9fNeE7fq8x8QSDV8oR8/qt+vGjiX4hsmQ+aCo1Wy5Hmn6f8CkUCwTkQhb7PGFCuDFeRb+DgXvMcBIEr7U4Ouz7JYFwWjtus/qUGb8z9M/Tm0QYSzFl9d9C0mC2iZAYR2ekOhcsVEFqOQ0W53KFS22dwMGaP/diFpkgz0O5rCwQ9+OiTCrASP1abii7aOSuCDbE8y9YEQKE1PyJglECiHa7jUzVR3L4Qpd3RPiajiECm4Tw1RcIpu1/njh7evGAsGjE3wymz70hivi2lJQaB5nITTYz6cE2JV+la6X5Me1qVjMkKVjBPxBhNKGSG2gcA0Iv4VRbbCB4dSUVBT5Lc0NeqbNOp8RlB9FS/xQ08S9bUbiIRA/IL6oVra/5oExC+qKdgmDYuv+6NCt9kFTkALT1xKl48glTrIjmeFb/rLciz/fYirMIUHXH3fD0g5nOr1jkkwvS6d0An8ciVtXPsNiNfFNqQ+Nay10gjRK8kNToj+BJwxdPnmhgx0BWAE/LprillGMROILb3Qlh75RX1F3H1S9cAxSIjMIow+Q3LjEmlrBGfMs5mLdUyXqGL2Iyl4HRGgtElN2uNjrULoihISb1IqUU0irm6wPpOCRW4hqphUClnyF2csKqpEgmXJkRarR+d3tiLRG1tB6NwEQ0IXJjgi9KOYny5sZZ7oFYHxTHsPPps/Po7CBH75bKGCi7Jx1d2rs4Baeg0LRl9x6ovLGK9cx5t7DnW8hecQil/5NlcHYB0ADLZN03BSeSJAA/QEEFiQb4gR2CHMde+geoWFMqw5MA7qIEGOBcXIwFigAM/ZOR4iVK+DvcqyWGEYnKiBBFJsa9NXlVezJZChBOLlXKDeXCTKcGAoybFGvZfNlj0/7vd3stWkF/T40JY1hrZGuglrdkKo8ti/2lasS2Wi3MjYAlOMnN7HU2jlLXdW+jLsSHDSXyQfY5zqZ+22tQWk5/p64tVBS5JJxAgtSJzidIre0ZtapR4pc1So1o60bls/ud92tnxknS0kY4TUYQLphtS1TSC9npRKzNbjBNT1hzr9hVBIsfWGdCeKtt10LYVeDqV7E6ihHnCoQt9LwegF/jd407Pu9GUuQIkvIN8uVL4VR3OtOJJnF915hvL34reL6xr0bC5TaLNuOW/e40yZqBbsIqBmyBq+AoSZGEfu3syETdS9mQFXnGbmCwji0ELk7h16pUv3htA7UXQMsSCJdE4XtZFFsuv1wCdBXs5FGC8EH8ZVpu5Upj7I5cXqt+dEDOTd2ULM8ZL/mQA97lz4dCEColTE72XysdfbJnaViyC6I8+h4Cf9ecwScRFf9MUcihlsguy46C1WUD08r7sI/YmpJJ3Kvv0/Sje+EDzOb19deGItn7LHD1fgpPE9NQF0k0wwu9+/iMHovbb10GnrNGnU510fzP+vsv9YsjEJncbvBahay+9A8SpWNo0TSMW3F6f38Hx6D1KgV9HptkPJ28x1/nLz5QaWpOGNyuwWD6JFeDUmXhT56f3fMXyn3AspezfOmAA9tq927QCHAgEnM2cwtIlgq8283uh+oYiF7sb4Z+PZQCi6qNrqqAQzcdJkJ0b/yhtDf53KmYzxTE4YSyG/U6NkefJkLS8VnT0ZzUR3v/VsR5weYaRZt6ZYf2IBU4N5BA+7IG56ZLMm7jqazSFmuKt4ns5pC9y9VOfl8bsArl4TUr9Ia3TXKSIavXIGGJWUtdufstMqXadq+fH3i+/5BOSw5jJlMcg38kGNHNxWIrVe/vL43YtrKMT/r4UcWZIjcfBb0nNUClbbZtVomEy6+UR6ZAadddW1lwjMjghMY4s/XkVsFFMNoBbIZuFXBtRWWRo59qOkuYufNIYfYhdNOo2qFlK6E2OnPpewwYO/7vrJEgQEfii0S7htfLe9vaJj1lTsfpA6e4hjYWK+uI/hJX5cHjibgv6SuZiSP+PDzs/AzWHUNw3nY6lvzMKLlK3dwGOj3JCmeoR7KYFV8eaXDTPMjVv4bOKldNXiJ56fLSEe1KFg2IJYI6aFUApAB+NjTji90atNF0Xr9Bc/EYXZfmoXXiwHtzfmsjKgvU8NwlxxBqh5DYWnmjCWjEEfw3KE7G4pY88rM4KwwjT0W4TVr1GYOKXsvJEySBbuvFgnbF4kAa1vU9rEmrS8aeLNV0ixi0sx8zAzsebUlbAjStCwLiWI71KiCVhCoAQVNqpibanU1MW3nRHuXEY1/c0ROld0FNSgS1g/VRsI5uhvr9fGuASyHjah7+CI3J28NA72CQqiaV0nHNXMm2bg6umj4EkiB/pEfWxTZm60g8BTlp5eRO+7NU7SxVpLlH7zLzyxKynGLKbag+rDc/dar0Fik/kgjziu702kwa36VN4nhTx10wEkef33frZkK+T/KLv9Yov9b4gruf8B3HyFt3hCPmab2+vrP8MrAehqdavEFeJypxItpLlARaBtnT+zJ5u/aMf3hbuxecRibUFsLYD0spZG/iKN/os0dmxDmzJa54djfndIsbaYxYQPJgCWkiebDTEWf8etfG82G7l3fT2kT/FoXQolhOukMUHQE9IU5DkcZ6JIrFBQeFRa6Peq8ygVpwdrwsEFez4PFu3eJCsPrjJ1Rtx811nfO50ZIL52gyEZ4CjxnT7NI/4m8RWbr24woQEwljc94jBz6OChltg9V4ckrs3ZExxp4kEb1zE3Ff5SHjIm+D7jX6X+XJ067eeeg63q8sv3rdMKdhNSuvo0jvPTjjFHXf87ht/6BIaY8wstrBlnXQ1yCanH3RWA3LzH/Qk5c7cipzvBKBA4ifjURxpO5zWtF3AgcyQzEgFak0NmyHwIZN+QQaIigxRMIkt2GGkLc3+69SDyKKC7fh8igzvfkcjdia3WXLZFIbJy0TMTXVVvayaYXKfnDASZlIC+bpa1XGKM8YqA/Zqt13sB396yxWZ1ODerwXwUZcJ55TQWeUPE/bT1+ZQ3CUNLCJzDZnalWyio3QgTJvE9oE2T5EC5FxVotWdGu/NT6kQs2SgJmz6nqQu2EGKUmjhQoXMx6W++m6g2pq8FztV1wBLjt6LfONG957XtuHQJbdrSYNo40UYwg8t1/xVtZqKeREah+wLR9B7xvyab0BTSSDeedzgc6idzyLePy/vVcrMSMl6YkLvGBSXPLZKE+8S7q59RqW5ElkLRaSo2cZoYs+IU8kBJTFdYinRhwrJ5vsJKSY0UlYdWSqakSDjgZ6SYcFo/ImG/C6QdHWZWUiXZWAKq4cfjK7rA8EKFDUM9suVUfEhXvEvDB0+JHtRaKI30pTQWmnAYTg76xPO3z0Wk7hBzDnB+8C7rOlr2dr/IXR2JQCS7/8sByKV6/Ix6jVYxgaCxU/hD/RK8cJj6e/X2rXowhgGA8AEQwkjDB/4oSD2G6u/Vhw/4AAgDAOEDIISRhg/8URD+OebwGSQbFw4ZXYsxLeCJw0uKtfIe/n+C/3/AfJtDYIGBj/iDPmmHKWrNjjCP/tDuTcpkyzMZ1ZOe4nGtoZ05mbpjqFh5sFZnWGrxQj9t3Bzi5rYUc4iKMZe5KUUTxlK8gtu4XSyVP0vsiwBs2/vQHKrpyeHV4I/QAOHXEymxai9B7WViLw6/RBN16XV5x7TexVxWPvKT3TEziFZEQ/bH0SfBW65Dul/IoeZhuJEBaOP6lk40BzOx0OJPwm+4I9cBkWEDRRA1bGoBDKsr8SPsVJmTCDg860ydmQBtf1jOVwJ/zjg7xafnfukzEsGPlmaXOZ3YEcgx97waBQSwFewb4UMwEut9kz9AtZp73O4LxO3kZU50NfiLdJt+9o0T4do99gt9sQWJlM3uEQLJzZhvq5iejlk59Ea30uJ7Z/k2hq+7n2pyzSsua5fuldp25ZVdKmKfHzXsaNo+VtqMjJo6Op6aDnE8bfH94GABa1ZfKFZyNfhP6pZ9h+5KsDMCSfX9rt3jo2Zjhk11pC6B8rv3eLyvmvMe2kru7onl1nz8CR8Drvs+twwNSz85kdpgcPkM2SA5+BCcUERwjeAKgYR6BiJcy0OMVitABG0ZUlsEmI8cAgR6ccjvhi1wth6t1hbvlL3b5X6lBk4YOONCPycztVTtiQmJfI2DZTy/pCZCkftIHhvknfAjvwJYFLBEaOnBeKbR7heBvHStwH7AKLTOyUxYZSQKLVdYchU6dsiiqSVOp4ZoRE38iDNL5cyQQa7hnvokgrDuM8C8ZiF9VtUJx6/AwU+wkujCAhQGwMGZ8if6aWvA1gwjsGvZJZt4Vw5Ddsaxm/A2Lk++asG5e28GvVnLMVw5EfZnDdy1wvFDy8uFESDqEYeIOByqriO7bPQUjY7L9gpm/Phsh5ARYlbE1lL8H0XjYgIwEIPQhQQu/2SW7r9HFXiv0QP72R28HB4B9yZLkhw7I0mKOFG3pGEnBv6M+fFmn0maOLzYp7YLbtp7sHYSpLBRh3wOd40PPANej1+Dv4MNb1vYGfamWThsj7BsYyY7uLaTVmLMSVy9pfqoeVStNIqmK6SjuqSU2OUudc7o6qyp9zSqLqRuaSTFUpyRUt2qc2qfupJacikkxdZrpVTqTlr9vKnlQ7+VdJlJrfj4WnDnkJUKXOg1YKtvEu07NldTi51IeK7GGYzaZ7AZHSU19s6lgCf7mYaRdeexoZGHDTvWq5WF9fvZu4qljGEg/Co4dOaDiQt6/M/YBXd35+3ZpJZ/irsdGt/NxpOV6SJuf/YUUv9T6Kun0Aid+Cm/M33csXteVjHrvvfeWvLey8OrYfOcbXsonBAgHR4jW+THDTq/WsRbh1IubretNmp22mUgIXpv/v0MOSoRgabWG1aDq0PrF2cHpGue1WrywYKLxNzrOxMB7QCdzFymaS3iMZ0Fbc1h1lkm9/XFskUsA0k43pGXHV9WDeJdUrsUScRX4Zrb/DGcdRLiNcgyejQhhY3XETrt6/5O+2vQqAzPoRDPpLD8LXgymOUA0/jdr7VpswzUUQQlXwIFz2FcDeteCqtrWP9S2JpmxV4KayrY+6sNPLL3HJVYW76lzDsGx8G5BxeMfEOfpU/Sp+gTsDbY8M4rD82gObSAltAKWkMbaAvlICWMWsRGidAJhD1OwWk4Axd2RjgPz+B5ruHC+Wg5H4P1SDU3Y/eR8S4pSMRZTPHAuOmjUmL8RR1rPfHjy4lNTVms+pnnOJ+BZv1+BOLZCIiIO/aexDtt3Ol/hdW+V+xaMZDu9jCY9Eh/27v9mvR38fL2ybY4FjBgk6Qpy//+zYxkIWPIscd37hVszWg00sgjjY6ZpEpjfVetUVJqf44OQSVyamlzM/Rod+E8xj9J2OJ9Tjvvm8HI8yRi28szejQC0KA4syxgxVCe9QZgtIcYN2URkpUEG4CHLhffhYlyDR8XBT3kfTz2Ke5RiBR87IcPKTRyHSPOFc5LmYrx9H3dG/dEt4uL92cea0ciHg8y9DR3oBGYQugjAlBtqeJYm+6kJzKeZdQmAWSR2WSUSqYKa7NuncebmHdeDMwJPJT6k66PKNZF7rEASd4T03mblcydjoZMlluArgYMtgE1DUijnIjZa0MIEWv5XXmlGtHJY5C7hv6C7r1Smb06ff8OkvuzdElHmMP6D+ByL4JqRF6MN9GjbqeB0C6jhbnSbrZa5FHriaav1Ia0Y/Vyx45V61Y7Vod7dqwOn+gdq2JFzizRCb9PnHB8QEMQEf9+795zdEmAFB+7uuRvSe8l4CQCCbK4RTtegMHmrQfM9UWSqABSoxyKlpnDkkwMZhSb71sfZgs34k6kuJC3Q57NGbfHZIpm0la3MV76v9y7p1Y5BV2dVKd2ZIaj81YSHiKVuX0WXju1+Bukfyand+3In9Gd8vB5As8ZJD7LT/Hs2C5SaOmv11QBs5B+U8vcjEstU0G+W8v8nhbBvDwO91TYT8V0K1xXGy+mnYgj2d/XSjx2A83Tf+ApPst1ADNX3hk4y9sCRJNZPNb7p1GY912uiERIY0t0PC5EF/FYS+75KBXZlRpS9krQLWS4uQe3nD2fzOD65wV0/QeMgKMIr8jgdsDOvVp7BYUneOYbjYJ5B1dJRpPkwywx7dyeFyvtMrTB4HW3HYfFaUdK11sy5G4OfS/sSj+SthIIhCPdNsPYe6y4kIpfLiM/0yYJa7RxO+N6DCAaZCUX5yjjTZeSvlhCc0boOQUmGR3r3fQjdRVgRTG8gnit99GqmMrG6vfYU+bZ0F6setlZuJ1Kuqmd9KRPG+8fEGmknXPN+jU6ZXBUBivfi303KCfrdi4nHvWDXjmF98/WWlsn1h6lsbZcBWRMTwTRUIxph0VHTxX+UOQfL1OcLGDwA2hVmpuFG6+RUH3q317J4XHL9eohq1OoVa/OanUzbET23meVEXhligbIFDxOYMMU4JpAsLAcmmlAvXMZWEHUu9YrOagL2SYLDOOeTQIHvw16F19sUqppcNzfSudWAH2Bi6eVtkpw9winKRVu6l7i1YERqg7sju2KCl+c8MHRWQSFvzSDCAwgzEGgDqQHgzkR069YsQ0M0HYUAi0FyTkF4fzy+XVBYQemb6Eh5XK+7cbBXUykdOtw99gS1P/9UU6/ztw1KxtqnjkvPjuJ90y8kkSYFzlzmIYpt4n4pOLnbwmXqbXqXZl1zj3ZKEdjq5M19jRpY6e41kXR2C4VggAvrp552yUBTO2zrj4FLf4mYI3LfCpStm4n/vNwKRwXHibb7n7mXKoNVDW/RhdQiIdOZOqdo6/TSe1CuX4PWctvsprUx/5Ddr7sHzxmR90ORB2WE+jMNcBO8+BrPgrZcLmcB43G5eWlf/nAn2WDBoSVbjX++f7dSTyUU3FQKDRmciU35yqQhUHNKT33IT2fiTnlucwx2w+N5uOGjnkP/BZZLytZk+myr/JFcqrarNFSvz5wpTPuYe5Bo/ljA0s+kLoVQIl5EnpJRzkYxi9KuUHFr4ZbrR9jywMJOO50FDkJDfp8dRms0gjGkzXBA0eEif8aNaBrZoCEDead/a1xwYEU5thF6mGzBSAkOXexOwzK63AobjxsTLBJtONkm/AnIl++LnR5gxV6+qCFk3cRCEupR16LKF3E5c42xs7G+zzlmaK7QNPtFXmNxD+qemlRz4w2TOudZfA6z89lcjobyzTXYlze3ANAMM3DBswR8mUh/FyabMkszv2ZyEf5AXot0tmKntNqKBC+NVsHAMD/ZXyObicP4AGtQPgeqIN0gcXPcnEu8+WJRiFeP2sPrginBAyK0P2t5Z/rgO8HSyR1oD2KIhPff9EgKqTTsEqzWJNJiTl04B2YjJUUGP1Sr95p2EkIL4K815D6n9CY3xcFoDmCY3CGes4qGPRmlfHG/lo2bpJNo9y/utgjcSxGT7OFR8+76AxgL9bCaWCuRjIaQOms0a0XN7j7tC3L9o2100BkA9AWfaw6vewdRJjbZp9g6oe2xLN4zPBjjEJ2HXs2ekCZMReZHmyPFqW1IviyG8dyMoLh4Oo9zuSJEjBwa2VsyEC4fDSGItlpGOXYEdBrodKJ/warTW/VWUdlSoH5dATs18eU/ZPn1RDNTqeWnk+ukOZmrnPXIaSRzUCmIp2lV3iHoDRtamxKYF7sSNdb4OdTjAHPZ8lVtyMDU3N8KVqzhs1ZacS6F3l1hngQM2fU3+Id1q/KEzfdXSxs5r2iFFMOcGlzwFDZO9Skir2GHsgBxOd0Gaiu1Ka8q4QLfTs1Gb/68WzK6jQuXG6PC+7q7n3oS5r/n+9FY9dj1T5k1bxxvRCj3ydEJa3zkrSGahR3V7ck96Sx1EsRoC6W/xclhVx/nEu1HKzvsHY/nT5s+nAA9ATZr0BJQ1RlS1atKKY/w+JePk7JHEF6tpMF+J3X9eeVkemsTMTCCErR0ByioTncNjRTl87zhOnGKP/5Z1ZJREvdMNFL4awOKzoA+84Y2wjBUtgs+gVXakMLgnnw7257VXi6IinOkm0NRnne/DaDFPP+foOUrPgMq/17bNJsY5PiCbRFJyts0gUeNKqalVlvoW1SfLrOJt2VWefck03cySbVcins0ErVSOxUO1UzfK9UzhAhqWCNlrPC1S7yZ+CqTtU8+zMMQ+E5OqWPKa5idBgypQqlN9ytDMe8qa2fRXX8UR5jzJd2Z91G8Sfk/yv1tl+1qWPAO8auAQhtbrTXYIf2khQGhHoRYUvqEREs1CA1nWIPekQSkvZJXPOCYs+q5qi7uruo0VWzFvVfoo4qUq41bCFoSVkf3yCqrEC5K0S6qxx+ksu/hNC9tvGxeXWzL+MdC39c36VOcR0mo48wU7EDzE5I3MvO3MoogKnWGEd5MCktNHlG3y2kofYvNHi2UflVxC0sEIQgRlM0RYjVNSXuWVJyV1olNCieDjXuX59nWlXC2OpoWf78+sOnL6fViaSyKxUSU0g7levcyCSPf98XLdPzqeYdCqDnP1G/1v+XftrdjmkbvSB99+ZltcYOWdYtNTHc1s6/WZKfQH38JcSKELFZfrv8sBOYN+3vp1tXCm8HpENS2Pn5xnpmZE+QXseluxLL7Ip2Xe3de+P5vA0Qh44mFDkY4NcKVxHL4SgPw3AwmUVi0l7HgtxQugWYtunba+a6jutGIRFyMlimHWXSwVXIZDZlrn/88f0n3KfPXFddKMcYCNouiDnDOjYA2XLAanIUVE3CbSjoe+aYD7vthfznRzJuHfZ+FGezfNZf+rAXBTRpj0zkVykeMoBHPJEBECdGx+/Jeq1aCXdg1nhGItoT1ED1Debi4RHZnsPVuv24IrCw3TZKZl5seONYTcO3umQ533EcI/G8YkHBBtMmo3/Z69unBvr2WQuqS7qXLexaxFI7BfbTa9hHTIv5tMR8s5NWmab9SDsdMm/45NJax/j45RRGKuaGodSZDx5RdlkKs7ABUkTmS1/FhQslvMShcLYK27h+iHUfztzVLt+fXyhGH0aupV5Wg76AvtAidZRnvS7IJGvHbb/YfbrGBHHo+9MI0FJ04QgtKsy2gf8KUjIVdSULBccER/DUJVdcChs+5a34D5IPcNlO7zUOjxzp9LkgxiidJw6GEjdnjpgZaIpNEtwgMG117x4oBL+qbY76/gzGD2fAd8P5RrfwhPf5wF3FjoAHCa+9Mz4AVtZuYHP3sPnA8GcfBzF14ld8TkdDqGpX7gDyRpSXIJTT6Aa9yf3rrwy1oqnbd6E0dbMJ4OUPm8SqtMImoY7oBiPHybF56aWVgzrlWbKN6drLanrtzIb3FrCMNlYne7bSFUc35N+VGXNeK70hlzdIT5D0JEovQjHC6xjkMSfhYWtxakQtHC4wiI3tggDPkPl9cRBGbfztQreeR3jsCx4uNr6AHaAWYZKOy+O40N1fkFcVdJyCfw7PUDxNu28MHAphxKVaqMaivhyEh22lw2JDahECsTa7z8IwVZdSMWXE0zAtnU5y2wsn3dR9yFO+4BmX6FpIAAPQouGqiNQZqB62OMLfYOHHPAoWHP0HnedBtiZ3eQJYN+6RYTc0DDO4j/sd3tKmPpzBvU/6PXIU6/djjY4tyRNqWioa2cCgHJhsqq1Bc2gT3sO0Ib60hWO1ER2VjfDsmVG0nTBCT+p4F+cIvvQISyEE+Ik4MAa/SzGA0rCbDADuXziaRM9kPXPLxxuSzdGS5NdfqXpyizxCuTTUobReYr7GszDhyKy7BoRh4nJTkudt1WkMBeomMPoAC2XkUwZ69GfSv7RC6kqQuNPXZUNzaRXR9+PIielb0X3/dYI7If2RzNDcsYqb//7iSNcrJYausBHQ3gSfayeaTDzLEtIj7c1xt+JjxyPwW1hhbysBSjMhARN3pX2e4dTuj5m9HaWhmbeJ5SxirpPAIXc3SEN8VS+bsXOt9bDyezYOY+GkvImxkeAD0K6lD5/82B277mocro7lxSiWehYepPZd3B9cFXD9RMIwnOFphDL8Rw2vQh5qyEdytFSGPSqokgFSzfvYlHoh8SxBGfrE5YqdD+fTSGZlYKsJedNlJVOrVaQXhw234Ie6TPTGHcBAiaZFYCLctV4+uO+MvYfN+zTzQuC3WSpV5Rw89ksdYBi2HsAJ5u6wPYSPZ+wbimqIKJWIHhEAg3iCuTJ4jCjeYJIXjtvDkPLbbU8K9ji06AJW68cQphuHGEPlGL6BI+MhHeEsaIaEbyRxtOgdg3Y8C17pXwzgMkSvx82CwLMBYNcusTcls0GNeTPhHPd+OHPVw4Pi4VA9IBkVSJFeHhapP1Kq7/s1qHU6kAlO3JjX97HkR1DyQ2S8HIAYu/1oIhPAI7oeFQMufF2gRXEHc792OpS1XEVbn4qrWiRrdD2kJpZLEY99Bj4BiPKHWS2azZY0Z5zKZCQAckgQbUCmg4IOng0/n9dmWW2OZ9FrFLIxO58vIQu1LzshRCJIPJ5nEmCPbBhGhL0UGTCH0RChEo5Y1iZS5Msa9JXai09faiMKUgylT65q8quMz5EJF1g2Dn+VtOngDwbSHrZT/1jmcTi0OwvYAHbXKTIzt6172li5kW8pPflh9n6WSaWvcvcGDdxDTcoFKdFCaSvlqhPtiYY0KnpgqWh3oPDhM0osPUxaOBzgtGJudDBfqEBgG42aK7UuE5rUjVGnIpD6sMYIR8LZTnN5JWUlNopYkKas5OqNbcVpWxsZxQvfiR+Fq2fnyWgJMRdfHwffHIHKlbD0KyiT1+loORJLrTRFWamu25FfUICPrnhBcmcAIlKQDr4m7tswT4MsLOgJBT6D7mIQXBUtqsQF+u0JxZb6tnBC+3jhQ/7QG7p8GOJPu7WLWOS/lVkkwWTHg2Kv0+PZVIzS8Bk0ABDeKupJuajnwrFLazV5qwkFYTZ6aB/uLtGkYPj3LsUX7TRGXQb5MLLUbTK9/fv7WhE9H2PAW/kXxDyUHvmo4sOy/l+g/p/v1v+g8NF/kP/+BfKE3waWXm4CHBOgiGpa5H+QSz3+loQw5ENvQbQXezK+/FrNoNJRMfT9b7GzvxdxxHPbqdIZEfkCxw5/Ckpzojo8XQvppuY6hi8ip3jD0Dq8h986TwtNob/8lCKDqoWQFYyN/gwu68DPvP817BVLcqhkJ3hiqThAF4+mjZaKpEmrdfDC+E2HAlUm+FtkOoRMNxQxmudWEWdtNIDCHv5+CZtkMNHPnIKp+6+0GlHmTZNnBJxai7hm0nZ43zKvPCTk4Vz+uX9q0uj1nx4Uhe3yMTZUjHWh56toWCH2RawMAZfABhtfhvwnUHJ4pxsn+/gKenhtsrcBhIX8vVqIIn1pSBu4Ll6RjTXZMYqTS0NwtIfeILoLvaZFcbqzGRTVc6sBrOoPNtVPTPWlu0aAoTsUe1hd3I2oIfhuB6OKYnZXNg1NsacPKLrLW8sf+lvkDN1NL9gILNoqQpH+JIg0e/b+9Od/jP42QnVIoe0H52pmcCIztA2YC9SfCXSxaJOhupua3UxFMShdPjAL4ubwgP4xHFvLd1Yr90UHP8sjhz4tj2MlctU+canT9e1uF6EYsO0oaU3E3AAy6dlST5dwZkp/W5UIdcYvnrVW0B4A8BdqFURYYZNv1eJKVgn13dXQWaFhHkQcf/Ig5pdRkHBtdwdNHgVAbSkGAZSbBP1N97vY9iiBS5JmhZZEwExUMtK36BFXtCuYL16/r2C2dmK+/nRSwTwETGSnH5X4Mcfq4EH4cAfQxC0vWes4KmPKv0KgEDtbwM1yMBWRlzfLUArTmJ4Q+sFSbQgax9RO23cvSDkJRxDsa7IFE6rhyO75lMkcz2v9Q5s/jLPPcoD3ZDOCM5SzULJIKpzdQOlZnsvMAIDUCVj1+KhNWbHW1br8jaRPhudL9GF+Dem31c3Hm4knCe0wIt2Pk+QEnXUHgn+Ql+ox0rZ+SjdiR4gZTBx2OcglpjPXj4cyHsuEKzInCa3i6beXIqbXNU9jTulNHitlG/0ne1fCnTiOhP9K3t7HHEnmZk9CSIdJADcmx5x5xlbAHSO7ZZMJnTf/fVUqGZVjhDBk9107py2jr0pVn1S6u5mncNdQO0kQOFfOykpQ7basifsRSEK/YcVKW8KBRROw6/YGNokmLgesJnzKm4I3YdT7KjiNim4hOzArNCyKCIUYhFTQp2he2HXMuZur+dG7aDGfL01plzaPQwf7UtGwk7BAwKPxbvuljdbnLA/RQNk7atZEYuhEtrKOXvb2mIjTqDX5VdeWYLKljCDSo1kJLjEFHjlTRdRQJ3WXrgfzWaHfwgeJBv9D7SSmL4XwKJcKnyXBVLryPOBRoo5xR0rKB5ujqITuU5aKokzw4ykPioUAu8BzzKd9BvNLcT43PuqsY6S1ABrngi370r4iDpI14DiM/8j8VpbnUnUDhvcdJmD6JAwKFcsrrxH0m0Gn02108tIkDpejRcJQNZIoderC+idooZJZhPMPk3LqQYrGn4KuRnB3T8Eni+RhZ+H9iUu4rGMi/kD7idgswJxCO0y6vBDL7pNU4FSd8NJn0kARTCiPrElV6HSEH0eqoQhZnntMzOM8h7Yj+kjSP5nn0FoUyMIBUdGpmVm2JfrF7EVNOpKhDMG9avmd+BBnaiXHegP0TiPN8PHE0ua68K+yCJS3ifjohZUnL60c1qwc1a3MSitPV1Z+SxV2qzli8/SxombFDgJB/abWBWZH85hXyr6BUiv1h41I8uaFGBUIEkQ6o9WxOZSvFjpJZHmzG96AFVbIkSWQOAwLcNBGYJyipNLpYM/3kQ4xkx1qhl2E7OZFZQd3Q6gtrwJAxsKqu0gTLWLf8NurynVKpQXz0lwHNf0EraiJZ9/uD30e5DMbfL85PG1MNGbpEkysSjinEhqp3w3CYQb5KEEvd3ex/wJSvlwzHqUC+inEVu1kKjlYzObGwcMNZnqMRcrn6rK3gmHvFP/EFliFQ7G4SnTK7hnP2Sqm44Ox1GAPIVg3rjM+SheQTKJ2Ce9tslwxY4IDY0ShgXNU/TLmD54ojzJJ2EoCqRPGWG+t5ThnCxHnRRx6QfjAirM4KZgA8qjEXFXDnBV4kgprHTiKvuMvTalGFnqVoYqYCVnVEUyteQVJJwhnSF3CL9+ivA3RtyDW7T+2IuuNtnoEASvUyWqBTgKtWawzqDdWr1LcfRu4K0sI1xKsY59wsp124Bg9MLEV+KN+8ETGL63Pvjk0g5arqKkcqxgvxbHmOB2wJ8Lqa+u4qCakhGi7ZPXTR9ae5GmyUONd/DWOsc1Q6WayFW+M3mexyLVkdIWmyvV2QGeCsQ8M/YjPhm23G+zsLSZJHKqhFJdg0FhVevWd0SWECJHAWEqNtbCkubFxxOoausGx0ZDwcKedffT+XVX3BpqTUZ2EJ29wvZsR8LudBYzFAirhKE2LLWV9v7Ms+UUCy/9WASfMTm8H6BvGgdzMu+j4R4e6SUEZXhADz08HAxxRXAHNDLXDVxbafTJizYidxPOPBoskgWRGnapzG72Cl3o11UrrgNoY+cFH8hWnDgzpb63VcsSiWGC0b9RRNV5lrBH2GMZxXCL4LM8x+Oinap/uu8kmv8EArmDYCatQr5/BKwOz4Ncev09htjg6hkHYb/StoR9B8lkq5kGBH4tlZj56qdDJmXxaJcPIAXc14sdAvq8+El9LH5ARLhnbdgYwdfGOYfWyxy178egHOqnyPBbxdKoa/PGCc5ZcxvcMAi1qmsi3IibF7z4VjEcsgh6G1LG0GtCzj2H13uZWi3KdJM0Z/YR3wUJ+e3s5tQrxWbHI2jyqr/ShtHQ+jwvkZm7Hf78r/hXPRPoYa4J65TNM2aURYel8VwFeIKA3R+TYS8GbCyFB6ywJ8tkNC8RwUciCFC6fzHaVhpyitsIuHkyu6R8bKemuUuTnfvfkSdcqAC8fDXi2oW11w48vfc+/AODeKXTWPN80pDFFdqPSgTKxC8xxVnpPCjvZGftqEVOgh52BCB1PYNOi1FXWtCzlcBCISHj32ma4PibowoZeH+IiqB5REIjcQi8biE9B9BPpdVmaajsezlLQYefzgBWSpQ892Pt5H6hhraqfQw5Djpa8j/2jk1CCl6uTQbjJCh5sJFUXKmrW0gSwwzTSuwUk4LO5AlUWCvtiBJ2AQ9H9JQ9nIuXrpsjkXcqydZeODZernypxYqLFKfSC2eflXWKgMOfxdLZOzjg4hAg3P2pN5H+PVW9KLwWE6wsEgVhv0GNAS75LX2d1s7VMFcvyEpY//Sbm2aL4gcM9r9HR0U8tvQxdRtnqSFcvQoeo7mJDE3XDJle9V5o2jF6YJZ5IGVEEG2nMJMwzvJYzW63nu7tMXyeD20t/Q+Zm7u5EebJXxK0ObO+BvR4UQG7nUV3x30DiQZl6cPibXz+iPyvF98CIa4TGwFktE0ycZ0HI6hIplJSsTy0qBcKjL7QjCP9/AxUwkdtxD6SpW1UVSxy5M9fkre4gx/6fhP667EnxUCyzyqdv9Cffl/LCoy/1qydi6KMvZdJXZZJ/AdHLm4kgl/oeH2L6rx/1ut3u14fHR08VK+G2hk4SM05mhHRqm6Qg1W6RAk/MupgDbMCmagMhyuRWsMF/E5vKYV3fqKKsWVl/tDTajn1fZHm9N8bLHjf1CX/ZWwq0KW45bUsNB/LKtg12vu5buT+4RawbQeJFRysdnjGiSDE6aczmWQKCV4Le0VhEhJykqbaWdrpEx1LAl6GImAB81V6AZUYMOygE7gVaJQwY+FGqRjk1ea0//l3vbNYH8pvfKdz4joG/f7q6UqB+/9Yeevyd3JmAKI2vOf5n893MdTeqIlbubyDXju2q2N83XNJeaZEPQJmDShU8OPz7p+TS9uolaGtcIG/DAL7AOvlbJrs/R7jpZENl6QQiUqNKzhU0dKaAuasEGAdAGouG3FSLThWyDtjLofssCzFR9NXBaZx2oKNgmopTO84skOzIt4fqWqHOAq5XijLG1KCM5bEskHo1AImlqstzDXQ+p+1t2XiF35S78/513PpstaxsVbMvhQQ4g3DKdFMA+35Uut4DRNaz6k61I9GOsl5AwRfSyhrnXlBoByx05Onw46xR8XAVR7/qRR3qkvNGaEOexNyg4asB6zUCe7uIWR4aNHwncP0GVvKDR6YvsoxZZcG1mamLVKzH+bYJG/YNvkOrIb3ZMo/DIDmDBmn7qus5AWFJM5g2gJyHVkggfq1zYGyivhvD1OoKZo204NcIw/8Pw+DShVQe+2P//RjcEQyvh0iCPIek3/xznRplrlp+zKKZgL9uHKihcuEAZt1gebKK3rcbqjYSc5FlybJZE39FQS2A9cb9bVUVSz53sz7aBsfdoPvbwbib8hu3NTY14tfu7I7me7ydj/dtuNn9BjEihQiRimZEmlBIC9xLGn1n9xvJ5SLR924UN4V+txWIk0CR2wp2+oSuzA7yBFt6dS/q3FuUxEls6xaVqV03mnU/3WZ2IY1Xed3SxAZpPuONaxCneHWsevV5V1WgnsVddx7cEI6Kk7gRnLXmvb3kjiqT2XO668vc7cA9KZLbjVOuiwQJLEDvsidvYSk7Oa51wVjWTuJHRkp9Yis1ydqMuEunIjXqFlbDkEwu8j66QZz0/WUbDCeB224LWCn8wZHXQeKnLdy598brTTL0jHEzypxRxLVoNcp0rJ4imVyUOXWDOCnT3QbDSZlztwWslHnjyOugDA8d2f/3S4J6WFG1bPWaggAPSp+neXES5CxSC+0mlKtXWGPWxy9gUcksTOnDZXoBGn9gjjX1w0HKQ1Y9WdaK6jvbGJxfiYsgWZ2SgwM4M5yHqyvvVhsWImEDLMjtcWnpmEMZMIVspurllyy4p2kTmVbdyUh2/A3XG3IbfcA0r2PLmvWimvXMwtdoJ+tdZVMRRAyX18Yp6AL20zqs3ZtY08FYzavqsIX80ziHBgbl65MQsDvKviR2RWUQCdW5Zbr5vb5fkO6j3wEO/gd1mrMEtl3Q0WfVAM3xbkSsWn5I0rudSdtLmh0CPcwk80k9hkN+kIbFHDDstNAmy54Zd/WrRBo5thPMeKSSOujA1XMr+lK6NgeGyXpZLk8PUbEbajJHqfQr0ex229xpVs98XYvKFoA9o//3G+TQvUyvNoz7rirQJY4MOO317ncbCuGHgjFu3w2nq13ZrSGvUAjFjXAB92yPGNxelw8W5ExTMN0gmIW94St56b5aQ/5DxnUtymrDwH/h+Ra2l1RjBDiLS2SzJc2pX5GfjyzgYjanM+OikUbi7Xz5ZyL//PnzH79+N/2+FoO5GfswERAtFrSRiG/+La+FH6QE74sPm2uhTAA0op9WfdheC2NDRBD1q/iwSwvuold1dCFqW0PxYb9gGrwXLcQeTBu64sPhWgRR9RAbZVpAh3R6TMeJu1A9MbT9ON7ZogqvKDuQt9gQCXXx4ZRi9oNzFgPUUfm7j3dAr6wpPpyvhXCuV1IEeo5jkK3yATDtvSxRjTCO62oRBAkt17trC56PgCctJZ4ywY/GDm0XfbBIugjfLscaoRNCKal6K2//PyNLTPUKEG3TeEjE4Y2QdjAJP46XOkCtAikm6DRCVDZAejzPl6UfkLZHGzqmLjNF6yeaqlcuV7VoBzce7lMKPdEkc4Tfg99u86rqCnCOckuCtXjGXmnFvpAd35SpFUPoYng5IJi0pkcwYc71XN3tcdlRd9JNdtqeFli5KOoa2Zvbc7bcaqHMVIHtZWWTxSE7Eo/w4wA+xMHA04EknvDNchLbk2MlPNPs0N5VOoaMG30QIfG79UW2+oFOJDyTHpQGQrIKK1PDk6BMrRMoNARAgjO1BoIW/kYgSW164bv4QBVgSjU8JUDNAjJzK5033L58Z7xqjQgDApGkm3Q56yEKw75ZkrXPxdN3Y1GLQHje8s4vOImulA9RWq2FISvOntuTeGmNAbkq9/64goO1kfa9iKAUIGW5BQNTkyqTCtCOhd+fRz4bQ3tKgAQMqkmmgpzalMmJtfKpsNwgzvZKErMt00kGwsPiLapmnHCxEh6YfLORBR3NkJyf2EO5ZiubutKlaJleLDUnhOEsqd6BVKJf0VluO8J6YHSfO8V7CndcvZgqie01g5TVaTpFIfsIJuAr5W/wwDwlN428yE1vWsbOhA3j8AMGSDrcaWtv29ig/QlY1JE0u5uat8YbvDzjG8bngq2oRXDCGMpEppoxth/rl9Zw8bQIsmPmwNOFCKymNl9mDNHHVRkYOuVdq2x6jzB+HkdnYwczLsy6RiLUpJfqwWGfynXKXYfCAzP8/ouEWanYnIzyVKtVYHczcpzGb8oGldhZA4a1nilbg+f5aTxhMY0khdwS5eXI76G4fusyM01+ZVQKU/00bSBVvarmvo1ZMpi+vE2Z1PUlz0FvB5TgGaCQOoH1Q2ByDaF+vJjJ7ZepafHttcr8bmmiZRMVlO+L1dA0gNzevrMYmOWJoOObnmTT0CGI8dxU2v9auw7utnEk/FcQXZPXlVRxQZh9rllfIkdr7aY8vytsTrSmypGU017++30zA0IQTW/qbhKR8w0GlSgDYOby6bJ4WEddvxX7ImrfbFyF1eHuq3/BYqw2jtjhVXaexnTzM9nSFzNrxhi3cvL3bB3YHCTI8DYtSjykCZ5UaW0ec7gFL+xWg28ocDuhjFCcT1LpO6hZsAiMQQ6najHNMTvFbSIWYqwZb+nfXTLC5clmMi5utvFtDs+3z09OVUL6ouYQNjWb0Qwh7+MhgViegXkRCf9n41exrFyzNL+Pdzja9sl48++jI3WTvq+lgG2JMB/Nf8UUtJri6RpnKZO6rNtxks4a40S5C2iKIeFb+FSTZ5Xl5/YRZsxr6vLZABLYgDSahcNINqBvZ1mJlaeCsZQJaUBVe17tfhWo57BUxRuSVYQT/MMbqiiM22WANLEyxCq8uIFZY+loX8CZD6sQa6p6q5hnY7jY0TiB/UutHQ5M6+ND+Jk57b+leVFIMmxN1FjQlBJVYvavxdJTCCE2K+1ircau6VSuCu1hbUvbFD4UUNWgC9JjaKrN6iy7it31jx4en98HiWkHqoJ6/M+p8upEvq1fJ44G6mhR1KlPTMtyG0eN5XQSpUmSuizbE3uG508CnshdHlWU/C62zN9QIM1aYsISy9McJoUXJQHGRXMQ5DZj+qxuAP1teJNuLubqlrWkUvdNjPIJmVrWpHSSIsHHN5mR/Qh5reUOVUW3FxN9ls3m8/f3Faw0piHOrnOM8pkZYj6erLSvmoyVBv7rSgPXzyhd2thIhyQjgYrpRtNCdQ48zPRIcujU12SWLLK0AjiN5mupICvNEmhXwXy2+jDhzjumcPCJBYnzEHookYTSi29cQhXWje0kx8JdReCcZ+A0SRH79NMwQ88OAbTeF37Ka02Ek0Q3lgWKjx9rKXdyL+zmgKuK6qk1SYkF13B5b58lFeZN2Lm0VWKy894pd37lnQhBzkJy+zSjdqqP5VdSe0z9s2Q9lmO/VWVIS2moQHImRh2zpn5Z22PMg1Nbp4tCP85ni/kKePquKt6lzRVUVwnq+6o8KVlRFiapri4t3eLqiCrejtH12kLH57/SXs63n91tOg5x0NhZGM8CCD4cnKtYtJncCSL9/It2kEMYv4+ORwKMMHJvjw5HwmWju+aWWKA3JMD9cmjrK2hp7ShTtf4FtUeRKzIIWWq5QayMOlmP0F0gxZrNwClJfl5RFau8tTiUqOwuKrbaXieKWH08zuPFuFRHeRreQJBR4ytSK2m5WJ8puhqeT6TvsEOv3JLRp+e/aY7g9wttrw3JqVKb5nvoklqTE6jrFOmfkQa+BUkEjeULEbOJ1hKJkmZUK8Nfgo+knEFHORJPEKyjIjXpnJ67mL0upqQkZBURDByisBNRrowW6LemCV5lzngCUUSGCo9uJkkSRelyefxM1C1ObVUVIMqWWtksQX/HEWmzJ8oWt8RB8S1F4sY2vwy0omaxFV3HkMmVJiF6llr1OiAyWWsRSwyZfYEcZlJXzmAvKhesvUTFgm0AUanwTAMTgc3zqeJUFKI6EVWqOkJXSsOi6EuqbWjL6fVpOeIqc209EubVMDqNmaUViliolbBhNZRKYsgdl4w9GBqZBOm6CE9VDdATwLRRdCtvVOXaZXk3S5Lbd2WIIpjIKDdclRaCEpWtiN4TQEwKKGePDqSSOfbv5ZAkEpO3I0zGcImi/b4VVpt9z/sMp5NvzxdetAOaB4Mb04MqXaTKrEww2cuAK+XpdR2OQYjochKwyoOi5Uv3im7dK6irFfk5AGuBlBQmKhSqDInmUPeqCJQt4pfeQNV82IBRCgjlbPYAlWzCqXImn4rtcyzvPnin8+ZGt8sNMs2p20OBSLJ+nzPi3UVOMM9hzL+LHb+Ps5TBjgtKtonc5YzJJR9rJs3boxRgCXipzP4CMPTGCUNeDWJLEwL5BuJJrKF1DE2mqULkaGdPm6T3LFIX3hfElb0rpBXRe9wzWAFSrALtr0IYGATwdgRwRHuekFzR1FafXxyraoNZnYn3og73nlRu+yi3ej+cMN27Q5fQQP3TTlP/rHgfiRl2ELzOwVfbbUMXLr9Rjs0CsTRHJRkXjm4jh9jlNSy9RpZLWVYzD6t4eI719zx9rTHL4jKSD9v3Cf3teHg+VMvD5xZDXmmLmw+1WyKyJg5nVskd1MjTw4smMcgH2a0zBWXJpLMc3vbvhuhQoh6zezZlx7myzMfRokwtE6WuQk/RC9sKYNBfgmfDO2hnifLeNDX75QhK0R9m6CUV5tZFjHgpGOheRccqZxXxZdR1m4sAHRfAUuRDSlH0KIrjIyU2+KS/ZrLnkqVzFsBnQErQ4e+4ZJe/S4B1t+OWPMAeg9YeYGH6G4v367gZyWy+eKCWaYMdxSlRgnl1zKaMUP9uyNiJnbtcO+swl4lFOKNeAyriBfcbcPv5+9ydorUoY3FSsTmqXGHzjVFPUPsVguQLyX67ROvUhFDxMNAVYJQ6fbi/vyO9GpGgc7HSCfFchCOxkC+Q7eNkIiFYRzA5gEDtFJOVNDFgdwW0vVuHejeZnFUNQkQCMv3aNLGh6IiDzMwYRmK4/1ZGABtBSRPDwQcW6zeqyIc2TcyCIIQTUEy48LD297+TfyzXodKOdXEROQ6V/A1/3WVjb6WQSFM6kmOCWGGW62dXSkcc/5qAvWXAK+utD/1hSDM9VJRDO3pXUf91VUvtv4y0PkkzDsOvWsuaa5nqbQp5N7nk5HI9aG2QO2U34a5vZvNAE0vE+XNLlmwIcYW1Dk2BEKlMGM3LYFEuwoxeGhKxjshkDfW1AiTF8FzY9zghWLReHcK9ighdFSc/tljqYroiZp/EXLVISQBmKnb8SOIGp+f2+cUI22J4k4zj9XBw0ZCzAxr1uYTIDzrS84ETt97akkd/+dhdPvbZw+HMsO8tAc8J6vnOc3ftwPckpna8dKgH/7tiK4e9lh1K3P3T7k/timWt0YcZApYzzmgqvttBO8DHanNiSnaKD1WWWhiFsob8Sz4+zyy1SN+8FP9oUX0AdhrFHh8bouDPiS8Z3LFJGrXZLVloNl6qkybsEpxceb2JdOUsGgdVfe33Hj2+1o+v4U8Nhktez1rrj683Hnhrmt/2WhsPdsyz12kx8LbdKmTUzjCdoPRi1X8W/BYG/wx29EVQREEZBYdRIDtAOpzIwWO+xB/Ow2icjenMq3gV+yMJ9vf39SLcms7y9JpWPXDq9yoMUCtsigh9QXuC6j7trlHcXnej9TAZ36qifJ+lAbmN3gwzDB8HcUrseh4mCWpvE+qGA39n/g5e8kIiwBMnhXvUYil73y/l9zDY9PTIZJOE7nNR4KH3/dKHUjxvEjiQg0h/5/tFvoxEJhLYr1K6+/1i/2rFdj0jtut/v1hYUB4mAYxOD5LgZQCT108SG0/n+8VDyg+opReSpP/FVEs5RiCc//v46V+6iAUo4+CBR3H9gFZbtjt7/AEem4I43nrSbrU2ruTKilH1im3dki4h/vRZi2f/2qgf663cmLI37S79WhI/lhE5ChQvV3BwZR62mlLw5+hWhDEX0u5DN6rAn8uEjeaznFvGhzqClJG4PvuKQDLxQSkgrHEHaR2mpnlOZ+t5s/2AlClZwjusGGcUL/oUolEY2AsI3kJdopuuZhaf0FdeoyTYgRyO4T8XLhmDPrFXScQbBSF7Trx+vfEAk7pp1EblbIRWyFkwD/MiRWTtqNLGIiJ4P1vT6JmbQQ9gHLgk7bDGHDhyCRKAxtVo3SH7ICfo+3uPeI7pP8R4lgTeAc3NyOV833sYxEzZZYq3s28pe4ayayk8G+k9iojatdSeSEGjwdvagbfD4Xq9Cvc8JrQ5oG/JmPjuLoNhJCNfq9yU9VPyjXdG/8yoNvYeBmd///vkGo8QhfHo5naCYGMMqHAD/g4sDnCNJrcKbiQORzGr0A7QBIBUJKotofPBkg7+mO09jdkUW/eLed3B3YPn/ONh2j5C/jAdebL1RzXvfrKFw9cRODWxdCzL6ZLlFCy/xm1E+qkWF7m1+urYDj8f27AxNt6f+erojj8f3aWJbjZFDGNYnDpJ9AmKXD/cJtXAvHz0f5F3v+VvHAMA";var Large_IntelAmtWebApp="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";function onVerifyServer(b,a){if(a==null){a=b}try{for(var d in a){if(a[d].fingerprint.replace(/:/g,"")==settings.serverHttpsHash){return}}}catch(c){}if(serverhash!=null){console.log("Error: Failed to verify server certificate.");throw"Invalid server certificate"}}function debug(a,b){if((settings.debugLevel!=null)&&(settings.debugLevel>=a)){console.log(b)}}function exit(b){if(b==null){b=0}try{process.exit(b)}catch(a){}}function getInstance(b,c){for(var a in b){if(b[a]["InstanceID"]==c){return b[a]}}return null}function md5hex(a){return require("MD5Stream").create().syncHash(a).toString("hex")}function guidToStr(a){return a.substring(6,8)+a.substring(4,6)+a.substring(2,4)+a.substring(0,2)+"-"+a.substring(10,12)+a.substring(8,10)+"-"+a.substring(14,16)+a.substring(12,14)+"-"+a.substring(16,20)+"-"+a.substring(20)}function parceArguments(a){var d={};for(var b in a){b=parseInt(b);if(a[b].startsWith("--")==true){var c=a[b].substring(2).toLowerCase(),e=true;if(((b+1)8){return"[...]"}if(e==undefined){return"[undefined]"}if(typeof e=="string"){if(b==0){return e}return'"'+(e.split("\0")[0])+'"'}if(typeof e=="buffer"){return"[buffer]"}if(typeof e!="object"){return e}var c="{"+(d?"\r\n":" ");for(var a in e){if(a!="_ObjectID"){c+=(addPad(b+2,d)+a+": "+objToString(e[a],b+2,d)+(d?"\r\n":" "))}}return c+addPad(b,d)+"}"}function addPad(b,d){var c="";for(var a=0;a=2){settings={action:j[1]}}}if(settings==null){settings={}}if((typeof h.action)=="string"){settings.action=h.action}if((typeof h.localport)=="string"){settings.localport=parseInt(h.localport)}if((typeof h.remotenodeid)=="string"){settings.remoteNodeId=h.remotenodeid}if((typeof h.username)=="string"){settings.username=h.username}if((typeof h.password)=="string"){settings.password=h.password}if((typeof h.user)=="string"){settings.username=h.user}if((typeof h.pass)=="string"){settings.password=h.pass}if((typeof h.host)=="string"){settings.hostname=h.host}if((typeof h.hostname)=="string"){settings.hostname=h.hostname}if((typeof h.serverid)=="string"){settings.serverId=h.serverid}if((typeof h.serverhttpshash)=="string"){settings.serverHttpsHash=h.serverhttpshash}if((typeof h.remoteport)=="string"){settings.remotePort=parseInt(h.remoteport)}if((typeof h.out)=="string"){settings.output=h.out}if((typeof h.output)=="string"){settings.output=h.output}if((typeof h.debug)=="string"){settings.debugLevel=parseInt(h.debug)}if((typeof h.script)=="string"){settings.script=h.script}if((typeof h.agent)=="string"){settings.agent=h.agent}if(h.debug){try{waitForDebugger()}catch(k){}}if(h.noconsole){settings.noconsole=true}if(h.nocommander){settings.noconsole=true}if(h.lmsdebug){settings.lmsdebug=true}if(h.tls){settings.tls=true}if((j.length>1)&&(d.indexOf(j[1].toUpperCase())>=0)){settings.action=j[1]}if(settings.action==null){console.log("MeshCentral Command (MeshCmd) "+meshCmdVersion);console.log("No action specified, use MeshCmd like this:\r\n");console.log(" meshcmd [action] [arguments...]\r\n");console.log("Valid MeshCentral actions:");console.log(" Route - Map a local TCP port to a remote computer.");console.log("\r\nValid local actions:");console.log(" SMBios - Display System Management BIOS tables for this computer.");console.log(" RawSMBios - Display RAW System Management BIOS tables for this computer.");console.log(" MicroLMS - Run MicroLMS, allowing local access to Intel AMT.");console.log(" AmtInfo - Show Intel AMT version and activation state.");console.log(" AmtVersions - Show all Intel ME version information.");console.log(" AmtHashes - Show all Intel AMT trusted activation hashes.");console.log(" AmtCCM - Activate Intel AMT into Client Control Mode.");console.log(" AmtDeactivate - Deactivate Intel AMT if activated in Client Control mode.");console.log("\r\nValid local or remote actions:");console.log(" MeshCommander - Launch a local MeshCommander web server.");console.log(" AmtUUID - Show Intel AMT unique identifier.");console.log(" AmtAuditLog - Show the Intel AMT audit log.");console.log(" AmtLoadWebApp - Load MeshCommander in Intel AMT 11.6+ firmware.");console.log(" AmtClearWebApp - Clear everything from Intel AMT web storage.");console.log(" AmtStorageState - Show contents of the Intel AMT web storage.");console.log(" AmtSaveState - Save all Intel AMT WSMAN object to file.");console.log(" AmtPresence - Heartbeat a local Intel AMT watchdog agent.");console.log(" AmtScript - Run .mescript on Intel AMT.");console.log("\r\nHelp on a specific action using:\r\n");console.log(" meshcmd help [action]");exit(1);return}if(settings.action=="help"){if(j.length<=2){d.shift();console.log("Help usage:\r\n\r\n MeshCmd help [action]\r\n\r\nValid actions are: "+d.join(", ")+".");exit(1);return}var a=j[2].toLowerCase();if(a=="route"){console.log("The route action is used along with a MeshCentral account to map a local TCP port to a remote port on any computer on your MeshCentral account. This action requires many arguments, to avoid specifying them all it's best to download the meshaction.txt file from the web site and place it in the current folder. Example usage:\r\n\r\n (Place meshaction.txt file in current folder)\r\n meshcmd route --pass myAccountPassword")}else{if(a=="smbios"){console.log("SMBios action will display this computer's system management BIOS information. Example usage:\r\n\r\n meshcmd smbios --out smbios.txt\r\n");console.log("\rOptional arguments:\r\n");console.log(" --output [filename] Optional filename to write the results to.")}else{if(a=="rawsmbios"){console.log("RawSMBios action will display this computer's system management BIOS information in raw hexdecimal form. Example usage:\r\n\r\n meshcmd rawsmbios --out smbios.txt\r\n");console.log("\rOptional arguments:\r\n");console.log(" --output [filename] Optional filename to write the results to.")}else{if(a=="amtinfo"){console.log("AmtInfo action will get the version and activation state of Intel AMT on this computer. The command must be run on a computer with Intel AMT, must run as administrator and the Intel management driver must be installed. Example usage:\r\n\r\n meshcmd amtinfo")}else{if((a=="amtversion")||(a=="amtversions")){console.log("AmtVersions will display all version information about Intel AMT on this computer. The command must be run on a computer with Intel AMT, must run as administrator and the Intel management driver must be installed. Example usage:\r\n\r\n meshcmd amtversions")}else{if(a=="amthashes"){console.log("Amthashes will display all trusted activations hashes for Intel AMT on this computer. The command must be run on a computer with Intel AMT, must run as administrator and the Intel management driver must be installed. These certificates hashes are used by Intel AMT when performing activation into ACM mode. Example usage:\r\n\r\n meshcmd amthashes")}else{if((a=="microlms")||(a=="lms")||(a=="amtlms")){console.log("Starts MicroLMS on this computer, allowing local access to Intel AMT on TCP ports 16992 and 16993 when applicable. The command must be run on a computer with Intel AMT, must run as administrator and the Intel management driver must be installed. These certificates hashes are used by Intel AMT when performing activation into ACM mode. Example usage:\r\n\r\n meshcmd microlms");console.log("\r\nPossible arguments:\r\n");console.log(" --noconsole MeshCommander for LMS will no be available on port 16994.");console.log("\r\nRun as a background service:\r\n");console.log(" microlms install/uninstall/start/stop.")}else{if(a=="amtccm"){console.log('AmtCCM will attempt to activate Intel AMT on this computer into client control mode (CCM). The command must be run on a computer with Intel AMT, must run as administrator and the Intel management driver must be installed. Intel AMT must be in "pre-provisioning" state for this command to work and a administrator password must be provided. Example usage:\r\n\r\n meshcmd amtccm --pass mypassword')}else{if(a=="amtdeactivate"){console.log("AmtDeactivate will attempt to deactivate Intel AMT on this computer when in client control mode (CCM). The command must be run on a computer with Intel AMT, must run as administrator and the Intel management driver must be installed. Intel AMT must be activated in client control mode for this command to work. Example usage:\r\n\r\n meshcmd amtdeactivate")}else{if(a=="amtuuid"){console.log("AmtUUID action will get the unique identifier of the local or remote Intel AMT computer. By default, the local UUID is obtained unless a host is specified. Intel AMT must be activated for this command to work. Example usage:\r\n\r\n meshcmd amtuuid --host 1.2.3.4 --user admin --pass mypassword --tls");console.log("\r\nPossible arguments:\r\n");console.log(" --host [hostname] The IP address or DNS name of Intel AMT, 127.0.0.1 is default.");console.log(" --user [username] The Intel AMT login username, admin is default.");console.log(" --pass [password] The Intel AMT login password.");console.log(" --tls Specifies that TLS must be used.")}else{if((a=="amtloadwebapp")||(a=="amtloadsmallwebapp")||(a=="amtloadlargewebapp")||(a=="amtclearwebapp")||(a=="amtstoragestate")){console.log('AmtLoadWebApp action will load MeshCommander into Intel AMT 11.6 or higher. If the computer is in ACM mode, MeshCommander will replace the default index.htm on HTTP/16992 or HTTPS/16993. If Intel AMT is in CCM mode, MeshCommander will be installed alongside the default web page and will be accessible in the "Web Applications" section. This action works on Intel AMT 11.6 and higher only. Example usage:\r\n\r\n meshcmd amtloadwebapp --host 1.2.3.4 --user admin --pass mypassword --tls');console.log("\r\nPossible arguments:\r\n");console.log(" --host [hostname] The IP address or DNS name of Intel AMT, 127.0.0.1 is default.");console.log(" --user [username] The Intel AMT login username, admin is default.");console.log(" --pass [password] The Intel AMT login password.");console.log(" --tls Specifies that TLS must be used.")}else{if(a=="amtclearwebstorage"){console.log("AmtClearWebStorage will clear the web storage of Intel AMT, removing any loaded firmware version of MeshCommander. This command can clear the local or a remote Intel AMT computer. By default, the local computer storage is cleared unless a host is specified. Intel AMT must be activated for this command to work. This action works on Intel AMT 11.6 and higher only. Example usage:\r\n\r\n meshcmd amtclearwebstorage --host 1.2.3.4 --user admin --pass mypassword --tls");console.log("\r\nPossible arguments:\r\n");console.log(" --host [hostname] The IP address or DNS name of Intel AMT, 127.0.0.1 is default.");console.log(" --user [username] The Intel AMT login username, admin is default.");console.log(" --pass [password] The Intel AMT login password.");console.log(" --tls Specifies that TLS must be used.")}else{if(a=="amtstoragestate"){console.log("AmtStorageState will display the content of the web storage of Intel AMT including any loaded firmware version of MeshCommander. This command can read the storage state of a local or remote Intel AMT computer. By default, the local computer storage state is displayed unless a host is specified. Intel AMT must be activated for this command to work. This action works on Intel AMT 11.6 and higher only. Example usage:\r\n\r\n meshcmd amtstoragestate --host 1.2.3.4 --user admin --pass mypassword --tls");console.log("\r\nPossible arguments:\r\n");console.log(" --host [hostname] The IP address or DNS name of Intel AMT, 127.0.0.1 is default.");console.log(" --user [username] The Intel AMT login username, admin is default.");console.log(" --pass [password] The Intel AMT login password.");console.log(" --tls Specifies that TLS must be used.")}else{if(a=="amtsavestate"){console.log("AmtSaveState action will fetch all the entire state of Intel AMT and save it as a JSON file. This action will take multiple minutes to perform. The command will fetch the local computer state unless host is specified. Intel AMT must be ativated for this command to work. Example usage:\r\n\r\n meshcmd amtsavestate --host 1.2.3.4 --user admin --pass mypassword --tls --output state.json");console.log("\r\nPossible arguments:\r\n");console.log(" --output [filename] The output file for the Intel AMT state in JSON format.");console.log(" --host [hostname] The IP address or DNS name of Intel AMT, 127.0.0.1 is default.");console.log(" --user [username] The Intel AMT login username, admin is default.");console.log(" --pass [password] The Intel AMT login password.");console.log(" --tls Specifies that TLS must be used.")}else{if(a=="amtpresence"){console.log("AmtPresence will heartbeat a local Intel AMT watchdog agent. Example usage:\r\n\r\n meshcmd amtpresence --agent B4B6A24C-255E-A75C-F5E8-B00B4D946AA7");console.log("\r\nPossible arguments:\r\n");console.log(" --user [username] The Intel AMT login username, admin is default.");console.log(" --pass [password] The Intel AMT login password.");console.log(" --agent [uuid] The unique identifier of the watchdog agent.")}else{if(a=="amtscript"){console.log("AmtScript will run a .mescript file on the local or remote Intel AMT. Script files can be built using the MeshCommander script editor and be used to setup or perform actions on Intel AMT. Example usage:\r\n\r\n meshcmd amtscript --script myscript.mescript --host 1.2.3.4 --user admin --pass mypassword --tls");console.log("\r\nPossible arguments:\r\n");console.log(" --script [filename] The script file to run on Intel AMT.");console.log(" --host [hostname] The IP address or DNS name of Intel AMT, 127.0.0.1 is default.");console.log(" --user [username] The Intel AMT login username, admin is default.");console.log(" --pass [password] The Intel AMT login password.");console.log(" --tls Specifies that TLS must be used.")}else{if(a=="meshcommander"){console.log("This action launched a local web server that hosts MeshCommander, a Intel AMT management console.");console.log("\r\nPossible arguments:\r\n");console.log(" --localport [port] Local port used for the web server, 3000 is default.");console.log("\r\nRun as a background service:\r\n");console.log(" meshcommander install/uninstall/start/stop.")}else{if(a=="amtauditlog"){console.log("AmtAuditLog action will fetch the local or remote audit log. If used localy, no username/password is required. Example usage:\r\n\r\n meshcmd amtauditlog --host 1.2.3.4 --user admin --pass mypassword --tls --output audit.json");console.log("\r\nPossible arguments:\r\n");console.log(" --output [filename] The output file for the Intel AMT state in JSON format.");console.log(" --host [hostname] The IP address or DNS name of Intel AMT, 127.0.0.1 is default.");console.log(" --user [username] The Intel AMT login username, admin is default.");console.log(" --pass [password] The Intel AMT login password.");console.log(" --tls Specifies that TLS must be used.")}else{d.shift();console.log("Invalid action, usage:\r\n\r\n meshcmd help [action]\r\n\r\nValid actions are: "+d.join(", ")+".")}}}}}}}}}}}}}}}}}}exit(1);return}settings.action=settings.action.toLowerCase();debug(1,"Settings: "+JSON.stringify(settings));if(settings.action=="smbios"){SMBiosTables=require("smbios");SMBiosTables.get(function(e){var n=SMBiosTables.parse(e);var m=objToString(n,0,"\r\n");if(settings.output==null){console.log(m)}else{var l=fs.openSync(settings.output,"w");fs.writeSync(l,Buffer.from(m,"utf8"));fs.closeSync(l)}exit(1)})}else{if(settings.action=="rawsmbios"){SMBiosTables=require("smbios");SMBiosTables.get(function(e){var p="";for(var n in e){var m=false;for(var o in e[n]){if(e[n][o].length>0){if(m==false){p+=("Table type #"+n+((SMBiosTables.smTableTypes[n]==null)?"":(", "+SMBiosTables.smTableTypes[n])))+"\r\n";m=true}p+=(" "+e[n][o].toString("hex"))+"\r\n"}}}if(settings.output==null){console.log(p)}else{var l=fs.openSync(settings.output,"w");fs.writeSync(l,Buffer.from(p,"utf8"));fs.closeSync(l)}exit(1)})}else{if(settings.action=="route"){if((settings.localPort==null)||(typeof settings.localPort!="number")||(settings.localPort<0)||(settings.localPort>65535)){console.log('No or invalid "localPort" specified, use --localport [localport].');exit(1);return}if((settings.remoteNodeId==null)||(typeof settings.remoteNodeId!="string")){console.log('No or invalid "remoteNodeId" specified.');exit(1);return}if((settings.username==null)||(typeof settings.username!="string")||(settings.username=="")){console.log('No or invalid "username" specified, use --username [username].');exit(1);return}if((settings.password==null)||(typeof settings.password!="string")||(settings.password=="")){console.log('No or invalid "password" specified, use --password [password].');exit(1);return}if((settings.serverId==null)||(typeof settings.serverId!="string")||(settings.serverId.length!=96)){console.log('No or invalid "serverId" specified.');exit(1);return}if((settings.serverHttpsHash==null)||(typeof settings.serverHttpsHash!="string")||(settings.serverHttpsHash.length!=96)){console.log('No or invalid "serverHttpsHash" specified.');exit(1);return}if((settings.remotePort==null)||(typeof settings.remotePort!="number")||(settings.remotePort<0)||(settings.remotePort>65535)){console.log('No or invalid "remotePort" specified, use --remoteport [remoteport].');exit(1);return}if(settings.serverUrl!=null){startRouter()}else{discoverMeshServer()}}else{if((settings.action=="amtloadwebapp")||(settings.action=="amtloadsmallwebapp")||(settings.action=="amtloadlargewebapp")||(settings.action=="amtclearwebapp")||(settings.action=="amtstoragestate")){if((settings.password==null)||(typeof settings.password!="string")||(settings.password=="")){console.log('No or invalid "password" specified, use --password [password].');exit(1);return}if((settings.hostname==null)||(typeof settings.hostname!="string")||(settings.hostname=="")){settings.hostname="127.0.0.1"}if((settings.username==null)||(typeof settings.username!="string")||(settings.username=="")){settings.username="admin"}settings.protocol="http:";settings.localport=16992;debug(1,"Settings: "+JSON.stringify(settings));digest=require("http-digest").create(settings.username,settings.password);digest.http=require("http");if(settings.action=="amtstoragestate"){getAmtStorage(function(l,e){if(l==200){console.log("Storage State: "+JSON.stringify(e,null,2));exit();return}else{console.log("Unable to read storage state.");exit();return}})}else{if(settings.action=="amtloadwebapp"){settings.webapp=Medium_IntelAmtWebApp}else{if(settings.action=="amtloadsmallwebapp"){settings.webapp=Small_IntelAmtWebApp}else{if(settings.action=="amtloadlargewebapp"){settings.webapp=Large_IntelAmtWebApp}else{if(settings.action=="amtclearwebapp"){settings.webapp=null}}}}nextStepStorageUpload()}}else{if((settings.action=="amtversion")||(settings.action=="amtversions")||(settings.action=="amtver")){var g=require("amt-mei");var f=new g();f.on("error",function(l){console.log("ERROR: "+l);exit(1);return});f.getVersion(function(e){console.log("MEI Version = "+e.BiosVersion.toString());for(var l in e.Versions){console.log(e.Versions[l].Description+" = "+e.Versions[l].Version)}exit(1);return})}else{if(settings.action=="amthashes"){var g=require("amt-mei");var f=new g();f.on("error",function(l){console.log("ERROR: "+l);exit(1);return});f.getHashHandles(function(e){exitOnCount=e.length;for(var l=0;l100){lmsNotifications.shift()}var l=Buffer.concat([Buffer.from("0900","hex"),Buffer.from(JSON.stringify(k))]);for(var j in lmsControlSockets){lmsControlSockets[j].write(l)}}}});amtLms.on("connect",function(){console.log("LMS Connected");amtLms.connected=true;if(settings.noconsole!==true){amtLms.meshCommander=e.createServer();amtLms.meshCommander.listen(16994);amtLms.meshCommander.on("upgrade",function(j,k,g){switch(j.url.split("?")[0]){case"/lms.ashx":k.ws=k.upgradeWebSocket();k.ws.on("data",processLmsControlData);k.ws.on("end",function(){if(lmsControlSockets[this.id]){delete lmsControlSockets[this.id]}});var h=lmsControlSocketsNextId++;lmsControlSockets[h]=k.ws;k.ws.id=h;break;case"/webrelay.ashx":k.ws=k.upgradeWebSocket();amtLms.bindDuplexStream(k.ws,"IPv4",16992);break;default:k.end();break}});amtLms.meshCommander.on("request",function(j,k){switch(j.url.split("?")[0]){case"/":var h=null;try{h=fs.readFileSync("lmscommander.htm")}catch(g){}if(h!=null){k.writeHead(200,"OK",{Server:"JSLMS","Cache-Control":"max-age=0, no-cache","X-Frame-Options":"DENY","Content-Type":"text/html","Transfer-Encoding":"chunked"});k.end(h)}else{k.writeHead(200,"OK",{Server:"JSLMS","Cache-Control":"max-age=0, no-cache","X-Frame-Options":"DENY","Content-Type":"text/html","Content-Encoding":"gzip","Transfer-Encoding":"chunked",ETag:b});k.end(Buffer.from(a,"base64"))}break;default:k.statusCode=404;k.statusMessage="Not Found";k.end();break}});tempTimer=setTimeout(function(){delete tempTimer;setupMeiOsAdmin(d,2)},100)}else{tempTimer=setTimeout(function(){delete tempTimer;setupMeiOsAdmin(d,1)},100)}})}function setupMeiOsAdmin(a,b){amtMei.getLocalSystemAccount(function(f){var d=require("amt-wsman-duk");var e=require("amt-wsman");var c=require("amt");oswsstack=new e(d,"127.0.0.1",16992,f.user,f.pass,false);osamtstack=new c(oswsstack);if(a){a(b)}amtMei.getVersion(function(k){var g=null;try{for(var j in k.Versions){if(k.Versions[j].Description=="AMT"){g=parseInt(k.Versions[j].Version.split(".")[0])}}}catch(h){}if((g!=null)&&(g>=12)){kvmGetData("skip");tempTimer=setInterval(function(){kvmGetData()},2000);kvmSetData(JSON.stringify({action:"restart",ver:1}))}})})}function kvmGetData(a){osamtstack.IPS_KVMRedirectionSettingData_DataChannelRead(kvmDataGetResponse,a)}function kvmDataGetResponse(d,b,c,f,g){if((g!="skip")&&(f==200)&&(c.Body.ReturnValue==0)){var h=null;try{h=Buffer.from(c.Body.DataMessage,"base64").toString()}catch(a){return}if(h!=null){kvmProcessData(c.Body.RealmsBitmap,c.Body.MessageId,h)}}}var webRtcDesktop=null;function kvmProcessData(d,c,g){var a=null;try{a=JSON.parse(g)}catch(b){}if((a!=null)&&(a.action)){if(a.action=="present"){kvmSetData(JSON.stringify({action:"present",ver:1,platform:process.platform}))}if(a.action=="offer"){webRtcDesktop={};var f=require("ILibWebRTC");webRtcDesktop.webrtc=f.createConnection();webRtcDesktop.webrtc.on("connected",function(){});webRtcDesktop.webrtc.on("disconnected",function(){webRtcCleanUp()});webRtcDesktop.webrtc.on("dataChannel",function(h){webRtcDesktop.rtcchannel=h;var e=require("meshDesktop");webRtcDesktop.kvm=e.getRemoteDesktopStream();webRtcDesktop.kvm.pipe(webRtcDesktop.rtcchannel,{dataTypeSkip:1,end:false});webRtcDesktop.rtcchannel.on("end",function(){webRtcCleanUp()});webRtcDesktop.rtcchannel.on("data",function(j){kvmCtrlData(this,j)});webRtcDesktop.rtcchannel.pipe(webRtcDesktop.kvm,{dataTypeSkip:1,end:false})});kvmSetData(JSON.stringify({action:"answer",ver:1,sdp:webRtcDesktop.webrtc.setOffer(a.sdp)}))}}}var path={join:function(){var c=[];for(var a in arguments){var b=arguments[a];if(b!=null){while(b.endsWith("/")||b.endsWith("\\")){b=b.substring(0,b.length-1)}if(a!=0){while(b.startsWith("/")||b.startsWith("\\")){b=b.substring(1)}}c.push(b)}}if(c.length==0){return"/"}return c.join("/")}};function getDirectoryInfo(f){var g={path:f,dir:[]};if(((f==undefined)||(f==""))&&(process.platform=="win32")){var h=null;try{h=fs.readDrivesSync()}catch(b){}if(h!=null){for(var c=0;c0&&c.charCodeAt(0)!=123){if(this.fileupload!=null){c=Buffer.from(c,"base64");var k=c.readUInt32BE(0);if((k==16777216)||(k==16777217)){fs.writeSync(this.fileupload.fp,c.slice(4));b.write({action:"upload",sub:"ack",reqid:this.fileupload.reqid});if(k==16777217){fs.closeSync(this.fileupload.fp);this.fileupload=null}}}return}try{c=JSON.parse(c)}catch(g){console.error("Invalid JSON: "+c);return}if((c.path!=null)&&(process.platform!="win32")&&(c.path[0]!="/")){c.path="/"+c.path}switch(c.action){case"ping":b.write({action:"pong"});break;case"ls":var p=getDirectoryInfo(c.path);if(c.reqid!=undefined){p.reqid=c.reqid}b.write(p);break;case"mkdir":fs.mkdirSync(c.path);break;case"rm":for(var l in c.delfiles){var j=path.join(c.path,c.delfiles[l]);try{fs.unlinkSync(j)}catch(f){console.log(f)}}break;case"rename":var o=path.join(c.path,c.oldname);var n=path.join(c.path,c.newname);try{fs.renameSync(o,n)}catch(f){console.log(f)}break;case"download":var r=0;if(c.sub=="start"){if(this.filedownload!=null){b.write({action:"download",sub:"cancel",id:this.filedownload.id});delete this.filedownload}this.filedownload={id:c.id,path:c.path,ptr:0};try{this.filedownload.f=fs.openSync(this.filedownload.path,"rbN")}catch(f){b.write({action:"download",sub:"cancel",id:this.filedownload.id});delete this.filedownload}if(this.filedownload){b.write({action:"download",sub:"start",id:c.id})}}else{if((this.filedownload!=null)&&(c.id==this.filedownload.id)){if(c.sub=="startack"){r=8}else{if(c.sub=="stop"){delete this.filedownload}else{if(c.sub=="ack"){r=1}}}}}while(r>0){r--;var a=Buffer.alloc(4096);var m=fs.readSync(this.filedownload.f,a,4,4092,null);this.filedownload.ptr+=m;if(m<4092){a.writeInt32BE(16777217,0);fs.closeSync(this.filedownload.f);delete this.filedownload;r=0}else{a.writeInt32BE(16777216,0)}b.write(a.slice(0,m+4).toString("base64"))}break;case"upload":if(c.sub=="start"){if(this.fileupload!=null){fs.closeSync(this.fileupload.fp)}if(!c.path||!c.name){break}this.fileupload={reqid:c.reqid};var h=path.join(c.path,c.name);try{this.fileupload.fp=fs.openSync(h,"wbN")}catch(f){}if(this.fileupload.fp){b.write({action:"upload",sub:"start",reqid:this.fileupload.reqid})}else{this.fileupload=null;b.write({action:"upload",sub:"error",reqid:this.fileupload.reqid})}}else{if(c.sub=="cancel"){if(this.fileupload!=null){fs.closeSync(this.fileupload.fp);this.fileupload=null}}}break;case"copy":for(var l in c.names){var q=path.join(c.scpath,c.names[l]),d=path.join(c.dspath,c.names[l]);if(q!=d){try{fs.copyFileSync(q,d)}catch(f){}}}break;case"move":for(var l in c.names){var q=path.join(c.scpath,c.names[l]),d=path.join(c.dspath,c.names[l]);if(q!=d){try{fs.copyFileSync(q,d);fs.unlinkSync(q)}catch(f){}}}break}}function webRtcCleanUp(){if(webRtcDesktop==null){return}if(webRtcDesktop.rtcchannel){try{webRtcDesktop.rtcchannel.close()}catch(a){}try{webRtcDesktop.rtcchannel.removeAllListeners("data")}catch(a){}try{webRtcDesktop.rtcchannel.removeAllListeners("end")}catch(a){}delete webRtcDesktop.rtcchannel}if(webRtcDesktop.webrtc){try{webRtcDesktop.webrtc.close()}catch(a){}try{webRtcDesktop.webrtc.removeAllListeners("connected")}catch(a){}try{webRtcDesktop.webrtc.removeAllListeners("disconnected")}catch(a){}try{webRtcDesktop.webrtc.removeAllListeners("dataChannel")}catch(a){}delete webRtcDesktop.webrtc}if(webRtcDesktop.kvm){try{webRtcDesktop.kvm.end()}catch(a){}delete webRtcDesktop.kvm}webRtcDesktop=null}function kvmSetData(a){osamtstack.IPS_KVMRedirectionSettingData_DataChannelWrite(Buffer.from(a).toString("base64"),function(){})}function startLmsWsmanResponse(d,b,c,e){if(e==600){console.log("ERROR: Unable to connect to Intel(R) AMT.")}else{if(e!=200){console.log("ERROR: Unable to get object from Intel(R) AMT, status = "+e+".")}else{var a=c.CIM_SoftwareIdentity.responses;if(a.length>0){var f=getInstance(a,"AMT")["VersionString"];amtversion=parseInt(f.split(".")[0]);amtversionmin=parseInt(f.split(".")[1])}}}}function processLmsControlData(b){if(b.length<2){return}var a=b.readUInt16LE(0);switch(a){case 1:getAmtInfo(function(c,d){c.LoginMode=2;d.write(Buffer.concat([Buffer.from("0100","hex"),Buffer.from(JSON.stringify(c))]))},this);break;case 2:if(b.length<6){break}amtMei.unprovision(b.readUInt32LE(2),function(e,d){var c=Buffer.alloc(6);c.writeUInt16LE(2,0);c.writeUInt32LE(e,2);d.write(c)},this);break;case 3:amtMei.getLocalSystemAccount(function(c,d){d.write(Buffer.concat([Buffer.from("030000000000","hex"),c.raw]))},this);break;case 4:amtMei.startConfiguration(function(e,d){var c=Buffer.alloc(6);c.writeUInt16LE(7,0);c.writeUInt32LE(e,2);d.write(c)},this);break;case 5:amtMei.stopConfiguration(function(e,d){var c=Buffer.alloc(6);c.writeUInt16LE(7,0);c.writeUInt32LE(e,2);d.write(c)},this);break;case 6:amtMei.openUserInitiatedConnection(function(e,d){var c=Buffer.alloc(6);c.writeUInt16LE(7,0);c.writeUInt32LE(e,2);d.write(c)},this);break;case 7:amtMei.closeUserInitiatedConnection(function(e,d){var c=Buffer.alloc(6);c.writeUInt16LE(7,0);c.writeUInt32LE(e,2);d.write(c)},this);break;case 8:amtMei.getRemoteAccessConnectionStatus(function(e,d){var c=Buffer.alloc(6);c.writeUInt16LE(8,0);c.writeUInt32LE(e.status,2);d.write(Buffer.concat([c,e.raw]))},this);break}}function startRouter(){tcpserver=net.createServer(OnTcpClientConnected);tcpserver.on("error",function(a){console.log("ERROR: "+JSON.stringify(a));exit(0);return});tcpserver.listen(settings.localPort,function(){if(settings.remoteName==null){console.log("Redirecting local port "+settings.localPort+" to remote port "+settings.remotePort+".")}else{console.log("Redirecting local port "+settings.localPort+" to "+settings.remoteName+":"+settings.remotePort+".")}console.log("Press ctrl-c to exit.")})}function OnTcpClientConnected(a){try{debug(1,"Client connected");a.on("end",function(){disconnectTunnel(this,this.websocket,"Client closed")});a.pause();try{options=http.parseUri(settings.serverUrl+"?user="+settings.username+"&pass="+settings.password+"&nodeid="+settings.remoteNodeId+"&tcpport="+settings.remotePort)}catch(b){console.log('Unable to parse "serverUrl".');process.exit(1);return}options.checkServerIdentity=onVerifyServer;options.rejectUnauthorized=false;a.websocket=http.request(options);a.websocket.tcp=a;a.websocket.tunneling=false;a.websocket.upgrade=OnWebSocket;a.websocket.on("error",function(c){console.log("ERROR: "+JSON.stringify(c))});a.websocket.end()}catch(b){debug(2,b)}}function disconnectTunnel(c,d,b){if(d!=null){try{d.end()}catch(a){debug(2,a)}}if(c!=null){try{c.end()}catch(a){debug(2,a)}}debug(1,"Tunnel disconnected: "+b)}function OnWebSocket(b,c,a){debug(1,"Websocket connected");c.on("data",function(d){if(this.parent.tunneling==false){d=d.toString();if(d=="c"){this.parent.tunneling=true;this.pipe(this.parent.tcp);this.parent.tcp.pipe(this);debug(1,"Tunnel active")}else{if((d.length>6)&&(d.substring(0,6)=="error:")){console.log(d.substring(6));disconnectTunnel(this.tcp,this,d.substring(6))}}}});c.on("error",function(d){disconnectTunnel(this.tcp,this,"Websocket error")});c.on("close",function(d){disconnectTunnel(this.tcp,this,"Websocket closed")});c.parent=this}function discoverMeshServer(){console.log("Looking for server...");discoveryInterval=setInterval(discoverMeshServerOnce,5000);discoverMeshServerOnce()}function discoverMeshServerOnce(){var f=os.networkInterfaces();for(var a in f){if(f.hasOwnProperty(a)){for(var d=0;d0)?"":"Content-Encoding:gzipContent-Type:text/html"+((e!=null)?(""+e+""):"")+"";var a=((b.length-g)>(7000-d.length))?(7000-d.length):(b.length-g);h.write(Buffer.concat([new Buffer(d),b.slice(g,g+a)]));g+=a;h.end()}function verifyStorage(c,a,b){var d=digest.request({protocol:settings.protocol,method:"GET",host:settings.hostname,path:("/amt-storage/"+c),port:settings.localport});d.on("error",function(f){console.log("Verify error occured: "+JSON.stringify(f));if(b!=null){b(null)}});d.on("response",function(e){e.ptr=0;e.ok=true;e.on("data",function(f){if(f.toString("hex")!=a.slice(e.ptr,e.ptr+f.length).toString("hex")){e.ok=false;console.log("Verifiy failed ("+e.ptr+", "+f.length+").")}e.ptr+=f.length});e.on("end",function(){if(b!=null){b(e.ok)}})});d.end()}function deleteStorage(b,a,c){var d=digest.request({protocol:settings.protocol,method:"DELETE",host:settings.hostname,path:"/amt-storage/"+b,port:settings.localport});d.on("error",function(f){if((f=="Error: Socket was unexpectedly closed")&&(c!=true)){deleteStorage(b,a,true)}else{if(a!=null){if(f.statusCode){a(f.statusCode)}else{a(null)}}}});d.on("response",function(e){if(a!=null){a(e.statusCode)}});d.end()}function parseUrlArguments(d){var c={},e=d.split("?");if(e.length<2){return c}e=e[1].split("&");for(var a in e){var b=e[a].indexOf("=");if(b>0){c[e[a].substring(0,b).toLowerCase()]=e[a].substring(b+1)}}return c}function removeItemFromArray(a,b){var c=a.indexOf(b);if(c!==-1){a.splice(c,1)}}var serviceName=null;var serviceOpSpecified=0;var serviceInstall=0;for(var i in process.argv){if(process.argv[i].toLowerCase()=="install"){serviceInstall=1}else{if(process.argv[i].toLowerCase()=="uninstall"){serviceInstall=-1}}if((process.argv[i].toLowerCase()=="microlms")||(process.argv[i].toLowerCase()=="amtlms")||(process.argv[i].toLowerCase()=="lms")){serviceName="MicroLMS";break}if((process.argv[i].toLowerCase()=="meshcommander")||(process.argv[i].toLowerCase()=="commander")){serviceName="MeshCommander";break}}if(serviceName==null){for(var i in process.argv){if((process.argv[i].toLowerCase()=="install")||(process.argv[i].toLowerCase()=="uninstall")){console.log("In order to install/uninstall, a service type must be specified.");process.exit()}}if(process.execPath.includes("MicroLMS")){serviceName="MicroLMS"}else{if(process.execPath.includes("MeshCommander")){serviceName="MeshCommander"}else{serviceName="not_a_service"}}}if(serviceInstall==0){run(process.argv)}else{var serviceHost=require("service-host");var meshcmdService=new serviceHost({name:serviceName,startType:"AUTO_START"});meshcmdService.on("serviceStart",function onStart(){console.setDestination(console.Destinations.DISABLED);if(process.execPath.includes("MicroLMS")){run([process.execPath,"microlms"])}else{if(process.execPath.includes("MeshCommander")){run([process.execPath,"meshcommander"])}else{console.log("Aborting Service Start, because unknown binary: "+process.execPath);process.exit(1)}}});meshcmdService.on("serviceStop",function onStop(){console.log("Stopping service");process.exit()});meshcmdService.on("normalStart",function onNormalStart(){try{run(process.argv)}catch(a){console.log("ERROR: "+a)}});meshcmdService.run()}; \ No newline at end of file +var fs=require("fs");var os=require("os");var net=require("net");var http=require("http");var dgram=require("dgram");var httpHeaders=require("http-headers");var tcpserver=null;var broadcastSockets={};var multicastSockets={};var discoveryInterval=null;var membershipIPv4="239.255.255.235";var membershipIPv6="FF02:0:0:0:0:0:0:FE";var settings=null;var meshCmdVersion="***Mesh*Cmd*Version***";var amtLms=null,amtMei=null,amtMeiState=null;var wsstack=null,amtstack=null;var oswsstack=null,osamtstack=null;var amtMeiTmpState=null;var SMBiosTables=null;var Small_IntelAmtWebApp="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";var Medium_IntelAmtWebApp="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";var Large_IntelAmtWebApp="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";function onVerifyServer(b,a){if(a==null){a=b}try{for(var d in a){if(a[d].fingerprint.replace(/:/g,"")==settings.serverHttpsHash){return}}}catch(c){}if(serverhash!=null){console.log("Error: Failed to verify server certificate.");throw"Invalid server certificate"}}function debug(a,b){if((settings.debugLevel!=null)&&(settings.debugLevel>=a)){console.log(b)}}function exit(b){if(b==null){b=0}try{process.exit(b)}catch(a){}}function getInstance(b,c){for(var a in b){if(b[a]["InstanceID"]==c){return b[a]}}return null}function md5hex(a){return require("MD5Stream").create().syncHash(a).toString("hex")}function guidToStr(a){return a.substring(6,8)+a.substring(4,6)+a.substring(2,4)+a.substring(0,2)+"-"+a.substring(10,12)+a.substring(8,10)+"-"+a.substring(14,16)+a.substring(12,14)+"-"+a.substring(16,20)+"-"+a.substring(20)}function parceArguments(a){var d={};for(var b in a){b=parseInt(b);if(a[b].startsWith("--")==true){var c=a[b].substring(2).toLowerCase(),e=true;if(((b+1)8){return"[...]"}if(e==undefined){return"[undefined]"}if(typeof e=="string"){if(b==0){return e}return'"'+(e.split("\0")[0])+'"'}if(typeof e=="buffer"){return"[buffer]"}if(typeof e!="object"){return e}var c="{"+(d?"\r\n":" ");for(var a in e){if(a!="_ObjectID"){c+=(addPad(b+2,d)+a+": "+objToString(e[a],b+2,d)+(d?"\r\n":" "))}}return c+addPad(b,d)+"}"}function addPad(b,d){var c="";for(var a=0;a=2){settings={action:j[1]}}}if(settings==null){settings={}}if((typeof h.action)=="string"){settings.action=h.action}if((typeof h.localport)=="string"){settings.localport=parseInt(h.localport)}if((typeof h.remotenodeid)=="string"){settings.remoteNodeId=h.remotenodeid}if((typeof h.username)=="string"){settings.username=h.username}if((typeof h.password)=="string"){settings.password=h.password}if((typeof h.user)=="string"){settings.username=h.user}if((typeof h.pass)=="string"){settings.password=h.pass}if((typeof h.host)=="string"){settings.hostname=h.host}if((typeof h.hostname)=="string"){settings.hostname=h.hostname}if((typeof h.serverid)=="string"){settings.serverId=h.serverid}if((typeof h.serverhttpshash)=="string"){settings.serverHttpsHash=h.serverhttpshash}if((typeof h.remoteport)=="string"){settings.remotePort=parseInt(h.remoteport)}if((typeof h.out)=="string"){settings.output=h.out}if((typeof h.output)=="string"){settings.output=h.output}if((typeof h.debug)=="string"){settings.debugLevel=parseInt(h.debug)}if((typeof h.script)=="string"){settings.script=h.script}if((typeof h.agent)=="string"){settings.agent=h.agent}if(h.debug){try{waitForDebugger()}catch(k){}}if(h.noconsole){settings.noconsole=true}if(h.nocommander){settings.noconsole=true}if(h.lmsdebug){settings.lmsdebug=true}if(h.tls){settings.tls=true}if((j.length>1)&&(d.indexOf(j[1].toUpperCase())>=0)){settings.action=j[1]}if(settings.action==null){console.log("MeshCentral Command (MeshCmd) "+meshCmdVersion);console.log("No action specified, use MeshCmd like this:\r\n");console.log(" meshcmd [action] [arguments...]\r\n");console.log("Valid MeshCentral actions:");console.log(" Route - Map a local TCP port to a remote computer.");console.log("\r\nValid local actions:");console.log(" SMBios - Display System Management BIOS tables for this computer.");console.log(" RawSMBios - Display RAW System Management BIOS tables for this computer.");console.log(" MicroLMS - Run MicroLMS, allowing local access to Intel AMT.");console.log(" AmtInfo - Show Intel AMT version and activation state.");console.log(" AmtVersions - Show all Intel ME version information.");console.log(" AmtHashes - Show all Intel AMT trusted activation hashes.");console.log(" AmtCCM - Activate Intel AMT into Client Control Mode.");console.log(" AmtDeactivate - Deactivate Intel AMT if activated in Client Control mode.");console.log("\r\nValid local or remote actions:");console.log(" MeshCommander - Launch a local MeshCommander web server.");console.log(" AmtUUID - Show Intel AMT unique identifier.");console.log(" AmtAuditLog - Show the Intel AMT audit log.");console.log(" AmtLoadWebApp - Load MeshCommander in Intel AMT 11.6+ firmware.");console.log(" AmtClearWebApp - Clear everything from Intel AMT web storage.");console.log(" AmtStorageState - Show contents of the Intel AMT web storage.");console.log(" AmtSaveState - Save all Intel AMT WSMAN object to file.");console.log(" AmtPresence - Heartbeat a local Intel AMT watchdog agent.");console.log(" AmtScript - Run .mescript on Intel AMT.");console.log("\r\nHelp on a specific action using:\r\n");console.log(" meshcmd help [action]");exit(1);return}if(settings.action=="help"){if(j.length<=2){d.shift();console.log("Help usage:\r\n\r\n MeshCmd help [action]\r\n\r\nValid actions are: "+d.join(", ")+".");exit(1);return}var a=j[2].toLowerCase();if(a=="route"){console.log("The route action is used along with a MeshCentral account to map a local TCP port to a remote port on any computer on your MeshCentral account. This action requires many arguments, to avoid specifying them all it's best to download the meshaction.txt file from the web site and place it in the current folder. Example usage:\r\n\r\n (Place meshaction.txt file in current folder)\r\n meshcmd route --pass myAccountPassword")}else{if(a=="smbios"){console.log("SMBios action will display this computer's system management BIOS information. Example usage:\r\n\r\n meshcmd smbios --out smbios.txt\r\n");console.log("\rOptional arguments:\r\n");console.log(" --output [filename] Optional filename to write the results to.")}else{if(a=="rawsmbios"){console.log("RawSMBios action will display this computer's system management BIOS information in raw hexdecimal form. Example usage:\r\n\r\n meshcmd rawsmbios --out smbios.txt\r\n");console.log("\rOptional arguments:\r\n");console.log(" --output [filename] Optional filename to write the results to.")}else{if(a=="amtinfo"){console.log("AmtInfo action will get the version and activation state of Intel AMT on this computer. The command must be run on a computer with Intel AMT, must run as administrator and the Intel management driver must be installed. Example usage:\r\n\r\n meshcmd amtinfo")}else{if((a=="amtversion")||(a=="amtversions")){console.log("AmtVersions will display all version information about Intel AMT on this computer. The command must be run on a computer with Intel AMT, must run as administrator and the Intel management driver must be installed. Example usage:\r\n\r\n meshcmd amtversions")}else{if(a=="amthashes"){console.log("Amthashes will display all trusted activations hashes for Intel AMT on this computer. The command must be run on a computer with Intel AMT, must run as administrator and the Intel management driver must be installed. These certificates hashes are used by Intel AMT when performing activation into ACM mode. Example usage:\r\n\r\n meshcmd amthashes")}else{if((a=="microlms")||(a=="lms")||(a=="amtlms")){console.log("Starts MicroLMS on this computer, allowing local access to Intel AMT on TCP ports 16992 and 16993 when applicable. The command must be run on a computer with Intel AMT, must run as administrator and the Intel management driver must be installed. These certificates hashes are used by Intel AMT when performing activation into ACM mode. Example usage:\r\n\r\n meshcmd microlms");console.log("\r\nPossible arguments:\r\n");console.log(" --noconsole MeshCommander for LMS will no be available on port 16994.");console.log("\r\nRun as a background service:\r\n");console.log(" microlms install/uninstall/start/stop.")}else{if(a=="amtccm"){console.log('AmtCCM will attempt to activate Intel AMT on this computer into client control mode (CCM). The command must be run on a computer with Intel AMT, must run as administrator and the Intel management driver must be installed. Intel AMT must be in "pre-provisioning" state for this command to work and a administrator password must be provided. Example usage:\r\n\r\n meshcmd amtccm --pass mypassword')}else{if(a=="amtdeactivate"){console.log("AmtDeactivate will attempt to deactivate Intel AMT on this computer when in client control mode (CCM). The command must be run on a computer with Intel AMT, must run as administrator and the Intel management driver must be installed. Intel AMT must be activated in client control mode for this command to work. Example usage:\r\n\r\n meshcmd amtdeactivate")}else{if(a=="amtuuid"){console.log("AmtUUID action will get the unique identifier of the local or remote Intel AMT computer. By default, the local UUID is obtained unless a host is specified. Intel AMT must be activated for this command to work. Example usage:\r\n\r\n meshcmd amtuuid --host 1.2.3.4 --user admin --pass mypassword --tls");console.log("\r\nPossible arguments:\r\n");console.log(" --host [hostname] The IP address or DNS name of Intel AMT, 127.0.0.1 is default.");console.log(" --user [username] The Intel AMT login username, admin is default.");console.log(" --pass [password] The Intel AMT login password.");console.log(" --tls Specifies that TLS must be used.")}else{if((a=="amtloadwebapp")||(a=="amtloadsmallwebapp")||(a=="amtloadlargewebapp")||(a=="amtclearwebapp")||(a=="amtstoragestate")){console.log('AmtLoadWebApp action will load MeshCommander into Intel AMT 11.6 or higher. If the computer is in ACM mode, MeshCommander will replace the default index.htm on HTTP/16992 or HTTPS/16993. If Intel AMT is in CCM mode, MeshCommander will be installed alongside the default web page and will be accessible in the "Web Applications" section. This action works on Intel AMT 11.6 and higher only. Example usage:\r\n\r\n meshcmd amtloadwebapp --host 1.2.3.4 --user admin --pass mypassword --tls');console.log("\r\nPossible arguments:\r\n");console.log(" --host [hostname] The IP address or DNS name of Intel AMT, 127.0.0.1 is default.");console.log(" --user [username] The Intel AMT login username, admin is default.");console.log(" --pass [password] The Intel AMT login password.");console.log(" --tls Specifies that TLS must be used.")}else{if(a=="amtclearwebstorage"){console.log("AmtClearWebStorage will clear the web storage of Intel AMT, removing any loaded firmware version of MeshCommander. This command can clear the local or a remote Intel AMT computer. By default, the local computer storage is cleared unless a host is specified. Intel AMT must be activated for this command to work. This action works on Intel AMT 11.6 and higher only. Example usage:\r\n\r\n meshcmd amtclearwebstorage --host 1.2.3.4 --user admin --pass mypassword --tls");console.log("\r\nPossible arguments:\r\n");console.log(" --host [hostname] The IP address or DNS name of Intel AMT, 127.0.0.1 is default.");console.log(" --user [username] The Intel AMT login username, admin is default.");console.log(" --pass [password] The Intel AMT login password.");console.log(" --tls Specifies that TLS must be used.")}else{if(a=="amtstoragestate"){console.log("AmtStorageState will display the content of the web storage of Intel AMT including any loaded firmware version of MeshCommander. This command can read the storage state of a local or remote Intel AMT computer. By default, the local computer storage state is displayed unless a host is specified. Intel AMT must be activated for this command to work. This action works on Intel AMT 11.6 and higher only. Example usage:\r\n\r\n meshcmd amtstoragestate --host 1.2.3.4 --user admin --pass mypassword --tls");console.log("\r\nPossible arguments:\r\n");console.log(" --host [hostname] The IP address or DNS name of Intel AMT, 127.0.0.1 is default.");console.log(" --user [username] The Intel AMT login username, admin is default.");console.log(" --pass [password] The Intel AMT login password.");console.log(" --tls Specifies that TLS must be used.")}else{if(a=="amtsavestate"){console.log("AmtSaveState action will fetch all the entire state of Intel AMT and save it as a JSON file. This action will take multiple minutes to perform. The command will fetch the local computer state unless host is specified. Intel AMT must be ativated for this command to work. Example usage:\r\n\r\n meshcmd amtsavestate --host 1.2.3.4 --user admin --pass mypassword --tls --output state.json");console.log("\r\nPossible arguments:\r\n");console.log(" --output [filename] The output file for the Intel AMT state in JSON format.");console.log(" --host [hostname] The IP address or DNS name of Intel AMT, 127.0.0.1 is default.");console.log(" --user [username] The Intel AMT login username, admin is default.");console.log(" --pass [password] The Intel AMT login password.");console.log(" --tls Specifies that TLS must be used.")}else{if(a=="amtpresence"){console.log("AmtPresence will heartbeat a local Intel AMT watchdog agent. Example usage:\r\n\r\n meshcmd amtpresence --agent B4B6A24C-255E-A75C-F5E8-B00B4D946AA7");console.log("\r\nPossible arguments:\r\n");console.log(" --user [username] The Intel AMT login username, admin is default.");console.log(" --pass [password] The Intel AMT login password.");console.log(" --agent [uuid] The unique identifier of the watchdog agent.")}else{if(a=="amtscript"){console.log("AmtScript will run a .mescript file on the local or remote Intel AMT. Script files can be built using the MeshCommander script editor and be used to setup or perform actions on Intel AMT. Example usage:\r\n\r\n meshcmd amtscript --script myscript.mescript --host 1.2.3.4 --user admin --pass mypassword --tls");console.log("\r\nPossible arguments:\r\n");console.log(" --script [filename] The script file to run on Intel AMT.");console.log(" --host [hostname] The IP address or DNS name of Intel AMT, 127.0.0.1 is default.");console.log(" --user [username] The Intel AMT login username, admin is default.");console.log(" --pass [password] The Intel AMT login password.");console.log(" --tls Specifies that TLS must be used.")}else{if(a=="meshcommander"){console.log("This action launched a local web server that hosts MeshCommander, a Intel AMT management console.");console.log("\r\nPossible arguments:\r\n");console.log(" --localport [port] Local port used for the web server, 3000 is default.");console.log("\r\nRun as a background service:\r\n");console.log(" meshcommander install/uninstall/start/stop.")}else{if(a=="amtauditlog"){console.log("AmtAuditLog action will fetch the local or remote audit log. If used localy, no username/password is required. Example usage:\r\n\r\n meshcmd amtauditlog --host 1.2.3.4 --user admin --pass mypassword --tls --output audit.json");console.log("\r\nPossible arguments:\r\n");console.log(" --output [filename] The output file for the Intel AMT state in JSON format.");console.log(" --host [hostname] The IP address or DNS name of Intel AMT, 127.0.0.1 is default.");console.log(" --user [username] The Intel AMT login username, admin is default.");console.log(" --pass [password] The Intel AMT login password.");console.log(" --tls Specifies that TLS must be used.")}else{d.shift();console.log("Invalid action, usage:\r\n\r\n meshcmd help [action]\r\n\r\nValid actions are: "+d.join(", ")+".")}}}}}}}}}}}}}}}}}}exit(1);return}settings.action=settings.action.toLowerCase();debug(1,"Settings: "+JSON.stringify(settings));if(settings.action=="smbios"){SMBiosTables=require("smbios");SMBiosTables.get(function(e){var n=SMBiosTables.parse(e);var m=objToString(n,0,"\r\n");if(settings.output==null){console.log(m)}else{var l=fs.openSync(settings.output,"w");fs.writeSync(l,Buffer.from(m,"utf8"));fs.closeSync(l)}exit(1)})}else{if(settings.action=="rawsmbios"){SMBiosTables=require("smbios");SMBiosTables.get(function(e){var p="";for(var n in e){var m=false;for(var o in e[n]){if(e[n][o].length>0){if(m==false){p+=("Table type #"+n+((SMBiosTables.smTableTypes[n]==null)?"":(", "+SMBiosTables.smTableTypes[n])))+"\r\n";m=true}p+=(" "+e[n][o].toString("hex"))+"\r\n"}}}if(settings.output==null){console.log(p)}else{var l=fs.openSync(settings.output,"w");fs.writeSync(l,Buffer.from(p,"utf8"));fs.closeSync(l)}exit(1)})}else{if(settings.action=="route"){if((settings.localPort==null)||(typeof settings.localPort!="number")||(settings.localPort<0)||(settings.localPort>65535)){console.log('No or invalid "localPort" specified, use --localport [localport].');exit(1);return}if((settings.remoteNodeId==null)||(typeof settings.remoteNodeId!="string")){console.log('No or invalid "remoteNodeId" specified.');exit(1);return}if((settings.username==null)||(typeof settings.username!="string")||(settings.username=="")){console.log('No or invalid "username" specified, use --username [username].');exit(1);return}if((settings.password==null)||(typeof settings.password!="string")||(settings.password=="")){console.log('No or invalid "password" specified, use --password [password].');exit(1);return}if((settings.serverId==null)||(typeof settings.serverId!="string")||(settings.serverId.length!=96)){console.log('No or invalid "serverId" specified.');exit(1);return}if((settings.serverHttpsHash==null)||(typeof settings.serverHttpsHash!="string")||(settings.serverHttpsHash.length!=96)){console.log('No or invalid "serverHttpsHash" specified.');exit(1);return}if((settings.remotePort==null)||(typeof settings.remotePort!="number")||(settings.remotePort<0)||(settings.remotePort>65535)){console.log('No or invalid "remotePort" specified, use --remoteport [remoteport].');exit(1);return}if(settings.serverUrl!=null){startRouter()}else{discoverMeshServer()}}else{if((settings.action=="amtloadwebapp")||(settings.action=="amtloadsmallwebapp")||(settings.action=="amtloadlargewebapp")||(settings.action=="amtclearwebapp")||(settings.action=="amtstoragestate")){if((settings.password==null)||(typeof settings.password!="string")||(settings.password=="")){console.log('No or invalid "password" specified, use --password [password].');exit(1);return}if((settings.hostname==null)||(typeof settings.hostname!="string")||(settings.hostname=="")){settings.hostname="127.0.0.1"}if((settings.username==null)||(typeof settings.username!="string")||(settings.username=="")){settings.username="admin"}settings.protocol="http:";settings.localport=16992;debug(1,"Settings: "+JSON.stringify(settings));digest=require("http-digest").create(settings.username,settings.password);digest.http=require("http");if(settings.action=="amtstoragestate"){getAmtStorage(function(l,e){if(l==200){console.log("Storage State: "+JSON.stringify(e,null,2));exit();return}else{console.log("Unable to read storage state.");exit();return}})}else{if(settings.action=="amtloadwebapp"){settings.webapp=Medium_IntelAmtWebApp}else{if(settings.action=="amtloadsmallwebapp"){settings.webapp=Small_IntelAmtWebApp}else{if(settings.action=="amtloadlargewebapp"){settings.webapp=Large_IntelAmtWebApp}else{if(settings.action=="amtclearwebapp"){settings.webapp=null}}}}nextStepStorageUpload()}}else{if((settings.action=="amtversion")||(settings.action=="amtversions")||(settings.action=="amtver")){var g=require("amt-mei");var f=new g();f.on("error",function(l){console.log("ERROR: "+l);exit(1);return});f.getVersion(function(e){console.log("MEI Version = "+e.BiosVersion.toString());for(var l in e.Versions){console.log(e.Versions[l].Description+" = "+e.Versions[l].Version)}exit(1);return})}else{if(settings.action=="amthashes"){var g=require("amt-mei");var f=new g();f.on("error",function(l){console.log("ERROR: "+l);exit(1);return});f.getHashHandles(function(e){exitOnCount=e.length;for(var l=0;l100){lmsNotifications.shift()}var l=Buffer.concat([Buffer.from("0900","hex"),Buffer.from(JSON.stringify(k))]);for(var j in lmsControlSockets){lmsControlSockets[j].write(l)}}}});amtLms.on("connect",function(){console.log("LMS Connected");amtLms.connected=true;if(settings.noconsole!==true){amtLms.meshCommander=e.createServer();amtLms.meshCommander.listen(16994);amtLms.meshCommander.on("upgrade",function(j,k,g){switch(j.url.split("?")[0]){case"/lms.ashx":k.ws=k.upgradeWebSocket();k.ws.on("data",processLmsControlData);k.ws.on("end",function(){if(lmsControlSockets[this.id]){delete lmsControlSockets[this.id]}});var h=lmsControlSocketsNextId++;lmsControlSockets[h]=k.ws;k.ws.id=h;break;case"/webrelay.ashx":k.ws=k.upgradeWebSocket();amtLms.bindDuplexStream(k.ws,"IPv4",16992);break;default:k.end();break}});amtLms.meshCommander.on("request",function(j,k){switch(j.url.split("?")[0]){case"/":var h=null;try{h=fs.readFileSync("lmscommander.htm")}catch(g){}if(h!=null){k.writeHead(200,"OK",{Server:"JSLMS","Cache-Control":"max-age=0, no-cache","X-Frame-Options":"DENY","Content-Type":"text/html","Transfer-Encoding":"chunked"});k.end(h)}else{k.writeHead(200,"OK",{Server:"JSLMS","Cache-Control":"max-age=0, no-cache","X-Frame-Options":"DENY","Content-Type":"text/html","Content-Encoding":"gzip","Transfer-Encoding":"chunked",ETag:b});k.end(Buffer.from(a,"base64"))}break;default:k.statusCode=404;k.statusMessage="Not Found";k.end();break}});tempTimer=setTimeout(function(){delete tempTimer;setupMeiOsAdmin(d,2)},100)}else{tempTimer=setTimeout(function(){delete tempTimer;setupMeiOsAdmin(d,1)},100)}})}function setupMeiOsAdmin(a,b){amtMei.getLocalSystemAccount(function(f){var d=require("amt-wsman-duk");var e=require("amt-wsman");var c=require("amt");oswsstack=new e(d,"127.0.0.1",16992,f.user,f.pass,false);osamtstack=new c(oswsstack);if(a){a(b)}amtMei.getVersion(function(k){var g=null;try{for(var j in k.Versions){if(k.Versions[j].Description=="AMT"){g=parseInt(k.Versions[j].Version.split(".")[0])}}}catch(h){}if((g!=null)&&(g>=12)){kvmGetData("skip");tempTimer=setInterval(function(){kvmGetData()},2000);kvmSetData(JSON.stringify({action:"restart",ver:1}))}})})}function kvmGetData(a){osamtstack.IPS_KVMRedirectionSettingData_DataChannelRead(kvmDataGetResponse,a)}function kvmDataGetResponse(d,b,c,f,g){if((g!="skip")&&(f==200)&&(c.Body.ReturnValue==0)){var h=null;try{h=Buffer.from(c.Body.DataMessage,"base64").toString()}catch(a){return}if(h!=null){kvmProcessData(c.Body.RealmsBitmap,c.Body.MessageId,h)}}}var webRtcDesktop=null;function kvmProcessData(d,c,g){var a=null;try{a=JSON.parse(g)}catch(b){}if((a!=null)&&(a.action)){if(a.action=="present"){kvmSetData(JSON.stringify({action:"present",ver:1,platform:process.platform}))}if(a.action=="offer"){webRtcDesktop={};var f=require("ILibWebRTC");webRtcDesktop.webrtc=f.createConnection();webRtcDesktop.webrtc.on("connected",function(){});webRtcDesktop.webrtc.on("disconnected",function(){webRtcCleanUp()});webRtcDesktop.webrtc.on("dataChannel",function(h){webRtcDesktop.rtcchannel=h;var e=require("meshDesktop");webRtcDesktop.kvm=e.getRemoteDesktopStream();webRtcDesktop.kvm.pipe(webRtcDesktop.rtcchannel,{dataTypeSkip:1,end:false});webRtcDesktop.rtcchannel.on("end",function(){webRtcCleanUp()});webRtcDesktop.rtcchannel.on("data",function(j){kvmCtrlData(this,j)});webRtcDesktop.rtcchannel.pipe(webRtcDesktop.kvm,{dataTypeSkip:1,end:false})});kvmSetData(JSON.stringify({action:"answer",ver:1,sdp:webRtcDesktop.webrtc.setOffer(a.sdp)}))}}}var path={join:function(){var c=[];for(var a in arguments){var b=arguments[a];if(b!=null){while(b.endsWith("/")||b.endsWith("\\")){b=b.substring(0,b.length-1)}if(a!=0){while(b.startsWith("/")||b.startsWith("\\")){b=b.substring(1)}}c.push(b)}}if(c.length==0){return"/"}return c.join("/")}};function getDirectoryInfo(f){var g={path:f,dir:[]};if(((f==undefined)||(f==""))&&(process.platform=="win32")){var h=null;try{h=fs.readDrivesSync()}catch(b){}if(h!=null){for(var c=0;c0&&c.charCodeAt(0)!=123){if(this.fileupload!=null){c=Buffer.from(c,"base64");var k=c.readUInt32BE(0);if((k==16777216)||(k==16777217)){fs.writeSync(this.fileupload.fp,c.slice(4));b.write({action:"upload",sub:"ack",reqid:this.fileupload.reqid});if(k==16777217){fs.closeSync(this.fileupload.fp);this.fileupload=null}}}return}try{c=JSON.parse(c)}catch(g){console.error("Invalid JSON: "+c);return}if((c.path!=null)&&(process.platform!="win32")&&(c.path[0]!="/")){c.path="/"+c.path}switch(c.action){case"ping":b.write({action:"pong"});break;case"ls":var p=getDirectoryInfo(c.path);if(c.reqid!=undefined){p.reqid=c.reqid}b.write(p);break;case"mkdir":fs.mkdirSync(c.path);break;case"rm":for(var l in c.delfiles){var j=path.join(c.path,c.delfiles[l]);try{fs.unlinkSync(j)}catch(f){console.log(f)}}break;case"rename":var o=path.join(c.path,c.oldname);var n=path.join(c.path,c.newname);try{fs.renameSync(o,n)}catch(f){console.log(f)}break;case"download":var r=0;if(c.sub=="start"){if(this.filedownload!=null){b.write({action:"download",sub:"cancel",id:this.filedownload.id});delete this.filedownload}this.filedownload={id:c.id,path:c.path,ptr:0};try{this.filedownload.f=fs.openSync(this.filedownload.path,"rbN")}catch(f){b.write({action:"download",sub:"cancel",id:this.filedownload.id});delete this.filedownload}if(this.filedownload){b.write({action:"download",sub:"start",id:c.id})}}else{if((this.filedownload!=null)&&(c.id==this.filedownload.id)){if(c.sub=="startack"){r=8}else{if(c.sub=="stop"){delete this.filedownload}else{if(c.sub=="ack"){r=1}}}}}while(r>0){r--;var a=Buffer.alloc(4096);var m=fs.readSync(this.filedownload.f,a,4,4092,null);this.filedownload.ptr+=m;if(m<4092){a.writeInt32BE(16777217,0);fs.closeSync(this.filedownload.f);delete this.filedownload;r=0}else{a.writeInt32BE(16777216,0)}b.write(a.slice(0,m+4).toString("base64"))}break;case"upload":if(c.sub=="start"){if(this.fileupload!=null){fs.closeSync(this.fileupload.fp)}if(!c.path||!c.name){break}this.fileupload={reqid:c.reqid};var h=path.join(c.path,c.name);try{this.fileupload.fp=fs.openSync(h,"wbN")}catch(f){}if(this.fileupload.fp){b.write({action:"upload",sub:"start",reqid:this.fileupload.reqid})}else{this.fileupload=null;b.write({action:"upload",sub:"error",reqid:this.fileupload.reqid})}}else{if(c.sub=="cancel"){if(this.fileupload!=null){fs.closeSync(this.fileupload.fp);this.fileupload=null}}}break;case"copy":for(var l in c.names){var q=path.join(c.scpath,c.names[l]),d=path.join(c.dspath,c.names[l]);if(q!=d){try{fs.copyFileSync(q,d)}catch(f){}}}break;case"move":for(var l in c.names){var q=path.join(c.scpath,c.names[l]),d=path.join(c.dspath,c.names[l]);if(q!=d){try{fs.copyFileSync(q,d);fs.unlinkSync(q)}catch(f){}}}break;default:break}}function webRtcCleanUp(){if(webRtcDesktop==null){return}if(webRtcDesktop.rtcchannel){try{webRtcDesktop.rtcchannel.close()}catch(a){}try{webRtcDesktop.rtcchannel.removeAllListeners("data")}catch(a){}try{webRtcDesktop.rtcchannel.removeAllListeners("end")}catch(a){}delete webRtcDesktop.rtcchannel}if(webRtcDesktop.webrtc){try{webRtcDesktop.webrtc.close()}catch(a){}try{webRtcDesktop.webrtc.removeAllListeners("connected")}catch(a){}try{webRtcDesktop.webrtc.removeAllListeners("disconnected")}catch(a){}try{webRtcDesktop.webrtc.removeAllListeners("dataChannel")}catch(a){}delete webRtcDesktop.webrtc}if(webRtcDesktop.kvm){try{webRtcDesktop.kvm.end()}catch(a){}delete webRtcDesktop.kvm}webRtcDesktop=null}function kvmSetData(a){osamtstack.IPS_KVMRedirectionSettingData_DataChannelWrite(Buffer.from(a).toString("base64"),function(){})}function startLmsWsmanResponse(d,b,c,e){if(e==600){console.log("ERROR: Unable to connect to Intel(R) AMT.")}else{if(e!=200){console.log("ERROR: Unable to get object from Intel(R) AMT, status = "+e+".")}else{var a=c.CIM_SoftwareIdentity.responses;if(a.length>0){var f=getInstance(a,"AMT")["VersionString"];amtversion=parseInt(f.split(".")[0]);amtversionmin=parseInt(f.split(".")[1])}}}}function processLmsControlData(b){if(b.length<2){return}var a=b.readUInt16LE(0);switch(a){case 1:getAmtInfo(function(c,d){c.LoginMode=2;d.write(Buffer.concat([Buffer.from("0100","hex"),Buffer.from(JSON.stringify(c))]))},this);break;case 2:if(b.length<6){break}amtMei.unprovision(b.readUInt32LE(2),function(e,d){var c=Buffer.alloc(6);c.writeUInt16LE(2,0);c.writeUInt32LE(e,2);d.write(c)},this);break;case 3:amtMei.getLocalSystemAccount(function(c,d){d.write(Buffer.concat([Buffer.from("030000000000","hex"),c.raw]))},this);break;case 4:amtMei.startConfiguration(function(e,d){var c=Buffer.alloc(6);c.writeUInt16LE(7,0);c.writeUInt32LE(e,2);d.write(c)},this);break;case 5:amtMei.stopConfiguration(function(e,d){var c=Buffer.alloc(6);c.writeUInt16LE(7,0);c.writeUInt32LE(e,2);d.write(c)},this);break;case 6:amtMei.openUserInitiatedConnection(function(e,d){var c=Buffer.alloc(6);c.writeUInt16LE(7,0);c.writeUInt32LE(e,2);d.write(c)},this);break;case 7:amtMei.closeUserInitiatedConnection(function(e,d){var c=Buffer.alloc(6);c.writeUInt16LE(7,0);c.writeUInt32LE(e,2);d.write(c)},this);break;case 8:amtMei.getRemoteAccessConnectionStatus(function(e,d){var c=Buffer.alloc(6);c.writeUInt16LE(8,0);c.writeUInt32LE(e.status,2);d.write(Buffer.concat([c,e.raw]))},this);break;default:break}}function startRouter(){tcpserver=net.createServer(OnTcpClientConnected);tcpserver.on("error",function(a){console.log("ERROR: "+JSON.stringify(a));exit(0);return});tcpserver.listen(settings.localPort,function(){if(settings.remoteName==null){console.log("Redirecting local port "+settings.localPort+" to remote port "+settings.remotePort+".")}else{console.log("Redirecting local port "+settings.localPort+" to "+settings.remoteName+":"+settings.remotePort+".")}console.log("Press ctrl-c to exit.")})}function OnTcpClientConnected(a){try{debug(1,"Client connected");a.on("end",function(){disconnectTunnel(this,this.websocket,"Client closed")});a.pause();try{options=http.parseUri(settings.serverUrl+"?user="+settings.username+"&pass="+settings.password+"&nodeid="+settings.remoteNodeId+"&tcpport="+settings.remotePort)}catch(b){console.log('Unable to parse "serverUrl".');process.exit(1);return}options.checkServerIdentity=onVerifyServer;options.rejectUnauthorized=false;a.websocket=http.request(options);a.websocket.tcp=a;a.websocket.tunneling=false;a.websocket.upgrade=OnWebSocket;a.websocket.on("error",function(c){console.log("ERROR: "+JSON.stringify(c))});a.websocket.end()}catch(b){debug(2,b)}}function disconnectTunnel(c,d,b){if(d!=null){try{d.end()}catch(a){debug(2,a)}}if(c!=null){try{c.end()}catch(a){debug(2,a)}}debug(1,"Tunnel disconnected: "+b)}function OnWebSocket(b,c,a){debug(1,"Websocket connected");c.on("data",function(d){if(this.parent.tunneling==false){d=d.toString();if(d=="c"){this.parent.tunneling=true;this.pipe(this.parent.tcp);this.parent.tcp.pipe(this);debug(1,"Tunnel active")}else{if((d.length>6)&&(d.substring(0,6)=="error:")){console.log(d.substring(6));disconnectTunnel(this.tcp,this,d.substring(6))}}}});c.on("error",function(d){disconnectTunnel(this.tcp,this,"Websocket error")});c.on("close",function(d){disconnectTunnel(this.tcp,this,"Websocket closed")});c.parent=this}function discoverMeshServer(){console.log("Looking for server...");discoveryInterval=setInterval(discoverMeshServerOnce,5000);discoverMeshServerOnce()}function discoverMeshServerOnce(){var f=os.networkInterfaces();for(var a in f){if(f.hasOwnProperty(a)){for(var d=0;d0)?"":"Content-Encoding:gzipContent-Type:text/html"+((e!=null)?(""+e+""):"")+"";var a=((b.length-g)>(7000-d.length))?(7000-d.length):(b.length-g);h.write(Buffer.concat([new Buffer(d),b.slice(g,g+a)]));g+=a;h.end()}function verifyStorage(c,a,b){var d=digest.request({protocol:settings.protocol,method:"GET",host:settings.hostname,path:("/amt-storage/"+c),port:settings.localport});d.on("error",function(f){console.log("Verify error occured: "+JSON.stringify(f));if(b!=null){b(null)}});d.on("response",function(e){e.ptr=0;e.ok=true;e.on("data",function(f){if(f.toString("hex")!=a.slice(e.ptr,e.ptr+f.length).toString("hex")){e.ok=false;console.log("Verifiy failed ("+e.ptr+", "+f.length+").")}e.ptr+=f.length});e.on("end",function(){if(b!=null){b(e.ok)}})});d.end()}function deleteStorage(b,a,c){var d=digest.request({protocol:settings.protocol,method:"DELETE",host:settings.hostname,path:"/amt-storage/"+b,port:settings.localport});d.on("error",function(f){if((f=="Error: Socket was unexpectedly closed")&&(c!=true)){deleteStorage(b,a,true)}else{if(a!=null){if(f.statusCode){a(f.statusCode)}else{a(null)}}}});d.on("response",function(e){if(a!=null){a(e.statusCode)}});d.end()}function parseUrlArguments(d){var c={},e=d.split("?");if(e.length<2){return c}e=e[1].split("&");for(var a in e){var b=e[a].indexOf("=");if(b>0){c[e[a].substring(0,b).toLowerCase()]=e[a].substring(b+1)}}return c}function removeItemFromArray(a,b){var c=a.indexOf(b);if(c!==-1){a.splice(c,1)}}var serviceName=null;var serviceOpSpecified=0;var serviceInstall=0;for(var i in process.argv){if(process.argv[i].toLowerCase()=="install"){serviceInstall=1}else{if(process.argv[i].toLowerCase()=="uninstall"){serviceInstall=-1}}if((process.argv[i].toLowerCase()=="microlms")||(process.argv[i].toLowerCase()=="amtlms")||(process.argv[i].toLowerCase()=="lms")){serviceName="MicroLMS";break}if((process.argv[i].toLowerCase()=="meshcommander")||(process.argv[i].toLowerCase()=="commander")){serviceName="MeshCommander";break}}if(serviceName==null){for(var i in process.argv){if((process.argv[i].toLowerCase()=="install")||(process.argv[i].toLowerCase()=="uninstall")){console.log("In order to install/uninstall, a service type must be specified.");process.exit()}}if(process.execPath.includes("MicroLMS")){serviceName="MicroLMS"}else{if(process.execPath.includes("MeshCommander")){serviceName="MeshCommander"}else{serviceName="not_a_service"}}}if(serviceInstall==0){run(process.argv)}else{var serviceHost=require("service-host");var meshcmdService=new serviceHost({name:serviceName,startType:"AUTO_START"});meshcmdService.on("serviceStart",function onStart(){console.setDestination(console.Destinations.DISABLED);if(process.execPath.includes("MicroLMS")){run([process.execPath,"microlms"])}else{if(process.execPath.includes("MeshCommander")){run([process.execPath,"meshcommander"])}else{console.log("Aborting Service Start, because unknown binary: "+process.execPath);process.exit(1)}}});meshcmdService.on("serviceStop",function onStop(){console.log("Stopping service");process.exit()});meshcmdService.on("normalStart",function onNormalStart(){try{run(process.argv)}catch(a){console.log("ERROR: "+a)}});meshcmdService.run()}; \ No newline at end of file diff --git a/agents/meshcore.js b/agents/meshcore.js index 554196cf..af294985 100644 --- a/agents/meshcore.js +++ b/agents/meshcore.js @@ -462,6 +462,9 @@ function createMeshCore(agent) { if (data.url) { mesh.SendCommand({ "action": "msg", "type":"openUrl", "url": data.url, "sessionid": data.sessionid, "success": (openUserDesktopUrl(data.url) != null) }); } break; } + default: + // Unknown action, ignore it. + break; } break; } @@ -499,6 +502,9 @@ function createMeshCore(agent) { if (data.url) { mesh.SendCommand({ "action": "openUrl", "url": data.url, "sessionid": data.sessionid, "success": (openUserDesktopUrl(data.url) != null) }); } break; } + default: + // Unknown action, ignore it. + break; } } } @@ -888,6 +894,9 @@ function createMeshCore(agent) { } break; } + default: + // Unknown action, ignore it. + break; } } //sendConsoleText("Got tunnel #" + this.httprequest.index + " data: " + data, this.httprequest.sessionid); @@ -927,6 +936,9 @@ function createMeshCore(agent) { } catch (e) { } break; } + default: + // Unknown action, ignore it. + break; } return; } @@ -1045,6 +1057,9 @@ function createMeshCore(agent) { case 'darwin': child = require('child_process').execFile('/usr/bin/open', ['open', url], { uid: require('user-sessions').consoleUid() }); break; + default: + // Unknown platform, ignore this command. + break; } } catch (ex) { } return child; @@ -1605,6 +1620,7 @@ function createMeshCore(agent) { switch (amtMessage) { case 'iAMT0050': { if (amtMessageArg == '48') { notify = 'Intel® AMT Serial-over-LAN connected'; } else if (amtMessageArg == '49') { notify = 'Intel® AMT Serial-over-LAN disconnected'; } break; } // SOL case 'iAMT0052': { if (amtMessageArg == '1') { notify = 'Intel® AMT KVM connected'; } else if (amtMessageArg == '2') { notify = 'Intel® AMT KVM disconnected'; } break; } // KVM + default: { break; } } // Send to the entire mesh, no sessionid or userid specified. @@ -1898,6 +1914,11 @@ function createMeshCore(agent) { } break; } + default: { + console.log('Invalid KVM command', cmd); + sendConsoleText('Invalid KVM command: ' + cmd); + break; + } } } diff --git a/agents/meshcore.min.js b/agents/meshcore.min.js index 4dbddeca..dddd9f87 100644 --- a/agents/meshcore.min.js +++ b/agents/meshcore.min.js @@ -1 +1 @@ -process.on("uncaughtException",function(a){require("MeshAgent").SendCommand({action:"msg",type:"console",value:"uncaughtException1: "+a})});var MESHRIGHT_EDITMESH=1;var MESHRIGHT_MANAGEUSERS=2;var MESHRIGHT_MANAGECOMPUTERS=4;var MESHRIGHT_REMOTECONTROL=8;var MESHRIGHT_AGENTCONSOLE=16;var MESHRIGHT_SERVERFILES=32;var MESHRIGHT_WAKEDEVICE=64;var MESHRIGHT_SETNOTES=128;var MESHRIGHT_REMOTEVIEW=256;function createMeshCore(agent){var obj={};var meshCoreObj={action:"coreinfo",value:"MeshCore v6",caps:14};try{require("os").name().then(function(v){meshCoreObj.osdesc=v})}catch(ex){}var meshServerConnectionState=0;var tunnels={};var lastMeInfo=null;var lastNetworkInfo=null;var lastPublicLocationInfo=null;var selfInfoUpdateTimer=null;var http=require("http");var net=require("net");var fs=require("fs");var rtc=require("ILibWebRTC");var processManager=require("process-manager");var amtMei=null,amtLms=null,amtLmsState=0;var amtMeiConnected=0,amtMeiTmpState=null;var wifiScannerLib=null;var wifiScanner=null;var networkMonitor=null;var amtscanner=null;var nextTunnelIndex=1;var oswsstack=null;var osamtstack=null;if(agent==null){db=require("SimpleDataStore").Shared();sha=require("SHA256Stream");mesh=require("MeshAgent");childProcess=require("child_process");if(mesh.hasKVM==1){try{if((process.platform=="win32")||(process.platform=="darwin")||(require("monitor-info").kvm_x11_support)){meshCoreObj.caps|=1}}catch(ex){}}}else{meshCoreObj.value+="-NodeJS";meshCoreObj.caps=8;mesh=agent.getMeshApi()}try{var AMTScannerModule=require("amt-scanner");amtscanner=new AMTScannerModule()}catch(ex){amtscanner=null}var SMBiosTables=null;var SMBiosTablesRaw=null;try{var SMBiosModule=null;try{SMBiosModule=require("smbios")}catch(ex){}if(SMBiosModule!=null){SMBiosModule.get(function(data){if(data!=null){SMBiosTablesRaw=data;SMBiosTables=require("smbios").parse(data);if(mesh.isControlChannelConnected){mesh.SendCommand({action:"smbios",value:SMBiosTablesRaw})}if(SMBiosTables.amtInfo&&(SMBiosTables.amtInfo.AMT==true)){resetMei()}}})}}catch(ex){sendConsoleText(ex)}try{var wifiScannerLib=require("wifi-scanner");wifiScanner=new wifiScannerLib();wifiScanner.on("accessPoint",function(data){sendConsoleText(data)})}catch(ex){wifiScannerLib=null;wifiScanner=null}function resetMei(){try{var amtMeiLib=require("amt-mei");amtMei=new amtMeiLib();amtMei.on("error",function(e){amtMeiLib=null;amtMei=null;amtMeiConnected=-1;sendConsoleText("MEI Error.")});amtMeiConnected=2;sendPeriodicServerUpdate(1)}catch(ex){amtMeiLib=null;amtMei=null;amtMeiConnected=-1}}var getIpLocationDataExInProgress=false;var getIpLocationDataExCounts=[0,0];function getIpLocationDataEx(func){if(getIpLocationDataExInProgress==true){return false}try{getIpLocationDataExInProgress=true;getIpLocationDataExCounts[0]++;var options=http.parseUri("http://ipinfo.io/json");options.method="GET";http.request(options,function(resp){if(resp.statusCode==200){var geoData="";resp.data=function(geoipdata){geoData+=geoipdata};resp.end=function(){var location=null;try{if(typeof geoData=="string"){var result=JSON.parse(geoData);if(result.ip&&result.loc){location=result}}}catch(e){}if(func){getIpLocationDataExCounts[1]++;func(location)}}}else{func(null)}getIpLocationDataExInProgress=false}).end();return true}catch(e){return false}}function clearGatewayMac(str){if(str==null){return null}var x=JSON.parse(str);for(var i in x.netif){if(x.netif[i].gatewaymac){delete x.netif[i].gatewaymac}}return JSON.stringify(x)}function getIpLocationData(func){var publicLocationInfo=db.Get("publicLocationInfo");if(publicLocationInfo!=null){publicLocationInfo=JSON.parse(publicLocationInfo)}if(publicLocationInfo==null){getIpLocationDataEx(function(locationData){if(locationData!=null){publicLocationInfo={};publicLocationInfo.netInfoStr=lastNetworkInfo;publicLocationInfo.locationData=locationData;var x=db.Put("publicLocationInfo",JSON.stringify(publicLocationInfo));if(func){func(locationData)}}else{if(func){func(null)}}})}else{if(clearGatewayMac(publicLocationInfo.netInfoStr)==clearGatewayMac(lastNetworkInfo)){if(func){func(publicLocationInfo.locationData)}}else{getIpLocationDataEx(function(locationData){if(locationData!=null){publicLocationInfo={};publicLocationInfo.netInfoStr=lastNetworkInfo;publicLocationInfo.locationData=locationData;var x=db.Put("publicLocationInfo",JSON.stringify(publicLocationInfo));if(func){func(locationData)}}else{if(func){func(publicLocationInfo.locationData)}}})}}}if(!String.prototype.endsWith){String.prototype.endsWith=function(searchString,position){var subjectString=this.toString();if(typeof position!=="number"||!isFinite(position)||Math.floor(position)!==position||position>subjectString.length){position=subjectString.length}position-=searchString.length;var lastIndex=subjectString.lastIndexOf(searchString,position);return lastIndex!==-1&&lastIndex===position}}obj.path={join:function(){var x=[];for(var i in arguments){var w=arguments[i];if(w!=null){while(w.endsWith("/")||w.endsWith("\\")){w=w.substring(0,w.length-1)}if(i!=0){while(w.startsWith("/")||w.startsWith("\\")){w=w.substring(1)}}x.push(w)}}if(x.length==0){return"/"}return x.join("/")}};function toNumberIfNumber(x){if((typeof x=="string")&&(+parseInt(x)===x)){x=parseInt(x)}return x}function char2hex(i){return(i+256).toString(16).substr(-2).toUpperCase()}function rstr2hex(input){var r="",i;for(i=0;i8){return"[...]"}if(x==undefined){return"[undefined]"}if(typeof x=="string"){if(p==0){return x}return'"'+x+'"'}if(typeof x=="buffer"){return"[buffer]"}if(typeof x!="object"){return x}var r="{"+(ret?"\r\n":" ");for(var i in x){if(i!="_ObjectID"){r+=(addPad(p+2,pad)+i+": "+objToString(x[i],p+2,pad,ret)+(ret?"\r\n":" "))}}return r+addPad(p,pad)+"}"}function addPad(p,ret){var r="";for(var i=0;i2&&x[0]=="-"&&x[1]=="-"){if(current!=null){results[current]=true}current=x.substring(2)}else{if(current!=null){results[current]=toNumberIfNumber(x);current=null}else{results._.push(toNumberIfNumber(x))}}}if(current!=null){results[current]=true}return results}function getServerTargetUrl(path){var x=mesh.ServerUrl;if(x==null){return null}if(path==null){path=""}x=http.parseUri(x);if(x==null){return null}return x.protocol+"//"+x.host+":"+x.port+"/"+path}function getServerTargetUrlEx(url){if(url.substring(0,2)=="*/"){return getServerTargetUrl(url.substring(2))}return url}function sendWakeOnLan(hexMac){var count=0;try{var interfaces=require("os").networkInterfaces();var magic="FFFFFFFFFFFF";for(var x=1;x<=16;++x){magic+=hexMac}var magicbin=Buffer.from(magic,"hex");for(var adapter in interfaces){if(interfaces.hasOwnProperty(adapter)){for(var i=0;i0){sendNextBlock--;var buf=new Buffer(4096);var len=fs.readSync(this.filedownload.f,buf,4,4092,null);this.filedownload.ptr+=len;if(len<4092){buf.writeInt32BE(16777217,0);fs.closeSync(this.filedownload.f);delete this.filedownload;sendNextBlock=0}else{buf.writeInt32BE(16777216,0)}this.write(buf.slice(0,len+4))}break;case"upload":if(this.httprequest.uploadFile!=undefined){fs.closeSync(this.httprequest.uploadFile);this.httprequest.uploadFile=undefined}if(cmd.path==undefined){break}var filepath=cmd.name?obj.path.join(cmd.path,cmd.name):cmd.path;try{this.httprequest.uploadFile=fs.openSync(filepath,"wbN")}catch(e){this.write(new Buffer(JSON.stringify({action:"uploaderror",reqid:cmd.reqid})));break}this.httprequest.uploadFileid=cmd.reqid;if(this.httprequest.uploadFile){this.write(new Buffer(JSON.stringify({action:"uploadstart",reqid:this.httprequest.uploadFileid})))}break;case"copy":for(var i in cmd.names){var sc=obj.path.join(cmd.scpath,cmd.names[i]),ds=obj.path.join(cmd.dspath,cmd.names[i]);if(sc!=ds){try{fs.copyFileSync(sc,ds)}catch(e){}}}break;case"move":for(var i in cmd.names){var sc=obj.path.join(cmd.scpath,cmd.names[i]),ds=obj.path.join(cmd.dspath,cmd.names[i]);if(sc!=ds){try{fs.copyFileSync(sc,ds);fs.unlinkSync(sc)}catch(e){}}}break}}}}}}}function onTunnelWebRTCControlData(data){if(typeof data!="string"){return}var obj;try{obj=JSON.parse(data)}catch(e){sendConsoleText("Invalid control JSON on WebRTC: "+data);return}if(obj.type=="close"){try{this.close()}catch(e){}try{this.xrtc.close()}catch(e){}}}function onTunnelControlData(data,ws){var obj;if(ws==null){ws=this}if(typeof data=="string"){try{obj=JSON.parse(data)}catch(e){sendConsoleText("Invalid control JSON: "+data);return}}else{if(typeof data=="object"){obj=data}else{return}}if(obj.action){switch(obj.action){case"lock":try{if(process.platform=="win32"){var child=require("child_process");child.execFile(process.env.windir+"\\system32\\cmd.exe",["/c","RunDll32.exe user32.dll,LockWorkStation"],{type:1})}}catch(e){}break}return}if(obj.type=="close"){try{ws.close()}catch(e){}}else{if(obj.type=="webrtc0"){if(ws.httprequest.protocol==1){if(process.platform=="win32"){ws.httprequest._term.unpipe(ws)}else{ws.httprequest.process.stdout.unpipe(ws);ws.httprequest.process.stderr.unpipe(ws)}}else{if(ws.httprequest.protocol==2){ws.httprequest.desktop.kvm.unpipe(ws)}else{ws.rtcchannel.httprequest=ws.httprequest;ws.rtcchannel.removeAllListeners("data");ws.rtcchannel.on("data",onTunnelData)}}ws.write('{"ctrlChannel":"102938","type":"webrtc1"}')}else{if(obj.type=="webrtc1"){if(ws.httprequest.protocol==1){if(process.platform=="win32"){ws.unpipe(ws.httprequest._term);ws.rtcchannel.pipe(ws.httprequest._term,{dataTypeSkip:1})}else{ws.unpipe(ws.httprequest.process.stdin);ws.rtcchannel.pipe(ws.httprequest.process.stdin,{dataTypeSkip:1})}ws.resume()}else{if(ws.httprequest.protocol==2){ws.unpipe(ws.httprequest.desktop.kvm);try{ws.webrtc.rtcchannel.pipe(ws.httprequest.desktop.kvm,{dataTypeSkip:1,end:false})}catch(e){sendConsoleText("EX2")}ws.resume()}}ws.write('{"ctrlChannel":"102938","type":"webrtc2"}')}else{if(obj.type=="webrtc2"){if(ws.httprequest.protocol==1){if(process.platform=="win32"){ws.httprequest._term.pipe(ws.webrtc.rtcchannel,{dataTypeSkip:1,end:false})}else{ws.httprequest.process.stdout.pipe(ws.webrtc.rtcchannel,{dataTypeSkip:1,end:false});ws.httprequest.process.stderr.pipe(ws.webrtc.rtcchannel,{dataTypeSkip:1,end:false})}}else{if(ws.httprequest.protocol==2){ws.httprequest.desktop.kvm.pipe(ws.webrtc.rtcchannel,{dataTypeSkip:1})}}}else{if(obj.type=="offer"){ws.webrtc=rtc.createConnection();ws.webrtc.websocket=ws;ws.webrtc.on("connected",function(){});ws.webrtc.on("disconnected",function(){});ws.webrtc.on("dataChannel",function(rtcchannel){rtcchannel.xrtc=this;rtcchannel.websocket=this.websocket;this.rtcchannel=rtcchannel;this.websocket.rtcchannel=rtcchannel;this.websocket.rtcchannel.on("data",onTunnelWebRTCControlData);this.websocket.rtcchannel.on("end",function(){this.unpipe(this.websocket.desktop.kvm);this.websocket.httprequest.desktop.kvm.unpipe(this)});this.websocket.write('{"ctrlChannel":"102938","type":"webrtc0"}')});var sdp=null;try{sdp=ws.webrtc.setOffer(obj.sdp)}catch(ex){}if(sdp!=null){ws.write({type:"answer",ctrlChannel:"102938",sdp:sdp})}}}}}}}var consoleWebSockets={};var consoleHttpRequest=null;function consoleHttpResponse(response){response.data=function(data){sendConsoleText(rstr2hex(buf2rstr(data)),this.sessionid);consoleHttpRequest=null};response.close=function(){sendConsoleText("httprequest.response.close",this.sessionid);consoleHttpRequest=null}}function openUserDesktopUrl(url){var child=null;try{switch(process.platform){case"win32":child=require("child_process").execFile(process.env.windir+"\\system32\\cmd.exe",["/c","start",url],{type:childProcess.SpawnTypes.USER});break;case"linux":child=require("child_process").execFile("/usr/bin/xdg-open",["xdg-open",url],{type:require("child_process").SpawnTypes.DETACHED,uid:require("user-sessions").consoleUid()});break;case"darwin":child=require("child_process").execFile("/usr/bin/open",["open",url],{uid:require("user-sessions").consoleUid()});break}}catch(ex){}return child}function processConsoleCommand(cmd,args,rights,sessionid){try{var response=null;switch(cmd){case"help":response="Available commands: help, info, osinfo,args, print, type, dbget, dbset, dbcompact, eval, parseuri, httpget,\r\nwslist, wsconnect, wssend, wsclose, notify, ls, ps, kill, amt, netinfo, location, power, wakeonlan, scanwifi,\r\nscanamt, setdebug, smbios, rawsmbios, toast, lock, users, sendcaps, openurl, amtreset, amtccm, amtdeactivate.";break;case"amtreset":resetMei();resetMicroLms();response="Done.";break;case"amtccm":if(amtMei==null){response="Intel AMT not supported."}else{if(args._.length!=1){response="Proper usage: amtccm (adminPassword)"}else{activeToCCM(args._[0])}}break;case"amtdeactivate":if(amtMei==null){response="Intel AMT not supported."}else{deactivateCCM()}break;case"openurl":if(args._.length!=1){response="Proper usage: openurl (url)"}else{if(openUserDesktopUrl(args._[0])==null){response="Failed."}else{response="Success."}}break;case"users":if(meshCoreObj.users==null){response="Active users are unknown."}else{response="Active Users: "+meshCoreObj.users.join(", ")+"."}require("user-sessions").enumerateUsers().then(function(u){for(var i in u){sendConsoleText(u[i])}});break;case"toast":if(process.platform=="win32"){if(args._.length<1){response='Proper usage: toast "message"'}else{require("toaster").Toast("MeshCentral",args._[0]);response="ok"}}else{response="Only supported on Windows."}break;case"setdebug":if(args._.length<1){response="Proper usage: setdebug (target), 0 = Disabled, 1 = StdOut, 2 = This Console, * = All Consoles, 4 = WebLog, 8 = Logfile"}else{if(args._[0]=="*"){console.setDestination(2)}else{console.setDestination(parseInt(args._[0]),sessionid)}}break;case"ps":processManager.getProcesses(function(plist){var x="";for(var i in plist){x+=i+", "+plist[i].cmd+((plist[i].user)?(", "+plist[i].user):"")+"\r\n"}sendConsoleText(x,sessionid)});break;case"kill":if((args._.length<1)){response="Proper usage: kill [pid]"}else{process.kill(parseInt(args._[0]));response="Killed process "+args._[0]+"."}break;case"smbios":if(SMBiosTables==null){response="SMBios tables not available."}else{response=objToString(SMBiosTables,0," ",true)}break;case"rawsmbios":if(SMBiosTablesRaw==null){response="SMBios tables not available."}else{response="";for(var i in SMBiosTablesRaw){var header=false;for(var j in SMBiosTablesRaw[i]){if(SMBiosTablesRaw[i][j].length>0){if(header==false){response+=("Table type #"+i+((require("smbios").smTableTypes[i]==null)?"":(", "+require("smbios").smTableTypes[i])))+"\r\n";header=true}response+=(" "+SMBiosTablesRaw[i][j].toString("hex"))+"\r\n"}}}}break;case"eval":if(args._.length<1){response='Proper usage: eval "JavaScript code"'}else{response=JSON.stringify(mesh.eval(args._[0]))}break;case"notify":if(args._.length!=1){response='Proper usage: notify "message" [--session]'}else{var notification={action:"msg",type:"notify",value:args._[0],tag:"console"};if(args.session){notification.sessionid=sessionid}mesh.SendCommand(notification);response="ok"}break;case"info":response="Current Core: "+meshCoreObj.value+".\r\nAgent Time: "+Date()+".\r\nUser Rights: 0x"+rights.toString(16)+".\r\nPlatform: "+process.platform+".\r\nCapabilities: "+meshCoreObj.caps+".\r\nServer URL: "+mesh.ServerUrl+".";if(amtLmsState>=0){response+="\r\nBuilt-in LMS: "+["Disabled","Connecting..","Connected"][amtLmsState]+"."}if(meshCoreObj.osdesc){response+="\r\nOS: "+meshCoreObj.osdesc+"."}response+="\r\nModules: "+addedModules.join(", ")+".";response+="\r\nServer Connection: "+mesh.isControlChannelConnected+", State: "+meshServerConnectionState+".";response+="\rlastMeInfo: "+lastMeInfo+".";var oldNodeId=db.Get("OldNodeId");if(oldNodeId!=null){response+="\r\nOldNodeID: "+oldNodeId+"."}if(process.platform!="win32"){response+="\r\nX11 support: "+require("monitor-info").kvm_x11_support+"."}break;case"osinfo":var i=1;if(args._.length>0){i=parseInt(args._[0]);if(i>8){i=8}response="Calling "+i+" times."}for(var j=0;j0){meshCoreObj.osdesc=args._[0];mesh.SendCommand(meshCoreObj);response=JSON.stringify(meshCoreObj)}else{response="Proper usage: sendosdesc [os description]"}break;case"args":response="args "+objToString(args,0," ",true);break;case"print":var r=[];for(var i in args._){r.push(args._[i])}console.log(r.join(" "));response="Message printed on agent console.";break;case"type":if(args._.length==0){response="Proper usage: type (filepath) [maxlength]"}else{var max=4096;if((args._.length>1)&&(typeof args._[1]=="number")){max=args._[1]}if(max>4096){max=4096}var buf=Buffer.alloc(max),fd=fs.openSync(args._[0],"r"),r=fs.readSync(fd,buf,0,max);response=buf.toString();var i=response.indexOf("\n");if((i>0)&&(response[i-1]!="\r")){response=response.split("\n").join("\r\n")}if(r==max){response+="..."}fs.closeSync(fd)}break;case"dbkeys":response=JSON.stringify(db.Keys);break;case"dbget":if(db==null){response="Database not accessible.";break}if(args._.length!=1){response="Proper usage: dbget (key)"}else{response=db.Get(args._[0])}break;case"dbset":if(db==null){response="Database not accessible.";break}if(args._.length!=2){response="Proper usage: dbset (key) (value)"}else{var r=db.Put(args._[0],args._[1]);response="Key set: "+r}break;case"dbcompact":if(db==null){response="Database not accessible.";break}var r=db.Compact();response="Database compacted: "+r;break;case"httpget":if(consoleHttpRequest!=null){response="HTTP operation already in progress."}else{if(args._.length!=1){response="Proper usage: httpget (url)"}else{var options=http.parseUri(args._[0]);options.method="GET";if(options==null){response="Invalid url."}else{try{consoleHttpRequest=http.request(options,consoleHttpResponse)}catch(e){response="Invalid HTTP GET request"}consoleHttpRequest.sessionid=sessionid;if(consoleHttpRequest!=null){consoleHttpRequest.end();response="HTTPGET "+options.protocol+"//"+options.host+":"+options.port+options.path}}}}break;case"wslist":response="";for(var i in consoleWebSockets){var httprequest=consoleWebSockets[i];response+="Websocket #"+i+", "+httprequest.url+"\r\n"}if(response==""){response="no websocket sessions."}break;case"wsconnect":if(args._.length==0){response="Proper usage: wsconnect (url)\r\nFor example: wsconnect wss://localhost:443/meshrelay.ashx?id=abc"}else{var httprequest=null;try{var options=http.parseUri(args._[0]);options.rejectUnauthorized=0;httprequest=http.request(options)}catch(e){response="Invalid HTTP websocket request"}if(httprequest!=null){httprequest.upgrade=onWebSocketUpgrade;httprequest.onerror=function(e){sendConsoleText("ERROR: "+JSON.stringify(e))};var index=1;while(consoleWebSockets[index]){index++}httprequest.sessionid=sessionid;httprequest.index=index;httprequest.url=args._[0];consoleWebSockets[index]=httprequest;response="New websocket session #"+index}}break;case"wssend":if(args._.length==0){response="Proper usage: wssend (socketnumber)\r\n";for(var i in consoleWebSockets){var httprequest=consoleWebSockets[i];response+="Websocket #"+i+", "+httprequest.url+"\r\n"}}else{var i=parseInt(args._[0]);var httprequest=consoleWebSockets[i];if(httprequest!=undefined){httprequest.s.write(args._[1]);response="ok"}else{response="Invalid web socket number"}}break;case"wsclose":if(args._.length==0){response="Proper usage: wsclose (socketnumber)"}else{var i=parseInt(args._[0]);var httprequest=consoleWebSockets[i];if(httprequest!=undefined){if(httprequest.s!=null){httprequest.s.end()}else{httprequest.end()}response="ok"}else{response="Invalid web socket number"}}break;case"tunnels":response="";for(var i in tunnels){response+="Tunnel #"+i+", "+tunnels[i].url+"\r\n"}if(response==""){response="No websocket sessions."}break;case"ls":response="";var xpath="*";if(args._.length>0){xpath=obj.path.join(args._[0],"*")}response="List of "+xpath+"\r\n";var results=fs.readdirSync(xpath);for(var i=0;i0){var r="",pstates=["NotActivated","InActivation","Activated"];for(var i in data){var x=data[i];if(r!=""){r+="\r\n"}r+=x.address+" - Intel AMT v"+x.majorVersion+"."+x.minorVersion;if(x.provisioningState<3){r+=(", "+pstates[x.provisioningState])}if(x.provisioningState==2){r+=(", "+x.openPorts.join(", "))}r+="."}}else{r="No Intel AMT found."}sendConsoleText(r)})}}else{response="Intel AMT scanner module not present."}break;case"modules":response=JSON.stringify(addedModules);break;default:response='Unknown command "'+cmd+'", type "help" for list of avaialble commands.';break}}catch(e){response="Command returned an exception error: "+e;console.log(e)}if(response!=null){sendConsoleText(response,sessionid)}}function sendConsoleText(text,sessionid){if(typeof text=="object"){text=JSON.stringify(text)}mesh.SendCommand({action:"msg",type:"console",value:text,sessionid:sessionid})}function handleServerConnection(state){meshServerConnectionState=state;if(meshServerConnectionState==0){if(selfInfoUpdateTimer!=null){clearInterval(selfInfoUpdateTimer);selfInfoUpdateTimer=null}lastSelfInfo=null}else{var oldNodeId=db.Get("OldNodeId");if(oldNodeId!=null){mesh.SendCommand({action:"mc1migration",oldnodeid:oldNodeId})}mesh.SendCommand(meshCoreObj);if(SMBiosTablesRaw!=null){mesh.SendCommand({action:"smbios",value:SMBiosTablesRaw})}meInfoStr=null;sendPeriodicServerUpdate()}}var sendNetworkUpdateNagleTimer=null;function sendNetworkUpdateNagle(){if(sendNetworkUpdateNagleTimer!=null){clearTimeout(sendNetworkUpdateNagleTimer);sendNetworkUpdateNagleTimer=null}sendNetworkUpdateNagleTimer=setTimeout(sendNetworkUpdate,5000)}function sendNetworkUpdate(force){sendNetworkUpdateNagleTimer=null;var netInfo=mesh.NetInfo;netInfo.action="netinfo";var netInfoStr=JSON.stringify(netInfo);if((force==true)||(clearGatewayMac(netInfoStr)!=clearGatewayMac(lastNetworkInfo))){mesh.SendCommand(netInfo);lastNetworkInfo=netInfoStr}}function sendPeriodicServerUpdate(flags){if(meshServerConnectionState==0){return}if(!flags){flags=4294967295}if(flags&1){getAmtInfo(function(meinfo){try{if(meinfo==null){return}var intelamt={},p=false;if(meinfo.Versions&&meinfo.Versions.AMT){intelamt.ver=meinfo.Versions.AMT;p=true}if(meinfo.ProvisioningState){intelamt.state=meinfo.ProvisioningState;p=true}if(meinfo.Flags){intelamt.flags=meinfo.Flags;p=true}if(meinfo.OsHostname){intelamt.host=meinfo.OsHostname;p=true}if(meinfo.UUID){intelamt.uuid=meinfo.UUID;p=true}if(p==true){var meInfoStr=JSON.stringify(intelamt);if(meInfoStr!=lastMeInfo){meshCoreObj.intelamt=intelamt;mesh.SendCommand(meshCoreObj);lastMeInfo=meInfoStr}}}catch(ex){}})}if(flags&2){sendNetworkUpdateNagle(false)}}function getAmtInfo(func){if(amtMei==null||amtMeiConnected!=2){if(func!=null){func(null)}return}try{amtMeiTmpState={Flags:0};amtMei.getProtocolVersion(function(result){if(result!=null){amtMeiTmpState.MeiVersion=result}});amtMei.getVersion(function(result){if(result){amtMeiTmpState.Versions={};for(var version in result.Versions){amtMeiTmpState.Versions[result.Versions[version].Description]=result.Versions[version].Version}}});amtMei.getProvisioningMode(function(result){if(result){amtMeiTmpState.ProvisioningMode=result.mode}});amtMei.getProvisioningState(function(result){if(result){amtMeiTmpState.ProvisioningState=result.state}});amtMei.getEHBCState(function(result){if((result!=null)&&(result.EHBC==true)){amtMeiTmpState.Flags+=1}});amtMei.getControlMode(function(result){if(result!=null){if(result.controlMode==1){amtMeiTmpState.Flags+=2}if(result.controlMode==2){amtMeiTmpState.Flags+=4}}});amtMei.getLanInterfaceSettings(0,function(result){if(result){amtMeiTmpState.net0=result}});amtMei.getLanInterfaceSettings(1,function(result){if(result){amtMeiTmpState.net1=result}});amtMei.getUuid(function(result){if((result!=null)&&(result.uuid!=null)){amtMeiTmpState.UUID=result.uuid}});amtMei.getDnsSuffix(function(result){if(result!=null){amtMeiTmpState.dns=result}if(func!=null){func(amtMeiTmpState)}})}catch(e){if(func!=null){func(null)}return}}function handleAmtNotification(notifyMsg){if((notifyMsg==null)||(notifyMsg.Body==null)||(notifyMsg.Body.MessageID==null)||(notifyMsg.Body.MessageArguments==null)){return null}var amtMessage=notifyMsg.Body.MessageID,amtMessageArg=notifyMsg.Body.MessageArguments[0],notify=null;switch(amtMessage){case"iAMT0050":if(amtMessageArg=="48"){notify="Intel® AMT Serial-over-LAN connected"}else{if(amtMessageArg=="49"){notify="Intel® AMT Serial-over-LAN disconnected"}}break;case"iAMT0052":if(amtMessageArg=="1"){notify="Intel® AMT KVM connected"}else{if(amtMessageArg=="2"){notify="Intel® AMT KVM disconnected"}}break}if(notify!=null){mesh.SendCommand({action:"msg",type:"notify",value:notify,tag:"general"})}}function resetMicroLms(){try{var lme_heci=require("amt-lme");amtLmsState=1;amtLms=new lme_heci();amtLms.on("error",function(e){amtLmsState=0;amtLms=null;sendConsoleText("LMS Error.");obj.setupMeiOsAdmin(null,1)});amtLms.on("connect",function(){amtLmsState=2;obj.setupMeiOsAdmin(null,2)});amtLms.on("notify",function(data,options,str,code){if(code=="iAMT0052-3"){obj.kvmGetData()}else{handleAmtNotification(data)}})}catch(e){amtLmsState=-1;amtLms=null}}obj.start=function(){mesh.AddCommandHandler(handleServerCommand);mesh.AddConnectHandler(handleServerConnection);resetMicroLms();try{var userSession=require("user-sessions");userSession.on("changed",function onUserSessionChanged(){userSession.enumerateUsers().then(function(users){var u=[],a=users.Active;for(var i=0;i=12)){obj.kvmGetData("skip");obj.kvmTempTimer=setInterval(function(){obj.kvmGetData()},2000);obj.kvmSetData(JSON.stringify({action:"restart",ver:1}))}})})};obj.kvmGetData=function(tag){obj.osamtstack.IPS_KVMRedirectionSettingData_DataChannelRead(obj.kvmDataGetResponse,tag)};obj.kvmDataGetResponse=function(stack,name,response,status,tag){if((tag!="skip")&&(status==200)&&(response.Body.ReturnValue==0)){var val=null;try{val=Buffer.from(response.Body.DataMessage,"base64").toString()}catch(e){return}if(val!=null){obj.kvmProcessData(response.Body.RealmsBitmap,response.Body.MessageId,val)}}};var webRtcDesktop=null;obj.kvmProcessData=function(realms,messageId,val){var data=null;try{data=JSON.parse(val)}catch(e){}if((data!=null)&&(data.action)){if(data.action=="present"){obj.kvmSetData(JSON.stringify({action:"present",ver:1,platform:process.platform}))}if(data.action=="offer"){webRtcDesktop={};var rtc=require("ILibWebRTC");webRtcDesktop.webrtc=rtc.createConnection();webRtcDesktop.webrtc.on("connected",function(){});webRtcDesktop.webrtc.on("disconnected",function(){obj.webRtcCleanUp()});webRtcDesktop.webrtc.on("dataChannel",function(rtcchannel){webRtcDesktop.rtcchannel=rtcchannel;webRtcDesktop.kvm=mesh.getRemoteDesktopStream();webRtcDesktop.kvm.pipe(webRtcDesktop.rtcchannel,{dataTypeSkip:1,end:false});webRtcDesktop.rtcchannel.on("end",function(){obj.webRtcCleanUp()});webRtcDesktop.rtcchannel.on("data",function(x){obj.kvmCtrlData(this,x)});webRtcDesktop.rtcchannel.pipe(webRtcDesktop.kvm,{dataTypeSkip:1,end:false})});obj.kvmSetData(JSON.stringify({action:"answer",ver:1,sdp:webRtcDesktop.webrtc.setOffer(data.sdp)}))}}};var path={join:function(){var x=[];for(var i in arguments){var w=arguments[i];if(w!=null){while(w.endsWith("/")||w.endsWith("\\")){w=w.substring(0,w.length-1)}if(i!=0){while(w.startsWith("/")||w.startsWith("\\")){w=w.substring(1)}}x.push(w)}}if(x.length==0){return"/"}return x.join("/")}};obj.kvmCtrlData=function(channel,cmd){if(cmd.length>0&&cmd.charCodeAt(0)!=123){if(this.fileupload!=null){cmd=Buffer.from(cmd,"base64");var header=cmd.readUInt32BE(0);if((header==16777216)||(header==16777217)){fs.writeSync(this.fileupload.fp,cmd.slice(4));channel.write({action:"upload",sub:"ack",reqid:this.fileupload.reqid});if(header==16777217){fs.closeSync(this.fileupload.fp);this.fileupload=null}}}return}try{cmd=JSON.parse(cmd)}catch(ex){console.error("Invalid JSON: "+cmd);return}if((cmd.path!=null)&&(process.platform!="win32")&&(cmd.path[0]!="/")){cmd.path="/"+cmd.path}switch(cmd.action){case"ping":channel.write({action:"pong"});break;case"lock":if(process.platform=="win32"){var child=require("child_process");child.execFile(process.env.windir+"\\system32\\cmd.exe",["/c","RunDll32.exe user32.dll,LockWorkStation"],{type:1})}break;case"ls":var response=getDirectoryInfo(cmd.path);if(cmd.reqid!=undefined){response.reqid=cmd.reqid}channel.write(response);break;case"mkdir":fs.mkdirSync(cmd.path);break;case"rm":for(var i in cmd.delfiles){var fullpath=path.join(cmd.path,cmd.delfiles[i]);try{fs.unlinkSync(fullpath)}catch(e){console.log(e)}}break;case"rename":try{fs.renameSync(path.join(cmd.path,cmd.oldname),path.join(cmd.path,cmd.newname))}catch(e){console.log(e)}break;case"download":var sendNextBlock=0;if(cmd.sub=="start"){if(this.filedownload!=null){channel.write({action:"download",sub:"cancel",id:this.filedownload.id});delete this.filedownload}this.filedownload={id:cmd.id,path:cmd.path,ptr:0};try{this.filedownload.f=fs.openSync(this.filedownload.path,"rbN")}catch(e){channel.write({action:"download",sub:"cancel",id:this.filedownload.id});delete this.filedownload}if(this.filedownload){channel.write({action:"download",sub:"start",id:cmd.id})}}else{if((this.filedownload!=null)&&(cmd.id==this.filedownload.id)){if(cmd.sub=="startack"){sendNextBlock=8}else{if(cmd.sub=="stop"){delete this.filedownload}else{if(cmd.sub=="ack"){sendNextBlock=1}}}}}while(sendNextBlock>0){sendNextBlock--;var buf=Buffer.alloc(4096);var len=fs.readSync(this.filedownload.f,buf,4,4092,null);this.filedownload.ptr+=len;if(len<4092){buf.writeInt32BE(16777217,0);fs.closeSync(this.filedownload.f);delete this.filedownload;sendNextBlock=0}else{buf.writeInt32BE(16777216,0)}channel.write(buf.slice(0,len+4).toString("base64"))}break;case"upload":if(cmd.sub=="start"){if(this.fileupload!=null){fs.closeSync(this.fileupload.fp)}if(!cmd.path||!cmd.name){break}this.fileupload={reqid:cmd.reqid};var filepath=path.join(cmd.path,cmd.name);try{this.fileupload.fp=fs.openSync(filepath,"wbN")}catch(e){}if(this.fileupload.fp){channel.write({action:"upload",sub:"start",reqid:this.fileupload.reqid})}else{this.fileupload=null;channel.write({action:"upload",sub:"error",reqid:this.fileupload.reqid})}}else{if(cmd.sub=="cancel"){if(this.fileupload!=null){fs.closeSync(this.fileupload.fp);this.fileupload=null}}}break;case"copy":for(var i in cmd.names){var sc=path.join(cmd.scpath,cmd.names[i]),ds=path.join(cmd.dspath,cmd.names[i]);if(sc!=ds){try{fs.copyFileSync(sc,ds)}catch(e){}}}break;case"move":for(var i in cmd.names){var sc=path.join(cmd.scpath,cmd.names[i]),ds=path.join(cmd.dspath,cmd.names[i]);if(sc!=ds){try{fs.copyFileSync(sc,ds);fs.unlinkSync(sc)}catch(e){}}}break}};obj.webRtcCleanUp=function(){sendConsoleText("webRtcCleanUp");if(webRtcDesktop==null){return}if(webRtcDesktop.rtcchannel){try{webRtcDesktop.rtcchannel.close()}catch(e){}try{webRtcDesktop.rtcchannel.removeAllListeners("data")}catch(e){}try{webRtcDesktop.rtcchannel.removeAllListeners("end")}catch(e){}delete webRtcDesktop.rtcchannel}if(webRtcDesktop.webrtc){try{webRtcDesktop.webrtc.close()}catch(e){}try{webRtcDesktop.webrtc.removeAllListeners("connected")}catch(e){}try{webRtcDesktop.webrtc.removeAllListeners("disconnected")}catch(e){}try{webRtcDesktop.webrtc.removeAllListeners("dataChannel")}catch(e){}delete webRtcDesktop.webrtc}if(webRtcDesktop.kvm){try{webRtcDesktop.kvm.end()}catch(e){}delete webRtcDesktop.kvm}webRtcDesktop=null};obj.kvmSetData=function(x){obj.osamtstack.IPS_KVMRedirectionSettingData_DataChannelWrite(Buffer.from(x).toString("base64"),function(){})};function deleteFolderRecursive(path,rec){if(fs.existsSync(path)){if(rec==true){fs.readdirSync(obj.path.join(path,"*")).forEach(function(file,index){var curPath=obj.path.join(path,file);if(fs.statSync(curPath).isDirectory()){deleteFolderRecursive(curPath,true)}else{fs.unlinkSync(curPath)}})}fs.unlinkSync(path)}}function deactivateCCM(){amtMei.unprovision(1,function(status){if(status==0){sendConsoleText("Success deactivating Intel AMT CCM.")}else{sendConsoleText("Intel AMT CCM deactivation error: "+status)}})}function activeToCCM(adminpass){amtMei.getLocalSystemAccount(function(x){if(x.user&&x.pass){var transport=require("amt-wsman-duk");var wsman=require("amt-wsman");var amt=require("amt");oswsstack=new wsman(transport,"127.0.0.1",16992,x.user,x.pass,false);osamtstack=new amt(oswsstack);osamtstack.BatchEnum(null,["*AMT_GeneralSettings","*IPS_HostBasedSetupService"],activeToCCMEx2,adminpass)}else{sendConsoleText("Unable to get $$OsAdmin password.")}})}function activeToCCMEx2(stack,name,responses,status,adminpass){if(status!=200){sendConsoleText("Failed to fetch activation status, status "+status)}else{if(responses.IPS_HostBasedSetupService.response.AllowedControlModes.length!=2){sendConsoleText("Client control mode activation not allowed")}else{stack.IPS_HostBasedSetupService_Setup(2,md5hex("admin:"+responses.AMT_GeneralSettings.response.DigestRealm+":"+adminpass).substring(0,32),null,null,null,null,activeToCCMEx3)}}}function activeToCCMEx3(stack,name,responses,status){if(status!=200){sendConsoleText("Failed to activate, status "+status)}else{if(responses.Body.ReturnValue!=0){sendConsoleText("Client control mode activation failed: "+responses.Body.ReturnValueStr)}else{sendConsoleText("Intel AMT CCM activation success")}}}function md5hex(str){return require("MD5Stream").create().syncHash(str).toString("hex")}return obj}try{var xexports=null,mainMeshCore=null;try{xexports=module.exports}catch(e){}if(xexports!=null){module.exports.createMeshCore=createMeshCore}else{mainMeshCore=createMeshCore();mainMeshCore.start(null)}}catch(ex){require("MeshAgent").SendCommand({action:"msg",type:"console",value:"uncaughtException2: "+ex})}; \ No newline at end of file +process.on("uncaughtException",function(a){require("MeshAgent").SendCommand({action:"msg",type:"console",value:"uncaughtException1: "+a})});var MESHRIGHT_EDITMESH=1;var MESHRIGHT_MANAGEUSERS=2;var MESHRIGHT_MANAGECOMPUTERS=4;var MESHRIGHT_REMOTECONTROL=8;var MESHRIGHT_AGENTCONSOLE=16;var MESHRIGHT_SERVERFILES=32;var MESHRIGHT_WAKEDEVICE=64;var MESHRIGHT_SETNOTES=128;var MESHRIGHT_REMOTEVIEW=256;function createMeshCore(agent){var obj={};var meshCoreObj={action:"coreinfo",value:"MeshCore v6",caps:14};try{require("os").name().then(function(v){meshCoreObj.osdesc=v})}catch(ex){}var meshServerConnectionState=0;var tunnels={};var lastMeInfo=null;var lastNetworkInfo=null;var lastPublicLocationInfo=null;var selfInfoUpdateTimer=null;var http=require("http");var net=require("net");var fs=require("fs");var rtc=require("ILibWebRTC");var processManager=require("process-manager");var amtMei=null,amtLms=null,amtLmsState=0;var amtMeiConnected=0,amtMeiTmpState=null;var wifiScannerLib=null;var wifiScanner=null;var networkMonitor=null;var amtscanner=null;var nextTunnelIndex=1;var oswsstack=null;var osamtstack=null;if(agent==null){db=require("SimpleDataStore").Shared();sha=require("SHA256Stream");mesh=require("MeshAgent");childProcess=require("child_process");if(mesh.hasKVM==1){try{if((process.platform=="win32")||(process.platform=="darwin")||(require("monitor-info").kvm_x11_support)){meshCoreObj.caps|=1}}catch(ex){}}}else{meshCoreObj.value+="-NodeJS";meshCoreObj.caps=8;mesh=agent.getMeshApi()}try{var AMTScannerModule=require("amt-scanner");amtscanner=new AMTScannerModule()}catch(ex){amtscanner=null}var SMBiosTables=null;var SMBiosTablesRaw=null;try{var SMBiosModule=null;try{SMBiosModule=require("smbios")}catch(ex){}if(SMBiosModule!=null){SMBiosModule.get(function(data){if(data!=null){SMBiosTablesRaw=data;SMBiosTables=require("smbios").parse(data);if(mesh.isControlChannelConnected){mesh.SendCommand({action:"smbios",value:SMBiosTablesRaw})}if(SMBiosTables.amtInfo&&(SMBiosTables.amtInfo.AMT==true)){resetMei()}}})}}catch(ex){sendConsoleText(ex)}try{var wifiScannerLib=require("wifi-scanner");wifiScanner=new wifiScannerLib();wifiScanner.on("accessPoint",function(data){sendConsoleText(data)})}catch(ex){wifiScannerLib=null;wifiScanner=null}function resetMei(){try{var amtMeiLib=require("amt-mei");amtMei=new amtMeiLib();amtMei.on("error",function(e){amtMeiLib=null;amtMei=null;amtMeiConnected=-1;sendConsoleText("MEI Error.")});amtMeiConnected=2;sendPeriodicServerUpdate(1)}catch(ex){amtMeiLib=null;amtMei=null;amtMeiConnected=-1}}var getIpLocationDataExInProgress=false;var getIpLocationDataExCounts=[0,0];function getIpLocationDataEx(func){if(getIpLocationDataExInProgress==true){return false}try{getIpLocationDataExInProgress=true;getIpLocationDataExCounts[0]++;var options=http.parseUri("http://ipinfo.io/json");options.method="GET";http.request(options,function(resp){if(resp.statusCode==200){var geoData="";resp.data=function(geoipdata){geoData+=geoipdata};resp.end=function(){var location=null;try{if(typeof geoData=="string"){var result=JSON.parse(geoData);if(result.ip&&result.loc){location=result}}}catch(e){}if(func){getIpLocationDataExCounts[1]++;func(location)}}}else{func(null)}getIpLocationDataExInProgress=false}).end();return true}catch(e){return false}}function clearGatewayMac(str){if(str==null){return null}var x=JSON.parse(str);for(var i in x.netif){if(x.netif[i].gatewaymac){delete x.netif[i].gatewaymac}}return JSON.stringify(x)}function getIpLocationData(func){var publicLocationInfo=db.Get("publicLocationInfo");if(publicLocationInfo!=null){publicLocationInfo=JSON.parse(publicLocationInfo)}if(publicLocationInfo==null){getIpLocationDataEx(function(locationData){if(locationData!=null){publicLocationInfo={};publicLocationInfo.netInfoStr=lastNetworkInfo;publicLocationInfo.locationData=locationData;var x=db.Put("publicLocationInfo",JSON.stringify(publicLocationInfo));if(func){func(locationData)}}else{if(func){func(null)}}})}else{if(clearGatewayMac(publicLocationInfo.netInfoStr)==clearGatewayMac(lastNetworkInfo)){if(func){func(publicLocationInfo.locationData)}}else{getIpLocationDataEx(function(locationData){if(locationData!=null){publicLocationInfo={};publicLocationInfo.netInfoStr=lastNetworkInfo;publicLocationInfo.locationData=locationData;var x=db.Put("publicLocationInfo",JSON.stringify(publicLocationInfo));if(func){func(locationData)}}else{if(func){func(publicLocationInfo.locationData)}}})}}}if(!String.prototype.endsWith){String.prototype.endsWith=function(searchString,position){var subjectString=this.toString();if(typeof position!=="number"||!isFinite(position)||Math.floor(position)!==position||position>subjectString.length){position=subjectString.length}position-=searchString.length;var lastIndex=subjectString.lastIndexOf(searchString,position);return lastIndex!==-1&&lastIndex===position}}obj.path={join:function(){var x=[];for(var i in arguments){var w=arguments[i];if(w!=null){while(w.endsWith("/")||w.endsWith("\\")){w=w.substring(0,w.length-1)}if(i!=0){while(w.startsWith("/")||w.startsWith("\\")){w=w.substring(1)}}x.push(w)}}if(x.length==0){return"/"}return x.join("/")}};function toNumberIfNumber(x){if((typeof x=="string")&&(+parseInt(x)===x)){x=parseInt(x)}return x}function char2hex(i){return(i+256).toString(16).substr(-2).toUpperCase()}function rstr2hex(input){var r="",i;for(i=0;i8){return"[...]"}if(x==undefined){return"[undefined]"}if(typeof x=="string"){if(p==0){return x}return'"'+x+'"'}if(typeof x=="buffer"){return"[buffer]"}if(typeof x!="object"){return x}var r="{"+(ret?"\r\n":" ");for(var i in x){if(i!="_ObjectID"){r+=(addPad(p+2,pad)+i+": "+objToString(x[i],p+2,pad,ret)+(ret?"\r\n":" "))}}return r+addPad(p,pad)+"}"}function addPad(p,ret){var r="";for(var i=0;i2&&x[0]=="-"&&x[1]=="-"){if(current!=null){results[current]=true}current=x.substring(2)}else{if(current!=null){results[current]=toNumberIfNumber(x);current=null}else{results._.push(toNumberIfNumber(x))}}}if(current!=null){results[current]=true}return results}function getServerTargetUrl(path){var x=mesh.ServerUrl;if(x==null){return null}if(path==null){path=""}x=http.parseUri(x);if(x==null){return null}return x.protocol+"//"+x.host+":"+x.port+"/"+path}function getServerTargetUrlEx(url){if(url.substring(0,2)=="*/"){return getServerTargetUrl(url.substring(2))}return url}function sendWakeOnLan(hexMac){var count=0;try{var interfaces=require("os").networkInterfaces();var magic="FFFFFFFFFFFF";for(var x=1;x<=16;++x){magic+=hexMac}var magicbin=Buffer.from(magic,"hex");for(var adapter in interfaces){if(interfaces.hasOwnProperty(adapter)){for(var i=0;i0){sendNextBlock--;var buf=new Buffer(4096);var len=fs.readSync(this.filedownload.f,buf,4,4092,null);this.filedownload.ptr+=len;if(len<4092){buf.writeInt32BE(16777217,0);fs.closeSync(this.filedownload.f);delete this.filedownload;sendNextBlock=0}else{buf.writeInt32BE(16777216,0)}this.write(buf.slice(0,len+4))}break;case"upload":if(this.httprequest.uploadFile!=undefined){fs.closeSync(this.httprequest.uploadFile);this.httprequest.uploadFile=undefined}if(cmd.path==undefined){break}var filepath=cmd.name?obj.path.join(cmd.path,cmd.name):cmd.path;try{this.httprequest.uploadFile=fs.openSync(filepath,"wbN")}catch(e){this.write(new Buffer(JSON.stringify({action:"uploaderror",reqid:cmd.reqid})));break}this.httprequest.uploadFileid=cmd.reqid;if(this.httprequest.uploadFile){this.write(new Buffer(JSON.stringify({action:"uploadstart",reqid:this.httprequest.uploadFileid})))}break;case"copy":for(var i in cmd.names){var sc=obj.path.join(cmd.scpath,cmd.names[i]),ds=obj.path.join(cmd.dspath,cmd.names[i]);if(sc!=ds){try{fs.copyFileSync(sc,ds)}catch(e){}}}break;case"move":for(var i in cmd.names){var sc=obj.path.join(cmd.scpath,cmd.names[i]),ds=obj.path.join(cmd.dspath,cmd.names[i]);if(sc!=ds){try{fs.copyFileSync(sc,ds);fs.unlinkSync(sc)}catch(e){}}}break;default:break}}}}}}}function onTunnelWebRTCControlData(data){if(typeof data!="string"){return}var obj;try{obj=JSON.parse(data)}catch(e){sendConsoleText("Invalid control JSON on WebRTC: "+data);return}if(obj.type=="close"){try{this.close()}catch(e){}try{this.xrtc.close()}catch(e){}}}function onTunnelControlData(data,ws){var obj;if(ws==null){ws=this}if(typeof data=="string"){try{obj=JSON.parse(data)}catch(e){sendConsoleText("Invalid control JSON: "+data);return}}else{if(typeof data=="object"){obj=data}else{return}}if(obj.action){switch(obj.action){case"lock":try{if(process.platform=="win32"){var child=require("child_process");child.execFile(process.env.windir+"\\system32\\cmd.exe",["/c","RunDll32.exe user32.dll,LockWorkStation"],{type:1})}}catch(e){}break;default:break}return}if(obj.type=="close"){try{ws.close()}catch(e){}}else{if(obj.type=="webrtc0"){if(ws.httprequest.protocol==1){if(process.platform=="win32"){ws.httprequest._term.unpipe(ws)}else{ws.httprequest.process.stdout.unpipe(ws);ws.httprequest.process.stderr.unpipe(ws)}}else{if(ws.httprequest.protocol==2){ws.httprequest.desktop.kvm.unpipe(ws)}else{ws.rtcchannel.httprequest=ws.httprequest;ws.rtcchannel.removeAllListeners("data");ws.rtcchannel.on("data",onTunnelData)}}ws.write('{"ctrlChannel":"102938","type":"webrtc1"}')}else{if(obj.type=="webrtc1"){if(ws.httprequest.protocol==1){if(process.platform=="win32"){ws.unpipe(ws.httprequest._term);ws.rtcchannel.pipe(ws.httprequest._term,{dataTypeSkip:1})}else{ws.unpipe(ws.httprequest.process.stdin);ws.rtcchannel.pipe(ws.httprequest.process.stdin,{dataTypeSkip:1})}ws.resume()}else{if(ws.httprequest.protocol==2){ws.unpipe(ws.httprequest.desktop.kvm);try{ws.webrtc.rtcchannel.pipe(ws.httprequest.desktop.kvm,{dataTypeSkip:1,end:false})}catch(e){sendConsoleText("EX2")}ws.resume()}}ws.write('{"ctrlChannel":"102938","type":"webrtc2"}')}else{if(obj.type=="webrtc2"){if(ws.httprequest.protocol==1){if(process.platform=="win32"){ws.httprequest._term.pipe(ws.webrtc.rtcchannel,{dataTypeSkip:1,end:false})}else{ws.httprequest.process.stdout.pipe(ws.webrtc.rtcchannel,{dataTypeSkip:1,end:false});ws.httprequest.process.stderr.pipe(ws.webrtc.rtcchannel,{dataTypeSkip:1,end:false})}}else{if(ws.httprequest.protocol==2){ws.httprequest.desktop.kvm.pipe(ws.webrtc.rtcchannel,{dataTypeSkip:1})}}}else{if(obj.type=="offer"){ws.webrtc=rtc.createConnection();ws.webrtc.websocket=ws;ws.webrtc.on("connected",function(){});ws.webrtc.on("disconnected",function(){});ws.webrtc.on("dataChannel",function(rtcchannel){rtcchannel.xrtc=this;rtcchannel.websocket=this.websocket;this.rtcchannel=rtcchannel;this.websocket.rtcchannel=rtcchannel;this.websocket.rtcchannel.on("data",onTunnelWebRTCControlData);this.websocket.rtcchannel.on("end",function(){this.unpipe(this.websocket.desktop.kvm);this.websocket.httprequest.desktop.kvm.unpipe(this)});this.websocket.write('{"ctrlChannel":"102938","type":"webrtc0"}')});var sdp=null;try{sdp=ws.webrtc.setOffer(obj.sdp)}catch(ex){}if(sdp!=null){ws.write({type:"answer",ctrlChannel:"102938",sdp:sdp})}}}}}}}var consoleWebSockets={};var consoleHttpRequest=null;function consoleHttpResponse(response){response.data=function(data){sendConsoleText(rstr2hex(buf2rstr(data)),this.sessionid);consoleHttpRequest=null};response.close=function(){sendConsoleText("httprequest.response.close",this.sessionid);consoleHttpRequest=null}}function openUserDesktopUrl(url){var child=null;try{switch(process.platform){case"win32":child=require("child_process").execFile(process.env.windir+"\\system32\\cmd.exe",["/c","start",url],{type:childProcess.SpawnTypes.USER});break;case"linux":child=require("child_process").execFile("/usr/bin/xdg-open",["xdg-open",url],{type:require("child_process").SpawnTypes.DETACHED,uid:require("user-sessions").consoleUid()});break;case"darwin":child=require("child_process").execFile("/usr/bin/open",["open",url],{uid:require("user-sessions").consoleUid()});break;default:break}}catch(ex){}return child}function processConsoleCommand(cmd,args,rights,sessionid){try{var response=null;switch(cmd){case"help":response="Available commands: help, info, osinfo,args, print, type, dbget, dbset, dbcompact, eval, parseuri, httpget,\r\nwslist, wsconnect, wssend, wsclose, notify, ls, ps, kill, amt, netinfo, location, power, wakeonlan, scanwifi,\r\nscanamt, setdebug, smbios, rawsmbios, toast, lock, users, sendcaps, openurl, amtreset, amtccm, amtdeactivate.";break;case"amtreset":resetMei();resetMicroLms();response="Done.";break;case"amtccm":if(amtMei==null){response="Intel AMT not supported."}else{if(args._.length!=1){response="Proper usage: amtccm (adminPassword)"}else{activeToCCM(args._[0])}}break;case"amtdeactivate":if(amtMei==null){response="Intel AMT not supported."}else{deactivateCCM()}break;case"openurl":if(args._.length!=1){response="Proper usage: openurl (url)"}else{if(openUserDesktopUrl(args._[0])==null){response="Failed."}else{response="Success."}}break;case"users":if(meshCoreObj.users==null){response="Active users are unknown."}else{response="Active Users: "+meshCoreObj.users.join(", ")+"."}require("user-sessions").enumerateUsers().then(function(u){for(var i in u){sendConsoleText(u[i])}});break;case"toast":if(process.platform=="win32"){if(args._.length<1){response='Proper usage: toast "message"'}else{require("toaster").Toast("MeshCentral",args._[0]);response="ok"}}else{response="Only supported on Windows."}break;case"setdebug":if(args._.length<1){response="Proper usage: setdebug (target), 0 = Disabled, 1 = StdOut, 2 = This Console, * = All Consoles, 4 = WebLog, 8 = Logfile"}else{if(args._[0]=="*"){console.setDestination(2)}else{console.setDestination(parseInt(args._[0]),sessionid)}}break;case"ps":processManager.getProcesses(function(plist){var x="";for(var i in plist){x+=i+", "+plist[i].cmd+((plist[i].user)?(", "+plist[i].user):"")+"\r\n"}sendConsoleText(x,sessionid)});break;case"kill":if((args._.length<1)){response="Proper usage: kill [pid]"}else{process.kill(parseInt(args._[0]));response="Killed process "+args._[0]+"."}break;case"smbios":if(SMBiosTables==null){response="SMBios tables not available."}else{response=objToString(SMBiosTables,0," ",true)}break;case"rawsmbios":if(SMBiosTablesRaw==null){response="SMBios tables not available."}else{response="";for(var i in SMBiosTablesRaw){var header=false;for(var j in SMBiosTablesRaw[i]){if(SMBiosTablesRaw[i][j].length>0){if(header==false){response+=("Table type #"+i+((require("smbios").smTableTypes[i]==null)?"":(", "+require("smbios").smTableTypes[i])))+"\r\n";header=true}response+=(" "+SMBiosTablesRaw[i][j].toString("hex"))+"\r\n"}}}}break;case"eval":if(args._.length<1){response='Proper usage: eval "JavaScript code"'}else{response=JSON.stringify(mesh.eval(args._[0]))}break;case"notify":if(args._.length!=1){response='Proper usage: notify "message" [--session]'}else{var notification={action:"msg",type:"notify",value:args._[0],tag:"console"};if(args.session){notification.sessionid=sessionid}mesh.SendCommand(notification);response="ok"}break;case"info":response="Current Core: "+meshCoreObj.value+".\r\nAgent Time: "+Date()+".\r\nUser Rights: 0x"+rights.toString(16)+".\r\nPlatform: "+process.platform+".\r\nCapabilities: "+meshCoreObj.caps+".\r\nServer URL: "+mesh.ServerUrl+".";if(amtLmsState>=0){response+="\r\nBuilt-in LMS: "+["Disabled","Connecting..","Connected"][amtLmsState]+"."}if(meshCoreObj.osdesc){response+="\r\nOS: "+meshCoreObj.osdesc+"."}response+="\r\nModules: "+addedModules.join(", ")+".";response+="\r\nServer Connection: "+mesh.isControlChannelConnected+", State: "+meshServerConnectionState+".";response+="\rlastMeInfo: "+lastMeInfo+".";var oldNodeId=db.Get("OldNodeId");if(oldNodeId!=null){response+="\r\nOldNodeID: "+oldNodeId+"."}if(process.platform!="win32"){response+="\r\nX11 support: "+require("monitor-info").kvm_x11_support+"."}break;case"osinfo":var i=1;if(args._.length>0){i=parseInt(args._[0]);if(i>8){i=8}response="Calling "+i+" times."}for(var j=0;j0){meshCoreObj.osdesc=args._[0];mesh.SendCommand(meshCoreObj);response=JSON.stringify(meshCoreObj)}else{response="Proper usage: sendosdesc [os description]"}break;case"args":response="args "+objToString(args,0," ",true);break;case"print":var r=[];for(var i in args._){r.push(args._[i])}console.log(r.join(" "));response="Message printed on agent console.";break;case"type":if(args._.length==0){response="Proper usage: type (filepath) [maxlength]"}else{var max=4096;if((args._.length>1)&&(typeof args._[1]=="number")){max=args._[1]}if(max>4096){max=4096}var buf=Buffer.alloc(max),fd=fs.openSync(args._[0],"r"),r=fs.readSync(fd,buf,0,max);response=buf.toString();var i=response.indexOf("\n");if((i>0)&&(response[i-1]!="\r")){response=response.split("\n").join("\r\n")}if(r==max){response+="..."}fs.closeSync(fd)}break;case"dbkeys":response=JSON.stringify(db.Keys);break;case"dbget":if(db==null){response="Database not accessible.";break}if(args._.length!=1){response="Proper usage: dbget (key)"}else{response=db.Get(args._[0])}break;case"dbset":if(db==null){response="Database not accessible.";break}if(args._.length!=2){response="Proper usage: dbset (key) (value)"}else{var r=db.Put(args._[0],args._[1]);response="Key set: "+r}break;case"dbcompact":if(db==null){response="Database not accessible.";break}var r=db.Compact();response="Database compacted: "+r;break;case"httpget":if(consoleHttpRequest!=null){response="HTTP operation already in progress."}else{if(args._.length!=1){response="Proper usage: httpget (url)"}else{var options=http.parseUri(args._[0]);options.method="GET";if(options==null){response="Invalid url."}else{try{consoleHttpRequest=http.request(options,consoleHttpResponse)}catch(e){response="Invalid HTTP GET request"}consoleHttpRequest.sessionid=sessionid;if(consoleHttpRequest!=null){consoleHttpRequest.end();response="HTTPGET "+options.protocol+"//"+options.host+":"+options.port+options.path}}}}break;case"wslist":response="";for(var i in consoleWebSockets){var httprequest=consoleWebSockets[i];response+="Websocket #"+i+", "+httprequest.url+"\r\n"}if(response==""){response="no websocket sessions."}break;case"wsconnect":if(args._.length==0){response="Proper usage: wsconnect (url)\r\nFor example: wsconnect wss://localhost:443/meshrelay.ashx?id=abc"}else{var httprequest=null;try{var options=http.parseUri(args._[0]);options.rejectUnauthorized=0;httprequest=http.request(options)}catch(e){response="Invalid HTTP websocket request"}if(httprequest!=null){httprequest.upgrade=onWebSocketUpgrade;httprequest.onerror=function(e){sendConsoleText("ERROR: "+JSON.stringify(e))};var index=1;while(consoleWebSockets[index]){index++}httprequest.sessionid=sessionid;httprequest.index=index;httprequest.url=args._[0];consoleWebSockets[index]=httprequest;response="New websocket session #"+index}}break;case"wssend":if(args._.length==0){response="Proper usage: wssend (socketnumber)\r\n";for(var i in consoleWebSockets){var httprequest=consoleWebSockets[i];response+="Websocket #"+i+", "+httprequest.url+"\r\n"}}else{var i=parseInt(args._[0]);var httprequest=consoleWebSockets[i];if(httprequest!=undefined){httprequest.s.write(args._[1]);response="ok"}else{response="Invalid web socket number"}}break;case"wsclose":if(args._.length==0){response="Proper usage: wsclose (socketnumber)"}else{var i=parseInt(args._[0]);var httprequest=consoleWebSockets[i];if(httprequest!=undefined){if(httprequest.s!=null){httprequest.s.end()}else{httprequest.end()}response="ok"}else{response="Invalid web socket number"}}break;case"tunnels":response="";for(var i in tunnels){response+="Tunnel #"+i+", "+tunnels[i].url+"\r\n"}if(response==""){response="No websocket sessions."}break;case"ls":response="";var xpath="*";if(args._.length>0){xpath=obj.path.join(args._[0],"*")}response="List of "+xpath+"\r\n";var results=fs.readdirSync(xpath);for(var i=0;i0){var r="",pstates=["NotActivated","InActivation","Activated"];for(var i in data){var x=data[i];if(r!=""){r+="\r\n"}r+=x.address+" - Intel AMT v"+x.majorVersion+"."+x.minorVersion;if(x.provisioningState<3){r+=(", "+pstates[x.provisioningState])}if(x.provisioningState==2){r+=(", "+x.openPorts.join(", "))}r+="."}}else{r="No Intel AMT found."}sendConsoleText(r)})}}else{response="Intel AMT scanner module not present."}break;case"modules":response=JSON.stringify(addedModules);break;default:response='Unknown command "'+cmd+'", type "help" for list of avaialble commands.';break}}catch(e){response="Command returned an exception error: "+e;console.log(e)}if(response!=null){sendConsoleText(response,sessionid)}}function sendConsoleText(text,sessionid){if(typeof text=="object"){text=JSON.stringify(text)}mesh.SendCommand({action:"msg",type:"console",value:text,sessionid:sessionid})}function handleServerConnection(state){meshServerConnectionState=state;if(meshServerConnectionState==0){if(selfInfoUpdateTimer!=null){clearInterval(selfInfoUpdateTimer);selfInfoUpdateTimer=null}lastSelfInfo=null}else{var oldNodeId=db.Get("OldNodeId");if(oldNodeId!=null){mesh.SendCommand({action:"mc1migration",oldnodeid:oldNodeId})}mesh.SendCommand(meshCoreObj);if(SMBiosTablesRaw!=null){mesh.SendCommand({action:"smbios",value:SMBiosTablesRaw})}meInfoStr=null;sendPeriodicServerUpdate()}}var sendNetworkUpdateNagleTimer=null;function sendNetworkUpdateNagle(){if(sendNetworkUpdateNagleTimer!=null){clearTimeout(sendNetworkUpdateNagleTimer);sendNetworkUpdateNagleTimer=null}sendNetworkUpdateNagleTimer=setTimeout(sendNetworkUpdate,5000)}function sendNetworkUpdate(force){sendNetworkUpdateNagleTimer=null;var netInfo=mesh.NetInfo;netInfo.action="netinfo";var netInfoStr=JSON.stringify(netInfo);if((force==true)||(clearGatewayMac(netInfoStr)!=clearGatewayMac(lastNetworkInfo))){mesh.SendCommand(netInfo);lastNetworkInfo=netInfoStr}}function sendPeriodicServerUpdate(flags){if(meshServerConnectionState==0){return}if(!flags){flags=4294967295}if(flags&1){getAmtInfo(function(meinfo){try{if(meinfo==null){return}var intelamt={},p=false;if(meinfo.Versions&&meinfo.Versions.AMT){intelamt.ver=meinfo.Versions.AMT;p=true}if(meinfo.ProvisioningState){intelamt.state=meinfo.ProvisioningState;p=true}if(meinfo.Flags){intelamt.flags=meinfo.Flags;p=true}if(meinfo.OsHostname){intelamt.host=meinfo.OsHostname;p=true}if(meinfo.UUID){intelamt.uuid=meinfo.UUID;p=true}if(p==true){var meInfoStr=JSON.stringify(intelamt);if(meInfoStr!=lastMeInfo){meshCoreObj.intelamt=intelamt;mesh.SendCommand(meshCoreObj);lastMeInfo=meInfoStr}}}catch(ex){}})}if(flags&2){sendNetworkUpdateNagle(false)}}function getAmtInfo(func){if(amtMei==null||amtMeiConnected!=2){if(func!=null){func(null)}return}try{amtMeiTmpState={Flags:0};amtMei.getProtocolVersion(function(result){if(result!=null){amtMeiTmpState.MeiVersion=result}});amtMei.getVersion(function(result){if(result){amtMeiTmpState.Versions={};for(var version in result.Versions){amtMeiTmpState.Versions[result.Versions[version].Description]=result.Versions[version].Version}}});amtMei.getProvisioningMode(function(result){if(result){amtMeiTmpState.ProvisioningMode=result.mode}});amtMei.getProvisioningState(function(result){if(result){amtMeiTmpState.ProvisioningState=result.state}});amtMei.getEHBCState(function(result){if((result!=null)&&(result.EHBC==true)){amtMeiTmpState.Flags+=1}});amtMei.getControlMode(function(result){if(result!=null){if(result.controlMode==1){amtMeiTmpState.Flags+=2}if(result.controlMode==2){amtMeiTmpState.Flags+=4}}});amtMei.getLanInterfaceSettings(0,function(result){if(result){amtMeiTmpState.net0=result}});amtMei.getLanInterfaceSettings(1,function(result){if(result){amtMeiTmpState.net1=result}});amtMei.getUuid(function(result){if((result!=null)&&(result.uuid!=null)){amtMeiTmpState.UUID=result.uuid}});amtMei.getDnsSuffix(function(result){if(result!=null){amtMeiTmpState.dns=result}if(func!=null){func(amtMeiTmpState)}})}catch(e){if(func!=null){func(null)}return}}function handleAmtNotification(notifyMsg){if((notifyMsg==null)||(notifyMsg.Body==null)||(notifyMsg.Body.MessageID==null)||(notifyMsg.Body.MessageArguments==null)){return null}var amtMessage=notifyMsg.Body.MessageID,amtMessageArg=notifyMsg.Body.MessageArguments[0],notify=null;switch(amtMessage){case"iAMT0050":if(amtMessageArg=="48"){notify="Intel® AMT Serial-over-LAN connected"}else{if(amtMessageArg=="49"){notify="Intel® AMT Serial-over-LAN disconnected"}}break;case"iAMT0052":if(amtMessageArg=="1"){notify="Intel® AMT KVM connected"}else{if(amtMessageArg=="2"){notify="Intel® AMT KVM disconnected"}}break;default:break}if(notify!=null){mesh.SendCommand({action:"msg",type:"notify",value:notify,tag:"general"})}}function resetMicroLms(){try{var lme_heci=require("amt-lme");amtLmsState=1;amtLms=new lme_heci();amtLms.on("error",function(e){amtLmsState=0;amtLms=null;sendConsoleText("LMS Error.");obj.setupMeiOsAdmin(null,1)});amtLms.on("connect",function(){amtLmsState=2;obj.setupMeiOsAdmin(null,2)});amtLms.on("notify",function(data,options,str,code){if(code=="iAMT0052-3"){obj.kvmGetData()}else{handleAmtNotification(data)}})}catch(e){amtLmsState=-1;amtLms=null}}obj.start=function(){mesh.AddCommandHandler(handleServerCommand);mesh.AddConnectHandler(handleServerConnection);resetMicroLms();try{var userSession=require("user-sessions");userSession.on("changed",function onUserSessionChanged(){userSession.enumerateUsers().then(function(users){var u=[],a=users.Active;for(var i=0;i=12)){obj.kvmGetData("skip");obj.kvmTempTimer=setInterval(function(){obj.kvmGetData()},2000);obj.kvmSetData(JSON.stringify({action:"restart",ver:1}))}})})};obj.kvmGetData=function(tag){obj.osamtstack.IPS_KVMRedirectionSettingData_DataChannelRead(obj.kvmDataGetResponse,tag)};obj.kvmDataGetResponse=function(stack,name,response,status,tag){if((tag!="skip")&&(status==200)&&(response.Body.ReturnValue==0)){var val=null;try{val=Buffer.from(response.Body.DataMessage,"base64").toString()}catch(e){return}if(val!=null){obj.kvmProcessData(response.Body.RealmsBitmap,response.Body.MessageId,val)}}};var webRtcDesktop=null;obj.kvmProcessData=function(realms,messageId,val){var data=null;try{data=JSON.parse(val)}catch(e){}if((data!=null)&&(data.action)){if(data.action=="present"){obj.kvmSetData(JSON.stringify({action:"present",ver:1,platform:process.platform}))}if(data.action=="offer"){webRtcDesktop={};var rtc=require("ILibWebRTC");webRtcDesktop.webrtc=rtc.createConnection();webRtcDesktop.webrtc.on("connected",function(){});webRtcDesktop.webrtc.on("disconnected",function(){obj.webRtcCleanUp()});webRtcDesktop.webrtc.on("dataChannel",function(rtcchannel){webRtcDesktop.rtcchannel=rtcchannel;webRtcDesktop.kvm=mesh.getRemoteDesktopStream();webRtcDesktop.kvm.pipe(webRtcDesktop.rtcchannel,{dataTypeSkip:1,end:false});webRtcDesktop.rtcchannel.on("end",function(){obj.webRtcCleanUp()});webRtcDesktop.rtcchannel.on("data",function(x){obj.kvmCtrlData(this,x)});webRtcDesktop.rtcchannel.pipe(webRtcDesktop.kvm,{dataTypeSkip:1,end:false})});obj.kvmSetData(JSON.stringify({action:"answer",ver:1,sdp:webRtcDesktop.webrtc.setOffer(data.sdp)}))}}};var path={join:function(){var x=[];for(var i in arguments){var w=arguments[i];if(w!=null){while(w.endsWith("/")||w.endsWith("\\")){w=w.substring(0,w.length-1)}if(i!=0){while(w.startsWith("/")||w.startsWith("\\")){w=w.substring(1)}}x.push(w)}}if(x.length==0){return"/"}return x.join("/")}};obj.kvmCtrlData=function(channel,cmd){if(cmd.length>0&&cmd.charCodeAt(0)!=123){if(this.fileupload!=null){cmd=Buffer.from(cmd,"base64");var header=cmd.readUInt32BE(0);if((header==16777216)||(header==16777217)){fs.writeSync(this.fileupload.fp,cmd.slice(4));channel.write({action:"upload",sub:"ack",reqid:this.fileupload.reqid});if(header==16777217){fs.closeSync(this.fileupload.fp);this.fileupload=null}}}return}try{cmd=JSON.parse(cmd)}catch(ex){console.error("Invalid JSON: "+cmd);return}if((cmd.path!=null)&&(process.platform!="win32")&&(cmd.path[0]!="/")){cmd.path="/"+cmd.path}switch(cmd.action){case"ping":channel.write({action:"pong"});break;case"lock":if(process.platform=="win32"){var child=require("child_process");child.execFile(process.env.windir+"\\system32\\cmd.exe",["/c","RunDll32.exe user32.dll,LockWorkStation"],{type:1})}break;case"ls":var response=getDirectoryInfo(cmd.path);if(cmd.reqid!=undefined){response.reqid=cmd.reqid}channel.write(response);break;case"mkdir":fs.mkdirSync(cmd.path);break;case"rm":for(var i in cmd.delfiles){var fullpath=path.join(cmd.path,cmd.delfiles[i]);try{fs.unlinkSync(fullpath)}catch(e){console.log(e)}}break;case"rename":try{fs.renameSync(path.join(cmd.path,cmd.oldname),path.join(cmd.path,cmd.newname))}catch(e){console.log(e)}break;case"download":var sendNextBlock=0;if(cmd.sub=="start"){if(this.filedownload!=null){channel.write({action:"download",sub:"cancel",id:this.filedownload.id});delete this.filedownload}this.filedownload={id:cmd.id,path:cmd.path,ptr:0};try{this.filedownload.f=fs.openSync(this.filedownload.path,"rbN")}catch(e){channel.write({action:"download",sub:"cancel",id:this.filedownload.id});delete this.filedownload}if(this.filedownload){channel.write({action:"download",sub:"start",id:cmd.id})}}else{if((this.filedownload!=null)&&(cmd.id==this.filedownload.id)){if(cmd.sub=="startack"){sendNextBlock=8}else{if(cmd.sub=="stop"){delete this.filedownload}else{if(cmd.sub=="ack"){sendNextBlock=1}}}}}while(sendNextBlock>0){sendNextBlock--;var buf=Buffer.alloc(4096);var len=fs.readSync(this.filedownload.f,buf,4,4092,null);this.filedownload.ptr+=len;if(len<4092){buf.writeInt32BE(16777217,0);fs.closeSync(this.filedownload.f);delete this.filedownload;sendNextBlock=0}else{buf.writeInt32BE(16777216,0)}channel.write(buf.slice(0,len+4).toString("base64"))}break;case"upload":if(cmd.sub=="start"){if(this.fileupload!=null){fs.closeSync(this.fileupload.fp)}if(!cmd.path||!cmd.name){break}this.fileupload={reqid:cmd.reqid};var filepath=path.join(cmd.path,cmd.name);try{this.fileupload.fp=fs.openSync(filepath,"wbN")}catch(e){}if(this.fileupload.fp){channel.write({action:"upload",sub:"start",reqid:this.fileupload.reqid})}else{this.fileupload=null;channel.write({action:"upload",sub:"error",reqid:this.fileupload.reqid})}}else{if(cmd.sub=="cancel"){if(this.fileupload!=null){fs.closeSync(this.fileupload.fp);this.fileupload=null}}}break;case"copy":for(var i in cmd.names){var sc=path.join(cmd.scpath,cmd.names[i]),ds=path.join(cmd.dspath,cmd.names[i]);if(sc!=ds){try{fs.copyFileSync(sc,ds)}catch(e){}}}break;case"move":for(var i in cmd.names){var sc=path.join(cmd.scpath,cmd.names[i]),ds=path.join(cmd.dspath,cmd.names[i]);if(sc!=ds){try{fs.copyFileSync(sc,ds);fs.unlinkSync(sc)}catch(e){}}}break;default:console.log("Invalid KVM command",cmd);sendConsoleText("Invalid KVM command: "+cmd);break}};obj.webRtcCleanUp=function(){sendConsoleText("webRtcCleanUp");if(webRtcDesktop==null){return}if(webRtcDesktop.rtcchannel){try{webRtcDesktop.rtcchannel.close()}catch(e){}try{webRtcDesktop.rtcchannel.removeAllListeners("data")}catch(e){}try{webRtcDesktop.rtcchannel.removeAllListeners("end")}catch(e){}delete webRtcDesktop.rtcchannel}if(webRtcDesktop.webrtc){try{webRtcDesktop.webrtc.close()}catch(e){}try{webRtcDesktop.webrtc.removeAllListeners("connected")}catch(e){}try{webRtcDesktop.webrtc.removeAllListeners("disconnected")}catch(e){}try{webRtcDesktop.webrtc.removeAllListeners("dataChannel")}catch(e){}delete webRtcDesktop.webrtc}if(webRtcDesktop.kvm){try{webRtcDesktop.kvm.end()}catch(e){}delete webRtcDesktop.kvm}webRtcDesktop=null};obj.kvmSetData=function(x){obj.osamtstack.IPS_KVMRedirectionSettingData_DataChannelWrite(Buffer.from(x).toString("base64"),function(){})};function deleteFolderRecursive(path,rec){if(fs.existsSync(path)){if(rec==true){fs.readdirSync(obj.path.join(path,"*")).forEach(function(file,index){var curPath=obj.path.join(path,file);if(fs.statSync(curPath).isDirectory()){deleteFolderRecursive(curPath,true)}else{fs.unlinkSync(curPath)}})}fs.unlinkSync(path)}}function deactivateCCM(){amtMei.unprovision(1,function(status){if(status==0){sendConsoleText("Success deactivating Intel AMT CCM.")}else{sendConsoleText("Intel AMT CCM deactivation error: "+status)}})}function activeToCCM(adminpass){amtMei.getLocalSystemAccount(function(x){if(x.user&&x.pass){var transport=require("amt-wsman-duk");var wsman=require("amt-wsman");var amt=require("amt");oswsstack=new wsman(transport,"127.0.0.1",16992,x.user,x.pass,false);osamtstack=new amt(oswsstack);osamtstack.BatchEnum(null,["*AMT_GeneralSettings","*IPS_HostBasedSetupService"],activeToCCMEx2,adminpass)}else{sendConsoleText("Unable to get $$OsAdmin password.")}})}function activeToCCMEx2(stack,name,responses,status,adminpass){if(status!=200){sendConsoleText("Failed to fetch activation status, status "+status)}else{if(responses.IPS_HostBasedSetupService.response.AllowedControlModes.length!=2){sendConsoleText("Client control mode activation not allowed")}else{stack.IPS_HostBasedSetupService_Setup(2,md5hex("admin:"+responses.AMT_GeneralSettings.response.DigestRealm+":"+adminpass).substring(0,32),null,null,null,null,activeToCCMEx3)}}}function activeToCCMEx3(stack,name,responses,status){if(status!=200){sendConsoleText("Failed to activate, status "+status)}else{if(responses.Body.ReturnValue!=0){sendConsoleText("Client control mode activation failed: "+responses.Body.ReturnValueStr)}else{sendConsoleText("Intel AMT CCM activation success")}}}function md5hex(str){return require("MD5Stream").create().syncHash(str).toString("hex")}return obj}try{var xexports=null,mainMeshCore=null;try{xexports=module.exports}catch(e){}if(xexports!=null){module.exports.createMeshCore=createMeshCore}else{mainMeshCore=createMeshCore();mainMeshCore.start(null)}}catch(ex){require("MeshAgent").SendCommand({action:"msg",type:"console",value:"uncaughtException2: "+ex})}; \ No newline at end of file diff --git a/agents/modules_meshcmd/service-host.js b/agents/modules_meshcmd/service-host.js index 625283fe..46e9a883 100644 --- a/agents/modules_meshcmd/service-host.js +++ b/agents/modules_meshcmd/service-host.js @@ -301,6 +301,9 @@ function serviceHost(serviceName) } process.exit(); break; + default: + // Unknown arguments, skip it. + break; } } diff --git a/agents/modules_meshcmd/service-manager.js b/agents/modules_meshcmd/service-manager.js index 304e030f..cd028e63 100644 --- a/agents/modules_meshcmd/service-manager.js +++ b/agents/modules_meshcmd/service-manager.js @@ -46,6 +46,9 @@ function parseServiceStatus(token) case 0x00000001: j.state = 'STOPPED'; break; + default: + // Unknown service state + break; } var controlsAccepted = token.Deref((2 * 4), 4).toBuffer().readUInt32LE(); j.controlsAccepted = []; diff --git a/agents/modules_meshcmd_min/service-host.min.js b/agents/modules_meshcmd_min/service-host.min.js index 6fe815d2..36de3b57 100644 --- a/agents/modules_meshcmd_min/service-host.min.js +++ b/agents/modules_meshcmd_min/service-host.min.js @@ -1 +1 @@ -var SERVICE_WIN32=16|32;var SERVICE_STATE={STOPPED:1,SERVICE_START_PENDING:2,SERVICE_STOP_PENDING:3,RUNNING:4};var SERVICE_ACCEPT={SERVICE_ACCEPT_STOP:1,SERVICE_ACCEPT_SHUTDOWN:4,SERVICE_ACCEPT_POWEREVENT:64,SERVICE_ACCEPT_SESSIONCHANGE:128};var SERVICE_CONTROL={SERVICE_CONTROL_SHUTDOWN:5,SERVICE_CONTROL_STOP:1,SERVICE_CONTROL_POWEREVENT:13,SERVICE_CONTROL_SESSIONCHANGE:14};var SESSION_CHANGE_TYPE={WTS_CONSOLE_CONNECT:1,WTS_CONSOLE_DISCONNECT:2,WTS_REMOTE_CONNECT:3,WTS_REMOTE_DISCONNECT:4,WTS_SESSION_LOGON:5,WTS_SESSION_LOGOFF:6,WTS_SESSION_LOCK:7,WTS_SESSION_UNLOCK:8,WTS_SESSION_REMOTE_CONTROL:9,WTS_SESSION_CREATE:10,WTS_SESSION_TERMINATE:11};var NO_ERROR=0;var serviceManager=require("service-manager");function serviceHost(e){this._ObjectID="service-host";var a=require("events").inherits(this);a.createEvent("serviceStart");a.createEvent("serviceStop");a.createEvent("normalStart");a.createEvent("session");a.createEvent("powerStateChange");if(process.platform=="win32"){this.GM=require("_GenericMarshal");this.Advapi=this.GM.CreateNativeProxy("Advapi32.dll");this.Advapi.CreateMethod({method:"StartServiceCtrlDispatcherA",threadDispatch:1});this.Advapi.CreateMethod("RegisterServiceCtrlHandlerExA");this.Advapi.CreateMethod("SetServiceStatus");this.Kernel32=this.GM.CreateNativeProxy("Kernel32.dll");this.Kernel32.CreateMethod("GetLastError");this.Ole32=this.GM.CreateNativeProxy("Ole32.dll");this.Ole32.CreateMethod("CoInitializeEx");this.Ole32.CreateMethod("CoUninitialize");this._ServiceName=this.GM.CreateVariable(typeof(e)=="string"?e:e.name);this._ServiceMain=this.GM.GetGenericGlobalCallback(2);this._ServiceMain.Parent=this;this._ServiceMain.GM=this.GM;this._ServiceMain.on("GlobalCallback",function b(f,g){this.Parent._ServiceStatus=this.GM.CreateVariable(28);this.Parent._ServiceStatus.toBuffer().writeUInt32LE(SERVICE_WIN32);this.Parent._ServiceStatus.toBuffer().writeUInt32LE(SERVICE_STATE.SERVICE_STOPPED,4);this.Parent._ServiceStatusHandle=this.Parent.Advapi.RegisterServiceCtrlHandlerExA(this.Parent._ServiceName,this.Parent._ServiceControlHandler,this.Parent.GM.StashObject(this.Parent._ServiceControlHandler));if(this.Parent._ServiceStatusHandle.Val==0){process.exit(1)}this.Parent._ServiceStatus.toBuffer().writeUInt32LE(SERVICE_STATE.SERVICE_START_PENDING,4);this.Parent.Advapi.SetServiceStatus(this.Parent._ServiceStatusHandle,this.Parent._ServiceStatus);this.Parent._ServiceStatus.toBuffer().writeUInt32LE(SERVICE_STATE.RUNNING,4);this.Parent._ServiceStatus.toBuffer().writeUInt32LE(SERVICE_ACCEPT.SERVICE_ACCEPT_STOP|SERVICE_ACCEPT.SERVICE_ACCEPT_POWEREVENT|SERVICE_ACCEPT.SERVICE_ACCEPT_SESSIONCHANGE,8);this.Parent.Advapi.SetServiceStatus(this.Parent._ServiceStatusHandle,this.Parent._ServiceStatus);this.Parent.Ole32.CoInitializeEx(0,2);this.Parent.on("~",function h(){var j=require("_GenericMarshal");var i=j.CreateNativeProxy("Advapi32.dll");i.CreateMethod("SetServiceStatus");Kernel32=this.GM.CreateNativeProxy("Kernel32.dll");Kernel32.CreateMethod("GetLastError");var k=j.CreateVariable(28);k.toBuffer().writeUInt32LE(SERVICE_WIN32);k.toBuffer().writeUInt32LE(1,4);k.toBuffer().writeUInt32LE(0,8);i.SetServiceStatus(this._ServiceStatusHandle,k);this.Ole32.CoUninitialize()});this.Parent.emit("serviceStart")});this._ServiceControlHandler=this.GM.GetGenericGlobalCallback(4);this._ServiceControlHandler.Parent=this;this._ServiceControlHandler.GM=this.GM;this._ServiceControlHandler.on("GlobalCallback",function c(f,i,h,g){var k=this.Parent.GM.UnstashObject(g);if(k!=null&&k==this){switch(f.Val){case SERVICE_CONTROL.SERVICE_CONTROL_SHUTDOWN:case SERVICE_CONTROL.SERVICE_CONTROL_STOP:this.Parent.emit("serviceStop");return;case SERVICE_CONTROL.SERVICE_CONTROL_SESSIONCHANGE:var l=h.Deref(4,4).toBuffer().readUInt32LE();switch(i.Val){case SESSION_CHANGE_TYPE.WTS_SESSION_LOGON:case SESSION_CHANGE_TYPE.WTS_SESSION_LOGOFF:require("user-sessions").emit("changed");break}break;default:break}this.Parent.Advapi.SetServiceStatus(this.Parent._ServiceStatusHandle,this.Parent._ServiceStatus)}})}if(e){this._ServiceOptions=typeof(e)=="object"?e:{name:e}}else{throw ("Must specify either ServiceName or Options")}if(!this._ServiceOptions.servicePath){this._ServiceOptions.servicePath=process.execPath}this.run=function d(){var r=0;for(var h=0;hStandardOutPath\n"+s.stdout+""):"");var i=(s.startType=="AUTO_START"?"":"");var t=" ProgramArguments\n";t+=" \n";t+=(" /usr/local/mesh_services/"+s.name+"/"+s.name+"\n");if(s.parameters){for(var p in s.parameters){t+=(" "+s.parameters[p]+"\n")}}t+=" \n";var u='\n';u+='\n';u+='\n';u+=" \n";u+=" Label\n";u+=(" "+s.name+"\n");u+=(t+"\n");u+=" WorkingDirectory\n";u+=(" /usr/local/mesh_services/"+s.name+"\n");u+=(z+"\n");u+=" RunAtLoad\n";u+=(i+"\n");u+=" \n";u+="";if(!require("fs").existsSync("/usr/local/mesh_services")){require("fs").mkdirSync("/usr/local/mesh_services")}if(!require("fs").existsSync("/Library/LaunchDaemons/"+s.name+".plist")){if(!require("fs").existsSync("/usr/local/mesh_services/"+s.name)){require("fs").mkdirSync("/usr/local/mesh_services/"+s.name)}if(s.binary){require("fs").writeFileSync("/usr/local/mesh_services/"+s.name+"/"+s.name,s.binary)}else{require("fs").copyFileSync(s.servicePath,"/usr/local/mesh_services/"+s.name+"/"+s.name)}require("fs").writeFileSync("/Library/LaunchDaemons/"+s.name+".plist",u);var q=require("fs").statSync("/usr/local/mesh_services/"+s.name+"/"+s.name).mode;q|=(require("fs").CHMOD_MODES.S_IXUSR|require("fs").CHMOD_MODES.S_IXGRP);require("fs").chmodSync("/usr/local/mesh_services/"+s.name+"/"+s.name,q)}else{throw ("Service: "+s.name+" already exists")}}};this.uninstallService=function f(i){if(!this.isAdmin()){throw ("Uninstalling a service, requires admin")}if(typeof(i)=="object"){i=i.name}if(process.platform=="win32"){var k=this.getService(i);if(k.status.state==undefined||k.status.state=="STOPPED"){if(this.proxy.DeleteService(k._service)==0){throw ("Uninstall Service for: "+i+", failed with error: "+this.proxy2.GetLastError())}else{try{require("fs").unlinkSync(this.getServiceFolder()+"\\"+i+".exe")}catch(h){}}}else{throw ("Cannot uninstall service: "+i+", because it is: "+k.status.state)}}else{if(process.platform=="linux"){switch(this.getServiceType()){case"init":this._update=require("child_process").execFile("/bin/sh",["sh"],{type:require("child_process").SpawnTypes.TERM});this._update._svcname=i;this._update.on("exit",function j(){try{require("fs").unlinkSync("/etc/init.d/"+this._svcname);console.log(this._svcname+" uninstalled")}catch(l){console.log(this._svcname+" could not be uninstalled")}process.exit()});this._update.stdout.on("data",function(l){});this._update.stdin.write("service "+i+" stop\n");this._update.stdin.write("update-rc.d -f "+i+" remove\n");this._update.stdin.write("exit\n");break;case"systemd":this._update=require("child_process").execFile("/bin/sh",["sh"],{type:require("child_process").SpawnTypes.TERM});this._update._svcname=i;this._update.on("exit",function j(){try{require("fs").unlinkSync("/usr/local/mesh/"+this._svcname);require("fs").unlinkSync("/lib/systemd/system/"+this._svcname+".service");console.log(this._svcname+" uninstalled")}catch(l){console.log(this._svcname+" could not be uninstalled")}process.exit()});this._update.stdout.on("data",function(l){});this._update.stdin.write("systemctl stop "+i+".service\n");this._update.stdin.write("systemctl disable "+i+".service\n");this._update.stdin.write("exit\n");break;default:break}}else{if(process.platform=="darwin"){if(require("fs").existsSync("/Library/LaunchDaemons/"+i+".plist")){var g=require("child_process").execFile("/bin/sh",["sh"]);g.stdout.on("data",function(l){});g.stdin.write("launchctl stop "+i+"\n");g.stdin.write("launchctl unload /Library/LaunchDaemons/"+i+".plist\n");g.stdin.write("exit\n");g.waitExit();try{require("fs").unlinkSync("/usr/local/mesh_services/"+i+"/"+i);require("fs").unlinkSync("/Library/LaunchDaemons/"+i+".plist")}catch(h){throw ("Error uninstalling service: "+i+" => "+h)}try{require("fs").rmdirSync("/usr/local/mesh_services/"+i)}catch(h){}}else{throw ("Service: "+i+" does not exist")}}}}};if(process.platform=="linux"){this.getServiceType=function c(){return(require("process-manager").getProcessInfo(1).Name)}}}module.exports=serviceManager; \ No newline at end of file +function parseServiceStatus(d){var b={};var c=d.Deref(0,4).IntVal;b.isFileSystemDriver=((c&2)==2);b.isKernelDriver=((c&1)==1);b.isSharedProcess=((c&32)==32);b.isOwnProcess=((c&16)==16);b.isInteractive=((c&256)==256);switch(d.Deref((1*4),4).toBuffer().readUInt32LE()){case 5:b.state="CONTINUE_PENDING";break;case 6:b.state="PAUSE_PENDING";break;case 7:b.state="PAUSED";break;case 4:b.state="RUNNING";break;case 2:b.state="START_PENDING";break;case 3:b.state="STOP_PENDING";break;case 1:b.state="STOPPED";break;default:break}var a=d.Deref((2*4),4).toBuffer().readUInt32LE();b.controlsAccepted=[];if((a&16)==16){b.controlsAccepted.push("SERVICE_CONTROL_NETBINDADD");b.controlsAccepted.push("SERVICE_CONTROL_NETBINDREMOVE");b.controlsAccepted.push("SERVICE_CONTROL_NETBINDENABLE");b.controlsAccepted.push("SERVICE_CONTROL_NETBINDDISABLE")}if((a&8)==8){b.controlsAccepted.push("SERVICE_CONTROL_PARAMCHANGE")}if((a&2)==2){b.controlsAccepted.push("SERVICE_CONTROL_PAUSE");b.controlsAccepted.push("SERVICE_CONTROL_CONTINUE")}if((a&256)==256){b.controlsAccepted.push("SERVICE_CONTROL_PRESHUTDOWN")}if((a&4)==4){b.controlsAccepted.push("SERVICE_CONTROL_SHUTDOWN")}if((a&1)==1){b.controlsAccepted.push("SERVICE_CONTROL_STOP")}if((a&32)==32){b.controlsAccepted.push("SERVICE_CONTROL_HARDWAREPROFILECHANGE")}if((a&64)==64){b.controlsAccepted.push("SERVICE_CONTROL_POWEREVENT")}if((a&128)==128){b.controlsAccepted.push("SERVICE_CONTROL_SESSIONCHANGE")}b.pid=d.Deref((7*4),4).toBuffer().readUInt32LE();return(b)}function serviceManager(){this._ObjectID="service-manager";if(process.platform=="win32"){this.GM=require("_GenericMarshal");this.proxy=this.GM.CreateNativeProxy("Advapi32.dll");this.proxy.CreateMethod("OpenSCManagerA");this.proxy.CreateMethod("EnumServicesStatusExA");this.proxy.CreateMethod("OpenServiceA");this.proxy.CreateMethod("QueryServiceStatusEx");this.proxy.CreateMethod("ControlService");this.proxy.CreateMethod("StartServiceA");this.proxy.CreateMethod("CloseServiceHandle");this.proxy.CreateMethod("CreateServiceA");this.proxy.CreateMethod("ChangeServiceConfig2A");this.proxy.CreateMethod("DeleteService");this.proxy.CreateMethod("AllocateAndInitializeSid");this.proxy.CreateMethod("CheckTokenMembership");this.proxy.CreateMethod("FreeSid");this.proxy2=this.GM.CreateNativeProxy("Kernel32.dll");this.proxy2.CreateMethod("GetLastError");this.isAdmin=function e(){var j=this.GM.CreateVariable(6);j.toBuffer().writeInt8(5,5);var h=this.GM.CreatePointer();var g=false;if(this.proxy.AllocateAndInitializeSid(j,2,32,544,0,0,0,0,0,0,h).Val!=0){var i=this.GM.CreateInteger();if(this.proxy.CheckTokenMembership(0,h.Deref(),i).Val!=0){if(i.toBuffer().readUInt32LE()!=0){g=true}}this.proxy.FreeSid(h.Deref())}return g};this.getProgramFolder=function a(){if(require("os").arch()=="x64"){if(this.GM.PointerSize==4){return process.env["ProgramFiles(x86)"]}return process.env.ProgramFiles}return process.env.ProgramFiles};this.getServiceFolder=function b(){return this.getProgramFolder()+"\\mesh"};this.enumerateService=function(){var o=this.GM.CreatePointer();var k=this.GM.CreatePointer();var l=this.proxy.OpenSCManagerA(0,0,1|4);var h=this.GM.CreatePointer();var t=this.GM.CreatePointer();var q=this.GM.CreatePointer();var u=this.proxy.EnumServicesStatusExA(l,0,48,3,0,0,h,t,q,0);if(h.IntVal<=0){throw ("error enumerating services")}var v=h.IntVal;var s=this.GM.CreateVariable(v);this.proxy.EnumServicesStatusExA(l,0,48,3,s,v,h,t,q,0);console.log("servicesReturned",t.IntVal);var p=k._size;var g=36+(2*p);g+=((p-(g%p))%p);var r=[];for(var m=0;mStandardOutPath\n"+s.stdout+""):"");var i=(s.startType=="AUTO_START"?"":"");var t=" ProgramArguments\n";t+=" \n";t+=(" /usr/local/mesh_services/"+s.name+"/"+s.name+"\n");if(s.parameters){for(var p in s.parameters){t+=(" "+s.parameters[p]+"\n")}}t+=" \n";var u='\n';u+='\n';u+='\n';u+=" \n";u+=" Label\n";u+=(" "+s.name+"\n");u+=(t+"\n");u+=" WorkingDirectory\n";u+=(" /usr/local/mesh_services/"+s.name+"\n");u+=(z+"\n");u+=" RunAtLoad\n";u+=(i+"\n");u+=" \n";u+="";if(!require("fs").existsSync("/usr/local/mesh_services")){require("fs").mkdirSync("/usr/local/mesh_services")}if(!require("fs").existsSync("/Library/LaunchDaemons/"+s.name+".plist")){if(!require("fs").existsSync("/usr/local/mesh_services/"+s.name)){require("fs").mkdirSync("/usr/local/mesh_services/"+s.name)}if(s.binary){require("fs").writeFileSync("/usr/local/mesh_services/"+s.name+"/"+s.name,s.binary)}else{require("fs").copyFileSync(s.servicePath,"/usr/local/mesh_services/"+s.name+"/"+s.name)}require("fs").writeFileSync("/Library/LaunchDaemons/"+s.name+".plist",u);var q=require("fs").statSync("/usr/local/mesh_services/"+s.name+"/"+s.name).mode;q|=(require("fs").CHMOD_MODES.S_IXUSR|require("fs").CHMOD_MODES.S_IXGRP);require("fs").chmodSync("/usr/local/mesh_services/"+s.name+"/"+s.name,q)}else{throw ("Service: "+s.name+" already exists")}}};this.uninstallService=function f(i){if(!this.isAdmin()){throw ("Uninstalling a service, requires admin")}if(typeof(i)=="object"){i=i.name}if(process.platform=="win32"){var k=this.getService(i);if(k.status.state==undefined||k.status.state=="STOPPED"){if(this.proxy.DeleteService(k._service)==0){throw ("Uninstall Service for: "+i+", failed with error: "+this.proxy2.GetLastError())}else{try{require("fs").unlinkSync(this.getServiceFolder()+"\\"+i+".exe")}catch(h){}}}else{throw ("Cannot uninstall service: "+i+", because it is: "+k.status.state)}}else{if(process.platform=="linux"){switch(this.getServiceType()){case"init":this._update=require("child_process").execFile("/bin/sh",["sh"],{type:require("child_process").SpawnTypes.TERM});this._update._svcname=i;this._update.on("exit",function j(){try{require("fs").unlinkSync("/etc/init.d/"+this._svcname);console.log(this._svcname+" uninstalled")}catch(l){console.log(this._svcname+" could not be uninstalled")}process.exit()});this._update.stdout.on("data",function(l){});this._update.stdin.write("service "+i+" stop\n");this._update.stdin.write("update-rc.d -f "+i+" remove\n");this._update.stdin.write("exit\n");break;case"systemd":this._update=require("child_process").execFile("/bin/sh",["sh"],{type:require("child_process").SpawnTypes.TERM});this._update._svcname=i;this._update.on("exit",function j(){try{require("fs").unlinkSync("/usr/local/mesh/"+this._svcname);require("fs").unlinkSync("/lib/systemd/system/"+this._svcname+".service");console.log(this._svcname+" uninstalled")}catch(l){console.log(this._svcname+" could not be uninstalled")}process.exit()});this._update.stdout.on("data",function(l){});this._update.stdin.write("systemctl stop "+i+".service\n");this._update.stdin.write("systemctl disable "+i+".service\n");this._update.stdin.write("exit\n");break;default:break}}else{if(process.platform=="darwin"){if(require("fs").existsSync("/Library/LaunchDaemons/"+i+".plist")){var g=require("child_process").execFile("/bin/sh",["sh"]);g.stdout.on("data",function(l){});g.stdin.write("launchctl stop "+i+"\n");g.stdin.write("launchctl unload /Library/LaunchDaemons/"+i+".plist\n");g.stdin.write("exit\n");g.waitExit();try{require("fs").unlinkSync("/usr/local/mesh_services/"+i+"/"+i);require("fs").unlinkSync("/Library/LaunchDaemons/"+i+".plist")}catch(h){throw ("Error uninstalling service: "+i+" => "+h)}try{require("fs").rmdirSync("/usr/local/mesh_services/"+i)}catch(h){}}else{throw ("Service: "+i+" does not exist")}}}}};if(process.platform=="linux"){this.getServiceType=function c(){return(require("process-manager").getProcessInfo(1).Name)}}}module.exports=serviceManager; \ No newline at end of file diff --git a/agents/modules_meshcore/service-manager.js b/agents/modules_meshcore/service-manager.js index 304e030f..34c5830d 100644 --- a/agents/modules_meshcore/service-manager.js +++ b/agents/modules_meshcore/service-manager.js @@ -46,6 +46,9 @@ function parseServiceStatus(token) case 0x00000001: j.state = 'STOPPED'; break; + default: + // Unknown service status. + break; } var controlsAccepted = token.Deref((2 * 4), 4).toBuffer().readUInt32LE(); j.controlsAccepted = []; @@ -316,7 +319,7 @@ function serviceManager() this._update.stdin.write('exit\n'); break; - default: // unknown platform service type + default: // Unknown platform service type break; } } @@ -449,7 +452,7 @@ function serviceManager() this._update.stdin.write('systemctl disable ' + name + '.service\n'); this._update.stdin.write('exit\n'); break; - default: // unknown platform service type + default: // Unknown platform service type break; } } diff --git a/agents/modules_meshcore_min/service-manager.min.js b/agents/modules_meshcore_min/service-manager.min.js index 21d4d136..4a9fad63 100644 --- a/agents/modules_meshcore_min/service-manager.min.js +++ b/agents/modules_meshcore_min/service-manager.min.js @@ -1 +1 @@ -function parseServiceStatus(d){var b={};var c=d.Deref(0,4).IntVal;b.isFileSystemDriver=((c&2)==2);b.isKernelDriver=((c&1)==1);b.isSharedProcess=((c&32)==32);b.isOwnProcess=((c&16)==16);b.isInteractive=((c&256)==256);switch(d.Deref((1*4),4).toBuffer().readUInt32LE()){case 5:b.state="CONTINUE_PENDING";break;case 6:b.state="PAUSE_PENDING";break;case 7:b.state="PAUSED";break;case 4:b.state="RUNNING";break;case 2:b.state="START_PENDING";break;case 3:b.state="STOP_PENDING";break;case 1:b.state="STOPPED";break}var a=d.Deref((2*4),4).toBuffer().readUInt32LE();b.controlsAccepted=[];if((a&16)==16){b.controlsAccepted.push("SERVICE_CONTROL_NETBINDADD");b.controlsAccepted.push("SERVICE_CONTROL_NETBINDREMOVE");b.controlsAccepted.push("SERVICE_CONTROL_NETBINDENABLE");b.controlsAccepted.push("SERVICE_CONTROL_NETBINDDISABLE")}if((a&8)==8){b.controlsAccepted.push("SERVICE_CONTROL_PARAMCHANGE")}if((a&2)==2){b.controlsAccepted.push("SERVICE_CONTROL_PAUSE");b.controlsAccepted.push("SERVICE_CONTROL_CONTINUE")}if((a&256)==256){b.controlsAccepted.push("SERVICE_CONTROL_PRESHUTDOWN")}if((a&4)==4){b.controlsAccepted.push("SERVICE_CONTROL_SHUTDOWN")}if((a&1)==1){b.controlsAccepted.push("SERVICE_CONTROL_STOP")}if((a&32)==32){b.controlsAccepted.push("SERVICE_CONTROL_HARDWAREPROFILECHANGE")}if((a&64)==64){b.controlsAccepted.push("SERVICE_CONTROL_POWEREVENT")}if((a&128)==128){b.controlsAccepted.push("SERVICE_CONTROL_SESSIONCHANGE")}b.pid=d.Deref((7*4),4).toBuffer().readUInt32LE();return(b)}function serviceManager(){this._ObjectID="service-manager";if(process.platform=="win32"){this.GM=require("_GenericMarshal");this.proxy=this.GM.CreateNativeProxy("Advapi32.dll");this.proxy.CreateMethod("OpenSCManagerA");this.proxy.CreateMethod("EnumServicesStatusExA");this.proxy.CreateMethod("OpenServiceA");this.proxy.CreateMethod("QueryServiceStatusEx");this.proxy.CreateMethod("ControlService");this.proxy.CreateMethod("StartServiceA");this.proxy.CreateMethod("CloseServiceHandle");this.proxy.CreateMethod("CreateServiceA");this.proxy.CreateMethod("ChangeServiceConfig2A");this.proxy.CreateMethod("DeleteService");this.proxy.CreateMethod("AllocateAndInitializeSid");this.proxy.CreateMethod("CheckTokenMembership");this.proxy.CreateMethod("FreeSid");this.proxy2=this.GM.CreateNativeProxy("Kernel32.dll");this.proxy2.CreateMethod("GetLastError");this.isAdmin=function e(){var j=this.GM.CreateVariable(6);j.toBuffer().writeInt8(5,5);var h=this.GM.CreatePointer();var g=false;if(this.proxy.AllocateAndInitializeSid(j,2,32,544,0,0,0,0,0,0,h).Val!=0){var i=this.GM.CreateInteger();if(this.proxy.CheckTokenMembership(0,h.Deref(),i).Val!=0){if(i.toBuffer().readUInt32LE()!=0){g=true}}this.proxy.FreeSid(h.Deref())}return g};this.getProgramFolder=function a(){if(require("os").arch()=="x64"){if(this.GM.PointerSize==4){return process.env["ProgramFiles(x86)"]}return process.env.ProgramFiles}return process.env.ProgramFiles};this.getServiceFolder=function b(){return this.getProgramFolder()+"\\mesh"};this.enumerateService=function(){var o=this.GM.CreatePointer();var k=this.GM.CreatePointer();var l=this.proxy.OpenSCManagerA(0,0,1|4);var h=this.GM.CreatePointer();var t=this.GM.CreatePointer();var q=this.GM.CreatePointer();var u=this.proxy.EnumServicesStatusExA(l,0,48,3,0,0,h,t,q,0);if(h.IntVal<=0){throw ("error enumerating services")}var v=h.IntVal;var s=this.GM.CreateVariable(v);this.proxy.EnumServicesStatusExA(l,0,48,3,s,v,h,t,q,0);console.log("servicesReturned",t.IntVal);var p=k._size;var g=36+(2*p);g+=((p-(g%p))%p);var r=[];for(var m=0;mStandardOutPath\n"+s.stdout+""):"");var i=(s.startType=="AUTO_START"?"":"");var t=" ProgramArguments\n";t+=" \n";t+=(" /usr/local/mesh_services/"+s.name+"/"+s.name+"\n");if(s.parameters){for(var p in s.parameters){t+=(" "+s.parameters[p]+"\n")}}t+=" \n";var u='\n';u+='\n';u+='\n';u+=" \n";u+=" Label\n";u+=(" "+s.name+"\n");u+=(t+"\n");u+=" WorkingDirectory\n";u+=(" /usr/local/mesh_services/"+s.name+"\n");u+=(z+"\n");u+=" RunAtLoad\n";u+=(i+"\n");u+=" \n";u+="";if(!require("fs").existsSync("/usr/local/mesh_services")){require("fs").mkdirSync("/usr/local/mesh_services")}if(!require("fs").existsSync("/Library/LaunchDaemons/"+s.name+".plist")){if(!require("fs").existsSync("/usr/local/mesh_services/"+s.name)){require("fs").mkdirSync("/usr/local/mesh_services/"+s.name)}if(s.binary){require("fs").writeFileSync("/usr/local/mesh_services/"+s.name+"/"+s.name,s.binary)}else{require("fs").copyFileSync(s.servicePath,"/usr/local/mesh_services/"+s.name+"/"+s.name)}require("fs").writeFileSync("/Library/LaunchDaemons/"+s.name+".plist",u);var q=require("fs").statSync("/usr/local/mesh_services/"+s.name+"/"+s.name).mode;q|=(require("fs").CHMOD_MODES.S_IXUSR|require("fs").CHMOD_MODES.S_IXGRP);require("fs").chmodSync("/usr/local/mesh_services/"+s.name+"/"+s.name,q)}else{throw ("Service: "+s.name+" already exists")}}};this.uninstallService=function f(i){if(!this.isAdmin()){throw ("Uninstalling a service, requires admin")}if(typeof(i)=="object"){i=i.name}if(process.platform=="win32"){var k=this.getService(i);if(k.status.state==undefined||k.status.state=="STOPPED"){if(this.proxy.DeleteService(k._service)==0){throw ("Uninstall Service for: "+i+", failed with error: "+this.proxy2.GetLastError())}else{try{require("fs").unlinkSync(this.getServiceFolder()+"\\"+i+".exe")}catch(h){}}}else{throw ("Cannot uninstall service: "+i+", because it is: "+k.status.state)}}else{if(process.platform=="linux"){switch(this.getServiceType()){case"init":this._update=require("child_process").execFile("/bin/sh",["sh"],{type:require("child_process").SpawnTypes.TERM});this._update._svcname=i;this._update.on("exit",function j(){try{require("fs").unlinkSync("/etc/init.d/"+this._svcname);console.log(this._svcname+" uninstalled")}catch(l){console.log(this._svcname+" could not be uninstalled")}process.exit()});this._update.stdout.on("data",function(l){});this._update.stdin.write("service "+i+" stop\n");this._update.stdin.write("update-rc.d -f "+i+" remove\n");this._update.stdin.write("exit\n");break;case"systemd":this._update=require("child_process").execFile("/bin/sh",["sh"],{type:require("child_process").SpawnTypes.TERM});this._update._svcname=i;this._update.on("exit",function j(){try{require("fs").unlinkSync("/usr/local/mesh/"+this._svcname);require("fs").unlinkSync("/lib/systemd/system/"+this._svcname+".service");console.log(this._svcname+" uninstalled")}catch(l){console.log(this._svcname+" could not be uninstalled")}process.exit()});this._update.stdout.on("data",function(l){});this._update.stdin.write("systemctl stop "+i+".service\n");this._update.stdin.write("systemctl disable "+i+".service\n");this._update.stdin.write("exit\n");break;default:break}}else{if(process.platform=="darwin"){if(require("fs").existsSync("/Library/LaunchDaemons/"+i+".plist")){var g=require("child_process").execFile("/bin/sh",["sh"]);g.stdout.on("data",function(l){});g.stdin.write("launchctl stop "+i+"\n");g.stdin.write("launchctl unload /Library/LaunchDaemons/"+i+".plist\n");g.stdin.write("exit\n");g.waitExit();try{require("fs").unlinkSync("/usr/local/mesh_services/"+i+"/"+i);require("fs").unlinkSync("/Library/LaunchDaemons/"+i+".plist")}catch(h){throw ("Error uninstalling service: "+i+" => "+h)}try{require("fs").rmdirSync("/usr/local/mesh_services/"+i)}catch(h){}}else{throw ("Service: "+i+" does not exist")}}}}};if(process.platform=="linux"){this.getServiceType=function c(){return(require("process-manager").getProcessInfo(1).Name)}}}module.exports=serviceManager; \ No newline at end of file +function parseServiceStatus(d){var b={};var c=d.Deref(0,4).IntVal;b.isFileSystemDriver=((c&2)==2);b.isKernelDriver=((c&1)==1);b.isSharedProcess=((c&32)==32);b.isOwnProcess=((c&16)==16);b.isInteractive=((c&256)==256);switch(d.Deref((1*4),4).toBuffer().readUInt32LE()){case 5:b.state="CONTINUE_PENDING";break;case 6:b.state="PAUSE_PENDING";break;case 7:b.state="PAUSED";break;case 4:b.state="RUNNING";break;case 2:b.state="START_PENDING";break;case 3:b.state="STOP_PENDING";break;case 1:b.state="STOPPED";break;default:break}var a=d.Deref((2*4),4).toBuffer().readUInt32LE();b.controlsAccepted=[];if((a&16)==16){b.controlsAccepted.push("SERVICE_CONTROL_NETBINDADD");b.controlsAccepted.push("SERVICE_CONTROL_NETBINDREMOVE");b.controlsAccepted.push("SERVICE_CONTROL_NETBINDENABLE");b.controlsAccepted.push("SERVICE_CONTROL_NETBINDDISABLE")}if((a&8)==8){b.controlsAccepted.push("SERVICE_CONTROL_PARAMCHANGE")}if((a&2)==2){b.controlsAccepted.push("SERVICE_CONTROL_PAUSE");b.controlsAccepted.push("SERVICE_CONTROL_CONTINUE")}if((a&256)==256){b.controlsAccepted.push("SERVICE_CONTROL_PRESHUTDOWN")}if((a&4)==4){b.controlsAccepted.push("SERVICE_CONTROL_SHUTDOWN")}if((a&1)==1){b.controlsAccepted.push("SERVICE_CONTROL_STOP")}if((a&32)==32){b.controlsAccepted.push("SERVICE_CONTROL_HARDWAREPROFILECHANGE")}if((a&64)==64){b.controlsAccepted.push("SERVICE_CONTROL_POWEREVENT")}if((a&128)==128){b.controlsAccepted.push("SERVICE_CONTROL_SESSIONCHANGE")}b.pid=d.Deref((7*4),4).toBuffer().readUInt32LE();return(b)}function serviceManager(){this._ObjectID="service-manager";if(process.platform=="win32"){this.GM=require("_GenericMarshal");this.proxy=this.GM.CreateNativeProxy("Advapi32.dll");this.proxy.CreateMethod("OpenSCManagerA");this.proxy.CreateMethod("EnumServicesStatusExA");this.proxy.CreateMethod("OpenServiceA");this.proxy.CreateMethod("QueryServiceStatusEx");this.proxy.CreateMethod("ControlService");this.proxy.CreateMethod("StartServiceA");this.proxy.CreateMethod("CloseServiceHandle");this.proxy.CreateMethod("CreateServiceA");this.proxy.CreateMethod("ChangeServiceConfig2A");this.proxy.CreateMethod("DeleteService");this.proxy.CreateMethod("AllocateAndInitializeSid");this.proxy.CreateMethod("CheckTokenMembership");this.proxy.CreateMethod("FreeSid");this.proxy2=this.GM.CreateNativeProxy("Kernel32.dll");this.proxy2.CreateMethod("GetLastError");this.isAdmin=function e(){var j=this.GM.CreateVariable(6);j.toBuffer().writeInt8(5,5);var h=this.GM.CreatePointer();var g=false;if(this.proxy.AllocateAndInitializeSid(j,2,32,544,0,0,0,0,0,0,h).Val!=0){var i=this.GM.CreateInteger();if(this.proxy.CheckTokenMembership(0,h.Deref(),i).Val!=0){if(i.toBuffer().readUInt32LE()!=0){g=true}}this.proxy.FreeSid(h.Deref())}return g};this.getProgramFolder=function a(){if(require("os").arch()=="x64"){if(this.GM.PointerSize==4){return process.env["ProgramFiles(x86)"]}return process.env.ProgramFiles}return process.env.ProgramFiles};this.getServiceFolder=function b(){return this.getProgramFolder()+"\\mesh"};this.enumerateService=function(){var o=this.GM.CreatePointer();var k=this.GM.CreatePointer();var l=this.proxy.OpenSCManagerA(0,0,1|4);var h=this.GM.CreatePointer();var t=this.GM.CreatePointer();var q=this.GM.CreatePointer();var u=this.proxy.EnumServicesStatusExA(l,0,48,3,0,0,h,t,q,0);if(h.IntVal<=0){throw ("error enumerating services")}var v=h.IntVal;var s=this.GM.CreateVariable(v);this.proxy.EnumServicesStatusExA(l,0,48,3,s,v,h,t,q,0);console.log("servicesReturned",t.IntVal);var p=k._size;var g=36+(2*p);g+=((p-(g%p))%p);var r=[];for(var m=0;mStandardOutPath\n"+s.stdout+""):"");var i=(s.startType=="AUTO_START"?"":"");var t=" ProgramArguments\n";t+=" \n";t+=(" /usr/local/mesh_services/"+s.name+"/"+s.name+"\n");if(s.parameters){for(var p in s.parameters){t+=(" "+s.parameters[p]+"\n")}}t+=" \n";var u='\n';u+='\n';u+='\n';u+=" \n";u+=" Label\n";u+=(" "+s.name+"\n");u+=(t+"\n");u+=" WorkingDirectory\n";u+=(" /usr/local/mesh_services/"+s.name+"\n");u+=(z+"\n");u+=" RunAtLoad\n";u+=(i+"\n");u+=" \n";u+="";if(!require("fs").existsSync("/usr/local/mesh_services")){require("fs").mkdirSync("/usr/local/mesh_services")}if(!require("fs").existsSync("/Library/LaunchDaemons/"+s.name+".plist")){if(!require("fs").existsSync("/usr/local/mesh_services/"+s.name)){require("fs").mkdirSync("/usr/local/mesh_services/"+s.name)}if(s.binary){require("fs").writeFileSync("/usr/local/mesh_services/"+s.name+"/"+s.name,s.binary)}else{require("fs").copyFileSync(s.servicePath,"/usr/local/mesh_services/"+s.name+"/"+s.name)}require("fs").writeFileSync("/Library/LaunchDaemons/"+s.name+".plist",u);var q=require("fs").statSync("/usr/local/mesh_services/"+s.name+"/"+s.name).mode;q|=(require("fs").CHMOD_MODES.S_IXUSR|require("fs").CHMOD_MODES.S_IXGRP);require("fs").chmodSync("/usr/local/mesh_services/"+s.name+"/"+s.name,q)}else{throw ("Service: "+s.name+" already exists")}}};this.uninstallService=function f(i){if(!this.isAdmin()){throw ("Uninstalling a service, requires admin")}if(typeof(i)=="object"){i=i.name}if(process.platform=="win32"){var k=this.getService(i);if(k.status.state==undefined||k.status.state=="STOPPED"){if(this.proxy.DeleteService(k._service)==0){throw ("Uninstall Service for: "+i+", failed with error: "+this.proxy2.GetLastError())}else{try{require("fs").unlinkSync(this.getServiceFolder()+"\\"+i+".exe")}catch(h){}}}else{throw ("Cannot uninstall service: "+i+", because it is: "+k.status.state)}}else{if(process.platform=="linux"){switch(this.getServiceType()){case"init":this._update=require("child_process").execFile("/bin/sh",["sh"],{type:require("child_process").SpawnTypes.TERM});this._update._svcname=i;this._update.on("exit",function j(){try{require("fs").unlinkSync("/etc/init.d/"+this._svcname);console.log(this._svcname+" uninstalled")}catch(l){console.log(this._svcname+" could not be uninstalled")}process.exit()});this._update.stdout.on("data",function(l){});this._update.stdin.write("service "+i+" stop\n");this._update.stdin.write("update-rc.d -f "+i+" remove\n");this._update.stdin.write("exit\n");break;case"systemd":this._update=require("child_process").execFile("/bin/sh",["sh"],{type:require("child_process").SpawnTypes.TERM});this._update._svcname=i;this._update.on("exit",function j(){try{require("fs").unlinkSync("/usr/local/mesh/"+this._svcname);require("fs").unlinkSync("/lib/systemd/system/"+this._svcname+".service");console.log(this._svcname+" uninstalled")}catch(l){console.log(this._svcname+" could not be uninstalled")}process.exit()});this._update.stdout.on("data",function(l){});this._update.stdin.write("systemctl stop "+i+".service\n");this._update.stdin.write("systemctl disable "+i+".service\n");this._update.stdin.write("exit\n");break;default:break}}else{if(process.platform=="darwin"){if(require("fs").existsSync("/Library/LaunchDaemons/"+i+".plist")){var g=require("child_process").execFile("/bin/sh",["sh"]);g.stdout.on("data",function(l){});g.stdin.write("launchctl stop "+i+"\n");g.stdin.write("launchctl unload /Library/LaunchDaemons/"+i+".plist\n");g.stdin.write("exit\n");g.waitExit();try{require("fs").unlinkSync("/usr/local/mesh_services/"+i+"/"+i);require("fs").unlinkSync("/Library/LaunchDaemons/"+i+".plist")}catch(h){throw ("Error uninstalling service: "+i+" => "+h)}try{require("fs").rmdirSync("/usr/local/mesh_services/"+i)}catch(h){}}else{throw ("Service: "+i+" does not exist")}}}}};if(process.platform=="linux"){this.getServiceType=function c(){return(require("process-manager").getProcessInfo(1).Name)}}}module.exports=serviceManager; \ No newline at end of file diff --git a/meshaccelerator.js b/meshaccelerator.js index ba39be0d..14cf679a 100644 --- a/meshaccelerator.js +++ b/meshaccelerator.js @@ -32,5 +32,9 @@ process.on('message', function (message) { certStore = message.certs; break; } + default: { + console.log('Unknown accelerator action: ' + message.action + '.'); + break; + } } }); \ No newline at end of file diff --git a/meshagent.js b/meshagent.js index d973b9df..b81b9580 100644 --- a/meshagent.js +++ b/meshagent.js @@ -636,6 +636,10 @@ module.exports.CreateMeshAgent = function (parent, db, ws, req, args, domain) { }); break; } + default: { + console.log('Unknown agent action (' + obj.remoteaddrport + '): ' + command.action + '.'); + break; + } } } } diff --git a/meshuser.js b/meshuser.js index da6090b1..c8521a44 100644 --- a/meshuser.js +++ b/meshuser.js @@ -118,278 +118,367 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use obj.ws.userid = req.session.userid; obj.ws.domainid = domain.id; - // Add this web socket session to session list - obj.ws.sessionId = user._id + '/' + ('' + Math.random()).substring(2); - obj.parent.wssessions2[ws.sessionId] = obj.ws; - if (!obj.parent.wssessions[user._id]) { obj.parent.wssessions[user._id] = [ws]; } else { obj.parent.wssessions[user._id].push(obj.ws); } - if (obj.parent.parent.multiServer == null) { - obj.parent.parent.DispatchEvent(['*'], obj, { action: 'wssessioncount', username: user.name, count: obj.parent.wssessions[user._id].length, nolog: 1, domain: obj.domain.id }); - } else { - obj.parent.recountSessions(obj.ws.sessionId); // Recount sessions - } + // Create a new session id for this user. + require('crypto').randomBytes(20, function (err, randombuf) { + obj.ws.sessionId = user._id + '/' + randombuf.toString('hex'); - // If we have peer servers, inform them of the new session - if (obj.parent.parent.multiServer != null) { obj.parent.parent.multiServer.DispatchMessage({ action: 'sessionStart', sessionid: obj.ws.sessionId }); } - - // Handle events - obj.ws.HandleEvent = function (source, event) { - if (!event.domain || event.domain == obj.domain.id) { - try { - if (event == 'close') { try { delete req.session; } catch (ex) { } obj.close(); } - else if (event == 'resubscribe') { user.subscriptions = obj.parent.subscribe(user._id, ws); } - else if (event == 'updatefiles') { updateUserFiles(user, ws, domain); } - else { ws.send(JSON.stringify({ action: 'event', event: event })); } - } catch (e) { } + // Add this web socket session to session list + obj.parent.wssessions2[ws.sessionId] = obj.ws; + if (!obj.parent.wssessions[user._id]) { obj.parent.wssessions[user._id] = [ws]; } else { obj.parent.wssessions[user._id].push(obj.ws); } + if (obj.parent.parent.multiServer == null) { + obj.parent.parent.DispatchEvent(['*'], obj, { action: 'wssessioncount', username: user.name, count: obj.parent.wssessions[user._id].length, nolog: 1, domain: obj.domain.id }); + } else { + obj.parent.recountSessions(obj.ws.sessionId); // Recount sessions } - }; - user.subscriptions = obj.parent.subscribe(user._id, ws); // Subscribe to events - try { obj.ws._socket.setKeepAlive(true, 240000); } catch (ex) { } // Set TCP keep alive + // If we have peer servers, inform them of the new session + if (obj.parent.parent.multiServer != null) { obj.parent.parent.multiServer.DispatchMessage({ action: 'sessionStart', sessionid: obj.ws.sessionId }); } - // Send current server statistics - obj.SendServerStats = function () { - obj.db.getStats(function (data) { - var os = require('os'); - var stats = { action: 'serverstats', totalmem: os.totalmem(), freemem: os.freemem() }; - if (obj.parent.parent.platform != 'win32') { stats.cpuavg = os.loadavg(); } // else { stats.cpuavg = [ 0.2435345, 0.523234234, 0.6435345345 ]; } - var serverStats = { "User Accounts": Object.keys(obj.parent.users).length, "Device Groups": Object.keys(obj.parent.meshes).length, "Connected Agents": Object.keys(obj.parent.wsagents).length, "Connected Users": Object.keys(obj.parent.wssessions2).length }; - if (obj.parent.parent.mpsserver != null) { serverStats['Connected Intel® AMT'] = Object.keys(obj.parent.parent.mpsserver.ciraConnections).length; } - stats.values = { "Server State": serverStats, "Database": { "Records": data.total, "Users": data.users, "Device Groups": data.meshes, "Devices": data.nodes, "Device NetInfo": data.nodeInterfaces, "Device Power Event": data.powerEvents, "Notes": data.notes, "Connection Records": data.connectEvents, "SMBios": data.smbios } } - try { ws.send(JSON.stringify(stats)); } catch (ex) { } - }); - } + // Handle events + obj.ws.HandleEvent = function (source, event) { + if (!event.domain || event.domain == obj.domain.id) { + try { + if (event == 'close') { try { delete req.session; } catch (ex) { } obj.close(); } + else if (event == 'resubscribe') { user.subscriptions = obj.parent.subscribe(user._id, ws); } + else if (event == 'updatefiles') { updateUserFiles(user, ws, domain); } + else { ws.send(JSON.stringify({ action: 'event', event: event })); } + } catch (e) { } + } + }; - // When data is received from the web socket - ws.on('message', function (msg) { - var command, i = 0, mesh = null, meshid = null, nodeid = null, meshlinks = null, change = 0; - try { command = JSON.parse(msg.toString('utf8')); } catch (e) { return; } - if (obj.common.validateString(command.action, 3, 32) == false) return; // Action must be a string between 3 and 32 chars + user.subscriptions = obj.parent.subscribe(user._id, ws); // Subscribe to events + try { obj.ws._socket.setKeepAlive(true, 240000); } catch (ex) { } // Set TCP keep alive - switch (command.action) { - case 'ping': { try { ws.send(JSON.stringify({ action: 'pong' })); } catch (ex) { } break; } - case 'serverstats': - { - if ((user.siteadmin) != 0) { - if (obj.common.validateInt(command.interval, 1000, 1000000) == false) { - // Clear the timer - if (obj.serverStatsTimer != null) { clearInterval(obj.serverStatsTimer); obj.serverStatsTimer = null; } + // Send current server statistics + obj.SendServerStats = function () { + obj.db.getStats(function (data) { + var os = require('os'); + var stats = { action: 'serverstats', totalmem: os.totalmem(), freemem: os.freemem() }; + if (obj.parent.parent.platform != 'win32') { stats.cpuavg = os.loadavg(); } // else { stats.cpuavg = [ 0.2435345, 0.523234234, 0.6435345345 ]; } + var serverStats = { "User Accounts": Object.keys(obj.parent.users).length, "Device Groups": Object.keys(obj.parent.meshes).length, "Connected Agents": Object.keys(obj.parent.wsagents).length, "Connected Users": Object.keys(obj.parent.wssessions2).length }; + if (obj.parent.parent.mpsserver != null) { serverStats['Connected Intel® AMT'] = Object.keys(obj.parent.parent.mpsserver.ciraConnections).length; } + stats.values = { "Server State": serverStats, "Database": { "Records": data.total, "Users": data.users, "Device Groups": data.meshes, "Devices": data.nodes, "Device NetInfo": data.nodeInterfaces, "Device Power Event": data.powerEvents, "Notes": data.notes, "Connection Records": data.connectEvents, "SMBios": data.smbios } } + try { ws.send(JSON.stringify(stats)); } catch (ex) { } + }); + } + + // When data is received from the web socket + ws.on('message', processWebSocketData); + + // If error, do nothing + ws.on('error', function (err) { console.log(err); }); + + // If the web socket is closed + ws.on('close', function (req) { + obj.parent.parent.RemoveAllEventDispatch(ws); + if (obj.serverStatsTimer != null) { clearInterval(obj.serverStatsTimer); obj.serverStatsTimer = null; } + if (req.session && req.session.ws && req.session.ws == ws) { delete req.session.ws; } + if (obj.parent.wssessions2[ws.sessionId]) { delete obj.parent.wssessions2[ws.sessionId]; } + if (obj.parent.wssessions[ws.userid]) { + var i = obj.parent.wssessions[ws.userid].indexOf(ws); + if (i >= 0) { + obj.parent.wssessions[ws.userid].splice(i, 1); + var user = obj.parent.users[ws.userid]; + if (user) { + if (obj.parent.parent.multiServer == null) { + obj.parent.parent.DispatchEvent(['*'], obj, { action: 'wssessioncount', username: user.name, count: obj.parent.wssessions[ws.userid].length, nolog: 1, domain: obj.domain.id }); } else { - // Set the timer - obj.SendServerStats(); - obj.serverStatsTimer = setInterval(obj.SendServerStats, command.interval); + obj.parent.recountSessions(ws.sessionId); // Recount sessions } } - break; + if (obj.parent.wssessions[ws.userid].length == 0) { delete obj.parent.wssessions[ws.userid]; } } - case 'meshes': - { - // Request a list of all meshes this user as rights to - var docs = []; - for (i in user.links) { if (obj.parent.meshes[i]) { docs.push(obj.parent.meshes[i]); } } - try { ws.send(JSON.stringify({ action: 'meshes', meshes: docs, tag: command.tag })); } catch (ex) { } - break; - } - case 'nodes': - { - var links = []; - if (command.meshid == null) { - // Request a list of all meshes this user as rights to - for (i in user.links) { links.push(i); } + } + + // If we have peer servers, inform them of the disconnected session + if (obj.parent.parent.multiServer != null) { obj.parent.parent.multiServer.DispatchMessage({ action: 'sessionEnd', sessionid: ws.sessionId }); } + }); + + // Figure out the MPS port, use the alias if set + var mpsport = ((obj.args.mpsaliasport != null) ? obj.args.mpsaliasport : obj.args.mpsport); + var httpport = ((obj.args.aliasport != null) ? obj.args.aliasport : obj.args.port); + + // Build server information object + var serverinfo = { name: obj.parent.certificates.CommonName, mpsname: obj.parent.certificates.AmtMpsName, mpsport: mpsport, mpspass: obj.args.mpspass, port: httpport, emailcheck: obj.parent.parent.mailserver != null }; + if (obj.args.notls == true) { serverinfo.https = false; } else { serverinfo.https = true; serverinfo.redirport = obj.args.redirport; } + + // Send server information + try { ws.send(JSON.stringify({ action: 'serverinfo', serverinfo: serverinfo })); } catch (ex) { } + + // Send user information to web socket, this is the first thing we send + var userinfo = obj.common.Clone(obj.parent.users[user._id]); + delete userinfo.salt; + delete userinfo.hash; + try { ws.send(JSON.stringify({ action: 'userinfo', userinfo: userinfo })); } catch (ex) { } + + // We are all set, start receiving data + ws._socket.resume(); + }); + } catch (e) { console.log(e); } + + // Process incoming web socket data from the browser + function processWebSocketData(msg) { + var command, i = 0, mesh = null, meshid = null, nodeid = null, meshlinks = null, change = 0; + try { command = JSON.parse(msg.toString('utf8')); } catch (e) { return; } + if (obj.common.validateString(command.action, 3, 32) == false) return; // Action must be a string between 3 and 32 chars + + switch (command.action) { + case 'ping': { try { ws.send(JSON.stringify({ action: 'pong' })); } catch (ex) { } break; } + case 'serverstats': + { + if ((user.siteadmin) != 0) { + if (obj.common.validateInt(command.interval, 1000, 1000000) == false) { + // Clear the timer + if (obj.serverStatsTimer != null) { clearInterval(obj.serverStatsTimer); obj.serverStatsTimer = null; } } else { - // Request list of all nodes for one specific meshid - meshid = command.meshid; - if (obj.common.validateString(meshid, 0, 128) == false) return; - if (meshid.split('/').length == 0) { meshid = 'mesh/' + domain.id + '/' + command.meshid; } - if (user.links[meshid] != null) { links.push(meshid); } + // Set the timer + obj.SendServerStats(); + obj.serverStatsTimer = setInterval(obj.SendServerStats, command.interval); } - - // Request a list of all nodes - obj.db.GetAllTypeNoTypeFieldMeshFiltered(links, domain.id, 'node', function (err, docs) { - var r = {}; - for (i in docs) { - // Add the connection state - var state = obj.parent.parent.GetConnectivityState(docs[i]._id); - if (state) { - docs[i].conn = state.connectivity; - docs[i].pwr = state.powerState; - if ((state.connectivity & 1) != 0) { var agent = obj.parent.wsagents[docs[i]._id]; if (agent != null) { docs[i].agct = agent.connectTime; } } - if ((state.connectivity & 2) != 0) { var cira = obj.parent.parent.mpsserver.ciraConnections[docs[i]._id]; if (cira != null) { docs[i].cict = cira.tag.connectTime; } } - } - - // Compress the meshid's - meshid = docs[i].meshid; - if (!r[meshid]) { r[meshid] = []; } - delete docs[i].meshid; - - // Remove Intel AMT credential if present - if (docs[i].intelamt != null && docs[i].intelamt.pass != null) { delete docs[i].intelamt.pass; } - - r[meshid].push(docs[i]); - } - try { ws.send(JSON.stringify({ action: 'nodes', nodes: r, tag: command.tag })); } catch (ex) { } - }); - break; } - case 'powertimeline': - { - // Query the database for the power timeline for a given node - // The result is a compacted array: [ startPowerState, startTimeUTC, powerState ] + many[ deltaTime, powerState ] - if (obj.common.validateString(command.nodeid, 0, 128) == false) return; - obj.db.getPowerTimeline(command.nodeid, function (err, docs) { - if (err == null && docs.length > 0) { - var timeline = [], time = null, previousPower; - for (i in docs) { - var doc = docs[i]; - if (time == null) { - // First element - time = doc.time; - if (doc.oldPower) { timeline.push(doc.oldPower); } else { timeline.push(0); } - timeline.push(time); + break; + } + case 'meshes': + { + // Request a list of all meshes this user as rights to + var docs = []; + for (i in user.links) { if (obj.parent.meshes[i]) { docs.push(obj.parent.meshes[i]); } } + try { ws.send(JSON.stringify({ action: 'meshes', meshes: docs, tag: command.tag })); } catch (ex) { } + break; + } + case 'nodes': + { + var links = []; + if (command.meshid == null) { + // Request a list of all meshes this user as rights to + for (i in user.links) { links.push(i); } + } else { + // Request list of all nodes for one specific meshid + meshid = command.meshid; + if (obj.common.validateString(meshid, 0, 128) == false) return; + if (meshid.split('/').length == 0) { meshid = 'mesh/' + domain.id + '/' + command.meshid; } + if (user.links[meshid] != null) { links.push(meshid); } + } + + // Request a list of all nodes + obj.db.GetAllTypeNoTypeFieldMeshFiltered(links, domain.id, 'node', function (err, docs) { + var r = {}; + for (i in docs) { + // Add the connection state + var state = obj.parent.parent.GetConnectivityState(docs[i]._id); + if (state) { + docs[i].conn = state.connectivity; + docs[i].pwr = state.powerState; + if ((state.connectivity & 1) != 0) { var agent = obj.parent.wsagents[docs[i]._id]; if (agent != null) { docs[i].agct = agent.connectTime; } } + if ((state.connectivity & 2) != 0) { var cira = obj.parent.parent.mpsserver.ciraConnections[docs[i]._id]; if (cira != null) { docs[i].cict = cira.tag.connectTime; } } + } + + // Compress the meshid's + meshid = docs[i].meshid; + if (!r[meshid]) { r[meshid] = []; } + delete docs[i].meshid; + + // Remove Intel AMT credential if present + if (docs[i].intelamt != null && docs[i].intelamt.pass != null) { delete docs[i].intelamt.pass; } + + r[meshid].push(docs[i]); + } + try { ws.send(JSON.stringify({ action: 'nodes', nodes: r, tag: command.tag })); } catch (ex) { } + }); + break; + } + case 'powertimeline': + { + // Query the database for the power timeline for a given node + // The result is a compacted array: [ startPowerState, startTimeUTC, powerState ] + many[ deltaTime, powerState ] + if (obj.common.validateString(command.nodeid, 0, 128) == false) return; + obj.db.getPowerTimeline(command.nodeid, function (err, docs) { + if (err == null && docs.length > 0) { + var timeline = [], time = null, previousPower; + for (i in docs) { + var doc = docs[i]; + if (time == null) { + // First element + time = doc.time; + if (doc.oldPower) { timeline.push(doc.oldPower); } else { timeline.push(0); } + timeline.push(time); + timeline.push(doc.power); + previousPower = doc.power; + } else { + // Delta element + if ((previousPower != doc.power) && ((doc.time - time) > 60000)) { // To boost speed, any blocks less than a minute get approximated. + // Create a new timeline + timeline.push(doc.time - time); timeline.push(doc.power); + time = doc.time; previousPower = doc.power; } else { - // Delta element - if ((previousPower != doc.power) && ((doc.time - time) > 60000)) { // To boost speed, any blocks less than a minute get approximated. - // Create a new timeline - timeline.push(doc.time - time); - timeline.push(doc.power); - time = doc.time; - previousPower = doc.power; - } else { - // Extend the previous timeline - if ((timeline.length >= 6) && (timeline[timeline.length - 3] == doc.power)) { // We can merge the block with the previous block - timeline[timeline.length - 4] += (timeline[timeline.length - 2] + (doc.time - time)); - timeline.pop(); - timeline.pop(); - } else { // Extend the last block in the timeline - timeline[timeline.length - 2] += (doc.time - time); - timeline[timeline.length - 1] = doc.power; - } - time = doc.time; - previousPower = doc.power; + // Extend the previous timeline + if ((timeline.length >= 6) && (timeline[timeline.length - 3] == doc.power)) { // We can merge the block with the previous block + timeline[timeline.length - 4] += (timeline[timeline.length - 2] + (doc.time - time)); + timeline.pop(); + timeline.pop(); + } else { // Extend the last block in the timeline + timeline[timeline.length - 2] += (doc.time - time); + timeline[timeline.length - 1] = doc.power; } + time = doc.time; + previousPower = doc.power; } } - try { ws.send(JSON.stringify({ action: 'powertimeline', nodeid: command.nodeid, timeline: timeline, tag: command.tag })); } catch (ex) { } - } else { - // No records found, send current state if we have it - var state = obj.parent.parent.GetConnectivityState(command.nodeid); - if (state != null) { try { ws.send(JSON.stringify({ action: 'powertimeline', nodeid: command.nodeid, timeline: [state.powerState, Date.now(), state.powerState], tag: command.tag })); } catch (ex) { } } } - }); - break; - } - case 'lastconnect': - { - if (obj.common.validateString(command.nodeid, 0, 128) == false) return; - - // Query the database for the last time this node connected - obj.db.Get('lc' + command.nodeid, function (err, docs) { - if ((docs != null) && (docs.length > 0)) { try { ws.send(JSON.stringify({ action: 'lastconnect', nodeid: command.nodeid, time: docs[0].time })); } catch (ex) { } } - }); - break; - } - case 'files': - { - // Send the full list of server files to the browser app - if ((user != null) && (user.siteadmin != null) && (user.siteadmin & 8) != 0) { updateUserFiles(user, ws, domain); } - break; - } - case 'fileoperation': - { - // Check permissions - if ((user.siteadmin & 8) != 0) { - // Perform a file operation (Create Folder, Delete Folder, Delete File...) - if (obj.common.validateString(command.fileop, 4, 16) == false) return; - var sendUpdate = true, path = meshPathToRealPath(command.path, user); // This will also check access rights - if (path == null) break; - - if ((command.fileop == 'createfolder') && (obj.common.IsFilenameValid(command.newfolder) == true)) { try { obj.fs.mkdirSync(path + "/" + command.newfolder); } catch (e) { } } // Create a new folder - else if (command.fileop == 'delete') { // Delete - if (obj.common.validateArray(command.delfiles, 1) == false) return; - for (i in command.delfiles) { - if (obj.common.IsFilenameValid(command.delfiles[i]) == true) { - var fullpath = obj.path.join(path, command.delfiles[i]); - if (command.rec == true) { - deleteFolderRecursive(fullpath); // TODO, make this an async function - } else { - try { obj.fs.rmdirSync(fullpath); } catch (e) { try { obj.fs.unlinkSync(fullpath); } catch (e) { } } - } - } - } - } - else if ((command.fileop == 'rename') && (obj.common.IsFilenameValid(command.oldname) == true) && (obj.common.IsFilenameValid(command.newname) == true)) { try { obj.fs.renameSync(path + "/" + command.oldname, path + "/" + command.newname); } catch (e) { } } // Rename - else if ((command.fileop == 'copy') || (command.fileop == 'move')) { - if (obj.common.validateArray(command.names, 1) == false) return; - var scpath = meshPathToRealPath(command.scpath, user); // This will also check access rights - if (scpath == null) break; - // TODO: Check quota if this is a copy!!!!!!!!!!!!!!!! - for (i in command.names) { - var s = obj.path.join(scpath, command.names[i]), d = obj.path.join(path, command.names[i]); - sendUpdate = false; - copyFile(s, d, function (op) { if (op != null) { obj.fs.unlink(op, function () { obj.parent.parent.DispatchEvent([user._id], obj, 'updatefiles'); }); } else { obj.parent.parent.DispatchEvent([user._id], obj, 'updatefiles'); } }, ((command.fileop == 'move') ? s : null)); - } - } - - if (sendUpdate == true) { obj.parent.parent.DispatchEvent([user._id], obj, 'updatefiles'); } // Fire an event causing this user to update this files - } - break; - } - case 'msg': - { - // Route this command to a target node - routeCommandToNode(command); - break; - } - case 'events': - { - // User filtered events - if ((command.user != null) && ((user.siteadmin & 2) != 0)) { // SITERIGHT_MANAGEUSERS - // TODO: Add the meshes command.user has access to (???) - var filter = ['user/' + domain.id + '/' + command.user.toLowerCase()]; - if ((command.limit == null) || (typeof command.limit != 'number')) { - // Send the list of all events for this session - obj.db.GetEvents(filter, domain.id, function (err, docs) { if (err != null) return; try { ws.send(JSON.stringify({ action: 'events', events: docs, user: command.user, tag: command.tag })); } catch (ex) { } }); - } else { - // Send the list of most recent events for this session, up to 'limit' count - obj.db.GetEventsWithLimit(filter, domain.id, command.limit, function (err, docs) { if (err != null) return; try { ws.send(JSON.stringify({ action: 'events', events: docs, user: command.user, tag: command.tag })); } catch (ex) { } }); - } - } else if (obj.common.validateString(command.nodeid, 0, 128) == true) { // Device filtered events - // TODO: Check that the user has access to this nodeid - var limit = 10000; - if (obj.common.validateInt(command.limit, 1, 60000) == true) { limit = command.limit; } - - // Send the list of most recent events for this session, up to 'limit' count - obj.db.GetNodeEventsWithLimit(command.nodeid, domain.id, limit, function (err, docs) { if (err != null) return; try { ws.send(JSON.stringify({ action: 'events', events: docs, nodeid: command.nodeid, tag: command.tag })); } catch (ex) { } }); + try { ws.send(JSON.stringify({ action: 'powertimeline', nodeid: command.nodeid, timeline: timeline, tag: command.tag })); } catch (ex) { } } else { - // All events - var filter = user.subscriptions; - if ((command.limit == null) || (typeof command.limit != 'number')) { - // Send the list of all events for this session - obj.db.GetEvents(filter, domain.id, function (err, docs) { if (err != null) return; try { ws.send(JSON.stringify({ action: 'events', events: docs, user: command.user, tag: command.tag })); } catch (ex) { } }); - } else { - // Send the list of most recent events for this session, up to 'limit' count - obj.db.GetEventsWithLimit(filter, domain.id, command.limit, function (err, docs) { if (err != null) return; try { ws.send(JSON.stringify({ action: 'events', events: docs, user: command.user, tag: command.tag })); } catch (ex) { } }); + // No records found, send current state if we have it + var state = obj.parent.parent.GetConnectivityState(command.nodeid); + if (state != null) { try { ws.send(JSON.stringify({ action: 'powertimeline', nodeid: command.nodeid, timeline: [state.powerState, Date.now(), state.powerState], tag: command.tag })); } catch (ex) { } } + } + }); + break; + } + case 'lastconnect': + { + if (obj.common.validateString(command.nodeid, 0, 128) == false) return; + + // Query the database for the last time this node connected + obj.db.Get('lc' + command.nodeid, function (err, docs) { + if ((docs != null) && (docs.length > 0)) { try { ws.send(JSON.stringify({ action: 'lastconnect', nodeid: command.nodeid, time: docs[0].time })); } catch (ex) { } } + }); + break; + } + case 'files': + { + // Send the full list of server files to the browser app + if ((user != null) && (user.siteadmin != null) && (user.siteadmin & 8) != 0) { updateUserFiles(user, ws, domain); } + break; + } + case 'fileoperation': + { + // Check permissions + if ((user.siteadmin & 8) != 0) { + // Perform a file operation (Create Folder, Delete Folder, Delete File...) + if (obj.common.validateString(command.fileop, 4, 16) == false) return; + var sendUpdate = true, path = meshPathToRealPath(command.path, user); // This will also check access rights + if (path == null) break; + + if ((command.fileop == 'createfolder') && (obj.common.IsFilenameValid(command.newfolder) == true)) { try { obj.fs.mkdirSync(path + "/" + command.newfolder); } catch (e) { } } // Create a new folder + else if (command.fileop == 'delete') { // Delete + if (obj.common.validateArray(command.delfiles, 1) == false) return; + for (i in command.delfiles) { + if (obj.common.IsFilenameValid(command.delfiles[i]) == true) { + var fullpath = obj.path.join(path, command.delfiles[i]); + if (command.rec == true) { + deleteFolderRecursive(fullpath); // TODO, make this an async function + } else { + try { obj.fs.rmdirSync(fullpath); } catch (e) { try { obj.fs.unlinkSync(fullpath); } catch (e) { } } + } + } } } - break; + else if ((command.fileop == 'rename') && (obj.common.IsFilenameValid(command.oldname) == true) && (obj.common.IsFilenameValid(command.newname) == true)) { try { obj.fs.renameSync(path + "/" + command.oldname, path + "/" + command.newname); } catch (e) { } } // Rename + else if ((command.fileop == 'copy') || (command.fileop == 'move')) { + if (obj.common.validateArray(command.names, 1) == false) return; + var scpath = meshPathToRealPath(command.scpath, user); // This will also check access rights + if (scpath == null) break; + // TODO: Check quota if this is a copy!!!!!!!!!!!!!!!! + for (i in command.names) { + var s = obj.path.join(scpath, command.names[i]), d = obj.path.join(path, command.names[i]); + sendUpdate = false; + copyFile(s, d, function (op) { if (op != null) { obj.fs.unlink(op, function () { obj.parent.parent.DispatchEvent([user._id], obj, 'updatefiles'); }); } else { obj.parent.parent.DispatchEvent([user._id], obj, 'updatefiles'); } }, ((command.fileop == 'move') ? s : null)); + } + } + + if (sendUpdate == true) { obj.parent.parent.DispatchEvent([user._id], obj, 'updatefiles'); } // Fire an event causing this user to update this files } - case 'clearevents': - { - // Delete all events - if (user.siteadmin != 0xFFFFFFFF) break; - obj.db.RemoveAllEvents(domain.id); - obj.parent.parent.DispatchEvent(['*', 'server-global'], obj, { action: 'clearevents', nolog: 1, domain: domain.id }); - break; + break; + } + case 'msg': + { + // Route this command to a target node + routeCommandToNode(command); + break; + } + case 'events': + { + // User filtered events + if ((command.user != null) && ((user.siteadmin & 2) != 0)) { // SITERIGHT_MANAGEUSERS + // TODO: Add the meshes command.user has access to (???) + var filter = ['user/' + domain.id + '/' + command.user.toLowerCase()]; + if ((command.limit == null) || (typeof command.limit != 'number')) { + // Send the list of all events for this session + obj.db.GetEvents(filter, domain.id, function (err, docs) { if (err != null) return; try { ws.send(JSON.stringify({ action: 'events', events: docs, user: command.user, tag: command.tag })); } catch (ex) { } }); + } else { + // Send the list of most recent events for this session, up to 'limit' count + obj.db.GetEventsWithLimit(filter, domain.id, command.limit, function (err, docs) { if (err != null) return; try { ws.send(JSON.stringify({ action: 'events', events: docs, user: command.user, tag: command.tag })); } catch (ex) { } }); + } + } else if (obj.common.validateString(command.nodeid, 0, 128) == true) { // Device filtered events + // TODO: Check that the user has access to this nodeid + var limit = 10000; + if (obj.common.validateInt(command.limit, 1, 60000) == true) { limit = command.limit; } + + // Send the list of most recent events for this session, up to 'limit' count + obj.db.GetNodeEventsWithLimit(command.nodeid, domain.id, limit, function (err, docs) { if (err != null) return; try { ws.send(JSON.stringify({ action: 'events', events: docs, nodeid: command.nodeid, tag: command.tag })); } catch (ex) { } }); + } else { + // All events + var filter = user.subscriptions; + if ((command.limit == null) || (typeof command.limit != 'number')) { + // Send the list of all events for this session + obj.db.GetEvents(filter, domain.id, function (err, docs) { if (err != null) return; try { ws.send(JSON.stringify({ action: 'events', events: docs, user: command.user, tag: command.tag })); } catch (ex) { } }); + } else { + // Send the list of most recent events for this session, up to 'limit' count + obj.db.GetEventsWithLimit(filter, domain.id, command.limit, function (err, docs) { if (err != null) return; try { ws.send(JSON.stringify({ action: 'events', events: docs, user: command.user, tag: command.tag })); } catch (ex) { } }); + } } - case 'users': - { - // Request a list of all users - if ((user.siteadmin & 2) == 0) break; - var docs = []; - for (i in obj.parent.users) { - if ((obj.parent.users[i].domain == domain.id) && (obj.parent.users[i].name != '~')) { - var userinfo = obj.common.Clone(obj.parent.users[i]); + break; + } + case 'clearevents': + { + // Delete all events + if (user.siteadmin != 0xFFFFFFFF) break; + obj.db.RemoveAllEvents(domain.id); + obj.parent.parent.DispatchEvent(['*', 'server-global'], obj, { action: 'clearevents', nolog: 1, domain: domain.id }); + break; + } + case 'users': + { + // Request a list of all users + if ((user.siteadmin & 2) == 0) break; + var docs = []; + for (i in obj.parent.users) { + if ((obj.parent.users[i].domain == domain.id) && (obj.parent.users[i].name != '~')) { + var userinfo = obj.common.Clone(obj.parent.users[i]); + delete userinfo.hash; + delete userinfo.passhint; + delete userinfo.salt; + delete userinfo.type; + delete userinfo.domain; + delete userinfo.subscriptions; + delete userinfo.passtype; + docs.push(userinfo); + } + } + try { ws.send(JSON.stringify({ action: 'users', users: docs, tag: command.tag })); } catch (ex) { } + break; + } + case 'changeemail': + { + // Change the email address + if (obj.common.validateEmail(command.email, 1, 256) == false) return; + if (obj.parent.users[req.session.userid].email != command.email) { + // Check if this email is already validated on a different account + obj.db.GetUserWithVerifiedEmail(domain.id, command.email, function (err, docs) { + if (docs.length > 0) { + // Notify the duplicate email error + try { ws.send(JSON.stringify({ action: 'msg', type: 'notify', value: 'Failed to change email address, another account already using: ' + EscapeHtml(command.email) + '.' })); } catch (ex) { } + } else { + // Update the user's email + var oldemail = user.email; + user.email = command.email; + user.emailVerified = false; + obj.parent.db.SetUser(user); + + // Event the change + var userinfo = obj.common.Clone(user); delete userinfo.hash; delete userinfo.passhint; delete userinfo.salt; @@ -397,203 +486,193 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use delete userinfo.domain; delete userinfo.subscriptions; delete userinfo.passtype; - docs.push(userinfo); - } - } - try { ws.send(JSON.stringify({ action: 'users', users: docs, tag: command.tag })); } catch (ex) { } - break; - } - case 'changeemail': - { - // Change the email address - if (obj.common.validateEmail(command.email, 1, 256) == false) return; - if (obj.parent.users[req.session.userid].email != command.email) { - // Check if this email is already validated on a different account - obj.db.GetUserWithVerifiedEmail(domain.id, command.email, function (err, docs) { - if (docs.length > 0) { - // Notify the duplicate email error - try { ws.send(JSON.stringify({ action: 'msg', type: 'notify', value: 'Failed to change email address, another account already using: ' + EscapeHtml(command.email) + '.' })); } catch (ex) { } + var message = { etype: 'user', username: userinfo.name, account: userinfo, action: 'accountchange', domain: domain.id }; + if (oldemail != null) { + message.msg = 'Changed email of user ' + userinfo.name + ' from ' + oldemail + ' to ' + user.email; } else { - // Update the user's email - var oldemail = user.email; - user.email = command.email; - user.emailVerified = false; - obj.parent.db.SetUser(user); - - // Event the change - var userinfo = obj.common.Clone(user); - delete userinfo.hash; - delete userinfo.passhint; - delete userinfo.salt; - delete userinfo.type; - delete userinfo.domain; - delete userinfo.subscriptions; - delete userinfo.passtype; - var message = { etype: 'user', username: userinfo.name, account: userinfo, action: 'accountchange', domain: domain.id }; - if (oldemail != null) { - message.msg = 'Changed email of user ' + userinfo.name + ' from ' + oldemail + ' to ' + user.email; - } else { - message.msg = 'Set email of user ' + userinfo.name + ' to ' + user.email; - } - obj.parent.parent.DispatchEvent(['*', 'server-users', user._id], obj, message); + message.msg = 'Set email of user ' + userinfo.name + ' to ' + user.email; } - }); - } - break; + obj.parent.parent.DispatchEvent(['*', 'server-users', user._id], obj, message); + } + }); } - case 'verifyemail': - { - // Send a account email verification email - if (obj.common.validateString(command.email, 3, 1024) == false) return; - var x = command.email.split('@'); - if ((x.length == 2) && (x[0].length > 0) && (x[1].split('.').length > 1) && (x[1].length > 2)) { - if (obj.parent.users[req.session.userid].email == command.email) { - // Send the verification email - if (obj.parent.parent.mailserver != null) { - obj.parent.parent.mailserver.sendAccountCheckMail(domain, user.name, user.email); - } + break; + } + case 'verifyemail': + { + // Send a account email verification email + if (obj.common.validateString(command.email, 3, 1024) == false) return; + var x = command.email.split('@'); + if ((x.length == 2) && (x[0].length > 0) && (x[1].split('.').length > 1) && (x[1].length > 2)) { + if (obj.parent.users[req.session.userid].email == command.email) { + // Send the verification email + if (obj.parent.parent.mailserver != null) { + obj.parent.parent.mailserver.sendAccountCheckMail(domain, user.name, user.email); } } - break; } - case 'wssessioncount': - { - // Request a list of all web socket user session count - var wssessions = {}; - if ((user.siteadmin & 2) == 0) break; - if (obj.parent.parent.multiServer == null) { - // No peering, use simple session counting - for (i in obj.parent.wssessions) { if (obj.parent.wssessions[i][0].domainid == domain.id) { wssessions[i] = obj.parent.wssessions[i].length; } } - } else { - // We have peer servers, use more complex session counting - for (i in obj.parent.sessionsCount) { if (i.split('/')[1] == domain.id) { wssessions[i] = obj.parent.sessionsCount[i]; } } - } - try { ws.send(JSON.stringify({ action: 'wssessioncount', wssessions: wssessions, tag: command.tag })); } catch (ex) { } // wssessions is: userid --> count - break; + break; + } + case 'wssessioncount': + { + // Request a list of all web socket user session count + var wssessions = {}; + if ((user.siteadmin & 2) == 0) break; + if (obj.parent.parent.multiServer == null) { + // No peering, use simple session counting + for (i in obj.parent.wssessions) { if (obj.parent.wssessions[i][0].domainid == domain.id) { wssessions[i] = obj.parent.wssessions[i].length; } } + } else { + // We have peer servers, use more complex session counting + for (i in obj.parent.sessionsCount) { if (i.split('/')[1] == domain.id) { wssessions[i] = obj.parent.sessionsCount[i]; } } } - case 'deleteuser': - { - // Delete a user account - if ((user.siteadmin & 2) == 0) break; - if (obj.common.validateString(command.userid, 1, 2048) == false) break; - var delusersplit = command.userid.split('/'), deluserid = command.userid, deluser = obj.parent.users[deluserid]; - if ((deluser == null) || (delusersplit.length != 3) || (delusersplit[1] != domain.id)) break; // Invalid domain, operation only valid for current domain - if ((deluser.siteadmin != null) && (deluser.siteadmin > 0) && (user.siteadmin != 0xFFFFFFFF)) break; // Need full admin to remote another administrator + try { ws.send(JSON.stringify({ action: 'wssessioncount', wssessions: wssessions, tag: command.tag })); } catch (ex) { } // wssessions is: userid --> count + break; + } + case 'deleteuser': + { + // Delete a user account + if ((user.siteadmin & 2) == 0) break; + if (obj.common.validateString(command.userid, 1, 2048) == false) break; + var delusersplit = command.userid.split('/'), deluserid = command.userid, deluser = obj.parent.users[deluserid]; + if ((deluser == null) || (delusersplit.length != 3) || (delusersplit[1] != domain.id)) break; // Invalid domain, operation only valid for current domain + if ((deluser.siteadmin != null) && (deluser.siteadmin > 0) && (user.siteadmin != 0xFFFFFFFF)) break; // Need full admin to remote another administrator - // Remove all the mesh links to this user - if (deluser.links != null) { - for (meshid in deluser.links) { - // Get the mesh - mesh = obj.parent.meshes[meshid]; - if (mesh) { - // Remove user from the mesh - if (mesh.links[deluser._id] != null) { delete mesh.links[deluser._id]; obj.parent.db.Set(mesh); } - // Notify mesh change - change = 'Removed user ' + deluser.name + ' from group ' + mesh.name; - obj.parent.parent.DispatchEvent(['*', mesh._id, deluser._id, user._id], obj, { etype: 'mesh', username: user.name, userid: user._id, meshid: mesh._id, name: mesh.name, mtype: mesh.mtype, desc: mesh.desc, action: 'meshchange', links: mesh.links, msg: change, domain: domain.id }); - } + // Remove all the mesh links to this user + if (deluser.links != null) { + for (meshid in deluser.links) { + // Get the mesh + mesh = obj.parent.meshes[meshid]; + if (mesh) { + // Remove user from the mesh + if (mesh.links[deluser._id] != null) { delete mesh.links[deluser._id]; obj.parent.db.Set(mesh); } + // Notify mesh change + change = 'Removed user ' + deluser.name + ' from group ' + mesh.name; + obj.parent.parent.DispatchEvent(['*', mesh._id, deluser._id, user._id], obj, { etype: 'mesh', username: user.name, userid: user._id, meshid: mesh._id, name: mesh.name, mtype: mesh.mtype, desc: mesh.desc, action: 'meshchange', links: mesh.links, msg: change, domain: domain.id }); } } - - // Remove notes for this user - obj.db.Remove('nt' + deluser._id); - - // Delete all files on the server for this account - try { - var deluserpath = obj.parent.getServerRootFilePath(deluser); - if (deluserpath != null) { obj.parent.deleteFolderRec(deluserpath); } - } catch (e) { } - - obj.db.Remove(deluserid); - delete obj.parent.users[deluserid]; - obj.parent.parent.DispatchEvent(['*', 'server-users'], obj, { etype: 'user', userid: deluserid, username: deluser.name, action: 'accountremove', msg: 'Account removed', domain: domain.id }); - obj.parent.parent.DispatchEvent([deluserid], obj, 'close'); - - break; } - case 'adduser': - { - // Add a new user account - if ((user.siteadmin & 2) == 0) break; - if (obj.common.validateUsername(command.username, 1, 64) == false) break; // Username is between 1 and 64 characters, no spaces - if (obj.common.validateString(command.pass, 1, 256) == false) break; // Password is between 1 and 256 characters - if (obj.common.checkPasswordRequirements(command.pass, domain.passwordrequirements) == false) break; // Password does not meet requirements - if ((command.email != null) && (obj.common.validateEmail(command.email, 1, 256) == false)) break; // Check if this is a valid email address - var newusername = command.username, newuserid = 'user/' + domain.id + '/' + command.username.toLowerCase(); - if (newusername == '~') break; // This is a reserved user name - if (!obj.parent.users[newuserid]) { - var newuser = { type: 'user', _id: newuserid, name: newusername, creation: Date.now(), domain: domain.id }; - if (command.email != null) { newuser.email = command.email; } // Email - obj.parent.users[newuserid] = newuser; - // Create a user, generate a salt and hash the password - require('./pass').hash(command.pass, function (err, salt, hash) { - if (err) throw err; - newuser.salt = salt; - newuser.hash = hash; - obj.db.SetUser(newuser); - var newuser2 = obj.common.Clone(newuser); - if (newuser2.subscriptions) { delete newuser2.subscriptions; } - if (newuser2.salt) { delete newuser2.salt; } - if (newuser2.hash) { delete newuser2.hash; } - obj.parent.parent.DispatchEvent(['*', 'server-users'], obj, { etype: 'user', username: newusername, account: newuser2, action: 'accountcreate', msg: 'Account created, email is ' + command.email, domain: domain.id }); - }); - } - break; + + // Remove notes for this user + obj.db.Remove('nt' + deluser._id); + + // Delete all files on the server for this account + try { + var deluserpath = obj.parent.getServerRootFilePath(deluser); + if (deluserpath != null) { obj.parent.deleteFolderRec(deluserpath); } + } catch (e) { } + + obj.db.Remove(deluserid); + delete obj.parent.users[deluserid]; + obj.parent.parent.DispatchEvent(['*', 'server-users'], obj, { etype: 'user', userid: deluserid, username: deluser.name, action: 'accountremove', msg: 'Account removed', domain: domain.id }); + obj.parent.parent.DispatchEvent([deluserid], obj, 'close'); + + break; + } + case 'adduser': + { + // Add a new user account + if ((user.siteadmin & 2) == 0) break; + if (obj.common.validateUsername(command.username, 1, 64) == false) break; // Username is between 1 and 64 characters, no spaces + if (obj.common.validateString(command.pass, 1, 256) == false) break; // Password is between 1 and 256 characters + if (obj.common.checkPasswordRequirements(command.pass, domain.passwordrequirements) == false) break; // Password does not meet requirements + if ((command.email != null) && (obj.common.validateEmail(command.email, 1, 256) == false)) break; // Check if this is a valid email address + var newusername = command.username, newuserid = 'user/' + domain.id + '/' + command.username.toLowerCase(); + if (newusername == '~') break; // This is a reserved user name + if (!obj.parent.users[newuserid]) { + var newuser = { type: 'user', _id: newuserid, name: newusername, creation: Date.now(), domain: domain.id }; + if (command.email != null) { newuser.email = command.email; } // Email + obj.parent.users[newuserid] = newuser; + // Create a user, generate a salt and hash the password + require('./pass').hash(command.pass, function (err, salt, hash) { + if (err) throw err; + newuser.salt = salt; + newuser.hash = hash; + obj.db.SetUser(newuser); + var newuser2 = obj.common.Clone(newuser); + if (newuser2.subscriptions) { delete newuser2.subscriptions; } + if (newuser2.salt) { delete newuser2.salt; } + if (newuser2.hash) { delete newuser2.hash; } + obj.parent.parent.DispatchEvent(['*', 'server-users'], obj, { etype: 'user', username: newusername, account: newuser2, action: 'accountcreate', msg: 'Account created, email is ' + command.email, domain: domain.id }); + }); } - case 'edituser': - { - // Edit a user account, may involve changing email or administrator permissions - if (((user.siteadmin & 2) != 0) || (user.name == command.name)) { - var chguserid = 'user/' + domain.id + '/' + command.name.toLowerCase(), chguser = obj.parent.users[chguserid]; - change = 0; - if (chguser) { - if (obj.common.validateString(command.email, 1, 256) && (chguser.email != command.email)) { chguser.email = command.email; change = 1; } - if ((command.emailVerified === true || command.emailVerified === false) && (chguser.emailVerified != command.emailVerified)) { chguser.emailVerified = command.emailVerified; change = 1; } - if ((obj.common.validateInt(command.quota, 0) || command.quota == null) && (command.quota != chguser.quota)) { chguser.quota = command.quota; if (chguser.quota == null) { delete chguser.quota; } change = 1; } - if ((user.siteadmin == 0xFFFFFFFF) && obj.common.validateInt(command.siteadmin) && (chguser.siteadmin != command.siteadmin)) { chguser.siteadmin = command.siteadmin; change = 1; } - if (change == 1) { - obj.db.SetUser(chguser); - obj.parent.parent.DispatchEvent([chguser._id], obj, 'resubscribe'); - var userinfo = obj.common.Clone(chguser); - delete userinfo.hash; - delete userinfo.passhint; - delete userinfo.salt; - delete userinfo.type; - delete userinfo.domain; - delete userinfo.subscriptions; - delete userinfo.passtype; - obj.parent.parent.DispatchEvent(['*', 'server-users', user._id, chguser._id], obj, { etype: 'user', username: user.name, account: userinfo, action: 'accountchange', msg: 'Account changed: ' + command.name, domain: domain.id }); - } - if ((chguser.siteadmin) && (chguser.siteadmin != 0xFFFFFFFF) && (chguser.siteadmin & 32)) { - obj.parent.parent.DispatchEvent([chguser._id], obj, 'close'); // Disconnect all this user's sessions - } + break; + } + case 'edituser': + { + // Edit a user account, may involve changing email or administrator permissions + if (((user.siteadmin & 2) != 0) || (user.name == command.name)) { + var chguserid = 'user/' + domain.id + '/' + command.name.toLowerCase(), chguser = obj.parent.users[chguserid]; + change = 0; + if (chguser) { + if (obj.common.validateString(command.email, 1, 256) && (chguser.email != command.email)) { chguser.email = command.email; change = 1; } + if ((command.emailVerified === true || command.emailVerified === false) && (chguser.emailVerified != command.emailVerified)) { chguser.emailVerified = command.emailVerified; change = 1; } + if ((obj.common.validateInt(command.quota, 0) || command.quota == null) && (command.quota != chguser.quota)) { chguser.quota = command.quota; if (chguser.quota == null) { delete chguser.quota; } change = 1; } + if ((user.siteadmin == 0xFFFFFFFF) && obj.common.validateInt(command.siteadmin) && (chguser.siteadmin != command.siteadmin)) { chguser.siteadmin = command.siteadmin; change = 1; } + if (change == 1) { + obj.db.SetUser(chguser); + obj.parent.parent.DispatchEvent([chguser._id], obj, 'resubscribe'); + var userinfo = obj.common.Clone(chguser); + delete userinfo.hash; + delete userinfo.passhint; + delete userinfo.salt; + delete userinfo.type; + delete userinfo.domain; + delete userinfo.subscriptions; + delete userinfo.passtype; + obj.parent.parent.DispatchEvent(['*', 'server-users', user._id, chguser._id], obj, { etype: 'user', username: user.name, account: userinfo, action: 'accountchange', msg: 'Account changed: ' + command.name, domain: domain.id }); + } + if ((chguser.siteadmin) && (chguser.siteadmin != 0xFFFFFFFF) && (chguser.siteadmin & 32)) { + obj.parent.parent.DispatchEvent([chguser._id], obj, 'close'); // Disconnect all this user's sessions } } - break; } - case 'changeuserpass': - { - // Change a user's password - if (user.siteadmin != 0xFFFFFFFF) break; - if (obj.common.validateString(command.user, 1, 256) == false) break; - if (obj.common.validateString(command.pass, 1, 256) == false) break; - if (obj.common.checkPasswordRequirements(command.pass, domain.passwordrequirements) == false) break; // Password does not meet requirements - var chguserid = 'user/' + domain.id + '/' + command.user.toLowerCase(), chguser = obj.parent.users[chguserid]; - if (chguser && chguser.salt) { - // Compute the password hash & save it - require('./pass').hash(command.pass, chguser.salt, function (err, hash) { if (!err) { chguser.hash = hash; obj.db.SetUser(chguser); } }); - } - break; + break; + } + case 'changeuserpass': + { + // Change a user's password + if (user.siteadmin != 0xFFFFFFFF) break; + if (obj.common.validateString(command.user, 1, 256) == false) break; + if (obj.common.validateString(command.pass, 1, 256) == false) break; + if (obj.common.checkPasswordRequirements(command.pass, domain.passwordrequirements) == false) break; // Password does not meet requirements + var chguserid = 'user/' + domain.id + '/' + command.user.toLowerCase(), chguser = obj.parent.users[chguserid]; + if (chguser && chguser.salt) { + // Compute the password hash & save it + require('./pass').hash(command.pass, chguser.salt, function (err, hash) { if (!err) { chguser.hash = hash; obj.db.SetUser(chguser); } }); } - case 'notifyuser': - { - // Send a notification message to a user - if ((user.siteadmin & 2) == 0) break; - if (obj.common.validateString(command.userid, 1, 2048) == false) break; - if (obj.common.validateString(command.msg, 1, 4096) == false) break; + break; + } + case 'notifyuser': + { + // Send a notification message to a user + if ((user.siteadmin & 2) == 0) break; + if (obj.common.validateString(command.userid, 1, 2048) == false) break; + if (obj.common.validateString(command.msg, 1, 4096) == false) break; + + // Create the notification message + var notification = { "action": "msg", "type": "notify", "value": "" + user.name + ": " + EscapeHtml(command.msg), "userid": user._id, "username": user.name }; + + // Get the list of sessions for this user + var sessions = obj.parent.wssessions[command.userid]; + if (sessions != null) { for (i in sessions) { try { sessions[i].send(JSON.stringify(notification)); } catch (ex) { } } } + + if (obj.parent.parent.multiServer != null) { + // TODO: Add multi-server support + } + break; + } + case 'meshmessenger': + { + // Send a notification message to a user + if ((user.siteadmin & 2) == 0) break; + + // Setup a user-to-user session + if (obj.common.validateString(command.userid, 1, 2048)) { // Create the notification message - var notification = { "action": "msg", "type": "notify", "value": "" + user.name + ": " + EscapeHtml(command.msg), "userid": user._id, "username": user.name }; + var notification = { + "action": "msg", "type": "notify", "value": "" + user.name + ": Chat Request, Click here to accept.", "userid": user._id, "username": user.name, "tag": 'meshmessenger/' + encodeURIComponent(command.userid) + '/' + encodeURIComponent(user._id) + }; // Get the list of sessions for this user var sessions = obj.parent.wssessions[command.userid]; @@ -602,487 +681,267 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use if (obj.parent.parent.multiServer != null) { // TODO: Add multi-server support } - break; } - case 'meshmessenger': - { - // Send a notification message to a user - if ((user.siteadmin & 2) == 0) break; - // Setup a user-to-user session - if (obj.common.validateString(command.userid, 1, 2048)) { + // Setup a user-to-node session + if (obj.common.validateString(command.nodeid, 1, 2048)) { + if (obj.args.lanonly == true) { return; } // User-to-device chat is not support in LAN-only mode yet. We need the agent to replace the IP address of the server?? - // Create the notification message - var notification = { - "action": "msg", "type": "notify", "value": "" + user.name + ": Chat Request, Click here to accept.", "userid": user._id, "username": user.name, "tag": 'meshmessenger/' + encodeURIComponent(command.userid) + '/' + encodeURIComponent(user._id) - }; + // Create the server url + var httpsPort = ((obj.parent.args.aliasport == null) ? obj.parent.args.port : obj.parent.args.aliasport); // Use HTTPS alias port is specified + var xdomain = (domain.dns == null) ? domain.id : ''; + if (xdomain != '') xdomain += "/"; + var url = "http" + (obj.args.notls ? '' : 's') + "://" + obj.parent.getWebServerName(domain) + ":" + httpsPort + "/" + xdomain + "messenger?id=meshmessenger/" + encodeURIComponent(command.nodeid) + "/" + encodeURIComponent(user._id) + "&title=" + encodeURIComponent(user.name); - // Get the list of sessions for this user - var sessions = obj.parent.wssessions[command.userid]; - if (sessions != null) { for (i in sessions) { try { sessions[i].send(JSON.stringify(notification)); } catch (ex) { } } } - - if (obj.parent.parent.multiServer != null) { - // TODO: Add multi-server support - } - } - - // Setup a user-to-node session - if (obj.common.validateString(command.nodeid, 1, 2048)) { - if (obj.args.lanonly == true) { return; } // User-to-device chat is not support in LAN-only mode yet. We need the agent to replace the IP address of the server?? - - // Create the server url - var httpsPort = ((obj.parent.args.aliasport == null) ? obj.parent.args.port : obj.parent.args.aliasport); // Use HTTPS alias port is specified - var xdomain = (domain.dns == null) ? domain.id : ''; - if (xdomain != '') xdomain += "/"; - var url = "http" + (obj.args.notls ? '' : 's') + "://" + obj.parent.getWebServerName(domain) + ":" + httpsPort + "/" + xdomain + "messenger?id=meshmessenger/" + encodeURIComponent(command.nodeid) + "/" + encodeURIComponent(user._id) + "&title=" + encodeURIComponent(user.name); - - // Create the notification message - routeCommandToNode({ "action": "openUrl", "nodeid": command.nodeid, "userid": user._id, "username": user.name, "url": url }); - } - - break; + // Create the notification message + routeCommandToNode({ "action": "openUrl", "nodeid": command.nodeid, "userid": user._id, "username": user.name, "url": url }); } - case 'serverversion': - { - // Check the server version - if ((user.siteadmin & 16) == 0) break; - obj.parent.parent.getLatestServerVersion(function (currentVersion, latestVersion) { try { ws.send(JSON.stringify({ action: 'serverversion', current: currentVersion, latest: latestVersion })); } catch (ex) { } }); - break; - } - case 'serverupdate': - { - // Perform server update - if ((user.siteadmin & 16) == 0) break; - obj.parent.parent.performServerUpdate(); - break; - } - case 'servererrors': - { - // Load the server error log - if ((user.siteadmin & 16) == 0) break; - obj.parent.parent.readEntireTextFile(obj.parent.parent.getConfigFilePath('mesherrors.txt'), function (data) { try { ws.send(JSON.stringify({ action: 'servererrors', data: data })); } catch (ex) { } } ); - break; - } - case 'serverclearerrorlog': - { - // Clear the server error log - if ((user.siteadmin & 16) == 0) break; - obj.parent.parent.fs.unlink(obj.parent.parent.getConfigFilePath('mesherrors.txt')); - break; - } - case 'createmesh': - { - // Create mesh - if (obj.common.validateString(command.meshname, 1, 64) == false) break; // Meshname is between 1 and 64 characters - if (obj.common.validateString(command.desc, 0, 1024) == false) break; // Mesh description is between 0 and 1024 characters - // We only create Agent-less Intel AMT mesh (Type1), or Agent mesh (Type2) - if ((command.meshtype == 1) || (command.meshtype == 2)) { - // Create a type 1 agent-less Intel AMT mesh. - obj.parent.crypto.randomBytes(48, function (err, buf) { - meshid = 'mesh/' + domain.id + '/' + buf.toString('base64').replace(/\+/g, '@').replace(/\//g, '$'); - var links = {}; - links[user._id] = { name: user.name, rights: 0xFFFFFFFF }; - mesh = { type: 'mesh', _id: meshid, name: command.meshname, mtype: command.meshtype, desc: command.desc, domain: domain.id, links: links }; - obj.db.Set(obj.common.escapeLinksFieldName(mesh)); - obj.parent.meshes[meshid] = mesh; - obj.parent.parent.AddEventDispatch([meshid], ws); - if (user.links == null) user.links = {}; - user.links[meshid] = { rights: 0xFFFFFFFF }; - user.subscriptions = obj.parent.subscribe(user._id, ws); - obj.db.SetUser(user); - obj.parent.parent.DispatchEvent(['*', meshid, user._id], obj, { etype: 'mesh', username: user.name, meshid: meshid, name: command.meshname, mtype: command.meshtype, desc: command.desc, action: 'createmesh', links: links, msg: 'Mesh created: ' + command.meshname, domain: domain.id }); - }); - } - break; - } - case 'deletemesh': - { - // Delete a mesh and all computers within it - if (obj.common.validateString(command.meshid, 1, 1024) == false) break; // Check the meshid - obj.db.Get(command.meshid, function (err, meshes) { - if (meshes.length != 1) return; - mesh = obj.common.unEscapeLinksFieldName(meshes[0]); + break; + } + case 'serverversion': + { + // Check the server version + if ((user.siteadmin & 16) == 0) break; + obj.parent.parent.getLatestServerVersion(function (currentVersion, latestVersion) { try { ws.send(JSON.stringify({ action: 'serverversion', current: currentVersion, latest: latestVersion })); } catch (ex) { } }); + break; + } + case 'serverupdate': + { + // Perform server update + if ((user.siteadmin & 16) == 0) break; + obj.parent.parent.performServerUpdate(); + break; + } + case 'servererrors': + { + // Load the server error log + if ((user.siteadmin & 16) == 0) break; + obj.parent.parent.readEntireTextFile(obj.parent.parent.getConfigFilePath('mesherrors.txt'), function (data) { try { ws.send(JSON.stringify({ action: 'servererrors', data: data })); } catch (ex) { } }); + break; + } + case 'serverclearerrorlog': + { + // Clear the server error log + if ((user.siteadmin & 16) == 0) break; + obj.parent.parent.fs.unlink(obj.parent.parent.getConfigFilePath('mesherrors.txt')); + break; + } + case 'createmesh': + { + // Create mesh + if (obj.common.validateString(command.meshname, 1, 64) == false) break; // Meshname is between 1 and 64 characters + if (obj.common.validateString(command.desc, 0, 1024) == false) break; // Mesh description is between 0 and 1024 characters - // Check if this user has rights to do this - if (mesh.links[user._id] == null || mesh.links[user._id].rights != 0xFFFFFFFF) return; - if ((command.meshid.split('/').length != 3) || (command.meshid.split('/')[1] != domain.id)) return; // Invalid domain, operation only valid for current domain - - // Fire the removal event first, because after this, the event will not route - obj.parent.parent.DispatchEvent(['*', command.meshid], obj, { etype: 'mesh', username: user.name, meshid: command.meshid, name: command.meshname, action: 'deletemesh', msg: 'Mesh deleted: ' + command.meshname, domain: domain.id }); - - // Remove all user links to this mesh - for (i in meshes) { - var links = meshes[i].links; - for (var j in links) { - var xuser = obj.parent.users[j]; - delete xuser.links[meshes[i]._id]; - obj.db.SetUser(xuser); - obj.parent.parent.DispatchEvent([xuser._id], obj, 'resubscribe'); - } - } - - // Delete all files on the server for this mesh - try { - var meshpath = obj.parent.getServerRootFilePath(mesh); - if (meshpath != null) { obj.parent.deleteFolderRec(meshpath); } - } catch (e) { } - - obj.parent.parent.RemoveEventDispatchId(command.meshid); // Remove all subscriptions to this mesh - obj.db.RemoveMesh(command.meshid); // Remove mesh from database - delete obj.parent.meshes[command.meshid]; // Remove mesh from memory + // We only create Agent-less Intel AMT mesh (Type1), or Agent mesh (Type2) + if ((command.meshtype == 1) || (command.meshtype == 2)) { + // Create a type 1 agent-less Intel AMT mesh. + obj.parent.crypto.randomBytes(48, function (err, buf) { + meshid = 'mesh/' + domain.id + '/' + buf.toString('base64').replace(/\+/g, '@').replace(/\//g, '$'); + var links = {}; + links[user._id] = { name: user.name, rights: 0xFFFFFFFF }; + mesh = { type: 'mesh', _id: meshid, name: command.meshname, mtype: command.meshtype, desc: command.desc, domain: domain.id, links: links }; + obj.db.Set(obj.common.escapeLinksFieldName(mesh)); + obj.parent.meshes[meshid] = mesh; + obj.parent.parent.AddEventDispatch([meshid], ws); + if (user.links == null) user.links = {}; + user.links[meshid] = { rights: 0xFFFFFFFF }; + user.subscriptions = obj.parent.subscribe(user._id, ws); + obj.db.SetUser(user); + obj.parent.parent.DispatchEvent(['*', meshid, user._id], obj, { etype: 'mesh', username: user.name, meshid: meshid, name: command.meshname, mtype: command.meshtype, desc: command.desc, action: 'createmesh', links: links, msg: 'Mesh created: ' + command.meshname, domain: domain.id }); }); - break; } - case 'editmesh': - { - // Change the name or description of a mesh - if (obj.common.validateString(command.meshid, 1, 1024) == false) break; // Check the meshid - mesh = obj.parent.meshes[command.meshid]; - change = ''; - if (mesh) { - // Check if this user has rights to do this - if (mesh.links[user._id] == null || ((mesh.links[user._id].rights & 1) == 0)) return; - if ((command.meshid.split('/').length != 3) || (command.meshid.split('/')[1] != domain.id)) return; // Invalid domain, operation only valid for current domain + break; + } + case 'deletemesh': + { + // Delete a mesh and all computers within it + if (obj.common.validateString(command.meshid, 1, 1024) == false) break; // Check the meshid + obj.db.Get(command.meshid, function (err, meshes) { + if (meshes.length != 1) return; + mesh = obj.common.unEscapeLinksFieldName(meshes[0]); - if ((obj.common.validateString(command.meshname, 1, 64) == true) && (command.meshname != mesh.name)) { change = 'Group name changed from "' + mesh.name + '" to "' + command.meshname + '"'; mesh.name = command.meshname; } - if ((obj.common.validateString(command.desc, 0, 1024) == true) && (command.desc != mesh.desc)) { if (change != '') change += ' and description changed'; else change += 'Group "' + mesh.name + '" description changed'; mesh.desc = command.desc; } - if ((obj.common.validateInt(command.flags) == true) && (command.flags != mesh.flags)) { if (change != '') change += ' and flags changed'; else change += 'Group "' + mesh.name + '" flags changed'; mesh.flags = command.flags; } - if (change != '') { obj.db.Set(obj.common.escapeLinksFieldName(mesh)); obj.parent.parent.DispatchEvent(['*', mesh._id, user._id], obj, { etype: 'mesh', username: user.name, meshid: mesh._id, name: mesh.name, mtype: mesh.mtype, desc: mesh.desc, flags: mesh.flags, action: 'meshchange', links: mesh.links, msg: change, domain: domain.id }); } - } - break; - } - case 'addmeshuser': - { - if (obj.common.validateString(command.meshid, 1, 1024) == false) break; // Check the meshid - if (obj.common.validateString(command.username, 1, 64) == false) break; // Username is between 1 and 64 characters - if (obj.common.validateInt(command.meshadmin) == false) break; // Mesh rights must be an integer + // Check if this user has rights to do this + if (mesh.links[user._id] == null || mesh.links[user._id].rights != 0xFFFFFFFF) return; + if ((command.meshid.split('/').length != 3) || (command.meshid.split('/')[1] != domain.id)) return; // Invalid domain, operation only valid for current domain - // Check if the user exists - var newuserid = 'user/' + domain.id + '/' + command.username.toLowerCase(), newuser = obj.parent.users[newuserid]; - if (newuser == null) { - // TODO: Send error back, user not found. - break; + // Fire the removal event first, because after this, the event will not route + obj.parent.parent.DispatchEvent(['*', command.meshid], obj, { etype: 'mesh', username: user.name, meshid: command.meshid, name: command.meshname, action: 'deletemesh', msg: 'Mesh deleted: ' + command.meshname, domain: domain.id }); + + // Remove all user links to this mesh + for (i in meshes) { + var links = meshes[i].links; + for (var j in links) { + var xuser = obj.parent.users[j]; + delete xuser.links[meshes[i]._id]; + obj.db.SetUser(xuser); + obj.parent.parent.DispatchEvent([xuser._id], obj, 'resubscribe'); + } } - // Get the mesh - mesh = obj.parent.meshes[command.meshid]; - if (mesh) { - // Check if this user has rights to do this - if (mesh.links[user._id] == null || ((mesh.links[user._id].rights & 2) == 0)) return; - if ((command.meshid.split('/').length != 3) || (command.meshid.split('/')[1] != domain.id)) return; // Invalid domain, operation only valid for current domain + // Delete all files on the server for this mesh + try { + var meshpath = obj.parent.getServerRootFilePath(mesh); + if (meshpath != null) { obj.parent.deleteFolderRec(meshpath); } + } catch (e) { } - // Add mesh to user - if (newuser.links == null) newuser.links = {}; - newuser.links[command.meshid] = { rights: command.meshadmin }; - obj.db.SetUser(newuser); - obj.parent.parent.DispatchEvent([newuser._id], obj, 'resubscribe'); + obj.parent.parent.RemoveEventDispatchId(command.meshid); // Remove all subscriptions to this mesh + obj.db.RemoveMesh(command.meshid); // Remove mesh from database + delete obj.parent.meshes[command.meshid]; // Remove mesh from memory + }); + break; + } + case 'editmesh': + { + // Change the name or description of a mesh + if (obj.common.validateString(command.meshid, 1, 1024) == false) break; // Check the meshid + mesh = obj.parent.meshes[command.meshid]; + change = ''; + if (mesh) { + // Check if this user has rights to do this + if (mesh.links[user._id] == null || ((mesh.links[user._id].rights & 1) == 0)) return; + if ((command.meshid.split('/').length != 3) || (command.meshid.split('/')[1] != domain.id)) return; // Invalid domain, operation only valid for current domain - // Add a user to the mesh - mesh.links[newuserid] = { name: newuser.name, rights: command.meshadmin }; + if ((obj.common.validateString(command.meshname, 1, 64) == true) && (command.meshname != mesh.name)) { change = 'Group name changed from "' + mesh.name + '" to "' + command.meshname + '"'; mesh.name = command.meshname; } + if ((obj.common.validateString(command.desc, 0, 1024) == true) && (command.desc != mesh.desc)) { if (change != '') change += ' and description changed'; else change += 'Group "' + mesh.name + '" description changed'; mesh.desc = command.desc; } + if ((obj.common.validateInt(command.flags) == true) && (command.flags != mesh.flags)) { if (change != '') change += ' and flags changed'; else change += 'Group "' + mesh.name + '" flags changed'; mesh.flags = command.flags; } + if (change != '') { obj.db.Set(obj.common.escapeLinksFieldName(mesh)); obj.parent.parent.DispatchEvent(['*', mesh._id, user._id], obj, { etype: 'mesh', username: user.name, meshid: mesh._id, name: mesh.name, mtype: mesh.mtype, desc: mesh.desc, flags: mesh.flags, action: 'meshchange', links: mesh.links, msg: change, domain: domain.id }); } + } + break; + } + case 'addmeshuser': + { + if (obj.common.validateString(command.meshid, 1, 1024) == false) break; // Check the meshid + if (obj.common.validateString(command.username, 1, 64) == false) break; // Username is between 1 and 64 characters + if (obj.common.validateInt(command.meshadmin) == false) break; // Mesh rights must be an integer + + // Check if the user exists + var newuserid = 'user/' + domain.id + '/' + command.username.toLowerCase(), newuser = obj.parent.users[newuserid]; + if (newuser == null) { + // TODO: Send error back, user not found. + break; + } + + // Get the mesh + mesh = obj.parent.meshes[command.meshid]; + if (mesh) { + // Check if this user has rights to do this + if (mesh.links[user._id] == null || ((mesh.links[user._id].rights & 2) == 0)) return; + if ((command.meshid.split('/').length != 3) || (command.meshid.split('/')[1] != domain.id)) return; // Invalid domain, operation only valid for current domain + + // Add mesh to user + if (newuser.links == null) newuser.links = {}; + newuser.links[command.meshid] = { rights: command.meshadmin }; + obj.db.SetUser(newuser); + obj.parent.parent.DispatchEvent([newuser._id], obj, 'resubscribe'); + + // Add a user to the mesh + mesh.links[newuserid] = { name: newuser.name, rights: command.meshadmin }; + obj.db.Set(obj.common.escapeLinksFieldName(mesh)); + + // Notify mesh change + obj.parent.parent.DispatchEvent(['*', mesh._id, user._id, newuserid], obj, { etype: 'mesh', username: newuser.name, userid: command.userid, meshid: mesh._id, name: mesh.name, mtype: mesh.mtype, desc: mesh.desc, action: 'meshchange', links: mesh.links, msg: 'Added user ' + newuser.name + ' to mesh ' + mesh.name, domain: domain.id }); + } + break; + } + case 'removemeshuser': + { + if (obj.common.validateString(command.userid, 1, 1024) == false) break; // Check userid + if (obj.common.validateString(command.meshid, 1, 1024) == false) break; // Check meshid + if ((command.userid.split('/').length != 3) || (command.userid.split('/')[1] != domain.id)) return; // Invalid domain, operation only valid for current domain + + // Get the mesh + mesh = obj.parent.meshes[command.meshid]; + if (mesh) { + // Check if this user has rights to do this + if (mesh.links[user._id] == null || ((mesh.links[user._id].rights & 2) == 0)) return; + + // Check if the user exists - Just in case we need to delete a mesh right for a non-existant user, we do it this way. Technically, it's not possible, but just in case. + var deluserid = command.userid, deluser = obj.parent.users[deluserid]; + if (deluser != null) { + // Remove mesh from user + if (deluser.links != null && deluser.links[command.meshid] != null) { + var delmeshrights = deluser.links[command.meshid].rights; + if ((delmeshrights == 0xFFFFFFFF) && (mesh.links[deluserid].rights != 0xFFFFFFFF)) return; // A non-admin can't kick out an admin + delete deluser.links[command.meshid]; + obj.db.Set(deluser); + obj.parent.parent.DispatchEvent([deluser._id], obj, 'resubscribe'); + } + } + + // Remove user from the mesh + if (mesh.links[command.userid] != null) { + delete mesh.links[command.userid]; obj.db.Set(obj.common.escapeLinksFieldName(mesh)); // Notify mesh change - obj.parent.parent.DispatchEvent(['*', mesh._id, user._id, newuserid], obj, { etype: 'mesh', username: newuser.name, userid: command.userid, meshid: mesh._id, name: mesh.name, mtype: mesh.mtype, desc: mesh.desc, action: 'meshchange', links: mesh.links, msg: 'Added user ' + newuser.name + ' to mesh ' + mesh.name, domain: domain.id }); + obj.parent.parent.DispatchEvent(['*', mesh._id, user._id, command.userid], obj, { etype: 'mesh', username: user.name, userid: deluser.name, meshid: mesh._id, name: mesh.name, mtype: mesh.mtype, desc: mesh.desc, action: 'meshchange', links: mesh.links, msg: 'Removed user ' + deluser.name + ' from group ' + mesh.name, domain: domain.id }); } - break; } - case 'removemeshuser': - { - if (obj.common.validateString(command.userid, 1, 1024) == false) break; // Check userid - if (obj.common.validateString(command.meshid, 1, 1024) == false) break; // Check meshid - if ((command.userid.split('/').length != 3) || (command.userid.split('/')[1] != domain.id)) return; // Invalid domain, operation only valid for current domain + break; + } + case 'addamtdevice': + { + if (obj.args.wanonly == true) return; // This is a WAN-only server, local Intel AMT computers can't be added + if (obj.common.validateString(command.meshid, 1, 1024) == false) break; // Check meshid + if ((command.meshid.split('/').length != 3) || (command.meshid.split('/')[1] != domain.id)) return; // Invalid domain, operation only valid for current domain + if (obj.common.validateString(command.devicename, 1, 256) == false) break; // Check device name + if (obj.common.validateString(command.hostname, 1, 256) == false) break; // Check hostname + if (obj.common.validateString(command.amtusername, 0, 16) == false) break; // Check username + if (obj.common.validateString(command.amtpassword, 0, 16) == false) break; // Check password + if (command.amttls == '0') { command.amttls = 0; } else if (command.amttls == '1') { command.amttls = 1; } // Check TLS flag + if ((command.amttls != 1) && (command.amttls != 0)) break; - // Get the mesh - mesh = obj.parent.meshes[command.meshid]; - if (mesh) { - // Check if this user has rights to do this - if (mesh.links[user._id] == null || ((mesh.links[user._id].rights & 2) == 0)) return; + // If we are in WAN-only mode, hostname is not used + if ((obj.parent.parent.args.wanonly == true) && (command.hostname)) { delete command.hostname; } - // Check if the user exists - Just in case we need to delete a mesh right for a non-existant user, we do it this way. Technically, it's not possible, but just in case. - var deluserid = command.userid, deluser = obj.parent.users[deluserid]; - if (deluser != null) { - // Remove mesh from user - if (deluser.links != null && deluser.links[command.meshid] != null) { - var delmeshrights = deluser.links[command.meshid].rights; - if ((delmeshrights == 0xFFFFFFFF) && (mesh.links[deluserid].rights != 0xFFFFFFFF)) return; // A non-admin can't kick out an admin - delete deluser.links[command.meshid]; - obj.db.Set(deluser); - obj.parent.parent.DispatchEvent([deluser._id], obj, 'resubscribe'); - } - } + // Get the mesh + mesh = obj.parent.meshes[command.meshid]; + if (mesh) { + if (mesh.mtype != 1) return; // This operation is only allowed for mesh type 1, Intel AMT agentless mesh. - // Remove user from the mesh - if (mesh.links[command.userid] != null) { - delete mesh.links[command.userid]; - obj.db.Set(obj.common.escapeLinksFieldName(mesh)); + // Check if this user has rights to do this + if (mesh.links[user._id] == null || ((mesh.links[user._id].rights & 4) == 0)) return; - // Notify mesh change - obj.parent.parent.DispatchEvent(['*', mesh._id, user._id, command.userid], obj, { etype: 'mesh', username: user.name, userid: deluser.name, meshid: mesh._id, name: mesh.name, mtype: mesh.mtype, desc: mesh.desc, action: 'meshchange', links: mesh.links, msg: 'Removed user ' + deluser.name + ' from group ' + mesh.name, domain: domain.id }); - } + // Create a new nodeid + obj.parent.crypto.randomBytes(48, function (err, buf) { + // create the new node + nodeid = 'node/' + domain.id + '/' + buf.toString('base64').replace(/\+/g, '@').replace(/\//g, '$'); + var device = { type: 'node', mtype: 1, _id: nodeid, meshid: command.meshid, name: command.devicename, host: command.hostname, domain: domain.id, intelamt: { user: command.amtusername, pass: command.amtpassword, tls: command.amttls } }; + obj.db.Set(device); + + // Event the new node + var device2 = obj.common.Clone(device); + delete device2.intelamt.pass; // Remove the Intel AMT password before eventing this. + obj.parent.parent.DispatchEvent(['*', command.meshid], obj, { etype: 'node', username: user.name, action: 'addnode', node: device2, msg: 'Added device ' + command.devicename + ' to mesh ' + mesh.name, domain: domain.id }); + }); + } + break; + } + case 'scanamtdevice': + { + if (obj.args.wanonly == true) return; // This is a WAN-only server, this type of scanning is not allowed. + if (obj.common.validateString(command.range, 1, 256) == false) break; // Check range string + + // Ask the RMCP scanning to scan a range of IP addresses + if (obj.parent.parent.amtScanner) { + if (obj.parent.parent.amtScanner.performRangeScan(ws.userid, command.range) == false) { + obj.parent.parent.DispatchEvent(['*', ws.userid], obj, { action: 'scanamtdevice', range: command.range, results: null, nolog: 1 }); } - break; } - case 'addamtdevice': - { - if (obj.args.wanonly == true) return; // This is a WAN-only server, local Intel AMT computers can't be added - if (obj.common.validateString(command.meshid, 1, 1024) == false) break; // Check meshid - if ((command.meshid.split('/').length != 3) || (command.meshid.split('/')[1] != domain.id)) return; // Invalid domain, operation only valid for current domain - if (obj.common.validateString(command.devicename, 1, 256) == false) break; // Check device name - if (obj.common.validateString(command.hostname, 1, 256) == false) break; // Check hostname - if (obj.common.validateString(command.amtusername, 0, 16) == false) break; // Check username - if (obj.common.validateString(command.amtpassword, 0, 16) == false) break; // Check password - if (command.amttls == '0') { command.amttls = 0; } else if (command.amttls == '1') { command.amttls = 1; } // Check TLS flag - if ((command.amttls != 1) && (command.amttls != 0)) break; + break; + } + case 'removedevices': + { + if (obj.common.validateArray(command.nodeids, 1) == false) break; // Check nodeid's - // If we are in WAN-only mode, hostname is not used - if ((obj.parent.parent.args.wanonly == true) && (command.hostname)) { delete command.hostname; } - - // Get the mesh - mesh = obj.parent.meshes[command.meshid]; - if (mesh) { - if (mesh.mtype != 1) return; // This operation is only allowed for mesh type 1, Intel AMT agentless mesh. - - // Check if this user has rights to do this - if (mesh.links[user._id] == null || ((mesh.links[user._id].rights & 4) == 0)) return; - - // Create a new nodeid - obj.parent.crypto.randomBytes(48, function (err, buf) { - // create the new node - nodeid = 'node/' + domain.id + '/' + buf.toString('base64').replace(/\+/g, '@').replace(/\//g, '$'); - var device = { type: 'node', mtype: 1, _id: nodeid, meshid: command.meshid, name: command.devicename, host: command.hostname, domain: domain.id, intelamt: { user: command.amtusername, pass: command.amtpassword, tls: command.amttls } }; - obj.db.Set(device); - - // Event the new node - var device2 = obj.common.Clone(device); - delete device2.intelamt.pass; // Remove the Intel AMT password before eventing this. - obj.parent.parent.DispatchEvent(['*', command.meshid], obj, { etype: 'node', username: user.name, action: 'addnode', node: device2, msg: 'Added device ' + command.devicename + ' to mesh ' + mesh.name, domain: domain.id }); - }); - } - break; - } - case 'scanamtdevice': - { - if (obj.args.wanonly == true) return; // This is a WAN-only server, this type of scanning is not allowed. - if (obj.common.validateString(command.range, 1, 256) == false) break; // Check range string - - // Ask the RMCP scanning to scan a range of IP addresses - if (obj.parent.parent.amtScanner) { - if (obj.parent.parent.amtScanner.performRangeScan(ws.userid, command.range) == false) { - obj.parent.parent.DispatchEvent(['*', ws.userid], obj, { action: 'scanamtdevice', range: command.range, results: null, nolog: 1 }); - } - } - break; - } - case 'removedevices': - { - if (obj.common.validateArray(command.nodeids, 1) == false) break; // Check nodeid's - - for (i in command.nodeids) { - nodeid = command.nodeids[i]; - if (obj.common.validateString(nodeid, 1, 1024) == false) break; // Check nodeid - if ((nodeid.split('/').length != 3) || (nodeid.split('/')[1] != domain.id)) return; // Invalid domain, operation only valid for current domain - - // Get the device - obj.db.Get(nodeid, function (err, nodes) { - if (nodes.length != 1) return; - var node = nodes[0]; - - // Get the mesh for this device - mesh = obj.parent.meshes[node.meshid]; - if (mesh) { - // Check if this user has rights to do this - if (mesh.links[user._id] == null || ((mesh.links[user._id].rights & 4) == 0)) return; - - // Delete this node including network interface information, events and timeline - obj.db.Remove(node._id); // Remove node with that id - obj.db.Remove('if' + node._id); // Remove interface information - obj.db.Remove('nt' + node._id); // Remove notes - obj.db.Remove('lc' + node._id); // Remove last connect time - obj.db.Remove('sm' + node._id); // Remove SMBios data - obj.db.RemoveNode(node._id); // Remove all entries with node:id - - // Event node deletion - obj.parent.parent.DispatchEvent(['*', node.meshid], obj, { etype: 'node', username: user.name, action: 'removenode', nodeid: node._id, msg: 'Removed device ' + node.name + ' from group ' + mesh.name, domain: domain.id }); - - // Disconnect all connections if needed - var state = obj.parent.parent.GetConnectivityState(nodeid); - if ((state != null) && (state.connectivity != null)) { - if ((state.connectivity & 1) != 0) { obj.parent.wsagents[nodeid].close(); } // Disconnect mesh agent - if ((state.connectivity & 2) != 0) { obj.parent.parent.mpsserver.close(obj.parent.parent.mpsserver.ciraConnections[nodeid]); } // Disconnect CIRA connection - } - } - }); - } - - break; - } - case 'wakedevices': - { - if (obj.common.validateArray(command.nodeids, 1) == false) break; // Check nodeid's - // TODO: We can optimize this a lot. - // - We should get a full list of all MAC's to wake first. - // - We should try to only have one agent per subnet (using Gateway MAC) send a wake-on-lan. - for (i in command.nodeids) { - nodeid = command.nodeids[i]; - var wakeActions = 0; - if (obj.common.validateString(nodeid, 1, 1024) == false) break; // Check nodeid - if ((nodeid.split('/').length == 3) && (nodeid.split('/')[1] == domain.id)) { // Validate the domain, operation only valid for current domain - // Get the device - obj.db.Get(nodeid, function (err, nodes) { - if (nodes.length != 1) return; - var node = nodes[0]; - - // Get the mesh for this device - mesh = obj.parent.meshes[node.meshid]; - if (mesh) { - - // Check if this user has rights to do this - if (mesh.links[user._id] != null && ((mesh.links[user._id].rights & 64) != 0)) { - - // Get the device interface information - obj.db.Get('if' + node._id, function (err, nodeifs) { - if (nodeifs.length == 1) { - var nodeif = nodeifs[0]; - var macs = []; - for (var i in nodeif.netif) { if (nodeif.netif[i].mac) { macs.push(nodeif.netif[i].mac); } } - - // Have the server send a wake-on-lan packet (Will not work in WAN-only) - if (obj.parent.parent.meshScanner != null) { obj.parent.parent.meshScanner.wakeOnLan(macs); wakeActions++; } - - // Get the list of mesh this user as access to - var targetMeshes = []; - for (i in user.links) { targetMeshes.push(i); } - - // Go thru all the connected agents and send wake-on-lan on all the ones in the target mesh list - for (i in obj.parent.wsagents) { - var agent = obj.parent.wsagents[i]; - if ((targetMeshes.indexOf(agent.dbMeshKey) >= 0) && (agent.authenticated == 2)) { - //console.log('Asking agent ' + agent.dbNodeKey + ' to wake ' + macs.join(',')); - try { agent.send(JSON.stringify({ action: 'wakeonlan', macs: macs })); } catch (ex) { } - wakeActions++; - } - } - } - }); - - } - } - }); - } - // Confirm we may be doing something (TODO) - try { ws.send(JSON.stringify({ action: 'wakedevices' })); } catch (ex) { } - } - - break; - } - case 'poweraction': - { - if (obj.common.validateArray(command.nodeids, 1) == false) break; // Check nodeid's - for (i in command.nodeids) { - nodeid = command.nodeids[i]; - var powerActions = 0; - if (obj.common.validateString(nodeid, 1, 1024) == false) break; // Check nodeid - if ((nodeid.split('/').length == 3) && (nodeid.split('/')[1] == domain.id)) { // Validate the domain, operation only valid for current domain - // Get the device - obj.db.Get(nodeid, function (err, nodes) { - if (nodes.length != 1) return; - var node = nodes[0]; - - // Get the mesh for this device - mesh = obj.parent.meshes[node.meshid]; - if (mesh) { - - // Check if this user has rights to do this - if (mesh.links[user._id] != null && ((mesh.links[user._id].rights & 8) != 0)) { // "Remote Control permission" - - // Get this device - var agent = obj.parent.wsagents[node._id]; - if (agent != null) { - // Send the power command - try { agent.send(JSON.stringify({ action: 'poweraction', actiontype: command.actiontype })); } catch (ex) { } - powerActions++; - } - } - } - }); - } - // Confirm we may be doing something (TODO) - try { ws.send(JSON.stringify({ action: 'poweraction' })); } catch (ex) { } - } - break; - } - case 'toast': - { - if (obj.common.validateArray(command.nodeids, 1) == false) break; // Check nodeid's - if (obj.common.validateString(command.title, 1, 512) == false) break; // Check title - if (obj.common.validateString(command.msg, 1, 4096) == false) break; // Check message - for (i in command.nodeids) { - nodeid = command.nodeids[i]; - var powerActions = 0; - if (obj.common.validateString(nodeid, 1, 1024) == false) break; // Check nodeid - if ((nodeid.split('/').length == 3) && (nodeid.split('/')[1] == domain.id)) { // Validate the domain, operation only valid for current domain - // Get the device - obj.db.Get(nodeid, function (err, nodes) { - if (nodes.length != 1) return; - var node = nodes[0]; - - // Get the mesh for this device - mesh = obj.parent.meshes[node.meshid]; - if (mesh) { - - // Check if this user has rights to do this - if (mesh.links[user._id] != null && ((mesh.links[user._id].rights & 8) != 0)) { // "Remote Control permission" - - // Get this device - var agent = obj.parent.wsagents[node._id]; - if (agent != null) { - // Send the power command - try { agent.send(JSON.stringify({ action: 'toast', title: command.title, msg: command.msg })); } catch (ex) { } - } - } - } - }); - } - } - break; - } - case 'getnetworkinfo': - { - // Argument validation - if (obj.common.validateString(command.nodeid, 1, 1024) == false) break; // Check nodeid - if ((command.nodeid.split('/').length != 3) || (command.nodeid.split('/')[1] != domain.id)) return; // Invalid domain, operation only valid for current domain + for (i in command.nodeids) { + nodeid = command.nodeids[i]; + if (obj.common.validateString(nodeid, 1, 1024) == false) break; // Check nodeid + if ((nodeid.split('/').length != 3) || (nodeid.split('/')[1] != domain.id)) return; // Invalid domain, operation only valid for current domain // Get the device - obj.db.Get(command.nodeid, function (err, nodes) { - if (nodes.length != 1) { try { ws.send(JSON.stringify({ action: 'getnetworkinfo', nodeid: command.nodeid, netif: null })); } catch (ex) { } return; } - var node = nodes[0]; - - // Get the mesh for this device - mesh = obj.parent.meshes[node.meshid]; - if (mesh) { - // Check if this user has rights to do this - if (mesh.links[user._id] == null || (mesh.links[user._id].rights == 0)) { try { ws.send(JSON.stringify({ action: 'getnetworkinfo', nodeid: command.nodeid, netif: null })); } catch (ex) { } return; } - - // Get network information about this node - obj.db.Get('if' + command.nodeid, function (err, netinfos) { - if (netinfos.length != 1) { try { ws.send(JSON.stringify({ action: 'getnetworkinfo', nodeid: command.nodeid, netif: null })); } catch (ex) { } return; } - var netinfo = netinfos[0]; - try { ws.send(JSON.stringify({ action: 'getnetworkinfo', nodeid: command.nodeid, updateTime: netinfo.updateTime, netif: netinfo.netif })); } catch (ex) { } - }); - } - }); - break; - } - case 'changedevice': - { - // Argument validation - if (obj.common.validateString(command.nodeid, 1, 1024) == false) break; // Check nodeid - if ((command.nodeid.split('/').length != 3) || (command.nodeid.split('/')[1] != domain.id)) return; // Invalid domain, operation only valid for current domain - if ((command.userloc) && (command.userloc.length != 2) && (command.userloc.length != 0)) return; - - // Change the device - obj.db.Get(command.nodeid, function (err, nodes) { + obj.db.Get(nodeid, function (err, nodes) { if (nodes.length != 1) return; var node = nodes[0]; @@ -1092,225 +951,407 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use // Check if this user has rights to do this if (mesh.links[user._id] == null || ((mesh.links[user._id].rights & 4) == 0)) return; - // Ready the node change event - var changes = [], event = { etype: 'node', username: user.name, action: 'changenode', nodeid: node._id, domain: domain.id }; - change = 0; - event.msg = ": "; + // Delete this node including network interface information, events and timeline + obj.db.Remove(node._id); // Remove node with that id + obj.db.Remove('if' + node._id); // Remove interface information + obj.db.Remove('nt' + node._id); // Remove notes + obj.db.Remove('lc' + node._id); // Remove last connect time + obj.db.Remove('sm' + node._id); // Remove SMBios data + obj.db.RemoveNode(node._id); // Remove all entries with node:id - // If we are in WAN-only mode, host is not used - if ((obj.parent.parent.args.wanonly == true) && (command.host)) { delete command.host; } + // Event node deletion + obj.parent.parent.DispatchEvent(['*', node.meshid], obj, { etype: 'node', username: user.name, action: 'removenode', nodeid: node._id, msg: 'Removed device ' + node.name + ' from group ' + mesh.name, domain: domain.id }); - // Look for a change - if (command.icon && (command.icon != node.icon)) { change = 1; node.icon = command.icon; changes.push('icon'); } - if (command.name && (command.name != node.name)) { change = 1; node.name = command.name; changes.push('name'); } - if (command.host && (command.host != node.host)) { change = 1; node.host = command.host; changes.push('host'); } - if (command.userloc && ((node.userloc == null) || (command.userloc[0] != node.userloc[0]) || (command.userloc[1] != node.userloc[1]))) { - change = 1; - if ((command.userloc.length == 0) && (node.userloc)) { - delete node.userloc; - changes.push('location removed'); - } else { - command.userloc.push((Math.floor((new Date()) / 1000))); - node.userloc = command.userloc.join(','); - changes.push('location'); - } - } - if (command.desc != null && (command.desc != node.desc)) { change = 1; node.desc = command.desc; changes.push('description'); } - if (command.intelamt != null) { - if ((command.intelamt.user != null) && (command.intelamt.pass != undefined) && ((command.intelamt.user != node.intelamt.user) || (command.intelamt.pass != node.intelamt.pass))) { change = 1; node.intelamt.user = command.intelamt.user; node.intelamt.pass = command.intelamt.pass; changes.push('Intel AMT credentials'); } - if (command.intelamt.tls && (command.intelamt.tls != node.intelamt.tls)) { change = 1; node.intelamt.tls = command.intelamt.tls; changes.push('Intel AMT TLS'); } - } - if (command.tags) { // Node grouping tag, this is a array of strings that can't be empty and can't contain a comma - var ok = true; - if (obj.common.validateString(command.tags, 0, 4096) == true) { command.tags = command.tags.split(','); } - if (obj.common.validateStrArray(command.tags, 1, 256) == true) { var groupTags = command.tags; for (var i in groupTags) { groupTags[i] = groupTags[i].trim(); if ((groupTags[i] == '') || (groupTags[i].indexOf(',') >= 0)) { ok = false; } } } - if (ok == true) { groupTags.sort(function (a, b) { return a.toLowerCase().localeCompare(b.toLowerCase()); }); node.tags = groupTags; change = 1; } - } else if ((command.tags === '') && node.tags) { delete node.tags; change = 1; } - - if (change == 1) { - // Save the node - obj.db.Set(node); - - // Event the node change - event.msg = 'Changed device ' + node.name + ' from group ' + mesh.name + ': ' + changes.join(', '); - var node2 = obj.common.Clone(node); - if (node2.intelamt && node2.intelamt.pass) delete node2.intelamt.pass; // Remove the Intel AMT password before eventing this. - event.node = node2; - obj.parent.parent.DispatchEvent(['*', node.meshid], obj, event); + // Disconnect all connections if needed + var state = obj.parent.parent.GetConnectivityState(nodeid); + if ((state != null) && (state.connectivity != null)) { + if ((state.connectivity & 1) != 0) { obj.parent.wsagents[nodeid].close(); } // Disconnect mesh agent + if ((state.connectivity & 2) != 0) { obj.parent.parent.mpsserver.close(obj.parent.parent.mpsserver.ciraConnections[nodeid]); } // Disconnect CIRA connection } } }); - break; } - case 'uploadagentcore': - { - if (user.siteadmin != 0xFFFFFFFF) break; - if (obj.common.validateString(command.nodeid, 1, 1024) == false) break; // Check nodeid - if (command.path) { - if (obj.common.validateString(command.path, 1, 4096) == false) break; // Check path - if (command.path == '*') { - // Update the server default core and send a core hash request - // Load default mesh agent core if present, then perform a core update - obj.parent.parent.updateMeshCore(function () { obj.parent.sendMeshAgentCore(user, domain, command.nodeid, '*'); }); - } else { - // Send a mesh agent core to the mesh agent - var file = obj.parent.getServerFilePath(user, domain, command.path); - if (file != null) { - obj.parent.readEntireTextFile(file.fullpath, function (data) { - if (data != null) { - data = obj.common.IntToStr(0) + data; // Add the 4 bytes encoding type & flags (Set to 0 for raw) - obj.parent.sendMeshAgentCore(user, domain, command.nodeid, data); - } - }); - } - } - } else { - // Clear the mesh agent core on the mesh agent - obj.parent.sendMeshAgentCore(user, domain, command.nodeid, null); - } - break; - } - case 'agentdisconnect': - { - // Force mesh agent disconnection - if (obj.common.validateString(command.nodeid, 1, 1024) == false) break; // Check nodeid - if (obj.common.validateInt(command.disconnectMode) == false) break; // Check disconnect mode - obj.parent.forceMeshAgentDisconnect(user, domain, command.nodeid, command.disconnectMode); - break; - } - case 'close': - { - // Close the web socket session - console.log('CLOSING1'); - if (obj.req.session && obj.req.session.ws && obj.req.session.ws == ws) { console.log('CLOSING2'); delete obj.req.session.ws; } - try { ws.close(); } catch (e) { } - break; - } - case 'getcookie': - { - // Check if this user has rights on this nodeid - if (obj.common.validateString(command.nodeid, 1, 1024) == false) break; // Check nodeid - obj.db.Get(command.nodeid, function (err, nodes) { // TODO: Make a NodeRights(user) method that also does not do a db call if agent is connected (???) - if (nodes.length == 1) { - meshlinks = user.links[nodes[0].meshid]; - if ((meshlinks) && (meshlinks.rights) && (meshlinks.rights & obj.parent.MESHRIGHT_REMOTECONTROL != 0)) { - // Add a user authentication cookie to a url - var cookieContent = { userid: user._id, domainid: user.domain }; - if (command.nodeid) { cookieContent.nodeid = command.nodeid; } - if (command.tcpaddr) { cookieContent.tcpaddr = command.tcpaddr; } // Indicates the browser want to agent to TCP connect to a remote address - if (command.tcpport) { cookieContent.tcpport = command.tcpport; } // Indicates the browser want to agent to TCP connect to a remote port - command.cookie = obj.parent.parent.encodeCookie(cookieContent); - try { ws.send(JSON.stringify(command)); } catch (ex) { } - } - } - }); - break; - } - case 'inviteAgent': - { - if ((obj.parent.parent.mailserver == null) || (obj.args.lanonly == true)) return; // This operation requires the email server - if ((obj.parent.parent.certificates.CommonName == null) || (obj.parent.parent.certificates.CommonName == 'un-configured')) return; // Server name must be configured - if (obj.common.validateString(command.meshid, 1, 1024) == false) break; // Check meshid - if ((command.meshid.split('/').length != 3) || (command.meshid.split('/')[1] != domain.id)) return; // Invalid domain, operation only valid for current domain - // Get the mesh - mesh = obj.parent.meshes[command.meshid]; - if (mesh) { - if (mesh.mtype != 2) return; // This operation is only allowed for mesh type 2, agent mesh - - // Check if this user has rights to do this - //if (mesh.links[user._id] == null || ((mesh.links[user._id].rights & 4) == 0)) return; - - // Perform email invitation - obj.parent.parent.mailserver.sendAgentInviteMail(domain, user.name, command.email, command.meshid, command.name, command.os, command.msg, command.flags); - } - break; - } - case 'setNotes': - { - // Argument validation - if (obj.common.validateString(command.id, 1, 1024) == false) break; // Check id - var splitid = command.id.split('/'); - if ((splitid.length != 3) || (splitid[1] != domain.id)) return; // Invalid domain, operation only valid for current domain - var idtype = splitid[0]; - if ((idtype != 'user') && (idtype != 'mesh') && (idtype != 'node')) return; - - if (idtype == 'node') { - // Check if this user has rights on this id to set notes - obj.db.Get(command.id, function (err, nodes) { // TODO: Make a NodeRights(user) method that also does not do a db call if agent is connected (???) - if (nodes.length == 1) { - meshlinks = user.links[nodes[0].meshid]; - if ((meshlinks) && (meshlinks.rights) && (meshlinks.rights & obj.parent.MESHRIGHT_SETNOTES != 0)) { - // Set the id's notes - if (obj.common.validateString(command.notes, 1) == false) { - obj.db.Remove('nt' + command.id); // Delete the note for this node - } else { - obj.db.Set({ _id: 'nt' + command.id, type: 'note', value: command.notes }); // Set the note for this node - } - } - } - }); - } else if (idtype == 'mesh') { - // Get the mesh for this device - mesh = obj.parent.meshes[command.id]; - if (mesh) { - // Check if this user has rights to do this - if ((mesh.links[user._id] == null) || ((mesh.links[user._id].rights & 1) == 0)) { return; } // Must have rights to edit the mesh - - // Set the id's notes - if (obj.common.validateString(command.notes, 1) == false) { - obj.db.Remove('nt' + command.id); // Delete the note for this node - } else { - obj.db.Set({ _id: 'nt' + command.id, type: 'note', value: command.notes }); // Set the note for this mesh - } - } - } else if ((idtype == 'user') && ((user.siteadmin & 2) != 0)) { - // Set the id's notes - if (obj.common.validateString(command.notes, 1) == false) { - obj.db.Remove('nt' + command.id); // Delete the note for this node - } else { - obj.db.Set({ _id: 'nt' + command.id, type: 'note', value: command.notes }); // Set the note for this user - } - } - - break; - } - case 'getNotes': - { - // Argument validation - if (obj.common.validateString(command.id, 1, 1024) == false) break; // Check id - var splitid = command.id.split('/'); - if ((splitid.length != 3) || (splitid[1] != domain.id)) return; // Invalid domain, operation only valid for current domain - var idtype = splitid[0]; - if ((idtype != 'user') && (idtype != 'mesh') && (idtype != 'node')) return; - - if (idtype == 'node') { + break; + } + case 'wakedevices': + { + if (obj.common.validateArray(command.nodeids, 1) == false) break; // Check nodeid's + // TODO: We can optimize this a lot. + // - We should get a full list of all MAC's to wake first. + // - We should try to only have one agent per subnet (using Gateway MAC) send a wake-on-lan. + for (i in command.nodeids) { + nodeid = command.nodeids[i]; + var wakeActions = 0; + if (obj.common.validateString(nodeid, 1, 1024) == false) break; // Check nodeid + if ((nodeid.split('/').length == 3) && (nodeid.split('/')[1] == domain.id)) { // Validate the domain, operation only valid for current domain // Get the device - obj.db.Get(command.id, function (err, nodes) { + obj.db.Get(nodeid, function (err, nodes) { if (nodes.length != 1) return; var node = nodes[0]; // Get the mesh for this device mesh = obj.parent.meshes[node.meshid]; if (mesh) { - // Check if this user has rights to do this - if (mesh.links[user._id] == null || (mesh.links[user._id].rights == 0)) { return; } - // Get the notes about this node - obj.db.Get('nt' + command.id, function (err, notes) { - try { - if (notes.length != 1) { ws.send(JSON.stringify({ action: 'getNotes', id: command.id, notes: null })); return; } - ws.send(JSON.stringify({ action: 'getNotes', id: command.id, notes: notes[0].value })); - } catch (ex) { } - }); + // Check if this user has rights to do this + if (mesh.links[user._id] != null && ((mesh.links[user._id].rights & 64) != 0)) { + + // Get the device interface information + obj.db.Get('if' + node._id, function (err, nodeifs) { + if (nodeifs.length == 1) { + var nodeif = nodeifs[0]; + var macs = []; + for (var i in nodeif.netif) { if (nodeif.netif[i].mac) { macs.push(nodeif.netif[i].mac); } } + + // Have the server send a wake-on-lan packet (Will not work in WAN-only) + if (obj.parent.parent.meshScanner != null) { obj.parent.parent.meshScanner.wakeOnLan(macs); wakeActions++; } + + // Get the list of mesh this user as access to + var targetMeshes = []; + for (i in user.links) { targetMeshes.push(i); } + + // Go thru all the connected agents and send wake-on-lan on all the ones in the target mesh list + for (i in obj.parent.wsagents) { + var agent = obj.parent.wsagents[i]; + if ((targetMeshes.indexOf(agent.dbMeshKey) >= 0) && (agent.authenticated == 2)) { + //console.log('Asking agent ' + agent.dbNodeKey + ' to wake ' + macs.join(',')); + try { agent.send(JSON.stringify({ action: 'wakeonlan', macs: macs })); } catch (ex) { } + wakeActions++; + } + } + } + }); + + } } }); - } else if (idtype == 'mesh') { + } + // Confirm we may be doing something (TODO) + try { ws.send(JSON.stringify({ action: 'wakedevices' })); } catch (ex) { } + } + + break; + } + case 'poweraction': + { + if (obj.common.validateArray(command.nodeids, 1) == false) break; // Check nodeid's + for (i in command.nodeids) { + nodeid = command.nodeids[i]; + var powerActions = 0; + if (obj.common.validateString(nodeid, 1, 1024) == false) break; // Check nodeid + if ((nodeid.split('/').length == 3) && (nodeid.split('/')[1] == domain.id)) { // Validate the domain, operation only valid for current domain + // Get the device + obj.db.Get(nodeid, function (err, nodes) { + if (nodes.length != 1) return; + var node = nodes[0]; + + // Get the mesh for this device + mesh = obj.parent.meshes[node.meshid]; + if (mesh) { + + // Check if this user has rights to do this + if (mesh.links[user._id] != null && ((mesh.links[user._id].rights & 8) != 0)) { // "Remote Control permission" + + // Get this device + var agent = obj.parent.wsagents[node._id]; + if (agent != null) { + // Send the power command + try { agent.send(JSON.stringify({ action: 'poweraction', actiontype: command.actiontype })); } catch (ex) { } + powerActions++; + } + } + } + }); + } + // Confirm we may be doing something (TODO) + try { ws.send(JSON.stringify({ action: 'poweraction' })); } catch (ex) { } + } + break; + } + case 'toast': + { + if (obj.common.validateArray(command.nodeids, 1) == false) break; // Check nodeid's + if (obj.common.validateString(command.title, 1, 512) == false) break; // Check title + if (obj.common.validateString(command.msg, 1, 4096) == false) break; // Check message + for (i in command.nodeids) { + nodeid = command.nodeids[i]; + var powerActions = 0; + if (obj.common.validateString(nodeid, 1, 1024) == false) break; // Check nodeid + if ((nodeid.split('/').length == 3) && (nodeid.split('/')[1] == domain.id)) { // Validate the domain, operation only valid for current domain + // Get the device + obj.db.Get(nodeid, function (err, nodes) { + if (nodes.length != 1) return; + var node = nodes[0]; + + // Get the mesh for this device + mesh = obj.parent.meshes[node.meshid]; + if (mesh) { + + // Check if this user has rights to do this + if (mesh.links[user._id] != null && ((mesh.links[user._id].rights & 8) != 0)) { // "Remote Control permission" + + // Get this device + var agent = obj.parent.wsagents[node._id]; + if (agent != null) { + // Send the power command + try { agent.send(JSON.stringify({ action: 'toast', title: command.title, msg: command.msg })); } catch (ex) { } + } + } + } + }); + } + } + break; + } + case 'getnetworkinfo': + { + // Argument validation + if (obj.common.validateString(command.nodeid, 1, 1024) == false) break; // Check nodeid + if ((command.nodeid.split('/').length != 3) || (command.nodeid.split('/')[1] != domain.id)) return; // Invalid domain, operation only valid for current domain + + // Get the device + obj.db.Get(command.nodeid, function (err, nodes) { + if (nodes.length != 1) { try { ws.send(JSON.stringify({ action: 'getnetworkinfo', nodeid: command.nodeid, netif: null })); } catch (ex) { } return; } + var node = nodes[0]; + + // Get the mesh for this device + mesh = obj.parent.meshes[node.meshid]; + if (mesh) { + // Check if this user has rights to do this + if (mesh.links[user._id] == null || (mesh.links[user._id].rights == 0)) { try { ws.send(JSON.stringify({ action: 'getnetworkinfo', nodeid: command.nodeid, netif: null })); } catch (ex) { } return; } + + // Get network information about this node + obj.db.Get('if' + command.nodeid, function (err, netinfos) { + if (netinfos.length != 1) { try { ws.send(JSON.stringify({ action: 'getnetworkinfo', nodeid: command.nodeid, netif: null })); } catch (ex) { } return; } + var netinfo = netinfos[0]; + try { ws.send(JSON.stringify({ action: 'getnetworkinfo', nodeid: command.nodeid, updateTime: netinfo.updateTime, netif: netinfo.netif })); } catch (ex) { } + }); + } + }); + break; + } + case 'changedevice': + { + // Argument validation + if (obj.common.validateString(command.nodeid, 1, 1024) == false) break; // Check nodeid + if ((command.nodeid.split('/').length != 3) || (command.nodeid.split('/')[1] != domain.id)) return; // Invalid domain, operation only valid for current domain + if ((command.userloc) && (command.userloc.length != 2) && (command.userloc.length != 0)) return; + + // Change the device + obj.db.Get(command.nodeid, function (err, nodes) { + if (nodes.length != 1) return; + var node = nodes[0]; + + // Get the mesh for this device + mesh = obj.parent.meshes[node.meshid]; + if (mesh) { + // Check if this user has rights to do this + if (mesh.links[user._id] == null || ((mesh.links[user._id].rights & 4) == 0)) return; + + // Ready the node change event + var changes = [], event = { etype: 'node', username: user.name, action: 'changenode', nodeid: node._id, domain: domain.id }; + change = 0; + event.msg = ": "; + + // If we are in WAN-only mode, host is not used + if ((obj.parent.parent.args.wanonly == true) && (command.host)) { delete command.host; } + + // Look for a change + if (command.icon && (command.icon != node.icon)) { change = 1; node.icon = command.icon; changes.push('icon'); } + if (command.name && (command.name != node.name)) { change = 1; node.name = command.name; changes.push('name'); } + if (command.host && (command.host != node.host)) { change = 1; node.host = command.host; changes.push('host'); } + if (command.userloc && ((node.userloc == null) || (command.userloc[0] != node.userloc[0]) || (command.userloc[1] != node.userloc[1]))) { + change = 1; + if ((command.userloc.length == 0) && (node.userloc)) { + delete node.userloc; + changes.push('location removed'); + } else { + command.userloc.push((Math.floor((new Date()) / 1000))); + node.userloc = command.userloc.join(','); + changes.push('location'); + } + } + if (command.desc != null && (command.desc != node.desc)) { change = 1; node.desc = command.desc; changes.push('description'); } + if (command.intelamt != null) { + if ((command.intelamt.user != null) && (command.intelamt.pass != undefined) && ((command.intelamt.user != node.intelamt.user) || (command.intelamt.pass != node.intelamt.pass))) { change = 1; node.intelamt.user = command.intelamt.user; node.intelamt.pass = command.intelamt.pass; changes.push('Intel AMT credentials'); } + if (command.intelamt.tls && (command.intelamt.tls != node.intelamt.tls)) { change = 1; node.intelamt.tls = command.intelamt.tls; changes.push('Intel AMT TLS'); } + } + if (command.tags) { // Node grouping tag, this is a array of strings that can't be empty and can't contain a comma + var ok = true; + if (obj.common.validateString(command.tags, 0, 4096) == true) { command.tags = command.tags.split(','); } + if (obj.common.validateStrArray(command.tags, 1, 256) == true) { var groupTags = command.tags; for (var i in groupTags) { groupTags[i] = groupTags[i].trim(); if ((groupTags[i] == '') || (groupTags[i].indexOf(',') >= 0)) { ok = false; } } } + if (ok == true) { groupTags.sort(function (a, b) { return a.toLowerCase().localeCompare(b.toLowerCase()); }); node.tags = groupTags; change = 1; } + } else if ((command.tags === '') && node.tags) { delete node.tags; change = 1; } + + if (change == 1) { + // Save the node + obj.db.Set(node); + + // Event the node change + event.msg = 'Changed device ' + node.name + ' from group ' + mesh.name + ': ' + changes.join(', '); + var node2 = obj.common.Clone(node); + if (node2.intelamt && node2.intelamt.pass) delete node2.intelamt.pass; // Remove the Intel AMT password before eventing this. + event.node = node2; + obj.parent.parent.DispatchEvent(['*', node.meshid], obj, event); + } + } + }); + break; + } + case 'uploadagentcore': + { + if (user.siteadmin != 0xFFFFFFFF) break; + if (obj.common.validateString(command.nodeid, 1, 1024) == false) break; // Check nodeid + if (command.path) { + if (obj.common.validateString(command.path, 1, 4096) == false) break; // Check path + if (command.path == '*') { + // Update the server default core and send a core hash request + // Load default mesh agent core if present, then perform a core update + obj.parent.parent.updateMeshCore(function () { obj.parent.sendMeshAgentCore(user, domain, command.nodeid, '*'); }); + } else { + // Send a mesh agent core to the mesh agent + var file = obj.parent.getServerFilePath(user, domain, command.path); + if (file != null) { + obj.parent.readEntireTextFile(file.fullpath, function (data) { + if (data != null) { + data = obj.common.IntToStr(0) + data; // Add the 4 bytes encoding type & flags (Set to 0 for raw) + obj.parent.sendMeshAgentCore(user, domain, command.nodeid, data); + } + }); + } + } + } else { + // Clear the mesh agent core on the mesh agent + obj.parent.sendMeshAgentCore(user, domain, command.nodeid, null); + } + break; + } + case 'agentdisconnect': + { + // Force mesh agent disconnection + if (obj.common.validateString(command.nodeid, 1, 1024) == false) break; // Check nodeid + if (obj.common.validateInt(command.disconnectMode) == false) break; // Check disconnect mode + obj.parent.forceMeshAgentDisconnect(user, domain, command.nodeid, command.disconnectMode); + break; + } + case 'close': + { + // Close the web socket session + console.log('CLOSING1'); + if (obj.req.session && obj.req.session.ws && obj.req.session.ws == ws) { console.log('CLOSING2'); delete obj.req.session.ws; } + try { ws.close(); } catch (e) { } + break; + } + case 'getcookie': + { + // Check if this user has rights on this nodeid + if (obj.common.validateString(command.nodeid, 1, 1024) == false) break; // Check nodeid + obj.db.Get(command.nodeid, function (err, nodes) { // TODO: Make a NodeRights(user) method that also does not do a db call if agent is connected (???) + if (nodes.length == 1) { + meshlinks = user.links[nodes[0].meshid]; + if ((meshlinks) && (meshlinks.rights) && (meshlinks.rights & obj.parent.MESHRIGHT_REMOTECONTROL != 0)) { + // Add a user authentication cookie to a url + var cookieContent = { userid: user._id, domainid: user.domain }; + if (command.nodeid) { cookieContent.nodeid = command.nodeid; } + if (command.tcpaddr) { cookieContent.tcpaddr = command.tcpaddr; } // Indicates the browser want to agent to TCP connect to a remote address + if (command.tcpport) { cookieContent.tcpport = command.tcpport; } // Indicates the browser want to agent to TCP connect to a remote port + command.cookie = obj.parent.parent.encodeCookie(cookieContent); + try { ws.send(JSON.stringify(command)); } catch (ex) { } + } + } + }); + break; + } + case 'inviteAgent': + { + if ((obj.parent.parent.mailserver == null) || (obj.args.lanonly == true)) return; // This operation requires the email server + if ((obj.parent.parent.certificates.CommonName == null) || (obj.parent.parent.certificates.CommonName == 'un-configured')) return; // Server name must be configured + if (obj.common.validateString(command.meshid, 1, 1024) == false) break; // Check meshid + if ((command.meshid.split('/').length != 3) || (command.meshid.split('/')[1] != domain.id)) return; // Invalid domain, operation only valid for current domain + + // Get the mesh + mesh = obj.parent.meshes[command.meshid]; + if (mesh) { + if (mesh.mtype != 2) return; // This operation is only allowed for mesh type 2, agent mesh + + // Check if this user has rights to do this + //if (mesh.links[user._id] == null || ((mesh.links[user._id].rights & 4) == 0)) return; + + // Perform email invitation + obj.parent.parent.mailserver.sendAgentInviteMail(domain, user.name, command.email, command.meshid, command.name, command.os, command.msg, command.flags); + } + break; + } + case 'setNotes': + { + // Argument validation + if (obj.common.validateString(command.id, 1, 1024) == false) break; // Check id + var splitid = command.id.split('/'); + if ((splitid.length != 3) || (splitid[1] != domain.id)) return; // Invalid domain, operation only valid for current domain + var idtype = splitid[0]; + if ((idtype != 'user') && (idtype != 'mesh') && (idtype != 'node')) return; + + if (idtype == 'node') { + // Check if this user has rights on this id to set notes + obj.db.Get(command.id, function (err, nodes) { // TODO: Make a NodeRights(user) method that also does not do a db call if agent is connected (???) + if (nodes.length == 1) { + meshlinks = user.links[nodes[0].meshid]; + if ((meshlinks) && (meshlinks.rights) && (meshlinks.rights & obj.parent.MESHRIGHT_SETNOTES != 0)) { + // Set the id's notes + if (obj.common.validateString(command.notes, 1) == false) { + obj.db.Remove('nt' + command.id); // Delete the note for this node + } else { + obj.db.Set({ _id: 'nt' + command.id, type: 'note', value: command.notes }); // Set the note for this node + } + } + } + }); + } else if (idtype == 'mesh') { + // Get the mesh for this device + mesh = obj.parent.meshes[command.id]; + if (mesh) { + // Check if this user has rights to do this + if ((mesh.links[user._id] == null) || ((mesh.links[user._id].rights & 1) == 0)) { return; } // Must have rights to edit the mesh + + // Set the id's notes + if (obj.common.validateString(command.notes, 1) == false) { + obj.db.Remove('nt' + command.id); // Delete the note for this node + } else { + obj.db.Set({ _id: 'nt' + command.id, type: 'note', value: command.notes }); // Set the note for this mesh + } + } + } else if ((idtype == 'user') && ((user.siteadmin & 2) != 0)) { + // Set the id's notes + if (obj.common.validateString(command.notes, 1) == false) { + obj.db.Remove('nt' + command.id); // Delete the note for this node + } else { + obj.db.Set({ _id: 'nt' + command.id, type: 'note', value: command.notes }); // Set the note for this user + } + } + + break; + } + case 'getNotes': + { + // Argument validation + if (obj.common.validateString(command.id, 1, 1024) == false) break; // Check id + var splitid = command.id.split('/'); + if ((splitid.length != 3) || (splitid[1] != domain.id)) return; // Invalid domain, operation only valid for current domain + var idtype = splitid[0]; + if ((idtype != 'user') && (idtype != 'mesh') && (idtype != 'node')) return; + + if (idtype == 'node') { + // Get the device + obj.db.Get(command.id, function (err, nodes) { + if (nodes.length != 1) return; + var node = nodes[0]; + // Get the mesh for this device - mesh = obj.parent.meshes[command.id]; + mesh = obj.parent.meshes[node.meshid]; if (mesh) { // Check if this user has rights to do this - if (mesh.links[user._id] == null || ((mesh.links[user._id].rights & 1) == 0)) { return; } // Must have rights to edit the mesh + if (mesh.links[user._id] == null || (mesh.links[user._id].rights == 0)) { return; } // Get the notes about this node obj.db.Get('nt' + command.id, function (err, notes) { @@ -1320,7 +1361,14 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use } catch (ex) { } }); } - } else if ((idtype == 'user') && ((user.siteadmin & 2) != 0)) { + }); + } else if (idtype == 'mesh') { + // Get the mesh for this device + mesh = obj.parent.meshes[command.id]; + if (mesh) { + // Check if this user has rights to do this + if (mesh.links[user._id] == null || ((mesh.links[user._id].rights & 1) == 0)) { return; } // Must have rights to edit the mesh + // Get the notes about this node obj.db.Get('nt' + command.id, function (err, notes) { try { @@ -1329,61 +1377,25 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use } catch (ex) { } }); } - - break; + } else if ((idtype == 'user') && ((user.siteadmin & 2) != 0)) { + // Get the notes about this node + obj.db.Get('nt' + command.id, function (err, notes) { + try { + if (notes.length != 1) { ws.send(JSON.stringify({ action: 'getNotes', id: command.id, notes: null })); return; } + ws.send(JSON.stringify({ action: 'getNotes', id: command.id, notes: notes[0].value })); + } catch (ex) { } + }); } - } - }); - // If error, do nothing - ws.on('error', function (err) { console.log(err); }); - - // If the web socket is closed - ws.on('close', function (req) { - obj.parent.parent.RemoveAllEventDispatch(ws); - if (obj.serverStatsTimer != null) { clearInterval(obj.serverStatsTimer); obj.serverStatsTimer = null; } - if (req.session && req.session.ws && req.session.ws == ws) { delete req.session.ws; } - if (obj.parent.wssessions2[ws.sessionId]) { delete obj.parent.wssessions2[ws.sessionId]; } - if (obj.parent.wssessions[ws.userid]) { - var i = obj.parent.wssessions[ws.userid].indexOf(ws); - if (i >= 0) { - obj.parent.wssessions[ws.userid].splice(i, 1); - var user = obj.parent.users[ws.userid]; - if (user) { - if (obj.parent.parent.multiServer == null) { - obj.parent.parent.DispatchEvent(['*'], obj, { action: 'wssessioncount', username: user.name, count: obj.parent.wssessions[ws.userid].length, nolog: 1, domain: obj.domain.id }); - } else { - obj.parent.recountSessions(ws.sessionId); // Recount sessions - } - } - if (obj.parent.wssessions[ws.userid].length == 0) { delete obj.parent.wssessions[ws.userid]; } + break; } + default: { + // Unknown user action + console.log('Unknown action from user ' + user.name + ': ' + command.action + '.'); + break; } - - // If we have peer servers, inform them of the disconnected session - if (obj.parent.parent.multiServer != null) { obj.parent.parent.multiServer.DispatchMessage({ action: 'sessionEnd', sessionid: ws.sessionId }); } - }); - - // Figure out the MPS port, use the alias if set - var mpsport = ((obj.args.mpsaliasport != null) ? obj.args.mpsaliasport : obj.args.mpsport); - var httpport = ((obj.args.aliasport != null) ? obj.args.aliasport : obj.args.port); - - // Build server information object - var serverinfo = { name: obj.parent.certificates.CommonName, mpsname: obj.parent.certificates.AmtMpsName, mpsport: mpsport, mpspass: obj.args.mpspass, port: httpport, emailcheck: obj.parent.parent.mailserver != null }; - if (obj.args.notls == true) { serverinfo.https = false; } else { serverinfo.https = true; serverinfo.redirport = obj.args.redirport; } - - // Send server information - try { ws.send(JSON.stringify({ action: 'serverinfo', serverinfo: serverinfo })); } catch (ex) { } - - // Send user information to web socket, this is the first thing we send - var userinfo = obj.common.Clone(obj.parent.users[user._id]); - delete userinfo.salt; - delete userinfo.hash; - try { ws.send(JSON.stringify({ action: 'userinfo', userinfo: userinfo })); } catch (ex) { } - - // We are all set, start receiving data - ws._socket.resume(); - } catch (e) { console.log(e); } + } + } // Read entire file and return it in callback function function readEntireTextFile(filepath, func) { diff --git a/multiserver.js b/multiserver.js index 7ab263c0..fa756037 100644 --- a/multiserver.js +++ b/multiserver.js @@ -548,6 +548,11 @@ module.exports.CreateMultiServer = function (parent, args) { } break; } + default: { + // Unknown peer server command + console.log('Unknown action from peer server ' + peerServerId + ': ' + msg.action + '.'); + break; + } } }; diff --git a/public/commander.htm b/public/commander.htm index 7560f234..556760ac 100644 --- a/public/commander.htm +++ b/public/commander.htm @@ -1,4 +1,4 @@ -
  
Disconnected
MeshCentral
{{{title}}}
{{{title2}}}

{{{logoutControl}}}

 

\ No newline at end of file + MeshCentral
{{{title}}}
{{{title2}}}

{{{logoutControl}}}

 

\ No newline at end of file diff --git a/views/default-mobile-min.handlebars b/views/default-mobile-min.handlebars index 36396cc8..3728a73b 100644 --- a/views/default-mobile-min.handlebars +++ b/views/default-mobile-min.handlebars @@ -1 +1 @@ - MeshCentral
{{{title}}}
{{{title2}}}
\ No newline at end of file + MeshCentral
{{{title}}}
{{{title2}}}
\ No newline at end of file diff --git a/views/default-mobile.handlebars b/views/default-mobile.handlebars index 4cbae92c..4628519d 100644 --- a/views/default-mobile.handlebars +++ b/views/default-mobile.handlebars @@ -899,9 +899,15 @@ //addNotification(n); break; } + default: + console.log('Unknown message.event.action', message.event.action); + break; } break; } + default: + console.log('Unknown message.action', message.action); + break; } } @@ -1192,7 +1198,7 @@ var link = shortname; var publiclink = ''; if (publicfolder) { publiclink = ' (Link)'; } - if (f.s > 0) { link = "" + shortname + "" + publiclink; } + if (f.s > 0) { link = "" + shortname + "" + publiclink; } h = "
 " + fsize + "
" + link + "
"; } @@ -2020,6 +2026,9 @@ break; case 2: break; + default: + console.log('Unknown onDesktopStateChange state', state); + break; } updateDesktopButtons(); deskAdjust(); @@ -2260,6 +2269,9 @@ p13targetpath = ''; files.sendText({ action: 'ls', reqid: 1, path: '' }); break; + default: + console.log('Unknown onFilesStateChange state', state); + break; } } @@ -2359,7 +2371,7 @@ h = "
 " + right + "
" + shortname + "
"; } else { var link = shortname; - if (f.s > 0) { link = "" + shortname + ""; } + if (f.s > 0) { link = "" + shortname + ""; } h = "
 " + fsize + "
" + link + "
"; } @@ -2533,6 +2545,9 @@ case 3: // Transport as connected, send a command to indicate we want to start a file download downloadFile.send(JSON.stringify({ action: 'download', reqid: 1, path: downloadFile.xpath })); break; + default: + console.log('Unknown onFileDownloadStateChange state', state); + break; } } @@ -2579,6 +2594,9 @@ case 3: p13uploadNextFile(); break; + default: + console.log('Unknown onFileUploadStateChange state', state); + break; } } diff --git a/views/default.handlebars b/views/default.handlebars index 5b1a4819..24127ba4 100644 --- a/views/default.handlebars +++ b/views/default.handlebars @@ -345,7 +345,7 @@

My Server

Server actions

- Download server backup
+ Download server backup
Restore server with backup
Check server version
Show server error log
@@ -1287,7 +1287,8 @@ if (message.tag == 'clickonce') { var basicPort = "{{{serverRedirPort}}}" == "" ? "{{{serverPublicPort}}}" : "{{{serverRedirPort}}}"; var rdpurl = "http://" + window.location.hostname + ":" + basicPort + "/clickonce/minirouter/MeshMiniRouter.application?WS=wss%3A%2F%2F" + window.location.hostname + "%2Fmeshrelay.ashx%3Fauth=" + message.cookie + "&CH={{{webcerthash}}}&AP=" + message.protocol + ((debugmode == 1) ? "" : "&HOL=1"); - window.open(rdpurl, '_blank'); + var newWindow = window.open(rdpurl, '_blank'); + newWindow.opener = null; } break; } @@ -1553,9 +1554,15 @@ addNotification(n); break; } + default: + console.log('Unknown message.event.action', message.event.action); + break; } break; } + default: + console.log('Unknown message.action', message.action); + break; } } @@ -2124,15 +2131,15 @@ x += '


'; // Setup CIRA using a MeshCommander script (Pretty Simple) - x += "
To add a new Intel® AMT device to device group \"" + EscapeHtml(mesh.name) + "\" with CIRA, download the following script files and use MeshCommander to run the script to configure computers.

"; - x += addHtmlValue('Setup CIRA', 'cira_setup.mescript'); - x += addHtmlValue('Cleanup CIRA', 'cira_clean.mescript'); + x += "
To add a new Intel® AMT device to device group \"" + EscapeHtml(mesh.name) + "\" with CIRA, download the following script files and use MeshCommander to run the script to configure computers.

"; + x += addHtmlValue('Setup CIRA', 'cira_setup.mescript'); + x += addHtmlValue('Cleanup CIRA', 'cira_clean.mescript'); x += "
"; // Setup CIRA with user/pass authentication (Somewhat difficult) x += "