.  Ru.Board


IP- "". - 16 .

on-line?
? ?
Ru.Board » » » Opera Presto ( 26)

: gyra, Maz

   •
: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36

     

gyra

Moderator
| | | |
| 25  Oep Presto || , v12 (Blink) - ec
Opera Presto 12.18 [15.02.2016]
Windows: x86 | x64 | Linux: x86/x64 | Mac OS X: x86/x64
--- / - ---
cao:
 - USB- [Stand-alone installation USB] ! ...
 - [All users on this computer] ...
 - [Current user] ...

:
  • (opera:config) | |
  • " " ( )
  • - "/"
  • | 12.15-16-17
    Presto:
  • ////
  • ,
  • /
  • | Opera AC
  • forum.timsky.ru , Opera 12.15 [ ]
  • Ruboard.info Opera Presto [ - ]
  • MyOpera.net |
  • OperaFan.net - | ( -)
  • | | .

  • : 6942 | . 18-02-2006 | : 00:39 05-11-2017 | : regist123, 18:46 05-11-2017
    raddyst

    Gold Member
    | | | |
    WatsonRus
    :
    , M$ , XP , 12.18 , XP?  

    , - .

    : 5756 | . 08-03-2010 | : 17:31 06-11-2017
    gyra

    Moderator
    | | | |
    WatsonRus
    raddyst
    .

    : 6942 | . 18-02-2006 | : 18:08 06-11-2017
    Ilya_SpongeBob

    Full Member
    | | | |
    9.29 12.18 .. https - -. 12.18 ? .. , .

    : 439 | . 16-02-2011 | : 19:05 06-11-2017
    YaZritelVANOMASA

    Newbie
    | | | |
    web skype ?

    : 24 | . 23-08-2017 | : 19:16 06-11-2017
    VladDr

    Advanced Member
    | | | |
    adasiko, e a c ey "opoee" NT5.x.
     
    raddyst
    :
    ,

    oc o e ao . A ec ec, o pa o o ce.

    : 1302 | . 05-06-2010 | : 19:25 06-11-2017
    raddyst

    Gold Member
    | | | |
    VladDr
    :
    oc o e ao . A ec ec, o pa o o ce.

    , , . "" - ...

    : 5756 | . 08-03-2010 | : 19:38 06-11-2017
    VladDr

    Advanced Member
    | | | |

    :
    9.29 12.18 .. https - -.

    : poae a . px, oopoe e oepa v. o 12.18, peao peye ee pecypco o eo cooa pa a ae cepepo, a ooae. E o xoa yoyo 9-, ce o ye o peaoao oey ~10 e aa oep oca o oo e ao, e e oo..

    : 1302 | . 05-06-2010 | : 19:42 06-11-2017
    Alex_Qwerty

    Advanced Member
    | | | |
    Ilya_SpongeBob

    :
    // ==UserScript==
    // @include *
    // ==/UserScript==
     
    if(document.contentType.indexOf('image/')==0 && document.contentType.indexOf('svg')==-1) {
        window.donotrun=true;
     
        window.addEventListener('load', function(){
            if (!document.title) document.title = window.location.pathname.match(/([^\/]*)\/*$/)[1];
            var img = document.querySelector('img');
            if (img.naturalWidth && img.naturalHeight) document.title += ' (' + img.naturalWidth + '\xd7' + img.naturalHeight + ')';
        },false);
    }
     

    : 1489 | . 09-09-2006 | : 19:52 06-11-2017
    billibons

    Advanced Member
    | | | |
    Alex_Qwerty
    , , , ?

    : 961 | . 15-12-2005 | : 20:48 06-11-2017
    Ilya_SpongeBob

    Full Member
    | | | |
    Alex_Qwerty , .. ...
     
    VladDr
    :
    : poae a . px, oopoe e oepa v. o 12.18, peao peye ee pecypco o eo cooa pa a ae cepepo
    , , 9.27? ECDHE, , -- , . -- , .

    : 439 | . 16-02-2011 | : 20:55 06-11-2017 | : Ilya_SpongeBob, 21:04 06-11-2017
    VladDr

    Advanced Member
    | | | |
    Ilya_SpongeBob
    :
    , 9.27?

    Bo e: oco c oo ECDSA c eca https o CloudFlare.

    : 1302 | . 05-06-2010 | : 21:24 06-11-2017
    MERCURY127



    Gold Member
    | | | |

    :
    ... - , .  
    , .
    ?

    : 7797 | . 03-08-2008 | : 21:29 06-11-2017 | : MERCURY127, 21:30 06-11-2017
    dansn

    Junior Member
    | | | |
    Youtube flash - . Youtube flash player_Decipher patched_v1.zip - , crossdomain.xml. FlashProxy5.zip - , . . winxp c flash18.

    : 32 | . 06-02-2008 | : 01:10 07-11-2017
    Rwd

    Member
    | | | |
    Fartman

    :
    : https://www.youtube.com/watch?v=8f2ZeHaAHvY   FlashProxy4.zip

    FlashProxy5 .

    : 377 | . 11-11-2016 | : 02:13 07-11-2017
    Alex_Qwerty

    Advanced Member
    | | | |

    :
     
    // ==UserScript==
    // @include *.youtube.com/*
    // @include *.youtube-nocookie.com/*
    // @include *.youtubeeducation.com/*
    // ==/UserScript==
    (function(opera){
     
        var ScriptName = 'youtube_fuck_html5.js';
        var Version = 12;
     
        var conf = {
              relatedVideos : false        // click title if not works
            , blockPlayerBase : true
            , videoQuality : 'auto'        // highres hd1440 hd1080 hd720 large medium small tiny auto
            , autoplay : 0                // 0, 1
            , autoplayYT : 1            // not in background; not in iframe
            , del43 : true                // remove format 43 (webm 640x360); can help switching to 720
            , noSubtitles: true            // they don't works
            , swf : 'https://s.ytimg.com/yts/swfbin/player-vfljf_kbO/watch_as3.swf'    // dead
        }
     
    /*
    Need something against crossdomain.xml and watch_as3.swf (and subtitles3_module.swf for closed captions)
     
    Filters for Proxomitron:
     
    [HTTP headers]
    In = FALSE
    Out = TRUE
    Key = "URL: youtube crossdomain.xml"
    URL = "([^/]++.|)(youtube(-nocookie|education|).com|ytimg.com|googlevideo.com)(:443|)/crossdomain.xml$RDIR(http://local.ptron/crossdomain.xml)"
     
    In = FALSE
    Out = TRUE
    Key = "URL: youtube watch_as3.swf"
    URL = "s.ytimg.com(:443|)/yts/swfbin/player-*watch_as3.swf$RDIR(http://local.ptron/watch_as3.swf)"
     
     
    crossdomain.xml (put in Proxomitron\html\):
     
    <?xml version="1.0"?>
    <cross-domain-policy>
      <allow-access-from domain="*" />
    </cross-domain-policy>
     
    */
     
     
        var sts;
     
        document.createElement("video").constructor.prototype.canPlayType = function(type){return ""};    // disable HTML5
     
        var showConf = true;
        function log(str){
            opera.postError(ScriptName +' v'+Version+(str?': '+str:'')+(showConf?'\nconf='+JSON.stringify(conf):''));
            showConf = false;
        }
     
        //opera.postError(ScriptName);
        opera.addEventListener("BeforeScript",function(e){
            if (e.element.src.match(/\/yts\/jsbin\/player-.*?\/base.js/)) {
                sts = e.element.text.match(/[{,]sts:(\d+)[},]/);
                sts=sts&&sts[1];
                if (sts) {
                    log('player: '+e.element.src+'\nsts='+sts+'\nUA='+navigator.userAgent);
                    if (conf.blockPlayerBase) {
                        if (window.canBlockPlayerBase) {
                            var decf = e.element.text.match(/=function\(a\){(a=a.split\(""\)[^}]*?;return a.join\(""\))};/);
                            decf = decf && decf[1];
                            var deco = decf && decf.match(/([\w$_]+)\.[\w$_]+\(a,\d+\);/);
                            deco = deco && e.element.text.match(new RegExp('var '+deco[1]+'={[\\w$_]+:function\\(a[\\s\\S]*?};'))
                            deco = deco && deco[0];
                            if (decf && deco) {
                                decodeSignature = new Function('a', deco+decf);
                                e.preventDefault();
                                log('blocked player base.js: '+e.element.src);
                            } else {
                                log("error: can't get decoder from player base.js")
                            }
                        } else {
                            log('blockPlayerBase requires blockYoutubeScripts in youtube_fix.js');
                        }
                    } else {
                        e.element.text = e.element.text.replace('=function(a){a=a.split("")','=decodeSignature=function(a){a=a.split("")');
                    }
                }
            }
        },false);
     
        function xhr(url, method, post, xml, headers){
            var x = new XMLHttpRequest();
            x.open(method || 'GET', url, false);
            if (headers) for (var i=0; i<headers.length; i++) x.setRequestHeader(headers[i][0], headers[i][1]);
            x.send(post);
            return xml?x.responseXML:x.responseText;
        }
     
        function splitKV(str) {
            var o = {};
            var tmp;
            var re = /([\da-z_]+)=([^&]*)/gi;
            while ( (tmp = re.exec(str))!==null ) { o[tmp[1]] = decodeURIComponent(tmp[2].replace(/\+/g,' '));    }
            return o;
        }
     
        function concatKV(obj){
            var tmp = [];
            for (var n in obj) tmp.push(n+'='+encodeURIComponent(obj[n]).replace(/,/g,'%2C') );
            return tmp.join('&');
        }
     
        var onceFix = true;
        function fix(str){
            var tmp = str.split(',');
            for (var i=tmp.length-1; i>=0; i--) {
                var obj = splitKV(tmp[i]);
                if (conf.del43 && obj.itag==43) {
                    tmp.splice(i,1);    // del
                    log('removed format 43')
                } else if (obj.s) {
                    if (!window.decodeSignature) {
                        if (onceFix) onceFix = log('error: no decodeSignature()')
                        return str;
                    } else {
                        obj.url += '&signature='+decodeSignature(obj.s);
                        delete obj.s;
                        tmp[i] = concatKV(obj);
                    }
                }
            }
            return tmp.join(',');
        }
     
        function del(obj,arr){ for (var d in arr) delete obj[arr[d]]; }
        function set(obj,arr){ for (var d in arr) obj[d]=arr[d]; }
     
        if (location.pathname.indexOf('/embed/')==0 || location.pathname=='/watch' && window==window.top) document.addEventListener('DOMContentLoaded',function(){
            var div;
            var selectors = ['div.html5-video-player', 'div#player-api', 'div#player'];
            for (var i=0,s; s=selectors[i]; i++) if (div = document.querySelector(s)) break;
            if (!div) {
                log('player div not found');
            } else {
                log('found div:'+(div.id?' id="'+div.id+'"':'') + (div.className?' class="'+div.className+'"':''));
                if (!sts) log('warning: sts from /player-./base.js not found! Check content blocker.');
                div.classList.remove('off-screen-target');
                div.innerHTML = '<br><br>'+ScriptName;
                var u = document.querySelector('div#player-unavailable');
                if (u) u.parentNode.removeChild(u);
                var id = (''+location).match(/\/embed\/([\da-z_-]{11})/i) || (''+location).match(/[&?]v=([\da-z_-]{11})/i);
                id = id&&id[1];
                if (!id) {
                    div.innerHTML += ' - no video id';
                    return log('no video id');
                }
                var bg = 'https://i.ytimg.com/vi/'+id+'/hqdefault.jpg';
                var info, infoLength;
                function gvi(data) {
                    var url = '/get_video_info?html5=1&asv=3&ps=default'+(sts?'&sts='+sts:'')+'&video_id='+id+(data||'');
                    info = xhr(url);
                    if (info.indexOf('status=')==-1) info = xhr(url);    // second try
                    infoLength = info.length;
                    info = splitKV(info);
                }
                gvi();
                if (info && info.errorcode=='150') gvi('&eurl=http://www.google.com/');
                if (info && info.errorcode=='150') {
                    var page = location.pathname=='/watch' ? document.body.innerHTML : xhr('/watch?v='+id);
                    info = page.match(/ytplayer\.config = ({.*?});/);
                    if (info) info = JSON.parse(info[1]);
                    info = info && info.args;
                    if (!info) return log('ytplayer.config parsing error');
                    info.status = info.status || info.video_id && 'ok' || 'ytplayer.config parsing error 2' ;
     
                }
                //alert(JSON.stringify(info,null,'\t'));
                if (info.status!='ok') {
                    div.innerHTML = '<br><br>'+info.reason;
                    return log('reason: '+info.reason);
                }
                log(JSON.stringify({cbr:info.cbr, cbrver:info.cbrver, cbrand:info.cbrand, infoLength:infoLength}));
                if (!conf.relatedVideos) delete info.rvs;
                delete info.allowed_ads;
                if (conf.noSubtitles) {
                    del(info, ['ttsurl','caption_tracks','caption_audio_tracks', 'cc_asr', 'cc3_module', 'caption_translation_languages', 'cc_font']);
                    info.has_cc = 'False';
                }
                if (conf.del43) info.fmt_list = info.fmt_list.replace('43/640x360,','');
                if (conf.videoQuality) info.vq = conf.videoQuality;
                if (conf.autoplay!==undefined) info.autoplay=conf.autoplay;
                if (conf.autoplayYT!==undefined && !document.hidden && window==window.top) info.autoplay=conf.autoplayYT;
                if (info.url_encoded_fmt_stream_map) info.url_encoded_fmt_stream_map = fix(info.url_encoded_fmt_stream_map);
                if (info.adaptive_fmts) info.adaptive_fmts = fix(info.adaptive_fmts);
                if (info.dashmpd) info.dashmpd = info.dashmpd.replace(/\/s\/([\dA-F.]+)/,function(a,s){return '/signature/'+decodeSignature(s)});
                set(info, {no_stats:1, allow_embed:1, no_get_video_log:1});
                info = concatKV(info);
                div.innerHTML = '<embed src="'+conf.swf+'" flashvars="'+info+'" style="background: url('+bg+') center no-repeat" type="application/x-shockwave-flash" width=100% height=100% allowfullscreen="true" allowscriptaccess="always" bgcolor="#000000">'
            }
        },false);
     
    })(opera)
     

     
     
     

    :
     
    // ==UserScript==
    // @include *
    // @exclude http://tparser.org/*
    // ==/UserScript==
     
    if ( document.contentType=='text/html' || (''+location).match(/[/.]youtube(-nocookie|education|).com\/v\//) ) (function(opera){
     
    var ScriptName = 'youtube_fix.js';
    var Version = 9;
     
    var conf = {
     fixObjects : true// object -> iframe
    , fixInsertedObjects : {
     enabled: true// may break sites; use whitelist or // @exclude *
    , blacklist : [] // [] - works anywhere; ['tparser.org']
    , whitelist : [] // [] - works anywhere; ['3dnews.ru', 'livejournal.com']
    }
    , blockYoutubeScripts : true// except player base.js
    , loadComments : true// don't expect too much; with enabed blockYoutubeScripts
    , addLinksInEmbeds : false
    , loadThumbnails : true
    }
     
    var showConf = true;
    function log(str){
    opera.postError(ScriptName +' v'+Version+(str?': '+str:'')+(showConf?'\nconf='+JSON.stringify(conf):''));
    showConf = false;
    }
     
    function findHost(hosts, host){
    var flag = -1;
    while (flag==-1 && host) {
    flag = hosts.indexOf(host);
    host = host.replace(/^[^.]*\.?/,'');
    }
    return flag;
    }
    var youtubeHosts = ['youtube.com','youtube-nocookie.com','youtubeeducation.com'];
     
    function create(el, cn, ih){var tmp=document.createElement(el); if(cn)tmp.className=cn; tmp.innerHTML=ih||''; return tmp; }
     
    function xhr(url, method, post, xml, headers){
    var x = new XMLHttpRequest();
    x.open(method || 'GET', url, false);
    if (headers) for (var i=0; i<headers.length; i++) x.setRequestHeader(headers[i][0], headers[i][1]);
    x.send(post);
    return xml?x.responseXML:x.responseText;
    }
     
    var isYoutube = findHost(youtubeHosts, location.hostname)!=-1;
     
    var v = isYoutube && location.pathname.match(/^\/v\/([\da-z_-]{11})/i);
    if (v) {
    stop();
    log('redirecting to /embed/');
    location = '/embed/'+v[1];
    }
     
    if (conf.blockYoutubeScripts && isYoutube) {
    var once = true;
    window.canBlockPlayerBase = true;
    var needPlayerBase = true;
    var func = function(){};
    requestAnimationFrame = func;
    writeEmbed = func;
    writeLightweightEmbed = func;
    spf = {script:{path:func, declare:func}};
       ytcsi = {info: func, tick:func};
    yt = {config_:{}, pushConfigArray:func, setMsg:func}
     
    yt.setConfig = function(o,v){
    if (v) { yt.config_[o]=v } else {for (var k in o) yt.config_[k]=o[k]}
    if (needPlayerBase && o && o.PLAYER_CONFIG && o.PLAYER_CONFIG.assets && o.PLAYER_CONFIG.assets.js) {
    var s = document.createElement('script');
    s.src = o.PLAYER_CONFIG.assets.js;
    document.body.appendChild(s);
    log('inserted player base.js: '+s.src);
    needPlayerBase = false;
    }
    }
     
    opera.addEventListener("BeforeExternalScript",function(e){
    if (e.element.src.match(/\/yts\/jsbin\/player-.*?\/base.js/)) {
    needPlayerBase = false;
    } else {
    e.preventDefault();
    if (once) once = log('blocking youtube scripts...');
    }
    },false);
    }
     
    document.addEventListener('DOMContentLoaded',function(){
     
    var tmp = document.querySelectorAll('a[href*="youtube.com/edit?"]');
    for (var i=0,a; a=tmp[i]; i++) {
    var id = a.href.match(/[?&]video_id=([\da-z_-]{11})/i);
    if (id) a.href = 'https://www.youtube.com/watch?v='+id[1];
    }
     
    if (conf.fixObjects) {
     
    function fixObjects(embeds) {
    for (var i=0,e,o; e=embeds[i]; i++){
    o=e.parentNode.tagName.toLowerCase()=='object'? e.parentNode : e;
    var vid = o.outerHTML.match(/youtube(?:education|-nocookie|)\.com\/v\/([\da-z_-]{11})/i);
    if (vid=vid&&vid[1]) {
    var iframe = document.createElement('iframe');
    var width = o.width || o.style.width || '640px';
    var height = o.height || o.style.height || '480px';
    if (!/[a-zA-Z%]+$/.test(width)) width +='px';
    if (!/[a-zA-Z%]+$/.test(height)) height +='px';
    //iframe.style = "width: "+width+" !important ; height: "+height + ' !important';
    iframe.style = "width: "+width+"; height: "+height;
    if (o.className) iframe.className = o.className;
    if (o.id) iframe.id = o.id;
    iframe.src = 'https://www.youtube.com/embed/'+vid; // youtube-nocookie.com not always works
    o.parentNode.insertBefore(iframe, o);
    o.parentNode.removeChild(o);
    log('replaced object in html: '+vid);
    }
    }
    }
    fixObjects(document.querySelectorAll('object'));
    fixObjects(document.querySelectorAll('embed'));
     
    var fixInsertedObjectsEnabled = (conf.fixInsertedObjects && conf.fixInsertedObjects.enabled) && !isYoutube
    && (window != window.top ? document.body.innerHTML.length>0 : true) // scriptweeder iframe
    && (!conf.fixInsertedObjects.whitelist || (!conf.fixInsertedObjects.whitelist.length || findHost(conf.fixInsertedObjects.whitelist, location.hostname)!=-1) )
    && (!conf.fixInsertedObjects.blacklist || (!conf.fixInsertedObjects.blacklist.length || findHost(conf.fixInsertedObjects.blacklist, location.hostname)==-1) );
    if (fixInsertedObjectsEnabled) {
    log('warning: fixInsertedObjects may break sites');
    document.addEventListener('DOMNodeInserted', function(e){
    if (e.target.innerHTML && /youtube(education|-nocookie|)\.com\/v\//.test(e.target.innerHTML)) {
    log('DOMNodeInserted');
    var tmp = e.target.outerHTML.replace(/<object[\s\S]*?youtube(?:education|-nocookie|)\.com\/v\/([\da-z_-]{11})[\s\S]*?<\/object>/ig, function(o,id){
    var tmp = o.match(/^<object[\s\S]*?>/i)[0];
    var width = tmp.match(/width\s*[:=]\s*(\d\w*)/);
    width = width&&width[1] || '640px';
    var height = tmp.match(/height\s*[:=]\s*(\d\w*)/);
    height = height&&height[1] || '480px';
    if (!/[a-zA-Z%]+$/.test(width)) width +='px';
    if (!/[a-zA-Z%]+$/.test(height)) height +='px';
    return '<iframe src="https://www.youtube.com/embed/'+id+'" style="width: '+width+' !important; height: '+height+' !important"></iframe>';
    });
    if (e.target.outerHTML!= tmp) e.target.outerHTML = tmp;
    }
    }, false);
    }
    }
     
    if (isYoutube && conf.loadThumbnails) {
    var pics = document.querySelectorAll('img[data-thumb]');
    for (var i=0; i<pics.length; i++) pics[i].src = pics[i].getAttribute('data-thumb');
    }
     
     
    if (conf.loadComments && conf.blockYoutubeScripts && isYoutube && location.pathname=='/watch' && window==window.top) {
    var tmp = document.querySelector('#watch-discussion');
    if (!tmp) {
    log('no #watch-discussion');
    } else {
    tmp.style.display='none';
    var comments = create('div', 'crutch-comments-container');
    comments.appendChild(create('div', 'crutch-comments-total', 'comments disabled ?'))
    tmp.parentNode.insertBefore(comments, tmp);
    var headers = [['Content-Type', 'application/x-www-form-urlencoded']];
    var c = xhr('/comment_service_ajax?action_get_comments=1&pbj=1&ctoken='+window.yt.config_.COMMENTS_TOKEN, 'POST'
    , 'session_token='+encodeURIComponent(window.yt.config_.XSRF_TOKEN), false, headers);
    if (c.indexOf('{')!=-1) {
    c = JSON.parse(c);
    comments.innerHTML = c.content_html;
    log('comments');
    }
    }
    }
     
    if (conf.blockYoutubeScripts && isYoutube && location.pathname=='/watch' && window==window.top) {
    var s = document.createElement('style');
    s.appendChild(document.createTextNode('#watch-description + .yt-uix-expander-collapsed-body {display:none !important} .yt-uix-expander-collapsed #watch-description-text {max-height: 100% !important}'));
    document.body.appendChild(s);
    }
     
    var id = window.yt && yt.config_ && yt.config_.VIDEO_ID;
    if (conf.addLinksInEmbeds && !location.pathname.indexOf('/embed/') && id) {
    var pics = id && window.yt.config_.PLAYER_CONFIG.args || {};
    var img = pics.iurlmaxres || pics.iurlhq720 || pics.iurlsd || pics.iurl || 'http://i.ytimg.com/vi/'+id+'/hqdefault.jpg';
    var span = document.createElement('span');
    span.innerHTML = '&nbsp;<a href="http://www.youtube.com/watch?v='+id+'" target="_blank">link</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="'+img+'" target="_blank">img</a>';
    span.style='position:absolute; top:0; left:0; background:white';
    document.body.appendChild(span);
    }
     
    },false);
     
    })(opera)
     


    : 1489 | . 09-09-2006 | : 09:23 07-11-2017 | : Alex_Qwerty, 15:23 11-01-2018
    freeman440

    Silver Member
    | | | |
    Alex_Qwerty
    ,
     
    :
    Rwd
    :
    FlashProxy5 .

    : 2069 | . 17-09-2008 | : 10:53 07-11-2017
    kianID



    Junior Member
    | | | |
    freeman440: (10:53 07-11-2017)
    :

    . .
     
     Rwd: (02:13 07-11-2017)
    :
    FlashProxy5 .

    , - , .

    : 187 | . 04-01-2012 | : 11:17 07-11-2017
    Rwd

    Member
    | | | |
    freeman440
    kianID
    . , :   - , - ?

    : 377 | . 11-11-2016 | : 11:56 07-11-2017
    kianID



    Junior Member
    | | | |
    Rwd: (11:56 07-11-2017)
    , , ?

    : 187 | . 04-01-2012 | : 11:59 07-11-2017
    Rwd

    Member
    | | | |
    kianID
    . - , , .
     
    :

    : 377 | . 11-11-2016 | : 12:02 07-11-2017
         

    : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36

    Ru.Board » » » Opera Presto ( 26)

    :
    :


    , .


    e-mail

    ?



    Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.Board
    © Ru.Board 2000-2018

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    .ru