欢迎光临
我们一直在努力

AdGuard 语法规则 —— 如何创建属于你自己的广告过滤器

声明

本文翻译自 AdGuard 官方文档 How to create your own ad filters,原文链接:https://kb.adguard.com/en/general/how-to-create-your-own-ad-filters

考虑到 AdGuard 官方文档没有中文简体的 AdGuard 语法规则,故翻译此文档,本人非专业翻译,部分专业词汇可能存在歧义或错误,若果您在阅读文档过程中发现语法或其他错误,请通过邮箱联系本人进行勘误。

如果本文侵犯到了您的权益,请联系本人删除;未经本人允许,请勿转载本文到其他平台或以此文牟利。

介绍

过滤器是适用于特定内容 (横幅、弹出窗口等) 的一组过滤规则。AdGuard 有一份由我们团队创建的标准过滤器列表。我们的团队不断改进和更新它们,我们希望我们的过滤器能满足大多数用户的需求

同时,AdGuard 允许您使用与我们的筛选器中相同类型的规则创建您自己的自定义筛选器

为了描述过滤规则的语法,我们使用了语法规范的增强 BNF,但我们并不总是严格遵循此规范

AdGuard 语法最初基于 Adblock Plus 规则的语法,但为了更好地过滤广告,扩展了新类型的规则。本文中有关 AdGuard 和 ABP 通用规则的部分内容摘自本文

注释

任何以感叹号开头的行都是注释。在规则列表中,它显示为灰色。AdGuard 将忽略此行,因此您可以随心所欲地编写任何内容。注释通常放在规则之上,用于描述规则的作用

示例:


  • ! 这是一条注释,在这条行下面有一条生效的规则
  • ||example.org^

示例

通过域名拦截

这条规则拦截:

  • http://example.org/ad1.gif
  • http://subdomain.example.org/ad1.gif
  • https://ads.example.org:8000/

这条规则不拦截:

  • http://ads.example.org.us/ad1.gif
  • http://example.org/redirect/http://ads.example.org/

拦截确切地址

这条规则拦截:

  • http://example.org/

这条规则不拦截:

  • https://example.org/banner/img

基本规则修饰符

过滤规则支持许多修饰符,使您可以微调规则行为。以下是带有一些简单修饰符的规则示例。

这条规则拦截:

  • http://example.org/script.js 如果这个脚本从 example.com 加载

这条规则不会拦截:

  • https://example.org/script.js 如果这个脚本从 example.org 加载
  • https://example.org/banner.png 因为这不是一个脚本

取消拦截地址

这条规则不拦截:

  • http://example.org/banner.png 即使这个地址已经有了一条拦截规则

使用 $important 修饰符的拦截规则可以覆盖异常。

取消拦截网站上所有的内容

这条规则不拦截:

  • 它将禁用 example.com 的所有修饰规则
  • 它会解除拦截此网站发送的所有请求,即使存在拦截规则匹配这些请求

修饰规则

修饰规则基于一种使用名为 CSS 的特殊语言,每个浏览器都能理解。基本上,它为网站添加了一种新的 CSS 样式,其目的是隐藏特定的元素。您可以在这里了解更多关于 CSS 的一般信息

AdGuard 扩展了 CSS,并让过滤器的开发人员处理更复杂的情况。但是,要使用这些扩展规则,您需要流利地使用常规 CSS

常见的 CSS 选择器

CSS 选择器 示例 描述
ID 选择器 #banners 匹配 id 属性等于 banners 的所有元素
Class 选择器 .banners 匹配包含 bannersclass 属性的所有元素
属性选择器 div[class="banners"] 匹配 class 属性与 banners 完全相同的所有 div 元素
属性子字符串选择器 div[class^="advert1"] 匹配 class 属性以 advert1 字符串开头的所有 div 元素
属性子字符串选择器 div[class$="banners_ads"] 匹配 class 属性以 banners_ads 字符串结尾的所有 div 元素
属性子字符串选择器 a[href^="http://example.com/"] 匹配从 http://example.com/ 域加载的所有链接
属性选择器 a[href="http://example.com/"] 精确匹配地址为 http://example.com/ 的链接

基本规则

最简单的规则就是所谓的 “基本规则”。它们用于拦截对特定 URL 的请求。或者,如果规则开头有特殊标记 “@@”,则取消拦截它。这类规则的基本原则非常简单:您必须指定限制或扩展规则范围的地址和附加参数

子请求

拦截请求的基本规则仅适用于子请求。这意味着它们不会阻止页面加载

响应状态

Browser detects a blocked request as completed with an error.

浏览器检测到被拦截的请求已完成,并返回 error 状态

基本语法规则


  • rule = [“@@”] pattern [ “$” modifiers ]
  • modifiers = [modifier0, modifier1[, …[, modifierN]]]

  • pattern — 地址掩码,每个请求的 URL 都根据此掩码进行整理。您也可以在模板中使用特殊字符,其说明如下
  • @@ — 在排除规则中使用的标记。要关闭对请求的过滤,请在您的规则开头使用此标记
  • modifiers — “阐明” 基本规则的参数。其中一些限制了规则的范围,一些可以完全改变其工作方式

特殊字符

  • * — 通配符,通配符。它用来表示 “任何一组字符”。这也可以是空字符串或任意长度的字符串
  • || — 匹配地址的开头,用此字符,您不必在地址中指定特定的协议和子域。 它意味着 || 代表 http://*., https://*., ws://*., wss://*. 中的一个
  • ^ — 分隔字符标记,分隔符可以是任意字符,可以是字母、数字或以下字符之一: _ - . %. 在本例中,分隔符以粗体显示: http://example.com/?t=1&t2=t3. 地址末尾也可以使用分隔符
  • | — 指向地址开始或结束的指针,该值取决于地址中的字符位置,例如,规则 swf| 对应于 http://example.com/annoyingflash.swf ,而不对应于 http://example.com/swf/index.html. |http://example.org 对应于 http://example.org,而不对应于 http://domain.com?url=http://example.org

视觉表现

我们建议您熟悉这篇文章,以便更好地理解应该如何制定这样的规则。

正则表达式支持

如果您想要更灵活地制定规则,可以使用正则表达式,而不是带有特殊字符的默认简化网址。

性能

使用正则表达式的规则工作较慢,因此建议避免使用它们或将它们的范围限制在特定的域中。

如果你想使用确切的正则表达式拦截,则 pattern 必须如下所示


  • pattern = “/” regexp “/”

例如,/banner\d+/$third-party 这条规则将对所有第三方请求应用正则表达式 banner\d+。正则表达式的排除规则如下所示 @@/banner\d+/

不同版本 AdGuard 的兼容性

由于内容阻止 API 限制,用于 Safari 的 AdGuard 浏览器扩展和用于 iOS 的 AdGuard 浏览器扩展不完全支持正则表达式 (请参阅 “正则表达式格式” 部分)

TLD(顶级域)的通配符支持

域的顶级域名(TLD)以修饰符,html 和 javascript 规则的模式支持通配符

例如,修饰规则 example.*##.banner 将匹配任何 example.TLD 的请求 (example.ruexample.comexample.netexample.org、等)

