diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..69affb1 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +app-profile.apk diff --git a/flutter/LICENSE b/flutter/LICENSE new file mode 100644 index 0000000..186dec9 --- /dev/null +++ b/flutter/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 sail-tunnel + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/flutter/README_zh-CN.md b/flutter/README_zh-CN.md new file mode 100644 index 0000000..3d2219c --- /dev/null +++ b/flutter/README_zh-CN.md @@ -0,0 +1,73 @@ +[English](./README.md) | 简体中文 + +# Sail + +![Flutter](https://img.shields.io/badge/Flutter-02569B?style=for-the-badge&logo=flutter&logoColor=white) +![Rust](https://img.shields.io/badge/Rust-000000?style=for-the-badge&logo=rust&logoColor=white) +![Kotlin](https://img.shields.io/badge/Kotlin-0095D5?&style=for-the-badge&logo=kotlin&logoColor=white) +![Swift](https://img.shields.io/badge/Swift-FA7343?style=for-the-badge&logo=swift&logoColor=white) +![iOS](https://img.shields.io/badge/iOS-000000?style=for-the-badge&logo=ios&logoColor=white) +![Android](https://img.shields.io/badge/Android-3DDC84?style=for-the-badge&logo=android&logoColor=white) + +[![Flutter](https://github.com/sail-tunnel/sail/actions/workflows/flutter.yml/badge.svg)](https://github.com/sail-tunnel/sail/actions/workflows/flutter.yml) + +使用 [Flutter](https://github.com/flutter/flutter) 为 [V2Board](https://github.com/v2board/v2board) ~~及 [SSPanel-Uim](https://github.com/Anankke/SSPanel-Uim) 构建的应用~~ + +现在支持iOS而非Android, 我没有Android设备😂. + +重现 [Mohammad Reza Farahzad 的设计](https://dribbble.com/shots/14028358-VPN-App-Ui-Design?utm_source=Clipboard_Shot&utm_campaign=mrfarahzad&utm_content=VPN%20App%20Ui%20Design&utm_medium=Social_Share) + +**如果这个项目对你有帮助,请给我一颗小星星⭐️。** + +## 截图 + +Screenshot +Screenshot +Screenshot + +## 资源 +- [Mohammad Reza Farahzad 的设计](https://dribbble.com/shots/14028358-VPN-App-Ui-Design?utm_source=Clipboard_Shot&utm_campaign=mrfarahzad&utm_content=VPN%20App%20Ui%20Design&utm_medium=Social_Share) +- [flat flags](https://github.com/wobblecode/flat-flags) + +## 联络我 +[![Telegram](https://img.shields.io/badge/Telegram-2CA5E0?style=for-the-badge&logo=telegram&logoColor=white)](https://t.me/sail-tunnel) +[![Gmail](https://img.shields.io/badge/Gmail-D14836?style=for-the-badge&logo=gmail&logoColor=white)](mailto:sail-tunnel@gmail.com) + +## 待办事项: +- [x] 支持安卓设备。 +- [ ] Dart ffi 与 iOS 和 android 来控制 vpn。 +- [x] 订单页面 +- [x] 我的设置页面 +- [x] 服务器列表页面支持 ping 操作。 +- [ ] 按Material主题重构颜色。 + +## 环境 + +- Flutter 3.0.1 +- Dart 2.17.1 +- macOS 12.4 +- IntelliJ IDEA 2022.1.1 (Ultimate Edition) (感谢 [jetbrains 开源计划](https://www.jetbrains.com/opensource/)) +- Xcode 13.4.1 +- iOS 15.5 + +## 安装 + +```shell +flutter pub get +``` + +## 开发 +```shell +flutter run +``` + +## 构建 +build android apk +```shell +flutter build apk +``` + +build ios +```shell +flutter build ios +``` diff --git a/flutter/analysis_options.yaml b/flutter/analysis_options.yaml new file mode 100644 index 0000000..f9b3034 --- /dev/null +++ b/flutter/analysis_options.yaml @@ -0,0 +1 @@ +include: package:flutter_lints/flutter.yaml diff --git a/flutter/android/.gitignore b/flutter/android/.gitignore new file mode 100644 index 0000000..6f56801 --- /dev/null +++ b/flutter/android/.gitignore @@ -0,0 +1,13 @@ +gradle-wrapper.jar +/.gradle +/captures/ +/gradlew +/gradlew.bat +/local.properties +GeneratedPluginRegistrant.java + +# Remember to never publicly share your keystore. +# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app +key.properties +**/*.keystore +**/*.jks diff --git a/flutter/android/.idea/.gitignore b/flutter/android/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/flutter/android/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/flutter/android/.idea/compiler.xml b/flutter/android/.idea/compiler.xml new file mode 100644 index 0000000..b589d56 --- /dev/null +++ b/flutter/android/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/flutter/android/.idea/gradle.xml b/flutter/android/.idea/gradle.xml new file mode 100644 index 0000000..331ed27 --- /dev/null +++ b/flutter/android/.idea/gradle.xml @@ -0,0 +1,26 @@ + + + + + + + \ No newline at end of file diff --git a/flutter/android/.idea/jarRepositories.xml b/flutter/android/.idea/jarRepositories.xml new file mode 100644 index 0000000..85dbea4 --- /dev/null +++ b/flutter/android/.idea/jarRepositories.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/flutter/android/.idea/kotlinc.xml b/flutter/android/.idea/kotlinc.xml new file mode 100644 index 0000000..4515aa3 --- /dev/null +++ b/flutter/android/.idea/kotlinc.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/flutter/android/.idea/misc.xml b/flutter/android/.idea/misc.xml new file mode 100644 index 0000000..773fe0f --- /dev/null +++ b/flutter/android/.idea/misc.xml @@ -0,0 +1,9 @@ + + + + + + + + \ No newline at end of file diff --git a/flutter/android/.idea/vcs.xml b/flutter/android/.idea/vcs.xml new file mode 100644 index 0000000..6c0b863 --- /dev/null +++ b/flutter/android/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/flutter/android/app/build.gradle b/flutter/android/app/build.gradle new file mode 100644 index 0000000..36b4dc9 --- /dev/null +++ b/flutter/android/app/build.gradle @@ -0,0 +1,107 @@ +def localProperties = new Properties() +def localPropertiesFile = rootProject.file('local.properties') +if (localPropertiesFile.exists()) { + localPropertiesFile.withReader('UTF-8') { reader -> + localProperties.load(reader) + } +} + +def flutterRoot = localProperties.getProperty('flutter.sdk') +if (flutterRoot == null) { + throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") +} + +def flutterVersionCode = localProperties.getProperty('flutter.versionCode') +if (flutterVersionCode == null) { + flutterVersionCode = '1' +} + +def flutterVersionName = localProperties.getProperty('flutter.versionName') +if (flutterVersionName == null) { + flutterVersionName = '1.0' +} + +apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' +apply plugin: 'kotlin-parcelize' +apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" + +android { + compileSdkVersion 33 + ndkVersion flutter.ndkVersion + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + + kotlinOptions { + jvmTarget = '1.8' + } + + sourceSets { + main.java.srcDirs += 'src/main/kotlin' + main.jniLibs.srcDirs = ['libs', 'src/main/jniLibs'] + } + + defaultConfig { + // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). + applicationId "com.sail_tunnel.sail" + // You can update the following values to match your application needs. + // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-build-configuration. + minSdkVersion 26 + //noinspection ExpiredTargetSdkVersion + targetSdkVersion 28 + versionCode flutterVersionCode.toInteger() + versionName flutterVersionName + // ndk { + // abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86', "x86_64" + // } + // dexOptions { + // incremental true + // javaMaxHeapSize "4g" + // preDexLibraries true + // dexInProcess = true + // } + ndk { + if (!project.hasProperty('target-platform')) { + abiFilters 'arm64-v8a', 'armeabi-v7a', 'x86_64' + } else { + def platforms = project.property('target-platform').split(',') + def platformMap = [ + 'android-arm' : 'armeabi-v7a', + 'android-arm64': 'arm64-v8a', + 'android-x86' : 'x86', + 'android-x64' : 'x86_64', + ] + abiFilters = platforms.stream().map({ e -> + platformMap.containsKey(e) ? platformMap[e] : e + }).toArray() + } + } + } + + buildTypes { + release { + // TODO: Add your own signing config for the release build. + // Signing with the debug keys for now, so `flutter run --release` works. + signingConfig signingConfigs.debug + } + + } +} + +flutter { + source '../..' +} + +dependencies { + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" + implementation "com.jakewharton.timber:timber:5.0.1" + implementation 'androidx.work:work-runtime-ktx:2.7.1' + implementation 'androidx.preference:preference-ktx:1.2.0' + implementation "dnsjava:dnsjava:3.5.1" + implementation "org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.6.4" + implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4" + implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1" +} diff --git a/flutter/android/app/profile/output-metadata.json b/flutter/android/app/profile/output-metadata.json new file mode 100644 index 0000000..9bb7a46 --- /dev/null +++ b/flutter/android/app/profile/output-metadata.json @@ -0,0 +1,20 @@ +{ + "version": 3, + "artifactType": { + "type": "APK", + "kind": "Directory" + }, + "applicationId": "com.sail_tunnel.sail", + "variantName": "profile", + "elements": [ + { + "type": "SINGLE", + "filters": [], + "attributes": [], + "versionCode": 3, + "versionName": "1.0.2", + "outputFile": "app-profile.apk" + } + ], + "elementType": "File" +} \ No newline at end of file diff --git a/flutter/android/app/src/debug/AndroidManifest.xml b/flutter/android/app/src/debug/AndroidManifest.xml new file mode 100644 index 0000000..309e0c4 --- /dev/null +++ b/flutter/android/app/src/debug/AndroidManifest.xml @@ -0,0 +1,10 @@ + + + + + + diff --git a/flutter/android/app/src/main/AndroidManifest.xml b/flutter/android/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..11be238 --- /dev/null +++ b/flutter/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/flutter/android/app/src/main/jniLibs/arm64-v8a/libleaf.so b/flutter/android/app/src/main/jniLibs/arm64-v8a/libleaf.so new file mode 100755 index 0000000..637e49f Binary files /dev/null and b/flutter/android/app/src/main/jniLibs/arm64-v8a/libleaf.so differ diff --git a/flutter/android/app/src/main/jniLibs/armeabi/libleaf.so b/flutter/android/app/src/main/jniLibs/armeabi/libleaf.so new file mode 100755 index 0000000..637e49f Binary files /dev/null and b/flutter/android/app/src/main/jniLibs/armeabi/libleaf.so differ diff --git a/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/Core.kt b/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/Core.kt new file mode 100644 index 0000000..53ac589 --- /dev/null +++ b/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/Core.kt @@ -0,0 +1,54 @@ +package com.sail_tunnel.sail + +import android.app.* +import android.content.* +import android.net.ConnectivityManager +import android.util.Log +import androidx.annotation.VisibleForTesting +import androidx.core.content.getSystemService +import kotlinx.coroutines.DEBUG_PROPERTY_NAME +import kotlinx.coroutines.DEBUG_PROPERTY_VALUE_ON +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import timber.log.Timber +import kotlin.reflect.KClass +import androidx.work.Configuration +import com.sail_tunnel.sail.utils.DeviceStorageApp + +object Core : Configuration.Provider { + lateinit var app: MainActivity + @VisibleForTesting set + lateinit var configureIntent: (Context) -> PendingIntent + val activity by lazy { app.getSystemService()!! } + val connectivity by lazy { app.getSystemService()!! } + + val deviceStorage by lazy { DeviceStorageApp(app) } + + fun init(app: MainActivity, configureClass: KClass) { + this.app = app + this.configureIntent = { + PendingIntent.getActivity(it, 0, Intent(it, configureClass.java) + .setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT), PendingIntent.FLAG_IMMUTABLE) + } + + // overhead of debug mode is minimal: https://github.com/Kotlin/kotlinx.coroutines/blob/f528898/docs/debugging.md#debug-mode + System.setProperty(DEBUG_PROPERTY_NAME, DEBUG_PROPERTY_VALUE_ON) + + Timber.plant(object : Timber.DebugTree() { + override fun log(priority: Int, tag: String?, message: String, t: Throwable?) { + if (t == null) { + if (priority != Log.DEBUG || BuildConfig.DEBUG) Log.println(priority, tag, message) + } else { + if (priority >= Log.WARN || priority == Log.DEBUG) Log.println(priority, tag, message) + } + } + }) + } + + override fun getWorkManagerConfiguration() = Configuration.Builder().apply { + setDefaultProcessName(app.packageName + ":bg") + setMinimumLoggingLevel(if (BuildConfig.DEBUG) Log.VERBOSE else Log.INFO) + setExecutor { GlobalScope.launch { it.run() } } + setTaskExecutor { GlobalScope.launch { it.run() } } + }.build() +} diff --git a/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/MainActivity.kt b/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/MainActivity.kt new file mode 100644 index 0000000..20c876a --- /dev/null +++ b/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/MainActivity.kt @@ -0,0 +1,160 @@ +package com.sail_tunnel.sail + +import android.content.Context +import android.content.ContextWrapper +import android.content.Intent +import android.content.IntentFilter +import android.net.ConnectivityManager +import android.net.NetworkCapabilities +import android.net.VpnService +import android.os.BatteryManager +import android.os.Build +import android.os.Bundle +import android.util.Log +import com.sail_tunnel.sail.services.VpnState +import io.flutter.embedding.android.FlutterActivity +import io.flutter.embedding.android.FlutterView +import io.flutter.embedding.engine.FlutterEngine +import io.flutter.embedding.engine.plugins.util.GeneratedPluginRegister +import io.flutter.plugin.common.MethodChannel + +import io.flutter.plugins.GeneratedPluginRegistrant +import java.io.File + +class MainActivity: FlutterActivity() { + private val channel = "com.sail_tunnel.sail/vpn_manager" + + private fun getServiceIntent(): Intent { + return Intent(this, TunnelService::class.java) + } + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + Core.init(this, MainActivity::class) + +// GeneratedPluginRegistrant.registerWith(FlutterEngine(this)) +// GeneratedPluginRegister.registerGeneratedPlugins(FlutterEngine(this)); + +// MethodChannel(FlutterView(this), channel).setMethodCallHandler { call, result -> +// if (call.method == "getBatteryLevel") { +// val batteryLevel : Int = getBatteryLevel() +// +// if (batteryLevel != -1) { +// result.success(batteryLevel) +// } else { +// result.error("UNAVAILABLE", "Battery level not available.", null) +// } +// } else { +// Log.e("user_debug", "getBatteryLevel is not method of called") +// result.notImplemented() +// } +// } + + } + private fun getBatteryLevel(): Int { + val batteryLevel: Int + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){ + val batteryManager = getSystemService(Context.BATTERY_SERVICE) as BatteryManager + batteryLevel = batteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY) + } else { + val intent = ContextWrapper(applicationContext).registerReceiver(null, IntentFilter(Intent.ACTION_BATTERY_CHANGED)) + batteryLevel = intent!!.getIntExtra(BatteryManager.EXTRA_LEVEL, -1) * 100 / intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1) + } + return batteryLevel + } + + override fun onResume() { + super.onResume() + + + } + + override fun onPause() { + super.onPause() + + } + + private fun getVPNConnectionStatus(): Boolean? { + val context = this@MainActivity + val connectivityManager = + context.getSystemService(CONNECTIVITY_SERVICE) as ConnectivityManager + val networks = connectivityManager.allNetworks + //val TAG = "getVPNConnectionStatus" + //Log.i(TAG, "Network count: " + networks.size); + var hasvpn = false + for (i in 0 until networks.size) { +// connectivityManager.getNetworkCapabilities() + val caps: NetworkCapabilities? = connectivityManager.getNetworkCapabilities(networks.get(i)) + + hasvpn = caps?.hasTransport(NetworkCapabilities.TRANSPORT_VPN) == true + +// Log.i(TAG, "Network " + i + ": " + networks.get(i).toString()) +// Log.i(TAG, "VPN transport is: " + caps?.hasTransport(NetworkCapabilities.TRANSPORT_VPN)) +// Log.i(TAG, "NOT_VPN capability is: " + caps?.hasCapability(NetworkCapabilities.NET_CAPABILITY_NOT_VPN) ) + } + return hasvpn + + + +// val activeNetwork = connectivityManager.activeNetwork +// val networkCapabilities = connectivityManager.getNetworkCapabilities(activeNetwork) +// +// return networkCapabilities?.hasTransport(NetworkCapabilities.TRANSPORT_VPN) + } + + override fun configureFlutterEngine( flutterEngine: FlutterEngine) { + super.configureFlutterEngine(flutterEngine) + MethodChannel(flutterEngine.dartExecutor.binaryMessenger, channel).setMethodCallHandler { + call, result -> + // This method is invoked on the main thread. + if (call.method == "getStatus") { + result.success(getVPNConnectionStatus()) + } else if (call.method == "toggle") { + val intent = VpnService.prepare(this) + if (intent != null) { + startActivityForResult(intent, 0) + result.success(false) + } else { + startService(getServiceIntent()) + result.success(true) + } + } else if (call.method == "getTunnelLog") { + // val context = Core.deviceStorage + // val configRoot = context.noBackupFilesDir + // val config = File(configRoot, VpnState.LEAF_LOG_FILE).readText() + // result.success(config) + } else if (call.method == "getTunnelConfiguration") { + val context = Core.deviceStorage + val configRoot = context.noBackupFilesDir + val config = File(configRoot, VpnState.CONFIG_FILE).readText() + val TAGs = "getVPNConnectionStatus" + Log.i(TAGs, config); + result.success(config) + } else if (call.method == "setTunnelConfiguration") { + try { + val context = Core.deviceStorage + val configRoot = context.noBackupFilesDir + val TAGs = "setTunnelConfiguration" + Log.i(TAGs, call.arguments.toString()); + File(configRoot, VpnState.CONFIG_FILE).writeText(call.arguments.toString()) + }catch (e: Exception ){ + println("setTunnelConfiguration FILE NullPointerException") + } + + + } else if (call.method == "update") { + // + } else { + result.notImplemented() + } + } + } + + override fun onActivityResult(request: Int, result: Int, data: Intent?) { + if (result == RESULT_OK) { + startService(getServiceIntent()) + } else { + super.onActivityResult(request, result, data) + } + } +} diff --git a/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/TunnelService.kt b/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/TunnelService.kt new file mode 100644 index 0000000..5ce3ff3 --- /dev/null +++ b/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/TunnelService.kt @@ -0,0 +1,251 @@ +package com.sail_tunnel.sail + +import android.app.Notification +import android.app.NotificationChannel +import android.app.NotificationManager +import android.app.PendingIntent +import android.app.Service +import android.content.BroadcastReceiver +import android.content.Context +import android.content.Intent +import android.graphics.BitmapFactory +import android.media.projection.MediaProjection +import android.media.projection.MediaProjectionManager +import android.net.* +import android.os.Build +import android.os.ParcelFileDescriptor +import androidx.core.app.NotificationCompat +import com.sail_tunnel.sail.net.DefaultNetworkListener +import com.sail_tunnel.sail.net.DnsResolverCompat +import com.sail_tunnel.sail.services.LocalDnsWorker +import com.sail_tunnel.sail.services.TunnelInstance +import com.sail_tunnel.sail.services.VpnState +import com.sail_tunnel.sail.utils.readableMessage +import kotlinx.coroutines.* +import java.io.File +import java.io.IOException + +class TunnelService : VpnService() { + companion object { + private const val CORE_NAME = "leaf" + private const val VPN_MTU = 1500 + private const val PRIVATE_VLAN4_CLIENT = "198.18.20.20" + private const val PRIVATE_VLAN4_ROUTER = "1.1.1.1" + } + + inner class NullConnectionException : NullPointerException() { + override fun getLocalizedMessage() = + "Failed to start VPN service. You might need to reboot your device." + } + + private val data = VpnState.Data() + + private fun startRunner() { + + if (Build.VERSION.SDK_INT >= 26) startForegroundService(Intent(this, javaClass)) + else startService(Intent(this, javaClass)) + } + + private var pfd: ParcelFileDescriptor? = null + private var active = false + private var metered = false + + + var notification: Notification? = null + private val mResultData: Intent? = null + private val mMediaProjection: MediaProjection? = null + private val mMediaProjectionManager: MediaProjectionManager? = null + + + @Volatile + private var underlyingNetwork: Network? = null + set(value) { + field = value + if (active) setUnderlyingNetworks(underlyingNetworks) + } + private val underlyingNetworks + get() = + // clearing underlyingNetworks makes Android 9 consider the network to be metered + if (Build.VERSION.SDK_INT == 28 && metered) null else underlyingNetwork?.let { + arrayOf( + it + ) + } + + override fun onRevoke() = stopRunner() + + private fun killProcesses(scope: CoroutineScope) { + data.proxy?.run { + shutdown(scope) + data.proxy = null + } + data.localDns?.shutdown(scope) + data.localDns = null + + active = false + scope.launch { DefaultNetworkListener.stop(this) } + pfd?.close() + pfd = null + } + + override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int { + val data = data + if (data.state != VpnState.State.Stopped) return Service.START_NOT_STICKY + + try { + data.proxy = TunnelInstance() + } catch (e: IllegalArgumentException) { + stopRunner(false, e.message) + return Service.START_NOT_STICKY + } + createNotificationChannel() + data.changeState(VpnState.State.Connecting) + data.connectingJob = GlobalScope.launch(Dispatchers.Main) { + try { + preInit() + + startVpn() + + data.changeState(VpnState.State.Connected) + } catch (_: CancellationException) { + // if the job was cancelled, it is canceller's responsibility to call stopRunner + } catch (exc: Throwable) { + stopRunner(false, exc.readableMessage) + } finally { + data.connectingJob = null + } + } + + return START_NOT_STICKY + } + + + private fun createNotificationChannel() { + val CHANNEL_ID: String = "notification_id" + val builder = NotificationCompat.Builder(this.applicationContext,CHANNEL_ID) //获取一个Notification构造器 + val nfIntent = Intent(this, MainActivity::class.java) //点击后跳转的界面,可以设置跳转数据 + val pendingIntent: PendingIntent = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { + PendingIntent.getActivity(this, 0, nfIntent, PendingIntent.FLAG_IMMUTABLE) + } else { + PendingIntent.getActivity(this, 0, nfIntent, PendingIntent.FLAG_ONE_SHOT) + } + + val intentClick = Intent( + this,MainActivity::class.java +// BroadcastReceiver::class.java + ) + + + intentClick.action = "notification_clicked" +// intentClick.putExtra(BroadcastReceiver.TYPE, type) + val pendingIntentClick = + PendingIntent.getBroadcast(this, 0, intentClick, PendingIntent.FLAG_ONE_SHOT) + + + //.setContentIntent(pendingIntent) // 设置PendingIntent + builder.setContentIntent(pendingIntentClick).setLargeIcon( + BitmapFactory.decodeResource( + this.resources, + R.mipmap.app_icon_round + ) + ) // 设置下拉列表中的图标(大图标) + .setContentTitle("UUVPN") // 设置下拉列表里的标题 + .setSmallIcon( R.mipmap.app_icon_round) // 设置状态栏内的小图标 + .setContentText("正在运行...") // 设置上下文内容 + .setWhen(System.currentTimeMillis()) // 设置该通知发生的时间 + + /*以下是对Android 8.0的适配*/ + //普通notification适配 + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + builder.setChannelId("notification_id") + } + + + //前台服务notification适配 + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + + val channel = NotificationChannel( + "notification_id", + "notification_name", + NotificationManager.IMPORTANCE_LOW + ) + + + // Register the channel with the system + val notificationManager: NotificationManager = + getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager + notificationManager.createNotificationChannel(channel) + + } + + notification = builder.build() // 获取构建好的Notification +// notification.defaulte = Notification.DEFAULT_SOUND //设置为默认的声音 + try { + startForeground(110, notification) + } catch (w: Exception) { + w.printStackTrace() + } + } + private suspend fun preInit() = DefaultNetworkListener.start(this) { underlyingNetwork = it } + private suspend fun rawResolver(query: ByteArray) = + // no need to listen for network here as this is only used for forwarding local DNS queries. + // retries should be attempted by client. + DnsResolverCompat.resolveRaw(underlyingNetwork ?: throw IOException("no network"), query) + + private suspend fun startVpn() { + val builder = Builder() + .setConfigureIntent(Core.configureIntent(this)) + .setSession(CORE_NAME) + .setMtu(VPN_MTU) + .addAddress(PRIVATE_VLAN4_CLIENT, 24) + .addDnsServer(PRIVATE_VLAN4_ROUTER) + .addRoute("0.0.0.0", 0) + + active = true // possible race condition here? + builder.setUnderlyingNetworks(underlyingNetworks) + if (Build.VERSION.SDK_INT >= 29) builder.setMetered(metered) + + this.pfd = builder.establish() ?: throw NullConnectionException() + + val context = Core.deviceStorage + val configRoot = context.noBackupFilesDir + + data.localDns = LocalDnsWorker(this::rawResolver).apply { start() } + + val configFile = File(configRoot, VpnState.CONFIG_FILE) + val configContent = configFile + .readText() + .replace("{{leafLogFile}}", File(configRoot, VpnState.LEAF_LOG_FILE).absolutePath) + .replace("{{tunFd}}", this.pfd?.fd?.toLong().toString()) + + configFile.writeText(configContent) + + data.proxy!!.start( + this, + File(Core.deviceStorage.noBackupFilesDir, "stat_main"), + configFile, + ) + + } + + private fun stopRunner(restart: Boolean = false, msg: String? = null) { + if (data.state == VpnState.State.Stopping) return + // channge the state + data.changeState(VpnState.State.Stopping) + GlobalScope.launch(Dispatchers.Main.immediate) { + data.connectingJob?.cancelAndJoin() // ensure stop connecting first + // we use a coroutineScope here to allow clean-up in parallel + coroutineScope { + killProcesses(GlobalScope) + } + + // change the state + data.changeState(VpnState.State.Stopped, msg) + + // stop the service if nothing has bound to it + if (restart) startRunner() else { + stopSelf() + } + } + } +} diff --git a/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/net/ConcurrentLocalSocketListener.kt b/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/net/ConcurrentLocalSocketListener.kt new file mode 100644 index 0000000..e016ca5 --- /dev/null +++ b/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/net/ConcurrentLocalSocketListener.kt @@ -0,0 +1,23 @@ +package com.sail_tunnel.sail.net + +import android.net.LocalSocket +import kotlinx.coroutines.* +import timber.log.Timber +import java.io.File + +abstract class ConcurrentLocalSocketListener(name: String, socketFile: File) : LocalSocketListener(name, socketFile), + CoroutineScope { + override val coroutineContext = Dispatchers.IO + SupervisorJob() + CoroutineExceptionHandler { _, t -> Timber.w(t) } + + override fun accept(socket: LocalSocket) { + launch { super.accept(socket) } + } + + override fun shutdown(scope: CoroutineScope) { + running = false + cancel() + super.shutdown(scope) + coroutineContext[Job]!!.also { job -> scope.launch { job.join() } } + } +} + diff --git a/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/net/DefaultNetworkListener.kt b/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/net/DefaultNetworkListener.kt new file mode 100644 index 0000000..54bee39 --- /dev/null +++ b/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/net/DefaultNetworkListener.kt @@ -0,0 +1,126 @@ +package com.sail_tunnel.sail.net + +import android.annotation.TargetApi +import android.net.ConnectivityManager +import android.net.Network +import android.net.NetworkCapabilities +import android.net.NetworkRequest +import android.os.Build +import android.os.Handler +import android.os.Looper +import androidx.annotation.RequiresApi +import com.sail_tunnel.sail.Core +import kotlinx.coroutines.CompletableDeferred +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.channels.actor +import kotlinx.coroutines.runBlocking +import java.net.UnknownHostException + +object DefaultNetworkListener { + private sealed class NetworkMessage { + class Start(val key: Any, val listener: (Network?) -> Unit) : NetworkMessage() + class Get : NetworkMessage() { + val response = CompletableDeferred() + } + class Stop(val key: Any) : NetworkMessage() + + class Put(val network: Network) : NetworkMessage() + class Update(val network: Network) : NetworkMessage() + class Lost(val network: Network) : NetworkMessage() + } + + private val networkActor = GlobalScope.actor(Dispatchers.Unconfined) { + val listeners = mutableMapOf Unit>() + var network: Network? = null + val pendingRequests = arrayListOf() + for (message in channel) when (message) { + is NetworkMessage.Start -> { + if (listeners.isEmpty()) register() + listeners[message.key] = message.listener + if (network != null) message.listener(network) + } + is NetworkMessage.Get -> { + check(listeners.isNotEmpty()) { "Getting network without any listeners is not supported" } + if (network == null) pendingRequests += message else message.response.complete(network) + } + is NetworkMessage.Stop -> if (listeners.isNotEmpty() && // was not empty + listeners.remove(message.key) != null && listeners.isEmpty()) { + network = null + unregister() + } + + is NetworkMessage.Put -> { + network = message.network + pendingRequests.forEach { it.response.complete(message.network) } + pendingRequests.clear() + listeners.values.forEach { it(network) } + } + is NetworkMessage.Update -> if (network == message.network) listeners.values.forEach { it(network) } + is NetworkMessage.Lost -> if (network == message.network) { + network = null + listeners.values.forEach { it(null) } + } + } + } + + suspend fun start(key: Any, listener: (Network?) -> Unit) = networkActor.send(NetworkMessage.Start(key, listener)) + suspend fun get() = if (fallback) { + Core.connectivity.activeNetwork ?: throw UnknownHostException() // failed to listen, return current if available + } else NetworkMessage.Get().run { + networkActor.send(this) + response.await() + } + suspend fun stop(key: Any) = networkActor.send(NetworkMessage.Stop(key)) + + // NB: this runs in ConnectivityThread, and this behavior cannot be changed until API 26 + private object Callback : ConnectivityManager.NetworkCallback() { + override fun onAvailable(network: Network) = runBlocking { networkActor.send(NetworkMessage.Put(network)) } + override fun onCapabilitiesChanged(network: Network, networkCapabilities: NetworkCapabilities) { + // it's a good idea to refresh capabilities + runBlocking { networkActor.send(NetworkMessage.Update(network)) } + } + override fun onLost(network: Network) = runBlocking { networkActor.send(NetworkMessage.Lost(network)) } + } + + private var fallback = false + private val request = NetworkRequest.Builder().apply { + addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) + addCapability(NetworkCapabilities.NET_CAPABILITY_NOT_RESTRICTED) + }.build() + private val mainHandler = Handler(Looper.getMainLooper()) + + /** + * Unfortunately registerDefaultNetworkCallback is going to return VPN interface since Android P DP1: + * https://android.googlesource.com/platform/frameworks/base/+/dda156ab0c5d66ad82bdcf76cda07cbc0a9c8a2e + * + * This makes doing a requestNetwork with REQUEST necessary so that we don't get ALL possible networks that + * satisfies default network capabilities but only THE default network. Unfortunately, we need to have + * android.permission.CHANGE_NETWORK_STATE to be able to call requestNetwork. + * + * Source: https://android.googlesource.com/platform/frameworks/base/+/2df4c7d/services/core/java/com/android/server/ConnectivityService.java#887 + */ + private fun register() { + when (Build.VERSION.SDK_INT) { + in 31..Int.MAX_VALUE -> @TargetApi(31) { + Core.connectivity.registerBestMatchingNetworkCallback(request, Callback, mainHandler) + } + in 28 until 31 -> @TargetApi(28) { // we want REQUEST here instead of LISTEN + Core.connectivity.requestNetwork(request, Callback, mainHandler) + } + in 26 until 28 -> @TargetApi(26) { + Core.connectivity.registerDefaultNetworkCallback(Callback, mainHandler) + } + in 24 until 26 -> { + Core.connectivity.registerDefaultNetworkCallback(Callback) + } + else -> try { + fallback = false + Core.connectivity.requestNetwork(request, Callback) + } catch (e: RuntimeException) { + fallback = true // known bug on API 23: https://stackoverflow.com/a/33509180/2245107 + } + } + } + private fun unregister() = Core.connectivity.unregisterNetworkCallback(Callback) +} diff --git a/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/net/DnsResolverCompat.kt b/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/net/DnsResolverCompat.kt new file mode 100644 index 0000000..05e76cb --- /dev/null +++ b/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/net/DnsResolverCompat.kt @@ -0,0 +1,167 @@ +package com.sail_tunnel.sail.net + +import android.annotation.TargetApi +import android.net.DnsResolver +import android.net.Network +import android.os.Build +import android.os.CancellationSignal +import androidx.annotation.RequiresApi +import com.sail_tunnel.sail.Core +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.asCoroutineDispatcher +import kotlinx.coroutines.suspendCancellableCoroutine +import kotlinx.coroutines.withContext +import org.xbill.DNS.* +import java.io.IOException +import java.net.Inet4Address +import java.net.Inet6Address +import java.net.InetAddress +import java.util.concurrent.Executor +import java.util.concurrent.Executors +import kotlin.coroutines.resume +import kotlin.coroutines.resumeWithException + +@RequiresApi(Build.VERSION_CODES.LOLLIPOP) +sealed class DnsResolverCompat { + companion object : DnsResolverCompat() { + private val instance by lazy { + when (Build.VERSION.SDK_INT) { + in 29..Int.MAX_VALUE -> DnsResolverCompat29 + in 23 until 29 -> DnsResolverCompat23 + else -> error("Unsupported API level") + } + } + + override suspend fun resolve(network: Network, host: String) = instance.resolve(network, host) + override suspend fun resolveOnActiveNetwork(host: String) = instance.resolveOnActiveNetwork(host) + override suspend fun resolveRaw(network: Network, query: ByteArray) = instance.resolveRaw(network, query) + override suspend fun resolveRawOnActiveNetwork(query: ByteArray) = instance.resolveRawOnActiveNetwork(query) + + // additional platform-independent DNS helpers + + /** + * TTL returned from localResolver is set to 120. Android API does not provide TTL, + * so we suppose Android apps should not care about TTL either. + */ + private const val TTL = 120L + + fun prepareDnsResponse(request: Message) = Message(request.header.id).apply { + header.setFlag(Flags.QR.toInt()) // this is a response + header.setFlag(Flags.RA.toInt()) // recursion available + if (request.header.getFlag(Flags.RD.toInt())) header.setFlag(Flags.RD.toInt()) + request.question?.also { addRecord(it, Section.QUESTION) } + } + } + + abstract suspend fun resolve(network: Network, host: String): Array + abstract suspend fun resolveOnActiveNetwork(host: String): Array + abstract suspend fun resolveRaw(network: Network, query: ByteArray): ByteArray + abstract suspend fun resolveRawOnActiveNetwork(query: ByteArray): ByteArray + + private object DnsResolverCompat23 : DnsResolverCompat() { + /** + * This dispatcher is used for noncancellable possibly-forever-blocking operations in network IO. + * + * See also: https://issuetracker.google.com/issues/133874590 + */ + private val unboundedIO by lazy { + if (Core.activity.isLowRamDevice) Dispatchers.IO + else Executors.newCachedThreadPool().asCoroutineDispatcher() + } + + override suspend fun resolve(network: Network, host: String) = + withContext(unboundedIO) { network.getAllByName(host) } + override suspend fun resolveOnActiveNetwork(host: String) = + withContext(unboundedIO) { InetAddress.getAllByName(host) } + + private suspend fun resolveRaw(query: ByteArray, networkSpecified: Boolean = true, + hostResolver: suspend (String) -> Array): ByteArray { + val request = try { + Message(query) + } catch (e: IOException) { + throw UnsupportedOperationException(e) // unrecognized packet + } + when (val opcode = request.header.opcode) { + Opcode.QUERY -> { } + else -> throw UnsupportedOperationException("Unsupported opcode $opcode") + } + val question = request.question + val isIpv6 = when (val type = question?.type) { + Type.A -> false + Type.AAAA -> true + Type.PTR -> { + /* Android does not provide a PTR lookup API for Network prior to Android 10 */ + if (networkSpecified) throw IOException(UnsupportedOperationException("Network unspecified")) + val ip = try { + ReverseMap.fromName(question.name) + } catch (e: IOException) { + throw UnsupportedOperationException(e) // unrecognized PTR name + } + val hostname = withContext(unboundedIO) { ip.hostName }.let { hostname -> + if (hostname == ip.hostAddress) null else Name.fromString("$hostname.") + } + return prepareDnsResponse(request).apply { + hostname?.let { addRecord(PTRRecord(question.name, DClass.IN, TTL, it), Section.ANSWER) } + }.toWire() + } + else -> throw UnsupportedOperationException("Unsupported query type $type") + } + val host = question.name.canonicalize().toString(true) + return prepareDnsResponse(request).apply { + for (address in hostResolver(host).asIterable().run { + if (isIpv6) filterIsInstance() else filterIsInstance() + }) addRecord(when (address) { + is Inet4Address -> ARecord(question.name, DClass.IN, TTL, address) + is Inet6Address -> AAAARecord(question.name, DClass.IN, TTL, address) + else -> error("Unsupported address $address") + }, Section.ANSWER) + }.toWire() + } + override suspend fun resolveRaw(network: Network, query: ByteArray) = + resolveRaw(query) { resolve(network, it) } + override suspend fun resolveRawOnActiveNetwork(query: ByteArray) = + resolveRaw(query, false, this::resolveOnActiveNetwork) + } + + @TargetApi(29) + private object DnsResolverCompat29 : DnsResolverCompat(), Executor { + /** + * This executor will run on its caller directly. On Q beta 3 thru 4, this results in calling in main thread. + */ + override fun execute(command: Runnable) = command.run() + + private val activeNetwork get() = Core.connectivity.activeNetwork ?: throw IOException("no network") + + override suspend fun resolve(network: Network, host: String): Array { + return suspendCancellableCoroutine { cont -> + val signal = CancellationSignal() + cont.invokeOnCancellation { signal.cancel() } + // retry should be handled by client instead + DnsResolver.getInstance().query(network, host, DnsResolver.FLAG_NO_RETRY, this, + signal, object : DnsResolver.Callback> { + override fun onAnswer(answer: Collection, rcode: Int) = + cont.resume(answer.toTypedArray()) + override fun onError(error: DnsResolver.DnsException) = cont.resumeWithException( + IOException(error) + ) + }) + } + } + override suspend fun resolveOnActiveNetwork(host: String) = resolve(activeNetwork, host) + + override suspend fun resolveRaw(network: Network, query: ByteArray): ByteArray { + return suspendCancellableCoroutine { cont -> + val signal = CancellationSignal() + cont.invokeOnCancellation { signal.cancel() } + DnsResolver.getInstance().rawQuery(network, query, DnsResolver.FLAG_NO_RETRY, this, + signal, object : DnsResolver.Callback { + override fun onAnswer(answer: ByteArray, rcode: Int) = cont.resume(answer) + override fun onError(error: DnsResolver.DnsException) = cont.resumeWithException( + IOException(error) + ) + }) + } + } + override suspend fun resolveRawOnActiveNetwork(query: ByteArray) = resolveRaw(activeNetwork, query) + } +} diff --git a/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/net/LocalSocketListener.kt b/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/net/LocalSocketListener.kt new file mode 100644 index 0000000..6ec9f8f --- /dev/null +++ b/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/net/LocalSocketListener.kt @@ -0,0 +1,62 @@ +package com.sail_tunnel.sail.net + +import android.annotation.SuppressLint +import android.net.LocalServerSocket +import android.net.LocalSocket +import android.net.LocalSocketAddress +import android.system.ErrnoException +import android.system.Os +import android.system.OsConstants +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.channels.Channel +import kotlinx.coroutines.channels.onFailure +import kotlinx.coroutines.channels.trySendBlocking +import kotlinx.coroutines.launch +import timber.log.Timber +import java.io.File +import java.io.IOException + +abstract class LocalSocketListener(name: String, socketFile: File) : Thread(name) { + private val localSocket = LocalSocket().apply { + socketFile.delete() // It's a must-have to close and reuse previous local socket. + bind(LocalSocketAddress(socketFile.absolutePath, LocalSocketAddress.Namespace.FILESYSTEM)) + } + private val serverSocket = LocalServerSocket(localSocket.fileDescriptor) + private val closeChannel = Channel(1) + @Volatile + protected var running = true + + /** + * Inherited class do not need to close input/output streams as they will be closed automatically. + */ + protected open fun accept(socket: LocalSocket) = socket.use { acceptInternal(socket) } + protected abstract fun acceptInternal(socket: LocalSocket) + final override fun run() { + localSocket.use { + while (running) { + try { + accept(serverSocket.accept()) + } catch (e: IOException) { + if (running) Timber.w(e) + continue + } + } + } + closeChannel.trySendBlocking(Unit).onFailure { throw it!! } + } + + @SuppressLint("NewApi") + open fun shutdown(scope: CoroutineScope) { + running = false + localSocket.fileDescriptor?.apply { + // see also: https://issuetracker.google.com/issues/36945762#comment15 + if (valid()) try { + Os.shutdown(this, OsConstants.SHUT_RDWR) + } catch (e: ErrnoException) { + // suppress fd inactive or already closed + if (e.errno != OsConstants.EBADF && e.errno != OsConstants.ENOTCONN) throw e.rethrowAsSocketException() + } + } + scope.launch { closeChannel.receive() } + } +} diff --git a/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/services/LocalDnsWorker.kt b/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/services/LocalDnsWorker.kt new file mode 100644 index 0000000..9ad1eb5 --- /dev/null +++ b/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/services/LocalDnsWorker.kt @@ -0,0 +1,64 @@ +package com.sail_tunnel.sail.services + +import android.net.LocalSocket +import android.os.Build +import androidx.annotation.RequiresApi +import com.sail_tunnel.sail.Core +import com.sail_tunnel.sail.net.ConcurrentLocalSocketListener +import com.sail_tunnel.sail.net.DnsResolverCompat +import com.sail_tunnel.sail.utils.readableMessage +import kotlinx.coroutines.CancellationException +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.TimeoutCancellationException +import kotlinx.coroutines.launch +import timber.log.Timber +import java.io.DataInputStream +import java.io.DataOutputStream +import java.io.File +import java.io.IOException +import org.xbill.DNS.Message +import org.xbill.DNS.Rcode + +class LocalDnsWorker(private val resolver: suspend (ByteArray) -> ByteArray) : ConcurrentLocalSocketListener( + "LocalDnsThread", File(Core.deviceStorage.noBackupFilesDir, "local_dns_path") +), CoroutineScope { + override fun acceptInternal(socket: LocalSocket) = error("big no no") + override fun accept(socket: LocalSocket) { + launch { + socket.use { + val input = DataInputStream(socket.inputStream) + val query = try { + ByteArray(input.readUnsignedShort()).also { input.read(it) } + } catch (e: IOException) { // connection early close possibly due to resolving timeout + return@use Timber.d(e) + } + try { + resolver(query) + } catch (e: Exception) { + when (e) { + is TimeoutCancellationException -> Timber.w("Resolving timed out") + is CancellationException -> { } // ignore + is IOException -> Timber.d(e) + is UnsupportedOperationException -> Timber.w(e.message) + else -> Timber.w(e) + } + try { + DnsResolverCompat.prepareDnsResponse(Message(query)).apply { + header.rcode = Rcode.SERVFAIL + }.toWire() + } catch (_: IOException) { + byteArrayOf() // return empty if cannot parse packet + } + }.let { response -> + try { + val output = DataOutputStream(socket.outputStream) + output.writeShort(response.size) + output.write(response) + } catch (e: IOException) { + Timber.d(e.readableMessage) + } + } + } + } + } +} diff --git a/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/services/TrafficMonitor.kt b/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/services/TrafficMonitor.kt new file mode 100644 index 0000000..75e8a4a --- /dev/null +++ b/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/services/TrafficMonitor.kt @@ -0,0 +1,89 @@ +package com.sail_tunnel.sail.services + +import android.net.LocalSocket +import android.os.SystemClock +import com.sail_tunnel.sail.net.LocalSocketListener +import com.sail_tunnel.sail.utils.TrafficStats +import java.io.File +import java.io.IOException +import java.nio.ByteBuffer +import java.nio.ByteOrder + +class TrafficMonitor(statFile: File) { + val thread = object : LocalSocketListener("TrafficMonitor-" + statFile.name, statFile) { + private val buffer = ByteArray(16) + private val stat = ByteBuffer.wrap(buffer).order(ByteOrder.LITTLE_ENDIAN) + override fun acceptInternal(socket: LocalSocket) { + when (val read = socket.inputStream.read(buffer)) { + -1 -> return + 16 -> { } + else -> throw IOException("Unexpected traffic stat length $read") + } + val tx = stat.getLong(0) + val rx = stat.getLong(8) + if (current.txTotal != tx) { + current.txTotal = tx + dirty = true + } + if (current.rxTotal != rx) { + current.rxTotal = rx + dirty = true + } + } + }.apply { start() } + + val current = TrafficStats() + var out = TrafficStats() + private var timestampLast = 0L + private var dirty = false + private var persisted: TrafficStats? = null + + fun requestUpdate(): Pair { + val now = SystemClock.elapsedRealtime() + val delta = now - timestampLast + timestampLast = now + var updated = false + if (delta != 0L) { + if (dirty) { + out = current.copy().apply { + txRate = (txTotal - out.txTotal) * 1024 / delta + rxRate = (rxTotal - out.rxTotal) * 1024 / delta + } + dirty = false + updated = true + } else { + if (out.txRate != 0L) { + out.txRate = 0 + updated = true + } + if (out.rxRate != 0L) { + out.rxRate = 0 + updated = true + } + } + } + return Pair(out, updated) + } + + fun persistStats() { + val current = current + check(persisted == null || persisted == current) { "Data loss occurred" } + persisted = current + +// try { +// // profile may have host, etc. modified and thus a re-fetch is necessary (possible race condition) +// val profile = ProfileManager.getProfile(id) ?: return +// profile.tx += current.txTotal +// profile.rx += current.rxTotal +// ProfileManager.updateProfile(profile) +// } catch (e: IOException) { +// if (!DataStore.directBootAware) throw e // we should only reach here because we're in direct boot +// val profile = DirectBoot.getDeviceProfile()!!.toList().single { it.id == id } +// profile.tx += current.txTotal +// profile.rx += current.rxTotal +// profile.dirty = true +// DirectBoot.update(profile) +// DirectBoot.listenForUnlock() +// } + } +} diff --git a/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/services/TunnelInstance.kt b/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/services/TunnelInstance.kt new file mode 100644 index 0000000..4571817 --- /dev/null +++ b/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/services/TunnelInstance.kt @@ -0,0 +1,106 @@ +package com.sail_tunnel.sail.services + +import android.net.LocalServerSocket +import android.net.LocalSocket +import android.net.LocalSocketAddress +import android.system.Os +import com.sail_tunnel.sail.Core +import com.sail_tunnel.sail.TunnelService +import kotlinx.coroutines.CoroutineScope +import timber.log.Timber +import java.io.File +import java.nio.ByteBuffer +import kotlin.concurrent.thread + +class TunnelInstance() { + private var configFile: File? = null + var trafficMonitor: TrafficMonitor? = null + + private val rtId: Int = 666 + + init { + System.loadLibrary("leaf") + } + + private external fun leafRun(rtId: Int, configPath: String) + private external fun leafReload(rtId: Int) + private external fun leafShutdown(rtId: Int) + private external fun leafTestConfig(configPath: String) + + /** + * Sensitive shadowsocks configuration file requires extra protection. It may be stored in encrypted storage or + * device storage, depending on which is currently available. + */ + fun start( + service: TunnelService, + stat: File, + configFile: File, + ) { + // setup traffic monitor path + trafficMonitor = TrafficMonitor(stat) + + Timber.i("start process") + + val context = Core.deviceStorage + val configRoot = context.noBackupFilesDir //noBackupFilesDir + val protectPath = + File.createTempFile("socket_protect", ".sock", configRoot).absolutePath + + Os.setenv("SOCKET_PROTECT_PATH", protectPath, true) + + println("protectPath: $protectPath") + + thread (start = true) { + val localSocket = LocalSocket() + localSocket.bind( + LocalSocketAddress( + protectPath, + LocalSocketAddress.Namespace.FILESYSTEM + ) + ) + val socket = LocalServerSocket(localSocket.fileDescriptor) + val buffer = ByteBuffer.allocate(4) + + while (true) { + val stream = socket.accept() + buffer.clear() + val n = stream.inputStream.read(buffer.array()) + + System.out.write(n) + + if (n == 4) { + val fd = buffer.int + if (!service.protect(fd)) { + println("protect failed") + } + buffer.clear() + buffer.putInt(0) + } else { + buffer.clear() + buffer.putInt(1) + } + stream.outputStream.write(buffer.array()) + } + } + + // start tunnel program + thread(start = true) { + leafRun(rtId, configFile.absolutePath) + } + } + + fun shutdown(scope: CoroutineScope) { + trafficMonitor?.apply { + thread.shutdown(scope) + persistStats() // Make sure update total traffic when stopping the runner + } + trafficMonitor = null + configFile?.delete() // remove old config possibly in device storage + configFile = null + + // stop tunnel program + thread(start = true, isDaemon = true) { + leafShutdown(rtId) + } + } +} diff --git a/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/services/VpnState.kt b/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/services/VpnState.kt new file mode 100644 index 0000000..8a648d8 --- /dev/null +++ b/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/services/VpnState.kt @@ -0,0 +1,32 @@ +package com.sail_tunnel.sail.services + +import kotlinx.coroutines.Job + +object VpnState { + enum class State { + /** + * Idle state is only used by UI and will never be returned by BaseService. + */ + Idle, + Connecting, + Connected, + Stopping, + Stopped, + } + + const val CONFIG_FILE = "leaf.conf" + const val LEAF_LOG_FILE = "leaf.log" + + class Data internal constructor() { + var state = State.Stopped + var proxy: TunnelInstance? = null + var localDns: LocalDnsWorker? = null + + var connectingJob: Job? = null + + fun changeState(s: State, msg: String? = null) { + if (state == s && msg == null) return + state = s + } + } +} diff --git a/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/utils/DeviceStorageApp.kt b/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/utils/DeviceStorageApp.kt new file mode 100644 index 0000000..2846707 --- /dev/null +++ b/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/utils/DeviceStorageApp.kt @@ -0,0 +1,18 @@ +package com.sail_tunnel.sail.utils + +import android.annotation.SuppressLint +import android.app.Application +import android.content.Context + +@SuppressLint("Registered") +class DeviceStorageApp(context: Context) : Application() { + init { + attachBaseContext(context.createDeviceProtectedStorageContext()) + } + + /** + * Thou shalt not get the REAL underlying application context which would no longer be operating under device + * protected storage. + */ + override fun getApplicationContext() = this +} diff --git a/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/utils/TrafficStates.kt b/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/utils/TrafficStates.kt new file mode 100644 index 0000000..111f0fc --- /dev/null +++ b/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/utils/TrafficStates.kt @@ -0,0 +1,20 @@ +package com.sail_tunnel.sail.utils + +import android.os.Parcelable +import kotlinx.parcelize.Parcelize + +@Parcelize +data class TrafficStats( + // Bytes per second + var txRate: Long = 0L, + var rxRate: Long = 0L, + + // Bytes for the current session + var txTotal: Long = 0L, + var rxTotal: Long = 0L +) : Parcelable { + operator fun plus(other: TrafficStats) = TrafficStats( + txRate + other.txRate, rxRate + other.rxRate, + txTotal + other.txTotal, rxTotal + other.rxTotal + ) +} diff --git a/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/utils/Utils.kt b/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/utils/Utils.kt new file mode 100644 index 0000000..9310194 --- /dev/null +++ b/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/utils/Utils.kt @@ -0,0 +1,33 @@ +package com.sail_tunnel.sail.utils + +import android.annotation.SuppressLint +import android.os.Build +import kotlinx.coroutines.* +import java.io.FileDescriptor +import java.net.HttpURLConnection +import kotlin.coroutines.resume +import kotlin.coroutines.resumeWithException + +val Throwable.readableMessage: String get() = localizedMessage ?: javaClass.name + +/** + * https://android.googlesource.com/platform/prebuilts/runtime/+/94fec32/appcompat/hiddenapi-light-greylist.txt#9466 + */ +@SuppressLint("DiscouragedPrivateApi") +private val getInt = FileDescriptor::class.java.getDeclaredMethod("getInt$") +val FileDescriptor.int get() = getInt.invoke(this) as Int + +suspend fun HttpURLConnection.useCancellable(block: suspend HttpURLConnection.() -> T): T { + return suspendCancellableCoroutine { cont -> + cont.invokeOnCancellation { + if (Build.VERSION.SDK_INT >= 26) disconnect() else GlobalScope.launch(Dispatchers.IO) { disconnect() } + } + GlobalScope.launch(Dispatchers.IO) { + try { + cont.resume(block()) + } catch (e: Throwable) { + cont.resumeWithException(e) + } + } + } +} diff --git a/flutter/android/app/src/main/res/drawable-v21/launch_background.xml b/flutter/android/app/src/main/res/drawable-v21/launch_background.xml new file mode 100644 index 0000000..f74085f --- /dev/null +++ b/flutter/android/app/src/main/res/drawable-v21/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/flutter/android/app/src/main/res/drawable/launch_background.xml b/flutter/android/app/src/main/res/drawable/launch_background.xml new file mode 100644 index 0000000..304732f --- /dev/null +++ b/flutter/android/app/src/main/res/drawable/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/flutter/android/app/src/main/res/mipmap-hdpi/app_icon.png b/flutter/android/app/src/main/res/mipmap-hdpi/app_icon.png new file mode 100644 index 0000000..a5af854 Binary files /dev/null and b/flutter/android/app/src/main/res/mipmap-hdpi/app_icon.png differ diff --git a/flutter/android/app/src/main/res/mipmap-hdpi/app_icon_round.png b/flutter/android/app/src/main/res/mipmap-hdpi/app_icon_round.png new file mode 100644 index 0000000..a5af854 Binary files /dev/null and b/flutter/android/app/src/main/res/mipmap-hdpi/app_icon_round.png differ diff --git a/flutter/android/app/src/main/res/mipmap-ldpi/app_icon.png b/flutter/android/app/src/main/res/mipmap-ldpi/app_icon.png new file mode 100644 index 0000000..d9667db Binary files /dev/null and b/flutter/android/app/src/main/res/mipmap-ldpi/app_icon.png differ diff --git a/flutter/android/app/src/main/res/mipmap-ldpi/app_icon_round.png b/flutter/android/app/src/main/res/mipmap-ldpi/app_icon_round.png new file mode 100644 index 0000000..d9667db Binary files /dev/null and b/flutter/android/app/src/main/res/mipmap-ldpi/app_icon_round.png differ diff --git a/flutter/android/app/src/main/res/mipmap-mdpi/app_icon.png b/flutter/android/app/src/main/res/mipmap-mdpi/app_icon.png new file mode 100644 index 0000000..0e7305a Binary files /dev/null and b/flutter/android/app/src/main/res/mipmap-mdpi/app_icon.png differ diff --git a/flutter/android/app/src/main/res/mipmap-mdpi/app_icon_round.png b/flutter/android/app/src/main/res/mipmap-mdpi/app_icon_round.png new file mode 100644 index 0000000..0e7305a Binary files /dev/null and b/flutter/android/app/src/main/res/mipmap-mdpi/app_icon_round.png differ diff --git a/flutter/android/app/src/main/res/mipmap-xhdpi/app_icon.png b/flutter/android/app/src/main/res/mipmap-xhdpi/app_icon.png new file mode 100644 index 0000000..bba7ca7 Binary files /dev/null and b/flutter/android/app/src/main/res/mipmap-xhdpi/app_icon.png differ diff --git a/flutter/android/app/src/main/res/mipmap-xhdpi/app_icon_round.png b/flutter/android/app/src/main/res/mipmap-xhdpi/app_icon_round.png new file mode 100644 index 0000000..bba7ca7 Binary files /dev/null and b/flutter/android/app/src/main/res/mipmap-xhdpi/app_icon_round.png differ diff --git a/flutter/android/app/src/main/res/mipmap-xxhdpi/app_icon.png b/flutter/android/app/src/main/res/mipmap-xxhdpi/app_icon.png new file mode 100644 index 0000000..54ec738 Binary files /dev/null and b/flutter/android/app/src/main/res/mipmap-xxhdpi/app_icon.png differ diff --git a/flutter/android/app/src/main/res/mipmap-xxhdpi/app_icon_round.png b/flutter/android/app/src/main/res/mipmap-xxhdpi/app_icon_round.png new file mode 100644 index 0000000..54ec738 Binary files /dev/null and b/flutter/android/app/src/main/res/mipmap-xxhdpi/app_icon_round.png differ diff --git a/flutter/android/app/src/main/res/mipmap-xxxhdpi/app_icon.png b/flutter/android/app/src/main/res/mipmap-xxxhdpi/app_icon.png new file mode 100644 index 0000000..390d835 Binary files /dev/null and b/flutter/android/app/src/main/res/mipmap-xxxhdpi/app_icon.png differ diff --git a/flutter/android/app/src/main/res/mipmap-xxxhdpi/app_icon_round.png b/flutter/android/app/src/main/res/mipmap-xxxhdpi/app_icon_round.png new file mode 100644 index 0000000..390d835 Binary files /dev/null and b/flutter/android/app/src/main/res/mipmap-xxxhdpi/app_icon_round.png differ diff --git a/flutter/android/app/src/main/res/values-night/styles.xml b/flutter/android/app/src/main/res/values-night/styles.xml new file mode 100644 index 0000000..06952be --- /dev/null +++ b/flutter/android/app/src/main/res/values-night/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/flutter/android/app/src/main/res/values/styles.xml b/flutter/android/app/src/main/res/values/styles.xml new file mode 100644 index 0000000..cb1ef88 --- /dev/null +++ b/flutter/android/app/src/main/res/values/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/flutter/android/app/src/profile/AndroidManifest.xml b/flutter/android/app/src/profile/AndroidManifest.xml new file mode 100644 index 0000000..309e0c4 --- /dev/null +++ b/flutter/android/app/src/profile/AndroidManifest.xml @@ -0,0 +1,10 @@ + + + + + + diff --git a/flutter/android/build.gradle b/flutter/android/build.gradle new file mode 100644 index 0000000..3efffaf --- /dev/null +++ b/flutter/android/build.gradle @@ -0,0 +1,31 @@ +buildscript { + ext.kotlin_version = '1.6.10' + repositories { + google() + mavenCentral() + } + + dependencies { + classpath 'com.android.tools.build:gradle:7.1.3' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + } +} + +allprojects { + repositories { + google() + mavenCentral() + } +} + +rootProject.buildDir = '../build' +subprojects { + project.buildDir = "${rootProject.buildDir}/${project.name}" +} +subprojects { + project.evaluationDependsOn(':app') +} + +tasks.register("clean", Delete) { + delete rootProject.buildDir +} diff --git a/flutter/android/gradle.properties b/flutter/android/gradle.properties new file mode 100644 index 0000000..5aed9fb --- /dev/null +++ b/flutter/android/gradle.properties @@ -0,0 +1,4 @@ +org.gradle.jvmargs=-Xmx1536M +android.useAndroidX=true +android.enableJetifier=true +android.suppressUnsupportedCompileSdk=33 \ No newline at end of file diff --git a/flutter/android/gradle/wrapper/gradle-wrapper.properties b/flutter/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..cb24abd --- /dev/null +++ b/flutter/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip diff --git a/flutter/android/settings.gradle b/flutter/android/settings.gradle new file mode 100644 index 0000000..44e62bc --- /dev/null +++ b/flutter/android/settings.gradle @@ -0,0 +1,11 @@ +include ':app' + +def localPropertiesFile = new File(rootProject.projectDir, "local.properties") +def properties = new Properties() + +assert localPropertiesFile.exists() +localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) } + +def flutterSdkPath = properties.getProperty("flutter.sdk") +assert flutterSdkPath != null, "flutter.sdk not set in local.properties" +apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle" diff --git a/flutter/assets/Features.svg b/flutter/assets/Features.svg new file mode 100644 index 0000000..73762e4 --- /dev/null +++ b/flutter/assets/Features.svg @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/flutter/assets/active.svg b/flutter/assets/active.svg new file mode 100644 index 0000000..6af1100 --- /dev/null +++ b/flutter/assets/active.svg @@ -0,0 +1,3 @@ + + + diff --git a/flutter/assets/flags/Germany.png b/flutter/assets/flags/Germany.png new file mode 100644 index 0000000..4acffb4 Binary files /dev/null and b/flutter/assets/flags/Germany.png differ diff --git a/flutter/assets/flags/Japan.png b/flutter/assets/flags/Japan.png new file mode 100644 index 0000000..4fe2b23 Binary files /dev/null and b/flutter/assets/flags/Japan.png differ diff --git a/flutter/assets/flags/UK.png b/flutter/assets/flags/UK.png new file mode 100644 index 0000000..7337675 Binary files /dev/null and b/flutter/assets/flags/UK.png differ diff --git a/flutter/assets/flags/United States.png b/flutter/assets/flags/United States.png new file mode 100644 index 0000000..309249d Binary files /dev/null and b/flutter/assets/flags/United States.png differ diff --git a/flutter/assets/flags/hk.svg b/flutter/assets/flags/hk.svg new file mode 100644 index 0000000..c95457c --- /dev/null +++ b/flutter/assets/flags/hk.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/flutter/assets/flags/jp.svg b/flutter/assets/flags/jp.svg new file mode 100644 index 0000000..fe9d9d4 --- /dev/null +++ b/flutter/assets/flags/jp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/flutter/assets/flags/tw.svg b/flutter/assets/flags/tw.svg new file mode 100644 index 0000000..3d56b0f --- /dev/null +++ b/flutter/assets/flags/tw.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/flutter/assets/flags/us.svg b/flutter/assets/flags/us.svg new file mode 100644 index 0000000..9201215 --- /dev/null +++ b/flutter/assets/flags/us.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/flutter/assets/font/Aquire.otf b/flutter/assets/font/Aquire.otf new file mode 100644 index 0000000..b179d24 Binary files /dev/null and b/flutter/assets/font/Aquire.otf differ diff --git a/flutter/assets/history.svg b/flutter/assets/history.svg new file mode 100644 index 0000000..14e8d84 --- /dev/null +++ b/flutter/assets/history.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/flutter/assets/home.svg b/flutter/assets/home.svg new file mode 100644 index 0000000..a0d7cf8 --- /dev/null +++ b/flutter/assets/home.svg @@ -0,0 +1,4 @@ + + + + diff --git a/flutter/assets/id.svg b/flutter/assets/id.svg new file mode 100644 index 0000000..04c3f79 --- /dev/null +++ b/flutter/assets/id.svg @@ -0,0 +1,3 @@ + + + diff --git a/flutter/assets/logo.svg b/flutter/assets/logo.svg new file mode 100644 index 0000000..206823e --- /dev/null +++ b/flutter/assets/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/flutter/assets/logo2.png b/flutter/assets/logo2.png new file mode 100644 index 0000000..69e66bd Binary files /dev/null and b/flutter/assets/logo2.png differ diff --git a/flutter/assets/logo2.svg b/flutter/assets/logo2.svg new file mode 100644 index 0000000..d2be754 --- /dev/null +++ b/flutter/assets/logo2.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/flutter/assets/map.png b/flutter/assets/map.png new file mode 100644 index 0000000..a7ec252 Binary files /dev/null and b/flutter/assets/map.png differ diff --git a/flutter/assets/map.svg b/flutter/assets/map.svg new file mode 100644 index 0000000..b2caf45 --- /dev/null +++ b/flutter/assets/map.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/flutter/assets/powOn.svg b/flutter/assets/powOn.svg new file mode 100644 index 0000000..8c3c899 --- /dev/null +++ b/flutter/assets/powOn.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/flutter/assets/profile.svg b/flutter/assets/profile.svg new file mode 100644 index 0000000..18e73ae --- /dev/null +++ b/flutter/assets/profile.svg @@ -0,0 +1,3 @@ + + + diff --git a/flutter/assets/settings.svg b/flutter/assets/settings.svg new file mode 100644 index 0000000..03385bf --- /dev/null +++ b/flutter/assets/settings.svg @@ -0,0 +1,4 @@ + + + + diff --git a/flutter/assets/text2.svg b/flutter/assets/text2.svg new file mode 100644 index 0000000..003db8c --- /dev/null +++ b/flutter/assets/text2.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/flutter/ios/.gitignore b/flutter/ios/.gitignore new file mode 100644 index 0000000..5c54253 --- /dev/null +++ b/flutter/ios/.gitignore @@ -0,0 +1,33 @@ +*.mode1v3 +*.mode2v3 +*.moved-aside +*.pbxuser +*.perspectivev3 +**/*sync/ +.sconsign.dblite +.tags* +**/.vagrant/ +**/DerivedData/ +Icon? +**/Pods/ +**/.symlinks/ +profile +xcuserdata +**/.generated/ +**/build/ +Flutter/App.framework +Flutter/Flutter.framework +Flutter/Flutter.podspec +Flutter/Generated.xcconfig +Flutter/app.flx +Flutter/app.zip +Flutter/flutter_assets/ +Flutter/flutter_export_environment.sh +ServiceDefinitions.json +Runner/GeneratedPluginRegistrant.* + +# Exceptions to above rules. +!default.mode1v3 +!default.mode2v3 +!default.pbxuser +!default.perspectivev3 diff --git a/flutter/ios/Flutter/AppFrameworkInfo.plist b/flutter/ios/Flutter/AppFrameworkInfo.plist new file mode 100644 index 0000000..4f8d4d2 --- /dev/null +++ b/flutter/ios/Flutter/AppFrameworkInfo.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + App + CFBundleIdentifier + io.flutter.flutter.app + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + App + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + MinimumOSVersion + 11.0 + + diff --git a/flutter/ios/Flutter/Debug.xcconfig b/flutter/ios/Flutter/Debug.xcconfig new file mode 100644 index 0000000..e8efba1 --- /dev/null +++ b/flutter/ios/Flutter/Debug.xcconfig @@ -0,0 +1,2 @@ +#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" +#include "Generated.xcconfig" diff --git a/flutter/ios/Flutter/Release.xcconfig b/flutter/ios/Flutter/Release.xcconfig new file mode 100644 index 0000000..399e934 --- /dev/null +++ b/flutter/ios/Flutter/Release.xcconfig @@ -0,0 +1,2 @@ +#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" +#include "Generated.xcconfig" diff --git a/flutter/ios/LeafFFI/README b/flutter/ios/LeafFFI/README new file mode 100644 index 0000000..7d06852 --- /dev/null +++ b/flutter/ios/LeafFFI/README @@ -0,0 +1 @@ +Run the `misc/download_leaf.sh` script to download library files. diff --git a/flutter/ios/LeafFFI/leaf.h b/flutter/ios/LeafFFI/leaf.h new file mode 100644 index 0000000..4fb7b00 --- /dev/null +++ b/flutter/ios/LeafFFI/leaf.h @@ -0,0 +1,119 @@ +#include +#include +#include +#include + +/** + * No error. + */ +#define ERR_OK 0 + +/** + * Config path error. + */ +#define ERR_CONFIG_PATH 1 + +/** + * Config parsing error. + */ +#define ERR_CONFIG 2 + +/** + * IO error. + */ +#define ERR_IO 3 + +/** + * Config file watcher error. + */ +#define ERR_WATCHER 4 + +/** + * Async channel send error. + */ +#define ERR_ASYNC_CHANNEL_SEND 5 + +/** + * Sync channel receive error. + */ +#define ERR_SYNC_CHANNEL_RECV 6 + +/** + * Runtime manager error. + */ +#define ERR_RUNTIME_MANAGER 7 + +/** + * No associated config file. + */ +#define ERR_NO_CONFIG_FILE 8 + +/** + * Starts leaf with options, on a successful start this function blocks the current + * thread. + * + * @note This is not a stable API, parameters will change from time to time. + * + * @param rt_id A unique ID to associate this leaf instance, this is required when + * calling subsequent FFI functions, e.g. reload, shutdown. + * @param config_path The path of the config file, must be a file with suffix .conf + * or .json, according to the enabled features. + * @param auto_reload Enabls auto reloading when config file changes are detected, + * takes effect only when the "auto-reload" feature is enabled. + * @param multi_thread Whether to use a multi-threaded runtime. + * @param auto_threads Sets the number of runtime worker threads automatically, + * takes effect only when multi_thread is true. + * @param threads Sets the number of runtime worker threads, takes effect when + * multi_thread is true, but can be overridden by auto_threads. + * @param stack_size Sets stack size of the runtime worker threads, takes effect when + * multi_thread is true. + * @return ERR_OK on finish running, any other errors means a startup failure. + */ +int32_t leaf_run_with_options(uint16_t rt_id, + const char *config_path, + bool auto_reload, + bool multi_thread, + bool auto_threads, + int32_t threads, + int32_t stack_size); + +/** + * Starts leaf with a single-threaded runtime, on a successful start this function + * blocks the current thread. + * + * @param rt_id A unique ID to associate this leaf instance, this is required when + * calling subsequent FFI functions, e.g. reload, shutdown. + * @param config_path The path of the config file, must be a file with suffix .conf + * or .json, according to the enabled features. + * @return ERR_OK on finish running, any other errors means a startup failure. + */ +int32_t leaf_run(uint16_t rt_id, const char *config_path); + +int32_t leaf_run_with_config_string(uint16_t rt_id, const char *config); + +/** + * Reloads DNS servers, outbounds and routing rules from the config file. + * + * @param rt_id The ID of the leaf instance to reload. + * + * @return Returns ERR_OK on success. + */ +int32_t leaf_reload(uint16_t rt_id); + +/** + * Shuts down leaf. + * + * @param rt_id The ID of the leaf instance to reload. + * + * @return Returns true on success, false otherwise. + */ +bool leaf_shutdown(uint16_t rt_id); + +/** + * Tests the configuration. + * + * @param config_path The path of the config file, must be a file with suffix .conf + * or .json, according to the enabled features. + * @return Returns ERR_OK on success, i.e no syntax error. + */ +int32_t leaf_test_config(const char *config_path); diff --git a/flutter/ios/LeafFFI/libleaf.a b/flutter/ios/LeafFFI/libleaf.a new file mode 100644 index 0000000..5e31cf3 Binary files /dev/null and b/flutter/ios/LeafFFI/libleaf.a differ diff --git a/flutter/ios/LeafFFI/module.modulemap b/flutter/ios/LeafFFI/module.modulemap new file mode 100644 index 0000000..461640b --- /dev/null +++ b/flutter/ios/LeafFFI/module.modulemap @@ -0,0 +1,6 @@ +module LeafFFI { + umbrella header "leaf.h" + link "leaf" + export * +} + diff --git a/flutter/ios/PacketTunnel/Info.plist b/flutter/ios/PacketTunnel/Info.plist new file mode 100644 index 0000000..2842577 --- /dev/null +++ b/flutter/ios/PacketTunnel/Info.plist @@ -0,0 +1,35 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + PacketTunnel + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + $(MARKETING_VERSION) + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + NSCameraUsageDescription + 用于客服消息上传图片 + NSExtension + + NSExtensionPointIdentifier + com.apple.networkextension.packet-tunnel + NSExtensionPrincipalClass + $(PRODUCT_MODULE_NAME).PacketTunnelProvider + + NSPhotoLibraryAddUsageDescription + 用于客服消息上传图片 + + diff --git a/flutter/ios/PacketTunnel/PacketTunnel.entitlements b/flutter/ios/PacketTunnel/PacketTunnel.entitlements new file mode 100644 index 0000000..cec9d67 --- /dev/null +++ b/flutter/ios/PacketTunnel/PacketTunnel.entitlements @@ -0,0 +1,14 @@ + + + + + com.apple.developer.networking.networkextension + + packet-tunnel-provider + + com.apple.security.application-groups + + group.com.sail-tunnel.zeus + + + diff --git a/flutter/ios/PacketTunnel/site.dat b/flutter/ios/PacketTunnel/site.dat new file mode 100644 index 0000000..6c685cd --- /dev/null +++ b/flutter/ios/PacketTunnel/site.dat @@ -0,0 +1,11291 @@ + + + CATEGORY-CASbuypass-ssl.com buypass.com +buypass.no +buypass.se minid.no +comodo.com comodoca.com comodoca2.com comodoca3.com comodoca4.comcybertrust.co.jpcybertrust.ne.jp digicert.comdigitalcertvalidation.com freessl.com geotrust.com rapidssl.com +thawte.com  thawte.de  thawte.fr entrust.netentrustdatacard.comglobalsign-media.com globalsign.be globalsign.chglobalsign.co.ukglobalsign.comglobalsign.com.auglobalsign.com.hkglobalsign.com.sg globalsign.es globalsign.eu globalsign.frglobalsign.net globalsign.nl!secure.globalsign.com +cnocsp.globalsign.com +cn ocsp2.globalsign.com +cn identrust.comidentrust.co.uk identrust.netletsencrypt.org secom.co.jpsecomtrust.net sectigo.comenterprisessl.comhackerguardian.cominstantssl.comoptimumssl.compositivessl.com digital-id.ch digitalid.chmanaged-pki.chmanaged-pki.de pki-post.ch pki-posta.ch pki-poste.chroot-signing.chrootsigning.comssl-certificate.ch +swissid.ch swissign.com swissign.liswisssign-group.chswisssign-group.comswisssign-group.li swisssign.ch swisssign.com swisssign.li swisssign.net swisssign.orgswisssigner.chswisssigner.comswisssigngroup.chswisssigngroup.comswissstick.com swisstsa.ch swisstsa.li trustdoc.ch trustsign.ch zert.ch telekom.com +telekom.de trustwave.com verisign.asia verisign.biz verisign.chverisign.co.inverisign.co.uk verisign.comverisign.com.auverisign.com.brverisign.com.cnverisign.com.esverisign.com.hkverisign.com.sgverisign.com.twverisign.com.vn verisign.de verisign.dk verisign.es verisign.fr verisign.hk verisign.in verisign.info verisign.jobs verisign.mobi verisign.name verisign.net verisign.org verisign.pro verisign.se verisign.sg verisign.tw verisign.us verisign.vnverisigninc.com +D + +POCOIQ-ADS cdn.pocoiq.cn +ads oct.pocoiq.cn +ads + +TABOOLA taboola.com + +MUJI muji.com muji.com.cn +cn muji.com.hk muji.eu muji.net muji.tw muji.us mujikorea.net + +PAXFUL +paxful.com + +ZOHO zoho.com zoho.com.au zoho.eu zoho.in zohocdn.comzohomeetups.comzohomerchandise.comzohopublic.comzohoschools.comzohostatic.com zohostatic.inzohouniversity.comzohowebstatic.com +" + ALPINELINUXalpinelinux.org +. +FLUTTER flutter.devflutterapp.com + +ICBCicbc icbc-ltd.com icbc-uk.com icbc-us.com +icbc.co.id icbc.com.cn icbc.com.mo icbc.com.pe icbc.com.sg icbcasia.com icbcbr.com.bricbclondon.com +icbcmy.comicbcstandard.comicbcstandardbank.comicbcstandardresources.comicbcstandardsecurities.com icbcswiss.com icbccs.com.cn + +MOZILLA firefox.comdeveloper.mozilla.org($interactive-examples.mdn.mozilla.netmdn.mozillademos.orgmedia.prod.mdn.mozit.cloud rust-lang.org  rustup.rs  crates.io docs.rsmozilla.community mozilla.net mozilla.org bugzilla.org getpocket.comseamonkey-project.orgthunderbird.net +d +REDDIT +reddit.comredditstatic.comredditmail.comredditmedia.com redd.it + +ATTaccbusiness.com +atandt.comatt-bundles.com att-japan.com att-mail.comatt-promotions.com att-rsvp.comatt.cn +cn att.com att.jobs att.net +att.tvattalascom.comattbelieves.comattbusiness.net attcenter.comattcollaborate.com +attcorp.cn +cnattexperts.com attglobal.netattinnovationspace.comattinternetservice.com +attjoy.comattnetclient.comattonlineoffers.com attproxy.comattpublicpolicy.comattpurchasing.comattsavings.comattspecial.com +attssl.comattstadium.comattsuppliers.com atttvnow.comattuverseoffers.comattuverseonline.com attvoip.com attwifi.comattwirelessinternet.comattwirelessonline.comattwirelesssolutions.com bellsouth.net +budatt.com +cobatt.com currently.com currently.netdirectvbusinessmarket.comenterprisepaging.com itcanwait.com mymmode.comnaturalvoices.comnettyinternet.comopenapiplatform.comopenapiservice.compatentgold.netpaygonline.comraponlinereview.com signalbar.comsundayready.com synaptic.netthanksloyalty.com tvpromise.com +uverse.comwebhosting.com att-idns.net +attdns.com +attdns.netna-att-idns.netaudiencenetwork.comaudiencenetwork.tvcabletvdirectv.com dierectv.com +dirctv.com direcpath.com direcpath.netdirecttv-deals.tvdirecttv-dish.com dkrecttv.com directtv.netdirecttvdeals.tvdirecttvreviews.comdirectv-4-you.comdirectv-newyork.com directv.comdirectvadsales.comdirectvatlantaga.comdirectvboston.comdirectvbundles.comdirectvbusiness.comdirectvcincinnatioh.comdirectvcinema.comdirectvconnect.comdirectvcookevilletn.comdirectvcrossvilletn.comdirectvdealer.comdirectvdeals.comdirectvdealsnow.com directvdsl.tvdirectvforhotels.comdirectvgrandslam.comdirectvhouston.comdirectvinternet.comdirectvkentucky.comdirectvlebanontn.comdirectvlosangeles.comdirectvmetropolisil.comdirectvmonitoring.comdirectvmurfreesborotn.comdirectvnewhampshire.comdirectvnow.comdirectvoffercodes.comdirectvonline.comdirectvplans.comdirectvpomise.comdirectvpromise.comdirectvpromotions.comdirectvrebate.comdirectvrichmond.comdirectvsavings.comdirectvsports.comdirectvsundayticket.com direectv.com +diretv.comdtv2009offers.comfreedirecttvspecial.com getdirect.tv hddirectv.com le-direct.tvmydirectgroove.commydirectvchannels.comredzonechannel.com txdirectv.com  xandr.com +a +DYNA dynacw.co.jp +dynacw.com dynacw.com.cn dynacw.com.hk dynacw.com.tw +2 + GROWINGIO-ADS!assets.growingio.com +ads +- +LANTERNgetlantern.org +lantern.io +F + IDENTRUST identrust.comidentrust.co.uk identrust.net +) +OSCHINA  gitee.com oschina.net + +KUAISHOU gifshow.com ksapisrv.com kuaishou.com +yximgs.com log-sdk.gifshow.com +adswlog.kuaishou.com +ads + +AZURE azure-dns.comazure-dns.info azure-dns.net azure-dns.orgazure-mobile.netazure-sphere.comazure-test.netazure.cn +cn  azure.com  azure.netazurecomcdn.netazurecontainer.ioazurecosmos.netazurecosmosdb.comazurecosmosdb.infoazurecosmosdb.netazuredatabricks.netazuredevopslaunch.comazuredigitaltwin.comazuredigitaltwins.comazuredigitaltwins.netazuredns-prd.infoazuredns-prd.orgazureedge-test.net azureedge.netazureiotcentral.comazureiotsolutions.comazureiotsuite.comazureplanetscale.infoazureplanetscale.netazureserviceprofiler.comazuresmartspaces.netazurestackvalidation.comazurewebsites.netchinacloudapi.cn +cnchinacloudapp.cn +cnchinacloudsites.cn +cn cosmosdb.info cosmosdb.net devopsms.com gotcosmos.commicrosofteca.commicrosoftiotcentral.comserverlesslibrary.nettryfunctions.comwindowsazure.cn +cnwindowsazure.comazure.microsoft.com"azuremarketplace.microsoft.com + +DROPBOX db.ttdropbox-dns.com dropbox.com dropbox.techdropboxapi.comdropboxbusiness.comdropboxcaptcha.comdropboxforum.comdropboxforums.comdropboxinsiders.comdropboxmail.comdropboxpartners.comdropboxstatic.comdropboxusercontent.comgetdropbox.com&"paper-attachments.s3.amazonaws.com + + EPICGAMESbattlebreakers.com eac-cdn.com easy.aceasyanticheat.net epicgames.com fortnite.com paragon.complayparagon.comroborecall.comshadowcomplex.com spyjinx.comunrealengine.comunrealtournament.com6*^cdn\d-epicgames-\d+\.file\.myqcloud\.com$ +cn*&^epicgames-download\d\.akamaized\.net$;/^epicgames-download\d-\d+\.file\.myqcloud\.com$ +cn + + +FREEBEACONfreebeacon.com +k + PANASONIC  panasonic panasonic.cn +cn panasonic.com panasonic.jp technics.com +- +SURFLITE surflite.co surflite.net + +YUEWEN +yuewen.com hongxiu.com lrts.me qdmm.com +qidian.com readnovel.com tingbook.com webnovel.com +xs8.cn xxsy.net + +BEATS100beatscheap.com1monsterbeatsbydreus.com2013beatsbydrdreonline.com2013beatsbydrdreshop.com2013beatsbydreshop.com2013beatshdcybermonday.com2013cheapestbeats.com2013newbeatsworld.com2013pascherbeatsbydre.com2014cheapbeatsbydre.com 2beatsdre.com2buybeatsbydre.com2drdrebeats.com40shopping.com4beatsbydre.com5beatsbydre.comaaagradeheadphones.com +aanaan.comabcheadphones.comabeatsbydrdre.com aeasyshop.com +airmay.com +ajtalk.com albeats.com annstores.netaokwholesale.netaucheapbeats.comaudiobeatsau.comaudiobeatsbydre.comaudiomonsterbeatsonline.comauricularemonsterbeats.com#auricularesbeatsbaratosshop.comauricularesbeatsmarkt.comausbeatsbydrdre.combag-glasses1.com bandgirlz.com baxsound.com bbestmall.com +beatbd.combeatbydre2013.combeatbydremonster.com!beatbydreheadphonesonsale.combeatbydrekopen.combeatbydreuk2014.combeatdrdres.combeatfactoryoutlets.combeatmonstersaustralia.netbeats-by-dre-australia.combeats-bydrdre.netbeats-bydre-mall.combeats-bydrecheapsale.combeats-bydreoutletonline.combeats-bydreoutletsale.combeats-bydreoutletsale.netbeats-bydreoutletssale.netbeats-bydrestore.combeats-bydreuk.combeats-deal.combeats-dre-us.com"beats-headphones-buy-cheap.combeats-headphones.usbeats-sale.combeats-seller.combeats-soaho.com  beats1.cc beats1.cn +cn  beats1.tv beats1.com.cn +cn beats123.com beats2.com.cn +cn beats4.cn +cn +beats4.netbeats4outlets.combeats4salecheap.combeatsallsale.combeatsaudifonos.combeatsaudiobydre.combeatsaudiobydre.netbeatsaudios.netbeatsbeatsmonster.combeatsbestdeals.combeatsblackfridaydeals.netbeatsblackfridayretails.combeatsboxingdayuksale.combeatsbydrdre-headphones.combeatsbydrdre-officials5.combeatsbydrdre-online.combeatsbydrdre-onsale.combeatsbydrdre-store.combeatsbydrdre-store.usbeatsbydrdre4sale.combeatsbydrdrebiz.combeatsbydrdrecustom.combeatsbydrdredanmark.combeatsbydrdremall.combeatsbydrdreoutlet.combeatsbydrdres.combeatsbydrdresale.netbeatsbydrdrestore.combeatsbydrdreus.com!beatsbydre-beatsheadphone.combeatsbydre-chen.combeatsbydre-club.combeatsbydre-headphones.com!beatsbydre-headphonesshop.combeatsbydre-mall.combeatsbydre-outlet.combeatsbydre-outletsale.netbeatsbydre-outletstore.combeatsbydre-sell.combeatsbydre-store.combeatsbydre-studio.combeatsbydre-us.com beatsbydre.jpbeatsbydre2081.combeatsbydre411.combeatsbydre4usales.combeatsbydreauofficial.combeatsbydreausale.net beatsbydreaustralia-sale.com!beatsbydreaustraliaonline.com"beatsbydreaustraliaonlines.com beatsbydreaustraliasales.combeatsbydrebeatsby.com!beatsbydreblackfriday2013.com beatsbydreblackfridaypro.combeatsbydreboxingdayca.combeatsbydrecasquesfr.com#beatsbydrecheap-outletstore.combeatsbydrecheaper.com"beatsbydrecheaponlinesales.combeatsbydrecolors.com beatsbydrecustomwireless.com&"beatsbydrecybermondaydeals2013.com&"beatsbydrecybermondaydeals2013.netbeatsbydredanmarks.com"beatsbydredealsblackfriday.com"beatsbydredealscybermonday.combeatsbydrediscount.com beatsbydrediscountonline.netbeatsbydredr.combeatsbydreexecutivesale.com beatsbydreformall2013-nl.com beatsbydreforsalesonline.com beatsbydreforshop2013-nl.combeatsbydreforstore.combeatsbydreforyououtlet.combeatsbydrefr.com!beatsbydrefrcasquepascher.combeatsbydrefriday.combeatsbydregot.combeatsbydrehd.combeatsbydrehd.netbeatsbydreheadphones-nz.combeatsbydreheadphonesolo.combeatsbydrehut.combeatsbydreinexpensive.combeatsbydreireland-sales.com beatsbydreirelandonlines.combeatsbydreirelandsale.com beatsbydreirelandsonline.combeatsbydremall2013.com"beatsbydremonsteraustralia.combeatsbydrenls.combeatsbydrenorge1.net!beatsbydreofficialdanmark.combeatsbydreoksale.combeatsbydreol.combeatsbydreonlie2013-nl.com!beatsbydreonlines-ireland.combeatsbydreonlines-uk.combeatsbydreonlinesale-nz.combeatsbydreoordopjes.combeatsbydreoslo.combeatsbydreoutletsale.combeatsbydreoutletscheap.combeatsbydrerealstore.combeatsbydres-shop.combeatsbydresale-uk.combeatsbydresalemall2013.combeatsbydresales.us'#beatsbydresalesonline-australia.com beatsbydresaleonlines-nz.combeatsbydresdanmark.netbeatsbydreshop-uk.combeatsbydreshops.netbeatsbydresingapores.combeatsbydresingaporesale.combeatsbydrespeakers.combeatsbydresold.com%!beatsbydresolohdonline-canada.combeatsbydresonline-nz.combeatsbydrestorevip.combeatsbydressale.combeatsbydressolo.combeatsbydresstudio.com"beatsbydrestudio-australia.combeatsbydrestudio.combeatsbydretoutlet.combeatsbydreuk.combeatsbydreuk.netbeatsbydreus.combeatsbydrevipde.combeatsbydrew.combeatsbydrsmonsterinusa.combeatsbymusic.netbeatsbysdrbre.combeatsbysdrdres.combeatscasque-france.combeatscheap-nz.combeatscheap-uk.combeatscheapforsale.combeatscollection2014.combeatscustomblackfriday.combeatsdanmark2013.combeatsdrdre-headphones.combeatsdrdre-it.combeatsdrdre-solo.combeatsdrdre2014.combeatsdrdrecuffie.netbeatsdrdrekaufenschweiz.netbeatsdrdreneon.combeatsdre-monster.com beatsdre.netbeatsdre4cheap.combeatsdrecheap.combeatsdredreheadphones.combeatsdreforsale.combeatsdreinau.combeatsdremonster-uk.com!beatsdrenewcolorful4usale.combeatsdreoutletsale.combeatsdresale2013.combeatsdresalestore.combeatsdresolo2013.combeatsdreus.combeatsearbudsheadphoness.combeatsfacstore.combeatsfactoroutlets.combeatsfactorycollection.combeatsfactoryoutles.combeatsforcheap-usa.combeatsforme.combeatsfranceofficiel.combeatselectronic.netbeatselectronics.com +beatsep.cn +cn beatsep.com beatsep.net beatsheadphones-discount.combeatsheadphones1.combeatsheadphones2u.combeatsheadphonesale.combeatsheadphonesdealer.combeatsheadphonesforcheap.netbeatsheadphonesonline.combeatsheadphoness.combeatsheadphonestudio.combeatsheadphonesusamall.combestshoesale2014.netbeatshopuk.combeatsincanada.combeatsinsingapore.combeatsireland.net beatsjoy.combeatsmonstersales.combeatsmusic.combeatsmusic.wang beatsneon.combeatsnzsale.com beatsodre.combeatsofdre-usa.combeatsonblackfriday2013.com beatsone.netbeatsoutlet.netbeatsoutletanytime.combeatsoutletonlines.combeatspascher-bydre.combeatspascher-fr.netbeatspascher.netbeatspaschers.netbeatspillnewcolor.combeatspills.combeatspromonsterjp.combeatspromotions.combeatssales.combeatssaleus.combeatssaustraliabuy.combeatssbyaustralia.combeatssbydredanmark.combeatsshop-uk.combeatsshop-usa.combeatsshopstore.combeatssingapores.combeatssingaporeshop.com beatsstudiohodetelefoner.combeatsstudiosite.combeatstoreusa.com beatsua.combeatswholesale.usbeatswirelesscheap.combeatswirelesscuffie.combegin-trade.combestbeats4u.com +biitii.comblackfridaydrebeatsnew.comblackfridaydrebeatsshop.combloommicroventures.com bookonsky.net +bossae.combrandeasygo.combrandelectronic.combrandproducts1688.com brands098.combusinesswebwise.combuy-from-shanghai.combuybeatsbydre-uk.combuybeatsheadphonesbydre.combuycheapbeatsbus.combuycheapbeatsbydre.combuycheapbeatsbydreshop.combuycheapbeatsdreuk.combuydrdrebeatbox.combuyminibeatbox.combuyonlineheadphones.combuyshoponly.combuzzardflapper.combybeatsdre.combydrebeats.comcanada-beatsbydre.com casque-fr.com casquebeatsbydrdresolohd.comcasquebeatsdocteurdre.comcasquebeatsdre2013.comcasquebeatsenligne.comcasquebeatsfracheter.comcasquebeatsmer.netcasquebeatsofficiel-fr.comcasquebeatspascher2013.comcasquebeatssolo.netcasquedrdrebeatssfr.comcasquemonsterbeats.com#casquemonsterbeatsbydre2013.comcasquesbeatsaudio.comcheap-beats-by-dre.netcheap-beatsbydre.comcheapbagshoes.com cheapbeats.uscheapbeats365.comcheapbeats4sale.netcheapbeatsaustraliasale.comcheapbeatsbus.comcheapbeatsbydr.comcheapbeatsbydrdrepro.comcheapbeatsbydre-au.comcheapbeatsbydre99.comcheapbeatsbydrefau.comcheapbeatsbydremall.comcheapbeatsbydremonster.comcheapbeatsbydrenz.netcheapbeatsbydreonsale.com cheapbeatsbydreoutlet-nz.comcheapbeatsbydreoutlet.com"cheapbeatsbydreoutlets2013.comcheapbeatsbydresale.comcheapbeatsbydreshop.comcheapbeatsdrdresolo.com$ cheapbeatsbydrestudioedition.com"cheapbeatsbydrestudioutlet.comcheapbeatsdrestudios.comcheapbeatsheadphone2014.comcheapbeatsheadphones.uscheapbeatsie.comcheapbeatsla.comcheapbeatssale4u.comcheapbeatsshopbydre.comcheapcustombeatsbydre.comcheapdrdrebeats8.comcheapdrdrebeatsca.comcheapdrebeats8.netcheaperbeatsbydresale.comcheapestbeatsdrdre.comcheapheadphonesland.comcheapheadphonessale.comcheapheadsetmall.comcheapheadsetshop.com cheapmonsterbeatsbydrdre.com!cheapmonsterbeatsheadsets.com cheapmonstersbeatsonsale.comcheapmonsterbeatssale.comcheapmonsterbeatsusa.uscheapnewbeatsbydre.comcheapsalemonster.comcheapshoesvip.comcheapwireless04.comcheapwirelessbeats.comcheerwholesale.uschihair-straightener.comchinaclothesstore.comciattackers.com +cmhalq.com cnshopin.comcoolmonster.netcozydrdrebeats.com cqcorea.comcuffiesaldi.comcustombeatsbydrebuy.comcustombeatsdeals.comcustombeatsforcheap.comcustombeatsny.comcustombeatssbydreus.comcustomdrdrebeats.comcustomizedbeatbydre.comcustomizedbeatsbydre.comcustomizedbeatsdre.comcybermondaybeats4sale.comdanemarket.comdanmarkbeatsbydrdre.comdctbeatsbydre.comdealsbeatsblackfriday.comdetaliczny.comdiscountbeatsbydre-us.comdiscountbeatsstore.comdkbeatsbydre.comdrbeatsukmart.comdrdre-beats.comdrdrebeats-chen.comdrdrebeats-headphone.comdrdrebeats-usa.comdrdrebeatsale.comdrdrebeatsbillig.comdrdrebeatsdesale.comdrdrebeatsdiscount.comdrdrebeatsforu.comdrdrebeatsretail2013.comdrdrebeatssale7.comdrdrebeatsuk.comdrdreheadphonebeats.comdrdreheadphonekey.comdrdreheadphonesusstore.comdrdremonster-beats.comdrdremonsterdre.comdrdreprobeatssale.com drdrefnac.comdrebeats-australia.comdrebeats-france.comdrebeats-monster.com!drebeats-monsteraustralia.comdrebeats-monsterusa.comdrebeats-singapore.comdrebeats-singapore.netdrebeats-singaporecheap.comdrebeats-singaporecheap.netdrebeats-solo.comdrebeats-studio.comdrebeatsaustralia-cheap.comdrebeatsaustralia-cheap.netdrebeatsbuy.comdrebeatsbydreoutlet.comdrebeatscanada.comdrebeatsdeutschland.netdrebeatsforsaleus.comdrebeatsheadphones-nz.comdrebeatshome.comdrebeatsoutletstore.comdrebeatsoldes.comdrebeatspill.comdrebeatssite.com#drebeatssolocybermondaysale.comdrebeatsstudio2013.comdrebeatstudio.com drebyby.comdremonsterbeatsoutlets.comdreprobeats.com dreprofy.com +dtsell.comearphonescheapest.comebuyheadphones.comesbeatsbydrebuy.cometheadphones.comfamosascalvas.comfindmybeats.comfr-beatsbydrestore.comfrancecasquebeatssolde.comfrcasquesbeats.com free-aa.com free-sns.com frishoes.comgamebeforethegame.comgetdrebeatssale.comgmnetworks.net gobeatsye.comgobuyonlinestore.net goodsdunk.netheadphonepubs.comheadphones-cool.comheadphones-dre.com headphones-outlet-online.comheadphonesbeatsaudio.comheadphonesbeatsbydre.comheadphoneses.comheadphoneshome.comheadphoneshotsales.comheadphonesol.comheadphonesretailer.comheadphonessupply.comheadphonezip.comheadset987.comhellokittybeats.com highbolt.net highdefinitionbeatsbydre.com hipaa6020.com hipzoom.nethonawalaan.comhotbeatsonsale.comhotmonsterbeats.comhottestheadphonesonline.com  hrsaz.com ibeats-uk.comibeatsbydre.ccibeatsbydre.comigoshopping.net illianacomputerrecycling.comimonsterbeats.comincentivetravelgifts.comioffergift.com islamiccenterofnewlondon.comitaliabeatsbydrdre.com jkbeats.comkickshatchannel.comkobbeatssbydredk.comkopfhorergunstigshop.comleecountytimes.com lexuemei.comlovebeatsdr.com lovemarca.comluckyissue.com +lyzsxx.com mairbeats.com +makeeu.commallheadphone.commbeats-tech.commbheadphone.com +micstl.commmonsterheadphones.netmonbeats2013.commonster-beats-by-dr-dre.com monster-beats-headphones.commonsterbeats-cheap.commonsterbeats-headphone.commonsterbeats-onsale.commonsterbeats-solo.commonsterbeats-solo.netmonsterbeats365buy.commonsterbeats8beatsbydre.commonsterbeatsale.commonsterbeatsalestore.commonsterbeatssalg.commonsterbeatsau.commonsterbeatsbydrdre-nz.commonsterbeatsbydrdre-usa.com!monsterbeatsbydrdrecanada.com!monsterbeatsbydrdrestudio.commonsterbeatsbydre-nz.commonsterbeatsbydre-usa.commonsterbeatsbydre2015.com'#monsterbeatsbydreaustraliacheap.com!monsterbeatsbydrebilligde.com monsterbeatsbydrefactory.commonsterbeatsbydrenew.commonsterbeatsbydres.commonsterbeatsbydreshop.commonsterbeatscasques.commonsterbeatscommunity.commonsterbeatsdrdrecheap.commonsterbeatsfactory.netmonsterbeatsfinland.commonsterbeatsforsale.commonsterbeatsheadphone.commonsterbeatsheadphones.netmonsterbeatshere.commonsterbeatsitaly.commonsterbeatsmall.commonsterbeatsnegozi.netmonsterbeatsok.com!monsterbeatsonlinestoreuk.commonsterbeatsoutlet.usmonsterbeatspascher.netmonsterbeatsru.commonsterbeatssales.commonsterbeatsshops.netmonsterbeatsstore.com#monsterbeatssydneyaustralia.commonsterbeatstang.commonsterbeatstienda.commonsterbeatstudio.commonsterbydrebeat.com!monstercasquebeatspascher.netmonstercheapbeatss.commonsterdrebeats-canada.netmonsterdrebeats-usa.commonsterdrebeats-usa.netmonsterheadphone.netmonsterproduct.netmonstersbeatbydres.commonstersdebea.commonstershopcheapbeats.netmoreheadphones.com +ms4dre.commybeatsbydrestudio.commybeatsbydreuk.commybeatscheapbydre.commyferrariheadphones.comnamemybeats.com neborder.comnegozimonsterbeats.comnegoziomonsterbeats.comnewbeatsblackfriday.com newbemany.comnewdrediscount.comnewestbeatsbydre.comnewlysprung.netnewmonst1erbeatsto1re.com!newmonsterbeatsheadphones.comnewschristmasshopping.comnflhotsalejerseys.com nicesshop.netofferairjordanlebron.comofficialbeatsbydreshop.comofficialbeatsbydrestore.comofficialdrdre.comofficialheadphone.com ogameblog.comonbeatsbydresale.com onlinemonsterbeatsonsale.com onsalekey.comonsaletrend.comoutletbeatsshop.compascherbeatsmonster.compaulsimon-music.comperfectkickz.netpersoneelsland.compicknicekicks.netpickshoesclothes.com pillbeatsblackfridaysale.compocketbiketrader.compowerbeats2wireless.compowerbeatsbydrdre.compowerbeatsbydre.compromonsterbeatsbydre.comprostudiobeatscybersale.com  rbsgr.comrepsneakermall.com repswing.com!salebeatslasteststyle4you.comsaleblackfridaydrebeats.comsalecheaphandbags.com samebags.com sanvaras.com +scnshop.cc +shoers.com shoestop2.comshop-headphones.netshopbeatsdre.com shopbydre.comshopcustomizedbeats.comshopdrebeats.comshopmonsterbeats.comshopping-days.netshoppinguheadphones.comsneaker666.comsneakerpage.netsneakerskick.comsolostudioksale.com soso7778.comspecialtyheadphones.comspiritclubs.comstraightouttasomewhere.comstudiobeatsbydrdre.comsulwerphoto.comsunglassessale2014.comsuperearsenjoy.comsupplybestjerseys.comsustainthesound.comsverigebeatsbydrdre.com szcheapmonsterheadphones.comszwinnertechnology.com takegoto.comthe-monster-beats.comthebeatsbydre.comthebeatsbydre.netthebeatsheadphonesale.com +theuab.nettopbeatsbydrdreoutlet.comtopbeatsdealer.comtopbeatsforsale.com tradevip1.com tteshop.com ubnw.net +unstyle.us&"usa-beatsbydreheadphonesonsale.net  v-has.com vip-beats.comvipbeatsbydre.comvipheadphones.com vipshoes2.com  wasdj.comwholesale-exporter1.comwholesalediscountpurses.comwholesalefine.comwholesaleonlinemart.comworldcoinpay.comyourmonsterbeats.com%!beatselectronicsllc.tt.omtrdc.net + +BITFINEX bitfinex.com + +PASTEBIN pastebin.com + +YARNPKG yarnpkg.com +u + +ATTWATCHTV +att.tv atttvnow.comattwatchtv.com directv.com  dtvce.comnettyinternet.com +X +FACEBOOKaccountkit.comatscaleconference.com botorch.org +buck.build buckbuild.comcomponentkit.org draftjs.org +f8.comfacebookappcenter.infofacebookappcenter.netfacebookappcenter.orgfacebookconnect.comfacebookdevelopergarage.comfaciometrics.com fasttext.cc fbf8.com fbinfer.com fblitho.com fbredex.com +fbrell.com flow.dev flow.org flowtype.org frescolib.org hacklang.org hhvm.commakeitopen.com mcrouter.net mcrouter.orgmessengerdevelopers.com +ogp.meopengraphprotocol.comopengraphprotocol.org  parse.com pyrobot.org  react.com reactjs.com reactjs.org recoiljs.org rocksdb.com rocksdb.net rocksdb.orgyogalayout.comdevelopers.facebook.com!achat-followers-instagram.com#acheter-followers-instagram.com$ acheterdesfollowersinstagram.com!acheterfollowersinstagram.combookstagram.comcarstagram.comcdninstagram.comchickstagram.com ig.me  igcdn.com igsonar.com igtv.com imstagram.com imtagram.cominstaadder.cominstachecker.cominstafallow.cominstafollower.cominstagainer.com instagda.com instagify.cominstagmania.com instagor.cominstagram-brand.cominstagram-engineering.cominstagram-help.cominstagram-press.cominstagram-press.net instagram.cominstagramci.cominstagramcn.cominstagramdi.cominstagramhashtags.netinstagramhilecim.cominstagramhilesi.orginstagramium.cominstagramizlenme.cominstagramkusu.cominstagramlogin.cominstagramm.cominstagramn.cominstagrampartners.cominstagramphoto.cominstagramq.cominstagramsepeti.cominstagramtakipcisatinal.netinstagramtakiphilesi.cominstagramtips.cominstagramtr.com instagran.cominstagranm.com instagrem.com instagrm.cominstagtram.com instagy.cominstamgram.cominstangram.cominstanttelegram.cominstaplayer.net instastyle.tv instgram.com intagram.com intagrm.com intgram.comkingstagram.comlnstagram-help.comtheinstagramhack.comoninstagram.comonline-instagram.comonlineinstagram.comweb-instagram.netwwwinstagram.comfbmessenger.comm.me messenger.com +nbabot.net binoculus.com buyoculus.com ocul.usoculus-china.com +oculus.comoculus2014.com oculus3d.comoculusblog.comoculusbrand.comoculuscasino.net oculuscdn.comoculusconnect.comoculusdiving.comoculusforbusiness.comoculusrift.com oculusvr.compowersunitedvr.com wa.mewhatsapp-plus.infowhatsapp-plus.mewhatsapp-plus.net whatsapp.cc whatsapp.com whatsapp.info whatsapp.net whatsapp.org whatsapp.tvwhatsappbrand.comaboutfacebook.com accessfacebookfromschool.com acebooik.com acebook.comadvancediddetection.comaskfacebook.netaskfacebook.org +atdmt2.com atlasdmt.comatlasonepoint.combuyingfacebooklikes.comcareersatfb.comcelebgramme.comchina-facebook.com click-url.comcomo-hackearfacebook.comcrowdtangle.com dacebook.comdlfacebook.comdotfacebook.comdotfacebook.netexpresswifi.com faacebok.com faacebook.com faasbook.com facbebook.com facbeok.com +facboo.com facbook.com facbool.com facboox.com faccebook.comfaccebookk.com facdbook.com facdebook.com face-book.com faceabook.com facebboc.com facebbook.comfacebboook.com facebcook.com facebdok.com facebgook.com facebhook.com facebkkk.com facebo-ok.com faceboak.com facebock.com facebocke.com facebof.com faceboik.com facebok.comfacebokbook.com facebokc.com facebokk.com facebokok.com faceboks.com facebol.com facebolk.com facebomok.com faceboo.com facebooa.com faceboob.comfaceboobok.com facebooc.com faceboock.com facebood.com facebooe.com faceboof.com facebooi.com facebooik.com facebooik.org facebooj.comfacebook-corp.comfacebook-covid-19.comfacebook-ebook.comfacebook-forum.comfacebook-inc.comfacebook-login.comfacebook-newsroom.comfacebook-newsroom.orgfacebook-pmdcenter.comfacebook-pmdcenter.netfacebook-pmdcenter.orgfacebook-privacy.comfacebook-program.comfacebook-studio.comfacebook-support.orgfacebook-texas-holdem.comfacebook-texas-holdem.net facebook.br facebook.ca facebook.cc facebook.comfacebook.design facebook.net facebook.hu facebook.in fecebook.net facebook.nl facebook.org facebook.se facebook.shop facebook.tv facebook.us facebook.wangfacebook123.orgfacebook30.comfacebook30.netfacebook30.orgfacebook4business.comfacebookads.com"facebookadvertisingsecrets.comfacebookatschool.comfacebookawards.comfacebookblueprint.netfacebookbrand.comfacebookbrand.net3/facebookcanadianelectionintegrityinitiative.comfacebookcareer.comfacebookcheats.comfacebookck.comfacebookclub.comfacebookcom.comfacebookconsultant.orgfacebookcoronavirus.comfacebookcovers.orgfacebookcredits.infofacebookdating.netfacebookdusexe.orgfacebookemail.comfacebookenespanol.comfacebookexchange.comfacebookexchange.netfacebookfacebook.comfacebookflow.comfacebookgames.comfacebookgraphsearch.comfacebookgraphsearch.infofacebookgroups.comfacebookhome.ccfacebookhome.comfacebookhome.infofacebookhub.com facebooki.comfacebookinc.comfacebookland.comfacebooklikeexchange.comfacebooklive.comfacebooklivestaging.netfacebooklivestaging.orgfacebooklogin.comfacebooklogin.infofacebookloginhelp.netfacebooklogs.comfacebookmail.comfacebookmail.tvfacebookmanager.infofacebookmarketing.info facebookmarketingpartner.com!facebookmarketingpartners.comfacebookmobile.comfacebookmsn.comfacebooknews.comfacebooknfl.comfacebooknude.comfacebookofsex.comfacebookook.comfacebookpaper.comfacebookpay.comfacebookphonenumber.netfacebookphoto.comfacebookphotos.comfacebookpmdcenter.comfacebookpoke.netfacebookpoke.orgfacebookpoker.infofacebookpokerchips.infofacebookporn.netfacebookporn.orgfacebookporno.netfacebookportal.com facebooks.comfacebooksafety.comfacebooksecurity.netfacebookshop.comfacebooksignup.netfacebooksite.netfacebookstories.comfacebookstudios.netfacebookstudios.orgfacebooksupplier.comfacebooksuppliers.comfacebookswagemea.comfacebookswagstore.comfacebooksz.comfacebookthreads.netfacebooktv.netfacebooktv.orgfacebookvacation.com facebookw.comfacebookworld.com facebool.com facebool.info facebooll.com faceboom.com faceboon.com faceboonk.comfaceboooik.com faceboook.com faceboop.com faceboot.com faceboox.com facebopk.com facebpook.com facebuk.com facebuok.com facebvook.com facebyook.com facebzook.comfacecbgook.com facecbook.com facecbook.org facecook.com facecook.org facedbook.com faceebok.com faceebook.com faceebot.com facegbok.com facegbook.com faceobk.com faceobok.com faceobook.com faceook.comfacerbooik.com facerbook.com facesbooc.comfacesounds.com facetook.com facevbook.com facewbook.co facewook.comfacfacebook.com facfebook.com fackebook.com facnbook.com facrbook.com facvebook.com facwebook.com facxebook.com fadebook.com +faebok.com faebook.com faebookc.com faeboook.com faecebok.com faesebook.comfafacebook.com faicbooc.com fasebokk.com fasebook.com faseboox.com favebook.com faycbok.com +fb.careers +fb.com fb.me fbacebook.com fbbmarket.comfbboostyourbusiness.com  fbcdn.com  fbcdn.netfbfeedback.com +fbhome.com fbidb.io  fbinc.comfbinnovation.comfbmarketing.com  fbreg.com +fbrpms.com  fbsbx.com  fbsbx.netfbsupport-covid.netfbthirdpartypixel.comfbthirdpartypixel.netfbthirdpartypixel.org  fburl.comfbworkmail.com fcacebook.com fcaebook.com fcebook.com fcebookk.comfcfacebook.comfdacebook.info feacboo.com feacbook.com feacbooke.com feacebook.com fecbbok.com fecbooc.com fecbook.com feceboock.com feceboox.com fececbook.com  feook.com ferabook.com fescebook.com fesebook.com ffacebook.com fgacebook.com ficeboock.com fmcebook.com fnacebook.com fosebook.com fpacebook.com fqcebook.com fracebook.com  freeb.comfreebasics.comfreebasics.net +freebs.comfreefacebook.comfreefacebook.netfreefacebookads.netfreefblikes.comfreindfeed.comfriendbook.info friendfed.comfriendfeed-api.comfriendfeed-media.comfriendfeed.comfriendfeedmedia.com fsacebok.com fscebook.comfundraisingwithfacebook.comfunnyfacebook.orgfutureofbusinesssurvey.org gacebook.com gameroom.comgfacecbook.com +groups.comhackerfacebook.comhackfacebook.comhackfacebookid.comhifacebook.info!howtohackfacebook-account.comhsfacebook.comhttpfacebook.comhttpsfacebook.comhttpwwwfacebook.com i.org internet.org klik.me liverail.com liverail.tvlogin-account.netmarkzuckerberg.commidentsolutions.commobilefacebook.commoneywithfacebook.com myfbfans.com newsfeed.com nextstop.comonline-deals.netopencreate.orgreachtheworldonfacebook.com rocksdb.orgshopfacebook.comsportsfacebook.comsportstream.comsupportfacebook.comterragraph.comthefacebook.comthefacebook.net thefind.comtoplayerserver.comviewpointsfromfacebook.comwhyfacebook.com worldhack.comwww-facebook.comwwwfacebok.comwwwfacebook.comwwwmfacebook.comzuckerberg.comzuckerberg.netfacebookwork.com +redkix.com workplace.comworkplaceusecases.comfbcdn-a.akamaihd.net + +GITHUB atom.io  npmjs.com npm.communitydependabot.com +git.io github.blog +github.comgithub.community +github.dev  github.io githubapp.comgithubassets.comgithubhackathon.comgithubstatus.comgithubusercontent.com/+github-avatars.oss-cn-hongkong.aliyuncs.comFBgithub-production-release-asset-[0-9a-za-z]{6}\.s3\.amazonaws\.com +E +PIXIV  pixiv.net  pixiv.org pixiv.co.jp  pximg.net + +115 115.com + +GOOGLE-SCHOLARscholar.google.aescholar.google.atscholar.google.bescholar.google.bgscholar.google.cascholar.google.catscholar.google.chscholar.google.clscholar.google.cnscholar.google.co.crscholar.google.co.idscholar.google.co.ilscholar.google.co.inscholar.google.co.jpscholar.google.co.krscholar.google.co.nzscholar.google.co.thscholar.google.co.ukscholar.google.co.vescholar.google.co.zascholar.google.comscholar.google.com.arscholar.google.com.auscholar.google.com.boscholar.google.com.brscholar.google.com.coscholar.google.com.cuscholar.google.com.doscholar.google.com.ecscholar.google.com.egscholar.google.com.gtscholar.google.com.hkscholar.google.com.lyscholar.google.com.mxscholar.google.com.myscholar.google.com.nischolar.google.com.pascholar.google.com.pescholar.google.com.phscholar.google.com.pkscholar.google.com.prscholar.google.com.pyscholar.google.com.sgscholar.google.com.svscholar.google.com.trscholar.google.com.twscholar.google.com.uascholar.google.com.uyscholar.google.com.vnscholar.google.czscholar.google.descholar.google.dkscholar.google.esscholar.google.fischolar.google.frscholar.google.grscholar.google.hnscholar.google.hrscholar.google.huscholar.google.isscholar.google.itscholar.google.lischolar.google.ltscholar.google.luscholar.google.lvscholar.google.nlscholar.google.noscholar.google.plscholar.google.ptscholar.google.roscholar.google.ruscholar.google.sescholar.google.sischolar.google.sk +" + SINOINSIDERsinoinsider.com +# +V8 +v8.dev v8project.org +" + MASTERCLASSmasterclass.com + + YOUKU-ADSactives.youku.com +ads ad.api.3g.youku.com +ads$ad.api.mobile.youku.com +ads ad.mobile.youku.com +ads(a-dxk.play.api.3g.youku.com +ads atm.youku.com +ads#b.smartvideo.youku.com +adsc.yes.youku.com +adsdas.api.youku.com +ads!das.mobile.youku.com +ads!dev-push.m.youku.com +adsdl.g.youku.com +adsdmapp.youku.com +adse.stat.ykimg.com +ads#gamex.mobile.youku.com +ads!guanggaoad.youku.com +ads hudong.pl.youku.com +ads!huodong.pl.youku.com +ads"huodong.vip.youku.com +ads hz.youku.com +adsiyes.youku.com +ads l.ykimg.com +adslstat.youku.com +ads mobilemsg.youku.com +ads msg.youku.com +adsmyes.youku.com +ads p.l.youku.com +ads pl.youku.com +ads#passport-log.youku.com +adsp-log.ykimg.com +adspush.m.youku.com +ads r.l.youku.com +ads s.p.youku.com +adssdk.m.youku.com +adsstat.youku.com +ads$statis.api.3g.youku.com +ads&store.tv.api.3g.youku.com +ads&store.xl.api.3g.youku.com +adstdrec.youku.com +adstest.ott.youku.com +ads!test.sdk.m.youku.com +ads v.l.youku.com +adsval.api.youku.com +ads wan.youku.com +adsykatr.youku.com +adsykrec.youku.com +ads + +D100 d100.net + +NICONICOnico +nicodic.jp nicomanga.jp niconico.com nicoseiga.jp nicovideo.jp nimg.jp simg.jp + +VANISHo2action.co.krpowerofresolve.capowerofresolve.comspraynwash.com  vanish.at  vanish.be  vanish.ch  vanish.cl vanish.cn +cn vanish.co.id vanish.co.il vanish.co.in vanish.co.nz vanish.co.uk vanish.co.za vanish.com.ar vanish.com.br vanish.com.co vanish.com.hr vanish.com.mx vanish.com.my vanish.com.pe vanish.com.sg vanish.com.tr  vanish.de  vanish.dk  vanish.es  vanish.fi  vanish.fr  vanish.hu  vanish.ie  vanish.it  vanish.nl  vanish.no  vanish.pl  vanish.pt  vanish.ro  vanish.ru  vanish.se  vanish.si  vanish.skvanisharabia.comvanishbancaseulook.com.brvanishcentroamerica.com vanishinfo.czvanishstains.comvanishstains.com.au +: + ENTERMEDIADBentermediadb.netentermediadb.org +< +NGA +nga.cn 178.com +ngabbs.com ngacn.cc + +QUANTIL quantil.com +5 +COLORFULCLOUDS caiyunai.com caiyunapp.com +7 +DART dart.dev dartlang.org dartpad.dev + +IUS +ius.io + +OK ok.ru +- +ASUS asus.com asus.com.cn +cn + +WALMART walmart wal-mart.com +wal.cowalmart-content.com walmart.comwalmart.pharmacywalmartimages.com +wmt.co + + WIKILEAKS wikileaks.org +% +ZHIHU  zhihu.com  zhimg.com + +UBI ubi.com ubisoft.com  uplay.com,(ubisoft-uplay-savegames.s3.amazonaws.com,(ubisoft-orbit-savegames.s3.amazonaws.com)uplaypc-s-ubisoft.cdn.ubi.com +cn + + +BRIGHTCOVE videojs.com bcove.video bcovlive.io bcvp0rtal.com boltdns.netbrightcove.combrightcove.netbrightcove.servicesbrightcovecdn.combcovlive-a.akamaihd.netbcsecure01-a.akamaihd.netbrightcove.imgix.net + + KINDGIRLS kindgirls.com + +PARLER +parler.com + +TIDELIFT tidelift.com + +EFF eff.org + +ENFAbebepremium3.com.bo +enfa.co.id enfa.com.vn enfaaplus.com enfababy.com enfabebe.comenfabebe.com.brenfabebe.com.coenfabebe.com.doenfabebe.com.ecenfabebe.com.mxenfabebe.com.peenfabebe.com.veenfabebe3.com.arenfagrow.co.inenfagrow.com.bnenfagrow.com.myenfagrow.com.phenfagrow.com.sg enfagrow4.comenfamama.com.arenfamama.com.ph +enfamil.ca enfamil.com +enfamil.es +enfamil.pl +enfamil.pt enfasmart.comenspireformula.comnutramigen.net nutramigen.pl +P +KKBOX +kfs.io  kkbox.com kkbox.com.tw  kktix.com kktv.me + +SONY playstationplaystation.complaystation.net sonyentertainmentnetwork.comimageworks.commotionpictureser.com playshow.ioplayshowtv.comsonyclassics.comsonypictures.comsonypicturesanimation.comsonypicturesmuseum.comsonypicturesstudios.comsonypicturestelevision.com#sonypicturestelevisiongames.com wheelpop.com +wwtbam.comyourfantasybeginsnow.comsonyginzasonypark.jpsony-africa.com sony-asia.comsony-europe.comsony-hes.co.jpsony-latin.com sony-mea.comsony-olympus-medical.comsony-promotion.eusony-semicon.co.jp sony.at sony.ba sony.be sony.bg sony.ca sony.ch sony.cl +sony.co.cr +sony.co.id +sony.co.in +sony.co.jp +sony.co.kr +sony.co.nz +sony.co.th +sony.co.uk sony.com sony.com.ar sony.com.au sony.com.bo sony.com.br sony.com.co sony.com.do sony.com.ec sony.com.gt sony.com.hk sony.com.hn sony.com.mk sony.com.mx sony.com.my sony.com.ni sony.com.pa sony.com.pe sony.com.ph sony.com.sg sony.com.sv sony.com.tr sony.com.tw sony.com.vn sony.cz sony.de sony.dk sony.ee sony.es sony.eu sony.fi sony.fr sony.gr sony.hr sony.hu sony.ie sony.it sony.kz sony.lt sony.lu sony.lv sony.net sony.nl sony.no sony.pl sony.pt sony.ro sony.rs sony.ru sony.se sony.si sony.sk sony.ua sonybo.co.jp sonybsc.comsonybuilding.jpsonydesign.com sonydna.comsonyglobalsolutions.jp sonykigyo.jpsonylatvija.com +sonypcl.jpsonyprotechnosupport.co.jpsonystoragemedia.co.jp sonytc.co.jp  sovec.net +< +DOCKERcompose-spec.io +docker.com  docker.io + +HK01 hk01.com + +GRAVATAR gravatar.com + +RSSHUB +rsshub.app +; + SCORELAND scoreland.comcdn77.scoreuniverse.com +j +BAHAMUT gamer.com.twbahamut.com.twgamer-cds.cdn.hinet.netgamer2-cds.cdn.hinet.net + +GAMERSKY gamersky.com + + +QINGTINGFM qingting.fm +F +SOGOU +go2map.com sogo.com  sogou.com sogoucdn.com + +CATEGORY-CRYPTOCURRENCY asproex.comasproexapi.combinance.charity binance.cloud binance.combinance.vision binancezh.com bnbstatic.com yshyqxx.com +bitbank.cc bitcoin.org bitfinex.com bitflyer.com bitflyer.jp +bitmex.com bitquick.co bisq.io bisq.network bitsquare.io bitstamp.net bittrex.com btcbox.co.jp +cex.io coinbase.com coinone.co.krcoinonecore.comcoinonecorp.com dogecoin.com +devcon.orgethereum.foundation ethereum.org +hbabit.com +hbfile.net  huobi.com huobi.me  huobi.pro huobi.sc huobiasia.viphuobigroup.comhuobitoken.com +kraken.comlocalbitcoins.comlocalbitcoinschain.com okex.com +paxful.com +zb.app +zb.com zb.io zb.live + +MOCHA mochajs.org + +NVIDIA +geforce.cn +cn geforce.co.kr geforce.co.uk geforce.comgeforce.com.twgputechconf.cn +cngputechconf.co.krgputechconf.comgputechconf.com.augputechconf.com.twgputechconf.eugputechconf.ingputechconf.jp nvidia.asia  nvidia.be  nvidia.ch nvidia.cn +cn nvidia.co.jp nvidia.co.kr +nvidia.com nvidia.com.au nvidia.com.br nvidia.com.tr nvidia.com.tw  nvidia.cz  nvidia.de  nvidia.dk  nvidia.es  nvidia.eu  nvidia.fi  nvidia.fr  nvidia.it  nvidia.lu  nvidia.nl  nvidia.no  nvidia.pl  nvidia.ro  nvidia.ru  nvidia.seshotwithgeforce.comnvidia.tt.omtrdc.net +* +HKOPENTV hkopentv.com fantv.hk + +LINUX  linux.org + +ERLANG +erlang.org + +FEEDLY +feedly.com +m +SUNING cnsuning.com +suning.comsuningcloud.comsuningestate.comsuningholdings.com +G +TEX ctan.orglatex-project.org +miktex.org tug.org + + +GLOBALSIGNglobalsign-media.com globalsign.be globalsign.chglobalsign.co.ukglobalsign.comglobalsign.com.auglobalsign.com.hkglobalsign.com.sg globalsign.es globalsign.eu globalsign.frglobalsign.net globalsign.nl!secure.globalsign.com +cnocsp.globalsign.com +cn ocsp2.globalsign.com +cn + +MPV +mpv.io +6 + NORDSTROM nordstrom.comnordstrommedia.com +( +UDEMY  udemy.com udemycdn.com +< +QUIP quip-cdn.com quip.comquipelements.com + +VERCEL +now.shvercel-dns.comvercel-status.com +vercel.app +vercel.comzeit-world.co.ukzeit-world.comzeit-world.netzeit-world.org zeit.co zeit.sh zeitworld.com + +BITQUICK bitquick.co +/ +CLEARBITJS-ADSx.clearbitjs.com +ads +" + LETSENCRYPTletsencrypt.org +) +MEITU  meitu.com meitudata.com +' +928PLUS 928.plus +zind.cloud +F +DEEPIN  deepin.cn +deepin.com  deepin.io +deepin.org + +NETEASE 126.com 126.link 126.net 127.com 127.net 163.com163industry.com 163mail.com 163qiyukf.com +163yun.com 166.net +haowu.linkicourse163.org  kaola.com +lofter.com  nease.netnetease-inc.com netease.com +netease.im +qiyukf.com ydstatic.com yeah.net +youdao.comanalytics.163.com +ads crash.163.com +ads crashlytics.163.com +ads g.163.com +ads + +ZEE +bgr.inbollywoodlife.comcareerfundas.comcricketcountry.com dnai.in dnaindia.com earngeek.com ekhindi.com +ind.sh  india.comindiancolleges.com itripto.com  oncars.in prepsure.comthehealthsite.com wionews.com yo1health.com zee.com +zeebiz.comzeeentertainment.com zeenews.com"zeenews-fonts.s3.amazonaws.com + +VIU +viu.tvapi.viu.now.com^ewcdn[0-9]{2}\.nowe\.com$ viu.com dfp6rglgjqszk.cloudfront.net!d1k2us671qcoau.cloudfront.net!d2anahhhmp1ffz.cloudfront.net + +ARCHIVE archive.org + + +BLOGSPOT blogspot.ae blogspot.al blogspot.am blogspot.ba blogspot.be blogspot.bg blogspot.bj blogspot.ca blogspot.cf blogspot.ch blogspot.clblogspot.co.atblogspot.co.idblogspot.co.ilblogspot.co.keblogspot.co.nzblogspot.co.ukblogspot.co.za blogspot.comblogspot.com.arblogspot.com.aublogspot.com.brblogspot.com.byblogspot.com.coblogspot.com.cyblogspot.com.eeblogspot.com.egblogspot.com.esblogspot.com.mtblogspot.com.ngblogspot.com.trblogspot.com.uy blogspot.cv blogspot.cz blogspot.de blogspot.dk blogspot.fi blogspot.fr blogspot.gr blogspot.hk blogspot.hr blogspot.hu blogspot.ie blogspot.in blogspot.is blogspot.it blogspot.jp blogspot.kr blogspot.li blogspot.lt blogspot.lu blogspot.md blogspot.mk blogspot.mx blogspot.my blogspot.nl blogspot.no blogspot.pe blogspot.pt blogspot.qa blogspot.re blogspot.ro blogspot.rs blogspot.ru blogspot.se blogspot.sg blogspot.si blogspot.sk blogspot.sn blogspot.td blogspot.tw blogspot.ug blogspot.vn + +DNSPOD dns.pub  dnsapi.cn  dnspod.cn +dnspod.com dnspod.com.cn +dnspod.net +dnspod.org  dnsv1.com  dnsv2.com  dnsv3.com  dnsv4.com  dnsv5.com doh.pub +7 +PGYER  pgyer.com +tracup.com frontjs.com +/ + STARTPAGE startpage.com ixquick.com + +TUNSAFE tunsafe.com +$ + LOCALPRESSHKlocalpresshk.com + +NODEJS +nodejs.org +r + +PURIKONEJP"api-priconne-redive.cygames.jpomotenashi.cygames.jp%!prd-priconne-redive.akamaized.net +" + RASPBERRYPIraspberrypi.org + +JIGUANG +42r.cn +5566ua.com aurorapush.cn +e0n.cn japps.cn jchat.io +jiguang.cn jmlk.co jpush.cn jpush.io jpushoa.com +jsurvey.cn  jvoice.cn +kc9.cn +n0q.cn pushcfg.com +s0n.cn + + NEURALINK neuralink.com + +SFACG  sfacg.com + +UPROXY +uproxy.org + + ALIBABACLOUDalibabacloud.co.inalibabacloud.comalibabacloud.com.aualibabacloud.com.hkalibabacloud.com.myalibabacloud.com.sgalibabacloud.com.tw alicloud.com + +AMAZON amazon-adsystem.com +adswholecitiesfoundation.orgwholefoodsmarket.comwholekidsfoundation.orgwholeplanetfoundation.orgaws +amazonimdb +kindle xn--cckwcxetdxn--jlq480n2rg yamaxun +zappos a2z.comaboutamazon.cn +cnaboutamazon.co.ukaboutamazon.comaboutamazon.com.auaboutamazon.deaboutamazon.esaboutamazon.euaboutamazon.fraboutamazon.inaboutamazon.itaboutamazon.jpaboutamazon.pl alexafund.cn +cnalexafund.com.cn +cn amaaozn.comamazon-fashions.comamazon-jp-recruiting.comamazon-lantern.comamazon-launchpad.com  amazon.ae  amazon.ca amazon.cn +cn amazon.co.jp amazon.co.uk +amazon.com amazon.com.au amazon.com.br amazon.com.mx amazon.com.tr  amazon.de  amazon.es  amazon.fr  amazon.in  amazon.it amazon.jobs  amazon.jp  amazon.nl +amazon.red  amazon.sgamazonalexavoxcon.comamazonauthorinsights.comamazonbusiness.cn +cn!amazonbusiness.com.cn +cnamazonbusiness.orgamazonbusinessblog.comamazonchoice.cn +cnamazonchoice.com.cn +cnamazonchoices.cn +cn amazonchoices.com.cn +cnamazondevicesupport.comamazonfctours.comamazonianblog.comamazonimages.comamazoninspire.cn +cn amazoninspire.com.cn +cnamazonlaunchpad.cn +cnamazonlaunchpad.com"amazonlaunchpad.com.cn +cn amazonlending.com.cn +cn!amazonliterarypartnership.comamazonlumberyard.wang amazonnow.cn +cnamazonnow.com.cn +cn amazonpay.com amazonpay.in amazonsdi.comamazonstudiosguilds.comamazontrust.comamazonvideodirect.com amzn.com amzn.to  amznl.comassoc-amazon.cn +cnassociates-amazon.comgameon-masters.comgdansk-amazon.comimages-amazon.commedia-amazon.com primeday.cn +cnprimeday.com.cn +cn primeday.infosiege-amazon.comssl-images-amazon.comueberamazon.de +yamaxun.cn +cn yamaxun.comz.cn +cn  alexa.com audible.comacmvalidations.comacmvalidationsaws.comaesworkshops.comamazonaws-china.com amazonaws.com amazonaws.tvamazonworkdocs.cn +cnamazonworkdocs.com!amazonworkdocs.com.cn +cnamplifyapp.comamplifyframework.comaws-iot-hackathon.comawsautopilot.comawsautoscaling.com awsbraket.comawscommandlineinterface.comawsedstart.comawseducate.comawseducate.netawseducate.orgawsloft-johannesburg.comawsloft-stockholm.comawssecworkshops.com awsstatic.comawsthinkbox.com awstrust.comcdkworkshop.comcloudfront.netcontainersonaws.comelasticbeanstalk.comthinkboxsoftware.com".+\.awsdns-[0-9][0-9]\.co\.uk$.+\.awsdns-[0-9][0-9]\.com$.+\.awsdns-[0-9][0-9]\.net$.+\.awsdns-[0-9][0-9]\.org$".+\.awsdns-cn-[0-9][0-9]\.biz$!.+\.awsdns-cn-[0-9][0-9]\.cn$".+\.awsdns-cn-[0-9][0-9]\.com$".+\.awsdns-cn-[0-9][0-9]\.net$createspace.com kindle.cn +cn kindle.co.jp kindle.co.uk +kindle.com  kindle.de  kindle.es  kindle.fr  kindle.in  kindle.it  kindle.jpkindleoasis.cn +cnkindleoasis.comkindleoasis.com.cn +cnkindleoasis.infokindleoasis.jpkindleoasis.orgkindleoasis.uskindleoasisnews.comkindleproject.comamazonprimevideo.cn +cn#amazonprimevideo.com.cn +cnamazonprimevideos.comamazonvideo.ccamazonvideo.comprime-video.com primevideo.ccprimevideo.comprimevideo.infoprimevideo.org primevideo.tv+images-cn.ssl-images-amazon.com +cn-!images-cn-8.ssl-images-amazon.com +cn +( +DEBIAN +debian.org +dotdeb.org + + INOREADER inoreader.com + +ZERONET +zeronet.io +@ +JQUERY +jquery.comjquerymobile.com jqueryui.com + + OPENSTREETMAP openmaps.orgopenstreetmap.comopenstreetmap.netopenstreetmap.orgopenstreetmaps.org osm.orgosmfoundation.orgstateofthemap.comstateofthemap.org + +HKCNEWS hkcnews.com +a +LE +le.com lecloud.com +lemall.com letv.com letvcdn.com letvimg.com + +RSF rsf.org +? +STRIPE +stripe.comstripe.network stripecdn.com + +AKASHA akasha.world +' +HEYZO heydoga.com  heyzo.com + + +STATICFILEstaticfile.org + +DMM-ADS bluekai.com +adsfout.jp +ads gmossp-sp.jp +adsi-mobile.co.jp +ads im-apps.net +ads impact-ad.jp +ads ladsp.com +ads microad.co.jp +ads +microad.jp +ads socdm.com +ads + +ITU itu.int +4 +SCInewisiknowledge.comisiknowledge.com +9 +SHADOWSOCKSCOMshadowsocks.comshadowsocks.nl +I +PYTHON +python.orgpythonhosted.org pypa.io pypi.org +! +WANFANGwanfangdata.com.cn + +WINDY  windy.com + +CASTRO  castro.fm + + CATEGORY-ADS apilog-web.acfun.cn +ads adcolony.com +ads +adjust.com +ads a.alimama.cn +adsacjs.aliyun.com +adsadash.m.taobao.com +ads!adashbc.m.taobao.com +ads"adashbc.ut.taobao.com +ads"adash-c.ut.taobao.com +ads adashx.m.taobao.com +ads$adashx4ae.ut.taobao.com +ads#adashx4yt.m.taobao.com +ads#adashxgc.ut.taobao.com +adsadsh.m.taobao.com +adsafp.adchina.com +adsafp.alicdn.com +ads agoodm.m.taobao.com +ads#agoodm.wapa.taobao.com +ads alipaylog.com +adsamdc.alipay.com +adsamdc.m.taobao.com +ads api.wapa.taobao.com +ads#api.waptest.taobao.com +adsapoll.m.taobao.com +ads#appdownload.alicdn.com +adsatanx.alicdn.com +adsatanx2.alicdn.com +adscbu01.alicdn.com +adscdn0.mobmore.com +adsclick.aliyun.com +ads&click.mz.simba.taobao.com +adscm.ipinyou.com +ads cm.mlt01.com +ads!dsp.simba.taobao.com +adserr.taobao.com +adsex.mobmore.com +ads ex.puata.info +ads!fav.simba.taobao.com +ads$feedback.whalecloud.com +adsff.win.taobao.com +ads fm.p0y.cn +adsg.click.taobao.com +ads +g.tbcdn.cn +adsgma.alicdn.com +adsgtms01.alicdn.com +adsgtms02.alicdn.com +adsgtms03.alicdn.com +adsgtms04.alicdn.com +adshydra.alibaba.com +ads'hz.pre.tbusergw.taobao.net +ads#hz.tbusergw.taobao.net +ads i.ipinyou.com +adsinit.phpwind.com +ads!intl.wapa.taobao.com +ads$intl.waptest.taobao.com +ads"jxlog.istreamsche.com +adslog.umtrack.com +adsm.intl.taobao.com +adsm.simba.taobao.com +adsmatch.p4p.1688.com +ads%material.istreamsche.com +ads mlt01.com +ads&nbsdk-baichuan.alicdn.com +ads&nbsdk-baichuan.taobao.com +ads"osfota.cdn.aliyun.com +ads osupdate.aliyun.com +ads&osupdateservice.yunos.com +ads%pindao.huoban.taobao.com +adspush.wandoujia.com +adsre.m.taobao.com +ads re.taobao.com +ads&redirect.simba.taobao.com +adsrj.m.taobao.co +adsrj.m.taobao.com +adssdkinit.taobao.com +adsshow.re.taobao.com +adssimaba.taobao.com +adssimba.m.taobao.com +ads!srd.simba.taobao.com +adsstats.ipinyou.com +ads strip.taobaocdn.com +ads$tanxlog.istreamsche.com +adstejia.taobao.com +adstemai.taobao.com +ads!tns.simba.taobao.com +ads tongji.linezing.com +ads tvupgrade.yunos.com +adstyh.taobao.com +adsuserimg.qunar.com +adsw.m.taobao.com +adsyiliao.hupan.com +ads amazon-adsystem.com +adsiadsdk.apple.com +ads iad.apple.com +ads qwapi.com +ads applovin.com +ads +applvn.com +ads atom-data.io +adsanalytics-data.io +ads ironbeast.io +ads a.baidu.com +ads ad.duapps.com +ads ad.player.baidu.com +ads adm.baidu.com +adsadscdn.baidu.com +adsadx.xiaodutv.com +adsae.bdstatic.com +ads afd.baidu.com +ads als.baidu.com +ads&api.mobula.sdk.duapps.com +ads"api.tuisong.baidu.com +adsappc.baidu.com +adsb.bdstatic.com +adsbaichuan.baidu.com +adsbaidustatic.com +adsbaidutv.baidu.com +adsbanlv.baidu.com +ads bar.baidu.com +ads"bdimg.share.baidu.com +adsbdplus.baidu.com +ads bj.bcebos.com +adsbtlaunch.baidu.com +ads c.baidu.com +ads cb.baidu.com +adscbjs.baidu.com +adscjhq.baidu.com +adscleaner.baidu.com +ads click.bes.baidu.com +adsclick.hm.baidu.com +adsclick.qianqian.com +ads"cm.baichuan.baidu.com +ads cm.baidu.com +adscm.pos.baidu.com +ads cpro.baidu.cn +adscpro.baidu.com +ads!cpro.baidustatic.com +ads!cpro.tieba.baidu.com +ads"cpro.zhidao.baidu.com +adscpro2.baidu.com +ads"cpro2.baidustatic.com +ads crs.baidu.com +adsdatax.baidu.com +ads dd713.bj.bcebos.com +ads dl.client.baidu.com +adsdl.ops.baidu.com +adsdl1sw.baidu.com +adsdl2.bav.baidu.com +adsdlsw.baidu.com +adsdlsw.br.baidu.com +ads!dl-vip.bav.baidu.com +ads(dl-vip.pcfaster.baidu.co.th +ads#download.bav.baidu.com +ads"download.sd.baidu.com +adsdrmcmm.baidu.com +ads dup.baidustatic.com +ads dxp.baidu.com +ads dzl.baidu.com +ads e.baidu.com +adseclick.baidu.com +adsecma.bdimg.com +adsecmb.bdimg.com +adsecmc.bdimg.com +ads eiv.baidu.com +ads em.baidu.com +adsentry.baidu.com +ads ers.baidu.com +ads f10.baidu.com +ads#fc-feed.cdn.bcebos.com +adsfclick.baidu.com +adsfeed.baidu.com +adsfexclick.baidu.com +ads g.baidu.com +adsgimg.baidu.com +adsguanjia.baidu.com +ads hc.baidu.com +ads hm.baidu.com +adshmma.baidu.com +ads hpd.baidu.com +adsidm.bce.baidu.com +adsidm-su.baidu.com +adsiebar.baidu.com +adsikcode.baidu.com +adsimg.taotaosou.cn +adsimg01.taotaosou.cn +adsj.br.baidu.com +adskstj.baidu.com +ads log.music.baidu.com +ads m1.baidu.com +ads ma.baidu.com +adsmobads.baidu.com +ads"mobads-logs.baidu.com +adsmpro.baidu.com +adsmsite.baidu.com +adsneirong.baidu.com +adsnsclick.baidu.com +ads#nsclickvideo.baidu.com +adsopenrcv.baidu.com +ads$pc.videoclick.baidu.com +ads pos.baidu.com +adspups.bdimg.com +ads%push.zhanzhang.baidu.com +ads qianclick.baidu.com +adsrelease.baidu.com +adsres.mi.baidu.com +ads"rigel.baidustatic.com +ads#river.zhidao.baidu.com +ads rj.baidu.com +adsrplog.baidu.com +ads s.baidu.com +adss.cpro.baidu.com +ads!sa.tuisong.baidu.com +adssclick.baidu.com +adssestat.baidu.com +adsshadu.baidu.com +adsshare.baidu.com +ads"snippet.pos.baidu.com +adssobar.baidu.com +adssobartop.baidu.com +adsspcode.baidu.com +adsstat.v.baidu.com +ads su.bdimg.com +adssu.bdstatic.com +ads t10.baidu.com +ads t11.baidu.com +ads t12.baidu.com +ads tk.baidu.com +adstkweb.baidu.com +ads"tob-cms.bj.bcebos.com +adstongji.baidu.com +adstoolbar.baidu.com +adstracker.baidu.com +adstuijian.baidu.com +ads*uat1.bfsspadserver.8le8le.com +ads#ubmcmm.baidustatic.com +adsucstat.baidu.com +adsulic.baidu.com +ads ulog.imap.baidu.com +adsunion.baidu.com +ads!unionimage.baidu.com +adsutility.baidu.com +ads utk.baidu.com +ads videopush.baidu.com +adsvv84.bj.bcebos.com +adsw.gdown.baidu.com +ads w.x.baidu.com +adswangmeng.baidu.com +adsweishi.baidu.com +ads$wenku-cms.bj.bcebos.com +ads%wisepush.video.baidu.com +ads wm.baidu.com +adswn.pos.baidu.com +adsznsv.baidu.com +adszz.bdstatic.com +adszzy1.quyaoya.com +adsmcs.snssdk.com +adsx.clearbitjs.com +ads bluekai.com +adsfout.jp +ads gmossp-sp.jp +adsi-mobile.co.jp +ads im-apps.net +ads impact-ad.jp +ads ladsp.com +ads microad.co.jp +ads +microad.jp +ads socdm.com +ads emogi.com +adsdata.flurry.com +ads2mdn.net +ads admob.com +ads adsense.com +ads'adsensecustomsearchads.com +ads%adsenseformobileapps.com +ads$advertisercommunity.com +ads%advertiserscommunity.com +ads"adwords-community.com +ads adwords.com +adsadwordsexpress.com +ads app-measurement.com +ads&clickserver.googleads.com +adsdoubleclick.com +adsdoubleclick.net +ads!google-analytics.com +adsgoogleadapis.com +ads!googleadservices.com +ads googleanalytics.com +adsgoogleoptimize.com +ads"googlesyndication.com +ads!googletagmanager.com +ads"googletagservices.com +ads'googletraveladservices.com +ads +urchin.com +ads>1^adservice\.google\.([a-z]{2}|com?)(\.[a-z]{2})?$ +ads!assets.growingio.com +adsmlog.hiido.com +adsylog.hiido.com +adsstatic.hotjar.com +adsclick.hunantv.com +adsda.hunantv.com +ads da.mgtv.com +adslog.hunantv.com +adslog.v2.hunantv.com +adsres.hunantv.com +adsv2.log.hunantv.com +adsinner-active.mobi +adsa.ckm.iqiyi.com +adsad.m.iqiyi.com +ads afp.iqiyi.com +adsc.uaa.iqiyi.com +ads cloudpush.iqiyi.com +ads"cm.passport.iqiyi.com +adscupid.iqiyi.com +ads#emoticon.sns.iqiyi.com +ads!gamecenter.iqiyi.com +ads!hotchat-im.iqiyi.com +adsifacelog.iqiyi.com +adsmbdlog.iqiyi.com +ads msg.71.am +adsmsg.video.qiyi.com +ads msg2.video.qiyi.com +ads#policy.video.iqiyi.com +adsyuedu.iqiyi.com +adsads.union.jd.com +ads c-nfa.jd.com +adscps.360buy.com +ads +jzt.jd.com +ads stat.m.jd.com +ads img-x.jd.com +ads log-sdk.gifshow.com +adswlog.kuaishou.com +ads leanplum.com +ads#api.game.letvstore.com +ads ark.letv.com +ads dc.letv.com +adsdev.dc.letv.com +ads fz.letv.com +ads g3.letv.com +adsletv.allyes.com +adsminisite.letv.com +adsmsg.m.letv.com +adsn.mark.letv.com +adsplog.dc.letv.com +adspro.hoye.letv.com +ads pro.letv.com +ads stat.letv.com +ads"static.app.m.letv.com +ads decide.mixpanel.com +ads mopub.com +adsevt.mxplay.com +adsanalytics.163.com +ads crash.163.com +ads crashlytics.163.com +ads g.163.com +ads"js-agent.newrelic.com +ads ogury.com +ads +presage.io +adsogury.co +ads onesignal.com +adsOB^speed\.(coe|open)\.ad\.[a-z]{2,6}\.prod\.hosts\.ooklaserver\.net$ +ads cdn.pocoiq.cn +ads oct.pocoiq.cn +adsads.pubmatic.com +adscdn.segment.com +ads"static.sensorsdata.cn +ads 2016.sina.cn +adsad.sina.com.cn +adsadbox.sina.com.cn +ads!adimages.sina.com.hk +ads!adimg.mobile.sina.cn +ads adimg.uve.weibo.com +ads!adm.leju.sina.com.cn +ads ads.sina.com +adsalitui.weibo.com +adsapi.apps.sina.cn +ads appgift.sinaapp.com +ads#appsupdate.sinaapp.com +ads atm.sina.com +adsbeacon.sina.com.cn +ads biz.weibo.com +adsc.biz.weibo.com +ads!c.wcpt.biz.weibo.com +ads%click.uve.mobile.sina.cn +ads click.uve.weibo.com +adscm.dmp.sina.cn +ads0#contentrecommend-out.mobile.sina.cn +ads$count.video.sina.com.cn +ads counter.sina.com.cn +adscre.dp.sina.cn +adscre-dp.sina.cn +adsd00.sina.com.cn +adsdcads.sina.com.cn +adsdl.kjava.sina.cn +ads dmp.sina.cn +adsdp.im.weibo.cn +ads game.weibo.cn +adsgame.weibo.com +ads"gw5.push.mcp.weibo.cn +ads"gw6.push.mcp.weibo.cn +ads"img.adbox.sina.com.cn +ads#img.amp.ad.sina.com.cn +ads"int.dpool.sina.com.cn +ads%interest.mix.sina.com.cn +ads)log.interest.mix.sina.com.cn +ads log.mix.sina.com.cn +ads log.sina.cn +ads!m.beacon.sina.com.cn +adsm.game.weibo.cn +ads!mg.games.sina.com.cn +ads!motu.p4p.sina.com.cn +adsnewspush.sinajs.cn +ads oascentral.sina.com +ads#oascentral.sina.com.hk +adsp4p.sina.com.cn +adspalmnews.sina.cn +adspay.mobile.sina.cn +adspfp.sina.com.cn +adspfpip.sina.com +ads!promote.biz.weibo.cn +ads r.dmp.sina.cn +adsrm.sina.com.cn +ads rs.sinajs.cn +adss.alitui.weibo.com +ads"s.img.mix.sina.com.cn +ads sapi.sina.cn +ads sax.sina.cn +adssax.sina.com.cn +adssaxn.sina.com.cn +adssaxs.sina.com.cn +ads sbeacon.sina.com.cn +ads"sdkapp.mobile.sina.cn +ads!sdkapp.uve.weibo.com +ads$sdkclick.mobile.sina.cn +ads slog.sina.cn +adsslog.sina.com.cn +ads'staticadm.leju.sina.com.cn +adstjs.sjs.sinajs.cn +ads"trends.mobile.sina.cn +ads"u1.img.mobile.sina.cn +ads&wapwbclick.mobile.sina.cn +ads!wbapp.mobile.sina.cn +ads wbapp.uve.weibo.com +ads#wbclick.mobile.sina.cn +ads$wbpctips.mobile.sina.cn +adswidget.weibo.com +ads woocall.sina.com.cn +adszc.biz.weibo.com +adszymo.mps.weibo.com +adsadnet.sohu.com +ads ads.sohu.com +ads!adv-sv-show.focus.cn +ads aty.sohu.com +adsdata.vod.itc.cn +adsepro.sogou.com +ads go.sohu.com +adsgolden1.sogou.com +adsimp.optaim.com +adsinte.sogou.com +adsinte.sogoucdn.com +adslu.sogoucdn.com +ads pv.sohu.com +adstheta.sogoucdn.com +adstrack.sohu.com +adsuranus.sogou.com +adsv2.reachmax.cn +ads)e8aeb8bbdbbd7.cdn.sohucs.com +ads)643108e7617ef.cdn.sohucs.com +ads'adeventtracker.spotify.com +ads$adstudio-assets.scdn.co +ads#bloodhound.spotify.com +adssupersonic.com +adssupersonicads.com +ads +ssacdn.com +ads)supersonicads-a.akamaihd.net +ads g1.tagtic.cn +adsxy-log.tagtic.cn +adsssp.api.tappx.com +ads ad.qq.com +ads ad.qun.qq.com +ads!adfilter.imtt.qq.com +ads adping.qq.com +adsadpm.app.qq.com +adsadsclick.qq.com +adsadsfile.qq.com +adsadshmmsg.qq.com +adsadslvfile.qq.com +adsadslvseed.qq.com +ads%adsmind.apdcdn.tc.qq.com +adsadsqqclick.qq.com +adsadstestview.qq.com +adsadsview.qq.com +adsadsview2.qq.com +adsadv.app.qq.com +ads adver.qq.com +ads btrace.qq.com +adse.qq.com +adslog.tbs.qq.com +ads mpush.qq.com +ads mtrace.qq.com +ads push.qq.com +ads pgdt.gtimg.cn +ads uberads.com +adsalog.umeng.com +ads alog.umengcloud.com +ads +w.cnzz.com +ads!unityads.unity3d.com +ads#unityads.unitychina.cn +ads ads.wteam.xyz +ads#collector.xhamster.com +adsad.intl.xiaomi.com +ads ad.mi.com +ads ad.xiaomi.com +adsadmob.xiaomi.com +adsad1.xiaomi.com +adsmistat.xiaomi.com +adstracking.miui.com +adsadv.sec.miui.com +ads"adv.sec.intl.miui.com +ads"misc.in.duokanbox.com +ads ad.hpplay.cn +adsadeng.hpplay.cn +ads kuyun.com +ads umeng.com +ads ads.yahoo.com +adsgemini.yahoo.com +ads ysm.yahoo.com +adsactives.youku.com +ads ad.api.3g.youku.com +ads$ad.api.mobile.youku.com +ads ad.mobile.youku.com +ads(a-dxk.play.api.3g.youku.com +ads atm.youku.com +ads#b.smartvideo.youku.com +adsc.yes.youku.com +adsdas.api.youku.com +ads!das.mobile.youku.com +ads!dev-push.m.youku.com +adsdl.g.youku.com +adsdmapp.youku.com +adse.stat.ykimg.com +ads#gamex.mobile.youku.com +ads!guanggaoad.youku.com +ads hudong.pl.youku.com +ads!huodong.pl.youku.com +ads"huodong.vip.youku.com +ads hz.youku.com +adsiyes.youku.com +ads l.ykimg.com +adslstat.youku.com +ads mobilemsg.youku.com +ads msg.youku.com +adsmyes.youku.com +ads p.l.youku.com +ads pl.youku.com +ads#passport-log.youku.com +adsp-log.ykimg.com +adspush.m.youku.com +ads r.l.youku.com +ads s.p.youku.com +adssdk.m.youku.com +adsstat.youku.com +ads$statis.api.3g.youku.com +ads&store.tv.api.3g.youku.com +ads&store.xl.api.3g.youku.com +adstdrec.youku.com +adstest.ott.youku.com +ads!test.sdk.m.youku.com +ads v.l.youku.com +adsval.api.youku.com +ads wan.youku.com +adsykatr.youku.com +adsykrec.youku.com +ads cvnad.com +ads +iyoowi.com +ads zynga.com +ads#zyngaplayersupport.com +ads 51y5.net a.adtng.com +aaxads.com +ad-srv.netad.api.moji.comad.wang502.com adbutter.netads.trafficjunky.net adtechus.com adxprtz.comcdn.advertserve.comcdn.banclip.comcfts1tifqr.comcontentabc.com cretgate.comero-advertising.comeroadvertising.com exoclick.com +exosrv.comimg-bss.csdn.net imglnkc.com imglnkd.comja2.gamersky.com jl3.yjaxa.topkepler-37b.com +lqc006.coms4yxaqyq95.comshhs-ydd8x2.yjrmss.cnstatic.javhd.comtrafficfactory.biztsyndicate.com adx.36kr.comclick.ali213.netpbmp.ali213.net^pinggai\d\.caixin\.com$adq.chinaso.comstat.chinaso.com toboads.comdn-growing.qbox.me ad.unimhk.comdas-rpt-log.ucloud.cn +& +HUYA huya.com msstatic.com +# +MEGA +mega.co.nz mega.nz + + +CHATURBATEchaturbate.com + + OPENRESTY openresty.org +i +SNAP +sc-cdn.net snap-dev.net snap.com snapads.com snapchat.com +snapkit.co + +CATEGORY-ENTERTAINMENT abema.io abema.tv  adx.promo ameba.jp amebame.com amebaownd.comamebaowndme.com  ameblo.jp bucketeer.jpdokusho-ojikan.jp hayabusa.dev hayabusa.iohayabusa.media winticket.jpabematv.akamaized.net#ds-linear-abematv.akamaized.net ao3.orgarchiveofourown.orgarchiveofourown.comarchiveofourown.net +att.tv atttvnow.comattwatchtv.com directv.com  dtvce.comnettyinternet.com gamer.com.twbahamut.com.twgamer-cds.cdn.hinet.netgamer2-cds.cdn.hinet.net bandcamp.com +bcbits.com blubrry.com  castro.fm blizzard.cn +cn blizzard.comblizzardgearstore.comblz-contentstack.com blzstatic.cn +cn +battle.netbattlenet.com.cn +cn bnet.163.com +cnblizzard.nefficient.co.krblzddist1-a.akamaihd.netblzddistkr1-a.akamaihd.netbnetcmsus-a.akamaihd.netbnetproduct-a.akamaihd.netbnetshopus.akamaized.net diablo3.comdiabloimmortal.comdi.res.netease.com +cn!diablo3.nosdn.127.net +cnfiresidegatherings.complayhearthstone.com%hearthstone.nosdn.127.net +cnheroesofthestorm.com%hearthstone.nosdn.127.net +cn"heroes.nos.netease.com +cnplayoverwatch.com#overwatch.nosdn.127.net +cn starcraft.comstarcraft2.comsc2.nosdn.127.net +cnplaywarcraft3.comworldofwarcraft.com wowchina.com +cnwow.nosdn.127.net +cnblizzcon-a.akamaihd.netblz.nosdn.127.net +cnblzmedia-a.akamaihd.netblznav.akamaized.net dawngate.com eastore.comlordofultima.com +origin.com  origin.tv#cloudsync-prod.s3.amazonaws.comorigin-a.akamaihd.netrtm.tnt-ea.comssl-lvlt.cdn.ea.comawayoutgame.combattlefieldbadcompany2.combattlefront2.combattlefrontii.combejewled-stars.combejeweledstars.comcapitalgames.com chillingo.comcommandandconquer.comconquerwithcharacter.com  crysis.jp dawngate.comdawngatechronicles.com +dicela.com +dicela.netea-anz-press.com +ea.com eaaccess.comeacashcard.com eacodigos.com eakorea.co.kr eamobile.com eanordic.com +eaplay.com easports.com easports.jpeasportsactive.comeasportsactiveonline.comeasportsfootball.comeasportsfootballclub.comeasportsmma.comeasportsworld.comelectronicarts.comelectronicarts.fr futpromos.com futunited.comghostgames.comheroesofdragonage.com hutpromos.commaddenchampionship.commaddenrewards.commaddenseason.infomaddenseason.netmaddenseason.org  maxis.commysimsracing.com play4free.com playapex.com pogo.com pogobeta.com +popcap.comprojectapex.com pvzheroes.com spearhead.krspeedhunters.com  spore.com ssx3.comstarwarsbattlefront.comstarwarsbattlefront2.comtiberiumalliances.com tiburon.com +tnt-ea.comultimaforever.com unravel2.comunraveltwo.comvisceralgames.com +yogify.comanthemgame.comanthemthegame.comapexlegends.comprojectapex.combattlefield.combattlefield1943.combattlefield3.combattlefield4.combattlefield5.combattlefieldheroes.combattlefieldv.com battlelog.com bioware.combiowarestore.com eamythic.com eamythic.net cncrivals.comcommandandconquer.comtiberiumalliances.comcamelot-europe.comcamelotherald.comcamelotherald.net daoc.netdarkageofcamelot.comdarkness-risen.comdeadspacegame.com dice.se dragonage.comdragonagekeep.comdragonagemovie.comthedreadwolfrises.comdungeonkeeper.cndungeonkeeper.comdungeonkeeper.com.cneafootballworld.comfifastreet.comfifastreet3.com frostbite.comindustrialtoys.commasseffect.commasseffectarchives.comeamirrorsedge.commirrorsedge.commirrorsedge.jpmirrorsedge.netmirrorsedge2.commirrorsedge2d.comblackboxgames.comeablackbox.comneedforspeed.comneedforspeedboost.comneedforspeeddriftkings.comneedforspeedeliminator.comneedforspeedlightning.comneedforspeedoverdrive.comneedforspeedproven.comneedforspeedredline.comneedforspeedshowdown.comneedforspeedstreetkings.comneedforspeedtakedown.comneedforspeedtherun.comneedforspeedtimeattack.com#needforspeedundergroundeast.com nfsworld.comteamneedforspeed.complantsvszombies2.com +pvzgw2.com pvzheroes.comseaofsolitude.comsimcity-buildit.com simcity.com +skate2.com spearhead.krstarwarsfallenorder.comstarwarsjedifallenorder.comstarwarstheoldrepublic.comswjedifallenorder.com  swjfo.com  swtor.com  swtor.net +mysims.com thesims.com thesims3.com thesims4.comthesimssocial.com titanfall.commythicentertainment.commythicentertainment.netmythicgames.comultimaonline.com +uo.com uoherald.com xdsummit.comea.tt.omtrdc.neteaassets-a.akamaihd.netbattlebreakers.com eac-cdn.com easy.aceasyanticheat.net epicgames.com fortnite.com paragon.complayparagon.comroborecall.comshadowcomplex.com spyjinx.comunrealengine.comunrealtournament.com6*^cdn\d-epicgames-\d+\.file\.myqcloud\.com$ +cn*&^epicgames-download\d\.akamaized\.net$;/^epicgames-download\d-\d+\.file\.myqcloud\.com$ +cn"avatargarenanow-a.akamaihd.netcdngarenanow-a.akamaihd.netdlgarenanow-a.akamaihd.net!dlmobilegarena-a.akamaihd.net garena.co.id garena.co.th +garena.com garena.live  garena.my  garena.ph  garena.sg  garena.tv  garena.tw  garena.vn garenanow.com seagroup.com gog.comgog-statics.comgog.qtlglb.com +cn$gogalaxy.gog-statics.com +cn'menu-static.gog-statics.com +cn'productcard.gog-statics.com +cn(static-login.gog-statics.com +cn'www4-static.gog-statics.com +cn, ^images(-\d)?\.gog-statics\.com$ +cn100classicbooks.com +amiibo.comayudanintendo.combowsersinsidestory.comexcitebots.comflipnotestudio.comgloryofheracles.comhackyourconsole.comkirbysuperstarultra.comkirbysepicyarn.comlegendofzelda.cn +cn legendofzelda.com.cn +cn miitomo.commiitomo.com.cn +cn miiverse.com nentindo.netnintendo-europe-sales.comnintendo-europe.com nintendo.at nintendo.be nintendo.chnintendo.co.jpnintendo.co.krnintendo.co.uknintendo.co.za nintendo.comnintendo.com.hknintendo.com.pt nintendo.de nintendo.dk nintendo.es nintendo.eu nintendo.fi nintendo.fr nintendo.it nintendo.net nintendo.nl nintendo.no nintendo.pt nintendo.ru nintendo.se nintendo.twnintendo3ds.comnintendodsi.comnintendoeurope.comnintendolabo.cn +cnnintendonetwork.netnintendonyc.comnintendostore.comnintendoswitch.comnintendoswitch.netnintendoswitchtogether.compersonaltrainermath.complaynintendo.comsupersmashbros.cn +cn!supersmashbros.com.cn +cnthelegendarystarfy.comthewonderful101.comwariolandshakeit.comwariowarediy.comyoshisnewisland.comac-pocketcamp.comdiddykongracing.com dkr.com donkeykongcountryreturns.comfire-emblem-heroes.comfireemblemawakening.com +dialga.com giratina.com +kyurem.com pokedex3d.compokemon-moon.compokemon-sun.compokemon-sunmoon.com pokemon.compokemonbank.compokemonblackwhite.com pokemonbw.compokemonchampionships.compokemongoldsilver.compokemonhome.compokemonletsgoeevee.compokemonletsgopikachu.compokemonmysterydungeon.compokemonpicross.compokemonplatinum.compokemonrubysapphire.compokemonsunmoon.compokemonswordshield.compokemonultrasunmoon.compokemonvgc.compokemonwifi.net xn--mts47c3w9b1qr.cn +cnxn--mts47c3w9b1qr.netsplatoon2tournament.com starfox.comdrmario-world.commarioandluigidreamteam.commariobroswii.com mariokart.cn +cnmariokart.com.cn +cnmariokart7.commariokart8.commariosupersluggers.comnewsupermariobrosu.comsupermario.comsupermario3dworld.com!supermariobros.com.cn +cnsupermariogalaxy.comsupermariorun.comsuperpapermario.comnintendowii.com  wii-u.com +wiifit.com wiifitu.com wiipartyu.com wiisports.comwiisportsresort.comwiiugamepad.com  wiivc.net xenoblade.com op.ggopgg-static.akamaized.net playstationplaystation.complaystation.net sonyentertainmentnetwork.com"api-priconne-redive.cygames.jpomotenashi.cygames.jp%!prd-priconne-redive.akamaized.nethistoryofdota.comhistoryofdota.nethistoryofdota.orginstituteofwar.orgmolesports.com rgpub.ioriot-games.com riot.com riot.net riotcdn.netriotgames.co.kr riotgames.comriotgames.info riotgames.jp riotgames.net riotgames.tv riotpin.comriotpoints.com rstatic.net supremacy.com supremacy.net championshipseriesleague.com lcsmerch.comleaguehighschool.comleagueoflegends.caleagueoflegends.cn +cnleagueoflegends.co.krleagueoflegends.comleagueoflegends.infoleagueoflegends.krleagueoflegends.netleagueoflegends.orgleagueoflegendsscripts.comleaguesharp.infoleaguoflegends.comlearnwithleague.comlol-europe.com lolclub.org lolespor.comlolesports.com lolfanart.net +lolpcs.com lolshop.co.kr lolstatic.comlolusercontent.com +lpl.com.cn +cn pvp.net +pvp.tv ulol.comlolstatic-a.akamaihd.netplayvalorant.comriotforgegames.comruinedking.comconvrgencegame.comrockstargames.com +rsg.sc1-gamedownloads-rockstargames-com.akamaized.net)%media-rockstargames-com.akamaized.net*&videos-rockstargames-com.akamaized.net fanatical.comhumblebundle.complayartifact.com +s.teamsteam-chat.comsteamcommunity.comsteamcontent.comsteamgames.comsteampowered.comsteamstatic.comsteamusercontent.comunderlords.comvalvesoftware.com wmsjsteam.com +cn csgo.wmsj.cn +cndl.steam.ksyna.com +cn dota2.wmsj.cn +cn st.dl.bscstorage.net +cnst.dl.eccdnx.com +cn!st.dl.pinyuncloud.com +cn&steampowered.com.8686c.com +cn%steamstatic.com.8686c.com +cn steambroadcast.akamaized.netsteamcdn-a.akamaihd.net!steamcommunity-a.akamaihd.netsteamstore-a.akamaihd.net#steamusercontent-a.akamaihd.net"steamuserimages-a.akamaihd.netsteamunlocked.net ubi.com ubisoft.com  uplay.com,(ubisoft-uplay-savegames.s3.amazonaws.com,(ubisoft-orbit-savegames.s3.amazonaws.com)uplaypc-s-ubisoft.cdn.ubi.com +cn +beth.games bethesda.netbethesdagamestudios.com bethsoft.com doom.comelderscrolls.comcallersbane.com minecraft.netminecraftshop.com +mojang.comforzamotorsport.netforzaracingchampionship.com forzarc.comorithegame.comrenovacionxboxlive.comtellmewhygame.com xbox.co xbox.com xbox.eu xbox.org +xbox360.co xbox360.com +xbox360.eu xbox360.org +xboxab.comxboxgamepass.comxboxgamestudios.com xboxlive.cn +cn xboxlive.com +xboxone.co xboxone.com +xboxone.euxboxplayanywhere.comxboxstudios.com +xbx.lvdeviantart.comdeviantart.net da-files.comabc-studios.com abc.com edgedatg.com espn.com espn.net espncdn.com +espnqa.com watchespn.comespn.hb.omtrdc.netespndotcom.tt.omtrdc.net +marvel.commarvel10thanniversary.commarveldimensionofheroes.commarvelparty.netmarvelpinball.commarvelsdoubleagent.commarvelspotlightplays.com marvelsuperheroseptember.commarvelsuperwar.comthemarvelexperiencetour.comnatgeomaps.comnationalgeographic.com"nationalgeographicpartners.com ngeo.comadventuresbydisney.com +babble.com babyzone.com +dilcdn.comdisney-asia.comdisney-discount.comdisney-plus.netdisney-studio.comdisney-studio.net  disney.be  disney.bg  disney.ca disney.co.il disney.co.th disney.co.uk disney.co.za +disney.com disney.com.au disney.com.br  disney.cz  disney.de  disney.dk  disney.es  disney.fi  disney.fr  disney.gr  disney.hu  disney.id  disney.in  disney.io  disney.it  disney.my  disney.nl  disney.no  disney.ph  disney.pl  disney.pt  disney.ro  disney.se  disney.sgdisneyadsales.comdisneyarena.comdisneyaulani.comdisneybaby.comdisneycareers.comdisneychannelonstage.comdisneychannelroadtrip.comdisneycruisebrasil.comdisneyenconcert.comdisneyiejobs.comdisneyinflight.comdisneyjunior.comdisneyjuniortreataday.comdisneylatino.comdisneymagicmoments.co.ildisneymagicmoments.co.ukdisneymagicmoments.co.zadisneymagicmoments.dedisneymagicmoments.esdisneymagicmoments.frdisneymagicmoments.gen.trdisneymagicmoments.grdisneymagicmoments.itdisneymagicmoments.pl disneyme.comdisneymeetingsandevents.comdisneymovieinsiders.comdisneymusicpromotion.comdisneynewseries.com disneynow.comdisneypeoplesurveys.comdisneyplus.comdisneyredirects.comdisneysrivieraresort.comdisneystore.comdisneysubscription.comdisneyturkiye.com.trdisneytvajobs.comdisneyworld-go.com +dssott.comgo-disneyworldgo.com +go.com  mickey.tvmoviesanywhere.complaymation.comshopdisney.comshops-disney.comsorcerersarena.comspaindisney.com starwars.com#starwarsgalacticstarcruiser.comstreamingdisney.netthestationbymaker.comthisispolaris.comwatchdisneyfe.com fireside.fm cinemax.comforthethrone.com hbo.com hboasia.com  hbogo.com hbogoasia.com hbogoasia.hk +hbomax.com +hbonow.com  maxgo.com +112263.com callhulu.comfindyourlimits.com freehulu.com  hooloo.tv  hoolu.com hoolu.tv hu1u.com huloo.cc huloo.tv hulu.com hulu.tv hulu.ushuluaction.com +huluad.com huluapp.com huluasks.com hulucall.com hulufree.com hulugans.comhulugermany.com +hulugo.com +huluim.comhuluinstantmessenger.com huluitaly.com hulunet.comhulunetwork.com huluplus.comhulupremium.comhulupurchase.com +huluqa.comhulurussia.com huluspain.comhulusports.comhulustream.com huluteam.com +hulutv.com huluusa.comjoinmaidez.com mushymush.tv +myhulu.comoriginalhulu.com payhulu.comregisterhulu.comthehulubraintrust.comwwwhuluplus.com imdb.com imdb.tomedia-imdb.cominternationalsaimoe.comkingkong.com.twkingkongapp.com +kfs.io  kkbox.com kkbox.com.tw  kktix.com kktv.me litv.tv megaphone.fm moov.hk fast.com +netflix.ca netflix.com netflix.netnetflixinvestor.comnetflixtechblog.com nflxext.com nflximg.com nflximg.netnflxsearch.net +nflxso.net nflxvideo.netnico +nicodic.jp nicomanga.jp niconico.com nicoseiga.jp nicovideo.jp nimg.jp simg.jp overcast.fm  pixiv.net  pixiv.org pixiv.co.jp  pximg.net +pca.stpocketcasts.com fandango.com mgo.commgo-images.com ravm.tv roku.com rokutime.com dishworld.comslinginternational.com  sling.commovenetworks.com +movetv.comimageworks.commotionpictureser.com playshow.ioplayshowtv.comsonyclassics.comsonypictures.comsonypicturesanimation.comsonypicturesmuseum.comsonypicturesstudios.comsonypicturestelevision.com#sonypicturestelevisiongames.com wheelpop.com +wwtbam.comyourfantasybeginsnow.comsoundcloud.com +sndcdn.com byspotify.com pscdn.co scdn.co spoti.fispotify-everywhere.com spotify.comspotify.designspotifycdn.comspotifycharts.comspotifycodes.comspotifyforbrands.comspotifyjobs.com syosetu.com  amemv.com +muscdn.com +musical.ly +tiktok.com tiktokcdn.com tiktokv.com#p16-tiktokcdn-com.akamaized.net ext-twitch.tv  jtvnw.net  ttvnw.net  twitch.tv twitchcdn.net twitchsvc.net +vhx.tv +vhxqa1.com +vhxqa2.com +vhxqa3.com +vhxqa4.com +vhxqa6.comvimeo-staging.comvimeo-staging2.com  vimeo.com vimeo.frvimeobusiness.com vimeocdn.comvimeogoods.comvimeoondemand.comvimeostatus.comlivestream.com abow.jp angelbeats.jp +anigema.jpcharlotte-anime.jpclannad-movie.jpheaven-burns-red.comkamisama-day.jpkamisama-maeda-lab.com koubaibu.jplitbus-anime.com product.co.jprewrite-anime.tvvisualarts.gr.jpvisual-arts.jp +viu.tvapi.viu.now.com^ewcdn[0-9]{2}\.nowe\.com$ viu.com dfp6rglgjqszk.cloudfront.net!d1k2us671qcoau.cloudfront.net!d2anahhhmp1ffz.cloudfront.net +weverse.io wwe.com wwe9.com yande.re cvnad.com +ads +iyoowi.com +ads +got001.com +got002.com jstucdn.com playcvn.com rrys.tv rrys2019.com rrys2020.com rrysapp.com  yyets.com +zimuzu.com  zimuzu.tv zmz2019.com +zmzapi.com +z5.app +z5.com zee5.com zee5.in zee5.tvzeebioskop.com zeetv.co.uk  zeetv.com  zeeuk.com + +VIDEOLAN videolan.org + + +VISUALARTS abow.jp angelbeats.jp +anigema.jpcharlotte-anime.jpclannad-movie.jpheaven-burns-red.comkamisama-day.jpkamisama-maeda-lab.com koubaibu.jplitbus-anime.com product.co.jprewrite-anime.tvvisualarts.gr.jpvisual-arts.jp +, +DUYAOSS duyaoss.com duyaossr.com +L + +TEAMBITIONteambition.comteambition.netteambitionapis.com + +SOFTBANK softbank sb-mobile.jpsb-telecom.netsoftbank-ipo.comsoftbank-jp.comsoftbank-robotics.comsoftbank-telecom.comsoftbank-telecom.net softbank.jp softbank.tvsoftbankbb.comsoftbankbb.netsoftbankci.comsoftbankhawksstore.jpsoftbankmobile.netsoftbankrobotics.comsoftbanktelecom.comsoftbankusa.netsoftbankventuresasia.comsoftbankworld.com +i +ARCHIVEOFOUROWN ao3.orgarchiveofourown.orgarchiveofourown.comarchiveofourown.net +0 +BITLY +bit.ly  bitly.com bitly.is + + +FAMILYMARTfamifun.com.tw family.co.jp family.com.twfamilymart.com.cn +cnfamilymart.com.myfamilymart.com.ph  famima.vn +@ + GLOBALVOICESglobalvoices.orgglobalvoicesonline.org +Q + BANDWAGONHOSTbandwagonhost.com bwh1.net bwh8.net  bwh88.net +* +BOXUN  boxun.combowenpress.com +~ +GITLAB +gitlab.com  gitlab.io +gitlab.netgitlab-static.net.*gitlab-assets.oss-cn-hongkong.aliyuncs.com +$ +NOTEPADnotepad-plus-plus.org +3 + XHAMSTER-ADS#collector.xhamster.com +ads +H +BTTZYW +btt804.com +btt904.com +bttzyw.com +bttzyw.net + + +CRAIGSLISTcraigslist.org +v +NATIONALGEOGRAPHICnatgeomaps.comnationalgeographic.com"nationalgeographicpartners.com ngeo.com + +SYOSETU syosetu.com + + +SHUZIYIMINshuziyimin.org +" + THEPORNDUDEtheporndude.com + +BITBANK +bitbank.cc + + +CLOUDFLAREcloudflare-dns.comcloudflare-ipfs.comcloudflare.comcloudflare.netcloudflareapps.comcloudflarebolt.comcloudflareclient.comcloudflareinsights.comcloudflareok.comcloudflareresolve.comcloudflaressl.comcloudflarestatus.comcloudflarestream.comcloudflaretest.com one.one.onetrycloudflare.comvideodelivery.net  warp.plus workers.dev + +DW +dw.com +( +LAGOU  lagou.com lgstatic.com +1 + QINGCLOUD qingcache.com qingcloud.com +8 + +CYBERTRUSTcybertrust.co.jpcybertrust.ne.jp + +GIT git-scm.com + +NUROFEN +nurofen.at +nurofen.bg +nurofen.cn +cn nurofen.co.il nurofen.co.nz nurofen.co.uk nurofen.co.za nurofen.comnurofen.com.aunurofen.com.cn +cnnurofen.com.sg +nurofen.cz +nurofen.de +nurofen.es +nurofen.fr +nurofen.hr +nurofen.hu +nurofen.ie +nurofen.it nurofen.net +nurofen.no +nurofen.pl +nurofen.pt +nurofen.ro +nurofen.sk +nurofen.runurofengel.com51nurofensk-prod-env.eu-west-1.elasticbeanstalk.com +, +PAOFUYUN paofu.cloud paofuyun.me +/ +REALTYPErealtype.co.jp realtype.jp + +RT +rt.com + +STEAM fanatical.comhumblebundle.complayartifact.com +s.teamsteam-chat.comsteamcommunity.comsteamcontent.comsteamgames.comsteampowered.comsteamstatic.comsteamusercontent.comunderlords.comvalvesoftware.com wmsjsteam.com +cn csgo.wmsj.cn +cndl.steam.ksyna.com +cn dota2.wmsj.cn +cn st.dl.bscstorage.net +cnst.dl.eccdnx.com +cn!st.dl.pinyuncloud.com +cn&steampowered.com.8686c.com +cn%steamstatic.com.8686c.com +cn steambroadcast.akamaized.netsteamcdn-a.akamaihd.net!steamcommunity-a.akamaihd.netsteamstore-a.akamaihd.net#steamusercontent-a.akamaihd.net"steamuserimages-a.akamaihd.net +S + UNITY-ADS!unityads.unity3d.com +ads#unityads.unitychina.cn +ads +$ +AFP afp.com afpforum.com +' +CODING  coding.me +coding.net + +CUTTLY cutt.ly +* +JIANSHU jianshu.com +jianshu.io + +ADIDAS  adidas.at  adidas.be  adidas.ch adidas.co.in adidas.co.uk +adidas.com adidas.com.cn +cn adidas.com.sa adidas.com.tw  adidas.cz  adidas.de  adidas.dk  adidas.hu  adidas.ie  adidas.it  adidas.nl  adidas.pl  adidas.ru  adidas.se + +BLUBRRY blubrry.com + + REALCLEAR realclear.comrealclearbooks.comrealcleardefense.comrealcleareducation.comrealclearenergy.orgrealclearfoundation.orgrealclearhealth.comrealclearhistory.comrealclearinvestigations.comrealclearlife.comrealclearmarkets.comrealclearpolicy.comrealclearpolitics.comrealclearpublicaffairs.comrealclearreligion.orgrealclearscience.comrealclearworld.com + +RUANMEI 6655.com cooldock.com +ithome.com lapin365.com ruanmei.com +saayaa.com win7china.com win8china.com + +TUBE8  tube8.com +R +UPAI  aicdn.com upai.com upaiyun.com  upcdn.net  upyun.com + +CATEGORY-COMPANIESacer-group.com acer.com acer.com.cn +cn typekit.com typekit.net10xfotolia.com 2o7.net acrobat.com adbecrsl.comadobe-aemassets-value.comadobe-audience-finder.com"adobe-video-partner-finder.com  adobe.com adobe.lyadobeaemcloud.comadobeaemcloud.netadobeawards.comadobecontent.ioadobecreativityawards.com adobedc.net adobedemo.com adobedtm.comadobeexchange.comadobeexperienceawards.com adobegov.comadobehiddentreasures.comadobejanus.com adobeku.comadobelanding.comadobelogin.com adobeoobe.comadobeplatinumclub.comadobeprojectm.com adobesc.com adobesign.comadobesigncdn.comadobespark.com adobess.comadobestock.com adobetag.comadobetarget.comadobetcstrialdvd.comadobetechcomm.comadobetechcommcallback.comadobetechcommdemo.comadobexdplatform.comassetsadobe.com authorxml.combusinesscatalyst.com ccnsite.com  ccpsx.com +demdex.netdollarfotoclub.comdollarphotoclub.comdollarphotosclub.comdouwriteright.com echocdn.com echosign.com edgefonts.netenablementadobe.com  ftcdn.net gostorego.comimagineecommerce.commacromedia.commagentoliveconference.commarketing-nirvana.com omniture.com +omtrdc.net photoshop.complacesdocs.comsundanceignite2016.comworldsecureemail.comworldsecuresystems.com adobe.iodevelopria.com behance.nets2stagehance.com adobecc.com adobecce.comadobeccstatic.comcreativecloud.comcreativesdk.com cotolia.com ffotolia.com fiotolia.com foftolia.com fonolia.com fotiolia.com fotoiia.comfotolia-noticias.com +fotolia.cc fotolia.com +fotolia.tv fotolja.com fptolia.com gfotolia.com motolia.com photolia.nettenbyfotolia.com votolia.combluefootcms.com mageconf.commageconf.com.ua magento.com magento.netmagentocommerce.commagentomobile.commarketing-cloud.com marketo.co.uk marketo.com marketo.net +marketo.tvmarketodesigner.commarketolive.com +mktdns.commkto-c0100.com mktorest.com mktroute.commobilemarketo.com&"revenue-performance-management.com toutapp.comcompresspdf.new pdf.new sign.newalibabacloud.co.inalibabacloud.comalibabacloud.com.aualibabacloud.com.hkalibabacloud.com.myalibabacloud.com.sgalibabacloud.com.tw alicloud.com amazon-adsystem.com +adswholecitiesfoundation.orgwholefoodsmarket.comwholekidsfoundation.orgwholeplanetfoundation.orgaws +amazonimdb +kindle xn--cckwcxetdxn--jlq480n2rg yamaxun +zappos a2z.comaboutamazon.cn +cnaboutamazon.co.ukaboutamazon.comaboutamazon.com.auaboutamazon.deaboutamazon.esaboutamazon.euaboutamazon.fraboutamazon.inaboutamazon.itaboutamazon.jpaboutamazon.pl alexafund.cn +cnalexafund.com.cn +cn amaaozn.comamazon-fashions.comamazon-jp-recruiting.comamazon-lantern.comamazon-launchpad.com  amazon.ae  amazon.ca amazon.cn +cn amazon.co.jp amazon.co.uk +amazon.com amazon.com.au amazon.com.br amazon.com.mx amazon.com.tr  amazon.de  amazon.es  amazon.fr  amazon.in  amazon.it amazon.jobs  amazon.jp  amazon.nl +amazon.red  amazon.sgamazonalexavoxcon.comamazonauthorinsights.comamazonbusiness.cn +cn!amazonbusiness.com.cn +cnamazonbusiness.orgamazonbusinessblog.comamazonchoice.cn +cnamazonchoice.com.cn +cnamazonchoices.cn +cn amazonchoices.com.cn +cnamazondevicesupport.comamazonfctours.comamazonianblog.comamazonimages.comamazoninspire.cn +cn amazoninspire.com.cn +cnamazonlaunchpad.cn +cnamazonlaunchpad.com"amazonlaunchpad.com.cn +cn amazonlending.com.cn +cn!amazonliterarypartnership.comamazonlumberyard.wang amazonnow.cn +cnamazonnow.com.cn +cn amazonpay.com amazonpay.in amazonsdi.comamazonstudiosguilds.comamazontrust.comamazonvideodirect.com amzn.com amzn.to  amznl.comassoc-amazon.cn +cnassociates-amazon.comgameon-masters.comgdansk-amazon.comimages-amazon.commedia-amazon.com primeday.cn +cnprimeday.com.cn +cn primeday.infosiege-amazon.comssl-images-amazon.comueberamazon.de +yamaxun.cn +cn yamaxun.comz.cn +cn  alexa.com audible.comacmvalidations.comacmvalidationsaws.comaesworkshops.comamazonaws-china.com amazonaws.com amazonaws.tvamazonworkdocs.cn +cnamazonworkdocs.com!amazonworkdocs.com.cn +cnamplifyapp.comamplifyframework.comaws-iot-hackathon.comawsautopilot.comawsautoscaling.com awsbraket.comawscommandlineinterface.comawsedstart.comawseducate.comawseducate.netawseducate.orgawsloft-johannesburg.comawsloft-stockholm.comawssecworkshops.com awsstatic.comawsthinkbox.com awstrust.comcdkworkshop.comcloudfront.netcontainersonaws.comelasticbeanstalk.comthinkboxsoftware.com".+\.awsdns-[0-9][0-9]\.co\.uk$.+\.awsdns-[0-9][0-9]\.com$.+\.awsdns-[0-9][0-9]\.net$.+\.awsdns-[0-9][0-9]\.org$".+\.awsdns-cn-[0-9][0-9]\.biz$!.+\.awsdns-cn-[0-9][0-9]\.cn$".+\.awsdns-cn-[0-9][0-9]\.com$".+\.awsdns-cn-[0-9][0-9]\.net$createspace.com kindle.cn +cn kindle.co.jp kindle.co.uk +kindle.com  kindle.de  kindle.es  kindle.fr  kindle.in  kindle.it  kindle.jpkindleoasis.cn +cnkindleoasis.comkindleoasis.com.cn +cnkindleoasis.infokindleoasis.jpkindleoasis.orgkindleoasis.uskindleoasisnews.comkindleproject.comamazonprimevideo.cn +cn#amazonprimevideo.com.cn +cnamazonprimevideos.comamazonvideo.ccamazonvideo.comprime-video.com primevideo.ccprimevideo.comprimevideo.infoprimevideo.org primevideo.tv+images-cn.ssl-images-amazon.com +cn-!images-cn-8.ssl-images-amazon.com +cn amd.comamdfanstore.com +radeon.comiadsdk.apple.com +ads iad.apple.com +ads qwapi.com +adscalendarserver.orgapple-cloudkit.com cups.orgdeveloper.apple.comdevimages-cdn.apple.comdevstreaming-cdn.apple.comfoundationdb.orgmacosforge.org macruby.com macruby.net macruby.orgapple-mapkit.complaygrounds-cdn.apple.com carekit.orgresearchandcare.orgresearchkit.cn +cnresearchkit.com.cn +cnresearchkit.hkresearchkit.netresearchkit.orgresearchkit.tvservicetalk.io +webkit.org webkitgtk.org wpewebkit.orgwebobjects.com-)appleworldwidedeveloper.hb-api.omtrdc.net)%appleworldwidedeveloper.sc.omtrdc.net#p-events-delivery.akamaized.net100beatscheap.com1monsterbeatsbydreus.com2013beatsbydrdreonline.com2013beatsbydrdreshop.com2013beatsbydreshop.com2013beatshdcybermonday.com2013cheapestbeats.com2013newbeatsworld.com2013pascherbeatsbydre.com2014cheapbeatsbydre.com 2beatsdre.com2buybeatsbydre.com2drdrebeats.com40shopping.com4beatsbydre.com5beatsbydre.comaaagradeheadphones.com +aanaan.comabcheadphones.comabeatsbydrdre.com aeasyshop.com +airmay.com +ajtalk.com albeats.com annstores.netaokwholesale.netaucheapbeats.comaudiobeatsau.comaudiobeatsbydre.comaudiomonsterbeatsonline.comauricularemonsterbeats.com#auricularesbeatsbaratosshop.comauricularesbeatsmarkt.comausbeatsbydrdre.combag-glasses1.com bandgirlz.com baxsound.com bbestmall.com +beatbd.combeatbydre2013.combeatbydremonster.com!beatbydreheadphonesonsale.combeatbydrekopen.combeatbydreuk2014.combeatdrdres.combeatfactoryoutlets.combeatmonstersaustralia.netbeats-by-dre-australia.combeats-bydrdre.netbeats-bydre-mall.combeats-bydrecheapsale.combeats-bydreoutletonline.combeats-bydreoutletsale.combeats-bydreoutletsale.netbeats-bydreoutletssale.netbeats-bydrestore.combeats-bydreuk.combeats-deal.combeats-dre-us.com"beats-headphones-buy-cheap.combeats-headphones.usbeats-sale.combeats-seller.combeats-soaho.com  beats1.cc beats1.cn +cn  beats1.tv beats1.com.cn +cn beats123.com beats2.com.cn +cn beats4.cn +cn +beats4.netbeats4outlets.combeats4salecheap.combeatsallsale.combeatsaudifonos.combeatsaudiobydre.combeatsaudiobydre.netbeatsaudios.netbeatsbeatsmonster.combeatsbestdeals.combeatsblackfridaydeals.netbeatsblackfridayretails.combeatsboxingdayuksale.combeatsbydrdre-headphones.combeatsbydrdre-officials5.combeatsbydrdre-online.combeatsbydrdre-onsale.combeatsbydrdre-store.combeatsbydrdre-store.usbeatsbydrdre4sale.combeatsbydrdrebiz.combeatsbydrdrecustom.combeatsbydrdredanmark.combeatsbydrdremall.combeatsbydrdreoutlet.combeatsbydrdres.combeatsbydrdresale.netbeatsbydrdrestore.combeatsbydrdreus.com!beatsbydre-beatsheadphone.combeatsbydre-chen.combeatsbydre-club.combeatsbydre-headphones.com!beatsbydre-headphonesshop.combeatsbydre-mall.combeatsbydre-outlet.combeatsbydre-outletsale.netbeatsbydre-outletstore.combeatsbydre-sell.combeatsbydre-store.combeatsbydre-studio.combeatsbydre-us.com beatsbydre.jpbeatsbydre2081.combeatsbydre411.combeatsbydre4usales.combeatsbydreauofficial.combeatsbydreausale.net beatsbydreaustralia-sale.com!beatsbydreaustraliaonline.com"beatsbydreaustraliaonlines.com beatsbydreaustraliasales.combeatsbydrebeatsby.com!beatsbydreblackfriday2013.com beatsbydreblackfridaypro.combeatsbydreboxingdayca.combeatsbydrecasquesfr.com#beatsbydrecheap-outletstore.combeatsbydrecheaper.com"beatsbydrecheaponlinesales.combeatsbydrecolors.com beatsbydrecustomwireless.com&"beatsbydrecybermondaydeals2013.com&"beatsbydrecybermondaydeals2013.netbeatsbydredanmarks.com"beatsbydredealsblackfriday.com"beatsbydredealscybermonday.combeatsbydrediscount.com beatsbydrediscountonline.netbeatsbydredr.combeatsbydreexecutivesale.com beatsbydreformall2013-nl.com beatsbydreforsalesonline.com beatsbydreforshop2013-nl.combeatsbydreforstore.combeatsbydreforyououtlet.combeatsbydrefr.com!beatsbydrefrcasquepascher.combeatsbydrefriday.combeatsbydregot.combeatsbydrehd.combeatsbydrehd.netbeatsbydreheadphones-nz.combeatsbydreheadphonesolo.combeatsbydrehut.combeatsbydreinexpensive.combeatsbydreireland-sales.com beatsbydreirelandonlines.combeatsbydreirelandsale.com beatsbydreirelandsonline.combeatsbydremall2013.com"beatsbydremonsteraustralia.combeatsbydrenls.combeatsbydrenorge1.net!beatsbydreofficialdanmark.combeatsbydreoksale.combeatsbydreol.combeatsbydreonlie2013-nl.com!beatsbydreonlines-ireland.combeatsbydreonlines-uk.combeatsbydreonlinesale-nz.combeatsbydreoordopjes.combeatsbydreoslo.combeatsbydreoutletsale.combeatsbydreoutletscheap.combeatsbydrerealstore.combeatsbydres-shop.combeatsbydresale-uk.combeatsbydresalemall2013.combeatsbydresales.us'#beatsbydresalesonline-australia.com beatsbydresaleonlines-nz.combeatsbydresdanmark.netbeatsbydreshop-uk.combeatsbydreshops.netbeatsbydresingapores.combeatsbydresingaporesale.combeatsbydrespeakers.combeatsbydresold.com%!beatsbydresolohdonline-canada.combeatsbydresonline-nz.combeatsbydrestorevip.combeatsbydressale.combeatsbydressolo.combeatsbydresstudio.com"beatsbydrestudio-australia.combeatsbydrestudio.combeatsbydretoutlet.combeatsbydreuk.combeatsbydreuk.netbeatsbydreus.combeatsbydrevipde.combeatsbydrew.combeatsbydrsmonsterinusa.combeatsbymusic.netbeatsbysdrbre.combeatsbysdrdres.combeatscasque-france.combeatscheap-nz.combeatscheap-uk.combeatscheapforsale.combeatscollection2014.combeatscustomblackfriday.combeatsdanmark2013.combeatsdrdre-headphones.combeatsdrdre-it.combeatsdrdre-solo.combeatsdrdre2014.combeatsdrdrecuffie.netbeatsdrdrekaufenschweiz.netbeatsdrdreneon.combeatsdre-monster.com beatsdre.netbeatsdre4cheap.combeatsdrecheap.combeatsdredreheadphones.combeatsdreforsale.combeatsdreinau.combeatsdremonster-uk.com!beatsdrenewcolorful4usale.combeatsdreoutletsale.combeatsdresale2013.combeatsdresalestore.combeatsdresolo2013.combeatsdreus.combeatsearbudsheadphoness.combeatsfacstore.combeatsfactoroutlets.combeatsfactorycollection.combeatsfactoryoutles.combeatsforcheap-usa.combeatsforme.combeatsfranceofficiel.combeatselectronic.netbeatselectronics.com +beatsep.cn +cn beatsep.com beatsep.net beatsheadphones-discount.combeatsheadphones1.combeatsheadphones2u.combeatsheadphonesale.combeatsheadphonesdealer.combeatsheadphonesforcheap.netbeatsheadphonesonline.combeatsheadphoness.combeatsheadphonestudio.combeatsheadphonesusamall.combestshoesale2014.netbeatshopuk.combeatsincanada.combeatsinsingapore.combeatsireland.net beatsjoy.combeatsmonstersales.combeatsmusic.combeatsmusic.wang beatsneon.combeatsnzsale.com beatsodre.combeatsofdre-usa.combeatsonblackfriday2013.com beatsone.netbeatsoutlet.netbeatsoutletanytime.combeatsoutletonlines.combeatspascher-bydre.combeatspascher-fr.netbeatspascher.netbeatspaschers.netbeatspillnewcolor.combeatspills.combeatspromonsterjp.combeatspromotions.combeatssales.combeatssaleus.combeatssaustraliabuy.combeatssbyaustralia.combeatssbydredanmark.combeatsshop-uk.combeatsshop-usa.combeatsshopstore.combeatssingapores.combeatssingaporeshop.com beatsstudiohodetelefoner.combeatsstudiosite.combeatstoreusa.com beatsua.combeatswholesale.usbeatswirelesscheap.combeatswirelesscuffie.combegin-trade.combestbeats4u.com +biitii.comblackfridaydrebeatsnew.comblackfridaydrebeatsshop.combloommicroventures.com bookonsky.net +bossae.combrandeasygo.combrandelectronic.combrandproducts1688.com brands098.combusinesswebwise.combuy-from-shanghai.combuybeatsbydre-uk.combuybeatsheadphonesbydre.combuycheapbeatsbus.combuycheapbeatsbydre.combuycheapbeatsbydreshop.combuycheapbeatsdreuk.combuydrdrebeatbox.combuyminibeatbox.combuyonlineheadphones.combuyshoponly.combuzzardflapper.combybeatsdre.combydrebeats.comcanada-beatsbydre.com casque-fr.com casquebeatsbydrdresolohd.comcasquebeatsdocteurdre.comcasquebeatsdre2013.comcasquebeatsenligne.comcasquebeatsfracheter.comcasquebeatsmer.netcasquebeatsofficiel-fr.comcasquebeatspascher2013.comcasquebeatssolo.netcasquedrdrebeatssfr.comcasquemonsterbeats.com#casquemonsterbeatsbydre2013.comcasquesbeatsaudio.comcheap-beats-by-dre.netcheap-beatsbydre.comcheapbagshoes.com cheapbeats.uscheapbeats365.comcheapbeats4sale.netcheapbeatsaustraliasale.comcheapbeatsbus.comcheapbeatsbydr.comcheapbeatsbydrdrepro.comcheapbeatsbydre-au.comcheapbeatsbydre99.comcheapbeatsbydrefau.comcheapbeatsbydremall.comcheapbeatsbydremonster.comcheapbeatsbydrenz.netcheapbeatsbydreonsale.com cheapbeatsbydreoutlet-nz.comcheapbeatsbydreoutlet.com"cheapbeatsbydreoutlets2013.comcheapbeatsbydresale.comcheapbeatsbydreshop.comcheapbeatsdrdresolo.com$ cheapbeatsbydrestudioedition.com"cheapbeatsbydrestudioutlet.comcheapbeatsdrestudios.comcheapbeatsheadphone2014.comcheapbeatsheadphones.uscheapbeatsie.comcheapbeatsla.comcheapbeatssale4u.comcheapbeatsshopbydre.comcheapcustombeatsbydre.comcheapdrdrebeats8.comcheapdrdrebeatsca.comcheapdrebeats8.netcheaperbeatsbydresale.comcheapestbeatsdrdre.comcheapheadphonesland.comcheapheadphonessale.comcheapheadsetmall.comcheapheadsetshop.com cheapmonsterbeatsbydrdre.com!cheapmonsterbeatsheadsets.com cheapmonstersbeatsonsale.comcheapmonsterbeatssale.comcheapmonsterbeatsusa.uscheapnewbeatsbydre.comcheapsalemonster.comcheapshoesvip.comcheapwireless04.comcheapwirelessbeats.comcheerwholesale.uschihair-straightener.comchinaclothesstore.comciattackers.com +cmhalq.com cnshopin.comcoolmonster.netcozydrdrebeats.com cqcorea.comcuffiesaldi.comcustombeatsbydrebuy.comcustombeatsdeals.comcustombeatsforcheap.comcustombeatsny.comcustombeatssbydreus.comcustomdrdrebeats.comcustomizedbeatbydre.comcustomizedbeatsbydre.comcustomizedbeatsdre.comcybermondaybeats4sale.comdanemarket.comdanmarkbeatsbydrdre.comdctbeatsbydre.comdealsbeatsblackfriday.comdetaliczny.comdiscountbeatsbydre-us.comdiscountbeatsstore.comdkbeatsbydre.comdrbeatsukmart.comdrdre-beats.comdrdrebeats-chen.comdrdrebeats-headphone.comdrdrebeats-usa.comdrdrebeatsale.comdrdrebeatsbillig.comdrdrebeatsdesale.comdrdrebeatsdiscount.comdrdrebeatsforu.comdrdrebeatsretail2013.comdrdrebeatssale7.comdrdrebeatsuk.comdrdreheadphonebeats.comdrdreheadphonekey.comdrdreheadphonesusstore.comdrdremonster-beats.comdrdremonsterdre.comdrdreprobeatssale.com drdrefnac.comdrebeats-australia.comdrebeats-france.comdrebeats-monster.com!drebeats-monsteraustralia.comdrebeats-monsterusa.comdrebeats-singapore.comdrebeats-singapore.netdrebeats-singaporecheap.comdrebeats-singaporecheap.netdrebeats-solo.comdrebeats-studio.comdrebeatsaustralia-cheap.comdrebeatsaustralia-cheap.netdrebeatsbuy.comdrebeatsbydreoutlet.comdrebeatscanada.comdrebeatsdeutschland.netdrebeatsforsaleus.comdrebeatsheadphones-nz.comdrebeatshome.comdrebeatsoutletstore.comdrebeatsoldes.comdrebeatspill.comdrebeatssite.com#drebeatssolocybermondaysale.comdrebeatsstudio2013.comdrebeatstudio.com drebyby.comdremonsterbeatsoutlets.comdreprobeats.com dreprofy.com +dtsell.comearphonescheapest.comebuyheadphones.comesbeatsbydrebuy.cometheadphones.comfamosascalvas.comfindmybeats.comfr-beatsbydrestore.comfrancecasquebeatssolde.comfrcasquesbeats.com free-aa.com free-sns.com frishoes.comgamebeforethegame.comgetdrebeatssale.comgmnetworks.net gobeatsye.comgobuyonlinestore.net goodsdunk.netheadphonepubs.comheadphones-cool.comheadphones-dre.com headphones-outlet-online.comheadphonesbeatsaudio.comheadphonesbeatsbydre.comheadphoneses.comheadphoneshome.comheadphoneshotsales.comheadphonesol.comheadphonesretailer.comheadphonessupply.comheadphonezip.comheadset987.comhellokittybeats.com highbolt.net highdefinitionbeatsbydre.com hipaa6020.com hipzoom.nethonawalaan.comhotbeatsonsale.comhotmonsterbeats.comhottestheadphonesonline.com  hrsaz.com ibeats-uk.comibeatsbydre.ccibeatsbydre.comigoshopping.net illianacomputerrecycling.comimonsterbeats.comincentivetravelgifts.comioffergift.com islamiccenterofnewlondon.comitaliabeatsbydrdre.com jkbeats.comkickshatchannel.comkobbeatssbydredk.comkopfhorergunstigshop.comleecountytimes.com lexuemei.comlovebeatsdr.com lovemarca.comluckyissue.com +lyzsxx.com mairbeats.com +makeeu.commallheadphone.commbeats-tech.commbheadphone.com +micstl.commmonsterheadphones.netmonbeats2013.commonster-beats-by-dr-dre.com monster-beats-headphones.commonsterbeats-cheap.commonsterbeats-headphone.commonsterbeats-onsale.commonsterbeats-solo.commonsterbeats-solo.netmonsterbeats365buy.commonsterbeats8beatsbydre.commonsterbeatsale.commonsterbeatsalestore.commonsterbeatssalg.commonsterbeatsau.commonsterbeatsbydrdre-nz.commonsterbeatsbydrdre-usa.com!monsterbeatsbydrdrecanada.com!monsterbeatsbydrdrestudio.commonsterbeatsbydre-nz.commonsterbeatsbydre-usa.commonsterbeatsbydre2015.com'#monsterbeatsbydreaustraliacheap.com!monsterbeatsbydrebilligde.com monsterbeatsbydrefactory.commonsterbeatsbydrenew.commonsterbeatsbydres.commonsterbeatsbydreshop.commonsterbeatscasques.commonsterbeatscommunity.commonsterbeatsdrdrecheap.commonsterbeatsfactory.netmonsterbeatsfinland.commonsterbeatsforsale.commonsterbeatsheadphone.commonsterbeatsheadphones.netmonsterbeatshere.commonsterbeatsitaly.commonsterbeatsmall.commonsterbeatsnegozi.netmonsterbeatsok.com!monsterbeatsonlinestoreuk.commonsterbeatsoutlet.usmonsterbeatspascher.netmonsterbeatsru.commonsterbeatssales.commonsterbeatsshops.netmonsterbeatsstore.com#monsterbeatssydneyaustralia.commonsterbeatstang.commonsterbeatstienda.commonsterbeatstudio.commonsterbydrebeat.com!monstercasquebeatspascher.netmonstercheapbeatss.commonsterdrebeats-canada.netmonsterdrebeats-usa.commonsterdrebeats-usa.netmonsterheadphone.netmonsterproduct.netmonstersbeatbydres.commonstersdebea.commonstershopcheapbeats.netmoreheadphones.com +ms4dre.commybeatsbydrestudio.commybeatsbydreuk.commybeatscheapbydre.commyferrariheadphones.comnamemybeats.com neborder.comnegozimonsterbeats.comnegoziomonsterbeats.comnewbeatsblackfriday.com newbemany.comnewdrediscount.comnewestbeatsbydre.comnewlysprung.netnewmonst1erbeatsto1re.com!newmonsterbeatsheadphones.comnewschristmasshopping.comnflhotsalejerseys.com nicesshop.netofferairjordanlebron.comofficialbeatsbydreshop.comofficialbeatsbydrestore.comofficialdrdre.comofficialheadphone.com ogameblog.comonbeatsbydresale.com onlinemonsterbeatsonsale.com onsalekey.comonsaletrend.comoutletbeatsshop.compascherbeatsmonster.compaulsimon-music.comperfectkickz.netpersoneelsland.compicknicekicks.netpickshoesclothes.com pillbeatsblackfridaysale.compocketbiketrader.compowerbeats2wireless.compowerbeatsbydrdre.compowerbeatsbydre.compromonsterbeatsbydre.comprostudiobeatscybersale.com  rbsgr.comrepsneakermall.com repswing.com!salebeatslasteststyle4you.comsaleblackfridaydrebeats.comsalecheaphandbags.com samebags.com sanvaras.com +scnshop.cc +shoers.com shoestop2.comshop-headphones.netshopbeatsdre.com shopbydre.comshopcustomizedbeats.comshopdrebeats.comshopmonsterbeats.comshopping-days.netshoppinguheadphones.comsneaker666.comsneakerpage.netsneakerskick.comsolostudioksale.com soso7778.comspecialtyheadphones.comspiritclubs.comstraightouttasomewhere.comstudiobeatsbydrdre.comsulwerphoto.comsunglassessale2014.comsuperearsenjoy.comsupplybestjerseys.comsustainthesound.comsverigebeatsbydrdre.com szcheapmonsterheadphones.comszwinnertechnology.com takegoto.comthe-monster-beats.comthebeatsbydre.comthebeatsbydre.netthebeatsheadphonesale.com +theuab.nettopbeatsbydrdreoutlet.comtopbeatsdealer.comtopbeatsforsale.com tradevip1.com tteshop.com ubnw.net +unstyle.us&"usa-beatsbydreheadphonesonsale.net  v-has.com vip-beats.comvipbeatsbydre.comvipheadphones.com vipshoes2.com  wasdj.comwholesale-exporter1.comwholesalediscountpurses.comwholesalefine.comwholesaleonlinemart.comworldcoinpay.comyourmonsterbeats.com%!beatselectronicsllc.tt.omtrdc.netapple-icloud.cn +cnappleicloud.cn +cnapplemx-icloud.comicloud-apple.cn +cnicloud-content.comicloud-isupport.com  icloud.ch +icloud.com icloud.com.cn +cn  icloud.de  icloud.ee  icloud.fi  icloud.fr  icloud.hu  icloud.ie  icloud.is  icloud.jp  icloud.lv icloud.net.cn +cn  icloud.om +icloud.org  icloud.pt  icloud.ro  icloud.se  icloud.si  icloud.sk  icloud.vn icloudads.neticloudapple.cn +cn icloudbox.neticloudbrowser.net icloude.comicloudhome.comicloudmail.neticloudmusic.net icloudnet.net icloudpay.net icloudo.com +icloudo.de icloudo.net icloudos.de icloudos.neticloudsecure.neticloudsetup.comios-icloud.com +me.com myicloud.net mylcloud.net wwwicloud.com!www-cdn.icloud.com.akadns.net!12diasdepresentesdeitunes.com12diasderegalosdeitunes.cl12diasderegalosdeitunes.co!12diasderegalosdeitunes.co.cr!12diasderegalosdeitunes.co.ni!12diasderegalosdeitunes.co.ve12diasderegalosdeitunes.com"12diasderegalosdeitunes.com.co"12diasderegalosdeitunes.com.hn"12diasderegalosdeitunes.com.ni"12diasderegalosdeitunes.com.ve12diasderegalosdeitunes.cr12diasderegalosdeitunes.gt12diasderegalosdeitunes.hn12diasderegalosdeitunes.pe 12joursdecadeauxdeitunes.comapple-itunes.cn +cn itun.es itunbes.com ituneas.comitunes-apple.cn +cnitunes-radio.net  itunes.ca  itunes.co itunes.co.th +itunes.com  itunes.hk  itunes.mx +itunes.org +itunes.rio  itunes.usitunes12days.comitunesapple.cn +cnitunesessentials.comitunesfestivals.comitunesiradio.comituneslatino.comituneslogin.netitunesmatch.comitunesparty.comitunesradio.cn +cnitunesradio.comitunesradio.com.cn +cnitunesradio.rioitunesradio.tvitunesradio.twitunesstore.co itunesu.com itunesu.net iutunes.com wwwitunes.comitunes-apple.com.akadns.netappleswift.com  swift.org +swiftui.cn +cnswiftui.com.cn +cn apple apple.ae apple.at apple.be apple.bg apple.bs apple.ca apple.ch apple.cl apple.cmapple.cn +cn apple.co apple.co.cr apple.co.hu apple.co.jp apple.co.kr apple.co.mz apple.co.nz apple.co.th apple.co.uk  apple.com apple.com.af apple.com.au apple.com.bo apple.com.br apple.com.cn +cn apple.com.co apple.com.de apple.com.do apple.com.gr apple.com.gy apple.com.jm apple.com.lk apple.com.mg apple.com.mx apple.com.my apple.com.pa apple.com.pe apple.com.pl apple.com.pr apple.com.pt apple.com.py apple.com.sg apple.com.sv apple.com.tr apple.com.tw apple.com.uy apple.cz apple.de apple.dk apple.ee apple.es apple.eu apple.fi apple.fr apple.hamburg apple.hn apple.hr apple.hu apple.ie apple.in apple.is apple.it apple.jo apple.jp apple.kr apple.lk apple.lt apple.lv apple.me apple.my  apple.net apple.net.gr apple.nl apple.no apple.pk apple.pl apple.pt apple.ro apple.rs apple.ru apple.sa apple.se apple.sg apple.si apple.sk apple.so apple.tt apple.tw apple.uk apple.usapple.xn--czr694bapple.xn--fiqs8s  apple.xyz aplestore.comapple-store.cn +cnapple-store.netapple-store.wang applestor.com applestore.bg applestore.cc applestore.ch applestore.cm applestore.cn +cnapplestore.co.huapplestore.co.jpapplestore.co.ugapplestore.co.ukapplestore.comapplestore.com.auapplestore.com.bnapplestore.com.cn +cnapplestore.com.eeapplestore.com.egapplestore.com.grapplestore.com.hkapplestore.com.hrapplestore.com.joapplestore.com.myapplestore.com.phapplestore.com.plapplestore.com.ptapplestore.com.roapplestore.com.ruapplestore.com.snapplestore.com.tw applestore.de applestore.hk applestore.kr applestore.meapplestore.netapplestore.net.gr applestore.ph applestore.qa applestore.sgapplestore.wangapplestoreonline.comapplestorepro.euonlineapplestore.comapp-store.wangappe-store.comapple-appstore.cn +cnappleappstore.cn +cnappleappstore.netappleappstore.tv  appsto.reappstore.co.id appstore.hk appstore.my appstore.phappstoreapple.cn +cn asto.retvappstore.netapple-imac.com appleimac.comimac-apple.comimac-applecomputer.com imac.co +imac.co.nz imac.com imac.eu imac.gr imac.one imac.rs imacapple.comimacapplecomputer.comebookforipad.com euroipad.comfindmyipad.com indiaipad.com +ipad.co.kr ipad.de  ipad.host  ipad.wang  ipad3.com +ipadair.cl +ipadair.cmipadair.com.bripadair.com.es +ipadair.fr +ipadair.hk +ipadair.ie +ipadair.jp +ipadair.twipadaustralia.com ipadmini.cmipadmini.com.lk ipadmini.lk ipadpro.buzz +ukipad.comappleiphone.huappleiphone.netappleiphonecell.combestiphonestuff.comcooliphonecasesstore.comcustom-iphonecase.comdesigneriphonescases.com dl-iphone.comfundaiphone5s.com hebiphone.com hf-iphone.com +iphine.comiphone-8.com.cn +cn iphone-cd.com iphone-cn.com iphone-sh.comiphone-vip1.comiphone-vip2.comiphone-vip3.comiphone-vip4.comiphone-vip5.com iphone-x.tv iphone-yh.com iphone-zh.com  iphone.cm +iphone.com iphone.com.au iphone.com.gr  iphone.es iphone.host iphone.net.gr  iphone.pt  iphone.rs  iphone.ru iphone.wang iphone4.comiphone4.com.br iphone4s.com iphone5.comiphone5casescovers.comiphone5s5case.comiphoneacessorios.com.briphonecase2013.comiphonecase5.comiphonecases100.comiphonecases5.comiphoneclaro.com.briphonecollcase.com iphonefc.comiphonegermany.comiphonehangzhou.comiphoneimessage.comiphoneplus.wang iphonerip.net iphonese.tviphoneunlockimei.com iphonexs.tvonlyiphone5case.comaplleipods.comappleclassicipod.comdownloadsforipod.com ipod.ca ipod.ch ipod.cm ipod.co +ipod.co.nz +ipod.co.uk +ipod.co.za ipod.com ipod.com.au ipod.com.cn +cn ipod.com.fr ipod.com.hk ipod.com.sg ipod.com.tw ipod.de ipod.es ipod.eu ipod.fr ipod.gr ipod.hk ipod.is ipod.net ipod.no ipod.pk ipod.rs ipod.ru ipod.tw ipodcentre.nlipodcleaner.comipoditouch.com ipodnano.com ipodnano.netipodprices.com +ipodrip.caipodrocks.com.au  ipods.comipodshop.com.au ipodtouch.co ipodtouch.com +myipod.netoffrezdesipods.comsimplyipod.comwwwipodlounge.comimacsources.comlaunchpad.wang mac.wang +macbook.co +macbook.hk +macbook.tw macbook.wang macbookair.cn +cnmacbookair.co.krmacbookair.co.ukmacbookair.commacbookair.com.aumacbookair.com.cn +cnmacbookair.com.es macbookair.es macbookair.hk macbookair.kr macbookair.jpmacbookair.net macbookpro.comacbookpro.commacbookpro.com.aumacbookpro.net macbookpro.usmacbookpros.commacbooksale.comwwwmacbookair.comapple-watch.com.ru applewatch.hk applewatch.tv applewatch.twapplewatch.wangapplewatchedition.comapplewatchseries3.netapplewatchsport.comapplemusic.berlinapplemusic.comapplemusic.com.auapplemusic.hamburgapplemusic.wangapplemusicconnect.comapplemusicfestival.com musickit.netwwwapplemusic.comapple.comscoreresearch.com +apple.newsappleenews.comapplenews.berlinapplenews.hamburg applenews.tvapplenewsformat.com apple-pay.com apple-pay.rsapple-pay.wangapplepay.berlinapplepay.co.rsapplepay.com.twapplepay.hamburg applepay.hk applepay.info applepay.jp applepay.rs applepay.tvapplepaycash.cn +cnapplepaycash.com.cn +cnapplepaycash.netapplepaycash.tv!applepaymerchantsupplies.infoapplepaysupplies.berlinapplepaysupplies.cn +cnapplepaysupplies.com#applepaysupplies.com.cn +cnapplepaysupplies.infoapplepaysupplies.netapplepaysupplies.tvapplewallet.comapplewallet.tv +i-book.com +i-book.net ibook.co.nz  ibook.com ibook.eu  ibook.netibookpartner.comibooksauthor.com  iphoto.eu  iphoto.no  iphoto.se iphoto.wang  imovie.euimoviegallery.comimoviestage.comapplecare.berlin applecare.cc applecare.euapplecare.hamburgapplecare.wangappledarwin.comappledarwin.netdarwinsource.comdarwinsource.orgdarwinsourcecode.comappleaccount.netappleid-applemx.comappleid-applemx.usappleid-iclou.com appleid-uk.usappleid.berlin appleid.comappleid.hamburg +appleid.hk ids-apple.com myappleid.com appletv.com +appletv.fr appletv.wang appletv4.cn +cnappletv4.com.cn +cnappletvapp.appleappleone.audio appleone.blog appleone.chatappleone.cloud appleone.clubappleone.community appleone.filmappleone.guide appleone.hostappleone.space appleone.techappleone.website +shazam.com1to1computing.com.au1to1conference.com.au 5lml.com +a0pple.net aapl.twairport.brussels airport.com +airport.euairsupportapp.com airtunes.com airtunes.info airtunes.netalchemysynth.com  ap0le.com aple.com  apole.com +app0le.com +appl-e.com appl.com +appl4e.com  appla.comapple-darwin.comapple-darwin.netapple-darwin.org apple-dns.cn +cn apple-dns.comapple-dns.com.cn +cn apple-dns.netapple-enews.comapple-expo.com apple-expo.eu apple-hk.comapple-ibooks.cn +cn apple-inc.netapple-livephotoskit.com apple-maps.cn +cnapple-online.com apple-usa.netappleafrica.comappleantilles.comappleaustralia.comappleaustralia.com.auappleaustralia.net.au applebk.netapplecarbon.com applecard.tvapplecentar.co.rsapplecentar.rsapplecenter.cn +cnapplecenter.com.cn +cnapplecentre.com.auapplecentre.infoappleclub.com.hk applecom.comapplecomputer-imac.comapplecomputer.cn +cnapplecomputer.co.inapplecomputer.co.nzapplecomputer.com applecomputer.com.cn +cnapplecomputer.com.hkapplecomputer.com.twapplecomputer.huapplecomputer.krapplecomputerimac.comapplecomputerinc.infoapplecomputers.co.nzapplecoronavirus.com appledns.cn +cnappledns.com.cn +cn appleexpo.euappleexpo.infoapplefilmaker.comapplefilmmaker.comapplefinalcutproworld.comapplefinalcutproworld.netapplefinalcutproworld.orgapplehongkong.comapplehongkong.com.hkappleinclegal.comappleipodsettlement.comappleiservices.com applelink.comapplemagickeyboard.comapplemalaysia.com.myapplemasters.infoappleonline.comappleonline.net appleoriginalproductions.com +appleos.tvapplepencil.netapplepodcasts.comapplepremiumreseller.com.au applepremiumresellers.com.auapplereach.comapplereach.net apples-msk.ruapplescreensavers.comapplescript.infoappleshare.infoappleshop.co.uk applesiri.cn +cnapplesurveys.comappletaiwan.com appletips.net appleweb.net applexpo.net applezh.com  applf.com +applfe.com +applle.com  applw.comappmediagroup.com +appule.com  appye.com  apyle.com  beddit.tvbraeburncapital.com burstly.netburstlyrewards.com buyaapl.com buyaapl.net buyaple.com camelphat.comcamelspaceeffect.com +carbon.com catalina.hk cdn-apple.com  chomp.com +coreml.netdashwood360.comdesktopmovie.comdesktopmovie.netdesktopmovie.orgdesktopmovies.netdesktopmovies.orgdeveloper-advisor.comdevice-manager.usdigitalhub.comdiscussionsapple.com +dot-mac.de  dotmac.dedvdstudiopro.bizdvdstudiopro.comdvdstudiopro.infodvdstudiopro.netdvdstudiopro.orgdvdstudiopro.us +earpod.net ecgapp.com.cn +cn +ecgapp.netedu-research.org +emac.co.in emac.in  emagic.de +eworld.com faceid99.com faceid99.netfaceidglobal.com faceshift.cn +cn facetime.netfinalcutpro.comfind-apple.com firewire.cl firewire.eu geoport.com +homepod.cn +cn +hopstop.tv ichat.co.in idvd.eu  ikids.comilecture.co.nz ilife.eu ilife.gr +ilife.wang imessage.tv insidear.cn +cninsidemacintosh.comiosinthecar.comipa-iphone.net  ipple.com ischool.com itools.info  iwork.com iwork.se +iwork.wangjetfuelapp.comjetfuelapps.comlatticedata.com livephotos.cn +cnlivephotos.com.cn +cn livephotos.tvlojaiphone.com.br mac-mini.com mac.com +mac.com.au +mac.eu +mac.rs macappsto.re macboxset.com mach-os.com mach-os.net +machos.net macintosh.eumacintoshsoftware.com macmini.com macos.com.aumacossierra.com macosx.infomacosxlion.com macpazar.com macreach.com macreach.net mobileme.dkmr-apple.com.tw mzstatic.com +newton.com next.com overapple.com powerbook.eupullstring.netquatrowireless.com quicktime.cc quicktime.comquicktime.com.au quicktime.eu quicktime.net quicktime.tvreform-apple.comservices-apple.net siri.com spektral.cc texture.comthinkdifferent.us +touchid.tv touchid.wangtracking-location.comtruedepth3d.com tryrating.comwebobjects.co.uk webobjects.de webobjects.euwebobjects.net wuxiapple.com wwapple.netwww-sms-apple.com wwwapple.com wwwapple.net wwwlapple.comxn--czrs0t4phtr3a.cnxn--fiqs8sxootzz.cn xn--fiqs8sxootzz.xn--hxt814e!xn--gtvq61aiijy0b.xn--hxt814exn--gtvz22d.wangxn--gtvz22d.xn--hxt814exn--hxtr4rozx.xn--czr694b xn--kput3imi374g.xn--hxt814e#xn--ohq11k7pl25iyo8a.cn +cn xn--ruq8a011kt6y.xn--hxt814e, adcdownload.apple.com.akadns.net +cn!adcdownload.apple.com +cn."amp-api-search-edge.apps.apple.com +cn"amp-api.apps.apple.com +cn aod.itunes.apple.com +cn#api-edge.apps.apple.com +cnappldnld.apple.com +cn"appldnld.g.aaplimg.com +cnapps.apple.com +cnapps.mzstatic.com +cn(apptrailers.itunes.apple.com +cn bag.itunes.apple.com +cn'bookkeeper.itunes.apple.com +cnbooks.apple.com +cn!cds-cdn.v.aaplimg.com +cn$cds.apple.com.akadns.net +cn cds.apple.com +cncl2-cn.apple.com +cn<0cl2.apple.com.edgekey.net.globalredir.akadns.net +cncl4-cn.apple.com +cn'client-api.itunes.apple.com +cn+clientflow.apple.com.akadns.net +cn clientflow.apple.com +cn cma.itunes.apple.com +cn."configuration.apple.com.akadns.net +cn#configuration.apple.com +cn!communities.apple.com +cncstat.apple.com +cn."dd-cdn.origin-apple.com.akadns.net +cn(discussionschinese.apple.com +cn(download.developer.apple.com +cnfides-pol.apple.com +cngs-loc-cn.apple.com +cngs-loc.apple.com +cn%gsp10-ssl-cn.ls.apple.com +cn!gsp11-cn.ls.apple.com +cn!gsp12-cn.ls.apple.com +cn!gsp13-cn.ls.apple.com +cnC7gsp4-cn.ls.apple.com.edgekey.net.globalredir.akadns.net +cn, gsp4-cn.ls.apple.com.edgekey.net +cn gsp4-cn.ls.apple.com +cn gsp5-cn.ls.apple.com +cn(gspe11-2-cn-ssl.ls.apple.com +cn&gspe12-cn-ssl.ls.apple.com +cn&gspe19-cn-ssl.ls.apple.com +cn-!gspe19-cn.ls-apple.com.akadns.net +cn"gspe19-cn.ls.apple.com +cn#gspe21-ssl.ls.apple.com +cngspe21.ls.apple.com +cn#gspe35-ssl.ls.apple.com +cn&gspe85-cn-ssl.ls.apple.com +cniadsdk.apple.com +cn, icloud-cdn.icloud.com.akadns.net +cn icloud.cdn-apple.com +cn'images.apple.com.akadns.net +cn?3images.apple.com.edgekey.net.globalredir.akadns.net +cnimages.apple.com +cn3'init-p01md-lb.push-apple.com.akadns.net +cn init-p01md.apple.com +cn3'init-p01st-lb.push-apple.com.akadns.net +cn%init-p01st.push.apple.com +cn3'init-s01st-lb.push-apple.com.akadns.net +cn%init-s01st.push.apple.com +cn!init.itunes.apple.com +cn$iosapps.itunes.apple.com +cn(iosapps.itunes.g.aaplimg.com +cniphone-ld.apple.com +cn'itunes-apple.com.akadns.net +cnitunes.apple.com +cn#itunesconnect.apple.com +cn"js-cdn.music.apple.com +cn km.support.apple.com +cnmaps.apple.com +cn)mesu-cdn.apple.com.akadns.net +cn+mesu-china.apple.com.akadns.net +cnmesu.apple.com +cnmusic.apple.com +cn(ocsp-lb.apple.com.akadns.net +cnocsp.apple.com +cnoscdn.apple.com +cn-!oscdn.origin-apple.com.akadns.net +cn$osxapps.itunes.apple.com +cnpancake.apple.com +cn, pancake.cdn-apple.com.akadns.net +cnpd.itunes.apple.com +cnphobos.apple.com +cn!play.itunes.apple.com +cn1%prod-support.apple-support.akadns.net +cn$se-edge.itunes.apple.com +cn se2.itunes.apple.com +cn#search.itunes.apple.com +cn1%sf-api-token-service.itunes.apple.com +cnsp.itunes.apple.com +cn4(stocks-sparkline-lb.apple.com.akadns.net +cn&stocks-sparkline.apple.com +cn>2store.apple.com.edgekey.net.globalredir.akadns.net +cn'store.apple.com.edgekey.net +cnstore.apple.com +cn2&store.storeimages.apple.com.akadns.net +cn+store.storeimages.cdn-apple.com +cn+streamingaudio.itunes.apple.com +cnsu.itunes.apple.com +cn2&support-china.apple-support.akadns.net +cnsupport.apple.com +cn."swcatalog-cdn.apple.com.akadns.net +cnswcatalog.apple.com +cnswcdn.apple.com +cnswcdn.g.aaplimg.com +cn'swdist.apple.com.akadns.net +cnswdist.apple.com +cn+swscan-cdn.apple.com.akadns.net +cnswscan.apple.com +cn!sync.itunes.apple.com +cn1%updates-http.cdn-apple.com.akadns.net +cn&updates-http.cdn-apple.com +cn upp.itunes.apple.com +cnvalid.apple.com +cn-!valid.origin-apple.com.akadns.net +cn"weather-data.apple.com +cn<0www.apple.com.edgekey.net.globalredir.akadns.net +cn%www.apple.com.edgekey.net +cn www.apple.com +cn#^a[1-5]\.mzstatic\.com$ +cn0$^cdn(-cn)?[1-4]?\.apple-mapkit\.com$ +cn9-^cl[1-5]-cdn\.origin-apple\.com\.akadns\.net$ +cn!^cl[1-5]\.apple\.com$ +cn+^is[1-5](-ssl)?\.mzstatic\.com$ +cn$^s[1-5]?\.mzstatic\.com$ +cnapple.com.akadns.net%!courier-push-apple.com.akadns.netpush-apple.com.akadns.net asus.com asus.com.cn +cn atlassian.com bitbucket.org statuspage.io +trello.com trellocdn.comaccbusiness.com +atandt.comatt-bundles.com att-japan.com att-mail.comatt-promotions.com att-rsvp.comatt.cn +cn att.com att.jobs att.net +att.tvattalascom.comattbelieves.comattbusiness.net attcenter.comattcollaborate.com +attcorp.cn +cnattexperts.com attglobal.netattinnovationspace.comattinternetservice.com +attjoy.comattnetclient.comattonlineoffers.com attproxy.comattpublicpolicy.comattpurchasing.comattsavings.comattspecial.com +attssl.comattstadium.comattsuppliers.com atttvnow.comattuverseoffers.comattuverseonline.com attvoip.com attwifi.comattwirelessinternet.comattwirelessonline.comattwirelesssolutions.com bellsouth.net +budatt.com +cobatt.com currently.com currently.netdirectvbusinessmarket.comenterprisepaging.com itcanwait.com mymmode.comnaturalvoices.comnettyinternet.comopenapiplatform.comopenapiservice.compatentgold.netpaygonline.comraponlinereview.com signalbar.comsundayready.com synaptic.netthanksloyalty.com tvpromise.com +uverse.comwebhosting.com att-idns.net +attdns.com +attdns.netna-att-idns.netaudiencenetwork.comaudiencenetwork.tvcabletvdirectv.com dierectv.com +dirctv.com direcpath.com direcpath.netdirecttv-deals.tvdirecttv-dish.com dkrecttv.com directtv.netdirecttvdeals.tvdirecttvreviews.comdirectv-4-you.comdirectv-newyork.com directv.comdirectvadsales.comdirectvatlantaga.comdirectvboston.comdirectvbundles.comdirectvbusiness.comdirectvcincinnatioh.comdirectvcinema.comdirectvconnect.comdirectvcookevilletn.comdirectvcrossvilletn.comdirectvdealer.comdirectvdeals.comdirectvdealsnow.com directvdsl.tvdirectvforhotels.comdirectvgrandslam.comdirectvhouston.comdirectvinternet.comdirectvkentucky.comdirectvlebanontn.comdirectvlosangeles.comdirectvmetropolisil.comdirectvmonitoring.comdirectvmurfreesborotn.comdirectvnewhampshire.comdirectvnow.comdirectvoffercodes.comdirectvonline.comdirectvplans.comdirectvpomise.comdirectvpromise.comdirectvpromotions.comdirectvrebate.comdirectvrichmond.comdirectvsavings.comdirectvsports.comdirectvsundayticket.com direectv.com +diretv.comdtv2009offers.comfreedirecttvspecial.com getdirect.tv hddirectv.com le-direct.tvmydirectgroove.commydirectvchannels.comredzonechannel.com txdirectv.com  xandr.combandwagonhost.com bwh1.net bwh8.net  bwh88.net canon c-ij.com canon-cee.comcanon-cmos-sensors.com canon-cna.comcanon-ebm.com.hkcanon-emea.comcanon-emirates.aecanon-europa.comcanon-europe.com canon-me.com canon-ois.qacanon-se.com.tw canon.am canon.at canon.az canon.ba canon.be canon.bg canon.ca canon.chcanon.cn +cn canon.co.il canon.co.uk canon.co.za  canon.com canon.com.al canon.com.au canon.com.by canon.com.cn +cn canon.com.cy canon.com.hk canon.com.mk canon.com.mt canon.com.my canon.com.tr canon.com.tw canon.cz canon.de canon.dk canon.ee canon.es canon.fi canon.fr canon.ge canon.gr canon.hr canon.hu canon.ie canon.it canon.kz canon.lt canon.lu canon.lv canon.me  canon.net canon.nl canon.no canon.pl canon.pt canon.ro canon.rs canon.ru canon.se canon.si canon.sk canon.tj canon.ua canon.uzcanonfoundation.orgcanonproprinters.com webex.ca webex.co.in webex.co.it webex.co.jp webex.co.kr webex.co.nz webex.co.uk  webex.com webex.com.au webex.com.br webex.com.cn +cn webex.com.hk webex.com.mx webex.de webex.es webex.fr ciscoacademynetriders.comcciernslabs.comcciesecuritylabs.comccievoicelabs.com  ccna5.netcisco-returns.comcisco-warrantyfinder.comcisco.cn +cn  cisco.com cisco.com.cn +cn +cisco.mobiciscoccservice.comciscoconnectcloud.comciscoconnectcloud.netciscoconnectcloud.orgciscocontest.comciscoerate.com ciscofax.comciscoinvestments.comciscojabbervideo.netciscokinetic.comciscoknowledgenetwork.comciscolearningsociety.orgciscolearningsystem.com ciscolive.comcisconetspace.comcisconetspace.infocisconetspace.netcisconetapp.comciscopartnermarketing.comciscopowercube.comciscoprice.comciscoresearch.comciscosoftware.com ciscospark.caciscospark.com ciscospark.jpciscotaccc.com ciscotr.com ciscoturk.netciscovideo.comciscowebseminars.com cloudlock.com cloupia.com cloupia.netconnect-in-canada.comcoreoptics.net cs.co +devm2m.com dnaspaces.io flipshare.comgpstheseries.com inlethd.cominternetofeverything.com ioe.com kscisco.com m2m.com +mcisco.commediafiles-cisco.com metacloud.com mindmeld.commultiplydiversity.commyciscobenefits.com  mysdn.com +mysdn.info  mysdn.net netacad.com netacad.netnetwork-auth.cn +cnobservable.net obsrvbl.com parstream.com parstream.net parstream.orgservices-exchange.comstatic-cisco.comtandberg-china.com tandberg.com +versly.comvideochampion.com virtuata.comwballiance.com!whyiwantciscotelepresence.com wifi-mx.comyoutubecisco.comapp-dynamics.comappdynamics.co.ukappdynamics.comappdynamics.deappdynamics.frappdynamics.infoappdynamics.jpappdynamics.org +mearki.com meraki-go.com  meraki.hk merakigo.com +tail-f.com  tailf.comcisco.evergage.comciscolivehls-i.akamaihd.net clco.cc +cloudc.one cloudcone.com cloudcone.net +cfblob.comcloudchoose.comcloudvolumes.com +cmpaas.com +cpedge.comcrit-staging.comexperience-vmware.com gemfire.netgeodesummit.com getboxer.com gitstar.com gitstar.net gopivotal.net greenplum.net hwslabs.com immidio.comitfromtheinside.comlatamvmwareforum.compivotalinitiative.comsnapvolumes.com ssdevrd.com vcanedge.com vcloudair.net vfabric.netvidmpreview.com +virsto.com +virsto.net vmglobal.net +vmmark.comvmtestdrive.com vmw.comvmware-cloudmanagement.comvmware-techcenter.comvmware20mosaic.comvmwareausnews.com!vmwarecertificationvideos.comvmwarecloud.comvmwaredemandcenter.comvmwareemeablog.comvmwaregrid.comvmwarehorizon.comvmwareidentity.comvmwarelearning.comvmwarelearningplatform.comvmwarestuff.comvmwareusergroupstore.comvmwareviewpoint.com vmwarevmc.com vmwdemo.com vmwgcomms.comvmwhorizonair.comvmwidm-ads.com +vmwidm.comvmwlabconnect.comvmwlearningplatform.com vmworld.comvmworld2010.comvmworld2013.comvmwsalesrewards.comvmwservices.com +vnware.netwhychoosehorizon.comwhychooseview.comwhychoosevmwareeuc.comwindowsuem.comworkspaceair.com xlstudio.comavinetworks.com +badaas.com bitnami.combitnamiapp.combitnamistudio.comdockerizer.comcloudcredibility.comcloudhealthtech.com cloudlive.comkubeacademy.com kubeapps.com +nyansa.com velocloud.com gopivotal.com heptio.cn +cn +heptio.com aliveipc.com aliveitsm.comaliveprofiler.com alivercm.comaliverewind.com alivertsm.com alivevm.com alivevmax.com alivevue.com vsphere.com vsphere.net air-watch.comairwatchexpress.comairwatchqa.com +getws1.com getwsone.comwhatisairwatch.comwhatisworkspaceone.comworkspaceone.comvmware.tt.omtrdc.netdelldell-brand.com dell.com dellcdn.comaccountkit.comatscaleconference.com botorch.org +buck.build buckbuild.comcomponentkit.org draftjs.org +f8.comfacebookappcenter.infofacebookappcenter.netfacebookappcenter.orgfacebookconnect.comfacebookdevelopergarage.comfaciometrics.com fasttext.cc fbf8.com fbinfer.com fblitho.com fbredex.com +fbrell.com flow.dev flow.org flowtype.org frescolib.org hacklang.org hhvm.commakeitopen.com mcrouter.net mcrouter.orgmessengerdevelopers.com +ogp.meopengraphprotocol.comopengraphprotocol.org  parse.com pyrobot.org  react.com reactjs.com reactjs.org recoiljs.org rocksdb.com rocksdb.net rocksdb.orgyogalayout.comdevelopers.facebook.com!achat-followers-instagram.com#acheter-followers-instagram.com$ acheterdesfollowersinstagram.com!acheterfollowersinstagram.combookstagram.comcarstagram.comcdninstagram.comchickstagram.com ig.me  igcdn.com igsonar.com igtv.com imstagram.com imtagram.cominstaadder.cominstachecker.cominstafallow.cominstafollower.cominstagainer.com instagda.com instagify.cominstagmania.com instagor.cominstagram-brand.cominstagram-engineering.cominstagram-help.cominstagram-press.cominstagram-press.net instagram.cominstagramci.cominstagramcn.cominstagramdi.cominstagramhashtags.netinstagramhilecim.cominstagramhilesi.orginstagramium.cominstagramizlenme.cominstagramkusu.cominstagramlogin.cominstagramm.cominstagramn.cominstagrampartners.cominstagramphoto.cominstagramq.cominstagramsepeti.cominstagramtakipcisatinal.netinstagramtakiphilesi.cominstagramtips.cominstagramtr.com instagran.cominstagranm.com instagrem.com instagrm.cominstagtram.com instagy.cominstamgram.cominstangram.cominstanttelegram.cominstaplayer.net instastyle.tv instgram.com intagram.com intagrm.com intgram.comkingstagram.comlnstagram-help.comtheinstagramhack.comoninstagram.comonline-instagram.comonlineinstagram.comweb-instagram.netwwwinstagram.comfbmessenger.comm.me messenger.com +nbabot.net binoculus.com buyoculus.com ocul.usoculus-china.com +oculus.comoculus2014.com oculus3d.comoculusblog.comoculusbrand.comoculuscasino.net oculuscdn.comoculusconnect.comoculusdiving.comoculusforbusiness.comoculusrift.com oculusvr.compowersunitedvr.com wa.mewhatsapp-plus.infowhatsapp-plus.mewhatsapp-plus.net whatsapp.cc whatsapp.com whatsapp.info whatsapp.net whatsapp.org whatsapp.tvwhatsappbrand.comaboutfacebook.com accessfacebookfromschool.com acebooik.com acebook.comadvancediddetection.comaskfacebook.netaskfacebook.org +atdmt2.com atlasdmt.comatlasonepoint.combuyingfacebooklikes.comcareersatfb.comcelebgramme.comchina-facebook.com click-url.comcomo-hackearfacebook.comcrowdtangle.com dacebook.comdlfacebook.comdotfacebook.comdotfacebook.netexpresswifi.com faacebok.com faacebook.com faasbook.com facbebook.com facbeok.com +facboo.com facbook.com facbool.com facboox.com faccebook.comfaccebookk.com facdbook.com facdebook.com face-book.com faceabook.com facebboc.com facebbook.comfacebboook.com facebcook.com facebdok.com facebgook.com facebhook.com facebkkk.com facebo-ok.com faceboak.com facebock.com facebocke.com facebof.com faceboik.com facebok.comfacebokbook.com facebokc.com facebokk.com facebokok.com faceboks.com facebol.com facebolk.com facebomok.com faceboo.com facebooa.com faceboob.comfaceboobok.com facebooc.com faceboock.com facebood.com facebooe.com faceboof.com facebooi.com facebooik.com facebooik.org facebooj.comfacebook-corp.comfacebook-covid-19.comfacebook-ebook.comfacebook-forum.comfacebook-inc.comfacebook-login.comfacebook-newsroom.comfacebook-newsroom.orgfacebook-pmdcenter.comfacebook-pmdcenter.netfacebook-pmdcenter.orgfacebook-privacy.comfacebook-program.comfacebook-studio.comfacebook-support.orgfacebook-texas-holdem.comfacebook-texas-holdem.net facebook.br facebook.ca facebook.cc facebook.comfacebook.design facebook.net facebook.hu facebook.in fecebook.net facebook.nl facebook.org facebook.se facebook.shop facebook.tv facebook.us facebook.wangfacebook123.orgfacebook30.comfacebook30.netfacebook30.orgfacebook4business.comfacebookads.com"facebookadvertisingsecrets.comfacebookatschool.comfacebookawards.comfacebookblueprint.netfacebookbrand.comfacebookbrand.net3/facebookcanadianelectionintegrityinitiative.comfacebookcareer.comfacebookcheats.comfacebookck.comfacebookclub.comfacebookcom.comfacebookconsultant.orgfacebookcoronavirus.comfacebookcovers.orgfacebookcredits.infofacebookdating.netfacebookdusexe.orgfacebookemail.comfacebookenespanol.comfacebookexchange.comfacebookexchange.netfacebookfacebook.comfacebookflow.comfacebookgames.comfacebookgraphsearch.comfacebookgraphsearch.infofacebookgroups.comfacebookhome.ccfacebookhome.comfacebookhome.infofacebookhub.com facebooki.comfacebookinc.comfacebookland.comfacebooklikeexchange.comfacebooklive.comfacebooklivestaging.netfacebooklivestaging.orgfacebooklogin.comfacebooklogin.infofacebookloginhelp.netfacebooklogs.comfacebookmail.comfacebookmail.tvfacebookmanager.infofacebookmarketing.info facebookmarketingpartner.com!facebookmarketingpartners.comfacebookmobile.comfacebookmsn.comfacebooknews.comfacebooknfl.comfacebooknude.comfacebookofsex.comfacebookook.comfacebookpaper.comfacebookpay.comfacebookphonenumber.netfacebookphoto.comfacebookphotos.comfacebookpmdcenter.comfacebookpoke.netfacebookpoke.orgfacebookpoker.infofacebookpokerchips.infofacebookporn.netfacebookporn.orgfacebookporno.netfacebookportal.com facebooks.comfacebooksafety.comfacebooksecurity.netfacebookshop.comfacebooksignup.netfacebooksite.netfacebookstories.comfacebookstudios.netfacebookstudios.orgfacebooksupplier.comfacebooksuppliers.comfacebookswagemea.comfacebookswagstore.comfacebooksz.comfacebookthreads.netfacebooktv.netfacebooktv.orgfacebookvacation.com facebookw.comfacebookworld.com facebool.com facebool.info facebooll.com faceboom.com faceboon.com faceboonk.comfaceboooik.com faceboook.com faceboop.com faceboot.com faceboox.com facebopk.com facebpook.com facebuk.com facebuok.com facebvook.com facebyook.com facebzook.comfacecbgook.com facecbook.com facecbook.org facecook.com facecook.org facedbook.com faceebok.com faceebook.com faceebot.com facegbok.com facegbook.com faceobk.com faceobok.com faceobook.com faceook.comfacerbooik.com facerbook.com facesbooc.comfacesounds.com facetook.com facevbook.com facewbook.co facewook.comfacfacebook.com facfebook.com fackebook.com facnbook.com facrbook.com facvebook.com facwebook.com facxebook.com fadebook.com +faebok.com faebook.com faebookc.com faeboook.com faecebok.com faesebook.comfafacebook.com faicbooc.com fasebokk.com fasebook.com faseboox.com favebook.com faycbok.com +fb.careers +fb.com fb.me fbacebook.com fbbmarket.comfbboostyourbusiness.com  fbcdn.com  fbcdn.netfbfeedback.com +fbhome.com fbidb.io  fbinc.comfbinnovation.comfbmarketing.com  fbreg.com +fbrpms.com  fbsbx.com  fbsbx.netfbsupport-covid.netfbthirdpartypixel.comfbthirdpartypixel.netfbthirdpartypixel.org  fburl.comfbworkmail.com fcacebook.com fcaebook.com fcebook.com fcebookk.comfcfacebook.comfdacebook.info feacboo.com feacbook.com feacbooke.com feacebook.com fecbbok.com fecbooc.com fecbook.com feceboock.com feceboox.com fececbook.com  feook.com ferabook.com fescebook.com fesebook.com ffacebook.com fgacebook.com ficeboock.com fmcebook.com fnacebook.com fosebook.com fpacebook.com fqcebook.com fracebook.com  freeb.comfreebasics.comfreebasics.net +freebs.comfreefacebook.comfreefacebook.netfreefacebookads.netfreefblikes.comfreindfeed.comfriendbook.info friendfed.comfriendfeed-api.comfriendfeed-media.comfriendfeed.comfriendfeedmedia.com fsacebok.com fscebook.comfundraisingwithfacebook.comfunnyfacebook.orgfutureofbusinesssurvey.org gacebook.com gameroom.comgfacecbook.com +groups.comhackerfacebook.comhackfacebook.comhackfacebookid.comhifacebook.info!howtohackfacebook-account.comhsfacebook.comhttpfacebook.comhttpsfacebook.comhttpwwwfacebook.com i.org internet.org klik.me liverail.com liverail.tvlogin-account.netmarkzuckerberg.commidentsolutions.commobilefacebook.commoneywithfacebook.com myfbfans.com newsfeed.com nextstop.comonline-deals.netopencreate.orgreachtheworldonfacebook.com rocksdb.orgshopfacebook.comsportsfacebook.comsportstream.comsupportfacebook.comterragraph.comthefacebook.comthefacebook.net thefind.comtoplayerserver.comviewpointsfromfacebook.comwhyfacebook.com worldhack.comwww-facebook.comwwwfacebok.comwwwfacebook.comwwwmfacebook.comzuckerberg.comzuckerberg.netfacebookwork.com +redkix.com workplace.comworkplaceusecases.comfbcdn-a.akamaihd.net  aorus.com aoruszone.cn +cn gigabyte.cn +cn gigabyte.comgigabyte2.azureedge.netsa78gs.wpc.edgecastcdn.net"sni1dcb6gl.wpc.edgecastcdn.net godaddy.comx.co godaddy android.comandroidify.com blogspot.ae blogspot.al blogspot.am blogspot.ba blogspot.be blogspot.bg blogspot.bj blogspot.ca blogspot.cf blogspot.ch blogspot.clblogspot.co.atblogspot.co.idblogspot.co.ilblogspot.co.keblogspot.co.nzblogspot.co.ukblogspot.co.za blogspot.comblogspot.com.arblogspot.com.aublogspot.com.brblogspot.com.byblogspot.com.coblogspot.com.cyblogspot.com.eeblogspot.com.egblogspot.com.esblogspot.com.mtblogspot.com.ngblogspot.com.trblogspot.com.uy blogspot.cv blogspot.cz blogspot.de blogspot.dk blogspot.fi blogspot.fr blogspot.gr blogspot.hk blogspot.hr blogspot.hu blogspot.ie blogspot.in blogspot.is blogspot.it blogspot.jp blogspot.kr blogspot.li blogspot.lt blogspot.lu blogspot.md blogspot.mk blogspot.mx blogspot.my blogspot.nl blogspot.no blogspot.pe blogspot.pt blogspot.qa blogspot.re blogspot.ro blogspot.rs blogspot.ru blogspot.se blogspot.sg blogspot.si blogspot.sk blogspot.sn blogspot.td blogspot.tw blogspot.ug blogspot.vn dart.dev dartlang.org dartpad.dev fastlane.cifastlane.tools flutter.devflutterapp.com go-lang.com go-lang.net go-lang.org +go.dev  godoc.org +golang.com +golang.net +golang.org2mdn.net +ads admob.com +ads adsense.com +ads'adsensecustomsearchads.com +ads%adsenseformobileapps.com +ads$advertisercommunity.com +ads%advertiserscommunity.com +ads"adwords-community.com +ads adwords.com +adsadwordsexpress.com +ads app-measurement.com +ads&clickserver.googleads.com +adsdoubleclick.com +adsdoubleclick.net +ads!google-analytics.com +adsgoogleadapis.com +ads!googleadservices.com +ads googleanalytics.com +adsgoogleoptimize.com +ads"googlesyndication.com +ads!googletagmanager.com +ads"googletagservices.com +ads'googletraveladservices.com +ads +urchin.com +ads>1^adservice\.google\.([a-z]{2}|com?)(\.[a-z]{2})?$ +adscharlestonroadregistry.comregistry.google get.app get.dev get.how get.page iam.soyxn--p8j9a0d9c9a.xn--q9jyb4cscholar.google.aescholar.google.atscholar.google.bescholar.google.bgscholar.google.cascholar.google.catscholar.google.chscholar.google.clscholar.google.cnscholar.google.co.crscholar.google.co.idscholar.google.co.ilscholar.google.co.inscholar.google.co.jpscholar.google.co.krscholar.google.co.nzscholar.google.co.thscholar.google.co.ukscholar.google.co.vescholar.google.co.zascholar.google.comscholar.google.com.arscholar.google.com.auscholar.google.com.boscholar.google.com.brscholar.google.com.coscholar.google.com.cuscholar.google.com.doscholar.google.com.ecscholar.google.com.egscholar.google.com.gtscholar.google.com.hkscholar.google.com.lyscholar.google.com.mxscholar.google.com.myscholar.google.com.nischolar.google.com.pascholar.google.com.pescholar.google.com.phscholar.google.com.pkscholar.google.com.prscholar.google.com.pyscholar.google.com.sgscholar.google.com.svscholar.google.com.trscholar.google.com.twscholar.google.com.uascholar.google.com.uyscholar.google.com.vnscholar.google.czscholar.google.descholar.google.dkscholar.google.esscholar.google.fischolar.google.frscholar.google.grscholar.google.hnscholar.google.hrscholar.google.huscholar.google.isscholar.google.itscholar.google.lischolar.google.ltscholar.google.luscholar.google.lvscholar.google.nlscholar.google.noscholar.google.plscholar.google.ptscholar.google.roscholar.google.ruscholar.google.sescholar.google.sischolar.google.skpolymer-project.orgpolymerproject.org +v8.dev v8project.org youtubeggpht.cn +cn  ggpht.comgooglevideo.comwithyoutube.com youtu.beyoutube-nocookie.com +youtube.ae +youtube.al +youtube.am +youtube.at +youtube.az +youtube.ba +youtube.be +youtube.bg +youtube.bh +youtube.bo +youtube.by +youtube.ca youtube.cat +youtube.ch +youtube.cl +youtube.co youtube.co.ae youtube.co.at youtube.co.cr youtube.co.hu youtube.co.id youtube.co.il youtube.co.in youtube.co.jp youtube.co.ke youtube.co.kr youtube.co.ma youtube.co.nz youtube.co.th youtube.co.tz youtube.co.ug youtube.co.uk youtube.co.ve youtube.co.za youtube.co.zw youtube.comyoutube.com.aryoutube.com.auyoutube.com.azyoutube.com.bdyoutube.com.bhyoutube.com.boyoutube.com.bryoutube.com.byyoutube.com.coyoutube.com.doyoutube.com.ecyoutube.com.eeyoutube.com.egyoutube.com.esyoutube.com.ghyoutube.com.gryoutube.com.gtyoutube.com.hkyoutube.com.hnyoutube.com.hryoutube.com.jmyoutube.com.joyoutube.com.kwyoutube.com.lbyoutube.com.lvyoutube.com.lyyoutube.com.mkyoutube.com.mtyoutube.com.mxyoutube.com.myyoutube.com.ngyoutube.com.niyoutube.com.omyoutube.com.payoutube.com.peyoutube.com.phyoutube.com.pkyoutube.com.ptyoutube.com.pyyoutube.com.qayoutube.com.royoutube.com.sayoutube.com.sgyoutube.com.svyoutube.com.tnyoutube.com.tryoutube.com.twyoutube.com.uayoutube.com.uyyoutube.com.ve +youtube.cr +youtube.cz +youtube.de +youtube.dk +youtube.ee +youtube.es +youtube.fi +youtube.fr +youtube.ge +youtube.gr +youtube.gt +youtube.hk +youtube.hr +youtube.hu +youtube.ie +youtube.in +youtube.iq +youtube.is +youtube.it +youtube.jo +youtube.jp +youtube.kr +youtube.kz +youtube.la +youtube.lk +youtube.lt +youtube.lu +youtube.lv +youtube.ly +youtube.ma +youtube.md +youtube.me +youtube.mk +youtube.mn +youtube.mx +youtube.my +youtube.ng +youtube.ni +youtube.nl +youtube.no +youtube.pa +youtube.pe +youtube.ph +youtube.pk +youtube.pl +youtube.pr +youtube.pt +youtube.qa +youtube.ro +youtube.rs +youtube.ru +youtube.sa +youtube.se +youtube.sg +youtube.si +youtube.sk +youtube.sn youtube.soy +youtube.sv +youtube.tn +youtube.tv +youtube.ua +youtube.ug +youtube.uy +youtube.vnyoutubeeducation.comyoutubefanfest.comyoutubegaming.comyoutubego.co.idyoutubego.co.in youtubego.comyoutubego.com.br youtubego.id youtubego.inyoutubei.googleapis.comyoutubekids.comyoutubemobilesupport.com yt.be  ytimg.comand +chromedclkgbizgle gmailgoogoog +googleguge hangout nexus xn--qcka1pmc  google.ad  google.ae  google.al  google.am  google.as  google.at  google.az  google.ba  google.be  google.bf  google.bg  google.bi  google.bj  google.bs  google.bt  google.by  google.ca +google.cat  google.cd  google.cf  google.cg  google.ch  google.ci  google.cl  google.cm google.cn +cn google.co.ao google.co.bw google.co.ck google.co.cr google.co.id google.co.il google.co.in google.co.jp google.co.ke google.co.kr google.co.ls google.co.ma google.co.mz google.co.nz google.co.th google.co.tz google.co.ug google.co.uk google.co.uz google.co.ve google.co.vi google.co.za google.co.zm google.co.zw +google.com google.com.af google.com.ag google.com.ai google.com.ar google.com.au google.com.bd google.com.bh google.com.bn google.com.bo google.com.br google.com.bz google.com.co google.com.cu google.com.cy google.com.do google.com.ec google.com.eg google.com.et google.com.fj google.com.gh google.com.gi google.com.gt google.com.hk google.com.jm google.com.kh google.com.kw google.com.lb google.com.ly google.com.mm google.com.mt google.com.mx google.com.my google.com.na google.com.ng google.com.ni google.com.np google.com.om google.com.pa google.com.pe google.com.pg google.com.ph google.com.pk google.com.pr google.com.py google.com.qa google.com.sa google.com.sb google.com.sg google.com.sl google.com.sv google.com.tj google.com.tr google.com.tw google.com.ua google.com.uy google.com.vc google.com.vn  google.cv  google.cz  google.de  google.dj  google.dk  google.dm  google.dz  google.ee  google.es  google.fi  google.fm  google.fr  google.ga  google.ge  google.gg  google.gl  google.gm  google.gr  google.gy  google.hn  google.hr  google.ht  google.hu  google.ie  google.im  google.iq  google.is  google.it  google.je  google.jo  google.kg  google.ki  google.kz  google.la  google.li  google.lk  google.lt  google.lu  google.lv  google.md  google.me  google.mg  google.mk  google.ml  google.mn  google.ms  google.mu  google.mv  google.mw  google.ne  google.nl  google.no  google.nr  google.nu  google.pl  google.pn  google.ps  google.pt  google.ro  google.rs  google.ru  google.rw  google.sc  google.se  google.sh  google.si  google.sk  google.sm  google.sn  google.so  google.sr  google.st  google.td  google.tg  google.tl  google.tm  google.tn  google.to  google.tt  google.vg  google.vu  google.ws 0emm.com  1e100.net  1ucrs.com +466453.com abc.xyz adgoogle.net +admeld.comangulardart.org +api.ai +apigee.com appbridge.ca appbridge.io appbridge.it appspot.com +apture.com area120.com +asp-cc.com autodraw.com bandpage.combaselinestudy.combaselinestudy.org bazel.build bdn.devbeatthatquote.com  blink.org blogblog.com blogger.combrocaproject.com +brotli.org bumpshare.com +bumptop.ca bumptop.com bumptop.net bumptop.org bumptunes.comcampuslondon.com certificate-transparency.org +chrome.comchromebook.comchromecast.com chromeos.dev chromium.orgchronicle.securitychroniclesec.comcloudburstresearch.comcloudfunctions.netcloudrobotics.comcobrasearch.com codespot.com conscrypt.com conscrypt.orgcookiechoices.org  coova.com  coova.net  coova.orgcrossmediapanel.com crr.com  cs4hs.comdartsearch.netdataliberation.org  debug.comdebugproject.com deepmind.comdevsitetest.howdialogflow.comdigitalassetlinks.org episodic.comfeedburner.com +fflick.comfinanceleadsonline.comfirebaseapp.comfirebaseio.com +foofle.com froogle.com fuchsia.dev  g-tun.comg.cn +cng.co g.dev +g.page gateway.devgerritcodereview.comgetbumptop.com ggoogle.com gipscorp.com gkecnapps.cn +cn globaledu.org  gmail.com gmodules.com  gogle.com +gogole.comgonglchuangl.net +goo.gl +googel.com +googil.com  googl.comgoogle-syndication.com google.berlin +google.dev +google.net +google.orggoogle.ventures"googleacquisitionmigration.com googleapis.cn +cngoogleapis.comgoogleapps.comgooglearth.comgoogleblog.com googlebot.comgooglecapital.comgooglecert.netgooglecnapps.cn +cngooglecode.comgooglecommerce.comgooglecompare.co.ukgoogledanmark.comgoogledomains.comgoogledrive.com googlee.comgoogleearth.comgooglefiber.netgooglefinland.comgooglemail.comgooglemaps.comgooglepagecreator.comgooglephotos.comgoogleplay.comgoogleplus.comgooglesource.comgooglestore.comgooglesverige.comgoogleusercontent.comgoogleventures.com +googlr.com +goolge.com gooogle.com gridaware.app gsrc.io +gstatic.cn +cn gstatic.comgstaticcnapps.cn +cn +gsuite.com +gv.com gvt0.com gvt1.com gvt2.com gvt3.com gvt5.com gvt6.com gvt7.com gvt9.comhdrplusdata.org hindiweb.comhowtogetmo.co.ukhtml5rocks.com hwgo.comiamremarkable.org igoogle.com impermium.com +j2objc.orgjibemobile.com keyhole.comkeytransparency.comkeytransparency.fookeytransparency.org lanternal.com like.commadewithcode.com material.io mdialog.com meet.newmfg-inspector.commobileview.pagemoodstocks.com near.by nest.com nomulus.foo +oauthz.com on.here on2.comonefifteen.netonefifteen.orgoneworldmanystories.com openthread.io openweave.io orbitera.com  page.linkpagespeedmobilizer.com pageview.mobi panoramio.compartylikeits1986.orgpaxlicense.org +picasa.com picasaweb.com picasaweb.net picasaweb.org +picnik.com pittpatt.com +pixate.com postini.comprojectara.comprojectbaseline.compublishproxy.comquestvisual.comquickoffice.com quiksee.com +revolv.comridepenguin.com run.appsavethedate.foo +saynow.com schemer.comscreenwisetrends.comscreenwisetrendspanel.com snapseed.com solveforx.com +stadia.devstcroixmosquito.comstcroixmosquitoproject.comstudywatchbyverily.comstudywatchbyverily.orgstxmosquito.comstxmosquitoproject.comstxmosquitoproject.netstxmosquitoproject.org synergyse.comtensorflow.org  tfhub.devthecleversense.comthegooglestore.comthinkquarterly.co.ukthinkquarterly.comthinkwithgoogle.com tiltbrush.com txcloud.net  txvia.comunfiltered.news useplannr.comusvimosquito.comusvimosquitoproject.comvelostrata.com +verily.comverilylifesciences.comverilystudyhub.comverilystudywatch.comverilystudywatch.org +wallet.com  waymo.com waze.com web.app web.devwebappfieldguide.comwebmproject.orgwebpkgcache.com +webrtc.orgweltweitwachsen.dewhatbrowser.org widevine.comwithgoogle.com womenwill.comwomenwill.com.br womenwill.id womenwill.in womenwill.mx  x.company +x.team xn--9kr7l.comxn--9trs65b.comxn--flw351e.comxn--ggle-55da.comxn--gogl-0nd52e.comxn--gogl-1nd42e.comxn--ngstr-lra8j.com xplr.cozukunftswerkstatt.de265.com +cn2mdn.net +cn adservice.google.com +cnapp-measurement.com +cn beacons.gcp.gvt2.com +cnbeacons.gvt2.com +cnbeacons3.gvt2.com +cn c.admob.com +cn(c.android.clients.google.com +cn!cache.pack.google.com +cn%clickserve.dartsearch.net +cn)clientservices.googleapis.com +cncorp.google.com +cn crl.pki.goog +cn"csi-china.l.google.com +cn dl.google.com +cndl.l.google.com +cndoubleclick.net +cn-!firebase-settings.crashlytics.com +cn fonts.googleapis.com +cn google-analytics.com +cn googleadservices.com +cngoogleanalytics.com +cn!googlesyndication.com +cn googletagmanager.com +cn!googletagservices.com +cngtm.oasisfeng.com +cn!imasdk.googleapis.com +cn kh.google.com +cn ocsp.pki.goog +cn, pagead-googlehosted.l.google.com +cn!pki-goog.l.google.com +cn recaptcha.net +cnredirector.gvt1.com +cn)safebrowsing-cache.google.com +cn'safebrowsing.googleapis.com +cn$settings.crashlytics.com +cn-!ssl-google-analytics.l.google.com +cn%toolbarqueries.google.com +cntools.google.com +cntools.l.google.com +cn$translate.googleapis.com +cn!update.googleapis.com +cn-!www-googletagmanager.l.google.com +cnwww.recaptcha.net +cn0$^khm([0-3]|db)?\.google(apis)?\.com$ +cn  hinet.net +123-hp.com123hplaserjet.com8008206616.com as-hp.cabaterias-hp.com campushp.comcolorprotechnology.com +compaq.orgdavid-laserscanner.com demoprint.comdigitalpack.com eprintsw.comgaming-notebooks.comgetprintersupports.comhp-imagine.comhp-infolab.com hp-invent.comhp-invent.info +hp-mns.comhp-printing.comhp-webplatform.com  hp-ww.com +hp.com +hp.company hp.io hp3d.comhp3dmetals.comhp3dprinter.comhp3dsamplepromo.comhpallinoneprinter.comhpapplicationscenter.com hpbestbuy.comhpbluecarpet.comhpbluecarpet.nethpbuiltforlearning.com hpbundle.com hpcampus.comhpcatridge.com  hpccp.com  hpceo.com  hpcmw.nethpcodewarsbcn.comhpcomputers.comhpcomputerservices.comhpconnected.comhpconnected.nethpconnected.orghpconnected.ushpconnectedstage.comhpcontinuum.com  hpcpi.com hpcu.orghpcustomersupport.comhpcustomersupport.net +hpdaas.comhpdesignjetl25500.comhpdesktopcomputer.comhpdownloadstore.comhpdreamcolor.com hpdriver.com hpdrivers.com hpdrivers.org hpeclipse.com hpengage.com hpeprint.comhpeprintcenter.com hpeurope.comhpeventcenter.com +hpfaqs.comhpfeedback.com +hpgift.com +hpgpas.comhpgraphicspartners.com  hpiie.org +hpinc.info  hpinc.nethpindigopress.com hpinkjet.comhpinstantink.cahpinstantink.comhpkeyboard.com hplaptop.comhplaptopbattery.comhplargeformatremote.comhplatexknowledgecenter.com hplfmedia.com  hplip.nethplipopensource.comhpmarketplace.comhpmemorychips.comhpmicrcartridge.com +hpmini.com hpmobile.comhpofficejetprinter.comhponlinehelp.comhponlineprinting.comhppage5000.comhppavillionlaptop.comhpphotoscanners.comhpprinterdrivers.comhpprinterinstalls.comhpprintersupplies.comhpsalescentral.com hpserver.comhpservices.comhpshooping.com +hpshop.com hpshoping.com hpshopping.hk hpsignage.com hpsmart.com hpsmarts.comhpsmartstage.comhpsmartupdate.comhpsoftware.com hpspeaker.comhpsprocket.com  hpsso.comhpstore-china.comhpstore-emea.com +hpstore.cn +cn hpstore.comhpstorethailand.com hpsupport.comhpsuresupply.comhptechventures.com hpto.net hptouch.comhptouchpointmanager.comhptrainingcenter.com  hpuae.comhpuniversity.infohpusertraining.com +hpveer.comhpvirtualthin.com hpwallart.comhpwellnesscentral.com  hpwsn.com i-123-hp.com inkchoice.cominstantink.comleavinghpinc.comlife-global.orgmyhpsupport.com printeron.comprintersetupsupport.comprintspots.comprintspots.netserviceshp.comthecompaqstore.comtouchsmartpc.comtouchsmartpc.nettouchsmartpc.orgworkstations.tv www8-hp.comxn--6eup7j.comxn--6eup7j.nethpstore.corpmerchandise.comibmweatherchannel weatherappdomain.cloud bluemix.com bluemix.net ibm.com +ibm.eu ibm.net +ibm.us s-bluemix.net s81c.com +01.org hyperscan.iointellinuxgraphics.comintellinuxgraphics.net +oneapi.comopenvinotoolkit.orgsnap-telemetry.io +acpica.com clearlinux.cn +cnclearlinux.org +ospray.net +ospray.org intel intel.ac intel.ae intel.af intel.ag intel.ai intel.ar intel.at intel.az intel.ba intel.bg intel.bh intel.bi intel.bo intel.bs intel.by intel.ca intel.cc intel.cg intel.ch intel.cl intel.cmintel.cn +cn intel.co.ae intel.co.cr intel.co.id intel.co.il intel.co.jp intel.co.kr intel.co.uk intel.co.za  intel.com intel.com.ar intel.com.au intel.com.bo intel.com.br intel.com.cn +cn intel.com.co intel.com.ec intel.com.hk intel.com.jm intel.com.mx intel.com.my intel.com.pe intel.com.ph intel.com.pr intel.com.py intel.com.tr intel.com.tw intel.com.uy intel.com.ve intel.cr intel.cu intel.cz intel.de intel.dk intel.dz intel.ec intel.ee intel.eg intel.es intel.eu intel.fi intel.fr intel.ga intel.gd intel.ge intel.gl intel.gm intel.gr intel.gs intel.gt intel.gy intel.hk intel.hn intel.ht intel.hu intel.ie intel.in intel.io intel.it intel.je intel.jo intel.jp intel.ke intel.la intel.lc intel.lk intel.lt intel.lu intel.ly intel.ma intel.md intel.me intel.mg intel.mk intel.mn intel.mp intel.mt intel.mu intel.mw intel.mx intel.my intel.ng intel.nl intel.nu intel.nz intel.pa intel.pe intel.ph intel.pl intel.pn intel.re intel.ro intel.ru intel.rw intel.sa intel.sc intel.se intel.sg intel.si intel.sk intel.sn intel.sr intel.st intel.sv intel.sx intel.sy intel.tf intel.tj intel.tl intel.tm intel.tn intel.tt intel.tv intel.tw intel.ua intel.uk intel.us intel.uy intel.uz intel.vg intel.vn intel.vu intel.wf intel.yt +altera.comalteraforum.comalteraforums.comalteraforums.netalterauserforum.comalterauserforum.netalterauserforums.comalterauserforums.net buyaltera.com celeron.com celeron.net centrino.com centrino.net  chips.com cilk.com cilk.netcloudinsights.comclusterconnection.com coreduo.comcoreextreme.comcrosswalk-project.comcrosswalk-project.netdoceapower.com  easic.com enpirion.comexascale-tech.comexploreintel.comgordonmoore.cominsidefilms.com intc.comintel-research.net&"intel-university-collaboration.netintelamericasstore.comintelapacstore.com intelatom.netintelcapital.comintelcapital.netintelcloudbuilders.comintelcloudfinder.comintelemeastore.cominteleventexpress.comintelforchange.comintelfreepress.com intelgo.netintelinsight.cominteliotmarketplace.com +intell.comintellearningseries.comintellinuxwireless.netintelnervana.comintelnet.component intelplay.comintelquark.comintelrealsense.cn +cnintelrealsense.com intelrxt.comintelsalestraining.comintelsecurity.comintelserveredge.comintelsoftwarenetwork.comintelstore.cominteltechnologyprovider.com intelvmwarecybersecurity.com  itnel.comlatencytop.comlookinside.commakebettercode.commakesenseofdata.com movidius.com movidius.netnervanasys.com  nevex.comnextgenerationcenter.com +niosii.com +niosii.netomekinteractive.com +omnitek.tv openamt.comopendroneid.orgoptanedifference.com +pc.com pentium.com pentium.net pintool.compoweredbyintel.comreconinstruments.com reconjet.comresearchintel.comsaffrontech.comsensorynetworks.com +siport.comsmart-edge.comtheintelstore.comthunderbolttechnology.nettrustedanalytics.comtrustedanalytics.net +vokevr.com vpro.com vpro.net xeon.comxn--ztsq84g.cn +xscale.combarefootnetworks.com +lg.com lgappstv.com  lge.co.kr lge.comlgecareers.com +lghvac.comlghvacstory.comlgrecyclingprogram.comlgsalesportal.comlgelectronics.122.2o7.net linkedin.com  licdn.com logi.comlogicool.co.jp logicoolg.com logitech.biz logitech.com logitech.fr logitechg.com logitechg.frworldsfastestgamer.net imgsmail.ru mail.ru mycdn.me azure-dns.comazure-dns.info azure-dns.net azure-dns.orgazure-mobile.netazure-sphere.comazure-test.netazure.cn +cn  azure.com  azure.netazurecomcdn.netazurecontainer.ioazurecosmos.netazurecosmosdb.comazurecosmosdb.infoazurecosmosdb.netazuredatabricks.netazuredevopslaunch.comazuredigitaltwin.comazuredigitaltwins.comazuredigitaltwins.netazuredns-prd.infoazuredns-prd.orgazureedge-test.net azureedge.netazureiotcentral.comazureiotsolutions.comazureiotsuite.comazureplanetscale.infoazureplanetscale.netazureserviceprofiler.comazuresmartspaces.netazurestackvalidation.comazurewebsites.netchinacloudapi.cn +cnchinacloudapp.cn +cnchinacloudsites.cn +cn cosmosdb.info cosmosdb.net devopsms.com gotcosmos.commicrosofteca.commicrosoftiotcentral.comserverlesslibrary.nettryfunctions.comwindowsazure.cn +cnwindowsazure.comazure.microsoft.com"azuremarketplace.microsoft.combing bing.com bing.com.cn +cn bing.net bingads.combingagencyawards.combingapistatistics.combingsandbox.combingvisualsearch.com bingworld.combluehatnights.com +dictate.msflipwithsurface.commasalladeloslimites.commicrosoft-give.commicrosoftcloudsummit.commicrosoftdiplomados.commicrosoftlatamholiday.commicrosoftmxfilantropia.com!microsoftpartnersolutions.commsunlimitedcloudsummit.comoffice365love.comoffice365tw.comrenovacionoffice.comsprinklesapp.com cn.bing.com +cn cn.bing.net +cn ditu.live.com +cnbj1.api.bing.com +cnemoi-cncdn.bing.com +cn atom.io  npmjs.com npm.communitydependabot.com +git.io github.blog +github.comgithub.community +github.dev  github.io githubapp.comgithubassets.comgithubhackathon.comgithubstatus.comgithubusercontent.com/+github-avatars.oss-cn-hongkong.aliyuncs.comFBgithub-production-release-asset-[0-9a-za-z]{6}\.s3\.amazonaws\.comadaptivecards.ioapi-extractor.com +apisof.net appcenter.ms +blazor.netbotframework.comcodethemicrobit.comdevopsassessment.net dot.netgamesstack.comgraphengine.ioinsiderdevtour.com +jwt.ms microbit.orgmicrosoftadc.commicrosoftgamestack.commicrosoftiotinsiderlabs.commicrosoftreactor.cn +cn#microsoftreactor.com.cn +cnmicrosoftreactor.infomicrosoftreactor.netmicrosoftreactor.orgmicrosoftsilverlight.commicrosoftsilverlight.orgmicrosoftsilverlight.netmicrosoftsqlserver.com  mmdnn.commono-project.com msdn.commsinnovationchallenge.commspairlift.commsropendata.com  nuget.org nugettest.orgopentranslatorstothings.orgposhtestgallery.compwabuilder.comreactorms.com.cn +cn +sankie.netsqlserveronlinux.comtimelinestoryteller.comuwpcommunitytoolkit.comvisualstudio-staging.comvisualstudio.comvisualstudio.covisualstudio.co.ukvisualstudio.euvisualstudio.net vfsforgit.com vfsforgit.org vsassets.io xamarin.comdeveloper.microsoft.comdtlgalleryint.cloudapp.net poshtestgallery.cloudapp.net"psg-int-centralus.cloudapp.netpsg-int-eastus.cloudapp.netmicrosoftnews.ccmicrosoftnews.cn +cnmicrosoftnews.commicrosoftnews.netmicrosoftnews.orgmicrosoftnewsforkids.commicrosoftnewsforkids.netmicrosoftnewsforkids.orgmicrosoftnewskids.commicrosoftnewskids.netmicrosoftnewskids.org msn.commsnewskids.commsnewskids.netmsnewskids.org msnkids.com 1drv.com 1drv.mslivefilestore.com onedrive.coonedrive.co.uk onedrive.com onedrive.eu onedrive.net onedrive.orgonedrive.live.comstorage.live.com +beth.games bethesda.netbethesdagamestudios.com bethsoft.com doom.comelderscrolls.comcallersbane.com minecraft.netminecraftshop.com +mojang.comforzamotorsport.netforzaracingchampionship.com forzarc.comorithegame.comrenovacionxboxlive.comtellmewhygame.com xbox.co xbox.com xbox.eu xbox.org +xbox360.co xbox360.com +xbox360.eu xbox360.org +xboxab.comxboxgamepass.comxboxgamestudios.com xboxlive.cn +cn xboxlive.com +xboxone.co xboxone.com +xboxone.euxboxplayanywhere.comxboxstudios.com +xbx.lv  microsoft azure hotmail +office skype windowsxbox microsoft.az microsoft.be microsoft.by microsoft.ca microsoft.cat microsoft.ch microsoft.cl microsoft.com microsoft.cz microsoft.de microsoft.dk microsoft.ee microsoft.es microsoft.eu microsoft.fi microsoft.ge microsoft.hu microsoft.io microsoft.is microsoft.it microsoft.jp microsoft.lt microsoft.lu microsoft.lv microsoft.md microsoft.pl microsoft.pt microsoft.red microsoft.ro microsoft.rs microsoft.ru microsoft.se microsoft.si microsoft.tv microsoft.ua microsoft.uz microsoft.vnfemalefounderscomp.com +m12.vc +aka.msankarazirvesi2018.comapplicationinsights.ioapplicationinsights.net aria.ms asp.net aspnetcdn.com +binads.com bluehatil.combrazilpartneruniversity.com breakdown.mecentralvalidation.com +ch9.mscharticulator.com cloudapp.netcloudappsecurity.comcortanaanalytics.comcortanaskills.comcrmdynint-gcc.com crmdynint.comcrossborderexpansion.com docs.com dynamics.com efproject.netazuredigitaltwin.comfasttrackreadysupport.comfluidpreview.comgameuxmasterguide.com +gears5.com gearspop.comgearstactics.com +gfx.ms +gigjam.com hololens.com +hotmail.co hotmail.com +hotmail.eu hotmail.net hotmail.orghummingbird.ms +ie8.co ie9.com ie10.com ie11.cominternetexplorer.cointernetexplorer.com imaginecup.pl +ingads.comintunewiki.comiotinactionevents.com +kidgrid.tvlatampartneruniversity.com live.com live.com.au live.eu live.netlivingyourambition.com makecode.orgmanagedmeetingrooms.commeetfasttrack.commeetyourdevices.com mepn.commicrosoft-int.commicrosoft-ppe.commicrosoft-sap-events.commicrosoft-sbs-domains.commicrosoft-smb.cn +cnmicrosoft365.commicrosoftaccountguard.commicrosoftads.commicrosoftadvertising.com*µsoftadvertisingregionalawards.commicrosoftaffiliates.commicrosoftcloud.commicrosoftcloudworkshop.com"microsoftcommunitytraining.commicrosoftedge.commicrosofthouse.commicrosofthouse.netmicrosoftinternetsafety.netmicrosoftlatamaitour.commicrosoftlinc.commicrosoftonline-p.commicrosoftonline.com!microsoftpartnercommunity.commicrosoftready.commicrosoftsiteselection.commicrosoftstore.commicrosoftstore.com.hkmicrosoftstream.commicrosoftteams.commicrosofttradein.commicrosofttranslator.commicrosoftuwp.commomentumms.commorphcharts.commpnevolution.comms-studiosmedia.comms365surfaceoffer.com  msads.net msauth.cn +cn +msauth.netmschallenge2018.com +msecnd.net +msedge.net  msft.info msft.net msftauth.cn +cn msftauth.netmsfteducation.ca msftnet.orgmsgamesresearch.com +msocdn.com +msocsp.com msturing.orgmsudalosti.commymicrosoft.comnextechafrica.net nxta.orgo365weve-dev.como365weve-ppe.com o365weve.com +office.com +office.net office365.com onenote.com onenote.net onestore.msopticsforthecloud.netoutingsapp.com outlook.com passport.net +pixapp.netpowerappscdn.netpowerautomate.com powerbi.compowershellgallery.comprojectmurphy.netprojectsangam.com +pxt.ios-microsoft.com  s-msn.com sfbassets.com sfbassets.net +sfx.ms sharepoint.cn +cnsharepoint.comsharepointonline.com  skype.com  skype.netskypeassets.comskypeassets.net staffhub.mssuccesswithteams.com surface.com sway-cdn.com sway.comsysinternals.comtailwindtraders.com +techhub.ms tfsallin.nettrafficmanager.nettranslatetheweb.comunlocklimitlesslearning.com +userpxt.iovideobreakdown.comvideoindexer.aivirtualearth.net vsallin.net +wbd.ms what-fan.netwindows-int.net windows.com windows.net +windows.nl windows8.hkwindowscommunity.netwindowsmarketplace.comwindowsphone-int.comwindowsphone.comwindowssearch.comwindowsupdate.com +winhec.com +winhec.net +yammer.comcdn.office.net +cn(dl.delivery.mp.microsoft.com +cn&download.windowsupdate.com +cn'bg.v4.a.dl.ws.microsoft.com +cn(bg4.v4.a.dl.ws.microsoft.com +cn2&cdn.marketplaceimages.windowsphone.com +cn cn.windowssearch.com +cn#ctldl.windowsupdate.com +cn#developer.microsoft.com +cndocs.microsoft.com +cn"download.microsoft.com +cn/#download.visualstudio.microsoft.com +cnfs.microsoft.com +cn(msgr.dlservice.microsoft.com +cn, msgruser.dlservice.microsoft.com +cn#officecdn.microsoft.com +cn&qh.dlservice.microsoft.com +cnsdx.microsoft.com +cn/#silverlight.dlservice.microsoft.com +cn, slupdate.dlservice.microsoft.com +cn, storeedgefd.dsx.mp.microsoft.com +cn&wl.dlservice.microsoft.com +cn&wscont1.apps.microsoft.com +cn&wscont2.apps.microsoft.com +cnwww.microsoft.com +cn&xb.dlservice.microsoft.com +cn/+img-prod-cms-rt-microsoft-com.akamaized.netimg-s-msn-com.akamaized.netmwf-service.akamaized.net)%officecdn-microsoft-com.akamaized.net3/statics-marketingsites-eus-ms-com.akamaized.net40statics-marketingsites-wcus-ms-com.akamaized.net firefox.comdeveloper.mozilla.org($interactive-examples.mdn.mozilla.netmdn.mozillademos.orgmedia.prod.mdn.mozit.cloud rust-lang.org  rustup.rs  crates.io docs.rsmozilla.community mozilla.net mozilla.org bugzilla.org getpocket.comseamonkey-project.orgthunderbird.net +lin.ee line.me line.naver.jp line-apps.com line-cdn.net line-scdn.net +nhncorp.jp grafolio.com  naver.com naver.jp  naver.net navercorp.com  plug.game pstatic.net neuralink.com +geforce.cn +cn geforce.co.kr geforce.co.uk geforce.comgeforce.com.twgputechconf.cn +cngputechconf.co.krgputechconf.comgputechconf.com.augputechconf.com.twgputechconf.eugputechconf.ingputechconf.jp nvidia.asia  nvidia.be  nvidia.ch nvidia.cn +cn nvidia.co.jp nvidia.co.kr +nvidia.com nvidia.com.au nvidia.com.br nvidia.com.tr nvidia.com.tw  nvidia.cz  nvidia.de  nvidia.dk  nvidia.es  nvidia.eu  nvidia.fi  nvidia.fr  nvidia.it  nvidia.lu  nvidia.nl  nvidia.no  nvidia.pl  nvidia.ro  nvidia.ru  nvidia.seshotwithgeforce.comnvidia.tt.omtrdc.net +oracle +oracle.comoraclecloud.comoraclefoundation.org oracleimg.comateam-oracle.com +bronto.comcovid19-rx.org covid19rx.org sun.com addthis.comaddthiscdn.comaddthisedge.comjava java.com java.net  panasonic panasonic.cn +cn panasonic.com panasonic.jp technics.comairgonetworks.comberkanawireless.comdragoniscoming.comgobianywhere.comhellosmartbook.com imod.comipleadership.org +iskoot.commeetsmartbook.compatenttruth.org pixtronix.comqctconnect.com +qprize.comqualcomm-email.com qualcomm.cnqualcomm.co.idqualcomm.co.inqualcomm.co.jpqualcomm.co.krqualcomm.co.uk qualcomm.comqualcomm.com.brqualcomm.com.tw qualcomm.de qualcomm.frqualcommhalo.comqualcommlabs.comqualcommmea.comqualcommretail.comqualcommventures.cnqualcommventures.com qualphone.com quicinc.com snapdragon.cnsnapdragonbooth.com +uplinq.com wipower.comwirelessreach.com +brewmp.comqualcomm.sc.omtrdc.net  razer.comrazersupport.com razerzone.com razerzone.jprespawnbyrazer.com appcloud.comappexchange.com attic.iobeyondcore.combuddymedia.com chatter.comcloudcraze.com cotweet.com data.comdemandware.com desk.comdocumentforce.comdreamforce.com einstein.comexacttarget.com  force.com govforce.comgravitytank.com heywire.com krux.commarketingcloud.com metamind.io +pardot.com quotable.com radian6.com relateiq.comsalesforce.comsalesforce.orgsalesforceiq.comsalesforceliveagent.com salesforcemarketingcloud.com sequence.comsfdcstatic.com +sforce.com site.com +social.comsteelbrick.com twinprime.comweinvoiceit.com samsung +xn--cg4bkigalaxyappstore.comgalaxymobile.jpgame-platform.net knoxemm.com samsung.comsamsungapps.comsamsungcloud.com samsungdm.comsamsungeshop.com.cn +cnsamsunggalaxyfriends.comsamsungknox.comsamsungqbe.com +sc-cdn.net snap-dev.net snap.com snapads.com snapchat.com +snapkit.co playstationplaystation.complaystation.net sonyentertainmentnetwork.comimageworks.commotionpictureser.com playshow.ioplayshowtv.comsonyclassics.comsonypictures.comsonypicturesanimation.comsonypicturesmuseum.comsonypicturesstudios.comsonypicturestelevision.com#sonypicturestelevisiongames.com wheelpop.com +wwtbam.comyourfantasybeginsnow.comsonyginzasonypark.jpsony-africa.com sony-asia.comsony-europe.comsony-hes.co.jpsony-latin.com sony-mea.comsony-olympus-medical.comsony-promotion.eusony-semicon.co.jp sony.at sony.ba sony.be sony.bg sony.ca sony.ch sony.cl +sony.co.cr +sony.co.id +sony.co.in +sony.co.jp +sony.co.kr +sony.co.nz +sony.co.th +sony.co.uk sony.com sony.com.ar sony.com.au sony.com.bo sony.com.br sony.com.co sony.com.do sony.com.ec sony.com.gt sony.com.hk sony.com.hn sony.com.mk sony.com.mx sony.com.my sony.com.ni sony.com.pa sony.com.pe sony.com.ph sony.com.sg sony.com.sv sony.com.tr sony.com.tw sony.com.vn sony.cz sony.de sony.dk sony.ee sony.es sony.eu sony.fi sony.fr sony.gr sony.hr sony.hu sony.ie sony.it sony.kz sony.lt sony.lu sony.lv sony.net sony.nl sony.no sony.pl sony.pt sony.ro sony.rs sony.ru sony.se sony.si sony.sk sony.ua sonybo.co.jp sonybsc.comsonybuilding.jpsonydesign.com sonydna.comsonyglobalsolutions.jp sonykigyo.jpsonylatvija.com +sonypcl.jpsonyprotechnosupport.co.jpsonystoragemedia.co.jp sonytc.co.jp  sovec.net +spacex.comboringcompany.com x.comads-twitter.com periscope.tv pscp.tvt.co tellapart.com tweetdeck.com  twimg.com twitpic.com twitter.com +twitter.jptwitterinc.comtwitteroauth.comtwitterstat.us twtrdns.net  twttr.com vine.couber-assets.com uber.com ubereats.com +oath.cloud oath.com ouroath.comstatic-verizon.com verizon.com verizon.netverizonbusinessfios.comverizonenterprise.comverizonfios.comverizonmedia.comverizonwireless.com vzw.com +xo.com mvk.com userapi.com  vk-cdn.me +vk-cdn.net vk-portal.net vk.cc +vk.com  vk.design vk.link vk.me vkcache.com vkgo.app +vklive.appvkmessenger.comvkmessenger.app vkontakte.ruvkuseraudio.comvkuserlive.netvkuservideo.comvkuservideo.netg-technology.com +sandisk.ae +sandisk.it +sandisk.cn +cn sandisk.co.jp sandisk.co.kr sandisk.co.uk sandisk.comsandisk.com.ausandisk.com.brsandisk.com.trsandisk.com.tw +sandisk.de +sandisk.es +sandisk.fr +sandisk.hk +sandisk.id +sandisk.in +sandisk.nl +sandisk.sg +wd.com wdc.comwesterndigital.com +flickr +flickr.com +flickr.netstaticflickr.com ads.yahoo.com +adsgemini.yahoo.com +ads ysm.yahoo.com +ads yahoo yahoo.ae yahoo.am yahoo.as yahoo.at yahoo.az yahoo.ba yahoo.be yahoo.bg yahoo.bi yahoo.bs yahoo.bt yahoo.by yahoo.ca  yahoo.cat yahoo.cd yahoo.cg yahoo.ch yahoo.cl yahoo.cmyahoo.cn +cn yahoo.co.ao yahoo.co.bw yahoo.co.ck yahoo.co.cr yahoo.co.id yahoo.co.il yahoo.co.in yahoo.co.jp yahoo.co.kr yahoo.co.mz yahoo.co.nz yahoo.co.th yahoo.co.tz yahoo.co.uk yahoo.co.uz yahoo.co.ve yahoo.co.vi yahoo.co.za  yahoo.com yahoo.com.af yahoo.com.ag yahoo.com.ai yahoo.com.ar yahoo.com.au yahoo.com.bd yahoo.com.bo yahoo.com.br yahoo.com.bz yahoo.com.cn +cn yahoo.com.co yahoo.com.do yahoo.com.ec yahoo.com.eg yahoo.com.es yahoo.com.fj yahoo.com.gi yahoo.com.gt yahoo.com.hk yahoo.com.kw yahoo.com.lb yahoo.com.ly yahoo.com.mt yahoo.com.mx yahoo.com.my yahoo.com.na yahoo.com.nf yahoo.com.om yahoo.com.pa yahoo.com.pe yahoo.com.ph yahoo.com.pk yahoo.com.pr yahoo.com.py yahoo.com.sa yahoo.com.sb yahoo.com.sg yahoo.com.sv yahoo.com.tj yahoo.com.tr yahoo.com.tw yahoo.com.ua yahoo.com.uy yahoo.com.vc yahoo.com.vn yahoo.cz yahoo.de yahoo.dj yahoo.dk yahoo.dm yahoo.ee yahoo.es yahoo.fi yahoo.fm yahoo.fr yahoo.ge yahoo.gg yahoo.gl yahoo.gm yahoo.gp yahoo.gr yahoo.gy yahoo.hk yahoo.hr yahoo.hu yahoo.ie yahoo.im yahoo.in yahoo.is yahoo.it yahoo.je yahoo.jo yahoo.la yahoo.lt yahoo.lu yahoo.lv yahoo.md yahoo.me yahoo.mk yahoo.mw yahoo.mx  yahoo.net yahoo.nl yahoo.no yahoo.nu yahoo.ph yahoo.pl yahoo.pn yahoo.ps yahoo.pt yahoo.ro yahoo.ru yahoo.rw yahoo.se yahoo.sg yahoo.sh yahoo.si yahoo.sk yahoo.sm yahoo.sn yahoo.so yahoo.sr yahoo.st yahoo.tg yahoo.tk yahoo.tl yahoo.tm yahoo.tn yahoo.vg yahoo.ws maktoob.com +myguide.hkyahoo-news.com.hk yahooapis.com yahoodns.netyahoofinance.comyahoohealth.comyahoomusic.comyahoosportsbook.com yho.com yimg.com yimg.jp  ymail.comxn--d1acpjx3f.xn--p1ai  yandex.az  yandex.by yandex.co.il +yandex.com yandex.com.am yandex.com.ge yandex.com.tr  yandex.ee  yandex.kg  yandex.kz  yandex.lt  yandex.lv  yandex.md +yandex.net  yandex.ru  yandex.st  yandex.sx  yandex.tj  yandex.tm  yandex.ua  yandex.uzyandexcloud.net yastatic.net +yandex +_ +FEDORA getfedora.orgfedoraforum.orgfedoraproject.orgfedoramagazine.org +S + OGURY-ADS ogury.com +ads +presage.io +adsogury.co +ads + +ONEDRIVE 1drv.com 1drv.mslivefilestore.com onedrive.coonedrive.co.uk onedrive.com onedrive.eu onedrive.net onedrive.orgonedrive.live.comstorage.live.com +B + LOCALBITCOINSlocalbitcoins.comlocalbitcoinschain.com +p +ONEPLUS oneplus.com +oneplus.cn oneplus.net opstatics.comoneplusbbs.com h2os.com + +SAMSUNG samsung +xn--cg4bkigalaxyappstore.comgalaxymobile.jpgame-platform.net knoxemm.com samsung.comsamsungapps.comsamsungcloud.com samsungdm.comsamsungeshop.com.cn +cnsamsunggalaxyfriends.comsamsungknox.comsamsungqbe.com + + ZEROHEDGE zerohedge.com +' + AMERICASVOICEamericasvoice.news +y +GANNETTgannett-cdn.com gannett.comgannettdigital.com usatoday.comusatodaynetworkservice.com + +GARENA"avatargarenanow-a.akamaihd.netcdngarenanow-a.akamaihd.netdlgarenanow-a.akamaihd.net!dlmobilegarena-a.akamaihd.net garena.co.id garena.co.th +garena.com garena.live  garena.my  garena.ph  garena.sg  garena.tv  garena.tw  garena.vn garenanow.com seagroup.com +. +SXL mysxl.cn +sxl.cn  sxlcdn.cn +% +RTHK etvonline.hk rthk.hk + +SHIELDS +shields.io +. +U17 u17.com u17i.com u17t.com +$ +CAS +csdl.ac.cn  las.ac.cn +b + +EMOJIPEDIAemojipedia.orgworldemojiawards.comworldemojiday.com xn--yt8h.la + +FIREFOX firefox.com + +GITV gitv.cn gitv.tv +^ +BITAUTO bitauto.combitautoimg.com cheyisou.com  yiche.com  yccdn.com + +CYTHON +cython.org + +INSIDERbusinessinsider.co.zabusinessinsider.combusinessinsider.com.aubusinessinsider.com.plbusinessinsider.debusinessinsider.esbusinessinsider.frbusinessinsider.inbusinessinsider.jpbusinessinsider.mxbusinessinsider.mybusinessinsider.nlbusinessinsider.sginsider-intelligence.com insider.cominsiderintelligence.com + +MDNdeveloper.mozilla.org($interactive-examples.mdn.mozilla.netmdn.mozillademos.orgmedia.prod.mdn.mozit.cloud + + HUNANTV-ADSclick.hunantv.com +adsda.hunantv.com +ads da.mgtv.com +adslog.hunantv.com +adslog.v2.hunantv.com +adsres.hunantv.com +adsv2.log.hunantv.com +ads +9 +MOGUJIE mogu.com mogucdn.com mogujie.com + +SLACKslack-edge.comslack-imgs.com  slack.com +slackb.comslackcertified.com slackdemo.com slackhq.com + +4399 3304399.net 4399.com 4399api.com 4399dmw.com +4399er.com4399youpai.com 5054399.com img4399.com ++ +BOSLIFE boslife.biz boslife.net + +CENTOS +centos.org + +ORIGIN dawngate.com eastore.comlordofultima.com +origin.com  origin.tv#cloudsync-prod.s3.amazonaws.comorigin-a.akamaihd.netrtm.tnt-ea.comssl-lvlt.cdn.ea.com + +FARFETCHfarfetch-apps.comfarfetch-contents.com farfetch.cn +cn farfetch.comfarfetch.com.cn +cn farfetch.netfarfetch.net.cn +cn  fflnk.net +| +MEITUAN dianping.com +maoyan.com meituan.com meituan.net  mtyun.com  neixin.cn sankuai.com +. +OP op.ggopgg-static.akamaized.net +H +ACFUN acfun.cn aixifan.com apilog-web.acfun.cn +ads + +DISNEYabc-studios.com abc.com edgedatg.com espn.com espn.net espncdn.com +espnqa.com watchespn.comespn.hb.omtrdc.netespndotcom.tt.omtrdc.net +marvel.commarvel10thanniversary.commarveldimensionofheroes.commarvelparty.netmarvelpinball.commarvelsdoubleagent.commarvelspotlightplays.com marvelsuperheroseptember.commarvelsuperwar.comthemarvelexperiencetour.comnatgeomaps.comnationalgeographic.com"nationalgeographicpartners.com ngeo.comadventuresbydisney.com +babble.com babyzone.com +dilcdn.comdisney-asia.comdisney-discount.comdisney-plus.netdisney-studio.comdisney-studio.net  disney.be  disney.bg  disney.ca disney.co.il disney.co.th disney.co.uk disney.co.za +disney.com disney.com.au disney.com.br  disney.cz  disney.de  disney.dk  disney.es  disney.fi  disney.fr  disney.gr  disney.hu  disney.id  disney.in  disney.io  disney.it  disney.my  disney.nl  disney.no  disney.ph  disney.pl  disney.pt  disney.ro  disney.se  disney.sgdisneyadsales.comdisneyarena.comdisneyaulani.comdisneybaby.comdisneycareers.comdisneychannelonstage.comdisneychannelroadtrip.comdisneycruisebrasil.comdisneyenconcert.comdisneyiejobs.comdisneyinflight.comdisneyjunior.comdisneyjuniortreataday.comdisneylatino.comdisneymagicmoments.co.ildisneymagicmoments.co.ukdisneymagicmoments.co.zadisneymagicmoments.dedisneymagicmoments.esdisneymagicmoments.frdisneymagicmoments.gen.trdisneymagicmoments.grdisneymagicmoments.itdisneymagicmoments.pl disneyme.comdisneymeetingsandevents.comdisneymovieinsiders.comdisneymusicpromotion.comdisneynewseries.com disneynow.comdisneypeoplesurveys.comdisneyplus.comdisneyredirects.comdisneysrivieraresort.comdisneystore.comdisneysubscription.comdisneyturkiye.com.trdisneytvajobs.comdisneyworld-go.com +dssott.comgo-disneyworldgo.com +go.com  mickey.tvmoviesanywhere.complaymation.comshopdisney.comshops-disney.comsorcerersarena.comspaindisney.com starwars.com#starwarsgalacticstarcruiser.comstreamingdisney.netthestationbymaker.comthisispolaris.comwatchdisneyfe.com + +GENTOO +gentoo.org + +HUFFPOSThuffingtonpost.cahuffingtonpost.co.ukhuffingtonpost.co.zahuffingtonpost.comhuffingtonpost.com.auhuffingtonpost.com.mxhuffingtonpost.dehuffingtonpost.eshuffingtonpost.frhuffingtonpost.grhuffingtonpost.inhuffingtonpost.ithuffingtonpost.jphuffingtonpost.kr huffpost.comhuffpostarabi.comhuffpostbrasil.comhuffpostmaghreb.com + +SOLIDOT solidot.org +' +WATCHOUT watchout.tw +waa.tw +6 +CATEGORY-COLLABORATE-CN shimo.im  yuque.com +4 + KHANACADEMYkhanacademy.org kastatic.org + +MARIADB mariadb.org + +UNWIRE  unwire.hk +$ + APPLEINSIDERappleinsider.com +Y +UNIONPAY  95516.com unionpay.comunionpayintl.comunionpaysecure.com +' +FOXfoxfox-corporation.com fox-news.com fox.com +fox.tv fox10.tv fox10news.comfox10phoenix.com  fox11.comfox13memphis.com fox13news.com  fox23.comfox23maine.com +fox247.com  fox247.tv  fox26.comfox26houston.comfox28media.com  fox29.comfox2detroit.com fox2news.com  fox32.comfox32chicago.comfox35orlando.comfox38corpuschristi.com fox42kptm.com  fox46.comfox46charlotte.com  fox47.com fox49.tv fox4news.com fox51tns.netfox5atlanta.com +fox5dc.com +fox5ny.com fox5storm.com fox6now.com fox7.comfox7austin.com fox9.comfoxacrossamerica.comfoxaffiliateportal.comfoxandfriends.com +foxbet.comfoxbusiness.comfoxbusiness.tvfoxbusinessgo.comfoxcanvasroom.comfoxcareers.comfoxcharlotte.com foxcincy.com foxcincy.jobs foxcincy.netfoxcollegesports.comfoxcorporation.comfoxcreativeuniversity.com foxcredit.com foxcredit.org foxd.tv +foxdcg.comfoxdeportes.comfoxdeportes.netfoxdeportes.tvfoxdigitalmovies.com foxdoua.comfoxentertainment.com +foxest.com +foxfaq.com +foxfdm.com foxfiles.com +foxinc.com foxkansas.com  foxla.com foxla.tvfoxlexington.comfoxmediacloud.com foxnation.comfoxnebraska.com +foxneo.comfoxneodigital.comfoxnetworks.infofoxnetworksinfo.com +foxnews.cc foxnews.com foxnews.net foxnews.org +foxnews.tvfoxnewsaffiliates.comfoxnewsaroundtheworld.comfoxnewsb2b.comfoxnewschannel.com foxnewsgo.net foxnewsgo.org foxnewsgo.tvfoxnewshealth.comfoxnewslatino.comfoxnewsmagazine.comfoxnewsnetwork.comfoxnewsopinion.comfoxnewspodcasts.comfoxnewspolitics.comfoxnewsradio.comfoxnewsrundown.comfoxnewssunday.com  foxon.comfoxphiladelphia.com foxpoker.com  foxrad.io foxredeem.comfoxrelease.comfoxrichmond.com foxrobots.comfoxsmallbusinesscenter.comfoxsmallbusinesscenter.netfoxsmallbusinesscenter.org foxsoccer.net foxsoccer.tvfoxsoccermatchpass.comfoxsoccerplus.comfoxsoccerplus.netfoxsoccerplus.tvfoxsoccershop.comfoxsports-chicago.comfoxsports-newyork.comfoxsports-world.com foxsports.cl foxsports.cofoxsports.co.ve foxsports.comfoxsports.com.arfoxsports.com.bofoxsports.com.brfoxsports.com.cofoxsports.com.ecfoxsports.com.gtfoxsports.com.mxfoxsports.com.pefoxsports.com.pyfoxsports.com.uyfoxsports.com.ve foxsports.gtfoxsports.info foxsports.netfoxsports.net.br foxsports.pe foxsports.sv foxsports.uyfoxsports2.comfoxsportsflorida.comfoxsportsgo.comfoxsportsla.comfoxsportsnetmilwaukee.comfoxsportsneworleans.comfoxsportsracing.comfoxsportssupports.comfoxsportsuniversity.comfoxsportsworld.comfoxstudiolot.com foxsuper6.com +foxtel.com foxtel.com.aufoxtelevisionstations.com  foxtv.com foxtvdvd.com  foxuv.comfoxweatherwatch.com  fssta.com +fxn.ws fxnetwork.comfxnetworks.com bentobox.tv kicu.tv ktvu.commyfoxsanfran.comafewmomentswith.com +anidom.comcasoneexchange.comcoronavirusnow.com +fse.tvgeraldoatlarge.comgooddaychicago.com joeswall.comkilmeadeandfriends.commaskedsingerfox.com +my13la.com +my20dc.commy20houston.com +my29tv.com my45.com  my9nj.commyfoxatlanta.commyfoxaustin.commyfoxboston.commyfoxcharlotte.commyfoxchicago.com myfoxdc.commyfoxdetroit.com myfoxdfw.commyfoxhouston.commyfoxhurricane.com myfoxla.commyfoxlosangeles.commyfoxlubbock.commyfoxmaine.com myfoxny.commyfoxorlando.commyfoxphilly.commyfoxphoenix.commyfoxtampa.commyfoxtampabay.commyfoxtwincities.com myfoxzone.com myq2.comnewsnowfox.comorlandohurricane.comparadisehotelquizfox.com q13.com +q13fox.comrealamericanstories.comrealamericanstories.inforealamericanstories.netrealamericanstories.orgrealamericanstories.tvrealmilwaukeenow.com rprimelab.comshopspeedtv.comsoccermatchpass.comspeeddreamride.comspeedfantasybid.comspeedracegear.com speedxtra.comteenchoice.com testonfox.comtheclasshroom.comthefoxnation.comthegeorgiascene.comwhatthefox.comwhosthehost.com wofl.tvwoflthenewsstation.com wogx.com foxnewsplayer-a.akamaihd.net +. +SCALAscala-lang.org scala-sbt.org +/ +MAPBOX mapbox.cn +cn +mapbox.com +- +C-SPAN +c-span.orgc-spanvideo.org +y +FONTSHOP fontbook.com fontshop.comfstopimages.com40fontshop-prod-responsive-images.s3.amazonaws.com + +GLYPHS glyphsapp.com + + MACRUMORS macrumors.com + + CATEGORY-ORGS aomedia.org archive.org  atypi.org +change.org ccstatic.orgcreativecommons.orgcreativecommons.engineeringlicensebuttons.net csis.orgcsis-prod.s3.amazonaws.comemojipedia.orgworldemojiawards.comworldemojiday.com xn--yt8h.laglobalsecurity.org ieee.org ieee.tvtryengineering.org ieee-ccnc.org ieee-ecce.org ieeemce.orgstandardsuniversity.orgieee-region6.org ieee.ca ieeer10.org +ieeer5.org +ieeer8.org ieeeusa.orgieeefoundation.orgieee-into-focus.org ieee-vics.org ieeeday.orgdatasheets360.comglobalspec.com ieee-isto.orgtechstreet.com computer.org +comsoc.org embs.org emcs.org grss-ieee.org ieee-aess.org ieee-cas.org ieee-ceda.orgieee-edusociety.org ieee-ies.org ieee-ims.org ieee-npss.org ieee-pels.org ieee-pes.org ieee-ras.orgieee-sensors.org ieee-tems.org ieee-uffc.org ieeeaps.org ieeecsc.org ieeecss.org ieeedeis.orgieeemagnetics.org ieeenano.org ieeeoes.org ieeesmc.orgieeesystemscouncil.org  itsoc.org mtt.orgphotonicssociety.orgsignalprocessingsociety.orgtechnologyandsociety.org vtsociety.org ietf.org itu.int nist.gov time.gov openmaps.orgopenstreetmap.comopenstreetmap.netopenstreetmap.orgopenstreetmaps.org osm.orgosmfoundation.orgstateofthemap.comstateofthemap.orgrolfoundation.orgrolsociety.org  smpte.org +un.org +w3.org who.int wto.org +/ +FASTLANE fastlane.cifastlane.tools +B +RBaerogard.com.auaerogard.com.cn +cnaerogardcn.com +airwick.at +airwick.be +airwick.ca +airwick.ch +airwick.cl airwick.co.in airwick.co.nz airwick.co.uk airwick.co.za airwick.comairwick.com.auairwick.com.brairwick.com.cn +cnairwick.com.mxairwick.com.tr +airwick.cz +airwick.de +airwick.dk +airwick.es +airwick.fi +airwick.fr +airwick.hr +airwick.hu +airwick.ie +airwick.it +airwick.jp airwick.net +airwick.nl +airwick.no +airwick.pl +airwick.pt +airwick.ro +airwick.ru +airwick.se +airwick.si +airwick.sk +airwick.tv +airwick.usairwickarabia.com vipoo.es  calgon.at  calgon.be  calgon.ch calgon.cn +cn calgon.co.uk +calgon.com calgon.com.tr  calgon.de  calgon.es  calgon.fr  calgon.ie  calgon.it  calgon.nl  calgon.pt  calgon.ru  calgon.tvcalgoncarbon-china.comcalgoncarbon.com calgonit.com clearasil.cn +cnclearasil.com.cn +cn clearasil.usdettol-prize.com  dettol.at  dettol.be  dettol.ch  dettol.cl dettol.co.id dettol.co.in dettol.co.ke dettol.co.nz dettol.co.uk +dettol.com dettol.com.au dettol.com.bd dettol.com.br dettol.com.cn +cn dettol.com.eg dettol.com.hk dettol.com.my dettol.com.ng dettol.com.sg  dettol.cz  dettol.fr  dettol.hu  dettol.ie +dettol.net  dettol.nl  dettol.pk  dettol.pl  dettol.pt  dettol.rudettolarabia.comdettolcleannaija.comdettolsitishield.co.indettolthailand.comespadoldettol.com.ardewitwithdurex.com dotherex.com durex-shop.chdurex-shopline.comdurex-slovenia.si durex.at durex.be durex.cl durex.co.id durex.co.il durex.co.nz durex.co.th durex.co.uk durex.co.za  durex.com durex.com.au durex.com.bd durex.com.cn +cn durex.com.co durex.com.hr durex.com.my durex.com.ng durex.com.pe durex.com.ph durex.com.pk durex.com.sg durex.com.tr durex.cz durex.de durex.dk durex.ee durex.es durex.fi durex.fr durex.hu durex.ie durex.it durex.jp durex.lv durex.mx durex.nl durex.no durex.pl durex.pt durex.ro durex.ru durex.se durex.us durexcam.comdurexcanada.comdurexchina.comdurexchina.com.cn +cndurexindia.comdurexloveclub.comdurexukraine.com durexusa.comlovesexdurex.cn +cnlovesexdurex.complaybydurex.com shopdurex.com trydurex.net trydurex.tvbebepremium3.com.bo +enfa.co.id enfa.com.vn enfaaplus.com enfababy.com enfabebe.comenfabebe.com.brenfabebe.com.coenfabebe.com.doenfabebe.com.ecenfabebe.com.mxenfabebe.com.peenfabebe.com.veenfabebe3.com.arenfagrow.co.inenfagrow.com.bnenfagrow.com.myenfagrow.com.phenfagrow.com.sg enfagrow4.comenfamama.com.arenfamama.com.ph +enfamil.ca enfamil.com +enfamil.es +enfamil.pl +enfamil.pt enfasmart.comenspireformula.comnutramigen.net nutramigen.pl$dishwashingexpert.com.cn +cn  finish.at  finish.bg finish.co.kr finish.co.nz finish.co.uk finish.co.za finish.com.cn +cn finish.com.hr finish.com.tr  finish.de  finish.es  finish.fr  finish.gr  finish.hu  finish.lv  finish.pl  finish.pt  finish.ro  finish.si  finish.skfinisharabia.comfinishbrasil.com.brfinishdishwashing.cafinishdishwashing.com finishinfo.be finishinfo.clfinishinfo.comfinishinfo.com.arfinishinfo.com.au finishinfo.cz finishinfo.fi finishinfo.it finishinfo.jp finishinfo.nl finishinfo.no finishinfo.ru finishinfo.sefinishkilpailu.fi finishwin.beyarininsuyu.com lizol.co.in lysol.ca lysol.cllysol.cn +cn lysol.co.cr  lysol.com lysol.com.cn +cn lysol.com.mx  lysol.netenfinitas.com.cn +cnmeadjohnson.commeadjohnson.com.cn +cnmeadjohnson.com.hkmeadjohnson.com.twmeadjohnson.net +mortein.cn +cn mortein.co.in mortein.co.nz mortein.co.za mortein.commortein.com.aumortein.com.brmortein.com.ngmortein.com.pkmorteincam.compifpafarabia.comkeepmovingwithmovefree.com move-free.net movefree.cn +cn movefrees.commovefreeoffers.commovefreerewards.comschiffvitamins.com +mucinex.ca +mucinex.cn mucinex.co.nz mucinex.commucinex.com.cn mucinex.net +mucinex.tvmucinexprofessional.com +nurofen.at +nurofen.bg +nurofen.cn +cn nurofen.co.il nurofen.co.nz nurofen.co.uk nurofen.co.za nurofen.comnurofen.com.aunurofen.com.cn +cnnurofen.com.sg +nurofen.cz +nurofen.de +nurofen.es +nurofen.fr +nurofen.hr +nurofen.hu +nurofen.ie +nurofen.it nurofen.net +nurofen.no +nurofen.pl +nurofen.pt +nurofen.ro +nurofen.sk +nurofen.runurofengel.com51nurofensk-prod-env.eu-west-1.elasticbeanstalk.com +cepacol.ca cepacol.com dobendan.degraneodin.com.mx +repsils.no strepsils.at strepsils.ch strepsils.cn +cnstrepsils.co.krstrepsils.co.nzstrepsils.co.zastrepsils.com.arstrepsils.com.brstrepsils.com.cn +cnstrepsils.com.costrepsils.com.austrepsils.com.hkstrepsils.com.phstrepsils.com.tw strepsils.es strepsils.fi strepsils.fr strepsils.hr strepsils.hu strepsils.ie strepsils.net strepsils.pl strepsils.pt strepsils.ro strepsils.ru strepsils.si strepsils.usstrepsilsarabia.como2action.co.krpowerofresolve.capowerofresolve.comspraynwash.com  vanish.at  vanish.be  vanish.ch  vanish.cl vanish.cn +cn vanish.co.id vanish.co.il vanish.co.in vanish.co.nz vanish.co.uk vanish.co.za vanish.com.ar vanish.com.br vanish.com.co vanish.com.hr vanish.com.mx vanish.com.my vanish.com.pe vanish.com.sg vanish.com.tr  vanish.de  vanish.dk  vanish.es  vanish.fi  vanish.fr  vanish.hu  vanish.ie  vanish.it  vanish.nl  vanish.no  vanish.pl  vanish.pt  vanish.ro  vanish.ru  vanish.se  vanish.si  vanish.skvanisharabia.comvanishbancaseulook.com.brvanishcentroamerica.com vanishinfo.czvanishstains.comvanishstains.com.au veet.at veet.be veet.ca veet.ch veet.clveet.cn +cn +veet.co.id +veet.co.in +veet.co.kr +veet.co.nz +veet.co.uk +veet.co.za veet.com veet.com.ar veet.com.au veet.com.bd veet.com.br veet.com.cn +cn veet.com.co veet.com.hk veet.com.mx veet.com.my veet.com.ph veet.com.pk veet.com.sg veet.com.tr veet.de veet.dk veet.es veet.fi veet.fr veet.hu veet.jp veet.nl veet.no veet.pt veet.ro veet.ru veet.se veet.tv veet.usveetarabia.comveetbangladesh.comveetcentroamerica.com veetclub.it +woolite.ca +woolite.cn +cn woolite.comwoolite.com.cn +cn +woolite.pl +woolite.uswoolitecarpet.comdigital-rb.com rb-crisis.com +rb.com +rb.netrbbusinessshop.comrbdigitalab.comrbdigitallab.comrbeuroinfo.com rbgrads.comrbgraduates.comrbmavericks.comrbnainternational.com  rbplc.comrbrandlibrary.com rbspeakup.com reckitt.netreckittbenckiser.cn +cnreckittbenckiser.com#reckittbenckiser.com.cn +cnreckittbenckiser.netreckittbenckiser.tvreckittprofessional.com + +SSPAI  sspai.com + +WENZHAO +wenzhao.ca ++ +BAIDU a.baidu.com +ads ad.duapps.com +ads ad.player.baidu.com +ads adm.baidu.com +adsadscdn.baidu.com +adsadx.xiaodutv.com +adsae.bdstatic.com +ads afd.baidu.com +ads als.baidu.com +ads&api.mobula.sdk.duapps.com +ads"api.tuisong.baidu.com +adsappc.baidu.com +adsb.bdstatic.com +adsbaichuan.baidu.com +adsbaidustatic.com +adsbaidutv.baidu.com +adsbanlv.baidu.com +ads bar.baidu.com +ads"bdimg.share.baidu.com +adsbdplus.baidu.com +ads bj.bcebos.com +adsbtlaunch.baidu.com +ads c.baidu.com +ads cb.baidu.com +adscbjs.baidu.com +adscjhq.baidu.com +adscleaner.baidu.com +ads click.bes.baidu.com +adsclick.hm.baidu.com +adsclick.qianqian.com +ads"cm.baichuan.baidu.com +ads cm.baidu.com +adscm.pos.baidu.com +ads cpro.baidu.cn +adscpro.baidu.com +ads!cpro.baidustatic.com +ads!cpro.tieba.baidu.com +ads"cpro.zhidao.baidu.com +adscpro2.baidu.com +ads"cpro2.baidustatic.com +ads crs.baidu.com +adsdatax.baidu.com +ads dd713.bj.bcebos.com +ads dl.client.baidu.com +adsdl.ops.baidu.com +adsdl1sw.baidu.com +adsdl2.bav.baidu.com +adsdlsw.baidu.com +adsdlsw.br.baidu.com +ads!dl-vip.bav.baidu.com +ads(dl-vip.pcfaster.baidu.co.th +ads#download.bav.baidu.com +ads"download.sd.baidu.com +adsdrmcmm.baidu.com +ads dup.baidustatic.com +ads dxp.baidu.com +ads dzl.baidu.com +ads e.baidu.com +adseclick.baidu.com +adsecma.bdimg.com +adsecmb.bdimg.com +adsecmc.bdimg.com +ads eiv.baidu.com +ads em.baidu.com +adsentry.baidu.com +ads ers.baidu.com +ads f10.baidu.com +ads#fc-feed.cdn.bcebos.com +adsfclick.baidu.com +adsfeed.baidu.com +adsfexclick.baidu.com +ads g.baidu.com +adsgimg.baidu.com +adsguanjia.baidu.com +ads hc.baidu.com +ads hm.baidu.com +adshmma.baidu.com +ads hpd.baidu.com +adsidm.bce.baidu.com +adsidm-su.baidu.com +adsiebar.baidu.com +adsikcode.baidu.com +adsimg.taotaosou.cn +adsimg01.taotaosou.cn +adsj.br.baidu.com +adskstj.baidu.com +ads log.music.baidu.com +ads m1.baidu.com +ads ma.baidu.com +adsmobads.baidu.com +ads"mobads-logs.baidu.com +adsmpro.baidu.com +adsmsite.baidu.com +adsneirong.baidu.com +adsnsclick.baidu.com +ads#nsclickvideo.baidu.com +adsopenrcv.baidu.com +ads$pc.videoclick.baidu.com +ads pos.baidu.com +adspups.bdimg.com +ads%push.zhanzhang.baidu.com +ads qianclick.baidu.com +adsrelease.baidu.com +adsres.mi.baidu.com +ads"rigel.baidustatic.com +ads#river.zhidao.baidu.com +ads rj.baidu.com +adsrplog.baidu.com +ads s.baidu.com +adss.cpro.baidu.com +ads!sa.tuisong.baidu.com +adssclick.baidu.com +adssestat.baidu.com +adsshadu.baidu.com +adsshare.baidu.com +ads"snippet.pos.baidu.com +adssobar.baidu.com +adssobartop.baidu.com +adsspcode.baidu.com +adsstat.v.baidu.com +ads su.bdimg.com +adssu.bdstatic.com +ads t10.baidu.com +ads t11.baidu.com +ads t12.baidu.com +ads tk.baidu.com +adstkweb.baidu.com +ads"tob-cms.bj.bcebos.com +adstongji.baidu.com +adstoolbar.baidu.com +adstracker.baidu.com +adstuijian.baidu.com +ads*uat1.bfsspadserver.8le8le.com +ads#ubmcmm.baidustatic.com +adsucstat.baidu.com +adsulic.baidu.com +ads ulog.imap.baidu.com +adsunion.baidu.com +ads!unionimage.baidu.com +adsutility.baidu.com +ads utk.baidu.com +ads videopush.baidu.com +adsvv84.bj.bcebos.com +adsw.gdown.baidu.com +ads w.x.baidu.com +adswangmeng.baidu.com +adsweishi.baidu.com +ads$wenku-cms.bj.bcebos.com +ads%wisepush.video.baidu.com +ads wm.baidu.com +adswn.pos.baidu.com +adsznsv.baidu.com +adszz.bdstatic.com +adszzy1.quyaoya.com +ads zuoyebang.cc zuoyebang.com +zybang.com baidu +91.com +aipage.com apollo.auto baidu.cn  baidu.com baidu.com.cn baidubce.combaiducontent.com baidupcs.combaidustatic.com +baifae.com baifubao.com +bcebos.com  bdimg.com bdstatic.com bdtjrcv.com  bdydns.cn +bdydns.com +bdydns.net chuanke.com  dlnel.com  dlnel.org +duapps.com +dwz.cn +hao123.com hao123img.com +hao222.com +haokan.com jomocdn.net jomodns.com +mipcdn.com  nuomi.com quyaoya.com smartapps.cn  tieba.com tiebaimg.com xianfae.com xiaodutv.com + + BRILLIANT brilliant.org + +IPIP ipip.net +? +LIEPIN +liepin.com +lietou.comlietou-static.com + +VUVUZELA vuvuzela.io + +XDTY xdty.org +2 +ZOOM zoom.com zoom.com.cn zoom.us + +1PONDO  1pondo.tv +1 + STACKPATH stackpath.com stackpath.dev +" +TED ted.com +tedcdn.com +L +TLD-!CNacadaeafagalamanaoaqaratauawaxazbabgbhbibjbmbnbobrbsbvbwbybzcacdcgclcmcrcucwcxcyczdedkdzecegehereseufifjfkfofrgagbgdgeghgiglgmgngrgsgtgugwgyhkhnhthuieiliniqirjejmjojpkekhkiknkpkrkwkykzlblclilklrlsltlulymamcmdmfmgmhmkmnmompmqmrmtmumwmxmymznancnenfngninlnonpnrnunzompapepfpgphplpnrerorurwsascsdsesgsisjskslsnsrssstsusvsxsysztctdtfthtjtktltmtntotptrtttwtzuaugukumusuyuzvavcvevgvivnvuwfytzazmzwaflmlbnbanflnra averybbbbcgcebcrsdnbdnpdunsdvagerni globalxice locus mckinsey olayangroup +olayan praxisapseek +vistaprint vistawtc xerox athletabananarepublic  bloomberg boots calvinklein cartier chloegap gucci +hermesiwcjlc  lancaster lipsyloft mango  montblanc mrporter +netaporter +nextdirectnextnike oldnavy omega panerai  patagonia +piaget  piperlimepolo redstone +swatchaarp +abbott +abbvie aetna alcon +anthembms +boehringer caremore +cialis dabur  freseniusjnj merck mutuelle +sanofiaeg +airbus +alstom +aramco +blanco bosch +bostik +chesapeakechk crown +doosan +dupontflirfls flsmidth  gecompany grainger hitachi  honeywellifm ipirangajio komatsukoneksb  kuokgroup leclerclidl linde lottemanmtr reliance rexrothril rockwoolrwesandvikcoromant sandvik sapphiresca +schaeffler schmidt schwarzgroup schwarz senersewsncf statoil total +vanish +walter +warman weberweir woodsidezara zippo agakhanakdn +ansons +bharti +extraspace genting glean ikano +imamat  ladbrokes +livestrongmaif +mattel shell transformersvanawme astriumcern +emerck  hisamitsu lilly lundbeck lupin merckmsdmsdmtpc +otsuka +pfizer stadateva toray weather auspost deutschepostdhl epost fedex +pitneyaaa +abarthadac  alfaromeoaudi bentleybmw bridgestone bugatti buick cadillaccase +caseih  chevrolet chevy chrysler +datsun dodge +dunlop ferrarifiat  firestonefordgmc goodyear honda hyundai infiniti iveco +jaguarjeepkia lamborghini +lancia  landrover lexus lincoln maseratimini +mitsubishi mopar +newholland +nissanramseatsrt +suzuki +tatamotors +toyotatvs uconnect +volkswagen volvoaigo android apple bestbuy brother canondell digikey fujitsu  fujixerox  goldpointibm nikon nokia olympus  panasonic philips pioneer samsung sharpsony toshiba  yodobashi  allfinanzallfinanzberaterallfinanzberatungallyamericanexpressamexampanz banamex barclaycard barclaysbbtbbvabnl +bnpparibasbofa bradesco +capitalone cashbackbonuscbacfa chasecimb citadelciti commbank deloitte discover everbank fidelity hdfcbankhdfchsbcitaujcbjll jpmorganchase jpmorgankfhkpmg lacaixa lasalle lixil lplfinanciallplnab nadex netbanknorthwesternmutualopen +pictetpncpohl  pramerica +prudentialprupwcsaxosbiscbscor shriram softbank  statebank temasek +transunion ubankubs vanguardvisa wolterskluwerafamilycompany  aquarellediyduck +finish glade  homedepot  homegoods mrmuscleoffraid rightathome  scjohnsonaig allstateamericanfamily amfam amicaaxa chartis esurance farmers  goodhands guardian guardianlife iselect metlifemma +mutual +nationwide +nissaynorthlandinsurance +onyourside progressive redumbrella  statefarm +swiftcover thehartfordtiaatravelersinsurance  travelers travelguardtrvvig beats blockbusterbway netflix playstation showtimetab williamhillxboxasda bloomingdales +george  homesense justforulego macys  marshallsobiqvc safeway samsclub shopyourway staples +targetthd tiffany +tjmaxxtjx +tkmaxxvons walmartabb  accentureaceraco +active +airtel +amazonandaolawsaxis azure chatr +chrome cisco comcast +connectorscscdclkdish +docomodtvdwg emerson epson ericsson etisalat  fairwindsfido +flickr frogans frontierftrgbizgeaggeegle gmailgmogmx godaddygoog +googlegoogreeguge hangouthkt hotmailhtc +hughesieee iinet infosysinfy intel +intuitjavajcpjmpjprs juniperkddi +kindle +konamikpn lanxess liaison +lockermeo  microsoftmihmiimint mitekmit +mobily +mozaicmtn multichoice naspersnec neustar nexusnico +nortonntt +officeollo +oracle +orangeovh patchpayupccwqtel quest  richardli ricoh +rogers +sakurasaposassessfrshaw skolkovo skydrive skype sling smart stcgroupstc symantectatatcitdk telecity +telefonica terra translations  ultrabook unicornuol verisignvivavivo windows xfinity +xperia yahoo yamaxun +yandex yellowpages youtube +zappos +chanel clinique garnier  kerastase +kiehls lamer lancome +loreal +matrix +maybelline +natura origins +redkensvr barefoot beknown cityeatscookingchannel +cuisinella delmonte edekafage ferrero foodnetworkfood gallo heinz +kindermcd  mcdonalds pamperedchef +rocher +wilmarxn--3oq18vl8pn36axn--55qx5d8y0buji4b870uxn--5su34j936bgsgxn--b4w605ferd xn--cckwcxetd +xn--cg4bkixn--dkwm73cwpn xn--flw351exn--fzys8d69uvgmxn--hxt035cmppuelxn--hxt035czzpfflxn--j6w470d71isscxn--jlq480n2rgxn--jlq61u9w7bxn--kcrx77d1x4axn--kcrx7bb75ajk3bxn--mgba3a3ejtxn--mgba7c0bbn0axn--mgbaakc7dvfxn--mgbb9fbpob xn--ngbe9e0a xn--pgb3ceoj xn--qcka1pmcxn--w4r85el8fhu5dnra xn--w4rs40l avianca caravan changiairport cipriani clubmed delta firmdale +hilton hyatt kerryhotelskerrylogisiticskerryproperties marriott orientexpress  shangrila tradershotelstui +viking +virgin +webjetablecbre chintai  frontdoor +lefrakabc africamagicartebbc  canalpluscbncbsdstv +eurovisionfox +gallup globogotv guardianmediahbohgtvimdbitv +kyknetmnet movistar mzansimagicnhk nowtvsbs sevensky spiegel starhub +supersport theguardian travelchannelweatherchannel bauhaus latrobe +monashrmit + + CALGONCARBON  calgon.at  calgon.be  calgon.ch calgon.cn +cn calgon.co.uk +calgon.com calgon.com.tr  calgon.de  calgon.es  calgon.fr  calgon.ie  calgon.it  calgon.nl  calgon.pt  calgon.ru  calgon.tvcalgoncarbon-china.comcalgoncarbon.com calgonit.com +3 +PPTV  pplive.cn +pplive.com pptv.com + + MCDONALDSmcd  mcdonalds4008-517-517.cn +cnaboutmcdonalds.comhappymeal.co.nzhappymeal.com.au mcd.commcdelivery.co.idmcdelivery.co.krmcdelivery.com.aumcdelivery.com.mymcdelivery.com.sgmcdelivery.com.twmcdindonesia.com mcdonalds.camcdonalds.co.uk mcdonalds.commcdonalds.com.hk mcdonalds.hk mcdonalds.it mcdonalds.no mcdonalds.semcdonaldsarabia.commcdonaldsparties.co.nzmcdonaldsparties.com.au!xn--qhrx81fxh2a.xn--55qx5d.hk + + +NODESOURCEnodesource.com +T +NOW now.com +now.com.hk nowe.com +now-tv.comnow-ashare.com +z +CMB cignacmb.comcmb-leasing.com cmbchina.com cmbi.com.hkcmbwinglungbank.com cmfchina.com + +ELECTRONelectronjs.org + +GOOGLE-REGISTRYcharlestonroadregistry.comregistry.google get.app get.dev get.how get.page iam.soyxn--p8j9a0d9c9a.xn--q9jyb4c +I +MADSHI +madshi.net  madvr.com  madvr.net madvrlabs.llc + +3DM 3dmgame.com +g + ATLASSIAN atlassian.com bitbucket.org statuspage.io +trello.com trellocdn.com +2 +INTERNATIONALSAIMOEinternationalsaimoe.com + +VIM vim.org +& +CHINASO chinaso.com +pg0.cn +# +EDX edx.org edx-cdn.org +3 +QUORA  quora.com quoracdn.net qr.ae +> +UBUNTU +ubuntu.com +ubuntu.netubuntuforums.org + +EA dawngate.com eastore.comlordofultima.com +origin.com  origin.tv#cloudsync-prod.s3.amazonaws.comorigin-a.akamaihd.netrtm.tnt-ea.comssl-lvlt.cdn.ea.comawayoutgame.combattlefieldbadcompany2.combattlefront2.combattlefrontii.combejewled-stars.combejeweledstars.comcapitalgames.com chillingo.comcommandandconquer.comconquerwithcharacter.com  crysis.jp dawngate.comdawngatechronicles.com +dicela.com +dicela.netea-anz-press.com +ea.com eaaccess.comeacashcard.com eacodigos.com eakorea.co.kr eamobile.com eanordic.com +eaplay.com easports.com easports.jpeasportsactive.comeasportsactiveonline.comeasportsfootball.comeasportsfootballclub.comeasportsmma.comeasportsworld.comelectronicarts.comelectronicarts.fr futpromos.com futunited.comghostgames.comheroesofdragonage.com hutpromos.commaddenchampionship.commaddenrewards.commaddenseason.infomaddenseason.netmaddenseason.org  maxis.commysimsracing.com play4free.com playapex.com pogo.com pogobeta.com +popcap.comprojectapex.com pvzheroes.com spearhead.krspeedhunters.com  spore.com ssx3.comstarwarsbattlefront.comstarwarsbattlefront2.comtiberiumalliances.com tiburon.com +tnt-ea.comultimaforever.com unravel2.comunraveltwo.comvisceralgames.com +yogify.comanthemgame.comanthemthegame.comapexlegends.comprojectapex.combattlefield.combattlefield1943.combattlefield3.combattlefield4.combattlefield5.combattlefieldheroes.combattlefieldv.com battlelog.com bioware.combiowarestore.com eamythic.com eamythic.net cncrivals.comcommandandconquer.comtiberiumalliances.comcamelot-europe.comcamelotherald.comcamelotherald.net daoc.netdarkageofcamelot.comdarkness-risen.comdeadspacegame.com dice.se dragonage.comdragonagekeep.comdragonagemovie.comthedreadwolfrises.comdungeonkeeper.cndungeonkeeper.comdungeonkeeper.com.cneafootballworld.comfifastreet.comfifastreet3.com frostbite.comindustrialtoys.commasseffect.commasseffectarchives.comeamirrorsedge.commirrorsedge.commirrorsedge.jpmirrorsedge.netmirrorsedge2.commirrorsedge2d.comblackboxgames.comeablackbox.comneedforspeed.comneedforspeedboost.comneedforspeeddriftkings.comneedforspeedeliminator.comneedforspeedlightning.comneedforspeedoverdrive.comneedforspeedproven.comneedforspeedredline.comneedforspeedshowdown.comneedforspeedstreetkings.comneedforspeedtakedown.comneedforspeedtherun.comneedforspeedtimeattack.com#needforspeedundergroundeast.com nfsworld.comteamneedforspeed.complantsvszombies2.com +pvzgw2.com pvzheroes.comseaofsolitude.comsimcity-buildit.com simcity.com +skate2.com spearhead.krstarwarsfallenorder.comstarwarsjedifallenorder.comstarwarstheoldrepublic.comswjedifallenorder.com  swjfo.com  swtor.com  swtor.net +mysims.com thesims.com thesims3.com thesims4.comthesimssocial.com titanfall.commythicentertainment.commythicentertainment.netmythicgames.comultimaonline.com +uo.com uoherald.com xdsummit.comea.tt.omtrdc.neteaassets-a.akamaihd.net + +J-TEST +j-test.com +O +PUBMATIC pubmatic.compubmatic.co.jpads.pubmatic.com +ads +" + SHADOWSOCKSshadowsocks.org +R +ARPHIC +arphic.com arphic.com.cn arphic.com.twifontcloud.com + +NETFLIX fast.com +netflix.ca netflix.com netflix.netnetflixinvestor.comnetflixtechblog.com nflxext.com nflximg.com nflximg.netnflxsearch.net +nflxso.net nflxvideo.net +) + REBRANDLY rb.gy rebrandly.com +2 +INNER-ACTIVE-ADSinner-active.mobi +ads + + NEWYORKER newyorker.com + +TRIBLER tribler.org + +YANDE yande.re + +ALI213 +ali213.net + +AVGLE  avgle.com + +FFMPEG +ffmpeg.org + +KALI kali.org + +YOUTUBE youtubeggpht.cn +cn  ggpht.comgooglevideo.comwithyoutube.com youtu.beyoutube-nocookie.com +youtube.ae +youtube.al +youtube.am +youtube.at +youtube.az +youtube.ba +youtube.be +youtube.bg +youtube.bh +youtube.bo +youtube.by +youtube.ca youtube.cat +youtube.ch +youtube.cl +youtube.co youtube.co.ae youtube.co.at youtube.co.cr youtube.co.hu youtube.co.id youtube.co.il youtube.co.in youtube.co.jp youtube.co.ke youtube.co.kr youtube.co.ma youtube.co.nz youtube.co.th youtube.co.tz youtube.co.ug youtube.co.uk youtube.co.ve youtube.co.za youtube.co.zw youtube.comyoutube.com.aryoutube.com.auyoutube.com.azyoutube.com.bdyoutube.com.bhyoutube.com.boyoutube.com.bryoutube.com.byyoutube.com.coyoutube.com.doyoutube.com.ecyoutube.com.eeyoutube.com.egyoutube.com.esyoutube.com.ghyoutube.com.gryoutube.com.gtyoutube.com.hkyoutube.com.hnyoutube.com.hryoutube.com.jmyoutube.com.joyoutube.com.kwyoutube.com.lbyoutube.com.lvyoutube.com.lyyoutube.com.mkyoutube.com.mtyoutube.com.mxyoutube.com.myyoutube.com.ngyoutube.com.niyoutube.com.omyoutube.com.payoutube.com.peyoutube.com.phyoutube.com.pkyoutube.com.ptyoutube.com.pyyoutube.com.qayoutube.com.royoutube.com.sayoutube.com.sgyoutube.com.svyoutube.com.tnyoutube.com.tryoutube.com.twyoutube.com.uayoutube.com.uyyoutube.com.ve +youtube.cr +youtube.cz +youtube.de +youtube.dk +youtube.ee +youtube.es +youtube.fi +youtube.fr +youtube.ge +youtube.gr +youtube.gt +youtube.hk +youtube.hr +youtube.hu +youtube.ie +youtube.in +youtube.iq +youtube.is +youtube.it +youtube.jo +youtube.jp +youtube.kr +youtube.kz +youtube.la +youtube.lk +youtube.lt +youtube.lu +youtube.lv +youtube.ly +youtube.ma +youtube.md +youtube.me +youtube.mk +youtube.mn +youtube.mx +youtube.my +youtube.ng +youtube.ni +youtube.nl +youtube.no +youtube.pa +youtube.pe +youtube.ph +youtube.pk +youtube.pl +youtube.pr +youtube.pt +youtube.qa +youtube.ro +youtube.rs +youtube.ru +youtube.sa +youtube.se +youtube.sg +youtube.si +youtube.sk +youtube.sn youtube.soy +youtube.sv +youtube.tn +youtube.tv +youtube.ua +youtube.ug +youtube.uy +youtube.vnyoutubeeducation.comyoutubefanfest.comyoutubegaming.comyoutubego.co.idyoutubego.co.in youtubego.comyoutubego.com.br youtubego.id youtubego.inyoutubei.googleapis.comyoutubekids.comyoutubemobilesupport.com yt.be  ytimg.com + + CANONICAL launchpad.netlaunchpadlibrarian.comlaunchpadlibrarian.netlaunchpadlibrarian.org snapcraft.io snapstore.io +ubuntu.com +ubuntu.netubuntuforums.org canonical.com + +I2P +geti2p.net + + SITEPOINT sitepoint.com +& + STEAMUNLOCKEDsteamunlocked.net + +CLOJURE clojure.org + +FANDOM cursecdn.com +fandom.com  wikia.com  wikia.org dndbeyond.com futhead.com gamepedia.com muthead.comwikia.nocookie.netfandom.zendesk.com + +PIGAV  pigav.com + +VOXMEDIA cstatic.net +curbed.com  eater.comfunnyordie.com meridian.net polygon.com +racked.com +recode.net sbnation.com theverge.com vox-cdn.com vox.comvoxcreative.comvoxfieldguide.com voxmedia.com +voxops.net +; +WJX +sojump.com +wjx.cn wjx.com wjx.top +l +XUEQIU aiganggu.comdanjuanfunds.com +imedao.comsnowballsecurities.com +xueqiu.com +t + CAMBRIDGE cambridge.org"cambridgeschoolshakespeare.comcambridgedigital.netcambridgemaths.org +r + LAUNCHPAD launchpad.netlaunchpadlibrarian.comlaunchpadlibrarian.netlaunchpadlibrarian.org +7 + +LONDONREALfreedomplatform.tv londonreal.tv + + THEGUARDIAN theguardiandev-guardianapis.comdev-theguardian.com +gu-web.netguardianapis.comguardianapps.co.uk +guim.co.uktheguardian.comtheguardiandns.com +C +BOOKING +booking.cn +cn booking.com bstatic.com + +DISCORD +discord.co discord.com +discord.gg discord.gift discord.gifts discord.media discord.newdiscordapp.comdiscordapp.netdiscordstatus.com ++ +LINKEDIN linkedin.com  licdn.com + + TONGCHENG 40017.cn +17u.cn 17u.net 17usoft.com 17usoft.net  elong.comelongstatic.com +ly.com + +VGTIME +vgtime.com +* +BETTEREXPLAINEDbetterexplained.com +) +KEEP gotokeep.com keepcdn.com +W +MOJANGcallersbane.com minecraft.netminecraftshop.com +mojang.com + +MUNCLOUD muncloud.dog + +QMAP qmap.pub + +WEBFLOW webflow.com + +CONAIR  conair.me +) + LEANPLUM-ADS leanplum.com +ads + +LG +lg.com lgappstv.com  lge.co.kr lge.comlgecareers.com +lghvac.comlghvacstory.comlgrecyclingprogram.comlgsalesportal.comlgelectronics.122.2o7.net + +PSIPHON psiphon3.com + +YOUPORN youporn.com + +AVSFORUM avsforum.com + +IPFS ipfs.io +Y +JFROG  jfrog.com  jfrog.org bintray.com!d29vzk4ow07wi7.cloudfront.net +, +MEDIUM +medium.commedium.systems + + JFENGTIME jfengtime.com + +XHAMSTER xhamster.comxhamsterlive.com  xhcdn.comwidgets.stripst.com#collector.xhamster.com +ads + +MONOTYPEfontexplorerx.com  fonts.com  fonts.net fontbook.com fontshop.comfstopimages.com40fontshop-prod-responsive-images.s3.amazonaws.com linotype.com myfonts.com myfonts.net monotype.commonotypeimaging.com bitstream.com itcfonts.com + +RFI +rfi.fr +5 +SENSORSDATA-ADS"static.sensorsdata.cn +ads +k +SLING dishworld.comslinginternational.com  sling.commovenetworks.com +movetv.com + +BITMEX +bitmex.com + +DMZJ dmzj.com +( +IMGUR  imgur.com imgurinc.com + +LOGITECH logi.comlogicool.co.jp logicoolg.com logitech.biz logitech.com logitech.fr logitechg.com logitechg.frworldsfastestgamer.net + +YOULUCKY youlucky.com + +ZSH zsh.org + +JENKINS +jenkins.io + +JIYUKOBOjiyu-kobo.co.jp + +TGBUS  tgbus.com +' +ZEPLIN +zeplin.dev  zeplin.io + +HEGRE  hegre.com +@ + ZUOYEBANG zuoyebang.cc zuoyebang.com +zybang.com + +0X0 +0x0.st +- + ACFUN-ADS apilog-web.acfun.cn +ads +7 + FONTAWESOMEfontawesome.comfortawesome.com +$ +GFW  gfw.press +gfw.report + + MANMANBUY manmanbuy.com + +TSQUARE +tsquare.tv +k +IKEAikea.cn +cn ikea.com ikea.net  ingka.com  ingka.devingkacentres.com + + XIAOMITV-ADSad.intl.xiaomi.com +ads ad.mi.com +ads ad.xiaomi.com +adsadmob.xiaomi.com +adsad1.xiaomi.com +adsmistat.xiaomi.com +adstracking.miui.com +adsadv.sec.miui.com +ads"adv.sec.intl.miui.com +ads"misc.in.duokanbox.com +ads ad.hpplay.cn +adsadeng.hpplay.cn +ads kuyun.com +ads umeng.com +ads +" + MOCLOUDPLUSmocloudplus.com + +MOOV moov.hk + +OPENAI +openai.com + +HKGOLDEN hkgolden.com + +WHONIX +whonix.org + +WIKIHOW wikihow.com + +CAIXIN +caixin.com +3 + +CONTENTFULcontentful.com ctfassets.net + + +JAVLIBRARYjavlibrary.com + +TWITTERads-twitter.com periscope.tv pscp.tvt.co tellapart.com tweetdeck.com  twimg.com twitpic.com twitter.com +twitter.jptwitterinc.comtwitteroauth.comtwitterstat.us twtrdns.net  twttr.com vine.co + + +LANDOFHOPE landofhope.tv +2 +YNET ynet.cn ynet.com ynet.com.cn + + DAILYMAIL  anm.co.uk  dailym.aidailymail.co.uk dailymail.comdailymail.com.au dailymail.dkdailymailonline.comdmgmediaprivacy.co.ukmailhealth.commailonline.co.ukmailonline.commailonsunday.co.ukmailonsunday.ie metro.co.uk +mol.imthisismoney.co.uk +thismon.ee +U +SB +dns.sb ip.sb loli.net sb.sb sm.msu.nu +www.sb + +SMPTE  smpte.org + +TMTPOST tmtpost.com chaindd.com +72whys.com checkzeit.com +tivitv.com tigeek.net.cntmtsmartlife.comtmtsmartrun.com ++ +AFDIAN +afdian.net afdiancdn.com + + INTEL-DEV +01.org hyperscan.iointellinuxgraphics.comintellinuxgraphics.net +oneapi.comopenvinotoolkit.orgsnap-telemetry.io +acpica.com clearlinux.cn +cnclearlinux.org +ospray.net +ospray.org + + +JD3.cn  300hu.com +360buy.com 360buyimg.com +360top.com +7fresh.com baitiao.comblackdragon.com  caiyu.comchinabank.com.cn +dao123.comjcloud-cdn.comjcloud-live.comjcloud-oss.com +jcloud.comjcloudcache.com jcloudcs.com jclouddn.com jcloudec.com jcloudlb.comjcloudlive.com jcloudlv.com jcloudoss.com jcloudss.comjcloudstatic.comjcloudvideo.com  jclps.com +jd-app.com  jd-ex.com jd.cn jd.co.th +jd.com jd.hk jd.id jd.ru jdcache.com jdcloud.com jdcloudcs.comjdcloud-api.comjddapeigou.com jddebug.com jddglobal.com jdjinrong.com  jdpay.com jdpaydns.com jdx.com jdwl.comjingdongjinrong.com +jingxi.com +jkcsjd.com +joybuy.com  joybuy.eslinglonglife.com mayshijia.com minitiao.com  ocwms.com paidaojia.cn +paipai.comprestodb-china.com qianxun.comqingzhouip.com toplife.com +vg.com wangyin.com  wdfok.com yhd.com yihaodian.comyihaodianimg.com yiyaojd.com yizhitou.comads.union.jd.com +ads c-nfa.jd.com +adscps.360buy.com +ads +jzt.jd.com +ads stat.m.jd.com +ads img-x.jd.com +ads +} +SHOPIFY myshopify.com shopify.com shopify.devshopifycdn.comshopifystatus.comshopifysvc.com +L +APKPURE apkpure.com cdnpure.com pureapk.com +winudf.com + +DETTOLdettol-prize.com  dettol.at  dettol.be  dettol.ch  dettol.cl dettol.co.id dettol.co.in dettol.co.ke dettol.co.nz dettol.co.uk +dettol.com dettol.com.au dettol.com.bd dettol.com.br dettol.com.cn +cn dettol.com.eg dettol.com.hk dettol.com.my dettol.com.ng dettol.com.sg  dettol.cz  dettol.fr  dettol.hu  dettol.ie +dettol.net  dettol.nl  dettol.pk  dettol.pl  dettol.pt  dettol.rudettolarabia.comdettolcleannaija.comdettolsitishield.co.indettolthailand.comespadoldettol.com.ar + +OPENJSFOUNDATION amp.devampproject.comampproject.netampproject.orgcdn.ampproject.org +cnamp.akamaized.netelectronjs.org +jquery.comjquerymobile.com jqueryui.com mochajs.org +nodejs.org openjsf.org +# +QT qt.ioqt-project.org + +AHMIA ahmia.fi +, +GANJI  ganji.comganjistatic1.com +" +KODI kodi.tv  kodi.wiki + +OKEX okex.com +F + +DEVIANTARTdeviantart.comdeviantart.net da-files.com + +KERNEL +kernel.org + +YANDEXxn--d1acpjx3f.xn--p1ai  yandex.az  yandex.by yandex.co.il +yandex.com yandex.com.am yandex.com.ge yandex.com.tr  yandex.ee  yandex.kg  yandex.kz  yandex.lt  yandex.lv  yandex.md +yandex.net  yandex.ru  yandex.st  yandex.sx  yandex.tj  yandex.tm  yandex.ua  yandex.uzyandexcloud.net yastatic.net +yandex ++ +MYFONTS myfonts.com myfonts.net +0 + +SOUNDCLOUDsoundcloud.com +sndcdn.com + +TELEX telex.cc + +AIRWICK +airwick.at +airwick.be +airwick.ca +airwick.ch +airwick.cl airwick.co.in airwick.co.nz airwick.co.uk airwick.co.za airwick.comairwick.com.auairwick.com.brairwick.com.cn +cnairwick.com.mxairwick.com.tr +airwick.cz +airwick.de +airwick.dk +airwick.es +airwick.fi +airwick.fr +airwick.hr +airwick.hu +airwick.ie +airwick.it +airwick.jp airwick.net +airwick.nl +airwick.no +airwick.pl +airwick.pt +airwick.ro +airwick.ru +airwick.se +airwick.si +airwick.sk +airwick.tv +airwick.usairwickarabia.com vipoo.es + +BITTREX bittrex.com + +FINISH$dishwashingexpert.com.cn +cn  finish.at  finish.bg finish.co.kr finish.co.nz finish.co.uk finish.co.za finish.com.cn +cn finish.com.hr finish.com.tr  finish.de  finish.es  finish.fr  finish.gr  finish.hu  finish.lv  finish.pl  finish.pt  finish.ro  finish.si  finish.skfinisharabia.comfinishbrasil.com.brfinishdishwashing.cafinishdishwashing.com finishinfo.be finishinfo.clfinishinfo.comfinishinfo.com.arfinishinfo.com.au finishinfo.cz finishinfo.fi finishinfo.it finishinfo.jp finishinfo.nl finishinfo.no finishinfo.ru finishinfo.sefinishkilpailu.fi finishwin.beyarininsuyu.com + +HULU +112263.com callhulu.comfindyourlimits.com freehulu.com  hooloo.tv  hoolu.com hoolu.tv hu1u.com huloo.cc huloo.tv hulu.com hulu.tv hulu.ushuluaction.com +huluad.com huluapp.com huluasks.com hulucall.com hulufree.com hulugans.comhulugermany.com +hulugo.com +huluim.comhuluinstantmessenger.com huluitaly.com hulunet.comhulunetwork.com huluplus.comhulupremium.comhulupurchase.com +huluqa.comhulurussia.com huluspain.comhulusports.comhulustream.com huluteam.com +hulutv.com huluusa.comjoinmaidez.com mushymush.tv +myhulu.comoriginalhulu.com payhulu.comregisterhulu.comthehulubraintrust.comwwwhuluplus.com + +TENCENT dns.pub  dnsapi.cn  dnspod.cn +dnspod.com dnspod.com.cn +dnspod.net +dnspod.org  dnsv1.com  dnsv2.com  dnsv3.com  dnsv4.com  dnsv5.com doh.pub ad.qq.com +ads ad.qun.qq.com +ads!adfilter.imtt.qq.com +ads adping.qq.com +adsadpm.app.qq.com +adsadsclick.qq.com +adsadsfile.qq.com +adsadshmmsg.qq.com +adsadslvfile.qq.com +adsadslvseed.qq.com +ads%adsmind.apdcdn.tc.qq.com +adsadsqqclick.qq.com +adsadstestview.qq.com +adsadsview.qq.com +adsadsview2.qq.com +adsadv.app.qq.com +ads adver.qq.com +ads btrace.qq.com +adse.qq.com +adslog.tbs.qq.com +ads mpush.qq.com +ads mtrace.qq.com +ads push.qq.com +ads pgdt.gtimg.cn +ads +yuewen.com hongxiu.com lrts.me qdmm.com +qidian.com readnovel.com tingbook.com webnovel.com +xs8.cn xxsy.net +apcdns.net  cdn-go.cn cdntips.com foxmail.comfoxmail.com.cn gtimg.cn  gtimg.com gtimg.com.cn idqqimg.com imqq.com  myapp.com myqcloud.com +qcloud.com qcloudimg.com qlogo.cn qpic.cn +qq.com +qqmail.com  qzone.com +rtx.com.cnservicewechat.com smtcdns.com smtcdns.net +tencent.cn tencent.comtencent.com.cntencent.com.hktencent.net.cntencent-cloud.comtencentmusic.comtencentyun.com +tenpay.com +wechat.com +wegame.com wegame.com.cn +weiyun.com alloyteam.com imweb.io ivweb.io + +CNN cnn.com +cnn.io cnnarabic.com cnnlabs.com cnnmoney.ch cnnmoney.comcnnmoneystream.comcnnpolitics.com +3 +ELEME +ele.me elemecdn.com eleme.cn + +HUOBI +hbabit.com +hbfile.net  huobi.com huobi.me  huobi.pro huobi.sc huobiasia.viphuobigroup.comhuobitoken.com +0 + MIXPANEL-ADS decide.mixpanel.com +ads + +EPOCHMEDIAGROUP dajiyuan.com dajiyuan.eu edninfo.com epoch.cloud epoch.org.il epochbuy.com epochcar.com epochhk.com epochmall.comepochmediagroup.com epochshop.comepochstories.com epochtime.comepochtimes-bg.comepochtimes-romania.comepochtimes.co.ilepochtimes.co.krepochtimes.co.ukepochtimes.comepochtimes.com.auepochtimes.com.brepochtimes.com.sgepochtimes.com.twepochtimes.com.ua epochtimes.cz epochtimes.de epochtimes.eu epochtimes.fr epochtimes.it epochtimes.jp epochtimes.nl epochtimes.pl epochtimes.ru epochtimes.seepochtimeshk.orgepochtimestr.com epochweek.comepochweekly.com erabaru.net +etviet.comlagranepoca.com ntd.com  ntdca.com +ntdimg.com ntdtv.ca ntdtv.co.kr  ntdtv.com ntdtv.com.tw ntdtv.jp ntdtv.kr  ntdtv.org ntdtv.ru ntdtvla.com  ntdvn.compersianepochtimes.comtheepochtimes.comtheepochtimessubscribe.comvelkaepocha.cz +' +HM +hm.com hm.com.cn +cn +j +IMPERIALCOLLEGE ic.ac.ukimperial.ac.ukimperialbusiness.schoolimperial.insendi.com +6 +UDN udn.com +udn.com.twudnfunlife.com +C +ADDTHIS addthis.comaddthiscdn.comaddthisedge.com +_ +CATEGORY-WIKI-CNhuijistatic.com huijiwiki.com moegirl.orgmoegirl.org.cn + +CCBccb-life.com.cn ccb.com +ccbfund.cnccbfutures.comccbintl.com.hkccbleasing.com ccbseoul.comccbtrust.com.cn +* +DUOWAN +duowan.com dwstatic.com + +DOOM9  doom9.org +4 + ARCHLINUX archlinux.orgarchlinuxarm.org +% + FONTEXPLORERfontexplorerx.com +# + PRIVACYTOOLSprivacytools.io + +TIKTOK  amemv.com +muscdn.com +musical.ly +tiktok.com tiktokcdn.com tiktokv.com#p16-tiktokcdn-com.akamaized.net + +SSPLIVE +ssplive.pw +B + APPLOVIN-ADS applovin.com +ads +applvn.com +ads + +DELL +cfblob.comcloudchoose.comcloudvolumes.com +cmpaas.com +cpedge.comcrit-staging.comexperience-vmware.com gemfire.netgeodesummit.com getboxer.com gitstar.com gitstar.net gopivotal.net greenplum.net hwslabs.com immidio.comitfromtheinside.comlatamvmwareforum.compivotalinitiative.comsnapvolumes.com ssdevrd.com vcanedge.com vcloudair.net vfabric.netvidmpreview.com +virsto.com +virsto.net vmglobal.net +vmmark.comvmtestdrive.com vmw.comvmware-cloudmanagement.comvmware-techcenter.comvmware20mosaic.comvmwareausnews.com!vmwarecertificationvideos.comvmwarecloud.comvmwaredemandcenter.comvmwareemeablog.comvmwaregrid.comvmwarehorizon.comvmwareidentity.comvmwarelearning.comvmwarelearningplatform.comvmwarestuff.comvmwareusergroupstore.comvmwareviewpoint.com vmwarevmc.com vmwdemo.com vmwgcomms.comvmwhorizonair.comvmwidm-ads.com +vmwidm.comvmwlabconnect.comvmwlearningplatform.com vmworld.comvmworld2010.comvmworld2013.comvmwsalesrewards.comvmwservices.com +vnware.netwhychoosehorizon.comwhychooseview.comwhychoosevmwareeuc.comwindowsuem.comworkspaceair.com xlstudio.comavinetworks.com +badaas.com bitnami.combitnamiapp.combitnamistudio.comdockerizer.comcloudcredibility.comcloudhealthtech.com cloudlive.comkubeacademy.com kubeapps.com +nyansa.com velocloud.com gopivotal.com heptio.cn +cn +heptio.com aliveipc.com aliveitsm.comaliveprofiler.com alivercm.comaliverewind.com alivertsm.com alivevm.com alivevmax.com alivevue.com vsphere.com vsphere.net air-watch.comairwatchexpress.comairwatchqa.com +getws1.com getwsone.comwhatisairwatch.comwhatisworkspaceone.comworkspaceone.comvmware.tt.omtrdc.netdelldell-brand.com dell.com dellcdn.com + +FIRESIDE fireside.fm +, +MATTERS matters.news matters.one + +CATEGORY-SCHOLAR-CN +csdl.ac.cn  las.ac.cn cnki.netwanfangdata.com.cn  apabi.comcnthinkers.com  cqvip.com +, +THENATIONALPULSEthenationalpulse.com + + YUNFANJIASU yfcache.com +yfcalc.com yfcloud.com  yfdts.net  yfp2p.net +yfscdn.net yunfancdn.com +( +OPENCOLLECTIVEopencollective.com + +BESTBUY bby.combbycastatic.ca bbycloud.combbycontent.combbycontent.net bbyintl.com bbystatic.com  bbyurl.us bestbhy.combestbuy-audio.com"bestbuy-communityrelations.combestbuy-giftcard.infobestbuy-int.combestbuy-jobs.com +bestbuy.ca +bestbuy.cn +cn bestbuy.combestbuy.com.cn +cnbestbuy.com.mx bestbuy.infobestbuy24x7solutions.combestbuybusiness.com'#bestbuybusinessadvantageaccount.combestbuycanada.cabestbuycanada.combestbuycanadaltd.cabestbuycharityclassic.combestbuycoffeemakers.combestbuyethics.combestbuyforbusiness.cabestbuygsm.combestbuyideax.com!bestbuyphotoworkshoptours.combestbuyrewards.combestbuyrewardzone.ca bestbuys.combestbuysgeeksquad.combestbuysolutions.netbestbuystores.combestbuytradein.com bestbuyus.com besztbuy.com bextbuy.combienvenuechezbestbuy.ca cowboom.com futureshop.cainitproducts.commagnoliaav.com.cn +cn mybestbuy.commybestbuyclaims.commyrewardzone.com myrz.compacifickitchenandhome.comtiendabestbuy.comunbrandedproducts.comwelcometobestbuy.cawolfatbestbuy.comwolfatbestbuy.netwww-bestbuystores.comgeek-squad-support.comgeek-squad.netgeek-squad.orggeek-squads.net geeksquad.ca geeksquad.cc geeksquad.com geeksquad.net geeksquad.tvgeeksquadcares.comgeeksquadcentral.comgeeksquadforums.comgeeksquadonline.comgeeksquadprotectionplan.orggeeksquadservices.orggeeksquadwebroot.org gscanada.info +gsccdn.com  gslink.usonlinegeeksquad.comrocketfishproducts.com dealtree.orgtechliquidators.com +, +BYPASSCENSORSHIPbypasscensorship.org + +CCTV cctv.cn cctv.com cctvpic.com chinaepg.cn chinalive.com citv.net.cn cnms.net.cn cntv.cn cntv.com.cn +cctvlib.cncctvlibrary.cncctvlib.com.cncctvlibrary.com.cn +cctvpro.cncctvpro.com.cn  cntvwb.cn gjgbdszt.cngjgbdszt.com.cngjgbdszt.net.cn  ipanda.cn +ipanda.com ipanda.com.cn +ipanda.net livechina.cn livechina.comolympicchannelchina.cn tvcc.cn tvcc.com.cn%!xn--fiq53l6wcx3kp9bc7joo6apn8a.cn%!xn--fiq53l90et9fpncc7joo6apn8a.cn-)xn--fiq53l6wcx3kp9bc7joo6apn8a.xn--fiqs8s%!xn--kprv4ewxfr9cpxcc7joo6apn8a.cn-)xn--kprv4ewxfr9cpxcc7joo6apn8a.xn--fiqs8s zggbdszt.cnzggbdszt.com.cnzggbdszt.net.cnzygbdszt.net.cn + +CHANGE +change.org ++ +TRELLO +trello.com trellocdn.com +, +HITUN hitun.ioxn--90wwvt03e.com + +LETV-ADS#api.game.letvstore.com +ads ark.letv.com +ads dc.letv.com +adsdev.dc.letv.com +ads fz.letv.com +ads g3.letv.com +adsletv.allyes.com +adsminisite.letv.com +adsmsg.m.letv.com +adsn.mark.letv.com +adsplog.dc.letv.com +adspro.hoye.letv.com +ads pro.letv.com +ads stat.letv.com +ads"static.app.m.letv.com +ads +T + +PROTONMAIL protonmail.chprotonmail.comprotonstatus.com pm.me +F + +TAGTIC-ADS g1.tagtic.cn +adsxy-log.tagtic.cn +ads + +BILIBILI +acg.tv acgvideo.com +b23.tv biliapi.com biliapi.net bilibili.combilibiligame.net biligame.com biligame.net bilivideo.com  hdslb.com im9.com +mincdn.com$ upos-hz-mirrorakam.akamaized.net + +JITSI  jitsi.org +. +KUAIKAN kkmh.comkuaikanmanhua.com + +MAYING  maying.co ++ +WIKIDOT wdfiles.com wikidot.com + +ADBLOCKgetadblock.com +? +BOOTCSS bootcss.com +bootcdn.cnphpcomposer.com + +CANON canon c-ij.com canon-cee.comcanon-cmos-sensors.com canon-cna.comcanon-ebm.com.hkcanon-emea.comcanon-emirates.aecanon-europa.comcanon-europe.com canon-me.com canon-ois.qacanon-se.com.tw canon.am canon.at canon.az canon.ba canon.be canon.bg canon.ca canon.chcanon.cn +cn canon.co.il canon.co.uk canon.co.za  canon.com canon.com.al canon.com.au canon.com.by canon.com.cn +cn canon.com.cy canon.com.hk canon.com.mk canon.com.mt canon.com.my canon.com.tr canon.com.tw canon.cz canon.de canon.dk canon.ee canon.es canon.fi canon.fr canon.ge canon.gr canon.hr canon.hu canon.ie canon.it canon.kz canon.lt canon.lu canon.lv canon.me  canon.net canon.nl canon.no canon.pl canon.pt canon.ro canon.rs canon.ru canon.se canon.si canon.sk canon.tj canon.ua canon.uzcanonfoundation.orgcanonproprinters.com +6 +PROQUESTserialssolutions.com proquest.com +Z +XUNLEI  00cdn.com  88cdn.com +sandai.netthunderurl.com +xunlei.com +b + YAHOO-ADS ads.yahoo.com +adsgemini.yahoo.com +ads ysm.yahoo.com +ads +r +ZENDESK outbound.io zdassets.comzdusercontent.com zendesk.com  zndsk.com  zopim.com + +CDNJS  cdnjs.com +8 + KINGKONGLIVEkingkong.com.twkingkongapp.com +. +NETLIFY netlify.combitballoon.com +Z +PICSEE pics.ee  picsee.co +picsee.pro pise.pw pros.ee +pse.is + +NIXOS  nixos.org + +OVERCAST overcast.fm + +ADDTOANY addtoany.com +$ + BROWSERLEAKSbrowserleaks.com + + LINUXMINT linuxmint.com + +NINTENDO100classicbooks.com +amiibo.comayudanintendo.combowsersinsidestory.comexcitebots.comflipnotestudio.comgloryofheracles.comhackyourconsole.comkirbysuperstarultra.comkirbysepicyarn.comlegendofzelda.cn +cn legendofzelda.com.cn +cn miitomo.commiitomo.com.cn +cn miiverse.com nentindo.netnintendo-europe-sales.comnintendo-europe.com nintendo.at nintendo.be nintendo.chnintendo.co.jpnintendo.co.krnintendo.co.uknintendo.co.za nintendo.comnintendo.com.hknintendo.com.pt nintendo.de nintendo.dk nintendo.es nintendo.eu nintendo.fi nintendo.fr nintendo.it nintendo.net nintendo.nl nintendo.no nintendo.pt nintendo.ru nintendo.se nintendo.twnintendo3ds.comnintendodsi.comnintendoeurope.comnintendolabo.cn +cnnintendonetwork.netnintendonyc.comnintendostore.comnintendoswitch.comnintendoswitch.netnintendoswitchtogether.compersonaltrainermath.complaynintendo.comsupersmashbros.cn +cn!supersmashbros.com.cn +cnthelegendarystarfy.comthewonderful101.comwariolandshakeit.comwariowarediy.comyoshisnewisland.comac-pocketcamp.comdiddykongracing.com dkr.com donkeykongcountryreturns.comfire-emblem-heroes.comfireemblemawakening.com +dialga.com giratina.com +kyurem.com pokedex3d.compokemon-moon.compokemon-sun.compokemon-sunmoon.com pokemon.compokemonbank.compokemonblackwhite.com pokemonbw.compokemonchampionships.compokemongoldsilver.compokemonhome.compokemonletsgoeevee.compokemonletsgopikachu.compokemonmysterydungeon.compokemonpicross.compokemonplatinum.compokemonrubysapphire.compokemonsunmoon.compokemonswordshield.compokemonultrasunmoon.compokemonvgc.compokemonwifi.net xn--mts47c3w9b1qr.cn +cnxn--mts47c3w9b1qr.netsplatoon2tournament.com starfox.comdrmario-world.commarioandluigidreamteam.commariobroswii.com mariokart.cn +cnmariokart.com.cn +cnmariokart7.commariokart8.commariosupersluggers.comnewsupermariobrosu.comsupermario.comsupermario3dworld.com!supermariobros.com.cn +cnsupermariogalaxy.comsupermariorun.comsuperpapermario.comnintendowii.com  wii-u.com +wiifit.com wiifitu.com wiipartyu.com wiisports.comwiisportsresort.comwiiugamepad.com  wiivc.net xenoblade.com +e +METART +metart.commetartnetwork.com metcams.comnaiadsystems.com  nsimg.net +% +NGINX  nginx.com  nginx.org + + SOUNDOFHOPE bayvoice.net ozvoice.org sohcradio.com sohfrance.orgsoundofhope.krsoundofhope.orgwanokokorosoh.com + + SPEEDTEST  cdnst.net cellmaps.com ekahau.cloud +ekahau.com  ookla.comooklaserver.net pingtest.net speedtest.co speedtest.netspeedtestcustom.com webtest.netOB^speed\.(coe|open)\.ad\.[a-z]{2,6}\.prod\.hosts\.ooklaserver\.net$ +ads + + BREITBART breitbart.com + +CUP +cup.com.hk +: +ESRI +arcgis.comarcgisonline.com esri.com +& +JABLE cdnlab.live jable.tv + +VEET veet.at veet.be veet.ca veet.ch veet.clveet.cn +cn +veet.co.id +veet.co.in +veet.co.kr +veet.co.nz +veet.co.uk +veet.co.za veet.com veet.com.ar veet.com.au veet.com.bd veet.com.br veet.com.cn +cn veet.com.co veet.com.hk veet.com.mx veet.com.my veet.com.ph veet.com.pk veet.com.sg veet.com.tr veet.de veet.dk veet.es veet.fi veet.fr veet.hu veet.jp veet.nl veet.no veet.pt veet.ro veet.ru veet.se veet.tv veet.usveetarabia.comveetbangladesh.comveetcentroamerica.com veetclub.it +f +OOKLA-SPEEDTEST-ADSOB^speed\.(coe|open)\.ad\.[a-z]{2,6}\.prod\.hosts\.ooklaserver\.net$ +ads + + STACKEXCHANGE askubuntu.comblogoverflow.commathoverflow.netserverfault.com sstatic.net stackapps.com stackauth.comstackexchange.com stackmod.blogstackoverflow.blogstackoverflow.comstackoverflow.emailstackoverflowbusiness.comstacksnippets.net superuser.com tex-talk.netthesffblog.com + +VIMEO +vhx.tv +vhxqa1.com +vhxqa2.com +vhxqa3.com +vhxqa4.com +vhxqa6.comvimeo-staging.comvimeo-staging2.com  vimeo.com vimeo.frvimeobusiness.com vimeocdn.comvimeogoods.comvimeoondemand.comvimeostatus.comlivestream.com +# +DCARD dcard.io dcard.tw + +KRAKEN +kraken.com +C +MAOCLOUD +maoyun.commaoyuncloud.cnmaoyuncloud.com + +NTC  ntc.party +, +BANDCAMP bandcamp.com +bcbits.com +3 + +CITIZENLAB citizenlab.cacitizenlab.org +) + GATEWAYPUNDITthegatewaypundit.com +* +PAYPALaccount-paypal.infoaccount-paypal.netaccount-paypal.orgaccountpaypal.comaccountpaypal.netaccountpaypal.org anfutong.cn +cn anfutong.comanfutong.com.cn +cn beibao.cn +cn +beibao.com beibao.com.cn +cn bill-safe.combillmelater.combillmelater.infobillmelater.net bml.infobuyfast-paysmart.net cashify.comdevtools-paypal.comexperiencebillmelater.comfundpaypal.com +gmoney.org +i-o-u.infologin-paypal.comlogin-paypal.infomywaytopay.infomywaytopay.net +pa9pal.com paaypal.com  paily.net  paily.org +paipal.com +pavpal.com paydiant.com paylike.com +paypa1.com +paypa1.org paypaal.compaypal-activate.compaypal-activate.infopaypal-activate.orgpaypal-apac.compaypal-apps.compaypal-biz.compaypal-brandcentral.compaypal-business.compaypal-business.netpaypal-business.orgpaypal-cardcash.compaypal-cash.compaypal-center.compaypal-center.infopaypal-center.netpaypal-center.orgpaypal-communication.compaypal-communications.compaypal-communications.netpaypal-community.compaypal-community.netpaypal-comunidad.compaypal-corp.compaypal-database.compaypal-database.uspaypal-donations.compaypal-dynamic.compaypal-engineering.compaypal-europe.compaypal-excelinvoicing.compaypal-exchanges.compaypal-forward.compaypal-galactic.compaypal-gift.compaypal-gifts.compaypal-gpplus.compaypal-here.compaypal-hrsystem.compaypal-innovationlab.compaypal-integration.compaypal-japan.compaypal-knowledge.compaypal-labs.compaypal-latam.compaypal-learning.compaypal-login.compaypal-login.infopaypal-login.orgpaypal-login.uspaypal-luxury.compaypal-mainstreet.netpaypal-marketing.compaypal-media.compaypal-merchantloyalty.compaypal-mobilemoney.compaypal-network.orgpaypal-notice.compaypal-notify.compaypal-online.infopaypal-online.netpaypal-online.orgpaypal-optimizer.compaypal-pages.compaypal-photocard.compaypal-plaza.compaypal-portal.compaypal-prepagata.compaypal-prepagata.netpaypal-prepaid.compaypal-profile.compaypal-proserv.compaypal-qrshopping.orgpaypal-recargacelular.compaypal-redeem.compaypal-referral.compaypal-retail.compaypal-scoop.compaypal-search.compaypal-secure.netpaypal-secure.orgpaypal-security.netpaypal-security.orgpaypal-service.orgpaypal-signin.compaypal-signin.uspaypal-special.compaypal-specialoffers.compaypal-sptam.compaypal-support.compaypal-survey.compaypal-survey.orgpaypal-status.compaypal-team.compaypal-viewpoints.net  paypal.ca +paypal.com paypal.com.cn +cn paypal.com.hk paypal.com.sg  paypal.hk paypal.info  paypal.jp  paypal.me paypal.net.cn +cn paypal.org.cn +cn  paypal.so  paypal.uspaypalbeacon.compaypalbenefits.compaypalbrasil.compaypalcommunity.cn +cnpaypalcommunity.compaypalcommunity.netpaypalcommunity.orgpaypalcorp.compaypalcredit.compaypalcreditcard.compaypalgivingfund.org paypalhere.cn +cnpaypalhere.compaypalhere.com.cn +cnpaypalhere.infopaypalhere.netpaypalhere.org paypalhere.tv paypali.net paypalinc.compaypalindia.compaypalinsuranceservices.org paypall.compaypallabs.com paypalme.com paypalnet.net paypalnet.orgpaypalnetwork.infopaypalnetwork.netpaypalnetwork.orgpaypalobjects.compaypalonline.netpaypalonline.orgpaypalprepagata.compaypalprepagata.netpaypalservice.compaypalshopping.compaypalshopping.netpaypalsurvey.com paypalx.com paypaly.com payppal.com payypal.compdncommunity.com +pp-soc.com ppaypal.com  pppds.com pypl.com  pypl.info pypl.net pypl.tvsecure-paypal.infosecurepaypal.info sslpaypal.orgthepaypalshop.comtheshoppingexpresslane.netwww-paypal.info www-paypal.usxn--bnq297cix3a.cn +cnbraintreegateway.combraintreegateway.tvbraintreepayments.combraintreepayments.infobraintreepayments.orgbraintreepayments.tv!braintreepaymentsolutions.combraintreeps.combriantreepayments.netbriantreepayments.tv card.iogetbraintree.com krakenjs.comloanbuilder.comswiftcapital.com simility.com cashify.netswiftbank.info swiftbank.usswiftfinancial.comswiftfinancial.infoswiftfinancial.netvenmo-touch.com  venmo.com +venmo.info  venmo.net  venmo.org  cash2.comfilipino-music.net +s-xoom.comwebmoneyinfo.com2.wiremoneytoirelandwithxoomeasierandcheaper.com wwwxoom.comxoom-experience.com xoom.com xoom.io xoom.net.cn +cn xoom.us xoomcom.comvenmo.s3.amazonaws.com +1 +HOMEBREW brew.shhomebrew.bintray.com +d + JUSTMYSOCKSjustmysocks.netjustmysocks1.netjustmysocks2.netjustmysocks4.net + +OCULUS binoculus.com buyoculus.com ocul.usoculus-china.com +oculus.comoculus2014.com oculus3d.comoculusblog.comoculusbrand.comoculuscasino.net oculuscdn.comoculusconnect.comoculusdiving.comoculusforbusiness.comoculusrift.com oculusvr.compowersunitedvr.com + +WEBEX webex.ca webex.co.in webex.co.it webex.co.jp webex.co.kr webex.co.nz webex.co.uk  webex.com webex.com.au webex.com.br webex.com.cn +cn webex.com.hk webex.com.mx webex.de webex.es webex.fr + +ADOBE-ACTIVATION3dns-1.adobe.com3dns-2.adobe.com3dns-3.adobe.com3dns-4.adobe.com3dns-5.adobe.com3dns.adobe.comactivate-sea.adobe.comactivate-sjc0.adobe.comactivate.adobe.comactivate.wip1.adobe.comactivate.wip2.adobe.comactivate.wip3.adobe.comactivate.wip4.adobe.comadobe-dns-1.adobe.comadobe-dns-2.adobe.comadobe-dns-3.adobe.comadobe-dns-4.adobe.comadobe-dns.adobe.com adobeereg.comcrl.versign.netereg.adobe.comereg.wip.adobe.comereg.wip1.adobe.comereg.wip2.adobe.comereg.wip3.adobe.comereg.wip4.adobe.comhl2rcv.adobe.comhlrcv.stage.adobe.comlm.licenses.adobe.comlmlicenses.wip4.adobe.comna1r.services.adobe.comood.opsource.netpractivate.adobepractivate.adobe.compractivate.adobe.ipppractivate.adobe.newoapractivate.adobe.ntp wip.adobe.comwip1.adobe.comwip2.adobe.comwip3.adobe.comwip4.adobe.comwwis-dubc1-vip100.adobe.comwwis-dubc1-vip101.adobe.comwwis-dubc1-vip102.adobe.comwwis-dubc1-vip103.adobe.comwwis-dubc1-vip104.adobe.comwwis-dubc1-vip105.adobe.comwwis-dubc1-vip106.adobe.comwwis-dubc1-vip107.adobe.comwwis-dubc1-vip108.adobe.comwwis-dubc1-vip109.adobe.comwwis-dubc1-vip110.adobe.comwwis-dubc1-vip111.adobe.comwwis-dubc1-vip112.adobe.comwwis-dubc1-vip113.adobe.comwwis-dubc1-vip114.adobe.comwwis-dubc1-vip115.adobe.comwwis-dubc1-vip116.adobe.comwwis-dubc1-vip117.adobe.comwwis-dubc1-vip118.adobe.comwwis-dubc1-vip119.adobe.comwwis-dubc1-vip120.adobe.comwwis-dubc1-vip121.adobe.comwwis-dubc1-vip122.adobe.comwwis-dubc1-vip123.adobe.comwwis-dubc1-vip124.adobe.comwwis-dubc1-vip125.adobe.comwwis-dubc1-vip30.adobe.comwwis-dubc1-vip31.adobe.comwwis-dubc1-vip32.adobe.comwwis-dubc1-vip33.adobe.comwwis-dubc1-vip34.adobe.comwwis-dubc1-vip35.adobe.comwwis-dubc1-vip36.adobe.comwwis-dubc1-vip37.adobe.comwwis-dubc1-vip38.adobe.comwwis-dubc1-vip39.adobe.comwwis-dubc1-vip40.adobe.comwwis-dubc1-vip41.adobe.comwwis-dubc1-vip42.adobe.comwwis-dubc1-vip43.adobe.comwwis-dubc1-vip44.adobe.comwwis-dubc1-vip45.adobe.comwwis-dubc1-vip46.adobe.comwwis-dubc1-vip47.adobe.comwwis-dubc1-vip48.adobe.comwwis-dubc1-vip49.adobe.comwwis-dubc1-vip50.adobe.comwwis-dubc1-vip51.adobe.comwwis-dubc1-vip52.adobe.comwwis-dubc1-vip53.adobe.comwwis-dubc1-vip54.adobe.comwwis-dubc1-vip55.adobe.comwwis-dubc1-vip56.adobe.comwwis-dubc1-vip57.adobe.comwwis-dubc1-vip58.adobe.comwwis-dubc1-vip59.adobe.comwwis-dubc1-vip60.adobe.comwwis-dubc1-vip61.adobe.comwwis-dubc1-vip62.adobe.comwwis-dubc1-vip63.adobe.comwwis-dubc1-vip64.adobe.comwwis-dubc1-vip65.adobe.comwwis-dubc1-vip66.adobe.comwwis-dubc1-vip67.adobe.comwwis-dubc1-vip68.adobe.comwwis-dubc1-vip69.adobe.comwwis-dubc1-vip70.adobe.comwwis-dubc1-vip71.adobe.comwwis-dubc1-vip72.adobe.comwwis-dubc1-vip73.adobe.comwwis-dubc1-vip74.adobe.comwwis-dubc1-vip75.adobe.comwwis-dubc1-vip76.adobe.comwwis-dubc1-vip77.adobe.comwwis-dubc1-vip78.adobe.comwwis-dubc1-vip79.adobe.comwwis-dubc1-vip80.adobe.comwwis-dubc1-vip81.adobe.comwwis-dubc1-vip82.adobe.comwwis-dubc1-vip83.adobe.comwwis-dubc1-vip84.adobe.comwwis-dubc1-vip85.adobe.comwwis-dubc1-vip86.adobe.comwwis-dubc1-vip87.adobe.comwwis-dubc1-vip88.adobe.comwwis-dubc1-vip89.adobe.comwwis-dubc1-vip90.adobe.comwwis-dubc1-vip91.adobe.comwwis-dubc1-vip92.adobe.comwwis-dubc1-vip93.adobe.comwwis-dubc1-vip94.adobe.comwwis-dubc1-vip95.adobe.comwwis-dubc1-vip96.adobe.comwwis-dubc1-vip97.adobe.comwwis-dubc1-vip98.adobe.comwwis-dubc1-vip99.adobe.com +f +COURSERAcoursera-for-business.orgcoursera.community coursera.help coursera.org +: + SOFTETHER softether.orgsoftether-download.com + +DOI doi.org doi.info + +RIOThistoryofdota.comhistoryofdota.nethistoryofdota.orginstituteofwar.orgmolesports.com rgpub.ioriot-games.com riot.com riot.net riotcdn.netriotgames.co.kr riotgames.comriotgames.info riotgames.jp riotgames.net riotgames.tv riotpin.comriotpoints.com rstatic.net supremacy.com supremacy.net championshipseriesleague.com lcsmerch.comleaguehighschool.comleagueoflegends.caleagueoflegends.cn +cnleagueoflegends.co.krleagueoflegends.comleagueoflegends.infoleagueoflegends.krleagueoflegends.netleagueoflegends.orgleagueoflegendsscripts.comleaguesharp.infoleaguoflegends.comlearnwithleague.comlol-europe.com lolclub.org lolespor.comlolesports.com lolfanart.net +lolpcs.com lolshop.co.kr lolstatic.comlolusercontent.com +lpl.com.cn +cn pvp.net +pvp.tv ulol.comlolstatic-a.akamaihd.netplayvalorant.comriotforgegames.comruinedking.comconvrgencegame.com + +WTO wto.org + +ZEETV +z5.app +z5.com zee5.com zee5.in zee5.tvzeebioskop.com zeetv.co.uk  zeetv.com  zeeuk.com +) +NPMJS  npmjs.com npm.community +i +RAZER  razer.comrazersupport.com razerzone.com razerzone.jprespawnbyrazer.com +0 + COWTRANSFER c-t.workcowtransfer.com +4 +CSIS csis.orgcsis-prod.s3.amazonaws.com +, + +HOTJAR-ADSstatic.hotjar.com +ads +! + +MASTERCARD mastercard.ae mastercard.at mastercard.az mastercard.ba mastercard.be mastercard.bg mastercard.by mastercard.ca mastercard.ch mastercard.cl mastercard.cn +cnmastercard.co.idmastercard.co.ilmastercard.co.inmastercard.co.jpmastercard.co.kemastercard.co.krmastercard.co.nzmastercard.co.thmastercard.co.ukmastercard.co.vemastercard.co.zamastercard.commastercard.com.armastercard.com.aumastercard.com.bhmastercard.com.brmastercard.com.bzmastercard.com.cn +cnmastercard.com.comastercard.com.cymastercard.com.egmastercard.com.gemastercard.com.gtmastercard.com.hkmastercard.com.kwmastercard.com.lbmastercard.com.mxmastercard.com.mymastercard.com.ngmastercard.com.pemastercard.com.phmastercard.com.samastercard.com.sgmastercard.com.trmastercard.com.twmastercard.com.vemastercard.com.vn mastercard.cz mastercard.de mastercard.dk mastercard.es mastercard.eu mastercard.fi mastercard.fr mastercard.gr mastercard.hr mastercard.hu mastercard.iemastercard.inc mastercard.it mastercard.jo mastercard.ke mastercard.kz mastercard.lu mastercard.md mastercard.my mastercard.nl mastercard.no mastercard.om mastercard.pl mastercard.pt mastercard.qa mastercard.ro mastercard.rs mastercard.ru mastercard.se mastercard.si mastercard.sk mastercard.ua mastercard.usareyoucreditwise.comborderlessprepaid.combranchportal.com idservice.incinclusivegrowthscore.com findacard.com mastercad.commastercard-email.commastercardacademy.commastercardadvisors.commastercardcenter.commastercardcenter.org*&mastercardcenterforinclusivegrowth.orgmastercardconnect.commastercardezsavings.commastercardidtheftalerts.commastercardrestaurant.commastercardservices.commastercardworldwide.commasterpassteststore.commasterintelligence.commcpeaceofmind.commyaccountglobalcash.commycardbenefits.comonedinesfree.com paypass.netpieceofplastic.compredictivetechnologies.com priceless.com pricelessmarketingengine.comsbitravelcard.comshoppercentre.com!smartcommunitiescoalition.com!smartcommunitiescoalition.org startpath.comtaptotokyo.comtasteofpremium.jptravelcontroller.comwwwpaypass.combecomeindex.comcashpassport.cacashpassport.co.zacashpassport.comcashpassport.com.brcashpassport.netcorporatecashpassport.comicashpassport.com.mxintercamcashpassport.com.mx!multicurrencycashpassport.comshinhangmc.commastercardbiz.camastercardbiz.com!mastercardbusinessnetwork.com +nab.com.aunabtravellercard.com.au 53world.com53worldsweeps.comlovethiscity.commastercardmoments.compahabicilemezsurprizler.com priceless.compriceless.com.cn +cn priceless.orgpricelessafrica.compricelessarabia.compricelessaruba.compricelessbeijing.cn +cnpricelessbeijing.com#pricelessbeijing.com.cn +cnpricelesshongkong.compricelesshonolulu.compricelesspick.compricelesssantiago.compricelesssydney.compricelesssurprises.compricelesstoronto.capricelesstv.com simplify.comsimplifycommerce.comcashpassportglobe.comgwktravelex.nl travelex.be travelex.bh travelex.catravelex.co.intravelex.co.jptravelex.co.nztravelex.co.uk travelex.comtravelex.com.autravelex.com.cn +cntravelex.com.hktravelex.com.mytravelex.com.omtravelex.com.tr travelex.de travelex.fr travelex.it travelex.qatravelexae.comtravelexch.comtravelexmoneycard.combidvestbank.co.zaworldcurrencycard.co.zanab.demdex.net&"nationalaustraliaban.tt.omtrdc.net + +CATEGORY-BANK-CN +boc.cnbankofchina.combocaviation.com  boccfc.cn  bocgi.com bocgins.com  bochk.com bocichina.com bocigroup.com  bocim.combocservices.com.cnccb-life.com.cn ccb.com +ccbfund.cnccbfutures.comccbintl.com.hkccbleasing.com ccbseoul.comccbtrust.com.cn cignacmb.comcmb-leasing.com cmbchina.com cmbi.com.hkcmbwinglungbank.com cmfchina.comicbc icbc-ltd.com icbc-uk.com icbc-us.com +icbc.co.id icbc.com.cn icbc.com.mo icbc.com.pe icbc.com.sg icbcasia.com icbcbr.com.bricbclondon.com +icbcmy.comicbcstandard.comicbcstandardbank.comicbcstandardresources.comicbcstandardsecurities.com icbcswiss.com icbccs.com.cn  95516.com unionpay.comunionpayintl.comunionpaysecure.com abchina.com bankcomm.combankofbeijing.com.cn bosc.cn +bsb.com.cn ccb.comcgbchina.com.cn +cib.com.cncitibank.com.cn cmbc.com.cn hsbc.com.cn +hxb.com.cn njcb.com.cn psbc.com spdb.com.cn  whccb.com +) +DRIBBBLE drbl.in dribbble.com +( +LTN +ltn.com.tw yes123.com.tw +h +51JOB  51job.com 51jobcdn.comyingjiesheng.comyingjiesheng.netzhiding.com.cn +. +XDAxda-developers.com xda-cdn.com + +PKOPLINK pkoplink.com + +WARROOM warroom.org +9 +YOUZAN +youzan.com yzcdn.cn youzanyun.com + +AOMEDIA aomedia.org +% + +CHINAPOWERchinapower.csis.org +O +COSTCOcostco-static.com +costco.comcostcobusinessdelivery.com + +DENO  deno.land + +AAEX aaex.uk + +AP +ap.org +apnews.com +T + DLERCLOUD dlercloud.com dlercloud.org dlercloud.me dleris.best +j + PLAYSTATION playstationplaystation.complaystation.net sonyentertainmentnetwork.com +( +CHINAZ +chinaz.com +chinaz.net + +IEEE ieee.org ieee.tvtryengineering.org ieee-ccnc.org ieee-ecce.org ieeemce.orgstandardsuniversity.orgieee-region6.org ieee.ca ieeer10.org +ieeer5.org +ieeer8.org ieeeusa.orgieeefoundation.orgieee-into-focus.org ieee-vics.org ieeeday.orgdatasheets360.comglobalspec.com ieee-isto.orgtechstreet.com computer.org +comsoc.org embs.org emcs.org grss-ieee.org ieee-aess.org ieee-cas.org ieee-ceda.orgieee-edusociety.org ieee-ies.org ieee-ims.org ieee-npss.org ieee-pels.org ieee-pes.org ieee-ras.orgieee-sensors.org ieee-tems.org ieee-uffc.org ieeeaps.org ieeecsc.org ieeecss.org ieeedeis.orgieeemagnetics.org ieeenano.org ieeeoes.org ieeesmc.orgieeesystemscouncil.org  itsoc.org mtt.orgphotonicssociety.orgsignalprocessingsociety.orgtechnologyandsociety.org vtsociety.org + +REMIREPO remirepo.net + +91PORN +91porn.com + + CHINAUNICOM  10010.com 10010.com.cnchinaunicom.comchinaunicom.com.cnchinaunicom.com.hkchinaunicomglobal.commychinaunicom.com  wo.com.cn + +BITSTAMP bitstamp.net +E +ETHEREUM +devcon.orgethereum.foundation ethereum.org + +JUEJIN  juejin.cn  juejin.im xitu.iop1-juejin.byteimg.comp2-juejin.byteimg.comp3-juejin.byteimg.comp4-juejin.byteimg.comp5-juejin.byteimg.comp6-juejin.byteimg.comp7-juejin.byteimg.comp8-juejin.byteimg.comp9-juejin.byteimg.com +# + MOPUB-ADS mopub.com +ads + +NIKEnikeair-nike-shoes.com airmax360.combeijingnike.combetternike.combuynikechina.comcheap-nike.comcheapnikedunks.comcheapnikeoutlet.comclassicnike.comcnnikebrand.comcustomnikeshoes.com easynike.com +eenike.comfashionnike.com finenike.comfoampositeshoes.comgoldnikeclub.com +gonike.comhandbags-nike.comhightopnikes.com +idnike.cominikesneakers.com just-do-it.cn +cn justdoit.uskicksnike1.comkidsnikeshoes.com +mynike.comnike-air-max.comnike-dunksb.com nike-fr.com nike-org.com nike-shox.cn +cn nike-uk.com nike-us.com nike-usa.com nike.cinike.cn +cn nike.com nike.com.br nike.com.hk nike.gy nike.hk  nike.shop nike.usnike.xn--hxt814e nike0594.com +nike23.comnikeadidas.comnikeairhuarache.comnikeairmax.comnikeairmaxs.comnikeairmaxshoes.comnikeairrift.com nikeasia.comnikeaustralia.com nikeaw77.com  nikeb.com nikebbn.comnikebetrue.comnikebetterworld.cn +cnnikebetterworld.com"nikebetterworld.com.cn +cnnikebetterworld.infonikebetterworld.netnikebetterworld.org nikebiz.info nikebuy.com +nikeby.com nikecdn.comnikecompany.comnikeconfluence.com nikechina.cn +cnnikechosen.com nikecloud.com nikeclub.com nikecraft.com nikedawn.com nikedunks.netnikedunksshoes.com nikeelite.comnikefactorystore.com nikefind.com nikefirm.comnikefoamposites.comnikefoampositeshoes.comnikefootballcleats.comnikefootballgloves.comnikefootballjersey.comnikefoundation.org +nikefr.comnikefrance.com nikefree.comnikefreeshoes.comnikefuelband.comnikegadgets.comnikegenealogy.com nikegolf.ca nikegolf.cn +cn nikegrid.com nikehelp.comnikehightops.comnikehyperdunk.com nikeid.cn +cn nikeid.com.cn +cnnikeidshoes.com nikeinc.comnikeinc.com.cn +cnnikeincchemistry.comnikeinstock.com +nikeit.comnikeitalia.com nikeitaly.com +nikekd.com nikekid.com +nikelab.cn +cnnikelab.com.cn +cn nikelink.comnikeliuxiang.cn +cnnikeliuxiang.comnikeliuxiang.com.cn +cn nikelives.comnikelunarglide.com nikemall.cn +cnnikemall.com.cn +cnnikemarketing.com nikenews.com +niken7.comnikeonlinestore.comnikeoutletstore.comnikeoutletstores.comnikepioneer.com nikeplus.com nikeplus.org nikepress.com nikeprice.comnikeproduct.comnikepromax.comnikeresponsibility.comnikereuseashoe.comnikerunclub.cn +cnnikerunclub.com.cn +cnnikerunner.comnikerunning.com.cn +cnnikerunningshoes.com +nikesb.comnikesbdunks.netnikeseason.comnikeselling.comnikesellorder.comnikeshoemarket.comnikeshoes-store.comnikeshoes21.comnikeshoes4u.comnikeshoescity.comnikeshoesgroup.comnikeshoesinc.comnikeshoesmarket.comnikeshoesretro.comnikeshoeswon.comnikeshoponline.comnikeshoxsale.com nikesku.comnikesnowboarding.comnikesoccercleats.comnikesportswear.comnikestares.com nikestore.cn +cn nikestore.comnikestore.com.aunikestyles.com nikeswim.comniketaiwan.netniketracking.comniketradeweb.comniketrainer.comniketrainers.comniketraining.com nikeusa.com nikewear.com  nikey.com nikezoom.com nke6.comoutletnike.com runnike.comrunningnike.comsale-nikeshoes.comstatic-nike.com swoo.sh +swoosh.com  swoosh.tvthedailysnkr.comverygoodnike.comwomensnikeshox.comxn--74q035i.xn--hxt814e + +TWISTERtwister.net.co +( +UCLOUD  ucloud.cn ufileos.com + +BBGWATCH bbgwatch.com + +BETHESDA +beth.games bethesda.netbethesdagamestudios.com bethsoft.com doom.comelderscrolls.com + +EVERNOTE evernote.com + +LINOTYPE linotype.com +: +POLYMERpolymer-project.orgpolymerproject.org +( +CAIJINGLENGYANcaijinglengyan.com + +DOGECOIN dogecoin.com + +GUOKR  guokr.com +C + SCIENCEDIRECTsciencedirect.comsciencedirectassets.com + + LARACASTS laracasts.com +Q +NEWSMAXandysparis.com newsmax.com +newsmax.in newsmaxtv.com +& + CHINADECODINGchinadecoding.com +H +COOLAPK coolapk.comcoolapkmarket.comcoolapkmarket.net + +DIGICERT digicert.comdigitalcertvalidation.com freessl.com geotrust.com rapidssl.com +thawte.com  thawte.de  thawte.fr +* +JAVWIDE +javwide.tv javwide.com + +XART  x-art.com + +COINBASE coinbase.com + +MANORAMAmalayalamanorama.com manorama.commanoramanews.commanoramaonline.commanoramayearbook.inonmanorama.com radiomango.fm  theman.in +theweek.invanitaonline.com +vanitha.invanithaveedu.com +^ +SWIFTappleswift.com  swift.org +swiftui.cn +cnswiftui.com.cn +cn + + NBCUNIVERSALdreamworks.com cnbc.com +cnbcfm.com  msnbc.com +nbc.co nbc.com nbcnews.comnbcolympics.com nbcsports.com +nbcuni.comnbcuniversal.com s-nbcnews.com peacocktv.comuniversalorlando.comuniversalpictures.com&"universalpicturesinternational.com!universalstudioshollywood.com + + +SF-EXPRESS  feng1.comrongechain.comsf-airlines.comsf-cityrush.comsf-express.comsf-financial.com sf-saas.comsf-tech.com.cn sfcar.hk sffix.cn sfgy.org + +SUPERSONIC-ADSsupersonic.com +adssupersonicads.com +ads +ssacdn.com +ads)supersonicads-a.akamaihd.net +ads + +XIAOMI +mi.com +mi-img.com  mifile.cn miui.com +miwifi.com  xiaomi.cn +xiaomi.com +xiaomi.netxiaomiyoupin.com +2 +ALIBABA alibaba +alipay +taobao tmall a.alimama.cn +adsacjs.aliyun.com +adsadash.m.taobao.com +ads!adashbc.m.taobao.com +ads"adashbc.ut.taobao.com +ads"adash-c.ut.taobao.com +ads adashx.m.taobao.com +ads$adashx4ae.ut.taobao.com +ads#adashx4yt.m.taobao.com +ads#adashxgc.ut.taobao.com +adsadsh.m.taobao.com +adsafp.adchina.com +adsafp.alicdn.com +ads agoodm.m.taobao.com +ads#agoodm.wapa.taobao.com +ads alipaylog.com +adsamdc.alipay.com +adsamdc.m.taobao.com +ads api.wapa.taobao.com +ads#api.waptest.taobao.com +adsapoll.m.taobao.com +ads#appdownload.alicdn.com +adsatanx.alicdn.com +adsatanx2.alicdn.com +adscbu01.alicdn.com +adscdn0.mobmore.com +adsclick.aliyun.com +ads&click.mz.simba.taobao.com +adscm.ipinyou.com +ads cm.mlt01.com +ads!dsp.simba.taobao.com +adserr.taobao.com +adsex.mobmore.com +ads ex.puata.info +ads!fav.simba.taobao.com +ads$feedback.whalecloud.com +adsff.win.taobao.com +ads fm.p0y.cn +adsg.click.taobao.com +ads +g.tbcdn.cn +adsgma.alicdn.com +adsgtms01.alicdn.com +adsgtms02.alicdn.com +adsgtms03.alicdn.com +adsgtms04.alicdn.com +adshydra.alibaba.com +ads'hz.pre.tbusergw.taobao.net +ads#hz.tbusergw.taobao.net +ads i.ipinyou.com +adsinit.phpwind.com +ads!intl.wapa.taobao.com +ads$intl.waptest.taobao.com +ads"jxlog.istreamsche.com +adslog.umtrack.com +adsm.intl.taobao.com +adsm.simba.taobao.com +adsmatch.p4p.1688.com +ads%material.istreamsche.com +ads mlt01.com +ads&nbsdk-baichuan.alicdn.com +ads&nbsdk-baichuan.taobao.com +ads"osfota.cdn.aliyun.com +ads osupdate.aliyun.com +ads&osupdateservice.yunos.com +ads%pindao.huoban.taobao.com +adspush.wandoujia.com +adsre.m.taobao.com +ads re.taobao.com +ads&redirect.simba.taobao.com +adsrj.m.taobao.co +adsrj.m.taobao.com +adssdkinit.taobao.com +adsshow.re.taobao.com +adssimaba.taobao.com +adssimba.m.taobao.com +ads!srd.simba.taobao.com +adsstats.ipinyou.com +ads strip.taobaocdn.com +ads$tanxlog.istreamsche.com +adstejia.taobao.com +adstemai.taobao.com +ads!tns.simba.taobao.com +ads tongji.linezing.com +ads tvupgrade.yunos.com +adstyh.taobao.com +adsuserimg.qunar.com +adsw.m.taobao.com +adsyiliao.hupan.com +adsalibabacloud.co.inalibabacloud.comalibabacloud.com.aualibabacloud.com.hkalibabacloud.com.myalibabacloud.com.sgalibabacloud.com.tw alicloud.comalibabadns.com +alicdn.com alidayu.com +alidns.com alikunlun.comaliyun-inc.comaliyun-iot-share.com +aliyun.com aliyuncdn.com aliyuncs.com hichina.comica-alliance.org kunlunaq.com kunlunar.com kunlunca.com kunluncan.com kunlunea.com kunlungem.com kunlungr.com kunlunhuf.com kunlunle.com kunlunli.com kunlunno.com kunlunpi.com kunlunra.com kunlunsa.com kunlunsc.com kunlunsl.com kunlunso.com kunlunta.com kunlunvi.com kunlunwe.com mxhichina.com ddurl.to dingding.xin dingtalk.cn dingtalk.com dingtalk.netdingtalkapps.com laiwang.com lwurl.to +ele.me elemecdn.com eleme.cnteambition.comteambition.netteambitionapis.com mobmore.com  umeng.comumengcloud.com  umsns.com umtrack.com +uyunad.comwhalecloud.comalog.umeng.com +ads alog.umengcloud.com +ads +w.cnzz.com +ads 25pp.com  56che.com  95095.com 9game.cn +aliapp.orgalibaba-inc.com alibaba.comalibabacapital.comalibabacorp.comalibabadoctor.comalibabafuturehotel.comalibabagroup.comalibabaplanet.comalibabaued.comalibabausercontent.com alifanyi.comalihealth.com.cn alihealth.hk +aliimg.com +alikmd.com alimama.com alimebot.com +alimei.com alios.cn +alipay.comalipayobjects.com aliplus.comaliresearch.com alisoft.com alisports.com alitianji.comaliunicorn.com +aliway.com aliwork.com alixiaomi.comalizhaopin.com alyms.cn +asczwa.comasczxcefsv.com +asmlink.cn atatech.org +b2byao.com  bazai.com  bcvbw.com  cheng.xin cloudeagle.cn damai.cn dayu.com +dfkhgj.com doctoryou.ai doctoryou.cn dongting.com +dratio.com emas-poc.com +gongyi.xin ialicdn.com iconfont.cn +ics.design +jhgtgb.com +kanbox.com +lazada.comliangxinyao.com m-now.cn +maitix.com  mdeer.com mei.commiaostreet.com  mshare.cc nic.xinphilanthropy.xin phpwind.com phpwind.netqingtingtrip.com  rexpos.cn saee.org.cn shenjing.com  shuqi.comshuqireader.com sparenode.com  supet.com  ttpod.com wandoujia.comxinlingshou.cn yowhale.com yunos-inc.com  yunos.comyushanfang.com +zuodao.comaliexpress.com aliexpress.ru sm.cn cainiao.comcainiao.com.cncainiao-inc.com freshhema.com hemamax.com +hemaos.com hemashare.cn shyhhema.com 1688.com etao.com juhuasuan.comlingshoujia.com +mashort.cn pailitao.com +taobao.com +taobao.org taobaocdn.comtaobizhong.comtaopiaopiao.com tb.cn tbcache.com tburl.in  tmall.com tmall.ru tmalltv.com tmjl.ai alitrip.com  feizhu.cn +feizhu.com +fliggy.com  fliggy.hk +iuynfg.com amap.com amapauto.com autonavi.com  gaode.com  xiami.com xiami.fm  xiami.net +, + BYTEDANCE-ADSmcs.snssdk.com +ads + +ESPN espn.com espn.net espncdn.com +espnqa.com watchespn.comespn.hb.omtrdc.netespndotcom.tt.omtrdc.net +W +HAINANAIRLINEShainanairlines.com hnacargo.com  hnair.com 10044.cn + + +CHOCOLATEYchocolatey.org +^ +CTEXCEL +ctexcel.ca ctexcel.comctexcel.com.hk +ctexcel.fr +ctexcel.us + +FREENODE freenode.net +1 +JINSHUJU jinshuju.netjinshujucdn.com +A + PINDUODUO +pddpic.com pinduoduo.com yangkeduo.com + + +APPLEDAILYappledaily.comappledaily.com.hkappledaily.com.tw appledaily.hkapplefruity.comapplehealth.com.hk +atnext.combestmallawards.com deluxe.com.hk eracom.com.tw next.hknextdigital.com.hknextdigital.com.twnextfilm.com.hknextmag.com.tw nextmedia.comnextmedia.com.tw nextmgz.comnextplus.com.hk nexttv.com.twnextwork.com.hknextwork.com.tw nextwork.hk nextwork.tw nxtdig.com.hk nxtdig.com.tw omoplanet.com privilege.hk privilege.tw sharpdaily.tw tomonews.nettwnextdigital.com + + EASTMONEY1234567.com.cn 18.cn  18.com.cn  dfcfw.com eastmoney.comeastmoneyfutures.com emsec.hk guba.com.cn + +JUPYTER jupyter.org + + PACKAGIST packagist.org + +PCRE pcre.org + + PHANTOMJS phantomjs.org + +MINISOloveminiso.com.br miniso-au.com miniso-bh.com miniso-np.com miniso-nz.com  miniso.by  miniso.ca miniso.cn +cn  miniso.co miniso.co.id miniso.co.tz +miniso.com miniso.com.es miniso.com.gr miniso.com.mx miniso.com.pl miniso.com.py miniso.com.tr  miniso.ge  miniso.ie  miniso.jp  miniso.ma  miniso.my  miniso.pe  miniso.pk  miniso.ua  miniso.uz minisohome.cn +cnminisoindia.comminisojordan.comminisokorea.comminisolife.co.zaminisothailand.comminisovietam.vn minsio.cn +cn myminiso.com + +PINGPE ping.pe + +ZDNS zcmbc.com.cn zdns.cn zdns.net.cn zdns.org.cn zdnscloud.biz zdnscloud.cn zdnscloud.comzdnscloud.com.cnzdnscloud.info zdnscloud.netzdnscloud.net.cnzdnscloud.org.cn +A +ACERacer-group.com acer.com acer.com.cn +cn + + BITWARDEN bitwarden.com +V + JETBRAINS jetbrains.com jetbrains.net datalore.iokotlinlang.org + +PINCONG pincong.rocks +- + PUBMATIC-ADSads.pubmatic.com +ads + +WEVERSE +weverse.io +/ +ADGUARDadguard-vpn.com adguard.com +5 +IMDB imdb.com imdb.tomedia-imdb.com + +OPENVPN openvpn.net + +TESLA solarcity.comtesla.cn +cn  tesla.com tesla.com.cn +cnteslamotors.cn +cnteslamotors.comteslamotors.com.cn +cntesla-cdn.thron.cn +cntesla-cdn.thron.com +< + BITSQUARE bisq.io bisq.network bitsquare.io +% +DEMOCRACYEARTHdemocracy.earth +" +NIST nist.gov time.gov + +PRIVATElan localdomain example invalid  localhosttest local  home.arpa ^[^.]+$router.asus.comlocalhost.sec.qq.comlocalhost.ptlogin2.qq.commsftconnecttest.com + + +XUEYUANJUNxueyuanjun.com + +CATEGORY-VPNSERVICES 928.plus +zind.cloud aaex.uk amytele.com +ark.tobaicaonetwork.com bighead.groupblinkload.zone boslife.biz boslife.net  cloudn.me  conair.me cordcloud.org ctyun.online +cylink.procylink0122.icu dlercloud.com dlercloud.org dlercloud.me dleris.best duyaoss.com duyaossr.com geph.io hitun.ioxn--90wwvt03e.comjustmysocks.netjustmysocks1.netjustmysocks2.netjustmysocks4.net  maying.comocloudplus.com  mray.club muncloud.dog n3ro.lol n3ro.net n3ro.wtf nexitally.comnexitallysafe.com nexitcore.com paofu.cloud paofuyun.me renzhe.cloudshadowsocks.comshadowsocks.nlsquirrelvpn.comsquirrelgroup.net +ssplive.pwairport-gov-cn.comcnix-gov-cn.comxn--d4ty0ojsqzfd.com +ssrpass.pwstc-server.com surflite.co surflite.net vilavpn.com vilavpn.xyz vilavpn1.xyz vilavpn2.xyz vilavpn3.xyz vilavpn4.xyz vilavpn5.xyz vilavpn6.xyz vilavpn7.xyz +u +CREATIVECOMMONS ccstatic.orgcreativecommons.orgcreativecommons.engineeringlicensebuttons.net +B +DISQUS +disqus.com disquscdn.comdisqusservice.com + +NYTIMES nyt.com nyt.net nytchina.com nytcn.me  nytco.com nyti.ms nytimes.com nytstyle.comtimestalks.com + +9TO59to5google.com 9to5mac.com9to5terminal.com 9to5toys.com dronedj.com electrek.cospaceexplored.com +U + MICROSOFT azure-dns.comazure-dns.info azure-dns.net azure-dns.orgazure-mobile.netazure-sphere.comazure-test.netazure.cn +cn  azure.com  azure.netazurecomcdn.netazurecontainer.ioazurecosmos.netazurecosmosdb.comazurecosmosdb.infoazurecosmosdb.netazuredatabricks.netazuredevopslaunch.comazuredigitaltwin.comazuredigitaltwins.comazuredigitaltwins.netazuredns-prd.infoazuredns-prd.orgazureedge-test.net azureedge.netazureiotcentral.comazureiotsolutions.comazureiotsuite.comazureplanetscale.infoazureplanetscale.netazureserviceprofiler.comazuresmartspaces.netazurestackvalidation.comazurewebsites.netchinacloudapi.cn +cnchinacloudapp.cn +cnchinacloudsites.cn +cn cosmosdb.info cosmosdb.net devopsms.com gotcosmos.commicrosofteca.commicrosoftiotcentral.comserverlesslibrary.nettryfunctions.comwindowsazure.cn +cnwindowsazure.comazure.microsoft.com"azuremarketplace.microsoft.combing bing.com bing.com.cn +cn bing.net bingads.combingagencyawards.combingapistatistics.combingsandbox.combingvisualsearch.com bingworld.combluehatnights.com +dictate.msflipwithsurface.commasalladeloslimites.commicrosoft-give.commicrosoftcloudsummit.commicrosoftdiplomados.commicrosoftlatamholiday.commicrosoftmxfilantropia.com!microsoftpartnersolutions.commsunlimitedcloudsummit.comoffice365love.comoffice365tw.comrenovacionoffice.comsprinklesapp.com cn.bing.com +cn cn.bing.net +cn ditu.live.com +cnbj1.api.bing.com +cnemoi-cncdn.bing.com +cn atom.io  npmjs.com npm.communitydependabot.com +git.io github.blog +github.comgithub.community +github.dev  github.io githubapp.comgithubassets.comgithubhackathon.comgithubstatus.comgithubusercontent.com/+github-avatars.oss-cn-hongkong.aliyuncs.comFBgithub-production-release-asset-[0-9a-za-z]{6}\.s3\.amazonaws\.comadaptivecards.ioapi-extractor.com +apisof.net appcenter.ms +blazor.netbotframework.comcodethemicrobit.comdevopsassessment.net dot.netgamesstack.comgraphengine.ioinsiderdevtour.com +jwt.ms microbit.orgmicrosoftadc.commicrosoftgamestack.commicrosoftiotinsiderlabs.commicrosoftreactor.cn +cn#microsoftreactor.com.cn +cnmicrosoftreactor.infomicrosoftreactor.netmicrosoftreactor.orgmicrosoftsilverlight.commicrosoftsilverlight.orgmicrosoftsilverlight.netmicrosoftsqlserver.com  mmdnn.commono-project.com msdn.commsinnovationchallenge.commspairlift.commsropendata.com  nuget.org nugettest.orgopentranslatorstothings.orgposhtestgallery.compwabuilder.comreactorms.com.cn +cn +sankie.netsqlserveronlinux.comtimelinestoryteller.comuwpcommunitytoolkit.comvisualstudio-staging.comvisualstudio.comvisualstudio.covisualstudio.co.ukvisualstudio.euvisualstudio.net vfsforgit.com vfsforgit.org vsassets.io xamarin.comdeveloper.microsoft.comdtlgalleryint.cloudapp.net poshtestgallery.cloudapp.net"psg-int-centralus.cloudapp.netpsg-int-eastus.cloudapp.netmicrosoftnews.ccmicrosoftnews.cn +cnmicrosoftnews.commicrosoftnews.netmicrosoftnews.orgmicrosoftnewsforkids.commicrosoftnewsforkids.netmicrosoftnewsforkids.orgmicrosoftnewskids.commicrosoftnewskids.netmicrosoftnewskids.org msn.commsnewskids.commsnewskids.netmsnewskids.org msnkids.com 1drv.com 1drv.mslivefilestore.com onedrive.coonedrive.co.uk onedrive.com onedrive.eu onedrive.net onedrive.orgonedrive.live.comstorage.live.com +beth.games bethesda.netbethesdagamestudios.com bethsoft.com doom.comelderscrolls.comcallersbane.com minecraft.netminecraftshop.com +mojang.comforzamotorsport.netforzaracingchampionship.com forzarc.comorithegame.comrenovacionxboxlive.comtellmewhygame.com xbox.co xbox.com xbox.eu xbox.org +xbox360.co xbox360.com +xbox360.eu xbox360.org +xboxab.comxboxgamepass.comxboxgamestudios.com xboxlive.cn +cn xboxlive.com +xboxone.co xboxone.com +xboxone.euxboxplayanywhere.comxboxstudios.com +xbx.lv  microsoft azure hotmail +office skype windowsxbox microsoft.az microsoft.be microsoft.by microsoft.ca microsoft.cat microsoft.ch microsoft.cl microsoft.com microsoft.cz microsoft.de microsoft.dk microsoft.ee microsoft.es microsoft.eu microsoft.fi microsoft.ge microsoft.hu microsoft.io microsoft.is microsoft.it microsoft.jp microsoft.lt microsoft.lu microsoft.lv microsoft.md microsoft.pl microsoft.pt microsoft.red microsoft.ro microsoft.rs microsoft.ru microsoft.se microsoft.si microsoft.tv microsoft.ua microsoft.uz microsoft.vnfemalefounderscomp.com +m12.vc +aka.msankarazirvesi2018.comapplicationinsights.ioapplicationinsights.net aria.ms asp.net aspnetcdn.com +binads.com bluehatil.combrazilpartneruniversity.com breakdown.mecentralvalidation.com +ch9.mscharticulator.com cloudapp.netcloudappsecurity.comcortanaanalytics.comcortanaskills.comcrmdynint-gcc.com crmdynint.comcrossborderexpansion.com docs.com dynamics.com efproject.netazuredigitaltwin.comfasttrackreadysupport.comfluidpreview.comgameuxmasterguide.com +gears5.com gearspop.comgearstactics.com +gfx.ms +gigjam.com hololens.com +hotmail.co hotmail.com +hotmail.eu hotmail.net hotmail.orghummingbird.ms +ie8.co ie9.com ie10.com ie11.cominternetexplorer.cointernetexplorer.com imaginecup.pl +ingads.comintunewiki.comiotinactionevents.com +kidgrid.tvlatampartneruniversity.com live.com live.com.au live.eu live.netlivingyourambition.com makecode.orgmanagedmeetingrooms.commeetfasttrack.commeetyourdevices.com mepn.commicrosoft-int.commicrosoft-ppe.commicrosoft-sap-events.commicrosoft-sbs-domains.commicrosoft-smb.cn +cnmicrosoft365.commicrosoftaccountguard.commicrosoftads.commicrosoftadvertising.com*µsoftadvertisingregionalawards.commicrosoftaffiliates.commicrosoftcloud.commicrosoftcloudworkshop.com"microsoftcommunitytraining.commicrosoftedge.commicrosofthouse.commicrosofthouse.netmicrosoftinternetsafety.netmicrosoftlatamaitour.commicrosoftlinc.commicrosoftonline-p.commicrosoftonline.com!microsoftpartnercommunity.commicrosoftready.commicrosoftsiteselection.commicrosoftstore.commicrosoftstore.com.hkmicrosoftstream.commicrosoftteams.commicrosofttradein.commicrosofttranslator.commicrosoftuwp.commomentumms.commorphcharts.commpnevolution.comms-studiosmedia.comms365surfaceoffer.com  msads.net msauth.cn +cn +msauth.netmschallenge2018.com +msecnd.net +msedge.net  msft.info msft.net msftauth.cn +cn msftauth.netmsfteducation.ca msftnet.orgmsgamesresearch.com +msocdn.com +msocsp.com msturing.orgmsudalosti.commymicrosoft.comnextechafrica.net nxta.orgo365weve-dev.como365weve-ppe.com o365weve.com +office.com +office.net office365.com onenote.com onenote.net onestore.msopticsforthecloud.netoutingsapp.com outlook.com passport.net +pixapp.netpowerappscdn.netpowerautomate.com powerbi.compowershellgallery.comprojectmurphy.netprojectsangam.com +pxt.ios-microsoft.com  s-msn.com sfbassets.com sfbassets.net +sfx.ms sharepoint.cn +cnsharepoint.comsharepointonline.com  skype.com  skype.netskypeassets.comskypeassets.net staffhub.mssuccesswithteams.com surface.com sway-cdn.com sway.comsysinternals.comtailwindtraders.com +techhub.ms tfsallin.nettrafficmanager.nettranslatetheweb.comunlocklimitlesslearning.com +userpxt.iovideobreakdown.comvideoindexer.aivirtualearth.net vsallin.net +wbd.ms what-fan.netwindows-int.net windows.com windows.net +windows.nl windows8.hkwindowscommunity.netwindowsmarketplace.comwindowsphone-int.comwindowsphone.comwindowssearch.comwindowsupdate.com +winhec.com +winhec.net +yammer.comcdn.office.net +cn(dl.delivery.mp.microsoft.com +cn&download.windowsupdate.com +cn'bg.v4.a.dl.ws.microsoft.com +cn(bg4.v4.a.dl.ws.microsoft.com +cn2&cdn.marketplaceimages.windowsphone.com +cn cn.windowssearch.com +cn#ctldl.windowsupdate.com +cn#developer.microsoft.com +cndocs.microsoft.com +cn"download.microsoft.com +cn/#download.visualstudio.microsoft.com +cnfs.microsoft.com +cn(msgr.dlservice.microsoft.com +cn, msgruser.dlservice.microsoft.com +cn#officecdn.microsoft.com +cn&qh.dlservice.microsoft.com +cnsdx.microsoft.com +cn/#silverlight.dlservice.microsoft.com +cn, slupdate.dlservice.microsoft.com +cn, storeedgefd.dsx.mp.microsoft.com +cn&wl.dlservice.microsoft.com +cn&wscont1.apps.microsoft.com +cn&wscont2.apps.microsoft.com +cnwww.microsoft.com +cn&xb.dlservice.microsoft.com +cn/+img-prod-cms-rt-microsoft-com.akamaized.netimg-s-msn-com.akamaized.netmwf-service.akamaized.net)%officecdn-microsoft-com.akamaized.net3/statics-marketingsites-eus-ms-com.akamaized.net40statics-marketingsites-wcus-ms-com.akamaized.net +g + READTHEDOCSreadthedocs-hosted.comreadthedocs.comreadthedocs.ioreadthedocs.org +7 +VANCL  vancl.com vanclimg.com  vcimg.com + +B3LOG  b3log.org + +MACPORTS macports.org + + PINTEREST +pin.it +pinimg.com pinterest.at pinterest.be pinterest.ca pinterest.ch pinterest.cl pinterest.copinterest.co.atpinterest.co.inpinterest.co.krpinterest.co.nzpinterest.co.uk pinterest.compinterest.com.aupinterest.com.bopinterest.com.ecpinterest.com.mxpinterest.com.pepinterest.com.pypinterest.com.uypinterest.com.vn pinterest.de pinterest.dk pinterest.ecpinterest.engineering pinterest.es pinterest.fr pinterest.hu pinterest.id pinterest.ie pinterest.inpinterest.info pinterest.it pinterest.jp pinterest.kr pinterest.mx pinterest.nl pinterest.nz pinterest.pe pinterest.ph pinterest.pt pinterest.ru pinterest.se pinterest.th pinterest.tw pinterest.uk pinterest.vnpinterestmail.com + +YAHOO +flickr +flickr.com +flickr.netstaticflickr.com ads.yahoo.com +adsgemini.yahoo.com +ads ysm.yahoo.com +ads yahoo yahoo.ae yahoo.am yahoo.as yahoo.at yahoo.az yahoo.ba yahoo.be yahoo.bg yahoo.bi yahoo.bs yahoo.bt yahoo.by yahoo.ca  yahoo.cat yahoo.cd yahoo.cg yahoo.ch yahoo.cl yahoo.cmyahoo.cn +cn yahoo.co.ao yahoo.co.bw yahoo.co.ck yahoo.co.cr yahoo.co.id yahoo.co.il yahoo.co.in yahoo.co.jp yahoo.co.kr yahoo.co.mz yahoo.co.nz yahoo.co.th yahoo.co.tz yahoo.co.uk yahoo.co.uz yahoo.co.ve yahoo.co.vi yahoo.co.za  yahoo.com yahoo.com.af yahoo.com.ag yahoo.com.ai yahoo.com.ar yahoo.com.au yahoo.com.bd yahoo.com.bo yahoo.com.br yahoo.com.bz yahoo.com.cn +cn yahoo.com.co yahoo.com.do yahoo.com.ec yahoo.com.eg yahoo.com.es yahoo.com.fj yahoo.com.gi yahoo.com.gt yahoo.com.hk yahoo.com.kw yahoo.com.lb yahoo.com.ly yahoo.com.mt yahoo.com.mx yahoo.com.my yahoo.com.na yahoo.com.nf yahoo.com.om yahoo.com.pa yahoo.com.pe yahoo.com.ph yahoo.com.pk yahoo.com.pr yahoo.com.py yahoo.com.sa yahoo.com.sb yahoo.com.sg yahoo.com.sv yahoo.com.tj yahoo.com.tr yahoo.com.tw yahoo.com.ua yahoo.com.uy yahoo.com.vc yahoo.com.vn yahoo.cz yahoo.de yahoo.dj yahoo.dk yahoo.dm yahoo.ee yahoo.es yahoo.fi yahoo.fm yahoo.fr yahoo.ge yahoo.gg yahoo.gl yahoo.gm yahoo.gp yahoo.gr yahoo.gy yahoo.hk yahoo.hr yahoo.hu yahoo.ie yahoo.im yahoo.in yahoo.is yahoo.it yahoo.je yahoo.jo yahoo.la yahoo.lt yahoo.lu yahoo.lv yahoo.md yahoo.me yahoo.mk yahoo.mw yahoo.mx  yahoo.net yahoo.nl yahoo.no yahoo.nu yahoo.ph yahoo.pl yahoo.pn yahoo.ps yahoo.pt yahoo.ro yahoo.ru yahoo.rw yahoo.se yahoo.sg yahoo.sh yahoo.si yahoo.sk yahoo.sm yahoo.sn yahoo.so yahoo.sr yahoo.st yahoo.tg yahoo.tk yahoo.tl yahoo.tm yahoo.tn yahoo.vg yahoo.ws maktoob.com +myguide.hkyahoo-news.com.hk yahooapis.com yahoodns.netyahoofinance.comyahoohealth.comyahoomusic.comyahoosportsbook.com yho.com yimg.com yimg.jp  ymail.com +! +FREENETfreenetproject.org +E +HCAPTCHA botstop.com hcaptcha.comhcaptchastatus.com + +ROCKSTARrockstargames.com +rsg.sc1-gamedownloads-rockstargames-com.akamaized.net)%media-rockstargames-com.akamaized.net*&videos-rockstargames-com.akamaized.net +& +SMZDM  smzdm.com +zdmimg.com +< + YYETS-ADS cvnad.com +ads +iyoowi.com +ads + +ICLOUDapple-icloud.cn +cnappleicloud.cn +cnapplemx-icloud.comicloud-apple.cn +cnicloud-content.comicloud-isupport.com  icloud.ch +icloud.com icloud.com.cn +cn  icloud.de  icloud.ee  icloud.fi  icloud.fr  icloud.hu  icloud.ie  icloud.is  icloud.jp  icloud.lv icloud.net.cn +cn  icloud.om +icloud.org  icloud.pt  icloud.ro  icloud.se  icloud.si  icloud.sk  icloud.vn icloudads.neticloudapple.cn +cn icloudbox.neticloudbrowser.net icloude.comicloudhome.comicloudmail.neticloudmusic.net icloudnet.net icloudpay.net icloudo.com +icloudo.de icloudo.net icloudos.de icloudos.neticloudsecure.neticloudsetup.comios-icloud.com +me.com myicloud.net mylcloud.net wwwicloud.com!www-cdn.icloud.com.akadns.net + +OPENSUSE opensuse.org + +VK mvk.com userapi.com  vk-cdn.me +vk-cdn.net vk-portal.net vk.cc +vk.com  vk.design vk.link vk.me vkcache.com vkgo.app +vklive.appvkmessenger.comvkmessenger.app vkontakte.ruvkuseraudio.comvkuserlive.netvkuservideo.comvkuservideo.net +& +XNXX xnxx.com xnxx-cdn.com +~ +NEWSCORP newscorp.com dowjones.com dowjones.iodowjoneson.com wsj.com wsj.net barrons.com + + BLINKLOADblinkload.zone + + HELLOFONT hellofont.cnhellowebfont.com0,hellofontpreview.oss-cn-beijing.aliyuncs.com-)hellowebfonts.oss-cn-beijing.aliyuncs.com + +HEYTEA +heytea.com +P + KUAISHOU-ADS log-sdk.gifshow.com +adswlog.kuaishou.com +ads + + STARBUCKS starbucks.castarbucks.co.uk starbucks.comstarbucks.com.cn +cn starbucks.de starbucks.fr starbucks.ie +6 +4CHAN 4cdn.org  4chan.org 4channel.org + +CATEGORY-MEDIA-CN 36kr.com 36krcdn.com +caixin.com cctv.cn cctv.com cctvpic.com chinaepg.cn chinalive.com citv.net.cn cnms.net.cn cntv.cn cntv.com.cn +cctvlib.cncctvlibrary.cncctvlib.com.cncctvlibrary.com.cn +cctvpro.cncctvpro.com.cn  cntvwb.cn gjgbdszt.cngjgbdszt.com.cngjgbdszt.net.cn  ipanda.cn +ipanda.com ipanda.com.cn +ipanda.net livechina.cn livechina.comolympicchannelchina.cn tvcc.cn tvcc.com.cn%!xn--fiq53l6wcx3kp9bc7joo6apn8a.cn%!xn--fiq53l90et9fpncc7joo6apn8a.cn-)xn--fiq53l6wcx3kp9bc7joo6apn8a.xn--fiqs8s%!xn--kprv4ewxfr9cpxcc7joo6apn8a.cn-)xn--kprv4ewxfr9cpxcc7joo6apn8a.xn--fiqs8s zggbdszt.cnzggbdszt.com.cnzggbdszt.net.cnzygbdszt.net.cn chinanews.comchinanews.com.cn +cns.com.cn ecns.cn  dgtle.com geekpark.nethoopchina.com.cn hupu.com hupucdn.com  shihuo.cn coolbuy.com  ifanr.com ifanr.inifanrusercontent.com +ifanrx.com +minapp.com jiemian.comjiemian.com.cn +lancdn.comlandiannews.com  wsoso.com  ifeng.com ifengimg.comphoenixcenter.cn fengedu.comifengweekly.com 6655.com cooldock.com +ithome.com lapin365.com ruanmei.com +saayaa.com win7china.com win8china.com sohu.com +sohucs.com +itc.cn solidot.org  sspai.com tmtpost.com chaindd.com +72whys.com checkzeit.com +tivitv.com tigeek.net.cntmtsmartlife.comtmtsmartrun.com feng.com fengimg.com wfdata.club ynet.cn ynet.com ynet.com.cn aiganggu.comdanjuanfunds.com +imedao.comsnowballsecurities.com +xueqiu.com stcn.comcaijing.com.cn  hexun.com  cnfol.com cnfolimg.com zqrb.cn +nbd.com.cn cnstock.com 21jingji.com  yicai.com  cs.com.cn  ssajax.cn ssimg.cn stockstar.com +jrj.com.cn  jrjimg.cn +cls.cncailianpress.comwallstreetcn.com jianyuweb.com wallstcn.com 10jqka.com.cn thsi.cn +ths123.com +dzh.com.cn  gw.com.cn +yundzh.com + + IQIYI-ADSa.ckm.iqiyi.com +adsad.m.iqiyi.com +ads afp.iqiyi.com +adsc.uaa.iqiyi.com +ads cloudpush.iqiyi.com +ads"cm.passport.iqiyi.com +adscupid.iqiyi.com +ads#emoticon.sns.iqiyi.com +ads!gamecenter.iqiyi.com +ads!hotchat-im.iqiyi.com +adsifacelog.iqiyi.com +adsmbdlog.iqiyi.com +ads msg.71.am +adsmsg.video.qiyi.com +ads msg2.video.qiyi.com +ads#policy.video.iqiyi.com +adsyuedu.iqiyi.com +ads + +SPACEX +spacex.com +c +COMODO +comodo.com comodoca.com comodoca2.com comodoca3.com comodoca4.com +% +MIHOYO +mihoyo.com bh3.com + +XINGRZ  xingrz.me + +CLOUDN  cloudn.me + +GFASHION gfashion.com ++ +MONGODB mongodb.com mongodb.org +H + NEXITALLY nexitally.comnexitallysafe.com nexitcore.com +k + CHEETAHMOBILE cmcm.com cmcmcdn.com  liebao.cn duba.com duba.net ijinshan.com +- +BITFLYER bitflyer.com bitflyer.jp + +GOLANG go-lang.com go-lang.net go-lang.org +go.dev  godoc.org +golang.com +golang.net +golang.org +m +WPS +wps.cn  51dzt.com  iciba.com  docer.com kdocs.cn papocket.com  wpspdf.cn + + APPLE-DEVappleswift.com  swift.org +swiftui.cn +cnswiftui.com.cn +cncalendarserver.orgapple-cloudkit.com cups.orgdeveloper.apple.comdevimages-cdn.apple.comdevstreaming-cdn.apple.comfoundationdb.orgmacosforge.org macruby.com macruby.net macruby.orgapple-mapkit.complaygrounds-cdn.apple.com carekit.orgresearchandcare.orgresearchkit.cn +cnresearchkit.com.cn +cnresearchkit.hkresearchkit.netresearchkit.orgresearchkit.tvservicetalk.io +webkit.org webkitgtk.org wpewebkit.orgwebobjects.com-)appleworldwidedeveloper.hb-api.omtrdc.net)%appleworldwidedeveloper.sc.omtrdc.net#p-events-delivery.akamaized.net + + FFPROFILE ffprofile.com +s + GREATFIREapplecensorship.comfreebrowser.orgfreewechat.com freeweibo.com greatfire.org +( +TAPTAP +tapimg.com +taptap.com + +3TYPE 3type.cn +9 + YCOMBINATORstartupschool.orgycombinator.com +D +YY +duowan.com dwstatic.com +yy.com yystatic.com + +VMWARE +cfblob.comcloudchoose.comcloudvolumes.com +cmpaas.com +cpedge.comcrit-staging.comexperience-vmware.com gemfire.netgeodesummit.com getboxer.com gitstar.com gitstar.net gopivotal.net greenplum.net hwslabs.com immidio.comitfromtheinside.comlatamvmwareforum.compivotalinitiative.comsnapvolumes.com ssdevrd.com vcanedge.com vcloudair.net vfabric.netvidmpreview.com +virsto.com +virsto.net vmglobal.net +vmmark.comvmtestdrive.com vmw.comvmware-cloudmanagement.comvmware-techcenter.comvmware20mosaic.comvmwareausnews.com!vmwarecertificationvideos.comvmwarecloud.comvmwaredemandcenter.comvmwareemeablog.comvmwaregrid.comvmwarehorizon.comvmwareidentity.comvmwarelearning.comvmwarelearningplatform.comvmwarestuff.comvmwareusergroupstore.comvmwareviewpoint.com vmwarevmc.com vmwdemo.com vmwgcomms.comvmwhorizonair.comvmwidm-ads.com +vmwidm.comvmwlabconnect.comvmwlearningplatform.com vmworld.comvmworld2010.comvmworld2013.comvmwsalesrewards.comvmwservices.com +vnware.netwhychoosehorizon.comwhychooseview.comwhychoosevmwareeuc.comwindowsuem.comworkspaceair.com xlstudio.comavinetworks.com +badaas.com bitnami.combitnamiapp.combitnamistudio.comdockerizer.comcloudcredibility.comcloudhealthtech.com cloudlive.comkubeacademy.com kubeapps.com +nyansa.com velocloud.com gopivotal.com heptio.cn +cn +heptio.com aliveipc.com aliveitsm.comaliveprofiler.com alivercm.comaliverewind.com alivertsm.com alivevm.com alivevmax.com alivevue.com vsphere.com vsphere.net air-watch.comairwatchexpress.comairwatchqa.com +getws1.com getwsone.comwhatisairwatch.comwhatisworkspaceone.comworkspaceone.comvmware.tt.omtrdc.net +: +WEIPHONE feng.com fengimg.com wfdata.club +% + +ADJUST-ADS +adjust.com +ads +? +GEETEST geetest.com#geetest.datasink.sensorsdata.cn +" + GETCOMPOSERgetcomposer.org + +MRAY  mray.club +, +JAVAjava java.com java.net + +OONI ooni.org + +TUMBLR +tumblr.com + +UU-CHAT  uug22.com  uug23.com  uug25.com  uug26.com  uug27.com  uuk28.com  uun78.com  uun79.com  uun82.com  uun83.com  uun85.com  uun86.com  uun87.com  uun89.com  uun92.com  uun93.com  uun95.com  uun96.com  uun97.com  uun98.com  uun99.com  uux68.com + +MIAOPAI miaopai.com + + TRUSTWAVE trustwave.com + +VIDEOJS videojs.com + + WIREGUARD wireguard.com +q +CATEGORY-HOSPITAL-CN  fuwai.com pkuh6.cn puh3.net.cnhospital.pku.edu.cnss.bjmu.edu.cn + +EGGHEAD +egghead.io + +FREEBSD freebsd.org + + HASHICORP  consul.io hashicorp.comnomadproject.io  packer.io terraform.io vagrantup.comvaultproject.io + + WORDPRESSvideopress.com w.org wordpress.com wordpress.org wordpress.tv wp-themes.com +wp.com  wpvip.com +^ + APPLE-ADSiadsdk.apple.com +ads iad.apple.com +ads qwapi.com +ads + +JD-ADSads.union.jd.com +ads c-nfa.jd.com +adscps.360buy.com +ads +jzt.jd.com +ads stat.m.jd.com +ads img-x.jd.com +ads + + STREPSILS +cepacol.ca cepacol.com dobendan.degraneodin.com.mx +repsils.no strepsils.at strepsils.ch strepsils.cn +cnstrepsils.co.krstrepsils.co.nzstrepsils.co.zastrepsils.com.arstrepsils.com.brstrepsils.com.cn +cnstrepsils.com.costrepsils.com.austrepsils.com.hkstrepsils.com.phstrepsils.com.tw strepsils.es strepsils.fi strepsils.fr strepsils.hr strepsils.hu strepsils.ie strepsils.net strepsils.pl strepsils.pt strepsils.ro strepsils.ru strepsils.si strepsils.usstrepsilsarabia.com + +DINGTALK ddurl.to dingding.xin dingtalk.cn dingtalk.com dingtalk.netdingtalkapps.com laiwang.com lwurl.to + +JS-ORG +js.org +A +MEIZU flyme.cn meizu.cn  meizu.com  mzres.com + +DEDAO biji.com +ddmogo.com +igetget.cn igetget.com luojilab.com  mogoo.com +sao.cn saolife.com +@ +REUTERS reuters.com +reuters.tvreutersmedia.net + +SOHU-ADSadnet.sohu.com +ads ads.sohu.com +ads!adv-sv-show.focus.cn +ads aty.sohu.com +adsdata.vod.itc.cn +adsepro.sogou.com +ads go.sohu.com +adsgolden1.sogou.com +adsimp.optaim.com +adsinte.sogou.com +adsinte.sogoucdn.com +adslu.sogoucdn.com +ads pv.sohu.com +adstheta.sogoucdn.com +adstrack.sohu.com +adsuranus.sogou.com +adsv2.reachmax.cn +ads)e8aeb8bbdbbd7.cdn.sohucs.com +ads)643108e7617ef.cdn.sohucs.com +ads + + SONYPICTURESimageworks.commotionpictureser.com playshow.ioplayshowtv.comsonyclassics.comsonypictures.comsonypicturesanimation.comsonypicturesmuseum.comsonypicturesstudios.comsonypicturestelevision.com#sonypicturestelevisiongames.com wheelpop.com +wwtbam.comyourfantasybeginsnow.com +Q + CHINANEWS chinanews.comchinanews.com.cn +cns.com.cn ecns.cn +* + +FLURRY-ADSdata.flurry.com +ads +" + HUBBLEPHONEhubblephone.com + +MIRAHEZE miraheze.org + + +ONIONSHAREonionshare.org + + ALJAZEERA +ajplus.net aljazeera.com aljazeera.netpalestineremix.comsarajevopodopsadom.comsrebrenica360.com syhacked.com + +DIDA365 dida365.com + +GITEE  gitee.com + +JINJIANG  jjwxc.net +ҹ +CNcn citic baidu +unicomsohu +xn--fiqs8s +xn--fiqz9s xn--1qqw23a xn--xhq521b xn--8y0a063a xn--6frz82g +xn--fiq64b xn--estv75g xn--vuq861b xn--zfr164b +42r.cn +5566ua.com aurorapush.cn +e0n.cn japps.cn jchat.io +jiguang.cn jmlk.co jpush.cn jpush.io jpushoa.com +jsurvey.cn  jvoice.cn +kc9.cn +n0q.cn pushcfg.com +s0n.cn mobmore.com  umeng.comumengcloud.com  umsns.com umtrack.com +uyunad.comwhalecloud.comalog.umeng.com +ads alog.umengcloud.com +ads +w.cnzz.com +ads bootcss.com +bootcdn.cnphpcomposer.com acadn.cn  acadn.com bbbcdns.com  dlgslb.cn +dlgslb.net  dwion.com fastcdn.comfastcdn.com.cn  flxdns.cn +flxdns.com globalcdn.cn mcadn.cn  tlgslb.cn +tlgslb.com +maoyun.commaoyuncloud.cnmaoyuncloud.com pkoplink.com qingcache.com qingcloud.comstaticfile.org qbox.me  qiniu.com qiniucdn.com qiniudn.com qiniudns.com +qiniup.com  qnsdk.com  qnssl.com  ucloud.cn ufileos.com  aicdn.com upai.com upaiyun.com  upcdn.net  upyun.com  51cdn.com  8686c.com  cdn30.orgchinanetcenter.com  lxdns.com +lxdns.info  lxdns.org ourdvsss.com speedws.info speedws.org +wangsu.com +wscdns.com wscdns.info +wscdns.org yfcache.com +yfcalc.com yfcloud.com  yfdts.net  yfp2p.net +yfscdn.net yunfancdn.com +boc.cnbankofchina.combocaviation.com  boccfc.cn  bocgi.com bocgins.com  bochk.com bocichina.com bocigroup.com  bocim.combocservices.com.cnccb-life.com.cn ccb.com +ccbfund.cnccbfutures.comccbintl.com.hkccbleasing.com ccbseoul.comccbtrust.com.cn cignacmb.comcmb-leasing.com cmbchina.com cmbi.com.hkcmbwinglungbank.com cmfchina.comicbc icbc-ltd.com icbc-uk.com icbc-us.com +icbc.co.id icbc.com.cn icbc.com.mo icbc.com.pe icbc.com.sg icbcasia.com icbcbr.com.bricbclondon.com +icbcmy.comicbcstandard.comicbcstandardbank.comicbcstandardresources.comicbcstandardsecurities.com icbcswiss.com icbccs.com.cn  95516.com unionpay.comunionpayintl.comunionpaysecure.com abchina.com bankcomm.combankofbeijing.com.cn bosc.cn +bsb.com.cn ccb.comcgbchina.com.cn +cib.com.cncitibank.com.cn cmbc.com.cn hsbc.com.cn +hxb.com.cn njcb.com.cn psbc.com spdb.com.cn  whccb.com +sse.com.cn sseinfo.com szse.cn cninfo.com.cn ajzq.com avicsec.com  ccnew.com cczq.com cczq.net cfsc.com.cn cfzq.com cgws.comchinalions.comchinastock.com.cn cicc.com +ciccwm.com cindasc.com cjsc.com cnhbstock.com cnht.com.cn csco.com.cn csfounder.com  ctsec.com daton.com.cn  dfham.com dfzq.com.cn dgzq.com.cn dtsbc.com.cn dwjq.com.cn dxzq.net easec.com.cnessence.com.cn ewww.com.cn fcsc.cnfzfinancing.com  gf.com.cn ghsl.cn ghzq.com.cn gjzq.com.cn gkzq.com.cn glsc.com.cn grzq.com gsgh.cn gszq.com gtja.com gtja.com  guodu.com guosen.com.cn gyzq.com.cn hazq.com hczq.com hfzq.com.cn +hlzqgs.comhongtastock.com hrsec.com.cn hsbcqh.com.cn htsc.com.cn  htsec.comhuajingsec.com huajinsc.cn huayingsc.com hx168.com.cn hxzq.cn i618.com.cn  iztzq.com jhzq.com.cnjpmorganchina.com jyzq.cn  jzsec.com kysec.cn lczq.com lhzq.comlongone.com.cnmorganstanleyhuaxin.com mszq.com nesc.cn njzq.com.cnnomuraoi-sec.com +shgsec.com +shhxzq.com shzq.com stocke.com.cn +swhysc.com swsc.com.cn tebon.com.cn tfzq.com  tpyzq.com vanho.cn west95582.com wkzq.com.cn wlzq.cn wxzq.com xcsc.com xsdzq.cn xyzq.com.cn ydsc.com.cn ykzq.com ytzq.com zdzq.com.cn zszq.com +ztfsec.com +zts.com.cn +99fund.com +abc-ca.com avicfund.cn  bdfund.cn +bobbns.com boscam.com.cn +bosera.com ccfund.com.cn cfund108.comchanganfunds.comchinanature.com.cncib-fund.com.cncryuantafund.com +ctfund.com dbfund.com.cn efunds.com.cn fadfunds.comforesightfund.com founderff.com +fsfund.com +ftfund.comfullgoal.com.cn furamc.com.cngalaxyasset.com gefund.com.cngffunds.com.cn  gfund.com gowinamc.com +hffunds.cn hftfund.comhongdefund.com +hsfund.com huaan.com.cn +igwfmc.com  jsfund.cn  jtamc.com mfcteda.commsjyfund.com.cn +nffund.com  ocfund.cnorient-fund.com phfund.com.cnpostfund.com.cn +py-axa.com  swsmu.comtaipingfund.com.cn thfund.com.cntongtaiamc.com ubssdic.com xf-fund.com xqfunds.com  ydamc.com yhfund.com.cn +zhfund.com +zofund.com +5ifund.com +fund123.cn +howbuy.com lufunds.com  zlfund.cn citic chinaamc.comcitic-prudential.com.cn citicbank.comciticcapital.com citiciam.com citicifh.comciticprufunds.com.cn citics.com.hk citicsf.com clsa.comcncbinternational.com +csc108.com csci.hk +ecitic.com1234567.com.cn 18.cn  18.com.cn  dfcfw.com eastmoney.comeastmoneyfutures.com emsec.hk guba.com.cn cebbank.com ceblease.com +eb-ind.com ebasset.com ebchina.comebchinaintl.com +ebf.com.cn  ebfcn.com ebfortune.com ebtrust.com ebscn-am.com  ebscn.comeverbright.com  secec.comsunlife-everbright.com +pingan.com pingan.com.cn pingan.com.hk yqb.com taikang.comtaikanglife.comtaikangzhijia.comtkhealthcare.com +58.com  58.com.cn 5858.com  58che.com 58xueche.com +anjuke.comanjukestatic.com chinahr.com +daojia.com diandao.org fang.com  sofun.com soufunimg.com  jxedt.com zhuancorp.comzhuanspirit.comzhuanzhuan.com c-ctrip.com colinker.com ctrip.cn ctrip.co.id ctrip.co.kr ctrip.co.th  ctrip.com ctrip.com.hk ctrip.my ctrip.sg ctripbiz.com ctripbuy.hk ctripteam.com doticloud.com easytrip.com hhtravel.comhhtravel.com.tw izuchebao.com  lvtds.com  shuntu.cn +skysea.com  suanya.cn +suanya.com +tieyou.com +toptown.cn toursbms.com trip.com tripcdn.com +vipdlt.com dangdang.com ddimg.cn +ele.me elemecdn.com eleme.cn  ganji.comganjistatic1.com3.cn  300hu.com +360buy.com 360buyimg.com +360top.com +7fresh.com baitiao.comblackdragon.com  caiyu.comchinabank.com.cn +dao123.comjcloud-cdn.comjcloud-live.comjcloud-oss.com +jcloud.comjcloudcache.com jcloudcs.com jclouddn.com jcloudec.com jcloudlb.comjcloudlive.com jcloudlv.com jcloudoss.com jcloudss.comjcloudstatic.comjcloudvideo.com  jclps.com +jd-app.com  jd-ex.com jd.cn jd.co.th +jd.com jd.hk jd.id jd.ru jdcache.com jdcloud.com jdcloudcs.comjdcloud-api.comjddapeigou.com jddebug.com jddglobal.com jdjinrong.com  jdpay.com jdpaydns.com jdx.com jdwl.comjingdongjinrong.com +jingxi.com +jkcsjd.com +joybuy.com  joybuy.eslinglonglife.com mayshijia.com minitiao.com  ocwms.com paidaojia.cn +paipai.comprestodb-china.com qianxun.comqingzhouip.com toplife.com +vg.com wangyin.com  wdfok.com yhd.com yihaodian.comyihaodianimg.com yiyaojd.com yizhitou.comads.union.jd.com +ads c-nfa.jd.com +adscps.360buy.com +ads +jzt.jd.com +ads stat.m.jd.com +ads img-x.jd.com +ads lianjia.com  ljcdn.com manmanbuy.com dianping.com +maoyan.com meituan.com meituan.net  mtyun.com  neixin.cn sankuai.com mogu.com mogucdn.com mogujie.com +pddpic.com pinduoduo.com yangkeduo.com  smzdm.com +zdmimg.com cnsuning.com +suning.comsuningcloud.comsuningestate.comsuningholdings.com 40017.cn +17u.cn 17u.net 17usoft.com 17usoft.net  elong.comelongstatic.com +ly.com  vancl.com vanclimg.com  vcimg.com +youzan.com yzcdn.cn youzanyun.com +ziroom.comziroomapartment.com 3dmgame.com 3304399.net 4399.com 4399api.com 4399dmw.com +4399er.com4399youpai.com 5054399.com img4399.com acfun.cn aixifan.com apilog-web.acfun.cn +ads +acplay.netdandanplay.com +ali213.net +acg.tv acgvideo.com +b23.tv biliapi.com biliapi.net bilibili.combilibiligame.net biligame.com biligame.net bilivideo.com  hdslb.com im9.com +mincdn.com$ upos-hz-mirrorakam.akamaized.net biji.com +ddmogo.com +igetget.cn igetget.com luojilab.com  mogoo.com +sao.cn saolife.com dmzj.com  douyu.com douyu.tv douyucdn.cn douyucdn2.cn douyuscdn.com douyutv.com gamersky.com +gcores.com gitv.cn gitv.tv huya.com msstatic.com 71.am  iqiyi.com iqiyipic.com +pps.tv +ppsimg.com qiyi.com qiyipic.com +qy.net +71edge.coma.ckm.iqiyi.com +adsad.m.iqiyi.com +ads afp.iqiyi.com +adsc.uaa.iqiyi.com +ads cloudpush.iqiyi.com +ads"cm.passport.iqiyi.com +adscupid.iqiyi.com +ads#emoticon.sns.iqiyi.com +ads!gamecenter.iqiyi.com +ads!hotchat-im.iqiyi.com +adsifacelog.iqiyi.com +adsmbdlog.iqiyi.com +ads msg.71.am +adsmsg.video.qiyi.com +ads msg2.video.qiyi.com +ads#policy.video.iqiyi.com +adsyuedu.iqiyi.com +ads  jjwxc.net ku6.com +ku6cdn.com +ku6img.com kkmh.comkuaikanmanhua.com gifshow.com ksapisrv.com kuaishou.com +yximgs.com log-sdk.gifshow.com +adswlog.kuaishou.com +ads  kgimg.com  kugou.com +le.com lecloud.com +lemall.com letv.com letvcdn.com letvimg.com miaopai.com +mihoyo.com bh3.com  pplive.cn +pplive.com pptv.com qingting.fm  sfacg.com +61.com +taomee.com +tapimg.com +taptap.com  tgbus.com tiancity.comtiancitycdn.com u17.com u17i.com u17t.com +vgtime.com ximalaya.com  xmcdn.com +kumiao.com  youku.com  ykimg.com +mmstat.com soku.com +cibntv.net +duowan.com dwstatic.com +yy.com yystatic.com  zhanqi.tv +heytea.com chiphell.com +douban.com  douban.fm doubanio.com erji.net +hacpai.com  ld246.com +nga.cn 178.com +ngabbs.com ngacn.cc saraba1st.com  zhihu.com  zhimg.com  feng1.comrongechain.comsf-airlines.comsf-cityrush.comsf-express.comsf-financial.com sf-saas.comsf-tech.com.cn sfcar.hk sffix.cn sfgy.org 36kr.com 36krcdn.com +caixin.com cctv.cn cctv.com cctvpic.com chinaepg.cn chinalive.com citv.net.cn cnms.net.cn cntv.cn cntv.com.cn +cctvlib.cncctvlibrary.cncctvlib.com.cncctvlibrary.com.cn +cctvpro.cncctvpro.com.cn  cntvwb.cn gjgbdszt.cngjgbdszt.com.cngjgbdszt.net.cn  ipanda.cn +ipanda.com ipanda.com.cn +ipanda.net livechina.cn livechina.comolympicchannelchina.cn tvcc.cn tvcc.com.cn%!xn--fiq53l6wcx3kp9bc7joo6apn8a.cn%!xn--fiq53l90et9fpncc7joo6apn8a.cn-)xn--fiq53l6wcx3kp9bc7joo6apn8a.xn--fiqs8s%!xn--kprv4ewxfr9cpxcc7joo6apn8a.cn-)xn--kprv4ewxfr9cpxcc7joo6apn8a.xn--fiqs8s zggbdszt.cnzggbdszt.com.cnzggbdszt.net.cnzygbdszt.net.cn chinanews.comchinanews.com.cn +cns.com.cn ecns.cn  dgtle.com geekpark.nethoopchina.com.cn hupu.com hupucdn.com  shihuo.cn coolbuy.com  ifanr.com ifanr.inifanrusercontent.com +ifanrx.com +minapp.com jiemian.comjiemian.com.cn +lancdn.comlandiannews.com  wsoso.com  ifeng.com ifengimg.comphoenixcenter.cn fengedu.comifengweekly.com 6655.com cooldock.com +ithome.com lapin365.com ruanmei.com +saayaa.com win7china.com win8china.com sohu.com +sohucs.com +itc.cn solidot.org  sspai.com tmtpost.com chaindd.com +72whys.com checkzeit.com +tivitv.com tigeek.net.cntmtsmartlife.comtmtsmartrun.com feng.com fengimg.com wfdata.club ynet.cn ynet.com ynet.com.cn aiganggu.comdanjuanfunds.com +imedao.comsnowballsecurities.com +xueqiu.com stcn.comcaijing.com.cn  hexun.com  cnfol.com cnfolimg.com zqrb.cn +nbd.com.cn cnstock.com 21jingji.com  yicai.com  cs.com.cn  ssajax.cn ssimg.cn stockstar.com +jrj.com.cn  jrjimg.cn +cls.cncailianpress.comwallstreetcn.com jianyuweb.com wallstcn.com 10jqka.com.cn thsi.cn +ths123.com +dzh.com.cn  gw.com.cn +yundzh.comhainanairlines.com hnacargo.com  hnair.com 10044.cn jbcz.tvjibencaozuo.comsinopec-usa.com sinopec.comsinopecgroup.comsinopecnews.com.cnsinopecsales.com +csdl.ac.cn  las.ac.cn  fuwai.com pkuh6.cn puh3.net.cnhospital.pku.edu.cnss.bjmu.edu.cn 115.com 3type.cn 4paradigm.com  51job.com 51jobcdn.comyingjiesheng.comyingjiesheng.netzhiding.com.cn +afdian.net afdiancdn.com agora.io +agoraio.cn agoralab.co +antutu.com bitauto.combitautoimg.com cheyisou.com  yiche.com  yccdn.com shimo.im  yuque.com chinaso.com +pg0.cn +chinaz.com +chinaz.net caiyunai.com caiyunapp.com coolapk.comcoolapkmarket.comcoolapkmarket.net c-t.workcowtransfer.com dida365.com geetest.com#geetest.datasink.sensorsdata.cn hellofont.cnhellowebfont.com0,hellofontpreview.oss-cn-beijing.aliyuncs.com-)hellowebfonts.oss-cn-beijing.aliyuncs.com hanyi.com.cnfontstar.com.cnfoundertype.com ipip.net jianshu.com +jianshu.io jinshuju.netjinshujucdn.com gotokeep.com keepcdn.com  lagou.com lgstatic.com baidupan.com +lanzou.com lanzous.com woozooo.com +liepin.com +lietou.comlietou-static.com mafengwo.cn mafengwo.com mafengwo.net  meitu.com meitudata.com moji.com mojichina.com  polyv.net videocc.net +renren.comrenren-inc.com vaptcha.com vaptcha.net wamawama.com +wiwide.com +sojump.com +wjx.cn wjx.com wjx.top zcmbc.com.cn zdns.cn zdns.net.cn zdns.org.cn zdnscloud.biz zdnscloud.cn zdnscloud.comzdnscloud.com.cnzdnscloud.info zdnscloud.netzdnscloud.net.cnzdnscloud.org.cnchinesemooc.org +cnmooc.orgicourse163.org icourses.cn mooc.cnopenlearning.com pmphmooc.commoocs.unipus.cnopencourse.pku.edu.cn study.163.com cnki.net  apabi.comcnthinkers.com  cqvip.comhuijistatic.com huijiwiki.com moegirl.orgmoegirl.org.cn cugbonline.cn  guokr.comwanfangdata.com.cn speiyou.com +xesimg.com xueersi.com banmaaike.comxiaoyuankousuan.com ybccode.com yuanfudao.com yuansouti.com yuantiku.com zhihuishu.com  coding.me +coding.net csdn.net +csdnimg.cn  deepin.cn +deepin.com  deepin.io +deepin.org  gitee.comjinrishici.com  juejin.cn  juejin.im xitu.iop1-juejin.byteimg.comp2-juejin.byteimg.comp3-juejin.byteimg.comp4-juejin.byteimg.comp5-juejin.byteimg.comp6-juejin.byteimg.comp7-juejin.byteimg.comp8-juejin.byteimg.comp9-juejin.byteimg.com oschina.net  pgyer.com +tracup.com frontjs.comruby-china.orgrubyconfchina.org mysxl.cn +sxl.cn  sxlcdn.cnsegmentfault.com  sifou.com +tipdim.orgxueyuanjun.com alibaba +alipay +taobao tmall a.alimama.cn +adsacjs.aliyun.com +adsadash.m.taobao.com +ads!adashbc.m.taobao.com +ads"adashbc.ut.taobao.com +ads"adash-c.ut.taobao.com +ads adashx.m.taobao.com +ads$adashx4ae.ut.taobao.com +ads#adashx4yt.m.taobao.com +ads#adashxgc.ut.taobao.com +adsadsh.m.taobao.com +adsafp.adchina.com +adsafp.alicdn.com +ads agoodm.m.taobao.com +ads#agoodm.wapa.taobao.com +ads alipaylog.com +adsamdc.alipay.com +adsamdc.m.taobao.com +ads api.wapa.taobao.com +ads#api.waptest.taobao.com +adsapoll.m.taobao.com +ads#appdownload.alicdn.com +adsatanx.alicdn.com +adsatanx2.alicdn.com +adscbu01.alicdn.com +adscdn0.mobmore.com +adsclick.aliyun.com +ads&click.mz.simba.taobao.com +adscm.ipinyou.com +ads cm.mlt01.com +ads!dsp.simba.taobao.com +adserr.taobao.com +adsex.mobmore.com +ads ex.puata.info +ads!fav.simba.taobao.com +ads$feedback.whalecloud.com +adsff.win.taobao.com +ads fm.p0y.cn +adsg.click.taobao.com +ads +g.tbcdn.cn +adsgma.alicdn.com +adsgtms01.alicdn.com +adsgtms02.alicdn.com +adsgtms03.alicdn.com +adsgtms04.alicdn.com +adshydra.alibaba.com +ads'hz.pre.tbusergw.taobao.net +ads#hz.tbusergw.taobao.net +ads i.ipinyou.com +adsinit.phpwind.com +ads!intl.wapa.taobao.com +ads$intl.waptest.taobao.com +ads"jxlog.istreamsche.com +adslog.umtrack.com +adsm.intl.taobao.com +adsm.simba.taobao.com +adsmatch.p4p.1688.com +ads%material.istreamsche.com +ads mlt01.com +ads&nbsdk-baichuan.alicdn.com +ads&nbsdk-baichuan.taobao.com +ads"osfota.cdn.aliyun.com +ads osupdate.aliyun.com +ads&osupdateservice.yunos.com +ads%pindao.huoban.taobao.com +adspush.wandoujia.com +adsre.m.taobao.com +ads re.taobao.com +ads&redirect.simba.taobao.com +adsrj.m.taobao.co +adsrj.m.taobao.com +adssdkinit.taobao.com +adsshow.re.taobao.com +adssimaba.taobao.com +adssimba.m.taobao.com +ads!srd.simba.taobao.com +adsstats.ipinyou.com +ads strip.taobaocdn.com +ads$tanxlog.istreamsche.com +adstejia.taobao.com +adstemai.taobao.com +ads!tns.simba.taobao.com +ads tongji.linezing.com +ads tvupgrade.yunos.com +adstyh.taobao.com +adsuserimg.qunar.com +adsw.m.taobao.com +adsyiliao.hupan.com +adsalibabacloud.co.inalibabacloud.comalibabacloud.com.aualibabacloud.com.hkalibabacloud.com.myalibabacloud.com.sgalibabacloud.com.tw alicloud.comalibabadns.com +alicdn.com alidayu.com +alidns.com alikunlun.comaliyun-inc.comaliyun-iot-share.com +aliyun.com aliyuncdn.com aliyuncs.com hichina.comica-alliance.org kunlunaq.com kunlunar.com kunlunca.com kunluncan.com kunlunea.com kunlungem.com kunlungr.com kunlunhuf.com kunlunle.com kunlunli.com kunlunno.com kunlunpi.com kunlunra.com kunlunsa.com kunlunsc.com kunlunsl.com kunlunso.com kunlunta.com kunlunvi.com kunlunwe.com mxhichina.com ddurl.to dingding.xin dingtalk.cn dingtalk.com dingtalk.netdingtalkapps.com laiwang.com lwurl.toteambition.comteambition.netteambitionapis.com 25pp.com  56che.com  95095.com 9game.cn +aliapp.orgalibaba-inc.com alibaba.comalibabacapital.comalibabacorp.comalibabadoctor.comalibabafuturehotel.comalibabagroup.comalibabaplanet.comalibabaued.comalibabausercontent.com alifanyi.comalihealth.com.cn alihealth.hk +aliimg.com +alikmd.com alimama.com alimebot.com +alimei.com alios.cn +alipay.comalipayobjects.com aliplus.comaliresearch.com alisoft.com alisports.com alitianji.comaliunicorn.com +aliway.com aliwork.com alixiaomi.comalizhaopin.com alyms.cn +asczwa.comasczxcefsv.com +asmlink.cn atatech.org +b2byao.com  bazai.com  bcvbw.com  cheng.xin cloudeagle.cn damai.cn dayu.com +dfkhgj.com doctoryou.ai doctoryou.cn dongting.com +dratio.com emas-poc.com +gongyi.xin ialicdn.com iconfont.cn +ics.design +jhgtgb.com +kanbox.com +lazada.comliangxinyao.com m-now.cn +maitix.com  mdeer.com mei.commiaostreet.com  mshare.cc nic.xinphilanthropy.xin phpwind.com phpwind.netqingtingtrip.com  rexpos.cn saee.org.cn shenjing.com  shuqi.comshuqireader.com sparenode.com  supet.com  ttpod.com wandoujia.comxinlingshou.cn yowhale.com yunos-inc.com  yunos.comyushanfang.com +zuodao.comaliexpress.com aliexpress.ru sm.cn cainiao.comcainiao.com.cncainiao-inc.com freshhema.com hemamax.com +hemaos.com hemashare.cn shyhhema.com 1688.com etao.com juhuasuan.comlingshoujia.com +mashort.cn pailitao.com +taobao.com +taobao.org taobaocdn.comtaobizhong.comtaopiaopiao.com tb.cn tbcache.com tburl.in  tmall.com tmall.ru tmalltv.com tmjl.ai alitrip.com  feizhu.cn +feizhu.com +fliggy.com  fliggy.hk +iuynfg.com amap.com amapauto.com autonavi.com  gaode.com  xiami.com xiami.fm  xiami.net  b3log.org a.baidu.com +ads ad.duapps.com +ads ad.player.baidu.com +ads adm.baidu.com +adsadscdn.baidu.com +adsadx.xiaodutv.com +adsae.bdstatic.com +ads afd.baidu.com +ads als.baidu.com +ads&api.mobula.sdk.duapps.com +ads"api.tuisong.baidu.com +adsappc.baidu.com +adsb.bdstatic.com +adsbaichuan.baidu.com +adsbaidustatic.com +adsbaidutv.baidu.com +adsbanlv.baidu.com +ads bar.baidu.com +ads"bdimg.share.baidu.com +adsbdplus.baidu.com +ads bj.bcebos.com +adsbtlaunch.baidu.com +ads c.baidu.com +ads cb.baidu.com +adscbjs.baidu.com +adscjhq.baidu.com +adscleaner.baidu.com +ads click.bes.baidu.com +adsclick.hm.baidu.com +adsclick.qianqian.com +ads"cm.baichuan.baidu.com +ads cm.baidu.com +adscm.pos.baidu.com +ads cpro.baidu.cn +adscpro.baidu.com +ads!cpro.baidustatic.com +ads!cpro.tieba.baidu.com +ads"cpro.zhidao.baidu.com +adscpro2.baidu.com +ads"cpro2.baidustatic.com +ads crs.baidu.com +adsdatax.baidu.com +ads dd713.bj.bcebos.com +ads dl.client.baidu.com +adsdl.ops.baidu.com +adsdl1sw.baidu.com +adsdl2.bav.baidu.com +adsdlsw.baidu.com +adsdlsw.br.baidu.com +ads!dl-vip.bav.baidu.com +ads(dl-vip.pcfaster.baidu.co.th +ads#download.bav.baidu.com +ads"download.sd.baidu.com +adsdrmcmm.baidu.com +ads dup.baidustatic.com +ads dxp.baidu.com +ads dzl.baidu.com +ads e.baidu.com +adseclick.baidu.com +adsecma.bdimg.com +adsecmb.bdimg.com +adsecmc.bdimg.com +ads eiv.baidu.com +ads em.baidu.com +adsentry.baidu.com +ads ers.baidu.com +ads f10.baidu.com +ads#fc-feed.cdn.bcebos.com +adsfclick.baidu.com +adsfeed.baidu.com +adsfexclick.baidu.com +ads g.baidu.com +adsgimg.baidu.com +adsguanjia.baidu.com +ads hc.baidu.com +ads hm.baidu.com +adshmma.baidu.com +ads hpd.baidu.com +adsidm.bce.baidu.com +adsidm-su.baidu.com +adsiebar.baidu.com +adsikcode.baidu.com +adsimg.taotaosou.cn +adsimg01.taotaosou.cn +adsj.br.baidu.com +adskstj.baidu.com +ads log.music.baidu.com +ads m1.baidu.com +ads ma.baidu.com +adsmobads.baidu.com +ads"mobads-logs.baidu.com +adsmpro.baidu.com +adsmsite.baidu.com +adsneirong.baidu.com +adsnsclick.baidu.com +ads#nsclickvideo.baidu.com +adsopenrcv.baidu.com +ads$pc.videoclick.baidu.com +ads pos.baidu.com +adspups.bdimg.com +ads%push.zhanzhang.baidu.com +ads qianclick.baidu.com +adsrelease.baidu.com +adsres.mi.baidu.com +ads"rigel.baidustatic.com +ads#river.zhidao.baidu.com +ads rj.baidu.com +adsrplog.baidu.com +ads s.baidu.com +adss.cpro.baidu.com +ads!sa.tuisong.baidu.com +adssclick.baidu.com +adssestat.baidu.com +adsshadu.baidu.com +adsshare.baidu.com +ads"snippet.pos.baidu.com +adssobar.baidu.com +adssobartop.baidu.com +adsspcode.baidu.com +adsstat.v.baidu.com +ads su.bdimg.com +adssu.bdstatic.com +ads t10.baidu.com +ads t11.baidu.com +ads t12.baidu.com +ads tk.baidu.com +adstkweb.baidu.com +ads"tob-cms.bj.bcebos.com +adstongji.baidu.com +adstoolbar.baidu.com +adstracker.baidu.com +adstuijian.baidu.com +ads*uat1.bfsspadserver.8le8le.com +ads#ubmcmm.baidustatic.com +adsucstat.baidu.com +adsulic.baidu.com +ads ulog.imap.baidu.com +adsunion.baidu.com +ads!unionimage.baidu.com +adsutility.baidu.com +ads utk.baidu.com +ads videopush.baidu.com +adsvv84.bj.bcebos.com +adsw.gdown.baidu.com +ads w.x.baidu.com +adswangmeng.baidu.com +adsweishi.baidu.com +ads$wenku-cms.bj.bcebos.com +ads%wisepush.video.baidu.com +ads wm.baidu.com +adswn.pos.baidu.com +adsznsv.baidu.com +adszz.bdstatic.com +adszzy1.quyaoya.com +ads zuoyebang.cc zuoyebang.com +zybang.com baidu +91.com +aipage.com apollo.auto baidu.cn  baidu.com baidu.com.cn baidubce.combaiducontent.com baidupcs.combaidustatic.com +baifae.com baifubao.com +bcebos.com  bdimg.com bdstatic.com bdtjrcv.com  bdydns.cn +bdydns.com +bdydns.net chuanke.com  dlnel.com  dlnel.org +duapps.com +dwz.cn +hao123.com hao123img.com +hao222.com +haokan.com jomocdn.net jomodns.com +mipcdn.com  nuomi.com quyaoya.com smartapps.cn  tieba.com tiebaimg.com xianfae.com xiaodutv.com +bytecdn.cn bytedance.com bytedance.net bytedns.net byteimg.combyteoversea.com +douyin.com huaxiong.com ibytedtos.comjokecommunity.comneihanshequ.com +pstatp.com +snssdk.com toutiao.comtoutiaocdn.comtoutiaocloud.comtoutiaocloud.nettoutiaohao.comtoutiaohao.net toutiaoimg.cntoutiaoimg.comtoutiaoimg.nettoutiaopage.com +wukong.comwukongwenda.cnwukongwenda.com zijiecdn.com zijiecdn.net  zjcdn.com  baike.com +ixigua.comixiguavideo.com ixgvideo.com  365yg.com didi-food.comdidiaustralia.blogdidichuxing.comdidiglobal.comdidimobility.co.jpdidistatic.comxiaojukeji.com  dbank.com dbankcdn.com harmonyos.com hicloud.com hihonor.com honor.cn +huawei.comhuaweicloud.com  vmall.com vmallres.com cmcm.com cmcmcdn.com  liebao.cn duba.com duba.net ijinshan.comseasungames.com xishanju.com xoyo.com testplus.cn +wps.cn  51dzt.com  iciba.com  docer.com kdocs.cn papocket.com  wpspdf.cn kimg.cn kingsoft.com ksmobile.com +ks-cdn.com  ksyun.com ksyungslb.com flyme.cn meizu.cn  meizu.com  mzres.com 126.com 126.link 126.net 127.com 127.net 163.com163industry.com 163mail.com 163qiyukf.com +163yun.com 166.net +haowu.linkicourse163.org  kaola.com +lofter.com  nease.netnetease-inc.com netease.com +netease.im +qiyukf.com ydstatic.com yeah.net +youdao.comanalytics.163.com +ads crash.163.com +ads crashlytics.163.com +ads g.163.com +ads coloros.com finzfin.com +heytap.com heytapcs.comheytapdownload.comheytapimage.com +myoppo.com nearme.com.cn oppo.cn oppo.com  oppo.mobioppodigital.com  oppoer.meoppomobile.com oppopay.com opposhop.cn +realme.com realmebbs.comrealmemobile.com oneplus.com +oneplus.cn oneplus.net opstatics.comoneplusbbs.com h2os.com 75.team +75team.com baomitu.com +360.cn 360.com +360-jr.com 360chou.com360daikuan.com360huzhubao.com +360jie.com360jinrong.net +360kan.com 360kuai.com  360os.com 360panyun.cn 360safe.com 360shouji.com 360taojin.com360totalsecurity.com 360tpcdn.com360webcache.com anquanke.com  haoso.com +haosou.com haosou.com.cn +haosou.net i360mall.com ludashi.com nicaifu.com  nzwgs.com  qhimg.com qhimgs0.com qhimgs1.com qhimgs2.com qhimgs3.com qhimgs4.com qhimgs5.com qhimgs6.com  qhmsg.com  qhres.com qhstatic.com qhupdate.com +qihuapi.cn qihucdn.com  qihoo.com qikucdn.com +so.com sou.com urlqh.cnxiaoluyouxuan.comxiaoluzhidian.com xjietiao.com +youhua.com  yunpan.cn  97973.com +picself.cn sina.cn sina.com sina.com.cn sina.net sinaapp.com sinaedge.com +sinaimg.cn sinaimg.com  sinajs.cn +sinajs.comt.cn videoself.cn  wbimg.com wbimg.cn wcdn.cn weibo.cn  weibo.com weibo.com.cn weibocdn.com xhaiwai.com 2016.sina.cn +adsad.sina.com.cn +adsadbox.sina.com.cn +ads!adimages.sina.com.hk +ads!adimg.mobile.sina.cn +ads adimg.uve.weibo.com +ads!adm.leju.sina.com.cn +ads ads.sina.com +adsalitui.weibo.com +adsapi.apps.sina.cn +ads appgift.sinaapp.com +ads#appsupdate.sinaapp.com +ads atm.sina.com +adsbeacon.sina.com.cn +ads biz.weibo.com +adsc.biz.weibo.com +ads!c.wcpt.biz.weibo.com +ads%click.uve.mobile.sina.cn +ads click.uve.weibo.com +adscm.dmp.sina.cn +ads0#contentrecommend-out.mobile.sina.cn +ads$count.video.sina.com.cn +ads counter.sina.com.cn +adscre.dp.sina.cn +adscre-dp.sina.cn +adsd00.sina.com.cn +adsdcads.sina.com.cn +adsdl.kjava.sina.cn +ads dmp.sina.cn +adsdp.im.weibo.cn +ads game.weibo.cn +adsgame.weibo.com +ads"gw5.push.mcp.weibo.cn +ads"gw6.push.mcp.weibo.cn +ads"img.adbox.sina.com.cn +ads#img.amp.ad.sina.com.cn +ads"int.dpool.sina.com.cn +ads%interest.mix.sina.com.cn +ads)log.interest.mix.sina.com.cn +ads log.mix.sina.com.cn +ads log.sina.cn +ads!m.beacon.sina.com.cn +adsm.game.weibo.cn +ads!mg.games.sina.com.cn +ads!motu.p4p.sina.com.cn +adsnewspush.sinajs.cn +ads oascentral.sina.com +ads#oascentral.sina.com.hk +adsp4p.sina.com.cn +adspalmnews.sina.cn +adspay.mobile.sina.cn +adspfp.sina.com.cn +adspfpip.sina.com +ads!promote.biz.weibo.cn +ads r.dmp.sina.cn +adsrm.sina.com.cn +ads rs.sinajs.cn +adss.alitui.weibo.com +ads"s.img.mix.sina.com.cn +ads sapi.sina.cn +ads sax.sina.cn +adssax.sina.com.cn +adssaxn.sina.com.cn +adssaxs.sina.com.cn +ads sbeacon.sina.com.cn +ads"sdkapp.mobile.sina.cn +ads!sdkapp.uve.weibo.com +ads$sdkclick.mobile.sina.cn +ads slog.sina.cn +adsslog.sina.com.cn +ads'staticadm.leju.sina.com.cn +adstjs.sjs.sinajs.cn +ads"trends.mobile.sina.cn +ads"u1.img.mobile.sina.cn +ads&wapwbclick.mobile.sina.cn +ads!wbapp.mobile.sina.cn +ads wbapp.uve.weibo.com +ads#wbclick.mobile.sina.cn +ads$wbpctips.mobile.sina.cn +adswidget.weibo.com +ads woocall.sina.com.cn +adszc.biz.weibo.com +adszymo.mps.weibo.com +ads +go2map.com sogo.com  sogou.com sogoucdn.com dns.pub  dnsapi.cn  dnspod.cn +dnspod.com dnspod.com.cn +dnspod.net +dnspod.org  dnsv1.com  dnsv2.com  dnsv3.com  dnsv4.com  dnsv5.com doh.pub ad.qq.com +ads ad.qun.qq.com +ads!adfilter.imtt.qq.com +ads adping.qq.com +adsadpm.app.qq.com +adsadsclick.qq.com +adsadsfile.qq.com +adsadshmmsg.qq.com +adsadslvfile.qq.com +adsadslvseed.qq.com +ads%adsmind.apdcdn.tc.qq.com +adsadsqqclick.qq.com +adsadstestview.qq.com +adsadsview.qq.com +adsadsview2.qq.com +adsadv.app.qq.com +ads adver.qq.com +ads btrace.qq.com +adse.qq.com +adslog.tbs.qq.com +ads mpush.qq.com +ads mtrace.qq.com +ads push.qq.com +ads pgdt.gtimg.cn +ads +yuewen.com hongxiu.com lrts.me qdmm.com +qidian.com readnovel.com tingbook.com webnovel.com +xs8.cn xxsy.net +apcdns.net  cdn-go.cn cdntips.com foxmail.comfoxmail.com.cn gtimg.cn  gtimg.com gtimg.com.cn idqqimg.com imqq.com  myapp.com myqcloud.com +qcloud.com qcloudimg.com qlogo.cn qpic.cn +qq.com +qqmail.com  qzone.com +rtx.com.cnservicewechat.com smtcdns.com smtcdns.net +tencent.cn tencent.comtencent.com.cntencent.com.hktencent.net.cntencent-cloud.comtencentmusic.comtencentyun.com +tenpay.com +wechat.com +wegame.com wegame.com.cn +weiyun.com alloyteam.com imweb.io ivweb.io +mi.com +mi-img.com  mifile.cn miui.com +miwifi.com  xiaomi.cn +xiaomi.com +xiaomi.netxiaomiyoupin.com  00cdn.com  88cdn.com +sandai.netthunderurl.com +xunlei.com 10086.cn 139.comchinamobile.comchinamobileltd.com migucloud.com migu.cn +cmvideo.cn miguvideo.com andfx.cn  andfx.net +cmicrwx.cncmpassport.comfetion-portal.com fetionpic.com mmarket.com mmarket6.com +ctexcel.ca ctexcel.comctexcel.com.hk +ctexcel.fr +ctexcel.us +189.cnchinatelecom-h.comchinatelecom.com.cnchinatelecomglobal.com +chntel.com  10010.com 10010.com.cnchinaunicom.comchinaunicom.com.cnchinaunicom.com.hkchinaunicomglobal.commychinaunicom.com  wo.com.cn +j-test.comguoxuedashi.com guoxuemi.com mojidict.com jikipedia.com haidilao.com0123456789.com 0379home.com +055110.com  05sun.com 0759job.com  100bt.com 100offer.com  11467.com +114chn.com 114piaowu.com 114shouji.com +119you.com 123juzi.com 123juzi.net 123u.com 1637.com  16888.com 16rd.com  17173.com 178linux.com  17989.com  17cdn.com 17house.com  18183.com 188.com 1905.com  19yxw.com 1nongjing.com  1ting.com 1zhe.com 21cn.com 2265.com 2288.org 2345.com 258.com 263.net 289.com 2cto.com 3000.com +310win.com +315che.com 3234.com 32r.com 3322.org 3387.com 33lc.com 3454.com 3456.cc +35.com 3533.com 360aiyi.com +360doc.com  360jq.com 360zhyx.com +365azw.com +365dmp.com +37.com 3733.com 3839.com +39.net 3conline.com 3d66.com +3elife.net 3h3.com 3yx.com  40407.com 500.com 500d.me +50bang.org +51.com 51.la +510you.com 51credit.com  51cto.com 51eshop.com 51gaifang.com 51hejia.com51jingying.com 51meishu.com +51sole.com 51wendang.com  51yes.com 5253.com  52hxw.com +52miji.com 52pk.com 52z.com 53kf.com +55.com +56.com 5577.com  55bbs.com  58pic.com  5bite.com 5fun.com 5gzm.net 5khouse.com 5you.com 66wz.com 68h5.com +6rooms.com 714.com 7230.com +72byte.com  7down.com 7k7k.com  7moor.com 7po.com +7x24cc.com +7xdown.com  818ps.com  84399.com 885.com +900.la 917.com 91danji.com 91yunxiao.com 9553.com 962.net 9718.com  99166.com 998.com 999d.com 99danji.com 9ht.com +9xgame.com 9xu.com a9vg.com +aardio.com +adxvip.com +afzhan.com agrantsem.com  aiemy.com aiketour.com  aiops.com  aipai.comairchangan.com airguilin.com aisee.tv aiskycn.com aiyunxiao.com +aizhan.comalittle-tea.com +allyes.com anfensi.com +anquan.org +anruan.com +aotrip.net  aoyou.com apk3.com apk8.com appchina.com +appinn.com  arpun.com babytree.combabytreeimg.com baidufree.combaifendian.com  baihe.com baixing.com baixing.netbamenzhushou.combangongziyuan.com baofeng.combaoxianshichang.com bcy.net bearychat.com beihaidc.combeijing-lipin.com bengbeng.com  benmi.com  berui.combestopview.com biancheng.net bianews.com bibaodao.com bidchance.com biddingx.com bihu.com +bio360.net  bio4p.com bio-equip.combiodiscover.com bishijie.com bitecoin.com biyehome.net bjcathay.com bobo.com bojianger.com +bokecc.com  boosj.com btcfans.com btgtravel.com bthhotels.com  btime.comcabbagebox.com caijingwu.com +caiyun.com cang.comcankaoxiaoxi.comcardbaobao.com +carnoc.com  cdn20.com  cecdc.com cecport.com centanet.com cerambath.org +ch.com chachaba.com changba.com chashebao.comchazhengla.com +che168.comchina-chair.comchina-nengyuan.com  china.comchinacache.comchinacache.netchinachugui.comchinadongchu.com chinafph.comchinakaoyan.comchinalawedu.com chinapay.com chinapp.netchinapubmed.net chinasspp.comchinatranslation.net chinaunix.netchinaweiyu.comchinawutong.com chinazns.comchongdiantou.com +chouti.com chuangxin.com chuansong.mechuansongme.com +chushou.tv chuyu.me  city8.com cjol.com clouddn.com cloudxns.com cnanzhi.com +cnbeta.com cnbetacdn.com cnblogs.com +cnepub.com  cnlaw.net cnzz.com cocodiy.com code666.com +cofeed.com +cofool.com coindog.comcontentchina.com  cpppf.org  cr173.com  crsky.com  csbew.com +csmjzs.com csslcloud.net +ctfile.com ctiforum.com ctoutiao.com  ctsbw.com +cubead.com  cwxzx.com +cyagen.com  cybtc.com cyol.com cyts.com cztv.com cztvcloud.com dadajiasu.com dadighost.com daguzhe.com dajiabao.com  dajie.com dajieimg.com dalongyun.com dangbei.com danji100.com +danji6.com daocloud.io daovoice.iodayukaoshi.com dazijia.com +dcdkjx.com  dd373.com  ddooo.com dedecms.com develenv.com +dginfo.comdgphospital.comdianchacha.com diandian.comdiandianqi.comdianwannan.comdingxiang-inc.com +diopic.net diyiyou.com dj99.com  docin.com dockerone.com +dockone.io dogedoge.com +donews.com +dongao.comdongguantoday.com dopa.com +douxie.com +downcc.com downxia.com +downyi.com +dpfile.comdreams-travel.comdrivergenius.com +dui.ai duiopen.com duoduocdn.com duokanbox.com +duomai.com duoshuo.com  duote.com dxpmedia.com +dxycdn.com  dyhjw.com dzsc.com dzw3.com  dzwww.com easesale.com  easiu.com eastday.com eastsoo.com +eayyou.com  ebico.com  ebrun.com +ecitic.com ecjobhome.com +edu.cn  eduei.com eeyy.com eflycloud.com elecfans.com emarbox.com +emumax.com enterdesk.comeoeandroid.com excelhome.net expreview.com extfans.comf.cx  faloo.com famulei.com  fanli.comfangxiaoer.com fanxian.com fastapi.net +feihuo.com feiniaomy.comfengkongcloud.com fengniao.comfengxian110.com  fenxi.com +fhldns.com  fimmu.com finchina.com fixdown.com  fqjob.net freebuf.com fugetech.com fuwj.com fxxz.com fyxz.com game234.com gameabc.com gamemei.com +gaodun.comgaoshouyou.comgaoxiaojob.com +gdjdxy.comgdliontech.com gdrc.com geilicdn.comgenelinkout.com  getui.com +gezida.com gfan.com +giocdn.com globrand.com gm86.com gmallbio.com  gmz88.comgobasearcher.com gold678.com  golue.comgongxiangcj.com goosail.com  goufw.com gree.comgreenxiazai.com growingio.com  gtags.net  guabu.com guaiguai.comguanaitong.comguanhaobio.com gucheng.com  guigu.org guoxinmac.com  gupzs.com gushiwen.orgguzhangting.com +gwdang.comgxairlines.com +gxb.io gzwanju.com h5uc.com hack520.com hackhome.com haishun.com hanboshi.com handanjob.comhangjiayun.com haolietou.com  haote.comhaoyouyinxiang.com hefei.cc +heisha.net  henha.com henkuai.com herostart.com  hiido.com hitv.com hiyd.com hktheone.com hn-cbec.com +hnrcsc.com hntv.tv hnyuyuhui.com hollycrm.com homeinns.com homekoo.comhongsanban.com +houdao.comhouyuantuan.com hteacher.net huanqiu.comhuashengdaili.com  huatu.com  huize.com  hujia.org hujiang.com hunantv.comhuochepiao.com huocheso.com  huxiu.com hxfy888.com hxsd.com iask.com +ibaotu.com ibuychem.com icaidao.com ichangtou.com idongdong.com iflytek.com  igao7.com +iheima.com ijiandao.com +ikafan.com im2maker.com  im-cc.com +imedao.com imgo.tv  imooc.com indienova.cominfinitynewtab.com  infoq.cominfoqstatic.com +ip-cdn.com  ip138.com ipinyou.com iranshao.com  irs01.com ishumei.com  it165.net  it168.com  it610.com  iteye.com +itjuzi.com  itmop.com  iyiou.com iyunxiao.com +izuche.com +jandan.net jb51.com  jdair.net jia.com jiameng.com jianbihua.com jianzhi8.com jiaodong.net jiaoyimao.com jiasuhui.com jiasule.com jiathis.com jiayuan.com jiazhao.com jiemeng8.comjikexueyuan.com jinianbi.comjinrongren.net  jinse.com  jinti.comjiqizhixin.com jisuanke.com jisuxia.com jiuzhilan.com jj20.com jkbl.com jmstatic.com job5588.com +job910.com  jobjm.com jsbc.com +jsrdgg.com jstv.com  jsyks.com juefeng.com +julive.com  jumei.com  juwan.com  juxia.com  jyimg.com k366.com kaifubiao.com kaixin001.com kameng98.com +kanimg.com kankanews.com kantianqi.net kanzhun.com kaopu001.comkeboyunxiao.com  kejet.net kf5.com +kimiss.com kingdee.com kkzj.com +kongfz.com koolearn.com +kouclo.com +koudai.com koudai8.com kq7.com  ksord.com  kuaaa.com kuaidi100.com kuaihou.com kuaizhan.com  kuqin.com +kuyiso.com lady8844.com lanhuapp.com laomaotao.net laomaotao.org  lascn.net  lawxp.com leanote.com ledu.comleetcode-cn.com leikeji.com leiphone.com leiting.com leju.com leturich.org lianmishu.com +liantu.com lianzhuli.comliaoxuefeng.com liba.com libaclub.comlieyunwang.com lightonus.com +likuso.com lingkou.com linkvans.com  linsn.com linuxidc.com liulanqi.net liuxiaoer.com live800.com liweijia.com lixinger.com lkkbrand.com longhoo.net +longre.comlongtugame.com longzhu.com  lotpc.com +loupan.com +lu.com luckyair.net  lufax.com lufaxcdn.com lunwengo.net luyouqi.com +lvmama.comlvsexitong.com  lxway.com +magedu.com maisanqi.com +mamecn.com manhuatai.com manmankan.com +mapbar.com mayi.com +mayihr.com +mcbang.com  mdpda.com mechina.org +mediav.com meifang.com meika360.com meilishuo.commeimingteng.com +meiqia.commeishichina.com meishij.netmengtuoshi.wang mgtv.commiaobolive.com miaozhen.com +miercn.com mijisou.com mikecrm.comminhangshi.com miusi.co mjia.cc +mmbang.com mmbang.info +mofang.com mofazhu.com mogu.com mogucdn.com mogujie.com +mokahr.com moleecel.commoocollege.com mop.com msanjia.com +mscbsc.com mukewang.com +mumayi.com +muomou.com muzhiwan.com +mydown.com mydrivers.com myshow360.net myyx618.com myzaker.com naixuecha.com netbian.com +newasp.netnewbandeng.com  newyx.net nowcoder.com nowscore.com  nruan.com ntalker.com nvsheng.com  nzbdw.com oadz.com  oeeee.com  offcn.com officese.com +oicq88.com  okooo.com +ol-cdn.com +ol-img.com oldboyedu.com +oneapm.com onegreen.net +oneyac.comonlinedown.netonlinesjtu.com onlylady.com +opdown.com oray.com  ottcn.com +oupeng.com +p2peye.com p5w.netpaipaibang.com paopaoche.net pc6.com +pcbeta.com +pchome.net  pcpop.com  peccn.com pgzs.compharmacodia.com piaoliang.compingplusplus.com pingwest.com +pingxx.com pintu360.com  pipaw.com  pipaw.net pptbest.com +pubyun.com  qc188.com qcc.com qcds.com qd8.com qd-metro.com qh24.com qiangbus.com qianjia.com qianlima.com qianzhan.comqiaobutang.com qichacha.com +qie.tv qifeiye.comqijiayoudao.netqingdaochina.orgqingdaonews.comqingsongchou.com qiumibao.com qizuang.com  qqddc.comqqgexingqianming.com qqrizhi.comqqshuoshuo.com +qschou.com +qtmojo.com +qudong.com +qugame.com  qunar.com qunarzz.com qyer.com rfchost.comrockyenglish.com rong360.com rtbasia.com  ruan8.com +runoob.com rzrc114.com  saibo.com sanguosha.com +sanwen.net  scdng.com scoregg.com +sczsxx.com sdo.com sec-wiki.com +sencdn.com seniverse.comsenlinjimore.com +sgamer.com shang360.com +shangc.netshanghairc.com shangzhibo.tvshanshuihotel.com sharejs.com shebiaotm.comshelter-china.comshelterdome.netshengdaosoft.comshenmayouxi.com  sheui.com shijiexia.com shixiseng.com shmetro.comshoujihuifu.comshouyoubus.com shrbank.comshuidichou.comshuidihuzhu.com shumensy.comshuoshuokong.com +shutcm.com +simei8.com simuwang.com sinesafe.com  sjwyx.com  skycn.com sllssrq.com +snimay.com  sobot.com sofreight.com softwhy.com +sojson.com +somode.com soso.com souqian.comsouthmoney.comsparkletour.comspringtour.com ssports.com starbaby.cc starbaby.com stockstar.com sun0769.com +sunrtb.com supermap.comsupermapcloud.com +sys321.com szfw.org szhk.com szzfgjj.com t1y5.com  taihe.comtaihuoniao.com tangeche.com tanx.com +tao123.com +taoche.com te5.com tenxcloud.comtianjimedia.comtianjin-air.comtianlailive.com +tianqi.com tietuku.com +tiexue.net timedoo.com tingyun.com titanar.com tjjt360.com  tmcdn.net +tobosu.com tom.com tongdun.net topthink.com touqikan.com travelsky.com trunktech.comtrustexporter.com trustutn.org  tudou.com tudouui.com tuer123.com tuicool.com +tuiwen.net  tujia.com  tuniu.com tutuapp.com  tuwan.com tuwanjun.com u.tools  ucbug.com +uggame.com uoko.com urselect.comurumqi-air.com  useso.com uuu9.com uzzf.com  v5875.com value500.com vamaker.com vdolady.com veryhuo.com veryzhun.com  vic18.com videojj.com  vijos.org vip.com  vobao.com +vpgame.comwangyangyang.vipwannianli8.com wanplus.com wanwushuo.com wanyiwang.com  wanyx.com +wdjimg.com wdzj.com  weand.com webterren.com weicaifu.com weidian.comweilaicaijing.comweilaiyunxiao.com weiphone.net weixing.com weiyangx.comwelltrend-edu.com wenjuan.comwhlovehome.com wicresoft.com +win007.com win8.netwindows10zj.comwindows7en.com windowszj.com winwin7.com wishdown.com  wmzhe.com wnhuifu.com wodingche.com  womai.com wonnder.com +wooyun.org worktile.comwoyaogexing.com  woyoo.com  wqiis.com wrating.com +wscdns.com  wtown.com  wumii.com +wuming.comwuximediaglobal.com  wywyx.com xafc.com  xbiao.com  xdwan.com +xfdown.com +xhscdn.comxiachufang.comxiaobaixitong.comxiaoe-tech.com xiaogouh5.comxiaohongshu.com  xiaoka.tv xiaokaxiu.comxiaomingtaiji.comxiaoxiongxitong.comxiaoyuxitong.com  xiayx.com xiazaiba.com xingjiesj.com xinhuanet.comxinrenxinshi.com xinshipu.comxingtan001.com xitong8.com xitu.com xiu8.com +xiucai.com xiziwang.net xmhouse.com  xnpic.com  xpgod.com +xsa239.comxuanchuanyi.com  xue51.com xuekanba.com xuexicha.com xundupdf.com  xycdn.com xywy.com +xzking.com yahui.cc +yaolan.com  yaoyl.com  yaozh.com +ycgame.com +yeepay.com +yeshen.com  yesky.com yh31.com  yigao.com yigoonet.com yihedoors.comyikaochacha.com yikexue.comyingjia360.comyinhang123.net yinxiang.com yinyuetai.comyinzhaowang.com +yiqifa.com +yiqifa.org yisu.com yitaifang.com  yiwan.com yixi.tv yizhibo.com  yjbys.com ynhr.com +yocajr.com +youboy.com youjiao.com youke.co youlian.fun youshang.com youxiake.com youxihezi.net youxila.com youxiniao.com youxigt.com  youzu.com yoyojie.com  yoyou.com  ypppt.com +yslyhr.com  ysten.com +yuewen.com  yunaq.com yunba.io yundaex.com yundasys.com +yundun.com yunqishi.net yunshipei.com yunxiao.com yunzhijia.com  yupoo.com  yuzua.com  yxbao.com +yxdown.com +yytcdn.com +zampda.net zampdsp.com zastatic.com +zbjimg.com zczj.com +zdfans.com zgjm.org +zgjsks.com  zglxw.com  zgzcw.com zhanbuba.comzhangyoubao.com zhanzhang.net zhaodanji.com zhaokao.net zhaopin.com zhcw.com +zhenai.com  zhibo8.cc  zhidx.com zhifang.com +zhipin.com zhiziyun.com zhongkao.comzhuangjiba.comzhuanyewanjia.comzhuayoukong.com zhubajie.com zhugeapi.net zhugeio.com  zimuzu.io zixiaomao.com zixuntop.com  zjstv.com zmengzhu.com zongheng.com +zpb365.com +zrblog.net zsxq.com  zuche.com zuchecdn.com zuhaowan.com zuidaima.com zuowen8.comzuowenwang.net jindidata.comtianyancha.comzhuanxiandai.com +fm3838.comlarsonlimited.com runsheng.com vzuu.com +zoom3g.com +zoomyou.cn chaoxing.com chaoxing.cc + +X-ORG x.org +% + BAIDU-ADS a.baidu.com +ads ad.duapps.com +ads ad.player.baidu.com +ads adm.baidu.com +adsadscdn.baidu.com +adsadx.xiaodutv.com +adsae.bdstatic.com +ads afd.baidu.com +ads als.baidu.com +ads&api.mobula.sdk.duapps.com +ads"api.tuisong.baidu.com +adsappc.baidu.com +adsb.bdstatic.com +adsbaichuan.baidu.com +adsbaidustatic.com +adsbaidutv.baidu.com +adsbanlv.baidu.com +ads bar.baidu.com +ads"bdimg.share.baidu.com +adsbdplus.baidu.com +ads bj.bcebos.com +adsbtlaunch.baidu.com +ads c.baidu.com +ads cb.baidu.com +adscbjs.baidu.com +adscjhq.baidu.com +adscleaner.baidu.com +ads click.bes.baidu.com +adsclick.hm.baidu.com +adsclick.qianqian.com +ads"cm.baichuan.baidu.com +ads cm.baidu.com +adscm.pos.baidu.com +ads cpro.baidu.cn +adscpro.baidu.com +ads!cpro.baidustatic.com +ads!cpro.tieba.baidu.com +ads"cpro.zhidao.baidu.com +adscpro2.baidu.com +ads"cpro2.baidustatic.com +ads crs.baidu.com +adsdatax.baidu.com +ads dd713.bj.bcebos.com +ads dl.client.baidu.com +adsdl.ops.baidu.com +adsdl1sw.baidu.com +adsdl2.bav.baidu.com +adsdlsw.baidu.com +adsdlsw.br.baidu.com +ads!dl-vip.bav.baidu.com +ads(dl-vip.pcfaster.baidu.co.th +ads#download.bav.baidu.com +ads"download.sd.baidu.com +adsdrmcmm.baidu.com +ads dup.baidustatic.com +ads dxp.baidu.com +ads dzl.baidu.com +ads e.baidu.com +adseclick.baidu.com +adsecma.bdimg.com +adsecmb.bdimg.com +adsecmc.bdimg.com +ads eiv.baidu.com +ads em.baidu.com +adsentry.baidu.com +ads ers.baidu.com +ads f10.baidu.com +ads#fc-feed.cdn.bcebos.com +adsfclick.baidu.com +adsfeed.baidu.com +adsfexclick.baidu.com +ads g.baidu.com +adsgimg.baidu.com +adsguanjia.baidu.com +ads hc.baidu.com +ads hm.baidu.com +adshmma.baidu.com +ads hpd.baidu.com +adsidm.bce.baidu.com +adsidm-su.baidu.com +adsiebar.baidu.com +adsikcode.baidu.com +adsimg.taotaosou.cn +adsimg01.taotaosou.cn +adsj.br.baidu.com +adskstj.baidu.com +ads log.music.baidu.com +ads m1.baidu.com +ads ma.baidu.com +adsmobads.baidu.com +ads"mobads-logs.baidu.com +adsmpro.baidu.com +adsmsite.baidu.com +adsneirong.baidu.com +adsnsclick.baidu.com +ads#nsclickvideo.baidu.com +adsopenrcv.baidu.com +ads$pc.videoclick.baidu.com +ads pos.baidu.com +adspups.bdimg.com +ads%push.zhanzhang.baidu.com +ads qianclick.baidu.com +adsrelease.baidu.com +adsres.mi.baidu.com +ads"rigel.baidustatic.com +ads#river.zhidao.baidu.com +ads rj.baidu.com +adsrplog.baidu.com +ads s.baidu.com +adss.cpro.baidu.com +ads!sa.tuisong.baidu.com +adssclick.baidu.com +adssestat.baidu.com +adsshadu.baidu.com +adsshare.baidu.com +ads"snippet.pos.baidu.com +adssobar.baidu.com +adssobartop.baidu.com +adsspcode.baidu.com +adsstat.v.baidu.com +ads su.bdimg.com +adssu.bdstatic.com +ads t10.baidu.com +ads t11.baidu.com +ads t12.baidu.com +ads tk.baidu.com +adstkweb.baidu.com +ads"tob-cms.bj.bcebos.com +adstongji.baidu.com +adstoolbar.baidu.com +adstracker.baidu.com +adstuijian.baidu.com +ads*uat1.bfsspadserver.8le8le.com +ads#ubmcmm.baidustatic.com +adsucstat.baidu.com +adsulic.baidu.com +ads ulog.imap.baidu.com +adsunion.baidu.com +ads!unionimage.baidu.com +adsutility.baidu.com +ads utk.baidu.com +ads videopush.baidu.com +adsvv84.bj.bcebos.com +adsw.gdown.baidu.com +ads w.x.baidu.com +adswangmeng.baidu.com +adsweishi.baidu.com +ads$wenku-cms.bj.bcebos.com +ads%wisepush.video.baidu.com +ads wm.baidu.com +adswn.pos.baidu.com +adsznsv.baidu.com +adszz.bdstatic.com +adszzy1.quyaoya.com +ads + +BIGHEAD bighead.group +9 +NIKKEI +nikkei.com  nikkei.jp nikkei.co.jp + +RASPBIAN raspbian.org +M + +STRIKINGLYmystrikingly.comstrikingly.comstrikinglycdn.com +, +CYLINK +cylink.procylink0122.icu +$ + FREECODECAMPfreecodecamp.org +w +JWPLAYER +jwpcdn.comjwplatform.com jwplayer.com +jwpltx.com +jwpsrv.comlongtailvideo.com + +MINImini4myminicard.comaboutyourmini.comatlantaminidealers.comgreatergothammini.com!midatlanticbmwmotorcycles.commini-abudhabi.commini-antilles.frmini-bahrain.commini-bosnia.com mini-clubs-international.commini-connected.atmini-connected.bemini-connected.chmini-connected.co.ukmini-connected.commini-connected.czmini-connected.demini-connected.dkmini-connected.eemini-connected.esmini-connected.fimini-connected.frmini-connected.iemini-connected.itmini-connected.ltmini-connected.lumini-connected.lvmini-connected.nlmini-connected.nomini-connected.plmini-connected.ptmini-connected.semini-corporate-sales.com mini-coupe.camini-dubai.com +mini-e.commini-egypt.commini-georgia.commini-grouparchiv.demini-grouparchive.commini-jordan.com mini-ksa.commini-kuwait.commini-lebanon.com mini-me.com mini-oman.commini-qatar.commini-srilanka.commini-stjohns.camini-stjohns.commini-tahiti.commini-vietnam.commini-windsor.camini-windsor.com mini.am mini.at mini.be mini.bg mini.by mini.ca mini.cc mini.ch mini.cl +mini.co.cr +mini.co.id +mini.co.il +mini.co.kr +mini.co.me +mini.co.th +mini.co.uk +mini.co.za mini.com mini.com.ar mini.com.bn mini.com.br mini.com.co mini.com.cy mini.com.do mini.com.ec mini.com.gr mini.com.gt mini.com.hr mini.com.mk mini.com.mo mini.com.mt mini.com.mx mini.com.pa mini.com.pe mini.com.ph mini.com.pl mini.com.py mini.com.sg mini.com.tr mini.com.tw mini.com.uy mini.cz mini.de mini.dk mini.dz mini.es mini.fi mini.fr mini.gp mini.hu mini.ie mini.in mini.is mini.it mini.jp mini.kz mini.lu mini.ma mini.md mini.mq mini.mu mini.my mini.nc mini.nl mini.no mini.pt mini.re mini.ro mini.rs mini.ru mini.se mini.si mini.sk mini.tm mini.tn mini.ua +mini101.caminiargentina.comminibrossard.caminibrossard.com minicanada.caminicaribbean.com miniccrc.ca minicooper.caminidealer.comminidealernet.comminidowntown.caminidowntown.com minidrivingexperienceusa.com minidurham.caminidurham.com  minie.com +minifs.comminigeorgian.caminigrandriver.comminihalifax.caminihalifax.com +minihk.comminiinvasion.caminiitalianjob.comminikelowna.caminikelowna.comminilangley.caminilangley.com minilat.com minilaval.ca minilaval.com minilondon.ca minilondon.cominimarkham.caminimarkham.comminimoncton.caminimoncton.comminimontrealcentre.caminimontroyal.caminimontroyal.comminimotoringrewards.comminimotoringschool.comminimotorsport.commininanaimo.camininanaimo.comminioakville.comminiofmonrovia.comminipetfriendly.comminirichmond.caminirichmond.comminisaskatoon.caminisaskatoon.com minishop.ca minispace.comminispecialoffers.caminispygear.comministcatharines.caministeagathe.comministjohns.caminitakesthestates.comminitoronto.caminitroisrivieres.ca miniusa.comminiusaservice.comminiusatires.comminivalueservice.comminivancouver.caminivaughanwest.caminivaughanwest.comminivictoria.caminivictoria.comminivilledequebec.caminivilledequebec.comminiwholesaleconnect.com miniwidget.caminiwindsor.comminiworkshop.comminiyaletown.capugetsoundmini.comshopminiusa.comsouthfloridamini.com +trmini.comtroisrivieresmini.comyours-customised.mini.com +7 + BOOTSTRAPbootstrapcdn.comgetbootstrap.com + + SPOTIFY-ADS'adeventtracker.spotify.com +ads$adstudio-assets.scdn.co +ads#bloodhound.spotify.com +ads + +BADGEN +badgen.net +> + CATEGORY-DEValpinelinux.org anaconda.com anaconda.org conda.io android.comandroidify.com +apache.orgappleswift.com  swift.org +swiftui.cn +cnswiftui.com.cn +cncalendarserver.orgapple-cloudkit.com cups.orgdeveloper.apple.comdevimages-cdn.apple.comdevstreaming-cdn.apple.comfoundationdb.orgmacosforge.org macruby.com macruby.net macruby.orgapple-mapkit.complaygrounds-cdn.apple.com carekit.orgresearchandcare.orgresearchkit.cn +cnresearchkit.com.cn +cnresearchkit.hkresearchkit.netresearchkit.orgresearchkit.tvservicetalk.io +webkit.org webkitgtk.org wpewebkit.orgwebobjects.com-)appleworldwidedeveloper.hb-api.omtrdc.net)%appleworldwidedeveloper.sc.omtrdc.net#p-events-delivery.akamaized.net archlinux.orgarchlinuxarm.org atom.io +badgen.netbootstrapcdn.comgetbootstrap.combraventures.com braveux.com +compass.isfightforux.comforthebadge.comstockagainstphotography.com launchpad.netlaunchpadlibrarian.comlaunchpadlibrarian.netlaunchpadlibrarian.org snapcraft.io snapstore.io +ubuntu.com +ubuntu.netubuntuforums.org canonical.com  cdnjs.com +centos.orgchocolatey.org clojure.org +cnpmjs.org +cygwin.com +cython.org dart.dev dartlang.org dartpad.dev +debian.org +dotdeb.org  deno.landcompose-spec.io +docker.com  docker.ioelixir-lang.org +elrepo.org embed.ly embedly.com playerjs.io +erlang.orgaccountkit.comatscaleconference.com botorch.org +buck.build buckbuild.comcomponentkit.org draftjs.org +f8.comfacebookappcenter.infofacebookappcenter.netfacebookappcenter.orgfacebookconnect.comfacebookdevelopergarage.comfaciometrics.com fasttext.cc fbf8.com fbinfer.com fblitho.com fbredex.com +fbrell.com flow.dev flow.org flowtype.org frescolib.org hacklang.org hhvm.commakeitopen.com mcrouter.net mcrouter.orgmessengerdevelopers.com +ogp.meopengraphprotocol.comopengraphprotocol.org  parse.com pyrobot.org  react.com reactjs.com reactjs.org recoiljs.org rocksdb.com rocksdb.net rocksdb.orgyogalayout.comdevelopers.facebook.com fastlane.cifastlane.tools getfedora.orgfedoraforum.orgfedoraproject.orgfedoramagazine.org +ffmpeg.org flathub.org flatpak.org flutter.devflutterapp.comfontawesome.comfortawesome.com freebsd.org  fury.blog fury.co fury.dev  fury.help fury.io gemfury.com +gentoo.orggetcomposer.org git-scm.com gitbook.com +gitbook.io  npmjs.com npm.communitydependabot.com +git.io github.blog +github.comgithub.community +github.dev  github.io githubapp.comgithubassets.comgithubhackathon.comgithubstatus.comgithubusercontent.com/+github-avatars.oss-cn-hongkong.aliyuncs.comFBgithub-production-release-asset-[0-9a-za-z]{6}\.s3\.amazonaws\.com +gitlab.com  gitlab.io +gitlab.netgitlab-static.net.*gitlab-assets.oss-cn-hongkong.aliyuncs.com gnu.org go-lang.com go-lang.net go-lang.org +go.dev  godoc.org +golang.com +golang.net +golang.org  consul.io hashicorp.comnomadproject.io  packer.io terraform.io vagrantup.comvaultproject.io haskell.orghaskellstack.org stackage.org brew.shhomebrew.bintray.com +01.org hyperscan.iointellinuxgraphics.comintellinuxgraphics.net +oneapi.comopenvinotoolkit.orgsnap-telemetry.io +acpica.com clearlinux.cn +cnclearlinux.org +ospray.net +ospray.org +ius.iojava java.com java.net +jenkins.io jetbrains.com jetbrains.net datalore.iokotlinlang.org  jfrog.com  jfrog.org bintray.com!d29vzk4ow07wi7.cloudfront.net +js.org jsdelivr.net jsdelivr.comcdn.jsdelivr.net +cn jupyter.org kali.org kubernetes.io +k8s.iolinuxfromscratch.org linuxmint.com lua.org macports.org mariadb.orgadaptivecards.ioapi-extractor.com +apisof.net appcenter.ms +blazor.netbotframework.comcodethemicrobit.comdevopsassessment.net dot.netgamesstack.comgraphengine.ioinsiderdevtour.com +jwt.ms microbit.orgmicrosoftadc.commicrosoftgamestack.commicrosoftiotinsiderlabs.commicrosoftreactor.cn +cn#microsoftreactor.com.cn +cnmicrosoftreactor.infomicrosoftreactor.netmicrosoftreactor.orgmicrosoftsilverlight.commicrosoftsilverlight.orgmicrosoftsilverlight.netmicrosoftsqlserver.com  mmdnn.commono-project.com msdn.commsinnovationchallenge.commspairlift.commsropendata.com  nuget.org nugettest.orgopentranslatorstothings.orgposhtestgallery.compwabuilder.comreactorms.com.cn +cn +sankie.netsqlserveronlinux.comtimelinestoryteller.comuwpcommunitytoolkit.comvisualstudio-staging.comvisualstudio.comvisualstudio.covisualstudio.co.ukvisualstudio.euvisualstudio.net vfsforgit.com vfsforgit.org vsassets.io xamarin.comdeveloper.microsoft.comdtlgalleryint.cloudapp.net poshtestgallery.cloudapp.net"psg-int-centralus.cloudapp.netpsg-int-eastus.cloudapp.net  mingw.org mongodb.com mongodb.org  mysql.com  nginx.com  nginx.org  nixos.orgnodesource.comnotepad-plus-plus.org +openai.com openresty.org openssl.org opensuse.org openwrt.orglede-project.org packagist.org pcre.org perl.org cpan.org metacpan.org phantomjs.org php.netpolymer-project.orgpolymerproject.orgpostgresql.org +python.orgpythonhosted.org pypa.io pypi.org qt.ioqt-project.org r-project.orgraspberrypi.org raspbian.orgreadthedocs-hosted.comreadthedocs.comreadthedocs.ioreadthedocs.org redis.io redislabs.com remirepo.net rpmfusion.org ruby-lang.org rubygems.orgscala-lang.org scala-sbt.orgscientificlinux.org scoop.sh +shields.io +sqlite.org askubuntu.comblogoverflow.commathoverflow.netserverfault.com sstatic.net stackapps.com stackauth.comstackexchange.com stackmod.blogstackoverflow.blogstackoverflow.comstackoverflow.emailstackoverflowbusiness.comstacksnippets.net superuser.com tex-talk.netthesffblog.commystrikingly.comstrikingly.comstrikinglycdn.comsublimetext.com +kernel.org  linux.org amp.devampproject.comampproject.netampproject.orgcdn.ampproject.org +cnamp.akamaized.netelectronjs.org +jquery.comjquerymobile.com jqueryui.com mochajs.org +nodejs.org openjsf.orglfai.foundationlinuxfoundation.org  unity.com unity3d.com!unityads.unity3d.com +ads#unityads.unitychina.cn +ads  unpkg.com +v8.dev v8project.org videojs.com videolan.org vim.org wireshark.org x.orgxda-developers.com xda-cdn.com xposed.info yarnpkg.com zsh.org +@ +HAVEIBEENPWNEDhaveibeenpwned.compwnedpasswords.com ++ +XIMALAYA ximalaya.com  xmcdn.com + + +ITUNES!12diasdepresentesdeitunes.com12diasderegalosdeitunes.cl12diasderegalosdeitunes.co!12diasderegalosdeitunes.co.cr!12diasderegalosdeitunes.co.ni!12diasderegalosdeitunes.co.ve12diasderegalosdeitunes.com"12diasderegalosdeitunes.com.co"12diasderegalosdeitunes.com.hn"12diasderegalosdeitunes.com.ni"12diasderegalosdeitunes.com.ve12diasderegalosdeitunes.cr12diasderegalosdeitunes.gt12diasderegalosdeitunes.hn12diasderegalosdeitunes.pe 12joursdecadeauxdeitunes.comapple-itunes.cn +cn itun.es itunbes.com ituneas.comitunes-apple.cn +cnitunes-radio.net  itunes.ca  itunes.co itunes.co.th +itunes.com  itunes.hk  itunes.mx +itunes.org +itunes.rio  itunes.usitunes12days.comitunesapple.cn +cnitunesessentials.comitunesfestivals.comitunesiradio.comituneslatino.comituneslogin.netitunesmatch.comitunesparty.comitunesradio.cn +cnitunesradio.comitunesradio.com.cn +cnitunesradio.rioitunesradio.tvitunesradio.twitunesstore.co itunesu.com itunesu.net iutunes.com wwwitunes.comitunes-apple.com.akadns.net + +WHOLEFOODSMARKETwholecitiesfoundation.orgwholefoodsmarket.comwholekidsfoundation.orgwholeplanetfoundation.org + +KNOVEL +knovel.com +' + WTEAM-ADS ads.wteam.xyz +ads +c +YOUKU +kumiao.com  youku.com  ykimg.com +mmstat.com soku.com +cibntv.net +& + BAICAONETWORKbaicaonetwork.com +& + VAGINACONTESTvaginacontest.com + +SKYsky sky.com skyassets.comskyoceanrescue.comskyoceanrescue.deskyoceanrescue.it skysports.com skysports.fr skysports.ieskysportsonline.comskysportsracing.com +4 +ZB +zb.app +zb.com zb.io zb.live + +HEROKU  heroku.co +heroku.com  heroku.me herokuapp.com herokucdn.comherokucharge.com herokussl.comheroku-app.comheroku-charge.com codei.sh +codeish.co +codeish.io + +QINIUstaticfile.org qbox.me  qiniu.com qiniucdn.com qiniudn.com qiniudns.com +qiniup.com  qnsdk.com  qnssl.com + +SPOTIFY byspotify.com pscdn.co scdn.co spoti.fispotify-everywhere.com spotify.comspotify.designspotifycdn.comspotifycharts.comspotifycodes.comspotifyforbrands.comspotifyjobs.com +e + ATOM-DATA-ADS atom-data.io +adsanalytics-data.io +ads ironbeast.io +ads + +BINANCEbinance.charity binance.cloud binance.combinance.vision binancezh.com bnbstatic.com yshyqxx.com +. +CHINADIGITALTIMESchinadigitaltimes.net +" + EPICBROWSERepicbrowser.com + +TINYURL tinyurl.com + + BRIDGESTONE bridgestone  bandag.cc +bandag.comblizzak-juken.jpbookmybridgestonetyre.combridgestone-asiapacific.combridgestone-bandag.combridgestone-brand.com#bridgestone-business-service.jpbridgestone-korea.co.krbridgestone-plt-eng.combridgestone-tac-oman.combridgestone.clbridgestone.cn +cnbridgestone.co.crbridgestone.co.idbridgestone.co.inbridgestone.co.jpbridgestone.co.thbridgestone.combridgestone.com.arbridgestone.com.brbridgestone.com.cn +cnbridgestone.com.cobridgestone.com.mxbridgestone.com.sgbridgestone.com.twbridgestone.com.vnbridgestoneamericas.combridgestonearena.combridgestonecntc.combridgestonecomercial.clbridgestonecomercial.co.crbridgestonecomercial.com.arbridgestonecomercial.com.brbridgestonecomercial.com.cobridgestonecomercial.com.mxbridgestonegolf.combridgestonegz.combridgestonela.combridgestonemarketing.combridgestonemerchandise.com bridgestonenationalfleet.combridgestoneperformance.com#bridgestoneperformancemedia.net bridgestonerapiddelivery.combridgestonerewards.combridgestonesyb.combridgestonetire.cabridgestonetire.combridgestonetyre.com.mybridgestonevan.combridgestonewx.combs-adreview.com bs-awh.ne.jp  bsw.co.jp +bsw.jpcarcare-and-tireshop.jpdaytontrucktires.com ecoforme.jp gcrtires.comjsbridgestone.commenshin-channel.com monitrix.net mr-tireman.jpmybridgestoneeducation.com playz.jp +potenza.jpprodrive-japan.comstore-bridgestonesports.com thetread.com tiresplus.com cfna.combastropfirestone.comcrossfitfirestone.com firestone.clfirestone.co.crfirestone.com.arfirestone.com.brfirestone.com.cofirestone.com.mxfirestonebpco.comfirestonecomercial.clfirestonecomercial.co.crfirestonecomercial.com.arfirestonecomercial.com.brfirestonecomercial.com.cofirestonecomercial.com.mx!firestonecompleteautocare.comfirestonedrivestore.comfirestoneip.comfirestonerewards.comfirestonetire.cafirestonetire.comhibdontire.comwheelworks.netnokiantyres.cn +cnnokiantyres.com + + INSTAGRAM!achat-followers-instagram.com#acheter-followers-instagram.com$ acheterdesfollowersinstagram.com!acheterfollowersinstagram.combookstagram.comcarstagram.comcdninstagram.comchickstagram.com ig.me  igcdn.com igsonar.com igtv.com imstagram.com imtagram.cominstaadder.cominstachecker.cominstafallow.cominstafollower.cominstagainer.com instagda.com instagify.cominstagmania.com instagor.cominstagram-brand.cominstagram-engineering.cominstagram-help.cominstagram-press.cominstagram-press.net instagram.cominstagramci.cominstagramcn.cominstagramdi.cominstagramhashtags.netinstagramhilecim.cominstagramhilesi.orginstagramium.cominstagramizlenme.cominstagramkusu.cominstagramlogin.cominstagramm.cominstagramn.cominstagrampartners.cominstagramphoto.cominstagramq.cominstagramsepeti.cominstagramtakipcisatinal.netinstagramtakiphilesi.cominstagramtips.cominstagramtr.com instagran.cominstagranm.com instagrem.com instagrm.cominstagtram.com instagy.cominstamgram.cominstangram.cominstanttelegram.cominstaplayer.net instastyle.tv instgram.com intagram.com intagrm.com intgram.comkingstagram.comlnstagram-help.comtheinstagramhack.comoninstagram.comonline-instagram.comonlineinstagram.comweb-instagram.netwwwinstagram.com + + +KINDLE4RSSkindle4rss.com +* +PAGECDN pagecdn.com +pagecdn.io + +BOC +boc.cnbankofchina.combocaviation.com  boccfc.cn  bocgi.com bocgins.com  bochk.com bocichina.com bocigroup.com  bocim.combocservices.com.cn + +CATEGORY-SECURITIES-CN +sse.com.cn sseinfo.com szse.cn cninfo.com.cn ajzq.com avicsec.com  ccnew.com cczq.com cczq.net cfsc.com.cn cfzq.com cgws.comchinalions.comchinastock.com.cn cicc.com +ciccwm.com cindasc.com cjsc.com cnhbstock.com cnht.com.cn csco.com.cn csfounder.com  ctsec.com daton.com.cn  dfham.com dfzq.com.cn dgzq.com.cn dtsbc.com.cn dwjq.com.cn dxzq.net easec.com.cnessence.com.cn ewww.com.cn fcsc.cnfzfinancing.com  gf.com.cn ghsl.cn ghzq.com.cn gjzq.com.cn gkzq.com.cn glsc.com.cn grzq.com gsgh.cn gszq.com gtja.com gtja.com  guodu.com guosen.com.cn gyzq.com.cn hazq.com hczq.com hfzq.com.cn +hlzqgs.comhongtastock.com hrsec.com.cn hsbcqh.com.cn htsc.com.cn  htsec.comhuajingsec.com huajinsc.cn huayingsc.com hx168.com.cn hxzq.cn i618.com.cn  iztzq.com jhzq.com.cnjpmorganchina.com jyzq.cn  jzsec.com kysec.cn lczq.com lhzq.comlongone.com.cnmorganstanleyhuaxin.com mszq.com nesc.cn njzq.com.cnnomuraoi-sec.com +shgsec.com +shhxzq.com shzq.com stocke.com.cn +swhysc.com swsc.com.cn tebon.com.cn tfzq.com  tpyzq.com vanho.cn west95582.com wkzq.com.cn wlzq.cn wxzq.com xcsc.com xsdzq.cn xyzq.com.cn ydsc.com.cn ykzq.com ytzq.com zdzq.com.cn zszq.com +ztfsec.com +zts.com.cn +99fund.com +abc-ca.com avicfund.cn  bdfund.cn +bobbns.com boscam.com.cn +bosera.com ccfund.com.cn cfund108.comchanganfunds.comchinanature.com.cncib-fund.com.cncryuantafund.com +ctfund.com dbfund.com.cn efunds.com.cn fadfunds.comforesightfund.com founderff.com +fsfund.com +ftfund.comfullgoal.com.cn furamc.com.cngalaxyasset.com gefund.com.cngffunds.com.cn  gfund.com gowinamc.com +hffunds.cn hftfund.comhongdefund.com +hsfund.com huaan.com.cn +igwfmc.com  jsfund.cn  jtamc.com mfcteda.commsjyfund.com.cn +nffund.com  ocfund.cnorient-fund.com phfund.com.cnpostfund.com.cn +py-axa.com  swsmu.comtaipingfund.com.cn thfund.com.cntongtaiamc.com ubssdic.com xf-fund.com xqfunds.com  ydamc.com yhfund.com.cn +zhfund.com +zofund.com +5ifund.com +fund123.cn +howbuy.com lufunds.com  zlfund.cn +: +EBAY21centuryaccess.com4ebaytraders.com adcommerce.cn +cn adcommerce.tv appforebay.cn +cnappsonebay.net +asebay.com +baazee.com +bidbay.combidorbuyindia.com billpoint.combillpoint.info billpoint.tv billpoint.usbillpointnewzealand.com blogebay.combookclubcorner.combuiltfromebay.com buyitnow.com buyitnow.net buyitnow.org buyitnow.tvbuyitnowshop.net cafr.ca carebay.comcargigileads.com  cebay.comcollective99.comcommerceos.comconnectcommerce.cn +cn"connectcommerce.com.cn +cnconnectcommerce.hkconnectcommerce.infoconnectcommerce.tv connectedcommerce.cn +cnconnectedcommerce.comconnectedcommerce.tvcrececonebay.comcreditcardsbay.com cyber-bay.cn +cncyber-bay.com.cn +cncyber-bay.info cyber-bay.org +dba.dk dealbay.com dealtime.com  didce.com  douya.orgdreamtoplay.com  e-bay.com e-bay.it  e-bay.net eachpay.com eachpay.net  ebahy.comebay-authenticate.netebay-confirm.comebay-course.com ebay-cz.comebay-delivery.comebay-discoveries.comebay-fashion.com ebay-inc.com ebay-inc.net ebay-inc.orgebay-online.comebay-sales.comebay-stories.com ebay-us.comebay-vacation.com ebay.at ebay.be ebay.ca ebay.chebay.cn +cn +ebay.co.nz +ebay.co.uk +ebay.co.ve +ebay.co.za ebay.com ebay.com.ar ebay.com.au ebay.com.cn +cn ebay.com.ec ebay.com.hk ebay.com.mt ebay.com.my ebay.com.ph ebay.com.sg ebay.de ebay.es ebay.fr ebay.ie ebay.in ebay.it ebay.jp ebay.lt ebay.mn ebay.net.cn +cn ebay.nl ebay.org ebay.org.cn +cn ebay.ph ebay.pk ebay.pl ebay.sg ebay.us ebay.vn +ebay.yn.cn +cn +ebay.zj.cn +cn +ebay25.com +ebay68.com  ebaya.com ebayads.com ebayads.netebayadvertising.cn +cnebayadvertising.comebayanunsios.netebayauction.comebayaustralia.comebayauthenticate.com.cn ebaybags.com ebaybank.comebaybenefits.comebayboutique.com +ebayca.com +ebayca.org ebaycafe.com ebaycar.comebaycareers.com ebaycbt.co.kr ebaycdn.net ebaychina.netebayclassifiedsgroup.comebayclassifieds.cn +cnebayclassifieds.com"ebayclassifieds.com.cn +cnebayclassifieds.infoebayclassifieds.orgebayclassifieds.tvebayclassifiedsgroup.comebayclassifiedsgroup.infoebayclassifiedsgroup.orgebayclassifies.com ebayclub.com ebaycoins.com ebaycom.comebaycommercenetwork.comebaycourse.com  ebayd.com +ebayde.com ebaydesc.cn +cnebaydesc.com.cn +cnebaydlassifieds.com +ebaydns.cn +cn ebaydts.com ebayedu.comebayeletro.comebayenterprise.cn +cnebayenterprise.com!ebayenterprise.com.cn +cnebayenterprise.infoebayenterprise.netebayenterprise.tv ebayetc.comebayexpress.sgebayfashion.comebayfashion.netebayforcharity.orgebayforeclosure.orgebayfrance.comebayglobalshipping.com ebaygroup.com ebayhabit.com ebayheels.com ebayhots.com ebayimg.com ebayinc.com ebayinc.net ebayinc.org ebayincconnectedcommerce.netebayinkblog.comebayinternetsalestax.com +ebayit.comebayjewelry.com ebayjob.com +ebayla.orgebaylisting.com ebaylocal.netebaylocationsdevacances.com ebaymag.comebaymainstreet.com ebaymall.comebaymarketplace.net ebaymotors.ca ebaymotors.cn +cnebaymotors.comebaymotors.com.cn +cnebaymotors.orgebaymotorsblog.com ebaynow.com ebaynyc.com +ebayon.com +ebayon.netebayoncampus.com ebayopen.comebayopensource.comebayopensource.netebaypakistan.net ebaypark.com ebayparts.com ebaypedia.cn +cnebaypedia.com.cn +cnebayprivacycenter.com +ebayqq.com ebayradio.com ebayrtm.comebayseller.comebayshoesstore.com ebayshop.comebayshop111.comebayshopping.cn +cnebayshopping.com.cn +cnebayshopping.orgebaysocial.com ebaysocial.ru ebaysoho.com ebaysohos.com ebaystatic.cn +cnebaystatic.com ebaystore.comebaystore77.com ebaystores.cn +cn ebaystyle.comebaysweden.com  ebayt.comebaytechblog.comebaytopratedseller.netebaytrading.comebaytradingassistant.com +ebaytv.org ebayuae.netebayvakantiehuizen.com ebayvalet.comebayvietnam.netebayworlds.com  ebayy.com edisebay.com  eebay.com epinions.comeu-consumer-empowerment.comexpertmaker.comfairmarket.comfragrancebay.comfrancemail.com half.com half.com.cn +cn half.tvhalfcanada.com halfjapan.comhandbagsoutletebay.com  iebay.com irribay.comitsbetterwhenyouwinit.com liketwice.comliveauction.com milofetch.com musicbay.netmyconstructionworld.net +myebay.com  nebay.net paisapay.cc paisapay.info paisapay.tv premobay.comprivatemarketplaces.netprivatemarketplaces.us prostores.cn +cn prostores.comprostores.com.cn +cn rethink.net shopibay.net shoping.comsourcingforebay.com.cnsourcingforebay.netsourcingforebay.tv speybay.comstoresense.com +svpply.com telebay.com telesell.com texttobuy.orgtheebayshop.comtheopportunityproject.orgtowerauction.com  vendu.com weareebay.comwatch-ebay.org wwwdecide.com wwwebay.com wwwebay.net wwwwebay.com xindelu.comxn--3et96bj49ahpq.comxn--4vq475g.comxn--4vq477m.comxn--7hv594h.comxn--7hvy28f.cn +cnxn--hb4aw0g.comxn--q41am8x.comxn--qoq462m.comxn--tkry91n.comxn--ubt498knmf.comxn--xsq421m.comxn--xsq605n.comxn--xsq959n.comxn--yf1at58a.com  xxbay.com  yibei.orggittigidiyor.netgittigidiyorsikayet.com +gumtree.sg  jijiji.ca kiji.ca kijii.ca kijij.ca  kijiji.ca kijijiauto.cakijijiautos.ca kijijidns.cn +cnkijijidns.com.cn +cnkijijiforbusiness.ca +kijijii.ca kijijiraps.ca kijji.ca +kijjiji.ca automobile.fr  mobile.demobileinternational.com&mobileinternational.com.cn +cn +q10.jp qoo10.jpachievementanalytics.comcdn-terapeak.comlistinganalytics.netmarketexecutive.net tearapeak.com terapeack.com terapeak.ca terapeak.cn +cn terapeak.comterapeak.com.hk terapeak.hk terapeak.info teraperk.com terrapeak.com thebayuk.com +nexcat.com nexpart.com +nexpart.tv renchead.comwhisolutions.com wrenchead.com-)ebay-25-assets.s3-us-west-1.amazonaws.com +Q +SSRCLOUDairport-gov-cn.comcnix-gov-cn.comxn--d4ty0ojsqzfd.com + +CBScbs showtime cbs.comcbsaavideo.comcbscorporation.com cbsi.com +cbsi.video +cbsiam.com  cbsig.net +cbsimg.netcbsinteractive.comcbsistatic.com cbsivideo.com cbsnews.comcbspressexpress.com cbssports.com cbsstatic.com cbssvideo.com +viacbs.com +viacom.com viacomcbs.comviacomcbspressexpress.com paramount.com + +DIDI didi-food.comdidiaustralia.blogdidichuxing.comdidiglobal.comdidimobility.co.jpdidistatic.comxiaojukeji.com + +GEEKPARK geekpark.net +, +RENREN +renren.comrenren-inc.com +{ +OREILLY oreil.ly oreilly.comoreilly.com.cn +cnoreilly.revieworeillystatic.com +orl.ly +s +BMWmini4myminicard.comaboutyourmini.comatlantaminidealers.comgreatergothammini.com!midatlanticbmwmotorcycles.commini-abudhabi.commini-antilles.frmini-bahrain.commini-bosnia.com mini-clubs-international.commini-connected.atmini-connected.bemini-connected.chmini-connected.co.ukmini-connected.commini-connected.czmini-connected.demini-connected.dkmini-connected.eemini-connected.esmini-connected.fimini-connected.frmini-connected.iemini-connected.itmini-connected.ltmini-connected.lumini-connected.lvmini-connected.nlmini-connected.nomini-connected.plmini-connected.ptmini-connected.semini-corporate-sales.com mini-coupe.camini-dubai.com +mini-e.commini-egypt.commini-georgia.commini-grouparchiv.demini-grouparchive.commini-jordan.com mini-ksa.commini-kuwait.commini-lebanon.com mini-me.com mini-oman.commini-qatar.commini-srilanka.commini-stjohns.camini-stjohns.commini-tahiti.commini-vietnam.commini-windsor.camini-windsor.com mini.am mini.at mini.be mini.bg mini.by mini.ca mini.cc mini.ch mini.cl +mini.co.cr +mini.co.id +mini.co.il +mini.co.kr +mini.co.me +mini.co.th +mini.co.uk +mini.co.za mini.com mini.com.ar mini.com.bn mini.com.br mini.com.co mini.com.cy mini.com.do mini.com.ec mini.com.gr mini.com.gt mini.com.hr mini.com.mk mini.com.mo mini.com.mt mini.com.mx mini.com.pa mini.com.pe mini.com.ph mini.com.pl mini.com.py mini.com.sg mini.com.tr mini.com.tw mini.com.uy mini.cz mini.de mini.dk mini.dz mini.es mini.fi mini.fr mini.gp mini.hu mini.ie mini.in mini.is mini.it mini.jp mini.kz mini.lu mini.ma mini.md mini.mq mini.mu mini.my mini.nc mini.nl mini.no mini.pt mini.re mini.ro mini.rs mini.ru mini.se mini.si mini.sk mini.tm mini.tn mini.ua +mini101.caminiargentina.comminibrossard.caminibrossard.com minicanada.caminicaribbean.com miniccrc.ca minicooper.caminidealer.comminidealernet.comminidowntown.caminidowntown.com minidrivingexperienceusa.com minidurham.caminidurham.com  minie.com +minifs.comminigeorgian.caminigrandriver.comminihalifax.caminihalifax.com +minihk.comminiinvasion.caminiitalianjob.comminikelowna.caminikelowna.comminilangley.caminilangley.com minilat.com minilaval.ca minilaval.com minilondon.ca minilondon.cominimarkham.caminimarkham.comminimoncton.caminimoncton.comminimontrealcentre.caminimontroyal.caminimontroyal.comminimotoringrewards.comminimotoringschool.comminimotorsport.commininanaimo.camininanaimo.comminioakville.comminiofmonrovia.comminipetfriendly.comminirichmond.caminirichmond.comminisaskatoon.caminisaskatoon.com minishop.ca minispace.comminispecialoffers.caminispygear.comministcatharines.caministeagathe.comministjohns.caminitakesthestates.comminitoronto.caminitroisrivieres.ca miniusa.comminiusaservice.comminiusatires.comminivalueservice.comminivancouver.caminivaughanwest.caminivaughanwest.comminivictoria.caminivictoria.comminivilledequebec.caminivilledequebec.comminiwholesaleconnect.com miniwidget.caminiwindsor.comminiworkshop.comminiyaletown.capugetsoundmini.comshopminiusa.comsouthfloridamini.com +trmini.comtroisrivieresmini.comyours-customised.mini.combmwapprovedusedbmw.combaltimorebmw.combayareabmw.combmw-abudhabi.combmw-adventskalender.combmw-albania.combmw-antilles.frbmw-art-journey.combmw-arts-design.com bmw-asia.com bmw-auslieferungszentrum.combmw-authority-vehicles.combmw-bahrain.combmw-businessdrive.combmw-calgary.ca bmw-carit.debmw-classic.combmw-clubs-international.combmw-connected-drive.combmw-connecteddrive.aebmw-connecteddrive.atbmw-connecteddrive.bebmw-connecteddrive.bgbmw-connecteddrive.cabmw-connecteddrive.chbmw-connecteddrive.co.nzbmw-connecteddrive.co.ukbmw-connecteddrive.co.zabmw-connecteddrive.combmw-connecteddrive.com.aubmw-connecteddrive.com.brbmw-connecteddrive.com.cybmw-connecteddrive.com.hrbmw-connecteddrive.com.kwbmw-connecteddrive.com.mtbmw-connecteddrive.czbmw-connecteddrive.debmw-connecteddrive.dkbmw-connecteddrive.eebmw-connecteddrive.esbmw-connecteddrive.fibmw-connecteddrive.frbmw-connecteddrive.grbmw-connecteddrive.hubmw-connecteddrive.iebmw-connecteddrive.itbmw-connecteddrive.jpbmw-connecteddrive.krbmw-connecteddrive.ltbmw-connecteddrive.lubmw-connecteddrive.lvbmw-connecteddrive.mxbmw-connecteddrive.mybmw-connecteddrive.nlbmw-connecteddrive.nobmw-connecteddrive.plbmw-connecteddrive.ptbmw-connecteddrive.robmw-connecteddrive.rubmw-connecteddrive.sebmw-connecteddrive.sgbmw-connecteddrive.sibmw-connecteddrive.skbmw-connecteddrive.twbmw-corporate-sales.combmw-diplomatic-sales.combmw-driving-center.co.krbmw-drivingexperience.com bmw-dubai.com +bmw-eg.com bmw-fleet.net bmw-ghana.combmw-golfsport.com bmw-group.com bmw-group.netbmw-grouparchiv.debmw-grouparchives.com +bmw-gta.cabmw-i-pure-impulse.com bmw-i.jp bmw-int1.com bmw-iraq.combmw-jordan.combmw-konzernarchiv.de bmw-ksa.combmw-kuwait.com +bmw-lao.labmw-lebanon.combmw-m-safetycar.com  bmw-m.combmw-mdrivetour.com +bmw-me.combmw-military-sales.combmw-motorcycle.combmw-motorcycles.vnbmw-motorrad-abudhabi.com bmw-motorrad-authorities.combmw-motorrad-dubai.combmw-motorrad-motorsport.com!bmw-motorrad-now-or-never.com&"bmw-motorrad-service-inclusive.combmw-motorrad-test-ride.combmw-motorrad.atbmw-motorrad.bebmw-motorrad.bgbmw-motorrad.bhbmw-motorrad.bobmw-motorrad.cabmw-motorrad.chbmw-motorrad.clbmw-motorrad.cobmw-motorrad.co.idbmw-motorrad.co.krbmw-motorrad.co.nzbmw-motorrad.co.thbmw-motorrad.co.ukbmw-motorrad.co.zabmw-motorrad.combmw-motorrad.com.arbmw-motorrad.com.aubmw-motorrad.com.brbmw-motorrad.com.dobmw-motorrad.com.hrbmw-motorrad.com.mxbmw-motorrad.com.mybmw-motorrad.com.pebmw-motorrad.com.pybmw-motorrad.com.trbmw-motorrad.crbmw-motorrad.czbmw-motorrad.debmw-motorrad.dkbmw-motorrad.dzbmw-motorrad.ecbmw-motorrad.eebmw-motorrad.esbmw-motorrad.fibmw-motorrad.frbmw-motorrad.grbmw-motorrad.gtbmw-motorrad.hubmw-motorrad.inbmw-motorrad.itbmw-motorrad.jpbmw-motorrad.lubmw-motorrad.mabmw-motorrad.nlbmw-motorrad.nobmw-motorrad.pabmw-motorrad.plbmw-motorrad.ptbmw-motorrad.robmw-motorrad.rsbmw-motorrad.rubmw-motorrad.sabmw-motorrad.sebmw-motorrad.sibmw-motorrad.skbmw-motorrad.svbmw-motorrad.twbmw-motorrad.uabmw-motorrad.uybmw-motorsport.combmw-mountains.combmw-museum.combmw-museum.netbmw-nigeria.com bmw-oman.com bmw-ottawa.cabmw-pakistan.combmw-plant-munich.combmw-pma.com.sgbmw-powertrain.combmw-product-highlights.com bmw-qatar.combmw-routes.com +bmw-rp.combmw-rrdays.combmw-saudiarabia.combmw-security-vehicles.combmw-special-sales.combmw-sports.com bmw-sudan.combmw-tahiti.combmw-tunisia.combmw-vancouver.ca bmw-voli.me bmw-welt.com bmw-welt.net bmw-welt.tvbmw-werk-berlin.de bmw-world.com bmw-world.net bmw-world.tvbmw-worldfinal.combmw-yachtsport.com +bmw-yeg.ca bmw-yemen.com +bmw.am +bmw.at +bmw.az +bmw.ba +bmw.bb +bmw.be +bmw.bg +bmw.bm +bmw.bs +bmw.by +bmw.ca +bmw.cc +bmw.ch +bmw.cl  bmw.co.ao  bmw.co.cr  bmw.co.id  bmw.co.il  bmw.co.jp  bmw.co.ke  bmw.co.kr  bmw.co.nz  bmw.co.th  bmw.co.uk  bmw.co.za bmw.com +bmw.com.ar +bmw.com.au +bmw.com.bd +bmw.com.bn +bmw.com.bo +bmw.com.br +bmw.com.cn +cn +bmw.com.co +bmw.com.cy +bmw.com.do +bmw.com.ec +bmw.com.ge +bmw.com.gt +bmw.com.kh +bmw.com.ky +bmw.com.mk +bmw.com.mo +bmw.com.mt +bmw.com.mx +bmw.com.my +bmw.com.ni +bmw.com.pa +bmw.com.pe +bmw.com.ph +bmw.com.py +bmw.com.sg +bmw.com.sv +bmw.com.tr +bmw.com.tw +bmw.com.uy +bmw.com.ve +bmw.cw +bmw.cz +bmw.de +bmw.dk +bmw.dz +bmw.ee +bmw.es +bmw.fi +bmw.fr +bmw.gp +bmw.gr +bmw.hn +bmw.hr +bmw.ht +bmw.hu +bmw.ie +bmw.in +bmw.is +bmw.it +bmw.kg +bmw.kz +bmw.lc +bmw.lk +bmw.lt +bmw.lu +bmw.lv +bmw.ly +bmw.ma +bmw.md +bmw.mn +bmw.mq +bmw.mu +bmw.nc +bmw.nl +bmw.no +bmw.pl +bmw.ps +bmw.pt +bmw.re +bmw.ro +bmw.rs +bmw.se +bmw.si +bmw.sk +bmw.sn +bmw.tm +bmw.tt +bmw.ua +bmw.uz +bmw.vn bmwarchiv.at bmwarchiv.debmwartjourney.com bmwasia.combmwauslieferungszentrum.com bmwbikes.com  bmwbkk.de +bmwccrc.cabmwcenternet.combmwchampionship.combmwchampionshipusa.combmwcharitygolf.combmwcitychallenge.combmwclassic.combmwcolorado.combmwconnecteddrive.combmwcustomapparel.com bmwdcsnet.netbmwdealercareers.combmwdealerdirect.combmwdelawarevalley.com bmwfilms.combmwgroup-classic-heart.combmwgroup-classic.combmwgroup-gaad.combmwgroup-plants.combmwgroup-posdigital.combmwgroup-werke.com bmwgroup.at bmwgroup.com bmwgroup.net bmwgroup.jobsbmwgroupclassic.combmwgroupdesignworks.combmwgroupdirect.combmwgroupfs.combmwgroupinfobahn.combmwgroupna.com  bmwhk.com bmwi.ca bmwi.jpbmwiventures.combmwjamaica.com +bmwlat.combmwlifestyle.ca bmwm.combmwmagazine.combmwmagazine.de bmwmass.com bmwmass.net  bmwmc.netbmwmontreal.cabmwmotorcycles.combmwmotorcycleusa.combmwmotorrad.co.krbmwmotorrad.com.aubmwmotorrad.com.phbmwmotorrad.com.sgbmwmotorradhk.combmwmotorshowblog.combmwmotorsport.combmwmperformance.com bmwmuseum.netbmwmyanmar.combmwofannapolis.combmwofcentralpa.combmwoftulsa.combmwondemandusa.com bmworegon.combmwperformancecenter.combmwpittsburgh.combmwproductnews.com bmwsafari.com +bmwsfl.com +bmwsfl.net +bmwshop.cabmwspecialoffers.ca bmwsports.combmwstartupgarage.com bmwstep.combmwstepconnections.combmwsummerschool.combmwtampabay.com +bmwusa.combmwusatires.combmwusaservice.combmwusfactory.combmwusrideracademy.combmwvalueservice.combmwwholesaleconnect.com bmwworld.com bmwworld.net bmwworld.tvbmwzentrum.combrand-protection-team.comcencoastbmw.com chargenow.comchargenowusa.comchicagolandbmw.comconnected-drive.com daytonbmw.comdealerspeed.net desertbmw.com dreambmw.ca grupobmw.com guambmw.comhackthedrive.com hawaiibmw.com iaablog.comlasvegasbmw.com m-power.comminneapolisbmw.comminneapolisbmw.netmotorshowblog.com mybmw.ca  mybmw.comnewhampshirebmw.com  nmbmw.comocbmwdealers.comoffresspecialesbmw.ca park-now.com parkinfo.com +pdxbmw.com +phxbmw.compre-bmwgroup.jobspugetsoundbmw.com rentaride.com rentaride.derhodeislandbmw.comsdcountybmw.comshopbmwmotorcycles.comshopbmwusa.com socalbmw.comstlouisbmw.netthe-m-festival.comtristatebmw.comvancouverbmwretailers.cawashingtondcbmw.com alfera.com.hk alfera.com.my  alfera.in  alfera.myalphera-finance.co.inalphera-finance.com.hkalphera-finance.in +alphera.ca alphera.co.in alphera.co.nz alphera.comalphera.com.esalphera.com.hkalphera.com.my +alphera.de +alphera.es +alphera.ie +alphera.in +alphera.my alphera.netalpherafinance.com.hkalpherafinancialservices.esalpherafinancialservices.in alpherafs.caalpherafs.co.nzalpherafs.com.hkalpherafs.com.my alpherafs.ie alpherafs.in alpherafs.my premiumfs.de alphabet.asia alphabet.at alphabet.be alphabet.biz alphabet.chalphabet.co.hualphabet.co.ukalphabet.co.za alphabet.comalphabet.com.cn +cnalphabet.com.esalphabet.com.lvalphabet.com.mxalphabet.com.plalphabet.com.pt alphabet.cz alphabet.de alphabet.es alphabet.eu alphabet.fr alphabet.info alphabet.jp alphabet.lt alphabet.lu alphabet.lv alphabet.mxalphabet.net.cn +cn alphabet.noalphabet.org.uk alphabet.pl alphabet.pt alphabet.uk alphabet.usalphabetfinance.netelectricluxury.comrolls-roycecullinan.comrolls-roycemotorcars.comrolls-roycemotorcarsna.com  rrtis.comspiritofecstasy.com + +CTRIP c-ctrip.com colinker.com ctrip.cn ctrip.co.id ctrip.co.kr ctrip.co.th  ctrip.com ctrip.com.hk ctrip.my ctrip.sg ctripbiz.com ctripbuy.hk ctripteam.com doticloud.com easytrip.com hhtravel.comhhtravel.com.tw izuchebao.com  lvtds.com  shuntu.cn +skysea.com  suanya.cn +suanya.com +tieyou.com +toptown.cn toursbms.com trip.com tripcdn.com +vipdlt.com + +HBO cinemax.comforthethrone.com hbo.com hboasia.com  hbogo.com hbogoasia.com hbogoasia.hk +hbomax.com +hbonow.com  maxgo.com +) +LIANJIA lianjia.com  ljcdn.com +o +UNITY  unity.com unity3d.com!unityads.unity3d.com +ads#unityads.unitychina.cn +ads +N +CNBC cnbc.com +cnbcfm.com +nbcuni.comnbcudigitaladops.com + +CODE code.org +2 +KU6 ku6.com +ku6cdn.com +ku6img.com +\ +TAIKANG taikang.comtaikanglife.comtaikangzhijia.comtkhealthcare.com +` +GEMFURY  fury.blog fury.co fury.dev  fury.help fury.io gemfury.com + + INMEDIAHK inmediahk.net +' + UBERADS-ADS uberads.com +ads + +WHO who.int + + APPLE-UPDATEappldnld.apple.com gg.apple.comgnf-mdn.apple.comgnf-mr.apple.com gs.apple.com ig.apple.commesu.apple.comns.itunes.apple.comoscdn.apple.comosrecovery.apple.com skl.apple.comswcdn.apple.comswdist.apple.comswdownload.apple.comswpost.apple.comswscan.apple.comupdates-http.cdn-apple.comupdates.cdn-apple.com xp.apple.com + +GEOLOCATION-CN +42r.cn +5566ua.com aurorapush.cn +e0n.cn japps.cn jchat.io +jiguang.cn jmlk.co jpush.cn jpush.io jpushoa.com +jsurvey.cn  jvoice.cn +kc9.cn +n0q.cn pushcfg.com +s0n.cn mobmore.com  umeng.comumengcloud.com  umsns.com umtrack.com +uyunad.comwhalecloud.comalog.umeng.com +ads alog.umengcloud.com +ads +w.cnzz.com +ads bootcss.com +bootcdn.cnphpcomposer.com acadn.cn  acadn.com bbbcdns.com  dlgslb.cn +dlgslb.net  dwion.com fastcdn.comfastcdn.com.cn  flxdns.cn +flxdns.com globalcdn.cn mcadn.cn  tlgslb.cn +tlgslb.com +maoyun.commaoyuncloud.cnmaoyuncloud.com pkoplink.com qingcache.com qingcloud.comstaticfile.org qbox.me  qiniu.com qiniucdn.com qiniudn.com qiniudns.com +qiniup.com  qnsdk.com  qnssl.com  ucloud.cn ufileos.com  aicdn.com upai.com upaiyun.com  upcdn.net  upyun.com  51cdn.com  8686c.com  cdn30.orgchinanetcenter.com  lxdns.com +lxdns.info  lxdns.org ourdvsss.com speedws.info speedws.org +wangsu.com +wscdns.com wscdns.info +wscdns.org yfcache.com +yfcalc.com yfcloud.com  yfdts.net  yfp2p.net +yfscdn.net yunfancdn.com +boc.cnbankofchina.combocaviation.com  boccfc.cn  bocgi.com bocgins.com  bochk.com bocichina.com bocigroup.com  bocim.combocservices.com.cnccb-life.com.cn ccb.com +ccbfund.cnccbfutures.comccbintl.com.hkccbleasing.com ccbseoul.comccbtrust.com.cn cignacmb.comcmb-leasing.com cmbchina.com cmbi.com.hkcmbwinglungbank.com cmfchina.comicbc icbc-ltd.com icbc-uk.com icbc-us.com +icbc.co.id icbc.com.cn icbc.com.mo icbc.com.pe icbc.com.sg icbcasia.com icbcbr.com.bricbclondon.com +icbcmy.comicbcstandard.comicbcstandardbank.comicbcstandardresources.comicbcstandardsecurities.com icbcswiss.com icbccs.com.cn  95516.com unionpay.comunionpayintl.comunionpaysecure.com abchina.com bankcomm.combankofbeijing.com.cn bosc.cn +bsb.com.cn ccb.comcgbchina.com.cn +cib.com.cncitibank.com.cn cmbc.com.cn hsbc.com.cn +hxb.com.cn njcb.com.cn psbc.com spdb.com.cn  whccb.com +sse.com.cn sseinfo.com szse.cn cninfo.com.cn ajzq.com avicsec.com  ccnew.com cczq.com cczq.net cfsc.com.cn cfzq.com cgws.comchinalions.comchinastock.com.cn cicc.com +ciccwm.com cindasc.com cjsc.com cnhbstock.com cnht.com.cn csco.com.cn csfounder.com  ctsec.com daton.com.cn  dfham.com dfzq.com.cn dgzq.com.cn dtsbc.com.cn dwjq.com.cn dxzq.net easec.com.cnessence.com.cn ewww.com.cn fcsc.cnfzfinancing.com  gf.com.cn ghsl.cn ghzq.com.cn gjzq.com.cn gkzq.com.cn glsc.com.cn grzq.com gsgh.cn gszq.com gtja.com gtja.com  guodu.com guosen.com.cn gyzq.com.cn hazq.com hczq.com hfzq.com.cn +hlzqgs.comhongtastock.com hrsec.com.cn hsbcqh.com.cn htsc.com.cn  htsec.comhuajingsec.com huajinsc.cn huayingsc.com hx168.com.cn hxzq.cn i618.com.cn  iztzq.com jhzq.com.cnjpmorganchina.com jyzq.cn  jzsec.com kysec.cn lczq.com lhzq.comlongone.com.cnmorganstanleyhuaxin.com mszq.com nesc.cn njzq.com.cnnomuraoi-sec.com +shgsec.com +shhxzq.com shzq.com stocke.com.cn +swhysc.com swsc.com.cn tebon.com.cn tfzq.com  tpyzq.com vanho.cn west95582.com wkzq.com.cn wlzq.cn wxzq.com xcsc.com xsdzq.cn xyzq.com.cn ydsc.com.cn ykzq.com ytzq.com zdzq.com.cn zszq.com +ztfsec.com +zts.com.cn +99fund.com +abc-ca.com avicfund.cn  bdfund.cn +bobbns.com boscam.com.cn +bosera.com ccfund.com.cn cfund108.comchanganfunds.comchinanature.com.cncib-fund.com.cncryuantafund.com +ctfund.com dbfund.com.cn efunds.com.cn fadfunds.comforesightfund.com founderff.com +fsfund.com +ftfund.comfullgoal.com.cn furamc.com.cngalaxyasset.com gefund.com.cngffunds.com.cn  gfund.com gowinamc.com +hffunds.cn hftfund.comhongdefund.com +hsfund.com huaan.com.cn +igwfmc.com  jsfund.cn  jtamc.com mfcteda.commsjyfund.com.cn +nffund.com  ocfund.cnorient-fund.com phfund.com.cnpostfund.com.cn +py-axa.com  swsmu.comtaipingfund.com.cn thfund.com.cntongtaiamc.com ubssdic.com xf-fund.com xqfunds.com  ydamc.com yhfund.com.cn +zhfund.com +zofund.com +5ifund.com +fund123.cn +howbuy.com lufunds.com  zlfund.cn citic chinaamc.comcitic-prudential.com.cn citicbank.comciticcapital.com citiciam.com citicifh.comciticprufunds.com.cn citics.com.hk citicsf.com clsa.comcncbinternational.com +csc108.com csci.hk +ecitic.com1234567.com.cn 18.cn  18.com.cn  dfcfw.com eastmoney.comeastmoneyfutures.com emsec.hk guba.com.cn cebbank.com ceblease.com +eb-ind.com ebasset.com ebchina.comebchinaintl.com +ebf.com.cn  ebfcn.com ebfortune.com ebtrust.com ebscn-am.com  ebscn.comeverbright.com  secec.comsunlife-everbright.com +pingan.com pingan.com.cn pingan.com.hk yqb.com taikang.comtaikanglife.comtaikangzhijia.comtkhealthcare.com +58.com  58.com.cn 5858.com  58che.com 58xueche.com +anjuke.comanjukestatic.com chinahr.com +daojia.com diandao.org fang.com  sofun.com soufunimg.com  jxedt.com zhuancorp.comzhuanspirit.comzhuanzhuan.com c-ctrip.com colinker.com ctrip.cn ctrip.co.id ctrip.co.kr ctrip.co.th  ctrip.com ctrip.com.hk ctrip.my ctrip.sg ctripbiz.com ctripbuy.hk ctripteam.com doticloud.com easytrip.com hhtravel.comhhtravel.com.tw izuchebao.com  lvtds.com  shuntu.cn +skysea.com  suanya.cn +suanya.com +tieyou.com +toptown.cn toursbms.com trip.com tripcdn.com +vipdlt.com dangdang.com ddimg.cn +ele.me elemecdn.com eleme.cn  ganji.comganjistatic1.com3.cn  300hu.com +360buy.com 360buyimg.com +360top.com +7fresh.com baitiao.comblackdragon.com  caiyu.comchinabank.com.cn +dao123.comjcloud-cdn.comjcloud-live.comjcloud-oss.com +jcloud.comjcloudcache.com jcloudcs.com jclouddn.com jcloudec.com jcloudlb.comjcloudlive.com jcloudlv.com jcloudoss.com jcloudss.comjcloudstatic.comjcloudvideo.com  jclps.com +jd-app.com  jd-ex.com jd.cn jd.co.th +jd.com jd.hk jd.id jd.ru jdcache.com jdcloud.com jdcloudcs.comjdcloud-api.comjddapeigou.com jddebug.com jddglobal.com jdjinrong.com  jdpay.com jdpaydns.com jdx.com jdwl.comjingdongjinrong.com +jingxi.com +jkcsjd.com +joybuy.com  joybuy.eslinglonglife.com mayshijia.com minitiao.com  ocwms.com paidaojia.cn +paipai.comprestodb-china.com qianxun.comqingzhouip.com toplife.com +vg.com wangyin.com  wdfok.com yhd.com yihaodian.comyihaodianimg.com yiyaojd.com yizhitou.comads.union.jd.com +ads c-nfa.jd.com +adscps.360buy.com +ads +jzt.jd.com +ads stat.m.jd.com +ads img-x.jd.com +ads lianjia.com  ljcdn.com manmanbuy.com dianping.com +maoyan.com meituan.com meituan.net  mtyun.com  neixin.cn sankuai.com mogu.com mogucdn.com mogujie.com +pddpic.com pinduoduo.com yangkeduo.com  smzdm.com +zdmimg.com cnsuning.com +suning.comsuningcloud.comsuningestate.comsuningholdings.com 40017.cn +17u.cn 17u.net 17usoft.com 17usoft.net  elong.comelongstatic.com +ly.com  vancl.com vanclimg.com  vcimg.com +youzan.com yzcdn.cn youzanyun.com +ziroom.comziroomapartment.com 3dmgame.com 3304399.net 4399.com 4399api.com 4399dmw.com +4399er.com4399youpai.com 5054399.com img4399.com acfun.cn aixifan.com apilog-web.acfun.cn +ads +acplay.netdandanplay.com +ali213.net +acg.tv acgvideo.com +b23.tv biliapi.com biliapi.net bilibili.combilibiligame.net biligame.com biligame.net bilivideo.com  hdslb.com im9.com +mincdn.com$ upos-hz-mirrorakam.akamaized.net biji.com +ddmogo.com +igetget.cn igetget.com luojilab.com  mogoo.com +sao.cn saolife.com dmzj.com  douyu.com douyu.tv douyucdn.cn douyucdn2.cn douyuscdn.com douyutv.com gamersky.com +gcores.com gitv.cn gitv.tv huya.com msstatic.com 71.am  iqiyi.com iqiyipic.com +pps.tv +ppsimg.com qiyi.com qiyipic.com +qy.net +71edge.coma.ckm.iqiyi.com +adsad.m.iqiyi.com +ads afp.iqiyi.com +adsc.uaa.iqiyi.com +ads cloudpush.iqiyi.com +ads"cm.passport.iqiyi.com +adscupid.iqiyi.com +ads#emoticon.sns.iqiyi.com +ads!gamecenter.iqiyi.com +ads!hotchat-im.iqiyi.com +adsifacelog.iqiyi.com +adsmbdlog.iqiyi.com +ads msg.71.am +adsmsg.video.qiyi.com +ads msg2.video.qiyi.com +ads#policy.video.iqiyi.com +adsyuedu.iqiyi.com +ads  jjwxc.net ku6.com +ku6cdn.com +ku6img.com kkmh.comkuaikanmanhua.com gifshow.com ksapisrv.com kuaishou.com +yximgs.com log-sdk.gifshow.com +adswlog.kuaishou.com +ads  kgimg.com  kugou.com +le.com lecloud.com +lemall.com letv.com letvcdn.com letvimg.com miaopai.com +mihoyo.com bh3.com  pplive.cn +pplive.com pptv.com qingting.fm  sfacg.com +61.com +taomee.com +tapimg.com +taptap.com  tgbus.com tiancity.comtiancitycdn.com u17.com u17i.com u17t.com +vgtime.com ximalaya.com  xmcdn.com +kumiao.com  youku.com  ykimg.com +mmstat.com soku.com +cibntv.net +duowan.com dwstatic.com +yy.com yystatic.com  zhanqi.tv +heytea.com chiphell.com +douban.com  douban.fm doubanio.com erji.net +hacpai.com  ld246.com +nga.cn 178.com +ngabbs.com ngacn.cc saraba1st.com  zhihu.com  zhimg.com  feng1.comrongechain.comsf-airlines.comsf-cityrush.comsf-express.comsf-financial.com sf-saas.comsf-tech.com.cn sfcar.hk sffix.cn sfgy.org 36kr.com 36krcdn.com +caixin.com cctv.cn cctv.com cctvpic.com chinaepg.cn chinalive.com citv.net.cn cnms.net.cn cntv.cn cntv.com.cn +cctvlib.cncctvlibrary.cncctvlib.com.cncctvlibrary.com.cn +cctvpro.cncctvpro.com.cn  cntvwb.cn gjgbdszt.cngjgbdszt.com.cngjgbdszt.net.cn  ipanda.cn +ipanda.com ipanda.com.cn +ipanda.net livechina.cn livechina.comolympicchannelchina.cn tvcc.cn tvcc.com.cn%!xn--fiq53l6wcx3kp9bc7joo6apn8a.cn%!xn--fiq53l90et9fpncc7joo6apn8a.cn-)xn--fiq53l6wcx3kp9bc7joo6apn8a.xn--fiqs8s%!xn--kprv4ewxfr9cpxcc7joo6apn8a.cn-)xn--kprv4ewxfr9cpxcc7joo6apn8a.xn--fiqs8s zggbdszt.cnzggbdszt.com.cnzggbdszt.net.cnzygbdszt.net.cn chinanews.comchinanews.com.cn +cns.com.cn ecns.cn  dgtle.com geekpark.nethoopchina.com.cn hupu.com hupucdn.com  shihuo.cn coolbuy.com  ifanr.com ifanr.inifanrusercontent.com +ifanrx.com +minapp.com jiemian.comjiemian.com.cn +lancdn.comlandiannews.com  wsoso.com  ifeng.com ifengimg.comphoenixcenter.cn fengedu.comifengweekly.com 6655.com cooldock.com +ithome.com lapin365.com ruanmei.com +saayaa.com win7china.com win8china.com sohu.com +sohucs.com +itc.cn solidot.org  sspai.com tmtpost.com chaindd.com +72whys.com checkzeit.com +tivitv.com tigeek.net.cntmtsmartlife.comtmtsmartrun.com feng.com fengimg.com wfdata.club ynet.cn ynet.com ynet.com.cn aiganggu.comdanjuanfunds.com +imedao.comsnowballsecurities.com +xueqiu.com stcn.comcaijing.com.cn  hexun.com  cnfol.com cnfolimg.com zqrb.cn +nbd.com.cn cnstock.com 21jingji.com  yicai.com  cs.com.cn  ssajax.cn ssimg.cn stockstar.com +jrj.com.cn  jrjimg.cn +cls.cncailianpress.comwallstreetcn.com jianyuweb.com wallstcn.com 10jqka.com.cn thsi.cn +ths123.com +dzh.com.cn  gw.com.cn +yundzh.comhainanairlines.com hnacargo.com  hnair.com 10044.cn jbcz.tvjibencaozuo.comsinopec-usa.com sinopec.comsinopecgroup.comsinopecnews.com.cnsinopecsales.com +csdl.ac.cn  las.ac.cn  fuwai.com pkuh6.cn puh3.net.cnhospital.pku.edu.cnss.bjmu.edu.cn 115.com 3type.cn 4paradigm.com  51job.com 51jobcdn.comyingjiesheng.comyingjiesheng.netzhiding.com.cn +afdian.net afdiancdn.com agora.io +agoraio.cn agoralab.co +antutu.com bitauto.combitautoimg.com cheyisou.com  yiche.com  yccdn.com shimo.im  yuque.com chinaso.com +pg0.cn +chinaz.com +chinaz.net caiyunai.com caiyunapp.com coolapk.comcoolapkmarket.comcoolapkmarket.net c-t.workcowtransfer.com dida365.com geetest.com#geetest.datasink.sensorsdata.cn hellofont.cnhellowebfont.com0,hellofontpreview.oss-cn-beijing.aliyuncs.com-)hellowebfonts.oss-cn-beijing.aliyuncs.com hanyi.com.cnfontstar.com.cnfoundertype.com ipip.net jianshu.com +jianshu.io jinshuju.netjinshujucdn.com gotokeep.com keepcdn.com  lagou.com lgstatic.com baidupan.com +lanzou.com lanzous.com woozooo.com +liepin.com +lietou.comlietou-static.com mafengwo.cn mafengwo.com mafengwo.net  meitu.com meitudata.com moji.com mojichina.com  polyv.net videocc.net +renren.comrenren-inc.com vaptcha.com vaptcha.net wamawama.com +wiwide.com +sojump.com +wjx.cn wjx.com wjx.top zcmbc.com.cn zdns.cn zdns.net.cn zdns.org.cn zdnscloud.biz zdnscloud.cn zdnscloud.comzdnscloud.com.cnzdnscloud.info zdnscloud.netzdnscloud.net.cnzdnscloud.org.cnchinesemooc.org +cnmooc.orgicourse163.org icourses.cn mooc.cnopenlearning.com pmphmooc.commoocs.unipus.cnopencourse.pku.edu.cn study.163.com cnki.net  apabi.comcnthinkers.com  cqvip.comhuijistatic.com huijiwiki.com moegirl.orgmoegirl.org.cn cugbonline.cn  guokr.comwanfangdata.com.cn speiyou.com +xesimg.com xueersi.com banmaaike.comxiaoyuankousuan.com ybccode.com yuanfudao.com yuansouti.com yuantiku.com zhihuishu.com  coding.me +coding.net csdn.net +csdnimg.cn  deepin.cn +deepin.com  deepin.io +deepin.org  gitee.comjinrishici.com  juejin.cn  juejin.im xitu.iop1-juejin.byteimg.comp2-juejin.byteimg.comp3-juejin.byteimg.comp4-juejin.byteimg.comp5-juejin.byteimg.comp6-juejin.byteimg.comp7-juejin.byteimg.comp8-juejin.byteimg.comp9-juejin.byteimg.com oschina.net  pgyer.com +tracup.com frontjs.comruby-china.orgrubyconfchina.org mysxl.cn +sxl.cn  sxlcdn.cnsegmentfault.com  sifou.com +tipdim.orgxueyuanjun.com alibaba +alipay +taobao tmall a.alimama.cn +adsacjs.aliyun.com +adsadash.m.taobao.com +ads!adashbc.m.taobao.com +ads"adashbc.ut.taobao.com +ads"adash-c.ut.taobao.com +ads adashx.m.taobao.com +ads$adashx4ae.ut.taobao.com +ads#adashx4yt.m.taobao.com +ads#adashxgc.ut.taobao.com +adsadsh.m.taobao.com +adsafp.adchina.com +adsafp.alicdn.com +ads agoodm.m.taobao.com +ads#agoodm.wapa.taobao.com +ads alipaylog.com +adsamdc.alipay.com +adsamdc.m.taobao.com +ads api.wapa.taobao.com +ads#api.waptest.taobao.com +adsapoll.m.taobao.com +ads#appdownload.alicdn.com +adsatanx.alicdn.com +adsatanx2.alicdn.com +adscbu01.alicdn.com +adscdn0.mobmore.com +adsclick.aliyun.com +ads&click.mz.simba.taobao.com +adscm.ipinyou.com +ads cm.mlt01.com +ads!dsp.simba.taobao.com +adserr.taobao.com +adsex.mobmore.com +ads ex.puata.info +ads!fav.simba.taobao.com +ads$feedback.whalecloud.com +adsff.win.taobao.com +ads fm.p0y.cn +adsg.click.taobao.com +ads +g.tbcdn.cn +adsgma.alicdn.com +adsgtms01.alicdn.com +adsgtms02.alicdn.com +adsgtms03.alicdn.com +adsgtms04.alicdn.com +adshydra.alibaba.com +ads'hz.pre.tbusergw.taobao.net +ads#hz.tbusergw.taobao.net +ads i.ipinyou.com +adsinit.phpwind.com +ads!intl.wapa.taobao.com +ads$intl.waptest.taobao.com +ads"jxlog.istreamsche.com +adslog.umtrack.com +adsm.intl.taobao.com +adsm.simba.taobao.com +adsmatch.p4p.1688.com +ads%material.istreamsche.com +ads mlt01.com +ads&nbsdk-baichuan.alicdn.com +ads&nbsdk-baichuan.taobao.com +ads"osfota.cdn.aliyun.com +ads osupdate.aliyun.com +ads&osupdateservice.yunos.com +ads%pindao.huoban.taobao.com +adspush.wandoujia.com +adsre.m.taobao.com +ads re.taobao.com +ads&redirect.simba.taobao.com +adsrj.m.taobao.co +adsrj.m.taobao.com +adssdkinit.taobao.com +adsshow.re.taobao.com +adssimaba.taobao.com +adssimba.m.taobao.com +ads!srd.simba.taobao.com +adsstats.ipinyou.com +ads strip.taobaocdn.com +ads$tanxlog.istreamsche.com +adstejia.taobao.com +adstemai.taobao.com +ads!tns.simba.taobao.com +ads tongji.linezing.com +ads tvupgrade.yunos.com +adstyh.taobao.com +adsuserimg.qunar.com +adsw.m.taobao.com +adsyiliao.hupan.com +adsalibabacloud.co.inalibabacloud.comalibabacloud.com.aualibabacloud.com.hkalibabacloud.com.myalibabacloud.com.sgalibabacloud.com.tw alicloud.comalibabadns.com +alicdn.com alidayu.com +alidns.com alikunlun.comaliyun-inc.comaliyun-iot-share.com +aliyun.com aliyuncdn.com aliyuncs.com hichina.comica-alliance.org kunlunaq.com kunlunar.com kunlunca.com kunluncan.com kunlunea.com kunlungem.com kunlungr.com kunlunhuf.com kunlunle.com kunlunli.com kunlunno.com kunlunpi.com kunlunra.com kunlunsa.com kunlunsc.com kunlunsl.com kunlunso.com kunlunta.com kunlunvi.com kunlunwe.com mxhichina.com ddurl.to dingding.xin dingtalk.cn dingtalk.com dingtalk.netdingtalkapps.com laiwang.com lwurl.toteambition.comteambition.netteambitionapis.com 25pp.com  56che.com  95095.com 9game.cn +aliapp.orgalibaba-inc.com alibaba.comalibabacapital.comalibabacorp.comalibabadoctor.comalibabafuturehotel.comalibabagroup.comalibabaplanet.comalibabaued.comalibabausercontent.com alifanyi.comalihealth.com.cn alihealth.hk +aliimg.com +alikmd.com alimama.com alimebot.com +alimei.com alios.cn +alipay.comalipayobjects.com aliplus.comaliresearch.com alisoft.com alisports.com alitianji.comaliunicorn.com +aliway.com aliwork.com alixiaomi.comalizhaopin.com alyms.cn +asczwa.comasczxcefsv.com +asmlink.cn atatech.org +b2byao.com  bazai.com  bcvbw.com  cheng.xin cloudeagle.cn damai.cn dayu.com +dfkhgj.com doctoryou.ai doctoryou.cn dongting.com +dratio.com emas-poc.com +gongyi.xin ialicdn.com iconfont.cn +ics.design +jhgtgb.com +kanbox.com +lazada.comliangxinyao.com m-now.cn +maitix.com  mdeer.com mei.commiaostreet.com  mshare.cc nic.xinphilanthropy.xin phpwind.com phpwind.netqingtingtrip.com  rexpos.cn saee.org.cn shenjing.com  shuqi.comshuqireader.com sparenode.com  supet.com  ttpod.com wandoujia.comxinlingshou.cn yowhale.com yunos-inc.com  yunos.comyushanfang.com +zuodao.comaliexpress.com aliexpress.ru sm.cn cainiao.comcainiao.com.cncainiao-inc.com freshhema.com hemamax.com +hemaos.com hemashare.cn shyhhema.com 1688.com etao.com juhuasuan.comlingshoujia.com +mashort.cn pailitao.com +taobao.com +taobao.org taobaocdn.comtaobizhong.comtaopiaopiao.com tb.cn tbcache.com tburl.in  tmall.com tmall.ru tmalltv.com tmjl.ai alitrip.com  feizhu.cn +feizhu.com +fliggy.com  fliggy.hk +iuynfg.com amap.com amapauto.com autonavi.com  gaode.com  xiami.com xiami.fm  xiami.net  b3log.org a.baidu.com +ads ad.duapps.com +ads ad.player.baidu.com +ads adm.baidu.com +adsadscdn.baidu.com +adsadx.xiaodutv.com +adsae.bdstatic.com +ads afd.baidu.com +ads als.baidu.com +ads&api.mobula.sdk.duapps.com +ads"api.tuisong.baidu.com +adsappc.baidu.com +adsb.bdstatic.com +adsbaichuan.baidu.com +adsbaidustatic.com +adsbaidutv.baidu.com +adsbanlv.baidu.com +ads bar.baidu.com +ads"bdimg.share.baidu.com +adsbdplus.baidu.com +ads bj.bcebos.com +adsbtlaunch.baidu.com +ads c.baidu.com +ads cb.baidu.com +adscbjs.baidu.com +adscjhq.baidu.com +adscleaner.baidu.com +ads click.bes.baidu.com +adsclick.hm.baidu.com +adsclick.qianqian.com +ads"cm.baichuan.baidu.com +ads cm.baidu.com +adscm.pos.baidu.com +ads cpro.baidu.cn +adscpro.baidu.com +ads!cpro.baidustatic.com +ads!cpro.tieba.baidu.com +ads"cpro.zhidao.baidu.com +adscpro2.baidu.com +ads"cpro2.baidustatic.com +ads crs.baidu.com +adsdatax.baidu.com +ads dd713.bj.bcebos.com +ads dl.client.baidu.com +adsdl.ops.baidu.com +adsdl1sw.baidu.com +adsdl2.bav.baidu.com +adsdlsw.baidu.com +adsdlsw.br.baidu.com +ads!dl-vip.bav.baidu.com +ads(dl-vip.pcfaster.baidu.co.th +ads#download.bav.baidu.com +ads"download.sd.baidu.com +adsdrmcmm.baidu.com +ads dup.baidustatic.com +ads dxp.baidu.com +ads dzl.baidu.com +ads e.baidu.com +adseclick.baidu.com +adsecma.bdimg.com +adsecmb.bdimg.com +adsecmc.bdimg.com +ads eiv.baidu.com +ads em.baidu.com +adsentry.baidu.com +ads ers.baidu.com +ads f10.baidu.com +ads#fc-feed.cdn.bcebos.com +adsfclick.baidu.com +adsfeed.baidu.com +adsfexclick.baidu.com +ads g.baidu.com +adsgimg.baidu.com +adsguanjia.baidu.com +ads hc.baidu.com +ads hm.baidu.com +adshmma.baidu.com +ads hpd.baidu.com +adsidm.bce.baidu.com +adsidm-su.baidu.com +adsiebar.baidu.com +adsikcode.baidu.com +adsimg.taotaosou.cn +adsimg01.taotaosou.cn +adsj.br.baidu.com +adskstj.baidu.com +ads log.music.baidu.com +ads m1.baidu.com +ads ma.baidu.com +adsmobads.baidu.com +ads"mobads-logs.baidu.com +adsmpro.baidu.com +adsmsite.baidu.com +adsneirong.baidu.com +adsnsclick.baidu.com +ads#nsclickvideo.baidu.com +adsopenrcv.baidu.com +ads$pc.videoclick.baidu.com +ads pos.baidu.com +adspups.bdimg.com +ads%push.zhanzhang.baidu.com +ads qianclick.baidu.com +adsrelease.baidu.com +adsres.mi.baidu.com +ads"rigel.baidustatic.com +ads#river.zhidao.baidu.com +ads rj.baidu.com +adsrplog.baidu.com +ads s.baidu.com +adss.cpro.baidu.com +ads!sa.tuisong.baidu.com +adssclick.baidu.com +adssestat.baidu.com +adsshadu.baidu.com +adsshare.baidu.com +ads"snippet.pos.baidu.com +adssobar.baidu.com +adssobartop.baidu.com +adsspcode.baidu.com +adsstat.v.baidu.com +ads su.bdimg.com +adssu.bdstatic.com +ads t10.baidu.com +ads t11.baidu.com +ads t12.baidu.com +ads tk.baidu.com +adstkweb.baidu.com +ads"tob-cms.bj.bcebos.com +adstongji.baidu.com +adstoolbar.baidu.com +adstracker.baidu.com +adstuijian.baidu.com +ads*uat1.bfsspadserver.8le8le.com +ads#ubmcmm.baidustatic.com +adsucstat.baidu.com +adsulic.baidu.com +ads ulog.imap.baidu.com +adsunion.baidu.com +ads!unionimage.baidu.com +adsutility.baidu.com +ads utk.baidu.com +ads videopush.baidu.com +adsvv84.bj.bcebos.com +adsw.gdown.baidu.com +ads w.x.baidu.com +adswangmeng.baidu.com +adsweishi.baidu.com +ads$wenku-cms.bj.bcebos.com +ads%wisepush.video.baidu.com +ads wm.baidu.com +adswn.pos.baidu.com +adsznsv.baidu.com +adszz.bdstatic.com +adszzy1.quyaoya.com +ads zuoyebang.cc zuoyebang.com +zybang.com baidu +91.com +aipage.com apollo.auto baidu.cn  baidu.com baidu.com.cn baidubce.combaiducontent.com baidupcs.combaidustatic.com +baifae.com baifubao.com +bcebos.com  bdimg.com bdstatic.com bdtjrcv.com  bdydns.cn +bdydns.com +bdydns.net chuanke.com  dlnel.com  dlnel.org +duapps.com +dwz.cn +hao123.com hao123img.com +hao222.com +haokan.com jomocdn.net jomodns.com +mipcdn.com  nuomi.com quyaoya.com smartapps.cn  tieba.com tiebaimg.com xianfae.com xiaodutv.com +bytecdn.cn bytedance.com bytedance.net bytedns.net byteimg.combyteoversea.com +douyin.com huaxiong.com ibytedtos.comjokecommunity.comneihanshequ.com +pstatp.com +snssdk.com toutiao.comtoutiaocdn.comtoutiaocloud.comtoutiaocloud.nettoutiaohao.comtoutiaohao.net toutiaoimg.cntoutiaoimg.comtoutiaoimg.nettoutiaopage.com +wukong.comwukongwenda.cnwukongwenda.com zijiecdn.com zijiecdn.net  zjcdn.com  baike.com +ixigua.comixiguavideo.com ixgvideo.com  365yg.com didi-food.comdidiaustralia.blogdidichuxing.comdidiglobal.comdidimobility.co.jpdidistatic.comxiaojukeji.com  dbank.com dbankcdn.com harmonyos.com hicloud.com hihonor.com honor.cn +huawei.comhuaweicloud.com  vmall.com vmallres.com cmcm.com cmcmcdn.com  liebao.cn duba.com duba.net ijinshan.comseasungames.com xishanju.com xoyo.com testplus.cn +wps.cn  51dzt.com  iciba.com  docer.com kdocs.cn papocket.com  wpspdf.cn kimg.cn kingsoft.com ksmobile.com +ks-cdn.com  ksyun.com ksyungslb.com flyme.cn meizu.cn  meizu.com  mzres.com 126.com 126.link 126.net 127.com 127.net 163.com163industry.com 163mail.com 163qiyukf.com +163yun.com 166.net +haowu.linkicourse163.org  kaola.com +lofter.com  nease.netnetease-inc.com netease.com +netease.im +qiyukf.com ydstatic.com yeah.net +youdao.comanalytics.163.com +ads crash.163.com +ads crashlytics.163.com +ads g.163.com +ads coloros.com finzfin.com +heytap.com heytapcs.comheytapdownload.comheytapimage.com +myoppo.com nearme.com.cn oppo.cn oppo.com  oppo.mobioppodigital.com  oppoer.meoppomobile.com oppopay.com opposhop.cn +realme.com realmebbs.comrealmemobile.com oneplus.com +oneplus.cn oneplus.net opstatics.comoneplusbbs.com h2os.com 75.team +75team.com baomitu.com +360.cn 360.com +360-jr.com 360chou.com360daikuan.com360huzhubao.com +360jie.com360jinrong.net +360kan.com 360kuai.com  360os.com 360panyun.cn 360safe.com 360shouji.com 360taojin.com360totalsecurity.com 360tpcdn.com360webcache.com anquanke.com  haoso.com +haosou.com haosou.com.cn +haosou.net i360mall.com ludashi.com nicaifu.com  nzwgs.com  qhimg.com qhimgs0.com qhimgs1.com qhimgs2.com qhimgs3.com qhimgs4.com qhimgs5.com qhimgs6.com  qhmsg.com  qhres.com qhstatic.com qhupdate.com +qihuapi.cn qihucdn.com  qihoo.com qikucdn.com +so.com sou.com urlqh.cnxiaoluyouxuan.comxiaoluzhidian.com xjietiao.com +youhua.com  yunpan.cn  97973.com +picself.cn sina.cn sina.com sina.com.cn sina.net sinaapp.com sinaedge.com +sinaimg.cn sinaimg.com  sinajs.cn +sinajs.comt.cn videoself.cn  wbimg.com wbimg.cn wcdn.cn weibo.cn  weibo.com weibo.com.cn weibocdn.com xhaiwai.com 2016.sina.cn +adsad.sina.com.cn +adsadbox.sina.com.cn +ads!adimages.sina.com.hk +ads!adimg.mobile.sina.cn +ads adimg.uve.weibo.com +ads!adm.leju.sina.com.cn +ads ads.sina.com +adsalitui.weibo.com +adsapi.apps.sina.cn +ads appgift.sinaapp.com +ads#appsupdate.sinaapp.com +ads atm.sina.com +adsbeacon.sina.com.cn +ads biz.weibo.com +adsc.biz.weibo.com +ads!c.wcpt.biz.weibo.com +ads%click.uve.mobile.sina.cn +ads click.uve.weibo.com +adscm.dmp.sina.cn +ads0#contentrecommend-out.mobile.sina.cn +ads$count.video.sina.com.cn +ads counter.sina.com.cn +adscre.dp.sina.cn +adscre-dp.sina.cn +adsd00.sina.com.cn +adsdcads.sina.com.cn +adsdl.kjava.sina.cn +ads dmp.sina.cn +adsdp.im.weibo.cn +ads game.weibo.cn +adsgame.weibo.com +ads"gw5.push.mcp.weibo.cn +ads"gw6.push.mcp.weibo.cn +ads"img.adbox.sina.com.cn +ads#img.amp.ad.sina.com.cn +ads"int.dpool.sina.com.cn +ads%interest.mix.sina.com.cn +ads)log.interest.mix.sina.com.cn +ads log.mix.sina.com.cn +ads log.sina.cn +ads!m.beacon.sina.com.cn +adsm.game.weibo.cn +ads!mg.games.sina.com.cn +ads!motu.p4p.sina.com.cn +adsnewspush.sinajs.cn +ads oascentral.sina.com +ads#oascentral.sina.com.hk +adsp4p.sina.com.cn +adspalmnews.sina.cn +adspay.mobile.sina.cn +adspfp.sina.com.cn +adspfpip.sina.com +ads!promote.biz.weibo.cn +ads r.dmp.sina.cn +adsrm.sina.com.cn +ads rs.sinajs.cn +adss.alitui.weibo.com +ads"s.img.mix.sina.com.cn +ads sapi.sina.cn +ads sax.sina.cn +adssax.sina.com.cn +adssaxn.sina.com.cn +adssaxs.sina.com.cn +ads sbeacon.sina.com.cn +ads"sdkapp.mobile.sina.cn +ads!sdkapp.uve.weibo.com +ads$sdkclick.mobile.sina.cn +ads slog.sina.cn +adsslog.sina.com.cn +ads'staticadm.leju.sina.com.cn +adstjs.sjs.sinajs.cn +ads"trends.mobile.sina.cn +ads"u1.img.mobile.sina.cn +ads&wapwbclick.mobile.sina.cn +ads!wbapp.mobile.sina.cn +ads wbapp.uve.weibo.com +ads#wbclick.mobile.sina.cn +ads$wbpctips.mobile.sina.cn +adswidget.weibo.com +ads woocall.sina.com.cn +adszc.biz.weibo.com +adszymo.mps.weibo.com +ads +go2map.com sogo.com  sogou.com sogoucdn.com dns.pub  dnsapi.cn  dnspod.cn +dnspod.com dnspod.com.cn +dnspod.net +dnspod.org  dnsv1.com  dnsv2.com  dnsv3.com  dnsv4.com  dnsv5.com doh.pub ad.qq.com +ads ad.qun.qq.com +ads!adfilter.imtt.qq.com +ads adping.qq.com +adsadpm.app.qq.com +adsadsclick.qq.com +adsadsfile.qq.com +adsadshmmsg.qq.com +adsadslvfile.qq.com +adsadslvseed.qq.com +ads%adsmind.apdcdn.tc.qq.com +adsadsqqclick.qq.com +adsadstestview.qq.com +adsadsview.qq.com +adsadsview2.qq.com +adsadv.app.qq.com +ads adver.qq.com +ads btrace.qq.com +adse.qq.com +adslog.tbs.qq.com +ads mpush.qq.com +ads mtrace.qq.com +ads push.qq.com +ads pgdt.gtimg.cn +ads +yuewen.com hongxiu.com lrts.me qdmm.com +qidian.com readnovel.com tingbook.com webnovel.com +xs8.cn xxsy.net +apcdns.net  cdn-go.cn cdntips.com foxmail.comfoxmail.com.cn gtimg.cn  gtimg.com gtimg.com.cn idqqimg.com imqq.com  myapp.com myqcloud.com +qcloud.com qcloudimg.com qlogo.cn qpic.cn +qq.com +qqmail.com  qzone.com +rtx.com.cnservicewechat.com smtcdns.com smtcdns.net +tencent.cn tencent.comtencent.com.cntencent.com.hktencent.net.cntencent-cloud.comtencentmusic.comtencentyun.com +tenpay.com +wechat.com +wegame.com wegame.com.cn +weiyun.com alloyteam.com imweb.io ivweb.io +mi.com +mi-img.com  mifile.cn miui.com +miwifi.com  xiaomi.cn +xiaomi.com +xiaomi.netxiaomiyoupin.com  00cdn.com  88cdn.com +sandai.netthunderurl.com +xunlei.com 10086.cn 139.comchinamobile.comchinamobileltd.com migucloud.com migu.cn +cmvideo.cn miguvideo.com andfx.cn  andfx.net +cmicrwx.cncmpassport.comfetion-portal.com fetionpic.com mmarket.com mmarket6.com +ctexcel.ca ctexcel.comctexcel.com.hk +ctexcel.fr +ctexcel.us +189.cnchinatelecom-h.comchinatelecom.com.cnchinatelecomglobal.com +chntel.com  10010.com 10010.com.cnchinaunicom.comchinaunicom.com.cnchinaunicom.com.hkchinaunicomglobal.commychinaunicom.com  wo.com.cn +j-test.comguoxuedashi.com guoxuemi.com mojidict.com jikipedia.com haidilao.com0123456789.com 0379home.com +055110.com  05sun.com 0759job.com  100bt.com 100offer.com  11467.com +114chn.com 114piaowu.com 114shouji.com +119you.com 123juzi.com 123juzi.net 123u.com 1637.com  16888.com 16rd.com  17173.com 178linux.com  17989.com  17cdn.com 17house.com  18183.com 188.com 1905.com  19yxw.com 1nongjing.com  1ting.com 1zhe.com 21cn.com 2265.com 2288.org 2345.com 258.com 263.net 289.com 2cto.com 3000.com +310win.com +315che.com 3234.com 32r.com 3322.org 3387.com 33lc.com 3454.com 3456.cc +35.com 3533.com 360aiyi.com +360doc.com  360jq.com 360zhyx.com +365azw.com +365dmp.com +37.com 3733.com 3839.com +39.net 3conline.com 3d66.com +3elife.net 3h3.com 3yx.com  40407.com 500.com 500d.me +50bang.org +51.com 51.la +510you.com 51credit.com  51cto.com 51eshop.com 51gaifang.com 51hejia.com51jingying.com 51meishu.com +51sole.com 51wendang.com  51yes.com 5253.com  52hxw.com +52miji.com 52pk.com 52z.com 53kf.com +55.com +56.com 5577.com  55bbs.com  58pic.com  5bite.com 5fun.com 5gzm.net 5khouse.com 5you.com 66wz.com 68h5.com +6rooms.com 714.com 7230.com +72byte.com  7down.com 7k7k.com  7moor.com 7po.com +7x24cc.com +7xdown.com  818ps.com  84399.com 885.com +900.la 917.com 91danji.com 91yunxiao.com 9553.com 962.net 9718.com  99166.com 998.com 999d.com 99danji.com 9ht.com +9xgame.com 9xu.com a9vg.com +aardio.com +adxvip.com +afzhan.com agrantsem.com  aiemy.com aiketour.com  aiops.com  aipai.comairchangan.com airguilin.com aisee.tv aiskycn.com aiyunxiao.com +aizhan.comalittle-tea.com +allyes.com anfensi.com +anquan.org +anruan.com +aotrip.net  aoyou.com apk3.com apk8.com appchina.com +appinn.com  arpun.com babytree.combabytreeimg.com baidufree.combaifendian.com  baihe.com baixing.com baixing.netbamenzhushou.combangongziyuan.com baofeng.combaoxianshichang.com bcy.net bearychat.com beihaidc.combeijing-lipin.com bengbeng.com  benmi.com  berui.combestopview.com biancheng.net bianews.com bibaodao.com bidchance.com biddingx.com bihu.com +bio360.net  bio4p.com bio-equip.combiodiscover.com bishijie.com bitecoin.com biyehome.net bjcathay.com bobo.com bojianger.com +bokecc.com  boosj.com btcfans.com btgtravel.com bthhotels.com  btime.comcabbagebox.com caijingwu.com +caiyun.com cang.comcankaoxiaoxi.comcardbaobao.com +carnoc.com  cdn20.com  cecdc.com cecport.com centanet.com cerambath.org +ch.com chachaba.com changba.com chashebao.comchazhengla.com +che168.comchina-chair.comchina-nengyuan.com  china.comchinacache.comchinacache.netchinachugui.comchinadongchu.com chinafph.comchinakaoyan.comchinalawedu.com chinapay.com chinapp.netchinapubmed.net chinasspp.comchinatranslation.net chinaunix.netchinaweiyu.comchinawutong.com chinazns.comchongdiantou.com +chouti.com chuangxin.com chuansong.mechuansongme.com +chushou.tv chuyu.me  city8.com cjol.com clouddn.com cloudxns.com cnanzhi.com +cnbeta.com cnbetacdn.com cnblogs.com +cnepub.com  cnlaw.net cnzz.com cocodiy.com code666.com +cofeed.com +cofool.com coindog.comcontentchina.com  cpppf.org  cr173.com  crsky.com  csbew.com +csmjzs.com csslcloud.net +ctfile.com ctiforum.com ctoutiao.com  ctsbw.com +cubead.com  cwxzx.com +cyagen.com  cybtc.com cyol.com cyts.com cztv.com cztvcloud.com dadajiasu.com dadighost.com daguzhe.com dajiabao.com  dajie.com dajieimg.com dalongyun.com dangbei.com danji100.com +danji6.com daocloud.io daovoice.iodayukaoshi.com dazijia.com +dcdkjx.com  dd373.com  ddooo.com dedecms.com develenv.com +dginfo.comdgphospital.comdianchacha.com diandian.comdiandianqi.comdianwannan.comdingxiang-inc.com +diopic.net diyiyou.com dj99.com  docin.com dockerone.com +dockone.io dogedoge.com +donews.com +dongao.comdongguantoday.com dopa.com +douxie.com +downcc.com downxia.com +downyi.com +dpfile.comdreams-travel.comdrivergenius.com +dui.ai duiopen.com duoduocdn.com duokanbox.com +duomai.com duoshuo.com  duote.com dxpmedia.com +dxycdn.com  dyhjw.com dzsc.com dzw3.com  dzwww.com easesale.com  easiu.com eastday.com eastsoo.com +eayyou.com  ebico.com  ebrun.com +ecitic.com ecjobhome.com +edu.cn  eduei.com eeyy.com eflycloud.com elecfans.com emarbox.com +emumax.com enterdesk.comeoeandroid.com excelhome.net expreview.com extfans.comf.cx  faloo.com famulei.com  fanli.comfangxiaoer.com fanxian.com fastapi.net +feihuo.com feiniaomy.comfengkongcloud.com fengniao.comfengxian110.com  fenxi.com +fhldns.com  fimmu.com finchina.com fixdown.com  fqjob.net freebuf.com fugetech.com fuwj.com fxxz.com fyxz.com game234.com gameabc.com gamemei.com +gaodun.comgaoshouyou.comgaoxiaojob.com +gdjdxy.comgdliontech.com gdrc.com geilicdn.comgenelinkout.com  getui.com +gezida.com gfan.com +giocdn.com globrand.com gm86.com gmallbio.com  gmz88.comgobasearcher.com gold678.com  golue.comgongxiangcj.com goosail.com  goufw.com gree.comgreenxiazai.com growingio.com  gtags.net  guabu.com guaiguai.comguanaitong.comguanhaobio.com gucheng.com  guigu.org guoxinmac.com  gupzs.com gushiwen.orgguzhangting.com +gwdang.comgxairlines.com +gxb.io gzwanju.com h5uc.com hack520.com hackhome.com haishun.com hanboshi.com handanjob.comhangjiayun.com haolietou.com  haote.comhaoyouyinxiang.com hefei.cc +heisha.net  henha.com henkuai.com herostart.com  hiido.com hitv.com hiyd.com hktheone.com hn-cbec.com +hnrcsc.com hntv.tv hnyuyuhui.com hollycrm.com homeinns.com homekoo.comhongsanban.com +houdao.comhouyuantuan.com hteacher.net huanqiu.comhuashengdaili.com  huatu.com  huize.com  hujia.org hujiang.com hunantv.comhuochepiao.com huocheso.com  huxiu.com hxfy888.com hxsd.com iask.com +ibaotu.com ibuychem.com icaidao.com ichangtou.com idongdong.com iflytek.com  igao7.com +iheima.com ijiandao.com +ikafan.com im2maker.com  im-cc.com +imedao.com imgo.tv  imooc.com indienova.cominfinitynewtab.com  infoq.cominfoqstatic.com +ip-cdn.com  ip138.com ipinyou.com iranshao.com  irs01.com ishumei.com  it165.net  it168.com  it610.com  iteye.com +itjuzi.com  itmop.com  iyiou.com iyunxiao.com +izuche.com +jandan.net jb51.com  jdair.net jia.com jiameng.com jianbihua.com jianzhi8.com jiaodong.net jiaoyimao.com jiasuhui.com jiasule.com jiathis.com jiayuan.com jiazhao.com jiemeng8.comjikexueyuan.com jinianbi.comjinrongren.net  jinse.com  jinti.comjiqizhixin.com jisuanke.com jisuxia.com jiuzhilan.com jj20.com jkbl.com jmstatic.com job5588.com +job910.com  jobjm.com jsbc.com +jsrdgg.com jstv.com  jsyks.com juefeng.com +julive.com  jumei.com  juwan.com  juxia.com  jyimg.com k366.com kaifubiao.com kaixin001.com kameng98.com +kanimg.com kankanews.com kantianqi.net kanzhun.com kaopu001.comkeboyunxiao.com  kejet.net kf5.com +kimiss.com kingdee.com kkzj.com +kongfz.com koolearn.com +kouclo.com +koudai.com koudai8.com kq7.com  ksord.com  kuaaa.com kuaidi100.com kuaihou.com kuaizhan.com  kuqin.com +kuyiso.com lady8844.com lanhuapp.com laomaotao.net laomaotao.org  lascn.net  lawxp.com leanote.com ledu.comleetcode-cn.com leikeji.com leiphone.com leiting.com leju.com leturich.org lianmishu.com +liantu.com lianzhuli.comliaoxuefeng.com liba.com libaclub.comlieyunwang.com lightonus.com +likuso.com lingkou.com linkvans.com  linsn.com linuxidc.com liulanqi.net liuxiaoer.com live800.com liweijia.com lixinger.com lkkbrand.com longhoo.net +longre.comlongtugame.com longzhu.com  lotpc.com +loupan.com +lu.com luckyair.net  lufax.com lufaxcdn.com lunwengo.net luyouqi.com +lvmama.comlvsexitong.com  lxway.com +magedu.com maisanqi.com +mamecn.com manhuatai.com manmankan.com +mapbar.com mayi.com +mayihr.com +mcbang.com  mdpda.com mechina.org +mediav.com meifang.com meika360.com meilishuo.commeimingteng.com +meiqia.commeishichina.com meishij.netmengtuoshi.wang mgtv.commiaobolive.com miaozhen.com +miercn.com mijisou.com mikecrm.comminhangshi.com miusi.co mjia.cc +mmbang.com mmbang.info +mofang.com mofazhu.com mogu.com mogucdn.com mogujie.com +mokahr.com moleecel.commoocollege.com mop.com msanjia.com +mscbsc.com mukewang.com +mumayi.com +muomou.com muzhiwan.com +mydown.com mydrivers.com myshow360.net myyx618.com myzaker.com naixuecha.com netbian.com +newasp.netnewbandeng.com  newyx.net nowcoder.com nowscore.com  nruan.com ntalker.com nvsheng.com  nzbdw.com oadz.com  oeeee.com  offcn.com officese.com +oicq88.com  okooo.com +ol-cdn.com +ol-img.com oldboyedu.com +oneapm.com onegreen.net +oneyac.comonlinedown.netonlinesjtu.com onlylady.com +opdown.com oray.com  ottcn.com +oupeng.com +p2peye.com p5w.netpaipaibang.com paopaoche.net pc6.com +pcbeta.com +pchome.net  pcpop.com  peccn.com pgzs.compharmacodia.com piaoliang.compingplusplus.com pingwest.com +pingxx.com pintu360.com  pipaw.com  pipaw.net pptbest.com +pubyun.com  qc188.com qcc.com qcds.com qd8.com qd-metro.com qh24.com qiangbus.com qianjia.com qianlima.com qianzhan.comqiaobutang.com qichacha.com +qie.tv qifeiye.comqijiayoudao.netqingdaochina.orgqingdaonews.comqingsongchou.com qiumibao.com qizuang.com  qqddc.comqqgexingqianming.com qqrizhi.comqqshuoshuo.com +qschou.com +qtmojo.com +qudong.com +qugame.com  qunar.com qunarzz.com qyer.com rfchost.comrockyenglish.com rong360.com rtbasia.com  ruan8.com +runoob.com rzrc114.com  saibo.com sanguosha.com +sanwen.net  scdng.com scoregg.com +sczsxx.com sdo.com sec-wiki.com +sencdn.com seniverse.comsenlinjimore.com +sgamer.com shang360.com +shangc.netshanghairc.com shangzhibo.tvshanshuihotel.com sharejs.com shebiaotm.comshelter-china.comshelterdome.netshengdaosoft.comshenmayouxi.com  sheui.com shijiexia.com shixiseng.com shmetro.comshoujihuifu.comshouyoubus.com shrbank.comshuidichou.comshuidihuzhu.com shumensy.comshuoshuokong.com +shutcm.com +simei8.com simuwang.com sinesafe.com  sjwyx.com  skycn.com sllssrq.com +snimay.com  sobot.com sofreight.com softwhy.com +sojson.com +somode.com soso.com souqian.comsouthmoney.comsparkletour.comspringtour.com ssports.com starbaby.cc starbaby.com stockstar.com sun0769.com +sunrtb.com supermap.comsupermapcloud.com +sys321.com szfw.org szhk.com szzfgjj.com t1y5.com  taihe.comtaihuoniao.com tangeche.com tanx.com +tao123.com +taoche.com te5.com tenxcloud.comtianjimedia.comtianjin-air.comtianlailive.com +tianqi.com tietuku.com +tiexue.net timedoo.com tingyun.com titanar.com tjjt360.com  tmcdn.net +tobosu.com tom.com tongdun.net topthink.com touqikan.com travelsky.com trunktech.comtrustexporter.com trustutn.org  tudou.com tudouui.com tuer123.com tuicool.com +tuiwen.net  tujia.com  tuniu.com tutuapp.com  tuwan.com tuwanjun.com u.tools  ucbug.com +uggame.com uoko.com urselect.comurumqi-air.com  useso.com uuu9.com uzzf.com  v5875.com value500.com vamaker.com vdolady.com veryhuo.com veryzhun.com  vic18.com videojj.com  vijos.org vip.com  vobao.com +vpgame.comwangyangyang.vipwannianli8.com wanplus.com wanwushuo.com wanyiwang.com  wanyx.com +wdjimg.com wdzj.com  weand.com webterren.com weicaifu.com weidian.comweilaicaijing.comweilaiyunxiao.com weiphone.net weixing.com weiyangx.comwelltrend-edu.com wenjuan.comwhlovehome.com wicresoft.com +win007.com win8.netwindows10zj.comwindows7en.com windowszj.com winwin7.com wishdown.com  wmzhe.com wnhuifu.com wodingche.com  womai.com wonnder.com +wooyun.org worktile.comwoyaogexing.com  woyoo.com  wqiis.com wrating.com +wscdns.com  wtown.com  wumii.com +wuming.comwuximediaglobal.com  wywyx.com xafc.com  xbiao.com  xdwan.com +xfdown.com +xhscdn.comxiachufang.comxiaobaixitong.comxiaoe-tech.com xiaogouh5.comxiaohongshu.com  xiaoka.tv xiaokaxiu.comxiaomingtaiji.comxiaoxiongxitong.comxiaoyuxitong.com  xiayx.com xiazaiba.com xingjiesj.com xinhuanet.comxinrenxinshi.com xinshipu.comxingtan001.com xitong8.com xitu.com xiu8.com +xiucai.com xiziwang.net xmhouse.com  xnpic.com  xpgod.com +xsa239.comxuanchuanyi.com  xue51.com xuekanba.com xuexicha.com xundupdf.com  xycdn.com xywy.com +xzking.com yahui.cc +yaolan.com  yaoyl.com  yaozh.com +ycgame.com +yeepay.com +yeshen.com  yesky.com yh31.com  yigao.com yigoonet.com yihedoors.comyikaochacha.com yikexue.comyingjia360.comyinhang123.net yinxiang.com yinyuetai.comyinzhaowang.com +yiqifa.com +yiqifa.org yisu.com yitaifang.com  yiwan.com yixi.tv yizhibo.com  yjbys.com ynhr.com +yocajr.com +youboy.com youjiao.com youke.co youlian.fun youshang.com youxiake.com youxihezi.net youxila.com youxiniao.com youxigt.com  youzu.com yoyojie.com  yoyou.com  ypppt.com +yslyhr.com  ysten.com +yuewen.com  yunaq.com yunba.io yundaex.com yundasys.com +yundun.com yunqishi.net yunshipei.com yunxiao.com yunzhijia.com  yupoo.com  yuzua.com  yxbao.com +yxdown.com +yytcdn.com +zampda.net zampdsp.com zastatic.com +zbjimg.com zczj.com +zdfans.com zgjm.org +zgjsks.com  zglxw.com  zgzcw.com zhanbuba.comzhangyoubao.com zhanzhang.net zhaodanji.com zhaokao.net zhaopin.com zhcw.com +zhenai.com  zhibo8.cc  zhidx.com zhifang.com +zhipin.com zhiziyun.com zhongkao.comzhuangjiba.comzhuanyewanjia.comzhuayoukong.com zhubajie.com zhugeapi.net zhugeio.com  zimuzu.io zixiaomao.com zixuntop.com  zjstv.com zmengzhu.com zongheng.com +zpb365.com +zrblog.net zsxq.com  zuche.com zuchecdn.com zuhaowan.com zuidaima.com zuowen8.comzuowenwang.net jindidata.comtianyancha.comzhuanxiandai.com +fm3838.comlarsonlimited.com runsheng.com vzuu.com +zoom3g.com +zoomyou.cn chaoxing.com chaoxing.cc + +MOVEFREEkeepmovingwithmovefree.com move-free.net movefree.cn +cn movefrees.commovefreeoffers.commovefreerewards.comschiffvitamins.com +< +SHOWTIMEANYTIMEshowtimeanytime.com showtime.com +K +PINGAN +pingan.com pingan.com.cn pingan.com.hk yqb.com + +PORNHD +pornhd.com + +REDTUBE redtube.com + +RENZHE renzhe.cloud + + NETEASE-ADSanalytics.163.com +ads crash.163.com +ads crashlytics.163.com +ads g.163.com +ads +D +RUST rust-lang.org  rustup.rs  crates.io docs.rs +1 +TIANCITY tiancity.comtiancitycdn.com + + 58TONGCHENG +58.com  58.com.cn 5858.com  58che.com 58xueche.com +anjuke.comanjukestatic.com chinahr.com +daojia.com diandao.org fang.com  sofun.com soufunimg.com  jxedt.com zhuancorp.comzhuanspirit.comzhuanzhuan.com + + ALIBABA-ADS a.alimama.cn +adsacjs.aliyun.com +adsadash.m.taobao.com +ads!adashbc.m.taobao.com +ads"adashbc.ut.taobao.com +ads"adash-c.ut.taobao.com +ads adashx.m.taobao.com +ads$adashx4ae.ut.taobao.com +ads#adashx4yt.m.taobao.com +ads#adashxgc.ut.taobao.com +adsadsh.m.taobao.com +adsafp.adchina.com +adsafp.alicdn.com +ads agoodm.m.taobao.com +ads#agoodm.wapa.taobao.com +ads alipaylog.com +adsamdc.alipay.com +adsamdc.m.taobao.com +ads api.wapa.taobao.com +ads#api.waptest.taobao.com +adsapoll.m.taobao.com +ads#appdownload.alicdn.com +adsatanx.alicdn.com +adsatanx2.alicdn.com +adscbu01.alicdn.com +adscdn0.mobmore.com +adsclick.aliyun.com +ads&click.mz.simba.taobao.com +adscm.ipinyou.com +ads cm.mlt01.com +ads!dsp.simba.taobao.com +adserr.taobao.com +adsex.mobmore.com +ads ex.puata.info +ads!fav.simba.taobao.com +ads$feedback.whalecloud.com +adsff.win.taobao.com +ads fm.p0y.cn +adsg.click.taobao.com +ads +g.tbcdn.cn +adsgma.alicdn.com +adsgtms01.alicdn.com +adsgtms02.alicdn.com +adsgtms03.alicdn.com +adsgtms04.alicdn.com +adshydra.alibaba.com +ads'hz.pre.tbusergw.taobao.net +ads#hz.tbusergw.taobao.net +ads i.ipinyou.com +adsinit.phpwind.com +ads!intl.wapa.taobao.com +ads$intl.waptest.taobao.com +ads"jxlog.istreamsche.com +adslog.umtrack.com +adsm.intl.taobao.com +adsm.simba.taobao.com +adsmatch.p4p.1688.com +ads%material.istreamsche.com +ads mlt01.com +ads&nbsdk-baichuan.alicdn.com +ads&nbsdk-baichuan.taobao.com +ads"osfota.cdn.aliyun.com +ads osupdate.aliyun.com +ads&osupdateservice.yunos.com +ads%pindao.huoban.taobao.com +adspush.wandoujia.com +adsre.m.taobao.com +ads re.taobao.com +ads&redirect.simba.taobao.com +adsrj.m.taobao.co +adsrj.m.taobao.com +adssdkinit.taobao.com +adsshow.re.taobao.com +adssimaba.taobao.com +adssimba.m.taobao.com +ads!srd.simba.taobao.com +adsstats.ipinyou.com +ads strip.taobaocdn.com +ads$tanxlog.istreamsche.com +adstejia.taobao.com +adstemai.taobao.com +ads!tns.simba.taobao.com +ads tongji.linezing.com +ads tvupgrade.yunos.com +adstyh.taobao.com +adsuserimg.qunar.com +adsw.m.taobao.com +adsyiliao.hupan.com +ads + +APPLEiadsdk.apple.com +ads iad.apple.com +ads qwapi.com +adscalendarserver.orgapple-cloudkit.com cups.orgdeveloper.apple.comdevimages-cdn.apple.comdevstreaming-cdn.apple.comfoundationdb.orgmacosforge.org macruby.com macruby.net macruby.orgapple-mapkit.complaygrounds-cdn.apple.com carekit.orgresearchandcare.orgresearchkit.cn +cnresearchkit.com.cn +cnresearchkit.hkresearchkit.netresearchkit.orgresearchkit.tvservicetalk.io +webkit.org webkitgtk.org wpewebkit.orgwebobjects.com-)appleworldwidedeveloper.hb-api.omtrdc.net)%appleworldwidedeveloper.sc.omtrdc.net#p-events-delivery.akamaized.net100beatscheap.com1monsterbeatsbydreus.com2013beatsbydrdreonline.com2013beatsbydrdreshop.com2013beatsbydreshop.com2013beatshdcybermonday.com2013cheapestbeats.com2013newbeatsworld.com2013pascherbeatsbydre.com2014cheapbeatsbydre.com 2beatsdre.com2buybeatsbydre.com2drdrebeats.com40shopping.com4beatsbydre.com5beatsbydre.comaaagradeheadphones.com +aanaan.comabcheadphones.comabeatsbydrdre.com aeasyshop.com +airmay.com +ajtalk.com albeats.com annstores.netaokwholesale.netaucheapbeats.comaudiobeatsau.comaudiobeatsbydre.comaudiomonsterbeatsonline.comauricularemonsterbeats.com#auricularesbeatsbaratosshop.comauricularesbeatsmarkt.comausbeatsbydrdre.combag-glasses1.com bandgirlz.com baxsound.com bbestmall.com +beatbd.combeatbydre2013.combeatbydremonster.com!beatbydreheadphonesonsale.combeatbydrekopen.combeatbydreuk2014.combeatdrdres.combeatfactoryoutlets.combeatmonstersaustralia.netbeats-by-dre-australia.combeats-bydrdre.netbeats-bydre-mall.combeats-bydrecheapsale.combeats-bydreoutletonline.combeats-bydreoutletsale.combeats-bydreoutletsale.netbeats-bydreoutletssale.netbeats-bydrestore.combeats-bydreuk.combeats-deal.combeats-dre-us.com"beats-headphones-buy-cheap.combeats-headphones.usbeats-sale.combeats-seller.combeats-soaho.com  beats1.cc beats1.cn +cn  beats1.tv beats1.com.cn +cn beats123.com beats2.com.cn +cn beats4.cn +cn +beats4.netbeats4outlets.combeats4salecheap.combeatsallsale.combeatsaudifonos.combeatsaudiobydre.combeatsaudiobydre.netbeatsaudios.netbeatsbeatsmonster.combeatsbestdeals.combeatsblackfridaydeals.netbeatsblackfridayretails.combeatsboxingdayuksale.combeatsbydrdre-headphones.combeatsbydrdre-officials5.combeatsbydrdre-online.combeatsbydrdre-onsale.combeatsbydrdre-store.combeatsbydrdre-store.usbeatsbydrdre4sale.combeatsbydrdrebiz.combeatsbydrdrecustom.combeatsbydrdredanmark.combeatsbydrdremall.combeatsbydrdreoutlet.combeatsbydrdres.combeatsbydrdresale.netbeatsbydrdrestore.combeatsbydrdreus.com!beatsbydre-beatsheadphone.combeatsbydre-chen.combeatsbydre-club.combeatsbydre-headphones.com!beatsbydre-headphonesshop.combeatsbydre-mall.combeatsbydre-outlet.combeatsbydre-outletsale.netbeatsbydre-outletstore.combeatsbydre-sell.combeatsbydre-store.combeatsbydre-studio.combeatsbydre-us.com beatsbydre.jpbeatsbydre2081.combeatsbydre411.combeatsbydre4usales.combeatsbydreauofficial.combeatsbydreausale.net beatsbydreaustralia-sale.com!beatsbydreaustraliaonline.com"beatsbydreaustraliaonlines.com beatsbydreaustraliasales.combeatsbydrebeatsby.com!beatsbydreblackfriday2013.com beatsbydreblackfridaypro.combeatsbydreboxingdayca.combeatsbydrecasquesfr.com#beatsbydrecheap-outletstore.combeatsbydrecheaper.com"beatsbydrecheaponlinesales.combeatsbydrecolors.com beatsbydrecustomwireless.com&"beatsbydrecybermondaydeals2013.com&"beatsbydrecybermondaydeals2013.netbeatsbydredanmarks.com"beatsbydredealsblackfriday.com"beatsbydredealscybermonday.combeatsbydrediscount.com beatsbydrediscountonline.netbeatsbydredr.combeatsbydreexecutivesale.com beatsbydreformall2013-nl.com beatsbydreforsalesonline.com beatsbydreforshop2013-nl.combeatsbydreforstore.combeatsbydreforyououtlet.combeatsbydrefr.com!beatsbydrefrcasquepascher.combeatsbydrefriday.combeatsbydregot.combeatsbydrehd.combeatsbydrehd.netbeatsbydreheadphones-nz.combeatsbydreheadphonesolo.combeatsbydrehut.combeatsbydreinexpensive.combeatsbydreireland-sales.com beatsbydreirelandonlines.combeatsbydreirelandsale.com beatsbydreirelandsonline.combeatsbydremall2013.com"beatsbydremonsteraustralia.combeatsbydrenls.combeatsbydrenorge1.net!beatsbydreofficialdanmark.combeatsbydreoksale.combeatsbydreol.combeatsbydreonlie2013-nl.com!beatsbydreonlines-ireland.combeatsbydreonlines-uk.combeatsbydreonlinesale-nz.combeatsbydreoordopjes.combeatsbydreoslo.combeatsbydreoutletsale.combeatsbydreoutletscheap.combeatsbydrerealstore.combeatsbydres-shop.combeatsbydresale-uk.combeatsbydresalemall2013.combeatsbydresales.us'#beatsbydresalesonline-australia.com beatsbydresaleonlines-nz.combeatsbydresdanmark.netbeatsbydreshop-uk.combeatsbydreshops.netbeatsbydresingapores.combeatsbydresingaporesale.combeatsbydrespeakers.combeatsbydresold.com%!beatsbydresolohdonline-canada.combeatsbydresonline-nz.combeatsbydrestorevip.combeatsbydressale.combeatsbydressolo.combeatsbydresstudio.com"beatsbydrestudio-australia.combeatsbydrestudio.combeatsbydretoutlet.combeatsbydreuk.combeatsbydreuk.netbeatsbydreus.combeatsbydrevipde.combeatsbydrew.combeatsbydrsmonsterinusa.combeatsbymusic.netbeatsbysdrbre.combeatsbysdrdres.combeatscasque-france.combeatscheap-nz.combeatscheap-uk.combeatscheapforsale.combeatscollection2014.combeatscustomblackfriday.combeatsdanmark2013.combeatsdrdre-headphones.combeatsdrdre-it.combeatsdrdre-solo.combeatsdrdre2014.combeatsdrdrecuffie.netbeatsdrdrekaufenschweiz.netbeatsdrdreneon.combeatsdre-monster.com beatsdre.netbeatsdre4cheap.combeatsdrecheap.combeatsdredreheadphones.combeatsdreforsale.combeatsdreinau.combeatsdremonster-uk.com!beatsdrenewcolorful4usale.combeatsdreoutletsale.combeatsdresale2013.combeatsdresalestore.combeatsdresolo2013.combeatsdreus.combeatsearbudsheadphoness.combeatsfacstore.combeatsfactoroutlets.combeatsfactorycollection.combeatsfactoryoutles.combeatsforcheap-usa.combeatsforme.combeatsfranceofficiel.combeatselectronic.netbeatselectronics.com +beatsep.cn +cn beatsep.com beatsep.net beatsheadphones-discount.combeatsheadphones1.combeatsheadphones2u.combeatsheadphonesale.combeatsheadphonesdealer.combeatsheadphonesforcheap.netbeatsheadphonesonline.combeatsheadphoness.combeatsheadphonestudio.combeatsheadphonesusamall.combestshoesale2014.netbeatshopuk.combeatsincanada.combeatsinsingapore.combeatsireland.net beatsjoy.combeatsmonstersales.combeatsmusic.combeatsmusic.wang beatsneon.combeatsnzsale.com beatsodre.combeatsofdre-usa.combeatsonblackfriday2013.com beatsone.netbeatsoutlet.netbeatsoutletanytime.combeatsoutletonlines.combeatspascher-bydre.combeatspascher-fr.netbeatspascher.netbeatspaschers.netbeatspillnewcolor.combeatspills.combeatspromonsterjp.combeatspromotions.combeatssales.combeatssaleus.combeatssaustraliabuy.combeatssbyaustralia.combeatssbydredanmark.combeatsshop-uk.combeatsshop-usa.combeatsshopstore.combeatssingapores.combeatssingaporeshop.com beatsstudiohodetelefoner.combeatsstudiosite.combeatstoreusa.com beatsua.combeatswholesale.usbeatswirelesscheap.combeatswirelesscuffie.combegin-trade.combestbeats4u.com +biitii.comblackfridaydrebeatsnew.comblackfridaydrebeatsshop.combloommicroventures.com bookonsky.net +bossae.combrandeasygo.combrandelectronic.combrandproducts1688.com brands098.combusinesswebwise.combuy-from-shanghai.combuybeatsbydre-uk.combuybeatsheadphonesbydre.combuycheapbeatsbus.combuycheapbeatsbydre.combuycheapbeatsbydreshop.combuycheapbeatsdreuk.combuydrdrebeatbox.combuyminibeatbox.combuyonlineheadphones.combuyshoponly.combuzzardflapper.combybeatsdre.combydrebeats.comcanada-beatsbydre.com casque-fr.com casquebeatsbydrdresolohd.comcasquebeatsdocteurdre.comcasquebeatsdre2013.comcasquebeatsenligne.comcasquebeatsfracheter.comcasquebeatsmer.netcasquebeatsofficiel-fr.comcasquebeatspascher2013.comcasquebeatssolo.netcasquedrdrebeatssfr.comcasquemonsterbeats.com#casquemonsterbeatsbydre2013.comcasquesbeatsaudio.comcheap-beats-by-dre.netcheap-beatsbydre.comcheapbagshoes.com cheapbeats.uscheapbeats365.comcheapbeats4sale.netcheapbeatsaustraliasale.comcheapbeatsbus.comcheapbeatsbydr.comcheapbeatsbydrdrepro.comcheapbeatsbydre-au.comcheapbeatsbydre99.comcheapbeatsbydrefau.comcheapbeatsbydremall.comcheapbeatsbydremonster.comcheapbeatsbydrenz.netcheapbeatsbydreonsale.com cheapbeatsbydreoutlet-nz.comcheapbeatsbydreoutlet.com"cheapbeatsbydreoutlets2013.comcheapbeatsbydresale.comcheapbeatsbydreshop.comcheapbeatsdrdresolo.com$ cheapbeatsbydrestudioedition.com"cheapbeatsbydrestudioutlet.comcheapbeatsdrestudios.comcheapbeatsheadphone2014.comcheapbeatsheadphones.uscheapbeatsie.comcheapbeatsla.comcheapbeatssale4u.comcheapbeatsshopbydre.comcheapcustombeatsbydre.comcheapdrdrebeats8.comcheapdrdrebeatsca.comcheapdrebeats8.netcheaperbeatsbydresale.comcheapestbeatsdrdre.comcheapheadphonesland.comcheapheadphonessale.comcheapheadsetmall.comcheapheadsetshop.com cheapmonsterbeatsbydrdre.com!cheapmonsterbeatsheadsets.com cheapmonstersbeatsonsale.comcheapmonsterbeatssale.comcheapmonsterbeatsusa.uscheapnewbeatsbydre.comcheapsalemonster.comcheapshoesvip.comcheapwireless04.comcheapwirelessbeats.comcheerwholesale.uschihair-straightener.comchinaclothesstore.comciattackers.com +cmhalq.com cnshopin.comcoolmonster.netcozydrdrebeats.com cqcorea.comcuffiesaldi.comcustombeatsbydrebuy.comcustombeatsdeals.comcustombeatsforcheap.comcustombeatsny.comcustombeatssbydreus.comcustomdrdrebeats.comcustomizedbeatbydre.comcustomizedbeatsbydre.comcustomizedbeatsdre.comcybermondaybeats4sale.comdanemarket.comdanmarkbeatsbydrdre.comdctbeatsbydre.comdealsbeatsblackfriday.comdetaliczny.comdiscountbeatsbydre-us.comdiscountbeatsstore.comdkbeatsbydre.comdrbeatsukmart.comdrdre-beats.comdrdrebeats-chen.comdrdrebeats-headphone.comdrdrebeats-usa.comdrdrebeatsale.comdrdrebeatsbillig.comdrdrebeatsdesale.comdrdrebeatsdiscount.comdrdrebeatsforu.comdrdrebeatsretail2013.comdrdrebeatssale7.comdrdrebeatsuk.comdrdreheadphonebeats.comdrdreheadphonekey.comdrdreheadphonesusstore.comdrdremonster-beats.comdrdremonsterdre.comdrdreprobeatssale.com drdrefnac.comdrebeats-australia.comdrebeats-france.comdrebeats-monster.com!drebeats-monsteraustralia.comdrebeats-monsterusa.comdrebeats-singapore.comdrebeats-singapore.netdrebeats-singaporecheap.comdrebeats-singaporecheap.netdrebeats-solo.comdrebeats-studio.comdrebeatsaustralia-cheap.comdrebeatsaustralia-cheap.netdrebeatsbuy.comdrebeatsbydreoutlet.comdrebeatscanada.comdrebeatsdeutschland.netdrebeatsforsaleus.comdrebeatsheadphones-nz.comdrebeatshome.comdrebeatsoutletstore.comdrebeatsoldes.comdrebeatspill.comdrebeatssite.com#drebeatssolocybermondaysale.comdrebeatsstudio2013.comdrebeatstudio.com drebyby.comdremonsterbeatsoutlets.comdreprobeats.com dreprofy.com +dtsell.comearphonescheapest.comebuyheadphones.comesbeatsbydrebuy.cometheadphones.comfamosascalvas.comfindmybeats.comfr-beatsbydrestore.comfrancecasquebeatssolde.comfrcasquesbeats.com free-aa.com free-sns.com frishoes.comgamebeforethegame.comgetdrebeatssale.comgmnetworks.net gobeatsye.comgobuyonlinestore.net goodsdunk.netheadphonepubs.comheadphones-cool.comheadphones-dre.com headphones-outlet-online.comheadphonesbeatsaudio.comheadphonesbeatsbydre.comheadphoneses.comheadphoneshome.comheadphoneshotsales.comheadphonesol.comheadphonesretailer.comheadphonessupply.comheadphonezip.comheadset987.comhellokittybeats.com highbolt.net highdefinitionbeatsbydre.com hipaa6020.com hipzoom.nethonawalaan.comhotbeatsonsale.comhotmonsterbeats.comhottestheadphonesonline.com  hrsaz.com ibeats-uk.comibeatsbydre.ccibeatsbydre.comigoshopping.net illianacomputerrecycling.comimonsterbeats.comincentivetravelgifts.comioffergift.com islamiccenterofnewlondon.comitaliabeatsbydrdre.com jkbeats.comkickshatchannel.comkobbeatssbydredk.comkopfhorergunstigshop.comleecountytimes.com lexuemei.comlovebeatsdr.com lovemarca.comluckyissue.com +lyzsxx.com mairbeats.com +makeeu.commallheadphone.commbeats-tech.commbheadphone.com +micstl.commmonsterheadphones.netmonbeats2013.commonster-beats-by-dr-dre.com monster-beats-headphones.commonsterbeats-cheap.commonsterbeats-headphone.commonsterbeats-onsale.commonsterbeats-solo.commonsterbeats-solo.netmonsterbeats365buy.commonsterbeats8beatsbydre.commonsterbeatsale.commonsterbeatsalestore.commonsterbeatssalg.commonsterbeatsau.commonsterbeatsbydrdre-nz.commonsterbeatsbydrdre-usa.com!monsterbeatsbydrdrecanada.com!monsterbeatsbydrdrestudio.commonsterbeatsbydre-nz.commonsterbeatsbydre-usa.commonsterbeatsbydre2015.com'#monsterbeatsbydreaustraliacheap.com!monsterbeatsbydrebilligde.com monsterbeatsbydrefactory.commonsterbeatsbydrenew.commonsterbeatsbydres.commonsterbeatsbydreshop.commonsterbeatscasques.commonsterbeatscommunity.commonsterbeatsdrdrecheap.commonsterbeatsfactory.netmonsterbeatsfinland.commonsterbeatsforsale.commonsterbeatsheadphone.commonsterbeatsheadphones.netmonsterbeatshere.commonsterbeatsitaly.commonsterbeatsmall.commonsterbeatsnegozi.netmonsterbeatsok.com!monsterbeatsonlinestoreuk.commonsterbeatsoutlet.usmonsterbeatspascher.netmonsterbeatsru.commonsterbeatssales.commonsterbeatsshops.netmonsterbeatsstore.com#monsterbeatssydneyaustralia.commonsterbeatstang.commonsterbeatstienda.commonsterbeatstudio.commonsterbydrebeat.com!monstercasquebeatspascher.netmonstercheapbeatss.commonsterdrebeats-canada.netmonsterdrebeats-usa.commonsterdrebeats-usa.netmonsterheadphone.netmonsterproduct.netmonstersbeatbydres.commonstersdebea.commonstershopcheapbeats.netmoreheadphones.com +ms4dre.commybeatsbydrestudio.commybeatsbydreuk.commybeatscheapbydre.commyferrariheadphones.comnamemybeats.com neborder.comnegozimonsterbeats.comnegoziomonsterbeats.comnewbeatsblackfriday.com newbemany.comnewdrediscount.comnewestbeatsbydre.comnewlysprung.netnewmonst1erbeatsto1re.com!newmonsterbeatsheadphones.comnewschristmasshopping.comnflhotsalejerseys.com nicesshop.netofferairjordanlebron.comofficialbeatsbydreshop.comofficialbeatsbydrestore.comofficialdrdre.comofficialheadphone.com ogameblog.comonbeatsbydresale.com onlinemonsterbeatsonsale.com onsalekey.comonsaletrend.comoutletbeatsshop.compascherbeatsmonster.compaulsimon-music.comperfectkickz.netpersoneelsland.compicknicekicks.netpickshoesclothes.com pillbeatsblackfridaysale.compocketbiketrader.compowerbeats2wireless.compowerbeatsbydrdre.compowerbeatsbydre.compromonsterbeatsbydre.comprostudiobeatscybersale.com  rbsgr.comrepsneakermall.com repswing.com!salebeatslasteststyle4you.comsaleblackfridaydrebeats.comsalecheaphandbags.com samebags.com sanvaras.com +scnshop.cc +shoers.com shoestop2.comshop-headphones.netshopbeatsdre.com shopbydre.comshopcustomizedbeats.comshopdrebeats.comshopmonsterbeats.comshopping-days.netshoppinguheadphones.comsneaker666.comsneakerpage.netsneakerskick.comsolostudioksale.com soso7778.comspecialtyheadphones.comspiritclubs.comstraightouttasomewhere.comstudiobeatsbydrdre.comsulwerphoto.comsunglassessale2014.comsuperearsenjoy.comsupplybestjerseys.comsustainthesound.comsverigebeatsbydrdre.com szcheapmonsterheadphones.comszwinnertechnology.com takegoto.comthe-monster-beats.comthebeatsbydre.comthebeatsbydre.netthebeatsheadphonesale.com +theuab.nettopbeatsbydrdreoutlet.comtopbeatsdealer.comtopbeatsforsale.com tradevip1.com tteshop.com ubnw.net +unstyle.us&"usa-beatsbydreheadphonesonsale.net  v-has.com vip-beats.comvipbeatsbydre.comvipheadphones.com vipshoes2.com  wasdj.comwholesale-exporter1.comwholesalediscountpurses.comwholesalefine.comwholesaleonlinemart.comworldcoinpay.comyourmonsterbeats.com%!beatselectronicsllc.tt.omtrdc.netapple-icloud.cn +cnappleicloud.cn +cnapplemx-icloud.comicloud-apple.cn +cnicloud-content.comicloud-isupport.com  icloud.ch +icloud.com icloud.com.cn +cn  icloud.de  icloud.ee  icloud.fi  icloud.fr  icloud.hu  icloud.ie  icloud.is  icloud.jp  icloud.lv icloud.net.cn +cn  icloud.om +icloud.org  icloud.pt  icloud.ro  icloud.se  icloud.si  icloud.sk  icloud.vn icloudads.neticloudapple.cn +cn icloudbox.neticloudbrowser.net icloude.comicloudhome.comicloudmail.neticloudmusic.net icloudnet.net icloudpay.net icloudo.com +icloudo.de icloudo.net icloudos.de icloudos.neticloudsecure.neticloudsetup.comios-icloud.com +me.com myicloud.net mylcloud.net wwwicloud.com!www-cdn.icloud.com.akadns.net!12diasdepresentesdeitunes.com12diasderegalosdeitunes.cl12diasderegalosdeitunes.co!12diasderegalosdeitunes.co.cr!12diasderegalosdeitunes.co.ni!12diasderegalosdeitunes.co.ve12diasderegalosdeitunes.com"12diasderegalosdeitunes.com.co"12diasderegalosdeitunes.com.hn"12diasderegalosdeitunes.com.ni"12diasderegalosdeitunes.com.ve12diasderegalosdeitunes.cr12diasderegalosdeitunes.gt12diasderegalosdeitunes.hn12diasderegalosdeitunes.pe 12joursdecadeauxdeitunes.comapple-itunes.cn +cn itun.es itunbes.com ituneas.comitunes-apple.cn +cnitunes-radio.net  itunes.ca  itunes.co itunes.co.th +itunes.com  itunes.hk  itunes.mx +itunes.org +itunes.rio  itunes.usitunes12days.comitunesapple.cn +cnitunesessentials.comitunesfestivals.comitunesiradio.comituneslatino.comituneslogin.netitunesmatch.comitunesparty.comitunesradio.cn +cnitunesradio.comitunesradio.com.cn +cnitunesradio.rioitunesradio.tvitunesradio.twitunesstore.co itunesu.com itunesu.net iutunes.com wwwitunes.comitunes-apple.com.akadns.netappleswift.com  swift.org +swiftui.cn +cnswiftui.com.cn +cn apple apple.ae apple.at apple.be apple.bg apple.bs apple.ca apple.ch apple.cl apple.cmapple.cn +cn apple.co apple.co.cr apple.co.hu apple.co.jp apple.co.kr apple.co.mz apple.co.nz apple.co.th apple.co.uk  apple.com apple.com.af apple.com.au apple.com.bo apple.com.br apple.com.cn +cn apple.com.co apple.com.de apple.com.do apple.com.gr apple.com.gy apple.com.jm apple.com.lk apple.com.mg apple.com.mx apple.com.my apple.com.pa apple.com.pe apple.com.pl apple.com.pr apple.com.pt apple.com.py apple.com.sg apple.com.sv apple.com.tr apple.com.tw apple.com.uy apple.cz apple.de apple.dk apple.ee apple.es apple.eu apple.fi apple.fr apple.hamburg apple.hn apple.hr apple.hu apple.ie apple.in apple.is apple.it apple.jo apple.jp apple.kr apple.lk apple.lt apple.lv apple.me apple.my  apple.net apple.net.gr apple.nl apple.no apple.pk apple.pl apple.pt apple.ro apple.rs apple.ru apple.sa apple.se apple.sg apple.si apple.sk apple.so apple.tt apple.tw apple.uk apple.usapple.xn--czr694bapple.xn--fiqs8s  apple.xyz aplestore.comapple-store.cn +cnapple-store.netapple-store.wang applestor.com applestore.bg applestore.cc applestore.ch applestore.cm applestore.cn +cnapplestore.co.huapplestore.co.jpapplestore.co.ugapplestore.co.ukapplestore.comapplestore.com.auapplestore.com.bnapplestore.com.cn +cnapplestore.com.eeapplestore.com.egapplestore.com.grapplestore.com.hkapplestore.com.hrapplestore.com.joapplestore.com.myapplestore.com.phapplestore.com.plapplestore.com.ptapplestore.com.roapplestore.com.ruapplestore.com.snapplestore.com.tw applestore.de applestore.hk applestore.kr applestore.meapplestore.netapplestore.net.gr applestore.ph applestore.qa applestore.sgapplestore.wangapplestoreonline.comapplestorepro.euonlineapplestore.comapp-store.wangappe-store.comapple-appstore.cn +cnappleappstore.cn +cnappleappstore.netappleappstore.tv  appsto.reappstore.co.id appstore.hk appstore.my appstore.phappstoreapple.cn +cn asto.retvappstore.netapple-imac.com appleimac.comimac-apple.comimac-applecomputer.com imac.co +imac.co.nz imac.com imac.eu imac.gr imac.one imac.rs imacapple.comimacapplecomputer.comebookforipad.com euroipad.comfindmyipad.com indiaipad.com +ipad.co.kr ipad.de  ipad.host  ipad.wang  ipad3.com +ipadair.cl +ipadair.cmipadair.com.bripadair.com.es +ipadair.fr +ipadair.hk +ipadair.ie +ipadair.jp +ipadair.twipadaustralia.com ipadmini.cmipadmini.com.lk ipadmini.lk ipadpro.buzz +ukipad.comappleiphone.huappleiphone.netappleiphonecell.combestiphonestuff.comcooliphonecasesstore.comcustom-iphonecase.comdesigneriphonescases.com dl-iphone.comfundaiphone5s.com hebiphone.com hf-iphone.com +iphine.comiphone-8.com.cn +cn iphone-cd.com iphone-cn.com iphone-sh.comiphone-vip1.comiphone-vip2.comiphone-vip3.comiphone-vip4.comiphone-vip5.com iphone-x.tv iphone-yh.com iphone-zh.com  iphone.cm +iphone.com iphone.com.au iphone.com.gr  iphone.es iphone.host iphone.net.gr  iphone.pt  iphone.rs  iphone.ru iphone.wang iphone4.comiphone4.com.br iphone4s.com iphone5.comiphone5casescovers.comiphone5s5case.comiphoneacessorios.com.briphonecase2013.comiphonecase5.comiphonecases100.comiphonecases5.comiphoneclaro.com.briphonecollcase.com iphonefc.comiphonegermany.comiphonehangzhou.comiphoneimessage.comiphoneplus.wang iphonerip.net iphonese.tviphoneunlockimei.com iphonexs.tvonlyiphone5case.comaplleipods.comappleclassicipod.comdownloadsforipod.com ipod.ca ipod.ch ipod.cm ipod.co +ipod.co.nz +ipod.co.uk +ipod.co.za ipod.com ipod.com.au ipod.com.cn +cn ipod.com.fr ipod.com.hk ipod.com.sg ipod.com.tw ipod.de ipod.es ipod.eu ipod.fr ipod.gr ipod.hk ipod.is ipod.net ipod.no ipod.pk ipod.rs ipod.ru ipod.tw ipodcentre.nlipodcleaner.comipoditouch.com ipodnano.com ipodnano.netipodprices.com +ipodrip.caipodrocks.com.au  ipods.comipodshop.com.au ipodtouch.co ipodtouch.com +myipod.netoffrezdesipods.comsimplyipod.comwwwipodlounge.comimacsources.comlaunchpad.wang mac.wang +macbook.co +macbook.hk +macbook.tw macbook.wang macbookair.cn +cnmacbookair.co.krmacbookair.co.ukmacbookair.commacbookair.com.aumacbookair.com.cn +cnmacbookair.com.es macbookair.es macbookair.hk macbookair.kr macbookair.jpmacbookair.net macbookpro.comacbookpro.commacbookpro.com.aumacbookpro.net macbookpro.usmacbookpros.commacbooksale.comwwwmacbookair.comapple-watch.com.ru applewatch.hk applewatch.tv applewatch.twapplewatch.wangapplewatchedition.comapplewatchseries3.netapplewatchsport.comapplemusic.berlinapplemusic.comapplemusic.com.auapplemusic.hamburgapplemusic.wangapplemusicconnect.comapplemusicfestival.com musickit.netwwwapplemusic.comapple.comscoreresearch.com +apple.newsappleenews.comapplenews.berlinapplenews.hamburg applenews.tvapplenewsformat.com apple-pay.com apple-pay.rsapple-pay.wangapplepay.berlinapplepay.co.rsapplepay.com.twapplepay.hamburg applepay.hk applepay.info applepay.jp applepay.rs applepay.tvapplepaycash.cn +cnapplepaycash.com.cn +cnapplepaycash.netapplepaycash.tv!applepaymerchantsupplies.infoapplepaysupplies.berlinapplepaysupplies.cn +cnapplepaysupplies.com#applepaysupplies.com.cn +cnapplepaysupplies.infoapplepaysupplies.netapplepaysupplies.tvapplewallet.comapplewallet.tv +i-book.com +i-book.net ibook.co.nz  ibook.com ibook.eu  ibook.netibookpartner.comibooksauthor.com  iphoto.eu  iphoto.no  iphoto.se iphoto.wang  imovie.euimoviegallery.comimoviestage.comapplecare.berlin applecare.cc applecare.euapplecare.hamburgapplecare.wangappledarwin.comappledarwin.netdarwinsource.comdarwinsource.orgdarwinsourcecode.comappleaccount.netappleid-applemx.comappleid-applemx.usappleid-iclou.com appleid-uk.usappleid.berlin appleid.comappleid.hamburg +appleid.hk ids-apple.com myappleid.com appletv.com +appletv.fr appletv.wang appletv4.cn +cnappletv4.com.cn +cnappletvapp.appleappleone.audio appleone.blog appleone.chatappleone.cloud appleone.clubappleone.community appleone.filmappleone.guide appleone.hostappleone.space appleone.techappleone.website +shazam.com1to1computing.com.au1to1conference.com.au 5lml.com +a0pple.net aapl.twairport.brussels airport.com +airport.euairsupportapp.com airtunes.com airtunes.info airtunes.netalchemysynth.com  ap0le.com aple.com  apole.com +app0le.com +appl-e.com appl.com +appl4e.com  appla.comapple-darwin.comapple-darwin.netapple-darwin.org apple-dns.cn +cn apple-dns.comapple-dns.com.cn +cn apple-dns.netapple-enews.comapple-expo.com apple-expo.eu apple-hk.comapple-ibooks.cn +cn apple-inc.netapple-livephotoskit.com apple-maps.cn +cnapple-online.com apple-usa.netappleafrica.comappleantilles.comappleaustralia.comappleaustralia.com.auappleaustralia.net.au applebk.netapplecarbon.com applecard.tvapplecentar.co.rsapplecentar.rsapplecenter.cn +cnapplecenter.com.cn +cnapplecentre.com.auapplecentre.infoappleclub.com.hk applecom.comapplecomputer-imac.comapplecomputer.cn +cnapplecomputer.co.inapplecomputer.co.nzapplecomputer.com applecomputer.com.cn +cnapplecomputer.com.hkapplecomputer.com.twapplecomputer.huapplecomputer.krapplecomputerimac.comapplecomputerinc.infoapplecomputers.co.nzapplecoronavirus.com appledns.cn +cnappledns.com.cn +cn appleexpo.euappleexpo.infoapplefilmaker.comapplefilmmaker.comapplefinalcutproworld.comapplefinalcutproworld.netapplefinalcutproworld.orgapplehongkong.comapplehongkong.com.hkappleinclegal.comappleipodsettlement.comappleiservices.com applelink.comapplemagickeyboard.comapplemalaysia.com.myapplemasters.infoappleonline.comappleonline.net appleoriginalproductions.com +appleos.tvapplepencil.netapplepodcasts.comapplepremiumreseller.com.au applepremiumresellers.com.auapplereach.comapplereach.net apples-msk.ruapplescreensavers.comapplescript.infoappleshare.infoappleshop.co.uk applesiri.cn +cnapplesurveys.comappletaiwan.com appletips.net appleweb.net applexpo.net applezh.com  applf.com +applfe.com +applle.com  applw.comappmediagroup.com +appule.com  appye.com  apyle.com  beddit.tvbraeburncapital.com burstly.netburstlyrewards.com buyaapl.com buyaapl.net buyaple.com camelphat.comcamelspaceeffect.com +carbon.com catalina.hk cdn-apple.com  chomp.com +coreml.netdashwood360.comdesktopmovie.comdesktopmovie.netdesktopmovie.orgdesktopmovies.netdesktopmovies.orgdeveloper-advisor.comdevice-manager.usdigitalhub.comdiscussionsapple.com +dot-mac.de  dotmac.dedvdstudiopro.bizdvdstudiopro.comdvdstudiopro.infodvdstudiopro.netdvdstudiopro.orgdvdstudiopro.us +earpod.net ecgapp.com.cn +cn +ecgapp.netedu-research.org +emac.co.in emac.in  emagic.de +eworld.com faceid99.com faceid99.netfaceidglobal.com faceshift.cn +cn facetime.netfinalcutpro.comfind-apple.com firewire.cl firewire.eu geoport.com +homepod.cn +cn +hopstop.tv ichat.co.in idvd.eu  ikids.comilecture.co.nz ilife.eu ilife.gr +ilife.wang imessage.tv insidear.cn +cninsidemacintosh.comiosinthecar.comipa-iphone.net  ipple.com ischool.com itools.info  iwork.com iwork.se +iwork.wangjetfuelapp.comjetfuelapps.comlatticedata.com livephotos.cn +cnlivephotos.com.cn +cn livephotos.tvlojaiphone.com.br mac-mini.com mac.com +mac.com.au +mac.eu +mac.rs macappsto.re macboxset.com mach-os.com mach-os.net +machos.net macintosh.eumacintoshsoftware.com macmini.com macos.com.aumacossierra.com macosx.infomacosxlion.com macpazar.com macreach.com macreach.net mobileme.dkmr-apple.com.tw mzstatic.com +newton.com next.com overapple.com powerbook.eupullstring.netquatrowireless.com quicktime.cc quicktime.comquicktime.com.au quicktime.eu quicktime.net quicktime.tvreform-apple.comservices-apple.net siri.com spektral.cc texture.comthinkdifferent.us +touchid.tv touchid.wangtracking-location.comtruedepth3d.com tryrating.comwebobjects.co.uk webobjects.de webobjects.euwebobjects.net wuxiapple.com wwapple.netwww-sms-apple.com wwwapple.com wwwapple.net wwwlapple.comxn--czrs0t4phtr3a.cnxn--fiqs8sxootzz.cn xn--fiqs8sxootzz.xn--hxt814e!xn--gtvq61aiijy0b.xn--hxt814exn--gtvz22d.wangxn--gtvz22d.xn--hxt814exn--hxtr4rozx.xn--czr694b xn--kput3imi374g.xn--hxt814e#xn--ohq11k7pl25iyo8a.cn +cn xn--ruq8a011kt6y.xn--hxt814e, adcdownload.apple.com.akadns.net +cn!adcdownload.apple.com +cn."amp-api-search-edge.apps.apple.com +cn"amp-api.apps.apple.com +cn aod.itunes.apple.com +cn#api-edge.apps.apple.com +cnappldnld.apple.com +cn"appldnld.g.aaplimg.com +cnapps.apple.com +cnapps.mzstatic.com +cn(apptrailers.itunes.apple.com +cn bag.itunes.apple.com +cn'bookkeeper.itunes.apple.com +cnbooks.apple.com +cn!cds-cdn.v.aaplimg.com +cn$cds.apple.com.akadns.net +cn cds.apple.com +cncl2-cn.apple.com +cn<0cl2.apple.com.edgekey.net.globalredir.akadns.net +cncl4-cn.apple.com +cn'client-api.itunes.apple.com +cn+clientflow.apple.com.akadns.net +cn clientflow.apple.com +cn cma.itunes.apple.com +cn."configuration.apple.com.akadns.net +cn#configuration.apple.com +cn!communities.apple.com +cncstat.apple.com +cn."dd-cdn.origin-apple.com.akadns.net +cn(discussionschinese.apple.com +cn(download.developer.apple.com +cnfides-pol.apple.com +cngs-loc-cn.apple.com +cngs-loc.apple.com +cn%gsp10-ssl-cn.ls.apple.com +cn!gsp11-cn.ls.apple.com +cn!gsp12-cn.ls.apple.com +cn!gsp13-cn.ls.apple.com +cnC7gsp4-cn.ls.apple.com.edgekey.net.globalredir.akadns.net +cn, gsp4-cn.ls.apple.com.edgekey.net +cn gsp4-cn.ls.apple.com +cn gsp5-cn.ls.apple.com +cn(gspe11-2-cn-ssl.ls.apple.com +cn&gspe12-cn-ssl.ls.apple.com +cn&gspe19-cn-ssl.ls.apple.com +cn-!gspe19-cn.ls-apple.com.akadns.net +cn"gspe19-cn.ls.apple.com +cn#gspe21-ssl.ls.apple.com +cngspe21.ls.apple.com +cn#gspe35-ssl.ls.apple.com +cn&gspe85-cn-ssl.ls.apple.com +cniadsdk.apple.com +cn, icloud-cdn.icloud.com.akadns.net +cn icloud.cdn-apple.com +cn'images.apple.com.akadns.net +cn?3images.apple.com.edgekey.net.globalredir.akadns.net +cnimages.apple.com +cn3'init-p01md-lb.push-apple.com.akadns.net +cn init-p01md.apple.com +cn3'init-p01st-lb.push-apple.com.akadns.net +cn%init-p01st.push.apple.com +cn3'init-s01st-lb.push-apple.com.akadns.net +cn%init-s01st.push.apple.com +cn!init.itunes.apple.com +cn$iosapps.itunes.apple.com +cn(iosapps.itunes.g.aaplimg.com +cniphone-ld.apple.com +cn'itunes-apple.com.akadns.net +cnitunes.apple.com +cn#itunesconnect.apple.com +cn"js-cdn.music.apple.com +cn km.support.apple.com +cnmaps.apple.com +cn)mesu-cdn.apple.com.akadns.net +cn+mesu-china.apple.com.akadns.net +cnmesu.apple.com +cnmusic.apple.com +cn(ocsp-lb.apple.com.akadns.net +cnocsp.apple.com +cnoscdn.apple.com +cn-!oscdn.origin-apple.com.akadns.net +cn$osxapps.itunes.apple.com +cnpancake.apple.com +cn, pancake.cdn-apple.com.akadns.net +cnpd.itunes.apple.com +cnphobos.apple.com +cn!play.itunes.apple.com +cn1%prod-support.apple-support.akadns.net +cn$se-edge.itunes.apple.com +cn se2.itunes.apple.com +cn#search.itunes.apple.com +cn1%sf-api-token-service.itunes.apple.com +cnsp.itunes.apple.com +cn4(stocks-sparkline-lb.apple.com.akadns.net +cn&stocks-sparkline.apple.com +cn>2store.apple.com.edgekey.net.globalredir.akadns.net +cn'store.apple.com.edgekey.net +cnstore.apple.com +cn2&store.storeimages.apple.com.akadns.net +cn+store.storeimages.cdn-apple.com +cn+streamingaudio.itunes.apple.com +cnsu.itunes.apple.com +cn2&support-china.apple-support.akadns.net +cnsupport.apple.com +cn."swcatalog-cdn.apple.com.akadns.net +cnswcatalog.apple.com +cnswcdn.apple.com +cnswcdn.g.aaplimg.com +cn'swdist.apple.com.akadns.net +cnswdist.apple.com +cn+swscan-cdn.apple.com.akadns.net +cnswscan.apple.com +cn!sync.itunes.apple.com +cn1%updates-http.cdn-apple.com.akadns.net +cn&updates-http.cdn-apple.com +cn upp.itunes.apple.com +cnvalid.apple.com +cn-!valid.origin-apple.com.akadns.net +cn"weather-data.apple.com +cn<0www.apple.com.edgekey.net.globalredir.akadns.net +cn%www.apple.com.edgekey.net +cn www.apple.com +cn#^a[1-5]\.mzstatic\.com$ +cn0$^cdn(-cn)?[1-4]?\.apple-mapkit\.com$ +cn9-^cl[1-5]-cdn\.origin-apple\.com\.akadns\.net$ +cn!^cl[1-5]\.apple\.com$ +cn+^is[1-5](-ssl)?\.mzstatic\.com$ +cn$^s[1-5]?\.mzstatic\.com$ +cnapple.com.akadns.net%!courier-push-apple.com.akadns.netpush-apple.com.akadns.net + +CATEGORY-MEDIA 9cdn.net9nation.com.au 9news.com.au 9now.com.aufreeviewplus.net.au +mi9.com.au +mi9cdn.com nine.com.aunineentertainment.com.aunineentertainmentco.com.auninemediaroom.com.auninemsn.com.austatic9.net.au yourtv.com.au9to5google.com 9to5mac.com9to5terminal.com 9to5toys.com dronedj.com electrek.cospaceexplored.com afp.com afpforum.com +ajplus.net aljazeera.com aljazeera.netpalestineremix.comsarajevopodopsadom.comsrebrenica360.com syhacked.comamericasvoice.news +ap.org +apnews.comappledaily.comappledaily.com.hkappledaily.com.tw appledaily.hkapplefruity.comapplehealth.com.hk +atnext.combestmallawards.com deluxe.com.hk eracom.com.tw next.hknextdigital.com.hknextdigital.com.twnextfilm.com.hknextmag.com.tw nextmedia.comnextmedia.com.tw nextmgz.comnextplus.com.hk nexttv.com.twnextwork.com.hknextwork.com.tw nextwork.hk nextwork.tw nxtdig.com.hk nxtdig.com.tw omoplanet.com privilege.hk privilege.tw sharpdaily.tw tomonews.nettwnextdigital.comappleinsider.com  asahi.com asahicom.jpasahishimbun.sc.omtrdc.netbbc  bbc.co.uk bbc.com +bbci.co.uk bbgwatch.com  bloomberg bbgevent.com bbhub.io +bbthat.com bgov.com bloomberg.cnbloomberg.co.jpbloomberg.co.kr bloomberg.combloomberg.com.br bloomberg.fm bloomberg.tvbloombergapps.combloombergarcade.combloombergbeta.combloombergbna.combloombergbreakaway.combloombergbriefs.combloombergchina.combloombergenvironment.combloombergforeducation.combloomberggovernment.combloombergindices.combloombergindustry.combloomberglabs.combloomberglaw.combloomberglive.combloomberglp.combloombergmedia.combloombergnext.combloombergpolarlake.combloombergprep.combloombergquint.combloombergradio.combloombergsef.combloombergspace.combloombergstatus.combloombergsurvey.combloombergtax.combloombergtax1.combloombergtaxtech.com!bloombergtradingchallenge.combloombergtv.mnbloombergvault.combloombergview.comblpcareers.com blpevents.comblpprofessional.com bmia.org bnef.combusinessweek.combusinessweekmag.com bwbx.io citylab.com gotraffic.netlondonmithraeum.comneweconomyforum.comnewenergyfinance.comquicktake.videotechatbloomberg.com tictoc.video  boxun.combowenpress.com breitbart.com +c-span.orgc-spanvideo.orgcabletv.com.hk i-cable.comcaijinglengyan.comcbs showtime cbs.comcbsaavideo.comcbscorporation.com cbsi.com +cbsi.video +cbsiam.com  cbsig.net +cbsimg.netcbsinteractive.comcbsistatic.com cbsivideo.com cbsnews.comcbspressexpress.com cbssports.com cbsstatic.com cbssvideo.com +viacbs.com +viacom.com viacomcbs.comviacomcbspressexpress.com paramount.comchinadecoding.comchinadigitaltimes.net cnbc.com +cnbcfm.com +nbcuni.comnbcudigitaladops.com cnn.com +cnn.io cnnarabic.com cnnlabs.com cnnmoney.ch cnnmoney.comcnnmoneystream.comcnnpolitics.com +cup.com.hk d100.net  anm.co.uk  dailym.aidailymail.co.uk dailymail.comdailymail.com.au dailymail.dkdailymailonline.comdmgmediaprivacy.co.ukmailhealth.commailonline.co.ukmailonline.commailonsunday.co.ukmailonsunday.ie metro.co.uk +mol.imthisismoney.co.uk +thismon.ee +dw.com dajiyuan.com dajiyuan.eu edninfo.com epoch.cloud epoch.org.il epochbuy.com epochcar.com epochhk.com epochmall.comepochmediagroup.com epochshop.comepochstories.com epochtime.comepochtimes-bg.comepochtimes-romania.comepochtimes.co.ilepochtimes.co.krepochtimes.co.ukepochtimes.comepochtimes.com.auepochtimes.com.brepochtimes.com.sgepochtimes.com.twepochtimes.com.ua epochtimes.cz epochtimes.de epochtimes.eu epochtimes.fr epochtimes.it epochtimes.jp epochtimes.nl epochtimes.pl epochtimes.ru epochtimes.seepochtimeshk.orgepochtimestr.com epochweek.comepochweekly.com erabaru.net +etviet.comlagranepoca.com ntd.com  ntdca.com +ntdimg.com ntdtv.ca ntdtv.co.kr  ntdtv.com ntdtv.com.tw ntdtv.jp ntdtv.kr  ntdtv.org ntdtv.ru ntdtvla.com  ntdvn.compersianepochtimes.comtheepochtimes.comtheepochtimessubscribe.comvelkaepocha.cz +forbes.com forbesimg.comfoxfox-corporation.com fox-news.com fox.com +fox.tv fox10.tv fox10news.comfox10phoenix.com  fox11.comfox13memphis.com fox13news.com  fox23.comfox23maine.com +fox247.com  fox247.tv  fox26.comfox26houston.comfox28media.com  fox29.comfox2detroit.com fox2news.com  fox32.comfox32chicago.comfox35orlando.comfox38corpuschristi.com fox42kptm.com  fox46.comfox46charlotte.com  fox47.com fox49.tv fox4news.com fox51tns.netfox5atlanta.com +fox5dc.com +fox5ny.com fox5storm.com fox6now.com fox7.comfox7austin.com fox9.comfoxacrossamerica.comfoxaffiliateportal.comfoxandfriends.com +foxbet.comfoxbusiness.comfoxbusiness.tvfoxbusinessgo.comfoxcanvasroom.comfoxcareers.comfoxcharlotte.com foxcincy.com foxcincy.jobs foxcincy.netfoxcollegesports.comfoxcorporation.comfoxcreativeuniversity.com foxcredit.com foxcredit.org foxd.tv +foxdcg.comfoxdeportes.comfoxdeportes.netfoxdeportes.tvfoxdigitalmovies.com foxdoua.comfoxentertainment.com +foxest.com +foxfaq.com +foxfdm.com foxfiles.com +foxinc.com foxkansas.com  foxla.com foxla.tvfoxlexington.comfoxmediacloud.com foxnation.comfoxnebraska.com +foxneo.comfoxneodigital.comfoxnetworks.infofoxnetworksinfo.com +foxnews.cc foxnews.com foxnews.net foxnews.org +foxnews.tvfoxnewsaffiliates.comfoxnewsaroundtheworld.comfoxnewsb2b.comfoxnewschannel.com foxnewsgo.net foxnewsgo.org foxnewsgo.tvfoxnewshealth.comfoxnewslatino.comfoxnewsmagazine.comfoxnewsnetwork.comfoxnewsopinion.comfoxnewspodcasts.comfoxnewspolitics.comfoxnewsradio.comfoxnewsrundown.comfoxnewssunday.com  foxon.comfoxphiladelphia.com foxpoker.com  foxrad.io foxredeem.comfoxrelease.comfoxrichmond.com foxrobots.comfoxsmallbusinesscenter.comfoxsmallbusinesscenter.netfoxsmallbusinesscenter.org foxsoccer.net foxsoccer.tvfoxsoccermatchpass.comfoxsoccerplus.comfoxsoccerplus.netfoxsoccerplus.tvfoxsoccershop.comfoxsports-chicago.comfoxsports-newyork.comfoxsports-world.com foxsports.cl foxsports.cofoxsports.co.ve foxsports.comfoxsports.com.arfoxsports.com.bofoxsports.com.brfoxsports.com.cofoxsports.com.ecfoxsports.com.gtfoxsports.com.mxfoxsports.com.pefoxsports.com.pyfoxsports.com.uyfoxsports.com.ve foxsports.gtfoxsports.info foxsports.netfoxsports.net.br foxsports.pe foxsports.sv foxsports.uyfoxsports2.comfoxsportsflorida.comfoxsportsgo.comfoxsportsla.comfoxsportsnetmilwaukee.comfoxsportsneworleans.comfoxsportsracing.comfoxsportssupports.comfoxsportsuniversity.comfoxsportsworld.comfoxstudiolot.com foxsuper6.com +foxtel.com foxtel.com.aufoxtelevisionstations.com  foxtv.com foxtvdvd.com  foxuv.comfoxweatherwatch.com  fssta.com +fxn.ws fxnetwork.comfxnetworks.com bentobox.tv kicu.tv ktvu.commyfoxsanfran.comafewmomentswith.com +anidom.comcasoneexchange.comcoronavirusnow.com +fse.tvgeraldoatlarge.comgooddaychicago.com joeswall.comkilmeadeandfriends.commaskedsingerfox.com +my13la.com +my20dc.commy20houston.com +my29tv.com my45.com  my9nj.commyfoxatlanta.commyfoxaustin.commyfoxboston.commyfoxcharlotte.commyfoxchicago.com myfoxdc.commyfoxdetroit.com myfoxdfw.commyfoxhouston.commyfoxhurricane.com myfoxla.commyfoxlosangeles.commyfoxlubbock.commyfoxmaine.com myfoxny.commyfoxorlando.commyfoxphilly.commyfoxphoenix.commyfoxtampa.commyfoxtampabay.commyfoxtwincities.com myfoxzone.com myq2.comnewsnowfox.comorlandohurricane.comparadisehotelquizfox.com q13.com +q13fox.comrealamericanstories.comrealamericanstories.inforealamericanstories.netrealamericanstories.orgrealamericanstories.tvrealmilwaukeenow.com rprimelab.comshopspeedtv.comsoccermatchpass.comspeeddreamride.comspeedfantasybid.comspeedracegear.com speedxtra.comteenchoice.com testonfox.comtheclasshroom.comthefoxnation.comthegeorgiascene.comwhatthefox.comwhosthehost.com wofl.tvwoflthenewsstation.com wogx.com foxnewsplayer-a.akamaihd.netfreebeacon.comgannett-cdn.com gannett.comgannettdigital.com usatoday.comusatodaynetworkservice.comthegatewaypundit.comglobalvoices.orgglobalvoicesonline.org  guo.media  gnews.org gtv.org gtv1.org g-tvapp.com hk01.com hkcnews.com hkopentv.com fantv.hkhongkongfp.comhuffingtonpost.cahuffingtonpost.co.ukhuffingtonpost.co.zahuffingtonpost.comhuffingtonpost.com.auhuffingtonpost.com.mxhuffingtonpost.dehuffingtonpost.eshuffingtonpost.frhuffingtonpost.grhuffingtonpost.inhuffingtonpost.ithuffingtonpost.jphuffingtonpost.kr huffpost.comhuffpostarabi.comhuffpostbrasil.comhuffpostmaghreb.com banned.video infowars.cominfowarsmedia.com inmediahk.netbusinessinsider.co.zabusinessinsider.combusinessinsider.com.aubusinessinsider.com.plbusinessinsider.debusinessinsider.esbusinessinsider.frbusinessinsider.inbusinessinsider.jpbusinessinsider.mxbusinessinsider.mybusinessinsider.nlbusinessinsider.sginsider-intelligence.com insider.cominsiderintelligence.com jfengtime.com landofhope.tvlocalpresshk.comfreedomplatform.tv londonreal.tv +ltn.com.tw yes123.com.tw macrumors.commalayalamanorama.com manorama.commanoramanews.commanoramaonline.commanoramayearbook.inonmanorama.com radiomango.fm  theman.in +theweek.invanitaonline.com +vanitha.invanithaveedu.com matters.news matters.one +medium.commedium.systems +myradio.hkmyradio.com.hkdreamworks.com cnbc.com +cnbcfm.com  msnbc.com +nbc.co nbc.com nbcnews.comnbcolympics.com nbcsports.com +nbcuni.comnbcuniversal.com s-nbcnews.com peacocktv.comuniversalorlando.comuniversalpictures.com&"universalpicturesinternational.com!universalstudioshollywood.com newscorp.com dowjones.com dowjones.iodowjoneson.com wsj.com wsj.net barrons.comandysparis.com newsmax.com +newsmax.in newsmaxtv.com newyorker.com +nikkei.com  nikkei.jp nikkei.co.jp now.com +now.com.hk nowe.com +now-tv.comnow-ashare.com +nypost.com nypost.helpnypostreprints.com nyt.com nyt.net nytchina.com nytcn.me  nytco.com nyti.ms nytimes.com nytstyle.comtimestalks.com aweencore.com  awetv.comherringnetwork.com oanencore.com oann.compassiontimes.hk qmap.pub realclear.comrealclearbooks.comrealcleardefense.comrealcleareducation.comrealclearenergy.orgrealclearfoundation.orgrealclearhealth.comrealclearhistory.comrealclearinvestigations.comrealclearlife.comrealclearmarkets.comrealclearpolicy.comrealclearpolitics.comrealclearpublicaffairs.comrealclearreligion.orgrealclearscience.comrealclearworld.comrealvision.com reuters.com +reuters.tvreutersmedia.net rfa.org +rfi.fr rsf.org +rt.com etvonline.hk rthk.hk +rtings.com scmp.com +i-scmp.comshuziyimin.orgsinoinsider.comsky sky.com skyassets.comskyoceanrescue.comskyoceanrescue.deskyoceanrescue.it skysports.com skysports.fr skysports.ieskysportsonline.comskysportsracing.com slashdot.org bayvoice.net ozvoice.org sohcradio.com sohfrance.orgsoundofhope.krsoundofhope.orgwanokokorosoh.com theguardiandev-guardianapis.comdev-theguardian.com +gu-web.netguardianapis.comguardianapps.co.uk +guim.co.uktheguardian.comtheguardiandns.comtheinitium.com  init.shopthenationalpulse.comthestandnews.comdreamteamfc.com  page3.comsunbingo.co.uk talksport.comthescottishsun.co.uk thesun.co.uk  thesun.ie thetype.cloud +cn thetype.comtypeisbeautiful.com udn.com +udn.com.twudnfunlife.com  unwire.hkamerikaninsesi.comamerikaninsesi.orgamerikaovozi.comamerikayidzayn.comamerikiskhma.com bbg.govdandalinvoa.com darivoa.comdengeamerika.comdengiamerika.comglasamerike.netgolos-ameriki.rugolosameriki.com insidevoa.com pashtovoa.com persagg.comradiyoyacuvoa.com urduvoa.com voa.govvoaafaanoromoo.comvoaafrique.comvoabambara.com voabangla.comvoacambodia.comvoacantonese.comvoachinese.comvoadeewanews.comvoadeewaradio.com voahausa.comvoaindonesia.com voakorea.comvoalingala.comvoandebele.com voanews.com +voanews.euvoanoticias.com voanouvel.comvoaportugues.com voashona.com voasomali.comvoaswahili.com voathai.comvoatibetan.comvoatibetanenglish.comvoatiengviet.com voatour.comvoazimbabwe.comzeriamerikes.com cstatic.net +curbed.com  eater.comfunnyordie.com meridian.net polygon.com +racked.com +recode.net sbnation.com theverge.com vox-cdn.com vox.comvoxcreative.comvoxfieldguide.com voxmedia.com +voxops.net warroom.orgwashingtonpost.com watchout.tw +waa.tw +wenzhao.castartupschool.orgycombinator.com youlucky.com +zaobao.com zaobao.com.sg  zaobao.sg +bgr.inbollywoodlife.comcareerfundas.comcricketcountry.com dnai.in dnaindia.com earngeek.com ekhindi.com +ind.sh  india.comindiancolleges.com itripto.com  oncars.in prepsure.comthehealthsite.com wionews.com yo1health.com zee.com +zeebiz.comzeeentertainment.com zeenews.com"zeenews-fonts.s3.amazonaws.com zerohedge.com zoomingin.tv + +LITV litv.tv + +OUPamamanualofstyle.com anb.org blackstonespoliceservice.com epigeum.com oed.com  omscr.com oup.com +ouplaw.com ox.ac.ukoxfordaasc.comoxfordartonline.comoxfordbibliographies.comoxfordclinicalpsych.com oxforddnb.comoxfordfirstsource.comoxfordhandbooks.comoxfordlawtrove.comoxfordmedicine.comoxfordmusiconline.comoxfordpoliticstrove.com oxfordre.comoxfordreference.comoxfordscholarlyeditions.comoxfordscholarship.comoxfordwesternmusic.comsipriyearbook.org ukwhoswho.com"universitypressscholarship.comveryshortintroductions.com ++ +RUBY ruby-lang.org rubygems.org +A +NYPOST +nypost.com nypost.helpnypostreprints.com + +VOLVO volvodynafleetonline.comescandinavia-arg.comindependentoperatorcn.com road-crew.com udfs.com vfsco.at vfsco.be vfsco.bg vfsco.ca vfsco.ch vfsco.cl vfsco.co.uk vfsco.co.za  vfsco.com vfsco.com.au vfsco.com.br vfsco.com.cn +cn vfsco.com.tr vfsco.cz vfsco.de vfsco.dk vfsco.ee vfsco.es vfsco.fi vfsco.fr vfsco.hu vfsco.ie vfsco.in vfsco.it vfsco.jp vfsco.kr vfsco.lt vfsco.lv vfsco.mx vfsco.nl vfsco.no vfsco.pe vfsco.pl vfsco.ro vfsco.ru vfsco.se vfsco.sk vfsco.us vgcareers.netvolvo-truck.nl volvo.cavolvo.cn +cn  volvo.com volvo.com.cn +cn volvo.sevolvobrandshop.com volvobuses.at volvobuses.be volvobuses.ca volvobuses.ch volvobuses.covolvobuses.co.nzvolvobuses.co.ukvolvobuses.co.zavolvobuses.comvolvobuses.com.arvolvobuses.com.auvolvobuses.com.brvolvobuses.com.kwvolvobuses.com.ptvolvobuses.com.tw volvobuses.de volvobuses.dk volvobuses.es volvobuses.fi volvobuses.fr volvobuses.hk volvobuses.hu volvobuses.in volvobuses.it volvobuses.jo volvobuses.kr volvobuses.ma volvobuses.mx volvobuses.my volvobuses.no volvobuses.om volvobuses.ph volvobuses.pk volvobuses.pl volvobuses.ru volvobuses.se volvobuses.sg volvobuses.tn volvobuses.us volvoce.comvolvodefense.com volvogroup.be volvogroup.cn +cnvolvogroup.comvolvogroup.com.brvolvogroup.com.cn +cn volvogroup.de volvogroup.fr volvogroup.jp volvogroup.kr volvogroup.mx volvogroup.nl volvogroup.pe volvogroup.pl volvogroup.ru volvogroup.sevolvogrouptruckcenter.nlvolvomerchandise.comvolvopenta.comvolvopenta.com.br volvopenta.de volvopenta.es volvopenta.fr volvopenta.it volvopenta.nl volvopenta.se volvopenta.usvolvosaatio.fivolvospares.comvolvotrucks.aevolvotrucks.alvolvotrucks.amvolvotrucks.atvolvotrucks.azvolvotrucks.bavolvotrucks.bevolvotrucks.bgvolvotrucks.byvolvotrucks.chvolvotrucks.clvolvotrucks.co.aovolvotrucks.co.bwvolvotrucks.co.ilvolvotrucks.co.mzvolvotrucks.co.navolvotrucks.co.ukvolvotrucks.co.nzvolvotrucks.co.zavolvotrucks.co.zmvolvotrucks.co.zwvolvotrucks.comvolvotrucks.com.arvolvotrucks.com.auvolvotrucks.com.bnvolvotrucks.com.brvolvotrucks.com.cn +cnvolvotrucks.com.covolvotrucks.com.kwvolvotrucks.com.ptvolvotrucks.com.trvolvotrucks.com.twvolvotrucks.com.uavolvotrucks.czvolvotrucks.devolvotrucks.dkvolvotrucks.eevolvotrucks.esvolvotrucks.fivolvotrucks.frvolvotrucks.gevolvotrucks.grvolvotrucks.hkvolvotrucks.hrvolvotrucks.huvolvotrucks.idvolvotrucks.involvotrucks.itvolvotrucks.jpvolvotrucks.kgvolvotrucks.krvolvotrucks.kzvolvotrucks.ltvolvotrucks.lvvolvotrucks.mavolvotrucks.mdvolvotrucks.mkvolvotrucks.mnvolvotrucks.myvolvotrucks.netvolvotrucks.nlvolvotrucks.novolvotrucks.pevolvotrucks.phvolvotrucks.pkvolvotrucks.plvolvotrucks.psvolvotrucks.qavolvotrucks.rovolvotrucks.rsvolvotrucks.ruvolvotrucks.sevolvotrucks.sgvolvotrucks.sivolvotrucks.skvolvotrucks.tmvolvotrucks.tnvolvotrucks.uyvolvotruckcenter.bevolvotruckcenter.dkvolvotruckcenter.esvolvotruckcenter.fivolvotruckcenter.itvolvotruckcenter.krvolvotruckcenter.kzvolvotruckcenter.nlvolvotruckcenter.novolvotruckcenter.sevolvotruckrental.beudtrucksmeena.com +6 +AGORA agora.io +agoraio.cn agoralab.co + +AMP amp.devampproject.comampproject.netampproject.orgcdn.ampproject.org +cnamp.akamaized.net + +CHIPHELL chiphell.com + +JAVHD  javhd.com +> +NOTION  notion.sonotion-static.com +notion.new + + +REALVISIONrealvision.com + +BLIZZARD blizzard.cn +cn blizzard.comblizzardgearstore.comblz-contentstack.com blzstatic.cn +cn +battle.netbattlenet.com.cn +cn bnet.163.com +cnblizzard.nefficient.co.krblzddist1-a.akamaihd.netblzddistkr1-a.akamaihd.netbnetcmsus-a.akamaihd.netbnetproduct-a.akamaihd.netbnetshopus.akamaized.net diablo3.comdiabloimmortal.comdi.res.netease.com +cn!diablo3.nosdn.127.net +cnfiresidegatherings.complayhearthstone.com%hearthstone.nosdn.127.net +cnheroesofthestorm.com%hearthstone.nosdn.127.net +cn"heroes.nos.netease.com +cnplayoverwatch.com#overwatch.nosdn.127.net +cn starcraft.comstarcraft2.comsc2.nosdn.127.net +cnplaywarcraft3.comworldofwarcraft.com wowchina.com +cnwow.nosdn.127.net +cnblizzcon-a.akamaihd.netblz.nosdn.127.net +cnblzmedia-a.akamaihd.netblznav.akamaized.net + + CHINATELECOM +ctexcel.ca ctexcel.comctexcel.com.hk +ctexcel.fr +ctexcel.us +189.cnchinatelecom-h.comchinatelecom.com.cnchinatelecomglobal.com +chntel.com + +CYGWIN +cygwin.com + +GEOLOCATION-!CNacadaeafagalamanaoaqaratauawaxazbabgbhbibjbmbnbobrbsbvbwbybzcacdcgclcmcrcucwcxcyczdedkdzecegehereseufifjfkfofrgagbgdgeghgiglgmgngrgsgtgugwgyhkhnhthuieiliniqirjejmjojpkekhkiknkpkrkwkykzlblclilklrlsltlulymamcmdmfmgmhmkmnmompmqmrmtmumwmxmymznancnenfngninlnonpnrnunzompapepfpgphplpnrerorurwsascsdsesgsisjskslsnsrssstsusvsxsysztctdtfthtjtktltmtntotptrtttwtzuaugukumusuyuzvavcvevgvivnvuwfytzazmzwaflmlbnbanflnra averybbbbcgcebcrsdnbdnpdunsdvagerni globalxice locus mckinsey olayangroup +olayan praxisapseek +vistaprint vistawtc xerox athletabananarepublic  bloomberg boots calvinklein cartier chloegap gucci +hermesiwcjlc  lancaster lipsyloft mango  montblanc mrporter +netaporter +nextdirectnextnike oldnavy omega panerai  patagonia +piaget  piperlimepolo redstone +swatchaarp +abbott +abbvie aetna alcon +anthembms +boehringer caremore +cialis dabur  freseniusjnj merck mutuelle +sanofiaeg +airbus +alstom +aramco +blanco bosch +bostik +chesapeakechk crown +doosan +dupontflirfls flsmidth  gecompany grainger hitachi  honeywellifm ipirangajio komatsukoneksb  kuokgroup leclerclidl linde lottemanmtr reliance rexrothril rockwoolrwesandvikcoromant sandvik sapphiresca +schaeffler schmidt schwarzgroup schwarz senersewsncf statoil total +vanish +walter +warman weberweir woodsidezara zippo agakhanakdn +ansons +bharti +extraspace genting glean ikano +imamat  ladbrokes +livestrongmaif +mattel shell transformersvanawme astriumcern +emerck  hisamitsu lilly lundbeck lupin merckmsdmsdmtpc +otsuka +pfizer stadateva toray weather auspost deutschepostdhl epost fedex +pitneyaaa +abarthadac  alfaromeoaudi bentleybmw bridgestone bugatti buick cadillaccase +caseih  chevrolet chevy chrysler +datsun dodge +dunlop ferrarifiat  firestonefordgmc goodyear honda hyundai infiniti iveco +jaguarjeepkia lamborghini +lancia  landrover lexus lincoln maseratimini +mitsubishi mopar +newholland +nissanramseatsrt +suzuki +tatamotors +toyotatvs uconnect +volkswagen volvoaigo android apple bestbuy brother canondell digikey fujitsu  fujixerox  goldpointibm nikon nokia olympus  panasonic philips pioneer samsung sharpsony toshiba  yodobashi  allfinanzallfinanzberaterallfinanzberatungallyamericanexpressamexampanz banamex barclaycard barclaysbbtbbvabnl +bnpparibasbofa bradesco +capitalone cashbackbonuscbacfa chasecimb citadelciti commbank deloitte discover everbank fidelity hdfcbankhdfchsbcitaujcbjll jpmorganchase jpmorgankfhkpmg lacaixa lasalle lixil lplfinanciallplnab nadex netbanknorthwesternmutualopen +pictetpncpohl  pramerica +prudentialprupwcsaxosbiscbscor shriram softbank  statebank temasek +transunion ubankubs vanguardvisa wolterskluwerafamilycompany  aquarellediyduck +finish glade  homedepot  homegoods mrmuscleoffraid rightathome  scjohnsonaig allstateamericanfamily amfam amicaaxa chartis esurance farmers  goodhands guardian guardianlife iselect metlifemma +mutual +nationwide +nissaynorthlandinsurance +onyourside progressive redumbrella  statefarm +swiftcover thehartfordtiaatravelersinsurance  travelers travelguardtrvvig beats blockbusterbway netflix playstation showtimetab williamhillxboxasda bloomingdales +george  homesense justforulego macys  marshallsobiqvc safeway samsclub shopyourway staples +targetthd tiffany +tjmaxxtjx +tkmaxxvons walmartabb  accentureaceraco +active +airtel +amazonandaolawsaxis azure chatr +chrome cisco comcast +connectorscscdclkdish +docomodtvdwg emerson epson ericsson etisalat  fairwindsfido +flickr frogans frontierftrgbizgeaggeegle gmailgmogmx godaddygoog +googlegoogreeguge hangouthkt hotmailhtc +hughesieee iinet infosysinfy intel +intuitjavajcpjmpjprs juniperkddi +kindle +konamikpn lanxess liaison +lockermeo  microsoftmihmiimint mitekmit +mobily +mozaicmtn multichoice naspersnec neustar nexusnico +nortonntt +officeollo +oracle +orangeovh patchpayupccwqtel quest  richardli ricoh +rogers +sakurasaposassessfrshaw skolkovo skydrive skype sling smart stcgroupstc symantectatatcitdk telecity +telefonica terra translations  ultrabook unicornuol verisignvivavivo windows xfinity +xperia yahoo yamaxun +yandex yellowpages youtube +zappos +chanel clinique garnier  kerastase +kiehls lamer lancome +loreal +matrix +maybelline +natura origins +redkensvr barefoot beknown cityeatscookingchannel +cuisinella delmonte edekafage ferrero foodnetworkfood gallo heinz +kindermcd  mcdonalds pamperedchef +rocher +wilmarxn--3oq18vl8pn36axn--55qx5d8y0buji4b870uxn--5su34j936bgsgxn--b4w605ferd xn--cckwcxetd +xn--cg4bkixn--dkwm73cwpn xn--flw351exn--fzys8d69uvgmxn--hxt035cmppuelxn--hxt035czzpfflxn--j6w470d71isscxn--jlq480n2rgxn--jlq61u9w7bxn--kcrx77d1x4axn--kcrx7bb75ajk3bxn--mgba3a3ejtxn--mgba7c0bbn0axn--mgbaakc7dvfxn--mgbb9fbpob xn--ngbe9e0a xn--pgb3ceoj xn--qcka1pmcxn--w4r85el8fhu5dnra xn--w4rs40l avianca caravan changiairport cipriani clubmed delta firmdale +hilton hyatt kerryhotelskerrylogisiticskerryproperties marriott orientexpress  shangrila tradershotelstui +viking +virgin +webjetablecbre chintai  frontdoor +lefrakabc africamagicartebbc  canalpluscbncbsdstv +eurovisionfox +gallup globogotv guardianmediahbohgtvimdbitv +kyknetmnet movistar mzansimagicnhk nowtvsbs sevensky spiegel starhub +supersport theguardian travelchannelweatherchannel bauhaus latrobe +monashrmit pubmatic.compubmatic.co.jpads.pubmatic.com +ads taboola.com ahmia.fi akasha.worldbrowserleaks.combypasscensorship.org citizenlab.cacitizenlab.orgdat.foundationdemocracy.earth eff.orgepicbrowser.com ffprofile.comfreenetproject.org fteproxy.org  gfw.press +gfw.reportapplecensorship.comfreebrowser.orgfreewechat.com freeweibo.com greatfire.orgguardianproject.infohaveibeenpwned.compwnedpasswords.com +geti2p.net ipfs.io  jitsi.orggetlantern.org +lantern.io  ntc.partyonionshare.org ooni.org openvpn.netprivacytools.io psiphon3.comshadowsocks.org softether.orgsoftether-download.com stunnel.org telex.cctorproject.org tribler.org tunsafe.comtwister.net.co +uproxy.org  v2ray.com +v2ray.cool  v2fly.org vuvuzela.io +whonix.org wikileaks.org wireguard.com +zeronet.ioartstation.comartstationmedia.com drbl.in dribbble.com dynacw.co.jp +dynacw.com dynacw.com.cn dynacw.com.hk dynacw.com.tw +flickr +flickr.com +flickr.netstaticflickr.com  fonts.com  fonts.netfontsinuse.comgettyimages.aegettyimages.atgettyimages.begettyimages.cagettyimages.chgettyimages.co.jpgettyimages.co.nzgettyimages.co.ukgettyimages.comgettyimages.com.augettyimages.com.brgettyimages.com.mxgettyimages.degettyimages.dkgettyimages.esgettyimages.figettyimages.frgettyimages.hkgettyimages.iegettyimages.ingettyimages.itgettyimages.nlgettyimages.nogettyimages.ptgettyimages.se glyphsapp.comjiyu-kobo.co.jpfontexplorerx.com fontbook.com fontshop.comfstopimages.com40fontshop-prod-responsive-images.s3.amazonaws.com linotype.com myfonts.com myfonts.net monotype.commonotypeimaging.com bitstream.com itcfonts.commorisawa.co.jptypesquare.com +pin.it +pinimg.com pinterest.at pinterest.be pinterest.ca pinterest.ch pinterest.cl pinterest.copinterest.co.atpinterest.co.inpinterest.co.krpinterest.co.nzpinterest.co.uk pinterest.compinterest.com.aupinterest.com.bopinterest.com.ecpinterest.com.mxpinterest.com.pepinterest.com.pypinterest.com.uypinterest.com.vn pinterest.de pinterest.dk pinterest.ecpinterest.engineering pinterest.es pinterest.fr pinterest.hu pinterest.id pinterest.ie pinterest.inpinterest.info pinterest.it pinterest.jp pinterest.kr pinterest.mx pinterest.nl pinterest.nz pinterest.pe pinterest.ph pinterest.pt pinterest.ru pinterest.se pinterest.th pinterest.tw pinterest.uk pinterest.vnpinterestmail.comrealtype.co.jp realtype.jptypenetwork.comtypography.com webtype.commini4myminicard.comaboutyourmini.comatlantaminidealers.comgreatergothammini.com!midatlanticbmwmotorcycles.commini-abudhabi.commini-antilles.frmini-bahrain.commini-bosnia.com mini-clubs-international.commini-connected.atmini-connected.bemini-connected.chmini-connected.co.ukmini-connected.commini-connected.czmini-connected.demini-connected.dkmini-connected.eemini-connected.esmini-connected.fimini-connected.frmini-connected.iemini-connected.itmini-connected.ltmini-connected.lumini-connected.lvmini-connected.nlmini-connected.nomini-connected.plmini-connected.ptmini-connected.semini-corporate-sales.com mini-coupe.camini-dubai.com +mini-e.commini-egypt.commini-georgia.commini-grouparchiv.demini-grouparchive.commini-jordan.com mini-ksa.commini-kuwait.commini-lebanon.com mini-me.com mini-oman.commini-qatar.commini-srilanka.commini-stjohns.camini-stjohns.commini-tahiti.commini-vietnam.commini-windsor.camini-windsor.com mini.am mini.at mini.be mini.bg mini.by mini.ca mini.cc mini.ch mini.cl +mini.co.cr +mini.co.id +mini.co.il +mini.co.kr +mini.co.me +mini.co.th +mini.co.uk +mini.co.za mini.com mini.com.ar mini.com.bn mini.com.br mini.com.co mini.com.cy mini.com.do mini.com.ec mini.com.gr mini.com.gt mini.com.hr mini.com.mk mini.com.mo mini.com.mt mini.com.mx mini.com.pa mini.com.pe mini.com.ph mini.com.pl mini.com.py mini.com.sg mini.com.tr mini.com.tw mini.com.uy mini.cz mini.de mini.dk mini.dz mini.es mini.fi mini.fr mini.gp mini.hu mini.ie mini.in mini.is mini.it mini.jp mini.kz mini.lu mini.ma mini.md mini.mq mini.mu mini.my mini.nc mini.nl mini.no mini.pt mini.re mini.ro mini.rs mini.ru mini.se mini.si mini.sk mini.tm mini.tn mini.ua +mini101.caminiargentina.comminibrossard.caminibrossard.com minicanada.caminicaribbean.com miniccrc.ca minicooper.caminidealer.comminidealernet.comminidowntown.caminidowntown.com minidrivingexperienceusa.com minidurham.caminidurham.com  minie.com +minifs.comminigeorgian.caminigrandriver.comminihalifax.caminihalifax.com +minihk.comminiinvasion.caminiitalianjob.comminikelowna.caminikelowna.comminilangley.caminilangley.com minilat.com minilaval.ca minilaval.com minilondon.ca minilondon.cominimarkham.caminimarkham.comminimoncton.caminimoncton.comminimontrealcentre.caminimontroyal.caminimontroyal.comminimotoringrewards.comminimotoringschool.comminimotorsport.commininanaimo.camininanaimo.comminioakville.comminiofmonrovia.comminipetfriendly.comminirichmond.caminirichmond.comminisaskatoon.caminisaskatoon.com minishop.ca minispace.comminispecialoffers.caminispygear.comministcatharines.caministeagathe.comministjohns.caminitakesthestates.comminitoronto.caminitroisrivieres.ca miniusa.comminiusaservice.comminiusatires.comminivalueservice.comminivancouver.caminivaughanwest.caminivaughanwest.comminivictoria.caminivictoria.comminivilledequebec.caminivilledequebec.comminiwholesaleconnect.com miniwidget.caminiwindsor.comminiworkshop.comminiyaletown.capugetsoundmini.comshopminiusa.comsouthfloridamini.com +trmini.comtroisrivieresmini.comyours-customised.mini.combmwapprovedusedbmw.combaltimorebmw.combayareabmw.combmw-abudhabi.combmw-adventskalender.combmw-albania.combmw-antilles.frbmw-art-journey.combmw-arts-design.com bmw-asia.com bmw-auslieferungszentrum.combmw-authority-vehicles.combmw-bahrain.combmw-businessdrive.combmw-calgary.ca bmw-carit.debmw-classic.combmw-clubs-international.combmw-connected-drive.combmw-connecteddrive.aebmw-connecteddrive.atbmw-connecteddrive.bebmw-connecteddrive.bgbmw-connecteddrive.cabmw-connecteddrive.chbmw-connecteddrive.co.nzbmw-connecteddrive.co.ukbmw-connecteddrive.co.zabmw-connecteddrive.combmw-connecteddrive.com.aubmw-connecteddrive.com.brbmw-connecteddrive.com.cybmw-connecteddrive.com.hrbmw-connecteddrive.com.kwbmw-connecteddrive.com.mtbmw-connecteddrive.czbmw-connecteddrive.debmw-connecteddrive.dkbmw-connecteddrive.eebmw-connecteddrive.esbmw-connecteddrive.fibmw-connecteddrive.frbmw-connecteddrive.grbmw-connecteddrive.hubmw-connecteddrive.iebmw-connecteddrive.itbmw-connecteddrive.jpbmw-connecteddrive.krbmw-connecteddrive.ltbmw-connecteddrive.lubmw-connecteddrive.lvbmw-connecteddrive.mxbmw-connecteddrive.mybmw-connecteddrive.nlbmw-connecteddrive.nobmw-connecteddrive.plbmw-connecteddrive.ptbmw-connecteddrive.robmw-connecteddrive.rubmw-connecteddrive.sebmw-connecteddrive.sgbmw-connecteddrive.sibmw-connecteddrive.skbmw-connecteddrive.twbmw-corporate-sales.combmw-diplomatic-sales.combmw-driving-center.co.krbmw-drivingexperience.com bmw-dubai.com +bmw-eg.com bmw-fleet.net bmw-ghana.combmw-golfsport.com bmw-group.com bmw-group.netbmw-grouparchiv.debmw-grouparchives.com +bmw-gta.cabmw-i-pure-impulse.com bmw-i.jp bmw-int1.com bmw-iraq.combmw-jordan.combmw-konzernarchiv.de bmw-ksa.combmw-kuwait.com +bmw-lao.labmw-lebanon.combmw-m-safetycar.com  bmw-m.combmw-mdrivetour.com +bmw-me.combmw-military-sales.combmw-motorcycle.combmw-motorcycles.vnbmw-motorrad-abudhabi.com bmw-motorrad-authorities.combmw-motorrad-dubai.combmw-motorrad-motorsport.com!bmw-motorrad-now-or-never.com&"bmw-motorrad-service-inclusive.combmw-motorrad-test-ride.combmw-motorrad.atbmw-motorrad.bebmw-motorrad.bgbmw-motorrad.bhbmw-motorrad.bobmw-motorrad.cabmw-motorrad.chbmw-motorrad.clbmw-motorrad.cobmw-motorrad.co.idbmw-motorrad.co.krbmw-motorrad.co.nzbmw-motorrad.co.thbmw-motorrad.co.ukbmw-motorrad.co.zabmw-motorrad.combmw-motorrad.com.arbmw-motorrad.com.aubmw-motorrad.com.brbmw-motorrad.com.dobmw-motorrad.com.hrbmw-motorrad.com.mxbmw-motorrad.com.mybmw-motorrad.com.pebmw-motorrad.com.pybmw-motorrad.com.trbmw-motorrad.crbmw-motorrad.czbmw-motorrad.debmw-motorrad.dkbmw-motorrad.dzbmw-motorrad.ecbmw-motorrad.eebmw-motorrad.esbmw-motorrad.fibmw-motorrad.frbmw-motorrad.grbmw-motorrad.gtbmw-motorrad.hubmw-motorrad.inbmw-motorrad.itbmw-motorrad.jpbmw-motorrad.lubmw-motorrad.mabmw-motorrad.nlbmw-motorrad.nobmw-motorrad.pabmw-motorrad.plbmw-motorrad.ptbmw-motorrad.robmw-motorrad.rsbmw-motorrad.rubmw-motorrad.sabmw-motorrad.sebmw-motorrad.sibmw-motorrad.skbmw-motorrad.svbmw-motorrad.twbmw-motorrad.uabmw-motorrad.uybmw-motorsport.combmw-mountains.combmw-museum.combmw-museum.netbmw-nigeria.com bmw-oman.com bmw-ottawa.cabmw-pakistan.combmw-plant-munich.combmw-pma.com.sgbmw-powertrain.combmw-product-highlights.com bmw-qatar.combmw-routes.com +bmw-rp.combmw-rrdays.combmw-saudiarabia.combmw-security-vehicles.combmw-special-sales.combmw-sports.com bmw-sudan.combmw-tahiti.combmw-tunisia.combmw-vancouver.ca bmw-voli.me bmw-welt.com bmw-welt.net bmw-welt.tvbmw-werk-berlin.de bmw-world.com bmw-world.net bmw-world.tvbmw-worldfinal.combmw-yachtsport.com +bmw-yeg.ca bmw-yemen.com +bmw.am +bmw.at +bmw.az +bmw.ba +bmw.bb +bmw.be +bmw.bg +bmw.bm +bmw.bs +bmw.by +bmw.ca +bmw.cc +bmw.ch +bmw.cl  bmw.co.ao  bmw.co.cr  bmw.co.id  bmw.co.il  bmw.co.jp  bmw.co.ke  bmw.co.kr  bmw.co.nz  bmw.co.th  bmw.co.uk  bmw.co.za bmw.com +bmw.com.ar +bmw.com.au +bmw.com.bd +bmw.com.bn +bmw.com.bo +bmw.com.br +bmw.com.cn +cn +bmw.com.co +bmw.com.cy +bmw.com.do +bmw.com.ec +bmw.com.ge +bmw.com.gt +bmw.com.kh +bmw.com.ky +bmw.com.mk +bmw.com.mo +bmw.com.mt +bmw.com.mx +bmw.com.my +bmw.com.ni +bmw.com.pa +bmw.com.pe +bmw.com.ph +bmw.com.py +bmw.com.sg +bmw.com.sv +bmw.com.tr +bmw.com.tw +bmw.com.uy +bmw.com.ve +bmw.cw +bmw.cz +bmw.de +bmw.dk +bmw.dz +bmw.ee +bmw.es +bmw.fi +bmw.fr +bmw.gp +bmw.gr +bmw.hn +bmw.hr +bmw.ht +bmw.hu +bmw.ie +bmw.in +bmw.is +bmw.it +bmw.kg +bmw.kz +bmw.lc +bmw.lk +bmw.lt +bmw.lu +bmw.lv +bmw.ly +bmw.ma +bmw.md +bmw.mn +bmw.mq +bmw.mu +bmw.nc +bmw.nl +bmw.no +bmw.pl +bmw.ps +bmw.pt +bmw.re +bmw.ro +bmw.rs +bmw.se +bmw.si +bmw.sk +bmw.sn +bmw.tm +bmw.tt +bmw.ua +bmw.uz +bmw.vn bmwarchiv.at bmwarchiv.debmwartjourney.com bmwasia.combmwauslieferungszentrum.com bmwbikes.com  bmwbkk.de +bmwccrc.cabmwcenternet.combmwchampionship.combmwchampionshipusa.combmwcharitygolf.combmwcitychallenge.combmwclassic.combmwcolorado.combmwconnecteddrive.combmwcustomapparel.com bmwdcsnet.netbmwdealercareers.combmwdealerdirect.combmwdelawarevalley.com bmwfilms.combmwgroup-classic-heart.combmwgroup-classic.combmwgroup-gaad.combmwgroup-plants.combmwgroup-posdigital.combmwgroup-werke.com bmwgroup.at bmwgroup.com bmwgroup.net bmwgroup.jobsbmwgroupclassic.combmwgroupdesignworks.combmwgroupdirect.combmwgroupfs.combmwgroupinfobahn.combmwgroupna.com  bmwhk.com bmwi.ca bmwi.jpbmwiventures.combmwjamaica.com +bmwlat.combmwlifestyle.ca bmwm.combmwmagazine.combmwmagazine.de bmwmass.com bmwmass.net  bmwmc.netbmwmontreal.cabmwmotorcycles.combmwmotorcycleusa.combmwmotorrad.co.krbmwmotorrad.com.aubmwmotorrad.com.phbmwmotorrad.com.sgbmwmotorradhk.combmwmotorshowblog.combmwmotorsport.combmwmperformance.com bmwmuseum.netbmwmyanmar.combmwofannapolis.combmwofcentralpa.combmwoftulsa.combmwondemandusa.com bmworegon.combmwperformancecenter.combmwpittsburgh.combmwproductnews.com bmwsafari.com +bmwsfl.com +bmwsfl.net +bmwshop.cabmwspecialoffers.ca bmwsports.combmwstartupgarage.com bmwstep.combmwstepconnections.combmwsummerschool.combmwtampabay.com +bmwusa.combmwusatires.combmwusaservice.combmwusfactory.combmwusrideracademy.combmwvalueservice.combmwwholesaleconnect.com bmwworld.com bmwworld.net bmwworld.tvbmwzentrum.combrand-protection-team.comcencoastbmw.com chargenow.comchargenowusa.comchicagolandbmw.comconnected-drive.com daytonbmw.comdealerspeed.net desertbmw.com dreambmw.ca grupobmw.com guambmw.comhackthedrive.com hawaiibmw.com iaablog.comlasvegasbmw.com m-power.comminneapolisbmw.comminneapolisbmw.netmotorshowblog.com mybmw.ca  mybmw.comnewhampshirebmw.com  nmbmw.comocbmwdealers.comoffresspecialesbmw.ca park-now.com parkinfo.com +pdxbmw.com +phxbmw.compre-bmwgroup.jobspugetsoundbmw.com rentaride.com rentaride.derhodeislandbmw.comsdcountybmw.comshopbmwmotorcycles.comshopbmwusa.com socalbmw.comstlouisbmw.netthe-m-festival.comtristatebmw.comvancouverbmwretailers.cawashingtondcbmw.com alfera.com.hk alfera.com.my  alfera.in  alfera.myalphera-finance.co.inalphera-finance.com.hkalphera-finance.in +alphera.ca alphera.co.in alphera.co.nz alphera.comalphera.com.esalphera.com.hkalphera.com.my +alphera.de +alphera.es +alphera.ie +alphera.in +alphera.my alphera.netalpherafinance.com.hkalpherafinancialservices.esalpherafinancialservices.in alpherafs.caalpherafs.co.nzalpherafs.com.hkalpherafs.com.my alpherafs.ie alpherafs.in alpherafs.my premiumfs.de alphabet.asia alphabet.at alphabet.be alphabet.biz alphabet.chalphabet.co.hualphabet.co.ukalphabet.co.za alphabet.comalphabet.com.cn +cnalphabet.com.esalphabet.com.lvalphabet.com.mxalphabet.com.plalphabet.com.pt alphabet.cz alphabet.de alphabet.es alphabet.eu alphabet.fr alphabet.info alphabet.jp alphabet.lt alphabet.lu alphabet.lv alphabet.mxalphabet.net.cn +cn alphabet.noalphabet.org.uk alphabet.pl alphabet.pt alphabet.uk alphabet.usalphabetfinance.netelectricluxury.comrolls-roycecullinan.comrolls-roycemotorcars.comrolls-roycemotorcarsna.com  rrtis.comspiritofecstasy.com bridgestone  bandag.cc +bandag.comblizzak-juken.jpbookmybridgestonetyre.combridgestone-asiapacific.combridgestone-bandag.combridgestone-brand.com#bridgestone-business-service.jpbridgestone-korea.co.krbridgestone-plt-eng.combridgestone-tac-oman.combridgestone.clbridgestone.cn +cnbridgestone.co.crbridgestone.co.idbridgestone.co.inbridgestone.co.jpbridgestone.co.thbridgestone.combridgestone.com.arbridgestone.com.brbridgestone.com.cn +cnbridgestone.com.cobridgestone.com.mxbridgestone.com.sgbridgestone.com.twbridgestone.com.vnbridgestoneamericas.combridgestonearena.combridgestonecntc.combridgestonecomercial.clbridgestonecomercial.co.crbridgestonecomercial.com.arbridgestonecomercial.com.brbridgestonecomercial.com.cobridgestonecomercial.com.mxbridgestonegolf.combridgestonegz.combridgestonela.combridgestonemarketing.combridgestonemerchandise.com bridgestonenationalfleet.combridgestoneperformance.com#bridgestoneperformancemedia.net bridgestonerapiddelivery.combridgestonerewards.combridgestonesyb.combridgestonetire.cabridgestonetire.combridgestonetyre.com.mybridgestonevan.combridgestonewx.combs-adreview.com bs-awh.ne.jp  bsw.co.jp +bsw.jpcarcare-and-tireshop.jpdaytontrucktires.com ecoforme.jp gcrtires.comjsbridgestone.commenshin-channel.com monitrix.net mr-tireman.jpmybridgestoneeducation.com playz.jp +potenza.jpprodrive-japan.comstore-bridgestonesports.com thetread.com tiresplus.com cfna.combastropfirestone.comcrossfitfirestone.com firestone.clfirestone.co.crfirestone.com.arfirestone.com.brfirestone.com.cofirestone.com.mxfirestonebpco.comfirestonecomercial.clfirestonecomercial.co.crfirestonecomercial.com.arfirestonecomercial.com.brfirestonecomercial.com.cofirestonecomercial.com.mx!firestonecompleteautocare.comfirestonedrivestore.comfirestoneip.comfirestonerewards.comfirestonetire.cafirestonetire.comhibdontire.comwheelworks.netnokiantyres.cn +cnnokiantyres.com solarcity.comtesla.cn +cn  tesla.com tesla.com.cn +cnteslamotors.cn +cnteslamotors.comteslamotors.com.cn +cntesla-cdn.thron.cn +cntesla-cdn.thron.com volvodynafleetonline.comescandinavia-arg.comindependentoperatorcn.com road-crew.com udfs.com vfsco.at vfsco.be vfsco.bg vfsco.ca vfsco.ch vfsco.cl vfsco.co.uk vfsco.co.za  vfsco.com vfsco.com.au vfsco.com.br vfsco.com.cn +cn vfsco.com.tr vfsco.cz vfsco.de vfsco.dk vfsco.ee vfsco.es vfsco.fi vfsco.fr vfsco.hu vfsco.ie vfsco.in vfsco.it vfsco.jp vfsco.kr vfsco.lt vfsco.lv vfsco.mx vfsco.nl vfsco.no vfsco.pe vfsco.pl vfsco.ro vfsco.ru vfsco.se vfsco.sk vfsco.us vgcareers.netvolvo-truck.nl volvo.cavolvo.cn +cn  volvo.com volvo.com.cn +cn volvo.sevolvobrandshop.com volvobuses.at volvobuses.be volvobuses.ca volvobuses.ch volvobuses.covolvobuses.co.nzvolvobuses.co.ukvolvobuses.co.zavolvobuses.comvolvobuses.com.arvolvobuses.com.auvolvobuses.com.brvolvobuses.com.kwvolvobuses.com.ptvolvobuses.com.tw volvobuses.de volvobuses.dk volvobuses.es volvobuses.fi volvobuses.fr volvobuses.hk volvobuses.hu volvobuses.in volvobuses.it volvobuses.jo volvobuses.kr volvobuses.ma volvobuses.mx volvobuses.my volvobuses.no volvobuses.om volvobuses.ph volvobuses.pk volvobuses.pl volvobuses.ru volvobuses.se volvobuses.sg volvobuses.tn volvobuses.us volvoce.comvolvodefense.com volvogroup.be volvogroup.cn +cnvolvogroup.comvolvogroup.com.brvolvogroup.com.cn +cn volvogroup.de volvogroup.fr volvogroup.jp volvogroup.kr volvogroup.mx volvogroup.nl volvogroup.pe volvogroup.pl volvogroup.ru volvogroup.sevolvogrouptruckcenter.nlvolvomerchandise.comvolvopenta.comvolvopenta.com.br volvopenta.de volvopenta.es volvopenta.fr volvopenta.it volvopenta.nl volvopenta.se volvopenta.usvolvosaatio.fivolvospares.comvolvotrucks.aevolvotrucks.alvolvotrucks.amvolvotrucks.atvolvotrucks.azvolvotrucks.bavolvotrucks.bevolvotrucks.bgvolvotrucks.byvolvotrucks.chvolvotrucks.clvolvotrucks.co.aovolvotrucks.co.bwvolvotrucks.co.ilvolvotrucks.co.mzvolvotrucks.co.navolvotrucks.co.ukvolvotrucks.co.nzvolvotrucks.co.zavolvotrucks.co.zmvolvotrucks.co.zwvolvotrucks.comvolvotrucks.com.arvolvotrucks.com.auvolvotrucks.com.bnvolvotrucks.com.brvolvotrucks.com.cn +cnvolvotrucks.com.covolvotrucks.com.kwvolvotrucks.com.ptvolvotrucks.com.trvolvotrucks.com.twvolvotrucks.com.uavolvotrucks.czvolvotrucks.devolvotrucks.dkvolvotrucks.eevolvotrucks.esvolvotrucks.fivolvotrucks.frvolvotrucks.gevolvotrucks.grvolvotrucks.hkvolvotrucks.hrvolvotrucks.huvolvotrucks.idvolvotrucks.involvotrucks.itvolvotrucks.jpvolvotrucks.kgvolvotrucks.krvolvotrucks.kzvolvotrucks.ltvolvotrucks.lvvolvotrucks.mavolvotrucks.mdvolvotrucks.mkvolvotrucks.mnvolvotrucks.myvolvotrucks.netvolvotrucks.nlvolvotrucks.novolvotrucks.pevolvotrucks.phvolvotrucks.pkvolvotrucks.plvolvotrucks.psvolvotrucks.qavolvotrucks.rovolvotrucks.rsvolvotrucks.ruvolvotrucks.sevolvotrucks.sgvolvotrucks.sivolvotrucks.skvolvotrucks.tmvolvotrucks.tnvolvotrucks.uyvolvotruckcenter.bevolvotruckcenter.dkvolvotruckcenter.esvolvotruckcenter.fivolvotruckcenter.itvolvotruckcenter.krvolvotruckcenter.kzvolvotruckcenter.nlvolvotruckcenter.novolvotruckcenter.sevolvotruckrental.beudtrucksmeena.com mastercard.ae mastercard.at mastercard.az mastercard.ba mastercard.be mastercard.bg mastercard.by mastercard.ca mastercard.ch mastercard.cl mastercard.cn +cnmastercard.co.idmastercard.co.ilmastercard.co.inmastercard.co.jpmastercard.co.kemastercard.co.krmastercard.co.nzmastercard.co.thmastercard.co.ukmastercard.co.vemastercard.co.zamastercard.commastercard.com.armastercard.com.aumastercard.com.bhmastercard.com.brmastercard.com.bzmastercard.com.cn +cnmastercard.com.comastercard.com.cymastercard.com.egmastercard.com.gemastercard.com.gtmastercard.com.hkmastercard.com.kwmastercard.com.lbmastercard.com.mxmastercard.com.mymastercard.com.ngmastercard.com.pemastercard.com.phmastercard.com.samastercard.com.sgmastercard.com.trmastercard.com.twmastercard.com.vemastercard.com.vn mastercard.cz mastercard.de mastercard.dk mastercard.es mastercard.eu mastercard.fi mastercard.fr mastercard.gr mastercard.hr mastercard.hu mastercard.iemastercard.inc mastercard.it mastercard.jo mastercard.ke mastercard.kz mastercard.lu mastercard.md mastercard.my mastercard.nl mastercard.no mastercard.om mastercard.pl mastercard.pt mastercard.qa mastercard.ro mastercard.rs mastercard.ru mastercard.se mastercard.si mastercard.sk mastercard.ua mastercard.usareyoucreditwise.comborderlessprepaid.combranchportal.com idservice.incinclusivegrowthscore.com findacard.com mastercad.commastercard-email.commastercardacademy.commastercardadvisors.commastercardcenter.commastercardcenter.org*&mastercardcenterforinclusivegrowth.orgmastercardconnect.commastercardezsavings.commastercardidtheftalerts.commastercardrestaurant.commastercardservices.commastercardworldwide.commasterpassteststore.commasterintelligence.commcpeaceofmind.commyaccountglobalcash.commycardbenefits.comonedinesfree.com paypass.netpieceofplastic.compredictivetechnologies.com priceless.com pricelessmarketingengine.comsbitravelcard.comshoppercentre.com!smartcommunitiescoalition.com!smartcommunitiescoalition.org startpath.comtaptotokyo.comtasteofpremium.jptravelcontroller.comwwwpaypass.combecomeindex.comcashpassport.cacashpassport.co.zacashpassport.comcashpassport.com.brcashpassport.netcorporatecashpassport.comicashpassport.com.mxintercamcashpassport.com.mx!multicurrencycashpassport.comshinhangmc.commastercardbiz.camastercardbiz.com!mastercardbusinessnetwork.com +nab.com.aunabtravellercard.com.au 53world.com53worldsweeps.comlovethiscity.commastercardmoments.compahabicilemezsurprizler.com priceless.compriceless.com.cn +cn priceless.orgpricelessafrica.compricelessarabia.compricelessaruba.compricelessbeijing.cn +cnpricelessbeijing.com#pricelessbeijing.com.cn +cnpricelesshongkong.compricelesshonolulu.compricelesspick.compricelesssantiago.compricelesssydney.compricelesssurprises.compricelesstoronto.capricelesstv.com simplify.comsimplifycommerce.comcashpassportglobe.comgwktravelex.nl travelex.be travelex.bh travelex.catravelex.co.intravelex.co.jptravelex.co.nztravelex.co.uk travelex.comtravelex.com.autravelex.com.cn +cntravelex.com.hktravelex.com.mytravelex.com.omtravelex.com.tr travelex.de travelex.fr travelex.it travelex.qatravelexae.comtravelexch.comtravelexmoneycard.combidvestbank.co.zaworldcurrencycard.co.zanab.demdex.net&"nationalaustraliaban.tt.omtrdc.netaccount-paypal.infoaccount-paypal.netaccount-paypal.orgaccountpaypal.comaccountpaypal.netaccountpaypal.org anfutong.cn +cn anfutong.comanfutong.com.cn +cn beibao.cn +cn +beibao.com beibao.com.cn +cn bill-safe.combillmelater.combillmelater.infobillmelater.net bml.infobuyfast-paysmart.net cashify.comdevtools-paypal.comexperiencebillmelater.comfundpaypal.com +gmoney.org +i-o-u.infologin-paypal.comlogin-paypal.infomywaytopay.infomywaytopay.net +pa9pal.com paaypal.com  paily.net  paily.org +paipal.com +pavpal.com paydiant.com paylike.com +paypa1.com +paypa1.org paypaal.compaypal-activate.compaypal-activate.infopaypal-activate.orgpaypal-apac.compaypal-apps.compaypal-biz.compaypal-brandcentral.compaypal-business.compaypal-business.netpaypal-business.orgpaypal-cardcash.compaypal-cash.compaypal-center.compaypal-center.infopaypal-center.netpaypal-center.orgpaypal-communication.compaypal-communications.compaypal-communications.netpaypal-community.compaypal-community.netpaypal-comunidad.compaypal-corp.compaypal-database.compaypal-database.uspaypal-donations.compaypal-dynamic.compaypal-engineering.compaypal-europe.compaypal-excelinvoicing.compaypal-exchanges.compaypal-forward.compaypal-galactic.compaypal-gift.compaypal-gifts.compaypal-gpplus.compaypal-here.compaypal-hrsystem.compaypal-innovationlab.compaypal-integration.compaypal-japan.compaypal-knowledge.compaypal-labs.compaypal-latam.compaypal-learning.compaypal-login.compaypal-login.infopaypal-login.orgpaypal-login.uspaypal-luxury.compaypal-mainstreet.netpaypal-marketing.compaypal-media.compaypal-merchantloyalty.compaypal-mobilemoney.compaypal-network.orgpaypal-notice.compaypal-notify.compaypal-online.infopaypal-online.netpaypal-online.orgpaypal-optimizer.compaypal-pages.compaypal-photocard.compaypal-plaza.compaypal-portal.compaypal-prepagata.compaypal-prepagata.netpaypal-prepaid.compaypal-profile.compaypal-proserv.compaypal-qrshopping.orgpaypal-recargacelular.compaypal-redeem.compaypal-referral.compaypal-retail.compaypal-scoop.compaypal-search.compaypal-secure.netpaypal-secure.orgpaypal-security.netpaypal-security.orgpaypal-service.orgpaypal-signin.compaypal-signin.uspaypal-special.compaypal-specialoffers.compaypal-sptam.compaypal-support.compaypal-survey.compaypal-survey.orgpaypal-status.compaypal-team.compaypal-viewpoints.net  paypal.ca +paypal.com paypal.com.cn +cn paypal.com.hk paypal.com.sg  paypal.hk paypal.info  paypal.jp  paypal.me paypal.net.cn +cn paypal.org.cn +cn  paypal.so  paypal.uspaypalbeacon.compaypalbenefits.compaypalbrasil.compaypalcommunity.cn +cnpaypalcommunity.compaypalcommunity.netpaypalcommunity.orgpaypalcorp.compaypalcredit.compaypalcreditcard.compaypalgivingfund.org paypalhere.cn +cnpaypalhere.compaypalhere.com.cn +cnpaypalhere.infopaypalhere.netpaypalhere.org paypalhere.tv paypali.net paypalinc.compaypalindia.compaypalinsuranceservices.org paypall.compaypallabs.com paypalme.com paypalnet.net paypalnet.orgpaypalnetwork.infopaypalnetwork.netpaypalnetwork.orgpaypalobjects.compaypalonline.netpaypalonline.orgpaypalprepagata.compaypalprepagata.netpaypalservice.compaypalshopping.compaypalshopping.netpaypalsurvey.com paypalx.com paypaly.com payppal.com payypal.compdncommunity.com +pp-soc.com ppaypal.com  pppds.com pypl.com  pypl.info pypl.net pypl.tvsecure-paypal.infosecurepaypal.info sslpaypal.orgthepaypalshop.comtheshoppingexpresslane.netwww-paypal.info www-paypal.usxn--bnq297cix3a.cn +cnbraintreegateway.combraintreegateway.tvbraintreepayments.combraintreepayments.infobraintreepayments.orgbraintreepayments.tv!braintreepaymentsolutions.combraintreeps.combriantreepayments.netbriantreepayments.tv card.iogetbraintree.com krakenjs.comloanbuilder.comswiftcapital.com simility.com cashify.netswiftbank.info swiftbank.usswiftfinancial.comswiftfinancial.infoswiftfinancial.netvenmo-touch.com  venmo.com +venmo.info  venmo.net  venmo.org  cash2.comfilipino-music.net +s-xoom.comwebmoneyinfo.com2.wiremoneytoirelandwithxoomeasierandcheaper.com wwwxoom.comxoom-experience.com xoom.com xoom.io xoom.net.cn +cn xoom.us xoomcom.comvenmo.s3.amazonaws.com softbank sb-mobile.jpsb-telecom.netsoftbank-ipo.comsoftbank-jp.comsoftbank-robotics.comsoftbank-telecom.comsoftbank-telecom.net softbank.jp softbank.tvsoftbankbb.comsoftbankbb.netsoftbankci.comsoftbankhawksstore.jpsoftbankmobile.netsoftbankrobotics.comsoftbanktelecom.comsoftbankusa.netsoftbankventuresasia.comsoftbankworld.com +stripe.comstripe.network stripecdn.com visa.be visa.ca visa.clvisa.cn +cn +visa.co.ao +visa.co.cr +visa.co.id +visa.co.il +visa.co.in +visa.co.jp +visa.co.ke +visa.co.ni +visa.co.nz +visa.co.th +visa.co.uk +visa.co.ve +visa.co.za visa.com visa.com.ag visa.com.ai visa.com.ar visa.com.au visa.com.az visa.com.bo visa.com.br visa.com.bs visa.com.bz visa.com.cn +cn visa.com.co visa.com.cy visa.com.dm visa.com.do visa.com.ec visa.com.ge visa.com.gt visa.com.gy visa.com.hk visa.com.hn visa.com.hr visa.com.jm visa.com.kh visa.com.kn visa.com.kz visa.com.lc visa.com.lk visa.com.ms visa.com.mx visa.com.my visa.com.ng visa.com.pa visa.com.pe visa.com.ph visa.com.pr visa.com.py visa.com.ru visa.com.sg visa.com.sv visa.com.tr visa.com.tt visa.com.tw visa.com.ua visa.com.uy visa.com.vc visa.com.vi visa.com.vn visa.cz visa.de visa.dk visa.es visa.fi visa.fr visa.gd visa.gp visa.gr visa.hk visa.hu visa.ie visa.is visa.ky visa.lt visa.lv visa.mn visa.mq visa.nl visa.no visa.pl visa.pt visa.ro visa.se visa.sk visa.so visa.sx visa.tc +visabg.com visaeurope.at visaeurope.ch visaeurope.lu visaeurope.sivisaitalia.com visakorea.comvisamiddleeast.comvisasoutheasteurope.comfinlitsummit.orgmyvisaluxuryhotels.comvisainfinite.cavisainfiniteluxuryhotels.ca!visaluxuryhotelcollection.com$ visaluxuryhotelcollection.com.br$ visaluxuryhotelcollection.com.mxvisaluxuryhotels.comvisaluxuryhotels.com.arvisasignaturehotels.com($connaissancesfinancierespratiques.ca dnsvisa.comeubluecardvisa.comfinancialsoccer.ca"financialsoccer.com.cn +cnlightbridge.commiamifintechfestival.commhshosting.compracticalbusinessskills.compracticalmoneyskills.ca#practicalmoneyskills.cn +cn'practicalmoneyskills.com.cn +cnpracticalmoneyskills.jpsoccerfinancier.catorcidadeouro.com vaultify.com vaultify.info vaultify.net visa-atm.com visa-news.jp visabank.orgvisabusinessinsights.comvisacarddesignlab.com visacards.comvisacheckout.netvisacheckout.orgvisaconciergelac.comvisadigital.comvisadigitalconcierge.com visadns.comvisadpsonline.usvisaeverywhereshop.comvisafintechfasttrack.comvisafulfillment.comvisagiftcard.usvisaglobalfinance.comvisaicsdirect.comvisainfinite.cavisainfinite.cn +cn visanet.net +visapay.cn +cnvisapcsdirect.comvisaplatinum.cn +cnvisaplatinum.com.cn +cn visaplus.comvisasavingsedge.cavisasignature.co.kr visb.org ak1.net +aka-ai.com +aka-ai.net akacrypto.net akadeem.net +akadns.com akadns6.net +akaeai.com +akafms.net akahost.net +akaint.net akam.net +akamaa.com +akamah.com +akamak.com +akamam.comakamai-access.comakamai-access.netakamai-cdn.com akamai-platform-internal.netakamai-platform-staging.comakamai-platform.netakamai-regression.netakamai-staging.netakamai-sucks.netakamai-thailand.comakamai-thailand.netakamai-trials.com akamai.co.kr +akamai.com +akamai.netakamaientrypoint.netakamaietpcnctest.com#akamaietpcompromisedcnctest.com'#akamaietpcompromisedmalwaretest.comakamaietpmalwaretest.comakamaietpphishingtest.comakamaihd-staging.net akamaihd.com akamaihd.netakamaimagicmath.netakamainewzealand.comakamaiphillipines.comakamaiphillipines.netakamaitech.comakamaitech.netakamaitechnologies.comakamaitechnologies.netakamaisingapore.netakamaized-staging.net akamaized.netakamaizercentral.com +akamci.com  akami.com  akami.net +akamii.com +akamqi.com akastream.com akastream.net +akatns.net iamakamai.com iamakamai.netsoasta-dswb.com +srtcdn.netcloudflare-dns.comcloudflare-ipfs.comcloudflare.comcloudflare.netcloudflareapps.comcloudflarebolt.comcloudflareclient.comcloudflareinsights.comcloudflareok.comcloudflareresolve.comcloudflaressl.comcloudflarestatus.comcloudflarestream.comcloudflaretest.com one.one.onetrycloudflare.comvideodelivery.net  warp.plus workers.dev +fastly.com +fastly.netfastlylabs.com fastlylb.netfastly-terrarium.com +zencdn.net  imgix.com  imgix.net pagecdn.com +pagecdn.io quantil.com stackpath.com stackpath.devbuypass-ssl.com buypass.com +buypass.no +buypass.se minid.no +comodo.com comodoca.com comodoca2.com comodoca3.com comodoca4.comcybertrust.co.jpcybertrust.ne.jp digicert.comdigitalcertvalidation.com freessl.com geotrust.com rapidssl.com +thawte.com  thawte.de  thawte.fr entrust.netentrustdatacard.comglobalsign-media.com globalsign.be globalsign.chglobalsign.co.ukglobalsign.comglobalsign.com.auglobalsign.com.hkglobalsign.com.sg globalsign.es globalsign.eu globalsign.frglobalsign.net globalsign.nl!secure.globalsign.com +cnocsp.globalsign.com +cn ocsp2.globalsign.com +cn identrust.comidentrust.co.uk identrust.netletsencrypt.org secom.co.jpsecomtrust.net sectigo.comenterprisessl.comhackerguardian.cominstantssl.comoptimumssl.compositivessl.com digital-id.ch digitalid.chmanaged-pki.chmanaged-pki.de pki-post.ch pki-posta.ch pki-poste.chroot-signing.chrootsigning.comssl-certificate.ch +swissid.ch swissign.com swissign.liswisssign-group.chswisssign-group.comswisssign-group.li swisssign.ch swisssign.com swisssign.li swisssign.net swisssign.orgswisssigner.chswisssigner.comswisssigngroup.chswisssigngroup.comswissstick.com swisstsa.ch swisstsa.li trustdoc.ch trustsign.ch zert.ch telekom.com +telekom.de trustwave.com verisign.asia verisign.biz verisign.chverisign.co.inverisign.co.uk verisign.comverisign.com.auverisign.com.brverisign.com.cnverisign.com.esverisign.com.hkverisign.com.sgverisign.com.twverisign.com.vn verisign.de verisign.dk verisign.es verisign.fr verisign.hk verisign.in verisign.info verisign.jobs verisign.mobi verisign.name verisign.net verisign.org verisign.pro verisign.se verisign.sg verisign.tw verisign.us verisign.vnverisigninc.com +discord.co discord.com +discord.gg discord.gift discord.gifts discord.media discord.newdiscordapp.comdiscordapp.netdiscordstatus.com freenode.net +lin.ee line.me line.naver.jp line-apps.com line-cdn.net line-scdn.net +nhncorp.jp +signal.art +signal.orgsignalusers.orgslack-edge.comslack-imgs.com  slack.com +slackb.comslackcertified.com slackdemo.com slackhq.com contest.com  graph.orgquiz.directoryt.me tdesktop.com +telega.one +telegra.ph telegram.dog telegram.me telegram.orgtelegram.space +telesco.pe +tg.dev tx.meusercontent.dev asproex.comasproexapi.combinance.charity binance.cloud binance.combinance.vision binancezh.com bnbstatic.com yshyqxx.com +bitbank.cc bitcoin.org bitfinex.com bitflyer.com bitflyer.jp +bitmex.com bitquick.co bisq.io bisq.network bitsquare.io bitstamp.net bittrex.com btcbox.co.jp +cex.io coinbase.com coinone.co.krcoinonecore.comcoinonecorp.com dogecoin.com +devcon.orgethereum.foundation ethereum.org +hbabit.com +hbfile.net  huobi.com huobi.me  huobi.pro huobi.sc huobiasia.viphuobigroup.comhuobitoken.com +kraken.comlocalbitcoins.comlocalbitcoinschain.com okex.com +paxful.com +zb.app +zb.com zb.io zb.live  adidas.at  adidas.be  adidas.ch adidas.co.in adidas.co.uk +adidas.com adidas.com.cn +cn adidas.com.sa adidas.com.tw  adidas.cz  adidas.de  adidas.dk  adidas.hu  adidas.ie  adidas.it  adidas.nl  adidas.pl  adidas.ru  adidas.se bby.combbycastatic.ca bbycloud.combbycontent.combbycontent.net bbyintl.com bbystatic.com  bbyurl.us bestbhy.combestbuy-audio.com"bestbuy-communityrelations.combestbuy-giftcard.infobestbuy-int.combestbuy-jobs.com +bestbuy.ca +bestbuy.cn +cn bestbuy.combestbuy.com.cn +cnbestbuy.com.mx bestbuy.infobestbuy24x7solutions.combestbuybusiness.com'#bestbuybusinessadvantageaccount.combestbuycanada.cabestbuycanada.combestbuycanadaltd.cabestbuycharityclassic.combestbuycoffeemakers.combestbuyethics.combestbuyforbusiness.cabestbuygsm.combestbuyideax.com!bestbuyphotoworkshoptours.combestbuyrewards.combestbuyrewardzone.ca bestbuys.combestbuysgeeksquad.combestbuysolutions.netbestbuystores.combestbuytradein.com bestbuyus.com besztbuy.com bextbuy.combienvenuechezbestbuy.ca cowboom.com futureshop.cainitproducts.commagnoliaav.com.cn +cn mybestbuy.commybestbuyclaims.commyrewardzone.com myrz.compacifickitchenandhome.comtiendabestbuy.comunbrandedproducts.comwelcometobestbuy.cawolfatbestbuy.comwolfatbestbuy.netwww-bestbuystores.comgeek-squad-support.comgeek-squad.netgeek-squad.orggeek-squads.net geeksquad.ca geeksquad.cc geeksquad.com geeksquad.net geeksquad.tvgeeksquadcares.comgeeksquadcentral.comgeeksquadforums.comgeeksquadonline.comgeeksquadprotectionplan.orggeeksquadservices.orggeeksquadwebroot.org gscanada.info +gsccdn.com  gslink.usonlinegeeksquad.comrocketfishproducts.com dealtree.orgtechliquidators.com +booking.cn +cn booking.com bstatic.comcostco-static.com +costco.comcostcobusinessdelivery.comcraigslist.org dmm.com  dmm.co.jpdmm-extension.com21centuryaccess.com4ebaytraders.com adcommerce.cn +cn adcommerce.tv appforebay.cn +cnappsonebay.net +asebay.com +baazee.com +bidbay.combidorbuyindia.com billpoint.combillpoint.info billpoint.tv billpoint.usbillpointnewzealand.com blogebay.combookclubcorner.combuiltfromebay.com buyitnow.com buyitnow.net buyitnow.org buyitnow.tvbuyitnowshop.net cafr.ca carebay.comcargigileads.com  cebay.comcollective99.comcommerceos.comconnectcommerce.cn +cn"connectcommerce.com.cn +cnconnectcommerce.hkconnectcommerce.infoconnectcommerce.tv connectedcommerce.cn +cnconnectedcommerce.comconnectedcommerce.tvcrececonebay.comcreditcardsbay.com cyber-bay.cn +cncyber-bay.com.cn +cncyber-bay.info cyber-bay.org +dba.dk dealbay.com dealtime.com  didce.com  douya.orgdreamtoplay.com  e-bay.com e-bay.it  e-bay.net eachpay.com eachpay.net  ebahy.comebay-authenticate.netebay-confirm.comebay-course.com ebay-cz.comebay-delivery.comebay-discoveries.comebay-fashion.com ebay-inc.com ebay-inc.net ebay-inc.orgebay-online.comebay-sales.comebay-stories.com ebay-us.comebay-vacation.com ebay.at ebay.be ebay.ca ebay.chebay.cn +cn +ebay.co.nz +ebay.co.uk +ebay.co.ve +ebay.co.za ebay.com ebay.com.ar ebay.com.au ebay.com.cn +cn ebay.com.ec ebay.com.hk ebay.com.mt ebay.com.my ebay.com.ph ebay.com.sg ebay.de ebay.es ebay.fr ebay.ie ebay.in ebay.it ebay.jp ebay.lt ebay.mn ebay.net.cn +cn ebay.nl ebay.org ebay.org.cn +cn ebay.ph ebay.pk ebay.pl ebay.sg ebay.us ebay.vn +ebay.yn.cn +cn +ebay.zj.cn +cn +ebay25.com +ebay68.com  ebaya.com ebayads.com ebayads.netebayadvertising.cn +cnebayadvertising.comebayanunsios.netebayauction.comebayaustralia.comebayauthenticate.com.cn ebaybags.com ebaybank.comebaybenefits.comebayboutique.com +ebayca.com +ebayca.org ebaycafe.com ebaycar.comebaycareers.com ebaycbt.co.kr ebaycdn.net ebaychina.netebayclassifiedsgroup.comebayclassifieds.cn +cnebayclassifieds.com"ebayclassifieds.com.cn +cnebayclassifieds.infoebayclassifieds.orgebayclassifieds.tvebayclassifiedsgroup.comebayclassifiedsgroup.infoebayclassifiedsgroup.orgebayclassifies.com ebayclub.com ebaycoins.com ebaycom.comebaycommercenetwork.comebaycourse.com  ebayd.com +ebayde.com ebaydesc.cn +cnebaydesc.com.cn +cnebaydlassifieds.com +ebaydns.cn +cn ebaydts.com ebayedu.comebayeletro.comebayenterprise.cn +cnebayenterprise.com!ebayenterprise.com.cn +cnebayenterprise.infoebayenterprise.netebayenterprise.tv ebayetc.comebayexpress.sgebayfashion.comebayfashion.netebayforcharity.orgebayforeclosure.orgebayfrance.comebayglobalshipping.com ebaygroup.com ebayhabit.com ebayheels.com ebayhots.com ebayimg.com ebayinc.com ebayinc.net ebayinc.org ebayincconnectedcommerce.netebayinkblog.comebayinternetsalestax.com +ebayit.comebayjewelry.com ebayjob.com +ebayla.orgebaylisting.com ebaylocal.netebaylocationsdevacances.com ebaymag.comebaymainstreet.com ebaymall.comebaymarketplace.net ebaymotors.ca ebaymotors.cn +cnebaymotors.comebaymotors.com.cn +cnebaymotors.orgebaymotorsblog.com ebaynow.com ebaynyc.com +ebayon.com +ebayon.netebayoncampus.com ebayopen.comebayopensource.comebayopensource.netebaypakistan.net ebaypark.com ebayparts.com ebaypedia.cn +cnebaypedia.com.cn +cnebayprivacycenter.com +ebayqq.com ebayradio.com ebayrtm.comebayseller.comebayshoesstore.com ebayshop.comebayshop111.comebayshopping.cn +cnebayshopping.com.cn +cnebayshopping.orgebaysocial.com ebaysocial.ru ebaysoho.com ebaysohos.com ebaystatic.cn +cnebaystatic.com ebaystore.comebaystore77.com ebaystores.cn +cn ebaystyle.comebaysweden.com  ebayt.comebaytechblog.comebaytopratedseller.netebaytrading.comebaytradingassistant.com +ebaytv.org ebayuae.netebayvakantiehuizen.com ebayvalet.comebayvietnam.netebayworlds.com  ebayy.com edisebay.com  eebay.com epinions.comeu-consumer-empowerment.comexpertmaker.comfairmarket.comfragrancebay.comfrancemail.com half.com half.com.cn +cn half.tvhalfcanada.com halfjapan.comhandbagsoutletebay.com  iebay.com irribay.comitsbetterwhenyouwinit.com liketwice.comliveauction.com milofetch.com musicbay.netmyconstructionworld.net +myebay.com  nebay.net paisapay.cc paisapay.info paisapay.tv premobay.comprivatemarketplaces.netprivatemarketplaces.us prostores.cn +cn prostores.comprostores.com.cn +cn rethink.net shopibay.net shoping.comsourcingforebay.com.cnsourcingforebay.netsourcingforebay.tv speybay.comstoresense.com +svpply.com telebay.com telesell.com texttobuy.orgtheebayshop.comtheopportunityproject.orgtowerauction.com  vendu.com weareebay.comwatch-ebay.org wwwdecide.com wwwebay.com wwwebay.net wwwwebay.com xindelu.comxn--3et96bj49ahpq.comxn--4vq475g.comxn--4vq477m.comxn--7hv594h.comxn--7hvy28f.cn +cnxn--hb4aw0g.comxn--q41am8x.comxn--qoq462m.comxn--tkry91n.comxn--ubt498knmf.comxn--xsq421m.comxn--xsq605n.comxn--xsq959n.comxn--yf1at58a.com  xxbay.com  yibei.orggittigidiyor.netgittigidiyorsikayet.com +gumtree.sg  jijiji.ca kiji.ca kijii.ca kijij.ca  kijiji.ca kijijiauto.cakijijiautos.ca kijijidns.cn +cnkijijidns.com.cn +cnkijijiforbusiness.ca +kijijii.ca kijijiraps.ca kijji.ca +kijjiji.ca automobile.fr  mobile.demobileinternational.com&mobileinternational.com.cn +cn +q10.jp qoo10.jpachievementanalytics.comcdn-terapeak.comlistinganalytics.netmarketexecutive.net tearapeak.com terapeack.com terapeak.ca terapeak.cn +cn terapeak.comterapeak.com.hk terapeak.hk terapeak.info teraperk.com terrapeak.com thebayuk.com +nexcat.com nexpart.com +nexpart.tv renchead.comwhisolutions.com wrenchead.com-)ebay-25-assets.s3-us-west-1.amazonaws.comfarfetch-apps.comfarfetch-contents.com farfetch.cn +cn farfetch.comfarfetch.com.cn +cn farfetch.netfarfetch.net.cn +cn  fflnk.net gfashion.com guccichimeforchange.orggucci.cn +cn  gucci.comguccimuseo.comguccitimeless.comregiongold.com +hm.com hm.com.cn +cnhomedepot-static.com homedepot.comikea.cn +cn ikea.com ikea.net  ingka.com  ingka.devingkacentres.comloveminiso.com.br miniso-au.com miniso-bh.com miniso-np.com miniso-nz.com  miniso.by  miniso.ca miniso.cn +cn  miniso.co miniso.co.id miniso.co.tz +miniso.com miniso.com.es miniso.com.gr miniso.com.mx miniso.com.pl miniso.com.py miniso.com.tr  miniso.ge  miniso.ie  miniso.jp  miniso.ma  miniso.my  miniso.pe  miniso.pk  miniso.ua  miniso.uz minisohome.cn +cnminisoindia.comminisojordan.comminisokorea.comminisolife.co.zaminisothailand.comminisovietam.vn minsio.cn +cn myminiso.com muji.com muji.com.cn +cn muji.com.hk muji.eu muji.net muji.tw muji.us mujikorea.netnikeair-nike-shoes.com airmax360.combeijingnike.combetternike.combuynikechina.comcheap-nike.comcheapnikedunks.comcheapnikeoutlet.comclassicnike.comcnnikebrand.comcustomnikeshoes.com easynike.com +eenike.comfashionnike.com finenike.comfoampositeshoes.comgoldnikeclub.com +gonike.comhandbags-nike.comhightopnikes.com +idnike.cominikesneakers.com just-do-it.cn +cn justdoit.uskicksnike1.comkidsnikeshoes.com +mynike.comnike-air-max.comnike-dunksb.com nike-fr.com nike-org.com nike-shox.cn +cn nike-uk.com nike-us.com nike-usa.com nike.cinike.cn +cn nike.com nike.com.br nike.com.hk nike.gy nike.hk  nike.shop nike.usnike.xn--hxt814e nike0594.com +nike23.comnikeadidas.comnikeairhuarache.comnikeairmax.comnikeairmaxs.comnikeairmaxshoes.comnikeairrift.com nikeasia.comnikeaustralia.com nikeaw77.com  nikeb.com nikebbn.comnikebetrue.comnikebetterworld.cn +cnnikebetterworld.com"nikebetterworld.com.cn +cnnikebetterworld.infonikebetterworld.netnikebetterworld.org nikebiz.info nikebuy.com +nikeby.com nikecdn.comnikecompany.comnikeconfluence.com nikechina.cn +cnnikechosen.com nikecloud.com nikeclub.com nikecraft.com nikedawn.com nikedunks.netnikedunksshoes.com nikeelite.comnikefactorystore.com nikefind.com nikefirm.comnikefoamposites.comnikefoampositeshoes.comnikefootballcleats.comnikefootballgloves.comnikefootballjersey.comnikefoundation.org +nikefr.comnikefrance.com nikefree.comnikefreeshoes.comnikefuelband.comnikegadgets.comnikegenealogy.com nikegolf.ca nikegolf.cn +cn nikegrid.com nikehelp.comnikehightops.comnikehyperdunk.com nikeid.cn +cn nikeid.com.cn +cnnikeidshoes.com nikeinc.comnikeinc.com.cn +cnnikeincchemistry.comnikeinstock.com +nikeit.comnikeitalia.com nikeitaly.com +nikekd.com nikekid.com +nikelab.cn +cnnikelab.com.cn +cn nikelink.comnikeliuxiang.cn +cnnikeliuxiang.comnikeliuxiang.com.cn +cn nikelives.comnikelunarglide.com nikemall.cn +cnnikemall.com.cn +cnnikemarketing.com nikenews.com +niken7.comnikeonlinestore.comnikeoutletstore.comnikeoutletstores.comnikepioneer.com nikeplus.com nikeplus.org nikepress.com nikeprice.comnikeproduct.comnikepromax.comnikeresponsibility.comnikereuseashoe.comnikerunclub.cn +cnnikerunclub.com.cn +cnnikerunner.comnikerunning.com.cn +cnnikerunningshoes.com +nikesb.comnikesbdunks.netnikeseason.comnikeselling.comnikesellorder.comnikeshoemarket.comnikeshoes-store.comnikeshoes21.comnikeshoes4u.comnikeshoescity.comnikeshoesgroup.comnikeshoesinc.comnikeshoesmarket.comnikeshoesretro.comnikeshoeswon.comnikeshoponline.comnikeshoxsale.com nikesku.comnikesnowboarding.comnikesoccercleats.comnikesportswear.comnikestares.com nikestore.cn +cn nikestore.comnikestore.com.aunikestyles.com nikeswim.comniketaiwan.netniketracking.comniketradeweb.comniketrainer.comniketrainers.comniketraining.com nikeusa.com nikewear.com  nikey.com nikezoom.com nke6.comoutletnike.com runnike.comrunningnike.comsale-nikeshoes.comstatic-nike.com swoo.sh +swoosh.com  swoosh.tvthedailysnkr.comverygoodnike.comwomensnikeshox.comxn--74q035i.xn--hxt814e nordstrom.comnordstrommedia.com shopee.cn +cn shopee.co.id shopee.co.th +shopee.com shopee.com.br shopee.com.my  shopee.ph  shopee.sg  shopee.tw  shopee.vnshopeemobile.com shopeesz.com +cn +shp.ee +target +target.comtargetimg1.com walmart wal-mart.com +wal.cowalmart-content.com walmart.comwalmart.pharmacywalmartimages.com +wmt.cobetterexplained.com brilliant.org apa.orgpsyccareers.com cambridge.org"cambridgeschoolshakespeare.comcambridgedigital.netcambridgemaths.orgnewisiknowledge.comisiknowledge.com clarivate.comwebofknowledge.comwebofscience.com doi.org doi.info els-cdn.comelsevier-ae.com elsevier.com elsevier.ioengineeringvillage.com  evise.com +scopus.comscholar.google.aescholar.google.atscholar.google.bescholar.google.bgscholar.google.cascholar.google.catscholar.google.chscholar.google.clscholar.google.cnscholar.google.co.crscholar.google.co.idscholar.google.co.ilscholar.google.co.inscholar.google.co.jpscholar.google.co.krscholar.google.co.nzscholar.google.co.thscholar.google.co.ukscholar.google.co.vescholar.google.co.zascholar.google.comscholar.google.com.arscholar.google.com.auscholar.google.com.boscholar.google.com.brscholar.google.com.coscholar.google.com.cuscholar.google.com.doscholar.google.com.ecscholar.google.com.egscholar.google.com.gtscholar.google.com.hkscholar.google.com.lyscholar.google.com.mxscholar.google.com.myscholar.google.com.nischolar.google.com.pascholar.google.com.pescholar.google.com.phscholar.google.com.pkscholar.google.com.prscholar.google.com.pyscholar.google.com.sgscholar.google.com.svscholar.google.com.trscholar.google.com.twscholar.google.com.uascholar.google.com.uyscholar.google.com.vnscholar.google.czscholar.google.descholar.google.dkscholar.google.esscholar.google.fischolar.google.frscholar.google.grscholar.google.hnscholar.google.hrscholar.google.huscholar.google.isscholar.google.itscholar.google.lischolar.google.ltscholar.google.luscholar.google.lvscholar.google.nlscholar.google.noscholar.google.plscholar.google.ptscholar.google.roscholar.google.ruscholar.google.sescholar.google.sischolar.google.sk ic.ac.ukimperial.ac.ukimperialbusiness.schoolimperial.insendi.commit mit.edu mit.netmitpressjournals.orgamamanualofstyle.com anb.org blackstonespoliceservice.com epigeum.com oed.com  omscr.com oup.com +ouplaw.com ox.ac.ukoxfordaasc.comoxfordartonline.comoxfordbibliographies.comoxfordclinicalpsych.com oxforddnb.comoxfordfirstsource.comoxfordhandbooks.comoxfordlawtrove.comoxfordmedicine.comoxfordmusiconline.comoxfordpoliticstrove.com oxfordre.comoxfordreference.comoxfordscholarlyeditions.comoxfordscholarship.comoxfordwesternmusic.comsipriyearbook.org ukwhoswho.com"universitypressscholarship.comveryshortintroductions.comserialssolutions.com proquest.comsciencedirect.comsciencedirectassets.com +apress.com springer.comspringerlink.comspringernature.com wkap.nl tandf.co.uktandfonline.comtaylorandfrancis.comtaylorfrancis.com +aclweb.org acm.org acs.org altmetric.comanalytictech.comannualreviews.org  arxiv.org asha.org berkeley.edubiomedcentral.com biorxiv.org  brill.com cell.com cmu.educomputingreviews.com degruyter.comdentalhypotheses.comelifesciences.org europepmc.orgfrontiersin.org gale.com galegroup.com  ggsrv.com hindawi.com informs.org iop.orgisca-speech.orgjamanetwork.comjapanknowledge.comjbe-platform.com jmlr.org jneurosci.org  jstor.org kuke.comlawdata.com.twliteratumonline.com mdpi.com +nature.com nejm.org neurology.org ovid.com  peerj.comphysiology.org plos.org pnas.org princeton.eduresearchgate.netroutledgehandbooks.comroyalsocietypublishing.org rsc.org sagepub.comscholarpedia.orgsciencemag.orgscientificamerican.com scitation.orgsilverchair-cdn.comspiedigitallibrary.orgstatsmakemecry.com thelancet.com uchicago.edu ucla.edu  umass.edu  wiley.com yale.educern ams02.space cern.ch cixp.netdotcernpilot.info  ippog.orglinearcollider.orgchinapower.csis.org code.orgcodecademy.comcoursera-for-business.orgcoursera.community coursera.help coursera.org edx.org edx-cdn.org +egghead.iofreecodecamp.orgkhanacademy.org kastatic.org +knovel.com laracasts.commasterclass.com mzed.com oreil.ly oreilly.comoreilly.com.cn +cnoreilly.revieworeillystatic.com +orl.ly sitepoint.comskillshare.com ted.com +tedcdn.com udacity.com  udemy.com udemycdn.com w3schools.com abema.io abema.tv  adx.promo ameba.jp amebame.com amebaownd.comamebaowndme.com  ameblo.jp bucketeer.jpdokusho-ojikan.jp hayabusa.dev hayabusa.iohayabusa.media winticket.jpabematv.akamaized.net#ds-linear-abematv.akamaized.net ao3.orgarchiveofourown.orgarchiveofourown.comarchiveofourown.net +att.tv atttvnow.comattwatchtv.com directv.com  dtvce.comnettyinternet.com gamer.com.twbahamut.com.twgamer-cds.cdn.hinet.netgamer2-cds.cdn.hinet.net bandcamp.com +bcbits.com blubrry.com  castro.fm blizzard.cn +cn blizzard.comblizzardgearstore.comblz-contentstack.com blzstatic.cn +cn +battle.netbattlenet.com.cn +cn bnet.163.com +cnblizzard.nefficient.co.krblzddist1-a.akamaihd.netblzddistkr1-a.akamaihd.netbnetcmsus-a.akamaihd.netbnetproduct-a.akamaihd.netbnetshopus.akamaized.net diablo3.comdiabloimmortal.comdi.res.netease.com +cn!diablo3.nosdn.127.net +cnfiresidegatherings.complayhearthstone.com%hearthstone.nosdn.127.net +cnheroesofthestorm.com%hearthstone.nosdn.127.net +cn"heroes.nos.netease.com +cnplayoverwatch.com#overwatch.nosdn.127.net +cn starcraft.comstarcraft2.comsc2.nosdn.127.net +cnplaywarcraft3.comworldofwarcraft.com wowchina.com +cnwow.nosdn.127.net +cnblizzcon-a.akamaihd.netblz.nosdn.127.net +cnblzmedia-a.akamaihd.netblznav.akamaized.net dawngate.com eastore.comlordofultima.com +origin.com  origin.tv#cloudsync-prod.s3.amazonaws.comorigin-a.akamaihd.netrtm.tnt-ea.comssl-lvlt.cdn.ea.comawayoutgame.combattlefieldbadcompany2.combattlefront2.combattlefrontii.combejewled-stars.combejeweledstars.comcapitalgames.com chillingo.comcommandandconquer.comconquerwithcharacter.com  crysis.jp dawngate.comdawngatechronicles.com +dicela.com +dicela.netea-anz-press.com +ea.com eaaccess.comeacashcard.com eacodigos.com eakorea.co.kr eamobile.com eanordic.com +eaplay.com easports.com easports.jpeasportsactive.comeasportsactiveonline.comeasportsfootball.comeasportsfootballclub.comeasportsmma.comeasportsworld.comelectronicarts.comelectronicarts.fr futpromos.com futunited.comghostgames.comheroesofdragonage.com hutpromos.commaddenchampionship.commaddenrewards.commaddenseason.infomaddenseason.netmaddenseason.org  maxis.commysimsracing.com play4free.com playapex.com pogo.com pogobeta.com +popcap.comprojectapex.com pvzheroes.com spearhead.krspeedhunters.com  spore.com ssx3.comstarwarsbattlefront.comstarwarsbattlefront2.comtiberiumalliances.com tiburon.com +tnt-ea.comultimaforever.com unravel2.comunraveltwo.comvisceralgames.com +yogify.comanthemgame.comanthemthegame.comapexlegends.comprojectapex.combattlefield.combattlefield1943.combattlefield3.combattlefield4.combattlefield5.combattlefieldheroes.combattlefieldv.com battlelog.com bioware.combiowarestore.com eamythic.com eamythic.net cncrivals.comcommandandconquer.comtiberiumalliances.comcamelot-europe.comcamelotherald.comcamelotherald.net daoc.netdarkageofcamelot.comdarkness-risen.comdeadspacegame.com dice.se dragonage.comdragonagekeep.comdragonagemovie.comthedreadwolfrises.comdungeonkeeper.cndungeonkeeper.comdungeonkeeper.com.cneafootballworld.comfifastreet.comfifastreet3.com frostbite.comindustrialtoys.commasseffect.commasseffectarchives.comeamirrorsedge.commirrorsedge.commirrorsedge.jpmirrorsedge.netmirrorsedge2.commirrorsedge2d.comblackboxgames.comeablackbox.comneedforspeed.comneedforspeedboost.comneedforspeeddriftkings.comneedforspeedeliminator.comneedforspeedlightning.comneedforspeedoverdrive.comneedforspeedproven.comneedforspeedredline.comneedforspeedshowdown.comneedforspeedstreetkings.comneedforspeedtakedown.comneedforspeedtherun.comneedforspeedtimeattack.com#needforspeedundergroundeast.com nfsworld.comteamneedforspeed.complantsvszombies2.com +pvzgw2.com pvzheroes.comseaofsolitude.comsimcity-buildit.com simcity.com +skate2.com spearhead.krstarwarsfallenorder.comstarwarsjedifallenorder.comstarwarstheoldrepublic.comswjedifallenorder.com  swjfo.com  swtor.com  swtor.net +mysims.com thesims.com thesims3.com thesims4.comthesimssocial.com titanfall.commythicentertainment.commythicentertainment.netmythicgames.comultimaonline.com +uo.com uoherald.com xdsummit.comea.tt.omtrdc.neteaassets-a.akamaihd.netbattlebreakers.com eac-cdn.com easy.aceasyanticheat.net epicgames.com fortnite.com paragon.complayparagon.comroborecall.comshadowcomplex.com spyjinx.comunrealengine.comunrealtournament.com6*^cdn\d-epicgames-\d+\.file\.myqcloud\.com$ +cn*&^epicgames-download\d\.akamaized\.net$;/^epicgames-download\d-\d+\.file\.myqcloud\.com$ +cn"avatargarenanow-a.akamaihd.netcdngarenanow-a.akamaihd.netdlgarenanow-a.akamaihd.net!dlmobilegarena-a.akamaihd.net garena.co.id garena.co.th +garena.com garena.live  garena.my  garena.ph  garena.sg  garena.tv  garena.tw  garena.vn garenanow.com seagroup.com gog.comgog-statics.comgog.qtlglb.com +cn$gogalaxy.gog-statics.com +cn'menu-static.gog-statics.com +cn'productcard.gog-statics.com +cn(static-login.gog-statics.com +cn'www4-static.gog-statics.com +cn, ^images(-\d)?\.gog-statics\.com$ +cn100classicbooks.com +amiibo.comayudanintendo.combowsersinsidestory.comexcitebots.comflipnotestudio.comgloryofheracles.comhackyourconsole.comkirbysuperstarultra.comkirbysepicyarn.comlegendofzelda.cn +cn legendofzelda.com.cn +cn miitomo.commiitomo.com.cn +cn miiverse.com nentindo.netnintendo-europe-sales.comnintendo-europe.com nintendo.at nintendo.be nintendo.chnintendo.co.jpnintendo.co.krnintendo.co.uknintendo.co.za nintendo.comnintendo.com.hknintendo.com.pt nintendo.de nintendo.dk nintendo.es nintendo.eu nintendo.fi nintendo.fr nintendo.it nintendo.net nintendo.nl nintendo.no nintendo.pt nintendo.ru nintendo.se nintendo.twnintendo3ds.comnintendodsi.comnintendoeurope.comnintendolabo.cn +cnnintendonetwork.netnintendonyc.comnintendostore.comnintendoswitch.comnintendoswitch.netnintendoswitchtogether.compersonaltrainermath.complaynintendo.comsupersmashbros.cn +cn!supersmashbros.com.cn +cnthelegendarystarfy.comthewonderful101.comwariolandshakeit.comwariowarediy.comyoshisnewisland.comac-pocketcamp.comdiddykongracing.com dkr.com donkeykongcountryreturns.comfire-emblem-heroes.comfireemblemawakening.com +dialga.com giratina.com +kyurem.com pokedex3d.compokemon-moon.compokemon-sun.compokemon-sunmoon.com pokemon.compokemonbank.compokemonblackwhite.com pokemonbw.compokemonchampionships.compokemongoldsilver.compokemonhome.compokemonletsgoeevee.compokemonletsgopikachu.compokemonmysterydungeon.compokemonpicross.compokemonplatinum.compokemonrubysapphire.compokemonsunmoon.compokemonswordshield.compokemonultrasunmoon.compokemonvgc.compokemonwifi.net xn--mts47c3w9b1qr.cn +cnxn--mts47c3w9b1qr.netsplatoon2tournament.com starfox.comdrmario-world.commarioandluigidreamteam.commariobroswii.com mariokart.cn +cnmariokart.com.cn +cnmariokart7.commariokart8.commariosupersluggers.comnewsupermariobrosu.comsupermario.comsupermario3dworld.com!supermariobros.com.cn +cnsupermariogalaxy.comsupermariorun.comsuperpapermario.comnintendowii.com  wii-u.com +wiifit.com wiifitu.com wiipartyu.com wiisports.comwiisportsresort.comwiiugamepad.com  wiivc.net xenoblade.com op.ggopgg-static.akamaized.net playstationplaystation.complaystation.net sonyentertainmentnetwork.com"api-priconne-redive.cygames.jpomotenashi.cygames.jp%!prd-priconne-redive.akamaized.nethistoryofdota.comhistoryofdota.nethistoryofdota.orginstituteofwar.orgmolesports.com rgpub.ioriot-games.com riot.com riot.net riotcdn.netriotgames.co.kr riotgames.comriotgames.info riotgames.jp riotgames.net riotgames.tv riotpin.comriotpoints.com rstatic.net supremacy.com supremacy.net championshipseriesleague.com lcsmerch.comleaguehighschool.comleagueoflegends.caleagueoflegends.cn +cnleagueoflegends.co.krleagueoflegends.comleagueoflegends.infoleagueoflegends.krleagueoflegends.netleagueoflegends.orgleagueoflegendsscripts.comleaguesharp.infoleaguoflegends.comlearnwithleague.comlol-europe.com lolclub.org lolespor.comlolesports.com lolfanart.net +lolpcs.com lolshop.co.kr lolstatic.comlolusercontent.com +lpl.com.cn +cn pvp.net +pvp.tv ulol.comlolstatic-a.akamaihd.netplayvalorant.comriotforgegames.comruinedking.comconvrgencegame.comrockstargames.com +rsg.sc1-gamedownloads-rockstargames-com.akamaized.net)%media-rockstargames-com.akamaized.net*&videos-rockstargames-com.akamaized.net fanatical.comhumblebundle.complayartifact.com +s.teamsteam-chat.comsteamcommunity.comsteamcontent.comsteamgames.comsteampowered.comsteamstatic.comsteamusercontent.comunderlords.comvalvesoftware.com wmsjsteam.com +cn csgo.wmsj.cn +cndl.steam.ksyna.com +cn dota2.wmsj.cn +cn st.dl.bscstorage.net +cnst.dl.eccdnx.com +cn!st.dl.pinyuncloud.com +cn&steampowered.com.8686c.com +cn%steamstatic.com.8686c.com +cn steambroadcast.akamaized.netsteamcdn-a.akamaihd.net!steamcommunity-a.akamaihd.netsteamstore-a.akamaihd.net#steamusercontent-a.akamaihd.net"steamuserimages-a.akamaihd.netsteamunlocked.net ubi.com ubisoft.com  uplay.com,(ubisoft-uplay-savegames.s3.amazonaws.com,(ubisoft-orbit-savegames.s3.amazonaws.com)uplaypc-s-ubisoft.cdn.ubi.com +cn +beth.games bethesda.netbethesdagamestudios.com bethsoft.com doom.comelderscrolls.comcallersbane.com minecraft.netminecraftshop.com +mojang.comforzamotorsport.netforzaracingchampionship.com forzarc.comorithegame.comrenovacionxboxlive.comtellmewhygame.com xbox.co xbox.com xbox.eu xbox.org +xbox360.co xbox360.com +xbox360.eu xbox360.org +xboxab.comxboxgamepass.comxboxgamestudios.com xboxlive.cn +cn xboxlive.com +xboxone.co xboxone.com +xboxone.euxboxplayanywhere.comxboxstudios.com +xbx.lvdeviantart.comdeviantart.net da-files.comabc-studios.com abc.com edgedatg.com espn.com espn.net espncdn.com +espnqa.com watchespn.comespn.hb.omtrdc.netespndotcom.tt.omtrdc.net +marvel.commarvel10thanniversary.commarveldimensionofheroes.commarvelparty.netmarvelpinball.commarvelsdoubleagent.commarvelspotlightplays.com marvelsuperheroseptember.commarvelsuperwar.comthemarvelexperiencetour.comnatgeomaps.comnationalgeographic.com"nationalgeographicpartners.com ngeo.comadventuresbydisney.com +babble.com babyzone.com +dilcdn.comdisney-asia.comdisney-discount.comdisney-plus.netdisney-studio.comdisney-studio.net  disney.be  disney.bg  disney.ca disney.co.il disney.co.th disney.co.uk disney.co.za +disney.com disney.com.au disney.com.br  disney.cz  disney.de  disney.dk  disney.es  disney.fi  disney.fr  disney.gr  disney.hu  disney.id  disney.in  disney.io  disney.it  disney.my  disney.nl  disney.no  disney.ph  disney.pl  disney.pt  disney.ro  disney.se  disney.sgdisneyadsales.comdisneyarena.comdisneyaulani.comdisneybaby.comdisneycareers.comdisneychannelonstage.comdisneychannelroadtrip.comdisneycruisebrasil.comdisneyenconcert.comdisneyiejobs.comdisneyinflight.comdisneyjunior.comdisneyjuniortreataday.comdisneylatino.comdisneymagicmoments.co.ildisneymagicmoments.co.ukdisneymagicmoments.co.zadisneymagicmoments.dedisneymagicmoments.esdisneymagicmoments.frdisneymagicmoments.gen.trdisneymagicmoments.grdisneymagicmoments.itdisneymagicmoments.pl disneyme.comdisneymeetingsandevents.comdisneymovieinsiders.comdisneymusicpromotion.comdisneynewseries.com disneynow.comdisneypeoplesurveys.comdisneyplus.comdisneyredirects.comdisneysrivieraresort.comdisneystore.comdisneysubscription.comdisneyturkiye.com.trdisneytvajobs.comdisneyworld-go.com +dssott.comgo-disneyworldgo.com +go.com  mickey.tvmoviesanywhere.complaymation.comshopdisney.comshops-disney.comsorcerersarena.comspaindisney.com starwars.com#starwarsgalacticstarcruiser.comstreamingdisney.netthestationbymaker.comthisispolaris.comwatchdisneyfe.com fireside.fm cinemax.comforthethrone.com hbo.com hboasia.com  hbogo.com hbogoasia.com hbogoasia.hk +hbomax.com +hbonow.com  maxgo.com +112263.com callhulu.comfindyourlimits.com freehulu.com  hooloo.tv  hoolu.com hoolu.tv hu1u.com huloo.cc huloo.tv hulu.com hulu.tv hulu.ushuluaction.com +huluad.com huluapp.com huluasks.com hulucall.com hulufree.com hulugans.comhulugermany.com +hulugo.com +huluim.comhuluinstantmessenger.com huluitaly.com hulunet.comhulunetwork.com huluplus.comhulupremium.comhulupurchase.com +huluqa.comhulurussia.com huluspain.comhulusports.comhulustream.com huluteam.com +hulutv.com huluusa.comjoinmaidez.com mushymush.tv +myhulu.comoriginalhulu.com payhulu.comregisterhulu.comthehulubraintrust.comwwwhuluplus.com imdb.com imdb.tomedia-imdb.cominternationalsaimoe.comkingkong.com.twkingkongapp.com +kfs.io  kkbox.com kkbox.com.tw  kktix.com kktv.me litv.tv megaphone.fm moov.hk fast.com +netflix.ca netflix.com netflix.netnetflixinvestor.comnetflixtechblog.com nflxext.com nflximg.com nflximg.netnflxsearch.net +nflxso.net nflxvideo.netnico +nicodic.jp nicomanga.jp niconico.com nicoseiga.jp nicovideo.jp nimg.jp simg.jp overcast.fm  pixiv.net  pixiv.org pixiv.co.jp  pximg.net +pca.stpocketcasts.com fandango.com mgo.commgo-images.com ravm.tv roku.com rokutime.com dishworld.comslinginternational.com  sling.commovenetworks.com +movetv.comimageworks.commotionpictureser.com playshow.ioplayshowtv.comsonyclassics.comsonypictures.comsonypicturesanimation.comsonypicturesmuseum.comsonypicturesstudios.comsonypicturestelevision.com#sonypicturestelevisiongames.com wheelpop.com +wwtbam.comyourfantasybeginsnow.comsoundcloud.com +sndcdn.com byspotify.com pscdn.co scdn.co spoti.fispotify-everywhere.com spotify.comspotify.designspotifycdn.comspotifycharts.comspotifycodes.comspotifyforbrands.comspotifyjobs.com syosetu.com  amemv.com +muscdn.com +musical.ly +tiktok.com tiktokcdn.com tiktokv.com#p16-tiktokcdn-com.akamaized.net ext-twitch.tv  jtvnw.net  ttvnw.net  twitch.tv twitchcdn.net twitchsvc.net +vhx.tv +vhxqa1.com +vhxqa2.com +vhxqa3.com +vhxqa4.com +vhxqa6.comvimeo-staging.comvimeo-staging2.com  vimeo.com vimeo.frvimeobusiness.com vimeocdn.comvimeogoods.comvimeoondemand.comvimeostatus.comlivestream.com abow.jp angelbeats.jp +anigema.jpcharlotte-anime.jpclannad-movie.jpheaven-burns-red.comkamisama-day.jpkamisama-maeda-lab.com koubaibu.jplitbus-anime.com product.co.jprewrite-anime.tvvisualarts.gr.jpvisual-arts.jp +viu.tvapi.viu.now.com^ewcdn[0-9]{2}\.nowe\.com$ viu.com dfp6rglgjqszk.cloudfront.net!d1k2us671qcoau.cloudfront.net!d2anahhhmp1ffz.cloudfront.net +weverse.io wwe.com wwe9.com yande.re cvnad.com +ads +iyoowi.com +ads +got001.com +got002.com jstucdn.com playcvn.com rrys.tv rrys2019.com rrys2020.com rrysapp.com  yyets.com +zimuzu.com  zimuzu.tv zmz2019.com +zmzapi.com +z5.app +z5.com zee5.com zee5.in zee5.tvzeebioskop.com zeetv.co.uk  zeetv.com  zeeuk.com +0x0.st db.ttdropbox-dns.com dropbox.com dropbox.techdropboxapi.comdropboxbusiness.comdropboxcaptcha.comdropboxforum.comdropboxforums.comdropboxinsiders.comdropboxmail.comdropboxpartners.comdropboxstatic.comdropboxusercontent.comgetdropbox.com&"paper-attachments.s3.amazonaws.com +gfycat.com  imgur.com imgurinc.com embed-cdn.comstreamable.com 4cdn.org  4chan.org 4channel.org 2ch.net 5ch.net avsforum.com dcard.io dcard.tw  doom9.org hkgolden.com +lih.kg  lihkg.com pincong.rocks  quora.com quoracdn.net qr.ae +reddit.comredditstatic.comredditmail.comredditmedia.com redd.it 9cdn.net9nation.com.au 9news.com.au 9now.com.aufreeviewplus.net.au +mi9.com.au +mi9cdn.com nine.com.aunineentertainment.com.aunineentertainmentco.com.auninemediaroom.com.auninemsn.com.austatic9.net.au yourtv.com.au9to5google.com 9to5mac.com9to5terminal.com 9to5toys.com dronedj.com electrek.cospaceexplored.com afp.com afpforum.com +ajplus.net aljazeera.com aljazeera.netpalestineremix.comsarajevopodopsadom.comsrebrenica360.com syhacked.comamericasvoice.news +ap.org +apnews.comappledaily.comappledaily.com.hkappledaily.com.tw appledaily.hkapplefruity.comapplehealth.com.hk +atnext.combestmallawards.com deluxe.com.hk eracom.com.tw next.hknextdigital.com.hknextdigital.com.twnextfilm.com.hknextmag.com.tw nextmedia.comnextmedia.com.tw nextmgz.comnextplus.com.hk nexttv.com.twnextwork.com.hknextwork.com.tw nextwork.hk nextwork.tw nxtdig.com.hk nxtdig.com.tw omoplanet.com privilege.hk privilege.tw sharpdaily.tw tomonews.nettwnextdigital.comappleinsider.com  asahi.com asahicom.jpasahishimbun.sc.omtrdc.netbbc  bbc.co.uk bbc.com +bbci.co.uk bbgwatch.com  bloomberg bbgevent.com bbhub.io +bbthat.com bgov.com bloomberg.cnbloomberg.co.jpbloomberg.co.kr bloomberg.combloomberg.com.br bloomberg.fm bloomberg.tvbloombergapps.combloombergarcade.combloombergbeta.combloombergbna.combloombergbreakaway.combloombergbriefs.combloombergchina.combloombergenvironment.combloombergforeducation.combloomberggovernment.combloombergindices.combloombergindustry.combloomberglabs.combloomberglaw.combloomberglive.combloomberglp.combloombergmedia.combloombergnext.combloombergpolarlake.combloombergprep.combloombergquint.combloombergradio.combloombergsef.combloombergspace.combloombergstatus.combloombergsurvey.combloombergtax.combloombergtax1.combloombergtaxtech.com!bloombergtradingchallenge.combloombergtv.mnbloombergvault.combloombergview.comblpcareers.com blpevents.comblpprofessional.com bmia.org bnef.combusinessweek.combusinessweekmag.com bwbx.io citylab.com gotraffic.netlondonmithraeum.comneweconomyforum.comnewenergyfinance.comquicktake.videotechatbloomberg.com tictoc.video  boxun.combowenpress.com breitbart.com +c-span.orgc-spanvideo.orgcabletv.com.hk i-cable.comcaijinglengyan.comcbs showtime cbs.comcbsaavideo.comcbscorporation.com cbsi.com +cbsi.video +cbsiam.com  cbsig.net +cbsimg.netcbsinteractive.comcbsistatic.com cbsivideo.com cbsnews.comcbspressexpress.com cbssports.com cbsstatic.com cbssvideo.com +viacbs.com +viacom.com viacomcbs.comviacomcbspressexpress.com paramount.comchinadecoding.comchinadigitaltimes.net cnbc.com +cnbcfm.com +nbcuni.comnbcudigitaladops.com cnn.com +cnn.io cnnarabic.com cnnlabs.com cnnmoney.ch cnnmoney.comcnnmoneystream.comcnnpolitics.com +cup.com.hk d100.net  anm.co.uk  dailym.aidailymail.co.uk dailymail.comdailymail.com.au dailymail.dkdailymailonline.comdmgmediaprivacy.co.ukmailhealth.commailonline.co.ukmailonline.commailonsunday.co.ukmailonsunday.ie metro.co.uk +mol.imthisismoney.co.uk +thismon.ee +dw.com dajiyuan.com dajiyuan.eu edninfo.com epoch.cloud epoch.org.il epochbuy.com epochcar.com epochhk.com epochmall.comepochmediagroup.com epochshop.comepochstories.com epochtime.comepochtimes-bg.comepochtimes-romania.comepochtimes.co.ilepochtimes.co.krepochtimes.co.ukepochtimes.comepochtimes.com.auepochtimes.com.brepochtimes.com.sgepochtimes.com.twepochtimes.com.ua epochtimes.cz epochtimes.de epochtimes.eu epochtimes.fr epochtimes.it epochtimes.jp epochtimes.nl epochtimes.pl epochtimes.ru epochtimes.seepochtimeshk.orgepochtimestr.com epochweek.comepochweekly.com erabaru.net +etviet.comlagranepoca.com ntd.com  ntdca.com +ntdimg.com ntdtv.ca ntdtv.co.kr  ntdtv.com ntdtv.com.tw ntdtv.jp ntdtv.kr  ntdtv.org ntdtv.ru ntdtvla.com  ntdvn.compersianepochtimes.comtheepochtimes.comtheepochtimessubscribe.comvelkaepocha.cz +forbes.com forbesimg.comfoxfox-corporation.com fox-news.com fox.com +fox.tv fox10.tv fox10news.comfox10phoenix.com  fox11.comfox13memphis.com fox13news.com  fox23.comfox23maine.com +fox247.com  fox247.tv  fox26.comfox26houston.comfox28media.com  fox29.comfox2detroit.com fox2news.com  fox32.comfox32chicago.comfox35orlando.comfox38corpuschristi.com fox42kptm.com  fox46.comfox46charlotte.com  fox47.com fox49.tv fox4news.com fox51tns.netfox5atlanta.com +fox5dc.com +fox5ny.com fox5storm.com fox6now.com fox7.comfox7austin.com fox9.comfoxacrossamerica.comfoxaffiliateportal.comfoxandfriends.com +foxbet.comfoxbusiness.comfoxbusiness.tvfoxbusinessgo.comfoxcanvasroom.comfoxcareers.comfoxcharlotte.com foxcincy.com foxcincy.jobs foxcincy.netfoxcollegesports.comfoxcorporation.comfoxcreativeuniversity.com foxcredit.com foxcredit.org foxd.tv +foxdcg.comfoxdeportes.comfoxdeportes.netfoxdeportes.tvfoxdigitalmovies.com foxdoua.comfoxentertainment.com +foxest.com +foxfaq.com +foxfdm.com foxfiles.com +foxinc.com foxkansas.com  foxla.com foxla.tvfoxlexington.comfoxmediacloud.com foxnation.comfoxnebraska.com +foxneo.comfoxneodigital.comfoxnetworks.infofoxnetworksinfo.com +foxnews.cc foxnews.com foxnews.net foxnews.org +foxnews.tvfoxnewsaffiliates.comfoxnewsaroundtheworld.comfoxnewsb2b.comfoxnewschannel.com foxnewsgo.net foxnewsgo.org foxnewsgo.tvfoxnewshealth.comfoxnewslatino.comfoxnewsmagazine.comfoxnewsnetwork.comfoxnewsopinion.comfoxnewspodcasts.comfoxnewspolitics.comfoxnewsradio.comfoxnewsrundown.comfoxnewssunday.com  foxon.comfoxphiladelphia.com foxpoker.com  foxrad.io foxredeem.comfoxrelease.comfoxrichmond.com foxrobots.comfoxsmallbusinesscenter.comfoxsmallbusinesscenter.netfoxsmallbusinesscenter.org foxsoccer.net foxsoccer.tvfoxsoccermatchpass.comfoxsoccerplus.comfoxsoccerplus.netfoxsoccerplus.tvfoxsoccershop.comfoxsports-chicago.comfoxsports-newyork.comfoxsports-world.com foxsports.cl foxsports.cofoxsports.co.ve foxsports.comfoxsports.com.arfoxsports.com.bofoxsports.com.brfoxsports.com.cofoxsports.com.ecfoxsports.com.gtfoxsports.com.mxfoxsports.com.pefoxsports.com.pyfoxsports.com.uyfoxsports.com.ve foxsports.gtfoxsports.info foxsports.netfoxsports.net.br foxsports.pe foxsports.sv foxsports.uyfoxsports2.comfoxsportsflorida.comfoxsportsgo.comfoxsportsla.comfoxsportsnetmilwaukee.comfoxsportsneworleans.comfoxsportsracing.comfoxsportssupports.comfoxsportsuniversity.comfoxsportsworld.comfoxstudiolot.com foxsuper6.com +foxtel.com foxtel.com.aufoxtelevisionstations.com  foxtv.com foxtvdvd.com  foxuv.comfoxweatherwatch.com  fssta.com +fxn.ws fxnetwork.comfxnetworks.com bentobox.tv kicu.tv ktvu.commyfoxsanfran.comafewmomentswith.com +anidom.comcasoneexchange.comcoronavirusnow.com +fse.tvgeraldoatlarge.comgooddaychicago.com joeswall.comkilmeadeandfriends.commaskedsingerfox.com +my13la.com +my20dc.commy20houston.com +my29tv.com my45.com  my9nj.commyfoxatlanta.commyfoxaustin.commyfoxboston.commyfoxcharlotte.commyfoxchicago.com myfoxdc.commyfoxdetroit.com myfoxdfw.commyfoxhouston.commyfoxhurricane.com myfoxla.commyfoxlosangeles.commyfoxlubbock.commyfoxmaine.com myfoxny.commyfoxorlando.commyfoxphilly.commyfoxphoenix.commyfoxtampa.commyfoxtampabay.commyfoxtwincities.com myfoxzone.com myq2.comnewsnowfox.comorlandohurricane.comparadisehotelquizfox.com q13.com +q13fox.comrealamericanstories.comrealamericanstories.inforealamericanstories.netrealamericanstories.orgrealamericanstories.tvrealmilwaukeenow.com rprimelab.comshopspeedtv.comsoccermatchpass.comspeeddreamride.comspeedfantasybid.comspeedracegear.com speedxtra.comteenchoice.com testonfox.comtheclasshroom.comthefoxnation.comthegeorgiascene.comwhatthefox.comwhosthehost.com wofl.tvwoflthenewsstation.com wogx.com foxnewsplayer-a.akamaihd.netfreebeacon.comgannett-cdn.com gannett.comgannettdigital.com usatoday.comusatodaynetworkservice.comthegatewaypundit.comglobalvoices.orgglobalvoicesonline.org  guo.media  gnews.org gtv.org gtv1.org g-tvapp.com hk01.com hkcnews.com hkopentv.com fantv.hkhongkongfp.comhuffingtonpost.cahuffingtonpost.co.ukhuffingtonpost.co.zahuffingtonpost.comhuffingtonpost.com.auhuffingtonpost.com.mxhuffingtonpost.dehuffingtonpost.eshuffingtonpost.frhuffingtonpost.grhuffingtonpost.inhuffingtonpost.ithuffingtonpost.jphuffingtonpost.kr huffpost.comhuffpostarabi.comhuffpostbrasil.comhuffpostmaghreb.com banned.video infowars.cominfowarsmedia.com inmediahk.netbusinessinsider.co.zabusinessinsider.combusinessinsider.com.aubusinessinsider.com.plbusinessinsider.debusinessinsider.esbusinessinsider.frbusinessinsider.inbusinessinsider.jpbusinessinsider.mxbusinessinsider.mybusinessinsider.nlbusinessinsider.sginsider-intelligence.com insider.cominsiderintelligence.com jfengtime.com landofhope.tvlocalpresshk.comfreedomplatform.tv londonreal.tv +ltn.com.tw yes123.com.tw macrumors.commalayalamanorama.com manorama.commanoramanews.commanoramaonline.commanoramayearbook.inonmanorama.com radiomango.fm  theman.in +theweek.invanitaonline.com +vanitha.invanithaveedu.com matters.news matters.one +medium.commedium.systems +myradio.hkmyradio.com.hkdreamworks.com cnbc.com +cnbcfm.com  msnbc.com +nbc.co nbc.com nbcnews.comnbcolympics.com nbcsports.com +nbcuni.comnbcuniversal.com s-nbcnews.com peacocktv.comuniversalorlando.comuniversalpictures.com&"universalpicturesinternational.com!universalstudioshollywood.com newscorp.com dowjones.com dowjones.iodowjoneson.com wsj.com wsj.net barrons.comandysparis.com newsmax.com +newsmax.in newsmaxtv.com newyorker.com +nikkei.com  nikkei.jp nikkei.co.jp now.com +now.com.hk nowe.com +now-tv.comnow-ashare.com +nypost.com nypost.helpnypostreprints.com nyt.com nyt.net nytchina.com nytcn.me  nytco.com nyti.ms nytimes.com nytstyle.comtimestalks.com aweencore.com  awetv.comherringnetwork.com oanencore.com oann.compassiontimes.hk qmap.pub realclear.comrealclearbooks.comrealcleardefense.comrealcleareducation.comrealclearenergy.orgrealclearfoundation.orgrealclearhealth.comrealclearhistory.comrealclearinvestigations.comrealclearlife.comrealclearmarkets.comrealclearpolicy.comrealclearpolitics.comrealclearpublicaffairs.comrealclearreligion.orgrealclearscience.comrealclearworld.comrealvision.com reuters.com +reuters.tvreutersmedia.net rfa.org +rfi.fr rsf.org +rt.com etvonline.hk rthk.hk +rtings.com scmp.com +i-scmp.comshuziyimin.orgsinoinsider.comsky sky.com skyassets.comskyoceanrescue.comskyoceanrescue.deskyoceanrescue.it skysports.com skysports.fr skysports.ieskysportsonline.comskysportsracing.com slashdot.org bayvoice.net ozvoice.org sohcradio.com sohfrance.orgsoundofhope.krsoundofhope.orgwanokokorosoh.com theguardiandev-guardianapis.comdev-theguardian.com +gu-web.netguardianapis.comguardianapps.co.uk +guim.co.uktheguardian.comtheguardiandns.comtheinitium.com  init.shopthenationalpulse.comthestandnews.comdreamteamfc.com  page3.comsunbingo.co.uk talksport.comthescottishsun.co.uk thesun.co.uk  thesun.ie thetype.cloud +cn thetype.comtypeisbeautiful.com udn.com +udn.com.twudnfunlife.com  unwire.hkamerikaninsesi.comamerikaninsesi.orgamerikaovozi.comamerikayidzayn.comamerikiskhma.com bbg.govdandalinvoa.com darivoa.comdengeamerika.comdengiamerika.comglasamerike.netgolos-ameriki.rugolosameriki.com insidevoa.com pashtovoa.com persagg.comradiyoyacuvoa.com urduvoa.com voa.govvoaafaanoromoo.comvoaafrique.comvoabambara.com voabangla.comvoacambodia.comvoacantonese.comvoachinese.comvoadeewanews.comvoadeewaradio.com voahausa.comvoaindonesia.com voakorea.comvoalingala.comvoandebele.com voanews.com +voanews.euvoanoticias.com voanouvel.comvoaportugues.com voashona.com voasomali.comvoaswahili.com voathai.comvoatibetan.comvoatibetanenglish.comvoatiengviet.com voatour.comvoazimbabwe.comzeriamerikes.com cstatic.net +curbed.com  eater.comfunnyordie.com meridian.net polygon.com +racked.com +recode.net sbnation.com theverge.com vox-cdn.com vox.comvoxcreative.comvoxfieldguide.com voxmedia.com +voxops.net warroom.orgwashingtonpost.com watchout.tw +waa.tw +wenzhao.castartupschool.orgycombinator.com youlucky.com +zaobao.com zaobao.com.sg  zaobao.sg +bgr.inbollywoodlife.comcareerfundas.comcricketcountry.com dnai.in dnaindia.com earngeek.com ekhindi.com +ind.sh  india.comindiancolleges.com itripto.com  oncars.in prepsure.comthehealthsite.com wionews.com yo1health.com zee.com +zeebiz.comzeeentertainment.com zeenews.com"zeenews-fonts.s3.amazonaws.com zerohedge.com zoomingin.tv aomedia.org archive.org  atypi.org +change.org ccstatic.orgcreativecommons.orgcreativecommons.engineeringlicensebuttons.net csis.orgcsis-prod.s3.amazonaws.comemojipedia.orgworldemojiawards.comworldemojiday.com xn--yt8h.laglobalsecurity.org ieee.org ieee.tvtryengineering.org ieee-ccnc.org ieee-ecce.org ieeemce.orgstandardsuniversity.orgieee-region6.org ieee.ca ieeer10.org +ieeer5.org +ieeer8.org ieeeusa.orgieeefoundation.orgieee-into-focus.org ieee-vics.org ieeeday.orgdatasheets360.comglobalspec.com ieee-isto.orgtechstreet.com computer.org +comsoc.org embs.org emcs.org grss-ieee.org ieee-aess.org ieee-cas.org ieee-ceda.orgieee-edusociety.org ieee-ies.org ieee-ims.org ieee-npss.org ieee-pels.org ieee-pes.org ieee-ras.orgieee-sensors.org ieee-tems.org ieee-uffc.org ieeeaps.org ieeecsc.org ieeecss.org ieeedeis.orgieeemagnetics.org ieeenano.org ieeeoes.org ieeesmc.orgieeesystemscouncil.org  itsoc.org mtt.orgphotonicssociety.orgsignalprocessingsociety.orgtechnologyandsociety.org vtsociety.org ietf.org itu.int nist.gov time.gov openmaps.orgopenstreetmap.comopenstreetmap.netopenstreetmap.orgopenstreetmaps.org osm.orgosmfoundation.orgstateofthemap.comstateofthemap.orgrolfoundation.orgrolsociety.org  smpte.org +un.org +w3.org who.int wto.org  1pondo.tv +91porn.com  avgle.com avn.com beeg.com bongacams.com +bcicdn.com bcrncdn.com +btt804.com +btt904.com +bttzyw.com +bttzyw.net t66y.comchaturbate.com e-hentai.org ehgt.org ehtracker.org +ehwiki.org exhentai.orghentaiverse.org eporner.comfanhaodian.com  hegre.com heydoga.com  heyzo.com hqporner.com cdnlab.live jable.tv +javbus.com javbus22.com javfinder.sh findercdn.me o0-2.com  javhd.comjavlibrary.com +javwide.tv javwide.com kindgirls.comlivejasmin.com dditsadn.com dditscdn.com +metart.commetartnetwork.com metcams.comnaiadsystems.com  nsimg.net netflav.com  pigav.com +pornhd.com +phncdn.com phprcdn.com pornhub.compornhubpremium.com  press.vin redtube.com scoreland.comcdn77.scoreuniverse.com spankbang.comtheporndude.com  tube8.com  uug22.com  uug23.com  uug25.com  uug26.com  uug27.com  uuk28.com  uun78.com  uun79.com  uun82.com  uun83.com  uun85.com  uun86.com  uun87.com  uun89.com  uun92.com  uun93.com  uun95.com  uun96.com  uun97.com  uun98.com  uun99.com  uux68.comvaginacontest.com  x-art.com xhamster.comxhamsterlive.com  xhcdn.comwidgets.stripst.com#collector.xhamster.com +ads xnxx.com xnxx-cdn.com xvideos.comxvideos-cdn.com youjizz.comyjcontentdelivery.com youporn.com 0plkijj.vip  114av.xyz 16fhgdty.xyz 18novel.xyz +1jjdg2.vip +1jsa22.vip  51dh.site 520aa.tv 5278.cc +52hyse.com 54647.online 69story.com 69vj.com  721av.com +7mm.tv +85tube.com 91.51rmc.com 920share.com +a.91gay.me a.kslive.tv aavs.xyz  agzy1.com aibaobei.me aimei133.com airav.ccanimezilla.comasianpornmovies.com av01.tv  av1688.cc av6k.com avfox.cc +avinin.com +avmoo.cyou +avpanda.cc +avsee01.tv avseesee.com bangbros.combesthentaitube.com brazzers.com +buzzav.com  caime.xyz calvappd.me cam4.com cslpldyb.me  dkk37.comdownload.91porn005.medownload.i91av.org +dvh30n.vipflirt4free.com follasian.com +gaypad.net  gouri.xyz  hanime.tv +hanime1.me hpjav.tv hsxhr.ccichineseporn.com  iijav.com  immxd.com isexlove.tw isexomega.twjapan-whores.comjapanesebeauties.net jav.guru jav01.cc +jav101.com  jav168.cc javcc.cc  javcc.com +javdoe.com javdove8.xyz  javfor.me javfull.net  javhd.pro javhd3x.com javhdfree.netjavlibrary.com javmost.com  javqd.com javynow.com  jgg18.xyz jiayoulu.com jinnaju.com jjdong7.com +johren.net kissjav.com kphimsex.net  love7.xyz lp99.pw lsnzxzy1.com lubetube.com +lululu.one manyvids.com mdlf.xyz myavfun.commydirtyhobby.commyfreecams.com nekoxxx.com nhentai.netohyeah1080.com +onejav.comosakamotion.netp3.csgfnmdb.com papalah.com  popjav.tv pornbest.org porntea.com +pyhapp.com +qingse.one  r18lu.comrealitykings.com +rule34.xxx seqingx.com seselah.com sextop1.net +sexzy4.com +soirt4.funsouth-plus.net stripchat.com +sub147.com  swag.livetbr.tangbr.net theav.cc +thisav.com thtmod1.com +tkb008.xyztokyomotion.net  tssp.besttubetubetube.com upjav.cc vgg8.com vjav.comwatchjavonline.com wuso.me  wzmyg.com  x99av.com  xo104.com  xtube.com  youav.comaccuweather.comgetadblock.comadblockplus.org addthis.comaddthiscdn.comaddthisedge.com addtoany.comadguard-vpn.com adguard.com apkpure.com cdnpure.com pureapk.com +winudf.com +arphic.com arphic.com.cn arphic.com.twifontcloud.com +bit.ly  bitly.com bitly.is bitwarden.combigbuckbunny.org blender.orgelephantsdream.org videojs.com bcove.video bcovlive.io bcvp0rtal.com boltdns.netbrightcove.combrightcove.netbrightcove.servicesbrightcovecdn.combcovlive-a.akamaihd.netbcsecure01-a.akamaihd.netbrightcove.imgix.net buymeacoff.eebuymeacoffee.comcloudconvert.comcontentful.com ctfassets.net cutt.lydigitalocean.comdigitaloceanspaces.com +disqus.com disquscdn.comdisqusservice.comcispaletter.comcispaletter.orgcometotheduckside.com +ddg.co +ddg.gg +ddh.gg +dgg.gg dontbubble.us donttrack.us duck.co duck.comduckduckco.com duckduckco.de duckduckgo.ca duckduckgo.coduckduckgo.co.ukduckduckgo.comduckduckgo.com.mxduckduckgo.com.tw duckduckgo.de duckduckgo.dk duckduckgo.in duckduckgo.jp duckduckgo.ke duckduckgo.mx duckduckgo.nlduckduckgo.org duckduckgo.pl duckduckgo.sg duckduckgo.ukduckduckhack.com +duckgo.com ducksear.ch duckside.com  dukgo.comenteentegeh.defixtracking.com goduckgo.com hacksear.chjustduckit.comprivacysimplified.comprivatebrowsingmyths.comspreadprivacy.com easylist.to lanik.usentermediadb.netentermediadb.org +arcgis.comarcgisonline.com esri.com evernote.com faststone.org +feedly.com  figma.com gofundme.com gravatar.com botstop.com hcaptcha.comhcaptchastatus.com  heroku.co +heroku.com  heroku.me herokuapp.com herokucdn.comherokucharge.com herokussl.comheroku-app.comheroku-charge.com codei.sh +codeish.co +codeish.io iina.ioinfrapedia.com inoreader.com is.gdv.gd +jwpcdn.comjwplatform.com jwplayer.com +jwpltx.com +jwpsrv.comlongtailvideo.comkindle4rss.com kodi.tv  kodi.wiki liberapay.com liberapay.org linguee.com  deepl.com +madshi.net  madvr.com  madvr.net madvrlabs.llc mapbox.cn +cn +mapbox.com +mega.co.nz mega.nz +mpv.io netlify.combitballoon.com  notion.sonotion-static.com +notion.new ok.ruopencollective.com osdn.net +parler.com pastebin.com patreon.com pics.ee  picsee.co +picsee.pro pise.pw pros.ee +pse.is ping.pe protonmail.chprotonmail.comprotonstatus.com pm.me quip-cdn.com quip.comquipelements.com +reabble.cn +cn reabble.com rb.gy rebrandly.com reurl.cc +rsshub.app +dns.sb ip.sb loli.net sb.sb sm.msu.nu +www.sb +setapp.com sharethis.com myshopify.com shopify.com shopify.devshopifycdn.comshopifystatus.comshopifysvc.com shorturl.atsourceforge.comsourceforge.net +sf.net fsdn.com startpage.com ixquick.com steemit.com svp-team.com test-ipv6.com ctan.orglatex-project.org +miktex.org tug.org tidelift.com tinyurl.com +trello.com trellocdn.com +tumblr.com +now.shvercel-dns.comvercel-status.com +vercel.app +vercel.comzeit-world.co.ukzeit-world.comzeit-world.netzeit-world.org zeit.co zeit.sh zeitworld.com webflow.com wix.com  wixmp.com wixsite.com wixstatic.comvideopress.com w.org wordpress.com wordpress.org wordpress.tv wp-themes.com +wp.com  wpvip.com outbound.io zdassets.comzdusercontent.com zendesk.com  zndsk.com  zopim.com +zeplin.dev  zeplin.io zoho.com zoho.com.au zoho.eu zoho.in zohocdn.comzohomeetups.comzohomerchandise.comzohopublic.comzohoschools.comzohostatic.com zohostatic.inzohouniversity.comzohowebstatic.com zoom.com zoom.com.cn zoom.usalpinelinux.org anaconda.com anaconda.org conda.io android.comandroidify.com +apache.orgappleswift.com  swift.org +swiftui.cn +cnswiftui.com.cn +cncalendarserver.orgapple-cloudkit.com cups.orgdeveloper.apple.comdevimages-cdn.apple.comdevstreaming-cdn.apple.comfoundationdb.orgmacosforge.org macruby.com macruby.net macruby.orgapple-mapkit.complaygrounds-cdn.apple.com carekit.orgresearchandcare.orgresearchkit.cn +cnresearchkit.com.cn +cnresearchkit.hkresearchkit.netresearchkit.orgresearchkit.tvservicetalk.io +webkit.org webkitgtk.org wpewebkit.orgwebobjects.com-)appleworldwidedeveloper.hb-api.omtrdc.net)%appleworldwidedeveloper.sc.omtrdc.net#p-events-delivery.akamaized.net archlinux.orgarchlinuxarm.org atom.io +badgen.netbootstrapcdn.comgetbootstrap.combraventures.com braveux.com +compass.isfightforux.comforthebadge.comstockagainstphotography.com launchpad.netlaunchpadlibrarian.comlaunchpadlibrarian.netlaunchpadlibrarian.org snapcraft.io snapstore.io +ubuntu.com +ubuntu.netubuntuforums.org canonical.com  cdnjs.com +centos.orgchocolatey.org clojure.org +cnpmjs.org +cygwin.com +cython.org dart.dev dartlang.org dartpad.dev +debian.org +dotdeb.org  deno.landcompose-spec.io +docker.com  docker.ioelixir-lang.org +elrepo.org embed.ly embedly.com playerjs.io +erlang.orgaccountkit.comatscaleconference.com botorch.org +buck.build buckbuild.comcomponentkit.org draftjs.org +f8.comfacebookappcenter.infofacebookappcenter.netfacebookappcenter.orgfacebookconnect.comfacebookdevelopergarage.comfaciometrics.com fasttext.cc fbf8.com fbinfer.com fblitho.com fbredex.com +fbrell.com flow.dev flow.org flowtype.org frescolib.org hacklang.org hhvm.commakeitopen.com mcrouter.net mcrouter.orgmessengerdevelopers.com +ogp.meopengraphprotocol.comopengraphprotocol.org  parse.com pyrobot.org  react.com reactjs.com reactjs.org recoiljs.org rocksdb.com rocksdb.net rocksdb.orgyogalayout.comdevelopers.facebook.com fastlane.cifastlane.tools getfedora.orgfedoraforum.orgfedoraproject.orgfedoramagazine.org +ffmpeg.org flathub.org flatpak.org flutter.devflutterapp.comfontawesome.comfortawesome.com freebsd.org  fury.blog fury.co fury.dev  fury.help fury.io gemfury.com +gentoo.orggetcomposer.org git-scm.com gitbook.com +gitbook.io  npmjs.com npm.communitydependabot.com +git.io github.blog +github.comgithub.community +github.dev  github.io githubapp.comgithubassets.comgithubhackathon.comgithubstatus.comgithubusercontent.com/+github-avatars.oss-cn-hongkong.aliyuncs.comFBgithub-production-release-asset-[0-9a-za-z]{6}\.s3\.amazonaws\.com +gitlab.com  gitlab.io +gitlab.netgitlab-static.net.*gitlab-assets.oss-cn-hongkong.aliyuncs.com gnu.org go-lang.com go-lang.net go-lang.org +go.dev  godoc.org +golang.com +golang.net +golang.org  consul.io hashicorp.comnomadproject.io  packer.io terraform.io vagrantup.comvaultproject.io haskell.orghaskellstack.org stackage.org brew.shhomebrew.bintray.com +01.org hyperscan.iointellinuxgraphics.comintellinuxgraphics.net +oneapi.comopenvinotoolkit.orgsnap-telemetry.io +acpica.com clearlinux.cn +cnclearlinux.org +ospray.net +ospray.org +ius.iojava java.com java.net +jenkins.io jetbrains.com jetbrains.net datalore.iokotlinlang.org  jfrog.com  jfrog.org bintray.com!d29vzk4ow07wi7.cloudfront.net +js.org jsdelivr.net jsdelivr.comcdn.jsdelivr.net +cn jupyter.org kali.org kubernetes.io +k8s.iolinuxfromscratch.org linuxmint.com lua.org macports.org mariadb.orgadaptivecards.ioapi-extractor.com +apisof.net appcenter.ms +blazor.netbotframework.comcodethemicrobit.comdevopsassessment.net dot.netgamesstack.comgraphengine.ioinsiderdevtour.com +jwt.ms microbit.orgmicrosoftadc.commicrosoftgamestack.commicrosoftiotinsiderlabs.commicrosoftreactor.cn +cn#microsoftreactor.com.cn +cnmicrosoftreactor.infomicrosoftreactor.netmicrosoftreactor.orgmicrosoftsilverlight.commicrosoftsilverlight.orgmicrosoftsilverlight.netmicrosoftsqlserver.com  mmdnn.commono-project.com msdn.commsinnovationchallenge.commspairlift.commsropendata.com  nuget.org nugettest.orgopentranslatorstothings.orgposhtestgallery.compwabuilder.comreactorms.com.cn +cn +sankie.netsqlserveronlinux.comtimelinestoryteller.comuwpcommunitytoolkit.comvisualstudio-staging.comvisualstudio.comvisualstudio.covisualstudio.co.ukvisualstudio.euvisualstudio.net vfsforgit.com vfsforgit.org vsassets.io xamarin.comdeveloper.microsoft.comdtlgalleryint.cloudapp.net poshtestgallery.cloudapp.net"psg-int-centralus.cloudapp.netpsg-int-eastus.cloudapp.net  mingw.org mongodb.com mongodb.org  mysql.com  nginx.com  nginx.org  nixos.orgnodesource.comnotepad-plus-plus.org +openai.com openresty.org openssl.org opensuse.org openwrt.orglede-project.org packagist.org pcre.org perl.org cpan.org metacpan.org phantomjs.org php.netpolymer-project.orgpolymerproject.orgpostgresql.org +python.orgpythonhosted.org pypa.io pypi.org qt.ioqt-project.org r-project.orgraspberrypi.org raspbian.orgreadthedocs-hosted.comreadthedocs.comreadthedocs.ioreadthedocs.org redis.io redislabs.com remirepo.net rpmfusion.org ruby-lang.org rubygems.orgscala-lang.org scala-sbt.orgscientificlinux.org scoop.sh +shields.io +sqlite.org askubuntu.comblogoverflow.commathoverflow.netserverfault.com sstatic.net stackapps.com stackauth.comstackexchange.com stackmod.blogstackoverflow.blogstackoverflow.comstackoverflow.emailstackoverflowbusiness.comstacksnippets.net superuser.com tex-talk.netthesffblog.commystrikingly.comstrikingly.comstrikinglycdn.comsublimetext.com +kernel.org  linux.org amp.devampproject.comampproject.netampproject.orgcdn.ampproject.org +cnamp.akamaized.netelectronjs.org +jquery.comjquerymobile.com jqueryui.com mochajs.org +nodejs.org openjsf.orglfai.foundationlinuxfoundation.org  unity.com unity3d.com!unityads.unity3d.com +ads#unityads.unitychina.cn +ads  unpkg.com +v8.dev v8project.org videolan.org vim.org wireshark.org x.orgxda-developers.com xda-cdn.com xposed.info yarnpkg.com zsh.orgacer-group.com acer.com acer.com.cn +cn typekit.com typekit.net10xfotolia.com 2o7.net acrobat.com adbecrsl.comadobe-aemassets-value.comadobe-audience-finder.com"adobe-video-partner-finder.com  adobe.com adobe.lyadobeaemcloud.comadobeaemcloud.netadobeawards.comadobecontent.ioadobecreativityawards.com adobedc.net adobedemo.com adobedtm.comadobeexchange.comadobeexperienceawards.com adobegov.comadobehiddentreasures.comadobejanus.com adobeku.comadobelanding.comadobelogin.com adobeoobe.comadobeplatinumclub.comadobeprojectm.com adobesc.com adobesign.comadobesigncdn.comadobespark.com adobess.comadobestock.com adobetag.comadobetarget.comadobetcstrialdvd.comadobetechcomm.comadobetechcommcallback.comadobetechcommdemo.comadobexdplatform.comassetsadobe.com authorxml.combusinesscatalyst.com ccnsite.com  ccpsx.com +demdex.netdollarfotoclub.comdollarphotoclub.comdollarphotosclub.comdouwriteright.com echocdn.com echosign.com edgefonts.netenablementadobe.com  ftcdn.net gostorego.comimagineecommerce.commacromedia.commagentoliveconference.commarketing-nirvana.com omniture.com +omtrdc.net photoshop.complacesdocs.comsundanceignite2016.comworldsecureemail.comworldsecuresystems.com adobe.iodevelopria.com behance.nets2stagehance.com adobecc.com adobecce.comadobeccstatic.comcreativecloud.comcreativesdk.com cotolia.com ffotolia.com fiotolia.com foftolia.com fonolia.com fotiolia.com fotoiia.comfotolia-noticias.com +fotolia.cc fotolia.com +fotolia.tv fotolja.com fptolia.com gfotolia.com motolia.com photolia.nettenbyfotolia.com votolia.combluefootcms.com mageconf.commageconf.com.ua magento.com magento.netmagentocommerce.commagentomobile.commarketing-cloud.com marketo.co.uk marketo.com marketo.net +marketo.tvmarketodesigner.commarketolive.com +mktdns.commkto-c0100.com mktorest.com mktroute.commobilemarketo.com&"revenue-performance-management.com toutapp.comcompresspdf.new pdf.new sign.newalibabacloud.co.inalibabacloud.comalibabacloud.com.aualibabacloud.com.hkalibabacloud.com.myalibabacloud.com.sgalibabacloud.com.tw alicloud.com amazon-adsystem.com +adswholecitiesfoundation.orgwholefoodsmarket.comwholekidsfoundation.orgwholeplanetfoundation.orgaws +amazonimdb +kindle xn--cckwcxetdxn--jlq480n2rg yamaxun +zappos a2z.comaboutamazon.cn +cnaboutamazon.co.ukaboutamazon.comaboutamazon.com.auaboutamazon.deaboutamazon.esaboutamazon.euaboutamazon.fraboutamazon.inaboutamazon.itaboutamazon.jpaboutamazon.pl alexafund.cn +cnalexafund.com.cn +cn amaaozn.comamazon-fashions.comamazon-jp-recruiting.comamazon-lantern.comamazon-launchpad.com  amazon.ae  amazon.ca amazon.cn +cn amazon.co.jp amazon.co.uk +amazon.com amazon.com.au amazon.com.br amazon.com.mx amazon.com.tr  amazon.de  amazon.es  amazon.fr  amazon.in  amazon.it amazon.jobs  amazon.jp  amazon.nl +amazon.red  amazon.sgamazonalexavoxcon.comamazonauthorinsights.comamazonbusiness.cn +cn!amazonbusiness.com.cn +cnamazonbusiness.orgamazonbusinessblog.comamazonchoice.cn +cnamazonchoice.com.cn +cnamazonchoices.cn +cn amazonchoices.com.cn +cnamazondevicesupport.comamazonfctours.comamazonianblog.comamazonimages.comamazoninspire.cn +cn amazoninspire.com.cn +cnamazonlaunchpad.cn +cnamazonlaunchpad.com"amazonlaunchpad.com.cn +cn amazonlending.com.cn +cn!amazonliterarypartnership.comamazonlumberyard.wang amazonnow.cn +cnamazonnow.com.cn +cn amazonpay.com amazonpay.in amazonsdi.comamazonstudiosguilds.comamazontrust.comamazonvideodirect.com amzn.com amzn.to  amznl.comassoc-amazon.cn +cnassociates-amazon.comgameon-masters.comgdansk-amazon.comimages-amazon.commedia-amazon.com primeday.cn +cnprimeday.com.cn +cn primeday.infosiege-amazon.comssl-images-amazon.comueberamazon.de +yamaxun.cn +cn yamaxun.comz.cn +cn  alexa.com audible.comacmvalidations.comacmvalidationsaws.comaesworkshops.comamazonaws-china.com amazonaws.com amazonaws.tvamazonworkdocs.cn +cnamazonworkdocs.com!amazonworkdocs.com.cn +cnamplifyapp.comamplifyframework.comaws-iot-hackathon.comawsautopilot.comawsautoscaling.com awsbraket.comawscommandlineinterface.comawsedstart.comawseducate.comawseducate.netawseducate.orgawsloft-johannesburg.comawsloft-stockholm.comawssecworkshops.com awsstatic.comawsthinkbox.com awstrust.comcdkworkshop.comcloudfront.netcontainersonaws.comelasticbeanstalk.comthinkboxsoftware.com".+\.awsdns-[0-9][0-9]\.co\.uk$.+\.awsdns-[0-9][0-9]\.com$.+\.awsdns-[0-9][0-9]\.net$.+\.awsdns-[0-9][0-9]\.org$".+\.awsdns-cn-[0-9][0-9]\.biz$!.+\.awsdns-cn-[0-9][0-9]\.cn$".+\.awsdns-cn-[0-9][0-9]\.com$".+\.awsdns-cn-[0-9][0-9]\.net$createspace.com kindle.cn +cn kindle.co.jp kindle.co.uk +kindle.com  kindle.de  kindle.es  kindle.fr  kindle.in  kindle.it  kindle.jpkindleoasis.cn +cnkindleoasis.comkindleoasis.com.cn +cnkindleoasis.infokindleoasis.jpkindleoasis.orgkindleoasis.uskindleoasisnews.comkindleproject.comamazonprimevideo.cn +cn#amazonprimevideo.com.cn +cnamazonprimevideos.comamazonvideo.ccamazonvideo.comprime-video.com primevideo.ccprimevideo.comprimevideo.infoprimevideo.org primevideo.tv+images-cn.ssl-images-amazon.com +cn-!images-cn-8.ssl-images-amazon.com +cn amd.comamdfanstore.com +radeon.comiadsdk.apple.com +ads iad.apple.com +ads qwapi.com +ads100beatscheap.com1monsterbeatsbydreus.com2013beatsbydrdreonline.com2013beatsbydrdreshop.com2013beatsbydreshop.com2013beatshdcybermonday.com2013cheapestbeats.com2013newbeatsworld.com2013pascherbeatsbydre.com2014cheapbeatsbydre.com 2beatsdre.com2buybeatsbydre.com2drdrebeats.com40shopping.com4beatsbydre.com5beatsbydre.comaaagradeheadphones.com +aanaan.comabcheadphones.comabeatsbydrdre.com aeasyshop.com +airmay.com +ajtalk.com albeats.com annstores.netaokwholesale.netaucheapbeats.comaudiobeatsau.comaudiobeatsbydre.comaudiomonsterbeatsonline.comauricularemonsterbeats.com#auricularesbeatsbaratosshop.comauricularesbeatsmarkt.comausbeatsbydrdre.combag-glasses1.com bandgirlz.com baxsound.com bbestmall.com +beatbd.combeatbydre2013.combeatbydremonster.com!beatbydreheadphonesonsale.combeatbydrekopen.combeatbydreuk2014.combeatdrdres.combeatfactoryoutlets.combeatmonstersaustralia.netbeats-by-dre-australia.combeats-bydrdre.netbeats-bydre-mall.combeats-bydrecheapsale.combeats-bydreoutletonline.combeats-bydreoutletsale.combeats-bydreoutletsale.netbeats-bydreoutletssale.netbeats-bydrestore.combeats-bydreuk.combeats-deal.combeats-dre-us.com"beats-headphones-buy-cheap.combeats-headphones.usbeats-sale.combeats-seller.combeats-soaho.com  beats1.cc beats1.cn +cn  beats1.tv beats1.com.cn +cn beats123.com beats2.com.cn +cn beats4.cn +cn +beats4.netbeats4outlets.combeats4salecheap.combeatsallsale.combeatsaudifonos.combeatsaudiobydre.combeatsaudiobydre.netbeatsaudios.netbeatsbeatsmonster.combeatsbestdeals.combeatsblackfridaydeals.netbeatsblackfridayretails.combeatsboxingdayuksale.combeatsbydrdre-headphones.combeatsbydrdre-officials5.combeatsbydrdre-online.combeatsbydrdre-onsale.combeatsbydrdre-store.combeatsbydrdre-store.usbeatsbydrdre4sale.combeatsbydrdrebiz.combeatsbydrdrecustom.combeatsbydrdredanmark.combeatsbydrdremall.combeatsbydrdreoutlet.combeatsbydrdres.combeatsbydrdresale.netbeatsbydrdrestore.combeatsbydrdreus.com!beatsbydre-beatsheadphone.combeatsbydre-chen.combeatsbydre-club.combeatsbydre-headphones.com!beatsbydre-headphonesshop.combeatsbydre-mall.combeatsbydre-outlet.combeatsbydre-outletsale.netbeatsbydre-outletstore.combeatsbydre-sell.combeatsbydre-store.combeatsbydre-studio.combeatsbydre-us.com beatsbydre.jpbeatsbydre2081.combeatsbydre411.combeatsbydre4usales.combeatsbydreauofficial.combeatsbydreausale.net beatsbydreaustralia-sale.com!beatsbydreaustraliaonline.com"beatsbydreaustraliaonlines.com beatsbydreaustraliasales.combeatsbydrebeatsby.com!beatsbydreblackfriday2013.com beatsbydreblackfridaypro.combeatsbydreboxingdayca.combeatsbydrecasquesfr.com#beatsbydrecheap-outletstore.combeatsbydrecheaper.com"beatsbydrecheaponlinesales.combeatsbydrecolors.com beatsbydrecustomwireless.com&"beatsbydrecybermondaydeals2013.com&"beatsbydrecybermondaydeals2013.netbeatsbydredanmarks.com"beatsbydredealsblackfriday.com"beatsbydredealscybermonday.combeatsbydrediscount.com beatsbydrediscountonline.netbeatsbydredr.combeatsbydreexecutivesale.com beatsbydreformall2013-nl.com beatsbydreforsalesonline.com beatsbydreforshop2013-nl.combeatsbydreforstore.combeatsbydreforyououtlet.combeatsbydrefr.com!beatsbydrefrcasquepascher.combeatsbydrefriday.combeatsbydregot.combeatsbydrehd.combeatsbydrehd.netbeatsbydreheadphones-nz.combeatsbydreheadphonesolo.combeatsbydrehut.combeatsbydreinexpensive.combeatsbydreireland-sales.com beatsbydreirelandonlines.combeatsbydreirelandsale.com beatsbydreirelandsonline.combeatsbydremall2013.com"beatsbydremonsteraustralia.combeatsbydrenls.combeatsbydrenorge1.net!beatsbydreofficialdanmark.combeatsbydreoksale.combeatsbydreol.combeatsbydreonlie2013-nl.com!beatsbydreonlines-ireland.combeatsbydreonlines-uk.combeatsbydreonlinesale-nz.combeatsbydreoordopjes.combeatsbydreoslo.combeatsbydreoutletsale.combeatsbydreoutletscheap.combeatsbydrerealstore.combeatsbydres-shop.combeatsbydresale-uk.combeatsbydresalemall2013.combeatsbydresales.us'#beatsbydresalesonline-australia.com beatsbydresaleonlines-nz.combeatsbydresdanmark.netbeatsbydreshop-uk.combeatsbydreshops.netbeatsbydresingapores.combeatsbydresingaporesale.combeatsbydrespeakers.combeatsbydresold.com%!beatsbydresolohdonline-canada.combeatsbydresonline-nz.combeatsbydrestorevip.combeatsbydressale.combeatsbydressolo.combeatsbydresstudio.com"beatsbydrestudio-australia.combeatsbydrestudio.combeatsbydretoutlet.combeatsbydreuk.combeatsbydreuk.netbeatsbydreus.combeatsbydrevipde.combeatsbydrew.combeatsbydrsmonsterinusa.combeatsbymusic.netbeatsbysdrbre.combeatsbysdrdres.combeatscasque-france.combeatscheap-nz.combeatscheap-uk.combeatscheapforsale.combeatscollection2014.combeatscustomblackfriday.combeatsdanmark2013.combeatsdrdre-headphones.combeatsdrdre-it.combeatsdrdre-solo.combeatsdrdre2014.combeatsdrdrecuffie.netbeatsdrdrekaufenschweiz.netbeatsdrdreneon.combeatsdre-monster.com beatsdre.netbeatsdre4cheap.combeatsdrecheap.combeatsdredreheadphones.combeatsdreforsale.combeatsdreinau.combeatsdremonster-uk.com!beatsdrenewcolorful4usale.combeatsdreoutletsale.combeatsdresale2013.combeatsdresalestore.combeatsdresolo2013.combeatsdreus.combeatsearbudsheadphoness.combeatsfacstore.combeatsfactoroutlets.combeatsfactorycollection.combeatsfactoryoutles.combeatsforcheap-usa.combeatsforme.combeatsfranceofficiel.combeatselectronic.netbeatselectronics.com +beatsep.cn +cn beatsep.com beatsep.net beatsheadphones-discount.combeatsheadphones1.combeatsheadphones2u.combeatsheadphonesale.combeatsheadphonesdealer.combeatsheadphonesforcheap.netbeatsheadphonesonline.combeatsheadphoness.combeatsheadphonestudio.combeatsheadphonesusamall.combestshoesale2014.netbeatshopuk.combeatsincanada.combeatsinsingapore.combeatsireland.net beatsjoy.combeatsmonstersales.combeatsmusic.combeatsmusic.wang beatsneon.combeatsnzsale.com beatsodre.combeatsofdre-usa.combeatsonblackfriday2013.com beatsone.netbeatsoutlet.netbeatsoutletanytime.combeatsoutletonlines.combeatspascher-bydre.combeatspascher-fr.netbeatspascher.netbeatspaschers.netbeatspillnewcolor.combeatspills.combeatspromonsterjp.combeatspromotions.combeatssales.combeatssaleus.combeatssaustraliabuy.combeatssbyaustralia.combeatssbydredanmark.combeatsshop-uk.combeatsshop-usa.combeatsshopstore.combeatssingapores.combeatssingaporeshop.com beatsstudiohodetelefoner.combeatsstudiosite.combeatstoreusa.com beatsua.combeatswholesale.usbeatswirelesscheap.combeatswirelesscuffie.combegin-trade.combestbeats4u.com +biitii.comblackfridaydrebeatsnew.comblackfridaydrebeatsshop.combloommicroventures.com bookonsky.net +bossae.combrandeasygo.combrandelectronic.combrandproducts1688.com brands098.combusinesswebwise.combuy-from-shanghai.combuybeatsbydre-uk.combuybeatsheadphonesbydre.combuycheapbeatsbus.combuycheapbeatsbydre.combuycheapbeatsbydreshop.combuycheapbeatsdreuk.combuydrdrebeatbox.combuyminibeatbox.combuyonlineheadphones.combuyshoponly.combuzzardflapper.combybeatsdre.combydrebeats.comcanada-beatsbydre.com casque-fr.com casquebeatsbydrdresolohd.comcasquebeatsdocteurdre.comcasquebeatsdre2013.comcasquebeatsenligne.comcasquebeatsfracheter.comcasquebeatsmer.netcasquebeatsofficiel-fr.comcasquebeatspascher2013.comcasquebeatssolo.netcasquedrdrebeatssfr.comcasquemonsterbeats.com#casquemonsterbeatsbydre2013.comcasquesbeatsaudio.comcheap-beats-by-dre.netcheap-beatsbydre.comcheapbagshoes.com cheapbeats.uscheapbeats365.comcheapbeats4sale.netcheapbeatsaustraliasale.comcheapbeatsbus.comcheapbeatsbydr.comcheapbeatsbydrdrepro.comcheapbeatsbydre-au.comcheapbeatsbydre99.comcheapbeatsbydrefau.comcheapbeatsbydremall.comcheapbeatsbydremonster.comcheapbeatsbydrenz.netcheapbeatsbydreonsale.com cheapbeatsbydreoutlet-nz.comcheapbeatsbydreoutlet.com"cheapbeatsbydreoutlets2013.comcheapbeatsbydresale.comcheapbeatsbydreshop.comcheapbeatsdrdresolo.com$ cheapbeatsbydrestudioedition.com"cheapbeatsbydrestudioutlet.comcheapbeatsdrestudios.comcheapbeatsheadphone2014.comcheapbeatsheadphones.uscheapbeatsie.comcheapbeatsla.comcheapbeatssale4u.comcheapbeatsshopbydre.comcheapcustombeatsbydre.comcheapdrdrebeats8.comcheapdrdrebeatsca.comcheapdrebeats8.netcheaperbeatsbydresale.comcheapestbeatsdrdre.comcheapheadphonesland.comcheapheadphonessale.comcheapheadsetmall.comcheapheadsetshop.com cheapmonsterbeatsbydrdre.com!cheapmonsterbeatsheadsets.com cheapmonstersbeatsonsale.comcheapmonsterbeatssale.comcheapmonsterbeatsusa.uscheapnewbeatsbydre.comcheapsalemonster.comcheapshoesvip.comcheapwireless04.comcheapwirelessbeats.comcheerwholesale.uschihair-straightener.comchinaclothesstore.comciattackers.com +cmhalq.com cnshopin.comcoolmonster.netcozydrdrebeats.com cqcorea.comcuffiesaldi.comcustombeatsbydrebuy.comcustombeatsdeals.comcustombeatsforcheap.comcustombeatsny.comcustombeatssbydreus.comcustomdrdrebeats.comcustomizedbeatbydre.comcustomizedbeatsbydre.comcustomizedbeatsdre.comcybermondaybeats4sale.comdanemarket.comdanmarkbeatsbydrdre.comdctbeatsbydre.comdealsbeatsblackfriday.comdetaliczny.comdiscountbeatsbydre-us.comdiscountbeatsstore.comdkbeatsbydre.comdrbeatsukmart.comdrdre-beats.comdrdrebeats-chen.comdrdrebeats-headphone.comdrdrebeats-usa.comdrdrebeatsale.comdrdrebeatsbillig.comdrdrebeatsdesale.comdrdrebeatsdiscount.comdrdrebeatsforu.comdrdrebeatsretail2013.comdrdrebeatssale7.comdrdrebeatsuk.comdrdreheadphonebeats.comdrdreheadphonekey.comdrdreheadphonesusstore.comdrdremonster-beats.comdrdremonsterdre.comdrdreprobeatssale.com drdrefnac.comdrebeats-australia.comdrebeats-france.comdrebeats-monster.com!drebeats-monsteraustralia.comdrebeats-monsterusa.comdrebeats-singapore.comdrebeats-singapore.netdrebeats-singaporecheap.comdrebeats-singaporecheap.netdrebeats-solo.comdrebeats-studio.comdrebeatsaustralia-cheap.comdrebeatsaustralia-cheap.netdrebeatsbuy.comdrebeatsbydreoutlet.comdrebeatscanada.comdrebeatsdeutschland.netdrebeatsforsaleus.comdrebeatsheadphones-nz.comdrebeatshome.comdrebeatsoutletstore.comdrebeatsoldes.comdrebeatspill.comdrebeatssite.com#drebeatssolocybermondaysale.comdrebeatsstudio2013.comdrebeatstudio.com drebyby.comdremonsterbeatsoutlets.comdreprobeats.com dreprofy.com +dtsell.comearphonescheapest.comebuyheadphones.comesbeatsbydrebuy.cometheadphones.comfamosascalvas.comfindmybeats.comfr-beatsbydrestore.comfrancecasquebeatssolde.comfrcasquesbeats.com free-aa.com free-sns.com frishoes.comgamebeforethegame.comgetdrebeatssale.comgmnetworks.net gobeatsye.comgobuyonlinestore.net goodsdunk.netheadphonepubs.comheadphones-cool.comheadphones-dre.com headphones-outlet-online.comheadphonesbeatsaudio.comheadphonesbeatsbydre.comheadphoneses.comheadphoneshome.comheadphoneshotsales.comheadphonesol.comheadphonesretailer.comheadphonessupply.comheadphonezip.comheadset987.comhellokittybeats.com highbolt.net highdefinitionbeatsbydre.com hipaa6020.com hipzoom.nethonawalaan.comhotbeatsonsale.comhotmonsterbeats.comhottestheadphonesonline.com  hrsaz.com ibeats-uk.comibeatsbydre.ccibeatsbydre.comigoshopping.net illianacomputerrecycling.comimonsterbeats.comincentivetravelgifts.comioffergift.com islamiccenterofnewlondon.comitaliabeatsbydrdre.com jkbeats.comkickshatchannel.comkobbeatssbydredk.comkopfhorergunstigshop.comleecountytimes.com lexuemei.comlovebeatsdr.com lovemarca.comluckyissue.com +lyzsxx.com mairbeats.com +makeeu.commallheadphone.commbeats-tech.commbheadphone.com +micstl.commmonsterheadphones.netmonbeats2013.commonster-beats-by-dr-dre.com monster-beats-headphones.commonsterbeats-cheap.commonsterbeats-headphone.commonsterbeats-onsale.commonsterbeats-solo.commonsterbeats-solo.netmonsterbeats365buy.commonsterbeats8beatsbydre.commonsterbeatsale.commonsterbeatsalestore.commonsterbeatssalg.commonsterbeatsau.commonsterbeatsbydrdre-nz.commonsterbeatsbydrdre-usa.com!monsterbeatsbydrdrecanada.com!monsterbeatsbydrdrestudio.commonsterbeatsbydre-nz.commonsterbeatsbydre-usa.commonsterbeatsbydre2015.com'#monsterbeatsbydreaustraliacheap.com!monsterbeatsbydrebilligde.com monsterbeatsbydrefactory.commonsterbeatsbydrenew.commonsterbeatsbydres.commonsterbeatsbydreshop.commonsterbeatscasques.commonsterbeatscommunity.commonsterbeatsdrdrecheap.commonsterbeatsfactory.netmonsterbeatsfinland.commonsterbeatsforsale.commonsterbeatsheadphone.commonsterbeatsheadphones.netmonsterbeatshere.commonsterbeatsitaly.commonsterbeatsmall.commonsterbeatsnegozi.netmonsterbeatsok.com!monsterbeatsonlinestoreuk.commonsterbeatsoutlet.usmonsterbeatspascher.netmonsterbeatsru.commonsterbeatssales.commonsterbeatsshops.netmonsterbeatsstore.com#monsterbeatssydneyaustralia.commonsterbeatstang.commonsterbeatstienda.commonsterbeatstudio.commonsterbydrebeat.com!monstercasquebeatspascher.netmonstercheapbeatss.commonsterdrebeats-canada.netmonsterdrebeats-usa.commonsterdrebeats-usa.netmonsterheadphone.netmonsterproduct.netmonstersbeatbydres.commonstersdebea.commonstershopcheapbeats.netmoreheadphones.com +ms4dre.commybeatsbydrestudio.commybeatsbydreuk.commybeatscheapbydre.commyferrariheadphones.comnamemybeats.com neborder.comnegozimonsterbeats.comnegoziomonsterbeats.comnewbeatsblackfriday.com newbemany.comnewdrediscount.comnewestbeatsbydre.comnewlysprung.netnewmonst1erbeatsto1re.com!newmonsterbeatsheadphones.comnewschristmasshopping.comnflhotsalejerseys.com nicesshop.netofferairjordanlebron.comofficialbeatsbydreshop.comofficialbeatsbydrestore.comofficialdrdre.comofficialheadphone.com ogameblog.comonbeatsbydresale.com onlinemonsterbeatsonsale.com onsalekey.comonsaletrend.comoutletbeatsshop.compascherbeatsmonster.compaulsimon-music.comperfectkickz.netpersoneelsland.compicknicekicks.netpickshoesclothes.com pillbeatsblackfridaysale.compocketbiketrader.compowerbeats2wireless.compowerbeatsbydrdre.compowerbeatsbydre.compromonsterbeatsbydre.comprostudiobeatscybersale.com  rbsgr.comrepsneakermall.com repswing.com!salebeatslasteststyle4you.comsaleblackfridaydrebeats.comsalecheaphandbags.com samebags.com sanvaras.com +scnshop.cc +shoers.com shoestop2.comshop-headphones.netshopbeatsdre.com shopbydre.comshopcustomizedbeats.comshopdrebeats.comshopmonsterbeats.comshopping-days.netshoppinguheadphones.comsneaker666.comsneakerpage.netsneakerskick.comsolostudioksale.com soso7778.comspecialtyheadphones.comspiritclubs.comstraightouttasomewhere.comstudiobeatsbydrdre.comsulwerphoto.comsunglassessale2014.comsuperearsenjoy.comsupplybestjerseys.comsustainthesound.comsverigebeatsbydrdre.com szcheapmonsterheadphones.comszwinnertechnology.com takegoto.comthe-monster-beats.comthebeatsbydre.comthebeatsbydre.netthebeatsheadphonesale.com +theuab.nettopbeatsbydrdreoutlet.comtopbeatsdealer.comtopbeatsforsale.com tradevip1.com tteshop.com ubnw.net +unstyle.us&"usa-beatsbydreheadphonesonsale.net  v-has.com vip-beats.comvipbeatsbydre.comvipheadphones.com vipshoes2.com  wasdj.comwholesale-exporter1.comwholesalediscountpurses.comwholesalefine.comwholesaleonlinemart.comworldcoinpay.comyourmonsterbeats.com%!beatselectronicsllc.tt.omtrdc.netapple-icloud.cn +cnappleicloud.cn +cnapplemx-icloud.comicloud-apple.cn +cnicloud-content.comicloud-isupport.com  icloud.ch +icloud.com icloud.com.cn +cn  icloud.de  icloud.ee  icloud.fi  icloud.fr  icloud.hu  icloud.ie  icloud.is  icloud.jp  icloud.lv icloud.net.cn +cn  icloud.om +icloud.org  icloud.pt  icloud.ro  icloud.se  icloud.si  icloud.sk  icloud.vn icloudads.neticloudapple.cn +cn icloudbox.neticloudbrowser.net icloude.comicloudhome.comicloudmail.neticloudmusic.net icloudnet.net icloudpay.net icloudo.com +icloudo.de icloudo.net icloudos.de icloudos.neticloudsecure.neticloudsetup.comios-icloud.com +me.com myicloud.net mylcloud.net wwwicloud.com!www-cdn.icloud.com.akadns.net!12diasdepresentesdeitunes.com12diasderegalosdeitunes.cl12diasderegalosdeitunes.co!12diasderegalosdeitunes.co.cr!12diasderegalosdeitunes.co.ni!12diasderegalosdeitunes.co.ve12diasderegalosdeitunes.com"12diasderegalosdeitunes.com.co"12diasderegalosdeitunes.com.hn"12diasderegalosdeitunes.com.ni"12diasderegalosdeitunes.com.ve12diasderegalosdeitunes.cr12diasderegalosdeitunes.gt12diasderegalosdeitunes.hn12diasderegalosdeitunes.pe 12joursdecadeauxdeitunes.comapple-itunes.cn +cn itun.es itunbes.com ituneas.comitunes-apple.cn +cnitunes-radio.net  itunes.ca  itunes.co itunes.co.th +itunes.com  itunes.hk  itunes.mx +itunes.org +itunes.rio  itunes.usitunes12days.comitunesapple.cn +cnitunesessentials.comitunesfestivals.comitunesiradio.comituneslatino.comituneslogin.netitunesmatch.comitunesparty.comitunesradio.cn +cnitunesradio.comitunesradio.com.cn +cnitunesradio.rioitunesradio.tvitunesradio.twitunesstore.co itunesu.com itunesu.net iutunes.com wwwitunes.comitunes-apple.com.akadns.net apple apple.ae apple.at apple.be apple.bg apple.bs apple.ca apple.ch apple.cl apple.cmapple.cn +cn apple.co apple.co.cr apple.co.hu apple.co.jp apple.co.kr apple.co.mz apple.co.nz apple.co.th apple.co.uk  apple.com apple.com.af apple.com.au apple.com.bo apple.com.br apple.com.cn +cn apple.com.co apple.com.de apple.com.do apple.com.gr apple.com.gy apple.com.jm apple.com.lk apple.com.mg apple.com.mx apple.com.my apple.com.pa apple.com.pe apple.com.pl apple.com.pr apple.com.pt apple.com.py apple.com.sg apple.com.sv apple.com.tr apple.com.tw apple.com.uy apple.cz apple.de apple.dk apple.ee apple.es apple.eu apple.fi apple.fr apple.hamburg apple.hn apple.hr apple.hu apple.ie apple.in apple.is apple.it apple.jo apple.jp apple.kr apple.lk apple.lt apple.lv apple.me apple.my  apple.net apple.net.gr apple.nl apple.no apple.pk apple.pl apple.pt apple.ro apple.rs apple.ru apple.sa apple.se apple.sg apple.si apple.sk apple.so apple.tt apple.tw apple.uk apple.usapple.xn--czr694bapple.xn--fiqs8s  apple.xyz aplestore.comapple-store.cn +cnapple-store.netapple-store.wang applestor.com applestore.bg applestore.cc applestore.ch applestore.cm applestore.cn +cnapplestore.co.huapplestore.co.jpapplestore.co.ugapplestore.co.ukapplestore.comapplestore.com.auapplestore.com.bnapplestore.com.cn +cnapplestore.com.eeapplestore.com.egapplestore.com.grapplestore.com.hkapplestore.com.hrapplestore.com.joapplestore.com.myapplestore.com.phapplestore.com.plapplestore.com.ptapplestore.com.roapplestore.com.ruapplestore.com.snapplestore.com.tw applestore.de applestore.hk applestore.kr applestore.meapplestore.netapplestore.net.gr applestore.ph applestore.qa applestore.sgapplestore.wangapplestoreonline.comapplestorepro.euonlineapplestore.comapp-store.wangappe-store.comapple-appstore.cn +cnappleappstore.cn +cnappleappstore.netappleappstore.tv  appsto.reappstore.co.id appstore.hk appstore.my appstore.phappstoreapple.cn +cn asto.retvappstore.netapple-imac.com appleimac.comimac-apple.comimac-applecomputer.com imac.co +imac.co.nz imac.com imac.eu imac.gr imac.one imac.rs imacapple.comimacapplecomputer.comebookforipad.com euroipad.comfindmyipad.com indiaipad.com +ipad.co.kr ipad.de  ipad.host  ipad.wang  ipad3.com +ipadair.cl +ipadair.cmipadair.com.bripadair.com.es +ipadair.fr +ipadair.hk +ipadair.ie +ipadair.jp +ipadair.twipadaustralia.com ipadmini.cmipadmini.com.lk ipadmini.lk ipadpro.buzz +ukipad.comappleiphone.huappleiphone.netappleiphonecell.combestiphonestuff.comcooliphonecasesstore.comcustom-iphonecase.comdesigneriphonescases.com dl-iphone.comfundaiphone5s.com hebiphone.com hf-iphone.com +iphine.comiphone-8.com.cn +cn iphone-cd.com iphone-cn.com iphone-sh.comiphone-vip1.comiphone-vip2.comiphone-vip3.comiphone-vip4.comiphone-vip5.com iphone-x.tv iphone-yh.com iphone-zh.com  iphone.cm +iphone.com iphone.com.au iphone.com.gr  iphone.es iphone.host iphone.net.gr  iphone.pt  iphone.rs  iphone.ru iphone.wang iphone4.comiphone4.com.br iphone4s.com iphone5.comiphone5casescovers.comiphone5s5case.comiphoneacessorios.com.briphonecase2013.comiphonecase5.comiphonecases100.comiphonecases5.comiphoneclaro.com.briphonecollcase.com iphonefc.comiphonegermany.comiphonehangzhou.comiphoneimessage.comiphoneplus.wang iphonerip.net iphonese.tviphoneunlockimei.com iphonexs.tvonlyiphone5case.comaplleipods.comappleclassicipod.comdownloadsforipod.com ipod.ca ipod.ch ipod.cm ipod.co +ipod.co.nz +ipod.co.uk +ipod.co.za ipod.com ipod.com.au ipod.com.cn +cn ipod.com.fr ipod.com.hk ipod.com.sg ipod.com.tw ipod.de ipod.es ipod.eu ipod.fr ipod.gr ipod.hk ipod.is ipod.net ipod.no ipod.pk ipod.rs ipod.ru ipod.tw ipodcentre.nlipodcleaner.comipoditouch.com ipodnano.com ipodnano.netipodprices.com +ipodrip.caipodrocks.com.au  ipods.comipodshop.com.au ipodtouch.co ipodtouch.com +myipod.netoffrezdesipods.comsimplyipod.comwwwipodlounge.comimacsources.comlaunchpad.wang mac.wang +macbook.co +macbook.hk +macbook.tw macbook.wang macbookair.cn +cnmacbookair.co.krmacbookair.co.ukmacbookair.commacbookair.com.aumacbookair.com.cn +cnmacbookair.com.es macbookair.es macbookair.hk macbookair.kr macbookair.jpmacbookair.net macbookpro.comacbookpro.commacbookpro.com.aumacbookpro.net macbookpro.usmacbookpros.commacbooksale.comwwwmacbookair.comapple-watch.com.ru applewatch.hk applewatch.tv applewatch.twapplewatch.wangapplewatchedition.comapplewatchseries3.netapplewatchsport.comapplemusic.berlinapplemusic.comapplemusic.com.auapplemusic.hamburgapplemusic.wangapplemusicconnect.comapplemusicfestival.com musickit.netwwwapplemusic.comapple.comscoreresearch.com +apple.newsappleenews.comapplenews.berlinapplenews.hamburg applenews.tvapplenewsformat.com apple-pay.com apple-pay.rsapple-pay.wangapplepay.berlinapplepay.co.rsapplepay.com.twapplepay.hamburg applepay.hk applepay.info applepay.jp applepay.rs applepay.tvapplepaycash.cn +cnapplepaycash.com.cn +cnapplepaycash.netapplepaycash.tv!applepaymerchantsupplies.infoapplepaysupplies.berlinapplepaysupplies.cn +cnapplepaysupplies.com#applepaysupplies.com.cn +cnapplepaysupplies.infoapplepaysupplies.netapplepaysupplies.tvapplewallet.comapplewallet.tv +i-book.com +i-book.net ibook.co.nz  ibook.com ibook.eu  ibook.netibookpartner.comibooksauthor.com  iphoto.eu  iphoto.no  iphoto.se iphoto.wang  imovie.euimoviegallery.comimoviestage.comapplecare.berlin applecare.cc applecare.euapplecare.hamburgapplecare.wangappledarwin.comappledarwin.netdarwinsource.comdarwinsource.orgdarwinsourcecode.comappleaccount.netappleid-applemx.comappleid-applemx.usappleid-iclou.com appleid-uk.usappleid.berlin appleid.comappleid.hamburg +appleid.hk ids-apple.com myappleid.com appletv.com +appletv.fr appletv.wang appletv4.cn +cnappletv4.com.cn +cnappletvapp.appleappleone.audio appleone.blog appleone.chatappleone.cloud appleone.clubappleone.community appleone.filmappleone.guide appleone.hostappleone.space appleone.techappleone.website +shazam.com1to1computing.com.au1to1conference.com.au 5lml.com +a0pple.net aapl.twairport.brussels airport.com +airport.euairsupportapp.com airtunes.com airtunes.info airtunes.netalchemysynth.com  ap0le.com aple.com  apole.com +app0le.com +appl-e.com appl.com +appl4e.com  appla.comapple-darwin.comapple-darwin.netapple-darwin.org apple-dns.cn +cn apple-dns.comapple-dns.com.cn +cn apple-dns.netapple-enews.comapple-expo.com apple-expo.eu apple-hk.comapple-ibooks.cn +cn apple-inc.netapple-livephotoskit.com apple-maps.cn +cnapple-online.com apple-usa.netappleafrica.comappleantilles.comappleaustralia.comappleaustralia.com.auappleaustralia.net.au applebk.netapplecarbon.com applecard.tvapplecentar.co.rsapplecentar.rsapplecenter.cn +cnapplecenter.com.cn +cnapplecentre.com.auapplecentre.infoappleclub.com.hk applecom.comapplecomputer-imac.comapplecomputer.cn +cnapplecomputer.co.inapplecomputer.co.nzapplecomputer.com applecomputer.com.cn +cnapplecomputer.com.hkapplecomputer.com.twapplecomputer.huapplecomputer.krapplecomputerimac.comapplecomputerinc.infoapplecomputers.co.nzapplecoronavirus.com appledns.cn +cnappledns.com.cn +cn appleexpo.euappleexpo.infoapplefilmaker.comapplefilmmaker.comapplefinalcutproworld.comapplefinalcutproworld.netapplefinalcutproworld.orgapplehongkong.comapplehongkong.com.hkappleinclegal.comappleipodsettlement.comappleiservices.com applelink.comapplemagickeyboard.comapplemalaysia.com.myapplemasters.infoappleonline.comappleonline.net appleoriginalproductions.com +appleos.tvapplepencil.netapplepodcasts.comapplepremiumreseller.com.au applepremiumresellers.com.auapplereach.comapplereach.net apples-msk.ruapplescreensavers.comapplescript.infoappleshare.infoappleshop.co.uk applesiri.cn +cnapplesurveys.comappletaiwan.com appletips.net appleweb.net applexpo.net applezh.com  applf.com +applfe.com +applle.com  applw.comappmediagroup.com +appule.com  appye.com  apyle.com  beddit.tvbraeburncapital.com burstly.netburstlyrewards.com buyaapl.com buyaapl.net buyaple.com camelphat.comcamelspaceeffect.com +carbon.com catalina.hk cdn-apple.com  chomp.com +coreml.netdashwood360.comdesktopmovie.comdesktopmovie.netdesktopmovie.orgdesktopmovies.netdesktopmovies.orgdeveloper-advisor.comdevice-manager.usdigitalhub.comdiscussionsapple.com +dot-mac.de  dotmac.dedvdstudiopro.bizdvdstudiopro.comdvdstudiopro.infodvdstudiopro.netdvdstudiopro.orgdvdstudiopro.us +earpod.net ecgapp.com.cn +cn +ecgapp.netedu-research.org +emac.co.in emac.in  emagic.de +eworld.com faceid99.com faceid99.netfaceidglobal.com faceshift.cn +cn facetime.netfinalcutpro.comfind-apple.com firewire.cl firewire.eu geoport.com +homepod.cn +cn +hopstop.tv ichat.co.in idvd.eu  ikids.comilecture.co.nz ilife.eu ilife.gr +ilife.wang imessage.tv insidear.cn +cninsidemacintosh.comiosinthecar.comipa-iphone.net  ipple.com ischool.com itools.info  iwork.com iwork.se +iwork.wangjetfuelapp.comjetfuelapps.comlatticedata.com livephotos.cn +cnlivephotos.com.cn +cn livephotos.tvlojaiphone.com.br mac-mini.com mac.com +mac.com.au +mac.eu +mac.rs macappsto.re macboxset.com mach-os.com mach-os.net +machos.net macintosh.eumacintoshsoftware.com macmini.com macos.com.aumacossierra.com macosx.infomacosxlion.com macpazar.com macreach.com macreach.net mobileme.dkmr-apple.com.tw mzstatic.com +newton.com next.com overapple.com powerbook.eupullstring.netquatrowireless.com quicktime.cc quicktime.comquicktime.com.au quicktime.eu quicktime.net quicktime.tvreform-apple.comservices-apple.net siri.com spektral.cc texture.comthinkdifferent.us +touchid.tv touchid.wangtracking-location.comtruedepth3d.com tryrating.comwebobjects.co.uk webobjects.de webobjects.euwebobjects.net wuxiapple.com wwapple.netwww-sms-apple.com wwwapple.com wwwapple.net wwwlapple.comxn--czrs0t4phtr3a.cnxn--fiqs8sxootzz.cn xn--fiqs8sxootzz.xn--hxt814e!xn--gtvq61aiijy0b.xn--hxt814exn--gtvz22d.wangxn--gtvz22d.xn--hxt814exn--hxtr4rozx.xn--czr694b xn--kput3imi374g.xn--hxt814e#xn--ohq11k7pl25iyo8a.cn +cn xn--ruq8a011kt6y.xn--hxt814e, adcdownload.apple.com.akadns.net +cn!adcdownload.apple.com +cn."amp-api-search-edge.apps.apple.com +cn"amp-api.apps.apple.com +cn aod.itunes.apple.com +cn#api-edge.apps.apple.com +cnappldnld.apple.com +cn"appldnld.g.aaplimg.com +cnapps.apple.com +cnapps.mzstatic.com +cn(apptrailers.itunes.apple.com +cn bag.itunes.apple.com +cn'bookkeeper.itunes.apple.com +cnbooks.apple.com +cn!cds-cdn.v.aaplimg.com +cn$cds.apple.com.akadns.net +cn cds.apple.com +cncl2-cn.apple.com +cn<0cl2.apple.com.edgekey.net.globalredir.akadns.net +cncl4-cn.apple.com +cn'client-api.itunes.apple.com +cn+clientflow.apple.com.akadns.net +cn clientflow.apple.com +cn cma.itunes.apple.com +cn."configuration.apple.com.akadns.net +cn#configuration.apple.com +cn!communities.apple.com +cncstat.apple.com +cn."dd-cdn.origin-apple.com.akadns.net +cn(discussionschinese.apple.com +cn(download.developer.apple.com +cnfides-pol.apple.com +cngs-loc-cn.apple.com +cngs-loc.apple.com +cn%gsp10-ssl-cn.ls.apple.com +cn!gsp11-cn.ls.apple.com +cn!gsp12-cn.ls.apple.com +cn!gsp13-cn.ls.apple.com +cnC7gsp4-cn.ls.apple.com.edgekey.net.globalredir.akadns.net +cn, gsp4-cn.ls.apple.com.edgekey.net +cn gsp4-cn.ls.apple.com +cn gsp5-cn.ls.apple.com +cn(gspe11-2-cn-ssl.ls.apple.com +cn&gspe12-cn-ssl.ls.apple.com +cn&gspe19-cn-ssl.ls.apple.com +cn-!gspe19-cn.ls-apple.com.akadns.net +cn"gspe19-cn.ls.apple.com +cn#gspe21-ssl.ls.apple.com +cngspe21.ls.apple.com +cn#gspe35-ssl.ls.apple.com +cn&gspe85-cn-ssl.ls.apple.com +cniadsdk.apple.com +cn, icloud-cdn.icloud.com.akadns.net +cn icloud.cdn-apple.com +cn'images.apple.com.akadns.net +cn?3images.apple.com.edgekey.net.globalredir.akadns.net +cnimages.apple.com +cn3'init-p01md-lb.push-apple.com.akadns.net +cn init-p01md.apple.com +cn3'init-p01st-lb.push-apple.com.akadns.net +cn%init-p01st.push.apple.com +cn3'init-s01st-lb.push-apple.com.akadns.net +cn%init-s01st.push.apple.com +cn!init.itunes.apple.com +cn$iosapps.itunes.apple.com +cn(iosapps.itunes.g.aaplimg.com +cniphone-ld.apple.com +cn'itunes-apple.com.akadns.net +cnitunes.apple.com +cn#itunesconnect.apple.com +cn"js-cdn.music.apple.com +cn km.support.apple.com +cnmaps.apple.com +cn)mesu-cdn.apple.com.akadns.net +cn+mesu-china.apple.com.akadns.net +cnmesu.apple.com +cnmusic.apple.com +cn(ocsp-lb.apple.com.akadns.net +cnocsp.apple.com +cnoscdn.apple.com +cn-!oscdn.origin-apple.com.akadns.net +cn$osxapps.itunes.apple.com +cnpancake.apple.com +cn, pancake.cdn-apple.com.akadns.net +cnpd.itunes.apple.com +cnphobos.apple.com +cn!play.itunes.apple.com +cn1%prod-support.apple-support.akadns.net +cn$se-edge.itunes.apple.com +cn se2.itunes.apple.com +cn#search.itunes.apple.com +cn1%sf-api-token-service.itunes.apple.com +cnsp.itunes.apple.com +cn4(stocks-sparkline-lb.apple.com.akadns.net +cn&stocks-sparkline.apple.com +cn>2store.apple.com.edgekey.net.globalredir.akadns.net +cn'store.apple.com.edgekey.net +cnstore.apple.com +cn2&store.storeimages.apple.com.akadns.net +cn+store.storeimages.cdn-apple.com +cn+streamingaudio.itunes.apple.com +cnsu.itunes.apple.com +cn2&support-china.apple-support.akadns.net +cnsupport.apple.com +cn."swcatalog-cdn.apple.com.akadns.net +cnswcatalog.apple.com +cnswcdn.apple.com +cnswcdn.g.aaplimg.com +cn'swdist.apple.com.akadns.net +cnswdist.apple.com +cn+swscan-cdn.apple.com.akadns.net +cnswscan.apple.com +cn!sync.itunes.apple.com +cn1%updates-http.cdn-apple.com.akadns.net +cn&updates-http.cdn-apple.com +cn upp.itunes.apple.com +cnvalid.apple.com +cn-!valid.origin-apple.com.akadns.net +cn"weather-data.apple.com +cn<0www.apple.com.edgekey.net.globalredir.akadns.net +cn%www.apple.com.edgekey.net +cn www.apple.com +cn#^a[1-5]\.mzstatic\.com$ +cn0$^cdn(-cn)?[1-4]?\.apple-mapkit\.com$ +cn9-^cl[1-5]-cdn\.origin-apple\.com\.akadns\.net$ +cn!^cl[1-5]\.apple\.com$ +cn+^is[1-5](-ssl)?\.mzstatic\.com$ +cn$^s[1-5]?\.mzstatic\.com$ +cnapple.com.akadns.net%!courier-push-apple.com.akadns.netpush-apple.com.akadns.net asus.com asus.com.cn +cn atlassian.com bitbucket.org statuspage.ioaccbusiness.com +atandt.comatt-bundles.com att-japan.com att-mail.comatt-promotions.com att-rsvp.comatt.cn +cn att.com att.jobs att.net +att.tvattalascom.comattbelieves.comattbusiness.net attcenter.comattcollaborate.com +attcorp.cn +cnattexperts.com attglobal.netattinnovationspace.comattinternetservice.com +attjoy.comattnetclient.comattonlineoffers.com attproxy.comattpublicpolicy.comattpurchasing.comattsavings.comattspecial.com +attssl.comattstadium.comattsuppliers.com atttvnow.comattuverseoffers.comattuverseonline.com attvoip.com attwifi.comattwirelessinternet.comattwirelessonline.comattwirelesssolutions.com bellsouth.net +budatt.com +cobatt.com currently.com currently.netdirectvbusinessmarket.comenterprisepaging.com itcanwait.com mymmode.comnaturalvoices.comnettyinternet.comopenapiplatform.comopenapiservice.compatentgold.netpaygonline.comraponlinereview.com signalbar.comsundayready.com synaptic.netthanksloyalty.com tvpromise.com +uverse.comwebhosting.com att-idns.net +attdns.com +attdns.netna-att-idns.netaudiencenetwork.comaudiencenetwork.tvcabletvdirectv.com dierectv.com +dirctv.com direcpath.com direcpath.netdirecttv-deals.tvdirecttv-dish.com dkrecttv.com directtv.netdirecttvdeals.tvdirecttvreviews.comdirectv-4-you.comdirectv-newyork.com directv.comdirectvadsales.comdirectvatlantaga.comdirectvboston.comdirectvbundles.comdirectvbusiness.comdirectvcincinnatioh.comdirectvcinema.comdirectvconnect.comdirectvcookevilletn.comdirectvcrossvilletn.comdirectvdealer.comdirectvdeals.comdirectvdealsnow.com directvdsl.tvdirectvforhotels.comdirectvgrandslam.comdirectvhouston.comdirectvinternet.comdirectvkentucky.comdirectvlebanontn.comdirectvlosangeles.comdirectvmetropolisil.comdirectvmonitoring.comdirectvmurfreesborotn.comdirectvnewhampshire.comdirectvnow.comdirectvoffercodes.comdirectvonline.comdirectvplans.comdirectvpomise.comdirectvpromise.comdirectvpromotions.comdirectvrebate.comdirectvrichmond.comdirectvsavings.comdirectvsports.comdirectvsundayticket.com direectv.com +diretv.comdtv2009offers.comfreedirecttvspecial.com getdirect.tv hddirectv.com le-direct.tvmydirectgroove.commydirectvchannels.comredzonechannel.com txdirectv.com  xandr.combandwagonhost.com bwh1.net bwh8.net  bwh88.net canon c-ij.com canon-cee.comcanon-cmos-sensors.com canon-cna.comcanon-ebm.com.hkcanon-emea.comcanon-emirates.aecanon-europa.comcanon-europe.com canon-me.com canon-ois.qacanon-se.com.tw canon.am canon.at canon.az canon.ba canon.be canon.bg canon.ca canon.chcanon.cn +cn canon.co.il canon.co.uk canon.co.za  canon.com canon.com.al canon.com.au canon.com.by canon.com.cn +cn canon.com.cy canon.com.hk canon.com.mk canon.com.mt canon.com.my canon.com.tr canon.com.tw canon.cz canon.de canon.dk canon.ee canon.es canon.fi canon.fr canon.ge canon.gr canon.hr canon.hu canon.ie canon.it canon.kz canon.lt canon.lu canon.lv canon.me  canon.net canon.nl canon.no canon.pl canon.pt canon.ro canon.rs canon.ru canon.se canon.si canon.sk canon.tj canon.ua canon.uzcanonfoundation.orgcanonproprinters.com webex.ca webex.co.in webex.co.it webex.co.jp webex.co.kr webex.co.nz webex.co.uk  webex.com webex.com.au webex.com.br webex.com.cn +cn webex.com.hk webex.com.mx webex.de webex.es webex.fr ciscoacademynetriders.comcciernslabs.comcciesecuritylabs.comccievoicelabs.com  ccna5.netcisco-returns.comcisco-warrantyfinder.comcisco.cn +cn  cisco.com cisco.com.cn +cn +cisco.mobiciscoccservice.comciscoconnectcloud.comciscoconnectcloud.netciscoconnectcloud.orgciscocontest.comciscoerate.com ciscofax.comciscoinvestments.comciscojabbervideo.netciscokinetic.comciscoknowledgenetwork.comciscolearningsociety.orgciscolearningsystem.com ciscolive.comcisconetspace.comcisconetspace.infocisconetspace.netcisconetapp.comciscopartnermarketing.comciscopowercube.comciscoprice.comciscoresearch.comciscosoftware.com ciscospark.caciscospark.com ciscospark.jpciscotaccc.com ciscotr.com ciscoturk.netciscovideo.comciscowebseminars.com cloudlock.com cloupia.com cloupia.netconnect-in-canada.comcoreoptics.net cs.co +devm2m.com dnaspaces.io flipshare.comgpstheseries.com inlethd.cominternetofeverything.com ioe.com kscisco.com m2m.com +mcisco.commediafiles-cisco.com metacloud.com mindmeld.commultiplydiversity.commyciscobenefits.com  mysdn.com +mysdn.info  mysdn.net netacad.com netacad.netnetwork-auth.cn +cnobservable.net obsrvbl.com parstream.com parstream.net parstream.orgservices-exchange.comstatic-cisco.comtandberg-china.com tandberg.com +versly.comvideochampion.com virtuata.comwballiance.com!whyiwantciscotelepresence.com wifi-mx.comyoutubecisco.comapp-dynamics.comappdynamics.co.ukappdynamics.comappdynamics.deappdynamics.frappdynamics.infoappdynamics.jpappdynamics.org +mearki.com meraki-go.com  meraki.hk merakigo.com +tail-f.com  tailf.comcisco.evergage.comciscolivehls-i.akamaihd.net clco.cc +cloudc.one cloudcone.com cloudcone.net +cfblob.comcloudchoose.comcloudvolumes.com +cmpaas.com +cpedge.comcrit-staging.comexperience-vmware.com gemfire.netgeodesummit.com getboxer.com gitstar.com gitstar.net gopivotal.net greenplum.net hwslabs.com immidio.comitfromtheinside.comlatamvmwareforum.compivotalinitiative.comsnapvolumes.com ssdevrd.com vcanedge.com vcloudair.net vfabric.netvidmpreview.com +virsto.com +virsto.net vmglobal.net +vmmark.comvmtestdrive.com vmw.comvmware-cloudmanagement.comvmware-techcenter.comvmware20mosaic.comvmwareausnews.com!vmwarecertificationvideos.comvmwarecloud.comvmwaredemandcenter.comvmwareemeablog.comvmwaregrid.comvmwarehorizon.comvmwareidentity.comvmwarelearning.comvmwarelearningplatform.comvmwarestuff.comvmwareusergroupstore.comvmwareviewpoint.com vmwarevmc.com vmwdemo.com vmwgcomms.comvmwhorizonair.comvmwidm-ads.com +vmwidm.comvmwlabconnect.comvmwlearningplatform.com vmworld.comvmworld2010.comvmworld2013.comvmwsalesrewards.comvmwservices.com +vnware.netwhychoosehorizon.comwhychooseview.comwhychoosevmwareeuc.comwindowsuem.comworkspaceair.com xlstudio.comavinetworks.com +badaas.com bitnami.combitnamiapp.combitnamistudio.comdockerizer.comcloudcredibility.comcloudhealthtech.com cloudlive.comkubeacademy.com kubeapps.com +nyansa.com velocloud.com gopivotal.com heptio.cn +cn +heptio.com aliveipc.com aliveitsm.comaliveprofiler.com alivercm.comaliverewind.com alivertsm.com alivevm.com alivevmax.com alivevue.com vsphere.com vsphere.net air-watch.comairwatchexpress.comairwatchqa.com +getws1.com getwsone.comwhatisairwatch.comwhatisworkspaceone.comworkspaceone.comvmware.tt.omtrdc.netdelldell-brand.com dell.com dellcdn.com!achat-followers-instagram.com#acheter-followers-instagram.com$ acheterdesfollowersinstagram.com!acheterfollowersinstagram.combookstagram.comcarstagram.comcdninstagram.comchickstagram.com ig.me  igcdn.com igsonar.com igtv.com imstagram.com imtagram.cominstaadder.cominstachecker.cominstafallow.cominstafollower.cominstagainer.com instagda.com instagify.cominstagmania.com instagor.cominstagram-brand.cominstagram-engineering.cominstagram-help.cominstagram-press.cominstagram-press.net instagram.cominstagramci.cominstagramcn.cominstagramdi.cominstagramhashtags.netinstagramhilecim.cominstagramhilesi.orginstagramium.cominstagramizlenme.cominstagramkusu.cominstagramlogin.cominstagramm.cominstagramn.cominstagrampartners.cominstagramphoto.cominstagramq.cominstagramsepeti.cominstagramtakipcisatinal.netinstagramtakiphilesi.cominstagramtips.cominstagramtr.com instagran.cominstagranm.com instagrem.com instagrm.cominstagtram.com instagy.cominstamgram.cominstangram.cominstanttelegram.cominstaplayer.net instastyle.tv instgram.com intagram.com intagrm.com intgram.comkingstagram.comlnstagram-help.comtheinstagramhack.comoninstagram.comonline-instagram.comonlineinstagram.comweb-instagram.netwwwinstagram.comfbmessenger.comm.me messenger.com +nbabot.net binoculus.com buyoculus.com ocul.usoculus-china.com +oculus.comoculus2014.com oculus3d.comoculusblog.comoculusbrand.comoculuscasino.net oculuscdn.comoculusconnect.comoculusdiving.comoculusforbusiness.comoculusrift.com oculusvr.compowersunitedvr.com wa.mewhatsapp-plus.infowhatsapp-plus.mewhatsapp-plus.net whatsapp.cc whatsapp.com whatsapp.info whatsapp.net whatsapp.org whatsapp.tvwhatsappbrand.comaboutfacebook.com accessfacebookfromschool.com acebooik.com acebook.comadvancediddetection.comaskfacebook.netaskfacebook.org +atdmt2.com atlasdmt.comatlasonepoint.combuyingfacebooklikes.comcareersatfb.comcelebgramme.comchina-facebook.com click-url.comcomo-hackearfacebook.comcrowdtangle.com dacebook.comdlfacebook.comdotfacebook.comdotfacebook.netexpresswifi.com faacebok.com faacebook.com faasbook.com facbebook.com facbeok.com +facboo.com facbook.com facbool.com facboox.com faccebook.comfaccebookk.com facdbook.com facdebook.com face-book.com faceabook.com facebboc.com facebbook.comfacebboook.com facebcook.com facebdok.com facebgook.com facebhook.com facebkkk.com facebo-ok.com faceboak.com facebock.com facebocke.com facebof.com faceboik.com facebok.comfacebokbook.com facebokc.com facebokk.com facebokok.com faceboks.com facebol.com facebolk.com facebomok.com faceboo.com facebooa.com faceboob.comfaceboobok.com facebooc.com faceboock.com facebood.com facebooe.com faceboof.com facebooi.com facebooik.com facebooik.org facebooj.comfacebook-corp.comfacebook-covid-19.comfacebook-ebook.comfacebook-forum.comfacebook-inc.comfacebook-login.comfacebook-newsroom.comfacebook-newsroom.orgfacebook-pmdcenter.comfacebook-pmdcenter.netfacebook-pmdcenter.orgfacebook-privacy.comfacebook-program.comfacebook-studio.comfacebook-support.orgfacebook-texas-holdem.comfacebook-texas-holdem.net facebook.br facebook.ca facebook.cc facebook.comfacebook.design facebook.net facebook.hu facebook.in fecebook.net facebook.nl facebook.org facebook.se facebook.shop facebook.tv facebook.us facebook.wangfacebook123.orgfacebook30.comfacebook30.netfacebook30.orgfacebook4business.comfacebookads.com"facebookadvertisingsecrets.comfacebookatschool.comfacebookawards.comfacebookblueprint.netfacebookbrand.comfacebookbrand.net3/facebookcanadianelectionintegrityinitiative.comfacebookcareer.comfacebookcheats.comfacebookck.comfacebookclub.comfacebookcom.comfacebookconsultant.orgfacebookcoronavirus.comfacebookcovers.orgfacebookcredits.infofacebookdating.netfacebookdusexe.orgfacebookemail.comfacebookenespanol.comfacebookexchange.comfacebookexchange.netfacebookfacebook.comfacebookflow.comfacebookgames.comfacebookgraphsearch.comfacebookgraphsearch.infofacebookgroups.comfacebookhome.ccfacebookhome.comfacebookhome.infofacebookhub.com facebooki.comfacebookinc.comfacebookland.comfacebooklikeexchange.comfacebooklive.comfacebooklivestaging.netfacebooklivestaging.orgfacebooklogin.comfacebooklogin.infofacebookloginhelp.netfacebooklogs.comfacebookmail.comfacebookmail.tvfacebookmanager.infofacebookmarketing.info facebookmarketingpartner.com!facebookmarketingpartners.comfacebookmobile.comfacebookmsn.comfacebooknews.comfacebooknfl.comfacebooknude.comfacebookofsex.comfacebookook.comfacebookpaper.comfacebookpay.comfacebookphonenumber.netfacebookphoto.comfacebookphotos.comfacebookpmdcenter.comfacebookpoke.netfacebookpoke.orgfacebookpoker.infofacebookpokerchips.infofacebookporn.netfacebookporn.orgfacebookporno.netfacebookportal.com facebooks.comfacebooksafety.comfacebooksecurity.netfacebookshop.comfacebooksignup.netfacebooksite.netfacebookstories.comfacebookstudios.netfacebookstudios.orgfacebooksupplier.comfacebooksuppliers.comfacebookswagemea.comfacebookswagstore.comfacebooksz.comfacebookthreads.netfacebooktv.netfacebooktv.orgfacebookvacation.com facebookw.comfacebookworld.com facebool.com facebool.info facebooll.com faceboom.com faceboon.com faceboonk.comfaceboooik.com faceboook.com faceboop.com faceboot.com faceboox.com facebopk.com facebpook.com facebuk.com facebuok.com facebvook.com facebyook.com facebzook.comfacecbgook.com facecbook.com facecbook.org facecook.com facecook.org facedbook.com faceebok.com faceebook.com faceebot.com facegbok.com facegbook.com faceobk.com faceobok.com faceobook.com faceook.comfacerbooik.com facerbook.com facesbooc.comfacesounds.com facetook.com facevbook.com facewbook.co facewook.comfacfacebook.com facfebook.com fackebook.com facnbook.com facrbook.com facvebook.com facwebook.com facxebook.com fadebook.com +faebok.com faebook.com faebookc.com faeboook.com faecebok.com faesebook.comfafacebook.com faicbooc.com fasebokk.com fasebook.com faseboox.com favebook.com faycbok.com +fb.careers +fb.com fb.me fbacebook.com fbbmarket.comfbboostyourbusiness.com  fbcdn.com  fbcdn.netfbfeedback.com +fbhome.com fbidb.io  fbinc.comfbinnovation.comfbmarketing.com  fbreg.com +fbrpms.com  fbsbx.com  fbsbx.netfbsupport-covid.netfbthirdpartypixel.comfbthirdpartypixel.netfbthirdpartypixel.org  fburl.comfbworkmail.com fcacebook.com fcaebook.com fcebook.com fcebookk.comfcfacebook.comfdacebook.info feacboo.com feacbook.com feacbooke.com feacebook.com fecbbok.com fecbooc.com fecbook.com feceboock.com feceboox.com fececbook.com  feook.com ferabook.com fescebook.com fesebook.com ffacebook.com fgacebook.com ficeboock.com fmcebook.com fnacebook.com fosebook.com fpacebook.com fqcebook.com fracebook.com  freeb.comfreebasics.comfreebasics.net +freebs.comfreefacebook.comfreefacebook.netfreefacebookads.netfreefblikes.comfreindfeed.comfriendbook.info friendfed.comfriendfeed-api.comfriendfeed-media.comfriendfeed.comfriendfeedmedia.com fsacebok.com fscebook.comfundraisingwithfacebook.comfunnyfacebook.orgfutureofbusinesssurvey.org gacebook.com gameroom.comgfacecbook.com +groups.comhackerfacebook.comhackfacebook.comhackfacebookid.comhifacebook.info!howtohackfacebook-account.comhsfacebook.comhttpfacebook.comhttpsfacebook.comhttpwwwfacebook.com i.org internet.org klik.me liverail.com liverail.tvlogin-account.netmarkzuckerberg.commidentsolutions.commobilefacebook.commoneywithfacebook.com myfbfans.com newsfeed.com nextstop.comonline-deals.netopencreate.orgreachtheworldonfacebook.com rocksdb.orgshopfacebook.comsportsfacebook.comsportstream.comsupportfacebook.comterragraph.comthefacebook.comthefacebook.net thefind.comtoplayerserver.comviewpointsfromfacebook.comwhyfacebook.com worldhack.comwww-facebook.comwwwfacebok.comwwwfacebook.comwwwmfacebook.comzuckerberg.comzuckerberg.netfacebookwork.com +redkix.com workplace.comworkplaceusecases.comfbcdn-a.akamaihd.net  aorus.com aoruszone.cn +cn gigabyte.cn +cn gigabyte.comgigabyte2.azureedge.netsa78gs.wpc.edgecastcdn.net"sni1dcb6gl.wpc.edgecastcdn.net godaddy.comx.co godaddy blogspot.ae blogspot.al blogspot.am blogspot.ba blogspot.be blogspot.bg blogspot.bj blogspot.ca blogspot.cf blogspot.ch blogspot.clblogspot.co.atblogspot.co.idblogspot.co.ilblogspot.co.keblogspot.co.nzblogspot.co.ukblogspot.co.za blogspot.comblogspot.com.arblogspot.com.aublogspot.com.brblogspot.com.byblogspot.com.coblogspot.com.cyblogspot.com.eeblogspot.com.egblogspot.com.esblogspot.com.mtblogspot.com.ngblogspot.com.trblogspot.com.uy blogspot.cv blogspot.cz blogspot.de blogspot.dk blogspot.fi blogspot.fr blogspot.gr blogspot.hk blogspot.hr blogspot.hu blogspot.ie blogspot.in blogspot.is blogspot.it blogspot.jp blogspot.kr blogspot.li blogspot.lt blogspot.lu blogspot.md blogspot.mk blogspot.mx blogspot.my blogspot.nl blogspot.no blogspot.pe blogspot.pt blogspot.qa blogspot.re blogspot.ro blogspot.rs blogspot.ru blogspot.se blogspot.sg blogspot.si blogspot.sk blogspot.sn blogspot.td blogspot.tw blogspot.ug blogspot.vn2mdn.net +ads admob.com +ads adsense.com +ads'adsensecustomsearchads.com +ads%adsenseformobileapps.com +ads$advertisercommunity.com +ads%advertiserscommunity.com +ads"adwords-community.com +ads adwords.com +adsadwordsexpress.com +ads app-measurement.com +ads&clickserver.googleads.com +adsdoubleclick.com +adsdoubleclick.net +ads!google-analytics.com +adsgoogleadapis.com +ads!googleadservices.com +ads googleanalytics.com +adsgoogleoptimize.com +ads"googlesyndication.com +ads!googletagmanager.com +ads"googletagservices.com +ads'googletraveladservices.com +ads +urchin.com +ads>1^adservice\.google\.([a-z]{2}|com?)(\.[a-z]{2})?$ +adscharlestonroadregistry.comregistry.google get.app get.dev get.how get.page iam.soyxn--p8j9a0d9c9a.xn--q9jyb4c youtubeggpht.cn +cn  ggpht.comgooglevideo.comwithyoutube.com youtu.beyoutube-nocookie.com +youtube.ae +youtube.al +youtube.am +youtube.at +youtube.az +youtube.ba +youtube.be +youtube.bg +youtube.bh +youtube.bo +youtube.by +youtube.ca youtube.cat +youtube.ch +youtube.cl +youtube.co youtube.co.ae youtube.co.at youtube.co.cr youtube.co.hu youtube.co.id youtube.co.il youtube.co.in youtube.co.jp youtube.co.ke youtube.co.kr youtube.co.ma youtube.co.nz youtube.co.th youtube.co.tz youtube.co.ug youtube.co.uk youtube.co.ve youtube.co.za youtube.co.zw youtube.comyoutube.com.aryoutube.com.auyoutube.com.azyoutube.com.bdyoutube.com.bhyoutube.com.boyoutube.com.bryoutube.com.byyoutube.com.coyoutube.com.doyoutube.com.ecyoutube.com.eeyoutube.com.egyoutube.com.esyoutube.com.ghyoutube.com.gryoutube.com.gtyoutube.com.hkyoutube.com.hnyoutube.com.hryoutube.com.jmyoutube.com.joyoutube.com.kwyoutube.com.lbyoutube.com.lvyoutube.com.lyyoutube.com.mkyoutube.com.mtyoutube.com.mxyoutube.com.myyoutube.com.ngyoutube.com.niyoutube.com.omyoutube.com.payoutube.com.peyoutube.com.phyoutube.com.pkyoutube.com.ptyoutube.com.pyyoutube.com.qayoutube.com.royoutube.com.sayoutube.com.sgyoutube.com.svyoutube.com.tnyoutube.com.tryoutube.com.twyoutube.com.uayoutube.com.uyyoutube.com.ve +youtube.cr +youtube.cz +youtube.de +youtube.dk +youtube.ee +youtube.es +youtube.fi +youtube.fr +youtube.ge +youtube.gr +youtube.gt +youtube.hk +youtube.hr +youtube.hu +youtube.ie +youtube.in +youtube.iq +youtube.is +youtube.it +youtube.jo +youtube.jp +youtube.kr +youtube.kz +youtube.la +youtube.lk +youtube.lt +youtube.lu +youtube.lv +youtube.ly +youtube.ma +youtube.md +youtube.me +youtube.mk +youtube.mn +youtube.mx +youtube.my +youtube.ng +youtube.ni +youtube.nl +youtube.no +youtube.pa +youtube.pe +youtube.ph +youtube.pk +youtube.pl +youtube.pr +youtube.pt +youtube.qa +youtube.ro +youtube.rs +youtube.ru +youtube.sa +youtube.se +youtube.sg +youtube.si +youtube.sk +youtube.sn youtube.soy +youtube.sv +youtube.tn +youtube.tv +youtube.ua +youtube.ug +youtube.uy +youtube.vnyoutubeeducation.comyoutubefanfest.comyoutubegaming.comyoutubego.co.idyoutubego.co.in youtubego.comyoutubego.com.br youtubego.id youtubego.inyoutubei.googleapis.comyoutubekids.comyoutubemobilesupport.com yt.be  ytimg.comand +chromedclkgbizgle gmailgoogoog +googleguge hangout nexus xn--qcka1pmc  google.ad  google.ae  google.al  google.am  google.as  google.at  google.az  google.ba  google.be  google.bf  google.bg  google.bi  google.bj  google.bs  google.bt  google.by  google.ca +google.cat  google.cd  google.cf  google.cg  google.ch  google.ci  google.cl  google.cm google.cn +cn google.co.ao google.co.bw google.co.ck google.co.cr google.co.id google.co.il google.co.in google.co.jp google.co.ke google.co.kr google.co.ls google.co.ma google.co.mz google.co.nz google.co.th google.co.tz google.co.ug google.co.uk google.co.uz google.co.ve google.co.vi google.co.za google.co.zm google.co.zw +google.com google.com.af google.com.ag google.com.ai google.com.ar google.com.au google.com.bd google.com.bh google.com.bn google.com.bo google.com.br google.com.bz google.com.co google.com.cu google.com.cy google.com.do google.com.ec google.com.eg google.com.et google.com.fj google.com.gh google.com.gi google.com.gt google.com.hk google.com.jm google.com.kh google.com.kw google.com.lb google.com.ly google.com.mm google.com.mt google.com.mx google.com.my google.com.na google.com.ng google.com.ni google.com.np google.com.om google.com.pa google.com.pe google.com.pg google.com.ph google.com.pk google.com.pr google.com.py google.com.qa google.com.sa google.com.sb google.com.sg google.com.sl google.com.sv google.com.tj google.com.tr google.com.tw google.com.ua google.com.uy google.com.vc google.com.vn  google.cv  google.cz  google.de  google.dj  google.dk  google.dm  google.dz  google.ee  google.es  google.fi  google.fm  google.fr  google.ga  google.ge  google.gg  google.gl  google.gm  google.gr  google.gy  google.hn  google.hr  google.ht  google.hu  google.ie  google.im  google.iq  google.is  google.it  google.je  google.jo  google.kg  google.ki  google.kz  google.la  google.li  google.lk  google.lt  google.lu  google.lv  google.md  google.me  google.mg  google.mk  google.ml  google.mn  google.ms  google.mu  google.mv  google.mw  google.ne  google.nl  google.no  google.nr  google.nu  google.pl  google.pn  google.ps  google.pt  google.ro  google.rs  google.ru  google.rw  google.sc  google.se  google.sh  google.si  google.sk  google.sm  google.sn  google.so  google.sr  google.st  google.td  google.tg  google.tl  google.tm  google.tn  google.to  google.tt  google.vg  google.vu  google.ws 0emm.com  1e100.net  1ucrs.com +466453.com abc.xyz adgoogle.net +admeld.comangulardart.org +api.ai +apigee.com appbridge.ca appbridge.io appbridge.it appspot.com +apture.com area120.com +asp-cc.com autodraw.com bandpage.combaselinestudy.combaselinestudy.org bazel.build bdn.devbeatthatquote.com  blink.org blogblog.com blogger.combrocaproject.com +brotli.org bumpshare.com +bumptop.ca bumptop.com bumptop.net bumptop.org bumptunes.comcampuslondon.com certificate-transparency.org +chrome.comchromebook.comchromecast.com chromeos.dev chromium.orgchronicle.securitychroniclesec.comcloudburstresearch.comcloudfunctions.netcloudrobotics.comcobrasearch.com codespot.com conscrypt.com conscrypt.orgcookiechoices.org  coova.com  coova.net  coova.orgcrossmediapanel.com crr.com  cs4hs.comdartsearch.netdataliberation.org  debug.comdebugproject.com deepmind.comdevsitetest.howdialogflow.comdigitalassetlinks.org episodic.comfeedburner.com +fflick.comfinanceleadsonline.comfirebaseapp.comfirebaseio.com +foofle.com froogle.com fuchsia.dev  g-tun.comg.cn +cng.co g.dev +g.page gateway.devgerritcodereview.comgetbumptop.com ggoogle.com gipscorp.com gkecnapps.cn +cn globaledu.org  gmail.com gmodules.com  gogle.com +gogole.comgonglchuangl.net +goo.gl +googel.com +googil.com  googl.comgoogle-syndication.com google.berlin +google.dev +google.net +google.orggoogle.ventures"googleacquisitionmigration.com googleapis.cn +cngoogleapis.comgoogleapps.comgooglearth.comgoogleblog.com googlebot.comgooglecapital.comgooglecert.netgooglecnapps.cn +cngooglecode.comgooglecommerce.comgooglecompare.co.ukgoogledanmark.comgoogledomains.comgoogledrive.com googlee.comgoogleearth.comgooglefiber.netgooglefinland.comgooglemail.comgooglemaps.comgooglepagecreator.comgooglephotos.comgoogleplay.comgoogleplus.comgooglesource.comgooglestore.comgooglesverige.comgoogleusercontent.comgoogleventures.com +googlr.com +goolge.com gooogle.com gridaware.app gsrc.io +gstatic.cn +cn gstatic.comgstaticcnapps.cn +cn +gsuite.com +gv.com gvt0.com gvt1.com gvt2.com gvt3.com gvt5.com gvt6.com gvt7.com gvt9.comhdrplusdata.org hindiweb.comhowtogetmo.co.ukhtml5rocks.com hwgo.comiamremarkable.org igoogle.com impermium.com +j2objc.orgjibemobile.com keyhole.comkeytransparency.comkeytransparency.fookeytransparency.org lanternal.com like.commadewithcode.com material.io mdialog.com meet.newmfg-inspector.commobileview.pagemoodstocks.com near.by nest.com nomulus.foo +oauthz.com on.here on2.comonefifteen.netonefifteen.orgoneworldmanystories.com openthread.io openweave.io orbitera.com  page.linkpagespeedmobilizer.com pageview.mobi panoramio.compartylikeits1986.orgpaxlicense.org +picasa.com picasaweb.com picasaweb.net picasaweb.org +picnik.com pittpatt.com +pixate.com postini.comprojectara.comprojectbaseline.compublishproxy.comquestvisual.comquickoffice.com quiksee.com +revolv.comridepenguin.com run.appsavethedate.foo +saynow.com schemer.comscreenwisetrends.comscreenwisetrendspanel.com snapseed.com solveforx.com +stadia.devstcroixmosquito.comstcroixmosquitoproject.comstudywatchbyverily.comstudywatchbyverily.orgstxmosquito.comstxmosquitoproject.comstxmosquitoproject.netstxmosquitoproject.org synergyse.comtensorflow.org  tfhub.devthecleversense.comthegooglestore.comthinkquarterly.co.ukthinkquarterly.comthinkwithgoogle.com tiltbrush.com txcloud.net  txvia.comunfiltered.news useplannr.comusvimosquito.comusvimosquitoproject.comvelostrata.com +verily.comverilylifesciences.comverilystudyhub.comverilystudywatch.comverilystudywatch.org +wallet.com  waymo.com waze.com web.app web.devwebappfieldguide.comwebmproject.orgwebpkgcache.com +webrtc.orgweltweitwachsen.dewhatbrowser.org widevine.comwithgoogle.com womenwill.comwomenwill.com.br womenwill.id womenwill.in womenwill.mx  x.company +x.team xn--9kr7l.comxn--9trs65b.comxn--flw351e.comxn--ggle-55da.comxn--gogl-0nd52e.comxn--gogl-1nd42e.comxn--ngstr-lra8j.com xplr.cozukunftswerkstatt.de265.com +cn2mdn.net +cn adservice.google.com +cnapp-measurement.com +cn beacons.gcp.gvt2.com +cnbeacons.gvt2.com +cnbeacons3.gvt2.com +cn c.admob.com +cn(c.android.clients.google.com +cn!cache.pack.google.com +cn%clickserve.dartsearch.net +cn)clientservices.googleapis.com +cncorp.google.com +cn crl.pki.goog +cn"csi-china.l.google.com +cn dl.google.com +cndl.l.google.com +cndoubleclick.net +cn-!firebase-settings.crashlytics.com +cn fonts.googleapis.com +cn google-analytics.com +cn googleadservices.com +cngoogleanalytics.com +cn!googlesyndication.com +cn googletagmanager.com +cn!googletagservices.com +cngtm.oasisfeng.com +cn!imasdk.googleapis.com +cn kh.google.com +cn ocsp.pki.goog +cn, pagead-googlehosted.l.google.com +cn!pki-goog.l.google.com +cn recaptcha.net +cnredirector.gvt1.com +cn)safebrowsing-cache.google.com +cn'safebrowsing.googleapis.com +cn$settings.crashlytics.com +cn-!ssl-google-analytics.l.google.com +cn%toolbarqueries.google.com +cntools.google.com +cntools.l.google.com +cn$translate.googleapis.com +cn!update.googleapis.com +cn-!www-googletagmanager.l.google.com +cnwww.recaptcha.net +cn0$^khm([0-3]|db)?\.google(apis)?\.com$ +cn  hinet.net +123-hp.com123hplaserjet.com8008206616.com as-hp.cabaterias-hp.com campushp.comcolorprotechnology.com +compaq.orgdavid-laserscanner.com demoprint.comdigitalpack.com eprintsw.comgaming-notebooks.comgetprintersupports.comhp-imagine.comhp-infolab.com hp-invent.comhp-invent.info +hp-mns.comhp-printing.comhp-webplatform.com  hp-ww.com +hp.com +hp.company hp.io hp3d.comhp3dmetals.comhp3dprinter.comhp3dsamplepromo.comhpallinoneprinter.comhpapplicationscenter.com hpbestbuy.comhpbluecarpet.comhpbluecarpet.nethpbuiltforlearning.com hpbundle.com hpcampus.comhpcatridge.com  hpccp.com  hpceo.com  hpcmw.nethpcodewarsbcn.comhpcomputers.comhpcomputerservices.comhpconnected.comhpconnected.nethpconnected.orghpconnected.ushpconnectedstage.comhpcontinuum.com  hpcpi.com hpcu.orghpcustomersupport.comhpcustomersupport.net +hpdaas.comhpdesignjetl25500.comhpdesktopcomputer.comhpdownloadstore.comhpdreamcolor.com hpdriver.com hpdrivers.com hpdrivers.org hpeclipse.com hpengage.com hpeprint.comhpeprintcenter.com hpeurope.comhpeventcenter.com +hpfaqs.comhpfeedback.com +hpgift.com +hpgpas.comhpgraphicspartners.com  hpiie.org +hpinc.info  hpinc.nethpindigopress.com hpinkjet.comhpinstantink.cahpinstantink.comhpkeyboard.com hplaptop.comhplaptopbattery.comhplargeformatremote.comhplatexknowledgecenter.com hplfmedia.com  hplip.nethplipopensource.comhpmarketplace.comhpmemorychips.comhpmicrcartridge.com +hpmini.com hpmobile.comhpofficejetprinter.comhponlinehelp.comhponlineprinting.comhppage5000.comhppavillionlaptop.comhpphotoscanners.comhpprinterdrivers.comhpprinterinstalls.comhpprintersupplies.comhpsalescentral.com hpserver.comhpservices.comhpshooping.com +hpshop.com hpshoping.com hpshopping.hk hpsignage.com hpsmart.com hpsmarts.comhpsmartstage.comhpsmartupdate.comhpsoftware.com hpspeaker.comhpsprocket.com  hpsso.comhpstore-china.comhpstore-emea.com +hpstore.cn +cn hpstore.comhpstorethailand.com hpsupport.comhpsuresupply.comhptechventures.com hpto.net hptouch.comhptouchpointmanager.comhptrainingcenter.com  hpuae.comhpuniversity.infohpusertraining.com +hpveer.comhpvirtualthin.com hpwallart.comhpwellnesscentral.com  hpwsn.com i-123-hp.com inkchoice.cominstantink.comleavinghpinc.comlife-global.orgmyhpsupport.com printeron.comprintersetupsupport.comprintspots.comprintspots.netserviceshp.comthecompaqstore.comtouchsmartpc.comtouchsmartpc.nettouchsmartpc.orgworkstations.tv www8-hp.comxn--6eup7j.comxn--6eup7j.nethpstore.corpmerchandise.comibmweatherchannel weatherappdomain.cloud bluemix.com bluemix.net ibm.com +ibm.eu ibm.net +ibm.us s-bluemix.net s81c.com intel intel.ac intel.ae intel.af intel.ag intel.ai intel.ar intel.at intel.az intel.ba intel.bg intel.bh intel.bi intel.bo intel.bs intel.by intel.ca intel.cc intel.cg intel.ch intel.cl intel.cmintel.cn +cn intel.co.ae intel.co.cr intel.co.id intel.co.il intel.co.jp intel.co.kr intel.co.uk intel.co.za  intel.com intel.com.ar intel.com.au intel.com.bo intel.com.br intel.com.cn +cn intel.com.co intel.com.ec intel.com.hk intel.com.jm intel.com.mx intel.com.my intel.com.pe intel.com.ph intel.com.pr intel.com.py intel.com.tr intel.com.tw intel.com.uy intel.com.ve intel.cr intel.cu intel.cz intel.de intel.dk intel.dz intel.ec intel.ee intel.eg intel.es intel.eu intel.fi intel.fr intel.ga intel.gd intel.ge intel.gl intel.gm intel.gr intel.gs intel.gt intel.gy intel.hk intel.hn intel.ht intel.hu intel.ie intel.in intel.io intel.it intel.je intel.jo intel.jp intel.ke intel.la intel.lc intel.lk intel.lt intel.lu intel.ly intel.ma intel.md intel.me intel.mg intel.mk intel.mn intel.mp intel.mt intel.mu intel.mw intel.mx intel.my intel.ng intel.nl intel.nu intel.nz intel.pa intel.pe intel.ph intel.pl intel.pn intel.re intel.ro intel.ru intel.rw intel.sa intel.sc intel.se intel.sg intel.si intel.sk intel.sn intel.sr intel.st intel.sv intel.sx intel.sy intel.tf intel.tj intel.tl intel.tm intel.tn intel.tt intel.tv intel.tw intel.ua intel.uk intel.us intel.uy intel.uz intel.vg intel.vn intel.vu intel.wf intel.yt +altera.comalteraforum.comalteraforums.comalteraforums.netalterauserforum.comalterauserforum.netalterauserforums.comalterauserforums.net buyaltera.com celeron.com celeron.net centrino.com centrino.net  chips.com cilk.com cilk.netcloudinsights.comclusterconnection.com coreduo.comcoreextreme.comcrosswalk-project.comcrosswalk-project.netdoceapower.com  easic.com enpirion.comexascale-tech.comexploreintel.comgordonmoore.cominsidefilms.com intc.comintel-research.net&"intel-university-collaboration.netintelamericasstore.comintelapacstore.com intelatom.netintelcapital.comintelcapital.netintelcloudbuilders.comintelcloudfinder.comintelemeastore.cominteleventexpress.comintelforchange.comintelfreepress.com intelgo.netintelinsight.cominteliotmarketplace.com +intell.comintellearningseries.comintellinuxwireless.netintelnervana.comintelnet.component intelplay.comintelquark.comintelrealsense.cn +cnintelrealsense.com intelrxt.comintelsalestraining.comintelsecurity.comintelserveredge.comintelsoftwarenetwork.comintelstore.cominteltechnologyprovider.com intelvmwarecybersecurity.com  itnel.comlatencytop.comlookinside.commakebettercode.commakesenseofdata.com movidius.com movidius.netnervanasys.com  nevex.comnextgenerationcenter.com +niosii.com +niosii.netomekinteractive.com +omnitek.tv openamt.comopendroneid.orgoptanedifference.com +pc.com pentium.com pentium.net pintool.compoweredbyintel.comreconinstruments.com reconjet.comresearchintel.comsaffrontech.comsensorynetworks.com +siport.comsmart-edge.comtheintelstore.comthunderbolttechnology.nettrustedanalytics.comtrustedanalytics.net +vokevr.com vpro.com vpro.net xeon.comxn--ztsq84g.cn +xscale.combarefootnetworks.com +lg.com lgappstv.com  lge.co.kr lge.comlgecareers.com +lghvac.comlghvacstory.comlgrecyclingprogram.comlgsalesportal.comlgelectronics.122.2o7.net linkedin.com  licdn.com logi.comlogicool.co.jp logicoolg.com logitech.biz logitech.com logitech.fr logitechg.com logitechg.frworldsfastestgamer.net imgsmail.ru mail.ru mycdn.me azure-dns.comazure-dns.info azure-dns.net azure-dns.orgazure-mobile.netazure-sphere.comazure-test.netazure.cn +cn  azure.com  azure.netazurecomcdn.netazurecontainer.ioazurecosmos.netazurecosmosdb.comazurecosmosdb.infoazurecosmosdb.netazuredatabricks.netazuredevopslaunch.comazuredigitaltwin.comazuredigitaltwins.comazuredigitaltwins.netazuredns-prd.infoazuredns-prd.orgazureedge-test.net azureedge.netazureiotcentral.comazureiotsolutions.comazureiotsuite.comazureplanetscale.infoazureplanetscale.netazureserviceprofiler.comazuresmartspaces.netazurestackvalidation.comazurewebsites.netchinacloudapi.cn +cnchinacloudapp.cn +cnchinacloudsites.cn +cn cosmosdb.info cosmosdb.net devopsms.com gotcosmos.commicrosofteca.commicrosoftiotcentral.comserverlesslibrary.nettryfunctions.comwindowsazure.cn +cnwindowsazure.comazure.microsoft.com"azuremarketplace.microsoft.combing bing.com bing.com.cn +cn bing.net bingads.combingagencyawards.combingapistatistics.combingsandbox.combingvisualsearch.com bingworld.combluehatnights.com +dictate.msflipwithsurface.commasalladeloslimites.commicrosoft-give.commicrosoftcloudsummit.commicrosoftdiplomados.commicrosoftlatamholiday.commicrosoftmxfilantropia.com!microsoftpartnersolutions.commsunlimitedcloudsummit.comoffice365love.comoffice365tw.comrenovacionoffice.comsprinklesapp.com cn.bing.com +cn cn.bing.net +cn ditu.live.com +cnbj1.api.bing.com +cnemoi-cncdn.bing.com +cnmicrosoftnews.ccmicrosoftnews.cn +cnmicrosoftnews.commicrosoftnews.netmicrosoftnews.orgmicrosoftnewsforkids.commicrosoftnewsforkids.netmicrosoftnewsforkids.orgmicrosoftnewskids.commicrosoftnewskids.netmicrosoftnewskids.org msn.commsnewskids.commsnewskids.netmsnewskids.org msnkids.com 1drv.com 1drv.mslivefilestore.com onedrive.coonedrive.co.uk onedrive.com onedrive.eu onedrive.net onedrive.orgonedrive.live.comstorage.live.com  microsoft azure hotmail +office skype windowsxbox microsoft.az microsoft.be microsoft.by microsoft.ca microsoft.cat microsoft.ch microsoft.cl microsoft.com microsoft.cz microsoft.de microsoft.dk microsoft.ee microsoft.es microsoft.eu microsoft.fi microsoft.ge microsoft.hu microsoft.io microsoft.is microsoft.it microsoft.jp microsoft.lt microsoft.lu microsoft.lv microsoft.md microsoft.pl microsoft.pt microsoft.red microsoft.ro microsoft.rs microsoft.ru microsoft.se microsoft.si microsoft.tv microsoft.ua microsoft.uz microsoft.vnfemalefounderscomp.com +m12.vc +aka.msankarazirvesi2018.comapplicationinsights.ioapplicationinsights.net aria.ms asp.net aspnetcdn.com +binads.com bluehatil.combrazilpartneruniversity.com breakdown.mecentralvalidation.com +ch9.mscharticulator.com cloudapp.netcloudappsecurity.comcortanaanalytics.comcortanaskills.comcrmdynint-gcc.com crmdynint.comcrossborderexpansion.com docs.com dynamics.com efproject.netazuredigitaltwin.comfasttrackreadysupport.comfluidpreview.comgameuxmasterguide.com +gears5.com gearspop.comgearstactics.com +gfx.ms +gigjam.com hololens.com +hotmail.co hotmail.com +hotmail.eu hotmail.net hotmail.orghummingbird.ms +ie8.co ie9.com ie10.com ie11.cominternetexplorer.cointernetexplorer.com imaginecup.pl +ingads.comintunewiki.comiotinactionevents.com +kidgrid.tvlatampartneruniversity.com live.com live.com.au live.eu live.netlivingyourambition.com makecode.orgmanagedmeetingrooms.commeetfasttrack.commeetyourdevices.com mepn.commicrosoft-int.commicrosoft-ppe.commicrosoft-sap-events.commicrosoft-sbs-domains.commicrosoft-smb.cn +cnmicrosoft365.commicrosoftaccountguard.commicrosoftads.commicrosoftadvertising.com*µsoftadvertisingregionalawards.commicrosoftaffiliates.commicrosoftcloud.commicrosoftcloudworkshop.com"microsoftcommunitytraining.commicrosoftedge.commicrosofthouse.commicrosofthouse.netmicrosoftinternetsafety.netmicrosoftlatamaitour.commicrosoftlinc.commicrosoftonline-p.commicrosoftonline.com!microsoftpartnercommunity.commicrosoftready.commicrosoftsiteselection.commicrosoftstore.commicrosoftstore.com.hkmicrosoftstream.commicrosoftteams.commicrosofttradein.commicrosofttranslator.commicrosoftuwp.commomentumms.commorphcharts.commpnevolution.comms-studiosmedia.comms365surfaceoffer.com  msads.net msauth.cn +cn +msauth.netmschallenge2018.com +msecnd.net +msedge.net  msft.info msft.net msftauth.cn +cn msftauth.netmsfteducation.ca msftnet.orgmsgamesresearch.com +msocdn.com +msocsp.com msturing.orgmsudalosti.commymicrosoft.comnextechafrica.net nxta.orgo365weve-dev.como365weve-ppe.com o365weve.com +office.com +office.net office365.com onenote.com onenote.net onestore.msopticsforthecloud.netoutingsapp.com outlook.com passport.net +pixapp.netpowerappscdn.netpowerautomate.com powerbi.compowershellgallery.comprojectmurphy.netprojectsangam.com +pxt.ios-microsoft.com  s-msn.com sfbassets.com sfbassets.net +sfx.ms sharepoint.cn +cnsharepoint.comsharepointonline.com  skype.com  skype.netskypeassets.comskypeassets.net staffhub.mssuccesswithteams.com surface.com sway-cdn.com sway.comsysinternals.comtailwindtraders.com +techhub.ms tfsallin.nettrafficmanager.nettranslatetheweb.comunlocklimitlesslearning.com +userpxt.iovideobreakdown.comvideoindexer.aivirtualearth.net vsallin.net +wbd.ms what-fan.netwindows-int.net windows.com windows.net +windows.nl windows8.hkwindowscommunity.netwindowsmarketplace.comwindowsphone-int.comwindowsphone.comwindowssearch.comwindowsupdate.com +winhec.com +winhec.net +yammer.comcdn.office.net +cn(dl.delivery.mp.microsoft.com +cn&download.windowsupdate.com +cn'bg.v4.a.dl.ws.microsoft.com +cn(bg4.v4.a.dl.ws.microsoft.com +cn2&cdn.marketplaceimages.windowsphone.com +cn cn.windowssearch.com +cn#ctldl.windowsupdate.com +cn#developer.microsoft.com +cndocs.microsoft.com +cn"download.microsoft.com +cn/#download.visualstudio.microsoft.com +cnfs.microsoft.com +cn(msgr.dlservice.microsoft.com +cn, msgruser.dlservice.microsoft.com +cn#officecdn.microsoft.com +cn&qh.dlservice.microsoft.com +cnsdx.microsoft.com +cn/#silverlight.dlservice.microsoft.com +cn, slupdate.dlservice.microsoft.com +cn, storeedgefd.dsx.mp.microsoft.com +cn&wl.dlservice.microsoft.com +cn&wscont1.apps.microsoft.com +cn&wscont2.apps.microsoft.com +cnwww.microsoft.com +cn&xb.dlservice.microsoft.com +cn/+img-prod-cms-rt-microsoft-com.akamaized.netimg-s-msn-com.akamaized.netmwf-service.akamaized.net)%officecdn-microsoft-com.akamaized.net3/statics-marketingsites-eus-ms-com.akamaized.net40statics-marketingsites-wcus-ms-com.akamaized.net firefox.comdeveloper.mozilla.org($interactive-examples.mdn.mozilla.netmdn.mozillademos.orgmedia.prod.mdn.mozit.cloud rust-lang.org  rustup.rs  crates.io docs.rsmozilla.community mozilla.net mozilla.org bugzilla.org getpocket.comseamonkey-project.orgthunderbird.net grafolio.com  naver.com naver.jp  naver.net navercorp.com  plug.game pstatic.net neuralink.com +geforce.cn +cn geforce.co.kr geforce.co.uk geforce.comgeforce.com.twgputechconf.cn +cngputechconf.co.krgputechconf.comgputechconf.com.augputechconf.com.twgputechconf.eugputechconf.ingputechconf.jp nvidia.asia  nvidia.be  nvidia.ch nvidia.cn +cn nvidia.co.jp nvidia.co.kr +nvidia.com nvidia.com.au nvidia.com.br nvidia.com.tr nvidia.com.tw  nvidia.cz  nvidia.de  nvidia.dk  nvidia.es  nvidia.eu  nvidia.fi  nvidia.fr  nvidia.it  nvidia.lu  nvidia.nl  nvidia.no  nvidia.pl  nvidia.ro  nvidia.ru  nvidia.seshotwithgeforce.comnvidia.tt.omtrdc.net +oracle +oracle.comoraclecloud.comoraclefoundation.org oracleimg.comateam-oracle.com +bronto.comcovid19-rx.org covid19rx.org sun.com  panasonic panasonic.cn +cn panasonic.com panasonic.jp technics.comairgonetworks.comberkanawireless.comdragoniscoming.comgobianywhere.comhellosmartbook.com imod.comipleadership.org +iskoot.commeetsmartbook.compatenttruth.org pixtronix.comqctconnect.com +qprize.comqualcomm-email.com qualcomm.cnqualcomm.co.idqualcomm.co.inqualcomm.co.jpqualcomm.co.krqualcomm.co.uk qualcomm.comqualcomm.com.brqualcomm.com.tw qualcomm.de qualcomm.frqualcommhalo.comqualcommlabs.comqualcommmea.comqualcommretail.comqualcommventures.cnqualcommventures.com qualphone.com quicinc.com snapdragon.cnsnapdragonbooth.com +uplinq.com wipower.comwirelessreach.com +brewmp.comqualcomm.sc.omtrdc.net  razer.comrazersupport.com razerzone.com razerzone.jprespawnbyrazer.com appcloud.comappexchange.com attic.iobeyondcore.combuddymedia.com chatter.comcloudcraze.com cotweet.com data.comdemandware.com desk.comdocumentforce.comdreamforce.com einstein.comexacttarget.com  force.com govforce.comgravitytank.com heywire.com krux.commarketingcloud.com metamind.io +pardot.com quotable.com radian6.com relateiq.comsalesforce.comsalesforce.orgsalesforceiq.comsalesforceliveagent.com salesforcemarketingcloud.com sequence.comsfdcstatic.com +sforce.com site.com +social.comsteelbrick.com twinprime.comweinvoiceit.com samsung +xn--cg4bkigalaxyappstore.comgalaxymobile.jpgame-platform.net knoxemm.com samsung.comsamsungapps.comsamsungcloud.com samsungdm.comsamsungeshop.com.cn +cnsamsunggalaxyfriends.comsamsungknox.comsamsungqbe.com +sc-cdn.net snap-dev.net snap.com snapads.com snapchat.com +snapkit.cosonyginzasonypark.jpsony-africa.com sony-asia.comsony-europe.comsony-hes.co.jpsony-latin.com sony-mea.comsony-olympus-medical.comsony-promotion.eusony-semicon.co.jp sony.at sony.ba sony.be sony.bg sony.ca sony.ch sony.cl +sony.co.cr +sony.co.id +sony.co.in +sony.co.jp +sony.co.kr +sony.co.nz +sony.co.th +sony.co.uk sony.com sony.com.ar sony.com.au sony.com.bo sony.com.br sony.com.co sony.com.do sony.com.ec sony.com.gt sony.com.hk sony.com.hn sony.com.mk sony.com.mx sony.com.my sony.com.ni sony.com.pa sony.com.pe sony.com.ph sony.com.sg sony.com.sv sony.com.tr sony.com.tw sony.com.vn sony.cz sony.de sony.dk sony.ee sony.es sony.eu sony.fi sony.fr sony.gr sony.hr sony.hu sony.ie sony.it sony.kz sony.lt sony.lu sony.lv sony.net sony.nl sony.no sony.pl sony.pt sony.ro sony.rs sony.ru sony.se sony.si sony.sk sony.ua sonybo.co.jp sonybsc.comsonybuilding.jpsonydesign.com sonydna.comsonyglobalsolutions.jp sonykigyo.jpsonylatvija.com +sonypcl.jpsonyprotechnosupport.co.jpsonystoragemedia.co.jp sonytc.co.jp  sovec.net +spacex.comboringcompany.com x.comads-twitter.com periscope.tv pscp.tvt.co tellapart.com tweetdeck.com  twimg.com twitpic.com twitter.com +twitter.jptwitterinc.comtwitteroauth.comtwitterstat.us twtrdns.net  twttr.com vine.couber-assets.com uber.com ubereats.com +oath.cloud oath.com ouroath.comstatic-verizon.com verizon.com verizon.netverizonbusinessfios.comverizonenterprise.comverizonfios.comverizonmedia.comverizonwireless.com vzw.com +xo.com mvk.com userapi.com  vk-cdn.me +vk-cdn.net vk-portal.net vk.cc +vk.com  vk.design vk.link vk.me vkcache.com vkgo.app +vklive.appvkmessenger.comvkmessenger.app vkontakte.ruvkuseraudio.comvkuserlive.netvkuservideo.comvkuservideo.netg-technology.com +sandisk.ae +sandisk.it +sandisk.cn +cn sandisk.co.jp sandisk.co.kr sandisk.co.uk sandisk.comsandisk.com.ausandisk.com.brsandisk.com.trsandisk.com.tw +sandisk.de +sandisk.es +sandisk.fr +sandisk.hk +sandisk.id +sandisk.in +sandisk.nl +sandisk.sg +wd.com wdc.comwesterndigital.com ads.yahoo.com +adsgemini.yahoo.com +ads ysm.yahoo.com +ads yahoo yahoo.ae yahoo.am yahoo.as yahoo.at yahoo.az yahoo.ba yahoo.be yahoo.bg yahoo.bi yahoo.bs yahoo.bt yahoo.by yahoo.ca  yahoo.cat yahoo.cd yahoo.cg yahoo.ch yahoo.cl yahoo.cmyahoo.cn +cn yahoo.co.ao yahoo.co.bw yahoo.co.ck yahoo.co.cr yahoo.co.id yahoo.co.il yahoo.co.in yahoo.co.jp yahoo.co.kr yahoo.co.mz yahoo.co.nz yahoo.co.th yahoo.co.tz yahoo.co.uk yahoo.co.uz yahoo.co.ve yahoo.co.vi yahoo.co.za  yahoo.com yahoo.com.af yahoo.com.ag yahoo.com.ai yahoo.com.ar yahoo.com.au yahoo.com.bd yahoo.com.bo yahoo.com.br yahoo.com.bz yahoo.com.cn +cn yahoo.com.co yahoo.com.do yahoo.com.ec yahoo.com.eg yahoo.com.es yahoo.com.fj yahoo.com.gi yahoo.com.gt yahoo.com.hk yahoo.com.kw yahoo.com.lb yahoo.com.ly yahoo.com.mt yahoo.com.mx yahoo.com.my yahoo.com.na yahoo.com.nf yahoo.com.om yahoo.com.pa yahoo.com.pe yahoo.com.ph yahoo.com.pk yahoo.com.pr yahoo.com.py yahoo.com.sa yahoo.com.sb yahoo.com.sg yahoo.com.sv yahoo.com.tj yahoo.com.tr yahoo.com.tw yahoo.com.ua yahoo.com.uy yahoo.com.vc yahoo.com.vn yahoo.cz yahoo.de yahoo.dj yahoo.dk yahoo.dm yahoo.ee yahoo.es yahoo.fi yahoo.fm yahoo.fr yahoo.ge yahoo.gg yahoo.gl yahoo.gm yahoo.gp yahoo.gr yahoo.gy yahoo.hk yahoo.hr yahoo.hu yahoo.ie yahoo.im yahoo.in yahoo.is yahoo.it yahoo.je yahoo.jo yahoo.la yahoo.lt yahoo.lu yahoo.lv yahoo.md yahoo.me yahoo.mk yahoo.mw yahoo.mx  yahoo.net yahoo.nl yahoo.no yahoo.nu yahoo.ph yahoo.pl yahoo.pn yahoo.ps yahoo.pt yahoo.ro yahoo.ru yahoo.rw yahoo.se yahoo.sg yahoo.sh yahoo.si yahoo.sk yahoo.sm yahoo.sn yahoo.so yahoo.sr yahoo.st yahoo.tg yahoo.tk yahoo.tl yahoo.tm yahoo.tn yahoo.vg yahoo.ws maktoob.com +myguide.hkyahoo-news.com.hk yahooapis.com yahoodns.netyahoofinance.comyahoohealth.comyahoomusic.comyahoosportsbook.com yho.com yimg.com yimg.jp  ymail.comxn--d1acpjx3f.xn--p1ai  yandex.az  yandex.by yandex.co.il +yandex.com yandex.com.am yandex.com.ge yandex.com.tr  yandex.ee  yandex.kg  yandex.kz  yandex.lt  yandex.lv  yandex.md +yandex.net  yandex.ru  yandex.st  yandex.sx  yandex.tj  yandex.tm  yandex.ua  yandex.uzyandexcloud.net yastatic.net +yandex 928.plus +zind.cloud aaex.uk amytele.com +ark.tobaicaonetwork.com bighead.groupblinkload.zone boslife.biz boslife.net  cloudn.me  conair.me cordcloud.org ctyun.online +cylink.procylink0122.icu dlercloud.com dlercloud.org dlercloud.me dleris.best duyaoss.com duyaossr.com geph.io hitun.ioxn--90wwvt03e.comjustmysocks.netjustmysocks1.netjustmysocks2.netjustmysocks4.net  maying.comocloudplus.com  mray.club muncloud.dog n3ro.lol n3ro.net n3ro.wtf nexitally.comnexitallysafe.com nexitcore.com paofu.cloud paofuyun.me renzhe.cloudshadowsocks.comshadowsocks.nlsquirrelvpn.comsquirrelgroup.net +ssplive.pwairport-gov-cn.comcnix-gov-cn.comxn--d4ty0ojsqzfd.com +ssrpass.pwstc-server.com surflite.co surflite.net vilavpn.com vilavpn.xyz vilavpn1.xyz vilavpn2.xyz vilavpn3.xyz vilavpn4.xyz vilavpn5.xyz vilavpn6.xyz vilavpn7.xyz cursecdn.com +fandom.com  wikia.com  wikia.org dndbeyond.com futhead.com gamepedia.com muthead.comwikia.nocookie.netfandom.zendesk.com miraheze.org scp-wiki.net  scpdb.org scpwiki.comtranslatewiki.nettranslatewiki.org wdfiles.com wikidot.com wikihow.com mediawiki.org wikibooks.org wikidata.orgwikimediafoundation.org wikimedia.org wikinews.org wikipedia.org wikiquote.orgwikisource.orgwikiversity.orgwikivoyage.orgwiktionary.orgwmfusercontent.org +w.wiki toolforge.orgwikimediacloud.org wmcloud.org wmflabs.orgfamifun.com.tw family.co.jp family.com.twfamilymart.com.cn +cnfamilymart.com.myfamilymart.com.ph  famima.vn hkedcity.nethkreadingcity.nethuanghuagang.orgmcd  mcdonalds4008-517-517.cn +cnaboutmcdonalds.comhappymeal.co.nzhappymeal.com.au mcd.commcdelivery.co.idmcdelivery.co.krmcdelivery.com.aumcdelivery.com.mymcdelivery.com.sgmcdelivery.com.twmcdindonesia.com mcdonalds.camcdonalds.co.uk mcdonalds.commcdonalds.com.hk mcdonalds.hk mcdonalds.it mcdonalds.no mcdonalds.semcdonaldsarabia.commcdonaldsparties.co.nzmcdonaldsparties.com.au!xn--qhrx81fxh2a.xn--55qx5d.hk rarbg.me rarbg.toproxyrarbg.org rarbg.israrbgaccess.org rarbggo.orgrarbgmirror.comrarbgmirror.orgrarbgproxy.org rarbgprx.orgrarbgunblock.comaerogard.com.auaerogard.com.cn +cnaerogardcn.com +airwick.at +airwick.be +airwick.ca +airwick.ch +airwick.cl airwick.co.in airwick.co.nz airwick.co.uk airwick.co.za airwick.comairwick.com.auairwick.com.brairwick.com.cn +cnairwick.com.mxairwick.com.tr +airwick.cz +airwick.de +airwick.dk +airwick.es +airwick.fi +airwick.fr +airwick.hr +airwick.hu +airwick.ie +airwick.it +airwick.jp airwick.net +airwick.nl +airwick.no +airwick.pl +airwick.pt +airwick.ro +airwick.ru +airwick.se +airwick.si +airwick.sk +airwick.tv +airwick.usairwickarabia.com vipoo.es  calgon.at  calgon.be  calgon.ch calgon.cn +cn calgon.co.uk +calgon.com calgon.com.tr  calgon.de  calgon.es  calgon.fr  calgon.ie  calgon.it  calgon.nl  calgon.pt  calgon.ru  calgon.tvcalgoncarbon-china.comcalgoncarbon.com calgonit.com clearasil.cn +cnclearasil.com.cn +cn clearasil.usdettol-prize.com  dettol.at  dettol.be  dettol.ch  dettol.cl dettol.co.id dettol.co.in dettol.co.ke dettol.co.nz dettol.co.uk +dettol.com dettol.com.au dettol.com.bd dettol.com.br dettol.com.cn +cn dettol.com.eg dettol.com.hk dettol.com.my dettol.com.ng dettol.com.sg  dettol.cz  dettol.fr  dettol.hu  dettol.ie +dettol.net  dettol.nl  dettol.pk  dettol.pl  dettol.pt  dettol.rudettolarabia.comdettolcleannaija.comdettolsitishield.co.indettolthailand.comespadoldettol.com.ardewitwithdurex.com dotherex.com durex-shop.chdurex-shopline.comdurex-slovenia.si durex.at durex.be durex.cl durex.co.id durex.co.il durex.co.nz durex.co.th durex.co.uk durex.co.za  durex.com durex.com.au durex.com.bd durex.com.cn +cn durex.com.co durex.com.hr durex.com.my durex.com.ng durex.com.pe durex.com.ph durex.com.pk durex.com.sg durex.com.tr durex.cz durex.de durex.dk durex.ee durex.es durex.fi durex.fr durex.hu durex.ie durex.it durex.jp durex.lv durex.mx durex.nl durex.no durex.pl durex.pt durex.ro durex.ru durex.se durex.us durexcam.comdurexcanada.comdurexchina.comdurexchina.com.cn +cndurexindia.comdurexloveclub.comdurexukraine.com durexusa.comlovesexdurex.cn +cnlovesexdurex.complaybydurex.com shopdurex.com trydurex.net trydurex.tvbebepremium3.com.bo +enfa.co.id enfa.com.vn enfaaplus.com enfababy.com enfabebe.comenfabebe.com.brenfabebe.com.coenfabebe.com.doenfabebe.com.ecenfabebe.com.mxenfabebe.com.peenfabebe.com.veenfabebe3.com.arenfagrow.co.inenfagrow.com.bnenfagrow.com.myenfagrow.com.phenfagrow.com.sg enfagrow4.comenfamama.com.arenfamama.com.ph +enfamil.ca enfamil.com +enfamil.es +enfamil.pl +enfamil.pt enfasmart.comenspireformula.comnutramigen.net nutramigen.pl$dishwashingexpert.com.cn +cn  finish.at  finish.bg finish.co.kr finish.co.nz finish.co.uk finish.co.za finish.com.cn +cn finish.com.hr finish.com.tr  finish.de  finish.es  finish.fr  finish.gr  finish.hu  finish.lv  finish.pl  finish.pt  finish.ro  finish.si  finish.skfinisharabia.comfinishbrasil.com.brfinishdishwashing.cafinishdishwashing.com finishinfo.be finishinfo.clfinishinfo.comfinishinfo.com.arfinishinfo.com.au finishinfo.cz finishinfo.fi finishinfo.it finishinfo.jp finishinfo.nl finishinfo.no finishinfo.ru finishinfo.sefinishkilpailu.fi finishwin.beyarininsuyu.com lizol.co.in lysol.ca lysol.cllysol.cn +cn lysol.co.cr  lysol.com lysol.com.cn +cn lysol.com.mx  lysol.netenfinitas.com.cn +cnmeadjohnson.commeadjohnson.com.cn +cnmeadjohnson.com.hkmeadjohnson.com.twmeadjohnson.net +mortein.cn +cn mortein.co.in mortein.co.nz mortein.co.za mortein.commortein.com.aumortein.com.brmortein.com.ngmortein.com.pkmorteincam.compifpafarabia.comkeepmovingwithmovefree.com move-free.net movefree.cn +cn movefrees.commovefreeoffers.commovefreerewards.comschiffvitamins.com +mucinex.ca +mucinex.cn mucinex.co.nz mucinex.commucinex.com.cn mucinex.net +mucinex.tvmucinexprofessional.com +nurofen.at +nurofen.bg +nurofen.cn +cn nurofen.co.il nurofen.co.nz nurofen.co.uk nurofen.co.za nurofen.comnurofen.com.aunurofen.com.cn +cnnurofen.com.sg +nurofen.cz +nurofen.de +nurofen.es +nurofen.fr +nurofen.hr +nurofen.hu +nurofen.ie +nurofen.it nurofen.net +nurofen.no +nurofen.pl +nurofen.pt +nurofen.ro +nurofen.sk +nurofen.runurofengel.com51nurofensk-prod-env.eu-west-1.elasticbeanstalk.com +cepacol.ca cepacol.com dobendan.degraneodin.com.mx +repsils.no strepsils.at strepsils.ch strepsils.cn +cnstrepsils.co.krstrepsils.co.nzstrepsils.co.zastrepsils.com.arstrepsils.com.brstrepsils.com.cn +cnstrepsils.com.costrepsils.com.austrepsils.com.hkstrepsils.com.phstrepsils.com.tw strepsils.es strepsils.fi strepsils.fr strepsils.hr strepsils.hu strepsils.ie strepsils.net strepsils.pl strepsils.pt strepsils.ro strepsils.ru strepsils.si strepsils.usstrepsilsarabia.como2action.co.krpowerofresolve.capowerofresolve.comspraynwash.com  vanish.at  vanish.be  vanish.ch  vanish.cl vanish.cn +cn vanish.co.id vanish.co.il vanish.co.in vanish.co.nz vanish.co.uk vanish.co.za vanish.com.ar vanish.com.br vanish.com.co vanish.com.hr vanish.com.mx vanish.com.my vanish.com.pe vanish.com.sg vanish.com.tr  vanish.de  vanish.dk  vanish.es  vanish.fi  vanish.fr  vanish.hu  vanish.ie  vanish.it  vanish.nl  vanish.no  vanish.pl  vanish.pt  vanish.ro  vanish.ru  vanish.se  vanish.si  vanish.skvanisharabia.comvanishbancaseulook.com.brvanishcentroamerica.com vanishinfo.czvanishstains.comvanishstains.com.au veet.at veet.be veet.ca veet.ch veet.clveet.cn +cn +veet.co.id +veet.co.in +veet.co.kr +veet.co.nz +veet.co.uk +veet.co.za veet.com veet.com.ar veet.com.au veet.com.bd veet.com.br veet.com.cn +cn veet.com.co veet.com.hk veet.com.mx veet.com.my veet.com.ph veet.com.pk veet.com.sg veet.com.tr veet.de veet.dk veet.es veet.fi veet.fr veet.hu veet.jp veet.nl veet.no veet.pt veet.ro veet.ru veet.se veet.tv veet.usveetarabia.comveetbangladesh.comveetcentroamerica.com veetclub.it +woolite.ca +woolite.cn +cn woolite.comwoolite.com.cn +cn +woolite.pl +woolite.uswoolitecarpet.comdigital-rb.com rb-crisis.com +rb.com +rb.netrbbusinessshop.comrbdigitalab.comrbdigitallab.comrbeuroinfo.com rbgrads.comrbgraduates.comrbmavericks.comrbnainternational.com  rbplc.comrbrandlibrary.com rbspeakup.com reckitt.netreckittbenckiser.cn +cnreckittbenckiser.com#reckittbenckiser.com.cn +cnreckittbenckiser.netreckittbenckiser.tvreckittprofessional.com starbucks.castarbucks.co.uk starbucks.comstarbucks.com.cn +cn starbucks.de starbucks.fr starbucks.ie +tsquare.tv  windy.com xdty.org  xingrz.me + + GETTYIMAGESgettyimages.aegettyimages.atgettyimages.begettyimages.cagettyimages.chgettyimages.co.jpgettyimages.co.nzgettyimages.co.ukgettyimages.comgettyimages.com.augettyimages.com.brgettyimages.com.mxgettyimages.degettyimages.dkgettyimages.esgettyimages.figettyimages.frgettyimages.hkgettyimages.iegettyimages.ingettyimages.itgettyimages.nlgettyimages.nogettyimages.ptgettyimages.se + +SECTIGO sectigo.comenterprisessl.comhackerguardian.cominstantssl.comoptimumssl.compositivessl.com +f + TAYLORFRANCIS tandf.co.uktandfonline.comtaylorandfrancis.comtaylorfrancis.com + +XPOSED xposed.info + +CITIC citic chinaamc.comcitic-prudential.com.cn citicbank.comciticcapital.com citiciam.com citicifh.comciticprufunds.com.cn citics.com.hk citicsf.com clsa.comcncbinternational.com +csc108.com csci.hk +ecitic.com + + +DUCKDUCKGOcispaletter.comcispaletter.orgcometotheduckside.com +ddg.co +ddg.gg +ddh.gg +dgg.gg dontbubble.us donttrack.us duck.co duck.comduckduckco.com duckduckco.de duckduckgo.ca duckduckgo.coduckduckgo.co.ukduckduckgo.comduckduckgo.com.mxduckduckgo.com.tw duckduckgo.de duckduckgo.dk duckduckgo.in duckduckgo.jp duckduckgo.ke duckduckgo.mx duckduckgo.nlduckduckgo.org duckduckgo.pl duckduckgo.sg duckduckgo.ukduckduckhack.com +duckgo.com ducksear.ch duckside.com  dukgo.comenteentegeh.defixtracking.com goduckgo.com hacksear.chjustduckit.comprivacysimplified.comprivatebrowsingmyths.comspreadprivacy.com +) +EASYLIST easylist.to lanik.us +# + EMOGI-ADS emogi.com +ads + +EPORNER eporner.com + +MARVEL +marvel.commarvel10thanniversary.commarveldimensionofheroes.commarvelparty.netmarvelpinball.commarvelsdoubleagent.commarvelspotlightplays.com marvelsuperheroseptember.commarvelsuperwar.comthemarvelexperiencetour.com + +PHP php.net +3 +HKEDCITY hkedcity.nethkreadingcity.net +% +IMGIX  imgix.com  imgix.net +% +KUGOU  kgimg.com  kugou.com + +OOKLA-SPEEDTEST  cdnst.net cellmaps.com ekahau.cloud +ekahau.com  ookla.comooklaserver.net pingtest.net speedtest.co speedtest.netspeedtestcustom.com webtest.netOB^speed\.(coe|open)\.ad\.[a-z]{2,6}\.prod\.hosts\.ooklaserver\.net$ +ads +" + ACCUWEATHERaccuweather.com + + +AKAMAI ak1.net +aka-ai.com +aka-ai.net akacrypto.net akadeem.net +akadns.com akadns6.net +akaeai.com +akafms.net akahost.net +akaint.net akam.net +akamaa.com +akamah.com +akamak.com +akamam.comakamai-access.comakamai-access.netakamai-cdn.com akamai-platform-internal.netakamai-platform-staging.comakamai-platform.netakamai-regression.netakamai-staging.netakamai-sucks.netakamai-thailand.comakamai-thailand.netakamai-trials.com akamai.co.kr +akamai.com +akamai.netakamaientrypoint.netakamaietpcnctest.com#akamaietpcompromisedcnctest.com'#akamaietpcompromisedmalwaretest.comakamaietpmalwaretest.comakamaietpphishingtest.comakamaihd-staging.net akamaihd.com akamaihd.netakamaimagicmath.netakamainewzealand.comakamaiphillipines.comakamaiphillipines.netakamaitech.comakamaitech.netakamaitechnologies.comakamaitechnologies.netakamaisingapore.netakamaized-staging.net akamaized.netakamaizercentral.com +akamci.com  akami.com  akami.net +akamii.com +akamqi.com akastream.com akastream.net +akatns.net iamakamai.com iamakamai.netsoasta-dswb.com +srtcdn.net +# + DATFOUNDATIONdat.foundation +k +DOUYU  douyu.com douyu.tv douyucdn.cn douyucdn2.cn douyuscdn.com douyutv.com +6 + RUBYCHINAruby-china.orgrubyconfchina.org +n +TWITCH ext-twitch.tv  jtvnw.net  ttvnw.net  twitch.tv twitchcdn.net twitchsvc.net +9 +ABCabc-studios.com abc.com edgedatg.com + + MEGAPHONE megaphone.fm ++ + ONESIGNAL-ADS onesignal.com +ads +3 + SEGMENTFAULTsegmentfault.com  sifou.com +4 +MAILRU imgsmail.ru mail.ru mycdn.me ++ + MXPLAYER-ADSevt.mxplay.com +ads + +THESUNdreamteamfc.com  page3.comsunbingo.co.uk talksport.comthescottishsun.co.uk thesun.co.uk  thesun.ie +* +WIWIDE wamawama.com +wiwide.com + +GFYCAT +gfycat.com + + +JINRISHICIjinrishici.com + +SLASHDOT slashdot.org + + ZOOMINGIN zoomingin.tv + +CAOLIU t66y.com +z +CERNcern ams02.space cern.ch cixp.netdotcernpilot.info  ippog.orglinearcollider.org +9 +DOUBAN +douban.com  douban.fm doubanio.com +x +FASTLY +fastly.com +fastly.netfastlylabs.com fastlylb.netfastly-terrarium.com +zencdn.net +; +XUEERSI speiyou.com +xesimg.com xueersi.com +H +BLENDERbigbuckbunny.org blender.orgelephantsdream.org +8 + HOMEDEPOThomedepot-static.com homedepot.com + +IQIYI 71.am  iqiyi.com iqiyipic.com +pps.tv +ppsimg.com qiyi.com qiyipic.com +qy.net +71edge.coma.ckm.iqiyi.com +adsad.m.iqiyi.com +ads afp.iqiyi.com +adsc.uaa.iqiyi.com +ads cloudpush.iqiyi.com +ads"cm.passport.iqiyi.com +adscupid.iqiyi.com +ads#emoticon.sns.iqiyi.com +ads!gamecenter.iqiyi.com +ads!hotchat-im.iqiyi.com +adsifacelog.iqiyi.com +adsmbdlog.iqiyi.com +ads msg.71.am +adsmsg.video.qiyi.com +ads msg2.video.qiyi.com +ads#policy.video.iqiyi.com +adsyuedu.iqiyi.com +ads + +STEEMIT steemit.com +P +AEROGARDaerogard.com.auaerogard.com.cn +cnaerogardcn.com +/ + JIBENCAOZUO jbcz.tvjibencaozuo.com +6 +75TEAM 75.team +75team.com baomitu.com +) + ADCOLONY-ADS adcolony.com +ads + +RFA rfa.org +/ + SNAPCRAFT snapcraft.io snapstore.io +' +APA apa.orgpsyccareers.com + +IBMibmweatherchannel weatherappdomain.cloud bluemix.com bluemix.net ibm.com +ibm.eu ibm.net +ibm.us s-bluemix.net s81c.com +M + MESSENGERfbmessenger.comm.me messenger.com +nbabot.net +0 +SOHU sohu.com +sohucs.com +itc.cn + +BITCOIN bitcoin.org ++ +COWLEVEL cowlevel.net  cdncl.net + +IINA iina.io += +SIGNAL +signal.art +signal.orgsignalusers.org +) +LINGUEE linguee.com  deepl.com +3 + +STREAMABLE embed-cdn.comstreamable.com +< +ANACONDA anaconda.com anaconda.org conda.io + +DUREXdewitwithdurex.com dotherex.com durex-shop.chdurex-shopline.comdurex-slovenia.si durex.at durex.be durex.cl durex.co.id durex.co.il durex.co.nz durex.co.th durex.co.uk durex.co.za  durex.com durex.com.au durex.com.bd durex.com.cn +cn durex.com.co durex.com.hr durex.com.my durex.com.ng durex.com.pe durex.com.ph durex.com.pk durex.com.sg durex.com.tr durex.cz durex.de durex.dk durex.ee durex.es durex.fi durex.fr durex.hu durex.ie durex.it durex.jp durex.lv durex.mx durex.nl durex.no durex.pl durex.pt durex.ro durex.ru durex.se durex.us durexcam.comdurexcanada.comdurexchina.comdurexchina.com.cn +cndurexindia.comdurexloveclub.comdurexukraine.com durexusa.comlovesexdurex.cn +cnlovesexdurex.complaybydurex.com shopdurex.com trydurex.net trydurex.tv +1 +GODADDY godaddy.comx.co godaddy +O +GUO  guo.media  gnews.org gtv.org gtv1.org g-tvapp.com + +BRAVEUXbraventures.com braveux.com +compass.isfightforux.comforthebadge.comstockagainstphotography.com +s +SINOPECsinopec-usa.com sinopec.comsinopecgroup.comsinopecnews.com.cnsinopecsales.com + +UNPKG  unpkg.com +0 +N3RO n3ro.lol n3ro.net n3ro.wtf + +STUNNEL stunnel.org + +UMENG mobmore.com  umeng.comumengcloud.com  umsns.com umtrack.com +uyunad.comwhalecloud.comalog.umeng.com +ads alog.umengcloud.com +ads +w.cnzz.com +ads + +WHATSAPP wa.mewhatsapp-plus.infowhatsapp-plus.mewhatsapp-plus.net whatsapp.cc whatsapp.com whatsapp.info whatsapp.net whatsapp.org whatsapp.tvwhatsappbrand.com + +ATOM atom.io +J +HUPUhoopchina.com.cn hupu.com hupucdn.com  shihuo.cn +z +LINE +lin.ee line.me line.naver.jp line-apps.com line-cdn.net line-scdn.net +nhncorp.jp + + +POSTGRESQLpostgresql.org +* +JAVBUS +javbus.com javbus22.com +* +SCIENTIFICLINUXscientificlinux.org +\ +CATEGORY-GAMES blizzard.cn +cn blizzard.comblizzardgearstore.comblz-contentstack.com blzstatic.cn +cn +battle.netbattlenet.com.cn +cn bnet.163.com +cnblizzard.nefficient.co.krblzddist1-a.akamaihd.netblzddistkr1-a.akamaihd.netbnetcmsus-a.akamaihd.netbnetproduct-a.akamaihd.netbnetshopus.akamaized.net diablo3.comdiabloimmortal.comdi.res.netease.com +cn!diablo3.nosdn.127.net +cnfiresidegatherings.complayhearthstone.com%hearthstone.nosdn.127.net +cnheroesofthestorm.com%hearthstone.nosdn.127.net +cn"heroes.nos.netease.com +cnplayoverwatch.com#overwatch.nosdn.127.net +cn starcraft.comstarcraft2.comsc2.nosdn.127.net +cnplaywarcraft3.comworldofwarcraft.com wowchina.com +cnwow.nosdn.127.net +cnblizzcon-a.akamaihd.netblz.nosdn.127.net +cnblzmedia-a.akamaihd.netblznav.akamaized.net dawngate.com eastore.comlordofultima.com +origin.com  origin.tv#cloudsync-prod.s3.amazonaws.comorigin-a.akamaihd.netrtm.tnt-ea.comssl-lvlt.cdn.ea.comawayoutgame.combattlefieldbadcompany2.combattlefront2.combattlefrontii.combejewled-stars.combejeweledstars.comcapitalgames.com chillingo.comcommandandconquer.comconquerwithcharacter.com  crysis.jp dawngate.comdawngatechronicles.com +dicela.com +dicela.netea-anz-press.com +ea.com eaaccess.comeacashcard.com eacodigos.com eakorea.co.kr eamobile.com eanordic.com +eaplay.com easports.com easports.jpeasportsactive.comeasportsactiveonline.comeasportsfootball.comeasportsfootballclub.comeasportsmma.comeasportsworld.comelectronicarts.comelectronicarts.fr futpromos.com futunited.comghostgames.comheroesofdragonage.com hutpromos.commaddenchampionship.commaddenrewards.commaddenseason.infomaddenseason.netmaddenseason.org  maxis.commysimsracing.com play4free.com playapex.com pogo.com pogobeta.com +popcap.comprojectapex.com pvzheroes.com spearhead.krspeedhunters.com  spore.com ssx3.comstarwarsbattlefront.comstarwarsbattlefront2.comtiberiumalliances.com tiburon.com +tnt-ea.comultimaforever.com unravel2.comunraveltwo.comvisceralgames.com +yogify.comanthemgame.comanthemthegame.comapexlegends.comprojectapex.combattlefield.combattlefield1943.combattlefield3.combattlefield4.combattlefield5.combattlefieldheroes.combattlefieldv.com battlelog.com bioware.combiowarestore.com eamythic.com eamythic.net cncrivals.comcommandandconquer.comtiberiumalliances.comcamelot-europe.comcamelotherald.comcamelotherald.net daoc.netdarkageofcamelot.comdarkness-risen.comdeadspacegame.com dice.se dragonage.comdragonagekeep.comdragonagemovie.comthedreadwolfrises.comdungeonkeeper.cndungeonkeeper.comdungeonkeeper.com.cneafootballworld.comfifastreet.comfifastreet3.com frostbite.comindustrialtoys.commasseffect.commasseffectarchives.comeamirrorsedge.commirrorsedge.commirrorsedge.jpmirrorsedge.netmirrorsedge2.commirrorsedge2d.comblackboxgames.comeablackbox.comneedforspeed.comneedforspeedboost.comneedforspeeddriftkings.comneedforspeedeliminator.comneedforspeedlightning.comneedforspeedoverdrive.comneedforspeedproven.comneedforspeedredline.comneedforspeedshowdown.comneedforspeedstreetkings.comneedforspeedtakedown.comneedforspeedtherun.comneedforspeedtimeattack.com#needforspeedundergroundeast.com nfsworld.comteamneedforspeed.complantsvszombies2.com +pvzgw2.com pvzheroes.comseaofsolitude.comsimcity-buildit.com simcity.com +skate2.com spearhead.krstarwarsfallenorder.comstarwarsjedifallenorder.comstarwarstheoldrepublic.comswjedifallenorder.com  swjfo.com  swtor.com  swtor.net +mysims.com thesims.com thesims3.com thesims4.comthesimssocial.com titanfall.commythicentertainment.commythicentertainment.netmythicgames.comultimaonline.com +uo.com uoherald.com xdsummit.comea.tt.omtrdc.neteaassets-a.akamaihd.netbattlebreakers.com eac-cdn.com easy.aceasyanticheat.net epicgames.com fortnite.com paragon.complayparagon.comroborecall.comshadowcomplex.com spyjinx.comunrealengine.comunrealtournament.com6*^cdn\d-epicgames-\d+\.file\.myqcloud\.com$ +cn*&^epicgames-download\d\.akamaized\.net$;/^epicgames-download\d-\d+\.file\.myqcloud\.com$ +cn"avatargarenanow-a.akamaihd.netcdngarenanow-a.akamaihd.netdlgarenanow-a.akamaihd.net!dlmobilegarena-a.akamaihd.net garena.co.id garena.co.th +garena.com garena.live  garena.my  garena.ph  garena.sg  garena.tv  garena.tw  garena.vn garenanow.com seagroup.com gog.comgog-statics.comgog.qtlglb.com +cn$gogalaxy.gog-statics.com +cn'menu-static.gog-statics.com +cn'productcard.gog-statics.com +cn(static-login.gog-statics.com +cn'www4-static.gog-statics.com +cn, ^images(-\d)?\.gog-statics\.com$ +cn100classicbooks.com +amiibo.comayudanintendo.combowsersinsidestory.comexcitebots.comflipnotestudio.comgloryofheracles.comhackyourconsole.comkirbysuperstarultra.comkirbysepicyarn.comlegendofzelda.cn +cn legendofzelda.com.cn +cn miitomo.commiitomo.com.cn +cn miiverse.com nentindo.netnintendo-europe-sales.comnintendo-europe.com nintendo.at nintendo.be nintendo.chnintendo.co.jpnintendo.co.krnintendo.co.uknintendo.co.za nintendo.comnintendo.com.hknintendo.com.pt nintendo.de nintendo.dk nintendo.es nintendo.eu nintendo.fi nintendo.fr nintendo.it nintendo.net nintendo.nl nintendo.no nintendo.pt nintendo.ru nintendo.se nintendo.twnintendo3ds.comnintendodsi.comnintendoeurope.comnintendolabo.cn +cnnintendonetwork.netnintendonyc.comnintendostore.comnintendoswitch.comnintendoswitch.netnintendoswitchtogether.compersonaltrainermath.complaynintendo.comsupersmashbros.cn +cn!supersmashbros.com.cn +cnthelegendarystarfy.comthewonderful101.comwariolandshakeit.comwariowarediy.comyoshisnewisland.comac-pocketcamp.comdiddykongracing.com dkr.com donkeykongcountryreturns.comfire-emblem-heroes.comfireemblemawakening.com +dialga.com giratina.com +kyurem.com pokedex3d.compokemon-moon.compokemon-sun.compokemon-sunmoon.com pokemon.compokemonbank.compokemonblackwhite.com pokemonbw.compokemonchampionships.compokemongoldsilver.compokemonhome.compokemonletsgoeevee.compokemonletsgopikachu.compokemonmysterydungeon.compokemonpicross.compokemonplatinum.compokemonrubysapphire.compokemonsunmoon.compokemonswordshield.compokemonultrasunmoon.compokemonvgc.compokemonwifi.net xn--mts47c3w9b1qr.cn +cnxn--mts47c3w9b1qr.netsplatoon2tournament.com starfox.comdrmario-world.commarioandluigidreamteam.commariobroswii.com mariokart.cn +cnmariokart.com.cn +cnmariokart7.commariokart8.commariosupersluggers.comnewsupermariobrosu.comsupermario.comsupermario3dworld.com!supermariobros.com.cn +cnsupermariogalaxy.comsupermariorun.comsuperpapermario.comnintendowii.com  wii-u.com +wiifit.com wiifitu.com wiipartyu.com wiisports.comwiisportsresort.comwiiugamepad.com  wiivc.net xenoblade.com op.ggopgg-static.akamaized.net playstationplaystation.complaystation.net sonyentertainmentnetwork.com"api-priconne-redive.cygames.jpomotenashi.cygames.jp%!prd-priconne-redive.akamaized.nethistoryofdota.comhistoryofdota.nethistoryofdota.orginstituteofwar.orgmolesports.com rgpub.ioriot-games.com riot.com riot.net riotcdn.netriotgames.co.kr riotgames.comriotgames.info riotgames.jp riotgames.net riotgames.tv riotpin.comriotpoints.com rstatic.net supremacy.com supremacy.net championshipseriesleague.com lcsmerch.comleaguehighschool.comleagueoflegends.caleagueoflegends.cn +cnleagueoflegends.co.krleagueoflegends.comleagueoflegends.infoleagueoflegends.krleagueoflegends.netleagueoflegends.orgleagueoflegendsscripts.comleaguesharp.infoleaguoflegends.comlearnwithleague.comlol-europe.com lolclub.org lolespor.comlolesports.com lolfanart.net +lolpcs.com lolshop.co.kr lolstatic.comlolusercontent.com +lpl.com.cn +cn pvp.net +pvp.tv ulol.comlolstatic-a.akamaihd.netplayvalorant.comriotforgegames.comruinedking.comconvrgencegame.comrockstargames.com +rsg.sc1-gamedownloads-rockstargames-com.akamaized.net)%media-rockstargames-com.akamaized.net*&videos-rockstargames-com.akamaized.net fanatical.comhumblebundle.complayartifact.com +s.teamsteam-chat.comsteamcommunity.comsteamcontent.comsteamgames.comsteampowered.comsteamstatic.comsteamusercontent.comunderlords.comvalvesoftware.com wmsjsteam.com +cn csgo.wmsj.cn +cndl.steam.ksyna.com +cn dota2.wmsj.cn +cn st.dl.bscstorage.net +cnst.dl.eccdnx.com +cn!st.dl.pinyuncloud.com +cn&steampowered.com.8686c.com +cn%steamstatic.com.8686c.com +cn steambroadcast.akamaized.netsteamcdn-a.akamaihd.net!steamcommunity-a.akamaihd.netsteamstore-a.akamaihd.net#steamusercontent-a.akamaihd.net"steamuserimages-a.akamaihd.netsteamunlocked.net ubi.com ubisoft.com  uplay.com,(ubisoft-uplay-savegames.s3.amazonaws.com,(ubisoft-orbit-savegames.s3.amazonaws.com)uplaypc-s-ubisoft.cdn.ubi.com +cn +beth.games bethesda.netbethesdagamestudios.com bethsoft.com doom.comelderscrolls.comcallersbane.com minecraft.netminecraftshop.com +mojang.comforzamotorsport.netforzaracingchampionship.com forzarc.comorithegame.comrenovacionxboxlive.comtellmewhygame.com xbox.co xbox.com xbox.eu xbox.org +xbox360.co xbox360.com +xbox360.eu xbox360.org +xboxab.comxboxgamepass.comxboxgamestudios.com xboxlive.cn +cn xboxlive.com +xboxone.co xboxone.com +xboxone.euxboxplayanywhere.comxboxstudios.com +xbx.lv ++ +GUARDIANPROJECTguardianproject.info + + +HONGKONGFPhongkongfp.com + +HUAWEI  dbank.com dbankcdn.com harmonyos.com hicloud.com hihonor.com honor.cn +huawei.comhuaweicloud.com  vmall.com vmallres.com +, +ACPLAY +acplay.netdandanplay.com + +CNPMJS +cnpmjs.org +8 +TARGET +target +target.comtargetimg1.com +5 +YOUJIZZ youjizz.comyjcontentdelivery.com + +YYETS cvnad.com +ads +iyoowi.com +ads +got001.com +got002.com jstucdn.com playcvn.com rrys.tv rrys2019.com rrys2020.com rrysapp.com  yyets.com +zimuzu.com  zimuzu.tv zmz2019.com +zmzapi.com + + +FONTSINUSEfontsinuse.com + +MINGW  mingw.org ++ + TAPPX-ADSssp.api.tappx.com +ads +/ + +THEINITIUMtheinitium.com  init.shop + +ALIYUNalibabadns.com +alicdn.com alidayu.com +alidns.com alikunlun.comaliyun-inc.comaliyun-iot-share.com +aliyun.com aliyuncdn.com aliyuncs.com hichina.comica-alliance.org kunlunaq.com kunlunar.com kunlunca.com kunluncan.com kunlunea.com kunlungem.com kunlungr.com kunlunhuf.com kunlunle.com kunlunli.com kunlunno.com kunlunpi.com kunlunra.com kunlunsa.com kunlunsc.com kunlunsl.com kunlunso.com kunlunta.com kunlunvi.com kunlunwe.com mxhichina.com + +WEBTYPE webtype.com ++ +VAPTCHA vaptcha.com vaptcha.net +] +BUYPASSbuypass-ssl.com buypass.com +buypass.no +buypass.se minid.no ++ +FLATPAK flathub.org flatpak.org + +QUALCOMMairgonetworks.comberkanawireless.comdragoniscoming.comgobianywhere.comhellosmartbook.com imod.comipleadership.org +iskoot.commeetsmartbook.compatenttruth.org pixtronix.comqctconnect.com +qprize.comqualcomm-email.com qualcomm.cnqualcomm.co.idqualcomm.co.inqualcomm.co.jpqualcomm.co.krqualcomm.co.uk qualcomm.comqualcomm.com.brqualcomm.com.tw qualcomm.de qualcomm.frqualcommhalo.comqualcommlabs.comqualcommmea.comqualcommretail.comqualcommventures.cnqualcommventures.com qualphone.com quicinc.com snapdragon.cnsnapdragonbooth.com +uplinq.com wipower.comwirelessreach.com +brewmp.comqualcomm.sc.omtrdc.net ++ +TYPEKIT typekit.com typekit.net +{ + CLARIVATEnewisiknowledge.comisiknowledge.com clarivate.comwebofknowledge.comwebofscience.com + +TOR onion + +HQPORNER hqporner.com + +MSNmicrosoftnews.ccmicrosoftnews.cn +cnmicrosoftnews.commicrosoftnews.netmicrosoftnews.orgmicrosoftnewsforkids.commicrosoftnewsforkids.netmicrosoftnewsforkids.orgmicrosoftnewskids.commicrosoftnewskids.netmicrosoftnewskids.org msn.commsnewskids.commsnewskids.netmsnewskids.org msnkids.com + + SPANKBANG spankbang.com + +VOANEWSamerikaninsesi.comamerikaninsesi.orgamerikaovozi.comamerikayidzayn.comamerikiskhma.com bbg.govdandalinvoa.com darivoa.comdengeamerika.comdengiamerika.comglasamerike.netgolos-ameriki.rugolosameriki.com insidevoa.com pashtovoa.com persagg.comradiyoyacuvoa.com urduvoa.com voa.govvoaafaanoromoo.comvoaafrique.comvoabambara.com voabangla.comvoacambodia.comvoacantonese.comvoachinese.comvoadeewanews.comvoadeewaradio.com voahausa.comvoaindonesia.com voakorea.comvoalingala.comvoandebele.com voanews.com +voanews.euvoanoticias.com voanouvel.comvoaportugues.com voashona.com voasomali.comvoaswahili.com voathai.comvoatibetan.comvoatibetanenglish.comvoatiengviet.com voatour.comvoazimbabwe.comzeriamerikes.com + +WESTERNDIGITALg-technology.com +sandisk.ae +sandisk.it +sandisk.cn +cn sandisk.co.jp sandisk.co.kr sandisk.co.uk sandisk.comsandisk.com.ausandisk.com.brsandisk.com.trsandisk.com.tw +sandisk.de +sandisk.es +sandisk.fr +sandisk.hk +sandisk.id +sandisk.in +sandisk.nl +sandisk.sg +wd.com wdc.comwesterndigital.com +* +TELEKOM telekom.com +telekom.de +" + TYPENETWORKtypenetwork.com + +LYSOL lizol.co.in lysol.ca lysol.cllysol.cn +cn lysol.co.cr  lysol.com lysol.com.cn +cn lysol.com.mx  lysol.net + +MUCINEX +mucinex.ca +mucinex.cn mucinex.co.nz mucinex.commucinex.com.cn mucinex.net +mucinex.tvmucinexprofessional.com + +OPPO coloros.com finzfin.com +heytap.com heytapcs.comheytapdownload.comheytapimage.com +myoppo.com nearme.com.cn oppo.cn oppo.com  oppo.mobioppodigital.com  oppoer.meoppomobile.com oppopay.com opposhop.cn +realme.com realmebbs.comrealmemobile.com +$ +SCMP scmp.com +i-scmp.com +8 +DMM dmm.com  dmm.co.jpdmm-extension.com + +ERJI erji.net += + JAVFINDER javfinder.sh findercdn.me o0-2.com + +WOOLITE +woolite.ca +woolite.cn +cn woolite.comwoolite.com.cn +cn +woolite.pl +woolite.uswoolitecarpet.com + +DGTLE  dgtle.com +4 +PERL perl.org cpan.org metacpan.org + +XBOX +beth.games bethesda.netbethesdagamestudios.com bethsoft.com doom.comelderscrolls.comcallersbane.com minecraft.netminecraftshop.com +mojang.comforzamotorsport.netforzaracingchampionship.com forzarc.comorithegame.comrenovacionxboxlive.comtellmewhygame.com xbox.co xbox.com xbox.eu xbox.org +xbox360.co xbox360.com +xbox360.eu xbox360.org +xboxab.comxboxgamepass.comxboxgamestudios.com xboxlive.cn +cn xboxlive.com +xboxone.co xboxone.com +xboxone.euxboxplayanywhere.comxboxstudios.com +xbx.lv + +CATEGORY-MOOC-CNchinesemooc.org +cnmooc.orgicourse163.org icourses.cn mooc.cnopenlearning.com pmphmooc.commoocs.unipus.cnopencourse.pku.edu.cn study.163.com + +FIGMA  figma.com +5 +V2RAY  v2ray.com +v2ray.cool  v2fly.org + +VILAVPN vilavpn.com vilavpn.xyz vilavpn1.xyz vilavpn2.xyz vilavpn3.xyz vilavpn4.xyz vilavpn5.xyz vilavpn6.xyz vilavpn7.xyz + +AMYTELE amytele.com + +GNU gnu.org + +HINET  hinet.net + +KINGSOFT cmcm.com cmcmcdn.com  liebao.cn duba.com duba.net ijinshan.comseasungames.com xishanju.com xoyo.com testplus.cn +wps.cn  51dzt.com  iciba.com  docer.com kdocs.cn papocket.com  wpspdf.cn kimg.cn kingsoft.com ksmobile.com +ks-cdn.com  ksyun.com ksyungslb.com + +LUA lua.org + +OPENSSL openssl.org +" + SUBLIMETEXTsublimetext.com +% +36KR 36kr.com 36krcdn.com +. + +AMAZON-ADS amazon-adsystem.com +ads + +CATEGORY-ANTICENSORSHIP ahmia.fi akasha.worldbrowserleaks.combypasscensorship.org citizenlab.cacitizenlab.orgdat.foundationdemocracy.earth eff.orgepicbrowser.com ffprofile.comfreenetproject.org fteproxy.org  gfw.press +gfw.reportapplecensorship.comfreebrowser.orgfreewechat.com freeweibo.com greatfire.orgguardianproject.infohaveibeenpwned.compwnedpasswords.com +geti2p.net ipfs.io  jitsi.orggetlantern.org +lantern.io  ntc.partyonionshare.org ooni.org openvpn.netprivacytools.io psiphon3.comshadowsocks.org softether.orgsoftether-download.com stunnel.org telex.cctorproject.org tribler.org tunsafe.comtwister.net.co +uproxy.org  v2ray.com +v2ray.cool  v2fly.org vuvuzela.io +whonix.org wikileaks.org wireguard.com +zeronet.io +% +FONTS  fonts.com  fonts.net +$ + THESTANDNEWSthestandnews.com + +UDACITY udacity.com + + ZHIHUISHU zhihuishu.com ++ + +KUBERNETES kubernetes.io +k8s.io +g +SPRINGER +apress.com springer.comspringerlink.comspringernature.com wkap.nl + +ELSEVIER els-cdn.comelsevier-ae.com elsevier.com elsevier.ioengineeringvillage.com  evise.com +scopus.com + +SETAPP +setapp.com + +VERISIGN verisign.asia verisign.biz verisign.chverisign.co.inverisign.co.uk verisign.comverisign.com.auverisign.com.brverisign.com.cnverisign.com.esverisign.com.hkverisign.com.sgverisign.com.twverisign.com.vn verisign.de verisign.dk verisign.es verisign.fr verisign.hk verisign.in verisign.info verisign.jobs verisign.mobi verisign.name verisign.net verisign.org verisign.pro verisign.se verisign.sg verisign.tw verisign.us verisign.vnverisigninc.com + +VERIZON +flickr +flickr.com +flickr.netstaticflickr.com ads.yahoo.com +adsgemini.yahoo.com +ads ysm.yahoo.com +ads yahoo yahoo.ae yahoo.am yahoo.as yahoo.at yahoo.az yahoo.ba yahoo.be yahoo.bg yahoo.bi yahoo.bs yahoo.bt yahoo.by yahoo.ca  yahoo.cat yahoo.cd yahoo.cg yahoo.ch yahoo.cl yahoo.cmyahoo.cn +cn yahoo.co.ao yahoo.co.bw yahoo.co.ck yahoo.co.cr yahoo.co.id yahoo.co.il yahoo.co.in yahoo.co.jp yahoo.co.kr yahoo.co.mz yahoo.co.nz yahoo.co.th yahoo.co.tz yahoo.co.uk yahoo.co.uz yahoo.co.ve yahoo.co.vi yahoo.co.za  yahoo.com yahoo.com.af yahoo.com.ag yahoo.com.ai yahoo.com.ar yahoo.com.au yahoo.com.bd yahoo.com.bo yahoo.com.br yahoo.com.bz yahoo.com.cn +cn yahoo.com.co yahoo.com.do yahoo.com.ec yahoo.com.eg yahoo.com.es yahoo.com.fj yahoo.com.gi yahoo.com.gt yahoo.com.hk yahoo.com.kw yahoo.com.lb yahoo.com.ly yahoo.com.mt yahoo.com.mx yahoo.com.my yahoo.com.na yahoo.com.nf yahoo.com.om yahoo.com.pa yahoo.com.pe yahoo.com.ph yahoo.com.pk yahoo.com.pr yahoo.com.py yahoo.com.sa yahoo.com.sb yahoo.com.sg yahoo.com.sv yahoo.com.tj yahoo.com.tr yahoo.com.tw yahoo.com.ua yahoo.com.uy yahoo.com.vc yahoo.com.vn yahoo.cz yahoo.de yahoo.dj yahoo.dk yahoo.dm yahoo.ee yahoo.es yahoo.fi yahoo.fm yahoo.fr yahoo.ge yahoo.gg yahoo.gl yahoo.gm yahoo.gp yahoo.gr yahoo.gy yahoo.hk yahoo.hr yahoo.hu yahoo.ie yahoo.im yahoo.in yahoo.is yahoo.it yahoo.je yahoo.jo yahoo.la yahoo.lt yahoo.lu yahoo.lv yahoo.md yahoo.me yahoo.mk yahoo.mw yahoo.mx  yahoo.net yahoo.nl yahoo.no yahoo.nu yahoo.ph yahoo.pl yahoo.pn yahoo.ps yahoo.pt yahoo.ro yahoo.ru yahoo.rw yahoo.se yahoo.sg yahoo.sh yahoo.si yahoo.sk yahoo.sm yahoo.sn yahoo.so yahoo.sr yahoo.st yahoo.tg yahoo.tk yahoo.tl yahoo.tm yahoo.tn yahoo.vg yahoo.ws maktoob.com +myguide.hkyahoo-news.com.hk yahooapis.com yahoodns.netyahoofinance.comyahoohealth.comyahoomusic.comyahoosportsbook.com yho.com yimg.com yimg.jp  ymail.com +oath.cloud oath.com ouroath.comstatic-verizon.com verizon.com verizon.netverizonbusinessfios.comverizonenterprise.comverizonfios.comverizonmedia.comverizonwireless.com vzw.com +xo.com + +ZHANQI  zhanqi.tv + +PATREON patreon.com + +RTINGS +rtings.com + + TEST-IPV6 test-ipv6.com +( +WASHINGTONPOSTwashingtonpost.com +B +MITmit mit.edu mit.netmitpressjournals.org + + BYTEDANCE  juejin.cn  juejin.im xitu.iop1-juejin.byteimg.comp2-juejin.byteimg.comp3-juejin.byteimg.comp4-juejin.byteimg.comp5-juejin.byteimg.comp6-juejin.byteimg.comp7-juejin.byteimg.comp8-juejin.byteimg.comp9-juejin.byteimg.com +bytecdn.cn bytedance.com bytedance.net bytedns.net byteimg.combyteoversea.com +douyin.com huaxiong.com ibytedtos.comjokecommunity.comneihanshequ.com +pstatp.com +snssdk.com toutiao.comtoutiaocdn.comtoutiaocloud.comtoutiaocloud.nettoutiaohao.comtoutiaohao.net toutiaoimg.cntoutiaoimg.comtoutiaoimg.nettoutiaopage.com +wukong.comwukongwenda.cnwukongwenda.com zijiecdn.com zijiecdn.net  zjcdn.com  baike.com +ixigua.comixiguavideo.com ixgvideo.com  365yg.com + +ELIXIRelixir-lang.org + +QIHOO360 75.team +75team.com baomitu.com +360.cn 360.com +360-jr.com 360chou.com360daikuan.com360huzhubao.com +360jie.com360jinrong.net +360kan.com 360kuai.com  360os.com 360panyun.cn 360safe.com 360shouji.com 360taojin.com360totalsecurity.com 360tpcdn.com360webcache.com anquanke.com  haoso.com +haosou.com haosou.com.cn +haosou.net i360mall.com ludashi.com nicaifu.com  nzwgs.com  qhimg.com qhimgs0.com qhimgs1.com qhimgs2.com qhimgs3.com qhimgs4.com qhimgs5.com qhimgs6.com  qhmsg.com  qhres.com qhstatic.com qhupdate.com +qihuapi.cn qihucdn.com  qihoo.com qikucdn.com +so.com sou.com urlqh.cnxiaoluyouxuan.comxiaoluzhidian.com xjietiao.com +youhua.com  yunpan.cn +Q + SOURCEFORGEsourceforge.comsourceforge.net +sf.net fsdn.com +. +JIEMIAN jiemian.comjiemian.com.cn + +MZED mzed.com + + TENCENT-ADS ad.qq.com +ads ad.qun.qq.com +ads!adfilter.imtt.qq.com +ads adping.qq.com +adsadpm.app.qq.com +adsadsclick.qq.com +adsadsfile.qq.com +adsadshmmsg.qq.com +adsadslvfile.qq.com +adsadslvseed.qq.com +ads%adsmind.apdcdn.tc.qq.com +adsadsqqclick.qq.com +adsadstestview.qq.com +adsadsview.qq.com +adsadsview2.qq.com +adsadv.app.qq.com +ads adver.qq.com +ads btrace.qq.com +adse.qq.com +adslog.tbs.qq.com +ads mpush.qq.com +ads mtrace.qq.com +ads push.qq.com +ads pgdt.gtimg.cn +ads + +VISA visa.be visa.ca visa.clvisa.cn +cn +visa.co.ao +visa.co.cr +visa.co.id +visa.co.il +visa.co.in +visa.co.jp +visa.co.ke +visa.co.ni +visa.co.nz +visa.co.th +visa.co.uk +visa.co.ve +visa.co.za visa.com visa.com.ag visa.com.ai visa.com.ar visa.com.au visa.com.az visa.com.bo visa.com.br visa.com.bs visa.com.bz visa.com.cn +cn visa.com.co visa.com.cy visa.com.dm visa.com.do visa.com.ec visa.com.ge visa.com.gt visa.com.gy visa.com.hk visa.com.hn visa.com.hr visa.com.jm visa.com.kh visa.com.kn visa.com.kz visa.com.lc visa.com.lk visa.com.ms visa.com.mx visa.com.my visa.com.ng visa.com.pa visa.com.pe visa.com.ph visa.com.pr visa.com.py visa.com.ru visa.com.sg visa.com.sv visa.com.tr visa.com.tt visa.com.tw visa.com.ua visa.com.uy visa.com.vc visa.com.vi visa.com.vn visa.cz visa.de visa.dk visa.es visa.fi visa.fr visa.gd visa.gp visa.gr visa.hk visa.hu visa.ie visa.is visa.ky visa.lt visa.lv visa.mn visa.mq visa.nl visa.no visa.pl visa.pt visa.ro visa.se visa.sk visa.so visa.sx visa.tc +visabg.com visaeurope.at visaeurope.ch visaeurope.lu visaeurope.sivisaitalia.com visakorea.comvisamiddleeast.comvisasoutheasteurope.comfinlitsummit.orgmyvisaluxuryhotels.comvisainfinite.cavisainfiniteluxuryhotels.ca!visaluxuryhotelcollection.com$ visaluxuryhotelcollection.com.br$ visaluxuryhotelcollection.com.mxvisaluxuryhotels.comvisaluxuryhotels.com.arvisasignaturehotels.com($connaissancesfinancierespratiques.ca dnsvisa.comeubluecardvisa.comfinancialsoccer.ca"financialsoccer.com.cn +cnlightbridge.commiamifintechfestival.commhshosting.compracticalbusinessskills.compracticalmoneyskills.ca#practicalmoneyskills.cn +cn'practicalmoneyskills.com.cn +cnpracticalmoneyskills.jpsoccerfinancier.catorcidadeouro.com vaultify.com vaultify.info vaultify.net visa-atm.com visa-news.jp visabank.orgvisabusinessinsights.comvisacarddesignlab.com visacards.comvisacheckout.netvisacheckout.orgvisaconciergelac.comvisadigital.comvisadigitalconcierge.com visadns.comvisadpsonline.usvisaeverywhereshop.comvisafintechfasttrack.comvisafulfillment.comvisagiftcard.usvisaglobalfinance.comvisaicsdirect.comvisainfinite.cavisainfinite.cn +cn visanet.net +visapay.cn +cnvisapcsdirect.comvisaplatinum.cn +cnvisaplatinum.com.cn +cn visaplus.comvisasavingsedge.cavisasignature.co.kr visb.org + + 4PARADIGM 4paradigm.com + +ABEMA abema.io abema.tv  adx.promo ameba.jp amebame.com amebaownd.comamebaowndme.com  ameblo.jp bucketeer.jpdokusho-ojikan.jp hayabusa.dev hayabusa.iohayabusa.media winticket.jpabematv.akamaized.net#ds-linear-abematv.akamaized.net + +BINGbing bing.com bing.com.cn +cn bing.net bingads.combingagencyawards.combingapistatistics.combingsandbox.combingvisualsearch.com bingworld.combluehatnights.com +dictate.msflipwithsurface.commasalladeloslimites.commicrosoft-give.commicrosoftcloudsummit.commicrosoftdiplomados.commicrosoftlatamholiday.commicrosoftmxfilantropia.com!microsoftpartnersolutions.commsunlimitedcloudsummit.comoffice365love.comoffice365tw.comrenovacionoffice.comsprinklesapp.com cn.bing.com +cn cn.bing.net +cn ditu.live.com +cnbj1.api.bing.com +cnemoi-cncdn.bing.com +cn + + +EVERBRIGHT cebbank.com ceblease.com +eb-ind.com ebasset.com ebchina.comebchinaintl.com +ebf.com.cn  ebfcn.com ebfortune.com ebtrust.com ebscn-am.com  ebscn.comeverbright.com  secec.comsunlife-everbright.com + + RPMFUSION rpmfusion.org + +STAGE1ST saraba1st.com +N +THETYPE thetype.cloud +cn thetype.comtypeisbeautiful.com +F +COINONE coinone.co.krcoinonecore.comcoinonecorp.com + +GOG gog.comgog-statics.comgog.qtlglb.com +cn$gogalaxy.gog-statics.com +cn'menu-static.gog-statics.com +cn'productcard.gog-statics.com +cn(static-login.gog-statics.com +cn'www4-static.gog-statics.com +cn, ^images(-\d)?\.gog-statics\.com$ +cn + +HP +123-hp.com123hplaserjet.com8008206616.com as-hp.cabaterias-hp.com campushp.comcolorprotechnology.com +compaq.orgdavid-laserscanner.com demoprint.comdigitalpack.com eprintsw.comgaming-notebooks.comgetprintersupports.comhp-imagine.comhp-infolab.com hp-invent.comhp-invent.info +hp-mns.comhp-printing.comhp-webplatform.com  hp-ww.com +hp.com +hp.company hp.io hp3d.comhp3dmetals.comhp3dprinter.comhp3dsamplepromo.comhpallinoneprinter.comhpapplicationscenter.com hpbestbuy.comhpbluecarpet.comhpbluecarpet.nethpbuiltforlearning.com hpbundle.com hpcampus.comhpcatridge.com  hpccp.com  hpceo.com  hpcmw.nethpcodewarsbcn.comhpcomputers.comhpcomputerservices.comhpconnected.comhpconnected.nethpconnected.orghpconnected.ushpconnectedstage.comhpcontinuum.com  hpcpi.com hpcu.orghpcustomersupport.comhpcustomersupport.net +hpdaas.comhpdesignjetl25500.comhpdesktopcomputer.comhpdownloadstore.comhpdreamcolor.com hpdriver.com hpdrivers.com hpdrivers.org hpeclipse.com hpengage.com hpeprint.comhpeprintcenter.com hpeurope.comhpeventcenter.com +hpfaqs.comhpfeedback.com +hpgift.com +hpgpas.comhpgraphicspartners.com  hpiie.org +hpinc.info  hpinc.nethpindigopress.com hpinkjet.comhpinstantink.cahpinstantink.comhpkeyboard.com hplaptop.comhplaptopbattery.comhplargeformatremote.comhplatexknowledgecenter.com hplfmedia.com  hplip.nethplipopensource.comhpmarketplace.comhpmemorychips.comhpmicrcartridge.com +hpmini.com hpmobile.comhpofficejetprinter.comhponlinehelp.comhponlineprinting.comhppage5000.comhppavillionlaptop.comhpphotoscanners.comhpprinterdrivers.comhpprinterinstalls.comhpprintersupplies.comhpsalescentral.com hpserver.comhpservices.comhpshooping.com +hpshop.com hpshoping.com hpshopping.hk hpsignage.com hpsmart.com hpsmarts.comhpsmartstage.comhpsmartupdate.comhpsoftware.com hpspeaker.comhpsprocket.com  hpsso.comhpstore-china.comhpstore-emea.com +hpstore.cn +cn hpstore.comhpstorethailand.com hpsupport.comhpsuresupply.comhptechventures.com hpto.net hptouch.comhptouchpointmanager.comhptrainingcenter.com  hpuae.comhpuniversity.infohpusertraining.com +hpveer.comhpvirtualthin.com hpwallart.comhpwellnesscentral.com  hpwsn.com i-123-hp.com inkchoice.cominstantink.comleavinghpinc.comlife-global.orgmyhpsupport.com printeron.comprintersetupsupport.comprintspots.comprintspots.netserviceshp.comthecompaqstore.comtouchsmartpc.comtouchsmartpc.nettouchsmartpc.orgworkstations.tv www8-hp.comxn--6eup7j.comxn--6eup7j.nethpstore.corpmerchandise.com +$ +INTEL +01.org hyperscan.iointellinuxgraphics.comintellinuxgraphics.net +oneapi.comopenvinotoolkit.orgsnap-telemetry.io +acpica.com clearlinux.cn +cnclearlinux.org +ospray.net +ospray.org intel intel.ac intel.ae intel.af intel.ag intel.ai intel.ar intel.at intel.az intel.ba intel.bg intel.bh intel.bi intel.bo intel.bs intel.by intel.ca intel.cc intel.cg intel.ch intel.cl intel.cmintel.cn +cn intel.co.ae intel.co.cr intel.co.id intel.co.il intel.co.jp intel.co.kr intel.co.uk intel.co.za  intel.com intel.com.ar intel.com.au intel.com.bo intel.com.br intel.com.cn +cn intel.com.co intel.com.ec intel.com.hk intel.com.jm intel.com.mx intel.com.my intel.com.pe intel.com.ph intel.com.pr intel.com.py intel.com.tr intel.com.tw intel.com.uy intel.com.ve intel.cr intel.cu intel.cz intel.de intel.dk intel.dz intel.ec intel.ee intel.eg intel.es intel.eu intel.fi intel.fr intel.ga intel.gd intel.ge intel.gl intel.gm intel.gr intel.gs intel.gt intel.gy intel.hk intel.hn intel.ht intel.hu intel.ie intel.in intel.io intel.it intel.je intel.jo intel.jp intel.ke intel.la intel.lc intel.lk intel.lt intel.lu intel.ly intel.ma intel.md intel.me intel.mg intel.mk intel.mn intel.mp intel.mt intel.mu intel.mw intel.mx intel.my intel.ng intel.nl intel.nu intel.nz intel.pa intel.pe intel.ph intel.pl intel.pn intel.re intel.ro intel.ru intel.rw intel.sa intel.sc intel.se intel.sg intel.si intel.sk intel.sn intel.sr intel.st intel.sv intel.sx intel.sy intel.tf intel.tj intel.tl intel.tm intel.tn intel.tt intel.tv intel.tw intel.ua intel.uk intel.us intel.uy intel.uz intel.vg intel.vn intel.vu intel.wf intel.yt +altera.comalteraforum.comalteraforums.comalteraforums.netalterauserforum.comalterauserforum.netalterauserforums.comalterauserforums.net buyaltera.com celeron.com celeron.net centrino.com centrino.net  chips.com cilk.com cilk.netcloudinsights.comclusterconnection.com coreduo.comcoreextreme.comcrosswalk-project.comcrosswalk-project.netdoceapower.com  easic.com enpirion.comexascale-tech.comexploreintel.comgordonmoore.cominsidefilms.com intc.comintel-research.net&"intel-university-collaboration.netintelamericasstore.comintelapacstore.com intelatom.netintelcapital.comintelcapital.netintelcloudbuilders.comintelcloudfinder.comintelemeastore.cominteleventexpress.comintelforchange.comintelfreepress.com intelgo.netintelinsight.cominteliotmarketplace.com +intell.comintellearningseries.comintellinuxwireless.netintelnervana.comintelnet.component intelplay.comintelquark.comintelrealsense.cn +cnintelrealsense.com intelrxt.comintelsalestraining.comintelsecurity.comintelserveredge.comintelsoftwarenetwork.comintelstore.cominteltechnologyprovider.com intelvmwarecybersecurity.com  itnel.comlatencytop.comlookinside.commakebettercode.commakesenseofdata.com movidius.com movidius.netnervanasys.com  nevex.comnextgenerationcenter.com +niosii.com +niosii.netomekinteractive.com +omnitek.tv openamt.comopendroneid.orgoptanedifference.com +pc.com pentium.com pentium.net pintool.compoweredbyintel.comreconinstruments.com reconjet.comresearchintel.comsaffrontech.comsensorynetworks.com +siport.comsmart-edge.comtheintelstore.comthunderbolttechnology.nettrustedanalytics.comtrustedanalytics.net +vokevr.com vpro.com vpro.net xeon.comxn--ztsq84g.cn +xscale.combarefootnetworks.com + +ADOBE typekit.com typekit.net10xfotolia.com 2o7.net acrobat.com adbecrsl.comadobe-aemassets-value.comadobe-audience-finder.com"adobe-video-partner-finder.com  adobe.com adobe.lyadobeaemcloud.comadobeaemcloud.netadobeawards.comadobecontent.ioadobecreativityawards.com adobedc.net adobedemo.com adobedtm.comadobeexchange.comadobeexperienceawards.com adobegov.comadobehiddentreasures.comadobejanus.com adobeku.comadobelanding.comadobelogin.com adobeoobe.comadobeplatinumclub.comadobeprojectm.com adobesc.com adobesign.comadobesigncdn.comadobespark.com adobess.comadobestock.com adobetag.comadobetarget.comadobetcstrialdvd.comadobetechcomm.comadobetechcommcallback.comadobetechcommdemo.comadobexdplatform.comassetsadobe.com authorxml.combusinesscatalyst.com ccnsite.com  ccpsx.com +demdex.netdollarfotoclub.comdollarphotoclub.comdollarphotosclub.comdouwriteright.com echocdn.com echosign.com edgefonts.netenablementadobe.com  ftcdn.net gostorego.comimagineecommerce.commacromedia.commagentoliveconference.commarketing-nirvana.com omniture.com +omtrdc.net photoshop.complacesdocs.comsundanceignite2016.comworldsecureemail.comworldsecuresystems.com adobe.iodevelopria.com behance.nets2stagehance.com adobecc.com adobecce.comadobeccstatic.comcreativecloud.comcreativesdk.com cotolia.com ffotolia.com fiotolia.com foftolia.com fonolia.com fotiolia.com fotoiia.comfotolia-noticias.com +fotolia.cc fotolia.com +fotolia.tv fotolja.com fptolia.com gfotolia.com motolia.com photolia.nettenbyfotolia.com votolia.combluefootcms.com mageconf.commageconf.com.ua magento.com magento.netmagentocommerce.commagentomobile.commarketing-cloud.com marketo.co.uk marketo.com marketo.net +marketo.tvmarketodesigner.commarketolive.com +mktdns.commkto-c0100.com mktorest.com mktroute.commobilemarketo.com&"revenue-performance-management.com toutapp.comcompresspdf.new pdf.new sign.new +" + FOUNDERTYPEfoundertype.com + +GEPH geph.io +( +REDIS redis.io redislabs.com += +LANDIAN +lancdn.comlandiannews.com  wsoso.com + +SCOOP scoop.sh +. + POCKETCASTS +pca.stpocketcasts.com + +SINA-ADS 2016.sina.cn +adsad.sina.com.cn +adsadbox.sina.com.cn +ads!adimages.sina.com.hk +ads!adimg.mobile.sina.cn +ads adimg.uve.weibo.com +ads!adm.leju.sina.com.cn +ads ads.sina.com +adsalitui.weibo.com +adsapi.apps.sina.cn +ads appgift.sinaapp.com +ads#appsupdate.sinaapp.com +ads atm.sina.com +adsbeacon.sina.com.cn +ads biz.weibo.com +adsc.biz.weibo.com +ads!c.wcpt.biz.weibo.com +ads%click.uve.mobile.sina.cn +ads click.uve.weibo.com +adscm.dmp.sina.cn +ads0#contentrecommend-out.mobile.sina.cn +ads$count.video.sina.com.cn +ads counter.sina.com.cn +adscre.dp.sina.cn +adscre-dp.sina.cn +adsd00.sina.com.cn +adsdcads.sina.com.cn +adsdl.kjava.sina.cn +ads dmp.sina.cn +adsdp.im.weibo.cn +ads game.weibo.cn +adsgame.weibo.com +ads"gw5.push.mcp.weibo.cn +ads"gw6.push.mcp.weibo.cn +ads"img.adbox.sina.com.cn +ads#img.amp.ad.sina.com.cn +ads"int.dpool.sina.com.cn +ads%interest.mix.sina.com.cn +ads)log.interest.mix.sina.com.cn +ads log.mix.sina.com.cn +ads log.sina.cn +ads!m.beacon.sina.com.cn +adsm.game.weibo.cn +ads!mg.games.sina.com.cn +ads!motu.p4p.sina.com.cn +adsnewspush.sinajs.cn +ads oascentral.sina.com +ads#oascentral.sina.com.hk +adsp4p.sina.com.cn +adspalmnews.sina.cn +adspay.mobile.sina.cn +adspfp.sina.com.cn +adspfpip.sina.com +ads!promote.biz.weibo.cn +ads r.dmp.sina.cn +adsrm.sina.com.cn +ads rs.sinajs.cn +adss.alitui.weibo.com +ads"s.img.mix.sina.com.cn +ads sapi.sina.cn +ads sax.sina.cn +adssax.sina.com.cn +adssaxn.sina.com.cn +adssaxs.sina.com.cn +ads sbeacon.sina.com.cn +ads"sdkapp.mobile.sina.cn +ads!sdkapp.uve.weibo.com +ads$sdkclick.mobile.sina.cn +ads slog.sina.cn +adsslog.sina.com.cn +ads'staticadm.leju.sina.com.cn +adstjs.sjs.sinajs.cn +ads"trends.mobile.sina.cn +ads"u1.img.mobile.sina.cn +ads&wapwbclick.mobile.sina.cn +ads!wbapp.mobile.sina.cn +ads wbapp.uve.weibo.com +ads#wbclick.mobile.sina.cn +ads$wbpctips.mobile.sina.cn +adswidget.weibo.com +ads woocall.sina.com.cn +adszc.biz.weibo.com +adszymo.mps.weibo.com +ads + + STCSERVERstc-server.com + +CEX +cex.io +N + CLOUDCONE clco.cc +cloudc.one cloudcone.com cloudcone.net +c + UMENG-ADSalog.umeng.com +ads alog.umengcloud.com +ads +w.cnzz.com +ads + +SSRPASS +ssrpass.pw +: +ZAOBAO +zaobao.com zaobao.com.sg  zaobao.sg + +ANTUTU +antutu.com + +OSDN osdn.net + +SHOPEE shopee.cn +cn shopee.co.id shopee.co.th +shopee.com shopee.com.br shopee.com.my  shopee.ph  shopee.sg  shopee.tw  shopee.vnshopeemobile.com shopeesz.com +cn +shp.ee + +SQLITE +sqlite.org +U + CLEARASIL clearasil.cn +cnclearasil.com.cn +cn clearasil.us + +PRESS  press.vin + +5CH 2ch.net 5ch.net +N +SEASUNseasungames.com xishanju.com xoyo.com testplus.cn + + SWISSSIGN digital-id.ch digitalid.chmanaged-pki.chmanaged-pki.de pki-post.ch pki-posta.ch pki-poste.chroot-signing.chrootsigning.comssl-certificate.ch +swissid.ch swissign.com swissign.liswisssign-group.chswisssign-group.comswisssign-group.li swisssign.ch swisssign.com swisssign.li swisssign.net swisssign.orgswisssigner.chswisssigner.comswisssigngroup.chswisssigngroup.comswissstick.com swisstsa.ch swisstsa.li trustdoc.ch trustsign.ch zert.ch + + WIKIMEDIA mediawiki.org wikibooks.org wikidata.orgwikimediafoundation.org wikimedia.org wikinews.org wikipedia.org wikiquote.orgwikisource.orgwikiversity.orgwikivoyage.orgwiktionary.orgwmfusercontent.org +w.wiki toolforge.orgwikimediacloud.org wmcloud.org wmflabs.org + +ARK +ark.to + +GOFUNDME gofundme.com ++ + SEGMENT-ADScdn.segment.com +ads + + + BLOOMBERG  bloomberg bbgevent.com bbhub.io +bbthat.com bgov.com bloomberg.cnbloomberg.co.jpbloomberg.co.kr bloomberg.combloomberg.com.br bloomberg.fm bloomberg.tvbloombergapps.combloombergarcade.combloombergbeta.combloombergbna.combloombergbreakaway.combloombergbriefs.combloombergchina.combloombergenvironment.combloombergforeducation.combloomberggovernment.combloombergindices.combloombergindustry.combloomberglabs.combloomberglaw.combloomberglive.combloomberglp.combloombergmedia.combloombergnext.combloombergpolarlake.combloombergprep.combloombergquint.combloombergradio.combloombergsef.combloombergspace.combloombergstatus.combloombergsurvey.combloombergtax.combloombergtax1.combloombergtaxtech.com!bloombergtradingchallenge.combloombergtv.mnbloombergvault.combloombergview.comblpcareers.com blpevents.comblpprofessional.com bmia.org bnef.combusinessweek.combusinessweekmag.com bwbx.io citylab.com gotraffic.netlondonmithraeum.comneweconomyforum.comnewenergyfinance.comquicktake.videotechatbloomberg.com tictoc.video +s +EHENTAI e-hentai.org ehgt.org ehtracker.org +ehwiki.org exhentai.orghentaiverse.org + +GUCCI guccichimeforchange.orggucci.cn +cn  gucci.comguccimuseo.comguccitimeless.comregiongold.com + + YUANFUDAO banmaaike.comxiaoyuankousuan.com ybccode.com yuanfudao.com yuansouti.com yuantiku.com +` +OAN aweencore.com  awetv.comherringnetwork.com oanencore.com oann.com + +ORACLE +oracle +oracle.comoraclecloud.comoraclefoundation.org oracleimg.comateam-oracle.com +bronto.comcovid19-rx.org covid19rx.org sun.com addthis.comaddthiscdn.comaddthisedge.comjava java.com java.net += + TRANSLATEWIKItranslatewiki.nettranslatewiki.org +o +IFANR coolbuy.com  ifanr.com ifanr.inifanrusercontent.com +ifanrx.com +minapp.com +- +MYRADIO +myradio.hkmyradio.com.hk +# + PASSIONTIMESpassiontimes.hk +# +CATEGORY-SCHOLAR-!CN apa.orgpsyccareers.com cambridge.org"cambridgeschoolshakespeare.comcambridgedigital.netcambridgemaths.orgnewisiknowledge.comisiknowledge.com clarivate.comwebofknowledge.comwebofscience.com doi.org doi.info els-cdn.comelsevier-ae.com elsevier.com elsevier.ioengineeringvillage.com  evise.com +scopus.comscholar.google.aescholar.google.atscholar.google.bescholar.google.bgscholar.google.cascholar.google.catscholar.google.chscholar.google.clscholar.google.cnscholar.google.co.crscholar.google.co.idscholar.google.co.ilscholar.google.co.inscholar.google.co.jpscholar.google.co.krscholar.google.co.nzscholar.google.co.thscholar.google.co.ukscholar.google.co.vescholar.google.co.zascholar.google.comscholar.google.com.arscholar.google.com.auscholar.google.com.boscholar.google.com.brscholar.google.com.coscholar.google.com.cuscholar.google.com.doscholar.google.com.ecscholar.google.com.egscholar.google.com.gtscholar.google.com.hkscholar.google.com.lyscholar.google.com.mxscholar.google.com.myscholar.google.com.nischolar.google.com.pascholar.google.com.pescholar.google.com.phscholar.google.com.pkscholar.google.com.prscholar.google.com.pyscholar.google.com.sgscholar.google.com.svscholar.google.com.trscholar.google.com.twscholar.google.com.uascholar.google.com.uyscholar.google.com.vnscholar.google.czscholar.google.descholar.google.dkscholar.google.esscholar.google.fischolar.google.frscholar.google.grscholar.google.hnscholar.google.hrscholar.google.huscholar.google.isscholar.google.itscholar.google.lischolar.google.ltscholar.google.luscholar.google.lvscholar.google.nlscholar.google.noscholar.google.plscholar.google.ptscholar.google.roscholar.google.ruscholar.google.sescholar.google.sischolar.google.sk ic.ac.ukimperial.ac.ukimperialbusiness.schoolimperial.insendi.com +knovel.commit mit.edu mit.netmitpressjournals.orgamamanualofstyle.com anb.org blackstonespoliceservice.com epigeum.com oed.com  omscr.com oup.com +ouplaw.com ox.ac.ukoxfordaasc.comoxfordartonline.comoxfordbibliographies.comoxfordclinicalpsych.com oxforddnb.comoxfordfirstsource.comoxfordhandbooks.comoxfordlawtrove.comoxfordmedicine.comoxfordmusiconline.comoxfordpoliticstrove.com oxfordre.comoxfordreference.comoxfordscholarlyeditions.comoxfordscholarship.comoxfordwesternmusic.comsipriyearbook.org ukwhoswho.com"universitypressscholarship.comveryshortintroductions.comserialssolutions.com proquest.comsciencedirect.comsciencedirectassets.com +apress.com springer.comspringerlink.comspringernature.com wkap.nl tandf.co.uktandfonline.comtaylorandfrancis.comtaylorfrancis.com +aclweb.org acm.org acs.org altmetric.comanalytictech.comannualreviews.org  arxiv.org asha.org berkeley.edubiomedcentral.com biorxiv.org  brill.com cell.com cmu.educomputingreviews.com degruyter.comdentalhypotheses.comelifesciences.org europepmc.orgfrontiersin.org gale.com galegroup.com  ggsrv.com hindawi.com informs.org iop.orgisca-speech.orgjamanetwork.comjapanknowledge.comjbe-platform.com jmlr.org jneurosci.org  jstor.org kuke.comlawdata.com.twliteratumonline.com mdpi.com +nature.com nejm.org neurology.org ovid.com  peerj.comphysiology.org plos.org pnas.org princeton.eduresearchgate.netroutledgehandbooks.comroyalsocietypublishing.org rsc.org sagepub.comscholarpedia.orgsciencemag.orgscientificamerican.com scitation.orgsilverchair-cdn.comspiedigitallibrary.orgstatsmakemecry.com thelancet.com uchicago.edu ucla.edu  umass.edu  wiley.com yale.edu ++ +FORBES +forbes.com forbesimg.com +' +HACPAI +hacpai.com  ld246.com +/ +XVIDEOS xvideos.comxvideos-cdn.com +7 +AMD amd.comamdfanstore.com +radeon.com + +NAVER +lin.ee line.me line.naver.jp line-apps.com line-cdn.net line-scdn.net +nhncorp.jp grafolio.com  naver.com naver.jp  naver.net navercorp.com  plug.game pstatic.net + +SHORTURL shorturl.at + +WANGSU  51cdn.com  8686c.com  cdn30.orgchinanetcenter.com  lxdns.com +lxdns.info  lxdns.org ourdvsss.com speedws.info speedws.org +wangsu.com +wscdns.com wscdns.info +wscdns.org + + +TORPROJECTtorproject.org +? + BONGACAMS bongacams.com +bcicdn.com bcrncdn.com + +ELREPO +elrepo.org + + MEADJOHNSONenfinitas.com.cn +cnmeadjohnson.commeadjohnson.com.cn +cnmeadjohnson.com.hkmeadjohnson.com.twmeadjohnson.net + + +SKILLSHAREskillshare.com +( +GLOBALSECURITYglobalsecurity.org +4 +THEBORINGCOMPANYboringcompany.com x.com +" +LIHKG +lih.kg  lihkg.com +2 +MORISAWAmorisawa.co.jptypesquare.com +E +WIX wix.com  wixmp.com wixsite.com wixstatic.com + +CTYUN ctyun.online + +MYSQL  mysql.com +0 +OPENWRT openwrt.orglede-project.org +2 +REABBLE +reabble.cn +cn reabble.com +" + ADBLOCKPLUSadblockplus.org +. +ASPROEX asproex.comasproexapi.com + +BILIPLUS biliplus.com + +CISCO webex.ca webex.co.in webex.co.it webex.co.jp webex.co.kr webex.co.nz webex.co.uk  webex.com webex.com.au webex.com.br webex.com.cn +cn webex.com.hk webex.com.mx webex.de webex.es webex.fr ciscoacademynetriders.comcciernslabs.comcciesecuritylabs.comccievoicelabs.com  ccna5.netcisco-returns.comcisco-warrantyfinder.comcisco.cn +cn  cisco.com cisco.com.cn +cn +cisco.mobiciscoccservice.comciscoconnectcloud.comciscoconnectcloud.netciscoconnectcloud.orgciscocontest.comciscoerate.com ciscofax.comciscoinvestments.comciscojabbervideo.netciscokinetic.comciscoknowledgenetwork.comciscolearningsociety.orgciscolearningsystem.com ciscolive.comcisconetspace.comcisconetspace.infocisconetspace.netcisconetapp.comciscopartnermarketing.comciscopowercube.comciscoprice.comciscoresearch.comciscosoftware.com ciscospark.caciscospark.com ciscospark.jpciscotaccc.com ciscotr.com ciscoturk.netciscovideo.comciscowebseminars.com cloudlock.com cloupia.com cloupia.netconnect-in-canada.comcoreoptics.net cs.co +devm2m.com dnaspaces.io flipshare.comgpstheseries.com inlethd.cominternetofeverything.com ioe.com kscisco.com m2m.com +mcisco.commediafiles-cisco.com metacloud.com mindmeld.commultiplydiversity.commyciscobenefits.com  mysdn.com +mysdn.info  mysdn.net netacad.com netacad.netnetwork-auth.cn +cnobservable.net obsrvbl.com parstream.com parstream.net parstream.orgservices-exchange.comstatic-cisco.comtandberg-china.com tandberg.com +versly.comvideochampion.com virtuata.comwballiance.com!whyiwantciscotelepresence.com wifi-mx.comyoutubecisco.comapp-dynamics.comappdynamics.co.ukappdynamics.comappdynamics.deappdynamics.frappdynamics.infoappdynamics.jpappdynamics.org +mearki.com meraki-go.com  meraki.hk merakigo.com +tail-f.com  tailf.comcisco.evergage.comciscolivehls-i.akamaihd.net + +W3C +w3.org + + CORDCLOUD cordcloud.org +* +DANGDANG dangdang.com ddimg.cn +f +PHOENIX  ifeng.com ifengimg.comphoenixcenter.cn fengedu.comifengweekly.com + + R-PROJECT r-project.org + +THELINUXFOUNDATION +kernel.org  linux.org amp.devampproject.comampproject.netampproject.orgcdn.ampproject.org +cnamp.akamaized.netelectronjs.org +jquery.comjquerymobile.com jqueryui.com mochajs.org +nodejs.org openjsf.orglfai.foundationlinuxfoundation.org + + W3SCHOOLS w3schools.com +, +LINUXFROMSCRATCHlinuxfromscratch.org + +MORTEIN +mortein.cn +cn mortein.co.in mortein.co.nz mortein.co.za mortein.commortein.com.aumortein.com.brmortein.com.ngmortein.com.pkmorteincam.compifpafarabia.com + +RARBG rarbg.me rarbg.toproxyrarbg.org rarbg.israrbgaccess.org rarbggo.orgrarbgmirror.comrarbgmirror.orgrarbgproxy.org rarbgprx.orgrarbgunblock.com +9 + SQUIRRELVPNsquirrelvpn.comsquirrelgroup.net + +DWION acadn.cn  acadn.com bbbcdns.com  dlgslb.cn +dlgslb.net  dwion.com fastcdn.comfastcdn.com.cn  flxdns.cn +flxdns.com globalcdn.cn mcadn.cn  tlgslb.cn +tlgslb.com + + FACEBOOK-DEVaccountkit.comatscaleconference.com botorch.org +buck.build buckbuild.comcomponentkit.org draftjs.org +f8.comfacebookappcenter.infofacebookappcenter.netfacebookappcenter.orgfacebookconnect.comfacebookdevelopergarage.comfaciometrics.com fasttext.cc fbf8.com fbinfer.com fblitho.com fbredex.com +fbrell.com flow.dev flow.org flowtype.org frescolib.org hacklang.org hhvm.commakeitopen.com mcrouter.net mcrouter.orgmessengerdevelopers.com +ogp.meopengraphprotocol.comopengraphprotocol.org  parse.com pyrobot.org  react.com reactjs.com reactjs.org recoiljs.org rocksdb.com rocksdb.net rocksdb.orgyogalayout.comdevelopers.facebook.com +f +ROKU fandango.com mgo.commgo-images.com ravm.tv roku.com rokutime.com + +SVP svp-team.com + +FTEPROXY fteproxy.org +E +INFOWARS banned.video infowars.cominfowarsmedia.com + +APACHE +apache.org + + +CUGBONLINE cugbonline.cn +@ + DIGITALOCEANdigitalocean.comdigitaloceanspaces.com +J +FLICKR +flickr +flickr.com +flickr.netstaticflickr.com + +AVN avn.com +$ +TAOMEE +61.com +taomee.com + + WIRESHARK wireshark.org +H + ZYNGA-ADS zynga.com +ads#zyngaplayersupport.com +ads +: +BBCbbc  bbc.co.uk bbc.com +bbci.co.uk +B +HASKELL haskell.orghaskellstack.org stackage.org +' +POLYV  polyv.net videocc.net +, +SECOM secom.co.jpsecomtrust.net +G +ASAHI  asahi.com asahicom.jpasahishimbun.sc.omtrdc.net +$ +CSDN csdn.net +csdnimg.cn + +IETF ietf.org + + +INFRAPEDIAinfrapedia.com + + +CODECADEMYcodecademy.com + +REURL reurl.cc + +WWE wwe.com wwe9.com +1 +ZIROOM +ziroom.comziroomapartment.com +. +ANDROID android.comandroidify.com +9 +EMBEDLY embed.ly embedly.com playerjs.io +D + +LIVEJASMINlivejasmin.com dditsadn.com dditscdn.com +6 + RULEOFLAWrolfoundation.orgrolsociety.org + + + MICROSOFT-DEVadaptivecards.ioapi-extractor.com +apisof.net appcenter.ms +blazor.netbotframework.comcodethemicrobit.comdevopsassessment.net dot.netgamesstack.comgraphengine.ioinsiderdevtour.com +jwt.ms microbit.orgmicrosoftadc.commicrosoftgamestack.commicrosoftiotinsiderlabs.commicrosoftreactor.cn +cn#microsoftreactor.com.cn +cnmicrosoftreactor.infomicrosoftreactor.netmicrosoftreactor.orgmicrosoftsilverlight.commicrosoftsilverlight.orgmicrosoftsilverlight.netmicrosoftsqlserver.com  mmdnn.commono-project.com msdn.commsinnovationchallenge.commspairlift.commsropendata.com  nuget.org nugettest.orgopentranslatorstothings.orgposhtestgallery.compwabuilder.comreactorms.com.cn +cn +sankie.netsqlserveronlinux.comtimelinestoryteller.comuwpcommunitytoolkit.comvisualstudio-staging.comvisualstudio.comvisualstudio.covisualstudio.co.ukvisualstudio.euvisualstudio.net vfsforgit.com vfsforgit.org vsassets.io xamarin.comdeveloper.microsoft.comdtlgalleryint.cloudapp.net poshtestgallery.cloudapp.net"psg-int-centralus.cloudapp.netpsg-int-eastus.cloudapp.net +2 + NEWRELIC-ADS"js-agent.newrelic.com +ads +9 + +ARTSTATIONartstation.comartstationmedia.com + +BTCBOX btcbox.co.jp +$ + CLOUDCONVERTcloudconvert.com + +GCORES +gcores.com + +TELEGRAM contest.com  graph.orgquiz.directoryt.me tdesktop.com +telega.one +telegra.ph telegram.dog telegram.me telegram.orgtelegram.space +telesco.pe +tg.dev tx.meusercontent.dev + +UN +un.org +7 + BUYMEACOFFEE buymeacoff.eebuymeacoffee.com + +CATEGORY-ADS-ALL7box.vip +adsad-delivery.net +ads adinplay.com +ads adnxs.com +ads!ads.trafficjunky.net +adsadvertserve.com +adscasalemedia.com +ads!contextual.media.net +ads cpmstar.com +ads +demdex.net +ads httpool.com +ads lijit.com +ads1rx.io +ads mfadsrvr.com +adsmgid.com +adsns1p.net +ads openx.net +ads pubmatic.com +adsspotxchange.com +ads +unimhk.com +ads upapi.net +ads taboola.com apilog-web.acfun.cn +ads adcolony.com +ads +adjust.com +ads a.alimama.cn +adsacjs.aliyun.com +adsadash.m.taobao.com +ads!adashbc.m.taobao.com +ads"adashbc.ut.taobao.com +ads"adash-c.ut.taobao.com +ads adashx.m.taobao.com +ads$adashx4ae.ut.taobao.com +ads#adashx4yt.m.taobao.com +ads#adashxgc.ut.taobao.com +adsadsh.m.taobao.com +adsafp.adchina.com +adsafp.alicdn.com +ads agoodm.m.taobao.com +ads#agoodm.wapa.taobao.com +ads alipaylog.com +adsamdc.alipay.com +adsamdc.m.taobao.com +ads api.wapa.taobao.com +ads#api.waptest.taobao.com +adsapoll.m.taobao.com +ads#appdownload.alicdn.com +adsatanx.alicdn.com +adsatanx2.alicdn.com +adscbu01.alicdn.com +adscdn0.mobmore.com +adsclick.aliyun.com +ads&click.mz.simba.taobao.com +adscm.ipinyou.com +ads cm.mlt01.com +ads!dsp.simba.taobao.com +adserr.taobao.com +adsex.mobmore.com +ads ex.puata.info +ads!fav.simba.taobao.com +ads$feedback.whalecloud.com +adsff.win.taobao.com +ads fm.p0y.cn +adsg.click.taobao.com +ads +g.tbcdn.cn +adsgma.alicdn.com +adsgtms01.alicdn.com +adsgtms02.alicdn.com +adsgtms03.alicdn.com +adsgtms04.alicdn.com +adshydra.alibaba.com +ads'hz.pre.tbusergw.taobao.net +ads#hz.tbusergw.taobao.net +ads i.ipinyou.com +adsinit.phpwind.com +ads!intl.wapa.taobao.com +ads$intl.waptest.taobao.com +ads"jxlog.istreamsche.com +adslog.umtrack.com +adsm.intl.taobao.com +adsm.simba.taobao.com +adsmatch.p4p.1688.com +ads%material.istreamsche.com +ads mlt01.com +ads&nbsdk-baichuan.alicdn.com +ads&nbsdk-baichuan.taobao.com +ads"osfota.cdn.aliyun.com +ads osupdate.aliyun.com +ads&osupdateservice.yunos.com +ads%pindao.huoban.taobao.com +adspush.wandoujia.com +adsre.m.taobao.com +ads re.taobao.com +ads&redirect.simba.taobao.com +adsrj.m.taobao.co +adsrj.m.taobao.com +adssdkinit.taobao.com +adsshow.re.taobao.com +adssimaba.taobao.com +adssimba.m.taobao.com +ads!srd.simba.taobao.com +adsstats.ipinyou.com +ads strip.taobaocdn.com +ads$tanxlog.istreamsche.com +adstejia.taobao.com +adstemai.taobao.com +ads!tns.simba.taobao.com +ads tongji.linezing.com +ads tvupgrade.yunos.com +adstyh.taobao.com +adsuserimg.qunar.com +adsw.m.taobao.com +adsyiliao.hupan.com +ads amazon-adsystem.com +adsiadsdk.apple.com +ads iad.apple.com +ads qwapi.com +ads applovin.com +ads +applvn.com +ads atom-data.io +adsanalytics-data.io +ads ironbeast.io +ads a.baidu.com +ads ad.duapps.com +ads ad.player.baidu.com +ads adm.baidu.com +adsadscdn.baidu.com +adsadx.xiaodutv.com +adsae.bdstatic.com +ads afd.baidu.com +ads als.baidu.com +ads&api.mobula.sdk.duapps.com +ads"api.tuisong.baidu.com +adsappc.baidu.com +adsb.bdstatic.com +adsbaichuan.baidu.com +adsbaidustatic.com +adsbaidutv.baidu.com +adsbanlv.baidu.com +ads bar.baidu.com +ads"bdimg.share.baidu.com +adsbdplus.baidu.com +ads bj.bcebos.com +adsbtlaunch.baidu.com +ads c.baidu.com +ads cb.baidu.com +adscbjs.baidu.com +adscjhq.baidu.com +adscleaner.baidu.com +ads click.bes.baidu.com +adsclick.hm.baidu.com +adsclick.qianqian.com +ads"cm.baichuan.baidu.com +ads cm.baidu.com +adscm.pos.baidu.com +ads cpro.baidu.cn +adscpro.baidu.com +ads!cpro.baidustatic.com +ads!cpro.tieba.baidu.com +ads"cpro.zhidao.baidu.com +adscpro2.baidu.com +ads"cpro2.baidustatic.com +ads crs.baidu.com +adsdatax.baidu.com +ads dd713.bj.bcebos.com +ads dl.client.baidu.com +adsdl.ops.baidu.com +adsdl1sw.baidu.com +adsdl2.bav.baidu.com +adsdlsw.baidu.com +adsdlsw.br.baidu.com +ads!dl-vip.bav.baidu.com +ads(dl-vip.pcfaster.baidu.co.th +ads#download.bav.baidu.com +ads"download.sd.baidu.com +adsdrmcmm.baidu.com +ads dup.baidustatic.com +ads dxp.baidu.com +ads dzl.baidu.com +ads e.baidu.com +adseclick.baidu.com +adsecma.bdimg.com +adsecmb.bdimg.com +adsecmc.bdimg.com +ads eiv.baidu.com +ads em.baidu.com +adsentry.baidu.com +ads ers.baidu.com +ads f10.baidu.com +ads#fc-feed.cdn.bcebos.com +adsfclick.baidu.com +adsfeed.baidu.com +adsfexclick.baidu.com +ads g.baidu.com +adsgimg.baidu.com +adsguanjia.baidu.com +ads hc.baidu.com +ads hm.baidu.com +adshmma.baidu.com +ads hpd.baidu.com +adsidm.bce.baidu.com +adsidm-su.baidu.com +adsiebar.baidu.com +adsikcode.baidu.com +adsimg.taotaosou.cn +adsimg01.taotaosou.cn +adsj.br.baidu.com +adskstj.baidu.com +ads log.music.baidu.com +ads m1.baidu.com +ads ma.baidu.com +adsmobads.baidu.com +ads"mobads-logs.baidu.com +adsmpro.baidu.com +adsmsite.baidu.com +adsneirong.baidu.com +adsnsclick.baidu.com +ads#nsclickvideo.baidu.com +adsopenrcv.baidu.com +ads$pc.videoclick.baidu.com +ads pos.baidu.com +adspups.bdimg.com +ads%push.zhanzhang.baidu.com +ads qianclick.baidu.com +adsrelease.baidu.com +adsres.mi.baidu.com +ads"rigel.baidustatic.com +ads#river.zhidao.baidu.com +ads rj.baidu.com +adsrplog.baidu.com +ads s.baidu.com +adss.cpro.baidu.com +ads!sa.tuisong.baidu.com +adssclick.baidu.com +adssestat.baidu.com +adsshadu.baidu.com +adsshare.baidu.com +ads"snippet.pos.baidu.com +adssobar.baidu.com +adssobartop.baidu.com +adsspcode.baidu.com +adsstat.v.baidu.com +ads su.bdimg.com +adssu.bdstatic.com +ads t10.baidu.com +ads t11.baidu.com +ads t12.baidu.com +ads tk.baidu.com +adstkweb.baidu.com +ads"tob-cms.bj.bcebos.com +adstongji.baidu.com +adstoolbar.baidu.com +adstracker.baidu.com +adstuijian.baidu.com +ads*uat1.bfsspadserver.8le8le.com +ads#ubmcmm.baidustatic.com +adsucstat.baidu.com +adsulic.baidu.com +ads ulog.imap.baidu.com +adsunion.baidu.com +ads!unionimage.baidu.com +adsutility.baidu.com +ads utk.baidu.com +ads videopush.baidu.com +adsvv84.bj.bcebos.com +adsw.gdown.baidu.com +ads w.x.baidu.com +adswangmeng.baidu.com +adsweishi.baidu.com +ads$wenku-cms.bj.bcebos.com +ads%wisepush.video.baidu.com +ads wm.baidu.com +adswn.pos.baidu.com +adsznsv.baidu.com +adszz.bdstatic.com +adszzy1.quyaoya.com +adsmcs.snssdk.com +adsx.clearbitjs.com +ads bluekai.com +adsfout.jp +ads gmossp-sp.jp +adsi-mobile.co.jp +ads im-apps.net +ads impact-ad.jp +ads ladsp.com +ads microad.co.jp +ads +microad.jp +ads socdm.com +ads emogi.com +adsdata.flurry.com +ads2mdn.net +ads admob.com +ads adsense.com +ads'adsensecustomsearchads.com +ads%adsenseformobileapps.com +ads$advertisercommunity.com +ads%advertiserscommunity.com +ads"adwords-community.com +ads adwords.com +adsadwordsexpress.com +ads app-measurement.com +ads&clickserver.googleads.com +adsdoubleclick.com +adsdoubleclick.net +ads!google-analytics.com +adsgoogleadapis.com +ads!googleadservices.com +ads googleanalytics.com +adsgoogleoptimize.com +ads"googlesyndication.com +ads!googletagmanager.com +ads"googletagservices.com +ads'googletraveladservices.com +ads +urchin.com +ads>1^adservice\.google\.([a-z]{2}|com?)(\.[a-z]{2})?$ +ads!assets.growingio.com +adsmlog.hiido.com +adsylog.hiido.com +adsstatic.hotjar.com +adsclick.hunantv.com +adsda.hunantv.com +ads da.mgtv.com +adslog.hunantv.com +adslog.v2.hunantv.com +adsres.hunantv.com +adsv2.log.hunantv.com +adsinner-active.mobi +adsa.ckm.iqiyi.com +adsad.m.iqiyi.com +ads afp.iqiyi.com +adsc.uaa.iqiyi.com +ads cloudpush.iqiyi.com +ads"cm.passport.iqiyi.com +adscupid.iqiyi.com +ads#emoticon.sns.iqiyi.com +ads!gamecenter.iqiyi.com +ads!hotchat-im.iqiyi.com +adsifacelog.iqiyi.com +adsmbdlog.iqiyi.com +ads msg.71.am +adsmsg.video.qiyi.com +ads msg2.video.qiyi.com +ads#policy.video.iqiyi.com +adsyuedu.iqiyi.com +adsads.union.jd.com +ads c-nfa.jd.com +adscps.360buy.com +ads +jzt.jd.com +ads stat.m.jd.com +ads img-x.jd.com +ads log-sdk.gifshow.com +adswlog.kuaishou.com +ads leanplum.com +ads#api.game.letvstore.com +ads ark.letv.com +ads dc.letv.com +adsdev.dc.letv.com +ads fz.letv.com +ads g3.letv.com +adsletv.allyes.com +adsminisite.letv.com +adsmsg.m.letv.com +adsn.mark.letv.com +adsplog.dc.letv.com +adspro.hoye.letv.com +ads pro.letv.com +ads stat.letv.com +ads"static.app.m.letv.com +ads decide.mixpanel.com +ads mopub.com +adsevt.mxplay.com +adsanalytics.163.com +ads crash.163.com +ads crashlytics.163.com +ads g.163.com +ads"js-agent.newrelic.com +ads ogury.com +ads +presage.io +adsogury.co +ads onesignal.com +adsOB^speed\.(coe|open)\.ad\.[a-z]{2,6}\.prod\.hosts\.ooklaserver\.net$ +ads cdn.pocoiq.cn +ads oct.pocoiq.cn +adsads.pubmatic.com +adscdn.segment.com +ads"static.sensorsdata.cn +ads 2016.sina.cn +adsad.sina.com.cn +adsadbox.sina.com.cn +ads!adimages.sina.com.hk +ads!adimg.mobile.sina.cn +ads adimg.uve.weibo.com +ads!adm.leju.sina.com.cn +ads ads.sina.com +adsalitui.weibo.com +adsapi.apps.sina.cn +ads appgift.sinaapp.com +ads#appsupdate.sinaapp.com +ads atm.sina.com +adsbeacon.sina.com.cn +ads biz.weibo.com +adsc.biz.weibo.com +ads!c.wcpt.biz.weibo.com +ads%click.uve.mobile.sina.cn +ads click.uve.weibo.com +adscm.dmp.sina.cn +ads0#contentrecommend-out.mobile.sina.cn +ads$count.video.sina.com.cn +ads counter.sina.com.cn +adscre.dp.sina.cn +adscre-dp.sina.cn +adsd00.sina.com.cn +adsdcads.sina.com.cn +adsdl.kjava.sina.cn +ads dmp.sina.cn +adsdp.im.weibo.cn +ads game.weibo.cn +adsgame.weibo.com +ads"gw5.push.mcp.weibo.cn +ads"gw6.push.mcp.weibo.cn +ads"img.adbox.sina.com.cn +ads#img.amp.ad.sina.com.cn +ads"int.dpool.sina.com.cn +ads%interest.mix.sina.com.cn +ads)log.interest.mix.sina.com.cn +ads log.mix.sina.com.cn +ads log.sina.cn +ads!m.beacon.sina.com.cn +adsm.game.weibo.cn +ads!mg.games.sina.com.cn +ads!motu.p4p.sina.com.cn +adsnewspush.sinajs.cn +ads oascentral.sina.com +ads#oascentral.sina.com.hk +adsp4p.sina.com.cn +adspalmnews.sina.cn +adspay.mobile.sina.cn +adspfp.sina.com.cn +adspfpip.sina.com +ads!promote.biz.weibo.cn +ads r.dmp.sina.cn +adsrm.sina.com.cn +ads rs.sinajs.cn +adss.alitui.weibo.com +ads"s.img.mix.sina.com.cn +ads sapi.sina.cn +ads sax.sina.cn +adssax.sina.com.cn +adssaxn.sina.com.cn +adssaxs.sina.com.cn +ads sbeacon.sina.com.cn +ads"sdkapp.mobile.sina.cn +ads!sdkapp.uve.weibo.com +ads$sdkclick.mobile.sina.cn +ads slog.sina.cn +adsslog.sina.com.cn +ads'staticadm.leju.sina.com.cn +adstjs.sjs.sinajs.cn +ads"trends.mobile.sina.cn +ads"u1.img.mobile.sina.cn +ads&wapwbclick.mobile.sina.cn +ads!wbapp.mobile.sina.cn +ads wbapp.uve.weibo.com +ads#wbclick.mobile.sina.cn +ads$wbpctips.mobile.sina.cn +adswidget.weibo.com +ads woocall.sina.com.cn +adszc.biz.weibo.com +adszymo.mps.weibo.com +adsadnet.sohu.com +ads ads.sohu.com +ads!adv-sv-show.focus.cn +ads aty.sohu.com +adsdata.vod.itc.cn +adsepro.sogou.com +ads go.sohu.com +adsgolden1.sogou.com +adsimp.optaim.com +adsinte.sogou.com +adsinte.sogoucdn.com +adslu.sogoucdn.com +ads pv.sohu.com +adstheta.sogoucdn.com +adstrack.sohu.com +adsuranus.sogou.com +adsv2.reachmax.cn +ads)e8aeb8bbdbbd7.cdn.sohucs.com +ads)643108e7617ef.cdn.sohucs.com +ads'adeventtracker.spotify.com +ads$adstudio-assets.scdn.co +ads#bloodhound.spotify.com +adssupersonic.com +adssupersonicads.com +ads +ssacdn.com +ads)supersonicads-a.akamaihd.net +ads g1.tagtic.cn +adsxy-log.tagtic.cn +adsssp.api.tappx.com +ads ad.qq.com +ads ad.qun.qq.com +ads!adfilter.imtt.qq.com +ads adping.qq.com +adsadpm.app.qq.com +adsadsclick.qq.com +adsadsfile.qq.com +adsadshmmsg.qq.com +adsadslvfile.qq.com +adsadslvseed.qq.com +ads%adsmind.apdcdn.tc.qq.com +adsadsqqclick.qq.com +adsadstestview.qq.com +adsadsview.qq.com +adsadsview2.qq.com +adsadv.app.qq.com +ads adver.qq.com +ads btrace.qq.com +adse.qq.com +adslog.tbs.qq.com +ads mpush.qq.com +ads mtrace.qq.com +ads push.qq.com +ads pgdt.gtimg.cn +ads uberads.com +adsalog.umeng.com +ads alog.umengcloud.com +ads +w.cnzz.com +ads!unityads.unity3d.com +ads#unityads.unitychina.cn +ads ads.wteam.xyz +ads#collector.xhamster.com +adsad.intl.xiaomi.com +ads ad.mi.com +ads ad.xiaomi.com +adsadmob.xiaomi.com +adsad1.xiaomi.com +adsmistat.xiaomi.com +adstracking.miui.com +adsadv.sec.miui.com +ads"adv.sec.intl.miui.com +ads"misc.in.duokanbox.com +ads ad.hpplay.cn +adsadeng.hpplay.cn +ads kuyun.com +ads umeng.com +ads ads.yahoo.com +adsgemini.yahoo.com +ads ysm.yahoo.com +adsactives.youku.com +ads ad.api.3g.youku.com +ads$ad.api.mobile.youku.com +ads ad.mobile.youku.com +ads(a-dxk.play.api.3g.youku.com +ads atm.youku.com +ads#b.smartvideo.youku.com +adsc.yes.youku.com +adsdas.api.youku.com +ads!das.mobile.youku.com +ads!dev-push.m.youku.com +adsdl.g.youku.com +adsdmapp.youku.com +adse.stat.ykimg.com +ads#gamex.mobile.youku.com +ads!guanggaoad.youku.com +ads hudong.pl.youku.com +ads!huodong.pl.youku.com +ads"huodong.vip.youku.com +ads hz.youku.com +adsiyes.youku.com +ads l.ykimg.com +adslstat.youku.com +ads mobilemsg.youku.com +ads msg.youku.com +adsmyes.youku.com +ads p.l.youku.com +ads pl.youku.com +ads#passport-log.youku.com +adsp-log.ykimg.com +adspush.m.youku.com +ads r.l.youku.com +ads s.p.youku.com +adssdk.m.youku.com +adsstat.youku.com +ads$statis.api.3g.youku.com +ads&store.tv.api.3g.youku.com +ads&store.xl.api.3g.youku.com +adstdrec.youku.com +adstest.ott.youku.com +ads!test.sdk.m.youku.com +ads v.l.youku.com +adsval.api.youku.com +ads wan.youku.com +adsykatr.youku.com +adsykrec.youku.com +ads cvnad.com +ads +iyoowi.com +ads zynga.com +ads#zyngaplayersupport.com +ads 51y5.net a.adtng.com +aaxads.com +ad-srv.netad.api.moji.comad.wang502.com adbutter.netads.trafficjunky.net adtechus.com adxprtz.comcdn.advertserve.comcdn.banclip.comcfts1tifqr.comcontentabc.com cretgate.comero-advertising.comeroadvertising.com exoclick.com +exosrv.comimg-bss.csdn.net imglnkc.com imglnkd.comja2.gamersky.com jl3.yjaxa.topkepler-37b.com +lqc006.coms4yxaqyq95.comshhs-ydd8x2.yjrmss.cnstatic.javhd.comtrafficfactory.biztsyndicate.com adx.36kr.comclick.ali213.netpbmp.ali213.net^pinggai\d\.caixin\.com$adq.chinaso.comstat.chinaso.com toboads.comdn-growing.qbox.me ad.unimhk.comdas-rpt-log.ucloud.cn + + +FANHAODIANfanhaodian.com +? +MAFENGWO mafengwo.cn mafengwo.com mafengwo.net + + SHARETHIS sharethis.com + + +TYPOGRAPHYtypography.com + +ATYPI  atypi.org + +BEEG beeg.com + + CATEGORY-PORN  1pondo.tv +91porn.com  avgle.com avn.com beeg.com bongacams.com +bcicdn.com bcrncdn.com +btt804.com +btt904.com +bttzyw.com +bttzyw.net t66y.comchaturbate.com e-hentai.org ehgt.org ehtracker.org +ehwiki.org exhentai.orghentaiverse.org eporner.comfanhaodian.com  hegre.com heydoga.com  heyzo.com hqporner.com cdnlab.live jable.tv +javbus.com javbus22.com javfinder.sh findercdn.me o0-2.com  javhd.comjavlibrary.com +javwide.tv javwide.com kindgirls.comlivejasmin.com dditsadn.com dditscdn.com +metart.commetartnetwork.com metcams.comnaiadsystems.com  nsimg.net netflav.com  pigav.com +pornhd.com +phncdn.com phprcdn.com pornhub.compornhubpremium.com  press.vin redtube.com scoreland.comcdn77.scoreuniverse.com spankbang.comtheporndude.com  tube8.com  uug22.com  uug23.com  uug25.com  uug26.com  uug27.com  uuk28.com  uun78.com  uun79.com  uun82.com  uun83.com  uun85.com  uun86.com  uun87.com  uun89.com  uun92.com  uun93.com  uun95.com  uun96.com  uun97.com  uun98.com  uun99.com  uux68.comvaginacontest.com  x-art.com xhamster.comxhamsterlive.com  xhcdn.comwidgets.stripst.com#collector.xhamster.com +ads xnxx.com xnxx-cdn.com xvideos.comxvideos-cdn.com youjizz.comyjcontentdelivery.com youporn.com 0plkijj.vip  114av.xyz 16fhgdty.xyz 18novel.xyz +1jjdg2.vip +1jsa22.vip  51dh.site 520aa.tv 5278.cc +52hyse.com 54647.online 69story.com 69vj.com  721av.com +7mm.tv +85tube.com 91.51rmc.com 920share.com +a.91gay.me a.kslive.tv aavs.xyz  agzy1.com aibaobei.me aimei133.com airav.ccanimezilla.comasianpornmovies.com av01.tv  av1688.cc av6k.com avfox.cc +avinin.com +avmoo.cyou +avpanda.cc +avsee01.tv avseesee.com bangbros.combesthentaitube.com brazzers.com +buzzav.com  caime.xyz calvappd.me cam4.com cslpldyb.me  dkk37.comdownload.91porn005.medownload.i91av.org +dvh30n.vipflirt4free.com follasian.com +gaypad.net  gouri.xyz  hanime.tv +hanime1.me hpjav.tv hsxhr.ccichineseporn.com  iijav.com  immxd.com isexlove.tw isexomega.twjapan-whores.comjapanesebeauties.net jav.guru jav01.cc +jav101.com  jav168.cc javcc.cc  javcc.com +javdoe.com javdove8.xyz  javfor.me javfull.net  javhd.pro javhd3x.com javhdfree.netjavlibrary.com javmost.com  javqd.com javynow.com  jgg18.xyz jiayoulu.com jinnaju.com jjdong7.com +johren.net kissjav.com kphimsex.net  love7.xyz lp99.pw lsnzxzy1.com lubetube.com +lululu.one manyvids.com mdlf.xyz myavfun.commydirtyhobby.commyfreecams.com nekoxxx.com nhentai.netohyeah1080.com +onejav.comosakamotion.netp3.csgfnmdb.com papalah.com  popjav.tv pornbest.org porntea.com +pyhapp.com +qingse.one  r18lu.comrealitykings.com +rule34.xxx seqingx.com seselah.com sextop1.net +sexzy4.com +soirt4.funsouth-plus.net stripchat.com +sub147.com  swag.livetbr.tangbr.net theav.cc +thisav.com thtmod1.com +tkb008.xyztokyomotion.net  tssp.besttubetubetube.com upjav.cc vgg8.com vjav.comwatchjavonline.com wuso.me  wzmyg.com  x99av.com  xo104.com  xtube.com  youav.com +S +PORNHUB +phncdn.com phprcdn.com pornhub.compornhubpremium.com + + +SALESFORCE appcloud.comappexchange.com attic.iobeyondcore.combuddymedia.com chatter.comcloudcraze.com cotweet.com data.comdemandware.com desk.comdocumentforce.comdreamforce.com einstein.comexacttarget.com  force.com govforce.comgravitytank.com heywire.com krux.commarketingcloud.com metamind.io +pardot.com quotable.com radian6.com relateiq.comsalesforce.comsalesforce.orgsalesforceiq.comsalesforceliveagent.com salesforcemarketingcloud.com sequence.comsfdcstatic.com +sforce.com site.com +social.comsteelbrick.com twinprime.comweinvoiceit.com + +GIGABYTE  aorus.com aoruszone.cn +cn gigabyte.cn +cn gigabyte.comgigabyte2.azureedge.netsa78gs.wpc.edgecastcdn.net"sni1dcb6gl.wpc.edgecastcdn.net +E + HIIDO-ADSmlog.hiido.com +adsylog.hiido.com +ads +$ + HUANGHUAGANGhuanghuagang.org +L +JSDELIVR jsdelivr.net jsdelivr.comcdn.jsdelivr.net +cn +L +LANZOU baidupan.com +lanzou.com lanzous.com woozooo.com + +SINA  97973.com +picself.cn sina.cn sina.com sina.com.cn sina.net sinaapp.com sinaedge.com +sinaimg.cn sinaimg.com  sinajs.cn +sinajs.comt.cn videoself.cn  wbimg.com wbimg.cn wcdn.cn weibo.cn  weibo.com weibo.com.cn weibocdn.com xhaiwai.com 2016.sina.cn +adsad.sina.com.cn +adsadbox.sina.com.cn +ads!adimages.sina.com.hk +ads!adimg.mobile.sina.cn +ads adimg.uve.weibo.com +ads!adm.leju.sina.com.cn +ads ads.sina.com +adsalitui.weibo.com +adsapi.apps.sina.cn +ads appgift.sinaapp.com +ads#appsupdate.sinaapp.com +ads atm.sina.com +adsbeacon.sina.com.cn +ads biz.weibo.com +adsc.biz.weibo.com +ads!c.wcpt.biz.weibo.com +ads%click.uve.mobile.sina.cn +ads click.uve.weibo.com +adscm.dmp.sina.cn +ads0#contentrecommend-out.mobile.sina.cn +ads$count.video.sina.com.cn +ads counter.sina.com.cn +adscre.dp.sina.cn +adscre-dp.sina.cn +adsd00.sina.com.cn +adsdcads.sina.com.cn +adsdl.kjava.sina.cn +ads dmp.sina.cn +adsdp.im.weibo.cn +ads game.weibo.cn +adsgame.weibo.com +ads"gw5.push.mcp.weibo.cn +ads"gw6.push.mcp.weibo.cn +ads"img.adbox.sina.com.cn +ads#img.amp.ad.sina.com.cn +ads"int.dpool.sina.com.cn +ads%interest.mix.sina.com.cn +ads)log.interest.mix.sina.com.cn +ads log.mix.sina.com.cn +ads log.sina.cn +ads!m.beacon.sina.com.cn +adsm.game.weibo.cn +ads!mg.games.sina.com.cn +ads!motu.p4p.sina.com.cn +adsnewspush.sinajs.cn +ads oascentral.sina.com +ads#oascentral.sina.com.hk +adsp4p.sina.com.cn +adspalmnews.sina.cn +adspay.mobile.sina.cn +adspfp.sina.com.cn +adspfpip.sina.com +ads!promote.biz.weibo.cn +ads r.dmp.sina.cn +adsrm.sina.com.cn +ads rs.sinajs.cn +adss.alitui.weibo.com +ads"s.img.mix.sina.com.cn +ads sapi.sina.cn +ads sax.sina.cn +adssax.sina.com.cn +adssaxn.sina.com.cn +adssaxs.sina.com.cn +ads sbeacon.sina.com.cn +ads"sdkapp.mobile.sina.cn +ads!sdkapp.uve.weibo.com +ads$sdkclick.mobile.sina.cn +ads slog.sina.cn +adsslog.sina.com.cn +ads'staticadm.leju.sina.com.cn +adstjs.sjs.sinajs.cn +ads"trends.mobile.sina.cn +ads"u1.img.mobile.sina.cn +ads&wapwbclick.mobile.sina.cn +ads!wbapp.mobile.sina.cn +ads wbapp.uve.weibo.com +ads#wbclick.mobile.sina.cn +ads$wbpctips.mobile.sina.cn +adswidget.weibo.com +ads woocall.sina.com.cn +adszc.biz.weibo.com +adszymo.mps.weibo.com +ads + +9NEWS 9cdn.net9nation.com.au 9news.com.au 9now.com.aufreeviewplus.net.au +mi9.com.au +mi9cdn.com nine.com.aunineentertainment.com.aunineentertainmentco.com.auninemediaroom.com.auninemsn.com.austatic9.net.au yourtv.com.au +. +CABLETVcabletv.com.hk i-cable.com + +GOOGLE android.comandroidify.com blogspot.ae blogspot.al blogspot.am blogspot.ba blogspot.be blogspot.bg blogspot.bj blogspot.ca blogspot.cf blogspot.ch blogspot.clblogspot.co.atblogspot.co.idblogspot.co.ilblogspot.co.keblogspot.co.nzblogspot.co.ukblogspot.co.za blogspot.comblogspot.com.arblogspot.com.aublogspot.com.brblogspot.com.byblogspot.com.coblogspot.com.cyblogspot.com.eeblogspot.com.egblogspot.com.esblogspot.com.mtblogspot.com.ngblogspot.com.trblogspot.com.uy blogspot.cv blogspot.cz blogspot.de blogspot.dk blogspot.fi blogspot.fr blogspot.gr blogspot.hk blogspot.hr blogspot.hu blogspot.ie blogspot.in blogspot.is blogspot.it blogspot.jp blogspot.kr blogspot.li blogspot.lt blogspot.lu blogspot.md blogspot.mk blogspot.mx blogspot.my blogspot.nl blogspot.no blogspot.pe blogspot.pt blogspot.qa blogspot.re blogspot.ro blogspot.rs blogspot.ru blogspot.se blogspot.sg blogspot.si blogspot.sk blogspot.sn blogspot.td blogspot.tw blogspot.ug blogspot.vn dart.dev dartlang.org dartpad.dev fastlane.cifastlane.tools flutter.devflutterapp.com go-lang.com go-lang.net go-lang.org +go.dev  godoc.org +golang.com +golang.net +golang.org2mdn.net +ads admob.com +ads adsense.com +ads'adsensecustomsearchads.com +ads%adsenseformobileapps.com +ads$advertisercommunity.com +ads%advertiserscommunity.com +ads"adwords-community.com +ads adwords.com +adsadwordsexpress.com +ads app-measurement.com +ads&clickserver.googleads.com +adsdoubleclick.com +adsdoubleclick.net +ads!google-analytics.com +adsgoogleadapis.com +ads!googleadservices.com +ads googleanalytics.com +adsgoogleoptimize.com +ads"googlesyndication.com +ads!googletagmanager.com +ads"googletagservices.com +ads'googletraveladservices.com +ads +urchin.com +ads>1^adservice\.google\.([a-z]{2}|com?)(\.[a-z]{2})?$ +adscharlestonroadregistry.comregistry.google get.app get.dev get.how get.page iam.soyxn--p8j9a0d9c9a.xn--q9jyb4cscholar.google.aescholar.google.atscholar.google.bescholar.google.bgscholar.google.cascholar.google.catscholar.google.chscholar.google.clscholar.google.cnscholar.google.co.crscholar.google.co.idscholar.google.co.ilscholar.google.co.inscholar.google.co.jpscholar.google.co.krscholar.google.co.nzscholar.google.co.thscholar.google.co.ukscholar.google.co.vescholar.google.co.zascholar.google.comscholar.google.com.arscholar.google.com.auscholar.google.com.boscholar.google.com.brscholar.google.com.coscholar.google.com.cuscholar.google.com.doscholar.google.com.ecscholar.google.com.egscholar.google.com.gtscholar.google.com.hkscholar.google.com.lyscholar.google.com.mxscholar.google.com.myscholar.google.com.nischolar.google.com.pascholar.google.com.pescholar.google.com.phscholar.google.com.pkscholar.google.com.prscholar.google.com.pyscholar.google.com.sgscholar.google.com.svscholar.google.com.trscholar.google.com.twscholar.google.com.uascholar.google.com.uyscholar.google.com.vnscholar.google.czscholar.google.descholar.google.dkscholar.google.esscholar.google.fischolar.google.frscholar.google.grscholar.google.hnscholar.google.hrscholar.google.huscholar.google.isscholar.google.itscholar.google.lischolar.google.ltscholar.google.luscholar.google.lvscholar.google.nlscholar.google.noscholar.google.plscholar.google.ptscholar.google.roscholar.google.ruscholar.google.sescholar.google.sischolar.google.skpolymer-project.orgpolymerproject.org +v8.dev v8project.org youtubeggpht.cn +cn  ggpht.comgooglevideo.comwithyoutube.com youtu.beyoutube-nocookie.com +youtube.ae +youtube.al +youtube.am +youtube.at +youtube.az +youtube.ba +youtube.be +youtube.bg +youtube.bh +youtube.bo +youtube.by +youtube.ca youtube.cat +youtube.ch +youtube.cl +youtube.co youtube.co.ae youtube.co.at youtube.co.cr youtube.co.hu youtube.co.id youtube.co.il youtube.co.in youtube.co.jp youtube.co.ke youtube.co.kr youtube.co.ma youtube.co.nz youtube.co.th youtube.co.tz youtube.co.ug youtube.co.uk youtube.co.ve youtube.co.za youtube.co.zw youtube.comyoutube.com.aryoutube.com.auyoutube.com.azyoutube.com.bdyoutube.com.bhyoutube.com.boyoutube.com.bryoutube.com.byyoutube.com.coyoutube.com.doyoutube.com.ecyoutube.com.eeyoutube.com.egyoutube.com.esyoutube.com.ghyoutube.com.gryoutube.com.gtyoutube.com.hkyoutube.com.hnyoutube.com.hryoutube.com.jmyoutube.com.joyoutube.com.kwyoutube.com.lbyoutube.com.lvyoutube.com.lyyoutube.com.mkyoutube.com.mtyoutube.com.mxyoutube.com.myyoutube.com.ngyoutube.com.niyoutube.com.omyoutube.com.payoutube.com.peyoutube.com.phyoutube.com.pkyoutube.com.ptyoutube.com.pyyoutube.com.qayoutube.com.royoutube.com.sayoutube.com.sgyoutube.com.svyoutube.com.tnyoutube.com.tryoutube.com.twyoutube.com.uayoutube.com.uyyoutube.com.ve +youtube.cr +youtube.cz +youtube.de +youtube.dk +youtube.ee +youtube.es +youtube.fi +youtube.fr +youtube.ge +youtube.gr +youtube.gt +youtube.hk +youtube.hr +youtube.hu +youtube.ie +youtube.in +youtube.iq +youtube.is +youtube.it +youtube.jo +youtube.jp +youtube.kr +youtube.kz +youtube.la +youtube.lk +youtube.lt +youtube.lu +youtube.lv +youtube.ly +youtube.ma +youtube.md +youtube.me +youtube.mk +youtube.mn +youtube.mx +youtube.my +youtube.ng +youtube.ni +youtube.nl +youtube.no +youtube.pa +youtube.pe +youtube.ph +youtube.pk +youtube.pl +youtube.pr +youtube.pt +youtube.qa +youtube.ro +youtube.rs +youtube.ru +youtube.sa +youtube.se +youtube.sg +youtube.si +youtube.sk +youtube.sn youtube.soy +youtube.sv +youtube.tn +youtube.tv +youtube.ua +youtube.ug +youtube.uy +youtube.vnyoutubeeducation.comyoutubefanfest.comyoutubegaming.comyoutubego.co.idyoutubego.co.in youtubego.comyoutubego.com.br youtubego.id youtubego.inyoutubei.googleapis.comyoutubekids.comyoutubemobilesupport.com yt.be  ytimg.comand +chromedclkgbizgle gmailgoogoog +googleguge hangout nexus xn--qcka1pmc  google.ad  google.ae  google.al  google.am  google.as  google.at  google.az  google.ba  google.be  google.bf  google.bg  google.bi  google.bj  google.bs  google.bt  google.by  google.ca +google.cat  google.cd  google.cf  google.cg  google.ch  google.ci  google.cl  google.cm google.cn +cn google.co.ao google.co.bw google.co.ck google.co.cr google.co.id google.co.il google.co.in google.co.jp google.co.ke google.co.kr google.co.ls google.co.ma google.co.mz google.co.nz google.co.th google.co.tz google.co.ug google.co.uk google.co.uz google.co.ve google.co.vi google.co.za google.co.zm google.co.zw +google.com google.com.af google.com.ag google.com.ai google.com.ar google.com.au google.com.bd google.com.bh google.com.bn google.com.bo google.com.br google.com.bz google.com.co google.com.cu google.com.cy google.com.do google.com.ec google.com.eg google.com.et google.com.fj google.com.gh google.com.gi google.com.gt google.com.hk google.com.jm google.com.kh google.com.kw google.com.lb google.com.ly google.com.mm google.com.mt google.com.mx google.com.my google.com.na google.com.ng google.com.ni google.com.np google.com.om google.com.pa google.com.pe google.com.pg google.com.ph google.com.pk google.com.pr google.com.py google.com.qa google.com.sa google.com.sb google.com.sg google.com.sl google.com.sv google.com.tj google.com.tr google.com.tw google.com.ua google.com.uy google.com.vc google.com.vn  google.cv  google.cz  google.de  google.dj  google.dk  google.dm  google.dz  google.ee  google.es  google.fi  google.fm  google.fr  google.ga  google.ge  google.gg  google.gl  google.gm  google.gr  google.gy  google.hn  google.hr  google.ht  google.hu  google.ie  google.im  google.iq  google.is  google.it  google.je  google.jo  google.kg  google.ki  google.kz  google.la  google.li  google.lk  google.lt  google.lu  google.lv  google.md  google.me  google.mg  google.mk  google.ml  google.mn  google.ms  google.mu  google.mv  google.mw  google.ne  google.nl  google.no  google.nr  google.nu  google.pl  google.pn  google.ps  google.pt  google.ro  google.rs  google.ru  google.rw  google.sc  google.se  google.sh  google.si  google.sk  google.sm  google.sn  google.so  google.sr  google.st  google.td  google.tg  google.tl  google.tm  google.tn  google.to  google.tt  google.vg  google.vu  google.ws 0emm.com  1e100.net  1ucrs.com +466453.com abc.xyz adgoogle.net +admeld.comangulardart.org +api.ai +apigee.com appbridge.ca appbridge.io appbridge.it appspot.com +apture.com area120.com +asp-cc.com autodraw.com bandpage.combaselinestudy.combaselinestudy.org bazel.build bdn.devbeatthatquote.com  blink.org blogblog.com blogger.combrocaproject.com +brotli.org bumpshare.com +bumptop.ca bumptop.com bumptop.net bumptop.org bumptunes.comcampuslondon.com certificate-transparency.org +chrome.comchromebook.comchromecast.com chromeos.dev chromium.orgchronicle.securitychroniclesec.comcloudburstresearch.comcloudfunctions.netcloudrobotics.comcobrasearch.com codespot.com conscrypt.com conscrypt.orgcookiechoices.org  coova.com  coova.net  coova.orgcrossmediapanel.com crr.com  cs4hs.comdartsearch.netdataliberation.org  debug.comdebugproject.com deepmind.comdevsitetest.howdialogflow.comdigitalassetlinks.org episodic.comfeedburner.com +fflick.comfinanceleadsonline.comfirebaseapp.comfirebaseio.com +foofle.com froogle.com fuchsia.dev  g-tun.comg.cn +cng.co g.dev +g.page gateway.devgerritcodereview.comgetbumptop.com ggoogle.com gipscorp.com gkecnapps.cn +cn globaledu.org  gmail.com gmodules.com  gogle.com +gogole.comgonglchuangl.net +goo.gl +googel.com +googil.com  googl.comgoogle-syndication.com google.berlin +google.dev +google.net +google.orggoogle.ventures"googleacquisitionmigration.com googleapis.cn +cngoogleapis.comgoogleapps.comgooglearth.comgoogleblog.com googlebot.comgooglecapital.comgooglecert.netgooglecnapps.cn +cngooglecode.comgooglecommerce.comgooglecompare.co.ukgoogledanmark.comgoogledomains.comgoogledrive.com googlee.comgoogleearth.comgooglefiber.netgooglefinland.comgooglemail.comgooglemaps.comgooglepagecreator.comgooglephotos.comgoogleplay.comgoogleplus.comgooglesource.comgooglestore.comgooglesverige.comgoogleusercontent.comgoogleventures.com +googlr.com +goolge.com gooogle.com gridaware.app gsrc.io +gstatic.cn +cn gstatic.comgstaticcnapps.cn +cn +gsuite.com +gv.com gvt0.com gvt1.com gvt2.com gvt3.com gvt5.com gvt6.com gvt7.com gvt9.comhdrplusdata.org hindiweb.comhowtogetmo.co.ukhtml5rocks.com hwgo.comiamremarkable.org igoogle.com impermium.com +j2objc.orgjibemobile.com keyhole.comkeytransparency.comkeytransparency.fookeytransparency.org lanternal.com like.commadewithcode.com material.io mdialog.com meet.newmfg-inspector.commobileview.pagemoodstocks.com near.by nest.com nomulus.foo +oauthz.com on.here on2.comonefifteen.netonefifteen.orgoneworldmanystories.com openthread.io openweave.io orbitera.com  page.linkpagespeedmobilizer.com pageview.mobi panoramio.compartylikeits1986.orgpaxlicense.org +picasa.com picasaweb.com picasaweb.net picasaweb.org +picnik.com pittpatt.com +pixate.com postini.comprojectara.comprojectbaseline.compublishproxy.comquestvisual.comquickoffice.com quiksee.com +revolv.comridepenguin.com run.appsavethedate.foo +saynow.com schemer.comscreenwisetrends.comscreenwisetrendspanel.com snapseed.com solveforx.com +stadia.devstcroixmosquito.comstcroixmosquitoproject.comstudywatchbyverily.comstudywatchbyverily.orgstxmosquito.comstxmosquitoproject.comstxmosquitoproject.netstxmosquitoproject.org synergyse.comtensorflow.org  tfhub.devthecleversense.comthegooglestore.comthinkquarterly.co.ukthinkquarterly.comthinkwithgoogle.com tiltbrush.com txcloud.net  txvia.comunfiltered.news useplannr.comusvimosquito.comusvimosquitoproject.comvelostrata.com +verily.comverilylifesciences.comverilystudyhub.comverilystudywatch.comverilystudywatch.org +wallet.com  waymo.com waze.com web.app web.devwebappfieldguide.comwebmproject.orgwebpkgcache.com +webrtc.orgweltweitwachsen.dewhatbrowser.org widevine.comwithgoogle.com womenwill.comwomenwill.com.br womenwill.id womenwill.in womenwill.mx  x.company +x.team xn--9kr7l.comxn--9trs65b.comxn--flw351e.comxn--ggle-55da.comxn--gogl-0nd52e.comxn--gogl-1nd42e.comxn--ngstr-lra8j.com xplr.cozukunftswerkstatt.de265.com +cn2mdn.net +cn adservice.google.com +cnapp-measurement.com +cn beacons.gcp.gvt2.com +cnbeacons.gvt2.com +cnbeacons3.gvt2.com +cn c.admob.com +cn(c.android.clients.google.com +cn!cache.pack.google.com +cn%clickserve.dartsearch.net +cn)clientservices.googleapis.com +cncorp.google.com +cn crl.pki.goog +cn"csi-china.l.google.com +cn dl.google.com +cndl.l.google.com +cndoubleclick.net +cn-!firebase-settings.crashlytics.com +cn fonts.googleapis.com +cn google-analytics.com +cn googleadservices.com +cngoogleanalytics.com +cn!googlesyndication.com +cn googletagmanager.com +cn!googletagservices.com +cngtm.oasisfeng.com +cn!imasdk.googleapis.com +cn kh.google.com +cn ocsp.pki.goog +cn, pagead-googlehosted.l.google.com +cn!pki-goog.l.google.com +cn recaptcha.net +cnredirector.gvt1.com +cn)safebrowsing-cache.google.com +cn'safebrowsing.googleapis.com +cn$settings.crashlytics.com +cn-!ssl-google-analytics.l.google.com +cn%toolbarqueries.google.com +cntools.google.com +cntools.l.google.com +cn$translate.googleapis.com +cn!update.googleapis.com +cn-!www-googletagmanager.l.google.com +cnwww.recaptcha.net +cn0$^khm([0-3]|db)?\.google(apis)?\.com$ +cn + + +GOOGLE-ADS2mdn.net +ads admob.com +ads adsense.com +ads'adsensecustomsearchads.com +ads%adsenseformobileapps.com +ads$advertisercommunity.com +ads%advertiserscommunity.com +ads"adwords-community.com +ads adwords.com +adsadwordsexpress.com +ads app-measurement.com +ads&clickserver.googleads.com +adsdoubleclick.com +adsdoubleclick.net +ads!google-analytics.com +adsgoogleadapis.com +ads!googleadservices.com +ads googleanalytics.com +adsgoogleoptimize.com +ads"googlesyndication.com +ads!googletagmanager.com +ads"googletagservices.com +ads'googletraveladservices.com +ads +urchin.com +ads>1^adservice\.google\.([a-z]{2}|com?)(\.[a-z]{2})?$ +ads +3 +ENTRUST entrust.netentrustdatacard.com +* +GITBOOK gitbook.com +gitbook.io + +TIPDM +tipdim.org + +TLD-CNcn citic baidu +unicomsohu +xn--fiqs8s +xn--fiqz9s xn--1qqw23a xn--xhq521b xn--8y0a063a xn--6frz82g +xn--fiq64b xn--estv75g xn--vuq861b xn--zfr164b + +HANYI hellofont.cnhellowebfont.com0,hellofontpreview.oss-cn-beijing.aliyuncs.com-)hellowebfonts.oss-cn-beijing.aliyuncs.com hanyi.com.cnfontstar.com.cn +' +MOJI moji.com mojichina.com +7 +SCP scp-wiki.net  scpdb.org scpwiki.com + +CNKI cnki.net +1 + LIBERAPAY liberapay.com liberapay.org +; +UBERuber-assets.com uber.com ubereats.com + + CHINAMOBILE 10086.cn 139.comchinamobile.comchinamobileltd.com migucloud.com migu.cn +cmvideo.cn miguvideo.com andfx.cn  andfx.net +cmicrwx.cncmpassport.comfetion-portal.com fetionpic.com mmarket.com mmarket6.com + + FASTSTONE faststone.org + +ISGD is.gdv.gd + +NETFLAV netflav.com \ No newline at end of file diff --git a/flutter/ios/Podfile b/flutter/ios/Podfile new file mode 100644 index 0000000..61efeb4 --- /dev/null +++ b/flutter/ios/Podfile @@ -0,0 +1,43 @@ +# Uncomment this line to define a global platform for your project +# platform :ios, '11.0' + +# CocoaPods analytics sends network stats synchronously affecting flutter build latency. +ENV['COCOAPODS_DISABLE_STATS'] = 'true' + +platform :ios, '14.0' + +project 'Runner', { + 'Debug' => :debug, + 'Profile' => :release, + 'Release' => :release, +} + +def flutter_root + generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__) + unless File.exist?(generated_xcode_build_settings_path) + raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first" + end + + File.foreach(generated_xcode_build_settings_path) do |line| + matches = line.match(/FLUTTER_ROOT\=(.*)/) + return matches[1].strip if matches + end + raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get" +end + +require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) + +flutter_ios_podfile_setup + +target 'Runner' do + use_frameworks! + use_modular_headers! + + flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) +end + +post_install do |installer| + installer.pods_project.targets.each do |target| + flutter_additional_ios_build_settings(target) + end +end diff --git a/flutter/ios/Podfile.lock b/flutter/ios/Podfile.lock new file mode 100644 index 0000000..ceb9fb4 --- /dev/null +++ b/flutter/ios/Podfile.lock @@ -0,0 +1,73 @@ +PODS: + - Flutter (1.0.0) + - flutter_icmp_ping (0.0.1): + - Flutter + - flutter_inappwebview (0.0.1): + - Flutter + - flutter_inappwebview/Core (= 0.0.1) + - OrderedSet (~> 5.0) + - flutter_inappwebview/Core (0.0.1): + - Flutter + - OrderedSet (~> 5.0) + - fluttertoast (0.0.2): + - Flutter + - Toast + - OrderedSet (5.0.0) + - path_provider_ios (0.0.1): + - Flutter + - shared_preferences_ios (0.0.1): + - Flutter + - Toast (4.0.0) + - url_launcher_ios (0.0.1): + - Flutter + - webview_flutter_wkwebview (0.0.1): + - Flutter + +DEPENDENCIES: + - Flutter (from `Flutter`) + - flutter_icmp_ping (from `.symlinks/plugins/flutter_icmp_ping/ios`) + - flutter_inappwebview (from `.symlinks/plugins/flutter_inappwebview/ios`) + - fluttertoast (from `.symlinks/plugins/fluttertoast/ios`) + - path_provider_ios (from `.symlinks/plugins/path_provider_ios/ios`) + - shared_preferences_ios (from `.symlinks/plugins/shared_preferences_ios/ios`) + - url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`) + - webview_flutter_wkwebview (from `.symlinks/plugins/webview_flutter_wkwebview/ios`) + +SPEC REPOS: + trunk: + - OrderedSet + - Toast + +EXTERNAL SOURCES: + Flutter: + :path: Flutter + flutter_icmp_ping: + :path: ".symlinks/plugins/flutter_icmp_ping/ios" + flutter_inappwebview: + :path: ".symlinks/plugins/flutter_inappwebview/ios" + fluttertoast: + :path: ".symlinks/plugins/fluttertoast/ios" + path_provider_ios: + :path: ".symlinks/plugins/path_provider_ios/ios" + shared_preferences_ios: + :path: ".symlinks/plugins/shared_preferences_ios/ios" + url_launcher_ios: + :path: ".symlinks/plugins/url_launcher_ios/ios" + webview_flutter_wkwebview: + :path: ".symlinks/plugins/webview_flutter_wkwebview/ios" + +SPEC CHECKSUMS: + Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854 + flutter_icmp_ping: 07e508847df7fa9262d050bb0b203de074bbe517 + flutter_inappwebview: bfd58618f49dc62f2676de690fc6dcda1d6c3721 + fluttertoast: eb263d302cc92e04176c053d2385237e9f43fad0 + OrderedSet: aaeb196f7fef5a9edf55d89760da9176ad40b93c + path_provider_ios: 14f3d2fd28c4fdb42f44e0f751d12861c43cee02 + shared_preferences_ios: 548a61f8053b9b8a49ac19c1ffbc8b92c50d68ad + Toast: 91b396c56ee72a5790816f40d3a94dd357abc196 + url_launcher_ios: 839c58cdb4279282219f5e248c3321761ff3c4de + webview_flutter_wkwebview: b7e70ef1ddded7e69c796c7390ee74180182971f + +PODFILE CHECKSUM: 6748bd4fdf53ec15e122b19f875dcdf4a3b1ae5e + +COCOAPODS: 1.12.0 diff --git a/flutter/ios/Runner.xcodeproj/project.pbxproj b/flutter/ios/Runner.xcodeproj/project.pbxproj new file mode 100644 index 0000000..3ea6d16 --- /dev/null +++ b/flutter/ios/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,947 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 54; + objects = { + +/* Begin PBXBuildFile section */ + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; + 2FD21F1125A363E300F556E0 /* PacketTunnelProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2FD21F1025A363E300F556E0 /* PacketTunnelProvider.swift */; }; + 2FD21F1625A363E300F556E0 /* PacketTunnel.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 2FD21F0D25A363E300F556E0 /* PacketTunnel.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + 2FD21F2425A364B700F556E0 /* NetworkExtension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2FD21EF825A363AA00F556E0 /* NetworkExtension.framework */; }; + 31DA31B2DE002F172285FB1C /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4A9C0075B77637136AF52D8B /* Pods_Runner.framework */; }; + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 3E06F985293FACBB00E04D92 /* PacketTunnelProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2FD21F1025A363E300F556E0 /* PacketTunnelProvider.swift */; }; + 3E06F986293FAD1C00E04D92 /* libleaf.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3EA6B288293FA83000B2BABC /* libleaf.a */; }; + 3E06F989293FAFC600E04D92 /* LeafAdapter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E06F988293FAFC600E04D92 /* LeafAdapter.swift */; }; + 3E06F98A293FAFC600E04D92 /* LeafAdapter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E06F988293FAFC600E04D92 /* LeafAdapter.swift */; }; + 3E06F98C293FB8F600E04D92 /* TunnelConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E06F98B293FB8F600E04D92 /* TunnelConfiguration.swift */; }; + 3E06F98D293FB8F600E04D92 /* TunnelConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E06F98B293FB8F600E04D92 /* TunnelConfiguration.swift */; }; + 3EA6B274293F185700B2BABC /* FileManager+Helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EA6B273293F185700B2BABC /* FileManager+Helpers.swift */; }; + 3EA6B276293F1AC500B2BABC /* template.conf in Resources */ = {isa = PBXBuildFile; fileRef = 3EA6B275293F1AC500B2BABC /* template.conf */; }; + 3EA6B278293F1D1600B2BABC /* URL+Helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EA6B277293F1D1600B2BABC /* URL+Helpers.swift */; }; + 3EA6B27A293F1FAD00B2BABC /* Logger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EA6B279293F1FAD00B2BABC /* Logger.swift */; }; + 3EA6B27C293F68B500B2BABC /* VPNManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F50954A25A36FD0001A32D5 /* VPNManager.swift */; }; + 3EA6B27E293F69A400B2BABC /* VPNManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F50954A25A36FD0001A32D5 /* VPNManager.swift */; }; + 3EA6B27F293F6AB500B2BABC /* FileManager+Helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EA6B273293F185700B2BABC /* FileManager+Helpers.swift */; }; + 3EA6B280293F6AB900B2BABC /* URL+Helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EA6B277293F1D1600B2BABC /* URL+Helpers.swift */; }; + 3EA6B281293F6AF800B2BABC /* template.conf in Resources */ = {isa = PBXBuildFile; fileRef = 3EA6B275293F1AC500B2BABC /* template.conf */; }; + 3EA6B282293F6BA500B2BABC /* Logger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EA6B279293F1FAD00B2BABC /* Logger.swift */; }; + 3EA6B289293FA83E00B2BABC /* libleaf.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3EA6B288293FA83000B2BABC /* libleaf.a */; }; + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; + 7A31DD8228420C0B00E82EE1 /* NetworkExtension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2FD21EF825A363AA00F556E0 /* NetworkExtension.framework */; }; + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; + DBC6F25A26C78B1D91884CE1 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4A9C0075B77637136AF52D8B /* Pods_Runner.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 2FD21F1425A363E300F556E0 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 97C146E61CF9000F007C117D /* Project object */; + proxyType = 1; + remoteGlobalIDString = 2FD21F0C25A363E300F556E0; + remoteInfo = PacketTunnel; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 2FD21F0625A363AA00F556E0 /* Embed App Extensions */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 13; + files = ( + 2FD21F1625A363E300F556E0 /* PacketTunnel.appex in Embed App Extensions */, + ); + name = "Embed App Extensions"; + runOnlyForDeploymentPostprocessing = 0; + }; + 9705A1C41CF9048500538489 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; + 2F50954A25A36FD0001A32D5 /* VPNManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VPNManager.swift; sourceTree = ""; }; + 2FD21EF825A363AA00F556E0 /* NetworkExtension.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = NetworkExtension.framework; path = System/Library/Frameworks/NetworkExtension.framework; sourceTree = SDKROOT; }; + 2FD21F0D25A363E300F556E0 /* PacketTunnel.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = PacketTunnel.appex; sourceTree = BUILT_PRODUCTS_DIR; }; + 2FD21F1025A363E300F556E0 /* PacketTunnelProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PacketTunnelProvider.swift; sourceTree = ""; }; + 2FD21F1225A363E300F556E0 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 2FD21F1325A363E300F556E0 /* PacketTunnel.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = PacketTunnel.entitlements; sourceTree = ""; }; + 2FD21F2325A364B600F556E0 /* Runner.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Runner.entitlements; sourceTree = ""; }; + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; + 3E06F988293FAFC600E04D92 /* LeafAdapter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LeafAdapter.swift; sourceTree = ""; }; + 3E06F98B293FB8F600E04D92 /* TunnelConfiguration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TunnelConfiguration.swift; sourceTree = ""; }; + 3EA6B273293F185700B2BABC /* FileManager+Helpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "FileManager+Helpers.swift"; sourceTree = ""; }; + 3EA6B275293F1AC500B2BABC /* template.conf */ = {isa = PBXFileReference; lastKnownFileType = text; path = template.conf; sourceTree = ""; }; + 3EA6B277293F1D1600B2BABC /* URL+Helpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "URL+Helpers.swift"; sourceTree = ""; }; + 3EA6B279293F1FAD00B2BABC /* Logger.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Logger.swift; sourceTree = ""; }; + 3EA6B287293FA53500B2BABC /* module.modulemap */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.module-map"; path = module.modulemap; sourceTree = ""; }; + 3EA6B288293FA83000B2BABC /* libleaf.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libleaf.a; path = LeafFFI/libleaf.a; sourceTree = ""; }; + 4A9C0075B77637136AF52D8B /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; + 7F9A79C99E6BB92BFA8F918D /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + 8B949A6E3580C410A6129430 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; + 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; + 9788364E2A66C2C5DE332140 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; + 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 2FD21F0A25A363E300F556E0 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 7A31DD8228420C0B00E82EE1 /* NetworkExtension.framework in Frameworks */, + 3EA6B289293FA83E00B2BABC /* libleaf.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 97C146EB1CF9000F007C117D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 3E06F986293FAD1C00E04D92 /* libleaf.a in Frameworks */, + 2FD21F2425A364B700F556E0 /* NetworkExtension.framework in Frameworks */, + DBC6F25A26C78B1D91884CE1 /* Pods_Runner.framework in Frameworks */, + 31DA31B2DE002F172285FB1C /* Pods_Runner.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 2FD21F0F25A363E300F556E0 /* PacketTunnel */ = { + isa = PBXGroup; + children = ( + 2FD21F1225A363E300F556E0 /* Info.plist */, + 2FD21F1325A363E300F556E0 /* PacketTunnel.entitlements */, + ); + path = PacketTunnel; + sourceTree = ""; + }; + 2FD21F2B25A3680300F556E0 /* LeafFFI */ = { + isa = PBXGroup; + children = ( + 3EA6B287293FA53500B2BABC /* module.modulemap */, + ); + path = LeafFFI; + sourceTree = ""; + }; + 3EA6B272293F183000B2BABC /* Helpers */ = { + isa = PBXGroup; + children = ( + 3EA6B273293F185700B2BABC /* FileManager+Helpers.swift */, + 3EA6B277293F1D1600B2BABC /* URL+Helpers.swift */, + ); + path = Helpers; + sourceTree = ""; + }; + 3EA6B27D293F699400B2BABC /* Shared */ = { + isa = PBXGroup; + children = ( + 3E06F988293FAFC600E04D92 /* LeafAdapter.swift */, + 2FD21F1025A363E300F556E0 /* PacketTunnelProvider.swift */, + 3EA6B272293F183000B2BABC /* Helpers */, + 2F50954A25A36FD0001A32D5 /* VPNManager.swift */, + 3EA6B279293F1FAD00B2BABC /* Logger.swift */, + 3EA6B275293F1AC500B2BABC /* template.conf */, + 3E06F98B293FB8F600E04D92 /* TunnelConfiguration.swift */, + ); + path = Shared; + sourceTree = ""; + }; + 460845DE28877D00F1FA7B32 /* Pods */ = { + isa = PBXGroup; + children = ( + 7F9A79C99E6BB92BFA8F918D /* Pods-Runner.debug.xcconfig */, + 8B949A6E3580C410A6129430 /* Pods-Runner.release.xcconfig */, + 9788364E2A66C2C5DE332140 /* Pods-Runner.profile.xcconfig */, + ); + path = Pods; + sourceTree = ""; + }; + 9740EEB11CF90186004384FC /* Flutter */ = { + isa = PBXGroup; + children = ( + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 9740EEB31CF90195004384FC /* Generated.xcconfig */, + ); + name = Flutter; + sourceTree = ""; + }; + 97C146E51CF9000F007C117D = { + isa = PBXGroup; + children = ( + 2FD21F2B25A3680300F556E0 /* LeafFFI */, + 3EA6B27D293F699400B2BABC /* Shared */, + 9740EEB11CF90186004384FC /* Flutter */, + 97C146F01CF9000F007C117D /* Runner */, + 2FD21F0F25A363E300F556E0 /* PacketTunnel */, + 97C146EF1CF9000F007C117D /* Products */, + 460845DE28877D00F1FA7B32 /* Pods */, + F6BCB37E43B89DAB5A76B9D0 /* Frameworks */, + ); + sourceTree = ""; + }; + 97C146EF1CF9000F007C117D /* Products */ = { + isa = PBXGroup; + children = ( + 97C146EE1CF9000F007C117D /* Runner.app */, + 2FD21F0D25A363E300F556E0 /* PacketTunnel.appex */, + ); + name = Products; + sourceTree = ""; + }; + 97C146F01CF9000F007C117D /* Runner */ = { + isa = PBXGroup; + children = ( + 2FD21F2325A364B600F556E0 /* Runner.entitlements */, + 97C146FA1CF9000F007C117D /* Main.storyboard */, + 97C146FD1CF9000F007C117D /* Assets.xcassets */, + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, + 97C147021CF9000F007C117D /* Info.plist */, + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, + ); + path = Runner; + sourceTree = ""; + }; + F6BCB37E43B89DAB5A76B9D0 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 3EA6B288293FA83000B2BABC /* libleaf.a */, + 2FD21EF825A363AA00F556E0 /* NetworkExtension.framework */, + 4A9C0075B77637136AF52D8B /* Pods_Runner.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 2FD21F0C25A363E300F556E0 /* PacketTunnel */ = { + isa = PBXNativeTarget; + buildConfigurationList = 2FD21F1725A363E300F556E0 /* Build configuration list for PBXNativeTarget "PacketTunnel" */; + buildPhases = ( + 2FD21F0925A363E300F556E0 /* Sources */, + 2FD21F0A25A363E300F556E0 /* Frameworks */, + 2FD21F0B25A363E300F556E0 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = PacketTunnel; + productName = PacketTunnel; + productReference = 2FD21F0D25A363E300F556E0 /* PacketTunnel.appex */; + productType = "com.apple.product-type.app-extension"; + }; + 97C146ED1CF9000F007C117D /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + 4A4528B4E4B302F57B5EDB65 /* [CP] Check Pods Manifest.lock */, + 9740EEB61CF901F6004384FC /* Run Script */, + 97C146EA1CF9000F007C117D /* Sources */, + 97C146EB1CF9000F007C117D /* Frameworks */, + 97C146EC1CF9000F007C117D /* Resources */, + 9705A1C41CF9048500538489 /* Embed Frameworks */, + 3B06AD1E1E4923F5004D2608 /* Thin Binary */, + 2FD21F0625A363AA00F556E0 /* Embed App Extensions */, + 30B17F94E53B12A0859D0A8C /* [CP] Embed Pods Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 2FD21F1525A363E300F556E0 /* PBXTargetDependency */, + ); + name = Runner; + productName = Runner; + productReference = 97C146EE1CF9000F007C117D /* Runner.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 97C146E61CF9000F007C117D /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 1230; + LastUpgradeCheck = 1300; + ORGANIZATIONNAME = ""; + TargetAttributes = { + 2FD21F0C25A363E300F556E0 = { + CreatedOnToolsVersion = 12.3; + }; + 97C146ED1CF9000F007C117D = { + CreatedOnToolsVersion = 7.3.1; + LastSwiftMigration = 1100; + }; + }; + }; + buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 97C146E51CF9000F007C117D; + productRefGroup = 97C146EF1CF9000F007C117D /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 97C146ED1CF9000F007C117D /* Runner */, + 2FD21F0C25A363E300F556E0 /* PacketTunnel */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 2FD21F0B25A363E300F556E0 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 3EA6B276293F1AC500B2BABC /* template.conf in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 97C146EC1CF9000F007C117D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 3EA6B281293F6AF800B2BABC /* template.conf in Resources */, + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 30B17F94E53B12A0859D0A8C /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", + ); + name = "Thin Binary"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; + }; + 4A4528B4E4B302F57B5EDB65 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + 9740EEB61CF901F6004384FC /* Run Script */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Run Script"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 2FD21F0925A363E300F556E0 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 2FD21F1125A363E300F556E0 /* PacketTunnelProvider.swift in Sources */, + 3EA6B278293F1D1600B2BABC /* URL+Helpers.swift in Sources */, + 3EA6B27E293F69A400B2BABC /* VPNManager.swift in Sources */, + 3E06F98A293FAFC600E04D92 /* LeafAdapter.swift in Sources */, + 3EA6B274293F185700B2BABC /* FileManager+Helpers.swift in Sources */, + 3E06F98D293FB8F600E04D92 /* TunnelConfiguration.swift in Sources */, + 3EA6B27A293F1FAD00B2BABC /* Logger.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 97C146EA1CF9000F007C117D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, + 3EA6B282293F6BA500B2BABC /* Logger.swift in Sources */, + 3EA6B280293F6AB900B2BABC /* URL+Helpers.swift in Sources */, + 3EA6B27F293F6AB500B2BABC /* FileManager+Helpers.swift in Sources */, + 3EA6B27C293F68B500B2BABC /* VPNManager.swift in Sources */, + 3E06F989293FAFC600E04D92 /* LeafAdapter.swift in Sources */, + 3E06F985293FACBB00E04D92 /* PacketTunnelProvider.swift in Sources */, + 3E06F98C293FB8F600E04D92 /* TunnelConfiguration.swift in Sources */, + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 2FD21F1525A363E300F556E0 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 2FD21F0C25A363E300F556E0 /* PacketTunnel */; + targetProxy = 2FD21F1425A363E300F556E0 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 97C146FA1CF9000F007C117D /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C146FB1CF9000F007C117D /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C147001CF9000F007C117D /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 249021D3217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_BITCODE = NO; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; + MODULEMAP_FILE = "${PROJECT_DIR}/LeafFFI/module.modulemap"; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + SWIFT_INCLUDE_PATHS = "${PROJECT_DIR}/LeafFFI"; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Profile; + }; + 249021D4217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = N3U8PK8YPU; + ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + INFOPLIST_FILE = Runner/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = UUVPN; + INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + "$(PROJECT_DIR)/LeafFFI", + ); + MODULEMAP_FILE = "${PROJECT_DIR}/LeafFFI/module.modulemap"; + PRODUCT_BUNDLE_IDENTIFIER = "com.sail-tunnel.zeus"; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; + SWIFT_INCLUDE_PATHS = "$(PROJECT_DIR)/LeafFFI"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 1; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Profile; + }; + 2FD21F1825A363E300F556E0 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_ENTITLEMENTS = PacketTunnel/PacketTunnel.entitlements; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 200; + DEVELOPMENT_TEAM = N3U8PK8YPU; + ENABLE_BITCODE = NO; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "i386 arm64"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = PacketTunnel/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + ); + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/LeafFFI", + ); + MARKETING_VERSION = 1.0.6; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = "com.sail-tunnel.zeus.PacketTunnel"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_INCLUDE_PATHS = "$(PROJECT_DIR)/LeafFFI"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 2FD21F1925A363E300F556E0 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_ENTITLEMENTS = PacketTunnel/PacketTunnel.entitlements; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 200; + DEVELOPMENT_TEAM = N3U8PK8YPU; + ENABLE_BITCODE = NO; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "i386 arm64"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = PacketTunnel/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + ); + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/LeafFFI", + ); + MARKETING_VERSION = 1.0.6; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = "com.sail-tunnel.zeus.PacketTunnel"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SWIFT_INCLUDE_PATHS = "$(PROJECT_DIR)/LeafFFI"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + 2FD21F1A25A363E300F556E0 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_ENTITLEMENTS = PacketTunnel/PacketTunnel.entitlements; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 200; + DEVELOPMENT_TEAM = N3U8PK8YPU; + ENABLE_BITCODE = NO; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "i386 arm64"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = PacketTunnel/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + ); + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/LeafFFI", + ); + MARKETING_VERSION = 1.0.6; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = "com.sail-tunnel.zeus.PacketTunnel"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SWIFT_INCLUDE_PATHS = "$(PROJECT_DIR)/LeafFFI"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Profile; + }; + 97C147031CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_BITCODE = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; + MODULEMAP_FILE = "${PROJECT_DIR}/LeafFFI/module.modulemap"; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_INCLUDE_PATHS = "${PROJECT_DIR}/LeafFFI"; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 97C147041CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_BITCODE = NO; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; + MODULEMAP_FILE = "${PROJECT_DIR}/LeafFFI/module.modulemap"; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_INCLUDE_PATHS = "${PROJECT_DIR}/LeafFFI"; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 97C147061CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = N3U8PK8YPU; + ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + INFOPLIST_FILE = Runner/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = UUVPN; + INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + "$(PROJECT_DIR)/LeafFFI", + ); + MODULEMAP_FILE = "${PROJECT_DIR}/LeafFFI/module.modulemap"; + PRODUCT_BUNDLE_IDENTIFIER = "com.sail-tunnel.zeus"; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; + SWIFT_INCLUDE_PATHS = "$(PROJECT_DIR)/LeafFFI"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 1; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Debug; + }; + 97C147071CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = N3U8PK8YPU; + ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + INFOPLIST_FILE = Runner/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = UUVPN; + INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + "$(PROJECT_DIR)/LeafFFI", + ); + MODULEMAP_FILE = "${PROJECT_DIR}/LeafFFI/module.modulemap"; + PRODUCT_BUNDLE_IDENTIFIER = "com.sail-tunnel.zeus"; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; + SWIFT_INCLUDE_PATHS = "$(PROJECT_DIR)/LeafFFI"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 1; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 2FD21F1725A363E300F556E0 /* Build configuration list for PBXNativeTarget "PacketTunnel" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 2FD21F1825A363E300F556E0 /* Debug */, + 2FD21F1925A363E300F556E0 /* Release */, + 2FD21F1A25A363E300F556E0 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147031CF9000F007C117D /* Debug */, + 97C147041CF9000F007C117D /* Release */, + 249021D3217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147061CF9000F007C117D /* Debug */, + 97C147071CF9000F007C117D /* Release */, + 249021D4217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 97C146E61CF9000F007C117D /* Project object */; +} diff --git a/flutter/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/flutter/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/flutter/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/flutter/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/flutter/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/flutter/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/flutter/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/flutter/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..f9b0d7c --- /dev/null +++ b/flutter/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/flutter/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/flutter/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 0000000..c87d15a --- /dev/null +++ b/flutter/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/flutter/ios/Runner.xcworkspace/contents.xcworkspacedata b/flutter/ios/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..21a3cc1 --- /dev/null +++ b/flutter/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/flutter/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/flutter/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/flutter/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/flutter/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/flutter/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..f9b0d7c --- /dev/null +++ b/flutter/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/flutter/ios/Runner/AppDelegate.swift b/flutter/ios/Runner/AppDelegate.swift new file mode 100644 index 0000000..75d0008 --- /dev/null +++ b/flutter/ios/Runner/AppDelegate.swift @@ -0,0 +1,134 @@ +import UIKit +import Flutter +import NetworkExtension +import os + +@UIApplicationMain +@objc class AppDelegate: FlutterAppDelegate { + override func application( + _ application: UIApplication, + didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? + ) -> Bool { + GeneratedPluginRegistrant.register(with: self) + + let controller : FlutterViewController = window?.rootViewController as! FlutterViewController; + let vpnManagerChannel = FlutterMethodChannel.init(name: "com.sail_tunnel.sail/vpn_manager", + binaryMessenger: controller.binaryMessenger); + let manager = VPNManager.shared() + + vpnManagerChannel.setMethodCallHandler({ + (call: FlutterMethodCall, result: @escaping FlutterResult) -> Void in + + switch call.method { + case "toggle": + manager.loadVPNPreference() { error in + guard error == nil else { + fatalError("load VPN preference failed: \(error.debugDescription)") + } + + manager.enableVPNManager() { error in + guard error == nil else { + fatalError("enable VPN failed: \(error.debugDescription)") + } + manager.toggleVPNConnection() { error in + guard error == nil else { + fatalError("toggle VPN connection failed: \(error.debugDescription)") + } + } + } + } + + result(true) + break + case "getStatus": + let status = manager.getStatus() + + switch status { + case NEVPNStatus.disconnected: + result(0) + case NEVPNStatus.connecting: + result(1) + case NEVPNStatus.reasserting: + result(4) + case NEVPNStatus.disconnecting: + result(5) + case NEVPNStatus.connected: + result(2) + default: + result(3) + } + + break + case "getConnectedDate": + let connectedDate = manager.getConnectedDate() + + result(connectedDate?.timeIntervalSince1970) + break + case "getTunnelLog": + let fm = FileManager.default + + guard let conf = fm.leafLogFile?.contents else { + fatalError("get leaf log file contents fail") + } + + result(conf) + break + case "getTunnelConfiguration": + LeafAdapater.shared().getRuntimeConfiguration { conf in + guard conf != nil else { + fatalError("get runtime VPN configuratioin failed") + } + + result(conf) + } + break + case "setTunnelConfiguration": + guard let conf = call.arguments as? String else { + fatalError("call arguments is empty") + } + LeafAdapater.shared().setRuntimeConfiguration(conf: conf) { error in + guard error == nil else { + fatalError("set runtime configuration failed: \(error.debugDescription)") + } + } + case "update": + guard let conf = call.arguments as? String else { + fatalError("call arguments is empty") + } + + LeafAdapater.shared().update(conf: conf) { error in + guard error == nil else { + fatalError("update tunnel failed: \(error.debugDescription)") + } + } + default: + result(FlutterMethodNotImplemented) + return + } + }) + + return super.application(application, didFinishLaunchingWithOptions: launchOptions) + } + + override func applicationWillResignActive(_ application: UIApplication) { + // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. + // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game. + } + + override func applicationDidEnterBackground(_ application: UIApplication) { + // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. + // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. + } + + override func applicationWillEnterForeground(_ application: UIApplication) { + // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background. + } + + override func applicationDidBecomeActive(_ application: UIApplication) { + // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. + } + + override func applicationWillTerminate(_ application: UIApplication) { + // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. + } +} diff --git a/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..335d9be --- /dev/null +++ b/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,119 @@ +{ + "images" : [ + { + "scale" : "2x", + "platform" : "ios", + "filename" : "icon-20@2x.png", + "size" : "20x20", + "idiom" : "universal" + }, + { + "filename" : "icon-20@3x.png", + "platform" : "ios", + "idiom" : "universal", + "size" : "20x20", + "scale" : "3x" + }, + { + "idiom" : "universal", + "size" : "29x29", + "platform" : "ios", + "scale" : "2x", + "filename" : "icon-29@2x.png" + }, + { + "size" : "29x29", + "scale" : "3x", + "filename" : "icon-29@3x.png", + "idiom" : "universal", + "platform" : "ios" + }, + { + "platform" : "ios", + "idiom" : "universal", + "filename" : "icon-38@2x.png", + "size" : "38x38", + "scale" : "2x" + }, + { + "idiom" : "universal", + "size" : "38x38", + "platform" : "ios", + "filename" : "icon-38@3x.png", + "scale" : "3x" + }, + { + "scale" : "2x", + "filename" : "icon-40@2x.png", + "platform" : "ios", + "idiom" : "universal", + "size" : "40x40" + }, + { + "filename" : "icon-40@3x.png", + "idiom" : "universal", + "scale" : "3x", + "size" : "40x40", + "platform" : "ios" + }, + { + "size" : "60x60", + "filename" : "icon-60@2x.png", + "idiom" : "universal", + "platform" : "ios", + "scale" : "2x" + }, + { + "filename" : "icon-60@3x.png", + "idiom" : "universal", + "scale" : "3x", + "platform" : "ios", + "size" : "60x60" + }, + { + "platform" : "ios", + "size" : "64x64", + "scale" : "2x", + "filename" : "icon-64@2x.png", + "idiom" : "universal" + }, + { + "platform" : "ios", + "size" : "64x64", + "filename" : "icon-64@3x.png", + "scale" : "3x", + "idiom" : "universal" + }, + { + "size" : "68x68", + "scale" : "2x", + "idiom" : "universal", + "filename" : "icon-68@2x.png", + "platform" : "ios" + }, + { + "platform" : "ios", + "filename" : "icon-76@2x.png", + "idiom" : "universal", + "scale" : "2x", + "size" : "76x76" + }, + { + "platform" : "ios", + "scale" : "2x", + "filename" : "icon-83_5@2x.png", + "idiom" : "universal", + "size" : "83.5x83.5" + }, + { + "filename" : "ios-marketing.png", + "size" : "1024x1024", + "idiom" : "universal", + "platform" : "ios" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-20@2x.png b/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-20@2x.png new file mode 100644 index 0000000..c2f8fc3 Binary files /dev/null and b/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-20@2x.png differ diff --git a/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-20@3x.png b/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-20@3x.png new file mode 100644 index 0000000..d82d05d Binary files /dev/null and b/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-20@3x.png differ diff --git a/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png b/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png new file mode 100644 index 0000000..08e4301 Binary files /dev/null and b/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png differ diff --git a/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png b/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png new file mode 100644 index 0000000..8cb8dc4 Binary files /dev/null and b/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png differ diff --git a/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-38@2x.png b/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-38@2x.png new file mode 100644 index 0000000..3604770 Binary files /dev/null and b/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-38@2x.png differ diff --git a/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-38@3x.png b/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-38@3x.png new file mode 100644 index 0000000..04531d3 Binary files /dev/null and b/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-38@3x.png differ diff --git a/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png b/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png new file mode 100644 index 0000000..bd9e1b7 Binary files /dev/null and b/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png differ diff --git a/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png b/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png new file mode 100644 index 0000000..54d4eaa Binary files /dev/null and b/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png differ diff --git a/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png b/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png new file mode 100644 index 0000000..54d4eaa Binary files /dev/null and b/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png differ diff --git a/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png b/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png new file mode 100644 index 0000000..6282d21 Binary files /dev/null and b/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png differ diff --git a/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-64@2x.png b/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-64@2x.png new file mode 100644 index 0000000..d547d7f Binary files /dev/null and b/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-64@2x.png differ diff --git a/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-64@3x.png b/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-64@3x.png new file mode 100644 index 0000000..02e942b Binary files /dev/null and b/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-64@3x.png differ diff --git a/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-68@2x.png b/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-68@2x.png new file mode 100644 index 0000000..4dff506 Binary files /dev/null and b/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-68@2x.png differ diff --git a/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png b/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png new file mode 100644 index 0000000..5ef1745 Binary files /dev/null and b/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png differ diff --git a/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-83_5@2x.png b/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-83_5@2x.png new file mode 100644 index 0000000..b133710 Binary files /dev/null and b/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-83_5@2x.png differ diff --git a/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/ios-marketing.png b/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/ios-marketing.png new file mode 100644 index 0000000..f3be9a7 Binary files /dev/null and b/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/ios-marketing.png differ diff --git a/flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json b/flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json new file mode 100644 index 0000000..0bedcf2 --- /dev/null +++ b/flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "LaunchImage.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "LaunchImage@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "LaunchImage@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png b/flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png new file mode 100644 index 0000000..02e942b Binary files /dev/null and b/flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png differ diff --git a/flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png new file mode 100644 index 0000000..02e942b Binary files /dev/null and b/flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png differ diff --git a/flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png new file mode 100644 index 0000000..02e942b Binary files /dev/null and b/flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png differ diff --git a/flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md new file mode 100644 index 0000000..89c2725 --- /dev/null +++ b/flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md @@ -0,0 +1,5 @@ +# Launch Screen Assets + +You can customize the launch screen with your own desired assets by replacing the image files in this directory. + +You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. \ No newline at end of file diff --git a/flutter/ios/Runner/Base.lproj/LaunchScreen.storyboard b/flutter/ios/Runner/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..bf6b15d --- /dev/null +++ b/flutter/ios/Runner/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/flutter/ios/Runner/Base.lproj/Main.storyboard b/flutter/ios/Runner/Base.lproj/Main.storyboard new file mode 100644 index 0000000..06ccc17 --- /dev/null +++ b/flutter/ios/Runner/Base.lproj/Main.storyboard @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/flutter/ios/Runner/Info.plist b/flutter/ios/Runner/Info.plist new file mode 100644 index 0000000..ff632a9 --- /dev/null +++ b/flutter/ios/Runner/Info.plist @@ -0,0 +1,57 @@ + + + + + CADisableMinimumFrameDurationOnPhone + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + UUVPN + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + UUVPN + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleSignature + ???? + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSRequiresIPhoneOS + + UIApplicationSupportsIndirectInputEvents + + UIBackgroundModes + + remote-notification + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UIStatusBarHidden + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIViewControllerBasedStatusBarAppearance + + + diff --git a/flutter/ios/Runner/Runner-Bridging-Header.h b/flutter/ios/Runner/Runner-Bridging-Header.h new file mode 100644 index 0000000..308a2a5 --- /dev/null +++ b/flutter/ios/Runner/Runner-Bridging-Header.h @@ -0,0 +1 @@ +#import "GeneratedPluginRegistrant.h" diff --git a/flutter/ios/Runner/Runner.entitlements b/flutter/ios/Runner/Runner.entitlements new file mode 100644 index 0000000..9df64e7 --- /dev/null +++ b/flutter/ios/Runner/Runner.entitlements @@ -0,0 +1,16 @@ + + + + + aps-environment + development + com.apple.developer.networking.networkextension + + packet-tunnel-provider + + com.apple.security.application-groups + + group.com.sail-tunnel.zeus + + + diff --git a/flutter/ios/Shared/Helpers/FileManager+Helpers.swift b/flutter/ios/Shared/Helpers/FileManager+Helpers.swift new file mode 100644 index 0000000..eb66013 --- /dev/null +++ b/flutter/ios/Shared/Helpers/FileManager+Helpers.swift @@ -0,0 +1,38 @@ +// +// FileManager+Helpers.swift +// PacketTunnel +// +// Created by Jerry Bool on 2022/12/6. +// + +import Foundation + +extension FileManager { +// static var appGroupId = "group.com.sail-tunnel.sail1" + static var appGroupId = "group.com.sail-tunnel.zeus" + + private var sharedFolderURL: URL? { + let appGroupId = FileManager.appGroupId + guard let sharedFolderURL = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: appGroupId) else { + Logger.log("Cannot obtain shared folder URL", to: Logger.vpnLogFile) + return nil + } + return sharedFolderURL + } + + var vpnLogFile: URL? { + sharedFolderURL?.appendingPathComponent("log") + } + + var leafLogFile: URL? { + sharedFolderURL?.appendingPathComponent("leaf.log") + } + + var leafConfFile: URL? { + sharedFolderURL?.appendingPathComponent("leaf.conf") + } + + var leafConfTemplateFile: URL? { + Bundle.main.url(forResource: "template", withExtension: "conf") + } +} diff --git a/flutter/ios/Shared/Helpers/URL+Helpers.swift b/flutter/ios/Shared/Helpers/URL+Helpers.swift new file mode 100644 index 0000000..d8eff89 --- /dev/null +++ b/flutter/ios/Shared/Helpers/URL+Helpers.swift @@ -0,0 +1,35 @@ +// +// URL+Helpers.swift +// PacketTunnel +// +// Created by Jerry Bool on 2022/12/6. +// + +import Foundation + +extension URL { + + var contents: String? { + guard self.isFileURL else { + return nil + } + + do { + return try String(contentsOf: self) + } + catch { + Logger.log(error.localizedDescription, to: Logger.vpnLogFile) + + return nil + } + } + + @discardableResult + func truncate() -> Self { + if isFileURL { + try? "".write(to: self, atomically: true, encoding: .utf8) + } + + return self + } +} diff --git a/flutter/ios/Shared/LeafAdapter.swift b/flutter/ios/Shared/LeafAdapter.swift new file mode 100644 index 0000000..b058623 --- /dev/null +++ b/flutter/ios/Shared/LeafAdapter.swift @@ -0,0 +1,275 @@ +// +// LeafAdapter.swift +// Runner +// +// Created by Jerry Bool on 2022/12/7. +// + +import Foundation +import NetworkExtension +import LeafFFI + +public enum LeafAdapterError: Error { + /// Failure to locate tunnel file descriptor. + case cannotLocateTunnelFileDescriptor + + /// Failure to perform an operation in such state. + case invalidState + + /// Failure to set network settings. + case setNetworkSettings(Error) + + /// Failure to set tunnel configuration + case setTunnelConfiguration(Int32) + + /// Failure to start Leaf FFI. + case startLeafFFI +} + +/// Enum representing internal state of the `LeafAdapter` +private enum State { + /// The tunnel is stopped + case stopped + + /// The tunnel is up and running + case started + + /// The tunnel is temporarily shutdown due to device going offline + case temporaryShutdown +} + +private extension Network.NWPath.Status { + /// Returns `true` if the path is potentially satisfiable. + var isSatisfiable: Bool { + switch self { + case .requiresConnection, .satisfied: + return true + case .unsatisfied: + return false + @unknown default: + return true + } + } +} + +public class LeafAdapater { + private static var sharedLeafAdapater: LeafAdapater = { + return LeafAdapater() + }() + + public class func shared() -> LeafAdapater { + return sharedLeafAdapater + } + + /// Leaf instance id + public static let leafId: UInt16 = 666 + + /// Network routes monitor. + private var networkMonitor: NWPathMonitor? + + /// Packet tunnel provider. + private static weak var packetTunnelProvider: NEPacketTunnelProvider? + + /// Private queue used to synchronize access to `LeafAdapter` members. + private let workQueue = DispatchQueue(label: "LeafAdapterWorkQueue") + + /// Adapter state. + private var state: State = .stopped + + var tunnelFd: Int32? { + var buf = [CChar](repeating: 0, count: Int(IFNAMSIZ)) + + for fd: Int32 in 0 ... 1024 { + var len = socklen_t(buf.count) + + if getsockopt(fd, 2 /* IGMP */, 2, &buf, &len) == 0 && String(cString: buf).hasPrefix("utun") { + return fd + } + } + + return LeafAdapater.packetTunnelProvider?.packetFlow.value(forKey: "socket.fileDescriptor") as? Int32 + } + + /// Set PacketTunnelProvider instance + /// - Parameter packetTunnelProvider: an instance of `NEPacketTunnelProvider`. Internally stored + /// as a weak + public static func setPacketTunnelProvider(with packetTunnelProvider: NEPacketTunnelProvider) { + LeafAdapater.packetTunnelProvider = packetTunnelProvider + } + + /// Designated initializer. + public init() { + + } + + deinit { + // Cancel network monitor + networkMonitor?.cancel() + + // Shutdown the tunnel + if case .started = self.state { + leaf_shutdown(LeafAdapater.leafId) + } + } + + public func setRuntimeConfiguration(conf: String?, completionHandler: @escaping (LeafAdapterError?) -> Void) { + guard let conf = conf else { + completionHandler(.startLeafFFI) + return + } + + let file = FileManager.default.leafConfFile + + try! conf.write(to: file!, atomically: true, encoding: .utf8) + + setenv("LOG_NO_COLOR", "true", 1) + + let result = leaf_test_config(file?.path) + guard result == 0 else { + completionHandler(.setTunnelConfiguration(result)) + return + } + + completionHandler(nil) + } + + /// Returns a runtime configuration. + /// - Parameter completionHandler: completion handler. + public func getRuntimeConfiguration(completionHandler: @escaping (String?) -> Void) { + workQueue.async { + let fm = FileManager.default + + if let conf = fm.leafConfFile?.contents { + completionHandler(conf) + } else { + completionHandler(nil) + } + } + } + + /// Start the tunnel tunnel. + /// - Parameters: + /// - tunnelConfiguration: tunnel configuration. + /// - completionHandler: completion handler. + public func start(completionHandler: @escaping (LeafAdapterError?) -> Void) { + workQueue.async { + guard case .stopped = self.state else { + completionHandler(.invalidState) + return + } + + let networkMonitor = NWPathMonitor() + networkMonitor.pathUpdateHandler = { [weak self] path in + self?.didReceivePathUpdate(path: path) + } + networkMonitor.start(queue: self.workQueue) + + let tunFd = self.tunnelFd != nil ? String(self.tunnelFd!) : nil + + // Reset log file. + FileManager.default.leafLogFile?.truncate() + + let fm = FileManager.default + let file = fm.leafConfFile + var conf = file?.contents ?? "" + + conf = conf + .replacingOccurrences(of: "{{leafLogFile}}", with: fm.leafLogFile?.path ?? "") + .replacingOccurrences(of: "{{tunFd}}", with: tunFd ?? "") + + try! conf.write(to: file!, atomically: true, encoding: .utf8) + + setenv("LOG_NO_COLOR", "true", 1) + + leaf_run(LeafAdapater.leafId, file?.path) + + self.state = .started + self.networkMonitor = networkMonitor + completionHandler(nil) + } + } + + /// Stop the tunnel. + /// - Parameter completionHandler: completion handler. + public func stop(completionHandler: @escaping (LeafAdapterError?) -> Void) { + workQueue.async { + switch self.state { + case .started: + leaf_shutdown(LeafAdapater.leafId) + + case .temporaryShutdown: + break + + case .stopped: + completionHandler(.invalidState) + return + } + + self.networkMonitor?.cancel() + self.networkMonitor = nil + + self.state = .stopped + + completionHandler(nil) + } + } + + /// Update runtime configuration. + /// - Parameters: + /// - tunnelConfiguration: tunnel configuration. + /// - completionHandler: completion handler. + public func update(conf: String?, completionHandler: @escaping (LeafAdapterError?) -> Void) { + workQueue.async { + if case .stopped = self.state { + completionHandler(.invalidState) + return + } + + // Tell the system that the tunnel is going to reconnect using new configuration. + // This will broadcast the `NEVPNStatusDidChange` notification to the GUI process. + LeafAdapater.packetTunnelProvider?.reasserting = true + defer { + LeafAdapater.packetTunnelProvider?.reasserting = false + } + + switch self.state { + case .started: + self.setRuntimeConfiguration(conf: conf, completionHandler: completionHandler) + + leaf_reload(LeafAdapater.leafId) + + self.state = .started + + case .temporaryShutdown: + self.state = .temporaryShutdown + + case .stopped: + fatalError() + } + + completionHandler(nil) + } + } + + /// Helper method used by network path monitor. + /// - Parameter path: new network path + private func didReceivePathUpdate(path: Network.NWPath) { + switch self.state { + case .started: + if path.status.isSatisfiable { + + } else { + self.state = .temporaryShutdown + leaf_shutdown(LeafAdapater.leafId) + } + + case .temporaryShutdown: + guard path.status.isSatisfiable else { return } + self.state = .started + + case .stopped: + // no-op + break + } + } +} diff --git a/flutter/ios/Shared/Logger.swift b/flutter/ios/Shared/Logger.swift new file mode 100644 index 0000000..3ae25de --- /dev/null +++ b/flutter/ios/Shared/Logger.swift @@ -0,0 +1,97 @@ +// +// Logger.swift +// PacketTunnel +// +// Created by Jerry Bool on 2022/12/6. +// + +import Foundation + +class Logger { + + static let ENABLE_LOGGING = true + + static var vpnLogFile: URL? = { + FileManager.default.vpnLogFile?.truncate() + }() + + static func log(_ message: String, to: URL?) { + guard ENABLE_LOGGING, + let url = to, + let data = message.trimmingCharacters(in: .whitespacesAndNewlines).appending("\n").data(using: .utf8), + let fh = try? FileHandle(forUpdating: url) + else { + return + } + + defer { + fh.closeFile() + } + + fh.seekToEndOfFile() + fh.write(data) + } + + private static var logFsObject: DispatchSourceFileSystemObject? { + didSet { + oldValue?.cancel() + } + } + + private static var logText = "" + + static func tailFile(_ url: URL?, _ update: ((_ logText: String) -> Void)? = nil) { + + // Stop and remove the previous watched content. + // (Will implicitely call #stop through `didSet` hook!) + logFsObject = nil + + guard let url = url, + let fh = try? FileHandle(forReadingFrom: url) + else { + return + } + + let ui = { + let data = fh.readDataToEndOfFile() + + if let content = String(data: data, encoding: .utf8) { + logText.append(content) + + update?(logText) + } + } + + logText = "" + ui() + + logFsObject = DispatchSource.makeFileSystemObjectSource( + fileDescriptor: fh.fileDescriptor, + eventMask: [.extend, .delete, .link], + queue: .main) + + logFsObject?.setEventHandler { + guard let data = logFsObject?.data else { + return + } + + if data.contains(.delete) || data.contains(.link) { + DispatchQueue.main.async { + tailFile(url, update) + } + } + + if data.contains(.extend) { + ui() + } + } + + logFsObject?.setCancelHandler { + try? fh.close() + + logText = "" + } + + logFsObject?.resume() + } +} diff --git a/flutter/ios/Shared/PacketTunnelProvider.swift b/flutter/ios/Shared/PacketTunnelProvider.swift new file mode 100644 index 0000000..05317df --- /dev/null +++ b/flutter/ios/Shared/PacketTunnelProvider.swift @@ -0,0 +1,67 @@ +import NetworkExtension +import LeafFFI + +class PacketTunnelProvider: NEPacketTunnelProvider { + + private lazy var adapter: LeafAdapater = { + LeafAdapater.setPacketTunnelProvider(with: self) + return LeafAdapater.shared() + }() + + override func startTunnel(options: [String : NSObject]?, completionHandler: @escaping (Error?) -> Void) { + let ipv4 = NEIPv4Settings(addresses: ["198.18.20.20"], subnetMasks: ["255.255.255.0"]) + ipv4.includedRoutes = [NEIPv4Route.default()] + + let ipv6 = NEIPv6Settings(addresses: ["FD00::9999:9999"], networkPrefixLengths: [7]) + ipv6.includedRoutes = [NEIPv6Route.default()] + + let dns = NEDNSSettings(servers: ["1.1.1.1"]) + // https://developer.apple.com/forums/thread/116033 + // Mention special Tor domains here, so the OS doesn't drop onion domain + // resolve requests immediately. + dns.matchDomains = ["", "onion", "exit"] + + let settings = NEPacketTunnelNetworkSettings(tunnelRemoteAddress: "198.18.20.200") + settings.ipv4Settings = ipv4 + settings.ipv6Settings = ipv6 + settings.dnsSettings = dns + settings.proxySettings = nil + settings.mtu = 1500 + + self.adapter.start(completionHandler: completionHandler) + + setTunnelNetworkSettings(settings) { error in + if let error = error { + return completionHandler(error) + } + + completionHandler(nil) + } + } + +// override func stopTunnel(with reason: NEProviderStopReason, completionHandler: @escaping () -> Void) { +// self.adapter.stop { error in +// if let error = error { +// Logger.log(error.localizedDescription, to: Logger.vpnLogFile) +// } +// +// completionHandler() +// } +// } + + override func handleAppMessage(_ messageData: Data, completionHandler: ((Data?) -> Void)?) { + // Add code here to handle the message. + if let handler = completionHandler { + handler(messageData) + } + } + + override func sleep(completionHandler: @escaping () -> Void) { + // Add code here to get ready to sleep. + completionHandler() + } + + override func wake() { + // Add code here to wake up. + } +} diff --git a/flutter/ios/Shared/TunnelConfiguration.swift b/flutter/ios/Shared/TunnelConfiguration.swift new file mode 100644 index 0000000..65873ab --- /dev/null +++ b/flutter/ios/Shared/TunnelConfiguration.swift @@ -0,0 +1,26 @@ +// +// TunnelConfiguration.swift +// Runner +// +// Created by Jerry Bool on 2022/12/7. +// + +import Foundation + +public final class TunnelConfiguration { + public var name: String? + + public var content: String? + + public init(name: String?, content: String?) { + self.name = name + self.content = content + } +} + +extension TunnelConfiguration: Equatable { + public static func == (lhs: TunnelConfiguration, rhs: TunnelConfiguration) -> Bool { + return lhs.name == rhs.name && + lhs.name == rhs.name + } +} diff --git a/flutter/ios/Shared/VPNManager.swift b/flutter/ios/Shared/VPNManager.swift new file mode 100644 index 0000000..f2d4932 --- /dev/null +++ b/flutter/ios/Shared/VPNManager.swift @@ -0,0 +1,93 @@ +import Foundation +import NetworkExtension +import LeafFFI + +extension NEVPNStatus: CustomStringConvertible { + public var description: String { + switch self { + case .disconnected: return "Disconnected" + case .invalid: return "Invalid" + case .connected: return "Connected" + case .connecting: return "Connecting" + case .disconnecting: return "Disconnecting" + case .reasserting: return "Reasserting" + default: return "Unknowed" + } + } +} + +public class VPNManager { + public var manager = NETunnelProviderManager.shared() + + private static var sharedVPNManager: VPNManager = { + return VPNManager() + }() + + public class func shared() -> VPNManager { + return sharedVPNManager + } + + public init() {} + + public func getStatus() -> NEVPNStatus { + return manager.connection.status + } + + public func getConnectedDate() -> Date? { + return manager.connection.connectedDate + } + + public func loadVPNPreference(completion: @escaping (Error?) -> Void) { + NETunnelProviderManager.loadAllFromPreferences() { managers, error in + guard let managers = managers, error == nil else { + completion(error) + return + } + + if managers.count == 0 { + let newManager = NETunnelProviderManager() + newManager.protocolConfiguration = NETunnelProviderProtocol() + newManager.localizedDescription = "UUVPN" + newManager.protocolConfiguration?.serverAddress = "iLeaf" + newManager.saveToPreferences { error in + guard error == nil else { + completion(error) + return + } + newManager.loadFromPreferences { error in + self.manager = newManager + completion(nil) + } + } + } else { + self.manager = managers[0] + completion(nil) + } + } + } + + public func enableVPNManager(completion: @escaping (Error?) -> Void) { + manager.isEnabled = true + manager.saveToPreferences { error in + guard error == nil else { + completion(error) + return + } + self.manager.loadFromPreferences { error in + completion(error) + } + } + } + + public func toggleVPNConnection(completion: @escaping (Error?) -> Void) { + if self.manager.connection.status == .disconnected || self.manager.connection.status == .invalid { + do { + try self.manager.connection.startVPNTunnel() + } catch { + completion(error) + } + } else { + self.manager.connection.stopVPNTunnel() + } + } +} diff --git a/flutter/ios/Shared/template.conf b/flutter/ios/Shared/template.conf new file mode 100644 index 0000000..70027d0 --- /dev/null +++ b/flutter/ios/Shared/template.conf @@ -0,0 +1,14 @@ +[General] +loglevel = info +logoutput = {{leafLogFile}} +dns-server = 223.5.5.5, 114.114.114.114 +tun-fd = {{tunFd}} +routing-domain-resolve = true + +[Proxy] +Direct = direct +Reject = reject + +[Rule] +EXTERNAL, site:cn, Direct +FINAL, Direct diff --git a/flutter/ios/app.ios-arm64.symbols b/flutter/ios/app.ios-arm64.symbols new file mode 100644 index 0000000..8503c8d Binary files /dev/null and b/flutter/ios/app.ios-arm64.symbols differ diff --git a/flutter/ios/misc/download_data.sh b/flutter/ios/misc/download_data.sh new file mode 100755 index 0000000..0aacad1 --- /dev/null +++ b/flutter/ios/misc/download_data.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +set -x + +WD=`pwd` + +curl -OL 'https://github.com/v2ray/domain-list-community/releases/latest/download/dlc.dat' && mv dlc.dat PacketTunnel/site.dat diff --git a/flutter/ios/misc/download_leaf.sh b/flutter/ios/misc/download_leaf.sh new file mode 100755 index 0000000..87a7467 --- /dev/null +++ b/flutter/ios/misc/download_leaf.sh @@ -0,0 +1,11 @@ +#!/bin/sh + +set -x + +WD=`pwd` + +curl -OL 'https://github.com/eycorsican/leaf/releases/latest/download/libleaf-ios.zip' \ + && mv libleaf-ios.zip /tmp/ \ + && unzip -o /tmp/libleaf-ios.zip -d /tmp \ + && mv /tmp/libleaf.a PacketTunnel/libleaf/ \ + && mv /tmp/leaf.h PacketTunnel/libleaf/ diff --git a/flutter/l10n.yaml b/flutter/l10n.yaml new file mode 100644 index 0000000..15338f2 --- /dev/null +++ b/flutter/l10n.yaml @@ -0,0 +1,3 @@ +arb-dir: lib/l10n +template-arb-file: app_en.arb +output-localization-file: app_localizations.dart diff --git a/flutter/lib/adapters/leaf_ffi/config.dart b/flutter/lib/adapters/leaf_ffi/config.dart new file mode 100644 index 0000000..c432940 --- /dev/null +++ b/flutter/lib/adapters/leaf_ffi/config.dart @@ -0,0 +1,438 @@ +import 'dart:collection'; + +class Config { + General? general; + List? proxies; + List? proxyGroups; + List? rules; + HashMap>? hosts; + + @override + String toString() { + String result = ""; + + if (general != null) { + result += "$general\n"; + } + + if (proxies != null && proxies!.isNotEmpty) { + result += "[Proxy]\n"; + result += proxies!.map((e) => e.toString()).join("\n"); + result += "\n\n"; + } + + if (proxyGroups != null && proxyGroups!.isNotEmpty) { + result += "[Proxy Group]\n"; + result += proxyGroups!.map((e) => e.toString()).join("\n"); + result += "\n\n"; + } + + if (rules != null && rules!.isNotEmpty) { + result += "[Rule]\n"; + result += rules!.map((e) => e.toString()).join("\n"); + result += "\n\n"; + } + + if (hosts != null && hosts!.isNotEmpty) { + result += "[Host]\n"; + result += hosts!.entries + .map((e) => "${e.key} = ${e.value.join(", ")}") + .join("\n"); + result += "\n\n"; + } + + return result; + } +} + +class Rule { + Rule({required this.typeField, this.filter, required this.target}); + + String typeField; + String? filter; + String target; + + @override + String toString() { + String result = typeField; + + if (filter != null) { + result += ', $filter'; + } + + result += ', $target'; + + return result; + } +} + +class ProxyGroup { + ProxyGroup( + {required this.tag, + required this.protocol, + this.actors, + this.healthCheck, + this.checkInterval, + this.failTimeout, + this.failover, + this.fallbackCache, + this.cacheSize, + this.cacheTimeout, + this.lastResort, + this.healthCheckTimeout, + this.healthCheckDelay, + this.healthCheckActive, + this.delayBase, + this.method}); + + String tag; + String protocol; + List? actors; + + /// failover + bool? healthCheck; + int? checkInterval; + int? failTimeout; + bool? failover; + bool? fallbackCache; + int? cacheSize; + int? cacheTimeout; + String? lastResort; + int? healthCheckTimeout; + int? healthCheckDelay; + int? healthCheckActive; + + /// tryall + int? delayBase; + + /// static + String? method; + + @override + String toString() { + String result = tag; + + result += " = $protocol"; + + if (actors != null) { + result += ", ${actors!.join(", ")}"; + } + + if (healthCheck != null) { + result += ", health-check = $healthCheck"; + } + + if (checkInterval != null) { + result += ", check-interval = $checkInterval"; + } + + if (failTimeout != null) { + result += ", fail-timeout = $failTimeout"; + } + + if (failover != null) { + result += ", failover = $failover"; + } + + if (fallbackCache != null) { + result += ", fallback-cache = $fallbackCache"; + } + + if (cacheSize != null) { + result += ", cache-size = $cacheSize"; + } + + if (cacheTimeout != null) { + result += ", cache-timeout = $cacheTimeout"; + } + + if (lastResort != null) { + result += ", last-resort = $lastResort"; + } + + if (healthCheckTimeout != null) { + result += ", health-check-timeout = $healthCheckTimeout"; + } + + if (healthCheckDelay != null) { + result += ", health-check-delay = $healthCheckDelay"; + } + + if (healthCheckActive != null) { + result += ", health-check-active = $healthCheckActive"; + } + + if (delayBase != null) { + result += ", delay-base = $delayBase"; + } + + if (method != null) { + result += ", method = $method"; + } + + return result; + } +} + +class Proxy { + Proxy( + {required this.tag, + required this.protocol, + this.interface, + this.address, + this.port, + this.encryptMethod, + this.password, + this.ws, + this.tls, + this.tlsCert, + this.wsPath, + this.wsHost, + this.sni, + this.username, + this.amux, + this.amuxMax, + this.amuxCon, + this.quic}); + + String tag; + String protocol; + String? interface; + + /// address + String? address; + int? port; + + /// shadowsocks + String? encryptMethod; + + /// shadowsocks, trojan + String? password; + + bool? ws; + bool? tls; + String? tlsCert; + String? wsPath; + String? wsHost; + + /// trojan + String? sni; + + /// vmess + String? username; + + bool? amux; + int? amuxMax; + int? amuxCon; + + bool? quic; + + @override + String toString() { + String result = tag; + + result += " = $protocol"; + + switch (protocol) { + case 'direct': + case 'drop': + case 'reject': + return result; + } + + if (address != null && port != null) { + result += ", $address, $port"; + } + + if (encryptMethod != null) { + result += ", encrypt-method = $encryptMethod"; + } + + if (password != null) { + result += ", password = $password"; + } + + if (ws != null) { + result += ", ws = $ws"; + } + + if (tls != null) { + result += ", tls = $tls"; + } + + if (tlsCert != null) { + result += ", tls-cert = $tlsCert"; + } + + if (wsPath != null) { + result += ", ws-path = $wsPath"; + } + + if (wsHost != null) { + result += ", ws-host = $wsHost"; + } + + if (sni != null) { + result += ", sni = $sni"; + } + + if (username != null) { + result += ", username = $username"; + } + + if (amux != null) { + result += ", amux = $amux"; + } + + if (amuxMax != null) { + result += ", amux-max = $amuxMax"; + } + + if (amuxCon != null) { + result += ", amux-con = $amuxCon"; + } + + if (quic != null) { + result += ", quic = $quic"; + } + + if (interface != null) { + result += ", interface = $interface"; + } + + return result; + } +} + +class General { + General( + {this.tun, + this.tunFd, + this.loglevel, + this.logoutput, + this.dnsServer, + this.dnsInterface, + this.alwaysRealIp, + this.alwaysFakeIp, + this.httpInterface, + this.httpPort, + this.socksInterface, + this.socksPort, + this.apiInterface, + this.apiPort, + this.routingDomainResolve}); + + Tun? tun; + dynamic tunFd; + String? loglevel; + String? logoutput; + List? dnsServer; + String? dnsInterface; + List? alwaysRealIp; + List? alwaysFakeIp; + String? httpInterface; + int? httpPort; + String? socksInterface; + int? socksPort; + String? apiInterface; + int? apiPort; + bool? routingDomainResolve; + + @override + String toString() { + String result = "[General]\n"; + + if (tun != null) { + result += "tun = $tun\n"; + } + + if (tunFd != null) { + result += "tun-fd = $tunFd\n"; + } + + if (loglevel != null) { + result += "loglevel = $loglevel\n"; + } + + if (logoutput != null) { + result += "logoutput = $logoutput\n"; + } + + if (dnsServer != null) { + result += "dns-server = ${dnsServer!.join(", ")}\n"; + } + + if (dnsInterface != null) { + result += "dns-interface = $dnsInterface\n"; + } + + if (alwaysRealIp != null) { + result += "always-real-ip = ${alwaysRealIp!.join(", ")}\n"; + } + + if (alwaysFakeIp != null) { + result += "always-fake-ip = ${alwaysFakeIp!.join(", ")}\n"; + } + + if (routingDomainResolve != null) { + result += "routing-domain-resolve = $routingDomainResolve\n"; + } + + if (httpInterface != null) { + result += "http-interface = $httpInterface\n"; + } + + if (httpPort != null) { + result += "http-port = $httpPort\n"; + } + + if (socksInterface != null) { + result += "socks-interface = $socksInterface\n"; + } + + if (socksInterface != null) { + result += "socks-port = $socksPort\n"; + } + + if (apiInterface != null) { + result += "api-interface = $apiInterface\n"; + } + + if (apiPort != null) { + result += "api-port = $apiPort\n"; + } + + return result; + } +} + +class Tun { + Tun({this.name, this.address, this.netmask, this.gateway, this.mtu}); + + String? name; + String? address; + String? netmask; + String? gateway; + int? mtu; + + @override + String toString() { + String result = ""; + + if (name == 'auto') { + result += "auto"; + + return result; + } + + if (name != null && + address != null && + netmask != null && + gateway != null && + mtu != null) { + result += ", $name, $address, $netmask, $gateway, $mtu"; + } + + return result; + } +} diff --git a/flutter/lib/channels/Platform.dart b/flutter/lib/channels/Platform.dart new file mode 100644 index 0000000..75408cb --- /dev/null +++ b/flutter/lib/channels/Platform.dart @@ -0,0 +1,67 @@ +import 'package:flutter/foundation.dart' + show defaultTargetPlatform, kIsWeb, TargetPlatform; + +enum Os { + web, + android, + ios, + macOS, + linux, + windows, + fuchsia, +} + +class Platform { + const Platform(); + + /// Platform is Web. + static bool get isWeb => os == Os.web; + + /// Platform is Android. + static bool get isAndroid => os == Os.android; + + /// Platform is IOS. + static bool get isIOS => os == Os.ios; + + /// Platform is Fuchsia. + static bool get isFuchsia => os == Os.fuchsia; + + /// Platform is Linux. + static bool get isLinux => os == Os.linux; + + /// Platform is MacOS. + static bool get isMacOS => os == Os.macOS; + + /// Platform is Windows. + static bool get isWindows => os == Os.windows; + + /// Platform is Android or IOS. + static bool get isMobile => isAndroid || isIOS; + + /// Platform is Android or IOS or Fuchsia. + static bool get isFullMobile => isMobile || isFuchsia; + + /// Platform is Linux or Windows or MacOS. + static bool get isDesktop => isLinux || isWindows || isMacOS; + + /// Getting the os name. + static Os get os { + if (kIsWeb) { + return Os.web; + } + switch (defaultTargetPlatform) { + case TargetPlatform.android: + return Os.android; + case TargetPlatform.iOS: + return Os.ios; + case TargetPlatform.macOS: + return Os.macOS; + case TargetPlatform.windows: + return Os.windows; + case TargetPlatform.fuchsia: + return Os.fuchsia; + case TargetPlatform.linux: + return Os.linux; + } + } +} diff --git a/flutter/lib/channels/vpn_manager.dart b/flutter/lib/channels/vpn_manager.dart new file mode 100644 index 0000000..ccc558c --- /dev/null +++ b/flutter/lib/channels/vpn_manager.dart @@ -0,0 +1,114 @@ +import 'package:flutter/services.dart'; +import 'package:sail/channels/Platform.dart'; +import 'package:sail/utils/common_util.dart'; + +enum VpnStatus { + connected(code: 2), + connecting(code: 1), + reasserting(code: 4), + disconnecting(code: 5), + disconnected(code: 0), + invalid(code: 3); + + const VpnStatus({required this.code}); + + final int code; +} + +class VpnManager { + Future getStatus() async { + // Native channel + const platform = MethodChannel("com.sail_tunnel.sail/vpn_manager"); + if (Platform.isAndroid || Platform.isMacOS) { + bool? result = await platform.invokeMethod("getStatus"); + // print("${result}"); + return (result ?? false) ? VpnStatus.connected : VpnStatus.disconnected; + } + + int result; + try { + // bool xxx = await platform.invokeMethod("getStatus"); + // result = xxx ? 1 : 0; + result = await platform.invokeMethod("getStatus"); + } on PlatformException catch (e) { + print(e.toString()); + + rethrow; + } + return VpnStatus.values.firstWhere((e) => e.code == result); + } + + Future getConnectedDate() async { + // Native channel + const platform = MethodChannel("com.sail_tunnel.sail/vpn_manager"); + double result; + try { + if (Platform.isAndroid || Platform.isMacOS) { + // bool? result = await platform.invokeMethod("getConnectedDate"); + return DateTime.fromMillisecondsSinceEpoch((1 * 1000).toInt()); + } + result = await platform.invokeMethod("getConnectedDate"); + } on PlatformException catch (e) { + print(e.toString()); + + rethrow; + } + return DateTime.fromMillisecondsSinceEpoch((result * 1000).toInt()); + } + + Future toggle() async { + // Native channel + const platform = MethodChannel("com.sail_tunnel.sail/vpn_manager"); + bool result = false; + try { + result = await platform.invokeMethod("toggle"); + } on PlatformException catch (e) { + print(e.toString()); + + rethrow; + } + return result; + } + + Future getTunnelLog() async { + // Native channel + const platform = MethodChannel("com.sail_tunnel.sail/vpn_manager"); + String result; + try { + result = await platform.invokeMethod("getTunnelLog"); + } on PlatformException catch (e) { + print(e.toString()); + + rethrow; + } + return result; + } + + Future getTunnelConfiguration() async { + // Native channel + const platform = MethodChannel("com.sail_tunnel.sail/vpn_manager"); + String result; + try { + result = await platform.invokeMethod("getTunnelConfiguration"); + } on PlatformException catch (e) { + print(e.toString()); + + rethrow; + } + return result; + } + + Future setTunnelConfiguration(String conf) async { + // Native channel + const platform = MethodChannel("com.sail_tunnel.sail/vpn_manager"); + String result; + try { + result = await platform.invokeMethod("setTunnelConfiguration", conf); + } on PlatformException catch (e) { + print(e.toString()); + + rethrow; + } + return result; + } +} diff --git a/flutter/lib/common/StringUtils.dart b/flutter/lib/common/StringUtils.dart new file mode 100644 index 0000000..bcf2a76 --- /dev/null +++ b/flutter/lib/common/StringUtils.dart @@ -0,0 +1,5 @@ +class StringUtils { + static bool isNullOrEmpty(String? str) { + return str == null || str.isEmpty; + } +} diff --git a/flutter/lib/common/colours.dart b/flutter/lib/common/colours.dart new file mode 100644 index 0000000..e1f3572 --- /dev/null +++ b/flutter/lib/common/colours.dart @@ -0,0 +1,19 @@ +import 'package:flutter/material.dart'; + +class Colours { + static const Color text_dark = Color(0xFF333333); + static const Color text_normal = Color(0xFF666666); + static const Color text_gray = Color(0xFF888888); + + static const Color gray_33 = Color(0xFF333333); + static const Color gray_66 = Color(0xFF666666); + static const Color gray_88 = Color(0xFF888888); + static const Color gray_99 = Color(0xFF999999); + static const Color gray_5A = Color(0xFF5A5A5A); + + static const Color blue_main = Color(0xFF1890FF); + static const Color indexlabel_main = Color(0xFF757575); + + static const Color divider = Color(0xFFF6F6F6); + static const Color divider2 = Color(0xFFD1D1D1); +} diff --git a/flutter/lib/common/global.dart b/flutter/lib/common/global.dart new file mode 100644 index 0000000..8d786e5 --- /dev/null +++ b/flutter/lib/common/global.dart @@ -0,0 +1,8 @@ +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; + +class Global { + static const baseUrl = 'https://api.dcgvc.com/'; + + static GlobalKey navigatorState = GlobalKey(); +} diff --git a/flutter/lib/common/public.dart b/flutter/lib/common/public.dart new file mode 100644 index 0000000..ccbee2f --- /dev/null +++ b/flutter/lib/common/public.dart @@ -0,0 +1,13 @@ +export 'dart:async'; +// export 'dart:convert'; +// export 'dart:io'; + +export '../utils/message_util.dart'; +export 'package:flutter_screenutil/flutter_screenutil.dart'; +export '../utils/sp_util.dart'; +export '../http/api/apis.dart'; +export '../http/http_utils.dart'; +export './colours.dart'; +export './styles.dart'; +export 'global.dart'; +export 'StringUtils.dart'; diff --git a/flutter/lib/common/screen.dart b/flutter/lib/common/screen.dart new file mode 100644 index 0000000..b9b1a94 --- /dev/null +++ b/flutter/lib/common/screen.dart @@ -0,0 +1,52 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'dart:ui' as ui show window; + +class Screen { + static double get width { + MediaQueryData mediaQuery = MediaQueryData.fromWindow(ui.window); + return mediaQuery.size.width; + } + + static double get height { + MediaQueryData mediaQuery = MediaQueryData.fromWindow(ui.window); + return mediaQuery.size.height; + } + + static double get scale { + MediaQueryData mediaQuery = MediaQueryData.fromWindow(ui.window); + return mediaQuery.devicePixelRatio; + } + + static double get textScaleFactor { + MediaQueryData mediaQuery = MediaQueryData.fromWindow(ui.window); + return mediaQuery.textScaleFactor; + } + + static double get navigationBarHeight { + MediaQueryData mediaQuery = MediaQueryData.fromWindow(ui.window); + return mediaQuery.padding.top + kToolbarHeight; + } + + static double get topSafeHeight { + MediaQueryData mediaQuery = MediaQueryData.fromWindow(ui.window); + if (mediaQuery.padding.top <= 0) { + return 24.0; + } + return mediaQuery.padding.top; + } + + static double get bottomSafeHeight { + MediaQueryData mediaQuery = MediaQueryData.fromWindow(ui.window); + return mediaQuery.padding.bottom; + } + + static bool get isHorizontal { + MediaQueryData mediaQuery = MediaQueryData.fromWindow(ui.window); + return mediaQuery.size.width > mediaQuery.size.height; + } + + static updateStatusBarStyle(SystemUiOverlayStyle style) { + SystemChrome.setSystemUIOverlayStyle(style); + } +} diff --git a/flutter/lib/common/styles.dart b/flutter/lib/common/styles.dart new file mode 100644 index 0000000..b378397 --- /dev/null +++ b/flutter/lib/common/styles.dart @@ -0,0 +1,92 @@ +import 'package:flutter/widgets.dart'; +import './colours.dart'; + +class TextStyles { + static TextStyle bigTitle = TextStyle( + fontSize: Dimens.font_sp24, + color: Colours.text_dark, + fontWeight: FontWeight.bold, + ); + static TextStyle listTitle = TextStyle( + fontSize: Dimens.font_sp16, + color: Colours.text_dark, + fontWeight: FontWeight.bold, + ); + static TextStyle labelTitle = TextStyle( + fontSize: Dimens.font_sp18, + color: Colours.text_dark, + fontWeight: FontWeight.bold, + ); + static TextStyle listContent = TextStyle( + fontSize: Dimens.font_sp14, + color: Colours.text_normal, + ); + static TextStyle listContentBlack = TextStyle( + fontSize: Dimens.font_sp14, + color: Colours.text_dark, + fontWeight: FontWeight.bold, + ); + static TextStyle listExtra = TextStyle( + fontSize: Dimens.font_sp12, + color: Colours.text_gray, + ); + static TextStyle listSmallExtra = TextStyle( + fontSize: Dimens.font_sp10, + color: Colours.gray_66, + ); + static TextStyle hugeTitle = TextStyle( + fontSize: Dimens.font_sp30, + color: Colours.text_dark, + fontWeight: FontWeight.bold, + ); +} + +class Decorations { + static Decoration bottom = BoxDecoration( + border: Border(bottom: BorderSide(width: 0.33, color: Colours.divider))); +} + +/// 间隔 +class Gaps { + /// 水平间隔 + static Widget hGap5 = new SizedBox(width: Dimens.gap_dp5); + static Widget hGap15 = new SizedBox(width: Dimens.gap_dp15); + static Widget hGap10 = new SizedBox(width: Dimens.gap_dp10); + static Widget hGap8 = new SizedBox(width: Dimens.gap_dp8); + static Widget hGap20 = new SizedBox(width: Dimens.gap_dp20); + + /// 垂直间隔 + static Widget vGap5 = new SizedBox(height: Dimens.gap_dp5); + static Widget vGap10 = new SizedBox(height: Dimens.gap_dp10); + static Widget vGap15 = new SizedBox(height: Dimens.gap_dp15); + static Widget vGap20 = new SizedBox(height: Dimens.gap_dp20); +} + +class Dimens { + static const double font_sp8 = 8; + static const double font_sp10 = 10; + static const double font_sp12 = 12; + static const double font_sp14 = 14; + static const double font_sp16 = 16; + static const double font_sp18 = 18; + static const double font_sp20 = 20; + static const double font_sp24 = 24; + static const double font_sp26 = 26; + static const double font_sp30 = 30; + + static const double gap_dp3 = 3; + static const double gap_dp5 = 5; + static const double gap_dp8 = 8; + static const double gap_dp10 = 10; + static const double gap_dp12 = 12; + static const double gap_dp15 = 15; + static const double gap_dp16 = 16; + static const double gap_dp20 = 20; + static const double gap_dp25 = 25; + static const double gap_dp30 = 30; + + static const double btn_h_48 = 48; + static const double item_h_42 = 42; + + static const double border_width = 0.33; +} diff --git a/flutter/lib/constant/app_colors.dart b/flutter/lib/constant/app_colors.dart new file mode 100644 index 0000000..3000881 --- /dev/null +++ b/flutter/lib/constant/app_colors.dart @@ -0,0 +1,11 @@ +import 'package:flutter/material.dart'; + +class AppColors { + static const MaterialColor themeColor = Colors.green; // Colors.amber; + static const Color yellowColor = Colors.green; // Color(0xFFfbd033); + static const Color grayColor = Color(0xFF2d2d2d); + static const Color darkSurfaceColor = Color(0xff373737); + + static const Color whiteColor = Colors.white; + static const MaterialColor greenColor = Colors.green; +} diff --git a/flutter/lib/constant/app_dimens.dart b/flutter/lib/constant/app_dimens.dart new file mode 100644 index 0000000..0bbe2f9 --- /dev/null +++ b/flutter/lib/constant/app_dimens.dart @@ -0,0 +1,5 @@ +class AppDimens { + static const double maxWidth = 1080.0; + static const double maxHeight = 1920.0; + static const double bigTextSize = 13.0; +} diff --git a/flutter/lib/constant/app_images.dart b/flutter/lib/constant/app_images.dart new file mode 100644 index 0000000..d65f9d9 --- /dev/null +++ b/flutter/lib/constant/app_images.dart @@ -0,0 +1,6 @@ +class AppImages { + static const String notFoundPicture = "assets/images/404.png"; + static const String guide1 = "assets/images/guide_1.png"; + static const String guide2 = "assets/images/guide_2.png"; + static const String guide3 = "assets/images/guide_3.png"; +} diff --git a/flutter/lib/constant/app_strings.dart b/flutter/lib/constant/app_strings.dart new file mode 100644 index 0000000..728b092 --- /dev/null +++ b/flutter/lib/constant/app_strings.dart @@ -0,0 +1,14 @@ +class AppStrings { + static const String appName = 'UUVPN'; + static const String token = 'token'; + static const String authData = 'auth_data'; + static const String userInfo = 'USER_INFO'; + static const String userSubscribe = 'USER_SUBSCRIBE'; + static const String serverNode = 'SERVER_NODE'; + static const String selectServer = 'SELECT_SERVER'; + static const String selectServerIndex = 'SELECT_SERVER_INDEX'; + static const String selectServerNode = 'SELECT_SERVER_NODE'; + static const String isFirstOpen = "IS_FIRST_OPEN"; + static const String openDoor = '开启加速服务'; + static const String crispWebsiteId = 'b7b8fcd4-9857-42b7-a39d-51fb4930130d'; +} diff --git a/flutter/lib/constant/app_urls.dart b/flutter/lib/constant/app_urls.dart new file mode 100644 index 0000000..9ddd3f8 --- /dev/null +++ b/flutter/lib/constant/app_urls.dart @@ -0,0 +1,19 @@ +class AppUrls { + // static const String baseUrl = 'https://user.51mdss.com'; // 基础接口地址 + // static const String baseUrl = "https://www.58mdss.com"; + static const String baseUrl = "https://gohash123.com"; + static const String baseApiUrl = '$baseUrl/api/v1'; // 基础接口地址 + + static const String login = '$baseApiUrl/passport/auth/login'; + static const String register = '$baseApiUrl/passport/auth/register'; + + // static const String login = 'https://www.heyuegendan.com/vpn/login.php'; + // static const String register = 'https://www.heyuegendan.com/vpn/register.php'; + static const String getQuickLoginUrl = + '$baseApiUrl/passport/auth/getQuickLoginUrl'; + + static const String userSubscribe = '$baseApiUrl/user/getSubscribe'; + static const String plan = '$baseApiUrl/guest/plan/fetch'; + static const String server = '$baseApiUrl/user/server/fetch'; + static const String userInfo = '$baseApiUrl/user/info'; +} diff --git a/flutter/lib/entity/login_entity.dart b/flutter/lib/entity/login_entity.dart new file mode 100644 index 0000000..c5fe06a --- /dev/null +++ b/flutter/lib/entity/login_entity.dart @@ -0,0 +1,30 @@ +// To parse this JSON data, do +// +// final loginEntity = loginEntityFromMap(jsonString); + +import 'dart:convert'; + +class LoginEntity { + LoginEntity({ + required this.token, + required this.authData, + }); + + final String token; + final String authData; + + factory LoginEntity.fromJson(String str) => + LoginEntity.fromMap(json.decode(str)); + + String toJson() => json.encode(toMap()); + + factory LoginEntity.fromMap(Map json) => LoginEntity( + token: json["token"], + authData: json["auth_data"], + ); + + Map toMap() => { + "token": token, + "auth_token": authData, + }; +} diff --git a/flutter/lib/entity/plan_entity.dart b/flutter/lib/entity/plan_entity.dart new file mode 100644 index 0000000..11f04de --- /dev/null +++ b/flutter/lib/entity/plan_entity.dart @@ -0,0 +1,96 @@ +// To parse this JSON data, do +// +// final planEntity = planEntityFromMap(jsonString); + +import 'package:meta/meta.dart'; +import 'dart:convert'; + +List planEntityFromList(List data) => List.from(data.map((x) => PlanEntity.fromMap(x))); + +class PlanEntity { + PlanEntity({ + required this.id, + required this.groupId, + required this.transferEnable, + required this.name, + required this.show, + required this.sort, + required this.renew, + required this.content, + required this.monthPrice, + required this.quarterPrice, + required this.halfYearPrice, + required this.yearPrice, + required this.twoYearPrice, + required this.threeYearPrice, + required this.onetimePrice, + required this.resetPrice, + required this.createdAt, + required this.updatedAt, + }); + + final int id; + final int groupId; + final int transferEnable; + final String name; + final int show; + final dynamic sort; + final int renew; + final String? content; + final int? monthPrice; + final int? quarterPrice; + final int? halfYearPrice; + final int? yearPrice; + final int? twoYearPrice; + final int? threeYearPrice; + final int? onetimePrice; + final int? resetPrice; + final DateTime? createdAt; + final DateTime? updatedAt; + + factory PlanEntity.fromJson(String str) => PlanEntity.fromMap(json.decode(str)); + + String toJson() => json.encode(toMap()); + + factory PlanEntity.fromMap(Map json) => PlanEntity( + id: json["id"], + groupId: json["group_id"], + transferEnable: json["transfer_enable"], + name: json["name"], + show: json["show"], + sort: json["sort"], + renew: json["renew"], + content: json["content"], + monthPrice: json["month_price"], + quarterPrice: json["quarter_price"], + halfYearPrice: json["half_year_price"], + yearPrice: json["year_price"], + twoYearPrice: json["two_year_price"], + threeYearPrice: json["three_year_price"], + onetimePrice: json["onetime_price"], + resetPrice: json["reset_price"], + createdAt: json["created_at"] == null ? null : DateTime.fromMillisecondsSinceEpoch(json["created_at"] * 1000), + updatedAt: json["updated_at"] == null ? null : DateTime.fromMillisecondsSinceEpoch(json["updated_at"] * 1000), + ); + + Map toMap() => { + "id": id, + "group_id": groupId, + "transfer_enable": transferEnable, + "name": name, + "show": show, + "sort": sort, + "renew": renew, + "content": content, + "month_price": monthPrice, + "quarter_price": quarterPrice, + "half_year_price": halfYearPrice, + "year_price": yearPrice, + "two_year_price": twoYearPrice, + "three_year_price": threeYearPrice, + "onetime_price": onetimePrice, + "reset_price": resetPrice, + "created_at": createdAt == null ? null : createdAt!.millisecondsSinceEpoch ~/ 1000, + "updated_at": updatedAt == null ? null : updatedAt!.millisecondsSinceEpoch ~/ 1000, + }; +} diff --git a/flutter/lib/entity/server_entity.dart b/flutter/lib/entity/server_entity.dart new file mode 100644 index 0000000..4000e1a --- /dev/null +++ b/flutter/lib/entity/server_entity.dart @@ -0,0 +1,90 @@ +// To parse this JSON data, do +// +// final serverEntity = serverEntityFromMap(jsonString); + +import 'dart:convert'; + +List serverEntityFromList(List data) => + List.from(data.map((x) => ServerEntity.fromMap((x)))); + +class ServerEntity { + ServerEntity({ + required this.id, + required this.groupId, + required this.parentId, + required this.tags, + required this.name, + required this.rate, + required this.host, + required this.port, + required this.serverPort, + required this.cipher, + required this.show, + required this.sort, + required this.createdAt, + required this.updatedAt, + required this.type, + required this.lastCheckAt, + }); + + final int id; + final List groupId; + final int? parentId; + final List tags; + final String name; + final String rate; + final String host; + final int port; + final int serverPort; + final String cipher; + final int show; + final int sort; + Duration? ping; + final int createdAt; + final int updatedAt; + final String type; + final String lastCheckAt; + + factory ServerEntity.fromJson(String str) => + ServerEntity.fromMap(json.decode(str)); + + String toJson() => json.encode(toMap()); + + factory ServerEntity.fromMap(Map json) => ServerEntity( + id: json["id"], + groupId: List.from(json["group_id"]?.map((x) => x) ?? []), + parentId: json["parent_id"], + tags: List.from(json["tags"]?.map((x) => x) ?? []), + name: json["name"], + rate: json["rate"], + host: json["host"], + port: json["port"], + serverPort: json["server_port"], + cipher: json["cipher"], + show: json["show"], + sort: json["sort"], + createdAt: json["created_at"], + updatedAt: json["updated_at"], + type: json["type"], + lastCheckAt: json["last_check_at"] ?? "", + ); + + Map toMap() => { + "id": id, + "group_id": List.from(groupId.map((x) => x)), + "parent_id": parentId, + "tags": List.from(tags.map((x) => x)), + "name": name, + "rate": rate, + "host": host, + "port": port, + "server_port": serverPort, + "cipher": cipher, + "show": show, + "sort": sort, + "created_at": createdAt, + "updated_at": updatedAt, + "type": type, + "last_check_at": lastCheckAt, + }; +} diff --git a/flutter/lib/entity/user_entity.dart b/flutter/lib/entity/user_entity.dart new file mode 100644 index 0000000..c640ed0 --- /dev/null +++ b/flutter/lib/entity/user_entity.dart @@ -0,0 +1,99 @@ +// To parse this JSON data, do +// +// final userEntity = userEntityFromMap(jsonString); + +import 'package:meta/meta.dart'; +import 'dart:convert'; + +class UserEntity { + UserEntity({ + required this.email, + required this.transferEnable, + required this.lastLoginAt, + required this.createdAt, + required this.banned, + required this.remindExpire, + required this.remindTraffic, + required this.expiredAt, + required this.balance, + required this.commissionBalance, + required this.planId, + @required this.discount, + @required this.commissionRate, + @required this.telegramId, + required this.uuid, + required this.avatarUrl, + }); + + final String email; + final int transferEnable; + final DateTime? lastLoginAt; + final DateTime? createdAt; + final int banned; + final int remindExpire; + final int remindTraffic; + final DateTime? expiredAt; + final int balance; + final int commissionBalance; + final int planId; + final dynamic discount; + final dynamic commissionRate; + final dynamic telegramId; + final String uuid; + final String avatarUrl; + + factory UserEntity.fromJson(String str) => + UserEntity.fromMap(json.decode(str)); + + String toJson() => json.encode(toMap()); + + factory UserEntity.fromMap(Map json) => UserEntity( + email: json["email"], + transferEnable: json["transfer_enable"], + lastLoginAt: json["last_login_at"] == null + ? null + : DateTime.fromMillisecondsSinceEpoch(json["last_login_at"] * 1000), + createdAt: json["created_at"] == null + ? null + : DateTime.fromMillisecondsSinceEpoch(json["created_at"] * 1000), + banned: json["banned"], + remindExpire: json["remind_expire"], + remindTraffic: json["remind_traffic"], + expiredAt: json["expired_at"] == null + ? null + : DateTime.fromMillisecondsSinceEpoch(json["expired_at"] * 1000), + balance: json["balance"], + commissionBalance: json["commission_balance"], + planId: json["plan_id"] ?? 0, + discount: json["discount"] ?? 0, + commissionRate: json["commission_rate"], + telegramId: json["telegram_id"], + uuid: json["uuid"], + avatarUrl: json["avatar_url"], + ); + + Map toMap() => { + "email": email, + "transfer_enable": transferEnable, + "last_login_at": lastLoginAt == null + ? null + : lastLoginAt!.millisecondsSinceEpoch ~/ 1000, + "created_at": createdAt == null + ? null + : createdAt!.millisecondsSinceEpoch ~/ 1000, + "banned": banned, + "remind_expire": remindExpire, + "remind_traffic": remindTraffic, + "expired_at": expiredAt == null + ? null + : expiredAt!.millisecondsSinceEpoch ~/ 1000, + "balance": balance, + "commission_balance": commissionBalance, + "plan_id": planId, + "discount": discount, + "commission_rate": commissionRate, + "telegram_id": telegramId, + "uuid": uuid, + "avatar_url": avatarUrl, + }; +} diff --git a/flutter/lib/entity/user_subscribe_entity.dart b/flutter/lib/entity/user_subscribe_entity.dart new file mode 100644 index 0000000..5feb8b9 --- /dev/null +++ b/flutter/lib/entity/user_subscribe_entity.dart @@ -0,0 +1,156 @@ +// To parse this JSON data, do +// +// final userSubscribeEntity = userSubscribeEntityFromMap(jsonString); + +import 'package:meta/meta.dart'; +import 'dart:convert'; + +class UserSubscribeEntity { + UserSubscribeEntity({ + required this.planId, + required this.token, + required this.expiredAt, + required this.u, + required this.d, + required this.transferEnable, + required this.email, + required this.plan, + required this.subscribeUrl, + required this.resetDay, + }); + + final int planId; + final String token; + final int expiredAt; + final int u; + final int d; + final int transferEnable; + final String email; + final Plan? plan; + final String subscribeUrl; + final int? resetDay; + + factory UserSubscribeEntity.fromJson(String str) => + UserSubscribeEntity.fromMap(json.decode(str)); + + String toJson() => json.encode(toMap()); + + factory UserSubscribeEntity.fromMap(Map json) => + UserSubscribeEntity( + planId: json["plan_id"] ?? 0, + token: json["token"], + expiredAt: json["expired_at"] ?? 0, + u: json["u"], + d: json["d"], + transferEnable: json["transfer_enable"], + email: json["email"], + plan: json["plan"] == null ? null : Plan.fromMap(json["plan"]), + subscribeUrl: json["subscribe_url"], + resetDay: json["reset_day"], + ); + + Map toMap() => { + "plan_id": planId, + "token": token, + "expired_at": expiredAt, + "u": u, + "d": d, + "transfer_enable": transferEnable, + "email": email, + "plan": plan?.toMap(), + "subscribe_url": subscribeUrl, + "reset_day": resetDay, + }; +} + +class Plan { + Plan({ + required this.id, + required this.groupId, + required this.transferEnable, + required this.name, + required this.show, + required this.sort, + required this.renew, + required this.content, + required this.monthPrice, + required this.quarterPrice, + required this.halfYearPrice, + required this.yearPrice, + required this.twoYearPrice, + required this.threeYearPrice, + required this.onetimePrice, + required this.resetPrice, + required this.resetTrafficMethod, + required this.createdAt, + required this.updatedAt, + }); + + final int id; + final int groupId; + final int transferEnable; + final String name; + final int show; + final int sort; + final int renew; + final String? content; + final int? monthPrice; + final int? quarterPrice; + final int? halfYearPrice; + final int? yearPrice; + final int? twoYearPrice; + final int? threeYearPrice; + final int? onetimePrice; + final int? resetPrice; + final int? resetTrafficMethod; + final int? createdAt; + final int? updatedAt; + + factory Plan.fromJson(String str) => Plan.fromMap(json.decode(str)); + + String toJson() => json.encode(toMap()); + + factory Plan.fromMap(Map json) => Plan( + id: json["id"], + groupId: json["group_id"], + transferEnable: json["transfer_enable"], + name: json["name"], + show: json["show"], + sort: json["sort"] ?? 0, + renew: json["renew"], + content: json["content"] ?? "", + monthPrice: json["month_price"] ?? 0, + quarterPrice: json["quarter_price"] ?? 0, + halfYearPrice: json["half_year_price"] ?? 0, + yearPrice: json["year_price"] ?? 0, + twoYearPrice: json["two_year_price"] ?? 0, + threeYearPrice: json["three_year_price"] ?? 0, + onetimePrice: json["onetime_price"] ?? 0, + resetPrice: json["reset_price"] ?? 0, + resetTrafficMethod: json["reset_traffic_method"] ?? 0, + createdAt: json["created_at"] ?? 0, + updatedAt: json["updated_at"] ?? 0, + ); + + Map toMap() => { + "id": id, + "group_id": groupId, + "transfer_enable": transferEnable, + "name": name, + "show": show, + "sort": sort, + "renew": renew, + "content": content, + "month_price": monthPrice, + "quarter_price": quarterPrice, + "half_year_price": halfYearPrice, + "year_price": yearPrice, + "two_year_price": twoYearPrice, + "three_year_price": threeYearPrice, + "onetime_price": onetimePrice, + "reset_price": resetPrice, + "reset_traffic_method": resetTrafficMethod, + "created_at": createdAt, + "updated_at": updatedAt, + }; +} diff --git a/flutter/lib/http/api/apis.dart b/flutter/lib/http/api/apis.dart new file mode 100644 index 0000000..60dacc7 --- /dev/null +++ b/flutter/lib/http/api/apis.dart @@ -0,0 +1,11 @@ +/*后台接口api*/ +import 'package:sail/common/public.dart'; + +class Apis { + static String appid = "IPOSih2134KHJKLDIO"; + static String token = + "${Global.baseUrl}flutter/gettoken.php/?s=App.JYApp_Main.GetToken"; + static String getLaunchAds = + "${Global.baseUrl}flutter/gettoken.php/?s=App.JYApp_Main.GetLaunchAds"; + static String getRecommandList = "${Global.baseUrl}flutter/recommand.php"; +} diff --git a/flutter/lib/http/api_response.dart b/flutter/lib/http/api_response.dart new file mode 100644 index 0000000..153d237 --- /dev/null +++ b/flutter/lib/http/api_response.dart @@ -0,0 +1,24 @@ +import 'http_exceptions.dart'; + +class ApiResponse implements Exception { + Status status; + T? data; + DioHttpException? exception; + + /** + * 成功 网络请求 + */ + ApiResponse.completed(this.data) : status = Status.COMPLETED; + + /** + * 错误 网络请求 + */ + ApiResponse.error(this.exception) : status = Status.ERROR; + + @override + String toString() { + return "Status : $status \n Message : $exception \n Data : $data"; + } +} + +enum Status { COMPLETED, ERROR } diff --git a/flutter/lib/http/error_interceptor.dart b/flutter/lib/http/error_interceptor.dart new file mode 100644 index 0000000..c5ca184 --- /dev/null +++ b/flutter/lib/http/error_interceptor.dart @@ -0,0 +1,19 @@ +import 'package:dio/dio.dart'; +import 'package:flutter/material.dart'; + +import 'http_exceptions.dart'; + +/// 错误处理拦截器 +class ErrorInterceptor extends Interceptor { + Duration durationTime = Duration(seconds: 2); + + @override + onError(DioError err, ErrorInterceptorHandler handler) { + // error统一处理 + DioHttpException appException = DioHttpException.create(err); + // 错误提示 + print('DioError===: ${appException.toString()}'); + err.error = appException; + super.onError(err, handler); + } +} diff --git a/flutter/lib/http/http.dart b/flutter/lib/http/http.dart new file mode 100644 index 0000000..ecddf3d --- /dev/null +++ b/flutter/lib/http/http.dart @@ -0,0 +1,238 @@ +import 'dart:async'; +import 'package:dio/dio.dart'; +import 'package:sail/common/public.dart'; +import 'error_interceptor.dart'; + +class Http { + ///超时时间 + static const int CONNECT_TIMEOUT = 30000; + static const int RECEIVE_TIMEOUT = 30000; + + static Http _instance = Http._internal(); + + factory Http() => _instance; + + Dio? dio; + CancelToken _cancelToken = new CancelToken(); + + Http._internal() { + if (dio == null) { + // BaseOptions、Options、RequestOptions 都可以配置参数,优先级别依次递增,且可以根据优先级别覆盖参数 + BaseOptions options = new BaseOptions( + connectTimeout: CONNECT_TIMEOUT, + // 响应流上前后两次接受到数据的间隔,单位为毫秒。 + receiveTimeout: RECEIVE_TIMEOUT, + headers: {}, + ); + if (options.contentType != null && + options.headers.containsKey(Headers.contentTypeHeader)) { + options.headers.remove(Headers.contentTypeHeader); + } + dio = new Dio(options); + + // 添加拦截器 + dio!.interceptors.add(ErrorInterceptor()); + dio!.interceptors.add(LogInterceptor()); + } + } + + /// 读取本地配置 + Future?> getAuthorizationHeader() async { + var headers; + String? accessToken = SpUtil.getString("SP_TOKEN", defValue: null); + if (accessToken != null) { + int expiresM = SpUtil.getInt("SP_EXPIRES_M"); + // token过期(有5分钟缓冲时间),刷新token + if (DateTime.now().millisecondsSinceEpoch > expiresM) { + // accessToken = await Auth.refreshToken(); + } + headers = {"Authorization": 'Bearer $accessToken'}; + } + return headers; + } + + ///初始化公共属性 + /// + /// [baseUrl] 地址前缀 + /// [connectTimeout] 连接超时赶时间 + /// [receiveTimeout] 接收超时赶时间 + /// [interceptors] 基础拦截器 + void init( + {String? baseUrl, + int? connectTimeout, + int? receiveTimeout, + List? interceptors}) { + dio!.options = dio!.options.copyWith( + baseUrl: baseUrl, + connectTimeout: connectTimeout, + receiveTimeout: receiveTimeout, + ); + if (interceptors != null && interceptors.isNotEmpty) { + dio!.interceptors.addAll(interceptors); + } + } + + /// 设置headers + void setHeaders(Map map) { + dio!.options.headers.addAll(map); + } + + /* + * 取消请求 + * + * 同一个cancel token 可以用于多个请求,当一个cancel token取消时,所有使用该cancel token的请求都会被取消。 + * 所以参数可选 + */ + void cancelRequests({CancelToken? token}) { + token ?? _cancelToken.cancel("cancelled"); + } + + /// restful get 操作 + Future get( + String path, { + Map? params, + Options? options, + CancelToken? cancelToken, + bool refresh = false, + String? cacheKey, + bool cacheDisk = false, + bool withoutToken = false, + }) async { + Options requestOptions = options ?? Options(); + requestOptions = requestOptions.copyWith(extra: { + "refresh": refresh, + "cacheKey": cacheKey, + "cacheDisk": cacheDisk, + }); + Map? _authorization = await getAuthorizationHeader(); + Map? headers = requestOptions.headers; + if (_authorization != null && + (headers == null || headers["Authorization"] == null) && + !withoutToken) { + requestOptions = requestOptions.copyWith(headers: _authorization); + } + Response response; + response = await dio!.get(path, + queryParameters: params, + options: requestOptions, + cancelToken: cancelToken ?? _cancelToken); + return response.data; + } + + /// restful post 操作 + Future post( + String path, { + Map? params, + data, + Options? options, + CancelToken? cancelToken, + }) async { + Options requestOptions = options ?? Options(); + if (requestOptions.headers == null || + requestOptions.headers!["Authorization"] == null) { + Map? _authorization = await getAuthorizationHeader(); + if (_authorization != null) { + requestOptions = requestOptions.copyWith(headers: _authorization); + } + } + var response = await dio!.post(path, + data: data, + queryParameters: params, + options: requestOptions, + cancelToken: cancelToken ?? _cancelToken); + return response.data; + } + + /// restful put 操作 + Future put( + String path, { + data, + Map? params, + Options? options, + CancelToken? cancelToken, + }) async { + Options requestOptions = options ?? Options(); + + Map? _authorization = await getAuthorizationHeader(); + if (_authorization != null && + (requestOptions.headers == null || + requestOptions.headers!["Authorization"] == null)) { + requestOptions = requestOptions.copyWith(headers: _authorization); + } + var response = await dio!.put(path, + data: data, + queryParameters: params, + options: requestOptions, + cancelToken: cancelToken ?? _cancelToken); + return response.data; + } + + /// restful patch 操作 + Future patch( + String path, { + data, + Map? params, + Options? options, + CancelToken? cancelToken, + }) async { + Options requestOptions = options ?? Options(); + Map? _authorization = await getAuthorizationHeader(); + if (_authorization != null && + (requestOptions.headers == null || + requestOptions.headers!["Authorization"] == null)) { + requestOptions = requestOptions.copyWith(headers: _authorization); + } + var response = await dio!.patch(path, + data: data, + queryParameters: params, + options: requestOptions, + cancelToken: cancelToken ?? _cancelToken); + return response.data; + } + + /// restful delete 操作 + Future delete( + String path, { + data, + Map? params, + Options? options, + CancelToken? cancelToken, + }) async { + Options requestOptions = options ?? Options(); + + Map? _authorization = await getAuthorizationHeader(); + if (_authorization != null && + (requestOptions.headers == null || + requestOptions.headers!["Authorization"] == null)) { + requestOptions = requestOptions.copyWith(headers: _authorization); + } + var response = await dio!.delete(path, + data: data, + queryParameters: params, + options: requestOptions, + cancelToken: cancelToken ?? _cancelToken); + return response.data; + } + + /// restful post form 表单提交操作 + Future postForm( + String path, { + required Map data, + Options? options, + CancelToken? cancelToken, + }) async { + Options requestOptions = options ?? Options(); + Map? _authorization = await getAuthorizationHeader(); + if (_authorization != null && + (requestOptions.headers == null || + requestOptions.headers!["Authorization"] == null)) { + requestOptions = requestOptions.copyWith(headers: _authorization); + } + var response = await dio!.post(path, + data: FormData.fromMap(data), + queryParameters: data, + options: requestOptions, + cancelToken: cancelToken ?? _cancelToken); + return response.data; + } +} diff --git a/flutter/lib/http/http_exceptions.dart b/flutter/lib/http/http_exceptions.dart new file mode 100644 index 0000000..0de8415 --- /dev/null +++ b/flutter/lib/http/http_exceptions.dart @@ -0,0 +1,130 @@ +import 'package:dio/dio.dart'; + +/// 自定义异常 +class DioHttpException implements Exception { + final String? message; + final int? code; + + DioHttpException([ + this.code, + this.message, + ]); + + String toString() { + return "$code$message"; + } + + factory DioHttpException.create(DioError error) { + switch (error.type) { + case DioErrorType.other: + { + // 网络异常 + return BadRequestException(-2, "无网络"); + } + + case DioErrorType.cancel: + { + return BadRequestException(-1, "请求取消"); + } + + case DioErrorType.connectTimeout: + { + return BadRequestException(-1, "连接超时"); + } + + case DioErrorType.sendTimeout: + { + return BadRequestException(-1, "请求超时"); + } + + case DioErrorType.receiveTimeout: + { + return BadRequestException(-1, "响应超时"); + } + + case DioErrorType.response: + { + try { + int? errCode = error.response!.statusCode; + switch (errCode) { + case 400: + { + String? msgOf400; + try { + msgOf400 = error.response!.data["message"]; + } on Exception catch (e) { + print('****** 400 exception: $e'); + } + return BadRequestException(errCode, msgOf400 ?? "请求语法错误"); + } + + case 401: + { + return UnauthorisedException(errCode, "没有权限"); + } + + case 403: + { + return UnauthorisedException(errCode, "服务器拒绝执行"); + } + + case 404: + { + return UnauthorisedException(errCode, "无法连接服务器"); + } + + case 405: + { + return UnauthorisedException(errCode, "请求方法被禁止"); + } + + case 500: + { + return UnauthorisedException( + errCode, error.response?.statusMessage ?? "服务器内部错误"); + } + + case 502: + { + return UnauthorisedException(errCode, "无效的请求"); + } + + case 503: + { + return UnauthorisedException(errCode, "服务器挂了"); + } + + case 505: + { + return UnauthorisedException(errCode, "不支持HTTP协议请求"); + } + + default: + { + return DioHttpException( + errCode, error.response?.statusMessage); + } + } + } on Exception catch (_) { + return DioHttpException(-1, "未知错误"); + } + } + break; + + default: + { + return DioHttpException(-1, error.message); + } + } + } +} + +/// 请求错误 +class BadRequestException extends DioHttpException { + BadRequestException([int? code, String? message]) : super(code, message); +} + +/// 未认证异常 +class UnauthorisedException extends DioHttpException { + UnauthorisedException([int? code, String? message]) : super(code, message); +} diff --git a/flutter/lib/http/http_utils.dart b/flutter/lib/http/http_utils.dart new file mode 100644 index 0000000..ddaed16 --- /dev/null +++ b/flutter/lib/http/http_utils.dart @@ -0,0 +1,123 @@ +import 'package:dio/dio.dart'; +import 'http.dart'; +import 'package:sync_http/sync_http.dart'; + +class HttpUtils { + static void init( + {String? baseUrl, + int? connectTimeout, + int? receiveTimeout, + List? interceptors}) { + Http().init( + baseUrl: baseUrl, + connectTimeout: connectTimeout, + receiveTimeout: receiveTimeout, + interceptors: interceptors); + } + + static void setHeaders(Map map) { + Http().setHeaders(map); + } + + static void cancelRequests({CancelToken? token}) { + Http().cancelRequests(token: token); + } + + static Future get( + String path, { + Map? params, + Options? options, + CancelToken? cancelToken, + bool refresh = false, + String? cacheKey, + bool cacheDisk = false, + bool withoutToken = false, + }) async { + // SyncHttpClient.getUrl(path) + return await Http().get(path, + params: params, + options: options, + cancelToken: cancelToken, + refresh: refresh, + cacheKey: cacheKey, + withoutToken: withoutToken); + } + + static Future post( + String path, { + data, + Map? params, + Options? options, + CancelToken? cancelToken, + }) async { + return await Http().post( + path, + data: data, + params: params, + options: options, + cancelToken: cancelToken, + ); + } + + static Future put( + String path, { + data, + Map? params, + Options? options, + CancelToken? cancelToken, + }) async { + return await Http().put( + path, + data: data, + params: params, + options: options, + cancelToken: cancelToken, + ); + } + + static Future patch( + String path, { + data, + Map? params, + Options? options, + CancelToken? cancelToken, + }) async { + return await Http().patch( + path, + data: data, + params: params, + options: options, + cancelToken: cancelToken, + ); + } + + static Future delete( + String path, { + data, + Map? params, + Options? options, + CancelToken? cancelToken, + }) async { + return await Http().delete( + path, + data: data, + params: params, + options: options, + cancelToken: cancelToken, + ); + } + + static Future postForm( + String path, { + required Map data, + Options? options, + CancelToken? cancelToken, + }) async { + return await Http().postForm( + path, + data: data, + options: options, + cancelToken: cancelToken, + ); + } +} diff --git a/flutter/lib/l10n/app_en.arb b/flutter/lib/l10n/app_en.arb new file mode 100644 index 0000000..f5c6094 --- /dev/null +++ b/flutter/lib/l10n/app_en.arb @@ -0,0 +1,61 @@ +{ + "@@last_modified": "2022-08-25T17:45:16.782917", + "title": "Flutter APP", + + "wodedingyue": "My Subscription", + "guoqi": "Expired", + "yiyong": "Used", + "zongji": "Total", + "dinggoutaocan": "Sub Package", + "xuangou": "Buy", + "yidingyue": "Subscribed", + "yilianjie": "Connected", + "yiduankai": "Disconnected", + "qingxiandenglu":"Please login first", + "qingxiandingyuetaocan":"Please subscribed first", + "taocanguoqichongxindingyue":"Package has expired, please subscribe again", + "chagnqiyouxiao":"Subscribed Never Expires", + "renew":"View", + "welcome":"welcome", + "logout":"logout", + "xuanzeliahjiedian":"Select Services", + "yiduankai2": "Disconnected", + "pleaseenter":"Please enter the correct email address", + "passwordcan":"Password can not be null", + "passwordcannot":"Password cannot be less than 6 characters", + "loginfailed":"Login failed, please try again", + "registrationfailed":"Registration failed, please try again", + "mail":"Mail", + "password":"Password", + + + "zhengzailinajie":"Connecting, please wait...", + "zhengzaiduankailianjie":"Disconnecting, please wait...", + "confirmpassword":"Confirm Password", + "twopasswords":"Two passwords do not match", + "forgetthepassword":"Forget the password?", + "login":"Login", + "register":"Register", + "resetpassword":"Reset Password", + "sure":"Sure", + "thesystemwill":"The system will send a reset password email to your mailbox, please pay attention to check it", + "sentsuccessfully":"Sent successfully", + "returnstring":"Return", + "qingxuanzefuwqjiedian":"Please select a server node", + "pingallnodes":"Click Ping All", + "timeout":"timeout", + "alertsss":"alert", + "wanttoexit":"Are you sure you want to exit?", + "cancelss":"cancel", + "exitout":"exit", + "clicktoselectanothernode":"Click to select another node", + "nodefornullcheckissubscripts":"The Service list is empty, \nPlease Login first.", + "foreveryfree1":"Notable features of UU: \n * No credit card required\n * You can try premium features for free for 7 days \n* Do not keep any user logs\n* Simple, one-click connection VPN\n* Automatically connects you to the fastest VPN server", + + "@title": { + "description": "Title for the Demo application", + "type": "text", + "placeholders_order": [], + "placeholders": {} + } +} \ No newline at end of file diff --git a/flutter/lib/l10n/app_zh.arb b/flutter/lib/l10n/app_zh.arb new file mode 100644 index 0000000..31572db --- /dev/null +++ b/flutter/lib/l10n/app_zh.arb @@ -0,0 +1,61 @@ +{ + "@@last_modified": "2022-08-25T15:53:28.107195", + "title": "Flutter APP", + + + "wodedingyue": "我的订阅", + "guoqi": "过期", + "yiyong": "已用", + "zongji": "总计", + "dinggoutaocan": "订阅套餐", + "xuangou": "购买", + "yidingyue": "已订购", + "yilianjie": "已连接", + "yiduankai": "已断开连接", + "qingxiandenglu":"请先登录", + "qingxiandingyuetaocan":"请先订阅下方套餐", + "taocanguoqichongxindingyue":"套餐已过期,请重新订阅", + "chagnqiyouxiao":"长期有效", + "renew":"查看", + "welcome":"欢迎光临", + "logout":"退出", + "xuanzeliahjiedian":"选择连接节点", + "yiduankai2": "已断开连接", + "pleaseenter":"请输入正确邮箱", + "passwordcan":"密码不能为空", + "passwordcannot":"密码不能小于6位", + "loginfailed":"登陆失败,请重试", + "registrationfailed":"注册失败,请重试", + "mail":"邮箱", + "password":"密码", + "confirmpassword":"确定密码", + "twopasswords":"两次密码不匹配", + "forgetthepassword":"忘记密码?", + "login":"登录", + "register":"注册", + "resetpassword":"重置密码", + "sure":"确定", + "thesystemwill":"系统将向您的邮箱发送一封重置密码邮件,请注意查收", + "sentsuccessfully":"发送成功", + "returnstring":"返回", + "qingxuanzefuwqjiedian":"请选择服务器节点", + "pingallnodes":"点击Ping所有节点", + "timeout":"超时", + "alertsss":"提示", + "wanttoexit":"确定退出吗?", + "cancelss":"取消", + "exitout":"退出", + "zhengzailinajie":"正在连接中,请稍后...", + "zhengzaiduankailianjie":"正在断开中,请稍后...", + "clicktoselectanothernode":"点击选择其他节点", + "nodefornullcheckissubscripts":"节点列表为空,请确认是否已经订阅 ", + "foreveryfree1":"Notable features of UU: \n * No credit card required\n * You can try premium features for free for 7 days \n* Do not keep any user logs\n* Simple, one-click connection VPN\n* Automatically connects you to the fastest VPN server", + + + "@title": { + "description": "Title for the Demo application", + "type": "text", + "placeholders_order": [], + "placeholders": {} + } +} \ No newline at end of file diff --git a/flutter/lib/main.dart b/flutter/lib/main.dart new file mode 100644 index 0000000..54e01c0 --- /dev/null +++ b/flutter/lib/main.dart @@ -0,0 +1,96 @@ +import 'package:fluro/fluro.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart' as services; +import 'package:flutter_localizations/flutter_localizations.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:sail/constant/app_colors.dart'; +import 'package:sail/constant/app_strings.dart'; +import 'package:provider/provider.dart'; +import 'package:sail/models/app_model.dart'; +import 'package:sail/models/plan_model.dart'; +import 'package:sail/models/server_model.dart'; +import 'package:sail/models/user_subscribe_model.dart'; +import 'package:sail/router/application.dart'; +import 'package:sail/router/routers.dart'; +import 'package:sail/models/user_model.dart'; +import 'package:flutter_gen/gen_l10n/app_localizations.dart'; + +import 'model/UserPreference.dart'; +import 'model/themeCollection.dart'; + +void main() async { + WidgetsFlutterBinding.ensureInitialized(); + var appModel = AppModel(); + var userViewModel = UserModel(); + var userSubscribeModel = UserSubscribeModel(); + var serverModel = ServerModel(); + var planModel = PlanModel(); + + await userViewModel.refreshData(); // Add this line + await ScreenUtil.ensureScreenSize(); + + runApp(MultiProvider(providers: [ + ChangeNotifierProvider.value(value: appModel), + ChangeNotifierProvider.value(value: userViewModel), + ChangeNotifierProvider.value(value: userSubscribeModel), + ChangeNotifierProvider.value(value: serverModel), + ChangeNotifierProvider.value(value: ThemeCollection()), + ChangeNotifierProvider.value(value: UserPreference()), + ChangeNotifierProvider.value(value: planModel) + ], child: SailApp())); +} + +class SailApp extends StatelessWidget { + SailApp({Key? key}) : super(key: key) { + final router = FluroRouter(); + Routers.configureRoutes(router); + Application.router = router; + } + + // This widget is the root of your application. + @override + Widget build(BuildContext context) { + // // var userViewModel = Provider.of(context); + // // var onceuse = userViewModel.getOnceUse(); + // // print("onceuse.toString(): ${onceuse.toString()}"); + // String onceuse = "0"; + // if (onceuse == "1") { + // } else { + + // } + + AppModel appModel = Provider.of(context); + + services.SystemChrome.setPreferredOrientations([ + services.DeviceOrientation.portraitUp, + services.DeviceOrientation.portraitDown + ]); + // final size = MediaQuery.of(context).size; + // final width = size.width; + // final height = size.height; + // print('width is $width; height is $height'); + // ScreenUtil.init(context); + + return MaterialApp( + // <--- /!\ Add the builder + title: AppStrings.appName, + navigatorKey: Application.navigatorKey, + debugShowCheckedModeBanner: false, + onGenerateRoute: Application.router?.generator, + localizationsDelegates: const [ + // 本地化的代理类 + AppLocalizations.delegate, + GlobalMaterialLocalizations.delegate, + GlobalCupertinoLocalizations.delegate, + GlobalWidgetsLocalizations.delegate, + ], + supportedLocales: const [ + Locale('en', 'US'), // 美式英语 + Locale('zh', 'CN'), // 简体中文 + //其它Locales + ], + // theme: appModel.themeData, //固定主题 + theme: Provider.of(context).getActiveTheme, + ); + } +} diff --git a/flutter/lib/model/UserPreference.dart b/flutter/lib/model/UserPreference.dart new file mode 100644 index 0000000..f113660 --- /dev/null +++ b/flutter/lib/model/UserPreference.dart @@ -0,0 +1,35 @@ +//ignore_for_file: file_names + +import 'dart:async'; +import 'package:flutter/cupertino.dart'; +class UserPreference extends ChangeNotifier { + +// Initally Location index is 0 + int locationIndex = 0; + +// Change current location by call setlocationIndex method(function) + void setlocationIndex(int index) { + locationIndex = index; + notifyListeners(); + } + + +// Setup for coundown service + Duration duration = Duration.zero; + bool isCountDownStart = false; + final Stream _stream = Stream.periodic(const Duration(seconds: 1)); + + UserPreference() { + _stream.listen((event) { + if (isCountDownStart) { + duration += const Duration(seconds: 1); + notifyListeners(); + } + }); + } + + void get countDownSwitch { + isCountDownStart = !isCountDownStart; + notifyListeners(); + } +} diff --git a/flutter/lib/model/flags.dart b/flutter/lib/model/flags.dart new file mode 100644 index 0000000..7d8511c --- /dev/null +++ b/flutter/lib/model/flags.dart @@ -0,0 +1,239 @@ +abstract class Flags { + /// Database of all flags in format : List> + /// eg. {"name": "India", "imagePath": "in.svg"} + static List> get list => [ + {"name": "Andorra", "imagePath": "ad.svg"}, + {"name": "United Arab Emirates", "imagePath": "ae.svg"}, + {"name": "Antigua and Barbuda", "imagePath": "ag.svg"}, + {"name": "Anguilla", "imagePath": "ai.svg"}, + {"name": "Albania", "imagePath": "al.svg"}, + {"name": "Armenia", "imagePath": "am.svg"}, + {"name": "Angola", "imagePath": "ao.svg"}, + {"name": "American Samoa", "imagePath": "as.svg"}, + {"name": "Austria", "imagePath": "at.svg"}, + {"name": "Australia", "imagePath": "au.svg"}, + {"name": "Aruba", "imagePath": "aw.svg"}, + {"name": "Åland Islands", "imagePath": "ax.svg"}, + {"name": "Azerbaijan", "imagePath": "az.svg"}, + {"name": "Bosnia and Herzegovina", "imagePath": "ba.svg"}, + {"name": "Barbados", "imagePath": "bb.svg"}, + {"name": "Bangladesh", "imagePath": "bd.svg"}, + {"name": "Belgium", "imagePath": "be.svg"}, + {"name": "Burkina Faso", "imagePath": "bf.svg"}, + {"name": "Bulgaria", "imagePath": "bg.svg"}, + {"name": "Bahrain", "imagePath": "bh.svg"}, + {"name": "Burundi", "imagePath": "bi.svg"}, + {"name": "Benin", "imagePath": "bj.svg"}, + {"name": "Saint Barthélemy", "imagePath": "bl.svg"}, + {"name": "Bermuda", "imagePath": "bm.svg"}, + {"name": "Brunei Darussalam", "imagePath": "bn.svg"}, + {"name": "Caribbean Netherlands", "imagePath": "bq.svg"}, + {"name": "Bahamas", "imagePath": "bs.svg"}, + {"name": "Bhutan", "imagePath": "bt.svg"}, + {"name": "Bouvet Island", "imagePath": "bv.svg"}, + {"name": "Botswana", "imagePath": "bw.svg"}, + {"name": "Belize", "imagePath": "bz.svg"}, + {"name": "Canada", "imagePath": "ca.svg"}, + {"name": "Cocos (Keeling) Islands", "imagePath": "cc.svg"}, + {"name": "Congo", "imagePath": "cd.svg"}, + {"name": "Central African Republic", "imagePath": "cf.svg"}, + {"name": "Republic of the Congo", "imagePath": "cg.svg"}, + {"name": "Switzerland", "imagePath": "ch.svg"}, + {"name": "Cook Islands", "imagePath": "ck.svg"}, + {"name": "Chile", "imagePath": "cl.svg"}, + {"name": "Cameroon", "imagePath": "cm.svg"}, + {"name": "Colombia", "imagePath": "co.svg"}, + {"name": "Costa Rica", "imagePath": "cr.svg"}, + {"name": "Cuba", "imagePath": "cu.svg"}, + {"name": "Cape Verde", "imagePath": "cv.svg"}, + {"name": "Curaçao", "imagePath": "cw.svg"}, + {"name": "Christmas Island", "imagePath": "cx.svg"}, + {"name": "Cyprus", "imagePath": "cy.svg"}, + {"name": "Czech Republic", "imagePath": "cz.svg"}, + {"name": "Germany", "imagePath": "de.svg"}, + {"name": "Djibouti", "imagePath": "dj.svg"}, + {"name": "Denmark", "imagePath": "dk.svg"}, + {"name": "Algeria", "imagePath": "dz.svg"}, + {"name": "Estonia", "imagePath": "ee.svg"}, + {"name": "Egypt", "imagePath": "eg.svg"}, + {"name": "Western Sahara", "imagePath": "eh.svg"}, + {"name": "Eritrea", "imagePath": "er.svg"}, + {"name": "Spain", "imagePath": "es.svg"}, + {"name": "Ethiopia", "imagePath": "et.svg"}, + {"name": "Europe", "imagePath": "eu.svg"}, + {"name": "Finland", "imagePath": "fi.svg"}, + {"name": "Fiji", "imagePath": "fj.svg"}, + {"name": "Micronesia", "imagePath": "fm.svg"}, + {"name": "Faroe Islands", "imagePath": "fo.svg"}, + {"name": "France", "imagePath": "fr.svg"}, + {"name": "Gabon", "imagePath": "ga.svg"}, + {"name": "England", "imagePath": "gb-eng.svg"}, + {"name": "Northern Ireland", "imagePath": "gb-nir.svg"}, + {"name": "Wales", "imagePath": "gb-wls.svg"}, + {"name": "United Kingdom", "imagePath": "gb.svg"}, + {"name": "Grenada", "imagePath": "gd.svg"}, + {"name": "Georgia", "imagePath": "ge.svg"}, + {"name": "French Guiana", "imagePath": "gf.svg"}, + {"name": "Guernsey", "imagePath": "gg.svg"}, + {"name": "Ghana", "imagePath": "gh.svg"}, + {"name": "Gibraltar", "imagePath": "gi.svg"}, + {"name": "Greenland", "imagePath": "gl.svg"}, + {"name": "Gambia", "imagePath": "gm.svg"}, + {"name": "Guinea", "imagePath": "gn.svg"}, + {"name": "Guadeloupe", "imagePath": "gp.svg"}, + {"name": "Equatorial Guinea", "imagePath": "gq.svg"}, + {"name": "Greece", "imagePath": "gr.svg"}, + {"name": "Guatemala", "imagePath": "gt.svg"}, + {"name": "Guam", "imagePath": "gu.svg"}, + {"name": "Guinea-Bissau", "imagePath": "gw.svg"}, + {"name": "Guyana", "imagePath": "gy.svg"}, + {"name": "Hong Kong", "imagePath": "hk.svg"}, + {"name": "Heard Island and McDonald Islands", "imagePath": "hm.svg"}, + {"name": "Honduras", "imagePath": "hn.svg"}, + {"name": "Croatia", "imagePath": "hr.svg"}, + {"name": "Haiti", "imagePath": "ht.svg"}, + {"name": "Hungary", "imagePath": "hu.svg"}, + {"name": "Indonesia", "imagePath": "id.svg"}, + {"name": "Ireland", "imagePath": "ie.svg"}, + {"name": "Israel", "imagePath": "il.svg"}, + {"name": "Isle of Man", "imagePath": "im.svg"}, + {"name": "India", "imagePath": "in.svg"}, + {"name": "British Indian Ocean Territory", "imagePath": "io.svg"}, + {"name": "Iraq", "imagePath": "iq.svg"}, + {"name": "Iran, Islamic Republic of", "imagePath": "ir.svg"}, + {"name": "Iceland", "imagePath": "is.svg"}, + {"name": "Italy", "imagePath": "it.svg"}, + {"name": "Jersey", "imagePath": "je.svg"}, + {"name": "Jamaica", "imagePath": "jm.svg"}, + {"name": "Jordan", "imagePath": "jo.svg"}, + {"name": "Japan", "imagePath": "jp.svg"}, + {"name": "Kenya", "imagePath": "ke.svg"}, + {"name": "Kyrgyzstan", "imagePath": "kg.svg"}, + {"name": "Cambodia", "imagePath": "kh.svg"}, + {"name": "Comoros", "imagePath": "km.svg"}, + {"name": "Saint Kitts and Nevis", "imagePath": "kn.svg"}, + {"name": "Korea", "imagePath": "kp.svg"}, + {"name": "Korea, Republic of", "imagePath": "kr.svg"}, + {"name": "Kuwait", "imagePath": "kw.svg"}, + {"name": "Kazakhstan", "imagePath": "kz.svg"}, + {"name": "Laos", "imagePath": "la.svg"}, + {"name": "Lebanon", "imagePath": "lb.svg"}, + {"name": "Saint Lucia", "imagePath": "lc.svg"}, + {"name": "Liechtenstein", "imagePath": "li.svg"}, + {"name": "Liberia", "imagePath": "lr.svg"}, + {"name": "Lesotho", "imagePath": "ls.svg"}, + {"name": "Lithuania", "imagePath": "lt.svg"}, + {"name": "Luxembourg", "imagePath": "lu.svg"}, + {"name": "Latvia", "imagePath": "lv.svg"}, + {"name": "Libya", "imagePath": "ly.svg"}, + {"name": "Morocco", "imagePath": "ma.svg"}, + {"name": "Monaco", "imagePath": "mc.svg"}, + {"name": "Moldova, Republic of", "imagePath": "md.svg"}, + {"name": "Montenegro", "imagePath": "me.svg"}, + {"name": "Saint Martin", "imagePath": "mf.svg"}, + {"name": "Madagascar", "imagePath": "mg.svg"}, + {"name": "Marshall Islands", "imagePath": "mh.svg"}, + {"name": "North Macedonia", "imagePath": "mk.svg"}, + {"name": "Mali", "imagePath": "ml.svg"}, + {"name": "Myanmar", "imagePath": "mm.svg"}, + {"name": "Mongolia", "imagePath": "mn.svg"}, + {"name": "Macao", "imagePath": "mo.svg"}, + {"name": "Martinique", "imagePath": "mq.svg"}, + {"name": "Mauritania", "imagePath": "mr.svg"}, + {"name": "Montserrat", "imagePath": "ms.svg"}, + {"name": "Malta", "imagePath": "mt.svg"}, + {"name": "Mauritius", "imagePath": "mu.svg"}, + {"name": "Maldives", "imagePath": "mv.svg"}, + {"name": "Malawi", "imagePath": "mw.svg"}, + {"name": "Malaysia", "imagePath": "my.svg"}, + {"name": "Mozambique", "imagePath": "mz.svg"}, + {"name": "Namibia", "imagePath": "na.svg"}, + {"name": "New Caledonia", "imagePath": "nc.svg"}, + {"name": "Niger", "imagePath": "ne.svg"}, + {"name": "Norfolk Island", "imagePath": "nf.svg"}, + {"name": "Nigeria", "imagePath": "ng.svg"}, + {"name": "Nicaragua", "imagePath": "ni.svg"}, + {"name": "Netherlands", "imagePath": "nl.svg"}, + {"name": "Norway", "imagePath": "no.svg"}, + {"name": "Nauru", "imagePath": "nr.svg"}, + {"name": "Niue", "imagePath": "nu.svg"}, + {"name": "New Zealand", "imagePath": "nz.svg"}, + {"name": "Oman", "imagePath": "om.svg"}, + {"name": "Panama", "imagePath": "pa.svg"}, + {"name": "French Polynesia", "imagePath": "pf.svg"}, + {"name": "Papua New Guinea", "imagePath": "pg.svg"}, + {"name": "Philippines", "imagePath": "ph.svg"}, + {"name": "Pakistan", "imagePath": "pk.svg"}, + {"name": "Poland", "imagePath": "pl.svg"}, + {"name": "Saint Pierre and Miquelon", "imagePath": "pm.svg"}, + {"name": "Pitcairn", "imagePath": "pn.svg"}, + {"name": "Puerto Rico", "imagePath": "pr.svg"}, + {"name": "Palestine", "imagePath": "ps.svg"}, + {"name": "Portugal", "imagePath": "pt.svg"}, + {"name": "Palau", "imagePath": "pw.svg"}, + {"name": "Paraguay", "imagePath": "py.svg"}, + {"name": "Qatar", "imagePath": "qa.svg"}, + {"name": "Réunion", "imagePath": "re.svg"}, + {"name": "Romania", "imagePath": "ro.svg"}, + {"name": "Serbia", "imagePath": "rs.svg"}, + {"name": "Russian Federation", "imagePath": "ru.svg"}, + {"name": "Rwanda", "imagePath": "rw.svg"}, + {"name": "Saudi Arabia", "imagePath": "sa.svg"}, + {"name": "Solomon Islands", "imagePath": "sb.svg"}, + {"name": "Seychelles", "imagePath": "sc.svg"}, + {"name": "Sudan", "imagePath": "sd.svg"}, + {"name": "Sweden", "imagePath": "se.svg"}, + {"name": "Singapore", "imagePath": "sg.svg"}, + { + "name": "Saint Helena, Ascension and Tristan da Cunha", + "imagePath": "sh.svg" + }, + {"name": "Slovenia", "imagePath": "si.svg"}, + {"name": "Svalbard and Jan Mayen Islands", "imagePath": "sj.svg"}, + {"name": "Slovakia", "imagePath": "sk.svg"}, + {"name": "Sierra Leone", "imagePath": "sl.svg"}, + {"name": "San Marino", "imagePath": "sm.svg"}, + {"name": "Senegal", "imagePath": "sn.svg"}, + {"name": "Somalia", "imagePath": "so.svg"}, + {"name": "Suriname", "imagePath": "sr.svg"}, + {"name": "South Sudan", "imagePath": "ss.svg"}, + {"name": "Sao Tome and Principe", "imagePath": "st.svg"}, + {"name": "Sint Maarten", "imagePath": "sx.svg"}, + {"name": "Syrian Arab Republic", "imagePath": "sy.svg"}, + {"name": "Swaziland", "imagePath": "sz.svg"}, + {"name": "Chad", "imagePath": "td.svg"}, + {"name": "French Southern Territories", "imagePath": "tf.svg"}, + {"name": "Togo", "imagePath": "tg.svg"}, + {"name": "Thailand", "imagePath": "th.svg"}, + {"name": "Tajikistan", "imagePath": "tj.svg"}, + {"name": "Tokelau", "imagePath": "tk.svg"}, + {"name": "Timor-Leste", "imagePath": "tl.svg"}, + {"name": "Turkmenistan", "imagePath": "tm.svg"}, + {"name": "Tunisia", "imagePath": "tn.svg"}, + {"name": "Tonga", "imagePath": "to.svg"}, + {"name": "Turkey", "imagePath": "tr.svg"}, + {"name": "Trinidad and Tobago", "imagePath": "tt.svg"}, + {"name": "Tuvalu", "imagePath": "tv.svg"}, + {"name": "Taiwan (Republic of China)", "imagePath": "tw.svg"}, + {"name": "Tanzania, United Republic of", "imagePath": "tz.svg"}, + {"name": "Ukraine", "imagePath": "ua.svg"}, + {"name": "Uganda", "imagePath": "ug.svg"}, + {"name": "US Minor Outlying Islands", "imagePath": "um.svg"}, + {"name": "United States", "imagePath": "us.svg"}, + {"name": "Uruguay", "imagePath": "uy.svg"}, + {"name": "Uzbekistan", "imagePath": "uz.svg"}, + {"name": "Holy See", "imagePath": "va.svg"}, + {"name": "Saint Vincent and the Grenadines", "imagePath": "vc.svg"}, + {"name": "Venezuela", "imagePath": "ve.svg"}, + {"name": "Virgin Islands, British", "imagePath": "vg.svg"}, + {"name": "Virgin Islands, U.S.", "imagePath": "vi.svg"}, + {"name": "Vietnam", "imagePath": "vn.svg"}, + {"name": "Vanuatu", "imagePath": "vu.svg"}, + {"name": "Samoa", "imagePath": "ws.svg"}, + {"name": "Kosovo", "imagePath": "xk.svg"}, + {"name": "Yemen", "imagePath": "ye.svg"}, + {"name": "Mayotte", "imagePath": "yt.svg"}, + {"name": "Zambia", "imagePath": "zm.svg"}, + {"name": "Zimbabwe", "imagePath": "zw.svg"} + ]; +} diff --git a/flutter/lib/model/themeCollection.dart b/flutter/lib/model/themeCollection.dart new file mode 100644 index 0000000..b81ec47 --- /dev/null +++ b/flutter/lib/model/themeCollection.dart @@ -0,0 +1,73 @@ +// ignore_for_file: file_names +import 'package:flutter/material.dart'; + +class ThemeCollection extends ChangeNotifier { + /// _colorSwatch method or function take RGB color as argument and after processing + /// it will return Map where int consist colors varients + Map _colorSwatch( + int r, + int g, + int b, + ) => + { + 50: Color.fromRGBO(r, g, b, 0.1), + 100: Color.fromRGBO(r, g, b, 0.2), + 200: Color.fromRGBO(r, g, b, 0.3), + 300: Color.fromRGBO(r, g, b, 0.4), + 400: Color.fromRGBO(r, g, b, 0.5), + 500: Color.fromRGBO(r, g, b, 0.6), + 600: Color.fromRGBO(r, g, b, 0.7), + 700: Color.fromRGBO(r, g, b, 0.8), + 800: Color.fromRGBO(r, g, b, 0.9), + 900: Color.fromRGBO(r, g, b, 1), + }; + bool isDarkActive = true; + + void setDarkTheme(bool value) { + isDarkActive = value; + notifyListeners(); + } + +// ThemeData themeData = ThemeData( +// primarySwatch: AppColors.themeColor, +// visualDensity: VisualDensity.adaptivePlatformDensity, +// ); + + ThemeData get getActiveTheme => isDarkActive ? _darkTheme : lightTheme; + +// Let's define a light theme for our Application + ThemeData get lightTheme => ThemeData( + primarySwatch: MaterialColor(0xffFFFFFF, _colorSwatch(1, 117, 194)), + primaryColor: Colors.green, + // accentColor: const Color(0xffAE77FF), + canvasColor: const Color(0xffFFFFFF), + // backgroundColor: const Color(0xffFFFFFF), + iconTheme: const IconThemeData(color: Colors.green), + primaryTextTheme: TextTheme( + bodyText1: const TextStyle(color: Colors.black, fontSize: 15), + bodyText2: const TextStyle(color: Colors.black54, fontSize: 15), + subtitle1: const TextStyle(color: Colors.black), + headline3: const TextStyle( + color: Colors.black, fontSize: 27, fontWeight: FontWeight.bold), + headline6: const TextStyle(color: Colors.black), + caption: TextStyle( + color: Colors.grey.shade700, wordSpacing: -1, fontSize: 12))); + +// Now define a dark theme for our Application + ThemeData get _darkTheme => ThemeData( + primarySwatch: MaterialColor(0xff0B0415, _colorSwatch(2, 86, 155)), + primaryColor: Colors.green, + // accentColor: const Color(0xffAE77FF), + canvasColor: const Color(0xff0B0415), + // backgroundColor: const Color(0xff0B0415), + iconTheme: const IconThemeData(color: Colors.white), + primaryTextTheme: const TextTheme( + bodyText1: TextStyle(color: Colors.white, fontSize: 15), + bodyText2: TextStyle(color: Colors.white70, fontSize: 15), + subtitle1: TextStyle(color: Colors.white), + headline3: TextStyle( + color: Colors.white, fontSize: 27, fontWeight: FontWeight.bold), + headline6: const TextStyle(color: Colors.white), + caption: + TextStyle(color: Colors.white54, wordSpacing: -1, fontSize: 12))); +} diff --git a/flutter/lib/models/app_model.dart b/flutter/lib/models/app_model.dart new file mode 100644 index 0000000..95c10a9 --- /dev/null +++ b/flutter/lib/models/app_model.dart @@ -0,0 +1,185 @@ +import 'package:flutter/material.dart'; +import 'package:fluttertoast/fluttertoast.dart'; +import 'package:sail/adapters/leaf_ffi/config.dart'; +import 'package:sail/channels/Platform.dart'; +import 'package:sail/channels/vpn_manager.dart'; +import 'package:sail/constant/app_colors.dart'; +import 'package:sail/constant/app_strings.dart'; +import 'package:sail/models/base_model.dart'; +import 'package:sail/models/server_model.dart'; +import 'package:sail/models/user_model.dart'; +import 'package:sail/utils/common_util.dart'; + +class AppModel extends BaseModel { + VpnManager vpnManager = VpnManager(); + VpnStatus vpnStatus = VpnStatus.disconnected; + bool isOn = false; + bool isconnectordisconnct = false; + DateTime? connectedDate; + PageController pageController = PageController(initialPage: 0); + String appTitle = AppStrings.appName; + Config config = Config(); + ThemeData themeData = ThemeData( + primarySwatch: AppColors.themeColor, + visualDensity: VisualDensity.adaptivePlatformDensity, + ); + + AppModel() { + General general = General( + loglevel: 'info', + logoutput: '{{leafLogFile}}', + dnsServer: ['223.5.5.5', '114.114.114.114'], + tunFd: '{{tunFd}}', + routingDomainResolve: true); + + List rules = []; + // rules.add(Rule(typeField: 'EXTERNAL', target: 'Direct', filter: 'site:cn')); + rules.add(Rule(typeField: 'FINAL', target: 'Direct')); + + config.general = general; + config.rules = rules; + } + + final Map _tabMap = { + 0: '主页', + 1: '套餐', + 2: '节点', + 3: '我的', + }; + + void jumpToPage(int page) { + // pageController.jumpToPage(page); + appTitle = _tabMap[page]; + + notifyListeners(); + } + + void getStatus() async { + vpnStatus = await vpnManager.getStatus(); + + if (vpnStatus == VpnStatus.connected) { + isOn = true; + + getConnectedDate(); + notifyListeners(); + } else if (vpnStatus == VpnStatus.disconnected) { + isOn = false; + notifyListeners(); + } else { + isconnectordisconnct = true; + notifyListeners(); + } + } + + void getConnectedDate() async { + if (Platform.isAndroid || Platform.isMacOS) { + } else { + var date = await vpnManager.getConnectedDate(); + //print("date: $date"); + connectedDate = date; + } + } + + void togglePowerButton() async { + if (vpnStatus == VpnStatus.connecting) { + Fluttertoast.showToast( + msg: "Connecting, please wait...", + toastLength: Toast.LENGTH_SHORT, + gravity: ToastGravity.CENTER, + timeInSecForIosWeb: 2, + textColor: Colors.white, + fontSize: 14.0); + return; + } + + if (vpnStatus == VpnStatus.disconnecting) { + Fluttertoast.showToast( + msg: "Disconnecting, please wait...", + toastLength: Toast.LENGTH_SHORT, + gravity: ToastGravity.CENTER, + timeInSecForIosWeb: 2, + textColor: Colors.white, + fontSize: 14.0); + return; + } + + if (vpnStatus == VpnStatus.connected) { + vpnStatus = VpnStatus.disconnecting; + } + + if (vpnStatus == VpnStatus.disconnected) { + vpnStatus = VpnStatus.connecting; + } + + await vpnManager.toggle(); + + notifyListeners(); + } + + void getTunnelLog() async { + if (Platform.isIOS) { + var log = await vpnManager.getTunnelLog(); + print("log: $log"); + } + } + + void getTunnelConfiguration() async { + if (Platform.isIOS) { + var conf = await vpnManager.getTunnelConfiguration(); + print("config: $conf"); + } + } + + void setConfigProxies(UserModel userModel, ServerModel serverModel) async { + List proxies = []; + List proxyGroups = []; + List actors = []; + + for (var server in serverModel.serverEntityList) { + Proxy proxy = Proxy( + tag: server.name, + protocol: server.type, + address: server.host, + port: server.port, + encryptMethod: server.cipher, + password: userModel.userEntity!.uuid); + proxies.add(proxy); + actors.add(server.name); + } + + if (actors.isNotEmpty) { + proxyGroups.add(ProxyGroup( + tag: "UrlTest", + protocol: 'url-test', + actors: actors, + checkInterval: 600)); + + config.rules?.last.target = "UrlTest"; + } + + config.proxies = proxies; + config.proxyGroups = proxyGroups; + + //print("-----------------config-----------------"); + //print(config); + //print("-----------------config-----------------"); + + vpnManager.setTunnelConfiguration(config.toString()); + } + + void setConfigRule(String tag) async { + // var proxy = config.proxies?.where((proxies) => proxies.tag == tag); + // + // if (proxy == null || proxy.isEmpty) { + // return; + // } + // + // config.rules?.last.target = tag; + // + // //print("-----------------config-----------------"); + // print(config); + // //print("-----------------config-----------------"); + // + // vpnManager.setTunnelConfiguration(config.toString()); + } +} diff --git a/flutter/lib/models/base_model.dart b/flutter/lib/models/base_model.dart new file mode 100644 index 0000000..9b1c19b --- /dev/null +++ b/flutter/lib/models/base_model.dart @@ -0,0 +1,32 @@ +import 'package:flutter/material.dart'; +import 'package:sail/models/page_state.dart'; +import 'package:sail/utils/common_util.dart'; + +class BaseModel extends ChangeNotifier { + PageState pageState = PageState.loading; + bool _isDispose = false; + late String errorMessage; + + bool get isDispose => _isDispose; + + @override + void notifyListeners() { + //print("view model notifyListeners"); + if (!_isDispose) { + super.notifyListeners(); + } + } + + void errorNotify(String error) { + pageState = PageState.error; + errorMessage = error; + notifyListeners(); + } + + @override + void dispose() { + _isDispose = true; + //print("view model dispose"); + super.dispose(); + } +} diff --git a/flutter/lib/models/login_model.dart b/flutter/lib/models/login_model.dart new file mode 100644 index 0000000..d82da26 --- /dev/null +++ b/flutter/lib/models/login_model.dart @@ -0,0 +1,26 @@ +import 'package:sail/models/base_model.dart'; +import 'package:sail/models/user_model.dart'; +import 'package:sail/service/user_service.dart'; + +class LoginModel extends BaseModel { + final UserService _userService = UserService(); + final UserModel _userModel; + + LoginModel(this._userModel); + + // 登陆方法 + login(String? account, String? passWord) async { + var parameters = {'email': account, 'password': passWord}; + + return _userService.login(parameters)?.then((loginEntity) async { + _userModel.setToken(loginEntity); + + return _userService.info(); + }).then((userEntity) { + _userModel.setUserInfo(userEntity); + notifyListeners(); + + return userEntity; + }); + } +} diff --git a/flutter/lib/models/page_state.dart b/flutter/lib/models/page_state.dart new file mode 100644 index 0000000..d42032e --- /dev/null +++ b/flutter/lib/models/page_state.dart @@ -0,0 +1,6 @@ +enum PageState { + loading, //加载中 + hasData, //有数据 + empty, //无数据 + error, //加载失败 +} diff --git a/flutter/lib/models/plan_model.dart b/flutter/lib/models/plan_model.dart new file mode 100644 index 0000000..46daeb2 --- /dev/null +++ b/flutter/lib/models/plan_model.dart @@ -0,0 +1,24 @@ +import 'package:sail/entity/plan_entity.dart'; +import 'package:sail/models/base_model.dart'; +import 'package:sail/service/plan_service.dart'; + +class PlanModel extends BaseModel { + final PlanService _planService = PlanService(); + + List _planEntityList = []; + + List get planEntityList => _planEntityList; + + // 获取套餐列表 + void fetchPlanList() async { + try { + // bool xxx = await platform.invokeMethod("getStatus"); + // result = xxx ? 1 : 0; + _planEntityList = (await _planService.plan())!; + + notifyListeners(); + } on Exception catch (e) { + print(e.toString()); + } + } +} diff --git a/flutter/lib/models/server_model.dart b/flutter/lib/models/server_model.dart new file mode 100644 index 0000000..e9c1ffb --- /dev/null +++ b/flutter/lib/models/server_model.dart @@ -0,0 +1,175 @@ +import 'dart:convert'; +import 'dart:io'; + +import 'package:flutter_icmp_ping/flutter_icmp_ping.dart'; +import 'package:sail/constant/app_strings.dart'; +import 'package:sail/entity/server_entity.dart'; +import 'package:sail/models/base_model.dart'; +import 'package:sail/service/server_service.dart'; +import 'package:sail/utils/shared_preferences_util.dart'; +import 'package:sail/utils/common_util.dart'; + +enum PingType { ping, tcp } + +class ServerModel extends BaseModel { + List _serverEntityList = []; + ServerEntity? _selectServerEntity; + int _selectServerIndex = 0; + + final ServerService _serverService = ServerService(); + + List get serverEntityList => _serverEntityList; + + ServerEntity? get selectServerEntity => _selectServerEntity; + + int get selectServerIndex => _selectServerIndex; + + getServerList({bool forceRefresh = false}) async { + bool result = false; + + List data = await SharedPreferencesUtil.getInstance() + ?.getList(AppStrings.serverNode) ?? + []; + List newData = + List.from(data.map((e) => Map.from(jsonDecode(e)))); + + if (newData.isEmpty || forceRefresh) { + setServerEntityList(await _serverService.server()); + } else { + _serverEntityList = serverEntityFromList(newData); + } + + notifyListeners(); + + result = true; + + return result; + } + + void pingAll() async { + for (int i = 0; i < _serverEntityList.length; i++) { + var duration = const Duration(milliseconds: 300); + await Future.delayed(duration); + ping(i); + } + } + + void ping(int index, {PingType type = PingType.tcp}) { + ServerEntity serverEntity = _serverEntityList[index]; + String host = serverEntity.host; + int serverPort = serverEntity.port; + + //print("host=$host"); + //print("serverPort=$serverPort"); + + switch (type) { + case PingType.ping: + try { + final ping = + Ping(host, count: 1, timeout: 1.0, interval: 1.0, ipv6: false); + ping.stream.listen((event) { + print(event); + if (event.error != null) { + var duration = const Duration(minutes: 1); + _serverEntityList[index].ping = duration; + } else if (event.response != null) { + _serverEntityList[index].ping = event.response?.time; + } + notifyListeners(); + + ping.stop(); + }); + } catch (e) { + rethrow; + } + break; + case PingType.tcp: + Stopwatch stopwatch = Stopwatch()..start(); + + Socket.connect(host, serverPort, timeout: const Duration(seconds: 3)) + .then((socket) { + socket.destroy(); + var duration = stopwatch.elapsed; + _serverEntityList[index].ping = duration; + + notifyListeners(); + + return duration; + }).catchError((error) { + var duration = const Duration(minutes: 1); + _serverEntityList[index].ping = duration; + + throw error; + }); + break; + default: + throw Error(); + } + } + + getSelectServer() async { + Map data = await SharedPreferencesUtil.getInstance() + ?.getMap(AppStrings.selectServer) ?? + {}; + int index = int.parse(await SharedPreferencesUtil.getInstance() + ?.getString(AppStrings.selectServerIndex) ?? + '0'); + + if (data.isEmpty) { + return null; + } + + _selectServerEntity = ServerEntity.fromMap(data); + _selectServerIndex = index; + + notifyListeners(); + + return _selectServerEntity; + } + + setServerEntityList(List serverEntityList) { + _serverEntityList = serverEntityList; + + _saveServerEntityList(); + } + + setSelectServerEntity(ServerEntity selectServerEntity) { + _selectServerEntity = selectServerEntity; + + _saveSelectServerEntity(); + + notifyListeners(); + } + + setSelectServerIndex(int index) { + _selectServerIndex = index; + + _saveSelectServerIndex(); + + notifyListeners(); + } + + _saveServerEntityList() async { + SharedPreferencesUtil? sharedPreferencesUtil = + SharedPreferencesUtil.getInstance(); + + await sharedPreferencesUtil?.setList( + AppStrings.serverNode, _serverEntityList); + } + + _saveSelectServerEntity() async { + SharedPreferencesUtil? sharedPreferencesUtil = + SharedPreferencesUtil.getInstance(); + + await sharedPreferencesUtil?.setMap( + AppStrings.selectServer, _selectServerEntity!.toMap()); + } + + _saveSelectServerIndex() async { + SharedPreferencesUtil? sharedPreferencesUtil = + SharedPreferencesUtil.getInstance(); + + await sharedPreferencesUtil?.setString( + AppStrings.selectServerIndex, _selectServerIndex.toString()); + } +} diff --git a/flutter/lib/models/user_model.dart b/flutter/lib/models/user_model.dart new file mode 100644 index 0000000..e432293 --- /dev/null +++ b/flutter/lib/models/user_model.dart @@ -0,0 +1,120 @@ +import 'package:sail/constant/app_strings.dart'; +import 'package:sail/entity/login_entity.dart'; +import 'package:sail/entity/user_entity.dart'; +import 'package:sail/models/base_model.dart'; +import 'package:sail/utils/navigator_util.dart'; +import 'package:sail/utils/shared_preferences_util.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +class UserModel extends BaseModel { + String? _token; + String? _authData; + UserEntity? _userEntity; + bool _isLogin = false; + + String? get token => _token; + String? get authData => _authData; + UserEntity? get userEntity => _userEntity; + bool get isLogin => _isLogin; + String? _isonceLogin; + + Future checkHasLogin(context, Function callback) async { + if (!isLogin) { + NavigatorUtil.goLogin(context); + } else { + return callback(); + } + } + + refreshData() async { + String token = await SharedPreferencesUtil.getInstance() + ?.getString(AppStrings.token) ?? + ''; + String authData = await SharedPreferencesUtil.getInstance() + ?.getString(AppStrings.authData) ?? + ''; + + if (token != null && + token.isNotEmpty && + authData != null && + authData.isNotEmpty) { + _isLogin = true; + _token = token; + _authData = authData; + + Map userEntityMap = + await SharedPreferencesUtil.getInstance() + ?.getMap(AppStrings.userInfo) ?? + {}; + _userEntity = UserEntity.fromMap(userEntityMap); + + notifyListeners(); + } + } + + logout() { + SharedPreferencesUtil? sharedPreferencesUtil = + SharedPreferencesUtil.getInstance(); + + sharedPreferencesUtil?.clear(); + + refreshData(); + } + + _saveOnceUserUse() async { + SharedPreferencesUtil? sharedPreferencesUtil = + SharedPreferencesUtil.getInstance(); + _isonceLogin = "1"; + await sharedPreferencesUtil?.setString("diyicidakaiapp", "1"); + } + + getOnceUse() async { + SharedPreferences sharedPreferences = await SharedPreferences.getInstance(); + return sharedPreferences.getString("diyicidakaiapp"); + // String? value = await sharedPreferencesUtil?.getString("diyicidakaiapp"); + + // if (value != null && value != "") { + // return value; + // } else { + // return "0"; + // } + } + + _saveUserToken(LoginEntity loginEntity) async { + SharedPreferencesUtil? sharedPreferencesUtil = + SharedPreferencesUtil.getInstance(); + + await sharedPreferencesUtil?.setString(AppStrings.token, loginEntity.token); + } + + _setUserAuthData(LoginEntity loginEntity) async { + SharedPreferencesUtil? sharedPreferencesUtil = + SharedPreferencesUtil.getInstance(); + + await sharedPreferencesUtil?.setString( + AppStrings.authData, loginEntity.authData); + } + + _saveUserInfo() async { + SharedPreferencesUtil? sharedPreferencesUtil = + SharedPreferencesUtil.getInstance(); + + await sharedPreferencesUtil?.setMap( + AppStrings.userInfo, _userEntity?.toMap()); + } + + setToken(LoginEntity loginEntity) { + _token = loginEntity.token; + _authData = loginEntity.authData; + _isLogin = true; + + _saveUserToken(loginEntity); + _setUserAuthData(loginEntity); + } + + setUserInfo(UserEntity? userEntity) { + _userEntity = userEntity; + + _saveUserInfo(); + } +} diff --git a/flutter/lib/models/user_subscribe_model.dart b/flutter/lib/models/user_subscribe_model.dart new file mode 100644 index 0000000..ea26ab0 --- /dev/null +++ b/flutter/lib/models/user_subscribe_model.dart @@ -0,0 +1,45 @@ +import 'package:sail/constant/app_strings.dart'; +import 'package:sail/entity/user_subscribe_entity.dart'; +import 'package:sail/models/base_model.dart'; +import 'package:sail/service/user_service.dart'; +import 'package:sail/utils/shared_preferences_util.dart'; + +class UserSubscribeModel extends BaseModel { + UserSubscribeEntity? _userSubscribeEntity; + + final UserService _userService = UserService(); + + UserSubscribeEntity? get userSubscribeEntity => _userSubscribeEntity; + + Future getUserSubscribe({bool forceRefresh = false}) async { + bool result = false; + + // Map? data = await SharedPreferencesUtil.getInstance() ?.getMap(AppStrings.userSubscribe); + Map? data; + if (data == null || data.isEmpty || forceRefresh) { + setUserSubscribeEntity(await _userService.userSubscribe()); + } else { + _userSubscribeEntity = UserSubscribeEntity.fromMap(data); + } + + notifyListeners(); + + result = true; + + return result; + } + + setUserSubscribeEntity(UserSubscribeEntity? userSubscribeEntity) { + _userSubscribeEntity = userSubscribeEntity; + + _saveUserSubscribe(); + } + + _saveUserSubscribe() async { + SharedPreferencesUtil? sharedPreferencesUtil = + SharedPreferencesUtil.getInstance(); + + await sharedPreferencesUtil?.setMap( + AppStrings.userSubscribe, _userSubscribeEntity?.toMap()); + } +} diff --git a/flutter/lib/pages/404/not_find_page.dart b/flutter/lib/pages/404/not_find_page.dart new file mode 100644 index 0000000..797ec49 --- /dev/null +++ b/flutter/lib/pages/404/not_find_page.dart @@ -0,0 +1,26 @@ +import 'package:flutter/material.dart'; +import 'package:sail/constant/app_images.dart'; +import 'package:sail/constant/app_strings.dart'; + + +class NotFindPage extends StatelessWidget { + const NotFindPage({Key? key}) : super(key: key); + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + centerTitle: true, + title: const Text(AppStrings.appName), + ), + body: Container( + alignment: Alignment.center, + child: Image.asset( + AppImages.notFoundPicture, + width: 200, + height: 100, + color: const Color(0xFFff5722), + ), + )); + } +} diff --git a/flutter/lib/pages/ProOnecePage.dart b/flutter/lib/pages/ProOnecePage.dart new file mode 100644 index 0000000..6593267 --- /dev/null +++ b/flutter/lib/pages/ProOnecePage.dart @@ -0,0 +1,155 @@ +//ProOnecePage.dart +//ignore_for_file: file_names +import 'package:sail/constant/app_colors.dart'; +import 'package:sail/router/application.dart'; +import 'package:sail/utils/l10n.dart'; + +import '/model/themeCollection.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_svg/flutter_svg.dart'; +import 'package:provider/provider.dart'; + +class ProOnecePage extends StatelessWidget { + const ProOnecePage({Key? key}) : super(key: key); + + @override + Widget build(BuildContext context) { + bool isDarkTheme = Provider.of(context).isDarkActive; + return Center( + child: ListView( + shrinkWrap: true, + children: [ + // SvgPicture.asset( + // 'assets/logo.svg', + // cacheColorFilter: true, + // color: AppColors.greenColor, + // ), + const SizedBox(height: 12), + RichText( + textAlign: TextAlign.center, + text: TextSpan( + text: ' ', + style: TextStyle( + fontFamily: 'Aquire', + color: isDarkTheme ? Colors.white : Colors.black, + fontSize: 24), + children: const [ + TextSpan( + text: 'Your privacy comes first', + style: TextStyle( + fontFamily: 'Roboto', fontWeight: FontWeight.w500)) + ])), + Container( + margin: EdgeInsets.only(left: 20, right: 20), + child: RichText( + textAlign: TextAlign.left, + text: TextSpan( + text: """ + + We do not keep logs of your online activities and never associate any domains or applications that you use with you, your device,IP address, or email. Betternet collects a minimal amount of data to offer you a fast and reliable VPN service. We collect: + + Device-specific information like OS version hardware modeland IP address to optimize our network connection to you.We do not store or log your IP address after you disconnect from the VPN + +Aggregated anonymous website activity datatoperform analytics on our service and to ensure you can reliably access certain websites orapps + +For more information, please read our Privacy Policy + + +""", + style: TextStyle( + fontFamily: 'Roboto', + color: isDarkTheme ? Colors.white : Colors.black, + fontSize: 17), + ), + )), + + const SizedBox(height: 32), + + // decoratedButton(context, '1 MONTH', '1.99', '\$/month', false), + // decoratedButton(context, '1 YEAR', '0.99', '\$/month', true), + GestureDetector( + onTap: () => {Navigator.maybePop(context)}, + child: Container( + alignment: Alignment.center, + height: kToolbarHeight, + margin: const EdgeInsets.symmetric(horizontal: 32.0, vertical: 8), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(65), + color: Color.fromARGB(255, 34, 128, 15).withOpacity(0.7)), + child: Text( + 'Accept and continue', + style: Theme.of(context).primaryTextTheme.headline6!.copyWith( + color: AppColors.whiteColor, + ), + ), + ), + ), + Text( + ' ', + textAlign: TextAlign.center, + style: Theme.of(context).primaryTextTheme.caption, + ), + ], + ), + ); + } + + Container decoratedButton(BuildContext context, String lt, String rt_1, + String rt_2, bool isDiscount) { + return Container( + height: kToolbarHeight, + margin: const EdgeInsets.symmetric(horizontal: 32.0, vertical: 8), + padding: const EdgeInsets.symmetric(horizontal: 24.0), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(65), + gradient: const LinearGradient( + colors: [AppColors.greenColor, Color.fromARGB(255, 7, 52, 7)], + transform: GradientRotation(5))), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + children: [ + Text( + lt, + style: Theme.of(context) + .primaryTextTheme + .headline6! + .copyWith(color: Colors.white), + ), + if (isDiscount) + Container( + margin: const EdgeInsets.all(4.0), + padding: const EdgeInsets.symmetric( + horizontal: 6.0, vertical: 2.0), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(15)), + child: const Text( + '50% OFF', + style: TextStyle(fontSize: 10, color: Colors.black), + ), + ), + ], + ), + RichText( + text: TextSpan( + text: rt_1, + style: Theme.of(context) + .primaryTextTheme + .headline6! + .copyWith(color: Colors.white), + children: [ + TextSpan( + text: ' $rt_2', + style: Theme.of(context) + .primaryTextTheme + .bodyText1! + .copyWith(color: Colors.white), + ) + ])), + ], + ), + ); + } +} diff --git a/flutter/lib/pages/accountPage.dart b/flutter/lib/pages/accountPage.dart new file mode 100644 index 0000000..6497bb5 --- /dev/null +++ b/flutter/lib/pages/accountPage.dart @@ -0,0 +1,291 @@ +//ignore_for_file: file_names +import 'package:flutter/cupertino.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:sail/constant/app_colors.dart'; +import 'package:sail/models/app_model.dart'; +import 'package:sail/models/plan_model.dart'; +import 'package:sail/models/user_model.dart'; +import 'package:sail/models/user_subscribe_model.dart'; +import 'package:sail/utils/l10n.dart'; +import 'package:sail/utils/navigator_util.dart'; +import 'package:sail/widgets/logo_bar.dart'; +import 'package:sail/widgets/my_subscribe.dart'; +import 'package:sail/widgets/plan_list.dart'; + +import '/routes/proRoute.dart'; +import '/routes/settingsRoute.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_svg/flutter_svg.dart'; +import 'package:provider/provider.dart'; +import 'package:url_launcher/url_launcher.dart'; + +import '../model/themeCollection.dart'; + +class AccountPage extends StatefulWidget { + const AccountPage({Key? key}) : super(key: key); + + @override + AccountState createState() => AccountState(); +} + +class AccountState extends State { + void onLogoutTap(context, _userModel) { + showDialog( + context: context, + builder: (BuildContext context) { + return CupertinoAlertDialog( + title: Text(context.l10n.alertsss), + content: Column( + children: [ + SizedBox( + height: 10, + ), + Align( + child: Text( + context.l10n.wanttoexit, + style: TextStyle(fontSize: 18), + ), + alignment: Alignment(0, 0), + ), + ], + ), + actions: [ + CupertinoDialogAction( + child: Text(context.l10n.cancelss), + onPressed: () { + Navigator.pop(context); + //print("取消"); + }, + ), + CupertinoDialogAction( + child: Text( + context.l10n.exitout, + style: TextStyle(color: Colors.red), + ), + onPressed: () { + //print("确定"); + _userModel.logout(); + NavigatorUtil.goLogin(context); + }, + ), + ], + ); + }); + } + + customListTile(BuildContext context, String title, String icon, + {Widget? trailing, + Icon? sysicon, + String? subtitle, + VoidCallback? onTap}) => + ListTile( + onTap: onTap ?? null, + minLeadingWidth: 35, + dense: true, + title: + Text(title, style: Theme.of(context).primaryTextTheme.subtitle1), + subtitle: subtitle != null + ? Text( + subtitle, + style: Theme.of(context).primaryTextTheme.caption, + ) + : null, + // leading: sysicon ?? + // SvgPicture.asset( + // icon, + // // color: Theme.of(context).colorScheme.secondary, + // width: 24, + // cacheColorFilter: true, + // color: AppColors.greenColor, + // alignment: Alignment.centerRight, + // ), + trailing: trailing ?? null); + + upgradeButton(context) => GestureDetector( + onTap: () => Navigator.of(context) + .push(MaterialPageRoute(builder: (builder) => const ProRoute())), + child: Container( + padding: const EdgeInsets.symmetric(vertical: 8, horizontal: 12), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(65), + gradient: const LinearGradient( + colors: [AppColors.greenColor, Color.fromARGB(255, 9, 54, 21)], + transform: GradientRotation(5))), + child: Text( + 'Upgrade', + style: Theme.of(context) + .primaryTextTheme + .bodyText1! + .copyWith(color: Colors.white), + ), + )); + + Divider get divider => Divider( + indent: 16, + endIndent: 16, + color: Colors.grey.withAlpha(50), + thickness: 1); + + Future _launchUrl(_url) async { + if (!await launchUrl(_url)) { + throw Exception('Could not launch $_url'); + } + } + + @override + Widget build(BuildContext context) { + bool isDarkTheme = Provider.of(context).isDarkActive; + return Scaffold( + appBar: AppBar( + shadowColor: Colors.transparent, + title: const Text('Settings'), + ), + body: build2(context), + ); + } + + Widget build2(BuildContext context) { + bool isDarkTheme = Provider.of(context).isDarkActive; + AppModel _appModel = Provider.of(context); + UserModel userModel = Provider.of(context); + PlanModel _planModel = Provider.of(context); + UserSubscribeModel _userSubscribeModel = + Provider.of(context); + + UserSubscribeModel userSubscribeModel = + Provider.of(context); + + return SingleChildScrollView( + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + // Padding( + // padding: EdgeInsets.only( + // left: ScreenUtil().setWidth(75), + // right: ScreenUtil().setWidth(75)), + // child: LogoBar( + // isOn: _appModel.isOn, + // ), + // ), + + // SvgPicture.asset( + // isDarkTheme + // ? 'assets/darkNoResults.svg' + // : 'assets/lightNoResults.svg', + // width: MediaQuery.of(context).size.width * 0.75, + // fit: BoxFit.cover, + // ), + Padding( + padding: EdgeInsets.only(top: ScreenUtil().setWidth(30)), + child: MySubscribe( + isLogin: userModel.isLogin, + isOn: _appModel.isOn, + userSubscribeEntity: _userSubscribeModel.userSubscribeEntity, + ), + ), + + // Padding( + // padding: EdgeInsets.only(top: ScreenUtil().setWidth(30)), + // child: PlanList( + // isOn: _appModel.isOn, + // userSubscribeEntity: _userSubscribeModel.userSubscribeEntity, + // plans: _planModel.planEntityList, + // ), + // ), + userModel.isLogin + ? Padding( + padding: EdgeInsets.only(left: ScreenUtil().setWidth(15))) + : Padding( + padding: const EdgeInsets.symmetric(vertical: 8.0), + child: Text( + 'Looks like You’re not signed in yet.', + style: Theme.of(context).primaryTextTheme.bodyText1, + ), + ), + + // style: ButtonStyle( + // backgroundColor: const Color(0xff353351), + // textColor: Colors.white, + // shape: RoundedRectangleBorder( + // borderRadius: BorderRadius.circular(64)), + // ), + // TextButton(onPressed: () {}, child: const Text('SIGN IN')), + userModel.isLogin + ? customListTile(context, 'User', 'assets/id.svg', + subtitle: userSubscribeModel?.userSubscribeEntity?.email ?? + context.l10n.welcome, + trailing: IconButton( + color: Theme.of(context).colorScheme.secondary, + onPressed: () { + onLogoutTap(context, userModel); + }, + icon: + Icon(Icons.exit_to_app, size: 30, color: Colors.red))) + : customListTile( + context, context.l10n.login, 'assets/profile.svg', + onTap: () => + //Navigator.of(context).push(MaterialPageRoute( + // builder: (builder) => const SettingsRoute())) + NavigatorUtil.goLogin(context)), + // divider, + // customListTile(context, 'Base Plan', 'assets/active.svg', + // trailing: upgradeButton(context)), + // // divider, + // customListTile( + // context, + // 'Restore', + // 'assets/history.svg', + // ), + divider, + customListTile(context, 'Settings', 'assets/settings.svg', + trailing: IconButton( + color: Theme.of(context).colorScheme.secondary, + onPressed: () {}, + icon: Icon(Icons.arrow_forward_ios, + size: 20, + color: isDarkTheme + ? Color.fromARGB(255, 148, 145, 145) + : Color.fromARGB(255, 190, 187, 187))), + onTap: () => Navigator.of(context).push(MaterialPageRoute( + builder: (builder) => const SettingsRoute()))), + divider, + Text("App Version: 1.0.6", + style: Theme.of(context).primaryTextTheme.subtitle1), + /*userModel.isLogin + ? GestureDetector( + onTap: () => { + // NavigatorUtil.goWebView(context, "Delete my account", + // "https://uuvpn.co/help/Help.php?userid=${userModel.userEntity?.email}") + + NavigatorUtil.goWebView(context, "Delete My Account", + "https://go.crisp.chat/chat/embed/?website_id=3ed83170-f288-4c23-acd4-30c1e557948b&user_email=${userModel.userEntity?.email}") + }, + child: Container( + alignment: Alignment.center, + height: kToolbarHeight - 10, + margin: const EdgeInsets.symmetric( + horizontal: 32.0, vertical: 8), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(65), + color: isDarkTheme + ? Color.fromARGB(255, 220, 66, 66) + : AppColors.greenColor), + child: Text( + 'Delete My Account', + style: Theme.of(context) + .primaryTextTheme + .headline6! + .copyWith( + color: isDarkTheme + ? AppColors.whiteColor + : Color.fromARGB(255, 9, 30, 4)), + ), + ), + ) + : SizedBox(),*/ + ], + ), + ); + } +} diff --git a/flutter/lib/pages/crisp_page.dart b/flutter/lib/pages/crisp_page.dart new file mode 100644 index 0000000..e119788 --- /dev/null +++ b/flutter/lib/pages/crisp_page.dart @@ -0,0 +1,33 @@ +import 'package:crisp/crisp.dart'; +import 'package:flutter/widgets.dart'; +import 'package:sail/constant/app_strings.dart'; + +class CrispPage extends StatefulWidget { + const CrispPage({Key? key}) : super(key: key); + + @override + CrispPageState createState() => CrispPageState(); +} + +class CrispPageState extends State { + late CrispMain crispMain; + + @override + void initState() { + super.initState(); + + crispMain = CrispMain( + websiteId: AppStrings.crispWebsiteId, + locale: 'zh-cn', + ); + } + + @override + Widget build(BuildContext context) { + return SafeArea( + child: CrispView( + crispMain: crispMain, + clearCache: false, + )); + } +} diff --git a/flutter/lib/pages/home/home_page.dart b/flutter/lib/pages/home/home_page.dart new file mode 100644 index 0000000..4c689df --- /dev/null +++ b/flutter/lib/pages/home/home_page.dart @@ -0,0 +1,412 @@ +import 'dart:async'; + +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:flutter_svg/svg.dart'; +import 'package:provider/provider.dart'; +import 'package:sail/constant/app_colors.dart'; +import 'package:sail/constant/app_dimens.dart'; +import 'package:sail/model/themeCollection.dart'; +import 'package:sail/models/app_model.dart'; +import 'package:sail/models/plan_model.dart'; +import 'package:sail/models/server_model.dart'; +import 'package:sail/models/user_model.dart'; +import 'package:sail/models/user_subscribe_model.dart'; +import 'package:sail/pages/accountPage.dart'; +import 'package:sail/pages/homePage.dart'; +import 'package:sail/pages/my_profile.dart'; +import 'package:sail/pages/plan/plan_page.dart'; +import 'package:sail/pages/proPage.dart'; +import 'package:sail/pages/server_list.dart'; +import 'package:sail/router/application.dart'; +import 'package:sail/routes/OnceNotice.dart'; +import 'package:sail/routes/proRoute.dart'; +import 'package:sail/utils/l10n.dart'; +import 'package:sail/utils/message_util.dart'; +import 'package:sail/utils/navigator_util.dart'; +import 'package:sail/widgets/ProgressView.dart'; +import 'package:sail/widgets/home_widget.dart'; +import 'package:sail/widgets/power_btn.dart'; +import 'package:sail/widgets/sail_app_bar.dart'; +import 'package:sail/utils/common_util.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:url_launcher/url_launcher.dart'; + +class HomePage extends StatefulWidget { + const HomePage({Key? key}) : super(key: key); + + @override + HomePageState createState() => HomePageState(); +} + +class HomePageState extends State with WidgetsBindingObserver { + late AppModel _appModel; + late ServerModel _serverModel; + late UserModel _userModel; + late UserSubscribeModel _userSubscribeModel; + late PlanModel _planModel; + bool _isLoadingData = false; + bool _initialStatus = false; + bool _isfinishedLoad = false; + late Timer _timer; + bool _isFirst = false; + + int currentPage = 0; + late List> _itemsList = const [ + { + 'name': 'Home', + 'iconPath': 'assets/home.svg', + 'icon': Icons.home_filled, + 'route': HomeWidget() + }, + { + 'name': 'Nodes', + 'iconPath': 'assets/logo2.svg', + 'icon': Icons.rocket_launch, + 'route': ServerListPage() + }, + { + 'name': 'Account', + 'iconPath': 'assets/profile.svg', + 'icon': Icons.person, + 'route': AccountPage() + } + ]; + + @override + void initState() { + super.initState(); + WidgetsBinding.instance.addObserver(this); + createTimer(); + + // /判断是不是第一次启动 + getFristBool(); + + Future.delayed(const Duration(seconds: 1), () { + //1秒后跳转到其他路由 + if (_isFirst) { + Navigator.of(context) + .push(MaterialPageRoute(builder: (builder) => const OnceNotice())); + } + }); + } + + void getFristBool() async { + SharedPreferences preferences = await SharedPreferences.getInstance(); + String key = "FristLaunchs"; + if (preferences.containsKey(key)) { + setState(() => _isFirst = preferences.getBool(key)!); + + preferences.setBool(key, false); + } else { + setState(() => _isFirst = true); + preferences.setBool(key, false); + } + } + + @override + void dispose() { + cancelTimer(); + WidgetsBinding.instance.removeObserver(this); + super.dispose(); + } + + void createTimer() { + _timer = Timer.periodic(const Duration(seconds: 1), (timer) { + _appModel.getStatus(); + }); + } + + void cancelTimer() { + _timer.cancel(); + } + + @override + void didChangeAppLifecycleState(AppLifecycleState state) { + print('state = $state'); + + if (state == AppLifecycleState.resumed) { + _planModel.fetchPlanList(); + // _appModel.getStatus(); + // print("_appModel.isOn: ${_appModel.isOn}"); + } + + if (state == AppLifecycleState.inactive) { + //激活状态 + } + } + + @override + void didChangeDependencies() async { + super.didChangeDependencies(); + + _appModel = Provider.of(context); + _userModel = Provider.of(context); + _userSubscribeModel = Provider.of(context); + _serverModel = Provider.of(context); + _planModel = Provider.of(context); + + if (_userModel.isLogin && !_isLoadingData) { + _isLoadingData = true; + await _userSubscribeModel.getUserSubscribe(); + await _serverModel.getServerList(forceRefresh: true); + await _serverModel.getSelectServer(); + _appModel.setConfigProxies(_userModel, _serverModel); + } + + if (!_initialStatus) { + _initialStatus = true; + _planModel.fetchPlanList(); + } + + if (_userModel.userEntity?.uuid != null) { + setState(() { + _isfinishedLoad = true; + }); + } + } + + sendEmail(recipient, subject, body) async { + final String url = 'mailto:$recipient?subject=$subject&body=$body'; + if (!await launchUrl(Uri.parse(url))) { + throw Exception('Could not launch $url'); + } + } + + @override + Widget build(BuildContext context) { + ScreenUtil.init(context, + designSize: const Size(AppDimens.maxWidth, AppDimens.maxHeight)); + + //是否第一次打开app + // Future.delayed(Duration(seconds: 3), () { + + // _showCupertinoAlertDialog( + // context: context, + // title: "提示", + // content: "您没有提交的权限,\n当前仅供查阅", + // sureText: "确定" + // ); + // }); + +// Provider.of(context) +// .getActiveTheme +// .primaryTextTheme +// .bodyLarge + bool isDarkTheme = Provider.of(context).isDarkActive; + + final ButtonStyle style = TextButton.styleFrom( + foregroundColor: Theme.of(context).colorScheme.onPrimary, + ); + + return Scaffold( + appBar: AppBar( + shadowColor: Colors.transparent, + title: SvgPicture.asset( + 'assets/text2.svg', + height: 28, + color: isDarkTheme ? Colors.white : Colors.black, + ), + actions: [ + IconButton( + icon: const Icon(Icons.support_agent), + tooltip: 'support_agent', + onPressed: () { + sendEmail("admin@uuvpn.co", "UUVPN Question Help", ""); + }, + ), + IconButton( + icon: const Icon(Icons.public), + tooltip: 'public', + onPressed: () { + if (_serverModel.serverEntityList.isEmpty) { + MessageUtil.toast(context.l10n.nodefornullcheckissubscripts); + } else { + NavigatorUtil.goServerList(context); + } + }, + ), + IconButton( + icon: const Icon(Icons.menu), + tooltip: 'menu', + onPressed: () { + NavigatorUtil.goSettings(context); + // setState(() { + + // }); + }, + ), + ], + ), + body: HomeWidget()); + + return Scaffold( + appBar: AppBar( + shadowColor: Colors.transparent, + title: currentPage == 2 + ? const Text('My Account') + : SvgPicture.asset( + 'assets/text2.svg', + height: 28, + color: isDarkTheme ? Colors.white : Colors.black, + ), + actions: currentPage == 0 ? null : null), +/*[ + Padding( + padding: const EdgeInsets.all(8.0), + child: GestureDetector( + onTap: () => Navigator.of(context).push( + MaterialPageRoute( + builder: (builder) => const ProRoute())), + child: SvgPicture.asset( + 'assets/Features.svg', + height: 20, + color: AppColors.greenColor, + ), + ), + ), + ] +Here Bottom Navigation Bar with some padding, margin, + little bit color & border decoration*/ + bottomNavigationBar: Container( + // margin: const EdgeInsets.only(left: 32, right: 32, bottom: 0), + padding: const EdgeInsets.only(top: 0.0), + decoration: BoxDecoration( + color: + const Color(0xff353351).withOpacity(isDarkTheme ? 0.3 : 0.05), + borderRadius: BorderRadius.circular(0)), + child: BottomNavigationBar( + enableFeedback: true, + backgroundColor: Colors.transparent, + elevation: 0, + showSelectedLabels: true, + showUnselectedLabels: true, + selectedLabelStyle: + TextStyle(color: isDarkTheme ? Colors.white : Colors.black), + selectedItemColor: Theme.of(context).primaryColor, + unselectedItemColor: isDarkTheme ? Colors.white : Colors.black, + currentIndex: currentPage, + onTap: (value) => setState(() { + currentPage = value; + }), + items: List.generate( + _itemsList.length, + (index) => BottomNavigationBarItem( + icon: Icon(_itemsList[index]['icon'] as IconData, + size: 30, + color: index != currentPage + ? const Color(0xffB5AEBE) + : Theme.of(context).primaryColor), + /*SvgPicture.asset( + _itemsList[index]['iconPath'] as String, + height: index != currentPage ? 20 : 24, + color: index != currentPage + ? const Color(0xffB5AEBE) + : Theme.of(context).primaryColor), +*/ + label: _itemsList[index]['name'] as String, + ))), + ), + body: _itemsList[currentPage]['route'] as Widget); + } +} + + + /* + Widget buildold(BuildContext context) { + bool isDarkTheme = Provider.of(context).isDarkActive; + + ScreenUtil.init(context, + designSize: const Size(AppDimens.maxWidth, AppDimens.maxHeight)); + + // if (!_isfinishedLoad) { + // return const ProgressView(); + // } + return Scaffold( + // appBar: SailAppBar( + // appTitle: _appModel.appTitle, + // ), + extendBody: true, + backgroundColor: + _appModel.isOn ? AppColors.greenColor : AppColors.grayColor, + body: SafeArea( + bottom: false, + child: HomeWidget(), + ), + ); + return AnnotatedRegion( + value: _appModel.isOn + ? SystemUiOverlayStyle.dark + : SystemUiOverlayStyle.light, + child: Scaffold( + appBar: SailAppBar( + appTitle: _appModel.appTitle, + ), + extendBody: true, + backgroundColor: + _appModel.isOn ? AppColors.greenColor : AppColors.grayColor, + body: SafeArea( + bottom: false, + child: PageView( + physics: const NeverScrollableScrollPhysics(), + controller: _appModel.pageController, + children: const [ + HomeWidget(), + PlanPage(), + ServerListPage(), + MyProfile() + ], + )), + floatingActionButtonLocation: + FloatingActionButtonLocation.centerDocked, + // floatingActionButton: const PowerButton(), + bottomNavigationBar: ClipRRect( + // borderRadius: BorderRadius.only( + // topLeft: Radius.circular(ScreenUtil().setWidth(50)), + // topRight: Radius.circular(ScreenUtil().setWidth(50))), + child: BottomAppBar( + // notchMargin: 8, + // shape: const CircularNotchedRectangle(), + color: + _appModel.isOn ? AppColors.grayColor : AppColors.themeColor, + child: Row( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: [ + IconButton( + icon: const Icon( + Icons.home_rounded, + color: Colors.white, + ), + onPressed: () => _appModel.jumpToPage(0), + ), + IconButton( + icon: const Icon( + Icons.wallet, + color: Colors.white, + ), + onPressed: () => _appModel.jumpToPage(1), + ), + // SizedBox( + // width: ScreenUtil().setWidth(50), + // ), + IconButton( + icon: const Icon( + Icons.cloud_rounded, + color: Colors.white, + ), + onPressed: () => _appModel.jumpToPage(2), + ), + IconButton( + icon: const Icon( + Icons.person, + color: Colors.white, + ), + onPressed: () => _appModel.jumpToPage(3), + ) + ], + ), + )))); + } +}*/ diff --git a/flutter/lib/pages/homePage.dart b/flutter/lib/pages/homePage.dart new file mode 100644 index 0000000..c49b71e --- /dev/null +++ b/flutter/lib/pages/homePage.dart @@ -0,0 +1,160 @@ +//ignore_for_file: file_names +import 'dart:math'; +import '/model/flags.dart'; + +import '../model/UserPreference.dart'; +import '../model/themeCollection.dart'; +import 'package:provider/provider.dart'; +import '/routes/chooseLocationRoute.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_svg/flutter_svg.dart'; + +class HomePagesss extends StatelessWidget { + const HomePagesss({Key? key}) : super(key: key); + + @override + Widget build(BuildContext context) { + bool isDarkTheme = Provider.of(context).isDarkActive; + int currentLocIndex = 0; + Widget netSpeed(IconData icon, Color color) => Row( + children: [ + Icon( + icon, + color: color, + ), + Builder(builder: (context) { + return RichText( + text: TextSpan( + style: TextStyle( + fontSize: 16, + color: isDarkTheme ? Colors.white : Colors.black), + text: + Provider.of(context).isCountDownStart + ? Random().nextInt(500).toString() + ' ' + : '___', + children: const [ + TextSpan(text: 'KB/S', style: TextStyle(fontSize: 12)) + ])); + }) + ], + ); + return Column(mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ + Padding( + padding: const EdgeInsets.all(8.0), + child: Card( + elevation: 6, + color: + isDarkTheme ? const Color(0xff181227) : const Color(0xffF5F5F6), + shape: + RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)), + child: Builder(builder: (context) { + currentLocIndex = + Provider.of(context).locationIndex; + return ListTile( + leading: SvgPicture.asset( + 'assets/flags/${Flags.list[currentLocIndex]['imagePath']}', + width: 42, + alignment: Alignment.center, + ), + trailing: SizedBox( + width: 80, + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.end, + children: [ + const Icon( + Icons.signal_cellular_alt_rounded, + color: Colors.white, + ), + IconButton( + icon: Icon( + Icons.navigate_next_outlined, + color: Theme.of(context).iconTheme.color, + ), + onPressed: () => Navigator.of(context).push( + MaterialPageRoute( + builder: (builder) => + const ChooseLocationRoute()))), + ], + ), + ), + title: Text( + Flags.list[currentLocIndex]['name'] as String, + overflow: TextOverflow.ellipsis, + maxLines: 1, + style: Theme.of(context).primaryTextTheme.headline6, + ), + subtitle: Text('IP: 79.110.53.95', + style: Theme.of(context).primaryTextTheme.caption), + ); + }), + ), + ), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 32.0, vertical: 16), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + netSpeed( + Icons.south_rounded, + Theme.of(context).primaryColor, + ), + netSpeed( + Icons.north_rounded, + Theme.of(context).primaryColor, + ), + ], + ), + ), + SvgPicture.asset( + 'assets/map.svg', + width: MediaQuery.of(context).size.width, + color: isDarkTheme ? const Color(0xff38323F) : const Color(0xffC7B4E3), + fit: BoxFit.cover, + ), + Builder(builder: (_context) { + var countDown = Provider.of(_context); + return GestureDetector( + onTap: () => Provider.of(context, listen: false) + .countDownSwitch, + child: Card( + elevation: 6, + color: + isDarkTheme ? const Color(0xff181227) : const Color(0xffF5F5F6), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(100)), + child: SizedBox.square( + dimension: 75 * 2, + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + SvgPicture.asset( + countDown.isCountDownStart + ? 'assets/stop.svg' + : 'assets/powOn.svg', + width: countDown.isCountDownStart ? 35 : 50, + color: countDown.isCountDownStart + ? Colors.redAccent.shade200 + : Theme.of(context).colorScheme.secondary, + ), + Padding( + padding: const EdgeInsets.only(top: 8.0), + child: Text( + countDown.isCountDownStart + ? '${countDown.duration.inHours} : ${countDown.duration.inMinutes % 60} : ${countDown.duration.inSeconds % 60}' + : 'Start', + style: TextStyle( + fontSize: 14, + color: Theme.of(context).colorScheme.secondary, + ), + ), + ) + ]), + ), + ), + ); + }) + ]); + } +} diff --git a/flutter/lib/pages/login/login_page.dart b/flutter/lib/pages/login/login_page.dart new file mode 100644 index 0000000..eaeb316 --- /dev/null +++ b/flutter/lib/pages/login/login_page.dart @@ -0,0 +1,125 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_login/flutter_login.dart'; +import 'package:flutter_svg/flutter_svg.dart'; +import 'package:provider/provider.dart'; +import 'package:sail/model/themeCollection.dart'; +import 'package:sail/models/login_model.dart'; +import 'package:sail/models/user_model.dart'; +import 'package:sail/router/application.dart'; +import 'package:sail/service/user_service.dart'; +import 'package:sail/utils/l10n.dart'; +import 'package:sail/utils/navigator_util.dart'; +import 'package:sail/constant/app_strings.dart'; + +class LoginPage extends StatefulWidget { + const LoginPage({Key? key}) : super(key: key); + + @override + LoginPageState createState() => LoginPageState(); +} + +class LoginPageState extends State { + Duration get loginTime => const Duration(milliseconds: 2250); + + late UserModel _userModel; + late LoginModel _loginModel; + + static String? _emailValidator(value) { + if (value.isEmpty || + !RegExp(r'^[^\s@]+@[^\s@]+\.[^\s@]+$').hasMatch(value)) { + return Application.navigatorKey.currentState?.context.l10n.pleaseenter; + } + + return null; + } + + static String? _passwordValidator(String? value) { + if (value?.isEmpty == true) { + return Application.navigatorKey.currentState?.context.l10n.passwordcan; + } + if (value?.length == null || value!.length < 6) { + return Application.navigatorKey.currentState?.context.l10n.passwordcannot; + } + return null; + } + + Future _login(LoginData data) async { + String? result; + + try { + await _loginModel.login(data.name, data.password); + } catch (error) { + result = Application.navigatorKey.currentState?.context.l10n.loginfailed; + } + + return result; + } + + Future _register(SignupData data) async { + String? result; + + try { + await UserService() + .register({'email': data.name, 'password': data.password}); + + await _loginModel.login(data.name, data.password); + } catch (error) { + result = Application + .navigatorKey.currentState?.context.l10n.registrationfailed; + } + + return result; + } + + Future _recoverPassword(String name) { + return Future.delayed(loginTime).then((_) { + return null; + }); + } + + @override + Widget build(BuildContext context) { + _userModel = Provider.of(context); + _loginModel = LoginModel(_userModel); + bool isDarkTheme = Provider.of(context).isDarkActive; + return FlutterLogin( + // title: AppStrings.appName, + theme: LoginTheme( + pageColorLight: Color.fromARGB(255, 28, 57, 15), + pageColorDark: const Color.fromARGB(255, 33, 107, 35)), + logo: AssetImage('assets/logo2.png'), + onLogin: _login, + onSignup: _register, + messages: LoginMessages( + userHint: Application.navigatorKey.currentState!.context.l10n.mail, + passwordHint: + Application.navigatorKey.currentState!.context.l10n.password, + confirmPasswordHint: Application + .navigatorKey.currentState!.context.l10n.confirmpassword, + confirmPasswordError: + Application.navigatorKey.currentState!.context.l10n.twopasswords, + forgotPasswordButton: Application + .navigatorKey.currentState!.context.l10n.forgetthepassword, + loginButton: + Application.navigatorKey.currentState!.context.l10n.login, + signupButton: + Application.navigatorKey.currentState!.context.l10n.register, + recoverPasswordIntro: + Application.navigatorKey.currentState!.context.l10n.resetpassword, + recoverPasswordButton: + Application.navigatorKey.currentState!.context.l10n.sure, + recoverPasswordDescription: + Application.navigatorKey.currentState!.context.l10n.thesystemwill, + recoverPasswordSuccess: Application + .navigatorKey.currentState!.context.l10n.sentsuccessfully, + goBackButton: + Application.navigatorKey.currentState!.context.l10n.returnstring), + onSubmitAnimationCompleted: () { + NavigatorUtil.goHomePage(context); + }, + onRecoverPassword: _recoverPassword, + userValidator: _emailValidator, + passwordValidator: _passwordValidator, + ); + } +} diff --git a/flutter/lib/pages/my_profile.dart b/flutter/lib/pages/my_profile.dart new file mode 100644 index 0000000..41b626c --- /dev/null +++ b/flutter/lib/pages/my_profile.dart @@ -0,0 +1,289 @@ +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:provider/provider.dart'; +import 'package:sail/models/user_model.dart'; +import 'package:sail/service/user_service.dart'; +import 'package:sail/utils/l10n.dart'; +import 'package:sail/utils/navigator_util.dart'; +import 'package:sail/widgets/bottom_block.dart'; +import 'package:sail/widgets/profile_widget.dart'; + +class MyProfile extends StatefulWidget { + const MyProfile({Key? key}) : super(key: key); + + @override + MyProfileState createState() => MyProfileState(); +} + +class MyProfileState extends State { + late UserModel _userModel; + + @override + void didChangeDependencies() { + super.didChangeDependencies(); + _userModel = Provider.of(context); + } + + void onLogoutTap() { + showDialog( + context: context, + builder: (BuildContext context) { + return CupertinoAlertDialog( + title: Text(context.l10n.alertsss), + content: Column( + children: [ + SizedBox( + height: 10, + ), + Align( + child: Text( + context.l10n.wanttoexit, + style: TextStyle(fontSize: 18), + ), + alignment: Alignment(0, 0), + ), + ], + ), + actions: [ + CupertinoDialogAction( + child: Text(context.l10n.cancelss), + onPressed: () { + Navigator.pop(context); + //print("取消"); + }, + ), + CupertinoDialogAction( + child: Text( + context.l10n.exitout, + style: TextStyle(color: Colors.red), + ), + onPressed: () { + //print("确定"); + _userModel.logout(); + NavigatorUtil.goLogin(context); + }, + ), + ], + ); + }); + } + + void onWebLinkTap(String name, String link) => _userModel.checkHasLogin( + context, + () => UserService().getQuickLoginUrl({'redirect': link})?.then((value) { + NavigatorUtil.goWebView(context, name, value); + })); + + @override + Widget build(BuildContext context) { + return Scrollbar( + child: SingleChildScrollView( + child: Column( + children: [ + Container( + padding: EdgeInsets.only( + right: ScreenUtil().setWidth(32), + left: ScreenUtil().setWidth(32), + top: ScreenUtil().setHeight(32), + bottom: ScreenUtil().setHeight(32)), + child: Material( + borderRadius: BorderRadius.circular(16), + child: Padding( + padding: const EdgeInsets.only(top: 24, bottom: 24), + child: Column( + children: [ + ProfileWidget( + avatar: _userModel.userEntity?.avatarUrl, + userName: _userModel.userEntity?.email ?? "欢迎光临", + onTap: onLogoutTap, + ), + Container( + padding: const EdgeInsets.only(top: 24, bottom: 24), + child: Container( + decoration: BoxDecoration( + border: Border( + bottom: BorderSide(color: Colors.grey[300]!)), + ), + ), + ), + FinanceWidget(onWebLinkTap: onWebLinkTap), + Container( + padding: const EdgeInsets.only(top: 24, bottom: 24), + child: Container( + decoration: BoxDecoration( + border: Border( + bottom: BorderSide(color: Colors.grey[300]!)), + ), + ), + ), + AccountWidget(onWebLinkTap: onWebLinkTap), + ], + ), + ), + ), + ), + const BottomBlock(), + ], + ), + )); + } +} + +class AccountWidget extends StatelessWidget { + const AccountWidget({Key? key, required this.onWebLinkTap}) : super(key: key); + + final dynamic onWebLinkTap; + + @override + Widget build(BuildContext context) { + return Container( + padding: const EdgeInsets.only(left: 24, right: 24), + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Container( + padding: const EdgeInsets.only(bottom: 16), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: const [ + Text( + "账户", + style: TextStyle( + color: Color(0xFFADADAD), + fontSize: 20, + fontWeight: FontWeight.w400, + ), + ), + ], + ), + ), + Container( + padding: const EdgeInsets.only(bottom: 16), + child: InkWell( + onTap: () => onWebLinkTap("个人中心", '/profile'), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: const [ + Text( + "🙍 个人中心", + style: TextStyle( + fontSize: 18, + ), + ), + Icon(Icons.arrow_forward_ios, size: 16), + ], + ), + ), + ), + Container( + padding: const EdgeInsets.only(bottom: 16), + child: InkWell( + onTap: () => onWebLinkTap("我的工单", "/ticket"), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: const [ + Text( + "🎫 我的工单", + style: TextStyle( + fontSize: 18, + ), + ), + Icon(Icons.arrow_forward_ios, size: 16), + ], + ), + ), + ), + Container( + padding: const EdgeInsets.only(bottom: 16), + child: InkWell( + onTap: () => onWebLinkTap("流量明细", "traffic"), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: const [ + Text( + "🔖 流量明细", + style: TextStyle( + fontSize: 18, + ), + ), + Icon(Icons.arrow_forward_ios, size: 16), + ], + ), + ), + ), + ], + ), + ); + } +} + +class FinanceWidget extends StatelessWidget { + const FinanceWidget({Key? key, required this.onWebLinkTap}) : super(key: key); + + final dynamic onWebLinkTap; + + @override + Widget build(BuildContext context) { + return Container( + padding: const EdgeInsets.only(left: 24, right: 24), + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Container( + padding: const EdgeInsets.only(bottom: 16), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: const [ + Text( + "财务", + style: TextStyle( + color: Color(0xFFADADAD), + fontSize: 20, + fontWeight: FontWeight.w400, + ), + ), + ], + ), + ), + Container( + padding: const EdgeInsets.only(bottom: 16), + child: InkWell( + onTap: () => onWebLinkTap("我的订单", "/order"), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: const [ + Text( + "💳 我的订单", + style: TextStyle( + fontSize: 18, + ), + ), + Icon(Icons.arrow_forward_ios, size: 16), + ], + ), + ), + ), + Container( + padding: const EdgeInsets.only(bottom: 16), + child: InkWell( + onTap: () => onWebLinkTap("我的邀请", "/invite"), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: const [ + Text( + "🫲 我的邀请", + style: TextStyle( + fontSize: 18, + ), + ), + Icon(Icons.arrow_forward_ios, size: 16), + ], + ), + ), + ) + ], + ), + ); + } +} diff --git a/flutter/lib/pages/plan/plan_page.dart b/flutter/lib/pages/plan/plan_page.dart new file mode 100644 index 0000000..1ebc914 --- /dev/null +++ b/flutter/lib/pages/plan/plan_page.dart @@ -0,0 +1,17 @@ +import 'package:sail/widgets/sliding_cards.dart'; +import 'package:flutter/material.dart'; + +class PlanPage extends StatelessWidget { + const PlanPage({Key? key}) : super(key: key); + + @override + Widget build(BuildContext context) { + return Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: const [ + SlidingCardsView(), + ], + ); + } +} diff --git a/flutter/lib/pages/proPage.dart b/flutter/lib/pages/proPage.dart new file mode 100644 index 0000000..f9846e1 --- /dev/null +++ b/flutter/lib/pages/proPage.dart @@ -0,0 +1,227 @@ +//ignore_for_file: file_names +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:sail/constant/app_colors.dart'; +import 'package:sail/router/application.dart'; +import 'package:sail/utils/l10n.dart'; + +import '/model/themeCollection.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_svg/flutter_svg.dart'; +import 'package:provider/provider.dart'; + +class ProPage extends StatelessWidget { + const ProPage({Key? key}) : super(key: key); + + @override + Widget build(BuildContext context) { + List> _list = [ + { + 'svg': '1', + 'title': 'Anonymous', + 'icon': 'assets/fi-sr-incognito.svg', + 'icon2': Icons.groups_3, + 'description': 'Hide your ip with anonymous surfing' + }, + { + 'svg': '1', + 'title': 'Fast Safe', + 'icon': 'assets/fi-sr-rocket.svg', + 'icon2': Icons.rocket_launch, + 'description': 'Up to >=1 Mb/s bandwidth to explore' + }, + { + 'svg': '1', + 'title': 'No Ads', + 'icon': 'assets/fi-sr-add.svg', + 'icon2': Icons.no_adult_content, + 'description': 'App without annoying ads' + }, + { + 'svg': '0', + 'title': 'All Free', + 'icon2': Icons.sentiment_very_satisfied, + 'description': 'Really free, no kidding' + }, + { + 'svg': '0', + 'title': 'Quit Anytime', + 'icon2': Icons.delete_forever, + 'description': 'Server does not record any user data' + } + ]; + bool isDarkTheme = Provider.of(context).isDarkActive; + return Center( + child: ListView( + // shrinkWrap: true, + children: [ + // SvgPicture.asset( + // 'assets/logo.svg', + // cacheColorFilter: true, + // color: AppColors.greenColor, + // ), + // const SizedBox(height: 12), + + RichText( + textAlign: TextAlign.center, + text: TextSpan( + text: 'Free ', + style: TextStyle( + fontFamily: 'Aquire', + color: isDarkTheme ? Colors.white : Colors.black, + fontSize: 24), + children: const [ + TextSpan( + text: 'Features', + style: TextStyle( + fontFamily: 'Roboto', fontWeight: FontWeight.w500)) + ])), + const SizedBox(height: 32), + + /**childAspectRatio: 16 / 10, + crossAxisCount: 2, + mainAxisSpacing: 8, + crossAxisSpacing: 14), */ + GridView( + padding: + const EdgeInsets.symmetric(horizontal: 32.0, vertical: 16.0), + shrinkWrap: true, + physics: const NeverScrollableScrollPhysics(), + gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount( + childAspectRatio: 16 / 4, + crossAxisCount: 1, + mainAxisSpacing: 8, + crossAxisSpacing: 14), + children: List.generate( + _list.length, + (index) => Column( + children: [ + Row( + children: [ + Icon(_list[index]['icon2'] as IconData, + size: 30, color: AppColors.greenColor), + const SizedBox(width: 8.0), + Text( + _list[index]['title'] as String, + style: TextStyle( + color: AppColors.greenColor, fontSize: 24), + ) + ], + ), + const SizedBox(height: 8.0), + Row( + children: [ + // Icon(_list[index]['icon2'] as IconData, + // size: 30, color: AppColors.greenColor), + const SizedBox(width: 40.0), + Container( + width: ScreenUtil().screenWidth / 1.5, + child: Text( + _list[index]['description'] as String, + overflow: TextOverflow.visible, + textDirection: TextDirection.ltr, + softWrap: true, + textAlign: TextAlign.left, + style: TextStyle( + fontFamily: 'Aquire', + // backgroundColor: AppColors.yellowColor, + color: isDarkTheme + ? Colors.white + : Colors.black, + fontSize: 20)), + ) + ], + ), + ], + ))), + // decoratedButton(context, '1 MONTH', '1.99', '\$/month', false), + // decoratedButton(context, '1 YEAR', '0.99', '\$/month', true), + // GestureDetector( + // onTap: () => Application.showMsg(context, + // "Notable features of UU: \n\n* No credit card required\n\n* You can try premium features for free for 7 days\n\n* Do not keep any user logs\n\n* Simple, one-click connection VPN\n\n* Automatically connects you to the fastest VPN server"), + // child: Container( + // alignment: Alignment.center, + // height: kToolbarHeight, + // margin: const EdgeInsets.symmetric(horizontal: 32.0, vertical: 8), + // decoration: BoxDecoration( + // borderRadius: BorderRadius.circular(65), + // color: isDarkTheme + // ? AppColors.greenColor + // : AppColors.greenColor), + // child: Text( + // 'FOREVER FOR FREE', + // style: Theme.of(context).primaryTextTheme.headline6!.copyWith( + // color: isDarkTheme + // ? AppColors.whiteColor + // : Color.fromARGB(255, 9, 30, 4)), + // ), + // ), + // ), + Text( + 'Please rest assured to use.', + textAlign: TextAlign.center, + style: Theme.of(context).primaryTextTheme.caption, + ), + ], + ), + ); + } + + Container decoratedButton(BuildContext context, String lt, String rt_1, + String rt_2, bool isDiscount) { + return Container( + height: kToolbarHeight, + margin: const EdgeInsets.symmetric(horizontal: 32.0, vertical: 8), + padding: const EdgeInsets.symmetric(horizontal: 24.0), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(65), + gradient: const LinearGradient( + colors: [AppColors.greenColor, Color.fromARGB(255, 7, 52, 7)], + transform: GradientRotation(5))), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + children: [ + Text( + lt, + style: Theme.of(context) + .primaryTextTheme + .headline6! + .copyWith(color: Colors.white), + ), + if (isDiscount) + Container( + margin: const EdgeInsets.all(4.0), + padding: const EdgeInsets.symmetric( + horizontal: 6.0, vertical: 2.0), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(15)), + child: const Text( + '50% OFF', + style: TextStyle(fontSize: 10, color: Colors.black), + ), + ), + ], + ), + RichText( + text: TextSpan( + text: rt_1, + style: Theme.of(context) + .primaryTextTheme + .headline6! + .copyWith(color: Colors.white), + children: [ + TextSpan( + text: ' $rt_2', + style: Theme.of(context) + .primaryTextTheme + .bodyText1! + .copyWith(color: Colors.white), + ) + ])), + ], + ), + ); + } +} diff --git a/flutter/lib/pages/server_list.dart b/flutter/lib/pages/server_list.dart new file mode 100644 index 0000000..48c5f37 --- /dev/null +++ b/flutter/lib/pages/server_list.dart @@ -0,0 +1,307 @@ +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:flutter_svg/flutter_svg.dart'; +import 'package:modal_bottom_sheet/modal_bottom_sheet.dart'; +import 'package:provider/provider.dart'; +import 'package:sail/constant/app_colors.dart'; +import 'package:sail/model/themeCollection.dart'; +import 'package:sail/models/app_model.dart'; +import 'package:sail/models/server_model.dart'; +import 'package:flutter/material.dart'; +import 'package:sail/utils/common_util.dart'; +import 'package:sail/utils/l10n.dart'; + +class ServerListPage extends StatefulWidget { + const ServerListPage({Key? key}) : super(key: key); + + @override + ServerListPageState createState() => ServerListPageState(); +} + +class ServerListPageState extends State + with AutomaticKeepAliveClientMixin { + @override + bool get wantKeepAlive => true; + + late AppModel _appModel; + late ServerModel _serverModel; + + @override + void didChangeDependencies() async { + super.didChangeDependencies(); + + _appModel = Provider.of(context); + _serverModel = Provider.of(context); + } + + @override + Widget build(BuildContext context) { + super.build(context); + + return Material( + color: Colors.transparent, + child: Container( + padding: EdgeInsets.all(ScreenUtil().setWidth(40)), + child: _contentWidget(), + ), + ); + } + + Widget _contentWidget() { + if (_serverModel.serverEntityList.isEmpty) { + return _emptyWidget(); + } + + return _serversContainerWidget(); + } + + Widget _emptyWidget() { + return Center( + child: Container( + width: ScreenUtil().setWidth(1080), + height: ScreenUtil().setWidth(200), + padding: EdgeInsets.symmetric( + horizontal: ScreenUtil().setWidth(75), + vertical: ScreenUtil().setWidth(0)), + child: Material( + elevation: _appModel.isOn ? 3 : 0, + borderRadius: BorderRadius.circular(ScreenUtil().setWidth(30)), + color: _appModel.isOn ? Colors.white : AppColors.darkSurfaceColor, + child: Container( + alignment: Alignment.center, + child: Text( + context.l10n.nodefornullcheckissubscripts, + style: TextStyle( + fontWeight: FontWeight.bold, + fontSize: ScreenUtil().setWidth(40), + color: _appModel.isOn ? Colors.black : Colors.white), + ), + ), + ), + ), + ); + } + + Widget _serversContainerWidget() { + bool isDarkTheme = Provider.of(context).isDarkActive; + + return Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + RichText( + text: TextSpan( + text: context.l10n.xuanzeliahjiedian, + style: Theme.of(context).textTheme.titleSmall?.copyWith( + fontWeight: FontWeight.w700, + color: _appModel.isOn + ? isDarkTheme + ? Colors.white + : Colors.black + : isDarkTheme + ? Colors.white + : Colors.black), + children: [ + TextSpan( + text: '', + style: Theme.of(context).textTheme.titleSmall?.copyWith( + fontWeight: FontWeight.normal, + color: _appModel.isOn + ? AppColors.grayColor + : Colors.black)) + ])), + InkWell( + onTap: _serverModel.pingAll, + child: Text(context.l10n.pingallnodes, + style: Theme.of(context).textTheme.titleSmall?.copyWith( + fontWeight: FontWeight.normal, + color: _appModel.isOn + ? AppColors.greenColor + : Colors.green)), + ) + ], + ), + const SizedBox( + height: 20, + ), + Expanded( + child: _serverListWidget(), + ) + ], + ); + } + + Widget _tagsWidget(List? tags) { + if (tags == null || tags.isEmpty) { + return Container(); + } + + for (var i = 0; i < tags.length; i++) { + tags[i] = tags[i].replaceAll(' ', ''); + if (tags[i].isEmpty) { + tags.removeAt(i); + } + } + + var tagsWidget = tags + .map((tag) => Chip( + backgroundColor: AppColors.themeColor, + padding: const EdgeInsets.all(5), + label: Text( + tag, + style: const TextStyle( + color: Colors.black87, + fontSize: 12, + ), + ))) + .toList(); + + return Row( + children: tagsWidget, + ); + } + + Widget _serverListWidget() { + return ListView.separated( + controller: ModalScrollController.of(context), + physics: const ClampingScrollPhysics(), + itemCount: _serverModel.serverEntityList.length, + itemBuilder: (_, index) => InkWell( + onTap: () { + _serverModel + .setSelectServerEntity(_serverModel.serverEntityList[index]); + _serverModel.setSelectServerIndex(index); + _appModel.setConfigRule(_serverModel.serverEntityList[index].name); + }, + child: Material( + borderRadius: BorderRadius.circular(10), + + color: Colors.grey.withAlpha(60), + // color: _serverModel.selectServerIndex == index + // ? Theme.of(context).highlightColor + // : Theme.of(context).cardColor, + child: Padding( + padding: const EdgeInsets.all(15.0), + child: Row( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Wrap( + crossAxisAlignment: WrapCrossAlignment.center, + children: [ + SizedBox( + width: ScreenUtil().setWidth(10), + ), + CircleAvatar( + radius: ScreenUtil().setWidth(10), + backgroundColor: + (DateTime.now().microsecondsSinceEpoch / 1000000 - + (int.tryParse(_serverModel + .serverEntityList[index] + .lastCheckAt) ?? + 0) < + 60 * 10) + ? Colors.green + : Colors.red, + ), + const SizedBox( + width: 15, + ), + _serverModel.serverEntityList[index].name.contains("US-") + ? SvgPicture.asset( + 'assets/flags/us.svg', + height: 20, + ) + : (_serverModel.serverEntityList[index].name + .contains("Taiwan") + ? SvgPicture.asset( + 'assets/flags/tw.svg', + height: 20, + ) + : _serverModel.serverEntityList[index].name + .contains("Hongkong") + ? SvgPicture.asset( + 'assets/flags/hk.svg', + height: 20, + ) + : _serverModel.serverEntityList[index].name + .contains("Japan") + ? SvgPicture.asset( + 'assets/flags/jp.svg', + height: 20, + ) + : SizedBox()), + const SizedBox( + width: 15, + ), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + _serverModel.serverEntityList[index].name, + style: Provider.of(context) + .getActiveTheme + .primaryTextTheme + .bodyLarge, + ), + const SizedBox( + width: 15, + ), + _tagsWidget(_serverModel.serverEntityList[index].tags), + ], + ) + ], + ), + Row( + children: [ + _serverModel.serverEntityList[index].ping != null + ? Container( + padding: EdgeInsets.only( + right: ScreenUtil().setWidth(10)), + child: Text( + _serverModel.serverEntityList[index].ping! + .inSeconds > + 10 + ? context.l10n.timeout + : "${_serverModel.serverEntityList[index].ping!.inMilliseconds}ms", + style: TextStyle( + color: _serverModel.serverEntityList[index] + .ping!.inSeconds > + 10 + ? Colors.red + : Colors.green), + ), + ) + : Container(), + InkWell( + borderRadius: + BorderRadius.circular(ScreenUtil().setWidth(30)), + onTap: () => _serverModel.ping(index), + child: Container( + padding: EdgeInsets.symmetric( + vertical: ScreenUtil().setWidth(10), + horizontal: ScreenUtil().setWidth(30)), + child: Text( + 'ping', + style: TextStyle( + color: Colors.green[800], + fontWeight: FontWeight.w500), + )), + ), + _serverModel.selectServerIndex == index + ? Icon(Icons.check_circle, + color: Colors.green, size: 20) + : Container(), + ], + ) + ], + ), + ), + ), + ), + separatorBuilder: (_, index) => const SizedBox(height: 10), + ); + } +} diff --git a/flutter/lib/pages/webview_widget.dart b/flutter/lib/pages/webview_widget.dart new file mode 100644 index 0000000..da19e6d --- /dev/null +++ b/flutter/lib/pages/webview_widget.dart @@ -0,0 +1,50 @@ +import 'package:flutter/material.dart'; +import 'package:sail/constant/app_strings.dart'; +import 'package:webview_flutter/webview_flutter.dart'; + +class WebViewWidget extends StatefulWidget { + final String? url; + final String? name; + + const WebViewWidget({Key? key, this.url, this.name}) : super(key: key); + + @override + WebViewWidgetState createState() => WebViewWidgetState(); +} + +class WebViewWidgetState extends State { + late WebViewController controller; + + final String _javaScript = ''' + const styles = ` + #page-header { + display: none; + } + #main-container { + padding-top: 0 !important; + } + ` + const styleSheet = document.createElement("style") + styleSheet.innerText = styles + document.head.appendChild(styleSheet) + '''; + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: Text(widget.name!), + centerTitle: true, + ), + body: WebView( + initialUrl: widget.url?.isEmpty == true ? AppStrings.appName : widget.url, + javascriptMode: JavascriptMode.unrestricted, + onWebViewCreated: (controller) => this.controller = controller, + onPageFinished: (url) { + print('url=$url'); + controller.runJavascript(_javaScript); + }, + ), + ); + } +} diff --git a/flutter/lib/resources/app_colors.dart b/flutter/lib/resources/app_colors.dart new file mode 100644 index 0000000..120db52 --- /dev/null +++ b/flutter/lib/resources/app_colors.dart @@ -0,0 +1,91 @@ +import 'package:flutter/material.dart'; + +class AppColors { + static const primary = Color(0xffef233c); + static const secondary = Color(0xff272b30); + static const primaryBackground = Color(0xff1a1d1f); + static const secondaryBackground = Color(0xff272b30); + static const primaryText = Color(0xffa9aaac); + static const secondaryText = Colors.white; + static const primaryBtnText = Colors.white; + static const error = Colors.red; + static const black = Colors.black; + static const inactiveColor = Color(0x26ffffff); + static const transparent = Colors.transparent; + static const ratingIconColor = Color(0xffffbe21); + static const circleDotColor = Color(0x33ffffff); + static const iconContainerColor = Color(0xB2272830); + static const gradient = LinearGradient( + begin: Alignment.topLeft, + end: Alignment.bottomRight, + colors: [ + Color.fromARGB(26, 252, 252, 252), + Color.fromARGB(0, 255, 255, 255), + ]); + + static const primarySwatch = MaterialColor( + 0xFF15141F, + { + 50: Color(0xFFE3F2FD), + 100: Color(0xFFBBDEFB), + 200: Color(0xFF90CAF9), + 300: Color(0xFF64B5F6), + 400: Color(0xFF42A5F5), + 500: primaryColor, + 600: Color(0xFF1E88E5), + 700: Color(0xFF1976D2), + 800: Color(0xFF1565C0), + 900: Color(0xFF0D47A1), + }, + ); + + static const darkPrimarySwatch = MaterialColor( + 0xFF15141F, + { + 50: Color(0xFFE3F2FD), + 100: Color(0xFFBBDEFB), + 200: Color(0xFF90CAF9), + 300: Color(0xFF64B5F6), + 400: Color(0xFF42A5F5), + 500: darkPrimaryColor, + 600: Color(0xFF1E88E5), + 700: Color(0xFF1976D2), + 800: Color(0xFF1565C0), + 900: Color(0xFF0D47A1), + }, + ); + + /// Colors For the Light Theme + static const backgroundColor = Color(0xFFFFFFFF); + static const onBackgroundColor = Color(0xFF15141F); + static const primaryColor = Color(0xFFFFFFFF); + static const onPrimaryColor = Color(0xFF15141F); + static const secondaryColor = Color(0xFFE21221); + static const onSecondaryColor = Color(0xFFFFFFFF); + static const surfaceColor = Color(0xFFFFFFFF); + static const onSurfaceColor = Color(0xFF15141F); + static const errorColor = Color(0xFFF44336); + static const onErrorColor = Color(0xFFFFFFFF); + static const highEmphasized = Color(0xFFFFFFFF); + static const mediumEmphasized = Color(0xFFBCBCBC); + + /// Colors For The dark theme + static const darkBackgroundColor = Color(0xFF15141F); + static const darkOnBackgroundColor = Color(0xFFFFFFFF); + static const darkPrimaryColor = Color(0xFF15141F); + static const darkOnPrimaryColor = Color(0xFFFFFFFF); + static const darkSecondaryColor = Color(0xFFE21221); + static const darkOnSecondaryColor = Color(0xFFFF8F71); + static const darkSurfaceColor = Color(0xFF211F30); + static const darkOnSurfaceColor = Color(0xFF211F30); + static const darkErrorColor = Color(0xFFF44336); + static const darkOnErrorColor = Color(0xFFFFFFFF); + static const darkHighEmphasized = Color(0xFFFFFFFF); + static const darkMediumEmphasized = Color(0xFFBCBCBC); +} + +const appBgColor = Color(0xFF000000); +const primary = Color(0xFFFC2D55); +const secondary = Color(0xFF19D5F1); +const white = Color(0xFFFFFFFF); +const black = Color(0xFF000000); diff --git a/flutter/lib/resources/app_constants.dart b/flutter/lib/resources/app_constants.dart new file mode 100644 index 0000000..59343ed --- /dev/null +++ b/flutter/lib/resources/app_constants.dart @@ -0,0 +1,3 @@ +class AppConstants { + static const int carouselSliderItemsCount = 4; +} diff --git a/flutter/lib/resources/app_router.dart b/flutter/lib/resources/app_router.dart new file mode 100644 index 0000000..995ea85 --- /dev/null +++ b/flutter/lib/resources/app_router.dart @@ -0,0 +1,117 @@ +import 'package:flutter/cupertino.dart'; +// import 'package:go_router/go_router.dart'; +// import 'package:movies_app/core/presentation/pages/main_page.dart'; +// import 'package:movies_app/movies/presentation/views/movie_details_view.dart'; +// import 'package:movies_app/movies/presentation/views/movies_view.dart'; +// import 'package:movies_app/movies/presentation/views/popular_movies_view.dart'; +// import 'package:movies_app/movies/presentation/views/top_rated_movies_view.dart'; +// import 'package:movies_app/search/presentation/views/search_view.dart'; +// import 'package:movies_app/tv_shows/presentation/views/popular_tv_shows_view.dart'; +// import 'package:movies_app/tv_shows/presentation/views/top_rated_tv_shows_view.dart'; +// import 'package:movies_app/tv_shows/presentation/views/tv_show_details_view.dart'; +// import 'package:movies_app/tv_shows/presentation/views/tv_shows_view.dart'; + +// import 'package:movies_app/core/resources/app_routes.dart'; +// import 'package:movies_app/watchlist/presentation/views/watchlist_view.dart'; + +// const String moviesPath = '/movies'; +// const String movieDetailsPath = 'movieDetails/:movieId'; +// const String popularMoviesPath = 'popularMovies'; +// const String topRatedMoviesPath = 'topRatedMovies'; +// const String tvShowsPath = '/tvShows'; +// const String tvShowDetailsPath = 'tvShowDetails/:tvShowId'; +// const String popularTVShowsPath = 'popularTVShows'; +// const String topRatedTVShowsPath = 'topRatedTVShows'; +// const String searchPath = '/search'; +// const String watchlistPath = '/watchlist'; + +// class AppRouter { + // GoRouter router = GoRouter( + // initialLocation: moviesPath, + // routes: [ + // ShellRoute( + // builder: (context, state, child) => MainPage(child: child), + // routes: [ + // GoRoute( + // name: AppRoutes.moviesRoute, + // path: moviesPath, + // pageBuilder: (context, state) => const NoTransitionPage( + // child: MoviesView(), + // ), + // routes: [ + // GoRoute( + // name: AppRoutes.movieDetailsRoute, + // path: movieDetailsPath, + // pageBuilder: (context, state) => CupertinoPage( + // child: MovieDetailsView( + // movieId: int.parse(state.params['movieId']!), + // ), + // ), + // ), + // GoRoute( + // name: AppRoutes.popularMoviesRoute, + // path: popularMoviesPath, + // pageBuilder: (context, state) => const CupertinoPage( + // child: PopularMoviesView(), + // ), + // ), + // GoRoute( + // name: AppRoutes.topRatedMoviesRoute, + // path: topRatedMoviesPath, + // pageBuilder: (context, state) => const CupertinoPage( + // child: TopRatedMoviesView(), + // ), + // ), + // ], + // ), + // GoRoute( + // name: AppRoutes.tvShowsRoute, + // path: tvShowsPath, + // pageBuilder: (context, state) => const NoTransitionPage( + // child: TVShowsView(), + // ), + // routes: [ + // GoRoute( + // name: AppRoutes.tvShowDetailsRoute, + // path: tvShowDetailsPath, + // pageBuilder: (context, state) => CupertinoPage( + // child: TVShowDetailsView( + // tvShowId: int.parse(state.params['tvShowId']!), + // ), + // ), + // ), + // GoRoute( + // name: AppRoutes.popularTvShowsRoute, + // path: popularTVShowsPath, + // pageBuilder: (context, state) => const CupertinoPage( + // child: PopularTVShowsView(), + // ), + // ), + // GoRoute( + // name: AppRoutes.topRatedTvShowsRoute, + // path: topRatedTVShowsPath, + // pageBuilder: (context, state) => const CupertinoPage( + // child: TopRatedTVShowsView(), + // ), + // ), + // ], + // ), + // GoRoute( + // name: AppRoutes.searchRoute, + // path: searchPath, + // pageBuilder: (context, state) => const NoTransitionPage( + // child: SearchView(), + // ), + // ), + // GoRoute( + // name: AppRoutes.watchlistRoute, + // path: watchlistPath, + // pageBuilder: (context, state) => const NoTransitionPage( + // child: WatchlistView(), + // ), + // ), + // ], + // ) + // ], + // ); +// } diff --git a/flutter/lib/resources/app_routes.dart b/flutter/lib/resources/app_routes.dart new file mode 100644 index 0000000..3833f22 --- /dev/null +++ b/flutter/lib/resources/app_routes.dart @@ -0,0 +1,14 @@ +class AppRoutes { + static const String moviesRoute = 'movies'; + static const String movieDetailsRoute = 'movieDetails'; + static const String popularMoviesRoute = 'popularMovies'; + static const String topRatedMoviesRoute = 'topRatedMovies'; + + static const String tvShowsRoute = 'tvShows'; + static const String tvShowDetailsRoute = 'tvShowDetails'; + static const String popularTvShowsRoute = 'popularTvShowsRoute'; + static const String topRatedTvShowsRoute = 'topRatedTvShowsRoute'; + + static const String searchRoute = 'search'; + static const String watchlistRoute = 'watchlist'; +} diff --git a/flutter/lib/resources/app_shape.dart b/flutter/lib/resources/app_shape.dart new file mode 100644 index 0000000..a98e7fa --- /dev/null +++ b/flutter/lib/resources/app_shape.dart @@ -0,0 +1,5 @@ +class AppShape { + static const largeShape = 25.0; + static const normalShaper = 20.0; + static const smallShape = 10.0; +} diff --git a/flutter/lib/resources/app_strings.dart b/flutter/lib/resources/app_strings.dart new file mode 100644 index 0000000..1f93908 --- /dev/null +++ b/flutter/lib/resources/app_strings.dart @@ -0,0 +1,37 @@ +class AppStrings { + static const String appTitle = 'Movies App'; + static const String seeAll = 'see all'; + static const String popularMovies = 'Popular movies'; + static const String topRatedMovies = 'Top rated movies'; + static const String story = 'Story'; + static const String videos = 'Videos'; + static const String cast = 'Cast'; + static const String reviews = 'Reviews'; + static const String similar = 'Similar'; + static const String showLess = 'Show less'; + static const String showMore = 'Show more'; + static const String movies = 'Movies'; + static const String shows = 'Shows'; + static const String search = 'Search'; + static const String watchlist = 'Watchlist'; + static const String popularShows = 'Popular shows'; + static const String topRatedShows = 'Top rated shows'; + static const String lastEpisodeOnAir = 'Last Episode on Air'; + static const String seasons = 'Seasons'; + static const String season = 'Season'; + static const String episodes = 'Episodes'; + static const String episode = 'Episode'; + static const String airDate = 'Air date:'; + static const String lastEpisode = 'Last Episode'; + static const String searchText = + 'By typing in search bar, Movia search in movies and series and then show you the best results.'; + static const String searchHint = 'Search for Movies, Series...'; + static const String watchlistIsEmpty = 'Watchlist is empty'; + static const String watchlistText = + 'After adding movies and series to watchlist, they will appear here.'; + static const String oops = 'Ooops'; + static const String tryAgainLater = 'Please try again later'; + static const String errorMessage = 'Something went wrong'; + static const String tryAgain = 'try again'; + static const String noResults = 'No results'; +} diff --git a/flutter/lib/resources/app_theme.dart b/flutter/lib/resources/app_theme.dart new file mode 100644 index 0000000..562161c --- /dev/null +++ b/flutter/lib/resources/app_theme.dart @@ -0,0 +1,230 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:google_fonts/google_fonts.dart'; +import 'package:sail/resources/app_colors.dart'; +import 'package:sail/resources/app_typography.dart'; + +ThemeData getApplicationTheme() { + return ThemeData( + // main colors + scaffoldBackgroundColor: AppColors.primaryBackground, + + // Bottom nav bar theme + bottomNavigationBarTheme: const BottomNavigationBarThemeData( + backgroundColor: AppColors.secondaryBackground, + selectedItemColor: AppColors.primary, + unselectedItemColor: AppColors.primaryText, + type: BottomNavigationBarType.fixed, + ), + + // app bar theme + appBarTheme: AppBarTheme( + backgroundColor: AppColors.primaryBackground, + elevation: 0, + centerTitle: true, + systemOverlayStyle: SystemUiOverlayStyle.light, + titleTextStyle: _getTextStyle( + fontSize: 18, + color: AppColors.secondaryText, + ), + ), + + // text theme + textTheme: TextTheme( + titleMedium: _getTextStyle( + fontSize: 20, + color: AppColors.secondaryText, + ), + titleSmall: _getTextStyle( + fontSize: 18, + color: AppColors.secondaryText, + ), + bodyLarge: _getTextStyle( + fontSize: 14, + fontWeight: FontWeight.w400, + color: AppColors.primaryText, + ), + bodyMedium: _getTextStyle( + fontSize: 14, + color: AppColors.secondaryText, + ), + bodySmall: _getTextStyle( + fontSize: 12, + fontWeight: FontWeight.w400, + color: AppColors.primaryText, + ), + ), + ); +} + +TextStyle _getTextStyle({ + required double fontSize, + FontWeight fontWeight = FontWeight.w600, + required Color color, +}) { + return GoogleFonts.poppins( + fontSize: fontSize, + fontWeight: fontWeight, + color: color, + ); +} + +class AppTheme { + static final flatButtonStyle = TextButton.styleFrom( + textStyle: AppTypography.labelMedium, + padding: const EdgeInsets.symmetric(horizontal: 16.0), + shape: const RoundedRectangleBorder( + borderRadius: BorderRadius.all(Radius.circular(2.0)), + ), + ); + + static final raisedButtonStyle = ElevatedButton.styleFrom( + foregroundColor: Colors.white, + backgroundColor: AppColors.secondaryColor, + textStyle: AppTypography.labelMedium, + minimumSize: const Size(88, 36), + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12), + shape: const RoundedRectangleBorder( + borderRadius: BorderRadius.all(Radius.circular(20)), + ), + ); + + static final outlineButtonStyle = OutlinedButton.styleFrom( + textStyle: AppTypography.labelMedium, + side: const BorderSide(color: AppColors.onPrimaryColor, width: 2), + padding: const EdgeInsets.symmetric(horizontal: 16), + shape: const RoundedRectangleBorder( + borderRadius: BorderRadius.all(Radius.circular(20)), + ), + ); + + static final lightThemeData = ThemeData( + useMaterial3: true, + primarySwatch: AppColors.primarySwatch, + splashColor: AppColors.secondaryColor, + scaffoldBackgroundColor: AppColors.backgroundColor, + fontFamily: 'Urbanist', + appBarTheme: AppBarTheme( + // systemOverlayStyle: SystemUiOverlayStyle.light, + backgroundColor: AppColors.backgroundColor, + iconTheme: const IconThemeData( + color: AppColors.onBackgroundColor, + ), + titleTextStyle: AppTypography.titleLarge.copyWith( + color: AppColors.onPrimaryColor, + ), + ), + textTheme: TextTheme( + bodyLarge: AppTypography.bodyLarge.copyWith( + color: AppColors.onPrimaryColor, + ), + bodyMedium: AppTypography.bodyMedium.copyWith( + color: AppColors.onPrimaryColor, + ), + bodySmall: AppTypography.bodySmall.copyWith( + color: AppColors.onPrimaryColor, + ), + labelLarge: AppTypography.labelLarge.copyWith( + color: AppColors.onPrimaryColor, + ), + labelMedium: AppTypography.labelMedium.copyWith( + color: AppColors.onPrimaryColor, + ), + labelSmall: AppTypography.labelSmall.copyWith( + color: AppColors.onPrimaryColor, + ), + titleLarge: AppTypography.titleLarge.copyWith( + color: AppColors.onPrimaryColor, + ), + titleMedium: AppTypography.titleMedium.copyWith( + color: AppColors.onPrimaryColor, + ), + titleSmall: AppTypography.titleSmall.copyWith( + color: AppColors.onPrimaryColor, + ), + ), + colorScheme: const ColorScheme( + brightness: Brightness.dark, + primary: AppColors.primaryColor, + onPrimary: AppColors.onPrimaryColor, + secondary: AppColors.secondaryColor, + onSecondary: AppColors.onSecondaryColor, + background: AppColors.backgroundColor, + onBackground: AppColors.onBackgroundColor, + error: AppColors.errorColor, + onError: AppColors.onErrorColor, + surface: AppColors.surfaceColor, + onSurface: AppColors.onSurfaceColor, + ), + elevatedButtonTheme: ElevatedButtonThemeData(style: raisedButtonStyle), + textButtonTheme: TextButtonThemeData(style: flatButtonStyle), + outlinedButtonTheme: OutlinedButtonThemeData(style: outlineButtonStyle), + bottomSheetTheme: + BottomSheetThemeData(backgroundColor: Colors.black.withOpacity(0)), + ); + + static final darkThemeData = ThemeData( + useMaterial3: true, + primarySwatch: AppColors.darkPrimarySwatch, + splashColor: AppColors.darkSecondaryColor, + scaffoldBackgroundColor: AppColors.darkBackgroundColor, + fontFamily: 'Urbanist', + appBarTheme: AppBarTheme( + // systemOverlayStyle: SystemUiOverlayStyle.dark, + backgroundColor: AppColors.darkBackgroundColor, + iconTheme: const IconThemeData( + color: AppColors.darkOnBackgroundColor, + ), + titleTextStyle: AppTypography.titleLarge.copyWith( + color: AppColors.darkOnPrimaryColor, + ), + ), + textTheme: TextTheme( + bodyLarge: AppTypography.bodyLarge.copyWith( + color: AppColors.darkOnPrimaryColor, + ), + bodyMedium: AppTypography.bodyMedium.copyWith( + color: AppColors.darkOnPrimaryColor, + ), + bodySmall: AppTypography.bodySmall.copyWith( + color: AppColors.darkOnPrimaryColor, + ), + labelLarge: AppTypography.labelLarge.copyWith( + color: AppColors.darkOnPrimaryColor, + ), + labelMedium: AppTypography.labelMedium.copyWith( + color: AppColors.darkOnPrimaryColor, + ), + labelSmall: AppTypography.labelSmall.copyWith( + color: AppColors.darkOnPrimaryColor, + ), + titleLarge: AppTypography.titleLarge.copyWith( + color: AppColors.darkOnPrimaryColor, + ), + titleMedium: AppTypography.titleMedium.copyWith( + color: AppColors.darkOnPrimaryColor, + ), + titleSmall: AppTypography.titleSmall.copyWith( + color: AppColors.darkOnPrimaryColor, + ), + ), + colorScheme: const ColorScheme( + brightness: Brightness.dark, + primary: AppColors.darkPrimaryColor, + onPrimary: AppColors.darkOnPrimaryColor, + secondary: AppColors.darkSecondaryColor, + onSecondary: AppColors.darkOnSecondaryColor, + background: AppColors.darkBackgroundColor, + onBackground: AppColors.darkOnBackgroundColor, + error: AppColors.darkErrorColor, + onError: AppColors.darkOnErrorColor, + surface: AppColors.darkSurfaceColor, + onSurface: AppColors.darkOnSurfaceColor, + ), + elevatedButtonTheme: ElevatedButtonThemeData(style: raisedButtonStyle), + textButtonTheme: TextButtonThemeData(style: flatButtonStyle), + outlinedButtonTheme: OutlinedButtonThemeData(style: outlineButtonStyle), + bottomSheetTheme: + BottomSheetThemeData(backgroundColor: Colors.black.withOpacity(0)), + ); +} diff --git a/flutter/lib/resources/app_typography.dart b/flutter/lib/resources/app_typography.dart new file mode 100644 index 0000000..4162ee8 --- /dev/null +++ b/flutter/lib/resources/app_typography.dart @@ -0,0 +1,40 @@ +import 'package:flutter/material.dart'; + +class AppTypography { + static const titleLarge = TextStyle( + fontSize: 20.0, + fontWeight: FontWeight.w500, + ); + static const titleMedium = TextStyle( + fontSize: 20.0, + fontWeight: FontWeight.w600, + ); + static const titleSmall = TextStyle( + fontSize: 16.0, + fontWeight: FontWeight.normal, + ); + static const labelLarge = TextStyle( + fontSize: 20.0, + fontWeight: FontWeight.bold, + ); + static const labelMedium = TextStyle( + fontSize: 16.0, + fontWeight: FontWeight.normal, + ); + static const labelSmall = TextStyle( + fontSize: 14.0, + fontWeight: FontWeight.normal, + ); + static const bodyLarge = TextStyle( + fontSize: 16.0, + fontWeight: FontWeight.w500, + ); + static const bodyMedium = TextStyle( + fontSize: 14.0, + fontWeight: FontWeight.w500, + ); + static const bodySmall = TextStyle( + fontSize: 12.0, + fontWeight: FontWeight.normal, + ); +} diff --git a/flutter/lib/resources/app_values.dart b/flutter/lib/resources/app_values.dart new file mode 100644 index 0000000..dd2b36a --- /dev/null +++ b/flutter/lib/resources/app_values.dart @@ -0,0 +1,62 @@ +class AppMargin { + static const double m8 = 8.0; + static const double m10 = 10.0; + static const double m12 = 12.0; + static const double m14 = 14.0; + static const double m16 = 16.0; + static const double m18 = 18.0; + static const double m20 = 20.0; +} + +class AppPadding { + static const double p2 = 2.0; + static const double p4 = 4.0; + static const double p6 = 6.0; + static const double p8 = 8.0; + static const double p12 = 12.0; + static const double p10 = 10.0; + static const double p14 = 14.0; + static const double p16 = 16.0; + static const double p18 = 18.0; + static const double p20 = 20.0; + static const double p24 = 24.0; + static const double p32 = 32.0; + static const double p36 = 36.0; +} + +class AppSize { + static const double s0 = 0.0; + static const double s1 = 1.0; + static const double s4 = 4.0; + static const double s6 = 6.0; + static const double s8 = 8.0; + static const double s10 = 10.0; + static const double s12 = 12.0; + static const double s14 = 14.0; + static const double s15 = 15.0; + static const double s16 = 16.0; + static const double s18 = 18.0; + static const double s20 = 20.0; + static const double s22 = 22.0; + static const double s24 = 24.0; + static const double s30 = 30.0; + static const double s36 = 36.0; + static const double s40 = 40.0; + static const double s45 = 45.0; + static const double s60 = 60.0; + static const double s84 = 84.0; + static const double s100 = 100.0; + static const double s110 = 110.0; + static const double s120 = 120.0; + static const double s130 = 130.0; + static const double s140 = 140.0; + static const double s150 = 150.0; + static const double s160 = 160.0; + static const double s175 = 175.0; + static const double s190 = 190.0; + static const double s200 = 200.0; + static const double s220 = 220.0; + static const double s240 = 240.0; + static const double s400 = 400.0; + static const double s800 = 800.0; +} diff --git a/flutter/lib/router/application.dart b/flutter/lib/router/application.dart new file mode 100644 index 0000000..0be6c6e --- /dev/null +++ b/flutter/lib/router/application.dart @@ -0,0 +1,44 @@ +import 'package:fluro/fluro.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:sail/utils/l10n.dart'; + +class Application { + static FluroRouter? router; + static GlobalKey navigatorKey = GlobalKey(); + static showMsg(context, msg) { + showDialog( + context: context, + builder: (BuildContext context) { + return CupertinoAlertDialog( + title: Text(context.l10n.alertsss), + content: Column( + children: [ + SizedBox( + height: 10, + ), + Align( + child: Text( + msg, + style: TextStyle(fontSize: 18), + ), + alignment: Alignment(0, 0), + ), + ], + ), + actions: [ + CupertinoDialogAction( + child: Text( + context.l10n.sure, + style: TextStyle(color: Colors.red), + ), + onPressed: () { + //print("确定"); + Navigator.pop(context); + }, + ), + ], + ); + }); + } +} diff --git a/flutter/lib/router/router_handlers.dart b/flutter/lib/router/router_handlers.dart new file mode 100644 index 0000000..85812e2 --- /dev/null +++ b/flutter/lib/router/router_handlers.dart @@ -0,0 +1,54 @@ +import 'package:fluro/fluro.dart'; +import 'package:flutter/material.dart'; +import 'package:sail/pages/accountPage.dart'; +import 'package:sail/pages/home/home_page.dart'; +import 'package:sail/pages/404/not_find_page.dart'; +import 'package:sail/pages/login/login_page.dart'; +import 'package:sail/pages/plan/plan_page.dart'; +import 'package:sail/pages/server_list.dart'; +import 'package:sail/pages/webview_widget.dart'; +import 'dart:convert'; + +/// 入口 +Handler homeHandler = Handler( + handlerFunc: (BuildContext? context, Map> parameters) { + return const HomePage(); +}); + +/// 404页面 +Handler notFindHandler = Handler( + handlerFunc: (BuildContext? context, Map> parameters) { + return const NotFindPage(); +}); + +/// 登录页 +Handler loginHandler = Handler( + handlerFunc: (BuildContext? context, Map> parameters) { + return const LoginPage(); +}); + +/// 套餐页 +Handler planHandle = Handler( + handlerFunc: (BuildContext? context, Map> parameters) { + return const PlanPage(); +}); + +/// 服务器节点页 +Handler serverListHandler = Handler( + handlerFunc: (BuildContext? context, Map> parameters) { + return const ServerListPage(); +}); + +/// WebView页 +Handler webViewHandler = Handler( + handlerFunc: (BuildContext? context, Map> parameters) { + var title = jsonDecode(parameters["titleName"]!.first); + var url = jsonDecode(parameters["url"]!.first); + return WebViewWidget(name: title, url: url); +}); + +///个人中心 +Handler accountHandler = Handler( + handlerFunc: (BuildContext? context, Map> parameters) { + return const AccountPage(); +}); diff --git a/flutter/lib/router/routers.dart b/flutter/lib/router/routers.dart new file mode 100644 index 0000000..9f507cc --- /dev/null +++ b/flutter/lib/router/routers.dart @@ -0,0 +1,28 @@ +import 'package:fluro/fluro.dart'; +import 'package:sail/router/router_handlers.dart'; + +class Routers { + static String home = "/"; + + static String login = "/login"; + static String plan = "/plan"; + static String serverList = '/server-list'; + static String webView = "/web-view"; + static String account = "/account"; + + static void configureRoutes(FluroRouter router) { + router.notFoundHandler = notFindHandler; + + router.define(home, handler: homeHandler); + + router.define(login, handler: loginHandler); + + router.define(plan, handler: planHandle); + + router.define(serverList, handler: serverListHandler); + + router.define(webView, handler: webViewHandler); + + router.define(account, handler: accountHandler); + } +} diff --git a/flutter/lib/routes/OnceNotice.dart b/flutter/lib/routes/OnceNotice.dart new file mode 100644 index 0000000..27386b0 --- /dev/null +++ b/flutter/lib/routes/OnceNotice.dart @@ -0,0 +1,28 @@ +// OnceNotice.dart +//ignore_for_file: file_names +import 'package:sail/pages/ProOnecePage.dart'; + +import '/pages/proPage.dart'; +import 'package:flutter/material.dart'; + +class OnceNotice extends StatelessWidget { + const OnceNotice({Key? key}) : super(key: key); + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + automaticallyImplyLeading: false, + backgroundColor: Colors.transparent, + shadowColor: Colors.transparent, + actions: const [ + Padding( + padding: EdgeInsets.all(8.0), + child: CloseButton(), + ) + ], + ), + body: const ProOnecePage(), + ); + } +} diff --git a/flutter/lib/routes/chooseLocationRoute.dart b/flutter/lib/routes/chooseLocationRoute.dart new file mode 100644 index 0000000..e80a658 --- /dev/null +++ b/flutter/lib/routes/chooseLocationRoute.dart @@ -0,0 +1,42 @@ +//ignore_for_file: file_names +import '/model/UserPreference.dart'; +import 'package:flutter_svg/flutter_svg.dart'; +import 'package:provider/provider.dart'; +import '/model/flags.dart'; +import 'package:flutter/material.dart'; + +class ChooseLocationRoute extends StatelessWidget { + const ChooseLocationRoute({Key? key}) : super(key: key); + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + shadowColor: Colors.transparent, + title: const Text('Choose location'), + ), + body: ListView.builder( + padding: const EdgeInsets.all(8.0), + itemCount: Flags.list.length, + itemBuilder: (builder, index) => ListTile( + onTap: () { + Provider.of(context, listen: false) + .setlocationIndex(index); + Navigator.of(context).pop(); + }, + leading: SvgPicture.asset( + 'assets/flags/${Flags.list[index]['imagePath']}', + width: 42, + ), + title: Text( + Flags.list[index]['name'] as String, + style: Theme.of(context).primaryTextTheme.subtitle1, + ), + trailing: Icon( + Icons.navigate_next_rounded, + color: Theme.of(context).iconTheme.color, + )), + ), + ); + } +} diff --git a/flutter/lib/routes/proRoute.dart b/flutter/lib/routes/proRoute.dart new file mode 100644 index 0000000..69e1f16 --- /dev/null +++ b/flutter/lib/routes/proRoute.dart @@ -0,0 +1,25 @@ +//ignore_for_file: file_names +import '/pages/proPage.dart'; +import 'package:flutter/material.dart'; + +class ProRoute extends StatelessWidget { + const ProRoute({Key? key}) : super(key: key); + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + automaticallyImplyLeading: false, + backgroundColor: Colors.transparent, + shadowColor: Colors.transparent, + actions: const [ + Padding( + padding: EdgeInsets.all(8.0), + child: CloseButton(), + ) + ], + ), + body: const ProPage(), + ); + } +} diff --git a/flutter/lib/routes/settingsRoute.dart b/flutter/lib/routes/settingsRoute.dart new file mode 100644 index 0000000..fb206c7 --- /dev/null +++ b/flutter/lib/routes/settingsRoute.dart @@ -0,0 +1,240 @@ +//ignore_for_file: file_names +import 'package:sail/constant/app_colors.dart'; +import 'package:sail/models/user_model.dart'; +import 'package:sail/routes/proRoute.dart'; +import 'package:sail/utils/navigator_util.dart'; +import 'package:url_launcher/url_launcher.dart'; + +import '../model/themeCollection.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +class SettingsRoute extends StatefulWidget { + const SettingsRoute({Key? key}) : super(key: key); + + @override + State createState() => _SettingsRouteState(); +} + +class _SettingsRouteState extends State { + int connectionValue = 0; + bool killSwitch = false, proVpn = false, notifySwitch = false; + List connectionModes = ['IPSec', 'ISSR']; + + setConnectionValue(int? value) { + setState(() { + connectionValue = value!; + }); + } + + customListTile(BuildContext context, String title, String icon, + {Widget? trailing, + Icon? sysicon, + String? subtitle, + VoidCallback? onTap}) => + ListTile( + onTap: onTap ?? null, + minLeadingWidth: 35, + dense: true, + contentPadding: EdgeInsets.only(left: 24), + title: + Text(title, style: Theme.of(context).primaryTextTheme.subtitle1), + subtitle: subtitle != null + ? Text( + subtitle, + style: Theme.of(context).primaryTextTheme.caption, + ) + : null, + // leading: sysicon ?? + // SvgPicture.asset( + // icon, + // // color: Theme.of(context).colorScheme.secondary, + // width: 24, + // cacheColorFilter: true, + // color: AppColors.greenColor, + // alignment: Alignment.centerRight, + // ), + trailing: trailing ?? null); + + upgradeButton(context) => GestureDetector( + onTap: () => Navigator.of(context) + .push(MaterialPageRoute(builder: (builder) => const ProRoute())), + child: Container( + padding: const EdgeInsets.symmetric(vertical: 8, horizontal: 12), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(65), + gradient: const LinearGradient( + colors: [AppColors.greenColor, Color.fromARGB(255, 9, 54, 21)], + transform: GradientRotation(5))), + child: Text( + 'Upgrade', + style: Theme.of(context) + .primaryTextTheme + .bodyText1! + .copyWith(color: Colors.white), + ), + )); + + Divider get divider => Divider( + indent: 16, + endIndent: 16, + color: Colors.grey.withAlpha(50), + thickness: 1); + + Future _launchUrl(_url) async { + if (!await launchUrl(_url)) { + throw Exception('Could not launch $_url'); + } + } + + Column listTileSet(String title, String description, bool value, + Function(bool)? onChanged) => + Column(crossAxisAlignment: CrossAxisAlignment.start, children: [ + divider, + // const Divider(color: Colors.grey, thickness: 1), + Padding( + padding: const EdgeInsets.symmetric(vertical: 8.0, horizontal: 24), + child: Text(title, + style: Theme.of(context) + .primaryTextTheme + .subtitle1! + .copyWith(color: Colors.grey)), + ), + SwitchListTile( + activeColor: AppColors.greenColor, + inactiveTrackColor: + Provider.of(context).isDarkActive + ? AppColors.whiteColor.withAlpha(90) + : const Color(0xffD7D6D9), + contentPadding: EdgeInsets.only(left: 24), + title: Text( + description, + style: Theme.of(context).primaryTextTheme.subtitle1, + ), + value: value, + onChanged: onChanged) + ]); + + @override + Widget build(BuildContext context) { + UserModel userModel = Provider.of(context); + bool isDarkTheme = Provider.of(context).isDarkActive; + var themeData = Provider.of(context); + return Scaffold( + appBar: AppBar( + shadowColor: Colors.transparent, + title: const Text('Settings'), + ), + body: ListView( + padding: const EdgeInsets.symmetric(horizontal: 0.0, vertical: 8.0), + children: [ + /*Text('Connection Mode', + style: Theme.of(context) + .primaryTextTheme + .subtitle1! + .copyWith(color: Colors.grey)), + const SizedBox(height: 4), + Column( + children: connectionModes.map((e) { + return ListTile( + contentPadding: EdgeInsets.zero, + title: Text( + e, + style: Theme.of(context).primaryTextTheme.subtitle1, + ), + trailing: Radio( + fillColor: MaterialStateProperty.all( + connectionModes[connectionValue] != e + ? themeData.isDarkActive + ? Colors.white70 + : Colors.grey + : Theme.of(context).colorScheme.secondary, + ), + value: connectionModes.indexOf(e), + groupValue: connectionValue, + onChanged: setConnectionValue), + ); + }).toList()), + listTileSet( + 'Kill Switch', + 'Block internet when connecting or changing servers', + killSwitch, + (value) => setState(() => killSwitch = value)), + + listTileSet('Connection', 'Connect when VPN starts', proVpn, + (value) => setState(() => proVpn = value)),*/ + listTileSet( + 'Notification', + 'Show notification when VPN is not connected.', + notifySwitch, + (value) => setState(() => notifySwitch = value)), + listTileSet('Dark theme', 'Reduce glare & improve night viewing.', + themeData.isDarkActive, (value) { + themeData.setDarkTheme(value); + }), + divider, + customListTile(context, 'Rate us', '', + trailing: IconButton( + color: Theme.of(context).colorScheme.secondary, + onPressed: () {}, + icon: Icon(Icons.arrow_forward_ios, + size: 20, + color: isDarkTheme + ? Color.fromARGB(255, 148, 145, 145) + : Color.fromARGB(255, 190, 187, 187))), + sysicon: Icon(Icons.rate_review, + size: 30, color: AppColors.greenColor), + onTap: () => _launchUrl(Uri.parse( + "https://apps.apple.com/us/app/uuvpn-2023/id6449599228"))), + divider, + customListTile(context, 'Privacy policy', '', + trailing: IconButton( + color: Theme.of(context).colorScheme.secondary, + onPressed: () {}, + icon: Icon(Icons.arrow_forward_ios, + size: 20, + color: isDarkTheme + ? Color.fromARGB(255, 148, 145, 145) + : Color.fromARGB(255, 190, 187, 187))), + sysicon: Icon(Icons.private_connectivity, + size: 30, color: AppColors.greenColor), + onTap: () => NavigatorUtil.goWebView(context, "Privacy policy", + "https://uuvpn.co/privacy-policy/")), + divider, + customListTile(context, 'Terms&Conditions', '', + sysicon: Icon(Icons.format_align_center, + size: 30, color: AppColors.greenColor), + trailing: IconButton( + color: Theme.of(context).colorScheme.secondary, + onPressed: () {}, + icon: Icon(Icons.arrow_forward_ios, + size: 20, + color: isDarkTheme + ? Color.fromARGB(255, 148, 145, 145) + : Color.fromARGB(255, 190, 187, 187))), onTap: () { + NavigatorUtil.goWebView( + context, "Terms&Conditions", "https://uuvpn.co/terms/"); + }), + divider, + customListTile(context, 'Online Help', '', + sysicon: Icon(Icons.format_align_center, + size: 30, color: AppColors.greenColor), + trailing: IconButton( + color: Theme.of(context).colorScheme.secondary, + onPressed: () {}, + icon: Icon(Icons.arrow_forward_ios, + size: 20, + color: isDarkTheme + ? Color.fromARGB(255, 148, 145, 145) + : Color.fromARGB(255, 190, 187, 187))), onTap: () { + // NavigatorUtil.goWebView( + // context, "Terms&Conditions", "https://uuvpn.co/terms/"); + NavigatorUtil.goWebView(context, "Online Help", + "https://go.crisp.chat/chat/embed/?website_id=3ed83170-f288-4c23-acd4-30c1e557948b&user_email=${userModel.userEntity?.email}"); + }), + divider, + ], + ), + ); + } +} diff --git a/flutter/lib/service/plan_service.dart b/flutter/lib/service/plan_service.dart new file mode 100644 index 0000000..2268e40 --- /dev/null +++ b/flutter/lib/service/plan_service.dart @@ -0,0 +1,17 @@ +import 'package:sail/constant/app_urls.dart'; +import 'package:sail/entity/plan_entity.dart'; +import 'package:sail/utils/http_util.dart'; + +class PlanService { + Future>? plan() { + return HttpUtil.instance?.get(AppUrls.plan).then((result) { + return planEntityFromList(result['data']); + }); + } + + Future? planDetail(int id) { + return HttpUtil.instance?.get(AppUrls.plan, parameters: {'id': id}).then((result) { + return PlanEntity.fromMap(result['data']); + }); + } +} diff --git a/flutter/lib/service/server_service.dart b/flutter/lib/service/server_service.dart new file mode 100644 index 0000000..096535d --- /dev/null +++ b/flutter/lib/service/server_service.dart @@ -0,0 +1,11 @@ +import 'package:sail/constant/app_urls.dart'; +import 'package:sail/entity/server_entity.dart'; +import 'package:sail/utils/http_util.dart'; + +class ServerService { + Future> server() { + return HttpUtil.instance.get(AppUrls.server).then((result) { + return serverEntityFromList(result['data']); + }); + } +} diff --git a/flutter/lib/service/user_service.dart b/flutter/lib/service/user_service.dart new file mode 100644 index 0000000..390b6f9 --- /dev/null +++ b/flutter/lib/service/user_service.dart @@ -0,0 +1,44 @@ +import 'package:sail/constant/app_urls.dart'; +import 'package:sail/entity/login_entity.dart'; +import 'package:sail/entity/user_entity.dart'; +import 'package:sail/entity/user_subscribe_entity.dart'; +import 'package:sail/utils/http_util.dart'; + +class UserService { + Future? login(Map parameters) { + return HttpUtil.instance + ?.post(AppUrls.login, parameters: parameters) + .then((result) { + return LoginEntity.fromMap(result['data']); + }); + } + + Future? getQuickLoginUrl(Map parameters) { + return HttpUtil.instance + ?.post(AppUrls.getQuickLoginUrl, parameters: parameters) + .then((result) { + return result['data']; + }); + } + + Future? register(parameters) { + return HttpUtil.instance + ?.post(AppUrls.register, parameters: parameters) + .then((result) { + return LoginEntity.fromMap(result['data']); + // return result['data']; + }); + } + + Future? userSubscribe() { + return HttpUtil.instance?.get(AppUrls.userSubscribe).then((result) { + return UserSubscribeEntity.fromMap(result['data']); + }); + } + + Future? info() { + return HttpUtil.instance?.get(AppUrls.userInfo).then((result) { + return UserEntity.fromMap(result['data']); + }); + } +} diff --git a/flutter/lib/utils/common_util.dart b/flutter/lib/utils/common_util.dart new file mode 100644 index 0000000..49c18f7 --- /dev/null +++ b/flutter/lib/utils/common_util.dart @@ -0,0 +1,9 @@ +import 'dart:core' as core; + +import 'package:flutter/foundation.dart'; + +void print (core.Object object) { + if (kDebugMode) { + core.print(object); + } +} diff --git a/flutter/lib/utils/encrypt_util.dart b/flutter/lib/utils/encrypt_util.dart new file mode 100644 index 0000000..efe0371 --- /dev/null +++ b/flutter/lib/utils/encrypt_util.dart @@ -0,0 +1,54 @@ +import 'dart:convert'; + +import 'package:crypto/crypto.dart'; +import 'package:convert/convert.dart'; + +/// Encrypt Util. +class EncryptUtil { + /// md5 加密 + static String encodeMd5(String data) { + var content = Utf8Encoder().convert(data); + var digest = md5.convert(content); + return hex.encode(digest.bytes); + } + + /// 异或对称加密 + static String xorCode(String res, String key) { + List keyList = key.split(','); + List codeUnits = res.codeUnits; + List codes = []; + for (int i = 0, length = codeUnits.length; i < length; i++) { + int code = codeUnits[i] ^ int.parse(keyList[i % keyList.length]); + codes.add(code); + } + return String.fromCharCodes(codes); + } + + /// 异或对称 Base64 加密 + static String xorBase64Encode(String res, String key) { + String encode = xorCode(res, key); + encode = encodeBase64(encode); + return encode; + } + + /// 异或对称 Base64 解密 + static String xorBase64Decode(String res, String key) { + String encode = decodeBase64(res); + encode = xorCode(encode, key); + return encode; + } + + /// Base64加密 + static String encodeBase64(String data) { + var content = utf8.encode(data); + var digest = base64Encode(content); + return digest; + } + + /// Base64解密 + static String decodeBase64(String data) { + List bytes = base64Decode(data); + String result = utf8.decode(bytes); + return result; + } +} diff --git a/flutter/lib/utils/http_util.dart b/flutter/lib/utils/http_util.dart new file mode 100644 index 0000000..a280d3f --- /dev/null +++ b/flutter/lib/utils/http_util.dart @@ -0,0 +1,136 @@ +import 'package:dio/dio.dart'; +import 'package:sail/constant/app_strings.dart'; +import 'package:sail/router/application.dart'; +import 'package:sail/router/routers.dart'; +import 'package:sail/utils/common_util.dart'; +import 'package:sail/utils/shared_preferences_util.dart'; + +class HttpUtil { + static HttpUtil get instance => _httpUtil; + static final HttpUtil _httpUtil = HttpUtil(); + late Dio dio; + + HttpUtil() { + BaseOptions options = BaseOptions( + connectTimeout: 10000, + receiveTimeout: 10000, + ); + dio = Dio(options); + dio.interceptors + .add(InterceptorsWrapper(onRequest: (options, handler) async { + //print("========================请求数据==================="); + //print("url=${options.uri.toString()}"); + //print("headers=${options.headers}"); + //print("params=${options.data}"); + + //如果token存在在请求参数加上token + await SharedPreferencesUtil.getInstance() + ?.getString(AppStrings.token) + .then((token) { + if (token != null) { + options.queryParameters[AppStrings.token] = token; + //print("token=$token"); + } + }); + + //如果auth_data存在在请求参数加上auth_data + await SharedPreferencesUtil.getInstance() + ?.getString(AppStrings.authData) + .then((authData) { + if (authData != null) { + options.queryParameters[AppStrings.authData] = authData; + //print("authData=$authData"); + } + }); + + return handler.next(options); + }, onResponse: (response, handler) { + //print("========================请求数据==================="); + //print("code=${response.statusCode}"); + + if (response.statusCode! < 200 || response.statusCode! >= 300) { + if (response.statusCode == 403) { + Application.navigatorKey.currentState?.pushNamed(Routers.login); + } + + return handler.reject(DioError( + requestOptions: response.requestOptions, + response: response, + type: DioErrorType.response)); + } + + return handler.next(response); + }, onError: (error, handler) { + //print("========================请求错误==================="); + //print("message =${error.message}"); + //print("code=${error.response?.statusCode}"); + + return handler.next(error); + })); + } + + //get请求 + Future get(String url, + {Map? parameters, Options? options}) async { + Response response; + if (parameters != null && options != null) { + response = + await dio.get(url, queryParameters: parameters, options: options); + } else if (parameters != null && options == null) { + response = await dio.get(url, queryParameters: parameters); + } else if (parameters == null && options != null) { + response = await dio.get(url, options: options); + } else { + response = await dio.get(url); + } + return response.data; + } + + //post请求 + Future post(String url, + {Map? parameters, Options? options}) async { + Response response; + if (parameters != null && options != null) { + response = await dio.post(url, data: parameters, options: options); + } else if (parameters != null && options == null) { + response = await dio.post(url, data: parameters); + } else if (parameters == null && options != null) { + response = await dio.post(url, options: options); + } else { + response = await dio.post(url); + } + return response.data; + } + + //put请求 + Future put(String url, + {Map? parameters, Options? options}) async { + Response response; + if (parameters != null && options != null) { + response = await dio.put(url, data: parameters, options: options); + } else if (parameters != null && options == null) { + response = await dio.put(url, data: parameters); + } else if (parameters == null && options != null) { + response = await dio.put(url, options: options); + } else { + response = await dio.put(url); + } + return response.data; + } + + //delete请求 + Future delete(String url, + {Map? parameters, Options? options}) async { + Response response; + if (parameters != null && options != null) { + response = await dio.delete(url, data: parameters, options: options); + } else if (parameters != null && options == null) { + response = await dio.delete(url, data: parameters); + } else if (parameters == null && options != null) { + response = await dio.delete(url, options: options); + } else { + response = await dio.delete(url); + } + return response.data; + } +} diff --git a/flutter/lib/utils/l10n.dart b/flutter/lib/utils/l10n.dart new file mode 100644 index 0000000..0ced457 --- /dev/null +++ b/flutter/lib/utils/l10n.dart @@ -0,0 +1,8 @@ +import 'package:flutter/widgets.dart'; +import 'package:flutter_gen/gen_l10n/app_localizations.dart'; + +export 'package:flutter_gen/gen_l10n/app_localizations.dart'; + +extension AppLocalizationsX on BuildContext { + AppLocalizations get l10n => AppLocalizations.of(this)!; +} diff --git a/flutter/lib/utils/message_util.dart b/flutter/lib/utils/message_util.dart new file mode 100644 index 0000000..7db3bdf --- /dev/null +++ b/flutter/lib/utils/message_util.dart @@ -0,0 +1,49 @@ +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:fluttertoast/fluttertoast.dart'; + +class MessageUtil { + static toast(String msg) { + Fluttertoast.showToast( + msg: msg, + toastLength: Toast.LENGTH_SHORT, + gravity: ToastGravity.CENTER, + timeInSecForIosWeb: 1, + backgroundColor: Colors.black, + textColor: Colors.white, + fontSize: 16.0); + } + + static alert(String msg, BuildContext context, {Function? callback}) { + showCupertinoDialog( + context: context, + builder: (context) { + return Material( + color: Colors.transparent, + child: CupertinoAlertDialog( + title: Text("提示"), + content: Text(msg), + actions: [ + CupertinoButton( + child: Text("确定"), + onPressed: () { + Navigator.pop(context); + callback!(); + }), + ]), + ); + }, + ); + } + + static snack(String msg, BuildContext context) { + ScaffoldMessenger.of(context).hideCurrentSnackBar(); + ScaffoldMessenger.of(context).showSnackBar(SnackBar( + content: Text(msg), + action: SnackBarAction( + label: "关闭", + onPressed: () => ScaffoldMessenger.of(context).hideCurrentSnackBar(), + ), + )); + } +} diff --git a/flutter/lib/utils/navigator_util.dart b/flutter/lib/utils/navigator_util.dart new file mode 100644 index 0000000..2ac8a91 --- /dev/null +++ b/flutter/lib/utils/navigator_util.dart @@ -0,0 +1,80 @@ +import 'dart:convert'; + +import 'package:fluro/fluro.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:modal_bottom_sheet/modal_bottom_sheet.dart'; +import 'package:sail/pages/accountPage.dart'; +import 'package:sail/pages/crisp_page.dart'; +import 'package:sail/pages/plan/plan_page.dart'; +import 'package:sail/pages/server_list.dart'; +import 'package:sail/router/application.dart'; +import 'package:sail/router/routers.dart'; + +class NavigatorUtil { + static goHomePage(BuildContext context) { + Application.router?.navigateTo(context, Routers.home, + transition: TransitionType.inFromRight, replace: true); + } + + static goLogin(BuildContext context) { + Application.router?.navigateTo(context, Routers.login, + transition: TransitionType.inFromRight, replace: true); + } + + static goPlan(BuildContext context) { + showCupertinoModalBottomSheet( + context: context, builder: (context) => const PlanPage()); + // Application.router.navigateTo(context, Routers.plan, + // transition: TransitionType.inFromRight); + } + + static goSettings(BuildContext context) { + // showCupertinoModalBottomSheet( + // context: context, builder: (context) => const AccountPage()); + // Application.router.navigateTo(context, Routers.plan, + // transition: TransitionType.inFromRight); + // Application.router?.navigateTo(context, Routers.account, + // transition: TransitionType.inFromRight, replace: true); + Navigator.of(context) + .push(MaterialPageRoute(builder: (builder) => const AccountPage())); + } + + static goServerList(BuildContext context) { + // showCupertinoModalBottomSheet( + // context: context, builder: (context) => const ServerListPage()); + + showCupertinoModalBottomSheet( + context: context, + builder: (BuildContext context) { + return Container( + height: MediaQuery.of(context).size.height / + 1.3, // set height to half of the screen + child: Center( + child: const ServerListPage(), + ), + ); + }, + ); + + // Application.router.navigateTo(context, Routers.serverList, + // transition: TransitionType.inFromRight); + } + + static goToCrisp(BuildContext context) { + showCupertinoModalBottomSheet( + context: context, builder: (context) => const CrispPage()); + } + + static goWebView(BuildContext context, String titleName, String url) { + String encodeUrl = Uri.encodeComponent(jsonEncode(url)); + String encodeTitleName = Uri.encodeComponent(jsonEncode(titleName)); + return Application.router?.navigateTo( + context, "${Routers.webView}?titleName=$encodeTitleName&url=$encodeUrl", + transition: TransitionType.inFromRight); + } + + static goBack(BuildContext context) { + Application.router?.pop(context); + } +} diff --git a/flutter/lib/utils/shared_preferences_util.dart b/flutter/lib/utils/shared_preferences_util.dart new file mode 100644 index 0000000..bc4c502 --- /dev/null +++ b/flutter/lib/utils/shared_preferences_util.dart @@ -0,0 +1,101 @@ +import 'dart:convert'; + +import 'package:shared_preferences/shared_preferences.dart'; + +class SharedPreferencesUtil { + SharedPreferencesUtil._(); + + static SharedPreferencesUtil? _instance; + late SharedPreferences sharedPreferences; + + static SharedPreferencesUtil? getInstance() { + _instance ??= SharedPreferencesUtil._(); + return _instance; + } + + static saveData(String key, T value) async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + + switch (T) { + case String: + prefs.setString(key, value as String); + break; + case int: + prefs.setInt(key, value as int); + break; + case bool: + prefs.setBool(key, value as bool); + break; + case double: + prefs.setDouble(key, value as double); + break; + } + } + + static Future getData(String key) async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + + T? res; + switch (T) { + case String: + res = prefs.getString(key) as T; + break; + case int: + res = prefs.getInt(key) as T; + break; + case bool: + res = prefs.getBool(key) as T; + break; + case double: + res = prefs.getDouble(key) as T; + break; + } + + return res; + } + + Future setBool(String tag, bool isFirst) async { + SharedPreferences sharedPreferences = await SharedPreferences.getInstance(); + return sharedPreferences.setBool(tag, isFirst); + } + + Future setString(String tag, String data) async { + SharedPreferences sharedPreferences = await SharedPreferences.getInstance(); + return sharedPreferences.setString(tag, data); + } + + Future setMap(String tag, Map? data) async { + SharedPreferences sharedPreferences = await SharedPreferences.getInstance(); + return sharedPreferences.setString(tag, jsonEncode(data)); + } + + Future setList(String tag, List? data) async { + SharedPreferences sharedPreferences = await SharedPreferences.getInstance(); + return sharedPreferences.setString(tag, jsonEncode(data)); + } + + Future getBool(String tag) async { + SharedPreferences sharedPreferences = await SharedPreferences.getInstance(); + return sharedPreferences.getBool(tag); + } + + Future getString(String tag) async { + SharedPreferences sharedPreferences = await SharedPreferences.getInstance(); + return sharedPreferences.getString(tag); + } + + Future> getMap(String tag) async { + SharedPreferences sharedPreferences = await SharedPreferences.getInstance(); + return jsonDecode(sharedPreferences.getString(tag) ?? '{}'); + } + + Future> getList(String tag) async { + SharedPreferences sharedPreferences = await SharedPreferences.getInstance(); + return jsonDecode(sharedPreferences.getString(tag) ?? '[]'); + } + + Future clear() async { + SharedPreferences sharedPreferences = await SharedPreferences.getInstance(); + return sharedPreferences.clear(); + } +} diff --git a/flutter/lib/utils/sliver_grid_delegate.dart b/flutter/lib/utils/sliver_grid_delegate.dart new file mode 100644 index 0000000..c891024 --- /dev/null +++ b/flutter/lib/utils/sliver_grid_delegate.dart @@ -0,0 +1,10 @@ +import 'package:flutter/material.dart'; + +SliverGridDelegate gridDelegate(BuildContext context) { + return SliverGridDelegateWithFixedCrossAxisCount( + crossAxisCount: MediaQuery.of(context).size.width > 500.0 ? 4 : 2, + mainAxisSpacing: 10, + crossAxisSpacing: 10, + childAspectRatio: 100 / 150, + ); +} diff --git a/flutter/lib/utils/sp_util.dart b/flutter/lib/utils/sp_util.dart new file mode 100644 index 0000000..c488e42 --- /dev/null +++ b/flutter/lib/utils/sp_util.dart @@ -0,0 +1,167 @@ +import 'dart:async'; +import 'dart:convert'; + +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:synchronized/synchronized.dart'; + +/// SharedPreferences Util. +class SpUtil { + static SpUtil? _singleton; + static SharedPreferences? _prefs; + static Lock _lock = Lock(); + + static Future getInstance() async { + if (_singleton == null) { + await _lock.synchronized(() async { + if (_singleton == null) { + // 保持本地实例直到完全初始化。 + var singleton = SpUtil._(); + await singleton._init(); + _singleton = singleton; + } + }); + } + return _singleton; + } + + SpUtil._(); + + Future _init() async { + _prefs = await SharedPreferences.getInstance(); + } + + /// put object. + static Future? putObject(String key, Object value) { + if (_prefs == null) return null; + return _prefs!.setString(key, value == null ? "" : json.encode(value)); + } + + /// get object. + static Map? getObject(String key) { + if (_prefs == null) return null; + String? _data = _prefs!.getString(key); + return (_data == null || _data.isEmpty) ? null : json.decode(_data); + } + + /// get object. + static Object? getObject2(String key) { + if (_prefs == null) return null; + String? _data = _prefs!.getString(key); + return (_data == null || _data.isEmpty) ? null : json.decode(_data); + } + + /// put object list. + static Future? putObjectList(String key, List? list) { + if (_prefs == null) return null; + List? _dataList = list?.map((value) { + return json.encode(value); + }).toList(); + return _prefs!.setStringList(key, _dataList ?? []); + } + + /// get object list. + static List? getObjectList(String key) { + if (_prefs == null) return null; + List? dataLis = _prefs!.getStringList(key); + return dataLis?.map((value) { + Map? _dataMap = json.decode(value); + return _dataMap; + }).toList(); + } + + /// get string. + static String? getString(String key, {String? defValue = ''}) { + if (_prefs == null) return defValue; + return _prefs!.getString(key) ?? defValue; + } + + /// put string. + static Future? putString(String? key, String value) { + if (_prefs == null) return null; + return _prefs!.setString(key!, value); + } + + /// get bool. + static bool getBool(String key, {bool defValue = false}) { + if (_prefs == null) return defValue; + return _prefs!.getBool(key) ?? defValue; + } + + /// put bool. + static Future? putBool(String key, bool value) { + if (_prefs == null) return null; + return _prefs!.setBool(key, value); + } + + /// get int. + static int getInt(String key, {int defValue = 0}) { + if (_prefs == null) return defValue; + return _prefs!.getInt(key) ?? defValue; + } + + /// put int. + static Future? putInt(String key, int value) { + if (_prefs == null) return null; + return _prefs!.setInt(key, value); + } + + /// get double. + static double getDouble(String key, double defValue) { + if (_prefs == null) return defValue; + return _prefs!.getDouble(key) ?? defValue; + } + + /// put double. + static Future? putDouble(String key, double value) { + if (_prefs == null) return null; + return _prefs!.setDouble(key, value); + } + + /// get string list. + static List getStringList(String key, + {List defValue = const []}) { + if (_prefs == null) return defValue; + return _prefs!.getStringList(key) ?? defValue; + } + + /// put string list. + static Future? putStringList(String key, List value) { + if (_prefs == null) return null; + return _prefs!.setStringList(key, value); + } + + /// get dynamic. + static dynamic getDynamic(String key, {Object? defValue}) { + if (_prefs == null) return defValue; + return _prefs!.get(key) ?? defValue; + } + + /// have key. + static bool? haveKey(String key) { + if (_prefs == null) return null; + return _prefs!.getKeys().contains(key); + } + + /// get keys. + static Set? getKeys() { + if (_prefs == null) return null; + return _prefs!.getKeys(); + } + + /// remove. + static Future? remove(String key) { + if (_prefs == null) return null; + return _prefs!.remove(key); + } + + /// clear. + static Future? clear() { + if (_prefs == null) return null; + return _prefs!.clear(); + } + + ///Sp is initialized. + static bool isInitialized() { + return _prefs != null; + } +} diff --git a/flutter/lib/utils/status.dart b/flutter/lib/utils/status.dart new file mode 100644 index 0000000..4582aae --- /dev/null +++ b/flutter/lib/utils/status.dart @@ -0,0 +1,2 @@ + +enum Status { success, pending, empty, error, noConnection } diff --git a/flutter/lib/utils/strings.dart b/flutter/lib/utils/strings.dart new file mode 100644 index 0000000..54bc76e --- /dev/null +++ b/flutter/lib/utils/strings.dart @@ -0,0 +1,23 @@ +const welcomeText = 'Welcome'; +const welcomeContent = ''; +const getStarted = 'Get Started'; +const topMovies = 'Top Movies'; +const entering = 'entering'; +const choseFavoriteGenre = + 'Choose your interests and get the best movie recommendations. Don\'t worry, you can always change it later.'; + +const skip = 'Skip'; +const continui = 'Continue'; +const seeAll = 'See all'; +const populars = 'Popular'; +const topRated = 'Top rated movies'; +const home = 'Home'; +const explore = 'Explore'; +const myList = 'My List'; +const profile = 'Profile'; +const movies = 'Movies'; +const tryAgain = 'Try again'; +const errorMessage = 'Something went wrong!'; +const emptyMessage = 'Your List is Empty'; +const play = 'Play'; +const releaseDate = 'Release date: '; diff --git a/flutter/lib/utils/transfer_util.dart b/flutter/lib/utils/transfer_util.dart new file mode 100644 index 0000000..f50473c --- /dev/null +++ b/flutter/lib/utils/transfer_util.dart @@ -0,0 +1,27 @@ +class TransferUtil { + double _transfer = 0; + int _level = 0; + List suffix = [ + 'B', + 'KB', + 'MB', + 'GB', + 'TB', + 'PB' + ]; + + String toHumanReadable(int transfer) { + _transfer = transfer.toDouble(); + handleTransfer(); + + return '${_transfer.toStringAsFixed(2)} ${suffix[_level]}'; + } + + handleTransfer() { + if (_transfer > 1024) { + _transfer = _transfer / 1024; + ++_level; + handleTransfer(); + } + } +} diff --git a/flutter/lib/utils/typedef/enums.dart b/flutter/lib/utils/typedef/enums.dart new file mode 100644 index 0000000..8fd2646 --- /dev/null +++ b/flutter/lib/utils/typedef/enums.dart @@ -0,0 +1,3 @@ +enum RequestStatus { loading, loaded, error } + +enum GetAllRequestStatus { loading, loaded, error, fetchMoreError } diff --git a/flutter/lib/utils/typedef/function.dart b/flutter/lib/utils/typedef/function.dart new file mode 100644 index 0000000..5c3825d --- /dev/null +++ b/flutter/lib/utils/typedef/function.dart @@ -0,0 +1,12 @@ +///无参数请求回调 +typedef ParamVoidCallback = dynamic Function(); + +///回调一个参数 +typedef ParamSingleCallback = dynamic Function(D data); + +///回到俩个参数 +typedef ParamTwiceCallback = dynamic Function(O dataOne, T dataTwo); + +///回调三个参数 +typedef ParamThreeCallback = dynamic Function( + O dataOne, T dataTwo, K threeData); \ No newline at end of file diff --git a/flutter/lib/utils/typedef/functions.dart b/flutter/lib/utils/typedef/functions.dart new file mode 100644 index 0000000..7a822a5 --- /dev/null +++ b/flutter/lib/utils/typedef/functions.dart @@ -0,0 +1,248 @@ +import 'package:flutter/material.dart'; +// import 'package:sail/go_router.dart'; +import 'package:intl/intl.dart'; +import 'package:sail/resources/app_colors.dart'; +import 'package:sail/resources/app_routes.dart'; +import 'package:sail/resources/app_values.dart'; + +String getDate(String? date) { + if (date == null || date.isEmpty) { + return ''; + } + + final vals = date.split('-'); + String year = vals[0]; + int monthNb = int.parse(vals[1]); + String day = vals[2]; + + String month = ''; + + switch (monthNb) { + case 1: + month = 'Jan'; + break; + case 2: + month = 'Feb'; + break; + case 3: + month = 'Mar'; + break; + case 4: + month = 'Apr'; + break; + case 5: + month = 'May'; + break; + case 6: + month = 'Jun'; + break; + case 7: + month = 'Jul'; + break; + case 8: + month = 'Aug'; + break; + case 9: + month = 'Sep'; + break; + case 10: + month = 'Oct'; + break; + case 11: + month = 'Nov'; + break; + case 12: + month = 'Dec'; + break; + default: + break; + } + + return '$month $day, $year'; +} + +String getPosterUrl(String? path) { + if (path != null) { + return ApiConstants.basePosterUrl + path; + } else { + return ApiConstants.moviePlaceHolder; + } +} + +String getBackdropUrl(String? path) { + if (path != null) { + return ApiConstants.baseBackdropUrl + path; + } else { + return ApiConstants.moviePlaceHolder; + } +} + +String getStillUrl(String? path) { + if (path != null) { + return ApiConstants.baseStillUrl + path; + } else { + return ApiConstants.stillPlaceHolder; + } +} + +String getLength(int? runtime) { + if (runtime == null || runtime == 0) { + return ''; + } + if (runtime < 60) { + return '${runtime}m'; + } + if (runtime % 60 == 0) { + return '${runtime ~/ 60}h'; + } + return '${runtime ~/ 60}h ${runtime % 60}m'; +} + +String getVotesCount(int voteCount) { + if (voteCount < 1000) { + return '($voteCount)'; + } + return '(${voteCount ~/ 1000}k)'; +} + +String getProfileImageUrl(Map json) { + if (json['profile_path'] != null) { + return ApiConstants.baseProfileUrl + json['profile_path']; + } else { + return ApiConstants.castPlaceHolder; + } +} + +class ApiConstants { + static String castPlaceHolder = ""; + static String baseProfileUrl = ""; + + static var baseAvatarUrl = ""; + + static String avatarPlaceHolder = ""; + + static var baseVideoUrl = ""; + + static var basePosterUrl = ""; + + static String moviePlaceHolder = ""; + + static var baseStillUrl; + + static var baseBackdropUrl; + + static String stillPlaceHolder = ""; +} + +String getElapsedTime(String date) { + DateTime reviewDate = DateTime.parse(date); + DateTime today = DateTime.now(); + + Duration diff = today.difference(reviewDate); + if (diff.inDays >= 365) { + int years = diff.inDays ~/ 365; + return '${years}y'; + } else if (diff.inDays >= 30) { + int months = diff.inDays ~/ 30; + return '${months}mo'; + } else if (diff.inDays >= 7) { + int weeks = diff.inDays ~/ 7; + return '${weeks}w'; + } else if (diff.inDays >= 1) { + return '${diff.inDays}d'; + } else if (diff.inHours >= 1) { + int hours = diff.inHours ~/ 24; + return '${hours}h'; + } else if (diff.inMinutes >= 1) { + int minutes = diff.inDays ~/ 60; + return '${minutes}min'; + } else { + return 'Now'; + } +} + +String getGenres(List genres) { + if (genres.isNotEmpty) { + return genres.first['name']; + } else { + return ''; + } +} + +String getDateFromTimeSpan(int timestamp) { + DateTime dateTime = DateTime.fromMillisecondsSinceEpoch(timestamp); + String formattedTime = DateFormat('yyyy-MM-dd HH:mm:ss').format(dateTime); + return formattedTime; +} + +String getAvatarUrl(String? path) { + if (path != null) { + if (path.startsWith('/https://www.gravatar.com/avatar')) { + return path.substring(1); + } else { + return ApiConstants.baseAvatarUrl + path; + } + } else { + return ApiConstants.avatarPlaceHolder; + } +} + +String getTrailerUrl(Map json) { + List videos = json['videos']['results']; + if (videos.isNotEmpty) { + List trailers = videos.where((e) => e['type'] == 'Trailer').toList(); + if (trailers.isNotEmpty) { + return ApiConstants.baseVideoUrl + trailers.last['key']; + } else { + return ''; + } + } else { + return ''; + } +} + +void navigateToDetailsView(BuildContext context, Media media) { + if (media.isMovie) { + // context.pushNamed( + // AppRoutes.movieDetailsRoute, + // params: {'movieId': media.tmdbID.toString()}, + // ); + } else { + // context.pushNamed( + // AppRoutes.tvShowDetailsRoute, + // params: {'tvShowId': media.tmdbID.toString()}, + // ); + } +} + +class Media { + bool get isMovie => false; + + get tmdbID => null; +} + +void showCustomBottomSheet(BuildContext context, Widget child) { + final size = MediaQuery.of(context).size.height; + showModalBottomSheet( + context: context, + backgroundColor: AppColors.secondaryBackground, + shape: const RoundedRectangleBorder( + borderRadius: BorderRadius.vertical( + top: Radius.circular(AppSize.s20), + ), + ), + builder: (context) { + return SizedBox( + height: size * 0.5, + child: child, + ); + }, + ); +} + +void showSnackBar(BuildContext context, String content) { + final snackBar = SnackBar(content: Text(content)); + ScaffoldMessenger.of(context) + ..hideCurrentSnackBar() + ..showSnackBar(snackBar); +} diff --git a/flutter/lib/utils/ui/auto_ui.dart b/flutter/lib/utils/ui/auto_ui.dart new file mode 100644 index 0000000..332a236 --- /dev/null +++ b/flutter/lib/utils/ui/auto_ui.dart @@ -0,0 +1,176 @@ +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'dart:math'; +import 'dart:ui' as ui; + +// ui适配 +class UiUtil { + static const Size _defaultSize = Size(360, 690); + + static UiUtil? _instance; + + static UiUtil get instance => UiUtil(); + + /// UI设计中手机尺寸 + Size? _uiSize; + + /// 控制字体是否要根据系统的“字体大小”辅助选项来进行缩放。默认值为false。 + late bool _allowFontScaling; + + ///屏幕方向 + Orientation? _orientation; + + double? _pixelRatio; + double? _textScaleFactor; + late double _statusBarHeight; + late double _bottomBarHeight; + + double? _screenWidth; + double? _screenHeight; + + factory UiUtil() { + if (_instance == null) { + _instance = UiUtil._internal(); + } + return _instance!; + } + + UiUtil._internal() { + var window = WidgetsBinding.instance.window; + _pixelRatio = window.devicePixelRatio; + _statusBarHeight = window.padding.top; + _bottomBarHeight = window.padding.bottom; + _textScaleFactor = window.textScaleFactor; + _allowFontScaling = false; + _uiSize = _defaultSize; + } + + static void init({ + BuildContext? context, + Size designSize = _defaultSize, + Orientation orientation = Orientation.portrait, + bool allowFontScaling = false, + }) { + instance._init( + context: context, + designSize: designSize, + orientation: orientation, + allowFontScaling: allowFontScaling, + ); + } + + void _init({ + BuildContext? context, + Size? designSize, + Orientation orientation = Orientation.portrait, + bool allowFontScaling = false, + }) { + this._uiSize = designSize; + this._allowFontScaling = allowFontScaling; + this._orientation = orientation; + + if (orientation == Orientation.portrait) { + this._screenWidth = MediaQuery.of(context!).size.width; + this._screenHeight = MediaQuery.of(context).size.height; + } else { + this._screenWidth = MediaQuery.of(context!).size.height; + this._screenHeight = MediaQuery.of(context).size.width; + } + } + + ///获取屏幕方向 + Orientation? get orientation => _orientation; + + /// 每个逻辑像素的字体像素数,字体的缩放比例 + double? get textScaleFactor => _textScaleFactor; + + /// 设备的像素密度 + double? get pixelRatio => _pixelRatio; + + /// 当前设备宽度 dp + double get screenWidth => _screenWidth ?? _defaultSize.width; + + ///当前设备高度 dp + double get screenHeight => _screenHeight ?? _defaultSize.height; + + /// 状态栏高度 dp 刘海屏会更高 + double get statusBarHeight => _statusBarHeight / _pixelRatio!; + + /// 底部安全区距离 dp + double get bottomBarHeight => _bottomBarHeight / _pixelRatio!; + + /// 实际尺寸与UI设计的比例 + double get scaleWidth => (_screenWidth ?? _uiSize!.width) / _uiSize!.width; + + double get scaleHeight => (_screenWidth ?? _uiSize!.height) / _uiSize!.height; + + double get scaleText => min(scaleWidth, scaleHeight); + + /// 根据UI设计的设备宽度适配 + double setWidth(num width) => width * scaleWidth; + + /// 根据UI设计的设备高度适配 + /// 高度适配主要针对想根据UI设计的一屏展示一样的效果 + double setHeight(num height) => height * scaleHeight; + + ///根据宽度或高度中的较小值进行适配 + double radius(num r) => r * scaleText; + + ///字体大小适配方法 + double setSp(num fontSize, {bool? allowFontScalingSelf}) => + allowFontScalingSelf == null + ? (_allowFontScaling + ? (fontSize * scaleText) * _textScaleFactor! + : (fontSize * scaleText)) + : (allowFontScalingSelf + ? (fontSize * scaleText) * _textScaleFactor! + : (fontSize * scaleText)); +} + +///适配文字 +@deprecated +num setSp(num size) => UiUtil().setSp(size); + +///自动适配,后面方便扩展 +@deprecated +num auto(num size) => UiUtil().setWidth(size); + +extension NumExtend on num { + ///自动适配移动界面 + double get dp { + //如果没初始化,需要初始化,防止web端直接导航页面报错 + AutoUi.init(); + return UiUtil().setWidth(this); + } + + ///配置文字,文字适配请用sp单位 + double get sp { + //如果没初始化,需要初始化,防止web端直接导航页面报错 + AutoUi.init(); + return UiUtil().setWidth(this); + } +} + +class AutoUi { + static AutoUi? _instance; + + static void init() { + if (_instance == null) { + _instance = AutoUi(); + initAutoUi(Get.context); + } + } +} + +//界面适配 +void initAutoUi(BuildContext? context) { + if (context != null) return; + + UiUtil.init( + // 通过context获取设备像素大小 + context: context, + // 设计尺寸 + // designSize: Size(1920 / 2.72, 1080 / 2.72), + designSize: Size(1920, 1080), + ); +} diff --git a/flutter/lib/widgets/ProgressView.dart b/flutter/lib/widgets/ProgressView.dart new file mode 100644 index 0000000..e7e46b5 --- /dev/null +++ b/flutter/lib/widgets/ProgressView.dart @@ -0,0 +1,18 @@ +import 'package:flutter/material.dart'; +import 'package:sail/constant/app_colors.dart'; + +class ProgressView extends StatelessWidget { + const ProgressView({Key? key}) : super(key: key); + + @override + Widget build(BuildContext context) { + return const Center( + child: Padding( + padding: EdgeInsets.all(8.0), + child: CircularProgressIndicator( + color: AppColors.yellowColor, + ), + ), + ); + } +} diff --git a/flutter/lib/widgets/bottom_block.dart b/flutter/lib/widgets/bottom_block.dart new file mode 100644 index 0000000..5ecb885 --- /dev/null +++ b/flutter/lib/widgets/bottom_block.dart @@ -0,0 +1,13 @@ +import 'package:flutter/material.dart'; + +class BottomBlock extends StatelessWidget { + const BottomBlock({Key? key}) : super(key: key); + + @override + Widget build(BuildContext context) { + return Container( + height: 100, + color: Colors.transparent, + ); + } +} diff --git a/flutter/lib/widgets/circle_painter.dart b/flutter/lib/widgets/circle_painter.dart new file mode 100644 index 0000000..ceab51a --- /dev/null +++ b/flutter/lib/widgets/circle_painter.dart @@ -0,0 +1,37 @@ +import 'dart:math'; + +import 'package:flutter/material.dart'; + +/// +/// desc: +/// +class CirclePainter extends CustomPainter { + final double progress; + + final double strokeWidth; + final Color color; + + Paint _paint = Paint(); + + CirclePainter( + {this.progress = 0.0, this.strokeWidth = 1.0, this.color = Colors.white}); + + @override + void paint(Canvas canvas, Size size) { + _paint + ..style = PaintingStyle.stroke + ..strokeWidth = strokeWidth + ..color = color; + + double radius = min(size.width, size.height) / 2; + canvas.drawCircle( + Offset(size.width / 2, size.height / 2), radius * progress, _paint); + } + + @override + bool shouldRepaint(covariant CirclePainter old) { + return progress != old.progress || + strokeWidth != old.strokeWidth || + color != old.color; + } +} diff --git a/flutter/lib/widgets/connection_stats.dart b/flutter/lib/widgets/connection_stats.dart new file mode 100644 index 0000000..76d6ff3 --- /dev/null +++ b/flutter/lib/widgets/connection_stats.dart @@ -0,0 +1,232 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:provider/provider.dart'; +import 'package:sail/channels/Platform.dart'; +import 'package:sail/constant/app_colors.dart'; +import 'package:sail/model/themeCollection.dart'; +import 'package:sail/models/app_model.dart'; +import 'package:sail/models/server_model.dart'; +import 'package:sail/models/user_model.dart'; +import 'package:sail/utils/l10n.dart'; +import 'package:sail/utils/navigator_util.dart'; + +class ConnectionStats extends StatefulWidget { + const ConnectionStats({Key? key}) : super(key: key); + + @override + ConnectionStatsState createState() => ConnectionStatsState(); +} + +class ConnectionStatsState extends State { + late UserModel _userModel; + late AppModel _appModel; + late ServerModel _serverModel; + + @override + void didChangeDependencies() { + super.didChangeDependencies(); + + _userModel = Provider.of(context); + _appModel = Provider.of(context); + _serverModel = Provider.of(context); + } + + String toDateString(DateTime date) { + var duration = DateTime.now().difference(date); + var microseconds = duration.inMicroseconds; + var sign = (microseconds < 0) ? "-" : ""; + + var hours = microseconds ~/ Duration.microsecondsPerHour; + microseconds = microseconds.remainder(Duration.microsecondsPerHour); + var hoursPadding = hours.abs() < 10 ? "0" : ""; + + if (microseconds < 0) microseconds = -microseconds; + + var minutes = microseconds ~/ Duration.microsecondsPerMinute; + microseconds = microseconds.remainder(Duration.microsecondsPerMinute); + + var minutesPadding = minutes < 10 ? "0" : ""; + + var seconds = microseconds ~/ Duration.microsecondsPerSecond; + microseconds = microseconds.remainder(Duration.microsecondsPerSecond); + + var secondsPadding = seconds < 10 ? "0" : ""; + + return "$sign$hoursPadding${hours.abs()}:" + "$minutesPadding$minutes:" + "$secondsPadding$seconds"; + } + + @override + Widget build(BuildContext context) { + bool isDarkTheme = Provider.of(context).isDarkActive; + Color colortheme = isDarkTheme ? Colors.white : Colors.black; + //isDarkTheme ? Colors.white : Colors.black + + if (Platform.isAndroid || Platform.isMacOS) { + return Column( + children: [ + Padding( + padding: + EdgeInsets.symmetric(horizontal: ScreenUtil().setWidth(75)), + child: TextButton( + onPressed: () => _userModel.checkHasLogin( + context, () => NavigatorUtil.goServerList(context)), + child: + Row(mainAxisAlignment: MainAxisAlignment.center, children: [ + Icon(Icons.map, + color: isDarkTheme ? Colors.white : Colors.black, + size: 20), + Text(context.l10n.clicktoselectanothernode, + style: TextStyle( + fontSize: 18, + color: isDarkTheme ? Colors.white : Colors.black)), + Icon(Icons.chevron_right, + color: isDarkTheme ? Colors.white : Colors.black, + size: 20) + ])), + ), + ], + ); + } + + return Column( + children: [ + Text(toDateString(_appModel.connectedDate!), + style: TextStyle( + fontWeight: FontWeight.bold, + fontSize: 40, + color: colortheme, + )), + Padding( + padding: EdgeInsets.symmetric(horizontal: ScreenUtil().setWidth(75)), + child: TextButton( + onPressed: () => _userModel.checkHasLogin( + context, () => NavigatorUtil.goServerList(context)), + child: + Row(mainAxisAlignment: MainAxisAlignment.center, children: [ + Icon(Icons.map, + color: isDarkTheme ? Colors.white : Colors.black, size: 20), + // Text(context.l10n.clicktoselectanothernode, + Text(" ${_serverModel.selectServerEntity?.name}", + style: TextStyle( + fontSize: 18, + color: isDarkTheme ? Colors.white : Colors.black)), + Icon(Icons.chevron_right, + color: isDarkTheme ? Colors.white : Colors.black, size: 20) + ])), + ), + /* Padding( + padding: EdgeInsets.symmetric( + horizontal: ScreenUtil().setWidth(75), vertical: 10), + child: Row( + children: [ + // Download Stats + + Row(children: [ + // Download Icon + Container( + decoration: BoxDecoration( + boxShadow: const [ + BoxShadow( + color: Color(0xffff0000), + blurRadius: 13, + spreadRadius: -2) + ], + color: const Color(0xffff0000), + borderRadius: BorderRadius.circular(13)), + padding: const EdgeInsets.all(5), + child: const Icon( + Icons.arrow_downward, + color: Colors.white, + ), + ), + + // Labels + Padding( + padding: const EdgeInsets.symmetric(horizontal: 8), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text( + "下行速度", + style: TextStyle( + color: AppColors.grayColor, + fontWeight: FontWeight.w500), + ), + RichText( + text: const TextSpan( + style: TextStyle( + color: AppColors.grayColor, + fontWeight: FontWeight.w900), + children: [ + TextSpan(text: "75.9"), + TextSpan( + text: " KB/s", + style: + TextStyle(fontWeight: FontWeight.normal)), + ]), + ) + ], + ), + ) + ]), + + Expanded(child: Container()), + + // Upload Stats + Row(children: [ + // Upload Icon + Container( + decoration: BoxDecoration( + boxShadow: const [ + BoxShadow( + color: Color(0xff03a305), + blurRadius: 13, + spreadRadius: -2) + ], + color: const Color(0xff03a305), + borderRadius: BorderRadius.circular(13)), + padding: const EdgeInsets.all(5), + child: const Icon( + Icons.arrow_upward, + color: Colors.white, + ), + ), + + // Labels + Padding( + padding: const EdgeInsets.symmetric(horizontal: 8), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text( + "上行速度", + style: TextStyle( + color: AppColors.grayColor, + fontWeight: FontWeight.w500), + ), + RichText( + text: const TextSpan( + style: TextStyle( + color: AppColors.grayColor, + fontWeight: FontWeight.w900), + children: [ + TextSpan(text: "29.6"), + TextSpan( + text: " KB/s", + style: + TextStyle(fontWeight: FontWeight.normal)), + ]), + ) + ], + ), + ) + ]), + ], + ), + )*/ + ], + ); + } +} diff --git a/flutter/lib/widgets/home_widget.dart b/flutter/lib/widgets/home_widget.dart new file mode 100644 index 0000000..795e40e --- /dev/null +++ b/flutter/lib/widgets/home_widget.dart @@ -0,0 +1,189 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:flutter_svg/svg.dart'; +import 'package:provider/provider.dart'; +import 'package:sail/constant/app_colors.dart'; +import 'package:sail/model/themeCollection.dart'; +import 'package:sail/models/app_model.dart'; +import 'package:sail/models/plan_model.dart'; +import 'package:sail/models/server_model.dart'; +import 'package:sail/models/user_model.dart'; +import 'package:sail/models/user_subscribe_model.dart'; +import 'package:sail/resources/app_colors.dart'; +import 'package:sail/utils/l10n.dart'; +import 'package:sail/widgets/bottom_block.dart'; +import 'package:sail/widgets/connection_stats.dart'; +import 'package:sail/widgets/logo_bar.dart'; +import 'package:sail/widgets/my_subscribe.dart'; +import 'package:sail/widgets/plan_list.dart'; +import 'package:sail/widgets/power_btn.dart'; +import 'package:sail/widgets/select_location.dart'; +import 'package:sail/utils/common_util.dart'; +import 'package:sail/widgets/watermuticicel.dart'; + +class HomeWidget extends StatefulWidget { + const HomeWidget({Key? key}) : super(key: key); + + @override + HomeWidgetState createState() => HomeWidgetState(); +} + +class HomeWidgetState extends State + with AutomaticKeepAliveClientMixin { + late AppModel _appModel; + late UserModel _userModel; + late UserSubscribeModel _userSubscribeModel; + late PlanModel _planModel; + late ServerModel _serverModel; + + customListTile(BuildContext context, String title, String icon, + {Widget? trailing, String? subtitle, VoidCallback? onTap}) => + ListTile( + onTap: onTap ?? null, + minLeadingWidth: 35, + dense: true, + title: + Text(title, style: Theme.of(context).primaryTextTheme.subtitle1), + subtitle: subtitle != null + ? Text( + subtitle, + style: Theme.of(context).primaryTextTheme.caption, + ) + : null, + leading: SvgPicture.asset( + icon, + color: Theme.of(context).colorScheme.secondary, + width: 24, + alignment: Alignment.centerRight, + ), + trailing: trailing ?? null); + + @override + bool get wantKeepAlive => true; + + final ScrollController _controller = ScrollController(); + + @override + void initState() { + super.initState(); + + // _controller.addListener(() { + // //print(_controller.offset); + // }); + } + + @override + void dispose() { + //为了避免内存泄露,需要调用_controller.dispose + _controller.dispose(); + super.dispose(); + } + + @override + void didChangeDependencies() { + super.didChangeDependencies(); + _appModel = Provider.of(context); + _userModel = Provider.of(context); + _userSubscribeModel = Provider.of(context); + _planModel = Provider.of(context); + _serverModel = Provider.of(context); + // print("didChangeDependencies"); + } + + @override + Widget build(BuildContext context) { + super.build(context); + bool isDarkTheme = Provider.of(context).isDarkActive; + + final birthday = DateTime(2023, 06, 12); + //当前日期 + final date2 = DateTime.now(); + //比较相差的天数 + final difference = date2.difference(birthday).inDays; + print("比较相差的天数DateTime(2023, 06, 12):${difference}"); + return SingleChildScrollView( + controller: _controller, + physics: const BouncingScrollPhysics(), + child: Column( + // mainAxisAlignment: MainAxisAlignment.start, + // crossAxisAlignment: CrossAxisAlignment.center, + children: [ + // // Logo bar + // Padding( + // padding: EdgeInsets.only( + // left: ScreenUtil().setWidth(75), + // right: ScreenUtil().setWidth(75)), + // child: LogoBar( + // isOn: _appModel.isOn, + // ), + // ), + + const SizedBox( + height: 20, + ), + + // SvgPicture.asset( + // 'assets/map.svg', + // height: 230, + // width: ScreenUtil().screenWidth, + // color: _appModel.isOn + // ? AppColors.greenColor + // : isDarkTheme + // ? AppColors.darkSurfaceColor + // : Color.fromARGB(255, 133, 132, 132), + // ), + PowerButton(), + const SizedBox( + height: 40, + ), + // Padding( + // padding: EdgeInsets.symmetric(horizontal: 75, vertical: 30), + // child: Stack(alignment: Alignment.center, children: [ + // // Image.asset( + // // "assets/map.png", + // // scale: 4, + // // color: _appModel.isOn + // // ? const Color(0x15000000) + // // : AppColors.darkSurfaceColor, + // // ), + // const PowerButton(), + // ])), + + _appModel.isOn + ? (_serverModel.selectServerEntity?.name != null + ? Center( + child: Text('${context.l10n.yilianjie}', + style: TextStyle( + fontWeight: FontWeight.bold, + color: isDarkTheme ? Colors.white : Colors.black, + fontSize: 25, + ))) + : Center( + child: Text(context.l10n.yilianjie, + style: TextStyle( + fontWeight: FontWeight.bold, + color: isDarkTheme ? Colors.white : Colors.black, + fontSize: 25, + )))) + : Center( + child: Text(context.l10n.yiduankai2, + style: TextStyle( + fontWeight: FontWeight.bold, + color: isDarkTheme ? Colors.white : Colors.black, + fontSize: 25, + ))), + const SizedBox( + height: 20, + ), + _appModel.isOn + ? ConnectionStats() + : const SizedBox( + height: 1, + ), + // const SelectLocation(), + + const BottomBlock(), + ], + )); + } +} diff --git a/flutter/lib/widgets/logo_bar.dart b/flutter/lib/widgets/logo_bar.dart new file mode 100644 index 0000000..d8a3773 --- /dev/null +++ b/flutter/lib/widgets/logo_bar.dart @@ -0,0 +1,169 @@ +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:provider/provider.dart'; +import 'package:sail/constant/app_colors.dart'; +import 'package:sail/constant/app_strings.dart'; +import 'package:sail/models/app_model.dart'; +import 'package:sail/models/user_model.dart'; +import 'package:sail/models/user_subscribe_model.dart'; +import 'package:sail/utils/l10n.dart'; +import 'package:sail/utils/navigator_util.dart'; + +class LogoBar extends StatelessWidget { + const LogoBar({ + Key? key, + required this.isOn, + }) : super(key: key); + + final bool isOn; + + void onLogoutTap(context, _userModel) { + showDialog( + context: context, + builder: (BuildContext context) { + return CupertinoAlertDialog( + title: Text(context.l10n.alertsss), + content: Column( + children: [ + SizedBox( + height: 10, + ), + Align( + child: Text( + context.l10n.wanttoexit, + style: TextStyle(fontSize: 18), + ), + alignment: Alignment(0, 0), + ), + ], + ), + actions: [ + CupertinoDialogAction( + child: Text(context.l10n.cancelss), + onPressed: () { + Navigator.pop(context); + //print("取消"); + }, + ), + CupertinoDialogAction( + child: Text( + context.l10n.exitout, + style: TextStyle(color: Colors.red), + ), + onPressed: () { + //print("确定"); + _userModel.logout(); + NavigatorUtil.goLogin(context); + }, + ), + ], + ); + }); + } + + @override + Widget build(BuildContext context) { + AppModel appModel = Provider.of(context); + UserModel userModel = Provider.of(context); + UserSubscribeModel userSubscribeModel = + Provider.of(context); + + return Container( + margin: EdgeInsets.only(top: ScreenUtil().setWidth(60)), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + AppStrings.appName, + style: TextStyle( + fontWeight: FontWeight.w900, + fontSize: ScreenUtil().setSp(60), + color: isOn ? AppColors.whiteColor : Colors.white, + ), + ), + Row( + children: [ + // Material( + // color: isOn ? const Color(0x66000000) : AppColors.darkSurfaceColor, + // borderRadius: BorderRadius.circular(ScreenUtil().setWidth(30)), + // child: InkWell( + // borderRadius: BorderRadius.circular(ScreenUtil().setWidth(30)), + // onTap: () => NavigatorUtil.goToCrisp(context), + // child: Container( + // padding: EdgeInsets.symmetric( + // vertical: ScreenUtil().setWidth(10), horizontal: ScreenUtil().setWidth(30)), + // child: Text( + // "客服", + // style: + // TextStyle(fontSize: ScreenUtil().setSp(36), color: Colors.white, fontWeight: FontWeight.w500), + // ), + // ), + // ), + // ), + // Padding(padding: EdgeInsets.only(left: ScreenUtil().setWidth(15))), + Material( + color: + isOn ? const Color(0x66000000) : AppColors.darkSurfaceColor, + borderRadius: BorderRadius.circular(ScreenUtil().setWidth(30)), + child: InkWell( + borderRadius: + BorderRadius.circular(ScreenUtil().setWidth(30)), + onTap: () => appModel.jumpToPage(3), + child: Container( + padding: EdgeInsets.symmetric( + vertical: ScreenUtil().setWidth(10), + horizontal: ScreenUtil().setWidth(30)), + child: Text( + userSubscribeModel?.userSubscribeEntity?.email ?? + context.l10n.welcome, + style: TextStyle( + fontSize: ScreenUtil().setSp(36), + color: Colors.white, + fontWeight: FontWeight.w500), + ), + ), + ), + ), + userModel.isLogin + ? Padding( + padding: EdgeInsets.only(left: ScreenUtil().setWidth(15))) + : Container(), + userModel.isLogin + ? Material( + color: isOn + ? const Color(0x66000000) + : AppColors.darkSurfaceColor, + borderRadius: + BorderRadius.circular(ScreenUtil().setWidth(30)), + child: InkWell( + borderRadius: + BorderRadius.circular(ScreenUtil().setWidth(30)), + onTap: () { + onLogoutTap(context, userModel); + // userModel.logout(); + // NavigatorUtil.goLogin(context); + }, + child: Container( + padding: EdgeInsets.symmetric( + vertical: ScreenUtil().setWidth(10), + horizontal: ScreenUtil().setWidth(30)), + child: Text( + context.l10n.logout, + style: TextStyle( + fontSize: ScreenUtil().setSp(36), + color: Colors.white, + fontWeight: FontWeight.w500), + ), + ), + ), + ) + : Container(), + ], + ) + ], + ), + ); + } +} diff --git a/flutter/lib/widgets/my_subscribe.dart b/flutter/lib/widgets/my_subscribe.dart new file mode 100644 index 0000000..557aea3 --- /dev/null +++ b/flutter/lib/widgets/my_subscribe.dart @@ -0,0 +1,299 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:fluttertoast/fluttertoast.dart'; +import 'package:intl/intl.dart'; +import 'package:provider/provider.dart'; +import 'package:sail/constant/app_colors.dart'; +import 'package:sail/entity/user_subscribe_entity.dart'; +import 'package:sail/model/themeCollection.dart'; +import 'package:sail/models/app_model.dart'; +import 'package:sail/models/user_model.dart'; +import 'package:sail/router/application.dart'; +import 'package:sail/routes/OnceNotice.dart'; +import 'package:sail/utils/l10n.dart'; +import 'package:sail/utils/navigator_util.dart'; +import 'package:sail/utils/transfer_util.dart'; + +class MySubscribe extends StatefulWidget { + const MySubscribe( + {Key? key, + required this.isLogin, + required this.isOn, + required this.userSubscribeEntity}) + : super(key: key); + + final bool isLogin; + final bool isOn; + final UserSubscribeEntity? userSubscribeEntity; + + @override + MySubscribeState createState() => MySubscribeState(); +} + +class MySubscribeState extends State { + late AppModel _appModel; + late UserModel _userModel; + + @override + void didChangeDependencies() { + super.didChangeDependencies(); + _appModel = Provider.of(context); + _userModel = Provider.of(context); + } + + @override + Widget build(BuildContext context) { + bool isDarkTheme = Provider.of(context).isDarkActive; + //,color: isDarkTheme ? Colors.white : Colors.black, + //widget.isOn + return Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + Padding( + padding: EdgeInsets.only(left: ScreenUtil().setWidth(75)), + child: Text( + context.l10n.yidingyue, + style: TextStyle( + fontSize: ScreenUtil().setSp(32), + color: isDarkTheme ? Colors.grey[400] : AppColors.grayColor, + fontWeight: FontWeight.w500), + ), + ), + SizedBox(height: ScreenUtil().setWidth(30)), + SingleChildScrollView( + scrollDirection: Axis.horizontal, + padding: EdgeInsets.only(bottom: ScreenUtil().setWidth(10)), + child: _contentWidget(), + ) + ], + ); + } + + Widget _contentWidget() { + // print(widget.userSubscribeEntity?.plan.toJson().toString()); + if (widget.userSubscribeEntity?.plan == null) { + return _emptyWidget(); + } + + // if (widget.userSubscribeEntity!.expiredAt * 1000 < + // DateTime.now().millisecondsSinceEpoch) { + // return _timeOutWidget(); + // } + + return _buildConnections(); + } + + Widget _emptyWidget() { + bool isDarkTheme = Provider.of(context).isDarkActive; + + return Container( + width: ScreenUtil().setWidth(1080), + height: ScreenUtil().setWidth(200), + padding: EdgeInsets.symmetric( + horizontal: ScreenUtil().setWidth(75), + vertical: ScreenUtil().setWidth(0)), + child: Material( + elevation: widget.isOn ? 3 : 0, + borderRadius: BorderRadius.circular(ScreenUtil().setWidth(30)), + color: isDarkTheme + ? AppColors.darkSurfaceColor + : const Color.fromARGB(255, 196, 194, 194), + child: Container( + alignment: Alignment.center, + child: Text( + !widget.isLogin + ? context.l10n.qingxiandenglu + : context.l10n.qingxiandingyuetaocan, + style: TextStyle( + fontWeight: FontWeight.bold, + fontSize: ScreenUtil().setWidth(40), + color: isDarkTheme ? Colors.white : Colors.black), + ), + ), + ), + ); + } + + Widget _timeOutWidget() { + return Container( + width: ScreenUtil().setWidth(1080), + height: ScreenUtil().setWidth(200), + padding: EdgeInsets.symmetric( + horizontal: ScreenUtil().setWidth(75), + vertical: ScreenUtil().setWidth(0)), + child: Material( + elevation: widget.isOn ? 3 : 0, + borderRadius: BorderRadius.circular(ScreenUtil().setWidth(30)), + color: widget.isOn ? Colors.white : AppColors.darkSurfaceColor, + child: Container( + alignment: Alignment.center, + child: Text( + context.l10n.taocanguoqichongxindingyue, + style: TextStyle( + fontWeight: FontWeight.bold, + fontSize: ScreenUtil().setWidth(40), + color: widget.isOn ? Colors.black : Colors.white), + ), + ), + ), + ); + } + + Widget _buildConnections() { + bool isDarkTheme = Provider.of(context).isDarkActive; + return Container( + width: ScreenUtil().setWidth(1080), + height: ScreenUtil().setWidth(240), + padding: EdgeInsets.symmetric( + horizontal: ScreenUtil().setWidth(75), + vertical: ScreenUtil().setWidth(0)), + child: Material( + elevation: widget.isOn ? 3 : 0, + borderRadius: BorderRadius.circular(ScreenUtil().setWidth(30)), + color: isDarkTheme + ? AppColors.whiteColor.withAlpha(20) + : Colors.grey[200], + child: Container( + padding: EdgeInsets.symmetric( + vertical: ScreenUtil().setWidth(30), + horizontal: ScreenUtil().setWidth(40)), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + widget.userSubscribeEntity!.plan?.name ?? "", + style: TextStyle( + fontWeight: FontWeight.bold, + fontSize: ScreenUtil().setSp(35), + color: + !isDarkTheme ? Colors.black : Colors.white), + ), + Padding( + padding: EdgeInsets.only( + left: ScreenUtil().setWidth(15))), + Text( + widget.userSubscribeEntity?.expiredAt != 0 + ? '${DateFormat('yyyy-MM-dd HH:mm:ss').format(DateTime.fromMillisecondsSinceEpoch(widget.userSubscribeEntity!.expiredAt * 1000))} ${context.l10n.guoqi}' + : context.l10n.chagnqiyouxiao, + style: TextStyle( + fontWeight: FontWeight.bold, + fontSize: ScreenUtil().setSp(35), + color: + !isDarkTheme ? Colors.black : Colors.white), + ), + ], + ), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + width: ScreenUtil().setWidth(480), + padding: EdgeInsets.only( + bottom: ScreenUtil().setWidth(15)), + child: LinearProgressIndicator( + backgroundColor: + !isDarkTheme ? Colors.grey[400] : Colors.white, + valueColor: + AlwaysStoppedAnimation(Colors.green[600]), + value: double.parse(((widget + .userSubscribeEntity!.u ?? + 0 + widget.userSubscribeEntity!.d ?? + 0) / + widget.userSubscribeEntity! + .transferEnable ?? + 1) + .toStringAsFixed(2)), + ), + ), + Text( + '${context.l10n.yiyong} ${TransferUtil().toHumanReadable(widget.userSubscribeEntity!.u + widget.userSubscribeEntity!.d)} / ${context.l10n.zongji} ${TransferUtil().toHumanReadable(widget.userSubscribeEntity!.transferEnable)}', + style: TextStyle( + fontWeight: FontWeight.bold, + fontSize: ScreenUtil().setSp(26), + color: + !isDarkTheme ? Colors.black : Colors.white), + ) + ], + ) + ], + ), + Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + /*Container( + width: ScreenUtil().setWidth(160), + height: ScreenUtil().setWidth(90), + margin: EdgeInsets.only(right: ScreenUtil().setWidth(10)), + child: TextButton( + style: TextButton.styleFrom( + backgroundColor: Colors.green, + foregroundColor: Colors.green[700], + disabledForegroundColor: Colors.black, + disabledBackgroundColor: Colors.grey, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(20.0)), + ), + onPressed: () { + _userModel.checkHasLogin( + context, + () => Navigator.of(context).push( + MaterialPageRoute( + builder: (builder) => const OnceNotice())) + + /*Fluttertoast.showToast( + msg: context.l10n.qingxuanzefuwqjiedian, + toastLength: Toast.LENGTH_SHORT, + gravity: ToastGravity.CENTER, + timeInSecForIosWeb: 2, + textColor: Colors.white, + fontSize: 14.0)*/ + //NavigatorUtil.goPlan(context) + ); + //_appModel.getTunnelLog(); + }, + child: Text( + context.l10n.renew, + style: TextStyle( + color: Colors.white, + fontSize: ScreenUtil().setSp(36)), + ), + ), + ), + SizedBox( + width: ScreenUtil().setWidth(160), + height: ScreenUtil().setWidth(90), + child: TextButton( + style: TextButton.styleFrom( + backgroundColor: Colors.green, + foregroundColor: Colors.green[700], + disabledForegroundColor: Colors.black, + disabledBackgroundColor: Colors.grey, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(20.0)), + ), + onPressed: () { + _appModel.getTunnelConfiguration(); + }, + child: Text( + '重置', + style: TextStyle( + color: Colors.white, + fontSize: ScreenUtil().setSp(36)), + ), + ), + )*/ + ], + ) + ], + ), + ), + )); + } +} diff --git a/flutter/lib/widgets/plan_list.dart b/flutter/lib/widgets/plan_list.dart new file mode 100644 index 0000000..febbc3d --- /dev/null +++ b/flutter/lib/widgets/plan_list.dart @@ -0,0 +1,159 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:provider/provider.dart'; +import 'package:sail/constant/app_colors.dart'; +import 'package:sail/entity/plan_entity.dart'; +import 'package:sail/entity/user_subscribe_entity.dart'; +import 'package:sail/models/user_model.dart'; +import 'package:sail/utils/l10n.dart'; +import 'package:sail/utils/navigator_util.dart'; + +class PlanList extends StatefulWidget { + const PlanList( + {Key? key, + required this.isOn, + required this.userSubscribeEntity, + required this.plans}) + : super(key: key); + + final bool isOn; + final UserSubscribeEntity? userSubscribeEntity; + final List plans; + + @override + PlanListState createState() => PlanListState(); +} + +class PlanListState extends State with AutomaticKeepAliveClientMixin { + late UserModel _userModel; + + @override + bool get wantKeepAlive => true; + + @override + void didChangeDependencies() { + super.didChangeDependencies(); + _userModel = Provider.of(context); + } + + @override + Widget build(BuildContext context) { + super.build(context); + + return Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + Padding( + padding: EdgeInsets.only(left: ScreenUtil().setWidth(75)), + child: Text( + context.l10n.dinggoutaocan, + style: TextStyle( + fontSize: ScreenUtil().setSp(32), + color: widget.isOn ? AppColors.grayColor : Colors.grey[400], + fontWeight: FontWeight.w500), + ), + ), + SizedBox(height: ScreenUtil().setWidth(30)), + SingleChildScrollView( + scrollDirection: Axis.horizontal, + padding: EdgeInsets.only(bottom: ScreenUtil().setWidth(10)), + child: Row(children: _buildConnections()), + ) + ], + ); + } + + List _buildConnections() { + if (widget.userSubscribeEntity == null) { + return [Container()]; + } + + int boughtPlanId = widget.userSubscribeEntity!.expiredAt * 1000 < + DateTime.now().millisecondsSinceEpoch + ? 0 + : widget.userSubscribeEntity?.planId ?? 0; + + List list = + List.generate(widget.plans.length * 2 + 1, (i) => Container()); + + list[0] = SizedBox(width: ScreenUtil().setWidth(75)); + + for (var i = 1; i < list.length; i++) { + list[i] = Material( + elevation: widget.isOn + ? widget.plans[i ~/ 2].id == boughtPlanId + ? 3 + : 0 + : 0, + borderRadius: BorderRadius.circular(ScreenUtil().setWidth(30)), + color: widget.isOn + ? widget.plans[i ~/ 2].id == boughtPlanId + ? AppColors.darkSurfaceColor + : const Color(0x15000000) + : AppColors.darkSurfaceColor, + child: InkWell( + borderRadius: BorderRadius.circular(ScreenUtil().setWidth(30)), + onTap: widget.isOn && widget.plans[i ~/ 2].id == boughtPlanId + ? null + : () => _userModel.checkHasLogin( + context, () => NavigatorUtil.goPlan(context)), + child: Container( + // width: ScreenUtil().setWidth(300), + height: ScreenUtil().setWidth(200), + padding: EdgeInsets.symmetric( + horizontal: ScreenUtil().setWidth(40), + vertical: ScreenUtil().setWidth(30)), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + // Country name + Text( + widget.plans[i ~/ 2].name, + style: TextStyle( + fontWeight: FontWeight.bold, + fontSize: ScreenUtil().setSp(32), + color: widget.isOn + ? widget.plans[i ~/ 2].id == boughtPlanId + ? Colors.white + : Colors.white + : Colors.white), + ), + + // Connection status + Padding( + padding: EdgeInsets.only(top: ScreenUtil().setWidth(40)), + child: widget.plans[i ~/ 2].id == boughtPlanId + ? Row( + children: [ + Icon( + Icons.shield, + size: ScreenUtil().setWidth(32), + color: const Color(0xFF1abb1d), + ), + Text( + context.l10n.yidingyue, + style: TextStyle( + fontSize: ScreenUtil().setSp(32), + color: const Color(0xFF1abb1d), + fontWeight: FontWeight.bold), + ) + ], + ) + : Text(context.l10n.xuangou, + style: TextStyle( + fontSize: ScreenUtil().setSp(32), + fontWeight: FontWeight.w500, + color: + widget.isOn ? Colors.red : Colors.red)), + ) + ], + ))), + ); + + list[++i] = SizedBox(width: ScreenUtil().setWidth(30)); + } + + return list; + } +} diff --git a/flutter/lib/widgets/power_btn.dart b/flutter/lib/widgets/power_btn.dart new file mode 100644 index 0000000..6ca61de --- /dev/null +++ b/flutter/lib/widgets/power_btn.dart @@ -0,0 +1,155 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:fluttertoast/fluttertoast.dart'; +import 'package:provider/provider.dart'; +import 'package:sail/constant/app_colors.dart'; +import 'package:sail/model/themeCollection.dart'; +import 'package:sail/models/app_model.dart'; +import 'package:sail/models/server_model.dart'; +import 'package:sail/models/user_model.dart'; +import 'package:sail/utils/l10n.dart'; +import 'package:sail/utils/message_util.dart'; +import 'package:sail/utils/navigator_util.dart'; +import 'package:sail/widgets/watermuticicel.dart'; +import 'package:sail/widgets/waterrepper.dart'; + +class PowerButton extends StatefulWidget { + const PowerButton({Key? key}) : super(key: key); + + @override + PowerButtonState createState() => PowerButtonState(); +} + +class PowerButtonState extends State { + late AppModel _appModel; + late UserModel _userModel; + late ServerModel _serverModel; + bool light = false; + @override + void didChangeDependencies() { + super.didChangeDependencies(); + _appModel = Provider.of(context); + _userModel = Provider.of(context); + _serverModel = Provider.of(context); + light = _appModel.isOn; // || _appModel.isconnectordisconnct; + } + + Future pressConnectBtn() async { + if (_serverModel.selectServerEntity == null) { + Fluttertoast.showToast( + msg: context.l10n.qingxuanzefuwqjiedian, + toastLength: Toast.LENGTH_SHORT, + gravity: ToastGravity.CENTER, + timeInSecForIosWeb: 2, + textColor: Colors.white, + fontSize: 14.0); + if (_serverModel.serverEntityList.isEmpty) { + MessageUtil.toast(context.l10n.nodefornullcheckissubscripts); + } else { + NavigatorUtil.goServerList(context); + } + return; + } + + _appModel.togglePowerButton(); + } + + final MaterialStateProperty thumbIcon = + MaterialStateProperty.resolveWith( + (Set states) { + if (states.contains(MaterialState.selected)) { + return const Icon(Icons.check); + } + return const Icon(Icons.close); + }, + ); + + @override + Widget build(BuildContext context) { + // + return Column( + children: [ + _appModel.isOn + ? Container( + width: 330, + height: 330, + child: WaterRipple( + color: Colors.green, + duration: Duration(milliseconds: 2000), + ) + // WaterMultipleCircleLoading( + // color: Colors.green, + // duration: Duration(milliseconds: 2500), + // ), + ) + : Container( + height: 330, + ), + /*InkWell( + splashColor: Color.fromARGB(255, 51, 117, 54), + onTap: () => _userModel.checkHasLogin(context, pressConnectBtn), + borderRadius: BorderRadius.circular(ScreenUtil().setWidth(440)), + child: Container( + padding: EdgeInsets.all(ScreenUtil().setWidth(20)), + child: Icon( + _appModel.isOn ? Icons.toggle_on : Icons.toggle_off, + size: ScreenUtil().setWidth(420), + color: _appModel.isOn + ? Color.fromARGB(255, 47, 161, 53) + : Colors.grey, + )), + )*/ + Transform.scale( + scale: 4.0, + child: Switch( + // thumbIcon: thumbIcon, + // This bool value toggles the switch. + value: light, + activeColor: Color.fromARGB(255, 47, 161, 53), + inactiveTrackColor: + Provider.of(context).isDarkActive + ? AppColors.whiteColor.withAlpha(90) + : const Color(0xffD7D6D9), + onChanged: (bool value) { + // This is called when the user toggles the switch. + setState(() { + light = value; + + if (value) { + _userModel.checkHasLogin(context, pressConnectBtn); + } else { + _appModel.togglePowerButton(); + } + }); + }, + ), + ), + ], + ); + + /*return Container( + padding: const EdgeInsets.all(5), + decoration: BoxDecoration( + color: + _appModel.isOn ? const Color(0x20000000) : const Color(0xff606060), + borderRadius: BorderRadius.circular(ScreenUtil().setWidth(460)), + ), + child: Material( + borderRadius: BorderRadius.circular(ScreenUtil().setWidth(440)), + color: _appModel.isOn ? Color.fromARGB(255, 47, 161, 53) : Colors.grey, + child: InkWell( + splashColor: Color.fromARGB(255, 51, 117, 54), + onTap: () => _userModel.checkHasLogin(context, pressConnectBtn), + borderRadius: BorderRadius.circular(ScreenUtil().setWidth(440)), + child: Container( + padding: EdgeInsets.all(ScreenUtil().setWidth(20)), + child: Icon( + Icons.toggle_off, + size: ScreenUtil().setWidth(420), + color: Colors.white, + )), + ), + ), + );*/ + } +} diff --git a/flutter/lib/widgets/profile_widget.dart b/flutter/lib/widgets/profile_widget.dart new file mode 100644 index 0000000..af2266d --- /dev/null +++ b/flutter/lib/widgets/profile_widget.dart @@ -0,0 +1,66 @@ +import 'package:flutter/material.dart'; + +class ProfileWidget extends StatelessWidget { + const ProfileWidget( + {Key? key, required this.userName, this.avatar, required this.onTap}) + : super(key: key); + + final String? avatar; + final String userName; + final void Function() onTap; + + @override + Widget build(BuildContext context) { + return Container( + padding: const EdgeInsets.only(right: 24, left: 24), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + avatar != null + ? Row( + children: [ + // ClipOval(child: Image(image: NetworkImage(avatar!), width: 40, height: 40)), + Padding( + padding: const EdgeInsets.only(left: 12), + child: Text( + userName, + style: const TextStyle( + fontSize: 18, + fontWeight: FontWeight.w500, + color: Colors.black), + ), + ) + ], + ) + : Text( + userName, + style: const TextStyle( + fontSize: 18, + fontWeight: FontWeight.w500, + color: Colors.black), + ), + avatar != null + ? Material( + color: const Color(0x66000000), + borderRadius: BorderRadius.circular(30), + child: InkWell( + onTap: onTap, + child: Container( + padding: const EdgeInsets.symmetric( + vertical: 5, horizontal: 10), + child: const Text( + '退出', + style: TextStyle( + fontSize: 14, + color: Colors.white, + fontWeight: FontWeight.w500), + ), + ), + ), + ) + : Container(), + ], + ), + ); + } +} diff --git a/flutter/lib/widgets/recent_connection_bottom_sheet.dart b/flutter/lib/widgets/recent_connection_bottom_sheet.dart new file mode 100644 index 0000000..8236b00 --- /dev/null +++ b/flutter/lib/widgets/recent_connection_bottom_sheet.dart @@ -0,0 +1,292 @@ +import 'dart:math' as math; +import 'dart:ui'; + +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:sail/constant/app_colors.dart'; + +double minHeight = ScreenUtil().setHeight(260); +const double iconStartSize = 44; +const double iconEndSize = 120; +const double iconStartMarginTop = 36; +const double iconEndMarginTop = 80; +const double iconsVerticalSpacing = 24; +const double iconsHorizontalSpacing = 16; + +class RecentConnectionBottomSheet extends StatefulWidget { + const RecentConnectionBottomSheet({Key? key}) : super(key: key); + + @override + RecentConnectionBottomSheetState createState() => RecentConnectionBottomSheetState(); +} + +class RecentConnectionBottomSheetState extends State with SingleTickerProviderStateMixin { + late AnimationController _controller; + + double get maxHeight => MediaQuery.of(context).size.height; + + double? get headerTopMargin => lerp(20, 20 + MediaQuery.of(context).padding.top); + + double? get headerFontSize => lerp(14, 24); + + double? get itemBorderRadius => lerp(8, 24); + + double? get iconLeftBorderRadius => itemBorderRadius; + + double? get iconRightBorderRadius => lerp(8, 0); + + double? get iconSize => lerp(iconStartSize, iconEndSize); + + double? iconTopMargin(int index) => + lerp(iconStartMarginTop, iconEndMarginTop + index * (iconsVerticalSpacing + iconEndSize))! + headerTopMargin!; + + double? iconLeftMargin(int index) => lerp(index * (iconsHorizontalSpacing + iconStartSize), 0); + + @override + void initState() { + super.initState(); + _controller = AnimationController( + vsync: this, + duration: const Duration(milliseconds: 600), + ); + } + + @override + void dispose() { + _controller.dispose(); + super.dispose(); + } + + double? lerp(double min, double max) => lerpDouble(min, max, _controller.value); + + @override + Widget build(BuildContext context) { + return AnimatedBuilder( + animation: _controller, + builder: (context, child) { + return Positioned( + height: lerp(minHeight, maxHeight), + left: 0, + right: 0, + bottom: 0, + child: GestureDetector( + onTap: _toggle, + onVerticalDragUpdate: _handleDragUpdate, + onVerticalDragEnd: _handleDragEnd, + child: Container( + padding: const EdgeInsets.symmetric(horizontal: 32), + decoration: const BoxDecoration( + gradient: LinearGradient( + colors: [AppColors.themeColor, Colors.pink], begin: Alignment.topLeft, end: Alignment.bottomRight), + borderRadius: BorderRadius.vertical(top: Radius.circular(32)), + ), + child: Stack( + children: [ + const MenuButton(), + SheetHeader( + fontSize: headerFontSize, + topMargin: headerTopMargin, + ), + for (Event event in events) _buildFullItem(event), + for (Event event in events) _buildIcon(event), + ], + ), + ), + ), + ); + }, + ); + } + + Widget _buildIcon(Event event) { + int index = events.indexOf(event); + return Positioned( + height: iconSize, + width: iconSize, + top: iconTopMargin(index), + left: iconLeftMargin(index), + child: ClipRRect( + borderRadius: BorderRadius.horizontal( + left: Radius.circular(iconLeftBorderRadius!), + right: Radius.circular(iconRightBorderRadius!), + ), + child: Image.asset( + 'assets/${event.assetName}', + fit: BoxFit.cover, + alignment: Alignment(lerp(1, 0)!, 0), + ), + ), + ); + } + + Widget _buildFullItem(Event event) { + int index = events.indexOf(event); + return ExpandedEventItem( + topMargin: iconTopMargin(index), + leftMargin: iconLeftMargin(index), + height: iconSize, + isVisible: _controller.status == AnimationStatus.completed, + borderRadius: itemBorderRadius, + title: event.title, + date: event.date, + ); + } + + void _toggle() { + final bool isOpen = _controller.status == AnimationStatus.completed; + _controller.fling(velocity: isOpen ? -2 : 2); + } + + void _handleDragUpdate(DragUpdateDetails details) { + _controller.value -= details.primaryDelta! / maxHeight; + } + + void _handleDragEnd(DragEndDetails details) { + if (_controller.isAnimating || _controller.status == AnimationStatus.completed) return; + + final double flingVelocity = details.velocity.pixelsPerSecond.dy / maxHeight; + if (flingVelocity < 0.0) { + _controller.fling(velocity: math.max(2.0, -flingVelocity)); + } else if (flingVelocity > 0.0) { + _controller.fling(velocity: math.min(-2.0, -flingVelocity)); + } else { + _controller.fling(velocity: _controller.value < 0.5 ? -2.0 : 2.0); + } + } +} + +class ExpandedEventItem extends StatelessWidget { + final double? topMargin; + final double? leftMargin; + final double? height; + final bool isVisible; + final double? borderRadius; + final String title; + final String date; + + const ExpandedEventItem( + {Key? key, + required this.topMargin, + required this.height, + required this.isVisible, + required this.borderRadius, + required this.title, + required this.date, + required this.leftMargin}) + : super(key: key); + + @override + Widget build(BuildContext context) { + return Positioned( + top: topMargin, + left: leftMargin, + right: 0, + height: height, + child: AnimatedOpacity( + opacity: isVisible ? 1 : 0, + duration: const Duration(milliseconds: 200), + child: Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(borderRadius!), + color: Colors.white, + ), + padding: EdgeInsets.only(left: height!).add(const EdgeInsets.all(8)), + child: _buildContent(), + ), + ), + ); + } + + Widget _buildContent() { + return Column( + children: [ + Text(title, style: const TextStyle(fontSize: 16)), + const SizedBox(height: 8), + Row( + children: [ + Text( + '1 ticket', + style: TextStyle( + fontWeight: FontWeight.w500, + fontSize: 12, + color: Colors.grey.shade600, + ), + ), + const SizedBox(width: 8), + Text( + date, + style: const TextStyle( + fontWeight: FontWeight.w300, + fontSize: 12, + color: Colors.grey, + ), + ), + ], + ), + const Spacer(), + Row( + children: [ + Icon(Icons.place, color: Colors.grey.shade400, size: 16), + Text( + 'Science Park 10 25A', + style: TextStyle(color: Colors.grey.shade400, fontSize: 13), + ) + ], + ) + ], + ); + } +} + +final List events = [ + Event('steve-johnson.jpeg', 'Shenzhen GLOBAL DESIGN AWARD 2018', '4.20-30'), + Event('efe-kurnaz.jpg', 'Shenzhen GLOBAL DESIGN AWARD 2018', '4.20-30'), + Event('rodion-kutsaev.jpeg', 'Dawan District Guangdong Hong Kong', '4.28-31'), +]; + +class Event { + final String assetName; + final String title; + final String date; + + Event(this.assetName, this.title, this.date); +} + +class SheetHeader extends StatelessWidget { + final double? fontSize; + final double? topMargin; + + const SheetHeader({Key? key, required this.fontSize, required this.topMargin}) : super(key: key); + + @override + Widget build(BuildContext context) { + return Positioned( + top: topMargin, + child: Text( + '最近连接节点', + style: TextStyle( + color: Colors.grey[100], + fontSize: fontSize, + fontWeight: FontWeight.w500, + ), + ), + ); + } +} + +class MenuButton extends StatelessWidget { + const MenuButton({Key? key}) : super(key: key); + + @override + Widget build(BuildContext context) { + return const Positioned( + right: 0, + bottom: 24, + child: Icon( + Icons.menu, + color: Colors.white, + size: 28, + ), + ); + } +} diff --git a/flutter/lib/widgets/sail_app_bar.dart b/flutter/lib/widgets/sail_app_bar.dart new file mode 100644 index 0000000..95fe245 --- /dev/null +++ b/flutter/lib/widgets/sail_app_bar.dart @@ -0,0 +1,36 @@ +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import 'package:sail/constant/app_colors.dart'; +import 'package:sail/models/app_model.dart'; + +class SailAppBar extends AppBar { + SailAppBar({Key? key, required this.appTitle}) + : super(key: key); + + final String appTitle; + + @override + SailAppBarState createState() => SailAppBarState(); +} + +class SailAppBarState extends State { + late AppModel _appModel; + + @override + void didChangeDependencies() { + super.didChangeDependencies(); + _appModel = Provider.of(context); + } + + @override + Widget build(BuildContext context) { + return AppBar( + title: Text( + widget.appTitle, + style: TextStyle(color: _appModel.isOn ? Colors.black : Colors.white, fontWeight: FontWeight.w900), + ), + elevation: 0, + backgroundColor: _appModel.isOn ? AppColors.yellowColor : AppColors.grayColor +); + } +} diff --git a/flutter/lib/widgets/select_location.dart b/flutter/lib/widgets/select_location.dart new file mode 100644 index 0000000..b41903b --- /dev/null +++ b/flutter/lib/widgets/select_location.dart @@ -0,0 +1,86 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:provider/provider.dart'; +import 'package:sail/constant/app_colors.dart'; +import 'package:sail/model/themeCollection.dart'; +import 'package:sail/models/server_model.dart'; +import 'package:sail/models/user_model.dart'; +import 'package:sail/utils/l10n.dart'; +import 'package:sail/utils/navigator_util.dart'; + +class SelectLocation extends StatefulWidget { + const SelectLocation({ + Key? key, + }) : super(key: key); + + @override + SelectLocationState createState() => SelectLocationState(); +} + +class SelectLocationState extends State { + late ServerModel _serverModel; + late UserModel _userModel; + + @override + void didChangeDependencies() { + super.didChangeDependencies(); + _userModel = Provider.of(context); + } + + @override + Widget build(BuildContext context) { + _serverModel = Provider.of(context); + bool isDarkTheme = Provider.of(context).isDarkActive; + return Padding( + padding: EdgeInsets.symmetric( + vertical: 20, horizontal: ScreenUtil().setWidth(75)), + child: Material( + borderRadius: BorderRadius.circular(20), + color: Colors.green[600], + child: InkWell( + onTap: () => _userModel.checkHasLogin( + context, () => NavigatorUtil.goServerList(context)), + splashColor: Colors.grey, + borderRadius: BorderRadius.circular(20), + child: Container( + decoration: BoxDecoration(boxShadow: [ + BoxShadow( + color: AppColors.yellowColor.withAlpha(200), + blurRadius: 20, + spreadRadius: -6, + offset: const Offset( + 0.0, + 3.0, + ), + ) + ]), + padding: const EdgeInsets.symmetric(vertical: 15, horizontal: 25), + child: Row( + children: [ + Icon( + Icons.sailing, + color: isDarkTheme ? Colors.white : Colors.black, + ), + Padding( + padding: EdgeInsets.only(left: ScreenUtil().setWidth(10))), + Text( + _serverModel.selectServerEntity?.name ?? + context.l10n.xuanzeliahjiedian, + style: TextStyle( + fontSize: 15, + fontWeight: FontWeight.bold, + color: isDarkTheme ? Colors.white : Colors.black), + ), + Expanded(child: Container()), + Icon( + Icons.chevron_right, + color: isDarkTheme ? Colors.white : Colors.black, + ) + ], + ), + ), + ), + ), + ); + } +} diff --git a/flutter/lib/widgets/sliding_cards.dart b/flutter/lib/widgets/sliding_cards.dart new file mode 100644 index 0000000..4e6897e --- /dev/null +++ b/flutter/lib/widgets/sliding_cards.dart @@ -0,0 +1,306 @@ +import 'dart:math' as math; + +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:provider/provider.dart'; +import 'package:sail/entity/plan_entity.dart'; +import 'package:sail/models/user_model.dart'; +import 'package:sail/service/plan_service.dart'; +import 'package:sail/service/user_service.dart'; +import 'package:sail/utils/navigator_util.dart'; + +class SlidingCardsView extends StatefulWidget { + const SlidingCardsView({Key? key}) : super(key: key); + + @override + SlidingCardsViewState createState() => SlidingCardsViewState(); +} + +class SlidingCardsViewState extends State { + late PageController pageController; + double pageOffset = 0; + List _planEntityList = []; + + @override + void initState() { + super.initState(); + pageController = PageController(viewportFraction: 0.8); + pageController.addListener(() { + setState(() => pageOffset = pageController.page!); + }); + + PlanService().plan()?.then((planEntityList) { + if (this.mounted) { + setState(() { + _planEntityList = planEntityList; + }); + } + }); + } + + @override + void dispose() { + pageController.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return SizedBox( + height: MediaQuery.of(context).size.height * 0.55, + child: PageView( + controller: pageController, + children: List.from(_planEntityList.map((e) => SlidingCard( + id: e.id, + name: e.name, + content: e.content ?? "", + date: e.createdAt?.toIso8601String(), + onetimePrice: (e.onetimePrice ?? 0.0) / 100, + monthPrice: (e.monthPrice ?? 0.0) / 100, + quarterPrice: (e.quarterPrice ?? 0.0) / 100, + halfYearPrice: (e.halfYearPrice ?? 0.0) / 100, + yearPrice: (e.yearPrice ?? 0.0) / 100, + twoYearPrice: (e.twoYearPrice ?? 0.0) / 100, + threeYearPrice: (e.threeYearPrice ?? 0.0) / 100, + assetName: 'steve-johnson.jpeg', + offset: pageOffset)))), + ); + } +} + +class SlidingCard extends StatelessWidget { + final int id; + final String name; + final String content; + final String? date; + final String assetName; + final double offset; + final double onetimePrice; + final double monthPrice; + final double quarterPrice; + final double halfYearPrice; + final double yearPrice; + final double twoYearPrice; + final double threeYearPrice; + + const SlidingCard({ + Key? key, + required this.id, + required this.name, + required this.content, + required this.date, + required this.assetName, + required this.offset, + required this.onetimePrice, + required this.monthPrice, + required this.quarterPrice, + required this.halfYearPrice, + required this.yearPrice, + required this.twoYearPrice, + required this.threeYearPrice, + }) : super(key: key); + + double lowestPrice() { + List list = [ + onetimePrice, + monthPrice, + quarterPrice, + halfYearPrice, + yearPrice, + twoYearPrice, + threeYearPrice, + ]; + + double min = double.maxFinite; + + for (int i = 0; i < list.length; i++) { + if ((list[i] < min) && list[i] > 0) { + min = list[i]; + } + } + + return min; + } + + @override + Widget build(BuildContext context) { + UserModel _userModel = Provider.of(context); + double gauss = math.exp(-(math.pow((offset.abs() - 0.5), 2) / 0.08)); + return Transform.translate( + offset: Offset(-32 * gauss * offset.sign, 0), + child: Card( + margin: const EdgeInsets.only(left: 8, right: 8, bottom: 24), + elevation: 8, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(32)), + child: Column( + children: [ + ClipRRect( + borderRadius: + const BorderRadius.vertical(top: Radius.circular(32)), + child: Container( + height: MediaQuery.of(context).size.height * 0.1, + decoration: const BoxDecoration( + gradient: LinearGradient( + begin: Alignment.centerLeft, + end: Alignment.centerRight, + colors: [Colors.red, Colors.orange, Colors.indigo]), + ), + child: Center( + child: Text('${name}', + style: TextStyle( + fontWeight: FontWeight.bold, + color: Colors.white, + fontSize: 25, + ))), + ), + ), + // const SizedBox(height: 8), + Expanded( + child: CardContent( + id: id, + name: name, + desc: content, + date: date, + offset: gauss, + lowestPrice: lowestPrice(), + ), + ), + GestureDetector( + onTap: () { + _userModel.checkHasLogin( + context, + () => UserService().getQuickLoginUrl( + {'redirect': "/plan/${id}"})?.then((value) { + NavigatorUtil.goWebView( + context, "购买${name}订阅", value); + })); + }, + child: ClipRRect( + borderRadius: + const BorderRadius.vertical(bottom: Radius.circular(32)), + child: Container( + height: MediaQuery.of(context).size.height * 0.1, + decoration: const BoxDecoration( + gradient: LinearGradient( + begin: Alignment.centerLeft, + end: Alignment.centerRight, + colors: [Colors.orange, Colors.orange, Colors.orange]), + ), + child: Center( + child: Text('点击购买 ¥${lowestPrice()} 起', + style: TextStyle( + fontWeight: FontWeight.bold, + color: Colors.white, + fontSize: 20, + ))), + ), + ), + ), + ], + ), + ), + ); + } +} + +class CardContent extends StatefulWidget { + final int id; + final String name; + final String desc; + final String? date; + final double offset; + final double lowestPrice; + + const CardContent( + {Key? key, + required this.id, + required this.name, + required this.desc, + required this.date, + required this.offset, + required this.lowestPrice}) + : super(key: key); + + @override + CardContentState createState() => CardContentState(); +} + +class CardContentState extends State { + late UserModel _userModel; + + @override + void didChangeDependencies() { + super.didChangeDependencies(); + _userModel = Provider.of(context); + } + + @override + Widget build(BuildContext context) { + return Padding( + padding: const EdgeInsets.all(8.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Transform.translate( + offset: Offset(8 * widget.offset, 0), + child: Text(widget.desc, + style: + const TextStyle(fontSize: 20, fontWeight: FontWeight.bold)), + ), + const SizedBox(height: 8), + // Transform.translate( + // offset: Offset(32 * widget.offset, 0), + // child: Text( + // widget.date!, + // style: const TextStyle( + // color: Colors.grey, fontWeight: FontWeight.bold), + // ), + // ), + // const Spacer(), + // Row( + // children: [ + // Transform.translate( + // offset: Offset(48 * widget.offset, 0), + // child: ElevatedButton( + // style: ElevatedButton.styleFrom( + // foregroundColor: Colors.white, + // backgroundColor: Colors.yellow, + // shape: RoundedRectangleBorder( + // borderRadius: BorderRadius.circular(32), + // ), + // ), + // onPressed: () => _userModel.checkHasLogin( + // context, + // () => UserService().getQuickLoginUrl({ + // 'redirect': "/plan/${widget.id}" + // })?.then((value) { + // NavigatorUtil.goWebView(context, "配置订阅", value); + // })), + // child: Transform.translate( + // offset: Offset(24 * widget.offset, 0), + // child: Text('购买', + // style: TextStyle( + // color: Colors.black87, + // fontSize: ScreenUtil().setSp(36))), + // ), + // ), + // ), + // const Spacer(), + // Transform.translate( + // offset: Offset(32 * widget.offset, 0), + // child: Text( + // '¥ ${widget.lowestPrice} 起', + // style: const TextStyle( + // fontWeight: FontWeight.bold, + // fontSize: 20, + // ), + // ), + // ), + // const SizedBox(width: 16), + // ], + // ) + ], + ), + ); + } +} diff --git a/flutter/lib/widgets/watermuticicel.dart b/flutter/lib/widgets/watermuticicel.dart new file mode 100644 index 0000000..fee164a --- /dev/null +++ b/flutter/lib/widgets/watermuticicel.dart @@ -0,0 +1,86 @@ +import 'dart:math'; + +import 'package:flutter/material.dart'; + +import 'circle_painter.dart'; + +/// +/// desc: +/// + +class WaterMultipleCircleLoading extends StatefulWidget { + final Color color; + final Duration duration; + final Curve curve; + + const WaterMultipleCircleLoading( + {Key? key, + this.color = Colors.white, + this.duration = const Duration(milliseconds: 1500), + this.curve = Curves.linear}) + : super(key: key); + + @override + _WaterMultipleCircleLoadingState createState() => + _WaterMultipleCircleLoadingState(); +} + +class _WaterMultipleCircleLoadingState extends State + with SingleTickerProviderStateMixin { + late AnimationController _controller; + late Animation _animation, _animation1, _animation2, _animation3; + + @override + void initState() { + _controller = AnimationController(vsync: this, duration: widget.duration) + ..repeat(); + + _animation = CurveTween(curve: Interval(0.0, 0.7, curve: widget.curve)) + .animate(_controller); + _animation1 = CurveTween(curve: Interval(0.15, 0.8, curve: widget.curve)) + .animate(_controller); + _animation2 = CurveTween(curve: Interval(0.3, 0.9, curve: widget.curve)) + .animate(_controller); + _animation3 = CurveTween(curve: Interval(0.45, 1.0, curve: widget.curve)) + .animate(_controller); + + super.initState(); + } + + @override + void dispose() { + _controller.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return AnimatedBuilder( + animation: _controller, + builder: (context, child) { + return Stack( + children: [ + _item(_animation), + _item(_animation1), + _item(_animation2), + _item(_animation3), + ], + ); + }); + } + + _item(Animation animation) { + return Positioned.fill( + child: Center( + child: FractionallySizedBox( + widthFactor: animation.value, + heightFactor: animation.value, + child: CustomPaint( + painter: CirclePainter( + progress: _controller.value, + color: widget.color.withOpacity(animation.value)), + ), + ), + )); + } +} diff --git a/flutter/lib/widgets/waterrepper.dart b/flutter/lib/widgets/waterrepper.dart new file mode 100644 index 0000000..3e567da --- /dev/null +++ b/flutter/lib/widgets/waterrepper.dart @@ -0,0 +1,90 @@ +import 'dart:math'; + +import 'package:flutter/material.dart'; + +/// +/// desc: +/// +class WaterRipple extends StatefulWidget { + final Color color; + final Duration duration; + final Curve curve; + final int count; + + const WaterRipple( + {Key? key, + this.color = Colors.white, + this.count = 3, + this.duration = const Duration(milliseconds: 800), + this.curve = Curves.linear}) + : super(key: key); + + @override + _WaterRippleState createState() => _WaterRippleState(); +} + +class _WaterRippleState extends State + with SingleTickerProviderStateMixin { + late AnimationController _controller; + late Animation _animation; + + @override + void initState() { + _controller = AnimationController(vsync: this, duration: widget.duration) + ..repeat(); + _animation = CurveTween(curve: widget.curve).animate(_controller); + + super.initState(); + } + + @override + void dispose() { + _controller.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return AnimatedBuilder( + animation: _controller, + builder: (context, child) { + return CustomPaint( + painter: WaterRipplePainter(_animation.value, + count: widget.count, color: widget.color), + ); + }, + ); + } +} + +class WaterRipplePainter extends CustomPainter { + final double progress; + final int count; + final Color color; + + Paint _paint = Paint()..style = PaintingStyle.fill; + + WaterRipplePainter(this.progress, + {this.count = 3, this.color = const Color(0xFF0080ff)}); + + @override + void paint(Canvas canvas, Size size) { + double radius = min(size.width / 2, size.height / 2); + + for (int i = count; i >= 0; i--) { + final double opacity = (1.0 - ((i + progress) / (count + 1))); + final Color _color = color.withOpacity(opacity); + _paint..color = _color; + + double _radius = radius * ((i + progress) / (count + 1)); + + canvas.drawCircle( + Offset(size.width / 2, size.height / 2), _radius, _paint); + } + } + + @override + bool shouldRepaint(covariant WaterRipplePainter old) { + return progress != old.progress || color != old.color || count != old.count; + } +} diff --git a/flutter/pubspec.lock b/flutter/pubspec.lock new file mode 100644 index 0000000..c4d7a86 --- /dev/null +++ b/flutter/pubspec.lock @@ -0,0 +1,735 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + another_flushbar: + dependency: transitive + description: + name: another_flushbar + sha256: fa09f8a4ca582c417669b7b1d0e85ce65bd074d80bb0dcbb1302ad1b22bdc3ef + url: "https://pub.dev" + source: hosted + version: "1.12.29" + another_transformer_page_view: + dependency: transitive + description: + name: another_transformer_page_view + sha256: a7cd46ede62d621c5abe7e58c7cb2745abe67b3bfec64f59b8889c93d7be7a8e + url: "https://pub.dev" + source: hosted + version: "2.0.1" + async: + dependency: transitive + description: + name: async + sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" + url: "https://pub.dev" + source: hosted + version: "2.11.0" + boolean_selector: + dependency: transitive + description: + name: boolean_selector + sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + characters: + dependency: transitive + description: + name: characters + sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" + url: "https://pub.dev" + source: hosted + version: "1.3.0" + clock: + dependency: transitive + description: + name: clock + sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf + url: "https://pub.dev" + source: hosted + version: "1.1.1" + collection: + dependency: transitive + description: + name: collection + sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c" + url: "https://pub.dev" + source: hosted + version: "1.17.1" + convert: + dependency: "direct main" + description: + name: convert + sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592" + url: "https://pub.dev" + source: hosted + version: "3.1.1" + crisp: + dependency: "direct main" + description: + name: crisp + sha256: "3e866046776d65f9745e9845e4c348fcebdf7ca067009deb4554950fd41bedad" + url: "https://pub.dev" + source: hosted + version: "0.3.1" + crypto: + dependency: "direct main" + description: + name: crypto + sha256: ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab + url: "https://pub.dev" + source: hosted + version: "3.0.3" + cupertino_icons: + dependency: "direct main" + description: + name: cupertino_icons + sha256: e35129dc44c9118cee2a5603506d823bab99c68393879edb440e0090d07586be + url: "https://pub.dev" + source: hosted + version: "1.0.5" + dio: + dependency: "direct main" + description: + name: dio + sha256: "7d328c4d898a61efc3cd93655a0955858e29a0aa647f0f9e02d59b3bb275e2e8" + url: "https://pub.dev" + source: hosted + version: "4.0.6" + fake_async: + dependency: transitive + description: + name: fake_async + sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" + url: "https://pub.dev" + source: hosted + version: "1.3.1" + ffi: + dependency: transitive + description: + name: ffi + sha256: a38574032c5f1dd06c4aee541789906c12ccaab8ba01446e800d9c5b79c4a978 + url: "https://pub.dev" + source: hosted + version: "2.0.1" + file: + dependency: transitive + description: + name: file + sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d" + url: "https://pub.dev" + source: hosted + version: "6.1.4" + fluro: + dependency: "direct main" + description: + name: fluro + sha256: "66d82964a1b6967def34155de92f7bb87ee247aba53ea5dbb70e2bf206865dbc" + url: "https://pub.dev" + source: hosted + version: "2.0.4" + flutter: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" + flutter_easyrefresh: + dependency: "direct main" + description: + name: flutter_easyrefresh + sha256: "5d161ee5dcac34da9065116568147d742dd25fb9bff3b10024d9054b195087ad" + url: "https://pub.dev" + source: hosted + version: "2.2.2" + flutter_icmp_ping: + dependency: "direct main" + description: + name: flutter_icmp_ping + sha256: b3c2ed75d2429d32e54c04c153dd5605ffba10124a5208a9906759d4cd4822cd + url: "https://pub.dev" + source: hosted + version: "3.1.1" + flutter_inappwebview: + dependency: transitive + description: + name: flutter_inappwebview + sha256: d28043f7d2a4708bc3b1656278739d738fa0412c80121572f73e875bc1fd8ece + url: "https://pub.dev" + source: hosted + version: "5.7.2+2" + flutter_lints: + dependency: "direct dev" + description: + name: flutter_lints + sha256: aeb0b80a8b3709709c9cc496cdc027c5b3216796bc0af0ce1007eaf24464fd4c + url: "https://pub.dev" + source: hosted + version: "2.0.1" + flutter_localizations: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" + flutter_login: + dependency: "direct main" + description: + name: flutter_login + sha256: "0f4119be8a54db47fce4a3ae626d750e951c79915543521cd6ea0b6465335121" + url: "https://pub.dev" + source: hosted + version: "4.1.1" + flutter_screenutil: + dependency: "direct main" + description: + name: flutter_screenutil + sha256: b3e155ee4f2cf5b21a2e15182d1c49c848147ed47f62083fc9a9beccb85f59f9 + url: "https://pub.dev" + source: hosted + version: "5.8.2" + flutter_svg: + dependency: "direct main" + description: + name: flutter_svg + sha256: cbf529d563dd910a249041bde2a0dfc3cf62280fcc459b85f3d614b2ab73abb3 + url: "https://pub.dev" + source: hosted + version: "0.23.0+1" + flutter_swiper_plus: + dependency: "direct main" + description: + name: flutter_swiper_plus + sha256: cf2e39b230c570f6bdb87f8a19d1c94be47441ffacb09ddc371c7a628e0dbe6a + url: "https://pub.dev" + source: hosted + version: "2.0.4" + flutter_test: + dependency: "direct dev" + description: flutter + source: sdk + version: "0.0.0" + flutter_web_plugins: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + fluttertoast: + dependency: "direct main" + description: + name: fluttertoast + sha256: "7cc92eabe01e3f1babe1571c5560b135dfc762a34e41e9056881e2196b178ec1" + url: "https://pub.dev" + source: hosted + version: "8.1.2" + font_awesome_flutter: + dependency: transitive + description: + name: font_awesome_flutter + sha256: "959ef4add147753f990b4a7c6cccb746d5792dbdc81b1cde99e62e7edb31b206" + url: "https://pub.dev" + source: hosted + version: "10.4.0" + get: + dependency: "direct main" + description: + name: get + sha256: "2ba20a47c8f1f233bed775ba2dd0d3ac97b4cf32fc17731b3dfc672b06b0e92a" + url: "https://pub.dev" + source: hosted + version: "4.6.5" + google_fonts: + dependency: "direct main" + description: + name: google_fonts + sha256: db5efba8106bd784a92c96cfd81716f4e06baab54e37de858488e9a00a764cad + url: "https://pub.dev" + source: hosted + version: "5.0.0" + http: + dependency: transitive + description: + name: http + sha256: "4c3f04bfb64d3efd508d06b41b825542f08122d30bda4933fb95c069d22a4fa3" + url: "https://pub.dev" + source: hosted + version: "1.0.0" + http_parser: + dependency: transitive + description: + name: http_parser + sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" + url: "https://pub.dev" + source: hosted + version: "4.0.2" + intl: + dependency: "direct main" + description: + name: intl + sha256: a3715e3bc90294e971cb7dc063fbf3cd9ee0ebf8604ffeafabd9e6f16abbdbe6 + url: "https://pub.dev" + source: hosted + version: "0.18.0" + js: + dependency: transitive + description: + name: js + sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 + url: "https://pub.dev" + source: hosted + version: "0.6.7" + lints: + dependency: transitive + description: + name: lints + sha256: "5e4a9cd06d447758280a8ac2405101e0e2094d2a1dbdd3756aec3fe7775ba593" + url: "https://pub.dev" + source: hosted + version: "2.0.1" + matcher: + dependency: transitive + description: + name: matcher + sha256: "6501fbd55da300384b768785b83e5ce66991266cec21af89ab9ae7f5ce1c4cbb" + url: "https://pub.dev" + source: hosted + version: "0.12.15" + material_color_utilities: + dependency: transitive + description: + name: material_color_utilities + sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724 + url: "https://pub.dev" + source: hosted + version: "0.2.0" + meta: + dependency: "direct main" + description: + name: meta + sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3" + url: "https://pub.dev" + source: hosted + version: "1.9.1" + modal_bottom_sheet: + dependency: "direct main" + description: + name: modal_bottom_sheet + sha256: "3bba63c62d35c931bce7f8ae23a47f9a05836d8cb3c11122ada64e0b2f3d718f" + url: "https://pub.dev" + source: hosted + version: "3.0.0-pre" + nested: + dependency: transitive + description: + name: nested + sha256: "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20" + url: "https://pub.dev" + source: hosted + version: "1.0.0" + path: + dependency: transitive + description: + name: path + sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" + url: "https://pub.dev" + source: hosted + version: "1.8.3" + path_drawing: + dependency: transitive + description: + name: path_drawing + sha256: "3bdd251dae9ffaef944450b73f168610db7e968e7b20daf0c3907f8b4aafc8a2" + url: "https://pub.dev" + source: hosted + version: "0.5.1+1" + path_parsing: + dependency: transitive + description: + name: path_parsing + sha256: ee5c47c1058ad66b4a41746ec3996af9593d0858872807bcd64ac118f0700337 + url: "https://pub.dev" + source: hosted + version: "0.2.1" + path_provider: + dependency: "direct main" + description: + name: path_provider + sha256: "050e8e85e4b7fecdf2bb3682c1c64c4887a183720c802d323de8a5fd76d372dd" + url: "https://pub.dev" + source: hosted + version: "2.0.11" + path_provider_android: + dependency: transitive + description: + name: path_provider_android + sha256: a776c088d671b27f6e3aa8881d64b87b3e80201c64e8869b811325de7a76c15e + url: "https://pub.dev" + source: hosted + version: "2.0.22" + path_provider_ios: + dependency: transitive + description: + name: path_provider_ios + sha256: "03d639406f5343478352433f00d3c4394d52dac8df3d847869c5e2333e0bbce8" + url: "https://pub.dev" + source: hosted + version: "2.0.11" + path_provider_linux: + dependency: transitive + description: + name: path_provider_linux + sha256: ab0987bf95bc591da42dffb38c77398fc43309f0b9b894dcc5d6f40c4b26c379 + url: "https://pub.dev" + source: hosted + version: "2.1.7" + path_provider_macos: + dependency: transitive + description: + name: path_provider_macos + sha256: "2a97e7fbb7ae9dcd0dfc1220a78e9ec3e71da691912e617e8715ff2a13086ae8" + url: "https://pub.dev" + source: hosted + version: "2.0.6" + path_provider_platform_interface: + dependency: transitive + description: + name: path_provider_platform_interface + sha256: f0abc8ebd7253741f05488b4813d936b4d07c6bae3e86148a09e342ee4b08e76 + url: "https://pub.dev" + source: hosted + version: "2.0.5" + path_provider_windows: + dependency: transitive + description: + name: path_provider_windows + sha256: bcabbe399d4042b8ee687e17548d5d3f527255253b4a639f5f8d2094a9c2b45c + url: "https://pub.dev" + source: hosted + version: "2.1.3" + petitparser: + dependency: transitive + description: + name: petitparser + sha256: cb3798bef7fc021ac45b308f4b51208a152792445cce0448c9a4ba5879dd8750 + url: "https://pub.dev" + source: hosted + version: "5.4.0" + platform: + dependency: transitive + description: + name: platform + sha256: "4a451831508d7d6ca779f7ac6e212b4023dd5a7d08a27a63da33756410e32b76" + url: "https://pub.dev" + source: hosted + version: "3.1.0" + plugin_platform_interface: + dependency: transitive + description: + name: plugin_platform_interface + sha256: dbf0f707c78beedc9200146ad3cb0ab4d5da13c246336987be6940f026500d3a + url: "https://pub.dev" + source: hosted + version: "2.1.3" + process: + dependency: transitive + description: + name: process + sha256: "53fd8db9cec1d37b0574e12f07520d582019cb6c44abf5479a01505099a34a09" + url: "https://pub.dev" + source: hosted + version: "4.2.4" + provider: + dependency: "direct main" + description: + name: provider + sha256: e1e7413d70444ea3096815a60fe5da1b11bda8a9dc4769252cc82c53536f8bcc + url: "https://pub.dev" + source: hosted + version: "6.0.4" + quiver: + dependency: transitive + description: + name: quiver + sha256: "93982981971e812c94d4a6fa3a57b89f9ec12b38b6380cd3c1370c3b01e4580e" + url: "https://pub.dev" + source: hosted + version: "3.1.0" + shared_preferences: + dependency: "direct main" + description: + name: shared_preferences + sha256: "76917b7d4b9526b2ba416808a7eb9fb2863c1a09cf63ec85f1453da240fa818a" + url: "https://pub.dev" + source: hosted + version: "2.0.15" + shared_preferences_android: + dependency: transitive + description: + name: shared_preferences_android + sha256: "8e251f3c986002b65fed6396bce81f379fb63c27317d49743cf289fd0fd1ab97" + url: "https://pub.dev" + source: hosted + version: "2.0.14" + shared_preferences_ios: + dependency: transitive + description: + name: shared_preferences_ios + sha256: "585a14cefec7da8c9c2fb8cd283a3bb726b4155c0952afe6a0caaa7b2272de34" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + shared_preferences_linux: + dependency: transitive + description: + name: shared_preferences_linux + sha256: "28aefc1261746e7bad3d09799496054beb84e8c4ffcdfed7734e17b4ada459a5" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + shared_preferences_macos: + dependency: transitive + description: + name: shared_preferences_macos + sha256: fbb94bf296576f49be37a1496d5951796211a8db0aa22cc0d68c46440dad808c + url: "https://pub.dev" + source: hosted + version: "2.0.4" + shared_preferences_platform_interface: + dependency: transitive + description: + name: shared_preferences_platform_interface + sha256: da9431745ede5ece47bc26d5d73a9d3c6936ef6945c101a5aca46f62e52c1cf3 + url: "https://pub.dev" + source: hosted + version: "2.1.0" + shared_preferences_web: + dependency: transitive + description: + name: shared_preferences_web + sha256: a4b5bc37fe1b368bbc81f953197d55e12f49d0296e7e412dfe2d2d77d6929958 + url: "https://pub.dev" + source: hosted + version: "2.0.4" + shared_preferences_windows: + dependency: transitive + description: + name: shared_preferences_windows + sha256: "97f7ab9a7da96d9cf19581f5de520ceb529548498bd6b5e0ccd02d68a0d15eba" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + sign_in_button: + dependency: transitive + description: + name: sign_in_button + sha256: "977b9b0415d2f3909e642275dfabba7919ba8e111324641b76cae6d1acbd183e" + url: "https://pub.dev" + source: hosted + version: "3.2.0" + sky_engine: + dependency: transitive + description: flutter + source: sdk + version: "0.0.99" + source_span: + dependency: transitive + description: + name: source_span + sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250 + url: "https://pub.dev" + source: hosted + version: "1.9.1" + stack_trace: + dependency: transitive + description: + name: stack_trace + sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5 + url: "https://pub.dev" + source: hosted + version: "1.11.0" + stream_channel: + dependency: transitive + description: + name: stream_channel + sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + string_scanner: + dependency: transitive + description: + name: string_scanner + sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" + url: "https://pub.dev" + source: hosted + version: "1.2.0" + sync_http: + dependency: "direct main" + description: + name: sync_http + sha256: "7f0cd72eca000d2e026bcd6f990b81d0ca06022ef4e32fb257b30d3d1014a961" + url: "https://pub.dev" + source: hosted + version: "0.3.1" + synchronized: + dependency: "direct main" + description: + name: synchronized + sha256: "5fcbd27688af6082f5abd611af56ee575342c30e87541d0245f7ff99faa02c60" + url: "https://pub.dev" + source: hosted + version: "3.1.0" + term_glyph: + dependency: transitive + description: + name: term_glyph + sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 + url: "https://pub.dev" + source: hosted + version: "1.2.1" + test_api: + dependency: transitive + description: + name: test_api + sha256: eb6ac1540b26de412b3403a163d919ba86f6a973fe6cc50ae3541b80092fdcfb + url: "https://pub.dev" + source: hosted + version: "0.5.1" + typed_data: + dependency: transitive + description: + name: typed_data + sha256: "26f87ade979c47a150c9eaab93ccd2bebe70a27dc0b4b29517f2904f04eb11a5" + url: "https://pub.dev" + source: hosted + version: "1.3.1" + url_launcher: + dependency: "direct main" + description: + name: url_launcher + sha256: eb1e00ab44303d50dd487aab67ebc575456c146c6af44422f9c13889984c00f3 + url: "https://pub.dev" + source: hosted + version: "6.1.11" + url_launcher_android: + dependency: transitive + description: + name: url_launcher_android + sha256: "6f91d30ce9060c204b2dbe728adb300750fa4b228e8f7ed1b961aa1ceb728799" + url: "https://pub.dev" + source: hosted + version: "6.0.22" + url_launcher_ios: + dependency: transitive + description: + name: url_launcher_ios + sha256: "6ba7dddee26c9fae27c9203c424631109d73c8fa26cfa7bc3e35e751cb87f62e" + url: "https://pub.dev" + source: hosted + version: "6.0.17" + url_launcher_linux: + dependency: transitive + description: + name: url_launcher_linux + sha256: "360fa359ab06bcb4f7c5cd3123a2a9a4d3364d4575d27c4b33468bd4497dd094" + url: "https://pub.dev" + source: hosted + version: "3.0.1" + url_launcher_macos: + dependency: transitive + description: + name: url_launcher_macos + sha256: a9b3ea9043eabfaadfa3fb89de67a11210d85569086d22b3854484beab8b3978 + url: "https://pub.dev" + source: hosted + version: "3.0.1" + url_launcher_platform_interface: + dependency: transitive + description: + name: url_launcher_platform_interface + sha256: "4eae912628763eb48fc214522e58e942fd16ce195407dbf45638239523c759a6" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + url_launcher_web: + dependency: transitive + description: + name: url_launcher_web + sha256: "5669882643b96bb6d5786637cac727c6e918a790053b09245fd4513b8a07df2a" + url: "https://pub.dev" + source: hosted + version: "2.0.13" + url_launcher_windows: + dependency: transitive + description: + name: url_launcher_windows + sha256: e3c3b16d3104260c10eea3b0e34272aaa57921f83148b0619f74c2eced9b7ef1 + url: "https://pub.dev" + source: hosted + version: "3.0.1" + vector_math: + dependency: transitive + description: + name: vector_math + sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" + url: "https://pub.dev" + source: hosted + version: "2.1.4" + webview_flutter: + dependency: "direct main" + description: + name: webview_flutter + sha256: "392c1d83b70fe2495de3ea2c84531268d5b8de2de3f01086a53334d8b6030a88" + url: "https://pub.dev" + source: hosted + version: "3.0.4" + webview_flutter_android: + dependency: transitive + description: + name: webview_flutter_android + sha256: "8b3b2450e98876c70bfcead876d9390573b34b9418c19e28168b74f6cb252dbd" + url: "https://pub.dev" + source: hosted + version: "2.10.4" + webview_flutter_platform_interface: + dependency: transitive + description: + name: webview_flutter_platform_interface + sha256: "812165e4e34ca677bdfbfa58c01e33b27fd03ab5fa75b70832d4b7d4ca1fa8cf" + url: "https://pub.dev" + source: hosted + version: "1.9.5" + webview_flutter_wkwebview: + dependency: transitive + description: + name: webview_flutter_wkwebview + sha256: a5364369c758892aa487cbf59ea41d9edd10f9d9baf06a94e80f1bd1b4c7bbc0 + url: "https://pub.dev" + source: hosted + version: "2.9.5" + win32: + dependency: transitive + description: + name: win32 + sha256: ca121dbbadb3e43b449053feab0cdf3f2bff93b107cacf0290e3d29f717374b6 + url: "https://pub.dev" + source: hosted + version: "3.1.2" + xdg_directories: + dependency: transitive + description: + name: xdg_directories + sha256: "11541eedefbcaec9de35aa82650b695297ce668662bbd6e3911a7fabdbde589f" + url: "https://pub.dev" + source: hosted + version: "0.2.0+2" + xml: + dependency: transitive + description: + name: xml + sha256: "80d494c09849dc3f899d227a78c30c5b949b985ededf884cb3f3bcd39f4b447a" + url: "https://pub.dev" + source: hosted + version: "5.4.1" +sdks: + dart: ">=3.0.0 <4.0.0" + flutter: ">=3.10.0" diff --git a/flutter/pubspec.yaml b/flutter/pubspec.yaml new file mode 100644 index 0000000..4f3cfd2 --- /dev/null +++ b/flutter/pubspec.yaml @@ -0,0 +1,117 @@ +name: sail +description: a proxy client application. + +# The following line prevents the package from being accidentally published to +# pub.dev using `pub publish`. This is preferred for private packages. +publish_to: 'none' # Remove this line if you wish to publish to pub.dev + +# The following defines the version and build number for your application. +# A version number is three numbers separated by dots, like 1.2.43 +# followed by an optional build number separated by a +. +# Both the version and the builder number may be overridden in flutter +# build by specifying --build-name and --build-number, respectively. +# In Android, build-name is used as versionName while build-number used as versionCode. +# Read more about Android versioning at https://developer.android.com/studio/publish/versioning +# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion. +# Read more about iOS versioning at +# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html +version: 1.0.8+80 + +environment: + sdk: ">=2.18.5 <4.0.1" + + + # sdk: ">=2.15.0 <3.0.0" + + +dependencies: + flutter: + sdk: flutter + flutter_localizations: + sdk: flutter + + # The following adds the Cupertino Icons font to your application. + # Use with the CupertinoIcons class for iOS style icons. + cupertino_icons: ^1.0.5 + dio: ^4.0.6 + fluro: ^2.0.3 + shared_preferences: ^2.0.15 + webview_flutter: ^3.0.4 + provider: ^6.0.3 + flutter_svg: ^0.23.0+1 + flutter_screenutil: ^5.8.2 + # flutter_screenutil: ^5.5.3+2 + # flutter_swiper: ^1.1.6 + flutter_swiper_plus: ^2.0.4 + # flutter_login: ^3.2.0 + flutter_login: ^4.1.1 + flutter_easyrefresh: ^2.1.8 + intl: ^0.18.0 + path_provider: ^2.0.10 + crisp: ^0.3.1 + modal_bottom_sheet: ^3.0.0-pre + # modal_bottom_sheet: ^2.1.2 + fluttertoast: ^8.0.9 + meta: ^1.7.0 + flutter_icmp_ping: ^3.1.0 + url_launcher: ^6.1.11 + synchronized: ^3.1.0 + convert: ^3.1.1 + crypto: ^3.0.3 + get: ^4.6.5 + google_fonts: ^5.0.0 + sync_http: ^0.3.1 + # motion_tab_bar: ^0.0.1 + +dev_dependencies: + flutter_lints: ^2.0.1 + flutter_test: + sdk: flutter + +# For information on the generic Dart part of this file, see the +# following page: https://dart.dev/tools/pub/pubspec + +# The following section is specific to Flutter. +flutter: + + generate: true + + # The following line ensures that the Material Icons font is + # included with your application, so that you can use the icons in + # the material Icons class. + uses-material-design: true + + assets: + - assets/flags/ + # - assets/images/ + - assets/ + + fonts: + - family: Aquire + fonts: + - asset: assets/font/Aquire.otf + # An image asset can refer to one or more resolution-specific "variants", see + # https://flutter.dev/assets-and-images/#resolution-aware. + + # For details regarding adding assets from package dependencies, see + # https://flutter.dev/assets-and-images/#from-packages + + # To add custom fonts to your application, add a fonts section here, + # in this "flutter" section. Each entry in this list should have a + # "family" key with the font family name, and a "fonts" key with a + # list giving the asset and other descriptors for the font. For + # example: + # fonts: + # - family: Schyler + # fonts: + # - asset: fonts/Schyler-Regular.ttf + # - asset: fonts/Schyler-Italic.ttf + # style: italic + # - family: Trajan Pro + # fonts: + # - asset: fonts/TrajanPro.ttf + # - asset: fonts/TrajanPro_Bold.ttf + # weight: 700 + # + # For details regarding fonts from package dependencies, + # see https://flutter.dev/custom-fonts/#from-packages diff --git a/flutter/test/widget_test.dart b/flutter/test/widget_test.dart new file mode 100644 index 0000000..cda2ed1 --- /dev/null +++ b/flutter/test/widget_test.dart @@ -0,0 +1,30 @@ +// This is a basic Flutter widget test. +// +// To perform an interaction with a widget in your test, use the WidgetTester +// utility that Flutter provides. For example, you can send tap and scroll +// gestures. You can also use WidgetTester to find child widgets in the widget +// tree, read text, and verify that the values of widget properties are correct. + +import 'package:flutter/material.dart'; +import 'package:flutter_test/flutter_test.dart'; + +import 'package:sail/main.dart'; + +void main() { + testWidgets('Counter increments smoke test', (WidgetTester tester) async { + // Build our app and trigger a frame. + await tester.pumpWidget(SailApp()); + + // Verify that our counter starts at 0. + expect(find.text('0'), findsOneWidget); + expect(find.text('1'), findsNothing); + + // Tap the '+' icon and trigger a frame. + await tester.tap(find.byIcon(Icons.add)); + await tester.pump(); + + // Verify that our counter has incremented. + expect(find.text('0'), findsNothing); + expect(find.text('1'), findsOneWidget); + }); +} diff --git a/flutter/timefile b/flutter/timefile new file mode 100644 index 0000000..dc68dac --- /dev/null +++ b/flutter/timefile @@ -0,0 +1 @@ +2023-06-08 diff --git a/flutter/uuvpn.iml b/flutter/uuvpn.iml new file mode 100644 index 0000000..f66303d --- /dev/null +++ b/flutter/uuvpn.iml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + +