diff options
| -rw-r--r-- | protocols/MRA/src/Mra.cpp | 2 | ||||
| -rw-r--r-- | protocols/MRA/src/Mra.h | 4 | ||||
| -rw-r--r-- | protocols/MRA/src/MraAdvancedSearch.cpp | 87 | ||||
| -rw-r--r-- | protocols/MRA/src/MraAvatars.cpp | 119 | ||||
| -rw-r--r-- | protocols/MRA/src/MraChat.cpp | 10 | ||||
| -rw-r--r-- | protocols/MRA/src/MraFilesQueue.cpp | 280 | ||||
| -rw-r--r-- | protocols/MRA/src/MraPlaces.h | 4656 | ||||
| -rw-r--r-- | protocols/MRA/src/MraProto.h | 2 | ||||
| -rw-r--r-- | protocols/MRA/src/Mra_functions.cpp | 394 | ||||
| -rw-r--r-- | protocols/MRA/src/Mra_menus.cpp | 60 | ||||
| -rw-r--r-- | protocols/MRA/src/Mra_proto.cpp | 191 | ||||
| -rw-r--r-- | protocols/MRA/src/Mra_svcs.cpp | 34 | 
12 files changed, 2895 insertions, 2944 deletions
diff --git a/protocols/MRA/src/Mra.cpp b/protocols/MRA/src/Mra.cpp index fd7c8796d0..944b965fda 100644 --- a/protocols/MRA/src/Mra.cpp +++ b/protocols/MRA/src/Mra.cpp @@ -60,7 +60,7 @@ extern "C" __declspec(dllexport) PLUGININFOEX* MirandaPluginInfoEx(DWORD miranda  static CMraProto* mraProtoInit(const char* pszProtoName, const TCHAR* tszUserName)
  {
 -	CMraProto *ppro = new CMraProto( pszProtoName, tszUserName );
 +	CMraProto *ppro = new CMraProto(pszProtoName, tszUserName);
  	g_Instances.insert(ppro);
  	return ppro;
  }
 diff --git a/protocols/MRA/src/Mra.h b/protocols/MRA/src/Mra.h index 583add72c5..ae925a8471 100644 --- a/protocols/MRA/src/Mra.h +++ b/protocols/MRA/src/Mra.h @@ -230,7 +230,7 @@ bool      IsHTTPSProxyUsed(HANDLE m_hNetlibUser);  bool      IsContactMraProto(HANDLE hContact);
  bool      IsEMailMR(const CMStringA& szEmail);
  bool      GetEMailFromString(const CMStringA& szBuff, CMStringA& szEmail);
 -		    
 +
  bool      IsPhone(LPSTR lpszString, size_t dwStringSize);
  bool      IsContactPhone(HANDLE hContact, LPSTR lpszPhone, size_t dwPhoneSize);
  HANDLE    MraHContactFromPhone(LPSTR lpszPhone, size_t dwPhoneSize, BOOL bAddIfNeeded, BOOL bTemporary, BOOL *pbAdded);
 @@ -240,7 +240,7 @@ bool      MraSendReplyBlogStatus(HANDLE hContact);  DWORD     GetYears(CONST PSYSTEMTIME pcstSystemTime);
  DWORD     FindFile(LPWSTR lpszFolder, DWORD dwFolderLen, LPWSTR lpszFileName, DWORD dwFileNameLen, LPWSTR lpszRetFilePathName, DWORD dwRetFilePathLen, DWORD *pdwRetFilePathLen);
  DWORD     MemFillRandom(LPVOID lpBuff, size_t dwBuffSize);
 -		    
 +
  DWORD     GetMraStatusFromMiradaStatus(DWORD dwMirandaStatus, DWORD dwXStatusMir, DWORD *pdwXStatusMra);
  DWORD     GetMirandaStatusFromMraStatus(DWORD dwMraStatus, DWORD dwXStatusMra, DWORD *pdwXStatusMir);
  DWORD     GetMraXStatusIDFromMraUriStatus(const char *lpszStatusUri);
 diff --git a/protocols/MRA/src/MraAdvancedSearch.cpp b/protocols/MRA/src/MraAdvancedSearch.cpp index 31e9fcac09..aa3aa43b99 100644 --- a/protocols/MRA/src/MraAdvancedSearch.cpp +++ b/protocols/MRA/src/MraAdvancedSearch.cpp @@ -54,10 +54,6 @@ static const FieldNames ZodiakField[] =  };
 -
 -
 -
 -
  void ResetComboBox(HWND hWndCombo)
  {
  	SendMessage(hWndCombo, CB_RESETCONTENT, 0, 0);
 @@ -71,8 +67,7 @@ void InitComboBox(HWND hWndCombo, FieldNames *lpNames)  {
  	ResetComboBox(hWndCombo);
 -	for (size_t i = 0;lpNames[i].lpszText;i++)
 -	{
 +	for (size_t i = 0; lpNames[i].lpszText; i++) {
  		DWORD dwItem = SendMessage(hWndCombo, CB_ADDSTRING, 0, (LPARAM)TranslateTS(lpNames[i].lpszText));
  		SendMessage(hWndCombo, CB_SETITEMDATA, dwItem, lpNames[i].dwCode);
  	}
 @@ -83,8 +78,7 @@ void InitComboBoxNumders(HWND hWndCombo, DWORD dwStart, DWORD dwEnd)  {
  	ResetComboBox(hWndCombo);
 -	for (DWORD i = dwStart;i <= dwEnd;i++)
 -	{
 +	for (DWORD i = dwStart; i <= dwEnd; i++) {
  		TCHAR szBuff[MAX_PATH];
  		mir_sntprintf(szBuff, SIZEOF(szBuff), _T("%lu"), i);
  		DWORD dwItem = SendMessage(hWndCombo, CB_ADDSTRING, 0, (LPARAM)szBuff);
 @@ -99,24 +93,23 @@ INT_PTR CALLBACK AdvancedSearchDlgProc(HWND hWndDlg, UINT message, WPARAM wParam  	switch (message) {
  	case WM_INITDIALOG:
 +		SetWindowLongPtr(hWndDlg, GWLP_USERDATA, lParam);
  		{
  			DWORD dwItem;
  			WCHAR wszBuff[MAX_PATH];
  			SYSTEMTIME stTime;
  			GetLocalTime(&stTime);
 -			SetWindowLongPtr(hWndDlg, GWLP_USERDATA, lParam);
  			ppro = (CMraProto*)lParam;
  			//InitComboBox(GetDlgItem(hWndDlg, IDC_EMAIL_DOMAIN), (FieldNames*)DomainField);
 -			{
 -				HWND hWndCombo = GetDlgItem(hWndDlg, IDC_EMAIL_DOMAIN);
 -				ResetComboBox(hWndCombo);
 -				for (size_t i = 0;lpcszMailRuDomains[i];i++)
 -				{
 -					MultiByteToWideChar(MRA_CODE_PAGE, 0, lpcszMailRuDomains[i], -1, wszBuff, SIZEOF(wszBuff));
 -					SendMessage(hWndCombo, CB_ADDSTRING, 0, (LPARAM)wszBuff);
 -				}
 +
 +			HWND hWndCombo = GetDlgItem(hWndDlg, IDC_EMAIL_DOMAIN);
 +			ResetComboBox(hWndCombo);
 +			for (size_t i = 0; lpcszMailRuDomains[i]; i++) {
 +				MultiByteToWideChar(MRA_CODE_PAGE, 0, lpcszMailRuDomains[i], -1, wszBuff, SIZEOF(wszBuff));
 +				SendMessage(hWndCombo, CB_ADDSTRING, 0, (LPARAM)wszBuff);
  			}
 +
  			InitComboBox(GetDlgItem(hWndDlg, IDC_GENDER), (FieldNames*)GenderField);
  			InitComboBoxNumders(GetDlgItem(hWndDlg, IDC_AGERANGE_FROM), 1, 100);
  			InitComboBoxNumders(GetDlgItem(hWndDlg, IDC_AGERANGE_TO), 1, 100);
 @@ -125,21 +118,18 @@ INT_PTR CALLBACK AdvancedSearchDlgProc(HWND hWndDlg, UINT message, WPARAM wParam  			InitComboBoxNumders(GetDlgItem(hWndDlg, IDC_BIRTHDAY_YEAR), 1900, (DWORD)stTime.wYear);
  			InitComboBox(GetDlgItem(hWndDlg, IDC_ZODIAK), (FieldNames*)ZodiakField);
 -			HWND hWndCombo = GetDlgItem(hWndDlg, IDC_COUNTRY);
 +			hWndCombo = GetDlgItem(hWndDlg, IDC_COUNTRY);
  			ResetComboBox(hWndCombo);
 -			for (size_t i = 0;mrapPlaces[i].lpszData;i++)
 -			{
 -				if (mrapPlaces[i].dwCityID == 0 && mrapPlaces[i].dwPlaceID == 0)
 -				{
 +			for (size_t i = 0; mrapPlaces[i].lpszData; i++) {
 +				if (mrapPlaces[i].dwCityID == 0 && mrapPlaces[i].dwPlaceID == 0) {
  					dwItem = SendMessage(hWndCombo, CB_ADDSTRING, 0, (LPARAM)mrapPlaces[i].lpszData);
  					SendMessage(hWndCombo, CB_SETITEMDATA, dwItem, mrapPlaces[i].dwCountryID);
  				}
  			}
 -
  			ResetComboBox(GetDlgItem(hWndDlg, IDC_CITY));
 -			if ( ppro->getByte("AdvancedSearchRemember", MRA_DEFAULT_SEARCH_REMEMBER)) {
 +			if (ppro->getByte("AdvancedSearchRemember", MRA_DEFAULT_SEARCH_REMEMBER)) {
  				SendDlgItemMessage(hWndDlg, IDC_GENDER, CB_SETCURSEL, ppro->getWord("AdvancedSearchGender", 0), 0);
  				SendDlgItemMessage(hWndDlg, IDC_AGERANGE_FROM, CB_SETCURSEL, ppro->getWord("AdvancedSearchAgeFrom", 0), 0);
  				SendDlgItemMessage(hWndDlg, IDC_AGERANGE_TO, CB_SETCURSEL, ppro->getWord("AdvancedSearchAgeTo", 0), 0);
 @@ -186,25 +176,23 @@ INT_PTR CALLBACK AdvancedSearchDlgProc(HWND hWndDlg, UINT message, WPARAM wParam  		switch (LOWORD(wParam)) {
  		case IDC_AGERANGE_FROM:
  		case IDC_AGERANGE_TO:
 -			if (HIWORD(wParam) == CBN_SELCHANGE)
 -			{
 -				if (LOWORD(wParam) == IDC_AGERANGE_FROM)
 -				{
 +			if (HIWORD(wParam) == CBN_SELCHANGE) {
 +				if (LOWORD(wParam) == IDC_AGERANGE_FROM) {
  					DWORD dwAgeFrom = GET_CURRENT_COMBO_DATA(hWndDlg, IDC_AGERANGE_FROM);
  					DWORD dwAgeTo = GET_CURRENT_COMBO_DATA(hWndDlg, IDC_AGERANGE_TO);
  					if (dwAgeFrom == 0) dwAgeFrom++;
  					InitComboBoxNumders(GetDlgItem(hWndDlg, IDC_AGERANGE_TO), dwAgeFrom, 100);
 -					SendMessage(GetDlgItem(hWndDlg, IDC_AGERANGE_TO), CB_SETCURSEL, ((dwAgeTo-dwAgeFrom)+1), 0);
 +					SendMessage(GetDlgItem(hWndDlg, IDC_AGERANGE_TO), CB_SETCURSEL, ((dwAgeTo - dwAgeFrom) + 1), 0);
  				}
  				SendMessage(GetDlgItem(hWndDlg, IDC_BIRTHDAY_YEAR), CB_SETCURSEL, 0, 0);
  			}
  			break;
 +
  		case IDC_BIRTHDAY_DAY:
  		case IDC_BIRTHDAY_MONTH:
  		case IDC_BIRTHDAY_YEAR:
 -			if (HIWORD(wParam) == CBN_SELCHANGE)
 -			{
 -				SYSTEMTIME stTime = {0};
 +			if (HIWORD(wParam) == CBN_SELCHANGE) {
 +				SYSTEMTIME stTime = { 0 };
  				stTime.wYear = (WORD)GET_CURRENT_COMBO_DATA(hWndDlg, IDC_BIRTHDAY_YEAR);
  				stTime.wMonth = (WORD)GET_CURRENT_COMBO_DATA(hWndDlg, IDC_BIRTHDAY_MONTH);
 @@ -216,17 +204,17 @@ INT_PTR CALLBACK AdvancedSearchDlgProc(HWND hWndDlg, UINT message, WPARAM wParam  				SendMessage(GetDlgItem(hWndDlg, IDC_ZODIAK), CB_SETCURSEL, 0, 0);
  			}
  			break;
 +
  		case IDC_ZODIAK:
 -			if (HIWORD(wParam) == CBN_SELCHANGE)
 -			{
 +			if (HIWORD(wParam) == CBN_SELCHANGE) {
  				SendDlgItemMessage(hWndDlg, IDC_BIRTHDAY_DAY, CB_SETCURSEL, 0, 0);
  				SendDlgItemMessage(hWndDlg, IDC_BIRTHDAY_MONTH, CB_SETCURSEL, 0, 0);
  				//SendDlgItemMessage(hWndDlg, IDC_BIRTHDAY_YEAR, CB_SETCURSEL, 0, 0);
  			}
  			break;
 +
  		case IDC_COUNTRY:
 -			if (HIWORD(wParam) == CBN_SELCHANGE)
 -			{
 +			if (HIWORD(wParam) == CBN_SELCHANGE) {
  				DWORD dwCountryID = GET_CURRENT_COMBO_DATA(hWndDlg, IDC_COUNTRY);
  				HWND hWndCombo = GetDlgItem(hWndDlg, IDC_STATE);
  				SendMessage(hWndCombo, CB_RESETCONTENT, 0, 0);
 @@ -235,19 +223,17 @@ INT_PTR CALLBACK AdvancedSearchDlgProc(HWND hWndDlg, UINT message, WPARAM wParam  				SendMessage(hWndCombo, CB_SETITEMDATA, dwItem, 0);
  				SendMessage(hWndCombo, CB_SETCURSEL, dwItem, 0);
 -				for (size_t i = 0;mrapPlaces[i].lpszData;i++)
 -				{
 -					if (mrapPlaces[i].dwCountryID == dwCountryID && mrapPlaces[i].dwCityID && mrapPlaces[i].dwPlaceID == 0)
 -					{
 +				for (size_t i = 0; mrapPlaces[i].lpszData; i++) {
 +					if (mrapPlaces[i].dwCountryID == dwCountryID && mrapPlaces[i].dwCityID && mrapPlaces[i].dwPlaceID == 0) {
  						dwItem = SendMessage(hWndCombo, CB_ADDSTRING, 0, (LPARAM)mrapPlaces[i].lpszData);
  						SendMessage(hWndCombo, CB_SETITEMDATA, dwItem, mrapPlaces[i].dwCityID);
  					}
  				}
  			}
  			break;
 +
  		case IDC_STATE:
 -			if (HIWORD(wParam) == CBN_SELCHANGE)
 -			{
 +			if (HIWORD(wParam) == CBN_SELCHANGE) {
  				DWORD dwCountryID = GET_CURRENT_COMBO_DATA(hWndDlg, IDC_COUNTRY);
  				DWORD dwStateID = GET_CURRENT_COMBO_DATA(hWndDlg, IDC_STATE);
  				HWND hWndCombo = GetDlgItem(hWndDlg, IDC_CITY);
 @@ -256,24 +242,16 @@ INT_PTR CALLBACK AdvancedSearchDlgProc(HWND hWndDlg, UINT message, WPARAM wParam  				SendMessage(hWndCombo, CB_SETITEMDATA, dwItem, 0);
  				SendMessage(hWndCombo, CB_SETCURSEL, dwItem, 0);
 -				for (size_t i = 0;mrapPlaces[i].lpszData;i++)
 -				{
 -					if (mrapPlaces[i].dwCountryID == dwCountryID && mrapPlaces[i].dwCityID == dwStateID && mrapPlaces[i].dwPlaceID)
 -					{
 +				for (size_t i = 0; mrapPlaces[i].lpszData; i++) {
 +					if (mrapPlaces[i].dwCountryID == dwCountryID && mrapPlaces[i].dwCityID == dwStateID && mrapPlaces[i].dwPlaceID) {
  						dwItem = SendMessage(hWndCombo, CB_ADDSTRING, 0, (LPARAM)mrapPlaces[i].lpszData);
  						SendMessage(hWndCombo, CB_SETITEMDATA, dwItem, mrapPlaces[i].dwPlaceID);
  					}
  				}
  			}
 -			break;
 -		default:
 -			break;
  		}
 -		break;
 -	default:
 -		break;
  	}
 -return FALSE;
 +	return FALSE;
  }
  HWND CMraProto::SearchAdvanced(HWND hWndDlg)
 @@ -284,8 +262,7 @@ HWND CMraProto::SearchAdvanced(HWND hWndDlg)  	size_t dwUserSize = GetDlgItemTextA(hWndDlg, IDC_EMAIL_USER, szUser, SIZEOF(szUser));
  	size_t dwDomainSize = GetDlgItemTextA(hWndDlg, IDC_EMAIL_DOMAIN, szDomain, SIZEOF(szDomain));
 -	if (dwUserSize && dwDomainSize)
 -	{
 +	if (dwUserSize && dwDomainSize) {
  		SetBit(dwRequestFlags, MRIM_CS_WP_REQUEST_PARAM_USER);
  		SetBit(dwRequestFlags, MRIM_CS_WP_REQUEST_PARAM_DOMAIN);
  	}
 diff --git a/protocols/MRA/src/MraAvatars.cpp b/protocols/MRA/src/MraAvatars.cpp index 344b754391..3439efd420 100644 --- a/protocols/MRA/src/MraAvatars.cpp +++ b/protocols/MRA/src/MraAvatars.cpp @@ -80,7 +80,7 @@ DWORD CMraProto::MraAvatarsQueueInitialize(HANDLE *phAvatarsQueueHandle)  				pmraaqAvatarsQueue->iThreadsCount = 1;
  			if (pmraaqAvatarsQueue->iThreadsCount > MAXIMUM_WAIT_OBJECTS)
  				pmraaqAvatarsQueue->iThreadsCount = MAXIMUM_WAIT_OBJECTS;
 -			for (int i=0; i < pmraaqAvatarsQueue->iThreadsCount; i++)
 +			for (int i = 0; i < pmraaqAvatarsQueue->iThreadsCount; i++)
  				pmraaqAvatarsQueue->hThread[i] = ForkThreadEx(&CMraProto::MraAvatarsThreadProc, pmraaqAvatarsQueue, 0);
  			*phAvatarsQueueHandle = (HANDLE)pmraaqAvatarsQueue;
 @@ -92,13 +92,13 @@ DWORD CMraProto::MraAvatarsQueueInitialize(HANDLE *phAvatarsQueueHandle)  void CMraProto::MraAvatarsQueueClear(HANDLE hAvatarsQueueHandle)
  {
 -	if ( !hAvatarsQueueHandle)
 +	if (!hAvatarsQueueHandle)
  		return;
  	MRA_AVATARS_QUEUE *pmraaqAvatarsQueue = (MRA_AVATARS_QUEUE*)hAvatarsQueueHandle;
  	MRA_AVATARS_QUEUE_ITEM *pmraaqiAvatarsQueueItem;
 -	PROTO_AVATAR_INFORMATIONT pai = {0};
 +	PROTO_AVATAR_INFORMATIONT pai = { 0 };
  	pai.cbSize = sizeof(pai);
  	pai.format = PA_FORMAT_UNKNOWN;
 @@ -118,15 +118,15 @@ void CMraProto::MraAvatarsQueueSuspend(HANDLE hAvatarsQueueHandle)  void CMraProto::MraAvatarsQueueDestroy(HANDLE hAvatarsQueueHandle)
  {
 -	if ( !hAvatarsQueueHandle)
 +	if (!hAvatarsQueueHandle)
  		return;
  	MRA_AVATARS_QUEUE *pmraaqAvatarsQueue = (MRA_AVATARS_QUEUE*)hAvatarsQueueHandle;
  	if (InterlockedExchangeAdd((volatile LONG*)&pmraaqAvatarsQueue->lThreadsRunningCount, 0))
 -		while (InterlockedExchangeAdd((volatile LONG*)&pmraaqAvatarsQueue->lThreadsRunningCount, 0))
 -			SleepEx(100, TRUE);
 +	while (InterlockedExchangeAdd((volatile LONG*)&pmraaqAvatarsQueue->lThreadsRunningCount, 0))
 +		SleepEx(100, TRUE);
 -	for (int i=0; i < pmraaqAvatarsQueue->iThreadsCount; i++)
 +	for (int i = 0; i < pmraaqAvatarsQueue->iThreadsCount; i++)
  		CloseHandle(pmraaqAvatarsQueue->hThread[i]);
  	CloseHandle(pmraaqAvatarsQueue->hThreadEvent);
 @@ -139,12 +139,12 @@ void CMraProto::MraAvatarsQueueDestroy(HANDLE hAvatarsQueueHandle)  DWORD CMraProto::MraAvatarsQueueAdd(HANDLE hAvatarsQueueHandle, DWORD dwFlags, HANDLE hContact, DWORD *pdwAvatarsQueueID)
  {
 -	if ( !hAvatarsQueueHandle)
 +	if (!hAvatarsQueueHandle)
  		return ERROR_INVALID_HANDLE;
  	MRA_AVATARS_QUEUE *pmraaqAvatarsQueue = (MRA_AVATARS_QUEUE*)hAvatarsQueueHandle;
  	MRA_AVATARS_QUEUE_ITEM *pmraaqiAvatarsQueueItem = (MRA_AVATARS_QUEUE_ITEM*)mir_calloc(sizeof(MRA_AVATARS_QUEUE_ITEM));
 -	if ( !pmraaqiAvatarsQueueItem)
 +	if (!pmraaqiAvatarsQueueItem)
  		return GetLastError();
  	pmraaqiAvatarsQueueItem->dwAvatarsQueueID = GetTickCount();
 @@ -172,7 +172,7 @@ void CMraProto::MraAvatarsThreadProc(LPVOID lpParameter)  	FILETIME ftLastModifiedTimeServer, ftLastModifiedTimeLocal;
  	SYSTEMTIME stAvatarLastModifiedTimeLocal;
  	HANDLE m_hConnection = NULL;
 -	NETLIBSELECT nls = {0};
 +	NETLIBSELECT nls = { 0 };
  	INTERNET_TIME itAvatarLastModifiedTimeServer;
  	PROTO_AVATAR_INFORMATIONT pai;
  	WCHAR szErrorText[2048];
 @@ -182,18 +182,18 @@ void CMraProto::MraAvatarsThreadProc(LPVOID lpParameter)  	InterlockedIncrement((volatile LONG*)&pmraaqAvatarsQueue->lThreadsRunningCount);
 -	while ( InterlockedExchangeAdd((volatile LONG*)&pmraaqAvatarsQueue->bIsRunning, 0)) {
 -		if ( FifoMTItemPop(pmraaqAvatarsQueue, NULL, (LPVOID*)&pmraaqiAvatarsQueueItem) == NO_ERROR) {
 +	while (InterlockedExchangeAdd((volatile LONG*)&pmraaqAvatarsQueue->bIsRunning, 0)) {
 +		if (FifoMTItemPop(pmraaqAvatarsQueue, NULL, (LPVOID*)&pmraaqiAvatarsQueueItem) == NO_ERROR) {
  			bFailed = TRUE;
  			bDownloadNew = FALSE;
  			bDefaultAvt = FALSE;
 -			if ( !DB_GetStringA(NULL, MRA_AVT_SECT_NAME, "Server", szServer))
 +			if (!DB_GetStringA(NULL, MRA_AVT_SECT_NAME, "Server", szServer))
  				szServer = MRA_AVT_DEFAULT_SERVER;
  			dwServerPort = db_get_dw(NULL, MRA_AVT_SECT_NAME, "ServerPort", MRA_AVT_DEFAULT_SERVER_PORT);
  			bUseKeepAliveConn = db_get_b(NULL, MRA_AVT_SECT_NAME, "UseKeepAliveConn", MRA_AVT_DEFAULT_USE_KEEPALIVE_CONN);
 -			if ( mraGetStringA(pmraaqiAvatarsQueueItem->hContact, "e-mail", szEmail)) {
 +			if (mraGetStringA(pmraaqiAvatarsQueueItem->hContact, "e-mail", szEmail)) {
  				szEmail.MakeLower();
  				int iStart = 0;
 @@ -206,21 +206,20 @@ void CMraProto::MraAvatarsThreadProc(LPVOID lpParameter)  					if (m_hConnection) {
  						ProtoBroadcastAck(pmraaqiAvatarsQueueItem->hContact, ACKTYPE_AVATAR, ACKRESULT_CONNECTED, NULL, 0);
  						ProtoBroadcastAck(pmraaqiAvatarsQueueItem->hContact, ACKTYPE_AVATAR, ACKRESULT_SENTREQUEST, NULL, 0);
 -						if ( !MraAvatarsHttpTransaction(m_hConnection, REQUEST_HEAD, szUser, szDomain, szServer, MAHTRO_AVTMRIM, bUseKeepAliveConn, &dwResultCode, &bKeepAlive, &dwAvatarFormat, &dwAvatarSizeServer, &itAvatarLastModifiedTimeServer)) {
 +						if (!MraAvatarsHttpTransaction(m_hConnection, REQUEST_HEAD, szUser, szDomain, szServer, MAHTRO_AVTMRIM, bUseKeepAliveConn, &dwResultCode, &bKeepAlive, &dwAvatarFormat, &dwAvatarSizeServer, &itAvatarLastModifiedTimeServer)) {
  							switch (dwResultCode) {
  							case 200:
  								if (MraAvatarsGetContactTime(pmraaqiAvatarsQueueItem->hContact, "AvatarLastModifiedTime", &stAvatarLastModifiedTimeLocal)) {
  									SystemTimeToFileTime(&itAvatarLastModifiedTimeServer.stTime, &ftLastModifiedTimeServer);
  									SystemTimeToFileTime(&stAvatarLastModifiedTimeLocal, &ftLastModifiedTimeLocal);
 -									if ((*((DWORDLONG*)&ftLastModifiedTimeServer)) != (*((DWORDLONG*)&ftLastModifiedTimeLocal)))
 -									{// need check for update
 +									if ((*((DWORDLONG*)&ftLastModifiedTimeServer)) != (*((DWORDLONG*)&ftLastModifiedTimeLocal))) {// need check for update
  										bDownloadNew = TRUE;
  										//ProtoBroadcastAck(pmraaqiAvatarsQueueItem->hContact, ACKTYPE_AVATAR, ACKRESULT_STATUS, 0, 0);
  									}
  									else {// avatar is valid
  										if (MraAvatarsGetFileName(pmraaqAvatarsQueue, pmraaqiAvatarsQueueItem->hContact, dwAvatarFormat, wszFileName) == NO_ERROR) {
 -											if ( IsFileExist( wszFileName ))
 +											if (IsFileExist(wszFileName))
  												bFailed = FALSE;
  											else
  												bDownloadNew = TRUE;
 @@ -233,7 +232,7 @@ void CMraProto::MraAvatarsThreadProc(LPVOID lpParameter)  								break;
  							case 404:// return def avatar
  								if (MraAvatarsGetFileName((HANDLE)pmraaqAvatarsQueue, NULL, PA_FORMAT_DEFAULT, wszFileName) == NO_ERROR) {
 -									if ( IsFileExist( wszFileName )) {
 +									if (IsFileExist(wszFileName)) {
  										dwAvatarFormat = ProtoGetAvatarFormat(wszFileName);
  										bFailed = FALSE;
  									}
 @@ -263,15 +262,15 @@ void CMraProto::MraAvatarsThreadProc(LPVOID lpParameter)  								if (bDefaultAvt)
  									dwAvatarFormat = PA_FORMAT_DEFAULT;
 -								if ( !MraAvatarsGetFileName(pmraaqAvatarsQueue, pmraaqiAvatarsQueueItem->hContact, dwAvatarFormat, wszFileName)) {
 +								if (!MraAvatarsGetFileName(pmraaqAvatarsQueue, pmraaqiAvatarsQueueItem->hContact, dwAvatarFormat, wszFileName)) {
  									HANDLE hFile = CreateFile(wszFileName, GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
  									if (hFile != INVALID_HANDLE_VALUE) {
  										DWORD dwWritten = 0;
  										bContinue = TRUE;
 -										nls.dwTimeout = (1000*db_get_dw(NULL, MRA_AVT_SECT_NAME, "TimeOutReceive", MRA_AVT_DEFAULT_TIMEOUT_RECV));
 +										nls.dwTimeout = (1000 * db_get_dw(NULL, MRA_AVT_SECT_NAME, "TimeOutReceive", MRA_AVT_DEFAULT_TIMEOUT_RECV));
  										nls.hReadConns[0] = m_hConnection;
 -										while ( bContinue ) {
 +										while (bContinue) {
  											switch (CallService(MS_NETLIB_SELECT, 0, (LPARAM)&nls)) {
  											case SOCKET_ERROR:
  											case 0:// Time out
 @@ -287,7 +286,7 @@ void CMraProto::MraAvatarsThreadProc(LPVOID lpParameter)  													bContinue = FALSE;
  												}
  												else {
 -													if ( WriteFile( hFile, (LPVOID)&btBuff, dwReceived, &dwReceived, NULL)) {
 +													if (WriteFile(hFile, (LPVOID)&btBuff, dwReceived, &dwReceived, NULL)) {
  														dwWritten += dwReceived;
  														if (dwWritten >= dwAvatarSizeServer)
  															bContinue = FALSE;
 @@ -329,7 +328,7 @@ void CMraProto::MraAvatarsThreadProc(LPVOID lpParameter)  			else {
  				pai.hContact = pmraaqiAvatarsQueueItem->hContact;
  				pai.format = dwAvatarFormat;
 -				if ( db_get_b(NULL, MRA_AVT_SECT_NAME, "ReturnAbsolutePath", MRA_AVT_DEFAULT_RET_ABC_PATH))
 +				if (db_get_b(NULL, MRA_AVT_SECT_NAME, "ReturnAbsolutePath", MRA_AVT_DEFAULT_RET_ABC_PATH))
  					lstrcpyn(pai.filename, wszFileName, SIZEOF(pai.filename));
  				else
  					PathToRelativeT(wszFileName, pai.filename);
 @@ -338,7 +337,7 @@ void CMraProto::MraAvatarsThreadProc(LPVOID lpParameter)  				SetContactAvatarFormat(pmraaqiAvatarsQueueItem->hContact, dwAvatarFormat);
  				MraAvatarsSetContactTime(pmraaqiAvatarsQueueItem->hContact, "AvatarLastModifiedTime", &itAvatarLastModifiedTimeServer.stTime);
  				// write owner avatar file name to DB
 -				if ( pmraaqiAvatarsQueueItem->hContact == NULL) // proto avatar
 +				if (pmraaqiAvatarsQueueItem->hContact == NULL) // proto avatar
  					CallService(MS_AV_REPORTMYAVATARCHANGED, (WPARAM)m_szModuleName, 0);
  				ProtoBroadcastAck(pmraaqiAvatarsQueueItem->hContact, ACKTYPE_AVATAR, ACKRESULT_SUCCESS, (HANDLE)&pai, 0);
 @@ -356,11 +355,11 @@ void CMraProto::MraAvatarsThreadProc(LPVOID lpParameter)  HANDLE MraAvatarsHttpConnect(HANDLE m_hNetlibUser, LPCSTR lpszHost, DWORD dwPort)
  {
 -	NETLIBOPENCONNECTION nloc = {0};
 +	NETLIBOPENCONNECTION nloc = { 0 };
  	nloc.cbSize = sizeof(nloc);
 -	nloc.flags = (NLOCF_HTTP|NLOCF_V2);
 +	nloc.flags = (NLOCF_HTTP | NLOCF_V2);
  	nloc.szHost = lpszHost;
 -	nloc.wPort = ( IsHTTPSProxyUsed(m_hNetlibUser)) ? MRA_SERVER_PORT_HTTPS : dwPort;
 +	nloc.wPort = (IsHTTPSProxyUsed(m_hNetlibUser)) ? MRA_SERVER_PORT_HTTPS : dwPort;
  	nloc.timeout = db_get_dw(NULL, MRA_AVT_SECT_NAME, "TimeOutConnect", MRA_AVT_DEFAULT_TIMEOUT_CONN);
  	if (nloc.timeout < MRA_TIMEOUT_CONN_MIN) nloc.timeout = MRA_TIMEOUT_CONN_MIN;
  	if (nloc.timeout > MRA_TIMEOUT_CONN_MAX) nloc.timeout = MRA_TIMEOUT_CONN_MAX;
 @@ -371,7 +370,7 @@ HANDLE MraAvatarsHttpConnect(HANDLE m_hNetlibUser, LPCSTR lpszHost, DWORD dwPort  	do {
  		m_hConnection = (HANDLE)CallService(MS_NETLIB_OPENCONNECTION, (WPARAM)m_hNetlibUser, (LPARAM)&nloc);
  	}
 -		while (--dwCurConnectReTryCount && m_hConnection == NULL);
 +	while (--dwCurConnectReTryCount && m_hConnection == NULL);
  	return m_hConnection;
  }
 @@ -401,16 +400,16 @@ DWORD MraAvatarsHttpTransaction(HANDLE m_hConnection, DWORD dwRequestType, LPCST  	DWORD dwBuffSize = mir_snprintf(szBuff, SIZEOF(szBuff), "http://%s/%s/%s/%s", lpszHost, lpszDomain, lpszUser, lpszReqObj);
  	CMStringA szSelfVersionString = MraGetSelfVersionString();
 -	NETLIBHTTPHEADER nlbhHeaders[8] = {0};
 +	NETLIBHTTPHEADER nlbhHeaders[8] = { 0 };
  	nlbhHeaders[0].szName = "User-Agent";		 nlbhHeaders[0].szValue = (LPSTR)szSelfVersionString.c_str();
  	nlbhHeaders[1].szName = "Accept-Encoding"; nlbhHeaders[1].szValue = "deflate";
  	nlbhHeaders[2].szName = "Pragma";			 nlbhHeaders[2].szValue = "no-cache";
 -	nlbhHeaders[3].szName = "Connection";		 nlbhHeaders[3].szValue = (bUseKeepAliveConn)? "keep-alive":"close";
 +	nlbhHeaders[3].szName = "Connection";		 nlbhHeaders[3].szValue = (bUseKeepAliveConn) ? "keep-alive" : "close";
 -	NETLIBHTTPREQUEST nlhr = {0};
 +	NETLIBHTTPREQUEST nlhr = { 0 };
  	nlhr.cbSize = sizeof(nlhr);
  	nlhr.requestType = dwRequestType;
 -	nlhr.flags = (NLHRF_GENERATEHOST|NLHRF_SMARTREMOVEHOST|NLHRF_SMARTAUTHHEADER);
 +	nlhr.flags = (NLHRF_GENERATEHOST | NLHRF_SMARTREMOVEHOST | NLHRF_SMARTAUTHHEADER);
  	nlhr.szUrl = szBuff;
  	nlhr.headers = (NETLIBHTTPHEADER*)&nlbhHeaders;
  	nlhr.headersCount = 4;
 @@ -424,25 +423,25 @@ DWORD MraAvatarsHttpTransaction(HANDLE m_hConnection, DWORD dwRequestType, LPCST  		return GetLastError();
  	for (int i = 0; i < pnlhr->headersCount; i++) {
 -		if ( !_strnicmp(pnlhr->headers[i].szName, "Connection", 10)) {
 +		if (!_strnicmp(pnlhr->headers[i].szName, "Connection", 10)) {
  			if (pbKeepAlive)
  				*pbKeepAlive = !_strnicmp(pnlhr->headers[i].szValue, "keep-alive", 10);
  		}
 -		else if ( !_strnicmp(pnlhr->headers[i].szName, "Content-Type", 12)) {
 +		else if (!_strnicmp(pnlhr->headers[i].szName, "Content-Type", 12)) {
  			if (pdwFormat) {
  				for (DWORD j = 0; j < PA_FORMAT_MAX; j++) {
 -					if ( !_stricmp(pnlhr->headers[i].szValue, lpcszContentType[j])) {
 +					if (!_stricmp(pnlhr->headers[i].szValue, lpcszContentType[j])) {
  						*pdwFormat = j;
  						break;
  					}
  				}
  			}
  		}
 -		else if ( !_strnicmp(pnlhr->headers[i].szName, "Content-Length", 14)) {
 +		else if (!_strnicmp(pnlhr->headers[i].szName, "Content-Length", 14)) {
  			if (pdwAvatarSize)
  				*pdwAvatarSize = atol(pnlhr->headers[i].szValue);
  		}
 -		else if ( !_strnicmp(pnlhr->headers[i].szName, "Last-Modified", 13)) {
 +		else if (!_strnicmp(pnlhr->headers[i].szName, "Last-Modified", 13)) {
  			if (pitLastModifiedTime)
  				InternetTimeGetTime(pnlhr->headers[i].szValue, *pitLastModifiedTime);
  		}
 @@ -499,7 +498,7 @@ DWORD CMraProto::MraAvatarsGetFileName(HANDLE hAvatarsQueueHandle, HANDLE hConta  	MRA_AVATARS_QUEUE *pmraaqAvatarsQueue = (MRA_AVATARS_QUEUE*)hAvatarsQueueHandle;
  	TCHAR tszBase[MAX_PATH];
 -	mir_sntprintf(tszBase, SIZEOF(tszBase), _T("%s\\%s\\"), VARST( _T("%miranda_avatarcache%")), m_tszUserName);
 +	mir_sntprintf(tszBase, SIZEOF(tszBase), _T("%s\\%s\\"), VARST(_T("%miranda_avatarcache%")), m_tszUserName);
  	res = tszBase;
  	// some path in buff and free space for file name is avaible
 @@ -507,7 +506,7 @@ DWORD CMraProto::MraAvatarsGetFileName(HANDLE hAvatarsQueueHandle, HANDLE hConta  	if (dwFormat != PA_FORMAT_DEFAULT) {
  		CMStringW szEmail;
 -		if ( mraGetStringW(hContact, "e-mail", szEmail)) {
 +		if (mraGetStringW(hContact, "e-mail", szEmail)) {
  			szEmail.MakeLower();
  			res += szEmail + ProtoGetAvatarExtension(dwFormat);
  			return NO_ERROR;
 @@ -515,7 +514,7 @@ DWORD CMraProto::MraAvatarsGetFileName(HANDLE hAvatarsQueueHandle, HANDLE hConta  	}
  	else {
  		CMStringW szDefName;
 -		if ( !DB_GetStringW(NULL, MRA_AVT_SECT_NAME, "DefaultAvatarFileName", szDefName)) {
 +		if (!DB_GetStringW(NULL, MRA_AVT_SECT_NAME, "DefaultAvatarFileName", szDefName)) {
  			res += MRA_AVT_DEFAULT_AVT_FILENAME;
  			return NO_ERROR;
  		}
 @@ -545,9 +544,9 @@ DWORD CMraProto::MraAvatarsQueueGetAvatar(HANDLE hAvatarsQueueHandle, DWORD dwFl  			SystemTimeToFileTime(&stAvatarLastCheckTime, &ftExpireTime);
  			(*((DWORDLONG*)&ftExpireTime)) += (FILETIME_MINUTE*(DWORDLONG)db_get_dw(NULL, MRA_AVT_SECT_NAME, "CheckInterval", MRA_AVT_DEFAULT_CHK_INTERVAL));
 -			if ((*((DWORDLONG*)&ftExpireTime))>(*((DWORDLONG*)&ftCurrentTime)))
 -			if ( MraAvatarsGetFileName(hAvatarsQueueHandle, hContact, GetContactAvatarFormat(hContact, PA_FORMAT_DEFAULT), wszFileName) == NO_ERROR)
 -			if ( IsFileExist( wszFileName )) {
 +			if ((*((DWORDLONG*)&ftExpireTime)) > (*((DWORDLONG*)&ftCurrentTime)))
 +			if (MraAvatarsGetFileName(hAvatarsQueueHandle, hContact, GetContactAvatarFormat(hContact, PA_FORMAT_DEFAULT), wszFileName) == NO_ERROR)
 +			if (IsFileExist(wszFileName)) {
  				// файл с аватаром существует и не устарел/не было комманды обновлять(просто запрос имени)
  				if (lpszPath) {
  					if (db_get_b(NULL, MRA_AVT_SECT_NAME, "ReturnAbsolutePath", MRA_AVT_DEFAULT_RET_ABC_PATH))
 @@ -563,7 +562,7 @@ DWORD CMraProto::MraAvatarsQueueGetAvatar(HANDLE hAvatarsQueueHandle, DWORD dwFl  		}
  		if (bQueueAdd || (dwFlags & GAIF_FORCE))
 -		if ( !MraAvatarsQueueAdd(hAvatarsQueueHandle, dwFlags, hContact, pdwAvatarsQueueID)) {
 +		if (!MraAvatarsQueueAdd(hAvatarsQueueHandle, dwFlags, hContact, pdwAvatarsQueueID)) {
  			MraAvatarsSetContactTime(hContact, "AvatarLastCheckTime", NULL);
  			dwRetCode = GAIR_WAITFOR;
  		}
 @@ -575,10 +574,10 @@ DWORD CMraProto::MraAvatarsQueueGetAvatarSimple(HANDLE hAvatarsQueueHandle, DWOR  {
  	DWORD dwRetCode = GAIR_NOAVATAR;
 -	PROTO_AVATAR_INFORMATIONT pai = {0};
 +	PROTO_AVATAR_INFORMATIONT pai = { 0 };
  	pai.cbSize = sizeof(pai);
  	pai.hContact = hContact;
 -	if ((dwRetCode = MraAvatarsQueueGetAvatar(hAvatarsQueueHandle, dwFlags, hContact, NULL, (DWORD*)&pai.format, pai.filename )) == GAIR_SUCCESS ) {
 +	if ((dwRetCode = MraAvatarsQueueGetAvatar(hAvatarsQueueHandle, dwFlags, hContact, NULL, (DWORD*)&pai.format, pai.filename)) == GAIR_SUCCESS) {
  		// write owner avatar file name to DB
  		if (hContact == NULL)
  			CallService(MS_AV_REPORTMYAVATARCHANGED, (WPARAM)m_szModuleName, 0);
 @@ -645,18 +644,16 @@ INT_PTR CALLBACK MraAvatarsQueueDlgProcOpts(HWND hWndDlg, UINT msg, WPARAM wPara  	case WM_NOTIFY:
  		switch (((LPNMHDR)lParam)->code) {
  		case PSN_APPLY:
 -			{
 -				db_set_b(NULL, MRA_AVT_SECT_NAME, "Enable", IsDlgButtonChecked(hWndDlg, IDC_ENABLE));
 -				db_set_b(NULL, MRA_AVT_SECT_NAME, "DeleteAvtOnContactDelete", IsDlgButtonChecked(hWndDlg, IDC_DELETE_AVT_ON_CONTACT_DELETE));
 -				db_set_b(NULL, MRA_AVT_SECT_NAME, "ReturnAbsolutePath", IsDlgButtonChecked(hWndDlg, IDC_RETURN_ABC_PATH));
 -				db_set_dw(NULL, MRA_AVT_SECT_NAME, "CheckInterval", GetDlgItemInt(hWndDlg, IDC_UPD_CHECK_INTERVAL, NULL, FALSE));
 -				db_set_b(NULL, MRA_AVT_SECT_NAME, "UseKeepAliveConn", IsDlgButtonChecked(hWndDlg, IDC_USE_KEEPALIVE_CONN));
 -				db_set_dw(NULL, MRA_AVT_SECT_NAME, "ServerPort", GetDlgItemInt(hWndDlg, IDC_SERVERPORT, NULL, FALSE));
 -
 -				TCHAR szServer[MAX_PATH];
 -				GetDlgItemText(hWndDlg, IDC_SERVER, szServer, SIZEOF(szServer));
 -				db_set_ts(NULL, MRA_AVT_SECT_NAME, "Server", szServer);
 -			}
 +			db_set_b(NULL, MRA_AVT_SECT_NAME, "Enable", IsDlgButtonChecked(hWndDlg, IDC_ENABLE));
 +			db_set_b(NULL, MRA_AVT_SECT_NAME, "DeleteAvtOnContactDelete", IsDlgButtonChecked(hWndDlg, IDC_DELETE_AVT_ON_CONTACT_DELETE));
 +			db_set_b(NULL, MRA_AVT_SECT_NAME, "ReturnAbsolutePath", IsDlgButtonChecked(hWndDlg, IDC_RETURN_ABC_PATH));
 +			db_set_dw(NULL, MRA_AVT_SECT_NAME, "CheckInterval", GetDlgItemInt(hWndDlg, IDC_UPD_CHECK_INTERVAL, NULL, FALSE));
 +			db_set_b(NULL, MRA_AVT_SECT_NAME, "UseKeepAliveConn", IsDlgButtonChecked(hWndDlg, IDC_USE_KEEPALIVE_CONN));
 +			db_set_dw(NULL, MRA_AVT_SECT_NAME, "ServerPort", GetDlgItemInt(hWndDlg, IDC_SERVERPORT, NULL, FALSE));
 +
 +			TCHAR szServer[MAX_PATH];
 +			GetDlgItemText(hWndDlg, IDC_SERVER, szServer, SIZEOF(szServer));
 +			db_set_ts(NULL, MRA_AVT_SECT_NAME, "Server", szServer);
  			return TRUE;
  		}
  		break;
 @@ -673,9 +670,9 @@ DWORD CMraProto::MraAvatarsDeleteContactAvatarFile(HANDLE hAvatarsQueueHandle, H  	MRA_AVATARS_QUEUE *pmraaqAvatarsQueue = (MRA_AVATARS_QUEUE*)hAvatarsQueueHandle;
  	DWORD dwAvatarFormat = GetContactAvatarFormat(hContact, PA_FORMAT_UNKNOWN);
 -	if ( db_get_b(NULL, MRA_AVT_SECT_NAME, "DeleteAvtOnContactDelete", MRA_DELETE_AVT_ON_CONTACT_DELETE) && dwAvatarFormat != PA_FORMAT_DEFAULT) {
 +	if (db_get_b(NULL, MRA_AVT_SECT_NAME, "DeleteAvtOnContactDelete", MRA_DELETE_AVT_ON_CONTACT_DELETE) && dwAvatarFormat != PA_FORMAT_DEFAULT) {
  		CMStringW szFileName;
 -		if ( !MraAvatarsGetFileName(hAvatarsQueueHandle, hContact, dwAvatarFormat, szFileName))
 +		if (!MraAvatarsGetFileName(hAvatarsQueueHandle, hContact, dwAvatarFormat, szFileName))
  			return DeleteFile(szFileName);
  	}
  	return NO_ERROR;
 diff --git a/protocols/MRA/src/MraChat.cpp b/protocols/MRA/src/MraChat.cpp index 27573e70eb..c6363029ad 100644 --- a/protocols/MRA/src/MraChat.cpp +++ b/protocols/MRA/src/MraChat.cpp @@ -8,12 +8,12 @@ static LPWSTR lpwszStatuses[] = { L"Owners", L"Inviter", L"Visitors" };  void CMraProto::MraChatDllError()
  {
 -	MessageBox(NULL, TranslateT("CHAT plugin is required for conferences. Install it before chatting"), m_tszUserName, (MB_OK|MB_ICONWARNING));
 +	MessageBox(NULL, TranslateT("CHAT plugin is required for conferences. Install it before chatting"), m_tszUserName, (MB_OK | MB_ICONWARNING));
  }
  bool CMraProto::MraChatRegister()
  {
 -	if ( !ServiceExists(MS_GC_REGISTER))
 +	if (!ServiceExists(MS_GC_REGISTER))
  		return FALSE;
  	GCREGISTER gcr = { sizeof(gcr) };
 @@ -41,7 +41,7 @@ INT_PTR CMraProto::MraChatSessionNew(HANDLE hContact)  		gcw.ptszID = wszEMail;
  		gcw.ptszStatusbarText = _T("status bar");
  		gcw.dwItemData = (DWORD)hContact;
 -		if ( !CallServiceSync(MS_GC_NEWSESSION, NULL, (LPARAM)&gcw)) {
 +		if (!CallServiceSync(MS_GC_NEWSESSION, NULL, (LPARAM)&gcw)) {
  			GCDEST gcd = { m_szModuleName, wszEMail.c_str(), GC_EVENT_ADDGROUP };
  			GCEVENT gce = { sizeof(gce), &gcd };
  			for (int i = 0; i < SIZEOF(lpwszStatuses); i++) {
 @@ -189,7 +189,7 @@ int CMraProto::MraChatGcEventHook(WPARAM, LPARAM lParam)  	if (bChatExists) {
  		GCHOOK* gch = (GCHOOK*)lParam;
 -		if ( !_stricmp(gch->pDest->pszModule, m_szModuleName)) {
 +		if (!_stricmp(gch->pDest->pszModule, m_szModuleName)) {
  			switch (gch->pDest->iType) {
  			case GC_USER_MESSAGE:
  				if (gch->ptszText && lstrlen(gch->ptszText)) {
 @@ -211,7 +211,7 @@ int CMraProto::MraChatGcEventHook(WPARAM, LPARAM lParam)  				break;
  			case GC_USER_PRIVMESS:
 -				MraChatSendPrivateMessage( _T2A(gch->ptszUID));
 +				MraChatSendPrivateMessage(_T2A(gch->ptszUID));
  				break;
  			case GC_USER_LOGMENU:
 diff --git a/protocols/MRA/src/MraFilesQueue.cpp b/protocols/MRA/src/MraFilesQueue.cpp index a0f7abbc1e..f4cb2918ee 100644 --- a/protocols/MRA/src/MraFilesQueue.cpp +++ b/protocols/MRA/src/MraFilesQueue.cpp @@ -114,20 +114,18 @@ INT_PTR CALLBACK MraFilesQueueDlgProcOpts(HWND hWndDlg, UINT msg, WPARAM wParam,  	case WM_NOTIFY:
  		switch (((LPNMHDR)lParam)->code) {
  		case PSN_APPLY:
 -			{
 -				WCHAR szBuff[MAX_PATH];
 -
 -				ppro->setByte("FileSendEnableDirectConn", IsDlgButtonChecked(hWndDlg, IDC_FILE_SEND_ENABLE_DIRECT_CONN));
 -				ppro->setByte("FileSendNoOutConnOnRcv", IsDlgButtonChecked(hWndDlg, IDC_FILE_SEND_NOOUTCONNECTIONONRECEIVE));
 -				ppro->setByte("FileSendNoOutConnOnSend", IsDlgButtonChecked(hWndDlg, IDC_FILE_SEND_NOOUTCONNECTIONONSEND));
 -				ppro->setByte("FileSendIgnoryAdditionalPorts", IsDlgButtonChecked(hWndDlg, IDC_FILE_SEND_IGNORYADDITIONALPORTS));
 -				ppro->setByte("FileSendHideMyAddresses", IsDlgButtonChecked(hWndDlg, IDC_FILE_SEND_HIDE_MY_ADDRESSES));
 -				ppro->setByte("FileSendAddExtraAddresses", IsDlgButtonChecked(hWndDlg, IDC_FILE_SEND_ADD_EXTRA_ADDRESS));
 -				GetDlgItemText(hWndDlg, IDC_FILE_SEND_EXTRA_ADDRESS, szBuff, SIZEOF(szBuff));
 -				ppro->mraSetStringW(NULL, "FileSendExtraAddresses", szBuff);
 -				ppro->setDword("FileSendBlockSize", (DWORD)GetDlgItemInt(hWndDlg, IDC_FILE_SEND_BLOCK_SIZE, NULL, FALSE));
 -				ppro->setByte("FileSendEnableMRIMProxyCons", IsDlgButtonChecked(hWndDlg, IDC_FILE_SEND_ENABLE_MRIMPROXY_CONS));
 -			}
 +			ppro->setByte("FileSendEnableDirectConn", IsDlgButtonChecked(hWndDlg, IDC_FILE_SEND_ENABLE_DIRECT_CONN));
 +			ppro->setByte("FileSendNoOutConnOnRcv", IsDlgButtonChecked(hWndDlg, IDC_FILE_SEND_NOOUTCONNECTIONONRECEIVE));
 +			ppro->setByte("FileSendNoOutConnOnSend", IsDlgButtonChecked(hWndDlg, IDC_FILE_SEND_NOOUTCONNECTIONONSEND));
 +			ppro->setByte("FileSendIgnoryAdditionalPorts", IsDlgButtonChecked(hWndDlg, IDC_FILE_SEND_IGNORYADDITIONALPORTS));
 +			ppro->setByte("FileSendHideMyAddresses", IsDlgButtonChecked(hWndDlg, IDC_FILE_SEND_HIDE_MY_ADDRESSES));
 +			ppro->setByte("FileSendAddExtraAddresses", IsDlgButtonChecked(hWndDlg, IDC_FILE_SEND_ADD_EXTRA_ADDRESS));
 +
 +			WCHAR szBuff[MAX_PATH];
 +			GetDlgItemText(hWndDlg, IDC_FILE_SEND_EXTRA_ADDRESS, szBuff, SIZEOF(szBuff));
 +			ppro->mraSetStringW(NULL, "FileSendExtraAddresses", szBuff);
 +			ppro->setDword("FileSendBlockSize", (DWORD)GetDlgItemInt(hWndDlg, IDC_FILE_SEND_BLOCK_SIZE, NULL, FALSE));
 +			ppro->setByte("FileSendEnableMRIMProxyCons", IsDlgButtonChecked(hWndDlg, IDC_FILE_SEND_ENABLE_MRIMPROXY_CONS));
  			return TRUE;
  		}
  		break;
 @@ -159,14 +157,14 @@ DWORD MraFilesQueueInitialize(DWORD dwSendTimeOutInterval, HANDLE *phFilesQueueH  void MraFilesQueueDestroy(HANDLE hFilesQueueHandle)
  {
 -	if ( !hFilesQueueHandle)
 +	if (!hFilesQueueHandle)
  		return;
  	MRA_FILES_QUEUE *pmrafqFilesQueue = (MRA_FILES_QUEUE*)hFilesQueueHandle;
  	MRA_FILES_QUEUE_ITEM *dat;
  	{
  		mt_lock l(pmrafqFilesQueue);
 -		while ( ListMTItemGetFirst(pmrafqFilesQueue, NULL, (LPVOID*)&dat) == NO_ERROR)
 +		while (ListMTItemGetFirst(pmrafqFilesQueue, NULL, (LPVOID*)&dat) == NO_ERROR)
  			MraFilesQueueItemFree(dat);
  	}
  	ListMTDestroy(pmrafqFilesQueue);
 @@ -192,7 +190,7 @@ DWORD MraFilesQueueItemFindByID(HANDLE hFilesQueueHandle, DWORD dwIDRequest, MRA  			return 0;
  		}
  	}
 -		while (ListMTIteratorMoveNext(&lmtiIterator));
 +	while (ListMTIteratorMoveNext(&lmtiIterator));
  	return ERROR_NOT_FOUND;
  }
 @@ -200,7 +198,7 @@ DWORD MraFilesQueueItemFindByID(HANDLE hFilesQueueHandle, DWORD dwIDRequest, MRA  HANDLE MraFilesQueueItemProxyByID(HANDLE hFilesQueueHandle, DWORD dwIDRequest)
  {
  	MRA_FILES_QUEUE_ITEM *dat;
 -	if ( !MraFilesQueueItemFindByID(hFilesQueueHandle, dwIDRequest, &dat))
 +	if (!MraFilesQueueItemFindByID(hFilesQueueHandle, dwIDRequest, &dat))
  		return dat->hMraMrimProxyData;
  	return NULL;
 @@ -208,9 +206,9 @@ HANDLE MraFilesQueueItemProxyByID(HANDLE hFilesQueueHandle, DWORD dwIDRequest)  void MraFilesQueueItemFree(MRA_FILES_QUEUE_ITEM *dat)
  {
 - 	LIST_MT *plmtListMT = (LIST_MT*)dat->lpListMT;
 +	LIST_MT *plmtListMT = (LIST_MT*)dat->lpListMT;
 -	for (size_t i = 0;i<dat->dwFilesCount;i++)
 +	for (size_t i = 0; i < dat->dwFilesCount; i++)
  		mir_free(dat->pmfqfFiles[i].lpwszName);
  	mir_free(dat->pmfqfFiles);
 @@ -230,11 +228,9 @@ size_t CMraProto::MraFilesQueueGetLocalAddressesList(LPSTR lpszBuff, size_t dwBu  {
  	LPSTR lpszCurPos = lpszBuff;
 -	if (getByte("FileSendHideMyAddresses", MRA_DEF_FS_HIDE_MY_ADDRESSES))
 -	{// не выдаём врагу наш IP адрес!!! :)
 -		if (getByte("FileSendAddExtraAddresses", MRA_DEF_FS_ADD_EXTRA_ADDRESSES) == FALSE)
 -		{// только если не добавляем адрес роутера
 -			lpszCurPos += mir_snprintf(lpszCurPos, (dwBuffSize-((size_t)lpszCurPos-(size_t)lpszBuff)), MRA_FILES_NULL_ADDRR);
 +	if (getByte("FileSendHideMyAddresses", MRA_DEF_FS_HIDE_MY_ADDRESSES)) {// не выдаём врагу наш IP адрес!!! :)
 +		if (getByte("FileSendAddExtraAddresses", MRA_DEF_FS_ADD_EXTRA_ADDRESSES) == FALSE) {// только если не добавляем адрес роутера
 +			lpszCurPos += mir_snprintf(lpszCurPos, (dwBuffSize - ((size_t)lpszCurPos - (size_t)lpszBuff)), MRA_FILES_NULL_ADDRR);
  		}
  	}
  	else {// создаём список наших IP адресов
 @@ -246,14 +242,14 @@ size_t CMraProto::MraFilesQueueGetLocalAddressesList(LPSTR lpszBuff, size_t dwBu  		dwSelfExternalIP = ntohl(getDword("IP", 0));
  		if (dwSelfExternalIP) {
  			memmove(&btAddress, &dwSelfExternalIP, sizeof(DWORD));
 -			lpszCurPos += mir_snprintf(lpszCurPos, (dwBuffSize-((size_t)lpszCurPos-(size_t)lpszBuff)), "%lu.%lu.%lu.%lu:%lu;", btAddress[0], btAddress[1], btAddress[2], btAddress[3], dwPort);
 +			lpszCurPos += mir_snprintf(lpszCurPos, (dwBuffSize - ((size_t)lpszCurPos - (size_t)lpszBuff)), "%lu.%lu.%lu.%lu:%lu;", btAddress[0], btAddress[1], btAddress[2], btAddress[3], dwPort);
  		}
 -		CHAR szHostName[MAX_PATH] = {0};
 +		CHAR szHostName[MAX_PATH] = { 0 };
  		if (gethostname(szHostName, SIZEOF(szHostName)) == 0)
  		if ((sh = gethostbyname((LPSTR)&szHostName))) {
  			while (sh->h_addr_list[dwAdapter]) {
 -				lpszCurPos += mir_snprintf(lpszCurPos, (dwBuffSize-((size_t)lpszCurPos-(size_t)lpszBuff)), "%s:%lu;", inet_ntoa(*((struct in_addr*)sh->h_addr_list[dwAdapter])), dwPort);
 +				lpszCurPos += mir_snprintf(lpszCurPos, (dwBuffSize - ((size_t)lpszCurPos - (size_t)lpszBuff)), "%s:%lu;", inet_ntoa(*((struct in_addr*)sh->h_addr_list[dwAdapter])), dwPort);
  				dwAdapter++;
  			}
  		}
 @@ -262,14 +258,14 @@ size_t CMraProto::MraFilesQueueGetLocalAddressesList(LPSTR lpszBuff, size_t dwBu  	CMStringA szHostName;
  	if (getByte("FileSendAddExtraAddresses", MRA_DEF_FS_ADD_EXTRA_ADDRESSES))// добавляем произвольный адрес
  	if (mraGetStringA(NULL, "FileSendExtraAddresses", szHostName))
 -		lpszCurPos += mir_snprintf(lpszCurPos, (dwBuffSize-((size_t)lpszCurPos-(size_t)lpszBuff)), "%s:%lu;", szHostName.c_str(), dwPort);
 +		lpszCurPos += mir_snprintf(lpszCurPos, (dwBuffSize - ((size_t)lpszCurPos - (size_t)lpszBuff)), "%s:%lu;", szHostName.c_str(), dwPort);
  	return lpszCurPos - lpszBuff;
  }
  DWORD CMraProto::MraFilesQueueAccept(HANDLE hFilesQueueHandle, DWORD dwIDRequest, LPCWSTR lpwszPath, size_t dwPathSize)
  {
 -	if ( !hFilesQueueHandle || !lpwszPath || !dwPathSize)
 +	if (!hFilesQueueHandle || !lpwszPath || !dwPathSize)
  		return ERROR_INVALID_HANDLE;
  	MRA_FILES_QUEUE *pmrafqFilesQueue = (MRA_FILES_QUEUE*)hFilesQueueHandle;
 @@ -283,11 +279,10 @@ DWORD CMraProto::MraFilesQueueAccept(HANDLE hFilesQueueHandle, DWORD dwIDRequest  		dat->dwPathSize = dwPathSize;
  		memmove(dat->lpwszPath, lpwszPath, (dwPathSize*sizeof(WCHAR)));
 -		if ( (*(WCHAR*)(dat->lpwszPath+(dat->dwPathSize-1))) != '\\')
 -		{// add slash at the end if needed
 -			(*(WCHAR*)(dat->lpwszPath+dat->dwPathSize)) = '\\';
 +		if ((*(WCHAR*)(dat->lpwszPath + (dat->dwPathSize - 1))) != '\\') {// add slash at the end if needed
 +			(*(WCHAR*)(dat->lpwszPath + dat->dwPathSize)) = '\\';
  			dat->dwPathSize++;
 -			(*(WCHAR*)(dat->lpwszPath+dat->dwPathSize)) = 0;
 +			(*(WCHAR*)(dat->lpwszPath + dat->dwPathSize)) = 0;
  		}
  		pmftpp->hFilesQueueHandle = hFilesQueueHandle;
 @@ -342,9 +337,9 @@ DWORD CMraProto::MraFilesQueueStartMrimProxy(HANDLE hFilesQueueHandle, DWORD dwI  	MRA_FILES_QUEUE_ITEM *dat;
  	mt_lock l(pmrafqFilesQueue);
 -	if ( !MraFilesQueueItemFindByID(hFilesQueueHandle, dwIDRequest, &dat))
 -		if (dat->bSending == FALSE)
 -			SetEvent(dat->hWaitHandle);// cancel wait incomming connection
 +	if (!MraFilesQueueItemFindByID(hFilesQueueHandle, dwIDRequest, &dat))
 +	if (dat->bSending == FALSE)
 +		SetEvent(dat->hWaitHandle);// cancel wait incomming connection
  	return 0;
  }
 @@ -367,7 +362,7 @@ DWORD MraFilesQueueFree(HANDLE hFilesQueueHandle, DWORD dwIDRequest)  			return 0;
  		}
  	}
 -		while (ListMTIteratorMoveNext(&lmtiIterator));
 +	while (ListMTIteratorMoveNext(&lmtiIterator));
  	return ERROR_NOT_FOUND;
  }
 @@ -395,7 +390,7 @@ DWORD CMraProto::MraFilesQueueSendMirror(HANDLE hFilesQueueHandle, DWORD dwIDReq  bool CMraProto::MraFilesQueueHandCheck(HANDLE m_hConnection, MRA_FILES_QUEUE_ITEM *dat)
  {
  	if (m_hConnection && dat) {
 -		BYTE btBuff[((MAX_EMAIL_LEN*2)+(sizeof(MRA_FT_HELLO)*2)+8)] = {0};
 +		BYTE btBuff[((MAX_EMAIL_LEN * 2) + (sizeof(MRA_FT_HELLO)* 2) + 8)] = { 0 };
  		size_t dwBuffSize;
  		CMStringA szEmail, szEmailMy;
 @@ -404,28 +399,28 @@ bool CMraProto::MraFilesQueueHandCheck(HANDLE m_hConnection, MRA_FILES_QUEUE_ITE  		if (dat->bSending == FALSE) {
  			// receiving
 -			dwBuffSize = mir_snprintf((LPSTR)btBuff, SIZEOF(btBuff), "%s %s", MRA_FT_HELLO, szEmailMy.c_str())+1;
 +			dwBuffSize = mir_snprintf((LPSTR)btBuff, SIZEOF(btBuff), "%s %s", MRA_FT_HELLO, szEmailMy.c_str()) + 1;
  			if (dwBuffSize == Netlib_Send(m_hConnection, (LPSTR)btBuff, (int)dwBuffSize, 0)) {
  				// my email sended
  				ProtoBroadcastAck(dat->hContact, ACKTYPE_FILE, ACKRESULT_INITIALISING, (HANDLE)dat->dwIDRequest, 0);
  				dwBuffSize = Netlib_Recv(m_hConnection, (LPSTR)btBuff, sizeof(btBuff), 0);
 -				if ((szEmail.GetLength()+sizeof(MRA_FT_HELLO)+1) == dwBuffSize) {
 +				if ((szEmail.GetLength() + sizeof(MRA_FT_HELLO)+1) == dwBuffSize) {
  					// email received
 -					mir_snprintf(((LPSTR)btBuff+dwBuffSize), (SIZEOF(btBuff)-dwBuffSize), "%s %s", MRA_FT_HELLO, szEmail);
 -					if ( !_memicmp(btBuff, btBuff+dwBuffSize, dwBuffSize))
 +					mir_snprintf(((LPSTR)btBuff + dwBuffSize), (SIZEOF(btBuff) - dwBuffSize), "%s %s", MRA_FT_HELLO, szEmail);
 +					if (!_memicmp(btBuff, btBuff + dwBuffSize, dwBuffSize))
  						return true;
  				}
  			}
  		}
  		else {// sending
  			dwBuffSize = Netlib_Recv(m_hConnection, (LPSTR)btBuff, sizeof(btBuff), 0);
 -			if ((szEmail.GetLength()+sizeof(MRA_FT_HELLO)+1) == dwBuffSize) {
 +			if ((szEmail.GetLength() + sizeof(MRA_FT_HELLO)+1) == dwBuffSize) {
  				// email received
  				ProtoBroadcastAck(dat->hContact, ACKTYPE_FILE, ACKRESULT_INITIALISING, (HANDLE)dat->dwIDRequest, 0);
 -				mir_snprintf(((LPSTR)btBuff+dwBuffSize), (SIZEOF(btBuff)-dwBuffSize), "%s %s", MRA_FT_HELLO, szEmail);
 -				if ( !_memicmp(btBuff, btBuff+dwBuffSize, dwBuffSize)) {
 +				mir_snprintf(((LPSTR)btBuff + dwBuffSize), (SIZEOF(btBuff) - dwBuffSize), "%s %s", MRA_FT_HELLO, szEmail);
 +				if (!_memicmp(btBuff, btBuff + dwBuffSize, dwBuffSize)) {
  					// email verified
 -					dwBuffSize = (mir_snprintf((LPSTR)btBuff, SIZEOF(btBuff), "%s %s", MRA_FT_HELLO, szEmailMy.c_str())+1);
 +					dwBuffSize = (mir_snprintf((LPSTR)btBuff, SIZEOF(btBuff), "%s %s", MRA_FT_HELLO, szEmailMy.c_str()) + 1);
  					if (dwBuffSize == Netlib_Send(m_hConnection, (LPSTR)btBuff, dwBuffSize, 0))
  						return true;
  				}
 @@ -444,10 +439,9 @@ HANDLE CMraProto::MraFilesQueueConnectOut(MRA_FILES_QUEUE_ITEM *dat)  		BOOL bFiltering = FALSE, bIsHTTPSProxyUsed = IsHTTPSProxyUsed(m_hNetlibUser);
  		DWORD dwLocalPort = 0, dwConnectReTryCount, dwCurConnectReTryCount;
  		size_t dwAddrCount;
 -		NETLIBOPENCONNECTION nloc = {0};
 +		NETLIBOPENCONNECTION nloc = { 0 };
 -		if (getByte("FileSendIgnoryAdditionalPorts", MRA_DEF_FS_IGNORY_ADDITIONAL_PORTS) || bIsHTTPSProxyUsed)
 -		{// фильтруем порты для одного IP, вместо 3 будем коннектится только к одному
 +		if (getByte("FileSendIgnoryAdditionalPorts", MRA_DEF_FS_IGNORY_ADDITIONAL_PORTS) || bIsHTTPSProxyUsed) {// фильтруем порты для одного IP, вместо 3 будем коннектится только к одному
  			if (bIsHTTPSProxyUsed)
  				dwLocalPort = MRA_SERVER_PORT_HTTPS;
  			else if ((dwLocalPort = getWord("ServerPort", MRA_DEFAULT_SERVER_PORT)) == MRA_SERVER_PORT_STANDART_NLB)
 @@ -470,12 +464,12 @@ HANDLE CMraProto::MraFilesQueueConnectOut(MRA_FILES_QUEUE_ITEM *dat)  			dwConnectReTryCount = getDword("ConnectReTryCountFileSend", MRA_DEFAULT_CONN_RETRY_COUNT_FILES);
  			nloc.cbSize = sizeof(nloc);
  			nloc.flags = NLOCF_V2;
 -			nloc.timeout = getDword("TimeOutConnectFileSend", ((MRA_TIMEOUT_DIRECT_CONN-1)/(dwAddrCount*dwConnectReTryCount)));// -1 сек чтобы был запас
 +			nloc.timeout = getDword("TimeOutConnectFileSend", ((MRA_TIMEOUT_DIRECT_CONN - 1) / (dwAddrCount*dwConnectReTryCount)));// -1 сек чтобы был запас
  			if (nloc.timeout < MRA_TIMEOUT_CONN_MIN) nloc.timeout = MRA_TIMEOUT_CONN_MIN;
  			if (nloc.timeout > MRA_TIMEOUT_CONN_MAX) nloc.timeout = MRA_TIMEOUT_CONN_MAX;
  			// Set up the sockaddr structure
 -			for (size_t i = 0;i<dat->malAddrList.dwAddrCount;i++) {
 +			for (size_t i = 0; i < dat->malAddrList.dwAddrCount; i++) {
  				if (dwLocalPort == dat->malAddrList.pMailAddress[i].dwPort || bFiltering == FALSE) {
  					ProtoBroadcastAck(dat->hContact, ACKTYPE_FILE, ACKRESULT_CONNECTING, (HANDLE)dat->dwIDRequest, 0);
 @@ -486,7 +480,7 @@ HANDLE CMraProto::MraFilesQueueConnectOut(MRA_FILES_QUEUE_ITEM *dat)  					do {
  						dat->m_hConnection = (HANDLE)CallService(MS_NETLIB_OPENCONNECTION, (WPARAM)m_hNetlibUser, (LPARAM)&nloc);
  					}
 -						while (--dwCurConnectReTryCount && dat->m_hConnection == NULL);
 +					while (--dwCurConnectReTryCount && dat->m_hConnection == NULL);
  					if (dat->m_hConnection) {
  						ProtoBroadcastAck(dat->hContact, ACKTYPE_FILE, ACKRESULT_CONNECTED, (HANDLE)dat->dwIDRequest, 0);
 @@ -513,10 +507,10 @@ LPWSTR GetFileNameFromFullPathW(LPWSTR lpwszFullPath, size_t dwFullPathSize)  {
  	LPWSTR lpwszFileName = lpwszFullPath, lpwszCurPos;
 -	lpwszCurPos = (lpwszFullPath+dwFullPathSize);
 -	for (; lpwszCurPos>lpwszFullPath; lpwszCurPos--) {
 +	lpwszCurPos = (lpwszFullPath + dwFullPathSize);
 +	for (; lpwszCurPos > lpwszFullPath; lpwszCurPos--) {
  		if ((*lpwszCurPos) == '\\') {
 -			lpwszFileName = (lpwszCurPos+1);
 +			lpwszFileName = (lpwszCurPos + 1);
  			break;
  		}
  	}
 @@ -527,17 +521,17 @@ HANDLE CMraProto::MraFilesQueueConnectIn(MRA_FILES_QUEUE_ITEM *dat)  {
  	if (!dat)
  		return NULL;
 -	if ( !InterlockedExchangeAdd((volatile LONG*)&dat->bIsWorking, 0))
 +	if (!InterlockedExchangeAdd((volatile LONG*)&dat->bIsWorking, 0))
  		return NULL;
  	CMStringA szEmail;
  	if (mraGetStringA(dat->hContact, "e-mail", szEmail)) {
 -		CHAR szAddrList[2048] = {0};
 +		CHAR szAddrList[2048] = { 0 };
  		size_t dwAddrListSize;
  		// копируем адреса в соответствии с правилами и начинаем слушать порт
  		if (getByte("FileSendEnableDirectConn", MRA_DEF_FS_ENABLE_DIRECT_CONN)) {
 -			NETLIBBIND nlbBind = {0};
 +			NETLIBBIND nlbBind = { 0 };
  			nlbBind.cbSize = sizeof(nlbBind);
  			nlbBind.pfnNewConnectionV2 = MraFilesQueueConnectionReceived;
 @@ -573,16 +567,16 @@ HANDLE CMraProto::MraFilesQueueConnectIn(MRA_FILES_QUEUE_ITEM *dat)  				LPWSTR lpwszFiles, lpwszCurPos;
  				size_t dwFilesSize;
 -				dwFilesSize = ((MAX_PATH*2)*dat->dwFilesCount);
 +				dwFilesSize = ((MAX_PATH * 2)*dat->dwFilesCount);
  				lpwszFiles = (LPWSTR)mir_calloc((dwFilesSize*sizeof(WCHAR)));
  				if (lpwszFiles) {
  					lpwszCurPos = lpwszFiles;
 -					for (size_t i = 0;i < dat->dwFilesCount;i++) {
 +					for (size_t i = 0; i < dat->dwFilesCount; i++) {
  						MRA_FILES_QUEUE_FILE &p = dat->pmfqfFiles[i];
 -						lpwszCurPos += mir_sntprintf(lpwszCurPos, (dwFilesSize-((size_t)lpwszCurPos-(size_t)lpwszFiles)), L"%s;%I64u;",
 +						lpwszCurPos += mir_sntprintf(lpwszCurPos, (dwFilesSize - ((size_t)lpwszCurPos - (size_t)lpwszFiles)), L"%s;%I64u;",
  							GetFileNameFromFullPathW(p.lpwszName, p.dwNameLen), p.dwSize);
  					}
 -					dwFilesSize = (lpwszCurPos-lpwszFiles);// size in WCHARs
 +					dwFilesSize = (lpwszCurPos - lpwszFiles);// size in WCHARs
  					if (dat->hMraMrimProxyData) {
  						// устанавливаем данные для майловской прокси, если она разрешена
 @@ -610,13 +604,14 @@ void MraFilesQueueConnectionReceived(HANDLE hNewConnection, DWORD dwRemoteIP, vo  		MRA_FILES_QUEUE_ITEM *dat = (MRA_FILES_QUEUE_ITEM*)pExtra;
  		ProtoBroadcastAck(dat->ppro->m_szModuleName, dat->hContact, ACKTYPE_FILE, ACKRESULT_CONNECTED, (HANDLE)dat->dwIDRequest, 0);
 -		if ( dat->ppro->MraFilesQueueHandCheck(hNewConnection, dat)) { // связь установленная с тем кем нужно
 +		if (dat->ppro->MraFilesQueueHandCheck(hNewConnection, dat)) { // связь установленная с тем кем нужно
  			dat->m_hConnection = hNewConnection;
  			ProtoBroadcastAck(dat->ppro->m_szModuleName, dat->hContact, ACKTYPE_FILE, ACKRESULT_CONNECTED, (HANDLE)dat->dwIDRequest, 0);
  			dat->ppro->setDword(dat->hContact, "OldIP", dat->ppro->getDword(dat->hContact, "IP", 0));
  			dat->ppro->setDword(dat->hContact, "IP", dwRemoteIP);
  			SetEvent(dat->hWaitHandle);
 -		}else {// кажется кто то не туда подключилися :)
 +		}
 +		else {// кажется кто то не туда подключилися :)
  			ProtoBroadcastAck(dat->ppro->m_szModuleName, dat->hContact, ACKTYPE_FILE, ACKRESULT_LISTENING, (HANDLE)dat->dwIDRequest, 0);
  			Netlib_CloseHandle(hNewConnection);
  		}
 @@ -634,7 +629,7 @@ DWORD CMraProto::MraFilesQueueAddReceive(HANDLE hFilesQueueHandle, DWORD dwFlags  	MRA_FILES_QUEUE *pmrafqFilesQueue = (MRA_FILES_QUEUE*)hFilesQueueHandle;
  	MRA_FILES_QUEUE_ITEM *dat = (MRA_FILES_QUEUE_ITEM*)mir_calloc(sizeof(MRA_FILES_QUEUE_ITEM)+sizeof(LPSTR)+64);
 -	if ( !dat)
 +	if (!dat)
  		return GetLastError();
  	WCHAR szBuff[MAX_PATH];
 @@ -680,25 +675,25 @@ DWORD CMraProto::MraFilesQueueAddReceive(HANDLE hFilesQueueHandle, DWORD dwFlags  		dat->dwFilesCount++;
  	}
 -	dat->pmfqfFiles = (MRA_FILES_QUEUE_FILE*)mir_realloc(dat->pmfqfFiles, (sizeof(MRA_FILES_QUEUE_FILE)*(dat->dwFilesCount+4)));
 +	dat->pmfqfFiles = (MRA_FILES_QUEUE_FILE*)mir_realloc(dat->pmfqfFiles, (sizeof(MRA_FILES_QUEUE_FILE)*(dat->dwFilesCount + 4)));
 -	dwMemSize = (((dat->dwFilesCount+4)*64)+(dwFileNameTotalSize*sizeof(WCHAR))+(szAddresses.GetLength()*sizeof(WCHAR))+128);
 +	dwMemSize = (((dat->dwFilesCount + 4) * 64) + (dwFileNameTotalSize*sizeof(WCHAR)) + (szAddresses.GetLength()*sizeof(WCHAR)) + 128);
  	dat->pwszFilesList = (LPWSTR)mir_calloc(dwMemSize);
  	dat->pwszDescription = (LPWSTR)mir_calloc(dwMemSize);
  	LPWSTR lpwszDelimiter = dat->pwszFilesList;
  	LPWSTR lpwszCurrentItem = dat->pwszDescription;
  	StrFormatByteSizeW(dat->dwFilesTotalSize, szBuff, SIZEOF(szBuff));
 -	lpwszCurrentItem += mir_sntprintf(lpwszCurrentItem, ((dwMemSize-((size_t)lpwszCurrentItem-(size_t)dat->pwszDescription))/sizeof(WCHAR)), L"%I64u Files (%s)\r\n", dat->dwFilesCount, szBuff);
 +	lpwszCurrentItem += mir_sntprintf(lpwszCurrentItem, ((dwMemSize - ((size_t)lpwszCurrentItem - (size_t)dat->pwszDescription)) / sizeof(WCHAR)), L"%I64u Files (%s)\r\n", dat->dwFilesCount, szBuff);
  	// description + filesnames
  	for (size_t i = 0; i < dat->dwFilesCount; i++) {
 -		lpwszDelimiter += mir_sntprintf(lpwszDelimiter, ((dwMemSize-((size_t)lpwszDelimiter-(size_t)dat->pwszFilesList))/sizeof(WCHAR)), L"%s", dat->pmfqfFiles[i].lpwszName);
 +		lpwszDelimiter += mir_sntprintf(lpwszDelimiter, ((dwMemSize - ((size_t)lpwszDelimiter - (size_t)dat->pwszFilesList)) / sizeof(WCHAR)), L"%s", dat->pmfqfFiles[i].lpwszName);
  		StrFormatByteSizeW(dat->pmfqfFiles[i].dwSize, szBuff, SIZEOF(szBuff));
 -		lpwszCurrentItem += mir_sntprintf(lpwszCurrentItem, ((dwMemSize-((size_t)lpwszCurrentItem-(size_t)dat->pwszDescription))/sizeof(WCHAR)), L"%s - %s\r\n", dat->pmfqfFiles[i].lpwszName, szBuff);
 +		lpwszCurrentItem += mir_sntprintf(lpwszCurrentItem, ((dwMemSize - ((size_t)lpwszCurrentItem - (size_t)dat->pwszDescription)) / sizeof(WCHAR)), L"%s - %s\r\n", dat->pmfqfFiles[i].lpwszName, szBuff);
  	}
 -	lpwszCurrentItem += MultiByteToWideChar(MRA_CODE_PAGE, 0, szAddresses, szAddresses.GetLength(), lpwszCurrentItem, ((dwMemSize-((size_t)lpwszCurrentItem-(size_t)dat->pwszDescription))/sizeof(WCHAR)));
 +	lpwszCurrentItem += MultiByteToWideChar(MRA_CODE_PAGE, 0, szAddresses, szAddresses.GetLength(), lpwszCurrentItem, ((dwMemSize - ((size_t)lpwszCurrentItem - (size_t)dat->pwszDescription)) / sizeof(WCHAR)));
  	*lpwszCurrentItem = 0;
  	MraAddrListGetFromBuff(szAddresses, &dat->malAddrList);
 @@ -724,12 +719,11 @@ void CMraProto::MraFilesQueueRecvThreadProc(LPVOID lpParameter)  {
  	DWORD dwRetErrorCode = NO_ERROR;
 -	if (lpParameter)
 -	{
 +	if (lpParameter) {
  		MRA_FILES_QUEUE *pmrafqFilesQueue = (MRA_FILES_QUEUE*)((MRA_FILES_THREADPROC_PARAMS*)lpParameter)->hFilesQueueHandle;
  		MRA_FILES_QUEUE_ITEM *dat = ((MRA_FILES_THREADPROC_PARAMS*)lpParameter)->dat;
 -		WCHAR wszFileName[MAX_FILEPATH] = {0};
 +		WCHAR wszFileName[MAX_FILEPATH] = { 0 };
  		WCHAR szErrorText[2048];
  		BYTE btBuff[BUFF_SIZE_RCV];
  		BOOL bContinue, bFailed, bOK, bConnected;
 @@ -737,8 +731,8 @@ void CMraProto::MraFilesQueueRecvThreadProc(LPVOID lpParameter)  		HANDLE hFile;
  		size_t i, dwBuffSizeUsed;
  		LARGE_INTEGER liFileSize;
 -		NETLIBSELECT nls = {0};
 -		PROTOFILETRANSFERSTATUS pfts = {0};
 +		NETLIBSELECT nls = { 0 };
 +		PROTOFILETRANSFERSTATUS pfts = { 0 };
  		mir_free(lpParameter);
 @@ -747,7 +741,7 @@ void CMraProto::MraFilesQueueRecvThreadProc(LPVOID lpParameter)  		nls.cbSize = sizeof(nls);
  		pfts.cbSize = sizeof(pfts);
  		pfts.hContact = dat->hContact;
 -		pfts.flags = (PFTS_RECEIVING|PFTS_UNICODE);//		pfts.sending = dat->bSending;	//true if sending, false if receiving
 +		pfts.flags = (PFTS_RECEIVING | PFTS_UNICODE);//		pfts.sending = dat->bSending;	//true if sending, false if receiving
  		//pfts.files;
  		pfts.totalFiles = dat->dwFilesCount;
  		//pfts.currentFileNumber = 0;
 @@ -759,21 +753,18 @@ void CMraProto::MraFilesQueueRecvThreadProc(LPVOID lpParameter)  		//pfts.currentFileProgress;
  		//pfts.currentFileTime;  //as seconds since 1970
 -		if (MraFilesQueueConnectOut(dat))
 -		{
 +		if (MraFilesQueueConnectOut(dat)) {
  			bConnected = TRUE;
 -		}else {
 -			if (MraFilesQueueConnectIn(dat))
 -			{
 +		}
 +		else {
 +			if (MraFilesQueueConnectIn(dat)) {
  				bConnected = TRUE;
 -			}else {
 -				if (InterlockedExchangeAdd((volatile LONG*)&dat->bIsWorking, 0))
 -				{
 +			}
 +			else {
 +				if (InterlockedExchangeAdd((volatile LONG*)&dat->bIsWorking, 0)) {
  					ProtoBroadcastAck(dat->hContact, ACKRESULT_CONNECTPROXY, ACKRESULT_CONNECTED, (HANDLE)dat->dwIDRequest, 0);
 -					if (MraMrimProxyConnect(dat->hMraMrimProxyData, &dat->m_hConnection) == NO_ERROR)
 -					{// подключились к прокси, проверяем та ли сессия (ещё раз, на этот раз сами)
 -						if (MraFilesQueueHandCheck(dat->m_hConnection, dat))
 -						{// связь установленная с тем кем нужно// dat->bSending
 +					if (MraMrimProxyConnect(dat->hMraMrimProxyData, &dat->m_hConnection) == NO_ERROR) {// подключились к прокси, проверяем та ли сессия (ещё раз, на этот раз сами)
 +						if (MraFilesQueueHandCheck(dat->m_hConnection, dat)) {// связь установленная с тем кем нужно// dat->bSending
  							ProtoBroadcastAck(dat->hContact, ACKTYPE_FILE, ACKRESULT_CONNECTED, (HANDLE)dat->dwIDRequest, 0);
  							bConnected = TRUE;
  						}
 @@ -782,23 +773,21 @@ void CMraProto::MraFilesQueueRecvThreadProc(LPVOID lpParameter)  			}
  		}
 -		if (bConnected)
 -		{// email verified
 +		if (bConnected) {// email verified
  			bFailed = FALSE;
 -			for (i = 0;i<dat->dwFilesCount;i++)
 -			{// receiving files
 +			for (i = 0; i < dat->dwFilesCount; i++) {// receiving files
  				pfts.currentFileNumber = i;
  				pfts.wszCurrentFile = wszFileName;
  				pfts.currentFileSize = dat->pmfqfFiles[i].dwSize;
  				pfts.currentFileProgress = 0;
  				//pfts.currentFileTime;  //as seconds since 1970
 -				if ((dat->dwPathSize+dat->pmfqfFiles[i].dwNameLen)<SIZEOF(wszFileName))
 -				{
 +				if ((dat->dwPathSize + dat->pmfqfFiles[i].dwNameLen) < SIZEOF(wszFileName)) {
  					memmove(wszFileName, dat->lpwszPath, (dat->dwPathSize*sizeof(WCHAR)));
 -					memmove((wszFileName+dat->dwPathSize), dat->pmfqfFiles[i].lpwszName, ((dat->pmfqfFiles[i].dwNameLen+1)*sizeof(WCHAR)));
 -					wszFileName[dat->dwPathSize+dat->pmfqfFiles[i].dwNameLen] = 0;
 -				}else {
 +					memmove((wszFileName + dat->dwPathSize), dat->pmfqfFiles[i].lpwszName, ((dat->pmfqfFiles[i].dwNameLen + 1)*sizeof(WCHAR)));
 +					wszFileName[dat->dwPathSize + dat->pmfqfFiles[i].dwNameLen] = 0;
 +				}
 +				else {
  					dwRetErrorCode = ERROR_BAD_PATHNAME;
  					ShowFormattedErrorMessage(L"Receive files: error", dwRetErrorCode);
  					bFailed = TRUE;
 @@ -813,36 +802,31 @@ void CMraProto::MraFilesQueueRecvThreadProc(LPVOID lpParameter)  				//dwBuffSizeUsed = (mir_snprintf((LPSTR)btBuff, SIZEOF(btBuff), "%s %S", MRA_FT_GET_FILE, dat->pmfqfFiles[i].lpwszName)+1);
  				memmove(btBuff, MRA_FT_GET_FILE, sizeof(MRA_FT_GET_FILE));
  				btBuff[(sizeof(MRA_FT_GET_FILE)-1)] = ' ';
 -				dwBuffSizeUsed = sizeof(MRA_FT_GET_FILE)+WideCharToMultiByte(MRA_CODE_PAGE, 0, dat->pmfqfFiles[i].lpwszName, dat->pmfqfFiles[i].dwNameLen, (LPSTR)(btBuff+sizeof(MRA_FT_GET_FILE)), (SIZEOF(btBuff)-sizeof(MRA_FT_GET_FILE)), NULL, NULL);
 +				dwBuffSizeUsed = sizeof(MRA_FT_GET_FILE)+WideCharToMultiByte(MRA_CODE_PAGE, 0, dat->pmfqfFiles[i].lpwszName, dat->pmfqfFiles[i].dwNameLen, (LPSTR)(btBuff + sizeof(MRA_FT_GET_FILE)), (SIZEOF(btBuff) - sizeof(MRA_FT_GET_FILE)), NULL, NULL);
  				btBuff[dwBuffSizeUsed] = 0;
  				dwBuffSizeUsed++;
 -				if (dwBuffSizeUsed == Netlib_Send(dat->m_hConnection, (LPSTR)btBuff, dwBuffSizeUsed, 0))
 -				{// file request sended
 +				if (dwBuffSizeUsed == Netlib_Send(dat->m_hConnection, (LPSTR)btBuff, dwBuffSizeUsed, 0)) {// file request sended
  					hFile = CreateFileW(wszFileName, GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
 -					if (hFile != INVALID_HANDLE_VALUE)
 -					{// file opened/created, pre allocating disk space, for best perfomance
 +					if (hFile != INVALID_HANDLE_VALUE) {// file opened/created, pre allocating disk space, for best perfomance
  						bOK = FALSE;
  						liFileSize.QuadPart = (LONGLONG)dat->pmfqfFiles[i].dwSize;
  						if (SetFilePointerEx(hFile, liFileSize, NULL, FILE_BEGIN))
 -						if (SetEndOfFile(hFile))
 -						{
 +						if (SetEndOfFile(hFile)) {
  							liFileSize.QuadPart = 0;
  							bOK = SetFilePointerEx(hFile, liFileSize, NULL, FILE_BEGIN);
  						}
 -						if (bOK)
 -						{// disk space pre allocated
 +						if (bOK) {// disk space pre allocated
  							bOK = FALSE;
  							bContinue = TRUE;
  							dwUpdateTimeNext = GetTickCount();
 -							nls.dwTimeout = (1000*getDword("TimeOutReceiveFileData", MRA_DEF_FS_TIMEOUT_RECV));
 +							nls.dwTimeout = (1000 * getDword("TimeOutReceiveFileData", MRA_DEF_FS_TIMEOUT_RECV));
  							nls.hReadConns[0] = dat->m_hConnection;
  							ProtoBroadcastAck(dat->hContact, ACKTYPE_FILE, ACKRESULT_DATA, (HANDLE)dat->dwIDRequest, (LPARAM)&pfts);
 -							while (bContinue)
 -							{
 +							while (bContinue) {
  								switch (CallService(MS_NETLIB_SELECT, 0, (LPARAM)&nls)) {
  								case SOCKET_ERROR:
  								case 0:// Time out
 @@ -852,31 +836,29 @@ void CMraProto::MraFilesQueueRecvThreadProc(LPVOID lpParameter)  									break;
  								case 1:
  									dwReceived = Netlib_Recv(dat->m_hConnection, (LPSTR)&btBuff, SIZEOF(btBuff), 0);
 -									if (dwReceived == 0 || dwReceived == SOCKET_ERROR)
 -									{
 +									if (dwReceived == 0 || dwReceived == SOCKET_ERROR) {
  										dwRetErrorCode = GetLastError();
  										ShowFormattedErrorMessage(L"Receive files: error on receive file data", dwRetErrorCode);
  										bContinue = FALSE;
 -									}else {
 -										if (WriteFile(hFile, (LPVOID)&btBuff, dwReceived, &dwReceived, NULL))
 -										{
 +									}
 +									else {
 +										if (WriteFile(hFile, (LPVOID)&btBuff, dwReceived, &dwReceived, NULL)) {
  											pfts.currentFileProgress += dwReceived;
  											pfts.totalProgress += dwReceived;
  											// progress updates
  											dwUpdateTimeCur = GetTickCount();
 -											if (dwUpdateTimeNext <= dwUpdateTimeCur || pfts.currentFileProgress >= dat->pmfqfFiles[i].dwSize)
 -											{// we update it
 -												dwUpdateTimeNext = dwUpdateTimeCur+MRA_FILES_QUEUE_PROGRESS_INTERVAL;
 +											if (dwUpdateTimeNext <= dwUpdateTimeCur || pfts.currentFileProgress >= dat->pmfqfFiles[i].dwSize) {// we update it
 +												dwUpdateTimeNext = dwUpdateTimeCur + MRA_FILES_QUEUE_PROGRESS_INTERVAL;
  												ProtoBroadcastAck(dat->hContact, ACKTYPE_FILE, ACKRESULT_DATA, (HANDLE)dat->dwIDRequest, (LPARAM)&pfts);
 -												if (pfts.currentFileProgress >= dat->pmfqfFiles[i].dwSize)
 -												{// file received
 +												if (pfts.currentFileProgress >= dat->pmfqfFiles[i].dwSize) {// file received
  													bOK = TRUE;
  													bContinue = FALSE;
  												}
  											}
 -										}else {// err on write file
 +										}
 +										else {// err on write file
  											dwRetErrorCode = GetLastError();
  											ShowFormattedErrorMessage(L"Receive files: cant write file data, error", dwRetErrorCode);
  											bContinue = FALSE;
 @@ -885,27 +867,29 @@ void CMraProto::MraFilesQueueRecvThreadProc(LPVOID lpParameter)  									break;
  								}
  							}// end while
 -						}else {// err allocating file disk space
 +						}
 +						else {// err allocating file disk space
  							dwRetErrorCode = GetLastError();
  							mir_sntprintf(szErrorText, SIZEOF(szErrorText), TranslateT("Receive files: can't allocate disk space for file, size %lu bytes, error"), dat->pmfqfFiles[i].dwSize);
  							ShowFormattedErrorMessage(szErrorText, dwRetErrorCode);
  						}
  						CloseHandle(hFile);
 -						if (bOK == FALSE)
 -						{// file recv failed
 +						if (bOK == FALSE) {// file recv failed
  							DeleteFileW(wszFileName);
  							bFailed = TRUE;
  							break;
  						}
 -					}else {// err on open file
 +					}
 +					else {// err on open file
  						dwRetErrorCode = GetLastError();
  						mir_sntprintf(szErrorText, SIZEOF(szErrorText), TranslateT("Receive files: can't open file %s, error"), wszFileName);
  						ShowFormattedErrorMessage(szErrorText, dwRetErrorCode);
  						bFailed = TRUE;
  						break;
  					}
 -				}else {// err on send request for file
 +				}
 +				else {// err on send request for file
  					dwRetErrorCode = GetLastError();
  					mir_sntprintf(szErrorText, SIZEOF(szErrorText), TranslateT("Receive files: request for file %s not sent, error"), dat->pmfqfFiles[i].lpwszName);
  					ShowFormattedErrorMessage(szErrorText, NO_ERROR);
 @@ -937,12 +921,12 @@ void CMraProto::MraFilesQueueRecvThreadProc(LPVOID lpParameter)  DWORD CMraProto::MraFilesQueueAddSend(HANDLE hFilesQueueHandle, DWORD dwFlags, HANDLE hContact, LPWSTR *plpwszFiles, size_t dwFilesCount, DWORD *pdwIDRequest)
  {
 -	if ( !hFilesQueueHandle)
 +	if (!hFilesQueueHandle)
  		return ERROR_INVALID_HANDLE;
  	MRA_FILES_QUEUE *pmrafqFilesQueue = (MRA_FILES_QUEUE*)hFilesQueueHandle;
  	MRA_FILES_QUEUE_ITEM *dat = (MRA_FILES_QUEUE_ITEM*)mir_calloc(sizeof(MRA_FILES_QUEUE_ITEM)+sizeof(LPSTR)+64);
 -	if ( !dat)
 +	if (!dat)
  		return GetLastError();
  	ULARGE_INTEGER uliFileSize;
 @@ -956,7 +940,7 @@ DWORD CMraProto::MraFilesQueueAddSend(HANDLE hFilesQueueHandle, DWORD dwFlags, H  	dat->hContact = hContact;
  	if (getByte("FileSendEnableMRIMProxyCons", MRA_DEF_FS_ENABLE_MRIM_PROXY_CONS)) dat->hMraMrimProxyData = MraMrimProxyCreate();
  	dat->dwFilesCount = dwFilesCount;
 -	dat->pmfqfFiles = (MRA_FILES_QUEUE_FILE*)mir_calloc((sizeof(MRA_FILES_QUEUE_FILE)*(dat->dwFilesCount+1)));
 +	dat->pmfqfFiles = (MRA_FILES_QUEUE_FILE*)mir_calloc((sizeof(MRA_FILES_QUEUE_FILE)*(dat->dwFilesCount + 1)));
  	dat->dwFilesTotalSize = 0;
  	for (size_t i = 0; i < dat->dwFilesCount; i++) {
 @@ -992,14 +976,14 @@ void CMraProto::MraFilesQueueSendThreadProc(LPVOID lpParameter)  {
  	DWORD dwRetErrorCode = NO_ERROR;
 -	if ( !lpParameter)
 +	if (!lpParameter)
  		return;
  	MRA_FILES_QUEUE *pmrafqFilesQueue = (MRA_FILES_QUEUE*)((MRA_FILES_THREADPROC_PARAMS*)lpParameter)->hFilesQueueHandle;
  	MRA_FILES_QUEUE_ITEM *dat = ((MRA_FILES_THREADPROC_PARAMS*)lpParameter)->dat;
  	mir_free(lpParameter);
 -	CHAR szFileName[MAX_FILEPATH] = {0};
 +	CHAR szFileName[MAX_FILEPATH] = { 0 };
  	WCHAR szErrorText[2048];
  	BYTE btBuff[BUFF_SIZE_RCV];
  	BOOL bFailed = TRUE, bOK, bConnected = FALSE;
 @@ -1007,17 +991,17 @@ void CMraProto::MraFilesQueueSendThreadProc(LPVOID lpParameter)  	size_t i, j, dwBuffSizeUsed = 0;
  	LPWSTR lpwszFileName;
 -	PROTOFILETRANSFERSTATUS pfts = {0};
 +	PROTOFILETRANSFERSTATUS pfts = { 0 };
  	pfts.cbSize = sizeof(pfts);
  	pfts.hContact = dat->hContact;
 -	pfts.flags = (PFTS_SENDING|PFTS_UNICODE);// pfts.sending = dat->bSending;	//true if sending, false if receiving
 +	pfts.flags = (PFTS_SENDING | PFTS_UNICODE);// pfts.sending = dat->bSending;	//true if sending, false if receiving
  	pfts.totalFiles = dat->dwFilesCount;
  	pfts.totalBytes = dat->dwFilesTotalSize;
  	pfts.wszWorkingDir = dat->lpwszPath;
  	dwSendBlockSize = getDword("FileSendBlockSize", MRA_DEFAULT_FILE_SEND_BLOCK_SIZE);
 -	if (dwSendBlockSize>SIZEOF(btBuff)) dwSendBlockSize = SIZEOF(btBuff);
 -	if (dwSendBlockSize<512) dwSendBlockSize = MRA_DEFAULT_FILE_SEND_BLOCK_SIZE;
 +	if (dwSendBlockSize > SIZEOF(btBuff)) dwSendBlockSize = SIZEOF(btBuff);
 +	if (dwSendBlockSize < 512) dwSendBlockSize = MRA_DEFAULT_FILE_SEND_BLOCK_SIZE;
  	if (MraFilesQueueConnectIn(dat))
  		bConnected = TRUE;
 @@ -1044,7 +1028,7 @@ void CMraProto::MraFilesQueueSendThreadProc(LPVOID lpParameter)  			dwBuffSizeUsed = 0;
  			while (TRUE) {
 -				dwReceived = Netlib_Recv(dat->m_hConnection, ((LPSTR)btBuff+dwBuffSizeUsed), (SIZEOF(btBuff)-dwBuffSizeUsed), 0);
 +				dwReceived = Netlib_Recv(dat->m_hConnection, ((LPSTR)btBuff + dwBuffSizeUsed), (SIZEOF(btBuff) - dwBuffSizeUsed), 0);
  				if (dwReceived == 0 || dwReceived == SOCKET_ERROR) { // err on receive file name to send
  					dwRetErrorCode = GetLastError();
  					ShowFormattedErrorMessage(L"Send files: file send request not received, error", dwRetErrorCode);
 @@ -1053,7 +1037,7 @@ void CMraProto::MraFilesQueueSendThreadProc(LPVOID lpParameter)  				}
  				else {
  					dwBuffSizeUsed += dwReceived;
 -					if (MemoryFindByte((dwBuffSizeUsed-dwReceived), btBuff, dwBuffSizeUsed, 0))
 +					if (MemoryFindByte((dwBuffSizeUsed - dwReceived), btBuff, dwBuffSizeUsed, 0))
  						break;
  				}
  			}// end while (file name passible received)*/
 @@ -1063,21 +1047,21 @@ void CMraProto::MraFilesQueueSendThreadProc(LPVOID lpParameter)  			// ...received
  			if (dwBuffSizeUsed > (sizeof(MRA_FT_GET_FILE)+1)) {// file name received
 -				if ( !_memicmp(btBuff, MRA_FT_GET_FILE, sizeof(MRA_FT_GET_FILE)-1)) {
 +				if (!_memicmp(btBuff, MRA_FT_GET_FILE, sizeof(MRA_FT_GET_FILE)-1)) {
  					// MRA_FT_GET_FILE verified
  					bFailed = TRUE;
 -					for (j = 0;j<dat->dwFilesCount;j++) {
 +					for (j = 0; j < dat->dwFilesCount; j++) {
  						lpwszFileName = GetFileNameFromFullPathW(dat->pmfqfFiles[j].lpwszName, dat->pmfqfFiles[j].dwNameLen);
 -						szFileName[WideCharToMultiByte(MRA_CODE_PAGE, 0, lpwszFileName, (dat->pmfqfFiles[j].dwNameLen-(lpwszFileName-dat->pmfqfFiles[j].lpwszName)), szFileName, SIZEOF(szFileName), NULL, NULL)] = 0;
 +						szFileName[WideCharToMultiByte(MRA_CODE_PAGE, 0, lpwszFileName, (dat->pmfqfFiles[j].dwNameLen - (lpwszFileName - dat->pmfqfFiles[j].lpwszName)), szFileName, SIZEOF(szFileName), NULL, NULL)] = 0;
 -						if ( !_memicmp(btBuff+sizeof(MRA_FT_GET_FILE), szFileName, dwBuffSizeUsed-(sizeof(MRA_FT_GET_FILE)+1))) {
 +						if (!_memicmp(btBuff + sizeof(MRA_FT_GET_FILE), szFileName, dwBuffSizeUsed - (sizeof(MRA_FT_GET_FILE)+1))) {
  							bFailed = FALSE;
  							break;
  						}
  					}
  					if (bFailed == FALSE) {
 -						HANDLE hFile = CreateFileW(dat->pmfqfFiles[j].lpwszName, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, (FILE_ATTRIBUTE_NORMAL|FILE_FLAG_SEQUENTIAL_SCAN), NULL);
 +						HANDLE hFile = CreateFileW(dat->pmfqfFiles[j].lpwszName, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, (FILE_ATTRIBUTE_NORMAL | FILE_FLAG_SEQUENTIAL_SCAN), NULL);
  						if (hFile != INVALID_HANDLE_VALUE) {
  							bOK = FALSE;
  							dwUpdateTimeNext = GetTickCount();
 @@ -1100,7 +1084,7 @@ void CMraProto::MraFilesQueueSendThreadProc(LPVOID lpParameter)  										// progress updates
  										dwUpdateTimeCur = GetTickCount();
  										if (dwUpdateTimeNext <= dwUpdateTimeCur || pfts.currentFileProgress >= dat->pmfqfFiles[j].dwSize) { // we update it
 -											dwUpdateTimeNext = dwUpdateTimeCur+MRA_FILES_QUEUE_PROGRESS_INTERVAL;
 +											dwUpdateTimeNext = dwUpdateTimeCur + MRA_FILES_QUEUE_PROGRESS_INTERVAL;
  											ProtoBroadcastAck(dat->hContact, ACKTYPE_FILE, ACKRESULT_DATA, (HANDLE)dat->dwIDRequest, (LPARAM)&pfts);
 @@ -1129,7 +1113,7 @@ void CMraProto::MraFilesQueueSendThreadProc(LPVOID lpParameter)  								break;
  							}
  						}
 -						else {// err on open file
 +						else { // err on open file
  							dwRetErrorCode = GetLastError();
  							mir_sntprintf(szErrorText, SIZEOF(szErrorText), TranslateT("Send files: can't open file %s, error"), dat->pmfqfFiles[j].lpwszName);
  							ShowFormattedErrorMessage(szErrorText, dwRetErrorCode);
 @@ -1138,19 +1122,19 @@ void CMraProto::MraFilesQueueSendThreadProc(LPVOID lpParameter)  						}
  					}
  					else {
 -						mir_sntprintf(szErrorText, SIZEOF(szErrorText), TranslateT("Send files: requested file: %S - not found in send files list."), (((LPSTR)btBuff)+sizeof(MRA_FT_GET_FILE)));
 +						mir_sntprintf(szErrorText, SIZEOF(szErrorText), TranslateT("Send files: requested file: %S - not found in send files list."), (((LPSTR)btBuff) + sizeof(MRA_FT_GET_FILE)));
  						ShowFormattedErrorMessage(szErrorText, NO_ERROR);
  						bFailed = TRUE;
  						break;
  					}
  				}
 -				else {// err on receive, trash
 +				else { // err on receive, trash
  					ShowFormattedErrorMessage(L"Send files: bad file send request - invalid header", NO_ERROR);
  					bFailed = TRUE;
  					break;
  				}
  			}
 -			else {// bad file name or trash
 +			else { // bad file name or trash
  				ShowFormattedErrorMessage(L"Send files: bad file send request - to small packet", NO_ERROR);
  				bFailed = TRUE;
  				break;
 diff --git a/protocols/MRA/src/MraPlaces.h b/protocols/MRA/src/MraPlaces.h index cbcd3d1567..ef85c025e7 100644 --- a/protocols/MRA/src/MraPlaces.h +++ b/protocols/MRA/src/MraPlaces.h @@ -4,8 +4,8 @@  #pragma once
 -#define lpwszOther TEXT("Другое")
 -//static LPWSTR lpwszOther = TEXT("Другое");
 +#define lpwszOther _T("Другое")
 +//static LPWSTR lpwszOther = _T("Другое");
  typedef struct
 @@ -63,1603 +63,1603 @@ typedef struct  static const MRA_PLACE mrapPlaces[] =
  {
 -	{24, 	0, 	0, 	TEXT("Россия")},
 -	{81, 	0, 	0, 	TEXT("Азербайджан")},
 -	{82, 	0, 	0, 	TEXT("Армения")},
 -	{97, 	0, 	0, 	TEXT("Афганистан")},
 -	{96, 	0, 	0, 	TEXT("Бангладеш")},
 -	{99, 	0, 	0, 	TEXT("Бахрейн")},
 -	{100, 	0, 	0, 	TEXT("Бруней-Даруссалам")},
 -	{101, 	0, 	0, 	TEXT("Бутан")},
 -	{102, 	0, 	0, 	TEXT("Вьетнам")},
 -	{83, 	0, 	0, 	TEXT("Грузия")},
 -	{86, 	0, 	0, 	TEXT("Израиль")},
 -	{95, 	0, 	0, 	TEXT("Индия")},
 -	{103, 	0, 	0, 	TEXT("Индонезия")},
 -	{79, 	0, 	0, 	TEXT("Иордания")},
 -	{85, 	0, 	0, 	TEXT("Ирак")},
 -	{87, 	0, 	0, 	TEXT("Иран")},
 -	{104, 	0, 	0, 	TEXT("Йемен")},
 -	{84, 	0, 	0, 	TEXT("Казахстан")},
 -	{105, 	0, 	0, 	TEXT("Камбоджа")},
 -	{106, 	0, 	0, 	TEXT("Катар")},
 -	{107, 	0, 	0, 	TEXT("Кипр")},
 -	{92, 	0, 	0, 	TEXT("Киргизия (Кыргызстан)")},
 -	{76, 	0, 	0, 	TEXT("Китай")},
 -	{3215, 	0, 	0, 	TEXT("Кокосовые острова (Австр.)")},
 -	{29, 	0, 	0, 	TEXT("Корея (КНДР)")},
 -	{108, 	0, 	0, 	TEXT("Корея")},
 -	{88, 	0, 	0, 	TEXT("Кувейт")},
 -	{109, 	0, 	0, 	TEXT("Лаос")},
 -	{110, 	0, 	0, 	TEXT("Ливан")},
 -	{111, 	0, 	0, 	TEXT("Малайзия")},
 -	{112, 	0, 	0, 	TEXT("Мальдивы")},
 -	{113, 	0, 	0, 	TEXT("Монголия")},
 -	{114, 	0, 	0, 	TEXT("Мьянма")},
 -	{115, 	0, 	0, 	TEXT("Непал")},
 -	{116, 	0, 	0, 	TEXT("Объединенные Арабские Эмираты")},
 -	{117, 	0, 	0, 	TEXT("Оман")},
 -	{3216, 	0, 	0, 	TEXT("Остров Рождества (Австр.)")},
 -	{122, 	0, 	0, 	TEXT("Пакистан")},
 -	{89, 	0, 	0, 	TEXT("Палестина")},
 -	{94, 	0, 	0, 	TEXT("Саудовская Аравия")},
 -	{118, 	0, 	0, 	TEXT("Сингапур")},
 -	{78, 	0, 	0, 	TEXT("Сирия")},
 -	{91, 	0, 	0, 	TEXT("Таджикистан")},
 -	{119, 	0, 	0, 	TEXT("Таиланд")},
 -	{120, 	0, 	0, 	TEXT("Тайвань")},
 -	{132, 	0, 	0, 	TEXT("Тимор")},
 -	{90, 	0, 	0, 	TEXT("Туркмения")},
 -	{77, 	0, 	0, 	TEXT("Турция")},
 -	{93, 	0, 	0, 	TEXT("Узбекистан")},
 -	{121, 	0, 	0, 	TEXT("Филиппины")},
 -	{98, 	0, 	0, 	TEXT("Шри Ланка")},
 -	{75, 	0, 	0, 	TEXT("Япония")},
 -	{123, 	0, 	0, 	TEXT("Австралия")},
 -	{454, 	0, 	0, 	TEXT("Американское Самоа")},
 -	{124, 	0, 	0, 	TEXT("Вануату")},
 -	{453, 	0, 	0, 	TEXT("Гуам (США)")},
 -	{126, 	0, 	0, 	TEXT("Кирибати")},
 -	{127, 	0, 	0, 	TEXT("Маршалловы Острова")},
 -	{128, 	0, 	0, 	TEXT("Микронезия (Федеративные Штаты Микронезии)")},
 -	{129, 	0, 	0, 	TEXT("Науру")},
 -	{3220, 	0, 	0, 	TEXT("Ниуэ (Н.Зел.)")},
 -	{130, 	0, 	0, 	TEXT("Новая Зеландия")},
 -	{3218, 	0, 	0, 	TEXT("Новая Каледония (Фр.)")},
 -	{3221, 	0, 	0, 	TEXT("Острова Кука (Н.Зел.)")},
 -	{3230, 	0, 	0, 	TEXT("Острова Херд и Макдональд (Австр.)")},
 -	{131, 	0, 	0, 	TEXT("Палау")},
 -	{133, 	0, 	0, 	TEXT("Папуа - Новая Гвинея")},
 -	{3222, 	0, 	0, 	TEXT("Питкерн (Брит.)")},
 -	{125, 	0, 	0, 	TEXT("Самоа")},
 -	{3219, 	0, 	0, 	TEXT("Сев. Марианские острова (США)")},
 -	{134, 	0, 	0, 	TEXT("Соломоновы Острова")},
 -	{3223, 	0, 	0, 	TEXT("Токелау (Н.Зел.)")},
 -	{135, 	0, 	0, 	TEXT("Тонга")},
 -	{136, 	0, 	0, 	TEXT("Тувалу")},
 -	{3224, 	0, 	0, 	TEXT("Уоллис и Футуна острова (Фр.)")},
 -	{137, 	0, 	0, 	TEXT("Фиджи")},
 -	{3226, 	0, 	0, 	TEXT("Французская Полинезия")},
 -	{3225, 	0, 	0, 	TEXT("Французские Южные территории")},
 -	{138, 	0, 	0, 	TEXT("Канада")},
 -	{139, 	0, 	0, 	TEXT("США")},
 -	{3200, 	0, 	0, 	TEXT("Ангилья (Брит.)")},
 -	{140, 	0, 	0, 	TEXT("Антигуа и Барбуда")},
 -	{141, 	0, 	0, 	TEXT("Аргентина")},
 -	{3202, 	0, 	0, 	TEXT("Аруба (Нид.)")},
 -	{142, 	0, 	0, 	TEXT("Багамы")},
 -	{143, 	0, 	0, 	TEXT("Барбадос")},
 -	{146, 	0, 	0, 	TEXT("Белиз")},
 -	{3203, 	0, 	0, 	TEXT("Бермуды (Брит.)")},
 -	{144, 	0, 	0, 	TEXT("Боливия")},
 -	{145, 	0, 	0, 	TEXT("Бразилия")},
 -	{147, 	0, 	0, 	TEXT("Венесуэла")},
 -	{3204, 	0, 	0, 	TEXT("Виргинские острова (Брит.)")},
 -	{452, 	0, 	0, 	TEXT("Виргинские острова (США)")},
 -	{149, 	0, 	0, 	TEXT("Гаити")},
 -	{148, 	0, 	0, 	TEXT("Гайана")},
 -	{3205, 	0, 	0, 	TEXT("Гваделупа (Фр.)")},
 -	{173, 	0, 	0, 	TEXT("Гватемала")},
 -	{150, 	0, 	0, 	TEXT("Гондурас")},
 -	{151, 	0, 	0, 	TEXT("Гренада")},
 -	{152, 	0, 	0, 	TEXT("Гренландия (Дат.)")},
 -	{153, 	0, 	0, 	TEXT("Доминика")},
 -	{154, 	0, 	0, 	TEXT("Доминиканская Республика")},
 -	{155, 	0, 	0, 	TEXT("Колумбия")},
 -	{156, 	0, 	0, 	TEXT("Коста-Рика")},
 -	{157, 	0, 	0, 	TEXT("Куба")},
 -	{3208, 	0, 	0, 	TEXT("Мартиника (Фр.)")},
 -	{158, 	0, 	0, 	TEXT("Мексика")},
 -	{3209, 	0, 	0, 	TEXT("Монтсеррат (Брит)")},
 -	{3201, 	0, 	0, 	TEXT("Нидерландские Антилы")},
 -	{159, 	0, 	0, 	TEXT("Никарагуа")},
 -	{3207, 	0, 	0, 	TEXT("Остров Кайман (Брит.)")},
 -	{3211, 	0, 	0, 	TEXT("Острова Теркс и Кайкос (Брит.)")},
 -	{160, 	0, 	0, 	TEXT("Панама")},
 -	{161, 	0, 	0, 	TEXT("Парагвай")},
 -	{162, 	0, 	0, 	TEXT("Перу")},
 -	{163, 	0, 	0, 	TEXT("Сальвадор")},
 -	{164, 	0, 	0, 	TEXT("Сент-Винсент и Гренадины")},
 -	{165, 	0, 	0, 	TEXT("Сент-Китс и Невис")},
 -	{166, 	0, 	0, 	TEXT("Сент-Люсия")},
 -	{3210, 	0, 	0, 	TEXT("Сент-Пьер и Микелон (Фр.)")},
 -	{167, 	0, 	0, 	TEXT("Суринам")},
 -	{168, 	0, 	0, 	TEXT("Тринидат и Тобаго")},
 -	{169, 	0, 	0, 	TEXT("Уругвай")},
 -	{3212, 	0, 	0, 	TEXT("Фолклендские острова (Брит.)")},
 -	{3206, 	0, 	0, 	TEXT("Французская Гвиана")},
 -	{170, 	0, 	0, 	TEXT("Чили")},
 -	{171, 	0, 	0, 	TEXT("Эквадор")},
 -	{3213, 	0, 	0, 	TEXT("Юж. Джорджия и Юж. Сандвичевы о-ва (Брит.)")},
 -	{172, 	0, 	0, 	TEXT("Ямайка")},
 -	{174, 	0, 	0, 	TEXT("Алжир")},
 -	{175, 	0, 	0, 	TEXT("Ангола")},
 -	{176, 	0, 	0, 	TEXT("Бенин")},
 -	{177, 	0, 	0, 	TEXT("Ботсвана")},
 -	{3228, 	0, 	0, 	TEXT("Британская территория в Индийском океане")},
 -	{178, 	0, 	0, 	TEXT("Буркина-Фасо")},
 -	{179, 	0, 	0, 	TEXT("Бурунди")},
 -	{180, 	0, 	0, 	TEXT("Габон")},
 -	{181, 	0, 	0, 	TEXT("Гамбия")},
 -	{182, 	0, 	0, 	TEXT("Гана")},
 -	{183, 	0, 	0, 	TEXT("Гвинея")},
 -	{184, 	0, 	0, 	TEXT("Гвинея-Бисау")},
 -	{185, 	0, 	0, 	TEXT("Джибути")},
 -	{186, 	0, 	0, 	TEXT("Египет")},
 -	{187, 	0, 	0, 	TEXT("Замбия")},
 -	{3198, 	0, 	0, 	TEXT("Зап. Сахара")},
 -	{23, 	0, 	0, 	TEXT("Зимбабве")},
 -	{188, 	0, 	0, 	TEXT("Кабо-Верде")},
 -	{189, 	0, 	0, 	TEXT("Камерун")},
 -	{190, 	0, 	0, 	TEXT("Кения")},
 -	{191, 	0, 	0, 	TEXT("Коморы")},
 -	{193, 	0, 	0, 	TEXT("Конго (Заир)")},
 -	{192, 	0, 	0, 	TEXT("Конго")},
 -	{194, 	0, 	0, 	TEXT("Кот-д`Ивуар")},
 -	{195, 	0, 	0, 	TEXT("Лесото")},
 -	{196, 	0, 	0, 	TEXT("Либерия")},
 -	{197, 	0, 	0, 	TEXT("Ливия")},
 -	{198, 	0, 	0, 	TEXT("Маврикий")},
 -	{199, 	0, 	0, 	TEXT("Мавритания")},
 -	{200, 	0, 	0, 	TEXT("Мадагаскар")},
 -	{3229, 	0, 	0, 	TEXT("Майотт (Фр.)")},
 -	{201, 	0, 	0, 	TEXT("Малави")},
 -	{202, 	0, 	0, 	TEXT("Мали")},
 -	{203, 	0, 	0, 	TEXT("Марокко")},
 -	{204, 	0, 	0, 	TEXT("Мозамбик")},
 -	{205, 	0, 	0, 	TEXT("Намибия")},
 -	{206, 	0, 	0, 	TEXT("Нигер")},
 -	{207, 	0, 	0, 	TEXT("Нигерия")},
 -	{3227, 	0, 	0, 	TEXT("Остров Буве (Норв.)")},
 -	{3197, 	0, 	0, 	TEXT("Реюньон (Фр.)")},
 -	{208, 	0, 	0, 	TEXT("Руанда")},
 -	{209, 	0, 	0, 	TEXT("Сан-Томе и Принсипи")},
 -	{210, 	0, 	0, 	TEXT("Свазиленд")},
 -	{3199, 	0, 	0, 	TEXT("Святая Елена (Брит.)")},
 -	{211, 	0, 	0, 	TEXT("Сейшелы")},
 -	{212, 	0, 	0, 	TEXT("Сенегал")},
 -	{213, 	0, 	0, 	TEXT("Сомали")},
 -	{214, 	0, 	0, 	TEXT("Судан")},
 -	{215, 	0, 	0, 	TEXT("Сьерра-Леоне")},
 -	{216, 	0, 	0, 	TEXT("Танзания")},
 -	{217, 	0, 	0, 	TEXT("Того")},
 -	{218, 	0, 	0, 	TEXT("Тунис")},
 -	{219, 	0, 	0, 	TEXT("Уганда")},
 -	{220, 	0, 	0, 	TEXT("Центральноафриканская Республика")},
 -	{222, 	0, 	0, 	TEXT("Чад")},
 -	{223, 	0, 	0, 	TEXT("Экваториальная Гвинея")},
 -	{221, 	0, 	0, 	TEXT("Эритрея")},
 -	{224, 	0, 	0, 	TEXT("Эфиопия")},
 -	{225, 	0, 	0, 	TEXT("Южно-Африканская Республика (ЮАР)")},
 -	{39, 	0, 	0, 	TEXT("Украина")},
 -	{40, 	0, 	0, 	TEXT("Австрия")},
 -	{32, 	0, 	0, 	TEXT("Албания")},
 -	{33, 	0, 	0, 	TEXT("Андорра")},
 -	{340, 	0, 	0, 	TEXT("Белоруссия")},
 -	{38, 	0, 	0, 	TEXT("Бельгия")},
 -	{41, 	0, 	0, 	TEXT("Болгария")},
 -	{42, 	0, 	0, 	TEXT("Босния и Герцеговина")},
 -	{43, 	0, 	0, 	TEXT("Ватикан")},
 -	{45, 	0, 	0, 	TEXT("Великобритания")},
 -	{44, 	0, 	0, 	TEXT("Венгрия")},
 -	{46, 	0, 	0, 	TEXT("Германия")},
 -	{3193, 	0, 	0, 	TEXT("Гернси (Брит.)")},
 -	{47, 	0, 	0, 	TEXT("Гибралтар (Брит.)")},
 -	{48, 	0, 	0, 	TEXT("Греция")},
 -	{49, 	0, 	0, 	TEXT("Дания")},
 -	{3194, 	0, 	0, 	TEXT("Джерси (Брит.)")},
 -	{50, 	0, 	0, 	TEXT("Ирландия")},
 -	{51, 	0, 	0, 	TEXT("Исландия")},
 -	{34, 	0, 	0, 	TEXT("Испания")},
 -	{52, 	0, 	0, 	TEXT("Италия")},
 -	{53, 	0, 	0, 	TEXT("Латвия")},
 -	{54, 	0, 	0, 	TEXT("Литва")},
 -	{55, 	0, 	0, 	TEXT("Лихтенштейн")},
 -	{56, 	0, 	0, 	TEXT("Люксембург")},
 -	{57, 	0, 	0, 	TEXT("Македония")},
 -	{58, 	0, 	0, 	TEXT("Мальта")},
 -	{59, 	0, 	0, 	TEXT("Молдавия")},
 -	{36, 	0, 	0, 	TEXT("Монако")},
 -	{60, 	0, 	0, 	TEXT("Нидерланды")},
 -	{61, 	0, 	0, 	TEXT("Норвегия")},
 -	{3195, 	0, 	0, 	TEXT("Остров Мэн (Брит.)")},
 -	{62, 	0, 	0, 	TEXT("Польша")},
 -	{35, 	0, 	0, 	TEXT("Португалия")},
 -	{63, 	0, 	0, 	TEXT("Румыния")},
 -	{64, 	0, 	0, 	TEXT("Сан-Марино")},
 -	{74, 	0, 	0, 	TEXT("Сербия и Черногория")},
 -	{65, 	0, 	0, 	TEXT("Словакия")},
 -	{66, 	0, 	0, 	TEXT("Словения")},
 -	{67, 	0, 	0, 	TEXT("Фарерские о-ва (Дания)")},
 -	{68, 	0, 	0, 	TEXT("Финляндия")},
 -	{37, 	0, 	0, 	TEXT("Франция")},
 -	{69, 	0, 	0, 	TEXT("Хорватия")},
 -	{70, 	0, 	0, 	TEXT("Чехия")},
 -	{71, 	0, 	0, 	TEXT("Швейцария")},
 -	{72, 	0, 	0, 	TEXT("Швеция")},
 -	{3196, 	0, 	0, 	TEXT("Шпицберген (Норв.)")},
 -	{73, 	0, 	0, 	TEXT("Эстония")},
 -	{24, 	25, 	0, 	TEXT("Москва")},
 -	{24, 	226, 	0, 	TEXT("Санкт-Петербург")},
 -	{24, 	233, 	0, 	TEXT("Саха (Якутия)")},
 -	{24, 	232, 	0, 	TEXT("Приморский край")},
 -	{24, 	235, 	0, 	TEXT("Хабаровский край")},
 -	{24, 	227, 	0, 	TEXT("Амурская обл.")},
 -	{24, 	229, 	0, 	TEXT("Камчатская обл.")},
 -	{24, 	231, 	0, 	TEXT("Магаданская обл.")},
 -	{24, 	234, 	0, 	TEXT("Сахалинская обл.")},
 -	{24, 	228, 	0, 	TEXT("Еврейская АО")},
 -	{24, 	230, 	0, 	TEXT("Корякский АО")},
 -	{24, 	236, 	0, 	TEXT("Чукотский АО")},
 -	{24, 	237, 	0, 	TEXT("Башкортостан")},
 -	{24, 	240, 	0, 	TEXT("Марий-Эл")},
 -	{24, 	241, 	0, 	TEXT("Мордовия")},
 -	{24, 	248, 	0, 	TEXT("Татарстан")},
 -	{24, 	249, 	0, 	TEXT("Удмуртия")},
 -	{24, 	251, 	0, 	TEXT("Чувашия")},
 -	{24, 	238, 	0, 	TEXT("Кировская обл.")},
 -	{24, 	242, 	0, 	TEXT("Нижегородская обл.")},
 -	{24, 	243, 	0, 	TEXT("Оренбургская обл.")},
 -	{24, 	244, 	0, 	TEXT("Пензенская обл.")},
 -	{24, 	245, 	0, 	TEXT("Пермская обл.")},
 -	{24, 	246, 	0, 	TEXT("Самарская обл.")},
 -	{24, 	247, 	0, 	TEXT("Саратовская обл.")},
 -	{24, 	250, 	0, 	TEXT("Ульяновская обл.")},
 -	{24, 	239, 	0, 	TEXT("Коми-Пермяцкий АО")},
 -	{24, 	255, 	0, 	TEXT("Карелия")},
 -	{24, 	256, 	0, 	TEXT("Коми")},
 -	{24, 	252, 	0, 	TEXT("Архангельская обл.")},
 -	{24, 	253, 	0, 	TEXT("Вологодская обл.")},
 -	{24, 	254, 	0, 	TEXT("Калининградская обл.")},
 -	{24, 	257, 	0, 	TEXT("Ленинградская обл.")},
 -	{24, 	258, 	0, 	TEXT("Мурманская обл.")},
 -	{24, 	260, 	0, 	TEXT("Новгородская обл.")},
 -	{24, 	261, 	0, 	TEXT("Псковская обл.")},
 -	{24, 	259, 	0, 	TEXT("Ненецкий АО")},
 -	{24, 	265, 	0, 	TEXT("Бурятия")},
 -	{24, 	263, 	0, 	TEXT("Республика Алтай")},
 -	{24, 	273, 	0, 	TEXT("Тыва")},
 -	{24, 	275, 	0, 	TEXT("Хакасия")},
 -	{24, 	264, 	0, 	TEXT("Алтайский край")},
 -	{24, 	268, 	0, 	TEXT("Красноярский край")},
 -	{24, 	266, 	0, 	TEXT("Иркутская обл.")},
 -	{24, 	267, 	0, 	TEXT("Кемеровская обл.")},
 -	{24, 	269, 	0, 	TEXT("Новосибирская обл.")},
 -	{24, 	270, 	0, 	TEXT("Омская обл.")},
 -	{24, 	272, 	0, 	TEXT("Томская обл.")},
 -	{24, 	276, 	0, 	TEXT("Читинская обл.")},
 -	{24, 	262, 	0, 	TEXT("Агинский Бурятский АО")},
 -	{24, 	271, 	0, 	TEXT("Таймырский АО")},
 -	{24, 	274, 	0, 	TEXT("Усть-Ордынский Бурятский АО")},
 -	{24, 	277, 	0, 	TEXT("Эвенкийский АО")},
 -	{24, 	278, 	0, 	TEXT("Курганская обл.")},
 -	{24, 	279, 	0, 	TEXT("Свердловская обл.")},
 -	{24, 	280, 	0, 	TEXT("Тюменская обл.")},
 -	{24, 	282, 	0, 	TEXT("Челябинская обл.")},
 -	{24, 	281, 	0, 	TEXT("Ханты-Мансийский АО - Югра")},
 -	{24, 	283, 	0, 	TEXT("Ямало-Ненецкий АО")},
 -	{24, 	284, 	0, 	TEXT("Белгородская обл.")},
 -	{24, 	285, 	0, 	TEXT("Брянская обл.")},
 -	{24, 	286, 	0, 	TEXT("Владимирская обл.")},
 -	{24, 	287, 	0, 	TEXT("Воронежская обл.")},
 -	{24, 	288, 	0, 	TEXT("Ивановская обл.")},
 -	{24, 	289, 	0, 	TEXT("Калужская обл.")},
 -	{24, 	290, 	0, 	TEXT("Костромская обл.")},
 -	{24, 	291, 	0, 	TEXT("Курская обл.")},
 -	{24, 	292, 	0, 	TEXT("Липецкая обл.")},
 -	{24, 	293, 	0, 	TEXT("Московская обл.")},
 -	{24, 	294, 	0, 	TEXT("Орловская обл.")},
 -	{24, 	295, 	0, 	TEXT("Рязанская обл.")},
 -	{24, 	296, 	0, 	TEXT("Смоленская обл.")},
 -	{24, 	297, 	0, 	TEXT("Тамбовская обл.")},
 -	{24, 	298, 	0, 	TEXT("Тверская обл.")},
 -	{24, 	299, 	0, 	TEXT("Тульская обл.")},
 -	{24, 	300, 	0, 	TEXT("Ярославская обл.")},
 -	{24, 	301, 	0, 	TEXT("Адыгея")},
 -	{24, 	304, 	0, 	TEXT("Дагестан")},
 -	{24, 	305, 	0, 	TEXT("Ингушетия")},
 -	{24, 	306, 	0, 	TEXT("Кабардино-Балкария")},
 -	{24, 	307, 	0, 	TEXT("Калмыкия")},
 -	{24, 	308, 	0, 	TEXT("Карачаево-Черкессия")},
 -	{24, 	311, 	0, 	TEXT("Северная Осетия - Алания")},
 -	{24, 	313, 	0, 	TEXT("Чечня")},
 -	{24, 	309, 	0, 	TEXT("Краснодарский край")},
 -	{24, 	312, 	0, 	TEXT("Ставропольский край")},
 -	{24, 	302, 	0, 	TEXT("Астраханская обл.")},
 -	{24, 	303, 	0, 	TEXT("Волгоградская обл.")},
 -	{24, 	310, 	0, 	TEXT("Ростовская обл.")},
 -	{81, 	1055, 	0, 	TEXT("Баку")},
 -	{81, 	1058, 	0, 	TEXT("Гянджа")},
 -	{81, 	1056, 	0, 	TEXT("Нахичевань")},
 -	{81, 	1057, 	0, 	TEXT("Ханкенди")},
 -	{81, 	3153, 	0, 	TEXT("Шеки")},
 +	{24, 	0, 	0, 	_T("Россия")},
 +	{81, 	0, 	0, 	_T("Азербайджан")},
 +	{82, 	0, 	0, 	_T("Армения")},
 +	{97, 	0, 	0, 	_T("Афганистан")},
 +	{96, 	0, 	0, 	_T("Бангладеш")},
 +	{99, 	0, 	0, 	_T("Бахрейн")},
 +	{100, 	0, 	0, 	_T("Бруней-Даруссалам")},
 +	{101, 	0, 	0, 	_T("Бутан")},
 +	{102, 	0, 	0, 	_T("Вьетнам")},
 +	{83, 	0, 	0, 	_T("Грузия")},
 +	{86, 	0, 	0, 	_T("Израиль")},
 +	{95, 	0, 	0, 	_T("Индия")},
 +	{103, 	0, 	0, 	_T("Индонезия")},
 +	{79, 	0, 	0, 	_T("Иордания")},
 +	{85, 	0, 	0, 	_T("Ирак")},
 +	{87, 	0, 	0, 	_T("Иран")},
 +	{104, 	0, 	0, 	_T("Йемен")},
 +	{84, 	0, 	0, 	_T("Казахстан")},
 +	{105, 	0, 	0, 	_T("Камбоджа")},
 +	{106, 	0, 	0, 	_T("Катар")},
 +	{107, 	0, 	0, 	_T("Кипр")},
 +	{92, 	0, 	0, 	_T("Киргизия (Кыргызстан)")},
 +	{76, 	0, 	0, 	_T("Китай")},
 +	{3215, 	0, 	0, 	_T("Кокосовые острова (Австр.)")},
 +	{29, 	0, 	0, 	_T("Корея (КНДР)")},
 +	{108, 	0, 	0, 	_T("Корея")},
 +	{88, 	0, 	0, 	_T("Кувейт")},
 +	{109, 	0, 	0, 	_T("Лаос")},
 +	{110, 	0, 	0, 	_T("Ливан")},
 +	{111, 	0, 	0, 	_T("Малайзия")},
 +	{112, 	0, 	0, 	_T("Мальдивы")},
 +	{113, 	0, 	0, 	_T("Монголия")},
 +	{114, 	0, 	0, 	_T("Мьянма")},
 +	{115, 	0, 	0, 	_T("Непал")},
 +	{116, 	0, 	0, 	_T("Объединенные Арабские Эмираты")},
 +	{117, 	0, 	0, 	_T("Оман")},
 +	{3216, 	0, 	0, 	_T("Остров Рождества (Австр.)")},
 +	{122, 	0, 	0, 	_T("Пакистан")},
 +	{89, 	0, 	0, 	_T("Палестина")},
 +	{94, 	0, 	0, 	_T("Саудовская Аравия")},
 +	{118, 	0, 	0, 	_T("Сингапур")},
 +	{78, 	0, 	0, 	_T("Сирия")},
 +	{91, 	0, 	0, 	_T("Таджикистан")},
 +	{119, 	0, 	0, 	_T("Таиланд")},
 +	{120, 	0, 	0, 	_T("Тайвань")},
 +	{132, 	0, 	0, 	_T("Тимор")},
 +	{90, 	0, 	0, 	_T("Туркмения")},
 +	{77, 	0, 	0, 	_T("Турция")},
 +	{93, 	0, 	0, 	_T("Узбекистан")},
 +	{121, 	0, 	0, 	_T("Филиппины")},
 +	{98, 	0, 	0, 	_T("Шри Ланка")},
 +	{75, 	0, 	0, 	_T("Япония")},
 +	{123, 	0, 	0, 	_T("Австралия")},
 +	{454, 	0, 	0, 	_T("Американское Самоа")},
 +	{124, 	0, 	0, 	_T("Вануату")},
 +	{453, 	0, 	0, 	_T("Гуам (США)")},
 +	{126, 	0, 	0, 	_T("Кирибати")},
 +	{127, 	0, 	0, 	_T("Маршалловы Острова")},
 +	{128, 	0, 	0, 	_T("Микронезия (Федеративные Штаты Микронезии)")},
 +	{129, 	0, 	0, 	_T("Науру")},
 +	{3220, 	0, 	0, 	_T("Ниуэ (Н.Зел.)")},
 +	{130, 	0, 	0, 	_T("Новая Зеландия")},
 +	{3218, 	0, 	0, 	_T("Новая Каледония (Фр.)")},
 +	{3221, 	0, 	0, 	_T("Острова Кука (Н.Зел.)")},
 +	{3230, 	0, 	0, 	_T("Острова Херд и Макдональд (Австр.)")},
 +	{131, 	0, 	0, 	_T("Палау")},
 +	{133, 	0, 	0, 	_T("Папуа - Новая Гвинея")},
 +	{3222, 	0, 	0, 	_T("Питкерн (Брит.)")},
 +	{125, 	0, 	0, 	_T("Самоа")},
 +	{3219, 	0, 	0, 	_T("Сев. Марианские острова (США)")},
 +	{134, 	0, 	0, 	_T("Соломоновы Острова")},
 +	{3223, 	0, 	0, 	_T("Токелау (Н.Зел.)")},
 +	{135, 	0, 	0, 	_T("Тонга")},
 +	{136, 	0, 	0, 	_T("Тувалу")},
 +	{3224, 	0, 	0, 	_T("Уоллис и Футуна острова (Фр.)")},
 +	{137, 	0, 	0, 	_T("Фиджи")},
 +	{3226, 	0, 	0, 	_T("Французская Полинезия")},
 +	{3225, 	0, 	0, 	_T("Французские Южные территории")},
 +	{138, 	0, 	0, 	_T("Канада")},
 +	{139, 	0, 	0, 	_T("США")},
 +	{3200, 	0, 	0, 	_T("Ангилья (Брит.)")},
 +	{140, 	0, 	0, 	_T("Антигуа и Барбуда")},
 +	{141, 	0, 	0, 	_T("Аргентина")},
 +	{3202, 	0, 	0, 	_T("Аруба (Нид.)")},
 +	{142, 	0, 	0, 	_T("Багамы")},
 +	{143, 	0, 	0, 	_T("Барбадос")},
 +	{146, 	0, 	0, 	_T("Белиз")},
 +	{3203, 	0, 	0, 	_T("Бермуды (Брит.)")},
 +	{144, 	0, 	0, 	_T("Боливия")},
 +	{145, 	0, 	0, 	_T("Бразилия")},
 +	{147, 	0, 	0, 	_T("Венесуэла")},
 +	{3204, 	0, 	0, 	_T("Виргинские острова (Брит.)")},
 +	{452, 	0, 	0, 	_T("Виргинские острова (США)")},
 +	{149, 	0, 	0, 	_T("Гаити")},
 +	{148, 	0, 	0, 	_T("Гайана")},
 +	{3205, 	0, 	0, 	_T("Гваделупа (Фр.)")},
 +	{173, 	0, 	0, 	_T("Гватемала")},
 +	{150, 	0, 	0, 	_T("Гондурас")},
 +	{151, 	0, 	0, 	_T("Гренада")},
 +	{152, 	0, 	0, 	_T("Гренландия (Дат.)")},
 +	{153, 	0, 	0, 	_T("Доминика")},
 +	{154, 	0, 	0, 	_T("Доминиканская Республика")},
 +	{155, 	0, 	0, 	_T("Колумбия")},
 +	{156, 	0, 	0, 	_T("Коста-Рика")},
 +	{157, 	0, 	0, 	_T("Куба")},
 +	{3208, 	0, 	0, 	_T("Мартиника (Фр.)")},
 +	{158, 	0, 	0, 	_T("Мексика")},
 +	{3209, 	0, 	0, 	_T("Монтсеррат (Брит)")},
 +	{3201, 	0, 	0, 	_T("Нидерландские Антилы")},
 +	{159, 	0, 	0, 	_T("Никарагуа")},
 +	{3207, 	0, 	0, 	_T("Остров Кайман (Брит.)")},
 +	{3211, 	0, 	0, 	_T("Острова Теркс и Кайкос (Брит.)")},
 +	{160, 	0, 	0, 	_T("Панама")},
 +	{161, 	0, 	0, 	_T("Парагвай")},
 +	{162, 	0, 	0, 	_T("Перу")},
 +	{163, 	0, 	0, 	_T("Сальвадор")},
 +	{164, 	0, 	0, 	_T("Сент-Винсент и Гренадины")},
 +	{165, 	0, 	0, 	_T("Сент-Китс и Невис")},
 +	{166, 	0, 	0, 	_T("Сент-Люсия")},
 +	{3210, 	0, 	0, 	_T("Сент-Пьер и Микелон (Фр.)")},
 +	{167, 	0, 	0, 	_T("Суринам")},
 +	{168, 	0, 	0, 	_T("Тринидат и Тобаго")},
 +	{169, 	0, 	0, 	_T("Уругвай")},
 +	{3212, 	0, 	0, 	_T("Фолклендские острова (Брит.)")},
 +	{3206, 	0, 	0, 	_T("Французская Гвиана")},
 +	{170, 	0, 	0, 	_T("Чили")},
 +	{171, 	0, 	0, 	_T("Эквадор")},
 +	{3213, 	0, 	0, 	_T("Юж. Джорджия и Юж. Сандвичевы о-ва (Брит.)")},
 +	{172, 	0, 	0, 	_T("Ямайка")},
 +	{174, 	0, 	0, 	_T("Алжир")},
 +	{175, 	0, 	0, 	_T("Ангола")},
 +	{176, 	0, 	0, 	_T("Бенин")},
 +	{177, 	0, 	0, 	_T("Ботсвана")},
 +	{3228, 	0, 	0, 	_T("Британская территория в Индийском океане")},
 +	{178, 	0, 	0, 	_T("Буркина-Фасо")},
 +	{179, 	0, 	0, 	_T("Бурунди")},
 +	{180, 	0, 	0, 	_T("Габон")},
 +	{181, 	0, 	0, 	_T("Гамбия")},
 +	{182, 	0, 	0, 	_T("Гана")},
 +	{183, 	0, 	0, 	_T("Гвинея")},
 +	{184, 	0, 	0, 	_T("Гвинея-Бисау")},
 +	{185, 	0, 	0, 	_T("Джибути")},
 +	{186, 	0, 	0, 	_T("Египет")},
 +	{187, 	0, 	0, 	_T("Замбия")},
 +	{3198, 	0, 	0, 	_T("Зап. Сахара")},
 +	{23, 	0, 	0, 	_T("Зимбабве")},
 +	{188, 	0, 	0, 	_T("Кабо-Верде")},
 +	{189, 	0, 	0, 	_T("Камерун")},
 +	{190, 	0, 	0, 	_T("Кения")},
 +	{191, 	0, 	0, 	_T("Коморы")},
 +	{193, 	0, 	0, 	_T("Конго (Заир)")},
 +	{192, 	0, 	0, 	_T("Конго")},
 +	{194, 	0, 	0, 	_T("Кот-д`Ивуар")},
 +	{195, 	0, 	0, 	_T("Лесото")},
 +	{196, 	0, 	0, 	_T("Либерия")},
 +	{197, 	0, 	0, 	_T("Ливия")},
 +	{198, 	0, 	0, 	_T("Маврикий")},
 +	{199, 	0, 	0, 	_T("Мавритания")},
 +	{200, 	0, 	0, 	_T("Мадагаскар")},
 +	{3229, 	0, 	0, 	_T("Майотт (Фр.)")},
 +	{201, 	0, 	0, 	_T("Малави")},
 +	{202, 	0, 	0, 	_T("Мали")},
 +	{203, 	0, 	0, 	_T("Марокко")},
 +	{204, 	0, 	0, 	_T("Мозамбик")},
 +	{205, 	0, 	0, 	_T("Намибия")},
 +	{206, 	0, 	0, 	_T("Нигер")},
 +	{207, 	0, 	0, 	_T("Нигерия")},
 +	{3227, 	0, 	0, 	_T("Остров Буве (Норв.)")},
 +	{3197, 	0, 	0, 	_T("Реюньон (Фр.)")},
 +	{208, 	0, 	0, 	_T("Руанда")},
 +	{209, 	0, 	0, 	_T("Сан-Томе и Принсипи")},
 +	{210, 	0, 	0, 	_T("Свазиленд")},
 +	{3199, 	0, 	0, 	_T("Святая Елена (Брит.)")},
 +	{211, 	0, 	0, 	_T("Сейшелы")},
 +	{212, 	0, 	0, 	_T("Сенегал")},
 +	{213, 	0, 	0, 	_T("Сомали")},
 +	{214, 	0, 	0, 	_T("Судан")},
 +	{215, 	0, 	0, 	_T("Сьерра-Леоне")},
 +	{216, 	0, 	0, 	_T("Танзания")},
 +	{217, 	0, 	0, 	_T("Того")},
 +	{218, 	0, 	0, 	_T("Тунис")},
 +	{219, 	0, 	0, 	_T("Уганда")},
 +	{220, 	0, 	0, 	_T("Центральноафриканская Республика")},
 +	{222, 	0, 	0, 	_T("Чад")},
 +	{223, 	0, 	0, 	_T("Экваториальная Гвинея")},
 +	{221, 	0, 	0, 	_T("Эритрея")},
 +	{224, 	0, 	0, 	_T("Эфиопия")},
 +	{225, 	0, 	0, 	_T("Южно-Африканская Республика (ЮАР)")},
 +	{39, 	0, 	0, 	_T("Украина")},
 +	{40, 	0, 	0, 	_T("Австрия")},
 +	{32, 	0, 	0, 	_T("Албания")},
 +	{33, 	0, 	0, 	_T("Андорра")},
 +	{340, 	0, 	0, 	_T("Белоруссия")},
 +	{38, 	0, 	0, 	_T("Бельгия")},
 +	{41, 	0, 	0, 	_T("Болгария")},
 +	{42, 	0, 	0, 	_T("Босния и Герцеговина")},
 +	{43, 	0, 	0, 	_T("Ватикан")},
 +	{45, 	0, 	0, 	_T("Великобритания")},
 +	{44, 	0, 	0, 	_T("Венгрия")},
 +	{46, 	0, 	0, 	_T("Германия")},
 +	{3193, 	0, 	0, 	_T("Гернси (Брит.)")},
 +	{47, 	0, 	0, 	_T("Гибралтар (Брит.)")},
 +	{48, 	0, 	0, 	_T("Греция")},
 +	{49, 	0, 	0, 	_T("Дания")},
 +	{3194, 	0, 	0, 	_T("Джерси (Брит.)")},
 +	{50, 	0, 	0, 	_T("Ирландия")},
 +	{51, 	0, 	0, 	_T("Исландия")},
 +	{34, 	0, 	0, 	_T("Испания")},
 +	{52, 	0, 	0, 	_T("Италия")},
 +	{53, 	0, 	0, 	_T("Латвия")},
 +	{54, 	0, 	0, 	_T("Литва")},
 +	{55, 	0, 	0, 	_T("Лихтенштейн")},
 +	{56, 	0, 	0, 	_T("Люксембург")},
 +	{57, 	0, 	0, 	_T("Македония")},
 +	{58, 	0, 	0, 	_T("Мальта")},
 +	{59, 	0, 	0, 	_T("Молдавия")},
 +	{36, 	0, 	0, 	_T("Монако")},
 +	{60, 	0, 	0, 	_T("Нидерланды")},
 +	{61, 	0, 	0, 	_T("Норвегия")},
 +	{3195, 	0, 	0, 	_T("Остров Мэн (Брит.)")},
 +	{62, 	0, 	0, 	_T("Польша")},
 +	{35, 	0, 	0, 	_T("Португалия")},
 +	{63, 	0, 	0, 	_T("Румыния")},
 +	{64, 	0, 	0, 	_T("Сан-Марино")},
 +	{74, 	0, 	0, 	_T("Сербия и Черногория")},
 +	{65, 	0, 	0, 	_T("Словакия")},
 +	{66, 	0, 	0, 	_T("Словения")},
 +	{67, 	0, 	0, 	_T("Фарерские о-ва (Дания)")},
 +	{68, 	0, 	0, 	_T("Финляндия")},
 +	{37, 	0, 	0, 	_T("Франция")},
 +	{69, 	0, 	0, 	_T("Хорватия")},
 +	{70, 	0, 	0, 	_T("Чехия")},
 +	{71, 	0, 	0, 	_T("Швейцария")},
 +	{72, 	0, 	0, 	_T("Швеция")},
 +	{3196, 	0, 	0, 	_T("Шпицберген (Норв.)")},
 +	{73, 	0, 	0, 	_T("Эстония")},
 +	{24, 	25, 	0, 	_T("Москва")},
 +	{24, 	226, 	0, 	_T("Санкт-Петербург")},
 +	{24, 	233, 	0, 	_T("Саха (Якутия)")},
 +	{24, 	232, 	0, 	_T("Приморский край")},
 +	{24, 	235, 	0, 	_T("Хабаровский край")},
 +	{24, 	227, 	0, 	_T("Амурская обл.")},
 +	{24, 	229, 	0, 	_T("Камчатская обл.")},
 +	{24, 	231, 	0, 	_T("Магаданская обл.")},
 +	{24, 	234, 	0, 	_T("Сахалинская обл.")},
 +	{24, 	228, 	0, 	_T("Еврейская АО")},
 +	{24, 	230, 	0, 	_T("Корякский АО")},
 +	{24, 	236, 	0, 	_T("Чукотский АО")},
 +	{24, 	237, 	0, 	_T("Башкортостан")},
 +	{24, 	240, 	0, 	_T("Марий-Эл")},
 +	{24, 	241, 	0, 	_T("Мордовия")},
 +	{24, 	248, 	0, 	_T("Татарстан")},
 +	{24, 	249, 	0, 	_T("Удмуртия")},
 +	{24, 	251, 	0, 	_T("Чувашия")},
 +	{24, 	238, 	0, 	_T("Кировская обл.")},
 +	{24, 	242, 	0, 	_T("Нижегородская обл.")},
 +	{24, 	243, 	0, 	_T("Оренбургская обл.")},
 +	{24, 	244, 	0, 	_T("Пензенская обл.")},
 +	{24, 	245, 	0, 	_T("Пермская обл.")},
 +	{24, 	246, 	0, 	_T("Самарская обл.")},
 +	{24, 	247, 	0, 	_T("Саратовская обл.")},
 +	{24, 	250, 	0, 	_T("Ульяновская обл.")},
 +	{24, 	239, 	0, 	_T("Коми-Пермяцкий АО")},
 +	{24, 	255, 	0, 	_T("Карелия")},
 +	{24, 	256, 	0, 	_T("Коми")},
 +	{24, 	252, 	0, 	_T("Архангельская обл.")},
 +	{24, 	253, 	0, 	_T("Вологодская обл.")},
 +	{24, 	254, 	0, 	_T("Калининградская обл.")},
 +	{24, 	257, 	0, 	_T("Ленинградская обл.")},
 +	{24, 	258, 	0, 	_T("Мурманская обл.")},
 +	{24, 	260, 	0, 	_T("Новгородская обл.")},
 +	{24, 	261, 	0, 	_T("Псковская обл.")},
 +	{24, 	259, 	0, 	_T("Ненецкий АО")},
 +	{24, 	265, 	0, 	_T("Бурятия")},
 +	{24, 	263, 	0, 	_T("Республика Алтай")},
 +	{24, 	273, 	0, 	_T("Тыва")},
 +	{24, 	275, 	0, 	_T("Хакасия")},
 +	{24, 	264, 	0, 	_T("Алтайский край")},
 +	{24, 	268, 	0, 	_T("Красноярский край")},
 +	{24, 	266, 	0, 	_T("Иркутская обл.")},
 +	{24, 	267, 	0, 	_T("Кемеровская обл.")},
 +	{24, 	269, 	0, 	_T("Новосибирская обл.")},
 +	{24, 	270, 	0, 	_T("Омская обл.")},
 +	{24, 	272, 	0, 	_T("Томская обл.")},
 +	{24, 	276, 	0, 	_T("Читинская обл.")},
 +	{24, 	262, 	0, 	_T("Агинский Бурятский АО")},
 +	{24, 	271, 	0, 	_T("Таймырский АО")},
 +	{24, 	274, 	0, 	_T("Усть-Ордынский Бурятский АО")},
 +	{24, 	277, 	0, 	_T("Эвенкийский АО")},
 +	{24, 	278, 	0, 	_T("Курганская обл.")},
 +	{24, 	279, 	0, 	_T("Свердловская обл.")},
 +	{24, 	280, 	0, 	_T("Тюменская обл.")},
 +	{24, 	282, 	0, 	_T("Челябинская обл.")},
 +	{24, 	281, 	0, 	_T("Ханты-Мансийский АО - Югра")},
 +	{24, 	283, 	0, 	_T("Ямало-Ненецкий АО")},
 +	{24, 	284, 	0, 	_T("Белгородская обл.")},
 +	{24, 	285, 	0, 	_T("Брянская обл.")},
 +	{24, 	286, 	0, 	_T("Владимирская обл.")},
 +	{24, 	287, 	0, 	_T("Воронежская обл.")},
 +	{24, 	288, 	0, 	_T("Ивановская обл.")},
 +	{24, 	289, 	0, 	_T("Калужская обл.")},
 +	{24, 	290, 	0, 	_T("Костромская обл.")},
 +	{24, 	291, 	0, 	_T("Курская обл.")},
 +	{24, 	292, 	0, 	_T("Липецкая обл.")},
 +	{24, 	293, 	0, 	_T("Московская обл.")},
 +	{24, 	294, 	0, 	_T("Орловская обл.")},
 +	{24, 	295, 	0, 	_T("Рязанская обл.")},
 +	{24, 	296, 	0, 	_T("Смоленская обл.")},
 +	{24, 	297, 	0, 	_T("Тамбовская обл.")},
 +	{24, 	298, 	0, 	_T("Тверская обл.")},
 +	{24, 	299, 	0, 	_T("Тульская обл.")},
 +	{24, 	300, 	0, 	_T("Ярославская обл.")},
 +	{24, 	301, 	0, 	_T("Адыгея")},
 +	{24, 	304, 	0, 	_T("Дагестан")},
 +	{24, 	305, 	0, 	_T("Ингушетия")},
 +	{24, 	306, 	0, 	_T("Кабардино-Балкария")},
 +	{24, 	307, 	0, 	_T("Калмыкия")},
 +	{24, 	308, 	0, 	_T("Карачаево-Черкессия")},
 +	{24, 	311, 	0, 	_T("Северная Осетия - Алания")},
 +	{24, 	313, 	0, 	_T("Чечня")},
 +	{24, 	309, 	0, 	_T("Краснодарский край")},
 +	{24, 	312, 	0, 	_T("Ставропольский край")},
 +	{24, 	302, 	0, 	_T("Астраханская обл.")},
 +	{24, 	303, 	0, 	_T("Волгоградская обл.")},
 +	{24, 	310, 	0, 	_T("Ростовская обл.")},
 +	{81, 	1055, 	0, 	_T("Баку")},
 +	{81, 	1058, 	0, 	_T("Гянджа")},
 +	{81, 	1056, 	0, 	_T("Нахичевань")},
 +	{81, 	1057, 	0, 	_T("Ханкенди")},
 +	{81, 	3153, 	0, 	_T("Шеки")},
  	{81, 	2291, 	0, 	lpwszOther},
 -	{82, 	2932, 	0, 	TEXT("Абовян")},
 -	{82, 	1060, 	0, 	TEXT("Аштарак")},
 -	{82, 	3084, 	0, 	TEXT("Ванадзор")},
 -	{82, 	3011, 	0, 	TEXT("Гюмри")},
 -	{82, 	3306, 	0, 	TEXT("Дилижан")},
 -	{82, 	1059, 	0, 	TEXT("Ереван")},
 -	{82, 	3145, 	0, 	TEXT("Ханкенди")},
 +	{82, 	2932, 	0, 	_T("Абовян")},
 +	{82, 	1060, 	0, 	_T("Аштарак")},
 +	{82, 	3084, 	0, 	_T("Ванадзор")},
 +	{82, 	3011, 	0, 	_T("Гюмри")},
 +	{82, 	3306, 	0, 	_T("Дилижан")},
 +	{82, 	1059, 	0, 	_T("Ереван")},
 +	{82, 	3145, 	0, 	_T("Ханкенди")},
  	{82, 	2292, 	0, 	lpwszOther},
 -	{97, 	1061, 	0, 	TEXT("Кабул")},
 +	{97, 	1061, 	0, 	_T("Кабул")},
  	{97, 	2293, 	0, 	lpwszOther},
 -	{96, 	1062, 	0, 	TEXT("Дакка")},
 +	{96, 	1062, 	0, 	_T("Дакка")},
  	{96, 	2294, 	0, 	lpwszOther},
 -	{99, 	1063, 	0, 	TEXT("Манама")},
 +	{99, 	1063, 	0, 	_T("Манама")},
  	{99, 	2295, 	0, 	lpwszOther},
 -	{100, 	1064, 	0, 	TEXT("Бандар-Сери-Бегаван")},
 +	{100, 	1064, 	0, 	_T("Бандар-Сери-Бегаван")},
  	{100, 	2296, 	0, 	lpwszOther},
 -	{101, 	1065, 	0, 	TEXT("Тхимпху")},
 +	{101, 	1065, 	0, 	_T("Тхимпху")},
  	{101, 	2297, 	0, 	lpwszOther},
 -	{102, 	1066, 	0, 	TEXT("Ханой")},
 +	{102, 	1066, 	0, 	_T("Ханой")},
  	{102, 	2298, 	0, 	lpwszOther},
 -	{83, 	1067, 	0, 	TEXT("Батуми")},
 -	{83, 	3158, 	0, 	TEXT("Боржоми")},
 -	{83, 	1068, 	0, 	TEXT("Поти")},
 -	{83, 	3129, 	0, 	TEXT("Рустави")},
 -	{83, 	1069, 	0, 	TEXT("Сухуми")},
 -	{83, 	1070, 	0, 	TEXT("Тбилиси")},
 +	{83, 	1067, 	0, 	_T("Батуми")},
 +	{83, 	3158, 	0, 	_T("Боржоми")},
 +	{83, 	1068, 	0, 	_T("Поти")},
 +	{83, 	3129, 	0, 	_T("Рустави")},
 +	{83, 	1069, 	0, 	_T("Сухуми")},
 +	{83, 	1070, 	0, 	_T("Тбилиси")},
  	{83, 	2299, 	0, 	lpwszOther},
 -	{86, 	3345, 	0, 	TEXT("Ариэль")},
 -	{86, 	1071, 	0, 	TEXT("Афула")},
 -	{86, 	2992, 	0, 	TEXT("Ашдод")},
 -	{86, 	3175, 	0, 	TEXT("Ашкелон")},
 -	{86, 	3363, 	0, 	TEXT("Бат-Ям")},
 -	{86, 	2884, 	0, 	TEXT("Беер-Яков")},
 -	{86, 	3243, 	0, 	TEXT("Бейт-Шемеш")},
 -	{86, 	1074, 	0, 	TEXT("Беэр-Шева")},
 -	{86, 	3348, 	0, 	TEXT("Герцелия")},
 -	{86, 	3241, 	0, 	TEXT("Димона")},
 -	{86, 	1075, 	0, 	TEXT("Иерусалим")},
 -	{86, 	3350, 	0, 	TEXT("Йокнеам-Иллит")},
 -	{86, 	2982, 	0, 	TEXT("Кармиэль")},
 -	{86, 	2971, 	0, 	TEXT("Кфар-Саба")},
 -	{86, 	3136, 	0, 	TEXT("Назарет")},
 -	{86, 	1080, 	0, 	TEXT("Натания")},
 -	{86, 	3303, 	0, 	TEXT("Офаким")},
 -	{86, 	3050, 	0, 	TEXT("Раанана")},
 -	{86, 	3151, 	0, 	TEXT("Рамат Ган")},
 -	{86, 	3141, 	0, 	TEXT("Реховот")},
 -	{86, 	3012, 	0, 	TEXT("Ришон ле Цион")},
 -	{86, 	1081, 	0, 	TEXT("Тверия")},
 -	{86, 	1077, 	0, 	TEXT("Тель-Авив")},
 -	{86, 	1079, 	0, 	TEXT("Хадера")},
 -	{86, 	1078, 	0, 	TEXT("Хайфа")},
 -	{86, 	1076, 	0, 	TEXT("Хеврон")},
 -	{86, 	2929, 	0, 	TEXT("Цфат")},
 -	{86, 	2928, 	0, 	TEXT("Эйлат")},
 +	{86, 	3345, 	0, 	_T("Ариэль")},
 +	{86, 	1071, 	0, 	_T("Афула")},
 +	{86, 	2992, 	0, 	_T("Ашдод")},
 +	{86, 	3175, 	0, 	_T("Ашкелон")},
 +	{86, 	3363, 	0, 	_T("Бат-Ям")},
 +	{86, 	2884, 	0, 	_T("Беер-Яков")},
 +	{86, 	3243, 	0, 	_T("Бейт-Шемеш")},
 +	{86, 	1074, 	0, 	_T("Беэр-Шева")},
 +	{86, 	3348, 	0, 	_T("Герцелия")},
 +	{86, 	3241, 	0, 	_T("Димона")},
 +	{86, 	1075, 	0, 	_T("Иерусалим")},
 +	{86, 	3350, 	0, 	_T("Йокнеам-Иллит")},
 +	{86, 	2982, 	0, 	_T("Кармиэль")},
 +	{86, 	2971, 	0, 	_T("Кфар-Саба")},
 +	{86, 	3136, 	0, 	_T("Назарет")},
 +	{86, 	1080, 	0, 	_T("Натания")},
 +	{86, 	3303, 	0, 	_T("Офаким")},
 +	{86, 	3050, 	0, 	_T("Раанана")},
 +	{86, 	3151, 	0, 	_T("Рамат Ган")},
 +	{86, 	3141, 	0, 	_T("Реховот")},
 +	{86, 	3012, 	0, 	_T("Ришон ле Цион")},
 +	{86, 	1081, 	0, 	_T("Тверия")},
 +	{86, 	1077, 	0, 	_T("Тель-Авив")},
 +	{86, 	1079, 	0, 	_T("Хадера")},
 +	{86, 	1078, 	0, 	_T("Хайфа")},
 +	{86, 	1076, 	0, 	_T("Хеврон")},
 +	{86, 	2929, 	0, 	_T("Цфат")},
 +	{86, 	2928, 	0, 	_T("Эйлат")},
  	{86, 	2300, 	0, 	lpwszOther},
 -	{95, 	3315, 	0, 	TEXT("Бангалор")},
 -	{95, 	1082, 	0, 	TEXT("Дели")},
 -	{95, 	1083, 	0, 	TEXT("Джайпур")},
 -	{95, 	3144, 	0, 	TEXT("Калькутта")},
 -	{95, 	3025, 	0, 	TEXT("Мумбаи")},
 -	{95, 	3277, 	0, 	TEXT("Панаджи")},
 -	{95, 	1084, 	0, 	TEXT("Ченнаи")},
 +	{95, 	3315, 	0, 	_T("Бангалор")},
 +	{95, 	1082, 	0, 	_T("Дели")},
 +	{95, 	1083, 	0, 	_T("Джайпур")},
 +	{95, 	3144, 	0, 	_T("Калькутта")},
 +	{95, 	3025, 	0, 	_T("Мумбаи")},
 +	{95, 	3277, 	0, 	_T("Панаджи")},
 +	{95, 	1084, 	0, 	_T("Ченнаи")},
  	{95, 	2301, 	0, 	lpwszOther},
 -	{103, 	1085, 	0, 	TEXT("Джакарта")},
 +	{103, 	1085, 	0, 	_T("Джакарта")},
  	{103, 	2302, 	0, 	lpwszOther},
 -	{79, 	1086, 	0, 	TEXT("Амман")},
 +	{79, 	1086, 	0, 	_T("Амман")},
  	{79, 	2303, 	0, 	lpwszOther},
 -	{85, 	1087, 	0, 	TEXT("Багдад")},
 +	{85, 	1087, 	0, 	_T("Багдад")},
  	{85, 	2304, 	0, 	lpwszOther},
 -	{87, 	1088, 	0, 	TEXT("Тегеран")},
 +	{87, 	1088, 	0, 	_T("Тегеран")},
  	{87, 	2305, 	0, 	lpwszOther},
 -	{104, 	1089, 	0, 	TEXT("Сана")},
 +	{104, 	1089, 	0, 	_T("Сана")},
  	{104, 	2306, 	0, 	lpwszOther},
 -	{84, 	1090, 	0, 	TEXT("Актау")},
 -	{84, 	1091, 	0, 	TEXT("Актюбинск")},
 -	{84, 	1092, 	0, 	TEXT("Алма-Ата")},
 -	{84, 	3242, 	0, 	TEXT("Аршалы")},
 -	{84, 	1093, 	0, 	TEXT("Астана")},
 -	{84, 	1094, 	0, 	TEXT("Атырау (Гурьев)")},
 -	{84, 	1095, 	0, 	TEXT("Байконур")},
 -	{84, 	3245, 	0, 	TEXT("Балхаш")},
 -	{84, 	3083, 	0, 	TEXT("Жезказган")},
 -	{84, 	1096, 	0, 	TEXT("Капчагай")},
 -	{84, 	1097, 	0, 	TEXT("Караганда")},
 -	{84, 	1098, 	0, 	TEXT("Кокшетау")},
 -	{84, 	1099, 	0, 	TEXT("Кустанай")},
 -	{84, 	2868, 	0, 	TEXT("Лисаковск")},
 -	{84, 	1100, 	0, 	TEXT("Павлодар")},
 -	{84, 	1101, 	0, 	TEXT("Петропавловск (Сев.-Каз. обл.)")},
 -	{84, 	1102, 	0, 	TEXT("Рудный")},
 -	{84, 	1103, 	0, 	TEXT("Семипалатинск")},
 -	{84, 	1104, 	0, 	TEXT("Степногорск")},
 -	{84, 	3166, 	0, 	TEXT("Талгар")},
 -	{84, 	1105, 	0, 	TEXT("Талды-Курган")},
 -	{84, 	2927, 	0, 	TEXT("Тараз")},
 -	{84, 	1106, 	0, 	TEXT("Темиртау")},
 -	{84, 	1107, 	0, 	TEXT("Уральск")},
 -	{84, 	1108, 	0, 	TEXT("Усть-Каменогорск")},
 -	{84, 	1109, 	0, 	TEXT("Чимкент")},
 -	{84, 	1110, 	0, 	TEXT("Экибастуз")},
 +	{84, 	1090, 	0, 	_T("Актау")},
 +	{84, 	1091, 	0, 	_T("Актюбинск")},
 +	{84, 	1092, 	0, 	_T("Алма-Ата")},
 +	{84, 	3242, 	0, 	_T("Аршалы")},
 +	{84, 	1093, 	0, 	_T("Астана")},
 +	{84, 	1094, 	0, 	_T("Атырау (Гурьев)")},
 +	{84, 	1095, 	0, 	_T("Байконур")},
 +	{84, 	3245, 	0, 	_T("Балхаш")},
 +	{84, 	3083, 	0, 	_T("Жезказган")},
 +	{84, 	1096, 	0, 	_T("Капчагай")},
 +	{84, 	1097, 	0, 	_T("Караганда")},
 +	{84, 	1098, 	0, 	_T("Кокшетау")},
 +	{84, 	1099, 	0, 	_T("Кустанай")},
 +	{84, 	2868, 	0, 	_T("Лисаковск")},
 +	{84, 	1100, 	0, 	_T("Павлодар")},
 +	{84, 	1101, 	0, 	_T("Петропавловск (Сев.-Каз. обл.)")},
 +	{84, 	1102, 	0, 	_T("Рудный")},
 +	{84, 	1103, 	0, 	_T("Семипалатинск")},
 +	{84, 	1104, 	0, 	_T("Степногорск")},
 +	{84, 	3166, 	0, 	_T("Талгар")},
 +	{84, 	1105, 	0, 	_T("Талды-Курган")},
 +	{84, 	2927, 	0, 	_T("Тараз")},
 +	{84, 	1106, 	0, 	_T("Темиртау")},
 +	{84, 	1107, 	0, 	_T("Уральск")},
 +	{84, 	1108, 	0, 	_T("Усть-Каменогорск")},
 +	{84, 	1109, 	0, 	_T("Чимкент")},
 +	{84, 	1110, 	0, 	_T("Экибастуз")},
  	{84, 	2307, 	0, 	lpwszOther},
 -	{105, 	1111, 	0, 	TEXT("Пномпень")},
 +	{105, 	1111, 	0, 	_T("Пномпень")},
  	{105, 	2308, 	0, 	lpwszOther},
 -	{106, 	1112, 	0, 	TEXT("Доха")},
 +	{106, 	1112, 	0, 	_T("Доха")},
  	{106, 	2309, 	0, 	lpwszOther},
 -	{107, 	1113, 	0, 	TEXT("Ларнака")},
 -	{107, 	1114, 	0, 	TEXT("Лимассол")},
 -	{107, 	1115, 	0, 	TEXT("Никосия")},
 -	{107, 	2954, 	0, 	TEXT("Пафос")},
 +	{107, 	1113, 	0, 	_T("Ларнака")},
 +	{107, 	1114, 	0, 	_T("Лимассол")},
 +	{107, 	1115, 	0, 	_T("Никосия")},
 +	{107, 	2954, 	0, 	_T("Пафос")},
  	{107, 	2310, 	0, 	lpwszOther},
 -	{92, 	1116, 	0, 	TEXT("Бишкек")},
 -	{92, 	1117, 	0, 	TEXT("Джалал-Абад")},
 -	{92, 	3027, 	0, 	TEXT("Кара-Балта")},
 -	{92, 	1118, 	0, 	TEXT("Каракол")},
 -	{92, 	1119, 	0, 	TEXT("Ош")},
 -	{92, 	1120, 	0, 	TEXT("Талас")},
 -	{92, 	2933, 	0, 	TEXT("Хайдаркен")},
 +	{92, 	1116, 	0, 	_T("Бишкек")},
 +	{92, 	1117, 	0, 	_T("Джалал-Абад")},
 +	{92, 	3027, 	0, 	_T("Кара-Балта")},
 +	{92, 	1118, 	0, 	_T("Каракол")},
 +	{92, 	1119, 	0, 	_T("Ош")},
 +	{92, 	1120, 	0, 	_T("Талас")},
 +	{92, 	2933, 	0, 	_T("Хайдаркен")},
  	{92, 	2311, 	0, 	lpwszOther},
 -	{76, 	3214, 	0, 	TEXT("Аомынь (Макао)")},
 -	{76, 	1121, 	0, 	TEXT("Гонконг")},
 -	{76, 	2869, 	0, 	TEXT("Гуанчжоу")},
 -	{76, 	3262, 	0, 	TEXT("Далянь")},
 -	{76, 	1122, 	0, 	TEXT("Пекин")},
 -	{76, 	1123, 	0, 	TEXT("Харбин")},
 -	{76, 	1124, 	0, 	TEXT("Шанхай")},
 -	{76, 	3043, 	0, 	TEXT("Шеньян")},
 +	{76, 	3214, 	0, 	_T("Аомынь (Макао)")},
 +	{76, 	1121, 	0, 	_T("Гонконг")},
 +	{76, 	2869, 	0, 	_T("Гуанчжоу")},
 +	{76, 	3262, 	0, 	_T("Далянь")},
 +	{76, 	1122, 	0, 	_T("Пекин")},
 +	{76, 	1123, 	0, 	_T("Харбин")},
 +	{76, 	1124, 	0, 	_T("Шанхай")},
 +	{76, 	3043, 	0, 	_T("Шеньян")},
  	{76, 	2312, 	0, 	lpwszOther},
 -	{29, 	1125, 	0, 	TEXT("Пхеньян")},
 +	{29, 	1125, 	0, 	_T("Пхеньян")},
  	{29, 	2313, 	0, 	lpwszOther},
 -	{108, 	1126, 	0, 	TEXT("Сеул")},
 -	{108, 	3240, 	0, 	TEXT("Тейджон")},
 +	{108, 	1126, 	0, 	_T("Сеул")},
 +	{108, 	3240, 	0, 	_T("Тейджон")},
  	{108, 	2314, 	0, 	lpwszOther},
 -	{88, 	1127, 	0, 	TEXT("Эль-Кувейт")},
 +	{88, 	1127, 	0, 	_T("Эль-Кувейт")},
  	{88, 	2315, 	0, 	lpwszOther},
 -	{109, 	1128, 	0, 	TEXT("Вьентьян")},
 +	{109, 	1128, 	0, 	_T("Вьентьян")},
  	{109, 	2316, 	0, 	lpwszOther},
 -	{110, 	1129, 	0, 	TEXT("Бейрут")},
 +	{110, 	1129, 	0, 	_T("Бейрут")},
  	{110, 	2317, 	0, 	lpwszOther},
 -	{111, 	1130, 	0, 	TEXT("Джохор-Бару")},
 -	{111, 	1131, 	0, 	TEXT("Куала-Лумпур")},
 +	{111, 	1130, 	0, 	_T("Джохор-Бару")},
 +	{111, 	1131, 	0, 	_T("Куала-Лумпур")},
  	{111, 	2318, 	0, 	lpwszOther},
 -	{112, 	1132, 	0, 	TEXT("Мале")},
 +	{112, 	1132, 	0, 	_T("Мале")},
  	{112, 	2319, 	0, 	lpwszOther},
 -	{113, 	1133, 	0, 	TEXT("Улан-Батор")},
 -	{113, 	1134, 	0, 	TEXT("Эрдэнэт")},
 +	{113, 	1133, 	0, 	_T("Улан-Батор")},
 +	{113, 	1134, 	0, 	_T("Эрдэнэт")},
  	{113, 	2320, 	0, 	lpwszOther},
 -	{114, 	1135, 	0, 	TEXT("Янгон")},
 +	{114, 	1135, 	0, 	_T("Янгон")},
  	{114, 	2321, 	0, 	lpwszOther},
 -	{115, 	1136, 	0, 	TEXT("Катманду")},
 +	{115, 	1136, 	0, 	_T("Катманду")},
  	{115, 	2322, 	0, 	lpwszOther},
 -	{116, 	1137, 	0, 	TEXT("Абу-Даби")},
 -	{116, 	1138, 	0, 	TEXT("Дубай")},
 -	{116, 	1139, 	0, 	TEXT("Шарджа")},
 +	{116, 	1137, 	0, 	_T("Абу-Даби")},
 +	{116, 	1138, 	0, 	_T("Дубай")},
 +	{116, 	1139, 	0, 	_T("Шарджа")},
  	{116, 	2323, 	0, 	lpwszOther},
 -	{117, 	1140, 	0, 	TEXT("Маскат")},
 +	{117, 	1140, 	0, 	_T("Маскат")},
  	{117, 	2324, 	0, 	lpwszOther},
 -	{122, 	1141, 	0, 	TEXT("Исламабад")},
 +	{122, 	1141, 	0, 	_T("Исламабад")},
  	{122, 	2325, 	0, 	lpwszOther},
 -	{89, 	1072, 	0, 	TEXT("Ашдод")},
 -	{89, 	1073, 	0, 	TEXT("Ашкелон")},
 -	{89, 	1142, 	0, 	TEXT("Газа")},
 +	{89, 	1072, 	0, 	_T("Ашдод")},
 +	{89, 	1073, 	0, 	_T("Ашкелон")},
 +	{89, 	1142, 	0, 	_T("Газа")},
  	{89, 	2326, 	0, 	lpwszOther},
 -	{94, 	3250, 	0, 	TEXT("Медина")},
 -	{94, 	1143, 	0, 	TEXT("Эр-Рияд")},
 +	{94, 	3250, 	0, 	_T("Медина")},
 +	{94, 	1143, 	0, 	_T("Эр-Рияд")},
  	{94, 	2327, 	0, 	lpwszOther},
 -	{78, 	1144, 	0, 	TEXT("Дамаск")},
 +	{78, 	1144, 	0, 	_T("Дамаск")},
  	{78, 	2328, 	0, 	lpwszOther},
 -	{91, 	1145, 	0, 	TEXT("Душанбе")},
 -	{91, 	3307, 	0, 	TEXT("Кайраккум")},
 -	{91, 	3308, 	0, 	TEXT("Худжанд")},
 +	{91, 	1145, 	0, 	_T("Душанбе")},
 +	{91, 	3307, 	0, 	_T("Кайраккум")},
 +	{91, 	3308, 	0, 	_T("Худжанд")},
  	{91, 	2329, 	0, 	lpwszOther},
 -	{119, 	1146, 	0, 	TEXT("Бангкок")},
 -	{119, 	1147, 	0, 	TEXT("Пхукет")},
 +	{119, 	1146, 	0, 	_T("Бангкок")},
 +	{119, 	1147, 	0, 	_T("Пхукет")},
  	{119, 	2330, 	0, 	lpwszOther},
 -	{120, 	1148, 	0, 	TEXT("Тайбэй")},
 +	{120, 	1148, 	0, 	_T("Тайбэй")},
  	{120, 	2331, 	0, 	lpwszOther},
 -	{132, 	1149, 	0, 	TEXT("Дили")},
 +	{132, 	1149, 	0, 	_T("Дили")},
  	{132, 	2332, 	0, 	lpwszOther},
 -	{90, 	1150, 	0, 	TEXT("Ашхабад")},
 -	{90, 	3079, 	0, 	TEXT("Безмеин")},
 +	{90, 	1150, 	0, 	_T("Ашхабад")},
 +	{90, 	3079, 	0, 	_T("Безмеин")},
  	{90, 	2333, 	0, 	lpwszOther},
 -	{77, 	1152, 	0, 	TEXT("Анкара")},
 -	{77, 	1153, 	0, 	TEXT("Анталия")},
 -	{77, 	3080, 	0, 	TEXT("Бурса")},
 -	{77, 	1151, 	0, 	TEXT("Мармарис")},
 -	{77, 	1154, 	0, 	TEXT("Стамбул")},
 -	{77, 	1155, 	0, 	TEXT("Трабзон")},
 +	{77, 	1152, 	0, 	_T("Анкара")},
 +	{77, 	1153, 	0, 	_T("Анталия")},
 +	{77, 	3080, 	0, 	_T("Бурса")},
 +	{77, 	1151, 	0, 	_T("Мармарис")},
 +	{77, 	1154, 	0, 	_T("Стамбул")},
 +	{77, 	1155, 	0, 	_T("Трабзон")},
  	{77, 	2334, 	0, 	lpwszOther},
 -	{93, 	3362, 	0, 	TEXT("Алмалык")},
 -	{93, 	3137, 	0, 	TEXT("Андижан")},
 -	{93, 	3273, 	0, 	TEXT("Асака")},
 -	{93, 	1156, 	0, 	TEXT("Ахангаран")},
 -	{93, 	1157, 	0, 	TEXT("Бухара")},
 -	{93, 	3167, 	0, 	TEXT("Джизак")},
 -	{93, 	3347, 	0, 	TEXT("Кунград")},
 -	{93, 	1158, 	0, 	TEXT("Навои")},
 -	{93, 	1159, 	0, 	TEXT("Наманган")},
 -	{93, 	1160, 	0, 	TEXT("Самарканд")},
 -	{93, 	1161, 	0, 	TEXT("Ташкент")},
 -	{93, 	1162, 	0, 	TEXT("Ургенч")},
 -	{93, 	1163, 	0, 	TEXT("Фергана")},
 -	{93, 	1164, 	0, 	TEXT("Чирчик")},
 +	{93, 	3362, 	0, 	_T("Алмалык")},
 +	{93, 	3137, 	0, 	_T("Андижан")},
 +	{93, 	3273, 	0, 	_T("Асака")},
 +	{93, 	1156, 	0, 	_T("Ахангаран")},
 +	{93, 	1157, 	0, 	_T("Бухара")},
 +	{93, 	3167, 	0, 	_T("Джизак")},
 +	{93, 	3347, 	0, 	_T("Кунград")},
 +	{93, 	1158, 	0, 	_T("Навои")},
 +	{93, 	1159, 	0, 	_T("Наманган")},
 +	{93, 	1160, 	0, 	_T("Самарканд")},
 +	{93, 	1161, 	0, 	_T("Ташкент")},
 +	{93, 	1162, 	0, 	_T("Ургенч")},
 +	{93, 	1163, 	0, 	_T("Фергана")},
 +	{93, 	1164, 	0, 	_T("Чирчик")},
  	{93, 	2335, 	0, 	lpwszOther},
 -	{121, 	1165, 	0, 	TEXT("Манила")},
 -	{121, 	3319, 	0, 	TEXT("Себу")},
 +	{121, 	1165, 	0, 	_T("Манила")},
 +	{121, 	3319, 	0, 	_T("Себу")},
  	{121, 	2336, 	0, 	lpwszOther},
 -	{98, 	1166, 	0, 	TEXT("Коломбо")},
 +	{98, 	1166, 	0, 	_T("Коломбо")},
  	{98, 	2337, 	0, 	lpwszOther},
 -	{75, 	3176, 	0, 	TEXT("Исесаки")},
 -	{75, 	3339, 	0, 	TEXT("Корияма")},
 -	{75, 	1167, 	0, 	TEXT("Саппоро")},
 -	{75, 	1168, 	0, 	TEXT("Токио")},
 +	{75, 	3176, 	0, 	_T("Исесаки")},
 +	{75, 	3339, 	0, 	_T("Корияма")},
 +	{75, 	1167, 	0, 	_T("Саппоро")},
 +	{75, 	1168, 	0, 	_T("Токио")},
  	{75, 	2338, 	0, 	lpwszOther},
 -	{123, 	1914, 	0, 	TEXT("Аделаида")},
 -	{123, 	2957, 	0, 	TEXT("Блэк Рок")},
 -	{123, 	1915, 	0, 	TEXT("Брисбен")},
 -	{123, 	3331, 	0, 	TEXT("Горокан")},
 -	{123, 	1916, 	0, 	TEXT("Канберра")},
 -	{123, 	3001, 	0, 	TEXT("Лидкомб")},
 -	{123, 	1917, 	0, 	TEXT("Мельбурн")},
 -	{123, 	3217, 	0, 	TEXT("Норфолк")},
 -	{123, 	3064, 	0, 	TEXT("Перт")},
 -	{123, 	3020, 	0, 	TEXT("Санта Люсиа")},
 -	{123, 	1918, 	0, 	TEXT("Сидней")},
 -	{123, 	3238, 	0, 	TEXT("Энеабба")},
 +	{123, 	1914, 	0, 	_T("Аделаида")},
 +	{123, 	2957, 	0, 	_T("Блэк Рок")},
 +	{123, 	1915, 	0, 	_T("Брисбен")},
 +	{123, 	3331, 	0, 	_T("Горокан")},
 +	{123, 	1916, 	0, 	_T("Канберра")},
 +	{123, 	3001, 	0, 	_T("Лидкомб")},
 +	{123, 	1917, 	0, 	_T("Мельбурн")},
 +	{123, 	3217, 	0, 	_T("Норфолк")},
 +	{123, 	3064, 	0, 	_T("Перт")},
 +	{123, 	3020, 	0, 	_T("Санта Люсиа")},
 +	{123, 	1918, 	0, 	_T("Сидней")},
 +	{123, 	3238, 	0, 	_T("Энеабба")},
  	{123, 	2339, 	0, 	lpwszOther},
 -	{454, 	1192, 	0, 	TEXT("Паго-Паго")},
 +	{454, 	1192, 	0, 	_T("Паго-Паго")},
  	{454, 	2366, 	0, 	lpwszOther},
 -	{124, 	1919, 	0, 	TEXT("Порт-Вила")},
 +	{124, 	1919, 	0, 	_T("Порт-Вила")},
  	{124, 	2340, 	0, 	lpwszOther},
 -	{453, 	1193, 	0, 	TEXT("Аганья")},
 +	{453, 	1193, 	0, 	_T("Аганья")},
  	{453, 	2368, 	0, 	lpwszOther},
 -	{126, 	1921, 	0, 	TEXT("Баирики")},
 +	{126, 	1921, 	0, 	_T("Баирики")},
  	{126, 	2342, 	0, 	lpwszOther},
 -	{127, 	1922, 	0, 	TEXT("Маджуро")},
 +	{127, 	1922, 	0, 	_T("Маджуро")},
  	{127, 	2343, 	0, 	lpwszOther},
 -	{128, 	1923, 	0, 	TEXT("Паликир")},
 +	{128, 	1923, 	0, 	_T("Паликир")},
  	{128, 	2344, 	0, 	lpwszOther},
 -	{129, 	1924, 	0, 	TEXT("Ярен")},
 +	{129, 	1924, 	0, 	_T("Ярен")},
  	{129, 	2345, 	0, 	lpwszOther},
 -	{130, 	1925, 	0, 	TEXT("Веллингтон")},
 -	{130, 	1926, 	0, 	TEXT("Гамильтон")},
 -	{130, 	1928, 	0, 	TEXT("Данидин")},
 -	{130, 	1929, 	0, 	TEXT("Крайстчерч")},
 -	{130, 	3235, 	0, 	TEXT("Кромвель")},
 -	{130, 	1927, 	0, 	TEXT("Окленд")},
 -	{130, 	3323, 	0, 	TEXT("Тауранга")},
 +	{130, 	1925, 	0, 	_T("Веллингтон")},
 +	{130, 	1926, 	0, 	_T("Гамильтон")},
 +	{130, 	1928, 	0, 	_T("Данидин")},
 +	{130, 	1929, 	0, 	_T("Крайстчерч")},
 +	{130, 	3235, 	0, 	_T("Кромвель")},
 +	{130, 	1927, 	0, 	_T("Окленд")},
 +	{130, 	3323, 	0, 	_T("Тауранга")},
  	{130, 	2346, 	0, 	lpwszOther},
 -	{131, 	1930, 	0, 	TEXT("Корор")},
 +	{131, 	1930, 	0, 	_T("Корор")},
  	{131, 	2347, 	0, 	lpwszOther},
 -	{133, 	1931, 	0, 	TEXT("Порт-Морсби")},
 +	{133, 	1931, 	0, 	_T("Порт-Морсби")},
  	{133, 	2348, 	0, 	lpwszOther},
 -	{125, 	1920, 	0, 	TEXT("Апиа")},
 +	{125, 	1920, 	0, 	_T("Апиа")},
  	{125, 	2341, 	0, 	lpwszOther},
 -	{134, 	1932, 	0, 	TEXT("Хониара")},
 +	{134, 	1932, 	0, 	_T("Хониара")},
  	{134, 	2349, 	0, 	lpwszOther},
 -	{135, 	1933, 	0, 	TEXT("Нукуалофа")},
 +	{135, 	1933, 	0, 	_T("Нукуалофа")},
  	{135, 	2350, 	0, 	lpwszOther},
 -	{136, 	1934, 	0, 	TEXT("Фунафути")},
 +	{136, 	1934, 	0, 	_T("Фунафути")},
  	{136, 	2351, 	0, 	lpwszOther},
 -	{137, 	1935, 	0, 	TEXT("Сува")},
 +	{137, 	1935, 	0, 	_T("Сува")},
  	{137, 	2352, 	0, 	lpwszOther},
 -	{138, 	3055, 	0, 	TEXT("Барлингтон")},
 -	{138, 	3049, 	0, 	TEXT("Броссард")},
 -	{138, 	3330, 	0, 	TEXT("Бурнаби")},
 -	{138, 	1169, 	0, 	TEXT("Ванкувер")},
 -	{138, 	3106, 	0, 	TEXT("Ватерлоо")},
 -	{138, 	1170, 	0, 	TEXT("Виннипег")},
 -	{138, 	1171, 	0, 	TEXT("Галифакс")},
 -	{138, 	1172, 	0, 	TEXT("Гамильтон")},
 -	{138, 	3365, 	0, 	TEXT("Денвер")},
 -	{138, 	1173, 	0, 	TEXT("Калгари")},
 -	{138, 	3104, 	0, 	TEXT("Камлупс")},
 -	{138, 	3366, 	0, 	TEXT("Каннингтон")},
 -	{138, 	1174, 	0, 	TEXT("Квебек")},
 -	{138, 	2964, 	0, 	TEXT("Кингстон")},
 -	{138, 	3113, 	0, 	TEXT("Коквитлам")},
 -	{138, 	1175, 	0, 	TEXT("Монреаль")},
 -	{138, 	2920, 	0, 	TEXT("Ниагара-Фолс")},
 -	{138, 	2889, 	0, 	TEXT("Норд-Йорк")},
 -	{138, 	1176, 	0, 	TEXT("Оттава")},
 -	{138, 	2903, 	0, 	TEXT("Порт Алберни")},
 -	{138, 	1177, 	0, 	TEXT("Ричмонд")},
 -	{138, 	1178, 	0, 	TEXT("Тимминс")},
 -	{138, 	2946, 	0, 	TEXT("Торнхилл")},
 -	{138, 	1179, 	0, 	TEXT("Торонто")},
 -	{138, 	1180, 	0, 	TEXT("Эдмонтон")},
 +	{138, 	3055, 	0, 	_T("Барлингтон")},
 +	{138, 	3049, 	0, 	_T("Броссард")},
 +	{138, 	3330, 	0, 	_T("Бурнаби")},
 +	{138, 	1169, 	0, 	_T("Ванкувер")},
 +	{138, 	3106, 	0, 	_T("Ватерлоо")},
 +	{138, 	1170, 	0, 	_T("Виннипег")},
 +	{138, 	1171, 	0, 	_T("Галифакс")},
 +	{138, 	1172, 	0, 	_T("Гамильтон")},
 +	{138, 	3365, 	0, 	_T("Денвер")},
 +	{138, 	1173, 	0, 	_T("Калгари")},
 +	{138, 	3104, 	0, 	_T("Камлупс")},
 +	{138, 	3366, 	0, 	_T("Каннингтон")},
 +	{138, 	1174, 	0, 	_T("Квебек")},
 +	{138, 	2964, 	0, 	_T("Кингстон")},
 +	{138, 	3113, 	0, 	_T("Коквитлам")},
 +	{138, 	1175, 	0, 	_T("Монреаль")},
 +	{138, 	2920, 	0, 	_T("Ниагара-Фолс")},
 +	{138, 	2889, 	0, 	_T("Норд-Йорк")},
 +	{138, 	1176, 	0, 	_T("Оттава")},
 +	{138, 	2903, 	0, 	_T("Порт Алберни")},
 +	{138, 	1177, 	0, 	_T("Ричмонд")},
 +	{138, 	1178, 	0, 	_T("Тимминс")},
 +	{138, 	2946, 	0, 	_T("Торнхилл")},
 +	{138, 	1179, 	0, 	_T("Торонто")},
 +	{138, 	1180, 	0, 	_T("Эдмонтон")},
  	{138, 	2353, 	0, 	lpwszOther},
 -	{139, 	407, 	0, 	TEXT("Вашингтон")},
 -	{139, 	426, 	0, 	TEXT("Айдахо")},
 -	{139, 	378, 	0, 	TEXT("Айова")},
 -	{139, 	412, 	0, 	TEXT("Алабама")},
 -	{139, 	446, 	0, 	TEXT("Аляска")},
 -	{139, 	434, 	0, 	TEXT("Аризона")},
 -	{139, 	416, 	0, 	TEXT("Арканзас")},
 -	{139, 	428, 	0, 	TEXT("Вайоминг")},
 -	{139, 	440, 	0, 	TEXT("Вашингтон")},
 -	{139, 	352, 	0, 	TEXT("Вермонт")},
 -	{139, 	394, 	0, 	TEXT("Виргиния")},
 -	{139, 	374, 	0, 	TEXT("Висконсин")},
 -	{139, 	448, 	0, 	TEXT("Гавайи")},
 -	{139, 	390, 	0, 	TEXT("Делавер")},
 -	{139, 	402, 	0, 	TEXT("Джорджия")},
 -	{139, 	396, 	0, 	TEXT("Западная Виргиния")},
 -	{139, 	370, 	0, 	TEXT("Иллинойс")},
 -	{139, 	368, 	0, 	TEXT("Индиана")},
 -	{139, 	444, 	0, 	TEXT("Калифорния")},
 -	{139, 	388, 	0, 	TEXT("Канзас")},
 -	{139, 	408, 	0, 	TEXT("Кентукки")},
 -	{139, 	430, 	0, 	TEXT("Колорадо")},
 -	{139, 	358, 	0, 	TEXT("Коннектикут")},
 -	{139, 	418, 	0, 	TEXT("Луизиана")},
 -	{139, 	354, 	0, 	TEXT("Массачусетс")},
 -	{139, 	376, 	0, 	TEXT("Миннесота")},
 -	{139, 	414, 	0, 	TEXT("Миссисипи")},
 -	{139, 	380, 	0, 	TEXT("Миссури")},
 -	{139, 	372, 	0, 	TEXT("Мичиган")},
 -	{139, 	424, 	0, 	TEXT("Монтана")},
 -	{139, 	348, 	0, 	TEXT("Мэн")},
 -	{139, 	392, 	0, 	TEXT("Мэриленд")},
 -	{139, 	386, 	0, 	TEXT("Небраска")},
 -	{139, 	438, 	0, 	TEXT("Невада")},
 -	{139, 	362, 	0, 	TEXT("Нью-Джерси")},
 -	{139, 	360, 	0, 	TEXT("Нью-Йорк")},
 -	{139, 	432, 	0, 	TEXT("Нью-Мексико")},
 -	{139, 	350, 	0, 	TEXT("Нью-Хэмпшир")},
 -	{139, 	366, 	0, 	TEXT("Огайо")},
 -	{139, 	420, 	0, 	TEXT("Оклахома")},
 -	{139, 	442, 	0, 	TEXT("Орегон")},
 -	{139, 	364, 	0, 	TEXT("Пенсильвания")},
 -	{139, 	450, 	0, 	TEXT("Пуэрто-Рико")},
 -	{139, 	356, 	0, 	TEXT("Род-Айленд")},
 -	{139, 	382, 	0, 	TEXT("Северная Дакота")},
 -	{139, 	398, 	0, 	TEXT("Северная Каролина")},
 -	{139, 	410, 	0, 	TEXT("Теннесси")},
 -	{139, 	422, 	0, 	TEXT("Техас")},
 -	{139, 	406, 	0, 	TEXT("Федеральный округ Колумбия")},
 -	{139, 	404, 	0, 	TEXT("Флорида")},
 -	{139, 	384, 	0, 	TEXT("Южная Дакота")},
 -	{139, 	400, 	0, 	TEXT("Южная Каролина")},
 -	{139, 	436, 	0, 	TEXT("Юта")},
 -	{140, 	1238, 	0, 	TEXT("Сент-Джонс")},
 +	{139, 	407, 	0, 	_T("Вашингтон")},
 +	{139, 	426, 	0, 	_T("Айдахо")},
 +	{139, 	378, 	0, 	_T("Айова")},
 +	{139, 	412, 	0, 	_T("Алабама")},
 +	{139, 	446, 	0, 	_T("Аляска")},
 +	{139, 	434, 	0, 	_T("Аризона")},
 +	{139, 	416, 	0, 	_T("Арканзас")},
 +	{139, 	428, 	0, 	_T("Вайоминг")},
 +	{139, 	440, 	0, 	_T("Вашингтон")},
 +	{139, 	352, 	0, 	_T("Вермонт")},
 +	{139, 	394, 	0, 	_T("Виргиния")},
 +	{139, 	374, 	0, 	_T("Висконсин")},
 +	{139, 	448, 	0, 	_T("Гавайи")},
 +	{139, 	390, 	0, 	_T("Делавер")},
 +	{139, 	402, 	0, 	_T("Джорджия")},
 +	{139, 	396, 	0, 	_T("Западная Виргиния")},
 +	{139, 	370, 	0, 	_T("Иллинойс")},
 +	{139, 	368, 	0, 	_T("Индиана")},
 +	{139, 	444, 	0, 	_T("Калифорния")},
 +	{139, 	388, 	0, 	_T("Канзас")},
 +	{139, 	408, 	0, 	_T("Кентукки")},
 +	{139, 	430, 	0, 	_T("Колорадо")},
 +	{139, 	358, 	0, 	_T("Коннектикут")},
 +	{139, 	418, 	0, 	_T("Луизиана")},
 +	{139, 	354, 	0, 	_T("Массачусетс")},
 +	{139, 	376, 	0, 	_T("Миннесота")},
 +	{139, 	414, 	0, 	_T("Миссисипи")},
 +	{139, 	380, 	0, 	_T("Миссури")},
 +	{139, 	372, 	0, 	_T("Мичиган")},
 +	{139, 	424, 	0, 	_T("Монтана")},
 +	{139, 	348, 	0, 	_T("Мэн")},
 +	{139, 	392, 	0, 	_T("Мэриленд")},
 +	{139, 	386, 	0, 	_T("Небраска")},
 +	{139, 	438, 	0, 	_T("Невада")},
 +	{139, 	362, 	0, 	_T("Нью-Джерси")},
 +	{139, 	360, 	0, 	_T("Нью-Йорк")},
 +	{139, 	432, 	0, 	_T("Нью-Мексико")},
 +	{139, 	350, 	0, 	_T("Нью-Хэмпшир")},
 +	{139, 	366, 	0, 	_T("Огайо")},
 +	{139, 	420, 	0, 	_T("Оклахома")},
 +	{139, 	442, 	0, 	_T("Орегон")},
 +	{139, 	364, 	0, 	_T("Пенсильвания")},
 +	{139, 	450, 	0, 	_T("Пуэрто-Рико")},
 +	{139, 	356, 	0, 	_T("Род-Айленд")},
 +	{139, 	382, 	0, 	_T("Северная Дакота")},
 +	{139, 	398, 	0, 	_T("Северная Каролина")},
 +	{139, 	410, 	0, 	_T("Теннесси")},
 +	{139, 	422, 	0, 	_T("Техас")},
 +	{139, 	406, 	0, 	_T("Федеральный округ Колумбия")},
 +	{139, 	404, 	0, 	_T("Флорида")},
 +	{139, 	384, 	0, 	_T("Южная Дакота")},
 +	{139, 	400, 	0, 	_T("Южная Каролина")},
 +	{139, 	436, 	0, 	_T("Юта")},
 +	{140, 	1238, 	0, 	_T("Сент-Джонс")},
  	{140, 	2442, 	0, 	lpwszOther},
 -	{141, 	1239, 	0, 	TEXT("Буэнос-Айрес")},
 +	{141, 	1239, 	0, 	_T("Буэнос-Айрес")},
  	{141, 	2441, 	0, 	lpwszOther},
 -	{142, 	1240, 	0, 	TEXT("Нассау")},
 +	{142, 	1240, 	0, 	_T("Нассау")},
  	{142, 	2440, 	0, 	lpwszOther},
 -	{143, 	1241, 	0, 	TEXT("Бриджтаун")},
 +	{143, 	1241, 	0, 	_T("Бриджтаун")},
  	{143, 	2439, 	0, 	lpwszOther},
 -	{146, 	1242, 	0, 	TEXT("Бельмопан")},
 +	{146, 	1242, 	0, 	_T("Бельмопан")},
  	{146, 	2438, 	0, 	lpwszOther},
 -	{144, 	1243, 	0, 	TEXT("Ла-Пас")},
 +	{144, 	1243, 	0, 	_T("Ла-Пас")},
  	{144, 	2437, 	0, 	lpwszOther},
 -	{145, 	1244, 	0, 	TEXT("Бразилиа")},
 -	{145, 	3094, 	0, 	TEXT("Пассо Фундо")},
 -	{145, 	1245, 	0, 	TEXT("Рио-де-Жанейро")},
 -	{145, 	1246, 	0, 	TEXT("Сан-Паулу")},
 +	{145, 	1244, 	0, 	_T("Бразилиа")},
 +	{145, 	3094, 	0, 	_T("Пассо Фундо")},
 +	{145, 	1245, 	0, 	_T("Рио-де-Жанейро")},
 +	{145, 	1246, 	0, 	_T("Сан-Паулу")},
  	{145, 	2436, 	0, 	lpwszOther},
 -	{147, 	1247, 	0, 	TEXT("Каракас")},
 +	{147, 	1247, 	0, 	_T("Каракас")},
  	{147, 	2435, 	0, 	lpwszOther},
 -	{452, 	1190, 	0, 	TEXT("Шарлотта-Амалия")},
 +	{452, 	1190, 	0, 	_T("Шарлотта-Амалия")},
  	{452, 	2364, 	0, 	lpwszOther},
 -	{149, 	1248, 	0, 	TEXT("Порт-о-Пренс")},
 +	{149, 	1248, 	0, 	_T("Порт-о-Пренс")},
  	{149, 	2434, 	0, 	lpwszOther},
 -	{148, 	1249, 	0, 	TEXT("Джоржтаун")},
 +	{148, 	1249, 	0, 	_T("Джоржтаун")},
  	{148, 	2433, 	0, 	lpwszOther},
 -	{173, 	1250, 	0, 	TEXT("Гватемала")},
 +	{173, 	1250, 	0, 	_T("Гватемала")},
  	{173, 	2432, 	0, 	lpwszOther},
 -	{150, 	1251, 	0, 	TEXT("Тегусигальпа")},
 +	{150, 	1251, 	0, 	_T("Тегусигальпа")},
  	{150, 	2431, 	0, 	lpwszOther},
 -	{151, 	1252, 	0, 	TEXT("Сент-Джорджес")},
 +	{151, 	1252, 	0, 	_T("Сент-Джорджес")},
  	{151, 	2430, 	0, 	lpwszOther},
 -	{152, 	1253, 	0, 	TEXT("Уманак")},
 +	{152, 	1253, 	0, 	_T("Уманак")},
  	{152, 	2429, 	0, 	lpwszOther},
 -	{153, 	1254, 	0, 	TEXT("Розо")},
 +	{153, 	1254, 	0, 	_T("Розо")},
  	{153, 	2428, 	0, 	lpwszOther},
 -	{154, 	1255, 	0, 	TEXT("Санто-Доминго")},
 +	{154, 	1255, 	0, 	_T("Санто-Доминго")},
  	{154, 	2427, 	0, 	lpwszOther},
 -	{155, 	1256, 	0, 	TEXT("Богота")},
 +	{155, 	1256, 	0, 	_T("Богота")},
  	{155, 	2426, 	0, 	lpwszOther},
 -	{156, 	1257, 	0, 	TEXT("Сан-Хосе")},
 +	{156, 	1257, 	0, 	_T("Сан-Хосе")},
  	{156, 	2425, 	0, 	lpwszOther},
 -	{157, 	1258, 	0, 	TEXT("Гавана")},
 +	{157, 	1258, 	0, 	_T("Гавана")},
  	{157, 	2424, 	0, 	lpwszOther},
 -	{158, 	1259, 	0, 	TEXT("Акапулько")},
 -	{158, 	1260, 	0, 	TEXT("Мехико")},
 +	{158, 	1259, 	0, 	_T("Акапулько")},
 +	{158, 	1260, 	0, 	_T("Мехико")},
  	{158, 	2423, 	0, 	lpwszOther},
 -	{159, 	1261, 	0, 	TEXT("Манагуа")},
 +	{159, 	1261, 	0, 	_T("Манагуа")},
  	{159, 	2422, 	0, 	lpwszOther},
 -	{160, 	1262, 	0, 	TEXT("Панама")},
 +	{160, 	1262, 	0, 	_T("Панама")},
  	{160, 	2421, 	0, 	lpwszOther},
 -	{161, 	1263, 	0, 	TEXT("Асунсьон")},
 +	{161, 	1263, 	0, 	_T("Асунсьон")},
  	{161, 	2420, 	0, 	lpwszOther},
 -	{162, 	1264, 	0, 	TEXT("Лима")},
 +	{162, 	1264, 	0, 	_T("Лима")},
  	{162, 	2419, 	0, 	lpwszOther},
 -	{163, 	1265, 	0, 	TEXT("Сан-Сальвадор")},
 +	{163, 	1265, 	0, 	_T("Сан-Сальвадор")},
  	{163, 	2418, 	0, 	lpwszOther},
 -	{164, 	1266, 	0, 	TEXT("Кингстаун")},
 +	{164, 	1266, 	0, 	_T("Кингстаун")},
  	{164, 	2417, 	0, 	lpwszOther},
 -	{165, 	1267, 	0, 	TEXT("Бастер")},
 +	{165, 	1267, 	0, 	_T("Бастер")},
  	{165, 	2416, 	0, 	lpwszOther},
 -	{166, 	1268, 	0, 	TEXT("Кастри")},
 +	{166, 	1268, 	0, 	_T("Кастри")},
  	{166, 	2415, 	0, 	lpwszOther},
 -	{167, 	1269, 	0, 	TEXT("Парамарибо")},
 +	{167, 	1269, 	0, 	_T("Парамарибо")},
  	{167, 	2414, 	0, 	lpwszOther},
 -	{168, 	1270, 	0, 	TEXT("Порт-оф-Спейн")},
 +	{168, 	1270, 	0, 	_T("Порт-оф-Спейн")},
  	{168, 	2413, 	0, 	lpwszOther},
 -	{169, 	1271, 	0, 	TEXT("Монтевидео")},
 +	{169, 	1271, 	0, 	_T("Монтевидео")},
  	{169, 	2412, 	0, 	lpwszOther},
 -	{170, 	1272, 	0, 	TEXT("Сантьяго")},
 +	{170, 	1272, 	0, 	_T("Сантьяго")},
  	{170, 	2411, 	0, 	lpwszOther},
 -	{171, 	1273, 	0, 	TEXT("Гуаякиль")},
 -	{171, 	1274, 	0, 	TEXT("Кито")},
 +	{171, 	1273, 	0, 	_T("Гуаякиль")},
 +	{171, 	1274, 	0, 	_T("Кито")},
  	{171, 	2410, 	0, 	lpwszOther},
 -	{172, 	1275, 	0, 	TEXT("Кингстон")},
 +	{172, 	1275, 	0, 	_T("Кингстон")},
  	{172, 	2409, 	0, 	lpwszOther},
 -	{174, 	1854, 	0, 	TEXT("Алжир")},
 +	{174, 	1854, 	0, 	_T("Алжир")},
  	{174, 	2495, 	0, 	lpwszOther},
 -	{175, 	1855, 	0, 	TEXT("Луанда")},
 +	{175, 	1855, 	0, 	_T("Луанда")},
  	{175, 	2494, 	0, 	lpwszOther},
 -	{176, 	1856, 	0, 	TEXT("Котону")},
 -	{176, 	1857, 	0, 	TEXT("Порто-Ново")},
 +	{176, 	1856, 	0, 	_T("Котону")},
 +	{176, 	1857, 	0, 	_T("Порто-Ново")},
  	{176, 	2493, 	0, 	lpwszOther},
 -	{177, 	1858, 	0, 	TEXT("Габороне")},
 +	{177, 	1858, 	0, 	_T("Габороне")},
  	{177, 	2492, 	0, 	lpwszOther},
 -	{178, 	1859, 	0, 	TEXT("Уагадугу")},
 +	{178, 	1859, 	0, 	_T("Уагадугу")},
  	{178, 	2491, 	0, 	lpwszOther},
 -	{179, 	1860, 	0, 	TEXT("Бужумбуру")},
 +	{179, 	1860, 	0, 	_T("Бужумбуру")},
  	{179, 	2490, 	0, 	lpwszOther},
 -	{180, 	1861, 	0, 	TEXT("Либревиль")},
 +	{180, 	1861, 	0, 	_T("Либревиль")},
  	{180, 	2489, 	0, 	lpwszOther},
 -	{181, 	1862, 	0, 	TEXT("Банжул")},
 +	{181, 	1862, 	0, 	_T("Банжул")},
  	{181, 	2488, 	0, 	lpwszOther},
 -	{182, 	1863, 	0, 	TEXT("Аккра")},
 +	{182, 	1863, 	0, 	_T("Аккра")},
  	{182, 	2487, 	0, 	lpwszOther},
 -	{183, 	1864, 	0, 	TEXT("Конакри")},
 +	{183, 	1864, 	0, 	_T("Конакри")},
  	{183, 	2486, 	0, 	lpwszOther},
 -	{184, 	1865, 	0, 	TEXT("Бисау")},
 +	{184, 	1865, 	0, 	_T("Бисау")},
  	{184, 	2485, 	0, 	lpwszOther},
 -	{185, 	1866, 	0, 	TEXT("Джибути")},
 +	{185, 	1866, 	0, 	_T("Джибути")},
  	{185, 	2484, 	0, 	lpwszOther},
 -	{186, 	3312, 	0, 	TEXT("Дахаб")},
 -	{186, 	1867, 	0, 	TEXT("Каир")},
 -	{186, 	1868, 	0, 	TEXT("Хургада")},
 +	{186, 	3312, 	0, 	_T("Дахаб")},
 +	{186, 	1867, 	0, 	_T("Каир")},
 +	{186, 	1868, 	0, 	_T("Хургада")},
  	{186, 	2483, 	0, 	lpwszOther},
 -	{187, 	1869, 	0, 	TEXT("Лусака")},
 +	{187, 	1869, 	0, 	_T("Лусака")},
  	{187, 	2482, 	0, 	lpwszOther},
 -	{23, 	1870, 	0, 	TEXT("Хараре")},
 +	{23, 	1870, 	0, 	_T("Хараре")},
  	{23, 	2481, 	0, 	lpwszOther},
 -	{188, 	1871, 	0, 	TEXT("Прая")},
 +	{188, 	1871, 	0, 	_T("Прая")},
  	{188, 	2480, 	0, 	lpwszOther},
 -	{189, 	1872, 	0, 	TEXT("Яунде")},
 +	{189, 	1872, 	0, 	_T("Яунде")},
  	{189, 	2479, 	0, 	lpwszOther},
 -	{190, 	1873, 	0, 	TEXT("Найроби")},
 +	{190, 	1873, 	0, 	_T("Найроби")},
  	{190, 	2478, 	0, 	lpwszOther},
 -	{191, 	1874, 	0, 	TEXT("Морони")},
 +	{191, 	1874, 	0, 	_T("Морони")},
  	{191, 	2477, 	0, 	lpwszOther},
 -	{193, 	1875, 	0, 	TEXT("Киншаса")},
 +	{193, 	1875, 	0, 	_T("Киншаса")},
  	{193, 	2476, 	0, 	lpwszOther},
 -	{192, 	1876, 	0, 	TEXT("Браззавиль")},
 +	{192, 	1876, 	0, 	_T("Браззавиль")},
  	{192, 	2475, 	0, 	lpwszOther},
 -	{194, 	1877, 	0, 	TEXT("Ямусукро")},
 +	{194, 	1877, 	0, 	_T("Ямусукро")},
  	{194, 	2474, 	0, 	lpwszOther},
 -	{195, 	1878, 	0, 	TEXT("Масеру")},
 +	{195, 	1878, 	0, 	_T("Масеру")},
  	{195, 	2473, 	0, 	lpwszOther},
 -	{196, 	1879, 	0, 	TEXT("Монровия")},
 +	{196, 	1879, 	0, 	_T("Монровия")},
  	{196, 	2472, 	0, 	lpwszOther},
 -	{197, 	1880, 	0, 	TEXT("Триполи")},
 +	{197, 	1880, 	0, 	_T("Триполи")},
  	{197, 	2471, 	0, 	lpwszOther},
 -	{198, 	1881, 	0, 	TEXT("Порт-Луи")},
 +	{198, 	1881, 	0, 	_T("Порт-Луи")},
  	{198, 	2470, 	0, 	lpwszOther},
 -	{199, 	1882, 	0, 	TEXT("Нуакшот")},
 +	{199, 	1882, 	0, 	_T("Нуакшот")},
  	{199, 	2469, 	0, 	lpwszOther},
 -	{200, 	1883, 	0, 	TEXT("Антананариву")},
 +	{200, 	1883, 	0, 	_T("Антананариву")},
  	{200, 	2468, 	0, 	lpwszOther},
 -	{201, 	1884, 	0, 	TEXT("Лилонгве")},
 +	{201, 	1884, 	0, 	_T("Лилонгве")},
  	{201, 	2467, 	0, 	lpwszOther},
 -	{202, 	1885, 	0, 	TEXT("Бамако")},
 +	{202, 	1885, 	0, 	_T("Бамако")},
  	{202, 	2466, 	0, 	lpwszOther},
 -	{203, 	1886, 	0, 	TEXT("Агадир")},
 -	{203, 	1887, 	0, 	TEXT("Рабат")},
 +	{203, 	1886, 	0, 	_T("Агадир")},
 +	{203, 	1887, 	0, 	_T("Рабат")},
  	{203, 	2465, 	0, 	lpwszOther},
 -	{204, 	1888, 	0, 	TEXT("Мапуту")},
 +	{204, 	1888, 	0, 	_T("Мапуту")},
  	{204, 	2464, 	0, 	lpwszOther},
 -	{205, 	1889, 	0, 	TEXT("Виндхук")},
 +	{205, 	1889, 	0, 	_T("Виндхук")},
  	{205, 	2463, 	0, 	lpwszOther},
 -	{206, 	1890, 	0, 	TEXT("Ниамей")},
 +	{206, 	1890, 	0, 	_T("Ниамей")},
  	{206, 	2462, 	0, 	lpwszOther},
 -	{207, 	1891, 	0, 	TEXT("Абуджа")},
 +	{207, 	1891, 	0, 	_T("Абуджа")},
  	{207, 	2461, 	0, 	lpwszOther},
 -	{208, 	1892, 	0, 	TEXT("Кигали")},
 +	{208, 	1892, 	0, 	_T("Кигали")},
  	{208, 	2460, 	0, 	lpwszOther},
 -	{209, 	1893, 	0, 	TEXT("Сан-Томе")},
 +	{209, 	1893, 	0, 	_T("Сан-Томе")},
  	{209, 	2459, 	0, 	lpwszOther},
 -	{210, 	1894, 	0, 	TEXT("Мбабане")},
 +	{210, 	1894, 	0, 	_T("Мбабане")},
  	{210, 	2458, 	0, 	lpwszOther},
 -	{211, 	1895, 	0, 	TEXT("Виктория")},
 +	{211, 	1895, 	0, 	_T("Виктория")},
  	{211, 	2457, 	0, 	lpwszOther},
 -	{212, 	1896, 	0, 	TEXT("Дакар")},
 +	{212, 	1896, 	0, 	_T("Дакар")},
  	{212, 	2456, 	0, 	lpwszOther},
 -	{213, 	1897, 	0, 	TEXT("Могадишо")},
 +	{213, 	1897, 	0, 	_T("Могадишо")},
  	{213, 	2455, 	0, 	lpwszOther},
 -	{214, 	1898, 	0, 	TEXT("Хартум")},
 +	{214, 	1898, 	0, 	_T("Хартум")},
  	{214, 	2454, 	0, 	lpwszOther},
 -	{215, 	1899, 	0, 	TEXT("Фритаун")},
 +	{215, 	1899, 	0, 	_T("Фритаун")},
  	{215, 	2453, 	0, 	lpwszOther},
 -	{216, 	1900, 	0, 	TEXT("Дар-эс-Салам")},
 -	{216, 	1901, 	0, 	TEXT("Додома")},
 +	{216, 	1900, 	0, 	_T("Дар-эс-Салам")},
 +	{216, 	1901, 	0, 	_T("Додома")},
  	{216, 	2452, 	0, 	lpwszOther},
 -	{217, 	1902, 	0, 	TEXT("Ломе")},
 +	{217, 	1902, 	0, 	_T("Ломе")},
  	{217, 	2451, 	0, 	lpwszOther},
 -	{218, 	1903, 	0, 	TEXT("Тунис")},
 +	{218, 	1903, 	0, 	_T("Тунис")},
  	{218, 	2450, 	0, 	lpwszOther},
 -	{219, 	1904, 	0, 	TEXT("Кампала")},
 +	{219, 	1904, 	0, 	_T("Кампала")},
  	{219, 	2449, 	0, 	lpwszOther},
 -	{220, 	1905, 	0, 	TEXT("Банги")},
 +	{220, 	1905, 	0, 	_T("Банги")},
  	{220, 	2448, 	0, 	lpwszOther},
 -	{222, 	1906, 	0, 	TEXT("Нджамена")},
 +	{222, 	1906, 	0, 	_T("Нджамена")},
  	{222, 	2447, 	0, 	lpwszOther},
 -	{223, 	1907, 	0, 	TEXT("Малабо")},
 +	{223, 	1907, 	0, 	_T("Малабо")},
  	{223, 	2446, 	0, 	lpwszOther},
 -	{221, 	1908, 	0, 	TEXT("Асмэра")},
 +	{221, 	1908, 	0, 	_T("Асмэра")},
  	{221, 	2445, 	0, 	lpwszOther},
 -	{224, 	1909, 	0, 	TEXT("Аддис-Абеба")},
 +	{224, 	1909, 	0, 	_T("Аддис-Абеба")},
  	{224, 	2444, 	0, 	lpwszOther},
 -	{225, 	1910, 	0, 	TEXT("Дурбан")},
 -	{225, 	1913, 	0, 	TEXT("Йоханнесбург")},
 -	{225, 	1912, 	0, 	TEXT("Кейптаун")},
 -	{225, 	3033, 	0, 	TEXT("Пайнтаун")},
 -	{225, 	1911, 	0, 	TEXT("Претория")},
 +	{225, 	1910, 	0, 	_T("Дурбан")},
 +	{225, 	1913, 	0, 	_T("Йоханнесбург")},
 +	{225, 	1912, 	0, 	_T("Кейптаун")},
 +	{225, 	3033, 	0, 	_T("Пайнтаун")},
 +	{225, 	1911, 	0, 	_T("Претория")},
  	{225, 	2443, 	0, 	lpwszOther},
 -	{39, 	314, 	0, 	TEXT("Киев")},
 -	{39, 	315, 	0, 	TEXT("Винницкая обл.")},
 -	{39, 	316, 	0, 	TEXT("Волынская обл.")},
 -	{39, 	317, 	0, 	TEXT("Днепропетровская обл.")},
 -	{39, 	318, 	0, 	TEXT("Донецкая обл.")},
 -	{39, 	319, 	0, 	TEXT("Житомирская обл.")},
 -	{39, 	320, 	0, 	TEXT("Закарпатская обл.")},
 -	{39, 	321, 	0, 	TEXT("Запорожская обл.")},
 -	{39, 	322, 	0, 	TEXT("Ивано-Франковская обл.")},
 -	{39, 	323, 	0, 	TEXT("Киевская обл.")},
 -	{39, 	324, 	0, 	TEXT("Кировоградская обл.")},
 -	{39, 	325, 	0, 	TEXT("Крым")},
 -	{39, 	326, 	0, 	TEXT("Луганская обл.")},
 -	{39, 	327, 	0, 	TEXT("Львовская обл.")},
 -	{39, 	328, 	0, 	TEXT("Николаевская обл.")},
 -	{39, 	329, 	0, 	TEXT("Одесская обл.")},
 -	{39, 	330, 	0, 	TEXT("Полтавская обл.")},
 -	{39, 	331, 	0, 	TEXT("Ровенская обл.")},
 -	{39, 	332, 	0, 	TEXT("Сумская обл.")},
 -	{39, 	333, 	0, 	TEXT("Тернопольская обл.")},
 -	{39, 	334, 	0, 	TEXT("Харьковская обл.")},
 -	{39, 	335, 	0, 	TEXT("Херсонская обл.")},
 -	{39, 	336, 	0, 	TEXT("Хмельницкая обл.")},
 -	{39, 	337, 	0, 	TEXT("Черкасская обл.")},
 -	{39, 	338, 	0, 	TEXT("Черниговская обл.")},
 -	{39, 	339, 	0, 	TEXT("Черновицкая обл.")},
 -	{40, 	602, 	0, 	TEXT("Бад Халл")},
 -	{40, 	604, 	0, 	TEXT("Брегенц")},
 -	{40, 	603, 	0, 	TEXT("Вена")},
 -	{40, 	608, 	0, 	TEXT("Грац")},
 -	{40, 	606, 	0, 	TEXT("Зальцбург")},
 -	{40, 	3099, 	0, 	TEXT("Зель-ам-Зее")},
 -	{40, 	605, 	0, 	TEXT("Инсбрук")},
 -	{40, 	3174, 	0, 	TEXT("Кирхберг")},
 -	{40, 	609, 	0, 	TEXT("Клагенфурт")},
 -	{40, 	607, 	0, 	TEXT("Линц")},
 -	{40, 	610, 	0, 	TEXT("Обдах")},
 -	{40, 	611, 	0, 	TEXT("Щтубайтал")},
 +	{39, 	314, 	0, 	_T("Киев")},
 +	{39, 	315, 	0, 	_T("Винницкая обл.")},
 +	{39, 	316, 	0, 	_T("Волынская обл.")},
 +	{39, 	317, 	0, 	_T("Днепропетровская обл.")},
 +	{39, 	318, 	0, 	_T("Донецкая обл.")},
 +	{39, 	319, 	0, 	_T("Житомирская обл.")},
 +	{39, 	320, 	0, 	_T("Закарпатская обл.")},
 +	{39, 	321, 	0, 	_T("Запорожская обл.")},
 +	{39, 	322, 	0, 	_T("Ивано-Франковская обл.")},
 +	{39, 	323, 	0, 	_T("Киевская обл.")},
 +	{39, 	324, 	0, 	_T("Кировоградская обл.")},
 +	{39, 	325, 	0, 	_T("Крым")},
 +	{39, 	326, 	0, 	_T("Луганская обл.")},
 +	{39, 	327, 	0, 	_T("Львовская обл.")},
 +	{39, 	328, 	0, 	_T("Николаевская обл.")},
 +	{39, 	329, 	0, 	_T("Одесская обл.")},
 +	{39, 	330, 	0, 	_T("Полтавская обл.")},
 +	{39, 	331, 	0, 	_T("Ровенская обл.")},
 +	{39, 	332, 	0, 	_T("Сумская обл.")},
 +	{39, 	333, 	0, 	_T("Тернопольская обл.")},
 +	{39, 	334, 	0, 	_T("Харьковская обл.")},
 +	{39, 	335, 	0, 	_T("Херсонская обл.")},
 +	{39, 	336, 	0, 	_T("Хмельницкая обл.")},
 +	{39, 	337, 	0, 	_T("Черкасская обл.")},
 +	{39, 	338, 	0, 	_T("Черниговская обл.")},
 +	{39, 	339, 	0, 	_T("Черновицкая обл.")},
 +	{40, 	602, 	0, 	_T("Бад Халл")},
 +	{40, 	604, 	0, 	_T("Брегенц")},
 +	{40, 	603, 	0, 	_T("Вена")},
 +	{40, 	608, 	0, 	_T("Грац")},
 +	{40, 	606, 	0, 	_T("Зальцбург")},
 +	{40, 	3099, 	0, 	_T("Зель-ам-Зее")},
 +	{40, 	605, 	0, 	_T("Инсбрук")},
 +	{40, 	3174, 	0, 	_T("Кирхберг")},
 +	{40, 	609, 	0, 	_T("Клагенфурт")},
 +	{40, 	607, 	0, 	_T("Линц")},
 +	{40, 	610, 	0, 	_T("Обдах")},
 +	{40, 	611, 	0, 	_T("Щтубайтал")},
  	{40, 	2541, 	0, 	lpwszOther},
 -	{32, 	612, 	0, 	TEXT("Тирана")},
 +	{32, 	612, 	0, 	_T("Тирана")},
  	{32, 	2540, 	0, 	lpwszOther},
 -	{33, 	613, 	0, 	TEXT("Андорра-ла-Велья")},
 +	{33, 	613, 	0, 	_T("Андорра-ла-Велья")},
  	{33, 	2539, 	0, 	lpwszOther},
 -	{340, 	341, 	0, 	TEXT("Минск")},
 -	{340, 	342, 	0, 	TEXT("Брестская обл.")},
 -	{340, 	343, 	0, 	TEXT("Витебская обл.")},
 -	{340, 	344, 	0, 	TEXT("Гомельская обл.")},
 -	{340, 	345, 	0, 	TEXT("Гродненская обл.")},
 -	{340, 	346, 	0, 	TEXT("Минская обл.")},
 -	{340, 	347, 	0, 	TEXT("Могилевская обл.")},
 -	{38, 	760, 	0, 	TEXT("Антверпен")},
 -	{38, 	767, 	0, 	TEXT("Арлон")},
 -	{38, 	762, 	0, 	TEXT("Брюгге")},
 -	{38, 	761, 	0, 	TEXT("Брюссель")},
 -	{38, 	763, 	0, 	TEXT("Гент")},
 -	{38, 	769, 	0, 	TEXT("Лувен")},
 -	{38, 	765, 	0, 	TEXT("Льеж")},
 -	{38, 	764, 	0, 	TEXT("Монс")},
 -	{38, 	3117, 	0, 	TEXT("Мортсель")},
 -	{38, 	766, 	0, 	TEXT("Намюр")},
 -	{38, 	768, 	0, 	TEXT("Хасселт")},
 +	{340, 	341, 	0, 	_T("Минск")},
 +	{340, 	342, 	0, 	_T("Брестская обл.")},
 +	{340, 	343, 	0, 	_T("Витебская обл.")},
 +	{340, 	344, 	0, 	_T("Гомельская обл.")},
 +	{340, 	345, 	0, 	_T("Гродненская обл.")},
 +	{340, 	346, 	0, 	_T("Минская обл.")},
 +	{340, 	347, 	0, 	_T("Могилевская обл.")},
 +	{38, 	760, 	0, 	_T("Антверпен")},
 +	{38, 	767, 	0, 	_T("Арлон")},
 +	{38, 	762, 	0, 	_T("Брюгге")},
 +	{38, 	761, 	0, 	_T("Брюссель")},
 +	{38, 	763, 	0, 	_T("Гент")},
 +	{38, 	769, 	0, 	_T("Лувен")},
 +	{38, 	765, 	0, 	_T("Льеж")},
 +	{38, 	764, 	0, 	_T("Монс")},
 +	{38, 	3117, 	0, 	_T("Мортсель")},
 +	{38, 	766, 	0, 	_T("Намюр")},
 +	{38, 	768, 	0, 	_T("Хасселт")},
  	{38, 	2532, 	0, 	lpwszOther},
 -	{41, 	3098, 	0, 	TEXT("Банско")},
 -	{41, 	792, 	0, 	TEXT("Благоевград")},
 -	{41, 	770, 	0, 	TEXT("Бургас")},
 -	{41, 	771, 	0, 	TEXT("Бяла")},
 -	{41, 	773, 	0, 	TEXT("Варна")},
 -	{41, 	776, 	0, 	TEXT("Велико-Тырново")},
 -	{41, 	788, 	0, 	TEXT("Видин")},
 -	{41, 	789, 	0, 	TEXT("Враца")},
 -	{41, 	796, 	0, 	TEXT("Габрово")},
 -	{41, 	777, 	0, 	TEXT("Димитровград")},
 -	{41, 	781, 	0, 	TEXT("Каварна")},
 -	{41, 	786, 	0, 	TEXT("Кырджали")},
 -	{41, 	791, 	0, 	TEXT("Кюстендил")},
 -	{41, 	793, 	0, 	TEXT("Лазарджик")},
 -	{41, 	795, 	0, 	TEXT("Ловеч")},
 -	{41, 	787, 	0, 	TEXT("Михайловград")},
 -	{41, 	790, 	0, 	TEXT("Перник")},
 -	{41, 	3133, 	0, 	TEXT("Пирдоп")},
 -	{41, 	794, 	0, 	TEXT("Плевен")},
 -	{41, 	782, 	0, 	TEXT("Пловдив")},
 -	{41, 	780, 	0, 	TEXT("Разград")},
 -	{41, 	779, 	0, 	TEXT("Русе")},
 -	{41, 	774, 	0, 	TEXT("Силистра")},
 -	{41, 	784, 	0, 	TEXT("Сливен")},
 -	{41, 	772, 	0, 	TEXT("София")},
 -	{41, 	775, 	0, 	TEXT("Толбухин")},
 -	{41, 	3116, 	0, 	TEXT("Тырново")},
 -	{41, 	785, 	0, 	TEXT("Хасково")},
 -	{41, 	778, 	0, 	TEXT("Шумен")},
 -	{41, 	783, 	0, 	TEXT("Ямбол")},
 +	{41, 	3098, 	0, 	_T("Банско")},
 +	{41, 	792, 	0, 	_T("Благоевград")},
 +	{41, 	770, 	0, 	_T("Бургас")},
 +	{41, 	771, 	0, 	_T("Бяла")},
 +	{41, 	773, 	0, 	_T("Варна")},
 +	{41, 	776, 	0, 	_T("Велико-Тырново")},
 +	{41, 	788, 	0, 	_T("Видин")},
 +	{41, 	789, 	0, 	_T("Враца")},
 +	{41, 	796, 	0, 	_T("Габрово")},
 +	{41, 	777, 	0, 	_T("Димитровград")},
 +	{41, 	781, 	0, 	_T("Каварна")},
 +	{41, 	786, 	0, 	_T("Кырджали")},
 +	{41, 	791, 	0, 	_T("Кюстендил")},
 +	{41, 	793, 	0, 	_T("Лазарджик")},
 +	{41, 	795, 	0, 	_T("Ловеч")},
 +	{41, 	787, 	0, 	_T("Михайловград")},
 +	{41, 	790, 	0, 	_T("Перник")},
 +	{41, 	3133, 	0, 	_T("Пирдоп")},
 +	{41, 	794, 	0, 	_T("Плевен")},
 +	{41, 	782, 	0, 	_T("Пловдив")},
 +	{41, 	780, 	0, 	_T("Разград")},
 +	{41, 	779, 	0, 	_T("Русе")},
 +	{41, 	774, 	0, 	_T("Силистра")},
 +	{41, 	784, 	0, 	_T("Сливен")},
 +	{41, 	772, 	0, 	_T("София")},
 +	{41, 	775, 	0, 	_T("Толбухин")},
 +	{41, 	3116, 	0, 	_T("Тырново")},
 +	{41, 	785, 	0, 	_T("Хасково")},
 +	{41, 	778, 	0, 	_T("Шумен")},
 +	{41, 	783, 	0, 	_T("Ямбол")},
  	{41, 	2531, 	0, 	lpwszOther},
 -	{42, 	797, 	0, 	TEXT("Баня-Лука")},
 -	{42, 	799, 	0, 	TEXT("Зеница")},
 -	{42, 	798, 	0, 	TEXT("Сараево")},
 -	{42, 	800, 	0, 	TEXT("Тузла")},
 +	{42, 	797, 	0, 	_T("Баня-Лука")},
 +	{42, 	799, 	0, 	_T("Зеница")},
 +	{42, 	798, 	0, 	_T("Сараево")},
 +	{42, 	800, 	0, 	_T("Тузла")},
  	{42, 	2530, 	0, 	lpwszOther},
 -	{45, 	802, 	0, 	TEXT("Абердин")},
 -	{45, 	3075, 	0, 	TEXT("Айслворт")},
 -	{45, 	801, 	0, 	TEXT("Алнвик")},
 -	{45, 	804, 	0, 	TEXT("Бидефорд")},
 -	{45, 	803, 	0, 	TEXT("Бирмингем")},
 -	{45, 	805, 	0, 	TEXT("Блоксвич")},
 -	{45, 	3168, 	0, 	TEXT("Бостон")},
 -	{45, 	806, 	0, 	TEXT("Брайтон")},
 -	{45, 	807, 	0, 	TEXT("Бредфорд")},
 -	{45, 	808, 	0, 	TEXT("Бристоль")},
 -	{45, 	809, 	0, 	TEXT("Вилленхолл")},
 -	{45, 	3131, 	0, 	TEXT("Воррингтон")},
 -	{45, 	810, 	0, 	TEXT("Вудбридж")},
 -	{45, 	3342, 	0, 	TEXT("Гилфорд")},
 -	{45, 	811, 	0, 	TEXT("Глазго")},
 -	{45, 	812, 	0, 	TEXT("Дадли")},
 -	{45, 	813, 	0, 	TEXT("Дарем")},
 -	{45, 	814, 	0, 	TEXT("Дуглас")},
 -	{45, 	3089, 	0, 	TEXT("Кардиф")},
 -	{45, 	815, 	0, 	TEXT("Кембридж")},
 -	{45, 	816, 	0, 	TEXT("Кентербери")},
 -	{45, 	817, 	0, 	TEXT("Ливерпуль")},
 -	{45, 	818, 	0, 	TEXT("Лидс")},
 -	{45, 	819, 	0, 	TEXT("Лондон")},
 -	{45, 	820, 	0, 	TEXT("Манчестер")},
 -	{45, 	2976, 	0, 	TEXT("Митчем")},
 -	{45, 	2988, 	0, 	TEXT("Мэйденхед")},
 -	{45, 	821, 	0, 	TEXT("Ноттингем")},
 -	{45, 	3088, 	0, 	TEXT("Ньюпорт")},
 -	{45, 	822, 	0, 	TEXT("Оксфорд")},
 -	{45, 	823, 	0, 	TEXT("Плимут")},
 -	{45, 	824, 	0, 	TEXT("Портсмут")},
 -	{45, 	825, 	0, 	TEXT("Престон")},
 -	{45, 	3343, 	0, 	TEXT("Райд")},
 -	{45, 	2867, 	0, 	TEXT("Ридинг")},
 -	{45, 	2986, 	0, 	TEXT("Сент-Албанс")},
 -	{45, 	826, 	0, 	TEXT("Стаффорд")},
 -	{45, 	3063, 	0, 	TEXT("Стокпорт")},
 -	{45, 	827, 	0, 	TEXT("Уэймут")},
 -	{45, 	3140, 	0, 	TEXT("Челтенхэм")},
 -	{45, 	828, 	0, 	TEXT("Честер")},
 -	{45, 	829, 	0, 	TEXT("Шеффилд")},
 -	{45, 	830, 	0, 	TEXT("Эдинбург")},
 +	{45, 	802, 	0, 	_T("Абердин")},
 +	{45, 	3075, 	0, 	_T("Айслворт")},
 +	{45, 	801, 	0, 	_T("Алнвик")},
 +	{45, 	804, 	0, 	_T("Бидефорд")},
 +	{45, 	803, 	0, 	_T("Бирмингем")},
 +	{45, 	805, 	0, 	_T("Блоксвич")},
 +	{45, 	3168, 	0, 	_T("Бостон")},
 +	{45, 	806, 	0, 	_T("Брайтон")},
 +	{45, 	807, 	0, 	_T("Бредфорд")},
 +	{45, 	808, 	0, 	_T("Бристоль")},
 +	{45, 	809, 	0, 	_T("Вилленхолл")},
 +	{45, 	3131, 	0, 	_T("Воррингтон")},
 +	{45, 	810, 	0, 	_T("Вудбридж")},
 +	{45, 	3342, 	0, 	_T("Гилфорд")},
 +	{45, 	811, 	0, 	_T("Глазго")},
 +	{45, 	812, 	0, 	_T("Дадли")},
 +	{45, 	813, 	0, 	_T("Дарем")},
 +	{45, 	814, 	0, 	_T("Дуглас")},
 +	{45, 	3089, 	0, 	_T("Кардиф")},
 +	{45, 	815, 	0, 	_T("Кембридж")},
 +	{45, 	816, 	0, 	_T("Кентербери")},
 +	{45, 	817, 	0, 	_T("Ливерпуль")},
 +	{45, 	818, 	0, 	_T("Лидс")},
 +	{45, 	819, 	0, 	_T("Лондон")},
 +	{45, 	820, 	0, 	_T("Манчестер")},
 +	{45, 	2976, 	0, 	_T("Митчем")},
 +	{45, 	2988, 	0, 	_T("Мэйденхед")},
 +	{45, 	821, 	0, 	_T("Ноттингем")},
 +	{45, 	3088, 	0, 	_T("Ньюпорт")},
 +	{45, 	822, 	0, 	_T("Оксфорд")},
 +	{45, 	823, 	0, 	_T("Плимут")},
 +	{45, 	824, 	0, 	_T("Портсмут")},
 +	{45, 	825, 	0, 	_T("Престон")},
 +	{45, 	3343, 	0, 	_T("Райд")},
 +	{45, 	2867, 	0, 	_T("Ридинг")},
 +	{45, 	2986, 	0, 	_T("Сент-Албанс")},
 +	{45, 	826, 	0, 	_T("Стаффорд")},
 +	{45, 	3063, 	0, 	_T("Стокпорт")},
 +	{45, 	827, 	0, 	_T("Уэймут")},
 +	{45, 	3140, 	0, 	_T("Челтенхэм")},
 +	{45, 	828, 	0, 	_T("Честер")},
 +	{45, 	829, 	0, 	_T("Шеффилд")},
 +	{45, 	830, 	0, 	_T("Эдинбург")},
  	{45, 	2529, 	0, 	lpwszOther},
 -	{44, 	831, 	0, 	TEXT("Будапешт")},
 -	{44, 	832, 	0, 	TEXT("Геделле")},
 -	{44, 	836, 	0, 	TEXT("Дебрецен")},
 -	{44, 	835, 	0, 	TEXT("Мишкольц")},
 -	{44, 	834, 	0, 	TEXT("Сегед")},
 -	{44, 	833, 	0, 	TEXT("Шиофок")},
 +	{44, 	831, 	0, 	_T("Будапешт")},
 +	{44, 	832, 	0, 	_T("Геделле")},
 +	{44, 	836, 	0, 	_T("Дебрецен")},
 +	{44, 	835, 	0, 	_T("Мишкольц")},
 +	{44, 	834, 	0, 	_T("Сегед")},
 +	{44, 	833, 	0, 	_T("Шиофок")},
  	{44, 	2528, 	0, 	lpwszOther},
 -	{46, 	3007, 	0, 	TEXT("Аахен")},
 -	{46, 	837, 	0, 	TEXT("Аугсбург")},
 -	{46, 	838, 	0, 	TEXT("Баден-Баден")},
 -	{46, 	3371, 	0, 	TEXT("Бамберг")},
 -	{46, 	839, 	0, 	TEXT("Бергиш-Гладбах")},
 -	{46, 	840, 	0, 	TEXT("Берлин")},
 -	{46, 	841, 	0, 	TEXT("Билефельд")},
 -	{46, 	3163, 	0, 	TEXT("Бовенден")},
 -	{46, 	842, 	0, 	TEXT("Бонн")},
 -	{46, 	843, 	0, 	TEXT("Браденбург")},
 -	{46, 	3015, 	0, 	TEXT("Брауншвейг")},
 -	{46, 	844, 	0, 	TEXT("Бремен")},
 -	{46, 	2921, 	0, 	TEXT("Варштайн")},
 -	{46, 	845, 	0, 	TEXT("Веймар")},
 -	{46, 	846, 	0, 	TEXT("Вупперталь")},
 -	{46, 	847, 	0, 	TEXT("Гамбург")},
 -	{46, 	848, 	0, 	TEXT("Ганновер")},
 -	{46, 	849, 	0, 	TEXT("Гарделеген")},
 -	{46, 	3010, 	0, 	TEXT("Гейдельберг")},
 -	{46, 	850, 	0, 	TEXT("Гота")},
 -	{46, 	851, 	0, 	TEXT("Дармштадт")},
 -	{46, 	3072, 	0, 	TEXT("Дессау")},
 -	{46, 	852, 	0, 	TEXT("Детмольд")},
 -	{46, 	853, 	0, 	TEXT("Дортмунд")},
 -	{46, 	854, 	0, 	TEXT("Дрезден")},
 -	{46, 	855, 	0, 	TEXT("Дюссельдорф")},
 -	{46, 	3082, 	0, 	TEXT("Иффецхайм")},
 -	{46, 	3309, 	0, 	TEXT("Кассел")},
 -	{46, 	856, 	0, 	TEXT("Кельн")},
 -	{46, 	857, 	0, 	TEXT("Киль")},
 -	{46, 	3138, 	0, 	TEXT("Кобленц")},
 -	{46, 	858, 	0, 	TEXT("Крефельд")},
 -	{46, 	859, 	0, 	TEXT("Лейпциг")},
 -	{46, 	2872, 	0, 	TEXT("Лимбург")},
 -	{46, 	2965, 	0, 	TEXT("Линген")},
 -	{46, 	3135, 	0, 	TEXT("Любек")},
 -	{46, 	3156, 	0, 	TEXT("Мангейм")},
 -	{46, 	3192, 	0, 	TEXT("Меерсбург")},
 -	{46, 	860, 	0, 	TEXT("Мюнстер")},
 -	{46, 	861, 	0, 	TEXT("Мюнхен")},
 -	{46, 	2864, 	0, 	TEXT("Нойштадт")},
 -	{46, 	862, 	0, 	TEXT("Нюрнберг")},
 -	{46, 	3009, 	0, 	TEXT("Оффенбург")},
 -	{46, 	2993, 	0, 	TEXT("Падерборн")},
 -	{46, 	863, 	0, 	TEXT("Равенсбург")},
 -	{46, 	864, 	0, 	TEXT("Регенсбург")},
 -	{46, 	865, 	0, 	TEXT("Рейнен")},
 -	{46, 	866, 	0, 	TEXT("Росток")},
 -	{46, 	3191, 	0, 	TEXT("Саарбрюкен")},
 -	{46, 	2974, 	0, 	TEXT("Санкт-Августин")},
 -	{46, 	3127, 	0, 	TEXT("Тюринген")},
 -	{46, 	867, 	0, 	TEXT("Фрайберг")},
 -	{46, 	868, 	0, 	TEXT("Фрайбург")},
 -	{46, 	869, 	0, 	TEXT("Франкфурт-на-Майне")},
 -	{46, 	3373, 	0, 	TEXT("Хемнитц")},
 -	{46, 	3313, 	0, 	TEXT("Хильден")},
 -	{46, 	870, 	0, 	TEXT("Штутгарт")},
 -	{46, 	3045, 	0, 	TEXT("Эрланген")},
 -	{46, 	2906, 	0, 	TEXT("Эшборн")},
 +	{46, 	3007, 	0, 	_T("Аахен")},
 +	{46, 	837, 	0, 	_T("Аугсбург")},
 +	{46, 	838, 	0, 	_T("Баден-Баден")},
 +	{46, 	3371, 	0, 	_T("Бамберг")},
 +	{46, 	839, 	0, 	_T("Бергиш-Гладбах")},
 +	{46, 	840, 	0, 	_T("Берлин")},
 +	{46, 	841, 	0, 	_T("Билефельд")},
 +	{46, 	3163, 	0, 	_T("Бовенден")},
 +	{46, 	842, 	0, 	_T("Бонн")},
 +	{46, 	843, 	0, 	_T("Браденбург")},
 +	{46, 	3015, 	0, 	_T("Брауншвейг")},
 +	{46, 	844, 	0, 	_T("Бремен")},
 +	{46, 	2921, 	0, 	_T("Варштайн")},
 +	{46, 	845, 	0, 	_T("Веймар")},
 +	{46, 	846, 	0, 	_T("Вупперталь")},
 +	{46, 	847, 	0, 	_T("Гамбург")},
 +	{46, 	848, 	0, 	_T("Ганновер")},
 +	{46, 	849, 	0, 	_T("Гарделеген")},
 +	{46, 	3010, 	0, 	_T("Гейдельберг")},
 +	{46, 	850, 	0, 	_T("Гота")},
 +	{46, 	851, 	0, 	_T("Дармштадт")},
 +	{46, 	3072, 	0, 	_T("Дессау")},
 +	{46, 	852, 	0, 	_T("Детмольд")},
 +	{46, 	853, 	0, 	_T("Дортмунд")},
 +	{46, 	854, 	0, 	_T("Дрезден")},
 +	{46, 	855, 	0, 	_T("Дюссельдорф")},
 +	{46, 	3082, 	0, 	_T("Иффецхайм")},
 +	{46, 	3309, 	0, 	_T("Кассел")},
 +	{46, 	856, 	0, 	_T("Кельн")},
 +	{46, 	857, 	0, 	_T("Киль")},
 +	{46, 	3138, 	0, 	_T("Кобленц")},
 +	{46, 	858, 	0, 	_T("Крефельд")},
 +	{46, 	859, 	0, 	_T("Лейпциг")},
 +	{46, 	2872, 	0, 	_T("Лимбург")},
 +	{46, 	2965, 	0, 	_T("Линген")},
 +	{46, 	3135, 	0, 	_T("Любек")},
 +	{46, 	3156, 	0, 	_T("Мангейм")},
 +	{46, 	3192, 	0, 	_T("Меерсбург")},
 +	{46, 	860, 	0, 	_T("Мюнстер")},
 +	{46, 	861, 	0, 	_T("Мюнхен")},
 +	{46, 	2864, 	0, 	_T("Нойштадт")},
 +	{46, 	862, 	0, 	_T("Нюрнберг")},
 +	{46, 	3009, 	0, 	_T("Оффенбург")},
 +	{46, 	2993, 	0, 	_T("Падерборн")},
 +	{46, 	863, 	0, 	_T("Равенсбург")},
 +	{46, 	864, 	0, 	_T("Регенсбург")},
 +	{46, 	865, 	0, 	_T("Рейнен")},
 +	{46, 	866, 	0, 	_T("Росток")},
 +	{46, 	3191, 	0, 	_T("Саарбрюкен")},
 +	{46, 	2974, 	0, 	_T("Санкт-Августин")},
 +	{46, 	3127, 	0, 	_T("Тюринген")},
 +	{46, 	867, 	0, 	_T("Фрайберг")},
 +	{46, 	868, 	0, 	_T("Фрайбург")},
 +	{46, 	869, 	0, 	_T("Франкфурт-на-Майне")},
 +	{46, 	3373, 	0, 	_T("Хемнитц")},
 +	{46, 	3313, 	0, 	_T("Хильден")},
 +	{46, 	870, 	0, 	_T("Штутгарт")},
 +	{46, 	3045, 	0, 	_T("Эрланген")},
 +	{46, 	2906, 	0, 	_T("Эшборн")},
  	{46, 	2527, 	0, 	lpwszOther},
 -	{48, 	871, 	0, 	TEXT("Афины")},
 -	{48, 	873, 	0, 	TEXT("Ираклион")},
 -	{48, 	3147, 	0, 	TEXT("Корфу")},
 -	{48, 	872, 	0, 	TEXT("Салоники")},
 -	{48, 	3178, 	0, 	TEXT("Халкидики")},
 +	{48, 	871, 	0, 	_T("Афины")},
 +	{48, 	873, 	0, 	_T("Ираклион")},
 +	{48, 	3147, 	0, 	_T("Корфу")},
 +	{48, 	872, 	0, 	_T("Салоники")},
 +	{48, 	3178, 	0, 	_T("Халкидики")},
  	{48, 	2526, 	0, 	lpwszOther},
 -	{49, 	3006, 	0, 	TEXT("Архус")},
 -	{49, 	874, 	0, 	TEXT("Копенгаген")},
 -	{49, 	875, 	0, 	TEXT("Оденсе")},
 -	{49, 	3285, 	0, 	TEXT("Ольборг")},
 -	{49, 	876, 	0, 	TEXT("Сванеке")},
 -	{49, 	3126, 	0, 	TEXT("Скиве")},
 +	{49, 	3006, 	0, 	_T("Архус")},
 +	{49, 	874, 	0, 	_T("Копенгаген")},
 +	{49, 	875, 	0, 	_T("Оденсе")},
 +	{49, 	3285, 	0, 	_T("Ольборг")},
 +	{49, 	876, 	0, 	_T("Сванеке")},
 +	{49, 	3126, 	0, 	_T("Скиве")},
  	{49, 	2525, 	0, 	lpwszOther},
 -	{50, 	3377, 	0, 	TEXT("Виклоу")},
 -	{50, 	3067, 	0, 	TEXT("Голвей")},
 -	{50, 	877, 	0, 	TEXT("Дублин")},
 -	{50, 	3065, 	0, 	TEXT("Килларней")},
 -	{50, 	3066, 	0, 	TEXT("Корк")},
 -	{50, 	878, 	0, 	TEXT("Лимерик")},
 -	{50, 	3069, 	0, 	TEXT("Нейс")},
 -	{50, 	3068, 	0, 	TEXT("Типперэри")},
 +	{50, 	3377, 	0, 	_T("Виклоу")},
 +	{50, 	3067, 	0, 	_T("Голвей")},
 +	{50, 	877, 	0, 	_T("Дублин")},
 +	{50, 	3065, 	0, 	_T("Килларней")},
 +	{50, 	3066, 	0, 	_T("Корк")},
 +	{50, 	878, 	0, 	_T("Лимерик")},
 +	{50, 	3069, 	0, 	_T("Нейс")},
 +	{50, 	3068, 	0, 	_T("Типперэри")},
  	{50, 	2524, 	0, 	lpwszOther},
 -	{51, 	879, 	0, 	TEXT("Рейкьявик")},
 +	{51, 	879, 	0, 	_T("Рейкьявик")},
  	{51, 	2523, 	0, 	lpwszOther},
 -	{34, 	880, 	0, 	TEXT("Аликанте")},
 -	{34, 	3125, 	0, 	TEXT("Альмерия")},
 -	{34, 	881, 	0, 	TEXT("Барселона")},
 -	{34, 	890, 	0, 	TEXT("Бильбао")},
 -	{34, 	3076, 	0, 	TEXT("Бланес")},
 -	{34, 	882, 	0, 	TEXT("Валенсия")},
 -	{34, 	3070, 	0, 	TEXT("Ибица")},
 -	{34, 	888, 	0, 	TEXT("Кадис")},
 -	{34, 	886, 	0, 	TEXT("Картахена")},
 -	{34, 	891, 	0, 	TEXT("Ла-Корунья")},
 -	{34, 	3310, 	0, 	TEXT("Лорет де Мар")},
 -	{34, 	883, 	0, 	TEXT("Мадрид")},
 -	{34, 	884, 	0, 	TEXT("Малага")},
 -	{34, 	885, 	0, 	TEXT("Марбелья")},
 -	{34, 	892, 	0, 	TEXT("Овьедо")},
 -	{34, 	3179, 	0, 	TEXT("Пальма де Майорка")},
 -	{34, 	3177, 	0, 	TEXT("Сан-Агустин")},
 -	{34, 	3289, 	0, 	TEXT("Санта-Крус-де-Тенерифе")},
 -	{34, 	889, 	0, 	TEXT("Сарагоса")},
 -	{34, 	887, 	0, 	TEXT("Севилья")},
 -	{34, 	893, 	0, 	TEXT("Хихон")},
 +	{34, 	880, 	0, 	_T("Аликанте")},
 +	{34, 	3125, 	0, 	_T("Альмерия")},
 +	{34, 	881, 	0, 	_T("Барселона")},
 +	{34, 	890, 	0, 	_T("Бильбао")},
 +	{34, 	3076, 	0, 	_T("Бланес")},
 +	{34, 	882, 	0, 	_T("Валенсия")},
 +	{34, 	3070, 	0, 	_T("Ибица")},
 +	{34, 	888, 	0, 	_T("Кадис")},
 +	{34, 	886, 	0, 	_T("Картахена")},
 +	{34, 	891, 	0, 	_T("Ла-Корунья")},
 +	{34, 	3310, 	0, 	_T("Лорет де Мар")},
 +	{34, 	883, 	0, 	_T("Мадрид")},
 +	{34, 	884, 	0, 	_T("Малага")},
 +	{34, 	885, 	0, 	_T("Марбелья")},
 +	{34, 	892, 	0, 	_T("Овьедо")},
 +	{34, 	3179, 	0, 	_T("Пальма де Майорка")},
 +	{34, 	3177, 	0, 	_T("Сан-Агустин")},
 +	{34, 	3289, 	0, 	_T("Санта-Крус-де-Тенерифе")},
 +	{34, 	889, 	0, 	_T("Сарагоса")},
 +	{34, 	887, 	0, 	_T("Севилья")},
 +	{34, 	893, 	0, 	_T("Хихон")},
  	{34, 	2522, 	0, 	lpwszOther},
 -	{52, 	3318, 	0, 	TEXT("Аоста")},
 -	{52, 	3278, 	0, 	TEXT("Беллариа")},
 -	{52, 	906, 	0, 	TEXT("Болонья")},
 -	{52, 	894, 	0, 	TEXT("Брешиа")},
 -	{52, 	895, 	0, 	TEXT("Венеция")},
 -	{52, 	905, 	0, 	TEXT("Верона")},
 -	{52, 	896, 	0, 	TEXT("Генуя")},
 -	{52, 	897, 	0, 	TEXT("Лекко")},
 -	{52, 	3369, 	0, 	TEXT("Ливорно")},
 -	{52, 	3327, 	0, 	TEXT("Марсала")},
 -	{52, 	898, 	0, 	TEXT("Милан")},
 -	{52, 	899, 	0, 	TEXT("Модена")},
 -	{52, 	907, 	0, 	TEXT("Неаполь")},
 -	{52, 	908, 	0, 	TEXT("Перуджа")},
 -	{52, 	900, 	0, 	TEXT("Пиза")},
 -	{52, 	901, 	0, 	TEXT("Рим")},
 -	{52, 	3368, 	0, 	TEXT("Сан-Ремо")},
 -	{52, 	3384, 	0, 	TEXT("Сиракуза")},
 -	{52, 	3252, 	0, 	TEXT("Терамо")},
 -	{52, 	902, 	0, 	TEXT("Триест")},
 -	{52, 	903, 	0, 	TEXT("Турин")},
 -	{52, 	3130, 	0, 	TEXT("Фано")},
 -	{52, 	904, 	0, 	TEXT("Флоренция")},
 +	{52, 	3318, 	0, 	_T("Аоста")},
 +	{52, 	3278, 	0, 	_T("Беллариа")},
 +	{52, 	906, 	0, 	_T("Болонья")},
 +	{52, 	894, 	0, 	_T("Брешиа")},
 +	{52, 	895, 	0, 	_T("Венеция")},
 +	{52, 	905, 	0, 	_T("Верона")},
 +	{52, 	896, 	0, 	_T("Генуя")},
 +	{52, 	897, 	0, 	_T("Лекко")},
 +	{52, 	3369, 	0, 	_T("Ливорно")},
 +	{52, 	3327, 	0, 	_T("Марсала")},
 +	{52, 	898, 	0, 	_T("Милан")},
 +	{52, 	899, 	0, 	_T("Модена")},
 +	{52, 	907, 	0, 	_T("Неаполь")},
 +	{52, 	908, 	0, 	_T("Перуджа")},
 +	{52, 	900, 	0, 	_T("Пиза")},
 +	{52, 	901, 	0, 	_T("Рим")},
 +	{52, 	3368, 	0, 	_T("Сан-Ремо")},
 +	{52, 	3384, 	0, 	_T("Сиракуза")},
 +	{52, 	3252, 	0, 	_T("Терамо")},
 +	{52, 	902, 	0, 	_T("Триест")},
 +	{52, 	903, 	0, 	_T("Турин")},
 +	{52, 	3130, 	0, 	_T("Фано")},
 +	{52, 	904, 	0, 	_T("Флоренция")},
  	{52, 	2521, 	0, 	lpwszOther},
 -	{53, 	2939, 	0, 	TEXT("Айзкраукле")},
 -	{53, 	3054, 	0, 	TEXT("Валка")},
 -	{53, 	909, 	0, 	TEXT("Даугавпилс")},
 -	{53, 	2934, 	0, 	TEXT("Екабпилс")},
 -	{53, 	913, 	0, 	TEXT("Елгава")},
 -	{53, 	2935, 	0, 	TEXT("Кокнесе")},
 -	{53, 	912, 	0, 	TEXT("Лиепая")},
 -	{53, 	2905, 	0, 	TEXT("Резекне")},
 -	{53, 	911, 	0, 	TEXT("Рига")},
 -	{53, 	2936, 	0, 	TEXT("Саласпилс")},
 -	{53, 	2937, 	0, 	TEXT("Смилтене")},
 -	{53, 	910, 	0, 	TEXT("Юрмала")},
 +	{53, 	2939, 	0, 	_T("Айзкраукле")},
 +	{53, 	3054, 	0, 	_T("Валка")},
 +	{53, 	909, 	0, 	_T("Даугавпилс")},
 +	{53, 	2934, 	0, 	_T("Екабпилс")},
 +	{53, 	913, 	0, 	_T("Елгава")},
 +	{53, 	2935, 	0, 	_T("Кокнесе")},
 +	{53, 	912, 	0, 	_T("Лиепая")},
 +	{53, 	2905, 	0, 	_T("Резекне")},
 +	{53, 	911, 	0, 	_T("Рига")},
 +	{53, 	2936, 	0, 	_T("Саласпилс")},
 +	{53, 	2937, 	0, 	_T("Смилтене")},
 +	{53, 	910, 	0, 	_T("Юрмала")},
  	{53, 	2520, 	0, 	lpwszOther},
 -	{54, 	914, 	0, 	TEXT("Вильнюс")},
 -	{54, 	915, 	0, 	TEXT("Висагинас")},
 -	{54, 	916, 	0, 	TEXT("Каунас")},
 -	{54, 	918, 	0, 	TEXT("Клайпеда")},
 -	{54, 	919, 	0, 	TEXT("Паланга")},
 -	{54, 	3173, 	0, 	TEXT("Пеневежис")},
 -	{54, 	917, 	0, 	TEXT("Шауляй")},
 +	{54, 	914, 	0, 	_T("Вильнюс")},
 +	{54, 	915, 	0, 	_T("Висагинас")},
 +	{54, 	916, 	0, 	_T("Каунас")},
 +	{54, 	918, 	0, 	_T("Клайпеда")},
 +	{54, 	919, 	0, 	_T("Паланга")},
 +	{54, 	3173, 	0, 	_T("Пеневежис")},
 +	{54, 	917, 	0, 	_T("Шауляй")},
  	{54, 	2519, 	0, 	lpwszOther},
 -	{55, 	920, 	0, 	TEXT("Вадуц")},
 +	{55, 	920, 	0, 	_T("Вадуц")},
  	{55, 	2518, 	0, 	lpwszOther},
 -	{56, 	3376, 	0, 	TEXT("Бетцдорф")},
 -	{56, 	921, 	0, 	TEXT("Люксембург")},
 +	{56, 	3376, 	0, 	_T("Бетцдорф")},
 +	{56, 	921, 	0, 	_T("Люксембург")},
  	{56, 	2517, 	0, 	lpwszOther},
 -	{57, 	3142, 	0, 	TEXT("Битола")},
 -	{57, 	922, 	0, 	TEXT("Скопье")},
 +	{57, 	3142, 	0, 	_T("Битола")},
 +	{57, 	922, 	0, 	_T("Скопье")},
  	{57, 	2516, 	0, 	lpwszOther},
 -	{58, 	923, 	0, 	TEXT("Валлетта")},
 -	{58, 	3154, 	0, 	TEXT("Мзида")},
 -	{58, 	924, 	0, 	TEXT("Слима")},
 +	{58, 	923, 	0, 	_T("Валлетта")},
 +	{58, 	3154, 	0, 	_T("Мзида")},
 +	{58, 	924, 	0, 	_T("Слима")},
  	{58, 	2515, 	0, 	lpwszOther},
 -	{59, 	925, 	0, 	TEXT("Бельцы")},
 -	{59, 	926, 	0, 	TEXT("Бендеры")},
 -	{59, 	3234, 	0, 	TEXT("Дубоссары")},
 -	{59, 	3275, 	0, 	TEXT("Кахул")},
 -	{59, 	927, 	0, 	TEXT("Кишинев")},
 -	{59, 	3321, 	0, 	TEXT("Резина")},
 -	{59, 	928, 	0, 	TEXT("Рыбница")},
 -	{59, 	929, 	0, 	TEXT("Тирасполь")},
 -	{59, 	3281, 	0, 	TEXT("Чадыр-Лунга")},
 +	{59, 	925, 	0, 	_T("Бельцы")},
 +	{59, 	926, 	0, 	_T("Бендеры")},
 +	{59, 	3234, 	0, 	_T("Дубоссары")},
 +	{59, 	3275, 	0, 	_T("Кахул")},
 +	{59, 	927, 	0, 	_T("Кишинев")},
 +	{59, 	3321, 	0, 	_T("Резина")},
 +	{59, 	928, 	0, 	_T("Рыбница")},
 +	{59, 	929, 	0, 	_T("Тирасполь")},
 +	{59, 	3281, 	0, 	_T("Чадыр-Лунга")},
  	{59, 	2514, 	0, 	lpwszOther},
 -	{36, 	930, 	0, 	TEXT("Монте-Карло")},
 +	{36, 	930, 	0, 	_T("Монте-Карло")},
  	{36, 	2513, 	0, 	lpwszOther},
 -	{60, 	931, 	0, 	TEXT("Амстердам")},
 -	{60, 	933, 	0, 	TEXT("Бреда")},
 -	{60, 	932, 	0, 	TEXT("Гаага")},
 -	{60, 	934, 	0, 	TEXT("Гауда")},
 -	{60, 	935, 	0, 	TEXT("Делфт")},
 -	{60, 	2977, 	0, 	TEXT("Донген")},
 -	{60, 	3030, 	0, 	TEXT("Зволле")},
 -	{60, 	3091, 	0, 	TEXT("Ниймеген")},
 -	{60, 	936, 	0, 	TEXT("Роттердам")},
 -	{60, 	937, 	0, 	TEXT("Утрехт")},
 -	{60, 	3044, 	0, 	TEXT("Эйндховен")},
 -	{60, 	3380, 	0, 	TEXT("Эншеде")},
 +	{60, 	931, 	0, 	_T("Амстердам")},
 +	{60, 	933, 	0, 	_T("Бреда")},
 +	{60, 	932, 	0, 	_T("Гаага")},
 +	{60, 	934, 	0, 	_T("Гауда")},
 +	{60, 	935, 	0, 	_T("Делфт")},
 +	{60, 	2977, 	0, 	_T("Донген")},
 +	{60, 	3030, 	0, 	_T("Зволле")},
 +	{60, 	3091, 	0, 	_T("Ниймеген")},
 +	{60, 	936, 	0, 	_T("Роттердам")},
 +	{60, 	937, 	0, 	_T("Утрехт")},
 +	{60, 	3044, 	0, 	_T("Эйндховен")},
 +	{60, 	3380, 	0, 	_T("Эншеде")},
  	{60, 	2512, 	0, 	lpwszOther},
 -	{61, 	3190, 	0, 	TEXT("Кристиансанд")},
 -	{61, 	2857, 	0, 	TEXT("Лиллехаммер")},
 -	{61, 	938, 	0, 	TEXT("Осло")},
 -	{61, 	3355, 	0, 	TEXT("Ставангер")},
 -	{61, 	939, 	0, 	TEXT("Тронхейм")},
 +	{61, 	3190, 	0, 	_T("Кристиансанд")},
 +	{61, 	2857, 	0, 	_T("Лиллехаммер")},
 +	{61, 	938, 	0, 	_T("Осло")},
 +	{61, 	3355, 	0, 	_T("Ставангер")},
 +	{61, 	939, 	0, 	_T("Тронхейм")},
  	{61, 	2511, 	0, 	lpwszOther},
 -	{62, 	940, 	0, 	TEXT("Белосток")},
 -	{62, 	941, 	0, 	TEXT("Варшава")},
 -	{62, 	3164, 	0, 	TEXT("Вроцлав")},
 -	{62, 	942, 	0, 	TEXT("Гданьск")},
 -	{62, 	943, 	0, 	TEXT("Гливице")},
 -	{62, 	3237, 	0, 	TEXT("Закопане")},
 -	{62, 	3165, 	0, 	TEXT("Зелена Гура")},
 -	{62, 	944, 	0, 	TEXT("Катовице")},
 -	{62, 	945, 	0, 	TEXT("Краков")},
 -	{62, 	3008, 	0, 	TEXT("Лодзь")},
 -	{62, 	3150, 	0, 	TEXT("Ольштын")},
 -	{62, 	946, 	0, 	TEXT("Познань")},
 -	{62, 	947, 	0, 	TEXT("Радом")},
 -	{62, 	948, 	0, 	TEXT("Сопот")},
 -	{62, 	2958, 	0, 	TEXT("Тыхы")},
 +	{62, 	940, 	0, 	_T("Белосток")},
 +	{62, 	941, 	0, 	_T("Варшава")},
 +	{62, 	3164, 	0, 	_T("Вроцлав")},
 +	{62, 	942, 	0, 	_T("Гданьск")},
 +	{62, 	943, 	0, 	_T("Гливице")},
 +	{62, 	3237, 	0, 	_T("Закопане")},
 +	{62, 	3165, 	0, 	_T("Зелена Гура")},
 +	{62, 	944, 	0, 	_T("Катовице")},
 +	{62, 	945, 	0, 	_T("Краков")},
 +	{62, 	3008, 	0, 	_T("Лодзь")},
 +	{62, 	3150, 	0, 	_T("Ольштын")},
 +	{62, 	946, 	0, 	_T("Познань")},
 +	{62, 	947, 	0, 	_T("Радом")},
 +	{62, 	948, 	0, 	_T("Сопот")},
 +	{62, 	2958, 	0, 	_T("Тыхы")},
  	{62, 	2510, 	0, 	lpwszOther},
 -	{35, 	949, 	0, 	TEXT("Лиссабон")},
 -	{35, 	950, 	0, 	TEXT("Порто")},
 +	{35, 	949, 	0, 	_T("Лиссабон")},
 +	{35, 	950, 	0, 	_T("Порто")},
  	{35, 	2509, 	0, 	lpwszOther},
 -	{63, 	952, 	0, 	TEXT("Брашов")},
 -	{63, 	951, 	0, 	TEXT("Бухарест")},
 -	{63, 	954, 	0, 	TEXT("Констанца")},
 -	{63, 	955, 	0, 	TEXT("Плоешти")},
 -	{63, 	953, 	0, 	TEXT("Яссы")},
 +	{63, 	952, 	0, 	_T("Брашов")},
 +	{63, 	951, 	0, 	_T("Бухарест")},
 +	{63, 	954, 	0, 	_T("Констанца")},
 +	{63, 	955, 	0, 	_T("Плоешти")},
 +	{63, 	953, 	0, 	_T("Яссы")},
  	{63, 	2508, 	0, 	lpwszOther},
 -	{64, 	956, 	0, 	TEXT("Сан-Марино")},
 +	{64, 	956, 	0, 	_T("Сан-Марино")},
  	{64, 	2507, 	0, 	lpwszOther},
 -	{74, 	957, 	0, 	TEXT("Белград")},
 -	{74, 	960, 	0, 	TEXT("Ниш")},
 -	{74, 	958, 	0, 	TEXT("Нови-Сад")},
 -	{74, 	959, 	0, 	TEXT("Сараево")},
 +	{74, 	957, 	0, 	_T("Белград")},
 +	{74, 	960, 	0, 	_T("Ниш")},
 +	{74, 	958, 	0, 	_T("Нови-Сад")},
 +	{74, 	959, 	0, 	_T("Сараево")},
  	{74, 	2506, 	0, 	lpwszOther},
 -	{65, 	961, 	0, 	TEXT("Братислава")},
 -	{65, 	962, 	0, 	TEXT("Кошице")},
 -	{65, 	3101, 	0, 	TEXT("Липтов")},
 -	{65, 	963, 	0, 	TEXT("Попрад")},
 -	{65, 	964, 	0, 	TEXT("Прешов")},
 -	{65, 	965, 	0, 	TEXT("Ружемберок")},
 -	{65, 	966, 	0, 	TEXT("Тврдошин")},
 +	{65, 	961, 	0, 	_T("Братислава")},
 +	{65, 	962, 	0, 	_T("Кошице")},
 +	{65, 	3101, 	0, 	_T("Липтов")},
 +	{65, 	963, 	0, 	_T("Попрад")},
 +	{65, 	964, 	0, 	_T("Прешов")},
 +	{65, 	965, 	0, 	_T("Ружемберок")},
 +	{65, 	966, 	0, 	_T("Тврдошин")},
  	{65, 	2505, 	0, 	lpwszOther},
 -	{66, 	968, 	0, 	TEXT("Копар")},
 -	{66, 	967, 	0, 	TEXT("Любляна")},
 -	{66, 	969, 	0, 	TEXT("Марибор")},
 +	{66, 	968, 	0, 	_T("Копар")},
 +	{66, 	967, 	0, 	_T("Любляна")},
 +	{66, 	969, 	0, 	_T("Марибор")},
  	{66, 	2504, 	0, 	lpwszOther},
 -	{67, 	970, 	0, 	TEXT("Торсхавн")},
 +	{67, 	970, 	0, 	_T("Торсхавн")},
  	{67, 	2503, 	0, 	lpwszOther},
 -	{68, 	2888, 	0, 	TEXT("Вантаа")},
 -	{68, 	971, 	0, 	TEXT("Васа")},
 -	{68, 	979, 	0, 	TEXT("Котка")},
 -	{68, 	972, 	0, 	TEXT("Коувола")},
 -	{68, 	980, 	0, 	TEXT("Лахти")},
 -	{68, 	973, 	0, 	TEXT("Оулу")},
 -	{68, 	3375, 	0, 	TEXT("Риихимяки")},
 -	{68, 	3159, 	0, 	TEXT("Руовеси")},
 -	{68, 	974, 	0, 	TEXT("Тампере")},
 -	{68, 	975, 	0, 	TEXT("Турку")},
 -	{68, 	976, 	0, 	TEXT("Хельсинки")},
 -	{68, 	977, 	0, 	TEXT("Эспо")},
 -	{68, 	978, 	0, 	TEXT("Ювяскюля")},
 +	{68, 	2888, 	0, 	_T("Вантаа")},
 +	{68, 	971, 	0, 	_T("Васа")},
 +	{68, 	979, 	0, 	_T("Котка")},
 +	{68, 	972, 	0, 	_T("Коувола")},
 +	{68, 	980, 	0, 	_T("Лахти")},
 +	{68, 	973, 	0, 	_T("Оулу")},
 +	{68, 	3375, 	0, 	_T("Риихимяки")},
 +	{68, 	3159, 	0, 	_T("Руовеси")},
 +	{68, 	974, 	0, 	_T("Тампере")},
 +	{68, 	975, 	0, 	_T("Турку")},
 +	{68, 	976, 	0, 	_T("Хельсинки")},
 +	{68, 	977, 	0, 	_T("Эспо")},
 +	{68, 	978, 	0, 	_T("Ювяскюля")},
  	{68, 	2502, 	0, 	lpwszOther},
 -	{37, 	996, 	0, 	TEXT("Авиньон")},
 -	{37, 	983, 	0, 	TEXT("Бержерак")},
 -	{37, 	997, 	0, 	TEXT("Блуа")},
 -	{37, 	984, 	0, 	TEXT("Бордо")},
 -	{37, 	998, 	0, 	TEXT("Дижон")},
 -	{37, 	987, 	0, 	TEXT("Канн")},
 -	{37, 	988, 	0, 	TEXT("Кастр")},
 -	{37, 	993, 	0, 	TEXT("Клермон-Ферран")},
 -	{37, 	3037, 	0, 	TEXT("Лилль")},
 -	{37, 	989, 	0, 	TEXT("Лион")},
 -	{37, 	985, 	0, 	TEXT("Марсель")},
 -	{37, 	991, 	0, 	TEXT("Мец")},
 -	{37, 	3161, 	0, 	TEXT("Мобеж")},
 -	{37, 	990, 	0, 	TEXT("Нанси")},
 -	{37, 	994, 	0, 	TEXT("Нант")},
 -	{37, 	995, 	0, 	TEXT("Ницца")},
 -	{37, 	999, 	0, 	TEXT("Орлеан")},
 -	{37, 	981, 	0, 	TEXT("Париж")},
 -	{37, 	3374, 	0, 	TEXT("Перпиньян")},
 -	{37, 	992, 	0, 	TEXT("Руан")},
 -	{37, 	982, 	0, 	TEXT("Страсбург")},
 -	{37, 	986, 	0, 	TEXT("Тулуза")},
 -	{37, 	3314, 	0, 	TEXT("Шамбери")},
 +	{37, 	996, 	0, 	_T("Авиньон")},
 +	{37, 	983, 	0, 	_T("Бержерак")},
 +	{37, 	997, 	0, 	_T("Блуа")},
 +	{37, 	984, 	0, 	_T("Бордо")},
 +	{37, 	998, 	0, 	_T("Дижон")},
 +	{37, 	987, 	0, 	_T("Канн")},
 +	{37, 	988, 	0, 	_T("Кастр")},
 +	{37, 	993, 	0, 	_T("Клермон-Ферран")},
 +	{37, 	3037, 	0, 	_T("Лилль")},
 +	{37, 	989, 	0, 	_T("Лион")},
 +	{37, 	985, 	0, 	_T("Марсель")},
 +	{37, 	991, 	0, 	_T("Мец")},
 +	{37, 	3161, 	0, 	_T("Мобеж")},
 +	{37, 	990, 	0, 	_T("Нанси")},
 +	{37, 	994, 	0, 	_T("Нант")},
 +	{37, 	995, 	0, 	_T("Ницца")},
 +	{37, 	999, 	0, 	_T("Орлеан")},
 +	{37, 	981, 	0, 	_T("Париж")},
 +	{37, 	3374, 	0, 	_T("Перпиньян")},
 +	{37, 	992, 	0, 	_T("Руан")},
 +	{37, 	982, 	0, 	_T("Страсбург")},
 +	{37, 	986, 	0, 	_T("Тулуза")},
 +	{37, 	3314, 	0, 	_T("Шамбери")},
  	{37, 	2501, 	0, 	lpwszOther},
 -	{69, 	1003, 	0, 	TEXT("Дубровник")},
 -	{69, 	1000, 	0, 	TEXT("Загреб")},
 -	{69, 	1001, 	0, 	TEXT("Задар")},
 -	{69, 	1004, 	0, 	TEXT("Риека")},
 -	{69, 	1002, 	0, 	TEXT("Сплит")},
 +	{69, 	1003, 	0, 	_T("Дубровник")},
 +	{69, 	1000, 	0, 	_T("Загреб")},
 +	{69, 	1001, 	0, 	_T("Задар")},
 +	{69, 	1004, 	0, 	_T("Риека")},
 +	{69, 	1002, 	0, 	_T("Сплит")},
  	{69, 	2500, 	0, 	lpwszOther},
 -	{70, 	1005, 	0, 	TEXT("Брно")},
 -	{70, 	3291, 	0, 	TEXT("Гавличкув-Брод")},
 -	{70, 	1007, 	0, 	TEXT("Градец-Кралове")},
 -	{70, 	1008, 	0, 	TEXT("Карлови-Вари")},
 -	{70, 	3019, 	0, 	TEXT("Кладрубы")},
 -	{70, 	1010, 	0, 	TEXT("Лоуни")},
 -	{70, 	1009, 	0, 	TEXT("Острава")},
 -	{70, 	1015, 	0, 	TEXT("Пльзень")},
 -	{70, 	3105, 	0, 	TEXT("Правчицка Брана")},
 -	{70, 	1006, 	0, 	TEXT("Прага")},
 -	{70, 	3246, 	0, 	TEXT("Тачов")},
 -	{70, 	1011, 	0, 	TEXT("Тршебич")},
 -	{70, 	1012, 	0, 	TEXT("Усти-над-Лабем")},
 -	{70, 	1014, 	0, 	TEXT("Ческе-Будеевице")},
 -	{70, 	1013, 	0, 	TEXT("Яблонец-над-Нисоу")},
 +	{70, 	1005, 	0, 	_T("Брно")},
 +	{70, 	3291, 	0, 	_T("Гавличкув-Брод")},
 +	{70, 	1007, 	0, 	_T("Градец-Кралове")},
 +	{70, 	1008, 	0, 	_T("Карлови-Вари")},
 +	{70, 	3019, 	0, 	_T("Кладрубы")},
 +	{70, 	1010, 	0, 	_T("Лоуни")},
 +	{70, 	1009, 	0, 	_T("Острава")},
 +	{70, 	1015, 	0, 	_T("Пльзень")},
 +	{70, 	3105, 	0, 	_T("Правчицка Брана")},
 +	{70, 	1006, 	0, 	_T("Прага")},
 +	{70, 	3246, 	0, 	_T("Тачов")},
 +	{70, 	1011, 	0, 	_T("Тршебич")},
 +	{70, 	1012, 	0, 	_T("Усти-над-Лабем")},
 +	{70, 	1014, 	0, 	_T("Ческе-Будеевице")},
 +	{70, 	1013, 	0, 	_T("Яблонец-над-Нисоу")},
  	{70, 	2499, 	0, 	lpwszOther},
 -	{71, 	1016, 	0, 	TEXT("Арау")},
 -	{71, 	1019, 	0, 	TEXT("Баден")},
 -	{71, 	1017, 	0, 	TEXT("Базель")},
 -	{71, 	1018, 	0, 	TEXT("Берн")},
 -	{71, 	1020, 	0, 	TEXT("Биль")},
 -	{71, 	1021, 	0, 	TEXT("Винтертур")},
 -	{71, 	1022, 	0, 	TEXT("Давос")},
 -	{71, 	3189, 	0, 	TEXT("Делемонт")},
 -	{71, 	1023, 	0, 	TEXT("Женева")},
 -	{71, 	1024, 	0, 	TEXT("Золотурн")},
 -	{71, 	1025, 	0, 	TEXT("Лозанна")},
 -	{71, 	1026, 	0, 	TEXT("Локарно")},
 -	{71, 	1027, 	0, 	TEXT("Лугано")},
 -	{71, 	1028, 	0, 	TEXT("Люцерн")},
 -	{71, 	1029, 	0, 	TEXT("Монтре")},
 -	{71, 	1030, 	0, 	TEXT("Цюрих")},
 +	{71, 	1016, 	0, 	_T("Арау")},
 +	{71, 	1019, 	0, 	_T("Баден")},
 +	{71, 	1017, 	0, 	_T("Базель")},
 +	{71, 	1018, 	0, 	_T("Берн")},
 +	{71, 	1020, 	0, 	_T("Биль")},
 +	{71, 	1021, 	0, 	_T("Винтертур")},
 +	{71, 	1022, 	0, 	_T("Давос")},
 +	{71, 	3189, 	0, 	_T("Делемонт")},
 +	{71, 	1023, 	0, 	_T("Женева")},
 +	{71, 	1024, 	0, 	_T("Золотурн")},
 +	{71, 	1025, 	0, 	_T("Лозанна")},
 +	{71, 	1026, 	0, 	_T("Локарно")},
 +	{71, 	1027, 	0, 	_T("Лугано")},
 +	{71, 	1028, 	0, 	_T("Люцерн")},
 +	{71, 	1029, 	0, 	_T("Монтре")},
 +	{71, 	1030, 	0, 	_T("Цюрих")},
  	{71, 	2498, 	0, 	lpwszOther},
 -	{72, 	2883, 	0, 	TEXT("Арбога")},
 -	{72, 	1031, 	0, 	TEXT("Гетеборг")},
 -	{72, 	1032, 	0, 	TEXT("Кальмар")},
 -	{72, 	1037, 	0, 	TEXT("Лахольм")},
 -	{72, 	1036, 	0, 	TEXT("Лулео")},
 -	{72, 	1042, 	0, 	TEXT("Лунд")},
 -	{72, 	1033, 	0, 	TEXT("Мальме")},
 -	{72, 	1034, 	0, 	TEXT("Стокгольм")},
 -	{72, 	1041, 	0, 	TEXT("Умео")},
 -	{72, 	1039, 	0, 	TEXT("Фалун")},
 -	{72, 	1043, 	0, 	TEXT("Хельсинборг")},
 -	{72, 	1040, 	0, 	TEXT("Хернесанд")},
 -	{72, 	1038, 	0, 	TEXT("Эстерсунд")},
 +	{72, 	2883, 	0, 	_T("Арбога")},
 +	{72, 	1031, 	0, 	_T("Гетеборг")},
 +	{72, 	1032, 	0, 	_T("Кальмар")},
 +	{72, 	1037, 	0, 	_T("Лахольм")},
 +	{72, 	1036, 	0, 	_T("Лулео")},
 +	{72, 	1042, 	0, 	_T("Лунд")},
 +	{72, 	1033, 	0, 	_T("Мальме")},
 +	{72, 	1034, 	0, 	_T("Стокгольм")},
 +	{72, 	1041, 	0, 	_T("Умео")},
 +	{72, 	1039, 	0, 	_T("Фалун")},
 +	{72, 	1043, 	0, 	_T("Хельсинборг")},
 +	{72, 	1040, 	0, 	_T("Хернесанд")},
 +	{72, 	1038, 	0, 	_T("Эстерсунд")},
  	{72, 	2497, 	0, 	lpwszOther},
 -	{73, 	3013, 	0, 	TEXT("Валга")},
 -	{73, 	1044, 	0, 	TEXT("Кейла")},
 -	{73, 	1045, 	0, 	TEXT("Кохтла-Ярве")},
 -	{73, 	1046, 	0, 	TEXT("Маарду")},
 -	{73, 	1047, 	0, 	TEXT("Мыйзакюла")},
 -	{73, 	1048, 	0, 	TEXT("Нарва")},
 -	{73, 	1049, 	0, 	TEXT("Пярну")},
 -	{73, 	1050, 	0, 	TEXT("Раквере")},
 -	{73, 	1051, 	0, 	TEXT("Силламяэ")},
 -	{73, 	1052, 	0, 	TEXT("Таллин")},
 -	{73, 	1053, 	0, 	TEXT("Тарту")},
 -	{73, 	1054, 	0, 	TEXT("Хаапсалу")},
 +	{73, 	3013, 	0, 	_T("Валга")},
 +	{73, 	1044, 	0, 	_T("Кейла")},
 +	{73, 	1045, 	0, 	_T("Кохтла-Ярве")},
 +	{73, 	1046, 	0, 	_T("Маарду")},
 +	{73, 	1047, 	0, 	_T("Мыйзакюла")},
 +	{73, 	1048, 	0, 	_T("Нарва")},
 +	{73, 	1049, 	0, 	_T("Пярну")},
 +	{73, 	1050, 	0, 	_T("Раквере")},
 +	{73, 	1051, 	0, 	_T("Силламяэ")},
 +	{73, 	1052, 	0, 	_T("Таллин")},
 +	{73, 	1053, 	0, 	_T("Тарту")},
 +	{73, 	1054, 	0, 	_T("Хаапсалу")},
  	{0, 	0, 	0, 	NULL}
  };//*/
  /*
  static const MRA_COUNTRY mracCountrys[] =
  {
 -	{24, 	TEXT("Россия")},
 -	{81, 	TEXT("Азербайджан")},
 -	{82, 	TEXT("Армения")},
 -	{97, 	TEXT("Афганистан")},
 -	{96, 	TEXT("Бангладеш")},
 -	{99, 	TEXT("Бахрейн")},
 -	{100, 	TEXT("Бруней-Даруссалам")},
 -	{101, 	TEXT("Бутан")},
 -	{102, 	TEXT("Вьетнам")},
 -	{83, 	TEXT("Грузия")},
 -	{86, 	TEXT("Израиль")},
 -	{95, 	TEXT("Индия")},
 -	{103, 	TEXT("Индонезия")},
 -	{79, 	TEXT("Иордания")},
 -	{85, 	TEXT("Ирак")},
 -	{87, 	TEXT("Иран")},
 -	{104, 	TEXT("Йемен")},
 -	{84, 	TEXT("Казахстан")},
 -	{105, 	TEXT("Камбоджа")},
 -	{106, 	TEXT("Катар")},
 -	{107, 	TEXT("Кипр")},
 -	{92, 	TEXT("Киргизия (Кыргызстан)")},
 -	{76, 	TEXT("Китай")},
 -	{3215, 	TEXT("Кокосовые острова (Австр.)")},
 -	{29, 	TEXT("Корея (КНДР)")},
 -	{108, 	TEXT("Корея")},
 -	{88, 	TEXT("Кувейт")},
 -	{109, 	TEXT("Лаос")},
 -	{110, 	TEXT("Ливан")},
 -	{111, 	TEXT("Малайзия")},
 -	{112, 	TEXT("Мальдивы")},
 -	{113, 	TEXT("Монголия")},
 -	{114, 	TEXT("Мьянма")},
 -	{115, 	TEXT("Непал")},
 -	{116, 	TEXT("Объединенные Арабские Эмираты")},
 -	{117, 	TEXT("Оман")},
 -	{3216, 	TEXT("Остров Рождества (Австр.)")},
 -	{122, 	TEXT("Пакистан")},
 -	{89, 	TEXT("Палестина")},
 -	{94, 	TEXT("Саудовская Аравия")},
 -	{118, 	TEXT("Сингапур")},
 -	{78, 	TEXT("Сирия")},
 -	{91, 	TEXT("Таджикистан")},
 -	{119, 	TEXT("Таиланд")},
 -	{120, 	TEXT("Тайвань")},
 -	{132, 	TEXT("Тимор")},
 -	{90, 	TEXT("Туркмения")},
 -	{77, 	TEXT("Турция")},
 -	{93, 	TEXT("Узбекистан")},
 -	{121, 	TEXT("Филиппины")},
 -	{98, 	TEXT("Шри Ланка")},
 -	{75, 	TEXT("Япония")},
 -	{123, 	TEXT("Австралия")},
 -	{454, 	TEXT("Американское Самоа")},
 -	{124, 	TEXT("Вануату")},
 -	{453, 	TEXT("Гуам (США)")},
 -	{126, 	TEXT("Кирибати")},
 -	{127, 	TEXT("Маршалловы Острова")},
 -	{128, 	TEXT("Микронезия (Федеративные Штаты Микронезии)")},
 -	{129, 	TEXT("Науру")},
 -	{3220, 	TEXT("Ниуэ (Н.Зел.)")},
 -	{130, 	TEXT("Новая Зеландия")},
 -	{3218, 	TEXT("Новая Каледония (Фр.)")},
 -	{3221, 	TEXT("Острова Кука (Н.Зел.)")},
 -	{3230, 	TEXT("Острова Херд и Макдональд (Австр.)")},
 -	{131, 	TEXT("Палау")},
 -	{133, 	TEXT("Папуа - Новая Гвинея")},
 -	{3222, 	TEXT("Питкерн (Брит.)")},
 -	{125, 	TEXT("Самоа")},
 -	{3219, 	TEXT("Сев. Марианские острова (США)")},
 -	{134, 	TEXT("Соломоновы Острова")},
 -	{3223, 	TEXT("Токелау (Н.Зел.)")},
 -	{135, 	TEXT("Тонга")},
 -	{136, 	TEXT("Тувалу")},
 -	{3224, 	TEXT("Уоллис и Футуна острова (Фр.)")},
 -	{137, 	TEXT("Фиджи")},
 -	{3226, 	TEXT("Французская Полинезия")},
 -	{3225, 	TEXT("Французские Южные территории")},
 -	{138, 	TEXT("Канада")},
 -	{139, 	TEXT("США")},
 -	{3200, 	TEXT("Ангилья (Брит.)")},
 -	{140, 	TEXT("Антигуа и Барбуда")},
 -	{141, 	TEXT("Аргентина")},
 -	{3202, 	TEXT("Аруба (Нид.)")},
 -	{142, 	TEXT("Багамы")},
 -	{143, 	TEXT("Барбадос")},
 -	{146, 	TEXT("Белиз")},
 -	{3203, 	TEXT("Бермуды (Брит.)")},
 -	{144, 	TEXT("Боливия")},
 -	{145, 	TEXT("Бразилия")},
 -	{147, 	TEXT("Венесуэла")},
 -	{3204, 	TEXT("Виргинские острова (Брит.)")},
 -	{452, 	TEXT("Виргинские острова (США)")},
 -	{149, 	TEXT("Гаити")},
 -	{148, 	TEXT("Гайана")},
 -	{3205, 	TEXT("Гваделупа (Фр.)")},
 -	{173, 	TEXT("Гватемала")},
 -	{150, 	TEXT("Гондурас")},
 -	{151, 	TEXT("Гренада")},
 -	{152, 	TEXT("Гренландия (Дат.)")},
 -	{153, 	TEXT("Доминика")},
 -	{154, 	TEXT("Доминиканская Республика")},
 -	{155, 	TEXT("Колумбия")},
 -	{156, 	TEXT("Коста-Рика")},
 -	{157, 	TEXT("Куба")},
 -	{3208, 	TEXT("Мартиника (Фр.)")},
 -	{158, 	TEXT("Мексика")},
 -	{3209, 	TEXT("Монтсеррат (Брит)")},
 -	{3201, 	TEXT("Нидерландские Антилы")},
 -	{159, 	TEXT("Никарагуа")},
 -	{3207, 	TEXT("Остров Кайман (Брит.)")},
 -	{3211, 	TEXT("Острова Теркс и Кайкос (Брит.)")},
 -	{160, 	TEXT("Панама")},
 -	{161, 	TEXT("Парагвай")},
 -	{162, 	TEXT("Перу")},
 -	{163, 	TEXT("Сальвадор")},
 -	{164, 	TEXT("Сент-Винсент и Гренадины")},
 -	{165, 	TEXT("Сент-Китс и Невис")},
 -	{166, 	TEXT("Сент-Люсия")},
 -	{3210, 	TEXT("Сент-Пьер и Микелон (Фр.)")},
 -	{167, 	TEXT("Суринам")},
 -	{168, 	TEXT("Тринидат и Тобаго")},
 -	{169, 	TEXT("Уругвай")},
 -	{3212, 	TEXT("Фолклендские острова (Брит.)")},
 -	{3206, 	TEXT("Французская Гвиана")},
 -	{170, 	TEXT("Чили")},
 -	{171, 	TEXT("Эквадор")},
 -	{3213, 	TEXT("Юж. Джорджия и Юж. Сандвичевы о-ва (Брит.)")},
 -	{172, 	TEXT("Ямайка")},
 -	{174, 	TEXT("Алжир")},
 -	{175, 	TEXT("Ангола")},
 -	{176, 	TEXT("Бенин")},
 -	{177, 	TEXT("Ботсвана")},
 -	{3228, 	TEXT("Британская территория в Индийском океане")},
 -	{178, 	TEXT("Буркина-Фасо")},
 -	{179, 	TEXT("Бурунди")},
 -	{180, 	TEXT("Габон")},
 -	{181, 	TEXT("Гамбия")},
 -	{182, 	TEXT("Гана")},
 -	{183, 	TEXT("Гвинея")},
 -	{184, 	TEXT("Гвинея-Бисау")},
 -	{185, 	TEXT("Джибути")},
 -	{186, 	TEXT("Египет")},
 -	{187, 	TEXT("Замбия")},
 -	{3198, 	TEXT("Зап. Сахара")},
 -	{23, 	TEXT("Зимбабве")},
 -	{188, 	TEXT("Кабо-Верде")},
 -	{189, 	TEXT("Камерун")},
 -	{190, 	TEXT("Кения")},
 -	{191, 	TEXT("Коморы")},
 -	{193, 	TEXT("Конго (Заир)")},
 -	{192, 	TEXT("Конго")},
 -	{194, 	TEXT("Кот-д`Ивуар")},
 -	{195, 	TEXT("Лесото")},
 -	{196, 	TEXT("Либерия")},
 -	{197, 	TEXT("Ливия")},
 -	{198, 	TEXT("Маврикий")},
 -	{199, 	TEXT("Мавритания")},
 -	{200, 	TEXT("Мадагаскар")},
 -	{3229, 	TEXT("Майотт (Фр.)")},
 -	{201, 	TEXT("Малави")},
 -	{202, 	TEXT("Мали")},
 -	{203, 	TEXT("Марокко")},
 -	{204, 	TEXT("Мозамбик")},
 -	{205, 	TEXT("Намибия")},
 -	{206, 	TEXT("Нигер")},
 -	{207, 	TEXT("Нигерия")},
 -	{3227, 	TEXT("Остров Буве (Норв.)")},
 -	{3197, 	TEXT("Реюньон (Фр.)")},
 -	{208, 	TEXT("Руанда")},
 -	{209, 	TEXT("Сан-Томе и Принсипи")},
 -	{210, 	TEXT("Свазиленд")},
 -	{3199, 	TEXT("Святая Елена (Брит.)")},
 -	{211, 	TEXT("Сейшелы")},
 -	{212, 	TEXT("Сенегал")},
 -	{213, 	TEXT("Сомали")},
 -	{214, 	TEXT("Судан")},
 -	{215, 	TEXT("Сьерра-Леоне")},
 -	{216, 	TEXT("Танзания")},
 -	{217, 	TEXT("Того")},
 -	{218, 	TEXT("Тунис")},
 -	{219, 	TEXT("Уганда")},
 -	{220, 	TEXT("Центральноафриканская Республика")},
 -	{222, 	TEXT("Чад")},
 -	{223, 	TEXT("Экваториальная Гвинея")},
 -	{221, 	TEXT("Эритрея")},
 -	{224, 	TEXT("Эфиопия")},
 -	{225, 	TEXT("Южно-Африканская Республика (ЮАР)")},
 -	{39, 	TEXT("Украина")},
 -	{40, 	TEXT("Австрия")},
 -	{32, 	TEXT("Албания")},
 -	{33, 	TEXT("Андорра")},
 -	{340, 	TEXT("Белоруссия")},
 -	{38, 	TEXT("Бельгия")},
 -	{41, 	TEXT("Болгария")},
 -	{42, 	TEXT("Босния и Герцеговина")},
 -	{43, 	TEXT("Ватикан")},
 -	{45, 	TEXT("Великобритания")},
 -	{44, 	TEXT("Венгрия")},
 -	{46, 	TEXT("Германия")},
 -	{3193, 	TEXT("Гернси (Брит.)")},
 -	{47, 	TEXT("Гибралтар (Брит.)")},
 -	{48, 	TEXT("Греция")},
 -	{49, 	TEXT("Дания")},
 -	{3194, 	TEXT("Джерси (Брит.)")},
 -	{50, 	TEXT("Ирландия")},
 -	{51, 	TEXT("Исландия")},
 -	{34, 	TEXT("Испания")},
 -	{52, 	TEXT("Италия")},
 -	{53, 	TEXT("Латвия")},
 -	{54, 	TEXT("Литва")},
 -	{55, 	TEXT("Лихтенштейн")},
 -	{56, 	TEXT("Люксембург")},
 -	{57, 	TEXT("Македония")},
 -	{58, 	TEXT("Мальта")},
 -	{59, 	TEXT("Молдавия")},
 -	{36, 	TEXT("Монако")},
 -	{60, 	TEXT("Нидерланды")},
 -	{61, 	TEXT("Норвегия")},
 -	{3195, 	TEXT("Остров Мэн (Брит.)")},
 -	{62, 	TEXT("Польша")},
 -	{35, 	TEXT("Португалия")},
 -	{63, 	TEXT("Румыния")},
 -	{64, 	TEXT("Сан-Марино")},
 -	{74, 	TEXT("Сербия и Черногория")},
 -	{65, 	TEXT("Словакия")},
 -	{66, 	TEXT("Словения")},
 -	{67, 	TEXT("Фарерские о-ва (Дания)")},
 -	{68, 	TEXT("Финляндия")},
 -	{37, 	TEXT("Франция")},
 -	{69, 	TEXT("Хорватия")},
 -	{70, 	TEXT("Чехия")},
 -	{71, 	TEXT("Швейцария")},
 -	{72, 	TEXT("Швеция")},
 -	{3196, 	TEXT("Шпицберген (Норв.)")},
 -	{73, 	TEXT("Эстония")},
 +	{24, 	_T("Россия")},
 +	{81, 	_T("Азербайджан")},
 +	{82, 	_T("Армения")},
 +	{97, 	_T("Афганистан")},
 +	{96, 	_T("Бангладеш")},
 +	{99, 	_T("Бахрейн")},
 +	{100, 	_T("Бруней-Даруссалам")},
 +	{101, 	_T("Бутан")},
 +	{102, 	_T("Вьетнам")},
 +	{83, 	_T("Грузия")},
 +	{86, 	_T("Израиль")},
 +	{95, 	_T("Индия")},
 +	{103, 	_T("Индонезия")},
 +	{79, 	_T("Иордания")},
 +	{85, 	_T("Ирак")},
 +	{87, 	_T("Иран")},
 +	{104, 	_T("Йемен")},
 +	{84, 	_T("Казахстан")},
 +	{105, 	_T("Камбоджа")},
 +	{106, 	_T("Катар")},
 +	{107, 	_T("Кипр")},
 +	{92, 	_T("Киргизия (Кыргызстан)")},
 +	{76, 	_T("Китай")},
 +	{3215, 	_T("Кокосовые острова (Австр.)")},
 +	{29, 	_T("Корея (КНДР)")},
 +	{108, 	_T("Корея")},
 +	{88, 	_T("Кувейт")},
 +	{109, 	_T("Лаос")},
 +	{110, 	_T("Ливан")},
 +	{111, 	_T("Малайзия")},
 +	{112, 	_T("Мальдивы")},
 +	{113, 	_T("Монголия")},
 +	{114, 	_T("Мьянма")},
 +	{115, 	_T("Непал")},
 +	{116, 	_T("Объединенные Арабские Эмираты")},
 +	{117, 	_T("Оман")},
 +	{3216, 	_T("Остров Рождества (Австр.)")},
 +	{122, 	_T("Пакистан")},
 +	{89, 	_T("Палестина")},
 +	{94, 	_T("Саудовская Аравия")},
 +	{118, 	_T("Сингапур")},
 +	{78, 	_T("Сирия")},
 +	{91, 	_T("Таджикистан")},
 +	{119, 	_T("Таиланд")},
 +	{120, 	_T("Тайвань")},
 +	{132, 	_T("Тимор")},
 +	{90, 	_T("Туркмения")},
 +	{77, 	_T("Турция")},
 +	{93, 	_T("Узбекистан")},
 +	{121, 	_T("Филиппины")},
 +	{98, 	_T("Шри Ланка")},
 +	{75, 	_T("Япония")},
 +	{123, 	_T("Австралия")},
 +	{454, 	_T("Американское Самоа")},
 +	{124, 	_T("Вануату")},
 +	{453, 	_T("Гуам (США)")},
 +	{126, 	_T("Кирибати")},
 +	{127, 	_T("Маршалловы Острова")},
 +	{128, 	_T("Микронезия (Федеративные Штаты Микронезии)")},
 +	{129, 	_T("Науру")},
 +	{3220, 	_T("Ниуэ (Н.Зел.)")},
 +	{130, 	_T("Новая Зеландия")},
 +	{3218, 	_T("Новая Каледония (Фр.)")},
 +	{3221, 	_T("Острова Кука (Н.Зел.)")},
 +	{3230, 	_T("Острова Херд и Макдональд (Австр.)")},
 +	{131, 	_T("Палау")},
 +	{133, 	_T("Папуа - Новая Гвинея")},
 +	{3222, 	_T("Питкерн (Брит.)")},
 +	{125, 	_T("Самоа")},
 +	{3219, 	_T("Сев. Марианские острова (США)")},
 +	{134, 	_T("Соломоновы Острова")},
 +	{3223, 	_T("Токелау (Н.Зел.)")},
 +	{135, 	_T("Тонга")},
 +	{136, 	_T("Тувалу")},
 +	{3224, 	_T("Уоллис и Футуна острова (Фр.)")},
 +	{137, 	_T("Фиджи")},
 +	{3226, 	_T("Французская Полинезия")},
 +	{3225, 	_T("Французские Южные территории")},
 +	{138, 	_T("Канада")},
 +	{139, 	_T("США")},
 +	{3200, 	_T("Ангилья (Брит.)")},
 +	{140, 	_T("Антигуа и Барбуда")},
 +	{141, 	_T("Аргентина")},
 +	{3202, 	_T("Аруба (Нид.)")},
 +	{142, 	_T("Багамы")},
 +	{143, 	_T("Барбадос")},
 +	{146, 	_T("Белиз")},
 +	{3203, 	_T("Бермуды (Брит.)")},
 +	{144, 	_T("Боливия")},
 +	{145, 	_T("Бразилия")},
 +	{147, 	_T("Венесуэла")},
 +	{3204, 	_T("Виргинские острова (Брит.)")},
 +	{452, 	_T("Виргинские острова (США)")},
 +	{149, 	_T("Гаити")},
 +	{148, 	_T("Гайана")},
 +	{3205, 	_T("Гваделупа (Фр.)")},
 +	{173, 	_T("Гватемала")},
 +	{150, 	_T("Гондурас")},
 +	{151, 	_T("Гренада")},
 +	{152, 	_T("Гренландия (Дат.)")},
 +	{153, 	_T("Доминика")},
 +	{154, 	_T("Доминиканская Республика")},
 +	{155, 	_T("Колумбия")},
 +	{156, 	_T("Коста-Рика")},
 +	{157, 	_T("Куба")},
 +	{3208, 	_T("Мартиника (Фр.)")},
 +	{158, 	_T("Мексика")},
 +	{3209, 	_T("Монтсеррат (Брит)")},
 +	{3201, 	_T("Нидерландские Антилы")},
 +	{159, 	_T("Никарагуа")},
 +	{3207, 	_T("Остров Кайман (Брит.)")},
 +	{3211, 	_T("Острова Теркс и Кайкос (Брит.)")},
 +	{160, 	_T("Панама")},
 +	{161, 	_T("Парагвай")},
 +	{162, 	_T("Перу")},
 +	{163, 	_T("Сальвадор")},
 +	{164, 	_T("Сент-Винсент и Гренадины")},
 +	{165, 	_T("Сент-Китс и Невис")},
 +	{166, 	_T("Сент-Люсия")},
 +	{3210, 	_T("Сент-Пьер и Микелон (Фр.)")},
 +	{167, 	_T("Суринам")},
 +	{168, 	_T("Тринидат и Тобаго")},
 +	{169, 	_T("Уругвай")},
 +	{3212, 	_T("Фолклендские острова (Брит.)")},
 +	{3206, 	_T("Французская Гвиана")},
 +	{170, 	_T("Чили")},
 +	{171, 	_T("Эквадор")},
 +	{3213, 	_T("Юж. Джорджия и Юж. Сандвичевы о-ва (Брит.)")},
 +	{172, 	_T("Ямайка")},
 +	{174, 	_T("Алжир")},
 +	{175, 	_T("Ангола")},
 +	{176, 	_T("Бенин")},
 +	{177, 	_T("Ботсвана")},
 +	{3228, 	_T("Британская территория в Индийском океане")},
 +	{178, 	_T("Буркина-Фасо")},
 +	{179, 	_T("Бурунди")},
 +	{180, 	_T("Габон")},
 +	{181, 	_T("Гамбия")},
 +	{182, 	_T("Гана")},
 +	{183, 	_T("Гвинея")},
 +	{184, 	_T("Гвинея-Бисау")},
 +	{185, 	_T("Джибути")},
 +	{186, 	_T("Египет")},
 +	{187, 	_T("Замбия")},
 +	{3198, 	_T("Зап. Сахара")},
 +	{23, 	_T("Зимбабве")},
 +	{188, 	_T("Кабо-Верде")},
 +	{189, 	_T("Камерун")},
 +	{190, 	_T("Кения")},
 +	{191, 	_T("Коморы")},
 +	{193, 	_T("Конго (Заир)")},
 +	{192, 	_T("Конго")},
 +	{194, 	_T("Кот-д`Ивуар")},
 +	{195, 	_T("Лесото")},
 +	{196, 	_T("Либерия")},
 +	{197, 	_T("Ливия")},
 +	{198, 	_T("Маврикий")},
 +	{199, 	_T("Мавритания")},
 +	{200, 	_T("Мадагаскар")},
 +	{3229, 	_T("Майотт (Фр.)")},
 +	{201, 	_T("Малави")},
 +	{202, 	_T("Мали")},
 +	{203, 	_T("Марокко")},
 +	{204, 	_T("Мозамбик")},
 +	{205, 	_T("Намибия")},
 +	{206, 	_T("Нигер")},
 +	{207, 	_T("Нигерия")},
 +	{3227, 	_T("Остров Буве (Норв.)")},
 +	{3197, 	_T("Реюньон (Фр.)")},
 +	{208, 	_T("Руанда")},
 +	{209, 	_T("Сан-Томе и Принсипи")},
 +	{210, 	_T("Свазиленд")},
 +	{3199, 	_T("Святая Елена (Брит.)")},
 +	{211, 	_T("Сейшелы")},
 +	{212, 	_T("Сенегал")},
 +	{213, 	_T("Сомали")},
 +	{214, 	_T("Судан")},
 +	{215, 	_T("Сьерра-Леоне")},
 +	{216, 	_T("Танзания")},
 +	{217, 	_T("Того")},
 +	{218, 	_T("Тунис")},
 +	{219, 	_T("Уганда")},
 +	{220, 	_T("Центральноафриканская Республика")},
 +	{222, 	_T("Чад")},
 +	{223, 	_T("Экваториальная Гвинея")},
 +	{221, 	_T("Эритрея")},
 +	{224, 	_T("Эфиопия")},
 +	{225, 	_T("Южно-Африканская Республика (ЮАР)")},
 +	{39, 	_T("Украина")},
 +	{40, 	_T("Австрия")},
 +	{32, 	_T("Албания")},
 +	{33, 	_T("Андорра")},
 +	{340, 	_T("Белоруссия")},
 +	{38, 	_T("Бельгия")},
 +	{41, 	_T("Болгария")},
 +	{42, 	_T("Босния и Герцеговина")},
 +	{43, 	_T("Ватикан")},
 +	{45, 	_T("Великобритания")},
 +	{44, 	_T("Венгрия")},
 +	{46, 	_T("Германия")},
 +	{3193, 	_T("Гернси (Брит.)")},
 +	{47, 	_T("Гибралтар (Брит.)")},
 +	{48, 	_T("Греция")},
 +	{49, 	_T("Дания")},
 +	{3194, 	_T("Джерси (Брит.)")},
 +	{50, 	_T("Ирландия")},
 +	{51, 	_T("Исландия")},
 +	{34, 	_T("Испания")},
 +	{52, 	_T("Италия")},
 +	{53, 	_T("Латвия")},
 +	{54, 	_T("Литва")},
 +	{55, 	_T("Лихтенштейн")},
 +	{56, 	_T("Люксембург")},
 +	{57, 	_T("Македония")},
 +	{58, 	_T("Мальта")},
 +	{59, 	_T("Молдавия")},
 +	{36, 	_T("Монако")},
 +	{60, 	_T("Нидерланды")},
 +	{61, 	_T("Норвегия")},
 +	{3195, 	_T("Остров Мэн (Брит.)")},
 +	{62, 	_T("Польша")},
 +	{35, 	_T("Португалия")},
 +	{63, 	_T("Румыния")},
 +	{64, 	_T("Сан-Марино")},
 +	{74, 	_T("Сербия и Черногория")},
 +	{65, 	_T("Словакия")},
 +	{66, 	_T("Словения")},
 +	{67, 	_T("Фарерские о-ва (Дания)")},
 +	{68, 	_T("Финляндия")},
 +	{37, 	_T("Франция")},
 +	{69, 	_T("Хорватия")},
 +	{70, 	_T("Чехия")},
 +	{71, 	_T("Швейцария")},
 +	{72, 	_T("Швеция")},
 +	{3196, 	_T("Шпицберген (Норв.)")},
 +	{73, 	_T("Эстония")},
  	{0, 		NULL}
  };
 @@ -1667,1125 +1667,1125 @@ static const MRA_COUNTRY mracCountrys[] =  static const MRA_CITY mracCitys[] =
  {
 -	{24, 	25, 		TEXT("Москва")},
 -	{24, 	226, 	TEXT("Санкт-Петербург")},
 -	{24, 	233, 	TEXT("Саха (Якутия)")},
 -	{24, 	232, 	TEXT("Приморский край")},
 -	{24, 	235, 	TEXT("Хабаровский край")},
 -	{24, 	227, 	TEXT("Амурская обл.")},
 -	{24, 	229, 	TEXT("Камчатская обл.")},
 -	{24, 	231, 	TEXT("Магаданская обл.")},
 -	{24, 	234, 	TEXT("Сахалинская обл.")},
 -	{24, 	228, 	TEXT("Еврейская АО")},
 -	{24, 	230, 	TEXT("Корякский АО")},
 -	{24, 	236, 	TEXT("Чукотский АО")},
 -	{24, 	237, 	TEXT("Башкортостан")},
 -	{24, 	240, 	TEXT("Марий-Эл")},
 -	{24, 	241, 	TEXT("Мордовия")},
 -	{24, 	248, 	TEXT("Татарстан")},
 -	{24, 	249, 	TEXT("Удмуртия")},
 -	{24, 	251, 	TEXT("Чувашия")},
 -	{24, 	238, 	TEXT("Кировская обл.")},
 -	{24, 	242, 	TEXT("Нижегородская обл.")},
 -	{24, 	243, 	TEXT("Оренбургская обл.")},
 -	{24, 	244, 	TEXT("Пензенская обл.")},
 -	{24, 	245, 	TEXT("Пермская обл.")},
 -	{24, 	246, 	TEXT("Самарская обл.")},
 -	{24, 	247, 	TEXT("Саратовская обл.")},
 -	{24, 	250, 	TEXT("Ульяновская обл.")},
 -	{24, 	239, 	TEXT("Коми-Пермяцкий АО")},
 -	{24, 	255, 	TEXT("Карелия")},
 -	{24, 	256, 	TEXT("Коми")},
 -	{24, 	252, 	TEXT("Архангельская обл.")},
 -	{24, 	253, 	TEXT("Вологодская обл.")},
 -	{24, 	254, 	TEXT("Калининградская обл.")},
 -	{24, 	257, 	TEXT("Ленинградская обл.")},
 -	{24, 	258, 	TEXT("Мурманская обл.")},
 -	{24, 	260, 	TEXT("Новгородская обл.")},
 -	{24, 	261, 	TEXT("Псковская обл.")},
 -	{24, 	259, 	TEXT("Ненецкий АО")},
 -	{24, 	265, 	TEXT("Бурятия")},
 -	{24, 	263, 	TEXT("Республика Алтай")},
 -	{24, 	273, 	TEXT("Тыва")},
 -	{24, 	275, 	TEXT("Хакасия")},
 -	{24, 	264, 	TEXT("Алтайский край")},
 -	{24, 	268, 	TEXT("Красноярский край")},
 -	{24, 	266, 	TEXT("Иркутская обл.")},
 -	{24, 	267, 	TEXT("Кемеровская обл.")},
 -	{24, 	269, 	TEXT("Новосибирская обл.")},
 -	{24, 	270, 	TEXT("Омская обл.")},
 -	{24, 	272, 	TEXT("Томская обл.")},
 -	{24, 	276, 	TEXT("Читинская обл.")},
 -	{24, 	262, 	TEXT("Агинский Бурятский АО")},
 -	{24, 	271, 	TEXT("Таймырский АО")},
 -	{24, 	274, 	TEXT("Усть-Ордынский Бурятский АО")},
 -	{24, 	277, 	TEXT("Эвенкийский АО")},
 -	{24, 	278, 	TEXT("Курганская обл.")},
 -	{24, 	279, 	TEXT("Свердловская обл.")},
 -	{24, 	280, 	TEXT("Тюменская обл.")},
 -	{24, 	282, 	TEXT("Челябинская обл.")},
 -	{24, 	281, 	TEXT("Ханты-Мансийский АО - Югра")},
 -	{24, 	283, 	TEXT("Ямало-Ненецкий АО")},
 -	{24, 	284, 	TEXT("Белгородская обл.")},
 -	{24, 	285, 	TEXT("Брянская обл.")},
 -	{24, 	286, 	TEXT("Владимирская обл.")},
 -	{24, 	287, 	TEXT("Воронежская обл.")},
 -	{24, 	288, 	TEXT("Ивановская обл.")},
 -	{24, 	289, 	TEXT("Калужская обл.")},
 -	{24, 	290, 	TEXT("Костромская обл.")},
 -	{24, 	291, 	TEXT("Курская обл.")},
 -	{24, 	292, 	TEXT("Липецкая обл.")},
 -	{24, 	293, 	TEXT("Московская обл.")},
 -	{24, 	294, 	TEXT("Орловская обл.")},
 -	{24, 	295, 	TEXT("Рязанская обл.")},
 -	{24, 	296, 	TEXT("Смоленская обл.")},
 -	{24, 	297, 	TEXT("Тамбовская обл.")},
 -	{24, 	298, 	TEXT("Тверская обл.")},
 -	{24, 	299, 	TEXT("Тульская обл.")},
 -	{24, 	300, 	TEXT("Ярославская обл.")},
 -	{24, 	301, 	TEXT("Адыгея")},
 -	{24, 	304, 	TEXT("Дагестан")},
 -	{24, 	305, 	TEXT("Ингушетия")},
 -	{24, 	306, 	TEXT("Кабардино-Балкария")},
 -	{24, 	307, 	TEXT("Калмыкия")},
 -	{24, 	308, 	TEXT("Карачаево-Черкессия")},
 -	{24, 	311, 	TEXT("Северная Осетия - Алания")},
 -	{24, 	313, 	TEXT("Чечня")},
 -	{24, 	309, 	TEXT("Краснодарский край")},
 -	{24, 	312, 	TEXT("Ставропольский край")},
 -	{24, 	302, 	TEXT("Астраханская обл.")},
 -	{24, 	303, 	TEXT("Волгоградская обл.")},
 -	{24, 	310, 	TEXT("Ростовская обл.")},
 -	{81, 	1055, 	TEXT("Баку")},
 -	{81, 	1058, 	TEXT("Гянджа")},
 -	{81, 	1056, 	TEXT("Нахичевань")},
 -	{81, 	1057, 	TEXT("Ханкенди")},
 -	{81, 	3153, 	TEXT("Шеки")},
 +	{24, 	25, 		_T("Москва")},
 +	{24, 	226, 	_T("Санкт-Петербург")},
 +	{24, 	233, 	_T("Саха (Якутия)")},
 +	{24, 	232, 	_T("Приморский край")},
 +	{24, 	235, 	_T("Хабаровский край")},
 +	{24, 	227, 	_T("Амурская обл.")},
 +	{24, 	229, 	_T("Камчатская обл.")},
 +	{24, 	231, 	_T("Магаданская обл.")},
 +	{24, 	234, 	_T("Сахалинская обл.")},
 +	{24, 	228, 	_T("Еврейская АО")},
 +	{24, 	230, 	_T("Корякский АО")},
 +	{24, 	236, 	_T("Чукотский АО")},
 +	{24, 	237, 	_T("Башкортостан")},
 +	{24, 	240, 	_T("Марий-Эл")},
 +	{24, 	241, 	_T("Мордовия")},
 +	{24, 	248, 	_T("Татарстан")},
 +	{24, 	249, 	_T("Удмуртия")},
 +	{24, 	251, 	_T("Чувашия")},
 +	{24, 	238, 	_T("Кировская обл.")},
 +	{24, 	242, 	_T("Нижегородская обл.")},
 +	{24, 	243, 	_T("Оренбургская обл.")},
 +	{24, 	244, 	_T("Пензенская обл.")},
 +	{24, 	245, 	_T("Пермская обл.")},
 +	{24, 	246, 	_T("Самарская обл.")},
 +	{24, 	247, 	_T("Саратовская обл.")},
 +	{24, 	250, 	_T("Ульяновская обл.")},
 +	{24, 	239, 	_T("Коми-Пермяцкий АО")},
 +	{24, 	255, 	_T("Карелия")},
 +	{24, 	256, 	_T("Коми")},
 +	{24, 	252, 	_T("Архангельская обл.")},
 +	{24, 	253, 	_T("Вологодская обл.")},
 +	{24, 	254, 	_T("Калининградская обл.")},
 +	{24, 	257, 	_T("Ленинградская обл.")},
 +	{24, 	258, 	_T("Мурманская обл.")},
 +	{24, 	260, 	_T("Новгородская обл.")},
 +	{24, 	261, 	_T("Псковская обл.")},
 +	{24, 	259, 	_T("Ненецкий АО")},
 +	{24, 	265, 	_T("Бурятия")},
 +	{24, 	263, 	_T("Республика Алтай")},
 +	{24, 	273, 	_T("Тыва")},
 +	{24, 	275, 	_T("Хакасия")},
 +	{24, 	264, 	_T("Алтайский край")},
 +	{24, 	268, 	_T("Красноярский край")},
 +	{24, 	266, 	_T("Иркутская обл.")},
 +	{24, 	267, 	_T("Кемеровская обл.")},
 +	{24, 	269, 	_T("Новосибирская обл.")},
 +	{24, 	270, 	_T("Омская обл.")},
 +	{24, 	272, 	_T("Томская обл.")},
 +	{24, 	276, 	_T("Читинская обл.")},
 +	{24, 	262, 	_T("Агинский Бурятский АО")},
 +	{24, 	271, 	_T("Таймырский АО")},
 +	{24, 	274, 	_T("Усть-Ордынский Бурятский АО")},
 +	{24, 	277, 	_T("Эвенкийский АО")},
 +	{24, 	278, 	_T("Курганская обл.")},
 +	{24, 	279, 	_T("Свердловская обл.")},
 +	{24, 	280, 	_T("Тюменская обл.")},
 +	{24, 	282, 	_T("Челябинская обл.")},
 +	{24, 	281, 	_T("Ханты-Мансийский АО - Югра")},
 +	{24, 	283, 	_T("Ямало-Ненецкий АО")},
 +	{24, 	284, 	_T("Белгородская обл.")},
 +	{24, 	285, 	_T("Брянская обл.")},
 +	{24, 	286, 	_T("Владимирская обл.")},
 +	{24, 	287, 	_T("Воронежская обл.")},
 +	{24, 	288, 	_T("Ивановская обл.")},
 +	{24, 	289, 	_T("Калужская обл.")},
 +	{24, 	290, 	_T("Костромская обл.")},
 +	{24, 	291, 	_T("Курская обл.")},
 +	{24, 	292, 	_T("Липецкая обл.")},
 +	{24, 	293, 	_T("Московская обл.")},
 +	{24, 	294, 	_T("Орловская обл.")},
 +	{24, 	295, 	_T("Рязанская обл.")},
 +	{24, 	296, 	_T("Смоленская обл.")},
 +	{24, 	297, 	_T("Тамбовская обл.")},
 +	{24, 	298, 	_T("Тверская обл.")},
 +	{24, 	299, 	_T("Тульская обл.")},
 +	{24, 	300, 	_T("Ярославская обл.")},
 +	{24, 	301, 	_T("Адыгея")},
 +	{24, 	304, 	_T("Дагестан")},
 +	{24, 	305, 	_T("Ингушетия")},
 +	{24, 	306, 	_T("Кабардино-Балкария")},
 +	{24, 	307, 	_T("Калмыкия")},
 +	{24, 	308, 	_T("Карачаево-Черкессия")},
 +	{24, 	311, 	_T("Северная Осетия - Алания")},
 +	{24, 	313, 	_T("Чечня")},
 +	{24, 	309, 	_T("Краснодарский край")},
 +	{24, 	312, 	_T("Ставропольский край")},
 +	{24, 	302, 	_T("Астраханская обл.")},
 +	{24, 	303, 	_T("Волгоградская обл.")},
 +	{24, 	310, 	_T("Ростовская обл.")},
 +	{81, 	1055, 	_T("Баку")},
 +	{81, 	1058, 	_T("Гянджа")},
 +	{81, 	1056, 	_T("Нахичевань")},
 +	{81, 	1057, 	_T("Ханкенди")},
 +	{81, 	3153, 	_T("Шеки")},
  	{81, 	2291, 	lpwszOther},
 -	{82, 	2932, 	TEXT("Абовян")},
 -	{82, 	1060, 	TEXT("Аштарак")},
 -	{82, 	3084, 	TEXT("Ванадзор")},
 -	{82, 	3011, 	TEXT("Гюмри")},
 -	{82, 	3306, 	TEXT("Дилижан")},
 -	{82, 	1059, 	TEXT("Ереван")},
 -	{82, 	3145, 	TEXT("Ханкенди")},
 +	{82, 	2932, 	_T("Абовян")},
 +	{82, 	1060, 	_T("Аштарак")},
 +	{82, 	3084, 	_T("Ванадзор")},
 +	{82, 	3011, 	_T("Гюмри")},
 +	{82, 	3306, 	_T("Дилижан")},
 +	{82, 	1059, 	_T("Ереван")},
 +	{82, 	3145, 	_T("Ханкенди")},
  	{82, 	2292, 	lpwszOther},
 -	{97, 	1061, 	TEXT("Кабул")},
 +	{97, 	1061, 	_T("Кабул")},
  	{97, 	2293, 	lpwszOther},
 -	{96, 	1062, 	TEXT("Дакка")},
 +	{96, 	1062, 	_T("Дакка")},
  	{96, 	2294, 	lpwszOther},
 -	{99, 	1063, 	TEXT("Манама")},
 +	{99, 	1063, 	_T("Манама")},
  	{99, 	2295, 	lpwszOther},
 -	{100, 	1064, 	TEXT("Бандар-Сери-Бегаван")},
 +	{100, 	1064, 	_T("Бандар-Сери-Бегаван")},
  	{100, 	2296, 	lpwszOther},
 -	{101, 	1065, 	TEXT("Тхимпху")},
 +	{101, 	1065, 	_T("Тхимпху")},
  	{101, 	2297, 	lpwszOther},
 -	{102, 	1066, 	TEXT("Ханой")},
 +	{102, 	1066, 	_T("Ханой")},
  	{102, 	2298, 	lpwszOther},
 -	{83, 	1067, 	TEXT("Батуми")},
 -	{83, 	3158, 	TEXT("Боржоми")},
 -	{83, 	1068, 	TEXT("Поти")},
 -	{83, 	3129, 	TEXT("Рустави")},
 -	{83, 	1069, 	TEXT("Сухуми")},
 -	{83, 	1070, 	TEXT("Тбилиси")},
 +	{83, 	1067, 	_T("Батуми")},
 +	{83, 	3158, 	_T("Боржоми")},
 +	{83, 	1068, 	_T("Поти")},
 +	{83, 	3129, 	_T("Рустави")},
 +	{83, 	1069, 	_T("Сухуми")},
 +	{83, 	1070, 	_T("Тбилиси")},
  	{83, 	2299, 	lpwszOther},
 -	{86, 	3345, 	TEXT("Ариэль")},
 -	{86, 	1071, 	TEXT("Афула")},
 -	{86, 	2992, 	TEXT("Ашдод")},
 -	{86, 	3175, 	TEXT("Ашкелон")},
 -	{86, 	3363, 	TEXT("Бат-Ям")},
 -	{86, 	2884, 	TEXT("Беер-Яков")},
 -	{86, 	3243, 	TEXT("Бейт-Шемеш")},
 -	{86, 	1074, 	TEXT("Беэр-Шева")},
 -	{86, 	3348, 	TEXT("Герцелия")},
 -	{86, 	3241, 	TEXT("Димона")},
 -	{86, 	1075, 	TEXT("Иерусалим")},
 -	{86, 	3350, 	TEXT("Йокнеам-Иллит")},
 -	{86, 	2982, 	TEXT("Кармиэль")},
 -	{86, 	2971, 	TEXT("Кфар-Саба")},
 -	{86, 	3136, 	TEXT("Назарет")},
 -	{86, 	1080, 	TEXT("Натания")},
 -	{86, 	3303, 	TEXT("Офаким")},
 -	{86, 	3050, 	TEXT("Раанана")},
 -	{86, 	3151, 	TEXT("Рамат Ган")},
 -	{86, 	3141, 	TEXT("Реховот")},
 -	{86, 	3012, 	TEXT("Ришон ле Цион")},
 -	{86, 	1081, 	TEXT("Тверия")},
 -	{86, 	1077, 	TEXT("Тель-Авив")},
 -	{86, 	1079, 	TEXT("Хадера")},
 -	{86, 	1078, 	TEXT("Хайфа")},
 -	{86, 	1076, 	TEXT("Хеврон")},
 -	{86, 	2929, 	TEXT("Цфат")},
 -	{86, 	2928, 	TEXT("Эйлат")},
 +	{86, 	3345, 	_T("Ариэль")},
 +	{86, 	1071, 	_T("Афула")},
 +	{86, 	2992, 	_T("Ашдод")},
 +	{86, 	3175, 	_T("Ашкелон")},
 +	{86, 	3363, 	_T("Бат-Ям")},
 +	{86, 	2884, 	_T("Беер-Яков")},
 +	{86, 	3243, 	_T("Бейт-Шемеш")},
 +	{86, 	1074, 	_T("Беэр-Шева")},
 +	{86, 	3348, 	_T("Герцелия")},
 +	{86, 	3241, 	_T("Димона")},
 +	{86, 	1075, 	_T("Иерусалим")},
 +	{86, 	3350, 	_T("Йокнеам-Иллит")},
 +	{86, 	2982, 	_T("Кармиэль")},
 +	{86, 	2971, 	_T("Кфар-Саба")},
 +	{86, 	3136, 	_T("Назарет")},
 +	{86, 	1080, 	_T("Натания")},
 +	{86, 	3303, 	_T("Офаким")},
 +	{86, 	3050, 	_T("Раанана")},
 +	{86, 	3151, 	_T("Рамат Ган")},
 +	{86, 	3141, 	_T("Реховот")},
 +	{86, 	3012, 	_T("Ришон ле Цион")},
 +	{86, 	1081, 	_T("Тверия")},
 +	{86, 	1077, 	_T("Тель-Авив")},
 +	{86, 	1079, 	_T("Хадера")},
 +	{86, 	1078, 	_T("Хайфа")},
 +	{86, 	1076, 	_T("Хеврон")},
 +	{86, 	2929, 	_T("Цфат")},
 +	{86, 	2928, 	_T("Эйлат")},
  	{86, 	2300, 	lpwszOther},
 -	{95, 	3315, 	TEXT("Бангалор")},
 -	{95, 	1082, 	TEXT("Дели")},
 -	{95, 	1083, 	TEXT("Джайпур")},
 -	{95, 	3144, 	TEXT("Калькутта")},
 -	{95, 	3025, 	TEXT("Мумбаи")},
 -	{95, 	3277, 	TEXT("Панаджи")},
 -	{95, 	1084, 	TEXT("Ченнаи")},
 +	{95, 	3315, 	_T("Бангалор")},
 +	{95, 	1082, 	_T("Дели")},
 +	{95, 	1083, 	_T("Джайпур")},
 +	{95, 	3144, 	_T("Калькутта")},
 +	{95, 	3025, 	_T("Мумбаи")},
 +	{95, 	3277, 	_T("Панаджи")},
 +	{95, 	1084, 	_T("Ченнаи")},
  	{95, 	2301, 	lpwszOther},
 -	{103, 	1085, 	TEXT("Джакарта")},
 +	{103, 	1085, 	_T("Джакарта")},
  	{103, 	2302, 	lpwszOther},
 -	{79, 	1086, 	TEXT("Амман")},
 +	{79, 	1086, 	_T("Амман")},
  	{79, 	2303, 	lpwszOther},
 -	{85, 	1087, 	TEXT("Багдад")},
 +	{85, 	1087, 	_T("Багдад")},
  	{85, 	2304, 	lpwszOther},
 -	{87, 	1088, 	TEXT("Тегеран")},
 +	{87, 	1088, 	_T("Тегеран")},
  	{87, 	2305, 	lpwszOther},
 -	{104, 	1089, 	TEXT("Сана")},
 +	{104, 	1089, 	_T("Сана")},
  	{104, 	2306, 	lpwszOther},
 -	{84, 	1090, 	TEXT("Актау")},
 -	{84, 	1091, 	TEXT("Актюбинск")},
 -	{84, 	1092, 	TEXT("Алма-Ата")},
 -	{84, 	3242, 	TEXT("Аршалы")},
 -	{84, 	1093, 	TEXT("Астана")},
 -	{84, 	1094, 	TEXT("Атырау (Гурьев)")},
 -	{84, 	1095, 	TEXT("Байконур")},
 -	{84, 	3245, 	TEXT("Балхаш")},
 -	{84, 	3083, 	TEXT("Жезказган")},
 -	{84, 	1096, 	TEXT("Капчагай")},
 -	{84, 	1097, 	TEXT("Караганда")},
 -	{84, 	1098, 	TEXT("Кокшетау")},
 -	{84, 	1099, 	TEXT("Кустанай")},
 -	{84, 	2868, 	TEXT("Лисаковск")},
 -	{84, 	1100, 	TEXT("Павлодар")},
 -	{84, 	1101, 	TEXT("Петропавловск (Сев.-Каз. обл.)")},
 -	{84, 	1102, 	TEXT("Рудный")},
 -	{84, 	1103, 	TEXT("Семипалатинск")},
 -	{84, 	1104, 	TEXT("Степногорск")},
 -	{84, 	3166, 	TEXT("Талгар")},
 -	{84, 	1105, 	TEXT("Талды-Курган")},
 -	{84, 	2927, 	TEXT("Тараз")},
 -	{84, 	1106, 	TEXT("Темиртау")},
 -	{84, 	1107, 	TEXT("Уральск")},
 -	{84, 	1108, 	TEXT("Усть-Каменогорск")},
 -	{84, 	1109, 	TEXT("Чимкент")},
 -	{84, 	1110, 	TEXT("Экибастуз")},
 +	{84, 	1090, 	_T("Актау")},
 +	{84, 	1091, 	_T("Актюбинск")},
 +	{84, 	1092, 	_T("Алма-Ата")},
 +	{84, 	3242, 	_T("Аршалы")},
 +	{84, 	1093, 	_T("Астана")},
 +	{84, 	1094, 	_T("Атырау (Гурьев)")},
 +	{84, 	1095, 	_T("Байконур")},
 +	{84, 	3245, 	_T("Балхаш")},
 +	{84, 	3083, 	_T("Жезказган")},
 +	{84, 	1096, 	_T("Капчагай")},
 +	{84, 	1097, 	_T("Караганда")},
 +	{84, 	1098, 	_T("Кокшетау")},
 +	{84, 	1099, 	_T("Кустанай")},
 +	{84, 	2868, 	_T("Лисаковск")},
 +	{84, 	1100, 	_T("Павлодар")},
 +	{84, 	1101, 	_T("Петропавловск (Сев.-Каз. обл.)")},
 +	{84, 	1102, 	_T("Рудный")},
 +	{84, 	1103, 	_T("Семипалатинск")},
 +	{84, 	1104, 	_T("Степногорск")},
 +	{84, 	3166, 	_T("Талгар")},
 +	{84, 	1105, 	_T("Талды-Курган")},
 +	{84, 	2927, 	_T("Тараз")},
 +	{84, 	1106, 	_T("Темиртау")},
 +	{84, 	1107, 	_T("Уральск")},
 +	{84, 	1108, 	_T("Усть-Каменогорск")},
 +	{84, 	1109, 	_T("Чимкент")},
 +	{84, 	1110, 	_T("Экибастуз")},
  	{84, 	2307, 	lpwszOther},
 -	{105, 	1111, 	TEXT("Пномпень")},
 +	{105, 	1111, 	_T("Пномпень")},
  	{105, 	2308, 	lpwszOther},
 -	{106, 	1112, 	TEXT("Доха")},
 +	{106, 	1112, 	_T("Доха")},
  	{106, 	2309, 	lpwszOther},
 -	{107, 	1113, 	TEXT("Ларнака")},
 -	{107, 	1114, 	TEXT("Лимассол")},
 -	{107, 	1115, 	TEXT("Никосия")},
 -	{107, 	2954, 	TEXT("Пафос")},
 +	{107, 	1113, 	_T("Ларнака")},
 +	{107, 	1114, 	_T("Лимассол")},
 +	{107, 	1115, 	_T("Никосия")},
 +	{107, 	2954, 	_T("Пафос")},
  	{107, 	2310, 	lpwszOther},
 -	{92, 	1116, 	TEXT("Бишкек")},
 -	{92, 	1117, 	TEXT("Джалал-Абад")},
 -	{92, 	3027, 	TEXT("Кара-Балта")},
 -	{92, 	1118, 	TEXT("Каракол")},
 -	{92, 	1119, 	TEXT("Ош")},
 -	{92, 	1120, 	TEXT("Талас")},
 -	{92, 	2933, 	TEXT("Хайдаркен")},
 +	{92, 	1116, 	_T("Бишкек")},
 +	{92, 	1117, 	_T("Джалал-Абад")},
 +	{92, 	3027, 	_T("Кара-Балта")},
 +	{92, 	1118, 	_T("Каракол")},
 +	{92, 	1119, 	_T("Ош")},
 +	{92, 	1120, 	_T("Талас")},
 +	{92, 	2933, 	_T("Хайдаркен")},
  	{92, 	2311, 	lpwszOther},
 -	{76, 	3214, 	TEXT("Аомынь (Макао)")},
 -	{76, 	1121, 	TEXT("Гонконг")},
 -	{76, 	2869, 	TEXT("Гуанчжоу")},
 -	{76, 	3262, 	TEXT("Далянь")},
 -	{76, 	1122, 	TEXT("Пекин")},
 -	{76, 	1123, 	TEXT("Харбин")},
 -	{76, 	1124, 	TEXT("Шанхай")},
 -	{76, 	3043, 	TEXT("Шеньян")},
 +	{76, 	3214, 	_T("Аомынь (Макао)")},
 +	{76, 	1121, 	_T("Гонконг")},
 +	{76, 	2869, 	_T("Гуанчжоу")},
 +	{76, 	3262, 	_T("Далянь")},
 +	{76, 	1122, 	_T("Пекин")},
 +	{76, 	1123, 	_T("Харбин")},
 +	{76, 	1124, 	_T("Шанхай")},
 +	{76, 	3043, 	_T("Шеньян")},
  	{76, 	2312, 	lpwszOther},
 -	{29, 	1125, 	TEXT("Пхеньян")},
 +	{29, 	1125, 	_T("Пхеньян")},
  	{29, 	2313, 	lpwszOther},
 -	{108, 	1126, 	TEXT("Сеул")},
 -	{108, 	3240, 	TEXT("Тейджон")},
 +	{108, 	1126, 	_T("Сеул")},
 +	{108, 	3240, 	_T("Тейджон")},
  	{108, 	2314, 	lpwszOther},
 -	{88, 	1127, 	TEXT("Эль-Кувейт")},
 +	{88, 	1127, 	_T("Эль-Кувейт")},
  	{88, 	2315, 	lpwszOther},
 -	{109, 	1128, 	TEXT("Вьентьян")},
 +	{109, 	1128, 	_T("Вьентьян")},
  	{109, 	2316, 	lpwszOther},
 -	{110, 	1129, 	TEXT("Бейрут")},
 +	{110, 	1129, 	_T("Бейрут")},
  	{110, 	2317, 	lpwszOther},
 -	{111, 	1130, 	TEXT("Джохор-Бару")},
 -	{111, 	1131, 	TEXT("Куала-Лумпур")},
 +	{111, 	1130, 	_T("Джохор-Бару")},
 +	{111, 	1131, 	_T("Куала-Лумпур")},
  	{111, 	2318, 	lpwszOther},
 -	{112, 	1132, 	TEXT("Мале")},
 +	{112, 	1132, 	_T("Мале")},
  	{112, 	2319, 	lpwszOther},
 -	{113, 	1133, 	TEXT("Улан-Батор")},
 -	{113, 	1134, 	TEXT("Эрдэнэт")},
 +	{113, 	1133, 	_T("Улан-Батор")},
 +	{113, 	1134, 	_T("Эрдэнэт")},
  	{113, 	2320, 	lpwszOther},
 -	{114, 	1135, 	TEXT("Янгон")},
 +	{114, 	1135, 	_T("Янгон")},
  	{114, 	2321, 	lpwszOther},
 -	{115, 	1136, 	TEXT("Катманду")},
 +	{115, 	1136, 	_T("Катманду")},
  	{115, 	2322, 	lpwszOther},
 -	{116, 	1137, 	TEXT("Абу-Даби")},
 -	{116, 	1138, 	TEXT("Дубай")},
 -	{116, 	1139, 	TEXT("Шарджа")},
 +	{116, 	1137, 	_T("Абу-Даби")},
 +	{116, 	1138, 	_T("Дубай")},
 +	{116, 	1139, 	_T("Шарджа")},
  	{116, 	2323, 	lpwszOther},
 -	{117, 	1140, 	TEXT("Маскат")},
 +	{117, 	1140, 	_T("Маскат")},
  	{117, 	2324, 	lpwszOther},
 -	{122, 	1141, 	TEXT("Исламабад")},
 +	{122, 	1141, 	_T("Исламабад")},
  	{122, 	2325, 	lpwszOther},
 -	{89, 	1072, 	TEXT("Ашдод")},
 -	{89, 	1073, 	TEXT("Ашкелон")},
 -	{89, 	1142, 	TEXT("Газа")},
 +	{89, 	1072, 	_T("Ашдод")},
 +	{89, 	1073, 	_T("Ашкелон")},
 +	{89, 	1142, 	_T("Газа")},
  	{89, 	2326, 	lpwszOther},
 -	{94, 	3250, 	TEXT("Медина")},
 -	{94, 	1143, 	TEXT("Эр-Рияд")},
 +	{94, 	3250, 	_T("Медина")},
 +	{94, 	1143, 	_T("Эр-Рияд")},
  	{94, 	2327, 	lpwszOther},
 -	{78, 	1144, 	TEXT("Дамаск")},
 +	{78, 	1144, 	_T("Дамаск")},
  	{78, 	2328, 	lpwszOther},
 -	{91, 	1145, 	TEXT("Душанбе")},
 -	{91, 	3307, 	TEXT("Кайраккум")},
 -	{91, 	3308, 	TEXT("Худжанд")},
 +	{91, 	1145, 	_T("Душанбе")},
 +	{91, 	3307, 	_T("Кайраккум")},
 +	{91, 	3308, 	_T("Худжанд")},
  	{91, 	2329, 	lpwszOther},
 -	{119, 	1146, 	TEXT("Бангкок")},
 -	{119, 	1147, 	TEXT("Пхукет")},
 +	{119, 	1146, 	_T("Бангкок")},
 +	{119, 	1147, 	_T("Пхукет")},
  	{119, 	2330, 	lpwszOther},
 -	{120, 	1148, 	TEXT("Тайбэй")},
 +	{120, 	1148, 	_T("Тайбэй")},
  	{120, 	2331, 	lpwszOther},
 -	{132, 	1149, 	TEXT("Дили")},
 +	{132, 	1149, 	_T("Дили")},
  	{132, 	2332, 	lpwszOther},
 -	{90, 	1150, 	TEXT("Ашхабад")},
 -	{90, 	3079, 	TEXT("Безмеин")},
 +	{90, 	1150, 	_T("Ашхабад")},
 +	{90, 	3079, 	_T("Безмеин")},
  	{90, 	2333, 	lpwszOther},
 -	{77, 	1152, 	TEXT("Анкара")},
 -	{77, 	1153, 	TEXT("Анталия")},
 -	{77, 	3080, 	TEXT("Бурса")},
 -	{77, 	1151, 	TEXT("Мармарис")},
 -	{77, 	1154, 	TEXT("Стамбул")},
 -	{77, 	1155, 	TEXT("Трабзон")},
 +	{77, 	1152, 	_T("Анкара")},
 +	{77, 	1153, 	_T("Анталия")},
 +	{77, 	3080, 	_T("Бурса")},
 +	{77, 	1151, 	_T("Мармарис")},
 +	{77, 	1154, 	_T("Стамбул")},
 +	{77, 	1155, 	_T("Трабзон")},
  	{77, 	2334, 	lpwszOther},
 -	{93, 	3362, 	TEXT("Алмалык")},
 -	{93, 	3137, 	TEXT("Андижан")},
 -	{93, 	3273, 	TEXT("Асака")},
 -	{93, 	1156, 	TEXT("Ахангаран")},
 -	{93, 	1157, 	TEXT("Бухара")},
 -	{93, 	3167, 	TEXT("Джизак")},
 -	{93, 	3347, 	TEXT("Кунград")},
 -	{93, 	1158, 	TEXT("Навои")},
 -	{93, 	1159, 	TEXT("Наманган")},
 -	{93, 	1160, 	TEXT("Самарканд")},
 -	{93, 	1161, 	TEXT("Ташкент")},
 -	{93, 	1162, 	TEXT("Ургенч")},
 -	{93, 	1163, 	TEXT("Фергана")},
 -	{93, 	1164, 	TEXT("Чирчик")},
 +	{93, 	3362, 	_T("Алмалык")},
 +	{93, 	3137, 	_T("Андижан")},
 +	{93, 	3273, 	_T("Асака")},
 +	{93, 	1156, 	_T("Ахангаран")},
 +	{93, 	1157, 	_T("Бухара")},
 +	{93, 	3167, 	_T("Джизак")},
 +	{93, 	3347, 	_T("Кунград")},
 +	{93, 	1158, 	_T("Навои")},
 +	{93, 	1159, 	_T("Наманган")},
 +	{93, 	1160, 	_T("Самарканд")},
 +	{93, 	1161, 	_T("Ташкент")},
 +	{93, 	1162, 	_T("Ургенч")},
 +	{93, 	1163, 	_T("Фергана")},
 +	{93, 	1164, 	_T("Чирчик")},
  	{93, 	2335, 	lpwszOther},
 -	{121, 	1165, 	TEXT("Манила")},
 -	{121, 	3319, 	TEXT("Себу")},
 +	{121, 	1165, 	_T("Манила")},
 +	{121, 	3319, 	_T("Себу")},
  	{121, 	2336, 	lpwszOther},
 -	{98, 	1166, 	TEXT("Коломбо")},
 +	{98, 	1166, 	_T("Коломбо")},
  	{98, 	2337, 	lpwszOther},
 -	{75, 	3176, 	TEXT("Исесаки")},
 -	{75, 	3339, 	TEXT("Корияма")},
 -	{75, 	1167, 	TEXT("Саппоро")},
 -	{75, 	1168, 	TEXT("Токио")},
 +	{75, 	3176, 	_T("Исесаки")},
 +	{75, 	3339, 	_T("Корияма")},
 +	{75, 	1167, 	_T("Саппоро")},
 +	{75, 	1168, 	_T("Токио")},
  	{75, 	2338, 	lpwszOther},
 -	{123, 	1914, 	TEXT("Аделаида")},
 -	{123, 	2957, 	TEXT("Блэк Рок")},
 -	{123, 	1915, 	TEXT("Брисбен")},
 -	{123, 	3331, 	TEXT("Горокан")},
 -	{123, 	1916, 	TEXT("Канберра")},
 -	{123, 	3001, 	TEXT("Лидкомб")},
 -	{123, 	1917, 	TEXT("Мельбурн")},
 -	{123, 	3217, 	TEXT("Норфолк")},
 -	{123, 	3064, 	TEXT("Перт")},
 -	{123, 	3020, 	TEXT("Санта Люсиа")},
 -	{123, 	1918, 	TEXT("Сидней")},
 -	{123, 	3238, 	TEXT("Энеабба")},
 +	{123, 	1914, 	_T("Аделаида")},
 +	{123, 	2957, 	_T("Блэк Рок")},
 +	{123, 	1915, 	_T("Брисбен")},
 +	{123, 	3331, 	_T("Горокан")},
 +	{123, 	1916, 	_T("Канберра")},
 +	{123, 	3001, 	_T("Лидкомб")},
 +	{123, 	1917, 	_T("Мельбурн")},
 +	{123, 	3217, 	_T("Норфолк")},
 +	{123, 	3064, 	_T("Перт")},
 +	{123, 	3020, 	_T("Санта Люсиа")},
 +	{123, 	1918, 	_T("Сидней")},
 +	{123, 	3238, 	_T("Энеабба")},
  	{123, 	2339, 	lpwszOther},
 -	{454, 	1192, 	TEXT("Паго-Паго")},
 +	{454, 	1192, 	_T("Паго-Паго")},
  	{454, 	2366, 	lpwszOther},
 -	{124, 	1919, 	TEXT("Порт-Вила")},
 +	{124, 	1919, 	_T("Порт-Вила")},
  	{124, 	2340, 	lpwszOther},
 -	{453, 	1193, 	TEXT("Аганья")},
 +	{453, 	1193, 	_T("Аганья")},
  	{453, 	2368, 	lpwszOther},
 -	{126, 	1921, 	TEXT("Баирики")},
 +	{126, 	1921, 	_T("Баирики")},
  	{126, 	2342, 	lpwszOther},
 -	{127, 	1922, 	TEXT("Маджуро")},
 +	{127, 	1922, 	_T("Маджуро")},
  	{127, 	2343, 	lpwszOther},
 -	{128, 	1923, 	TEXT("Паликир")},
 +	{128, 	1923, 	_T("Паликир")},
  	{128, 	2344, 	lpwszOther},
 -	{129, 	1924, 	TEXT("Ярен")},
 +	{129, 	1924, 	_T("Ярен")},
  	{129, 	2345, 	lpwszOther},
 -	{130, 	1925, 	TEXT("Веллингтон")},
 -	{130, 	1926, 	TEXT("Гамильтон")},
 -	{130, 	1928, 	TEXT("Данидин")},
 -	{130, 	1929, 	TEXT("Крайстчерч")},
 -	{130, 	3235, 	TEXT("Кромвель")},
 -	{130, 	1927, 	TEXT("Окленд")},
 -	{130, 	3323, 	TEXT("Тауранга")},
 +	{130, 	1925, 	_T("Веллингтон")},
 +	{130, 	1926, 	_T("Гамильтон")},
 +	{130, 	1928, 	_T("Данидин")},
 +	{130, 	1929, 	_T("Крайстчерч")},
 +	{130, 	3235, 	_T("Кромвель")},
 +	{130, 	1927, 	_T("Окленд")},
 +	{130, 	3323, 	_T("Тауранга")},
  	{130, 	2346, 	lpwszOther},
 -	{131, 	1930, 	TEXT("Корор")},
 +	{131, 	1930, 	_T("Корор")},
  	{131, 	2347, 	lpwszOther},
 -	{133, 	1931, 	TEXT("Порт-Морсби")},
 +	{133, 	1931, 	_T("Порт-Морсби")},
  	{133, 	2348, 	lpwszOther},
 -	{125, 	1920, 	TEXT("Апиа")},
 +	{125, 	1920, 	_T("Апиа")},
  	{125, 	2341, 	lpwszOther},
 -	{134, 	1932, 	TEXT("Хониара")},
 +	{134, 	1932, 	_T("Хониара")},
  	{134, 	2349, 	lpwszOther},
 -	{135, 	1933, 	TEXT("Нукуалофа")},
 +	{135, 	1933, 	_T("Нукуалофа")},
  	{135, 	2350, 	lpwszOther},
 -	{136, 	1934, 	TEXT("Фунафути")},
 +	{136, 	1934, 	_T("Фунафути")},
  	{136, 	2351, 	lpwszOther},
 -	{137, 	1935, 	TEXT("Сува")},
 +	{137, 	1935, 	_T("Сува")},
  	{137, 	2352, 	lpwszOther},
 -	{138, 	3055, 	TEXT("Барлингтон")},
 -	{138, 	3049, 	TEXT("Броссард")},
 -	{138, 	3330, 	TEXT("Бурнаби")},
 -	{138, 	1169, 	TEXT("Ванкувер")},
 -	{138, 	3106, 	TEXT("Ватерлоо")},
 -	{138, 	1170, 	TEXT("Виннипег")},
 -	{138, 	1171, 	TEXT("Галифакс")},
 -	{138, 	1172, 	TEXT("Гамильтон")},
 -	{138, 	3365, 	TEXT("Денвер")},
 -	{138, 	1173, 	TEXT("Калгари")},
 -	{138, 	3104, 	TEXT("Камлупс")},
 -	{138, 	3366, 	TEXT("Каннингтон")},
 -	{138, 	1174, 	TEXT("Квебек")},
 -	{138, 	2964, 	TEXT("Кингстон")},
 -	{138, 	3113, 	TEXT("Коквитлам")},
 -	{138, 	1175, 	TEXT("Монреаль")},
 -	{138, 	2920, 	TEXT("Ниагара-Фолс")},
 -	{138, 	2889, 	TEXT("Норд-Йорк")},
 -	{138, 	1176, 	TEXT("Оттава")},
 -	{138, 	2903, 	TEXT("Порт Алберни")},
 -	{138, 	1177, 	TEXT("Ричмонд")},
 -	{138, 	1178, 	TEXT("Тимминс")},
 -	{138, 	2946, 	TEXT("Торнхилл")},
 -	{138, 	1179, 	TEXT("Торонто")},
 -	{138, 	1180, 	TEXT("Эдмонтон")},
 +	{138, 	3055, 	_T("Барлингтон")},
 +	{138, 	3049, 	_T("Броссард")},
 +	{138, 	3330, 	_T("Бурнаби")},
 +	{138, 	1169, 	_T("Ванкувер")},
 +	{138, 	3106, 	_T("Ватерлоо")},
 +	{138, 	1170, 	_T("Виннипег")},
 +	{138, 	1171, 	_T("Галифакс")},
 +	{138, 	1172, 	_T("Гамильтон")},
 +	{138, 	3365, 	_T("Денвер")},
 +	{138, 	1173, 	_T("Калгари")},
 +	{138, 	3104, 	_T("Камлупс")},
 +	{138, 	3366, 	_T("Каннингтон")},
 +	{138, 	1174, 	_T("Квебек")},
 +	{138, 	2964, 	_T("Кингстон")},
 +	{138, 	3113, 	_T("Коквитлам")},
 +	{138, 	1175, 	_T("Монреаль")},
 +	{138, 	2920, 	_T("Ниагара-Фолс")},
 +	{138, 	2889, 	_T("Норд-Йорк")},
 +	{138, 	1176, 	_T("Оттава")},
 +	{138, 	2903, 	_T("Порт Алберни")},
 +	{138, 	1177, 	_T("Ричмонд")},
 +	{138, 	1178, 	_T("Тимминс")},
 +	{138, 	2946, 	_T("Торнхилл")},
 +	{138, 	1179, 	_T("Торонто")},
 +	{138, 	1180, 	_T("Эдмонтон")},
  	{138, 	2353, 	lpwszOther},
 -	{139, 	407, 	TEXT("Вашингтон")},
 -	{139, 	426, 	TEXT("Айдахо")},
 -	{139, 	378, 	TEXT("Айова")},
 -	{139, 	412, 	TEXT("Алабама")},
 -	{139, 	446, 	TEXT("Аляска")},
 -	{139, 	434, 	TEXT("Аризона")},
 -	{139, 	416, 	TEXT("Арканзас")},
 -	{139, 	428, 	TEXT("Вайоминг")},
 -	{139, 	440, 	TEXT("Вашингтон")},
 -	{139, 	352, 	TEXT("Вермонт")},
 -	{139, 	394, 	TEXT("Виргиния")},
 -	{139, 	374, 	TEXT("Висконсин")},
 -	{139, 	448, 	TEXT("Гавайи")},
 -	{139, 	390, 	TEXT("Делавер")},
 -	{139, 	402, 	TEXT("Джорджия")},
 -	{139, 	396, 	TEXT("Западная Виргиния")},
 -	{139, 	370, 	TEXT("Иллинойс")},
 -	{139, 	368, 	TEXT("Индиана")},
 -	{139, 	444, 	TEXT("Калифорния")},
 -	{139, 	388, 	TEXT("Канзас")},
 -	{139, 	408, 	TEXT("Кентукки")},
 -	{139, 	430, 	TEXT("Колорадо")},
 -	{139, 	358, 	TEXT("Коннектикут")},
 -	{139, 	418, 	TEXT("Луизиана")},
 -	{139, 	354, 	TEXT("Массачусетс")},
 -	{139, 	376, 	TEXT("Миннесота")},
 -	{139, 	414, 	TEXT("Миссисипи")},
 -	{139, 	380, 	TEXT("Миссури")},
 -	{139, 	372, 	TEXT("Мичиган")},
 -	{139, 	424, 	TEXT("Монтана")},
 -	{139, 	348, 	TEXT("Мэн")},
 -	{139, 	392, 	TEXT("Мэриленд")},
 -	{139, 	386, 	TEXT("Небраска")},
 -	{139, 	438, 	TEXT("Невада")},
 -	{139, 	362, 	TEXT("Нью-Джерси")},
 -	{139, 	360, 	TEXT("Нью-Йорк")},
 -	{139, 	432, 	TEXT("Нью-Мексико")},
 -	{139, 	350, 	TEXT("Нью-Хэмпшир")},
 -	{139, 	366, 	TEXT("Огайо")},
 -	{139, 	420, 	TEXT("Оклахома")},
 -	{139, 	442, 	TEXT("Орегон")},
 -	{139, 	364, 	TEXT("Пенсильвания")},
 -	{139, 	450, 	TEXT("Пуэрто-Рико")},
 -	{139, 	356, 	TEXT("Род-Айленд")},
 -	{139, 	382, 	TEXT("Северная Дакота")},
 -	{139, 	398, 	TEXT("Северная Каролина")},
 -	{139, 	410, 	TEXT("Теннесси")},
 -	{139, 	422, 	TEXT("Техас")},
 -	{139, 	406, 	TEXT("Федеральный округ Колумбия")},
 -	{139, 	404, 	TEXT("Флорида")},
 -	{139, 	384, 	TEXT("Южная Дакота")},
 -	{139, 	400, 	TEXT("Южная Каролина")},
 -	{139, 	436, 	TEXT("Юта")},
 -	{140, 	1238, 	TEXT("Сент-Джонс")},
 +	{139, 	407, 	_T("Вашингтон")},
 +	{139, 	426, 	_T("Айдахо")},
 +	{139, 	378, 	_T("Айова")},
 +	{139, 	412, 	_T("Алабама")},
 +	{139, 	446, 	_T("Аляска")},
 +	{139, 	434, 	_T("Аризона")},
 +	{139, 	416, 	_T("Арканзас")},
 +	{139, 	428, 	_T("Вайоминг")},
 +	{139, 	440, 	_T("Вашингтон")},
 +	{139, 	352, 	_T("Вермонт")},
 +	{139, 	394, 	_T("Виргиния")},
 +	{139, 	374, 	_T("Висконсин")},
 +	{139, 	448, 	_T("Гавайи")},
 +	{139, 	390, 	_T("Делавер")},
 +	{139, 	402, 	_T("Джорджия")},
 +	{139, 	396, 	_T("Западная Виргиния")},
 +	{139, 	370, 	_T("Иллинойс")},
 +	{139, 	368, 	_T("Индиана")},
 +	{139, 	444, 	_T("Калифорния")},
 +	{139, 	388, 	_T("Канзас")},
 +	{139, 	408, 	_T("Кентукки")},
 +	{139, 	430, 	_T("Колорадо")},
 +	{139, 	358, 	_T("Коннектикут")},
 +	{139, 	418, 	_T("Луизиана")},
 +	{139, 	354, 	_T("Массачусетс")},
 +	{139, 	376, 	_T("Миннесота")},
 +	{139, 	414, 	_T("Миссисипи")},
 +	{139, 	380, 	_T("Миссури")},
 +	{139, 	372, 	_T("Мичиган")},
 +	{139, 	424, 	_T("Монтана")},
 +	{139, 	348, 	_T("Мэн")},
 +	{139, 	392, 	_T("Мэриленд")},
 +	{139, 	386, 	_T("Небраска")},
 +	{139, 	438, 	_T("Невада")},
 +	{139, 	362, 	_T("Нью-Джерси")},
 +	{139, 	360, 	_T("Нью-Йорк")},
 +	{139, 	432, 	_T("Нью-Мексико")},
 +	{139, 	350, 	_T("Нью-Хэмпшир")},
 +	{139, 	366, 	_T("Огайо")},
 +	{139, 	420, 	_T("Оклахома")},
 +	{139, 	442, 	_T("Орегон")},
 +	{139, 	364, 	_T("Пенсильвания")},
 +	{139, 	450, 	_T("Пуэрто-Рико")},
 +	{139, 	356, 	_T("Род-Айленд")},
 +	{139, 	382, 	_T("Северная Дакота")},
 +	{139, 	398, 	_T("Северная Каролина")},
 +	{139, 	410, 	_T("Теннесси")},
 +	{139, 	422, 	_T("Техас")},
 +	{139, 	406, 	_T("Федеральный округ Колумбия")},
 +	{139, 	404, 	_T("Флорида")},
 +	{139, 	384, 	_T("Южная Дакота")},
 +	{139, 	400, 	_T("Южная Каролина")},
 +	{139, 	436, 	_T("Юта")},
 +	{140, 	1238, 	_T("Сент-Джонс")},
  	{140, 	2442, 	lpwszOther},
 -	{141, 	1239, 	TEXT("Буэнос-Айрес")},
 +	{141, 	1239, 	_T("Буэнос-Айрес")},
  	{141, 	2441, 	lpwszOther},
 -	{142, 	1240, 	TEXT("Нассау")},
 +	{142, 	1240, 	_T("Нассау")},
  	{142, 	2440, 	lpwszOther},
 -	{143, 	1241, 	TEXT("Бриджтаун")},
 +	{143, 	1241, 	_T("Бриджтаун")},
  	{143, 	2439, 	lpwszOther},
 -	{146, 	1242, 	TEXT("Бельмопан")},
 +	{146, 	1242, 	_T("Бельмопан")},
  	{146, 	2438, 	lpwszOther},
 -	{144, 	1243, 	TEXT("Ла-Пас")},
 +	{144, 	1243, 	_T("Ла-Пас")},
  	{144, 	2437, 	lpwszOther},
 -	{145, 	1244, 	TEXT("Бразилиа")},
 -	{145, 	3094, 	TEXT("Пассо Фундо")},
 -	{145, 	1245, 	TEXT("Рио-де-Жанейро")},
 -	{145, 	1246, 	TEXT("Сан-Паулу")},
 +	{145, 	1244, 	_T("Бразилиа")},
 +	{145, 	3094, 	_T("Пассо Фундо")},
 +	{145, 	1245, 	_T("Рио-де-Жанейро")},
 +	{145, 	1246, 	_T("Сан-Паулу")},
  	{145, 	2436, 	lpwszOther},
 -	{147, 	1247, 	TEXT("Каракас")},
 +	{147, 	1247, 	_T("Каракас")},
  	{147, 	2435, 	lpwszOther},
 -	{452, 	1190, 	TEXT("Шарлотта-Амалия")},
 +	{452, 	1190, 	_T("Шарлотта-Амалия")},
  	{452, 	2364, 	lpwszOther},
 -	{149, 	1248, 	TEXT("Порт-о-Пренс")},
 +	{149, 	1248, 	_T("Порт-о-Пренс")},
  	{149, 	2434, 	lpwszOther},
 -	{148, 	1249, 	TEXT("Джоржтаун")},
 +	{148, 	1249, 	_T("Джоржтаун")},
  	{148, 	2433, 	lpwszOther},
 -	{173, 	1250, 	TEXT("Гватемала")},
 +	{173, 	1250, 	_T("Гватемала")},
  	{173, 	2432, 	lpwszOther},
 -	{150, 	1251, 	TEXT("Тегусигальпа")},
 +	{150, 	1251, 	_T("Тегусигальпа")},
  	{150, 	2431, 	lpwszOther},
 -	{151, 	1252, 	TEXT("Сент-Джорджес")},
 +	{151, 	1252, 	_T("Сент-Джорджес")},
  	{151, 	2430, 	lpwszOther},
 -	{152, 	1253, 	TEXT("Уманак")},
 +	{152, 	1253, 	_T("Уманак")},
  	{152, 	2429, 	lpwszOther},
 -	{153, 	1254, 	TEXT("Розо")},
 +	{153, 	1254, 	_T("Розо")},
  	{153, 	2428, 	lpwszOther},
 -	{154, 	1255, 	TEXT("Санто-Доминго")},
 +	{154, 	1255, 	_T("Санто-Доминго")},
  	{154, 	2427, 	lpwszOther},
 -	{155, 	1256, 	TEXT("Богота")},
 +	{155, 	1256, 	_T("Богота")},
  	{155, 	2426, 	lpwszOther},
 -	{156, 	1257, 	TEXT("Сан-Хосе")},
 +	{156, 	1257, 	_T("Сан-Хосе")},
  	{156, 	2425, 	lpwszOther},
 -	{157, 	1258, 	TEXT("Гавана")},
 +	{157, 	1258, 	_T("Гавана")},
  	{157, 	2424, 	lpwszOther},
 -	{158, 	1259, 	TEXT("Акапулько")},
 -	{158, 	1260, 	TEXT("Мехико")},
 +	{158, 	1259, 	_T("Акапулько")},
 +	{158, 	1260, 	_T("Мехико")},
  	{158, 	2423, 	lpwszOther},
 -	{159, 	1261, 	TEXT("Манагуа")},
 +	{159, 	1261, 	_T("Манагуа")},
  	{159, 	2422, 	lpwszOther},
 -	{160, 	1262, 	TEXT("Панама")},
 +	{160, 	1262, 	_T("Панама")},
  	{160, 	2421, 	lpwszOther},
 -	{161, 	1263, 	TEXT("Асунсьон")},
 +	{161, 	1263, 	_T("Асунсьон")},
  	{161, 	2420, 	lpwszOther},
 -	{162, 	1264, 	TEXT("Лима")},
 +	{162, 	1264, 	_T("Лима")},
  	{162, 	2419, 	lpwszOther},
 -	{163, 	1265, 	TEXT("Сан-Сальвадор")},
 +	{163, 	1265, 	_T("Сан-Сальвадор")},
  	{163, 	2418, 	lpwszOther},
 -	{164, 	1266, 	TEXT("Кингстаун")},
 +	{164, 	1266, 	_T("Кингстаун")},
  	{164, 	2417, 	lpwszOther},
 -	{165, 	1267, 	TEXT("Бастер")},
 +	{165, 	1267, 	_T("Бастер")},
  	{165, 	2416, 	lpwszOther},
 -	{166, 	1268, 	TEXT("Кастри")},
 +	{166, 	1268, 	_T("Кастри")},
  	{166, 	2415, 	lpwszOther},
 -	{167, 	1269, 	TEXT("Парамарибо")},
 +	{167, 	1269, 	_T("Парамарибо")},
  	{167, 	2414, 	lpwszOther},
 -	{168, 	1270, 	TEXT("Порт-оф-Спейн")},
 +	{168, 	1270, 	_T("Порт-оф-Спейн")},
  	{168, 	2413, 	lpwszOther},
 -	{169, 	1271, 	TEXT("Монтевидео")},
 +	{169, 	1271, 	_T("Монтевидео")},
  	{169, 	2412, 	lpwszOther},
 -	{170, 	1272, 	TEXT("Сантьяго")},
 +	{170, 	1272, 	_T("Сантьяго")},
  	{170, 	2411, 	lpwszOther},
 -	{171, 	1273, 	TEXT("Гуаякиль")},
 -	{171, 	1274, 	TEXT("Кито")},
 +	{171, 	1273, 	_T("Гуаякиль")},
 +	{171, 	1274, 	_T("Кито")},
  	{171, 	2410, 	lpwszOther},
 -	{172, 	1275, 	TEXT("Кингстон")},
 +	{172, 	1275, 	_T("Кингстон")},
  	{172, 	2409, 	lpwszOther},
 -	{174, 	1854, 	TEXT("Алжир")},
 +	{174, 	1854, 	_T("Алжир")},
  	{174, 	2495, 	lpwszOther},
 -	{175, 	1855, 	TEXT("Луанда")},
 +	{175, 	1855, 	_T("Луанда")},
  	{175, 	2494, 	lpwszOther},
 -	{176, 	1856, 	TEXT("Котону")},
 -	{176, 	1857, 	TEXT("Порто-Ново")},
 +	{176, 	1856, 	_T("Котону")},
 +	{176, 	1857, 	_T("Порто-Ново")},
  	{176, 	2493, 	lpwszOther},
 -	{177, 	1858, 	TEXT("Габороне")},
 +	{177, 	1858, 	_T("Габороне")},
  	{177, 	2492, 	lpwszOther},
 -	{178, 	1859, 	TEXT("Уагадугу")},
 +	{178, 	1859, 	_T("Уагадугу")},
  	{178, 	2491, 	lpwszOther},
 -	{179, 	1860, 	TEXT("Бужумбуру")},
 +	{179, 	1860, 	_T("Бужумбуру")},
  	{179, 	2490, 	lpwszOther},
 -	{180, 	1861, 	TEXT("Либревиль")},
 +	{180, 	1861, 	_T("Либревиль")},
  	{180, 	2489, 	lpwszOther},
 -	{181, 	1862, 	TEXT("Банжул")},
 +	{181, 	1862, 	_T("Банжул")},
  	{181, 	2488, 	lpwszOther},
 -	{182, 	1863, 	TEXT("Аккра")},
 +	{182, 	1863, 	_T("Аккра")},
  	{182, 	2487, 	lpwszOther},
 -	{183, 	1864, 	TEXT("Конакри")},
 +	{183, 	1864, 	_T("Конакри")},
  	{183, 	2486, 	lpwszOther},
 -	{184, 	1865, 	TEXT("Бисау")},
 +	{184, 	1865, 	_T("Бисау")},
  	{184, 	2485, 	lpwszOther},
 -	{185, 	1866, 	TEXT("Джибути")},
 +	{185, 	1866, 	_T("Джибути")},
  	{185, 	2484, 	lpwszOther},
 -	{186, 	3312, 	TEXT("Дахаб")},
 -	{186, 	1867, 	TEXT("Каир")},
 -	{186, 	1868, 	TEXT("Хургада")},
 +	{186, 	3312, 	_T("Дахаб")},
 +	{186, 	1867, 	_T("Каир")},
 +	{186, 	1868, 	_T("Хургада")},
  	{186, 	2483, 	lpwszOther},
 -	{187, 	1869, 	TEXT("Лусака")},
 +	{187, 	1869, 	_T("Лусака")},
  	{187, 	2482, 	lpwszOther},
 -	{23, 	1870, 	TEXT("Хараре")},
 +	{23, 	1870, 	_T("Хараре")},
  	{23, 	2481, 	lpwszOther},
 -	{188, 	1871, 	TEXT("Прая")},
 +	{188, 	1871, 	_T("Прая")},
  	{188, 	2480, 	lpwszOther},
 -	{189, 	1872, 	TEXT("Яунде")},
 +	{189, 	1872, 	_T("Яунде")},
  	{189, 	2479, 	lpwszOther},
 -	{190, 	1873, 	TEXT("Найроби")},
 +	{190, 	1873, 	_T("Найроби")},
  	{190, 	2478, 	lpwszOther},
 -	{191, 	1874, 	TEXT("Морони")},
 +	{191, 	1874, 	_T("Морони")},
  	{191, 	2477, 	lpwszOther},
 -	{193, 	1875, 	TEXT("Киншаса")},
 +	{193, 	1875, 	_T("Киншаса")},
  	{193, 	2476, 	lpwszOther},
 -	{192, 	1876, 	TEXT("Браззавиль")},
 +	{192, 	1876, 	_T("Браззавиль")},
  	{192, 	2475, 	lpwszOther},
 -	{194, 	1877, 	TEXT("Ямусукро")},
 +	{194, 	1877, 	_T("Ямусукро")},
  	{194, 	2474, 	lpwszOther},
 -	{195, 	1878, 	TEXT("Масеру")},
 +	{195, 	1878, 	_T("Масеру")},
  	{195, 	2473, 	lpwszOther},
 -	{196, 	1879, 	TEXT("Монровия")},
 +	{196, 	1879, 	_T("Монровия")},
  	{196, 	2472, 	lpwszOther},
 -	{197, 	1880, 	TEXT("Триполи")},
 +	{197, 	1880, 	_T("Триполи")},
  	{197, 	2471, 	lpwszOther},
 -	{198, 	1881, 	TEXT("Порт-Луи")},
 +	{198, 	1881, 	_T("Порт-Луи")},
  	{198, 	2470, 	lpwszOther},
 -	{199, 	1882, 	TEXT("Нуакшот")},
 +	{199, 	1882, 	_T("Нуакшот")},
  	{199, 	2469, 	lpwszOther},
 -	{200, 	1883, 	TEXT("Антананариву")},
 +	{200, 	1883, 	_T("Антананариву")},
  	{200, 	2468, 	lpwszOther},
 -	{201, 	1884, 	TEXT("Лилонгве")},
 +	{201, 	1884, 	_T("Лилонгве")},
  	{201, 	2467, 	lpwszOther},
 -	{202, 	1885, 	TEXT("Бамако")},
 +	{202, 	1885, 	_T("Бамако")},
  	{202, 	2466, 	lpwszOther},
 -	{203, 	1886, 	TEXT("Агадир")},
 -	{203, 	1887, 	TEXT("Рабат")},
 +	{203, 	1886, 	_T("Агадир")},
 +	{203, 	1887, 	_T("Рабат")},
  	{203, 	2465, 	lpwszOther},
 -	{204, 	1888, 	TEXT("Мапуту")},
 +	{204, 	1888, 	_T("Мапуту")},
  	{204, 	2464, 	lpwszOther},
 -	{205, 	1889, 	TEXT("Виндхук")},
 +	{205, 	1889, 	_T("Виндхук")},
  	{205, 	2463, 	lpwszOther},
 -	{206, 	1890, 	TEXT("Ниамей")},
 +	{206, 	1890, 	_T("Ниамей")},
  	{206, 	2462, 	lpwszOther},
 -	{207, 	1891, 	TEXT("Абуджа")},
 +	{207, 	1891, 	_T("Абуджа")},
  	{207, 	2461, 	lpwszOther},
 -	{208, 	1892, 	TEXT("Кигали")},
 +	{208, 	1892, 	_T("Кигали")},
  	{208, 	2460, 	lpwszOther},
 -	{209, 	1893, 	TEXT("Сан-Томе")},
 +	{209, 	1893, 	_T("Сан-Томе")},
  	{209, 	2459, 	lpwszOther},
 -	{210, 	1894, 	TEXT("Мбабане")},
 +	{210, 	1894, 	_T("Мбабане")},
  	{210, 	2458, 	lpwszOther},
 -	{211, 	1895, 	TEXT("Виктория")},
 +	{211, 	1895, 	_T("Виктория")},
  	{211, 	2457, 	lpwszOther},
 -	{212, 	1896, 	TEXT("Дакар")},
 +	{212, 	1896, 	_T("Дакар")},
  	{212, 	2456, 	lpwszOther},
 -	{213, 	1897, 	TEXT("Могадишо")},
 +	{213, 	1897, 	_T("Могадишо")},
  	{213, 	2455, 	lpwszOther},
 -	{214, 	1898, 	TEXT("Хартум")},
 +	{214, 	1898, 	_T("Хартум")},
  	{214, 	2454, 	lpwszOther},
 -	{215, 	1899, 	TEXT("Фритаун")},
 +	{215, 	1899, 	_T("Фритаун")},
  	{215, 	2453, 	lpwszOther},
 -	{216, 	1900, 	TEXT("Дар-эс-Салам")},
 -	{216, 	1901, 	TEXT("Додома")},
 +	{216, 	1900, 	_T("Дар-эс-Салам")},
 +	{216, 	1901, 	_T("Додома")},
  	{216, 	2452, 	lpwszOther},
 -	{217, 	1902, 	TEXT("Ломе")},
 +	{217, 	1902, 	_T("Ломе")},
  	{217, 	2451, 	lpwszOther},
 -	{218, 	1903, 	TEXT("Тунис")},
 +	{218, 	1903, 	_T("Тунис")},
  	{218, 	2450, 	lpwszOther},
 -	{219, 	1904, 	TEXT("Кампала")},
 +	{219, 	1904, 	_T("Кампала")},
  	{219, 	2449, 	lpwszOther},
 -	{220, 	1905, 	TEXT("Банги")},
 +	{220, 	1905, 	_T("Банги")},
  	{220, 	2448, 	lpwszOther},
 -	{222, 	1906, 	TEXT("Нджамена")},
 +	{222, 	1906, 	_T("Нджамена")},
  	{222, 	2447, 	lpwszOther},
 -	{223, 	1907, 	TEXT("Малабо")},
 +	{223, 	1907, 	_T("Малабо")},
  	{223, 	2446, 	lpwszOther},
 -	{221, 	1908, 	TEXT("Асмэра")},
 +	{221, 	1908, 	_T("Асмэра")},
  	{221, 	2445, 	lpwszOther},
 -	{224, 	1909, 	TEXT("Аддис-Абеба")},
 +	{224, 	1909, 	_T("Аддис-Абеба")},
  	{224, 	2444, 	lpwszOther},
 -	{225, 	1910, 	TEXT("Дурбан")},
 -	{225, 	1913, 	TEXT("Йоханнесбург")},
 -	{225, 	1912, 	TEXT("Кейптаун")},
 -	{225, 	3033, 	TEXT("Пайнтаун")},
 -	{225, 	1911, 	TEXT("Претория")},
 +	{225, 	1910, 	_T("Дурбан")},
 +	{225, 	1913, 	_T("Йоханнесбург")},
 +	{225, 	1912, 	_T("Кейптаун")},
 +	{225, 	3033, 	_T("Пайнтаун")},
 +	{225, 	1911, 	_T("Претория")},
  	{225, 	2443, 	lpwszOther},
 -	{39, 	314, 	TEXT("Киев")},
 -	{39, 	315, 	TEXT("Винницкая обл.")},
 -	{39, 	316, 	TEXT("Волынская обл.")},
 -	{39, 	317, 	TEXT("Днепропетровская обл.")},
 -	{39, 	318, 	TEXT("Донецкая обл.")},
 -	{39, 	319, 	TEXT("Житомирская обл.")},
 -	{39, 	320, 	TEXT("Закарпатская обл.")},
 -	{39, 	321, 	TEXT("Запорожская обл.")},
 -	{39, 	322, 	TEXT("Ивано-Франковская обл.")},
 -	{39, 	323, 	TEXT("Киевская обл.")},
 -	{39, 	324, 	TEXT("Кировоградская обл.")},
 -	{39, 	325, 	TEXT("Крым")},
 -	{39, 	326, 	TEXT("Луганская обл.")},
 -	{39, 	327, 	TEXT("Львовская обл.")},
 -	{39, 	328, 	TEXT("Николаевская обл.")},
 -	{39, 	329, 	TEXT("Одесская обл.")},
 -	{39, 	330, 	TEXT("Полтавская обл.")},
 -	{39, 	331, 	TEXT("Ровенская обл.")},
 -	{39, 	332, 	TEXT("Сумская обл.")},
 -	{39, 	333, 	TEXT("Тернопольская обл.")},
 -	{39, 	334, 	TEXT("Харьковская обл.")},
 -	{39, 	335, 	TEXT("Херсонская обл.")},
 -	{39, 	336, 	TEXT("Хмельницкая обл.")},
 -	{39, 	337, 	TEXT("Черкасская обл.")},
 -	{39, 	338, 	TEXT("Черниговская обл.")},
 -	{39, 	339, 	TEXT("Черновицкая обл.")},
 -	{40, 	602, 	TEXT("Бад Халл")},
 -	{40, 	604, 	TEXT("Брегенц")},
 -	{40, 	603, 	TEXT("Вена")},
 -	{40, 	608, 	TEXT("Грац")},
 -	{40, 	606, 	TEXT("Зальцбург")},
 -	{40, 	3099, 	TEXT("Зель-ам-Зее")},
 -	{40, 	605, 	TEXT("Инсбрук")},
 -	{40, 	3174, 	TEXT("Кирхберг")},
 -	{40, 	609, 	TEXT("Клагенфурт")},
 -	{40, 	607, 	TEXT("Линц")},
 -	{40, 	610, 	TEXT("Обдах")},
 -	{40, 	611, 	TEXT("Щтубайтал")},
 +	{39, 	314, 	_T("Киев")},
 +	{39, 	315, 	_T("Винницкая обл.")},
 +	{39, 	316, 	_T("Волынская обл.")},
 +	{39, 	317, 	_T("Днепропетровская обл.")},
 +	{39, 	318, 	_T("Донецкая обл.")},
 +	{39, 	319, 	_T("Житомирская обл.")},
 +	{39, 	320, 	_T("Закарпатская обл.")},
 +	{39, 	321, 	_T("Запорожская обл.")},
 +	{39, 	322, 	_T("Ивано-Франковская обл.")},
 +	{39, 	323, 	_T("Киевская обл.")},
 +	{39, 	324, 	_T("Кировоградская обл.")},
 +	{39, 	325, 	_T("Крым")},
 +	{39, 	326, 	_T("Луганская обл.")},
 +	{39, 	327, 	_T("Львовская обл.")},
 +	{39, 	328, 	_T("Николаевская обл.")},
 +	{39, 	329, 	_T("Одесская обл.")},
 +	{39, 	330, 	_T("Полтавская обл.")},
 +	{39, 	331, 	_T("Ровенская обл.")},
 +	{39, 	332, 	_T("Сумская обл.")},
 +	{39, 	333, 	_T("Тернопольская обл.")},
 +	{39, 	334, 	_T("Харьковская обл.")},
 +	{39, 	335, 	_T("Херсонская обл.")},
 +	{39, 	336, 	_T("Хмельницкая обл.")},
 +	{39, 	337, 	_T("Черкасская обл.")},
 +	{39, 	338, 	_T("Черниговская обл.")},
 +	{39, 	339, 	_T("Черновицкая обл.")},
 +	{40, 	602, 	_T("Бад Халл")},
 +	{40, 	604, 	_T("Брегенц")},
 +	{40, 	603, 	_T("Вена")},
 +	{40, 	608, 	_T("Грац")},
 +	{40, 	606, 	_T("Зальцбург")},
 +	{40, 	3099, 	_T("Зель-ам-Зее")},
 +	{40, 	605, 	_T("Инсбрук")},
 +	{40, 	3174, 	_T("Кирхберг")},
 +	{40, 	609, 	_T("Клагенфурт")},
 +	{40, 	607, 	_T("Линц")},
 +	{40, 	610, 	_T("Обдах")},
 +	{40, 	611, 	_T("Щтубайтал")},
  	{40, 	2541, 	lpwszOther},
 -	{32, 	612, 	TEXT("Тирана")},
 +	{32, 	612, 	_T("Тирана")},
  	{32, 	2540, 	lpwszOther},
 -	{33, 	613, 	TEXT("Андорра-ла-Велья")},
 +	{33, 	613, 	_T("Андорра-ла-Велья")},
  	{33, 	2539, 	lpwszOther},
 -	{340, 	341, 	TEXT("Минск")},
 -	{340, 	342, 	TEXT("Брестская обл.")},
 -	{340, 	343, 	TEXT("Витебская обл.")},
 -	{340, 	344, 	TEXT("Гомельская обл.")},
 -	{340, 	345, 	TEXT("Гродненская обл.")},
 -	{340, 	346, 	TEXT("Минская обл.")},
 -	{340, 	347, 	TEXT("Могилевская обл.")},
 -	{38, 	760, 	TEXT("Антверпен")},
 -	{38, 	767, 	TEXT("Арлон")},
 -	{38, 	762, 	TEXT("Брюгге")},
 -	{38, 	761, 	TEXT("Брюссель")},
 -	{38, 	763, 	TEXT("Гент")},
 -	{38, 	769, 	TEXT("Лувен")},
 -	{38, 	765, 	TEXT("Льеж")},
 -	{38, 	764, 	TEXT("Монс")},
 -	{38, 	3117, 	TEXT("Мортсель")},
 -	{38, 	766, 	TEXT("Намюр")},
 -	{38, 	768, 	TEXT("Хасселт")},
 +	{340, 	341, 	_T("Минск")},
 +	{340, 	342, 	_T("Брестская обл.")},
 +	{340, 	343, 	_T("Витебская обл.")},
 +	{340, 	344, 	_T("Гомельская обл.")},
 +	{340, 	345, 	_T("Гродненская обл.")},
 +	{340, 	346, 	_T("Минская обл.")},
 +	{340, 	347, 	_T("Могилевская обл.")},
 +	{38, 	760, 	_T("Антверпен")},
 +	{38, 	767, 	_T("Арлон")},
 +	{38, 	762, 	_T("Брюгге")},
 +	{38, 	761, 	_T("Брюссель")},
 +	{38, 	763, 	_T("Гент")},
 +	{38, 	769, 	_T("Лувен")},
 +	{38, 	765, 	_T("Льеж")},
 +	{38, 	764, 	_T("Монс")},
 +	{38, 	3117, 	_T("Мортсель")},
 +	{38, 	766, 	_T("Намюр")},
 +	{38, 	768, 	_T("Хасселт")},
  	{38, 	2532, 	lpwszOther},
 -	{41, 	3098, 	TEXT("Банско")},
 -	{41, 	792, 	TEXT("Благоевград")},
 -	{41, 	770, 	TEXT("Бургас")},
 -	{41, 	771, 	TEXT("Бяла")},
 -	{41, 	773, 	TEXT("Варна")},
 -	{41, 	776, 	TEXT("Велико-Тырново")},
 -	{41, 	788, 	TEXT("Видин")},
 -	{41, 	789, 	TEXT("Враца")},
 -	{41, 	796, 	TEXT("Габрово")},
 -	{41, 	777, 	TEXT("Димитровград")},
 -	{41, 	781, 	TEXT("Каварна")},
 -	{41, 	786, 	TEXT("Кырджали")},
 -	{41, 	791, 	TEXT("Кюстендил")},
 -	{41, 	793, 	TEXT("Лазарджик")},
 -	{41, 	795, 	TEXT("Ловеч")},
 -	{41, 	787, 	TEXT("Михайловград")},
 -	{41, 	790, 	TEXT("Перник")},
 -	{41, 	3133, 	TEXT("Пирдоп")},
 -	{41, 	794, 	TEXT("Плевен")},
 -	{41, 	782, 	TEXT("Пловдив")},
 -	{41, 	780, 	TEXT("Разград")},
 -	{41, 	779, 	TEXT("Русе")},
 -	{41, 	774, 	TEXT("Силистра")},
 -	{41, 	784, 	TEXT("Сливен")},
 -	{41, 	772, 	TEXT("София")},
 -	{41, 	775, 	TEXT("Толбухин")},
 -	{41, 	3116, 	TEXT("Тырново")},
 -	{41, 	785, 	TEXT("Хасково")},
 -	{41, 	778, 	TEXT("Шумен")},
 -	{41, 	783, 	TEXT("Ямбол")},
 +	{41, 	3098, 	_T("Банско")},
 +	{41, 	792, 	_T("Благоевград")},
 +	{41, 	770, 	_T("Бургас")},
 +	{41, 	771, 	_T("Бяла")},
 +	{41, 	773, 	_T("Варна")},
 +	{41, 	776, 	_T("Велико-Тырново")},
 +	{41, 	788, 	_T("Видин")},
 +	{41, 	789, 	_T("Враца")},
 +	{41, 	796, 	_T("Габрово")},
 +	{41, 	777, 	_T("Димитровград")},
 +	{41, 	781, 	_T("Каварна")},
 +	{41, 	786, 	_T("Кырджали")},
 +	{41, 	791, 	_T("Кюстендил")},
 +	{41, 	793, 	_T("Лазарджик")},
 +	{41, 	795, 	_T("Ловеч")},
 +	{41, 	787, 	_T("Михайловград")},
 +	{41, 	790, 	_T("Перник")},
 +	{41, 	3133, 	_T("Пирдоп")},
 +	{41, 	794, 	_T("Плевен")},
 +	{41, 	782, 	_T("Пловдив")},
 +	{41, 	780, 	_T("Разград")},
 +	{41, 	779, 	_T("Русе")},
 +	{41, 	774, 	_T("Силистра")},
 +	{41, 	784, 	_T("Сливен")},
 +	{41, 	772, 	_T("София")},
 +	{41, 	775, 	_T("Толбухин")},
 +	{41, 	3116, 	_T("Тырново")},
 +	{41, 	785, 	_T("Хасково")},
 +	{41, 	778, 	_T("Шумен")},
 +	{41, 	783, 	_T("Ямбол")},
  	{41, 	2531, 	lpwszOther},
 -	{42, 	797, 	TEXT("Баня-Лука")},
 -	{42, 	799, 	TEXT("Зеница")},
 -	{42, 	798, 	TEXT("Сараево")},
 -	{42, 	800, 	TEXT("Тузла")},
 +	{42, 	797, 	_T("Баня-Лука")},
 +	{42, 	799, 	_T("Зеница")},
 +	{42, 	798, 	_T("Сараево")},
 +	{42, 	800, 	_T("Тузла")},
  	{42, 	2530, 	lpwszOther},
 -	{45, 	802, 	TEXT("Абердин")},
 -	{45, 	3075, 	TEXT("Айслворт")},
 -	{45, 	801, 	TEXT("Алнвик")},
 -	{45, 	804, 	TEXT("Бидефорд")},
 -	{45, 	803, 	TEXT("Бирмингем")},
 -	{45, 	805, 	TEXT("Блоксвич")},
 -	{45, 	3168, 	TEXT("Бостон")},
 -	{45, 	806, 	TEXT("Брайтон")},
 -	{45, 	807, 	TEXT("Бредфорд")},
 -	{45, 	808, 	TEXT("Бристоль")},
 -	{45, 	809, 	TEXT("Вилленхолл")},
 -	{45, 	3131, 	TEXT("Воррингтон")},
 -	{45, 	810, 	TEXT("Вудбридж")},
 -	{45, 	3342, 	TEXT("Гилфорд")},
 -	{45, 	811, 	TEXT("Глазго")},
 -	{45, 	812, 	TEXT("Дадли")},
 -	{45, 	813, 	TEXT("Дарем")},
 -	{45, 	814, 	TEXT("Дуглас")},
 -	{45, 	3089, 	TEXT("Кардиф")},
 -	{45, 	815, 	TEXT("Кембридж")},
 -	{45, 	816, 	TEXT("Кентербери")},
 -	{45, 	817, 	TEXT("Ливерпуль")},
 -	{45, 	818, 	TEXT("Лидс")},
 -	{45, 	819, 	TEXT("Лондон")},
 -	{45, 	820, 	TEXT("Манчестер")},
 -	{45, 	2976, 	TEXT("Митчем")},
 -	{45, 	2988, 	TEXT("Мэйденхед")},
 -	{45, 	821, 	TEXT("Ноттингем")},
 -	{45, 	3088, 	TEXT("Ньюпорт")},
 -	{45, 	822, 	TEXT("Оксфорд")},
 -	{45, 	823, 	TEXT("Плимут")},
 -	{45, 	824, 	TEXT("Портсмут")},
 -	{45, 	825, 	TEXT("Престон")},
 -	{45, 	3343, 	TEXT("Райд")},
 -	{45, 	2867, 	TEXT("Ридинг")},
 -	{45, 	2986, 	TEXT("Сент-Албанс")},
 -	{45, 	826, 	TEXT("Стаффорд")},
 -	{45, 	3063, 	TEXT("Стокпорт")},
 -	{45, 	827, 	TEXT("Уэймут")},
 -	{45, 	3140, 	TEXT("Челтенхэм")},
 -	{45, 	828, 	TEXT("Честер")},
 -	{45, 	829, 	TEXT("Шеффилд")},
 -	{45, 	830, 	TEXT("Эдинбург")},
 +	{45, 	802, 	_T("Абердин")},
 +	{45, 	3075, 	_T("Айслворт")},
 +	{45, 	801, 	_T("Алнвик")},
 +	{45, 	804, 	_T("Бидефорд")},
 +	{45, 	803, 	_T("Бирмингем")},
 +	{45, 	805, 	_T("Блоксвич")},
 +	{45, 	3168, 	_T("Бостон")},
 +	{45, 	806, 	_T("Брайтон")},
 +	{45, 	807, 	_T("Бредфорд")},
 +	{45, 	808, 	_T("Бристоль")},
 +	{45, 	809, 	_T("Вилленхолл")},
 +	{45, 	3131, 	_T("Воррингтон")},
 +	{45, 	810, 	_T("Вудбридж")},
 +	{45, 	3342, 	_T("Гилфорд")},
 +	{45, 	811, 	_T("Глазго")},
 +	{45, 	812, 	_T("Дадли")},
 +	{45, 	813, 	_T("Дарем")},
 +	{45, 	814, 	_T("Дуглас")},
 +	{45, 	3089, 	_T("Кардиф")},
 +	{45, 	815, 	_T("Кембридж")},
 +	{45, 	816, 	_T("Кентербери")},
 +	{45, 	817, 	_T("Ливерпуль")},
 +	{45, 	818, 	_T("Лидс")},
 +	{45, 	819, 	_T("Лондон")},
 +	{45, 	820, 	_T("Манчестер")},
 +	{45, 	2976, 	_T("Митчем")},
 +	{45, 	2988, 	_T("Мэйденхед")},
 +	{45, 	821, 	_T("Ноттингем")},
 +	{45, 	3088, 	_T("Ньюпорт")},
 +	{45, 	822, 	_T("Оксфорд")},
 +	{45, 	823, 	_T("Плимут")},
 +	{45, 	824, 	_T("Портсмут")},
 +	{45, 	825, 	_T("Престон")},
 +	{45, 	3343, 	_T("Райд")},
 +	{45, 	2867, 	_T("Ридинг")},
 +	{45, 	2986, 	_T("Сент-Албанс")},
 +	{45, 	826, 	_T("Стаффорд")},
 +	{45, 	3063, 	_T("Стокпорт")},
 +	{45, 	827, 	_T("Уэймут")},
 +	{45, 	3140, 	_T("Челтенхэм")},
 +	{45, 	828, 	_T("Честер")},
 +	{45, 	829, 	_T("Шеффилд")},
 +	{45, 	830, 	_T("Эдинбург")},
  	{45, 	2529, 	lpwszOther},
 -	{44, 	831, 	TEXT("Будапешт")},
 -	{44, 	832, 	TEXT("Геделле")},
 -	{44, 	836, 	TEXT("Дебрецен")},
 -	{44, 	835, 	TEXT("Мишкольц")},
 -	{44, 	834, 	TEXT("Сегед")},
 -	{44, 	833, 	TEXT("Шиофок")},
 +	{44, 	831, 	_T("Будапешт")},
 +	{44, 	832, 	_T("Геделле")},
 +	{44, 	836, 	_T("Дебрецен")},
 +	{44, 	835, 	_T("Мишкольц")},
 +	{44, 	834, 	_T("Сегед")},
 +	{44, 	833, 	_T("Шиофок")},
  	{44, 	2528, 	lpwszOther},
 -	{46, 	3007, 	TEXT("Аахен")},
 -	{46, 	837, 	TEXT("Аугсбург")},
 -	{46, 	838, 	TEXT("Баден-Баден")},
 -	{46, 	3371, 	TEXT("Бамберг")},
 -	{46, 	839, 	TEXT("Бергиш-Гладбах")},
 -	{46, 	840, 	TEXT("Берлин")},
 -	{46, 	841, 	TEXT("Билефельд")},
 -	{46, 	3163, 	TEXT("Бовенден")},
 -	{46, 	842, 	TEXT("Бонн")},
 -	{46, 	843, 	TEXT("Браденбург")},
 -	{46, 	3015, 	TEXT("Брауншвейг")},
 -	{46, 	844, 	TEXT("Бремен")},
 -	{46, 	2921, 	TEXT("Варштайн")},
 -	{46, 	845, 	TEXT("Веймар")},
 -	{46, 	846, 	TEXT("Вупперталь")},
 -	{46, 	847, 	TEXT("Гамбург")},
 -	{46, 	848, 	TEXT("Ганновер")},
 -	{46, 	849, 	TEXT("Гарделеген")},
 -	{46, 	3010, 	TEXT("Гейдельберг")},
 -	{46, 	850, 	TEXT("Гота")},
 -	{46, 	851, 	TEXT("Дармштадт")},
 -	{46, 	3072, 	TEXT("Дессау")},
 -	{46, 	852, 	TEXT("Детмольд")},
 -	{46, 	853, 	TEXT("Дортмунд")},
 -	{46, 	854, 	TEXT("Дрезден")},
 -	{46, 	855, 	TEXT("Дюссельдорф")},
 -	{46, 	3082, 	TEXT("Иффецхайм")},
 -	{46, 	3309, 	TEXT("Кассел")},
 -	{46, 	856, 	TEXT("Кельн")},
 -	{46, 	857, 	TEXT("Киль")},
 -	{46, 	3138, 	TEXT("Кобленц")},
 -	{46, 	858, 	TEXT("Крефельд")},
 -	{46, 	859, 	TEXT("Лейпциг")},
 -	{46, 	2872, 	TEXT("Лимбург")},
 -	{46, 	2965, 	TEXT("Линген")},
 -	{46, 	3135, 	TEXT("Любек")},
 -	{46, 	3156, 	TEXT("Мангейм")},
 -	{46, 	3192, 	TEXT("Меерсбург")},
 -	{46, 	860, 	TEXT("Мюнстер")},
 -	{46, 	861, 	TEXT("Мюнхен")},
 -	{46, 	2864, 	TEXT("Нойштадт")},
 -	{46, 	862, 	TEXT("Нюрнберг")},
 -	{46, 	3009, 	TEXT("Оффенбург")},
 -	{46, 	2993, 	TEXT("Падерборн")},
 -	{46, 	863, 	TEXT("Равенсбург")},
 -	{46, 	864, 	TEXT("Регенсбург")},
 -	{46, 	865, 	TEXT("Рейнен")},
 -	{46, 	866, 	TEXT("Росток")},
 -	{46, 	3191, 	TEXT("Саарбрюкен")},
 -	{46, 	2974, 	TEXT("Санкт-Августин")},
 -	{46, 	3127, 	TEXT("Тюринген")},
 -	{46, 	867, 	TEXT("Фрайберг")},
 -	{46, 	868, 	TEXT("Фрайбург")},
 -	{46, 	869, 	TEXT("Франкфурт-на-Майне")},
 -	{46, 	3373, 	TEXT("Хемнитц")},
 -	{46, 	3313, 	TEXT("Хильден")},
 -	{46, 	870, 	TEXT("Штутгарт")},
 -	{46, 	3045, 	TEXT("Эрланген")},
 -	{46, 	2906, 	TEXT("Эшборн")},
 +	{46, 	3007, 	_T("Аахен")},
 +	{46, 	837, 	_T("Аугсбург")},
 +	{46, 	838, 	_T("Баден-Баден")},
 +	{46, 	3371, 	_T("Бамберг")},
 +	{46, 	839, 	_T("Бергиш-Гладбах")},
 +	{46, 	840, 	_T("Берлин")},
 +	{46, 	841, 	_T("Билефельд")},
 +	{46, 	3163, 	_T("Бовенден")},
 +	{46, 	842, 	_T("Бонн")},
 +	{46, 	843, 	_T("Браденбург")},
 +	{46, 	3015, 	_T("Брауншвейг")},
 +	{46, 	844, 	_T("Бремен")},
 +	{46, 	2921, 	_T("Варштайн")},
 +	{46, 	845, 	_T("Веймар")},
 +	{46, 	846, 	_T("Вупперталь")},
 +	{46, 	847, 	_T("Гамбург")},
 +	{46, 	848, 	_T("Ганновер")},
 +	{46, 	849, 	_T("Гарделеген")},
 +	{46, 	3010, 	_T("Гейдельберг")},
 +	{46, 	850, 	_T("Гота")},
 +	{46, 	851, 	_T("Дармштадт")},
 +	{46, 	3072, 	_T("Дессау")},
 +	{46, 	852, 	_T("Детмольд")},
 +	{46, 	853, 	_T("Дортмунд")},
 +	{46, 	854, 	_T("Дрезден")},
 +	{46, 	855, 	_T("Дюссельдорф")},
 +	{46, 	3082, 	_T("Иффецхайм")},
 +	{46, 	3309, 	_T("Кассел")},
 +	{46, 	856, 	_T("Кельн")},
 +	{46, 	857, 	_T("Киль")},
 +	{46, 	3138, 	_T("Кобленц")},
 +	{46, 	858, 	_T("Крефельд")},
 +	{46, 	859, 	_T("Лейпциг")},
 +	{46, 	2872, 	_T("Лимбург")},
 +	{46, 	2965, 	_T("Линген")},
 +	{46, 	3135, 	_T("Любек")},
 +	{46, 	3156, 	_T("Мангейм")},
 +	{46, 	3192, 	_T("Меерсбург")},
 +	{46, 	860, 	_T("Мюнстер")},
 +	{46, 	861, 	_T("Мюнхен")},
 +	{46, 	2864, 	_T("Нойштадт")},
 +	{46, 	862, 	_T("Нюрнберг")},
 +	{46, 	3009, 	_T("Оффенбург")},
 +	{46, 	2993, 	_T("Падерборн")},
 +	{46, 	863, 	_T("Равенсбург")},
 +	{46, 	864, 	_T("Регенсбург")},
 +	{46, 	865, 	_T("Рейнен")},
 +	{46, 	866, 	_T("Росток")},
 +	{46, 	3191, 	_T("Саарбрюкен")},
 +	{46, 	2974, 	_T("Санкт-Августин")},
 +	{46, 	3127, 	_T("Тюринген")},
 +	{46, 	867, 	_T("Фрайберг")},
 +	{46, 	868, 	_T("Фрайбург")},
 +	{46, 	869, 	_T("Франкфурт-на-Майне")},
 +	{46, 	3373, 	_T("Хемнитц")},
 +	{46, 	3313, 	_T("Хильден")},
 +	{46, 	870, 	_T("Штутгарт")},
 +	{46, 	3045, 	_T("Эрланген")},
 +	{46, 	2906, 	_T("Эшборн")},
  	{46, 	2527, 	lpwszOther},
 -	{48, 	871, 	TEXT("Афины")},
 -	{48, 	873, 	TEXT("Ираклион")},
 -	{48, 	3147, 	TEXT("Корфу")},
 -	{48, 	872, 	TEXT("Салоники")},
 -	{48, 	3178, 	TEXT("Халкидики")},
 +	{48, 	871, 	_T("Афины")},
 +	{48, 	873, 	_T("Ираклион")},
 +	{48, 	3147, 	_T("Корфу")},
 +	{48, 	872, 	_T("Салоники")},
 +	{48, 	3178, 	_T("Халкидики")},
  	{48, 	2526, 	lpwszOther},
 -	{49, 	3006, 	TEXT("Архус")},
 -	{49, 	874, 	TEXT("Копенгаген")},
 -	{49, 	875, 	TEXT("Оденсе")},
 -	{49, 	3285, 	TEXT("Ольборг")},
 -	{49, 	876, 	TEXT("Сванеке")},
 -	{49, 	3126, 	TEXT("Скиве")},
 +	{49, 	3006, 	_T("Архус")},
 +	{49, 	874, 	_T("Копенгаген")},
 +	{49, 	875, 	_T("Оденсе")},
 +	{49, 	3285, 	_T("Ольборг")},
 +	{49, 	876, 	_T("Сванеке")},
 +	{49, 	3126, 	_T("Скиве")},
  	{49, 	2525, 	lpwszOther},
 -	{50, 	3377, 	TEXT("Виклоу")},
 -	{50, 	3067, 	TEXT("Голвей")},
 -	{50, 	877, 	TEXT("Дублин")},
 -	{50, 	3065, 	TEXT("Килларней")},
 -	{50, 	3066, 	TEXT("Корк")},
 -	{50, 	878, 	TEXT("Лимерик")},
 -	{50, 	3069, 	TEXT("Нейс")},
 -	{50, 	3068, 	TEXT("Типперэри")},
 +	{50, 	3377, 	_T("Виклоу")},
 +	{50, 	3067, 	_T("Голвей")},
 +	{50, 	877, 	_T("Дублин")},
 +	{50, 	3065, 	_T("Килларней")},
 +	{50, 	3066, 	_T("Корк")},
 +	{50, 	878, 	_T("Лимерик")},
 +	{50, 	3069, 	_T("Нейс")},
 +	{50, 	3068, 	_T("Типперэри")},
  	{50, 	2524, 	lpwszOther},
 -	{51, 	879, 	TEXT("Рейкьявик")},
 +	{51, 	879, 	_T("Рейкьявик")},
  	{51, 	2523, 	lpwszOther},
 -	{34, 	880, 	TEXT("Аликанте")},
 -	{34, 	3125, 	TEXT("Альмерия")},
 -	{34, 	881, 	TEXT("Барселона")},
 -	{34, 	890, 	TEXT("Бильбао")},
 -	{34, 	3076, 	TEXT("Бланес")},
 -	{34, 	882, 	TEXT("Валенсия")},
 -	{34, 	3070, 	TEXT("Ибица")},
 -	{34, 	888, 	TEXT("Кадис")},
 -	{34, 	886, 	TEXT("Картахена")},
 -	{34, 	891, 	TEXT("Ла-Корунья")},
 -	{34, 	3310, 	TEXT("Лорет де Мар")},
 -	{34, 	883, 	TEXT("Мадрид")},
 -	{34, 	884, 	TEXT("Малага")},
 -	{34, 	885, 	TEXT("Марбелья")},
 -	{34, 	892, 	TEXT("Овьедо")},
 -	{34, 	3179, 	TEXT("Пальма де Майорка")},
 -	{34, 	3177, 	TEXT("Сан-Агустин")},
 -	{34, 	3289, 	TEXT("Санта-Крус-де-Тенерифе")},
 -	{34, 	889, 	TEXT("Сарагоса")},
 -	{34, 	887, 	TEXT("Севилья")},
 -	{34, 	893, 	TEXT("Хихон")},
 +	{34, 	880, 	_T("Аликанте")},
 +	{34, 	3125, 	_T("Альмерия")},
 +	{34, 	881, 	_T("Барселона")},
 +	{34, 	890, 	_T("Бильбао")},
 +	{34, 	3076, 	_T("Бланес")},
 +	{34, 	882, 	_T("Валенсия")},
 +	{34, 	3070, 	_T("Ибица")},
 +	{34, 	888, 	_T("Кадис")},
 +	{34, 	886, 	_T("Картахена")},
 +	{34, 	891, 	_T("Ла-Корунья")},
 +	{34, 	3310, 	_T("Лорет де Мар")},
 +	{34, 	883, 	_T("Мадрид")},
 +	{34, 	884, 	_T("Малага")},
 +	{34, 	885, 	_T("Марбелья")},
 +	{34, 	892, 	_T("Овьедо")},
 +	{34, 	3179, 	_T("Пальма де Майорка")},
 +	{34, 	3177, 	_T("Сан-Агустин")},
 +	{34, 	3289, 	_T("Санта-Крус-де-Тенерифе")},
 +	{34, 	889, 	_T("Сарагоса")},
 +	{34, 	887, 	_T("Севилья")},
 +	{34, 	893, 	_T("Хихон")},
  	{34, 	2522, 	lpwszOther},
 -	{52, 	3318, 	TEXT("Аоста")},
 -	{52, 	3278, 	TEXT("Беллариа")},
 -	{52, 	906, 	TEXT("Болонья")},
 -	{52, 	894, 	TEXT("Брешиа")},
 -	{52, 	895, 	TEXT("Венеция")},
 -	{52, 	905, 	TEXT("Верона")},
 -	{52, 	896, 	TEXT("Генуя")},
 -	{52, 	897, 	TEXT("Лекко")},
 -	{52, 	3369, 	TEXT("Ливорно")},
 -	{52, 	3327, 	TEXT("Марсала")},
 -	{52, 	898, 	TEXT("Милан")},
 -	{52, 	899, 	TEXT("Модена")},
 -	{52, 	907, 	TEXT("Неаполь")},
 -	{52, 	908, 	TEXT("Перуджа")},
 -	{52, 	900, 	TEXT("Пиза")},
 -	{52, 	901, 	TEXT("Рим")},
 -	{52, 	3368, 	TEXT("Сан-Ремо")},
 -	{52, 	3384, 	TEXT("Сиракуза")},
 -	{52, 	3252, 	TEXT("Терамо")},
 -	{52, 	902, 	TEXT("Триест")},
 -	{52, 	903, 	TEXT("Турин")},
 -	{52, 	3130, 	TEXT("Фано")},
 -	{52, 	904, 	TEXT("Флоренция")},
 +	{52, 	3318, 	_T("Аоста")},
 +	{52, 	3278, 	_T("Беллариа")},
 +	{52, 	906, 	_T("Болонья")},
 +	{52, 	894, 	_T("Брешиа")},
 +	{52, 	895, 	_T("Венеция")},
 +	{52, 	905, 	_T("Верона")},
 +	{52, 	896, 	_T("Генуя")},
 +	{52, 	897, 	_T("Лекко")},
 +	{52, 	3369, 	_T("Ливорно")},
 +	{52, 	3327, 	_T("Марсала")},
 +	{52, 	898, 	_T("Милан")},
 +	{52, 	899, 	_T("Модена")},
 +	{52, 	907, 	_T("Неаполь")},
 +	{52, 	908, 	_T("Перуджа")},
 +	{52, 	900, 	_T("Пиза")},
 +	{52, 	901, 	_T("Рим")},
 +	{52, 	3368, 	_T("Сан-Ремо")},
 +	{52, 	3384, 	_T("Сиракуза")},
 +	{52, 	3252, 	_T("Терамо")},
 +	{52, 	902, 	_T("Триест")},
 +	{52, 	903, 	_T("Турин")},
 +	{52, 	3130, 	_T("Фано")},
 +	{52, 	904, 	_T("Флоренция")},
  	{52, 	2521, 	lpwszOther},
 -	{53, 	2939, 	TEXT("Айзкраукле")},
 -	{53, 	3054, 	TEXT("Валка")},
 -	{53, 	909, 	TEXT("Даугавпилс")},
 -	{53, 	2934, 	TEXT("Екабпилс")},
 -	{53, 	913, 	TEXT("Елгава")},
 -	{53, 	2935, 	TEXT("Кокнесе")},
 -	{53, 	912, 	TEXT("Лиепая")},
 -	{53, 	2905, 	TEXT("Резекне")},
 -	{53, 	911, 	TEXT("Рига")},
 -	{53, 	2936, 	TEXT("Саласпилс")},
 -	{53, 	2937, 	TEXT("Смилтене")},
 -	{53, 	910, 	TEXT("Юрмала")},
 +	{53, 	2939, 	_T("Айзкраукле")},
 +	{53, 	3054, 	_T("Валка")},
 +	{53, 	909, 	_T("Даугавпилс")},
 +	{53, 	2934, 	_T("Екабпилс")},
 +	{53, 	913, 	_T("Елгава")},
 +	{53, 	2935, 	_T("Кокнесе")},
 +	{53, 	912, 	_T("Лиепая")},
 +	{53, 	2905, 	_T("Резекне")},
 +	{53, 	911, 	_T("Рига")},
 +	{53, 	2936, 	_T("Саласпилс")},
 +	{53, 	2937, 	_T("Смилтене")},
 +	{53, 	910, 	_T("Юрмала")},
  	{53, 	2520, 	lpwszOther},
 -	{54, 	914, 	TEXT("Вильнюс")},
 -	{54, 	915, 	TEXT("Висагинас")},
 -	{54, 	916, 	TEXT("Каунас")},
 -	{54, 	918, 	TEXT("Клайпеда")},
 -	{54, 	919, 	TEXT("Паланга")},
 -	{54, 	3173, 	TEXT("Пеневежис")},
 -	{54, 	917, 	TEXT("Шауляй")},
 +	{54, 	914, 	_T("Вильнюс")},
 +	{54, 	915, 	_T("Висагинас")},
 +	{54, 	916, 	_T("Каунас")},
 +	{54, 	918, 	_T("Клайпеда")},
 +	{54, 	919, 	_T("Паланга")},
 +	{54, 	3173, 	_T("Пеневежис")},
 +	{54, 	917, 	_T("Шауляй")},
  	{54, 	2519, 	lpwszOther},
 -	{55, 	920, 	TEXT("Вадуц")},
 +	{55, 	920, 	_T("Вадуц")},
  	{55, 	2518, 	lpwszOther},
 -	{56, 	3376, 	TEXT("Бетцдорф")},
 -	{56, 	921, 	TEXT("Люксембург")},
 +	{56, 	3376, 	_T("Бетцдорф")},
 +	{56, 	921, 	_T("Люксембург")},
  	{56, 	2517, 	lpwszOther},
 -	{57, 	3142, 	TEXT("Битола")},
 -	{57, 	922, 	TEXT("Скопье")},
 +	{57, 	3142, 	_T("Битола")},
 +	{57, 	922, 	_T("Скопье")},
  	{57, 	2516, 	lpwszOther},
 -	{58, 	923, 	TEXT("Валлетта")},
 -	{58, 	3154, 	TEXT("Мзида")},
 -	{58, 	924, 	TEXT("Слима")},
 +	{58, 	923, 	_T("Валлетта")},
 +	{58, 	3154, 	_T("Мзида")},
 +	{58, 	924, 	_T("Слима")},
  	{58, 	2515, 	lpwszOther},
 -	{59, 	925, 	TEXT("Бельцы")},
 -	{59, 	926, 	TEXT("Бендеры")},
 -	{59, 	3234, 	TEXT("Дубоссары")},
 -	{59, 	3275, 	TEXT("Кахул")},
 -	{59, 	927, 	TEXT("Кишинев")},
 -	{59, 	3321, 	TEXT("Резина")},
 -	{59, 	928, 	TEXT("Рыбница")},
 -	{59, 	929, 	TEXT("Тирасполь")},
 -	{59, 	3281, 	TEXT("Чадыр-Лунга")},
 +	{59, 	925, 	_T("Бельцы")},
 +	{59, 	926, 	_T("Бендеры")},
 +	{59, 	3234, 	_T("Дубоссары")},
 +	{59, 	3275, 	_T("Кахул")},
 +	{59, 	927, 	_T("Кишинев")},
 +	{59, 	3321, 	_T("Резина")},
 +	{59, 	928, 	_T("Рыбница")},
 +	{59, 	929, 	_T("Тирасполь")},
 +	{59, 	3281, 	_T("Чадыр-Лунга")},
  	{59, 	2514, 	lpwszOther},
 -	{36, 	930, 	TEXT("Монте-Карло")},
 +	{36, 	930, 	_T("Монте-Карло")},
  	{36, 	2513, 	lpwszOther},
 -	{60, 	931, 	TEXT("Амстердам")},
 -	{60, 	933, 	TEXT("Бреда")},
 -	{60, 	932, 	TEXT("Гаага")},
 -	{60, 	934, 	TEXT("Гауда")},
 -	{60, 	935, 	TEXT("Делфт")},
 -	{60, 	2977, 	TEXT("Донген")},
 -	{60, 	3030, 	TEXT("Зволле")},
 -	{60, 	3091, 	TEXT("Ниймеген")},
 -	{60, 	936, 	TEXT("Роттердам")},
 -	{60, 	937, 	TEXT("Утрехт")},
 -	{60, 	3044, 	TEXT("Эйндховен")},
 -	{60, 	3380, 	TEXT("Эншеде")},
 +	{60, 	931, 	_T("Амстердам")},
 +	{60, 	933, 	_T("Бреда")},
 +	{60, 	932, 	_T("Гаага")},
 +	{60, 	934, 	_T("Гауда")},
 +	{60, 	935, 	_T("Делфт")},
 +	{60, 	2977, 	_T("Донген")},
 +	{60, 	3030, 	_T("Зволле")},
 +	{60, 	3091, 	_T("Ниймеген")},
 +	{60, 	936, 	_T("Роттердам")},
 +	{60, 	937, 	_T("Утрехт")},
 +	{60, 	3044, 	_T("Эйндховен")},
 +	{60, 	3380, 	_T("Эншеде")},
  	{60, 	2512, 	lpwszOther},
 -	{61, 	3190, 	TEXT("Кристиансанд")},
 -	{61, 	2857, 	TEXT("Лиллехаммер")},
 -	{61, 	938, 	TEXT("Осло")},
 -	{61, 	3355, 	TEXT("Ставангер")},
 -	{61, 	939, 	TEXT("Тронхейм")},
 +	{61, 	3190, 	_T("Кристиансанд")},
 +	{61, 	2857, 	_T("Лиллехаммер")},
 +	{61, 	938, 	_T("Осло")},
 +	{61, 	3355, 	_T("Ставангер")},
 +	{61, 	939, 	_T("Тронхейм")},
  	{61, 	2511, 	lpwszOther},
 -	{62, 	940, 	TEXT("Белосток")},
 -	{62, 	941, 	TEXT("Варшава")},
 -	{62, 	3164, 	TEXT("Вроцлав")},
 -	{62, 	942, 	TEXT("Гданьск")},
 -	{62, 	943, 	TEXT("Гливице")},
 -	{62, 	3237, 	TEXT("Закопане")},
 -	{62, 	3165, 	TEXT("Зелена Гура")},
 -	{62, 	944, 	TEXT("Катовице")},
 -	{62, 	945, 	TEXT("Краков")},
 -	{62, 	3008, 	TEXT("Лодзь")},
 -	{62, 	3150, 	TEXT("Ольштын")},
 -	{62, 	946, 	TEXT("Познань")},
 -	{62, 	947, 	TEXT("Радом")},
 -	{62, 	948, 	TEXT("Сопот")},
 -	{62, 	2958, 	TEXT("Тыхы")},
 +	{62, 	940, 	_T("Белосток")},
 +	{62, 	941, 	_T("Варшава")},
 +	{62, 	3164, 	_T("Вроцлав")},
 +	{62, 	942, 	_T("Гданьск")},
 +	{62, 	943, 	_T("Гливице")},
 +	{62, 	3237, 	_T("Закопане")},
 +	{62, 	3165, 	_T("Зелена Гура")},
 +	{62, 	944, 	_T("Катовице")},
 +	{62, 	945, 	_T("Краков")},
 +	{62, 	3008, 	_T("Лодзь")},
 +	{62, 	3150, 	_T("Ольштын")},
 +	{62, 	946, 	_T("Познань")},
 +	{62, 	947, 	_T("Радом")},
 +	{62, 	948, 	_T("Сопот")},
 +	{62, 	2958, 	_T("Тыхы")},
  	{62, 	2510, 	lpwszOther},
 -	{35, 	949, 	TEXT("Лиссабон")},
 -	{35, 	950, 	TEXT("Порто")},
 +	{35, 	949, 	_T("Лиссабон")},
 +	{35, 	950, 	_T("Порто")},
  	{35, 	2509, 	lpwszOther},
 -	{63, 	952, 	TEXT("Брашов")},
 -	{63, 	951, 	TEXT("Бухарест")},
 -	{63, 	954, 	TEXT("Констанца")},
 -	{63, 	955, 	TEXT("Плоешти")},
 -	{63, 	953, 	TEXT("Яссы")},
 +	{63, 	952, 	_T("Брашов")},
 +	{63, 	951, 	_T("Бухарест")},
 +	{63, 	954, 	_T("Констанца")},
 +	{63, 	955, 	_T("Плоешти")},
 +	{63, 	953, 	_T("Яссы")},
  	{63, 	2508, 	lpwszOther},
 -	{64, 	956, 	TEXT("Сан-Марино")},
 +	{64, 	956, 	_T("Сан-Марино")},
  	{64, 	2507, 	lpwszOther},
 -	{74, 	957, 	TEXT("Белград")},
 -	{74, 	960, 	TEXT("Ниш")},
 -	{74, 	958, 	TEXT("Нови-Сад")},
 -	{74, 	959, 	TEXT("Сараево")},
 +	{74, 	957, 	_T("Белград")},
 +	{74, 	960, 	_T("Ниш")},
 +	{74, 	958, 	_T("Нови-Сад")},
 +	{74, 	959, 	_T("Сараево")},
  	{74, 	2506, 	lpwszOther},
 -	{65, 	961, 	TEXT("Братислава")},
 -	{65, 	962, 	TEXT("Кошице")},
 -	{65, 	3101, 	TEXT("Липтов")},
 -	{65, 	963, 	TEXT("Попрад")},
 -	{65, 	964, 	TEXT("Прешов")},
 -	{65, 	965, 	TEXT("Ружемберок")},
 -	{65, 	966, 	TEXT("Тврдошин")},
 +	{65, 	961, 	_T("Братислава")},
 +	{65, 	962, 	_T("Кошице")},
 +	{65, 	3101, 	_T("Липтов")},
 +	{65, 	963, 	_T("Попрад")},
 +	{65, 	964, 	_T("Прешов")},
 +	{65, 	965, 	_T("Ружемберок")},
 +	{65, 	966, 	_T("Тврдошин")},
  	{65, 	2505, 	lpwszOther},
 -	{66, 	968, 	TEXT("Копар")},
 -	{66, 	967, 	TEXT("Любляна")},
 -	{66, 	969, 	TEXT("Марибор")},
 +	{66, 	968, 	_T("Копар")},
 +	{66, 	967, 	_T("Любляна")},
 +	{66, 	969, 	_T("Марибор")},
  	{66, 	2504, 	lpwszOther},
 -	{67, 	970, 	TEXT("Торсхавн")},
 +	{67, 	970, 	_T("Торсхавн")},
  	{67, 	2503, 	lpwszOther},
 -	{68, 	2888, 	TEXT("Вантаа")},
 -	{68, 	971, 	TEXT("Васа")},
 -	{68, 	979, 	TEXT("Котка")},
 -	{68, 	972, 	TEXT("Коувола")},
 -	{68, 	980, 	TEXT("Лахти")},
 -	{68, 	973, 	TEXT("Оулу")},
 -	{68, 	3375, 	TEXT("Риихимяки")},
 -	{68, 	3159, 	TEXT("Руовеси")},
 -	{68, 	974, 	TEXT("Тампере")},
 -	{68, 	975, 	TEXT("Турку")},
 -	{68, 	976, 	TEXT("Хельсинки")},
 -	{68, 	977, 	TEXT("Эспо")},
 -	{68, 	978, 	TEXT("Ювяскюля")},
 +	{68, 	2888, 	_T("Вантаа")},
 +	{68, 	971, 	_T("Васа")},
 +	{68, 	979, 	_T("Котка")},
 +	{68, 	972, 	_T("Коувола")},
 +	{68, 	980, 	_T("Лахти")},
 +	{68, 	973, 	_T("Оулу")},
 +	{68, 	3375, 	_T("Риихимяки")},
 +	{68, 	3159, 	_T("Руовеси")},
 +	{68, 	974, 	_T("Тампере")},
 +	{68, 	975, 	_T("Турку")},
 +	{68, 	976, 	_T("Хельсинки")},
 +	{68, 	977, 	_T("Эспо")},
 +	{68, 	978, 	_T("Ювяскюля")},
  	{68, 	2502, 	lpwszOther},
 -	{37, 	996, 	TEXT("Авиньон")},
 -	{37, 	983, 	TEXT("Бержерак")},
 -	{37, 	997, 	TEXT("Блуа")},
 -	{37, 	984, 	TEXT("Бордо")},
 -	{37, 	998, 	TEXT("Дижон")},
 -	{37, 	987, 	TEXT("Канн")},
 -	{37, 	988, 	TEXT("Кастр")},
 -	{37, 	993, 	TEXT("Клермон-Ферран")},
 -	{37, 	3037, 	TEXT("Лилль")},
 -	{37, 	989, 	TEXT("Лион")},
 -	{37, 	985, 	TEXT("Марсель")},
 -	{37, 	991, 	TEXT("Мец")},
 -	{37, 	3161, 	TEXT("Мобеж")},
 -	{37, 	990, 	TEXT("Нанси")},
 -	{37, 	994, 	TEXT("Нант")},
 -	{37, 	995, 	TEXT("Ницца")},
 -	{37, 	999, 	TEXT("Орлеан")},
 -	{37, 	981, 	TEXT("Париж")},
 -	{37, 	3374, 	TEXT("Перпиньян")},
 -	{37, 	992, 	TEXT("Руан")},
 -	{37, 	982, 	TEXT("Страсбург")},
 -	{37, 	986, 	TEXT("Тулуза")},
 -	{37, 	3314, 	TEXT("Шамбери")},
 +	{37, 	996, 	_T("Авиньон")},
 +	{37, 	983, 	_T("Бержерак")},
 +	{37, 	997, 	_T("Блуа")},
 +	{37, 	984, 	_T("Бордо")},
 +	{37, 	998, 	_T("Дижон")},
 +	{37, 	987, 	_T("Канн")},
 +	{37, 	988, 	_T("Кастр")},
 +	{37, 	993, 	_T("Клермон-Ферран")},
 +	{37, 	3037, 	_T("Лилль")},
 +	{37, 	989, 	_T("Лион")},
 +	{37, 	985, 	_T("Марсель")},
 +	{37, 	991, 	_T("Мец")},
 +	{37, 	3161, 	_T("Мобеж")},
 +	{37, 	990, 	_T("Нанси")},
 +	{37, 	994, 	_T("Нант")},
 +	{37, 	995, 	_T("Ницца")},
 +	{37, 	999, 	_T("Орлеан")},
 +	{37, 	981, 	_T("Париж")},
 +	{37, 	3374, 	_T("Перпиньян")},
 +	{37, 	992, 	_T("Руан")},
 +	{37, 	982, 	_T("Страсбург")},
 +	{37, 	986, 	_T("Тулуза")},
 +	{37, 	3314, 	_T("Шамбери")},
  	{37, 	2501, 	lpwszOther},
 -	{69, 	1003, 	TEXT("Дубровник")},
 -	{69, 	1000, 	TEXT("Загреб")},
 -	{69, 	1001, 	TEXT("Задар")},
 -	{69, 	1004, 	TEXT("Риека")},
 -	{69, 	1002, 	TEXT("Сплит")},
 +	{69, 	1003, 	_T("Дубровник")},
 +	{69, 	1000, 	_T("Загреб")},
 +	{69, 	1001, 	_T("Задар")},
 +	{69, 	1004, 	_T("Риека")},
 +	{69, 	1002, 	_T("Сплит")},
  	{69, 	2500, 	lpwszOther},
 -	{70, 	1005, 	TEXT("Брно")},
 -	{70, 	3291, 	TEXT("Гавличкув-Брод")},
 -	{70, 	1007, 	TEXT("Градец-Кралове")},
 -	{70, 	1008, 	TEXT("Карлови-Вари")},
 -	{70, 	3019, 	TEXT("Кладрубы")},
 -	{70, 	1010, 	TEXT("Лоуни")},
 -	{70, 	1009, 	TEXT("Острава")},
 -	{70, 	1015, 	TEXT("Пльзень")},
 -	{70, 	3105, 	TEXT("Правчицка Брана")},
 -	{70, 	1006, 	TEXT("Прага")},
 -	{70, 	3246, 	TEXT("Тачов")},
 -	{70, 	1011, 	TEXT("Тршебич")},
 -	{70, 	1012, 	TEXT("Усти-над-Лабем")},
 -	{70, 	1014, 	TEXT("Ческе-Будеевице")},
 -	{70, 	1013, 	TEXT("Яблонец-над-Нисоу")},
 +	{70, 	1005, 	_T("Брно")},
 +	{70, 	3291, 	_T("Гавличкув-Брод")},
 +	{70, 	1007, 	_T("Градец-Кралове")},
 +	{70, 	1008, 	_T("Карлови-Вари")},
 +	{70, 	3019, 	_T("Кладрубы")},
 +	{70, 	1010, 	_T("Лоуни")},
 +	{70, 	1009, 	_T("Острава")},
 +	{70, 	1015, 	_T("Пльзень")},
 +	{70, 	3105, 	_T("Правчицка Брана")},
 +	{70, 	1006, 	_T("Прага")},
 +	{70, 	3246, 	_T("Тачов")},
 +	{70, 	1011, 	_T("Тршебич")},
 +	{70, 	1012, 	_T("Усти-над-Лабем")},
 +	{70, 	1014, 	_T("Ческе-Будеевице")},
 +	{70, 	1013, 	_T("Яблонец-над-Нисоу")},
  	{70, 	2499, 	lpwszOther},
 -	{71, 	1016, 	TEXT("Арау")},
 -	{71, 	1019, 	TEXT("Баден")},
 -	{71, 	1017, 	TEXT("Базель")},
 -	{71, 	1018, 	TEXT("Берн")},
 -	{71, 	1020, 	TEXT("Биль")},
 -	{71, 	1021, 	TEXT("Винтертур")},
 -	{71, 	1022, 	TEXT("Давос")},
 -	{71, 	3189, 	TEXT("Делемонт")},
 -	{71, 	1023, 	TEXT("Женева")},
 -	{71, 	1024, 	TEXT("Золотурн")},
 -	{71, 	1025, 	TEXT("Лозанна")},
 -	{71, 	1026, 	TEXT("Локарно")},
 -	{71, 	1027, 	TEXT("Лугано")},
 -	{71, 	1028, 	TEXT("Люцерн")},
 -	{71, 	1029, 	TEXT("Монтре")},
 -	{71, 	1030, 	TEXT("Цюрих")},
 +	{71, 	1016, 	_T("Арау")},
 +	{71, 	1019, 	_T("Баден")},
 +	{71, 	1017, 	_T("Базель")},
 +	{71, 	1018, 	_T("Берн")},
 +	{71, 	1020, 	_T("Биль")},
 +	{71, 	1021, 	_T("Винтертур")},
 +	{71, 	1022, 	_T("Давос")},
 +	{71, 	3189, 	_T("Делемонт")},
 +	{71, 	1023, 	_T("Женева")},
 +	{71, 	1024, 	_T("Золотурн")},
 +	{71, 	1025, 	_T("Лозанна")},
 +	{71, 	1026, 	_T("Локарно")},
 +	{71, 	1027, 	_T("Лугано")},
 +	{71, 	1028, 	_T("Люцерн")},
 +	{71, 	1029, 	_T("Монтре")},
 +	{71, 	1030, 	_T("Цюрих")},
  	{71, 	2498, 	lpwszOther},
 -	{72, 	2883, 	TEXT("Арбога")},
 -	{72, 	1031, 	TEXT("Гетеборг")},
 -	{72, 	1032, 	TEXT("Кальмар")},
 -	{72, 	1037, 	TEXT("Лахольм")},
 -	{72, 	1036, 	TEXT("Лулео")},
 -	{72, 	1042, 	TEXT("Лунд")},
 -	{72, 	1033, 	TEXT("Мальме")},
 -	{72, 	1034, 	TEXT("Стокгольм")},
 -	{72, 	1041, 	TEXT("Умео")},
 -	{72, 	1039, 	TEXT("Фалун")},
 -	{72, 	1043, 	TEXT("Хельсинборг")},
 -	{72, 	1040, 	TEXT("Хернесанд")},
 -	{72, 	1038, 	TEXT("Эстерсунд")},
 +	{72, 	2883, 	_T("Арбога")},
 +	{72, 	1031, 	_T("Гетеборг")},
 +	{72, 	1032, 	_T("Кальмар")},
 +	{72, 	1037, 	_T("Лахольм")},
 +	{72, 	1036, 	_T("Лулео")},
 +	{72, 	1042, 	_T("Лунд")},
 +	{72, 	1033, 	_T("Мальме")},
 +	{72, 	1034, 	_T("Стокгольм")},
 +	{72, 	1041, 	_T("Умео")},
 +	{72, 	1039, 	_T("Фалун")},
 +	{72, 	1043, 	_T("Хельсинборг")},
 +	{72, 	1040, 	_T("Хернесанд")},
 +	{72, 	1038, 	_T("Эстерсунд")},
  	{72, 	2497, 	lpwszOther},
 -	{73, 	3013, 	TEXT("Валга")},
 -	{73, 	1044, 	TEXT("Кейла")},
 -	{73, 	1045, 	TEXT("Кохтла-Ярве")},
 -	{73, 	1046, 	TEXT("Маарду")},
 -	{73, 	1047, 	TEXT("Мыйзакюла")},
 -	{73, 	1048, 	TEXT("Нарва")},
 -	{73, 	1049, 	TEXT("Пярну")},
 -	{73, 	1050, 	TEXT("Раквере")},
 -	{73, 	1051, 	TEXT("Силламяэ")},
 -	{73, 	1052, 	TEXT("Таллин")},
 -	{73, 	1053, 	TEXT("Тарту")},
 -	{73, 	1054, 	TEXT("Хаапсалу")},
 +	{73, 	3013, 	_T("Валга")},
 +	{73, 	1044, 	_T("Кейла")},
 +	{73, 	1045, 	_T("Кохтла-Ярве")},
 +	{73, 	1046, 	_T("Маарду")},
 +	{73, 	1047, 	_T("Мыйзакюла")},
 +	{73, 	1048, 	_T("Нарва")},
 +	{73, 	1049, 	_T("Пярну")},
 +	{73, 	1050, 	_T("Раквере")},
 +	{73, 	1051, 	_T("Силламяэ")},
 +	{73, 	1052, 	_T("Таллин")},
 +	{73, 	1053, 	_T("Тарту")},
 +	{73, 	1054, 	_T("Хаапсалу")},
  	{0, 		NULL}
  };//*/
 diff --git a/protocols/MRA/src/MraProto.h b/protocols/MRA/src/MraProto.h index 92e5b5c036..c7082bd23f 100644 --- a/protocols/MRA/src/MraProto.h +++ b/protocols/MRA/src/MraProto.h @@ -10,7 +10,7 @@  #define SCBIF_NICK			64
  #define SCBIF_PHONES		128
 -#define MAIN_MENU_ITEMS_COUNT		14
 +#define MAIN_MENU_ITEMS_COUNT		13
  #define CONTACT_MENU_ITEMS_COUNT	10
  #define ADV_ICON_MAX             5
 diff --git a/protocols/MRA/src/Mra_functions.cpp b/protocols/MRA/src/Mra_functions.cpp index 877bf108c6..2ba7335d8a 100644 --- a/protocols/MRA/src/Mra_functions.cpp +++ b/protocols/MRA/src/Mra_functions.cpp @@ -48,11 +48,11 @@ static DWORD GetParamValue(const CMStringA &szData, LPCSTR szParamName, DWORD dw  	LPSTR lpszParamDataStart = strstr(tmp, szParamName);
  	if (lpszParamDataStart)
 -	if ((*((WORD*)(lpszParamDataStart+dwParamNameSize))) == (*((WORD*)"=\""))) {
 -		lpszParamDataStart += dwParamNameSize+2;
 +	if ((*((WORD*)(lpszParamDataStart + dwParamNameSize))) == (*((WORD*)"=\""))) {
 +		lpszParamDataStart += dwParamNameSize + 2;
  		LPSTR lpszParamDataEnd = strchr(lpszParamDataStart, '"');
  		if (lpszParamDataEnd) {
 -			szParamValue = CMStringA(szData.c_str()+(lpszParamDataStart-tmp), lpszParamDataEnd-lpszParamDataStart);
 +			szParamValue = CMStringA(szData.c_str() + (lpszParamDataStart - tmp), lpszParamDataEnd - lpszParamDataStart);
  			return NO_ERROR;
  		}
  	}
 @@ -67,10 +67,10 @@ CMStringA MraGetVersionStringFromFormatted(const CMStringA &szUserAgentFormatted  	CMStringA res, tmp;
  	if (!GetParamValue(szUserAgentFormatted, "name", 4, tmp))
 -		if (tmp == "Miranda IM" || tmp == "Miranda NG") {
 -			GetParamValue(szUserAgentFormatted, "title", 5, res);
 -			return res;
 -		}
 +	if (tmp == "Miranda IM" || tmp == "Miranda NG") {
 +		GetParamValue(szUserAgentFormatted, "title", 5, res);
 +		return res;
 +	}
  	if (!GetParamValue(szUserAgentFormatted, "client", 6, tmp)) {
  		if (tmp == "wmagent")
 @@ -86,15 +86,15 @@ CMStringA MraGetVersionStringFromFormatted(const CMStringA &szUserAgentFormatted  		res += tmp + " ";
  	}
 -	if ( !GetParamValue(szUserAgentFormatted, "name", 4, tmp))
 +	if (!GetParamValue(szUserAgentFormatted, "name", 4, tmp))
  		res += tmp + " ";
 -	if ( !GetParamValue(szUserAgentFormatted, "title", 5, tmp))
 +	if (!GetParamValue(szUserAgentFormatted, "title", 5, tmp))
  		res += tmp + " ";
 -	if ( !GetParamValue(szUserAgentFormatted, "version", 7, tmp)) {
 +	if (!GetParamValue(szUserAgentFormatted, "version", 7, tmp)) {
  		res += tmp + " ";
 -		if ( !GetParamValue(szUserAgentFormatted, "build", 5, tmp))
 +		if (!GetParamValue(szUserAgentFormatted, "build", 5, tmp))
  			res += tmp;
  	}
 @@ -106,7 +106,7 @@ DWORD MraAddrListGetFromBuff(const CMStringA &szAddresses, MRA_ADDR_LIST *pmalAd  {
  	if (szAddresses.IsEmpty() || !pmalAddrList)
  		return ERROR_INVALID_HANDLE;
 -	
 +
  	DWORD dwAllocatedCount = ALLOCATED_COUNT;
  	pmalAddrList->dwAddrCount = 0;
  	pmalAddrList->pMailAddress = (MRA_ADDR_LIST_ITEM*)mir_calloc(sizeof(MRA_ADDR_LIST_ITEM)*dwAllocatedCount);
 @@ -130,10 +130,10 @@ DWORD MraAddrListGetFromBuff(const CMStringA &szAddresses, MRA_ADDR_LIST *pmalAd  		*lpszDelimiter = 0;
  		pmalAddrList->pMailAddress[pmalAddrList->dwAddrCount].dwAddr = inet_addr(lpszCurrentItem);
 -		pmalAddrList->pMailAddress[pmalAddrList->dwAddrCount].dwPort = StrToUNum32((lpszDelimiter+1), (lpszEndItem-(lpszDelimiter+1)));
 +		pmalAddrList->pMailAddress[pmalAddrList->dwAddrCount].dwPort = StrToUNum32((lpszDelimiter + 1), (lpszEndItem - (lpszDelimiter + 1)));
  		*lpszDelimiter = ':';
  		pmalAddrList->dwAddrCount++;
 -		lpszCurrentItem = lpszEndItem+1;
 +		lpszCurrentItem = lpszEndItem + 1;
  		if (lpszEndItem == buf + szAddresses.GetLength())
  			break;
 @@ -185,16 +185,15 @@ bool DB_GetStaticStringA(HANDLE hContact, LPCSTR lpszModule, LPCSTR lpszValueNam  {
  	bool bRet = false;
  	size_t dwReadedStringLen, dwRetBuffSizeLocal;
 -	DBVARIANT dbv = {0};
 -	if (db_get_ws(hContact, lpszModule, lpszValueName, &dbv) == 0)
 -	{
 +	DBVARIANT dbv = { 0 };
 +	if (db_get_ws(hContact, lpszModule, lpszValueName, &dbv) == 0) {
  		dwReadedStringLen = lstrlenW(dbv.pwszVal);
 -		if (lpszRetBuff && (dwRetBuffSize>dwReadedStringLen))
 -		{
 +		if (lpszRetBuff && (dwRetBuffSize > dwReadedStringLen)) {
  			dwRetBuffSizeLocal = WideCharToMultiByte(MRA_CODE_PAGE, 0, dbv.pwszVal, dwReadedStringLen, lpszRetBuff, dwRetBuffSize, NULL, NULL);
 -			(*((CHAR*)(lpszRetBuff+dwRetBuffSizeLocal))) = 0;
 +			(*((CHAR*)(lpszRetBuff + dwRetBuffSizeLocal))) = 0;
  			bRet = true;
 -		}else {
 +		}
 +		else {
  			dwRetBuffSizeLocal = dwReadedStringLen;
  			if (lpszRetBuff && dwRetBuffSize >= sizeof(WORD)) (*((WORD*)lpszRetBuff)) = 0;
  		}
 @@ -214,16 +213,15 @@ bool DB_GetStaticStringW(HANDLE hContact, LPCSTR lpszModule, LPCSTR lpszValueNam  {
  	bool bRet = false;
  	size_t dwReadedStringLen;
 -	DBVARIANT dbv = {0};
 -	if (db_get_ws(hContact, lpszModule, lpszValueName, &dbv) == 0)
 -	{
 +	DBVARIANT dbv = { 0 };
 +	if (db_get_ws(hContact, lpszModule, lpszValueName, &dbv) == 0) {
  		dwReadedStringLen = lstrlenW(dbv.pwszVal);
 -		if (lpwszRetBuff && (dwRetBuffSize>dwReadedStringLen))
 -		{
 +		if (lpwszRetBuff && (dwRetBuffSize > dwReadedStringLen)) {
  			memmove(lpwszRetBuff, dbv.pszVal, (dwReadedStringLen*sizeof(WCHAR)));//include null terminated
 -			(*((WCHAR*)(lpwszRetBuff+dwReadedStringLen))) = 0;
 +			(*((WCHAR*)(lpwszRetBuff + dwReadedStringLen))) = 0;
  			bRet = true;
 -		}else {
 +		}
 +		else {
  			if (lpwszRetBuff && dwRetBuffSize >= sizeof(WCHAR)) (*((WCHAR*)lpwszRetBuff)) = 0;
  		}
  		if (pdwRetBuffSize) (*pdwRetBuffSize) = dwReadedStringLen;
 @@ -245,7 +243,7 @@ bool DB_GetStringA(HANDLE hContact, LPCSTR lpszModule, LPCSTR lpszValueName, CMS  		mir_free(szRes);
  		return true;
  	}
 -	
 +
  	res.Empty();
  	return false;
  }
 @@ -259,7 +257,7 @@ bool DB_GetStringW(HANDLE hContact, LPCSTR lpszModule, LPCSTR lpszValueName, CMS  		mir_free(szRes);
  		return true;
  	}
 -	
 +
  	res.Empty();
  	return false;
  }
 @@ -309,20 +307,20 @@ DWORD CMraProto::MraMoveContactToGroup(HANDLE hContact, DWORD dwGroupID, LPCTSTR  {
  	MraGroupItem *p = NULL;
 -	for (int i=0; i < m_groups.getCount(); i++)
 -		if (m_groups[i].m_name == ptszName) {
 -			p = &m_groups[i];
 -			break;
 -		}
 +	for (int i = 0; i < m_groups.getCount(); i++)
 +	if (m_groups[i].m_name == ptszName) {
 +		p = &m_groups[i];
 +		break;
 +	}
  	if (p == NULL) {
  		if (m_groups.getCount() == 20)
  			return 0;
  		DWORD id;
 -		for (id=0; id < 20; id++)
 -			if (m_groups.find((MraGroupItem*)&id) == NULL)
 -				break;
 +		for (id = 0; id < 20; id++)
 +		if (m_groups.find((MraGroupItem*)&id) == NULL)
 +			break;
  		DWORD dwContactFlags = CONTACT_FLAG_UNICODE_NAME | CONTACT_FLAG_GROUP | (id << 24);
  		p = new MraGroupItem(id, dwContactFlags, ptszName);
 @@ -343,13 +341,13 @@ DWORD CMraProto::GetContactFlags(HANDLE hContact)  	if (IsContactMra(hContact)) {
  		dwRet = getDword(hContact, "ContactFlags", 0);
 -		dwRet &= ~(CONTACT_FLAG_REMOVED|CONTACT_FLAG_GROUP|CONTACT_FLAG_INVISIBLE|CONTACT_FLAG_VISIBLE|CONTACT_FLAG_IGNORE|CONTACT_FLAG_SHADOW|CONTACT_FLAG_MULTICHAT);
 +		dwRet &= ~(CONTACT_FLAG_REMOVED | CONTACT_FLAG_GROUP | CONTACT_FLAG_INVISIBLE | CONTACT_FLAG_VISIBLE | CONTACT_FLAG_IGNORE | CONTACT_FLAG_SHADOW | CONTACT_FLAG_MULTICHAT);
  		dwRet |= CONTACT_FLAG_UNICODE_NAME;
  		CMStringA szEmail;
  		if (mraGetStringA(hContact, "e-mail", szEmail))
 -			if (IsEMailChatAgent(szEmail))
 -				dwRet |= CONTACT_FLAG_MULTICHAT;
 +		if (IsEMailChatAgent(szEmail))
 +			dwRet |= CONTACT_FLAG_MULTICHAT;
  		if (db_get_b(hContact, "CList", "Hidden", 0))
  			dwRet |= CONTACT_FLAG_SHADOW;
 @@ -370,7 +368,7 @@ DWORD CMraProto::GetContactFlags(HANDLE hContact)  DWORD CMraProto::SetContactFlags(HANDLE hContact, DWORD dwContactFlag)
  {
 -	if ( !IsContactMra(hContact))
 +	if (!IsContactMra(hContact))
  		return ERROR_INVALID_HANDLE;
  	setDword(hContact, "ContactFlags", dwContactFlag);
 @@ -380,7 +378,7 @@ DWORD CMraProto::SetContactFlags(HANDLE hContact, DWORD dwContactFlag)  	else
  		db_unset(hContact, "CList", "Hidden");
 -	switch (dwContactFlag & (CONTACT_FLAG_INVISIBLE|CONTACT_FLAG_VISIBLE)) {
 +	switch (dwContactFlag & (CONTACT_FLAG_INVISIBLE | CONTACT_FLAG_VISIBLE)) {
  	case CONTACT_FLAG_INVISIBLE:
  		setWord(hContact, "ApparentMode", ID_STATUS_OFFLINE);
  		break;
 @@ -402,7 +400,7 @@ DWORD CMraProto::SetContactFlags(HANDLE hContact, DWORD dwContactFlag)  DWORD CMraProto::GetContactBasicInfoW(HANDLE hContact, DWORD *pdwID, DWORD *pdwGroupID, DWORD *pdwContactFlag, DWORD *pdwContactSeverFlags, DWORD *pdwStatus, CMStringA *szEmail, CMStringW *wszNick, CMStringA *szPhones)
  {
 -	if ( !IsContactMra(hContact))
 +	if (!IsContactMra(hContact))
  		return ERROR_INVALID_HANDLE;
  	if (pdwID)
 @@ -426,7 +424,7 @@ DWORD CMraProto::GetContactBasicInfoW(HANDLE hContact, DWORD *pdwID, DWORD *pdwG  		for (int i = 0; i < 3; i++) {
  			char szValue[50];
  			mir_snprintf(szValue, SIZEOF(szValue), "MyPhone%d", i);
 -			if ( DB_GetStringA(hContact, "UserInfo", szValue, szPhone)) {
 +			if (DB_GetStringA(hContact, "UserInfo", szValue, szPhone)) {
  				if (szPhones->GetLength())
  					szPhones->AppendChar(',');
  				szPhones->Append(szPhone);
 @@ -438,7 +436,7 @@ DWORD CMraProto::GetContactBasicInfoW(HANDLE hContact, DWORD *pdwID, DWORD *pdwG  DWORD CMraProto::SetContactBasicInfoW(HANDLE hContact, DWORD dwSetInfoFlags, DWORD dwFlags, DWORD dwID, DWORD dwGroupID, DWORD dwContactFlag, DWORD dwContactSeverFlags, DWORD dwStatus, const CMStringA *szEmail, const CMStringW *wszNick, const CMStringA *szPhones)
  {
 -	if ( !IsContactMra(hContact))
 +	if (!IsContactMra(hContact))
  		return ERROR_INVALID_HANDLE;
  	// LOCK
 @@ -500,7 +498,7 @@ DWORD CMraProto::SetContactBasicInfoW(HANDLE hContact, DWORD dwSetInfoFlags, DWO  HANDLE CMraProto::MraHContactFromEmail(const CMStringA& szEmail, BOOL bAddIfNeeded, BOOL bTemporary, BOOL *pbAdded)
  {
 -	if ( szEmail.IsEmpty())
 +	if (szEmail.IsEmpty())
  		return NULL;
  	HANDLE hContact = NULL;
 @@ -509,13 +507,13 @@ HANDLE CMraProto::MraHContactFromEmail(const CMStringA& szEmail, BOOL bAddIfNeed  	//check not already on list
  	CMStringA szEMailLocal;
  	for (hContact = db_find_first(m_szModuleName); hContact; hContact = db_find_next(hContact, m_szModuleName))
 -		if (mraGetStringA(hContact, "e-mail", szEMailLocal))
 -			if (szEMailLocal == szEmail) {
 -				if (bTemporary == FALSE)
 -					db_unset(hContact, "CList", "NotOnList");
 -				bFound = true;
 -				break;
 -			}
 +	if (mraGetStringA(hContact, "e-mail", szEMailLocal))
 +	if (szEMailLocal == szEmail) {
 +		if (bTemporary == FALSE)
 +			db_unset(hContact, "CList", "NotOnList");
 +		bFound = true;
 +		break;
 +	}
  	if (!bFound && bAddIfNeeded) {
  		//not already there: add
 @@ -572,7 +570,7 @@ bool CMraProto::MraUpdateContactInfo(HANDLE hContact)  		CMStringA szEmail;
  		if (mraGetStringA(hContact, "e-mail", szEmail)) {
  			MraAvatarsQueueGetAvatarSimple(hAvatarsQueueHandle, GAIF_FORCE, hContact, 0);
 -			if ( MraWPRequestByEMail(hContact, ACKTYPE_GETINFO, szEmail))
 +			if (MraWPRequestByEMail(hContact, ACKTYPE_GETINFO, szEmail))
  				return true;
  		}
  	}
 @@ -648,9 +646,9 @@ void CMraProto::MraUpdateEmailStatus(const CMStringA &pszFrom, const CMStringA &  		mir_sntprintf(szMailBoxStatus, SIZEOF(szMailBoxStatus), TranslateT("Unread mail is available: %lu/%lu messages"), m_dwEmailMessagesUnread, dwEmailMessagesTotal);
 -		if ( !pszFrom.IsEmpty() || !pszSubject.IsEmpty()) {
 +		if (!pszFrom.IsEmpty() || !pszSubject.IsEmpty()) {
  			CMStringA szFrom, szSubject;
 -			if ( GetEMailFromString(szFrom, szEmail))
 +			if (GetEMailFromString(szFrom, szEmail))
  				hContact = MraHContactFromEmail(szEmail, FALSE, TRUE, NULL);
  			mir_sntprintf(szStatusText, SIZEOF(szStatusText), TranslateT("From: %S\r\nSubject: %S\r\n%s"), pszFrom.c_str(), szSubject.c_str(), szMailBoxStatus);
 @@ -659,21 +657,20 @@ void CMraProto::MraUpdateEmailStatus(const CMStringA &pszFrom, const CMStringA &  		if (bTrayIconNewMailNotify) {
  			char szServiceFunction[MAX_PATH], *pszServiceFunctionName;
 -			CLISTEVENT cle = {0};
 +			CLISTEVENT cle = { 0 };
  			cle.cbSize = sizeof(cle);
  			//cle.hContact;
  			//cle.hDbEvent;
  			cle.lpszProtocol = m_szModuleName;
  			cle.hIcon = IconLibGetIcon(gdiMenuItems[0].hIcolib);
 -			cle.flags = (CLEF_UNICODE|CLEF_PROTOCOLGLOBAL);
 +			cle.flags = (CLEF_UNICODE | CLEF_PROTOCOLGLOBAL);
  			cle.pszService = "";
  			cle.ptszTooltip = szStatusText;
 -			if (getByte("TrayIconNewMailClkToInbox", MRA_DEFAULT_TRAYICON_NEW_MAIL_CLK_TO_INBOX))
 -			{
 +			if (getByte("TrayIconNewMailClkToInbox", MRA_DEFAULT_TRAYICON_NEW_MAIL_CLK_TO_INBOX)) {
  				strncpy(szServiceFunction, m_szModuleName, MAX_PATH);
 -				pszServiceFunctionName = szServiceFunction+strlen(m_szModuleName);
 +				pszServiceFunctionName = szServiceFunction + strlen(m_szModuleName);
  				memmove(pszServiceFunctionName, MRA_GOTO_INBOX, sizeof(MRA_GOTO_INBOX));
  				cle.pszService = szServiceFunction;
  			}
 @@ -681,20 +678,20 @@ void CMraProto::MraUpdateEmailStatus(const CMStringA &pszFrom, const CMStringA &  		}
  		SkinPlaySound(szNewMailSound);
 -		if (hContact)
 -		{// update user info
 +		if (hContact) {// update user info
  			MraUpdateContactInfo(hContact);
  			MraPopupShowFromContactW(hContact, MRA_POPUP_TYPE_EMAIL_STATUS, (MRA_POPUP_ALLOW_ENTER), szStatusText);
 -		}else {
 -			MraPopupShowFromAgentW(MRA_POPUP_TYPE_EMAIL_STATUS, (MRA_POPUP_ALLOW_ENTER), szStatusText);
  		}
 -	}else {
 -		if (getByte("IncrementalNewMailNotify", MRA_DEFAULT_INC_NEW_MAIL_NOTIFY))
 -		{
 -			if (bTrayIconNewMailNotify) CallService(MS_CLIST_REMOVEEVENT, 0, (LPARAM)m_szModuleName);
 +		else MraPopupShowFromAgentW(MRA_POPUP_TYPE_EMAIL_STATUS, (MRA_POPUP_ALLOW_ENTER), szStatusText);
 +	}
 +	else {
 +		if (getByte("IncrementalNewMailNotify", MRA_DEFAULT_INC_NEW_MAIL_NOTIFY)) {
 +			if (bTrayIconNewMailNotify)
 +				CallService(MS_CLIST_REMOVEEVENT, 0, (LPARAM)m_szModuleName);
  			PUDeletePopup(hWndEMailPopupStatus);
  			hWndEMailPopupStatus = NULL;
 -		}else {
 +		}
 +		else {
  			mir_sntprintf(szStatusText, SIZEOF(szStatusText), TranslateT("No unread mail is available\r\nTotal messages: %lu"), dwEmailMessagesTotal);
  			MraPopupShowFromAgentW(MRA_POPUP_TYPE_EMAIL_STATUS, (MRA_POPUP_ALLOW_ENTER), szStatusText);
  		}
 @@ -705,8 +702,8 @@ bool IsHTTPSProxyUsed(HANDLE m_hNetlibUser)  {
  	NETLIBUSERSETTINGS nlus = { sizeof(nlus) };
  	if (CallService(MS_NETLIB_GETUSERSETTINGS, (WPARAM)m_hNetlibUser, (LPARAM)&nlus))
 -		if (nlus.useProxy && nlus.proxyType == PROXYTYPE_HTTPS)
 -			return true;
 +	if (nlus.useProxy && nlus.proxyType == PROXYTYPE_HTTPS)
 +		return true;
  	return false;
  }
 @@ -723,8 +720,8 @@ bool IsContactMraProto(HANDLE hContact)  	LPSTR lpszProto = GetContactProto(hContact);
  	if (lpszProto) {
  		CMStringW szBuff;
 -		if ( DB_GetStringW(hContact, lpszProto, "AvatarLastCheckTime", szBuff))
 -		if ( DB_GetStringW(hContact, lpszProto, "AvatarLastModifiedTime", szBuff))
 +		if (DB_GetStringW(hContact, lpszProto, "AvatarLastCheckTime", szBuff))
 +		if (DB_GetStringW(hContact, lpszProto, "AvatarLastModifiedTime", szBuff))
  			return true;
  	}
  	return false;
 @@ -748,7 +745,7 @@ bool CMraProto::IsEMailChatAgent(const CMStringA &szEmail)  {
  	if (!szEmail.IsEmpty()) {
  		CMStringA domain = szEmail.Right(sizeof(MAILRU_CHAT_CONF_DOMAIN));
 -		if (domain[0] == '@' && _stricmp(domain.c_str()+1, MAILRU_CHAT_CONF_DOMAIN))
 +		if (domain[0] == '@' && _stricmp(domain.c_str() + 1, MAILRU_CHAT_CONF_DOMAIN))
  			return true;
  	}
  	return false;
 @@ -769,8 +766,8 @@ bool IsEMailMR(const CMStringA &szEmail)  		for (int i = 0; lpcszMailRuDomains[i]; i++) {
  			int dwDomainLen = lstrlenA(lpcszMailRuDomains[i]);
  			if (dwDomainLen < szEmail.GetLength())
 -			if (!_stricmp(lpcszMailRuDomains[i], szEmail.c_str()+szEmail.GetLength()-dwDomainLen))
 -			if (szEmail[szEmail.GetLength()-dwDomainLen-1] == '@')
 +			if (!_stricmp(lpcszMailRuDomains[i], szEmail.c_str() + szEmail.GetLength() - dwDomainLen))
 +			if (szEmail[szEmail.GetLength() - dwDomainLen - 1] == '@')
  				return true;
  		}
  	}
 @@ -784,7 +781,7 @@ bool GetEMailFromString(const CMStringA& szBuff, CMStringA& szEmail)  		if ((Start = szBuff.Find('<')) != -1) {
  			Start++;
  			if ((End = szBuff.Find('>', Start)) != -1) {
 -				szEmail = szBuff.Mid(Start, End-Start-1);
 +				szEmail = szBuff.Mid(Start, End - Start - 1);
  				return true;
  			}
  		}
 @@ -799,11 +796,11 @@ DWORD GetContactEMailCountParam(HANDLE hContact, BOOL bMRAOnly, LPSTR lpszModule  	DWORD dwRet = 0;
  	CMStringA szEmail;
 -	if ( DB_GetStringA(hContact, lpszModule, lpszValueName, szEmail))
 +	if (DB_GetStringA(hContact, lpszModule, lpszValueName, szEmail))
  		if (bMRAOnly == FALSE || IsEMailMR(szEmail))
  			dwRet++;
 -	for (int i=0; TRUE; i++) {
 +	for (int i = 0; TRUE; i++) {
  		char szBuff[100];
  		mir_snprintf(szBuff, SIZEOF(szBuff), "%s%lu", lpszValueName, i);
  		if (DB_GetStringA(hContact, lpszModule, szBuff, szEmail)) {
 @@ -835,22 +832,22 @@ bool GetContactFirstEMailParam(HANDLE hContact, BOOL bMRAOnly, LPSTR lpszModule,  {
  	CMStringA szEmail;
 -	if ( DB_GetStringA(hContact, lpszModule, lpszValueName, szEmail))
 -		if (bMRAOnly == FALSE || IsEMailMR(szEmail)) {
 -			res = szEmail;
 -			return true;
 -		}
 +	if (DB_GetStringA(hContact, lpszModule, lpszValueName, szEmail))
 +	if (bMRAOnly == FALSE || IsEMailMR(szEmail)) {
 +		res = szEmail;
 +		return true;
 +	}
  	for (int i = 0; true; i++) {
  		char szBuff[100];
  		mir_snprintf(szBuff, SIZEOF(szBuff), "%s%lu", lpszValueName, i);
 -		if ( DB_GetStringA(hContact, lpszModule, szBuff, szEmail)) {
 +		if (DB_GetStringA(hContact, lpszModule, szBuff, szEmail)) {
  			if (bMRAOnly == FALSE || IsEMailMR(szEmail)) {
  				res = szEmail;
  				return true;
  			}
  		}
 -		else if (i>EMAILS_MIN_COUNT)
 +		else if (i > EMAILS_MIN_COUNT)
  			break;
  	}
  	return false;
 @@ -878,7 +875,7 @@ void CMraProto::ShowFormattedErrorMessage(LPWSTR lpwszErrText, DWORD dwErrorCode  	if (dwErrorCode == NO_ERROR)
  		mir_sntprintf(szErrorText, SIZEOF(szErrorText), _T("%s"), TranslateTS(lpwszErrText));
  	else {
 -		dwErrDescriptionSize = (FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, dwErrorCode, 0, szErrDescription, (SIZEOF(szErrDescription)-sizeof(WCHAR)), NULL)-2);
 +		dwErrDescriptionSize = (FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, dwErrorCode, 0, szErrDescription, (SIZEOF(szErrDescription) - sizeof(WCHAR)), NULL) - 2);
  		szErrDescription[dwErrDescriptionSize] = 0;
  		mir_sntprintf(szErrorText, SIZEOF(szErrorText), _T("%s %lu: %s"), TranslateTS(lpwszErrText), dwErrorCode, szErrDescription);
  	}
 @@ -936,8 +933,8 @@ CMStringA CopyNumber(const CMStringA &str)  	CMStringA res;
  	for (LPCSTR p = str; *p; p++)
 -		if (*p >= '0' && *p <= '9')
 -			res.AppendChar(*p);
 +	if (*p >= '0' && *p <= '9')
 +		res.AppendChar(*p);
  	return res;
  }
 @@ -988,14 +985,14 @@ INT_PTR CALLBACK SetXStatusDlgProc(HWND hWndDlg, UINT message, WPARAM wParam, LP  			dat->hDlgIcon = IconLibGetIcon(hXStatusAdvancedStatusIcons[dat->dwXStatus]);
  			dat->dwCountdown = 5;
 -			mir_subclassWindow( GetDlgItem(hWndDlg, IDC_XTITLE), MessageEditSubclassProc);
 -			mir_subclassWindow( GetDlgItem(hWndDlg, IDC_XMSG),   MessageEditSubclassProc);
 +			mir_subclassWindow(GetDlgItem(hWndDlg, IDC_XTITLE), MessageEditSubclassProc);
 +			mir_subclassWindow(GetDlgItem(hWndDlg, IDC_XMSG), MessageEditSubclassProc);
  			SetWindowLongPtr(hWndDlg, GWLP_USERDATA, (LONG_PTR)dat);
  			SendDlgItemMessage(hWndDlg, IDC_XTITLE, EM_LIMITTEXT, STATUS_TITLE_MAX, 0);
  			SendDlgItemMessage(hWndDlg, IDC_XMSG, EM_LIMITTEXT, STATUS_DESC_MAX, 0);
  			SendMessage(hWndDlg, WM_SETICON, ICON_BIG, (LPARAM)dat->hDlgIcon);
 -			SetWindowText(hWndDlg,TranslateTS(lpcszXStatusNameDef[dat->dwXStatus]));
 +			SetWindowText(hWndDlg, TranslateTS(lpcszXStatusNameDef[dat->dwXStatus]));
  			mir_snprintf(szValueName, SIZEOF(szValueName), "XStatus%ldName", dat->dwXStatus);
  			if (dat->ppro->mraGetStringW(NULL, szValueName, szBuff))
 @@ -1054,17 +1051,17 @@ INT_PTR CALLBACK SetXStatusDlgProc(HWND hWndDlg, UINT message, WPARAM wParam, LP  			SetWindowLongPtr(hWndEdit, GWLP_WNDPROC, (LONG_PTR)OldMessageEditProc);
  			SetWindowLongPtr(hWndEdit, GWLP_USERDATA, 0);
 -			TCHAR szBuff[STATUS_TITLE_MAX+STATUS_DESC_MAX];
 -			DWORD dwBuffSize = GetDlgItemText(hWndDlg, IDC_XMSG, szBuff, STATUS_DESC_MAX+1);
 +			TCHAR szBuff[STATUS_TITLE_MAX + STATUS_DESC_MAX];
 +			DWORD dwBuffSize = GetDlgItemText(hWndDlg, IDC_XMSG, szBuff, STATUS_DESC_MAX + 1);
  			char szValueName[MAX_PATH];
  			mir_snprintf(szValueName, SIZEOF(szValueName), "XStatus%ldMsg", dat->dwXStatus);
  			dat->ppro->mraSetStringExW(NULL, szValueName, szBuff);
  			dat->ppro->mraSetStringExW(NULL, DBSETTING_XSTATUSMSG, szBuff);
 -			dwBuffSize = GetDlgItemText(hWndDlg, IDC_XTITLE, szBuff, (STATUS_TITLE_MAX+1));
 +			dwBuffSize = GetDlgItemText(hWndDlg, IDC_XTITLE, szBuff, (STATUS_TITLE_MAX + 1));
  			if (dwBuffSize == 0) { // user delete all text
 -				lstrcpyn(szBuff, TranslateTS(lpcszXStatusNameDef[dat->dwXStatus]), (STATUS_TITLE_MAX+1));
 +				lstrcpyn(szBuff, TranslateTS(lpcszXStatusNameDef[dat->dwXStatus]), (STATUS_TITLE_MAX + 1));
  				dwBuffSize = lstrlenW(szBuff);
  			}
  			mir_snprintf(szValueName, SIZEOF(szValueName), "XStatus%dName", dat->dwXStatus);
 @@ -1072,7 +1069,7 @@ INT_PTR CALLBACK SetXStatusDlgProc(HWND hWndDlg, UINT message, WPARAM wParam, LP  			dat->ppro->mraSetStringExW(NULL, DBSETTING_XSTATUSNAME, szBuff);
  			CLISTMENUITEM mi = { sizeof(mi) };
 -			mi.flags = (CMIM_NAME|CMIF_UNICODE);
 +			mi.flags = (CMIM_NAME | CMIF_UNICODE);
  			mi.ptszName = szBuff;
  			Menu_ModifyItem(dat->ppro->hXStatusMenuItems[dat->dwXStatus], &mi);
 @@ -1088,7 +1085,7 @@ INT_PTR CALLBACK SetXStatusDlgProc(HWND hWndDlg, UINT message, WPARAM wParam, LP  bool CMraProto::MraRequestXStatusDetails(DWORD dwXStatus)
  {
 -	if ( IsXStatusValid(dwXStatus)) {
 +	if (IsXStatusValid(dwXStatus)) {
  		SetXStatusData *dat = (SetXStatusData*)mir_calloc(sizeof(SetXStatusData));
  		dat->dwXStatus = dwXStatus;
  		dat->ppro = this;
 @@ -1106,12 +1103,12 @@ INT_PTR CALLBACK SendReplyBlogStatusDlgProc(HWND hWndDlg, UINT message, WPARAM w  	SetBlogStatusData *dat = (SetBlogStatusData*)GetWindowLongPtr(hWndDlg, GWLP_USERDATA);
  	switch (message) {
 -    case WM_INITDIALOG:// set our xStatus
 +	case WM_INITDIALOG:// set our xStatus
  		TranslateDialogDefault(hWndDlg);
  		dat = (SetBlogStatusData*)lParam;
  		if (dat) {
 -			SYSTEMTIME stBlogStatusTime = {0};
 +			SYSTEMTIME stBlogStatusTime = { 0 };
  			SetWindowLongPtr(hWndDlg, GWLP_USERDATA, (LONG_PTR)dat);
 @@ -1129,15 +1126,15 @@ INT_PTR CALLBACK SendReplyBlogStatusDlgProc(HWND hWndDlg, UINT message, WPARAM w  			// reply to some user blog
  			if (dat->hContact) {
 -				szBuff.Format( TranslateT("Reply to %s blog status"), GetContactNameW(dat->hContact));
 -				SetWindowText(hWndDlg,szBuff.c_str());
 +				szBuff.Format(TranslateT("Reply to %s blog status"), GetContactNameW(dat->hContact));
 +				SetWindowText(hWndDlg, szBuff.c_str());
  			}
  			else SetWindowText(hWndDlg, TranslateT("Set my blog status"));
  			DWORD dwTime = dat->ppro->getDword(dat->hContact, DBSETTING_BLOGSTATUSTIME, 0);
  			if (dwTime && MakeLocalSystemTimeFromTime32(dwTime, &stBlogStatusTime))
  				szBuff.Format(_T("%s: %04ld.%02ld.%02ld %02ld:%02ld"), TranslateT("Written"),
 -					stBlogStatusTime.wYear, stBlogStatusTime.wMonth, stBlogStatusTime.wDay, stBlogStatusTime.wHour, stBlogStatusTime.wMinute);
 +				stBlogStatusTime.wYear, stBlogStatusTime.wMonth, stBlogStatusTime.wDay, stBlogStatusTime.wHour, stBlogStatusTime.wMinute);
  			else
  				szBuff.Empty();
 @@ -1147,71 +1144,71 @@ INT_PTR CALLBACK SendReplyBlogStatusDlgProc(HWND hWndDlg, UINT message, WPARAM w  		}
  		break;
 -	 case WM_CLOSE:
 -		 DestroyWindow(hWndDlg);
 -		 break;
 -
 -	 case WM_COMMAND:
 -		 switch (LOWORD(wParam)) {
 -		 case IDOK:
 -			 {
 -				 DWORD dwFlags;
 -				 DWORDLONG dwBlogStatusID;
 -
 -				 TCHAR szBuff[MICBLOG_STATUS_MAX];
 -				 size_t dwBuffSize = GetDlgItemText(hWndDlg, IDC_MSG_TO_SEND, szBuff, SIZEOF(szBuff));
 -				 if (dat->hContact) {
 -					 dwFlags = (MRIM_BLOG_STATUS_REPLY|MRIM_BLOG_STATUS_NOTIFY);
 -					 
 -					 DBVARIANT dbv;
 -					 dbv.type = DBVT_BLOB;
 -					 dbv.pbVal = (PBYTE)&dwBlogStatusID;
 -					 dbv.cpbVal = sizeof(DWORDLONG);
 -					 db_get(dat->hContact, dat->ppro->m_szModuleName, DBSETTING_BLOGSTATUSID, &dbv);
 -				 }
 -				 else {
 -					 dwFlags = MRIM_BLOG_STATUS_UPDATE;
 -					 if (IsDlgButtonChecked(hWndDlg, IDC_CHK_NOTIFY)) dwFlags |= MRIM_BLOG_STATUS_NOTIFY;
 -					 dwBlogStatusID = 0;
 -				 }
 -				 dat->ppro->MraChangeUserBlogStatus(dwFlags, szBuff, dwBlogStatusID);
 -			 }
 -		 case IDCANCEL:
 -			 DestroyWindow(hWndDlg);
 -			 break;
 -
 -		 case IDC_MSG_TO_SEND:
 -			 if (HIWORD(wParam) == EN_CHANGE) {
 -				 TCHAR tszBuff[MAX_PATH];
 -				 size_t dwMessageSize = GetWindowTextLength(GetDlgItem(hWndDlg, IDC_MSG_TO_SEND));
 -
 -				 EnableWindow(GetDlgItem(hWndDlg, IDOK), dwMessageSize);
 -				 mir_sntprintf(tszBuff, SIZEOF(tszBuff), _T("%d/%d"), dwMessageSize, MICBLOG_STATUS_MAX);
 -				 SetDlgItemText(hWndDlg, IDC_STATIC_CHARS_COUNTER, tszBuff);
 -			 }
 -			 break;
 -		 }
 -		 break;
 -
 -	 case WM_DESTROY:
 -		 if (dat) {
 -			 SetWindowLongPtr(hWndDlg, GWLP_USERDATA, (LONG_PTR)0);
 -
 -			 HWND hWndEdit = GetDlgItem(hWndDlg, IDC_MSG_TO_SEND);
 -			 WNDPROC OldMessageEditProc = (WNDPROC)GetWindowLongPtr(hWndEdit, GWLP_USERDATA);
 -			 SetWindowLongPtr(hWndEdit, GWLP_WNDPROC, (LONG_PTR)OldMessageEditProc);
 -			 SetWindowLongPtr(hWndEdit, GWLP_USERDATA, (LONG_PTR)0);
 -			 mir_free(dat);
 -		 }
 -		 EndDialog(hWndDlg, NO_ERROR);
 -		 break;
 +	case WM_CLOSE:
 +		DestroyWindow(hWndDlg);
 +		break;
 +
 +	case WM_COMMAND:
 +		switch (LOWORD(wParam)) {
 +		case IDOK:
 +			{
 +				DWORD dwFlags;
 +				DWORDLONG dwBlogStatusID;
 +
 +				TCHAR szBuff[MICBLOG_STATUS_MAX];
 +				size_t dwBuffSize = GetDlgItemText(hWndDlg, IDC_MSG_TO_SEND, szBuff, SIZEOF(szBuff));
 +				if (dat->hContact) {
 +					dwFlags = (MRIM_BLOG_STATUS_REPLY | MRIM_BLOG_STATUS_NOTIFY);
 +
 +					DBVARIANT dbv;
 +					dbv.type = DBVT_BLOB;
 +					dbv.pbVal = (PBYTE)&dwBlogStatusID;
 +					dbv.cpbVal = sizeof(DWORDLONG);
 +					db_get(dat->hContact, dat->ppro->m_szModuleName, DBSETTING_BLOGSTATUSID, &dbv);
 +				}
 +				else {
 +					dwFlags = MRIM_BLOG_STATUS_UPDATE;
 +					if (IsDlgButtonChecked(hWndDlg, IDC_CHK_NOTIFY)) dwFlags |= MRIM_BLOG_STATUS_NOTIFY;
 +					dwBlogStatusID = 0;
 +				}
 +				dat->ppro->MraChangeUserBlogStatus(dwFlags, szBuff, dwBlogStatusID);
 +			}
 +		case IDCANCEL:
 +			DestroyWindow(hWndDlg);
 +			break;
 +
 +		case IDC_MSG_TO_SEND:
 +			if (HIWORD(wParam) == EN_CHANGE) {
 +				TCHAR tszBuff[MAX_PATH];
 +				size_t dwMessageSize = GetWindowTextLength(GetDlgItem(hWndDlg, IDC_MSG_TO_SEND));
 +
 +				EnableWindow(GetDlgItem(hWndDlg, IDOK), dwMessageSize);
 +				mir_sntprintf(tszBuff, SIZEOF(tszBuff), _T("%d/%d"), dwMessageSize, MICBLOG_STATUS_MAX);
 +				SetDlgItemText(hWndDlg, IDC_STATIC_CHARS_COUNTER, tszBuff);
 +			}
 +			break;
 +		}
 +		break;
 +
 +	case WM_DESTROY:
 +		if (dat) {
 +			SetWindowLongPtr(hWndDlg, GWLP_USERDATA, (LONG_PTR)0);
 +
 +			HWND hWndEdit = GetDlgItem(hWndDlg, IDC_MSG_TO_SEND);
 +			WNDPROC OldMessageEditProc = (WNDPROC)GetWindowLongPtr(hWndEdit, GWLP_USERDATA);
 +			SetWindowLongPtr(hWndEdit, GWLP_WNDPROC, (LONG_PTR)OldMessageEditProc);
 +			SetWindowLongPtr(hWndEdit, GWLP_USERDATA, (LONG_PTR)0);
 +			mir_free(dat);
 +		}
 +		EndDialog(hWndDlg, NO_ERROR);
 +		break;
  	}
  	return iRet;
  }
  bool CMraProto::MraSendReplyBlogStatus(HANDLE hContact)
  {
 -	SetBlogStatusData* dat = (SetBlogStatusData*)mir_calloc( sizeof(SetBlogStatusData));
 +	SetBlogStatusData* dat = (SetBlogStatusData*)mir_calloc(sizeof(SetBlogStatusData));
  	dat->ppro = this;
  	dat->hContact = hContact;
  	return CreateDialogParam(g_hInstance, MAKEINTRESOURCE(IDD_MINIBLOG), NULL, SendReplyBlogStatusDlgProc, (LPARAM)dat) != NULL;
 @@ -1228,15 +1225,15 @@ DWORD GetYears(CONST PSYSTEMTIME pcstSystemTime)  		GetLocalTime(&stTime);
  		dwRet = stTime.wYear - pcstSystemTime->wYear;
  		// день рожденья будет в след месяце
 -		if (stTime.wMonth<pcstSystemTime->wMonth)
 +		if (stTime.wMonth < pcstSystemTime->wMonth)
  			dwRet--;
  		// др ещё будет в этом месяце или уже был...
  		else {
  			// др в этом месяце
  			if (stTime.wMonth == pcstSystemTime->wMonth)
  				// ещё только будет, не сегодня
 -				if (stTime.wDay<pcstSystemTime->wDay)
 -					dwRet--;
 +			if (stTime.wDay < pcstSystemTime->wDay)
 +				dwRet--;
  		}
  	}
  	return dwRet;
 @@ -1262,7 +1259,7 @@ DWORD FindFile(LPWSTR lpszFolder, DWORD dwFolderLen, LPWSTR lpszFileName, DWORD  		if (prdsiItems) {
  			dwPathLen = dwFolderLen;
  			memmove(szPath, lpszFolder, (dwPathLen*sizeof(WCHAR)));
 -			if (szPath[(dwPathLen-1)] != '\\') {
 +			if (szPath[(dwPathLen - 1)] != '\\') {
  				szPath[dwPathLen] = '\\';
  				dwPathLen++;
  			}
 @@ -1274,14 +1271,14 @@ DWORD FindFile(LPWSTR lpszFolder, DWORD dwFolderLen, LPWSTR lpszFileName, DWORD  			if (prdsiItems[dwRecDeepCurPos].hFind != INVALID_HANDLE_VALUE) {
  				dwRetErrorCode = ERROR_FILE_NOT_FOUND;
  				do {
 -					dwPathLen-=prdsiItems[dwRecDeepCurPos].dwFileNameLen;
 +					dwPathLen -= prdsiItems[dwRecDeepCurPos].dwFileNameLen;
  					while (dwRetErrorCode == ERROR_FILE_NOT_FOUND && FindNextFile(prdsiItems[dwRecDeepCurPos].hFind, &prdsiItems[dwRecDeepCurPos].w32fdFindFileData)) {
  						if (prdsiItems[dwRecDeepCurPos].w32fdFindFileData.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY) {// folder
 -							if (CompareString( MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), NORM_IGNORECASE, prdsiItems[dwRecDeepCurPos].w32fdFindFileData.cFileName, -1, _T("."), 1) != CSTR_EQUAL)
 -							if (CompareString( MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), NORM_IGNORECASE, prdsiItems[dwRecDeepCurPos].w32fdFindFileData.cFileName, -1, _T(".."), 2) != CSTR_EQUAL) {
 -								prdsiItems[dwRecDeepCurPos].dwFileNameLen = (lstrlenW(prdsiItems[dwRecDeepCurPos].w32fdFindFileData.cFileName)+1);
 -								memmove((szPath+dwPathLen), prdsiItems[dwRecDeepCurPos].w32fdFindFileData.cFileName, (prdsiItems[dwRecDeepCurPos].dwFileNameLen*sizeof(WCHAR)));
 +							if (CompareString(MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), NORM_IGNORECASE, prdsiItems[dwRecDeepCurPos].w32fdFindFileData.cFileName, -1, _T("."), 1) != CSTR_EQUAL)
 +							if (CompareString(MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), NORM_IGNORECASE, prdsiItems[dwRecDeepCurPos].w32fdFindFileData.cFileName, -1, _T(".."), 2) != CSTR_EQUAL) {
 +								prdsiItems[dwRecDeepCurPos].dwFileNameLen = (lstrlenW(prdsiItems[dwRecDeepCurPos].w32fdFindFileData.cFileName) + 1);
 +								memmove((szPath + dwPathLen), prdsiItems[dwRecDeepCurPos].w32fdFindFileData.cFileName, (prdsiItems[dwRecDeepCurPos].dwFileNameLen*sizeof(WCHAR)));
  								lstrcat(szPath, _T("\\*.*"));
  								dwPathLen += prdsiItems[dwRecDeepCurPos].dwFileNameLen;
 @@ -1299,15 +1296,15 @@ DWORD FindFile(LPWSTR lpszFolder, DWORD dwFolderLen, LPWSTR lpszFileName, DWORD  							}
  						}
  						else {// file
 -							if (CompareString( MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), NORM_IGNORECASE, prdsiItems[dwRecDeepCurPos].w32fdFindFileData.cFileName, -1, lpszFileName, dwFileNameLen) == CSTR_EQUAL) {
 +							if (CompareString(MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), NORM_IGNORECASE, prdsiItems[dwRecDeepCurPos].w32fdFindFileData.cFileName, -1, lpszFileName, dwFileNameLen) == CSTR_EQUAL) {
  								prdsiItems[dwRecDeepCurPos].dwFileNameLen = lstrlenW(prdsiItems[dwRecDeepCurPos].w32fdFindFileData.cFileName);
 -								memmove((szPath+dwPathLen), prdsiItems[dwRecDeepCurPos].w32fdFindFileData.cFileName, ((prdsiItems[dwRecDeepCurPos].dwFileNameLen+1)*sizeof(WCHAR)));
 -								dwFilePathLen = (dwPathLen+prdsiItems[dwRecDeepCurPos].dwFileNameLen);
 +								memmove((szPath + dwPathLen), prdsiItems[dwRecDeepCurPos].w32fdFindFileData.cFileName, ((prdsiItems[dwRecDeepCurPos].dwFileNameLen + 1)*sizeof(WCHAR)));
 +								dwFilePathLen = (dwPathLen + prdsiItems[dwRecDeepCurPos].dwFileNameLen);
  								if (pdwRetFilePathLen) (*pdwRetFilePathLen) = dwFilePathLen;
  								if (lpszRetFilePathName && dwRetFilePathLen) {
  									dwFilePathLen = min(dwFilePathLen, dwRetFilePathLen);
 -									memmove(lpszRetFilePathName, szPath, ((dwFilePathLen+1)*sizeof(WCHAR)));
 +									memmove(lpszRetFilePathName, szPath, ((dwFilePathLen + 1)*sizeof(WCHAR)));
  								}
  								dwRetErrorCode = NO_ERROR;
 @@ -1318,7 +1315,7 @@ DWORD FindFile(LPWSTR lpszFolder, DWORD dwFolderLen, LPWSTR lpszFileName, DWORD  					if (prdsiItems) FindClose(prdsiItems[dwRecDeepCurPos].hFind);
  					dwRecDeepCurPos--;
  				}
 -					while (dwRecDeepCurPos != -1);
 +				while (dwRecDeepCurPos != -1);
  			}
  			mir_free(prdsiItems);
  		}
 @@ -1358,7 +1355,7 @@ bool CMraProto::GetPassDB(CMStringA &res)  			SHA1GetDigest(&btCryptedPass[(1 + MIR_SHA1_HASH_SIZE)], dwPassSize, btRandomData);
  			if (0 != memcmp(&btCryptedPass[1], btRandomData, MIR_SHA1_HASH_SIZE))
  				return false;
 -				
 +
  			res = CMStringA((char*)&btCryptedPass[(1 + MIR_SHA1_HASH_SIZE)], dwPassSize);
  		}
  		else if (storageType == 1) {
 @@ -1392,7 +1389,7 @@ bool CMraProto::GetPassDB(CMStringA &res)  static DWORD ReplaceInBuff(LPVOID lpInBuff, size_t dwInBuffSize, size_t dwReplaceItemsCount, LPVOID *plpInReplaceItems, size_t *pdwInReplaceItemsCounts, LPVOID *plpOutReplaceItems, size_t *pdwOutReplaceItemsCounts, CMStringW &ret)
  {
  	DWORD dwRetErrorCode = NO_ERROR;
 -	
 +
  	LPBYTE *plpbtFounded = (LPBYTE*)mir_calloc((sizeof(LPBYTE)*dwReplaceItemsCount));
  	if (plpbtFounded) {
  		LPBYTE lpbtOutBuffCur, lpbtInBuffCur, lpbtInBuffCurPrev, lpbtOutBuffMax;
 @@ -1402,27 +1399,26 @@ static DWORD ReplaceInBuff(LPVOID lpInBuff, size_t dwInBuffSize, size_t dwReplac  		lpbtOutBuffCur = (LPBYTE)ret.GetString();
  		lpbtOutBuffMax = LPBYTE(lpbtOutBuffCur) + ret.GetLength();
  		for (i = 0; i < dwReplaceItemsCount; i++) {// looking for the first time
 -			plpbtFounded[i] = (LPBYTE)MemoryFind((lpbtInBuffCurPrev-(LPBYTE)lpInBuff), lpInBuff, dwInBuffSize, plpInReplaceItems[i], pdwInReplaceItemsCounts[i]);
 +			plpbtFounded[i] = (LPBYTE)MemoryFind((lpbtInBuffCurPrev - (LPBYTE)lpInBuff), lpInBuff, dwInBuffSize, plpInReplaceItems[i], pdwInReplaceItemsCounts[i]);
  			if (plpbtFounded[i])
  				dwFoundCount++;
  		}
  		while (dwFoundCount) {
  			for (i = 0; i < dwReplaceItemsCount; i++)
 -				if (plpbtFounded[i] && (plpbtFounded[i] < plpbtFounded[dwFirstFoundIndex] || plpbtFounded[dwFirstFoundIndex] == NULL))
 -					dwFirstFoundIndex = i;
 +			if (plpbtFounded[i] && (plpbtFounded[i] < plpbtFounded[dwFirstFoundIndex] || plpbtFounded[dwFirstFoundIndex] == NULL))
 +				dwFirstFoundIndex = i;
  			if (plpbtFounded[dwFirstFoundIndex]) {// in found
 -				dwMemPartToCopy = (plpbtFounded[dwFirstFoundIndex]-lpbtInBuffCurPrev);
 -				if (lpbtOutBuffMax>(lpbtOutBuffCur+(dwMemPartToCopy+pdwInReplaceItemsCounts[dwFirstFoundIndex])))
 -				{
 -					memmove(lpbtOutBuffCur, lpbtInBuffCurPrev, dwMemPartToCopy);lpbtOutBuffCur += dwMemPartToCopy;
 -					memmove(lpbtOutBuffCur, plpOutReplaceItems[dwFirstFoundIndex], pdwOutReplaceItemsCounts[dwFirstFoundIndex]);lpbtOutBuffCur += pdwOutReplaceItemsCounts[dwFirstFoundIndex];
 -					lpbtInBuffCurPrev = (plpbtFounded[dwFirstFoundIndex]+pdwInReplaceItemsCounts[dwFirstFoundIndex]);
 -
 -					for (i = 0;i<dwReplaceItemsCount;i++) {// looking for in next time
 +				dwMemPartToCopy = (plpbtFounded[dwFirstFoundIndex] - lpbtInBuffCurPrev);
 +				if (lpbtOutBuffMax>(lpbtOutBuffCur + (dwMemPartToCopy + pdwInReplaceItemsCounts[dwFirstFoundIndex]))) {
 +					memmove(lpbtOutBuffCur, lpbtInBuffCurPrev, dwMemPartToCopy); lpbtOutBuffCur += dwMemPartToCopy;
 +					memmove(lpbtOutBuffCur, plpOutReplaceItems[dwFirstFoundIndex], pdwOutReplaceItemsCounts[dwFirstFoundIndex]); lpbtOutBuffCur += pdwOutReplaceItemsCounts[dwFirstFoundIndex];
 +					lpbtInBuffCurPrev = (plpbtFounded[dwFirstFoundIndex] + pdwInReplaceItemsCounts[dwFirstFoundIndex]);
 +
 +					for (i = 0; i < dwReplaceItemsCount; i++) {// looking for in next time
  						if (plpbtFounded[i] && plpbtFounded[i] < lpbtInBuffCurPrev) {
 -							plpbtFounded[i] = (LPBYTE)MemoryFind((lpbtInBuffCurPrev-(LPBYTE)lpInBuff), lpInBuff, dwInBuffSize, plpInReplaceItems[i], pdwInReplaceItemsCounts[i]);
 +							plpbtFounded[i] = (LPBYTE)MemoryFind((lpbtInBuffCurPrev - (LPBYTE)lpInBuff), lpInBuff, dwInBuffSize, plpInReplaceItems[i], pdwInReplaceItemsCounts[i]);
  							if (plpbtFounded[i] == NULL) dwFoundCount--;
  						}
  					}
 @@ -1438,23 +1434,23 @@ static DWORD ReplaceInBuff(LPVOID lpInBuff, size_t dwInBuffSize, size_t dwReplac  				break;
  			}
  		}
 -		lpbtInBuffCur = (((LPBYTE)lpInBuff)+dwInBuffSize);
 -		memmove(lpbtOutBuffCur, lpbtInBuffCurPrev, (lpbtInBuffCur-lpbtInBuffCurPrev));lpbtOutBuffCur += (lpbtInBuffCur-lpbtInBuffCurPrev);
 +		lpbtInBuffCur = (((LPBYTE)lpInBuff) + dwInBuffSize);
 +		memmove(lpbtOutBuffCur, lpbtInBuffCurPrev, (lpbtInBuffCur - lpbtInBuffCurPrev)); lpbtOutBuffCur += (lpbtInBuffCur - lpbtInBuffCurPrev);
  		(*((WORD*)lpbtOutBuffCur)) = 0;
  		mir_free(plpbtFounded);
 -		ret.Truncate(lpbtOutBuffCur-((LPBYTE)ret.GetString()));
 +		ret.Truncate(lpbtOutBuffCur - ((LPBYTE)ret.GetString()));
  	}
  	else dwRetErrorCode = GetLastError();
  	return dwRetErrorCode;
  }
 -static const LPTSTR lpszXMLTags[]		 = {TEXT("'"), 		TEXT("""), 		TEXT("&"), 		TEXT("<"), 		TEXT(">")};
 -static const size_t dwXMLTagsCount[]	 = {(6*sizeof(TCHAR)), 	(6*sizeof(TCHAR)), 	(5*sizeof(TCHAR)), 	(4*sizeof(TCHAR)), 	(4*sizeof(TCHAR))};
 -static const LPTSTR lpszXMLSymbols[]	 = {TEXT("\'"), 			TEXT("\""), 			TEXT("&"), 			TEXT("<"), 			TEXT(">")};
 -static const size_t dwXMLSymbolsCount[]	 = {sizeof(TCHAR), 		sizeof(TCHAR), 		sizeof(TCHAR), 		sizeof(TCHAR), 		sizeof(TCHAR)};
 +static const LPTSTR lpszXMLTags[] = { _T("'"), _T("""), _T("&"), _T("<"), _T(">") };
 +static const size_t dwXMLTagsCount[] = { (6 * sizeof(TCHAR)), (6 * sizeof(TCHAR)), (5 * sizeof(TCHAR)), (4 * sizeof(TCHAR)), (4 * sizeof(TCHAR)) };
 +static const LPTSTR lpszXMLSymbols[] = { _T("\'"), _T("\""), _T("&"), _T("<"), _T(">") };
 +static const size_t dwXMLSymbolsCount[] = { sizeof(TCHAR), sizeof(TCHAR), sizeof(TCHAR), sizeof(TCHAR), sizeof(TCHAR) };
  //Decode XML coded string. The function translate special xml code into standard characters.
  CMStringW DecodeXML(const CMStringW &lptszMessage)
 diff --git a/protocols/MRA/src/Mra_menus.cpp b/protocols/MRA/src/Mra_menus.cpp index 4466ec8ac1..2e92363a74 100644 --- a/protocols/MRA/src/Mra_menus.cpp +++ b/protocols/MRA/src/Mra_menus.cpp @@ -18,9 +18,9 @@ INT_PTR CMraProto::MraSendSMS(WPARAM wParam, LPARAM lParam)  	if (!m_bLoggedIn || !wParam || !lParam)
  		return 0;
 -	ptrW lpwszMessageXMLEncoded( mir_utf8decodeW((LPSTR)lParam));
 +	ptrW lpwszMessageXMLEncoded(mir_utf8decodeW((LPSTR)lParam));
  	if (lpwszMessageXMLEncoded) {
 -		CMStringW decoded = DecodeXML( CMStringW(lpwszMessageXMLEncoded));
 +		CMStringW decoded = DecodeXML(CMStringW(lpwszMessageXMLEncoded));
  		if (decoded.GetLength())
  			MraSMSW(NULL, CMStringA((LPSTR)wParam), decoded);
  	}
 @@ -42,10 +42,10 @@ INT_PTR CMraProto::MraWebSearch(WPARAM wParam, LPARAM lParam)  INT_PTR CMraProto::MraUpdateAllUsersInfo(WPARAM wParam, LPARAM lParam)
  {
 -	if ( MessageBox(NULL, TranslateT("Are you sure?"), TranslateT(MRA_UPD_ALL_USERS_INFO_STR), MB_YESNO | MB_ICONQUESTION) == IDYES ) {
 +	if (MessageBox(NULL, TranslateT("Are you sure?"), TranslateT(MRA_UPD_ALL_USERS_INFO_STR), MB_YESNO | MB_ICONQUESTION) == IDYES) {
  		for (HANDLE hContact = db_find_first(m_szModuleName); hContact; hContact = db_find_next(hContact, m_szModuleName)) {
  			CMStringA szEmail;
 -			if ( mraGetStringA(hContact, "e-mail", szEmail))
 +			if (mraGetStringA(hContact, "e-mail", szEmail))
  				MraWPRequestByEMail(hContact, ACKTYPE_GETINFO, szEmail);
  		}
  	}
 @@ -54,12 +54,12 @@ INT_PTR CMraProto::MraUpdateAllUsersInfo(WPARAM wParam, LPARAM lParam)  INT_PTR CMraProto::MraCheckUpdatesUsersAvt(WPARAM wParam, LPARAM lParam)
  {
 -	if ( MessageBox(NULL, TranslateT("Are you sure?"), TranslateT(MRA_CHK_USERS_AVATARS_STR), MB_YESNO | MB_ICONQUESTION) == IDYES) {
 +	if (MessageBox(NULL, TranslateT("Are you sure?"), TranslateT(MRA_CHK_USERS_AVATARS_STR), MB_YESNO | MB_ICONQUESTION) == IDYES) {
  		for (HANDLE hContact = db_find_first(m_szModuleName); hContact; hContact = db_find_next(hContact, m_szModuleName)) {
  			CMStringA szEmail;
  			if (mraGetStringA(hContact, "e-mail", szEmail))
 -				if ( !IsEMailChatAgent(szEmail))
 -					MraAvatarsQueueGetAvatarSimple(hAvatarsQueueHandle, 0, hContact, 0);
 +			if (!IsEMailChatAgent(szEmail))
 +				MraAvatarsQueueGetAvatarSimple(hAvatarsQueueHandle, 0, hContact, 0);
  		}
  	}
  	return 0;
 @@ -67,7 +67,7 @@ INT_PTR CMraProto::MraCheckUpdatesUsersAvt(WPARAM wParam, LPARAM lParam)  INT_PTR CMraProto::MraRequestAuthForAll(WPARAM wParam, LPARAM lParam)
  {
 -	if ( MessageBox(NULL, TranslateT("Are you sure?"), TranslateT(MRA_REQ_AUTH_FOR_ALL_STR), MB_YESNO | MB_ICONQUESTION) == IDYES) {
 +	if (MessageBox(NULL, TranslateT("Are you sure?"), TranslateT(MRA_REQ_AUTH_FOR_ALL_STR), MB_YESNO | MB_ICONQUESTION) == IDYES) {
  		for (HANDLE hContact = db_find_first(m_szModuleName); hContact; hContact = db_find_next(hContact, m_szModuleName)) {
  			DWORD dwContactSeverFlags;
  			if (GetContactBasicInfoW(hContact, NULL, NULL, NULL, &dwContactSeverFlags, NULL, NULL, NULL, NULL) == NO_ERROR)
 @@ -85,12 +85,12 @@ INT_PTR CMraProto::MraRequestAuthorization(WPARAM wParam, LPARAM lParam)  		return 0;
  	CMStringW wszAuthMessage;
 -	if ( !mraGetStringW(NULL, "AuthMessage", wszAuthMessage))
 +	if (!mraGetStringW(NULL, "AuthMessage", wszAuthMessage))
  		wszAuthMessage = TranslateT(MRA_DEFAULT_AUTH_MESSAGE);
 -	if ( !wszAuthMessage.IsEmpty()) {
 +	if (!wszAuthMessage.IsEmpty()) {
  		CMStringA szEmail;
 -		if ( mraGetStringA(hContact, "e-mail", szEmail)) {
 +		if (mraGetStringA(hContact, "e-mail", szEmail)) {
  			BOOL bSlowSend = getByte("SlowSend", MRA_DEFAULT_SLOW_SEND);
  			int iRet = MraMessage(bSlowSend, hContact, ACKTYPE_AUTHREQ, MESSAGE_FLAG_AUTHORIZE, szEmail, wszAuthMessage, NULL, 0);
  			if (bSlowSend == FALSE)
 @@ -125,7 +125,7 @@ INT_PTR CMraProto::MraSendPostcard(WPARAM wParam, LPARAM lParam)  	if (dwContactEMailCount) {
  		if (dwContactEMailCount == 1) {
  			CMStringA szUrl, szEmail;
 -			if ( GetContactFirstEMail((HANDLE)wParam, FALSE, szEmail)) {
 +			if (GetContactFirstEMail((HANDLE)wParam, FALSE, szEmail)) {
  				szEmail.MakeLower();
  				szUrl.Format("http://cards.mail.ru/event.html?rcptname=%s&rcptemail=%s", GetContactNameA((HANDLE)wParam), szEmail);
  				MraMPopSessionQueueAddUrl(hMPopSessionQueue, szUrl);
 @@ -145,7 +145,7 @@ INT_PTR CMraProto::MraViewAlbum(WPARAM wParam, LPARAM lParam)  	if (dwContactEMailMRCount) {
  		if (dwContactEMailMRCount == 1) {
  			CMStringA szEmail;
 -			if ( GetContactFirstEMail((HANDLE)wParam, TRUE, szEmail))
 +			if (GetContactFirstEMail((HANDLE)wParam, TRUE, szEmail))
  				MraMPopSessionQueueAddUrlAndEMail(hMPopSessionQueue, MRA_FOTO_URL, szEmail);
  		}
  		else MraSelectEMailDlgShow((HANDLE)wParam, MRA_SELECT_EMAIL_TYPE_VIEW_ALBUM);
 @@ -177,7 +177,7 @@ INT_PTR CMraProto::MraReplyBlogStatus(WPARAM wParam, LPARAM lParam)  	CMStringW blogStatusMsg;
  	mraGetStringW((HANDLE)wParam, DBSETTING_BLOGSTATUS, blogStatusMsg);
 -	if (!blogStatusMsg.IsEmpty()|| wParam == 0)
 +	if (!blogStatusMsg.IsEmpty() || wParam == 0)
  		MraSendReplyBlogStatus((HANDLE)wParam);
  	return 0;
 @@ -294,11 +294,11 @@ int CMraProto::MraRebuildContactMenu(WPARAM wParam, LPARAM lParam)  int CMraProto::MraRebuildStatusMenu(WPARAM wParam, LPARAM lParam)
  {
 -	CHAR szServiceFunction[MAX_PATH*2], *pszServiceFunctionName, szValueName[MAX_PATH];
 +	CHAR szServiceFunction[MAX_PATH * 2], *pszServiceFunctionName, szValueName[MAX_PATH];
  	strncpy(szServiceFunction, m_szModuleName, sizeof(szServiceFunction));
  	pszServiceFunctionName = szServiceFunction + strlen(m_szModuleName);
 -	TCHAR szItem[MAX_PATH+64];
 +	TCHAR szItem[MAX_PATH + 64];
  	mir_sntprintf(szItem, SIZEOF(szItem), _T("%s Custom Status"), m_tszUserName);
  	CLISTMENUITEM mi = { sizeof(mi) };
 @@ -310,12 +310,12 @@ int CMraProto::MraRebuildStatusMenu(WPARAM wParam, LPARAM lParam)  	mi.pszContactOwner = m_szModuleName;
  	CMStringW szStatusTitle;
 -	for (size_t i = 0; i < MRA_XSTATUS_COUNT; i++)  {
 +	for (size_t i = 0; i < MRA_XSTATUS_COUNT; i++) {
  		mir_snprintf(pszServiceFunctionName, 100, "/menuXStatus%ld", i);
  		mi.position++;
  		if (i) {
  			mir_snprintf(szValueName, SIZEOF(szValueName), "XStatus%ldName", i);
 -			if ( mraGetStringW(NULL, szValueName, szStatusTitle))
 +			if (mraGetStringW(NULL, szValueName, szStatusTitle))
  				mi.ptszName = (TCHAR*)szStatusTitle.c_str();
  			else
  				mi.ptszName = lpcszXStatusNameDef[i];
 @@ -389,19 +389,19 @@ HGENMENU CMraProto::CListCreateMenu(LONG lPosition, LONG lPopupPosition, BOOL bI  void CMraProto::InitMenus()
  {
 -	CreateProtoService(MRA_GOTO_INBOX,         &CMraProto::MraGotoInbox);
 -	CreateProtoService(MRA_SHOW_INBOX_STATUS,  &CMraProto::MraShowInboxStatus);
 -	CreateProtoService(MRA_EDIT_PROFILE,       &CMraProto::MraEditProfile);
 -	CreateProtoService(MRA_VIEW_ALBUM,         &CMraProto::MraViewAlbum);
 -	CreateProtoService(MRA_READ_BLOG,          &CMraProto::MraReadBlog);
 -	CreateProtoService(MRA_REPLY_BLOG_STATUS,  &CMraProto::MraReplyBlogStatus);
 -	CreateProtoService(MRA_VIEW_VIDEO,         &CMraProto::MraViewVideo);
 -	CreateProtoService(MRA_ANSWERS,            &CMraProto::MraAnswers);
 -	CreateProtoService(MRA_WORLD,              &CMraProto::MraWorld);
 -	CreateProtoService(MRA_WEB_SEARCH,         &CMraProto::MraWebSearch);
 +	CreateProtoService(MRA_GOTO_INBOX, &CMraProto::MraGotoInbox);
 +	CreateProtoService(MRA_SHOW_INBOX_STATUS, &CMraProto::MraShowInboxStatus);
 +	CreateProtoService(MRA_EDIT_PROFILE, &CMraProto::MraEditProfile);
 +	CreateProtoService(MRA_VIEW_ALBUM, &CMraProto::MraViewAlbum);
 +	CreateProtoService(MRA_READ_BLOG, &CMraProto::MraReadBlog);
 +	CreateProtoService(MRA_REPLY_BLOG_STATUS, &CMraProto::MraReplyBlogStatus);
 +	CreateProtoService(MRA_VIEW_VIDEO, &CMraProto::MraViewVideo);
 +	CreateProtoService(MRA_ANSWERS, &CMraProto::MraAnswers);
 +	CreateProtoService(MRA_WORLD, &CMraProto::MraWorld);
 +	CreateProtoService(MRA_WEB_SEARCH, &CMraProto::MraWebSearch);
  	CreateProtoService(MRA_UPD_ALL_USERS_INFO, &CMraProto::MraUpdateAllUsersInfo);
 -	CreateProtoService(MRA_CHK_USERS_AVATARS,  &CMraProto::MraCheckUpdatesUsersAvt);
 -	CreateProtoService(MRA_REQ_AUTH_FOR_ALL,   &CMraProto::MraRequestAuthForAll);
 +	CreateProtoService(MRA_CHK_USERS_AVATARS, &CMraProto::MraCheckUpdatesUsersAvt);
 +	CreateProtoService(MRA_REQ_AUTH_FOR_ALL, &CMraProto::MraRequestAuthForAll);
  	hContactMenuRoot = CListCreateMenu(-2000001001, -500050000, FALSE, gdiContactMenuItems, CONTACT_MENU_ITEMS_COUNT, hContactMenuItems);
 diff --git a/protocols/MRA/src/Mra_proto.cpp b/protocols/MRA/src/Mra_proto.cpp index 7488174e03..1ef3f495af 100644 --- a/protocols/MRA/src/Mra_proto.cpp +++ b/protocols/MRA/src/Mra_proto.cpp @@ -34,7 +34,7 @@ void CMraProto::MraThreadProc(LPVOID lpParameter)  	BOOL bConnected = FALSE;
  	CMStringA szHost;
  	DWORD dwConnectReTryCount, dwCurConnectReTryCount;
 -	NETLIBOPENCONNECTION nloc = {0};
 +	NETLIBOPENCONNECTION nloc = { 0 };
  	SleepEx(100, FALSE);// to prevent high CPU load by some status plugins like allwaysonline
 @@ -54,7 +54,7 @@ void CMraProto::MraThreadProc(LPVOID lpParameter)  			InterlockedExchange((volatile LONG*)&m_dwThreadWorkerLastPingTime, GetTickCount());
  			m_hConnection = (HANDLE)CallService(MS_NETLIB_OPENCONNECTION, (WPARAM)m_hNetlibUser, (LPARAM)&nloc);
  		}
 -			while (--dwCurConnectReTryCount && m_hConnection == NULL);
 +		while (--dwCurConnectReTryCount && m_hConnection == NULL);
  		if (m_hConnection)
  			bConnected = TRUE;
 @@ -69,7 +69,7 @@ void CMraProto::MraThreadProc(LPVOID lpParameter)  			if (nloc.wPort == MRA_SERVER_PORT_STANDART_NLB) nloc.wPort = MRA_SERVER_PORT_STANDART;
  		}
 -		for (DWORD i = 1;(i<MRA_MAX_MRIM_SERVER && m_iStatus != ID_STATUS_OFFLINE); i++) {
 +		for (DWORD i = 1; (i < MRA_MAX_MRIM_SERVER && m_iStatus != ID_STATUS_OFFLINE); i++) {
  			szHost.Format("mrim%lu.mail.ru", i);
  			dwCurConnectReTryCount = dwConnectReTryCount;
 @@ -77,7 +77,7 @@ void CMraProto::MraThreadProc(LPVOID lpParameter)  				InterlockedExchange((volatile LONG*)&m_dwThreadWorkerLastPingTime, GetTickCount());
  				m_hConnection = (HANDLE)CallService(MS_NETLIB_OPENCONNECTION, (WPARAM)m_hNetlibUser, (LPARAM)&nloc);
  			}
 -				while (--dwCurConnectReTryCount && m_hConnection == NULL);
 +			while (--dwCurConnectReTryCount && m_hConnection == NULL);
  			if (m_hConnection) {
  				bConnected = TRUE;
 @@ -113,8 +113,8 @@ DWORD CMraProto::MraGetNLBData(CMStringA &szHost, WORD *pwPort)  	DWORD dwConnectReTryCount, dwCurConnectReTryCount;
  	LPSTR lpszPort;
  	size_t dwBytesReceived, dwRcvBuffSizeUsed = 0;
 -	NETLIBSELECT nls = {0};
 -	NETLIBOPENCONNECTION nloc = {0};
 +	NETLIBSELECT nls = { 0 };
 +	NETLIBOPENCONNECTION nloc = { 0 };
  	dwConnectReTryCount = getDword("ConnectReTryCountNLB", MRA_DEFAULT_CONN_RETRY_COUNT_NLB);
 @@ -125,7 +125,7 @@ DWORD CMraProto::MraGetNLBData(CMStringA &szHost, WORD *pwPort)  	else
  		nloc.szHost = MRA_DEFAULT_SERVER;
 -	if ( IsHTTPSProxyUsed(m_hNetlibUser))
 +	if (IsHTTPSProxyUsed(m_hNetlibUser))
  		nloc.wPort = MRA_SERVER_PORT_HTTPS;
  	else
  		nloc.wPort = getWord("ServerPort", MRA_DEFAULT_SERVER_PORT);
 @@ -139,7 +139,7 @@ DWORD CMraProto::MraGetNLBData(CMStringA &szHost, WORD *pwPort)  		InterlockedExchange((volatile LONG*)&m_dwThreadWorkerLastPingTime, GetTickCount());
  		nls.hReadConns[0] = (HANDLE)CallService(MS_NETLIB_OPENCONNECTION, (WPARAM)m_hNetlibUser, (LPARAM)&nloc);
  	}
 -		while (--dwCurConnectReTryCount && nls.hReadConns[0] == NULL);
 +	while (--dwCurConnectReTryCount && nls.hReadConns[0] == NULL);
  	if (nls.hReadConns[0]) {
  		nls.cbSize = sizeof(nls);
 @@ -153,7 +153,7 @@ DWORD CMraProto::MraGetNLBData(CMStringA &szHost, WORD *pwPort)  				bContinue = FALSE;
  				break;
  			case 1:
 -				dwBytesReceived = Netlib_Recv(nls.hReadConns[0], (LPSTR)(btBuff+dwRcvBuffSizeUsed), (SIZEOF(btBuff)-dwRcvBuffSizeUsed), 0);
 +				dwBytesReceived = Netlib_Recv(nls.hReadConns[0], (LPSTR)(btBuff + dwRcvBuffSizeUsed), (SIZEOF(btBuff) - dwRcvBuffSizeUsed), 0);
  				if (dwBytesReceived && dwBytesReceived != SOCKET_ERROR)
  					dwRcvBuffSizeUsed += dwBytesReceived;
  				else
 @@ -171,7 +171,7 @@ DWORD CMraProto::MraGetNLBData(CMStringA &szHost, WORD *pwPort)  				lpszPort++;
  				szHost = (LPSTR)btBuff;
 -				if (pwPort) (*pwPort) = (WORD)StrToUNum32(lpszPort, (dwRcvBuffSizeUsed-(lpszPort-(LPSTR)btBuff)));
 +				if (pwPort) (*pwPort) = (WORD)StrToUNum32(lpszPort, (dwRcvBuffSizeUsed - (lpszPort - (LPSTR)btBuff)));
  				dwRetErrorCode = NO_ERROR;
  			}
  			else {
 @@ -228,7 +228,7 @@ DWORD CMraProto::MraNetworkDispatcher()  			m_dwThreadWorkerLastPingTime = GetTickCount();
  			// server ping
  			if (m_dwNextPingSendTickTime <= m_dwThreadWorkerLastPingTime) {
 -				m_dwNextPingSendTickTime = (m_dwThreadWorkerLastPingTime+(m_dwPingPeriod*1000));
 +				m_dwNextPingSendTickTime = (m_dwThreadWorkerLastPingTime + (m_dwPingPeriod * 1000));
  				MraSendCMD(MRIM_CS_PING, NULL, 0);
  			}
  			{
 @@ -236,7 +236,7 @@ DWORD CMraProto::MraNetworkDispatcher()  				HANDLE hContact;
  				LPBYTE lpbData;
  				size_t dwDataSize;
 -				while ( !MraSendQueueFindOlderThan(hSendQueueHandle, SEND_QUEUE_TIMEOUT, &dwCMDNum, &dwFlags, &hContact, &dwAckType, &lpbData, &dwDataSize)) {
 +				while (!MraSendQueueFindOlderThan(hSendQueueHandle, SEND_QUEUE_TIMEOUT, &dwCMDNum, &dwFlags, &hContact, &dwAckType, &lpbData, &dwDataSize)) {
  					switch (dwAckType) {
  					case ACKTYPE_ADDED:
  					case ACKTYPE_AUTHREQ:
 @@ -269,27 +269,27 @@ DWORD CMraProto::MraNetworkDispatcher()  				lpbBufferRcv = (LPBYTE)mir_realloc(lpbBufferRcv, dwRcvBuffSize);
  			}
 -			DWORD dwBytesReceived = Netlib_Recv(nls.hReadConns[0], (LPSTR)(lpbBufferRcv+dwRcvBuffSizeUsed), (dwRcvBuffSize-dwRcvBuffSizeUsed), 0);
 +			DWORD dwBytesReceived = Netlib_Recv(nls.hReadConns[0], (LPSTR)(lpbBufferRcv + dwRcvBuffSizeUsed), (dwRcvBuffSize - dwRcvBuffSizeUsed), 0);
  			if (dwBytesReceived && dwBytesReceived != SOCKET_ERROR) {
  				dwRcvBuffSizeUsed += dwBytesReceived;
  				while (TRUE) {
 -					dwDataCurrentBuffSize = (dwRcvBuffSize-dwDataCurrentBuffOffset);
 -					dwDataCurrentBuffSizeUsed = (dwRcvBuffSizeUsed-dwDataCurrentBuffOffset);
 -					pmaHeader = (mrim_packet_header_t*)(lpbBufferRcv+dwDataCurrentBuffOffset);
 +					dwDataCurrentBuffSize = (dwRcvBuffSize - dwDataCurrentBuffOffset);
 +					dwDataCurrentBuffSizeUsed = (dwRcvBuffSizeUsed - dwDataCurrentBuffOffset);
 +					pmaHeader = (mrim_packet_header_t*)(lpbBufferRcv + dwDataCurrentBuffOffset);
  					// packet header received
  					if (dwDataCurrentBuffSizeUsed >= sizeof(mrim_packet_header_t)) {
  						// packet OK
  						if (pmaHeader->magic == CS_MAGIC) {
  							// full packet received, may be more than one
 -							if ((dwDataCurrentBuffSizeUsed-sizeof(mrim_packet_header_t)) >= pmaHeader->dlen) {
 +							if ((dwDataCurrentBuffSizeUsed - sizeof(mrim_packet_header_t)) >= pmaHeader->dlen) {
  								bContinue = MraCommandDispatcher(pmaHeader);
  								// move pointer to next packet in buffer
  								if (dwDataCurrentBuffSizeUsed - sizeof(mrim_packet_header_t) > pmaHeader->dlen)
 -									dwDataCurrentBuffOffset += sizeof(mrim_packet_header_t) + pmaHeader->dlen;
 +									dwDataCurrentBuffOffset += sizeof(mrim_packet_header_t)+pmaHeader->dlen;
  								// move pointer to begin of buffer
  								else {
  									// динамическое уменьшение буффера приёма
 @@ -305,7 +305,7 @@ DWORD CMraProto::MraNetworkDispatcher()  							// not all packet received, continue receiving
  							else {
  								if (dwDataCurrentBuffOffset) {
 -									memmove(lpbBufferRcv, (lpbBufferRcv+dwDataCurrentBuffOffset), dwDataCurrentBuffSizeUsed);
 +									memmove(lpbBufferRcv, (lpbBufferRcv + dwDataCurrentBuffOffset), dwDataCurrentBuffSizeUsed);
  									dwRcvBuffSizeUsed = dwDataCurrentBuffSizeUsed;
  									dwDataCurrentBuffOffset = 0;
  								}
 @@ -324,7 +324,7 @@ DWORD CMraProto::MraNetworkDispatcher()  					// packet to small, continue receiving
  					else {
  						debugLogW(L"Packet to small, continue receiving\n");
 -						memmove(lpbBufferRcv, (lpbBufferRcv+dwDataCurrentBuffOffset), dwDataCurrentBuffSizeUsed);
 +						memmove(lpbBufferRcv, (lpbBufferRcv + dwDataCurrentBuffOffset), dwDataCurrentBuffSizeUsed);
  						dwRcvBuffSizeUsed = dwDataCurrentBuffSizeUsed;
  						dwDataCurrentBuffOffset = 0;
  						break;
 @@ -353,7 +353,7 @@ bool CMraProto::CmdHelloAck(BinBuffer &buf)  	buf >> m_dwPingPeriod;
  	CMStringA szPass;
 -	if ( !GetPassDB(szPass))
 +	if (!GetPassDB(szPass))
  		return false;
  	char szValueName[MAX_PATH];
 @@ -362,9 +362,9 @@ bool CMraProto::CmdHelloAck(BinBuffer &buf)  	DWORD dwXStatusMir = m_iXStatus, dwXStatus;
  	DWORD dwStatus = GetMraStatusFromMiradaStatus(m_iDesiredStatus, dwXStatusMir, &dwXStatus);
 -	if ( IsXStatusValid(dwXStatusMir)) {// xstatuses
 +	if (IsXStatusValid(dwXStatusMir)) {// xstatuses
  		mir_snprintf(szValueName, SIZEOF(szValueName), "XStatus%ldName", dwXStatusMir);
 -		if ( !mraGetStringW(NULL, szValueName, wszStatusTitle))
 +		if (!mraGetStringW(NULL, szValueName, wszStatusTitle))
  			wszStatusTitle = TranslateTS(lpcszXStatusNameDef[dwXStatusMir]);
  		mir_snprintf(szValueName, SIZEOF(szValueName), "XStatus%ldMsg", dwXStatusMir);
 @@ -373,14 +373,14 @@ bool CMraProto::CmdHelloAck(BinBuffer &buf)  	else wszStatusTitle = pcli->pfnGetStatusModeDescription(m_iDesiredStatus, 0);
  	CMStringA szSelfVersionString = MraGetSelfVersionString();
 -	if ( !mraGetStringA(NULL, "MirVerCustom", szUserAgentFormatted))
 +	if (!mraGetStringA(NULL, "MirVerCustom", szUserAgentFormatted))
  		szUserAgentFormatted.Format(
 -			"client=\"magent\" name=\"Miranda NG\" title=\"%s\" version=\"777.%lu.%lu.%lu\" build=\"%lu\" protocol=\"%lu.%lu\"",
 -			szSelfVersionString, __FILEVERSION_STRING, PROTO_VERSION_MAJOR, PROTO_VERSION_MINOR);
 +		"client=\"magent\" name=\"Miranda NG\" title=\"%s\" version=\"777.%lu.%lu.%lu\" build=\"%lu\" protocol=\"%lu.%lu\"",
 +		szSelfVersionString, __FILEVERSION_STRING, PROTO_VERSION_MAJOR, PROTO_VERSION_MINOR);
  	DWORD dwFutureFlags = (getByte("RTFReceiveEnable", MRA_DEFAULT_RTF_RECEIVE_ENABLE) ? FEATURE_FLAG_RTF_MESSAGE : 0) | MRA_FEATURE_FLAGS;
 -	if ( !mraGetStringA(NULL, "e-mail", szEmail))
 +	if (!mraGetStringA(NULL, "e-mail", szEmail))
  		return false;
  	MraLogin2W(szEmail, szPass, dwStatus, CMStringA(lpcszStatusUri[dwXStatus]), wszStatusTitle, wszStatusDesc, dwFutureFlags, szUserAgentFormatted, szSelfVersionString);
 @@ -421,9 +421,9 @@ bool CMraProto::CmdMessageAck(BinBuffer &buf)  		buf >> szMultiChatData; // LPS multichat_data
  	// подтверждаем получение, только если удалось его обработать
 -	if ( MraRecvCommand_Message((DWORD)_time32(NULL), dwFlags, szEmail, szText, szRTFText, szMultiChatData) == NO_ERROR)
 -		if ((dwFlags & MESSAGE_FLAG_NORECV) == 0)
 -			MraMessageRecv(szEmail, dwMsgID);
 +	if (MraRecvCommand_Message((DWORD)_time32(NULL), dwFlags, szEmail, szText, szRTFText, szMultiChatData) == NO_ERROR)
 +	if ((dwFlags & MESSAGE_FLAG_NORECV) == 0)
 +		MraMessageRecv(szEmail, dwMsgID);
  	return true;
  }
 @@ -431,7 +431,7 @@ bool CMraProto::CmdMessageStatus(ULONG seq, BinBuffer &buf)  {
  	DWORD dwAckType, dwTemp = buf.getDword();
  	HANDLE hContact;
 -	if ( !MraSendQueueFind(hSendQueueHandle, seq, NULL, &hContact, &dwAckType, NULL, NULL)) {
 +	if (!MraSendQueueFind(hSendQueueHandle, seq, NULL, &hContact, &dwAckType, NULL, NULL)) {
  		switch (dwTemp) {
  		case MESSAGE_DELIVERED:// Message delivered directly to user
  			ProtoBroadcastAckAsync(hContact, dwAckType, ACKRESULT_SUCCESS, (HANDLE)seq, 0);
 @@ -517,9 +517,8 @@ bool CMraProto::CmdUserInfo(BinBuffer &buf)  			mraSetStringW(NULL, DBSETTING_BLOGSTATUS, szStringW);
  		}
  		else if (szString == "HAS_MYMAIL" || szString == "mrim.status.open_search" || szString == "rb.target.cookie" ||
 -					szString == "show_web_history_link" || szString == "friends_suggest" || szString == "timestamp" ||
 -					szString == "trusted_update" || szString == "mrim.wp.dating")
 -		{
 +			szString == "show_web_history_link" || szString == "friends_suggest" || szString == "timestamp" ||
 +			szString == "trusted_update" || szString == "mrim.wp.dating") {
  			buf >> szString;
  		}
  		else _CrtDbgBreak();
 @@ -618,10 +617,10 @@ bool CMraProto::CmdFileTransfer(BinBuffer &buf)  	if (bAdded)
  		MraUpdateContactInfo(hContact);
 -	if ( wszFilesW.IsEmpty())
 +	if (wszFilesW.IsEmpty())
  		wszFilesW = szFiles;
 -	if ( !wszFilesW.IsEmpty())
 +	if (!wszFilesW.IsEmpty())
  		MraFilesQueueAddReceive(hFilesQueueHandle, 0, hContact, dwIDRequest, wszFilesW, szAddresses);
  	return true;
  }
 @@ -707,13 +706,13 @@ bool CMraProto::CmdUserStatus(BinBuffer &buf)  bool CMraProto::CmdContactAck(int cmd, int seq, BinBuffer &buf)
  {
  	DWORD dwAckType; HANDLE hContact; LPBYTE pData; size_t dataLen;
 -	if ( !MraSendQueueFind(hSendQueueHandle, seq, NULL, &hContact, &dwAckType, &pData, &dataLen)) {
 +	if (!MraSendQueueFind(hSendQueueHandle, seq, NULL, &hContact, &dwAckType, &pData, &dataLen)) {
  		DWORD dwTemp = buf.getDword();
  		switch (dwTemp) {
  		case CONTACT_OPER_SUCCESS:// ## добавление произведено успешно
  			if (cmd == MRIM_CS_ADD_CONTACT_ACK) {
  				DWORD dwFlags = SCBIF_ID | SCBIF_SERVER_FLAG, dwGroupID = 0;
 -				ptrT grpName( db_get_tsa(hContact, "CList", "Group"));
 +				ptrT grpName(db_get_tsa(hContact, "CList", "Group"));
  				if (grpName) {
  					dwFlags |= SCBIF_GROUP_ID;
  					dwGroupID = MraMoveContactToGroup(hContact, -1, grpName);
 @@ -755,12 +754,12 @@ bool CMraProto::CmdContactAck(int cmd, int seq, BinBuffer &buf)  bool CMraProto::CmdAnketaInfo(int seq, BinBuffer &buf)
  {
  	DWORD dwAckType, dwFlags; HANDLE hContact; LPBYTE pData; size_t dataLen;
 -	if ( MraSendQueueFind(hSendQueueHandle, seq, &dwFlags, &hContact, &dwAckType, &pData, &dataLen)) {
 +	if (MraSendQueueFind(hSendQueueHandle, seq, &dwFlags, &hContact, &dwAckType, &pData, &dataLen)) {
  		MraPopupShowFromAgentW(MRA_POPUP_TYPE_DEBUG, 0, TranslateT("MRIM_ANKETA_INFO: not found in queue"));
  		return true;
  	}
 -	switch(buf.getDword()) {
 +	switch (buf.getDword()) {
  	case MRIM_ANKETA_INFO_STATUS_NOUSER:// не найдено ни одной подходящей записи
  		SetContactBasicInfoW(hContact, 0, SCBIF_SERVER_FLAG, 0, 0, 0, -1, 0, 0, 0, 0);
  	case MRIM_ANKETA_INFO_STATUS_DBERR:// ошибка базы данных
 @@ -826,10 +825,10 @@ bool CMraProto::CmdAnketaInfo(int seq, BinBuffer &buf)  					else if (fld == "Birthday") {
  						buf >> val;
  						if (val.GetLength() > 9) {// calc "Age"
 -							SYSTEMTIME stTime = {0};
 -							stTime.wYear  = (WORD)StrToUNum32(val.c_str(), 4);
 -							stTime.wMonth = (WORD)StrToUNum32(val.c_str()+5, 2);
 -							stTime.wDay   = (WORD)StrToUNum32(val.c_str()+8, 2);
 +							SYSTEMTIME stTime = { 0 };
 +							stTime.wYear = (WORD)StrToUNum32(val.c_str(), 4);
 +							stTime.wMonth = (WORD)StrToUNum32(val.c_str() + 5, 2);
 +							stTime.wDay = (WORD)StrToUNum32(val.c_str() + 8, 2);
  							setWord(hContact, "BirthYear", stTime.wYear);
  							setByte(hContact, "BirthMonth", (BYTE)stTime.wMonth);
  							setByte(hContact, "BirthDay", (BYTE)stTime.wDay);
 @@ -941,12 +940,12 @@ bool CMraProto::CmdAnketaInfo(int seq, BinBuffer &buf)  				}
  			}
  			else if (dwAckType == ACKTYPE_SEARCH) {
 -				TCHAR szNick[MAX_EMAIL_LEN] = {0},
 -					szFirstName[MAX_EMAIL_LEN] = {0},
 -					szLastName[MAX_EMAIL_LEN] = {0},
 -					szEmail[MAX_EMAIL_LEN] = {0};
 +				TCHAR szNick[MAX_EMAIL_LEN] = { 0 },
 +					szFirstName[MAX_EMAIL_LEN] = { 0 },
 +					szLastName[MAX_EMAIL_LEN] = { 0 },
 +					szEmail[MAX_EMAIL_LEN] = { 0 };
  				CMStringA mralpsUsernameValue;
 -				PROTOSEARCHRESULT psr = {0};
 +				PROTOSEARCHRESULT psr = { 0 };
  				psr.cbSize = sizeof(psr);
  				psr.flags = PSR_UNICODE;
 @@ -1092,8 +1091,8 @@ bool CMraProto::CmdClist2(BinBuffer &buf)  			// add/modify group
  			if (dwControlParam > 1) { // все параметры правильно инициализированны!
 -				if ( !(dwGroupFlags & CONTACT_FLAG_REMOVED)) {
 -					m_groups.insert( new MraGroupItem(dwID, dwGroupFlags, wszGroupName));
 +				if (!(dwGroupFlags & CONTACT_FLAG_REMOVED)) {
 +					m_groups.insert(new MraGroupItem(dwID, dwGroupFlags, wszGroupName));
  					Clist_CreateGroup(0, wszGroupName);
  				}
 @@ -1220,26 +1219,26 @@ bool CMraProto::CmdClist2(BinBuffer &buf)  			}
  			debugLogA("ID: %lu, Group id: %lu, %s: flags: %lu (", dwID, dwGroupID, szEmail, dwContactFlag);
 -				if (dwContactFlag & CONTACT_FLAG_REMOVED)      debugLogA("CONTACT_FLAG_REMOVED, ");
 -				if (dwContactFlag & CONTACT_FLAG_GROUP)        debugLogA("CONTACT_FLAG_GROUP, ");
 -				if (dwContactFlag & CONTACT_FLAG_INVISIBLE)    debugLogA("CONTACT_FLAG_INVISIBLE, ");
 -				if (dwContactFlag & CONTACT_FLAG_VISIBLE)      debugLogA("CONTACT_FLAG_VISIBLE, ");
 -				if (dwContactFlag & CONTACT_FLAG_IGNORE)       debugLogA("CONTACT_FLAG_IGNORE, ");
 -				if (dwContactFlag & CONTACT_FLAG_SHADOW)       debugLogA("CONTACT_FLAG_SHADOW, ");
 -				if (dwContactFlag & CONTACT_FLAG_AUTHORIZED)   debugLogA("CONTACT_FLAG_AUTHORIZED, ");
 -				if (dwContactFlag & CONTACT_FLAG_MULTICHAT)    debugLogA("CONTACT_FLAG_MULTICHAT, ");
 -				if (dwContactFlag & CONTACT_FLAG_UNICODE_NAME) debugLogA("CONTACT_FLAG_UNICODE_NAME, ");
 -				if (dwContactFlag & CONTACT_FLAG_PHONE)        debugLogA("CONTACT_FLAG_PHONE, ");
 +			if (dwContactFlag & CONTACT_FLAG_REMOVED)      debugLogA("CONTACT_FLAG_REMOVED, ");
 +			if (dwContactFlag & CONTACT_FLAG_GROUP)        debugLogA("CONTACT_FLAG_GROUP, ");
 +			if (dwContactFlag & CONTACT_FLAG_INVISIBLE)    debugLogA("CONTACT_FLAG_INVISIBLE, ");
 +			if (dwContactFlag & CONTACT_FLAG_VISIBLE)      debugLogA("CONTACT_FLAG_VISIBLE, ");
 +			if (dwContactFlag & CONTACT_FLAG_IGNORE)       debugLogA("CONTACT_FLAG_IGNORE, ");
 +			if (dwContactFlag & CONTACT_FLAG_SHADOW)       debugLogA("CONTACT_FLAG_SHADOW, ");
 +			if (dwContactFlag & CONTACT_FLAG_AUTHORIZED)   debugLogA("CONTACT_FLAG_AUTHORIZED, ");
 +			if (dwContactFlag & CONTACT_FLAG_MULTICHAT)    debugLogA("CONTACT_FLAG_MULTICHAT, ");
 +			if (dwContactFlag & CONTACT_FLAG_UNICODE_NAME) debugLogA("CONTACT_FLAG_UNICODE_NAME, ");
 +			if (dwContactFlag & CONTACT_FLAG_PHONE)        debugLogA("CONTACT_FLAG_PHONE, ");
  			debugLogA(")");
  			debugLogA(": server flags: %lu (", dwContactSeverFlags);
 -				if (dwContactSeverFlags & CONTACT_INTFLAG_NOT_AUTHORIZED) debugLogA("CONTACT_INTFLAG_NOT_AUTHORIZED, ");
 +			if (dwContactSeverFlags & CONTACT_INTFLAG_NOT_AUTHORIZED) debugLogA("CONTACT_INTFLAG_NOT_AUTHORIZED, ");
  			debugLogA(")");
  			// add/modify contact
  			if (dwGroupID != 103)//***deb filtering phone/sms contats
 -			if ( _strnicmp(szEmail, "phone", 5))
 -			if (dwControlParam>5)// все параметры правильно инициализированны!
 +			if (_strnicmp(szEmail, "phone", 5))
 +			if (dwControlParam > 5)// все параметры правильно инициализированны!
  			if ((dwContactFlag & (CONTACT_FLAG_GROUP | CONTACT_FLAG_REMOVED)) == 0) {
  				BOOL bAdded;
  				HANDLE hContact = MraHContactFromEmail(szEmail, TRUE, FALSE, &bAdded);
 @@ -1253,19 +1252,19 @@ bool CMraProto::CmdClist2(BinBuffer &buf)  						dwTemp = GetMirandaStatusFromMraStatus(dwStatus, GetMraXStatusIDFromMraUriStatus(szSpecStatusUri), &dwXStatus);
  						if (bAdded) { // update user info
 -							SetContactBasicInfoW(hContact, SCBIFSI_LOCK_CHANGES_EVENTS, (SCBIF_ID|SCBIF_GROUP_ID|SCBIF_FLAG|SCBIF_SERVER_FLAG|SCBIF_STATUS|SCBIF_NICK|SCBIF_PHONES),
 +							SetContactBasicInfoW(hContact, SCBIFSI_LOCK_CHANGES_EVENTS, (SCBIF_ID | SCBIF_GROUP_ID | SCBIF_FLAG | SCBIF_SERVER_FLAG | SCBIF_STATUS | SCBIF_NICK | SCBIF_PHONES),
  								dwID, dwGroupID, dwContactFlag, dwContactSeverFlags, dwTemp, NULL, &wszNick, &szCustomPhones);
  							// request user info from server
  							MraUpdateContactInfo(hContact);
  						}
  						else {
  							if (iGroupMode == 100) { // first start
 -								ptrT tszGroup( db_get_tsa(hContact, "CList", "Group"));
 +								ptrT tszGroup(db_get_tsa(hContact, "CList", "Group"));
  								if (tszGroup)
  									dwGroupID = MraMoveContactToGroup(hContact, dwGroupID, tszGroup);
  							}
 -							SetContactBasicInfoW(hContact, SCBIFSI_LOCK_CHANGES_EVENTS, (SCBIF_ID|SCBIF_GROUP_ID|SCBIF_SERVER_FLAG|SCBIF_STATUS),
 +							SetContactBasicInfoW(hContact, SCBIFSI_LOCK_CHANGES_EVENTS, (SCBIF_ID | SCBIF_GROUP_ID | SCBIF_SERVER_FLAG | SCBIF_STATUS),
  								dwID, dwGroupID, dwContactFlag, dwContactSeverFlags, dwTemp, NULL, &wszNick, &szCustomPhones);
  							if (wszNick.IsEmpty()) { // set the server-side nick
  								wszNick = GetContactNameW(hContact);
 @@ -1281,11 +1280,11 @@ bool CMraProto::CmdClist2(BinBuffer &buf)  						mraWriteContactSettingBlob(hContact, DBSETTING_BLOGSTATUSID, &dwBlogStatusID.QuadPart, sizeof(DWORDLONG));
  						mraSetStringW(hContact, DBSETTING_BLOGSTATUS, wszBlogStatus);
  						mraSetStringW(hContact, DBSETTING_BLOGSTATUSMUSIC, wszBlogStatusMusic);
 -						if ( IsXStatusValid(dwXStatus))
 +						if (IsXStatusValid(dwXStatus))
  							SetExtraIcons(hContact);
  						if (dwTemp != ID_STATUS_OFFLINE) { // пишем клиента только если юзер не отключён, иначе не затираем старое
 -							if ( !szUserAgentFormatted.IsEmpty()) {
 +							if (!szUserAgentFormatted.IsEmpty()) {
  								if (getByte("MirVerRaw", MRA_DEFAULT_MIRVER_RAW) == FALSE)
  									szUserAgentFormatted = MraGetVersionStringFromFormatted(szUserAgentFormatted);
  							}
 @@ -1320,14 +1319,14 @@ bool CMraProto::CmdClist2(BinBuffer &buf)  						MraSetContactStatus(hContact, ID_STATUS_ONLINE);
  						CMStringW wszCustomName = GetContactNameW(hContact);
 -						MraAddContact(hContact, (CONTACT_FLAG_VISIBLE|CONTACT_FLAG_MULTICHAT), -1, szEmail, wszCustomName);
 +						MraAddContact(hContact, (CONTACT_FLAG_VISIBLE | CONTACT_FLAG_MULTICHAT), -1, szEmail, wszCustomName);
  					}
  					else {
  						if (db_get_b(hContact, "CList", "NotOnList", 0) == 0) { // set extra icons and upload contact
  							SetExtraIcons(hContact);
  							if (getByte("AutoAddContactsToServer", MRA_DEFAULT_AUTO_ADD_CONTACTS_TO_SERVER)) { //add all contacts to server
  								GetContactBasicInfoW(hContact, NULL, &dwGroupID, NULL, NULL, NULL, NULL, &wszNick, &szPhones);
 -								MraAddContact(hContact, (CONTACT_FLAG_VISIBLE|CONTACT_FLAG_UNICODE_NAME), dwGroupID, szEmail, wszNick, &szPhones, &wszAuthMessage);
 +								MraAddContact(hContact, (CONTACT_FLAG_VISIBLE | CONTACT_FLAG_UNICODE_NAME), dwGroupID, szEmail, wszNick, &szPhones, &wszAuthMessage);
  							}
  						}
  					}
 @@ -1340,7 +1339,7 @@ bool CMraProto::CmdClist2(BinBuffer &buf)  	else { // контакт лист почемуто не получили
  		// всех в offline и id в нестандарт
  		for (HANDLE hContact = db_find_first(m_szModuleName); hContact; hContact = db_find_next(hContact, m_szModuleName)) {
 -			SetContactBasicInfoW(hContact, SCBIFSI_LOCK_CHANGES_EVENTS, (SCBIF_ID|SCBIF_GROUP_ID|SCBIF_SERVER_FLAG|SCBIF_STATUS),
 +			SetContactBasicInfoW(hContact, SCBIFSI_LOCK_CHANGES_EVENTS, (SCBIF_ID | SCBIF_GROUP_ID | SCBIF_SERVER_FLAG | SCBIF_STATUS),
  				-1, -2, 0, 0, ID_STATUS_OFFLINE, 0, 0, 0);
  			// request user info from server
  			MraUpdateContactInfo(hContact);
 @@ -1368,7 +1367,7 @@ bool CMraProto::CmdProxy(BinBuffer &buf)  	buf >> szEmail >> dwIDRequest >> dwAckType >> szString >> szAddresses >> mguidSessionID;
  	if (dwAckType == MRIM_PROXY_TYPE_FILES) { // файлы, on file recv
  		// set proxy info to file transfer context
 -		if ( !MraMrimProxySetData(MraFilesQueueItemProxyByID(hFilesQueueHandle, dwIDRequest), szEmail, dwIDRequest, dwAckType, szString, szAddresses, &mguidSessionID))
 +		if (!MraMrimProxySetData(MraFilesQueueItemProxyByID(hFilesQueueHandle, dwIDRequest), szEmail, dwIDRequest, dwAckType, szString, szAddresses, &mguidSessionID))
  			MraFilesQueueStartMrimProxy(hFilesQueueHandle, dwIDRequest);
  		else { // empty/invalid session
  			MraProxyAck(PROXY_STATUS_ERROR, szEmail, dwIDRequest, dwAckType, szString, szAddresses, mguidSessionID);
 @@ -1394,7 +1393,7 @@ bool CMraProto::CmdProxyAck(BinBuffer &buf)  				break;
  			case PROXY_STATUS_OK:
  				// set proxy info to file transfer context
 -				if ( !MraMrimProxySetData(hMraMrimProxyData, szEmail, dwIDRequest, dwAckType, szString, szAddresses, &mguidSessionID))
 +				if (!MraMrimProxySetData(hMraMrimProxyData, szEmail, dwIDRequest, dwAckType, szString, szAddresses, &mguidSessionID))
  					MraFilesQueueStartMrimProxy(hFilesQueueHandle, dwIDRequest);
  				break;
  			case PROXY_STATUS_ERROR:
 @@ -1457,7 +1456,7 @@ bool CMraProto::CmdBlogStatus(BinBuffer &buf)  bool CMraProto::MraCommandDispatcher(mrim_packet_header_t *pmaHeader)
  {
 -	WCHAR szBuff[4096] = {0};
 +	WCHAR szBuff[4096] = { 0 };
  	DWORD dwTemp, dwAckType;
  	size_t dwSize;
  	HANDLE hContact = NULL;
 @@ -1509,17 +1508,17 @@ bool CMraProto::MraCommandDispatcher(mrim_packet_header_t *pmaHeader)  		dwAckType = m_dwEmailMessagesUnread;// save old value
  		m_dwEmailMessagesUnread = dwTemp;// store new value
 -		if (getByte("IncrementalNewMailNotify", MRA_DEFAULT_INC_NEW_MAIL_NOTIFY) == 0 || dwAckType<dwTemp || dwTemp == 0)
 +		if (getByte("IncrementalNewMailNotify", MRA_DEFAULT_INC_NEW_MAIL_NOTIFY) == 0 || dwAckType < dwTemp || dwTemp == 0)
  			MraUpdateEmailStatus("", "", 0, 0);
  		break;
  	case MRIM_CS_SMS_ACK:
  		buf >> dwTemp;
 -		if ( MraSendQueueFind(hSendQueueHandle, pmaHeader->seq, NULL, &hContact, &dwAckType, &pByte, &dwSize) == NO_ERROR) {
 +		if (MraSendQueueFind(hSendQueueHandle, pmaHeader->seq, NULL, &hContact, &dwAckType, &pByte, &dwSize) == NO_ERROR) {
  			CMStringA szEmail;
  			if (mraGetStringA(NULL, "e-mail", szEmail)) {
  				DWORD dwPhoneSize = *(DWORD*)pByte;
 -				DWORD dwMessageSize = dwSize-(dwPhoneSize+sizeof(DWORD)+2);
 +				DWORD dwMessageSize = dwSize - (dwPhoneSize + sizeof(DWORD)+2);
  				LPSTR lpszPhone = (LPSTR)pByte + sizeof(DWORD);
  				LPWSTR lpwszMessage = (LPWSTR)(lpszPhone + dwPhoneSize + 1);
 @@ -1562,7 +1561,7 @@ DWORD CMraProto::MraRecvCommand_Message(DWORD dwTime, DWORD dwFlags, CMStringA &  	CMStringA lpszMessageExt;
  	CMStringW wszMessage;
 -	PROTORECVEVENT pre = {0};
 +	PROTORECVEVENT pre = { 0 };
  	pre.timestamp = dwTime;
  	// check flags and datas
 @@ -1590,31 +1589,31 @@ DWORD CMraProto::MraRecvCommand_Message(DWORD dwTime, DWORD dwFlags, CMStringA &  			else { // преобразуем в юникод текст только если он в АНСИ и если это не Флэш мультик и будильник тоже не нуждается в этом
  				CMStringA lpsAuthMessage;
  				buf >> lpsAuthMessage;
 -				wszMessage = ptrW( mir_a2u_cp(lpsAuthMessage, MRA_CODE_PAGE));
 +				wszMessage = ptrW(mir_a2u_cp(lpsAuthMessage, MRA_CODE_PAGE));
  			}
  			mir_free(lpbAuthData);
  		}
  	}
  	else {
  		// unicode text
 -		if ((dwFlags & (MESSAGE_FLAG_ALARM|MESSAGE_FLAG_FLASH|MESSAGE_FLAG_v1p16)) && (dwFlags & MESSAGE_FLAG_CP1251) == 0) {
 +		if ((dwFlags & (MESSAGE_FLAG_ALARM | MESSAGE_FLAG_FLASH | MESSAGE_FLAG_v1p16)) && (dwFlags & MESSAGE_FLAG_CP1251) == 0) {
  			plpsText.AppendChar(0);  // compensate difference between ASCIIZ & WCHARZ
  			wszMessage = (WCHAR*)plpsText.GetString();
  		}
  		else wszMessage = plpsText;
 -		if (dwFlags & (MESSAGE_FLAG_CONTACT|MESSAGE_FLAG_NOTIFY|MESSAGE_FLAG_SMS|MESSAGE_SMS_DELIVERY_REPORT|MESSAGE_FLAG_ALARM))
 +		if (dwFlags & (MESSAGE_FLAG_CONTACT | MESSAGE_FLAG_NOTIFY | MESSAGE_FLAG_SMS | MESSAGE_SMS_DELIVERY_REPORT | MESSAGE_FLAG_ALARM))
  			; // do nothing; there's no extra part in a message
  		else {
  			if ((dwFlags & MESSAGE_FLAG_RTF) && !plpsRFTText.IsEmpty()) { //MESSAGE_FLAG_FLASH there
 -				size_t dwRFTBuffSize = ((plpsRFTText.GetLength()*16)+8192);
 +				size_t dwRFTBuffSize = ((plpsRFTText.GetLength() * 16) + 8192);
  				mir_ptr<BYTE> lpbRTFData((LPBYTE)mir_calloc(dwRFTBuffSize));
  				if (lpbRTFData) {
  					unsigned dwCompressedSize;
  					mir_ptr<BYTE> lpbCompressed((LPBYTE)mir_base64_decode(plpsRFTText, &dwCompressedSize));
  					DWORD dwRTFDataSize = dwRFTBuffSize;
 -					if ( uncompress(lpbRTFData, &dwRTFDataSize, lpbCompressed, dwCompressedSize) == Z_OK) {
 +					if (uncompress(lpbRTFData, &dwRTFDataSize, lpbCompressed, dwCompressedSize) == Z_OK) {
  						BinBuffer buf(lpbRTFData, dwRTFDataSize);
  						CMStringA lpsRTFString, lpsBackColour, szString;
 @@ -1659,7 +1658,7 @@ DWORD CMraProto::MraRecvCommand_Message(DWORD dwTime, DWORD dwFlags, CMStringA &  		mraGetStringA(NULL, "e-mail", szEmail);
  		CMStringW wszMessageXMLEncoded = EncodeXML(wszMessage);
 -		ptrA lpszMessageUTF( mir_utf8encodeW(wszMessageXMLEncoded));
 +		ptrA lpszMessageUTF(mir_utf8encodeW(wszMessageXMLEncoded));
  		CMStringA szText;
  		if (dwFlags & MESSAGE_SMS_DELIVERY_REPORT) {
 @@ -1725,7 +1724,7 @@ DWORD CMraProto::MraRecvCommand_Message(DWORD dwTime, DWORD dwFlags, CMStringA &  					break;
  				case MULTICHAT_INVITE:
  					MraChatSessionInvite(hContact, lpsEMailInMultiChat, dwTime);// LPS sender
 -					MraAddContact(hContact, (CONTACT_FLAG_VISIBLE|CONTACT_FLAG_MULTICHAT|CONTACT_FLAG_UNICODE_NAME), -1, plpsFrom, lpsMultichatName);
 +					MraAddContact(hContact, (CONTACT_FLAG_VISIBLE | CONTACT_FLAG_MULTICHAT | CONTACT_FLAG_UNICODE_NAME), -1, plpsFrom, lpsMultichatName);
  					break;
  				default:
  					_CrtDbgBreak();
 @@ -1735,7 +1734,7 @@ DWORD CMraProto::MraRecvCommand_Message(DWORD dwTime, DWORD dwFlags, CMStringA &  			else if (dwFlags & MESSAGE_FLAG_AUTHORIZE) { // auth request
  				BOOL bAutoGrantAuth = FALSE;
 -				if ( IsEMailChatAgent(plpsFrom))
 +				if (IsEMailChatAgent(plpsFrom))
  					bAutoGrantAuth = FALSE;
  				else {
  					// temporary contact
 @@ -1769,14 +1768,14 @@ DWORD CMraProto::MraRecvCommand_Message(DWORD dwTime, DWORD dwFlags, CMStringA &  				db_unset(hContact, "CList", "Hidden");
  				if (dwFlags & MESSAGE_FLAG_CONTACT) { // contacts received
 -					ptrA lpbBuffer( mir_u2a_cp(wszMessage, MRA_CODE_PAGE));
 +					ptrA lpbBuffer(mir_u2a_cp(wszMessage, MRA_CODE_PAGE));
  					pre.flags = 0;
  					pre.szMessage = (LPSTR)lpbBuffer;
  					pre.lParam = strlen(lpbBuffer);
  					LPSTR lpbBufferCurPos = lpbBuffer;
  					while (TRUE) { // цикл замены ; на 0
 -						lpbBufferCurPos = (LPSTR)MemoryFindByte((lpbBufferCurPos-(LPSTR)lpbBuffer), lpbBuffer, pre.lParam, ';');
 +						lpbBufferCurPos = (LPSTR)MemoryFindByte((lpbBufferCurPos - (LPSTR)lpbBuffer), lpbBuffer, pre.lParam, ';');
  						if (!lpbBufferCurPos)
  							break;
 @@ -1804,7 +1803,7 @@ DWORD CMraProto::MraRecvCommand_Message(DWORD dwTime, DWORD dwFlags, CMStringA &  					}
  					else {
  						// some plugins can change pre.szMessage pointer and we failed to free it
 -						ptrA lpszMessageUTF( mir_utf8encodeW(wszMessage));
 +						ptrA lpszMessageUTF(mir_utf8encodeW(wszMessage));
  						pre.szMessage = lpszMessageUTF;
  						pre.flags = PREF_UTF;
  						ProtoChainRecvMsg(hContact, &pre);
 @@ -1824,7 +1823,7 @@ DWORD GetMraXStatusIDFromMraUriStatus(const char *szStatusUri)  {
  	if (szStatusUri)
  		for (size_t i = 0; lpcszStatusUri[i]; i++)
 -			if ( !_stricmp(lpcszStatusUri[i], szStatusUri))
 +			if (!_stricmp(lpcszStatusUri[i], szStatusUri))
  				return i;
  	return MRA_XSTATUS_UNKNOWN;
 @@ -1832,9 +1831,9 @@ DWORD GetMraXStatusIDFromMraUriStatus(const char *szStatusUri)  DWORD GetMraStatusFromMiradaStatus(DWORD dwMirandaStatus, DWORD dwXStatusMir, DWORD *pdwXStatusMra)
  {
 -	if ( IsXStatusValid(dwXStatusMir)) {
 +	if (IsXStatusValid(dwXStatusMir)) {
  		if (pdwXStatusMra)
 -			*pdwXStatusMra = (dwXStatusMir+MRA_XSTATUS_INDEX_OFFSET-1);
 +			*pdwXStatusMra = (dwXStatusMir + MRA_XSTATUS_INDEX_OFFSET - 1);
  		return STATUS_USER_DEFINED;
  	}
 @@ -1865,7 +1864,7 @@ DWORD GetMraStatusFromMiradaStatus(DWORD dwMirandaStatus, DWORD dwXStatusMir, DW  	case ID_STATUS_INVISIBLE:
  		if (pdwXStatusMra) *pdwXStatusMra = MRA_XSTATUS_INVISIBLE;
 -		return (STATUS_ONLINE|STATUS_FLAG_INVISIBLE);
 +		return (STATUS_ONLINE | STATUS_FLAG_INVISIBLE);
  	}
  	if (pdwXStatusMra) *pdwXStatusMra = MRA_XSTATUS_OFFLINE;
 @@ -1889,7 +1888,7 @@ DWORD GetMirandaStatusFromMraStatus(DWORD dwMraStatus, DWORD dwXStatusMra, DWORD  			if (pdwXStatusMir) *pdwXStatusMir = MRA_MIR_XSTATUS_UNKNOWN;
  			return ID_STATUS_ONLINE;
  		}
 -		if (pdwXStatusMir) *pdwXStatusMir = dwXStatusMra-MRA_XSTATUS_INDEX_OFFSET+1;
 +		if (pdwXStatusMir) *pdwXStatusMir = dwXStatusMra - MRA_XSTATUS_INDEX_OFFSET + 1;
  		return ID_STATUS_ONLINE;
  	}
 @@ -1959,7 +1958,7 @@ void BinBuffer::getStringW(CMStringW& ret)  		m_data += sizeof(DWORD);
  		m_len -= sizeof(DWORD);
  		if (m_len >= dwLen) {
 -			ret = CMStringW((LPWSTR)m_data, dwLen/2);
 +			ret = CMStringW((LPWSTR)m_data, dwLen / 2);
  			m_data += dwLen;
  			m_len -= dwLen;
  			return;
 diff --git a/protocols/MRA/src/Mra_svcs.cpp b/protocols/MRA/src/Mra_svcs.cpp index c330783513..1eb2167f60 100644 --- a/protocols/MRA/src/Mra_svcs.cpp +++ b/protocols/MRA/src/Mra_svcs.cpp @@ -315,10 +315,10 @@ INT_PTR CMraProto::MraSetListeningTo(WPARAM wParam, LPARAM lParam)  	}
  	else if (pliInfo->dwFlags & LTI_UNICODE) {
  		CMStringW wszListeningTo;
 -		if ( ServiceExists(MS_LISTENINGTO_GETPARSEDTEXT))
 +		if (ServiceExists(MS_LISTENINGTO_GETPARSEDTEXT))
  			wszListeningTo = ptrT((LPWSTR)CallService(MS_LISTENINGTO_GETPARSEDTEXT, (WPARAM)L"%track%. %title% - %artist% - %player%", (LPARAM)pliInfo));
  		else
 -			wszListeningTo.Format(L"%s. %s - %s - %s", pliInfo->ptszTrack?pliInfo->ptszTrack:_T(""), pliInfo->ptszTitle?pliInfo->ptszTitle:_T(""), pliInfo->ptszArtist?pliInfo->ptszArtist:_T(""), pliInfo->ptszPlayer?pliInfo->ptszPlayer:_T(""));
 +			wszListeningTo.Format(L"%s. %s - %s - %s", pliInfo->ptszTrack ? pliInfo->ptszTrack : _T(""), pliInfo->ptszTitle ? pliInfo->ptszTitle : _T(""), pliInfo->ptszArtist ? pliInfo->ptszArtist : _T(""), pliInfo->ptszPlayer ? pliInfo->ptszPlayer : _T(""));
  		mraSetStringExW(NULL, DBSETTING_BLOGSTATUSMUSIC, wszListeningTo);
  		MraChangeUserBlogStatus(MRIM_BLOG_STATUS_MUSIC, wszListeningTo, 0);
 @@ -339,14 +339,12 @@ int CMraProto::MraMusicChanged(WPARAM wParam, LPARAM lParam)  		break;
  	case WAT_EVENT_NEWTRACK:
 -		{
 -			SONGINFO *psiSongInfo;
 -			if (WAT_RES_OK == CallService(MS_WAT_GETMUSICINFO, WAT_INF_UNICODE, (LPARAM)&psiSongInfo)) {
 -				CMStringW wszMusic;
 -				wszMusic.Format(_T("%ld. %s - %s - %s"), psiSongInfo->track, psiSongInfo->artist, psiSongInfo->title, psiSongInfo->player);
 -				mraSetStringExW(NULL, DBSETTING_BLOGSTATUSMUSIC, wszMusic);
 -				MraChangeUserBlogStatus(MRIM_BLOG_STATUS_MUSIC, wszMusic, 0);
 -			}
 +		SONGINFO *psiSongInfo;
 +		if (WAT_RES_OK == CallService(MS_WAT_GETMUSICINFO, WAT_INF_UNICODE, (LPARAM)&psiSongInfo)) {
 +			CMStringW wszMusic;
 +			wszMusic.Format(_T("%ld. %s - %s - %s"), psiSongInfo->track, psiSongInfo->artist, psiSongInfo->title, psiSongInfo->player);
 +			mraSetStringExW(NULL, DBSETTING_BLOGSTATUSMUSIC, wszMusic);
 +			MraChangeUserBlogStatus(MRIM_BLOG_STATUS_MUSIC, wszMusic, 0);
  		}
  		break;
  	}
 @@ -398,13 +396,13 @@ INT_PTR CMraProto::MraSetXStatusEx(WPARAM wParam, LPARAM lParam)  		if (pData->flags & CSSF_MASK_STATUS) {
  			dwXStatus = *pData->status;
 -			if ( IsXStatusValid(dwXStatus) == FALSE && dwXStatus != MRA_MIR_XSTATUS_NONE)
 +			if (IsXStatusValid(dwXStatus) == FALSE && dwXStatus != MRA_MIR_XSTATUS_NONE)
  				iRet = 1;
  		}
  		else dwXStatus = m_iXStatus;
 -		if (pData->flags & (CSSF_MASK_NAME|CSSF_MASK_MESSAGE) && iRet == 0) {
 -			if ( IsXStatusValid(dwXStatus) || dwXStatus == MRA_MIR_XSTATUS_NONE) {
 +		if (pData->flags & (CSSF_MASK_NAME | CSSF_MASK_MESSAGE) && iRet == 0) {
 +			if (IsXStatusValid(dwXStatus) || dwXStatus == MRA_MIR_XSTATUS_NONE) {
  				CHAR szValueName[MAX_PATH];
  				// set custom status name
 @@ -434,17 +432,17 @@ INT_PTR CMraProto::MraSetXStatusEx(WPARAM wParam, LPARAM lParam)  				}
  			}
  			// неудача только если мы не ставили Хстатус и попытались записать сообщения для "нет" статуса
 -			else if ( !(pData->flags & CSSF_MASK_STATUS))
 +			else if (!(pData->flags & CSSF_MASK_STATUS))
  				iRet = 1;
  		}
  		// set/update xstatus code and/or message
 -		if (pData->flags & (CSSF_MASK_STATUS|CSSF_MASK_NAME|CSSF_MASK_MESSAGE) && iRet == 0)
 +		if (pData->flags & (CSSF_MASK_STATUS | CSSF_MASK_NAME | CSSF_MASK_MESSAGE) && iRet == 0)
  			MraSetXStatusInternal(dwXStatus);
  		// hide menu items
  		if (pData->flags & CSSF_DISABLE_UI) {
 -			bHideXStatusUI = (*pData->wParam)? FALSE:TRUE;
 +			bHideXStatusUI = (*pData->wParam) ? FALSE : TRUE;
  			for (DWORD i = 0; i < MRA_XSTATUS_COUNT; i++)
  				Menu_ShowItem(hXStatusMenuItems[i], !bHideXStatusUI);
  		}
 @@ -561,8 +559,8 @@ INT_PTR CMraProto::MraSendNudge(WPARAM wParam, LPARAM lParam)  		CMStringA szEmail;
  		if (mraGetStringA(hContact, "e-mail", szEmail))
 -			if (MraMessage(FALSE, hContact, 0, (MESSAGE_FLAG_RTF | MESSAGE_FLAG_ALARM), szEmail, lpwszAlarmMessage, NULL, 0))
 -				return 0;
 +		if (MraMessage(FALSE, hContact, 0, (MESSAGE_FLAG_RTF | MESSAGE_FLAG_ALARM), szEmail, lpwszAlarmMessage, NULL, 0))
 +			return 0;
  	}
  	return 1;
  }
  | 