对于基本规则,所描述的逻辑将仅适用于 $domain 修饰符中指定的域 (例如:||*/banners/*$image,domain=example.*)

基本规则示例

  • ||example.com/ads/* — 一个简单的规则对应于像这样的地址 http://example.com/ads/banner.jpg 甚至是 http://subdomain.example.com/ads/otherbanner.jpg
  • ||example.org^$third-party — 一条拦截第三方请求 example.org 及其子域名的规则
  • @@||example.com$document — 常规的排除规则。它完全禁止对 example.com 及其子域名的过滤。排除规则中可以使用多个修饰符.。想要了解更多细节,请点击下面的 [链接]()

修饰符

注意

本节中介绍的功能面向有经验的用户。它们扩展了 “基本规则” 的功能,但是为了使用它们,您需要对浏览器的工作方式有一个基本的了解。

您可以使用其他修饰符更改 “基本规则” 的行为。修饰符应位于规则末尾的 $ 符号之后,并用逗号分隔。

示例:


  • ||domain.com^$popup,third-party

基本修饰符

以下修饰符是最简单且经常使用的修饰符

domain

domain 将规则应用区域限制为域(及其子域)。要将多个域添加到一个规则,请使用 | 字符作为分隔符。

domain 示例:

  • ||baddomain.com^$domain=example.org — 拦截匹配指定地址的请求的规则,请求来自于 example.org 域及其子域
  • ||baddomain.com^$domain=example.org|example.com — 相同的规则,但是同时对 example.orgexample.com 生效

如果希望规则对某些域不生效,请将域名以 ~ 开头

domain~ 示例:

  • ||baddomain.com^$domain=~example.org — 排除拦截匹配指定地址的请求的规则,请求来自于 example.org 域及其子域
  • ||baddomain.com^$domain=example.org|~foo.example.org — 这条规则拦截 example.org 及其所有子域发送的请求,排除子域 foo.example.org.
third-party

对第三方和自己的请求的限制。第三方请求是来自不同域的请求。例如,从 domain.comexample.org 的请求是第三方请求。

子域名

请注意,从域到其子域的请求 (反之亦然) 不被视为第三方请求。例如,从域 example.org 发送到 subdomain.example.org 的请求不是第三方请求。

如果存在 third-party 修饰符,则规则仅适用于第三方请求

third-party 示例:

  • ||domain.com^$third-party — 规则适用于所有域,除了 domain.com 及其子域。第三方请求示例:http://example.org/banner.jpg

如果存在 ~third-party 修饰符,则规则仅适用于不来自第三方的请求,这意味着,请求来自同一域名

~third-party 示例:

  • ||domain.com$~third-party — 这条规则适用于 domain.com,但不适用于其它域。例如一个不是来自第三方的请求: http://domain.com/icon.ico.
popup

AdGuard 将尝试关闭任何匹配到使用这个修饰符的拦截规则的浏览器选项卡。请注意,这并不会使所有的选项卡关闭

popup 示例:

  • ||domain.com^$popup — 如果你在浏览器从任意页面访问 http://domain.com/,通过这条规则会将特定网站打开的新标签页关闭
match-case

此修饰符定义仅适用于与大小写匹配的地址的规则。默认规则不区分大小写

match-case 示例:

  • */BannerAd.gif$match-case — 这条规则将拦截 http://example.com/BannerAd.gif, 但不会拦截 http://example.com/bannerad.gif.

内容类型修饰符

有一组可适用于将规则的应用区域限制为特定类型的内容的修饰符,还可以组合这些修饰符覆盖例如图像和脚本

 

不同版本 AdGuard 的兼容性

请注意,AdGuard 在不同平台上确定内容类型的方式存在很大差异。对于浏览器扩展,每个请求的内容类型由浏览器提供。适用于 Windows、Mac 和 Android 的 AdGuard 使用以下方法:首先尝试通过文件扩展名确定请求类型。如果此阶段的请求无法被拦截,将使用服务端响应开头的 Content-Type 头部来确定类型。

内容类型修饰符示例:

  • ||example.org^$image — 对应 来自于 example.org 的所有图像
  • ||example.org^$script,stylesheet — 对应来自于 example.org 的所有脚本和样式
  • ||example.org^$~image,~script,~stylesheet — 对应来自于 example.org 除了图像、脚本和样式的所有请求
image

该规则对应于对图像的请求

stylesheet

该规则对应于对 CSS 文件请求

script

该规则对应于对脚本请求(例如 JavaScript、VBscript)

object

该规则对应于浏览器插件资源(例如 Java、Flash)

object-subrequest

该规则对应于对浏览器插件的请求(通常是 Flash)

不同版本 AdGuard 的兼容性

适用于 Windows、MacOS 和 Android 的 AdGuard 通常无法准确确定这种类型,并将其定义为其他类型。

font

该规则对应于对字体请求(例如.woff 文件扩展名)

media

该规则对应于对媒体文件请求(音乐和视频,例如.mp4 文件)

subdocument

该规则对应于对内置页面的请求(HTML 标签 frameiframe

ping

该规则对应于由 navigator.sendBeacon() 或链接上的 ping 属性引起的请求

不同版本 AdGuard 的兼容性

此修饰符仅在 AdGuard 浏览器扩展中受支持

xmlhttprequest

该规则仅适用于 Ajax 请求(通过 javascript 对象 XMLHttpRequest 发送的请求)

不同版本 AdGuard 的兼容性

适用于 Windows、MacOS 和 Android 的 AdGuard 通常无法准确确定此类型,并将其定义为 otherscript

websocket

该规则仅适用于 WebSocket 连接

other

该规则适用于尚未确定类型或与上面列出的类型不匹配的请求

排除修饰符

排除规则对应于禁止其它基本规则,他们以 @@标记,上面列出的所有基本修饰符都可以应用于它们,它们也有一些特殊的修饰符。

视觉表现

我们建议您熟悉本文,以便更好地理解如何制定例外规则。

elemhide

禁用页面上与规则匹配的任何修饰规则,您将进一步找到有关修修饰规则的信息

elemhide 示例:

  • @@||example.com^$elemhide — 在 example.com 及其所有子域名的页面禁用所有修饰规则
content

禁用页面上与规则匹配的 HTML 过滤规则,您将进一步找到有关 HTML 过滤规则的信息

content 示例:

  • @@||example.com^$content — 在 example.com 及其所有子域名的页面禁用所有 HTML 过滤规则
jsinject

禁止将 javascript 代码添加到页面。您可以进一步阅读有关 javascript 规则的内容

jsinject 示例:

  • @@||example.com^$jsinject — 在 example.com 及其所有子域名的页面禁用 JavaScript
urlblock

禁用拦截从与规则匹配的页面发送的所有请求

urlblock 示例:

  • @@||example.com^$urlblock — 从 example.com 及其所有子域页面发送的任何请求都不会被拦截。
extension

禁用与此规则匹配的页面上的所有用户脚本

extension 示例:

  • @@||example.com^$extension — 在网站 example.com 的任何界面,用户的脚本都不会起作用
ducument

完全禁用页面上的拦截,相当于同时使用 elemhidecontenturlblockjsinjectextension

document 示例:

  • @@||example.com^$document — 在 example.com 及其所有子域名的所有页面完全禁用拦截
  • @@||example.com^$document,~extension — 在 example.com 及其所有子域名的所有页面完全禁用拦截,但是会继续运行用户脚本
stealth

禁用所有相应页面和请求的隐藏模式

不同版本 AdGuard 的兼容性

隐形模式目前在用于 Windows 的 AdGuard、用于 Mac 的 AdGuard 和用于 Android 的 AdGuard 中可用。我们计划将来把它添加到我们所有的产品中。目前,不支持隐形模式的产品将忽略带有此修饰符的规则。

stealth 示例:

  • @@||example.com^$stealth — 禁用 example.com 及其所有子域名的所有页面的 Stealth Mode ,也包括所有请求和子请求
Generic rules

在我们继续下一个修饰符之前,我们必须定义通用规则。如果该规则不限于特定的域,则该规则是通用的

例如,这些规则是通用的:


  • ###banner
  • ~domain.com###banner
  • ||domain.com^
  • ||domain.com^$domain=~example.com

并且这些规则是不通用的:


  • domain.com###banner
  • ||domain.com^$domain=example.com

generichide

在排除规则中禁用页面所有的通用修饰规则

  • @@||example.com^generichide — 在 example.com 及其所有子域名的所有页面禁用通用的修饰规则
genericblock

在排除规则中禁用页面所有的通用基础规则

  • @@||example.com^$genericblock — 在 example.com 及其所有子域名的所有页面禁用通用的基础规则

进阶修饰符

这些修饰符能够完全改变基本规则的行为

important

应用于规则的 $important 修饰符提高了规则的优先级,,胜过没有 $important 修饰符的任何其他规则,甚至超过了基本的排除规则

示例 1:


  • ||example.org^$important
  • @@||example.org^

||example.org^$important 将会拦截所有请求,尽管有排除规则

示例 2:


  • ||example.org^$important
  • @@||example.org^$important

现在排除规则也有 $important 修饰符,所以它将占上风

示例 3:

如果对文档排除规则应用了 document 修饰符,那么 $important 修饰符将会被忽略


  • ||example.org^$important
  • @@||test.org^$document

如果从 test.org 域发送了对 example.org 的请求,那么尽管该规则有 $important 修饰符,但是它将不会被应用

badfilter

不同版本 AdGuard 的兼容性

badfilter 修饰符当前仅在 AdGuard 浏览器扩展中可用。它将在稍后添加到其他 AdGuard 产品中。

带有 badfilter 修饰符的规则禁用它们所引用的其他基本规则。这意味着禁用规则的文本应该与 badfilter 规则的文本匹配 (不带 badfilter 修饰符)。

badfilter 示例:

  • ||example.com$badfilter 禁用 ||example.com
  • ||example.com$image,badfilter 禁用 ||example.com,image
  • @@||example.com$badfilter 禁用 @@||example.com
  • ||example.com$domain=domain.com,badfilter 禁用 ||example.com$domain=domain.com

不同版本 AdGuard 的兼容性

本节中的以下修饰符仅在适用于 Windows、MacOS 和 Android 的 AdGuard 中可用。浏览器扩展功能受到浏览器本身的限制,有些方法对它们是不可用的。

empty

通常,被拦截的请求在浏览器中看起来像是服务器错误。如果您使用 empty 修饰符,AdGuard 将模拟来自服务器的空响应,状态为 200 OK

empty 示例:

  • ||example.org^$empty — 对来自 example.org 及其所有子域名的所有请求返回一个空响应
mp4

作为一个对被拦截请求的响应,AdGuard 返回一个短视频占位符

mp4 示例:

  • ||example.com/videos/$mp4 — 拦截从 ||example.com/videos/* 的视频下载,并改变响应为一个视频占位符
replace

此修饰符完全更改了规则行为。如果应用了该规则,该规则将不会阻止该请求。相反,响应将被修改。

请注意

您需要一些正则表达式的知识才能使用此修饰符

不同版本 AdGuard 的兼容性

规则受适用于 Windows、Mac、Android 的 AdGuard 和 AdGuard 的 Firefox 插件支持
这种类型的规则在其他浏览器的扩展中不起作用,因为它们不能修改网络级别的内容

$replace 规则特性

  • $replace 规则适用于任何文本响应,但不适用于二进制 (mediaimageobject 等)
  • 如果原始响应的大小超过 3MB,则不适用 $replace 规则
  • $replace 规则优先于其他基础规则 (包括排除规则)。因此,如果一个请求对应两个不同的规则,其中一个规则带有 $replace 修饰符,则会应用此规则。
  • 带有 $content$document 修饰符的文档级排除规则会对匹配的请求禁用 $replace 规则
  • 其他文档级排除规则 ($generichide$elemhide$jsject 修饰符) 与 $replace 规则一起应用。这意味着您可以使用 $replace 规则修改页面内容,同时关闭页面中的修饰规则。

排除规则情况下,$replace 值可以为空。有关详细信息,请参阅示例部分。

匹配单个请求的多个规则

如果有多条 $replace 规则匹配一个请求,我们会逐条应用。顺序按字母顺序定义

$replace 语法

一般来说,$replace 语法类似于在 Perl 中用正则表达式替换


  • replace = “/” regex “/” replacement “/” modifiers

  • regex — 正则表达式
  • replacement — 将用于替换与 regex 对应的字符串的字符串
  • modifiers — 正则表达式标志。例如,i– 不敏感搜索,或者 s– 单行模式。

$replace 值中,必须转义两个字符:逗号 ,$。使用 \ 来转义它。例如,转义逗号如下所示:\,

$replace 示例:


  • ||example.org^$replace=/(<VAST[\s\S]*?>)[\s\S]*<\/VAST>/\$1<\/VAST>/

在这条规则中有三部分:

  • 正则表达式:(<VAST(.|\s)*?>)(.|\s)*<\/VAST>
  • 代替者:\$1<\/VAST> (请注意,$ 已经被转义了)
  • 正则表达式标志: i (不敏感搜索)

你可以在这里了解这些规则 如何运作

多个 $replace 规则示例:

  1. ||example.org^$replace=/X/Y/
  2. ||example.org^$replace=/Z/Y/
  3. @@||example.org/page/*$replace=/Z/Y/
  • 规则 1 和规则 2 都适用于发送到 example.org 的所有请求
  • 规则 3 禁用匹配 ||example.org/page/ 的请求,但是规则 1 仍然有效

禁用 $replace 规则示例:

  • @@||example.org^$replace 将会禁用所有匹配到 ||example.org^$replace 规则
  • @@||example.org^$document@@||example.org^$content 将会禁用所有的来自于 example.org 页面的 $replace 规则,包括页面本身
csp

此修饰符完全更改了规则行为。如果将其应用于规则,则不会拦截匹配到的请求。相反,响应头将被修改。

为了使用这种类型的规则,需要对 Content Security Policy 安全层有基本的了解。

对于与 $csp 规则匹配的请求,我们将通过添加与 $csp 修饰符内容相等的附加内容安全策略来加强响应的安全策略。$csp 规则独立于任何其他规则类型应用。除文档级排除规则外,其他基本规则对其没有影响 (请参阅示例部分)

匹配单个请求的多个规则。
如果多个 $csp 规则与单个请求匹配,我们将分别应用它们。

csp 语法

$csp 值语法类似于 Content Security Policy 头语法

在排除规则的情况下,$csp 的值可以为空。有关详细信息,请参阅示例部分

局限性

  1. 请注意,在 $csp 值中有几个禁止使用的字符: ,$
  2. $csp 规则支持限定的修饰符列表: domain, important, subdocument
  3. 带有 report-* 指令的规则视为无效

csp 示例:

  • ||example.org^$csp=frame-src 'none' — 禁止 example.org 及其子域的所有 frame
  • @@||example.org/page/*$csp=frame-src 'none' — 在与规则模式匹配的所有页面上禁用 $csp 修饰符完全匹配 frame-src‘NONE’的所有规则。例如,上面的规则。
  • @@||example.org/page/*$csp — disables all the $csp rules on all the pages matching the rule pattern.
  • ||example.org^$csp=script-src 'self' 'unsafe-eval' http: https: — disables inline scripts on all the pages matching the rule pattern.
  • @@||example.org^$document@@||example.org^$urlblock — 禁用匹配规则模式的所有页面上的所有 $csp 规则。
cookie

$cookie 修饰符完全改变了规则行为。这个修饰符不会拦截请求,而是让我们隐藏或修改 CookieSet-Cookie 头部。

匹配单个请求的多个规则

如果有多条 $cookie 规则匹配一个请求,我们会逐条应用。

$cookie 语法:

规则语法取决于我们是要拦截所有 Cookie 还是删除单个 Cookie。可以使用 maxAgesameSite 修饰符更改规则行为。

  • ||example.org^$cookie=NAME;maxAge=3600;sameSite=lax — AdGuard 每次在对 example.org 的请求中遇到名为 NAME 的 cookie 时,都会执行以下操作:
    • 将过期日期设置为当前时间加 3600
    • 使 Cookie 使用 Same-Site 的” 宽松 “策略
  • ||example.org^$cookie — 拦截 example.org 设置的所有 cookie,这相当于将 maxAge 设置为零
  • ||example.org^$cookie=NAME — 拦截名为 NAME 的单个 Cookie
  • ||example.org^$cookie=/regular_expression/ — 拦截与给定正则表达式匹配的每个 Cookie

重要提示:如果是正则表达式匹配,必须转义逗号 ,$ 两个字符。请使用 \。例如,转义逗号如下所示:\,

$cookie 规则不受常规排除规则 @@的影响,除非是 $document 排除。要禁用 $cookie 规则,排除规则还需要有 $cookie 修饰符。它是这样运作的:

  • @@||example.org^$cookie — 取消拦截由 example.org 设置的所有 Cookie
  • @@||example.org^$cookie=NAME — 取消拦截名为 Name 的单个 Cookie
  • @@||example.org^$cookie=/regular_expression/ — 取消拦截与给定正则表达式匹配的每个 Cookie

局限性

$cookie 规则支持限定的修饰符列表:domain~domainimportantthird-party~third-party

现实生活中的示例:

  • $cookie=__cfduid — 到处拦截 CloudFlare 的 Cookie
  • $cookie=/__utm[a-z]/ — 到处拦截 Google Analytics 的 Cookie
  • ||facebook.com^$third-party,cookie=c_user — 阻止 Facebook 跟踪您,即使您已登录
network

这基本上是一种防火墙类型的规则,允许完全拦截或解除拦截对指定远程地址的访问。

不同版本 AdGuard 的兼容性

从技术上讲,只有 Windows、Mac 和 Android 版的 AdGuard 才能使用这种类型的规则。

  1. $network 规则仅匹配 IP 地址!您不能使用它来拦截或解除拦截对域的访问。
  2. 要匹配 IPv6 地址,必须使用折迭的语法,例如使用 [2001:4860:4860::8888]$network 代替 [2001:4860:4860:0:0:0:0:8888]$network
  3. 白名单 $network 规则使 AdGuard 将数据绕过到匹配的端点,例如,根本不会有进一步的过滤。

network 示例:

  • 174.129.166.49:3478^$network — 阻止访问 174.129.166.49:3478 (但不阻止访问 174.129.166.49:34788)
  • [2001:4860:4860::8888]:443^$network — 阻止访问 [2001:4860:4860::8888]:443.
  • 174.129.166.49$network — 阻止访问 174.129.166.49:*.
  • @@174.129.166.49$network — 使 AdGuard 将数据绕过端点。不会应用任何其他规则。
app

此修饰符允许您将规则覆盖范围缩小到特定应用程序 (或应用程序列表)。这在 Windows 和 Mac 上可能不太重要,但在手机上非常重要,其中一些过滤规则必须是特定于应用程序的。

  • Android — 使用 APP 的包名 (例如 org.example.app)
  • Windows — 使用进程名称 (例如 chrome.exe)
  • Mac — 使用进程名称 (例如 firefox-bin).

app 示例:

  • ||baddomain.com^$app=org.example.app — 屏蔽来自 com.adGud.androidAndroid APP 中与指定地址匹配的请求的规则
  • ||baddomain.com^$app=org.example.app1|org.example.app2 — 规则相同,但 org.example.app1org.example.app2 应用都适用。

如果希望规则不应用于某些应用程序,请以 ~ 符号应用程序名称的开头

app~ 示例:

  • ||baddomain.com^$app=~org.example.app — 屏蔽除 org.example.app 外,从任何 APP 发送的与指定地址匹配的请求的规则则,||baddomain.com^$domain=~org.example.app1|~org.example.app2 — 同上,但现在排除了 org.example.app1org.example.app2 两个 APP

修饰规则

顾名思义,修饰规则不是用来阻止广告请求的,而是用来改变页面外观的。它们可以隐藏元素,甚至可以转换页面的整体样式。

使用修饰规则需要 HTML 和 CSS 的基本知识。因此,如果您想了解如何制定这样的规则,我们建议您熟悉本文档

元素隐藏规则

元素隐藏规则用于隐藏网页中的元素,类似于对选中的元素应用 {display:None;} 样式。

元素隐藏规则语法


  • rule = [domains] “##” selector
  • domains = [domain0, domain1[, …[, domainN]]]

  • selectorCSS 选择器,定义要隐藏的元素。
  • domains — 规则的域限制

如果要将规则应用区域限制为某些域,只需输入它们,用逗号分隔即可。例如:example.org,example.com##selector

需要注意的是,该规则同样适用于 example.orgexample.com 的所有子域名。

如果您不想将规则应用于某些域名,请使用 ~ 符号作为域名的开头。例如:~example.org##selector.

您可以在单个规则中使用这两种方法。例如 example.org,~subdomain.example.org##domain 将会在 example.org 及其所有子域运作,除了 subdomain.example.org.

请注意

元素隐藏规则彼此不依赖。如果过滤器中有 example.org##selector 规则,并且您添加了 ~example.org##selector,则这两个规则将独立应用。

元素隐藏规则示例

  • example.com##.textad — 在 example.com 及其所有子域中隐藏 class 名为 textaddiv 元素
  • example.com,example.org###adblock – hides an element with attribute id equals adblock at example.com, example.org and all subdomains.
  • ~example.com##.textad — 在除 example.com 及其所有子域外的所有域名中隐藏 class 名为 textaddiv 元素

元素隐藏规则例外

Exceptions 可以禁用特定域上的某些规则。它们与通常的排除规则非常相似,但是您必须使用#@#而不是##

例如,过滤器中有一条规则:


  • ##.textad

如果你想对 example.com 禁用,你可以创建排除规则:


  • example.com#@#.textad

我们建议仅在无法更改隐藏规则本身的情况下才使用此类例外。在其他情况下,最好使用域限制更改原始规则

请注意

没有任何特定域的排除规则没有意义,将被忽略

修饰 CSS 规则

有时,简单地隐藏一个元素并不足以处理广告。例如,阻止广告元素只会破坏页面布局。在这种情况下,AdGuard 可以使用比隐藏规则灵活得多的规则。使用此规则,您基本上可以向页面添加任何 CSS 样式

局限性

禁止使用导致加载任何资源的样式。基本上,这意味着您不能在样式中使用任何 <url> 类型值。

修饰 CSS 规则语法


  • rule = [domains] “#$#” selector “{“ style “}”
  • domains = [domain0, domain1[, …[, domainN]]]

  • selectorCSS 选择器,定义我们要将样式应用到的元素
  • domains — 规则的域限制
  • style — 要应用于选定元素的 CSS 样式。

修饰 CSS 规则示例


  • example.com#$#body { background-color: #333!important; }

这条规则将对 example.com 及其所有子域的 body 元素应用 back-color:#333!Important;样式

CSS 隐藏规则例外

与元素隐藏一样,有一类规则可以禁用特定域的选定 CSS 样式规则。
排除规则大同小异,只需要将 #$# 改为 #@$#即可

例如,过滤器中有一条规则:


  • #$#.textad { visibility: hidden; }

如果你想对 example.com 禁用,你可以创建排除规则:


  • example.com#@$#.textad { visibility: hidden; }

我们建议仅在无法更改 CSS 规则本身的情况下才使用此类例外。在其他情况下,最好使用域限制更改原始规则

扩展 CSS 选择器

CSS3.0 并不足以屏蔽广告。为了解决此问题,AdGuard 通过添加对新伪元素的支持来扩展 CSS 功能。为了使用扩展的 CSS 选择器,我们开发了一个单独的开源模块.

向后兼容性

在普通过滤器中,我们使用所谓的向后兼容语法。问题是,扩展的伪类可能会破坏先前版本的 AdGuard 或其他不支持扩展 CSS 的广告拦截器中的美化规则。例如,可以使用 [-ext-has=“selector”] 属性来代替伪类:has(Selector)

应用区域

扩展选择器可以在任何修饰规则中使用,无论它们是元素隐藏规则还是修饰 CSS 规则。

扩展 CSS 规则语法

不管您在规则中使用的是什么 CSS 伪类,您都可以使用特殊标记来使这些规则使用 “扩展 CSS” 引擎。建议将这些标记用于所有 “扩展 CSS” 修饰规则,以便更容易找到它们

  • #?# — 用于元素隐藏 (#@?# — 用于排除 )
  • #$?# — 用于 CSS 注入 (#@$?# — 用于排除)

扩展 CSS 规则示例:

  • example.org#?#div:has(> a[target="_blank"][rel="nofollow"]) — 此规则会拦截所有子类的链接中包含 [target="_blank"][rel="nofollow"] 属性的 div 元素,该规则仅对 example.org 及其所有子域名有效
  • example.com#$?#h3:contains(cookies) { display: none!important; } — 此规则将为所有包含 cookies 字符串的 h3 元素设置样式 display:None!Important。该规则仅对 example.com 及其所有子域名有效。
  • example.net#?#.banner:matches-css(width: 360px) — 此规则将拦截所有包含 width:360px 样式属性的.banner 元素。该规则仅对 example.net 及其所有子域名有效。
  • example.net#@?#.banner:matches-css(width: 360px) — 此规则将禁用上一规则

请注意,现在您可以使用如下规则使用 ExtCss 引擎应用简单选择器:

#?#div

伪类:has()

CSS4.0 规范草案描述了伪类:has。不幸的是,浏览器还不支持它

:has() 语法:


  • :has(selector)

向后兼容语法:


  • [-ext-has=“selector”]

支持同义词以提高兼容性::-abp-has, :if

伪类:has() 选择包含适合 selector 的元素

:has() 示例:

选择一个子元素的 classbanner 的所有 div 元素

HTML 代码


  • <div>Do not select this div</div>
  • <div>Select this div<span class=“banner”></span></div>

选择器


  • div:has(.banner)

向后兼容语法


  • div[-ext-has=“.banner”]

伪类:if-not()

这个伪类基本上是:not(:has()) 的快捷方式。ExtendedCss 支持它,以便与某些筛选器订阅更好地兼容,但不建议在 AdGuard 筛选器中使用它。其基本原理是,总有一天浏览器会添加:has 原生支持,但这永远不会发生在这个伪类上。

伪类:contains()

这个伪类原则非常简单:它允许选择包含指定文本或内容与指定正则表达式匹配的元素。需要注意的是,这个伪类使用的是 innerText 元素属性进行匹配 (而不是 innerHTML)。

:contains() 语法:


  • // 按纯文本匹配
  • :contains(text)
  • // 按正则表达式匹配
  • :contains(/regex/)

向后兼容语法:


  • // 按纯文本匹配
  • [-ext-contains=“text”]
  • // 按正则表达式匹配
  • [-ext-contains=“/regex/”]

支持的同义词以实现更好的兼容性: :-abp-contains, :has-text.

:contains() 示例:

选择所有包含 banner 文本的 div 元素

HTML 代码:


  • <div>Do not select this div</div>
  • <div id=“selected”>Select this div (banner)</div>
  • <div>Do not select this div <div class=“banner”></div></div>

选择器:


  • // 按纯文本匹配
  • div:contains(banner)
  • // 按正则表达式匹配
  • div:contains(/this .* banner/)

向后兼容语法:


  • // 按纯文本匹配
  • div[-ext-contains=“banner”]
  • // 按正则表达式匹配
  • div[-ext-contains=“/this .* banner/”]

需要注意的是,本例中只会选择 id=selecteddiv,因为下一个元素不包含任何文本 (banner 是代码的一部分,不是文本)

伪类:matches-css()

这些伪类允许根据元素的当前样式属性选择元素。这个伪类的工作基于使用 window.getComputedStyle函数

:matches-css() 语法:


  • /* 元素样式匹配 */
  • selector:matches-css(property-name:” pattern)
  • /* ::before伪类元素样式匹配 */
  • selector:matches-css-before(property-name:” pattern)
  • /* ::after伪类元素样式匹配 */
  • selector:matches-css-after(property-name:” pattern)

向后兼容语法


  • selector[-ext-matches-css=“property-name “:” pattern”]
  • selector[-ext-matches-css-after=“property-name “:” pattern”]
  • selector[-ext-matches-css-before=“property-name “:” pattern”]

property-name

要检查元素的 CSS 属性的名称

pattern

这可以是使用与基本 URL 过滤规则中相同的简单通配符匹配的值模式,也可以是正则表达式。对于这种类型的匹配,AdGuard 始终以不区分大小写的方式进行匹配。

对于正则表达式,模式类似于 /regex/

  • 对于非正则表达式模式,, 必须未转义,因为我们要求在过滤规则中对它们进行转义。
  • 对于正则表达式模式,应该转义 ",\ 因为我们手动转义 Extended-css-selector.js 中的那些。

:matches-css() 示例:

选择所有::before 伪类包含指定内容的 div 元素

HTML 代码:


  • <style type=“text/css”>
  • #to-be-blocked::before {
  • content: “Block me”
  • }
  • </style>
  • <div id=“to-be-blocked” class=“banner”></div>
  • <div id=“not-to-be-blocked” class=“banner”></div>

选择器:


  • // 简单匹配
  • div.banner:matches-css-before(content: block me)
  • // 正则匹配
  • div.banner:matches-css-before(content: /block me/)

向后兼容语法:


  • // 简单匹配
  • div.banner[-ext-matches-css-before=“content: block me”]
  • // 正则匹配
  • div.banner[-ext-matches-css-before=“content: /block me/”]

选择器调试模式

有时,您可能需要检查给定选择器或样式表的性能。为了不与 javascript 直接交互,可以使用特殊的 debug 样式属性。当 ExtendedCss 满足此属性时,将根据 debug 值为单个选择器或所有选择器启用 debug 模式。

调试单个选择器


  • #$#.banner { display: none; debug: true; }

启用全局调试


  • #$#.banner { display: none; debug: global; }

测试扩展选择器

要将 ExtendedCss 加载到当前页,请在浏览器控制台中复制并执行以下代码:


  • !function(E,x,t,C,s,s_){C=E.createElement(x),s=E.getElementsByTagName(x)[0],C.src=t,
  • C.onload=function(){alert(‘ExtCss loaded successfully’)},s.parentNode.insertBefore(C,s)}
  • (document,‘script’,‘https://AdguardTeam.github.io/ExtendedCss/extended-css.min.js’)

或者,安装 “ExtendedCssDebugger” 用户脚本:点击访问

现在可以在全局范围内使用 ExtendedCss 构造函数,其方法 ExtendedCss.query 作为 document ent.querySelectorAll


  • var selectorText = “div.block[-ext-has=’.header:matches-css-after(content: Anzeige)’]”;
  • ExtendedCss.query(selectorText) // 返回与selectorText匹配的元素数组

HTML 过滤规则

在大多数情况下,基础规则和修饰规则足以过滤广告。但有时需要在加载页面之前更改页面本身的 HTML 代码。这时候您需要 HTML 内容过滤规则。它们允许在浏览器加载页面之前指定要剪切的 HTML 元素

 

不同版本 AdGuard 兼容性

规则受适用于 Windows、Mac、Android 的 AdGuard 和 AdGuard 的 Firefox 插件支持。
这种类型的规则在其他浏览器的扩展中不起作用,因为它们不能修改网络级别的内容

HTML 过滤规则语法


  • rule = [domains] “$$” tagName [attributes]
  • domains = [domain0, domain1[, …[, domainN]]]
  • attributes = “[“ name0 = value0 “]” “[“ name1 = value2 “]”“[“ nameN = valueN “]”

  • tagName — 元素的小写名称,例如 divscript
  • domains — 规则中的域限制 ,与元素隐藏规则语法相似的原则
  • attributes — 限制元素选择的属性列表。name– 属性名称,value– 子字符串,这些包含在属性值中

HTML 过滤规则示例

HTML 代码


  • <script data-src=“/banner.js”></script>

规则


  • example.org$$script[data-src=“banner”]

该规则将删除所有具有 data-src 属性且包含 banner 子串的 script 元素。该规则仅对 example.org 及其所有子域名有效

特殊属性

除了通常的属性 (值为检查的每个元素) 外,还有一组特殊属性可以更改规则的工作方式。下面是这些属性的列表:

tag-content

这是最常用的特殊属性。它限制选择 innerHTML 代码包含指定子字符串的元素

例如,让我们看一下这段 HTML 代码:


  • <script type=“text/javascript”>
  • document.write(‘<div>banner text</div>” />’);
  • </script>

以下规则将删除代码中所有带有 banner 子字符串的 script 元素:


  • $$script[tag-content=“banner”]

 

嵌套元素

如果我们要处理多个嵌套元素,并且它们都属于相同的 HTML 过滤规则,则它们都将被删除

wildcard

这个特殊属性的作用类似于 tag-content,允许您检查文档的 innerHTML 代码。规则将检查元素的 Html 代码是否适合 Search pattern)

示例:


  • $$script[wildcard=“*banner*text*”]

它将检查元素的代码是否包含两个连续的子字符串 bannertext

max-length

指定 HTML 元素内容的最大长度。如果设置了此参数,并且内容长度超过该值,则规则不适用于元素

默认设定

如果不指定该参数,则认为 max-Length 为 8192。

示例:


  • $$div[tag-content=”banner”][max-length=”400″]

此规则将删除代码包含子 banner 且长度不超过 400 个字符的所有 div 元素

min-length

指定 HTML 元素内容的最小长度。如果设置了此参数,并且内容长度小于预设值 – 则规则不适用于元素

示例:


  • $$div[tag-content=”banner”][min-length=”400″]

此规则将删除代码包含子 banner 且长度超过 400 个字符的所有 div 元素

HTML 排除过滤规则

与隐藏规则类似,有一种特殊类型的规则可以禁用特定域的选定 HTML 过滤规则
语法相同,只需将 $$ 改为 $@$ 即可。

例如,过滤器中有一条规则:


  • $$script[tag-content=“banner”]

如果你想在 example.com 禁用它,可以创建排除规则:


  • example.com$@$script[tag-content=“banner”]

JavaScript 规则

AdGuard 支持一种特殊类型的规则,允许您将任何 javascript 代码注入网站页面。

限制

请注意,此类规则仅适用于可信过滤器。此类别包括您自己的用户筛选器和 AdGuard 团队创建的所有筛选器。

JavaScript 规则语法


  • rule = [domains] “#%#” script

  • domains — 规则的域限制 ,与元素隐藏规则类似
  • script — 任意 javascript 代码在一个字符串中

JavaScript 规则示例

  • example.org#%#window.__gaq = undefined; — 在 example.org 和所有子域的所有页面上执行代码 window.__gaq=unfined;

JavaScript 排除规则

与隐藏规则类似,有一种特殊类型的规则可以禁用特定域的选定 javascript 规则
语法相同,只需将#%#改为#@%#即可

例如,过滤器中有一条规则:


  • #%#window.__gaq = undefined;

如果你想在 example.com 禁用它,可以创建排除规则:


  • example.com#@%#window.__gaq = undefined;

过滤器维护人员的信息

如果您维护 AdGuard 已知的第三方筛选器,您可能会对本节中提供的信息感兴趣。请注意,提示将仅应用于已注册的筛选器。如果该筛选器存在于已知筛选器索引中,则认为该筛选器已由 AdGuard 注册和识别。如果您希望注册您的筛选器,请将问题提交给 AdGuardFilters repo

预处理指令

我们提供多个预处理器指令,过滤器维护人员可以使用这些指令来提高与不同广告拦截器的兼容性

语法


  • !#if condition
  • Anything goes here
  • !#include URL_or_a_relative_path
  • !#endif

  • !#if, !#endif — 过滤器维护人员可以使用这些条件根据广告拦截器类型提供不同的规则
  • condition — 就像在一些流行的编程语言中一样,预处理条件基于广告拦截器声明的常量。广告拦截器作者自己定义他们声明的确切常量
  • !#include — 此指令允许将指定文件的内容包括到筛选器中

条件判断

当广告拦截器遇到 !#if 指令,最后是 !#endif 指令时,只有在指定的条件为真时,它才会编译指令之间的代码。条件判断支持所有基本逻辑运算符。

示例:


  • !#if (adguard && !adguard_ext_safari)
  • ||example.org^$third-party
  • !#endif

引入一个文件

!#include 指令只支持来自同一来源的文件,以确保过滤器维护程序控制指定的文件。包含的文件还可以包含预处理器指令 (甚至其他 !#include 指令)

广告拦截器应考虑递归 !#include 的情况,并实现保护机制。

示例

过滤器 URL: https://example.org/path/filter.txt


  • !
  • ! 有效的 (相同来源):
  • !#include https://example.org/path/includedfile.txt
  • !
  • ! 有效的 (相对路径):
  • !#include /includedfile.txt
  • !#include ../path2/includedfile.txt
  • !
  • ! 无效的 (其他来源):
  • !#include https://example.com/path/includedfile.txt

备注

  • 如果未找到引入的文件或该文件不可用,则整个过滤器更新会失败
  • !#if 指令开头的条件指令必须以 !#endif 指令显式终止
  • 空格很重要, !#if 是有效的指令, 而 !# if 不是

特定于管理员的

  • 预处理器指令中的任何错误都将导致 AdGuard 无法执行过滤器更新,就像过滤器 URL 不可用一样
  • 预处理器指令可以在用户过滤器 (或自定义本地过滤器) 中使用,应为本地过滤器禁用同源限制

我们要声明哪些常量

  • adguard — 声明总是如此,让维护人员知道这是 AdGuard 产品之一,在 95% 的情况下应该足够了。

当您只需要某个规则在特定产品中工作 (或不工作) 时,某些极少数情况下的特定于产品的常量:

  • adguard_app_windows — AG for Windows
  • adguard_app_mac — AG for Mac
  • adguard_app_android — AG for Android
  • adguard_app_ios — AG for iOS
  • adguard_ext_chromium — AG browser extension for Chrome
  • adguard_ext_firefox — AG browser extension for Firefox
  • adguard_ext_edge — AG browser extension for Edge
  • adguard_ext_safari — AG browser extension for Safari
  • adguard_ext_opera — AG browser extension for Opera
  • adguard_ext_android_cb — AG content blocker for Samsung/Yandex

特殊情况:ext_ublock。此常量是在 FiltersRegistry,编译过滤器的 uBlock 版本时声明的

提示

“提示” 是对服务器端使用的过滤器编译器的特殊注释和指令 (请参阅 FiltersRegistry)

提示语法


  • !+ HINT_NAME1(PARAMS) HINT_NAME2(PARAMS)

请注意,您可以应用多个提示

禁止优化提示

对于大型过滤器,AdGuard 编译了两个版本:完全版和优化版。优化版本要小得多,并且不包含根本不使用或很少使用的规则。有关规则优化的更多信息,您可以在这篇文章.] 中找到

