var vip = "cursor";
"use strict";
function _0x56bd(_0x5c6adf, _0x2aec85) {
  const _0x4ff48f = _0x4ff4();
  _0x56bd = function (_0x56bd90, _0x412597) {
    _0x56bd90 = _0x56bd90 - 263;
    let _0x4776f4 = _0x4ff48f[_0x56bd90];
    if (_0x56bd.ZJZefS === undefined) {
      function _0x46e223(_0x4ddeef) {
        let _0x34ef1e = "";
        let _0x4ea471 = "";
        let _0x12b399 = 0;
        let _0x40e8b7;
        let _0x5a3ef0;
        for (let _0x2feb42 = 0; _0x5a3ef0 = _0x4ddeef.charAt(_0x2feb42++); ~_0x5a3ef0 && (_0x40e8b7 = _0x12b399 % 4 ? _0x40e8b7 * 64 + _0x5a3ef0 : _0x5a3ef0, _0x12b399++ % 4) ? _0x34ef1e += String.fromCharCode(_0x40e8b7 >> (_0x12b399 * -2 & 6) & 255) : 0) {
          _0x5a3ef0 = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(_0x5a3ef0);
        }
        let _0x370a5 = 0;
        for (let _0x201ea2 = _0x34ef1e.length; _0x370a5 < _0x201ea2; _0x370a5++) {
          _0x4ea471 += "%" + ("00" + _0x34ef1e.charCodeAt(_0x370a5).toString(16)).slice(-2);
        }
        return decodeURIComponent(_0x4ea471);
      }
      const _0x4736c1 = function (_0x343f73, _0x40717f) {
        let _0x5a8ee0 = [];
        let _0x67147f = 0;
        let _0x11f2b9;
        let _0x3ddb74 = "";
        _0x343f73 = _0x46e223(_0x343f73);
        let _0x3e5510;
        for (_0x3e5510 = 0; _0x3e5510 < 256; _0x3e5510++) {
          _0x5a8ee0[_0x3e5510] = _0x3e5510;
        }
        for (_0x3e5510 = 0; _0x3e5510 < 256; _0x3e5510++) {
          _0x67147f = (_0x67147f + _0x5a8ee0[_0x3e5510] + _0x40717f.charCodeAt(_0x3e5510 % _0x40717f.length)) % 256;
          _0x11f2b9 = _0x5a8ee0[_0x3e5510];
          _0x5a8ee0[_0x3e5510] = _0x5a8ee0[_0x67147f];
          _0x5a8ee0[_0x67147f] = _0x11f2b9;
        }
        _0x3e5510 = 0;
        _0x67147f = 0;
        for (let _0xf4f8d = 0; _0xf4f8d < _0x343f73.length; _0xf4f8d++) {
          _0x3e5510 = (_0x3e5510 + 1) % 256;
          _0x67147f = (_0x67147f + _0x5a8ee0[_0x3e5510]) % 256;
          _0x11f2b9 = _0x5a8ee0[_0x3e5510];
          _0x5a8ee0[_0x3e5510] = _0x5a8ee0[_0x67147f];
          _0x5a8ee0[_0x67147f] = _0x11f2b9;
          _0x3ddb74 += String.fromCharCode(_0x343f73.charCodeAt(_0xf4f8d) ^ _0x5a8ee0[(_0x5a8ee0[_0x3e5510] + _0x5a8ee0[_0x67147f]) % 256]);
        }
        return _0x3ddb74;
      };
      _0x56bd.CwZZIb = _0x4736c1;
      _0x5c6adf = arguments;
      _0x56bd.ZJZefS = true;
    }
    const _0x40b8b2 = _0x4ff48f[0];
    const _0x5a5850 = _0x56bd90 + _0x40b8b2;
    const _0x1fb5f1 = _0x5c6adf[_0x5a5850];
    if (!_0x1fb5f1) {
      if (_0x56bd.AZcNUm === undefined) {
        _0x56bd.AZcNUm = true;
      }
      _0x4776f4 = _0x56bd.CwZZIb(_0x4776f4, _0x412597);
      _0x5c6adf[_0x5a5850] = _0x4776f4;
    } else {
      _0x4776f4 = _0x1fb5f1;
    }
    return _0x4776f4;
  };
  return _0x56bd(_0x5c6adf, _0x2aec85);
}
function _0x4ff4() {
  const _0x599248 = function () {
    return [vip, "lcJurhsyyoYrjMKeLFMLOtOHwSRWUyPP==", "xCosW60VWPJcO1tdU8k/W6LSrmokW5aXfCoIkCooW44", "W7tcRx4iWOa", "i8oeDSoLzSknntVcPCkkDW", "W4/cP8kCydW", "xgdcGmkJW7m", "A8k7tq", "nmoApbnM", "xmkLW4PSCxpcOtJcHmo8", "W4CuW4lcOSoZWQzNW6pcPtVdQmkD", "vb5QW7TYlq5Po8kxWQPumSoMvSkaWR0XWR7cO8oJ", "puXhmSoDg8kav8kPECoChqtdLIat", "W5BcI38hWOO", "kvDbjmoFh8kmuCkTymoy", "WPtdNNzVW4y", "W4q9WQ5NWQXJeSofW7NcNmkHrbW9W5vg", "WQdcQc9UW6ZdKmo7hSohqCkdiSkYWPbwfmo3wSospILT", "W6P9W73dNmo/", "W4xcK2eRWRy", "lIr2WRtdGW", "DtZdImomWRT+W7zspKThWQruW6yIW69XxCoDk8ktWRa", "WOdcGhZcKSkK", "WRJdGeZdNrC", "5Rgq5P6l5yEY5ywS5PY26zQy", "gSk5jCoIWQa", "lSk1WPv8WRnqW5aLW5VcKeKgWO3dV2/cGvtdQua", "gsHmWQtdGmkYhLm", "c3uXW7/cHG", "j8kOj8ouWPa", "W7ORW4TgWRS", "WP/dHZjHna", "5O2z5P+N56cb5PEJ5PEh", "hSoWCCoSqa", "wg3cHCkbW5O", "vuFcUSk8W54", "W48fh8o8W70", "5O2d5P2Y56o45PEh5Ps7", "hCocbJPWW7xdSa", "xdFdSuur", "ymkXxG", "b8opqmkcWRtdQG", "aZKUW5NcNh7dSmoCW5VdQSotW6rHW77dI8oq", "W4ldSv7cMa", "W5O5WR8", "pCkacSoTdW", "pKlcOH19", "5RgY5yAa54kXFSo7WQBLRjlMLjJMGOlMOQhMNltNUOlOVjS", "c3ibW4lcPW", "WRJdJKNdIr1lBf3cHSo8W5NcGNCdWRuU", "W47cSv4uWQC", "WRlcJg/cOqe", "mSoaC8oevW", "qCooW5zh", "s8oxW7S9WOpcThhdUSkXWQbSB8ooW5G3bCovcSoBW5K", "WPNcIIyLD8oYBmoHfCo+WOG", "WOxcGfxcOahdGqxdPSoUWOfMW7/dK8kWq8ozW5xdSSo9sKqaW4q", "WR3dG8o+W6RcV3xdLG", "jSoNDmk5WPi", "xSkmW7T1xa", "fCo5iGrR", "W65YW6xdOmov", "qvDTq8kf", "d8obvq", "WQFdSSk/gSkK", "WOldGM5uW4O", "k8kjlmorWRy", "j2ygW4JcGh/dUmoBW5tdPmkwW49TW7ZdMG", "W7lcPSkltrtdMx8", "z2mCcdS", "y01CF8km", "sCo2W495W7W", "fc9DWQBdLmk7hG", "W53cTL4IWOC", "WPFdKSkdnSkIW4hcHcTh", "6i+05y6t55sQ6ysy5AAA6lsM", "W7yiWP9oWOfsia", "osKxuxe", "W5iPfSo6W54bW7uCW78", "W5iDW5TSWQKsrSkWW4NdPW", "hYG2uvnLW4S/pruTW7SvWOGMWRpcStRcOXhdTCofW4ecWRldVCoPW4TuWPGS", "5O6Z5y2t5AsX6lsM", "cqmFWQvT", "WQxcQf3cS8kU", "mCkEpmoxbq", "jHemWR9zx8oPWOXeFYm95yIW5BMY5AAh5lQK5PER5lMD", "BCooW6uUWRm", "WQ/cU0JcLmky", "6k605ysn5R+c5RES5OYJ5P2a56kN", "WP7dTX8", "WRtcQ8khW5RcReWMwxK", "xmotW5zDW6mlkSoVW7yRWOikWQ0", "afmNiJL2n8kIgG0ljmo7iCk0ytC4W7ZdT8oUpSotW6/cUMlcL8kTBWBcLCk3WOVdKr0NWRO", "xYLFWRZcMSk1dLlcS8kyWPWuCLWHDvzpp8oMWOyxtSkdWPm7pgqCWQnItsJcVmoYWOThW5C", "W401gSo8W5i", "WO7dL2HSW7GzWRj6B8kWWQyuWOZdRdJcICo+", "WRVcOfJcQ8k5", "h2aDW6tcNNddPColW6ZdOSkbW5fHW73dGmoq", "b8oDA8o0Amkt", "kL5ij8olh8kR", "5RIw55go5AAC6lsbvSoN", "W7NdOexcIMHZWRtdNJymsCky", "CMyNkWnQlCoaW4STW4Dk6AEV5QYn5zkm55wO77YI5lUk5AAF5lQE5Og25AsQ5BQD5ywR55MdWOLZwIFdP2NcM8ksW63cKqZMLydKU4K", "C3nIBCkm", "dYT1WP7dOa", "fCoiW4hdVSkHW4ayWO9oiq", "W6vqW5ddGmok", "WP/cLJK", "W78lW59MWQeOxmk6WP3cR8kXWOZcTa", "hSkUdmo6", "W7hcJCkkqIy", "bmklW5yzWQXI", "ALaGkH93", "pCochZ91", "WRldTSoVWPpdLa", "yCkXW5Loza", "W6JcV8kgxa/dVKVcVN1EDSkQW75+wW", "5P+B5OU85yMB", "W7pdMwxcKxO", "W6e3W716WOW", "qvFcMmkDW6BcVSk2Ar1eWPJdPCoHWP/cS8o7CvldVmk1lM50W43LIyZMLjdLP53OTQaA"].concat(function () {
      return ["jHemWR9zx8oPWOXeFYm9FmofW4KAtoImNowmIoI1P+w+GUwLMoI1TG", "WORcQ1FcOb8", "WP3dRqW", "Dmk9tCoiW6O1omkkFWVdUbG", "WO/cUCkYW6BcUW", "WQfxWR5EkW", "zHD7", "WP9yWO1On0hcMvDvWRJdJu0", "WPxcQ1dcQCkPk8owWP5Xz8oxECkZ", "wxxcQmkeW5W", "WQBdICopWR7dQ0TIW4PuW6tdTMK", "yNrlAW", "B8opW4K1WRK", "DK7cQSkOW5K", "W7BdOK3cJwu", "iJeyWQ5cvCo/WP9dyG1YwCoyW6eTba", "DLu9kGrioSoJW4OJW70p", "WQjeW5CWWR5Rhq", "jSk6lmobcG", "W64BW4XXWQiZqSkJW5lcRmk8W4NdRW", "udv+W6DLlHLTjSkFWPay5lYO55AD55sB5OUw6yAD57YZ55MFW7ddK8otBSoWW5JcQXFOTkZLV7K2", "W78lW5jTWQWLzCk4W5pdPSk4W5S", "tSopW4K", "W7dcIMeG", "q8ogrSkbWQ3dT2LsthdcMCoSvmoHhSkQWRdcLCoVkmo5W5jxma", "5Qo55RAw54Iv5OcE5As06lsL", "ngyEW6ZcG3tdO8oCW4pcQCkxW4D+W5BdI8ovFSk6aSkGCa", "WPxcS17cTmk5cSowWR51B8oeFW", "umoGWOVcGe3cI8kTWQLWBmoDcSkXbmoMCr8bgmo3tW", "WPtdJ8kyma", "WO7dH29UW782WQ9RumkZWR0eWOtdTZ/cLq", "oCkLWOTQWRfhW6uIW5BdLGSeWO/dTg7cILxdS00btZfvW5JcI8kdoW", "WOxdTColW77cKq", "WRJdKr9+lq", "WQ3cSCkmW4C", "W5aFW57cVSoVWQDQ", "FYrHW4zh", "WRJdK8oUW6RcOMJdKCk/Aq", "CxHZxmkpdYFdK8kwe8oXW6RMIAZLIy9jW57dHmo7tCo/WR7cNoElIUADP0S", "5BEy5zcu55sU", "lSohCmoP", "W705W5NcV8o1WQD2W5BcUJhdM8oj5Rg+5ys/6koJ5PQB5PwD5AA/6ls577YX6z2j6kAr566O55k95zod5PYd6zQh776n77+h5BAm6lw86l2z", "W7NcQ2WcWRa", "W7zPW4RdUCoi", "l8k+WPvWWRbEW7CUW4ZdNq", "kSofW4ldUSkx", "5O2L5yYJ5AsB6lAd", "W4xcLM0GWQxdLCoQdCorba", "WQldJg90W5WJWRX6C8kLWO0wWP8", "W77cOmkQBsi", "kSkMWQLxWQ4", "WOtdQCoDWQ7dIa", "cCoiW47dU8k6W48UWOu", "nmoDASoV", "gJOwmWO", "iSoOaszIW7FdPY5lFgpcI+MNM+ASN+wsP+ExTE+8HEs5GEwNLos6GEAdREwMQ+w6OowhOoEyQcSWWQPWz8oqWQldVJfyW6RMLPZKUQa", "fCokDmkSWO0", "WO1jWOTahW", "WQddNSohWRC", "gxJcVqv3", "WRf3WRzlfG", "cKdcPsjp", "WQxdLu1iW7u", "CMnuxmkl", "e8o/W4VdMSkm", "ymoLWPxcMLy", "W4rSW5xdGCo1", "WPtcIsaP", "hbKubIrvnSk+hH8WeG", "WRZcHxhcSJC", "rI9oWRCpWOlcQ8oKWRWOW58", "wCoXWRVcUue", "W47cTNWAWPu", "44cr6k2I5yAX5A2/5ywk5yAk6zsqW7TCt8oghmkPjSk05yAt6k68", "gSo6FmksWOW", "qCkUdmoGW6PYWP0gWQi6gCk8a8kNWR7dNCoe", "F8o3W48yWRBcHwu", "DWBdMfW+", "BNxcOmkkW40", "zmk1xSofW50", "WQXFWOfMbG", "x8ojW4HfW68", "W70BW41Q", "D8kHwCoo", "y3lcNCkDW48", "WOVdNmobWQNdMw9RW5X0W7ZdV28", "oqG+WRXU", "WR7dMhRdJGG", "nCoeW77dVCkj", "W5yTW4TWWR4UqmkbW4/dRCkkWOZKV6NNLO9WW7TyWRGmWRRcOMj0bmoNfCkc6iYw5y6z54Ul5PYvma", "pmoCv8kuWRNdJdWbxglcQ8oKaSk/", "W6GRW67cO8oZ", "WPxdJSkqoSk0W7lcJs1begRcIhuqrCo9", "jWGpfa", "WPVdRqjN", "evnpkmoAh8k6ySkPymoUeqVdKIirimkIxmkiAGq8WRu", "WONdK8kvomkPW77cGW", "WPbYWOXvahXiv8o8zSk/k8okW5vMW43cIdLHxYDFwSo7CtzDWRpdPqjp", "W5RcQCkDubS", "FmkwW7vrtW", "W74deCo6W6CCW7GhW7r8", "W73cJSk8Fca", "WP7dSu5SW6C", "jauufZf0amk5daOY", "pSkhWOnlWQC", "WPNdKMBcGWFdNtldSCo9WOeVW4RdICk1sCoe", "W4iUeCoOW54w", "hSo8dc5i", "tNWQgau", "rmodW6PGW4K", "fCocESkXWR8", "h8k3WPfBWO4", "wu90r8ksbZZdPCkD", "g8oyDSo0C8kSaZZcT8kFDxG", "tSoqW40LWO4", "W4JcU8k6zc8", "xmoiW5eAWRq", "E8oTWQhcV1e", "p8kNdCox", "WRFdNCoitta", "mmoFpZT2"].concat(function () {
        return ["kCk1WO1TWRDBW4mKWOZdLfCiWOa", "6i2x5y2R5yAD5zcx5AEG6lAu", "WQ3cPKxcImk6kCoJWR9PFSogAmkVkLDRW7veW4hcVJaKWPWw", "WRtcJmk/W4FcVW", "WPrwWPXtjhXiBmoSBmkmAmo2W6PGW57cJb0YvJTt", "mmoACmoQ", "p8oseG5q", "WORdP3vXW7W4WQ9EDmk5WPjxWRNdTZBcGCo8WPpdNSk6W6JdMmkHWRxcRMZdGJdcPCoKtG", "WPHlWOD3m2dcLrvAWPJdM01u", "WQRcU8kwW5RcUvKQ", "WOBcRSkvW4xcSv0Uq3FcHNfLW5ZdKmorWOlcGWNdGW", "wXDjW71z", "CCoaWRtcKhS", "mG9/WQ/dUG", "yCoxW6XyW6C", "W73cGhW", "W7NcR8kdxH0", "iJOyWQnoxmo+WO5tyXTPzSoPW6mXbCofWRVdGwi", "W4ldSvJcJNvq", "wwhcN8kCW7RcOW", "fuhcGcv2", "uY9k", "WQpdHw5NW6a6WP93CSkZWRW", "WR3cKZS0ECoS", "W4xdV1RcGfPxWR3dIbyuqmkE", "W40DbCoeW6q", "nCkycSoGWRzUWOC3WQiWA8o/bCkHWQldGmoxW6RcPhZcU8oXWQu+tEAyPoAvKEwNP+I2Uhe", "smopW5HBW6a", "WQv5WO9HmG", "sSkOW4b8yhpcGq", "WOldISk9lCke", "5PUa5PE66ywZ57615AwF6lEe", "WRpcIJmwWP8", "eYGW", "dYOTvL9/W5KVkbbUW60sWOKBWQZcVXlcQa", "WOxdHCkylSkLW4lcTJfmga", "nIq6WRTc", "W4muW5O", "hmothsDLW6VdHGDxCa", "WRhdJmooAZG", "WOddO1rpW54", "w0a0kXv2n8oeW5yPW78e", "WO/dR8oBWQJdNK18W791W7ldHsPPWRfuk8kyW740W49oWROdWQGFW6/cR8kBw8kX", "nSkrdmoyWPy", "EafIW6f1ktLyoCkrWQrwpSoBva", "WQRdMfZdRrC", "WPldVCoDWQNdIq", "k3bjf8oN", "iZ4RteHYW7i+", "gdWWqW", "5PEZ5Owx5O+p5y+t5BAE5zoO55sU77276k645ysK56A455EL5zcF5ywl5PIz5O+J5OYQ5PYD56ge", "5P2g5zMI56oo6yAN572R5OIT5yQr776T", "ESotWP7cOLu", "saVdMfyFWQH0jZ0dzmoT5l2U55EUW43dL8oXFGysvgPyFKRdKehOJ5FLJB3NI7/MNAJcGW", "quS3idy", "h2StW6FcIN3dSSoPW5/dS8kWW5D6W6hdGCorrCkScCkhFCo/WQlcL8kqo00", "W5HpW6JdPCo2", "WQNdKCooycPL", "W705W5NcV8o1WQD2W5BcUJhdM8ojW7VdKSoOb8keW6b5uc0W5PAo5lMn5BwP5PQ05PwN", "nJfKW7RcKW", "nCkycSoGWRzUWOC3WQiWA8o/iCkNWQtdHSotWQ3cQt3cOSo2WRLWcmkIWPpcUCoVCq", "ChVcHmkb", "W7xdM2hcGwq", "WRVcLcSgwq", "W6FdM3H5W5VcISktWOhcQa", "rJPkWReg", "C8kzW4PyDq", "WPZdO8o9WO7dVN1dW65vW5BdNvHHWOzZgW", "WOlcVXqXWPC", "6l+35O6a5P2F5yU45zIy5As06lw6", "cSk4c8okfSo7W4BcM8kqW43cIce", "DuZcN8kiW5a", "cSoEmXLb", "W5xcOmkOrb0", "rCoaW5jm", "WR/cTHKdv8okFG", "w8oaW5XcW6CQjSkTW7KlWPqk", "n3eBW73cI1FdVSocW5/dLmkkW4XR", "p8obW4JdO8khW4q4WOjteSoHW7NcNG", "5OYd5lMs5BEY5ygF55AN", "xCk4W4v2A2xcOJpcHCoVf0nceq", "Bbn/W4zZiazrmCkdWR5Ri8our8kuWQm", "WPXRWObWiG", "F8oKWPBcV2y", "dCkZgSoXWQ5uWOygWRC6Dmk6emk6WR/dL8oLW7RcQcBcSSoQ", "uGLrWQim", "W6KpW4PJ", "WPRcNIqXqa", "u8kYW4PX", "W5iGWQz5WRr1mSopW57cKq", "kv5AbColaCkSsSk+rmoCaaldJa", "qmo5WORcI3O", "wSoMW5mMWOa", "WQxcPtW1zCoXtCofbSoLWRdcJEwmU+wtUgJcI0bqWR1wWQJcNIVdKrZdPW", "WPxcPftcS8kfm8oEWQffyConBSk+pwC", "lCkNeCoOlW", "h2StW6FcIN3dSSoPW5/dS8kGW4DPW7/dGSogzmkQnmkDDCoLWRdcTa", "W5e+WO1bWOK", "W7qFW5/cOSoZWRPNW6pcUW", "W6GCW4XTWR8", "W4TFW7BdQSol", "mSorsSofxW", "DKi3ltHQlmoKW4OsW7SEeq", "nH8ZuxC", "W6H1W5tdOmoJA2y", "WPtdVLfPW7O", "WQVdM8ox", "W4ldUvNcMh5sWRtdUdujt8kjW6a", "mdG9bJG", "WQBdOSoBW5VcSW", "qCknrmoqW7m", "aIniW6JdLmkYhWddOSk/WQv3twubvwvPc8ocWQD9C8k+WOP3pMOmWQDLxHhdKCoQWOfyW40XmgeOo8k6i0ibBCkgr8oBF8odjtHCW5KRWOawjs7cNhWTWPK7WPe4wCkfW4vLzctcIW", "WQ5FWO8", "W65/W7pdRCoDz24Nyrv8W5G", "tmonW5blW6CHemo3W7WkWPOdWQS", "Dmo+W5XBW6mSn8oMW5erWPuaWQFdKmkp", "maeuaGr3mSk+gq", "W5iXW5TXWOaUvSkKW5hdPW", "p8kOWPbQWQPgW7CUW4ZdNq", "lWWveIrW", "ehJcMJLm"].concat(function () {
          return ["bKP0cCo3", "W4WEW45gWQW1uW", "Fmk5W6X5sG", "W7ypW67cUCoK", "W4dcI8kAwH/dUwVcI2jqqSoK5yso5yw15PYq5z+R5Awh6lsOzG", "kgyk", "v8ojW7S5WO/cNKi", "WQtdJMT1W4y", "BSkwW4zyDq", "vb5QW7TYlq56mCkeWOXBnmoArSkpWQqiWQJcSCo3W4m", "5BEH56Ej55Afbc/cSNqeib4z6isN5yQ55PIY5PwD", "WOFdMmkf", "lCkYWO1DWQG", "zmoBWPpcV1q", "5l675PEXrmordCofW5FcM8od5PsR5lIz5Aw16lES77+c6kYh56oa5l2C5PYf56YF55g35zoM5PY66zU/", "WQ3cGJmwWOW", "WQNcJvVcVHNdLYBdSmovWOjLW6NdG8kTsCot", "WRLuWOPibMfzySo9", "WPpcHZK", "vsvlWPG7", "WP7cJCkiW6/cGG", "kINdHSoxW7vXW7WpieT3WQK", "lILaWRBdSW", "W6pcR1KFWOu", "DCkwq8oxW40", "rsRdSW", "WQ3cMJ03WPlcLSkBW4JdQW", "fCoGFCk2WRK", "EMjrzSkS", "W5a0WQbOWQfQmSocW5hcHSkU", "xvvHxCkP", "W5ePb8oH", "WPxcPftcS8kfkmoaWRL1xSocBSkZ", "jre8pYq", "l8ojfWfK", "WQdcRfJcQq", "WRddJLddOZ0", "muNcJsvT", "DmkJq8osW5yOf8k5yH/dOqK", "A0Xnsmk6", "rsvlWRG7", "5Rca5P2v5yET5yES5P+P6zIJ", "WRZdNK/dUr1xEKBcJSkNW47cM3mdWQGLrWVdTSkn", "WPpdUmobxqq", "WPBdOLxdQZS", "tgjsxCkv", "WQhcSXaTWOe", "F8orW5i/WRi", "wf5Hr8kpfcFdUSkJcCofWQ4", "WOpcSgNcGCky", "j8kTfmova8ovW4y", "WOpdPXHMamk6W7RcRIC", "sCoiW603WPxcTeRdQSk4W6LOx8ooW5aShSkioSoFW4DuW5FdVIlcP3aVW6ST", "dSoofXPP", "gwtcUq", "rwtcGSkCW6hcNmkHsHXkWQlcOa", "W54CWQXBWRq", "WPFdNmkdmW", "WRBdIg9HW647WO56z8kIWQO", "WQhcLIy0ySotwSoMb8oRWORdIa", "zCoKW6OUWOtcVLBdMCkIWQHuhoAXKUweTEIGQ+AxIEAXS3NOJi3LJB3OT5tLVllLPQVOTza", "WP3dLrHSgW", "sCo0W7jkW58", "WRhdHSojAG", "WOz3WPntcW", "bY9bW7VcHW", "rZ7dVW", "pZddJmopW6bLW4PyjfS", "uJCbWQGkaSkLW7nsDqGYrCo9W6W1", "dCkKhSoOaW", "fYrnWQddTa", "jCk0fmoxWOa", "WRNcNuJcObRdGcxdSCoZW4jKW6NdMq", "dSoofIj4W73dOG", "lmkrnSo1WO4", "l0i5W6BcNG", "wJTpWOWP", "fq8mgaa", "dZ8QWRreuW", "WRdcH1pcVq", "WQNcILVcLtK", "WPdcIZKpqq", "W6RdMglcJg8", "tSk0W417ANC", "fsHz", "pJqwWQH6", "W6rEW5ZdN8o0", "WQ5jWP5hn1lcNq", "WPRdNxhdVGG", "ud3dN1CdWRu", "sSovW7yX", "W7KsW43cO8oIWQrHW4/cPJtdO8kkW6ldOmoUdSkaW6j5sJO", "WPtdTK9fW5W", "WOtdMmkhgCk0W4FcJcThmLW", "idbWWQtdHhe", "FqiECmkmrmk8tSk1BCo2hW", "WQ/dH8o4W7G", "gwjNl8oS", "WOZdQCoRW7/cLa", "WQHEWPrkeN1EDa", "jGqAhdW", "W4tcQ8karHJdS2hcRW", "W5ivW7NcVCo2WQ12W4xcQs3dOW", "5RoV5PYY5yA35ysJ5P+96zIJ", "W4ldQL/cLu0", "WPjLrmk/WPHeW78zW6fGWQZdNa", "WOXwWOPM", "WOpdImkdlSk+W4pcPd1weXFcN2mdw8oSghG7sNXJWQG", "n8o9zSkAWOK", "tX3dK1ir", "oedcRsHP", "yCoaW609WPNcPwZdPSkJWRn6A8oiW5a3fCo2lCoiW4zsW4xdQrZcOxa", "WRZdLmoLW63cS1ZdKCk9A3JcLg7dJW", "WQhdNCosAt9GW7W", "W4u+mSofW7W", "W7axWOfnWRu", "WQJdMSokxZa", "q1JcQmkNW58", "cmohoH1y", "aInFWQtdLmk1hG", "5PYT5RYu5Rsr5OYU5P+256gb"].concat(function () {
            return ["xYBdMM0N", "W5GOW4PhWQq", "mmokq8o3yG", "W4mxW43cPmoQ", "iuONW7VcLW", "W7LIW7FdQG", "WRhcImkGW7dcVW", "jcLTWRxdIM/dTvaDW40m", "W7RcGCk6wHu", "W47dKCkEpSkWW53dIJTkgKRcIcKgxmo7gh8D", "w0aInrfMoG", "edvgWRldMG", "BJbeWPud", "hCokbIn4W7y", "W7LIW7VdUSoVFve7xa8", "i2lcRGrHuwVdOKFdKMVdMmkJWQ8bB8kYcHNcRSoOi8oohWJdOW", "pvHbiSoB", "i8ojW4pdO8kQW4u/WOu", "mYLJWQpdJwZdLeK", "W7m5b8oMW58bW78xW6S", "W4nfW6hdRmoVq20MrWb3W785WOtdU2ddLru", "stddO3m", "WQVcKM3cPrG", "W74AW5fWWQWMv8o/W47dP8kLW5RdV8oenCoGASo7j8k8WQHIhse", "WQf5WQfEaG", "FmknW6znsa", "sr3dT2qr", "W4pdOLJcLM4", "dSolDSoQxW", "E1nrDSkW", "WQfEWPbj", "WPhcHXS1Fq", "BcrYWR7cHgddK1ypW5yBWOKqWQC/W4ZcK8klcSooWOtcNJSzWPfWiI9lWROhW47cSq", "xYZdOMqpvsNcH8o5CwiFpCkFoMa", "EtRdIvmU", "WO/dG8oTW6RcJW", "W4lcQ8kMBJ8", "W4xdOLpcIwHr", "hdvTWQtdN07dG1CpW5GoW4e", "FGzVW7rIja", "W70pW5PrWRKGqmkL", "bcnNWPNdRa", "W5i1WQ5JWQW", "gJeRtu4", "WQldK2L3W6W/WOjIB8k7WQyd", "Eav9WPOIWQdcNSozWP0hW79A", "CupcU8kyW6y", "t0L0qCko", "lWCSqwG", "WRlcSmkjW4dcTLuCtNdcIG", "mSkodSoddq", "iJvY", "WRpdGmo/W4NcLq", "u8ocW6WVWPBcTKe", "kSoysSkSWQO", "WRpcKZ8TWP4", "WQdcU8kr", "oSoGymkaWPW", "[encoded data, 88628 characters]", "WQtcKIWXWPRcLCkB", "kSkXWP1kWQPuW5yJ", "W6mDW6dcP8o+", "W7/cHmk+yGa", "WO3dOfZdKd8", "W77cNmkCud4", "iL5aiCokgW", "WR7dG8ohWRq", "WOhdOfnzW6i", "FbL5W750javEpmoEWQLDjmoEr8koWQbZWRBcSCo5W4GYW6NdHa", "tY3dTxKU", "pZ0VWQfL", "WPZcOw/cIsy", "W6VcVCkCqa", "5Rgq5P6l5yEY5ywS5PY26zQy776v6kY85z2857Qs56U95OI96kcxfqtcSL3cJSovW4lcKqVdUJdcSMWUW4RdGLRdHSk2A8k/WRxcNSodW4nfECoTW6CLW4XTWRXxWPBcRSoVqXxcRmoRb8oYWOC", "lqiSWPrT", "aSoOW47dLCkm", "WQhdN8opWR3dIgfMW4PKW7BdIM9nWRzrkW", "W68zW6r7WRW", "h2StW6FcIN3dSSo8W5/dS8kbW5TlW73dGmonCSk6eW", "WQ3cGvtcTXRdHq", "jmo0f8kBWOH9DCo1saFdUG4YWOy9WR0QWRfVWPvyyGfZWRJdUCkXFhNcVSk+hrubEZxcHq", "psVdMfyFWQH0", "W70pW51PWQWMv8o/W5FdSCk4W4i", "xI3dRNS", "4P6itSo9D8k/mL3cO8kD54YT5Agu5RQP55kq5AYR5OMa776S5BE55RQD55gjW7u", "WRddGmogkMy", "WQRcUIC4WQ4", "ErnQW7fqkaDyb8kjWQnB", "W4nZW6hdMSo+B28UvX9HW7iYWOJdV3BdJqtdIW", "Dmk3rCocW5a", "rLjOw8ke", "uG9uWRGx", "jLOOW7VcRq", "f8opW4pcPmo9", "W4PUW73dG8ou", "wcvz", "fYPaWQRdLmk6kftcOCkdWOS", "D8oKWPtcMge", "BCoiW4HGW7q", "dCkUdCoHWQPZWRqsWQq3gCkTe8kZWR/dL8ofW6xcLt3cUSoNWQq", "W4uvW4JcQa", "WR7dKtXApG", "WQpcO8kAqGFdGLa", "W5akWODNWOK", "f8odW4/dOCkMW448", "W6JcP1KkWRC", "jX4Xue94W7GAoXjFWQJMIj/LI4PVWOdcOqxcTrpdPCka54U75P2DW6a", "nCkycSoGWRzUWOC3WQiWA8o/5B6D5O6I5Pw05B696kwv5PYD6i225y6e6ls+5BYg5AE76lw1", "FgibnYO", "CxHZxmkpdYFdK8kwe8oXW6ROJQxLJQNOVRlNQPBOTz7LVi3LPi/OTRxdTG", "W4hcPN08WRldQCoSpmoxdSkmD+A7MEEtL+wKLoI0KCoGlq", "mqL1WPddVa", "5ywk6A6a5Ro/5Bwu5B615zgV", "WRdcSCkxW4lcULSHvhy", "vmk8W4b3Bg7cLYJcJG", "qGfvWQ86", "wCoJW6OfWRq", "dJG3tuLLW6KVoG", "WQpcLdO6", "W7tdVL/cNuS", "W6RcSSk9qYS"].concat(function () {
              return ["5Ro75P2b5ys85yEz5P+x6zMg", "W6ZcP8kDqW7dS3FcUhG", "sa/dIuCF", "WQXyWQTOhW", "W6G7W79wWR8", "laC0gZXXpCkOpGO2a8o3iCkdBdTLWQNdJG", "W6S4W7/cH8oO", "urDBW75v", "bCoLW6ddHSk/", "iY0RuuHAW685oHXLW60", "zSk6W4zRrNxcGdlcHCoTo19fhb4PWR44W5VdHhe", "WQDEWP4", "wsTkWRGg", "WQ7dSGr6aCkfW7ZcUcC7Dt8", "W7pcJuC+WQK", "W4FcLmoFcCkWW4pcGI1wk1NcMw5h", "ASkTACoUW7K", "jsaHWQ5T", "WRJcOL/cO8kIkSoXWRrYA8oq", "ntb9WOBdMq", "amoBqmkgWRldTG", "WQxdU1NdPXK", "DhhcMCkyW7RcO8kVAHTkWRhcSmof", "WOZdPmk1l8ki", "bcndWQ3dMmkZd1lcUCozWP1kBxa2", "umoIW4y0WRy", "bmodW4VdVSkHW44BWOrpmSoLW7/cGMq", "W5NcG8k/uIe", "W4q2mSoaW4K", "WRBdGxrmW7G5WO18ACkMWQOfWPNdOr/cH8o9WPpcJq", "WOzkWOr6bG", "W4VcU8kcqqy", "WOxdJ8kdmSkJ", "W419W5BdQmom", "W7hcP8kgrG", "B01ry8kq", "W5y+iCoOW78", "pmojv8kbWORdQYezsNtcG8oUbSkkx8k4WRFcUSoOFmoKW4m", "DtFdPNG4tIxcOmoTCeuina", "zYddHfDcWQnNaY4owmk+DmoOWORdPmowfZeyxxXqfJpcSa", "W7O4W6DGWR0", "imkdcCoZfq", "FrRdO3um", "WRj4W7pdQSoWE3i", "cJmlWQm", "WQFdMLBdPcS", "EZPAW6v4", "gILgWQy", "nqDnWQtdVa", "ldSDiqC", "sfuI", "vb5QW7TYlq56mCkeWP1komonsSkYWQq8WQ/cPCoJ", "W6WBWRP4WRnPe8oMW4lcNCkwaqW9W59qW6nasKpcMCoUjxxdHEw0OUAzQUAvIG", "W43dHNlcI3K", "be7cGtXQ", "pmo7mqzC", "WRxdRNDjW6q", "bwpcHdT1", "kCoBFmolqW", "uSkFqmohW6u", "ymoWWPJcNK7cNmkoWQHnx8ohg8kPjSoXEG", "i8kDlmo6ea", "r1PLrSkvdJddQSka", "et0E", "WQxcIsWWWOK", "W7zDW7tdRSoE", "WORcOtaoWRG", "W6yreCofW70", "W4SZhCoN", "lYvhWQ3dLSk9mK7cQSksWO1pzv0", "WPlcIs4", "W7GJW7vPWQK", "lK8WW6VcQa", "A8onWOVcLKq", "W6ebW5K", "smowWOZcGvhcLSkpWOTTvCoPt+AWRUwhMoIJVd4Kcr/dULqcW79uqCkaWORdI+w2TEAAIUAuPG", "WRxcU8keW43cNLCJuK3cKheM", "m2SDW77cUN7dTSoDW44", "WPxcOf7cQCk5iSolWRK", "h8kke8okkq", "WQDbWQnwjW", "WPpcHYOVF8oWwSoCea", "nSonASoOCSktbsRcTW", "W7f/W6hdUSo6AwC", "rantWPem", "daxdHSoRW4e", "W5i0g8o+W74CW70bW6W", "W4miW57cOSo0", "5PQu5Psw6yEG57+55AE+6lAo", "rID/WRy0", "WOf0WQD3dG", "W4tcU8khrXVdMhBcR3LzDSkNW7zKvCk0gcv1WOjsW4BdUIyuheVcN8o6wmoMWRbEdgRdQmoVbfVcKSkisfLHW7TcW6/cVHXu", "lCkIWPbTWRTZW407W4FdRv0jWO0", "EmoXW7ziW4u", "cSojW4tdUq", "56E955w16iAU5yQk5PUi5PAN5AA76lwVC10", "h2ykW73cI3/dPmohW5xdQCkMW5bH", "W6GRWQDLWRDidSocW5NcLmkIqH49W5LnW6WpbHBdNmk3iYVdJ8o/W6pcPwhcIZ/cOCo2s3i8uSouta7cRmkjE3FcOSktWOVdPfxdUa", "oKLhkW", "WRhcU8kxW5RcSveH", "WRtcP8kFxepdLwZcQwnqBCoRW6v1t8k0a38/WPWoW4pdSMzoheBcOCoQw8oOWQb1txtdSSoMaW", "WRBcNIWSWPlcL8kq", "kIWguv4", "W4uHW7nh", "WQhcHseIDCo1DSo7hSoVWO7dMvVcTW", "Emo2WRdcLuW", "xGZdRuew", "pIhdL8osW7v7W7W", "oKxcRd1G", "WQZdG8o4W5JcPNpdRCkJyG", "iIiwWR5EFCo+WQ9fCrL4", "W6ipW4tcV8oN", "ft5gWRVdGCkLkfNcRSku", "W6OlW4PdWR0Oz8kJW5e", "5P+k5O2T5l2Q6lw75yYM6ycF562u", "tdJdGLCyWOPJbdWnxSkO", "mbGxhcr9amkOgtW2a8oHoG", "WQD2WPPQaq", "WPxdNmoEWRBdHefVW5TUW7ldTNKrWQbilCkoWReU", "W5qFW5/cOSoQWR5HW5hcRtZdSmkaW7pdHmoDbSkiW7K", "DSo7WO8"].concat(function () {
                return ["5ys/5ysF5AAD6lEOWRZdQa", "dCoAB8oYuW", "cSoFfsb0", "WPpdG8ovW73cOa", "WQ7dO8oLW7BcVa", "fXZdQ8ovW5S", "ks3dHmorW7HZW6PsguX5WRnuW6C", "WQRdHCo4W7dcOhVdJmk0AG", "jCkKbConbmozW5hcHq", "WQ3cM8kxW6tcIW", "WP7dHNxdMbK", "WQ3cSeJcTCkM", "omkPemoAcG", "W57cQai4bSoIWRy", "WR9OWRXQgW", "W7RcSGRdLfHBWQldMsWdt8kjW6WLpGhcI2G", "mmk6fSowea", "mSonA8o0BSkoca", "W4qSWQTLWRvY", "W7dcGCk5EYK", "WPJdGw5aW4e", "wmk3rCoiW4eLmmkH", "W7NcKhO9WQ7dTmoUhSokt8k6mSkL", "WPJcTSkeW4FcVfiQy3hcJNGPW6RdTSoeWPpcGrFdKSosdq", "WQnYWRTjpa", "zSkTW4XSCu3cLZlcMCo+fvq", "5P2W5Qcq5RAY", "WPrzWPHjf39FqmoRFCkHFSoSW4LUW5JcTd01rW", "bIeHgJy", "WOVdMmki", "za3dK24+", "cIaqWRLpDSoYWRbtqWDZsa", "rx3cNSk8W7dcSmkPvqPyWRBcJmoyWPZcUmo8AKddQW", "qXZdVgSj", "WPxcQbSnWQVcQSkXW6FdHGuU", "W67cL2eJ", "WO3dRCktmmkZ", "nSk/WP4", "5O+45PYf56cU5PsO5PE9", "osFdI8oAW71KW7rYpvfSWQrj", "WR/cT1JcQW", "WQ3dVSkfdmkf", "WPxdPW1OamkKW60", "W7pcI2SIWRtdOSo7hW", "cKefW7RcPq", "i8oQsCoRqG", "wLaXoHv2la", "W77cIxWRWOW", "WRZdHfNdRW", "jtCGWQLC", "BGr5W7PK", "W4OvW4S", "AMhcNSkh", "hcnbWQ/dGCk+", "BN5EqSkR", "WR/cKfpcOahdGqBdUSoYWO8", "mcFdJmos", "d0XLimo4", "h3/cGsj9", "CSooW70UWPBcO10", "rCocW4voW5a", "o8kwjCoXWOS", "ESoMW6KDWRm", "WORcNIO2Eq", "W6XOW73dPmoYFwSKsW", "WOxdHgVdIXm", "WQ3dV0/dGtu", "pmoDvCoDuq", "WORcTZaErG", "WO3dNCoNxXq", "wK51rG", "5yAg6A2L5RcS5BEv5ysa6zE+", "WQtdMCoDWRi", "WOVdNSolWRVdIwPHW5XZW67dNMnsWQy", "BmkyW5jWtq", "egxcQa", "dJaxw1j0", "5P2Q5R+d5Rwj5OYb5P6T56cq", "WRxdJ8oAWRpdM0n6W4PJ", "hSk0dmoMWOHKWOyuWRe4uW", "WOxcMfxcOahdVZddSmoVWO1OW6K", "gdW2vvv5", "kt3dH8opW6bKW7bplq", "WRRcR1dcS8kRkmobWQa", "W4mYW7VcVmos", "W7NcR8kLybK", "AX3dHfizzaFcU8otu3ONeCkLaem3WO/dTWddSSoFWQVcPCkaxe53WRL3W5izW5jwcbtdP8opWQ97o33cNHSzW5hcKCo2gSo5m3JdTCkwWPFcJwisWQ01WRpcOq", "A8kXrmobW4eO", "ymoHWPJcH0FdL8klWQH8xSow", "WRtcRSkjW4dcRa", "W53cGmkeAW0", "pmoDwSkAWQRdIJWgqxFcHmoUd8kUv8kJWRhdK8kYFG", "iSoGyCkCWO8", "W7BcH8krmMS4W7JdOc9uora", "xua+pb1Gk8oIW4bSW7ClgMhdGIngBCo2bL1d", "fMOrWR0", "W7BcI0W4WOW", "hLL8m8o9", "CSkEBCosW7W", "WPJdJqvTaa", "WPJdRaHLamkSW7ZcUa", "pCo5WPBcKepcLq", "d8olW6VdO8km", "WPVcQH8IxG", "WRldMSokBHm", "WOJcI8kNW4/cSW", "WRddIM5SW7O5WR5RA8kZWQed", "W6/cP8kBsqddG2RcUNDAxmkRW6j+sa", "W7lcPSkmrbNdSNZcQa", "WP/cKhtcLCkDfCo8WOTpqSoM", "zSk1W4jXywZcLWlcGSo6evPJgX4IWRCQW5/dLNzDW4ZdQSk9W5niW5VdRW", "pSktWObJWRa", "WRJdJKNdIqDxEvVcK8oBW57cJw0dWRqNuWVdTSka", "l0TE", "eZiJw1S", "WQ3cSZKexq", "lCk0eCoMWQbVWOeu", "W7yBWP1VWQy", "rCovW5nzW7y", "leidW4tcOa", "j8kee8o+nq"].concat(function () {
                  return ["wJtdRNOWaM3cLCk6wKqzl8kepq", "WRNcS13cRSk5", "kWvAWRRdHSk5cxdcSSkyWRmB5RoO5yA16kc6oM5Cp8oRWPXwsSk0WPz9kcxLTO3MMlZMLRm", "W6WBWRP4WRnPe8oMW4lcNCkwatyNW5PhW6ftdWJcGCoVjwNdNW", "W4mcW4xcVSoYWRTxW7/cPJ0", "oCkLWOTQWRfhW6uIW5BdLGSgWO3dTgpcNeldTeSnraO", "zcNdN0O", "uCoPW6zNW7m", "W7v0W7BdRmoJqwq", "rJbHW6fU", "usddGeKp", "cNZcUtjc", "rZ1xWQ8nWONcKCoLWRaRW4jV", "W4CQWQbYWRLteCosW5hcHSkUrq", "jHSjgIi", "WQ/cM1VcTba", "W63cINOLWQpdO8oWd8ont8k1mSkVWRPrw8kQi8oEnJqHcZbf", "aSkAfmoxmq", "zCoKW6OUWOtcVLBdMCkIWQHuhmoPW6GpgCoslCkA5PEB5O2v5BIL5BwO5PQb5Pw+", "msbXWRJdNNhdHuep", "qSo2WOZcVLq", "lYfkWRZdU8k5fupcPq", "W74zW5D2WQ4PyCk0W5ZdR8k7W4NdPCoubmocymo9iq", "BWX+W7Lh", "W7lcNmklttu", "BWLlWQKDWO7cVmozWQSPW7y75yY05zg2WP9aWPRcLdzQWO4YW4VdNmkcWQSBW6VcJ8oPbKRcIW", "WPBdGmoiWOVdJG", "jSoodcb0W7BdPHDwFwVdMsq", "n1RcHX5g", "WR5PWRPvia", "FWLDWRmR", "W7ZcJ8kMBYa", "sCkKx8odW78", "nYShvfq", "WRRdHuS", "amoFE8k2WO4", "DxJcUCkjW54", "WOBdOXLN", "kaabaWK", "fSk9fSokdCoe", "WR/dJCkElSkLW7ZcGdTrgL/cIa", "WRhdPCk3omkG", "amobCSoSyW", "W7m4W4hcTCoe", "y8oGWORcMW", "WOBcQv/cL8kF", "brekDLe", "xdddL34/", "ktS0y1O", "teGZmbW", "pmoExCkgWQNdItybw3dcISoO", "Eb5KW6jclGPoia", "uZHoWOex", "WQdcU8krW7ZcQ1S9zgNcGgSMW6FdTSovWPpcMa7dHa", "WR9lWOfKjeFcKqO", "5O+l5PYQ56g65PAv5Psy", "W5tdTu3dMx1AWRxcJwCLzCkXW4Gwa27cKr7dIgr3WPpcVmkmrha/wSohW7pcQXFcHwu8WQO9FSk+WQzWnmkrx8kaxCkWiHrsvSkNW5apW6nzvKZdRtvbWPhcGGxdRYtcKvVcJdT6WOPhq0zN", "WOJcM8kUW5pcTW", "fMxcPGq", "tSokW4ldTmkUW4C", "5Rg05yw/54cRWRVcOs7LKk3LI6RML4q4FCoqoCkm5zkw5Q2W", "bt7dJmozW6m", "fxHBnmonhmkTDCk+E8oGvd3dSGC3C+InPUwpMEI0K+w+J+wLGEI1Rmo8", "zCo9WO/cOg8", "rmkTC8onW7O", "wd7dQxiZtXxcPSotxq", "gxlcPHLXtL3dNeZdHq", "WP5OWOzBaa", "mCk9WOHVWQG", "WPtcKCkIW4ZcVa", "WOzkWRfQoeZcMrPlWQ7dHG", "gsHlWQ3dJCkzhq", "WRJdICoaWR3dMuO", "WRpcVmk/W5NcVq", "cKZcHb9e", "uCkUW4Xhsq", "wCoOW5rIW5u", "FxJcGSknW7tcVCkxtq5FWQa", "EwhcN8kCW7RcO8k0sWa", "W5GAg8oaW44", "5Rc65P+b5yw25ywn5PYV6zUg", "WOddM1ldUqzOB0FcKSoOW4ZcHG", "f8ojW5/dVmkTW44LWPvi", "DCkrWOLPWRjCW4C2W5BdL0SjWP3cUexcMKpdK0SudWvvW7ZdNCkWms8dyCoCz8obFSo4cIbvsmkYW5auW4NdGCoeWR3cM20iWOu1WOVcO13dVCoSwadcRCknW5tdHwLfWO3dVSkhW60/WOtcHdn/WOxcM8ouWRNcMMVdKCo0vmkfe1Gmu8k+WOFdRW", "Bbn/", "WP/dTCo8W5lcSG", "WPVcUcSTWOJcL8kmW7hdVsy2EGNdMSktWOLA6iY+5y626lsw5B6n5AEb6lA+", "ov5mmmoxfSkO", "W4GvlmoeW64", "ps3dKCoPW6DZW6TYpvfSWQrjW4CLW6f3D8oA", "aCowW4tcPmoHW4G+WOrtlCoYWQpcHxu", "WRjvWQTVnq", "w3m3v15KW744ibnLWQbrW5z+W7BdVvZdOvlcUCkoWPryWQFdQCkWWRDzWOaGbG0SdSodFmo3yCoF", "e8orW4tdO8kSW4muWOrfl8oHW6tcMhrQWRi", "tKaM", "jdKYdqa", "pCkKlCoGgW", "hmkjWRndWQG", "WP/cR8koW43cOq", "WRJcOL/cO8kIkSoMWPHpsG", "ftmkWOjDxSolWQ5zybTVx8oX", "CmoGWOVcGe3cI8knWQLWfmoFcSk/", "rZ5AWRqBWPu", "rxZcJmkbW7hcVCkHFGPFWOBcSmoeWOxcSSoTtfddOCo7a05aWR0AW5tcHa", "WPpcGZO0D8o5wG", "WQxdVKH3W64", "WOysW5JcUCo2WRS+WQBcRd/dSSkiWQZcImkRcCkcW6bOfdPIASkB", "mCk4emo/WRvGWOCcWOy6rmkSh8k6WQpdGq", "56AR55w36iwT5yQ+5PQO5PAs5AwX6lEwWQa5", "c8kJd8o7WRDKWQOdWReRuW", "WRpdRZH+hq", "WOhdUXLbla", "pdfmWQFdSq", "nH4jD1u", "ksDBWRldRa", "C8ocW6L9W54", "oYecdYq", "W7PWW5tdVCod", "WQ3cNJm9WP7cISknW4NdPJK0lIFdP8k/", "5Rkl5PYY5yAF5ywl5P6/6zIW772z6k205z+m57Q056Md5OQT6kgEruNdRSoeW61rWRdcR8ouW68KfCoSWQ7dLCoEW5JcKCkFW4/dSCk5wX3dThOLBLBcMuBdSK5ZW7ZcH8kHgcuTW6FdSCkQsa", "ugj1s8kS"].concat(function () {
                    return ["WOvwWODT", "wcDhW7XIja", "[encoded data, 59528 characters]", "W6ebWQDoWQ0", "WRZdNK/dUr1xwLxcLCoH", "6lsa5B69W5q", "WOxdV8kLgCkC", "dmoted5N", "CelcRSk7W5W", "bsddHmosW7b6W7XMl0XiWRvoW6WOW5n3y8oDo8kn", "WP3cKZS0ECoSeSoGbmoUWOZdMvVcOq", "WPRdHftdSam", "drOluNy", "CcFdNv0QWQ5QeHWvv8kU", "WQhdMmoiW7FcLq", "W57cR8kKBWi", "wGxdQh0V", "WQhcHsyPySo7r8oH", "CXb4W7bq", "6i2O5y2954M15P6M5Awd6lsa", "W6zFW7VdOmok", "WO7dN8kRpmkx", "W4n5W7pdQSoZA2ybrX5HW5qUWRldU2hdKq", "WO7dI25VW6y5WRHDCSk3WRScWP7dJt/cLCoLWPtcJCkPW6JdNSk7WQK", "cbG0WRrt", "jhPjd8oj", "tmolrSkwW7ldRdWbxgi", "5Ro75P+z5ywG5yw85P6D6zML", "WR5bWP1gb3y", "dqfYfSomhmk4v8kTECkDmGpdKYShC8o5D8oepvK", "kgiiW6pcHa", "qYTmWRu", "WPFcGx/cUcy", "kt52WPldHq", "WOpdPWWPbmk9W7ZcUs16mbiqBhhcNxVcHCoCWPBcHqldPtRcIGfQW7VcKalcGSoUlCoKWQJcUCoAW4fiDCo7W6aqW6b2WR0kWRdcTCoPzH/cRmk2d8oTWPKYm8obW73dJxTiosHVaaJcQwbvimoJkX4IbghdQqtcNcPwWRS/WRqVzshdRHCKCvalW5VdGSouygTLW7qcW6O1BSoIpmkuW5KHW7bZxvpdHq", "lCk5WPCQW6W", "WQibW452W6icr8kJW47dRCkLWOpdPmoci8ocFSoQlmkWWRuOntxdH3pdJCouo8kSt3NdR8kaWPfOWRpdV8ogtL4nWO7dJGNcSSkOg2O2E8k4ACkmfrP3WPNdJK5oWPaXCSoTct40", "CSkGtmklWO0", "WR7dSMDNW4W", "cCosbHXi", "W5FcMmkcwd8", "5Roc5P6N5yAR5yAq5P6E6zUu772F6k6f5l2x55s5W43dVHVcVLhdRoAENoMAQ+I9I+IHIEAkNos9JUAuJEAwL+s5RoACNoMzSW", "W4u1bSoNW4SEW7K", "WQVcI3/cTCk3", "ws7cSCk4W7ZcV8kGvHHyWPNcLSopWOxcQCo6CXBcVCojdLjoWPSEW5lcN8ozrCk7WOxcKdTZdazn", "j19lmmo6", "DmocW5bhW7iOo8o3", "w3JcU8knW5W", "5RYG5RAg56oW5BAV6lYw5P6U5OUZ5PAO5PwQ", "hCkSfSoMWQzPWQOlWRKYx8kR", "ceWHW53cVu7dMSoVW6JdJmk2W7bxW4hdUSoIrCkn", "W4xdUhpcTu8", "W7KQWO5cWRC", "idbWWQtdHhhdLLytWPCcW4ei", "B3PfBCk5mW", "W6vUW6hdR8o6", "BCk+qCoeW74", "emoFxSkCWQNdOqaxxfpcJmo5dCkYhUI8MowyGCoBW71KW6BdK1e", "wmojW5bEW48JjCoSW6evWPOqWQFdKCkgW7VcUmoMpvFcK8o4", "hJZdOCoBW5u", "p3/cVrLQtW", "dCodW57dPmkUW4WU", "nbixDM9iW4ClgZzhW5O+WQKBWOlcHIm", "WOVcJciXxW", "5RUf55o95AwV6lw6W4hdMa", "6l6+5OYd5P6G5yI25zQN5AAA6lwU", "x3BcR8kJW4i", "WQ/dNK7dOG", "ddWNsv1WW69KiW5TW6y", "kMWBW6C", "WQlcPSkmW5RcRe0CtNdcIG", "xLC7lrvdnSo8W5WrW6megG", "bJKDzfC", "WO7dNg/dHt8", "WPrsWPzjb3zcCW", "dmoFeNKP", "W7lcGSkxpMC8W4JdUJrvnaq", "WPRcHZSWF8oW", "WQ3dUSkNfSkI", "WRRcOLlcRmkSimowW6nSFComDa", "dYPLWQq", "WRJdL8oGW7dcON/dQ8k0EMNcJhtdJ8k1jUI8QEwyQCkEaCo/uNyP", "WQ3dP8ofWPZdUW", "WQ7dLmo+W7BcPa", "dJClWRTdu8o+WPfxCXz0rCoTW4K9", "WQVcSCkc", "WOXmWPXWovtcVqXlWQpcJubwedVcRaxdJsHasCkH", "WQRdGr57bSkNW6VcMYy1t3RML5ZKU5NOT4VLVyus", "WQRdGr57bSkNW6VcMYy1t3RLSyBOR7ROT4VLVyxLPjNOT4/cGa", "W5pdOe7cMgHBWOhdNYOvv8k+W6OKnKJcSa", "fb0VlYC", "W5K1WR9cWPC", "W5qVfCoUW48WW7qxW7TYWRxdKSkGo8kKsa", "dZCyWQLSwCo3WRLLArb+", "yd3dJKCjWRr1", "5P+u5RYM5RwY5O+p5P2v56kF", "md4XBNG", "wuqXmHfIoSk+W5mXW7ue", "WORdJSkPlCkc", "W63dLN/cU08", "jfrhka", "nmojymkmWRS", "w3LtDSkQ", "zSk+W4XXCwxcIJu", "WRpdKCosDdDIW7FdIsPZpdO", "tmocW68WWPBcSKe", "rSocWOJcVw8", "W6GaW4G", "W6SVW5HxWPS", "nZ8IBe0", "rSoeW4XAW6CQjG", "be7cHanl", "WOpdJbPVnW", "hYb5WOZdKG", "mMS7W4/cRa", "dHGtWPLJ", "DSkdB8oHW7K", "WP/dQmoDWPZdHW", "l8oghXD7", "xwmwpXy", "f8oCw8ky"].concat(function () {
                      return ["CrnVWPGa", "W4xcHMKTWQNdO8o6l8oqe8kIomkUWOfeqmkY", "pK5DlG", "W5JcTvahWRS", "jWGjaJL2", "W7b1W7u", "W4NdTutcNNy", "hCkVdCo7WQTMWPWbWQK", "rczFWQ8iWO7cVmoK", "CIVdMu0AWQzYeIS", "W6TzW6FdOCoo", "W5ldOKpcLa", "W6FdGh42WPBcN8otW5ldVsPl", "W4dcI8kAwH/dUwVcI2jqqSoK6iYG5y+ghmkya38VWPypW4ZLRjROO5pOT5hLVRFLPiFOT6xcSW", "tSogW7W3WPBcTKhcP8k6WRrMuG", "nmojA8o0yG", "fmokda", "nSonACoRzSkcaYlcOCkqzG", "kmozDSolqW", "WONcKqqzWRi", "dCkUdCoHWQPZWOuvWR9XrCkOh8kHWQ7dMSoKW6JcRdpcUmoSWQm+cG", "c8ooaczOW5VdUHbxDL3dNW", "tCoxW7m1WOm", "W5WoW5G1BXBcPJP+WQhdR2K", "v8kfwZfPW6ZdSbbkELhdHq", "gdGIq0L7W74", "wcFdHMeP", "rSoVW6yMWOm", "jcb2WPtdNNhdLuSoW6KiW5azWRC", "WPpdMmkqmmk9W5tcLJTRfvlcIgurtmoT", "WOdcU8kTW4hcVG", "CSoFWPpcIMa", "br7dT2yWsYpcKSoUCf4fl8oedgyuWQ7dIYBcICoOWOZcJCo2rub7WQ52W5KlW4yrmXVdV8omWRDNn2JcNeylW5xcLmkVaSo0pI3cS8ouWORdItLvW7bGW67dTSkJcmk1WOpdNCogCJVcVSoXW7BdNbldOedcOmoJW6/dUrdcJmkUgmozySoKW6FcLq", "WONcIYaKnSoUtCo6f8oVWP7dNH7cPcdcIvDbW5qaWQpcKJxcNaJdUHFdT8kcE8o0xLTnW6CAgg3cQd5Iyu7cUX1VlZZcJLK9nmo3WPPys8oMkSk2ktxcKX1aogHnWQ3dUmkzAmo/yCoJW5ez", "W5GOW5HkWQG", "WORdP3vXW7W4WQ9EDmk5WPjxWQhdSt/cK8oOW5BOJyNLJjZOVyhNQRZOTlBLVyJLPR/OTkZcIG", "WO3cM0FcR8kl", "WRXqWOTj", "nCkGWPnTWQ8", "omoTr8khWQ7dQYeIwN7cSmkT5PEP5lIS6lEr5B2iW6u", "WQdcQN7cPCkM", "WQ1BWODAmW", "W7NcIMWR", "kCouW5VdOSkB", "p8kIWOT2WQW", "DCk1rmocW5OThCkaqJy", "WR/cT1FdQSo1", "zSkUW4zXyvpcHIdcNSo6", "utjxWQGAWPlcNCoWWRCL", "WQpdGwfNW6m+WRnLjSo7WQLxW4ldQcpcICoZW5K", "tSovW7aKWO7cGLddQmkKWRj6", "kaVdTCoZW54", "bCkZWPH6WRzqW4auW5FdJfCiWPZdH2FcM1K", "WONdMCkIl8kv", "wmomW61hW7C", "WO7cSLBcI8k3", "W5/cSf0gWOa", "W60ti8oyW4i", "fCoeeW", "fIGls3K", "cd8EuLK", "WRJdJSoJW67cGNxdMCkIEG", "f2/cTJLXxhRdKfhdPvBdJSkLWRy3Fa", "zHddHfCqyXdcO8oEwguQ", "fdXAWQtdPa", "zSoLWP3cKLBcNa", "WQRdGr57bSkNW6VcMYy1t3RLH4lLHyRMLQpKUlFLPjNOT4/cGa", "yIRdRfiF", "su50xCkteNJdTSkugmonWR53dq", "WPBcPLxcHYu", "CqT9WPGRWRi", "WRpdOmovW4JcGG", "uSocW7e7WOpcUq", "BSobW5amWQi", "smouW41AW6K/aSo2W6CqW5qhWQ/dNCkaW5pcUCoqi1FcNCoX", "WOFdKSk9h8kE", "m8obDmksWQu", "pCk1WO0", "6k635Rgb5Awd6lAS", "mg8tW73cIh7dPCod", "W6HOW7VdPa", "W6ewWRH4WQ4", "DSoNWOVcNfa", "btzlWQNdGCkZ", "aSo+ASk3WQW", "WQ/dN8kPcCkM", "WRNcNuJcObRdGcxdSCoZW4j8W7VdICkTt8oFW57dQCoXtuq", "W5eiW4xcUCoJWO5TW6RcRq3dV8khW7u", "jhONW5/cIa", "a8ohW4hdUW", "cSoAtSoSya", "l1a8W4RcOW", "W4ZdV0pcLW", "WQxdJHHXla", "bsVdHmoFW7XZW71Ip0PRWQHtW4qWW7rR", "5O6B5PYl56kS5BEw6l6R5P+y77Yk5PAx5RkA5B2S5zcw5yAa6A2f5Rct", "bCoNW5JdS8kS", "WRFdG8oEWQpdQ0TIW4PuW6tdTMK", "emolu8kyWRhdOsabENtcNSo5aCkOw8kO", "FSoAWPFcLey", "WO3cJv7cLJ8", "W6CbW5DS", "W7FdLMvLW70YWQ5Mo8kWWQ4BWP7dVq", "WRtdSCkcjCki", "WOhcQ2JcGCkg", "W6WBWRP4WRnPe8oMW4lcNCkwas0SW5fgWQjpqb7cH8oUAN7cL8kIW7hcIcG", "p3H9mSog", "WQJdUSkFh8kN", "wIvj", "DmowW41aW7iOaSoGW7axWO4kWRRdQSkhW7RcSSo2l1O", "qsxdO20o", "kdddV8okW4q", "ws7dQ38OrWFcLSoU", "mSkXWOPwWQLBW7qLW43dJKevWPRdRG", "6k6T5Rks5AEi6ls8", "WRhcVNJcIYa", "WPVcId8", "dSoRW5JdTCkR", "BCk7q8oi", "WRVdI2LT", "haeAgZr0nSkzaHKWg8oNaSkYAYjY"].concat(function () {
                        return ["ymofWO/cVuS", "5P2w5OIJ5yM0", "gNJcOaC", "lZzaWRVdGCkBhLpcS8kwWOLE", "WRZdJ8oIW73cUw0", "WPVcLdSOza", "WP/dVKfsW4m", "sSoyW7ftW6i", "WR9qWPXphq", "mCojrmkLWPK", "W7izWOXjWOvv", "ur9/WO8C", "aqfWWPldJG", "uSkhB8o0W6usb8ktqJ7dJq", "kLjCkmoFhSk6", "WRBdGxraW7OLWQ5HDmkgWQ4dWOu", "WQFdHmobWQ3dUu1VW5XZ", "W6ilWOPyWPbulSoWW7NcVSko", "WQVdKIbGhW", "AWFdMgy0", "fmoADSoGDCkacWNcRCksD24", "oZJdLq", "WRBdLSobqri", "vazKW6zIda5oj8krWQPD", "saD9W6Do", "5Rku5yAg6kkN", "BSo4W5nDW5m", "lu5CnCoraCkVv8kJoSooeqVdKIirimkItmkjEqiSWQJdQCoUW6/cNXBdKLeU", "5Rk75PYD5yw05yAk5P+w6zQb77+i6k+o5lYq55sdW6xcTSodWPlcSSk/5P2D6zM16l2F6koz5OM85l+o5PsE5PwQ5lQn5P+J6zQ8", "qYvmWRamWOtcOmoQWRfOW49+qJBdI3dcMCosnhZcQtpcKCoFWPC", "WQxdG8o4W67cUwJdK8kcEKRcMxxdNW", "W4ldNMlcS2q", "W4XOW73dRSoPB28ewWb3W4H0WPRcOIpcKa", "W7ZcOexcJmk3nCo3", "A8k0W7TiBG", "6lsE5BYguq", "WRxcIZO+WO/cNq", "5zo+55Am5AsX6lsM", "o8kDkSoDeW", "EhHXE8kV", "WQNcV8kiW4W", "hmozbJTJ", "W6eCW6TrWOq", "W5bZW7ddU8o6FhS", "WPldG8oVW77cUa", "W6e+W5zVWOC", "WRxcJmkKW6BcIG", "WOhcQ0/cOqBdNsFdK8oUWOnsWQZOJjFLJi8mW7tdP8oYW69lqKxNI6JMNj3LPlVOTAVcSW", "W6WBWRP4WRnPe8oMW4lcNCkwaEA5UUErJ+wMGEI0H8k4bW", "h3mDW7RcMLZdSSoDW4NdPSkuW4C", "WPRdHmopDcPaW7ZdUtf3odq", "jxeaW6BcNa", "BG5IW6zImJHeoSkt", "WQXDWPzfeN9PC8oVFCkh", "rZPsWRiA", "W41UW73dSCob", "eH1pWPhdMq", "q0O7nW", "WOldTuXQW7SY", "xXJdLuCE", "WPLCWPXWp0NcKG", "W6GWWQ5KWQrQbmoXW5xcHSkkqHWMW4vmW7zYxaZcLmo4", "WRVdLmoJW6hcR0/dImk1B1/cIgq", "WQhcRfFcPCkQ", "hCkSfSoMWQzPWPad", "bdrgWQu", "WONdOSogW7FcUG", "gtmY", "WQldH8kadmkc", "oSkJc8okfa", "bmolrG", "CSodWPFcKKW", "xf50xCkvdZS", "FJXmW6fF", "i3RcObLXCgVdLLhdH1NdJG", "WQpdHCoaW6NcNW", "W4eFW5JcJmo2WQfrW7tcPa", "j8ojBCoKBW", "dmk/WP5UWRi", "WOjCWP1Wn0hcMq", "WRFdSK1jW44", "[encoded data, 59756 characters]", "xmoeW51FW68Ona", "WQRdIvddHbq", "WRhdNSoCWRxdNW", "W5tdTvRcLx1DWRtdGcadwG", "tSoiW6G5WOxcOKZdRmk8WQSPeCoTW5aTfmojp8oPW59cW5RdV1xcHNCVW6a/WPldS1q1Fxa7oauPWPJcOmo6W47cK2FcGIdcJNTBBKRdGelcQvC1W5XnW4tcMCkmWPX9iJf3v8kMWRSNWOyYxmk9eHRcM1OmWRKfrSofBXldOY5qWQZdRCoNnmo1us7dO0ClWOBcVJlcIWhcI8oMW6FdLrfBWOK7l8kmWP8WW5urWPRcTSkQzSokB2PxW5CN", "y8k9wmoiW5qTlq", "sSk4W4jYAwxcGtlcQCoWhfDFdYO1WRyjW47dLx0", "AIroW5f7", "W5epWR5DWQ0", "zmo0WOVcNq", "d2tcPa1D", "sCkVW4XNFfpcHIdcNSoQaq", "wLP0xCkz", "A8kUB8oRW5q", "EmofW5uzWR8", "W6VdMa/dPudcGwpdQSoFWRL7W57dTq", "DmocW5nmW6CJe8oXW7WaWOi3WQVdISkCW5/cS8oYpq", "6k6x5yEU5R2T5RAS5O2h5P+O56gk", "WRddLha", "WRFcRmkkW53cT0O2r3S", "orqcBNm", "W4C5WQXHWQfHbmkyW5RcGCkKtW", "W7W4W4rQWOS", "D8oHW4O+WRe", "cSk6dCoLWQXV", "FJfYW6DK", "smocW601WPhcQg/dRmkP", "BJ3dReu3", "o0Tkj8okfSkmqmkTECorerNdJa0BpCk3zSkB", "WO3cQ3JcQrS", "i8ooqCoEDG", "lYfkWRZdTSkJcvpcR8kfWQDvC00ZDK9TpCo3WP0", "e8oCxCkbWRldScOctq", "W6GwW5DXWRKYyCkOW5pdOq", "WR/cQu/cTXy", "EI3dQheUqY3cGa", "6ls75BYOWPq", "iGzeWQddJq", "WQhdLCosCdDJ"].concat(function () {
                          return ["wrn4W7PJmWHyjW", "sqXBW71+", "gdq2tf16W68", "W63dNG3dQKZcGWtdS8oQWQ9KW5K", "W4iOWQTRWRrJ", "WPpcISkJW5JcJW", "WO/dLmoQW7tcSa", "xZHgWPqE", "W6OcW5fGWQWTyCkLW5ZdTSkY", "fWq6WPLJ", "WPldSvjqW4afWOjksCkBWO4+WQpdIW", "oCkLWOTQWRfhW5qLW43cKe8cWPC", "san5W6z5mW", "WPrbWPzub15FDmo9AmkfBG", "WOlcPmktW4xcKq", "pYBdKW", "gaz3WQxdMgZdLhqoW5y0WOtLTOpMU4hNKzRcMCog", "c045W7pcLG", "DmocW55kW64Oj8oaW6ykWOGlWRZdRSkjW4lcTq", "cCobw8kB", "DgBcISoDW6r/WRzcjLf9WQLv", "W5S3WQG", "gvjaiSorbmkS", "W4hcPN08WRldQCoSpmoxdSkmD+AFTUAkR+wiLEEASoAWSUwfQoEaIM0", "WQZdISoJW7VcT3BdQ8kLB1/cIa", "d01+eCow", "WRhdM1JdHsC", "WQFdICoCWQZdHefRW6jMW77dSgnqWQz0oW", "6ysx576g5PYa5zQ756g05AAd6lwWWRNcVa", "omkjdSogWRq", "dH5Ymb1ICSoJW4SHWRO", "nSkJWPfiWPS", "WPJcRhdcVrK", "hb4jhcr9g8kIhGOKmCoRpSkL", "W57dM1JcKgO", "WP3cSmkJW6ZcKG", "W6aDW43cJSoH", "ew/cVbLKwMS", "W57dGXT5gCkHW7RcQIaZFtqOagFcTfRcMCovWPddNaldPY8", "ttL8W4bg", "BhuxcZ0", "BbFdRfu9", "DwhcMq", "WPlcN8koW4FcUG", "WR9dWPbk", "zCowW7DGW7a", "hmkYWQTZWQS", "W7BdIwtcVxy", "WRHfWPzveNrFkCoKESknzq", "CxHZxmkpdYFdK8kwe8oXW6RMO5lMNPRMVQNMTQBNORdNIl/MGl/LPQhOT6NcHG", "gWubjde", "omkPfa", "d8olxmksWQNdRa", "WQ/dHeRdRWbwyLhcJCoLWOVdJKafWRCTyGtdPSoip8kBqsxcO0FdGsBcNSkbymokn0fOiSoNW7X0kSkysJDdkCoPkmobW6dcJvClW6ddHSocCSkTk8oIWQNdHInapfH0WRPomSocyaZcVCknW50yamo0D8oyqCobW4ZcM2VcNbBdPgFcNrpdVa7cL8oUWO3cKmooW7/cNh3cH8kJrmoZncZdGbBcImoMWRtcL05DWRa", "W7FcP8ki", "xtBdQxiZvq", "W4ulemoMW7G", "WQ7cUudcMJm", "fmodW4hdSSkIW44/WOrzBmoTW6ZcLxvTWRVdQgtcUa", "WRhdGSoy", "W5K5WQjV", "WQpcT8kxW4FcUvmQ", "WQ14WPzgiG", "WPhcGetcTCk+kmobWP10yCo+oSkCixjGW7ihW5VcUdmKWObeFmkquCkZoSktFNldKZZcI3VdRCkrkmoXAG", "a8otW5/dPmkGW5KBWPDukG", "WRRdS1JdHtK", "vZ9mWQGbWPm", "fsPLWQddHW", "WRlcIsOMEG", "W6JcGhGIWQddPCo7", "WRtcVCkCwKpdPxhcUMjAmmkNW6jIt8k0bciUWPWoWOpdPMrDvKxdR8oOqmo5W6HGaN3dQSoOcL3dNCkwuLLH", "WOlcQ07cTce", "W6/cUSkgrq", "WRddJLpdRrG", "rZ7dS3u0", "bSows8kMWOG", "ymo2WPBcL0C", "WQRcMLxcQWZdPYxdP8o9WPHQW6G", "WOtdIujjW4q", "W6NcGhW6WQJdQmo5h8klc8kIomkY", "WQJdKCotDd9QW7W", "WQxcRKxcLmkg", "aeXhbmov", "AZZdL0uZ", "6i2J5y2654Iy5OoB5AAC6lsh", "WPxdICkxCmoP", "dqT0WOBdRG", "k1vknCoPgSkRtq", "zmkHwmovW5OYcCkGFXRcPW4PWOyeWR8GW5XzWRzZjYnYWR/dQmk4cexcOmk/", "W6Csf8oUW64", "WP/cIZeSWO/cTCkBW5ldVcGmpW", "wM8WprO", "zaVdNxaR", "tCopW7aRWQpcVKxdUSkK", "WQf/WR9unq", "WRZdM8oWuqK", "mmomu8oIFW", "W6upW41nWROVySkJW5ldSSkYW57dOSoE", "cCoxDmkZWQ4", "aSk+eCo1WRfP", "WPxdVg1pW6m", "5PAG5OsC5OYq5y2+5BsC5zc+55A/776I6k2n5yEp56wY55Ak5zcg5ysF5PMA5O+b5O6F5P6A56gM", "CMyNkWnQlCoaW4STW4Dkk0NdKdrbDSo9q3fvWP3dHmk1WPm", "jgiaW77cH38", "WOtdUmk0g8ki", "WOPcWRb9gq", "svRcPmkWW4xcG8klytz0WOZcLq", "W7KzW4pcO8oYWQ18W7i", "ke/cGJO", "lmojASoiCmkpnJ3cQ8koD2/dMZe", "dYGNqvLKW7K", "W44WimoVW6e", "W5m5fCoTW6WAW7axW4TGWONdLa", "pv5pk8osfSkSvSkfESoxeqNdIYSq", "WRFdKCotAcT/W7RdRZe", "nr00WOG", "W5JcTeKlWPq", "aCktWOXRWQ1AW5yhW5ddKxLh5l6r55A/55sU5OUy6yw857+o55QG6lAj5B6LxG", "W7iOfCo7W55tW5exW7zS", "gJCnWP5puCo2WRbtyW1ox8oPW7qShW", "h8oRBmo1Dmkofb/cTSkrtZ3dVs0ZAv/cLSkGnCk8WOGMiCkyW67dNSk0mmkeW6TFW7y"].concat(function () {
                            return ["kCosW6BdUmkO", "iN5cd8ov", "W4mVW63cMCo0", "WRldKxjWW6aLWQ18ACo4WQqsWPq", "tf07kGr2dmoPW5CH", "WPJcVCkkW4FcRfS3qW", "6i285y2W5AA96lA8", "W7qnWP1yWOvinCoPW6BcT8kzCJygW74", "W4hcV8kbxYC", "FIxdM3m+", "ksPRWRK", "cc8TtW", "WRf3WO1lcW", "v1lcH8kBW60", "W4W4eSoGW4qxWRXqW7nuWQpdVSkNk8kLF8owW5pdRMP/eCovquhcTJtcI8oJiCoRWOPuvCoSAt5uf8kuWQa9uNDTWOpdR8kAldxdKCkhWPyxWRFdPcDbW5NcNCoiWOWzmCo+W6lcOHTpxmkWW7VcG8oThSoiiCo1kKqhWQXaW6W", "5R+05RwX56c/5BsP6l6P5P++5OUy5PwP5PAr", "nmoOgdzb", "W4W9amoQW4i", "W7GEW5PJWRKK", "hSk6dCoHWQa", "6yE0576Z6ygl5yIz5As06lsLW4HH", "WPFcOb/dJYKnW6FdHay4wSkVW5a", "yhyMlIG", "nSkneSoxWQi", "WPJcRSkkW5RcRhmQrg3cIhGG", "Ct/dOvq5", "d8ksWPrHWPW", "kmk+WPD4WQy", "bCkGWPzQWQP4W4eKW5hdN0mc", "tmkIACoqW50", "jZW/WOHG", "rZ1xWQ8nWONcKCo7WRWRW4PYxZtdKxG", "WQ3dImkGgCkh", "WONcJxdcOmkR", "DK0ZnXrPoSorW5O2W7mCgfJdHG", "W4/cL8kyBmkIWPVdIG", "WPFdVNz0W6u", "WQHzWPHvmMC", "cNzwl8o1", "D8o0WOVcHeVcLW", "W5qFW5/cOSoZWRPNW6pcUW", "W7eJW4pcOmoI", "W5hdOKpcJxL4WRJdGsa+v8ktW6y", "6l6D5O+G5PYp5yM25zUd5AsY6lAd", "W4NdIh/cOwq", "W7TUW6FdNCow", "j8kqk8oyiW", "WRxcN8kXW6VcIa", "j8kqhmoqWRe", "ttRdS0i1tYu", "iJewWQnEvCoJWQG", "rCkUESooW50", "sCoHW5aVWQ0", "WONdV1RcJtn9WQtdNZycxa", "fsynWR0eqmoPWRnoAs1Ow8o4W68Rga", "x2XgW7RdKmo8va", "WQJcQCkCW4xcOq", "rCoeW4SjW7uOmmoWW7OxWPveW7ZcGmkgW4pcSq", "D3hcNSkCW7tcTSkH", "xXxdIM8L", "WRpdGLpdVWO", "wZhcUanRwwhdKGZdUwhdImk2WOS3ASkOfXxcQmkgz8kucbldVLjVcMnCh8oBkcJdQJTdWOLVEWNdUcCcWPCphSo6WOZcIXL0WOhcUfWDWRLKvhCsC8kSW7C", "5P205zMt56cV6yAl57+q5OMJ5yMa", "ys3dNKSzWRvLeJW", "tvDPtmkDdaBdT8kfcmoj", "WPRcOwpcSSko", "psL3WPldLW", "WOlcJSkGW7VcLq", "WRBdGxrkW7SYWRb9lSo/", "cJmaqhG", "kc3dHmoyW5j/W7veguf2WQq", "WPVdJvDrW4y", "W6apWOH4WOe", "zCoWWOVcGeVcLSkt", "dSkleColeCozW5hcUmkrW4pcSMtcUSk6WP/dNmoGA8oBx8oucSoaW4aP5BAj5PIg5PAJ", "W4tdNKNcU18", "W7JcQ2SmWOi", "gSk+e8o3WQHKWOevWQLXrCkUg8kCWQK", "ghOvW4xcJq", "vxxcUmkOW68", "qq95W7ba", "qdddRNG", "omojW7/dPCkI", "nCkycSoGWRzUWOC3WQiWA8o/5Qk25RAE5PsT5OAT5O+u5y2654M35Ogt5AEG6lANW7a", "WQBcPL/cOmk5lW", "EanPW6zImWjtmW", "mmoTW7NdLmkA", "WPZdJmoBW7RcGq", "ibWjbJ9Qi8k/aLaKamoRjSkJBaHUWQpdISoJiSotW7FcUa", "W5WjWPHfjNBcQqK", "v8kMrCobW4CHjCktyH7dRq4", "ySkmsCo1W4a", "WP/cKZ8XWP/cLmkBW6xdPJOkodldSSkpWROEW6GuWPW", "sCogWRBcMe8", "WRldILpdVXnjwvhcGmoKW4FcHNazWOK3AH7dOCka", "WOldVM91W4a", "5yw25ywC5AEF6lsMBay", "WRddHt5goa", "WO7dG2v3W4CJWRbIrCk5WQedWOJdTIu", "W6xdVSokW48", "5Rgb5P605ywO5ys45P6s6zUH77+P6k6/5zYk57QZ56Ux5OQk6kgkxWNdUH50aav0BSkRW5pdNmkkWRZcUCkgoH/cSSonmSohW7pcOmoDmmoHCwyEWP4zWQSjWQ7cQmoVvCkgbfiZW65r", "bu51xmoteZ3dOSkwgCkdWQLNdrRdSSod", "DIBdMW", "kItdHmoiW7j5W6Tm", "Fwjpr8kU", "WOBcRtmVWPy", "WQHEWP1c", "W447W6XqWOGpzSkoW6VdH8kfW7/dN8oOhG", "j8kTf8owf8oeW4dcJCkq", "mSocW4JdGmkI", "W4qKhCo6W54aW48lW7z6", "WPpcSCkwW6hcIa", "WRVcMfpdOvVdKsddSCoVWOn9WQldK8kX", "oCkNaW", "WRpdVgZdVaq", "fw0xW7ZcTW", "W6xcMSkyW6VcMXvLW5TlW63dJ2G", "WRddUvldRGO", "jb4WrwG", "rb7dHLei", "sCooW5DSW48"].concat(function () {
                              return ["W7BcIM8", "mCkHfSoxa8oBW4y", "5zcg55sn5AwJ6lw8", "rcTkWRm", "wSoIW4G2WRe", "gSoEbID+W6RdPqXwpu3dNcrkW6VcTuxdPSk+fCo7", "WQZdVCo4sHO", "W4xdO1RcQNnlWQpdJIa", "WOtdQeJdUafkEgtcK8oMW7BdG24lWRKOAGtdP8kbECo85PUq5PEH5AA/6lsYWOK", "xSoxW6vZW4i", "l8kzWRnbWPm", "dmkbWPG", "m8k+WPP1WQTrW4eK", "W4eaW4pcLmoP", "ySk6xa", "W57dUNZcRhm", "omoHjczv", "i3CWW4BcMq", "5P+f5OMh5yUE", "lIyveJq", "WRNcPKpcSCkKjmowWObNBColC8k1nLPQ", "mHK9WO9J", "W77cJMKYW6P9W7i", "nCkycSoGWRzUWOC3WQiWA8o/5PEX5lIJ5AEQ5Bk9WOW", "WPxdJCkvpmkLW5q", "Eb5KW6jtmXLsjSk9WQHljmouvmke", "b8oCW4ldJSkG", "h2StW6FcIN3dSSoNW5tdRCkwW4f8W4hdI8ocESk1aSkAzW", "5P2/5RYi5RwF5OYX5PYH56k3", "WONcKhlcVIq", "WO7dU2vWW4i4WRL7ASkZ", "WPrsWPfcehHXySo3wSkwASoQW49Y", "yCoeW7aYWOpcTfZdVq", "A03cVmknW54", "W4ZdIxZcI04", "m2xcGbXj", "o0HlnmoTbmk2uCkVFmoUaaVdIZSh", "bvVcIJ1D", "WOldKY16hq", "k8kxWQHpWRi", "euTbnCokpSk6vSk/DCoAeq", "yZbBW5Th", "fmk6WQ9OWPW", "uY9kWPGbWO/cQmoGWR4ZW5L6rttdKhe", "eSoBwCk6WQ8", "eeFcQq5X", "jJKXnbO", "WP/cHwxcL8kz", "W6eRW5jlWQy", "lYbSWRddN2S", "WOBdRrLIf8kTW7FcQdX0DJ8OrfdcRLJdHmoxWOpcMW3cUtxcPq", "o0Tkj8okfG", "w8oQW5qoWOm", "WOddJfJdVJfqEeFcJSo7W73cHNezWRmVBq", "c8oobZTKW6RdTHTk", "WPNcNuJcObRdGa", "kstcM8kPW6xcGCkrsq", "WQBcRSkv", "ncPWWRZdIwBdIeCuWPCnW4ecWQ8OW4ZcLSole8oCW4lcGwawWPa", "W740fCoNW44FW7KXW7b8WOtdNmkfk8k6t8o5W77dTq", "lYu8WOHK", "m8k+WPn8WR1bW7CYW4pdK0GcWP3dPa", "dh/cVai", "gJ4wWQ9lxmoiWQHxzbS", "5RoD5PYd5yww5ysp5P2g6zMT77Yc6k2s5zYk57MU56Ur5OUm6kkkW6DYA8kUgHxdPSoyp8ocbbNcSaXsrJffrmkuyehcVrbSWRbroJtdVYeyWO1bmCoMWOtcNriMW5JcSfGf", "WQ5dWOTiaq", "nH5iWQNdTa", "WO5WWRPKnKa", "hSkpgCo0WOy", "WPhcIa0UCSomwSo2eCoJWPVdIhpcTJVcN0rdWPe", "waZdNMig", "W7/cIgKNWQ0", "tcVdGKOyWQj+aW", "kvCEW6/cUG", "WRtcT8kmW7dcQG", "jZr2WQ/dPW", "pYZdLmopW4i", "ltetqu0", "pmojv8kbWPxdQYagw0hcJmo5bG", "W45/W6hdPSoUFgeNqq", "vmoiW7yY", "yCopW74YWPpcVuhdISk8WQjOuSo/W5C1", "W6JdQwBcJNu", "WPxdG2FdMYy", "l1HnkColhCkRCmk/DCoAeq", "WO3dNmkfpSk5", "WOlcN8kTW6xcSW", "WPvKtmk7W7m3W6KhW7Lw", "pmkmk8oYlW", "WONcRf/cS8kOkCohWR4", "WO7cLcy/B8olt8oXfCo+WOJdIq", "FZhdLxiD", "W7SbW65QWQ4", "l8obuCkuWRe", "WQBcT2xcHSkJ", "j0NcUHH2uNZdTvddIwpcI8koWRiHBmkOxHZcR8oxmSkpgXJdOKXPfxuBhmoAB2FcVWfUWQ1xp2ddOIfwWOSDf8oHW4W", "zaNdIfiQ", "W74yW4RcHmoG", "pfz9p8oqea", "W6WwW7JcI8oF", "W73dK1/cI29rWQpdVtCcC8oDW5uLj0tcPrNdT0bjWRRdGmkgsgDGzCogW7pcRGBcQLvU6i2K5y6B6lEL5B2v5AEW6lsN", "W40Zo8o9W4K", "ACklW5bWsW", "W7JcVCkDwWpdPgNcQx8rBmkZW75Kx8kZoMqXWPaj", "5OYJ5lM05BAz6yEe57YB", "D3xcJSkhW7ZcV8kHCaS", "ECoWW4qKW6miWPL3W6hdI1yuWOhdPvBcNv7cGhCOAer1W77cNCklj2eKCmotyCogCCkxuM4haa", "5O2d5P2Y56o45BEv6l605PYm77Y25PEN5RgB5BYj5zon5ywg6A+k5RgV", "EJVdQu0EWQjLaYaEqa", "WOddJfJdVIvkEf/cG8oSW4xcGgS6WRS0AZNdU8kgFG", "fLDuf8oF", "p8owW4ldPmk7W6yUWOvti8oNW6G", "W5SQWPPzWOK", "W6OlW4O", "W7qmWOvEWQK", "W4lcS2aLWPy", "WPRdTtHnbG", "W4SwW4RcUCol", "yZ1SW6zr", "dSoDv8k5WPK", "W5aiW5xcVmox"].concat(function () {
                                return ["wWrKW7jKiazo", "WQn8WOTGgq", "W6/cP8kBsqddLxBcQgrQtmka", "WOFdImo7W5dcNq", "fmoADSoGDCkacZW", "WQpdGwzXW6OKWRvAACk9WQOz", "h2StW7RcPN7dPmoAW4NdHmkCW4XUW7VdIq", "zoAzNoAwQEwMTUI0OU+/REs5Q+w8VUwqIEs+GEEuUU+8La", "lvPckG", "yK5TASk/", "gcOqWR5Eq8oiWQvyCW", "yCoWWORcNfFcI8kEWR5S", "WPtdHCoJW7FcON/dGmkL", "rHVdQhy8WPvjmqyGFa", "lGKsr0S", "W6ZcQCkDrG", "tmoLWPBcGfBcTmkyWQHSw8otcG", "hwXKfmot", "dCkUdCoHWQPZWQugWQq3", "W4DzW6FdU8oOyxasqanpWPVMUzNNK6tcUMBdNbxdMX57aSkrfXb/W77cLcZKUQ3NKAVPHAxNVltLPQxOTBNcVG", "gr4HWQnY", "W7NcNCkIsZu", "6k6u5yEM5R+Y5REo5O2v5P+h56gs", "cCombJfHWRJcUbGzmwxdIbblW7RcRMBdVCoXxmoZWOBcUKxdJw9NW6GZ", "iMuvW4JcQq", "t8k4W5fSBg/cNalcGSo6evO", "vCkNW5LOzW", "CxHZxmkpdYFdK8kwe8oXW6Pceb7dUmodW5PwW7xcOmoqWQimfmk4WQ7dL8kmWOddHConWPZcRCoy6i6C5y676lw35B6x5Aw36lsQ", "WOhdMmoaWOddMa", "xSkXW4X9zgZcOtxcI8oRfW", "WONcLcaZC8oyvSo5eCozWPtdG10", "fLuXW4/cNq", "W7NdUeVcL3HsWRtdVYaEwSksW7CVa0tcTIFdS0bwWQu", "WONcSmkNW4VcJa", "kGCygsv8nSk+", "m8ojECkKWRe", "neOwW4pcHq", "W6RcJSkAxZq", "W6FdH3riW7uLWPK", "DCk5ECoFW5SJ", "WRtcU8keW4tcTfS8rfFcH3uGW6ZdKCoeWPy", "W6W4W5VcVSon", "pxRcVY5Ksw8", "W7/cQCkBsq", "WOddG1ZdPbzjB2BcHmo9W5NcMKafWRqUzGNdTG", "d8oXW6xdVmka", "WPxcPftcS8kAkmobWQzKA8onECkZa3j6W65MW4dcRI4Z", "wmkEW7L1Fa", "DSoTWPdcGfBcISkUWQjXwq", "WQBdHxjT", "BWLlWQKDWO7cVmozWQSPW7y75RI055gB5AAo6ls6W5pdNa", "i2lcRGrHuwVdQepdIeVdISkQWO43ECk2eH/cTCoibmoyaGNdS0K", "xKSXidW", "AYjFWRukWO3cQ8okWRuJW4P1DdpdIq", "ytFdNLax", "W7H7W6ddVSoYya", "rZ7dPfS9qsJcMSo0FhGp", "c8kKWRnWWPm", "WQxcPtW1zCoXtCofbSoLWRdcJw3cGGtcHvfbW5tMLzlMJQpLUAdLTQRMMi3MLOu", "ps3dKq", "W6mvmSo4W6u", "WQbyWP9ojq", "CSojW7CVWPy", "WRBdHComBIPOW57dRZy", "WPhdG8omsZu", "WPVcTamTvW", "xtfeW4zc", "W7KjW4NcO8oIWPTWW6FcVdS", "ke3cHH5j", "W5mSWOHlWPm", "W7znW6VdK8oF", "W7NdT0/cJvjrWR/dJIa", "oCkLWOTQWRfh", "keZcJJ1l", "rs9GW7TX", "aSoPq8oMDq", "jSoigZPLW73dRqO", "tdRdIeuiWO9PbdSFF8kKFCkJ", "F8o6WP4", "zmk7wSoFW7mPjmkWwaVdPH4", "W5etW4ldVSk0", "gSoEbID+W6RdLaTnEXhdIcXDW6dcUg3dISk+hCoMW4O", "uNGqW79pgSk0", "hmk3WPHAWRK", "WQFcOL/cSSkSk8oGWQHNy8opF8kOieb5W69tW5dcVYu0", "BSkAwCohW5a", "mdVdNCosW4u", "cSkFWQDUWQ7cLvhdVmkXWOG", "W4iPbSo6W4ubW6WaW7DgWO/dMmkGoSk7y8oKW7tdTNq1cCoiFa", "pLrzi8omamk3qmkGEmkDwt3dLIaqpmkMxmkiCHWSW6BdLCogW6JcMbZdIr93fLn1AJbvWQFcHJRdTMC0WR/dQLVdULffxfVcNcpdGt9ntmolW6aCWQmSgHrrW7f/iciYW5NdTcfjgCkWEd/dGSowW5VcNmkvWOCsBCkRW5G4W73cLd7cHmocW6BdTW1WnNdcJ8klW7xcTSk6WQbre3pdGCkNsCkZW4TNf8kFEq", "tMfiW7GFbCo6WRzBuHHC", "wbJdQviG", "C3jUtmkj", "g8oaEmoPy8knaX3cOCknD2K", "jZWUibi", "W7BcQSkwAJK", "tCocW74XWPVcTfFdUSkcWQj6smovW4SMfa", "W77cGg4VWRtdQSoQ", "xIFdPgCZ", "osFdI8oAW71XW6Xtk1P0WQi", "pSk1cCotWR0", "5P2P5OI75yIY", "5Psr5OAD5OYj5y++5BAh5zoN55AX", "WQhdImo1W6VcRW", "ubddUeiV", "vCk4W414CwG", "WORdKSkymW", "jHesbIrRamk0aX0", "qexcOmk3W6u", "lY5oWQBdKCk6hMpcQmksWO1qvuOZFuz/oCoLWPPksSkGWPr9ogyx", "m8ojA8oP", "sSkSW45wyq", "hYG2uvnLWQqTlbnNW7OaWPzHWQFcVqtcPX7dU8ofW7SfWQ7dPmkR", "oSkxm8oHWOC", "WRNdH8okWRpdN3f3W4fK", "nHhdPSoeW5u", "ktf4WRddRa", "wColW7a+WPBcVxFdVCkXWRnS", "W6a/jmoAW4u", "gSomySkTWQ4", "WQRdVLFdJJO"].concat(function () {
                                  return ["b8ojxmoStG", "hJmvWQe", "w8oNWORcM2W", "WQdcMLtcR8k0", "WPxcQ1dcQCkPk8owWOPJESoIDmk1pgzGW6vcW57cSI4K", "cuTiiSo3", "yCoaW7OOWQdcVLBdOSkYWQjNx8osW6KIbmoocCojW5jvW5u", "lXzNWOtdHG", "W6NcKgO9WRxdTmo3aSoc", "dmkhmSo9da", "FIrVWPiL", "hCk5pSo2kW", "WRRcTKlcRW", "WQVdRxNdRbq", "ctOqWR4evmo6WQHxCH9UtSkMW6C8gmoIWQRdRwSAEWvUWQ5JkmojmSorWRyem8kIFqdcTmk3WOlcP8oIASkUggzfBfXzWO7dSg/dOwD7sCkrWPnttCoOeSopia3dSSoiW7TuWR1xdmoblSk9wdxdTSkXsmkEmLdcRYKNW7zjDeDFW4SiAmoWdgyirq3dQ8kXW6xcG8onW5xdR8oWW4BdKtpcQCkjW4hdPmohbCoEWPRcHSkQsSkAWQ7cMKVcP8oXW74hbCkjWRdcN03cHYdcIHhcML7cISo6guedo8k+B8kRWRxcJ2CWW4RcU8o7W6fPj8oEn8oXv8o2CmorWRdcRg7cT20VW7Pgh8kpWOOzW5mQW5FcM8kklCoXv8o2WPDeWRLCW5FdMCk9tYWQavpcTmo8W7ObWO0lWQdcGCoaWOiQW5G0kLSXlZ3cQZjvWQHpd2RdHZ5XW58oqtP9C8kJWQVdLmkTWRtcTX8afhhdML5JWOSPwSo+WRVdSmkHWQtcNmoiyvxcGSokW7HQw0ruWRxcG8oNrq3dUxRdUCkEWOmAB8kUWRZcNSoIpCoFhHBcKGqvlvfgng/cHSoHgtDvW6WiqSkNWO3cPW1BWPiBW6ardmkNsLS4z8o9WRXVWRBdOCkrW5PQW5PMfsr8juVcJe1/WR3dO8k8arlcRgL9W7/dTSkBomkBuCoVWQmJW6y3W7zuWPzCwhJcMrBdUmkNxaldMmkJBSkcWPddOCo4WP3dGaiJWO7cKuFcMKfTWOxcIaZdOSk2W5DeWQRdR1THWPNcNSkvW5hdN8kPDmojkuldQszNW7zIb8kDWOvGf39eagJdSMfKnmoLr0eJW4bZrCkzWQFcRHamW6LtWRfhs8oAqqKUomkwWPXIWPG4odjPW7rkC8o1bJSahCoGzmoOwmodBhFdSmosW4XIWRikC8kHW4BcR8k7W7NdL3WirbvHr8k4DfVcI8kSzepcRtWPW5NdJ8oumriOyhZcOJCcW68QWOmyW6ddLCkxW5SbdmoSimkRBI7cKSoqWROaA1pdSSoQWPPQx8o2WOXyWQ7dSg46W5udW6ddUmofdmorC8k6W4TSk2P7W4nrWPeqW57cOuFdS0hdMY/cUmogW5qBzmk8WODYbmk1w28HBCkGWOVdM8kIh8o6W7RdTGtcTCk6iX1nCmomhCovcaFdMX5blhldMSo7W71InmkqWQNcLrNcTur1WQ7cOSk+WOpcJuNdTWZdGqxdOmoeBt55WRNdItrSW6JdJCkkzSk0WR0arvCgWPCBcY5WW5ycWPJcOCkok8kcWP/cNsxdPK7dHHfpFSoRWOpcSSkKWPqCnmkctgWSW53cOZrylhldJ8o9drmvFu4iiCkwWQpcHsW8m1FcUwRdLHhcTmkdWRJdP8kmW6yoW6ekWODlC8o5W4rhaK5+p8oGnCkwW69UWPfvdbSLEu4hzeGKECkhWPOJ", "h8ohgZTJ", "mWrUWPZdRa", "WQFdK8kDgmkA", "lMygW77cGwpdVmo9W47dPSkhW5D7", "6k6x5RoK5AAC6lAY", "WPtdRWPGgq", "t8kBz8oJ", "WPVdGCoGW7JcNG", "eSkSi8oFjW", "taVdIxms", "kmk1WOL1WR9wW4e", "W6P1W4ldOCo4", "evHbkmokfSkNuq", "lsb2WQddHhhdJxCiW5GDW5ec", "WO1OWRHYmq", "chdcLszN", "z8okW5KnWOe", "lZVdHmoBW7fvW7fekvnkWQjsW6e9W7q", "gCoQWQvjWQXAW4mLW4pdKWqHWOFdU2pcNbhcIfXEf00", "W7tcLgenWOi", "WQHcWOL0hgzizmoR", "bcDmWQxdJW", "iJfVWRRdKW", "pCk8emojtmogW5hcH8kBW5xcVddcU8kNWPpdMSosx8oY", "W78lW41TWRGZuCk0W44", "W405gSoUW54B", "fJiTta", "AZPrWQGAWQZcQ8o6WQONW4X+", "EsFdHeO", "WQ3dHM7dSXXg", "yNrvESkVpXJdGSk2n8oPWPHnoIFdMq", "W4pcTMuiWPS", "WQ7dOqrNaCkTW6hcVW", "6i+05y6t5AsZ6lEY", "EKyXidu", "ttpdQhq9tHpcH8o7Bvq", "AdFdQNS/", "nZDfWO/dRa", "xvC7na", "WQFdOmoeWONdNW", "fZ0qWQm", "W6ZdH8oBWRddHNzh", "ncPWWRZdIwBdIeCu", "vSkIumohW5G", "WO7dLg9WW7SAWRH9DCk3WQGs", "aqVdKmooW6D5W6TXofDfW6FMNiVMI6RLIAhcOeb3W5S9WPhcSSkE54UG5PYC77+X5BkS6k+b55I06lse5B+Tcq", "rWbZWPm0", "bCoDFmk7WPC", "WRFcV8kxW5RcVq", "jSkJjCoQWQ8", "E3FcJSkkW6BcOSkqvGroWQS", "FW4AAmknrCoXfmo5imktrvZcJa", "WPtcSHW2ya", "h07cLZ5o", "aY5aWR/dVmk4hu/cSSkAWO9pAvy8v0zol8oIWPjD", "ESkYW41Ryg7cHJi", "WPlcGwlcUcm", "lWyC", "WQ7cLcyGzmo/uSothCoMWOJdNHBcQ3ddMGW", "6k6I5yAa5R6K5RAc5O+Q5P+156kI", "W5FcSuyNWO4", "CxHZxmkpdYFdK8kwe8oXW6RMNlJMIihLIzNNMjNMSzNLH6ZNGOFcQG", "bIL/WQddLG", "WRFdN0NdULXlzwtcK8oMW5pcMG", "oCkEjCoXWQi", "FNhcI8kgW7VcTmkusWbBWQdcT8ocWO8", "tIzoW4DB", "W7/cQCkDxWxdUa", "gsTeWPldOq", "dmoNsSotvmk+kW7cLSk1v0/dSbStwNtdOG", "nJm+WP1D", "dYPHWRBdHW", "zXLS", "W71dW6xdUCoC", "WR3cRepcRmkViSoDWQ5UimohF8kOogDHW7yjW57cTIK+W50oFW", "WRFdKCotCZf/W7ZdMsD3mJ0jpGq", "i8k7b8owbSot", "WQlcJbuNWQO", "WQxcLhNcRmkc", "WQJdK8o+W6RcUwJdImkJyqxcHMxdLq", "wSovW7a2WPS", "W6KWm8orW4S", "WP7dJ8obWRFdTq", "DSo4WPJcMK4", "W5yOWR8", "WOtdSG9OaCkT", "WR/cKYG+CG", "W77cJhOGWQddQ8o7", "WQ/dH1ZdVHrkEfK", "WO5jWP4", "WQHeWOTuhgfkDCoHj8khC8oUW5nZW4/cOd01sG", "W74Sg8o6W54+W7KbW6T4WOddKG", "BYvyW7zK", "WRZcN8orCmkxW57cLYThxbJdGfaaw8oRs0iAs1z1W6BcKCoVW4VdUmkFWOq", "vHb8WO85", "W6u/W61kWOe", "WQxdI3rIW6muWRj9CSkdWPWZ", "CSkSW5Tlyq", "W7z1W7VdPW", "gcOobYn3iCkDhXekv8ovh8kjr3ROJRZLJjJOTytLVi7LPB3OTP/cOW", "kqysgW", "WQNdR3jQW7K", "WPhcScKEWRm", "WQnfWO1xxwniAmo2Ca", "WOtcRYySWQ8", "6lEe5BYLWOuj"].concat(function () {
                                    return ["W6GOWQb5WRrlbmofW4pcK8kSra", "du5CnCoraq", "j8kic8oLWP0", "ssRdTwuZuahcHSoUCr4kp8kikMavWONdIZ/dGSoN", "tSk8W5fX", "5P2w5R6D5Rw/5O6Q5P2/56cw", "maeAbZu", "WQRcNuNcUW", "CHjzW51q", "uSksxSoJW5W", "WQdcLSkYW5pcLG", "W4C0WQ5+WQzPe8oB", "B2LjAmkV", "6i+u5y245ywE5zk/5AES6lAH", "W68hW6zfWQe", "pmonu8kwWRxdOtCXxwpcNSoIhmkkx8k4WRC", "WRVdK8o/W7e", "WO1nWQ9rfq", "j2ygW4dcMNtdUSoDWPlcRG", "W5yoW6pcHSoV", "F1BcVmkEW6a", "W5qxW7/cTmoOWQS", "WQ/cRuC", "hGfdWR7dRa", "iCoqCmo0C8ksntBcQSkD", "W6GQlSoyW5O", "WQJcJv3dSWtdHZddSCoLW4WTW4tdQ8kvyCoRW4hdJ8oACgCKW7j0vGpdOdjrWR5mWRWlW4ieW7bvW4L1wmoAWQL9u8ozW4OZbbmMi8oqWR0Wemo1WRhcTSkqWPxcMKNdQgiuWRbWWRFdKW", "wc9qWRWAWOK", "W4CkW5W", "W51PW5VdK8oX", "W4pdVuVcKha", "W6tdG8o4W7RdUxldL8kIELG", "e8odW7NdJCkC", "Cmo6WP3cLG", "WRbjWOfWiMVcMqPmWQRdHuy", "WOhdO2XBW4S", "fqddL8orW5K", "WOxdRNbeW6S", "AmkNs8ovW5yYiCkLF1lcPrH9W5y", "WPtdKSkfpmk9W7lcIJTwlMVcQq", "iSkJW4/dGHtdJSkwWQ9tsSoJdq", "wvjHqmkJfsxdNmkqbCoCWQ8", "WQDzWPzUhW", "fSo3W4OUycRdNw7dGmo2qeiCr0rTWRqDW5tdK21gW4BdL8oIWPnhW4/dRNBcSxddH8oxW7VcVh4HWQpcSsxdO8ofWPRcV8k2WORcKJGnW4P8W7FcR8oUW6aCW5/dIY3dG3CFWPTBW7FdHSoCz1f4DSkqW7yeW5BcLSkazgugoSo/W4q5W5uTW5xcLmo5o3NcS8o8FmkoWRhdQCoSFMb6W5VdImoZW5HmWORcOfWaWONcPtfhW63dL8kUySkIvMBdI1mxW4BdOZZdLSo/zmkHW4VdTmoNfSo9W5pcKSooWQRdSCk6u8onWQZcMSo7W5SIW53dMSovEJzAqe5gWPVcQ8oIW6LBrufMW6eAWPCkWOtdJmk5WRfJW7KMWR1znWebi17dMSkyW73dT8o/WP7dONNcSuboymo6W59nWQVcGN7cM3/dOmkzW6WhwutdSZiODmo6b8kKWRBdImkSBmoHgLqtoSk/vGiCWQWyBGHYW7f3bCkvahdcRKZdRLNcMeqrF1LNyLZdGNnDWQWYWQ5RvSk1mCkTFeuoW6hcRmoQWPeBW4WWW44FWRSxWO3cTSofm8oLd8kmhXu+B8kUW7pcS8oiW40jW6ddT8oBdHFcNeGOWQ3dI8kUWRVcIXxdRhhcHCkeWQVdUvubW5fAcZ4jWPdcI1xdL8ksW7xcJta7WQ48W4BdICo2sNPRWQxdS8ozDYlcL0hdGmoFW7ntW5XYWP4gdYBcLaDktXZcRSkItaNdQddcJZJdVSkrrMzOd2ZcISohiYdcK0lcImkmW4JdJqO0W48ue8k1g8owiHZcHSkWsN9TW610WQ/dRWNcH8kGW7qDWRBdGmkzWRlcL2xdSCkdW57cH8ope8okzXClWPxdNt9yWQZcPv00jSoRcComoXBcOgfCtfhcJmkSWRtcTCkJW5ZcL0xdJmocWRZdTx/dHH3cICoqW6tdQw7cPmokx8kBWQL6uCkzW6BcGs/dSCk1tCkBdCkqa8kxWPjcCLybWQ7cGmozW6yJkSoHtY/dLmkeWQjviwNcP8o+F8kdf8kGW5WODYeDW448WQBcKCoEuSkhWQNdISoOWQxcPNFcHgmkW7LQvI5kw2hcGK9NuLrbWO5CyKRdVSkIl8kKtSkhA3VcImkTWPFcILv4W6PbkYqNWOFcTCotb8klWOlcKSk7xspcUmoZib3dHCoiWR3cUmksDwdcOCosWRvJW4jNWO7dS2ZcPgZcPmkSBLVcH8oiW4XTBCotDGPKaviZW6/dLCoZWR8BWP1JW6BcMSoKW4udxGJdQhNcMX4xoZO0W43dJJiJW6zoW7vbWOGZlSkLshXQC8khxGNdHuJcH8kNWQjjWRRdVSo0W7ddO8kCW5C7ySkUWRGRW4hcSHrwWOxcH0pdOL/cJSooeCo+bYldTd4qySoDnmoUd2K9W73cP8owaNFcTd5EW77cICk8gh3cVv3cMSk5WO3dNmoWW43dUwauWR0jW5JdOWu0ss/dJSkVWRxdOL3cU13dVSojtCkhWQxdOSoJt8oVzCo+W5tcSf0jWOZcSmkGu8kArL0XWQpcGSkkWPStWRJcI8ozAWTLWPBdKKvtqCoIW4ibW4RdPCooW7jjWOJcJ8kJWQGFxs1tW5vMgaGmWPL+AX3dPMRdPSosWOXzBeBdM8kVW701WRzdbYi3W7dcRSoKWPW/e8oieWX6xvymohlcOXaBWRldI8oksJJdSLdcTSouW60oW5bUsmkBAgdcRSo5p3K5WR3cUmkAWPuYWOhdRcKkDxZdGSkOdmopfgNcJ8kov8kPrGdcVraVWPLlWRmFW4/dMN7dLYCxuqpdI2P7v8oKW4SuW6JdHNRcLMxcN1ZdPSo9WPxdUhK0meGAiSoiECklWRHbWPHTFYdcNeWBjx/cKCoLnHGlDmk5W4qwWPzpBSoIWOBdGmoqW53cMaVdLxxdTCkjoCkEACkSW6pcIZTJW5fGW6XFW7xcGMa+WRVdJmkvWQTkW7lcJSkTvX3dM0aTf2FdOmodqCoRW4L/mdxdK8kTWRDidbGQyCk1WRmNWOVdLgPVWR7dS8knWOFdT2/cMcxdOmoUW6vziaNcV8ovEICvWQhcO8kxWO1DvCkEu2dcUrL9W4Gcw8o+aSodF8kNyCkdWOXizCoQnmoodwNcL3mxBSkEWOjmW6vGW4tcI8oXWOHFWO3cMaxdRYJcOCocuMpcTCk9yCoqEeLwWPCVbhPEWPddUSo0DINdL8kbWRxcGmoKW5tcJmkky8kXW7DOCmoEW4xcNSoUamkpW7DMW7raECkAt8kKW6/dMmk7i0vrkrhcVXjlj8kVlvS6W4pcLrlcOSoQpcyeqJqrWQhcNr3dSCkCuCkDWOHoW6/dH8o2WO7dImkhcmo1W71hkq/cI0tdJbTAmh8PmCk5WPxcU8kMiWW6W5ntcGRcM8kkWRBcNh3cQ8ouWRnjz8kWgMVdNCkrhe/cNCoHW6HwW6/dOuG6uCkeyZ89hLZdU3ZdTr/cSCkjfCkoELdcTvVdUX7dLJVcSYJcQGNdJSoQW5pdQCkwDY0poCoSEetdGSoNWQddHLvWfKNcNrJdOsnzzmo8D1tdUu3dSflcUSoAkWu1gqJdQI5CESkentldTSk+jWtcQSoYF8olW4hdPWxdHCkjWOnruGCGtJPqt8oQW6lcLhdcHmo6WQveWP5vgSkJbSkVWOdcQZiZW67cMLZcQN8msqKDrd02gmkqWQDEW6P8dW9GWOyFwr/dTvXSW73dIgVdN8kwWOSJWRtdK8k5W6ZcPqvKWRy4j8kwiSorW41KW6ihWQK8lbjIk8obpa9JqJddGCoKFHhcQt16WP7dPSkoWPZcVSknWOy0WPL1omo6WPG2nmosW6FdLCkqkYxcSbhcLX7dKCkBWRCynmobW4nPW77cHa7cQCoybMVdOComomkPWRT7bSozbctcLfNdNSkJiKtdT0JdPwRcJ3tcKd04wmo2hsS8xmoiWPVdGCkmWRBcMCoVu8kXnSkvpmoyW4FcHYlcLgtcMX3cMCoSWPtcImkWifNcVSoxfGe3EmkNW6BdQmkzWO5yWQyzBrHus8kkje1RW7RdNY5vWQDrWOZdLmowhxdcHmoVWRVcShLfW61zm20zuCk6oCk0A1ZdI8o5dmkbW6FdUCoMmwf3cXHWWPpcJrhdPmkcEsP3WR5jWQJcKWZcISkbWP5GW5pdR3WKlcvQjeLrW502CCkoWO7dRvlcLSkgW6BcTgTvW7ebmdVdVSk3W6pdNLbfW7hdU8kPhmkYWQxcUmknW4eJWRboEmovgfxdGNJcSfSfbmosdxxcO8oxtSk5W7qGW4NdP8oyW5OsW5euoCosqtxcGHFcHqdcLCkfACkPWQZdK8oaW55SjSocW7uRW7iKWOXhWRBdHN3dQrRcJaVdIx0Ql0XHpSonW61ZW5DVfmk1EdFcIxqyWQ0cW7ddKH4wvmolWOVcJe/cTbq1pmopFxtcOCobWRf/W5a5A8oYi8ocWQnJWOxcUMNcMSkaWPxcKSoEWOfsW4DwF8kifSojfflcMmktD8oMqGxcGGFdGmorW71yW7/dVqtdTY0CWO7cLfBdSwFdRtiIgLddTZ7cIJCsW5ddOmogW4zLW5ZdGcNdGSkDuSkyp8ktW4RcVmoiWPNdKCo8WO99WOtdKuZdG8koemkeo8k7WRVcK8o7WR/dUHNdQmo7W5RcO0Wxx8knWQpcRSkNbmkGeXK/pvFcV8kEzmkamCk8WOySB8kxW5xdVSoI", "W7L0W6q", "tCotW7aUWPBcTKhcP8kJWQj7sSotW5OMpCohk8osW4jvW5pdKXe", "W4q9WQ5NWQXJeSofW6pcHSkQvqO6", "W715W7hdPSoUyhyxqq11W54", "W6ZcOSknEZy", "iSktnSo7WPC", "AKO8lrvRk8oJ", "WOJcLsOOCSo7", "mmkMbCoBdSotW4C", "WOJcGZS0F8oXuq", "tmo2WPhcLKhcKSk2WR5MACoadSkYiCoN", "kSkZWQXUWRW", "W4dcI8kAwH/dUwVcI2jqqSoKW4v1xCk/vMuZWOOjWP/cS3nmqvNcSSkZ", "h8k4f8oAWR0", "W6u9WRXLWRv0aSotW4m", "WQddMSow", "WRpdGmobWRJdJe5DW5TMW6NdVq", "hmoRBCoGuW", "f35Od8or", "W7GoWQbLWPy", "DJddNu0EWQjzeY4yxa", "chJcPGC", "dYOTvL9/W5uMibbRW7W", "W7qJW6pcJmoE", "tcVdHuepWQXpgsujwSk5DmkI", "aHvsWPpdQLFdPW", "W6JcGgKQWOFdR8oYcCo2gmk/na", "W6/dKtDUWP7dKSor", "WQtcQ8kxW5RcT0W/rxhdH3qGW7y", "WOFdJCoQAre", "5PEk5Owa5O+L5y+H5BAU56AJ55wO", "pCk1WO1yWQ5CW7eLW44", "y1dcQ8kMW5e", "du5CnCoraCo/54MT5P+G5lIz5yEb5A+n772M5Rgx5ysR54on5P255OQV5yI/", "W7ajW4RcMCoj", "C8ksumoNW5e", "W6KrW4SzxhDFCCkHz8kxz8oY", "WRdcLZ8RWP3cL8kmW4W", "W7KkW4pcVSoYWOvHW7xcUZ/dOCkm", "WPlcSmkaW5ZcGq", "fmkDWOXsWOC", "ftrDWQFdHW", "rYRdJ3el", "W55sW5tdGCo3", "WQpdJCoCWRq", "tCkVW4PY", "W4uEW5NcICof", "FmoXW6vBW7u", "udv+W6DLlHLTjSkFWPayimoDvSktWRv95zkM5lI06iYN5y2W6lEZ5BYh5AAg6lE8", "s8o5WOpcOKm", "u8ogW6S/WP8", "W7OhW5bMWQi2", "W79oW6VdImov", "gcOobYn3iCkDhXekv+ITUEwoHoI3PUwpS+wLQ+I0RSo0", "WQhdLM97W7ycWQ1Qz8kIWQOt", "WQNcT3pcImk6", "axm3W5pcGW", "WOxdHCkbnmkJW5tcUIXdd10", "WQZdNL/dUqzxy1RcHG", "WQddICocWR/dGeD6W51+WRpdVg9iWODykCkuWR05W6Lz", "WRxcU8kwW4BcRuWSuM0", "DmorW5bAW7iajSoWW6azWPWb", "gdWp", "nCo7gsrc", "W5a9WRTzWRrNfCot", "WQldTGP7aCoOW5tcRJOV", "pCkaWQfyWRq", "W44oW4hcOq", "bYDDWQy", "sKq+nq", "WRTuWOnWpG", "gsuTuuHKW5KZjX4", "g8kNiCo+mW", "WQjFWP1cc1XC", "W6RcKhSM", "lSkIWPb0", "W7NcMCk5wqS"].concat(function () {
                                      return ["WQFdLmo3WQ/dQW", "cqK8Cf0", "jX4Xue94W7GAoXjFWQG2WOGMWRFcSvFcTqJdVSomW59rWRZdTCoWW7niWOXPfej3qCoyBCoIlSkcWONdIIVdVv/cGmoHW7FcRSklWPKeeq", "kCkfWPfmWOG", "AY1BWQ85WO7cVmoIWRSJW4v4wq3dNMVcGCk9kMtcRJ4", "jSkGc8oonSozW4lcM8kx", "W5a9WRS", "etzF", "adSvadi", "WRldL3bqW6aIWQ9TyW", "WRpdKCosDdDIW7C", "WRtcQ8kgW4RcVu08", "B8kmBCocW6u", "WQ/cSupcQmk/", "WPbYWOXvahXiv8o8zSk/k+s/OEEwKUEuQEAkNEMgQEE8SUEBHEI3Gow/KqO", "fmouW4tdUG", "lmoJvCooyq", "r8ooW5G", "WQbRWRzsbW", "W7FcGhS9WQddOCo7", "W6qRW63cImot", "WRpcHLNcVWddLJddSa", "pKLbpSohjSkVqCkTymoyea", "WRhcI8kjW63cJa", "xLrvwSkoctVdPa", "W5iEW5fXWRKmv8kIW47dO8kWW4K", "hCooaHb0W67dVb1CwLO", "EeKmgIjZnSk/qa0LfmkIDCkUAZrUW6NcKmkOCSkWWRNdVZddHmonFHVcGSkhWOBcGc0MWRVcKSkSySoKdqRcJLBdV8khdw9kW5ddVmoiW6miW5fSeuhdMWBcHfdcHCoqW409WQnFbSok", "gILrWRuiWOJcQq", "W6NcOf4fWQS", "WRhdHSodWPpdMW", "lX3dJ8o4W5W", "xtBdQsvU", "WRJdNSo7WONdPa", "WQZdNftdVHfnB1a", "nSorEmoODa", "WRldIL7dHXngyL3cJ8oSW6lcHW", "bCkZWPz3WQPqW5WJ", "fCosW4VcUSo3", "WRVcI07cUGpdKYhdPSo4", "WQNcTJmRzW", "ua9PWReO", "ht8WCeq", "EafIW6f1ktrpmCkDWQXroCoCxCkg", "bmolrSk5WRZdSdybxeFcImo/hCkZuCkI", "xvr0rCkpedtdOmkb", "tmoBqCkhW7ldQdOqb3lcMmo/hCk1ta", "s8k8W417AM0", "wJpdPMi6ttlcNG", "WRdcVbijWQ8", "kanZWPddGq", "WP/cIdyWWOZcTSkrW5xdPI8cot/dO8kZWQuuWQfjWOiMW5RdSGRcGfpcT8olWPaHe0GcW6/dObKkW4dcKSoKWPpdSmkscNJdOH1GWR9o", "kHhdRmo6W6C", "BSkyW5LztG", "W5m5b8oSW54+W70rW7bWWONdKSkAkG", "e8oehtO", "oH9nWO3dRa", "eZnDWRVdMSkKc1lcR8ozWOvEEq", "pZRdL8otW6y", "bmoHW7xdSCk5", "WOHeWOTuhge", "pCk1WO1nWRDyW4e", "WOZdQCohW6pcNa", "W7OiWOXUWO4", "v8oigZP3W7hdSG", "krvcWO7dRW", "WPldMmkbmCkWW5lcGa", "WQbYWPX+gW", "W5BdPvNcKq", "lxK6W6xcIq", "W5qRWR9zWQ9Ze8ovW5u", "W5usW4pcUSopWQzIW6NcUJpdP8kDW7/dNmoLiSkiW71Vwc51", "xheQcXe", "WOtdT0DuW4C", "f8k0nmorWPi", "Emo9W7y4WQ8", "tmoeW4S", "W4C3WRHVWRj1cCotW5ZcNSoRddWMW51pW6njs03dKCk1bh7cKSo9W5hcMhJcHJpcOSkycuu6wCoYtqxcVCkdydNcUSkSWOZcVHxdS8k9W65/WOi3xYtdPG4LWPddO8oIWR8Gc8o+W43cMadcNCo3ESoCWOy", "CcFdIue", "WQ7dI8oTW7dcUG", "utHmWRqC", "WRFcKJbSW4K", "WPxdR07dGZG", "mCorW4ldSSk6", "WONcLt4QEW", "umksW6L9Fa", "Aw5vyCkl", "ca4RiHS", "W7pdVwJcS1C", "t0nVxCkieWBdUSkkhW", "usri", "iLrj", "wNivfXi", "emovWO3dTSk6W5nRWOOajCoYW6JcHJ0PWRZcRq/cHWaiiGT9W6lcJmo3euDRmrBcGSojs0iwWQ04W4nhWOfGEmkxWRVdNvqac8oMWPBcNuRcGgpdVa", "W5BdVeVcJxPrWQpdGa", "W4tcUmkawXJdM3ZcQgnEEmkH", "xmoiW49iW5u", "wG7dUeyQ", "yCo0WPFcL03cLa", "5P2K5Qo75RwL5yM26l2U6kc/5lUY55QHWO9HW48hbCon6l6v56M/", "t2RcJqSlWRvNgtTm", "WO5AWPPQieFcIbW", "pvRcNY5eAu8", "rITqWR8bWOZcJmoWWQ0JW5G", "gcOobYn3iCkDhXekv+wMHEs6R+AcOUwKIEwLQ+I0RSo0", "gcOobYn3iCkDhXekv8ovo8kUydv8WR3cI8ooaSoPWRNNV4ZLRyJLTjBLI4BMLRO", "W7/cL3OHWRm", "WRFdMCoCWQNdGLb+W51OWRpdQ29FWQ5roSkoWQ0vW45xWQStW7WFW7K", "WOpcS8khW5pcGa", "vbfUW6fvnbLoo8kcWPTDjCogwSkoWR4", "WR3dTXLnha", "W5igW59XWOuUqCkLW47dGCk4W4ldSmoonW", "f8ohW5/dUq", "quW2pcnXpSoKW4WXW5GlcW", "F8oLWOdcVNm", "A0mckrG", "e8obrCkqWQ/dTZSxrh3dJCkGlCk1u8kHWR7cLCo/jCkOW6Drzmk3d1hcJWT9W4RcICk3W5msW68+mSkdWPpcNSkYW5eSW6xdMCk2WQVdHt8/qNDFW5dcKuZdLHZcK8o3W58yD0xcOXmJWRZdSfmckSkREWmEWQ1EvbdcKmkgDSo4s8kDgu/cH8olb8kog0zNWPBdS8kLWOpcMSk0WQ1ptmkrW5RdPmkyW7BcOhWwWQaTW7y", "W5eBW57cOW", "qZP4W5P8", "BmocW6WZWOlcO0FdRmkJ", "aSkwmSovWQm"].concat(function () {
                                        return ["b8odW5NdMmkHW4CIWPHfeCo0W6ZcGMH3", "hSofiqDC", "CdFdIxqV", "W4yUWQXyWQK", "mCouW6RdUSkF", "bGrkWPVdGa", "l8k/WQ99WOK", "W5y1gSk6WPG", "WRBdHv7dPGDbB0C", "W4CMW7XuWQe", "WQpdG8oCWRhdJ0DGW4XVWRpdVg9nWQHjmmknW7aXW4fuWQbEW6ij", "teS2kIDSk8o4", "xmoaW41h", "F1hcGSknW6i", "BXFdNxK6", "W4aQWQz+WQfKdCot", "6zYR6ksG56YE55cV5zoE5PYo6zIt5l2T5PAQwmktc8k9W4RcM8kw5PwA5lMJ", "oY1GWRddMa", "WPpdMXnOiG", "WR7dLmoG", "WRldRCodqY4", "dZaJWQjY", "rLrH", "W6FdOfRcLxvDWRddMsWcqmoDW5y/ifhcUdJdQW", "a8ouW4JdTSk7W44", "gvKbW6BcQW", "dSopqG", "W5BdOKxcJxnkWQJdNsa", "WQRdGr57bSkNW6VcMYy1t3OiFMJcQfZcJ8kA5PIw5Pwc5Aws6lAYzq", "W6SkjSoZW5i", "WQhdIgf3W6K4WQ9J", "WRHbWPvobW", "wYBdIw4P", "FNxcN8kyW7ZcVW", "yYNdJK8nWQbJwsuFvSkJ", "WQBdG8o/W6RcT33dNq", "DuTPxCkiltddSmkxhColWQ8", "jCkNf8onl8otW5dcM8kcW4VcIG", "tColW6SPWRy", "WRxcU8kvW4xcUv0Q", "5Rgo5PYW5yw35ywM5PYv6zM2", "WOZdGmouWOVdJa", "BaGlhh95pCkJaGS5fmoNp8kLAI54W6hdH8oRomoFW6RcQW", "uIBdM00w", "WPddOmouWPddHa", "FqvOW7PYja", "WPvGWP1MbG", "W6ZcHSkfzbO", "esBdJCofW7G", "mSkKc8oBa8oAW7dcNmkcW5JcIG", "W74sWRvUWRO", "j0NcUHH2uNZdTvddIwpcI+w0ToA7MoErLcldUW", "AGz7", "WOBdSuZdHai", "h8oRBmo1Dmkofb/cTSkrtZ3MSyFLHk3LPBBOTl7VVkRMNPZMIR3LIARKUkNKVRpMSQVLHkFNGzu", "d8kRdW", "oHv4WR3dOG", "WOVcS0hcQ8kKjmosWRLVyConoSkijMn+W6LvW4C", "WPNdICkudSk6", "WQFcJZ4jzq", "W73cIwCSWQddQSongmoefCk0", "WPtdKmoLW7ZcOq", "nWWxed19j8k/ffaZeSo0fSkLCJnOWQVdOSoU", "zI1iWOSQ", "sHvBW4z5", "W4ehW5XWWQWZsW", "cCoNnqv+", "WQZcNJa4WO/cKa", "D3xcG8kAW7tcVCkxxa5gWQNcOmofWOxcJSoOD1hdRmo9d0q", "E8kKc8oAa8oA", "WPBdVmkjoSka", "pN7cIqHn", "usryW5H6", "xZ58WQik", "dqSnAv0", "WRxdPCo7WQJdLa", "WRL0WO5+iG", "W4pdNMNcL0K", "bCouW5/dUmk9", "WQ1vWQXLfq", "fYKsye8", "s8k/W6vUtW", "rxFcHCkkW7BcUSknvWvoWQBcSCotWPi", "W7HZW5JdOCoc", "W67cVmkjbvq", "t8oHW6ORWQ8", "WRBcLa43WPG", "WR5cWPHafG", "hIClWR5fqSoRWQ5zpG1QqSo8W6mXimocWRpdOxi", "gruEWR9K", "kdrWWRZdJa", "WPdcHYqI", "WQRdRCkem8kx", "nsbWWQtdGMZdIa", "gcldJSooW6m", "ymo9WPBcHhBcLSkCWQHR", "BWLlWQKDWO7cVmozWQSPW7y75B+A5OYQ5Psg5BYq6ksk5P2S6i+U5y+l6lsV5B+z5AAo6lAq", "5P+W5OY45l6H6lE15y6c6ycC56+K", "WOxcI1xcVqhdLY3dTW", "WQVdMvtdPW", "zchdGXDE", "dmojW4O", "WPbYWOXvahXiv8o8zSk/k8oAW5nZW4/cHYHHwcDzvSoNCtvoWQJdPHurvIxdLW1JWQNdKcG9WPNcKmkzo8keW4JdO3/dTe1UW5xdVCkEWR1DWOPihW", "nheBW6q", "WRpdNSkCmCki", "jr01WQnG", "iSoCW73dV8kN"];
                                      }());
                                    }());
                                  }());
                                }());
                              }());
                            }());
                          }());
                        }());
                      }());
                    }());
                  }());
                }());
              }());
            }());
          }());
        }());
      }());
    }());
  }();
  _0x4ff4 = function () {
    return _0x599248;
  };
  return _0x4ff4();
}
;
(function (_0x33e9d8, _0x4fedc2, _0x59bf10, _0x3f5dad, _0x5078e0, _0x2923aa, _0x23b225) {
  _0x33e9d8 = _0x33e9d8 >> 2;
  _0x2923aa = "hs";
  _0x23b225 = "hs";
  return function (_0x1376d0, _0x1a2cf6, _0x4a89ef, _0x246457, _0x254b1d) {
    _0x246457 = "tfi";
    _0x2923aa = _0x246457 + _0x2923aa;
    _0x254b1d = "up";
    _0x23b225 += _0x254b1d;
    _0x2923aa = _0x4a89ef(_0x2923aa);
    _0x23b225 = _0x4a89ef(_0x23b225);
    _0x4a89ef = 0;
    const _0x508dab = _0x1376d0();
    while (true && --_0x3f5dad + _0x1a2cf6) {
      try {
        _0x246457 = -parseInt(_0x56bd(1526, "yoC7")) / 1 + -parseInt(_0x56bd(978, "iDwM")) / 2 + parseInt(_0x56bd(334, "yoC7")) / 3 + -parseInt(_0x56bd(452, "8@jo")) / 4 * (-parseInt(_0x56bd(1650, "7%8^")) / 5) + parseInt(_0x56bd(1109, "6hxd")) / 6 * (parseInt(_0x56bd(910, "$SfD")) / 7) + -parseInt(_0x56bd(1339, "X4(r")) / 8 + -parseInt(_0x56bd(1842, "7%WS")) / 9 * (-parseInt(_0x56bd(1407, "iDwM")) / 10);
      } catch (_0x120780) {
        _0x246457 = _0x4a89ef;
      } finally {
        _0x254b1d = _0x508dab[_0x2923aa]();
        if (_0x33e9d8 <= _0x3f5dad) {
          if (_0x4a89ef) {
            if (_0x5078e0) {
              _0x246457 = _0x254b1d;
            } else {
              _0x5078e0 = _0x254b1d;
            }
          } else {
            _0x4a89ef = _0x254b1d;
          }
        } else if (_0x4a89ef == _0x5078e0.replace(/[HJWhOtUPjLlMYKeySRFw=]/g, "")) {
          if (_0x246457 === _0x1a2cf6) {
            _0x508dab["un" + _0x2923aa](_0x254b1d);
            break;
          }
          _0x508dab[_0x23b225](_0x254b1d);
        }
      }
    }
  }(_0x59bf10, _0x4fedc2, function (_0x5a1593, _0x264133, _0x30957e, _0x5b95e4, _0x14972a, _0x23c825, _0x5208e3) {
    _0x264133 = "split";
    _0x5a1593 = arguments[0];
    _0x5a1593 = _0x5a1593[_0x264133]("");
    _0x30957e = "reverse";
    _0x5a1593 = _0x5a1593[_0x30957e]("v");
    _0x5b95e4 = "join";
    1855061;
    return _0x5a1593[_0x5b95e4]("");
  });
})(784, 102639, _0x4ff4, 198);
if (_0x4ff4) {
  vip = `\xfb9`;
}
var __createBinding = this && this[_0x56bd(2506, "n8BU")] || (Object[_0x56bd(2376, "yoC7")] ? function (_0x426d51, _0x1fa101, _0xd56cbf, _0x584cf0) {
  const _0x72e54d = {
    uKmJw: function (_0xdd80ed, _0x4bf4c4) {
      return _0xdd80ed === _0x4bf4c4;
    },
    TAoYL: function (_0x3d6ea4, _0x2c5cdc) {
      return _0x3d6ea4 in _0x2c5cdc;
    },
    aPyeo: _0x56bd(2189, "^S!O")
  };
  if (_0x72e54d[_0x56bd(512, "fu8^")](_0x584cf0, undefined)) {
    _0x584cf0 = _0xd56cbf;
  }
  var _0x1907da = Object.getOwnPropertyDescriptor(_0x1fa101, _0xd56cbf);
  if (!_0x1907da || (_0x72e54d.aPyeo in _0x1907da ? !_0x1fa101.__esModule : _0x1907da[_0x56bd(2059, "*&r5")] || _0x1907da.configurable)) {
    _0x1907da = {
      enumerable: true,
      get: function () {
        return _0x1fa101[_0xd56cbf];
      }
    };
  }
  Object[_0x56bd(1761, "Ka)i")](_0x426d51, _0x584cf0, _0x1907da);
} : function (_0x5f91d1, _0x9a02cb, _0x4b8c9f, _0x19d088) {
  const _0x5f3f4d = {
    SeNEr: function (_0x5d446f, _0x23305b) {
      return _0x5d446f === _0x23305b;
    }
  };
  if (_0x5f3f4d[_0x56bd(384, "LC6r")](_0x19d088, undefined)) {
    _0x19d088 = _0x4b8c9f;
  }
  _0x5f91d1[_0x19d088] = _0x9a02cb[_0x4b8c9f];
});
var __setModuleDefault = this && this[_0x56bd(370, "B)Tn")] || (Object[_0x56bd(2068, "nj1b")] ? function (_0x345a43, _0x11ae4c) {
  const _0x4f212a = {
    FTXnn: _0x56bd(1657, "POq&")
  };
  Object[_0x56bd(497, "nj1b")](_0x345a43, _0x4f212a.FTXnn, {
    enumerable: true,
    value: _0x11ae4c
  });
} : function (_0x1d7e4a, _0x48365a) {
  const _0x3780d5 = {
    kZOut: _0x56bd(980, "4)@$")
  };
  _0x1d7e4a[_0x3780d5[_0x56bd(1941, "ck7z")]] = _0x48365a;
});
var __importStar = this && this.__importStar || function () {
  const _0x4481b5 = {
    fsNNJ: function (_0x24a54e, _0x1bdb80) {
      return _0x24a54e(_0x1bdb80);
    },
    srHxh: "1|4|0|3|2",
    MoXZb: function (_0x3f36e7, _0x3a1c53) {
      return _0x3f36e7 != _0x3a1c53;
    },
    VqBsb: function (_0x32fe05, _0x1525ff) {
      return _0x32fe05 < _0x1525ff;
    },
    mymIw: function (_0x4a533c, _0x29a9b2) {
      return _0x4a533c !== _0x29a9b2;
    },
    zFOle: function (_0x3faee2, _0x31a6a7, _0x2bbca2, _0x53d668) {
      return _0x3faee2(_0x31a6a7, _0x2bbca2, _0x53d668);
    },
    zPdmk: function (_0x326a22, _0x578e64, _0x1ca450) {
      return _0x326a22(_0x578e64, _0x1ca450);
    }
  };
  function _0xb2a35b(_0x4d1aec) {
    _0xb2a35b = Object[_0x56bd(500, "H9os")] || function (_0x1a3c58) {
      var _0x5ea703 = [];
      for (var _0x185acc in _0x1a3c58) {
        if (Object[_0x56bd(1190, "nY*(")][_0x56bd(1068, "6eWF")][_0x56bd(1044, "nj1b")](_0x1a3c58, _0x185acc)) {
          _0x5ea703[_0x5ea703[_0x56bd(785, "KTbh")]] = _0x185acc;
        }
      }
      return _0x5ea703;
    };
    return _0x4481b5[_0x56bd(1743, "nY*(")](_0xb2a35b, _0x4d1aec);
  }
  return function (_0x31ac5f) {
    const _0x3c765b = _0x4481b5[_0x56bd(2288, "fu8^")][_0x56bd(2335, "7%WS")]("|");
    let _0x2fee3c = 0;
    while (true) {
      switch (_0x3c765b[_0x2fee3c++]) {
        case "0":
          if (_0x4481b5[_0x56bd(1384, "ACPk")](_0x31ac5f, null)) {
            var _0x43241d = _0xb2a35b(_0x31ac5f);
            for (var _0x27b692 = 0; _0x4481b5[_0x56bd(573, "4)@$")](_0x27b692, _0x43241d[_0x56bd(2448, "$SfD")]); _0x27b692++) {
              if (_0x4481b5[_0x56bd(2527, "hSE]")](_0x43241d[_0x27b692], _0x56bd(634, "akm5"))) {
                _0x4481b5[_0x56bd(2330, "ck7z")](__createBinding, _0x23061d, _0x31ac5f, _0x43241d[_0x27b692]);
              }
            }
          }
          continue;
        case "1":
          if (_0x31ac5f && _0x31ac5f[_0x56bd(2370, "yoC7")]) {
            return _0x31ac5f;
          }
          continue;
        case "2":
          return _0x23061d;
        case "3":
          _0x4481b5[_0x56bd(492, "8Ee3")](__setModuleDefault, _0x23061d, _0x31ac5f);
          continue;
        case "4":
          var _0x23061d = {};
          continue;
      }
      break;
    }
  };
}();
Object[_0x56bd(2471, "0xfR")](exports, "__esModule", {
  value: true
});
exports.CursorProViewProvider = undefined;
const vscode = __importStar(require(_0x56bd(1853, "]I&e")));
const client_1 = require(_0x56bd(1217, "s66k"));
const extension_1 = require(_0x56bd(979, "T$OD"));
const account_1 = require("../utils/account");
const path = __importStar(require(_0x56bd(1442, "^sHL")));
const fs = __importStar(require("fs"));
const child_process_1 = require("child_process");
const util_1 = require(_0x56bd(632, "6hxd"));
const sqlite_1 = require("../utils/sqlite");
0;
const execAsync = util_1[_0x56bd(656, "B)Tn")](child_process_1[_0x56bd(355, "B)Tn")]);
class CursorProViewProvider {
  constructor(_0x249e9c, _0x2abb89) {
    const _0x22d112 = {
      dJwJk: _0x56bd(1106, "EJjX"),
      NNvQE: _0x56bd(1747, "de]G"),
      HENcW: _0x56bd(1430, "xK)8"),
      vVEYg: _0x56bd(803, "nj1b"),
      xOuBX: _0x56bd(1545, "6eWF"),
      gbbhA: _0x56bd(430, "^S!O")
    };
    this[_0x56bd(567, "DQte")] = _0x249e9c;
    this[_0x56bd(1511, "f)Dq")] = _0x2abb89;
    this._hostsPermissionGranted = false;
    this.SNI_PROXY_IP = _0x22d112[_0x56bd(1283, "KW&U")];
    this[_0x56bd(1207, "H9os")] = [_0x22d112.HENcW, _0x22d112[_0x56bd(356, "@HDB")]];
    this[_0x56bd(884, "DQte")] = _0x22d112[_0x56bd(1095, "f)Dq")];
    this[_0x56bd(2458, "KTbh")] = _0x22d112[_0x56bd(299, "ACPk")];
    this[_0x56bd(1049, "s66k")] = null;
    0;
    this[_0x56bd(857, "H9os")] = client_1[_0x56bd(476, "m#S*")](_0x11fa48 => {
      this[_0x56bd(1550, "nj1b")]({
        type: _0x22d112[_0x56bd(527, "H9os")],
        online: _0x11fa48
      });
    });
  }
  [_0x56bd(590, "63N&")](_0x3b70b5, _0x5282a8, _0x49a978) {
    const _0x5b922e = {
      NRTxb: _0x56bd(2084, "iDwM"),
      MCtQT: _0x56bd(1053, "nY*("),
      RCwUS: _0x56bd(391, "KW&U"),
      gHWzN: _0x56bd(1024, "xK)8"),
      HxMUq: "switch",
      mVWLv: _0x56bd(2498, "X4(r"),
      kIVSE: "cleanEnv",
      ayNzd: "disable",
      XJsJS: "toggleProxy",
      TwlLk: _0x56bd(1910, "*&r5"),
      Yecgn: _0x56bd(1316, "7%8^"),
      ekYOQ: _0x56bd(1500, "6eWF"),
      sJjTI: "toggleSeamless",
      FtmLf: "getUserSwitchStatus",
      EflLA: _0x56bd(2475, "XKo0"),
      rXOaA: _0x56bd(631, "s66k"),
      OkEoz: _0x56bd(1091, "H9os"),
      SLxXS: "getAccountUsage",
      ehEEN: "checkVersion",
      myCHL: _0x56bd(704, "8Ee3"),
      KPDvL: _0x56bd(2291, "qOgW"),
      LHHus: _0x56bd(281, "bjRi"),
      ozgjT: "closeCursor"
    };
    this[_0x56bd(2105, "EJjX")] = _0x3b70b5;
    _0x3b70b5[_0x56bd(302, "T$OD")].options = {
      enableScripts: true,
      localResourceRoots: [this[_0x56bd(740, "T$OD")]]
    };
    _0x3b70b5[_0x56bd(454, "nj1b")][_0x56bd(1913, "63N&")] = this[_0x56bd(1416, "H9os")](_0x3b70b5[_0x56bd(454, "nj1b")]);
    _0x3b70b5[_0x56bd(800, "de]G")][_0x56bd(1508, "]I&e")](async _0x194d46 => {
      const _0x275d91 = {
        WZyWQ: _0x5b922e[_0x56bd(622, "LC6r")],
        ZXhkG: _0x5b922e[_0x56bd(633, "k$(5")]
      };
      if (_0x5b922e[_0x56bd(1115, "bZsS")] !== _0x5b922e[_0x56bd(1812, "@HDB")]) {
        switch (_0x194d46.type) {
          case _0x56bd(2024, "iDwM"):
            await this._handleActivate(_0x194d46[_0x56bd(621, "k$(5")]);
            break;
          case _0x5b922e[_0x56bd(551, "iDwM")]:
            await this[_0x56bd(509, "LC6r")]();
            break;
          case _0x56bd(1977, "yoC7"):
            await this._handleResetMachineId();
            break;
          case _0x5b922e.mVWLv:
            await this[_0x56bd(1410, "hSE]")]();
            break;
          case _0x5b922e[_0x56bd(611, "8@jo")]:
            await this[_0x56bd(1613, "^sHL")]();
            break;
          case _0x5b922e[_0x56bd(1083, "n8BU")]:
            await this._handleDisable();
            break;
          case _0x5b922e[_0x56bd(2434, "XKo0")]:
            await this._handleToggleProxy(_0x194d46[_0x56bd(1854, "fu8^")], _0x194d46[_0x56bd(2063, "EJjX")]);
            break;
          case "getProxyStatus":
            await this[_0x56bd(522, "K%5^")]();
            break;
          case _0x5b922e[_0x56bd(1624, "$SfD")]:
            await this[_0x56bd(1627, "63N&")]();
            break;
          case _0x56bd(976, "T$OD"):
            await this[_0x56bd(1604, "8Ee3")]();
            break;
          case _0x5b922e[_0x56bd(1120, "EJjX")]:
            await this[_0x56bd(2487, "DQte")]();
            break;
          case _0x5b922e.ekYOQ:
            await this[_0x56bd(320, "63N&")]();
            break;
          case _0x56bd(1771, "$SfD"):
            await this._handleRestoreSeamless();
            break;
          case _0x5b922e[_0x56bd(949, "7%8^")]:
            await this[_0x56bd(615, "@HDB")](_0x194d46.enabled);
            break;
          case _0x5b922e[_0x56bd(2155, "Ka)i")]:
            await this[_0x56bd(365, "DbBq")]();
            break;
          case _0x56bd(1412, "8Ee3"):
            await this._handleManualSeamlessSwitch();
            break;
          case _0x5b922e.EflLA:
            await this[_0x56bd(702, "0xfR")](_0x194d46[_0x56bd(1510, "POq&")]);
            break;
          case _0x5b922e[_0x56bd(1364, "fu8^")]:
            await this[_0x56bd(1611, "DbBq")]();
            break;
          case _0x5b922e.OkEoz:
            await this._handleGetCursorPath();
            break;
          case "getAccountUsage":
            await this[_0x56bd(2521, "K%5^")](_0x194d46[_0x56bd(762, "gvo7")]);
            break;
          case _0x56bd(2216, "DQte"):
            await this._handleGetAnnouncement();
            break;
          case _0x5b922e[_0x56bd(2319, "8@jo")]:
            await this._handleCheckVersion();
            break;
          case _0x5b922e[_0x56bd(487, "^S!O")]:
            await this[_0x56bd(816, "Ka)i")]();
            break;
          case _0x5b922e[_0x56bd(1651, "f)Dq")]:
            vscode[_0x56bd(328, "ck7z")].executeCommand(_0x5b922e[_0x56bd(311, "X4(r")]);
            break;
          case "closeCursor":
            0;
            await account_1.closeCursor();
            break;
        }
      } else {
        const _0x282668 = _0x275d91[_0x56bd(2473, "ck7z")];
        this[_0x56bd(1287, "hSE]")]({
          type: _0x275d91[_0x56bd(2182, "Aig!")],
          success: false,
          error: _0x282668,
          needAdmin: true
        });
        return;
      }
    });
    this[_0x56bd(2228, "qOgW")]();
    this[_0x56bd(1470, "ck7z")]();
  }
  async [_0x56bd(1856, "7%WS")]() {
    const _0x4da3ff = {
      TLsxY: _0x56bd(435, "$SfD"),
      KqsKI: _0x56bd(1208, "6eWF"),
      OEKzo: function (_0x3f2189, _0x48838e) {
        return _0x3f2189 !== _0x48838e;
      },
      krxOp: _0x56bd(1635, "Aig!"),
      lSeSm: _0x56bd(1516, "4)@$"),
      ubmNf: function (_0x29914e, _0x4e5d68) {
        return _0x29914e === _0x4e5d68;
      },
      yoPVW: "EtMGw",
      UGSnZ: "DVTND",
      jEejJ: "cursorpro.expireDate",
      lpyMQ: "cursorpro.switchRemaining",
      Auayd: _0x56bd(1041, "xK)8"),
      sbaFL: _0x56bd(1017, "DbBq"),
      dyUVf: _0x56bd(882, "k$(5")
    };
    const _0x844666 = this[_0x56bd(1368, "7%8^")][_0x56bd(790, "Ka)i")].get(_0x4da3ff[_0x56bd(2197, "DQte")]);
    if (!_0x844666) {
      if (_0x4da3ff[_0x56bd(770, "@HDB")]("NCQkd", _0x4da3ff[_0x56bd(1204, "^sHL")])) {
        return;
      } else {
        this[_0x56bd(1126, "$SfD")]({
          type: _0x56bd(1849, "B)Tn"),
          success: false,
          error: _0x56bd(585, "k$(5")
        });
        return;
      }
    }
    try {
      if (_0x4da3ff[_0x56bd(1688, "KW&U")] !== "QlWcq") {
        _0x24f700[_0x56bd(563, "6eWF")](_0x5ce57d, _0x2697d5, _0x4da3ff[_0x56bd(1058, "k$(5")]);
      } else {
        0;
        const _0x439524 = await client_1.verifyKey(_0x844666);
        if (_0x439524[_0x56bd(1307, "4)@$")] && _0x439524.valid) {
          if (_0x4da3ff[_0x56bd(1159, "8Ee3")](_0x4da3ff[_0x56bd(1292, "$SfD")], _0x4da3ff[_0x56bd(458, "gvo7")])) {
            const _0x3a2e35 = _0x45d671[_0x56bd(1309, "yoC7")](_0x1f88e9, _0x4da3ff[_0x56bd(1048, "akm5")]);
            _0x2710ef = this[_0x56bd(2126, "Ka)i")](_0x3a2e35);
          } else {
            await this._context.globalState[_0x56bd(1112, "hSE]")](_0x4da3ff[_0x56bd(2259, "8@jo")], _0x439524[_0x56bd(1866, "f)Dq")]);
            await this._context[_0x56bd(1129, "ck7z")][_0x56bd(1781, "akm5")](_0x4da3ff[_0x56bd(2037, "7%WS")], _0x439524[_0x56bd(1349, "^sHL")]);
            await this._context[_0x56bd(2093, "fu8^")][_0x56bd(1336, "qOgW")](_0x4da3ff[_0x56bd(1782, "]I&e")], _0x439524[_0x56bd(1868, "4)@$")]);
            this[_0x56bd(753, "k$(5")]({
              type: _0x4da3ff[_0x56bd(309, "xK)8")],
              valid: true,
              expireDate: _0x439524[_0x56bd(822, "XKo0")],
              switchRemaining: _0x439524[_0x56bd(2161, "de]G")],
              switchLimit: _0x439524[_0x56bd(883, "XKo0")]
            });
          }
        } else {
          this._postMessage({
            type: _0x4da3ff[_0x56bd(1098, "$SfD")],
            valid: false,
            expired: true,
            error: _0x439524[_0x56bd(999, "6eWF")] || _0x4da3ff[_0x56bd(1043, "DQte")]
          });
        }
      }
    } catch (_0xe8e14c) {
      console.error(_0x56bd(1246, "bZsS"), _0xe8e14c);
    }
  }
  async [_0x56bd(1352, "gvo7")](_0x1c33b1) {
    const _0x83ba47 = {
      cduDC: _0x56bd(2128, "8@jo"),
      dWzRy: function (_0x2eb04a, _0x1a63c1) {
        return _0x2eb04a(_0x1a63c1);
      },
      yiKQp: _0x56bd(2089, "K%5^"),
      loOtc: _0x56bd(2359, "qOgW"),
      fCoyb: function (_0x39f2f1, _0x5bc57a) {
        return _0x39f2f1 === _0x5bc57a;
      },
      hneyF: _0x56bd(1094, "akm5"),
      MeNSD: _0x56bd(1298, "DQte"),
      jfGyX: function (_0x341f1e, _0x13166d) {
        return _0x341f1e === _0x13166d;
      },
      vAxgQ: "ZyMNB",
      IStwX: _0x56bd(1962, "xK)8"),
      RiXWk: _0x56bd(271, "8Ee3"),
      tkwFD: _0x56bd(887, "KW&U"),
      oRfTW: _0x56bd(1444, "T$OD"),
      lnDvM: _0x56bd(1147, "7%WS"),
      bgJHu: _0x56bd(782, "@HDB"),
      lRVPz: _0x56bd(768, "m#S*"),
      mbyBU: _0x56bd(1361, "KW&U")
    };
    try {
      const _0x3b1ee2 = await this[_0x56bd(438, "B)Tn")]();
      if (_0x3b1ee2) {
        if (_0x83ba47[_0x56bd(2476, "^sHL")](_0x83ba47[_0x56bd(2445, "gvo7")], _0x56bd(1094, "akm5"))) {
          this._postMessage({
            type: _0x56bd(670, "KTbh"),
            success: false,
            error: _0x83ba47.MeNSD
          });
          return;
        } else {
          const _0x5234a5 = this._getHostsPath();
          if (_0x58e3ff[_0x56bd(583, "ACPk")](_0x5234a5)) {
            return _0x490712[_0x56bd(547, "@HDB")](_0x5234a5, _0x83ba47[_0x56bd(1892, "63N&")]);
          }
        }
      }
      this._cleanProxySettings();
      0;
      const _0x48d007 = await client_1[_0x56bd(1184, "bjRi")](_0x1c33b1);
      if (_0x48d007[_0x56bd(928, "f)Dq")] && _0x48d007.valid) {
        if (_0x83ba47[_0x56bd(2275, "ck7z")]("ZyMNB", _0x83ba47[_0x56bd(2114, "k$(5")])) {
          console.log("[CursorPro] 激活成功，后端返回:", {
            expire_date: _0x48d007[_0x56bd(1903, "k$(5")],
            switch_remaining: _0x48d007[_0x56bd(806, "nj1b")],
            switch_limit: _0x48d007[_0x56bd(267, "^S!O")]
          });
          await this[_0x56bd(613, "^S!O")].globalState[_0x56bd(1201, "*&r5")](_0x83ba47.tkwFD, _0x1c33b1);
          await this._context[_0x56bd(1221, "EJjX")][_0x56bd(1038, "ACPk")](_0x83ba47[_0x56bd(1110, "0xfR")], _0x48d007.expire_date);
          await this[_0x56bd(2142, "xK)8")][_0x56bd(446, "ACPk")][_0x56bd(1781, "akm5")](_0x56bd(975, "XKo0"), _0x48d007.switch_remaining);
          await this._context[_0x56bd(1221, "EJjX")][_0x56bd(389, "K%5^")](_0x83ba47[_0x56bd(520, "m#S*")], _0x48d007[_0x56bd(394, "H9os")]);
          this[_0x56bd(1346, "6eWF")]({
            type: _0x83ba47[_0x56bd(1804, "XKo0")],
            success: true,
            key: _0x1c33b1,
            expireDate: _0x48d007.expire_date,
            switchRemaining: _0x48d007[_0x56bd(1966, "K%5^")],
            switchLimit: _0x48d007[_0x56bd(725, "^sHL")]
          });
          0;
          extension_1[_0x56bd(2318, "H9os")]();
          await this._handleGetUserSwitchStatus();
        } else {
          _0x287901[_0x56bd(992, "ck7z")]("[CursorPro] 清理失败: " + _0x532653, _0x1db3e3);
        }
      } else if (_0x83ba47[_0x56bd(688, "POq&")] === _0x83ba47[_0x56bd(677, "8@jo")]) {
        const _0x1cf00a = _0x83ba47[_0x56bd(2374, "6eWF")](_0x931219, _0x83ba47[_0x56bd(528, "DbBq")]);
        if (_0x1cf00a[_0x56bd(2305, "63N&")]) {
          _0x4e3d1c[_0x56bd(2156, "^S!O")](_0x83ba47[_0x56bd(1540, "yoC7")], _0x1cf00a.version);
          return _0x1cf00a.version;
        }
      } else {
        this._postMessage({
          type: _0x83ba47[_0x56bd(1340, "gvo7")],
          success: false,
          error: _0x48d007[_0x56bd(377, "X4(r")] || _0x83ba47[_0x56bd(2209, "T$OD")]
        });
      }
    } catch (_0x40371b) {
      this._postMessage({
        type: _0x83ba47[_0x56bd(2303, "akm5")],
        success: false,
        error: _0x83ba47[_0x56bd(1655, "8@jo")]
      });
    }
  }
  async [_0x56bd(2278, "6hxd")]() {
    const _0x3e408e = {
      QReae: _0x56bd(1795, "m#S*"),
      OVooV: _0x56bd(1775, "EJjX"),
      SpDeq: "showToast",
      PTQOe: _0x56bd(1175, "nj1b"),
      YLEHJ: _0x56bd(1406, "m#S*"),
      eBTDM: "switched",
      kCeYh: _0x56bd(1542, "8@jo"),
      omFtC: _0x56bd(1475, "de]G"),
      XbTBi: function (_0x2bec63, _0x68602f) {
        return _0x2bec63 > _0x68602f;
      },
      pyrHY: function (_0x56ae50, _0xd521fd) {
        return _0x56ae50 !== _0xd521fd;
      },
      VqcBN: _0x56bd(2134, "KW&U"),
      bfgAG: _0x56bd(733, "7%WS")
    };
    const _0x11c87a = this[_0x56bd(1960, "6eWF")][_0x56bd(287, "H9os")][_0x56bd(1146, "nY*(")](_0x3e408e[_0x56bd(1865, "*&r5")]);
    if (!_0x11c87a) {
      this._postMessage({
        type: _0x3e408e[_0x56bd(361, "KW&U")],
        message: _0x3e408e[_0x56bd(625, "f)Dq")],
        icon: "⚠️"
      });
      return;
    }
    try {
      0;
      const _0xbe1a2d = await client_1[_0x56bd(735, "qOgW")](_0x11c87a);
      if (_0xbe1a2d[_0x56bd(1957, "8Ee3")]) {
        await this[_0x56bd(1636, "T$OD")][_0x56bd(1382, "bZsS")].update(_0x3e408e[_0x56bd(346, "Ka)i")], _0xbe1a2d[_0x56bd(2435, "K%5^")]);
        this._postMessage({
          type: _0x3e408e[_0x56bd(338, "LC6r")],
          success: true,
          email: _0xbe1a2d[_0x56bd(329, "m#S*")],
          switchRemaining: _0xbe1a2d[_0x56bd(2265, "8@jo")],
          switchLimit: this[_0x56bd(1304, "63N&")][_0x56bd(287, "H9os")].get(_0x3e408e[_0x56bd(1990, "ck7z")]) || 100
        });
        const _0x4b2796 = _0xbe1a2d.switchRemaining ?? 0;
        this[_0x56bd(1740, "H9os")]({
          type: _0x3e408e[_0x56bd(694, "nj1b")],
          switchRemaining: _0x4b2796,
          canSwitch: _0x4b2796 > 0,
          lockedAccount: _0xbe1a2d[_0x56bd(1701, "akm5")] ? {
            email: _0xbe1a2d[_0x56bd(1779, "7%WS")]
          } : null
        });
      } else if (_0x3e408e[_0x56bd(873, "T$OD")](_0x56bd(792, "yoC7"), _0x3e408e.VqcBN)) {
        this[_0x56bd(2461, "fu8^")]({
          type: _0x3e408e[_0x56bd(840, "k$(5")],
          success: false,
          error: _0xbe1a2d[_0x56bd(1277, "$SfD")] || "换号失败"
        });
      } else {
        _0x5b771a = _0x1474f8[1];
      }
    } catch (_0x41fa19) {
      if (_0x3e408e[_0x56bd(824, "akm5")](_0x56bd(777, "^S!O"), _0x3e408e[_0x56bd(1584, "DQte")])) {
        this[_0x56bd(2461, "fu8^")]({
          type: "switched",
          success: false,
          error: _0x56bd(899, "nj1b")
        });
      } else {
        _0xb585cb[_0x56bd(629, "6eWF")](_0x3e408e.QReae, _0x5d81f0);
      }
    }
  }
  async [_0x56bd(1064, "n8BU")](_0x51678f) {
    const _0x5df214 = {
      jAygU: function (_0x1a9516, _0x14e09c) {
        return _0x1a9516 === _0x14e09c;
      },
      lWsen: _0x56bd(367, "nj1b"),
      ujkvI: _0x56bd(1496, "@HDB"),
      nHvFA: "out",
      WYIiR: _0x56bd(472, "8@jo"),
      HukDC: _0x56bd(1770, "6hxd"),
      lAqMN: function (_0x4621bc, _0x5e828f) {
        return _0x4621bc === _0x5e828f;
      },
      uJtvK: _0x56bd(2190, "nY*("),
      klERN: _0x56bd(832, "bZsS"),
      qVIKa: _0x56bd(2243, "yoC7"),
      uJMyy: "没有写入权限，请使用 sudo 权限运行或修改文件权限",
      oogyg: "usageCheckResult",
      UUaYi: _0x56bd(2316, "^S!O"),
      NEcQR: _0x56bd(1644, "6hxd"),
      BPXIz: _0x56bd(1900, "H9os"),
      tWJGN: "修改 hosts 文件失败，请确保有管理员权限",
      pgeAO: _0x56bd(557, "yoC7"),
      yjRVE: function (_0x2c52bd, _0x27885e) {
        return _0x2c52bd === _0x27885e;
      },
      GXvhF: _0x56bd(2200, "xK)8"),
      tFDff: _0x56bd(2261, "gvo7"),
      IFUbF: "User",
      RqMFq: _0x56bd(2505, "n8BU"),
      tSjWJ: _0x56bd(680, "7%WS"),
      WnTYM: _0x56bd(464, "0xfR"),
      ByhnO: _0x56bd(718, "6eWF"),
      MPCdN: _0x56bd(336, "k$(5"),
      hrJHc: function (_0x223704, _0xb12866) {
        return _0x223704 === _0xb12866;
      },
      atmmx: _0x56bd(560, "^sHL"),
      qyuJo: _0x56bd(1641, "T$OD"),
      iOndu: _0x56bd(1697, "KW&U"),
      tfSWx: _0x56bd(1285, "^S!O"),
      UnRdA: function (_0x17b49d, _0x28b8c0) {
        return _0x17b49d !== _0x28b8c0;
      },
      FNcgD: _0x56bd(1821, "63N&"),
      JVIPE: "yLQZc",
      btARC: _0x56bd(2301, "6eWF"),
      pTffC: _0x56bd(2121, "X4(r"),
      taMeX: _0x56bd(1847, "bjRi"),
      QhViN: function (_0x3ede25, _0x102e15) {
        return _0x3ede25 === _0x102e15;
      },
      IenCN: _0x56bd(2486, "fu8^"),
      ktByd: _0x56bd(1255, "nj1b"),
      ydHCU: "telemetry.macMachineId",
      hYviy: _0x56bd(1822, "Ka)i"),
      ltTAn: _0x56bd(616, "ck7z"),
      WtTZw: _0x56bd(523, "*&r5"),
      bohEI: _0x56bd(2449, "63N&"),
      tqMKz: "win32",
      KhYFK: "hhZyB",
      TPjZV: function (_0x4acd6e, _0x4cbd0e) {
        return _0x4acd6e(_0x4cbd0e);
      },
      dxmvV: "[CursorPro] 注册表写入失败（可能需要管理员权限）:"
    };
    try {
      if (_0x56bd(1334, "T$OD") === _0x5df214[_0x56bd(991, "6hxd")]) {
        let _0x9583b2;
        if (_0x5df214[_0x56bd(436, "hSE]")](_0x48f1cd, _0x56bd(1182, "XKo0"))) {
          _0x9583b2 = _0x3e2a77.join(this[_0x56bd(2285, "7%8^")], _0x5df214[_0x56bd(290, "akm5")], "Resources", _0x5df214[_0x56bd(2519, "H9os")], _0x5df214[_0x56bd(2419, "ck7z")], "vs", _0x5df214[_0x56bd(326, "de]G")], _0x5df214[_0x56bd(1022, "LC6r")]);
        } else {
          _0x9583b2 = _0x4e0cd1.join(this[_0x56bd(1215, "n8BU")], _0x56bd(1493, "T$OD"), _0x5df214[_0x56bd(897, "]I&e")], _0x5df214[_0x56bd(2152, "POq&")], "vs", _0x5df214[_0x56bd(1422, "bZsS")], _0x5df214[_0x56bd(1569, "bZsS")]);
        }
        if (_0x240b48[_0x56bd(2158, "0xfR")](_0x9583b2)) {
          return _0x9583b2;
        }
      } else {
        const _0x33651c = process[_0x56bd(2503, "ck7z")][_0x56bd(2346, "bjRi")] || "";
        const _0x97018c = path[_0x56bd(264, "6hxd")](_0x33651c, _0x5df214[_0x56bd(1694, "8Ee3")], _0x5df214[_0x56bd(2020, "f)Dq")], _0x5df214.RqMFq, _0x5df214[_0x56bd(577, "LC6r")]);
        const _0x155e62 = path[_0x56bd(2310, "Aig!")](_0x33651c, _0x56bd(2414, "]I&e"), _0x5df214[_0x56bd(1181, "bjRi")], _0x5df214.RqMFq, "storage.json");
        const _0x392e23 = path[_0x56bd(1328, "KW&U")](_0x33651c, _0x5df214[_0x56bd(953, "gvo7")], _0x5df214.WnTYM);
        if (fs[_0x56bd(1191, "qOgW")](_0x97018c)) {
          const _0x37f13d = [];
          if (_0x51678f[_0x56bd(1746, "Ka)i")]) {
            _0x37f13d[_0x56bd(957, "de]G")]([_0x5df214[_0x56bd(2183, "Ka)i")], _0x51678f.accessToken]);
          }
          if (_0x51678f[_0x56bd(2432, "gvo7")]) {
            _0x37f13d[_0x56bd(1693, "6hxd")]([_0x5df214[_0x56bd(1986, "*&r5")], _0x51678f[_0x56bd(1565, "H9os")]]);
          }
          if (_0x51678f.email) {
            if (_0x5df214[_0x56bd(1718, "KW&U")] === "mIiuu") {
              _0xfb725b = _0x1931cc[_0x56bd(409, "hSE]")](_0x2dba3b[_0x56bd(1867, "DbBq")]());
            } else {
              _0x37f13d[_0x56bd(1920, "POq&")]([_0x5df214.qyuJo, _0x51678f[_0x56bd(353, "63N&")]]);
            }
          }
          if (_0x51678f[_0x56bd(831, "hSE]")]) {
            if (_0x5df214[_0x56bd(691, "akm5")] === "vhcuB") {
              const _0x637d29 = _0x1172a0[_0x56bd(1883, "hSE]")];
              let _0x5a842b = "没有写入权限";
              if (_0x5df214[_0x56bd(2416, "yoC7")](_0x637d29, _0x5df214.uJtvK)) {
                _0x5a842b = _0x5df214.klERN;
              } else if (_0x5df214[_0x56bd(711, "DQte")](_0x637d29, _0x5df214[_0x56bd(2118, "4)@$")])) {
                _0x5a842b = _0x5df214[_0x56bd(858, "7%8^")];
              }
              this._postMessage({
                type: "seamlessInjected",
                success: false,
                error: _0x5a842b,
                needAdmin: true,
                path: _0x24be1d
              });
              return;
            } else {
              _0x37f13d[_0x56bd(1991, "X4(r")]([_0x5df214.tfSWx, _0x51678f.membership_type]);
            }
          }
          if (_0x51678f[_0x56bd(1843, "bZsS")]) {
            if (_0x5df214[_0x56bd(1530, "LC6r")](_0x5df214[_0x56bd(1286, "yoC7")], "yLQZc")) {
              _0x37f13d[_0x56bd(2352, "qOgW")]([_0x5df214[_0x56bd(1819, "iDwM")], _0x51678f[_0x56bd(2273, "^S!O")]]);
            } else {
              _0x433bcf = _0x2003b8.dirname(_0x43cf7e);
            }
          }
          if (_0x51678f[_0x56bd(1224, "KTbh")]) {
            if (_0x5df214[_0x56bd(1507, "XKo0")] !== "fYfXI") {
              _0x37f13d.push([_0x5df214[_0x56bd(2348, "Ka)i")], _0x51678f[_0x56bd(918, "7%8^")]]);
            } else {
              this._postMessage({
                type: _0x5df214[_0x56bd(706, "4)@$")],
                success: true,
                needConfirm: true,
                costUSD: _0x2db93a[_0x56bd(2495, "B)Tn")](2),
                email: _0x28077f
              });
            }
          }
          0;
          await sqlite_1[_0x56bd(587, "m#S*")](_0x97018c, _0x37f13d);
          console[_0x56bd(445, "^sHL")](_0x56bd(1618, "]I&e"));
        }
        if (fs[_0x56bd(1826, "Aig!")](_0x155e62)) {
          if (_0x5df214[_0x56bd(2282, "bjRi")](_0x5df214[_0x56bd(612, "H9os")], _0x56bd(305, "^sHL"))) {
            const _0xc468de = _0x12337e.message || _0x352413[_0x56bd(1127, "DQte")] || _0x5df214.UUaYi;
            this[_0x56bd(1884, "63N&")]({
              type: _0x5df214.NEcQR,
              success: false,
              error: _0xc468de
            });
          } else {
            const _0x589109 = JSON.parse(fs.readFileSync(_0x155e62, "utf-8"));
            if (_0x51678f.machineId) {
              _0x589109[_0x5df214[_0x56bd(2117, "^sHL")]] = _0x51678f[_0x56bd(552, "]I&e")];
            }
            if (_0x51678f[_0x56bd(1616, "LC6r")]) {
              _0x589109["telemetry.macMachineId"] = _0x51678f[_0x56bd(1959, "8Ee3")];
            }
            if (_0x51678f[_0x56bd(322, "k$(5")]) {
              _0x589109[_0x56bd(2296, "DQte")] = _0x51678f.devDeviceId;
            }
            if (_0x51678f[_0x56bd(1671, "0xfR")]) {
              if (_0x5df214.hYviy === _0x5df214[_0x56bd(1533, "6hxd")]) {
                this._postMessage({
                  type: _0x5df214[_0x56bd(958, "POq&")],
                  success: false,
                  error: "修改 hosts 文件失败，请确保有管理员权限"
                });
                this[_0x56bd(1125, "DQte")]({
                  type: _0x5df214.pgeAO,
                  message: "需要管理员权限修改 hosts 文件",
                  icon: "⚠️"
                });
              } else {
                _0x589109[_0x56bd(495, "ACPk")] = _0x51678f[_0x56bd(2423, "hSE]")];
              }
            }
            fs[_0x56bd(563, "6eWF")](_0x155e62, JSON.stringify(_0x589109, null, 4));
            console[_0x56bd(1431, "fu8^")](_0x5df214[_0x56bd(924, "m#S*")]);
          }
        }
        if (_0x51678f.machineId) {
          fs[_0x56bd(2399, "iDwM")](_0x392e23, _0x51678f[_0x56bd(1544, "Ka)i")]);
          console[_0x56bd(2145, "nj1b")](_0x5df214[_0x56bd(1438, "n8BU")]);
        }
        if (_0x51678f[_0x56bd(277, "bZsS")] && process.platform === _0x5df214[_0x56bd(2332, "H9os")]) {
          if (_0x5df214[_0x56bd(1059, "6hxd")] === _0x5df214[_0x56bd(1614, "LC6r")]) {
            try {
              const _0x256ef2 = _0x56bd(2502, "ACPk") + _0x51678f.registryGuid + _0x56bd(687, "^sHL");
              await execAsync(_0x256ef2);
              console.log(_0x56bd(546, "7%WS"));
            } catch (_0x5c0e6a) {
              console.warn(_0x5df214[_0x56bd(2478, "]I&e")], _0x5c0e6a);
            }
          } else {
            _0x1b21f9 = _0x5df214[_0x56bd(1377, "LC6r")];
          }
        }
        return true;
      }
    } catch (_0x4bd56d) {
      console.error(_0x56bd(2516, "8@jo"), _0x4bd56d);
      vscode[_0x56bd(312, "0xfR")].showErrorMessage(_0x56bd(592, "63N&") + _0x4bd56d);
      return false;
    }
  }
  async [_0x56bd(1653, "Aig!")]() {
    const _0x178daf = {
      SWWgG: "4|0|3|5|2|1",
      uEcXh: "reset",
      eMKRt: "cursorpro.switchRemaining",
      FOwUP: _0x56bd(301, "xK)8")
    };
    const _0x46dec9 = "4|0|3|5|2|1"[_0x56bd(977, "bjRi")]("|");
    let _0x51aa2c = 0;
    while (true) {
      switch (_0x46dec9[_0x51aa2c++]) {
        case "0":
          await this._context.globalState[_0x56bd(862, "ck7z")](_0x56bd(2151, "bjRi"), undefined);
          continue;
        case "1":
          vscode[_0x56bd(1080, "EJjX")][_0x56bd(1994, "63N&")](_0x56bd(1543, "akm5"));
          continue;
        case "2":
          this[_0x56bd(672, "xK)8")]({
            type: "reset",
            success: true
          });
          continue;
        case "3":
          await this[_0x56bd(1708, "de]G")][_0x56bd(2204, "]I&e")].update(_0x178daf[_0x56bd(1491, "bjRi")], undefined);
          continue;
        case "4":
          await this[_0x56bd(330, "8@jo")][_0x56bd(357, "KW&U")][_0x56bd(1490, "de]G")](_0x178daf[_0x56bd(1236, "K%5^")], undefined);
          continue;
        case "5":
          0;
          extension_1[_0x56bd(2036, "gvo7")]();
          continue;
      }
      break;
    }
  }
  async _handleDisable() {
    await this._handleReset();
    vscode.window[_0x56bd(892, "n8BU")](_0x56bd(2470, "H9os"));
  }
  async _checkAdminPrivilege() {
    const _0x53e404 = {
      fAfUV: _0x56bd(1860, "*&r5"),
      Llgfj: function (_0x2ea46e, _0x597079) {
        return _0x2ea46e !== _0x597079;
      },
      pImJb: function (_0x3e6e32, _0x3b5f4c) {
        return _0x3e6e32(_0x3b5f4c);
      },
      wncyL: _0x56bd(1375, "n8BU")
    };
    if (process.platform !== _0x56bd(294, "ACPk")) {
      if (_0x56bd(421, "xK)8") === "FIUZS") {
        return true;
      } else {
        _0x2739b0 = _0x1385f5[_0x56bd(1216, "nY*(")](_0x2a3737, "Contents", _0x53e404[_0x56bd(942, "qOgW")], "app", _0x56bd(1179, "*&r5"));
      }
    }
    try {
      await _0x53e404[_0x56bd(555, "^sHL")](execAsync, _0x56bd(1828, "xK)8"));
      const _0x41176e = await execAsync(_0x53e404[_0x56bd(1612, "gvo7")])[_0x56bd(2349, "^S!O")](() => ({
        stdout: "",
        stderr: "error"
      }));
      return !_0x41176e.stderr;
    } catch (_0x6d5696) {
      return false;
    }
  }
  async [_0x56bd(2408, "7%8^")]() {
    const _0x3dfa6c = {
      lElIk: function (_0x3fa0c5, _0x578287) {
        return _0x3fa0c5 === _0x578287;
      },
      yJQQD: _0x56bd(1182, "XKo0"),
      oTJSZ: "Contents",
      sJMHZ: "Resources",
      tIdJk: _0x56bd(521, "gvo7"),
      rNqfB: _0x56bd(472, "8@jo"),
      PaBhO: _0x56bd(1105, "^sHL"),
      cDXTK: _0x56bd(2238, "akm5"),
      mseLD: function (_0x1a7b0a, _0x4298ee) {
        return _0x1a7b0a(_0x4298ee);
      },
      GpfdI: function (_0x561ce3, _0xd12af6) {
        return _0x561ce3 != _0xd12af6;
      },
      jGfgE: function (_0x4a5a60, _0x3f3e51) {
        return _0x4a5a60 !== _0x3f3e51;
      },
      SKKxx: _0x56bd(2248, "de]G"),
      WWGrA: "[CursorPro] Retry connect failed:",
      zEnsI: "networkStatus",
      VmkCj: _0x56bd(1600, "@HDB"),
      qukOr: _0x56bd(630, "ACPk"),
      nczgV: _0x56bd(1894, "K%5^"),
      BmSwh: "adminPermissionRequired",
      DUzlm: _0x56bd(387, "X4(r"),
      iOJby: _0x56bd(2517, "DQte"),
      SizrD: _0x56bd(2207, "nY*("),
      kVXre: _0x56bd(1961, "nj1b"),
      OoOvL: _0x56bd(686, "gvo7"),
      NrAHw: _0x56bd(1905, "KTbh"),
      DYlNA: _0x56bd(1392, "fu8^"),
      oWHkO: function (_0xa487f2, _0x46d29e) {
        return _0xa487f2 === _0x46d29e;
      },
      hazjj: _0x56bd(1460, "7%8^"),
      sltuA: _0x56bd(2417, "XKo0"),
      kdlCx: _0x56bd(1245, "ck7z"),
      yAadA: _0x56bd(1415, "akm5"),
      dVXng: function (_0x52e3f9, _0x1824a1) {
        return _0x52e3f9 > _0x1824a1;
      },
      jVCTI: function (_0x36b294, _0x50a679) {
        return _0x36b294 !== _0x50a679;
      },
      NgEqy: _0x56bd(1396, "DQte"),
      JHBVl: "[CursorPro] machineid 文件已更新",
      ihOph: _0x56bd(2538, "hSE]"),
      CUSOw: function (_0x5dca29, _0x1c0e29) {
        return _0x5dca29 > _0x1c0e29;
      },
      DXmLl: "UbSjF",
      XMamy: function (_0x56b6ca, _0x4d16fd) {
        return _0x56b6ca !== _0x4d16fd;
      },
      TStTT: _0x56bd(1468, "xK)8"),
      xXEyx: function (_0x41e747, _0x456d1f) {
        return _0x41e747 !== _0x456d1f;
      },
      iiJFH: "edqsV",
      dLXnX: function (_0x626dd4, _0x4c0c64) {
        return _0x626dd4 === _0x4c0c64;
      },
      IMEYC: function (_0x2f404e, _0x1aec5f) {
        return _0x2f404e === _0x1aec5f;
      },
      aYwpG: _0x56bd(317, "8Ee3"),
      EdOfO: "[CursorPro] SQLite 更新失败:",
      wSpvM: _0x56bd(294, "ACPk"),
      hhSrG: function (_0x247938, _0x48462e) {
        return _0x247938 === _0x48462e;
      },
      DAvAD: _0x56bd(841, "T$OD"),
      BkSzQ: _0x56bd(950, "^S!O"),
      WYomd: _0x56bd(715, "ACPk"),
      ZaPkC: function (_0x59cb29, _0x513094) {
        return _0x59cb29 >= _0x513094;
      },
      fVMJA: "machineIdReset",
      HiGXJ: _0x56bd(1380, "de]G"),
      SEsMN: function (_0x34e2fe, _0x135030) {
        return _0x34e2fe === _0x135030;
      },
      dGXfv: _0x56bd(744, "8@jo"),
      pKuzu: function (_0x3f0c5f, _0xdc4a4f) {
        return _0x3f0c5f !== _0xdc4a4f;
      },
      YfRLt: _0x56bd(300, "XKo0")
    };
    try {
      const _0x5ca938 = process[_0x56bd(675, "6hxd")];
      if (_0x3dfa6c[_0x56bd(1319, "de]G")](_0x5ca938, "win32")) {
        const _0x2196c3 = await this._checkAdminPrivilege();
        if (!_0x2196c3) {
          this[_0x56bd(2297, "6hxd")]({
            type: _0x3dfa6c[_0x56bd(823, "akm5")]
          });
          return;
        }
      }
      0;
      const _0x5e7765 = account_1[_0x56bd(2481, "de]G")]();
      const {
        dbPath: _0x4aa0cd,
        storagePath: _0x4a28ca,
        machineidPath: _0x2ec82c
      } = _0x5e7765;
      const _0x2aee57 = _0x3dfa6c[_0x56bd(1558, "nY*(")](require, _0x3dfa6c[_0x56bd(2447, "B)Tn")]);
      const _0x13d6be = _0x2aee57[_0x56bd(2413, "H9os")](32).toString(_0x3dfa6c.iOJby);
      const _0x4520aa = _0x2aee57.randomBytes(32).toString(_0x3dfa6c[_0x56bd(2008, "0xfR")]);
      const _0x5c9a5c = _0x2aee57[_0x56bd(1000, "^S!O")]();
      const _0x295e98 = "{" + _0x2aee57[_0x56bd(812, "6hxd")]()[_0x56bd(331, "63N&")]() + "}";
      let _0x42a386 = 0;
      let _0x410d72 = [];
      if (fs[_0x56bd(2158, "0xfR")](_0x4a28ca)) {
        if (_0x3dfa6c[_0x56bd(2235, "bjRi")] !== _0x56bd(1178, "4)@$")) {
          let _0x2d68ba;
          if (_0x3dfa6c[_0x56bd(1487, "qOgW")](_0x1eaffe, _0x3dfa6c[_0x56bd(2535, "POq&")])) {
            _0x2d68ba = _0x5e5bb2[_0x56bd(2479, "0xfR")](_0xae64c7, "Contents", _0x3dfa6c[_0x56bd(1742, "^sHL")], _0x3dfa6c[_0x56bd(1596, "DQte")], _0x56bd(2537, "LC6r"), "vs", _0x3dfa6c.rNqfB, _0x3dfa6c[_0x56bd(2402, "K%5^")]);
          } else {
            _0x2d68ba = _0x2996fd[_0x56bd(1133, "gvo7")](_0x5b8900, _0x56bd(1720, "qOgW"), _0x56bd(1780, "*&r5"), _0x3dfa6c[_0x56bd(1749, "DbBq")], "vs", _0x3dfa6c[_0x56bd(946, "akm5")], _0x3dfa6c.PaBhO);
          }
          if (_0xdd2a05.existsSync(_0x2d68ba)) {
            return _0x2d68ba;
          }
        } else {
          let _0x32a80e = 3;
          while (_0x32a80e > 0) {
            try {
              const _0x34dbe5 = JSON[_0x56bd(1744, "@HDB")](fs.readFileSync(_0x4a28ca, _0x3dfa6c[_0x56bd(524, "X4(r")]));
              _0x34dbe5[_0x56bd(2175, "6eWF")] = _0x13d6be;
              _0x34dbe5[_0x3dfa6c[_0x56bd(1474, "DbBq")]] = _0x4520aa;
              _0x34dbe5[_0x3dfa6c[_0x56bd(886, "*&r5")]] = _0x5c9a5c;
              _0x34dbe5[_0x56bd(1395, "XKo0")] = _0x295e98;
              fs.writeFileSync(_0x4a28ca, JSON[_0x56bd(2382, "bZsS")](_0x34dbe5, null, 4));
              console[_0x56bd(1638, "7%WS")](_0x3dfa6c.DYlNA);
              _0x42a386++;
              break;
            } catch (_0x408e1a) {
              _0x32a80e--;
              if (_0x32a80e === 0) {
                if (_0x3dfa6c[_0x56bd(1774, "6hxd")](_0x56bd(263, "T$OD"), _0x3dfa6c[_0x56bd(864, "DQte")])) {
                  _0x5162ea.rmSync(_0x9608e0, {
                    recursive: true,
                    force: true
                  });
                  _0x12202b++;
                  _0x22902f.log("[CursorPro] 已清理: " + _0x566ae7);
                } else {
                  console[_0x56bd(1167, "7%WS")](_0x3dfa6c[_0x56bd(2082, "bjRi")], _0x408e1a[_0x56bd(895, "nj1b")]);
                  _0x410d72[_0x56bd(662, "bZsS")](_0x3dfa6c.kdlCx);
                }
              } else {
                await new Promise(_0x1fb805 => setTimeout(_0x1fb805, 100));
              }
            }
          }
        }
      }
      {
        if (_0x3dfa6c[_0x56bd(1605, "nj1b")](_0x3dfa6c.yAadA, _0x56bd(1278, "6hxd"))) {
          var _0x2a4a6e = [];
          for (var _0x3716c4 in _0x3f83c7) {
            if (_0x2daf25[_0x56bd(2071, "X4(r")][_0x56bd(1294, "qOgW")][_0x56bd(1682, "7%8^")](_0x1170bb, _0x3716c4)) {
              _0x2a4a6e[_0x2a4a6e.length] = _0x3716c4;
            }
          }
          return _0x2a4a6e;
        } else {
          let _0x3e6f5a = 3;
          while (_0x3e6f5a > 0) {
            try {
              const _0x91b94a = path.dirname(_0x2ec82c);
              if (!fs[_0x56bd(779, "DbBq")](_0x91b94a)) {
                if (_0x3dfa6c[_0x56bd(1206, "7%8^")]("UjEXX", _0x3dfa6c.NgEqy)) {
                  fs[_0x56bd(1674, "KTbh")](_0x91b94a, {
                    recursive: true
                  });
                } else {
                  return _0x5ad776;
                }
              }
              fs[_0x56bd(1360, "X4(r")](_0x2ec82c, _0x13d6be);
              console[_0x56bd(2066, "bZsS")](_0x3dfa6c[_0x56bd(2053, "qOgW")]);
              _0x42a386++;
              break;
            } catch (_0x15034e) {
              _0x3e6f5a--;
              if (_0x3e6f5a === 0) {
                console[_0x56bd(1670, "Aig!")](_0x56bd(1447, "8Ee3"), _0x15034e[_0x56bd(1942, "POq&")]);
                _0x410d72.push(_0x3dfa6c[_0x56bd(485, "POq&")]);
              } else {
                await new Promise(_0x128d98 => setTimeout(_0x128d98, 100));
              }
            }
          }
        }
      }
      if (fs[_0x56bd(2012, "bZsS")](_0x4aa0cd)) {
        let _0x46b5f7 = 3;
        while (_0x3dfa6c[_0x56bd(2009, "bZsS")](_0x46b5f7, 0)) {
          if (_0x56bd(2358, "nj1b") === _0x3dfa6c[_0x56bd(1297, "H9os")]) {
            try {
              if (_0x56bd(506, "bZsS") !== _0x3dfa6c[_0x56bd(2342, "POq&")]) {
                const _0x49da25 = _0x2aee57.randomUUID();
                0;
                const _0x44bd41 = await sqlite_1.sqliteSetBatch(_0x4aa0cd, [["storage.serviceMachineId", _0x49da25]]);
                if (_0x44bd41) {
                  console[_0x56bd(1013, "T$OD")](_0x56bd(731, "bjRi"));
                  _0x42a386++;
                  break;
                } else if (_0x56bd(1515, "s66k") !== "edqsV") {
                  const _0x480394 = {
                    JDiGp: function (_0x296746, _0xe4a731) {
                      return _0x3dfa6c[_0x56bd(1686, "de]G")](_0x296746, _0xe4a731);
                    },
                    UJfLB: function (_0x5d0056, _0x5c568b) {
                      return _0x3dfa6c[_0x56bd(536, "B)Tn")](_0x5d0056, _0x5c568b);
                    },
                    YIhbu: _0x3dfa6c[_0x56bd(2453, "X4(r")],
                    hQSHL: function (_0x2ecb26, _0x249a15, _0x4919c7, _0x430d9c) {
                      return _0x2ecb26(_0x249a15, _0x4919c7, _0x430d9c);
                    },
                    iFgQw: function (_0x3a1ffc, _0x7ebf92, _0x57e599) {
                      return _0x3a1ffc(_0x7ebf92, _0x57e599);
                    }
                  };
                  function _0x4b98ab(_0x111b39) {
                    _0x4b98ab = _0x2160f7.getOwnPropertyNames || function (_0x130daa) {
                      var _0x41f8fb = [];
                      for (var _0x670bc2 in _0x130daa) {
                        if (_0x75a24e.prototype[_0x56bd(1306, "Aig!")][_0x56bd(1568, "de]G")](_0x130daa, _0x670bc2)) {
                          _0x41f8fb[_0x41f8fb[_0x56bd(679, "^S!O")]] = _0x670bc2;
                        }
                      }
                      return _0x41f8fb;
                    };
                    return _0x3dfa6c[_0x56bd(529, "Aig!")](_0x4b98ab, _0x111b39);
                  }
                  return function (_0x20bb6b) {
                    if (_0x20bb6b && _0x20bb6b[_0x56bd(1469, "H9os")]) {
                      return _0x20bb6b;
                    }
                    var _0x2c00be = {};
                    if (_0x480394[_0x56bd(2457, "0xfR")](_0x20bb6b, null)) {
                      var _0x11069f = _0x4b98ab(_0x20bb6b);
                      for (var _0x2599df = 0; _0x2599df < _0x11069f[_0x56bd(415, "de]G")]; _0x2599df++) {
                        if (_0x3dfa6c[_0x56bd(536, "B)Tn")](_0x11069f[_0x2599df], _0x480394[_0x56bd(1652, "bZsS")])) {
                          _0x480394[_0x56bd(1791, "qOgW")](_0x674927, _0x2c00be, _0x20bb6b, _0x11069f[_0x2599df]);
                        }
                      }
                    }
                    _0x480394[_0x56bd(2443, "7%WS")](_0x240286, _0x2c00be, _0x20bb6b);
                    return _0x2c00be;
                  };
                } else {
                  throw new Error(_0x56bd(915, "EJjX"));
                }
              } else {
                throw new _0x1a22ee(_0x56bd(891, "nY*("));
              }
            } catch (_0xfa28ae) {
              _0x46b5f7--;
              if (_0x3dfa6c[_0x56bd(1580, "7%8^")](_0x46b5f7, 0)) {
                if (_0x3dfa6c[_0x56bd(850, "f)Dq")]("pUuQI", _0x3dfa6c[_0x56bd(1769, "B)Tn")])) {
                  _0x964a59[_0x56bd(2003, "^sHL")](_0x3dfa6c[_0x56bd(1390, "*&r5")], _0x9baa98);
                  this[_0x56bd(586, "f)Dq")]({
                    type: "networkStatus",
                    online: false
                  });
                } else {
                  console[_0x56bd(1806, "0xfR")](_0x3dfa6c[_0x56bd(2514, "0xfR")], _0xfa28ae[_0x56bd(817, "]I&e")]);
                  _0x410d72[_0x56bd(757, "7%WS")](_0x56bd(1134, "H9os"));
                }
              } else {
                await new Promise(_0x1eb4ea => setTimeout(_0x1eb4ea, 500));
              }
            }
          } else {
            _0x38b61c = _0xf3fbd6[_0x56bd(1035, "B)Tn")]();
          }
        }
      }
      if (_0x5ca938 === _0x3dfa6c.wSpvM) {
        if (_0x3dfa6c[_0x56bd(654, "bjRi")] === "uxdjv") {
          const _0xc2bf8b = _0x2aee57[_0x56bd(778, "LC6r")]();
          try {
            if (_0x3dfa6c[_0x56bd(842, "Ka)i")](_0x3dfa6c.BkSzQ, _0x56bd(588, "ck7z"))) {
              await execAsync(_0x56bd(769, "X4(r") + _0xc2bf8b + _0x56bd(1417, "@HDB"));
              console.log(_0x3dfa6c[_0x56bd(1359, "63N&")]);
              _0x42a386++;
            } else {
              this[_0x56bd(1948, "qOgW")]({
                type: _0x3dfa6c[_0x56bd(952, "T$OD")],
                success: false,
                error: _0x29f22d[_0x56bd(917, "EJjX")] || _0x3dfa6c[_0x56bd(1483, "nY*(")]
              });
              return;
            }
          } catch (_0x2a0e47) {
            console.warn(_0x56bd(2311, "63N&"));
            _0x410d72[_0x56bd(422, "8@jo")](_0x56bd(1101, "DbBq"));
          }
        } else {
          _0x45c2d2 = _0x2be321[_0x56bd(500, "H9os")] || function (_0x5aff3b) {
            var _0x2ac6fe = [];
            for (var _0x56e238 in _0x5aff3b) {
              if (_0x17dada[_0x56bd(1177, "@HDB")][_0x56bd(813, "7%8^")][_0x56bd(1915, "gvo7")](_0x5aff3b, _0x56e238)) {
                _0x2ac6fe[_0x2ac6fe.length] = _0x56e238;
              }
            }
            return _0x2ac6fe;
          };
          return _0x6e782f(_0x5c5de0);
        }
      }
      if (_0x3dfa6c[_0x56bd(478, "K%5^")](_0x42a386, 2)) {
        this[_0x56bd(2383, "Aig!")]({
          type: _0x3dfa6c[_0x56bd(1156, "H9os")],
          success: true,
          needRestart: true,
          message: _0x3dfa6c[_0x56bd(2233, "fu8^")](_0x410d72[_0x56bd(1721, "yoC7")], 0) ? _0x56bd(2442, "DbBq") + _0x410d72[_0x56bd(518, "ACPk")](", ") + _0x56bd(1567, "Aig!") : _0x3dfa6c[_0x56bd(661, "$SfD")]
        });
      } else if (_0x56bd(1449, "6eWF") === _0x3dfa6c[_0x56bd(1982, "nj1b")]) {
        _0xb3a25e[_0x56bd(960, "B)Tn")]("[CursorPro] 尝试路径失败:", _0x35bfac, _0x26703c);
      } else {
        this._postMessage({
          type: _0x56bd(2139, "7%WS"),
          message: _0x56bd(1338, "0xfR") + _0x410d72[_0x56bd(518, "ACPk")](", ") + _0x56bd(2343, "7%WS"),
          icon: "⚠️"
        });
      }
    } catch (_0x2bd1a8) {
      if (_0x56bd(981, "f)Dq") !== _0x3dfa6c.YfRLt) {
        _0x2757ce[_0x56bd(2014, "de]G")](_0x3dfa6c[_0x56bd(652, "n8BU")]);
      } else {
        this[_0x56bd(1079, "ACPk")]({
          type: _0x56bd(2507, "m#S*"),
          message: "重置机器码失败: " + _0x2bd1a8,
          icon: "❌"
        });
      }
    }
  }
  _generateRandomMAC() {
    const _0x351246 = {
      gsyrk: function (_0x2456e7, _0x15dd24) {
        return _0x2456e7(_0x15dd24);
      },
      lYDrY: "crypto",
      RmNIb: function (_0x562f1e, _0xc0a2a9) {
        return _0x562f1e & _0xc0a2a9;
      },
      WCBzn: function (_0x233015, _0x3ca3bf) {
        return _0x233015 | _0x3ca3bf;
      }
    };
    const _0x539ee8 = _0x351246[_0x56bd(603, "6hxd")](require, _0x351246[_0x56bd(494, "k$(5")]);
    const _0x58dc79 = _0x539ee8[_0x56bd(2026, "^sHL")](6);
    _0x58dc79[0] = _0x351246[_0x56bd(1065, "f)Dq")](_0x351246[_0x56bd(1187, "xK)8")](_0x58dc79[0], 2), 254);
    return Array.from(_0x58dc79).map(_0x2d538f => _0x2d538f[_0x56bd(1947, "bZsS")](16)[_0x56bd(410, "6eWF")](2, "0"))[_0x56bd(2310, "Aig!")](":");
  }
  async _handleDisableUpdate() {
    const _0xcdd27f = {
      SlsxX: function (_0x2f9c04, _0x4c19d7) {
        return _0x2f9c04 + _0x4c19d7;
      },
      obUIO: _0x56bd(1023, "bZsS"),
      MTNiO: function (_0x2e30f3, _0x4ab64b) {
        return _0x2e30f3 !== _0x4ab64b;
      },
      Bhmmc: "Fkark",
      WHolg: _0x56bd(1827, "yoC7"),
      vJjHJ: "showToast",
      KkOxm: _0x56bd(2522, "f)Dq")
    };
    try {
      const _0x24fe79 = process[_0x56bd(747, "8Ee3")][_0x56bd(395, "^sHL")] || "";
      const _0xac3e10 = path[_0x56bd(565, "nj1b")](_0x24fe79, _0xcdd27f[_0x56bd(2379, "n8BU")]);
      if (fs[_0x56bd(1191, "qOgW")](_0xac3e10)) {
        if (_0xcdd27f[_0x56bd(597, "s66k")](_0xcdd27f[_0x56bd(1732, "LC6r")], _0xcdd27f[_0x56bd(723, "f)Dq")])) {
          return false;
        } else if (fs.statSync(_0xac3e10).isDirectory()) {
          if (_0xcdd27f[_0x56bd(1756, "POq&")](_0xcdd27f.WHolg, _0x56bd(2219, "bZsS"))) {
            _0x5481a7 = _0x5e122b.substring(0, _0x4f63e3) + _0x214640[_0x56bd(1689, "POq&")](_0xcdd27f[_0x56bd(2482, "7%WS")](_0x5cc883, 7));
          } else {
            fs[_0x56bd(1823, "63N&")](_0xac3e10, {
              recursive: true,
              force: true
            });
          }
        } else {
          fs[_0x56bd(2254, "nj1b")](_0xac3e10);
        }
      }
      fs[_0x56bd(341, "EJjX")](_0xac3e10, "");
      this[_0x56bd(672, "xK)8")]({
        type: "showToast",
        message: _0xcdd27f[_0x56bd(2061, "ACPk")],
        icon: "✅"
      });
    } catch (_0x387797) {
      this._postMessage({
        type: _0xcdd27f[_0x56bd(2331, "DbBq")],
        message: _0x56bd(821, "LC6r") + _0x387797,
        icon: "❌"
      });
    }
  }
  async [_0x56bd(1520, "bjRi")]() {
    const _0x5d7007 = {
      QgDaW: _0x56bd(1699, "DQte"),
      rCPOJ: _0x56bd(2270, "7%8^"),
      FZidX: _0x56bd(456, "4)@$"),
      nLBbF: _0x56bd(1194, "KTbh"),
      tRjSQ: _0x56bd(698, "H9os"),
      BlfQc: _0x56bd(2392, "k$(5"),
      JlTFY: "activated",
      cqICS: _0x56bd(2186, "ck7z"),
      JPunF: _0x56bd(2098, "Aig!"),
      KMKzx: _0x56bd(994, "nY*("),
      xFYQT: _0x56bd(1462, "XKo0"),
      hxRZC: _0x56bd(1220, "POq&"),
      SPguA: "_showNotification",
      IjZFI: _0x56bd(984, "k$(5"),
      JiWRI: _0x56bd(1879, "de]G"),
      aPXBq: function (_0x449fed, _0x1e0222) {
        return _0x449fed === _0x1e0222;
      },
      pYIFs: function (_0x3cef7a, _0x51f2f4) {
        return _0x3cef7a in _0x51f2f4;
      },
      JBwTr: "get",
      koIoR: function (_0x43e103, _0x5178fd) {
        return _0x43e103 === _0x5178fd;
      },
      PGlXD: _0x56bd(869, "6eWF"),
      GTTuL: function (_0x5b1681, _0x264692) {
        return _0x5b1681 === _0x264692;
      },
      Psmij: _0x56bd(948, "DQte"),
      gYxAu: "xYuSE",
      MuQDV: function (_0x4cb02b, _0x14cda9) {
        return _0x4cb02b(_0x14cda9);
      },
      IKcBt: _0x56bd(713, "LC6r"),
      RPLYj: function (_0x1c7600, _0xe03586) {
        return _0x1c7600 === _0xe03586;
      },
      MGVKs: function (_0x4fe688, _0x467499) {
        return _0x4fe688 !== _0x467499;
      },
      ryaos: "uKgvW",
      voPhc: _0x56bd(1209, "K%5^"),
      lXGbz: _0x56bd(844, "]I&e"),
      xKriv: _0x56bd(431, "f)Dq"),
      ZoVAa: "CTJTi",
      MCBOh: _0x56bd(2069, "DQte"),
      pGLVT: _0x56bd(859, "de]G"),
      OUBfk: _0x56bd(959, "m#S*"),
      FYnvF: "Caches",
      uIkRt: _0x56bd(2109, "qOgW"),
      tQzIF: _0x56bd(914, "KW&U"),
      HlGXa: _0x56bd(2520, "0xfR"),
      EtSsM: _0x56bd(1066, "s66k"),
      FNyIR: _0x56bd(517, "K%5^"),
      WPZrs: "udDhy",
      jyFFs: ".cache",
      hMrGj: _0x56bd(772, "nj1b"),
      ISlsh: _0x56bd(405, "hSE]"),
      yteSk: "lkchx",
      Prgty: _0x56bd(564, "n8BU"),
      WVkud: _0x56bd(1172, "bjRi"),
      okltc: _0x56bd(666, "0xfR")
    };
    try {
      if (process[_0x56bd(1421, "s66k")] === _0x5d7007.PGlXD) {
        await execAsync("taskkill /F /IM Cursor.exe")[_0x56bd(1153, "Aig!")](() => {});
      } else if (_0x5d7007[_0x56bd(502, "8@jo")] === _0x5d7007[_0x56bd(2378, "gvo7")]) {
        this._postMessage({
          type: _0x56bd(1016, "EJjX"),
          message: _0x56bd(566, "4)@$") + _0xaf40e5,
          icon: "❌"
        });
      } else {
        await _0x5d7007[_0x56bd(1350, "k$(5")](execAsync, _0x5d7007[_0x56bd(1366, "XKo0")]).catch(() => {});
      }
      await new Promise(_0x30bca7 => setTimeout(_0x30bca7, 2000));
      const _0x27dda7 = process.env[_0x56bd(2466, "]I&e")] || "";
      const _0x2dfaf0 = process[_0x56bd(1071, "]I&e")].LOCALAPPDATA || "";
      const _0x2bcaef = process[_0x56bd(2292, "n8BU")].HOME || process.env[_0x56bd(1093, "*&r5")] || "";
      let _0x1e982b = 0;
      if (process.platform === _0x5d7007[_0x56bd(1837, "H9os")]) {
        if (_0x5d7007[_0x56bd(912, "k$(5")]("OMLAe", _0x5d7007[_0x56bd(1958, "Aig!")])) {
          const _0x680500 = [path.join(_0x27dda7, _0x5d7007[_0x56bd(2130, "hSE]")]), path[_0x56bd(2293, "POq&")](_0x2dfaf0, _0x5d7007[_0x56bd(1758, "ACPk")]), path[_0x56bd(834, "iDwM")](_0x2dfaf0, _0x5d7007.lXGbz), path[_0x56bd(264, "6hxd")](_0x2bcaef, _0x5d7007[_0x56bd(1231, "X4(r")])];
          for (const _0x395cca of _0x680500) {
            if (_0x5d7007[_0x56bd(657, "8Ee3")] !== _0x56bd(1553, "*&r5")) {
              this._postMessage({
                type: "userSwitchStatus",
                valid: false,
                switchRemaining: 0,
                canSwitch: false,
                error: "获取状态失败"
              });
            } else {
              try {
                if (fs[_0x56bd(717, "63N&")](_0x395cca)) {
                  if (_0x5d7007[_0x56bd(1039, "nY*(")](_0x5d7007[_0x56bd(266, "DbBq")], _0x5d7007[_0x56bd(1972, "hSE]")])) {
                    this[_0x56bd(1802, "*&r5")]({
                      type: _0x5d7007[_0x56bd(504, "B)Tn")],
                      online: _0x1e9bca
                    });
                  } else {
                    fs[_0x56bd(1599, "^S!O")](_0x395cca, {
                      recursive: true,
                      force: true
                    });
                    _0x1e982b++;
                    console[_0x56bd(1439, "POq&")](_0x56bd(1213, "KW&U") + _0x395cca);
                  }
                }
              } catch (_0x47ea0c) {
                console[_0x56bd(1890, "KTbh")](_0x56bd(460, "POq&") + _0x395cca, _0x47ea0c);
              }
            }
          }
        } else {
          _0x305e73[_0x56bd(1218, "*&r5")](_0x5d7007[_0x56bd(1006, "s66k")]);
        }
      } else if (process[_0x56bd(1421, "s66k")] === _0x5d7007[_0x56bd(697, "@HDB")]) {
        const _0x173109 = [path[_0x56bd(2452, "Ka)i")](_0x2bcaef, _0x56bd(651, "bjRi"), "Application Support", _0x5d7007[_0x56bd(1531, "qOgW")]), path[_0x56bd(380, "ck7z")](_0x2bcaef, _0x56bd(1119, "B)Tn"), _0x5d7007[_0x56bd(2501, "^S!O")], _0x5d7007[_0x56bd(2130, "hSE]")]), path[_0x56bd(834, "iDwM")](_0x2bcaef, _0x5d7007.uIkRt, _0x5d7007[_0x56bd(1254, "xK)8")], _0x5d7007.voPhc), path.join(_0x2bcaef, "Library", _0x56bd(2067, "X4(r"), "Caches", _0x5d7007.lXGbz), path[_0x56bd(1073, "^S!O")](_0x2bcaef, _0x5d7007[_0x56bd(1797, "H9os")])];
        for (const _0x151011 of _0x173109) {
          if (_0x56bd(1326, "8@jo") === _0x56bd(1014, "4)@$")) {
            const _0x4223b9 = _0x6afa13[_0x56bd(2280, "KTbh")](_0x263f1d, "utf-8");
            const _0x4ffeb2 = _0x2673e3[_0x56bd(970, "Aig!")](_0x4223b9);
            if (_0x4ffeb2[_0x56bd(1933, "$SfD")]) {
              _0x4e128b[_0x56bd(1940, "n8BU")](_0x5d7007[_0x56bd(1998, "bjRi")], _0x4ffeb2[_0x56bd(2206, "EJjX")], _0x5d7007[_0x56bd(543, "DQte")], _0x3afc55);
              return _0x4ffeb2[_0x56bd(572, "hSE]")];
            }
          } else {
            try {
              if (fs[_0x56bd(1608, "7%WS")](_0x151011)) {
                if (_0x5d7007[_0x56bd(1777, "yoC7")] !== _0x5d7007[_0x56bd(2226, "4)@$")]) {
                  fs[_0x56bd(1823, "63N&")](_0x151011, {
                    recursive: true,
                    force: true
                  });
                  _0x1e982b++;
                } else {
                  this[_0x56bd(1740, "H9os")]({
                    type: _0x5d7007[_0x56bd(2306, "K%5^")],
                    success: false,
                    error: _0x1b6792.error || _0x5d7007[_0x56bd(739, "KTbh")]
                  });
                }
              }
            } catch (_0x52cb05) {
              if (_0x5d7007.FNyIR !== _0x5d7007[_0x56bd(1893, "n8BU")]) {
                console[_0x56bd(2056, "n8BU")](_0x56bd(1610, "^sHL") + _0x151011, _0x52cb05);
              } else {
                this[_0x56bd(2250, "X4(r")]({
                  type: _0x5d7007[_0x56bd(1538, "63N&")],
                  success: false,
                  error: _0xd37ccd[_0x56bd(1887, "ACPk")] || _0x5d7007[_0x56bd(748, "nY*(")]
                });
              }
            }
          }
        }
      } else {
        const _0x305f11 = [path[_0x56bd(1722, "4)@$")](_0x2bcaef, _0x56bd(1951, "^sHL"), _0x5d7007[_0x56bd(1707, "B)Tn")]), path.join(_0x2bcaef, _0x5d7007[_0x56bd(1295, "nY*(")], _0x5d7007[_0x56bd(760, "LC6r")]), path[_0x56bd(2304, "@HDB")](_0x2bcaef, _0x5d7007[_0x56bd(1561, "ck7z")], _0x5d7007.ISlsh, _0x5d7007.voPhc), path[_0x56bd(2388, "fu8^")](_0x2bcaef, _0x5d7007.xKriv)];
        for (const _0x5bbdfa of _0x305f11) {
          if (_0x5d7007[_0x56bd(2102, "k$(5")] !== "lkchx") {
            _0x17a266[_0x56bd(1117, "T$OD")](_0x5d7007[_0x56bd(2136, "k$(5")]);
            _0xc8224e[_0x56bd(2122, "nj1b")](_0x5d7007[_0x56bd(1214, "DQte")], _0x45b7c8);
            _0x557053[_0x56bd(642, "K%5^")](_0x5d7007[_0x56bd(1026, "EJjX")], _0x27fd6a.length);
            _0x3c4a59[_0x56bd(1037, "7%WS")](_0x5d7007.hxRZC, _0x23fb79);
            const _0x1c19d0 = _0x54cc25[_0x56bd(692, "akm5")]("_showNotification");
            const _0x605a0e = _0x4b5d6c[_0x56bd(635, "POq&")](_0x56bd(1386, "H9os"));
            _0x24e1b7.error(_0x56bd(738, "^sHL"), _0x1c19d0);
            _0x16679d[_0x56bd(397, "bZsS")]("[CursorPro] 包含 getItems():", _0x605a0e);
            this[_0x56bd(1479, "de]G")]({
              type: _0x5d7007[_0x56bd(974, "hSE]")],
              success: false,
              error: _0x5d7007[_0x56bd(1389, "H9os")],
              details: "路径: " + _0x8d33d3
            });
            return;
          } else {
            try {
              if (fs.existsSync(_0x5bbdfa)) {
                fs.rmSync(_0x5bbdfa, {
                  recursive: true,
                  force: true
                });
                _0x1e982b++;
              }
            } catch (_0x3fff64) {
              if (_0x5d7007[_0x56bd(2284, "X4(r")] === "SPIaC") {
                console[_0x56bd(515, "7%8^")](_0x56bd(1124, "*&r5") + _0x5bbdfa, _0x3fff64);
              } else {
                if (_0x5a8ee0 === _0x67147f) {
                  _0x11f2b9 = _0x3ddb74;
                }
                var _0x5443a8 = _0x3e5510[_0x56bd(2393, "6hxd")](_0xf4f8d, _0x23f58b);
                if (!_0x5443a8 || (_0x5d7007[_0x56bd(1975, "s66k")]("get", _0x5443a8) ? !_0x30ad0e[_0x56bd(2508, "qOgW")] : _0x5443a8[_0x56bd(2059, "*&r5")] || _0x5443a8[_0x56bd(1659, "s66k")])) {
                  _0x5443a8 = {
                    enumerable: true,
                    get: function () {
                      return _0x3769fc[_0x59f7bf];
                    }
                  };
                }
                _0xdc785.defineProperty(_0x25dfad, _0x4b142f, _0x5443a8);
              }
            }
          }
        }
      }
      vscode[_0x56bd(1252, "LC6r")][_0x56bd(1750, "ACPk")](_0x56bd(434, "qOgW") + _0x1e982b + " 个目录。请重新启动 Cursor。");
    } catch (_0x559de5) {
      if (_0x5d7007[_0x56bd(1437, "f)Dq")] !== _0x5d7007[_0x56bd(2232, "6hxd")]) {
        vscode[_0x56bd(429, "xK)8")].showErrorMessage(_0x56bd(898, "hSE]") + _0x559de5);
      } else {
        return;
      }
    }
  }
  _cleanProxySettings() {
    const _0x476eaf = {
      rbZoX: _0x56bd(860, "nY*("),
      eHWqT: function (_0x4595b3, _0x51481f) {
        return _0x4595b3 > _0x51481f;
      },
      UIOhf: "versionCheck",
      jYVrR: _0x56bd(1830, "63N&"),
      vgDUh: _0x56bd(969, "bjRi"),
      rqoZM: "连接服务器失败",
      PbRuC: "uJNLm",
      ctBOw: function (_0x3ad726, _0x1a1bc9) {
        return _0x3ad726 === _0x1a1bc9;
      },
      YNRuA: function (_0x374e35, _0x5f2806) {
        return _0x374e35 !== _0x5f2806;
      },
      AcPSo: _0x56bd(1983, "ck7z"),
      XeYdv: "User",
      sRZng: _0x56bd(1300, "DQte"),
      EYltU: "Library",
      cngrf: _0x56bd(2101, "6hxd"),
      bQVqg: _0x56bd(2391, "6eWF"),
      lMMGf: _0x56bd(1240, "@HDB"),
      eEioj: _0x56bd(1987, "T$OD"),
      aTJcA: _0x56bd(337, "nY*("),
      YGjhE: function (_0xb1f254, _0x285077) {
        return _0xb1f254 in _0x285077;
      },
      TTFqW: _0x56bd(2231, "7%8^"),
      dtgRq: "xvUoy",
      KqxTd: _0x56bd(848, "KTbh"),
      ANrMY: _0x56bd(1579, "B)Tn")
    };
    try {
      if (_0x476eaf[_0x56bd(1383, "6hxd")] === _0x476eaf[_0x56bd(689, "de]G")]) {
        const _0x232e3c = process[_0x56bd(2017, "X4(r")];
        const _0x35e9f7 = process[_0x56bd(1861, "$SfD")][_0x56bd(1702, "^S!O")] || process.env[_0x56bd(626, "hSE]")] || "";
        let _0x50dd63;
        if (_0x476eaf[_0x56bd(1901, "6hxd")](_0x232e3c, _0x56bd(2004, "hSE]"))) {
          if (_0x476eaf[_0x56bd(407, "nY*(")](_0x56bd(829, "m#S*"), _0x56bd(982, "bjRi"))) {
            return _0x476eaf[_0x56bd(2065, "7%8^")];
          } else {
            const _0x3f558b = process.env[_0x56bd(2225, "*&r5")] || "";
            _0x50dd63 = path.join(_0x3f558b, _0x476eaf[_0x56bd(2108, "K%5^")], _0x476eaf[_0x56bd(641, "7%8^")], _0x56bd(1276, "POq&"));
          }
        } else if (_0x232e3c === _0x476eaf[_0x56bd(2394, "@HDB")]) {
          _0x50dd63 = path[_0x56bd(416, "KTbh")](_0x35e9f7, _0x476eaf[_0x56bd(1102, "n8BU")], _0x476eaf[_0x56bd(2418, "n8BU")], _0x476eaf[_0x56bd(1280, "LC6r")], "User", _0x476eaf[_0x56bd(1710, "iDwM")]);
        } else if (_0x476eaf[_0x56bd(1456, "DQte")](_0x476eaf[_0x56bd(2043, "XKo0")], "UAknb")) {
          _0x50dd63 = path[_0x56bd(416, "KTbh")](_0x35e9f7, _0x476eaf[_0x56bd(596, "EJjX")], _0x476eaf[_0x56bd(1678, "yoC7")], _0x476eaf[_0x56bd(595, "EJjX")], _0x476eaf[_0x56bd(1922, "8@jo")]);
        } else {
          const _0x13402f = _0xb498dc[_0x56bd(1391, "7%WS")];
          const _0x50bf1b = _0x227cb4.CURRENT_VERSION;
          const _0x310335 = _0x476eaf[_0x56bd(676, "63N&")](this[_0x56bd(2300, "H9os")](_0x13402f, _0x50bf1b), 0);
          this[_0x56bd(1576, "7%WS")]({
            type: _0x476eaf[_0x56bd(2267, "X4(r")],
            success: true,
            currentVersion: _0x50bf1b,
            latestVersion: _0x13402f,
            hasUpdate: _0x310335
          });
        }
        if (!fs.existsSync(_0x50dd63)) {
          return;
        }
        const _0x3b1f5e = fs[_0x56bd(1388, "s66k")](_0x50dd63, "utf-8");
        let _0x2d1395;
        try {
          _0x2d1395 = JSON.parse(_0x3b1f5e);
        } catch {
          if (_0x476eaf.aTJcA === _0x476eaf.aTJcA) {
            return;
          } else {
            _0x374c70 = _0xf2eaf5.join(_0x313a74, _0x56bd(1493, "T$OD"), _0x476eaf[_0x56bd(1473, "X4(r")], _0x476eaf.vgDUh);
          }
        }
        const _0x312520 = [_0x56bd(1799, "ck7z"), _0x56bd(1719, "fu8^"), _0x56bd(1372, "7%8^"), _0x56bd(1672, "4)@$"), _0x56bd(1759, "8Ee3")];
        let _0x163e93 = false;
        for (const _0x2ee1a1 of _0x312520) {
          if (_0x2ee1a1 in _0x2d1395) {
            _0x163e93 = true;
            delete _0x2d1395[_0x2ee1a1];
          }
        }
        if (_0x163e93) {
          if (_0x476eaf[_0x56bd(1202, "@HDB")] !== "xvUoy") {
            fs[_0x56bd(1042, "63N&")](_0x50dd63, JSON[_0x56bd(962, "XKo0")](_0x2d1395, null, 4), _0x476eaf[_0x56bd(1793, "0xfR")]);
            console[_0x56bd(1768, "K%5^")]("[CursorPro] 已清理 settings.json 中的旧代理配置");
          } else {
            _0x54658c = _0x115a6a[1][_0x56bd(2143, "8Ee3")]();
          }
        }
      } else {
        const _0x75d65c = _0x5b4ad7?.[_0x56bd(944, "n8BU")] || "连接服务器失败";
        this[_0x56bd(1740, "H9os")]({
          type: _0x56bd(2112, "Ka)i"),
          success: false,
          error: _0x75d65c
        });
      }
    } catch (_0xaf9b9c) {
      console[_0x56bd(286, "k$(5")](_0x476eaf.ANrMY, _0xaf9b9c);
    }
  }
  [_0x56bd(1517, "nY*(")]() {
    const _0x1afd5f = {
      IIhaI: _0x56bd(443, "nj1b"),
      rhwiN: _0x56bd(2241, "m#S*"),
      WCHqe: "/etc/hosts"
    };
    if (process.platform === _0x1afd5f[_0x56bd(273, "8Ee3")]) {
      return _0x1afd5f[_0x56bd(2210, "B)Tn")];
    } else {
      return "/etc/hosts";
    }
  }
  _readHostsFile() {
    const _0x2eb328 = {
      wAevF: "[CursorPro] 写入本地失败:",
      sUhUV: function (_0x5ed9b2, _0x485978) {
        return _0x5ed9b2 !== _0x485978;
      },
      hsoXL: "SLTdx",
      XvGHn: "utf-8",
      LHIiR: "[CursorPro] Read hosts error:"
    };
    try {
      if (_0x2eb328[_0x56bd(1926, "6eWF")]("SLTdx", _0x2eb328[_0x56bd(788, "0xfR")])) {
        _0x154660[_0x56bd(608, "fu8^")](_0x2eb328[_0x56bd(1535, "f)Dq")], _0x1f3d21);
        _0x12820c.window[_0x56bd(1464, "K%5^")](_0x56bd(1414, "iDwM") + _0x430c52);
        return false;
      } else {
        const _0x49f82f = this[_0x56bd(2493, "gvo7")]();
        if (fs[_0x56bd(647, "xK)8")](_0x49f82f)) {
          return fs.readFileSync(_0x49f82f, _0x2eb328[_0x56bd(2336, "B)Tn")]);
        }
      }
    } catch (_0x280006) {
      console[_0x56bd(1936, "6hxd")](_0x2eb328[_0x56bd(1851, "XKo0")], _0x280006);
    }
    return "";
  }
  [_0x56bd(1566, "DQte")]() {
    const _0x18cd4d = this[_0x56bd(2360, "nY*(")]();
    return _0x18cd4d[_0x56bd(1594, "m#S*")](this[_0x56bd(896, "4)@$")]);
  }
  async _grantHostsWritePermission() {
    const _0x32c62b = {
      vkbEE: _0x56bd(1848, "*&r5"),
      seTZS: "检测状态失败",
      hKgsG: function (_0x4a5bc9, _0x2bfac2) {
        return _0x4a5bc9 !== _0x2bfac2;
      },
      ScmlY: _0x56bd(1151, "KTbh"),
      HqZOI: _0x56bd(2488, "*&r5"),
      Qwoeu: function (_0x36c14a, _0x3b36cd) {
        return _0x36c14a(_0x3b36cd);
      },
      mzHlg: _0x56bd(1534, "DbBq"),
      wVYbp: _0x56bd(1260, "6hxd")
    };
    if (_0x32c62b[_0x56bd(1557, "K%5^")](process[_0x56bd(1784, "8Ee3")], _0x32c62b[_0x56bd(2148, "k$(5")])) {
      return false;
    }
    try {
      if (_0x32c62b[_0x56bd(1692, "fu8^")] === _0x32c62b[_0x56bd(2512, "de]G")]) {
        const _0x4dd7b0 = this._getHostsPath();
        const _0x52e208 = process[_0x56bd(941, "qOgW")].USERNAME || "";
        if (!_0x52e208) {
          return false;
        }
        const _0xb2d318 = _0x4dd7b0[_0x56bd(2083, "@HDB")](/\\/g, "\\\\");
        const _0x1a66f9 = _0x56bd(1649, "de]G") + _0xb2d318 + _0x56bd(2023, "f)Dq") + _0x52e208 + _0x56bd(2166, "POq&");
        await _0x32c62b[_0x56bd(2006, "nj1b")](execAsync, _0x1a66f9);
        this[_0x56bd(2205, "xK)8")] = true;
        console[_0x56bd(960, "B)Tn")](_0x32c62b[_0x56bd(1992, "DQte")], _0x52e208);
        return true;
      } else {
        this[_0x56bd(1884, "63N&")]({
          type: _0x32c62b.vkbEE,
          is_injected: false,
          error: _0x32c62b[_0x56bd(1834, "nj1b")]
        });
      }
    } catch (_0x32d96e) {
      console[_0x56bd(642, "K%5^")](_0x32c62b[_0x56bd(511, "qOgW")], _0x32d96e);
      return false;
    }
  }
  async [_0x56bd(1230, "m#S*")](_0x5922a3) {
    const _0x499688 = {
      xBPFl: _0x56bd(2362, "k$(5"),
      JhZQT: _0x56bd(1807, "4)@$"),
      iNsae: "cursorAuth/cachedSignUpType",
      AmHRk: _0x56bd(2229, "4)@$"),
      FOcWe: function (_0x5324f3, _0x2a612f) {
        return _0x5324f3 === _0x2a612f;
      },
      KudFK: _0x56bd(2051, "yoC7"),
      Vogwl: _0x56bd(780, "iDwM"),
      JcomX: "utf-8",
      ERSCs: "[CursorPro] Direct write failed, trying to grant permission",
      oXrgE: "gFBAJ",
      YmFQv: "UnshK",
      CGqqu: _0x56bd(1648, "yoC7"),
      vkEWS: function (_0x12ee8c, _0x39fa65) {
        return _0x12ee8c !== _0x39fa65;
      },
      OaUGz: _0x56bd(1554, "POq&"),
      ofVDg: _0x56bd(751, "m#S*"),
      NrWkg: function (_0x3a76ad, _0x4ab4f9) {
        return _0x3a76ad(_0x4ab4f9);
      },
      sPvNi: "ipconfig /flushdns",
      iDcQt: function (_0x54a20c, _0x2484fe) {
        return _0x54a20c === _0x2484fe;
      },
      HLfqb: _0x56bd(363, "T$OD"),
      vgoUd: _0x56bd(2170, "s66k"),
      HGnBv: function (_0x134b08, _0x2d8a5b) {
        return _0x134b08(_0x2d8a5b);
      },
      jDqga: "BDewf",
      txnlf: _0x56bd(2451, "XKo0")
    };
    const _0x2983c4 = this[_0x56bd(2469, "nj1b")]();
    try {
      if (_0x499688[_0x56bd(579, "DbBq")](process.platform, _0x499688.KudFK)) {
        let _0x27620a = false;
        try {
          if (_0x499688[_0x56bd(1264, "KW&U")] !== _0x499688[_0x56bd(1154, "6eWF")]) {
            _0x3ec235 = _0x26751d[_0x56bd(578, "s66k")](_0x1b0534[_0x56bd(1921, "6eWF")]());
          } else {
            fs[_0x56bd(623, "7%8^")](_0x2983c4, _0x5922a3, _0x499688[_0x56bd(1778, "KTbh")]);
            _0x27620a = true;
          }
        } catch (_0x2a820d) {
          console[_0x56bd(2145, "nj1b")](_0x499688[_0x56bd(2215, "XKo0")]);
        }
        if (!_0x27620a) {
          if (!this._hostsPermissionGranted) {
            const _0x1cf639 = await this[_0x56bd(340, "bjRi")]();
            if (_0x1cf639) {
              if (_0x499688[_0x56bd(2462, "Ka)i")] === _0x499688[_0x56bd(1712, "bjRi")]) {
                this._postMessage({
                  type: _0x499688.xBPFl,
                  success: false,
                  error: _0x499688[_0x56bd(1522, "8Ee3")]
                });
                return;
              } else {
                try {
                  fs[_0x56bd(905, "gvo7")](_0x2983c4, _0x5922a3, _0x499688[_0x56bd(378, "Aig!")]);
                  _0x27620a = true;
                } catch (_0x22fb5c) {
                  console[_0x56bd(482, "ck7z")](_0x56bd(1925, "4)@$"));
                }
              }
            }
          }
        }
        if (!_0x27620a) {
          const _0x1e3a86 = path[_0x56bd(518, "ACPk")](process[_0x56bd(1420, "f)Dq")][_0x56bd(1305, "DbBq")] || "", _0x499688.CGqqu);
          fs[_0x56bd(2240, "n8BU")](_0x1e3a86, _0x5922a3, _0x499688[_0x56bd(1778, "KTbh")]);
          const _0x2cf526 = _0x1e3a86[_0x56bd(1706, "6eWF")](/\\/g, "\\\\");
          const _0x456ea4 = _0x2983c4[_0x56bd(939, "bjRi")](/\\/g, "\\\\");
          const _0x2a923f = _0x56bd(1162, "bjRi") + _0x2cf526 + _0x56bd(607, "X4(r") + _0x456ea4 + _0x56bd(1789, "k$(5");
          await execAsync(_0x2a923f);
          try {
            if (_0x499688[_0x56bd(1397, "Ka)i")] !== _0x499688[_0x56bd(947, "ACPk")]) {
              fs[_0x56bd(2314, "6eWF")](_0x1e3a86);
            } else {
              _0x23b2c1[_0x56bd(2353, "^S!O")]([_0x499688[_0x56bd(1645, "^S!O")], _0x2e0cc7.sign_up_type]);
            }
          } catch {}
        }
        try {
          await _0x499688[_0x56bd(1045, "Aig!")](execAsync, _0x499688[_0x56bd(1076, "7%WS")]);
          console[_0x56bd(545, "qOgW")](_0x56bd(2028, "m#S*"));
        } catch (_0x460c7f) {
          console.warn(_0x56bd(2269, "Ka)i"), _0x460c7f);
        }
      } else if (_0x499688[_0x56bd(285, "*&r5")](process[_0x56bd(1971, "LC6r")], _0x499688.HLfqb)) {
        const _0x24a472 = _0x499688[_0x56bd(2167, "B)Tn")];
        fs[_0x56bd(2468, "DQte")](_0x24a472, _0x5922a3, _0x499688[_0x56bd(378, "Aig!")]);
        const _0x22f069 = "do shell script \"cp '" + _0x24a472 + _0x56bd(1450, "n8BU") + _0x2983c4 + _0x56bd(2455, "hSE]") + _0x24a472 + "' && dscacheutil -flushcache && killall -HUP mDNSResponder\" with administrator privileges";
        await _0x499688[_0x56bd(1062, "k$(5")](execAsync, _0x56bd(1840, "^S!O") + _0x22f069.replace(/"/g, "\\\"") + "\"");
      } else {
        fs[_0x56bd(563, "6eWF")](_0x2983c4, _0x5922a3, _0x499688[_0x56bd(2315, "nj1b")]);
      }
      return true;
    } catch (_0x4e285f) {
      console[_0x56bd(419, "LC6r")](_0x499688[_0x56bd(2430, "$SfD")], _0x4e285f);
      return false;
    }
  }
  async [_0x56bd(1075, "m#S*")](_0x45fe86, _0x2bcba7) {
    const _0x55a623 = {
      ejdVR: "[CursorPro] 检测无感换号状态失败:",
      PEste: function (_0x53a002, _0x4c22fe) {
        return _0x53a002 === _0x4c22fe;
      },
      hgedP: _0x56bd(2144, "f)Dq"),
      qGQVl: "[CursorPro] macOS 获取进程路径失败:",
      uJGtI: function (_0x48017f, _0x5c2c7c) {
        return _0x48017f !== _0x5c2c7c;
      },
      JOyUC: _0x56bd(1374, "@HDB"),
      abtRx: _0x56bd(537, "hSE]"),
      bPNQC: _0x56bd(1980, "ACPk"),
      XKRmO: "cursorpro.expireDate",
      lrUSI: _0x56bd(1138, "EJjX"),
      wngsU: "请先激活授权码",
      bNcBC: "showToast",
      wbUaU: _0x56bd(1072, "nj1b"),
      qvcRi: function (_0x6220c6, _0x46b6bf) {
        return _0x6220c6 > _0x46b6bf;
      },
      rBQDv: _0x56bd(1050, "f)Dq"),
      RrtRU: function (_0x572eb6, _0x46c0a4) {
        return _0x572eb6 !== _0x46c0a4;
      },
      PoFgx: _0x56bd(1889, "B)Tn"),
      xXref: function (_0x1b909c, _0x5c9bad) {
        return _0x1b909c + _0x5c9bad;
      },
      HwXSS: function (_0x576fb0, _0x41a4c1) {
        return _0x576fb0 !== _0x41a4c1;
      },
      LwgUG: _0x56bd(499, "yoC7"),
      yTNgQ: _0x56bd(2048, "nj1b"),
      rATBP: _0x56bd(663, "ck7z"),
      jtzgG: _0x56bd(2526, "fu8^"),
      SfnWE: "更新配置失败"
    };
    try {
      if (_0x56bd(826, "4)@$") === _0x56bd(2171, "6hxd")) {
        if (_0x45fe86) {
          if (_0x55a623[_0x56bd(1149, "K%5^")](_0x55a623.JOyUC, _0x55a623[_0x56bd(1965, "4)@$")])) {
            const _0x2e87c9 = this[_0x56bd(2439, "4)@$")][_0x56bd(1677, "bjRi")][_0x56bd(1552, "qOgW")](_0x55a623[_0x56bd(473, "LC6r")]);
            const _0x4818f7 = this._context.globalState.get("cursorpro.expireDate");
            if (!_0x2e87c9) {
              this[_0x56bd(617, "0xfR")]({
                type: _0x55a623[_0x56bd(1956, "KTbh")],
                success: false,
                error: _0x55a623[_0x56bd(2542, "bZsS")]
              });
              this[_0x56bd(1342, "@HDB")]({
                type: _0x55a623[_0x56bd(1393, "X4(r")],
                message: "请先激活授权码",
                icon: "⚠️"
              });
              return;
            }
            if (_0x4818f7) {
              if (_0x55a623[_0x56bd(507, "yoC7")] === _0x55a623.wbUaU) {
                const _0x13c1c7 = new Date(_0x4818f7)[_0x56bd(1367, "LC6r")]();
                if (_0x55a623[_0x56bd(2047, "*&r5")](Date[_0x56bd(2497, "$SfD")](), _0x13c1c7)) {
                  this._postMessage({
                    type: _0x55a623[_0x56bd(1118, "qOgW")],
                    success: false,
                    error: _0x55a623.rBQDv
                  });
                  this[_0x56bd(1125, "DQte")]({
                    type: _0x55a623[_0x56bd(425, "nj1b")],
                    message: _0x55a623[_0x56bd(455, "POq&")],
                    icon: "⚠️"
                  });
                  return;
                }
              } else {
                _0xdb849d[_0x56bd(2003, "^sHL")]("[CursorPro] 检测无感换号状态失败:", _0x27cca9);
                return false;
              }
            }
          } else {
            return true;
          }
        }
        this[_0x56bd(1174, "n8BU")]();
        let _0x41dcbc = this[_0x56bd(1637, "f)Dq")]();
        const _0x8cbdf8 = _0x41dcbc[_0x56bd(2217, "8@jo")](this[_0x56bd(1765, "Aig!")]);
        const _0x5529db = _0x41dcbc[_0x56bd(2518, "bjRi")](this.HOSTS_MARKER_END);
        if (_0x55a623[_0x56bd(690, "^S!O")](_0x8cbdf8, -1) && _0x5529db !== -1) {
          if (_0x55a623[_0x56bd(1031, "nY*(")] !== "jcvMA") {
            _0x41dcbc = _0x41dcbc.substring(0, _0x8cbdf8) + _0x41dcbc[_0x56bd(674, "s66k")](_0x55a623[_0x56bd(544, "7%WS")](_0x5529db, this.HOSTS_MARKER_END[_0x56bd(2510, "m#S*")]));
          } else if (_0x55a623[_0x56bd(2321, "KTbh")](_0x52d6bb[_0x56bd(1813, "*&r5")], _0x55a623.hgedP)) {
            return _0x56bd(878, "Ka)i");
          } else {
            return _0x56bd(1833, "EJjX");
          }
        }
        _0x41dcbc = _0x41dcbc[_0x56bd(348, "ACPk")](/\n{3,}/g, "\n\n")[_0x56bd(292, "$SfD")]();
        if (_0x45fe86) {
          const _0x3c2da2 = this.CURSOR_DOMAINS.map(_0x2b32f6 => this.SNI_PROXY_IP + " " + _0x2b32f6)[_0x56bd(2202, "n8BU")]("\n");
          const _0x12c61b = "\n\n" + this.HOSTS_MARKER_START + "\n" + _0x3c2da2 + "\n" + this[_0x56bd(1726, "bZsS")] + "\n";
          _0x41dcbc += _0x12c61b;
        }
        const _0x5b508c = await this._writeHostsFile(_0x41dcbc);
        if (_0x5b508c) {
          if (_0x55a623.LwgUG !== _0x55a623[_0x56bd(2344, "nY*(")]) {
            0;
            await client_1[_0x56bd(923, "X4(r")](_0x45fe86, this[_0x56bd(1303, "Ka)i")]);
            this[_0x56bd(284, "Ka)i")]({
              type: _0x55a623[_0x56bd(1551, "*&r5")],
              success: true,
              enabled: _0x45fe86,
              url: this.SNI_PROXY_IP
            });
            this[_0x56bd(794, "8Ee3")]({
              type: _0x55a623[_0x56bd(1394, "POq&")],
              message: _0x45fe86 ? _0x56bd(462, "^S!O") : _0x55a623[_0x56bd(1365, "@HDB")],
              icon: "✅"
            });
          } else {
            _0x5dcacb.log(_0x56bd(457, "XKo0"));
          }
        } else {
          this[_0x56bd(1346, "6eWF")]({
            type: _0x56bd(726, "*&r5"),
            success: false,
            error: _0x55a623[_0x56bd(1676, "KW&U")]
          });
          this._postMessage({
            type: _0x56bd(1092, "KTbh"),
            message: _0x56bd(2060, "n8BU"),
            icon: "⚠️"
          });
        }
      } else {
        _0x2faaed[_0x56bd(865, "^sHL")](_0x55a623[_0x56bd(1478, "6eWF")], _0x591cf9);
      }
    } catch (_0x15bb87) {
      console[_0x56bd(558, "63N&")](_0x56bd(2367, "ck7z"), _0x15bb87);
      this[_0x56bd(1126, "$SfD")]({
        type: _0x55a623[_0x56bd(2511, "DbBq")],
        success: false,
        error: _0x55a623[_0x56bd(2214, "H9os")]
      });
    }
  }
  async [_0x56bd(843, "s66k")]() {
    const _0x2c5a98 = {
      fZAIy: "[CursorPro] Get proxy status error:",
      wipaS: _0x56bd(1169, "0xfR")
    };
    try {
      const _0x45986e = this[_0x56bd(2034, "qOgW")]();
      this._postMessage({
        type: _0x56bd(1005, "bjRi"),
        enabled: _0x45986e,
        url: _0x45986e ? this.SNI_PROXY_IP : ""
      });
    } catch (_0x590417) {
      console.error(_0x2c5a98[_0x56bd(2263, "KTbh")], _0x590417);
      this._postMessage({
        type: _0x2c5a98[_0x56bd(2019, "n8BU")],
        enabled: false,
        url: ""
      });
    }
  }
  async [_0x56bd(2365, "de]G")]() {
    const _0x5ae0f5 = {
      KFUBS: "seamlessStatus",
      rCNDh: "未找到"
    };
    try {
      const _0x95ad53 = await this[_0x56bd(2395, "ck7z")]();
      let _0x571ba2 = false;
      if (_0x95ad53 && fs.existsSync(_0x95ad53)) {
        const _0x16bc8d = fs[_0x56bd(437, "K%5^")](_0x95ad53, "utf-8");
        _0x571ba2 = this[_0x56bd(540, "ACPk")](_0x16bc8d);
      }
      this[_0x56bd(2338, "m#S*")]({
        type: _0x5ae0f5[_0x56bd(933, "X4(r")],
        is_injected: _0x571ba2,
        workbench_path: _0x95ad53 || "未找到"
      });
    } catch (_0x4253d3) {
      this[_0x56bd(288, "]I&e")]({
        type: _0x56bd(598, "s66k"),
        is_injected: false,
        error: _0x56bd(2295, "0xfR")
      });
    }
  }
  async _getCursorInstallPath() {
    const _0x56e2a7 = {
      Dikkd: _0x56bd(764, "K%5^"),
      jsXpS: _0x56bd(2237, "KW&U"),
      YOVDn: _0x56bd(2422, "^sHL"),
      iTlfT: _0x56bd(2234, "7%8^"),
      yLNTm: "resources",
      GeHhf: "app",
      CXUfC: _0x56bd(2533, "s66k"),
      UtnZu: "[CursorPro] 读取账号失败:",
      gnUSM: _0x56bd(1021, "akm5"),
      bYxaW: function (_0x423a3a, _0x5db055) {
        return _0x423a3a === _0x5db055;
      },
      EgKGn: _0x56bd(375, "0xfR"),
      EAHLk: function (_0x337fa2, _0x2cea6d) {
        return _0x337fa2 === _0x2cea6d;
      },
      WjWcW: _0x56bd(888, "bZsS"),
      MQZgl: _0x56bd(321, "H9os"),
      oengj: function (_0x277036, _0x403852) {
        return _0x277036 === _0x403852;
      },
      Aarxw: "darwin",
      DJbBl: _0x56bd(423, "akm5"),
      aREDm: _0x56bd(2165, "*&r5"),
      iIXMD: _0x56bd(426, "KTbh"),
      BDJnl: function (_0x1e4a2f, _0x534c0a) {
        return _0x1e4a2f(_0x534c0a);
      },
      DtDgA: function (_0x29bc62, _0x322a2b) {
        return _0x29bc62 < _0x322a2b;
      },
      mmvWR: _0x56bd(2072, "akm5"),
      oaRrk: _0x56bd(835, "K%5^"),
      CTVdA: function (_0x74a645, _0x1120bf) {
        return _0x74a645 * _0x1120bf;
      },
      Uuffn: "userSwitchStatus",
      rBiqx: _0x56bd(669, "DQte"),
      rQFft: _0x56bd(838, "8Ee3"),
      RnudW: _0x56bd(2290, "K%5^"),
      PVaIE: _0x56bd(1955, "LC6r"),
      XfqQZ: function (_0x9c7d0d, _0x5e3a66) {
        return _0x9c7d0d(_0x5e3a66);
      },
      DeasY: function (_0x4abb75, _0x582177) {
        return _0x4abb75 !== _0x582177;
      },
      AsIZj: _0x56bd(269, "^sHL"),
      nqiCC: "DFFnS",
      QVuwP: _0x56bd(799, "hSE]"),
      dRsNK: "YbsJH",
      jErMS: _0x56bd(2010, "m#S*"),
      NyxMG: _0x56bd(1250, "8Ee3"),
      wEuDv: function (_0x124977, _0x7c188e) {
        return _0x124977 !== _0x7c188e;
      },
      XOHNV: _0x56bd(2271, "xK)8"),
      TGItL: _0x56bd(1539, "X4(r"),
      thwli: _0x56bd(868, "akm5"),
      VMcWU: "xkLFN",
      QxSsa: _0x56bd(1226, "XKo0"),
      dCyzn: _0x56bd(846, "4)@$"),
      fdUBf: _0x56bd(1976, "0xfR"),
      PIiyE: _0x56bd(289, "bjRi"),
      sbJjp: function (_0x20ef8a, _0x2ae693) {
        return _0x20ef8a(_0x2ae693);
      },
      ZzzNm: "reg query \"HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\" /s /f \"Cursor\" 2>nul | findstr \"InstallLocation\"",
      nbZaF: function (_0x1cbd3c, _0x4a6cb7) {
        return _0x1cbd3c === _0x4a6cb7;
      },
      wbtDv: _0x56bd(1387, "4)@$"),
      cNdLq: "xFoOA",
      FZvwj: "OHDPB",
      UneuY: "Microsoft",
      qsIby: _0x56bd(1219, "de]G"),
      EHZof: "Cursor.lnk",
      jjkbK: "C:\\ProgramData",
      BtFbH: _0x56bd(1315, "yoC7"),
      JdBJc: function (_0x28f75d, _0x183780) {
        return _0x28f75d(_0x183780);
      },
      jsxnQ: function (_0x136514, _0x280034) {
        return _0x136514 === _0x280034;
      },
      qBUXV: _0x56bd(2140, "^sHL"),
      exySU: _0x56bd(2201, "Aig!"),
      TGkVo: function (_0x23968b, _0x7071) {
        return _0x23968b !== _0x7071;
      },
      suGMP: _0x56bd(1313, "POq&"),
      UFTPT: "[CursorPro] where 命令获取路径失败",
      DmbzX: _0x56bd(2191, "DQte"),
      pezWM: _0x56bd(1754, "]I&e"),
      siiYr: _0x56bd(1564, "Aig!"),
      qYQbK: _0x56bd(752, "fu8^"),
      IrvuT: "cursor",
      GSVlF: _0x56bd(1602, "DbBq"),
      MCVpB: _0x56bd(1767, "KW&U"),
      PDSZm: _0x56bd(488, "7%8^"),
      EgLjx: function (_0x28fb08, _0xcbe128) {
        return _0x28fb08 !== _0xcbe128;
      },
      HILVh: _0x56bd(1527, "fu8^"),
      smRnq: _0x56bd(2496, "H9os"),
      goLBO: function (_0x534585, _0x3cba48) {
        return _0x534585(_0x3cba48);
      },
      PfsJK: function (_0x1edda8, _0x24c322) {
        return _0x1edda8 !== _0x24c322;
      },
      SZhcT: _0x56bd(1973, "KW&U"),
      NkvWo: _0x56bd(1222, "de]G"),
      fIoaQ: function (_0x241ec0, _0x2ed30c) {
        return _0x241ec0 === _0x2ed30c;
      },
      AEQys: _0x56bd(2088, "KTbh"),
      DMxiK: _0x56bd(2339, "xK)8"),
      KCchE: "ps -eo comm,args | grep -i \"[C]ursor\" | grep -v \"grep\" | head -1",
      oSNCM: "[CursorPro] macOS 获取进程路径失败:",
      vFKuA: function (_0x3f2aba, _0x3b57d7) {
        return _0x3f2aba !== _0x3b57d7;
      },
      BzqQS: _0x56bd(1135, "f)Dq"),
      Iiavz: function (_0x518563, _0x266c3c) {
        return _0x518563(_0x266c3c);
      },
      DTxsT: _0x56bd(1332, "yoC7"),
      Duhra: "/Applications/Cursor.app",
      TWejg: function (_0x5bd29f, _0x55a6c4) {
        return _0x5bd29f(_0x55a6c4);
      },
      hHnTm: function (_0x24d237, _0x40656e) {
        return _0x24d237(_0x40656e);
      },
      ytsfa: "/bin",
      fYZrC: "BDrEe",
      TLLsB: "which cursor 2>/dev/null",
      IGQIN: _0x56bd(1574, "4)@$"),
      rbFqJ: "[CursorPro] Linux 获取进程路径失败:",
      WgRyf: _0x56bd(1371, "X4(r"),
      XOLnJ: "/opt/cursor",
      fxGJt: _0x56bd(2345, "XKo0"),
      lzEMa: _0x56bd(1969, "nY*("),
      gQXjY: _0x56bd(589, "KTbh"),
      EghBP: _0x56bd(968, "8@jo")
    };
    if (this[_0x56bd(856, "B)Tn")]) {
      return this[_0x56bd(1215, "n8BU")];
    }
    const _0x39cd5d = vscode[_0x56bd(2223, "k$(5")][_0x56bd(1482, "^sHL")](_0x56bd(791, "Ka)i"));
    const _0x3bf8b8 = _0x39cd5d[_0x56bd(2406, "POq&")](_0x56e2a7.rQFft);
    if (_0x3bf8b8 && fs[_0x56bd(1322, "gvo7")](_0x3bf8b8)) {
      console[_0x56bd(960, "B)Tn")](_0x56e2a7[_0x56bd(469, "X4(r")], _0x3bf8b8);
      this._cachedCursorPath = _0x3bf8b8;
      return _0x3bf8b8;
    }
    const _0x51335c = process[_0x56bd(1813, "*&r5")];
    let _0x36d8e8 = null;
    try {
      if (_0x51335c === _0x56e2a7.PVaIE) {
        try {
          const {
            stdout: _0x446f65
          } = await execAsync("wmic process where \"name='Cursor.exe'\" get ExecutablePath /format:list 2>nul");
          if (_0x446f65) {
            if (_0x56e2a7[_0x56bd(385, "EJjX")](_0x56e2a7[_0x56bd(1302, "ck7z")], _0x56e2a7[_0x56bd(1831, "B)Tn")])) {
              this[_0x56bd(288, "]I&e")]({
                type: _0x56e2a7[_0x56bd(755, "Aig!")],
                message: _0x56e2a7.jsXpS,
                icon: "⚠️"
              });
              return;
            } else {
              const _0x19ca83 = _0x446f65[_0x56bd(2169, "KW&U")](/ExecutablePath=(.+)/);
              if (_0x19ca83 && _0x19ca83[1]) {
                if (_0x56e2a7[_0x56bd(1715, "POq&")] === _0x56bd(470, "8@jo")) {
                  this._postMessage({
                    type: _0x56bd(1290, "bjRi"),
                    message: _0x56bd(1225, "xK)8") + _0x51bc1d,
                    icon: "❌"
                  });
                } else {
                  const _0x27a427 = _0x19ca83[1][_0x56bd(2328, "KTbh")]();
                  _0x36d8e8 = path[_0x56bd(1163, "^S!O")](_0x27a427);
                }
              }
            }
          }
        } catch (_0x4c944d) {
          console[_0x56bd(2212, "nY*(")](_0x56e2a7.QVuwP);
        }
        if (!_0x36d8e8) {
          if (_0x56e2a7[_0x56bd(601, "@HDB")] !== "YbsJH") {
            try {
              const {
                stdout: _0x2ac2d3
              } = await _0x56e2a7[_0x56bd(1229, "xK)8")](execAsync, _0x56e2a7.NyxMG);
              if (_0x2ac2d3 && _0x2ac2d3[_0x56bd(1867, "DbBq")]()) {
                _0x36d8e8 = path[_0x56bd(342, "$SfD")](_0x2ac2d3[_0x56bd(1269, "8@jo")]());
              }
            } catch (_0x387539) {
              if (_0x56e2a7[_0x56bd(2179, "qOgW")](_0x56e2a7.XOHNV, _0x56bd(1008, "k$(5"))) {
                console.log(_0x56e2a7[_0x56bd(1628, "DbBq")]);
              } else if (_0x36e365[_0x56bd(2176, "ACPk")](_0x216fbb.scode)) {
                _0x51a668 = _0x5d60b0[_0x56bd(1989, "k$(5")](_0x562774[_0x56bd(1273, "7%WS")], _0x1ac061[_0x56bd(1161, "X4(r")]);
                _0x15853d[_0x56bd(757, "7%WS")](_0x1d4997[_0x56bd(2135, "]I&e")]);
              } else {
                _0x41fc0e[_0x56bd(901, "8Ee3")](_0x551686[_0x56bd(1257, "*&r5")]);
              }
            }
          } else {
            _0x86b57c = _0xcd7e5a[_0x56bd(1258, "@HDB")](_0x337963);
          }
        }
        if (!_0x36d8e8) {
          try {
            const {
              stdout: _0x1bbadc
            } = await execAsync(_0x56e2a7[_0x56bd(2351, "n8BU")]);
            if (_0x1bbadc && _0x1bbadc.trim()) {
              const _0x53b6fb = _0x1bbadc.match(/InstallLocation\s+REG_SZ\s+(.+)/);
              if (_0x53b6fb && _0x53b6fb[1] && fs[_0x56bd(1667, "m#S*")](_0x53b6fb[1][_0x56bd(1329, "4)@$")]())) {
                if (_0x56e2a7[_0x56bd(556, "s66k")] !== _0x56e2a7.QxSsa) {
                  _0x36d8e8 = _0x53b6fb[1][_0x56bd(2143, "8Ee3")]();
                } else {
                  this[_0x56bd(1342, "@HDB")]({
                    type: _0x56bd(1274, "xK)8"),
                    success: false,
                    error: _0x56e2a7[_0x56bd(2313, "B)Tn")]
                  });
                  this[_0x56bd(2461, "fu8^")]({
                    type: _0x56e2a7[_0x56bd(2262, "T$OD")],
                    message: _0x56e2a7[_0x56bd(932, "k$(5")],
                    icon: "⚠️"
                  });
                  return;
                }
              }
            }
          } catch (_0x4253cf) {
            if (_0x56e2a7[_0x56bd(703, "6eWF")] !== _0x56e2a7[_0x56bd(2123, "ck7z")]) {
              console.log(_0x56e2a7.PIiyE);
            } else {
              this[_0x56bd(2338, "m#S*")]({
                type: "seamlessConfigUpdated",
                success: false,
                error: _0x56e2a7[_0x56bd(1690, "fu8^")]
              });
            }
          }
        }
        if (!_0x36d8e8) {
          try {
            const {
              stdout: _0xf5d246
            } = await execAsync(_0x56e2a7[_0x56bd(362, "^sHL")]);
            if (_0xf5d246 && _0xf5d246.trim()) {
              const _0x3c2cd7 = _0xf5d246[_0x56bd(604, "fu8^")](/InstallLocation\s+REG_SZ\s+(.+)/);
              if (_0x3c2cd7 && _0x3c2cd7[1] && fs.existsSync(_0x3c2cd7[1].trim())) {
                if (_0x56e2a7[_0x56bd(855, "k$(5")](_0x56e2a7[_0x56bd(2524, "6eWF")], _0x56e2a7[_0x56bd(2312, "POq&")])) {
                  _0x371f53 = _0x3146b2[_0x56bd(360, "gvo7")](_0x262100[_0x56bd(439, "^S!O")], _0x35b030[_0x56bd(2340, "^sHL")]);
                  _0x2f13c6.push(_0x495b54.name);
                } else {
                  _0x36d8e8 = _0x3c2cd7[1][_0x56bd(1891, "0xfR")]();
                }
              }
            }
          } catch (_0x38448a) {
            console[_0x56bd(1218, "*&r5")]("[CursorPro] 注册表方法2获取路径失败");
          }
        }
        if (!_0x36d8e8) {
          if (_0x56e2a7[_0x56bd(1354, "H9os")] !== "ASYNt") {
            try {
              const _0x4a36af = path[_0x56bd(416, "KTbh")](process[_0x56bd(1846, "B)Tn")][_0x56bd(2025, "DbBq")] || "", _0x56e2a7[_0x56bd(1433, "DQte")], _0x56e2a7.qsIby, _0x56bd(1911, "akm5"), "Programs", _0x56e2a7[_0x56bd(620, "m#S*")]);
              const _0x3876ac = path[_0x56bd(1666, "k$(5")](_0x56e2a7[_0x56bd(890, "^S!O")], _0x56e2a7[_0x56bd(1885, "@HDB")], "Windows", _0x56e2a7[_0x56bd(2115, "DbBq")], _0x56bd(1560, "K%5^"), _0x56e2a7[_0x56bd(2058, "LC6r")]);
              for (const _0x20745d of [_0x4a36af, _0x3876ac]) {
                if (fs[_0x56bd(2426, "k$(5")](_0x20745d)) {
                  const {
                    stdout: _0x321537
                  } = await execAsync(_0x56bd(2000, "*&r5") + _0x20745d[_0x56bd(1266, "POq&")](/'/g, "''") + _0x56bd(486, "k$(5"));
                  if (_0x321537 && _0x321537.trim() && fs.existsSync(_0x321537[_0x56bd(2328, "KTbh")]())) {
                    if (_0x56e2a7[_0x56bd(1646, "s66k")](_0x56bd(2164, "H9os"), _0x56bd(1211, "@HDB"))) {
                      _0x36d8e8 = path[_0x56bd(1090, "de]G")](_0x321537[_0x56bd(2147, "DQte")]());
                      break;
                    } else {
                      _0x5839cf = [_0x56bd(987, "LC6r")];
                    }
                  }
                }
              }
            } catch (_0x628be0) {
              console[_0x56bd(1251, "8@jo")](_0x56e2a7[_0x56bd(936, "bZsS")]);
            }
          } else {
            const _0x41d381 = _0x1d7b98.match(/ExecutablePath=(.+)/);
            if (_0x41d381 && _0x41d381[1]) {
              const _0x311d7f = _0x41d381[1][_0x56bd(966, "X4(r")]();
              _0x7495 = _0x387799[_0x56bd(2187, "T$OD")](_0x311d7f);
            }
          }
        }
        if (!_0x36d8e8) {
          if (_0x56e2a7[_0x56bd(1272, "nY*(")] === _0x56e2a7[_0x56bd(2236, "6hxd")]) {
            try {
              const {
                stdout: _0x4d3618
              } = await _0x56e2a7[_0x56bd(2341, "7%WS")](execAsync, "where cursor 2>nul");
              if (_0x4d3618 && _0x4d3618[_0x56bd(954, "nY*(")]()) {
                const _0x1e390f = _0x4d3618.trim()[_0x56bd(714, "6hxd")]("\n");
                for (const _0x4be01a of _0x1e390f) {
                  const _0x2817ed = _0x4be01a.trim();
                  if (_0x2817ed && fs.existsSync(_0x2817ed)) {
                    _0x36d8e8 = path[_0x56bd(1783, "POq&")](_0x2817ed);
                    break;
                  }
                }
              }
            } catch (_0x2b8ad6) {
              if (_0x56bd(1943, "63N&") !== _0x56e2a7[_0x56bd(2463, "T$OD")]) {
                _0x33db66[_0x56bd(1639, "^S!O")](_0x51579c, _0x931655);
                _0x261bd5[_0x56bd(482, "ck7z")](_0x56e2a7[_0x56bd(1512, "DQte")]);
              } else {
                console[_0x56bd(2272, "akm5")](_0x56e2a7[_0x56bd(1486, "6hxd")]);
              }
            }
          } else {
            const _0x4c6948 = _0x4dafc4[1].trim();
            _0x373919 = _0x57ec2c.dirname(_0x4c6948);
            _0x543724 = _0x3fcb44[_0x56bd(1056, "qOgW")](_0x2ba35f, _0x56e2a7[_0x56bd(759, "4)@$")], _0x56e2a7[_0x56bd(985, "@HDB")], _0x56e2a7[_0x56bd(1664, "f)Dq")]);
          }
        }
        if (!_0x36d8e8) {
          const _0x526dcd = process[_0x56bd(591, "7%WS")].LOCALAPPDATA || "";
          const _0x11abe2 = process[_0x56bd(313, "ACPk")][_0x56bd(1089, "^S!O")] || "";
          const _0x5a2b8c = process[_0x56bd(1453, "^S!O")][_0x56bd(1408, "^S!O")] || _0x56e2a7[_0x56bd(2031, "@HDB")];
          const _0x53bae9 = process[_0x56bd(1071, "]I&e")][_0x56e2a7[_0x56bd(1916, "ck7z")]] || _0x56bd(1714, "6eWF");
          const _0x7ed789 = [path[_0x56bd(2337, "]I&e")](_0x526dcd, _0x56e2a7.siiYr, _0x56e2a7.qYQbK), path.join(_0x526dcd, _0x56e2a7[_0x56bd(1513, "@HDB")], _0x56e2a7[_0x56bd(593, "Aig!")]), path[_0x56bd(2364, "akm5")](_0x11abe2, _0x56e2a7[_0x56bd(2222, "POq&")], _0x56e2a7.MCVpB, _0x56e2a7.siiYr, _0x56e2a7.qYQbK), path.join(_0x5a2b8c, _0x56e2a7.qYQbK), path[_0x56bd(2304, "@HDB")](_0x53bae9, _0x56bd(894, "DbBq")), path.join(_0x526dcd, _0x56e2a7[_0x56bd(1472, "Ka)i")]), path[_0x56bd(505, "8@jo")](_0x526dcd, _0x56e2a7[_0x56bd(998, "nj1b")])];
          for (const _0x5e748e of _0x7ed789) {
            if (_0x56e2a7[_0x56bd(2049, "KW&U")](_0x56bd(2500, "EJjX"), _0x56e2a7[_0x56bd(417, "H9os")])) {
              _0x4e428d.error(_0x56e2a7[_0x56bd(1588, "KTbh")], _0x4ee69e);
              return [];
            } else if (_0x5e748e && fs[_0x56bd(1826, "Aig!")](_0x5e748e)) {
              _0x36d8e8 = _0x5e748e;
              break;
            }
          }
        }
      } else if (_0x51335c === _0x56e2a7[_0x56bd(2368, "8@jo")]) {
        if (_0x56e2a7[_0x56bd(411, "63N&")](_0x56e2a7.HILVh, _0x56bd(628, "k$(5"))) {
          try {
            if (_0x56bd(837, "*&r5") === _0x56e2a7[_0x56bd(1009, "n8BU")]) {
              _0x3f27c6.error(_0x56e2a7[_0x56bd(2045, "T$OD")], _0x16e0a9);
              if (_0x56e2a7[_0x56bd(2062, "akm5")](_0x3fa137[_0x56bd(371, "LC6r")], _0x56e2a7[_0x56bd(849, "8@jo")]) || _0x56e2a7[_0x56bd(1525, "@HDB")](_0x50c56a[_0x56bd(1424, "ck7z")], _0x56e2a7[_0x56bd(1405, "EJjX")]) || _0x2fdaaf.code === _0x56e2a7.MQZgl) {
                const _0x2f5e07 = _0xf7d812[_0x56bd(600, "fu8^")];
                let _0xee0d40 = _0x56bd(861, "6eWF");
                if (_0x56e2a7[_0x56bd(961, "X4(r")](_0x2f5e07, "darwin")) {
                  _0xee0d40 = _0x56e2a7[_0x56bd(339, "DbBq")];
                } else if (_0x2f5e07 === _0x56bd(440, "bZsS")) {
                  _0xee0d40 = _0x56bd(875, "nY*(");
                }
                this[_0x56bd(2355, "KTbh")]({
                  type: _0x56e2a7[_0x56bd(1165, "K%5^")],
                  success: false,
                  error: _0xee0d40,
                  needAdmin: true,
                  path: _0x4f0e82
                });
                return;
              }
              throw _0x47d908;
            } else {
              const {
                stdout: _0x369a56
              } = await _0x56e2a7[_0x56bd(1030, "k$(5")](execAsync, "lsof -c Cursor 2>/dev/null | grep \"txt\" | grep -i \"Cursor.app\" | head -1 | awk '{print $9}'");
              if (_0x369a56 && _0x369a56.trim()) {
                if (_0x56e2a7.SZhcT !== _0x56e2a7[_0x56bd(398, "4)@$")]) {
                  this[_0x56bd(1287, "hSE]")]({
                    type: _0x56bd(926, "yoC7"),
                    success: true,
                    needConfirm: false
                  });
                } else {
                  const _0x257e0d = _0x369a56.trim()[_0x56bd(483, "^sHL")](/(.+\.app)/);
                  if (_0x257e0d) {
                    if (_0x56e2a7[_0x56bd(2062, "akm5")](_0x56e2a7.NkvWo, "hsffN")) {
                      this[_0x56bd(617, "0xfR")]({
                        type: _0x56e2a7[_0x56bd(801, "yoC7")],
                        success: true,
                        needConfirm: false
                      });
                      return;
                    } else {
                      _0x36d8e8 = _0x257e0d[1];
                    }
                  }
                }
              }
            }
          } catch (_0x1b82a1) {}
          if (!_0x36d8e8) {
            try {
              if (_0x56e2a7[_0x56bd(1259, "ck7z")](_0x56e2a7.AEQys, _0x56e2a7[_0x56bd(1356, "de]G")])) {
                const _0x3b6ec9 = _0x4396d5.data[_0x56bd(2131, "ck7z")] || {};
                const _0x318ca7 = _0x56e2a7[_0x56bd(1142, "EJjX")](_0x5a3f82, _0x3b6ec9[_0x56bd(1792, "H9os")] || 0);
                if (_0x56e2a7[_0x56bd(893, "s66k")](_0x318ca7, 10)) {
                  this[_0x56bd(2018, "8@jo")]({
                    type: _0x56e2a7.iIXMD,
                    success: true,
                    needConfirm: true,
                    costUSD: _0x318ca7.toFixed(2),
                    email: _0x430d08
                  });
                } else {
                  this[_0x56bd(2080, "bZsS")]({
                    type: _0x56e2a7[_0x56bd(1445, "$SfD")],
                    success: true,
                    needConfirm: false
                  });
                }
              } else {
                const {
                  stdout: _0x58b89f
                } = await execAsync(_0x56e2a7[_0x56bd(743, "^sHL")]);
                if (_0x58b89f && _0x58b89f.trim()) {
                  const _0x488389 = _0x58b89f[_0x56bd(1335, "yoC7")](/(\/.+\.app)/);
                  if (_0x488389) {
                    _0x36d8e8 = _0x488389[1];
                  }
                }
              }
            } catch (_0x58c36b) {
              console.warn(_0x56e2a7[_0x56bd(1046, "DQte")], _0x58c36b);
            }
          }
          if (!_0x36d8e8) {
            if (_0x56e2a7[_0x56bd(787, "DbBq")](_0x56bd(1135, "f)Dq"), _0x56e2a7[_0x56bd(1144, "k$(5")])) {
              _0x178033.error(_0x56bd(2433, "KTbh"), _0x1a091f);
              return false;
            } else {
              try {
                const {
                  stdout: _0x45fa41
                } = await execAsync(_0x56e2a7[_0x56bd(1800, "hSE]")]);
                if (_0x45fa41 && _0x45fa41.trim() && fs.existsSync(_0x45fa41[_0x56bd(1035, "B)Tn")]())) {
                  _0x36d8e8 = _0x45fa41.trim();
                }
              } catch (_0x141dcf) {}
            }
          }
          if (!_0x36d8e8 && fs[_0x56bd(1428, "yoC7")]("/Applications/Cursor.app")) {
            _0x36d8e8 = _0x56e2a7[_0x56bd(582, "63N&")];
          }
        } else {
          _0x221adf[_0x56bd(2040, "63N&")](_0x56e2a7[_0x56bd(1327, "f)Dq")], _0x45ce1f.message);
          _0x2ae3cb[_0x56bd(2258, "XKo0")](_0x56e2a7[_0x56bd(381, "]I&e")]);
        }
      } else {
        try {
          const {
            stdout: _0x11564d
          } = await execAsync(_0x56bd(1583, "T$OD"));
          const _0x5dd0f3 = _0x11564d && _0x11564d.trim();
          if (_0x5dd0f3) {
            const {
              stdout: _0x447245
            } = await _0x56e2a7[_0x56bd(2194, "fu8^")](execAsync, _0x56bd(1004, "H9os") + _0x5dd0f3 + _0x56bd(297, "7%8^"));
            if (_0x447245 && _0x447245[_0x56bd(1938, "nj1b")]()) {
              const _0x11b963 = _0x447245[_0x56bd(1734, "gvo7")]();
              _0x36d8e8 = path.dirname(_0x11b963);
              if (_0x36d8e8[_0x56bd(1284, "de]G")](_0x56e2a7[_0x56bd(889, "B)Tn")])) {
                _0x36d8e8 = path[_0x56bd(409, "hSE]")](_0x36d8e8);
              }
            }
          }
        } catch (_0x27a28d) {}
        if (!_0x36d8e8) {
          if (_0x56bd(1088, "KW&U") !== _0x56e2a7[_0x56bd(442, "DQte")]) {
            let _0x34acf5 = "";
            const _0x3634b6 = _0x56bd(678, "LC6r");
            for (let _0x1963ff = 0; _0x1963ff < 32; _0x1963ff++) {
              _0x34acf5 += _0x3634b6.charAt(_0x5a7f9b[_0x56bd(393, "4)@$")](_0x142a7a[_0x56bd(2021, "7%WS")]() * _0x3634b6[_0x56bd(1829, "^sHL")]));
            }
            return _0x34acf5;
          } else {
            try {
              const {
                stdout: _0x400a70
              } = await _0x56e2a7[_0x56bd(2459, "hSE]")](execAsync, _0x56e2a7[_0x56bd(1673, "XKo0")]);
              if (_0x400a70 && _0x400a70.trim()) {
                const _0x44bb60 = await execAsync(_0x56bd(2257, "qOgW") + _0x400a70.trim() + _0x56bd(1882, "ck7z"));
                if (_0x44bb60.stdout && _0x44bb60[_0x56bd(815, "^sHL")].trim()) {
                  _0x36d8e8 = path[_0x56bd(1440, "fu8^")](_0x44bb60[_0x56bd(610, "*&r5")].trim());
                  if (_0x36d8e8[_0x56bd(2055, "gvo7")]("/bin")) {
                    if (_0x56e2a7[_0x56bd(1270, "8Ee3")](_0x56e2a7.IGQIN, _0x56bd(2116, "K%5^"))) {
                      this[_0x56bd(763, "nY*(")]({
                        type: "userSwitchStatus",
                        valid: false,
                        switchRemaining: 0,
                        canSwitch: false,
                        error: _0x56e2a7[_0x56bd(2536, "^S!O")]
                      });
                      return;
                    } else {
                      _0x36d8e8 = path[_0x56bd(2221, "ACPk")](_0x36d8e8);
                    }
                  }
                }
              }
            } catch (_0x1d7835) {
              console[_0x56bd(1609, "H9os")](_0x56e2a7[_0x56bd(2125, "0xfR")], _0x1d7835);
            }
          }
        }
        if (!_0x36d8e8) {
          const _0x38357a = [_0x56e2a7[_0x56bd(935, "nY*(")], _0x56e2a7[_0x56bd(2149, "7%8^")], _0x56e2a7[_0x56bd(2545, "m#S*")], _0x56e2a7[_0x56bd(1171, "^S!O")], path[_0x56bd(2304, "@HDB")](process[_0x56bd(1908, "7%8^")][_0x56bd(2281, "bZsS")] || "", _0x56bd(359, "k$(5")), path.join(process[_0x56bd(2292, "n8BU")][_0x56bd(1312, "7%8^")] || "", _0x56e2a7[_0x56bd(2208, "0xfR")])];
          for (const _0x3a8856 of _0x38357a) {
            if (fs.existsSync(_0x3a8856)) {
              _0x36d8e8 = _0x3a8856;
              break;
            }
          }
        }
      }
    } catch (_0x2440bb) {
      console[_0x56bd(1127, "DQte")](_0x56e2a7[_0x56bd(2381, "6eWF")], _0x2440bb);
    }
    if (_0x36d8e8) {
      this._cachedCursorPath = _0x36d8e8;
    }
    return _0x36d8e8;
  }
  _getWorkbenchPath() {
    return this[_0x56bd(1548, "8Ee3")]();
  }
  _getWorkbenchPathSync() {
    const _0x45dfd9 = {
      UfpAf: _0x56bd(373, "qOgW"),
      Anviz: "[CursorPro] machineid 更新失败:",
      VVCFs: _0x56bd(533, "bZsS"),
      JyreV: function (_0x2669b9, _0x3af5b1) {
        return _0x2669b9(_0x3af5b1);
      },
      LuKVI: "crypto",
      SWJRm: function (_0xc6cc6a, _0x1e79ba) {
        return _0xc6cc6a & _0x1e79ba;
      },
      FQssd: function (_0x36d4a3, _0x3f9411) {
        return _0x36d4a3 !== _0x3f9411;
      },
      eUATr: function (_0x5176f0, _0x2f72df) {
        return _0x5176f0 === _0x2f72df;
      },
      jTUqv: _0x56bd(1196, "$SfD"),
      VLslV: "xuLZV",
      UWqNM: _0x56bd(2256, "]I&e"),
      sQFsh: _0x56bd(1239, "Ka)i"),
      eRJjA: _0x56bd(463, "@HDB"),
      gkqWe: _0x56bd(418, "K%5^"),
      ZSOkm: function (_0x45c79f, _0x381d17) {
        return _0x45c79f !== _0x381d17;
      },
      SccyE: _0x56bd(396, "Ka)i"),
      dVhNW: _0x56bd(280, "akm5"),
      VfwmP: function (_0x239346, _0xe3f08f) {
        return _0x239346 === _0xe3f08f;
      },
      NyLwi: _0x56bd(796, "6eWF"),
      aJjyB: "qRWfN",
      bWpPz: _0x56bd(870, "qOgW")
    };
    const _0x476275 = process[_0x56bd(368, "KW&U")];
    if (this._cachedCursorPath) {
      if (_0x45dfd9[_0x56bd(2437, "KTbh")]("zZyLK", _0x56bd(606, "iDwM"))) {
        let _0x3205e4;
        if (_0x45dfd9[_0x56bd(1320, "63N&")](_0x476275, _0x45dfd9[_0x56bd(1748, "]I&e")])) {
          if (_0x45dfd9[_0x56bd(475, "qOgW")](_0x56bd(659, "Aig!"), "xuLZV")) {
            _0x3205e4 = path.join(this[_0x56bd(1817, "nY*(")], "Contents", _0x56bd(2042, "bjRi"), _0x45dfd9[_0x56bd(940, "7%WS")], _0x45dfd9[_0x56bd(2499, "m#S*")], "vs", _0x45dfd9.eRJjA, _0x45dfd9[_0x56bd(2172, "8Ee3")]);
          } else {
            _0x3e2976[_0x56bd(2258, "XKo0")]([_0x45dfd9[_0x56bd(761, "4)@$")], _0x4568af[_0x56bd(1459, "6hxd")]]);
          }
        } else if (_0x45dfd9[_0x56bd(1411, "7%WS")](_0x56bd(1536, "63N&"), _0x45dfd9[_0x56bd(1730, "gvo7")])) {
          _0x3205e4 = path[_0x56bd(2364, "akm5")](this[_0x56bd(956, "POq&")], _0x45dfd9.dVhNW, _0x56bd(1097, "s66k"), _0x45dfd9[_0x56bd(1477, "akm5")], "vs", _0x45dfd9[_0x56bd(1625, "]I&e")], _0x56bd(1489, "akm5"));
        } else {
          _0x575999[_0x56bd(719, "f)Dq")](_0x45dfd9[_0x56bd(2087, "f)Dq")], _0x58392c.message);
          _0x8af8ae[_0x56bd(1818, "EJjX")](_0x45dfd9[_0x56bd(1591, "DQte")]);
        }
        if (fs.existsSync(_0x3205e4)) {
          return _0x3205e4;
        }
      } else {
        return [];
      }
    }
    if (_0x45dfd9[_0x56bd(1087, "^sHL")](_0x476275, "win32")) {
      return null;
    }
    let _0x5a8c19 = [];
    if (_0x45dfd9[_0x56bd(306, "m#S*")](_0x476275, _0x45dfd9.jTUqv)) {
      _0x5a8c19 = [_0x45dfd9[_0x56bd(1521, "X4(r")]];
    } else if (_0x45dfd9[_0x56bd(986, "7%WS")] !== "DESET") {
      _0x5a8c19 = [_0x45dfd9[_0x56bd(2220, "n8BU")], "/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js"];
    } else {
      const _0x495a3b = _0x45dfd9[_0x56bd(1398, "K%5^")](_0x32b48c, "crypto");
      const _0xfc487e = _0x495a3b[_0x56bd(489, "6hxd")](6);
      _0xfc487e[0] = _0x45dfd9[_0x56bd(1577, "de]G")](_0xfc487e[0] | 2, 254);
      return _0x55363f[_0x56bd(1078, "DbBq")](_0xfc487e)[_0x56bd(2070, "nY*(")](_0x210fd8 => _0x210fd8.toString(16)[_0x56bd(390, "qOgW")](2, "0"))[_0x56bd(2310, "Aig!")](":");
    }
    for (const _0x3c46cb of _0x5a8c19) {
      if (fs[_0x56bd(2509, "6eWF")](_0x3c46cb)) {
        return _0x3c46cb;
      }
    }
    return null;
  }
  async [_0x56bd(508, "nY*(")]() {
    const _0x333f76 = {
      diJhY: "C:\\Program Files",
      BHmwx: _0x56bd(1108, "B)Tn"),
      xDKiN: _0x56bd(863, "de]G"),
      aIUry: _0x56bd(767, "iDwM"),
      oemiO: _0x56bd(2410, "Ka)i"),
      wNjLv: _0x56bd(2529, "ck7z"),
      BzPhh: _0x56bd(432, "qOgW"),
      dNHJx: _0x56bd(1632, "6eWF"),
      JBwsK: _0x56bd(2099, "XKo0"),
      NoEGQ: _0x56bd(2513, "qOgW"),
      GOKzJ: _0x56bd(1532, "nY*("),
      okosv: "versionCheck",
      ktVBs: function (_0x175f78, _0x5a924f) {
        return _0x175f78 === _0x5a924f;
      },
      fYTsi: _0x56bd(1011, "POq&"),
      idevD: _0x56bd(1262, "8Ee3"),
      SJHtk: function (_0x48c702, _0x410996) {
        return _0x48c702 === _0x410996;
      },
      AJPrD: _0x56bd(1615, "B)Tn"),
      qcilt: function (_0x48c64d, _0x367af2) {
        return _0x48c64d === _0x367af2;
      },
      yQEWX: _0x56bd(1946, "@HDB"),
      Knhyl: _0x56bd(1852, "gvo7"),
      NPYXr: _0x56bd(1518, "B)Tn"),
      xDNVo: _0x56bd(2424, "4)@$"),
      Lnhsa: _0x56bd(795, "nj1b"),
      ejmIv: _0x56bd(2054, "KTbh"),
      yfprZ: _0x56bd(1629, "*&r5")
    };
    const _0x4a5df6 = process.platform;
    const _0x1a6628 = await this[_0x56bd(1189, "ACPk")]();
    if (_0x1a6628) {
      if (_0x333f76[_0x56bd(2124, "4)@$")](_0x333f76[_0x56bd(274, "bZsS")], _0x333f76[_0x56bd(879, "de]G")])) {
        const _0x56cab4 = _0x12c65b[1][_0x56bd(569, "de]G")]();
        _0x13e8cf = _0x13c1c8[_0x56bd(876, "yoC7")](_0x56cab4);
      } else {
        let _0x469a72;
        if (_0x4a5df6 === _0x333f76[_0x56bd(1455, "T$OD")]) {
          if (_0x333f76[_0x56bd(2245, "6hxd")](_0x333f76[_0x56bd(1476, "DbBq")], _0x333f76.yQEWX)) {
            _0x469a72 = path[_0x56bd(903, "DQte")](_0x1a6628, _0x333f76[_0x56bd(2092, "s66k")], _0x333f76.NPYXr, _0x333f76[_0x56bd(1601, "63N&")], _0x333f76[_0x56bd(315, "B)Tn")], "vs", _0x333f76.Lnhsa, _0x333f76[_0x56bd(1953, "KTbh")]);
          } else {
            const _0x2ee571 = _0x2f3785[_0x56bd(2013, "^sHL")].LOCALAPPDATA || "";
            const _0x5b8a61 = _0x36b6d4[_0x56bd(1212, "s66k")][_0x56bd(701, "6hxd")] || "";
            const _0x534e4d = _0x38e95c.env[_0x56bd(1096, "Aig!")] || _0x333f76[_0x56bd(2127, "B)Tn")];
            const _0x5281b8 = _0x2279f9[_0x56bd(1256, "KTbh")][_0x333f76[_0x56bd(2195, "DbBq")]] || _0x333f76[_0x56bd(945, "DbBq")];
            _0x344063[_0x56bd(1991, "X4(r")](_0x3b35ac[_0x56bd(2293, "POq&")](_0x2ee571, _0x333f76[_0x56bd(354, "DQte")], _0x333f76.oemiO, _0x333f76.wNjLv, _0x56bd(705, "de]G"), _0x333f76[_0x56bd(1369, "^S!O")]), _0x1d0746[_0x56bd(1519, "bjRi")](_0x2ee571, _0x333f76[_0x56bd(2119, "KTbh")], _0x333f76[_0x56bd(1107, "X4(r")], _0x333f76[_0x56bd(2525, "7%WS")], _0x333f76[_0x56bd(550, "fu8^")], _0x333f76[_0x56bd(1198, "K%5^")]), _0x3cb2bc[_0x56bd(1133, "gvo7")](_0x5b8a61, _0x333f76[_0x56bd(1918, "fu8^")], _0x333f76[_0x56bd(1985, "EJjX")], _0x333f76[_0x56bd(358, "8@jo")], _0x333f76[_0x56bd(265, "8Ee3")], _0x56bd(1906, "@HDB"), _0x333f76.JBwsK, _0x56bd(2078, "f)Dq")), _0x2db72[_0x56bd(308, "xK)8")](_0x534e4d, _0x56bd(318, "f)Dq"), _0x56bd(1381, "f)Dq"), _0x56bd(401, "KW&U"), _0x333f76.BzPhh), _0x118213[_0x56bd(1736, "7%8^")](_0x534e4d, _0x333f76.dNHJx, _0x333f76[_0x56bd(2091, "8@jo")], _0x333f76[_0x56bd(2494, "4)@$")], _0x333f76[_0x56bd(2150, "nj1b")]), _0x56d86f[_0x56bd(771, "DbBq")](_0x5281b8, _0x333f76.oemiO, _0x56bd(732, "KW&U"), _0x333f76[_0x56bd(636, "DQte")], _0x56bd(931, "gvo7")));
          }
        } else {
          _0x469a72 = path[_0x56bd(2202, "n8BU")](_0x1a6628, _0x333f76.wNjLv, _0x333f76.JBwsK, _0x333f76[_0x56bd(525, "DbBq")], "vs", _0x333f76[_0x56bd(1622, "bjRi")], _0x56bd(729, "POq&"));
        }
        if (fs[_0x56bd(904, "@HDB")](_0x469a72)) {
          if (_0x333f76.yfprZ === _0x333f76[_0x56bd(2354, "Ka)i")]) {
            return _0x469a72;
          } else {
            this._postMessage({
              type: _0x333f76[_0x56bd(1145, "fu8^")],
              success: false,
              currentVersion: _0x13b64d.CURRENT_VERSION,
              error: _0x1da786[_0x56bd(403, "bjRi")] || _0x56bd(1033, "DQte")
            });
          }
        }
      }
    }
    return this._getWorkbenchPathSync();
  }
  [_0x56bd(575, "]I&e")](_0x7082c6) {
    const _0x5ec24a = {
      WkvEt: _0x56bd(2260, "n8BU")
    };
    return _0x7082c6[_0x56bd(2052, "8Ee3")](_0x5ec24a.WkvEt) || _0x7082c6.includes("/*i1s*/");
  }
  async [_0x56bd(624, "Ka)i")]() {
    const _0x29b677 = {
      gPIxP: _0x56bd(2450, "KW&U"),
      ntlpp: _0x56bd(1401, "XKo0")
    };
    try {
      const _0x1a2041 = await this._getWorkbenchPathAsync();
      if (_0x1a2041 && fs[_0x56bd(2429, "T$OD")](_0x1a2041)) {
        const _0x432d66 = fs[_0x56bd(927, "7%8^")](_0x1a2041, _0x29b677[_0x56bd(808, "m#S*")]);
        return this[_0x56bd(540, "ACPk")](_0x432d66);
      }
      return false;
    } catch (_0x337782) {
      console.error(_0x29b677[_0x56bd(710, "n8BU")], _0x337782);
      return false;
    }
  }
  _getInjectionConfig(_0x1083ec, _0x19a8d2) {
    const _0x1829e6 = {
      FgaCg: "_showNotification(){",
      OHrmM: _0x56bd(1974, "hSE]"),
      CRApk: "注入点1: 核心模块初始化",
      YatzY: _0x56bd(510, "f)Dq"),
      MqHGw: _0x56bd(1353, "k$(5"),
      OSWSK: _0x56bd(1461, "H9os"),
      QXMFr: _0x56bd(773, "B)Tn"),
      hxXLs: _0x56bd(1642, "7%8^")
    };
    return [{
      name: _0x56bd(2196, "POq&"),
      scode: _0x1829e6[_0x56bd(1643, "6eWF")],
      replacement: _0x56bd(562, "8@jo"),
      restore: {
        find: _0x1829e6[_0x56bd(1838, "s66k")],
        replace_with: _0x1829e6[_0x56bd(1233, "63N&")]
      }
    }, {
      name: "注入点1: 核心模块初始化",
      scode: _0x1829e6[_0x56bd(827, "ACPk")],
      replacement: _0x56bd(1695, "7%8^") + _0x1083ec + "';window.__cpUserKey='" + _0x19a8d2 + _0x56bd(1379, "DbBq") + _0x19a8d2 + _0x56bd(805, "4)@$"),
      restore: {
        find_start: _0x1829e6[_0x56bd(2157, "T$OD")],
        find_end: _0x1829e6[_0x56bd(451, "akm5")]
      }
    }, {
      name: _0x1829e6[_0x56bd(1132, "KW&U")],
      scode: _0x1829e6[_0x56bd(2184, "Ka)i")],
      replacement: _0x56bd(1845, "0xfR"),
      restore: {
        find_start: _0x56bd(2287, "qOgW"),
        find_end: _0x1829e6[_0x56bd(2387, "7%WS")]
      }
    }];
  }
  async [_0x56bd(1466, "DQte")]() {
    const _0x4fdfb6 = {
      eAudc: "resources",
      ZnFEJ: "app",
      QGTLQ: "package.json",
      yDFID: _0x56bd(1333, "^sHL"),
      XoRrm: _0x56bd(2409, "X4(r"),
      zcMpa: _0x56bd(1528, "6hxd"),
      cTyAN: _0x56bd(1197, "K%5^"),
      UNUES: _0x56bd(1314, "6eWF"),
      IJzdz: _0x56bd(2022, "de]G"),
      VGOST: _0x56bd(964, "f)Dq"),
      vySBX: _0x56bd(2441, "f)Dq"),
      OUNoh: _0x56bd(1858, "8@jo"),
      gzoYo: _0x56bd(2027, "m#S*"),
      nmpHW: function (_0x5dd144, _0x2310ea) {
        return _0x5dd144 !== _0x2310ea;
      },
      mZDVz: "reoBh",
      XlzQa: _0x56bd(2528, "xK)8"),
      RKaZM: _0x56bd(2181, "H9os"),
      wFOsZ: function (_0x6d21a5, _0x3149e3) {
        return _0x6d21a5 === _0x3149e3;
      },
      uTxRa: _0x56bd(282, "T$OD"),
      NQBnu: _0x56bd(1441, "gvo7"),
      QwROM: function (_0x43ac94, _0xa61565) {
        return _0x43ac94 + _0xa61565;
      },
      KPHtC: _0x56bd(514, "B)Tn"),
      BJIgK: _0x56bd(2030, "KTbh"),
      asGDz: function (_0x58de12, _0x3456ca) {
        return _0x58de12 === _0x3456ca;
      },
      AvMcE: _0x56bd(765, "^sHL"),
      NFNQK: _0x56bd(2251, "gvo7"),
      ApEZm: "[CursorPro] 备份恢复成功",
      WEdcP: function (_0x1e1572, _0x389e03) {
        return _0x1e1572 === _0x389e03;
      },
      NwiBk: _0x56bd(1684, "6hxd"),
      fWqWm: _0x56bd(453, "*&r5"),
      PuBtb: function (_0x29c277, _0x1a6e1f) {
        return _0x29c277 === _0x1a6e1f;
      },
      QPTVv: "[CursorPro] 注入失败，未找到任何注入点",
      bwZyq: _0x56bd(921, "akm5"),
      isjyP: "[CursorPro] 文件大小:",
      nGlvY: _0x56bd(2244, "H9os"),
      eLVeH: _0x56bd(1820, "DQte"),
      JDsIJ: "[CursorPro] 包含 _showNotification:",
      Spptx: _0x56bd(2484, "]I&e"),
      OaqMs: "Cursor 版本不兼容，注入点未找到",
      CqvrX: function (_0x5599e0, _0x5736b6) {
        return _0x5599e0 > _0x5736b6;
      },
      tdJex: _0x56bd(1757, "bZsS"),
      IsXFU: function (_0x32bf90, _0x554c91) {
        return _0x32bf90 === _0x554c91;
      },
      NpueJ: _0x56bd(1658, "LC6r"),
      chYLS: "[CursorPro] 写入文件失败:",
      qFuwX: "EACCES",
      jWyZD: _0x56bd(1418, "k$(5"),
      nsFtB: function (_0x385d3c, _0x38d8b9) {
        return _0x385d3c === _0x38d8b9;
      },
      vryqQ: _0x56bd(1378, "8Ee3"),
      FiwIr: _0x56bd(2377, "T$OD"),
      NnBbT: _0x56bd(1859, "XKo0"),
      kofbg: _0x56bd(1104, "Ka)i"),
      WedEJ: _0x56bd(1662, "akm5"),
      jiObk: _0x56bd(1114, "fu8^"),
      chXsS: _0x56bd(716, "*&r5"),
      PfOPU: _0x56bd(1762, "K%5^"),
      GZrDV: function (_0x122af4, _0x148522) {
        return _0x122af4 === _0x148522;
      },
      SUpCK: "TKgrk",
      JOonS: _0x56bd(789, "n8BU"),
      uvZZD: _0x56bd(793, "8@jo")
    };
    try {
      const _0x4a9f7b = this._context[_0x56bd(2541, "*&r5")].get(_0x56bd(2289, "qOgW"));
      if (!_0x4a9f7b) {
        if (_0x4fdfb6[_0x56bd(310, "]I&e")](_0x56bd(639, "POq&"), "reoBh")) {
          this[_0x56bd(1210, "ck7z")]({
            type: _0x4fdfb6[_0x56bd(1895, "7%WS")],
            success: false,
            error: _0x56bd(1755, "fu8^")
          });
          return;
        } else {
          _0x548dfc.push(_0x3afbb1[_0x56bd(539, "yoC7")](_0x180fb4, _0x4fdfb6[_0x56bd(1051, "nj1b")], _0x4fdfb6[_0x56bd(1232, "@HDB")], _0x4fdfb6[_0x56bd(2431, "H9os")]));
        }
      }
      0;
      const _0x358ad2 = await client_1[_0x56bd(766, "@HDB")](_0x4a9f7b);
      if (!_0x358ad2.valid) {
        this[_0x56bd(794, "8Ee3")]({
          type: _0x4fdfb6[_0x56bd(298, "fu8^")],
          success: false,
          error: _0x358ad2[_0x56bd(1887, "ACPk")] || _0x4fdfb6[_0x56bd(413, "8Ee3")]
        });
        return;
      }
      const _0x1f82b7 = await this[_0x56bd(1687, "bjRi")]();
      if (!_0x1f82b7) {
        if (_0x4fdfb6[_0x56bd(1370, "bjRi")](_0x4fdfb6[_0x56bd(1995, "gvo7")], _0x4fdfb6[_0x56bd(1924, "4)@$")])) {
          this[_0x56bd(1723, "^sHL")]({
            type: _0x4fdfb6[_0x56bd(2264, "0xfR")],
            success: false,
            error: _0x4fdfb6[_0x56bd(2361, "63N&")]
          });
          return;
        } else {
          this[_0x56bd(1884, "63N&")]({
            type: "keyStatusChecked",
            valid: false,
            expired: true,
            error: _0x2b03db[_0x56bd(1081, "]I&e")] || _0x4fdfb6[_0x56bd(1878, "Ka)i")]
          });
        }
      }
      const _0xcc733a = _0x4fdfb6[_0x56bd(907, "8Ee3")](_0x1f82b7, _0x4fdfb6[_0x56bd(741, "DbBq")]);
      const _0x3dee3a = !this._context.globalState[_0x56bd(1619, "s66k")](_0x4fdfb6[_0x56bd(303, "XKo0")]);
      if (_0x3dee3a && fs[_0x56bd(2480, "*&r5")](_0xcc733a)) {
        if (_0x4fdfb6[_0x56bd(2357, "8Ee3")](_0x56bd(852, "K%5^"), _0x4fdfb6[_0x56bd(276, "bjRi")])) {
          _0x41a723 = _0x4ad1c8;
          if (_0x53f68b === _0x4fdfb6[_0x56bd(1400, "nj1b")]) {
            _0x4d9364 = _0x1d4e3d[_0x56bd(1722, "4)@$")](_0xea2f6b, _0x4fdfb6.zcMpa, _0x4fdfb6[_0x56bd(1898, "B)Tn")], _0x4fdfb6[_0x56bd(1764, "KW&U")], "package.json");
          } else {
            _0x4ea91b = _0x247fd6.join(_0x348c77, _0x4fdfb6[_0x56bd(1192, "xK)8")], _0x4fdfb6[_0x56bd(1348, "7%8^")], "package.json");
          }
          _0x43e5e3.log(_0x4fdfb6.UNUES, _0x5e9043);
        } else {
          console.log(_0x4fdfb6[_0x56bd(2218, "gvo7")]);
          try {
            fs[_0x56bd(2415, "X4(r")](_0xcc733a, _0x1f82b7);
            console.log(_0x4fdfb6[_0x56bd(1902, "DQte")]);
          } catch (_0x35600a) {
            console.error(_0x4fdfb6[_0x56bd(1465, "nj1b")], _0x35600a);
          }
        }
      }
      let _0x293b2f = fs[_0x56bd(927, "7%8^")](_0x1f82b7, "utf-8");
      if (this._checkInjected(_0x293b2f)) {
        this[_0x56bd(1576, "7%WS")]({
          type: _0x56bd(1928, "fu8^"),
          message: _0x56bd(2309, "bZsS"),
          icon: "✅"
        });
        return;
      }
      if (!fs[_0x56bd(364, "B)Tn")](_0xcc733a)) {
        fs[_0x56bd(847, "f)Dq")](_0x1f82b7, _0xcc733a);
        console[_0x56bd(1768, "K%5^")]("[CursorPro] 创建备份文件");
      }
      0;
      const _0x4d5a34 = client_1.getApiUrl();
      const _0x4868b5 = this._getInjectionConfig(_0x4d5a34, _0x4a9f7b);
      const _0x576180 = [];
      const _0x51a1cd = [];
      for (const _0x334c21 of _0x4868b5) {
        if (_0x4fdfb6[_0x56bd(1279, "de]G")] === _0x4fdfb6[_0x56bd(1166, "*&r5")]) {
          _0xf54d53 = _0x4fdfb6[_0x56bd(2094, "*&r5")];
        } else if (_0x293b2f.includes(_0x334c21.scode)) {
          _0x293b2f = _0x293b2f[_0x56bd(279, "fu8^")](_0x334c21[_0x56bd(366, "de]G")], _0x334c21[_0x56bd(972, "Aig!")]);
          _0x576180.push(_0x334c21[_0x56bd(2465, "n8BU")]);
        } else {
          _0x51a1cd[_0x56bd(644, "Ka)i")](_0x334c21[_0x56bd(1116, "@HDB")]);
        }
      }
      if (_0x4fdfb6[_0x56bd(2515, "63N&")](_0x576180[_0x56bd(1488, "KW&U")], 0)) {
        console[_0x56bd(642, "K%5^")](_0x4fdfb6[_0x56bd(742, "iDwM")]);
        console.error(_0x4fdfb6[_0x56bd(427, "qOgW")], _0x1f82b7);
        console[_0x56bd(2329, "DbBq")](_0x4fdfb6[_0x56bd(501, "iDwM")], _0x293b2f[_0x56bd(1402, "6hxd")]);
        console[_0x56bd(397, "bZsS")]("[CursorPro] 未找到的注入点:", _0x51a1cd);
        const _0x163732 = _0x293b2f[_0x56bd(700, "8@jo")](_0x4fdfb6[_0x56bd(1825, "ACPk")]);
        const _0xaf63e8 = _0x293b2f[_0x56bd(1451, "6eWF")](_0x4fdfb6[_0x56bd(695, "]I&e")]);
        console[_0x56bd(1981, "s66k")](_0x4fdfb6[_0x56bd(2005, "8Ee3")], _0x163732);
        console.error(_0x4fdfb6.Spptx, _0xaf63e8);
        this._postMessage({
          type: _0x4fdfb6[_0x56bd(1549, "de]G")],
          success: false,
          error: _0x4fdfb6[_0x56bd(1621, "iDwM")],
          details: _0x56bd(1801, "n8BU") + _0x1f82b7
        });
        return;
      }
      console[_0x56bd(2066, "bZsS")]("[CursorPro] 注入成功，应用的注入点:", _0x576180);
      if (_0x4fdfb6[_0x56bd(1100, "K%5^")](_0x51a1cd[_0x56bd(2111, "hSE]")], 0)) {
        console[_0x56bd(1575, "8@jo")](_0x4fdfb6[_0x56bd(1293, "Aig!")], _0x51a1cd);
      }
      try {
        if (_0x4fdfb6[_0x56bd(2178, "XKo0")](_0x56bd(2185, "yoC7"), _0x56bd(304, "DQte"))) {
          _0x5d5216[_0x56bd(1670, "Aig!")](_0x56bd(459, "bZsS"), _0x5973ff);
        } else {
          fs[_0x56bd(563, "6eWF")](_0x1f82b7, _0x293b2f, _0x56bd(871, "^S!O"));
        }
      } catch (_0x3a91bb) {
        if (_0x4fdfb6[_0x56bd(925, "*&r5")](_0x56bd(655, "]I&e"), _0x4fdfb6[_0x56bd(745, "^S!O")])) {
          this[_0x56bd(763, "nY*(")]({
            type: _0x4fdfb6[_0x56bd(1626, "K%5^")],
            success: false,
            error: _0x4fdfb6[_0x56bd(2492, "Aig!")]
          });
          return;
        } else {
          console[_0x56bd(1504, "ck7z")](_0x4fdfb6[_0x56bd(885, "X4(r")], _0x3a91bb);
          if (_0x4fdfb6[_0x56bd(278, "6hxd")](_0x3a91bb.code, _0x56bd(1237, "gvo7")) || _0x4fdfb6[_0x56bd(513, "LC6r")](_0x3a91bb[_0x56bd(335, "iDwM")], _0x4fdfb6[_0x56bd(1597, "8@jo")]) || _0x3a91bb[_0x56bd(1835, "7%WS")] === _0x56bd(1814, "bZsS")) {
            const _0x24004b = process[_0x56bd(2074, "H9os")];
            let _0xccdd73 = _0x56bd(270, "yoC7");
            if (_0x4fdfb6[_0x56bd(2491, "B)Tn")](_0x24004b, _0x4fdfb6.XoRrm)) {
              _0xccdd73 = _0x4fdfb6[_0x56bd(1630, "B)Tn")];
            } else if (_0x24004b === _0x4fdfb6[_0x56bd(1559, "63N&")]) {
              if (_0x4fdfb6[_0x56bd(448, "n8BU")] === _0x4fdfb6[_0x56bd(1593, "@HDB")]) {
                _0x21b463.error(_0x4fdfb6[_0x56bd(2372, "H9os")], _0x3e51df);
              } else {
                _0xccdd73 = _0x4fdfb6[_0x56bd(1139, "6hxd")];
              }
            }
            this[_0x56bd(1550, "nj1b")]({
              type: _0x4fdfb6[_0x56bd(298, "fu8^")],
              success: false,
              error: _0xccdd73,
              needAdmin: true,
              path: _0x1f82b7
            });
            return;
          }
          throw _0x3a91bb;
        }
      }
      await this._context[_0x56bd(1862, "KTbh")][_0x56bd(1020, "7%WS")](_0x4fdfb6.BJIgK, true);
      this[_0x56bd(284, "Ka)i")]({
        type: "seamlessInjected",
        success: true,
        applied: _0x576180,
        needRestart: true,
        message: _0x4fdfb6[_0x56bd(1055, "xK)8")]
      });
    } catch (_0xc2dc2b) {
      if (_0x4fdfb6[_0x56bd(995, "6hxd")] !== "nUNdq") {
        const _0x4ee293 = this[_0x56bd(665, "KTbh")]();
        return _0x4ee293[_0x56bd(2322, "nj1b")](this.HOSTS_MARKER_START);
      } else {
        console.error(_0x4fdfb6.chXsS, _0xc2dc2b);
        if (_0xc2dc2b[_0x56bd(997, "POq&")] === _0x4fdfb6[_0x56bd(1028, "bjRi")] || _0xc2dc2b[_0x56bd(640, "8Ee3")] === _0x4fdfb6[_0x56bd(2129, "bjRi")]) {
          if (_0x4fdfb6[_0x56bd(707, "]I&e")] === _0x4fdfb6.JOonS) {
            _0x5ec281.error(_0x4fdfb6[_0x56bd(1452, "63N&")], _0x36fa8d);
          } else {
            const _0x2429c3 = _0x4fdfb6[_0x56bd(1448, "n8BU")];
            this._postMessage({
              type: _0x4fdfb6[_0x56bd(2085, "KTbh")],
              success: false,
              error: _0x2429c3,
              needAdmin: true
            });
            return;
          }
        }
        this[_0x56bd(1099, "K%5^")]({
          type: _0x4fdfb6[_0x56bd(1247, "m#S*")],
          success: false,
          error: _0xc2dc2b[_0x56bd(1234, "DbBq")] || "注入失败"
        });
      }
    }
  }
  async [_0x56bd(1592, "X4(r")]() {
    const _0x5d9144 = {
      fNFwN: function (_0x4677dc, _0x3f836a) {
        return _0x4677dc === _0x3f836a;
      },
      qzWvm: _0x56bd(1912, "6eWF"),
      iIeEk: _0x56bd(1001, "6hxd"),
      hXGdP: _0x56bd(568, "*&r5"),
      TTVZf: _0x56bd(683, "nY*("),
      gtuTM: _0x56bd(1873, "hSE]"),
      GRbOi: function (_0x496f84, _0x59be80) {
        return _0x496f84 !== _0x59be80;
      },
      SIJlB: function (_0xa1dd05, _0x2b05d1) {
        return _0xa1dd05 + _0x2b05d1;
      },
      lhoIl: "/*i2s*/",
      rihJn: _0x56bd(1373, "ACPk"),
      UKjaP: function (_0x2caba4, _0x4c1323) {
        return _0x2caba4 !== _0x4c1323;
      },
      gfXYq: _0x56bd(781, "6eWF"),
      oXUXx: function (_0x3c695c, _0x1ab82c) {
        return _0x3c695c + _0x1ab82c;
      },
      hFPNQ: function (_0x55b01d, _0x32e339) {
        return _0x55b01d === _0x32e339;
      },
      iKOOs: function (_0x2379b9, _0x2b53a3) {
        return _0x2379b9 === _0x2b53a3;
      },
      yKkFV: _0x56bd(2050, "6eWF"),
      uxIzt: _0x56bd(1711, "DbBq"),
      PVsoN: _0x56bd(332, "de]G"),
      dzulQ: _0x56bd(531, "7%WS"),
      wYcDp: _0x56bd(1299, "gvo7"),
      yoKCW: _0x56bd(526, "T$OD"),
      dGgrN: function (_0x635b, _0x11e947) {
        return _0x635b === _0x11e947;
      },
      ybPXs: _0x56bd(1025, "^sHL")
    };
    try {
      const _0x52b18d = await this._getWorkbenchPathAsync();
      if (!_0x52b18d) {
        if (_0x56bd(1691, "^sHL") === _0x5d9144[_0x56bd(372, "xK)8")]) {
          return _0x1ef303;
        } else {
          this[_0x56bd(1740, "H9os")]({
            type: _0x56bd(1656, "bjRi"),
            success: false,
            error: "未找到Cursor安装目录"
          });
          return;
        }
      }
      let _0x3f0257 = fs[_0x56bd(2280, "KTbh")](_0x52b18d, _0x5d9144.iIeEk);
      if (!this[_0x56bd(1870, "f)Dq")](_0x3f0257)) {
        return;
      }
      _0x3f0257 = _0x3f0257.replace(_0x5d9144[_0x56bd(1935, "^S!O")], _0x5d9144[_0x56bd(2199, "POq&")]);
      const _0x1b150c = _0x3f0257[_0x56bd(721, "B)Tn")](_0x56bd(605, "akm5"));
      const _0x1689e0 = _0x3f0257[_0x56bd(2366, "k$(5")](_0x5d9144[_0x56bd(1363, "B)Tn")]);
      if (_0x1b150c !== -1 && _0x1689e0 !== -1) {
        _0x3f0257 = _0x3f0257.substring(0, _0x1b150c) + _0x3f0257[_0x56bd(2227, "yoC7")](_0x1689e0 + 7);
      }
      const _0x17d1df = _0x3f0257[_0x56bd(784, "ACPk")](_0x5d9144[_0x56bd(1844, "ck7z")]);
      const _0x260da1 = _0x3f0257[_0x56bd(1919, "ck7z")](_0x5d9144[_0x56bd(2389, "$SfD")]);
      if (_0x17d1df !== -1 && _0x260da1 !== -1) {
        if (_0x5d9144[_0x56bd(530, "^S!O")]("kmqvv", _0x5d9144[_0x56bd(1188, "Aig!")])) {
          _0x1c40a3.unlinkSync(_0x4225bd);
        } else {
          _0x3f0257 = _0x5d9144[_0x56bd(1362, "X4(r")](_0x3f0257[_0x56bd(1904, "8Ee3")](0, _0x17d1df), _0x3f0257[_0x56bd(1403, "K%5^")](_0x260da1 + 7));
        }
      }
      try {
        fs.writeFileSync(_0x52b18d, _0x3f0257, _0x5d9144.iIeEk);
      } catch (_0x1ea8dd) {
        if (_0x5d9144[_0x56bd(1480, "K%5^")](_0x1ea8dd[_0x56bd(468, "hSE]")], _0x56bd(1385, "@HDB")) || _0x1ea8dd[_0x56bd(2001, "f)Dq")] === _0x56bd(1086, "*&r5")) {
          if (_0x5d9144[_0x56bd(2411, "DbBq")](_0x5d9144[_0x56bd(916, "KTbh")], _0x5d9144.uxIzt)) {
            _0x2edff2 = _0x55fda2[1];
          } else {
            const _0x32b396 = _0x5d9144[_0x56bd(1541, "0xfR")];
            this[_0x56bd(1802, "*&r5")]({
              type: _0x5d9144[_0x56bd(736, "K%5^")],
              success: false,
              error: _0x32b396,
              needAdmin: true
            });
            return;
          }
        }
        throw _0x1ea8dd;
      }
      this[_0x56bd(388, "KW&U")]({
        type: _0x5d9144[_0x56bd(1019, "ACPk")],
        success: true,
        needRestart: true,
        message: _0x56bd(1876, "LC6r")
      });
    } catch (_0x5a1405) {
      console[_0x56bd(1081, "]I&e")](_0x5d9144[_0x56bd(2064, "$SfD")], _0x5a1405);
      if (_0x5a1405.code === _0x5d9144[_0x56bd(1997, "XKo0")] || _0x5d9144[_0x56bd(2133, "7%8^")](_0x5a1405.code, _0x5d9144[_0x56bd(1679, "nY*(")])) {
        const _0x5de741 = _0x56bd(2173, "akm5");
        this._postMessage({
          type: _0x5d9144[_0x56bd(333, "X4(r")],
          success: false,
          error: _0x5de741,
          needAdmin: true
        });
        return;
      }
      this[_0x56bd(1126, "$SfD")]({
        type: _0x5d9144.dzulQ,
        success: false,
        error: _0x5a1405[_0x56bd(2400, "@HDB")] || "还原失败"
      });
    }
  }
  async [_0x56bd(2160, "K%5^")](_0x1772fb) {
    const _0x595d47 = {
      uMKkd: _0x56bd(1788, "K%5^"),
      puuTf: "OoEdP",
      GMeLW: _0x56bd(1164, "0xfR"),
      xfsPC: function (_0x594de1, _0x4d93aa) {
        return _0x594de1 === _0x4d93aa;
      },
      gwHNY: _0x56bd(1413, "H9os"),
      DbkSk: _0x56bd(559, "nj1b")
    };
    try {
      if (_0x595d47[_0x56bd(542, "qOgW")] === "OoEdP") {
        try {
          if (_0x2c90c5[_0x56bd(296, "s66k")](_0x4f880f)) {
            _0x40d342.rmSync(_0x56e280, {
              recursive: true,
              force: true
            });
            _0x108655++;
          }
        } catch (_0x5f07e2) {
          _0x49f06e[_0x56bd(1914, "ACPk")]("[CursorPro] 清理失败: " + _0x860525, _0x5f07e2);
        }
      } else {
        0;
        await client_1[_0x56bd(1186, "de]G")]({
          enabled: _0x1772fb
        });
        this[_0x56bd(581, "7%8^")]({
          type: _0x595d47[_0x56bd(538, "yoC7")],
          success: true,
          enabled: _0x1772fb
        });
      }
    } catch (_0x4b5076) {
      if (_0x595d47[_0x56bd(402, "EJjX")](_0x56bd(1586, "0xfR"), _0x595d47.gwHNY)) {
        return this._getWorkbenchPathSync();
      } else {
        this[_0x56bd(2338, "m#S*")]({
          type: _0x595d47.GMeLW,
          success: false,
          error: _0x595d47[_0x56bd(1185, "LC6r")]
        });
      }
    }
  }
  async _handleGetUserSwitchStatus() {
    const _0x7a74ee = {
      iTdeY: _0x56bd(1881, "^S!O"),
      sJbdj: "userSwitchStatus",
      Bzqze: "TSpKd",
      HRNLC: function (_0xf71d5d, _0x1fbc3a) {
        return _0xf71d5d !== _0x1fbc3a;
      },
      BIPgO: _0x56bd(1886, "6eWF"),
      zFtlx: _0x56bd(1281, "KTbh")
    };
    try {
      if (_0x7a74ee[_0x56bd(737, "8@jo")] !== _0x7a74ee.iTdeY) {
        _0x5ec7da[_0x56bd(1809, "xK)8")]([_0x56bd(920, "iDwM"), _0x4c815c[_0x56bd(2002, "EJjX")]]);
      } else {
        const _0x8fa174 = this[_0x56bd(1572, "EJjX")][_0x56bd(2163, "de]G")].get("cursorpro.key");
        if (!_0x8fa174) {
          this._postMessage({
            type: _0x7a74ee[_0x56bd(1288, "gvo7")],
            valid: false,
            switchRemaining: 0,
            canSwitch: false,
            error: _0x56bd(1467, "fu8^")
          });
          return;
        }
        0;
        const _0x55ca3b = await client_1[_0x56bd(802, "s66k")](_0x8fa174);
        let _0x1b9794 = false;
        try {
          if (_0x56bd(798, "EJjX") === "TSpKd") {
            0;
            const _0x3f529b = await client_1[_0x56bd(2472, "K%5^")]();
            _0x1b9794 = _0x3f529b[_0x56bd(783, "iDwM")] || false;
          } else {
            _0x3d9b73[_0x56bd(750, "akm5")]("[CursorPro] 清理失败: " + _0x151b0c, _0x57f0b8);
          }
        } catch (_0x12015a) {}
        this._postMessage({
          type: "userSwitchStatus",
          ..._0x55ca3b,
          seamlessEnabled: _0x1b9794
        });
      }
    } catch (_0x831a4b) {
      if (_0x56bd(1040, "k$(5") !== _0x7a74ee[_0x56bd(2404, "ACPk")]) {
        this._postMessage({
          type: _0x56bd(383, "LC6r"),
          valid: false,
          switchRemaining: 0,
          canSwitch: false,
          error: _0x7a74ee[_0x56bd(1330, "ck7z")]
        });
      } else {
        const _0x2c52f0 = this._getNonce();
        return "<!DOCTYPE html>\n<html lang=\"zh-CN\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <meta http-equiv=\"Content-Security-Policy\" content=\"default-src 'none'; style-src 'unsafe-inline'; script-src 'nonce-" + _0x2c52f0 + _0x56bd(967, "hSE]") + _0x2ff1db[_0x56bd(1932, "H9os")] + _0x56bd(2294, "nY*(") + _0x1bed45[_0x56bd(1446, "X4(r")] + "; worker-src 'none';\">\n    <title>CursorPro</title>\n    <script nonce=\"" + _0x2c52f0 + _0x56bd(836, "*&r5") + _0x2c52f0 + "\">\n        const vscode = acquireVsCodeApi();\n        \n        // 元素引用\n        const keyInput = document.getElementById('keyInput');\n        const activateBtn = document.getElementById('activateBtn');\n        const switchBtn = document.getElementById('switchBtn');\n        const resetBtn = document.getElementById('resetBtn');\n        const disableUpdateBtn = document.getElementById('disableUpdateBtn');\n        const cleanEnvBtn = document.getElementById('cleanEnvBtn');\n        const disableBtn = document.getElementById('disableBtn');\n        const authStatus = document.getElementById('authStatus');\n        const accountStatus = document.getElementById('accountStatus');\n        const keyDisplay = document.getElementById('keyDisplay');\n        const switchCount = document.getElementById('switchCount');\n        const expireDate = document.getElementById('expireDate');\n        const cursorVersion = document.getElementById('cursorVersion');\n        const cursorPath = document.getElementById('cursorPath');\n        \n        // 离线状态元素\n        const offlineBanner = document.getElementById('offlineBanner');\n        const retryConnectBtn = document.getElementById('retryConnectBtn');\n        \n        // 无感换号元素\n        const seamlessStatus = document.getElementById('seamlessStatus');\n        const seamlessProxySwitch = document.getElementById('seamlessProxySwitch');\n        const enableSeamlessBtn = document.getElementById('enableSeamlessBtn');\n        const disableSeamlessBtn = document.getElementById('disableSeamlessBtn');\n        const manualSwitchBtn = document.getElementById('manualSwitchBtn');\n        const seamlessResetMachineBtn = document.getElementById('seamlessResetMachineBtn');\n        const seamlessSwitchRemaining = document.getElementById('seamlessSwitchRemaining');\n        const seamlessCurrentAccount = document.getElementById('seamlessCurrentAccount');\n        \n        // 用量显示元素\n        const usageSection = document.getElementById('usageSection');\n        const refreshUsageBtn = document.getElementById('refreshUsageBtn');\n        const usageMemberType = document.getElementById('usageMemberType');\n        const usageTrialDays = document.getElementById('usageTrialDays');\n        const usageRequestCount = document.getElementById('usageRequestCount');\n        const usageCostUSD = document.getElementById('usageCostUSD');\n        const usageUpdateTime = document.getElementById('usageUpdateTime');\n        \n        // 公告元素\n        const announcementSection = document.getElementById('announcementSection');\n        const announcementIcon = document.getElementById('announcementIcon');\n        const announcementBadge = document.getElementById('announcementBadge');\n        const announcementTitle = document.getElementById('announcementTitle');\n        const announcementContent = document.getElementById('announcementContent');\n        const announcementTime = document.getElementById('announcementTime');\n        \n        // 版本元素\n        const versionSection = document.getElementById('versionSection');\n        const versionStatus = document.getElementById('versionStatus');\n        const currentVersionEl = document.getElementById('currentVersion');\n        const latestVersionEl = document.getElementById('latestVersion');\n        const latestVersionRow = document.getElementById('latestVersionRow');\n        const updateHint = document.getElementById('updateHint');\n        \n        // 顶部更新提醒条\n        const updateBanner = document.getElementById('updateBanner');\n        const updateBannerVersion = document.getElementById('updateBannerVersion');\n        const updateBannerClose = document.getElementById('updateBannerClose');\n        \n        // Toast 元素\n        const toast = document.getElementById('toast');\n        const toastIcon = document.getElementById('toastIcon');\n        const toastMessage = document.getElementById('toastMessage');\n        let toastTimer = null;\n        \n        // 显示 Toast 通知\n        function showToast(message, icon = '✅', duration = 10000) {\n            // 清除之前的定时器\n            if (toastTimer) {\n                clearTimeout(toastTimer);\n            }\n            \n            toastIcon.textContent = icon;\n            toastMessage.textContent = message;\n            toast.classList.add('show');\n            \n            // 设置自动隐藏\n            toastTimer = setTimeout(() => {\n                toast.classList.remove('show');\n            }, duration);\n        }\n        \n        // 禁用换号按钮并显示倒计时\n        let switchBtnCountdownTimer = null;\n        const originalSwitchBtnText = '一键换号(扣1积分)';\n        \n        function disableSwitchBtnWithCountdown(seconds) {\n            // 清除之前的定时器\n            if (switchBtnCountdownTimer) {\n                clearInterval(switchBtnCountdownTimer);\n            }\n            \n            let remaining = seconds;\n            manualSwitchBtn.disabled = true;\n            manualSwitchBtn.querySelector('.btn-text').textContent = remaining + '秒后可用';\n            \n            switchBtnCountdownTimer = setInterval(() => {\n                remaining--;\n                if (remaining <= 0) {\n                    clearInterval(switchBtnCountdownTimer);\n                    switchBtnCountdownTimer = null;\n                    manualSwitchBtn.disabled = false;\n                    manualSwitchBtn.querySelector('.btn-text').textContent = originalSwitchBtnText;\n                } else {\n                    manualSwitchBtn.querySelector('.btn-text').textContent = remaining + '秒后可用';\n                }\n            }, 1000);\n        }\n        \n        // 弹窗元素\n        const adminModal = document.getElementById('adminModal');\n        const adminModalClose = document.getElementById('adminModalClose');\n        const resetPermissionModal = document.getElementById('resetPermissionModal');\n        const resetPermissionClose = document.getElementById('resetPermissionClose');\n        const restartModal = document.getElementById('restartModal');\n        const restartModalTitle = document.getElementById('restartModalTitle');\n        const restartNowBtn = document.getElementById('restartNowBtn');\n        const restartLaterBtn = document.getElementById('restartLaterBtn');\n        const expiredModal = document.getElementById('expiredModal');\n        const expiredModalClose = document.getElementById('expiredModalClose');\n        const cleanEnvModal = document.getElementById('cleanEnvModal');\n        const cleanEnvConfirmBtn = document.getElementById('cleanEnvConfirmBtn');\n        const cleanEnvCancelBtn = document.getElementById('cleanEnvCancelBtn');\n        \n        // 换号确认弹窗元素\n        const switchConfirmModal = document.getElementById('switchConfirmModal');\n        const switchConfirmEmail = document.getElementById('switchConfirmEmail');\n        const switchConfirmCost = document.getElementById('switchConfirmCost');\n        const switchConfirmBtn = document.getElementById('switchConfirmBtn');\n        const switchCancelBtn = document.getElementById('switchCancelBtn');\n        \n        // 显示管理员权限弹窗\n        function showAdminModal() {\n            adminModal.classList.add('show');\n        }\n        \n        // 显示重置机器码权限提示弹窗\n        function showAdminPermissionModal() {\n            resetPermissionModal.classList.add('show');\n        }\n        \n        // 重置机器码权限弹窗 - 关闭按钮\n        resetPermissionClose.addEventListener('click', () => {\n            resetPermissionModal.classList.remove('show');\n        });\n        \n        // 点击遮罩关闭权限提示弹窗\n        resetPermissionModal.addEventListener('click', (e) => {\n            if (e.target === resetPermissionModal) {\n                resetPermissionModal.classList.remove('show');\n            }\n        });\n        \n        // 显示重启提示弹窗\n        let restartModalAction = 'reload'; // 'reload' 或 'close'\n        \n        function showRestartModal(title, action = 'reload') {\n            restartModalTitle.textContent = title || '操作成功';\n            restartModalAction = action;\n            // 根据操作类型更新按钮文字\n            restartNowBtn.textContent = action === 'close' ? '立即关闭 Cursor' : '立即重启';\n            restartModal.classList.add('show');\n        }\n        \n        // 显示过期弹窗\n        function showExpiredModal() {\n            expiredModal.classList.add('show');\n        }\n        \n        // 关闭管理员弹窗\n        adminModalClose.addEventListener('click', () => {\n            adminModal.classList.remove('show');\n        });\n        \n        // 点击遮罩关闭管理员弹窗\n        adminModal.addEventListener('click', (e) => {\n            if (e.target === adminModal) {\n                adminModal.classList.remove('show');\n            }\n        });\n        \n        // 立即重启/关闭按钮\n        restartNowBtn.addEventListener('click', () => {\n            restartModal.classList.remove('show');\n            if (restartModalAction === 'close') {\n                // 完全关闭 Cursor\n                vscode.postMessage({ type: 'closeCursor' });\n            } else {\n                // 重新加载窗口\n            vscode.postMessage({ type: 'reloadWindow' });\n            }\n        });\n        \n        // 稍后手动按钮\n        restartLaterBtn.addEventListener('click', () => {\n            restartModal.classList.remove('show');\n        });\n        \n        // 点击遮罩关闭重启弹窗\n        restartModal.addEventListener('click', (e) => {\n            if (e.target === restartModal) {\n                restartModal.classList.remove('show');\n            }\n        });\n        \n        // 关闭过期弹窗\n        expiredModalClose.addEventListener('click', () => {\n            expiredModal.classList.remove('show');\n        });\n        \n        // 点击遮罩关闭过期弹窗\n        expiredModal.addEventListener('click', (e) => {\n            if (e.target === expiredModal) {\n                expiredModal.classList.remove('show');\n            }\n        });\n        \n        // 当前账号邮箱（用于查询用量）\n        let currentAccountEmail = '';\n        let usageRefreshInterval = null;\n        // 存储完整激活码（用于复制）\n        let fullActivationKey = '';\n        // 当前剩余换号次数\n        let currentSwitchRemaining = 0;\n        // 当前到期时间\n        let currentExpireDate = '';\n        \n        // 检查卡密是否已过期\n        function isKeyExpired() {\n            if (!currentExpireDate) return true;\n            try {\n                const expireTime = new Date(currentExpireDate).getTime();\n                return Date.now() > expireTime;\n            } catch {\n                return true;\n            }\n        }\n        \n        // 格式化到期时间为北京时间\n        function formatExpireDate(dateStr) {\n            if (!dateStr) return '';\n            try {\n                // 后端返回的时间没有时区标识，假设是 UTC 时间\n                // 将空格替换为T，并添加Z表示UTC\n                let utcStr = dateStr;\n                if (!dateStr.includes('T') && !dateStr.includes('Z') && !dateStr.includes('+')) {\n                    utcStr = dateStr.replace(' ', 'T') + 'Z';\n                }\n                const date = new Date(utcStr);\n                \n                // 使用中国时区格式化（UTC+8）\n                return date.toLocaleString('zh-CN', {\n                    timeZone: 'Asia/Shanghai',\n                    year: 'numeric',\n                    month: '2-digit',\n                    day: '2-digit',\n                    hour: '2-digit',\n                    minute: '2-digit',\n                    second: '2-digit',\n                    hour12: false\n                });\n            } catch {\n                return dateStr;  // 格式化失败返回原始值\n            }\n        }\n        \n        // 隐藏激活码后几位\n        function maskKey(key) {\n            if (!key || key.length <= 8) return key;\n            return key.substring(0, key.length - 4) + '****';\n        }\n        \n        // 点击激活码复制\n        keyDisplay.addEventListener('click', () => {\n            if (!fullActivationKey) return;\n            navigator.clipboard.writeText(fullActivationKey).then(() => {\n                keyDisplay.classList.add('copied');\n                const originalText = keyDisplay.textContent;\n                keyDisplay.textContent = '已复制!';\n                setTimeout(() => {\n                    keyDisplay.textContent = maskKey(fullActivationKey);\n                    keyDisplay.classList.remove('copied');\n                }, 1000);\n            }).catch(() => {\n                // 降级方案\n                const textarea = document.createElement('textarea');\n                textarea.value = fullActivationKey;\n                document.body.appendChild(textarea);\n                textarea.select();\n                document.execCommand('copy');\n                document.body.removeChild(textarea);\n                keyDisplay.classList.add('copied');\n                keyDisplay.textContent = '已复制!';\n                setTimeout(() => {\n                    keyDisplay.textContent = maskKey(fullActivationKey);\n                    keyDisplay.classList.remove('copied');\n                }, 1000);\n            });\n        });\n        \n        // Loading 状态控制\n        function setButtonLoading(btn, loading) {\n            if (loading) {\n                btn.classList.add('loading');\n                btn.disabled = true;\n            } else {\n                btn.classList.remove('loading');\n                // 注意：某些按钮可能需要保持禁用状态，由调用方控制\n            }\n        }\n        \n        function setRefreshLoading(btn, loading) {\n            if (loading) {\n                btn.classList.add('loading');\n            } else {\n                btn.classList.remove('loading');\n            }\n        }\n        \n        // 获取初始状态\n        vscode.postMessage({ type: 'getState' });\n        vscode.postMessage({ type: 'getSeamlessStatus' });\n        vscode.postMessage({ type: 'getUserSwitchStatus' });\n        vscode.postMessage({ type: 'getProxyStatus' });\n        vscode.postMessage({ type: 'getAnnouncement' });\n        vscode.postMessage({ type: 'checkVersion' });\n        vscode.postMessage({ type: 'getCursorRunningPath' });\n        \n        // 激活按钮\n        activateBtn.addEventListener('click', () => {\n            const key = keyInput.value.trim();\n            if (!key) {\n                return;\n            }\n            setButtonLoading(activateBtn, true);\n            vscode.postMessage({ type: 'activate', key });\n        });\n        \n        // 换号按钮\n        switchBtn.addEventListener('click', () => {\n            vscode.postMessage({ type: 'switch' });\n        });\n        \n        // 重置机器码按钮\n        resetBtn.addEventListener('click', () => {\n            vscode.postMessage({ type: 'resetMachineId' });\n        });\n        \n        // 禁用自动更新按钮\n        disableUpdateBtn.addEventListener('click', () => {\n            vscode.postMessage({ type: 'disableUpdate' });\n        });\n        \n        // 清理Cursor环境按钮 - 显示确认弹窗\n        cleanEnvBtn.addEventListener('click', () => {\n            cleanEnvModal.classList.add('show');\n        });\n        \n        // 确认清理\n        cleanEnvConfirmBtn.addEventListener('click', () => {\n            cleanEnvModal.classList.remove('show');\n            vscode.postMessage({ type: 'cleanEnv' });\n        });\n        \n        // 取消清理\n        cleanEnvCancelBtn.addEventListener('click', () => {\n            cleanEnvModal.classList.remove('show');\n        });\n        \n        // 点击遮罩关闭清理弹窗\n        cleanEnvModal.addEventListener('click', (e) => {\n            if (e.target === cleanEnvModal) {\n                cleanEnvModal.classList.remove('show');\n            }\n        });\n        \n        // 停用按钮\n        disableBtn.addEventListener('click', () => {\n            vscode.postMessage({ type: 'disable' });\n        });\n        \n        // 关闭更新提醒条\n        updateBannerClose.addEventListener('click', () => {\n            updateBanner.classList.remove('show');\n        });\n        \n        // 免魔法开关\n        seamlessProxySwitch.addEventListener('change', (e) => {\n            const wantEnabled = e.target.checked;\n            \n            // 如果要开启免魔法，检查卡密是否过期（只要没过期就可以用，不管换号次数）\n            if (wantEnabled && isKeyExpired()) {\n                e.target.checked = false;\n                showToast('授权码已过期，无法开启免魔法', '⚠️', 3000);\n                return;\n            }\n            \n            vscode.postMessage({ \n                type: 'toggleProxy', \n                enabled: wantEnabled,\n                url: ''\n            });\n        });\n        \n        // 无感换号 - 启用按钮\n        enableSeamlessBtn.addEventListener('click', () => {\n            setButtonLoading(enableSeamlessBtn, true);\n            vscode.postMessage({ type: 'injectSeamless' });\n        });\n        \n        // 无感换号 - 禁用按钮\n        disableSeamlessBtn.addEventListener('click', () => {\n            setButtonLoading(disableSeamlessBtn, true);\n            vscode.postMessage({ type: 'restoreSeamless' });\n        });\n        \n        // 无感换号 - 手动换号按钮（先检查用量）\n        manualSwitchBtn.addEventListener('click', () => {\n            setButtonLoading(manualSwitchBtn, true);\n            // 传递当前显示的账号邮箱\n            vscode.postMessage({ type: 'checkUsageBeforeSwitch', email: currentAccountEmail });\n        });\n        \n        // 换号确认弹窗 - 确认按钮\n        switchConfirmBtn.addEventListener('click', () => {\n            switchConfirmModal.classList.remove('show');\n            setButtonLoading(manualSwitchBtn, true);\n            vscode.postMessage({ type: 'confirmSwitch' });\n        });\n        \n        // 换号确认弹窗 - 取消按钮\n        switchCancelBtn.addEventListener('click', () => {\n            switchConfirmModal.classList.remove('show');\n            setButtonLoading(manualSwitchBtn, false);\n            manualSwitchBtn.disabled = false;\n        });\n        \n        // 换号确认弹窗 - 点击遮罩关闭\n        switchConfirmModal.addEventListener('click', (e) => {\n            if (e.target === switchConfirmModal) {\n                switchConfirmModal.classList.remove('show');\n                setButtonLoading(manualSwitchBtn, false);\n                manualSwitchBtn.disabled = false;\n            }\n        });\n        \n        // 无感换号区域 - 重置机器码按钮\n        seamlessResetMachineBtn.addEventListener('click', () => {\n            vscode.postMessage({ type: 'resetMachineId' });\n        });\n        \n        // 刷新用量按钮\n        refreshUsageBtn.addEventListener('click', () => {\n            if (currentAccountEmail) {\n                setRefreshLoading(refreshUsageBtn, true);\n                vscode.postMessage({ type: 'getAccountUsage', email: currentAccountEmail });\n            }\n        });\n        \n        // 刷新用量函数\n        function refreshUsage() {\n            if (currentAccountEmail) {\n                vscode.postMessage({ type: 'getAccountUsage', email: currentAccountEmail });\n            }\n        }\n        \n        // 启动用量定时刷新 (每分钟一次)\n        function startUsageRefresh() {\n            if (usageRefreshInterval) {\n                clearInterval(usageRefreshInterval);\n            }\n            // 立即刷新一次\n            refreshUsage();\n            // 每60秒刷新一次\n            usageRefreshInterval = setInterval(refreshUsage, 60000);\n        }\n        \n        // 停止用量刷新\n        function stopUsageRefresh() {\n            if (usageRefreshInterval) {\n                clearInterval(usageRefreshInterval);\n                usageRefreshInterval = null;\n            }\n        }\n        \n        // 更新用量显示\n        function updateUsageDisplay(data) {\n            if (!data) return;\n            \n            const subscription = data.subscription || {};\n            const usage = data.usage || {};\n            \n            // 会员类型\n            const memberTypeMap = {\n                'free_trial': '免费试用',\n                'pro': 'Pro会员',\n                'free': '免费版',\n                'business': '商业版'\n            };\n            usageMemberType.textContent = memberTypeMap[subscription.membershipType] || subscription.membershipType || '-';\n            \n            // 试用剩余天数\n            if (subscription.daysRemainingOnTrial !== undefined && subscription.daysRemainingOnTrial !== null) {\n                usageTrialDays.textContent = subscription.daysRemainingOnTrial + ' 天';\n                usageTrialDays.style.color = subscription.daysRemainingOnTrial <= 3 ? '#f87171' : '#4ade80';\n            } else {\n                usageTrialDays.textContent = '-';\n                usageTrialDays.style.color = '#fff';\n            }\n            \n            // 请求次数\n            usageRequestCount.textContent = (usage.totalUsageCount || 0) + ' 次';\n            \n            // 已用额度\n            const costUSD = usage.totalCostUSD || 0;\n            usageCostUSD.textContent = '$' + costUSD.toFixed(2);\n            usageCostUSD.style.color = costUSD > 5 ? '#f87171' : (costUSD > 2 ? '#fbbf24' : '#4ade80');\n            \n            // 更新时间\n            usageUpdateTime.textContent = '更新于 ' + new Date().toLocaleTimeString();\n        }\n        \n        // 解析公告内容中的链接 {文字URL}\n        function parseAnnouncementContent(content) {\n            if (!content) return '';\n            \n            // 转义 HTML 特殊字符\n            let escaped = content\n                .replace(/&/g, '&amp;')\n                .replace(/</g, '&lt;')\n                .replace(/>/g, '&gt;')\n                .replace(/\"/g, '&quot;');\n            \n            // 匹配 {文字https://...} 或 {文字http://...} 格式\n            const linkRegex = /\\{([^}]+?)(https?:\\/\\/[^}]+)\\}/g;\n            \n            escaped = escaped.replace(linkRegex, function(match, text, url) {\n                return '<a href=\"' + url + '\" class=\"announcement-link\" target=\"_blank\">' + text + '</a>';\n            });\n            \n            // 将换行符转换为 <br>\n            escaped = escaped.replace(/\\n/g, '<br>');\n            \n            return escaped;\n        }\n        \n        // 更新公告显示\n        function updateAnnouncementDisplay(data) {\n            if (!data || !data.is_active) {\n                announcementSection.style.display = 'none';\n                return;\n            }\n            \n            // 显示公告区域\n            announcementSection.style.display = 'block';\n            \n            // 设置图标和类型徽章\n            const typeConfig = {\n                'info': { icon: '📢', text: '通知', class: 'info' },\n                'warning': { icon: '⚠️', text: '警告', class: 'warning' },\n                'error': { icon: '🚨', text: '重要', class: 'error' },\n                'success': { icon: '✅', text: '好消息', class: 'success' }\n            };\n            \n            const config = typeConfig[data.type] || typeConfig['info'];\n            announcementIcon.textContent = config.icon;\n            announcementBadge.textContent = config.text;\n            announcementBadge.className = 'announcement-badge ' + config.class;\n            \n            // 设置标题和内容（解析链接）\n            announcementTitle.textContent = data.title || '';\n            announcementContent.innerHTML = parseAnnouncementContent(data.content || '');\n            \n            // 设置时间\n            if (data.created_at) {\n                const date = new Date(data.created_at);\n                announcementTime.textContent = date.toLocaleDateString('zh-CN', {\n                    year: 'numeric',\n                    month: '2-digit',\n                    day: '2-digit',\n                    hour: '2-digit',\n                    minute: '2-digit'\n                });\n            } else {\n                announcementTime.textContent = '';\n            }\n        }\n        \n        // 处理来自扩展的消息\n        window.addEventListener('message', event => {\n            const message = event.data;\n            \n            switch (message.type) {\n                case 'state':\n                    updateUI(message);\n                    break;\n                case 'activated':\n                    setButtonLoading(activateBtn, false);\n                    activateBtn.disabled = false;\n                    if (message.success) {\n                        // 调试日志\n                        console.log('[CursorPro] 前端收到激活成功消息:', message);\n                        \n                        authStatus.textContent = '已授权';\n                        authStatus.className = 'status-badge active';\n                        accountStatus.textContent = '已激活';\n                        accountStatus.className = 'status-badge active';\n                        switchBtn.disabled = false;\n                        // 更新激活码显示（使用后端返回的 key）\n                        fullActivationKey = message.key || keyInput.value;\n                        keyDisplay.textContent = maskKey(fullActivationKey);\n                        // 更新到期时间\n                        console.log('[CursorPro] 更新到期时间:', message.expireDate);\n                        currentExpireDate = message.expireDate || '';\n                        expireDate.textContent = formatExpireDate(currentExpireDate) || '未知';\n                        // 更新换号次数\n                        if (message.switchRemaining !== undefined) {\n                            currentSwitchRemaining = message.switchRemaining;\n                            switchCount.textContent = message.switchRemaining + '/' + (message.switchLimit || 100);\n                        }\n                        // 清空输入框\n                        keyInput.value = '';\n                        showToast('授权码激活成功！', '✅', 10000);\n                    } else {\n                        showToast(message.error || '激活失败', '❌', 10000);\n                    }\n                    break;\n                case 'switched':\n                    if (message.success) {\n                        switchCount.textContent = message.switchRemaining + '/' + (message.switchLimit || 100);\n                        showToast('换号成功: ' + (message.email || ''), '✅', 10000);\n                    } else {\n                        showToast(message.error || '换号失败', '❌', 10000);\n                    }\n                    break;\n                case 'reset':\n                    authStatus.textContent = '未授权';\n                    authStatus.className = 'status-badge inactive';\n                    accountStatus.textContent = '未激活';\n                    accountStatus.className = 'status-badge inactive';\n                    switchBtn.disabled = true;\n                    keyInput.value = '';\n                    fullActivationKey = '';\n                    keyDisplay.textContent = '尚未激活';\n                    expireDate.textContent = '尚未激活';\n                    break;\n                \n                // 激活码状态检查结果\n                case 'keyStatusChecked':\n                    if (message.valid) {\n                        // 激活码有效，更新显示\n                        currentExpireDate = message.expireDate || '';\n                        currentSwitchRemaining = message.switchRemaining || 0;\n                        expireDate.textContent = formatExpireDate(currentExpireDate);\n                        switchCount.textContent = message.switchRemaining + '/' + (message.switchLimit || 100);\n                    } else if (message.expired) {\n                        // 激活码已过期，显示提示并重置状态\n                        currentExpireDate = '';\n                        currentSwitchRemaining = 0;\n                        authStatus.textContent = '已过期';\n                        authStatus.className = 'status-badge inactive';\n                        authStatus.style.background = '#6e3232';\n                        authStatus.style.color = '#ff6b6b';\n                        expireDate.textContent = '已过期';\n                        expireDate.style.color = '#f87171';\n                        switchBtn.disabled = true;\n                        enableSeamlessBtn.disabled = true;\n                        // 如果免魔法已开启，自动关闭\n                        if (seamlessProxySwitch.checked) {\n                            seamlessProxySwitch.checked = false;\n                            vscode.postMessage({ type: 'toggleProxy', enabled: false, url: '' });\n                        }\n                        // 显示过期弹窗\n                        showExpiredModal();\n                    }\n                    break;\n                \n                // 用户换号状态\n                case 'userSwitchStatus':\n                    const remaining = message.switchRemaining || 0;\n                    const canSwitch = remaining > 0;\n                    \n                    // 更新全局变量\n                    currentSwitchRemaining = remaining;\n                    \n                    seamlessSwitchRemaining.textContent = remaining.toString();\n                    seamlessSwitchRemaining.style.color = canSwitch ? '#4ade80' : '#f87171';\n                    \n                    if (message.lockedAccount) {\n                        seamlessCurrentAccount.textContent = message.lockedAccount.email;\n                        \n                        // 设置当前账号邮箱并启动用量刷新\n                        if (message.lockedAccount.email && message.lockedAccount.email !== currentAccountEmail) {\n                            currentAccountEmail = message.lockedAccount.email;\n                            usageSection.style.display = 'block';\n                            startUsageRefresh();\n                        }\n                    } else {\n                        seamlessCurrentAccount.textContent = '未分配';\n                        \n                        // 没有锁定账号时隐藏用量区域\n                        currentAccountEmail = '';\n                        usageSection.style.display = 'none';\n                        stopUsageRefresh();\n                    }\n                    \n                    // 根据剩余次数控制手动换号按钮状态\n                    if (!canSwitch) {\n                        manualSwitchBtn.disabled = true;\n                    }\n                    // 启用无感换号按钮不受积分限制，只有过期才禁用\n                    enableSeamlessBtn.disabled = isKeyExpired();\n                    \n                    // 如果无感换号已启用，显示手动换号按钮和重置机器码按钮\n                    if (message.seamlessEnabled && canSwitch) {\n                        manualSwitchBtn.style.display = 'block';\n                        manualSwitchBtn.disabled = false;\n                        setButtonLoading(manualSwitchBtn, false);\n                        seamlessResetMachineBtn.style.display = 'block';\n                    }\n                    break;\n                \n                // 账号用量\n                case 'accountUsage':\n                    setRefreshLoading(refreshUsageBtn, false);\n                    if (message.success && message.data) {\n                        updateUsageDisplay(message.data);\n                    } else {\n                        usageUpdateTime.textContent = '获取失败: ' + (message.error || '未知错误');\n                        usageUpdateTime.style.color = '#f87171';\n                    }\n                    break;\n                \n                // 无感换号状态\n                case 'seamlessStatus':\n                    if (message.is_injected) {\n                        seamlessStatus.textContent = '已启用';\n                        seamlessStatus.className = 'status-badge active';\n                        enableSeamlessBtn.style.display = 'none';\n                        disableSeamlessBtn.style.display = 'block';\n                        disableSeamlessBtn.disabled = false;\n                        setButtonLoading(disableSeamlessBtn, false);\n                        manualSwitchBtn.style.display = 'block';\n                        manualSwitchBtn.disabled = false;\n                        setButtonLoading(manualSwitchBtn, false);\n                        seamlessResetMachineBtn.style.display = 'block';\n                    } else {\n                        seamlessStatus.textContent = '未启用';\n                        seamlessStatus.className = 'status-badge inactive';\n                        enableSeamlessBtn.style.display = 'block';\n                        setButtonLoading(enableSeamlessBtn, false);\n                        // 启用按钮不受积分限制，只有过期才禁用\n                        enableSeamlessBtn.disabled = isKeyExpired();\n                        disableSeamlessBtn.style.display = 'none';\n                        manualSwitchBtn.style.display = 'none';\n                        seamlessResetMachineBtn.style.display = 'none';\n                    }\n                    break;\n                \n                case 'seamlessInjected':\n                    setButtonLoading(enableSeamlessBtn, false);\n                    enableSeamlessBtn.disabled = false;\n                    if (message.success) {\n                        seamlessStatus.textContent = '已启用';\n                        seamlessStatus.className = 'status-badge active';\n                        enableSeamlessBtn.style.display = 'none';\n                        disableSeamlessBtn.style.display = 'block';\n                        manualSwitchBtn.style.display = 'block';\n                        seamlessResetMachineBtn.style.display = 'block';\n                        // 刷新用户状态\n                        vscode.postMessage({ type: 'getUserSwitchStatus' });\n                        // 显示重启提示弹窗\n                        if (message.needRestart) {\n                            showRestartModal(message.message || '无感换号已启用');\n                        }\n                    } else {\n                        // 如果是权限错误，显示自定义弹窗\n                        if (message.needAdmin) {\n                            // Mac/Linux 权限问题，显示详细提示\n                            var errorMsg = message.error || '没有写入权限';\n                            if (message.path) {\n                                errorMsg += '\\n路径: ' + message.path;\n                            }\n                            showToast(errorMsg, '🔐', 15000);\n                        } else {\n                            // 显示详细错误\n                            var detailMsg = message.error || '启用失败';\n                            if (message.details) {\n                                detailMsg += '\\n' + message.details;\n                            }\n                            showToast(detailMsg, '❌', 15000);\n                        }\n                    }\n                    break;\n                \n                case 'seamlessRestored':\n                    setButtonLoading(disableSeamlessBtn, false);\n                    disableSeamlessBtn.disabled = false;\n                    if (message.success) {\n                        seamlessStatus.textContent = '未启用';\n                        seamlessStatus.className = 'status-badge inactive';\n                        enableSeamlessBtn.style.display = 'block';\n                        disableSeamlessBtn.style.display = 'none';\n                        manualSwitchBtn.style.display = 'none';\n                        seamlessResetMachineBtn.style.display = 'none';\n                        // 显示重启提示弹窗\n                        if (message.needRestart) {\n                            showRestartModal(message.message || '无感换号已禁用');\n                        }\n                    } else {\n                        // 如果是权限错误，显示自定义弹窗\n                        if (message.needAdmin) {\n                            showAdminModal();\n                        } else {\n                            showToast(message.error || '禁用失败', '❌', 10000);\n                        }\n                    }\n                    break;\n                \n                // 用量检查结果\n                case 'usageCheckResult':\n                    if (message.success) {\n                        if (message.needConfirm) {\n                            // 需要确认，显示弹窗（按钮保持可用状态，等用户选择）\n                            setButtonLoading(manualSwitchBtn, false);\n                            manualSwitchBtn.disabled = false;\n                            switchConfirmEmail.textContent = message.email || '';\n                            switchConfirmCost.textContent = '$' + (message.costUSD || '0.00');\n                            switchConfirmModal.classList.add('show');\n                        } else {\n                            // 不需要确认，直接换号\n                            vscode.postMessage({ type: 'confirmSwitch' });\n                        }\n                    } else {\n                        setButtonLoading(manualSwitchBtn, false);\n                        manualSwitchBtn.disabled = false;\n                        showToast(message.error || '检查失败', '❌', 5000);\n                    }\n                    break;\n                \n                case 'manualSeamlessSwitched':\n                    setButtonLoading(manualSwitchBtn, false);\n                    if (message.success) {\n                        seamlessSwitchRemaining.textContent = (message.switchRemaining || 0).toString();\n                        seamlessCurrentAccount.textContent = message.email || '未知';\n                        // 显示 Toast 通知，10秒后消失\n                        showToast('已切换到: ' + (message.email || '新账号') + '，约10秒内自动生效', '✅', 10000);\n                        // 刷新状态\n                        vscode.postMessage({ type: 'getUserSwitchStatus' });\n                        // 禁用按钮10秒，显示倒计时\n                        disableSwitchBtnWithCountdown(10);\n                    } else {\n                        manualSwitchBtn.disabled = false;\n                        showToast(message.error || '换号失败', '❌', 5000);\n                    }\n                    break;\n                \n                case 'proxyStatus':\n                    // 设置免魔法开关状态\n                    seamlessProxySwitch.checked = message.enabled;\n                    break;\n                \n                // 公告\n                case 'announcement':\n                    if (message.success && message.data) {\n                        updateAnnouncementDisplay(message.data);\n                    } else {\n                        announcementSection.style.display = 'none';\n                    }\n                    break;\n                \n                // 版本检查\n                case 'versionCheck':\n                    currentVersionEl.textContent = message.currentVersion || '-';\n                    if (message.success && message.hasUpdate) {\n                        // 有更新\n                        latestVersionEl.textContent = message.latestVersion;\n                        latestVersionRow.style.display = 'flex';\n                        versionStatus.style.display = 'inline-block';\n                        versionStatus.style.background = '#ff9800';\n                        updateHint.style.display = 'block';\n                        \n                        // 显示顶部更新提醒条\n                        updateBannerVersion.textContent = 'v' + message.latestVersion;\n                        updateBanner.classList.add('show');\n                    } else if (message.success) {\n                        // 已是最新版\n                        versionStatus.textContent = '最新';\n                        versionStatus.style.display = 'inline-block';\n                        versionStatus.style.background = '#4caf50';\n                        latestVersionRow.style.display = 'none';\n                        updateHint.style.display = 'none';\n                        updateBanner.classList.remove('show');\n                    }\n                    break;\n                \n                // Cursor 运行路径\n                case 'cursorRunningPath':\n                    if (message.path) {\n                        const pathText = message.path + (message.packageExists ? ' ✓' : ' ✗');\n                        cursorPath.textContent = pathText;\n                        cursorPath.style.color = message.packageExists ? '#4ade80' : '#f87171';\n                        // 同时更新版本号\n                        if (message.cursorVersion) {\n                            cursorVersion.textContent = message.cursorVersion;\n                        }\n                    } else {\n                        cursorPath.textContent = '未找到';\n                        cursorPath.style.color = '#f87171';\n                    }\n                    break;\n                \n                // 管理员权限不足提示\n                case 'adminPermissionRequired':\n                    showAdminPermissionModal();\n                    break;\n                \n                // 机器码重置\n                case 'machineIdReset':\n                    if (message.success && message.needRestart) {\n                        // 机器码重置需要完全关闭 Cursor，不是 reload\n                        showRestartModal(message.message || '机器码重置成功', 'close');\n                    }\n                    break;\n                \n                // 通用 Toast 消息\n                case 'showToast':\n                    showToast(message.message || '', message.icon || '📢', 10000);\n                    break;\n                \n                // 网络状态\n                case 'networkStatus':\n                    updateOfflineStatus(!message.online);\n                    break;\n            }\n        });\n        \n        // 离线状态显示/隐藏\n        let wasOffline = false; // 跟踪之前是否离线\n        function updateOfflineStatus(isOffline) {\n            if (isOffline) {\n                offlineBanner.classList.add('show');\n                wasOffline = true;\n            } else {\n                offlineBanner.classList.remove('show');\n                // 只有从离线恢复到在线时才刷新状态\n                if (wasOffline) {\n                    wasOffline = false;\n                    vscode.postMessage({ type: 'getState' });\n                    vscode.postMessage({ type: 'getUserSwitchStatus' });\n                }\n            }\n        }\n        \n        // 重试连接按钮\n        retryConnectBtn.addEventListener('click', async () => {\n            retryConnectBtn.classList.add('loading');\n            retryConnectBtn.textContent = '连接中...';\n            \n            // 发起真正的网络请求来测试网络\n            vscode.postMessage({ type: 'retryConnect' });\n            \n            // 5秒后恢复按钮状态（给网络请求足够时间）\n            setTimeout(() => {\n                retryConnectBtn.classList.remove('loading');\n                retryConnectBtn.textContent = '重试';\n            }, 5000);\n        });\n        \n        function updateUI(state) {\n            if (state.isActivated) {\n                authStatus.textContent = '已授权';\n                authStatus.className = 'status-badge active';\n                accountStatus.textContent = '已激活';\n                accountStatus.className = 'status-badge active';\n                switchBtn.disabled = false;\n                fullActivationKey = state.key;\n                keyDisplay.textContent = maskKey(fullActivationKey);\n                // 更新到期时间\n                currentExpireDate = state.expireDate || '';\n                expireDate.textContent = formatExpireDate(currentExpireDate);\n                // 更新换号次数\n                if (state.switchRemaining !== undefined) {\n                    currentSwitchRemaining = state.switchRemaining;\n                    switchCount.textContent = state.switchRemaining + '/' + (state.switchLimit || 100);\n                }\n                // 启用无感换号按钮（只有过期才禁用）\n                enableSeamlessBtn.disabled = isKeyExpired();\n            }\n            cursorVersion.textContent = state.cursorVersion || '0.0.0';\n            \n            // 根据网络状态显示/隐藏离线提示\n            if (state.isOnline === false) {\n                offlineBanner.classList.add('show');\n                wasOffline = true;\n            } else if (state.isOnline === true) {\n                // 网络恢复，隐藏离线提示\n                offlineBanner.classList.remove('show');\n                wasOffline = false;\n            }\n        }\n    </script>\n</body>\n</html>";
      }
    }
  }
  async [_0x56bd(1137, "*&r5")](_0x1b796a) {
    const _0x312bb1 = {
      kwSDs: _0x56bd(2398, "H9os"),
      cuNHx: _0x56bd(1529, "]I&e"),
      AlVbI: "更新配置失败",
      cBprM: _0x56bd(1523, "de]G"),
      pLAQo: _0x56bd(2141, "xK)8"),
      XCtgT: function (_0x51bb3f, _0x5ae513) {
        return _0x51bb3f(_0x5ae513);
      },
      LcuLD: _0x56bd(2224, "KW&U"),
      JvSqa: _0x56bd(1634, "K%5^"),
      rptjh: _0x56bd(1033, "DQte")
    };
    try {
      if (!_0x1b796a) {
        this._postMessage({
          type: _0x312bb1.cBprM,
          success: false,
          error: _0x312bb1[_0x56bd(2110, "T$OD")]
        });
        return;
      }
      0;
      const _0x58b290 = client_1[_0x56bd(1877, "6eWF")]() + _0x56bd(382, "KW&U") + _0x312bb1[_0x56bd(1436, "4)@$")](encodeURIComponent, _0x1b796a) + "&refresh=true";
      const _0x507bbc = await _0x312bb1[_0x56bd(1268, "xK)8")](fetch, _0x58b290);
      const _0x46ba2b = await _0x507bbc.json();
      if (_0x46ba2b[_0x56bd(2420, "0xfR")] && _0x46ba2b[_0x56bd(1603, "8@jo")]) {
        this[_0x56bd(763, "nY*(")]({
          type: _0x312bb1[_0x56bd(376, "LC6r")],
          success: true,
          data: _0x46ba2b[_0x56bd(2363, "m#S*")]
        });
        const _0x4cf6e5 = _0x46ba2b[_0x56bd(2192, "X4(r")][_0x56bd(2436, "8Ee3")] || {};
        const _0x3d3ce3 = _0x4cf6e5[_0x56bd(699, "8@jo")] || 0;
        const _0x1f779f = _0x312bb1[_0x56bd(1863, "Aig!")](parseFloat, _0x4cf6e5[_0x56bd(1841, "k$(5")] || 0);
        0;
        extension_1[_0x56bd(2203, "bjRi")](_0x3d3ce3, _0x1f779f);
      } else {
        this[_0x56bd(284, "Ka)i")]({
          type: _0x312bb1.cBprM,
          success: false,
          error: _0x46ba2b[_0x56bd(1160, "KTbh")] || _0x312bb1[_0x56bd(930, "4)@$")]
        });
      }
    } catch (_0x3c8684) {
      if (_0x312bb1[_0x56bd(2405, "n8BU")] !== "NYkng") {
        _0x496ef8[_0x56bd(1160, "KTbh")](_0x312bb1[_0x56bd(1555, "akm5")], _0x4d4142);
        this[_0x56bd(1740, "H9os")]({
          type: _0x312bb1[_0x56bd(650, "DbBq")],
          success: false,
          error: _0x312bb1[_0x56bd(881, "Ka)i")]
        });
      } else {
        this[_0x56bd(1287, "hSE]")]({
          type: _0x312bb1[_0x56bd(376, "LC6r")],
          success: false,
          error: _0x3c8684.message || _0x312bb1[_0x56bd(2456, "^sHL")]
        });
      }
    }
  }
  async [_0x56bd(1685, "6hxd")]() {
    const _0x507cc2 = {
      eXcSu: _0x56bd(814, "7%WS"),
      wCuhU: _0x56bd(1786, "ck7z"),
      tQyYP: "请先激活授权码",
      fEjcy: function (_0x14a329, _0x3ca24d) {
        return _0x14a329 > _0x3ca24d;
      },
      GLUmw: _0x56bd(1945, "de]G"),
      Bjkrw: "授权码已过期，无法开启免魔法",
      trGXG: "showToast",
      aCZjy: function (_0x85327, _0x557946) {
        return _0x85327(_0x557946);
      },
      aHNrz: "announcement",
      PynOc: function (_0x4e3da2, _0x27c602) {
        return _0x4e3da2 === _0x27c602;
      },
      LjnPR: "ysOwe",
      RdeWm: _0x56bd(1815, "nY*("),
      XcVTX: _0x56bd(1069, "6eWF")
    };
    try {
      0;
      const _0x2127d9 = client_1[_0x56bd(1152, "63N&")]() + _0x56bd(2086, "m#S*");
      const _0x59851a = await _0x507cc2[_0x56bd(1607, "0xfR")](fetch, _0x2127d9);
      const _0x1529e0 = await _0x59851a.json();
      if (_0x1529e0[_0x56bd(1934, "@HDB")] && _0x1529e0[_0x56bd(325, "EJjX")]) {
        this._postMessage({
          type: _0x507cc2[_0x56bd(877, "6hxd")],
          success: true,
          data: _0x1529e0[_0x56bd(2477, "qOgW")]
        });
      } else if (_0x507cc2[_0x56bd(758, "6hxd")] === "ysOwe") {
        this._postMessage({
          type: _0x56bd(2159, "63N&"),
          success: false,
          error: _0x1529e0[_0x56bd(535, "hSE]")] || _0x507cc2[_0x56bd(1427, "nj1b")]
        });
      } else {
        const _0x2213b8 = this[_0x56bd(937, "0xfR")].globalState.get(_0x507cc2[_0x56bd(1409, "^S!O")]);
        const _0x3fde55 = this[_0x56bd(549, "6hxd")][_0x56bd(2153, "Aig!")][_0x56bd(1032, "6eWF")](_0x507cc2[_0x56bd(965, "B)Tn")]);
        if (!_0x2213b8) {
          this[_0x56bd(1150, "DbBq")]({
            type: "proxyUpdated",
            success: false,
            error: "请先激活授权码"
          });
          this[_0x56bd(1125, "DQte")]({
            type: _0x56bd(548, "DQte"),
            message: _0x507cc2[_0x56bd(660, "]I&e")],
            icon: "⚠️"
          });
          return;
        }
        if (_0x3fde55) {
          const _0x88cb25 = new _0x3cd6be(_0x3fde55)[_0x56bd(1984, "6eWF")]();
          if (_0x507cc2[_0x56bd(441, "^sHL")](_0x4cae44[_0x56bd(1063, "^sHL")](), _0x88cb25)) {
            this._postMessage({
              type: _0x507cc2.GLUmw,
              success: false,
              error: _0x507cc2[_0x56bd(2138, "s66k")]
            });
            this._postMessage({
              type: _0x507cc2[_0x56bd(1733, "KW&U")],
              message: _0x56bd(1546, "ck7z"),
              icon: "⚠️"
            });
            return;
          }
        }
      }
    } catch (_0x2ebc04) {
      this[_0x56bd(1836, "iDwM")]({
        type: _0x507cc2[_0x56bd(275, "hSE]")],
        success: false,
        error: _0x2ebc04.message || _0x507cc2[_0x56bd(828, "n8BU")]
      });
    }
  }
  async [_0x56bd(1498, "yoC7")]() {
    const _0x250fa3 = {
      HgWOc: "[CursorPro] 使用用户配置的 Cursor 路径:",
      QXFeq: function (_0x28c00c, _0x55597c) {
        return _0x28c00c > _0x55597c;
      },
      lYCxA: _0x56bd(1585, "0xfR"),
      QtoxZ: function (_0x5cd3f7, _0x1bb416) {
        return _0x5cd3f7 === _0x1bb416;
      },
      xqknY: _0x56bd(532, "fu8^"),
      GbNrd: _0x56bd(1700, "nj1b")
    };
    try {
      0;
      const _0xcbd93e = await client_1[_0x56bd(1967, "nY*(")]();
      if (_0xcbd93e.success && _0xcbd93e.version) {
        const _0x59dc2f = _0xcbd93e[_0x56bd(2137, "KW&U")];
        const _0x1a5d58 = CursorProViewProvider[_0x56bd(1425, "qOgW")];
        const _0x4acb32 = _0x250fa3[_0x56bd(754, "k$(5")](this[_0x56bd(2246, "DQte")](_0x59dc2f, _0x1a5d58), 0);
        this[_0x56bd(1126, "$SfD")]({
          type: _0x250fa3[_0x56bd(1675, "s66k")],
          success: true,
          currentVersion: _0x1a5d58,
          latestVersion: _0x59dc2f,
          hasUpdate: _0x4acb32
        });
      } else {
        this[_0x56bd(1150, "DbBq")]({
          type: _0x250fa3[_0x56bd(2268, "qOgW")],
          success: false,
          currentVersion: CursorProViewProvider.CURRENT_VERSION,
          error: _0xcbd93e[_0x56bd(397, "bZsS")] || _0x56bd(853, "8Ee3")
        });
      }
    } catch (_0x5d97b6) {
      if (_0x250fa3[_0x56bd(1131, "B)Tn")](_0x250fa3[_0x56bd(516, "8Ee3")], _0x56bd(1012, "yoC7"))) {
        _0x21c480[_0x56bd(541, "]I&e")](_0x250fa3[_0x56bd(2274, "@HDB")], _0x41f567);
        this[_0x56bd(1007, "6eWF")] = _0x3c3681;
        return _0xb7920c;
      } else {
        this._postMessage({
          type: _0x56bd(938, "$SfD"),
          success: false,
          currentVersion: CursorProViewProvider.CURRENT_VERSION,
          error: _0x5d97b6[_0x56bd(1376, "Ka)i")] || _0x250fa3[_0x56bd(1717, "KW&U")]
        });
      }
    }
  }
  [_0x56bd(820, "XKo0")](_0x2c35a0, _0x3e2c58) {
    const _0x576d14 = {
      PMKNW: function (_0x2cee68, _0x17cabb) {
        return _0x2cee68 < _0x17cabb;
      },
      qyNxu: function (_0xbd034d, _0x5b41) {
        return _0xbd034d > _0x5b41;
      },
      HZvmu: function (_0x1f686e, _0x307d8c) {
        return _0x1f686e < _0x307d8c;
      }
    };
    const _0xbaec2f = _0x2c35a0[_0x56bd(2075, "ck7z")](".")[_0x56bd(2276, "K%5^")](Number);
    const _0x52cf6d = _0x3e2c58[_0x56bd(681, "@HDB")](".")[_0x56bd(2530, "]I&e")](Number);
    const _0x23e911 = Math[_0x56bd(295, "LC6r")](_0xbaec2f[_0x56bd(1249, "nY*(")], _0x52cf6d[_0x56bd(1027, "bjRi")]);
    for (let _0x2d8ca5 = 0; _0x2d8ca5 < _0x23e911; _0x2d8ca5++) {
      const _0x237a97 = _0xbaec2f[_0x2d8ca5] || 0;
      const _0x266b01 = _0x52cf6d[_0x2d8ca5] || 0;
      if (_0x576d14[_0x56bd(2076, "LC6r")](_0x237a97, _0x266b01)) {
        return 1;
      }
      if (_0x237a97 < _0x266b01) {
        return -1;
      }
    }
    return 0;
  }
  async [_0x56bd(2446, "DQte")]() {
    const _0x46ebbb = {
      SsULC: _0x56bd(2444, "f)Dq"),
      AwKfF: "utf-8",
      zAvXx: _0x56bd(756, "63N&"),
      QhWXL: _0x56bd(1661, "KW&U"),
      bZBTW: "cursorpro",
      vlHDb: "cursorPath",
      ONVXL: function (_0x45b9b2, _0x3d0419) {
        return _0x45b9b2 === _0x3d0419;
      },
      JPYoo: _0x56bd(911, "]I&e"),
      nEYhA: "Contents",
      EbBLW: _0x56bd(2489, "63N&"),
      lMfdt: _0x56bd(1176, "H9os"),
      MFjtx: _0x56bd(2277, "iDwM"),
      NjVqB: _0x56bd(1937, "ck7z"),
      Wxyfp: _0x56bd(443, "nj1b"),
      JSWuW: _0x56bd(996, "iDwM"),
      ACRef: _0x56bd(988, "]I&e"),
      ydRHF: _0x56bd(1571, "7%WS"),
      ANYDK: function (_0x3ac49f, _0x3550a9) {
        return _0x3ac49f === _0x3550a9;
      },
      rEwYQ: _0x56bd(1168, "DbBq"),
      YxYZp: _0x56bd(420, "7%8^"),
      Qvzam: function (_0x5c6915, _0xdddb6e) {
        return _0x5c6915 === _0xdddb6e;
      },
      FyfZA: function (_0x35b4f7, _0x394159) {
        return _0x35b4f7 !== _0x394159;
      },
      eCMQp: "DZGqD",
      QKwAH: "Programs",
      eEobw: _0x56bd(323, "KW&U"),
      aouCU: _0x56bd(2046, "LC6r"),
      XXRrw: _0x56bd(1514, "ACPk"),
      biXGl: _0x56bd(1235, "akm5"),
      ErbAO: _0x56bd(1419, "bZsS"),
      vvvXG: _0x56bd(2113, "fu8^"),
      kVBXU: _0x56bd(1808, "m#S*"),
      sxYuF: _0x56bd(345, "$SfD"),
      sYfMC: _0x56bd(730, "fu8^"),
      UFfHe: "[CursorPro] 从路径获取 Cursor 版本:",
      HLsOj: "cursorRunningPath",
      stZTh: "获取失败: "
    };
    try {
      if (_0x56bd(1344, "6eWF") !== _0x46ebbb.zAvXx) {
        return [{
          email: _0x7e9b73,
          access_token: _0x4f7a33,
          refresh_token: _0x32c653 || _0x23d4b2
        }];
      } else {
        const _0x1b946c = process[_0x56bd(963, "^sHL")];
        let _0x306e39 = _0x46ebbb.QhWXL;
        let _0x260237 = "";
        const _0x36a669 = vscode[_0x56bd(1968, "bZsS")][_0x56bd(2198, "8Ee3")](_0x46ebbb[_0x56bd(1790, "^sHL")]);
        const _0x49eda3 = _0x36a669[_0x56bd(406, "@HDB")](_0x46ebbb[_0x56bd(2380, "nY*(")]);
        if (_0x49eda3 && fs.existsSync(_0x49eda3)) {
          _0x306e39 = _0x49eda3;
          if (_0x1b946c === _0x46ebbb.JPYoo) {
            _0x260237 = path[_0x56bd(1796, "m#S*")](_0x49eda3, _0x46ebbb[_0x56bd(2180, "akm5")], _0x46ebbb[_0x56bd(900, "Ka)i")], _0x46ebbb[_0x56bd(1484, "DbBq")], _0x46ebbb[_0x56bd(722, "K%5^")]);
          } else {
            _0x260237 = path[_0x56bd(308, "xK)8")](_0x49eda3, _0x56bd(467, "4)@$"), _0x46ebbb.lMfdt, _0x46ebbb[_0x56bd(293, "ck7z")]);
          }
          console.log(_0x46ebbb[_0x56bd(1481, "6eWF")], _0x49eda3);
        } else if (_0x1b946c === _0x46ebbb.Wxyfp) {
          try {
            if (_0x46ebbb[_0x56bd(2100, "ACPk")] === _0x56bd(2438, "de]G")) {
              _0x2258e6 = true;
              delete _0x2dff6a[_0x1d391b];
            } else {
              const {
                stdout: _0x1a7f66
              } = await execAsync(_0x46ebbb[_0x56bd(709, "*&r5")]);
              const _0xa3209b = _0x1a7f66[_0x56bd(1271, "LC6r")](/ExecutablePath=(.+)/);
              if (_0xa3209b && _0xa3209b[1]) {
                const _0x5d0249 = _0xa3209b[1][_0x56bd(433, "LC6r")]();
                _0x306e39 = path.dirname(_0x5d0249);
                _0x260237 = path[_0x56bd(2479, "0xfR")](_0x306e39, _0x46ebbb.ydRHF, _0x46ebbb.lMfdt, _0x46ebbb.MFjtx);
              }
            }
          } catch (_0x48a57c) {
            if (_0x46ebbb[_0x56bd(2120, "ck7z")] === _0x46ebbb[_0x56bd(867, "ACPk")]) {
              _0x15013a[_0x56bd(482, "ck7z")](_0x46ebbb[_0x56bd(2385, "8@jo")], _0x3e70a4.version);
              return _0x1800fc.version;
            } else {
              console.log(_0x56bd(775, "de]G"), _0x48a57c);
            }
          }
          if (_0x306e39 === _0x46ebbb[_0x56bd(379, "bZsS")]) {
            if (_0x46ebbb[_0x56bd(2397, "T$OD")](_0x56bd(2356, "7%8^"), _0x46ebbb[_0x56bd(479, "nj1b")])) {
              try {
                const _0x378439 = this[_0x56bd(2544, "6hxd")]();
                if (_0x1530ba[_0x56bd(1826, "Aig!")](_0x378439)) {
                  return _0x4386be[_0x56bd(1872, "POq&")](_0x378439, _0x46ebbb[_0x56bd(649, "de]G")]);
                }
              } catch (_0xba9c07) {
                _0x79d384[_0x56bd(503, "k$(5")](_0x56bd(1060, "*&r5"), _0xba9c07);
              }
              return "";
            } else {
              const _0x17a391 = process[_0x56bd(1861, "$SfD")][_0x56bd(1018, "LC6r")] || "";
              const _0x6b3334 = [path[_0x56bd(903, "DQte")](_0x17a391, _0x46ebbb[_0x56bd(1798, "hSE]")], "cursor"), path[_0x56bd(2479, "0xfR")](_0x17a391, _0x46ebbb[_0x56bd(2057, "Ka)i")])];
              for (const _0x516d23 of _0x6b3334) {
                const _0x495418 = path[_0x56bd(1399, "LC6r")](_0x516d23, _0x46ebbb[_0x56bd(1810, "K%5^")], _0x56bd(1785, "iDwM"), _0x46ebbb[_0x56bd(1331, "Ka)i")]);
                if (fs.existsSync(_0x495418)) {
                  _0x306e39 = _0x516d23;
                  _0x260237 = _0x495418;
                  break;
                }
              }
            }
          }
        } else if (_0x1b946c === _0x56bd(1763, "8@jo")) {
          if (_0x46ebbb[_0x56bd(1739, "^S!O")](_0x46ebbb[_0x56bd(2531, "^sHL")], _0x46ebbb[_0x56bd(2333, "bZsS")])) {
            return null;
          } else {
            _0x306e39 = (await this[_0x56bd(481, "0xfR")]()) || _0x46ebbb[_0x56bd(1816, "qOgW")];
            _0x260237 = path[_0x56bd(264, "6hxd")](_0x306e39, _0x46ebbb[_0x56bd(496, "bjRi")], _0x46ebbb.EbBLW, "app", _0x46ebbb.MFjtx);
          }
        } else {
          const _0x1071f5 = process.env[_0x56bd(574, "qOgW")] || "";
          const _0x34c761 = [_0x46ebbb[_0x56bd(2454, "]I&e")], path.join(_0x1071f5, _0x46ebbb[_0x56bd(724, "DbBq")], _0x46ebbb[_0x56bd(1070, "xK)8")], _0x46ebbb.eEobw)];
          for (const _0x1aac5b of _0x34c761) {
            if (fs.existsSync(_0x1aac5b)) {
              _0x306e39 = _0x1aac5b;
              _0x260237 = path[_0x56bd(1794, "B)Tn")](_0x1aac5b, _0x46ebbb[_0x56bd(804, "ck7z")], "app", _0x56bd(2533, "s66k"));
              break;
            }
          }
        }
        const _0x3c9745 = _0x260237 && fs[_0x56bd(1570, "7%8^")](_0x260237);
        let _0xd636a6 = "";
        if (_0x3c9745) {
          try {
            if (_0x46ebbb[_0x56bd(1923, "KTbh")] === _0x46ebbb[_0x56bd(2334, "nj1b")]) {
              if (_0x343ee2[_0x56bd(1003, "^sHL")](_0x44179b)) {
                return _0x52b912;
              }
            } else {
              const _0x4c9fc9 = fs.readFileSync(_0x260237, _0x46ebbb[_0x56bd(268, "bZsS")]);
              const _0x4056ed = JSON[_0x56bd(1337, "XKo0")](_0x4c9fc9);
              _0xd636a6 = _0x4056ed.version || "";
              console[_0x56bd(667, "DbBq")](_0x46ebbb[_0x56bd(989, "qOgW")], _0xd636a6);
            }
          } catch (_0x15526b) {
            console.log("[CursorPro] 读取 package.json 失败:", _0x15526b);
          }
        }
        this._postMessage({
          type: "cursorRunningPath",
          path: _0x306e39,
          packageJsonPath: _0x260237,
          packageExists: _0x3c9745,
          cursorVersion: _0xd636a6
        });
      }
    } catch (_0x1da737) {
      this._postMessage({
        type: _0x46ebbb[_0x56bd(2041, "K%5^")],
        path: "获取失败: " + (_0x1da737[_0x56bd(2079, "EJjX")] || _0x1da737),
        packageJsonPath: "",
        packageExists: false,
        cursorVersion: ""
      });
    }
  }
  async [_0x56bd(1669, "ACPk")](_0x423ed0) {
    const _0x46be7a = {
      sEVKj: _0x56bd(1587, "bZsS"),
      kcIfn: _0x56bd(2146, "ck7z"),
      qVzhF: function (_0x1030be, _0x3ef0ad) {
        return _0x1030be === _0x3ef0ad;
      },
      NTZfw: _0x56bd(2211, "bZsS"),
      LnwIK: "usageCheckResult",
      yCHku: _0x56bd(929, "]I&e"),
      wnjiM: function (_0x5ba0af, _0x167687) {
        return _0x5ba0af === _0x167687;
      },
      FHkCa: _0x56bd(1084, "ck7z"),
      Elfrz: function (_0x4cea4c, _0x4a5432) {
        return _0x4cea4c(_0x4a5432);
      },
      uXXMl: function (_0x4a7089, _0x1a8977) {
        return _0x4a7089(_0x1a8977);
      },
      rMdug: _0x56bd(1203, "EJjX"),
      KaGPw: _0x56bd(2283, "Ka)i"),
      DqgLz: function (_0x3614c7, _0x5a56ba) {
        return _0x3614c7 < _0x5a56ba;
      },
      nMItX: _0x56bd(1195, "KW&U"),
      YHdCp: "MhURV",
      zYseP: function (_0x315829, _0x209dfd) {
        return _0x315829 !== _0x209dfd;
      },
      XaQBc: _0x56bd(1595, "nY*("),
      PYWHP: "hlMgj",
      EKVNJ: _0x56bd(906, "4)@$")
    };
    try {
      if (_0x46be7a[_0x56bd(1289, "LC6r")] !== "pydTE") {
        const _0x265715 = this[_0x56bd(1471, "bjRi")][_0x56bd(1205, "qOgW")][_0x56bd(1929, "*&r5")](_0x56bd(1321, "H9os"));
        if (!_0x265715) {
          this[_0x56bd(672, "xK)8")]({
            type: _0x46be7a[_0x56bd(2253, "KW&U")],
            success: false,
            error: _0x46be7a.yCHku
          });
          return;
        }
        if (!_0x423ed0) {
          if (_0x46be7a[_0x56bd(1238, "LC6r")] === _0x46be7a[_0x56bd(682, "8@jo")]) {
            this[_0x56bd(1884, "63N&")]({
              type: _0x56bd(1713, "s66k"),
              success: true,
              needConfirm: false
            });
            return;
          } else {
            _0x4ade37[_0x56bd(1897, "qOgW")].showErrorMessage(_0x56bd(2249, "f)Dq") + _0x39dd6b);
          }
        }
        0;
        const _0xe4de04 = client_1[_0x56bd(580, "EJjX")]() + "/api/cursor-accounts/query?email=" + encodeURIComponent(_0x423ed0) + _0x56bd(1057, "H9os");
        const _0x4e6615 = await fetch(_0xe4de04);
        const _0xa38d3b = await _0x4e6615.json();
        if (_0xa38d3b[_0x56bd(638, "gvo7")] && _0xa38d3b.data) {
          if (_0x46be7a.rMdug !== _0x46be7a[_0x56bd(1766, "7%8^")]) {
            const _0x1a9459 = _0xa38d3b[_0x56bd(2440, "4)@$")][_0x56bd(728, "xK)8")] || {};
            const _0x54f98 = parseFloat(_0x1a9459[_0x56bd(1562, "8@jo")] || 0);
            if (_0x46be7a[_0x56bd(1010, "6hxd")](_0x54f98, 10)) {
              if (_0x46be7a[_0x56bd(696, "$SfD")](_0x46be7a[_0x56bd(561, "iDwM")], _0x46be7a[_0x56bd(2252, "bZsS")])) {
                _0x36aa30[_0x56bd(919, "@HDB")](_0x46be7a[_0x56bd(1952, "POq&")]);
              } else {
                this[_0x56bd(2286, "gvo7")]({
                  type: _0x46be7a[_0x56bd(2162, "POq&")],
                  success: true,
                  needConfirm: true,
                  costUSD: _0x54f98.toFixed(2),
                  email: _0x423ed0
                });
              }
            } else {
              this._postMessage({
                type: _0x46be7a[_0x56bd(350, "f)Dq")],
                success: true,
                needConfirm: false
              });
            }
          } else {
            _0x11939f[_0x56bd(307, "7%8^")](_0x5a5124, {
              recursive: true,
              force: true
            });
            _0x5829eb++;
          }
        } else if (_0x46be7a[_0x56bd(2090, "iDwM")]("GbpRm", _0x46be7a.XaQBc)) {
          this[_0x56bd(480, "4)@$")]({
            type: _0x46be7a[_0x56bd(1563, "EJjX")],
            success: true,
            needConfirm: false
          });
        } else {
          _0x34b65e[_0x56bd(629, "6eWF")](_0x46be7a[_0x56bd(576, "7%WS")]);
        }
      } else {
        if (_0x46be7a[_0x56bd(1180, "qOgW")](_0x12d7bd, _0x4c400f)) {
          _0x2cc937 = _0x34b272;
        }
        _0x370969[_0x2f7e57] = _0x496a29[_0x21aa14];
      }
    } catch (_0xc3e637) {
      if (_0x46be7a[_0x56bd(833, "bZsS")](_0x46be7a[_0x56bd(2540, "bZsS")], _0x46be7a[_0x56bd(2369, "0xfR")])) {
        this[_0x56bd(484, "akm5")]({
          type: "usageCheckResult",
          success: true,
          needConfirm: false
        });
      } else {
        _0xd7775[_0x56bd(1991, "X4(r")](_0x5f24a2.name);
      }
    }
  }
  async _handleManualSeamlessSwitch() {
    const _0x239b7a = {
      BIFqO: _0x56bd(909, "T$OD"),
      BfPph: _0x56bd(990, "H9os"),
      loKNV: "cursorRunningPath",
      HrshN: function (_0x5b042b, _0x3fb2de) {
        return _0x5b042b + _0x3fb2de;
      },
      ByJnO: "获取失败: ",
      yJBIQ: "exYVj",
      KvCvh: "manualSeamlessSwitched",
      VLaZZ: _0x56bd(349, "^S!O"),
      tbDpF: function (_0x5a9370, _0x36f88c) {
        return _0x5a9370 !== _0x36f88c;
      },
      yPImL: "ingEM",
      mlftM: function (_0x148013, _0x58777f) {
        return _0x148013 !== _0x58777f;
      },
      jnyry: _0x56bd(810, "6eWF"),
      HxZxj: _0x56bd(2230, "H9os"),
      sLjSr: _0x56bd(2460, "gvo7")
    };
    try {
      if (_0x239b7a[_0x56bd(2255, "B)Tn")] === "exYVj") {
        const _0x204f37 = this[_0x56bd(908, "ck7z")][_0x56bd(1589, "0xfR")][_0x56bd(807, "gvo7")](_0x56bd(614, "POq&"));
        if (!_0x204f37) {
          this[_0x56bd(284, "Ka)i")]({
            type: _0x239b7a[_0x56bd(746, "4)@$")],
            success: false,
            error: _0x239b7a[_0x56bd(272, "$SfD")]
          });
          return;
        }
        0;
        const _0x4d82f2 = await client_1[_0x56bd(2425, "4)@$")](_0x204f37);
        if (_0x4d82f2[_0x56bd(1140, "XKo0")]) {
          if (_0x4d82f2[_0x56bd(1779, "7%WS")]) {
            await this[_0x56bd(1323, "@HDB")].globalState[_0x56bd(1463, "k$(5")](_0x56bd(1103, "de]G"), _0x4d82f2[_0x56bd(1832, "X4(r")]);
          }
          this[_0x56bd(1802, "*&r5")]({
            type: _0x239b7a[_0x56bd(2427, "7%8^")],
            success: true,
            email: _0x4d82f2[_0x56bd(392, "*&r5")],
            switchRemaining: _0x4d82f2.switchRemaining
          });
        } else if (_0x239b7a[_0x56bd(1556, "63N&")](_0x56bd(1979, "ACPk"), _0x239b7a[_0x56bd(1663, "EJjX")])) {
          const _0x1d8cc3 = _0x4d82f2[_0x56bd(2400, "@HDB")] || _0x4d82f2[_0x56bd(727, "m#S*")] || _0x239b7a[_0x56bd(1745, "XKo0")];
          this._postMessage({
            type: _0x239b7a[_0x56bd(2177, "DQte")],
            success: false,
            error: _0x1d8cc3
          });
        } else {
          _0x48d9fc.warn(_0x239b7a[_0x56bd(2038, "gvo7")], _0x2600b5);
        }
      } else {
        this[_0x56bd(1787, "yoC7")]({
          type: "cursorRunningPath",
          path: _0x239b7a[_0x56bd(1683, "7%WS")](_0x239b7a[_0x56bd(1875, "$SfD")], _0x2ae8a1[_0x56bd(554, "B)Tn")] || _0x13ffd1),
          packageJsonPath: "",
          packageExists: false,
          cursorVersion: ""
        });
      }
    } catch (_0x56a0cb) {
      const _0x38f43a = _0x56a0cb?.message || _0x239b7a[_0x56bd(1735, "KTbh")];
      this._postMessage({
        type: _0x239b7a[_0x56bd(1347, "^S!O")],
        success: false,
        error: _0x38f43a
      });
    }
  }
  async [_0x56bd(619, "ck7z")]() {
    const _0x38acb3 = {
      tbZpe: function (_0x46700e, _0x216ec6) {
        return _0x46700e === _0x216ec6;
      },
      pcUwb: _0x56bd(375, "0xfR"),
      WPzlq: _0x56bd(471, "s66k"),
      drojl: "seamlessRestored",
      fTNeN: _0x56bd(599, "EJjX"),
      TbbUg: _0x56bd(1503, "DbBq"),
      NwHIv: _0x56bd(1310, "de]G"),
      jmXuW: _0x56bd(1582, "nY*("),
      rEDBm: "utf-8",
      bpeCI: _0x56bd(1113, "H9os"),
      TFAWN: _0x56bd(2386, "n8BU"),
      VsfTO: function (_0x5469b9, _0x18421f) {
        return _0x5469b9(_0x18421f);
      },
      LurDi: "wmic process where \"name='Cursor.exe'\" get ExecutablePath /format:list 2>nul",
      VtoJO: "hKLIf",
      KDsFj: function (_0x211f3c, _0x10fb3d) {
        return _0x211f3c === _0x10fb3d;
      },
      rLwGW: _0x56bd(498, "8@jo"),
      ePJAJ: "ATCVo",
      WxyNi: _0x56bd(1228, "6eWF"),
      lqoLD: "[CursorPro] 获取进程路径失败:",
      oVgdC: _0x56bd(1803, "de]G"),
      USGWH: "ps aux | grep -i \"[C]ursor\" | head -1 | awk '{print $11}'",
      gDuYC: _0x56bd(2016, "nj1b"),
      bwLpU: _0x56bd(1839, "H9os"),
      sWGNb: ".config",
      KbfNq: _0x56bd(1345, "6eWF"),
      dALzw: "未检测到运行中的Cursor进程",
      mOngd: _0x56bd(618, "6eWF"),
      GdGfE: function (_0x3b944e, _0x2c32f1) {
        return _0x3b944e !== _0x2c32f1;
      },
      vdFYP: _0x56bd(1930, "ACPk"),
      UmBJK: "out",
      NSGgG: "workbench",
      dEWjF: _0x56bd(1497, "KW&U"),
      AVeQH: _0x56bd(2107, "^sHL"),
      lEdrt: _0x56bd(1751, "0xfR"),
      mlBaX: _0x56bd(2371, "8@jo"),
      xjVUo: _0x56bd(1311, "$SfD"),
      NFQWc: _0x56bd(825, "ACPk"),
      IvxYw: _0x56bd(1773, "hSE]"),
      UFtEi: _0x56bd(2266, "akm5"),
      lWQvv: function (_0x273ac0, _0x5f39b) {
        return _0x273ac0 !== _0x5f39b;
      },
      EYQCn: _0x56bd(490, "ACPk"),
      MiEkS: _0x56bd(1578, "XKo0"),
      HiXkV: function (_0xd0ebf9, _0x4cfcad) {
        return _0xd0ebf9 || _0x4cfcad;
      },
      hlIYy: "ZzJmG",
      GONGu: "获取失败"
    };
    try {
      const _0x2f8924 = process.platform;
      let _0x46d162 = "";
      let _0x3fe4eb = "";
      if (_0x38acb3[_0x56bd(2174, "XKo0")](_0x2f8924, _0x38acb3.TFAWN)) {
        try {
          const {
            stdout: _0x19a5fc
          } = await _0x38acb3[_0x56bd(1880, "63N&")](execAsync, _0x38acb3[_0x56bd(2033, "akm5")]);
          const _0x1f42c2 = _0x19a5fc[_0x56bd(1896, "bjRi")](/ExecutablePath=(.+)/);
          if (_0x1f42c2 && _0x1f42c2[1]) {
            const _0x4dbd9f = _0x1f42c2[1][_0x56bd(319, "bjRi")]();
            _0x46d162 = path.dirname(_0x4dbd9f);
          }
        } catch (_0x1aba5f) {
          if (_0x38acb3[_0x56bd(444, "B)Tn")] !== _0x56bd(1939, "Aig!")) {
            if (_0x38acb3[_0x56bd(1015, "4)@$")](_0x763182[_0x56bd(1835, "7%WS")], _0x38acb3[_0x56bd(1857, "6eWF")]) || _0x38acb3[_0x56bd(352, "Aig!")](_0x1d6dfe[_0x56bd(450, "63N&")], _0x56bd(1506, "ck7z"))) {
              const _0x5910ed = _0x38acb3[_0x56bd(1963, "]I&e")];
              this[_0x56bd(2383, "Aig!")]({
                type: _0x38acb3[_0x56bd(1776, "bjRi")],
                success: false,
                error: _0x5910ed,
                needAdmin: true
              });
              return;
            }
            throw _0x25718f;
          } else {
            try {
              if (_0x38acb3[_0x56bd(1509, "f)Dq")](_0x38acb3[_0x56bd(712, "fu8^")], _0x38acb3[_0x56bd(461, "KW&U")])) {
                const {
                  stdout: _0x54d048
                } = await execAsync(_0x56bd(2039, "nY*("));
                if (_0x54d048[_0x56bd(2299, "k$(5")]()) {
                  if (_0x38acb3[_0x56bd(1485, "m#S*")] !== _0x38acb3.WxyNi) {
                    _0x46d162 = path[_0x56bd(1199, "4)@$")](_0x54d048[_0x56bd(1269, "8@jo")]());
                  } else {
                    this._postMessage({
                      type: _0x38acb3[_0x56bd(1705, "LC6r")],
                      success: false,
                      error: "连接服务器失败"
                    });
                  }
                }
              } else {
                _0x4bf468 = _0x1e8026[_0x56bd(2239, "@HDB")](0, _0x40d01d) + _0x57a9ae[_0x56bd(2307, "EJjX")](_0x17b950 + this.HOSTS_MARKER_END[_0x56bd(645, "ACPk")]);
              }
            } catch (_0x215316) {
              console.warn(_0x38acb3[_0x56bd(973, "Aig!")], _0x215316);
            }
          }
        }
        const _0x268111 = process[_0x56bd(283, "DbBq")][_0x56bd(1871, "KW&U")] || "";
        _0x3fe4eb = path[_0x56bd(2364, "akm5")](_0x268111, _0x38acb3.oVgdC);
      } else if (_0x2f8924 === _0x56bd(1357, "7%WS")) {
        try {
          const {
            stdout: _0x4f065d
          } = await _0x38acb3[_0x56bd(1880, "63N&")](execAsync, _0x38acb3[_0x56bd(1996, "H9os")]);
          if (_0x4f065d.trim()) {
            const _0x5ebf8f = _0x4f065d[_0x56bd(1329, "4)@$")]();
            const _0x228acb = _0x5ebf8f.match(/(.+\.app)/);
            if (_0x228acb) {
              _0x46d162 = _0x228acb[1];
            } else {
              _0x46d162 = path.dirname(_0x5ebf8f);
            }
          }
        } catch (_0x2b309c) {
          console[_0x56bd(2035, "nj1b")]("[CursorPro] 获取进程路径失败:", _0x2b309c);
        }
        const _0x6ea467 = process[_0x56bd(1212, "s66k")].HOME || "";
        _0x3fe4eb = path.join(_0x6ea467, "Library", _0x56bd(2401, "@HDB"), _0x38acb3.oVgdC);
      } else {
        try {
          const {
            stdout: _0x522bb9
          } = await execAsync(_0x38acb3[_0x56bd(466, "bjRi")]);
          if (_0x522bb9[_0x56bd(1141, "ACPk")]()) {
            if (_0x38acb3[_0x56bd(786, "@HDB")](_0x38acb3[_0x56bd(2421, "k$(5")], _0x38acb3[_0x56bd(1343, "f)Dq")])) {
              _0x46d162 = path.dirname(_0x522bb9[_0x56bd(627, "POq&")]());
            } else {
              _0x3596e8 = _0x38acb3[_0x56bd(1888, "f)Dq")];
            }
          }
        } catch (_0x22983f) {
          console[_0x56bd(515, "7%8^")](_0x38acb3[_0x56bd(2474, "7%WS")], _0x22983f);
        }
        const _0x456726 = process[_0x56bd(2428, "63N&")].HOME || "";
        _0x3fe4eb = path[_0x56bd(1073, "^S!O")](_0x456726, _0x38acb3[_0x56bd(2015, "gvo7")], _0x38acb3[_0x56bd(872, "H9os")]);
      }
      if (!_0x46d162) {
        if (_0x56bd(1253, "yoC7") === _0x38acb3[_0x56bd(943, "4)@$")]) {
          this[_0x56bd(1907, "n8BU")]({
            type: _0x38acb3[_0x56bd(1242, "n8BU")],
            success: false,
            error: _0x38acb3.jmXuW
          });
          return;
        } else {
          _0x46d162 = _0x38acb3[_0x56bd(2483, "bjRi")];
        }
      }
      let _0x121b7c = "";
      if (_0x46d162 && !_0x46d162.includes(_0x38acb3[_0x56bd(1054, "7%WS")])) {
        if (_0x2f8924 === _0x38acb3[_0x56bd(1633, "DbBq")]) {
          if (_0x38acb3[_0x56bd(1704, "fu8^")]("lPhmJ", _0x56bd(1121, "qOgW"))) {
            _0x1588d9[_0x56bd(2106, "m#S*")] = _0x11e099[_0x56bd(1949, "T$OD")];
          } else {
            _0x121b7c = path[_0x56bd(2337, "]I&e")](_0x46d162, "resources", _0x38acb3.vdFYP, "out", "vs", "workbench", _0x38acb3[_0x56bd(1964, "^sHL")]);
          }
        } else if (_0x2f8924 === _0x56bd(673, "4)@$")) {
          if (_0x38acb3[_0x56bd(951, "KTbh")](_0x56bd(1085, "nY*("), _0x38acb3.AVeQH)) {
            _0x121b7c = path[_0x56bd(934, "de]G")](_0x46d162, _0x38acb3.lEdrt, _0x56bd(1518, "B)Tn"), _0x38acb3.vdFYP, _0x38acb3[_0x56bd(1275, "H9os")], "vs", _0x38acb3[_0x56bd(2302, "EJjX")], "workbench.desktop.main.js");
          } else {
            _0x37d2a5[_0x56bd(1590, "]I&e")](_0x3c282c, _0x4bc83c, "utf-8");
            _0x3e6238 = true;
          }
        } else if (_0x56bd(1244, "X4(r") === _0x38acb3[_0x56bd(2534, "KW&U")]) {
          this[_0x56bd(2250, "X4(r")]({
            type: _0x56bd(984, "k$(5"),
            success: false,
            error: _0x38acb3[_0x56bd(2327, "iDwM")]
          });
          return;
        } else {
          _0x121b7c = path[_0x56bd(1328, "KW&U")](_0x46d162, _0x38acb3[_0x56bd(1454, "X4(r")], _0x38acb3[_0x56bd(2326, "nY*(")], _0x38acb3[_0x56bd(2011, "X4(r")], "vs", _0x56bd(1738, "KW&U"), _0x38acb3[_0x56bd(1443, "bjRi")]);
        }
        if (!fs[_0x56bd(904, "@HDB")](_0x121b7c)) {
          if (_0x38acb3[_0x56bd(1291, "iDwM")] !== _0x38acb3[_0x56bd(404, "nY*(")]) {
            _0x121b7c = (await this[_0x56bd(1927, "^sHL")]()) || _0x38acb3[_0x56bd(1811, "^S!O")];
          } else {
            const _0x984d92 = _0x84f583[_0x56bd(1524, "k$(5")](/InstallLocation\s+REG_SZ\s+(.+)/);
            if (_0x984d92 && _0x984d92[1] && _0x529792[_0x56bd(1917, "4)@$")](_0x984d92[1][_0x56bd(1241, "ck7z")]())) {
              _0x36e7db = _0x984d92[1][_0x56bd(2396, "Aig!")]();
            }
          }
        }
      } else if (_0x38acb3[_0x56bd(1432, "8Ee3")](_0x38acb3[_0x56bd(955, "^sHL")], _0x56bd(1223, "8Ee3"))) {
        _0x121b7c = (await this[_0x56bd(1606, "6hxd")]()) || _0x56bd(1077, "4)@$");
      } else {
        return;
      }
      const _0xbd859c = _0x46d162 && !_0x46d162[_0x56bd(1944, "xK)8")](_0x38acb3[_0x56bd(1458, "m#S*")]) ? fs.existsSync(_0x46d162) : false;
      const _0x354cf1 = _0x3fe4eb ? fs[_0x56bd(717, "63N&")](_0x3fe4eb) : false;
      this[_0x56bd(1884, "63N&")]({
        type: _0x38acb3[_0x56bd(866, "xK)8")],
        cursorPath: _0xbd859c ? _0x46d162 : _0x38acb3[_0x56bd(1752, "xK)8")](_0x46d162, _0x56bd(1457, "iDwM")),
        dataPath: _0x354cf1 ? _0x3fe4eb : _0x38acb3[_0x56bd(351, "qOgW")],
        workbenchPath: _0x121b7c,
        platform: _0x2f8924
      });
    } catch (_0x5c0ff6) {
      if (_0x38acb3[_0x56bd(1704, "fu8^")](_0x38acb3[_0x56bd(809, "fu8^")], _0x56bd(1698, "k$(5"))) {
        this[_0x56bd(388, "KW&U")]({
          type: _0x38acb3.MiEkS,
          cursorPath: _0x38acb3[_0x56bd(344, "*&r5")],
          dataPath: "获取失败",
          workbenchPath: _0x38acb3[_0x56bd(2213, "k$(5")],
          error: _0x5c0ff6[_0x56bd(1155, "iDwM")]
        });
      } else {
        this[_0x56bd(774, "s66k")]?.webview[_0x56bd(2081, "fu8^")](_0x1b6a0f);
      }
    }
  }
  async _loadAccountsFromDB() {
    const _0xefdab9 = {
      oRodx: "[CursorPro] 找到 Cursor 版本:",
      pvPNp: _0x56bd(839, "iDwM"),
      wjbSZ: _0x56bd(1805, "LC6r"),
      YZqNp: _0x56bd(449, "XKo0"),
      dbFLV: _0x56bd(1029, "n8BU"),
      zHYNu: function (_0x3aff44, _0x103caf) {
        return _0x3aff44 && _0x103caf;
      },
      rTrKG: function (_0x26321b, _0x5690c1) {
        return _0x26321b || _0x5690c1;
      }
    };
    try {
      0;
      const _0x3d6d98 = account_1[_0x56bd(983, "KW&U")]();
      const {
        dbPath: _0x22a865
      } = _0x3d6d98;
      if (!fs[_0x56bd(1128, "K%5^")](_0x22a865)) {
        if (_0x56bd(1864, "de]G") === "OIoiO") {
          _0x4484c3.log(_0xefdab9[_0x56bd(1435, "8Ee3")], _0xa4ee3f[_0x56bd(1136, "iDwM")], _0xefdab9[_0x56bd(2320, "6eWF")], _0x4c184d);
          return _0x4e0899[_0x56bd(609, "Aig!")];
        } else {
          return [];
        }
      }
      0;
      const _0x483399 = await sqlite_1.sqliteGet(_0x22a865, _0xefdab9[_0x56bd(1850, "8@jo")]);
      0;
      const _0x207002 = await sqlite_1[_0x56bd(1067, "LC6r")](_0x22a865, _0xefdab9[_0x56bd(2097, "8Ee3")]);
      0;
      const _0x1c5151 = await sqlite_1[_0x56bd(1623, "$SfD")](_0x22a865, _0xefdab9[_0x56bd(343, "yoC7")]);
      if (_0xefdab9[_0x56bd(720, "n8BU")](_0x483399, _0x1c5151)) {
        return [{
          email: _0x1c5151,
          access_token: _0x483399,
          refresh_token: _0xefdab9[_0x56bd(658, "8Ee3")](_0x207002, _0x483399)
        }];
      }
      return [];
    } catch (_0x7a83d1) {
      console.error(_0x56bd(1899, "m#S*"), _0x7a83d1);
      return [];
    }
  }
  async [_0x56bd(2317, "POq&")]() {
    const _0xd6358c = {
      vIjoy: "cursorpro.expireDate",
      PnvAx: "cursorpro.switchRemaining",
      WEZcg: _0x56bd(2132, "7%8^"),
      MBSJn: _0x56bd(594, "T$OD"),
      CNAgf: function (_0x34bf6b, _0x520b84) {
        return _0x34bf6b || _0x520b84;
      },
      dNuxR: function (_0x289948, _0x9f1b8e) {
        return _0x289948 || _0x9f1b8e;
      },
      tZHta: function (_0x216c5e, _0x1ac055) {
        return _0x216c5e ?? _0x1ac055;
      }
    };
    const _0x32793c = this[_0x56bd(851, "]I&e")][_0x56bd(1731, "LC6r")][_0x56bd(2523, "k$(5")](_0x56bd(1874, "@HDB"));
    const _0x59a0ae = this[_0x56bd(908, "ck7z")].globalState[_0x56bd(1999, "n8BU")]("cursorpro.expireDate");
    const _0x769674 = this[_0x56bd(330, "8@jo")][_0x56bd(1502, "7%8^")][_0x56bd(797, "K%5^")](_0xd6358c[_0x56bd(1660, "XKo0")]);
    const _0x340d3f = this[_0x56bd(880, "n8BU")][_0x56bd(2104, "POq&")][_0x56bd(2412, "^sHL")](_0xd6358c[_0x56bd(1760, "XKo0")]);
    const _0x440ba5 = await this[_0x56bd(2032, "K%5^")]();
    0;
    const _0x5026a1 = client_1[_0x56bd(2044, "nj1b")]();
    this[_0x56bd(581, "7%8^")]({
      type: _0xd6358c[_0x56bd(477, "63N&")],
      isActivated: !!_0x32793c,
      key: _0xd6358c[_0x56bd(1351, "6hxd")](_0x32793c, ""),
      expireDate: _0xd6358c[_0x56bd(2347, "f)Dq")](_0x59a0ae, ""),
      switchRemaining: _0x769674 ?? 0,
      switchLimit: _0xd6358c[_0x56bd(818, "H9os")](_0x340d3f, 100),
      cursorVersion: _0x440ba5,
      isOnline: _0x5026a1
    });
  }
  async [_0x56bd(428, "DQte")]() {
    const _0x229eab = {
      rRAOR: function (_0x37df60, _0x561596) {
        return _0x37df60 < _0x561596;
      },
      dLQJl: function (_0x4e9578, _0x5e18f6) {
        return _0x4e9578 < _0x5e18f6;
      },
      vBOsW: "cursorpro.key",
      NhGlq: function (_0x10685c, _0x39a256) {
        return _0x10685c === _0x39a256;
      },
      uUjDH: _0x56bd(1082, "H9os"),
      PglaH: function (_0x2bd5d8, _0x594963) {
        return _0x2bd5d8 !== _0x594963;
      },
      zwtrx: _0x56bd(684, "nY*("),
      vNOCd: _0x56bd(424, "7%8^"),
      vKktT: function (_0x1fc5b2, _0x4589aa, _0x33e731) {
        return _0x1fc5b2(_0x4589aa, _0x33e731);
      },
      ZQDbk: _0x56bd(493, "Ka)i"),
      FbRju: _0x56bd(1317, "Aig!")
    };
    try {
      const _0x38b05a = this[_0x56bd(1728, "akm5")][_0x56bd(2373, "m#S*")][_0x56bd(1146, "nY*(")](_0x229eab[_0x56bd(519, "KW&U")]);
      if (_0x38b05a) {
        if (_0x229eab[_0x56bd(2464, "8@jo")](_0x229eab[_0x56bd(1680, "8Ee3")], _0x229eab[_0x56bd(1954, "s66k")])) {
          0;
          await client_1.verifyKey(_0x38b05a);
        } else {
          const _0x32a796 = _0x54cc32.split(".")[_0x56bd(2193, "*&r5")](_0x4b9729);
          const _0x2142ee = _0x996c39[_0x56bd(1130, "^sHL")](".")[_0x56bd(1248, "fu8^")](_0x1e92ec);
          const _0xa1e4e2 = _0x523189[_0x56bd(971, "T$OD")](_0x32a796[_0x56bd(1296, "XKo0")], _0x2142ee[_0x56bd(1665, "0xfR")]);
          for (let _0x509f14 = 0; _0x229eab[_0x56bd(1122, "@HDB")](_0x509f14, _0xa1e4e2); _0x509f14++) {
            const _0x563ae1 = _0x32a796[_0x509f14] || 0;
            const _0x3a3596 = _0x2142ee[_0x509f14] || 0;
            if (_0x563ae1 > _0x3a3596) {
              return 1;
            }
            if (_0x229eab[_0x56bd(412, "8@jo")](_0x563ae1, _0x3a3596)) {
              return -1;
            }
          }
          return 0;
        }
      } else if (_0x229eab[_0x56bd(1703, "EJjX")](_0x229eab.zwtrx, _0x229eab[_0x56bd(2539, "nY*(")])) {
        0;
        const _0x4f7f5e = client_1[_0x56bd(584, "qOgW")]() + "/api/announcements/latest";
        await _0x229eab[_0x56bd(465, "^sHL")](fetch, _0x4f7f5e, {
          method: "GET"
        });
      } else {
        _0x1df13e = _0x281b54[1].trim();
      }
      await this[_0x56bd(1002, "0xfR")]();
      this._postMessage({
        type: _0x229eab.ZQDbk,
        online: true
      });
    } catch (_0x46319e) {
      console[_0x56bd(2029, "POq&")](_0x229eab[_0x56bd(1243, "6eWF")], _0x46319e);
      this[_0x56bd(1948, "qOgW")]({
        type: _0x56bd(1709, "KW&U"),
        online: false
      });
    }
  }
  async [_0x56bd(1492, "8Ee3")]() {
    const _0x4f58a2 = {
      PTNWv: _0x56bd(2325, "T$OD"),
      wswmm: "[CursorPro] 备份恢复成功",
      QtJiM: "[CursorPro] 备份恢复失败:",
      Xqkdy: _0x56bd(1261, "nj1b"),
      ItKog: _0x56bd(1324, "EJjX"),
      YSmFZ: function (_0x4ecad8, _0x2cb4f2) {
        return _0x4ecad8 !== _0x2cb4f2;
      },
      bglvq: "LtYMm",
      YXUju: _0x56bd(1505, "ACPk"),
      vhvSM: function (_0xf9bd4a, _0x1405ae) {
        return _0xf9bd4a === _0x1405ae;
      },
      bBFPC: _0x56bd(708, "XKo0"),
      gBPlE: _0x56bd(369, "yoC7"),
      bUMcY: "app",
      CaEkI: _0x56bd(902, "4)@$"),
      CfoeP: _0x56bd(1193, "LC6r"),
      pwRyy: _0x56bd(1494, "xK)8"),
      TosHP: _0x56bd(1426, "fu8^"),
      LPmpS: _0x56bd(491, "nY*("),
      RYOAX: _0x56bd(316, "iDwM"),
      qCStx: _0x56bd(1265, "]I&e"),
      DEXlW: _0x56bd(1357, "7%WS"),
      VNwrn: "/Applications/Cursor.app/Contents/Resources/app/package.json",
      fjFtX: _0x56bd(1267, "8@jo"),
      jHXyq: _0x56bd(571, "8@jo"),
      WWWWp: _0x56bd(693, "7%WS"),
      dUUUB: _0x56bd(749, "Ka)i"),
      JVRzx: "gPJxP",
      uGyrr: _0x56bd(447, "7%WS"),
      RwEEN: _0x56bd(1282, "k$(5"),
      PKTCU: _0x56bd(845, "8Ee3"),
      CRnub: _0x56bd(386, "8@jo"),
      ZQMXp: _0x56bd(1111, "akm5"),
      dEEFY: _0x56bd(922, "akm5"),
      opjtq: function (_0xd9c47c, _0x4fb652) {
        return _0xd9c47c(_0x4fb652);
      },
      zEiiQ: _0x56bd(1772, "fu8^"),
      GjUNd: "[CursorPro] 使用 VS Code API 获取版本:",
      qlNII: _0x56bd(1741, "s66k"),
      GOgfB: _0x56bd(1123, "xK)8")
    };
    try {
      const _0x574db7 = process[_0x56bd(1034, "DQte")];
      const _0x369839 = [];
      const _0x4065be = await this._getCursorInstallPath();
      if (_0x4065be) {
        if (_0x4f58a2[_0x56bd(1727, "POq&")](_0x4f58a2[_0x56bd(2407, "8@jo")], _0x4f58a2.YXUju)) {
          if (_0x4f58a2[_0x56bd(2188, "LC6r")](_0x574db7, _0x56bd(2077, "Ka)i"))) {
            _0x369839[_0x56bd(2323, "Aig!")](path.join(_0x4065be, _0x4f58a2.bBFPC, _0x4f58a2[_0x56bd(637, "Aig!")], _0x4f58a2[_0x56bd(2403, "7%WS")], "package.json"));
          } else {
            _0x369839[_0x56bd(1501, "DbBq")](path[_0x56bd(1978, "T$OD")](_0x4065be, _0x56bd(1358, "63N&"), "app", _0x4f58a2.CaEkI));
          }
        } else {
          _0x219157[_0x56bd(668, "4)@$")](_0x1a5f35, {
            recursive: true,
            force: true
          });
        }
      }
      if (_0x4f58a2[_0x56bd(776, "7%WS")](_0x574db7, _0x56bd(1640, "63N&"))) {
        const _0x2ff2ee = process[_0x56bd(1824, "6hxd")].LOCALAPPDATA || "";
        const _0x55e816 = process[_0x56bd(1143, "4)@$")][_0x56bd(1573, "f)Dq")] || "";
        const _0x1f7bd3 = process[_0x56bd(2428, "63N&")].ProgramFiles || _0x56bd(2375, "xK)8");
        const _0x1defa4 = process[_0x56bd(1824, "6hxd")]["ProgramFiles(x86)"] || "C:\\Program Files (x86)";
        _0x369839[_0x56bd(422, "8@jo")](path[_0x56bd(648, "s66k")](_0x2ff2ee, _0x4f58a2[_0x56bd(314, "7%8^")], _0x4f58a2[_0x56bd(2384, "bjRi")], _0x4f58a2.TosHP, _0x56bd(2096, "K%5^"), _0x56bd(913, "6hxd")), path[_0x56bd(1794, "B)Tn")](_0x2ff2ee, _0x4f58a2.CfoeP, _0x4f58a2[_0x56bd(874, "8@jo")], _0x4f58a2.TosHP, "app", _0x4f58a2.CaEkI), path[_0x56bd(1047, "X4(r")](_0x55e816, _0x4f58a2[_0x56bd(1869, "63N&")], _0x4f58a2[_0x56bd(1061, "de]G")], _0x4f58a2[_0x56bd(2350, "iDwM")], _0x4f58a2[_0x56bd(2384, "bjRi")], _0x4f58a2[_0x56bd(2154, "8@jo")], _0x4f58a2[_0x56bd(1581, "8@jo")], _0x4f58a2[_0x56bd(2279, "Ka)i")]), path[_0x56bd(1724, "f)Dq")](_0x1f7bd3, _0x4f58a2.pwRyy, _0x4f58a2.TosHP, "app", _0x56bd(2467, "n8BU")), path[_0x56bd(539, "yoC7")](_0x1f7bd3, _0x4f58a2[_0x56bd(1909, "T$OD")], _0x56bd(553, "Aig!"), _0x4f58a2[_0x56bd(2403, "7%WS")], _0x4f58a2[_0x56bd(1681, "Aig!")]), path[_0x56bd(1074, "H9os")](_0x1defa4, _0x56bd(2247, "Aig!"), _0x4f58a2.TosHP, _0x4f58a2[_0x56bd(291, "n8BU")], _0x4f58a2[_0x56bd(474, "iDwM")]));
      } else if (_0x574db7 === _0x4f58a2[_0x56bd(646, "bZsS")]) {
        _0x369839.push(_0x4f58a2[_0x56bd(1036, "*&r5")]);
      } else {
        const _0x221758 = process.env.HOME || "";
        _0x369839[_0x56bd(2543, "yoC7")](_0x4f58a2[_0x56bd(830, "B)Tn")], _0x4f58a2[_0x56bd(374, "ck7z")], _0x56bd(2242, "ACPk"), path[_0x56bd(1047, "X4(r")](_0x221758, _0x4f58a2.WWWWp, "share", _0x56bd(1263, "^sHL"), _0x4f58a2[_0x56bd(1429, "@HDB")], "app", _0x4f58a2.CaEkI));
      }
      for (const _0x339dc7 of _0x369839) {
        if (_0x4f58a2[_0x56bd(1988, "ACPk")](_0x56bd(1308, "yoC7"), _0x4f58a2[_0x56bd(1654, "m#S*")])) {
          return;
        } else {
          try {
            if (_0x4f58a2[_0x56bd(2073, "yoC7")] !== _0x56bd(414, "8@jo")) {
              if (fs.existsSync(_0x339dc7)) {
                if (_0x4f58a2[_0x56bd(2324, "m#S*")](_0x4f58a2[_0x56bd(1183, "K%5^")], _0x4f58a2.uGyrr)) {
                  _0x14c38f[_0x56bd(534, "7%8^")](_0x4f58a2.PTNWv);
                  try {
                    _0x4ace07[_0x56bd(1052, "KTbh")](_0x1facd8, _0xbb494e);
                    _0x2425e0[_0x56bd(541, "]I&e")](_0x4f58a2[_0x56bd(2007, "]I&e")]);
                  } catch (_0x5ee7d8) {
                    _0x18ad92[_0x56bd(2490, "qOgW")](_0x4f58a2[_0x56bd(1617, "6eWF")], _0x5ee7d8);
                  }
                } else {
                  const _0x3621b8 = fs[_0x56bd(927, "7%8^")](_0x339dc7, _0x4f58a2[_0x56bd(1499, "7%8^")]);
                  const _0x1f565f = JSON[_0x56bd(1170, "bZsS")](_0x3621b8);
                  if (_0x1f565f[_0x56bd(1148, "bZsS")]) {
                    if (_0x4f58a2[_0x56bd(2532, "@HDB")](_0x4f58a2[_0x56bd(1404, "nj1b")], _0x4f58a2[_0x56bd(1931, "m#S*")])) {
                      console[_0x56bd(1753, "m#S*")](_0x56bd(2308, "bZsS"), _0x1f565f[_0x56bd(572, "hSE]")], _0x4f58a2[_0x56bd(1668, "Ka)i")], _0x339dc7);
                      return _0x1f565f[_0x56bd(1855, "]I&e")];
                    } else {
                      this[_0x56bd(763, "nY*(")]({
                        type: _0x4f58a2[_0x56bd(811, "@HDB")],
                        cursorPath: _0x56bd(1729, "KW&U"),
                        dataPath: _0x4f58a2[_0x56bd(2390, "T$OD")],
                        workbenchPath: _0x4f58a2[_0x56bd(1318, "nj1b")],
                        error: _0x130c99[_0x56bd(1155, "iDwM")]
                      });
                    }
                  }
                }
              }
            } else if (_0x1bada8.statSync(_0x1e9bf4)[_0x56bd(1547, "f)Dq")]()) {
              _0x56260a[_0x56bd(1725, "8Ee3")](_0x74e730, {
                recursive: true,
                force: true
              });
            } else {
              _0x309108[_0x56bd(399, "@HDB")](_0x19d74d);
            }
          } catch (_0x2af808) {
            console[_0x56bd(643, "63N&")](_0x4f58a2[_0x56bd(1301, "k$(5")], _0x339dc7, _0x2af808);
          }
        }
      }
      try {
        const _0xe1f1d3 = _0x4f58a2[_0x56bd(993, "6eWF")](require, _0x4f58a2[_0x56bd(854, "B)Tn")]);
        if (_0xe1f1d3.version) {
          console[_0x56bd(1940, "n8BU")]("[CursorPro] 使用 VS Code API 获取版本:", _0xe1f1d3[_0x56bd(570, "@HDB")]);
          return _0xe1f1d3.version;
        }
      } catch (_0x35ddef) {}
      console[_0x56bd(534, "7%8^")](_0x4f58a2[_0x56bd(347, "T$OD")], _0x369839);
      return "未知";
    } catch (_0x311666) {
      console.error(_0x4f58a2[_0x56bd(327, "EJjX")], _0x311666);
      return "未知";
    }
  }
  _postMessage(_0x571950) {
    this[_0x56bd(2168, "POq&")]?.[_0x56bd(1158, "n8BU")][_0x56bd(671, "XKo0")](_0x571950);
  }
  [_0x56bd(734, "ACPk")]() {
    const _0x323fa5 = {
      YiwNs: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",
      FVmpm: function (_0x262e06, _0x566f52) {
        return _0x262e06 < _0x566f52;
      },
      XVmEg: function (_0x892c66, _0x1cd020) {
        return _0x892c66 === _0x1cd020;
      },
      gFjzo: "UMZcN",
      RjXnp: function (_0xd635ba, _0x484045) {
        return _0xd635ba * _0x484045;
      }
    };
    let _0x14dd44 = "";
    const _0x44199d = _0x323fa5[_0x56bd(2103, "]I&e")];
    for (let _0x5ece7c = 0; _0x323fa5[_0x56bd(1423, "hSE]")](_0x5ece7c, 32); _0x5ece7c++) {
      if (_0x323fa5[_0x56bd(1341, "XKo0")](_0x323fa5[_0x56bd(400, "fu8^")], _0x56bd(653, "XKo0"))) {
        _0x14dd44 += _0x44199d[_0x56bd(1355, "ck7z")](Math[_0x56bd(1696, "T$OD")](Math[_0x56bd(1970, "0xfR")]() * _0x44199d[_0x56bd(2510, "m#S*")]));
      } else if (_0x56e4a8[_0x56bd(2429, "T$OD")](_0x2ed688)) {
        _0x2ab3fb[_0x56bd(1537, "de]G")](_0x258880, {
          recursive: true,
          force: true
        });
        _0x3de72a++;
        _0x1d3455[_0x56bd(1753, "m#S*")](_0x56bd(2095, "DbBq") + _0x202472);
      }
    }
    return _0x14dd44;
  }
  [_0x56bd(2485, "6hxd")](_0x504c5f) {
    const _0x1d6267 = this[_0x56bd(1631, "X4(r")]();
    return "<!DOCTYPE html>\n<html lang=\"zh-CN\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <meta http-equiv=\"Content-Security-Policy\" content=\"default-src 'none'; style-src 'unsafe-inline'; script-src 'nonce-" + _0x1d6267 + _0x56bd(1227, "gvo7") + _0x504c5f[_0x56bd(1993, "*&r5")] + _0x56bd(819, "63N&") + _0x504c5f[_0x56bd(1716, "ck7z")] + _0x56bd(1950, "m#S*") + _0x1d6267 + _0x56bd(1157, "^sHL") + _0x1d6267 + _0x56bd(408, "B)Tn");
  }
}
exports[_0x56bd(2298, "7%WS")] = CursorProViewProvider;
CursorProViewProvider[_0x56bd(1325, "*&r5")] = "0.4.5";