@browserless.io/browserless 2.34.1 → 2.36.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (425) hide show
  1. package/CHANGELOG.md +25 -3
  2. package/build/limiter.js +1 -1
  3. package/build/routes/chrome/http/content.post.body.json +90 -1
  4. package/build/routes/chrome/http/pdf.post.body.json +90 -1
  5. package/build/routes/chrome/http/scrape.post.body.json +90 -1
  6. package/build/routes/chrome/http/scrape.post.response.json +21 -22
  7. package/build/routes/chrome/http/screenshot.post.body.json +90 -1
  8. package/build/routes/chromium/http/content.post.body.json +90 -1
  9. package/build/routes/chromium/http/pdf.post.body.json +90 -1
  10. package/build/routes/chromium/http/scrape.post.body.json +90 -1
  11. package/build/routes/chromium/http/scrape.post.response.json +21 -22
  12. package/build/routes/chromium/http/screenshot.post.body.json +90 -1
  13. package/build/routes/chromium/tests/scrape.spec.js +41 -0
  14. package/build/routes/edge/http/content.post.body.json +90 -1
  15. package/build/routes/edge/http/pdf.post.body.json +90 -1
  16. package/build/routes/edge/http/scrape.post.body.json +90 -1
  17. package/build/routes/edge/http/scrape.post.response.json +21 -22
  18. package/build/routes/edge/http/screenshot.post.body.json +90 -1
  19. package/build/sdk-utils.js +1 -1
  20. package/build/shared/scrape.http.js +13 -3
  21. package/docker/base/Dockerfile +8 -8
  22. package/docker/chrome/Dockerfile +2 -2
  23. package/docker/chromium/Dockerfile +2 -2
  24. package/docker/edge/Dockerfile +2 -2
  25. package/docker/firefox/Dockerfile +2 -2
  26. package/docker/multi/Dockerfile +2 -2
  27. package/docker/sdk/Dockerfile +1 -1
  28. package/docker/webkit/Dockerfile +2 -2
  29. package/extensions/ublocklite/_locales/br_FR/messages.json +1 -1
  30. package/extensions/ublocklite/_locales/he/messages.json +2 -2
  31. package/extensions/ublocklite/_locales/hu/messages.json +1 -1
  32. package/extensions/ublocklite/_locales/pt_BR/messages.json +1 -1
  33. package/extensions/ublocklite/_locales/pt_PT/messages.json +1 -1
  34. package/extensions/ublocklite/_locales/sk/messages.json +6 -6
  35. package/extensions/ublocklite/_locales/sq/messages.json +17 -17
  36. package/extensions/ublocklite/_locales/th/messages.json +1 -1
  37. package/extensions/ublocklite/_locales/tr/messages.json +1 -1
  38. package/extensions/ublocklite/_locales/vi/messages.json +1 -1
  39. package/extensions/ublocklite/css/common.css +5 -3
  40. package/extensions/ublocklite/css/default.css +10 -0
  41. package/extensions/ublocklite/js/dnr-parser.js +1 -1
  42. package/extensions/ublocklite/js/filter-lists.js +1 -4
  43. package/extensions/ublocklite/js/popup.js +2 -2
  44. package/extensions/ublocklite/js/ruleset-manager.js +5 -121
  45. package/extensions/ublocklite/js/rw-dnr-editor.js +8 -4
  46. package/extensions/ublocklite/js/scripting/tool-overlay.js +1 -0
  47. package/extensions/ublocklite/js/settings.js +2 -1
  48. package/extensions/ublocklite/js/static-filtering-parser.js +8 -8
  49. package/extensions/ublocklite/js/ubo-parser.js +181 -65
  50. package/extensions/ublocklite/manifest.json +3 -3
  51. package/extensions/ublocklite/rulesets/generic-details.json +6 -16
  52. package/extensions/ublocklite/rulesets/main/adguard-mobile.json +25 -4
  53. package/extensions/ublocklite/rulesets/main/adguard-spyware-url.json +615 -1
  54. package/extensions/ublocklite/rulesets/main/annoyances-cookies.json +19 -7
  55. package/extensions/ublocklite/rulesets/main/annoyances-others.json +4 -2
  56. package/extensions/ublocklite/rulesets/main/annoyances-overlays.json +22 -2
  57. package/extensions/ublocklite/rulesets/main/annoyances-widgets.json +1 -1
  58. package/extensions/ublocklite/rulesets/main/chn-0.json +93 -28
  59. package/extensions/ublocklite/rulesets/main/cze-0.json +6 -1
  60. package/extensions/ublocklite/rulesets/main/deu-0.json +11 -5
  61. package/extensions/ublocklite/rulesets/main/dpollock-0.json +2 -0
  62. package/extensions/ublocklite/rulesets/main/easylist.json +135 -29
  63. package/extensions/ublocklite/rulesets/main/easyprivacy.json +132 -27
  64. package/extensions/ublocklite/rulesets/main/est-0.json +1 -1
  65. package/extensions/ublocklite/rulesets/main/fin-0.json +9 -0
  66. package/extensions/ublocklite/rulesets/main/fra-0.json +48 -10
  67. package/extensions/ublocklite/rulesets/main/hun-0.json +4 -1
  68. package/extensions/ublocklite/rulesets/main/idn-0.json +1 -1
  69. package/extensions/ublocklite/rulesets/main/ind-0.json +93 -150
  70. package/extensions/ublocklite/rulesets/main/irn-0.json +33 -7
  71. package/extensions/ublocklite/rulesets/main/isr-0.json +20 -2
  72. package/extensions/ublocklite/rulesets/main/ita-0.json +3 -1
  73. package/extensions/ublocklite/rulesets/main/jpn-1.json +60 -13
  74. package/extensions/ublocklite/rulesets/main/kor-1.json +38 -6
  75. package/extensions/ublocklite/rulesets/main/ltu-0.json +3 -1
  76. package/extensions/ublocklite/rulesets/main/lva-0.json +2 -1
  77. package/extensions/ublocklite/rulesets/main/nld-0.json +6 -1
  78. package/extensions/ublocklite/rulesets/main/nor-0.json +13 -4
  79. package/extensions/ublocklite/rulesets/main/pgl.json +8 -9
  80. package/extensions/ublocklite/rulesets/main/pol-0.json +13 -1
  81. package/extensions/ublocklite/rulesets/main/rou-1.json +17 -1
  82. package/extensions/ublocklite/rulesets/main/rus-0.json +101 -24
  83. package/extensions/ublocklite/rulesets/main/rus-1.json +112 -4
  84. package/extensions/ublocklite/rulesets/main/spa-1.json +38 -14
  85. package/extensions/ublocklite/rulesets/main/stevenblack-hosts.json +13076 -6934
  86. package/extensions/ublocklite/rulesets/main/swe-1.json +77 -43
  87. package/extensions/ublocklite/rulesets/main/tha-0.json +7 -1
  88. package/extensions/ublocklite/rulesets/main/tur-0.json +45 -5
  89. package/extensions/ublocklite/rulesets/main/ublock-badware.json +76 -102
  90. package/extensions/ublocklite/rulesets/main/ublock-filters.json +770 -99
  91. package/extensions/ublocklite/rulesets/main/ubol-tests.json +43 -0
  92. package/extensions/ublocklite/rulesets/main/ukr-0.json +20 -1
  93. package/extensions/ublocklite/rulesets/main/urlhaus-full.json +503 -614
  94. package/extensions/ublocklite/rulesets/main/vie-1.json +61 -52
  95. package/extensions/ublocklite/rulesets/regex/chn-0.json +6 -3
  96. package/extensions/ublocklite/rulesets/regex/deu-0.json +0 -1
  97. package/extensions/ublocklite/rulesets/regex/jpn-1.json +1 -1
  98. package/extensions/ublocklite/rulesets/regex/kor-1.json +1 -0
  99. package/extensions/ublocklite/rulesets/regex/pol-0.json +1 -0
  100. package/extensions/ublocklite/rulesets/regex/rus-0.json +1 -0
  101. package/extensions/ublocklite/rulesets/regex/rus-1.json +24 -0
  102. package/extensions/ublocklite/rulesets/regex/tur-0.json +2 -1
  103. package/extensions/ublocklite/rulesets/regex/ublock-badware.json +10 -8
  104. package/extensions/ublocklite/rulesets/regex/ublock-filters.json +26 -9
  105. package/extensions/ublocklite/rulesets/ruleset-details.json +238 -458
  106. package/extensions/ublocklite/rulesets/scripting/generic/annoyances-cookies.js +3 -3
  107. package/extensions/ublocklite/rulesets/scripting/generic/annoyances-notifications.js +1 -1
  108. package/extensions/ublocklite/rulesets/scripting/generic/annoyances-overlays.js +1 -1
  109. package/extensions/ublocklite/rulesets/scripting/generic/annoyances-social.js +1 -1
  110. package/extensions/ublocklite/rulesets/scripting/generic/chn-0.js +3 -3
  111. package/extensions/ublocklite/rulesets/scripting/generic/easylist.js +3 -3
  112. package/extensions/ublocklite/rulesets/scripting/generic/fra-0.js +1 -1
  113. package/extensions/ublocklite/rulesets/scripting/generic/idn-0.js +1 -1
  114. package/extensions/ublocklite/rulesets/scripting/generic/jpn-1.js +1 -1
  115. package/extensions/ublocklite/rulesets/scripting/generic/nld-0.js +1 -1
  116. package/extensions/ublocklite/rulesets/scripting/generic/nor-0.js +1 -1
  117. package/extensions/ublocklite/rulesets/scripting/generic/spa-1.js +3 -3
  118. package/extensions/ublocklite/rulesets/scripting/generic/swe-1.js +1 -1
  119. package/extensions/ublocklite/rulesets/scripting/generic/tur-0.js +3 -3
  120. package/extensions/ublocklite/rulesets/scripting/generic/ublock-filters.js +3 -3
  121. package/extensions/ublocklite/rulesets/scripting/generic/ukr-0.js +1 -1
  122. package/extensions/ublocklite/rulesets/scripting/generic/vie-1.js +2 -2
  123. package/extensions/ublocklite/rulesets/scripting/generichigh/chn-0.css +2 -9
  124. package/extensions/ublocklite/rulesets/scripting/generichigh/easylist.css +1 -1
  125. package/extensions/ublocklite/rulesets/scripting/generichigh/idn-0.css +1 -0
  126. package/extensions/ublocklite/rulesets/scripting/generichigh/ublock-filters.css +0 -2
  127. package/extensions/ublocklite/rulesets/scripting/procedural/adguard-mobile.js +3 -3
  128. package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-cookies.js +3 -3
  129. package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-notifications.js +3 -3
  130. package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-others.js +3 -3
  131. package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-overlays.js +3 -3
  132. package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-social.js +3 -3
  133. package/extensions/ublocklite/rulesets/scripting/procedural/chn-0.js +1 -1
  134. package/extensions/ublocklite/rulesets/scripting/procedural/deu-0.js +3 -3
  135. package/extensions/ublocklite/rulesets/scripting/procedural/easylist.js +3 -3
  136. package/extensions/ublocklite/rulesets/scripting/procedural/fra-0.js +3 -3
  137. package/extensions/ublocklite/rulesets/scripting/procedural/idn-0.js +3 -3
  138. package/extensions/ublocklite/rulesets/scripting/procedural/irn-0.js +3 -3
  139. package/extensions/ublocklite/rulesets/scripting/procedural/jpn-1.js +3 -3
  140. package/extensions/ublocklite/rulesets/scripting/procedural/kor-1.js +3 -3
  141. package/extensions/ublocklite/rulesets/scripting/procedural/nld-0.js +3 -3
  142. package/extensions/ublocklite/rulesets/scripting/procedural/rou-1.js +3 -3
  143. package/extensions/ublocklite/rulesets/scripting/procedural/rus-0.js +3 -3
  144. package/extensions/ublocklite/rulesets/scripting/procedural/rus-1.js +3 -3
  145. package/extensions/ublocklite/rulesets/scripting/procedural/spa-1.js +3 -3
  146. package/extensions/ublocklite/rulesets/scripting/procedural/swe-1.js +3 -3
  147. package/extensions/ublocklite/rulesets/scripting/procedural/tur-0.js +3 -3
  148. package/extensions/ublocklite/rulesets/scripting/procedural/ublock-filters.js +3 -3
  149. package/extensions/ublocklite/rulesets/scripting/procedural/vie-1.js +2 -2
  150. package/extensions/ublocklite/rulesets/scripting/scriptlet/adguard-mobile.abort-on-property-read.js +2 -2
  151. package/extensions/ublocklite/rulesets/scripting/scriptlet/adguard-mobile.set-constant.js +2 -2
  152. package/extensions/ublocklite/rulesets/scripting/scriptlet/adguard-mobile.set-cookie.js +2 -2
  153. package/extensions/ublocklite/rulesets/scripting/scriptlet/adguard-mobile.trusted-replace-node-text.js +450 -0
  154. package/extensions/ublocklite/rulesets/scripting/scriptlet/{jpn-1.abort-on-property-write.js → adguard-mobile.trusted-set-attr.js} +107 -41
  155. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.prevent-requestAnimationFrame.js +407 -0
  156. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.remove-node-text.js +1 -1
  157. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.set-cookie.js +2 -2
  158. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.set-local-storage-item.js +2 -2
  159. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-click-element.js +2 -2
  160. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-replace-node-text.js +2 -2
  161. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-set-cookie.js +2 -2
  162. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-set-local-storage-item.js +2 -2
  163. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-others.addEventListener-defuser.js +1 -1
  164. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.abort-current-script.js +1 -1
  165. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.abort-on-stack-trace.js +2 -2
  166. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.addEventListener-defuser.js +2 -2
  167. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-fetch.js +9 -2
  168. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-setInterval.js +2 -2
  169. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-setTimeout.js +2 -2
  170. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-xhr.js +2 -2
  171. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.remove-cookie.js +2 -2
  172. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.set-constant.js +2 -2
  173. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.abort-current-script.js +2 -2
  174. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.addEventListener-defuser.js +2 -2
  175. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.adjust-setTimeout.js +2 -2
  176. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.json-prune.js +1 -1
  177. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.prevent-fetch.js +9 -2
  178. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.prevent-setTimeout.js +2 -2
  179. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.prevent-window-open.js +1 -1
  180. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.set-constant.js +2 -2
  181. package/extensions/ublocklite/rulesets/scripting/scriptlet/{vie-1.m3u-prune.js → chn-0.spoof-css.js} +109 -148
  182. package/extensions/ublocklite/rulesets/scripting/scriptlet/easyprivacy.abort-current-script.js +1 -1
  183. package/extensions/ublocklite/rulesets/scripting/scriptlet/easyprivacy.prevent-fetch.js +7 -0
  184. package/extensions/ublocklite/rulesets/scripting/scriptlet/easyprivacy.set-constant.js +1 -1
  185. package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.addEventListener-defuser.js +2 -2
  186. package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.adjust-setTimeout.js +2 -2
  187. package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.prevent-fetch.js +7 -0
  188. package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.prevent-setTimeout.js +2 -2
  189. package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.set-constant.js +1 -1
  190. package/extensions/ublocklite/rulesets/scripting/scriptlet/hun-0.set-local-storage-item.js +2 -2
  191. package/extensions/ublocklite/rulesets/scripting/scriptlet/idn-0.prevent-fetch.js +7 -0
  192. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.abort-current-script.js +2 -2
  193. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.prevent-fetch.js +7 -0
  194. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.set-constant.js +2 -2
  195. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.set-session-storage-item.js +2 -2
  196. package/extensions/ublocklite/rulesets/scripting/scriptlet/isr-0.prevent-fetch.js +7 -0
  197. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.json-prune.js +2 -2
  198. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.prevent-fetch.js +7 -0
  199. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.remove-attr.js +1 -1
  200. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.set-cookie.js +442 -0
  201. package/extensions/ublocklite/rulesets/scripting/scriptlet/{chn-0.json-prune-fetch-response.js → kor-1.json-prune-xhr-response.js} +71 -62
  202. package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.json-prune.js +2 -2
  203. package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.prevent-fetch.js +7 -0
  204. package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.prevent-setTimeout.js +2 -2
  205. package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.set-constant.js +2 -2
  206. package/extensions/ublocklite/rulesets/scripting/scriptlet/nld-0.prevent-fetch.js +7 -0
  207. package/extensions/ublocklite/rulesets/scripting/scriptlet/nor-0.prevent-fetch.js +7 -0
  208. package/extensions/ublocklite/rulesets/scripting/scriptlet/rou-1.abort-current-script.js +2 -2
  209. package/extensions/ublocklite/rulesets/scripting/scriptlet/rou-1.remove-node-text.js +1 -1
  210. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.abort-on-property-read.js +2 -2
  211. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.addEventListener-defuser.js +3 -3
  212. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.prevent-fetch.js +10 -3
  213. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.prevent-setTimeout.js +2 -2
  214. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.prevent-xhr.js +1 -1
  215. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.remove-cookie.js +3 -3
  216. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.remove-node-text.js +3 -3
  217. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.set-attr.js +2 -2
  218. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.set-constant.js +3 -3
  219. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.set-local-storage-item.js +2 -2
  220. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.abort-on-property-read.js +3 -3
  221. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.addEventListener-defuser.js +1 -1
  222. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.json-prune.js +2 -2
  223. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.prevent-fetch.js +7 -0
  224. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.remove-cookie.js +4 -4
  225. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.set-constant.js +3 -3
  226. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.abort-current-script.js +2 -2
  227. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.abort-on-property-read.js +1 -1
  228. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.addEventListener-defuser.js +1 -1
  229. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.adjust-setInterval.js +1 -1
  230. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.json-prune.js +2 -2
  231. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.noeval-if.js +1 -1
  232. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-fetch.js +9 -2
  233. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-requestAnimationFrame.js +2 -2
  234. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-setTimeout.js +2 -2
  235. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-window-open.js +1 -1
  236. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.set-constant.js +2 -2
  237. package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.addEventListener-defuser.js +2 -2
  238. package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.href-sanitizer.js +2 -2
  239. package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.prevent-setTimeout.js +2 -2
  240. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.abort-on-property-read.js +2 -2
  241. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.abort-on-property-write.js +1 -1
  242. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.addEventListener-defuser.js +2 -2
  243. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.prevent-fetch.js +7 -0
  244. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.prevent-setTimeout.js +2 -2
  245. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.prevent-window-open.js +1 -1
  246. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.remove-attr.js +2 -2
  247. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.remove-node-text.js +2 -2
  248. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.set-constant.js +2 -2
  249. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.set-cookie.js +2 -2
  250. package/extensions/ublocklite/rulesets/scripting/scriptlet/{ublock-filters.evaldata-prune.js → ublock-badware.addEventListener-defuser.js} +103 -173
  251. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-experimental.trusted-replace-node-text.js +450 -0
  252. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-current-script.js +3 -3
  253. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-on-property-read.js +3 -3
  254. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-on-property-write.js +2 -2
  255. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-on-stack-trace.js +3 -3
  256. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.addEventListener-defuser.js +3 -3
  257. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.adjust-setInterval.js +2 -2
  258. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.adjust-setTimeout.js +2 -2
  259. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.disable-newtab-links.js +1 -1
  260. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.href-sanitizer.js +2 -2
  261. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-edit-xhr-response.js +851 -0
  262. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-prune-fetch-response.js +2 -2
  263. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-prune-xhr-response.js +3 -3
  264. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-prune.js +3 -3
  265. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.m3u-prune.js +2 -2
  266. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.noeval-if.js +2 -2
  267. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.nowebrtc.js +2 -2
  268. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-fetch.js +9 -2
  269. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-requestAnimationFrame.js +2 -2
  270. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-setInterval.js +2 -2
  271. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-setTimeout.js +3 -3
  272. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-window-open.js +2 -2
  273. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-xhr.js +3 -3
  274. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.remove-attr.js +2 -2
  275. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.remove-cookie.js +2 -2
  276. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.remove-node-text.js +2 -2
  277. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-attr.js +2 -2
  278. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-constant.js +3 -3
  279. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-cookie.js +2 -2
  280. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-local-storage-item.js +2 -2
  281. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.spoof-css.js +2 -2
  282. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-click-element.js +1 -1
  283. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-create-html.js +2 -2
  284. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-override-element-method.js +1 -1
  285. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-prevent-fetch.js +7 -0
  286. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-prevent-xhr.js +1 -1
  287. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-argument.js +2 -2
  288. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-node-text.js +3 -3
  289. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-outbound-text.js +2 -2
  290. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-xhr-response.js +1 -1
  291. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-set-constant.js +1 -1
  292. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-set-cookie.js +3 -3
  293. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-set-local-storage-item.js +2 -2
  294. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-suppress-native-method.js +1 -1
  295. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.xml-prune.js +2 -2
  296. package/extensions/ublocklite/rulesets/scripting/scriptlet/ukr-0.prevent-fetch.js +7 -0
  297. package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.abort-current-script.js +2 -2
  298. package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.abort-on-property-read.js +2 -2
  299. package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.json-prune.js +1 -1
  300. package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.prevent-fetch.js +7 -0
  301. package/extensions/ublocklite/rulesets/scripting/specific/adguard-mobile.js +3 -3
  302. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-cookies.js +3 -3
  303. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-notifications.js +3 -3
  304. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-others.js +3 -3
  305. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-overlays.js +3 -3
  306. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-social.js +3 -3
  307. package/extensions/ublocklite/rulesets/scripting/specific/chn-0.js +3 -3
  308. package/extensions/ublocklite/rulesets/scripting/specific/deu-0.js +3 -3
  309. package/extensions/ublocklite/rulesets/scripting/specific/easylist.js +3 -3
  310. package/extensions/ublocklite/rulesets/scripting/specific/fin-0.js +3 -3
  311. package/extensions/ublocklite/rulesets/scripting/specific/fra-0.js +3 -3
  312. package/extensions/ublocklite/rulesets/scripting/specific/hun-0.js +3 -3
  313. package/extensions/ublocklite/rulesets/scripting/specific/idn-0.js +3 -3
  314. package/extensions/ublocklite/rulesets/scripting/specific/ind-0.js +3 -3
  315. package/extensions/ublocklite/rulesets/scripting/specific/irn-0.js +3 -3
  316. package/extensions/ublocklite/rulesets/scripting/specific/isr-0.js +3 -3
  317. package/extensions/ublocklite/rulesets/scripting/specific/ita-0.js +3 -3
  318. package/extensions/ublocklite/rulesets/scripting/specific/jpn-1.js +3 -3
  319. package/extensions/ublocklite/rulesets/scripting/specific/kor-1.js +3 -3
  320. package/extensions/ublocklite/rulesets/scripting/specific/nld-0.js +3 -3
  321. package/extensions/ublocklite/rulesets/scripting/specific/nor-0.js +3 -3
  322. package/extensions/ublocklite/rulesets/scripting/specific/rou-1.js +3 -3
  323. package/extensions/ublocklite/rulesets/scripting/specific/rus-0.js +3 -3
  324. package/extensions/ublocklite/rulesets/scripting/specific/rus-1.js +3 -3
  325. package/extensions/ublocklite/rulesets/scripting/specific/spa-1.js +3 -3
  326. package/extensions/ublocklite/rulesets/scripting/specific/swe-1.js +3 -3
  327. package/extensions/ublocklite/rulesets/scripting/specific/tha-0.js +3 -3
  328. package/extensions/ublocklite/rulesets/scripting/specific/tur-0.js +3 -3
  329. package/extensions/ublocklite/rulesets/scripting/specific/ublock-filters.js +3 -3
  330. package/extensions/ublocklite/rulesets/scripting/specific/ukr-0.js +3 -3
  331. package/extensions/ublocklite/rulesets/scripting/specific/vie-1.js +3 -3
  332. package/extensions/ublocklite/rulesets/scriptlet-details.json +271 -174
  333. package/extensions/ublocklite/rulesets/strictblock/adguard-mobile.json +3 -2
  334. package/extensions/ublocklite/rulesets/strictblock/annoyances-cookies.json +1 -0
  335. package/extensions/ublocklite/rulesets/strictblock/chn-0.json +329 -791
  336. package/extensions/ublocklite/rulesets/strictblock/dpollock-0.json +2 -0
  337. package/extensions/ublocklite/rulesets/strictblock/easylist.json +1 -1
  338. package/extensions/ublocklite/rulesets/strictblock/easyprivacy.json +62 -4
  339. package/extensions/ublocklite/rulesets/strictblock/fra-0.json +429 -49
  340. package/extensions/ublocklite/rulesets/strictblock/irn-0.json +2 -0
  341. package/extensions/ublocklite/rulesets/strictblock/jpn-1.json +183 -176
  342. package/extensions/ublocklite/rulesets/strictblock/kor-1.json +6 -1
  343. package/extensions/ublocklite/rulesets/strictblock/nor-0.json +1 -1
  344. package/extensions/ublocklite/rulesets/strictblock/pgl.json +8 -9
  345. package/extensions/ublocklite/rulesets/strictblock/pol-0.json +1 -0
  346. package/extensions/ublocklite/rulesets/strictblock/rus-1.json +1 -0
  347. package/extensions/ublocklite/rulesets/strictblock/spa-1.json +0 -2
  348. package/extensions/ublocklite/rulesets/strictblock/stevenblack-hosts.json +13076 -6934
  349. package/extensions/ublocklite/rulesets/strictblock/swe-1.json +2 -0
  350. package/extensions/ublocklite/rulesets/strictblock/tur-0.json +4 -0
  351. package/extensions/ublocklite/rulesets/strictblock/ublock-badware.json +580 -577
  352. package/extensions/ublocklite/rulesets/strictblock/ublock-filters.json +3 -2
  353. package/extensions/ublocklite/rulesets/strictblock/urlhaus-full.json +503 -614
  354. package/extensions/ublocklite/rulesets/strictblock/vie-1.json +6 -7
  355. package/extensions/ublocklite/rulesets/urlskip/ublock-filters.json +30 -0
  356. package/extensions/ublocklite/ublock.zip +0 -0
  357. package/package.json +23 -21
  358. package/scripts/install-adblock.js +25 -4
  359. package/scripts/start.sh +1 -1
  360. package/scripts/test.sh +2 -2
  361. package/src/limiter.ts +1 -1
  362. package/src/routes/chromium/tests/scrape.spec.ts +48 -0
  363. package/src/sdk-utils.ts +1 -1
  364. package/src/shared/scrape.http.ts +17 -5
  365. package/static/docs/swagger.json +330 -102
  366. package/static/docs/swagger.min.json +329 -101
  367. package/static/function/client.js +203 -104
  368. package/static/function/index.html +203 -104
  369. package/extensions/ublocklite/rulesets/modify-headers/annoyances-overlays.json +0 -108
  370. package/extensions/ublocklite/rulesets/modify-headers/chn-0.json +0 -316
  371. package/extensions/ublocklite/rulesets/modify-headers/cze-0.json +0 -25
  372. package/extensions/ublocklite/rulesets/modify-headers/deu-0.json +0 -24
  373. package/extensions/ublocklite/rulesets/modify-headers/easylist.json +0 -14
  374. package/extensions/ublocklite/rulesets/modify-headers/easyprivacy.json +0 -48
  375. package/extensions/ublocklite/rulesets/modify-headers/fra-0.json +0 -215
  376. package/extensions/ublocklite/rulesets/modify-headers/irn-0.json +0 -45
  377. package/extensions/ublocklite/rulesets/modify-headers/isr-0.json +0 -50
  378. package/extensions/ublocklite/rulesets/modify-headers/rus-0.json +0 -40
  379. package/extensions/ublocklite/rulesets/modify-headers/rus-1.json +0 -22
  380. package/extensions/ublocklite/rulesets/modify-headers/swe-1.json +0 -46
  381. package/extensions/ublocklite/rulesets/modify-headers/ublock-filters.json +0 -54
  382. package/extensions/ublocklite/rulesets/modify-headers/ubol-tests.json +0 -25
  383. package/extensions/ublocklite/rulesets/modify-headers/vie-1.json +0 -162
  384. package/extensions/ublocklite/rulesets/redirect/adguard-mobile.json +0 -20
  385. package/extensions/ublocklite/rulesets/redirect/annoyances-overlays.json +0 -15
  386. package/extensions/ublocklite/rulesets/redirect/chn-0.json +0 -40
  387. package/extensions/ublocklite/rulesets/redirect/cze-0.json +0 -76
  388. package/extensions/ublocklite/rulesets/redirect/deu-0.json +0 -79
  389. package/extensions/ublocklite/rulesets/redirect/easylist.json +0 -103
  390. package/extensions/ublocklite/rulesets/redirect/easyprivacy.json +0 -137
  391. package/extensions/ublocklite/rulesets/redirect/fin-0.json +0 -121
  392. package/extensions/ublocklite/rulesets/redirect/fra-0.json +0 -35
  393. package/extensions/ublocklite/rulesets/redirect/hun-0.json +0 -38
  394. package/extensions/ublocklite/rulesets/redirect/irn-0.json +0 -73
  395. package/extensions/ublocklite/rulesets/redirect/isr-0.json +0 -17
  396. package/extensions/ublocklite/rulesets/redirect/jpn-1.json +0 -29
  397. package/extensions/ublocklite/rulesets/redirect/kor-1.json +0 -25
  398. package/extensions/ublocklite/rulesets/redirect/ltu-0.json +0 -33
  399. package/extensions/ublocklite/rulesets/redirect/nld-0.json +0 -79
  400. package/extensions/ublocklite/rulesets/redirect/nor-0.json +0 -132
  401. package/extensions/ublocklite/rulesets/redirect/pol-0.json +0 -15
  402. package/extensions/ublocklite/rulesets/redirect/rou-1.json +0 -53
  403. package/extensions/ublocklite/rulesets/redirect/rus-0.json +0 -21
  404. package/extensions/ublocklite/rulesets/redirect/rus-1.json +0 -118
  405. package/extensions/ublocklite/rulesets/redirect/spa-1.json +0 -27
  406. package/extensions/ublocklite/rulesets/redirect/swe-1.json +0 -14
  407. package/extensions/ublocklite/rulesets/redirect/tha-0.json +0 -78
  408. package/extensions/ublocklite/rulesets/redirect/tur-0.json +0 -24
  409. package/extensions/ublocklite/rulesets/redirect/ublock-badware.json +0 -18
  410. package/extensions/ublocklite/rulesets/redirect/ublock-filters.json +0 -548
  411. package/extensions/ublocklite/rulesets/redirect/ubol-tests.json +0 -22
  412. package/extensions/ublocklite/rulesets/redirect/ukr-0.json +0 -18
  413. package/extensions/ublocklite/rulesets/redirect/vie-1.json +0 -117
  414. package/extensions/ublocklite/rulesets/removeparam/adguard-spyware-url.json +0 -612
  415. package/extensions/ublocklite/rulesets/removeparam/annoyances-overlays.json +0 -27
  416. package/extensions/ublocklite/rulesets/removeparam/chn-0.json +0 -48
  417. package/extensions/ublocklite/rulesets/removeparam/est-0.json +0 -26
  418. package/extensions/ublocklite/rulesets/removeparam/fin-0.json +0 -52
  419. package/extensions/ublocklite/rulesets/removeparam/irn-0.json +0 -18
  420. package/extensions/ublocklite/rulesets/removeparam/kor-1.json +0 -26
  421. package/extensions/ublocklite/rulesets/removeparam/rus-0.json +0 -19
  422. package/extensions/ublocklite/rulesets/removeparam/rus-1.json +0 -99
  423. package/extensions/ublocklite/rulesets/removeparam/swe-1.json +0 -125
  424. package/extensions/ublocklite/rulesets/removeparam/ublock-filters.json +0 -64
  425. package/extensions/ublocklite/rulesets/removeparam/ukr-0.json +0 -49