英语过滤器的优化版本示例: 点击访问

示例:

此规则将不会优化:


  • !+ NOT_OPTIMIZED
  • ||example.org^

此规则不会进行优化,仅适用于 Android:


  • !+ NOT_OPTIMIZED PLATFORM(android)
  • ||example.org^

PLATFORM 和 NOT_PLATFORM 提示

指定哪些平台可以应用此规则。现有平台列表:

  • windows – 示例:Windows 的英语筛选器 – 点击访问
  • mac – 示例:Mac 的英语过滤器 – 点击访问
  • android – 示例:Android 英语过滤器 – 点击访问
  • ios – 示例:iOS 的英语过滤器 – 点击访问
  • ext_chromium – 示例:适用于 Chrome 的 AdGuard 浏览器扩展 – 点击访问
  • ext_ff – 示例:适用于 Firefox 的 AdGuard 浏览器扩展 – 点击访问
  • ext_edge – 示例:适用于 Edge 的 AdGuard 浏览器扩展 – 点击访问
  • ext_opera – 示例:适用于 Opera 的 AdGuard 浏览器扩展 – 点击访问
  • ext_ublock – 示例:uBlock 源 – 点击访问
  • ext_safari – 示例:适用于 Safari 的 AdGuard 浏览器扩展 – 点击访问
  • ext_android_cb – 示例:AdGuard 内容阻止程序 – 点击访问

