diff --git a/_Genshtab/karta_gsh_2km_new.zmp/18.bmp b/_Genshtab/karta_gsh_2km_new.zmp/18.bmp
new file mode 100644
index 000000000..25edf7b56
Binary files /dev/null and b/_Genshtab/karta_gsh_2km_new.zmp/18.bmp differ
diff --git a/_Genshtab/karta_gsh_2km_new.zmp/24.bmp b/_Genshtab/karta_gsh_2km_new.zmp/24.bmp
new file mode 100644
index 000000000..95db5e053
Binary files /dev/null and b/_Genshtab/karta_gsh_2km_new.zmp/24.bmp differ
diff --git a/_Genshtab/karta_gsh_2km_new.zmp/GetUrlScript.txt b/_Genshtab/karta_gsh_2km_new.zmp/GetUrlScript.txt
new file mode 100644
index 000000000..52c6241d1
--- /dev/null
+++ b/_Genshtab/karta_gsh_2km_new.zmp/GetUrlScript.txt
@@ -0,0 +1,57 @@
+function GetCode(const url: AnsiString): Cardinal;
+var
+ VResponseCode: Cardinal;
+ VResponseHeader, VResponseData: AnsiString;
+begin
+ Result := 1;
+ if Assigned(Downloader) then begin
+ VResponseHeader := '';
+ VResponseData := '';
+ VResponseCode := Downloader.DoHttpRequest(url, '', '', VResponseHeader, VResponseData);
+ Result := VResponseCode;
+ end;
+end;
+
+var
+ BaseUrl: string;
+ code: Cardinal;
+ z_ok, z_no: integer;
+ r: integer;
+begin
+ ResultURL := '';
+ z_ok := StrToIntDef(GetBefore(';', ScriptBuffer), 1); // Максимальный масштаб, который точно есть
+ z_no := StrToIntDef(GetAfter(';', ScriptBuffer), 25); // Минимальный масштаб, которого точно нет
+
+ // Масштаба нет - говорить не о чем
+ if getz >= z_no then exit;
+
+ // Выбор зеркала, если не указана версия
+ if version = '' then
+ r := random(3)
+ else
+ r := StrToInt(version);
+
+ case r of
+ 0: BaseUrl := GetURLBase;
+ 1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, 'http://91.237.82.95:8088', 'https://maps.melda.ru');
+ 2: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088/pub/genshtab', 't.caucasia.ru:80');
+ end;
+
+ // Проверяем наличие масштаба
+ if getz > z_ok then begin
+ code := GetCode(BaseUrl+'z'+inttostr(getz)+'/');
+
+ // Внимание! Если сервер вернёт 403 - code почему-то будет 0. Так что выбор "404 или что-то иное"
+ // Если дело дошло до проверки наличия масштаба - значит какая-то граница (z_ok / z_no) точно подвинется.
+ if code = 404 then z_no := getz else z_ok := getz;
+
+ // Сохраняем актуализированные границы для последующих вызовов
+ ScriptBuffer := inttostr(z_ok) + ';' + inttostr(z_no);
+
+ // Масштаба нет (о чём могли только что при проверке узнать) - говорить не о чем
+ if getz >= z_no then exit;
+ end;
+
+ // Ок, качаем тайлик
+ ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg';
+end.
diff --git a/_Genshtab/karta_gsh_2km_new.zmp/info.txt b/_Genshtab/karta_gsh_2km_new.zmp/info.txt
new file mode 100644
index 000000000..af6f3ab99
--- /dev/null
+++ b/_Genshtab/karta_gsh_2km_new.zmp/info.txt
@@ -0,0 +1,3 @@
+
+ , garl@mail.ru
+
diff --git a/_Genshtab/karta_gsh_2km_new.zmp/params.txt b/_Genshtab/karta_gsh_2km_new.zmp/params.txt
new file mode 100644
index 000000000..61f818f82
--- /dev/null
+++ b/_Genshtab/karta_gsh_2km_new.zmp/params.txt
@@ -0,0 +1,20 @@
+
+[PARAMS]
+pnum=144
+GUID={AF077DC2-E749-4963-9C7D-DEAA705A18F6}
+name_ru=Генштаб 2km (new)
+name=Genshtab 2 km (new)
+name_uk=Генштаб 2 км (new)
+NameInCache=Genshtab2km_new
+DefURLBase=http://91.237.82.95:8088/pub/genshtab/2km.new/
+ParentSubMenu_ru=Генштаб
+ParentSubMenu=Genshtab
+ParentSubMenu_uk=Генштаб
+Ext=.jpg
+projection=1
+sradiusa=6378137
+sradiusb=6378137
+DefHotKey=50
+ContentType="image/jpeg"
+MaxConnectToServerCount=1
+IsUseDownloaderInScript=1