@@ -460,8 +460,8 @@ function validateConstantFn(trusted, raw, extraArgs = {}) {
460
460
  /******************************************************************************/
461
461
 
462
462
  const scriptletGlobals = {}; // eslint-disable-line
463
- const argsList = [["ConsoleBan.init","noopFunc"],["devtoolsDetector","{}"],["killads","true"],["PASSER_videoPAS_apres","0"],["ads_enabled","true"],["nebula.session.flags.adblock","undefined"],["_adBlockCheck","true"],["navigator.storage.estimate","undefined"],["valid_user","true"],["Drupal.behaviors.detectAdblockers","noopFunc"],["disableSelection","noopFunc"],["ADBdetected","noopFunc"],["adblock","false"],["BIA.ADBLOCKER","false"],["samDetected","true"],["adBlockFunction","trueFunc"],["checkAds","trueFunc"],["google_jobrunner","true"],["isAdblockDisabled","true"],["checkPrivacyWall","noopFunc"],["nocontext","noopFunc"],["adsAreShown","true"],["abd","false"],["detector_active","true"],["aoezone_adchecker","true"],["pageService.initDownloadProtection","noopFunc"],["detectPrivateMode","noopFunc"],["webkitRequestFileSystem","undefined"],["adsbygoogle","null"],["_sharedData.is_whitelisted_crawl_bot","true"],["ads_not_blocked","true"],["ytInitialPlayerResponse.auxiliaryUi.messageRenderers.upsellDialogRenderer","undefined"],["hideBannerBlockedMessage","true"],["blurred","false"],["better_ads_adblock","0"],["console.debug","trueFunc"],["console.clear","trueFunc"],["adBlock","false"],["document.oncontextmenu","undefined"],["adsEnabled","true"],["better_ads_adblock","null"],["document.oncontextmenu","null"],["f12lock","false"],["document.onselectstart","null"],["console.clear","undefined"],["adBlockDetected","false"],["document.onkeyup","null"],["document.ondragstart","null"],["commonUtil.openToast","null"],["NS_TVER_EQ.checkEndEQ","trueFunc"],["mps._queue.abdetect","null"],["fuckAdBlock","trueFunc"],["abp","false"],["document.onkeydown","noopFunc"],["getSelection","undefined"],["document.onkeydown","null"],["console.clear","noopFunc"],["document.oncontextmenu","noopFunc"],["x5engine.utils.imCodeProtection","null"],["ansFrontendGlobals.settings.signupWallType","undefined"],["onload","null"],["document.documentElement.AdBlockDetection","noopFunc"],["document.ondragstart","noopFunc"],["document.onmousedown","noopFunc"],["document.onselectstart","noopFunc"],["disableselect","trueFunc"],["document.oncontextmenu",""],["document.onselectstart",""],["document.onkeydown",""],["document.onmousedown",""],["document.onclick",""],["document.body.onmouseup","null"],["document.oncopy","null"],["SD_BLOCKTHROUGH","true"],["document.onkeydown","trueFunc"],["ab","false"],["canRunAds","true"],["document.body.oncut","null"],["document.body.oncopy","null"],["console.log","noopFunc"],["document.onkeypress","null"],["mb.advertisingShouldBeEnabled","false"],["document.ondragstart","trueFunc"],["document.onselectstart","trueFunc"],["jsData.hasVideoMeteringUnlogEnabled","undefined"],["lepopup_abd_enabled",""],["Object.prototype.preroll","[]"],["document.oncontextmenu","trueFunc"],["devtoolsDetector","undefined"],["Object.prototype.bgOverlay","noopFunc"],["Object.prototype.fixedContentPos","noopFunc"],["console.dir","noopFunc"],["navigator.userAgent",""],["devtoolIsOpening","noopFunc"],["securityTool.disableRightClick","noopFunc"],["securityTool.disableF12","noopFunc"],["securityTool.disableCtrlP","noopFunc"],["securityTool.disableCtrlS","noopFunc"],["securityTool.disablePrintScreen","noopFunc"],["securityTool.disablePrintThisPage","noopFunc"],["securityTool.disableElementForPrintThisPage","noopFunc"],["checkAds","noopFunc"],["stopPrntScr","noopFunc"],["disableSelection","undefined"],["nocontext","undefined"],["disable_hot_keys","undefined"],["flashvars.autoplay",""],["document.body.oncopy","null","3"],["document.body.onselectstart","null","3"],["document.body.oncontextmenu","null","3"],["Time_Start","0"],["DD","trueFunc"],["document.oncontextmenu","null","3"],["Object.prototype._detectLoop","noopFunc"],["forbiddenList","[]"],["document.onkeypress","trueFunc"],["document.oncontextmenu","true"],["Object.prototype._detectLoop","undefined"],["SteadyWidgetSettings.adblockActive","false"],["devtoolsOpen","false"],["DisDevTool","undefined"],["admiral","noopFunc"],["document.oncopy","noopFunc"],["initials.layout.layoutPromoProps.promoMessagesWrapperProps.shouldDisplayAdblockMessage","false"],["mtGlobal.disabledAds","true"],["devtoolsDetector.launch","noopFunc"],["console.clear","throwFunc"],["ANN.ads.adblocked","false"],["maxUnauthenicatedArticleViews","null"],["placeAdsHandler","noopFunc"],["ramp.addUnits","noopFunc"],["pqdxwidthqt","false"],["nitroAds.loaded","true"],["jh_disabled_options_data","null"],["topMessage","noopFunc"],["document.onmousedown","null"],["forbidDebug","noopFunc"],["adblock","2"],["DisableDevtool","noopFunc"],["__NEXT_DATA__.props.pageProps.adPlacements","undefined"],["login_completed","true"],["console.table","trueFunc"],["console.log","trueFunc"],["Object.prototype.disableMenu","false"],["confirm","noopFunc"],["HTMLImageElement.prototype.onerror","undefined"]];
464
- const hostnamesMap = new Map([["xn-----0b4asja8cbew2b4b0gd0edbjm2jpa1b1e9zva7a0347s4da2797e7qri.xn--1ck2e1b",0],["up4stream.com",1],["ups2up.fun",1],["9tsu.vip",1],["moviesapi.club",[1,125]],["watchx.top",1],["xclient.info",2],["bejson.com",2],["impots.gouv.fr",3],["airnavradar.com",4],["radarbox.com",4],["gearside.com",5],["nytimes.com",[6,7]],["tvtropes.org",8],["justtrucks.com.au",9],["cittadinanza.biz",10],["glistranieri.it",10],["ideapod.com",[10,20]],["privivkainfo.ru",10],["awebstories.com",[10,102]],["ancient.eu",11],["intramed.net",12],["protest.eu",13],["northwestfirearms.com",14],["techkings.org",14],["spookshow.net",15],["fosshub.com",16],["pokemonforever.com",17],["carsguide.com.au",18],["humo.be",19],["webwereld.nl",21],["palemoon.org",22],["wheel-size.com",23],["aoezone.net",24],["radioony.fm",25],["mexiconewsdaily.com",26],["technologyreview.com",27],["bdcraft.net",28],["instagram.com",29],["wired.co.uk",30],["gq-magazine.co.uk",30],["glamourmagazine.co.uk",30],["m.youtube.com",31],["music.youtube.com",31],["tv.youtube.com",31],["www.youtube.com",31],["youtubekids.com",31],["buienradar.nl",32],["clk.ink",33],["earnload.*",33],["windows101tricks.com",34],["hindipix.*",[35,36]],["vidsrc.*",[36,125,138]],["bitcine.app",[36,141,142]],["cineby.app",[36,141,142]],["moflix-stream.day",[36,141,142]],["tv.verizon.com",[36,141,142]],["fontsfree.pro",37],["oceanof-games.com",38],["strangermeetup.com",39],["adslayuda.com",40],["intergate.info",41],["alphapolis.co.jp",[41,43]],["chronologia.pl",[41,43]],["reportergazeta.pl",[41,43,47]],["odiarioonline.com.br",[41,55]],["nordkorea-info.de",41],["geotips.net",[41,60]],["noweconomy.live",41],["naaree.com",[41,55]],["cda-hd.cc",41],["hqq.to",[41,56,74]],["tv-tokyo.co.jp",41],["arti-definisi-pengertian.info",41],["studyadda.com",[41,135]],["avdelphi.com",42],["doods.*",44],["ds2play.com",44],["ds2video.com",44],["d0o0d.com",44],["vidembed.me",44],["mzzcloud.life",44],["videobot.stream",44],["videovard.*",44],["justswallows.net",44],["onscreensvideo.com",44],["katerionews.com",44],["telenovelas-turcas.com.es",44],["kmo.to",44],["jeniusplay.com",[44,117]],["southcloud.tv",44],["d0000d.com",44],["4x4earth.com",45],["jootc.com",[46,47]],["photobank.mainichi.co.jp",48],["tbs.co.jp",49],["rottentomatoes.com",50],["sovetromantica.com",51],["longecity.org",52],["fruit01.xyz",53],["foxteller.com",53],["lyricstranslate.com",54],["hardcoregames.ca",55],["allsmo.com",55],["themosvagas.com.br",55],["urbharat.xyz",55],["sportnews.to",[55,80]],["123movies.*",56],["miraculous.to",[56,79]],["webnovel.com",56],["pepperlive.info",56],["unbiasedsenseevent.com",56],["maxt.church",56],["cool-etv.net",56],["vgembed.com",[56,111]],["photopea.com",56],["szkolawohyn.pl",57],["torrentlawyer.com",[57,62,63,64]],["virpe.cc",57],["gmarket.co.kr",[57,63]],["paesifantasma.it",58],["talpo.it",58],["quora.com",59],["gmx.net",61],["hoca4u.com",63],["youmath.it",65],["renditepassive.net",[66,67,68,69,70]],["360doc.com",71],["logonews.cn",72],["spanishdict.com",73],["cloudcomputingtopics.net",74],["0123movies.ch",[74,83,87,115]],["epn.bz",75],["affbank.com",76],["gardenia.net",[77,78]],["meteoblue.com",81],["novelpia.com",[82,83]],["brainly.*",84],["blueraindrops.com",85],["animecruzers.com",86],["descargatepelis.com",87],["news.ntv.co.jp",87],["bongdaplus.vn",87],["bestjavporn.com",88],["mm9841.cc",88],["ggwash.org",[89,90]],["ask4movie.*",[91,92]],["watch.lonelil.com",92],["cinegrabber.com",93],["readawrite.com",[94,95,96,97,98,99,100]],["morosedog.gitlab.io",101],["indianhealthyrecipes.com",103],["thailandopen.org",[104,105]],["theaircurrent.com",[104,105]],["freereadnovel.online",[104,105]],["reborntrans.com",[104,105]],["secondlifetranslations.com",[104,105]],["koltry.life",[104,105]],["kolnovel.com",[104,105]],["heavyfetish.com",106],["joysound.com",[107,108,109]],["colors.sonicthehedgehog.com",[109,112]],["bluemediafile.*",110],["leakedzone.com",113],["mehoathinh2.com",114],["brutal.io",116],["powerline.io",116],["enduro-mtb.com",118],["kukaj.io",119],["aniwave.*",120],["anix.*",120],["flixrave.to",120],["hdtoday.so",120],["vidplay.*",120],["vid2faf.site",120],["lazyadmin.nl",121],["thejakartapost.com",122],["colourxh.site",123],["fullxh.com",123],["galleryxh.site",123],["megaxh.com",123],["movingxh.world",123],["seexh.com",123],["unlockxh4.com",123],["valuexh.life",123],["xhaccess.com",123],["xhadult4.com",123],["xhamster.*",123],["xhamster1.*",123],["xhamster10.*",123],["xhamster11.*",123],["xhamster12.*",123],["xhamster13.*",123],["xhamster14.*",123],["xhamster15.*",123],["xhamster16.*",123],["xhamster17.*",123],["xhamster18.*",123],["xhamster19.*",123],["xhamster20.*",123],["xhamster2.*",123],["xhamster3.*",123],["xhamster4.*",123],["xhamster42.*",123],["xhamster46.com",123],["xhamster5.*",123],["xhamster7.*",123],["xhamster8.*",123],["xhbig.com",123],["xhbranch5.com",123],["xhchannel.com",123],["xhdate.world",123],["xhmoon5.com",123],["xhofficial.com",123],["xhopen.com",123],["xhplanet1.com",123],["xhplanet2.com",123],["xhreal2.com",123],["xhspot.com",123],["xhtotal.com",123],["xhvictory.com",123],["xhwebsite5.com",123],["xhwide5.com",123],["marinetraffic.com",124],["ymovies.vip",125],["aniwatch.to",125],["aniwatchtv.to",125],["megacloud.tv",125],["hianime.*",125],["hianimez.to",125],["putlocker.vip",125],["rapid-cloud.co",125],["rabbitstream.net",125],["pupupul.site",125],["netu.*",125],["netuplayer.top",125],["stbnetu.xyz",125],["thotsbay.tv",125],["vipstreams.in",125],["freewatchtv.top",125],["gdplayertv.*",125],["mixstreams.top",125],["tvfreemium.top",125],["abysscdn.com",125],["grostembed.online",126],["premiumembeding.cloud",126],["venusembed.site",126],["animekai.*",126],["anigo.to",126],["megaup.cc",126],["rapidshare.cc",126],["animenewsnetwork.com",127],["androidpolice.com",128],["makeuseof.com",128],["movieweb.com",128],["xda-developers.com",128],["thegamer.com",128],["cbr.com",128],["gamerant.com",128],["screenrant.com",128],["howtogeek.com",128],["thethings.com",128],["simpleflying.com",128],["dualshockers.com",128],["digminecraft.com",129],["arras.io",130],["arras.netlify.app",130],["arrax.io",130],["how-to-pc.info",131],["programming-link.info",131],["maxroll.gg",132],["tv.bdix.app",133],["hitokageproduction.com",134],["dngz.net",136],["vnexpress.net",137],["archon.gg",139],["einthusan.tv",140],["sussytoons.*",143],["astro-cric.pages.dev",144],["crichype.*",144],["jio.pftv.ws",144],["shz.al",144],["tnt2-cricstreaming.pages.dev",144],["wlo-cricstreamiing.pages.dev",144],["sporttotal.tv",145]]);
463
+ const argsList = [["ConsoleBan.init","noopFunc"],["devtoolsDetector","{}"],["killads","true"],["PASSER_videoPAS_apres","0"],["ads_enabled","true"],["nebula.session.flags.adblock","undefined"],["_adBlockCheck","true"],["navigator.storage.estimate","undefined"],["valid_user","true"],["Drupal.behaviors.detectAdblockers","noopFunc"],["disableSelection","noopFunc"],["ADBdetected","noopFunc"],["adblock","false"],["BIA.ADBLOCKER","false"],["samDetected","true"],["adBlockFunction","trueFunc"],["checkAds","trueFunc"],["google_jobrunner","true"],["isAdblockDisabled","true"],["checkPrivacyWall","noopFunc"],["nocontext","noopFunc"],["adsAreShown","true"],["abd","false"],["detector_active","true"],["aoezone_adchecker","true"],["pageService.initDownloadProtection","noopFunc"],["detectPrivateMode","noopFunc"],["webkitRequestFileSystem","undefined"],["adsbygoogle","null"],["_sharedData.is_whitelisted_crawl_bot","true"],["ads_not_blocked","true"],["ytInitialPlayerResponse.auxiliaryUi.messageRenderers.upsellDialogRenderer","undefined"],["hideBannerBlockedMessage","true"],["blurred","false"],["better_ads_adblock","0"],["console.debug","trueFunc"],["console.clear","trueFunc"],["adBlock","false"],["document.oncontextmenu","undefined"],["adsEnabled","true"],["better_ads_adblock","null"],["document.oncontextmenu","null"],["window.SteadyWidgetSettings.adblockActive","false"],["f12lock","false"],["document.onselectstart","null"],["console.clear","undefined"],["adBlockDetected","false"],["document.onkeyup","null"],["document.ondragstart","null"],["commonUtil.openToast","null"],["NS_TVER_EQ.checkEndEQ","trueFunc"],["mps._queue.abdetect","null"],["fuckAdBlock","trueFunc"],["abp","false"],["document.onkeydown","noopFunc"],["getSelection","undefined"],["document.onkeydown","null"],["console.clear","noopFunc"],["document.oncontextmenu","noopFunc"],["x5engine.utils.imCodeProtection","null"],["ansFrontendGlobals.settings.signupWallType","undefined"],["onload","null"],["document.documentElement.AdBlockDetection","noopFunc"],["document.ondragstart","noopFunc"],["document.onmousedown","noopFunc"],["document.onselectstart","noopFunc"],["disableselect","trueFunc"],["document.oncontextmenu",""],["document.onselectstart",""],["document.onkeydown",""],["document.onmousedown",""],["document.onclick",""],["document.body.onmouseup","null"],["document.oncopy","null"],["SD_BLOCKTHROUGH","true"],["document.onkeydown","trueFunc"],["ab","false"],["canRunAds","true"],["document.body.oncut","null"],["document.body.oncopy","null"],["console.log","noopFunc"],["document.onkeypress","null"],["mb.advertisingShouldBeEnabled","false"],["document.ondragstart","trueFunc"],["document.onselectstart","trueFunc"],["jsData.hasVideoMeteringUnlogEnabled","undefined"],["lepopup_abd_enabled",""],["Object.prototype.preroll","[]"],["document.oncontextmenu","trueFunc"],["devtoolsDetector","undefined"],["Object.prototype.bgOverlay","noopFunc"],["Object.prototype.fixedContentPos","noopFunc"],["console.dir","noopFunc"],["navigator.userAgent",""],["devtoolIsOpening","noopFunc"],["securityTool.disableRightClick","noopFunc"],["securityTool.disableF12","noopFunc"],["securityTool.disableCtrlP","noopFunc"],["securityTool.disableCtrlS","noopFunc"],["securityTool.disablePrintScreen","noopFunc"],["securityTool.disablePrintThisPage","noopFunc"],["securityTool.disableElementForPrintThisPage","noopFunc"],["checkAds","noopFunc"],["stopPrntScr","noopFunc"],["disableSelection","undefined"],["nocontext","undefined"],["disable_hot_keys","undefined"],["flashvars.autoplay",""],["document.body.oncopy","null","3"],["document.body.onselectstart","null","3"],["document.body.oncontextmenu","null","3"],["Time_Start","0"],["DD","trueFunc"],["document.oncontextmenu","null","3"],["Object.prototype._detectLoop","noopFunc"],["forbiddenList","[]"],["document.onkeypress","trueFunc"],["document.oncontextmenu","true"],["Object.prototype._detectLoop","undefined"],["SteadyWidgetSettings.adblockActive","false"],["devtoolsOpen","false"],["DisDevTool","undefined"],["admiral","noopFunc"],["document.oncopy","noopFunc"],["initials.layout.layoutPromoProps.promoMessagesWrapperProps.shouldDisplayAdblockMessage","false"],["mtGlobal.disabledAds","true"],["devtoolsDetector.launch","noopFunc"],["console.clear","throwFunc"],["ANN.ads.adblocked","false"],["maxUnauthenicatedArticleViews","null"],["placeAdsHandler","noopFunc"],["ramp.addUnits","noopFunc"],["pqdxwidthqt","false"],["nitroAds.loaded","true"],["jh_disabled_options_data","null"],["topMessage","noopFunc"],["document.onmousedown","null"],["forbidDebug","noopFunc"],["adblock","2"],["DisableDevtool","noopFunc"],["__NEXT_DATA__.props.pageProps.adPlacements","undefined"],["login_completed","true"],["console.table","trueFunc"],["console.log","trueFunc"],["Object.prototype.disableMenu","false"],["confirm","noopFunc"],["HTMLImageElement.prototype.onerror","undefined"]];
464
+ const hostnamesMap = new Map([["xn-----0b4asja8cbew2b4b0gd0edbjm2jpa1b1e9zva7a0347s4da2797e7qri.xn--1ck2e1b",0],["up4stream.com",1],["ups2up.fun",1],["9tsu.vip",1],["moviesapi.club",[1,126]],["watchx.top",1],["xclient.info",2],["bejson.com",2],["impots.gouv.fr",3],["airnavradar.com",4],["radarbox.com",4],["gearside.com",5],["nytimes.com",[6,7]],["tvtropes.org",8],["justtrucks.com.au",9],["cittadinanza.biz",10],["glistranieri.it",10],["ideapod.com",[10,20]],["privivkainfo.ru",10],["awebstories.com",[10,103]],["ancient.eu",11],["intramed.net",12],["protest.eu",13],["northwestfirearms.com",14],["techkings.org",14],["spookshow.net",15],["fosshub.com",16],["pokemonforever.com",17],["carsguide.com.au",18],["humo.be",19],["webwereld.nl",21],["palemoon.org",22],["wheel-size.com",23],["aoezone.net",24],["radioony.fm",25],["mexiconewsdaily.com",26],["technologyreview.com",27],["bdcraft.net",28],["instagram.com",29],["wired.co.uk",30],["gq-magazine.co.uk",30],["glamourmagazine.co.uk",30],["m.youtube.com",31],["music.youtube.com",31],["tv.youtube.com",31],["www.youtube.com",31],["youtubekids.com",31],["buienradar.nl",32],["clk.ink",33],["earnload.*",33],["windows101tricks.com",34],["hindipix.*",[35,36]],["vidsrc.*",[36,126,139]],["bitcine.app",[36,142,143]],["cineby.app",[36,142,143]],["moflix-stream.day",[36,142,143]],["tv.verizon.com",[36,142,143]],["fontsfree.pro",37],["oceanof-games.com",38],["strangermeetup.com",39],["adslayuda.com",40],["intergate.info",41],["alphapolis.co.jp",[41,44]],["chronologia.pl",[41,44]],["reportergazeta.pl",[41,44,48]],["odiarioonline.com.br",[41,56]],["nordkorea-info.de",41],["geotips.net",[41,61]],["noweconomy.live",41],["naaree.com",[41,56]],["cda-hd.cc",41],["hqq.to",[41,57,75]],["tv-tokyo.co.jp",41],["arti-definisi-pengertian.info",41],["studyadda.com",[41,136]],["handball-world.news",42],["mobiflip.de",42],["titanic-magazin.de",42],["mimikama.org",42],["langweiledich.net",42],["der-postillon.com",42],["perlentaucher.de",42],["lwlies.com",42],["serieslyawesome.tv",42],["critic.de",42],["mediotejo.net",42],["nahrungsmittel-intoleranz.com",42],["madeinbocholt.de",42],["goodnews-magazin.de",42],["wallauonline.de",42],["cleanthinking.de",42],["avdelphi.com",43],["doods.*",45],["ds2play.com",45],["ds2video.com",45],["d0o0d.com",45],["vidembed.me",45],["mzzcloud.life",45],["videobot.stream",45],["videovard.*",45],["justswallows.net",45],["onscreensvideo.com",45],["katerionews.com",45],["telenovelas-turcas.com.es",45],["kmo.to",45],["jeniusplay.com",[45,118]],["southcloud.tv",45],["d0000d.com",45],["4x4earth.com",46],["jootc.com",[47,48]],["photobank.mainichi.co.jp",49],["tbs.co.jp",50],["rottentomatoes.com",51],["sovetromantica.com",52],["longecity.org",53],["fruit01.xyz",54],["foxteller.com",54],["lyricstranslate.com",55],["hardcoregames.ca",56],["allsmo.com",56],["themosvagas.com.br",56],["urbharat.xyz",56],["sportnews.to",[56,81]],["123movies.*",57],["miraculous.to",[57,80]],["webnovel.com",57],["pepperlive.info",57],["unbiasedsenseevent.com",57],["maxt.church",57],["cool-etv.net",57],["vgembed.com",[57,112]],["photopea.com",57],["szkolawohyn.pl",58],["torrentlawyer.com",[58,63,64,65]],["virpe.cc",58],["gmarket.co.kr",[58,64]],["paesifantasma.it",59],["talpo.it",59],["quora.com",60],["gmx.net",62],["hoca4u.com",64],["youmath.it",66],["renditepassive.net",[67,68,69,70,71]],["360doc.com",72],["logonews.cn",73],["spanishdict.com",74],["cloudcomputingtopics.net",75],["0123movies.ch",[75,84,88,116]],["epn.bz",76],["affbank.com",77],["gardenia.net",[78,79]],["meteoblue.com",82],["novelpia.com",[83,84]],["brainly.*",85],["blueraindrops.com",86],["animecruzers.com",87],["descargatepelis.com",88],["news.ntv.co.jp",88],["bongdaplus.vn",88],["bestjavporn.com",89],["mm9841.cc",89],["ggwash.org",[90,91]],["ask4movie.*",[92,93]],["watch.lonelil.com",93],["cinegrabber.com",94],["readawrite.com",[95,96,97,98,99,100,101]],["morosedog.gitlab.io",102],["indianhealthyrecipes.com",104],["thailandopen.org",[105,106]],["theaircurrent.com",[105,106]],["freereadnovel.online",[105,106]],["reborntrans.com",[105,106]],["secondlifetranslations.com",[105,106]],["koltry.life",[105,106]],["kolnovel.com",[105,106]],["heavyfetish.com",107],["joysound.com",[108,109,110]],["colors.sonicthehedgehog.com",[110,113]],["bluemediafile.*",111],["leakedzone.com",114],["mehoathinh2.com",115],["brutal.io",117],["powerline.io",117],["enduro-mtb.com",119],["kukaj.io",120],["aniwave.*",121],["anix.*",121],["flixrave.to",121],["hdtoday.so",121],["vidplay.*",121],["vid2faf.site",121],["lazyadmin.nl",122],["thejakartapost.com",123],["colourxh.site",124],["fullxh.com",124],["galleryxh.site",124],["megaxh.com",124],["movingxh.world",124],["seexh.com",124],["unlockxh4.com",124],["valuexh.life",124],["xhaccess.com",124],["xhadult4.com",124],["xhamster.*",124],["xhamster1.*",124],["xhamster10.*",124],["xhamster11.*",124],["xhamster12.*",124],["xhamster13.*",124],["xhamster14.*",124],["xhamster15.*",124],["xhamster16.*",124],["xhamster17.*",124],["xhamster18.*",124],["xhamster19.*",124],["xhamster20.*",124],["xhamster2.*",124],["xhamster3.*",124],["xhamster4.*",124],["xhamster42.*",124],["xhamster46.com",124],["xhamster5.*",124],["xhamster7.*",124],["xhamster8.*",124],["xhbig.com",124],["xhbranch5.com",124],["xhchannel.com",124],["xhdate.world",124],["xhmoon5.com",124],["xhofficial.com",124],["xhopen.com",124],["xhplanet1.com",124],["xhplanet2.com",124],["xhreal2.com",124],["xhspot.com",124],["xhtotal.com",124],["xhvictory.com",124],["xhwebsite5.com",124],["xhwide5.com",124],["marinetraffic.com",125],["ymovies.vip",126],["aniwatch.to",126],["aniwatchtv.to",126],["megacloud.tv",126],["hianime.*",126],["hianimez.to",126],["putlocker.vip",126],["rapid-cloud.co",126],["rabbitstream.net",126],["pupupul.site",126],["netu.*",126],["netuplayer.top",126],["stbnetu.xyz",126],["thotsbay.tv",126],["vipstreams.in",126],["freewatchtv.top",126],["gdplayertv.*",126],["mixstreams.top",126],["tvfreemium.top",126],["abysscdn.com",126],["grostembed.online",127],["premiumembeding.cloud",127],["venusembed.site",127],["animekai.*",127],["anigo.to",127],["megaup.cc",127],["megaup.site",127],["rapidshare.cc",127],["sflix.fi",127],["yflix.to",127],["animenewsnetwork.com",128],["androidpolice.com",129],["makeuseof.com",129],["movieweb.com",129],["xda-developers.com",129],["thegamer.com",129],["cbr.com",129],["gamerant.com",129],["screenrant.com",129],["howtogeek.com",129],["thethings.com",129],["simpleflying.com",129],["dualshockers.com",129],["digminecraft.com",130],["arras.io",131],["arras.netlify.app",131],["arrax.io",131],["how-to-pc.info",132],["programming-link.info",132],["maxroll.gg",133],["tv.bdix.app",134],["hitokageproduction.com",135],["dngz.net",137],["vnexpress.net",138],["archon.gg",140],["einthusan.tv",141],["sussytoons.*",144],["astro-cric.pages.dev",145],["crichype.*",145],["jio.pftv.ws",145],["shz.al",145],["tnt2-cricstreaming.pages.dev",145],["wlo-cricstreamiing.pages.dev",145],["sporttotal.tv",146]]);
465
465
  const exceptionsMap = new Map([]);
466
466
  const hasEntities = true;
467
467
  const hasAncestors = false;
@@ -371,8 +371,8 @@ function getRandomTokenFn() {
371
371
  /******************************************************************************/
372
372
 
373
373
  const scriptletGlobals = {}; // eslint-disable-line
374
- const argsList = [["EventTarget.prototype.addEventListener","window.getComputedStyle"],["document.getElementById","adBlockDetected"],["document.createElement","pagead2.googlesyndication.com"],["document.dispatchEvent","/getexoloader/"],["decodeURIComponent","pagead"],["document.querySelector","window.getComputedStyle"],["alert","typeof(ad)"],["jQuery","\\u"],["document.writeln","\\u"],["document.getElementById","/#myModal'\\)\\.modal/"],["setTimeout","COOKIE_NAME"],["$","adskilltest"],["document.getElementById","/!document\\.getElementById\\([\\s\\S]*?\\.style\\.display=/"],["$","!document.getElementById(btoa"],["eval","_0x"],["document.write","_0x"],["jQuery","injectPops"],["$","infoid"],["document.write","document.write(ad);"],["document.write","tips"],["document.write","/getCookie[\\s\\S]*?\\(\"\\\\x/"],["document.write","/\\.(gif|php)/"],["window.leave"],["$","popunder"],["document.write","position:"],["document.write","ads_codes"],["navigator","location.href"],["Math.random","parentNode.insertBefore"],["document.createElement","return a.split"],["Function","new Function(document["]];
375
- const hostnamesMap = new Map([["dqzboy.com",0],["playav.cc",1],["bilinovel.com",2],["jmcomic-zzz.org",3],["18comic.org",3],["18comic.vip",3],["vxetable.cn",4],["1keydata.com",5],["slit.cn",6],["jkpan.cc",[7,8]],["poedb.tw",9],["bingfeng.tw",10],["youranshare.com",11],["getitfree.cn",12],["pg-wuming.com",13],["m.lwxs.com",[14,15]],["akkxs.net",14],["pornbest.org",16],["nunuyy3.org",17],["dogfight360.com",18],["o8tv.com",19],["javlibrary.com",20],["hentaicomic.*",21],["wnacg1.cc",21],["wnacg.*",21],["pixnet.net",22],["ggjav.com",23],["porn87.com",23],["efuxs.com",24],["av6k.com",25],["m.shuhaige.net",[26,27,28]],["mxdm.xyz",29]]);
374
+ const argsList = [["EventTarget.prototype.addEventListener","window.getComputedStyle"],["document.getElementById","adBlockDetected"],["document.createElement","pagead2.googlesyndication.com"],["document.dispatchEvent","/getexoloader/"],["decodeURIComponent","pagead"],["document.querySelector","window.getComputedStyle"],["alert","typeof(ad)"],["jQuery","\\u"],["document.writeln","\\u"],["document.getElementById","/#myModal'\\)\\.modal/"],["setTimeout","COOKIE_NAME"],["$","adskilltest"],["document.getElementById","/!document\\.getElementById\\([\\s\\S]*?\\.style\\.display=/"],["$","!document.getElementById(btoa"],["eval","_0x"],["document.write","_0x"],["jQuery","injectPops"],["$","infoid"],["document.write","document.write(ad);"],["document.write","tips"],["document.write","/getCookie[\\s\\S]*?\\(\"\\\\x/"],["document.write","/\\.(gif|php)/"],["window.leave"],["$","popunder"],["$","/deposit-bonus?platform=26&utm_source="],["$","mmPopup() {"],["document.getElementsByTagName","_mtj"],["document.writeln"],["document.write"],["document.write","position:"],["document.write","ads_codes"],["navigator","location.href"],["Math.random","parentNode.insertBefore"],["document.createElement","return a.split"],["Function","new Function(document["]];
375
+ const hostnamesMap = new Map([["dqzboy.com",0],["playav.cc",1],["bilinovel.com",2],["jmcomic-zzz.org",3],["18comic.org",3],["18comic.vip",3],["vxetable.cn",4],["1keydata.com",5],["slit.cn",6],["jkpan.cc",[7,8]],["poedb.tw",9],["bingfeng.tw",10],["youranshare.com",11],["getitfree.cn",12],["pg-wuming.com",13],["m.lwxs.com",[14,15]],["akkxs.net",14],["pornbest.org",16],["nunuyy3.org",17],["dogfight360.com",18],["o8tv.com",19],["javlibrary.com",20],["hentaicomic.*",21],["wnacg1.cc",21],["wnacg.*",21],["pixnet.net",22],["ggjav.com",23],["porn87.com",23],["macromicro.me",[24,25]],["bz88888.net",26],["umbooks.com",27],["haiwaishubao.com",28],["efuxs.com",29],["av6k.com",30],["m.shuhaige.net",[31,32,33]],["mxdm.xyz",34]]);
376
376
  const exceptionsMap = new Map([]);
377
377
  const hasEntities = true;
378
378
  const hasAncestors = false;
@@ -417,8 +417,8 @@ function shouldDebug(details) {
417
417
  /******************************************************************************/
418
418
 
419
419
  const scriptletGlobals = {}; // eslint-disable-line
420
- const argsList = [["DOMContentLoaded","check"],["error","event.target.tagName"],["DOMContentLoaded","adBlock"],["","showRemoveAdBlocker"],["DOMContentLoaded","document.createElement"],["touchend","window.location.href"],["touchend","clientheight"]];
421
- const hostnamesMap = new Map([["xchina.co",0],["rjno1.com",1],["linovelib.com",2],["xiebruce.top",3],["85tube.com",4],["beqg.cc",5],["biquge321.com",5],["wap.yushuwu.cloud",6]]);
420
+ const argsList = [["DOMContentLoaded","check"],["error","event.target.tagName"],["DOMContentLoaded","adBlock"],["","showRemoveAdBlocker"],["DOMContentLoaded","document.createElement"],["DOMContentLoaded","localStorage"],["touchend","window.location.href"],["touchend","clientheight"]];
421
+ const hostnamesMap = new Map([["xchina.co",0],["rjno1.com",1],["linovelib.com",2],["xiebruce.top",3],["85tube.com",4],["iplark.com",5],["69shumi.com",6],["biquge543.com",6],["beqg.cc",6],["biquge321.com",6],["m.13xsw.com",7],["wap.yushuwu.cloud",7]]);
422
422
  const exceptionsMap = new Map([]);
423
423
  const hasEntities = false;
424
424
  const hasAncestors = false;
@@ -251,8 +251,8 @@ function safeSelf() {
251
251
  /******************************************************************************/
252
252
 
253
253
  const scriptletGlobals = {}; // eslint-disable-line
254
- const argsList = [["adCountDown","","0.02"],["video-ad-timeout","*","0.02"],["","","0.02"],["CloseAd","","0.02"]];
255
- const hostnamesMap = new Map([["51zxw.net",0],["iwatchme2u.com",1],["youku.com",2],["zhenbuka3.com",3],["bukaivip.com",3]]);
254
+ const argsList = [["adCountDown","","0.02"],["video-ad-timeout","*","0.02"],["","","0.02"],["CloseAd","","0.02"],[".current=setTimeout","5000","0.001"]];
255
+ const hostnamesMap = new Map([["51zxw.net",0],["iwatchme2u.com",1],["youku.com",2],["zhenbuka3.com",3],["bukaivip.com",3],["douyin.com",4]]);
256
256
  const exceptionsMap = new Map([]);
257
257
  const hasEntities = false;
258
258
  const hasAncestors = false;
@@ -425,7 +425,7 @@ function getRandomTokenFn() {
425
425
  /******************************************************************************/
426
426
 
427
427
  const scriptletGlobals = {}; // eslint-disable-line
428
- const argsList = [["*.*","adFeedbackData adType adServedUrls"],["*","list.*.link.ad list.*.link.kicker"],["configs.*.properties.slideshowWCSettings.interstitialNativeAds configs.*.properties.fullScreenSlideshowSettings.interstitialNativeAds properties.componentConfigs.slideshowConfigs.interstitialNativeAds properties.componentConfigs.slideshowConfigs.slideshowSettings.interstitialNativeAds"],["data.CardList.[].children_list.ad_list data.CardList.[-].params.advertiser_name"],["items.*.video.*.data.[-].ad.adScene data.template.tabs.*.blocks.*.data.data.*.videos.feature_ad data.template.tabs.*.blocks.*.data.data.videos.*.ad"],["ads"],["ad"],["data.cm_info.ads"]];
428
+ const argsList = [["*.*","adFeedbackData adType adServedUrls"],["*","list.*.link.ad list.*.link.kicker"],["configs.*.properties.slideshowWCSettings.interstitialNativeAds configs.*.properties.fullScreenSlideshowSettings.interstitialNativeAds properties.componentConfigs.slideshowConfigs.interstitialNativeAds properties.componentConfigs.slideshowConfigs.slideshowSettings.interstitialNativeAds"],["data.CardList.[].children_list.ad_list data.CardList.[-].params.advertiser_name"],["data.[-].ad.adScene items.*.video.*.data.[-].ad.adScene data.template.tabs.*.blocks.*.data.data.*.videos.feature_ad data.template.tabs.*.blocks.*.data.data.videos.*.ad"],["ads"],["ad"],["data.cm_info.ads"]];
429
429
  const hostnamesMap = new Map([["msn.cn",[0,1,2]],["v.qq.com",[3,5]],["iqiyi.com",4],["sports.qq.com",5],["news.qq.com",5],["www.qq.com",5],["new.qq.com",5],["qq.com",6],["bilibili.com",7]]);
430
430
  const exceptionsMap = new Map([["sports.qq.com",[6]],["work.weixin.qq.com",[6]]]);
431
431
  const hasEntities = false;
@@ -41,6 +41,7 @@ function preventFetchFn(
41
41
  responseType = ''
42
42
  ) {
43
43
  const safe = safeSelf();
44
+ const setTimeout = self.setTimeout;
44
45
  const scriptletName = `${trusted ? 'trusted-' : ''}prevent-fetch`;
45
46
  const logPrefix = safe.makeLogPrefix(
46
47
  scriptletName,
@@ -48,6 +49,7 @@ function preventFetchFn(
48
49
  responseBody,
49
50
  responseType
50
51
  );
52
+ const extraArgs = safe.getExtraArgs(Array.from(arguments), 4);
51
53
  const needles = [];
52
54
  for ( const condition of safe.String_split.call(propsToMatch, /\s+/) ) {
53
55
  if ( condition === '' ) { continue; }
@@ -135,6 +137,11 @@ function preventFetchFn(
135
137
  responseProps
136
138
  );
137
139
  safe.Object_defineProperties(response, props);
140
+ if ( extraArgs.throttle ) {
141
+ return new Promise(resolve => {
142
+ setTimeout(( ) => { resolve(response); }, extraArgs.throttle);
143
+ });
144
+ }
138
145
  return response;
139
146
  });
140
147
  });
@@ -472,8 +479,8 @@ function safeSelf() {
472
479
  /******************************************************************************/
473
480
 
474
481
  const scriptletGlobals = {}; // eslint-disable-line
475
- const argsList = [["pagead2.googlesyndication.com"],["method:HEAD"],["/googlesyndication\\.com|doubleclick\\.net/"],["www3.doubleclick.net"],["/pagead2\\.googlesyndication\\.com|\\/fbevents\\.js/"]];
476
- const hostnamesMap = new Map([["slashview.com",0],["fsbot.xyz",0],["mpyit.com",0],["hmanga.world",1],["wandhi.com",2],["taiwanlibrarysearch.herokuapp.com",3],["linetv.tw",4]]);
482
+ const argsList = [["adsbygoogle.js"],["pagead2.googlesyndication.com"],["method:HEAD"],["/googlesyndication\\.com|doubleclick\\.net/"],["www3.doubleclick.net"],["/pagead2\\.googlesyndication\\.com|\\/fbevents\\.js/"]];
483
+ const hostnamesMap = new Map([["helper-employer.com",0],["slashview.com",1],["fsbot.xyz",1],["mpyit.com",1],["hmanga.world",2],["wandhi.com",3],["taiwanlibrarysearch.herokuapp.com",4],["linetv.tw",5]]);
477
484
  const exceptionsMap = new Map([]);
478
485
  const hasEntities = false;
479
486
  const hasAncestors = false;
@@ -362,8 +362,8 @@ function safeSelf() {
362
362
  /******************************************************************************/
363
363
 
364
364
  const scriptletGlobals = {}; // eslint-disable-line
365
- const argsList = [[".offsetHeight == 0"],[".offsetHeight"],["float_right > div"],["adblock_tip"],["/\\.height\\(\\) == 0|adsbygoogle/"],["myModal"],["loadErrorTip"],["ins.adsbygoogle"],["_0x"],["adblock"],["发现严重BUG"],["checker"],["/(\\s|\\()tpc/"],["/home/?adblock="],["ad_num_show"],["adsbygoogle"],["checkSiteNormalLoad"],["/ad block stop|warm_msg/"],["location.href","3000"],["window.location.href"],["ecjkox.com"],["/getCookie|checkCK|checkCookie|checkC00kie|checkCoookie|checkCookiiiie|document\\.cookie|buttonClose|exptime/"]];
366
- const hostnamesMap = new Map([["445nan.com",0],["ftchinese.com",1],["jmcomic-zzz.org",2],["18comic.org",2],["18comic.vip",2],["itdog.cn",3],["xbeibeix.com",4],["520cc.cc",[5,18]],["colamanga.com",6],["cocomanga.com",[6,16]],["ekamus.info",7],["logi.im",7],["moeci.com",8],["tingfm.com",9],["233tw.com",10],["ruanyifeng.com",11],["t66y.com",12],["tsubasa.im",13],["league-funny.com",14],["haoweichi.com",15],["ohmanhua.com",16],["onemanhua.com",16],["5278.cc",17],["hboav.com",17],["erciyan.com",19],["youziks.com",20],["axutongxue.onrender.com",21],["axutongxue.space",21],["axutongxue.cn",21],["axu.pages.dev",21],["axutongxue.vip",21],["axutongxue.com",21],["axutongxue.net",21]]);
365
+ const argsList = [[".offsetHeight == 0"],[".offsetHeight"],["float_right > div"],["adblock_tip"],["/\\.height\\(\\) == 0|adsbygoogle/"],["myModal"],["loadErrorTip"],["ins.adsbygoogle"],["_0x"],["adblock"],["发现严重BUG"],["checker"],["/(\\s|\\()tpc/"],["/home/?adblock="],["ad_num_show"],["adsbygoogle"],["checkSiteNormalLoad"],["/ad block stop|warm_msg/"],["location.href","3000"],["try{e()}catch(e){if(t[e.message])return;"],["window.location.href"],["ecjkox.com"],["/getCookie|checkCK|checkCookie|checkC00kie|checkCoookie|checkCookiiiie|document\\.cookie|buttonClose|exptime/"]];
366
+ const hostnamesMap = new Map([["445nan.com",0],["ftchinese.com",1],["jmcomic-zzz.org",2],["18comic.org",2],["18comic.vip",2],["itdog.cn",3],["xbeibeix.com",4],["520cc.cc",[5,18]],["colamanga.com",6],["cocomanga.com",[6,16]],["ekamus.info",7],["logi.im",7],["moeci.com",8],["tingfm.com",9],["233tw.com",10],["ruanyifeng.com",11],["t66y.com",12],["tsubasa.im",13],["league-funny.com",14],["haoweichi.com",15],["ohmanhua.com",16],["onemanhua.com",16],["5278.cc",17],["hboav.com",17],["cidetxt.cc",19],["erciyan.com",20],["youziks.com",21],["axutongxue.onrender.com",22],["axutongxue.space",22],["axutongxue.cn",22],["axu.pages.dev",22],["axutongxue.vip",22],["axutongxue.com",22],["axutongxue.net",22]]);
367
367
  const exceptionsMap = new Map([]);
368
368
  const hasEntities = false;
369
369
  const hasAncestors = false;
@@ -391,7 +391,7 @@ function safeSelf() {
391
391
 
392
392
  const scriptletGlobals = {}; // eslint-disable-line
393
393
  const argsList = [[],["/bit\\.ly|kbtv/"],["0","qciss.net"],["88p2p.com"]];
394
- const hostnamesMap = new Map([["embedrise.com",0],["88files.net",0],["freejavbt.com",0],["vikacg.com",0],["iwatchme2u.com",1],["qciss.net",2],["5278.cc",3]]);
394
+ const hostnamesMap = new Map([["embedrise.com",0],["88files.net",0],["freejavbt.com",0],["umbooks.com",0],["vikacg.com",0],["iwatchme2u.com",1],["qciss.net",2],["5278.cc",3]]);
395
395
  const exceptionsMap = new Map([]);
396
396
  const hasEntities = false;
397
397
  const hasAncestors = false;
@@ -460,8 +460,8 @@ function validateConstantFn(trusted, raw, extraArgs = {}) {
460
460
  /******************************************************************************/
461
461
 
462
462
  const scriptletGlobals = {}; // eslint-disable-line
463
- const argsList = [["ad_id_for_555",""],["all520dddaaa2022ccc","true"],["_AdBlockInit","noopFunc"],["checkAndHandleAdBlock","undefined"],["adsbygoogle","{}"],["adsbygoogle.loaded","true"],["AD_SURVEY_Add_AdPos","noopFunc"],["AD_SURVEY_Add_AdPos_Simple","noopFunc"],["killads","true"],["isAdsDisplayed","true"],["fuzqingAdPlus","{}"],["all520dddaaa2022aaa","undefined"],["canRunAds","true"],["adblock","0"],["can_run_ads","true"],["google_tag_manager","{}"],["google.ima.AdError","noopFunc"],["ga","noopFunc"],["google_empty_script_included","true"],["adsbygoogle","noopFunc"],["Object.prototype.cnobpreroll_","true"],["Object.prototype.canobpreroll_","true"],["ads",""],["NativeAd","noopFunc"],["__jsadsuccess","true"],["onload","null"],["adbk","false"],["config.group",""],["preBid","{}"],["preBid.displayAd","noopFunc"],["preBid.getPrerollVASTUrl","noopFunc"],["player.VastADPlugin","noopFunc"],["ADSOBJET","{}"],["myPlayer.adDisplay","undefined"],["NEWS_FEED","noopFunc"],["conone_lmg","noopFunc"],["Object.prototype.ad_switch","0"],["dy_card_dyrun","undefined"],["poped","true"],["Object.prototype.adData","{}"],["Object.prototype._adData","{}"],["MM_openBrWindow","noopFunc"],["lists","undefined"],["is_show","false"],["allData.safeLevel","1"],["appData","[]"],["topData","[]"],["midData","[]"],["btmData","[]"],["coupletData","[]"],["adInfo","{}"],["isAdLoaded","true"],["Object.prototype.noAD","true"],["infoList","[]"],["CreativePlayerwebPlugin.AD_EVENT.AD_DESTROY",""],["CreativePlayerwebPlugin.AD_EVENT.AD_LOAD_START",""],["ConFig.config.ads","{}"],["pageData.__banners.0.commercial.mediaUrl",""],["pageData.__banners.0.commercial.jumpUrl",""],["pageData.__banners.0.commercial.title",""],["pageData.__banners.1.commercial.mediaUrl",""],["pageData.__banners.1.commercial.jumpUrl",""],["pageData.__banners.1.commercial.title",""],["detailParams.is_ad_play","false"]];
464
- const hostnamesMap = new Map([["surirt.com",[0,1]],["520cc.cc",1],["520call.me",[1,11]],["baomidou.com",2],["nodejs.cn",[2,4,5]],["docsmall.com",2],["bilinovel.com",3],["huanqiu.com",[6,7]],["itbaoku.cn",8],["yaociyuan.bid",8],["bigpixel.cn",8],["jkpan.cc",8],["ekamus.info",9],["koyi.pub",10],["bde4.icu",12],["tingfm.com",[12,14]],["slashlook.com",12],["linovelib.com",13],["linetv.tw",[15,16]],["ebb.io",[17,18]],["wenxuecity.com",19],["ddys.*",[20,21]],["ddrk.me",[20,21]],["sssam.com",22],["cocomanga.com",[23,24]],["ohmanhua.com",[23,24]],["onemanhua.com",[23,24]],["hboav.com",[25,26]],["cnys.tv",27],["now.com",[28,29,30]],["player.hboav.com",31],["x99av.com",32],["hamivideo.hinet.net",33],["jianshu.com",34],["xkyn.com",35],["tangdoucdn.com",36],["dianyingim.com",37],["xvideo.cc",38],["v-wb.youku.com",39],["m.youku.com",40],["v.youku.com",40],["edc1014070.pixnet.net",41],["m.biqiugege8.com",42],["theav.xyz",43],["69xx.one",43],["theporn.cc",43],["v.ifeng.com",44],["445nan.com",[45,46,47,48,49]],["huya.com",50],["le.com",[51,52]],["axutongxue.onrender.com",53],["axutongxue.space",53],["axutongxue.cn",53],["axu.pages.dev",53],["axutongxue.vip",53],["axutongxue.com",53],["axutongxue.net",53],["sports.qq.com",[54,55]],["lpl.qq.com",[54,55]],["v.qq.com",[54,55]],["huaren.live",56],["nivod2.com",[57,58,59,60,61,62,63]],["nivod2.tv",[57,58,59,60,61,62,63]],["nivod4.com",[57,58,59,60,61,62,63]],["nivod5.com",[57,58,59,60,61,62,63]]]);
463
+ const argsList = [["ad_id_for_555",""],["all520dddaaa2022ccc","true"],["_AdBlockInit","noopFunc"],["checkAndHandleAdBlock","undefined"],["adsbygoogle","{}"],["adsbygoogle.loaded","true"],["AD_SURVEY_Add_AdPos","noopFunc"],["AD_SURVEY_Add_AdPos_Simple","noopFunc"],["killads","true"],["isAdsDisplayed","true"],["fuzqingAdPlus","{}"],["all520dddaaa2022aaa","undefined"],["canRunAds","true"],["adblock","0"],["can_run_ads","true"],["google_tag_manager","{}"],["google.ima.AdError","noopFunc"],["ga","noopFunc"],["google_empty_script_included","true"],["adsbygoogle","noopFunc"],["Object.prototype.cnobpreroll_","true"],["Object.prototype.canobpreroll_","true"],["ads",""],["NativeAd","noopFunc"],["__jsadsuccess","true"],["onload","null"],["adbk","false"],["config.group",""],["preBid","{}"],["preBid.displayAd","noopFunc"],["preBid.getPrerollVASTUrl","noopFunc"],["player.VastADPlugin","noopFunc"],["ADSOBJET","{}"],["myPlayer.adDisplay","undefined"],["NEWS_FEED","noopFunc"],["conone_lmg","noopFunc"],["Object.prototype.ad_switch","0"],["dy_card_dyrun","undefined"],["poped","true"],["Object.prototype.adData","{}"],["Object.prototype._adData","{}"],["MM_openBrWindow","noopFunc"],["lists","undefined"],["is_show","false"],["allData.safeLevel","1"],["appData","[]"],["topData","[]"],["midData","[]"],["btmData","[]"],["coupletData","[]"],["adInfo","{}"],["isAdLoaded","true"],["Object.prototype.noAD","true"],["infoList","[]"],["adObj","noopFunc"],["CreativePlayerwebPlugin.AD_EVENT.AD_DESTROY",""],["CreativePlayerwebPlugin.AD_EVENT.AD_LOAD_START",""],["ConFig.config.ads","{}"],["pageData.__banners.0.commercial.mediaUrl",""],["pageData.__banners.0.commercial.jumpUrl",""],["pageData.__banners.0.commercial.title",""],["pageData.__banners.1.commercial.mediaUrl",""],["pageData.__banners.1.commercial.jumpUrl",""],["pageData.__banners.1.commercial.title",""],["detailParams.is_ad_play","false"]];
464
+ const hostnamesMap = new Map([["surirt.com",[0,1]],["520cc.cc",1],["520call.me",[1,11]],["baomidou.com",2],["nodejs.cn",[2,4,5]],["docsmall.com",2],["bilinovel.com",3],["huanqiu.com",[6,7]],["itbaoku.cn",8],["yaociyuan.bid",8],["bigpixel.cn",8],["jkpan.cc",8],["ekamus.info",9],["koyi.pub",10],["bde4.icu",12],["tingfm.com",[12,14]],["slashlook.com",12],["linovelib.com",13],["linetv.tw",[15,16]],["ebb.io",[17,18]],["wenxuecity.com",19],["ddys.*",[20,21]],["ddrk.me",[20,21]],["sssam.com",22],["cocomanga.com",[23,24]],["ohmanhua.com",[23,24]],["onemanhua.com",[23,24]],["hboav.com",[25,26]],["cnys.tv",27],["now.com",[28,29,30]],["player.hboav.com",31],["x99av.com",32],["hamivideo.hinet.net",33],["jianshu.com",34],["xkyn.com",35],["tangdoucdn.com",36],["dianyingim.com",37],["xvideo.cc",38],["v-wb.youku.com",39],["m.youku.com",40],["v.youku.com",40],["edc1014070.pixnet.net",41],["m.biqiugege8.com",42],["theav.xyz",43],["69xx.one",43],["theporn.cc",43],["v.ifeng.com",44],["445nan.com",[45,46,47,48,49]],["huya.com",50],["le.com",[51,52]],["axutongxue.onrender.com",53],["axutongxue.space",53],["axutongxue.cn",53],["axu.pages.dev",53],["axutongxue.vip",53],["axutongxue.com",53],["axutongxue.net",53],["enhuku.com",54],["sports.qq.com",[55,56]],["lpl.qq.com",[55,56]],["v.qq.com",[55,56]],["huaren.live",57],["nivod2.com",[58,59,60,61,62,63,64]],["nivod2.tv",[58,59,60,61,62,63,64]],["nivod4.com",[58,59,60,61,62,63,64]],["nivod5.com",[58,59,60,61,62,63,64]]]);
465
465
  const exceptionsMap = new Map([]);
466
466
  const hasEntities = true;
467
467
  const hasAncestors = false;
@@ -20,170 +20,131 @@
20
20
 
21
21
  */
22
22
 
23
- // ruleset: vie-1
23
+ // ruleset: chn-0
24
24
 
25
25
  // Important!
26
26
  // Isolate from global scope
27
27
 
28
28
  // Start of local scope
29
- (function uBOL_m3uPrune() {
29
+ (function uBOL_spoofCSS() {
30
30
 
31
31
  /******************************************************************************/
32
32
 
33
- function m3uPrune(
34
- m3uPattern = '',
35
- urlPattern = ''
33
+ function spoofCSS(
34
+ selector,
35
+ ...args
36
36
  ) {
37
- if ( typeof m3uPattern !== 'string' ) { return; }
38
- const safe = safeSelf();
39
- const logPrefix = safe.makeLogPrefix('m3u-prune', m3uPattern, urlPattern);
40
- const toLog = [];
41
- const regexFromArg = arg => {
42
- if ( arg === '' ) { return /^/; }
43
- const match = /^\/(.+)\/([gms]*)$/.exec(arg);
44
- if ( match !== null ) {
45
- let flags = match[2] || '';
46
- if ( flags.includes('m') ) { flags += 's'; }
47
- return new RegExp(match[1], flags);
48
- }
49
- return new RegExp(
50
- arg.replace(/[.+?^${}()|[\]\\]/g, '\\$&').replace(/\*+/g, '.*?')
51
- );
52
- };
53
- const reM3u = regexFromArg(m3uPattern);
54
- const reUrl = regexFromArg(urlPattern);
55
- const pruneSpliceoutBlock = (lines, i) => {
56
- if ( lines[i].startsWith('#EXT-X-CUE:TYPE="SpliceOut"') === false ) {
57
- return false;
58
- }
59
- toLog.push(`\t${lines[i]}`);
60
- lines[i] = undefined; i += 1;
61
- if ( lines[i].startsWith('#EXT-X-ASSET:CAID') ) {
62
- toLog.push(`\t${lines[i]}`);
63
- lines[i] = undefined; i += 1;
64
- }
65
- if ( lines[i].startsWith('#EXT-X-SCTE35:') ) {
66
- toLog.push(`\t${lines[i]}`);
67
- lines[i] = undefined; i += 1;
37
+ if ( typeof selector !== 'string' ) { return; }
38
+ if ( selector === '' ) { return; }
39
+ const toCamelCase = s => s.replace(/-[a-z]/g, s => s.charAt(1).toUpperCase());
40
+ const propToValueMap = new Map();
41
+ const privatePropToValueMap = new Map();
42
+ for ( let i = 0; i < args.length; i += 2 ) {
43
+ const prop = toCamelCase(args[i+0]);
44
+ if ( prop === '' ) { break; }
45
+ const value = args[i+1];
46
+ if ( typeof value !== 'string' ) { break; }
47
+ if ( prop.charCodeAt(0) === 0x5F /* _ */ ) {
48
+ privatePropToValueMap.set(prop, value);
49
+ } else {
50
+ propToValueMap.set(prop, value);
68
51
  }
69
- if ( lines[i].startsWith('#EXT-X-CUE-IN') ) {
70
- toLog.push(`\t${lines[i]}`);
71
- lines[i] = undefined; i += 1;
72
- }
73
- if ( lines[i].startsWith('#EXT-X-SCTE35:') ) {
74
- toLog.push(`\t${lines[i]}`);
75
- lines[i] = undefined; i += 1;
52
+ }
53
+ const safe = safeSelf();
54
+ const logPrefix = safe.makeLogPrefix('spoof-css', selector, ...args);
55
+ const instanceProperties = [ 'cssText', 'length', 'parentRule' ];
56
+ const spoofStyle = (prop, real) => {
57
+ const normalProp = toCamelCase(prop);
58
+ const shouldSpoof = propToValueMap.has(normalProp);
59
+ const value = shouldSpoof ? propToValueMap.get(normalProp) : real;
60
+ if ( shouldSpoof ) {
61
+ safe.uboLog(logPrefix, `Spoofing ${prop} to ${value}`);
76
62
  }
77
- return true;
63
+ return value;
78
64
  };
79
- const pruneInfBlock = (lines, i) => {
80
- if ( lines[i].startsWith('#EXTINF') === false ) { return false; }
81
- if ( reM3u.test(lines[i+1]) === false ) { return false; }
82
- toLog.push('Discarding', `\t${lines[i]}, \t${lines[i+1]}`);
83
- lines[i] = lines[i+1] = undefined; i += 2;
84
- if ( lines[i].startsWith('#EXT-X-DISCONTINUITY') ) {
85
- toLog.push(`\t${lines[i]}`);
86
- lines[i] = undefined; i += 1;
87
- }
88
- return true;
65
+ const cloackFunc = (fn, thisArg, name) => {
66
+ const trap = fn.bind(thisArg);
67
+ Object.defineProperty(trap, 'name', { value: name });
68
+ Object.defineProperty(trap, 'toString', {
69
+ value: ( ) => `function ${name}() { [native code] }`
70
+ });
71
+ return trap;
89
72
  };
90
- const pruner = text => {
91
- if ( (/^\s*#EXTM3U/.test(text)) === false ) { return text; }
92
- if ( m3uPattern === '' ) {
93
- safe.uboLog(` Content:\n${text}`);
94
- return text;
95
- }
96
- if ( reM3u.multiline ) {
97
- reM3u.lastIndex = 0;
98
- for (;;) {
99
- const match = reM3u.exec(text);
100
- if ( match === null ) { break; }
101
- let discard = match[0];
102
- let before = text.slice(0, match.index);
103
- if (
104
- /^[\n\r]+/.test(discard) === false &&
105
- /[\n\r]+$/.test(before) === false
106
- ) {
107
- const startOfLine = /[^\n\r]+$/.exec(before);
108
- if ( startOfLine !== null ) {
109
- before = before.slice(0, startOfLine.index);
110
- discard = startOfLine[0] + discard;
73
+ self.getComputedStyle = new Proxy(self.getComputedStyle, {
74
+ apply: function(target, thisArg, args) {
75
+ // eslint-disable-next-line no-debugger
76
+ if ( privatePropToValueMap.has('_debug') ) { debugger; }
77
+ const style = Reflect.apply(target, thisArg, args);
78
+ const targetElements = new WeakSet(document.querySelectorAll(selector));
79
+ if ( targetElements.has(args[0]) === false ) { return style; }
80
+ const proxiedStyle = new Proxy(style, {
81
+ get(target, prop) {
82
+ if ( typeof target[prop] === 'function' ) {
83
+ if ( prop === 'getPropertyValue' ) {
84
+ return cloackFunc(function getPropertyValue(prop) {
85
+ return spoofStyle(prop, target[prop]);
86
+ }, target, 'getPropertyValue');
87
+ }
88
+ return cloackFunc(target[prop], target, prop);
111
89
  }
112
- }
113
- let after = text.slice(match.index + match[0].length);
114
- if (
115
- /[\n\r]+$/.test(discard) === false &&
116
- /^[\n\r]+/.test(after) === false
117
- ) {
118
- const endOfLine = /^[^\n\r]+/.exec(after);
119
- if ( endOfLine !== null ) {
120
- after = after.slice(endOfLine.index);
121
- discard += discard + endOfLine[0];
90
+ if ( instanceProperties.includes(prop) ) {
91
+ return Reflect.get(target, prop);
122
92
  }
123
- }
124
- text = before.trim() + '\n' + after.trim();
125
- reM3u.lastIndex = before.length + 1;
126
- toLog.push('Discarding', ...safe.String_split.call(discard, /\n+/).map(s => `\t${s}`));
127
- if ( reM3u.global === false ) { break; }
93
+ return spoofStyle(prop, Reflect.get(target, prop));
94
+ },
95
+ getOwnPropertyDescriptor(target, prop) {
96
+ if ( propToValueMap.has(prop) ) {
97
+ return {
98
+ configurable: true,
99
+ enumerable: true,
100
+ value: propToValueMap.get(prop),
101
+ writable: true,
102
+ };
103
+ }
104
+ return Reflect.getOwnPropertyDescriptor(target, prop);
105
+ },
106
+ });
107
+ return proxiedStyle;
108
+ },
109
+ get(target, prop) {
110
+ if ( prop === 'toString' ) {
111
+ return target.toString.bind(target);
128
112
  }
129
- return text;
130
- }
131
- const lines = safe.String_split.call(text, /\n\r|\n|\r/);
132
- for ( let i = 0; i < lines.length; i++ ) {
133
- if ( lines[i] === undefined ) { continue; }
134
- if ( pruneSpliceoutBlock(lines, i) ) { continue; }
135
- if ( pruneInfBlock(lines, i) ) { continue; }
136
- }
137
- return lines.filter(l => l !== undefined).join('\n');
138
- };
139
- const urlFromArg = arg => {
140
- if ( typeof arg === 'string' ) { return arg; }
141
- if ( arg instanceof Request ) { return arg.url; }
142
- return String(arg);
143
- };
144
- const realFetch = self.fetch;
145
- self.fetch = new Proxy(self.fetch, {
113
+ return Reflect.get(target, prop);
114
+ },
115
+ });
116
+ Element.prototype.getBoundingClientRect = new Proxy(Element.prototype.getBoundingClientRect, {
146
117
  apply: function(target, thisArg, args) {
147
- if ( reUrl.test(urlFromArg(args[0])) === false ) {
148
- return Reflect.apply(target, thisArg, args);
118
+ // eslint-disable-next-line no-debugger
119
+ if ( privatePropToValueMap.has('_debug') ) { debugger; }
120
+ const rect = Reflect.apply(target, thisArg, args);
121
+ const targetElements = new WeakSet(document.querySelectorAll(selector));
122
+ if ( targetElements.has(thisArg) === false ) { return rect; }
123
+ let { x, y, height, width } = rect;
124
+ if ( privatePropToValueMap.has('_rectx') ) {
125
+ x = parseFloat(privatePropToValueMap.get('_rectx'));
149
126
  }
150
- return realFetch(...args).then(realResponse =>
151
- realResponse.text().then(text => {
152
- const response = new Response(pruner(text), {
153
- status: realResponse.status,
154
- statusText: realResponse.statusText,
155
- headers: realResponse.headers,
156
- });
157
- if ( toLog.length !== 0 ) {
158
- toLog.unshift(logPrefix);
159
- safe.uboLog(toLog.join('\n'));
160
- }
161
- return response;
162
- })
163
- );
164
- }
165
- });
166
- self.XMLHttpRequest.prototype.open = new Proxy(self.XMLHttpRequest.prototype.open, {
167
- apply: async (target, thisArg, args) => {
168
- if ( reUrl.test(urlFromArg(args[1])) === false ) {
169
- return Reflect.apply(target, thisArg, args);
127
+ if ( privatePropToValueMap.has('_recty') ) {
128
+ y = parseFloat(privatePropToValueMap.get('_recty'));
170
129
  }
171
- thisArg.addEventListener('readystatechange', function() {
172
- if ( thisArg.readyState !== 4 ) { return; }
173
- const type = thisArg.responseType;
174
- if ( type !== '' && type !== 'text' ) { return; }
175
- const textin = thisArg.responseText;
176
- const textout = pruner(textin);
177
- if ( textout === textin ) { return; }
178
- Object.defineProperty(thisArg, 'response', { value: textout });
179
- Object.defineProperty(thisArg, 'responseText', { value: textout });
180
- if ( toLog.length !== 0 ) {
181
- toLog.unshift(logPrefix);
182
- safe.uboLog(toLog.join('\n'));
183
- }
184
- });
185
- return Reflect.apply(target, thisArg, args);
186
- }
130
+ if ( privatePropToValueMap.has('_rectw') ) {
131
+ width = parseFloat(privatePropToValueMap.get('_rectw'));
132
+ } else if ( propToValueMap.has('width') ) {
133
+ width = parseFloat(propToValueMap.get('width'));
134
+ }
135
+ if ( privatePropToValueMap.has('_recth') ) {
136
+ height = parseFloat(privatePropToValueMap.get('_recth'));
137
+ } else if ( propToValueMap.has('height') ) {
138
+ height = parseFloat(propToValueMap.get('height'));
139
+ }
140
+ return new self.DOMRect(x, y, width, height);
141
+ },
142
+ get(target, prop) {
143
+ if ( prop === 'toString' ) {
144
+ return target.toString.bind(target);
145
+ }
146
+ return Reflect.get(target, prop);
147
+ },
187
148
  });
188
149
  }
189
150
 
@@ -380,8 +341,8 @@ function safeSelf() {
380
341
  /******************************************************************************/
381
342
 
382
343
  const scriptletGlobals = {}; // eslint-disable-line
383
- const argsList = [["/#EXT-X-DISCONTINUITY(.|\\n){1,1000}#EXT-X-DISCONTINUITY/gm","index.m3u8"]];
384
- const hostnamesMap = new Map([["yeuphim.fit",0]]);
344
+ const argsList = [[".adsbygoogle","display","block"]];
345
+ const hostnamesMap = new Map([["helper-employer.com",0]]);
385
346
  const exceptionsMap = new Map([]);
386
347
  const hasEntities = false;
387
348
  const hasAncestors = false;
@@ -449,7 +410,7 @@ if ( hasAncestors ) {
449
410
  // Apply scriplets
450
411
  for ( const i of todoIndices ) {
451
412
  if ( tonotdoIndices.has(i) ) { continue; }
452
- try { m3uPrune(...argsList[i]); }
413
+ try { spoofCSS(...argsList[i]); }
453
414
  catch { }
454
415
  }
455
416
 
@@ -372,7 +372,7 @@ function getRandomTokenFn() {
372
372
 
373
373
  const scriptletGlobals = {}; // eslint-disable-line
374
374
  const argsList = [["document.getElementsByTagName","gtm.js"],["document.createElement","admiral"],["document.createElement","googletag"],["document.getElementsByTagName",".pubads"],["document.createElement","keen-tracking"]];
375
- const hostnamesMap = new Map([["bolighub.dk",0],["247sports.com",1],["androidpolice.com",1],["bringmethenews.com",1],["mensjournal.com",1],["arstechnica.com",1],["audizine.com",1],["blackenterprise.com",1],["boston.com",1],["britannica.com",1],["cattime.com",1],["cbr.com",1],["cheatsheet.com",1],["collider.com",1],["comingsoon.net",1],["cwtv.com",1],["dogtime.com",1],["esportstales.com",1],["forums.hfboards.com",1],["freep.com",1],["fresnobee.com",1],["gamerant.com",1],["gbatemp.net",1],["golfdigest.com",1],["grabify.link",1],["hancinema.net",1],["hemmings.com",1],["howtogeek.com",1],["ijr.com",1],["informazionefiscale.it",1],["inquirer.net",1],["insider-gaming.com",1],["knowyourmeme.com",1],["magesypro.pro",1],["makeuseof.com",1],["money.it",1],["motorbiscuit.com",1],["movieweb.com",1],["nationalreview.com",1],["nbcnews.com",1],["neopets.com",1],["nofilmschool.com",1],["nypost.com",1],["omg.blog",1],["order-order.com",1],["playstationlifestyle.net",1],["pwinsider.com",1],["savvytime.com",1],["screenrant.com",1],["siliconera.com",1],["simpleflying.com",1],["sporcle.com",1],["stealthoptional.com",1],["techlicious.com",1],["technicpack.net",1],["thedraftnetwork.com",1],["thefashionspot.com",1],["thegamer.com",1],["thenerdstash.com",1],["titantv.com",1],["topspeed.com",1],["twinfinite.net",1],["videogamer.com",1],["wnd.com",1],["worldpopulationreview.com",1],["wral.com",1],["wrestlezone.com",1],["wrestlinginc.com",1],["xda-developers.com",1],["iwb.jp",2],["apnews.com",3],["sidereel.com",3],["mwed.jp",4]]);
375
+ const hostnamesMap = new Map([["bolighub.dk",0],["247sports.com",1],["androidpolice.com",1],["bringmethenews.com",1],["mensjournal.com",1],["arstechnica.com",1],["audizine.com",1],["blackenterprise.com",1],["boston.com",1],["cattime.com",1],["cbr.com",1],["cheatsheet.com",1],["collider.com",1],["comingsoon.net",1],["cwtv.com",1],["dogtime.com",1],["esportstales.com",1],["forums.hfboards.com",1],["freep.com",1],["fresnobee.com",1],["gamerant.com",1],["gbatemp.net",1],["golfdigest.com",1],["grabify.link",1],["hancinema.net",1],["hemmings.com",1],["howtogeek.com",1],["ijr.com",1],["informazionefiscale.it",1],["inquirer.net",1],["insider-gaming.com",1],["knowyourmeme.com",1],["magesypro.pro",1],["makeuseof.com",1],["money.it",1],["motorbiscuit.com",1],["movieweb.com",1],["nationalreview.com",1],["nbcnews.com",1],["neopets.com",1],["nofilmschool.com",1],["nypost.com",1],["omg.blog",1],["order-order.com",1],["playstationlifestyle.net",1],["pwinsider.com",1],["savvytime.com",1],["screenrant.com",1],["siliconera.com",1],["simpleflying.com",1],["sporcle.com",1],["stealthoptional.com",1],["techlicious.com",1],["technicpack.net",1],["thedraftnetwork.com",1],["thefashionspot.com",1],["thegamer.com",1],["thenerdstash.com",1],["titantv.com",1],["topspeed.com",1],["twinfinite.net",1],["videogamer.com",1],["wnd.com",1],["worldpopulationreview.com",1],["wral.com",1],["wrestlezone.com",1],["wrestlinginc.com",1],["xda-developers.com",1],["iwb.jp",2],["apnews.com",3],["sidereel.com",3],["mwed.jp",4]]);
376
376
  const exceptionsMap = new Map([]);
377
377
  const hasEntities = false;
378
378
  const hasAncestors = false;
@@ -41,6 +41,7 @@ function preventFetchFn(
41
41
  responseType = ''
42
42
  ) {
43
43
  const safe = safeSelf();
44
+ const setTimeout = self.setTimeout;
44
45
  const scriptletName = `${trusted ? 'trusted-' : ''}prevent-fetch`;
45
46
  const logPrefix = safe.makeLogPrefix(
46
47
  scriptletName,
@@ -48,6 +49,7 @@ function preventFetchFn(
48
49
  responseBody,
49
50
  responseType
50
51
  );
52
+ const extraArgs = safe.getExtraArgs(Array.from(arguments), 4);
51
53
  const needles = [];
52
54
  for ( const condition of safe.String_split.call(propsToMatch, /\s+/) ) {
53
55
  if ( condition === '' ) { continue; }
@@ -135,6 +137,11 @@ function preventFetchFn(
135
137
  responseProps
136
138
  );
137
139
  safe.Object_defineProperties(response, props);
140
+ if ( extraArgs.throttle ) {
141
+ return new Promise(resolve => {
142
+ setTimeout(( ) => { resolve(response); }, extraArgs.throttle);
143
+ });
144
+ }
138
145
  return response;
139
146
  });
140
147
  });