From c3872d6ec8d94402ffee1d32049c82c5689148fa Mon Sep 17 00:00:00 2001 From: Bryan Roe Date: Fri, 29 Jan 2021 10:13:37 -0800 Subject: [PATCH] 1. Fixed execv(e) 2. Fixed service.restart() for OpenRC --- microscript/ILibDuktape_ChildProcess.c | 12 +++++ microscript/ILibDuktape_Polyfills.c | 10 ++-- modules/service-manager.js | 33 +++++++++--- modules/util-descriptors.js | 70 ++++++++++++++++++-------- 4 files changed, 93 insertions(+), 32 deletions(-) diff --git a/microscript/ILibDuktape_ChildProcess.c b/microscript/ILibDuktape_ChildProcess.c index 756830e..8891de8 100644 --- a/microscript/ILibDuktape_ChildProcess.c +++ b/microscript/ILibDuktape_ChildProcess.c @@ -595,7 +595,19 @@ duk_ret_t ILibDuktape_ChildProcess_execve(duk_context *ctx) duk_pop(ctx); // [WCHAR_ARRAY][obj][array] } } + #ifndef WIN32 + + // + // We must close all open descriptors first, since the "new" process will have no idea about any that are still open + // + duk_eval_string(ctx, "require('util-descriptors').getOpenDescriptors();"); // [array] + while (duk_get_length(ctx, -1) > 0) + { + duk_array_pop(ctx, -1); // [array][fd] + close(duk_get_int(ctx, -1)); duk_pop(ctx); // [array] + } + execve(path, (char**)args, (char**)env); return(ILibDuktape_Error(ctx, "_execve() returned error: %d ", errno)); #else diff --git a/microscript/ILibDuktape_Polyfills.c b/microscript/ILibDuktape_Polyfills.c index 2c62162..b50589f 100644 --- a/microscript/ILibDuktape_Polyfills.c +++ b/microscript/ILibDuktape_Polyfills.c @@ -2255,7 +2255,7 @@ void ILibDuktape_Polyfills_JS_Init(duk_context *ctx) duk_peval_string_noresult(ctx, "addCompressedModule('util-service-check', Buffer.from('eJy1Vttu2zgQfRegfxj4xVI3kdLsW4Mu4HVdVEhi70bOBkFdLGh5JBOVSS1JxTaK/vsOZamRb7kA7bxIFOdyzsxwxPCN6/RlsVY8mxs4Pzs/g0gYzKEvVSEVM1wK13GdK56g0DiDUsxQgZkj9AqW0KPeOYF/UGnShvPgDDyr0Km3Ov6F66xlCQu2BiENlBrJA9eQ8hwBVwkWBriARC6KnDORICy5mVdRah+B69zXHuTUMFJmpF7QKm2rATMWLZDMjSneheFyuQxYhTSQKgvzjZ4Or6L+YBgPTgmttbgVOWoNCv8ruSKa0zWwgsAkbEoQc7YEqYBlCmnPSAt2qbjhIjsBLVOzZApdZ8a1UXxamq08NdCIb1uBMsUEdHoxRHEH/uzFUXziOnfR+NPodgx3vZub3nAcDWIY3UB/NPwQjaPRkFYfoTe8h8to+OEEkLJEUXBVKIueIHKbQZxRumLErfCp3MDRBSY85QmRElnJMoRMPqASxAUKVAuubRU1gZu5Ts4X3FRNoPcZUZA3oU2e66SlSKwW1U38q1E9kEZ/jslXz3edb5uCPDAF+uLxXWEG75uMe12yPKVPNkPrrt/SK5iZt5YPLC9RV5ZZ8HeJan2Ja88uPl0O7oMrmbD8murNBfVkNx59HFMuB5PJqEABsSxVgj/c8xS8jb9Al9OvuNb+ZqOGbMXmzbOBua36Qe0dCytEYvvDzr4V3aZfJ+10wQTVRHX9oH4LMjTxZnMH62f+pSHSFp56OuD6Gj3f3989gKPCEiS51GRywKEVhaZUYjdbRxB83/+EucafAmbH984yYSaZg7fyn0x+y6h+/d5MjTCEW1GdeTrlKRczmjOLyikVv91bYdNZYbuxmjZ9VYvex+PB9WTSL5VCYfpSGCXzGM1kUtddv7Zhf02/2oP4E0lNJl34DfYaioyjBTX+XxStu9sBh8rtrZ4pd6VJALgo8Wl/NUP7CDQNUuN1A1zhHgw6YpVOjiIz8z/ePh+/9lyZfT77QsQPe9543+gF2jBl9B0Nea/b6fo+fNtGWE7t70Rk3lv/4tChq2HCezJQklKubczEZvblk2GvM57Rt/KLJluL1xMT7gX4KozPTLxGXjX5GjlQjJfGPWK6aXXEI4SPkD3g7PgAfZyF9tHwFmWeW6zViNR0LyMYTTcVOTM0bhaPP/mE0VXD/st/P+++e3S9kLMyR+o+ulMa2x2794RWMqYKWbOeYcrK3Dzl6cfVw7PnYxt1m13jtuLxPwpX1LY=', 'base64'));"); // descriptor helper methods, see modules/util-descriptors for details - duk_peval_string_noresult(ctx, "addCompressedModule('util-descriptors', Buffer.from('eJztV91v2zYQfzfg/+EgtJDcKFKaPi2eCzhfm9fUHuJ0RZFkHS1RFlGZ1EgqtuF5f/uOspzIltPKD+tT+WKTvPvd7z54Iv1XzcaZSOeSjWMNx0fHr6HHNU3gTMhUSKKZ4M1Gs3HFAsoVDSHjIZWgYwrdlAT4U+y48AeVCqXh2DsCxwhYxZbVajcbc5HBhMyBCw2ZoojAFEQsoUBnAU01MA6BmKQJIzygMGU6zq0UGF6z8alAECNNUJigeIqzqCwGRBu2gCPWOj3x/el06pGcqSfk2E9Wcsq/6p1d9IcXh8jWaHzgCVUKJP07YxLdHM2BpEgmICOkmJApCAlkLCnuaWHITiXTjI9dUCLSUyJpsxEypSUbZXojTmtq6G9ZACNFOFjdIfSGFpx2h72h22x87N38OvhwAx+719fd/k3vYgiDazgb9M97N71BH2eX0O1/gne9/rkLFKOEVugslYY9UmQmgjTEcA0p3TAfiRUdldKARSxAp/g4I2MKY/FAJUdfIKVywpTJokJyYbORsAnTeRGoqkdo5JVvgtdsRBkPjBQG5oEkLHRazcZilQcdSzEFx+5j4lWWYlEV3ttwAKkUATL30oRoJDgxlbLcABxTPUgpP6cqkCzVQqoCe4WusFCCGJwK0Gq74GBGQDAIVoQZHKnQOnnaMOOBSAhiloTQWdeAY+cLnwtku+XRGQ0usWId2x8x7qvYduHWxp97Q7sMl2t6Soci0/gjEdW225vLgjt2SDRBkEdnnaAFi/xo5FoHHQg8LYZYM3zstNqwfNYQlfIriLneM5qMe6aUqWMZTxVmGw4jsMrJYSHOLPgHkJN9d8dtsP+ycUqmX+Dw0vy3rWeZPeLbC7uGEK6eX1x1LKtdUzrF4GgkfFtbA+vDYZ3XbfZz/7J9cMBaNfXq8sfR7Sg8h9p5wdxT1wKMTn1dFjmnt2/u4V/w/7w9Ovzp3q9LcD+Opdi9VC+V5ZrAu2Bs78F2nS+3dvhxLGuK1pVb+3Ffi4S1XJXrN5HvOJ0xjfW+G3NKmL5AAacKpuV8c2GxOTVDUp1JPKG/DQd9LyVSUWe7b3h48idOq7Vtf7lFh+Q9kLZq27yttKwtyJGk5Et7u3smjGezH71zR0klCnzjrb+jcfpR+N165/7dcL9u+x1652ZTMj3pBdujt+zZjf7fFvMN3B8N5nEtpBHJEr3VW6pwy/yC+HhGg0QoWr4cRmFXSjJ3IWGj4OkWappUZDoUz5KkgGIROEYKOqvl6p3RaKGEKne2ieAMLR0yHglsbHg/vWKjHk4c24BtpHIamweOMaK8hPIxvmnewlEpiov9s7pi/MTn8y+UU8mC95jgmCRI6QxDq2kfr+0P9HcpZvMVARWzCEsJK0HH28lZAxe676mORYhd3ES3Upy70rcjw/WLpnCplJodkKW/lcTljX/1zAgIN0/MiPEQinysVZfrQ1SkpSiVamZKFPOaWQumInXKwTA8UOAtHD+f0jyqeRxRtKy8LNdzs/GVh0yBmH+C7fwTbJ+Ul4o3jV06OxMRZgnFr655bpnyXex4SJ3sWHMrJ+qksgLLkhvlQqie4Zo8ilfjLuPF1k6by/8AHFh9MA==', 'base64'));"); + duk_peval_string_noresult(ctx, "addCompressedModule('util-descriptors', Buffer.from('eJztWN9z2jgQfmeG/2HH045N4pgk93TQdIb8uuMuJZ2SttNJcz1hy6CpkXySHMLluL/9VrYBG5zUPFyf6gfA0urbb1erTxLtvWbjTMRzycYTDceHx0fQ55pGcCZkLCTRTPBmo9m4Yj7ligaQ8IBK0BMKvZj4+JX3uPCBSoXWcOwdgmMMrLzLanWbjblIYErmwIWGRFFEYApCFlGgDz6NNTAOvpjGESPcpzBjepJ6yTG8ZuNTjiBGmqAxQfMY38KiGRBt2AI+E63jTrs9m808kjL1hBy3o8xOta/6ZxeD4cUBsjUj3vOIKgWS/pUwiWGO5kBiJOOTEVKMyAyEBDKWFPu0MGRnkmnGxy4oEeoZkbTZCJjSko0SXcrTkhrGWzTATBEOVm8I/aEFp71hf+g2Gx/7N79ev7+Bj71373qDm/7FEK7fwdn14Lx/078e4Nsl9Aaf4Pf+4NwFillCL/QhloY9UmQmgzTAdA0pLbkPRUZHxdRnIfMxKD5OyJjCWNxTyTEWiKmcMmVmUSG5oNmI2JTptAjUdkToZK9tktdshAn3jRUm5p5ELHBazcZjNg96IsUMHHuAE6+SGIsqj96GfYil8JG5F0dEI8GpqZRFCXBM9XVM+TlVvmSxFlLl2Bm6wkLxJ+BsAWXdOQfz+ASTYIU4gyMVWJ11h3nuiQR/wqIATpY14Nhpw5cc2W559IH6l1ixjt0eMd5WE9uFWxu/7gztIlw60lM6EInGL4mott0tNwvu2AHRBEFWwTp+Cx7TpZGO2j8B39NiiDXDx06rC4snHVEpn0FMxz0xknHPlDJ1LBOpwtmGgxCs4uSwAN8s+AeQk/35M7fB/tPGVzL7CgeX5rdtPclshW8/2jWMsPX84urEsro1rWNMjkbCt7VHYH047OSoy14NLrv7+6xVc1xd/vj0ThSuQ+28YO6pawFmp/5YFjqntz/dwb/Q/uP28ODnu3ZdgrtxLOTupXqpLNck3gXjewe2y/lya6cfn0VN07p2yzjuapGwFlm5fhP5M6cPTGO9V2POCNMXaOBsg2k5Lzc8ll/NI6lOJK7Q34bXAy8mUlFnUzc8XPlTp9Xa9L/YoENSDaSt2j5vtyRrA3IkKfna3VTPiPHk4Yd2VpRUpKBtom1XCGc7DL6bdu6uhrup7XfQzrIoGU16wXbQlh3V6P+VmG/g/hCYVVtAQ5JEekNbtuEW6QFxtUb9SChaPByGQU9KMl+fP408hUabeBJFOQgLzQ0FlSJiIx9Osr5MPrLDqk+4uaiEjAdgbGwjIMs5mE3MtWXpyYsoH+Nl5TUcbh86U8dLw1jETjErhgUavIbjQl43crpi6aWRon0RYVGZky9GbO8d/HxL9MQFIsdEynVGqqPf4v5MLlZu1ylm3fXvGN0WN4Mvv1BOJfPfYA1OSITbwRnOvqYfiGTmfrWk2ipgIGm1E4ZzhFqbhZpPSQv2nhv/VuCKpnLI/qZLx+aO5DB0e9gFBq/KcF0wereVppzsTlwz3FtWWiTYiCWScjpNwpBKp+WZK66xVriVLRtdpLZrYKWpCgOT2bQCqm5X3eW9Dfsrlpdai9G6OLOKi5flptYgWEOObboBt1kh7cob3hViOOUli7Cl+Z8KzpDBAeOhwBizQX18cexSUeZj/fWCLy1aA/vsii0J68ZizHG/Oc8DvDHf07dSPMwzh+nK9+JCiRch81FvqJ6IIEvW/daOUGGYTs6W4aawFnS3QsarIyxI5Wqs4BpPf7RSfbIfS7E2IPk0P3M9zz2nB0s7PVjanWJTflO3CzvCVARJRLHYzJ8IpjoeK/4e6FS0uVv7RGerxc11s5N/u2kyOuvyhEUh9mKWt7eumkTzP0uq2OVdlT4X/wGSwG+L', 'base64'));"); // DNS helper util. See modules/util-dns for a human readable version duk_peval_string_noresult(ctx, "addCompressedModule('util-dns', Buffer.from('eJzdV2uT2jYU/c4M/+HWbWN747V3SSZNlzIZso+UZsNmAkkmAyQVtgyaNZIrycuSLfntvQKzmH0AmWYmnfoDNtJ9nHuudGwFO+XSoUgnkg2GGip7lX1ocE0TOBQyFZJoJni5VC6dspByRSPIeEQl6CGFekpCvOUzHryjUqE1VPw9cIyBlU9ZbrVcmogMRmQCXGjIFMUITEHMEgr0MqSpBsYhFKM0YYSHFMZMD2dZ8hh+ufQhjyD6mqAxQfMU/8VFMyDaoAW8hlqnB0EwHo99MkPqCzkIkrmdCk4bh8fN1vEuojUeb3lClQJJ/8qYxDL7EyApgglJHyEmZAxCAhlIinNaGLBjyTTjAw+UiPWYSFouRUxpyfqZXuFpAQ3rLRogU4SDVW9Bo2XB83qr0fLKpfeN9u9nb9vwvv7mTb3Zbhy34OwNHJ41jxrtxlkT/51AvfkBXjaaRx5QZAmz0MtUGvQIkRkGaYR0tShdSR+LORyV0pDFLMSi+CAjAwoDcUElx1ogpXLElOmiQnBRuZSwEdOzRaBuV4RJdgJDXpzx0Nhg13gkxupTxJXjlktX805cEInEaqhBp1ddDrEUR3LCHfvTC8qpZOErItWQJLbrH0pKNG1i9gv6WorLiWM30mGSkpT5UYIWeSyW5qavqB6KyLFfUN2keizk+WsiyUjNLJd5I6LJNpnfEclM9539vcpjtwA8ofyr/K+d0dHX4nkWx1Q6rm9WEH2L2+1R5fT4OkteVAwOFnazFMeA90wg139HEqjVYM+de+RkX1fJ1SmuNgRqXPwjKmnsrMH8WjDc97LFPlMT9Sk8g8ovFTiAypOnHjx+uoRmrkgsnwuJzYWd9tNMDZ0cwVel9mD/iVvkSIsW7hg+cNwFieaawnhopMNxCmWupNvz1jWokNHNHdylIxY7Z/cHw26edjq/YXWZ5IDlaDMzLSz+hPHs8o6lHyLUqLhgZgOfUilC3LSIhl7S8ATLceygz3ighrYHHRtvvUXymYevdCQyjTeJ0Wy7ujosuGObVqPzNSQndOFqJrUzr4c1CAuMVmF6KwGV8u5IJtBtc8bnq9ixQqIhoDoMUIlEcuGHgsfwN6BipsDJiCoqUWVwBHHYXW6D/aeN/8j4HHZPzLNt3R/dvrLXTOLo0fFpzbKqG6xSrFvHYHU2WqJYOqy2X2W/NU+qDx8yd4P9JnyzHe38xL4EH38MDJVID749Moo9sN0Nnp9rCkVdo7vX9ixAnrbK9rlWq8CDB9Du7PdqNWvZBGtTNdsVVCD0Z9XtdvNfy8NmeO1OpbcFzEXrvI0dMVtwg8mm+QXa3tpk1nTtSuxyesk0LuBVmzFh+hgnnMWwlpNbujwXD+eP1lnTT1GMqHNzY/u4NUeodTdUBzdXOHTobaVfyFGnV/CYrryTRyQUd72R/2eydG87VZhplsDuLlJwvyB9Z0W6+m6KBF8g+Njtqh3Y6Xb1zpKZbrfT2dv9tdcLvplc1AtCdvZyWym7oTPznwNYPFme4doDjNh51Jvf9/+z2jPdSnv+lfrcrz9m2+vZgaYGW4hQ9ZZyzZz9czpRzjeQKIWHvHAITi45fpoQjct8tNSpkODBxZ59WNkHxaEYD2J9FS0GzTUSUYbg8CwkpFZY4fX3WKGOPn6Zn1eLkfDI8qiyNk7hULM2UkQkmq4Nda3F9wSKaEyyRK8LsSp9RXJhekdUJPof7kamjA==', 'base64'));"); @@ -2309,10 +2309,10 @@ void ILibDuktape_Polyfills_JS_Init(duk_context *ctx) duk_peval_string_noresult(ctx, "addCompressedModule('linux-cpuflags', Buffer.from('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', 'base64'));"); duk_peval_string_noresult(ctx, "addCompressedModule('linux-acpi', Buffer.from('eJx9VVFvm0gQfkfiP8z5Bago5Ny3WHlwHJ8OXWWfQnJV1VbVGga8F7zL7S6xLSv//WYBO7h1ui8G9ttvvvlmZh2/c52ZrPeKl2sD46vxFSTCYAUzqWqpmOFSuI7rfOQZCo05NCJHBWaNMK1ZRj/9Tgj/oNKEhnF0Bb4FjPqtUTBxnb1sYMP2IKSBRiMxcA0FrxBwl2FtgAvI5KauOBMZwpabdRul54hc53PPIFeGEZgRvKa3YggDZqxaoLU2pr6O4+12G7FWaSRVGVcdTscfk9l8kc7fk1p74lFUqDUo/K/hitJc7YHVJCZjK5JYsS1IBaxUSHtGWrFbxQ0XZQhaFmbLFLpOzrVRfNWYM5+O0ijfIYCcYgJG0xSSdAS30zRJQ9f5lDz8uXx8gE/T+/vp4iGZp7C8h9lycZc8JMsFvf0B08Vn+CtZ3IWA5BJFwV2trHqSyK2DmJNdKeJZ+EJ2cnSNGS94RkmJsmElQimfUQnKBWpUG65tFTWJy12n4htu2ibQP2dEQd7F1jzXKRqRWRRUXDS77yyruR+4zqErha119H25+hczk9zBDXgt7L2FeZMO0zvve/iMwmgviOb2YU7xDaooY1XlW54QjGow6A7ZFWUKmcEW7XstZdBzdhGjHAsu8G8lKT2z71lGuqmpwakSoxAO8MyqBq9fVRRWAe6oXjrdi8z34memYtWI2EbIIy2zJzReAC/HYLxomaMTb6/x8Cq18yGjAglDLpyCCcvU5zGTQmDrpX+Ampn1NbwRO4QNGpYzw67PDIWXEE718AdODZSc1FAYz1J4wzPZuhFPwTn6h8N2kSpYVSRGTy5vNqumKKhnbkA0VfUGyMgnaibCtFEjI1MaEVH6QaSplamkX8WpoMPFC7pl2rNRhaKk6+LmBn4PqJZtYo3Qa16YPpcJvPySoUZ88gP4jVrTsxSvym/bh6hQcnMCy9oPLlNiRZN2gCHwIs4Oo2+z5/Yq6eDBz7ALptvVmU7iuoNf+LejV3DRKrtaUxSaCDf8OCe28QXbUN93jF+uvtF47Wv6MEy73xzTprfGHbUqdWr+SP8TH8a3cz8Ij9Nz4dCHtw69Ds5w/WDVGebsZThKNi1rBn3qEUTzYq+ljcybCmmO7URawwRuz66oyf8tuBKP', 'base64'));"); #endif - char *_servicemanager = ILibMemory_Allocate(32405, 0, NULL, NULL); - memcpy_s(_servicemanager + 0, 32404, "eJztfWt72zbS6Pd9nv4HVKe7khtZNzvdxI6aR5ZlR45vsXxJHGd9KImWGEukDklZdlPvbz8YXEiQBElQkpN0G77vNhYJDAaDwWBmMBiUf/3pH01r8mAbg6GLapXqC9Q2XX2EmpY9sWzNNSzzp3/89I99o6ebjt5HU7Ov28gd6qgx0Xr4H/aliM5128GlUa1UQQUokGOfciubP/3jwZqisfaATMtFU0fHEAwH3RgjHen3PX3iIsNEPWs8GRma2dPRzHCHpBUGo/TTPz4wCFbX1XBhDRef4F83YjGkuYAtws/QdScb5fJsNitpBNOSZQ/KI1rOKe+3m63DTmsVYws1zsyR7jjI1v/f1LBxN7sPSJtgZHpaF6M40mbIspE2sHX8zbUA2ZltuIY5KCLHunFnmq3/9I++4bi20Z26ATpx1HB/xQKYUpqJco0OandyaKvRaXeKP/3jon365ujsFF00Tk4ah6ftVgcdnaDm0eF2+7R9dIh/7aDG4Qf0tn24XUQ6phJuRb+f2IA9RtEACup9TK6Orgeav7EoOs5E7xk3Rg93yhxMtYGOBtadbpu4L2ii22PDgVF0MHL9n/4xMsaGS5jAifYIN/Jr+ad/3Gk2mtgWrqijOqdgIc9e5WHwf/rHzdTsARh0oxmjqa03yK9TC5htoNsFjfxe+ekfX+joAVBbdzfpLwezQ2/oF4J3rCA8ff1Gm47cDf9NT8PI5A+PDlt54S08GGi9shl817V17XYzXLvTOjnHTHJ90uqcNk5OZYCqSoBOWltHR9L6tYT6j/QfXGxqmwX8DxDyMUBL/d61MU128Cw61MZ6AabTseYOfTIaN3gqPkx0PEv8r6heR3lgRHOQjxITKO9at3iA8WjyOiUHs5VbyF9d5VdKny3DLOTL+C/2tkwGWQRgYnQ2+UyEZzaEqV4owAcMlzZQmliTwgrFJwCCdhqR0itBeugjR4/gzIjkYWvqMyDIilfzUU61jjW1ezK6cQQSaYdee/RBGwKpCNDoaOE5OsFiYsca4XnkFG7Iv8FmgXT90di1MYnw/OnhSV2ajDQXz90xaXlmmGs1aBhGAjeKSe+ROThwHnQ2SAQspyWZsoB2HZnT0cgDwUaJjc5INwfu8PdKlEdY3QL9lwLBSLF6ztC4cQsrGD1a4Bnr07NQgRVxyIFToXTJwGLm/uimoNr/FfQKVVbQF7wcmFggT/VNzioc7M+eTLpxMNPq91gKO50Hs0caXIG6wRLj275h+wU8gI+RIdVsR+/o9h0WiB0sJ6cOpV1wRD9jUn15FEjv0BqnmLn4XCht67Z+U6gU0fpKCQvFc23EKnwuGQ7h1QfH1cfbtoGFNdC+IEL5F6rcV+hTIzwq/BTgvMVyXh+lw6gGYVRFGJ0hZuL+MR2dBCC1SgAI/ikAOZqZ6RCqQQjVAARYOGAa467Eg6hWAiDgpwdiphnuG8N0QyNQ+A39iseAjINrbU1vbvDqtFLCgrl/httcq+23CiuBZYnNF16/qlA/OqPISuER/HlorfhccjB3QUfzWBU4bR+eta6PW1gnONzNqyxBHuDf4gEfN846c0L9dwrU7Wzg1uPBnZwdHmZGrxYPj6zs83V6LQnq0fF8QKvJQI+TSfnoixgQhrY1cho9UK6xuhni8po6l38uSYB9/LTpaxiFSIGkSRzh/WgDpcnUGRY8DQx4/uRo//qwdbqF9d7G9nZAW8ha/6R1cHTeWghE67Cxtb8YiO12JwDjUY2elRdB2fwCli/lto8bJ42D5pvG4S40rNxmZE3J1iYWAdCacg0u49RRlAj6TChiHf/N2en20cVhFrKsB8mynqnNeRqMrMuZGsQCJENj0fU7S2NvGifb2IZtHZ8c7bT3W5lZbj3Y+nrG8Ty6aJ20zluHpxmafBFs8kW2JjutTgcb6JGOfi5NjIj0/be69OWWyGfPoCCaskw5HmHt9z7v656emno9neBlxHavd3WXaaun4NcoyK2/HrYC+qIpT15cszaJBq33QCXFll/XMMvOMF9EH/P4n0+iQCS18PqF7RAb/wMKZz6/GXxtYUOyr7kaBuBhW+gB4cE/RGo9q6MeplKH2FwFIKy0EWvqyhqB18trxDBL4PbRCznDxKqfO0IjbEugPxEGkb8y8yj/f/P4lza7Ras78Hc+lwwn/yWfUgC/nWCk3BuU+5LbRArFMT8UjHp103h1uLP57JmxolJJBQ/4UKfW5C9GEWzzYq6IO6gCHz7UWGWo+bH6qUhUm2IOqYNwoGrdmXbxmHlgKkVqqPIXK6vsN4H/sVfDb6rqTRAUvapFm2FZVsfSBqOG1vtY+1Sv5+ypCe613Osc019zGzmmzuU2VdEy+vWcGgMgkHWFXr1eUxp6GH3Fch59CKkxdTBWmQaQ9wT/D1dXrfWoWI5PlH86V1f0PxvoC/4vGQryi78vwl8YCXjJ3z3minje1Kuvc3h4MF8XCbdhBigCykq4KiHKsXxMH83cI5Yq+r3hXpkSQQIWbAt/LIifmONUdDnA49oP/g9B3sNDi+91jg5LxKFRCAtVEb7gW+lp4JTlXrYQYKEcX8KYD1P46q9QDvFu9H+sUEtboShFYY1aXQU3Zp15SPBPMh/qTCrh9Wpg6xNU4t//xqtZBkkmkzX8LyxegpIE8bWK/rGuJvm+oTT5dvIEzS1QiHIs/l+sotzX7JlhyjTlge4eddhG5leSPQGxEPNdLh+GU/M2IiPgZTY5Mbu+wx3mYuDYtvrTnss3c+n0z3+hfIZ+qaF5mKhclnW3Wim9zMcxG7K12UaESiXcrXHB23gq5fHc4p3dEGhDffpsDwfIg6GxfStcB6iCRG7GRUuw+azZ+qkFuycckPeycKeN5Hzp4a3NwBHNd4ygfGCjDb3GxUYC5miDvMD1Ntk2hTajw2lbM1TIt038GduOGAEsNFzdFqxKsWFHH92AgRnpptBWgMoexmz7p4gcfyNILMS2g6ABthmEfkcV9K9/QWeFNyvBaiHiwAMNEFmAzVsKj+8BbRI0vG8A2PsUhQN0ctArZIsDTLT7x7jCvwcLS8qGfpJqQpfxIPrdFUFVoqDCdV/FVKUok83MMG4ARlnqbVJJB3/7O+w6FqPHYJiyPUa66hQh7MI2+lGpBkjTkiXd7DsXBradYGMNEKbvvQ3FErW9QLRUivwd6+sqCtFWnM2AwQbDozeyHD08Wx+L6Hpq9DcYloHpmbyJx1B8BpuB+L9khxn/wCIfF8mvxM/achlt6XhR0NFMZ7POMEmAg2vNdDwtRrqbd5BuTse6DV54bTQinwlksuHrFCFOAk9BHZC0TB0NNQdpaAxLGShXI62rj6JTj9QVFxHSKXAA8Z1H2qvwHIAgjgIHANgSQOnzj1CQlP0I//0kDLRHp7gtVBHvJS1+/ElbBKXllrYYRqD7iyJWRVAOc1GItwQK4l85UVW+KuX9xZKplXiKaNjSzL261R9+3wdOeFWGP69AzaRlNLCiUZeUKtOZJX7uEqWxRz6LX+lq3CM2dMyCHOyd1FYUuSNmpSW7+34oRQqbwQNrKYvySGY4Fj7BCwQli/DBEy+/rbAwC/ZF0hN4jrqf9Z5b6us3hqljdWai2+4DSM0iyuMFVXMw43yBpXfKJJKcK9JA0V4IoBJ4JbaB8G4gf9JXKJ/MbIAEzQFB+1ykMyVgX8NzZbit6WMLa748tqMKoRSBTxBUQV80BroJw4Q7BDB9ybqCDo9O0c7R2eF2SCUR/vTjdCS8sghdQ/I9SluF8VdmZmwPBBYqeakEAPx5AuEpPqqCNLbO0oWqtKWogAU2psvpX0WeRjuWKFvFh2twMbI2qbpkPX6MMaOT+L9PJ7kwu7wB8IL5RHHglD1ZgRVpkBauPdVBDGugugZQSHIJJOFkmI6LNSu9v411rCBqonIETiuiGXkYr5Qwn4bFd8Q/eX+v4k8oaZPJhWXfYo7Yxm32XMt+EA1ByedCsj24xNmuMrufbjYnzF4Cab7pG6bmV57JKTNXQvGYSRuxrGMnecC2wjMpUiCgAUW+ClYWijpGAlNgM8La+1aPRHGHWJq//sHKi7AylmcDWxs37AE2FE3X+b5YOcOiIzJOksS+tqdmw923tH5YlZJoQekqVIzqhM3zCx2Z7MQFM7HJsREDTiegxtS1VjsQ1wCGNtu9KIJRbNnkpIKFdfDBFJv3uMdoiDVjOLgxnox0GCVwzOGqeXnbT6SuZVHTnl49exK17ISzRtIsKMex/zzKmKISljIPMMnOJpjJm5qjU7M3d3py1pK2GrbOVhTnDeE4iFDOOm0yzBrjhjq8qaYXY7AkGCsBr7k/0cFObJydHl3TszBgJW63DhqH2+xFHNUleis8QeswI2oiIhnanXPUcte3uj5pjIw7PZdd2iHlgfshchREjkzivOXDk7juBgROjQscWjpFtATQJaE1WGLV61e5vtFzMYAvgeb6dJmHbxQ6rsCO4BBBhw0obN+QQmBLEVH4O4nkpKXod1L01qx6vRTwx69JS7dmjbblfaeSE7/H1ckeV6aesd0I2kiPYkDIXOb9uNVYzwFz/BJ9oS1e5Rr7F40Pnavc5iM0+7WEdlbhDDyGZ+hxe1tUhOmbwtTAQ6c5lIuTFWJrQo9E1smhSJAZ/c1oqZ41Hmtm+As5kkeEK24Q/Uw33mD4pzROlH8ijrVo1eAOtb9rWYDt1GqFHYdKlVMMN9xgbkTsfSGYkewD5z2lmPjMYFIKKz/mhV/WgBGipWBCsM3i6uajwAqSsfLpSLq/QWjwGCoYGtDo0hGz30HoycirLIV9uuR9utDu0IAaTp9cPtzzfI7R54oSyJdV7niC1xEsZur1NRhpRj0ZCPjsUQ+m0uOVR0GZ2Jasc/K1NXt/B1ODOFyBjuAD/q47HpkrCy6nRc6b37sBywZQwSiMyhIu7LwjnH/+6QlAkEwg5dNFCZfR3h5+nLAO4zjPxM64IIh7E6F1wHBAryWHmbxx4e9AdsSvAJkkuAx5UkJcdQihAVLwGHQU5RMWsxfAmb38ukivkMCPRGQP9CCeB/rXRrEuHKM2+knYjsDGEbCF38nYCqE3nnyB2IVVR6cZFLB86eDvEd0GKtLzt8G1XFIsk55BZDj4ZJarcMRbk9J1F4j2c51Ik3/9C5EfYXUkpi48fAdT3INA4ylWS7AlimUTsi3LlRp9yTumcykNHolgmGMijAp4JGOUMNZ/oDjhE/yT/It/z0GRI5P6vu5YYJ51gw603lGnSMnT1QlpwMVFWJmU5RG9eFW1xNwfkJ4Ef8M/tZ6uQk1OQkKi+B6r90pJ8UtAZB79povpg1cKbSJqNt+9ZvE1lInM4e9L014EpRMGhI8WqJv5sFMeq4NXTB/M4AIPC/qpGRb19E26sOdjLgmUJCJdRaDPvWCorQQY3BbmcvB31+kW7TLXAl+0qwWc3UnFRJ1KRkqJTKKQbggQcccyL2CxRgQZxK3p90T6sfEl0o6Kv28sgWCNkBEiGjebAogB8wgH2jr/EWTeDADhwXSFjFxdyjnJZQMcBmprtpgF/sT7f9XwNUxnenNj9AzYydF6IHST6/Bl9FDX+w5uXr/T4PQvtjjvsJQe6E4+gX4xHVmmb5sHDi9jMD/DDKHzoIgVg94UUkzMdIQZEGkjCDJ94IGuNO0bmz4ZRl4mW8Tnbzj0S1FAC3OIxaUKGFVZoCoHljlHgqytiFsSp6aPYjyu8WtUW5VB52LMNO30m/u8AspkApynU2WXCpkYhR5DqSk+83mek5RjNh+5D1qmG8eoxvAsbESpoBZ2Fy+G4zziMxFNphdmwOpRxmJKNgbZ5xdNDPIi3cJQU/LnsiHm9q2RkyOCD4h7NdScJHG1fw8bARhMjEY+D8if6xH3ixgf39RMSENLh0kIdqeOEg1/g6yqxLLoW2NINktPwkEl5oCSYRVCynf2JDfNvFzSJoKNkAY8YzXi0v8qjolk4ZrN5KdUiG4GLcXQd1xrEpyD1uTHFPzupiAepOAM/Erzz2tXffqRbrMh9GKCyBnfpq05Q72fB5Nc9j1wClHCefAI3o2oD6OIbI0QxR1qlJUnsA1kuMTA00BlJ0SbQRJmw82PYDP/Vh89YB4lsyzaHsFT8H0tYXPuqQQQPF/dOxpo9Gt5SAONykUmZlyZxExQrVJibRL2SBnziGKUvXqinbwlRrgoS800KR57FlYWOpGgZgpxNulF4pfG+JCIhaffF9TXXUiVjyU/2PRFYRH4MSeV4i78wirzDR51yerxm8jVr/GiRq3CcpBbSP7tPLfKCsJExHXg10Ya5694Zy4FqMvnux+cFSvtb43eLZUEq7fhDbKnEfmyDBNeYh1fl6ZayYFmanB5g59Ih0p2Gk1NgizzrOjqmJblcis2Nw/N8M7jpoWpQEDvHog8dr2rm7pt9A402xlqowAlqGi1rfsHPmF2D0pNW9dc/VCDrOHH8K2Qb/TvtImxViv1R3EAWLUD3R1a/UL+aKKbnSbre0OtTsucjlleM4cmim/dX2RojlZVrPFuqtsPgaz0rfvsNZuWeWMMFPsXrVhTrNmk6VVZXbU65NAPq6HaDOQcYVXe4Bk0UmyK/spG/ybW0Qd6kBqKVbf1ke41p1alMRrBKT69YfbbpuEaWEz/oXeMviqueu/2FHLTHujjLla6hsZEreaOrXvNyIrXkucdvYogcd7VQi3u6u6+5rgt27ZsWbOG0+iPjcAZR/YKMsxErfjD08YUQ8ZCNyojzjXbIAkIfwvLTqGWmLyXyO626b4oPC+i57ItfIIJXACkuZbt7NrWdBJp9tgy4F4DaQiAxjvHdjRiVG46VnFcURDQL6JaEa3h/z1fXy+iSuT/JQivlM61kSyCKUZnGROminST3/oTl4xEZDoJgxbkyLHsyitF1mwssjEI89Zp7fjMzJ5TgY8I2f9S3E0SusZmUCGhKym6I1uwCR4xrjAvJpIeUt3x8jmJpx/EbwlngWneEbb4WqDVaXZvSE/L5e9/Ww/vV8m9HL+to67hogvD7FszydaYxwCYXdh86GDmhUbWM6WhoVHJTMnQzbuPed5RSM1SuH/x20r+E1aGU4tsxBeRq6+PkmNfDKEESJsxlGpMJhEuCL7AZddq8VTN2jQ8QW4K8ZOXEoutVCI/yWXtWIN8WOSaqkxCr9/NXGVIlndehU61oM5WgBzvReT/t1JFf9I/1uVu9e6DqzuwT6v3M+HCtF/nhIxAxsq27mAyvwl0J7ViuSy2G6RCaGmr/Varrq9L0Z722N08Qm2pDlug1KZLBsucvyb8XVkT6VwUCVmMUKcY6DKtIh+PictkAmOQ0rWDf8p68gcuIzTq37MkVkxOwx8Vghjqq6BfWQelxEsVJxxId6SuZNkYRXUP54/w4CxjOHi7+K8/ljYgXaxu3LIhWfsNHA5wwwwbpnAv/MLP4OomPpirqOB/+adXeUX4WzpL4LIsJFxJwx8vWZ6Bv1Y28T+vIj3Mzg8IkhArKT/kygeyLUPbZG0ZmDBeP4v+n3GulcD1YeLzuSTepuf3hBOLKxGlC6Ov185Od15IgfQNB1vgD4dRWAxQZogOYUee1lNyPxqDI7AIVkR/kx7npMNLL934nKIOiaIuYu+xqRGXHoO2E5NJiCtRkuXOf1sI5cmTrIKGQ4L06wF7RSJjBPEgXf48CUETan5BMzwe1Gcb9TIxeZlp6Ula77zGMVA2XZa+CrM/qhX8R4FR7TV5VatgdYzIIdn+Km2V6P310M5fz5qO+mSDz8JooE7AhRWTWncowZ+5AjxJK4yTrBs+9qS/lRr7WKuIfaT1QECvJPUuo/XlicYvyPPJbURccjzxe15mrrDpd+30xhgO7XP8LL12vAkyTChFvHiMqRKKBbx35Eda4VqgdPh2VaE4E5yRa0r5E5sP4hyO7uepgMsXJWo+PF9i3sOTmtfDAxL/CZ6YWXodnabee8GYijtvzx9ah3K9zJ3IgHq7057PQEAprQ0i5NwExEW1Lf4qxZRW/K3ITL1xXPgfFW/BXiU5FcQnZfzgYdfWSlZJx03tWEKINTzJYdaZEESFL4hcGYFlx9nh20O4tCw96WMCfnFB1TKQKTPRSx649SBL65nSz2VORlsfiHsTM8Ncxa/ArfMQm6WGP4HUiXO0D493UfSA8vhb/YH8ePO29aEEid5GB9QGx1TrfOictg6urppT29ZN1/PBu1dX3KSA+3XZxh9VMvLXbYHWi7KnJDfjQv1GBbKp/3V4UjpcMaiq8i9NfrkABwZTZgbZz+MI8J8fWH1yBrQQV3ghjmHM0h5j1QKun048XKEYrJzALBKyxNwEwFZ+unSX6LWqcOKeS7QsrkVGN/0O0v1hirXgj9bYcF04G4vHU2JOBCEQXEgi/KDvLLMI4/m+PNXrX/9iCypW2eaXaOKSKbGlAk1mUSbiYWFsleD4KqZXUX4oU3ziZnfy+MBm/3/zxcBwpQypNOvB/FnYvJwaLLKA8O4kObWBQr8ZstNJn14u7J+FJW/mYkOmZt1oxmhq640ejeRbaEnVejwcNVG3DTZZYrV4wtRf0YuVqHs79JTLCBf/FbQ966bQaV43mqfto8OU1UnmYFLACM9QKLkmcyVlpBI8HDrzLv36InyvKNma9DTmAG6nFt+KS8D7o/GpBNfarBA6YlJ59OFfsiK5/gzwjFyAGkQ0BaO+PtIe4kY2jCQpnKobpHMknR/9nQBWCfy5XknnPRFpzoDsctmdRnv/7KTFOtJJ4RUpcr5bMCutbd3R3WPdNqw+7QTGrz878d/Oj43MJAWJ9gK9RrV1tIGqtbl5g9+2swn49tjHZFR5zQnFxmuzZ00eCvP2Y60G/fitiKT2t9C1rBasNLwkbMJi+kkRX/F9YwsLHuJZK+TPTGB1mqPXRSE6lUqpxs8cSnnyGhyT73qOVW0Ru46sC1wLJhCeyjATdG0x3jCtW+B68RD07grT7/X8ysfKJ3LFBvxIgMPvISEhiiy3eY7eJETBk49eVvOYa7qE0QtHH4af9IFPyuE/JwOQHQtPyAeypnOq4TFJojeFgMXLJHFYvDRWtDi9xw1Az0kOabqwBZRRUQel9hPEfbArjeMz8UodrAKa13CmoXUvIFlwimgy32D16MSBXbcAqimzgd7RLmrYsVjDw9KPFFhr82u5PUjNkGd3Qec30mXupHSN1+WCVyVNuMITd8mQHJHr49bhNgyoGjZYsZo4ev/UIA518GKUTLwqrKBV+EozXhvjJPrzh4QEBwG+QnRPJL2ywnJFEYYbQ2yyKUvwsqZuweEsWASUIWgavhQR4UIFxFNcXfCke2MzdIIQih63U6BMBsDwcKPy1hiNCgmWpbRukDnLb9v7+4o8Co8CHeFRoyU8WboNqH8u5F3KEwi4ACQnmHjc4wAaDuaTZfZHoYjK7O3rN9p05CrM2Gy88yXNJoLna7M/H6ozU7+f4FVe73u7E3BCgonk5czbNOLHp4dJXPLCZ5PnVk1hoTP1GczaseHoBR+iVqT3nlK7wCZhRtqm9xOCSuyUq7voBh0L5RAWf6W1NOSwStQiC/FKxdwrK3gAgMqdpCRgItqYjKz9WGt+LRIMLgOE6ziWmVLQc9symy5wCiKyH8mjt6pFD03fkAN/UoE26uHO4ufFiPkCqbEiT8cpPmp7LnQSemYIMRfIEfsVBHY5npRYRxoiEhdHZyZF8XvY1sS8cWjNICWWf7uMO50gDYH47yPw4He13i186UH8OT2KTZhUkTie4hNQihSEEqkdVKoqqtW46gLqDZ1R8OYNJNUuY01KUQcLgnqFnlcqzKILtIBfJ5pz8SB/h7pxMNWAQkWJJsfmDVPmAtCpH4a8XL5DAh4vP2pEmAW0apit6QtwChNnVdLYfM2mmj1VDjdPeOR7NBkDTDcUcGoI0qSIZkPd9Ow6SlXD2fAriPSesz8qroeUBT10TH6RLRQpAxFjb6HdlFBQN1t5AmfpZGE9Ku5JD/Ty/IoosrZA1gG+uDyBUxGehfjaCzRM4WrSjydn62R+lSR2WIRj6S7nQspaW7i2jWNnTW1HH91h3RXjx062FGHZpjlgJ9rMxGs2z1nAzqAz2RjIfMmXeTImBHYRg+x5WTFJQhU9ZUND/Yi7d9AGvwDnahF9DL8SPYfUMVhE+VX4Si/YyHmthA9Qr5R43KYQeuzf1sIYLUeuk2fMVroxTNzzh4If6vTFR4icD8eGQI7cw0HzQMCm3gZaL4YSQiTbC081sYhR4ZsUKV5UeCZ0mk0UrSMtYBspWEasjUAkQmpxrEOahdTpxh8VOZkWNaYIh8AitKUd4jJqOSY0Cd5BBdkN8gvhSgYYD1chNf6EP3SVX06vAjhoqbR6FNNFkLvae5bpWCO9ZGuzfWuAp3nAdqr/ThYCXdjPIXM0VbOiUSMMs+UtGzAF/x9sXnHd4LpHNh616+2Lo5Pt+DMCkeNlAQJGQ3JZ1oHCkAcUJ7QaBxqWpYRqCQd750qZG0ubeKrMhV3SaHJ3QiJBpa3GvOaRz0nkV4mEVhDtd+SIghwLYZtdchoYogVeILxOvSgiSRn/uBKdQymzJyVSE3LkiLeTA9qpM5JuFMnHm8fCFNcTjpstvkqQnR3wICl4h3nZaoayNYWy8IiWEtyBCslhhIs8FWW4ijdcxG5tAewCF5w+EX7ri+DX7jS2wIpfIm5zBGPQ3ECyTzC7WZBOKJQvKhJfVF/W4mYTOetippxGW/cjreKXhUQhWSNSslYM4VxEgFuRY5Aq9tJ2qP2osWA7sUIgRvwJwVIpUQXAOTfhkDXpkdLESmJEWBT7mDizQE8SnQnyNn3GiZzvFZ8byy6wkFHwmKJN8tcrj9oQa4nfLCMeNa7rCcMUjAWLW6Xovxjory+KL0Qiqi0yFJsnWj+yiamYyDxyiJcbl/nDo8OWwjki/mSSrCoLWFZ8eVDmSYvdgf00qGdcT5VQP2ltHR09BcbqG89ZUT46fdM6WTLGKXZdCnq6fosnKYkkBn+BZLbFGjsJjcf76WKOpSdUpBc4y1bjtFsj5jk5Hz1YjRXnPo+WoJ5MciReqMfwYP/4XiFBDpXLaN8wp/dFfr8dpEna6mxnS/fllw2JOJ+wMbkvDefEstyguRWgV2zqwhuMaNfpi276UONyE4NuTOWPjg8d3XSkp8Bi5LTS+UUVB+71tTUxSetitt5A4J9fJDmM84nusYdHIROnNAm9FEbmzKKRBJ9qV94HGvVvW+fEXOUXOnp3a7NbkGubKveo+9BT71KHJzzY9Qg92EW69DJarLoQt+9G6oVPsayiLPUiBEycLJObziJzZaHdjutrw5ncpM0Wr0zydEl04qaoZ4F8bDd0XhmO63QezB6eWbrbK08cQqdVu5dfgez0weKwesE0FCswiRaIJedMAVKOU34Z+3whYqbeKMcfj9Rwb/KT7AQqeK0Tepg03tFOq84tUm6RGTVXGpuYrvrxZ1/IKr/BTv6SQ5IbwXRwcJ27BG3jJo177V6pX/b0iBWJYR8zCLG+PCw68FQQ3HiShpTPJbOQj6ReTB27DJk4R7L+PEl3ElrM1DFl5Lge2AkrfuQaKKIXWlNTvmUvaTuhrznP/ZVbMNdD4vabgifgiRQceJah5ATgfE1FJ9Cwn9Gc75RGwiGQ3QNy/okGtj5B1zo5SlZnutAVVoa0Ot0o/wVyy2AOuLrKYV0IJl33Y+1TvZ770OrkAGGqNZGfmyBvrpITpEcRVtKf4OHiOE5zqjPNKeg/xjqU6O6ex1KM5glj6ODJ4vRsYxI+8Sa8lvF7DJ8/EX9/dX6UKN14VUdepITdgzgJzntAK854qzsYNxIO8QU47Zcq5jP4ThgN/8phFhMZ04ZkigJrar9XfZbEHzGnAk9S85zr9xXCpkqMqsigKYwplb+Sd8BQKSfpJJ9/MFgKg0UidK57w75hB3lOvan8lxR2CRTGbwfOtFso58rFXK74S21lc57qufIvuUXql6/wgzAKaC4YnmWcoV7uMRNVv7O5uJRMQ9E0Q76+GFRdIdiQKK7k8qfeSqkHQdbZ8vSgLIl6YqWP7AB34OjtD2mTKG3YRTEB6eK7ltBj3vuAZ2Qu9C3V66Q4Ccjp6fEk3svEoyB/+QJC8REPBDn07InJ+AifAoZbr1Nrx4Eho9chxXklElT6p/ZVfmM/YzqPXGv2wOGMcnhSr1fjJaa8kYS1KKYCfuupT+fF3OoNyiWsBvFAMCOcY+0K/ReV/wNrS668MgeUedD3egDtF09ap0WmAM4Hy18efyErNAaI4c4Ljc5lCmMeEI9z1AHt9tvRfk7+CdCq+lVolaSQxLSiZMlmsGJZqsgMugk8MWZpfGh3gtBlGGAhnsWfGWOsSPNceC9/qArAdNwDE7FCkGXq7JBveAdqbYmqgIrTxKYDJncUxow9PWzskQz//DHeGcc7k9HJl+3fuNejBD4PlM2Q643rDuGxm0Ju4qDVCfon/u8sR2BiMZzVMKT3XxYggySK0wAlFR+v8p6n8fDk96rwM0v7WQ1x8Cg9B48S0Vg3iFPJ9yWdYpp+BJrSV7CCF9F7/PITvKQz8z0sVRGHUnUzYS2Sd3/Z1q6XrjJuackytVVTacZM7sB2LJELCjkz43CRXib/Q9CkCxprsowVJH5YQocY2cmlHwOTvgLY7lOOTMLN4T9GJ2107Ccfn7jT7mJxtaC3vmbPDDMh5i1D0IEQRHOju73hMdyMjsd13+jamv1Q3icXI2+TdRNu36C76JuRTvImafnGgCaEE5sVvrA7dCAMMHClvaQrnBC0rHeTfOYlKaFzBCWhb0p+10zb9RIkYmMhMaXeWGOdXQyZVOwMvwKUGW3Y3eEJffMortDHEFf6QyFnyRGEjy6FI4uIA1ZjjJ+94qCWeTiFW4QIhoI8LCxbWI13+9ApCZrmLcomPTskENOfmD7BQzMDAqH7SSkBSfdTwnkM03CDAT3e9UwesSAogA9MQYwkWUGHR6do5+jscFtyW5P4wPoDZ+xArsvaTfaMLGnvM4Wq/PkRTKLYsG+3gEfbCyQh4ww8w3dZCaNeO7p7jY0Rbcyd3IhRjni/MSYkx0L+Cps+KP9//c0Q+DvZPReDVLIbM6YSoueWzHp103x1uLP57JmZ7L6OhzNv+4jao+Z/y//5P2V2Lt3F8lNPMiZTQd7x4AizSJPZKjnH07C8q9erS0PRGfo+COAojN8/HUCyyNL1prvfU+DfaaM680w4w7lBzdPFNBdzXGt8DvX6ZJoQ7xDME4VNoRiQ87Il3Q75z0c8LO6nZ+UignH5pTI3FSd1moYaXCzrc0MRQygmi0HhkRTzg6Fen8k81efkj28eUFeGKLqMuxbwpJx0nTPegD8/VvjvYoWnaZPUt7Fj2v5eJFZv3BdkFqo9B0jzAIL0qhQOBlmsFF+s1Os5Txv6BvqG0DPA6MUiq+w9UzQAEF62F1czMCDM+YV7zD6v8d8bGOgiisC8CgoV7hiBv4h4TxeB1KiNEd4pDfIUorrZZ7dMlLBoXMLZ9ieWzfAsSz4HYH1tGR1oPCinQezC2ELuOE9EC3nssgnkmIbSpU1MRbSIYI6HCSZTBf0X5f5DekqEzgLgFukeCkZSKcq/RHhguJynRg4lg0kXfPF1UyOJkqsvkZqpUUWp0L41Lamx8Z9SmVgbd5BKYAFodFnCUOYForI0xTSvvDz59TMsUfAsskTBg6XCz+HrkMqpyxQ8CkuVj2CB30MUdUMSpzvNtb6MGxDS82WkZU0mUFKsL/VNXP78D1pcy4Djz5Ww1zt45i6wubhMYz59pNWiKPjzY5ylcNTH2Y+++JrDnG3vnz8/BlsKR3WwQzEDX3O85YFaYkYMkqYBPcYk5oMnKX0T3YGEnsdtQNIS0wkhQdou5RyblMJWLsUjcf9RsZGyuLtJ3Fz5SGO8S6ntFQI74ARHuGkic1///DOZbYLtcPQUm5L2eH6RIOzzxqD1GqW0jjZQHCnSndYlYfMd48BRUHBmRAdrcV9G0vG/o4lunjTjz/0FRoscp8LVTbu3ak+xJFHzD5A8GG6JNrU8nTepW9faFOu9VPBB59QgwsOooJ6OfQ7M/bae3MkkPt/USSRFJHZJVXZ8ScFG9ws8gSBuF/zn6sr51ZlOYK46ll2/usrxX/oqjcEGp0km8zKKj/JmV/hJ2/wiebiyAH1cUeVlJdIvZiIulMxFfBTnnHqSlzmAw/MVJ/MyPccRmN9SOHiJ1JTXCv5klLwSUYHXNHb6haUuDciJqFr969XVRywbruYQDorXmcKjfqUpPBmp4N8rJaorgpqUYQDmaB6ezHu87P4fbDhOzZF+p4/ml88ZhgGebEMBz3LoQXKnspRdv6LVsXbf1yfuENXQKmTERSO0OnL8XCKlUqwpmPOi2XKrv+OiVyyLTa1ezyVVE7IogcGWOY1S+MlA+AxFF1hul5a4SXF5VVhc06HNn95JfL6zvdBvsfrgKSAQrCQ1GJdntki2PkDi+cZo5OAHFYJCNio+4vyYZjQfFSux9LRUj1mn/de+AjqNuli+RQ/WMNJ2hpbtrm775NuQUBhkZbSgSGhcBP4RqbZ8os0h7OZIPJQBqZA0EmaRqvtj+RH28HzP8i1jPbkAHE7N24gQhJfzCEJUkJC4lNkpBY/ihJ1P5c+gWfnJmQWf0Fe1LMICKGpLSD0S+jX1QdAsPDnhQHq9XhUOhjeKudVVkjEO+afDG3A6fAuiPviT80+Jb1H5PqcG971YL0ugNLACuRT6r01qxWLqo5FhJBZZcPOd5kn7+LSeD+YiG+km11VqRaQV0VWufOWTlMe+1oqVIi46cIf475VV9qf2Ef/xiZz9VMuRLz4qivl3ptCkqIt5yq351JQe6e0qxtrFVEY03pjPpDsyX/BEwZrngmAXRQv5ObbKNMXWnVpgbypYFhSlHOQVD0wt0Cu+vnLgXDyI5ZM5Mc+nMtD01J9qoBYhsWrwWkzrgbXhW5kHoCcl+j/EfXuIXkvceebPokbHfDbD/NbHAqd94PlhbWS2Njhp/9pWxkLKKOiiPC1rovIZUC0bc6uW/1v6Il8Afuh7QCJy7OCHuhdfH/3Qy/7XVai0+t+nfzWbgjKniqOaOk98FCRX9vVV/WBD9lx94UdhvH9oZeyBkQSm+AbbYLC89dwRYmEYMjWApqFl8upwJ+OS/x2s5fHZ3RRTr6a3sfDCLSZAgSSsOlq1IH8u+Qf+ZbrGPx04L3m4s7AVnz0jSjy8BdeRJeQASoC+6MjYluXC5uKCYPAYLgFK9gRFyfCWoMh4uYWQUUTqZzQTYWI11qAXilXJLi8ZAyOUZxcTlL36xgoln7dkbgJaeKBfA8obZK1cbGItW9guoGSl5hPOqCaoaF+hZTGb2pU1Eb34zKGACb66nw3nUDsUNKgVNdfdD5VIoK03Vn8Bvagm3OFT9F9X/3e1pa/f8+Xbh4SfCDeVk647COCZRfLMKbmyn8GG5+n94EUkiDv0GmY6yXQaC6oz0WYmRDg7pdPWyQFevDdokt7lyhtliULo+PWlSV6QJrYbvXf1Lxbdl3CBbLZTr4rdyTjvVWZomBGyzc5s5+bh+TE3Ex86N63JN52aeFT/p2dmhvQDir15kokZ4IIs83K+RAfw/JidiQ89Qf+t104+vP/DczRr1gjFDj3BNI2yQ0b9FgyJoIKL33z7eZp5el0/oQV9vbgJTen6bTVeGOq/1qT9FpEr/lFYMUIlKiOyH738viJPko0H3P+n6N9XdC7ApF1UwvIMq0rspzAa6lczzgEcnq90Dv+bn5dPTwKQKQfAIsdklhAnh0cN3F6RILlciW44Ejcfj4jz9yevyAZlzO7kVa4I2VyRsLHoX2/Oj/P9XL/KVa+EI87ktkS/GGtTOM33JGFm8HwtqZdI8DwQ/Knk+pxHtBe6RDIjqgrHHCOKjIq+mQA3edxTxnrOW5LmQjQ9FRudaqnXQSXkmBoZ3TKDwv4NZudiS3Zi8tQUkgVugVJtb/6hTevx1LG/eq+ztDlfz7neAE3Oj/SPLEE/sgTFIyEo8oR/k4w8rhbsW1pf7294UfZfAokR", 16000); - memcpy_s(_servicemanager + 16000, 16404, "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", 16000); - memcpy_s(_servicemanager + 32000, 404, "DRKUBqoziLwr6gxUaUgDHeNMXRi0ZfZYcEhQy7H6+kpYLKTRgdGPM2IPjtSzY90kW5DAWRgxds49MjuiU5g/8r6kcbZ8KqkkFGPF8QrAedToh6gbaivQxdA3DgRGsdPehSgmcSAVpQJlTiAbGb5bYzSKI1mEsJIy/t0TshKY4Dlh0QqZamx1+Zgyg0O3W8hnc0whb2Z/EtAgDZcmU2dYyK92f1uHSgHjXCggXn/gr4kr/ih6t3iIADgDXPM+kn8lBfq6q/WGOghAyAQhKeFSK3g9sJTPecaUEacYws/XSjYjA0WUBo9ngluvhFlhAfXa3BRsemLW0/sMccsTy3Yd/9DxATUFN8MlSsxGBMVCn4VKMy+zQgI4pleFYGOr86jDjkHiBsSfmwTf/w+swQT3", 404); + char *_servicemanager = ILibMemory_Allocate(32693, 0, NULL, NULL); + memcpy_s(_servicemanager + 0, 32692, "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", 16000); + memcpy_s(_servicemanager + 16000, 16692, "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", 16000); + memcpy_s(_servicemanager + 32000, 692, "HEkK+OBzsUlMwQeQ2wxVFs6mjawBvZxtJVTmi+f2d3R3W3dcw6TORP5aeOeU9o92d9r7LSzfAll09q3BALzGtAmnVCqRHcZQU+ByDbd+FeajLNhstzuNrf3W9kq44+GWPW7qjXTNnE4aZp/K2FR0gvkmjT5R2GDZsR++xJqA4fKbj94+zZfHCHKxyJLkrU3gDiVEMyzNwEcs+0COrM/wIulgGnpNynuG0BUGRxLMoI3Ah7L3HiATqDC/iBUA52JzRcLD+B3UzOVWSMFPkQFkhCc9CPc9rv8eDRKUBqoziLwr6gxUaUgDHeNMXRi0ZfZYcEhQy7H6+kpYLKTRgdGPM2IPjtSzY90kW5DAWRgxds49MjuiU5g/8r6kcbZ8KqkkFGPF8QrAedToh6gbaivQxdA3DgRGsdPehSgmcSAVpQJlTiAbGb5bYzSKI1mEsJIy/t0TshKY4Dlh0QqZamx1+Zgyg0O3W8hnc0whb2Z/EtAgDZcmU2dYyK92f1uHSgHjXCggXn/gr4kr/ih6t3iIADgDXPM+kn8lBfq6q/WGOghAyAQhKeFSK3g9sJTPecaUEacYws/XSjYjA0WUBo9ngluvhFlhAfXa3BRsemLW0/sMccsTy3Yd/9DxATUFN8MlSsxGBMVCn4VKMy+zQgI4pleFYGOr86jDjkHiBsSfmwTf/w9vlGEa", 692); ILibDuktape_AddCompressedModule(ctx, "service-manager", _servicemanager); free(_servicemanager); diff --git a/modules/service-manager.js b/modules/service-manager.js index 3a419a4..cd07e25 100644 --- a/modules/service-manager.js +++ b/modules/service-manager.js @@ -1553,17 +1553,27 @@ function serviceManager() ret.stop.platform = platform; ret.restart = function restart() { - var child = require('child_process').execFile('/bin/sh', ['sh'], this.OpenRC ? { type: require('child_process').SpawnTypes.TERM } : null); - child.stdout.on('data', function (chunk) { }); - if (restart.platform == 'upstart') + if (this.isMe() && this.OpenRC) { - child.stdin.write('initctl restart ' + this.name + '\nexit\n'); + // On OpenRC platforms, we cannot restart our own service using rc-service, so we must use execv + var args = this.parameters(); + args.unshift(process.execPath); + require('child_process')._execve(process.execPath, args); } else { - child.stdin.write('service ' + this.name + ' restart\nexit\n'); + var child = require('child_process').execFile('/bin/sh', ['sh'], this.OpenRC ? { type: require('child_process').SpawnTypes.TERM } : null); + child.stdout.on('data', function (chunk) { }); + if (restart.platform == 'upstart') + { + child.stdin.write('initctl restart ' + this.name + '\nexit\n'); + } + else + { + child.stdin.write('service ' + this.name + ' restart\nexit\n'); + } + child.waitExit(); } - child.waitExit(); }; ret.restart.platform = platform; ret.status = function status() @@ -1607,6 +1617,17 @@ function serviceManager() child.waitExit(); return (parseInt(child.stdout.str.trim())); } + ret.parameters = function() + { + var child = require('child_process').execFile('/bin/sh', ['sh']); + child.stdout.str = ''; child.stdout.on('data', function (c) { this.str += c.toString(); }); + child.stderr.on('data', function () { }); + child.stdin.write('cat ' + this.conf + ' | grep "^\\s*command_args=" | awk \'NR==1{ gsub(/^\\s*command_args=/,"",$0); print $0; }\'\nexit\n'); + child.waitExit(); + var val = JSON.parse(child.stdout.str.trim()); + val = val.match(/(?:[^\s"]+|"[^"]*")+/g); + return (val); + } } ret.status.platform = platform; } diff --git a/modules/util-descriptors.js b/modules/util-descriptors.js index 40f5922..32fb895 100644 --- a/modules/util-descriptors.js +++ b/modules/util-descriptors.js @@ -90,43 +90,71 @@ function getOpenDescriptors() return ([]); } } -function closeDescriptors(fdArray, libc) +function closeDescriptors(fdArray) { var fd = null; - if (libc == null) - { - var libs = require('monitor-info').getLibInfo('libc'); - while (libs.length > 0) - { - try - { - libc = require('_GenericMarshal').CreateNativeProxy(libs.shift().path); - libc.CreateMethod('close'); - break; - } - catch (e) - { - libc = null; - } - } - if (libc == null) { throw ('cannot find libc'); } - } + if (this.libc == null) { throw ('cannot find libc'); } while (fdArray.length > 0) { fd = fdArray.pop(); if (fd > 2) { - libc.close(fd); + this.libc.close(fd); } } } +function _execv(exePath, argarr) +{ + if (this.libc == null) + { + throw ('cannot find libc'); + } + var i; + var path = require('_GenericMarshal').CreateVariable(exePath); + var args = require('_GenericMarshal').CreateVariable((1 + argarr.length) * require('_GenericMarshal').PointerSize); + for (i = 0; i < argarr.length; ++i) + { + var arg = require('_GenericMarshal').CreateVariable(argarr[i]); + arg.pointerBuffer().copy(args.toBuffer(), i * require('_GenericMarshal').PointerSize); + } + + var fds = this.getOpenDescriptors(); + this.closeDescriptors(fds); + + this.libc.execv(path, args); + throw('exec error'); +} + +function getLibc() +{ + var libs = require('monitor-info').getLibInfo('libc'); + var libc = null; + + while (libs.length > 0) + { + try + { + libc = require('_GenericMarshal').CreateNativeProxy(libs.pop().path); + libc.CreateMethod('execv'); + libc.CreateMethod('close'); + break; + } + catch (e) + { + libc = null; + continue; + } + } + + return (libc); +} switch (process.platform) { case 'linux': case 'freebsd': - module.exports = { getOpenDescriptors: getOpenDescriptors, closeDescriptors: closeDescriptors }; + module.exports = { getOpenDescriptors: getOpenDescriptors, closeDescriptors: closeDescriptors, _execv: _execv, libc: getLibc() }; break; default: module.exports = { getOpenDescriptors: invalid, closeDescriptors: invalid };