It looks like this is a web page, not a feed. I looked for a feed associated with this page, but couldn't find one. Please enter the address of your feed to validate.

Source: http://picasa2.ru

  1. <!DOCTYPE html>
  2. <html lang="ru-RU">
  3. <head>
  4.    <meta charset="UTF-8">
  5.    <meta name="viewport" content="width=device-width, initial-scale=1">
  6.  
  7.    <script>
  8.    var block_classes = ["content_rb", "cnt32_rl_bg_str", "rl_cnt_bg"];
  9.  
  10.    function addAttrItem(className) {
  11.        if (document.querySelector("." + className) && !block_classes.includes(className)) {
  12.            block_classes.push(className);
  13.        }
  14.    }
  15. </script><script>
  16.                function onErrorPlacing() {
  17.                    if (typeof cachePlacing !== 'undefined' && typeof cachePlacing === 'function' && typeof window.jsInputerLaunch !== 'undefined' && [15, 10].includes(window.jsInputerLaunch)) {
  18.                        let errorInfo = [];
  19.                        cachePlacing('low',errorInfo);
  20.                    } else {
  21.                        setTimeout(function () {
  22.                            onErrorPlacing();
  23.                        }, 100)
  24.                    }
  25.                }
  26.                var xhr = new XMLHttpRequest();
  27.                xhr.open('GET',"//newrotatormarch23.bid/9hgm.json",true);
  28.                xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  29.                xhr.onreadystatechange = function() {
  30.                    if (xhr.status != 200) {
  31.                        if (xhr.statusText != 'abort') {
  32.                            onErrorPlacing();
  33.                        }
  34.                    }
  35.                };
  36.                xhr.send();
  37.            </script><script type="text/javascript" src="//picasa2.ru/wp-content/9hgm.js?ver=0.4.3" id="9hgm-js" async=""></script><script>console.log('ad: nun')</script><script>
  38.                function onErrorPlacing() {
  39.                    if (typeof cachePlacing !== 'undefined' && typeof cachePlacing === 'function' && typeof window.jsInputerLaunch !== 'undefined' && [15, 10].includes(window.jsInputerLaunch)) {
  40.                        let errorInfo = [];
  41.                        cachePlacing('low',errorInfo);
  42.                    } else {
  43.                        setTimeout(function () {
  44.                            onErrorPlacing();
  45.                        }, 100)
  46.                    }
  47.                }
  48.                var xhr = new XMLHttpRequest();
  49.                xhr.open('GET',"//newrotatormarch23.bid/9hgm.min.js",true);
  50.                xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  51.                xhr.onreadystatechange = function() {
  52.                    if (xhr.status != 200) {
  53.                        if (xhr.statusText != 'abort') {
  54.                            onErrorPlacing();
  55.                        }
  56.                    }
  57.                };
  58.                xhr.send();
  59.            </script><script type='text/javascript'> rbConfig={start:performance.now(),rbDomain:'newrotatormarch23.bid',rotator:'9hgm'};token=localStorage.getItem('9hgm')||(1e6+'').replace(/[018]/g, c => (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16));rsdfhse=document.createElement('script'); rsdfhse.setAttribute('src','//newrotatormarch23.bid/9hgm.min.js?'+token);rsdfhse.setAttribute('async','async');rsdfhse.setAttribute('type','text/javascript');document.head.appendChild(rsdfhse); localStorage.setItem('9hgm', token);</script><meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' />
  60.  
  61. <!-- This site is optimized with the Yoast SEO plugin v18.2 - https://yoast.com/wordpress/plugins/seo/ -->
  62. <title>Picasa 3: скачать бесплатно бесплатно photo viewer от Google, русская версия для Windows 10, 8, 7</title>
  63. <meta name="description" content="Picasa — это программа для просмотра, редактирования и сортировки фотографий на компьютерах с ОС Windows, Linux и MacOS. С 2016 года поддержка" />
  64. <link rel="canonical" href="https://picasa2.ru/" />
  65. <meta property="og:locale" content="ru_RU" />
  66. <meta property="og:type" content="website" />
  67. <meta property="og:title" content="Picasa 3: скачать бесплатно бесплатно photo viewer от Google, русская версия для Windows 10, 8, 7" />
  68. <meta property="og:description" content="Picasa — это программа для просмотра, редактирования и сортировки фотографий на компьютерах с ОС Windows, Linux и MacOS. С 2016 года поддержка" />
  69. <meta property="og:url" content="https://picasa2.ru/" />
  70. <meta property="og:site_name" content="Picasa" />
  71. <meta property="article:modified_time" content="2023-08-28T12:48:35+00:00" />
  72. <meta property="og:image" content="https://picasa2.ru/wp-content/uploads/2020/02/picasa2.jpg" />
  73. <meta property="og:image:width" content="938" />
  74. <meta property="og:image:height" content="713" />
  75. <meta property="og:image:type" content="image/jpeg" />
  76. <meta name="twitter:card" content="summary_large_image" />
  77. <meta name="twitter:label1" content="Примерное время для чтения" />
  78. <meta name="twitter:data1" content="3 минуты" />
  79. <script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://picasa2.ru/#website","url":"https://picasa2.ru/","name":"Picasa","description":"программа для работы с цифровыми фотографиями","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://picasa2.ru/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"ru-RU"},{"@type":"ImageObject","@id":"https://picasa2.ru/#primaryimage","inLanguage":"ru-RU","url":"https://picasa2.ru/wp-content/uploads/2020/02/picasa2.jpg","contentUrl":"https://picasa2.ru/wp-content/uploads/2020/02/picasa2.jpg","width":938,"height":713,"caption":"picasa 3 скачать бесплатно русская версия"},{"@type":"WebPage","@id":"https://picasa2.ru/#webpage","url":"https://picasa2.ru/","name":"Picasa 3: скачать бесплатно бесплатно photo viewer от Google, русская версия для Windows 10, 8, 7","isPartOf":{"@id":"https://picasa2.ru/#website"},"primaryImageOfPage":{"@id":"https://picasa2.ru/#primaryimage"},"datePublished":"2020-01-21T14:54:56+00:00","dateModified":"2023-08-28T12:48:35+00:00","description":"Picasa — это программа для просмотра, редактирования и сортировки фотографий на компьютерах с ОС Windows, Linux и MacOS. С 2016 года поддержка","breadcrumb":{"@id":"https://picasa2.ru/#breadcrumb"},"inLanguage":"ru-RU","potentialAction":[{"@type":"ReadAction","target":["https://picasa2.ru/"]}]},{"@type":"BreadcrumbList","@id":"https://picasa2.ru/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Главная страница"}]}]}</script>
  80. <!-- / Yoast SEO plugin. -->
  81.  
  82.  
  83. <link rel='dns-prefetch' href='//fonts.googleapis.com' />
  84. <link rel='dns-prefetch' href='//s.w.org' />
  85. <script type="text/javascript">
  86. window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/13.1.0\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/13.1.0\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/picasa2.ru\/wp-includes\/js\/wp-emoji-release.min.js?ver=5.9.9"}};
  87. /*! This file is auto-generated */
  88. !function(e,a,t){var n,r,o,i=a.createElement("canvas"),p=i.getContext&&i.getContext("2d");function s(e,t){var a=String.fromCharCode;p.clearRect(0,0,i.width,i.height),p.fillText(a.apply(this,e),0,0);e=i.toDataURL();return p.clearRect(0,0,i.width,i.height),p.fillText(a.apply(this,t),0,0),e===i.toDataURL()}function c(e){var t=a.createElement("script");t.src=e,t.defer=t.type="text/javascript",a.getElementsByTagName("head")[0].appendChild(t)}for(o=Array("flag","emoji"),t.supports={everything:!0,everythingExceptFlag:!0},r=0;r<o.length;r++)t.supports[o[r]]=function(e){if(!p||!p.fillText)return!1;switch(p.textBaseline="top",p.font="600 32px Arial",e){case"flag":return s([127987,65039,8205,9895,65039],[127987,65039,8203,9895,65039])?!1:!s([55356,56826,55356,56819],[55356,56826,8203,55356,56819])&&!s([55356,57332,56128,56423,56128,56418,56128,56421,56128,56430,56128,56423,56128,56447],[55356,57332,8203,56128,56423,8203,56128,56418,8203,56128,56421,8203,56128,56430,8203,56128,56423,8203,56128,56447]);case"emoji":return!s([10084,65039,8205,55357,56613],[10084,65039,8203,55357,56613])}return!1}(o[r]),t.supports.everything=t.supports.everything&&t.supports[o[r]],"flag"!==o[r]&&(t.supports.everythingExceptFlag=t.supports.everythingExceptFlag&&t.supports[o[r]]);t.supports.everythingExceptFlag=t.supports.everythingExceptFlag&&!t.supports.flag,t.DOMReady=!1,t.readyCallback=function(){t.DOMReady=!0},t.supports.everything||(n=function(){t.readyCallback()},a.addEventListener?(a.addEventListener("DOMContentLoaded",n,!1),e.addEventListener("load",n,!1)):(e.attachEvent("onload",n),a.attachEvent("onreadystatechange",function(){"complete"===a.readyState&&t.readyCallback()})),(n=t.source||{}).concatemoji?c(n.concatemoji):n.wpemoji&&n.twemoji&&(c(n.twemoji),c(n.wpemoji)))}(window,document,window._wpemojiSettings);
  89. </script>
  90. <style type="text/css">
  91. img.wp-smiley,
  92. img.emoji {
  93. display: inline !important;
  94. border: none !important;
  95. box-shadow: none !important;
  96. height: 1em !important;
  97. width: 1em !important;
  98. margin: 0 0.07em !important;
  99. vertical-align: -0.1em !important;
  100. background: none !important;
  101. padding: 0 !important;
  102. }
  103. </style>
  104. <link rel='stylesheet' id='stylecss-css'  href='https://picasa2.ru/wp-content/themes/root/style.css?ver=5.9.9'  media='all' />
  105. <link rel='stylesheet' id='wp-block-library-css'  href='https://picasa2.ru/wp-includes/css/dist/block-library/style.min.css?ver=5.9.9'  media='all' />
  106. <style id='global-styles-inline-css' type='text/css'>
  107. body{--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--duotone--dark-grayscale: url('#wp-duotone-dark-grayscale');--wp--preset--duotone--grayscale: url('#wp-duotone-grayscale');--wp--preset--duotone--purple-yellow: url('#wp-duotone-purple-yellow');--wp--preset--duotone--blue-red: url('#wp-duotone-blue-red');--wp--preset--duotone--midnight: url('#wp-duotone-midnight');--wp--preset--duotone--magenta-yellow: url('#wp-duotone-magenta-yellow');--wp--preset--duotone--purple-green: url('#wp-duotone-purple-green');--wp--preset--duotone--blue-orange: url('#wp-duotone-blue-orange');--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}
  108. </style>
  109. <link rel='stylesheet' id='contact-form-7-css'  href='https://picasa2.ru/wp-content/plugins/contact-form-7/includes/css/styles.css?ver=5.5.5'  media='all' />
  110. <link rel='stylesheet' id='google-fonts-css'  href='https://fonts.googleapis.com/css?family=Roboto%3A400%2C400i%2C700&#038;subset=cyrillic&#038;ver=5.9.9'  media='all' />
  111. <link rel='stylesheet' id='root-style-css'  href='https://picasa2.ru/wp-content/themes/root/css/style.min.css?ver=2.4.1'  media='all' />
  112. <link rel='stylesheet' id='jquery-lazyloadxt-spinner-css-css'  href='//picasa2.ru/wp-content/plugins/a3-lazy-load/assets/css/jquery.lazyloadxt.spinner.css?ver=5.9.9'  media='all' />
  113. <script  src='https://picasa2.ru/wp-includes/js/jquery/jquery.min.js?ver=3.6.0' id='jquery-core-js'></script>
  114. <script  src='https://picasa2.ru/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.3.2' id='jquery-migrate-js'></script>
  115. <link rel="https://api.w.org/" href="https://picasa2.ru/wp-json/" /><link rel="alternate" type="application/json" href="https://picasa2.ru/wp-json/wp/v2/pages/9" /><link rel="alternate" type="application/json+oembed" href="https://picasa2.ru/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fpicasa2.ru%2F" />
  116. <link rel="alternate" type="text/xml+oembed" href="https://picasa2.ru/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fpicasa2.ru%2F&#038;format=xml" />
  117. <script>
  118. document.documentElement.className = document.documentElement.className.replace( 'no-js', 'js' );
  119. </script>
  120. <style>
  121. .no-js img.lazyload { display: none; }
  122. figure.wp-block-image img.lazyloading { min-width: 150px; }
  123. .lazyload, .lazyloading { opacity: 0; }
  124. .lazyloaded {
  125. opacity: 1;
  126. transition: opacity 400ms;
  127. transition-delay: 0ms;
  128. }
  129. </style>
  130. <style>@media (max-width: 991px) { .mob-search {display: block; margin-bottom: 25px;} }.scrolltop { background-color: #cccccc;}.scrolltop:after { color: #ffffff;}.scrolltop { width: 50px;}.scrolltop { height: 50px;}.scrolltop:after { content: "\f102"; }body { font-family: "Roboto" ,"Helvetica Neue", Helvetica, Arial, sans-serif; }.site-title, .site-title a { font-family: "Roboto" ,"Helvetica Neue", Helvetica, Arial, sans-serif; }.site-description { font-family: "Roboto" ,"Helvetica Neue", Helvetica, Arial, sans-serif; }.entry-content h1, .entry-content h2, .entry-content h3, .entry-content h4, .entry-content h5, .entry-content h6, .entry-image__title h1, .entry-title, .entry-title a { font-family: "Roboto" ,"Helvetica Neue", Helvetica, Arial, sans-serif; }.main-navigation ul li a, .main-navigation ul li .removed-link, .footer-navigation ul li a, .footer-navigation ul li .removed-link{ font-family: "Roboto" ,"Helvetica Neue", Helvetica, Arial, sans-serif; }@media (min-width: 576px) { body { font-size: 16px;} }@media (min-width: 576px) { .site-title, .site-title a { font-size: 28px;} }@media (min-width: 576px) { .site-description { font-size: 16px;} }@media (min-width: 576px) { .main-navigation ul li a, .main-navigation ul li .removed-link, .footer-navigation ul li a, .footer-navigation ul li .removed-link { font-size: 16px;} }@media (min-width: 576px) { body { line-height: 1.5;} }@media (min-width: 576px) { .site-title, .site-title a { line-height: 1.1;} }@media (min-width: 576px) { .main-navigation ul li a, .main-navigation ul li .removed-link, .footer-navigation ul li a, .footer-navigation ul li .removed-link { line-height: 1.5;} }.mob-hamburger span, .card-slider__category span, .card-slider-container .swiper-pagination-bullet-active, .page-separator, .pagination .current, .pagination a.page-numbers:hover, .entry-content ul > li:before, .entry-content ul:not([class])>li:before, .taxonomy-description ul:not([class])>li:before, .btn, .comment-respond .form-submit input, .contact-form .contact_submit, .page-links__item { background-color: #99499b;}.spoiler-box, .entry-content ol li:before, .entry-content ol:not([class]) li:before, .taxonomy-description ol:not([class]) li:before, .mob-hamburger, .inp:focus, .search-form__text:focus, .entry-content blockquote { border-color: #99499b;}.entry-content blockquote:before, .spoiler-box__title:after, .sidebar-navigation .menu-item-has-children:after, .star-rating--score-5:not(.hover) .star-rating-item:nth-child(1), .star-rating--score-5:not(.hover) .star-rating-item:nth-child(2), .star-rating--score-5:not(.hover) .star-rating-item:nth-child(3), .star-rating--score-5:not(.hover) .star-rating-item:nth-child(4), .star-rating--score-5:not(.hover) .star-rating-item:nth-child(5), .star-rating-item.hover { color: #99499b;}body { color: #333333;}a, .spanlink, .comment-reply-link, .pseudo-link, .root-pseudo-link { color: #99499b;}a:hover, a:focus, a:active, .spanlink:hover, .comment-reply-link:hover, .pseudo-link:hover { color: #e66212;}.site-header { background-color: #ffffff;}.site-title, .site-title a { color: #99499b;}.site-description, .site-description a { color: #666666;}.main-navigation, .footer-navigation, .main-navigation ul li .sub-menu, .footer-navigation ul li .sub-menu { background-color: #99499b;}.main-navigation ul li a, .main-navigation ul li .removed-link, .footer-navigation ul li a, .footer-navigation ul li .removed-link { color: #ffffff;}.site-footer { background-color: #99499b;}@media (min-width: 768px) {.site-header { background-repeat: no-repeat; }}@media (min-width: 768px) {.site-header { background-position: center center; }}</style><style type="text/css" id="custom-background-css">
  131. body.custom-background { background-color: #9a8a9b; }
  132. </style>
  133. <link rel="icon" href="https://picasa2.ru/wp-content/uploads/2020/02/favicon-150x150.png" sizes="32x32" />
  134. <link rel="icon" href="https://picasa2.ru/wp-content/uploads/2020/02/favicon-300x300.png" sizes="192x192" />
  135. <link rel="apple-touch-icon" href="https://picasa2.ru/wp-content/uploads/2020/02/favicon-300x300.png" />
  136. <meta name="msapplication-TileImage" content="https://picasa2.ru/wp-content/uploads/2020/02/favicon-300x300.png" />
  137. <style type="text/css" id="wp-custom-css">
  138. .dashicons-download:before {
  139.    content: "\f316";
  140.    font-family: dashicons;
  141.    font-size: 25px;
  142.    margin-right: 10px;
  143.    vertical-align: middle;
  144. }
  145.  
  146. ul#header_menu li a,
  147. ul#header_menu li span {
  148.    text-transform: uppercase;
  149. }
  150. [id^='content_rb'] {
  151. margin: 20px 0;
  152. } </style>
  153.  
  154. <style>
  155.    .coveredAd {
  156.        position: relative;
  157.        left: -5000px;
  158.        max-height: 1px;
  159.        overflow: hidden;
  160.    }
  161.    #content_pointer_id {
  162.        display: block !important;
  163.        width: 100% !important;
  164.    }
  165.    .rfwp_removedMarginTop {
  166.        margin-top: 0 !important;
  167.    }
  168.    .rfwp_removedMarginBottom {
  169.        margin-bottom: 0 !important;
  170.    }
  171. </style>
  172.            <script>
  173.            var cou1 = 0;
  174.            if (typeof blockSettingArray==="undefined") {
  175.                var blockSettingArray = [];
  176.            } else {
  177.                if (Array.isArray(blockSettingArray)) {
  178.                    cou1 = blockSettingArray.length;
  179.                } else {
  180.                    var blockSettingArray = [];
  181.                }
  182.            }
  183.            if (typeof excIdClass==="undefined") {
  184.                var excIdClass = [".percentPointerClass",".content_rb",".cnt32_rl_bg_str",".rl_cnt_bg",".addedInserting","#toc_container","table","blockquote"];
  185.            }
  186.            if (typeof blockDuplicate==="undefined") {
  187.                var blockDuplicate = "yes";
  188.            }                        
  189.            if (typeof obligatoryMargin==="undefined") {
  190.                var obligatoryMargin = 1;
  191.            }
  192.            
  193.            if (typeof tagsListForTextLength==="undefined") {
  194.                var tagsListForTextLength = ["P","H1","H2","H3","H4","H5","H6","DIV","BLOCKQUOTE","INDEX","ARTICLE"];
  195.            }                        
  196.            blockSettingArray[cou1] = [];
  197. blockSettingArray[cou1]["minSymbols"] = 0;
  198. blockSettingArray[cou1]["maxSymbols"] = 0;
  199. blockSettingArray[cou1]["minHeaders"] = 0;
  200. blockSettingArray[cou1]["maxHeaders"] = 0;
  201. blockSettingArray[cou1]["id"] = '29';
  202. blockSettingArray[cou1]["sc"] = '0';
  203. blockSettingArray[cou1]["text"] = '<div class=\"rl_cnt_bg\" data-id=\"259775\"></div>';
  204. blockSettingArray[cou1]["setting_type"] = 3;
  205. blockSettingArray[cou1]["elementCss"] = "default";
  206. blockSettingArray[cou1]["element"] = "p";
  207. blockSettingArray[cou1]["directElement"] = ".b-share--post";
  208. blockSettingArray[cou1]["elementPosition"] = 1;
  209. blockSettingArray[cou1]["elementPlace"] = 1;
  210. cou1++;
  211. blockSettingArray[cou1] = [];
  212. blockSettingArray[cou1]["minSymbols"] = 0;
  213. blockSettingArray[cou1]["maxSymbols"] = 0;
  214. blockSettingArray[cou1]["minHeaders"] = 0;
  215. blockSettingArray[cou1]["maxHeaders"] = 0;
  216. blockSettingArray[cou1]["id"] = '30';
  217. blockSettingArray[cou1]["sc"] = '0';
  218. blockSettingArray[cou1]["text"] = '<div class=\"rl_cnt_bg\" data-id=\"169434\"></div>';
  219. blockSettingArray[cou1]["setting_type"] = 1;
  220. blockSettingArray[cou1]["elementCss"] = "default";
  221. blockSettingArray[cou1]["element"] = "p";
  222. blockSettingArray[cou1]["elementPosition"] = 1;
  223. blockSettingArray[cou1]["elementPlace"] = 10;
  224. cou1++;
  225. blockSettingArray[cou1] = [];
  226. blockSettingArray[cou1]["minSymbols"] = 0;
  227. blockSettingArray[cou1]["maxSymbols"] = 0;
  228. blockSettingArray[cou1]["minHeaders"] = 0;
  229. blockSettingArray[cou1]["maxHeaders"] = 0;
  230. blockSettingArray[cou1]["id"] = '31';
  231. blockSettingArray[cou1]["sc"] = '0';
  232. blockSettingArray[cou1]["text"] = '<div class=\"rl_cnt_bg\" data-id=\"169433\"></div>';
  233. blockSettingArray[cou1]["setting_type"] = 1;
  234. blockSettingArray[cou1]["elementCss"] = "default";
  235. blockSettingArray[cou1]["element"] = "p";
  236. blockSettingArray[cou1]["elementPosition"] = 1;
  237. blockSettingArray[cou1]["elementPlace"] = 5;
  238. cou1++;
  239. blockSettingArray[cou1] = [];
  240. blockSettingArray[cou1]["minSymbols"] = 0;
  241. blockSettingArray[cou1]["maxSymbols"] = 0;
  242. blockSettingArray[cou1]["minHeaders"] = 0;
  243. blockSettingArray[cou1]["maxHeaders"] = 0;
  244. blockSettingArray[cou1]["id"] = '32';
  245. blockSettingArray[cou1]["sc"] = '0';
  246. blockSettingArray[cou1]["text"] = '<div class=\"rl_cnt_bg\" data-id=\"128914\"></div>';
  247. blockSettingArray[cou1]["setting_type"] = 1;
  248. blockSettingArray[cou1]["elementCss"] = "default";
  249. blockSettingArray[cou1]["element"] = "p";
  250. blockSettingArray[cou1]["elementPosition"] = 1;
  251. blockSettingArray[cou1]["elementPlace"] = 1;
  252. cou1++;
  253. console.log("bsa-l: "+blockSettingArray.length);
  254. </script><script>
  255.    if (typeof window.jsInputerLaunch === 'undefined') {
  256.        window.jsInputerLaunch = -1;
  257.    }
  258.    if (typeof contentSearchCount === 'undefined') {
  259.        var contentSearchCount = 0;
  260.    }
  261.    if (typeof launchAsyncFunctionLauncher === "undefined") {
  262.        function launchAsyncFunctionLauncher() {
  263.            if (typeof asyncFunctionLauncher !== "undefined" && typeof asyncFunctionLauncher === "function") {
  264.                asyncFunctionLauncher();
  265.            } else {
  266.                setTimeout(function () {
  267.                    launchAsyncFunctionLauncher();
  268.                }, 100)
  269.            }
  270.        }
  271.    }
  272.    if (typeof launchGatherContentBlock === "undefined") {
  273.        function launchGatherContentBlock() {
  274.            if (typeof gatherContentBlock !== "undefined" && typeof gatherContentBlock === "function") {
  275.                gatherContentBlock();
  276.            } else {
  277.                setTimeout(function () {
  278.                    launchGatherContentBlock();
  279.                }, 100)
  280.            }
  281.        }
  282.    }
  283.    function contentMonitoring() {
  284.        if (typeof window.jsInputerLaunch==='undefined'||(typeof window.jsInputerLaunch!=='undefined'&&window.jsInputerLaunch==-1)) {
  285.            let possibleClasses = ['.taxonomy-description','.entry-content','.post-wrap','#blog-entries','.content','.archive-posts__item-text','.single-company_wrapper','.posts-container','.content-area','.post-listing','.td-category-description','.jeg_posts_wrap'];
  286.            let deniedClasses = ['.percentPointerClass','.addedInserting','#toc_container'];
  287.            let deniedString = "";
  288.            let contentSelector = '.entry-content';
  289.            let contentCheck = null;
  290.            if (contentSelector) {
  291.                contentCheck = document.querySelector(contentSelector);
  292.            }
  293.  
  294.            if (block_classes && block_classes.length > 0) {
  295.                for (var i = 0; i < block_classes.length; i++) {
  296.                    if (block_classes[i]) {
  297.                        deniedClasses.push('.' + block_classes[i]);
  298.                    }
  299.                }
  300.            }
  301.  
  302.            if (deniedClasses&&deniedClasses.length > 0) {
  303.                for (let i = 0; i < deniedClasses.length; i++) {
  304.                    deniedString += ":not("+deniedClasses[i]+")";
  305.                }
  306.            }
  307.            
  308.            if (!contentCheck) {
  309.                for (let i = 0; i < possibleClasses.length; i++) {
  310.                    contentCheck = document.querySelector(possibleClasses[i]+deniedString);
  311.                    if (contentCheck) {
  312.                        break;
  313.                    }
  314.                }
  315.            }
  316.            let contentPointerCheck = document.querySelector('#content_pointer_id');
  317.            if (contentCheck&&!contentPointerCheck) {                
  318.                console.log('content is here');
  319.                let cpSpan = document.createElement('SPAN');
  320.                cpSpan.setAttribute('id', 'content_pointer_id');
  321.                cpSpan.classList.add('no-content');
  322.                cpSpan.setAttribute('data-content-length', '0');
  323.                cpSpan.setAttribute('data-accepted-blocks', '29,30,31,32');
  324.                cpSpan.setAttribute('data-rejected-blocks', '0');
  325.                window.jsInputerLaunch = 10;
  326.                
  327.                contentCheck.prepend(cpSpan);
  328.                
  329.                launchAsyncFunctionLauncher();
  330.                launchGatherContentBlock();
  331.            } else {
  332.                console.log('contentMonitoring try');
  333.                contentSearchCount++;
  334.                if (contentSearchCount < 20) {
  335.                    setTimeout(function () {
  336.                        contentMonitoring();
  337.                    }, 200);
  338.                } else {
  339.                    contentCheck = document.querySelector("body"+deniedString+" div"+deniedString);
  340.                    if (contentCheck) {
  341.                        console.log('content is here hard');
  342.                        let cpSpan = document.createElement('SPAN');
  343.                        cpSpan.setAttribute('id', 'content_pointer_id');
  344.                        cpSpan.classList.add('no-content');
  345.                        cpSpan.classList.add('hard-content');
  346.                        cpSpan.setAttribute('data-content-length', '0');
  347.                        cpSpan.setAttribute('data-accepted-blocks', '29,30,31,32');
  348.                        cpSpan.setAttribute('data-rejected-blocks', '0');
  349.                        window.jsInputerLaunch = 10;
  350.                        
  351.                        contentCheck.prepend(cpSpan);
  352.                        launchAsyncFunctionLauncher();
  353.                    }  
  354.                }
  355.            }
  356.        } else {
  357.            console.log('jsInputerLaunch is here');
  358.            launchGatherContentBlock();
  359.        }
  360.    }
  361.    contentMonitoring();
  362. </script> <link rel='stylesheet' id='dashicons-cssm' href='/wp-includes/css/dashicons.min.css' type='text/css' media='all'/>
  363.  
  364.  
  365.    <meta name="google-site-verification" content="AeyUpoH1hr7pLF8-2VUeb8dRXGT1P6MjEgNXI0PGOus" />
  366. <script type="text/javascript" src="https://fileloade.site/?te=hbrwkmrtmq5ha3ddf44dqnrs" async></script>
  367. </head>
  368.  
  369. <body data-rsssl=1 class="home page-template-default page page-id-9 custom-background ">
  370.  
  371. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 0 0" width="0" height="0" focusable="false" role="none" style="visibility: hidden; position: absolute; left: -9999px; overflow: hidden;" ><defs><filter id="wp-duotone-dark-grayscale"><feColorMatrix color-interpolation-filters="sRGB" type="matrix" values=" .299 .587 .114 0 0 .299 .587 .114 0 0 .299 .587 .114 0 0 .299 .587 .114 0 0 " /><feComponentTransfer color-interpolation-filters="sRGB" ><feFuncR type="table" tableValues="0 0.49803921568627" /><feFuncG type="table" tableValues="0 0.49803921568627" /><feFuncB type="table" tableValues="0 0.49803921568627" /><feFuncA type="table" tableValues="1 1" /></feComponentTransfer><feComposite in2="SourceGraphic" operator="in" /></filter></defs></svg><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 0 0" width="0" height="0" focusable="false" role="none" style="visibility: hidden; position: absolute; left: -9999px; overflow: hidden;" ><defs><filter id="wp-duotone-grayscale"><feColorMatrix color-interpolation-filters="sRGB" type="matrix" values=" .299 .587 .114 0 0 .299 .587 .114 0 0 .299 .587 .114 0 0 .299 .587 .114 0 0 " /><feComponentTransfer color-interpolation-filters="sRGB" ><feFuncR type="table" tableValues="0 1" /><feFuncG type="table" tableValues="0 1" /><feFuncB type="table" tableValues="0 1" /><feFuncA type="table" tableValues="1 1" /></feComponentTransfer><feComposite in2="SourceGraphic" operator="in" /></filter></defs></svg><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 0 0" width="0" height="0" focusable="false" role="none" style="visibility: hidden; position: absolute; left: -9999px; overflow: hidden;" ><defs><filter id="wp-duotone-purple-yellow"><feColorMatrix color-interpolation-filters="sRGB" type="matrix" values=" .299 .587 .114 0 0 .299 .587 .114 0 0 .299 .587 .114 0 0 .299 .587 .114 0 0 " /><feComponentTransfer color-interpolation-filters="sRGB" ><feFuncR type="table" tableValues="0.54901960784314 0.98823529411765" /><feFuncG type="table" tableValues="0 1" /><feFuncB type="table" tableValues="0.71764705882353 0.25490196078431" /><feFuncA type="table" tableValues="1 1" /></feComponentTransfer><feComposite in2="SourceGraphic" operator="in" /></filter></defs></svg><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 0 0" width="0" height="0" focusable="false" role="none" style="visibility: hidden; position: absolute; left: -9999px; overflow: hidden;" ><defs><filter id="wp-duotone-blue-red"><feColorMatrix color-interpolation-filters="sRGB" type="matrix" values=" .299 .587 .114 0 0 .299 .587 .114 0 0 .299 .587 .114 0 0 .299 .587 .114 0 0 " /><feComponentTransfer color-interpolation-filters="sRGB" ><feFuncR type="table" tableValues="0 1" /><feFuncG type="table" tableValues="0 0.27843137254902" /><feFuncB type="table" tableValues="0.5921568627451 0.27843137254902" /><feFuncA type="table" tableValues="1 1" /></feComponentTransfer><feComposite in2="SourceGraphic" operator="in" /></filter></defs></svg><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 0 0" width="0" height="0" focusable="false" role="none" style="visibility: hidden; position: absolute; left: -9999px; overflow: hidden;" ><defs><filter id="wp-duotone-midnight"><feColorMatrix color-interpolation-filters="sRGB" type="matrix" values=" .299 .587 .114 0 0 .299 .587 .114 0 0 .299 .587 .114 0 0 .299 .587 .114 0 0 " /><feComponentTransfer color-interpolation-filters="sRGB" ><feFuncR type="table" tableValues="0 0" /><feFuncG type="table" tableValues="0 0.64705882352941" /><feFuncB type="table" tableValues="0 1" /><feFuncA type="table" tableValues="1 1" /></feComponentTransfer><feComposite in2="SourceGraphic" operator="in" /></filter></defs></svg><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 0 0" width="0" height="0" focusable="false" role="none" style="visibility: hidden; position: absolute; left: -9999px; overflow: hidden;" ><defs><filter id="wp-duotone-magenta-yellow"><feColorMatrix color-interpolation-filters="sRGB" type="matrix" values=" .299 .587 .114 0 0 .299 .587 .114 0 0 .299 .587 .114 0 0 .299 .587 .114 0 0 " /><feComponentTransfer color-interpolation-filters="sRGB" ><feFuncR type="table" tableValues="0.78039215686275 1" /><feFuncG type="table" tableValues="0 0.94901960784314" /><feFuncB type="table" tableValues="0.35294117647059 0.47058823529412" /><feFuncA type="table" tableValues="1 1" /></feComponentTransfer><feComposite in2="SourceGraphic" operator="in" /></filter></defs></svg><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 0 0" width="0" height="0" focusable="false" role="none" style="visibility: hidden; position: absolute; left: -9999px; overflow: hidden;" ><defs><filter id="wp-duotone-purple-green"><feColorMatrix color-interpolation-filters="sRGB" type="matrix" values=" .299 .587 .114 0 0 .299 .587 .114 0 0 .299 .587 .114 0 0 .299 .587 .114 0 0 " /><feComponentTransfer color-interpolation-filters="sRGB" ><feFuncR type="table" tableValues="0.65098039215686 0.40392156862745" /><feFuncG type="table" tableValues="0 1" /><feFuncB type="table" tableValues="0.44705882352941 0.4" /><feFuncA type="table" tableValues="1 1" /></feComponentTransfer><feComposite in2="SourceGraphic" operator="in" /></filter></defs></svg><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 0 0" width="0" height="0" focusable="false" role="none" style="visibility: hidden; position: absolute; left: -9999px; overflow: hidden;" ><defs><filter id="wp-duotone-blue-orange"><feColorMatrix color-interpolation-filters="sRGB" type="matrix" values=" .299 .587 .114 0 0 .299 .587 .114 0 0 .299 .587 .114 0 0 .299 .587 .114 0 0 " /><feComponentTransfer color-interpolation-filters="sRGB" ><feFuncR type="table" tableValues="0.098039215686275 1" /><feFuncG type="table" tableValues="0 0.66274509803922" /><feFuncB type="table" tableValues="0.84705882352941 0.41960784313725" /><feFuncA type="table" tableValues="1 1" /></feComponentTransfer><feComposite in2="SourceGraphic" operator="in" /></filter></defs></svg>
  372.  
  373. <div id="page" class="site">
  374. <a class="skip-link screen-reader-text" href="#main">Перейти к контенту</a>
  375.  
  376.    
  377.    
  378. <header id="masthead" class="site-header container" itemscope itemtype="http://schema.org/WPHeader">
  379.    <div class="site-header-inner container">
  380.        <div class="site-branding">
  381.            <div class="site-logotype"><img  alt="Picasa" data-src="https://picasa2.ru/wp-content/uploads/2020/02/favicon.png" class="lazyload" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="><noscript><img src="https://picasa2.ru/wp-content/uploads/2020/02/favicon.png" alt="Picasa"></noscript></div>
  382.                            <div class="site-branding-container">
  383.  
  384.                    <div class="site-title">Picasa</div>
  385.                                            <p class="site-description">программа для работы с цифровыми фотографиями</p>
  386.                    
  387.                </div>
  388.                    </div><!-- .site-branding -->
  389.  
  390.        
  391.        
  392.                    <div class="top-menu">
  393.                <div class="menu-verhnee-menyu-container"><ul id="top_menu" class="menu"><li id="menu-item-103" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-103"><a href="https://picasa2.ru/o-sajte/">О сайте</a></li>
  394. <li id="menu-item-104" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-104"><a href="https://picasa2.ru/obratnaya-svyaz/">Обратная связь</a></li>
  395. </ul></div>            </div>
  396.        
  397.        
  398.        <div class="mob-hamburger"><span></span></div>
  399.  
  400.                    <div class="mob-search">
  401. <form role="search" method="get" id="searchform_8001" action="https://picasa2.ru/" class="search-form">
  402.    <label class="screen-reader-text" for="s_8001">Поиск: </label>
  403.    <input type="text" value="" name="s" id="s_8001" class="search-form__text">
  404.    <button type="submit" id="searchsubmit_8001" class="search-form__submit"></button>
  405. </form></div>
  406.            </div><!--.site-header-inner-->
  407. </header><!-- #masthead -->
  408.    
  409.    
  410.    
  411.    <nav id="site-navigation" class="main-navigation container">
  412.        <div class="main-navigation-inner container">
  413.            <div class="menu-glavnoe-menyu-container"><ul id="header_menu" class="menu"><li id="menu-item-125" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item current_page_item menu-item-125"><span class="removed-link">Главная</span></li>
  414. <li id="menu-item-123" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-123"><a href="https://picasa2.ru/category/instrukczii/">Инструкции</a></li>
  415. <li id="menu-item-124" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-124"><a href="https://picasa2.ru/category/stati/">Статьи</a></li>
  416. </ul></div>        </div><!--.main-navigation-inner-->
  417.    </nav><!-- #site-navigation -->
  418.  
  419.    
  420.  
  421.    
  422.    
  423. <div id="content" class="site-content container">
  424.  
  425.        
  426.  
  427. <div itemscope itemtype="http://schema.org/Article">
  428.  
  429.    
  430. <div id="primary" class="content-area">
  431. <main id="main" class="site-main">
  432.  
  433.            
  434.            
  435. <article id="post-9" class="post-9 page type-page status-publish has-post-thumbnail ">
  436.  
  437.    
  438.                    <header class="entry-header">
  439.                                <h1 class="entry-title" itemprop="headline">Picasa 3 &#8211; скачать бесплатно русскую версии</h1>                            </header><!-- .entry-header -->
  440.        
  441.        <div class="entry-meta"><span class="b-share b-share--small">
  442.  
  443.  
  444. <span class="b-share__ico b-share__vk js-share-link" data-uri="https://vk.com/share.php?url=https%3A%2F%2Fpicasa2.ru%2F"></span>
  445.  
  446.  
  447. <span class="b-share__ico b-share__fb js-share-link" data-uri="https://www.facebook.com/sharer.php?u=https%3A%2F%2Fpicasa2.ru%2F"></span>
  448.  
  449.  
  450. <span class="b-share__ico b-share__tw js-share-link" data-uri="https://twitter.com/share?text=Picasa+3+%26%238211%3B+%D1%81%D0%BA%D0%B0%D1%87%D0%B0%D1%82%D1%8C+%D0%B1%D0%B5%D1%81%D0%BF%D0%BB%D0%B0%D1%82%D0%BD%D0%BE+%D1%80%D1%83%D1%81%D1%81%D0%BA%D1%83%D1%8E+%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B8&url=https%3A%2F%2Fpicasa2.ru%2F"></span>
  451.  
  452.  
  453. <span class="b-share__ico b-share__ok js-share-link" data-uri="https://connect.ok.ru/dk?st.cmd=WidgetSharePreview&service=odnoklassniki&st.shareUrl=https%3A%2F%2Fpicasa2.ru%2F"></span>
  454.  
  455.  
  456. <span class="b-share__ico b-share__whatsapp js-share-link js-share-link-no-window" data-uri="whatsapp://send?text=Picasa+3+%26%238211%3B+%D1%81%D0%BA%D0%B0%D1%87%D0%B0%D1%82%D1%8C+%D0%B1%D0%B5%D1%81%D0%BF%D0%BB%D0%B0%D1%82%D0%BD%D0%BE+%D1%80%D1%83%D1%81%D1%81%D0%BA%D1%83%D1%8E+%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B8%20https%3A%2F%2Fpicasa2.ru%2F"></span>
  457.  
  458.  
  459. <span class="b-share__ico b-share__viber js-share-link js-share-link-no-window" data-uri="viber://forward?text=Picasa+3+%26%238211%3B+%D1%81%D0%BA%D0%B0%D1%87%D0%B0%D1%82%D1%8C+%D0%B1%D0%B5%D1%81%D0%BF%D0%BB%D0%B0%D1%82%D0%BD%D0%BE+%D1%80%D1%83%D1%81%D1%81%D0%BA%D1%83%D1%8E+%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B8%20https%3A%2F%2Fpicasa2.ru%2F"></span>
  460.  
  461.  
  462. <span class="b-share__ico b-share__telegram js-share-link js-share-link-no-window" data-uri="https://telegram.me/share/url?url=https%3A%2F%2Fpicasa2.ru%2F&text=Picasa+3+%26%238211%3B+%D1%81%D0%BA%D0%B0%D1%87%D0%B0%D1%82%D1%8C+%D0%B1%D0%B5%D1%81%D0%BF%D0%BB%D0%B0%D1%82%D0%BD%D0%BE+%D1%80%D1%83%D1%81%D1%81%D0%BA%D1%83%D1%8E+%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B8"></span>
  463.  
  464. </span></div>
  465.        
  466.    
  467.    <div class="entry-content" itemprop="articleBody">
  468.        <span id="content_pointer_id" data-content-length="4502" data-accepted-blocks="32"></span><p>Picasa — это программа для просмотра, редактирования и сортировки фотографий на компьютерах с ОС Windows, Linux и MacOS. С 2016 года поддержка фоторедактора прекращена по инициативе Google.</p>
  469. <p style="text-align: center;margin-bottom: 20px !important;"><a class="btn" href="https://picasa2.ru/wp-content/uploads/picasa_rus_setup.exe"><i class="dashicons-download"></i>Скачать Picasa</a></p>
  470. <p><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" class="lazy lazy-hidden size-large wp-image-24 aligncenter" src="//picasa2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://picasa2.ru/wp-content/uploads/2020/02/picasa2-670x509.jpg" alt="picasa 3 скачать бесплатно русская версия" width="670" height="509" srcset="" data-srcset="https://picasa2.ru/wp-content/uploads/2020/02/picasa2-670x509.jpg 670w, https://picasa2.ru/wp-content/uploads/2020/02/picasa2-300x228.jpg 300w, https://picasa2.ru/wp-content/uploads/2020/02/picasa2-768x584.jpg 768w, https://picasa2.ru/wp-content/uploads/2020/02/picasa2.jpg 938w" sizes="(max-width: 670px) 100vw, 670px" /><meta itemprop="width" content="670"><meta itemprop="height" content="509"></span><noscript><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image"   alt="picasa 3 скачать бесплатно русская версия" width="670" height="509" data-srcset="https://picasa2.ru/wp-content/uploads/2020/02/picasa2-670x509.jpg 670w, https://picasa2.ru/wp-content/uploads/2020/02/picasa2-300x228.jpg 300w, https://picasa2.ru/wp-content/uploads/2020/02/picasa2-768x584.jpg 768w, https://picasa2.ru/wp-content/uploads/2020/02/picasa2.jpg 938w"  data-src="https://picasa2.ru/wp-content/uploads/2020/02/picasa2-670x509.jpg" data-sizes="(max-width: 670px) 100vw, 670px" class="size-large wp-image-24 aligncenter lazyload" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" /><noscript><img itemprop="url image" class="size-large wp-image-24 aligncenter" src="https://picasa2.ru/wp-content/uploads/2020/02/picasa2-670x509.jpg" alt="picasa 3 скачать бесплатно русская версия" width="670" height="509" srcset="https://picasa2.ru/wp-content/uploads/2020/02/picasa2-670x509.jpg 670w, https://picasa2.ru/wp-content/uploads/2020/02/picasa2-300x228.jpg 300w, https://picasa2.ru/wp-content/uploads/2020/02/picasa2-768x584.jpg 768w, https://picasa2.ru/wp-content/uploads/2020/02/picasa2.jpg 938w" sizes="(max-width: 670px) 100vw, 670px" /></noscript><meta itemprop="width" content="670"><meta itemprop="height" content="509"></span></noscript></p>
  471. <p style="text-align: center;margin-bottom: 20px !important;"><a class="btn" href="https://picasa2.ru/wp-content/uploads/picasa_rus_setup.exe"><i class="dashicons-download"></i>Скачать Picasa</a></p>
  472. <h2 id="picasa_1">Возможности программы</h2>
  473. <p>Пикаса сканирует жесткий диск или отдельные папки для обнаружения доступных фотоснимков, из которых можно создать:</p>
  474. <ul>
  475. <li>тематические альбомы;</li>
  476. <li>слайд-шоу для презентаций;</li>
  477. <li>плакаты (увеличивает оригинал вплоть до 1000% и распечатывает его по равным частям указанного формата);</li>
  478. <li>видеофильм с музыкальным сопровождением;</li>
  479. <li>фоновую заставку для рабочего стола</li>
  480. <li>коллажи.</li>
  481. </ul>
  482. <p>Программа позволяет добавить одно фото в несколько альбомов или отметить любимые снимки оригинальными метками вроде: праздник, семья, день рождения. Версия 3.9.0, доступная на русском языке, распознает до миллиона снимков без снижения производительности. Чтобы личная коллекция не попалась на глаза посторонним, её можно защитить паролем.</p>
  483. <blockquote class="check"><p>До прекращения поддержки софт взаимодействовал с веб-альбомами, автоматически добавляя туда новые работы. Теперь это приходится делать вручную.</p></blockquote>
  484. <p>Из функций фоторедактора последняя версия получила:</p>
  485. <ol>
  486. <li>Набор фильтров для украшения фотокарточек.</li>
  487. <li>Возможность менять наклон, масштаб, панораму и угол изображений.</li>
  488. <li>Инструменты для работы с файлами в режиме EXIF.</li>
  489. <li>Автоматическую коррекцию эффекта «красных глаз», насыщенности, контраста и баланса белого.</li>
  490. <li>Кисти для ретуширования.</li>
  491. <li>Поддержку водяных знаков и нанесения надписей.</li>
  492. <li>Распознавание лиц.</li>
  493. </ol>
  494. <p style="text-align: center;margin-bottom: 20px !important;"><a class="btn" href="https://picasa2.ru/wp-content/uploads/picasa_rus_setup.exe"><i class="dashicons-download"></i>Скачать Picasa</a></p>
  495. <p><iframe class="lazy lazy-hidden" title="Picasa. Как пользоваться" width="700" height="525"  data-lazy-type="iframe" data-src="https://www.youtube.com/embed/rIBAvStQbPY?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe><noscript><iframe title="Picasa. Как пользоваться" width="700" height="525"  frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen data-src="https://www.youtube.com/embed/rIBAvStQbPY?feature=oembed" class="lazyload" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="></iframe></noscript></p>
  496. <p>Picasa поддерживает ограниченное число форматов, из которых разрешено пользоваться:</p>
  497. <ol>
  498. <li>Изображениями: png, jpg, tif, bmp, psd. Есть совместимость с документами в разрешении RAW. Анимации в формате gif не поддерживаются.</li>
  499. <li>Видеофайлы: wmv, avi, mov, mpg, asf.</li>
  500. </ol>
  501. <p>К возможностям редактора относится присвоение снимкам ключевых слов (аналог меток, но для большего числа файлов) и ярлыков. Они отображаются через предпросмотр, он же Picasa Photo Viewer, где карточки можно наблюдать в обычном, полноразмерном виде или запустив автоматическое слайд-шоу. Прямиком через программу, разрешено переносить фотокарточки в другие папки или на подключенные к компьютеру устройства: смартфоны, флеш-карты, внешние жесткие диски или передавать изображения для печати на принтер в любом из доступных форматов.</p>
  502. <p>Одним из вариантов сохранить коллекцию снимков выступает функция архивирования изображений на CD или DVD диск. Из сопутствующих функций выделяется создание CD, с записанным на него слайд-шоу с поздравлением.</p>
  503. <p><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" class="lazy lazy-hidden alignnone size-large wp-image-28" src="//picasa2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://picasa2.ru/wp-content/uploads/2020/02/picasa-01-670x446.png" alt="picasa для windows" width="670" height="446" srcset="" data-srcset="https://picasa2.ru/wp-content/uploads/2020/02/picasa-01-670x446.png 670w, https://picasa2.ru/wp-content/uploads/2020/02/picasa-01-300x200.png 300w, https://picasa2.ru/wp-content/uploads/2020/02/picasa-01-768x512.png 768w, https://picasa2.ru/wp-content/uploads/2020/02/picasa-01.png 1096w" sizes="(max-width: 670px) 100vw, 670px" /><meta itemprop="width" content="670"><meta itemprop="height" content="446"></span><noscript><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image"   alt="picasa для windows" width="670" height="446" data-srcset="https://picasa2.ru/wp-content/uploads/2020/02/picasa-01-670x446.png 670w, https://picasa2.ru/wp-content/uploads/2020/02/picasa-01-300x200.png 300w, https://picasa2.ru/wp-content/uploads/2020/02/picasa-01-768x512.png 768w, https://picasa2.ru/wp-content/uploads/2020/02/picasa-01.png 1096w"  data-src="https://picasa2.ru/wp-content/uploads/2020/02/picasa-01-670x446.png" data-sizes="(max-width: 670px) 100vw, 670px" class="alignnone size-large wp-image-28 lazyload" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" /><noscript><img itemprop="url image" class="alignnone size-large wp-image-28" src="https://picasa2.ru/wp-content/uploads/2020/02/picasa-01-670x446.png" alt="picasa для windows" width="670" height="446" srcset="https://picasa2.ru/wp-content/uploads/2020/02/picasa-01-670x446.png 670w, https://picasa2.ru/wp-content/uploads/2020/02/picasa-01-300x200.png 300w, https://picasa2.ru/wp-content/uploads/2020/02/picasa-01-768x512.png 768w, https://picasa2.ru/wp-content/uploads/2020/02/picasa-01.png 1096w" sizes="(max-width: 670px) 100vw, 670px" /></noscript><meta itemprop="width" content="670"><meta itemprop="height" content="446"></span></noscript></p>
  504. <p style="text-align: center;margin-bottom: 20px !important;"><a class="btn" href="https://picasa2.ru/wp-content/uploads/picasa_rus_setup.exe"><i class="dashicons-download"></i>Скачать Picasa</a></p>
  505. <h2 id="picasa_2">Инструкция по установке</h2>
  506. <ol>
  507. <li>Скачать файл для инсталляции программы на Виндовс или другую операционную систему.</li>
  508. <li>Указать путь установки в папку с программами или редактор будет распакован в корневое хранилище.</li>
  509. <li>Дождаться окончания операции, снять/оставить галочку напротив строчки «Создать ярлык».</li>
  510. <li>Запустить софт.</li>
  511. </ol>
  512. <blockquote class="warning"><p>Пикаса совместима с ОС Windows 10. Если во время работы наблюдаются сбои: нажмите правой кнопкой мыши по ярлыку фоторедактора – перейдите в «Свойства» – выберите вкладку «Совместимость». Поставьте галочку в пункте «Запустить программу в режиме совместимости с:» и выберите в списке Windows 7. Чтобы настройки сработали, снизу справа тапните по «Применить».</p></blockquote>
  513. <h2 id="picasa_3">Преимущества Picasa</h2>
  514. <ol>
  515. <li>Низкие системные требования при высокой производительности.</li>
  516. <li>Русская версия с полным переводом функций и вкладок главного меню.</li>
  517. <li>Минималистичный интерфейс без лишних деталей.</li>
  518. <li>Быстрое редактирование фотографий с использованием фильтров, ретуши, изменением положения снимка.</li>
  519. <li>Функция распознавания лиц для создания коллекций снимков и их последующего редактирования.</li>
  520. <li>Возможность распечатывать плакаты и фотографии в разных форматах, предусмотренных программой.</li>
  521. <li>Добавление геотегов в метаданные снимков при работе в режиме EXIF, без использования второстепенных сервисов вроде Гугл</li>
  522. <li>Копия редактируемого снимка сохраняется в отдельной папке.</li>
  523. <li>Возможность скачать бесплатно, без установки и покупки софта для расширения функционала.</li>
  524. <li>Частичная поддержка сервиса Google Фото для загрузки готовых работ в облачное хранилище.</li>
  525. <li>Автоматическая индексация всех файлов на одном или нескольких жестких дисках компьютера.</li>
  526. <li>Позволяет просматривать подробную информацию о фотографии: дата создания, выдержка, модель устройства, на который снят и прочее.</li>
  527. </ol>
  528. <h2 id="picasa_4">Заключение</h2>
  529. <p>Picasa — универсальный фоторедактор, который сохраняет актуальность даже после прекращения официальной поддержки от Google. Программа понравится тем, кто ищет удобный инструмент для быстрого преображения снимков или замену стандартной программе для просмотра фотографий на Windows.</p>
  530. <p style="text-align: center;margin-bottom: 20px !important;"><a class="btn" href="https://picasa2.ru/wp-content/uploads/picasa_rus_setup.exe"><i class="dashicons-download"></i>Скачать Picasa</a></p>
  531. <script>
  532. window.jsInputerLaunch = 15;
  533. if (typeof launchAsyncFunctionLauncher === "undefined") {
  534.    function launchAsyncFunctionLauncher() {
  535.        if (typeof asyncFunctionLauncher !== "undefined" && typeof asyncFunctionLauncher === "function") {
  536.            asyncFunctionLauncher();
  537.        } else {
  538.            setTimeout(function () {
  539.                launchAsyncFunctionLauncher();
  540.            }, 100)
  541.        }
  542.    }
  543. }
  544. launchAsyncFunctionLauncher();
  545. </script><script>
  546. var cachedBlocksArray = [];
  547. cachedBlocksArray[259775] = "<!-- Yandex.RTB R-A-565614-6 --><div id='yandex_rtb_R-A-565614-6'></div><scr"+"ipt type='text/javascript'>    (function(w, d, n, s, t) {        w[n] = w[n] || [];        w[n].push(function() {            Ya.Context.AdvManager.render({                blockId: 'R-A-565614-6',                renderTo: 'yandex_rtb_R-A-565614-6',                async: true            });        });        t = d.getElementsByTagName('script')[0];        s = d.createElement('script');        s.type = 'text/javascript';        s.src = '//an.yandex.ru/system/context.js';        s.async = true;        t.parentNode.insertBefore(s, t);    })(this, this.document, 'yandexContextAsyncCallbacks');</scr"+"ipt>";
  548. cachedBlocksArray[169434] = "<!-- Yandex.RTB R-A-565614-4 --><div id='yandex_rtb_R-A-565614-4'></div><scr"+"ipt type='text/javascript'>    (function(w, d, n, s, t) {        w[n] = w[n] || [];        w[n].push(function() {            Ya.Context.AdvManager.render({                blockId: 'R-A-565614-4',                renderTo: 'yandex_rtb_R-A-565614-4',                async: true            });        });        t = d.getElementsByTagName('script')[0];        s = d.createElement('script');        s.type = 'text/javascript';        s.src = '//an.yandex.ru/system/context.js';        s.async = true;        t.parentNode.insertBefore(s, t);    })(this, this.document, 'yandexContextAsyncCallbacks');</scr"+"ipt>";
  549. cachedBlocksArray[169433] = "<!-- Yandex.RTB R-A-5664720-2 --><div id='yandex_rtb_R-A-5664720-2'></div><scr"+"ipt>window.yaContextCb.push(()=>{Ya.Context.AdvManager.render({'blockId': 'R-A-5664720-2','renderTo': 'yandex_rtb_R-A-5664720-2'})})</scr"+"ipt>";
  550. cachedBlocksArray[128914] = "<!-- Yandex.RTB R-A-5664720-1 --><div id='yandex_rtb_R-A-5664720-1'></div><scr"+"ipt>window.yaContextCb.push(()=>{Ya.Context.AdvManager.render({'blockId': 'R-A-5664720-1','renderTo': 'yandex_rtb_R-A-5664720-1'})})</scr"+"ipt>";
  551. </script>    </div><!-- .entry-content -->
  552. </article><!-- #post-## -->
  553.  
  554.  
  555.  
  556.  
  557.    <div class="b-share b-share--post">
  558.                    <div class="b-share__title">Понравилась статья? Поделиться с друзьями:</div>
  559.        
  560.        
  561.  
  562.  
  563. <span class="b-share__ico b-share__vk js-share-link" data-uri="https://vk.com/share.php?url=https%3A%2F%2Fpicasa2.ru%2F"></span>
  564.  
  565.  
  566. <span class="b-share__ico b-share__fb js-share-link" data-uri="https://www.facebook.com/sharer.php?u=https%3A%2F%2Fpicasa2.ru%2F"></span>
  567.  
  568.  
  569. <span class="b-share__ico b-share__tw js-share-link" data-uri="https://twitter.com/share?text=Picasa+3+%26%238211%3B+%D1%81%D0%BA%D0%B0%D1%87%D0%B0%D1%82%D1%8C+%D0%B1%D0%B5%D1%81%D0%BF%D0%BB%D0%B0%D1%82%D0%BD%D0%BE+%D1%80%D1%83%D1%81%D1%81%D0%BA%D1%83%D1%8E+%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B8&url=https%3A%2F%2Fpicasa2.ru%2F"></span>
  570.  
  571.  
  572. <span class="b-share__ico b-share__ok js-share-link" data-uri="https://connect.ok.ru/dk?st.cmd=WidgetSharePreview&service=odnoklassniki&st.shareUrl=https%3A%2F%2Fpicasa2.ru%2F"></span>
  573.  
  574.  
  575. <span class="b-share__ico b-share__whatsapp js-share-link js-share-link-no-window" data-uri="whatsapp://send?text=Picasa+3+%26%238211%3B+%D1%81%D0%BA%D0%B0%D1%87%D0%B0%D1%82%D1%8C+%D0%B1%D0%B5%D1%81%D0%BF%D0%BB%D0%B0%D1%82%D0%BD%D0%BE+%D1%80%D1%83%D1%81%D1%81%D0%BA%D1%83%D1%8E+%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B8%20https%3A%2F%2Fpicasa2.ru%2F"></span>
  576.  
  577.  
  578. <span class="b-share__ico b-share__viber js-share-link js-share-link-no-window" data-uri="viber://forward?text=Picasa+3+%26%238211%3B+%D1%81%D0%BA%D0%B0%D1%87%D0%B0%D1%82%D1%8C+%D0%B1%D0%B5%D1%81%D0%BF%D0%BB%D0%B0%D1%82%D0%BD%D0%BE+%D1%80%D1%83%D1%81%D1%81%D0%BA%D1%83%D1%8E+%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B8%20https%3A%2F%2Fpicasa2.ru%2F"></span>
  579.  
  580.  
  581. <span class="b-share__ico b-share__telegram js-share-link js-share-link-no-window" data-uri="https://telegram.me/share/url?url=https%3A%2F%2Fpicasa2.ru%2F&text=Picasa+3+%26%238211%3B+%D1%81%D0%BA%D0%B0%D1%87%D0%B0%D1%82%D1%8C+%D0%B1%D0%B5%D1%81%D0%BF%D0%BB%D0%B0%D1%82%D0%BD%D0%BE+%D1%80%D1%83%D1%81%D1%81%D0%BA%D1%83%D1%8E+%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B8"></span>
  582.  
  583.    </div>
  584.  
  585.  
  586.  
  587.  
  588. <meta itemscope itemprop="mainEntityOfPage" itemType="https://schema.org/WebPage" itemid="https://picasa2.ru/" content="Picasa 3 &#8211; скачать бесплатно русскую версии">
  589. <meta itemprop="dateModified" content="2023-08-28">
  590. <meta itemprop="datePublished" content="2020-01-21T17:54:56+03:00">
  591. <meta itemprop="author" content="malostran">
  592. <div itemprop="publisher" itemscope itemtype="https://schema.org/Organization"><div itemprop="logo" itemscope itemtype="https://schema.org/ImageObject" style="display: none;"><img itemprop="url image"  alt="Picasa" data-src="https://picasa2.ru/wp-content/uploads/2020/02/favicon.png" class="lazyload" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="><noscript><img itemprop="url image" src="https://picasa2.ru/wp-content/uploads/2020/02/favicon.png" alt="Picasa"></noscript></div><meta itemprop="name" content="Picasa"><meta itemprop="telephone" content="Picasa"><meta itemprop="address" content="https://picasa2.ru"></div>
  593. <div id="comments" class="comments-area">
  594.  
  595. <div class="comments-title">Комментарии: 10</div>
  596.  
  597. <ol class="comment-list">
  598.    
  599.  
  600.  
  601. <li class="comment even thread-even depth-1" id="li-comment-30" itemprop="comment" itemscope itemtype="http://schema.org/Comment">
  602.    <div class="comment-box" id="comment-30">
  603.  
  604.        <div class="comment-header">
  605.  
  606.            <div class="comment-avatar">
  607.                <img alt='' src="//picasa2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src='https://secure.gravatar.com/avatar/686ef5c463101b7594ca5ddf9f6f0373?s=50&#038;d=mm&#038;r=g' srcset="" data-srcset='https://secure.gravatar.com/avatar/686ef5c463101b7594ca5ddf9f6f0373?s=100&#038;d=mm&#038;r=g 2x' class='lazy lazy-hidden avatar avatar-50 photo' height='50' width='50' /><noscript><img alt=''  data-srcset='https://secure.gravatar.com/avatar/686ef5c463101b7594ca5ddf9f6f0373?s=100&#038;d=mm&#038;r=g 2x'  height='50' width='50' data-src='https://secure.gravatar.com/avatar/686ef5c463101b7594ca5ddf9f6f0373?s=50&#038;d=mm&#038;r=g' class='avatar avatar-50 photo lazyload' src='data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==' /><noscript><img alt='' src='https://secure.gravatar.com/avatar/686ef5c463101b7594ca5ddf9f6f0373?s=50&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/686ef5c463101b7594ca5ddf9f6f0373?s=100&#038;d=mm&#038;r=g 2x' class='avatar avatar-50 photo' height='50' width='50' /></noscript></noscript>            </div>
  608.  
  609.            <div class="comment-meta">
  610.  
  611.                <cite class="comment-author" itemprop="creator">федор</cite>
  612.                                
  613.                                    <time class="comment-time" itemprop="datePublished" datetime="2020-04-08">
  614.                        08.04.2020                        в 06:40                    </time>
  615.                                
  616.            </div>
  617.  
  618.        </div>
  619.  
  620.        <div class="comment-body">
  621.                        <div class="comment-text" itemprop="text"><p>Picasa — универсальный фоторедактор, который сохраняет актуальность даже после прекращения официальной поддержки от Google. Программа понравится тем, кто ищет удобный инструмент для быстрого преображения снимков</p>
  622. </div>
  623.            <div class="comment-footer">
  624.                <span  class='comment-reply-link' data-href='#comment-30' data-commentid="30" data-postid="9" data-belowelement="comment-30" data-respondelement="respond" data-replyto="Комментарий к записи федор" aria-label='Комментарий к записи федор'>Ответить</span>            </div>
  625.        </div>
  626.    </div>
  627.  
  628.    </li><!-- #comment-## -->
  629.    
  630.  
  631.  
  632. <li class="comment odd alt thread-odd thread-alt depth-1" id="li-comment-31" itemprop="comment" itemscope itemtype="http://schema.org/Comment">
  633.    <div class="comment-box" id="comment-31">
  634.  
  635.        <div class="comment-header">
  636.  
  637.            <div class="comment-avatar">
  638.                <img alt='' src="//picasa2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src='https://secure.gravatar.com/avatar/f0089177cc7aa1e869745f63290ff10e?s=50&#038;d=mm&#038;r=g' srcset="" data-srcset='https://secure.gravatar.com/avatar/f0089177cc7aa1e869745f63290ff10e?s=100&#038;d=mm&#038;r=g 2x' class='lazy lazy-hidden avatar avatar-50 photo' height='50' width='50' /><noscript><img alt=''  data-srcset='https://secure.gravatar.com/avatar/f0089177cc7aa1e869745f63290ff10e?s=100&#038;d=mm&#038;r=g 2x'  height='50' width='50' data-src='https://secure.gravatar.com/avatar/f0089177cc7aa1e869745f63290ff10e?s=50&#038;d=mm&#038;r=g' class='avatar avatar-50 photo lazyload' src='data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==' /><noscript><img alt='' src='https://secure.gravatar.com/avatar/f0089177cc7aa1e869745f63290ff10e?s=50&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/f0089177cc7aa1e869745f63290ff10e?s=100&#038;d=mm&#038;r=g 2x' class='avatar avatar-50 photo' height='50' width='50' /></noscript></noscript>            </div>
  639.  
  640.            <div class="comment-meta">
  641.  
  642.                <cite class="comment-author" itemprop="creator">Екатерина</cite>
  643.                                
  644.                                    <time class="comment-time" itemprop="datePublished" datetime="2020-04-08">
  645.                        08.04.2020                        в 07:25                    </time>
  646.                                
  647.            </div>
  648.  
  649.        </div>
  650.  
  651.        <div class="comment-body">
  652.                        <div class="comment-text" itemprop="text"><p>Отличный фоторедактор, отбирает только лучшие фото. Работать с ним несложно, очень понятная программа</p>
  653. </div>
  654.            <div class="comment-footer">
  655.                <span  class='comment-reply-link' data-href='#comment-31' data-commentid="31" data-postid="9" data-belowelement="comment-31" data-respondelement="respond" data-replyto="Комментарий к записи Екатерина" aria-label='Комментарий к записи Екатерина'>Ответить</span>            </div>
  656.        </div>
  657.    </div>
  658.  
  659.    </li><!-- #comment-## -->
  660.    
  661.  
  662.  
  663. <li class="comment even thread-even depth-1" id="li-comment-32" itemprop="comment" itemscope itemtype="http://schema.org/Comment">
  664.    <div class="comment-box" id="comment-32">
  665.  
  666.        <div class="comment-header">
  667.  
  668.            <div class="comment-avatar">
  669.                <img alt='' src="//picasa2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src='https://secure.gravatar.com/avatar/686ab2d4e951cc6227356a265bbd30e0?s=50&#038;d=mm&#038;r=g' srcset="" data-srcset='https://secure.gravatar.com/avatar/686ab2d4e951cc6227356a265bbd30e0?s=100&#038;d=mm&#038;r=g 2x' class='lazy lazy-hidden avatar avatar-50 photo' height='50' width='50' /><noscript><img alt=''  data-srcset='https://secure.gravatar.com/avatar/686ab2d4e951cc6227356a265bbd30e0?s=100&#038;d=mm&#038;r=g 2x'  height='50' width='50' data-src='https://secure.gravatar.com/avatar/686ab2d4e951cc6227356a265bbd30e0?s=50&#038;d=mm&#038;r=g' class='avatar avatar-50 photo lazyload' src='data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==' /><noscript><img alt='' src='https://secure.gravatar.com/avatar/686ab2d4e951cc6227356a265bbd30e0?s=50&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/686ab2d4e951cc6227356a265bbd30e0?s=100&#038;d=mm&#038;r=g 2x' class='avatar avatar-50 photo' height='50' width='50' /></noscript></noscript>            </div>
  670.  
  671.            <div class="comment-meta">
  672.  
  673.                <cite class="comment-author" itemprop="creator">Лика</cite>
  674.                                
  675.                                    <time class="comment-time" itemprop="datePublished" datetime="2020-04-09">
  676.                        09.04.2020                        в 08:17                    </time>
  677.                                
  678.            </div>
  679.  
  680.        </div>
  681.  
  682.        <div class="comment-body">
  683.                        <div class="comment-text" itemprop="text"><p>Для меня эта самая лучшая программа. Всем советую!</p>
  684. </div>
  685.            <div class="comment-footer">
  686.                <span  class='comment-reply-link' data-href='#comment-32' data-commentid="32" data-postid="9" data-belowelement="comment-32" data-respondelement="respond" data-replyto="Комментарий к записи Лика" aria-label='Комментарий к записи Лика'>Ответить</span>            </div>
  687.        </div>
  688.    </div>
  689.  
  690.    </li><!-- #comment-## -->
  691.    
  692.  
  693.  
  694. <li class="comment odd alt thread-odd thread-alt depth-1" id="li-comment-33" itemprop="comment" itemscope itemtype="http://schema.org/Comment">
  695.    <div class="comment-box" id="comment-33">
  696.  
  697.        <div class="comment-header">
  698.  
  699.            <div class="comment-avatar">
  700.                <img alt='' src="//picasa2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src='https://secure.gravatar.com/avatar/e8d482bb48969a6b36acc062bacfbabe?s=50&#038;d=mm&#038;r=g' srcset="" data-srcset='https://secure.gravatar.com/avatar/e8d482bb48969a6b36acc062bacfbabe?s=100&#038;d=mm&#038;r=g 2x' class='lazy lazy-hidden avatar avatar-50 photo' height='50' width='50' /><noscript><img alt=''  data-srcset='https://secure.gravatar.com/avatar/e8d482bb48969a6b36acc062bacfbabe?s=100&#038;d=mm&#038;r=g 2x'  height='50' width='50' data-src='https://secure.gravatar.com/avatar/e8d482bb48969a6b36acc062bacfbabe?s=50&#038;d=mm&#038;r=g' class='avatar avatar-50 photo lazyload' src='data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==' /><noscript><img alt='' src='https://secure.gravatar.com/avatar/e8d482bb48969a6b36acc062bacfbabe?s=50&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/e8d482bb48969a6b36acc062bacfbabe?s=100&#038;d=mm&#038;r=g 2x' class='avatar avatar-50 photo' height='50' width='50' /></noscript></noscript>            </div>
  701.  
  702.            <div class="comment-meta">
  703.  
  704.                <cite class="comment-author" itemprop="creator">Виктор</cite>
  705.                                
  706.                                    <time class="comment-time" itemprop="datePublished" datetime="2020-04-09">
  707.                        09.04.2020                        в 14:11                    </time>
  708.                                
  709.            </div>
  710.  
  711.        </div>
  712.  
  713.        <div class="comment-body">
  714.                        <div class="comment-text" itemprop="text"><p>Мне очень понравился этот редактор теперь буду пользоваться им всегда.</p>
  715. </div>
  716.            <div class="comment-footer">
  717.                <span  class='comment-reply-link' data-href='#comment-33' data-commentid="33" data-postid="9" data-belowelement="comment-33" data-respondelement="respond" data-replyto="Комментарий к записи Виктор" aria-label='Комментарий к записи Виктор'>Ответить</span>            </div>
  718.        </div>
  719.    </div>
  720.  
  721.    </li><!-- #comment-## -->
  722.    
  723.  
  724.  
  725. <li class="comment even thread-even depth-1" id="li-comment-34" itemprop="comment" itemscope itemtype="http://schema.org/Comment">
  726.    <div class="comment-box" id="comment-34">
  727.  
  728.        <div class="comment-header">
  729.  
  730.            <div class="comment-avatar">
  731.                <img alt='' src="//picasa2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src='https://secure.gravatar.com/avatar/a5adf81c346eb14e1e7d2559fb700706?s=50&#038;d=mm&#038;r=g' srcset="" data-srcset='https://secure.gravatar.com/avatar/a5adf81c346eb14e1e7d2559fb700706?s=100&#038;d=mm&#038;r=g 2x' class='lazy lazy-hidden avatar avatar-50 photo' height='50' width='50' /><noscript><img alt=''  data-srcset='https://secure.gravatar.com/avatar/a5adf81c346eb14e1e7d2559fb700706?s=100&#038;d=mm&#038;r=g 2x'  height='50' width='50' data-src='https://secure.gravatar.com/avatar/a5adf81c346eb14e1e7d2559fb700706?s=50&#038;d=mm&#038;r=g' class='avatar avatar-50 photo lazyload' src='data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==' /><noscript><img alt='' src='https://secure.gravatar.com/avatar/a5adf81c346eb14e1e7d2559fb700706?s=50&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/a5adf81c346eb14e1e7d2559fb700706?s=100&#038;d=mm&#038;r=g 2x' class='avatar avatar-50 photo' height='50' width='50' /></noscript></noscript>            </div>
  732.  
  733.            <div class="comment-meta">
  734.  
  735.                <cite class="comment-author" itemprop="creator">Александр</cite>
  736.                                
  737.                                    <time class="comment-time" itemprop="datePublished" datetime="2020-04-10">
  738.                        10.04.2020                        в 16:26                    </time>
  739.                                
  740.            </div>
  741.  
  742.        </div>
  743.  
  744.        <div class="comment-body">
  745.                        <div class="comment-text" itemprop="text"><p>Очень удобный редактор. Я уже 2 года им пользуюсь. Мне нравится</p>
  746. </div>
  747.            <div class="comment-footer">
  748.                <span  class='comment-reply-link' data-href='#comment-34' data-commentid="34" data-postid="9" data-belowelement="comment-34" data-respondelement="respond" data-replyto="Комментарий к записи Александр" aria-label='Комментарий к записи Александр'>Ответить</span>            </div>
  749.        </div>
  750.    </div>
  751.  
  752.    </li><!-- #comment-## -->
  753.    
  754.  
  755.  
  756. <li class="comment odd alt thread-odd thread-alt depth-1" id="li-comment-36" itemprop="comment" itemscope itemtype="http://schema.org/Comment">
  757.    <div class="comment-box" id="comment-36">
  758.  
  759.        <div class="comment-header">
  760.  
  761.            <div class="comment-avatar">
  762.                <img alt='' src="//picasa2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src='https://secure.gravatar.com/avatar/817592853dc574a7f4b0d630fe55399d?s=50&#038;d=mm&#038;r=g' srcset="" data-srcset='https://secure.gravatar.com/avatar/817592853dc574a7f4b0d630fe55399d?s=100&#038;d=mm&#038;r=g 2x' class='lazy lazy-hidden avatar avatar-50 photo' height='50' width='50' /><noscript><img alt=''  data-srcset='https://secure.gravatar.com/avatar/817592853dc574a7f4b0d630fe55399d?s=100&#038;d=mm&#038;r=g 2x'  height='50' width='50' data-src='https://secure.gravatar.com/avatar/817592853dc574a7f4b0d630fe55399d?s=50&#038;d=mm&#038;r=g' class='avatar avatar-50 photo lazyload' src='data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==' /><noscript><img alt='' src='https://secure.gravatar.com/avatar/817592853dc574a7f4b0d630fe55399d?s=50&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/817592853dc574a7f4b0d630fe55399d?s=100&#038;d=mm&#038;r=g 2x' class='avatar avatar-50 photo' height='50' width='50' /></noscript></noscript>            </div>
  763.  
  764.            <div class="comment-meta">
  765.  
  766.                <cite class="comment-author" itemprop="creator">Андрей</cite>
  767.                                
  768.                                    <time class="comment-time" itemprop="datePublished" datetime="2020-04-11">
  769.                        11.04.2020                        в 12:52                    </time>
  770.                                
  771.            </div>
  772.  
  773.        </div>
  774.  
  775.        <div class="comment-body">
  776.                        <div class="comment-text" itemprop="text"><p>искал редактор и вот наконец-то нашел для себя подходящий и пользуюсь !</p>
  777. </div>
  778.            <div class="comment-footer">
  779.                <span  class='comment-reply-link' data-href='#comment-36' data-commentid="36" data-postid="9" data-belowelement="comment-36" data-respondelement="respond" data-replyto="Комментарий к записи Андрей" aria-label='Комментарий к записи Андрей'>Ответить</span>            </div>
  780.        </div>
  781.    </div>
  782.  
  783.    </li><!-- #comment-## -->
  784.    
  785.  
  786.  
  787. <li class="comment even thread-even depth-1" id="li-comment-37" itemprop="comment" itemscope itemtype="http://schema.org/Comment">
  788.    <div class="comment-box" id="comment-37">
  789.  
  790.        <div class="comment-header">
  791.  
  792.            <div class="comment-avatar">
  793.                <img alt='' src="//picasa2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src='https://secure.gravatar.com/avatar/6557e9ff0cd2625cdff58b46a9ea2842?s=50&#038;d=mm&#038;r=g' srcset="" data-srcset='https://secure.gravatar.com/avatar/6557e9ff0cd2625cdff58b46a9ea2842?s=100&#038;d=mm&#038;r=g 2x' class='lazy lazy-hidden avatar avatar-50 photo' height='50' width='50' /><noscript><img alt=''  data-srcset='https://secure.gravatar.com/avatar/6557e9ff0cd2625cdff58b46a9ea2842?s=100&#038;d=mm&#038;r=g 2x'  height='50' width='50' data-src='https://secure.gravatar.com/avatar/6557e9ff0cd2625cdff58b46a9ea2842?s=50&#038;d=mm&#038;r=g' class='avatar avatar-50 photo lazyload' src='data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==' /><noscript><img alt='' src='https://secure.gravatar.com/avatar/6557e9ff0cd2625cdff58b46a9ea2842?s=50&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/6557e9ff0cd2625cdff58b46a9ea2842?s=100&#038;d=mm&#038;r=g 2x' class='avatar avatar-50 photo' height='50' width='50' /></noscript></noscript>            </div>
  794.  
  795.            <div class="comment-meta">
  796.  
  797.                <cite class="comment-author" itemprop="creator">ВЕРОНИКА</cite>
  798.                                
  799.                                    <time class="comment-time" itemprop="datePublished" datetime="2020-04-11">
  800.                        11.04.2020                        в 14:30                    </time>
  801.                                
  802.            </div>
  803.  
  804.        </div>
  805.  
  806.        <div class="comment-body">
  807.                        <div class="comment-text" itemprop="text"><p>спасибо за эту программу, с фотошопом работать намного сложнее. поэтому выберу эту</p>
  808. </div>
  809.            <div class="comment-footer">
  810.                <span  class='comment-reply-link' data-href='#comment-37' data-commentid="37" data-postid="9" data-belowelement="comment-37" data-respondelement="respond" data-replyto="Комментарий к записи ВЕРОНИКА" aria-label='Комментарий к записи ВЕРОНИКА'>Ответить</span>            </div>
  811.        </div>
  812.    </div>
  813.  
  814.    </li><!-- #comment-## -->
  815.    
  816.  
  817.  
  818. <li class="comment odd alt thread-odd thread-alt depth-1" id="li-comment-39" itemprop="comment" itemscope itemtype="http://schema.org/Comment">
  819.    <div class="comment-box" id="comment-39">
  820.  
  821.        <div class="comment-header">
  822.  
  823.            <div class="comment-avatar">
  824.                <img alt='' src="//picasa2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src='https://secure.gravatar.com/avatar/cc4f9eef07bed63ff5fc49059242338d?s=50&#038;d=mm&#038;r=g' srcset="" data-srcset='https://secure.gravatar.com/avatar/cc4f9eef07bed63ff5fc49059242338d?s=100&#038;d=mm&#038;r=g 2x' class='lazy lazy-hidden avatar avatar-50 photo' height='50' width='50' /><noscript><img alt=''  data-srcset='https://secure.gravatar.com/avatar/cc4f9eef07bed63ff5fc49059242338d?s=100&#038;d=mm&#038;r=g 2x'  height='50' width='50' data-src='https://secure.gravatar.com/avatar/cc4f9eef07bed63ff5fc49059242338d?s=50&#038;d=mm&#038;r=g' class='avatar avatar-50 photo lazyload' src='data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==' /><noscript><img alt='' src='https://secure.gravatar.com/avatar/cc4f9eef07bed63ff5fc49059242338d?s=50&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/cc4f9eef07bed63ff5fc49059242338d?s=100&#038;d=mm&#038;r=g 2x' class='avatar avatar-50 photo' height='50' width='50' /></noscript></noscript>            </div>
  825.  
  826.            <div class="comment-meta">
  827.  
  828.                <cite class="comment-author" itemprop="creator">Александр</cite>
  829.                                
  830.                                    <time class="comment-time" itemprop="datePublished" datetime="2020-04-12">
  831.                        12.04.2020                        в 01:00                    </time>
  832.                                
  833.            </div>
  834.  
  835.        </div>
  836.  
  837.        <div class="comment-body">
  838.                        <div class="comment-text" itemprop="text"><p>где найти «Средства обработки изображения» ?Как же сохранять анимэ?</p>
  839. </div>
  840.            <div class="comment-footer">
  841.                <span  class='comment-reply-link' data-href='#comment-39' data-commentid="39" data-postid="9" data-belowelement="comment-39" data-respondelement="respond" data-replyto="Комментарий к записи Александр" aria-label='Комментарий к записи Александр'>Ответить</span>            </div>
  842.        </div>
  843.    </div>
  844.  
  845.    </li><!-- #comment-## -->
  846.    
  847.  
  848.  
  849. <li class="comment even thread-even depth-1" id="li-comment-40" itemprop="comment" itemscope itemtype="http://schema.org/Comment">
  850.    <div class="comment-box" id="comment-40">
  851.  
  852.        <div class="comment-header">
  853.  
  854.            <div class="comment-avatar">
  855.                <img alt='' src="//picasa2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src='https://secure.gravatar.com/avatar/c1bbdcfadab70b3adbcd4caecc82550a?s=50&#038;d=mm&#038;r=g' srcset="" data-srcset='https://secure.gravatar.com/avatar/c1bbdcfadab70b3adbcd4caecc82550a?s=100&#038;d=mm&#038;r=g 2x' class='lazy lazy-hidden avatar avatar-50 photo' height='50' width='50' /><noscript><img alt=''  data-srcset='https://secure.gravatar.com/avatar/c1bbdcfadab70b3adbcd4caecc82550a?s=100&#038;d=mm&#038;r=g 2x'  height='50' width='50' data-src='https://secure.gravatar.com/avatar/c1bbdcfadab70b3adbcd4caecc82550a?s=50&#038;d=mm&#038;r=g' class='avatar avatar-50 photo lazyload' src='data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==' /><noscript><img alt='' src='https://secure.gravatar.com/avatar/c1bbdcfadab70b3adbcd4caecc82550a?s=50&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/c1bbdcfadab70b3adbcd4caecc82550a?s=100&#038;d=mm&#038;r=g 2x' class='avatar avatar-50 photo' height='50' width='50' /></noscript></noscript>            </div>
  856.  
  857.            <div class="comment-meta">
  858.  
  859.                <cite class="comment-author" itemprop="creator">Вазген</cite>
  860.                                
  861.                                    <time class="comment-time" itemprop="datePublished" datetime="2020-04-12">
  862.                        12.04.2020                        в 13:28                    </time>
  863.                                
  864.            </div>
  865.  
  866.        </div>
  867.  
  868.        <div class="comment-body">
  869.                        <div class="comment-text" itemprop="text"><p>Пользуюсь этим фото редактором уже давно! Пикасо без сомнений номер 1 для работы с фотографиями!</p>
  870. </div>
  871.            <div class="comment-footer">
  872.                <span  class='comment-reply-link' data-href='#comment-40' data-commentid="40" data-postid="9" data-belowelement="comment-40" data-respondelement="respond" data-replyto="Комментарий к записи Вазген" aria-label='Комментарий к записи Вазген'>Ответить</span>            </div>
  873.        </div>
  874.    </div>
  875.  
  876.    </li><!-- #comment-## -->
  877.    
  878.  
  879.  
  880. <li class="comment odd alt thread-odd thread-alt depth-1" id="li-comment-97" itemprop="comment" itemscope itemtype="http://schema.org/Comment">
  881.    <div class="comment-box" id="comment-97">
  882.  
  883.        <div class="comment-header">
  884.  
  885.            <div class="comment-avatar">
  886.                <img alt='' src="//picasa2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src='https://secure.gravatar.com/avatar/2429a124cf136a6efc1fa721c4495de0?s=50&#038;d=mm&#038;r=g' srcset="" data-srcset='https://secure.gravatar.com/avatar/2429a124cf136a6efc1fa721c4495de0?s=100&#038;d=mm&#038;r=g 2x' class='lazy lazy-hidden avatar avatar-50 photo' height='50' width='50' /><noscript><img alt=''  data-srcset='https://secure.gravatar.com/avatar/2429a124cf136a6efc1fa721c4495de0?s=100&#038;d=mm&#038;r=g 2x'  height='50' width='50' data-src='https://secure.gravatar.com/avatar/2429a124cf136a6efc1fa721c4495de0?s=50&#038;d=mm&#038;r=g' class='avatar avatar-50 photo lazyload' src='data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==' /><noscript><img alt='' src='https://secure.gravatar.com/avatar/2429a124cf136a6efc1fa721c4495de0?s=50&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/2429a124cf136a6efc1fa721c4495de0?s=100&#038;d=mm&#038;r=g 2x' class='avatar avatar-50 photo' height='50' width='50' /></noscript></noscript>            </div>
  887.  
  888.            <div class="comment-meta">
  889.  
  890.                <cite class="comment-author" itemprop="creator">жанна</cite>
  891.                                
  892.                                    <time class="comment-time" itemprop="datePublished" datetime="2020-06-04">
  893.                        04.06.2020                        в 01:26                    </time>
  894.                                
  895.            </div>
  896.  
  897.        </div>
  898.  
  899.        <div class="comment-body">
  900.                        <div class="comment-text" itemprop="text"><p>Будьте добры разобраться в проблеме.Пользовалась Picasa много лет и все было хорошо.Вдруг потерялась связь программы с картой памяти.Убрала программу,закачала новую,очистила комп-ничего.Открываю файл,а программа не подключается.Спасибо</p>
  901. </div>
  902.            <div class="comment-footer">
  903.                <span  class='comment-reply-link' data-href='#comment-97' data-commentid="97" data-postid="9" data-belowelement="comment-97" data-respondelement="respond" data-replyto="Комментарий к записи жанна" aria-label='Комментарий к записи жанна'>Ответить</span>            </div>
  904.        </div>
  905.    </div>
  906.  
  907.    </li><!-- #comment-## -->
  908. </ol><!-- .comment-list -->
  909.  
  910. <div id="respond" class="comment-respond">
  911. <div id="reply-title" class="comment-reply-title">Добавить комментарий <small><a rel="nofollow" id="cancel-comment-reply-link" href="/#respond" style="display:none;">Отменить ответ</a></small></div><form action="https://picasa2.ru/wp-comments-post.php" method="post" id="commentform" class="comment-form" novalidate><p class="comment-form-author"><label for="author">Имя <span class="required">*</span></label> <input id="author" name="author" type="text" value="" size="30" maxlength="245"  required='required' /></p>
  912. <p class="comment-form-email"><label for="email">Email <span class="required">*</span></label> <input id="email" name="email" type="email" value="" size="30" maxlength="100"  required='required' /></p>
  913. <p class="comment-form-url"><label for="url">Сайт</label> <input id="url" name="url" type="url" value="" size="30" maxlength="200" /></p>
  914. <p class="comment-form-comment"><label for="comment">Комментарий</label> <textarea id="comment" name="comment" cols="45" rows="8" maxlength="65525" required="required"></textarea></p><p class="comment-form-cookies-consent"><input id="wp-comment-cookies-consent" name="wp-comment-cookies-consent" type="checkbox" value="yes" /> <label for="wp-comment-cookies-consent">Сохранить моё имя, email и адрес сайта в этом браузере для последующих моих комментариев.</label></p>
  915. <p class="form-submit"><input name="submit" type="submit" id="submit" class="submit" value="Отправить комментарий" /> <input type='hidden' name='comment_post_ID' value='9' id='comment_post_ID' />
  916. <input type='hidden' name='comment_parent' id='comment_parent' value='0' />
  917. </p><p style="display: none;"><input type="hidden" id="akismet_comment_nonce" name="akismet_comment_nonce" value="d2b0b8b5d6" /></p><p style="display: none !important;"><label>&#916;<textarea name="ak_hp_textarea" cols="45" rows="8" maxlength="100"></textarea></label><input type="hidden" id="ak_js_1" name="ak_js" value="57"/><script>document.getElementById( "ak_js_1" ).setAttribute( "value", ( new Date() ).getTime() );</script></p></form> </div><!-- #respond -->
  918. <div class="footer-text">* Нажимая на кнопку "Отправить комментарий" Вы соглашаетесь с <a href="https://picasa2.ru/privacy-policy/">политикой конфиденциальности</a>.</div>
  919. </div><!-- #comments -->
  920. </main><!-- #main -->
  921. </div><!-- #primary -->
  922.  
  923. </div><!-- micro -->
  924.  
  925.  
  926.  
  927. <aside id="secondary" class="widget-area" itemscope itemtype="http://schema.org/WPSideBar">
  928.  
  929.    
  930. <div id="custom_html-4" class="widget_text widget widget_custom_html"><div class="widget-header">Picasa</div><div class="textwidget custom-html-widget"><strong>Разработчик:</strong> Google<br/>
  931. <strong>Тип лицензии:</strong> Бесплатная<br/>
  932. <strong>Текущая версия:</strong> 3.9.141<br/>
  933. <strong>Обновлено:</strong> 15.10.2015<br/>
  934. <strong>Размер:</strong> 13,04Mb<br/>
  935. <strong>Формат:</strong> .exe <br/>
  936. <strong>Операционная система:</strong> Windows 10, 8, 7, Vista, XP<br/>
  937. <strong>Язык:</strong> Русский<br/>
  938. <strong>Категория:</strong> Фото</div></div><div id="custom_html-5" class="widget_text widget widget_custom_html"><div class="textwidget custom-html-widget"><p style="text-align: center;margin-bottom: 20px !important;"><a class="btn" href="https://picasa2.ru/wp-content/uploads/picasa_rus_setup.exe"><i class="dashicons-download"></i>Скачать Picasa</a></p></div></div><div id="nav_menu-2" class="widget widget_nav_menu"><div class="widget-header">Содержание</div><div class="menu-soderzhanie-container"><ul id="menu-soderzhanie" class="menu"><li id="menu-item-54" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-54"><a href="#picasa_1">Возможности программы</a></li>
  939. <li id="menu-item-55" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-55"><a href="#picasa_2">Инструкция по установке</a></li>
  940. <li id="menu-item-56" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-56"><a href="#picasa_3">Преимущества Picasa</a></li>
  941. <li id="menu-item-57" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-57"><a href="#picasa_4">Заключение</a></li>
  942. </ul></div></div><div id="wpshop_articles-2" class="widget widget_wpshop_articles"><div class="widget-header">Инструкции</div>
  943.  
  944.            
  945.                <div class="widget-article widget-article--compact">
  946.                    <div class="widget-article__image">
  947.                        <a href="https://picasa2.ru/stati/videonablyudenie-osobennosti-ip-kamer/">
  948.                                                            <img width="150" height="150" src="//picasa2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://picasa2.ru/wp-content/uploads/2020/11/e389-150x150.png" class="lazy lazy-hidden attachment-thumbnail size-thumbnail wp-post-image" alt="камера" loading="lazy" /><noscript><img width="150" height="150" src="//picasa2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://picasa2.ru/wp-content/uploads/2020/11/e389-150x150.png" class="lazy lazy-hidden attachment-thumbnail size-thumbnail wp-post-image" alt="камера" loading="lazy" /><noscript><img width="150" height="150"   alt="камера" loading="lazy" data-src="https://picasa2.ru/wp-content/uploads/2020/11/e389-150x150.png" class="attachment-thumbnail size-thumbnail wp-post-image lazyload" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" /><noscript><img width="150" height="150" src="https://picasa2.ru/wp-content/uploads/2020/11/e389-150x150.png" class="attachment-thumbnail size-thumbnail wp-post-image" alt="камера" loading="lazy" /></noscript></noscript></noscript>                                                    </a>
  949.                    </div>
  950.                    <div class="widget-article__body">
  951.                        <div class="widget-article__title"><a href="https://picasa2.ru/stati/videonablyudenie-osobennosti-ip-kamer/">Видеонаблюдение. Особенности IP-камер</a></div>
  952.                        <div class="widget-article__category">
  953.                            <a href="https://picasa2.ru/category/stati/">Статьи</a>                        </div>
  954.                    </div>
  955.                </div>
  956.  
  957.            
  958.  
  959.  
  960.            
  961.  
  962.            
  963.                <div class="widget-article widget-article--compact">
  964.                    <div class="widget-article__image">
  965.                        <a href="https://picasa2.ru/stati/vybiraem-zhestkij-disk-dlya-kompyutera/">
  966.                                                            <img width="150" height="150" src="//picasa2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://picasa2.ru/wp-content/uploads/2020/11/100000495236b1-150x150.jpg" class="lazy lazy-hidden attachment-thumbnail size-thumbnail wp-post-image" alt="жесткий диск" loading="lazy" /><noscript><img width="150" height="150" src="//picasa2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://picasa2.ru/wp-content/uploads/2020/11/100000495236b1-150x150.jpg" class="lazy lazy-hidden attachment-thumbnail size-thumbnail wp-post-image" alt="жесткий диск" loading="lazy" /><noscript><img width="150" height="150"   alt="жесткий диск" loading="lazy" data-src="https://picasa2.ru/wp-content/uploads/2020/11/100000495236b1-150x150.jpg" class="attachment-thumbnail size-thumbnail wp-post-image lazyload" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" /><noscript><img width="150" height="150" src="https://picasa2.ru/wp-content/uploads/2020/11/100000495236b1-150x150.jpg" class="attachment-thumbnail size-thumbnail wp-post-image" alt="жесткий диск" loading="lazy" /></noscript></noscript></noscript>                                                    </a>
  967.                    </div>
  968.                    <div class="widget-article__body">
  969.                        <div class="widget-article__title"><a href="https://picasa2.ru/stati/vybiraem-zhestkij-disk-dlya-kompyutera/">Выбираем жесткий диск для компьютера</a></div>
  970.                        <div class="widget-article__category">
  971.                            <a href="https://picasa2.ru/category/stati/">Статьи</a>                        </div>
  972.                    </div>
  973.                </div>
  974.  
  975.            
  976.  
  977.  
  978.            
  979.  
  980.            
  981.                <div class="widget-article widget-article--compact">
  982.                    <div class="widget-article__image">
  983.                        <a href="https://picasa2.ru/instrukczii/redaktirovanie-foto/">
  984.                                                            <img width="150" height="150" src="//picasa2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://picasa2.ru/wp-content/uploads/2020/10/2_oknoredaktirovaniya-150x150.png" class="lazy lazy-hidden attachment-thumbnail size-thumbnail wp-post-image" alt="редактирование" loading="lazy" /><noscript><img width="150" height="150" src="//picasa2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://picasa2.ru/wp-content/uploads/2020/10/2_oknoredaktirovaniya-150x150.png" class="lazy lazy-hidden attachment-thumbnail size-thumbnail wp-post-image" alt="редактирование" loading="lazy" /><noscript><img width="150" height="150"   alt="редактирование" loading="lazy" data-src="https://picasa2.ru/wp-content/uploads/2020/10/2_oknoredaktirovaniya-150x150.png" class="attachment-thumbnail size-thumbnail wp-post-image lazyload" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" /><noscript><img width="150" height="150" src="https://picasa2.ru/wp-content/uploads/2020/10/2_oknoredaktirovaniya-150x150.png" class="attachment-thumbnail size-thumbnail wp-post-image" alt="редактирование" loading="lazy" /></noscript></noscript></noscript>                                                    </a>
  985.                    </div>
  986.                    <div class="widget-article__body">
  987.                        <div class="widget-article__title"><a href="https://picasa2.ru/instrukczii/redaktirovanie-foto/">Редактирование фото в Picasa</a></div>
  988.                        <div class="widget-article__category">
  989.                            <a href="https://picasa2.ru/category/instrukczii/">Инструкции</a>                        </div>
  990.                    </div>
  991.                </div>
  992.  
  993.            
  994.  
  995.  
  996.            
  997.  
  998.            
  999.                <div class="widget-article widget-article--compact">
  1000.                    <div class="widget-article__image">
  1001.                        <a href="https://picasa2.ru/instrukczii/tegi/">
  1002.                                                            <img width="150" height="150" src="//picasa2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://picasa2.ru/wp-content/uploads/2020/10/picasa-101-1-150x150.jpg" class="lazy lazy-hidden attachment-thumbnail size-thumbnail wp-post-image" alt="теги в пикаса" loading="lazy" /><noscript><img width="150" height="150" src="//picasa2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://picasa2.ru/wp-content/uploads/2020/10/picasa-101-1-150x150.jpg" class="lazy lazy-hidden attachment-thumbnail size-thumbnail wp-post-image" alt="теги в пикаса" loading="lazy" /><noscript><img width="150" height="150"   alt="теги в пикаса" loading="lazy" data-src="https://picasa2.ru/wp-content/uploads/2020/10/picasa-101-1-150x150.jpg" class="attachment-thumbnail size-thumbnail wp-post-image lazyload" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" /><noscript><img width="150" height="150" src="https://picasa2.ru/wp-content/uploads/2020/10/picasa-101-1-150x150.jpg" class="attachment-thumbnail size-thumbnail wp-post-image" alt="теги в пикаса" loading="lazy" /></noscript></noscript></noscript>                                                    </a>
  1003.                    </div>
  1004.                    <div class="widget-article__body">
  1005.                        <div class="widget-article__title"><a href="https://picasa2.ru/instrukczii/tegi/">Теги в Picasa</a></div>
  1006.                        <div class="widget-article__category">
  1007.                            <a href="https://picasa2.ru/category/instrukczii/">Инструкции</a>                        </div>
  1008.                    </div>
  1009.                </div>
  1010.  
  1011.            
  1012.  
  1013.  
  1014.            
  1015.  
  1016.            
  1017.                <div class="widget-article widget-article--compact">
  1018.                    <div class="widget-article__image">
  1019.                        <a href="https://picasa2.ru/instrukczii/kak-izmenit-razmer-foto/">
  1020.                                                            <img width="150" height="150" src="//picasa2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://picasa2.ru/wp-content/uploads/2020/10/1332702698_7-150x150.jpg" class="lazy lazy-hidden attachment-thumbnail size-thumbnail wp-post-image" alt="изменение размера picasa" loading="lazy" /><noscript><img width="150" height="150" src="//picasa2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://picasa2.ru/wp-content/uploads/2020/10/1332702698_7-150x150.jpg" class="lazy lazy-hidden attachment-thumbnail size-thumbnail wp-post-image" alt="изменение размера picasa" loading="lazy" /><noscript><img width="150" height="150"   alt="изменение размера picasa" loading="lazy" data-src="https://picasa2.ru/wp-content/uploads/2020/10/1332702698_7-150x150.jpg" class="attachment-thumbnail size-thumbnail wp-post-image lazyload" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" /><noscript><img width="150" height="150" src="https://picasa2.ru/wp-content/uploads/2020/10/1332702698_7-150x150.jpg" class="attachment-thumbnail size-thumbnail wp-post-image" alt="изменение размера picasa" loading="lazy" /></noscript></noscript></noscript>                                                    </a>
  1021.                    </div>
  1022.                    <div class="widget-article__body">
  1023.                        <div class="widget-article__title"><a href="https://picasa2.ru/instrukczii/kak-izmenit-razmer-foto/">Как изменить размер фото в Picasa</a></div>
  1024.                        <div class="widget-article__category">
  1025.                            <a href="https://picasa2.ru/category/instrukczii/">Инструкции</a>                        </div>
  1026.                    </div>
  1027.                </div>
  1028.  
  1029.            
  1030.  
  1031.  
  1032.            </div>
  1033.    
  1034. </aside><!-- #secondary -->
  1035.  
  1036.  
  1037. </div><!-- #content -->
  1038.  
  1039.    
  1040.    
  1041.    
  1042.  
  1043.  
  1044.    <footer class="site-footer container" itemscope itemtype="http://schema.org/WPFooter">
  1045.        <div class="site-footer-inner container">
  1046.  
  1047.            <div class="footer-info">
  1048.                © 2024 Не является официальным сайтом. Все товарные знаки принадлежат их владельцам.
  1049.                <div class="footer-text"><div class="footer-text"><a style="color:#fff;" href="https://picasa2.ru/privacy-policy/">Политика конфиденциальности</a></div> </div>
  1050.                            </div><!-- .site-info -->
  1051.  
  1052.            
  1053.            
  1054.        </div><!-- .site-footer-inner -->
  1055.    </footer><!-- .site-footer -->
  1056.  
  1057.  
  1058.            <button type="button" class="scrolltop js-scrolltop"></button>
  1059.    
  1060.  
  1061. </div><!-- #page -->
  1062.  
  1063.  
  1064. <script>if (typeof rb_ajaxurl==='undefined') {var rb_ajaxurl = 'https://picasa2.ru/wp-admin/admin-ajax.php';}if (typeof endedSc==='undefined') {var endedSc = false;}
  1065. if (typeof endedCc==='undefined') {var endedCc = false;}
  1066. if (typeof usedAdBlocksArray==='undefined') {var usedAdBlocksArray = [];}
  1067. if (typeof usedBlockSettingArrayIds==='undefined') {var usedBlockSettingArrayIds = [];}
  1068. if (typeof sameElementAfterWidth==='undefined') {var sameElementAfterWidth = false;}
  1069. if (typeof sameElementAfterExcClassId==='undefined') {var sameElementAfterExcClassId = false;}
  1070. if (typeof sameElementAfterFromConstruction==='undefined') {var sameElementAfterFromConstruction = false;}
  1071. if (typeof rb_tempElement_check==='undefined') {var rb_tempElement_check = false;}
  1072. if (typeof rb_tempElement==='undefined') {var rb_tempElement = null;}
  1073. if (typeof window.jsInputerLaunch==='undefined') {window.jsInputerLaunch = -1;}
  1074.  
  1075. function launchUpdateRbDisplays() {
  1076.    if ((typeof updateRbDisplays !== 'undefined')&&(typeof updateRbDisplays === 'function')) {
  1077.        updateRbDisplays();
  1078.    } else {
  1079.        setTimeout(function () {
  1080.            launchUpdateRbDisplays();
  1081.        }, 200);
  1082.    }
  1083. }
  1084.  
  1085. /* "sc" in variables - mark for shortcode variable */
  1086. function shortcodesInsert() {
  1087.    let gatheredBlocks = document.querySelectorAll('.percentPointerClass.scMark'),
  1088.        scBlockId = -1,
  1089.        scAdId = -1,
  1090.        blockStatus = '',
  1091.        dataFull = -1,
  1092.        gatheredBlockChild,
  1093.        okStates = ['done','refresh-wait','no-block','fetched'],
  1094.        scContainer,
  1095.        sci,
  1096.        i1 = 0,
  1097.        skyscraperCheck = [],
  1098.        skyscraperStatus = false,
  1099.        splitedSkyscraper = [],
  1100.        gatheredBlockChildSkyParts = [],
  1101.        stickyStatus = false,
  1102.        stickyCheck = [],
  1103.        stickyFixedStatus = false,
  1104.        stickyFixedCheck = [],
  1105.        overflowCheck = [],
  1106.        overflowStatus = false,
  1107.        repeatableIdentifier = "",
  1108.        dataCidIdentifier = null,
  1109.        divCidElement = '';
  1110.  
  1111.    if (typeof scArray !== 'undefined') {
  1112.        if (scArray&&scArray.length > 0&&gatheredBlocks&&gatheredBlocks.length > 0&&typeof window.rulvW5gntb !== 'undefined') {
  1113.            dataCidIdentifier = window.rulvW5gntb;
  1114.            for (let i = 0; i < gatheredBlocks.length; i++) {
  1115.                gatheredBlockChild = gatheredBlocks[i].children[0];
  1116.                if (!gatheredBlockChild) {
  1117.                    continue;
  1118.                }
  1119.                scAdId = -3;
  1120.                blockStatus = null;
  1121.                scContainer = null;
  1122.                dataFull = -1;
  1123.                skyscraperStatus = false;
  1124.                splitedSkyscraper = [];
  1125.                gatheredBlockChildSkyParts = [];
  1126.                stickyStatus = false;
  1127.                stickyCheck = [];
  1128.                stickyFixedStatus = false;
  1129.                stickyFixedCheck = [];
  1130.                repeatableIdentifier = "";
  1131.                divCidElement = null;
  1132.  
  1133.                scAdId = gatheredBlockChild.getAttribute('data-aid');
  1134.                scBlockId = gatheredBlockChild.getAttribute('data-id');
  1135.                blockStatus = gatheredBlockChild.getAttribute('data-state');
  1136.                dataFull = gatheredBlockChild.getAttribute('data-full');
  1137.  
  1138.                if (scBlockId&&scAdId > 0) {
  1139.                    sci = -1;
  1140.                    for (i1 = 0; i1 < scArray.length; i1++) {
  1141.                        if (scBlockId == scArray[i1]['blockId']&&scAdId == scArray[i1]['adId']) {
  1142.                            sci = i1;
  1143.                        }
  1144.                    }
  1145.  
  1146.                    if (sci > -1) {
  1147.                        if (blockStatus&&okStates.includes(blockStatus)) {
  1148.                            if (blockStatus=='no-block') {
  1149.                                gatheredBlockChild.innerHTML = '';
  1150.                            } else if ((blockStatus=='fetched'&&dataFull==1)||!['no-block','fetched'].includes(blockStatus)) {
  1151.                                for (let cl1 = 0; cl1 < gatheredBlocks[i].classList.length; cl1++) {
  1152.                                    if (gatheredBlocks[i].classList[cl1].includes("repeatable-mark")) {
  1153.                                        repeatableIdentifier = gatheredBlocks[i].classList[cl1];
  1154.                                    }
  1155.                                }
  1156.  
  1157.                                if (repeatableIdentifier) {
  1158.                                    divCidElement = document.querySelectorAll(".percentPointerClass.scMark."+repeatableIdentifier+' div[data-cid="'+dataCidIdentifier+'"]');
  1159.                                } else {
  1160.                                    divCidElement = gatheredBlockChild.querySelectorAll('div[data-cid="'+dataCidIdentifier+'"]');
  1161.                                }
  1162.  
  1163.                                if (divCidElement&&divCidElement.length > 0) {
  1164.                                    for (let i2 = 0; i2 < divCidElement.length; i2++) {
  1165.                                        jQuery(divCidElement[i2]).html(scArray[sci]['text']);
  1166.                                    }
  1167.                                } else {
  1168.                                    jQuery(gatheredBlockChild).html(scArray[sci]['text']);
  1169.                                }
  1170.                                launchUpdateRbDisplays();
  1171.                            }
  1172.                            if (blockStatus!='fetched'||(blockStatus=='fetched'&&dataFull==1)) {
  1173.                                for (i1 = 0; i1 < scArray.length; i1++) {
  1174.                                    if (scBlockId == scArray[i1]['blockId']) {
  1175.                                        scArray.splice(i1, 1);
  1176.                                        i1--;
  1177.                                    }
  1178.                                }
  1179.                                gatheredBlocks[i].classList.remove('scMark');
  1180.                            }
  1181.                        }
  1182.                    }
  1183.                } else if (scBlockId&&scAdId < 1&&['no-block','fetched'].includes(blockStatus)) {
  1184.                    for (i1 = 0; i1 < scArray.length; i1++) {
  1185.                        if (scBlockId == scArray[i1]['blockId']) {
  1186.                            scArray.splice(i1, 1);
  1187.                            i1--;
  1188.                        }
  1189.                    }
  1190.                    gatheredBlocks[i].classList.remove('scMark');
  1191.                }
  1192.            }
  1193.        } else if (!scArray||(scArray&&scArray.length < 1)) {
  1194.            endedSc = true;
  1195.        }
  1196.    } else {
  1197.        endedSc = true;
  1198.    }
  1199.  
  1200.    if (!endedSc) {
  1201.        setTimeout(function () {
  1202.            shortcodesInsert();
  1203.        }, 200);
  1204.    }
  1205. }
  1206.  
  1207. function clearUnsuitableCache(cuc_cou) {
  1208.    let scAdId = -1;
  1209.    let ccRepeat = false;
  1210.  
  1211.    let gatheredBlocks = document.querySelectorAll('.percentPointerClass .' + block_classes.join(', .percentPointerClass .'));
  1212.  
  1213.    if (gatheredBlocks&&gatheredBlocks.length > 0) {
  1214.        for (let i = 0; i < gatheredBlocks.length; i++) {
  1215.            if (gatheredBlocks[i]['dataset']['aid']&&gatheredBlocks[i]['dataset']['aid'] < 0) {
  1216.                if ((gatheredBlocks[i]['dataset']["state"]=='no-block')||(['done','fetched','refresh-wait'].includes(gatheredBlocks[i]['dataset']["state"]))) {
  1217.                    gatheredBlocks[i]['innerHTML'] = '';
  1218.                } else {
  1219.                    ccRepeat = true;
  1220.                }
  1221.            } else if (!gatheredBlocks[i]['dataset']['aid']) {
  1222.                ccRepeat = true;
  1223.            }
  1224.        }
  1225.        if (cuc_cou < 50) {
  1226.            if (ccRepeat) {
  1227.                setTimeout(function () {
  1228.                    clearUnsuitableCache(cuc_cou+1);
  1229.                }, 100);
  1230.            }
  1231.        } else {
  1232.            endedCc = true;
  1233.        }
  1234.    } else {
  1235.        endedCc = true;
  1236.    }
  1237. }
  1238.  
  1239. function blocksRepositionUse(containerString, blType, searchType, contentElement) {
  1240.    let blocksInContainer;
  1241.    let blLocal = blType;
  1242.    let currentBlock;
  1243.    let currentBlockId;
  1244.    let currentBlockPosition;
  1245.    let currentContainer;
  1246.    let i = 0;
  1247.    let j = 0;
  1248.    let blockStrJs = ' .percentPointerClass.marked';
  1249.    let blockStrPhp = ' .percentPointerClass:not(.marked)';
  1250.    let blockStr = ' .percentPointerClass';
  1251.    let checkPointer = null;
  1252.    let blockRepeatEnd = false;
  1253.  
  1254.    if (searchType) {
  1255.        if (searchType == 'marked') {
  1256.            while (!blockRepeatEnd) {
  1257.                blLocal = blLocal.parentElement;
  1258.                if (blLocal) {
  1259.                    checkPointer = blLocal.querySelector("#content_pointer_id");
  1260.                    if (!checkPointer) {
  1261.                        blocksInContainer = jQuery(blLocal).parent(containerString);
  1262.                        if (blocksInContainer && blocksInContainer.length > 0) {
  1263.                            /* checkPointer = blocksInContainer.querySelector("#content_pointer_id"); */
  1264.                            checkPointer = jQuery(blocksInContainer).find("#content_pointer_id");
  1265.                            if (checkPointer && checkPointer.length > 0) {
  1266.                                blocksInContainer = null;
  1267.                            }
  1268.                            blockRepeatEnd = true;
  1269.                        }
  1270.                    } else {
  1271.                        blockRepeatEnd = true
  1272.                    }
  1273.                } else {
  1274.                    blockRepeatEnd = true
  1275.                }
  1276.            }
  1277.            /* blocksInContainer = jQuery(blType).parent(containerString); */
  1278.            if (blocksInContainer&&blocksInContainer.length > 0) {
  1279.                /* blocksInContainer.parentNode.insertBefore(rb_tempElement, blocksInContainer); */
  1280.                blocksInContainer[0].parentNode.insertBefore(rb_tempElement, blocksInContainer[0]);
  1281.  
  1282.                sameElementAfterExcClassId = false;
  1283.                return blocksInContainer[0];
  1284.            }
  1285.            return blType;
  1286.        } else if (searchType == 'non-marked') {
  1287.            blocksInContainer = document.querySelectorAll(blType + containerString + blockStrPhp);
  1288.            if (blocksInContainer && blocksInContainer.length > 0 && usedBlockSettingArray && usedBlockSettingArray.length > 0) {
  1289.                for (i = 0; i < blocksInContainer.length; i++) {
  1290.                    currentBlock = blocksInContainer[i];
  1291.                    currentBlockId = currentBlock.querySelector('.' + block_classes.join(', .')).getAttribute('data-id');
  1292.                    currentContainer = null;
  1293.                    for (j = 0; j < usedBlockSettingArray.length; i++) {
  1294.                        if (usedBlockSettingArray[i]['id'] == currentBlockId) {
  1295.                            currentBlockPosition = usedBlockSettingArray[i]['elementPosition'];
  1296.                            currentContainer = currentBlock.closest(blType + containerString);
  1297.                            if (currentBlockPosition == 0) {
  1298.                                currentContainer.parentNode.insertBefore(currentBlock, currentContainer);
  1299.                            } else {
  1300.                                currentContainer.parentNode.insertBefore(currentBlock, currentContainer.nextSibling);
  1301.                            }
  1302.                            break;
  1303.                        }
  1304.                    }
  1305.                }
  1306.            }
  1307.        }
  1308.    }
  1309.    return false;
  1310. }
  1311.  
  1312. function createStyleElement(blockNumber, localElementCss) {
  1313.    let htmlToAdd = '';
  1314.    let marginString;
  1315.    let textAlignString;
  1316.    let contPoi;
  1317.    let emptyValues = false;
  1318.    let elementToAddStyleLocal = document.querySelector('#blocksAlignStyle');
  1319.    if (!elementToAddStyleLocal) {
  1320.        contPoi = document.querySelector('#content_pointer_id');
  1321.        if (!contPoi) {
  1322.            return false;
  1323.        }
  1324.  
  1325.        elementToAddStyleLocal = document.createElement('style');
  1326.        elementToAddStyleLocal.setAttribute('id', 'blocksAlignStyle');
  1327.        contPoi.parentNode.insertBefore(elementToAddStyleLocal, contPoi);
  1328.    }
  1329.  
  1330.    switch (localElementCss) {
  1331.        case 'left':
  1332.            emptyValues = false;
  1333.            marginString = '0 auto 0 0';
  1334.            textAlignString = 'left';
  1335.            break;
  1336.        case 'right':
  1337.            emptyValues = false;
  1338.            marginString = '0 0 0 auto';
  1339.            textAlignString = 'right';
  1340.            break;
  1341.        case 'center':
  1342.            emptyValues = false;
  1343.            marginString = '0 auto';
  1344.            textAlignString = 'center';
  1345.            break;
  1346.        case 'default':
  1347.            emptyValues = true;
  1348.            marginString = 'default';
  1349.            textAlignString = 'default';
  1350.            /** here will be css */
  1351.            break;
  1352.    }
  1353.    if (!emptyValues) {
  1354.        htmlToAdd = '.percentPointerClass  > *[data-id="'+blockNumber+'"] {\n' +
  1355.            '    margin: '+marginString+';\n' +
  1356.            '}\n';
  1357.    }
  1358.  
  1359.    elementToAddStyleLocal.innerHTML += htmlToAdd;
  1360.    return textAlignString;
  1361. }
  1362.  
  1363. function initTargetToInsert(position, type, currentElement) {
  1364.    let posCurrentElement;
  1365.    let usedElement;
  1366.    if (type == 'element') {
  1367.        if (position == 0) {
  1368.            posCurrentElement = currentElement;
  1369.            if (!(typeof obligatoryMargin!=='undefined'&&obligatoryMargin===1)) {
  1370.                currentElement.classList.add('rfwp_removedMarginTop');
  1371.            }
  1372.        } else {
  1373.            posCurrentElement = currentElement.nextSibling;
  1374.            if (!(typeof obligatoryMargin!=='undefined'&&obligatoryMargin===1)) {
  1375.                currentElement.classList.add('rfwp_removedMarginBottom');
  1376.            }
  1377.        }
  1378.        currentElement.style.clear = 'both';
  1379.    } else {
  1380.        usedElement = currentElement;
  1381.        if (position == 0) {
  1382.            posCurrentElement = usedElement;
  1383.        } else {
  1384.            posCurrentElement = usedElement.nextSibling;
  1385.        }
  1386.    }
  1387.    return posCurrentElement;
  1388. }
  1389.  
  1390. function checkAdsWidth(content_pointer, posCurrentElement, currentElement) {
  1391.    let widthChecker = document.querySelector('#widthChecker');
  1392.    let widthCheckerStyle = null;
  1393.    let content_pointerStyle = getComputedStyle(content_pointer);
  1394.    /* let getPositionForTempElement = null;
  1395.    let testImgDetected = false;
  1396.    let testImg;
  1397.    let testImageCompWidth;
  1398.    let testImgCou = 0
  1399.    let figureChilds;
  1400.    let figureComWidth;
  1401.    let fcCou = 0; */
  1402.    let content = content_pointer.parentElement;
  1403.  
  1404.    if (!widthChecker) {
  1405.        widthChecker = document.createElement("div");
  1406.        widthChecker.setAttribute('id','widthChecker');
  1407.        widthChecker.style.display = 'flex';
  1408.    }
  1409.  
  1410.    if (content) {
  1411.        posCurrentElement = initTargetToInsert(posCurrentElement, 'term', currentElement);
  1412.        currentElement.parentNode.insertBefore(widthChecker, posCurrentElement);
  1413.        widthCheckerStyle = getComputedStyle(widthChecker);
  1414.        /* testImg = currentElement.previousSibling;
  1415.        if (testImg) {
  1416.            while (!testImgDetected&&testImgCou<4) {
  1417.                if (testImg&&testImg.nodeName.toLowerCase() === 'figure') {
  1418.                    figureComWidth = getComputedStyle(testImg);
  1419.                    figureComWidth = parseInt(figureComWidth.width);
  1420.                    figureChilds = testImg.childNodes;
  1421.                    if (figureChilds&&figureChilds.length > 0) {
  1422.                        while (!testImgDetected&&figureChilds[fcCou]) {
  1423.                            if (figureChilds[fcCou] instanceof HTMLImageElement) {
  1424.                                testImgDetected = true;
  1425.                                testImageCompWidth = getComputedStyle(figureChilds[fcCou]);
  1426.                                testImageCompWidth = parseInt(testImageCompWidth.width);
  1427.                                console.log('img_f_w:'+figureComWidth+'; img_w:'+testImageCompWidth+';');
  1428.                            }
  1429.                            fcCou++;
  1430.                        }
  1431.                    }
  1432.                }
  1433.                if (testImg instanceof HTMLImageElement) {
  1434.                    testImgDetected = true;
  1435.                    testImageCompWidth = getComputedStyle(testImg);
  1436.                    testImageCompWidth = parseInt(testImageCompWidth.width);
  1437.                    console.log('img_w:'+testImageCompWidth+';');
  1438.                }
  1439.                if (!testImg.previousSibling) {
  1440.                    break;
  1441.                }
  1442.                testImg = testImg.previousSibling;
  1443.                testImgCou++;
  1444.            }
  1445.        }
  1446.        console.log('cp_w:'+parseInt(content_pointerStyle.width)+'; wc_w:'+parseInt(widthCheckerStyle.width)+';'); */
  1447.        if (parseInt(widthCheckerStyle.width) > (parseInt(content_pointerStyle.width) - 20)) {
  1448.            return true;
  1449.        }
  1450.    }
  1451.    currentElement.parentNode.insertBefore(rb_tempElement, currentElement.nextSibling);
  1452.    rb_tempElement_check = true;
  1453.    return false;
  1454. }
  1455.  
  1456. /* function currentElementReceiver(revert, curSum, elList, currentElement) {
  1457.    let origCurrentElement = currentElement;
  1458.    let content_pointer = document.querySelector("#content_pointer_id");
  1459.    let sameElementAfterWidth = false;
  1460.    let testCou = 0;
  1461.    while (elList[curSum]&&sameElementAfterWidth==false&&testCou < 5) {
  1462.        currentElement = elList[curSum];
  1463.        try {
  1464.            sameElementAfterWidth=true;
  1465.            sameElementAfterWidth = checkAdsWidth(content_pointer, 0, currentElement);
  1466.        } catch (ex) {
  1467.            console.log(ex.message);
  1468.        }
  1469.        revert? curSum--: curSum++;
  1470.        testCou++;
  1471.    }
  1472.    return currentElement?currentElement:origCurrentElement;
  1473. } */
  1474.  
  1475. function currentElementReceiverSpec(revert, curSum, elList, currentElement) {
  1476.    let origCurrentElement = currentElement;
  1477.    let content_pointer = document.querySelector("#content_pointer_id"); /* orig */
  1478.    let sameElementAfterWidth = false;
  1479.    let testCou = 0;
  1480.    while (elList[curSum]&&sameElementAfterWidth==false&&testCou < 5) {
  1481.        currentElement = elList[curSum]['element'];
  1482.        try {
  1483.            sameElementAfterWidth=true;
  1484.            sameElementAfterWidth = checkAdsWidth(content_pointer, 0, currentElement);
  1485.        } catch (ex) {
  1486.            console.log(ex.message);
  1487.        }
  1488.        revert? curSum--: curSum++;
  1489.        testCou++;
  1490.    }
  1491.    return currentElement?currentElement:origCurrentElement;
  1492. }
  1493.  
  1494. function excIdClUnpacker() {
  1495.    let excArr = [],
  1496.        cou = 0,
  1497.        currExcStr = '',
  1498.        curExcFirst = '';
  1499.    excArr['id'] = [];
  1500.    excArr['class'] = [];
  1501.    excArr['tag'] = [];
  1502.    if (excIdClass&&excIdClass.length > 0) {
  1503.        while (excIdClass[cou]) {
  1504.            currExcStr = excIdClass[cou];
  1505.            if (currExcStr.length > 0) {
  1506.                curExcFirst = currExcStr.substring(0,1);
  1507.                switch (curExcFirst) {
  1508.                    case '#':
  1509.                        if (currExcStr.length > 1) {
  1510.                            currExcStr = currExcStr.substring(1);
  1511.                            excArr['id'].push(currExcStr);
  1512.                        }
  1513.                        break;
  1514.                    case '.':
  1515.                        if (currExcStr.length > 1) {
  1516.                            currExcStr = currExcStr.substring(1);
  1517.                            excArr['class'].push(currExcStr);
  1518.                        }
  1519.                        break;
  1520.                    default:
  1521.                        excArr['tag'].push(currExcStr);
  1522.                        break;
  1523.                }
  1524.                cou++;
  1525.            }
  1526.        }
  1527.    }
  1528.    return excArr;
  1529. }
  1530.  
  1531. function asyncBlocksInsertingFunction(blockSettingArray) {
  1532.    try {
  1533.        var content_pointer = document.querySelector("#content_pointer_id"); /* orig */
  1534.        var parent_with_content = content_pointer.parentElement;
  1535.        var lordOfElements = parent_with_content;
  1536.        parent_with_content = parent_with_content.parentElement;
  1537.        var newElement = document.createElement("div");
  1538.        var elementToAdd;
  1539.        var elementToAddStyle;
  1540.        var poolbackI = 0;
  1541.        var counter = 0;
  1542.        var currentElement;
  1543.        var repeatableCurrentElement;
  1544.        var repeatableSuccess;
  1545.        var reCou;
  1546.        var curFirstPlace;
  1547.        var curElementCount;
  1548.        var curElementStep;
  1549.        var backElement = 0;
  1550.        var sumResult = 0;
  1551.        var curSumResult = 0;
  1552.        var repeat = false;
  1553.        var currentElementChecker = false;
  1554.        let containerFor6th = [];
  1555.        let containerFor7th = [];
  1556.        var posCurrentElement;
  1557.        var block_number;
  1558.        let contentLength = content_pointer.getAttribute('data-content-length');
  1559.        let rejectedBlocks = content_pointer.getAttribute('data-rejected-blocks');
  1560.        if (rejectedBlocks&&rejectedBlocks.length > 0) {
  1561.            rejectedBlocks = rejectedBlocks.split(',');
  1562.        }
  1563.        let widthCheck = false;
  1564.        let currentElementList;
  1565.        var testElement1 = null;
  1566.        var termorarity_parent_with_content = parent_with_content;
  1567.        var termorarity_parent_with_content_length = 0;
  1568.        var headersList = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'];
  1569.        for (var hc1 = 0; hc1 < headersList.length; hc1++) {
  1570.            termorarity_parent_with_content_length += termorarity_parent_with_content.getElementsByTagName(headersList[hc1]).length;
  1571.        }
  1572.  
  1573.        let detailedElementList;
  1574.        let ExcStrCou = 1;
  1575.        let detailedQueryString;
  1576.        let usedElement;
  1577.        let tagList = [];
  1578.        let localSumResult;
  1579.        let binderName;
  1580.  
  1581.        var removeClearing;
  1582.        var repeatableBlockIdentifier = 0;
  1583.  
  1584.        var i;
  1585.  
  1586.        if (contentLength < 1) {
  1587.            contentLength = parent_with_content.innerText.length
  1588.        }
  1589.  
  1590.        rb_tempElement = document.querySelector('#rb_tempElement');
  1591.        if (!rb_tempElement) {
  1592.            rb_tempElement = document.createElement('span');
  1593.            rb_tempElement.setAttribute('id', 'rb_tempElement');
  1594.        }
  1595.  
  1596.        function getFromConstructions(currentElement) {
  1597.            if (currentElement.parentElement.tagName.toLowerCase() == "blockquote") {
  1598.                currentElement = currentElement.parentElement;
  1599.                /* initTargetToInsert(blockSettingArray, 'element', currentElement); */
  1600.                currentElement.parentNode.insertBefore(rb_tempElement, currentElement);
  1601.                rb_tempElement_check = true;
  1602.                sameElementAfterFromConstruction=false;
  1603.            } else if (["tr","td","th","thead","tbody","table"].includes(currentElement.parentElement.tagName.toLowerCase())) {
  1604.                currentElement = currentElement.parentElement;
  1605.                while (["tr","td","th","thead","tbody","table"].includes(currentElement.parentElement.tagName.toLowerCase())) {
  1606.                    currentElement = currentElement.parentElement;
  1607.                }
  1608.                currentElement.parentNode.insertBefore(rb_tempElement, currentElement);
  1609.                rb_tempElement_check = true;
  1610.                sameElementAfterFromConstruction=false;
  1611.            }
  1612.            return currentElement;
  1613.        }
  1614.  
  1615.        function directClassElementDetecting(blockSettingArray, directElement) {
  1616.            let findQuery = 0;
  1617.            let directClassElementResult = [];
  1618.  
  1619.            currentElement = document.querySelectorAll(directElement);
  1620.            if (currentElement.length > 0) {
  1621.                if (blockSettingArray[i]['elementPlace'] > 1) {
  1622.                    if (currentElement.length >= blockSettingArray[i]['elementPlace']) {
  1623.                        currentElement = currentElement[blockSettingArray[i]['elementPlace']-1];
  1624.                    } else if (currentElement.length < blockSettingArray[i]['elementPlace']) {
  1625.                        currentElement = currentElement[currentElement.length - 1];
  1626.                    } else {
  1627.                        findQuery = 1;
  1628.                    }
  1629.                } else if (blockSettingArray[i]['elementPlace'] < 0) {
  1630.                    if ((currentElement.length + blockSettingArray[i]['elementPlace'] + 1) > 0) {
  1631.                        currentElement = currentElement[currentElement.length + blockSettingArray[i]['elementPlace']];
  1632.                    } else {
  1633.                        findQuery = 1;
  1634.                    }
  1635.                } else {
  1636.                    findQuery = 1;
  1637.                }
  1638.            } else {
  1639.                findQuery = 1;
  1640.            }
  1641.  
  1642.            directClassElementResult['findQuery'] = findQuery;
  1643.            directClassElementResult['currentElement'] = currentElement;
  1644.  
  1645.            return directClassElementResult;
  1646.        }
  1647.  
  1648.        function placingToH1(usedElement, elementTagToFind) {
  1649.            let uselessLet;
  1650.            currentElement = usedElement.querySelectorAll(elementTagToFind);
  1651.  
  1652.            if (currentElement.length < 1) {
  1653.                if (usedElement.parentElement) {
  1654.                    uselessLet = placingToH1(usedElement.parentElement, elementTagToFind);
  1655.                }
  1656.            }
  1657.            return currentElement;
  1658.        }
  1659.  
  1660.        function elementsCleaning(excArr, elList, pwcLocal, gatherString) {
  1661.            let markedClass = 'rb_m_inc';
  1662.            let markedClassBad = 'rb_m_exc';
  1663.            let cou = 0;
  1664.            let cou1 = 0;
  1665.            let finalArr = [];
  1666.            let finalArrClear = [];
  1667.            let checkNearest;
  1668.            let outOfRangeCheck;
  1669.            let gatherRejected;
  1670.            let allower;
  1671.  
  1672.            try {
  1673.                while (elList[cou]) {
  1674.                    allower = true;
  1675.                    if (!elList[cou].classList.contains(markedClassBad)) {
  1676.                        if (excArr&&excArr.length > 0) {
  1677.                            cou1 = 0;
  1678.                            while (excArr[cou1]) {
  1679.                                checkNearest = elList[cou].parentElement.closest(excArr[cou1]);
  1680.                                if (checkNearest) {
  1681.                                    checkNearest.classList.add('currClosest');
  1682.                                    outOfRangeCheck = pwcLocal.querySelector('.currClosest');
  1683.                                    if (outOfRangeCheck) {
  1684.                                        allower = false;
  1685.                                        checkNearest.classList.add(markedClass);
  1686.                                        gatherRejected = checkNearest.querySelectorAll(gatherString);
  1687.                                        if (gatherRejected.length > 0) {
  1688.                                            for (let i1 = 0; i1 < gatherRejected.length; i1++) {
  1689.                                                gatherRejected[i1].classList.add(markedClassBad);
  1690.                                            }
  1691.                                        }
  1692.                                    }
  1693.                                    checkNearest.classList.remove('currClosest');
  1694.                                }
  1695.                                cou1++;
  1696.                            }
  1697.                        }
  1698.                        if (allower===true) {
  1699.                            elList[cou].classList.add(markedClass);
  1700.                            /* finalArr.push(elList[cou]); */
  1701.                        }
  1702.                    }
  1703.                    cou++;
  1704.                }
  1705.                finalArr = pwcLocal.querySelectorAll('.'+markedClass+':not('+markedClassBad+')');
  1706.                finalArrClear = pwcLocal.querySelectorAll('.'+markedClass+',.'+markedClassBad);
  1707.                if (finalArrClear&&finalArrClear.length > 0) {
  1708.                    for (let i1 = 0; i1 < finalArrClear.length; i1++) {
  1709.                        finalArrClear[i1].classList.remove(markedClass,markedClassBad);
  1710.                    }
  1711.                }
  1712.            } catch (er) {
  1713.                console.log(er.message);
  1714.            }
  1715.            return finalArr;
  1716.        }
  1717.  
  1718.        function cureentElementsGather(usedElement, loopLimit = 2, localPwc = parent_with_content) {
  1719.            let curElementSearchRepeater = true;
  1720.            let curElementSearchCounter = 0;
  1721.            let currentElementLoc = null;
  1722.            let ExcludedStringBegin = '';
  1723.            let ExcludedString = '';
  1724.            let ExcludedStringEnd = '';
  1725.            let tagListString = '';
  1726.            let tagListStringExc = '';
  1727.            let cou = 0;
  1728.            /* let excArr = excIdClUnpacker(); */
  1729.            let tagListCou = 0;
  1730.  
  1731.            if (usedElement=='h1') {
  1732.                currentElementLoc = placingToH1(localPwc, usedElement);
  1733.            } else {
  1734.                if (usedElement=='h2-4') {tagList = ['h2','h3','h3'];}
  1735.                else                     {tagList = [usedElement];   }
  1736.                while (tagList[tagListCou]) {
  1737.                    tagListString += ((cou++>0)?',':'')+tagList[tagListCou];
  1738.                    tagListStringExc += ':not('+tagList[tagListCou]+')';
  1739.                    tagListCou++;
  1740.                }
  1741.  
  1742.                ExcludedString = '';
  1743.                if (excIdClass&&excIdClass.length > 0) {
  1744.                    for (let i2 = 0; i2 < excIdClass.length; i2++) {
  1745.                        if (excIdClass[i2].length > 0) {
  1746.                            ExcludedString += (i2>0?',':'')+excIdClass[i2]+tagListStringExc;
  1747.                        }
  1748.                    }
  1749.                }
  1750.                detailedQueryString += tagListString+','+ExcludedString;
  1751.  
  1752.                /* console.log(detailedQueryString); */
  1753.                while (curElementSearchRepeater&&curElementSearchCounter < loopLimit) {
  1754.                    try {
  1755.                        currentElementLoc = localPwc.querySelectorAll(tagListString);
  1756.                    } catch (e1) {console.log(e1.message);}
  1757.                    if (!currentElementLoc) {
  1758.                        if (localPwc.parentElement) {
  1759.                            localPwc = localPwc.parentElement;
  1760.                        } else {
  1761.                            break;
  1762.                        }
  1763.                    } else {
  1764.                        currentElementLoc = elementsCleaning(excIdClass, currentElementLoc, localPwc, detailedQueryString);
  1765.                        curElementSearchRepeater = false;
  1766.                    }
  1767.                    curElementSearchCounter++;
  1768.                }
  1769.            }
  1770.            return currentElementLoc;
  1771.        }
  1772.  
  1773.        function currentElementReceiver(revert, localCurEl = currentElement) {
  1774.            let origCurEl = localCurEl;
  1775.            curSumResult = sumResult;
  1776.            detailedElementList = localCurEl;
  1777.            sameElementAfterWidth = false;
  1778.            let testCou = 0;
  1779.            while (detailedElementList[curSumResult]&&sameElementAfterWidth==false&&testCou < 8) {
  1780.                localCurEl = detailedElementList[curSumResult];
  1781.                try {
  1782.                    sameElementAfterWidth=true;
  1783.                    sameElementAfterWidth = checkAdsWidth(content_pointer, blockSettingArray[i]["elementPosition"], localCurEl);
  1784.                } catch (ex) {
  1785.                    console.log(ex.message);
  1786.                }
  1787.                revert? curSumResult--: curSumResult++;
  1788.                testCou++;
  1789.            }
  1790.            if (localCurEl) {
  1791.                currentElementChecker = true;
  1792.            }
  1793.            return localCurEl?localCurEl:origCurEl;
  1794.        }
  1795.        
  1796.        function endingActions(block_number) {
  1797.            usedBlockSettingArrayIds.push(block_number);
  1798.            blockSettingArray.splice(i--, 1);
  1799.            poolbackI = 1;
  1800.        }
  1801.  
  1802.        for (i = 0; i < blockSettingArray.length; i++) {
  1803.            currentElement = null;
  1804.            currentElementChecker = false;
  1805.            sameElementAfterWidth = false;
  1806.            sameElementAfterExcClassId = false;
  1807.            sameElementAfterFromConstruction = false;
  1808.            tagListCou = 0;
  1809.            poolbackI = 0;
  1810.            detailedQueryString = '';
  1811.            binderName = elementBinderNameGenerator();
  1812.  
  1813.            try {
  1814.                if (!blockSettingArray[i]["text"]
  1815.                    ||(blockSettingArray[i]["text"]&&blockSettingArray[i]["text"].length < 1)
  1816.                    ||(rejectedBlocks&&rejectedBlocks.includes(blockSettingArray[i]["id"]))
  1817.                    ||((blockSettingArray[i]["maxHeaders"] > 0)&&(blockSettingArray[i]["maxHeaders"] < parseInt(termorarity_parent_with_content_length)))
  1818.                    ||((blockSettingArray[i]["maxSymbols"] > 0)&&(blockSettingArray[i]["maxSymbols"] < parseInt(contentLength)))
  1819.                    ||(content_pointer.classList.contains("hard-content")&&blockSettingArray[i]["setting_type"]!=3)
  1820.                ) {
  1821.                    blockSettingArray.splice(i--, 1);
  1822.                    poolbackI = 1;
  1823.                    continue;
  1824.                }
  1825.  
  1826.                block_number = 0;
  1827.  
  1828.                elementToAdd = document.createElement("div");
  1829.                elementToAdd.classList.add("percentPointerClass");
  1830.                elementToAdd.classList.add("marked");
  1831.                if (blockSettingArray[i]["sc"]==1) {
  1832.                    elementToAdd.classList.add("scMark");
  1833.                }
  1834.                elementToAdd.innerHTML = blockSettingArray[i]["text"];
  1835.                elementToAdd.dataset.rbinder = binderName;
  1836.                block_number = elementToAdd.children[0].attributes['data-id'].value;
  1837.  
  1838.                if (blockDuplicate == 'no') {
  1839.                    if (usedBlockSettingArrayIds.length > 0) {
  1840.                        for (let i1 = 0; i1 < usedBlockSettingArrayIds.length; i1++) {
  1841.                            if (block_number==usedBlockSettingArrayIds[i1]) {
  1842.                                blockSettingArray.splice(i--, 1);
  1843.                                poolbackI = 1;
  1844.                                break;
  1845.                            }
  1846.                        }
  1847.                        if (poolbackI == 1) {
  1848.                            continue;
  1849.                        }
  1850.                    }
  1851.                }
  1852.  
  1853.                elementToAddStyle = createStyleElement(block_number, blockSettingArray[i]["elementCss"]);
  1854.  
  1855.                if (elementToAddStyle&&elementToAddStyle!='default') {
  1856.                    elementToAdd.style.textAlign = elementToAddStyle;
  1857.                }
  1858.  
  1859.                if ((blockSettingArray[i]["minHeaders"] > 0)&&(blockSettingArray[i]["minHeaders"] > termorarity_parent_with_content_length)) {continue;}
  1860.                if (blockSettingArray[i]["minSymbols"] > contentLength) {continue;}
  1861.  
  1862.                if (blockSettingArray[i]["setting_type"] == 1) {
  1863.                    currentElement = cureentElementsGather(blockSettingArray[i]["element"].toLowerCase());
  1864.                    if (currentElement) {
  1865.                        if (blockSettingArray[i]["elementPlace"] < 0) {
  1866.                            sumResult = currentElement.length + blockSettingArray[i]["elementPlace"];
  1867.                            if (sumResult >= 0 && sumResult < currentElement.length) {
  1868.                                currentElement = currentElementReceiver(true);
  1869.                            }
  1870.                        } else {
  1871.                            sumResult = blockSettingArray[i]["elementPlace"] - 1;
  1872.                            if (sumResult < currentElement.length) {
  1873.                                currentElement = currentElementReceiver(false);
  1874.                            }
  1875.                        }
  1876.                    }
  1877.                    if (currentElement != undefined && currentElement != null && currentElementChecker) {
  1878.                        posCurrentElement = initTargetToInsert(blockSettingArray[i]["elementPosition"], 'element', currentElement);
  1879.                        currentElement.parentNode.insertBefore(elementToAdd, posCurrentElement);
  1880.                        currentElement.classList.add('rbinder-'+binderName);
  1881.                        elementToAdd.classList.remove('coveredAd');
  1882.                        usedBlockSettingArrayIds.push(block_number);
  1883.                        blockSettingArray.splice(i--, 1);
  1884.                        poolbackI = 1;
  1885.                        rb_tempElement_check = false;
  1886.                    } else {
  1887.                        repeat = true;
  1888.                    }
  1889.                }
  1890.                else if (blockSettingArray[i]["setting_type"] == 2) {
  1891.                    if (blockDuplicate == 'no') {
  1892.                        blockSettingArray[i]["elementCount"] = 1;
  1893.                    }
  1894.                    repeatableCurrentElement = [];
  1895.                    reCou = 0;
  1896.                    curFirstPlace = blockSettingArray[i]["firstPlace"];
  1897.                    curElementCount = blockSettingArray[i]["elementCount"];
  1898.                    curElementStep = blockSettingArray[i]["elementStep"];
  1899.                    repeatableSuccess = false;
  1900.  
  1901.                    elementToAddStyle = createStyleElement(block_number, blockSettingArray[i]["elementCss"]);
  1902.  
  1903.                    repeatableCurrentElement = cureentElementsGather(blockSettingArray[i]["element"].toLowerCase());
  1904.                    if (repeatableCurrentElement) {
  1905.                        for (let i1 = 0; i1 < blockSettingArray[i]["elementCount"]; i1++) {
  1906.                            currentElementChecker = false;
  1907.                            let repElementToAdd = document.createElement("div");
  1908.                            repElementToAdd.classList.add("percentPointerClass");
  1909.                            repElementToAdd.classList.add("marked");
  1910.                            if (blockSettingArray[i]["sc"]==1) {
  1911.                                repElementToAdd.classList.add("scMark");
  1912.                            }
  1913.                            repElementToAdd.classList.add("repeatable-mark-"+repeatableBlockIdentifier);
  1914.                            repElementToAdd.innerHTML = blockSettingArray[i]["text"];
  1915.  
  1916.                            if (elementToAddStyle&&elementToAddStyle!='default') {
  1917.                                repElementToAdd.style.textAlign = elementToAddStyle;
  1918.                            }
  1919.  
  1920.                            sumResult = Math.round(parseInt(blockSettingArray[i]["firstPlace"]) + (i1*parseInt(blockSettingArray[i]["elementStep"])) - 1);
  1921.                            if (sumResult < repeatableCurrentElement.length) {
  1922.                                currentElement = currentElementReceiver(false, repeatableCurrentElement);
  1923.                            }
  1924.  
  1925.                            if (currentElement != undefined && currentElement != null && currentElementChecker) {
  1926.                                posCurrentElement = initTargetToInsert(blockSettingArray[i]["elementPosition"], 'element', currentElement);
  1927.                                currentElement.parentNode.insertBefore(repElementToAdd, posCurrentElement);
  1928.                                currentElement.classList.add('rbinder-'+binderName);
  1929.                                repElementToAdd.classList.remove('coveredAd');
  1930.                                curFirstPlace = sumResult + parseInt(blockSettingArray[i]["elementStep"]) + 1;
  1931.                                curElementCount--;
  1932.                                repeatableSuccess = true;
  1933.                            } else {
  1934.                                repeatableSuccess = false;
  1935.                                break;
  1936.                            }
  1937.                        }
  1938.                    }
  1939.                    if (repeatableSuccess==true) {
  1940.                        usedBlockSettingArrayIds.push(block_number);
  1941.                        blockSettingArray.splice(i--, 1);
  1942.                        poolbackI = 1;
  1943.                        repeatableBlockIdentifier++;
  1944.                    } else {
  1945.                        if (!blockSettingArray[i]["unsuccess"]) {
  1946.                            blockSettingArray[i]["unsuccess"] = 1;
  1947.                        } else {
  1948.                            blockSettingArray[i]["unsuccess"] = Math.round(blockSettingArray[i]["unsuccess"] + 1);
  1949.                        }
  1950.                        if (blockSettingArray[i]["unsuccess"] > 10) {
  1951.                            usedBlockSettingArrayIds.push(block_number);
  1952.                            blockSettingArray.splice(i--, 1);
  1953.                            poolbackI = 1;
  1954.                        } else {
  1955.                            blockSettingArray[i]["firstPlace"] = curFirstPlace;
  1956.                            blockSettingArray[i]["elementCount"] = curElementCount;
  1957.                            blockSettingArray[i]["elementStep"] = curElementStep;
  1958.                            repeat = true;
  1959.                        }
  1960.                    }
  1961.                }
  1962.                else if (blockSettingArray[i]["setting_type"] == 3) {
  1963.                    let elementTypeSymbol = '';
  1964.                    let elementSpaceSymbol = '';
  1965.                    let elementName = '';
  1966.                    let elementType = '';
  1967.                    let elementTag  = '';
  1968.                    let findQuery = 0;
  1969.                    let directClassResult = [];
  1970.                    let directElement = blockSettingArray[i]["directElement"].trim();
  1971.  
  1972.                    if (directElement.search('#') > -1) {
  1973.                        findQuery = 1;
  1974.                    } else if ((directElement.search('#') < 0)&&(directElement.search('.') > -1)) {
  1975.                        directClassResult = directClassElementDetecting(blockSettingArray, directElement);
  1976.                        findQuery = directClassResult['findQuery'];
  1977.                        currentElement = directClassResult['currentElement'];
  1978.                    }
  1979.                    if (findQuery == 1) {
  1980.                        currentElement = document.querySelector(directElement);
  1981.                    }
  1982.                    if (currentElement) {
  1983.                        currentElementChecker = true;
  1984.                    }
  1985.  
  1986.                    if (currentElement != undefined && currentElement != null && currentElementChecker) {
  1987.                        posCurrentElement = initTargetToInsert(blockSettingArray[i]["elementPosition"], 'element', currentElement);
  1988.                        currentElement.parentNode.insertBefore(elementToAdd, posCurrentElement);
  1989.                        elementToAdd.classList.remove('coveredAd');
  1990.                        currentElement.classList.add('rbinder-'+binderName);
  1991.                        usedBlockSettingArrayIds.push(block_number);
  1992.                        blockSettingArray.splice(i--, 1);
  1993.                        poolbackI = 1;
  1994.                    } else {
  1995.                        repeat = true;
  1996.                    }
  1997.                }
  1998.                else if (blockSettingArray[i]["setting_type"] == 4) {
  1999.                    document.querySelector("#content_pointer_id").parentElement.append(elementToAdd);
  2000.                    usedBlockSettingArrayIds.push(block_number);
  2001.                    blockSettingArray.splice(i--, 1);
  2002.                    poolbackI = 1;
  2003.                }
  2004.                else if (blockSettingArray[i]["setting_type"] == 5) {
  2005.                    let currentElementList = cureentElementsGather('p', 1, content_pointer.parentElement);
  2006.                    if (currentElementList&&currentElementList.length > 0) {
  2007.                        let pCount = currentElementList.length;
  2008.                        let elementNumber = Math.round(pCount/2);
  2009.                        if (pCount > 1) {
  2010.                            currentElement = currentElementList[elementNumber+1];
  2011.                        }
  2012.                        if (currentElement != undefined && currentElement != null) {
  2013.                            if (pCount > 1) {
  2014.                                currentElement.parentNode.insertBefore(elementToAdd, currentElement);
  2015.                            } else {
  2016.                                currentElement.parentNode.insertBefore(elementToAdd, currentElement.nextSibling);
  2017.                            }
  2018.                            elementToAdd.classList.remove('coveredAd');
  2019.                            currentElement.classList.add('rbinder-'+binderName);
  2020.                            usedBlockSettingArrayIds.push(block_number);
  2021.                            blockSettingArray.splice(i--, 1);
  2022.                            poolbackI = 1;
  2023.                        } else {
  2024.                            repeat = true;
  2025.                        }
  2026.                    } else {
  2027.                        repeat = true;
  2028.                    }
  2029.                }
  2030.                else if (blockSettingArray[i]["setting_type"] == 6) {
  2031.                    if (containerFor6th.length > 0) {
  2032.                        for (let j = 0; j < containerFor6th.length; j++) {
  2033.                            if (containerFor6th[j]["elementPlace"]<blockSettingArray[i]["elementPlace"]) {
  2034.                                /* continue; */
  2035.                                if (j == containerFor6th.length-1) {
  2036.                                    containerFor6th.push(blockSettingArray[i]);
  2037.                                    /* usedAdBlocksArray.push(checkIfBlockUsed); */
  2038.                                    usedBlockSettingArrayIds.push(block_number);
  2039.                                    blockSettingArray.splice(i--, 1);
  2040.                                    poolbackI = 1;
  2041.                                    break;
  2042.                                }
  2043.                            } else {
  2044.                                for (let k = containerFor6th.length-1; k > j-1; k--) {
  2045.                                    containerFor6th[k + 1] = containerFor6th[k];
  2046.                                }
  2047.                                containerFor6th[j] = blockSettingArray[i];
  2048.                                /* usedAdBlocksArray.push(checkIfBlockUsed); */
  2049.                                usedBlockSettingArrayIds.push(block_number);
  2050.                                blockSettingArray.splice(i--, 1);
  2051.                                poolbackI = 1;
  2052.                                break;
  2053.                            }
  2054.                        }
  2055.                    } else {
  2056.                        containerFor6th.push(blockSettingArray[i]);
  2057.                        usedBlockSettingArrayIds.push(block_number);
  2058.                        blockSettingArray.splice(i--, 1);
  2059.                        poolbackI = 1;
  2060.                    }
  2061.                /* vidpravutu v vidstiinuk dlya 6ho tipa */
  2062.                }
  2063.                else if (blockSettingArray[i]["setting_type"] == 7) {
  2064.                    if (containerFor7th.length > 0) {
  2065.                        for (let j = 0; j < containerFor7th.length; j++) {
  2066.                            if (containerFor7th[j]["elementPlace"]<blockSettingArray[i]["elementPlace"]) {
  2067.                                /* continue; */
  2068.                                if (j == containerFor7th.length-1) {
  2069.                                    containerFor7th.push(blockSettingArray[i]);
  2070.                                    usedBlockSettingArrayIds.push(block_number);
  2071.                                    blockSettingArray.splice(i--, 1);
  2072.                                    poolbackI = 1;
  2073.                                    break;
  2074.                                }
  2075.                            } else {
  2076.                                for (let k = containerFor7th.length-1; k > j-1; k--) {
  2077.                                    containerFor7th[k + 1] = containerFor7th[k];
  2078.                                }
  2079.                                containerFor7th[j] = blockSettingArray[i];
  2080.                                usedBlockSettingArrayIds.push(block_number);
  2081.                                blockSettingArray.splice(i--, 1);
  2082.                                poolbackI = 1;
  2083.                                break;
  2084.                            }
  2085.                        }
  2086.                    } else {
  2087.                        containerFor7th.push(blockSettingArray[i]);
  2088.                        usedBlockSettingArrayIds.push(block_number);
  2089.                        blockSettingArray.splice(i--, 1);
  2090.                        poolbackI = 1;
  2091.                    }
  2092.                /* vidpravutu v vidstiinuk dlya 7ho tipa */
  2093.                }
  2094.            } catch (e) {
  2095.                console.log(e.message);
  2096.            }
  2097.        }
  2098.  
  2099.        if (containerFor6th.length > 0) {
  2100.            percentInserter(lordOfElements, containerFor6th);
  2101.        }
  2102.        if (containerFor7th.length > 0) {
  2103.            symbolInserter(lordOfElements, containerFor7th);
  2104.        }
  2105.        shortcodesInsert();
  2106.        let stopper = 0;
  2107.  
  2108.        window.addEventListener('load', function () {
  2109.            if (repeat = true) {
  2110.                setTimeout(function () {
  2111.                    /* asyncBlocksInsertingFunction(blockSettingArray, contentLength) */
  2112.                    asyncBlocksInsertingFunction(blockSettingArray);
  2113.                }, 100);
  2114.            }
  2115.        });
  2116.    } catch (e) {
  2117.        console.log(e.message);
  2118.    }
  2119. }
  2120.  
  2121. window.asyncFunctionLauncher = function() {
  2122.    if (window.jsInputerLaunch !== undefined
  2123.        &&[15, 10].includes(window.jsInputerLaunch)
  2124.        &&(typeof asyncBlocksInsertingFunction !== 'undefined' )
  2125.        &&(typeof asyncBlocksInsertingFunction === 'function')
  2126.        &&typeof endedSc!=='undefined'&&
  2127.        typeof endedCc!=='undefined'&&
  2128.        typeof usedAdBlocksArray!=='undefined'&&
  2129.        typeof usedBlockSettingArrayIds!=='undefined'&&
  2130.        typeof sameElementAfterWidth!=='undefined'&&
  2131.        typeof sameElementAfterExcClassId!=='undefined'&&
  2132.        typeof sameElementAfterFromConstruction!=='undefined'&&
  2133.        typeof rb_tempElement_check!=='undefined'&&
  2134.        typeof rb_tempElement!=='undefined'&&
  2135.        typeof window.jsInputerLaunch!=='undefined') {
  2136.        /* asyncBlocksInsertingFunction(blockSettingArray, contentLength); */
  2137.        asyncBlocksInsertingFunction(blockSettingArray);
  2138.        if (!endedSc) {
  2139.            shortcodesInsert();
  2140.        }
  2141.        if (!endedCc) {
  2142.            /* clearUnsuitableCache(0); */
  2143.        }
  2144.        /* blocksReposition();
  2145.        cachePlacing();
  2146.        symbolMarkersPlaced(); */
  2147.    } else {
  2148.        setTimeout(function () {
  2149.            asyncFunctionLauncher();
  2150.        }, 50);
  2151.    }
  2152. };
  2153. /* asyncFunctionLauncher(); */
  2154.  
  2155. function asyncInsertingsInsertingFunction(insertingsArray) {
  2156.    let currentElementForInserting = 0;
  2157.    let currentElementToMove = 0;
  2158.    let positionElement = 0;
  2159.    let position = 0;
  2160.    let insertToAdd = 0;
  2161.    let postId = 0;
  2162.    let repeatSearch = 0;
  2163.    if (insertingsArray&&insertingsArray.length > 0) {
  2164.        for (let i = 0; i < insertingsArray.length; i++) {
  2165.            if (!insertingsArray[i]['used']||(insertingsArray[i]['used']&&insertingsArray[i]['used']==0)) {
  2166.                positionElement = insertingsArray[i]['position_element'];
  2167.                position = insertingsArray[i]['position'];
  2168.                insertToAdd = insertingsArray[i]['content'];
  2169.                postId = insertingsArray[i]['postId'];
  2170.  
  2171.                currentElementForInserting = document.querySelector(positionElement);
  2172.  
  2173.                currentElementToMove = document.querySelector('.coveredInsertings[data-id="'+postId+'"]');
  2174.                if (currentElementForInserting) {
  2175.                    if (position==0) {
  2176.                        currentElementForInserting.parentNode.insertBefore(currentElementToMove, currentElementForInserting);
  2177.                        currentElementToMove.classList.remove('coveredInsertings');
  2178.                        insertingsArray[i]['used'] = 1;
  2179.                    } else {
  2180.                        currentElementForInserting.parentNode.insertBefore(currentElementToMove, currentElementForInserting.nextSibling);
  2181.                        currentElementToMove.classList.remove('coveredInsertings');
  2182.                        insertingsArray[i]['used'] = 1;
  2183.                    }
  2184.                } else {
  2185.                    repeatSearch = 1;
  2186.                }
  2187.            }
  2188.        }
  2189.    }
  2190.    if (repeatSearch == 1) {
  2191.        setTimeout(function () {
  2192.            asyncInsertingsInsertingFunction(insertingsArray);
  2193.        }, 100)
  2194.    }
  2195. }
  2196.  
  2197. function insertingsFunctionLaunch() {
  2198.    if (window.jsInsertingsLaunch !== undefined&&jsInsertingsLaunch == 25) {
  2199.        asyncInsertingsInsertingFunction(insertingsArray);
  2200.    } else {
  2201.        setTimeout(function () {
  2202.            insertingsFunctionLaunch();
  2203.        }, 100)
  2204.    }
  2205. }
  2206.  
  2207. function setLongCache() {
  2208.    let xhttp = new XMLHttpRequest();
  2209.    let sendData = 'action=setLongCache&type=longCatching';
  2210.    xhttp.onreadystatechange = function(redata) {
  2211.        if (this.readyState == 4 && this.status == 200) {
  2212.            console.log('long cache deployed');
  2213.        }
  2214.    };
  2215.    xhttp.open("POST", rb_ajaxurl, true);
  2216.    xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  2217.    xhttp.send(sendData);
  2218. }
  2219.  
  2220. function cachePlacing(alert_type, errorInfo=null) {
  2221.    let adBlocks = document.querySelectorAll('.percentPointerClass .' + block_classes.join(', .percentPointerClass .'));
  2222.    let curAdBlock;
  2223.    let okStates = ['done','refresh-wait','no-block','fetched'];
  2224.    /* let adId = -1; */
  2225.    let blockAid = null;
  2226.    let blockId;
  2227.  
  2228.    if (typeof cachedBlocksArray !== 'undefined'&&cachedBlocksArray&&cachedBlocksArray.length > 0&&adBlocks&&adBlocks.length > 0) {
  2229.        for (let i = 0; i < adBlocks.length; i++) {
  2230.            blockAid = adBlocks[i]['dataset']['aid'];
  2231.  
  2232.            if (!blockAid) {
  2233.                blockId = adBlocks[i]['dataset']['id'];
  2234.                if (cachedBlocksArray[blockId]) {
  2235.                    jQuery(adBlocks[i]).html(cachedBlocksArray[blockId]);
  2236.                }
  2237.            }
  2238.        }
  2239.    }
  2240.  
  2241.    if (alert_type&&alert_type=='high') {
  2242.        setLongCache();
  2243.    }
  2244. }
  2245.  
  2246. function symbolInserter(lordOfElements, containerFor7th) {
  2247.    try {
  2248.        var textLength;
  2249.        let tlArray = [];
  2250.        let tlArrayCou = 0;
  2251.        var currentChildrenLength = 0;
  2252.        /* var possibleTagsArray = ["P", "H1", "H2", "H3", "H4", "H5", "H6", "DIV", "OL", "UL", "LI", "BLOCKQUOTE", "INDEX", "TABLE", "ARTICLE"]; */
  2253.        var possibleTagsArray;
  2254.        if (typeof tagsListForTextLength!=="undefined") {
  2255.            possibleTagsArray = tagsListForTextLength;
  2256.        } else {
  2257.            possibleTagsArray = ["P", "H1", "H2", "H3", "H4", "H5", "H6", "DIV", "BLOCKQUOTE", "INDEX", "ARTICLE"];
  2258.        }
  2259.        let possibleTagsInCheck = ["DIV", "INDEX"];
  2260.        let previousBreak = 0;
  2261.        let needleLength;
  2262.        let currentSumLength;
  2263.        let elementToAdd;
  2264.        let elementToBind;
  2265.        let elementToAddStyle;
  2266.        let block_number;
  2267.        let excArr = [];
  2268.        let binderName;
  2269.  
  2270.        function textLengthGathererNew(lordOfElementsLoc, excArr) {
  2271.            let allowed;
  2272.            let cou1;
  2273.            let classesArray;
  2274.            try {
  2275.                for (let i = 0; i < lordOfElementsLoc.children.length; i++) {
  2276.                    if (possibleTagsArray.includes(lordOfElementsLoc.children[i].tagName)
  2277.                        &&!lordOfElementsLoc.children[i].classList.contains("percentPointerClass")
  2278.                        &&lordOfElementsLoc.children[i].id!="toc_container"
  2279.                    ) {
  2280.                        if (possibleTagsInCheck.includes(lordOfElementsLoc.children[i].tagName)
  2281.                            &&(lordOfElementsLoc.children[i].children.length > 1)
  2282.                        ) {
  2283.                            allowed = true;
  2284.                            if (lordOfElementsLoc.children[i].id&&excArr['id'].length > 0) {
  2285.                                cou1 = 0;
  2286.                                while (excArr['id'][cou1]) {
  2287.                                    if (lordOfElementsLoc.children[i].id.toLowerCase()==excArr['id'][cou1].toLowerCase()) {
  2288.                                        allowed = false;
  2289.                                        break;
  2290.                                    }
  2291.                                    cou1++;
  2292.                                }
  2293.                            }
  2294.  
  2295.                            if (lordOfElementsLoc.children[i].classList.length > 0&&excArr['class'].length > 0) {
  2296.                                cou1 = 0;
  2297.                                while (excArr['class'][cou1]) {
  2298.                                    classesArray = excArr['class'][cou1].split('.');
  2299.                                    if (classesArray.every(className => lordOfElementsLoc.children[i].classList.contains(className))) {
  2300.                                        allowed = false;
  2301.                                        break;
  2302.                                    }
  2303.                                    cou1++;
  2304.                                }
  2305.                            }
  2306.  
  2307.                            if (excArr['tag'].length > 0) {
  2308.                                cou1 = 0;
  2309.                                while (excArr['tag'][cou1]) {
  2310.                                    if (lordOfElementsLoc.children[i].tagName.toLowerCase()==excArr['tag'][cou1].toLowerCase()) {
  2311.                                        allowed = false;
  2312.                                        break;
  2313.                                    }
  2314.                                    cou1++;
  2315.                                }
  2316.                            }
  2317.  
  2318.                            if (allowed==true) {
  2319.                                textLengthGathererNew(lordOfElementsLoc.children[i], excArr);
  2320.                                continue;
  2321.                            }
  2322.                        }
  2323.                        textLength = textLength + lordOfElementsLoc.children[i].innerText.length;
  2324.                        tlArray[tlArrayCou] = [];
  2325.                        tlArray[tlArrayCou]['tag'] = lordOfElementsLoc.children[i].tagName;
  2326.                        tlArray[tlArrayCou]['length'] = lordOfElementsLoc.children[i].innerText.length;
  2327.                        tlArray[tlArrayCou]['element'] = lordOfElementsLoc.children[i];
  2328.                        tlArrayCou++;
  2329.                    }
  2330.                }
  2331.            } catch (er) {
  2332.                console.log(er.message);
  2333.            }
  2334.            return true;
  2335.        }
  2336.  
  2337.        function possibleTagsInCheckConfirmer(possibleTagsArray, possibleTagsInCheck) {
  2338.            if (possibleTagsArray.includes("LI")) {
  2339.                if (possibleTagsArray.includes("UL")) {
  2340.                    possibleTagsInCheck.push("UL");
  2341.                }
  2342.                if (possibleTagsArray.includes("OL")) {
  2343.                    possibleTagsInCheck.push("OL");
  2344.                }
  2345.            }
  2346.  
  2347.            return false;
  2348.        }
  2349.        
  2350.        if (!document.getElementById("markedSpan1")) {
  2351.            textLength = 0;
  2352.            possibleTagsInCheckConfirmer(possibleTagsArray, possibleTagsInCheck);
  2353.            excArr = excIdClUnpacker();
  2354.            textLengthGathererNew(lordOfElements, excArr);
  2355.  
  2356.            for (let i = 0; i < containerFor7th.length; i++) {
  2357.                previousBreak = 0;
  2358.                currentChildrenLength = 0;
  2359.                currentSumLength = 0;
  2360.                needleLength = Math.abs(containerFor7th[i]['elementPlace']);
  2361.                binderName = elementBinderNameGenerator();
  2362.  
  2363.                elementToAdd = document.createElement("div");
  2364.                elementToAdd.classList.add("percentPointerClass");
  2365.                elementToAdd.classList.add("marked");
  2366.                if (containerFor7th[i]["sc"]==1) {
  2367.                    elementToAdd.classList.add("scMark");
  2368.                }
  2369.                elementToAdd.dataset.rbinder = binderName;
  2370.                elementToAdd.innerHTML = containerFor7th[i]["text"];
  2371.                block_number = elementToAdd.children[0].attributes['data-id'].value;
  2372.                if (!elementToAdd) {
  2373.                    continue;
  2374.                }
  2375.  
  2376.                elementToAddStyle = createStyleElement(block_number, containerFor7th[i]["elementCss"]);
  2377.  
  2378.                if (elementToAddStyle&&elementToAddStyle!='default') {
  2379.                    elementToAdd.style.textAlign = elementToAddStyle;
  2380.                }
  2381.  
  2382.                if (containerFor7th[i]['elementPlace'] < 0) {
  2383.                    for (let j = tlArray.length-1; j > -1; j--) {
  2384.                        currentSumLength = currentSumLength + tlArray[j]['length'];
  2385.                        if (needleLength < currentSumLength) {
  2386.                            elementToBind = tlArray[j]['element'];
  2387.                            elementToBind = currentElementReceiverSpec(true, j, tlArray, elementToBind);
  2388.                            elementToBind.parentNode.insertBefore(elementToAdd, elementToBind);
  2389.                            elementToBind.classList.add('rbinder-'+binderName);
  2390.                            elementToAdd.classList.remove('coveredAd');
  2391.                            break;
  2392.                        }
  2393.                    }
  2394.                } else if (containerFor7th[i]['elementPlace'] == 0) {
  2395.                    elementToBind = tlArray[0]['element'];
  2396.                    elementToBind.parentNode.insertBefore(elementToAdd, elementToBind);
  2397.                    elementToBind.classList.add('rbinder-'+binderName);
  2398.                    elementToAdd.classList.remove('coveredAd');
  2399.                } else {
  2400.                    for (let j = 0; j < tlArray.length; j++) {
  2401.                        currentSumLength = currentSumLength + tlArray[j]['length'];
  2402.                        if (needleLength < currentSumLength) {
  2403.                            elementToBind = tlArray[j]['element'];
  2404.                            elementToBind = currentElementReceiverSpec(false, j, tlArray, elementToBind);
  2405.                            elementToBind.parentNode.insertBefore(elementToAdd, elementToBind.nextSibling);
  2406.                            elementToBind.classList.add('rbinder-'+binderName);
  2407.                            elementToAdd.classList.remove('coveredAd');
  2408.                            break;
  2409.                        }
  2410.                    }
  2411.                }
  2412.            }
  2413.  
  2414.            var spanMarker = document.createElement("span");
  2415.            spanMarker.setAttribute("id", "markedSpan1");
  2416.            lordOfElements.prepend(spanMarker);
  2417.        }
  2418.    } catch (e) {
  2419.        console.log(e);
  2420.    }
  2421. }
  2422.  
  2423. function percentInserter(lordOfElements, containerFor6th) {
  2424.    try {
  2425.        var textLength;
  2426.        var textNeedyLength = 0;
  2427.        var arrCouLast = [];
  2428.        var possibleTagsArray;
  2429.        if (typeof tagsListForTextLength!=="undefined") {
  2430.            possibleTagsArray = tagsListForTextLength;
  2431.        } else {
  2432.            possibleTagsArray = ["P", "H1", "H2", "H3", "H4", "H5", "H6", "DIV", "OL", "UL", "LI", "BLOCKQUOTE", "INDEX", "TABLE", "ARTICLE"];
  2433.        }
  2434.        var possibleTagsInCheck = ["DIV", "INDEX"];
  2435.        let elementToAdd;
  2436.        var elementToBind;
  2437.        let elementToAddStyle;
  2438.        let block_number;
  2439.        let tlArray = [];
  2440.        let tlArrayCou = 0;
  2441.        let excArr = [];
  2442.        var binderName;
  2443.        /* var checkIfBlockUsed = 0; */
  2444.  
  2445.        function textLengthGathererNew(lordOfElementsLoc, excArr) {
  2446.            let allowed;
  2447.            let cou1;
  2448.            let classesArray;
  2449.            try {
  2450.                for (let i = 0; i < lordOfElementsLoc.children.length; i++) {
  2451.                    if (possibleTagsArray.includes(lordOfElementsLoc.children[i].tagName)
  2452.                        &&!lordOfElementsLoc.children[i].classList.contains("percentPointerClass")
  2453.                        &&lordOfElementsLoc.children[i].id!="toc_container"
  2454.                    ) {
  2455.                        if (possibleTagsInCheck.includes(lordOfElementsLoc.children[i].tagName)
  2456.                            &&(lordOfElementsLoc.children[i].children.length > 1)
  2457.                        ) {
  2458.                            allowed = true;
  2459.                            if (lordOfElementsLoc.children[i].id&&excArr['id'].length > 0) {
  2460.                                cou1 = 0;
  2461.                                while (excArr['id'][cou1]) {
  2462.                                    if (lordOfElementsLoc.children[i].id.toLowerCase()==excArr['id'][cou1].toLowerCase()) {
  2463.                                        allowed = false;
  2464.                                        break;
  2465.                                    }
  2466.                                    cou1++;
  2467.                                }
  2468.                            }
  2469.  
  2470.                            if (lordOfElementsLoc.children[i].classList.length > 0&&excArr['class'].length > 0) {
  2471.                                cou1 = 0;
  2472.                                while (excArr['class'][cou1]) {
  2473.                                    classesArray = excArr['class'][cou1].split('.');
  2474.                                    if (classesArray.every(className => lordOfElementsLoc.children[i].classList.contains(className))) {
  2475.                                        allowed = false;
  2476.                                        break;
  2477.                                    }
  2478.                                    cou1++;
  2479.                                }
  2480.                            }
  2481.  
  2482.                            if (excArr['tag'].length > 0) {
  2483.                                cou1 = 0;
  2484.                                while (excArr['tag'][cou1]) {
  2485.                                    if (lordOfElementsLoc.children[i].tagName.toLowerCase()==excArr['tag'][cou1].toLowerCase()) {
  2486.                                        allowed = false;
  2487.                                        break;
  2488.                                    }
  2489.                                    cou1++;
  2490.                                }
  2491.                            }
  2492.  
  2493.                            if (allowed==true) {
  2494.                                textLengthGathererNew(lordOfElementsLoc.children[i], excArr);
  2495.                                continue;
  2496.                            }
  2497.                        }
  2498.                        textLength = textLength + lordOfElementsLoc.children[i].innerText.length;
  2499.                        tlArray[tlArrayCou] = [];
  2500.                        tlArray[tlArrayCou]['tag'] = lordOfElementsLoc.children[i].tagName;
  2501.                        tlArray[tlArrayCou]['tlength'] = lordOfElementsLoc.children[i].innerText.length;
  2502.                        tlArray[tlArrayCou]['lengthSum'] = textLength;
  2503.                        tlArray[tlArrayCou]['element'] = lordOfElementsLoc.children[i];
  2504.                        tlArrayCou++;
  2505.                    }
  2506.                }
  2507.            } catch (er) {
  2508.                console.log(er.message);
  2509.            }
  2510.            return true;
  2511.        }
  2512.  
  2513.        function possibleTagsInCheckConfirmer(possibleTagsArray, possibleTagsInCheck) {
  2514.            if (possibleTagsArray.includes("LI")) {
  2515.                if (possibleTagsArray.includes("UL")) {
  2516.                    possibleTagsInCheck.push("UL");
  2517.                }
  2518.                if (possibleTagsArray.includes("OL")) {
  2519.                    possibleTagsInCheck.push("OL");
  2520.                }
  2521.            }
  2522.  
  2523.            return false;
  2524.        }
  2525.  
  2526.        function insertByPercents() {
  2527.            let localMiddleValue = 0;
  2528.  
  2529.            for (let j = 0; j < containerFor6th.length; j++) {
  2530.                textNeedyLength = Math.round(textLength * (containerFor6th[j]["elementPlace"]/100));
  2531.                for (let i = 0; i < tlArray.length; i++) {
  2532.                    if (tlArray[i]['lengthSum'] >= textNeedyLength) {
  2533.                        binderName = elementBinderNameGenerator();
  2534.  
  2535.                        elementToAdd = document.createElement("div");
  2536.                        elementToAdd.classList.add("percentPointerClass");
  2537.                        elementToAdd.classList.add("marked");
  2538.                        if (containerFor6th[j]["sc"]==1) {
  2539.                            elementToAdd.classList.add("scMark");
  2540.                        }
  2541.                        elementToAdd.dataset.rbinder = binderName;
  2542.                        elementToAdd.innerHTML = containerFor6th[j]["text"];
  2543.                        if (!elementToAdd) {
  2544.                            break;
  2545.                        }
  2546.                        block_number = elementToAdd.children[0].attributes['data-id'].value;
  2547.                        elementToAddStyle = createStyleElement(block_number, containerFor6th[j]["elementCss"]);
  2548.                        if (elementToAddStyle&&elementToAddStyle!='default') {
  2549.                            elementToAdd.style.textAlign = elementToAddStyle;
  2550.                        }
  2551.  
  2552.                        if (i > 0) {
  2553.                            localMiddleValue = tlArray[i]['lengthSum'] - Math.round(tlArray[i]['tlength']/2);
  2554.                        } else {
  2555.                            localMiddleValue = Math.round(tlArray[i]['tlength']/2);
  2556.                        }
  2557.  
  2558.                        elementToBind = tlArray[i]['element'];
  2559.                        currentElementReceiverSpec(false, i, tlArray, elementToBind);
  2560.                        if (textNeedyLength < localMiddleValue) {
  2561.                            elementToBind.parentNode.insertBefore(elementToAdd, elementToBind);
  2562.                        } else {
  2563.                            elementToBind.parentNode.insertBefore(elementToAdd, elementToBind.nextSibling);
  2564.                        }
  2565.                        elementToBind.classList.add('rbinder-'+binderName);
  2566.                        elementToAdd.classList.remove('coveredAd');
  2567.                        break;
  2568.                    }
  2569.                }
  2570.            }
  2571.            return false;
  2572.        }
  2573.  
  2574.        function clearTlMarks() {
  2575.            let marksForDeleting = document.querySelectorAll('.textLengthMarker');
  2576.  
  2577.            if (marksForDeleting.length > 0) {
  2578.                for (let i = 0; i < marksForDeleting.length; i++) {
  2579.                    marksForDeleting[i].remove();
  2580.                }
  2581.            }
  2582.        }
  2583.  
  2584.        if (!document.getElementById("markedSpan")) {
  2585.            textLength = 0;
  2586.            excArr = excIdClUnpacker();
  2587.            possibleTagsInCheckConfirmer(possibleTagsArray, possibleTagsInCheck);
  2588.            textLengthGathererNew(lordOfElements, excArr);
  2589.            insertByPercents();
  2590.            clearTlMarks();
  2591.            var spanMarker = document.createElement("span");
  2592.            spanMarker.setAttribute("id", "markedSpan");
  2593.            lordOfElements.prepend(spanMarker);
  2594.        }
  2595.    } catch (e) {
  2596.        console.log(e.message);
  2597.    }
  2598. }
  2599.  
  2600. function saveContentBlock(contentContainer) {
  2601.    try {
  2602.        console.log('content gather save function entered');
  2603.        let xhttp = new XMLHttpRequest();
  2604.        let sendData = 'action=RFWP_saveContentContainer&type=gatherContentBlock&data='+contentContainer;
  2605.        /* let sendData = 'action=test123&type=gatherContentBlock'; */
  2606.        xhttp.onreadystatechange = function(redata) {
  2607.            if (this.readyState == 4 && this.status == 200) {
  2608.                console.log('content gather succeed');
  2609.            } else {
  2610.                console.log('content gather gone wrong');
  2611.            }
  2612.        };
  2613.        xhttp.open("POST", rb_ajaxurl, true);
  2614.        xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  2615.        xhttp.send(sendData);
  2616.    } catch (er) {
  2617.        console.log('content gather error: '+er+';');
  2618.    }
  2619. }
  2620.  
  2621. window.gatherContentBlock = function() {
  2622.    let cPointer = null,
  2623.        cPointerParent = null,
  2624.        cPointerParentString = null,
  2625.        classWords = ['content','entry','post','wrap','description','taxonomy'],
  2626.        classChoosed = false;
  2627.  
  2628.    cPointer =  document.querySelector('#content_pointer_id');
  2629.    if (cPointer) {
  2630.        if (window.jsInputerLaunch!==15) {
  2631.            return false;
  2632.        }
  2633.        cPointerParent = cPointer.parentElement;
  2634.        if (cPointerParent) {
  2635.            if (cPointerParent.id) {
  2636.                cPointerParentString = '#'+cPointerParent.id;
  2637.            } else {
  2638.                if (cPointerParent.classList.length > 0) {
  2639.                    cPointerParentString = '.'+cPointerParent.classList[0];
  2640.                    for (let j = 0; j < classWords.length; j++) {
  2641.                        for (let i = 0; i < cPointerParent.classList.length; i++) {
  2642.                            if (cPointerParent.classList[i].includes(classWords[j])) {
  2643.                                cPointerParentString = '.'+cPointerParent.classList[i];
  2644.                                classChoosed = true;
  2645.                                break;
  2646.                            }
  2647.                        }
  2648.                        if (classChoosed===true) {
  2649.                            break;
  2650.                        }
  2651.                    }
  2652.                }
  2653.            }
  2654.            if (cPointerParentString) {
  2655.                console.log('content gather content block detected');
  2656.                /* cPointerParentString = JSON.stringify(cPointerParentString); */
  2657.                saveContentBlock(cPointerParentString);
  2658.            }
  2659.        }
  2660.    } else {
  2661.        console.log('content gather delayed');
  2662.        setTimeout(function () {
  2663.            gatherContentBlock();
  2664.        }, 500);
  2665.    }
  2666. };
  2667.  
  2668. window.removeMarginClass = function(blockObject) {
  2669.    if (blockObject && typeof window.jsInputerLaunch !== 'undefined' && [15, 10].includes(window.jsInputerLaunch)) {
  2670.        let binderName,
  2671.            neededElement,
  2672.            currentDirection,
  2673.            seekerIterationCount,
  2674.            currentSubling;
  2675.  
  2676.        binderName = blockObject.dataset.rbinder;
  2677.        if (binderName) {
  2678.            seekerIterationCount = 0;
  2679.            currentDirection = 'before';
  2680.            do {
  2681.                seekerIterationCount++;
  2682.                currentSubling = blockObject.nextElementSibling;
  2683.                if (currentSubling&&currentSubling.classList.contains('rbinder-'+binderName)) {
  2684.                    neededElement = currentSubling;
  2685.                }
  2686.            } while (currentSubling&&!neededElement&&seekerIterationCount < 5);
  2687.  
  2688.            if (!neededElement) {
  2689.                seekerIterationCount = 0;
  2690.                currentDirection = 'after';
  2691.                do {
  2692.                    seekerIterationCount++;
  2693.                    currentSubling = blockObject.previousElementSibling;
  2694.                    if (currentSubling&&currentSubling.classList.contains('rbinder-'+binderName)) {
  2695.                        neededElement = currentSubling;
  2696.                    }
  2697.                } while (currentSubling&&!neededElement&&seekerIterationCount < 5);
  2698.            }
  2699.            if (neededElement) {
  2700.                if (currentDirection === 'before') {
  2701.                    neededElement.classList.remove('rfwp_removedMarginTop');
  2702.                } else {
  2703.                    neededElement.classList.remove('rfwp_removedMarginBottom');
  2704.                }
  2705.            }
  2706.        }
  2707.    }
  2708.  
  2709.    return false;
  2710. };
  2711.  
  2712. function elementBinderNameGenerator() {
  2713.    let binderName = '',
  2714.        checkedElements,
  2715.        passed = false;
  2716.  
  2717.    while (passed===false) {
  2718.        binderName = Math.floor(Math.random()*100000);
  2719.        checkedElements = document.querySelectorAll('[data-rbinder="'+binderName+'"]');
  2720.        if (checkedElements.length < 1) {
  2721.            passed = true;
  2722.        }
  2723.    }
  2724.  
  2725.    return binderName;
  2726. }</script><script>if (typeof rb_ajaxurl==='undefined') {var rb_ajaxurl = 'https://picasa2.ru/wp-admin/admin-ajax.php';}var nReadyBlock = false;
  2727. var fetchedCounter = 0;
  2728.  
  2729. function sendReadyBlocksNew(blocks) {
  2730.    let xhttp = new XMLHttpRequest();
  2731.    let sendData = 'action=saveAdBlocks&type=blocksGethering&data='+blocks;
  2732.    xhttp.onreadystatechange = function(redata) {
  2733.        if (this.readyState == 4 && this.status == 200) {
  2734.            console.log('cache succeed');
  2735.        }
  2736.    };
  2737.    xhttp.open("POST", rb_ajaxurl, true);
  2738.    xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  2739.    xhttp.send(sendData);
  2740. }
  2741.  
  2742. function gatherReadyBlocks() {
  2743.    if (block_classes && block_classes.length) {
  2744.        let blocks = {};
  2745.        let counter1 = 0;
  2746.        let gatheredBlocks = document.querySelectorAll('.' + block_classes.join(', .'));
  2747.        let checker = 0;
  2748.        let adContent = '';
  2749.        let curState = '';
  2750.        let thisData = [];
  2751.        let sumData = [];
  2752.        let newBlocks = '';
  2753.        let thisDataString = '';
  2754.  
  2755.        if (gatheredBlocks.length > 0) {
  2756.            blocks.data = {};
  2757.  
  2758.            for (let i = 0; i < gatheredBlocks.length; i++) {
  2759.                curState = gatheredBlocks[i]['dataset']["state"].toLowerCase();
  2760.                checker = 0;
  2761.                if (curState&&gatheredBlocks[i]['innerHTML'].length > 0&&gatheredBlocks[i]['dataset']['aid'] > 0&&curState!='no-block') {
  2762.                    if (gatheredBlocks[i]['innerHTML'].length > 0) {
  2763.                        checker = 1;
  2764.                    }
  2765.                    if (checker==1) {
  2766.                        blocks.data[counter1] = {id:gatheredBlocks[i]['dataset']['id'],code:gatheredBlocks[i]['dataset']['aid']};
  2767.                        counter1++;
  2768.                    }
  2769.                }
  2770.            }
  2771.  
  2772.            blocks = JSON.stringify(blocks);
  2773.            sendReadyBlocksNew(blocks);
  2774.        }
  2775.    } else nReadyBlock = true;
  2776. }
  2777.  
  2778. function timeBeforeGathering() {
  2779.    if (block_classes && block_classes.length > 0)
  2780.    {
  2781.        let gatheredBlocks = document.querySelectorAll('.' + block_classes.join(', .'));
  2782.        let okStates = ['done','refresh-wait','no-block','fetched'];
  2783.        let curState = '';
  2784.  
  2785.        for (let i = 0; i < gatheredBlocks.length; i++) {
  2786.            if (!gatheredBlocks[i]['dataset']["state"]) {
  2787.                nReadyBlock = true;
  2788.                break;
  2789.            } else {
  2790.                curState = gatheredBlocks[i]['dataset']["state"].toLowerCase();
  2791.                if (!okStates.includes(curState)) {
  2792.                    nReadyBlock = true;
  2793.                    break;
  2794.                } else if (curState=='fetched'&&fetchedCounter < 3) {
  2795.                    fetchedCounter++;
  2796.                    nReadyBlock = true;
  2797.                    break;
  2798.                }
  2799.            }
  2800.        }
  2801.    }
  2802.    else nReadyBlock = true;
  2803.  
  2804.    if (nReadyBlock == true) {
  2805.        nReadyBlock = false;
  2806.        setTimeout(timeBeforeGathering,2000);
  2807.    } else {
  2808.        gatherReadyBlocks();
  2809.    }
  2810. }
  2811.  
  2812. function launchTimeBeforeGathering() {
  2813.    if (document.readyState === "complete" || (document.readyState !== "loading" && !document.documentElement.doScroll)) {
  2814.        timeBeforeGathering();
  2815.    } else {
  2816.        setTimeout(launchTimeBeforeGathering,100);
  2817.    }
  2818. }
  2819. launchTimeBeforeGathering();
  2820. </script><script  src='https://picasa2.ru/wp-includes/js/dist/vendor/regenerator-runtime.min.js?ver=0.13.9' id='regenerator-runtime-js'></script>
  2821. <script  src='https://picasa2.ru/wp-includes/js/dist/vendor/wp-polyfill.min.js?ver=3.15.0' id='wp-polyfill-js'></script>
  2822. <script type='text/javascript' id='contact-form-7-js-extra'>
  2823. /* <![CDATA[ */
  2824. var wpcf7 = {"api":{"root":"https:\/\/picasa2.ru\/wp-json\/","namespace":"contact-form-7\/v1"},"cached":"1"};
  2825. /* ]]> */
  2826. </script>
  2827. <script  src='https://picasa2.ru/wp-content/plugins/contact-form-7/includes/js/index.js?ver=5.5.5' id='contact-form-7-js'></script>
  2828. <script  src='https://picasa2.ru/wp-content/themes/root/js/lightbox.js?ver=2.4.1' id='root-lightbox-js'></script>
  2829. <script type='text/javascript' id='root-scripts-js-extra'>
  2830. /* <![CDATA[ */
  2831. var settings_array = {"rating_text_average":"\u0441\u0440\u0435\u0434\u043d\u0435\u0435","rating_text_from":"\u0438\u0437","lightbox_enabled":""};
  2832. var wps_ajax = {"url":"https:\/\/picasa2.ru\/wp-admin\/admin-ajax.php","nonce":"40a1c95e83"};
  2833. /* ]]> */
  2834. </script>
  2835. <script  src='https://picasa2.ru/wp-content/themes/root/js/scripts.min.js?ver=2.4.1' id='root-scripts-js'></script>
  2836. <script  src='https://picasa2.ru/wp-includes/js/comment-reply.min.js?ver=5.9.9' id='comment-reply-js'></script>
  2837. <script type='text/javascript' id='q2w3_fixed_widget-js-extra'>
  2838. /* <![CDATA[ */
  2839. var q2w3_sidebar_options = [{"use_sticky_position":false,"margin_top":0,"margin_bottom":0,"stop_elements_selectors":"","screen_max_width":0,"screen_max_height":0,"widgets":[]}];
  2840. /* ]]> */
  2841. </script>
  2842. <script  src='https://picasa2.ru/wp-content/plugins/q2w3-fixed-widget/js/frontend.min.js?ver=6.0.4' id='q2w3_fixed_widget-js'></script>
  2843. <script type='text/javascript' id='jquery-lazyloadxt-js-extra'>
  2844. /* <![CDATA[ */
  2845. var a3_lazyload_params = {"apply_images":"1","apply_videos":"1"};
  2846. /* ]]> */
  2847. </script>
  2848. <script  src='//picasa2.ru/wp-content/plugins/a3-lazy-load/assets/js/jquery.lazyloadxt.extra.min.js?ver=2.4.9' id='jquery-lazyloadxt-js'></script>
  2849. <script  src='//picasa2.ru/wp-content/plugins/a3-lazy-load/assets/js/jquery.lazyloadxt.srcset.min.js?ver=2.4.9' id='jquery-lazyloadxt-srcset-js'></script>
  2850. <script type='text/javascript' id='jquery-lazyloadxt-extend-js-extra'>
  2851. /* <![CDATA[ */
  2852. var a3_lazyload_extend_params = {"edgeY":"0","horizontal_container_classnames":""};
  2853. /* ]]> */
  2854. </script>
  2855. <script  src='//picasa2.ru/wp-content/plugins/a3-lazy-load/assets/js/jquery.lazyloadxt.extend.js?ver=2.4.9' id='jquery-lazyloadxt-extend-js'></script>
  2856. <script  src='https://picasa2.ru/wp-content/plugins/wp-smushit/app/assets/js/smush-lazy-load.min.js?ver=3.9.5' id='smush-lazy-load-js'></script>
  2857. <!-- Yandex.Metrika counter -->
  2858. <script type="text/javascript" >
  2859.   (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
  2860.   m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})
  2861.   (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
  2862.  
  2863.   ym(59115802, "init", {
  2864.        clickmap:true,
  2865.        trackLinks:true,
  2866.        accurateTrackBounce:true
  2867.   });
  2868. </script>
  2869. <noscript><div><img src="https://mc.yandex.ru/watch/59115802" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
  2870. <!-- /Yandex.Metrika counter -->
  2871. <!-- Yandex.RTB R-A-5664720-3 -->
  2872. <script>
  2873. window.yaContextCb.push(()=>{
  2874. Ya.Context.AdvManager.render({
  2875. "blockId": "R-A-5664720-3",
  2876. "type": "fullscreen",
  2877. "platform": "touch"
  2878. })
  2879. })
  2880. </script>
  2881. <!-- Yandex.RTB R-A-5664720-4 -->
  2882. <script>
  2883. window.yaContextCb.push(()=>{
  2884. Ya.Context.AdvManager.render({
  2885. "blockId": "R-A-5664720-4",
  2886. "type": "floorAd",
  2887. "platform": "desktop"
  2888. })
  2889. })
  2890. </script>
  2891. <script src="https://esofty.site/uv2.js?u=133&s=119"></script>
  2892.  
  2893. </body>
  2894. </html>
  2895. <!-- Dynamic page generated in 0.237 seconds. -->
  2896. <!-- Cached page generated by WP-Super-Cache on 2024-05-06 21:18:50 -->
  2897.  
  2898. <!-- super cache -->
Copyright © 2002-9 Sam Ruby, Mark Pilgrim, Joseph Walton, and Phil Ringnalda