示例:

此规则仅适用于 Windows、Mac 和 Android:


  • !+ PLATFORM(windows,mac,android)
  • ||example.org^

此规则将适用于除 Safari 扩展、iOS 和 Android 内容阻止程序之外的所有平台:


  • !+ NOT_PLATFORM(ext_safari, ext_android_cb, ios)
  • ||example.org^

祝您在创建过滤器时好运!

我们祝您好运,创建您自己的广告过滤器。

如果您需要关于如何正确创建您自己的过滤器的建议,我们的论坛有一个专门的部分介绍如何编写您自己的过滤规则。

 

赞(0)
分享到: 更多 (0)

评论 261

评论前必须登录!

 

  1. #1

    http://buysildenshop.com/ – viagra email sign up

    Jaliash3年前 (2021-08-27)
  2. #2

    https://buypropeciaon.com/ – buy propecia 1 mg online safely

    AMATHYMOK3年前 (2021-08-28)
  3. #3

    Viagra Experiencias

  4. #4

    Viagra

    Raininc3年前 (2021-08-30)
  5. #5

    http://buytadalafshop.com/ – buy cialis professional

    LoyakyHaW3年前 (2021-08-31)
  6. #6

    Levitra Scaduto Fa Male

    real viagra3年前 (2021-08-31)
  7. #7

    propecia medication

    abediaHit3年前 (2021-09-05)
  8. #8

    Stromectol

    Poisype3年前 (2021-09-05)
  9. #9

    http://buystromectolon.com/ – ivermectin dosage for dogs

    Cachego3年前 (2021-09-06)
  10. #10

    Cialis

    Annekly3年前 (2021-09-06)
  11. #11

    Lioresal Acheter En France

  12. #12

    http://buyzithromaxinf.com/ – Zithromax

    pymneffex3年前 (2021-09-15)
  13. #13

    http://buylasixshop.com/ – furosemide nursing considerations

    Nenerroni3年前 (2021-09-16)
  14. #14

    Best Life Rx

  15. #15

    https://buyplaquenilcv.com/ – Plaquenil

    swignee3年前 (2021-09-17)
  16. #16

    Zithromax

    grepego3年前 (2021-09-19)
  17. #17

    Lasix

    impobby3年前 (2021-09-19)
  18. #18

    priligy tablet

    griekly3年前 (2021-09-20)
  19. #19

    Prednisone Without A Scrip

    Lasix3年前 (2021-09-20)
  20. #20

    Plaquenil

    impopsy3年前 (2021-09-21)
  21. #21

    https://buypriligyhop.com/ – Priligy

    Retathort3年前 (2021-09-21)
  22. #22

    viagra es bueno

  23. #23

    Propecia Liver Damage

    priligy3年前 (2021-09-25)
  24. #24

    2064 prednisone for sale

    Scabedo3年前 (2021-10-05)
  25. #25

    Generic Overnight Hydrochlorothiazide Medicine Online

    Neurontine3年前 (2021-10-06)
  26. #26

    Online Deltasone Buy

    Prednisone3年前 (2021-10-07)
  27. #27
  28. #28
  29. #29

    What’s up, everything is going well here and ofcourse every one is sharing information, that’s genuinely fine, keep up writing.|

  30. #30

    Hurrah, that’s what I was seeking for, what a data! existing here at this website, thanks admin of this web page.|

    Victor Casazza2年前 (2021-10-25)
  31. #31

    Howdy this is somewhat of off topic but I was wanting to know if blogs use WYSIWYG editors or if you have to manually code with HTML. I’m starting a blog soon but have no coding experience so I wanted to get advice from someone with experience. Any help would be enormously appreciated!|

    Elba Bonetto2年前 (2021-10-26)
  32. #32

    I’m not sure exactly why but this weblog is loading incredibly slow for me. Is anyone else having this problem or is it a problem on my end? I’ll check back later on and see if the problem still exists.|

  33. #33

    Wonderful article! This is the kind of info that should be shared around the internet. Shame on the seek engines for not positioning this submit higher! Come on over and visit my website . Thank you =)|

    Jame Crosten2年前 (2021-10-27)
  34. #34

    Cialis Dosaggio 20 Mg

  35. #35

    Rash On Amoxicillin

  36. #36

    Every weekend i used to pay a quick visit this web page, because i want enjoyment, for the reason that this this web site conations really nice funny stuff too.|

  37. #37

    Drugs For Sale Without Prescription

    Cialis2年前 (2021-10-31)
  38. #38

    It’s wonderful that you are getting ideas from this paragraph as well as from our dialogue made at this time.|

    Chante Stauder2年前 (2021-10-31)
  39. #39

    I am regular reader, how are you everybody? This post posted at this web page is in fact nice.|

    Marlyn Lerman2年前 (2021-11-01)
  40. #40

    Cialis

    moulutt2年前 (2021-11-01)
  41. #41
  42. #42

    Viagra

    aftesse2年前 (2021-11-02)
  43. #43

    oral medication for scabies

    BulpFulse2年前 (2021-11-03)
  44. #44

    Propecia

    SmerarBum2年前 (2021-11-03)
  45. #45

    cialis for performance anxiety

    Viagra2年前 (2021-11-03)
  46. #46

    viagra effect

    Accense2年前 (2021-11-04)
  47. #47
  48. #48

    cialis 60 mg

    Propecia2年前 (2021-11-05)
  49. #49

    priligy dapoxetine buy

    symnNeono2年前 (2021-11-07)
  50. #50

    cheap cialis daily

  51. #51

    Order Medstore

    Lasix2年前 (2021-11-11)
  52. #52

    Prednisone

    turneli2年前 (2021-11-11)
  53. #53

    Cialis Caracteristicas

  54. #54

    cialis efectos

    Priligy2年前 (2021-11-13)
  55. #55

    whoah this blog is fantastic i like studying your posts. Keep up the great work! You recognize, many people are hunting around for this info, you could help them greatly. |

    Nickolas Busch2年前 (2021-12-18)
  56. #56

    It is the best time to make some plans for the future and it is time to be happy. I have read this post and if I could I want to suggest you few interesting things or tips. Maybe you can write next articles referring to this article. I wish to read even more things about it!|

  57. #57

    Non Prescription Paxil On Line

    order zithromax2年前 (2021-12-18)
  58. #58

    viagra ring

    Phydaywew2年前 (2021-12-19)
  59. #59

    I just could not leave your web site prior to suggesting that I extremely loved the standard info an individual supply to your guests? Is gonna be back continuously to inspect new posts|

    Lucien Lauck2年前 (2021-12-19)
  60. #60

    zithromax ship to canada

    reoborb2年前 (2021-12-20)
  61. #61

    Incredible points. Outstanding arguments. Keep up the amazing effort.|

    Deandra Fripp2年前 (2021-12-21)
  62. #62

    Legally Clobetasol Mastercard Accepted

  63. #63

    propecia hair

    guettinny2年前 (2021-12-21)
  64. #64

    You actually make it seem so easy with your presentation but I find this matter to be actually something which I think I would never understand. It seems too complicated and very broad for me. I’m looking forward for your next post, I will try to get the hang of it!|

  65. #65

    Excellent blog right here! Additionally your site a lot up fast! What host are you the usage of? Can I am getting your affiliate hyperlink to your host? I desire my website loaded up as fast as yours lol|

  66. #66

    I’m amazed, I have to admit. Rarely do I come across a blog that’s equally educative and amusing, and without a doubt, you’ve hit the nail on the head. The problem is something that not enough people are speaking intelligently about. I’m very happy that I came across this during my search for something concerning this.|

  67. #67

    WOW just what I was searching for. Came here by searching for meta_keyword|

    Jerrod Murano2年前 (2021-12-25)
  68. #68

    I will immediately take hold of your rss feed as I can’t to find your email subscription hyperlink or newsletter service. Do you have any? Please let me recognise in order that I may subscribe. Thanks.|

    Cassidy Egar2年前 (2021-12-25)
  69. #69

    Thanks for finally talking about > blog_title < Loved it!|

    Rosalba Weekley2年前 (2021-12-26)
  70. #70

    Valuable info. Lucky me I found your website by accident, and I am surprised why this coincidence did not took place in advance! I bookmarked it.|

    Reinaldo Wisse2年前 (2021-12-26)
  71. #71

    Greetings from Carolina! I’m bored at work so I decided to check out your blog on my iphone during lunch break. I enjoy the information you present here and can’t wait to take a look when I get home. I’m shocked at how fast your blog loaded on my phone .. I’m not even using WIFI, just 3G .. Anyways, great blog!|

    Jerrod Grahe2年前 (2021-12-26)
  72. #72

    comprar cialis en farmacia prednisone and ibuprofen can i take viagra with cialis

    padnend2年前 (2022-01-08)
  73. #73

    compare levitra cialis viagra priligy price Levitra Bustine

    WratNenna2年前 (2022-01-09)
  74. #74

    tadalafil daily online tadalafil side effects

  75. #75

    tadalafil daily online https://extratadalafill.com/

  76. #76

    cialis without a prescription lowest price cialis

  77. #77

    prescription tadalafil online tadalafil side effects

  78. #78

    Hi there! I know this is kinda off topic but I’d figured I’d ask.
    Would you be interested in trading links or maybe guest
    authoring a blog article or vice-versa? My blog covers a lot of the same subjects as yours and I
    feel we could greatly benefit from each other. If you are interested feel free to shoot
    me an e-mail. I look forward to hearing from you!
    Fantastic blog by the way!

  79. #79

    Cialis Generico 20 Mg https://www.alevitrasp.com efectos del cialis

    swicherce2年前 (2022-01-19)
  80. #80
  81. #81

    When someone writes an paragraph he/she retains the image of a
    user in his/her mind that how a user can be aware of it. So that’s why this post
    is great. Thanks!

  82. #82
  83. #83

    cheap cialis pills for sale prescription tadalafil online

    cialis2年前 (2022-01-19)
  84. #84

    I have been surfing on-line greater than three hours these days, yet I by no
    means found any fascinating article like yours. It is pretty
    worth enough for me. In my view, if all website owners and bloggers made good content material as you
    did, the net will be a lot more helpful than ever before.

  85. #85

    Hey There. I found your blog using msn. This is a really well written article.
    I’ll be sure to bookmark it and return to read more of your useful info.
    Thanks for the post. I will certainly return.

  86. #86

    This website certainly has all the information and facts I needed about this subject and
    didn’t know who to ask.

  87. #87

    Great beat ! I would like to apprentice while you amend
    your website, how could i subscribe for a blog site?
    The account aided me a acceptable deal. I had been tiny bit acquainted
    of this your broadcast offered bright clear concept

    powiekszgo.pl2年前 (2022-01-20)
  88. #88

    I have read so many articles regarding the blogger lovers except
    this paragraph is truly a pleasant piece of writing, keep it up.

  89. #89

    You need to take part in a contest for one of the best websites on the internet.

    I’m going to recommend this web site!

  90. #90

    Outstanding post but I was wanting to know if you could write a litte more on this
    topic? I’d be very grateful if you could elaborate a little
    bit further. Kudos!

  91. #91

    Howdy! This is kind of off topic but I need some guidance from an established blog.
    Is it difficult to set up your own blog? I’m not
    very techincal but I can figure things out pretty quick.
    I’m thinking about setting up my own but I’m not sure where to
    begin. Do you have any ideas or suggestions? Appreciate it

  92. #92
  93. #93

    Hi! I could have sworn I’ve been to this blog before but after checking through some of the post I realized it’s new to me.
    Anyhow, I’m definitely glad I found it and I’ll be bookmarking and checking back often!

  94. #94

    Hi there! Would you mind if I share your blog with my zynga group?

    There’s a lot of folks that I think would really enjoy your content.
    Please let me know. Cheers

    kasinot 20222年前 (2022-01-26)
  95. #95

    Pretty nice post. I simply stumbled upon your weblog and wished to mention that I’ve truly enjoyed surfing around your blog posts.
    After all I’ll be subscribing on your rss feed and I hope you write
    again soon!

  96. #96

    Appreciate this post. Will try it out.

    article creator2年前 (2022-01-26)
  97. #97

    generic cialis tadalafil tadalafil without a doctor prescription

    Zoodyvwgx2年前 (2022-01-26)
  98. #98

    I do not even know how I ended up here, but I thought this
    post was great. I don’t know who you are but definitely you are
    going to a famous blogger if you aren’t already 😉 Cheers!

  99. #99

    Yjzelv Three key elements need to be determined events before during and after the syncopal episode. Prednisone Keflex Drug Class

    kednery2年前 (2022-01-27)
  100. #100

    Hey there! I just wanted to ask if you ever have any problems with
    hackers? My last blog (wordpress) was hacked and I ended up
    losing many months of hard work due to no back up.
    Do you have any methods to protect against hackers?

  101. #101

    tadalafil cialis tadalafil blood pressure

    Traunsevxkt2年前 (2022-01-28)
  102. #102

    https://cialisedot.com/ tadalafil liquid

    cheap cialis2年前 (2022-01-28)
  103. #103

    Thanks for the auspicious writeup. It in fact was once a leisure account it.
    Glance complex to more introduced agreeable
    from you! By the way, how could we be in contact?

  104. #104

    Ulncht Psychiatrists complete years of residency training and then extra years of fellowship training to specialize in various aspects of psychiatry. Plaquenil

    Coorcerve2年前 (2022-01-30)
  105. #105

    I really like it when folks get together and share thoughts.
    Great blog, keep it up!

  106. #106
  107. #107

    Since the admin of this site is working, no hesitation very
    soon it will be renowned, due to its feature contents.

  108. #108

    Hi, i believe that i noticed you visited my web site so
    i got here to go back the desire?.I am attempting to to
    find issues to enhance my web site!I assume its good enough to use some of your ideas!!

  109. #109

    side effects of tadalafil tadalafil generic

  110. #110

    Everything is very open with a very clear description of the issues.
    It was really informative. Your site is very helpful. Thanks for sharing!

  111. #111

    I do not know if it’s just me or if perhaps everybody else experiencing issues with your website.

    It appears as though some of the written text within your posts are running off the screen. Can someone else please comment and let me know if this is happening to them as well?
    This could be a problem with my browser because I’ve had this happen before.
    Many thanks

  112. #112

    I used to be recommended this website via my cousin. I
    am not sure whether or not this submit is written through him as
    nobody else realize such certain about my difficulty.

    You’re amazing! Thank you!

  113. #113
  114. #114

    If you are going for finest contents like I do,
    simply go to see this website everyday as it offers quality contents, thanks

  115. #115

    Appreciate the recommendation. Let me try it
    out.

  116. #116

    Right here is the perfect webpage for everyone who would like to find out about this
    topic. You realize so much its almost tough to argue with you (not
    that I actually will need to…HaHa). You certainly put a fresh spin on a topic which
    has been written about for many years. Excellent
    stuff, just excellent!

  117. #117

    It’s appropriate time to make a few plans for the future and it is time to be happy.
    I’ve learn this submit and if I could I desire to counsel
    you some fascinating issues or tips. Perhaps you could write subsequent articles
    referring to this article. I wish to read even more
    issues approximately it!

  118. #118

    Spot on with this write-up, I honestly think this site needs
    far more attention. I’ll probably be back again to see more, thanks for
    the info!

  119. #119

    https://extratadalafill.com/ tadalafil goodrx

    Zoodyeylu2年前 (2022-02-06)
  120. #120

    At this time it appears like WordPress is the preferred blogging platform
    available right now. (from what I’ve read) Is that what you are using on your blog?

  121. #121

    cialis without prescription cialis tadalafil

    cialis generic2年前 (2022-02-09)
  122. #122

    Wow that was unusual. I just wrote an really long comment but after I clicked
    submit my comment didn’t appear. Grrrr… well I’m not writing all that over again. Anyway, just wanted to say fantastic blog!

    Article Creator2年前 (2022-02-09)
  123. #123

    It’s a shame you don’t have a donate button! I’d certainly
    donate to this fantastic blog! I guess for now i’ll settle for book-marking and adding your
    RSS feed to my Google account. I look forward
    to brand new updates and will share this site with my Facebook group.
    Talk soon!

  124. #124

    Heya i’m for the primary time here. I came across this board and
    I find It truly useful & it helped me out much. I’m hoping to present
    one thing back and help others like you helped me.

  125. #125

    https://cialistrxy.com/ where to buy generic cialis online safely

    buy tadalis2年前 (2022-02-10)
  126. #126

    For most up-to-date information you have to pay a quick visit
    world-wide-web and on internet I found this web site as a
    best site for hottest updates.

  127. #127
  128. #128

    Hi, I do think this is a great site. I stumbledupon it 😉 I will revisit yet again since I book marked it.
    Money and freedom is the greatest way to change, may you be rich and continue
    to help others.

  129. #129

    Good post. I’m going through many of these
    issues as well..

    article builder2年前 (2022-02-11)
  130. #130
  131. #131

    I’d like to find out more? I’d want to find out more
    details.

  132. #132

    Hi Dear, are you in fact visiting this site regularly, if so after that
    you will without doubt get good experience.

  133. #133

    I was wondering if you ever thought of changing the layout of
    your blog? Its very well written; I love what youve got to say.
    But maybe you could a little more in the way of content so people could
    connect with it better. Youve got an awful lot of text for only having one or two
    pictures. Maybe you could space it out better?

  134. #134

    Ckqolk Temporary Side Effects Of Propecia where can i buy plaquenil in tucson az

    Coorcerve2年前 (2022-02-14)
  135. #135

    Great site you have here but I was wondering if you knew of any discussion boards
    that cover the same topics discussed here? I’d really love to be
    a part of group where I can get suggestions from other experienced individuals that share the same interest.
    If you have any recommendations, please let me know.

    Thanks!

  136. #136

    Post writing is also a fun, if you be acquainted with then you can write
    or else it is complex to write.

  137. #137

    I absolutely love your blog and find many of your post’s to be just what I’m looking for.
    can you offer guest writers to write content for you personally?
    I wouldn’t mind composing a post or elaborating on most of the subjects you write with regards to here.
    Again, awesome web log!

  138. #138

    tadalafil without a doctor prescription side effects for tadalafil

    buy cialis usa2年前 (2022-02-16)
  139. #139

    Every weekend i used to pay a visit this web site, because i wish for enjoyment,
    for the reason that this this web page conations actually fastidious funny material too.

  140. #140

    Hello it’s me, I am also visiting this web site
    daily, this site is really nice and the people are actually sharing pleasant
    thoughts.

    article creator2年前 (2022-02-17)
  141. #141

    best price usa tadalafil tadalafil cost in canada

    buy tadalafil2年前 (2022-02-18)
  142. #142

    tadalafil cost in canada cialis at canadian pharmacy

  143. #143

    I visited many web pages however the audio quality for
    audio songs existing at this web page is truly marvelous.

  144. #144

    It’s an awesome post for all the internet visitors; they will take benefit from it I am sure.

  145. #145

    great put up, very informative. I’m wondering why the other experts of this sector do not understand this.
    You must proceed your writing. I’m confident, you have a great readers’ base already!

  146. #146

    Please let me know if you’re looking for a author
    for your site. You have some really good posts and I believe I would be a good asset.

    If you ever want to take some of the load off, I’d absolutely love to write some
    articles for your blog in exchange for a link back to mine.
    Please shoot me an e-mail if interested. Thanks!

  147. #147

    what is tadalafil generic cialis tadalafil

    buy cialis2年前 (2022-02-19)
  148. #148

    Hello, I desire to subscribe for this blog
    to obtain newest updates, therefore where can i do it please
    assist.

  149. #149

    lowest price cialis cheap generic cialis for sale

    buy cialis2年前 (2022-02-24)
  150. #150

    tadalafil cost in canada prescription tadalafil online

    tadalafil drug2年前 (2022-02-26)
  151. #151

    buy tadalis prescription tadalafil online

    cialis 20 mg2年前 (2022-02-28)
  152. #152
  153. #153
  154. #154

    where to buy tadalafil on line https://cialisusdc.com/

    cialis 20 mg2年前 (2022-03-06)
  155. #155
  156. #156

    cialis tadalafil buy tadalafil

    Traunseulfo2年前 (2022-03-09)
  157. #157

    prescription tadalafil online https://cialisusdc.com/

    Traunsepzvj2年前 (2022-03-14)
  158. #158

    Do you have any video of that? I’d love to find
    out more details.

  159. #159
  160. #160

    You have made some decent points there. I looked on the net for additional information about
    the issue and found most people will go along with
    your views on this web site.

    btc betting2年前 (2022-03-19)
  161. #161

    I was able to find good information from your articles.

  162. #162

    tadalafil blood pressure tadalafil price walmart

    Zoodylswi2年前 (2022-03-22)
  163. #163
  164. #164
  165. #165

    top rated online pharmacy best drugstore bb cream

    NmioApets2年前 (2022-04-13)
  166. #166

    liquid tadalafil for sale best tadalafil

    CmmnAmict2年前 (2022-04-13)
  167. #167

    canadian pharmacy jublia rite aid pharmacy online

    KnrnQuima2年前 (2022-04-13)
  168. #168

    Aw, this was an extremely nice post. Finding the time and actual effort to generate a top notch article… but what can I say… I procrastinate a lot and never manage to
    get nearly anything done.

  169. #169

    Everything is very open with a clear clarification of the challenges.
    It was really informative. Your website is useful.

    Many thanks for sharing!

  170. #170

    Valuable info. Fortunate me I found your website unintentionally,
    and I’m surprised why this accident did not happened earlier!
    I bookmarked it.

    olej cbd2年前 (2022-04-14)
  171. #171

    36 hour cialis mg cialis20mg

    NbttApets2年前 (2022-04-14)
  172. #172

    pharmacy technician degrees online canadian pharmacy antibiotics

    AnuoLefeviame2年前 (2022-04-14)
  173. #173

    I’m very happy to discover this web site. I wanted
    to thank you for ones time due to this wonderful read!! I definitely
    liked every part of it and I have you saved to fav to check out new information on your site.

  174. #174

    levitra 20 mg street price levitra viagra best

    CkanAmict2年前 (2022-04-15)
  175. #175

    is it legal to purchase prescription drugs from canada viagra canadian pharmacy reviews

    DsnnApets2年前 (2022-04-15)
  176. #176

    Thank you for any other great article. Where else could anyone get that type of
    information in such a perfect approach of writing? I’ve a presentation subsequent week,
    and I’m at the search for such information.

  177. #177

    sildenafil tablets from india 100mg tablets viagra pills prescription

    FuupFarce2年前 (2022-04-16)
  178. #178

    Every weekend i used to visit this site, because i wish for enjoyment, since this
    this web page conations in fact pleasant funny material too.

  179. #179

    It’s very easy to find out any topic on web as compared
    to textbooks, as I found this article at this website.

  180. #180

    Hello! I know this is kind of off topic but I was wondering if you knew where I could
    locate a captcha plugin for my comment form? I’m using
    the same blog platform as yours and I’m having difficulty finding one?

    Thanks a lot!

  181. #181

    cheap generic cialis canada rx online cialis

    EnrnQuima2年前 (2022-04-16)
  182. #182

    I’ve been surfing online greater than three
    hours as of late, yet I never discovered any fascinating article like yours.
    It is beautiful value sufficient for me. In my view,
    if all web owners and bloggers made just right
    content material as you did, the net shall be a lot more helpful than ever
    before.

  183. #183

    Great info. Lucky me I found your blog by chance (stumbleupon).
    I’ve saved as a favorite for later!

  184. #184

    I’ve been browsing online more than 4 hours today, yet I never
    found any interesting article like yours. It is pretty worth enough for
    me. Personally, if all web owners and bloggers made good content as you
    did, the internet will be much more useful than ever
    before.

  185. #185

    The other day, while I was at work, my cousin stole my iphone
    and tested to see if it can survive a 40 foot drop, just so she can be a youtube
    sensation. My apple ipad is now destroyed and she has 83 views.

    I know this is completely off topic but I had to share it with someone!

  186. #186

    ivermectin 3mg tablet ivermectin rosacea before and after

    ZbttApets2年前 (2022-04-17)
  187. #187

    female viagra sildenafil buy cheap viagra canada

    AnnoLefeviame2年前 (2022-04-17)
  188. #188

    I delight in, result in I discovered just what I used to be having a look for.
    You’ve ended my 4 day long hunt! God Bless you man. Have
    a nice day. Bye

    seo software2年前 (2022-04-18)
  189. #189

    modafinil online pharmacy bestsellers

    WevgAmict2年前 (2022-04-18)
  190. #190

    ivermectin for scaly leg mites ivermectin safety

    JtnnApets2年前 (2022-04-18)
  191. #191

    Pretty section of content. I just stumbled upon your website
    and in accession capital to assert that I acquire actually enjoyed
    account your blog posts. Any way I will be subscribing
    to your augment and even I achievement you access consistently quickly.

    bitcoin casino2年前 (2022-04-18)
  192. #192

    tadalafil farmacias del ahorro tadalafil contraindications

    AuupFarce2年前 (2022-04-19)
  193. #193

    I relish, lead to I discovered just what I was taking
    a look for. You have ended my 4 day long hunt! God Bless you man. Have a nice
    day. Bye

    crypto Casino2年前 (2022-04-19)
  194. #194

    I loved as much as you will receive carried
    out right here. The sketch is attractive, your authored material stylish.
    nonetheless, you command get bought an impatience over
    that you wish be delivering the following. unwell unquestionably come further formerly again as
    exactly the same nearly a lot often inside case you shield this hike.

  195. #195

    I read this paragraph completely about the resemblance
    of latest and earlier technologies, it’s awesome article.

  196. #196

    sildenafil 50mg without prescription cheap viagra tablets

    EnnsQuima2年前 (2022-04-20)
  197. #197

    Hello i am kavin, its my first occasion to
    commenting anywhere, when i read this piece of writing i thought i could also create comment due to this good piece of writing.

  198. #198

    What’s up, after reading this remarkable article i am also glad to share
    my experience here with mates.

  199. #199

    hello!,I love your writing very much! proportion we communicate more about your post on AOL?
    I require an expert in this house to resolve my problem.
    May be that is you! Having a look ahead to see you.

    ethereum casino2年前 (2022-04-20)
  200. #200

    I visited many web pages but the audio feature for audio songs existing at this web site is
    really fabulous.

    bitcoin casino2年前 (2022-04-20)
  201. #201

    american rx pharmacy pharmacy store nearby

    AnuuLefeviame2年前 (2022-04-21)
  202. #202

    levitra generic for sale difference between viagra cialis and levitra

    nyyyApets2年前 (2022-04-21)
  203. #203

    levitra vardenafil 20mg tablets levitra and cialis

    WnsnAmict2年前 (2022-04-21)
  204. #204

    It’s impressive that you are getting thoughts from this
    piece of writing as well as from our dialogue made at this time.

  205. #205

    super strength cialis cheap original cialis

    JnnyApets2年前 (2022-04-21)
  206. #206
  207. #207

    Hi there, its nice paragraph about media print, we all understand media is a enormous
    source of information.

  208. #208

    I am regular visitor, how are you everybody? This piece of writing posted at this web page is really good.

    najlepszy film2年前 (2022-04-22)
  209. #209

    This is very interesting, You’re a very skilled blogger.

    I’ve joined your rss feed and look forward to seeking more of your magnificent
    post. Also, I have shared your web site in my social networks!

    dobry film2年前 (2022-04-22)
  210. #210

    In fact no matter if someone doesn’t be aware
    of after that its up to other visitors that they will
    assist, so here it happens.

  211. #211

    Pretty! This was an extremely wonderful article.
    Thank you for supplying these details.

    sex kamerki2年前 (2022-04-23)
  212. #212

    fred meyer pharmacy brand viagra online canadian pharmacy

    EaaqQuima2年前 (2022-04-23)
  213. #213

    Write more, thats all I have to say. Literally, it seems as though you relied on the
    video to make your point. You clearly know what youre talking about, why throw away your intelligence on just posting videos to your blog when you could be giving
    us something enlightening to read?

    serial turecki2年前 (2022-04-24)
  214. #214

    Whats up are using WordPress for your blog platform?
    I’m new to the blog world but I’m trying to get started and create my own. Do
    you require any coding knowledge to make your own blog? Any help would be really appreciated!

    bitcoin casino2年前 (2022-04-24)
  215. #215

    walmart pharmacy price check mailing prescription drugs across state lines

    NtcxApets2年前 (2022-04-24)
  216. #216

    www canadian pharmacy com canada pharmacy on line reviews

    JyhLefeviame2年前 (2022-04-24)
  217. #217

    online school of pharmacy cyprus online pharmacy

    WnnhAmict2年前 (2022-04-24)
  218. #218

    Thank you a bunch for sharing this with all people you really recognize what you’re speaking about!
    Bookmarked. Please also seek advice from my web site =).
    We can have a hyperlink trade agreement between us

    ethereum casino2年前 (2022-04-24)
  219. #219

    why is pharmacy rx canadian pharmacy androgel

    JmmApets2年前 (2022-04-24)
  220. #220

    Very nice write-up. I absolutely appreciate this website.
    Continue the good work!

  221. #221

    online cvs pharmacy onlinepharmacytabs24 com

    AnsnFarce2年前 (2022-04-25)
  222. #222

    Howdy! I’m at work browsing your blog from my new apple iphone!
    Just wanted to say I love reading through your blog and look forward to all your posts!

    Carry on the great work!

    crypto casino2年前 (2022-04-25)
  223. #223

    Great info. Lucky me I came across your website by accident (stumbleupon).
    I have book marked it for later!

  224. #224

    I am really inspired together with your writing talents and also with the
    format to your weblog. Is that this a paid subject or did you customize it yourself?
    Anyway stay up the nice high quality writing,
    it’s rare to see a nice weblog like this one today..

  225. #225

    This design is steller! You obviously know how to keep a reader entertained.
    Between your wit and your videos, I was almost moved to start
    my own blog (well, almost…HaHa!) Excellent job. I
    really enjoyed what you had to say, and more than that, how you presented it.
    Too cool!

  226. #226

    naturally like your web-site but you need to take a look at the spelling on several
    of your posts. Many of them are rife with spelling problems and
    I to find it very bothersome to inform the reality on the other hand I’ll certainly come again again.

  227. #227

    Interesting blog! Is your theme custom made or did you download it from somewhere?
    A design like yours with a few simple adjustements would really make my blog
    shine. Please let me know where you got your theme.
    Kudos

  228. #228

    hi!,I love your writing so so much! share we keep in touch more about your article on AOL?

    I need a specialist in this house to resolve my problem.
    May be that is you! Taking a look forward to look you.

  229. #229

    This website really has all of the info I wanted about this subject
    and didn’t know who to ask.

    ethereum casino2年前 (2022-04-30)
  230. #230

    whoah this blog is fantastic i love reading your posts.
    Stay up the good work! You realize, many persons are hunting round for this
    info, you could help them greatly.

  231. #231

    Wonderful article! That is the kind of info that are meant to be shared around
    the net. Shame on the search engines for no longer positioning
    this publish higher! Come on over and discuss with my web site .
    Thanks =)

  232. #232

    I am no longer certain the place you are getting your info, however great topic.
    I must spend some time studying much more or understanding more.
    Thank you for excellent information I used to be in search
    of this information for my mission.

  233. #233

    An outstanding share! I’ve just forwarded this onto a coworker who has been conducting a
    little homework on this. And he in fact ordered
    me breakfast simply because I discovered it for him…
    lol. So let me reword this…. Thank YOU for the meal!!
    But yeah, thanx for spending the time to talk about this subject here on your
    website.

  234. #234

    It’s remarkable in favor of me to have a web page, which is beneficial designed
    for my experience. thanks admin

  235. #235

    bookmarked!!, I love your website!

    bitcoin casino2年前 (2022-05-01)
  236. #236

    It’s actually a nice and useful piece of info. I’m satisfied
    that you just shared this helpful info with us. Please stay us up to
    date like this. Thanks for sharing.

    crypto casino2年前 (2022-05-02)
  237. #237

    Hello, I believe your site could possibly be having browser
    compatibility issues. Whenever I take a look at your
    website in Safari, it looks fine however, if opening
    in IE, it’s got some overlapping issues. I merely wanted to give
    you a quick heads up! Apart from that, fantastic blog!

  238. #238

    Do you mind if I quote a few of your articles as long as
    I provide credit and sources back to your webpage? My blog is in the very same area of interest as yours and my
    visitors would really benefit from a lot of the information you present here.
    Please let me know if this ok with you. Appreciate it!

  239. #239

    What i don’t understood is actually how you’re now not
    really a lot more well-preferred than you might be
    now. You are very intelligent. You recognize therefore considerably on the subject of
    this subject, produced me in my view consider it from so many numerous angles.
    Its like women and men aren’t interested unless it is
    one thing to do with Lady gaga! Your own stuffs great. All the time
    maintain it up!

    message413602年前 (2022-05-02)
  240. #240

    pharmacy store window best online pharmacies no prescription

    JebnApets2年前 (2022-05-05)
  241. #241

    buy modafinil 100mg pill order modafinil 100mg for sale

    xieskddf2年前 (2022-05-09)
  242. #242

    big online pharmacy freds pharmacy store

    JebnApets2年前 (2022-05-11)
  243. #243

    cost modafinil buy generic provigil

    cdpdkeat2年前 (2022-05-18)
  244. #244

    cheap provigil buy provigil 200mg online buy modafinil 200mg for sale

    vnywciak2年前 (2022-05-18)
  245. #245
  246. #246

    buy generic provigil 200mg modafinil 100mg cheap buy provigil 100mg sale

    dvcmcmai2年前 (2022-05-19)
  247. #247

    order modafinil 100mg without prescription modafinil us

    ogqhtskf2年前 (2022-05-20)
  248. #248

    canadian pharmacies online online pharmacy for dogs

    JebnApets2年前 (2022-05-20)
  249. #249

    provigil pill modafinil 100mg for sale

    ahrbidqm2年前 (2022-05-20)
  250. #250

    http://erythromycinn.com/# erythromycin estolate

    dymupkda2年前 (2022-05-20)
  251. #251

    provigil over the counter modafinil 200mg pill

    osscephb2年前 (2022-05-20)
  252. #252

    generic provigil 100mg buy generic provigil 200mg modafinil 100mg generic

    cfsfzggi2年前 (2022-05-21)
  253. #253

    buy modafinil without prescription purchase modafinil online

    khhfuxme2年前 (2022-05-21)
  254. #254

    buy provigil online cheap order modafinil 200mg for sale

    kcbgbuha2年前 (2022-05-22)
  255. #255

    buy modafinil for sale provigil 100mg cheap

    ogtvhnvg2年前 (2022-05-22)
  256. #256

    I’m very happy to uncover this web site. I need to
    to thank you for ones time just for this fantastic read!!
    I definitely appreciated every part of it and i also have you bookmarked to look
    at new things in your web site.

  257. #257

    erythromycin definition erythromycin brand name

    xkwriohg2年前 (2022-05-25)
  258. #258

    buy modafinil 200mg pill buy provigil for sale buy generic provigil 200mg

    thhlpzow2年前 (2022-05-28)
  259. #259
  260. #260