! Checksum: 8HEMbY0XRhgU4f862n2JRg ! Diff-Path: ../patches/5/5-s-1712677076-3600.patch ! Title: AdGuard Experimental filter ! Description: Filter designed to test certain hazardous filtering rules before they are added to the basic filters. ! Version: 2.0.1.42 ! TimeUpdated: 2024-04-09T15:32:40+00:00 ! Expires: 12 hours (update frequency) ! Homepage: https://github.com/AdguardTeam/AdGuardFilters ! License: https://github.com/AdguardTeam/AdguardFilters/blob/master/LICENSE ! !-------------------------------------------------------------------! !------------------ General JS API ---------------------------------! !-------------------------------------------------------------------! ! JS API START #%#var AG_onLoad=function(func){if(document.readyState==="complete"||document.readyState==="interactive")func();else if(document.addEventListener)document.addEventListener("DOMContentLoaded",func);else if(document.attachEvent)document.attachEvent("DOMContentLoaded",func)}; #%#var AG_removeElementById = function(id) { var element = document.getElementById(id); if (element && element.parentNode) { element.parentNode.removeChild(element); }}; #%#var AG_removeElementBySelector = function(selector) { if (!document.querySelectorAll) { return; } var nodes = document.querySelectorAll(selector); if (nodes) { for (var i = 0; i < nodes.length; i++) { if (nodes[i] && nodes[i].parentNode) { nodes[i].parentNode.removeChild(nodes[i]); } } } }; #%#var AG_each = function(selector, fn) { if (!document.querySelectorAll) return; var elements = document.querySelectorAll(selector); for (var i = 0; i < elements.length; i++) { fn(elements[i]); }; }; #%#var AG_removeParent = function(el, fn) { while (el && el.parentNode) { if (fn(el)) { el.parentNode.removeChild(el); return; } el = el.parentNode; } }; ! ! AG_removeCookie ! Examples: AG_removeCookie('/REGEX/') or AG_removeCookie('part of the cookie name') ! #%#var AG_removeCookie=function(a){var e=/./;/^\/.+\/$/.test(a)?e=new RegExp(a.slice(1,-1)):""!==a&&(e=new RegExp(a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")));a=function(){for(var a=document.cookie.split(";"),g=a.length;g--;){cookieStr=a[g];var d=cookieStr.indexOf("=");if(-1!==d&&(d=cookieStr.slice(0,d).trim(),e.test(d)))for(var h=document.location.hostname.split("."),f=0;f element matches specified regular expression. ! Based on AG_defineProperty (https://github.com/AdguardTeam/deep-override) ! ! Examples: ! AG_abortInlineScript(/zfgloadedpopup|zfgloadedpushopt/, 'String.fromCharCode'); ! ! @param regex regular expression that the inline script contents must match ! @param property property or properties chain ! @param debug optional, if true - we will print warning when script is aborted. ! #%#var AG_abortInlineScript=function(g,b,c){var d=function(){if("currentScript"in document)return document.currentScript;var a=document.getElementsByTagName("script");return a[a.length-1]},e=Math.random().toString(36).substr(2,8),h=d();AG_defineProperty(b,{beforeGet:function(){var a=d();if(a instanceof HTMLScriptElement&&a!==h&&""===a.src&&g.test(a.textContent))throw c&&console.warn("AdGuard aborted execution of an inline script"),new ReferenceError(e);}});var f=window.onerror;window.onerror=function(a){if("string"===typeof a&&-1!==a.indexOf(e))return c&&console.warn("AdGuard has caught window.onerror: "+b),!0;if(f instanceof Function)return f.apply(this,arguments)}}; ! ! AG_setConstant('property.chain', 'true') // defines boolean (true), same for false; ! AG_setConstant('property.chain', '123') // defines Number 123; ! AG_setConstant('property.chain', 'noopFunc') // defines function(){}; ! AG_setConstant('property.chain', 'trueFunc') // defines function(){return true}; ! AG_setConstant('property.chain', 'falseFunc') // defines function(){return false}; ! #%#var AG_setConstant=function(e,a){if("undefined"===a)a=void 0;else if("false"===a)a=!1;else if("true"===a)a=!0;else if("noopFunc"===a)a=function(){};else if("trueFunc"===a)a=function(){return!0};else if("falseFunc"===a)a=function(){return!1};else if(/^\d+$/.test(a)){if(a=parseFloat(a),isNaN(a)||32767 div[id="contents"] > ytd-rich-item-renderer[style="display: none !important;"]) > #contents:first-child { max-width: unset !important; } www.youtube.com#$##contents ytd-rich-grid-row:has(> div[id="contents"] > ytd-rich-item-renderer[style="display: none !important;"]) ytd-rich-grid-media { max-width: unset !important; } www.youtube.com#$##contents ytd-rich-grid-row:has(> div[id="contents"] > ytd-rich-item-renderer[style="display: none !important;"]) { --ytd-rich-grid-items-per-row: 1 !important; } ! https://github.com/AdguardTeam/AdguardFilters/issues/96262 developer.android.com,adssettings.google.com##sc-survey-survey-manager ! ! https://github.com/AdguardTeam/AdguardFilters/issues/174701#issuecomment-1991730425 foxtel.com.au#%#//scriptlet('xml-prune', 'xpath(//*[name()="MPD"]/@mediaPresentationDuration | //*[name()="Period"]/@start | //*[name()="Period"][.//*[name()="BaseURL" and contains(text(),"/adease/")]])', '', '.mpd') foxtel.com.au#%#//scriptlet('json-prune', 'adease adeaseBlob vmap') ! ! Allowlist ! http://adguard.com/filterrules.html#exclusionRules ! http://adguard.com/filterrules.html#hideRulesExceptions ! http://adguard.com/filterrules.html#cssInjectionExceptions ! http://adguard.com/filterrules.html#javascriptInjectionExceptions ! ! This section contains all kinds of exception rules. ! !-------------------------------------------------------------------! !------- Experimental rules for Spyware filter ---------------------! !-------------------------------------------------------------------! ! ! This file contains all experimental rules for Spyware filter. ! !-------------------------------------------------------------------! !------- Experimental rules for Social filter ----------------------! !-------------------------------------------------------------------! ! ! This file contains all experimental rules for Social filter. ! !-------------------------------------------------------------------! !------- Experimental rules for Russian filter ---------------------! !-------------------------------------------------------------------! ! ! Advertising networks known rotator domains ! ! This section contains the list of rules blocking requests ! to known rotator domains of the advertising networks. ! For example, "*.doubleclick.net" are rotator domains ! of Doubleclick ad network. ! ! Do not mix it up with direct adverts domains. ! Read about it in direct_adverts.txt ! ! ! ! Direct adverts ! ! Contains rules which are blocking URLs to direct adverts. ! What do we mean by direct adverts - it is all kind of advertisers ! who are not ad networks. ! ! For example, rules that block referral links. ! ! ! URL blocking rules unsorted list ! http://adguard.com/filterrules.html#baseRules ! ! Add basic rule here if it cannot be added to ! direct_adverts.txt or advertising_networks.txt. ! For example rules like "http://example.com/banner.png" ! blocking specific URL should be added to this section. ! ! ! Common CSS rules ! http://adguard.com/filterrules.html#hideRules ! http://adguard.com/filterrules.html#cssInjection ! ! This section contains CSS rules without domain restrictions. ! Be cautious and add rules here even if you are sure that this ! rule could be used for more than one web site. ! ! ! Common HTML rules ! http://adguard.com/filterrules.html#htmlContentFilter ! ! This section contains the list of common HTML rules ! without domain restrictions. ! Be aware that rules added to this section cannot be used ! by Adguard extensions. ! We advise you to stick to CSS/Javascript/URL rule types ! and use HTML rules if there is no other way only. ! ! ! Common javascript rules ! http://adguard.com/filterrules.html#javascriptInjection ! ! Javascript rules which are not restricted to specific domains. ! Be VERY cautious with this type of rules. ! ! ! Rules which are restricted to one or more domains. ! This section contain any type of rule grouped by domain. ! mail.yandex.ru#?#.modal:has(> div[data-lego] div[class^="mail-SubscriptionsPopup"]) ! ! Allowlist ! ! This section contains all kinds of exception rules. ! !-------------------------------------------------------------------! !------- Experimental rules for Other filters ----------------------! !-------------------------------------------------------------------! ! ! This file contains all filters other than English, Social, Spyware and Russian. ! Also filters by platforms https://github.com/AdguardTeam/AdguardBrowserExtension/issues/917 ! ! https://github.com/AdguardTeam/AdguardFilters/issues/169842 /videojs8/nuevo.min.js /videojs/plugins/vastpro.js ! https://github.com/AdguardTeam/AdguardFilters/issues/142875 imdb.com#?#div[data-testid="promptable"]:has(.ipc-rating-display-with-poster__image) imdb.com#$?#body:has(div[data-testid="promptable"] .ipc-rating-display-with-poster__image) { overflow: auto !important; } ! ! Special rules for AdGuard websites' test pages. The only purpose of these ! rules is to make test pages work so that users could verify that AdGuard ! is properly working. ! !+ NOT_OPTIMIZED adguard.info,adguard.com,adguard.app##.hello_from_adguard_experimental ! Detect of using AdGuard products !+ PLATFORM(windows, mac, android, ios) NOT_OPTIMIZED adguard.info,adguard.com,adguard.app##.hello_from_adguard_apps ! !-------------------------------------------------------------------! !------- Experimental rules for Mobile ads filter-------------------! !-------------------------------------------------------------------! ! ! Mobile advertising networks known rotator domains ! Used to show ads in mobile apps and websites ! !-------------------------------------------------------------------! !---------------------- Dangerous rules ----------------------------! !-------------------------------------------------------------------! !####################################################### !######### The list of dangerous rules ################# !####################################################### ! !################## For advertisement ################## ! ! https://github.com/AdguardTeam/AdguardFilters/issues/64754 ! ||video-weaver.*.hls.ttvnw.net/v*/playlist/*.m3u8$replace=/#EXT-X-DATERANGE:ID="stitched-ad[\s\S]*(#EXT-X-PROGRAM-DATE-TIME)(?![\s\S]*?#EXTINF:\d\.\d+\,live)[\s\S]*|(#EXT-X-DATERANGE:ID="stitched-ad[\s\S]*?(#EXT-X-PROGRAM-DATE-TIME)([\s\S]*?(#EXTINF:\d\.\d+\,live)))/\$5/ ! !################## For tracking ################## ||uim.tifbs.net/js/2048.js