де можно скачать как можно больше фильтров для AdBlock? Поискал по интернету - ничего путного не нашел. И еще, какой адрес лучше прописать в пути для синхронизации фильтров? Поделитесь ссылочками, пожалуйста.
Тут должна была быть подпись. А, да... Вот она и есть.
Отсутствует
Tarn, Doe John™, burguy
Готово.
спасает следующий фильтр
||katani.dp.ua/img2/$domain=katani.dp.ua
Спасибо! Ограничение по домену не обязательно: вряд ли их "картинки второго сорта" будут нужны на других сайтах.
Добавлено 18-07-2011 16:58:04
я пока адблок попап дополнение не использую - может и правда поставить его..?
Угу. Там при скачивании всплывающее окно.
Добавлено 18-07-2011 17:01:10
iDev.Pi
Счётчик и так блокируется антисчётчиком - это видно, если открыть http://advstat.letitbit.net/share_fr.html в отдельной вкладке.
Отредактировано Йцукен (18-07-2011 17:01:10)
Отсутствует
"Яндекс" частично перекрыл доступ к SMS абонентов "Мегафона"
По одной из версий, причиной попадания SMS в кэш "Яндекса" стал счетчик статистического сервиса "Яндекс.Метрика", установленный на страницах сайта "Мегафона". "Яндекс" и "Мегафон" обещают предоставить свои комментарии по поводу ситуации в ближайшее время.
Шикарно.
Отсутствует
А если там заблочить #ad_back и #ad_mes
А-а! А я первого и не заметил!
Добавил fileshare.in.ua##[id^="ad_"]
Добавлено 18-07-2011 17:15:47
Lain_13
Ага. Всё видно... Собственно говоря, и раньше смски (и не только) в интернете были, но ведь на спец.сервере, для посвящённых. А сейчас - "читай - не хочу".
Отредактировано Йцукен (18-07-2011 17:15:47)
Отсутствует
Йцукен
Кстати, вот это ещё один опсос сфейлил идентичным образом: http://yandex.ua/yandsearch?text=&site=sms.prm.ru&lr=143
Добавлено 18-07-2011 17:21:47
Я пока занят и что у вас тут было с моего последнего появления не читал.
Отредактировано Lain_13 (18-07-2011 17:22:01)
Отсутствует
"Яндекс" объяснил попадание в поиск SMS от "Мегафона"
На сайте www.sendsms.megafon.ru отсутствовал файл robots.txt, в котором прописываются инструкции для поисковых роботов
... !!!
Отсутствует
iDev.Pi
Счётчик и так блокируется антисчётчиком - это видно, если открыть http://advstat.letitbit.net/share_fr.html в отдельной вкладке.
Блокируются счётчики на странице http://advstat.letitbit.net/share_fr.html
а на странице http://shareflare.net/download3.php счётчиком выступает сама страница http://advstat.letitbit.net/share_fr.html
Т.е. она уже загружается, а раз загружается - то можно посчитать сколько раз и кем.
mzfx
Отсутствует
iDev.Pi
Если бы считали с помощью этой страницы, то счётчик _на_ней_ был бы не нужен. Счётчик виден и на http://shareflare.net/download3.php, и на http://advstat.letitbit.net/share_fr.html (это один и тот же счётчик в одном и том же фрейме), просто загружается он не каждый раз. А фрейм загружается потому, что в нем кроме счётчика - реклама (блокируются скрипты, и неизвестно что бы было, если бы не блокировались). И заголовок страницы: "AD".
Поэтому ненужно умножать сущности без надобности.
Отсутствует
Если бы считали с помощью этой страницы, то счётчик _на_ней_ был бы не нужен.
Это заблуждение.
Контроль (т.е. счётчики) может быть с 2-ух сторон между партнёрами (shareflare.net и letitbit.net).
mzfx
Отсутствует
Мне кажется или advstat.letitbit.net это просто лишний ресурс, загрузка которого даром не упёрлась?
вот и я о том же - его надо заблокировать.
Добавлено 19-07-2011 15:07:26
http://msk.rusavtobus.ru/ - можно через id элемента #topbanner, но лучше по-моему заблокировать рекламную сеть smilink.ru
Отредактировано iDev.Pi (19-07-2011 15:07:26)
mzfx
Отсутствует
iDev.Pi
на грувшарке
Можно без сленга? Иногда поисковиком приходится пользоваться, чтобы понять, о чём речь. На http://grooveshark.com.
дубльклик - "какая-то"? Наверное, самая известная. Если там что-то не блокируется, то вряд-ли просто так. Поэтому:
1) Рекламу там видно?
2) Если заблокировать - музыка воспроизводится, сайт работает?
На msk.rusavtobus.ru рекламы не вижу. #topbanner вижу, smilink.ru в списке элементов не вижу, smilink.ru - это редирект на Яндекс.Пробки http://yaprobki.ru/.
Отсутствует
http://streamzone.org/ почистить бы от рекламы (полно её просто).
Можно без сленга?
ок, чего-то ссылка не вставилась
дубльклик - "какая-то"? Наверное, самая известная. Если там что-то не блокируется, то вряд-ли просто так.
если бы она не просто так, то она была бы заблокирована глобально, но внесена в исключения для этого сайта
1) Рекламу там видно?
вроде нет
2) Если заблокировать - музыка воспроизводится, сайт работает?
да, музыка играет, логинится нормально и т.п.
Добавлено 19-07-2011 18:30:17
smilink.ru - это редирект на Яндекс.Пробки http://yaprobki.ru/.
куда он там редиректит - не важно, хоть на гугл, это не означает что эту вещь не надо вырезать, т.к. это прежде всего именно реклама + любая реклама = каунтер.
На msk.rusavtobus.ru рекламы не вижу.
появляется вверху после любого поиска (2 клика по карте и нажать "найти") + здесь, например: http://avto.rusavtobus.ru/#
Отредактировано iDev.Pi (19-07-2011 18:30:17)
mzfx
Отсутствует
iDev.Pi
если бы она не просто так, то она была бы заблокирована глобально, но внесена в исключения для этого сайта
Дело в том, что они бы давно были заблокированы всеми известными блокировщиками, но они же стараются сохранить прибыль и потому делают так, чтобы при блокировке ad.doubleclick.net блокировалась не только реклама, но и полезная информация во многих местах. Поэтому в изилисте давно отказались от огромного списка исключений для doubleclick.net и вместо него сделали список более точных правил (хотя даже сейчас есть и исключения). Тем более что они вызывали у пользователей вопросы с недоверием: "почему doubleclick в исключениях?", особенно если из-за исключения где-то проскакивала реклама.
Поэтому, раз рекламы не видно, то и блокировать doubleclick не стоит.
Добавлено 20-07-2011 08:43:31
появляется вверху после любого поиска (2 клика по карте и нажать "найти") + здесь, например: http://avto.rusavtobus.ru/#
Наверное, зависит от IP.
куда он там редиректит - не важно
Важно, чем именно является smilink.ru и как его блокировать. Это домен Яндекс.Пробок, поэтому если заблокировать его весь, то заблокированными могут оакзаться, например, старые информеры Яндекс.Пробок.
Отредактировано Йцукен (20-07-2011 08:57:49)
Отсутствует
Кто-нибудь может объяснить чем занимается данный скрипт (в спойлере) и стоит ли его блокировать?
May the FOSS be with you!
Отсутствует
George Yves
predictad_ac_off = false; predictad_srch_detect_lb = true; predictad_auto_inj_when_less_then_min_input = true; predictad_auto_inj_then_min_input = 4; predictad_detection_script_timeout = 20000; var predictad_already_tried_detect_url = new Array(); var predictad_isIE = (navigator.userAgent.indexOf('MSIE') > 0); var predictad_onlyOnIE = false; predictad_hasInputQ = false; predictad_inputs_count = 0; predictad_caller_obj = null; predictad_append_scripts = new Array(); predictad_append_scripts_timeout = new Array(); predictad_possibleDetectionsURLs = new Array(); predictad_onErrorDetectingURLs = new Array(); var predictad_src_id = 1; var predictad_detect_retry_attempts = 2; var predictad_detect_current_attempt = 1; var predictad_detect_complete = false; var predictad_detect_complete_num = 0; predictad_has_addon = true; function predictad_warpOnKeyDown(f) { var a = f.onkeydown; f.onkeydown = function () { if (predictad_caller_obj == null) predictad_caller_obj = this; predictad_engage(1); if (a && (typeof a == 'function')) a() } } var predictDetectF = function () { function PscriptParseQuery(a) { if (!a) return false; var b = a.split(/[;&]/); var c = new Object(); for (var i = 0; i < b.length; i++) { var d = b[i].split('='); if (!d || d.length != 2) continue; var e = unescape(d[0]); var f = unescape(d[1]); f = f.replace(/\\+/g, ' '); c[e] = f } return c } var s = /(predictad|suggestme|acpro|enable)[a-z0-9._-]*\\.js(\\?.*)+$/; var t = document.getElementsByTagName('script'); var u = t.length - 1; for (var v = 0; v < t.length; v++) { if (t[v].src.match(s)) { u = v; break } } var w = t[u]; var y = w.src.replace(/^[^\\?]+(\\?)*/, ''); var z = PscriptParseQuery(y); var A = '4831'; var B = z['si'] || A; var C = z['iid'] || ''; var D = z['tid'] || ''; if (typeof predictad_working_site == "undefined") { predictad_working_site = B } predictad_iid = ''; if (C != '') { predictad_iid += C } predictad_tid = ''; if (D != '') { predictad_tid += D } function predictad_utf8encode(a) { if ('string' != typeof a) return ''; a = a.replace(/\\r\\n/g, "\\n"); var b = ""; for (var n = 0; n < a.length; n++) { var c = a.charCodeAt(n); if ('null' != typeof c) { if (c < 128) { b += String.fromCharCode(c) } else if ((c > 127) && (c < 2048)) { b += String.fromCharCode((c >> 6) | 192); b += String.fromCharCode((c & 63) | 128) } else { b += String.fromCharCode((c >> 12) | 224); b += String.fromCharCode(((c >> 6) & 63) | 128); b += String.fromCharCode((c & 63) | 128) } } } return b } var E = function (a) { var b = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_*"; var c = "", chr1, chr2, chr3, enc1, enc2, enc3, enc4, i = 0; do { chr1 = a.charCodeAt(i++); chr2 = a.charCodeAt(i++); chr3 = a.charCodeAt(i++); enc1 = chr1 >> 2; enc2 = ((chr1 & 3) << 4) | (chr2 >> 4); enc3 = ((chr2 & 15) << 2) | (chr3 >> 6); enc4 = chr3 & 63; if (isNaN(chr2)) { enc3 = enc4 = 64 } else if (isNaN(chr3)) { enc4 = 64 } c = c + b.charAt(enc1) + b.charAt(enc2) + b.charAt(enc3) + b.charAt(enc4) } while (i < a.length); return c }; predictad_activate_detection = false; function predictad_detect_src() { var a = document.getElementsByTagName('input'); if (a.length > 0) { var b = ''; var c = '@'; var d = '@'; var e = '@'; var f = '@'; var g = '@'; for (var i = 0; i < a.length; i++) { if (a[i] == null) continue; var h = a[i].getAttribute('name'); var j = a[i].getAttribute('id'); var k = a[i].getAttribute('type'); var l = a[i].className; var m = a[i].getAttribute('value'); var n = a[i].getAttribute('title'); var o = a[i].getAttribute('autocomplete'); if (k == null || k == '') k = 'text'; if (k == 'search') k = 'text'; var p = k.toLowerCase(); if (p != 'text') { continue } if (j == null) { j = 'acpro_inp' + i; a[i].setAttribute('id', j) } if (h == null) h = j; if (n == null) n = ''; if (o == null) o = ''; predictad_activate_detection = true; var q = h.toLowerCase(); var r = j.toLowerCase(); if (p == 'text') { if (q.indexOf("email") >= 0 || q.indexOf("username") >= 0 || q.indexOf("password") >= 0 || r.indexOf("email") >= 0 || r.indexOf("username") >= 0 || r.indexOf("password") >= 0) { continue } predictad_inputs_count++; predictad_warpOnKeyDown(a[i]); if (predictad_ac_off) { if (o == '') a[i].setAttribute('autocomplete', 'off') } else { if (o == '' && (j == "q" || h == "q")) { predictad_hasInputQ = true; a[i].setAttribute('autocomplete', 'off') } } b += j + '|'; if (h == j) { h = '' } c += h + '|'; d += l + '|'; e += m + '|'; f += n + '|'; g += o + '|' } } return b + c + d + e + f + g } return '' } function predictad_detect_frm() { var a = document.getElementsByTagName('form'); if (a.length > 0) { var b = ''; var c = '@'; var d = '@'; var e = '@'; var f = '@'; for (var i = 0; i < a.length; i++) { if (a[i] == null) continue; var g = a[i].getAttribute('name'); var h = a[i].getAttribute('id'); var j = a[i].getAttribute('method'); var k = a[i].getAttribute('action'); var l = a[i].getAttribute('onsubmit'); if (g == null) g = ''; if (h == null) h = ''; if (j == null) j = 'get'; if (k == null) k = ''; if (l == null) { l = '' } else { if (typeof l == 'function') { l = l.toString(); l = l.replace('\\n', ''); l = l.replace('\\r', ''); l = l.replace('function anonymous(){', ''); l = l.substring(0, l.length - 1); l = l.replace(/^\\s+|\\s+$/g, "") } } b += h + '|'; c += g + '|'; d += j + '|'; e += k + '|'; f += l + '|' } return b + c + d + e + f + e } return '' } function predictad_detect_cse() { var a = ''; var b = document.getElementById('googleSearchUnitIframe'); a += ((b != null) ? '1' : ''); a += '|' + ((typeof window.googleSearchIframeName != "undefined") ? googleSearchIframeName : ''); a += '|' + ((typeof window.googleSearchFrameWidth != "undefined") ? googleSearchFrameWidth : ''); a += '|' + ((typeof window.googleSearchDomain != "undefined") ? googleSearchDomain : ''); return a } if (typeof suggestmeyes_loaded == 'undefined') { var F = 2; var G = '^'; var H = predictad_detect_src(); var I = predictad_detect_frm(); var J = predictad_detect_cse(); var K = false; if (H == '@@@@@' || H == '') { K = true; predictad_inputs_count = -1 } var L = ''; try { L = (("https:" == document.location.protocol) ? document.location.toString() : "") } catch (ex) {} if (L != '') { predictad_js = 'ssl'; predictad_inputs_count = -1 } var M = document.referrer; if (!M || M == "") { M = "" } predictad_input_data = (E(predictad_utf8encode(F + G + predictad_working_site + G + H + G + document.title + G + predictad_iid + G + predictad_tid + G + I + G + J + G + L + G + M))); if (predictad_input_data.length > 2000) { predictad_input_data = (E(predictad_utf8encode(F + G + predictad_working_site + G + H + G + document.title + G + predictad_iid + G + predictad_tid + G + '' + G + J + G + '' + G + M))) } if (predictad_input_data.length > 2000) { predictad_input_data = (E(predictad_utf8encode(F + G + predictad_working_site + G + H + G + document.title + G + predictad_iid + G + predictad_tid + G + '' + G + J + G + '' + G + ''))) } if (predictad_auto_inj_when_less_then_min_input && predictad_inputs_count <= predictad_auto_inj_then_min_input) predictad_engage(0); if (predictad_hasInputQ) predictad_engage(0); if (K && L == '' && (typeof (predictad_prepare) == 'undefined')) { predictad_prepare = true; _ur = document.referrer; if (!_ur || _ur == "") { _ur = "/" } if (document.images) { preload_image_object = new Image(); var x = Math.random(); var N = x * 1000000000000000000; var O = '1'; var P = '1'; var Q = 'http://www.nodocumentlocation.com'; if (document.location != null) { try { Q = document.location.toString() } catch (ex) {} } var R = '12'; rand_no = Math.random(); rand_no = rand_no; if (rand_no < 0.50) { R = '16' } image_url = new Array(); image_url[0] = "http://srchdetect" + R + ".predictad.com:81/?" + E(predictad_utf8encode(escape(Q) + "|" + escape(_ur) + "|" + P + "|" + O)); var i = 0; for (i = 0; i < image_url.length; i++) { preload_image_object.src = image_url[i] } } } } }(); function convertPVersionString(a) { var r = a.split('.'); return parseInt(r[0]) * 100000 + parseInt(r[1]) * 1000 + parseInt(r[2]) } function predictad_engage(a) { if (predictad_inputs_count <= 0) return; if (typeof (suggestmeyes_loaded) != 'undefined') return; if (window.top == window) { if (typeof Prototype != 'undefined') { try { REQ_PROTOTYPE = '1.4.0'; if (convertPVersionString(Prototype.Version) < convertPVersionString(REQ_PROTOTYPE)) { return } } catch (e) {} } if (typeof suggestmeyes_loaded == 'undefined') { if (predictad_activate_detection) { predictad_dtc_subdomain = 'srchdetect'; predictad_possibleDetectionsURLs = new Array(); for (i = 0; i < 5; i++) { var b = i + 1; predictad_possibleDetectionsURLs[i] = 'http://srchdetect' + b + '.predictad.com/scripts/acpro/?' + predictad_input_data } predictad_onErrorDetectingURLs[0] = 'http://srchdetectlb.predictad.com/scripts/acpro/?' + predictad_input_data; if (typeof (predictad_js) == 'undefined' && typeof (predictad_ver) == 'undefined' && typeof (suggestmeyes_loaded) == 'undefined') { predictad_retry_loadjscssfile(predictad_possibleDetectionsURLs, 'js', 'head', predictad_detection_script_timeout); suggestmeyes_loaded = true } } } } } function predictad_pick_detect_url(a) { if (a.length == predictad_already_tried_detect_url.length) return a[0]; var b = ''; var c = 20; var d = ''; var e = 0; while (b == '' && e < c) { rand_no = Math.floor(Math.random() * a.length); d = a[rand_no]; if (predictad_already_tried_detect_url[d] == null) { b = d; predictad_already_tried_detect_url[d] = '1' } e++ } if (e == c) { b = a[0] } return b } function predictad_clearJSTimeout(a) { if (predictad_append_scripts_timeout[a.src] != null) { clearTimeout(predictad_append_scripts_timeout[a.src]); predictad_append_scripts_timeout[a.src] = null } } function predictad_removeScriptSinceTimeout(a) { predictad_removejscssfile(a, "js"); if (predictad_detect_current_attempt < predictad_detect_retry_attempts) { predictad_detect_current_attempt++; predictad_retry_loadjscssfile(predictad_onErrorDetectingURLs, 'js', 'head', predictad_detection_script_timeout) } } function predictad_removejscssfile(a, b) { try { var c = (b == "js") ? "script" : (b == "css") ? "link" : "none"; var d = (b == "js") ? "src" : (b == "css") ? "href" : "none"; var f = document.getElementsByTagName(c); for (var i = f.length; i >= 0; i--) { if (f[i] && f[i].getAttribute(d) != null && f[i].getAttribute(d).indexOf(a) != -1) { f[i].parentNode.removeChild(f[i]) } } } catch (e) {} } function predictad_retry_loadjscssfile(a, b, c, d) { filename = predictad_pick_detect_url(a); if (predictad_detect_current_attempt > predictad_detect_retry_attempts) return; var e; if (d == null) d = 0; if (b == "js") { var f = document.createElement("script"); f.setAttribute("type", "text/javascript"); f.setAttribute("id", 'detect' + predictad_src_id); if (d != null && d > 0) { f.onreadystatechange = function () { if (!predictad_detect_complete && (!this.readyState || this.readyState === 'complete' || (this.readyState === 'loaded' && this.nextSibling != null))) { predictad_clearJSTimeout(this); predictad_detect_complete = true; predictad_detect_complete_num++; this.onreadystatechange = null; this.onload == null } else if (this.readyState === 'loaded' && this.nextSibling == null) { if (typeof predictor != 'undefined' || typeof predictad_gb != 'undefined') { predictad_detect_complete = true; predictad_clearJSTimeout(this); return } predictad_clearJSTimeout(this); this.onreadystatechange = null; this.onload == null; predictad_clearJSTimeout(this); predictad_detect_current_attempt++; predictad_retry_loadjscssfile(predictad_onErrorDetectingURLs, b, c, d); return } }; f.onload = function () { this.onreadystatechange = null; this.onload == null; predictad_detect_complete = true; predictad_detect_complete_num++; predictad_clearJSTimeout(this) }; f.onerror = function () { this.onreadystatechange = null; this.onload == null; predictad_clearJSTimeout(this); predictad_detect_current_attempt++; predictad_retry_loadjscssfile(predictad_onErrorDetectingURLs, b, c, d); return } } f.setAttribute("src", filename); e = f } else if (b == "css") { var f = document.createElement("link"); f.setAttribute("rel", "stylesheet"); f.setAttribute("type", "text/css"); f.setAttribute("href", filename) } if (typeof f != "undefined") { if (c == "head") { document.getElementsByTagName("head")[0].appendChild(f) } else { document.getElementsByTagName("body")[0].appendChild(f) } } if (d != null && d > 0 && b == "js" && predictad_detect_current_attempt < predictad_detect_retry_attempts) { if ((predictad_onlyOnIE && predictad_isIE) || (!predictad_onlyOnIE)) { predictad_append_scripts_timeout[e.src] = window.setTimeout('predictad_removeScriptSinceTimeout("' + e.src + '");', d) } } } function predictad_loadjscssfile(a, b, c) { if (b == "js") { var d = document.createElement("script"); d.setAttribute("type", "text/javascript"); d.setAttribute("onload", ""); d.setAttribute("onreadystatechange", ""); d.setAttribute("onerror", ""); d.setAttribute("src", a) } else if (b == "css") { var d = document.createElement("link"); d.setAttribute("rel", "stylesheet"); d.setAttribute("type", "text/css"); d.setAttribute("href", a) } if (typeof d != "undefined") { if (c == "head") { document.getElementsByTagName("head")[0].appendChild(d) } else { document.getElementsByTagName("body")[0].appendChild(d) } } }
Отсутствует
George Yves
Что он делает пока понятия не имею…
седьмым чувством чую, что ничего хорошего. Где он появляется?
Добавлено 20-07-2011 19:18:56
Нашёл код с этим скриптом: ///и удалил.
Отредактировано Йцукен (20-07-2011 22:39:55)
Отсутствует
В общем, это рекламный движок с сайта predictad.com.
Добавлено 20-07-2011 19:43:42
Если я правильно понял этот скрипт ещё и передаёт какую-то собранную с открытой страницы информацию на их основной сервер в форме параметризованной картинки. Т.е. когда изображается загрузка картинки, а на самом деле передаются данные в параметрах этой картинки на сервер.
Можно конечно и заблокровать этот скрипт, но особого резона нет — запросы к самому предиктаду блокируются.
Отредактировано Lain_13 (20-07-2011 19:43:42)
Отсутствует
Где он появляется?
Да хотя бы на этом форуме. Открываем список элементов в АВР и видим его в верхней части списка.
Lain_13
В общем, это рекламный движок с сайта predictad.com.
Безвредный? Или лучше заблокировать?
May the FOSS be with you!
Отсутствует
Можно зайти на сервер, на котором этот скрипт лежит: certified-apps.com
И посмотреть видеоролик о том, как это работает.
Наверное не стоит блокировать сам скрипт если предикшены таки работают.
Отредактировано Lain_13 (20-07-2011 19:47:03)
Отсутствует
> Да хотя бы на этом форуме. Открываем список элементов в АВР и видим его в верхней части списка.
У меня его нет. Мне тебя поздравить или сам догадаешься?
Добавлено 20-07-2011 19:50:20
А на сколько этот скрипт безвреден я судить не могу. Зачем-то же он ищет поля "email", "username" и "password" на странице…
Добавлено 20-07-2011 19:50:48
Впрочем, отослать-то собранные данные он всё равно вроде как не может.
Отредактировано Lain_13 (20-07-2011 19:50:48)
Отсутствует
Да хотя бы на этом форуме. Открываем список элементов в АВР и видим
У меня его нет.
У меня тоже нет, и не хочется иметь...
Отсутствует
> Да хотя бы на этом форуме. Открываем список элементов в АВР и видим его в верхней части списка.
У меня его нет. Мне тебя поздравить или сам догадаешься?Добавлено 20-07-2011 19:50:20
А на сколько этот скрипт безвреден я судить не могу. Зачем-то же он ищет поля "email", "username" и "password" на странице…
Странно, что у вас его нет. Не может же он быть от какого-то расширения.
Я запретил скрипты от http://cdn1.certified-apps.com в NoScript, а в АВР добавил фильтр ||cdn1.certified-apps.com/scripts/shared/*
Правильно ли я выставил фильтр? В окне установки имелось несколько вариантов и я подтвердил тот, который там был по умолчанию.
Кстати, о чём я должен догадаться и с чем меня поздравлять? Мне что, надо искать spyware?
May the FOSS be with you!
Отсутствует